diff --git a/.next/app-build-manifest.json b/.next/app-build-manifest.json index 82f6f3b5..86cea48a 100644 --- a/.next/app-build-manifest.json +++ b/.next/app-build-manifest.json @@ -6,10 +6,15 @@ "static/css/app/layout.css", "static/chunks/app/layout.js" ], - "/_not-found/page": [ + "/page": [ "static/chunks/webpack.js", "static/chunks/main-app.js", - "static/chunks/app/_not-found/page.js" + "static/chunks/app/page.js" + ], + "/api/monitor/route": [ + "static/chunks/webpack.js", + "static/chunks/main-app.js", + "static/chunks/app/api/monitor/route.js" ] } } \ No newline at end of file diff --git a/.next/build-manifest.json b/.next/build-manifest.json index 623fe7b7..f653c47f 100644 --- a/.next/build-manifest.json +++ b/.next/build-manifest.json @@ -2,7 +2,9 @@ "polyfillFiles": [ "static/chunks/polyfills.js" ], - "devFiles": [], + "devFiles": [ + "static/chunks/react-refresh.js" + ], "ampDevFiles": [], "lowPriorityFiles": [ "static/development/_buildManifest.js", @@ -14,7 +16,16 @@ ], "rootMainFilesTree": {}, "pages": { - "/_app": [] + "/_app": [ + "static/chunks/webpack.js", + "static/chunks/main.js", + "static/chunks/pages/_app.js" + ], + "/_error": [ + "static/chunks/webpack.js", + "static/chunks/main.js", + "static/chunks/pages/_error.js" + ] }, "ampFirstPages": [] } \ No newline at end of file diff --git a/.next/cache/webpack/client-development-fallback/0.pack.gz b/.next/cache/webpack/client-development-fallback/0.pack.gz index 5aac7cf0..58190262 100644 Binary files a/.next/cache/webpack/client-development-fallback/0.pack.gz and b/.next/cache/webpack/client-development-fallback/0.pack.gz differ diff --git a/.next/cache/webpack/client-development-fallback/1.pack.gz b/.next/cache/webpack/client-development-fallback/1.pack.gz new file mode 100644 index 00000000..040ef3a6 Binary files /dev/null and b/.next/cache/webpack/client-development-fallback/1.pack.gz differ diff --git a/.next/cache/webpack/client-development-fallback/2.pack.gz b/.next/cache/webpack/client-development-fallback/2.pack.gz new file mode 100644 index 00000000..0ecfbfba Binary files /dev/null and b/.next/cache/webpack/client-development-fallback/2.pack.gz differ diff --git a/.next/cache/webpack/client-development-fallback/index.pack.gz b/.next/cache/webpack/client-development-fallback/index.pack.gz index bc4861e1..1a342c2d 100644 Binary files a/.next/cache/webpack/client-development-fallback/index.pack.gz and b/.next/cache/webpack/client-development-fallback/index.pack.gz differ diff --git a/.next/cache/webpack/client-development-fallback/index.pack.gz.old b/.next/cache/webpack/client-development-fallback/index.pack.gz.old new file mode 100644 index 00000000..6983514c Binary files /dev/null and b/.next/cache/webpack/client-development-fallback/index.pack.gz.old differ diff --git a/.next/cache/webpack/client-development/1.pack.gz b/.next/cache/webpack/client-development/1.pack.gz index 202d96cc..13eeb8ea 100644 Binary files a/.next/cache/webpack/client-development/1.pack.gz and b/.next/cache/webpack/client-development/1.pack.gz differ diff --git a/.next/cache/webpack/client-development/10.pack.gz b/.next/cache/webpack/client-development/10.pack.gz index 85f1a341..10d5925c 100644 Binary files a/.next/cache/webpack/client-development/10.pack.gz and b/.next/cache/webpack/client-development/10.pack.gz differ diff --git a/.next/cache/webpack/client-development/12.pack.gz b/.next/cache/webpack/client-development/12.pack.gz index 1b7bfd88..0b91cd2f 100644 Binary files a/.next/cache/webpack/client-development/12.pack.gz and b/.next/cache/webpack/client-development/12.pack.gz differ diff --git a/.next/cache/webpack/client-development/13.pack.gz b/.next/cache/webpack/client-development/13.pack.gz index 3b091952..2b8ab444 100644 Binary files a/.next/cache/webpack/client-development/13.pack.gz and b/.next/cache/webpack/client-development/13.pack.gz differ diff --git a/.next/cache/webpack/client-development/14.pack.gz b/.next/cache/webpack/client-development/14.pack.gz index 98728a00..7db79b4b 100644 Binary files a/.next/cache/webpack/client-development/14.pack.gz and b/.next/cache/webpack/client-development/14.pack.gz differ diff --git a/.next/cache/webpack/client-development/15.pack.gz b/.next/cache/webpack/client-development/15.pack.gz new file mode 100644 index 00000000..4cbb1a53 Binary files /dev/null and b/.next/cache/webpack/client-development/15.pack.gz differ diff --git a/.next/cache/webpack/client-development/16.pack.gz b/.next/cache/webpack/client-development/16.pack.gz new file mode 100644 index 00000000..b565b70c Binary files /dev/null and b/.next/cache/webpack/client-development/16.pack.gz differ diff --git a/.next/cache/webpack/client-development/17.pack.gz b/.next/cache/webpack/client-development/17.pack.gz new file mode 100644 index 00000000..1740dbee Binary files /dev/null and b/.next/cache/webpack/client-development/17.pack.gz differ diff --git a/.next/cache/webpack/client-development/3.pack.gz b/.next/cache/webpack/client-development/3.pack.gz index 6165c8d5..3250ac0e 100644 Binary files a/.next/cache/webpack/client-development/3.pack.gz and b/.next/cache/webpack/client-development/3.pack.gz differ diff --git a/.next/cache/webpack/client-development/5.pack.gz b/.next/cache/webpack/client-development/5.pack.gz index 215f7568..32c65dfc 100644 Binary files a/.next/cache/webpack/client-development/5.pack.gz and b/.next/cache/webpack/client-development/5.pack.gz differ diff --git a/.next/cache/webpack/client-development/6.pack.gz b/.next/cache/webpack/client-development/6.pack.gz index df1f4c0e..c0a85e07 100644 Binary files a/.next/cache/webpack/client-development/6.pack.gz and b/.next/cache/webpack/client-development/6.pack.gz differ diff --git a/.next/cache/webpack/client-development/8.pack.gz b/.next/cache/webpack/client-development/8.pack.gz index 32c65dfc..dd17274f 100644 Binary files a/.next/cache/webpack/client-development/8.pack.gz and b/.next/cache/webpack/client-development/8.pack.gz differ diff --git a/.next/cache/webpack/client-development/9.pack.gz b/.next/cache/webpack/client-development/9.pack.gz index 9df1913d..d9868ff4 100644 Binary files a/.next/cache/webpack/client-development/9.pack.gz and b/.next/cache/webpack/client-development/9.pack.gz differ diff --git a/.next/cache/webpack/client-development/index.pack.gz b/.next/cache/webpack/client-development/index.pack.gz index d128cfeb..223bea6d 100644 Binary files a/.next/cache/webpack/client-development/index.pack.gz and b/.next/cache/webpack/client-development/index.pack.gz differ diff --git a/.next/cache/webpack/client-development/index.pack.gz.old b/.next/cache/webpack/client-development/index.pack.gz.old index 00d4eb13..9b895bde 100644 Binary files a/.next/cache/webpack/client-development/index.pack.gz.old and b/.next/cache/webpack/client-development/index.pack.gz.old differ diff --git a/.next/cache/webpack/server-development/0.pack.gz b/.next/cache/webpack/server-development/0.pack.gz index 431a47bd..df541224 100644 Binary files a/.next/cache/webpack/server-development/0.pack.gz and b/.next/cache/webpack/server-development/0.pack.gz differ diff --git a/.next/cache/webpack/server-development/1.pack.gz b/.next/cache/webpack/server-development/1.pack.gz index e060fd96..53c7d810 100644 Binary files a/.next/cache/webpack/server-development/1.pack.gz and b/.next/cache/webpack/server-development/1.pack.gz differ diff --git a/.next/cache/webpack/server-development/12.pack.gz b/.next/cache/webpack/server-development/12.pack.gz new file mode 100644 index 00000000..cc69cca9 Binary files /dev/null and b/.next/cache/webpack/server-development/12.pack.gz differ diff --git a/.next/cache/webpack/server-development/13.pack.gz b/.next/cache/webpack/server-development/13.pack.gz new file mode 100644 index 00000000..5613a6bd Binary files /dev/null and b/.next/cache/webpack/server-development/13.pack.gz differ diff --git a/.next/cache/webpack/server-development/14.pack.gz b/.next/cache/webpack/server-development/14.pack.gz new file mode 100644 index 00000000..610d68c8 Binary files /dev/null and b/.next/cache/webpack/server-development/14.pack.gz differ diff --git a/.next/cache/webpack/server-development/15.pack.gz b/.next/cache/webpack/server-development/15.pack.gz new file mode 100644 index 00000000..9236204e Binary files /dev/null and b/.next/cache/webpack/server-development/15.pack.gz differ diff --git a/.next/cache/webpack/server-development/16.pack.gz b/.next/cache/webpack/server-development/16.pack.gz new file mode 100644 index 00000000..e5a5f0c5 Binary files /dev/null and b/.next/cache/webpack/server-development/16.pack.gz differ diff --git a/.next/cache/webpack/server-development/17.pack.gz b/.next/cache/webpack/server-development/17.pack.gz new file mode 100644 index 00000000..e974d444 Binary files /dev/null and b/.next/cache/webpack/server-development/17.pack.gz differ diff --git a/.next/cache/webpack/server-development/3.pack.gz b/.next/cache/webpack/server-development/3.pack.gz index f1fcfeee..feebbacf 100644 Binary files a/.next/cache/webpack/server-development/3.pack.gz and b/.next/cache/webpack/server-development/3.pack.gz differ diff --git a/.next/cache/webpack/server-development/4.pack.gz b/.next/cache/webpack/server-development/4.pack.gz index d40ca31c..0faa1b44 100644 Binary files a/.next/cache/webpack/server-development/4.pack.gz and b/.next/cache/webpack/server-development/4.pack.gz differ diff --git a/.next/cache/webpack/server-development/6.pack.gz b/.next/cache/webpack/server-development/6.pack.gz index dae9eb3d..54314690 100644 Binary files a/.next/cache/webpack/server-development/6.pack.gz and b/.next/cache/webpack/server-development/6.pack.gz differ diff --git a/.next/cache/webpack/server-development/7.pack.gz b/.next/cache/webpack/server-development/7.pack.gz index 63a28e65..ff8bed74 100644 Binary files a/.next/cache/webpack/server-development/7.pack.gz and b/.next/cache/webpack/server-development/7.pack.gz differ diff --git a/.next/cache/webpack/server-development/index.pack.gz b/.next/cache/webpack/server-development/index.pack.gz index e29ed0af..c8dacf03 100644 Binary files a/.next/cache/webpack/server-development/index.pack.gz and b/.next/cache/webpack/server-development/index.pack.gz differ diff --git a/.next/cache/webpack/server-development/index.pack.gz.old b/.next/cache/webpack/server-development/index.pack.gz.old index dd09e012..6146f3b0 100644 Binary files a/.next/cache/webpack/server-development/index.pack.gz.old and b/.next/cache/webpack/server-development/index.pack.gz.old differ diff --git a/.next/server/_error.js b/.next/server/_error.js new file mode 100644 index 00000000..8d8133c1 --- /dev/null +++ b/.next/server/_error.js @@ -0,0 +1,76 @@ +"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/). + */ +(() => { +var exports = {}; +exports.id = "/_error"; +exports.ids = ["/_error"]; +exports.modules = { + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D! ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/pages/module.compiled */ \"./node_modules/next/dist/server/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var next_dist_pages_document__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/pages/_document */ \"./node_modules/next/dist/pages/_document.js\");\n/* harmony import */ var next_dist_pages_document__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_pages_document__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_dist_pages_app__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/dist/pages/_app */ \"./node_modules/next/dist/pages/_app.js\");\n/* harmony import */ var next_dist_pages_app__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_pages_app__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./node_modules/next/dist/pages/_error.js */ \"./node_modules/next/dist/pages/_error.js\");\n/* harmony import */ var _node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n// Import the app and document modules.\n\n\n// Import the userland code.\n\n// Re-export the component (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__, 'default'));\n// Re-export methods.\nconst getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__, 'getStaticProps');\nconst getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__, 'getStaticPaths');\nconst getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__, 'getServerSideProps');\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__, 'config');\nconst reportWebVitals = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__, 'reportWebVitals');\n// Re-export legacy methods.\nconst unstable_getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__, 'unstable_getStaticProps');\nconst unstable_getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__, 'unstable_getStaticPaths');\nconst unstable_getStaticParams = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__, 'unstable_getStaticParams');\nconst unstable_getServerProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__, 'unstable_getServerProps');\nconst unstable_getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(_node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__, 'unstable_getServerSideProps');\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n page: \"/_error\",\n pathname: \"/_error\",\n // The following aren't used in production.\n bundlePath: '',\n filename: ''\n },\n components: {\n // default export might not exist when optimized for data only\n App: (next_dist_pages_app__WEBPACK_IMPORTED_MODULE_4___default()),\n Document: (next_dist_pages_document__WEBPACK_IMPORTED_MODULE_3___default())\n },\n userland: _node_modules_next_dist_pages_error_js__WEBPACK_IMPORTED_MODULE_5__\n});\n\n//# sourceMappingURL=pages.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXJvdXRlLWxvYWRlci9pbmRleC5qcz9raW5kPVBBR0VTJnBhZ2U9JTJGX2Vycm9yJnByZWZlcnJlZFJlZ2lvbj0mYWJzb2x1dGVQYWdlUGF0aD0uJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZwYWdlcyUyRl9lcnJvci5qcyZhYnNvbHV0ZUFwcFBhdGg9bmV4dCUyRmRpc3QlMkZwYWdlcyUyRl9hcHAmYWJzb2x1dGVEb2N1bWVudFBhdGg9bmV4dCUyRmRpc3QlMkZwYWdlcyUyRl9kb2N1bWVudCZtaWRkbGV3YXJlQ29uZmlnQmFzZTY0PWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF3RjtBQUNoQztBQUNFO0FBQzFEO0FBQ3NEO0FBQ1Y7QUFDNUM7QUFDcUU7QUFDckU7QUFDQSxpRUFBZSx3RUFBSyxDQUFDLG1FQUFRLFlBQVksRUFBQztBQUMxQztBQUNPLHVCQUF1Qix3RUFBSyxDQUFDLG1FQUFRO0FBQ3JDLHVCQUF1Qix3RUFBSyxDQUFDLG1FQUFRO0FBQ3JDLDJCQUEyQix3RUFBSyxDQUFDLG1FQUFRO0FBQ3pDLGVBQWUsd0VBQUssQ0FBQyxtRUFBUTtBQUM3Qix3QkFBd0Isd0VBQUssQ0FBQyxtRUFBUTtBQUM3QztBQUNPLGdDQUFnQyx3RUFBSyxDQUFDLG1FQUFRO0FBQzlDLGdDQUFnQyx3RUFBSyxDQUFDLG1FQUFRO0FBQzlDLGlDQUFpQyx3RUFBSyxDQUFDLG1FQUFRO0FBQy9DLGdDQUFnQyx3RUFBSyxDQUFDLG1FQUFRO0FBQzlDLG9DQUFvQyx3RUFBSyxDQUFDLG1FQUFRO0FBQ3pEO0FBQ08sd0JBQXdCLGtHQUFnQjtBQUMvQztBQUNBLGNBQWMsa0VBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsYUFBYSw0REFBVztBQUN4QixrQkFBa0IsaUVBQWdCO0FBQ2xDLEtBQUs7QUFDTCxZQUFZO0FBQ1osQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBhZ2VzUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL21vZHVsZS5jb21waWxlZFwiO1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcm91dGUta2luZFwiO1xuaW1wb3J0IHsgaG9pc3QgfSBmcm9tIFwibmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzXCI7XG4vLyBJbXBvcnQgdGhlIGFwcCBhbmQgZG9jdW1lbnQgbW9kdWxlcy5cbmltcG9ydCAqIGFzIGRvY3VtZW50IGZyb20gXCJuZXh0L2Rpc3QvcGFnZXMvX2RvY3VtZW50XCI7XG5pbXBvcnQgKiBhcyBhcHAgZnJvbSBcIm5leHQvZGlzdC9wYWdlcy9fYXBwXCI7XG4vLyBJbXBvcnQgdGhlIHVzZXJsYW5kIGNvZGUuXG5pbXBvcnQgKiBhcyB1c2VybGFuZCBmcm9tIFwiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qc1wiO1xuLy8gUmUtZXhwb3J0IHRoZSBjb21wb25lbnQgKHNob3VsZCBiZSB0aGUgZGVmYXVsdCBleHBvcnQpLlxuZXhwb3J0IGRlZmF1bHQgaG9pc3QodXNlcmxhbmQsICdkZWZhdWx0Jyk7XG4vLyBSZS1leHBvcnQgbWV0aG9kcy5cbmV4cG9ydCBjb25zdCBnZXRTdGF0aWNQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCAnZ2V0U3RhdGljUHJvcHMnKTtcbmV4cG9ydCBjb25zdCBnZXRTdGF0aWNQYXRocyA9IGhvaXN0KHVzZXJsYW5kLCAnZ2V0U3RhdGljUGF0aHMnKTtcbmV4cG9ydCBjb25zdCBnZXRTZXJ2ZXJTaWRlUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgJ2dldFNlcnZlclNpZGVQcm9wcycpO1xuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IGhvaXN0KHVzZXJsYW5kLCAnY29uZmlnJyk7XG5leHBvcnQgY29uc3QgcmVwb3J0V2ViVml0YWxzID0gaG9pc3QodXNlcmxhbmQsICdyZXBvcnRXZWJWaXRhbHMnKTtcbi8vIFJlLWV4cG9ydCBsZWdhY3kgbWV0aG9kcy5cbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCAndW5zdGFibGVfZ2V0U3RhdGljUHJvcHMnKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQYXRocyA9IGhvaXN0KHVzZXJsYW5kLCAndW5zdGFibGVfZ2V0U3RhdGljUGF0aHMnKTtcbmV4cG9ydCBjb25zdCB1bnN0YWJsZV9nZXRTdGF0aWNQYXJhbXMgPSBob2lzdCh1c2VybGFuZCwgJ3Vuc3RhYmxlX2dldFN0YXRpY1BhcmFtcycpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFNlcnZlclByb3BzID0gaG9pc3QodXNlcmxhbmQsICd1bnN0YWJsZV9nZXRTZXJ2ZXJQcm9wcycpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFNlcnZlclNpZGVQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCAndW5zdGFibGVfZ2V0U2VydmVyU2lkZVByb3BzJyk7XG4vLyBDcmVhdGUgYW5kIGV4cG9ydCB0aGUgcm91dGUgbW9kdWxlIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbmV4cG9ydCBjb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBQYWdlc1JvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5QQUdFUyxcbiAgICAgICAgcGFnZTogXCIvX2Vycm9yXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9fZXJyb3JcIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiAnJyxcbiAgICAgICAgZmlsZW5hbWU6ICcnXG4gICAgfSxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIC8vIGRlZmF1bHQgZXhwb3J0IG1pZ2h0IG5vdCBleGlzdCB3aGVuIG9wdGltaXplZCBmb3IgZGF0YSBvbmx5XG4gICAgICAgIEFwcDogYXBwLmRlZmF1bHQsXG4gICAgICAgIERvY3VtZW50OiBkb2N1bWVudC5kZWZhdWx0XG4gICAgfSxcbiAgICB1c2VybGFuZFxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhZ2VzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!\n"); + +/***/ }), + +/***/ "next/dist/compiled/next-server/pages.runtime.dev.js": +/*!**********************************************************************!*\ + !*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***! + \**********************************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/compiled/next-server/pages.runtime.dev.js"); + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +module.exports = require("react"); + +/***/ }), + +/***/ "react/jsx-runtime": +/*!************************************!*\ + !*** external "react/jsx-runtime" ***! + \************************************/ +/***/ ((module) => { + +module.exports = require("react/jsx-runtime"); + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +module.exports = require("path"); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("./webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"))); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/app-paths-manifest.json b/.next/server/app-paths-manifest.json index 523c2ecd..98d61fca 100644 --- a/.next/server/app-paths-manifest.json +++ b/.next/server/app-paths-manifest.json @@ -1,3 +1,4 @@ { - "/_not-found/page": "app/_not-found/page.js" + "/api/monitor/route": "app/api/monitor/route.js", + "/page": "app/page.js" } \ No newline at end of file diff --git a/.next/server/app/_not-found/page_client-reference-manifest.js b/.next/server/app/_not-found/page_client-reference-manifest.js index a5e6c2c5..ec4fb952 100644 --- a/.next/server/app/_not-found/page_client-reference-manifest.js +++ b/.next/server/app/_not-found/page_client-reference-manifest.js @@ -1 +1 @@ -globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/globals.css":{"id":"(app-pages-browser)/./src/app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/client-segment.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/lib/metadata/metadata-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/lib/metadata/metadata-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false}},"entryCSSFiles":{"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/":[],"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/layout":[{"inlined":false,"path":"static/css/app/layout.css"}],"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/_not-found/page":[]},"rscModuleMapping":{"(app-pages-browser)/./src/app/globals.css":{"*":{"id":"(rsc)/./src/app/globals.css","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}} \ No newline at end of file +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(ssr)/./src/app/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/globals.css":{"id":"(app-pages-browser)/./src/app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/client-segment.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/lib/metadata/metadata-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/lib/metadata/metadata-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx":{"id":"(app-pages-browser)/./src/app/page.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false}},"entryCSSFiles":{"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/":[],"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/layout":[{"inlined":false,"path":"static/css/app/layout.css"}],"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page":[],"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/_not-found/page":[]},"rscModuleMapping":{"(app-pages-browser)/./src/app/globals.css":{"*":{"id":"(rsc)/./src/app/globals.css","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(rsc)/./src/app/page.tsx","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}} \ No newline at end of file diff --git a/.next/server/app/api/monitor/route.js b/.next/server/app/api/monitor/route.js new file mode 100644 index 00000000..ce3aef28 --- /dev/null +++ b/.next/server/app/api/monitor/route.js @@ -0,0 +1,144 @@ +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(() => { +var exports = {}; +exports.id = "app/api/monitor/route"; +exports.ids = ["app/api/monitor/route"]; +exports.modules = { + +/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js": +/*!*************************************************************************!*\ + !*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***! + \*************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js"); + +/***/ }), + +/***/ "next/dist/compiled/next-server/app-route.runtime.dev.js": +/*!**************************************************************************!*\ + !*** external "next/dist/compiled/next-server/app-route.runtime.dev.js" ***! + \**************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/compiled/next-server/app-route.runtime.dev.js"); + +/***/ }), + +/***/ "../app-render/after-task-async-storage.external": +/*!***********************************************************************************!*\ + !*** external "next/dist/server/app-render/after-task-async-storage.external.js" ***! + \***********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/server/app-render/after-task-async-storage.external.js"); + +/***/ }), + +/***/ "../app-render/work-async-storage.external": +/*!*****************************************************************************!*\ + !*** external "next/dist/server/app-render/work-async-storage.external.js" ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/server/app-render/work-async-storage.external.js"); + +/***/ }), + +/***/ "./work-unit-async-storage.external": +/*!**********************************************************************************!*\ + !*** external "next/dist/server/app-render/work-unit-async-storage.external.js" ***! + \**********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js"); + +/***/ }), + +/***/ "fs": +/*!*********************!*\ + !*** external "fs" ***! + \*********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("fs"); + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("path"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapi%2Fmonitor%2Froute&page=%2Fapi%2Fmonitor%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fmonitor%2Froute.ts&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!": +/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapi%2Fmonitor%2Froute&page=%2Fapi%2Fmonitor%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fmonitor%2Froute.ts&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***! + \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__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 */ patchFetch: () => (/* binding */ patchFetch),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ serverHooks: () => (/* binding */ serverHooks),\n/* harmony export */ workAsyncStorage: () => (/* binding */ workAsyncStorage),\n/* harmony export */ workUnitAsyncStorage: () => (/* binding */ workUnitAsyncStorage)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/app-route/module.compiled */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-route/module.compiled.js\");\n/* harmony import */ var next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(rsc)/./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/lib/patch-fetch */ \"(rsc)/./node_modules/next/dist/server/lib/patch-fetch.js\");\n/* harmony import */ var next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _Users_mattbruce_Documents_Projects_OpenClaw_Web_heartbeat_monitor_src_app_api_monitor_route_ts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./src/app/api/monitor/route.ts */ \"(rsc)/./src/app/api/monitor/route.ts\");\n\n\n\n\n// We inject the nextConfigOutput here so that we can use them in the route\n// module.\nconst nextConfigOutput = \"\"\nconst routeModule = new next_dist_server_route_modules_app_route_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppRouteRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_ROUTE,\n page: \"/api/monitor/route\",\n pathname: \"/api/monitor\",\n filename: \"route\",\n bundlePath: \"app/api/monitor/route\"\n },\n resolvedPagePath: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/api/monitor/route.ts\",\n nextConfigOutput,\n userland: _Users_mattbruce_Documents_Projects_OpenClaw_Web_heartbeat_monitor_src_app_api_monitor_route_ts__WEBPACK_IMPORTED_MODULE_3__\n});\n// Pull out the exports that we need to expose from the module. This should\n// be eliminated when we've moved the other routes to the new format. These\n// are used to hook into the route.\nconst { workAsyncStorage, workUnitAsyncStorage, serverHooks } = routeModule;\nfunction patchFetch() {\n return (0,next_dist_server_lib_patch_fetch__WEBPACK_IMPORTED_MODULE_2__.patchFetch)({\n workAsyncStorage,\n workUnitAsyncStorage\n });\n}\n\n\n//# sourceMappingURL=app-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIvaW5kZXguanM/bmFtZT1hcHAlMkZhcGklMkZtb25pdG9yJTJGcm91dGUmcGFnZT0lMkZhcGklMkZtb25pdG9yJTJGcm91dGUmYXBwUGF0aHM9JnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGYXBpJTJGbW9uaXRvciUyRnJvdXRlLnRzJmFwcERpcj0lMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciUyRnNyYyUyRmFwcCZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPWpzJnJvb3REaXI9JTJGVXNlcnMlMkZtYXR0YnJ1Y2UlMkZEb2N1bWVudHMlMkZQcm9qZWN0cyUyRk9wZW5DbGF3JTJGV2ViJTJGaGVhcnRiZWF0LW1vbml0b3ImaXNEZXY9dHJ1ZSZ0c2NvbmZpZ1BhdGg9dHNjb25maWcuanNvbiZiYXNlUGF0aD0mYXNzZXRQcmVmaXg9Jm5leHRDb25maWdPdXRwdXQ9JnByZWZlcnJlZFJlZ2lvbj0mbWlkZGxld2FyZUNvbmZpZz1lMzAlM0QhIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQStGO0FBQ3ZDO0FBQ3FCO0FBQytDO0FBQzVIO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qix5R0FBbUI7QUFDM0M7QUFDQSxjQUFjLGtFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxZQUFZO0FBQ1osQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLFFBQVEsc0RBQXNEO0FBQzlEO0FBQ0EsV0FBVyw0RUFBVztBQUN0QjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQzBGOztBQUUxRiIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcFJvdXRlUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1yb3V0ZS9tb2R1bGUuY29tcGlsZWRcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLWtpbmRcIjtcbmltcG9ydCB7IHBhdGNoRmV0Y2ggYXMgX3BhdGNoRmV0Y2ggfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvcGF0Y2gtZmV0Y2hcIjtcbmltcG9ydCAqIGFzIHVzZXJsYW5kIGZyb20gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivc3JjL2FwcC9hcGkvbW9uaXRvci9yb3V0ZS50c1wiO1xuLy8gV2UgaW5qZWN0IHRoZSBuZXh0Q29uZmlnT3V0cHV0IGhlcmUgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZW0gaW4gdGhlIHJvdXRlXG4vLyBtb2R1bGUuXG5jb25zdCBuZXh0Q29uZmlnT3V0cHV0ID0gXCJcIlxuY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUm91dGVSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuQVBQX1JPVVRFLFxuICAgICAgICBwYWdlOiBcIi9hcGkvbW9uaXRvci9yb3V0ZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvYXBpL21vbml0b3JcIixcbiAgICAgICAgZmlsZW5hbWU6IFwicm91dGVcIixcbiAgICAgICAgYnVuZGxlUGF0aDogXCJhcHAvYXBpL21vbml0b3Ivcm91dGVcIlxuICAgIH0sXG4gICAgcmVzb2x2ZWRQYWdlUGF0aDogXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivc3JjL2FwcC9hcGkvbW9uaXRvci9yb3V0ZS50c1wiLFxuICAgIG5leHRDb25maWdPdXRwdXQsXG4gICAgdXNlcmxhbmRcbn0pO1xuLy8gUHVsbCBvdXQgdGhlIGV4cG9ydHMgdGhhdCB3ZSBuZWVkIHRvIGV4cG9zZSBmcm9tIHRoZSBtb2R1bGUuIFRoaXMgc2hvdWxkXG4vLyBiZSBlbGltaW5hdGVkIHdoZW4gd2UndmUgbW92ZWQgdGhlIG90aGVyIHJvdXRlcyB0byB0aGUgbmV3IGZvcm1hdC4gVGhlc2Vcbi8vIGFyZSB1c2VkIHRvIGhvb2sgaW50byB0aGUgcm91dGUuXG5jb25zdCB7IHdvcmtBc3luY1N0b3JhZ2UsIHdvcmtVbml0QXN5bmNTdG9yYWdlLCBzZXJ2ZXJIb29rcyB9ID0gcm91dGVNb2R1bGU7XG5mdW5jdGlvbiBwYXRjaEZldGNoKCkge1xuICAgIHJldHVybiBfcGF0Y2hGZXRjaCh7XG4gICAgICAgIHdvcmtBc3luY1N0b3JhZ2UsXG4gICAgICAgIHdvcmtVbml0QXN5bmNTdG9yYWdlXG4gICAgfSk7XG59XG5leHBvcnQgeyByb3V0ZU1vZHVsZSwgd29ya0FzeW5jU3RvcmFnZSwgd29ya1VuaXRBc3luY1N0b3JhZ2UsIHNlcnZlckhvb2tzLCBwYXRjaEZldGNoLCAgfTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXJvdXRlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapi%2Fmonitor%2Froute&page=%2Fapi%2Fmonitor%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fmonitor%2Froute.ts&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true!": +/*!******************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true! ***! + \******************************************************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true!": +/*!******************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=true! ***! + \******************************************************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "(rsc)/./src/app/api/monitor/route.ts": +/*!**************************************!*\ + !*** ./src/app/api/monitor/route.ts ***! + \**************************************/ +/***/ ((__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 */ GET: () => (/* binding */ GET),\n/* harmony export */ POST: () => (/* binding */ POST)\n/* harmony export */ });\n/* harmony import */ var next_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/server */ \"(rsc)/./node_modules/next/dist/api/server.js\");\n/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! fs */ \"fs\");\n/* harmony import */ var fs__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(fs__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! path */ \"path\");\n/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nconst APPS_FILE = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(process.cwd(), \"data\", \"apps.json\");\nconst STATUS_FILE = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(process.cwd(), \"data\", \"status.json\");\nfunction getApps() {\n if (!(0,fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(APPS_FILE)) return [];\n try {\n const data = JSON.parse((0,fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync)(APPS_FILE, \"utf-8\"));\n return data.apps || [];\n } catch {\n return [];\n }\n}\nfunction saveApps(apps) {\n const dir = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(process.cwd(), \"data\");\n if (!(0,fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(dir)) (__webpack_require__(/*! fs */ \"fs\").mkdirSync)(dir, {\n recursive: true\n });\n (0,fs__WEBPACK_IMPORTED_MODULE_1__.writeFileSync)(APPS_FILE, JSON.stringify({\n apps\n }, null, 2));\n}\nfunction getStatus() {\n if (!(0,fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(STATUS_FILE)) return [];\n try {\n const data = JSON.parse((0,fs__WEBPACK_IMPORTED_MODULE_1__.readFileSync)(STATUS_FILE, \"utf-8\"));\n return data.entries || [];\n } catch {\n return [];\n }\n}\nfunction saveStatus(entries) {\n const dir = (0,path__WEBPACK_IMPORTED_MODULE_2__.join)(process.cwd(), \"data\");\n if (!(0,fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(dir)) (__webpack_require__(/*! fs */ \"fs\").mkdirSync)(dir, {\n recursive: true\n });\n (0,fs__WEBPACK_IMPORTED_MODULE_1__.writeFileSync)(STATUS_FILE, JSON.stringify({\n entries\n }, null, 2));\n}\nasync function GET(request) {\n const { searchParams } = new URL(request.url);\n const type = searchParams.get(\"type\");\n if (type === \"apps\") {\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n apps: getApps()\n });\n }\n if (type === \"status\") {\n const appId = searchParams.get(\"appId\");\n const entries = getStatus();\n if (appId) {\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n entries: entries.filter((e)=>e.appId === appId).slice(-100)\n });\n }\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n entries: entries.slice(-500)\n });\n }\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n apps: getApps(),\n status: getStatus().slice(-100)\n });\n}\nasync function POST(request) {\n const body = await request.json();\n if (body.action === \"addApp\") {\n const apps = getApps();\n const newApp = {\n ...body.app,\n id: body.app.id || Date.now().toString()\n };\n apps.push(newApp);\n saveApps(apps);\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json(newApp);\n }\n if (body.action === \"updateApp\") {\n const apps = getApps();\n const index = apps.findIndex((a)=>a.id === body.id);\n if (index >= 0) {\n apps[index] = {\n ...apps[index],\n ...body.updates\n };\n saveApps(apps);\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json(apps[index]);\n }\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n error: \"App not found\"\n }, {\n status: 404\n });\n }\n if (body.action === \"deleteApp\") {\n const apps = getApps().filter((a)=>a.id !== body.id);\n saveApps(apps);\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n success: true\n });\n }\n if (body.action === \"recordStatus\") {\n const entries = getStatus();\n entries.push(body.entry);\n // Keep last 1000 entries\n if (entries.length > 1000) entries.shift();\n saveStatus(entries);\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n success: true\n });\n }\n return next_server__WEBPACK_IMPORTED_MODULE_0__.NextResponse.json({\n error: \"Unknown action\"\n }, {\n status: 400\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2FwaS9tb25pdG9yL3JvdXRlLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBMkM7QUFDa0I7QUFDakM7QUFFNUIsTUFBTUssWUFBWUQsMENBQUlBLENBQUNFLFFBQVFDLEdBQUcsSUFBSSxRQUFRO0FBQzlDLE1BQU1DLGNBQWNKLDBDQUFJQSxDQUFDRSxRQUFRQyxHQUFHLElBQUksUUFBUTtBQStCaEQsU0FBU0U7SUFDUCxJQUFJLENBQUNOLDhDQUFVQSxDQUFDRSxZQUFZLE9BQU8sRUFBRTtJQUNyQyxJQUFJO1FBQ0YsTUFBTUssT0FBT0MsS0FBS0MsS0FBSyxDQUFDWCxnREFBWUEsQ0FBQ0ksV0FBVztRQUNoRCxPQUFPSyxLQUFLRyxJQUFJLElBQUksRUFBRTtJQUN4QixFQUFFLE9BQU07UUFDTixPQUFPLEVBQUU7SUFDWDtBQUNGO0FBRUEsU0FBU0MsU0FBU0QsSUFBVztJQUMzQixNQUFNRSxNQUFNWCwwQ0FBSUEsQ0FBQ0UsUUFBUUMsR0FBRyxJQUFJO0lBQ2hDLElBQUksQ0FBQ0osOENBQVVBLENBQUNZLE1BQU1DLCtDQUF1QixDQUFDRCxLQUFLO1FBQUVHLFdBQVc7SUFBSztJQUNyRWhCLGlEQUFhQSxDQUFDRyxXQUFXTSxLQUFLUSxTQUFTLENBQUM7UUFBRU47SUFBSyxHQUFHLE1BQU07QUFDMUQ7QUFFQSxTQUFTTztJQUNQLElBQUksQ0FBQ2pCLDhDQUFVQSxDQUFDSyxjQUFjLE9BQU8sRUFBRTtJQUN2QyxJQUFJO1FBQ0YsTUFBTUUsT0FBT0MsS0FBS0MsS0FBSyxDQUFDWCxnREFBWUEsQ0FBQ08sYUFBYTtRQUNsRCxPQUFPRSxLQUFLVyxPQUFPLElBQUksRUFBRTtJQUMzQixFQUFFLE9BQU07UUFDTixPQUFPLEVBQUU7SUFDWDtBQUNGO0FBRUEsU0FBU0MsV0FBV0QsT0FBc0I7SUFDeEMsTUFBTU4sTUFBTVgsMENBQUlBLENBQUNFLFFBQVFDLEdBQUcsSUFBSTtJQUNoQyxJQUFJLENBQUNKLDhDQUFVQSxDQUFDWSxNQUFNQywrQ0FBdUIsQ0FBQ0QsS0FBSztRQUFFRyxXQUFXO0lBQUs7SUFDckVoQixpREFBYUEsQ0FBQ00sYUFBYUcsS0FBS1EsU0FBUyxDQUFDO1FBQUVFO0lBQVEsR0FBRyxNQUFNO0FBQy9EO0FBRU8sZUFBZUUsSUFBSUMsT0FBZ0I7SUFDeEMsTUFBTSxFQUFFQyxZQUFZLEVBQUUsR0FBRyxJQUFJQyxJQUFJRixRQUFRRyxHQUFHO0lBQzVDLE1BQU1DLE9BQU9ILGFBQWFJLEdBQUcsQ0FBQztJQUU5QixJQUFJRCxTQUFTLFFBQVE7UUFDbkIsT0FBTzVCLHFEQUFZQSxDQUFDOEIsSUFBSSxDQUFDO1lBQUVqQixNQUFNSjtRQUFVO0lBQzdDO0lBRUEsSUFBSW1CLFNBQVMsVUFBVTtRQUNyQixNQUFNRyxRQUFRTixhQUFhSSxHQUFHLENBQUM7UUFDL0IsTUFBTVIsVUFBVUQ7UUFDaEIsSUFBSVcsT0FBTztZQUNULE9BQU8vQixxREFBWUEsQ0FBQzhCLElBQUksQ0FBQztnQkFDdkJULFNBQVNBLFFBQVFXLE1BQU0sQ0FBQyxDQUFDQyxJQUFNQSxFQUFFRixLQUFLLEtBQUtBLE9BQU9HLEtBQUssQ0FBQyxDQUFDO1lBQzNEO1FBQ0Y7UUFDQSxPQUFPbEMscURBQVlBLENBQUM4QixJQUFJLENBQUM7WUFBRVQsU0FBU0EsUUFBUWEsS0FBSyxDQUFDLENBQUM7UUFBSztJQUMxRDtJQUVBLE9BQU9sQyxxREFBWUEsQ0FBQzhCLElBQUksQ0FBQztRQUFFakIsTUFBTUo7UUFBVzBCLFFBQVFmLFlBQVljLEtBQUssQ0FBQyxDQUFDO0lBQUs7QUFDOUU7QUFFTyxlQUFlRSxLQUFLWixPQUFnQjtJQUN6QyxNQUFNYSxPQUFPLE1BQU1iLFFBQVFNLElBQUk7SUFFL0IsSUFBSU8sS0FBS0MsTUFBTSxLQUFLLFVBQVU7UUFDNUIsTUFBTXpCLE9BQU9KO1FBQ2IsTUFBTThCLFNBQWM7WUFDbEIsR0FBR0YsS0FBS0csR0FBRztZQUNYQyxJQUFJSixLQUFLRyxHQUFHLENBQUNDLEVBQUUsSUFBSUMsS0FBS0MsR0FBRyxHQUFHQyxRQUFRO1FBQ3hDO1FBQ0EvQixLQUFLZ0MsSUFBSSxDQUFDTjtRQUNWekIsU0FBU0Q7UUFDVCxPQUFPYixxREFBWUEsQ0FBQzhCLElBQUksQ0FBQ1M7SUFDM0I7SUFFQSxJQUFJRixLQUFLQyxNQUFNLEtBQUssYUFBYTtRQUMvQixNQUFNekIsT0FBT0o7UUFDYixNQUFNcUMsUUFBUWpDLEtBQUtrQyxTQUFTLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRVAsRUFBRSxLQUFLSixLQUFLSSxFQUFFO1FBQ3BELElBQUlLLFNBQVMsR0FBRztZQUNkakMsSUFBSSxDQUFDaUMsTUFBTSxHQUFHO2dCQUFFLEdBQUdqQyxJQUFJLENBQUNpQyxNQUFNO2dCQUFFLEdBQUdULEtBQUtZLE9BQU87WUFBQztZQUNoRG5DLFNBQVNEO1lBQ1QsT0FBT2IscURBQVlBLENBQUM4QixJQUFJLENBQUNqQixJQUFJLENBQUNpQyxNQUFNO1FBQ3RDO1FBQ0EsT0FBTzlDLHFEQUFZQSxDQUFDOEIsSUFBSSxDQUFDO1lBQUVvQixPQUFPO1FBQWdCLEdBQUc7WUFBRWYsUUFBUTtRQUFJO0lBQ3JFO0lBRUEsSUFBSUUsS0FBS0MsTUFBTSxLQUFLLGFBQWE7UUFDL0IsTUFBTXpCLE9BQU9KLFVBQVV1QixNQUFNLENBQUMsQ0FBQ2dCLElBQU1BLEVBQUVQLEVBQUUsS0FBS0osS0FBS0ksRUFBRTtRQUNyRDNCLFNBQVNEO1FBQ1QsT0FBT2IscURBQVlBLENBQUM4QixJQUFJLENBQUM7WUFBRXFCLFNBQVM7UUFBSztJQUMzQztJQUVBLElBQUlkLEtBQUtDLE1BQU0sS0FBSyxnQkFBZ0I7UUFDbEMsTUFBTWpCLFVBQVVEO1FBQ2hCQyxRQUFRd0IsSUFBSSxDQUFDUixLQUFLZSxLQUFLO1FBQ3ZCLHlCQUF5QjtRQUN6QixJQUFJL0IsUUFBUWdDLE1BQU0sR0FBRyxNQUFNaEMsUUFBUWlDLEtBQUs7UUFDeENoQyxXQUFXRDtRQUNYLE9BQU9yQixxREFBWUEsQ0FBQzhCLElBQUksQ0FBQztZQUFFcUIsU0FBUztRQUFLO0lBQzNDO0lBRUEsT0FBT25ELHFEQUFZQSxDQUFDOEIsSUFBSSxDQUFDO1FBQUVvQixPQUFPO0lBQWlCLEdBQUc7UUFBRWYsUUFBUTtJQUFJO0FBQ3RFIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivc3JjL2FwcC9hcGkvbW9uaXRvci9yb3V0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXh0UmVzcG9uc2UgfSBmcm9tIFwibmV4dC9zZXJ2ZXJcIjtcbmltcG9ydCB7IHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luYywgZXhpc3RzU3luYyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoXCI7XG5cbmNvbnN0IEFQUFNfRklMRSA9IGpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJkYXRhXCIsIFwiYXBwcy5qc29uXCIpO1xuY29uc3QgU1RBVFVTX0ZJTEUgPSBqb2luKHByb2Nlc3MuY3dkKCksIFwiZGF0YVwiLCBcInN0YXR1cy5qc29uXCIpO1xuXG5pbnRlcmZhY2UgQXBwIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB1cmw6IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xuICBwYXRoOiBzdHJpbmc7XG4gIGNvbW1hbmQ6IHN0cmluZztcbiAgY2F0ZWdvcnk6IHN0cmluZztcbiAgY29sb3I6IHN0cmluZztcbiAgZW5hYmxlZDogYm9vbGVhbjtcbn1cblxuaW50ZXJmYWNlIFN0YXR1c0VudHJ5IHtcbiAgYXBwSWQ6IHN0cmluZztcbiAgdGltZXN0YW1wOiBzdHJpbmc7XG4gIHN0YXR1czogXCJ1cFwiIHwgXCJkb3duXCI7XG4gIHJlc3BvbnNlVGltZT86IG51bWJlcjtcbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBBcHBzRGF0YSB7XG4gIGFwcHM6IEFwcFtdO1xufVxuXG5pbnRlcmZhY2UgU3RhdHVzRGF0YSB7XG4gIGVudHJpZXM6IFN0YXR1c0VudHJ5W107XG59XG5cbmZ1bmN0aW9uIGdldEFwcHMoKTogQXBwW10ge1xuICBpZiAoIWV4aXN0c1N5bmMoQVBQU19GSUxFKSkgcmV0dXJuIFtdO1xuICB0cnkge1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhBUFBTX0ZJTEUsIFwidXRmLThcIikpO1xuICAgIHJldHVybiBkYXRhLmFwcHMgfHwgW107XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBbXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzYXZlQXBwcyhhcHBzOiBBcHBbXSkge1xuICBjb25zdCBkaXIgPSBqb2luKHByb2Nlc3MuY3dkKCksIFwiZGF0YVwiKTtcbiAgaWYgKCFleGlzdHNTeW5jKGRpcikpIHJlcXVpcmUoXCJmc1wiKS5ta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgd3JpdGVGaWxlU3luYyhBUFBTX0ZJTEUsIEpTT04uc3RyaW5naWZ5KHsgYXBwcyB9LCBudWxsLCAyKSk7XG59XG5cbmZ1bmN0aW9uIGdldFN0YXR1cygpOiBTdGF0dXNFbnRyeVtdIHtcbiAgaWYgKCFleGlzdHNTeW5jKFNUQVRVU19GSUxFKSkgcmV0dXJuIFtdO1xuICB0cnkge1xuICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhTVEFUVVNfRklMRSwgXCJ1dGYtOFwiKSk7XG4gICAgcmV0dXJuIGRhdGEuZW50cmllcyB8fCBbXTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNhdmVTdGF0dXMoZW50cmllczogU3RhdHVzRW50cnlbXSkge1xuICBjb25zdCBkaXIgPSBqb2luKHByb2Nlc3MuY3dkKCksIFwiZGF0YVwiKTtcbiAgaWYgKCFleGlzdHNTeW5jKGRpcikpIHJlcXVpcmUoXCJmc1wiKS5ta2RpclN5bmMoZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgd3JpdGVGaWxlU3luYyhTVEFUVVNfRklMRSwgSlNPTi5zdHJpbmdpZnkoeyBlbnRyaWVzIH0sIG51bGwsIDIpKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIEdFVChyZXF1ZXN0OiBSZXF1ZXN0KSB7XG4gIGNvbnN0IHsgc2VhcmNoUGFyYW1zIH0gPSBuZXcgVVJMKHJlcXVlc3QudXJsKTtcbiAgY29uc3QgdHlwZSA9IHNlYXJjaFBhcmFtcy5nZXQoXCJ0eXBlXCIpO1xuXG4gIGlmICh0eXBlID09PSBcImFwcHNcIikge1xuICAgIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbih7IGFwcHM6IGdldEFwcHMoKSB9KTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBcInN0YXR1c1wiKSB7XG4gICAgY29uc3QgYXBwSWQgPSBzZWFyY2hQYXJhbXMuZ2V0KFwiYXBwSWRcIik7XG4gICAgY29uc3QgZW50cmllcyA9IGdldFN0YXR1cygpO1xuICAgIGlmIChhcHBJZCkge1xuICAgICAgcmV0dXJuIE5leHRSZXNwb25zZS5qc29uKHtcbiAgICAgICAgZW50cmllczogZW50cmllcy5maWx0ZXIoKGUpID0+IGUuYXBwSWQgPT09IGFwcElkKS5zbGljZSgtMTAwKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oeyBlbnRyaWVzOiBlbnRyaWVzLnNsaWNlKC01MDApIH0pO1xuICB9XG5cbiAgcmV0dXJuIE5leHRSZXNwb25zZS5qc29uKHsgYXBwczogZ2V0QXBwcygpLCBzdGF0dXM6IGdldFN0YXR1cygpLnNsaWNlKC0xMDApIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gUE9TVChyZXF1ZXN0OiBSZXF1ZXN0KSB7XG4gIGNvbnN0IGJvZHkgPSBhd2FpdCByZXF1ZXN0Lmpzb24oKTtcblxuICBpZiAoYm9keS5hY3Rpb24gPT09IFwiYWRkQXBwXCIpIHtcbiAgICBjb25zdCBhcHBzID0gZ2V0QXBwcygpO1xuICAgIGNvbnN0IG5ld0FwcDogQXBwID0ge1xuICAgICAgLi4uYm9keS5hcHAsXG4gICAgICBpZDogYm9keS5hcHAuaWQgfHwgRGF0ZS5ub3coKS50b1N0cmluZygpLFxuICAgIH07XG4gICAgYXBwcy5wdXNoKG5ld0FwcCk7XG4gICAgc2F2ZUFwcHMoYXBwcyk7XG4gICAgcmV0dXJuIE5leHRSZXNwb25zZS5qc29uKG5ld0FwcCk7XG4gIH1cblxuICBpZiAoYm9keS5hY3Rpb24gPT09IFwidXBkYXRlQXBwXCIpIHtcbiAgICBjb25zdCBhcHBzID0gZ2V0QXBwcygpO1xuICAgIGNvbnN0IGluZGV4ID0gYXBwcy5maW5kSW5kZXgoKGEpID0+IGEuaWQgPT09IGJvZHkuaWQpO1xuICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICBhcHBzW2luZGV4XSA9IHsgLi4uYXBwc1tpbmRleF0sIC4uLmJvZHkudXBkYXRlcyB9O1xuICAgICAgc2F2ZUFwcHMoYXBwcyk7XG4gICAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oYXBwc1tpbmRleF0pO1xuICAgIH1cbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oeyBlcnJvcjogXCJBcHAgbm90IGZvdW5kXCIgfSwgeyBzdGF0dXM6IDQwNCB9KTtcbiAgfVxuXG4gIGlmIChib2R5LmFjdGlvbiA9PT0gXCJkZWxldGVBcHBcIikge1xuICAgIGNvbnN0IGFwcHMgPSBnZXRBcHBzKCkuZmlsdGVyKChhKSA9PiBhLmlkICE9PSBib2R5LmlkKTtcbiAgICBzYXZlQXBwcyhhcHBzKTtcbiAgICByZXR1cm4gTmV4dFJlc3BvbnNlLmpzb24oeyBzdWNjZXNzOiB0cnVlIH0pO1xuICB9XG5cbiAgaWYgKGJvZHkuYWN0aW9uID09PSBcInJlY29yZFN0YXR1c1wiKSB7XG4gICAgY29uc3QgZW50cmllcyA9IGdldFN0YXR1cygpO1xuICAgIGVudHJpZXMucHVzaChib2R5LmVudHJ5KTtcbiAgICAvLyBLZWVwIGxhc3QgMTAwMCBlbnRyaWVzXG4gICAgaWYgKGVudHJpZXMubGVuZ3RoID4gMTAwMCkgZW50cmllcy5zaGlmdCgpO1xuICAgIHNhdmVTdGF0dXMoZW50cmllcyk7XG4gICAgcmV0dXJuIE5leHRSZXNwb25zZS5qc29uKHsgc3VjY2VzczogdHJ1ZSB9KTtcbiAgfVxuXG4gIHJldHVybiBOZXh0UmVzcG9uc2UuanNvbih7IGVycm9yOiBcIlVua25vd24gYWN0aW9uXCIgfSwgeyBzdGF0dXM6IDQwMCB9KTtcbn1cbiJdLCJuYW1lcyI6WyJOZXh0UmVzcG9uc2UiLCJyZWFkRmlsZVN5bmMiLCJ3cml0ZUZpbGVTeW5jIiwiZXhpc3RzU3luYyIsImpvaW4iLCJBUFBTX0ZJTEUiLCJwcm9jZXNzIiwiY3dkIiwiU1RBVFVTX0ZJTEUiLCJnZXRBcHBzIiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsImFwcHMiLCJzYXZlQXBwcyIsImRpciIsInJlcXVpcmUiLCJta2RpclN5bmMiLCJyZWN1cnNpdmUiLCJzdHJpbmdpZnkiLCJnZXRTdGF0dXMiLCJlbnRyaWVzIiwic2F2ZVN0YXR1cyIsIkdFVCIsInJlcXVlc3QiLCJzZWFyY2hQYXJhbXMiLCJVUkwiLCJ1cmwiLCJ0eXBlIiwiZ2V0IiwianNvbiIsImFwcElkIiwiZmlsdGVyIiwiZSIsInNsaWNlIiwic3RhdHVzIiwiUE9TVCIsImJvZHkiLCJhY3Rpb24iLCJuZXdBcHAiLCJhcHAiLCJpZCIsIkRhdGUiLCJub3ciLCJ0b1N0cmluZyIsInB1c2giLCJpbmRleCIsImZpbmRJbmRleCIsImEiLCJ1cGRhdGVzIiwiZXJyb3IiLCJzdWNjZXNzIiwiZW50cnkiLCJsZW5ndGgiLCJzaGlmdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/app/api/monitor/route.ts\n"); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../../../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fapi%2Fmonitor%2Froute&page=%2Fapi%2Fmonitor%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fmonitor%2Froute.ts&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"))); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/app/api/monitor/route_client-reference-manifest.js b/.next/server/app/api/monitor/route_client-reference-manifest.js new file mode 100644 index 00000000..9d333200 --- /dev/null +++ b/.next/server/app/api/monitor/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/monitor/route"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(ssr)/./src/app/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/globals.css":{"id":"(app-pages-browser)/./src/app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/client-segment.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/lib/metadata/metadata-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/lib/metadata/metadata-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx":{"id":"(app-pages-browser)/./src/app/page.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false}},"entryCSSFiles":{"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/":[],"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/layout":[{"inlined":false,"path":"static/css/app/layout.css"}],"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page":[],"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/api/monitor/route":[]},"rscModuleMapping":{"(app-pages-browser)/./src/app/globals.css":{"*":{"id":"(rsc)/./src/app/globals.css","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(rsc)/./src/app/page.tsx","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}} \ No newline at end of file diff --git a/.next/server/app/page.js b/.next/server/app/page.js new file mode 100644 index 00000000..6de50030 --- /dev/null +++ b/.next/server/app/page.js @@ -0,0 +1,218 @@ +/* + * ATTENTION: An "eval-source-map" devtool has been used. + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(() => { +var exports = {}; +exports.id = "app/page"; +exports.ids = ["app/page"]; +exports.modules = { + +/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js": +/*!*************************************************************************!*\ + !*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***! + \*************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js"); + +/***/ }), + +/***/ "../app-render/action-async-storage.external": +/*!*******************************************************************************!*\ + !*** external "next/dist/server/app-render/action-async-storage.external.js" ***! + \*******************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/server/app-render/action-async-storage.external.js"); + +/***/ }), + +/***/ "../app-render/after-task-async-storage.external": +/*!***********************************************************************************!*\ + !*** external "next/dist/server/app-render/after-task-async-storage.external.js" ***! + \***********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/server/app-render/after-task-async-storage.external.js"); + +/***/ }), + +/***/ "../app-render/work-async-storage.external": +/*!*****************************************************************************!*\ + !*** external "next/dist/server/app-render/work-async-storage.external.js" ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/server/app-render/work-async-storage.external.js"); + +/***/ }), + +/***/ "./work-unit-async-storage.external": +/*!**********************************************************************************!*\ + !*** external "next/dist/server/app-render/work-unit-async-storage.external.js" ***! + \**********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js"); + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +"use strict"; +module.exports = require("path"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__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 */ GlobalError: () => (/* reexport default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?91d2\");\n/* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(rsc)/./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\nconst module0 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.tsx */ \"(rsc)/./src/app/layout.tsx\"));\nconst module1 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23));\nconst module2 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/forbidden-error */ \"(rsc)/./node_modules/next/dist/client/components/forbidden-error.js\", 23));\nconst module3 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/unauthorized-error */ \"(rsc)/./node_modules/next/dist/client/components/unauthorized-error.js\", 23));\nconst page4 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(rsc)/./src/app/page.tsx\"));\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: ['__PAGE__', {}, {\n page: [page4, \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\"],\n \n }]\n },\n {\n 'layout': [module0, \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/layout.tsx\"],\n'not-found': [module1, \"next/dist/client/components/not-found-error\"],\n'forbidden': [module2, \"next/dist/client/components/forbidden-error\"],\n'unauthorized': [module3, \"next/dist/client/components/unauthorized-error\"],\n \n }\n ]\n }.children;\nconst pages = [\"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/page\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIvaW5kZXguanM/bmFtZT1hcHAlMkZwYWdlJnBhZ2U9JTJGcGFnZSZhcHBQYXRocz0lMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGcGFnZS50c3gmYXBwRGlyPSUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0JBQXNCLG9KQUEwSDtBQUNoSixzQkFBc0IsME5BQWdGO0FBQ3RHLHNCQUFzQiwwTkFBZ0Y7QUFDdEcsc0JBQXNCLGdPQUFtRjtBQUN6RyxvQkFBb0IsZ0pBQXdIO0FBRzFJO0FBQ3NEO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ3VCO0FBQzZEO0FBQ3BGLDZCQUE2QixtQkFBbUI7QUFDaEQ7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUN1RDtBQUN2RDtBQUNPLHdCQUF3Qix1R0FBa0I7QUFDakQ7QUFDQSxjQUFjLGtFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9kdWxlMCA9ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvbGF5b3V0LnRzeFwiKTtcbmNvbnN0IG1vZHVsZTEgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtZXJyb3JcIik7XG5jb25zdCBtb2R1bGUyID0gKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZm9yYmlkZGVuLWVycm9yXCIpO1xuY29uc3QgbW9kdWxlMyA9ICgpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3VuYXV0aG9yaXplZC1lcnJvclwiKTtcbmNvbnN0IHBhZ2U0ID0gKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivc3JjL2FwcC9wYWdlLnRzeFwiKTtcbmltcG9ydCB7IEFwcFBhZ2VSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkXCIgd2l0aCB7XG4gICAgJ3R1cmJvcGFjay10cmFuc2l0aW9uJzogJ25leHQtc3NyJ1xufTtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLWtpbmRcIjtcbi8vIFdlIGluamVjdCB0aGUgdHJlZSBhbmQgcGFnZXMgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IHRyZWUgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICcnLFxuICAgICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbJ19fUEFHRV9fJywge30sIHtcbiAgICAgICAgICBwYWdlOiBbcGFnZTQsIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvcGFnZS50c3hcIl0sXG4gICAgICAgICAgXG4gICAgICAgIH1dXG4gICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICdsYXlvdXQnOiBbbW9kdWxlMCwgXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivc3JjL2FwcC9sYXlvdXQudHN4XCJdLFxuJ25vdC1mb3VuZCc6IFttb2R1bGUxLCBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtZXJyb3JcIl0sXG4nZm9yYmlkZGVuJzogW21vZHVsZTIsIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2ZvcmJpZGRlbi1lcnJvclwiXSxcbid1bmF1dGhvcml6ZWQnOiBbbW9kdWxlMywgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvdW5hdXRob3JpemVkLWVycm9yXCJdLFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0uY2hpbGRyZW47XG5jb25zdCBwYWdlcyA9IFtcIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9zcmMvYXBwL3BhZ2UudHN4XCJdO1xuZXhwb3J0IHsgdHJlZSwgcGFnZXMgfTtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmFsRXJyb3IgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCI7XG5jb25zdCBfX25leHRfYXBwX3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX19cbmNvbnN0IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKClcbmV4cG9ydCBjb25zdCBfX25leHRfYXBwX18gPSB7XG4gICAgcmVxdWlyZTogX19uZXh0X2FwcF9yZXF1aXJlX18sXG4gICAgbG9hZENodW5rOiBfX25leHRfYXBwX2xvYWRfY2h1bmtfX1xufTtcbmV4cG9ydCAqIGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvZW50cnktYmFzZVwiO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUGFnZVJvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgcGFnZTogXCIvcGFnZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogJycsXG4gICAgICAgIGZpbGVuYW1lOiAnJyxcbiAgICAgICAgYXBwUGF0aHM6IFtdXG4gICAgfSxcbiAgICB1c2VybGFuZDoge1xuICAgICAgICBsb2FkZXJUcmVlOiB0cmVlXG4gICAgfVxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1wYWdlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + +eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-page.js */ \"(rsc)/./node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-segment.js */ \"(rsc)/./node_modules/next/dist/client/components/client-segment.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(rsc)/./node_modules/next/dist/client/components/layout-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/metadata/metadata-boundary.js */ \"(rsc)/./node_modules/next/dist/lib/metadata/metadata-boundary.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGY2xpZW50LXBhZ2UuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZtYXR0YnJ1Y2UlMkZEb2N1bWVudHMlMkZQcm9qZWN0cyUyRk9wZW5DbGF3JTJGV2ViJTJGaGVhcnRiZWF0LW1vbml0b3IlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZjbGllbnQtc2VnbWVudC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmVycm9yLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGaHR0cC1hY2Nlc3MtZmFsbGJhY2slMkZlcnJvci1ib3VuZGFyeS5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmxheW91dC1yb3V0ZXIuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZtYXR0YnJ1Y2UlMkZEb2N1bWVudHMlMkZQcm9qZWN0cyUyRk9wZW5DbGF3JTJGV2ViJTJGaGVhcnRiZWF0LW1vbml0b3IlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZsaWIlMkZtZXRhZGF0YSUyRm1ldGFkYXRhLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSxvT0FBK0o7QUFDL0o7QUFDQSwwT0FBa0s7QUFDbEs7QUFDQSwwT0FBa0s7QUFDbEs7QUFDQSxvUkFBdUw7QUFDdkw7QUFDQSx3T0FBaUs7QUFDaks7QUFDQSxzUUFBZ0w7QUFDaEw7QUFDQSxzT0FBZ0siLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtc2VnbWVudC5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvbWV0YWRhdGEtYm91bmRhcnkuanNcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + +eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-page.js */ \"(ssr)/./node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-segment.js */ \"(ssr)/./node_modules/next/dist/client/components/client-segment.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/./node_modules/next/dist/client/components/layout-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/metadata/metadata-boundary.js */ \"(ssr)/./node_modules/next/dist/lib/metadata/metadata-boundary.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGY2xpZW50LXBhZ2UuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZtYXR0YnJ1Y2UlMkZEb2N1bWVudHMlMkZQcm9qZWN0cyUyRk9wZW5DbGF3JTJGV2ViJTJGaGVhcnRiZWF0LW1vbml0b3IlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZjbGllbnQtc2VnbWVudC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmVycm9yLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGaHR0cC1hY2Nlc3MtZmFsbGJhY2slMkZlcnJvci1ib3VuZGFyeS5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmxheW91dC1yb3V0ZXIuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZtYXR0YnJ1Y2UlMkZEb2N1bWVudHMlMkZQcm9qZWN0cyUyRk9wZW5DbGF3JTJGV2ViJTJGaGVhcnRiZWF0LW1vbml0b3IlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZyZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZsaWIlMkZtZXRhZGF0YSUyRm1ldGFkYXRhLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSxvT0FBK0o7QUFDL0o7QUFDQSwwT0FBa0s7QUFDbEs7QUFDQSwwT0FBa0s7QUFDbEs7QUFDQSxvUkFBdUw7QUFDdkw7QUFDQSx3T0FBaUs7QUFDaks7QUFDQSxzUUFBZ0w7QUFDaEw7QUFDQSxzT0FBZ0siLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtc2VnbWVudC5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2Vycm9yLWJvdW5kYXJ5LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvbWV0YWRhdGEvbWV0YWRhdGEtYm91bmRhcnkuanNcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true!": +/*!**************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! + \**************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true!": +/*!**************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! + \**************************************************************************************************************************************************************************************************************************************************************************/ +/***/ (() => { + + + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!": +/*!***********************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! + \***********************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + +eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(rsc)/./src/app/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGc3JjJTJGYXBwJTJGcGFnZS50c3glMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLGdKQUF3SCIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvcGFnZS50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!": +/*!***********************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***! + \***********************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + +eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(ssr)/./src/app/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGbWF0dGJydWNlJTJGRG9jdW1lbnRzJTJGUHJvamVjdHMlMkZPcGVuQ2xhdyUyRldlYiUyRmhlYXJ0YmVhdC1tb25pdG9yJTJGc3JjJTJGYXBwJTJGcGFnZS50c3glMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLGdKQUF3SCIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvcGFnZS50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n"); + +/***/ }), + +/***/ "(ssr)/./src/app/page.tsx": +/*!**************************!*\ + !*** ./src/app/page.tsx ***! + \**************************/ +/***/ ((__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 */ HeartbeatMonitor)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\");\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/activity.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/plus.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/server.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/trending-up.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/clock.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/globe.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/list.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/layout-grid.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/external-link.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(ssr)/./node_modules/lucide-react/dist/esm/icons/trash-2.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\nfunction HeartbeatMonitor() {\n const [apps, setApps] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [status, setStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [refreshing, setRefreshing] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showAddApp, setShowAddApp] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [viewMode, setViewMode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"grid\");\n const [newApp, setNewApp] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n name: \"\",\n description: \"\",\n url: \"http://localhost:\",\n port: 3000,\n path: \"\",\n command: \"npm run dev\",\n category: \"Other\",\n color: \"#22C55E\",\n enabled: true\n });\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"HeartbeatMonitor.useEffect\": ()=>{\n fetchData();\n const interval = setInterval(fetchData, 30000);\n return ({\n \"HeartbeatMonitor.useEffect\": ()=>clearInterval(interval)\n })[\"HeartbeatMonitor.useEffect\"];\n }\n }[\"HeartbeatMonitor.useEffect\"], []);\n async function fetchData() {\n try {\n const res = await fetch(\"/api/monitor\");\n const data = await res.json();\n setApps(data.apps || []);\n setStatus(data.status || []);\n } catch (err) {\n console.error(\"Failed to fetch data:\", err);\n } finally{\n setLoading(false);\n setRefreshing(false);\n }\n }\n async function handleRefresh() {\n setRefreshing(true);\n await fetchData();\n }\n async function addApp(e) {\n e.preventDefault();\n if (!newApp.name || !newApp.url) return;\n await fetch(\"/api/monitor\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n action: \"addApp\",\n app: newApp\n })\n });\n setShowAddApp(false);\n setNewApp({\n name: \"\",\n description: \"\",\n url: \"http://localhost:\",\n port: 3000,\n path: \"\",\n command: \"npm run dev\",\n category: \"Other\",\n color: \"#22C55E\",\n enabled: true\n });\n fetchData();\n }\n async function deleteApp(id) {\n if (!confirm(\"Delete this app?\")) return;\n await fetch(\"/api/monitor\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n action: \"deleteApp\",\n id\n })\n });\n fetchData();\n }\n function getAppStatus(appId) {\n const appStatus = status.filter((s)=>s.appId === appId);\n const latest = appStatus[appStatus.length - 1];\n const isUp = latest?.status === \"up\";\n const uptime = appStatus.length > 0 ? Math.round(appStatus.filter((s)=>s.status === \"up\").length / appStatus.length * 100) : 100;\n const avgResponseTime = appStatus.length > 0 ? Math.round(appStatus.filter((s)=>s.responseTime).reduce((acc, s)=>acc + (s.responseTime || 0), 0) / appStatus.filter((s)=>s.responseTime).length) || 0 : 0;\n const last24Hours = appStatus.filter((s)=>{\n const hoursAgo = (Date.now() - new Date(s.timestamp).getTime()) / (1000 * 60 * 60);\n return hoursAgo <= 24;\n });\n return {\n latest,\n isUp,\n uptime,\n avgResponseTime,\n history: last24Hours\n };\n }\n const stats = {\n total: apps.length,\n online: apps.filter((app)=>getAppStatus(app.id).isUp).length,\n offline: apps.filter((app)=>!getAppStatus(app.id).isUp).length,\n avgUptime: apps.length > 0 ? Math.round(apps.reduce((acc, app)=>acc + getAppStatus(app.id).uptime, 0) / apps.length) : 0,\n avgResponseTime: apps.length > 0 ? Math.round(apps.reduce((acc, app)=>acc + getAppStatus(app.id).avgResponseTime, 0) / apps.length) : 0,\n incidents: status.filter((s)=>s.status === \"down\").length\n };\n const allUp = stats.online === stats.total && stats.total > 0;\n function Sparkline({ data }) {\n if (data.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-8 w-20 bg-slate-800/50 rounded flex items-end justify-center gap-0.5 p-1\",\n children: Array.from({\n length: 8\n }).map((_, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-1 bg-slate-700 rounded-sm\",\n style: {\n height: '30%'\n }\n }, i, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 157,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 155,\n columnNumber: 9\n }, this);\n }\n const bars = data.slice(-8).map((entry, i)=>{\n const height = entry.status === \"up\" ? Math.max(20, Math.min(100, 100 - (entry.responseTime || 100) / 10)) : 10;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `w-1.5 rounded-sm ${entry.status === \"up\" ? \"bg-emerald-500/80\" : \"bg-red-500/80\"}`,\n style: {\n height: `${height}%`\n }\n }, i, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 168,\n columnNumber: 9\n }, this);\n });\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-8 w-20 bg-slate-800/50 rounded flex items-end justify-center gap-0.5 p-1\",\n children: bars\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 177,\n columnNumber: 7\n }, this);\n }\n if (loading) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-slate-950 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.9\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n className: \"flex flex-col items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 animate-pulse\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 192,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 blur-xl opacity-50\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 193,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 191,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400 animate-pulse\",\n children: \"Loading dashboard...\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 195,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 186,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 185,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-slate-950 text-slate-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.header, {\n initial: {\n y: -20,\n opacity: 0\n },\n animate: {\n y: 0,\n opacity: 1\n },\n className: \"sticky top-0 z-50 border-b border-slate-800/50 bg-slate-950/80 backdrop-blur-xl\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between h-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n className: \"relative\",\n whileHover: {\n scale: 1.05\n },\n whileTap: {\n scale: 0.95\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-10 h-10 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 flex items-center justify-center shadow-lg shadow-emerald-500/20\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"w-5 h-5 text-white\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 218,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 217,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 212,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-xl font-bold text-white\",\n children: \"Heartbeat\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 222,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Infrastructure Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 223,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 221,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 211,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleRefresh,\n disabled: refreshing,\n className: \"p-2 text-slate-400 hover:text-white hover:bg-slate-800 rounded-lg transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: `w-5 h-5 ${refreshing ? 'animate-spin' : ''}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 233,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 228,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowAddApp(true),\n className: \"flex items-center gap-2 px-4 py-2 bg-gradient-to-r from-emerald-600 to-emerald-500 hover:from-emerald-500 hover:to-emerald-400 text-white rounded-lg shadow-lg shadow-emerald-500/20 transition-all\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 240,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"hidden sm:inline\",\n children: \"Add Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 241,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 236,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 227,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 210,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 209,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 204,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n transition: {\n staggerChildren: 0.1\n },\n className: \"space-y-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 10\n },\n animate: {\n opacity: 1,\n y: 0\n },\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `w-3 h-3 rounded-full ${allUp ? 'bg-emerald-500 animate-pulse' : 'bg-red-500'}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 262,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-lg font-medium\",\n children: allUp ? 'All Systems Operational' : `${stats.offline} Service${stats.offline > 1 ? 's' : ''} Down`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 263,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-500\",\n children: [\n \"• Last updated \",\n new Date().toLocaleTimeString()\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 266,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 257,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.1\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-emerald-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-emerald-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"w-6 h-6 text-emerald-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 280,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 279,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: [\n stats.online,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-500 text-lg\",\n children: [\n \"/\",\n stats.total\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 283,\n columnNumber: 67\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 283,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Services Online\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 284,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 282,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 278,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 271,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.15\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-blue-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-blue-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"w-6 h-6 text-blue-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 298,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 297,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: [\n stats.avgUptime,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 301,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Avg Uptime\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 302,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 300,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 296,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 w-full bg-slate-800 rounded-full h-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n width: 0\n },\n animate: {\n width: `${stats.avgUptime}%`\n },\n transition: {\n duration: 1,\n delay: 0.5\n },\n className: \"bg-blue-500 h-2 rounded-full\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 306,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 305,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 289,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.2\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-purple-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-purple-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"w-6 h-6 text-purple-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 324,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 323,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: [\n stats.avgResponseTime,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-500 text-lg\",\n children: \"ms\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 327,\n columnNumber: 76\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 327,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Avg Response\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 328,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 326,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 322,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 315,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.25\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-amber-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-amber-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"w-6 h-6 text-amber-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 342,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 341,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: stats.incidents\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 345,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Incidents\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 346,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 344,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 340,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 333,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 270,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.3\n },\n className: \"bg-slate-900/50 border border-slate-800 rounded-xl overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"px-6 py-4 border-b border-slate-800 flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"w-5 h-5 text-slate-400\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 362,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xl font-bold\",\n children: \"Monitored Services\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 363,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 361,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400 mt-1\",\n children: [\n stats.total,\n \" active monitor\",\n stats.total !== 1 ? 's' : ''\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 365,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 360,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setViewMode(viewMode === \"grid\" ? \"list\" : \"grid\"),\n className: \"p-2 text-slate-400 hover:text-white hover:bg-slate-800 rounded-lg transition-colors\",\n children: viewMode === \"grid\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 372,\n columnNumber: 42\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 372,\n columnNumber: 73\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 368,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 367,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 359,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6\",\n children: apps.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.95\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n className: \"text-center py-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-20 h-20 bg-gradient-to-br from-slate-800 to-slate-900 rounded-2xl flex items-center justify-center mx-auto mb-6 shadow-inner\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"w-10 h-10 text-slate-600\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 385,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 384,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"No monitors yet\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 387,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400 mb-6\",\n children: \"Start monitoring your services by adding your first monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 388,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowAddApp(true),\n className: \"px-4 py-2 bg-emerald-600 hover:bg-emerald-500 text-white rounded-lg transition-colors\",\n children: \"Add Your First Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 389,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 379,\n columnNumber: 17\n }, this) : viewMode === \"grid\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 lg:grid-cols-2 gap-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_13__.AnimatePresence, {\n children: apps.map((app, index)=>{\n const { isUp, uptime, avgResponseTime, history, latest } = getAppStatus(app.id);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n exit: {\n opacity: 0,\n scale: 0.95\n },\n transition: {\n delay: index * 0.05\n },\n whileHover: {\n y: -4\n },\n className: `bg-slate-900 border border-slate-800 rounded-xl border-l-4 ${isUp ? 'border-l-emerald-500' : 'border-l-red-500'} p-5 group`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `w-10 h-10 rounded-xl flex items-center justify-center ${isUp ? 'bg-emerald-500/10' : 'bg-red-500/10'}`,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: `w-5 h-5 ${isUp ? 'text-emerald-500' : 'text-red-500'}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 415,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 414,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-semibold text-lg\",\n children: app.name\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 418,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: app.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"text-sm text-slate-400 hover:text-emerald-400 transition-colors flex items-center gap-1\",\n children: [\n app.url,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n className: \"w-3 h-3\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 426,\n columnNumber: 35\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 419,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 417,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 413,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border ${isUp ? 'border-emerald-500/30 bg-emerald-500/10 text-emerald-400' : 'border-red-500/30 bg-red-500/10 text-red-400'}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `relative flex h-2 w-2`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `animate-ping absolute inline-flex h-full w-full rounded-full opacity-75 ${isUp ? 'bg-emerald-400' : 'bg-red-400'}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 432,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `relative inline-flex rounded-full h-2 w-2 ${isUp ? 'bg-emerald-500' : 'bg-red-500'}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 433,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 431,\n columnNumber: 31\n }, this),\n isUp ? \"Operational\" : \"Down\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 430,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 412,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 grid grid-cols-3 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-2xl font-bold\",\n children: [\n uptime,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 441,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Uptime\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 442,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 440,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-2xl font-bold\",\n children: avgResponseTime > 0 ? `${avgResponseTime}ms` : '—'\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 445,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Response\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 446,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 444,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-end\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Sparkline, {\n data: history\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 449,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 448,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 439,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 pt-4 border-t border-slate-800 flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-slate-500\",\n children: [\n \"Last check: \",\n latest ? new Date(latest.timestamp).toLocaleTimeString() : 'Never'\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 454,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>deleteApp(app.id),\n className: \"p-2 text-slate-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg opacity-0 group-hover:opacity-100 transition-all\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 461,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 457,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 453,\n columnNumber: 27\n }, this)\n ]\n }, app.id, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 403,\n columnNumber: 25\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 398,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 397,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"divide-y divide-slate-800\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_13__.AnimatePresence, {\n children: apps.map((app)=>{\n const { isUp, uptime, avgResponseTime, history, latest } = getAppStatus(app.id);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n exit: {\n opacity: 0\n },\n className: \"py-4 flex items-center justify-between group hover:bg-slate-800/30 transition-colors px-2 rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `w-2 h-12 rounded-full ${isUp ? 'bg-emerald-500' : 'bg-red-500'}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 484,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-semibold\",\n children: app.name\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 486,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: app.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"text-sm text-slate-400 hover:text-emerald-400 transition-colors\",\n children: app.url\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 487,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 485,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 483,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl font-bold\",\n children: [\n uptime,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 495,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Uptime\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 496,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 494,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Sparkline, {\n data: history\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 498,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border ${isUp ? 'border-emerald-500/30 bg-emerald-500/10 text-emerald-400' : 'border-red-500/30 bg-red-500/10 text-red-400'}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `w-2 h-2 rounded-full ${isUp ? 'bg-emerald-500' : 'bg-red-500'}`\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 500,\n columnNumber: 31\n }, this),\n isUp ? \"Operational\" : \"Down\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 499,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>deleteApp(app.id),\n className: \"p-2 text-slate-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg opacity-0 group-hover:opacity-100 transition-all\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 507,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 503,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 493,\n columnNumber: 27\n }, this)\n ]\n }, app.id, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 476,\n columnNumber: 25\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 471,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 470,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 377,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 353,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 250,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 249,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_13__.AnimatePresence, {\n children: showAddApp && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n exit: {\n opacity: 0\n },\n className: \"fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50 p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.95,\n y: 20\n },\n animate: {\n opacity: 1,\n scale: 1,\n y: 0\n },\n exit: {\n opacity: 0,\n scale: 0.95,\n y: 20\n },\n className: \"bg-slate-900 border border-slate-800 rounded-xl p-6 w-full max-w-md shadow-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xl font-bold mb-2\",\n children: \"Add New Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 536,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400 text-sm mb-6\",\n children: \"Monitor a new service by providing its details below.\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 537,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: addApp,\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2\",\n children: \"Monitor Name\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 540,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: newApp.name,\n onChange: (e)=>setNewApp({\n ...newApp,\n name: e.target.value\n }),\n className: \"w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors\",\n placeholder: \"My Application\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 541,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 539,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2\",\n children: \"URL\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 552,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"url\",\n value: newApp.url,\n onChange: (e)=>setNewApp({\n ...newApp,\n url: e.target.value\n }),\n className: \"w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors\",\n placeholder: \"http://localhost:3000\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 553,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 551,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2\",\n children: \"Port\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 563,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: newApp.port,\n onChange: (e)=>setNewApp({\n ...newApp,\n port: parseInt(e.target.value)\n }),\n className: \"w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 564,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 562,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 550,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-3 pt-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setShowAddApp(false),\n className: \"flex-1 px-4 py-2.5 border border-slate-700 rounded-lg hover:bg-slate-800 transition-colors\",\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 574,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"flex-1 px-4 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white rounded-lg transition-colors font-medium\",\n children: \"Add Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 581,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 573,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 538,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 530,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 524,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 522,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvYXBwL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTRDO0FBQ1k7QUFpQmxDO0FBc0JQLFNBQVNnQjtJQUN0QixNQUFNLENBQUNDLE1BQU1DLFFBQVEsR0FBR2xCLCtDQUFRQSxDQUFRLEVBQUU7SUFDMUMsTUFBTSxDQUFDbUIsUUFBUUMsVUFBVSxHQUFHcEIsK0NBQVFBLENBQWdCLEVBQUU7SUFDdEQsTUFBTSxDQUFDcUIsU0FBU0MsV0FBVyxHQUFHdEIsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDdUIsWUFBWUMsY0FBYyxHQUFHeEIsK0NBQVFBLENBQUM7SUFDN0MsTUFBTSxDQUFDeUIsWUFBWUMsY0FBYyxHQUFHMUIsK0NBQVFBLENBQUM7SUFDN0MsTUFBTSxDQUFDMkIsVUFBVUMsWUFBWSxHQUFHNUIsK0NBQVFBLENBQWtCO0lBQzFELE1BQU0sQ0FBQzZCLFFBQVFDLFVBQVUsR0FBRzlCLCtDQUFRQSxDQUFlO1FBQ2pEK0IsTUFBTTtRQUNOQyxhQUFhO1FBQ2JDLEtBQUs7UUFDTEMsTUFBTTtRQUNOQyxNQUFNO1FBQ05DLFNBQVM7UUFDVEMsVUFBVTtRQUNWQyxPQUFPO1FBQ1BDLFNBQVM7SUFDWDtJQUVBdEMsZ0RBQVNBO3NDQUFDO1lBQ1J1QztZQUNBLE1BQU1DLFdBQVdDLFlBQVlGLFdBQVc7WUFDeEM7OENBQU8sSUFBTUcsY0FBY0Y7O1FBQzdCO3FDQUFHLEVBQUU7SUFFTCxlQUFlRDtRQUNiLElBQUk7WUFDRixNQUFNSSxNQUFNLE1BQU1DLE1BQU07WUFDeEIsTUFBTUMsT0FBTyxNQUFNRixJQUFJRyxJQUFJO1lBQzNCN0IsUUFBUTRCLEtBQUs3QixJQUFJLElBQUksRUFBRTtZQUN2QkcsVUFBVTBCLEtBQUszQixNQUFNLElBQUksRUFBRTtRQUM3QixFQUFFLE9BQU82QixLQUFLO1lBQ1pDLFFBQVFDLEtBQUssQ0FBQyx5QkFBeUJGO1FBQ3pDLFNBQVU7WUFDUjFCLFdBQVc7WUFDWEUsY0FBYztRQUNoQjtJQUNGO0lBRUEsZUFBZTJCO1FBQ2IzQixjQUFjO1FBQ2QsTUFBTWdCO0lBQ1I7SUFFQSxlQUFlWSxPQUFPQyxDQUFrQjtRQUN0Q0EsRUFBRUMsY0FBYztRQUNoQixJQUFJLENBQUN6QixPQUFPRSxJQUFJLElBQUksQ0FBQ0YsT0FBT0ksR0FBRyxFQUFFO1FBQ2pDLE1BQU1ZLE1BQU0sZ0JBQWdCO1lBQzFCVSxRQUFRO1lBQ1JDLFNBQVM7Z0JBQUUsZ0JBQWdCO1lBQW1CO1lBQzlDQyxNQUFNQyxLQUFLQyxTQUFTLENBQUM7Z0JBQUVDLFFBQVE7Z0JBQVVDLEtBQUtoQztZQUFPO1FBQ3ZEO1FBQ0FILGNBQWM7UUFDZEksVUFBVTtZQUNSQyxNQUFNO1lBQ05DLGFBQWE7WUFDYkMsS0FBSztZQUNMQyxNQUFNO1lBQ05DLE1BQU07WUFDTkMsU0FBUztZQUNUQyxVQUFVO1lBQ1ZDLE9BQU87WUFDUEMsU0FBUztRQUNYO1FBQ0FDO0lBQ0Y7SUFFQSxlQUFlc0IsVUFBVUMsRUFBVTtRQUNqQyxJQUFJLENBQUNDLFFBQVEscUJBQXFCO1FBQ2xDLE1BQU1uQixNQUFNLGdCQUFnQjtZQUMxQlUsUUFBUTtZQUNSQyxTQUFTO2dCQUFFLGdCQUFnQjtZQUFtQjtZQUM5Q0MsTUFBTUMsS0FBS0MsU0FBUyxDQUFDO2dCQUFFQyxRQUFRO2dCQUFhRztZQUFHO1FBQ2pEO1FBQ0F2QjtJQUNGO0lBRUEsU0FBU3lCLGFBQWFDLEtBQWE7UUFDakMsTUFBTUMsWUFBWWhELE9BQU9pRCxNQUFNLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUgsS0FBSyxLQUFLQTtRQUNuRCxNQUFNSSxTQUFTSCxTQUFTLENBQUNBLFVBQVVJLE1BQU0sR0FBRyxFQUFFO1FBQzlDLE1BQU1DLE9BQU9GLFFBQVFuRCxXQUFXO1FBQ2hDLE1BQU1zRCxTQUFTTixVQUFVSSxNQUFNLEdBQUcsSUFDOUJHLEtBQUtDLEtBQUssQ0FBQyxVQUFXUCxNQUFNLENBQUNDLENBQUFBLElBQUtBLEVBQUVsRCxNQUFNLEtBQUssTUFBTW9ELE1BQU0sR0FBR0osVUFBVUksTUFBTSxHQUFJLE9BQ2xGO1FBQ0osTUFBTUssa0JBQWtCVCxVQUFVSSxNQUFNLEdBQUcsSUFDdkNHLEtBQUtDLEtBQUssQ0FBQ1IsVUFBVUMsTUFBTSxDQUFDQyxDQUFBQSxJQUFLQSxFQUFFUSxZQUFZLEVBQUVDLE1BQU0sQ0FBQyxDQUFDQyxLQUFLVixJQUFNVSxNQUFPVixDQUFBQSxFQUFFUSxZQUFZLElBQUksSUFBSSxLQUFLVixVQUFVQyxNQUFNLENBQUNDLENBQUFBLElBQUtBLEVBQUVRLFlBQVksRUFBRU4sTUFBTSxLQUFLLElBQ3ZKO1FBQ0osTUFBTVMsY0FBY2IsVUFBVUMsTUFBTSxDQUFDQyxDQUFBQTtZQUNuQyxNQUFNWSxXQUFXLENBQUNDLEtBQUtDLEdBQUcsS0FBSyxJQUFJRCxLQUFLYixFQUFFZSxTQUFTLEVBQUVDLE9BQU8sRUFBQyxJQUFNLFFBQU8sS0FBSyxFQUFDO1lBQ2hGLE9BQU9KLFlBQVk7UUFDckI7UUFDQSxPQUFPO1lBQUVYO1lBQVFFO1lBQU1DO1lBQVFHO1lBQWlCVSxTQUFTTjtRQUFZO0lBQ3ZFO0lBRUEsTUFBTU8sUUFBUTtRQUNaQyxPQUFPdkUsS0FBS3NELE1BQU07UUFDbEJrQixRQUFReEUsS0FBS21ELE1BQU0sQ0FBQyxDQUFDUCxNQUFRSSxhQUFhSixJQUFJRSxFQUFFLEVBQUVTLElBQUksRUFBRUQsTUFBTTtRQUM5RG1CLFNBQVN6RSxLQUFLbUQsTUFBTSxDQUFDLENBQUNQLE1BQVEsQ0FBQ0ksYUFBYUosSUFBSUUsRUFBRSxFQUFFUyxJQUFJLEVBQUVELE1BQU07UUFDaEVvQixXQUFXMUUsS0FBS3NELE1BQU0sR0FBRyxJQUNyQkcsS0FBS0MsS0FBSyxDQUFDMUQsS0FBSzZELE1BQU0sQ0FBQyxDQUFDQyxLQUFLbEIsTUFBUWtCLE1BQU1kLGFBQWFKLElBQUlFLEVBQUUsRUFBRVUsTUFBTSxFQUFFLEtBQUt4RCxLQUFLc0QsTUFBTSxJQUN4RjtRQUNKSyxpQkFBaUIzRCxLQUFLc0QsTUFBTSxHQUFHLElBQzNCRyxLQUFLQyxLQUFLLENBQUMxRCxLQUFLNkQsTUFBTSxDQUFDLENBQUNDLEtBQUtsQixNQUFRa0IsTUFBTWQsYUFBYUosSUFBSUUsRUFBRSxFQUFFYSxlQUFlLEVBQUUsS0FBSzNELEtBQUtzRCxNQUFNLElBQ2pHO1FBQ0pxQixXQUFXekUsT0FBT2lELE1BQU0sQ0FBQ0MsQ0FBQUEsSUFBS0EsRUFBRWxELE1BQU0sS0FBSyxRQUFRb0QsTUFBTTtJQUMzRDtJQUVBLE1BQU1zQixRQUFRTixNQUFNRSxNQUFNLEtBQUtGLE1BQU1DLEtBQUssSUFBSUQsTUFBTUMsS0FBSyxHQUFHO0lBRTVELFNBQVNNLFVBQVUsRUFBRWhELElBQUksRUFBMkI7UUFDbEQsSUFBSUEsS0FBS3lCLE1BQU0sS0FBSyxHQUFHO1lBQ3JCLHFCQUNFLDhEQUFDd0I7Z0JBQUlDLFdBQVU7MEJBQ1pDLE1BQU1DLElBQUksQ0FBQztvQkFBRTNCLFFBQVE7Z0JBQUUsR0FBRzRCLEdBQUcsQ0FBQyxDQUFDQyxHQUFHQyxrQkFDakMsOERBQUNOO3dCQUFZQyxXQUFVO3dCQUE4Qk0sT0FBTzs0QkFBRUMsUUFBUTt3QkFBTTt1QkFBbEVGOzs7Ozs7Ozs7O1FBSWxCO1FBRUEsTUFBTUcsT0FBTzFELEtBQUsyRCxLQUFLLENBQUMsQ0FBQyxHQUFHTixHQUFHLENBQUMsQ0FBQ08sT0FBT0w7WUFDdEMsTUFBTUUsU0FBU0csTUFBTXZGLE1BQU0sS0FBSyxPQUM1QnVELEtBQUtpQyxHQUFHLENBQUMsSUFBSWpDLEtBQUtrQyxHQUFHLENBQUMsS0FBSyxNQUFPLENBQUNGLE1BQU03QixZQUFZLElBQUksR0FBRSxJQUFLLE9BQ2hFO1lBQ0oscUJBQ0UsOERBQUNrQjtnQkFFQ0MsV0FBVyxDQUFDLGlCQUFpQixFQUFFVSxNQUFNdkYsTUFBTSxLQUFLLE9BQU8sc0JBQXNCLGlCQUFpQjtnQkFDOUZtRixPQUFPO29CQUFFQyxRQUFRLEdBQUdBLE9BQU8sQ0FBQyxDQUFDO2dCQUFDO2VBRnpCRjs7Ozs7UUFLWDtRQUVBLHFCQUNFLDhEQUFDTjtZQUFJQyxXQUFVO3NCQUNaUTs7Ozs7O0lBR1A7SUFFQSxJQUFJbkYsU0FBUztRQUNYLHFCQUNFLDhEQUFDMEU7WUFBSUMsV0FBVTtzQkFDYiw0RUFBQzlGLGlEQUFNQSxDQUFDNkYsR0FBRztnQkFDVGMsU0FBUztvQkFBRUMsU0FBUztvQkFBR0MsT0FBTztnQkFBSTtnQkFDbENDLFNBQVM7b0JBQUVGLFNBQVM7b0JBQUdDLE9BQU87Z0JBQUU7Z0JBQ2hDZixXQUFVOztrQ0FFViw4REFBQ0Q7d0JBQUlDLFdBQVU7OzBDQUNiLDhEQUFDRDtnQ0FBSUMsV0FBVTs7Ozs7OzBDQUNmLDhEQUFDRDtnQ0FBSUMsV0FBVTs7Ozs7Ozs7Ozs7O2tDQUVqQiw4REFBQ2lCO3dCQUFFakIsV0FBVTtrQ0FBK0I7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBSXBEO0lBRUEscUJBQ0UsOERBQUNEO1FBQUlDLFdBQVU7OzBCQUViLDhEQUFDOUYsaURBQU1BLENBQUNnSCxNQUFNO2dCQUNaTCxTQUFTO29CQUFFTSxHQUFHLENBQUM7b0JBQUlMLFNBQVM7Z0JBQUU7Z0JBQzlCRSxTQUFTO29CQUFFRyxHQUFHO29CQUFHTCxTQUFTO2dCQUFFO2dCQUM1QmQsV0FBVTswQkFFViw0RUFBQ0Q7b0JBQUlDLFdBQVU7OEJBQ2IsNEVBQUNEO3dCQUFJQyxXQUFVOzswQ0FDYiw4REFBQ0Q7Z0NBQUlDLFdBQVU7O2tEQUNiLDhEQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO3dDQUNUQyxXQUFVO3dDQUNWb0IsWUFBWTs0Q0FBRUwsT0FBTzt3Q0FBSzt3Q0FDMUJNLFVBQVU7NENBQUVOLE9BQU87d0NBQUs7a0RBRXhCLDRFQUFDaEI7NENBQUlDLFdBQVU7c0RBQ2IsNEVBQUM1RixpTEFBUUE7Z0RBQUM0RixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7O2tEQUd4Qiw4REFBQ0Q7OzBEQUNDLDhEQUFDdUI7Z0RBQUd0QixXQUFVOzBEQUErQjs7Ozs7OzBEQUM3Qyw4REFBQ2lCO2dEQUFFakIsV0FBVTswREFBeUI7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQ0FJMUMsOERBQUNEO2dDQUFJQyxXQUFVOztrREFDYiw4REFBQ3VCO3dDQUNDQyxTQUFTckU7d0NBQ1RzRSxVQUFVbEc7d0NBQ1Z5RSxXQUFVO2tEQUVWLDRFQUFDMUYsaUxBQVNBOzRDQUFDMEYsV0FBVyxDQUFDLFFBQVEsRUFBRXpFLGFBQWEsaUJBQWlCLElBQUk7Ozs7Ozs7Ozs7O2tEQUdyRSw4REFBQ2dHO3dDQUNDQyxTQUFTLElBQU05RixjQUFjO3dDQUM3QnNFLFdBQVU7OzBEQUVWLDhEQUFDM0YsaUxBQUlBO2dEQUFDMkYsV0FBVTs7Ozs7OzBEQUNoQiw4REFBQzBCO2dEQUFLMUIsV0FBVTswREFBbUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBUTdDLDhEQUFDMkI7Z0JBQUszQixXQUFVOzBCQUNkLDRFQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO29CQUNUYyxTQUFTO3dCQUFFQyxTQUFTO29CQUFFO29CQUN0QkUsU0FBUzt3QkFBRUYsU0FBUztvQkFBRTtvQkFDdEJjLFlBQVk7d0JBQUVDLGlCQUFpQjtvQkFBSTtvQkFDbkM3QixXQUFVOztzQ0FHViw4REFBQzlGLGlEQUFNQSxDQUFDNkYsR0FBRzs0QkFDVGMsU0FBUztnQ0FBRUMsU0FBUztnQ0FBR0ssR0FBRzs0QkFBRzs0QkFDN0JILFNBQVM7Z0NBQUVGLFNBQVM7Z0NBQUdLLEdBQUc7NEJBQUU7NEJBQzVCbkIsV0FBVTs7OENBRVYsOERBQUNEO29DQUFJQyxXQUFXLENBQUMscUJBQXFCLEVBQUVILFFBQVEsaUNBQWlDLGNBQWM7Ozs7Ozs4Q0FDL0YsOERBQUM2QjtvQ0FBSzFCLFdBQVU7OENBQ2JILFFBQVEsNEJBQTRCLEdBQUdOLE1BQU1HLE9BQU8sQ0FBQyxRQUFRLEVBQUVILE1BQU1HLE9BQU8sR0FBRyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7Ozs7Ozs4Q0FFckcsOERBQUNnQztvQ0FBSzFCLFdBQVU7O3dDQUFpQjt3Q0FBZ0IsSUFBSWQsT0FBTzRDLGtCQUFrQjs7Ozs7Ozs7Ozs7OztzQ0FJaEYsOERBQUMvQjs0QkFBSUMsV0FBVTs7OENBQ2IsOERBQUM5RixpREFBTUEsQ0FBQzZGLEdBQUc7b0NBQ1RjLFNBQVM7d0NBQUVDLFNBQVM7d0NBQUdLLEdBQUc7b0NBQUc7b0NBQzdCSCxTQUFTO3dDQUFFRixTQUFTO3dDQUFHSyxHQUFHO29DQUFFO29DQUM1QlMsWUFBWTt3Q0FBRUcsT0FBTztvQ0FBSTtvQ0FDekJYLFlBQVk7d0NBQUVELEdBQUcsQ0FBQztvQ0FBRTtvQ0FDcEJuQixXQUFVOzhDQUVWLDRFQUFDRDt3Q0FBSUMsV0FBVTs7MERBQ2IsOERBQUNEO2dEQUFJQyxXQUFVOzBEQUNiLDRFQUFDdkYsaUxBQU1BO29EQUFDdUYsV0FBVTs7Ozs7Ozs7Ozs7MERBRXBCLDhEQUFDRDtnREFBSUMsV0FBVTs7a0VBQ2IsOERBQUNpQjt3REFBRWpCLFdBQVU7OzREQUFzQlQsTUFBTUUsTUFBTTswRUFBQyw4REFBQ2lDO2dFQUFLMUIsV0FBVTs7b0VBQXlCO29FQUFFVCxNQUFNQyxLQUFLOzs7Ozs7Ozs7Ozs7O2tFQUN0Ryw4REFBQ3lCO3dEQUFFakIsV0FBVTtrRUFBeUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhDQUs1Qyw4REFBQzlGLGlEQUFNQSxDQUFDNkYsR0FBRztvQ0FDVGMsU0FBUzt3Q0FBRUMsU0FBUzt3Q0FBR0ssR0FBRztvQ0FBRztvQ0FDN0JILFNBQVM7d0NBQUVGLFNBQVM7d0NBQUdLLEdBQUc7b0NBQUU7b0NBQzVCUyxZQUFZO3dDQUFFRyxPQUFPO29DQUFLO29DQUMxQlgsWUFBWTt3Q0FBRUQsR0FBRyxDQUFDO29DQUFFO29DQUNwQm5CLFdBQVU7O3NEQUVWLDhEQUFDRDs0Q0FBSUMsV0FBVTs7OERBQ2IsOERBQUNEO29EQUFJQyxXQUFVOzhEQUNiLDRFQUFDdEYsaUxBQVVBO3dEQUFDc0YsV0FBVTs7Ozs7Ozs7Ozs7OERBRXhCLDhEQUFDRDtvREFBSUMsV0FBVTs7c0VBQ2IsOERBQUNpQjs0REFBRWpCLFdBQVU7O2dFQUFzQlQsTUFBTUksU0FBUztnRUFBQzs7Ozs7OztzRUFDbkQsOERBQUNzQjs0REFBRWpCLFdBQVU7c0VBQXlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7c0RBRzFDLDhEQUFDRDs0Q0FBSUMsV0FBVTtzREFDYiw0RUFBQzlGLGlEQUFNQSxDQUFDNkYsR0FBRztnREFDVGMsU0FBUztvREFBRW1CLE9BQU87Z0RBQUU7Z0RBQ3BCaEIsU0FBUztvREFBRWdCLE9BQU8sR0FBR3pDLE1BQU1JLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0RBQUM7Z0RBQ3hDaUMsWUFBWTtvREFBRUssVUFBVTtvREFBR0YsT0FBTztnREFBSTtnREFDdEMvQixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs4Q0FLaEIsOERBQUM5RixpREFBTUEsQ0FBQzZGLEdBQUc7b0NBQ1RjLFNBQVM7d0NBQUVDLFNBQVM7d0NBQUdLLEdBQUc7b0NBQUc7b0NBQzdCSCxTQUFTO3dDQUFFRixTQUFTO3dDQUFHSyxHQUFHO29DQUFFO29DQUM1QlMsWUFBWTt3Q0FBRUcsT0FBTztvQ0FBSTtvQ0FDekJYLFlBQVk7d0NBQUVELEdBQUcsQ0FBQztvQ0FBRTtvQ0FDcEJuQixXQUFVOzhDQUVWLDRFQUFDRDt3Q0FBSUMsV0FBVTs7MERBQ2IsOERBQUNEO2dEQUFJQyxXQUFVOzBEQUNiLDRFQUFDbkYsaUxBQUtBO29EQUFDbUYsV0FBVTs7Ozs7Ozs7Ozs7MERBRW5CLDhEQUFDRDtnREFBSUMsV0FBVTs7a0VBQ2IsOERBQUNpQjt3REFBRWpCLFdBQVU7OzREQUFzQlQsTUFBTVgsZUFBZTswRUFBQyw4REFBQzhDO2dFQUFLMUIsV0FBVTswRUFBeUI7Ozs7Ozs7Ozs7OztrRUFDbEcsOERBQUNpQjt3REFBRWpCLFdBQVU7a0VBQXlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4Q0FLNUMsOERBQUM5RixpREFBTUEsQ0FBQzZGLEdBQUc7b0NBQ1RjLFNBQVM7d0NBQUVDLFNBQVM7d0NBQUdLLEdBQUc7b0NBQUc7b0NBQzdCSCxTQUFTO3dDQUFFRixTQUFTO3dDQUFHSyxHQUFHO29DQUFFO29DQUM1QlMsWUFBWTt3Q0FBRUcsT0FBTztvQ0FBSztvQ0FDMUJYLFlBQVk7d0NBQUVELEdBQUcsQ0FBQztvQ0FBRTtvQ0FDcEJuQixXQUFVOzhDQUVWLDRFQUFDRDt3Q0FBSUMsV0FBVTs7MERBQ2IsOERBQUNEO2dEQUFJQyxXQUFVOzBEQUNiLDRFQUFDckYsaUxBQVdBO29EQUFDcUYsV0FBVTs7Ozs7Ozs7Ozs7MERBRXpCLDhEQUFDRDtnREFBSUMsV0FBVTs7a0VBQ2IsOERBQUNpQjt3REFBRWpCLFdBQVU7a0VBQXNCVCxNQUFNSyxTQUFTOzs7Ozs7a0VBQ2xELDhEQUFDcUI7d0RBQUVqQixXQUFVO2tFQUF5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0NBTzlDLDhEQUFDOUYsaURBQU1BLENBQUM2RixHQUFHOzRCQUNUYyxTQUFTO2dDQUFFQyxTQUFTO2dDQUFHSyxHQUFHOzRCQUFHOzRCQUM3QkgsU0FBUztnQ0FBRUYsU0FBUztnQ0FBR0ssR0FBRzs0QkFBRTs0QkFDNUJTLFlBQVk7Z0NBQUVHLE9BQU87NEJBQUk7NEJBQ3pCL0IsV0FBVTs7OENBRVYsOERBQUNEO29DQUFJQyxXQUFVOztzREFDYiw4REFBQ0Q7OzhEQUNDLDhEQUFDQTtvREFBSUMsV0FBVTs7c0VBQ2IsOERBQUNwRixrTEFBS0E7NERBQUNvRixXQUFVOzs7Ozs7c0VBQ2pCLDhEQUFDa0M7NERBQUdsQyxXQUFVO3NFQUFvQjs7Ozs7Ozs7Ozs7OzhEQUVwQyw4REFBQ2lCO29EQUFFakIsV0FBVTs7d0RBQStCVCxNQUFNQyxLQUFLO3dEQUFDO3dEQUFnQkQsTUFBTUMsS0FBSyxLQUFLLElBQUksTUFBTTs7Ozs7Ozs7Ozs7OztzREFFcEcsOERBQUNPOzRDQUFJQyxXQUFVO3NEQUNiLDRFQUFDdUI7Z0RBQ0NDLFNBQVMsSUFBTTVGLFlBQVlELGFBQWEsU0FBUyxTQUFTO2dEQUMxRHFFLFdBQVU7MERBRVRyRSxhQUFhLHVCQUFTLDhEQUFDWixrTEFBSUE7b0RBQUNpRixXQUFVOzs7Ozt5RUFBZSw4REFBQ2xGLGtMQUFVQTtvREFBQ2tGLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OENBS2xGLDhEQUFDRDtvQ0FBSUMsV0FBVTs4Q0FDWi9FLEtBQUtzRCxNQUFNLEtBQUssa0JBQ2YsOERBQUNyRSxpREFBTUEsQ0FBQzZGLEdBQUc7d0NBQ1RjLFNBQVM7NENBQUVDLFNBQVM7NENBQUdDLE9BQU87d0NBQUs7d0NBQ25DQyxTQUFTOzRDQUFFRixTQUFTOzRDQUFHQyxPQUFPO3dDQUFFO3dDQUNoQ2YsV0FBVTs7MERBRVYsOERBQUNEO2dEQUFJQyxXQUFVOzBEQUNiLDRFQUFDNUYsaUxBQVFBO29EQUFDNEYsV0FBVTs7Ozs7Ozs7Ozs7MERBRXRCLDhEQUFDbUM7Z0RBQUduQyxXQUFVOzBEQUE2Qjs7Ozs7OzBEQUMzQyw4REFBQ2lCO2dEQUFFakIsV0FBVTswREFBc0I7Ozs7OzswREFDbkMsOERBQUN1QjtnREFDQ0MsU0FBUyxJQUFNOUYsY0FBYztnREFDN0JzRSxXQUFVOzBEQUNYOzs7Ozs7Ozs7OzsrQ0FJRHJFLGFBQWEsdUJBQ2YsOERBQUNvRTt3Q0FBSUMsV0FBVTtrREFDYiw0RUFBQzdGLDJEQUFlQTtzREFDYmMsS0FBS2tGLEdBQUcsQ0FBQyxDQUFDdEMsS0FBS3VFO2dEQUNkLE1BQU0sRUFBRTVELElBQUksRUFBRUMsTUFBTSxFQUFFRyxlQUFlLEVBQUVVLE9BQU8sRUFBRWhCLE1BQU0sRUFBRSxHQUFHTCxhQUFhSixJQUFJRSxFQUFFO2dEQUU5RSxxQkFDRSw4REFBQzdELGlEQUFNQSxDQUFDNkYsR0FBRztvREFFVGMsU0FBUzt3REFBRUMsU0FBUzt3REFBR0ssR0FBRztvREFBRztvREFDN0JILFNBQVM7d0RBQUVGLFNBQVM7d0RBQUdLLEdBQUc7b0RBQUU7b0RBQzVCa0IsTUFBTTt3REFBRXZCLFNBQVM7d0RBQUdDLE9BQU87b0RBQUs7b0RBQ2hDYSxZQUFZO3dEQUFFRyxPQUFPSyxRQUFRO29EQUFLO29EQUNsQ2hCLFlBQVk7d0RBQUVELEdBQUcsQ0FBQztvREFBRTtvREFDcEJuQixXQUFXLENBQUMsMkRBQTJELEVBQUV4QixPQUFPLHlCQUF5QixtQkFBbUIsVUFBVSxDQUFDOztzRUFFdkksOERBQUN1Qjs0REFBSUMsV0FBVTs7OEVBQ2IsOERBQUNEO29FQUFJQyxXQUFVOztzRkFDYiw4REFBQ0Q7NEVBQUlDLFdBQVcsQ0FBQyxzREFBc0QsRUFBRXhCLE9BQU8sc0JBQXNCLGlCQUFpQjtzRkFDckgsNEVBQUMvRCxpTEFBTUE7Z0ZBQUN1RixXQUFXLENBQUMsUUFBUSxFQUFFeEIsT0FBTyxxQkFBcUIsZ0JBQWdCOzs7Ozs7Ozs7OztzRkFFNUUsOERBQUN1Qjs7OEZBQ0MsOERBQUNvQztvRkFBR25DLFdBQVU7OEZBQXlCbkMsSUFBSTlCLElBQUk7Ozs7Ozs4RkFDL0MsOERBQUN1RztvRkFDQ0MsTUFBTTFFLElBQUk1QixHQUFHO29GQUNidUcsUUFBTztvRkFDUEMsS0FBSTtvRkFDSnpDLFdBQVU7O3dGQUVUbkMsSUFBSTVCLEdBQUc7c0dBQ1IsOERBQUN6QixrTEFBWUE7NEZBQUN3RixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OEVBSTlCLDhEQUFDMEI7b0VBQUsxQixXQUFXLENBQUMscUZBQXFGLEVBQUV4QixPQUFPLDZEQUE2RCxnREFBZ0Q7O3NGQUMzTiw4REFBQ2tEOzRFQUFLMUIsV0FBVyxDQUFDLHFCQUFxQixDQUFDOzs4RkFDdEMsOERBQUMwQjtvRkFBSzFCLFdBQVcsQ0FBQyx3RUFBd0UsRUFBRXhCLE9BQU8sbUJBQW1CLGNBQWM7Ozs7Ozs4RkFDcEksOERBQUNrRDtvRkFBSzFCLFdBQVcsQ0FBQywwQ0FBMEMsRUFBRXhCLE9BQU8sbUJBQW1CLGNBQWM7Ozs7Ozs7Ozs7Ozt3RUFFdkdBLE9BQU8sZ0JBQWdCOzs7Ozs7Ozs7Ozs7O3NFQUk1Qiw4REFBQ3VCOzREQUFJQyxXQUFVOzs4RUFDYiw4REFBQ0Q7O3NGQUNDLDhEQUFDa0I7NEVBQUVqQixXQUFVOztnRkFBc0J2QjtnRkFBTzs7Ozs7OztzRkFDMUMsOERBQUN3Qzs0RUFBRWpCLFdBQVU7c0ZBQXlCOzs7Ozs7Ozs7Ozs7OEVBRXhDLDhEQUFDRDs7c0ZBQ0MsOERBQUNrQjs0RUFBRWpCLFdBQVU7c0ZBQXNCcEIsa0JBQWtCLElBQUksR0FBR0EsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHOzs7Ozs7c0ZBQ2xGLDhEQUFDcUM7NEVBQUVqQixXQUFVO3NGQUF5Qjs7Ozs7Ozs7Ozs7OzhFQUV4Qyw4REFBQ0Q7b0VBQUlDLFdBQVU7OEVBQ2IsNEVBQUNGO3dFQUFVaEQsTUFBTXdDOzs7Ozs7Ozs7Ozs7Ozs7OztzRUFJckIsOERBQUNTOzREQUFJQyxXQUFVOzs4RUFDYiw4REFBQzBCO29FQUFLMUIsV0FBVTs7d0VBQXlCO3dFQUMxQjFCLFNBQVMsSUFBSVksS0FBS1osT0FBT2MsU0FBUyxFQUFFMEMsa0JBQWtCLEtBQUs7Ozs7Ozs7OEVBRTFFLDhEQUFDUDtvRUFDQ0MsU0FBUyxJQUFNMUQsVUFBVUQsSUFBSUUsRUFBRTtvRUFDL0JpQyxXQUFVOzhFQUVWLDRFQUFDekYsa0xBQU1BO3dFQUFDeUYsV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7O21EQXpEakJuQyxJQUFJRSxFQUFFOzs7Ozs0Q0E4RGpCOzs7Ozs7Ozs7OzZEQUlKLDhEQUFDZ0M7d0NBQUlDLFdBQVU7a0RBQ2IsNEVBQUM3RiwyREFBZUE7c0RBQ2JjLEtBQUtrRixHQUFHLENBQUMsQ0FBQ3RDO2dEQUNULE1BQU0sRUFBRVcsSUFBSSxFQUFFQyxNQUFNLEVBQUVHLGVBQWUsRUFBRVUsT0FBTyxFQUFFaEIsTUFBTSxFQUFFLEdBQUdMLGFBQWFKLElBQUlFLEVBQUU7Z0RBRTlFLHFCQUNFLDhEQUFDN0QsaURBQU1BLENBQUM2RixHQUFHO29EQUVUYyxTQUFTO3dEQUFFQyxTQUFTO29EQUFFO29EQUN0QkUsU0FBUzt3REFBRUYsU0FBUztvREFBRTtvREFDdEJ1QixNQUFNO3dEQUFFdkIsU0FBUztvREFBRTtvREFDbkJkLFdBQVU7O3NFQUVWLDhEQUFDRDs0REFBSUMsV0FBVTs7OEVBQ2IsOERBQUNEO29FQUFJQyxXQUFXLENBQUMsc0JBQXNCLEVBQUV4QixPQUFPLG1CQUFtQixjQUFjOzs7Ozs7OEVBQ2pGLDhEQUFDdUI7O3NGQUNDLDhEQUFDb0M7NEVBQUduQyxXQUFVO3NGQUFpQm5DLElBQUk5QixJQUFJOzs7Ozs7c0ZBQ3ZDLDhEQUFDdUc7NEVBQUVDLE1BQU0xRSxJQUFJNUIsR0FBRzs0RUFBRXVHLFFBQU87NEVBQVNDLEtBQUk7NEVBQXNCekMsV0FBVTtzRkFDbkVuQyxJQUFJNUIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NFQUtkLDhEQUFDOEQ7NERBQUlDLFdBQVU7OzhFQUNiLDhEQUFDRDtvRUFBSUMsV0FBVTs7c0ZBQ2IsOERBQUNpQjs0RUFBRWpCLFdBQVU7O2dGQUFxQnZCO2dGQUFPOzs7Ozs7O3NGQUN6Qyw4REFBQ3dDOzRFQUFFakIsV0FBVTtzRkFBeUI7Ozs7Ozs7Ozs7Ozs4RUFFeEMsOERBQUNGO29FQUFVaEQsTUFBTXdDOzs7Ozs7OEVBQ2pCLDhEQUFDb0M7b0VBQUsxQixXQUFXLENBQUMscUZBQXFGLEVBQUV4QixPQUFPLDZEQUE2RCxnREFBZ0Q7O3NGQUMzTiw4REFBQ2tEOzRFQUFLMUIsV0FBVyxDQUFDLHFCQUFxQixFQUFFeEIsT0FBTyxtQkFBbUIsY0FBYzs7Ozs7O3dFQUNoRkEsT0FBTyxnQkFBZ0I7Ozs7Ozs7OEVBRTFCLDhEQUFDK0M7b0VBQ0NDLFNBQVMsSUFBTTFELFVBQVVELElBQUlFLEVBQUU7b0VBQy9CaUMsV0FBVTs4RUFFViw0RUFBQ3pGLGtMQUFNQTt3RUFBQ3lGLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7OzttREE5QmpCbkMsSUFBSUUsRUFBRTs7Ozs7NENBbUNqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQVVkLDhEQUFDNUQsMkRBQWVBOzBCQUNic0IsNEJBQ0MsOERBQUN2QixpREFBTUEsQ0FBQzZGLEdBQUc7b0JBQ1RjLFNBQVM7d0JBQUVDLFNBQVM7b0JBQUU7b0JBQ3RCRSxTQUFTO3dCQUFFRixTQUFTO29CQUFFO29CQUN0QnVCLE1BQU07d0JBQUV2QixTQUFTO29CQUFFO29CQUNuQmQsV0FBVTs4QkFFViw0RUFBQzlGLGlEQUFNQSxDQUFDNkYsR0FBRzt3QkFDVGMsU0FBUzs0QkFBRUMsU0FBUzs0QkFBR0MsT0FBTzs0QkFBTUksR0FBRzt3QkFBRzt3QkFDMUNILFNBQVM7NEJBQUVGLFNBQVM7NEJBQUdDLE9BQU87NEJBQUdJLEdBQUc7d0JBQUU7d0JBQ3RDa0IsTUFBTTs0QkFBRXZCLFNBQVM7NEJBQUdDLE9BQU87NEJBQU1JLEdBQUc7d0JBQUc7d0JBQ3ZDbkIsV0FBVTs7MENBRVYsOERBQUNrQztnQ0FBR2xDLFdBQVU7MENBQXlCOzs7Ozs7MENBQ3ZDLDhEQUFDaUI7Z0NBQUVqQixXQUFVOzBDQUE4Qjs7Ozs7OzBDQUMzQyw4REFBQzBDO2dDQUFLQyxVQUFVdkY7Z0NBQVE0QyxXQUFVOztrREFDaEMsOERBQUNEOzswREFDQyw4REFBQzZDO2dEQUFNNUMsV0FBVTswREFBaUM7Ozs7OzswREFDbEQsOERBQUM2QztnREFDQ0MsTUFBSztnREFDTEMsT0FBT2xILE9BQU9FLElBQUk7Z0RBQ2xCaUgsVUFBVSxDQUFDM0YsSUFBTXZCLFVBQVU7d0RBQUUsR0FBR0QsTUFBTTt3REFBRUUsTUFBTXNCLEVBQUVtRixNQUFNLENBQUNPLEtBQUs7b0RBQUM7Z0RBQzdEL0MsV0FBVTtnREFDVmlELGFBQVk7Z0RBQ1pDLFFBQVE7Ozs7Ozs7Ozs7OztrREFHWiw4REFBQ25EO3dDQUFJQyxXQUFVOzswREFDYiw4REFBQ0Q7O2tFQUNDLDhEQUFDNkM7d0RBQU01QyxXQUFVO2tFQUFpQzs7Ozs7O2tFQUNsRCw4REFBQzZDO3dEQUNDQyxNQUFLO3dEQUNMQyxPQUFPbEgsT0FBT0ksR0FBRzt3REFDakIrRyxVQUFVLENBQUMzRixJQUFNdkIsVUFBVTtnRUFBRSxHQUFHRCxNQUFNO2dFQUFFSSxLQUFLb0IsRUFBRW1GLE1BQU0sQ0FBQ08sS0FBSzs0REFBQzt3REFDNUQvQyxXQUFVO3dEQUNWaUQsYUFBWTt3REFDWkMsUUFBUTs7Ozs7Ozs7Ozs7OzBEQUdaLDhEQUFDbkQ7O2tFQUNDLDhEQUFDNkM7d0RBQU01QyxXQUFVO2tFQUFpQzs7Ozs7O2tFQUNsRCw4REFBQzZDO3dEQUNDQyxNQUFLO3dEQUNMQyxPQUFPbEgsT0FBT0ssSUFBSTt3REFDbEI4RyxVQUFVLENBQUMzRixJQUFNdkIsVUFBVTtnRUFBRSxHQUFHRCxNQUFNO2dFQUFFSyxNQUFNaUgsU0FBUzlGLEVBQUVtRixNQUFNLENBQUNPLEtBQUs7NERBQUU7d0RBQ3ZFL0MsV0FBVTt3REFDVmtELFFBQVE7Ozs7Ozs7Ozs7Ozs7Ozs7OztrREFJZCw4REFBQ25EO3dDQUFJQyxXQUFVOzswREFDYiw4REFBQ3VCO2dEQUNDdUIsTUFBSztnREFDTHRCLFNBQVMsSUFBTTlGLGNBQWM7Z0RBQzdCc0UsV0FBVTswREFDWDs7Ozs7OzBEQUdELDhEQUFDdUI7Z0RBQ0N1QixNQUFLO2dEQUNMOUMsV0FBVTswREFDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVduQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvcGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IG1vdGlvbiwgQW5pbWF0ZVByZXNlbmNlIH0gZnJvbSBcImZyYW1lci1tb3Rpb25cIjtcbmltcG9ydCB7IFxuICBBY3Rpdml0eSwgXG4gIFBsdXMsIFxuICBSZWZyZXNoQ3csIFxuICBUcmFzaDIsIFxuICBFeHRlcm5hbExpbmssXG4gIFNlcnZlcixcbiAgVHJlbmRpbmdVcCxcbiAgQWxlcnRDaXJjbGUsXG4gIEdsb2JlLFxuICBDaGVja0NpcmNsZTIsXG4gIFhDaXJjbGUsXG4gIENsb2NrLFxuICBNb3JlSG9yaXpvbnRhbCxcbiAgTGF5b3V0R3JpZCxcbiAgTGlzdFxufSBmcm9tIFwibHVjaWRlLXJlYWN0XCI7XG5cbmludGVyZmFjZSBBcHAge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBwb3J0OiBudW1iZXI7XG4gIHBhdGg6IHN0cmluZztcbiAgY29tbWFuZDogc3RyaW5nO1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBlbmFibGVkOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgU3RhdHVzRW50cnkge1xuICBhcHBJZDogc3RyaW5nO1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgc3RhdHVzOiBcInVwXCIgfCBcImRvd25cIjtcbiAgcmVzcG9uc2VUaW1lPzogbnVtYmVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIZWFydGJlYXRNb25pdG9yKCkge1xuICBjb25zdCBbYXBwcywgc2V0QXBwc10gPSB1c2VTdGF0ZTxBcHBbXT4oW10pO1xuICBjb25zdCBbc3RhdHVzLCBzZXRTdGF0dXNdID0gdXNlU3RhdGU8U3RhdHVzRW50cnlbXT4oW10pO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW3JlZnJlc2hpbmcsIHNldFJlZnJlc2hpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd0FkZEFwcCwgc2V0U2hvd0FkZEFwcF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFt2aWV3TW9kZSwgc2V0Vmlld01vZGVdID0gdXNlU3RhdGU8XCJncmlkXCIgfCBcImxpc3RcIj4oXCJncmlkXCIpO1xuICBjb25zdCBbbmV3QXBwLCBzZXROZXdBcHBdID0gdXNlU3RhdGU8UGFydGlhbDxBcHA+Pih7XG4gICAgbmFtZTogXCJcIixcbiAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICB1cmw6IFwiaHR0cDovL2xvY2FsaG9zdDpcIixcbiAgICBwb3J0OiAzMDAwLFxuICAgIHBhdGg6IFwiXCIsXG4gICAgY29tbWFuZDogXCJucG0gcnVuIGRldlwiLFxuICAgIGNhdGVnb3J5OiBcIk90aGVyXCIsXG4gICAgY29sb3I6IFwiIzIyQzU1RVwiLFxuICAgIGVuYWJsZWQ6IHRydWUsXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hEYXRhKCk7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmZXRjaERhdGEsIDMwMDAwKTtcbiAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gIH0sIFtdKTtcblxuICBhc3luYyBmdW5jdGlvbiBmZXRjaERhdGEoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKFwiL2FwaS9tb25pdG9yXCIpO1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgICBzZXRBcHBzKGRhdGEuYXBwcyB8fCBbXSk7XG4gICAgICBzZXRTdGF0dXMoZGF0YS5zdGF0dXMgfHwgW10pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBmZXRjaCBkYXRhOlwiLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIHNldFJlZnJlc2hpbmcoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVJlZnJlc2goKSB7XG4gICAgc2V0UmVmcmVzaGluZyh0cnVlKTtcbiAgICBhd2FpdCBmZXRjaERhdGEoKTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGFkZEFwcChlOiBSZWFjdC5Gb3JtRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCFuZXdBcHAubmFtZSB8fCAhbmV3QXBwLnVybCkgcmV0dXJuO1xuICAgIGF3YWl0IGZldGNoKFwiL2FwaS9tb25pdG9yXCIsIHtcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGFjdGlvbjogXCJhZGRBcHBcIiwgYXBwOiBuZXdBcHAgfSksXG4gICAgfSk7XG4gICAgc2V0U2hvd0FkZEFwcChmYWxzZSk7XG4gICAgc2V0TmV3QXBwKHtcbiAgICAgIG5hbWU6IFwiXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICAgIHVybDogXCJodHRwOi8vbG9jYWxob3N0OlwiLFxuICAgICAgcG9ydDogMzAwMCxcbiAgICAgIHBhdGg6IFwiXCIsXG4gICAgICBjb21tYW5kOiBcIm5wbSBydW4gZGV2XCIsXG4gICAgICBjYXRlZ29yeTogXCJPdGhlclwiLFxuICAgICAgY29sb3I6IFwiIzIyQzU1RVwiLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICB9KTtcbiAgICBmZXRjaERhdGEoKTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUFwcChpZDogc3RyaW5nKSB7XG4gICAgaWYgKCFjb25maXJtKFwiRGVsZXRlIHRoaXMgYXBwP1wiKSkgcmV0dXJuO1xuICAgIGF3YWl0IGZldGNoKFwiL2FwaS9tb25pdG9yXCIsIHtcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGFjdGlvbjogXCJkZWxldGVBcHBcIiwgaWQgfSksXG4gICAgfSk7XG4gICAgZmV0Y2hEYXRhKCk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRBcHBTdGF0dXMoYXBwSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGFwcFN0YXR1cyA9IHN0YXR1cy5maWx0ZXIoKHMpID0+IHMuYXBwSWQgPT09IGFwcElkKTtcbiAgICBjb25zdCBsYXRlc3QgPSBhcHBTdGF0dXNbYXBwU3RhdHVzLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGlzVXAgPSBsYXRlc3Q/LnN0YXR1cyA9PT0gXCJ1cFwiO1xuICAgIGNvbnN0IHVwdGltZSA9IGFwcFN0YXR1cy5sZW5ndGggPiAwIFxuICAgICAgPyBNYXRoLnJvdW5kKChhcHBTdGF0dXMuZmlsdGVyKHMgPT4gcy5zdGF0dXMgPT09IFwidXBcIikubGVuZ3RoIC8gYXBwU3RhdHVzLmxlbmd0aCkgKiAxMDApXG4gICAgICA6IDEwMDtcbiAgICBjb25zdCBhdmdSZXNwb25zZVRpbWUgPSBhcHBTdGF0dXMubGVuZ3RoID4gMFxuICAgICAgPyBNYXRoLnJvdW5kKGFwcFN0YXR1cy5maWx0ZXIocyA9PiBzLnJlc3BvbnNlVGltZSkucmVkdWNlKChhY2MsIHMpID0+IGFjYyArIChzLnJlc3BvbnNlVGltZSB8fCAwKSwgMCkgLyBhcHBTdGF0dXMuZmlsdGVyKHMgPT4gcy5yZXNwb25zZVRpbWUpLmxlbmd0aCkgfHwgMFxuICAgICAgOiAwO1xuICAgIGNvbnN0IGxhc3QyNEhvdXJzID0gYXBwU3RhdHVzLmZpbHRlcihzID0+IHtcbiAgICAgIGNvbnN0IGhvdXJzQWdvID0gKERhdGUubm93KCkgLSBuZXcgRGF0ZShzLnRpbWVzdGFtcCkuZ2V0VGltZSgpKSAvICgxMDAwICogNjAgKiA2MCk7XG4gICAgICByZXR1cm4gaG91cnNBZ28gPD0gMjQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgbGF0ZXN0LCBpc1VwLCB1cHRpbWUsIGF2Z1Jlc3BvbnNlVGltZSwgaGlzdG9yeTogbGFzdDI0SG91cnMgfTtcbiAgfVxuXG4gIGNvbnN0IHN0YXRzID0ge1xuICAgIHRvdGFsOiBhcHBzLmxlbmd0aCxcbiAgICBvbmxpbmU6IGFwcHMuZmlsdGVyKChhcHApID0+IGdldEFwcFN0YXR1cyhhcHAuaWQpLmlzVXApLmxlbmd0aCxcbiAgICBvZmZsaW5lOiBhcHBzLmZpbHRlcigoYXBwKSA9PiAhZ2V0QXBwU3RhdHVzKGFwcC5pZCkuaXNVcCkubGVuZ3RoLFxuICAgIGF2Z1VwdGltZTogYXBwcy5sZW5ndGggPiAwIFxuICAgICAgPyBNYXRoLnJvdW5kKGFwcHMucmVkdWNlKChhY2MsIGFwcCkgPT4gYWNjICsgZ2V0QXBwU3RhdHVzKGFwcC5pZCkudXB0aW1lLCAwKSAvIGFwcHMubGVuZ3RoKVxuICAgICAgOiAwLFxuICAgIGF2Z1Jlc3BvbnNlVGltZTogYXBwcy5sZW5ndGggPiAwXG4gICAgICA/IE1hdGgucm91bmQoYXBwcy5yZWR1Y2UoKGFjYywgYXBwKSA9PiBhY2MgKyBnZXRBcHBTdGF0dXMoYXBwLmlkKS5hdmdSZXNwb25zZVRpbWUsIDApIC8gYXBwcy5sZW5ndGgpXG4gICAgICA6IDAsXG4gICAgaW5jaWRlbnRzOiBzdGF0dXMuZmlsdGVyKHMgPT4gcy5zdGF0dXMgPT09IFwiZG93blwiKS5sZW5ndGgsXG4gIH07XG5cbiAgY29uc3QgYWxsVXAgPSBzdGF0cy5vbmxpbmUgPT09IHN0YXRzLnRvdGFsICYmIHN0YXRzLnRvdGFsID4gMDtcblxuICBmdW5jdGlvbiBTcGFya2xpbmUoeyBkYXRhIH06IHsgZGF0YTogU3RhdHVzRW50cnlbXSB9KSB7XG4gICAgaWYgKGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtOCB3LTIwIGJnLXNsYXRlLTgwMC81MCByb3VuZGVkIGZsZXggaXRlbXMtZW5kIGp1c3RpZnktY2VudGVyIGdhcC0wLjUgcC0xXCI+XG4gICAgICAgICAge0FycmF5LmZyb20oeyBsZW5ndGg6IDggfSkubWFwKChfLCBpKSA9PiAoXG4gICAgICAgICAgICA8ZGl2IGtleT17aX0gY2xhc3NOYW1lPVwidy0xIGJnLXNsYXRlLTcwMCByb3VuZGVkLXNtXCIgc3R5bGU9e3sgaGVpZ2h0OiAnMzAlJyB9fSAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGJhcnMgPSBkYXRhLnNsaWNlKC04KS5tYXAoKGVudHJ5LCBpKSA9PiB7XG4gICAgICBjb25zdCBoZWlnaHQgPSBlbnRyeS5zdGF0dXMgPT09IFwidXBcIiBcbiAgICAgICAgPyBNYXRoLm1heCgyMCwgTWF0aC5taW4oMTAwLCAxMDAgLSAoKGVudHJ5LnJlc3BvbnNlVGltZSB8fCAxMDApIC8gMTApKSlcbiAgICAgICAgOiAxMDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgY2xhc3NOYW1lPXtgdy0xLjUgcm91bmRlZC1zbSAke2VudHJ5LnN0YXR1cyA9PT0gXCJ1cFwiID8gXCJiZy1lbWVyYWxkLTUwMC84MFwiIDogXCJiZy1yZWQtNTAwLzgwXCJ9YH1cbiAgICAgICAgICBzdHlsZT17eyBoZWlnaHQ6IGAke2hlaWdodH0lYCB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9KTtcbiAgICBcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLTggdy0yMCBiZy1zbGF0ZS04MDAvNTAgcm91bmRlZCBmbGV4IGl0ZW1zLWVuZCBqdXN0aWZ5LWNlbnRlciBnYXAtMC41IHAtMVwiPlxuICAgICAgICB7YmFyc31cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxuICBpZiAobG9hZGluZykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1zbGF0ZS05NTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPG1vdGlvbi5kaXYgXG4gICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwLCBzY2FsZTogMC45IH19XG4gICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCBzY2FsZTogMSB9fVxuICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC00XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xMiBoLTEyIHJvdW5kZWQteGwgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1lbWVyYWxkLTUwMCB0by1jeWFuLTUwMCBhbmltYXRlLXB1bHNlXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCB3LTEyIGgtMTIgcm91bmRlZC14bCBiZy1ncmFkaWVudC10by1iciBmcm9tLWVtZXJhbGQtNTAwIHRvLWN5YW4tNTAwIGJsdXIteGwgb3BhY2l0eS01MFwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS00MDAgYW5pbWF0ZS1wdWxzZVwiPkxvYWRpbmcgZGFzaGJvYXJkLi4uPC9wPlxuICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1zbGF0ZS05NTAgdGV4dC1zbGF0ZS0xMDBcIj5cbiAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICA8bW90aW9uLmhlYWRlciBcbiAgICAgICAgaW5pdGlhbD17eyB5OiAtMjAsIG9wYWNpdHk6IDAgfX1cbiAgICAgICAgYW5pbWF0ZT17eyB5OiAwLCBvcGFjaXR5OiAxIH19XG4gICAgICAgIGNsYXNzTmFtZT1cInN0aWNreSB0b3AtMCB6LTUwIGJvcmRlci1iIGJvcmRlci1zbGF0ZS04MDAvNTAgYmctc2xhdGUtOTUwLzgwIGJhY2tkcm9wLWJsdXIteGxcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTd4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaC0xNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICA8bW90aW9uLmRpdiBcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiXG4gICAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyBzY2FsZTogMS4wNSB9fVxuICAgICAgICAgICAgICAgIHdoaWxlVGFwPXt7IHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMTAgaC0xMCByb3VuZGVkLXhsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZW1lcmFsZC01MDAgdG8tY3lhbi01MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgc2hhZG93LWxnIHNoYWRvdy1lbWVyYWxkLTUwMC8yMFwiPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2aXR5IGNsYXNzTmFtZT1cInctNSBoLTUgdGV4dC13aGl0ZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZVwiPkhlYXJ0YmVhdDwvaDE+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXNsYXRlLTQwMFwiPkluZnJhc3RydWN0dXJlIE1vbml0b3I8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVJlZnJlc2h9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3JlZnJlc2hpbmd9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIHRleHQtc2xhdGUtNDAwIGhvdmVyOnRleHQtd2hpdGUgaG92ZXI6Ymctc2xhdGUtODAwIHJvdW5kZWQtbGcgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlZnJlc2hDdyBjbGFzc05hbWU9e2B3LTUgaC01ICR7cmVmcmVzaGluZyA/ICdhbmltYXRlLXNwaW4nIDogJyd9YH0gLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0FkZEFwcCh0cnVlKX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC00IHB5LTIgYmctZ3JhZGllbnQtdG8tciBmcm9tLWVtZXJhbGQtNjAwIHRvLWVtZXJhbGQtNTAwIGhvdmVyOmZyb20tZW1lcmFsZC01MDAgaG92ZXI6dG8tZW1lcmFsZC00MDAgdGV4dC13aGl0ZSByb3VuZGVkLWxnIHNoYWRvdy1sZyBzaGFkb3ctZW1lcmFsZC01MDAvMjAgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBsdXMgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaGlkZGVuIHNtOmlubGluZVwiPkFkZCBNb25pdG9yPC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbW90aW9uLmhlYWRlcj5cblxuICAgICAgey8qIE1haW4gQ29udGVudCAqL31cbiAgICAgIDxtYWluIGNsYXNzTmFtZT1cIm1heC13LTd4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04IHB5LThcIj5cbiAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICB0cmFuc2l0aW9uPXt7IHN0YWdnZXJDaGlsZHJlbjogMC4xIH19XG4gICAgICAgICAgY2xhc3NOYW1lPVwic3BhY2UteS04XCJcbiAgICAgICAgPlxuICAgICAgICAgIHsvKiBTdGF0dXMgT3ZlcnZpZXcgKi99XG4gICAgICAgICAgPG1vdGlvbi5kaXYgXG4gICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDEwIH19XG4gICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHk6IDAgfX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHctMyBoLTMgcm91bmRlZC1mdWxsICR7YWxsVXAgPyAnYmctZW1lcmFsZC01MDAgYW5pbWF0ZS1wdWxzZScgOiAnYmctcmVkLTUwMCd9YH0gLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW1cIj5cbiAgICAgICAgICAgICAge2FsbFVwID8gJ0FsbCBTeXN0ZW1zIE9wZXJhdGlvbmFsJyA6IGAke3N0YXRzLm9mZmxpbmV9IFNlcnZpY2Uke3N0YXRzLm9mZmxpbmUgPiAxID8gJ3MnIDogJyd9IERvd25gfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS01MDBcIj7igKIgTGFzdCB1cGRhdGVkIHtuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpfTwvc3Bhbj5cbiAgICAgICAgICA8L21vdGlvbi5kaXY+XG5cbiAgICAgICAgICB7LyogU3RhdHMgR3JpZCAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTQgZ2FwLTRcIj5cbiAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMSB9fVxuICAgICAgICAgICAgICB3aGlsZUhvdmVyPXt7IHk6IC00IH19XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXNsYXRlLTkwMC81MCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCBib3JkZXItbC00IGJvcmRlci1sLWVtZXJhbGQtNTAwIHJvdW5kZWQteGwgcC02IGN1cnNvci1wb2ludGVyIGhvdmVyOmJnLXNsYXRlLTgwMC81MCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTMgcm91bmRlZC14bCBiZy1lbWVyYWxkLTUwMC8xMFwiPlxuICAgICAgICAgICAgICAgICAgPFNlcnZlciBjbGFzc05hbWU9XCJ3LTYgaC02IHRleHQtZW1lcmFsZC01MDBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1ib2xkXCI+e3N0YXRzLm9ubGluZX08c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTUwMCB0ZXh0LWxnXCI+L3tzdGF0cy50b3RhbH08L3NwYW4+PC9wPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMFwiPlNlcnZpY2VzIE9ubGluZTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21vdGlvbi5kaXY+XG5cbiAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMTUgfX1cbiAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyB5OiAtNCB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1zbGF0ZS05MDAvNTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgYm9yZGVyLWwtNCBib3JkZXItbC1ibHVlLTUwMCByb3VuZGVkLXhsIHAtNiBjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1zbGF0ZS04MDAvNTAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zIHJvdW5kZWQteGwgYmctYmx1ZS01MDAvMTBcIj5cbiAgICAgICAgICAgICAgICAgIDxUcmVuZGluZ1VwIGNsYXNzTmFtZT1cInctNiBoLTYgdGV4dC1ibHVlLTUwMFwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBmb250LWJvbGRcIj57c3RhdHMuYXZnVXB0aW1lfSU8L3A+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtc2xhdGUtNDAwXCI+QXZnIFVwdGltZTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtNCB3LWZ1bGwgYmctc2xhdGUtODAwIHJvdW5kZWQtZnVsbCBoLTJcIj5cbiAgICAgICAgICAgICAgICA8bW90aW9uLmRpdiBcbiAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgd2lkdGg6IDAgfX1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgd2lkdGg6IGAke3N0YXRzLmF2Z1VwdGltZX0lYCB9fVxuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkdXJhdGlvbjogMSwgZGVsYXk6IDAuNSB9fVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctYmx1ZS01MDAgaC0yIHJvdW5kZWQtZnVsbFwiIFxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuXG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDIwIH19XG4gICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSwgeTogMCB9fVxuICAgICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGRlbGF5OiAwLjIgfX1cbiAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyB5OiAtNCB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1zbGF0ZS05MDAvNTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgYm9yZGVyLWwtNCBib3JkZXItbC1wdXJwbGUtNTAwIHJvdW5kZWQteGwgcC02IGN1cnNvci1wb2ludGVyIGhvdmVyOmJnLXNsYXRlLTgwMC81MCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTMgcm91bmRlZC14bCBiZy1wdXJwbGUtNTAwLzEwXCI+XG4gICAgICAgICAgICAgICAgICA8Q2xvY2sgY2xhc3NOYW1lPVwidy02IGgtNiB0ZXh0LXB1cnBsZS01MDBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1ib2xkXCI+e3N0YXRzLmF2Z1Jlc3BvbnNlVGltZX08c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTUwMCB0ZXh0LWxnXCI+bXM8L3NwYW4+PC9wPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMFwiPkF2ZyBSZXNwb25zZTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21vdGlvbi5kaXY+XG5cbiAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMjUgfX1cbiAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyB5OiAtNCB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1zbGF0ZS05MDAvNTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgYm9yZGVyLWwtNCBib3JkZXItbC1hbWJlci01MDAgcm91bmRlZC14bCBwLTYgY3Vyc29yLXBvaW50ZXIgaG92ZXI6Ymctc2xhdGUtODAwLzUwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtMyByb3VuZGVkLXhsIGJnLWFtYmVyLTUwMC8xMFwiPlxuICAgICAgICAgICAgICAgICAgPEFsZXJ0Q2lyY2xlIGNsYXNzTmFtZT1cInctNiBoLTYgdGV4dC1hbWJlci01MDBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1ib2xkXCI+e3N0YXRzLmluY2lkZW50c308L3A+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtc2xhdGUtNDAwXCI+SW5jaWRlbnRzPC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIHsvKiBNb25pdG9ycyBTZWN0aW9uICovfVxuICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDIwIH19XG4gICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHk6IDAgfX1cbiAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMyB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctc2xhdGUtOTAwLzUwIGJvcmRlciBib3JkZXItc2xhdGUtODAwIHJvdW5kZWQteGwgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTYgcHktNCBib3JkZXItYiBib3JkZXItc2xhdGUtODAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxHbG9iZSBjbGFzc05hbWU9XCJ3LTUgaC01IHRleHQtc2xhdGUtNDAwXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZFwiPk1vbml0b3JlZCBTZXJ2aWNlczwvaDI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMCBtdC0xXCI+e3N0YXRzLnRvdGFsfSBhY3RpdmUgbW9uaXRvcntzdGF0cy50b3RhbCAhPT0gMSA/ICdzJyA6ICcnfTwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRWaWV3TW9kZSh2aWV3TW9kZSA9PT0gXCJncmlkXCIgPyBcImxpc3RcIiA6IFwiZ3JpZFwiKX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtMiB0ZXh0LXNsYXRlLTQwMCBob3Zlcjp0ZXh0LXdoaXRlIGhvdmVyOmJnLXNsYXRlLTgwMCByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7dmlld01vZGUgPT09IFwiZ3JpZFwiID8gPExpc3QgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+IDogPExheW91dEdyaWQgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNlwiPlxuICAgICAgICAgICAgICB7YXBwcy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgPG1vdGlvbi5kaXYgXG4gICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHNjYWxlOiAxIH19XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBweS0xNlwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTIwIGgtMjAgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1zbGF0ZS04MDAgdG8tc2xhdGUtOTAwIHJvdW5kZWQtMnhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItNiBzaGFkb3ctaW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPEFjdGl2aXR5IGNsYXNzTmFtZT1cInctMTAgaC0xMCB0ZXh0LXNsYXRlLTYwMFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItMlwiPk5vIG1vbml0b3JzIHlldDwvaDM+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTQwMCBtYi02XCI+U3RhcnQgbW9uaXRvcmluZyB5b3VyIHNlcnZpY2VzIGJ5IGFkZGluZyB5b3VyIGZpcnN0IG1vbml0b3I8L3A+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93QWRkQXBwKHRydWUpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJweC00IHB5LTIgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC01MDAgdGV4dC13aGl0ZSByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQWRkIFlvdXIgRmlyc3QgTW9uaXRvclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICApIDogdmlld01vZGUgPT09IFwiZ3JpZFwiID8gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBsZzpncmlkLWNvbHMtMiBnYXAtNFwiPlxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVQcmVzZW5jZT5cbiAgICAgICAgICAgICAgICAgICAge2FwcHMubWFwKChhcHAsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBpc1VwLCB1cHRpbWUsIGF2Z1Jlc3BvbnNlVGltZSwgaGlzdG9yeSwgbGF0ZXN0IH0gPSBnZXRBcHBTdGF0dXMoYXBwLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXthcHAuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQ9e3sgb3BhY2l0eTogMCwgc2NhbGU6IDAuOTUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkZWxheTogaW5kZXggKiAwLjA1IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlSG92ZXI9e3sgeTogLTQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgYmctc2xhdGUtOTAwIGJvcmRlciBib3JkZXItc2xhdGUtODAwIHJvdW5kZWQteGwgYm9yZGVyLWwtNCAke2lzVXAgPyAnYm9yZGVyLWwtZW1lcmFsZC01MDAnIDogJ2JvcmRlci1sLXJlZC01MDAnfSBwLTUgZ3JvdXBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2B3LTEwIGgtMTAgcm91bmRlZC14bCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAke2lzVXAgPyAnYmctZW1lcmFsZC01MDAvMTAnIDogJ2JnLXJlZC01MDAvMTAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VydmVyIGNsYXNzTmFtZT17YHctNSBoLTUgJHtpc1VwID8gJ3RleHQtZW1lcmFsZC01MDAnIDogJ3RleHQtcmVkLTUwMCd9YH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGQgdGV4dC1sZ1wiPnthcHAubmFtZX08L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXthcHAudXJsfSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtc2xhdGUtNDAwIGhvdmVyOnRleHQtZW1lcmFsZC00MDAgdHJhbnNpdGlvbi1jb2xvcnMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FwcC51cmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEV4dGVybmFsTGluayBjbGFzc05hbWU9XCJ3LTMgaC0zXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgcHgtMi41IHB5LTEgcm91bmRlZC1mdWxsIHRleHQteHMgZm9udC1tZWRpdW0gYm9yZGVyICR7aXNVcCA/ICdib3JkZXItZW1lcmFsZC01MDAvMzAgYmctZW1lcmFsZC01MDAvMTAgdGV4dC1lbWVyYWxkLTQwMCcgOiAnYm9yZGVyLXJlZC01MDAvMzAgYmctcmVkLTUwMC8xMCB0ZXh0LXJlZC00MDAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgcmVsYXRpdmUgZmxleCBoLTIgdy0yYH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGFuaW1hdGUtcGluZyBhYnNvbHV0ZSBpbmxpbmUtZmxleCBoLWZ1bGwgdy1mdWxsIHJvdW5kZWQtZnVsbCBvcGFjaXR5LTc1ICR7aXNVcCA/ICdiZy1lbWVyYWxkLTQwMCcgOiAnYmctcmVkLTQwMCd9YH0+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2ByZWxhdGl2ZSBpbmxpbmUtZmxleCByb3VuZGVkLWZ1bGwgaC0yIHctMiAke2lzVXAgPyAnYmctZW1lcmFsZC01MDAnIDogJ2JnLXJlZC01MDAnfWB9Pjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc1VwID8gXCJPcGVyYXRpb25hbFwiIDogXCJEb3duXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTQgZ3JpZCBncmlkLWNvbHMtMyBnYXAtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGRcIj57dXB0aW1lfSU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtc2xhdGUtNDAwXCI+VXB0aW1lPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGRcIj57YXZnUmVzcG9uc2VUaW1lID4gMCA/IGAke2F2Z1Jlc3BvbnNlVGltZX1tc2AgOiAn4oCUJ308L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtc2xhdGUtNDAwXCI+UmVzcG9uc2U8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNwYXJrbGluZSBkYXRhPXtoaXN0b3J5fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTQgcHQtNCBib3JkZXItdCBib3JkZXItc2xhdGUtODAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1zbGF0ZS01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhc3QgY2hlY2s6IHtsYXRlc3QgPyBuZXcgRGF0ZShsYXRlc3QudGltZXN0YW1wKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA6ICdOZXZlcid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGRlbGV0ZUFwcChhcHAuaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIHRleHQtc2xhdGUtNTAwIGhvdmVyOnRleHQtcmVkLTQwMCBob3ZlcjpiZy1yZWQtNTAwLzEwIHJvdW5kZWQtbGcgb3BhY2l0eS0wIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwIHRyYW5zaXRpb24tYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHJhc2gyIGNsYXNzTmFtZT1cInctNCBoLTRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIDwvQW5pbWF0ZVByZXNlbmNlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGl2aWRlLXkgZGl2aWRlLXNsYXRlLTgwMFwiPlxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVQcmVzZW5jZT5cbiAgICAgICAgICAgICAgICAgICAge2FwcHMubWFwKChhcHApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGlzVXAsIHVwdGltZSwgYXZnUmVzcG9uc2VUaW1lLCBoaXN0b3J5LCBsYXRlc3QgfSA9IGdldEFwcFN0YXR1cyhhcHAuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2FwcC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBleGl0PXt7IG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicHktNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ3JvdXAgaG92ZXI6Ymctc2xhdGUtODAwLzMwIHRyYW5zaXRpb24tY29sb3JzIHB4LTIgcm91bmRlZC1sZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHctMiBoLTEyIHJvdW5kZWQtZnVsbCAke2lzVXAgPyAnYmctZW1lcmFsZC01MDAnIDogJ2JnLXJlZC01MDAnfWB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkXCI+e2FwcC5uYW1lfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPXthcHAudXJsfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMCBob3Zlcjp0ZXh0LWVtZXJhbGQtNDAwIHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthcHAudXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLThcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ib2xkXCI+e3VwdGltZX0lPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXNsYXRlLTQwMFwiPlVwdGltZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3BhcmtsaW5lIGRhdGE9e2hpc3Rvcnl9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgcHgtMi41IHB5LTEgcm91bmRlZC1mdWxsIHRleHQteHMgZm9udC1tZWRpdW0gYm9yZGVyICR7aXNVcCA/ICdib3JkZXItZW1lcmFsZC01MDAvMzAgYmctZW1lcmFsZC01MDAvMTAgdGV4dC1lbWVyYWxkLTQwMCcgOiAnYm9yZGVyLXJlZC01MDAvMzAgYmctcmVkLTUwMC8xMCB0ZXh0LXJlZC00MDAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgdy0yIGgtMiByb3VuZGVkLWZ1bGwgJHtpc1VwID8gJ2JnLWVtZXJhbGQtNTAwJyA6ICdiZy1yZWQtNTAwJ31gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzVXAgPyBcIk9wZXJhdGlvbmFsXCIgOiBcIkRvd25cIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gZGVsZXRlQXBwKGFwcC5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTIgdGV4dC1zbGF0ZS01MDAgaG92ZXI6dGV4dC1yZWQtNDAwIGhvdmVyOmJnLXJlZC01MDAvMTAgcm91bmRlZC1sZyBvcGFjaXR5LTAgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUcmFzaDIgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgPC9BbmltYXRlUHJlc2VuY2U+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgIDwvbWFpbj5cblxuICAgICAgey8qIEFkZCBNb25pdG9yIERpYWxvZyAqL31cbiAgICAgIDxBbmltYXRlUHJlc2VuY2U+XG4gICAgICAgIHtzaG93QWRkQXBwICYmIChcbiAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICAgIGV4aXQ9e3sgb3BhY2l0eTogMCB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQgaW5zZXQtMCBiZy1ibGFjay82MCBiYWNrZHJvcC1ibHVyLXNtIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHotNTAgcC00XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHNjYWxlOiAwLjk1LCB5OiAyMCB9fVxuICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHNjYWxlOiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIGV4aXQ9e3sgb3BhY2l0eTogMCwgc2NhbGU6IDAuOTUsIHk6IDIwIH19XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXNsYXRlLTkwMCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCByb3VuZGVkLXhsIHAtNiB3LWZ1bGwgbWF4LXctbWQgc2hhZG93LTJ4bFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZCBtYi0yXCI+QWRkIE5ldyBNb25pdG9yPC9oMj5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS00MDAgdGV4dC1zbSBtYi02XCI+TW9uaXRvciBhIG5ldyBzZXJ2aWNlIGJ5IHByb3ZpZGluZyBpdHMgZGV0YWlscyBiZWxvdy48L3A+XG4gICAgICAgICAgICAgIDxmb3JtIG9uU3VibWl0PXthZGRBcHB9IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSBtYi0yXCI+TW9uaXRvciBOYW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e25ld0FwcC5uYW1lfSBcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXROZXdBcHAoeyAuLi5uZXdBcHAsIG5hbWU6IGUudGFyZ2V0LnZhbHVlIH0pfSBcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLXNsYXRlLTk1MCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCByb3VuZGVkLWxnIHB4LTQgcHktMi41IHRleHQtd2hpdGUgcGxhY2Vob2xkZXItc2xhdGUtNTAwIGZvY3VzOmJvcmRlci1lbWVyYWxkLTUwMCBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1lbWVyYWxkLTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTXkgQXBwbGljYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCBcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0yIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSBtYi0yXCI+VVJMPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ1cmxcIiBcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17bmV3QXBwLnVybH0gXG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXROZXdBcHAoeyAuLi5uZXdBcHAsIHVybDogZS50YXJnZXQudmFsdWUgfSl9IFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBiZy1zbGF0ZS05NTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgcm91bmRlZC1sZyBweC00IHB5LTIuNSB0ZXh0LXdoaXRlIHBsYWNlaG9sZGVyLXNsYXRlLTUwMCBmb2N1czpib3JkZXItZW1lcmFsZC01MDAgZm9jdXM6cmluZy0xIGZvY3VzOnJpbmctZW1lcmFsZC01MDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiaHR0cDovL2xvY2FsaG9zdDozMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCBcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gbWItMlwiPlBvcnQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiIFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtuZXdBcHAucG9ydH0gXG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXROZXdBcHAoeyAuLi5uZXdBcHAsIHBvcnQ6IHBhcnNlSW50KGUudGFyZ2V0LnZhbHVlKSB9KX0gXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLXNsYXRlLTk1MCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCByb3VuZGVkLWxnIHB4LTQgcHktMi41IHRleHQtd2hpdGUgcGxhY2Vob2xkZXItc2xhdGUtNTAwIGZvY3VzOmJvcmRlci1lbWVyYWxkLTUwMCBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1lbWVyYWxkLTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQgXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTMgcHQtNFwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0FkZEFwcChmYWxzZSl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBweC00IHB5LTIuNSBib3JkZXIgYm9yZGVyLXNsYXRlLTcwMCByb3VuZGVkLWxnIGhvdmVyOmJnLXNsYXRlLTgwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4LTEgcHgtNCBweS0yLjUgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC01MDAgdGV4dC13aGl0ZSByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzIGZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQWRkIE1vbml0b3JcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICApfVxuICAgICAgPC9BbmltYXRlUHJlc2VuY2U+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJtb3Rpb24iLCJBbmltYXRlUHJlc2VuY2UiLCJBY3Rpdml0eSIsIlBsdXMiLCJSZWZyZXNoQ3ciLCJUcmFzaDIiLCJFeHRlcm5hbExpbmsiLCJTZXJ2ZXIiLCJUcmVuZGluZ1VwIiwiQWxlcnRDaXJjbGUiLCJHbG9iZSIsIkNsb2NrIiwiTGF5b3V0R3JpZCIsIkxpc3QiLCJIZWFydGJlYXRNb25pdG9yIiwiYXBwcyIsInNldEFwcHMiLCJzdGF0dXMiLCJzZXRTdGF0dXMiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsInJlZnJlc2hpbmciLCJzZXRSZWZyZXNoaW5nIiwic2hvd0FkZEFwcCIsInNldFNob3dBZGRBcHAiLCJ2aWV3TW9kZSIsInNldFZpZXdNb2RlIiwibmV3QXBwIiwic2V0TmV3QXBwIiwibmFtZSIsImRlc2NyaXB0aW9uIiwidXJsIiwicG9ydCIsInBhdGgiLCJjb21tYW5kIiwiY2F0ZWdvcnkiLCJjb2xvciIsImVuYWJsZWQiLCJmZXRjaERhdGEiLCJpbnRlcnZhbCIsInNldEludGVydmFsIiwiY2xlYXJJbnRlcnZhbCIsInJlcyIsImZldGNoIiwiZGF0YSIsImpzb24iLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJoYW5kbGVSZWZyZXNoIiwiYWRkQXBwIiwiZSIsInByZXZlbnREZWZhdWx0IiwibWV0aG9kIiwiaGVhZGVycyIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiYWN0aW9uIiwiYXBwIiwiZGVsZXRlQXBwIiwiaWQiLCJjb25maXJtIiwiZ2V0QXBwU3RhdHVzIiwiYXBwSWQiLCJhcHBTdGF0dXMiLCJmaWx0ZXIiLCJzIiwibGF0ZXN0IiwibGVuZ3RoIiwiaXNVcCIsInVwdGltZSIsIk1hdGgiLCJyb3VuZCIsImF2Z1Jlc3BvbnNlVGltZSIsInJlc3BvbnNlVGltZSIsInJlZHVjZSIsImFjYyIsImxhc3QyNEhvdXJzIiwiaG91cnNBZ28iLCJEYXRlIiwibm93IiwidGltZXN0YW1wIiwiZ2V0VGltZSIsImhpc3RvcnkiLCJzdGF0cyIsInRvdGFsIiwib25saW5lIiwib2ZmbGluZSIsImF2Z1VwdGltZSIsImluY2lkZW50cyIsImFsbFVwIiwiU3BhcmtsaW5lIiwiZGl2IiwiY2xhc3NOYW1lIiwiQXJyYXkiLCJmcm9tIiwibWFwIiwiXyIsImkiLCJzdHlsZSIsImhlaWdodCIsImJhcnMiLCJzbGljZSIsImVudHJ5IiwibWF4IiwibWluIiwiaW5pdGlhbCIsIm9wYWNpdHkiLCJzY2FsZSIsImFuaW1hdGUiLCJwIiwiaGVhZGVyIiwieSIsIndoaWxlSG92ZXIiLCJ3aGlsZVRhcCIsImgxIiwiYnV0dG9uIiwib25DbGljayIsImRpc2FibGVkIiwic3BhbiIsIm1haW4iLCJ0cmFuc2l0aW9uIiwic3RhZ2dlckNoaWxkcmVuIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiZGVsYXkiLCJ3aWR0aCIsImR1cmF0aW9uIiwiaDIiLCJoMyIsImluZGV4IiwiZXhpdCIsImEiLCJocmVmIiwidGFyZ2V0IiwicmVsIiwiZm9ybSIsIm9uU3VibWl0IiwibGFiZWwiLCJpbnB1dCIsInR5cGUiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwicGxhY2Vob2xkZXIiLCJyZXF1aXJlZCIsInBhcnNlSW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/app/page.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./src/app/globals.css": +/*!*****************************!*\ + !*** ./src/app/globals.css ***! + \*****************************/ +/***/ ((__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 default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"43019ed0b75a\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivc3JjL2FwcC9nbG9iYWxzLmNzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBcIjQzMDE5ZWQwYjc1YVwiXG5pZiAobW9kdWxlLmhvdCkgeyBtb2R1bGUuaG90LmFjY2VwdCgpIH1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n"); + +/***/ }), + +/***/ "(rsc)/./src/app/layout.tsx": +/*!****************************!*\ + !*** ./src/app/layout.tsx ***! + \****************************/ +/***/ ((__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 */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n\n\nconst metadata = {\n title: \"Heartbeat Monitor\",\n description: \"Real-time monitoring dashboard for your web applications\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n className: \"dark\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n className: \"antialiased\",\n children: children\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/layout.tsx\",\n lineNumber: 16,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/layout.tsx\",\n lineNumber: 15,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ3VCO0FBRWhCLE1BQU1BLFdBQXFCO0lBQ2hDQyxPQUFPO0lBQ1BDLGFBQWE7QUFDZixFQUFFO0FBRWEsU0FBU0MsV0FBVyxFQUNqQ0MsUUFBUSxFQUdSO0lBQ0EscUJBQ0UsOERBQUNDO1FBQUtDLE1BQUs7UUFBS0MsV0FBVTtrQkFDeEIsNEVBQUNDO1lBQUtELFdBQVU7c0JBQWVIOzs7Ozs7Ozs7OztBQUdyQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvbGF5b3V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1ldGFkYXRhIH0gZnJvbSBcIm5leHRcIjtcbmltcG9ydCBcIi4vZ2xvYmFscy5jc3NcIjtcblxuZXhwb3J0IGNvbnN0IG1ldGFkYXRhOiBNZXRhZGF0YSA9IHtcbiAgdGl0bGU6IFwiSGVhcnRiZWF0IE1vbml0b3JcIixcbiAgZGVzY3JpcHRpb246IFwiUmVhbC10aW1lIG1vbml0b3JpbmcgZGFzaGJvYXJkIGZvciB5b3VyIHdlYiBhcHBsaWNhdGlvbnNcIixcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFJvb3RMYXlvdXQoe1xuICBjaGlsZHJlbixcbn06IFJlYWRvbmx5PHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn0+KSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWwgbGFuZz1cImVuXCIgY2xhc3NOYW1lPVwiZGFya1wiPlxuICAgICAgPGJvZHkgY2xhc3NOYW1lPVwiYW50aWFsaWFzZWRcIj57Y2hpbGRyZW59PC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJtZXRhZGF0YSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJodG1sIiwibGFuZyIsImNsYXNzTmFtZSIsImJvZHkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n"); + +/***/ }), + +/***/ "(rsc)/./src/app/page.tsx": +/*!**************************!*\ + !*** ./src/app/page.tsx ***! + \**************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-server-dom-webpack/server.edge */ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server-edge.js"); +/* harmony import */ var react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server_edge__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)( +function() { throw new Error("Attempted to call the default export of \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component."); }, +"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx", +"default", +)); + + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc","vendor-chunks/motion-dom","vendor-chunks/framer-motion","vendor-chunks/motion-utils","vendor-chunks/lucide-react"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"))); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/app/page_client-reference-manifest.js b/.next/server/app/page_client-reference-manifest.js new file mode 100644 index 00000000..339134da --- /dev/null +++ b/.next/server/app/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(ssr)/./src/app/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/globals.css":{"id":"(app-pages-browser)/./src/app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/client-segment.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/lib/metadata/metadata-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/esm/lib/metadata/metadata-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx":{"id":"(app-pages-browser)/./src/app/page.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false}},"entryCSSFiles":{"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/":[],"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/layout":[{"inlined":false,"path":"static/css/app/layout.css"}],"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page":[]},"rscModuleMapping":{"(app-pages-browser)/./src/app/globals.css":{"*":{"id":"(rsc)/./src/app/globals.css","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/lib/metadata/metadata-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/lib/metadata/metadata-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(rsc)/./src/app/page.tsx","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}} \ No newline at end of file diff --git a/.next/server/middleware-build-manifest.js b/.next/server/middleware-build-manifest.js index e9b5ec65..08e41fe7 100644 --- a/.next/server/middleware-build-manifest.js +++ b/.next/server/middleware-build-manifest.js @@ -3,25 +3,25 @@ self.__BUILD_MANIFEST = { "static/chunks/polyfills.js" ], "devFiles": [ - "static/chunks/fallback/react-refresh.js" - ], - "ampDevFiles": [ - "static/chunks/fallback/webpack.js", - "static/chunks/fallback/amp.js" + "static/chunks/react-refresh.js" ], + "ampDevFiles": [], "lowPriorityFiles": [], - "rootMainFiles": [], + "rootMainFiles": [ + "static/chunks/webpack.js", + "static/chunks/main-app.js" + ], "rootMainFilesTree": {}, "pages": { "/_app": [ - "static/chunks/fallback/webpack.js", - "static/chunks/fallback/main.js", - "static/chunks/fallback/pages/_app.js" + "static/chunks/webpack.js", + "static/chunks/main.js", + "static/chunks/pages/_app.js" ], "/_error": [ - "static/chunks/fallback/webpack.js", - "static/chunks/fallback/main.js", - "static/chunks/fallback/pages/_error.js" + "static/chunks/webpack.js", + "static/chunks/main.js", + "static/chunks/pages/_error.js" ] }, "ampFirstPages": [] diff --git a/.next/server/pages-manifest.json b/.next/server/pages-manifest.json index 9e26dfee..b737eede 100644 --- a/.next/server/pages-manifest.json +++ b/.next/server/pages-manifest.json @@ -1 +1,5 @@ -{} \ No newline at end of file +{ + "/_error": "pages/_error.js", + "/_app": "pages/_app.js", + "/_document": "pages/_document.js" +} \ No newline at end of file diff --git a/.next/server/pages/_app.js b/.next/server/pages/_app.js new file mode 100644 index 00000000..bdff3371 --- /dev/null +++ b/.next/server/pages/_app.js @@ -0,0 +1,46 @@ +"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/). + */ +(() => { +var exports = {}; +exports.id = "pages/_app"; +exports.ids = ["pages/_app"]; +exports.modules = { + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +module.exports = require("react"); + +/***/ }), + +/***/ "react/jsx-runtime": +/*!************************************!*\ + !*** external "react/jsx-runtime" ***! + \************************************/ +/***/ ((module) => { + +module.exports = require("react/jsx-runtime"); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("./node_modules/next/dist/pages/_app.js"))); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/pages/_document.js b/.next/server/pages/_document.js new file mode 100644 index 00000000..a0748c06 --- /dev/null +++ b/.next/server/pages/_document.js @@ -0,0 +1,66 @@ +"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/). + */ +(() => { +var exports = {}; +exports.id = "pages/_document"; +exports.ids = ["pages/_document"]; +exports.modules = { + +/***/ "next/dist/compiled/next-server/pages.runtime.dev.js": +/*!**********************************************************************!*\ + !*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***! + \**********************************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/compiled/next-server/pages.runtime.dev.js"); + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +module.exports = require("react"); + +/***/ }), + +/***/ "react/jsx-runtime": +/*!************************************!*\ + !*** external "react/jsx-runtime" ***! + \************************************/ +/***/ ((module) => { + +module.exports = require("react/jsx-runtime"); + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +module.exports = require("path"); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("./node_modules/next/dist/pages/_document.js"))); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/pages/_error.js b/.next/server/pages/_error.js new file mode 100644 index 00000000..3f701f2f --- /dev/null +++ b/.next/server/pages/_error.js @@ -0,0 +1,76 @@ +"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/). + */ +(() => { +var exports = {}; +exports.id = "pages/_error"; +exports.ids = ["pages/_error"]; +exports.modules = { + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D! ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ config: () => (/* binding */ config),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ getServerSideProps: () => (/* binding */ getServerSideProps),\n/* harmony export */ getStaticPaths: () => (/* binding */ getStaticPaths),\n/* harmony export */ getStaticProps: () => (/* binding */ getStaticProps),\n/* harmony export */ reportWebVitals: () => (/* binding */ reportWebVitals),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ unstable_getServerProps: () => (/* binding */ unstable_getServerProps),\n/* harmony export */ unstable_getServerSideProps: () => (/* binding */ unstable_getServerSideProps),\n/* harmony export */ unstable_getStaticParams: () => (/* binding */ unstable_getStaticParams),\n/* harmony export */ unstable_getStaticPaths: () => (/* binding */ unstable_getStaticPaths),\n/* harmony export */ unstable_getStaticProps: () => (/* binding */ unstable_getStaticProps)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/pages/module.compiled */ \"./node_modules/next/dist/server/route-modules/pages/module.compiled.js\");\n/* harmony import */ var next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/build/templates/helpers */ \"./node_modules/next/dist/build/templates/helpers.js\");\n/* harmony import */ var next_dist_pages_document__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/pages/_document */ \"./node_modules/next/dist/pages/_document.js\");\n/* harmony import */ var next_dist_pages_document__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_pages_document__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_dist_pages_app__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/dist/pages/_app */ \"./node_modules/next/dist/pages/_app.js\");\n/* harmony import */ var next_dist_pages_app__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_pages_app__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/dist/pages/_error */ \"./node_modules/next/dist/pages/_error.js\");\n/* harmony import */ var next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n// Import the app and document modules.\n\n\n// Import the userland code.\n\n// Re-export the component (should be the default export).\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__, 'default'));\n// Re-export methods.\nconst getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__, 'getStaticProps');\nconst getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__, 'getStaticPaths');\nconst getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__, 'getServerSideProps');\nconst config = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__, 'config');\nconst reportWebVitals = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__, 'reportWebVitals');\n// Re-export legacy methods.\nconst unstable_getStaticProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__, 'unstable_getStaticProps');\nconst unstable_getStaticPaths = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__, 'unstable_getStaticPaths');\nconst unstable_getStaticParams = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__, 'unstable_getStaticParams');\nconst unstable_getServerProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__, 'unstable_getServerProps');\nconst unstable_getServerSideProps = (0,next_dist_build_templates_helpers__WEBPACK_IMPORTED_MODULE_2__.hoist)(next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__, 'unstable_getServerSideProps');\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_pages_module_compiled__WEBPACK_IMPORTED_MODULE_0__.PagesRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.PAGES,\n page: \"/_error\",\n pathname: \"/_error\",\n // The following aren't used in production.\n bundlePath: '',\n filename: ''\n },\n components: {\n // default export might not exist when optimized for data only\n App: (next_dist_pages_app__WEBPACK_IMPORTED_MODULE_4___default()),\n Document: (next_dist_pages_document__WEBPACK_IMPORTED_MODULE_3___default())\n },\n userland: next_dist_pages_error__WEBPACK_IMPORTED_MODULE_5__\n});\n\n//# sourceMappingURL=pages.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LXJvdXRlLWxvYWRlci9pbmRleC5qcz9raW5kPVBBR0VTJnBhZ2U9JTJGX2Vycm9yJnByZWZlcnJlZFJlZ2lvbj0mYWJzb2x1dGVQYWdlUGF0aD1uZXh0JTJGZGlzdCUyRnBhZ2VzJTJGX2Vycm9yJmFic29sdXRlQXBwUGF0aD1uZXh0JTJGZGlzdCUyRnBhZ2VzJTJGX2FwcCZhYnNvbHV0ZURvY3VtZW50UGF0aD1uZXh0JTJGZGlzdCUyRnBhZ2VzJTJGX2RvY3VtZW50Jm1pZGRsZXdhcmVDb25maWdCYXNlNjQ9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQXdGO0FBQ2hDO0FBQ0U7QUFDMUQ7QUFDc0Q7QUFDVjtBQUM1QztBQUNtRDtBQUNuRDtBQUNBLGlFQUFlLHdFQUFLLENBQUMsa0RBQVEsWUFBWSxFQUFDO0FBQzFDO0FBQ08sdUJBQXVCLHdFQUFLLENBQUMsa0RBQVE7QUFDckMsdUJBQXVCLHdFQUFLLENBQUMsa0RBQVE7QUFDckMsMkJBQTJCLHdFQUFLLENBQUMsa0RBQVE7QUFDekMsZUFBZSx3RUFBSyxDQUFDLGtEQUFRO0FBQzdCLHdCQUF3Qix3RUFBSyxDQUFDLGtEQUFRO0FBQzdDO0FBQ08sZ0NBQWdDLHdFQUFLLENBQUMsa0RBQVE7QUFDOUMsZ0NBQWdDLHdFQUFLLENBQUMsa0RBQVE7QUFDOUMsaUNBQWlDLHdFQUFLLENBQUMsa0RBQVE7QUFDL0MsZ0NBQWdDLHdFQUFLLENBQUMsa0RBQVE7QUFDOUMsb0NBQW9DLHdFQUFLLENBQUMsa0RBQVE7QUFDekQ7QUFDTyx3QkFBd0Isa0dBQWdCO0FBQy9DO0FBQ0EsY0FBYyxrRUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxhQUFhLDREQUFXO0FBQ3hCLGtCQUFrQixpRUFBZ0I7QUFDbEMsS0FBSztBQUNMLFlBQVk7QUFDWixDQUFDOztBQUVEIiwic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFnZXNSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kXCI7XG5pbXBvcnQgeyBob2lzdCB9IGZyb20gXCJuZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnNcIjtcbi8vIEltcG9ydCB0aGUgYXBwIGFuZCBkb2N1bWVudCBtb2R1bGVzLlxuaW1wb3J0ICogYXMgZG9jdW1lbnQgZnJvbSBcIm5leHQvZGlzdC9wYWdlcy9fZG9jdW1lbnRcIjtcbmltcG9ydCAqIGFzIGFwcCBmcm9tIFwibmV4dC9kaXN0L3BhZ2VzL19hcHBcIjtcbi8vIEltcG9ydCB0aGUgdXNlcmxhbmQgY29kZS5cbmltcG9ydCAqIGFzIHVzZXJsYW5kIGZyb20gXCJuZXh0L2Rpc3QvcGFnZXMvX2Vycm9yXCI7XG4vLyBSZS1leHBvcnQgdGhlIGNvbXBvbmVudCAoc2hvdWxkIGJlIHRoZSBkZWZhdWx0IGV4cG9ydCkuXG5leHBvcnQgZGVmYXVsdCBob2lzdCh1c2VybGFuZCwgJ2RlZmF1bHQnKTtcbi8vIFJlLWV4cG9ydCBtZXRob2RzLlxuZXhwb3J0IGNvbnN0IGdldFN0YXRpY1Byb3BzID0gaG9pc3QodXNlcmxhbmQsICdnZXRTdGF0aWNQcm9wcycpO1xuZXhwb3J0IGNvbnN0IGdldFN0YXRpY1BhdGhzID0gaG9pc3QodXNlcmxhbmQsICdnZXRTdGF0aWNQYXRocycpO1xuZXhwb3J0IGNvbnN0IGdldFNlcnZlclNpZGVQcm9wcyA9IGhvaXN0KHVzZXJsYW5kLCAnZ2V0U2VydmVyU2lkZVByb3BzJyk7XG5leHBvcnQgY29uc3QgY29uZmlnID0gaG9pc3QodXNlcmxhbmQsICdjb25maWcnKTtcbmV4cG9ydCBjb25zdCByZXBvcnRXZWJWaXRhbHMgPSBob2lzdCh1c2VybGFuZCwgJ3JlcG9ydFdlYlZpdGFscycpO1xuLy8gUmUtZXhwb3J0IGxlZ2FjeSBtZXRob2RzLlxuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFN0YXRpY1Byb3BzID0gaG9pc3QodXNlcmxhbmQsICd1bnN0YWJsZV9nZXRTdGF0aWNQcm9wcycpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFN0YXRpY1BhdGhzID0gaG9pc3QodXNlcmxhbmQsICd1bnN0YWJsZV9nZXRTdGF0aWNQYXRocycpO1xuZXhwb3J0IGNvbnN0IHVuc3RhYmxlX2dldFN0YXRpY1BhcmFtcyA9IGhvaXN0KHVzZXJsYW5kLCAndW5zdGFibGVfZ2V0U3RhdGljUGFyYW1zJyk7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U2VydmVyUHJvcHMgPSBob2lzdCh1c2VybGFuZCwgJ3Vuc3RhYmxlX2dldFNlcnZlclByb3BzJyk7XG5leHBvcnQgY29uc3QgdW5zdGFibGVfZ2V0U2VydmVyU2lkZVByb3BzID0gaG9pc3QodXNlcmxhbmQsICd1bnN0YWJsZV9nZXRTZXJ2ZXJTaWRlUHJvcHMnKTtcbi8vIENyZWF0ZSBhbmQgZXhwb3J0IHRoZSByb3V0ZSBtb2R1bGUgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuZXhwb3J0IGNvbnN0IHJvdXRlTW9kdWxlID0gbmV3IFBhZ2VzUm91dGVNb2R1bGUoe1xuICAgIGRlZmluaXRpb246IHtcbiAgICAgICAga2luZDogUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICBwYWdlOiBcIi9fZXJyb3JcIixcbiAgICAgICAgcGF0aG5hbWU6IFwiL19lcnJvclwiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6ICcnLFxuICAgICAgICBmaWxlbmFtZTogJydcbiAgICB9LFxuICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgLy8gZGVmYXVsdCBleHBvcnQgbWlnaHQgbm90IGV4aXN0IHdoZW4gb3B0aW1pemVkIGZvciBkYXRhIG9ubHlcbiAgICAgICAgQXBwOiBhcHAuZGVmYXVsdCxcbiAgICAgICAgRG9jdW1lbnQ6IGRvY3VtZW50LmRlZmF1bHRcbiAgICB9LFxuICAgIHVzZXJsYW5kXG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGFnZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!\n"); + +/***/ }), + +/***/ "next/dist/compiled/next-server/pages.runtime.dev.js": +/*!**********************************************************************!*\ + !*** external "next/dist/compiled/next-server/pages.runtime.dev.js" ***! + \**********************************************************************/ +/***/ ((module) => { + +module.exports = require("next/dist/compiled/next-server/pages.runtime.dev.js"); + +/***/ }), + +/***/ "react": +/*!************************!*\ + !*** external "react" ***! + \************************/ +/***/ ((module) => { + +module.exports = require("react"); + +/***/ }), + +/***/ "react/jsx-runtime": +/*!************************************!*\ + !*** external "react/jsx-runtime" ***! + \************************************/ +/***/ ((module) => { + +module.exports = require("react/jsx-runtime"); + +/***/ }), + +/***/ "path": +/*!***********************!*\ + !*** external "path" ***! + \***********************/ +/***/ ((module) => { + +module.exports = require("path"); + +/***/ }) + +}; +; + +// load runtime +var __webpack_require__ = require("../webpack-runtime.js"); +__webpack_require__.C(exports); +var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/next","vendor-chunks/@swc"], () => (__webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-route-loader/index.js?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"))); +module.exports = __webpack_exports__; + +})(); \ No newline at end of file diff --git a/.next/server/vendor-chunks/@swc.js b/.next/server/vendor-chunks/@swc.js index 8e45a6c7..5ad8af09 100644 --- a/.next/server/vendor-chunks/@swc.js +++ b/.next/server/vendor-chunks/@swc.js @@ -11,6 +11,26 @@ exports.id = "vendor-chunks/@swc"; exports.ids = ["vendor-chunks/@swc"]; exports.modules = { +/***/ "./node_modules/@swc/helpers/cjs/_interop_require_default.cjs": +/*!********************************************************************!*\ + !*** ./node_modules/@swc/helpers/cjs/_interop_require_default.cjs ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +eval("\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuY2pzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0EsU0FBUyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvY2pzL19pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdC5janMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTtcbn1cbmV4cG9ydHMuXyA9IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\n"); + +/***/ }), + +/***/ "./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs": +/*!*********************************************************************!*\ + !*** ./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +eval("\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2Nqcy9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmNqcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSx1RkFBdUY7O0FBRXZGOztBQUVBOztBQUVBLG1CQUFtQjtBQUNuQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsU0FBUyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvY2pzL19pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQuY2pzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG5cbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSByZXR1cm4gb2JqO1xuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiB7IGRlZmF1bHQ6IG9iaiB9O1xuXG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcblxuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuXG4gICAgdmFyIG5ld09iaiA9IHsgX19wcm90b19fOiBudWxsIH07XG4gICAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG4gICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7XG4gICAgICAgICAgICBlbHNlIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcblxuICAgIGlmIChjYWNoZSkgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTtcblxuICAgIHJldHVybiBuZXdPYmo7XG59XG5leHBvcnRzLl8gPSBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\n"); + +/***/ }), + /***/ "(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js": /*!*******************************************************************!*\ !*** ./node_modules/@swc/helpers/esm/_interop_require_default.js ***! diff --git a/.next/server/vendor-chunks/framer-motion.js b/.next/server/vendor-chunks/framer-motion.js new file mode 100644 index 00000000..45406725 --- /dev/null +++ b/.next/server/vendor-chunks/framer-motion.js @@ -0,0 +1,633 @@ +"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/framer-motion"; +exports.ids = ["vendor-chunks/framer-motion"]; +exports.modules = { + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.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 */ PopChild: () => (/* binding */ PopChild)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/MotionConfigContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _utils_use_composed_ref_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/use-composed-ref.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs\");\n/* __next_internal_client_entry_do_not_use__ PopChild auto */ \n\n\n\n\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */ class PopChildMeasure extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent && this.props.pop !== false) {\n const parent = element.offsetParent;\n const parentWidth = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(parent) ? parent.offsetWidth || 0 : 0;\n const parentHeight = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(parent) ? parent.offsetHeight || 0 : 0;\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n size.right = parentWidth - size.width - size.left;\n size.bottom = parentHeight - size.height - size.top;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */ componentDidUpdate() {}\n render() {\n return this.props.children;\n }\n}\nfunction PopChild({ children, isPresent, anchorX, anchorY, root, pop }) {\n const id = (0,react__WEBPACK_IMPORTED_MODULE_1__.useId)();\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const size = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n });\n const { nonce } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_3__.MotionConfigContext);\n /**\n * In React 19, refs are passed via props.ref instead of element.ref.\n * We check props.ref first (React 19) and fall back to element.ref (React 18).\n */ const childRef = children.props?.ref ?? children?.ref;\n const composedRef = (0,_utils_use_composed_ref_mjs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(ref, childRef);\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */ (0,react__WEBPACK_IMPORTED_MODULE_1__.useInsertionEffect)({\n \"PopChild.useInsertionEffect\": ()=>{\n const { width, height, top, left, right, bottom } = size.current;\n if (isPresent || pop === false || !ref.current || !width || !height) return;\n const x = anchorX === \"left\" ? `left: ${left}` : `right: ${right}`;\n const y = anchorY === \"bottom\" ? `bottom: ${bottom}` : `top: ${top}`;\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce) style.nonce = nonce;\n const parent = root ?? document.head;\n parent.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule(`\n [data-motion-pop-id=\"${id}\"] {\n position: absolute !important;\n width: ${width}px !important;\n height: ${height}px !important;\n ${x}px !important;\n ${y}px !important;\n }\n `);\n }\n return ({\n \"PopChild.useInsertionEffect\": ()=>{\n if (parent.contains(style)) {\n parent.removeChild(style);\n }\n }\n })[\"PopChild.useInsertionEffect\"];\n }\n }[\"PopChild.useInsertionEffect\"], [\n isPresent\n ]);\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PopChildMeasure, {\n isPresent: isPresent,\n childRef: ref,\n sizeRef: size,\n pop: pop,\n children: pop === false ? children : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(children, {\n ref: composedRef\n })\n });\n}\n //# sourceMappingURL=PopChild.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbXBvbmVudHMvQW5pbWF0ZVByZXNlbmNlL1BvcENoaWxkLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFnQ0E7OztDQUdHLEdBQ0g7SUFDSTs7O1lBR1E7WUFDQSx3RkFDSTtZQUVKLHlGQUNJOzs7O1lBTUo7WUFDQTtZQUNBO1lBQ0E7O1FBR0o7O0lBR0o7O0tBRUcsR0FDSDs7UUFHSTs7QUFFUDtBQUVlO0lBQ1o7SUFDQTs7UUFFSTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7SUFDSDs7SUFFRDs7O0tBR0csR0FDSDs7SUFLQTs7Ozs7Ozs7S0FRRzs7WUFFQztZQUNBO1lBRUE7WUFDQTs7O1lBS0EsV0FBVztZQUVYO1lBQ0E7WUFFQTtnQkFDSTs7Ozs7Ozs7UUFRSDs7WUFHRDsrQ0FBQTtvQkFDSTt3QkFDSTs7Z0JBRVI7O1FBQ0o7c0NBQUE7UUFBQTtLQUFBOzs7Ozs7a0NBS1kseUJBQ0E7WUFBQTtRQUFBO0lBQUE7QUFHaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9jb21wb25lbnRzL0FuaW1hdGVQcmVzZW5jZS9Qb3BDaGlsZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VJZCwgdXNlSW5zZXJ0aW9uRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBNb3Rpb25Db25maWdDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvTW90aW9uQ29uZmlnQ29udGV4dFwiXG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tIFwiLi4vLi4vdXRpbHMvdXNlLWNvbXBvc2VkLXJlZlwiXG5cbmludGVyZmFjZSBTaXplIHtcbiAgICB3aWR0aDogbnVtYmVyXG4gICAgaGVpZ2h0OiBudW1iZXJcbiAgICB0b3A6IG51bWJlclxuICAgIGxlZnQ6IG51bWJlclxuICAgIHJpZ2h0OiBudW1iZXJcbiAgICBib3R0b206IG51bWJlclxufVxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnRcbiAgICBpc1ByZXNlbnQ6IGJvb2xlYW5cbiAgICBhbmNob3JYPzogXCJsZWZ0XCIgfCBcInJpZ2h0XCJcbiAgICBhbmNob3JZPzogXCJ0b3BcIiB8IFwiYm90dG9tXCJcbiAgICByb290PzogSFRNTEVsZW1lbnQgfCBTaGFkb3dSb290XG4gICAgcG9wPzogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgTWVhc3VyZVByb3BzIGV4dGVuZHMgUHJvcHMge1xuICAgIGNoaWxkUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPlxuICAgIHNpemVSZWY6IFJlYWN0LlJlZk9iamVjdDxTaXplPlxufVxuXG4vKipcbiAqIE1lYXN1cmVtZW50IGZ1bmN0aW9uYWxpdHkgaGFzIHRvIGJlIHdpdGhpbiBhIHNlcGFyYXRlIGNvbXBvbmVudFxuICogdG8gbGV2ZXJhZ2Ugc25hcHNob3QgbGlmZWN5Y2xlLlxuICovXG5jbGFzcyBQb3BDaGlsZE1lYXN1cmUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8TWVhc3VyZVByb3BzPiB7XG4gICAgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzOiBNZWFzdXJlUHJvcHMpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMucHJvcHMuY2hpbGRSZWYuY3VycmVudFxuICAgICAgICBpZiAoZWxlbWVudCAmJiBwcmV2UHJvcHMuaXNQcmVzZW50ICYmICF0aGlzLnByb3BzLmlzUHJlc2VudCAmJiB0aGlzLnByb3BzLnBvcCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRXaWR0aCA9IGlzSFRNTEVsZW1lbnQocGFyZW50KVxuICAgICAgICAgICAgICAgID8gcGFyZW50Lm9mZnNldFdpZHRoIHx8IDBcbiAgICAgICAgICAgICAgICA6IDBcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudEhlaWdodCA9IGlzSFRNTEVsZW1lbnQocGFyZW50KVxuICAgICAgICAgICAgICAgID8gcGFyZW50Lm9mZnNldEhlaWdodCB8fCAwXG4gICAgICAgICAgICAgICAgOiAwXG5cbiAgICAgICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemVSZWYuY3VycmVudCFcbiAgICAgICAgICAgIHNpemUuaGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQgfHwgMFxuICAgICAgICAgICAgc2l6ZS53aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMFxuICAgICAgICAgICAgc2l6ZS50b3AgPSBlbGVtZW50Lm9mZnNldFRvcFxuICAgICAgICAgICAgc2l6ZS5sZWZ0ID0gZWxlbWVudC5vZmZzZXRMZWZ0XG4gICAgICAgICAgICBzaXplLnJpZ2h0ID0gcGFyZW50V2lkdGggLSBzaXplLndpZHRoIC0gc2l6ZS5sZWZ0XG4gICAgICAgICAgICBzaXplLmJvdHRvbSA9IHBhcmVudEhlaWdodCAtIHNpemUuaGVpZ2h0IC0gc2l6ZS50b3BcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVxdWlyZWQgd2l0aCBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSB0byBzdG9wIFJlYWN0IGNvbXBsYWluaW5nLlxuICAgICAqL1xuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHt9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gUG9wQ2hpbGQoeyBjaGlsZHJlbiwgaXNQcmVzZW50LCBhbmNob3JYLCBhbmNob3JZLCByb290LCBwb3AgfTogUHJvcHMpIHtcbiAgICBjb25zdCBpZCA9IHVzZUlkKClcbiAgICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQ+KG51bGwpXG4gICAgY29uc3Qgc2l6ZSA9IHVzZVJlZjxTaXplPih7XG4gICAgICAgIHdpZHRoOiAwLFxuICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgIGJvdHRvbTogMCxcbiAgICB9KVxuICAgIGNvbnN0IHsgbm9uY2UgfSA9IHVzZUNvbnRleHQoTW90aW9uQ29uZmlnQ29udGV4dClcbiAgICAvKipcbiAgICAgKiBJbiBSZWFjdCAxOSwgcmVmcyBhcmUgcGFzc2VkIHZpYSBwcm9wcy5yZWYgaW5zdGVhZCBvZiBlbGVtZW50LnJlZi5cbiAgICAgKiBXZSBjaGVjayBwcm9wcy5yZWYgZmlyc3QgKFJlYWN0IDE5KSBhbmQgZmFsbCBiYWNrIHRvIGVsZW1lbnQucmVmIChSZWFjdCAxOCkuXG4gICAgICovXG4gICAgY29uc3QgY2hpbGRSZWYgPVxuICAgICAgICAoY2hpbGRyZW4ucHJvcHMgYXMgeyByZWY/OiBSZWFjdC5SZWY8SFRNTEVsZW1lbnQ+IH0pPy5yZWYgPz9cbiAgICAgICAgKGNoaWxkcmVuIGFzIHVua25vd24gYXMgeyByZWY/OiBSZWFjdC5SZWY8SFRNTEVsZW1lbnQ+IH0pPy5yZWZcbiAgICBjb25zdCBjb21wb3NlZFJlZiA9IHVzZUNvbXBvc2VkUmVmcyhyZWYsIGNoaWxkUmVmKVxuXG4gICAgLyoqXG4gICAgICogV2UgY3JlYXRlIGFuZCBpbmplY3QgYSBzdHlsZSBibG9jayBzbyB3ZSBjYW4gYXBwbHkgdGhpcyBleHBsaWNpdFxuICAgICAqIHNpemluZyBpbiBhIG5vbi1kZXN0cnVjdGl2ZSBtYW5uZXIgYnkganVzdCBkZWxldGluZyB0aGUgc3R5bGUgYmxvY2suXG4gICAgICpcbiAgICAgKiBXZSBjYW4ndCBhcHBseSBzaXplIHZpYSByZW5kZXIgYXMgdGhlIG1lYXN1cmVtZW50IGhhcHBlbnNcbiAgICAgKiBpbiBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSAocG9zdC1yZW5kZXIpLCBsaWtld2lzZSBpZiB3ZSBhcHBseSB0aGVcbiAgICAgKiBzdHlsZXMgZGlyZWN0bHkgb24gdGhlIERPTSBub2RlLCB3ZSBtaWdodCBiZSBvdmVyd3JpdGluZ1xuICAgICAqIHN0eWxlcyBzZXQgdmlhIHRoZSBzdHlsZSBwcm9wLlxuICAgICAqL1xuICAgIHVzZUluc2VydGlvbkVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgdG9wLCBsZWZ0LCByaWdodCwgYm90dG9tIH0gPSBzaXplLmN1cnJlbnRcbiAgICAgICAgaWYgKGlzUHJlc2VudCB8fCBwb3AgPT09IGZhbHNlIHx8ICFyZWYuY3VycmVudCB8fCAhd2lkdGggfHwgIWhlaWdodCkgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgeCA9IGFuY2hvclggPT09IFwibGVmdFwiID8gYGxlZnQ6ICR7bGVmdH1gIDogYHJpZ2h0OiAke3JpZ2h0fWBcbiAgICAgICAgY29uc3QgeSA9IGFuY2hvclkgPT09IFwiYm90dG9tXCIgPyBgYm90dG9tOiAke2JvdHRvbX1gIDogYHRvcDogJHt0b3B9YFxuXG4gICAgICAgIHJlZi5jdXJyZW50LmRhdGFzZXQubW90aW9uUG9wSWQgPSBpZFxuXG4gICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpXG4gICAgICAgIGlmIChub25jZSkgc3R5bGUubm9uY2UgPSBub25jZVxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHJvb3QgPz8gZG9jdW1lbnQuaGVhZFxuICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoc3R5bGUpXG5cbiAgICAgICAgaWYgKHN0eWxlLnNoZWV0KSB7XG4gICAgICAgICAgICBzdHlsZS5zaGVldC5pbnNlcnRSdWxlKGBcbiAgICAgICAgICBbZGF0YS1tb3Rpb24tcG9wLWlkPVwiJHtpZH1cIl0ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogJHt3aWR0aH1weCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAke2hlaWdodH1weCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgJHt4fXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAke3l9cHggIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIGApXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHBhcmVudC5jb250YWlucyhzdHlsZSkpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQoc3R5bGUpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbaXNQcmVzZW50XSlcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxQb3BDaGlsZE1lYXN1cmUgaXNQcmVzZW50PXtpc1ByZXNlbnR9IGNoaWxkUmVmPXtyZWZ9IHNpemVSZWY9e3NpemV9IHBvcD17cG9wfT5cbiAgICAgICAgICAgIHtwb3AgPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgPyBjaGlsZHJlblxuICAgICAgICAgICAgICAgIDogUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuIGFzIGFueSwgeyByZWY6IGNvbXBvc2VkUmVmIH0pfVxuICAgICAgICA8L1BvcENoaWxkTWVhc3VyZT5cbiAgICApXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs": +/*!*****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.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 */ PresenceChild: () => (/* binding */ PresenceChild)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* harmony import */ var _PopChild_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PopChild.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs\");\n/* __next_internal_client_entry_do_not_use__ PresenceChild auto */ \n\n\n\n\n\nconst PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, anchorY, root })=>{\n const presenceChildren = (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__.useConstant)(newChildrenMap);\n const id = (0,react__WEBPACK_IMPORTED_MODULE_1__.useId)();\n let isReusedContext = true;\n let context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"PresenceChild.useMemo[context]\": ()=>{\n isReusedContext = false;\n return {\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: ({\n \"PresenceChild.useMemo[context]\": (childId)=>{\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()){\n if (!isComplete) return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n }\n })[\"PresenceChild.useMemo[context]\"],\n register: ({\n \"PresenceChild.useMemo[context]\": (childId)=>{\n presenceChildren.set(childId, false);\n return ({\n \"PresenceChild.useMemo[context]\": ()=>presenceChildren.delete(childId)\n })[\"PresenceChild.useMemo[context]\"];\n }\n })[\"PresenceChild.useMemo[context]\"]\n };\n }\n }[\"PresenceChild.useMemo[context]\"], [\n isPresent,\n presenceChildren,\n onExitComplete\n ]);\n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */ if (presenceAffectsLayout && isReusedContext) {\n context = {\n ...context\n };\n }\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"PresenceChild.useMemo\": ()=>{\n presenceChildren.forEach({\n \"PresenceChild.useMemo\": (_, key)=>presenceChildren.set(key, false)\n }[\"PresenceChild.useMemo\"]);\n }\n }[\"PresenceChild.useMemo\"], [\n isPresent\n ]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */ react__WEBPACK_IMPORTED_MODULE_1__.useEffect({\n \"PresenceChild.useEffect\": ()=>{\n !isPresent && !presenceChildren.size && onExitComplete && onExitComplete();\n }\n }[\"PresenceChild.useEffect\"], [\n isPresent\n ]);\n children = (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PopChild_mjs__WEBPACK_IMPORTED_MODULE_3__.PopChild, {\n pop: mode === \"popLayout\",\n isPresent: isPresent,\n anchorX: anchorX,\n anchorY: anchorY,\n root: root,\n children: children\n });\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_4__.PresenceContext.Provider, {\n value: context,\n children: children\n });\n};\nfunction newChildrenMap() {\n return new Map();\n}\n //# sourceMappingURL=PresenceChild.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbXBvbmVudHMvQW5pbWF0ZVByZXNlbmNlL1ByZXNlbmNlQ2hpbGQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQXlCYTtJQVlUO0lBQ0E7O0lBR0E7MENBQUE7Ozs7Ozs7Z0JBT1E7c0RBQUE7d0JBQ0k7OzRCQUdJLGlCQUFpQjs7Ozs7Z0JBS3pCO3NEQUFBO3dCQUNJOzs7Ozs7Ozs7Ozs7O0lBTVo7Ozs7S0FJRyxHQUNIO1FBQ0k7WUFBQTtRQUFBOzs7O1lBSUE7eUNBQUE7O1FBQ0o7Z0NBQUE7UUFBQTtLQUFBO0lBRUE7OztLQUdHLEdBQ0g7bUNBQUE7WUFDSSwwREFHSTtRQUNSO2tDQUFBO1FBQUE7S0FBQTtJQUVBO1FBQUE7UUFBQTtRQUFBO1FBQUE7UUFBQTtRQUFBO0lBQUE7SUFNQTtRQUFBO1FBQUE7SUFBQTtBQUtKO0FBRUE7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9jb21wb25lbnRzL0FuaW1hdGVQcmVzZW5jZS9QcmVzZW5jZUNoaWxkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgdXNlSWQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHtcbiAgICBQcmVzZW5jZUNvbnRleHQsXG4gICAgdHlwZSBQcmVzZW5jZUNvbnRleHRQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvbnRleHQvUHJlc2VuY2VDb250ZXh0XCJcbmltcG9ydCB7IFZhcmlhbnRMYWJlbHMgfSBmcm9tIFwiLi4vLi4vbW90aW9uL3R5cGVzXCJcbmltcG9ydCB7IHVzZUNvbnN0YW50IH0gZnJvbSBcIi4uLy4uL3V0aWxzL3VzZS1jb25zdGFudFwiXG5pbXBvcnQgeyBQb3BDaGlsZCB9IGZyb20gXCIuL1BvcENoaWxkXCJcblxuaW50ZXJmYWNlIFByZXNlbmNlQ2hpbGRQcm9wcyB7XG4gICAgY2hpbGRyZW46IFJlYWN0LlJlYWN0RWxlbWVudFxuICAgIGlzUHJlc2VudDogYm9vbGVhblxuICAgIG9uRXhpdENvbXBsZXRlPzogKCkgPT4gdm9pZFxuICAgIGluaXRpYWw/OiBmYWxzZSB8IFZhcmlhbnRMYWJlbHNcbiAgICBjdXN0b20/OiBhbnlcbiAgICBwcmVzZW5jZUFmZmVjdHNMYXlvdXQ6IGJvb2xlYW5cbiAgICBtb2RlOiBcInN5bmNcIiB8IFwicG9wTGF5b3V0XCIgfCBcIndhaXRcIlxuICAgIGFuY2hvclg/OiBcImxlZnRcIiB8IFwicmlnaHRcIlxuICAgIGFuY2hvclk/OiBcInRvcFwiIHwgXCJib3R0b21cIlxuICAgIHJvb3Q/OiBIVE1MRWxlbWVudCB8IFNoYWRvd1Jvb3Rcbn1cblxuZXhwb3J0IGNvbnN0IFByZXNlbmNlQ2hpbGQgPSAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGluaXRpYWwsXG4gICAgaXNQcmVzZW50LFxuICAgIG9uRXhpdENvbXBsZXRlLFxuICAgIGN1c3RvbSxcbiAgICBwcmVzZW5jZUFmZmVjdHNMYXlvdXQsXG4gICAgbW9kZSxcbiAgICBhbmNob3JYLFxuICAgIGFuY2hvclksXG4gICAgcm9vdFxufTogUHJlc2VuY2VDaGlsZFByb3BzKSA9PiB7XG4gICAgY29uc3QgcHJlc2VuY2VDaGlsZHJlbiA9IHVzZUNvbnN0YW50KG5ld0NoaWxkcmVuTWFwKVxuICAgIGNvbnN0IGlkID0gdXNlSWQoKVxuXG4gICAgbGV0IGlzUmV1c2VkQ29udGV4dCA9IHRydWVcbiAgICBsZXQgY29udGV4dCA9IHVzZU1lbW8oKCk6IFByZXNlbmNlQ29udGV4dFByb3BzID0+IHtcbiAgICAgICAgaXNSZXVzZWRDb250ZXh0ID0gZmFsc2VcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgaW5pdGlhbCxcbiAgICAgICAgICAgIGlzUHJlc2VudCxcbiAgICAgICAgICAgIGN1c3RvbSxcbiAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlOiAoY2hpbGRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgcHJlc2VuY2VDaGlsZHJlbi5zZXQoY2hpbGRJZCwgdHJ1ZSlcblxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaXNDb21wbGV0ZSBvZiBwcmVzZW5jZUNoaWxkcmVuLnZhbHVlcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNDb21wbGV0ZSkgcmV0dXJuIC8vIGNhbiBzdG9wIHNlYXJjaGluZyB3aGVuIGFueSBpcyBpbmNvbXBsZXRlXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgb25FeGl0Q29tcGxldGUgJiYgb25FeGl0Q29tcGxldGUoKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZ2lzdGVyOiAoY2hpbGRJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgcHJlc2VuY2VDaGlsZHJlbi5zZXQoY2hpbGRJZCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHByZXNlbmNlQ2hpbGRyZW4uZGVsZXRlKGNoaWxkSWQpXG4gICAgICAgICAgICB9LFxuICAgICAgICB9XG4gICAgfSwgW2lzUHJlc2VudCwgcHJlc2VuY2VDaGlsZHJlbiwgb25FeGl0Q29tcGxldGVdKVxuXG4gICAgLyoqXG4gICAgICogSWYgdGhlIHByZXNlbmNlIG9mIGEgY2hpbGQgYWZmZWN0cyB0aGUgbGF5b3V0IG9mIHRoZSBjb21wb25lbnRzIGFyb3VuZCBpdCxcbiAgICAgKiB3ZSB3YW50IHRvIG1ha2UgYSBuZXcgY29udGV4dCB2YWx1ZSB0byBlbnN1cmUgdGhleSBnZXQgcmUtcmVuZGVyZWRcbiAgICAgKiBzbyB0aGV5IGNhbiBkZXRlY3QgdGhhdCBsYXlvdXQgY2hhbmdlLlxuICAgICAqL1xuICAgIGlmIChwcmVzZW5jZUFmZmVjdHNMYXlvdXQgJiYgaXNSZXVzZWRDb250ZXh0KSB7XG4gICAgICAgIGNvbnRleHQgPSB7IC4uLmNvbnRleHQgfVxuICAgIH1cblxuICAgIHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBwcmVzZW5jZUNoaWxkcmVuLmZvckVhY2goKF8sIGtleSkgPT4gcHJlc2VuY2VDaGlsZHJlbi5zZXQoa2V5LCBmYWxzZSkpXG4gICAgfSwgW2lzUHJlc2VudF0pXG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGVyZSdzIG5vIGBtb3Rpb25gIGNvbXBvbmVudHMgdG8gZmlyZSBleGl0IGFuaW1hdGlvbnMsIHdlIHdhbnQgdG8gcmVtb3ZlIHRoaXNcbiAgICAgKiBjb21wb25lbnQgaW1tZWRpYXRlbHkuXG4gICAgICovXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgIWlzUHJlc2VudCAmJlxuICAgICAgICAgICAgIXByZXNlbmNlQ2hpbGRyZW4uc2l6ZSAmJlxuICAgICAgICAgICAgb25FeGl0Q29tcGxldGUgJiZcbiAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlKClcbiAgICB9LCBbaXNQcmVzZW50XSlcblxuICAgIGNoaWxkcmVuID0gKFxuICAgICAgICA8UG9wQ2hpbGQgcG9wPXttb2RlID09PSBcInBvcExheW91dFwifSBpc1ByZXNlbnQ9e2lzUHJlc2VudH0gYW5jaG9yWD17YW5jaG9yWH0gYW5jaG9yWT17YW5jaG9yWX0gcm9vdD17cm9vdH0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvUG9wQ2hpbGQ+XG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFByZXNlbmNlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dH0+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvUHJlc2VuY2VDb250ZXh0LlByb3ZpZGVyPlxuICAgIClcbn1cblxuZnVuY3Rpb24gbmV3Q2hpbGRyZW5NYXAoKTogTWFwPHN0cmluZywgYm9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgTWFwKClcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/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 */ AnimatePresence: () => (/* binding */ AnimatePresence)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context/LayoutGroupContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* harmony import */ var _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/use-isomorphic-effect.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\");\n/* harmony import */ var _PresenceChild_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PresenceChild.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs\");\n/* harmony import */ var _use_presence_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-presence.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs\");\n/* __next_internal_client_entry_do_not_use__ AnimatePresence auto */ \n\n\n\n\n\n\n\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */ const AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = \"sync\", propagate = false, anchorX = \"left\", anchorY = \"top\", root })=>{\n const [isParentPresent, safeToRemove] = (0,_use_presence_mjs__WEBPACK_IMPORTED_MODULE_2__.usePresence)(propagate);\n /**\n * Filter any children that aren't ReactElements. We can only track components\n * between renders with a props.key.\n */ const presentChildren = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"AnimatePresence.useMemo[presentChildren]\": ()=>(0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.onlyElements)(children)\n }[\"AnimatePresence.useMemo[presentChildren]\"], [\n children\n ]);\n /**\n * Track the keys of the currently rendered children. This is used to\n * determine which children are exiting.\n */ const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey);\n /**\n * If `initial={false}` we only want to pass this to components in the first render.\n */ const isInitialRender = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(true);\n /**\n * A ref containing the currently present children. When all exit animations\n * are complete, we use this to re-render the component with the latest children\n * *committed* rather than the latest children *rendered*.\n */ const pendingPresentChildren = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(presentChildren);\n /**\n * Track which exiting children have finished animating out.\n */ const exitComplete = (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_4__.useConstant)({\n \"AnimatePresence.useConstant[exitComplete]\": ()=>new Map()\n }[\"AnimatePresence.useConstant[exitComplete]\"]);\n /**\n * Track which components are currently processing exit to prevent duplicate processing.\n */ const exitingComponents = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(new Set());\n /**\n * Save children to render as React state. To ensure this component is concurrent-safe,\n * we check for exiting children via an effect.\n */ const [diffedChildren, setDiffedChildren] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(presentChildren);\n const [renderedChildren, setRenderedChildren] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(presentChildren);\n (0,_utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_5__.useIsomorphicLayoutEffect)({\n \"AnimatePresence.useIsomorphicLayoutEffect\": ()=>{\n isInitialRender.current = false;\n pendingPresentChildren.current = presentChildren;\n /**\n * Update complete status of exiting children.\n */ for(let i = 0; i < renderedChildren.length; i++){\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(renderedChildren[i]);\n if (!presentKeys.includes(key)) {\n if (exitComplete.get(key) !== true) {\n exitComplete.set(key, false);\n }\n } else {\n exitComplete.delete(key);\n exitingComponents.current.delete(key);\n }\n }\n }\n }[\"AnimatePresence.useIsomorphicLayoutEffect\"], [\n renderedChildren,\n presentKeys.length,\n presentKeys.join(\"-\")\n ]);\n const exitingChildren = [];\n if (presentChildren !== diffedChildren) {\n let nextChildren = [\n ...presentChildren\n ];\n /**\n * Loop through all the currently rendered components and decide which\n * are exiting.\n */ for(let i = 0; i < renderedChildren.length; i++){\n const child = renderedChildren[i];\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(child);\n if (!presentKeys.includes(key)) {\n nextChildren.splice(i, 0, child);\n exitingChildren.push(child);\n }\n }\n /**\n * If we're in \"wait\" mode, and we have exiting children, we want to\n * only render these until they've all exited.\n */ if (mode === \"wait\" && exitingChildren.length) {\n nextChildren = exitingChildren;\n }\n setRenderedChildren((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.onlyElements)(nextChildren));\n setDiffedChildren(presentChildren);\n /**\n * Early return to ensure once we've set state with the latest diffed\n * children, we can immediately re-render.\n */ return null;\n }\n if ( true && mode === \"wait\" && renderedChildren.length > 1) {\n console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.`);\n }\n /**\n * If we've been provided a forceRender function by the LayoutGroupContext,\n * we can use it to force a re-render amongst all surrounding components once\n * all components have finished animating out.\n */ const { forceRender } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__.LayoutGroupContext);\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: renderedChildren.map((child)=>{\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(child);\n const isPresent = propagate && !isParentPresent ? false : presentChildren === renderedChildren || presentKeys.includes(key);\n const onExit = ()=>{\n if (exitingComponents.current.has(key)) {\n return;\n }\n exitingComponents.current.add(key);\n if (exitComplete.has(key)) {\n exitComplete.set(key, true);\n } else {\n return;\n }\n let isEveryExitComplete = true;\n exitComplete.forEach((isExitComplete)=>{\n if (!isExitComplete) isEveryExitComplete = false;\n });\n if (isEveryExitComplete) {\n forceRender?.();\n setRenderedChildren(pendingPresentChildren.current);\n propagate && safeToRemove?.();\n onExitComplete && onExitComplete();\n }\n };\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PresenceChild_mjs__WEBPACK_IMPORTED_MODULE_7__.PresenceChild, {\n isPresent: isPresent,\n initial: !isInitialRender.current || initial ? undefined : false,\n custom: custom,\n presenceAffectsLayout: presenceAffectsLayout,\n mode: mode,\n root: root,\n onExitComplete: isPresent ? undefined : onExit,\n anchorX: anchorX,\n anchorY: anchorY,\n children: child\n }, key);\n })\n });\n};\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbXBvbmVudHMvQW5pbWF0ZVByZXNlbmNlL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVlBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWdDRyxHQUNVOztJQWNUOzs7S0FHRyxHQUNIO29EQUFBO21EQUFBO1FBQUE7S0FBQTtJQUVBOzs7S0FHRyxHQUNIO0lBR0E7O0tBRUcsR0FDSDtJQUVBOzs7O0tBSUcsR0FDSDtJQUVBOztLQUVHOzs7SUFHSDs7S0FFRztJQUdIOzs7S0FHRzs7OztZQUtDO1lBQ0E7WUFFQTs7U0FFRyxHQUNIOzs7O3dCQUtZOzs7b0JBR0o7b0JBQ0E7OztRQUdaO29EQUFBO1FBQUE7UUFBQTtRQUFBO0tBQUE7O0lBSUE7UUFDSTtlQUFBO1NBQUE7UUFFQTs7O1NBR0csR0FDSDtZQUNJO1lBQ0E7OztnQkFJSTs7O1FBSVI7OztTQUdHOzs7UUFLSDs7UUFHQTs7O1NBR0csR0FDSDs7SUFHSixhQUVJLG1CQUNBO1FBRUE7O0lBS0o7Ozs7S0FJRzs7O1lBTVM7WUFFQSxrREFFUSxnREFFRTs7Ozs7Z0JBTU47Z0JBRUE7b0JBQ0k7Ozs7O2dCQU1KO29CQUNJO2dCQUNKOzs7b0JBSUk7b0JBRUE7OztZQUlSO1lBRUE7Z0JBQUE7Z0JBQUEsK0NBTWdCOzs7Ozs7Ozs7Ozs7QUFpQmhDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IExheW91dEdyb3VwQ29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0L0xheW91dEdyb3VwQ29udGV4dFwiXG5pbXBvcnQgeyB1c2VDb25zdGFudCB9IGZyb20gXCIuLi8uLi91dGlscy91c2UtY29uc3RhbnRcIlxuaW1wb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9IGZyb20gXCIuLi8uLi91dGlscy91c2UtaXNvbW9ycGhpYy1lZmZlY3RcIlxuaW1wb3J0IHsgUHJlc2VuY2VDaGlsZCB9IGZyb20gXCIuL1ByZXNlbmNlQ2hpbGRcIlxuaW1wb3J0IHsgQW5pbWF0ZVByZXNlbmNlUHJvcHMgfSBmcm9tIFwiLi90eXBlc1wiXG5pbXBvcnQgeyB1c2VQcmVzZW5jZSB9IGZyb20gXCIuL3VzZS1wcmVzZW5jZVwiXG5pbXBvcnQgeyBDb21wb25lbnRLZXksIGdldENoaWxkS2V5LCBvbmx5RWxlbWVudHMgfSBmcm9tIFwiLi91dGlsc1wiXG5cbi8qKlxuICogYEFuaW1hdGVQcmVzZW5jZWAgZW5hYmxlcyB0aGUgYW5pbWF0aW9uIG9mIGNvbXBvbmVudHMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSB0cmVlLlxuICpcbiAqIFdoZW4gYWRkaW5nL3JlbW92aW5nIG1vcmUgdGhhbiBhIHNpbmdsZSBjaGlsZCwgZXZlcnkgY2hpbGQgKiptdXN0KiogYmUgZ2l2ZW4gYSB1bmlxdWUgYGtleWAgcHJvcC5cbiAqXG4gKiBBbnkgYG1vdGlvbmAgY29tcG9uZW50cyB0aGF0IGhhdmUgYW4gYGV4aXRgIHByb3BlcnR5IGRlZmluZWQgd2lsbCBhbmltYXRlIG91dCB3aGVuIHJlbW92ZWQgZnJvbVxuICogdGhlIHRyZWUuXG4gKlxuICogYGBganN4XG4gKiBpbXBvcnQgeyBtb3Rpb24sIEFuaW1hdGVQcmVzZW5jZSB9IGZyb20gJ2ZyYW1lci1tb3Rpb24nXG4gKlxuICogZXhwb3J0IGNvbnN0IEl0ZW1zID0gKHsgaXRlbXMgfSkgPT4gKFxuICogICA8QW5pbWF0ZVByZXNlbmNlPlxuICogICAgIHtpdGVtcy5tYXAoaXRlbSA9PiAoXG4gKiAgICAgICA8bW90aW9uLmRpdlxuICogICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gKiAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCB9fVxuICogICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAqICAgICAgICAgZXhpdD17eyBvcGFjaXR5OiAwIH19XG4gKiAgICAgICAvPlxuICogICAgICkpfVxuICogICA8L0FuaW1hdGVQcmVzZW5jZT5cbiAqIClcbiAqIGBgYFxuICpcbiAqIFlvdSBjYW4gc2VxdWVuY2UgZXhpdCBhbmltYXRpb25zIHRocm91Z2hvdXQgYSB0cmVlIHVzaW5nIHZhcmlhbnRzLlxuICpcbiAqIElmIGEgY2hpbGQgY29udGFpbnMgbXVsdGlwbGUgYG1vdGlvbmAgY29tcG9uZW50cyB3aXRoIGBleGl0YCBwcm9wcywgaXQgd2lsbCBvbmx5IHVubW91bnQgdGhlIGNoaWxkXG4gKiBvbmNlIGFsbCBgbW90aW9uYCBjb21wb25lbnRzIGhhdmUgZmluaXNoZWQgYW5pbWF0aW5nIG91dC4gTGlrZXdpc2UsIGFueSBjb21wb25lbnRzIHVzaW5nXG4gKiBgdXNlUHJlc2VuY2VgIGFsbCBuZWVkIHRvIGNhbGwgYHNhZmVUb1JlbW92ZWAuXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgQW5pbWF0ZVByZXNlbmNlID0gKHtcbiAgICBjaGlsZHJlbixcbiAgICBjdXN0b20sXG4gICAgaW5pdGlhbCA9IHRydWUsXG4gICAgb25FeGl0Q29tcGxldGUsXG4gICAgcHJlc2VuY2VBZmZlY3RzTGF5b3V0ID0gdHJ1ZSxcbiAgICBtb2RlID0gXCJzeW5jXCIsXG4gICAgcHJvcGFnYXRlID0gZmFsc2UsXG4gICAgYW5jaG9yWCA9IFwibGVmdFwiLFxuICAgIGFuY2hvclkgPSBcInRvcFwiLFxuICAgIHJvb3Rcbn06IFJlYWN0LlByb3BzV2l0aENoaWxkcmVuPEFuaW1hdGVQcmVzZW5jZVByb3BzPikgPT4ge1xuICAgIGNvbnN0IFtpc1BhcmVudFByZXNlbnQsIHNhZmVUb1JlbW92ZV0gPSB1c2VQcmVzZW5jZShwcm9wYWdhdGUpXG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgYW55IGNoaWxkcmVuIHRoYXQgYXJlbid0IFJlYWN0RWxlbWVudHMuIFdlIGNhbiBvbmx5IHRyYWNrIGNvbXBvbmVudHNcbiAgICAgKiBiZXR3ZWVuIHJlbmRlcnMgd2l0aCBhIHByb3BzLmtleS5cbiAgICAgKi9cbiAgICBjb25zdCBwcmVzZW50Q2hpbGRyZW4gPSB1c2VNZW1vKCgpID0+IG9ubHlFbGVtZW50cyhjaGlsZHJlbiksIFtjaGlsZHJlbl0pXG5cbiAgICAvKipcbiAgICAgKiBUcmFjayB0aGUga2V5cyBvZiB0aGUgY3VycmVudGx5IHJlbmRlcmVkIGNoaWxkcmVuLiBUaGlzIGlzIHVzZWQgdG9cbiAgICAgKiBkZXRlcm1pbmUgd2hpY2ggY2hpbGRyZW4gYXJlIGV4aXRpbmcuXG4gICAgICovXG4gICAgY29uc3QgcHJlc2VudEtleXMgPVxuICAgICAgICBwcm9wYWdhdGUgJiYgIWlzUGFyZW50UHJlc2VudCA/IFtdIDogcHJlc2VudENoaWxkcmVuLm1hcChnZXRDaGlsZEtleSlcblxuICAgIC8qKlxuICAgICAqIElmIGBpbml0aWFsPXtmYWxzZX1gIHdlIG9ubHkgd2FudCB0byBwYXNzIHRoaXMgdG8gY29tcG9uZW50cyBpbiB0aGUgZmlyc3QgcmVuZGVyLlxuICAgICAqL1xuICAgIGNvbnN0IGlzSW5pdGlhbFJlbmRlciA9IHVzZVJlZih0cnVlKVxuXG4gICAgLyoqXG4gICAgICogQSByZWYgY29udGFpbmluZyB0aGUgY3VycmVudGx5IHByZXNlbnQgY2hpbGRyZW4uIFdoZW4gYWxsIGV4aXQgYW5pbWF0aW9uc1xuICAgICAqIGFyZSBjb21wbGV0ZSwgd2UgdXNlIHRoaXMgdG8gcmUtcmVuZGVyIHRoZSBjb21wb25lbnQgd2l0aCB0aGUgbGF0ZXN0IGNoaWxkcmVuXG4gICAgICogKmNvbW1pdHRlZCogcmF0aGVyIHRoYW4gdGhlIGxhdGVzdCBjaGlsZHJlbiAqcmVuZGVyZWQqLlxuICAgICAqL1xuICAgIGNvbnN0IHBlbmRpbmdQcmVzZW50Q2hpbGRyZW4gPSB1c2VSZWYocHJlc2VudENoaWxkcmVuKVxuXG4gICAgLyoqXG4gICAgICogVHJhY2sgd2hpY2ggZXhpdGluZyBjaGlsZHJlbiBoYXZlIGZpbmlzaGVkIGFuaW1hdGluZyBvdXQuXG4gICAgICovXG4gICAgY29uc3QgZXhpdENvbXBsZXRlID0gdXNlQ29uc3RhbnQoKCkgPT4gbmV3IE1hcDxDb21wb25lbnRLZXksIGJvb2xlYW4+KCkpXG5cbiAgICAvKipcbiAgICAgKiBUcmFjayB3aGljaCBjb21wb25lbnRzIGFyZSBjdXJyZW50bHkgcHJvY2Vzc2luZyBleGl0IHRvIHByZXZlbnQgZHVwbGljYXRlIHByb2Nlc3NpbmcuXG4gICAgICovXG4gICAgY29uc3QgZXhpdGluZ0NvbXBvbmVudHMgPSB1c2VSZWYobmV3IFNldDxDb21wb25lbnRLZXk+KCkpXG5cbiAgICAvKipcbiAgICAgKiBTYXZlIGNoaWxkcmVuIHRvIHJlbmRlciBhcyBSZWFjdCBzdGF0ZS4gVG8gZW5zdXJlIHRoaXMgY29tcG9uZW50IGlzIGNvbmN1cnJlbnQtc2FmZSxcbiAgICAgKiB3ZSBjaGVjayBmb3IgZXhpdGluZyBjaGlsZHJlbiB2aWEgYW4gZWZmZWN0LlxuICAgICAqL1xuICAgIGNvbnN0IFtkaWZmZWRDaGlsZHJlbiwgc2V0RGlmZmVkQ2hpbGRyZW5dID0gdXNlU3RhdGUocHJlc2VudENoaWxkcmVuKVxuICAgIGNvbnN0IFtyZW5kZXJlZENoaWxkcmVuLCBzZXRSZW5kZXJlZENoaWxkcmVuXSA9IHVzZVN0YXRlKHByZXNlbnRDaGlsZHJlbilcblxuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpc0luaXRpYWxSZW5kZXIuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIHBlbmRpbmdQcmVzZW50Q2hpbGRyZW4uY3VycmVudCA9IHByZXNlbnRDaGlsZHJlblxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVcGRhdGUgY29tcGxldGUgc3RhdHVzIG9mIGV4aXRpbmcgY2hpbGRyZW4uXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlbmRlcmVkQ2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGdldENoaWxkS2V5KHJlbmRlcmVkQ2hpbGRyZW5baV0pXG5cbiAgICAgICAgICAgIGlmICghcHJlc2VudEtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlmIChleGl0Q29tcGxldGUuZ2V0KGtleSkgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZXhpdENvbXBsZXRlLnNldChrZXksIGZhbHNlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZXhpdENvbXBsZXRlLmRlbGV0ZShrZXkpXG4gICAgICAgICAgICAgICAgZXhpdGluZ0NvbXBvbmVudHMuY3VycmVudC5kZWxldGUoa2V5KVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW3JlbmRlcmVkQ2hpbGRyZW4sIHByZXNlbnRLZXlzLmxlbmd0aCwgcHJlc2VudEtleXMuam9pbihcIi1cIildKVxuXG4gICAgY29uc3QgZXhpdGluZ0NoaWxkcmVuOiBhbnlbXSA9IFtdXG5cbiAgICBpZiAocHJlc2VudENoaWxkcmVuICE9PSBkaWZmZWRDaGlsZHJlbikge1xuICAgICAgICBsZXQgbmV4dENoaWxkcmVuID0gWy4uLnByZXNlbnRDaGlsZHJlbl1cblxuICAgICAgICAvKipcbiAgICAgICAgICogTG9vcCB0aHJvdWdoIGFsbCB0aGUgY3VycmVudGx5IHJlbmRlcmVkIGNvbXBvbmVudHMgYW5kIGRlY2lkZSB3aGljaFxuICAgICAgICAgKiBhcmUgZXhpdGluZy5cbiAgICAgICAgICovXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVuZGVyZWRDaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2hpbGQgPSByZW5kZXJlZENoaWxkcmVuW2ldXG4gICAgICAgICAgICBjb25zdCBrZXkgPSBnZXRDaGlsZEtleShjaGlsZClcblxuICAgICAgICAgICAgaWYgKCFwcmVzZW50S2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgbmV4dENoaWxkcmVuLnNwbGljZShpLCAwLCBjaGlsZClcbiAgICAgICAgICAgICAgICBleGl0aW5nQ2hpbGRyZW4ucHVzaChjaGlsZClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB3ZSdyZSBpbiBcIndhaXRcIiBtb2RlLCBhbmQgd2UgaGF2ZSBleGl0aW5nIGNoaWxkcmVuLCB3ZSB3YW50IHRvXG4gICAgICAgICAqIG9ubHkgcmVuZGVyIHRoZXNlIHVudGlsIHRoZXkndmUgYWxsIGV4aXRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChtb2RlID09PSBcIndhaXRcIiAmJiBleGl0aW5nQ2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICBuZXh0Q2hpbGRyZW4gPSBleGl0aW5nQ2hpbGRyZW5cbiAgICAgICAgfVxuXG4gICAgICAgIHNldFJlbmRlcmVkQ2hpbGRyZW4ob25seUVsZW1lbnRzKG5leHRDaGlsZHJlbikpXG4gICAgICAgIHNldERpZmZlZENoaWxkcmVuKHByZXNlbnRDaGlsZHJlbilcblxuICAgICAgICAvKipcbiAgICAgICAgICogRWFybHkgcmV0dXJuIHRvIGVuc3VyZSBvbmNlIHdlJ3ZlIHNldCBzdGF0ZSB3aXRoIHRoZSBsYXRlc3QgZGlmZmVkXG4gICAgICAgICAqIGNoaWxkcmVuLCB3ZSBjYW4gaW1tZWRpYXRlbHkgcmUtcmVuZGVyLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAgIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiAmJlxuICAgICAgICBtb2RlID09PSBcIndhaXRcIiAmJlxuICAgICAgICByZW5kZXJlZENoaWxkcmVuLmxlbmd0aCA+IDFcbiAgICApIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgYFlvdSdyZSBhdHRlbXB0aW5nIHRvIGFuaW1hdGUgbXVsdGlwbGUgY2hpbGRyZW4gd2l0aGluIEFuaW1hdGVQcmVzZW5jZSwgYnV0IGl0cyBtb2RlIGlzIHNldCB0byBcIndhaXRcIi4gVGhpcyB3aWxsIGxlYWQgdG8gb2RkIHZpc3VhbCBiZWhhdmlvdXIuYFxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgd2UndmUgYmVlbiBwcm92aWRlZCBhIGZvcmNlUmVuZGVyIGZ1bmN0aW9uIGJ5IHRoZSBMYXlvdXRHcm91cENvbnRleHQsXG4gICAgICogd2UgY2FuIHVzZSBpdCB0byBmb3JjZSBhIHJlLXJlbmRlciBhbW9uZ3N0IGFsbCBzdXJyb3VuZGluZyBjb21wb25lbnRzIG9uY2VcbiAgICAgKiBhbGwgY29tcG9uZW50cyBoYXZlIGZpbmlzaGVkIGFuaW1hdGluZyBvdXQuXG4gICAgICovXG4gICAgY29uc3QgeyBmb3JjZVJlbmRlciB9ID0gdXNlQ29udGV4dChMYXlvdXRHcm91cENvbnRleHQpXG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8PlxuICAgICAgICAgICAge3JlbmRlcmVkQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGdldENoaWxkS2V5KGNoaWxkKVxuXG4gICAgICAgICAgICAgICAgY29uc3QgaXNQcmVzZW50ID1cbiAgICAgICAgICAgICAgICAgICAgcHJvcGFnYXRlICYmICFpc1BhcmVudFByZXNlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIDogcHJlc2VudENoaWxkcmVuID09PSByZW5kZXJlZENoaWxkcmVuIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNlbnRLZXlzLmluY2x1ZGVzKGtleSlcblxuICAgICAgICAgICAgICAgIGNvbnN0IG9uRXhpdCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV4aXRpbmdDb21wb25lbnRzLmN1cnJlbnQuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV4aXRpbmdDb21wb25lbnRzLmN1cnJlbnQuYWRkKGtleSlcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZXhpdENvbXBsZXRlLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGl0Q29tcGxldGUuc2V0KGtleSwgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IGlzRXZlcnlFeGl0Q29tcGxldGUgPSB0cnVlXG4gICAgICAgICAgICAgICAgICAgIGV4aXRDb21wbGV0ZS5mb3JFYWNoKChpc0V4aXRDb21wbGV0ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0V4aXRDb21wbGV0ZSkgaXNFdmVyeUV4aXRDb21wbGV0ZSA9IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzRXZlcnlFeGl0Q29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlUmVuZGVyPy4oKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVuZGVyZWRDaGlsZHJlbihwZW5kaW5nUHJlc2VudENoaWxkcmVuLmN1cnJlbnQpXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BhZ2F0ZSAmJiBzYWZlVG9SZW1vdmU/LigpXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlICYmIG9uRXhpdENvbXBsZXRlKClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxQcmVzZW5jZUNoaWxkXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJlc2VudD17aXNQcmVzZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWlzSW5pdGlhbFJlbmRlci5jdXJyZW50IHx8IGluaXRpYWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tPXtjdXN0b219XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVzZW5jZUFmZmVjdHNMYXlvdXQ9e3ByZXNlbmNlQWZmZWN0c0xheW91dH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGU9e21vZGV9XG4gICAgICAgICAgICAgICAgICAgICAgICByb290PXtyb290fVxuICAgICAgICAgICAgICAgICAgICAgICAgb25FeGl0Q29tcGxldGU9e2lzUHJlc2VudCA/IHVuZGVmaW5lZCA6IG9uRXhpdH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvclg9e2FuY2hvclh9XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JZPXthbmNob3JZfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgICAgICAgICAgICAgIDwvUHJlc2VuY2VDaGlsZD5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgPC8+XG4gICAgKVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.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 */ isPresent: () => (/* binding */ isPresent),\n/* harmony export */ useIsPresent: () => (/* binding */ useIsPresent),\n/* harmony export */ usePresence: () => (/* binding */ usePresence)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* __next_internal_client_entry_do_not_use__ isPresent,useIsPresent,usePresence auto */ \n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed from the tree,\n * but `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */ function usePresence(subscribe = true) {\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__.PresenceContext);\n if (context === null) return [\n true,\n null\n ];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"usePresence.useEffect\": ()=>{\n if (subscribe) {\n return register(id);\n }\n }\n }[\"usePresence.useEffect\"], [\n subscribe\n ]);\n const safeToRemove = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"usePresence.useCallback[safeToRemove]\": ()=>subscribe && onExitComplete && onExitComplete(id)\n }[\"usePresence.useCallback[safeToRemove]\"], [\n id,\n onExitComplete,\n subscribe\n ]);\n return !isPresent && onExitComplete ? [\n false,\n safeToRemove\n ] : [\n true\n ];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * @public\n */ function useIsPresent() {\n return isPresent((0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__.PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n //# sourceMappingURL=use-presence.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbXBvbmVudHMvQW5pbWF0ZVByZXNlbmNlL3VzZS1wcmVzZW5jZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQWdCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCRyxHQUNhO0lBR1o7MEJBRXNCO1FBQUE7UUFBQTtLQUFBOzs7O0lBT3RCOzs7O2dCQUdROztRQUVSO2dDQUFBO1FBQUE7S0FBQTs7Ozs7Ozs7SUFPQTtRQUFBO1FBQUE7S0FBQTtRQUFBO0tBQUE7QUFDSjtBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUJHO0lBRUM7QUFDSjtBQUVNO0lBQ0Y7QUFDSiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL2NvbXBvbmVudHMvQW5pbWF0ZVByZXNlbmNlL3VzZS1wcmVzZW5jZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VJZCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQge1xuICAgIFByZXNlbmNlQ29udGV4dCxcbiAgICBQcmVzZW5jZUNvbnRleHRQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvbnRleHQvUHJlc2VuY2VDb250ZXh0XCJcblxuZXhwb3J0IHR5cGUgU2FmZVRvUmVtb3ZlID0gKCkgPT4gdm9pZFxuXG50eXBlIEFsd2F5c1ByZXNlbnQgPSBbdHJ1ZSwgbnVsbF1cblxudHlwZSBQcmVzZW50ID0gW3RydWVdXG5cbnR5cGUgTm90UHJlc2VudCA9IFtmYWxzZSwgU2FmZVRvUmVtb3ZlXVxuXG4vKipcbiAqIFdoZW4gYSBjb21wb25lbnQgaXMgdGhlIGNoaWxkIG9mIGBBbmltYXRlUHJlc2VuY2VgLCBpdCBjYW4gdXNlIGB1c2VQcmVzZW5jZWBcbiAqIHRvIGFjY2VzcyBpbmZvcm1hdGlvbiBhYm91dCB3aGV0aGVyIGl0J3Mgc3RpbGwgcHJlc2VudCBpbiB0aGUgUmVhY3QgdHJlZS5cbiAqXG4gKiBgYGBqc3hcbiAqIGltcG9ydCB7IHVzZVByZXNlbmNlIH0gZnJvbSBcImZyYW1lci1tb3Rpb25cIlxuICpcbiAqIGV4cG9ydCBjb25zdCBDb21wb25lbnQgPSAoKSA9PiB7XG4gKiAgIGNvbnN0IFtpc1ByZXNlbnQsIHNhZmVUb1JlbW92ZV0gPSB1c2VQcmVzZW5jZSgpXG4gKlxuICogICB1c2VFZmZlY3QoKCkgPT4ge1xuICogICAgICFpc1ByZXNlbnQgJiYgc2V0VGltZW91dChzYWZlVG9SZW1vdmUsIDEwMDApXG4gKiAgIH0sIFtpc1ByZXNlbnRdKVxuICpcbiAqICAgcmV0dXJuIDxkaXYgLz5cbiAqIH1cbiAqIGBgYFxuICpcbiAqIElmIGBpc1ByZXNlbnRgIGlzIGBmYWxzZWAsIGl0IG1lYW5zIHRoYXQgYSBjb21wb25lbnQgaGFzIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSB0cmVlLFxuICogYnV0IGBBbmltYXRlUHJlc2VuY2VgIHdvbid0IHJlYWxseSByZW1vdmUgaXQgdW50aWwgYHNhZmVUb1JlbW92ZWAgaGFzIGJlZW4gY2FsbGVkLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVByZXNlbmNlKFxuICAgIHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWVcbik6IEFsd2F5c1ByZXNlbnQgfCBQcmVzZW50IHwgTm90UHJlc2VudCB7XG4gICAgY29uc3QgY29udGV4dCA9IHVzZUNvbnRleHQoUHJlc2VuY2VDb250ZXh0KVxuXG4gICAgaWYgKGNvbnRleHQgPT09IG51bGwpIHJldHVybiBbdHJ1ZSwgbnVsbF1cblxuICAgIGNvbnN0IHsgaXNQcmVzZW50LCBvbkV4aXRDb21wbGV0ZSwgcmVnaXN0ZXIgfSA9IGNvbnRleHRcblxuICAgIC8vIEl0J3Mgc2FmZSB0byBjYWxsIHRoZSBmb2xsb3dpbmcgaG9va3MgY29uZGl0aW9uYWxseSAoYWZ0ZXIgYW4gZWFybHkgcmV0dXJuKSBiZWNhdXNlIHRoZSBjb250ZXh0IHdpbGwgYWx3YXlzXG4gICAgLy8gZWl0aGVyIGJlIG51bGwgb3Igbm9uLW51bGwgZm9yIHRoZSBsaWZlc3BhbiBvZiB0aGUgY29tcG9uZW50LlxuXG4gICAgY29uc3QgaWQgPSB1c2VJZCgpXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdGVyKGlkKVxuICAgICAgICB9XG4gICAgfSwgW3N1YnNjcmliZV0pXG5cbiAgICBjb25zdCBzYWZlVG9SZW1vdmUgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKCkgPT4gc3Vic2NyaWJlICYmIG9uRXhpdENvbXBsZXRlICYmIG9uRXhpdENvbXBsZXRlKGlkKSxcbiAgICAgICAgW2lkLCBvbkV4aXRDb21wbGV0ZSwgc3Vic2NyaWJlXVxuICAgIClcblxuICAgIHJldHVybiAhaXNQcmVzZW50ICYmIG9uRXhpdENvbXBsZXRlID8gW2ZhbHNlLCBzYWZlVG9SZW1vdmVdIDogW3RydWVdXG59XG5cbi8qKlxuICogU2ltaWxhciB0byBgdXNlUHJlc2VuY2VgLCBleGNlcHQgYHVzZUlzUHJlc2VudGAgc2ltcGx5IHJldHVybnMgd2hldGhlciBvciBub3QgdGhlIGNvbXBvbmVudCBpcyBwcmVzZW50LlxuICogVGhlcmUgaXMgbm8gYHNhZmVUb1JlbW92ZWAgZnVuY3Rpb24uXG4gKlxuICogYGBganN4XG4gKiBpbXBvcnQgeyB1c2VJc1ByZXNlbnQgfSBmcm9tIFwiZnJhbWVyLW1vdGlvblwiXG4gKlxuICogZXhwb3J0IGNvbnN0IENvbXBvbmVudCA9ICgpID0+IHtcbiAqICAgY29uc3QgaXNQcmVzZW50ID0gdXNlSXNQcmVzZW50KClcbiAqXG4gKiAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gKiAgICAgIWlzUHJlc2VudCAmJiBjb25zb2xlLmxvZyhcIkkndmUgYmVlbiByZW1vdmVkIVwiKVxuICogICB9LCBbaXNQcmVzZW50XSlcbiAqXG4gKiAgIHJldHVybiA8ZGl2IC8+XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VJc1ByZXNlbnQoKSB7XG4gICAgcmV0dXJuIGlzUHJlc2VudCh1c2VDb250ZXh0KFByZXNlbmNlQ29udGV4dCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnQoY29udGV4dDogUHJlc2VuY2VDb250ZXh0UHJvcHMgfCBudWxsKSB7XG4gICAgcmV0dXJuIGNvbnRleHQgPT09IG51bGwgPyB0cnVlIDogY29udGV4dC5pc1ByZXNlbnRcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.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 */ getChildKey: () => (/* binding */ getChildKey),\n/* harmony export */ onlyElements: () => (/* binding */ onlyElements)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n\n\nconst getChildKey = (child) => child.key || \"\";\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n react__WEBPACK_IMPORTED_MODULE_0__.Children.forEach(children, (child) => {\n if ((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(child))\n filtered.push(child);\n });\n return filtered;\n}\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbXBvbmVudHMvQW5pbWF0ZVByZXNlbmNlL3V0aWxzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBaUQ7O0FBRWpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSwyQ0FBUTtBQUNaLFlBQVkscURBQWM7QUFDMUI7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFcUM7QUFDckMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbXBvbmVudHMvQW5pbWF0ZVByZXNlbmNlL3V0aWxzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGlsZHJlbiwgaXNWYWxpZEVsZW1lbnQgfSBmcm9tICdyZWFjdCc7XG5cbmNvbnN0IGdldENoaWxkS2V5ID0gKGNoaWxkKSA9PiBjaGlsZC5rZXkgfHwgXCJcIjtcbmZ1bmN0aW9uIG9ubHlFbGVtZW50cyhjaGlsZHJlbikge1xuICAgIGNvbnN0IGZpbHRlcmVkID0gW107XG4gICAgLy8gV2UgdXNlIGZvckVhY2ggaGVyZSBpbnN0ZWFkIG9mIG1hcCBhcyBtYXAgbXV0YXRlcyB0aGUgY29tcG9uZW50IGtleSBieSBwcmVwcmVuZGluZyBgLiRgXG4gICAgQ2hpbGRyZW4uZm9yRWFjaChjaGlsZHJlbiwgKGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChpc1ZhbGlkRWxlbWVudChjaGlsZCkpXG4gICAgICAgICAgICBmaWx0ZXJlZC5wdXNoKGNoaWxkKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZmlsdGVyZWQ7XG59XG5cbmV4cG9ydCB7IGdldENoaWxkS2V5LCBvbmx5RWxlbWVudHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXV0aWxzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LayoutGroupContext: () => (/* binding */ LayoutGroupContext) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js"); +/* __next_internal_client_entry_do_not_use__ LayoutGroupContext auto */ +const LayoutGroupContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({}); + //# sourceMappingURL=LayoutGroupContext.mjs.map + + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/LazyContext.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 */ LazyContext: () => (/* binding */ LazyContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* __next_internal_client_entry_do_not_use__ LazyContext auto */ \nconst LazyContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({\n strict: false\n});\n //# sourceMappingURL=LazyContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvTGF6eUNvbnRleHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQVVPO0lBQUE7QUFBQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2NvbnRleHQvTGF6eUNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBDcmVhdGVWaXN1YWxFbGVtZW50IH0gZnJvbSBcIi4uL3JlbmRlci90eXBlc1wiXG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF6eUNvbnRleHRQcm9wcyB7XG4gICAgcmVuZGVyZXI/OiBDcmVhdGVWaXN1YWxFbGVtZW50XG4gICAgc3RyaWN0OiBib29sZWFuXG59XG5cbmV4cG9ydCBjb25zdCBMYXp5Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8TGF6eUNvbnRleHRQcm9wcz4oeyBzdHJpY3Q6IGZhbHNlIH0pXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionConfigContext.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 */ MotionConfigContext: () => (/* binding */ MotionConfigContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* __next_internal_client_entry_do_not_use__ MotionConfigContext auto */ \n/**\n * @public\n */ const MotionConfigContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({\n transformPagePoint: (p)=>p,\n isStatic: false,\n reducedMotion: \"never\"\n});\n //# sourceMappingURL=MotionConfigContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvTW90aW9uQ29uZmlnQ29udGV4dC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBeURBOztDQUVHLEdBQ0k7SUFDSDtJQUNBO0lBQ0E7QUFDSCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2NvbnRleHQvTW90aW9uQ29uZmlnQ29udGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHR5cGUgeyBUcmFuc2l0aW9uIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgVHJhbnNmb3JtUG9pbnQgfSBmcm9tIFwibW90aW9uLXV0aWxzXCJcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIlxuXG5leHBvcnQgdHlwZSBSZWR1Y2VkTW90aW9uQ29uZmlnID0gXCJhbHdheXNcIiB8IFwibmV2ZXJcIiB8IFwidXNlclwiXG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vdGlvbkNvbmZpZ0NvbnRleHQge1xuICAgIC8qKlxuICAgICAqIEludGVybmFsLCBleHBvcnRlZCBvbmx5IGZvciB1c2FnZSBpbiBGcmFtZXJcbiAgICAgKi9cbiAgICB0cmFuc2Zvcm1QYWdlUG9pbnQ6IFRyYW5zZm9ybVBvaW50XG5cbiAgICAvKipcbiAgICAgKiBJbnRlcm5hbC4gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXMgaXMgYSBzdGF0aWMgY29udGV4dCBpZSB0aGUgRnJhbWVyIGNhbnZhcy4gSWYgc28sXG4gICAgICogaXQnbGwgZGlzYWJsZSBhbGwgZHluYW1pYyBmdW5jdGlvbmFsaXR5LlxuICAgICAqL1xuICAgIGlzU3RhdGljOiBib29sZWFuXG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGEgbmV3IGRlZmF1bHQgdHJhbnNpdGlvbiBmb3IgdGhlIGVudGlyZSB0cmVlLlxuICAgICAqXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIHRyYW5zaXRpb24/OiBUcmFuc2l0aW9uXG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB3aWxsIHJlc3BlY3QgdGhlIGRldmljZSBwcmVmZXJzUmVkdWNlZE1vdGlvbiBzZXR0aW5nIGJ5IHN3aXRjaGluZ1xuICAgICAqIHRyYW5zZm9ybSBhbmltYXRpb25zIG9mZi5cbiAgICAgKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICByZWR1Y2VkTW90aW9uPzogUmVkdWNlZE1vdGlvbkNvbmZpZ1xuXG4gICAgLyoqXG4gICAgICogQSBjdXN0b20gYG5vbmNlYCBhdHRyaWJ1dGUgdXNlZCB3aGVuIHdhbnRpbmcgdG8gZW5mb3JjZSBhIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IChDU1ApLlxuICAgICAqIEZvciBtb3JlIGRldGFpbHMgc2VlOlxuICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvSGVhZGVycy9Db250ZW50LVNlY3VyaXR5LVBvbGljeS9zdHlsZS1zcmMjdW5zYWZlX2lubGluZV9zdHlsZXNcbiAgICAgKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBub25jZT86IHN0cmluZ1xuXG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgYWxsIGFuaW1hdGlvbnMgd2lsbCBiZSBza2lwcGVkIGFuZCB2YWx1ZXMgd2lsbCBiZSBzZXQgaW5zdGFudGx5LlxuICAgICAqIFVzZWZ1bCBmb3IgRTJFIHRlc3RzIGFuZCB2aXN1YWwgcmVncmVzc2lvbiB0ZXN0aW5nLlxuICAgICAqXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIHNraXBBbmltYXRpb25zPzogYm9vbGVhblxuXG59XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgTW90aW9uQ29uZmlnQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8TW90aW9uQ29uZmlnQ29udGV4dD4oe1xuICAgIHRyYW5zZm9ybVBhZ2VQb2ludDogKHApID0+IHAsXG4gICAgaXNTdGF0aWM6IGZhbHNlLFxuICAgIHJlZHVjZWRNb3Rpb246IFwibmV2ZXJcIixcbn0pXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionContext/create.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 */ useCreateMotionContext: () => (/* binding */ useCreateMotionContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs\");\n/* __next_internal_client_entry_do_not_use__ useCreateMotionContext auto */ \n\n\nfunction useCreateMotionContext(props) {\n const { initial, animate } = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.getCurrentTreeVariants)(props, (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index_mjs__WEBPACK_IMPORTED_MODULE_2__.MotionContext));\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useCreateMotionContext.useMemo\": ()=>({\n initial,\n animate\n })\n }[\"useCreateMotionContext.useMemo\"], [\n variantLabelsAsDependency(initial),\n variantLabelsAsDependency(animate)\n ]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n //# sourceMappingURL=create.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvTW90aW9uQ29udGV4dC9jcmVhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFPTTtJQUdGOzs7Ozs7Ozs7O0FBU0o7QUFFQTtJQUdJO0FBQ0oiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9jb250ZXh0L01vdGlvbkNvbnRleHQvY3JlYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTW90aW9uQ29udGV4dCwgdHlwZSBNb3Rpb25Db250ZXh0UHJvcHMgfSBmcm9tIFwiLlwiXG5pbXBvcnQgeyBNb3Rpb25Qcm9wcyB9IGZyb20gXCIuLi8uLi9tb3Rpb24vdHlwZXNcIlxuaW1wb3J0IHsgZ2V0Q3VycmVudFRyZWVWYXJpYW50cyB9IGZyb20gXCIuL3V0aWxzXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0ZU1vdGlvbkNvbnRleHQ8SW5zdGFuY2U+KFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wc1xuKTogTW90aW9uQ29udGV4dFByb3BzPEluc3RhbmNlPiB7XG4gICAgY29uc3QgeyBpbml0aWFsLCBhbmltYXRlIH0gPSBnZXRDdXJyZW50VHJlZVZhcmlhbnRzKFxuICAgICAgICBwcm9wcyxcbiAgICAgICAgdXNlQ29udGV4dChNb3Rpb25Db250ZXh0KVxuICAgIClcblxuICAgIHJldHVybiB1c2VNZW1vKFxuICAgICAgICAoKSA9PiAoeyBpbml0aWFsLCBhbmltYXRlIH0pLFxuICAgICAgICBbdmFyaWFudExhYmVsc0FzRGVwZW5kZW5jeShpbml0aWFsKSwgdmFyaWFudExhYmVsc0FzRGVwZW5kZW5jeShhbmltYXRlKV1cbiAgICApXG59XG5cbmZ1bmN0aW9uIHZhcmlhbnRMYWJlbHNBc0RlcGVuZGVuY3koXG4gICAgcHJvcDogdW5kZWZpbmVkIHwgc3RyaW5nIHwgc3RyaW5nW10gfCBib29sZWFuXG4pIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwcm9wKSA/IHByb3Auam9pbihcIiBcIikgOiBwcm9wXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionContext/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 */ MotionContext: () => (/* binding */ MotionContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* __next_internal_client_entry_do_not_use__ MotionContext auto */ \nconst MotionContext = /* @__PURE__ */ /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvTW90aW9uQ29udGV4dC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBV2EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9jb250ZXh0L01vdGlvbkNvbnRleHQvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHR5cGUgeyBWaXN1YWxFbGVtZW50IH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgTW90aW9uQ29udGV4dFByb3BzPEluc3RhbmNlID0gdW5rbm93bj4ge1xuICAgIHZpc3VhbEVsZW1lbnQ/OiBWaXN1YWxFbGVtZW50PEluc3RhbmNlPlxuICAgIGluaXRpYWw/OiBmYWxzZSB8IHN0cmluZyB8IHN0cmluZ1tdXG4gICAgYW5pbWF0ZT86IHN0cmluZyB8IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBjb25zdCBNb3Rpb25Db250ZXh0ID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZUNvbnRleHQ8TW90aW9uQ29udGV4dFByb3BzPihcbiAgICB7fVxuKVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionContext/utils.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 */ getCurrentTreeVariants: () => (/* binding */ getCurrentTreeVariants)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n\n\nfunction getCurrentTreeVariants(props, context) {\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isControllingVariants)(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(initial)\n ? initial\n : undefined,\n animate: (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvTW90aW9uQ29udGV4dC91dGlscy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW1FOztBQUVuRTtBQUNBLFFBQVEsaUVBQXFCO0FBQzdCLGdCQUFnQixtQkFBbUI7QUFDbkM7QUFDQSwwQ0FBMEMsMERBQWM7QUFDeEQ7QUFDQTtBQUNBLHFCQUFxQiwwREFBYztBQUNuQztBQUNBO0FBQ0E7QUFDQTs7QUFFa0M7QUFDbEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvTW90aW9uQ29udGV4dC91dGlscy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNDb250cm9sbGluZ1ZhcmlhbnRzLCBpc1ZhcmlhbnRMYWJlbCB9IGZyb20gJ21vdGlvbi1kb20nO1xuXG5mdW5jdGlvbiBnZXRDdXJyZW50VHJlZVZhcmlhbnRzKHByb3BzLCBjb250ZXh0KSB7XG4gICAgaWYgKGlzQ29udHJvbGxpbmdWYXJpYW50cyhwcm9wcykpIHtcbiAgICAgICAgY29uc3QgeyBpbml0aWFsLCBhbmltYXRlIH0gPSBwcm9wcztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGluaXRpYWw6IGluaXRpYWwgPT09IGZhbHNlIHx8IGlzVmFyaWFudExhYmVsKGluaXRpYWwpXG4gICAgICAgICAgICAgICAgPyBpbml0aWFsXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBhbmltYXRlOiBpc1ZhcmlhbnRMYWJlbChhbmltYXRlKSA/IGFuaW1hdGUgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBwcm9wcy5pbmhlcml0ICE9PSBmYWxzZSA/IGNvbnRleHQgOiB7fTtcbn1cblxuZXhwb3J0IHsgZ2V0Q3VycmVudFRyZWVWYXJpYW50cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/PresenceContext.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 */ PresenceContext: () => (/* binding */ PresenceContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* __next_internal_client_entry_do_not_use__ PresenceContext auto */ \n/**\n * @public\n */ const PresenceContext = /* @__PURE__ */ /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);\n //# sourceMappingURL=PresenceContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvUHJlc2VuY2VDb250ZXh0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFPQTs7Q0FFRywyQkFFQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2NvbnRleHQvUHJlc2VuY2VDb250ZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHR5cGUgeyBQcmVzZW5jZUNvbnRleHRQcm9wcyB9IGZyb20gXCJtb3Rpb24tZG9tXCJcblxuZXhwb3J0IHR5cGUgeyBQcmVzZW5jZUNvbnRleHRQcm9wcyB9XG5cbi8qKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgUHJlc2VuY2VDb250ZXh0ID1cbiAgICAvKiBAX19QVVJFX18gKi8gY3JlYXRlQ29udGV4dDxQcmVzZW5jZUNvbnRleHRQcm9wcyB8IG51bGw+KG51bGwpXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.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 */ SwitchLayoutGroupContext: () => (/* binding */ SwitchLayoutGroupContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* __next_internal_client_entry_do_not_use__ SwitchLayoutGroupContext auto */ \n/**\n * Internal, exported only for usage in Framer\n */ const SwitchLayoutGroupContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});\n //# sourceMappingURL=SwitchLayoutGroupContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2NvbnRleHQvU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUF5QkE7O0NBRUciLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9jb250ZXh0L1N3aXRjaExheW91dEdyb3VwQ29udGV4dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgdHlwZSB7IFRyYW5zaXRpb24sIElQcm9qZWN0aW9uTm9kZSB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFN3aXRjaExheW91dEdyb3VwIHtcbiAgICByZWdpc3Rlcj86IChtZW1iZXI6IElQcm9qZWN0aW9uTm9kZSkgPT4gdm9pZFxuICAgIGRlcmVnaXN0ZXI/OiAobWVtYmVyOiBJUHJvamVjdGlvbk5vZGUpID0+IHZvaWRcbn1cblxuZXhwb3J0IHR5cGUgU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0ID0gU3dpdGNoTGF5b3V0R3JvdXAgJlxuICAgIEluaXRpYWxQcm9tb3Rpb25Db25maWdcblxuZXhwb3J0IHR5cGUgSW5pdGlhbFByb21vdGlvbkNvbmZpZyA9IHtcbiAgICAvKipcbiAgICAgKiBUaGUgaW5pdGlhbCB0cmFuc2l0aW9uIHRvIHVzZSB3aGVuIHRoZSBlbGVtZW50cyBpbiB0aGlzIGdyb3VwIG1vdW50IChhbmQgYXV0b21hdGljYWxseSBwcm9tb3RlZCkuXG4gICAgICogU3Vic2VxdWVudCB1cGRhdGVzIHNob3VsZCBwcm92aWRlIGEgdHJhbnNpdGlvbiBpbiB0aGUgcHJvbW90ZSBtZXRob2QuXG4gICAgICovXG4gICAgdHJhbnNpdGlvbj86IFRyYW5zaXRpb25cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgZm9sbG93IHRyZWUgc2hvdWxkIHByZXNlcnZlIGl0cyBvcGFjaXR5IHdoZW4gdGhlIGxlYWQgaXMgcHJvbW90ZWQgb24gbW91bnRcbiAgICAgKi9cbiAgICBzaG91bGRQcmVzZXJ2ZUZvbGxvd09wYWNpdHk/OiAobWVtYmVyOiBJUHJvamVjdGlvbk5vZGUpID0+IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBJbnRlcm5hbCwgZXhwb3J0ZWQgb25seSBmb3IgdXNhZ2UgaW4gRnJhbWVyXG4gKi9cbmV4cG9ydCBjb25zdCBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQgPSBjcmVhdGVDb250ZXh0PFN3aXRjaExheW91dEdyb3VwQ29udGV4dD4oXG4gICAge31cbilcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/events/add-pointer-event.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 */ addPointerEvent: () => (/* binding */ addPointerEvent)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var _event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./event-info.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n\n\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.addDomEvent)(target, eventName, (0,_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.addPointerInfo)(handler), options);\n}\n\n\n//# sourceMappingURL=add-pointer-event.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2V2ZW50cy9hZGQtcG9pbnRlci1ldmVudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXlDO0FBQ1M7O0FBRWxEO0FBQ0EsV0FBVyx1REFBVyxvQkFBb0IsK0RBQWM7QUFDeEQ7O0FBRTJCO0FBQzNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9ldmVudHMvYWRkLXBvaW50ZXItZXZlbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZERvbUV2ZW50IH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBhZGRQb2ludGVySW5mbyB9IGZyb20gJy4vZXZlbnQtaW5mby5tanMnO1xuXG5mdW5jdGlvbiBhZGRQb2ludGVyRXZlbnQodGFyZ2V0LCBldmVudE5hbWUsIGhhbmRsZXIsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gYWRkRG9tRXZlbnQodGFyZ2V0LCBldmVudE5hbWUsIGFkZFBvaW50ZXJJbmZvKGhhbmRsZXIpLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgYWRkUG9pbnRlckV2ZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hZGQtcG9pbnRlci1ldmVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/events/event-info.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/events/event-info.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 */ addPointerInfo: () => (/* binding */ addPointerInfo),\n/* harmony export */ extractEventInfo: () => (/* binding */ extractEventInfo)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n\n\nfunction extractEventInfo(event) {\n return {\n point: {\n x: event.pageX,\n y: event.pageY,\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isPrimaryPointer)(event) && handler(event, extractEventInfo(event));\n};\n\n\n//# sourceMappingURL=event-info.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2V2ZW50cy9ldmVudC1pbmZvLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDREQUFnQjtBQUN0Qzs7QUFFNEM7QUFDNUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2V2ZW50cy9ldmVudC1pbmZvLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1ByaW1hcnlQb2ludGVyIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudEluZm8oZXZlbnQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwb2ludDoge1xuICAgICAgICAgICAgeDogZXZlbnQucGFnZVgsXG4gICAgICAgICAgICB5OiBldmVudC5wYWdlWSxcbiAgICAgICAgfSxcbiAgICB9O1xufVxuY29uc3QgYWRkUG9pbnRlckluZm8gPSAoaGFuZGxlcikgPT4ge1xuICAgIHJldHVybiAoZXZlbnQpID0+IGlzUHJpbWFyeVBvaW50ZXIoZXZlbnQpICYmIGhhbmRsZXIoZXZlbnQsIGV4dHJhY3RFdmVudEluZm8oZXZlbnQpKTtcbn07XG5cbmV4cG9ydCB7IGFkZFBvaW50ZXJJbmZvLCBleHRyYWN0RXZlbnRJbmZvIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ldmVudC1pbmZvLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/events/event-info.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.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 */ VisualElementDragControls: () => (/* binding */ VisualElementDragControls),\n/* harmony export */ elementDragControls: () => (/* binding */ elementDragControls)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/resize/index.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../events/event-info.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n/* harmony import */ var _utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/get-context-window.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\");\n/* harmony import */ var _utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../utils/is-ref-object.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\");\n/* harmony import */ var _pan_PanSession_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../pan/PanSession.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\");\n/* harmony import */ var _utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/constraints.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs\");\n\n\n\n\n\n\n\n\n\nconst elementDragControls = new WeakMap();\nclass VisualElementDragControls {\n constructor(visualElement) {\n this.openDragLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.createBox)();\n /**\n * The latest pointer event. Used as fallback when the `cancel` and `stop` functions are called without arguments.\n */\n this.latestPointerEvent = null;\n /**\n * The latest pan info. Used as fallback when the `cancel` and `stop` functions are called without arguments.\n */\n this.latestPanInfo = null;\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false, distanceThreshold } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n if (snapToCursor) {\n this.snapToCursor((0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event).point);\n }\n this.stopAnimation();\n };\n const onStart = (event, info) => {\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openDragLock)\n this.openDragLock();\n this.openDragLock = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.setDragLock)(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openDragLock)\n return;\n }\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin and pointer offset\n */\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (motion_dom__WEBPACK_IMPORTED_MODULE_4__.percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = (0,motion_dom__WEBPACK_IMPORTED_MODULE_5__.calcLength)(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart) {\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.update(() => onDragStart(event, info), false, true);\n }\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_7__.addValueToWillChange)(this.visualElement, \"transform\");\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openDragLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n if (onDrag) {\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.update(() => onDrag(event, info), false, true);\n }\n };\n const onSessionEnd = (event, info) => {\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n this.stop(event, info);\n this.latestPointerEvent = null;\n this.latestPanInfo = null;\n };\n const resumeAnimation = () => {\n const { dragSnapToOrigin: snap } = this.getProps();\n if (snap || this.constraints) {\n this.startAnimation({ x: 0, y: 0 });\n }\n };\n const { dragSnapToOrigin } = this.getProps();\n this.panSession = new _pan_PanSession_mjs__WEBPACK_IMPORTED_MODULE_8__.PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n resumeAnimation,\n }, {\n transformPagePoint: this.visualElement.getTransformPagePoint(),\n dragSnapToOrigin,\n distanceThreshold,\n contextWindow: (0,_utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_9__.getContextWindow)(this.visualElement),\n element: this.visualElement.current,\n });\n }\n /**\n * @internal\n */\n stop(event, panInfo) {\n const finalEvent = event || this.latestPointerEvent;\n const finalPanInfo = panInfo || this.latestPanInfo;\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging || !finalPanInfo || !finalEvent)\n return;\n const { velocity } = finalPanInfo;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n if (onDragEnd) {\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.postRender(() => onDragEnd(finalEvent, finalPanInfo));\n }\n }\n /**\n * @internal\n */\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.endPanSession();\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openDragLock) {\n this.openDragLock();\n this.openDragLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n /**\n * Clean up the pan session without modifying other drag state.\n * This is used during unmount to ensure event listeners are removed\n * without affecting projection animations or drag locks.\n * @internal\n */\n endPanSession() {\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.applyConstraints)(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n const { dragConstraints, dragElastic } = this.getProps();\n const layout = this.visualElement.projection &&\n !this.visualElement.projection.layout\n ? this.visualElement.projection.measure(false)\n : this.visualElement.projection?.layout;\n const prevConstraints = this.constraints;\n if (dragConstraints && (0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcRelativeConstraints)(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.resolveDragElastic)(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative. This only applies to relative (non-ref)\n * constraints, as ref-based constraints from calcViewportConstraints are already in the\n * correct coordinate space for the motion value transform offset.\n */\n if (prevConstraints !== this.constraints &&\n !(0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints) &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n if (this.constraints !== false &&\n this.getAxisMotionValue(axis)) {\n this.constraints[axis] = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.rebaseAxisConstraints)(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !(0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(constraints))\n return false;\n const constraintsElement = constraints.current;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.invariant)(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\", \"drag-constraints-ref\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = (0,motion_dom__WEBPACK_IMPORTED_MODULE_13__.measurePageBox)(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcViewportConstraints)(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints((0,motion_dom__WEBPACK_IMPORTED_MODULE_14__.convertBoxToBoundingBox)(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = (0,motion_dom__WEBPACK_IMPORTED_MODULE_14__.convertBoundingBoxToBox)(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_7__.addValueToWillChange)(this.visualElement, axis);\n return axisValue.start((0,motion_dom__WEBPACK_IMPORTED_MODULE_15__.animateMotionValue)(axis, axisValue, 0, transition, this.visualElement, false));\n }\n stopAnimation() {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => this.getAxisMotionValue(axis).stop());\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = `_drag${axis.toUpperCase()}`;\n const props = this.visualElement.getProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (props.initial\n ? props.initial[axis]\n : undefined) || 0);\n }\n snapToCursor(point) {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n /**\n * The layout measurement includes the current transform value,\n * so we need to add it back to get the correct snap position.\n * This fixes an issue where elements with initial coordinates\n * would snap to the wrong position on the first drag.\n */\n const current = axisValue.get() || 0;\n axisValue.set(point[axis] - (0,motion_dom__WEBPACK_IMPORTED_MODULE_16__.mixNumber)(min, max, 0.5) + current);\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!(0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue && this.constraints !== false) {\n const latest = axisValue.get();\n boxProgress[axis] = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcOrigin)({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n /**\n * Reset constraints so resolveConstraints() will recalculate them\n * with the freshly measured layout rather than returning the cached value.\n */\n this.constraints = false;\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set((0,motion_dom__WEBPACK_IMPORTED_MODULE_16__.mixNumber)(min, max, boxProgress[axis]));\n });\n /**\n * Flush the updated transform to the DOM synchronously to prevent\n * a visual flash at the element's CSS layout position (0,0) when\n * the transform was stripped for measurement.\n */\n this.visualElement.render();\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_17__.addPointerEvent)(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n const target = event.target;\n /**\n * Only block drag if clicking on a text input child element\n * (input, textarea, select, contenteditable) where users might\n * want to select text or interact with the control.\n *\n * Buttons and links don't block drag since they don't have\n * click-and-move actions of their own.\n */\n const isClickingTextInputChild = target !== element && (0,motion_dom__WEBPACK_IMPORTED_MODULE_18__.isElementTextInput)(target);\n if (drag && dragListener && !isClickingTextInputChild) {\n this.start(event);\n }\n });\n /**\n * If using ref-based constraints, observe both the draggable element\n * and the constraint container for size changes via ResizeObserver.\n * Setup is deferred because dragConstraints.current is null when\n * addListeners first runs (React hasn't committed the ref yet).\n */\n let stopResizeObservers;\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if ((0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints) && dragConstraints.current) {\n this.constraints = this.resolveRefConstraints();\n if (!stopResizeObservers) {\n stopResizeObservers = startResizeObservers(element, dragConstraints.current, () => this.scalePositionWithinConstraints());\n }\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.read(measureDragConstraints);\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = (0,motion_dom__WEBPACK_IMPORTED_MODULE_19__.addDomEvent)(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n stopResizeObservers && stopResizeObservers();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = _utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction skipFirstCall(callback) {\n let isFirst = true;\n return () => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n callback();\n };\n}\nfunction startResizeObservers(element, constraintsElement, onResize) {\n const stopElement = (0,motion_dom__WEBPACK_IMPORTED_MODULE_20__.resize)(element, skipFirstCall(onResize));\n const stopContainer = (0,motion_dom__WEBPACK_IMPORTED_MODULE_20__.resize)(constraintsElement, skipFirstCall(onResize));\n return () => {\n stopElement();\n stopContainer();\n };\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\n\n//# sourceMappingURL=VisualElementDragControls.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvVmlzdWFsRWxlbWVudERyYWdDb250cm9scy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBMFA7QUFDak47QUFDNEI7QUFDTjtBQUNPO0FBQ1Y7QUFDVDtBQUNpSTs7QUFFcEw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIscURBQVM7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsMENBQTBDLElBQUk7QUFDdkU7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtCQUFrQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyx3RUFBZ0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixxQ0FBcUM7QUFDekQ7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLHVEQUFXO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxvREFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwrQ0FBTztBQUMzQiw0QkFBNEIsYUFBYTtBQUN6QztBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMsc0RBQVU7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsZ0JBQWdCLDZDQUFLO0FBQ3JCO0FBQ0EsWUFBWSxnRUFBb0I7QUFDaEMsb0JBQW9CLGlCQUFpQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLCtEQUErRDtBQUNuRjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsU0FBUztBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsNkNBQUs7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IseUJBQXlCO0FBQzdDO0FBQ0Esc0NBQXNDLFlBQVk7QUFDbEQ7QUFDQTtBQUNBLGdCQUFnQixtQkFBbUI7QUFDbkMsOEJBQThCLDJEQUFVO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLCtFQUFnQjtBQUMzQztBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFdBQVc7QUFDM0I7QUFDQSxnQkFBZ0IsWUFBWTtBQUM1QjtBQUNBLFlBQVksNkNBQUs7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsNkJBQTZCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtCQUFrQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLE9BQU87QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIseUVBQWdCO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLCtCQUErQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHNFQUFXO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxnRkFBdUI7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QiwyRUFBa0I7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLHNFQUFXO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBLFlBQVksb0RBQVE7QUFDcEI7QUFDQTtBQUNBLDZDQUE2Qyw4RUFBcUI7QUFDbEU7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHlEQUF5RDtBQUN6RSw2QkFBNkIsc0VBQVc7QUFDeEM7QUFDQTtBQUNBLFFBQVEsd0RBQVM7QUFDakIsZ0JBQWdCLGFBQWE7QUFDN0I7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLDJEQUFjO0FBQzdDLGtDQUFrQyxnRkFBdUI7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCxvRUFBdUI7QUFDcEY7QUFDQTtBQUNBLHNDQUFzQyxvRUFBdUI7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwwRkFBMEY7QUFDMUc7QUFDQSxtQ0FBbUMsb0RBQVE7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLGdFQUFvQjtBQUM1QiwrQkFBK0IsK0RBQWtCO0FBQ2pEO0FBQ0E7QUFDQSxRQUFRLG9EQUFRO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsbUJBQW1CO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsb0RBQVE7QUFDaEIsb0JBQW9CLE9BQU87QUFDM0I7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGFBQWE7QUFDakM7QUFDQTtBQUNBLHdCQUF3QixXQUFXO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLHNEQUFTO0FBQ3JEO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQix3QkFBd0I7QUFDeEMsZ0JBQWdCLGFBQWE7QUFDN0IsYUFBYSxzRUFBVztBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QixRQUFRLG9EQUFRO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxtRUFBVSxHQUFHLDBCQUEwQjtBQUMzRTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isb0JBQW9CO0FBQ3BDO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxvREFBUTtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsV0FBVztBQUMvQiwwQkFBMEIsc0RBQVM7QUFDbkMsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQywrRUFBZTtBQUNuRCxvQkFBb0IsNEJBQTRCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1FQUFtRSwrREFBa0I7QUFDckY7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isa0JBQWtCO0FBQ3RDLGdCQUFnQixzRUFBVztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsYUFBYTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw2Q0FBSztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHdEQUFXO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0ZBQXNGLHlCQUF5QjtBQUMvRztBQUNBLGdCQUFnQixvREFBUTtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IseUdBQXlHLG1FQUFjLHlCQUF5QjtBQUNoSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixtREFBTTtBQUM5QiwwQkFBMEIsbURBQU07QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMEQ7QUFDMUQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvVmlzdWFsRWxlbWVudERyYWdDb250cm9scy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQm94LCBmcmFtZSwgZWFjaEF4aXMsIG1lYXN1cmVQYWdlQm94LCBjb252ZXJ0Qm94VG9Cb3VuZGluZ0JveCwgY29udmVydEJvdW5kaW5nQm94VG9Cb3gsIGFkZFZhbHVlVG9XaWxsQ2hhbmdlLCBhbmltYXRlTW90aW9uVmFsdWUsIG1peE51bWJlciwgaXNFbGVtZW50VGV4dElucHV0LCBhZGREb21FdmVudCwgc2V0RHJhZ0xvY2ssIHBlcmNlbnQsIGNhbGNMZW5ndGgsIHJlc2l6ZSB9IGZyb20gJ21vdGlvbi1kb20nO1xuaW1wb3J0IHsgaW52YXJpYW50IH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGFkZFBvaW50ZXJFdmVudCB9IGZyb20gJy4uLy4uL2V2ZW50cy9hZGQtcG9pbnRlci1ldmVudC5tanMnO1xuaW1wb3J0IHsgZXh0cmFjdEV2ZW50SW5mbyB9IGZyb20gJy4uLy4uL2V2ZW50cy9ldmVudC1pbmZvLm1qcyc7XG5pbXBvcnQgeyBnZXRDb250ZXh0V2luZG93IH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2V0LWNvbnRleHQtd2luZG93Lm1qcyc7XG5pbXBvcnQgeyBpc1JlZk9iamVjdCB9IGZyb20gJy4uLy4uL3V0aWxzL2lzLXJlZi1vYmplY3QubWpzJztcbmltcG9ydCB7IFBhblNlc3Npb24gfSBmcm9tICcuLi9wYW4vUGFuU2Vzc2lvbi5tanMnO1xuaW1wb3J0IHsgYXBwbHlDb25zdHJhaW50cywgY2FsY1JlbGF0aXZlQ29uc3RyYWludHMsIHJlc29sdmVEcmFnRWxhc3RpYywgcmViYXNlQXhpc0NvbnN0cmFpbnRzLCBjYWxjVmlld3BvcnRDb25zdHJhaW50cywgY2FsY09yaWdpbiwgZGVmYXVsdEVsYXN0aWMgfSBmcm9tICcuL3V0aWxzL2NvbnN0cmFpbnRzLm1qcyc7XG5cbmNvbnN0IGVsZW1lbnREcmFnQ29udHJvbHMgPSBuZXcgV2Vha01hcCgpO1xuY2xhc3MgVmlzdWFsRWxlbWVudERyYWdDb250cm9scyB7XG4gICAgY29uc3RydWN0b3IodmlzdWFsRWxlbWVudCkge1xuICAgICAgICB0aGlzLm9wZW5EcmFnTG9jayA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJlbnREaXJlY3Rpb24gPSBudWxsO1xuICAgICAgICB0aGlzLm9yaWdpblBvaW50ID0geyB4OiAwLCB5OiAwIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgcGVybWl0dGVkIGJvdW5kYXJpZXMgb2YgdHJhdmVsLCBpbiBwaXhlbHMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNvbnN0cmFpbnRzID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaGFzTXV0YXRlZENvbnN0cmFpbnRzID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgcGVyLWF4aXMgcmVzb2x2ZWQgZWxhc3RpYyB2YWx1ZXMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmVsYXN0aWMgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBsYXRlc3QgcG9pbnRlciBldmVudC4gVXNlZCBhcyBmYWxsYmFjayB3aGVuIHRoZSBgY2FuY2VsYCBhbmQgYHN0b3BgIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRzLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5sYXRlc3RQb2ludGVyRXZlbnQgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGxhdGVzdCBwYW4gaW5mby4gVXNlZCBhcyBmYWxsYmFjayB3aGVuIHRoZSBgY2FuY2VsYCBhbmQgYHN0b3BgIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRzLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5sYXRlc3RQYW5JbmZvID0gbnVsbDtcbiAgICAgICAgdGhpcy52aXN1YWxFbGVtZW50ID0gdmlzdWFsRWxlbWVudDtcbiAgICB9XG4gICAgc3RhcnQob3JpZ2luRXZlbnQsIHsgc25hcFRvQ3Vyc29yID0gZmFsc2UsIGRpc3RhbmNlVGhyZXNob2xkIH0gPSB7fSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogRG9uJ3Qgc3RhcnQgZHJhZ2dpbmcgaWYgdGhpcyBjb21wb25lbnQgaXMgZXhpdGluZ1xuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgeyBwcmVzZW5jZUNvbnRleHQgfSA9IHRoaXMudmlzdWFsRWxlbWVudDtcbiAgICAgICAgaWYgKHByZXNlbmNlQ29udGV4dCAmJiBwcmVzZW5jZUNvbnRleHQuaXNQcmVzZW50ID09PSBmYWxzZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgb25TZXNzaW9uU3RhcnQgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChzbmFwVG9DdXJzb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNuYXBUb0N1cnNvcihleHRyYWN0RXZlbnRJbmZvKGV2ZW50KS5wb2ludCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25TdGFydCA9IChldmVudCwgaW5mbykgPT4ge1xuICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBncmFiIHRoZSBnbG9iYWwgZHJhZyBnZXN0dXJlIGxvY2sgLSBtYXliZSBtYWtlIHRoaXMgcGFydCBvZiBQYW5TZXNzaW9uXG4gICAgICAgICAgICBjb25zdCB7IGRyYWcsIGRyYWdQcm9wYWdhdGlvbiwgb25EcmFnU3RhcnQgfSA9IHRoaXMuZ2V0UHJvcHMoKTtcbiAgICAgICAgICAgIGlmIChkcmFnICYmICFkcmFnUHJvcGFnYXRpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcGVuRHJhZ0xvY2spXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3BlbkRyYWdMb2NrKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuRHJhZ0xvY2sgPSBzZXREcmFnTG9jayhkcmFnKTtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSBkb24gJ3QgaGF2ZSB0aGUgbG9jaywgZG9uJ3Qgc3RhcnQgZHJhZ2dpbmdcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMub3BlbkRyYWdMb2NrKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmxhdGVzdFBvaW50ZXJFdmVudCA9IGV2ZW50O1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RQYW5JbmZvID0gaW5mbztcbiAgICAgICAgICAgIHRoaXMuaXNEcmFnZ2luZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnREaXJlY3Rpb24gPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5yZXNvbHZlQ29uc3RyYWludHMoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uLmlzQW5pbWF0aW9uQmxvY2tlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24udGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBSZWNvcmQgZ2VzdHVyZSBvcmlnaW4gYW5kIHBvaW50ZXIgb2Zmc2V0XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnQgPSB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKS5nZXQoKSB8fCAwO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHRoZSBNb3Rpb25WYWx1ZSBpcyBhIHBlcmNlbnRhZ2UgdmFsdWUgY29udmVydCB0byBweFxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChwZXJjZW50LnRlc3QoY3VycmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB0aGlzLnZpc3VhbEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9qZWN0aW9uICYmIHByb2plY3Rpb24ubGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtZWFzdXJlZEF4aXMgPSBwcm9qZWN0aW9uLmxheW91dC5sYXlvdXRCb3hbYXhpc107XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWVhc3VyZWRBeGlzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gY2FsY0xlbmd0aChtZWFzdXJlZEF4aXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBsZW5ndGggKiAocGFyc2VGbG9hdChjdXJyZW50KSAvIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5Qb2ludFtheGlzXSA9IGN1cnJlbnQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIEZpcmUgb25EcmFnU3RhcnQgZXZlbnRcbiAgICAgICAgICAgIGlmIChvbkRyYWdTdGFydCkge1xuICAgICAgICAgICAgICAgIGZyYW1lLnVwZGF0ZSgoKSA9PiBvbkRyYWdTdGFydChldmVudCwgaW5mbyksIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGFkZFZhbHVlVG9XaWxsQ2hhbmdlKHRoaXMudmlzdWFsRWxlbWVudCwgXCJ0cmFuc2Zvcm1cIik7XG4gICAgICAgICAgICBjb25zdCB7IGFuaW1hdGlvblN0YXRlIH0gPSB0aGlzLnZpc3VhbEVsZW1lbnQ7XG4gICAgICAgICAgICBhbmltYXRpb25TdGF0ZSAmJiBhbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZURyYWdcIiwgdHJ1ZSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uTW92ZSA9IChldmVudCwgaW5mbykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RQb2ludGVyRXZlbnQgPSBldmVudDtcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0UGFuSW5mbyA9IGluZm87XG4gICAgICAgICAgICBjb25zdCB7IGRyYWdQcm9wYWdhdGlvbiwgZHJhZ0RpcmVjdGlvbkxvY2ssIG9uRGlyZWN0aW9uTG9jaywgb25EcmFnLCB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICAgICAgLy8gSWYgd2UgZGlkbid0IHN1Y2Nlc3NmdWxseSByZWNlaXZlIHRoZSBnZXN0dXJlIGxvY2ssIGVhcmx5IHJldHVybi5cbiAgICAgICAgICAgIGlmICghZHJhZ1Byb3BhZ2F0aW9uICYmICF0aGlzLm9wZW5EcmFnTG9jaylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCB7IG9mZnNldCB9ID0gaW5mbztcbiAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gZGV0ZWN0IGRyYWcgZGlyZWN0aW9uIGlmIGRpcmVjdGlvbkxvY2sgaXMgdHJ1ZVxuICAgICAgICAgICAgaWYgKGRyYWdEaXJlY3Rpb25Mb2NrICYmIHRoaXMuY3VycmVudERpcmVjdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudERpcmVjdGlvbiA9IGdldEN1cnJlbnREaXJlY3Rpb24ob2Zmc2V0KTtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSd2ZSBzdWNjZXNzZnVsbHkgc2V0IGEgZGlyZWN0aW9uLCBub3RpZnkgbGlzdGVuZXJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50RGlyZWN0aW9uICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uRGlyZWN0aW9uTG9jayAmJiBvbkRpcmVjdGlvbkxvY2sodGhpcy5jdXJyZW50RGlyZWN0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVXBkYXRlIGVhY2ggcG9pbnQgd2l0aCB0aGUgbGF0ZXN0IHBvc2l0aW9uXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUF4aXMoXCJ4XCIsIGluZm8ucG9pbnQsIG9mZnNldCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUF4aXMoXCJ5XCIsIGluZm8ucG9pbnQsIG9mZnNldCk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElkZWFsbHkgd2Ugd291bGQgbGVhdmUgdGhlIHJlbmRlcmVyIHRvIGZpcmUgbmF0dXJhbGx5IGF0IHRoZSBlbmQgb2ZcbiAgICAgICAgICAgICAqIHRoaXMgZnJhbWUgYnV0IGlmIHRoZSBlbGVtZW50IGlzIGFib3V0IHRvIGNoYW5nZSBsYXlvdXQgYXMgdGhlIHJlc3VsdFxuICAgICAgICAgICAgICogb2YgYSByZS1yZW5kZXIgd2Ugd2FudCB0byBlbnN1cmUgdGhlIGJyb3dzZXIgY2FuIHJlYWQgdGhlIGxhdGVzdFxuICAgICAgICAgICAgICogYm91bmRpbmcgYm94IHRvIGVuc3VyZSB0aGUgcG9pbnRlciBhbmQgZWxlbWVudCBkb24ndCBmYWxsIG91dCBvZiBzeW5jLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRoaXMgbXVzdCBmaXJlIGFmdGVyIHRoZSByZW5kZXIgY2FsbCBhcyBpdCBtaWdodCB0cmlnZ2VyIGEgc3RhdGVcbiAgICAgICAgICAgICAqIGNoYW5nZSB3aGljaCBpdHNlbGYgbWlnaHQgdHJpZ2dlciBhIGxheW91dCB1cGRhdGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChvbkRyYWcpIHtcbiAgICAgICAgICAgICAgICBmcmFtZS51cGRhdGUoKCkgPT4gb25EcmFnKGV2ZW50LCBpbmZvKSwgZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvblNlc3Npb25FbmQgPSAoZXZlbnQsIGluZm8pID0+IHtcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0UG9pbnRlckV2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgICB0aGlzLmxhdGVzdFBhbkluZm8gPSBpbmZvO1xuICAgICAgICAgICAgdGhpcy5zdG9wKGV2ZW50LCBpbmZvKTtcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0UG9pbnRlckV2ZW50ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0UGFuSW5mbyA9IG51bGw7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3VtZUFuaW1hdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZ1NuYXBUb09yaWdpbjogc25hcCB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICAgICAgaWYgKHNuYXAgfHwgdGhpcy5jb25zdHJhaW50cykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBbmltYXRpb24oeyB4OiAwLCB5OiAwIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB7IGRyYWdTbmFwVG9PcmlnaW4gfSA9IHRoaXMuZ2V0UHJvcHMoKTtcbiAgICAgICAgdGhpcy5wYW5TZXNzaW9uID0gbmV3IFBhblNlc3Npb24ob3JpZ2luRXZlbnQsIHtcbiAgICAgICAgICAgIG9uU2Vzc2lvblN0YXJ0LFxuICAgICAgICAgICAgb25TdGFydCxcbiAgICAgICAgICAgIG9uTW92ZSxcbiAgICAgICAgICAgIG9uU2Vzc2lvbkVuZCxcbiAgICAgICAgICAgIHJlc3VtZUFuaW1hdGlvbixcbiAgICAgICAgfSwge1xuICAgICAgICAgICAgdHJhbnNmb3JtUGFnZVBvaW50OiB0aGlzLnZpc3VhbEVsZW1lbnQuZ2V0VHJhbnNmb3JtUGFnZVBvaW50KCksXG4gICAgICAgICAgICBkcmFnU25hcFRvT3JpZ2luLFxuICAgICAgICAgICAgZGlzdGFuY2VUaHJlc2hvbGQsXG4gICAgICAgICAgICBjb250ZXh0V2luZG93OiBnZXRDb250ZXh0V2luZG93KHRoaXMudmlzdWFsRWxlbWVudCksXG4gICAgICAgICAgICBlbGVtZW50OiB0aGlzLnZpc3VhbEVsZW1lbnQuY3VycmVudCxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHN0b3AoZXZlbnQsIHBhbkluZm8pIHtcbiAgICAgICAgY29uc3QgZmluYWxFdmVudCA9IGV2ZW50IHx8IHRoaXMubGF0ZXN0UG9pbnRlckV2ZW50O1xuICAgICAgICBjb25zdCBmaW5hbFBhbkluZm8gPSBwYW5JbmZvIHx8IHRoaXMubGF0ZXN0UGFuSW5mbztcbiAgICAgICAgY29uc3QgaXNEcmFnZ2luZyA9IHRoaXMuaXNEcmFnZ2luZztcbiAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICAgICAgaWYgKCFpc0RyYWdnaW5nIHx8ICFmaW5hbFBhbkluZm8gfHwgIWZpbmFsRXZlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgdmVsb2NpdHkgfSA9IGZpbmFsUGFuSW5mbztcbiAgICAgICAgdGhpcy5zdGFydEFuaW1hdGlvbih2ZWxvY2l0eSk7XG4gICAgICAgIGNvbnN0IHsgb25EcmFnRW5kIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgIGlmIChvbkRyYWdFbmQpIHtcbiAgICAgICAgICAgIGZyYW1lLnBvc3RSZW5kZXIoKCkgPT4gb25EcmFnRW5kKGZpbmFsRXZlbnQsIGZpbmFsUGFuSW5mbykpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIGNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiwgYW5pbWF0aW9uU3RhdGUgfSA9IHRoaXMudmlzdWFsRWxlbWVudDtcbiAgICAgICAgaWYgKHByb2plY3Rpb24pIHtcbiAgICAgICAgICAgIHByb2plY3Rpb24uaXNBbmltYXRpb25CbG9ja2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbmRQYW5TZXNzaW9uKCk7XG4gICAgICAgIGNvbnN0IHsgZHJhZ1Byb3BhZ2F0aW9uIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgIGlmICghZHJhZ1Byb3BhZ2F0aW9uICYmIHRoaXMub3BlbkRyYWdMb2NrKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5EcmFnTG9jaygpO1xuICAgICAgICAgICAgdGhpcy5vcGVuRHJhZ0xvY2sgPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGFuaW1hdGlvblN0YXRlICYmIGFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcIndoaWxlRHJhZ1wiLCBmYWxzZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsZWFuIHVwIHRoZSBwYW4gc2Vzc2lvbiB3aXRob3V0IG1vZGlmeWluZyBvdGhlciBkcmFnIHN0YXRlLlxuICAgICAqIFRoaXMgaXMgdXNlZCBkdXJpbmcgdW5tb3VudCB0byBlbnN1cmUgZXZlbnQgbGlzdGVuZXJzIGFyZSByZW1vdmVkXG4gICAgICogd2l0aG91dCBhZmZlY3RpbmcgcHJvamVjdGlvbiBhbmltYXRpb25zIG9yIGRyYWcgbG9ja3MuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgZW5kUGFuU2Vzc2lvbigpIHtcbiAgICAgICAgdGhpcy5wYW5TZXNzaW9uICYmIHRoaXMucGFuU2Vzc2lvbi5lbmQoKTtcbiAgICAgICAgdGhpcy5wYW5TZXNzaW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB1cGRhdGVBeGlzKGF4aXMsIF9wb2ludCwgb2Zmc2V0KSB7XG4gICAgICAgIGNvbnN0IHsgZHJhZyB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICAvLyBJZiB3ZSdyZSBub3QgZHJhZ2dpbmcgdGhpcyBheGlzLCBkbyBhbiBlYXJseSByZXR1cm4uXG4gICAgICAgIGlmICghb2Zmc2V0IHx8ICFzaG91bGREcmFnKGF4aXMsIGRyYWcsIHRoaXMuY3VycmVudERpcmVjdGlvbikpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGF4aXNWYWx1ZSA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO1xuICAgICAgICBsZXQgbmV4dCA9IHRoaXMub3JpZ2luUG9pbnRbYXhpc10gKyBvZmZzZXRbYXhpc107XG4gICAgICAgIC8vIEFwcGx5IGNvbnN0cmFpbnRzXG4gICAgICAgIGlmICh0aGlzLmNvbnN0cmFpbnRzICYmIHRoaXMuY29uc3RyYWludHNbYXhpc10pIHtcbiAgICAgICAgICAgIG5leHQgPSBhcHBseUNvbnN0cmFpbnRzKG5leHQsIHRoaXMuY29uc3RyYWludHNbYXhpc10sIHRoaXMuZWxhc3RpY1theGlzXSk7XG4gICAgICAgIH1cbiAgICAgICAgYXhpc1ZhbHVlLnNldChuZXh0KTtcbiAgICB9XG4gICAgcmVzb2x2ZUNvbnN0cmFpbnRzKCkge1xuICAgICAgICBjb25zdCB7IGRyYWdDb25zdHJhaW50cywgZHJhZ0VsYXN0aWMgfSA9IHRoaXMuZ2V0UHJvcHMoKTtcbiAgICAgICAgY29uc3QgbGF5b3V0ID0gdGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24gJiZcbiAgICAgICAgICAgICF0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5sYXlvdXRcbiAgICAgICAgICAgID8gdGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24ubWVhc3VyZShmYWxzZSlcbiAgICAgICAgICAgIDogdGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24/LmxheW91dDtcbiAgICAgICAgY29uc3QgcHJldkNvbnN0cmFpbnRzID0gdGhpcy5jb25zdHJhaW50cztcbiAgICAgICAgaWYgKGRyYWdDb25zdHJhaW50cyAmJiBpc1JlZk9iamVjdChkcmFnQ29uc3RyYWludHMpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY29uc3RyYWludHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN0cmFpbnRzID0gdGhpcy5yZXNvbHZlUmVmQ29uc3RyYWludHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChkcmFnQ29uc3RyYWludHMgJiYgbGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25zdHJhaW50cyA9IGNhbGNSZWxhdGl2ZUNvbnN0cmFpbnRzKGxheW91dC5sYXlvdXRCb3gsIGRyYWdDb25zdHJhaW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN0cmFpbnRzID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbGFzdGljID0gcmVzb2x2ZURyYWdFbGFzdGljKGRyYWdFbGFzdGljKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHdlJ3JlIG91dHB1dHRpbmcgdG8gZXh0ZXJuYWwgTW90aW9uVmFsdWVzLCB3ZSB3YW50IHRvIHJlYmFzZSB0aGUgbWVhc3VyZWQgY29uc3RyYWludHNcbiAgICAgICAgICogZnJvbSB2aWV3cG9ydC1yZWxhdGl2ZSB0byBjb21wb25lbnQtcmVsYXRpdmUuIFRoaXMgb25seSBhcHBsaWVzIHRvIHJlbGF0aXZlIChub24tcmVmKVxuICAgICAgICAgKiBjb25zdHJhaW50cywgYXMgcmVmLWJhc2VkIGNvbnN0cmFpbnRzIGZyb20gY2FsY1ZpZXdwb3J0Q29uc3RyYWludHMgYXJlIGFscmVhZHkgaW4gdGhlXG4gICAgICAgICAqIGNvcnJlY3QgY29vcmRpbmF0ZSBzcGFjZSBmb3IgdGhlIG1vdGlvbiB2YWx1ZSB0cmFuc2Zvcm0gb2Zmc2V0LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHByZXZDb25zdHJhaW50cyAhPT0gdGhpcy5jb25zdHJhaW50cyAmJlxuICAgICAgICAgICAgIWlzUmVmT2JqZWN0KGRyYWdDb25zdHJhaW50cykgJiZcbiAgICAgICAgICAgIGxheW91dCAmJlxuICAgICAgICAgICAgdGhpcy5jb25zdHJhaW50cyAmJlxuICAgICAgICAgICAgIXRoaXMuaGFzTXV0YXRlZENvbnN0cmFpbnRzKSB7XG4gICAgICAgICAgICBlYWNoQXhpcygoYXhpcykgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnN0cmFpbnRzICE9PSBmYWxzZSAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnN0cmFpbnRzW2F4aXNdID0gcmViYXNlQXhpc0NvbnN0cmFpbnRzKGxheW91dC5sYXlvdXRCb3hbYXhpc10sIHRoaXMuY29uc3RyYWludHNbYXhpc10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc29sdmVSZWZDb25zdHJhaW50cygpIHtcbiAgICAgICAgY29uc3QgeyBkcmFnQ29uc3RyYWludHM6IGNvbnN0cmFpbnRzLCBvbk1lYXN1cmVEcmFnQ29uc3RyYWludHMgfSA9IHRoaXMuZ2V0UHJvcHMoKTtcbiAgICAgICAgaWYgKCFjb25zdHJhaW50cyB8fCAhaXNSZWZPYmplY3QoY29uc3RyYWludHMpKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBjb25zdHJhaW50c0VsZW1lbnQgPSBjb25zdHJhaW50cy5jdXJyZW50O1xuICAgICAgICBpbnZhcmlhbnQoY29uc3RyYWludHNFbGVtZW50ICE9PSBudWxsLCBcIklmIGBkcmFnQ29uc3RyYWludHNgIGlzIHNldCBhcyBhIFJlYWN0IHJlZiwgdGhhdCByZWYgbXVzdCBiZSBwYXNzZWQgdG8gYW5vdGhlciBjb21wb25lbnQncyBgcmVmYCBwcm9wLlwiLCBcImRyYWctY29uc3RyYWludHMtcmVmXCIpO1xuICAgICAgICBjb25zdCB7IHByb2plY3Rpb24gfSA9IHRoaXMudmlzdWFsRWxlbWVudDtcbiAgICAgICAgLy8gVE9ET1xuICAgICAgICBpZiAoIXByb2plY3Rpb24gfHwgIXByb2plY3Rpb24ubGF5b3V0KVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICBjb25zdCBjb25zdHJhaW50c0JveCA9IG1lYXN1cmVQYWdlQm94KGNvbnN0cmFpbnRzRWxlbWVudCwgcHJvamVjdGlvbi5yb290LCB0aGlzLnZpc3VhbEVsZW1lbnQuZ2V0VHJhbnNmb3JtUGFnZVBvaW50KCkpO1xuICAgICAgICBsZXQgbWVhc3VyZWRDb25zdHJhaW50cyA9IGNhbGNWaWV3cG9ydENvbnN0cmFpbnRzKHByb2plY3Rpb24ubGF5b3V0LmxheW91dEJveCwgY29uc3RyYWludHNCb3gpO1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhlcmUncyBhbiBvbk1lYXN1cmVEcmFnQ29uc3RyYWludHMgbGlzdGVuZXIgd2UgY2FsbCBpdCBhbmRcbiAgICAgICAgICogaWYgZGlmZmVyZW50IGNvbnN0cmFpbnRzIGFyZSByZXR1cm5lZCwgc2V0IGNvbnN0cmFpbnRzIHRvIHRoYXRcbiAgICAgICAgICovXG4gICAgICAgIGlmIChvbk1lYXN1cmVEcmFnQ29uc3RyYWludHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHVzZXJDb25zdHJhaW50cyA9IG9uTWVhc3VyZURyYWdDb25zdHJhaW50cyhjb252ZXJ0Qm94VG9Cb3VuZGluZ0JveChtZWFzdXJlZENvbnN0cmFpbnRzKSk7XG4gICAgICAgICAgICB0aGlzLmhhc011dGF0ZWRDb25zdHJhaW50cyA9ICEhdXNlckNvbnN0cmFpbnRzO1xuICAgICAgICAgICAgaWYgKHVzZXJDb25zdHJhaW50cykge1xuICAgICAgICAgICAgICAgIG1lYXN1cmVkQ29uc3RyYWludHMgPSBjb252ZXJ0Qm91bmRpbmdCb3hUb0JveCh1c2VyQ29uc3RyYWludHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtZWFzdXJlZENvbnN0cmFpbnRzO1xuICAgIH1cbiAgICBzdGFydEFuaW1hdGlvbih2ZWxvY2l0eSkge1xuICAgICAgICBjb25zdCB7IGRyYWcsIGRyYWdNb21lbnR1bSwgZHJhZ0VsYXN0aWMsIGRyYWdUcmFuc2l0aW9uLCBkcmFnU25hcFRvT3JpZ2luLCBvbkRyYWdUcmFuc2l0aW9uRW5kLCB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICBjb25zdCBjb25zdHJhaW50cyA9IHRoaXMuY29uc3RyYWludHMgfHwge307XG4gICAgICAgIGNvbnN0IG1vbWVudHVtQW5pbWF0aW9ucyA9IGVhY2hBeGlzKChheGlzKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXNob3VsZERyYWcoYXhpcywgZHJhZywgdGhpcy5jdXJyZW50RGlyZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCB0cmFuc2l0aW9uID0gKGNvbnN0cmFpbnRzICYmIGNvbnN0cmFpbnRzW2F4aXNdKSB8fCB7fTtcbiAgICAgICAgICAgIGlmIChkcmFnU25hcFRvT3JpZ2luKVxuICAgICAgICAgICAgICAgIHRyYW5zaXRpb24gPSB7IG1pbjogMCwgbWF4OiAwIH07XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE92ZXJkYW1wIHRoZSBib3VuZGFyeSBzcHJpbmcgaWYgYGRyYWdFbGFzdGljYCBpcyBkaXNhYmxlZC4gVGhlcmUncyBzdGlsbCBhIGZyYW1lXG4gICAgICAgICAgICAgKiBvZiBzcHJpbmcgYW5pbWF0aW9ucyBzbyB3ZSBzaG91bGQgbG9vayBpbnRvIGFkZGluZyBhIGRpc2FibGUgc3ByaW5nIG9wdGlvbiB0byBgaW5lcnRpYWAuXG4gICAgICAgICAgICAgKiBXZSBjb3VsZCBkbyBzb21ldGhpbmcgaGVyZSB3aGVyZSB3ZSBhZmZlY3QgdGhlIGBib3VuY2VTdGlmZm5lc3NgIGFuZCBgYm91bmNlRGFtcGluZ2BcbiAgICAgICAgICAgICAqIHVzaW5nIHRoZSB2YWx1ZSBvZiBgZHJhZ0VsYXN0aWNgLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBib3VuY2VTdGlmZm5lc3MgPSBkcmFnRWxhc3RpYyA/IDIwMCA6IDEwMDAwMDA7XG4gICAgICAgICAgICBjb25zdCBib3VuY2VEYW1waW5nID0gZHJhZ0VsYXN0aWMgPyA0MCA6IDEwMDAwMDAwO1xuICAgICAgICAgICAgY29uc3QgaW5lcnRpYSA9IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImluZXJ0aWFcIixcbiAgICAgICAgICAgICAgICB2ZWxvY2l0eTogZHJhZ01vbWVudHVtID8gdmVsb2NpdHlbYXhpc10gOiAwLFxuICAgICAgICAgICAgICAgIGJvdW5jZVN0aWZmbmVzcyxcbiAgICAgICAgICAgICAgICBib3VuY2VEYW1waW5nLFxuICAgICAgICAgICAgICAgIHRpbWVDb25zdGFudDogNzUwLFxuICAgICAgICAgICAgICAgIHJlc3REZWx0YTogMSxcbiAgICAgICAgICAgICAgICByZXN0U3BlZWQ6IDEwLFxuICAgICAgICAgICAgICAgIC4uLmRyYWdUcmFuc2l0aW9uLFxuICAgICAgICAgICAgICAgIC4uLnRyYW5zaXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gSWYgd2UncmUgbm90IGFuaW1hdGluZyBvbiBhbiBleHRlcm5hbGx5LXByb3ZpZGVkIGBNb3Rpb25WYWx1ZWAgd2UgY2FuIHVzZSB0aGVcbiAgICAgICAgICAgIC8vIGNvbXBvbmVudCdzIGFuaW1hdGlvbiBjb250cm9scyB3aGljaCB3aWxsIGhhbmRsZSBpbnRlcmFjdGlvbnMgd2l0aCB3aGlsZUhvdmVyIChldGMpLFxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIHdlIGp1c3QgaGF2ZSB0byBhbmltYXRlIHRoZSBgTW90aW9uVmFsdWVgIGl0c2VsZi5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0YXJ0QXhpc1ZhbHVlQW5pbWF0aW9uKGF4aXMsIGluZXJ0aWEpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gUnVuIGFsbCBhbmltYXRpb25zIGFuZCB0aGVuIHJlc29sdmUgdGhlIG5ldyBkcmFnIGNvbnN0cmFpbnRzLlxuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwobW9tZW50dW1BbmltYXRpb25zKS50aGVuKG9uRHJhZ1RyYW5zaXRpb25FbmQpO1xuICAgIH1cbiAgICBzdGFydEF4aXNWYWx1ZUFuaW1hdGlvbihheGlzLCB0cmFuc2l0aW9uKSB7XG4gICAgICAgIGNvbnN0IGF4aXNWYWx1ZSA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO1xuICAgICAgICBhZGRWYWx1ZVRvV2lsbENoYW5nZSh0aGlzLnZpc3VhbEVsZW1lbnQsIGF4aXMpO1xuICAgICAgICByZXR1cm4gYXhpc1ZhbHVlLnN0YXJ0KGFuaW1hdGVNb3Rpb25WYWx1ZShheGlzLCBheGlzVmFsdWUsIDAsIHRyYW5zaXRpb24sIHRoaXMudmlzdWFsRWxlbWVudCwgZmFsc2UpKTtcbiAgICB9XG4gICAgc3RvcEFuaW1hdGlvbigpIHtcbiAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpLnN0b3AoKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERyYWcgd29ya3MgZGlmZmVyZW50bHkgZGVwZW5kaW5nIG9uIHdoaWNoIHByb3BzIGFyZSBwcm92aWRlZC5cbiAgICAgKlxuICAgICAqIC0gSWYgX2RyYWdYIGFuZCBfZHJhZ1kgYXJlIHByb3ZpZGVkLCB3ZSBvdXRwdXQgdGhlIGdlc3R1cmUgZGVsdGEgZGlyZWN0bHkgdG8gdGhvc2UgbW90aW9uIHZhbHVlcy5cbiAgICAgKiAtIE90aGVyd2lzZSwgd2UgYXBwbHkgdGhlIGRlbHRhIHRvIHRoZSB4L3kgbW90aW9uIHZhbHVlcy5cbiAgICAgKi9cbiAgICBnZXRBeGlzTW90aW9uVmFsdWUoYXhpcykge1xuICAgICAgICBjb25zdCBkcmFnS2V5ID0gYF9kcmFnJHtheGlzLnRvVXBwZXJDYXNlKCl9YDtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLnZpc3VhbEVsZW1lbnQuZ2V0UHJvcHMoKTtcbiAgICAgICAgY29uc3QgZXh0ZXJuYWxNb3Rpb25WYWx1ZSA9IHByb3BzW2RyYWdLZXldO1xuICAgICAgICByZXR1cm4gZXh0ZXJuYWxNb3Rpb25WYWx1ZVxuICAgICAgICAgICAgPyBleHRlcm5hbE1vdGlvblZhbHVlXG4gICAgICAgICAgICA6IHRoaXMudmlzdWFsRWxlbWVudC5nZXRWYWx1ZShheGlzLCAocHJvcHMuaW5pdGlhbFxuICAgICAgICAgICAgICAgID8gcHJvcHMuaW5pdGlhbFtheGlzXVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkKSB8fCAwKTtcbiAgICB9XG4gICAgc25hcFRvQ3Vyc29yKHBvaW50KSB7XG4gICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGRyYWcgfSA9IHRoaXMuZ2V0UHJvcHMoKTtcbiAgICAgICAgICAgIC8vIElmIHdlJ3JlIG5vdCBkcmFnZ2luZyB0aGlzIGF4aXMsIGRvIGFuIGVhcmx5IHJldHVybi5cbiAgICAgICAgICAgIGlmICghc2hvdWxkRHJhZyhheGlzLCBkcmFnLCB0aGlzLmN1cnJlbnREaXJlY3Rpb24pKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgYXhpc1ZhbHVlID0gdGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoYXhpcyk7XG4gICAgICAgICAgICBpZiAocHJvamVjdGlvbiAmJiBwcm9qZWN0aW9uLmxheW91dCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgbWluLCBtYXggfSA9IHByb2plY3Rpb24ubGF5b3V0LmxheW91dEJveFtheGlzXTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBUaGUgbGF5b3V0IG1lYXN1cmVtZW50IGluY2x1ZGVzIHRoZSBjdXJyZW50IHRyYW5zZm9ybSB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgKiBzbyB3ZSBuZWVkIHRvIGFkZCBpdCBiYWNrIHRvIGdldCB0aGUgY29ycmVjdCBzbmFwIHBvc2l0aW9uLlxuICAgICAgICAgICAgICAgICAqIFRoaXMgZml4ZXMgYW4gaXNzdWUgd2hlcmUgZWxlbWVudHMgd2l0aCBpbml0aWFsIGNvb3JkaW5hdGVzXG4gICAgICAgICAgICAgICAgICogd291bGQgc25hcCB0byB0aGUgd3JvbmcgcG9zaXRpb24gb24gdGhlIGZpcnN0IGRyYWcuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IGF4aXNWYWx1ZS5nZXQoKSB8fCAwO1xuICAgICAgICAgICAgICAgIGF4aXNWYWx1ZS5zZXQocG9pbnRbYXhpc10gLSBtaXhOdW1iZXIobWluLCBtYXgsIDAuNSkgKyBjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdoZW4gdGhlIHZpZXdwb3J0IHJlc2l6ZXMgd2Ugd2FudCB0byBjaGVjayBpZiB0aGUgbWVhc3VyZWQgY29uc3RyYWludHNcbiAgICAgKiBoYXZlIGNoYW5nZWQgYW5kLCBpZiBzbywgcmVwb3NpdGlvbiB0aGUgZWxlbWVudCB3aXRoaW4gdGhvc2UgbmV3IGNvbnN0cmFpbnRzXG4gICAgICogcmVsYXRpdmUgdG8gd2hlcmUgaXQgd2FzIGJlZm9yZSB0aGUgcmVzaXplLlxuICAgICAqL1xuICAgIHNjYWxlUG9zaXRpb25XaXRoaW5Db25zdHJhaW50cygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZpc3VhbEVsZW1lbnQuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyBkcmFnLCBkcmFnQ29uc3RyYWludHMgfSA9IHRoaXMuZ2V0UHJvcHMoKTtcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB0aGlzLnZpc3VhbEVsZW1lbnQ7XG4gICAgICAgIGlmICghaXNSZWZPYmplY3QoZHJhZ0NvbnN0cmFpbnRzKSB8fCAhcHJvamVjdGlvbiB8fCAhdGhpcy5jb25zdHJhaW50cylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFN0b3AgY3VycmVudCBhbmltYXRpb25zIGFzIHRoZXJlIGNhbiBiZSB2aXN1YWwgZ2xpdGNoaW5nIGlmIHdlIHRyeSB0byBkb1xuICAgICAgICAgKiB0aGlzIG1pZC1hbmltYXRpb25cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogUmVjb3JkIHRoZSByZWxhdGl2ZSBwb3NpdGlvbiBvZiB0aGUgZHJhZ2dlZCBlbGVtZW50IHJlbGF0aXZlIHRvIHRoZVxuICAgICAgICAgKiBjb25zdHJhaW50cyBib3ggYW5kIHNhdmUgYXMgYSBwcm9ncmVzcyB2YWx1ZS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGJveFByb2dyZXNzID0geyB4OiAwLCB5OiAwIH07XG4gICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBheGlzVmFsdWUgPSB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKTtcbiAgICAgICAgICAgIGlmIChheGlzVmFsdWUgJiYgdGhpcy5jb25zdHJhaW50cyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXRlc3QgPSBheGlzVmFsdWUuZ2V0KCk7XG4gICAgICAgICAgICAgICAgYm94UHJvZ3Jlc3NbYXhpc10gPSBjYWxjT3JpZ2luKHsgbWluOiBsYXRlc3QsIG1heDogbGF0ZXN0IH0sIHRoaXMuY29uc3RyYWludHNbYXhpc10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVwZGF0ZSB0aGUgbGF5b3V0IG9mIHRoaXMgZWxlbWVudCBhbmQgcmVzb2x2ZSB0aGUgbGF0ZXN0IGRyYWcgY29uc3RyYWludHNcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHsgdHJhbnNmb3JtVGVtcGxhdGUgfSA9IHRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO1xuICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQuY3VycmVudC5zdHlsZS50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1UZW1wbGF0ZVxuICAgICAgICAgICAgPyB0cmFuc2Zvcm1UZW1wbGF0ZSh7fSwgXCJcIilcbiAgICAgICAgICAgIDogXCJub25lXCI7XG4gICAgICAgIHByb2plY3Rpb24ucm9vdCAmJiBwcm9qZWN0aW9uLnJvb3QudXBkYXRlU2Nyb2xsKCk7XG4gICAgICAgIHByb2plY3Rpb24udXBkYXRlTGF5b3V0KCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZXNldCBjb25zdHJhaW50cyBzbyByZXNvbHZlQ29uc3RyYWludHMoKSB3aWxsIHJlY2FsY3VsYXRlIHRoZW1cbiAgICAgICAgICogd2l0aCB0aGUgZnJlc2hseSBtZWFzdXJlZCBsYXlvdXQgcmF0aGVyIHRoYW4gcmV0dXJuaW5nIHRoZSBjYWNoZWQgdmFsdWUuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNvbnN0cmFpbnRzID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVzb2x2ZUNvbnN0cmFpbnRzKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGb3IgZWFjaCBheGlzLCBjYWxjdWxhdGUgdGhlIGN1cnJlbnQgcHJvZ3Jlc3Mgb2YgdGhlIGxheW91dCBheGlzXG4gICAgICAgICAqIHdpdGhpbiB0aGUgbmV3IGNvbnN0cmFpbnRzLlxuICAgICAgICAgKi9cbiAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgIGlmICghc2hvdWxkRHJhZyhheGlzLCBkcmFnLCBudWxsKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIENhbGN1bGF0ZSBhIG5ldyB0cmFuc2Zvcm0gYmFzZWQgb24gdGhlIHByZXZpb3VzIGJveCBwcm9ncmVzc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBheGlzVmFsdWUgPSB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKTtcbiAgICAgICAgICAgIGNvbnN0IHsgbWluLCBtYXggfSA9IHRoaXMuY29uc3RyYWludHNbYXhpc107XG4gICAgICAgICAgICBheGlzVmFsdWUuc2V0KG1peE51bWJlcihtaW4sIG1heCwgYm94UHJvZ3Jlc3NbYXhpc10pKTtcbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGbHVzaCB0aGUgdXBkYXRlZCB0cmFuc2Zvcm0gdG8gdGhlIERPTSBzeW5jaHJvbm91c2x5IHRvIHByZXZlbnRcbiAgICAgICAgICogYSB2aXN1YWwgZmxhc2ggYXQgdGhlIGVsZW1lbnQncyBDU1MgbGF5b3V0IHBvc2l0aW9uICgwLDApIHdoZW5cbiAgICAgICAgICogdGhlIHRyYW5zZm9ybSB3YXMgc3RyaXBwZWQgZm9yIG1lYXN1cmVtZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy52aXN1YWxFbGVtZW50LnJlbmRlcigpO1xuICAgIH1cbiAgICBhZGRMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGlmICghdGhpcy52aXN1YWxFbGVtZW50LmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGVsZW1lbnREcmFnQ29udHJvbHMuc2V0KHRoaXMudmlzdWFsRWxlbWVudCwgdGhpcyk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnZpc3VhbEVsZW1lbnQuY3VycmVudDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEF0dGFjaCBhIHBvaW50ZXJkb3duIGV2ZW50IGxpc3RlbmVyIG9uIHRoaXMgRE9NIGVsZW1lbnQgdG8gaW5pdGlhdGUgZHJhZyB0cmFja2luZy5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHN0b3BQb2ludGVyTGlzdGVuZXIgPSBhZGRQb2ludGVyRXZlbnQoZWxlbWVudCwgXCJwb2ludGVyZG93blwiLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZywgZHJhZ0xpc3RlbmVyID0gdHJ1ZSB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBPbmx5IGJsb2NrIGRyYWcgaWYgY2xpY2tpbmcgb24gYSB0ZXh0IGlucHV0IGNoaWxkIGVsZW1lbnRcbiAgICAgICAgICAgICAqIChpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgY29udGVudGVkaXRhYmxlKSB3aGVyZSB1c2VycyBtaWdodFxuICAgICAgICAgICAgICogd2FudCB0byBzZWxlY3QgdGV4dCBvciBpbnRlcmFjdCB3aXRoIHRoZSBjb250cm9sLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIEJ1dHRvbnMgYW5kIGxpbmtzIGRvbid0IGJsb2NrIGRyYWcgc2luY2UgdGhleSBkb24ndCBoYXZlXG4gICAgICAgICAgICAgKiBjbGljay1hbmQtbW92ZSBhY3Rpb25zIG9mIHRoZWlyIG93bi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgaXNDbGlja2luZ1RleHRJbnB1dENoaWxkID0gdGFyZ2V0ICE9PSBlbGVtZW50ICYmIGlzRWxlbWVudFRleHRJbnB1dCh0YXJnZXQpO1xuICAgICAgICAgICAgaWYgKGRyYWcgJiYgZHJhZ0xpc3RlbmVyICYmICFpc0NsaWNraW5nVGV4dElucHV0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0KGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB1c2luZyByZWYtYmFzZWQgY29uc3RyYWludHMsIG9ic2VydmUgYm90aCB0aGUgZHJhZ2dhYmxlIGVsZW1lbnRcbiAgICAgICAgICogYW5kIHRoZSBjb25zdHJhaW50IGNvbnRhaW5lciBmb3Igc2l6ZSBjaGFuZ2VzIHZpYSBSZXNpemVPYnNlcnZlci5cbiAgICAgICAgICogU2V0dXAgaXMgZGVmZXJyZWQgYmVjYXVzZSBkcmFnQ29uc3RyYWludHMuY3VycmVudCBpcyBudWxsIHdoZW5cbiAgICAgICAgICogYWRkTGlzdGVuZXJzIGZpcnN0IHJ1bnMgKFJlYWN0IGhhc24ndCBjb21taXR0ZWQgdGhlIHJlZiB5ZXQpLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IHN0b3BSZXNpemVPYnNlcnZlcnM7XG4gICAgICAgIGNvbnN0IG1lYXN1cmVEcmFnQ29uc3RyYWludHMgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGRyYWdDb25zdHJhaW50cyB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICAgICAgaWYgKGlzUmVmT2JqZWN0KGRyYWdDb25zdHJhaW50cykgJiYgZHJhZ0NvbnN0cmFpbnRzLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN0cmFpbnRzID0gdGhpcy5yZXNvbHZlUmVmQ29uc3RyYWludHMoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXN0b3BSZXNpemVPYnNlcnZlcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcFJlc2l6ZU9ic2VydmVycyA9IHN0YXJ0UmVzaXplT2JzZXJ2ZXJzKGVsZW1lbnQsIGRyYWdDb25zdHJhaW50cy5jdXJyZW50LCAoKSA9PiB0aGlzLnNjYWxlUG9zaXRpb25XaXRoaW5Db25zdHJhaW50cygpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xuICAgICAgICBjb25zdCBzdG9wTWVhc3VyZUxheW91dExpc3RlbmVyID0gcHJvamVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFwibWVhc3VyZVwiLCBtZWFzdXJlRHJhZ0NvbnN0cmFpbnRzKTtcbiAgICAgICAgaWYgKHByb2plY3Rpb24gJiYgIXByb2plY3Rpb24ubGF5b3V0KSB7XG4gICAgICAgICAgICBwcm9qZWN0aW9uLnJvb3QgJiYgcHJvamVjdGlvbi5yb290LnVwZGF0ZVNjcm9sbCgpO1xuICAgICAgICAgICAgcHJvamVjdGlvbi51cGRhdGVMYXlvdXQoKTtcbiAgICAgICAgfVxuICAgICAgICBmcmFtZS5yZWFkKG1lYXN1cmVEcmFnQ29uc3RyYWludHMpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQXR0YWNoIGEgd2luZG93IHJlc2l6ZSBsaXN0ZW5lciB0byBzY2FsZSB0aGUgZHJhZ2dhYmxlIHRhcmdldCB3aXRoaW4gaXRzIGRlZmluZWRcbiAgICAgICAgICogY29uc3RyYWludHMgYXMgdGhlIHdpbmRvdyByZXNpemVzLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgc3RvcFJlc2l6ZUxpc3RlbmVyID0gYWRkRG9tRXZlbnQod2luZG93LCBcInJlc2l6ZVwiLCAoKSA9PiB0aGlzLnNjYWxlUG9zaXRpb25XaXRoaW5Db25zdHJhaW50cygpKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHRoZSBlbGVtZW50J3MgbGF5b3V0IGNoYW5nZXMsIGNhbGN1bGF0ZSB0aGUgZGVsdGEgYW5kIGFwcGx5IHRoYXQgdG9cbiAgICAgICAgICogdGhlIGRyYWcgZ2VzdHVyZSdzIG9yaWdpbiBwb2ludC5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHN0b3BMYXlvdXRVcGRhdGVMaXN0ZW5lciA9IHByb2plY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcihcImRpZFVwZGF0ZVwiLCAoKHsgZGVsdGEsIGhhc0xheW91dENoYW5nZWQgfSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNEcmFnZ2luZyAmJiBoYXNMYXlvdXRDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW90aW9uVmFsdWUgPSB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtb3Rpb25WYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcmlnaW5Qb2ludFtheGlzXSArPSBkZWx0YVtheGlzXS50cmFuc2xhdGU7XG4gICAgICAgICAgICAgICAgICAgIG1vdGlvblZhbHVlLnNldChtb3Rpb25WYWx1ZS5nZXQoKSArIGRlbHRhW2F4aXNdLnRyYW5zbGF0ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy52aXN1YWxFbGVtZW50LnJlbmRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzdG9wUmVzaXplTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHN0b3BQb2ludGVyTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHN0b3BNZWFzdXJlTGF5b3V0TGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHN0b3BMYXlvdXRVcGRhdGVMaXN0ZW5lciAmJiBzdG9wTGF5b3V0VXBkYXRlTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHN0b3BSZXNpemVPYnNlcnZlcnMgJiYgc3RvcFJlc2l6ZU9ic2VydmVycygpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICBnZXRQcm9wcygpIHtcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLnZpc3VhbEVsZW1lbnQuZ2V0UHJvcHMoKTtcbiAgICAgICAgY29uc3QgeyBkcmFnID0gZmFsc2UsIGRyYWdEaXJlY3Rpb25Mb2NrID0gZmFsc2UsIGRyYWdQcm9wYWdhdGlvbiA9IGZhbHNlLCBkcmFnQ29uc3RyYWludHMgPSBmYWxzZSwgZHJhZ0VsYXN0aWMgPSBkZWZhdWx0RWxhc3RpYywgZHJhZ01vbWVudHVtID0gdHJ1ZSwgfSA9IHByb3BzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICBkcmFnLFxuICAgICAgICAgICAgZHJhZ0RpcmVjdGlvbkxvY2ssXG4gICAgICAgICAgICBkcmFnUHJvcGFnYXRpb24sXG4gICAgICAgICAgICBkcmFnQ29uc3RyYWludHMsXG4gICAgICAgICAgICBkcmFnRWxhc3RpYyxcbiAgICAgICAgICAgIGRyYWdNb21lbnR1bSxcbiAgICAgICAgfTtcbiAgICB9XG59XG5mdW5jdGlvbiBza2lwRmlyc3RDYWxsKGNhbGxiYWNrKSB7XG4gICAgbGV0IGlzRmlyc3QgPSB0cnVlO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChpc0ZpcnN0KSB7XG4gICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gc3RhcnRSZXNpemVPYnNlcnZlcnMoZWxlbWVudCwgY29uc3RyYWludHNFbGVtZW50LCBvblJlc2l6ZSkge1xuICAgIGNvbnN0IHN0b3BFbGVtZW50ID0gcmVzaXplKGVsZW1lbnQsIHNraXBGaXJzdENhbGwob25SZXNpemUpKTtcbiAgICBjb25zdCBzdG9wQ29udGFpbmVyID0gcmVzaXplKGNvbnN0cmFpbnRzRWxlbWVudCwgc2tpcEZpcnN0Q2FsbChvblJlc2l6ZSkpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHN0b3BFbGVtZW50KCk7XG4gICAgICAgIHN0b3BDb250YWluZXIoKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gc2hvdWxkRHJhZyhkaXJlY3Rpb24sIGRyYWcsIGN1cnJlbnREaXJlY3Rpb24pIHtcbiAgICByZXR1cm4gKChkcmFnID09PSB0cnVlIHx8IGRyYWcgPT09IGRpcmVjdGlvbikgJiZcbiAgICAgICAgKGN1cnJlbnREaXJlY3Rpb24gPT09IG51bGwgfHwgY3VycmVudERpcmVjdGlvbiA9PT0gZGlyZWN0aW9uKSk7XG59XG4vKipcbiAqIEJhc2VkIG9uIGFuIHgveSBvZmZzZXQgZGV0ZXJtaW5lIHRoZSBjdXJyZW50IGRyYWcgZGlyZWN0aW9uLiBJZiBib3RoIGF4aXMnIG9mZnNldHMgYXJlIGxvd2VyXG4gKiB0aGFuIHRoZSBwcm92aWRlZCB0aHJlc2hvbGQsIHJldHVybiBgbnVsbGAuXG4gKlxuICogQHBhcmFtIG9mZnNldCAtIFRoZSB4L3kgb2Zmc2V0IGZyb20gb3JpZ2luLlxuICogQHBhcmFtIGxvY2tUaHJlc2hvbGQgLSAoT3B0aW9uYWwpIC0gdGhlIG1pbmltdW0gYWJzb2x1dGUgb2Zmc2V0IGJlZm9yZSB3ZSBjYW4gZGV0ZXJtaW5lIGEgZHJhZyBkaXJlY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGdldEN1cnJlbnREaXJlY3Rpb24ob2Zmc2V0LCBsb2NrVGhyZXNob2xkID0gMTApIHtcbiAgICBsZXQgZGlyZWN0aW9uID0gbnVsbDtcbiAgICBpZiAoTWF0aC5hYnMob2Zmc2V0LnkpID4gbG9ja1RocmVzaG9sZCkge1xuICAgICAgICBkaXJlY3Rpb24gPSBcInlcIjtcbiAgICB9XG4gICAgZWxzZSBpZiAoTWF0aC5hYnMob2Zmc2V0LngpID4gbG9ja1RocmVzaG9sZCkge1xuICAgICAgICBkaXJlY3Rpb24gPSBcInhcIjtcbiAgICB9XG4gICAgcmV0dXJuIGRpcmVjdGlvbjtcbn1cblxuZXhwb3J0IHsgVmlzdWFsRWxlbWVudERyYWdDb250cm9scywgZWxlbWVudERyYWdDb250cm9scyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VmlzdWFsRWxlbWVudERyYWdDb250cm9scy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/drag/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 */ DragGesture: () => (/* binding */ DragGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _VisualElementDragControls_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VisualElementDragControls.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs\");\n\n\n\n\nclass DragGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor(node) {\n super(node);\n this.removeGroupControls = motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\n this.removeListeners = motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\n this.controls = new _VisualElementDragControls_mjs__WEBPACK_IMPORTED_MODULE_2__.VisualElementDragControls(node);\n }\n mount() {\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n const { dragControls } = this.node.getProps();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n this.removeListeners = this.controls.addListeners() || motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\n }\n update() {\n const { dragControls } = this.node.getProps();\n const { dragControls: prevDragControls } = this.node.prevProps || {};\n if (dragControls !== prevDragControls) {\n this.removeGroupControls();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n }\n }\n unmount() {\n this.removeGroupControls();\n this.removeListeners();\n /**\n * In React 19, during list reorder reconciliation, components may\n * briefly unmount and remount while the drag is still active. If we're\n * actively dragging, we should NOT end the pan session - it will\n * continue tracking pointer events via its window-level listeners.\n *\n * The pan session will be properly cleaned up when:\n * 1. The drag ends naturally (pointerup/pointercancel)\n * 2. The component is truly removed from the DOM\n */\n if (!this.controls.isDragging) {\n this.controls.endPanSession();\n }\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBcUM7QUFDRDtBQUN3Qzs7QUFFNUUsMEJBQTBCLCtDQUFPO0FBQ2pDO0FBQ0E7QUFDQSxtQ0FBbUMsOENBQUk7QUFDdkMsK0JBQStCLDhDQUFJO0FBQ25DLDRCQUE0QixxRkFBeUI7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsZUFBZTtBQUMvQjtBQUNBO0FBQ0E7QUFDQSwrREFBK0QsOENBQUk7QUFDbkU7QUFDQTtBQUNBLGdCQUFnQixlQUFlO0FBQy9CLGdCQUFnQixpQ0FBaUM7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9nZXN0dXJlcy9kcmFnL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IFZpc3VhbEVsZW1lbnREcmFnQ29udHJvbHMgfSBmcm9tICcuL1Zpc3VhbEVsZW1lbnREcmFnQ29udHJvbHMubWpzJztcblxuY2xhc3MgRHJhZ0dlc3R1cmUgZXh0ZW5kcyBGZWF0dXJlIHtcbiAgICBjb25zdHJ1Y3Rvcihub2RlKSB7XG4gICAgICAgIHN1cGVyKG5vZGUpO1xuICAgICAgICB0aGlzLnJlbW92ZUdyb3VwQ29udHJvbHMgPSBub29wO1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycyA9IG5vb3A7XG4gICAgICAgIHRoaXMuY29udHJvbHMgPSBuZXcgVmlzdWFsRWxlbWVudERyYWdDb250cm9scyhub2RlKTtcbiAgICB9XG4gICAgbW91bnQoKSB7XG4gICAgICAgIC8vIElmIHdlJ3ZlIGJlZW4gcHJvdmlkZWQgYSBEcmFnQ29udHJvbHMgZm9yIG1hbnVhbCBjb250cm9sIG92ZXIgdGhlIGRyYWcgZ2VzdHVyZSxcbiAgICAgICAgLy8gc3Vic2NyaWJlIHRoaXMgY29tcG9uZW50IHRvIGl0IG9uIG1vdW50LlxuICAgICAgICBjb25zdCB7IGRyYWdDb250cm9scyB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XG4gICAgICAgIGlmIChkcmFnQ29udHJvbHMpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlR3JvdXBDb250cm9scyA9IGRyYWdDb250cm9scy5zdWJzY3JpYmUodGhpcy5jb250cm9scyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMgPSB0aGlzLmNvbnRyb2xzLmFkZExpc3RlbmVycygpIHx8IG5vb3A7XG4gICAgfVxuICAgIHVwZGF0ZSgpIHtcbiAgICAgICAgY29uc3QgeyBkcmFnQ29udHJvbHMgfSA9IHRoaXMubm9kZS5nZXRQcm9wcygpO1xuICAgICAgICBjb25zdCB7IGRyYWdDb250cm9sczogcHJldkRyYWdDb250cm9scyB9ID0gdGhpcy5ub2RlLnByZXZQcm9wcyB8fCB7fTtcbiAgICAgICAgaWYgKGRyYWdDb250cm9scyAhPT0gcHJldkRyYWdDb250cm9scykge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVHcm91cENvbnRyb2xzKCk7XG4gICAgICAgICAgICBpZiAoZHJhZ0NvbnRyb2xzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVHcm91cENvbnRyb2xzID0gZHJhZ0NvbnRyb2xzLnN1YnNjcmliZSh0aGlzLmNvbnRyb2xzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB1bm1vdW50KCkge1xuICAgICAgICB0aGlzLnJlbW92ZUdyb3VwQ29udHJvbHMoKTtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEluIFJlYWN0IDE5LCBkdXJpbmcgbGlzdCByZW9yZGVyIHJlY29uY2lsaWF0aW9uLCBjb21wb25lbnRzIG1heVxuICAgICAgICAgKiBicmllZmx5IHVubW91bnQgYW5kIHJlbW91bnQgd2hpbGUgdGhlIGRyYWcgaXMgc3RpbGwgYWN0aXZlLiBJZiB3ZSdyZVxuICAgICAgICAgKiBhY3RpdmVseSBkcmFnZ2luZywgd2Ugc2hvdWxkIE5PVCBlbmQgdGhlIHBhbiBzZXNzaW9uIC0gaXQgd2lsbFxuICAgICAgICAgKiBjb250aW51ZSB0cmFja2luZyBwb2ludGVyIGV2ZW50cyB2aWEgaXRzIHdpbmRvdy1sZXZlbCBsaXN0ZW5lcnMuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoZSBwYW4gc2Vzc2lvbiB3aWxsIGJlIHByb3Blcmx5IGNsZWFuZWQgdXAgd2hlbjpcbiAgICAgICAgICogMS4gVGhlIGRyYWcgZW5kcyBuYXR1cmFsbHkgKHBvaW50ZXJ1cC9wb2ludGVyY2FuY2VsKVxuICAgICAgICAgKiAyLiBUaGUgY29tcG9uZW50IGlzIHRydWx5IHJlbW92ZWQgZnJvbSB0aGUgRE9NXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIXRoaXMuY29udHJvbHMuaXNEcmFnZ2luZykge1xuICAgICAgICAgICAgdGhpcy5jb250cm9scy5lbmRQYW5TZXNzaW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCB7IERyYWdHZXN0dXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.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 */ applyConstraints: () => (/* binding */ applyConstraints),\n/* harmony export */ calcOrigin: () => (/* binding */ calcOrigin),\n/* harmony export */ calcRelativeAxisConstraints: () => (/* binding */ calcRelativeAxisConstraints),\n/* harmony export */ calcRelativeConstraints: () => (/* binding */ calcRelativeConstraints),\n/* harmony export */ calcViewportAxisConstraints: () => (/* binding */ calcViewportAxisConstraints),\n/* harmony export */ calcViewportConstraints: () => (/* binding */ calcViewportConstraints),\n/* harmony export */ defaultElastic: () => (/* binding */ defaultElastic),\n/* harmony export */ rebaseAxisConstraints: () => (/* binding */ rebaseAxisConstraints),\n/* harmony export */ resolveAxisElastic: () => (/* binding */ resolveAxisElastic),\n/* harmony export */ resolveDragElastic: () => (/* binding */ resolveDragElastic),\n/* harmony export */ resolvePointElastic: () => (/* binding */ resolvePointElastic)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n\n\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic\n ? (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(min, point, elastic.min)\n : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic\n ? (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(max, point, elastic.max)\n : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.calcLength)(source);\n const targetLength = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.calcLength)(target);\n if (targetLength > sourceLength) {\n origin = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.progress)(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.progress)(source.min, source.max - targetLength, target.min);\n }\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\n\n//# sourceMappingURL=constraints.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvdXRpbHMvY29uc3RyYWludHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFtRDtBQUNKOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLFVBQVU7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsY0FBYyxxREFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxxREFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsMEJBQTBCO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsc0RBQVU7QUFDbkMseUJBQXlCLHNEQUFVO0FBQ25DO0FBQ0EsaUJBQWlCLHNEQUFRO0FBQ3pCO0FBQ0E7QUFDQSxpQkFBaUIsc0RBQVE7QUFDekI7QUFDQSxXQUFXLG1EQUFLO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXdQO0FBQ3hQIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9nZXN0dXJlcy9kcmFnL3V0aWxzL2NvbnN0cmFpbnRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaXhOdW1iZXIsIGNhbGNMZW5ndGggfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IHByb2dyZXNzLCBjbGFtcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5cbi8qKlxuICogQXBwbHkgY29uc3RyYWludHMgdG8gYSBwb2ludC4gVGhlc2UgY29uc3RyYWludHMgYXJlIGJvdGggcGh5c2ljYWwgYWxvbmcgYW5cbiAqIGF4aXMsIGFuZCBhbiBlbGFzdGljIGZhY3RvciB0aGF0IGRldGVybWluZXMgaG93IG11Y2ggdG8gY29uc3RyYWluIHRoZSBwb2ludFxuICogYnkgaWYgaXQgZG9lcyBsaWUgb3V0c2lkZSB0aGUgZGVmaW5lZCBwYXJhbWV0ZXJzLlxuICovXG5mdW5jdGlvbiBhcHBseUNvbnN0cmFpbnRzKHBvaW50LCB7IG1pbiwgbWF4IH0sIGVsYXN0aWMpIHtcbiAgICBpZiAobWluICE9PSB1bmRlZmluZWQgJiYgcG9pbnQgPCBtaW4pIHtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIG1pbiBwb2ludCBkZWZpbmVkLCBhbmQgdGhpcyBpcyBvdXRzaWRlIG9mIHRoYXQsIGNvbnN0cmFpblxuICAgICAgICBwb2ludCA9IGVsYXN0aWNcbiAgICAgICAgICAgID8gbWl4TnVtYmVyKG1pbiwgcG9pbnQsIGVsYXN0aWMubWluKVxuICAgICAgICAgICAgOiBNYXRoLm1heChwb2ludCwgbWluKTtcbiAgICB9XG4gICAgZWxzZSBpZiAobWF4ICE9PSB1bmRlZmluZWQgJiYgcG9pbnQgPiBtYXgpIHtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIG1heCBwb2ludCBkZWZpbmVkLCBhbmQgdGhpcyBpcyBvdXRzaWRlIG9mIHRoYXQsIGNvbnN0cmFpblxuICAgICAgICBwb2ludCA9IGVsYXN0aWNcbiAgICAgICAgICAgID8gbWl4TnVtYmVyKG1heCwgcG9pbnQsIGVsYXN0aWMubWF4KVxuICAgICAgICAgICAgOiBNYXRoLm1pbihwb2ludCwgbWF4KTtcbiAgICB9XG4gICAgcmV0dXJuIHBvaW50O1xufVxuLyoqXG4gKiBDYWxjdWxhdGUgY29uc3RyYWludHMgaW4gdGVybXMgb2YgdGhlIHZpZXdwb3J0IHdoZW4gZGVmaW5lZCByZWxhdGl2ZWx5IHRvIHRoZVxuICogbWVhc3VyZWQgYXhpcy4gVGhpcyBpcyBtZWFzdXJlZCBmcm9tIHRoZSBuZWFyZXN0IGVkZ2UsIHNvIGEgbWF4IGNvbnN0cmFpbnQgb2YgMjAwXG4gKiBvbiBhbiBheGlzIHdpdGggYSBtYXggdmFsdWUgb2YgMzAwIHdvdWxkIHJldHVybiBhIGNvbnN0cmFpbnQgb2YgNTAwIC0gYXhpcyBsZW5ndGhcbiAqL1xuZnVuY3Rpb24gY2FsY1JlbGF0aXZlQXhpc0NvbnN0cmFpbnRzKGF4aXMsIG1pbiwgbWF4KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWluOiBtaW4gIT09IHVuZGVmaW5lZCA/IGF4aXMubWluICsgbWluIDogdW5kZWZpbmVkLFxuICAgICAgICBtYXg6IG1heCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IGF4aXMubWF4ICsgbWF4IC0gKGF4aXMubWF4IC0gYXhpcy5taW4pXG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xufVxuLyoqXG4gKiBDYWxjdWxhdGUgY29uc3RyYWludHMgaW4gdGVybXMgb2YgdGhlIHZpZXdwb3J0IHdoZW5cbiAqIGRlZmluZWQgcmVsYXRpdmVseSB0byB0aGUgbWVhc3VyZWQgYm91bmRpbmcgYm94LlxuICovXG5mdW5jdGlvbiBjYWxjUmVsYXRpdmVDb25zdHJhaW50cyhsYXlvdXRCb3gsIHsgdG9wLCBsZWZ0LCBib3R0b20sIHJpZ2h0IH0pIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB4OiBjYWxjUmVsYXRpdmVBeGlzQ29uc3RyYWludHMobGF5b3V0Qm94LngsIGxlZnQsIHJpZ2h0KSxcbiAgICAgICAgeTogY2FsY1JlbGF0aXZlQXhpc0NvbnN0cmFpbnRzKGxheW91dEJveC55LCB0b3AsIGJvdHRvbSksXG4gICAgfTtcbn1cbi8qKlxuICogQ2FsY3VsYXRlIHZpZXdwb3J0IGNvbnN0cmFpbnRzIHdoZW4gZGVmaW5lZCBhcyBhbm90aGVyIHZpZXdwb3J0LXJlbGF0aXZlIGF4aXNcbiAqL1xuZnVuY3Rpb24gY2FsY1ZpZXdwb3J0QXhpc0NvbnN0cmFpbnRzKGxheW91dEF4aXMsIGNvbnN0cmFpbnRzQXhpcykge1xuICAgIGxldCBtaW4gPSBjb25zdHJhaW50c0F4aXMubWluIC0gbGF5b3V0QXhpcy5taW47XG4gICAgbGV0IG1heCA9IGNvbnN0cmFpbnRzQXhpcy5tYXggLSBsYXlvdXRBeGlzLm1heDtcbiAgICAvLyBJZiB0aGUgY29uc3RyYWludHMgYXhpcyBpcyBhY3R1YWxseSBzbWFsbGVyIHRoYW4gdGhlIGxheW91dCBheGlzIHRoZW4gd2UgY2FuXG4gICAgLy8gZmxpcCB0aGUgY29uc3RyYWludHNcbiAgICBpZiAoY29uc3RyYWludHNBeGlzLm1heCAtIGNvbnN0cmFpbnRzQXhpcy5taW4gPFxuICAgICAgICBsYXlvdXRBeGlzLm1heCAtIGxheW91dEF4aXMubWluKSB7XG4gICAgICAgIFttaW4sIG1heF0gPSBbbWF4LCBtaW5dO1xuICAgIH1cbiAgICByZXR1cm4geyBtaW4sIG1heCB9O1xufVxuLyoqXG4gKiBDYWxjdWxhdGUgdmlld3BvcnQgY29uc3RyYWludHMgd2hlbiBkZWZpbmVkIGFzIGFub3RoZXIgdmlld3BvcnQtcmVsYXRpdmUgYm94XG4gKi9cbmZ1bmN0aW9uIGNhbGNWaWV3cG9ydENvbnN0cmFpbnRzKGxheW91dEJveCwgY29uc3RyYWludHNCb3gpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICB4OiBjYWxjVmlld3BvcnRBeGlzQ29uc3RyYWludHMobGF5b3V0Qm94LngsIGNvbnN0cmFpbnRzQm94LngpLFxuICAgICAgICB5OiBjYWxjVmlld3BvcnRBeGlzQ29uc3RyYWludHMobGF5b3V0Qm94LnksIGNvbnN0cmFpbnRzQm94LnkpLFxuICAgIH07XG59XG4vKipcbiAqIENhbGN1bGF0ZSBhIHRyYW5zZm9ybSBvcmlnaW4gcmVsYXRpdmUgdG8gdGhlIHNvdXJjZSBheGlzLCBiZXR3ZWVuIDAtMSwgdGhhdCByZXN1bHRzXG4gKiBpbiBhbiBhc3RoZXRpY2FsbHkgcGxlYXNpbmcgc2NhbGUvdHJhbnNmb3JtIG5lZWRlZCB0byBwcm9qZWN0IGZyb20gc291cmNlIHRvIHRhcmdldC5cbiAqL1xuZnVuY3Rpb24gY2FsY09yaWdpbihzb3VyY2UsIHRhcmdldCkge1xuICAgIGxldCBvcmlnaW4gPSAwLjU7XG4gICAgY29uc3Qgc291cmNlTGVuZ3RoID0gY2FsY0xlbmd0aChzb3VyY2UpO1xuICAgIGNvbnN0IHRhcmdldExlbmd0aCA9IGNhbGNMZW5ndGgodGFyZ2V0KTtcbiAgICBpZiAodGFyZ2V0TGVuZ3RoID4gc291cmNlTGVuZ3RoKSB7XG4gICAgICAgIG9yaWdpbiA9IHByb2dyZXNzKHRhcmdldC5taW4sIHRhcmdldC5tYXggLSBzb3VyY2VMZW5ndGgsIHNvdXJjZS5taW4pO1xuICAgIH1cbiAgICBlbHNlIGlmIChzb3VyY2VMZW5ndGggPiB0YXJnZXRMZW5ndGgpIHtcbiAgICAgICAgb3JpZ2luID0gcHJvZ3Jlc3Moc291cmNlLm1pbiwgc291cmNlLm1heCAtIHRhcmdldExlbmd0aCwgdGFyZ2V0Lm1pbik7XG4gICAgfVxuICAgIHJldHVybiBjbGFtcCgwLCAxLCBvcmlnaW4pO1xufVxuLyoqXG4gKiBSZWJhc2UgdGhlIGNhbGN1bGF0ZWQgdmlld3BvcnQgY29uc3RyYWludHMgcmVsYXRpdmUgdG8gdGhlIGxheW91dC5taW4gcG9pbnQuXG4gKi9cbmZ1bmN0aW9uIHJlYmFzZUF4aXNDb25zdHJhaW50cyhsYXlvdXQsIGNvbnN0cmFpbnRzKSB7XG4gICAgY29uc3QgcmVsYXRpdmVDb25zdHJhaW50cyA9IHt9O1xuICAgIGlmIChjb25zdHJhaW50cy5taW4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZWxhdGl2ZUNvbnN0cmFpbnRzLm1pbiA9IGNvbnN0cmFpbnRzLm1pbiAtIGxheW91dC5taW47XG4gICAgfVxuICAgIGlmIChjb25zdHJhaW50cy5tYXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZWxhdGl2ZUNvbnN0cmFpbnRzLm1heCA9IGNvbnN0cmFpbnRzLm1heCAtIGxheW91dC5taW47XG4gICAgfVxuICAgIHJldHVybiByZWxhdGl2ZUNvbnN0cmFpbnRzO1xufVxuY29uc3QgZGVmYXVsdEVsYXN0aWMgPSAwLjM1O1xuLyoqXG4gKiBBY2NlcHRzIGEgZHJhZ0VsYXN0aWMgcHJvcCBhbmQgcmV0dXJucyByZXNvbHZlZCBlbGFzdGljIHZhbHVlcyBmb3IgZWFjaCBheGlzLlxuICovXG5mdW5jdGlvbiByZXNvbHZlRHJhZ0VsYXN0aWMoZHJhZ0VsYXN0aWMgPSBkZWZhdWx0RWxhc3RpYykge1xuICAgIGlmIChkcmFnRWxhc3RpYyA9PT0gZmFsc2UpIHtcbiAgICAgICAgZHJhZ0VsYXN0aWMgPSAwO1xuICAgIH1cbiAgICBlbHNlIGlmIChkcmFnRWxhc3RpYyA9PT0gdHJ1ZSkge1xuICAgICAgICBkcmFnRWxhc3RpYyA9IGRlZmF1bHRFbGFzdGljO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICB4OiByZXNvbHZlQXhpc0VsYXN0aWMoZHJhZ0VsYXN0aWMsIFwibGVmdFwiLCBcInJpZ2h0XCIpLFxuICAgICAgICB5OiByZXNvbHZlQXhpc0VsYXN0aWMoZHJhZ0VsYXN0aWMsIFwidG9wXCIsIFwiYm90dG9tXCIpLFxuICAgIH07XG59XG5mdW5jdGlvbiByZXNvbHZlQXhpc0VsYXN0aWMoZHJhZ0VsYXN0aWMsIG1pbkxhYmVsLCBtYXhMYWJlbCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIG1pbjogcmVzb2x2ZVBvaW50RWxhc3RpYyhkcmFnRWxhc3RpYywgbWluTGFiZWwpLFxuICAgICAgICBtYXg6IHJlc29sdmVQb2ludEVsYXN0aWMoZHJhZ0VsYXN0aWMsIG1heExhYmVsKSxcbiAgICB9O1xufVxuZnVuY3Rpb24gcmVzb2x2ZVBvaW50RWxhc3RpYyhkcmFnRWxhc3RpYywgbGFiZWwpIHtcbiAgICByZXR1cm4gdHlwZW9mIGRyYWdFbGFzdGljID09PSBcIm51bWJlclwiXG4gICAgICAgID8gZHJhZ0VsYXN0aWNcbiAgICAgICAgOiBkcmFnRWxhc3RpY1tsYWJlbF0gfHwgMDtcbn1cblxuZXhwb3J0IHsgYXBwbHlDb25zdHJhaW50cywgY2FsY09yaWdpbiwgY2FsY1JlbGF0aXZlQXhpc0NvbnN0cmFpbnRzLCBjYWxjUmVsYXRpdmVDb25zdHJhaW50cywgY2FsY1ZpZXdwb3J0QXhpc0NvbnN0cmFpbnRzLCBjYWxjVmlld3BvcnRDb25zdHJhaW50cywgZGVmYXVsdEVsYXN0aWMsIHJlYmFzZUF4aXNDb25zdHJhaW50cywgcmVzb2x2ZUF4aXNFbGFzdGljLCByZXNvbHZlRHJhZ0VsYXN0aWMsIHJlc29sdmVQb2ludEVsYXN0aWMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0cmFpbnRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/gestures/focus.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/focus.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 */ FocusGesture: () => (/* binding */ FocusGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n\n\n\nclass FocusGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.pipe)((0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.addDomEvent)(this.node.current, \"focus\", () => this.onFocus()), (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.addDomEvent)(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=focus.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2ZvY3VzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWtEO0FBQ2Q7O0FBRXBDLDJCQUEyQiwrQ0FBTztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsa0RBQUksQ0FBQyx1REFBVyxvREFBb0QsdURBQVc7QUFDdEc7QUFDQTtBQUNBOztBQUV3QjtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZm9jdXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUsIGFkZERvbUV2ZW50IH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBwaXBlIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuY2xhc3MgRm9jdXNHZXN0dXJlIGV4dGVuZHMgRmVhdHVyZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcbiAgICB9XG4gICAgb25Gb2N1cygpIHtcbiAgICAgICAgbGV0IGlzRm9jdXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGlzIGVsZW1lbnQgZG9lc24ndCBtYXRjaCBmb2N1cy12aXNpYmxlIHRoZW4gZG9uJ3RcbiAgICAgICAgICogYXBwbHkgd2hpbGVIb3Zlci4gQnV0LCBpZiBtYXRjaGVzIHRocm93cyB0aGF0IGZvY3VzLXZpc2libGVcbiAgICAgICAgICogaXMgbm90IGEgdmFsaWQgc2VsZWN0b3IgdGhlbiBpbiB0aGF0IGJyb3dzZXIgb3V0bGluZSBzdHlsZXMgd2lsbCBiZSBhcHBsaWVkXG4gICAgICAgICAqIHRvIHRoZSBlbGVtZW50IGJ5IGRlZmF1bHQgYW5kIHdlIHdhbnQgdG8gbWF0Y2ggdGhhdCBiZWhhdmlvdXIgd2l0aCB3aGlsZUZvY3VzLlxuICAgICAgICAgKi9cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlzRm9jdXNWaXNpYmxlID0gdGhpcy5ub2RlLmN1cnJlbnQubWF0Y2hlcyhcIjpmb2N1cy12aXNpYmxlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpc0ZvY3VzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0ZvY3VzVmlzaWJsZSB8fCAhdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwid2hpbGVGb2N1c1wiLCB0cnVlKTtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRydWU7XG4gICAgfVxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzQWN0aXZlIHx8ICF0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZUZvY3VzXCIsIGZhbHNlKTtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgICBtb3VudCgpIHtcbiAgICAgICAgdGhpcy51bm1vdW50ID0gcGlwZShhZGREb21FdmVudCh0aGlzLm5vZGUuY3VycmVudCwgXCJmb2N1c1wiLCAoKSA9PiB0aGlzLm9uRm9jdXMoKSksIGFkZERvbUV2ZW50KHRoaXMubm9kZS5jdXJyZW50LCBcImJsdXJcIiwgKCkgPT4gdGhpcy5vbkJsdXIoKSkpO1xuICAgIH1cbiAgICB1bm1vdW50KCkgeyB9XG59XG5cbmV4cG9ydCB7IEZvY3VzR2VzdHVyZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9jdXMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/gestures/focus.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/gestures/hover.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/hover.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 */ HoverGesture: () => (/* binding */ HoverGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/hover.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events/event-info.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n\n\n\nfunction handleHoverEvent(node, event, lifecycle) {\n const { props } = node;\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", lifecycle === \"Start\");\n }\n const eventName = (\"onHover\" + lifecycle);\n const callback = props[eventName];\n if (callback) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => callback(event, (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event)));\n }\n}\nclass HoverGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_2__.Feature {\n mount() {\n const { current } = this.node;\n if (!current)\n return;\n this.unmount = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.hover)(current, (_element, startEvent) => {\n handleHoverEvent(this.node, startEvent, \"Start\");\n return (endEvent) => handleHoverEvent(this.node, endEvent, \"End\");\n });\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=hover.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2hvdmVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFtRDtBQUNTOztBQUU1RDtBQUNBLFlBQVksUUFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZDQUFLLGtDQUFrQyx3RUFBZ0I7QUFDL0Q7QUFDQTtBQUNBLDJCQUEyQiwrQ0FBTztBQUNsQztBQUNBLGdCQUFnQixVQUFVO0FBQzFCO0FBQ0E7QUFDQSx1QkFBdUIsaURBQUs7QUFDNUI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRXdCO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9nZXN0dXJlcy9ob3Zlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZSwgaG92ZXIsIGZyYW1lIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBleHRyYWN0RXZlbnRJbmZvIH0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LWluZm8ubWpzJztcblxuZnVuY3Rpb24gaGFuZGxlSG92ZXJFdmVudChub2RlLCBldmVudCwgbGlmZWN5Y2xlKSB7XG4gICAgY29uc3QgeyBwcm9wcyB9ID0gbm9kZTtcbiAgICBpZiAobm9kZS5hbmltYXRpb25TdGF0ZSAmJiBwcm9wcy53aGlsZUhvdmVyKSB7XG4gICAgICAgIG5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwid2hpbGVIb3ZlclwiLCBsaWZlY3ljbGUgPT09IFwiU3RhcnRcIik7XG4gICAgfVxuICAgIGNvbnN0IGV2ZW50TmFtZSA9IChcIm9uSG92ZXJcIiArIGxpZmVjeWNsZSk7XG4gICAgY29uc3QgY2FsbGJhY2sgPSBwcm9wc1tldmVudE5hbWVdO1xuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICBmcmFtZS5wb3N0UmVuZGVyKCgpID0+IGNhbGxiYWNrKGV2ZW50LCBleHRyYWN0RXZlbnRJbmZvKGV2ZW50KSkpO1xuICAgIH1cbn1cbmNsYXNzIEhvdmVyR2VzdHVyZSBleHRlbmRzIEZlYXR1cmUge1xuICAgIG1vdW50KCkge1xuICAgICAgICBjb25zdCB7IGN1cnJlbnQgfSA9IHRoaXMubm9kZTtcbiAgICAgICAgaWYgKCFjdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLnVubW91bnQgPSBob3ZlcihjdXJyZW50LCAoX2VsZW1lbnQsIHN0YXJ0RXZlbnQpID0+IHtcbiAgICAgICAgICAgIGhhbmRsZUhvdmVyRXZlbnQodGhpcy5ub2RlLCBzdGFydEV2ZW50LCBcIlN0YXJ0XCIpO1xuICAgICAgICAgICAgcmV0dXJuIChlbmRFdmVudCkgPT4gaGFuZGxlSG92ZXJFdmVudCh0aGlzLm5vZGUsIGVuZEV2ZW50LCBcIkVuZFwiKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHVubW91bnQoKSB7IH1cbn1cblxuZXhwb3J0IHsgSG92ZXJHZXN0dXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob3Zlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/gestures/hover.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/pan/PanSession.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 */ PanSession: () => (/* binding */ PanSession)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../events/event-info.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n/* harmony import */ var _utils_distance_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/distance.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/distance.mjs\");\n\n\n\n\n\n\nconst overflowStyles = /*#__PURE__*/ new Set([\"auto\", \"scroll\"]);\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint, contextWindow = window, dragSnapToOrigin = false, distanceThreshold = 3, element, } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n /**\n * @internal\n */\n this.contextWindow = window;\n /**\n * Scroll positions of scrollable ancestors and window.\n * @internal\n */\n this.scrollPositions = new Map();\n /**\n * Cleanup function for scroll listeners.\n * @internal\n */\n this.removeScrollListeners = null;\n this.onElementScroll = (event) => {\n this.handleScroll(event.target);\n };\n this.onWindowScroll = () => {\n this.handleScroll(window);\n };\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursor.\n const isDistancePastThreshold = (0,_utils_distance_mjs__WEBPACK_IMPORTED_MODULE_0__.distance2D)(info.offset, { x: 0, y: 0 }) >= this.distanceThreshold;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Throttle mouse move event to once per frame\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n // Resume animation if dragSnapToOrigin is set OR if no drag started (user just clicked)\n // This ensures constraint animations continue when interrupted by a click\n if (this.dragSnapToOrigin || !this.startEvent) {\n resumeAnimation && resumeAnimation();\n }\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!(0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isPrimaryPointer)(event))\n return;\n this.dragSnapToOrigin = dragSnapToOrigin;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n this.distanceThreshold = distanceThreshold;\n this.contextWindow = contextWindow || window;\n const info = (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_3__.extractEventInfo)(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.pipe)((0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointermove\", this.handlePointerMove), (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointerup\", this.handlePointerUp), (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointercancel\", this.handlePointerUp));\n // Start scroll tracking if element provided\n if (element) {\n this.startScrollTracking(element);\n }\n }\n /**\n * Start tracking scroll on ancestors and window.\n */\n startScrollTracking(element) {\n // Store initial scroll positions for scrollable ancestors\n let current = element.parentElement;\n while (current) {\n const style = getComputedStyle(current);\n if (overflowStyles.has(style.overflowX) ||\n overflowStyles.has(style.overflowY)) {\n this.scrollPositions.set(current, {\n x: current.scrollLeft,\n y: current.scrollTop,\n });\n }\n current = current.parentElement;\n }\n // Track window scroll\n this.scrollPositions.set(window, {\n x: window.scrollX,\n y: window.scrollY,\n });\n // Capture listener catches element scroll events as they bubble\n window.addEventListener(\"scroll\", this.onElementScroll, {\n capture: true,\n passive: true,\n });\n // Direct window scroll listener (window scroll doesn't bubble)\n window.addEventListener(\"scroll\", this.onWindowScroll, {\n passive: true,\n });\n this.removeScrollListeners = () => {\n window.removeEventListener(\"scroll\", this.onElementScroll, {\n capture: true,\n });\n window.removeEventListener(\"scroll\", this.onWindowScroll);\n };\n }\n /**\n * Handle scroll compensation during drag.\n *\n * For element scroll: adjusts history origin since pageX/pageY doesn't change.\n * For window scroll: adjusts lastMoveEventInfo since pageX/pageY would change.\n */\n handleScroll(target) {\n const initial = this.scrollPositions.get(target);\n if (!initial)\n return;\n const isWindow = target === window;\n const current = isWindow\n ? { x: window.scrollX, y: window.scrollY }\n : {\n x: target.scrollLeft,\n y: target.scrollTop,\n };\n const delta = { x: current.x - initial.x, y: current.y - initial.y };\n if (delta.x === 0 && delta.y === 0)\n return;\n if (isWindow) {\n // Window scroll: pageX/pageY changes, so update lastMoveEventInfo\n if (this.lastMoveEventInfo) {\n this.lastMoveEventInfo.point.x += delta.x;\n this.lastMoveEventInfo.point.y += delta.y;\n }\n }\n else {\n // Element scroll: pageX/pageY unchanged, so adjust history origin\n if (this.history.length > 0) {\n this.history[0].x -= delta.x;\n this.history[0].y -= delta.y;\n }\n }\n this.scrollPositions.set(target, current);\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.update(this.updatePoint, true);\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n this.removeScrollListeners && this.removeScrollListeners();\n this.scrollPositions.clear();\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.secondsToMilliseconds)(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n /**\n * If the selected point is the pointer-down origin (history[0]),\n * there are better movement points available, and the time gap\n * is suspiciously large (>2x timeDelta), use the next point instead.\n * This prevents stale pointer-down points from diluting velocity\n * in hold-then-flick gestures.\n */\n if (timestampedPoint === history[0] &&\n history.length > 2 &&\n lastPoint.timestamp - timestampedPoint.timestamp >\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.secondsToMilliseconds)(timeDelta) * 2) {\n timestampedPoint = history[1];\n }\n const time = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(lastPoint.timestamp - timestampedPoint.timestamp);\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\n\n//# sourceMappingURL=PanSession.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL3Bhbi9QYW5TZXNzaW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUE2RTtBQUNLO0FBQ2I7QUFDTjtBQUNUOztBQUV0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHdHQUF3RyxJQUFJO0FBQy9JO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsK0RBQVUsZ0JBQWdCLFlBQVk7QUFDbEY7QUFDQTtBQUNBLG9CQUFvQixRQUFRO0FBQzVCLG9CQUFvQixZQUFZLEVBQUUsaURBQVM7QUFDM0MsZ0NBQWdDLHFCQUFxQjtBQUNyRCxvQkFBb0Isa0JBQWtCO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSw2Q0FBSztBQUNqQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsdUNBQXVDO0FBQzNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSw0REFBZ0I7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLHdFQUFnQjtBQUNyQztBQUNBLGdCQUFnQixRQUFRO0FBQ3hCLGdCQUFnQixZQUFZLEVBQUUsaURBQVM7QUFDdkMsMEJBQTBCLHFCQUFxQjtBQUMvQyxnQkFBZ0IsaUJBQWlCO0FBQ2pDO0FBQ0E7QUFDQSwrQkFBK0Isa0RBQUksQ0FBQyw4RUFBZSw2REFBNkQsOEVBQWUseURBQXlELDhFQUFlO0FBQ3ZNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw2Q0FBSztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHVEQUFXO0FBQ25CO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyx3Q0FBd0M7QUFDMUU7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLHNCQUFzQixPQUFPO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksbUVBQXFCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksbUVBQXFCO0FBQ2pDO0FBQ0E7QUFDQSxpQkFBaUIsbUVBQXFCO0FBQ3RDO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzQjtBQUN0QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcGFuL1BhblNlc3Npb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyYW1lLCBpc1ByaW1hcnlQb2ludGVyLCBjYW5jZWxGcmFtZSwgZnJhbWVEYXRhIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBwaXBlLCBzZWNvbmRzVG9NaWxsaXNlY29uZHMsIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBhZGRQb2ludGVyRXZlbnQgfSBmcm9tICcuLi8uLi9ldmVudHMvYWRkLXBvaW50ZXItZXZlbnQubWpzJztcbmltcG9ydCB7IGV4dHJhY3RFdmVudEluZm8gfSBmcm9tICcuLi8uLi9ldmVudHMvZXZlbnQtaW5mby5tanMnO1xuaW1wb3J0IHsgZGlzdGFuY2UyRCB9IGZyb20gJy4uLy4uL3V0aWxzL2Rpc3RhbmNlLm1qcyc7XG5cbmNvbnN0IG92ZXJmbG93U3R5bGVzID0gLyojX19QVVJFX18qLyBuZXcgU2V0KFtcImF1dG9cIiwgXCJzY3JvbGxcIl0pO1xuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuY2xhc3MgUGFuU2Vzc2lvbiB7XG4gICAgY29uc3RydWN0b3IoZXZlbnQsIGhhbmRsZXJzLCB7IHRyYW5zZm9ybVBhZ2VQb2ludCwgY29udGV4dFdpbmRvdyA9IHdpbmRvdywgZHJhZ1NuYXBUb09yaWdpbiA9IGZhbHNlLCBkaXN0YW5jZVRocmVzaG9sZCA9IDMsIGVsZW1lbnQsIH0gPSB7fSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGludGVybmFsXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnN0YXJ0RXZlbnQgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGludGVybmFsXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxhc3RNb3ZlRXZlbnQgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGludGVybmFsXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvID0gbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBpbnRlcm5hbFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5oYW5kbGVycyA9IHt9O1xuICAgICAgICAvKipcbiAgICAgICAgICogQGludGVybmFsXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNvbnRleHRXaW5kb3cgPSB3aW5kb3c7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTY3JvbGwgcG9zaXRpb25zIG9mIHNjcm9sbGFibGUgYW5jZXN0b3JzIGFuZCB3aW5kb3cuXG4gICAgICAgICAqIEBpbnRlcm5hbFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zY3JvbGxQb3NpdGlvbnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDbGVhbnVwIGZ1bmN0aW9uIGZvciBzY3JvbGwgbGlzdGVuZXJzLlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucmVtb3ZlU2Nyb2xsTGlzdGVuZXJzID0gbnVsbDtcbiAgICAgICAgdGhpcy5vbkVsZW1lbnRTY3JvbGwgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2Nyb2xsKGV2ZW50LnRhcmdldCk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMub25XaW5kb3dTY3JvbGwgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVNjcm9sbCh3aW5kb3cpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLnVwZGF0ZVBvaW50ID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCEodGhpcy5sYXN0TW92ZUV2ZW50ICYmIHRoaXMubGFzdE1vdmVFdmVudEluZm8pKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGluZm8gPSBnZXRQYW5JbmZvKHRoaXMubGFzdE1vdmVFdmVudEluZm8sIHRoaXMuaGlzdG9yeSk7XG4gICAgICAgICAgICBjb25zdCBpc1BhblN0YXJ0ZWQgPSB0aGlzLnN0YXJ0RXZlbnQgIT09IG51bGw7XG4gICAgICAgICAgICAvLyBPbmx5IHN0YXJ0IHBhbm5pbmcgaWYgdGhlIG9mZnNldCBpcyBsYXJnZXIgdGhhbiAzIHBpeGVscy4gSWYgd2UgbWFrZSBpdFxuICAgICAgICAgICAgLy8gYW55IGxhcmdlciB0aGFuIHRoaXMgd2UnbGwgd2FudCB0byByZXNldCB0aGUgcG9pbnRlciBoaXN0b3J5XG4gICAgICAgICAgICAvLyBvbiB0aGUgZmlyc3QgdXBkYXRlIHRvIGF2b2lkIHZpc3VhbCBzbmFwcGluZyB0byB0aGUgY3Vyc29yLlxuICAgICAgICAgICAgY29uc3QgaXNEaXN0YW5jZVBhc3RUaHJlc2hvbGQgPSBkaXN0YW5jZTJEKGluZm8ub2Zmc2V0LCB7IHg6IDAsIHk6IDAgfSkgPj0gdGhpcy5kaXN0YW5jZVRocmVzaG9sZDtcbiAgICAgICAgICAgIGlmICghaXNQYW5TdGFydGVkICYmICFpc0Rpc3RhbmNlUGFzdFRocmVzaG9sZClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCB7IHBvaW50IH0gPSBpbmZvO1xuICAgICAgICAgICAgY29uc3QgeyB0aW1lc3RhbXAgfSA9IGZyYW1lRGF0YTtcbiAgICAgICAgICAgIHRoaXMuaGlzdG9yeS5wdXNoKHsgLi4ucG9pbnQsIHRpbWVzdGFtcCB9KTtcbiAgICAgICAgICAgIGNvbnN0IHsgb25TdGFydCwgb25Nb3ZlIH0gPSB0aGlzLmhhbmRsZXJzO1xuICAgICAgICAgICAgaWYgKCFpc1BhblN0YXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICBvblN0YXJ0ICYmIG9uU3RhcnQodGhpcy5sYXN0TW92ZUV2ZW50LCBpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0RXZlbnQgPSB0aGlzLmxhc3RNb3ZlRXZlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbk1vdmUgJiYgb25Nb3ZlKHRoaXMubGFzdE1vdmVFdmVudCwgaW5mbyk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaGFuZGxlUG9pbnRlck1vdmUgPSAoZXZlbnQsIGluZm8pID0+IHtcbiAgICAgICAgICAgIHRoaXMubGFzdE1vdmVFdmVudCA9IGV2ZW50O1xuICAgICAgICAgICAgdGhpcy5sYXN0TW92ZUV2ZW50SW5mbyA9IHRyYW5zZm9ybVBvaW50KGluZm8sIHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KTtcbiAgICAgICAgICAgIC8vIFRocm90dGxlIG1vdXNlIG1vdmUgZXZlbnQgdG8gb25jZSBwZXIgZnJhbWVcbiAgICAgICAgICAgIGZyYW1lLnVwZGF0ZSh0aGlzLnVwZGF0ZVBvaW50LCB0cnVlKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5oYW5kbGVQb2ludGVyVXAgPSAoZXZlbnQsIGluZm8pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZW5kKCk7XG4gICAgICAgICAgICBjb25zdCB7IG9uRW5kLCBvblNlc3Npb25FbmQsIHJlc3VtZUFuaW1hdGlvbiB9ID0gdGhpcy5oYW5kbGVycztcbiAgICAgICAgICAgIC8vIFJlc3VtZSBhbmltYXRpb24gaWYgZHJhZ1NuYXBUb09yaWdpbiBpcyBzZXQgT1IgaWYgbm8gZHJhZyBzdGFydGVkICh1c2VyIGp1c3QgY2xpY2tlZClcbiAgICAgICAgICAgIC8vIFRoaXMgZW5zdXJlcyBjb25zdHJhaW50IGFuaW1hdGlvbnMgY29udGludWUgd2hlbiBpbnRlcnJ1cHRlZCBieSBhIGNsaWNrXG4gICAgICAgICAgICBpZiAodGhpcy5kcmFnU25hcFRvT3JpZ2luIHx8ICF0aGlzLnN0YXJ0RXZlbnQpIHtcbiAgICAgICAgICAgICAgICByZXN1bWVBbmltYXRpb24gJiYgcmVzdW1lQW5pbWF0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoISh0aGlzLmxhc3RNb3ZlRXZlbnQgJiYgdGhpcy5sYXN0TW92ZUV2ZW50SW5mbykpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgcGFuSW5mbyA9IGdldFBhbkluZm8oZXZlbnQudHlwZSA9PT0gXCJwb2ludGVyY2FuY2VsXCJcbiAgICAgICAgICAgICAgICA/IHRoaXMubGFzdE1vdmVFdmVudEluZm9cbiAgICAgICAgICAgICAgICA6IHRyYW5zZm9ybVBvaW50KGluZm8sIHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KSwgdGhpcy5oaXN0b3J5KTtcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXJ0RXZlbnQgJiYgb25FbmQpIHtcbiAgICAgICAgICAgICAgICBvbkVuZChldmVudCwgcGFuSW5mbyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvblNlc3Npb25FbmQgJiYgb25TZXNzaW9uRW5kKGV2ZW50LCBwYW5JbmZvKTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gSWYgd2UgaGF2ZSBtb3JlIHRoYW4gb25lIHRvdWNoLCBkb24ndCBzdGFydCBkZXRlY3RpbmcgdGhpcyBnZXN0dXJlXG4gICAgICAgIGlmICghaXNQcmltYXJ5UG9pbnRlcihldmVudCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuZHJhZ1NuYXBUb09yaWdpbiA9IGRyYWdTbmFwVG9PcmlnaW47XG4gICAgICAgIHRoaXMuaGFuZGxlcnMgPSBoYW5kbGVycztcbiAgICAgICAgdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQgPSB0cmFuc2Zvcm1QYWdlUG9pbnQ7XG4gICAgICAgIHRoaXMuZGlzdGFuY2VUaHJlc2hvbGQgPSBkaXN0YW5jZVRocmVzaG9sZDtcbiAgICAgICAgdGhpcy5jb250ZXh0V2luZG93ID0gY29udGV4dFdpbmRvdyB8fCB3aW5kb3c7XG4gICAgICAgIGNvbnN0IGluZm8gPSBleHRyYWN0RXZlbnRJbmZvKGV2ZW50KTtcbiAgICAgICAgY29uc3QgaW5pdGlhbEluZm8gPSB0cmFuc2Zvcm1Qb2ludChpbmZvLCB0aGlzLnRyYW5zZm9ybVBhZ2VQb2ludCk7XG4gICAgICAgIGNvbnN0IHsgcG9pbnQgfSA9IGluaXRpYWxJbmZvO1xuICAgICAgICBjb25zdCB7IHRpbWVzdGFtcCB9ID0gZnJhbWVEYXRhO1xuICAgICAgICB0aGlzLmhpc3RvcnkgPSBbeyAuLi5wb2ludCwgdGltZXN0YW1wIH1dO1xuICAgICAgICBjb25zdCB7IG9uU2Vzc2lvblN0YXJ0IH0gPSBoYW5kbGVycztcbiAgICAgICAgb25TZXNzaW9uU3RhcnQgJiZcbiAgICAgICAgICAgIG9uU2Vzc2lvblN0YXJ0KGV2ZW50LCBnZXRQYW5JbmZvKGluaXRpYWxJbmZvLCB0aGlzLmhpc3RvcnkpKTtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMgPSBwaXBlKGFkZFBvaW50ZXJFdmVudCh0aGlzLmNvbnRleHRXaW5kb3csIFwicG9pbnRlcm1vdmVcIiwgdGhpcy5oYW5kbGVQb2ludGVyTW92ZSksIGFkZFBvaW50ZXJFdmVudCh0aGlzLmNvbnRleHRXaW5kb3csIFwicG9pbnRlcnVwXCIsIHRoaXMuaGFuZGxlUG9pbnRlclVwKSwgYWRkUG9pbnRlckV2ZW50KHRoaXMuY29udGV4dFdpbmRvdywgXCJwb2ludGVyY2FuY2VsXCIsIHRoaXMuaGFuZGxlUG9pbnRlclVwKSk7XG4gICAgICAgIC8vIFN0YXJ0IHNjcm9sbCB0cmFja2luZyBpZiBlbGVtZW50IHByb3ZpZGVkXG4gICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0U2Nyb2xsVHJhY2tpbmcoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU3RhcnQgdHJhY2tpbmcgc2Nyb2xsIG9uIGFuY2VzdG9ycyBhbmQgd2luZG93LlxuICAgICAqL1xuICAgIHN0YXJ0U2Nyb2xsVHJhY2tpbmcoZWxlbWVudCkge1xuICAgICAgICAvLyBTdG9yZSBpbml0aWFsIHNjcm9sbCBwb3NpdGlvbnMgZm9yIHNjcm9sbGFibGUgYW5jZXN0b3JzXG4gICAgICAgIGxldCBjdXJyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB3aGlsZSAoY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKG92ZXJmbG93U3R5bGVzLmhhcyhzdHlsZS5vdmVyZmxvd1gpIHx8XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3dTdHlsZXMuaGFzKHN0eWxlLm92ZXJmbG93WSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFBvc2l0aW9ucy5zZXQoY3VycmVudCwge1xuICAgICAgICAgICAgICAgICAgICB4OiBjdXJyZW50LnNjcm9sbExlZnQsXG4gICAgICAgICAgICAgICAgICAgIHk6IGN1cnJlbnQuc2Nyb2xsVG9wLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICAvLyBUcmFjayB3aW5kb3cgc2Nyb2xsXG4gICAgICAgIHRoaXMuc2Nyb2xsUG9zaXRpb25zLnNldCh3aW5kb3csIHtcbiAgICAgICAgICAgIHg6IHdpbmRvdy5zY3JvbGxYLFxuICAgICAgICAgICAgeTogd2luZG93LnNjcm9sbFksXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBDYXB0dXJlIGxpc3RlbmVyIGNhdGNoZXMgZWxlbWVudCBzY3JvbGwgZXZlbnRzIGFzIHRoZXkgYnViYmxlXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMub25FbGVtZW50U2Nyb2xsLCB7XG4gICAgICAgICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIERpcmVjdCB3aW5kb3cgc2Nyb2xsIGxpc3RlbmVyICh3aW5kb3cgc2Nyb2xsIGRvZXNuJ3QgYnViYmxlKVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLm9uV2luZG93U2Nyb2xsLCB7XG4gICAgICAgICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZW1vdmVTY3JvbGxMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLm9uRWxlbWVudFNjcm9sbCwge1xuICAgICAgICAgICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMub25XaW5kb3dTY3JvbGwpO1xuICAgICAgICB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBIYW5kbGUgc2Nyb2xsIGNvbXBlbnNhdGlvbiBkdXJpbmcgZHJhZy5cbiAgICAgKlxuICAgICAqIEZvciBlbGVtZW50IHNjcm9sbDogYWRqdXN0cyBoaXN0b3J5IG9yaWdpbiBzaW5jZSBwYWdlWC9wYWdlWSBkb2Vzbid0IGNoYW5nZS5cbiAgICAgKiBGb3Igd2luZG93IHNjcm9sbDogYWRqdXN0cyBsYXN0TW92ZUV2ZW50SW5mbyBzaW5jZSBwYWdlWC9wYWdlWSB3b3VsZCBjaGFuZ2UuXG4gICAgICovXG4gICAgaGFuZGxlU2Nyb2xsKHRhcmdldCkge1xuICAgICAgICBjb25zdCBpbml0aWFsID0gdGhpcy5zY3JvbGxQb3NpdGlvbnMuZ2V0KHRhcmdldCk7XG4gICAgICAgIGlmICghaW5pdGlhbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgaXNXaW5kb3cgPSB0YXJnZXQgPT09IHdpbmRvdztcbiAgICAgICAgY29uc3QgY3VycmVudCA9IGlzV2luZG93XG4gICAgICAgICAgICA/IHsgeDogd2luZG93LnNjcm9sbFgsIHk6IHdpbmRvdy5zY3JvbGxZIH1cbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgIHg6IHRhcmdldC5zY3JvbGxMZWZ0LFxuICAgICAgICAgICAgICAgIHk6IHRhcmdldC5zY3JvbGxUb3AsXG4gICAgICAgICAgICB9O1xuICAgICAgICBjb25zdCBkZWx0YSA9IHsgeDogY3VycmVudC54IC0gaW5pdGlhbC54LCB5OiBjdXJyZW50LnkgLSBpbml0aWFsLnkgfTtcbiAgICAgICAgaWYgKGRlbHRhLnggPT09IDAgJiYgZGVsdGEueSA9PT0gMClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKGlzV2luZG93KSB7XG4gICAgICAgICAgICAvLyBXaW5kb3cgc2Nyb2xsOiBwYWdlWC9wYWdlWSBjaGFuZ2VzLCBzbyB1cGRhdGUgbGFzdE1vdmVFdmVudEluZm9cbiAgICAgICAgICAgIGlmICh0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0TW92ZUV2ZW50SW5mby5wb2ludC54ICs9IGRlbHRhLng7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0TW92ZUV2ZW50SW5mby5wb2ludC55ICs9IGRlbHRhLnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBFbGVtZW50IHNjcm9sbDogcGFnZVgvcGFnZVkgdW5jaGFuZ2VkLCBzbyBhZGp1c3QgaGlzdG9yeSBvcmlnaW5cbiAgICAgICAgICAgIGlmICh0aGlzLmhpc3RvcnkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlzdG9yeVswXS54IC09IGRlbHRhLng7XG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5WzBdLnkgLT0gZGVsdGEueTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNjcm9sbFBvc2l0aW9ucy5zZXQodGFyZ2V0LCBjdXJyZW50KTtcbiAgICAgICAgZnJhbWUudXBkYXRlKHRoaXMudXBkYXRlUG9pbnQsIHRydWUpO1xuICAgIH1cbiAgICB1cGRhdGVIYW5kbGVycyhoYW5kbGVycykge1xuICAgICAgICB0aGlzLmhhbmRsZXJzID0gaGFuZGxlcnM7XG4gICAgfVxuICAgIGVuZCgpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVMaXN0ZW5lcnMgJiYgdGhpcy5yZW1vdmVMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5yZW1vdmVTY3JvbGxMaXN0ZW5lcnMgJiYgdGhpcy5yZW1vdmVTY3JvbGxMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5zY3JvbGxQb3NpdGlvbnMuY2xlYXIoKTtcbiAgICAgICAgY2FuY2VsRnJhbWUodGhpcy51cGRhdGVQb2ludCk7XG4gICAgfVxufVxuZnVuY3Rpb24gdHJhbnNmb3JtUG9pbnQoaW5mbywgdHJhbnNmb3JtUGFnZVBvaW50KSB7XG4gICAgcmV0dXJuIHRyYW5zZm9ybVBhZ2VQb2ludCA/IHsgcG9pbnQ6IHRyYW5zZm9ybVBhZ2VQb2ludChpbmZvLnBvaW50KSB9IDogaW5mbztcbn1cbmZ1bmN0aW9uIHN1YnRyYWN0UG9pbnQoYSwgYikge1xuICAgIHJldHVybiB7IHg6IGEueCAtIGIueCwgeTogYS55IC0gYi55IH07XG59XG5mdW5jdGlvbiBnZXRQYW5JbmZvKHsgcG9pbnQgfSwgaGlzdG9yeSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHBvaW50LFxuICAgICAgICBkZWx0YTogc3VidHJhY3RQb2ludChwb2ludCwgbGFzdERldmljZVBvaW50KGhpc3RvcnkpKSxcbiAgICAgICAgb2Zmc2V0OiBzdWJ0cmFjdFBvaW50KHBvaW50LCBzdGFydERldmljZVBvaW50KGhpc3RvcnkpKSxcbiAgICAgICAgdmVsb2NpdHk6IGdldFZlbG9jaXR5KGhpc3RvcnksIDAuMSksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHN0YXJ0RGV2aWNlUG9pbnQoaGlzdG9yeSkge1xuICAgIHJldHVybiBoaXN0b3J5WzBdO1xufVxuZnVuY3Rpb24gbGFzdERldmljZVBvaW50KGhpc3RvcnkpIHtcbiAgICByZXR1cm4gaGlzdG9yeVtoaXN0b3J5Lmxlbmd0aCAtIDFdO1xufVxuZnVuY3Rpb24gZ2V0VmVsb2NpdHkoaGlzdG9yeSwgdGltZURlbHRhKSB7XG4gICAgaWYgKGhpc3RvcnkubGVuZ3RoIDwgMikge1xuICAgICAgICByZXR1cm4geyB4OiAwLCB5OiAwIH07XG4gICAgfVxuICAgIGxldCBpID0gaGlzdG9yeS5sZW5ndGggLSAxO1xuICAgIGxldCB0aW1lc3RhbXBlZFBvaW50ID0gbnVsbDtcbiAgICBjb25zdCBsYXN0UG9pbnQgPSBsYXN0RGV2aWNlUG9pbnQoaGlzdG9yeSk7XG4gICAgd2hpbGUgKGkgPj0gMCkge1xuICAgICAgICB0aW1lc3RhbXBlZFBvaW50ID0gaGlzdG9yeVtpXTtcbiAgICAgICAgaWYgKGxhc3RQb2ludC50aW1lc3RhbXAgLSB0aW1lc3RhbXBlZFBvaW50LnRpbWVzdGFtcCA+XG4gICAgICAgICAgICBzZWNvbmRzVG9NaWxsaXNlY29uZHModGltZURlbHRhKSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaS0tO1xuICAgIH1cbiAgICBpZiAoIXRpbWVzdGFtcGVkUG9pbnQpIHtcbiAgICAgICAgcmV0dXJuIHsgeDogMCwgeTogMCB9O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgc2VsZWN0ZWQgcG9pbnQgaXMgdGhlIHBvaW50ZXItZG93biBvcmlnaW4gKGhpc3RvcnlbMF0pLFxuICAgICAqIHRoZXJlIGFyZSBiZXR0ZXIgbW92ZW1lbnQgcG9pbnRzIGF2YWlsYWJsZSwgYW5kIHRoZSB0aW1lIGdhcFxuICAgICAqIGlzIHN1c3BpY2lvdXNseSBsYXJnZSAoPjJ4IHRpbWVEZWx0YSksIHVzZSB0aGUgbmV4dCBwb2ludCBpbnN0ZWFkLlxuICAgICAqIFRoaXMgcHJldmVudHMgc3RhbGUgcG9pbnRlci1kb3duIHBvaW50cyBmcm9tIGRpbHV0aW5nIHZlbG9jaXR5XG4gICAgICogaW4gaG9sZC10aGVuLWZsaWNrIGdlc3R1cmVzLlxuICAgICAqL1xuICAgIGlmICh0aW1lc3RhbXBlZFBvaW50ID09PSBoaXN0b3J5WzBdICYmXG4gICAgICAgIGhpc3RvcnkubGVuZ3RoID4gMiAmJlxuICAgICAgICBsYXN0UG9pbnQudGltZXN0YW1wIC0gdGltZXN0YW1wZWRQb2ludC50aW1lc3RhbXAgPlxuICAgICAgICAgICAgc2Vjb25kc1RvTWlsbGlzZWNvbmRzKHRpbWVEZWx0YSkgKiAyKSB7XG4gICAgICAgIHRpbWVzdGFtcGVkUG9pbnQgPSBoaXN0b3J5WzFdO1xuICAgIH1cbiAgICBjb25zdCB0aW1lID0gbWlsbGlzZWNvbmRzVG9TZWNvbmRzKGxhc3RQb2ludC50aW1lc3RhbXAgLSB0aW1lc3RhbXBlZFBvaW50LnRpbWVzdGFtcCk7XG4gICAgaWYgKHRpbWUgPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHsgeDogMCwgeTogMCB9O1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50VmVsb2NpdHkgPSB7XG4gICAgICAgIHg6IChsYXN0UG9pbnQueCAtIHRpbWVzdGFtcGVkUG9pbnQueCkgLyB0aW1lLFxuICAgICAgICB5OiAobGFzdFBvaW50LnkgLSB0aW1lc3RhbXBlZFBvaW50LnkpIC8gdGltZSxcbiAgICB9O1xuICAgIGlmIChjdXJyZW50VmVsb2NpdHkueCA9PT0gSW5maW5pdHkpIHtcbiAgICAgICAgY3VycmVudFZlbG9jaXR5LnggPSAwO1xuICAgIH1cbiAgICBpZiAoY3VycmVudFZlbG9jaXR5LnkgPT09IEluZmluaXR5KSB7XG4gICAgICAgIGN1cnJlbnRWZWxvY2l0eS55ID0gMDtcbiAgICB9XG4gICAgcmV0dXJuIGN1cnJlbnRWZWxvY2l0eTtcbn1cblxuZXhwb3J0IHsgUGFuU2Vzc2lvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UGFuU2Vzc2lvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/pan/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 */ PanGesture: () => (/* binding */ PanGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/get-context-window.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\");\n/* harmony import */ var _PanSession_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PanSession.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\");\n\n\n\n\n\n\nconst asyncHandler = (handler) => (event, info) => {\n if (handler) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.update(() => handler(event, info), false, true);\n }\n};\nclass PanGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_1__.Feature {\n constructor() {\n super(...arguments);\n this.removePointerDownListener = motion_utils__WEBPACK_IMPORTED_MODULE_2__.noop;\n }\n onPointerDown(pointerDownEvent) {\n this.session = new _PanSession_mjs__WEBPACK_IMPORTED_MODULE_3__.PanSession(pointerDownEvent, this.createPanHandlers(), {\n transformPagePoint: this.node.getTransformPagePoint(),\n contextWindow: (0,_utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_4__.getContextWindow)(this.node),\n });\n }\n createPanHandlers() {\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\n return {\n onSessionStart: asyncHandler(onPanSessionStart),\n onStart: asyncHandler(onPanStart),\n onMove: asyncHandler(onPan),\n onEnd: (event, info) => {\n delete this.session;\n if (onPanEnd) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => onPanEnd(event, info));\n }\n },\n };\n }\n mount() {\n this.removePointerDownListener = (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\n }\n update() {\n this.session && this.session.updateHandlers(this.createPanHandlers());\n }\n unmount() {\n this.removePointerDownListener();\n this.session && this.session.end();\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL3Bhbi9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUE0QztBQUNSO0FBQ2lDO0FBQ0M7QUFDeEI7O0FBRTlDO0FBQ0E7QUFDQSxRQUFRLDZDQUFLO0FBQ2I7QUFDQTtBQUNBLHlCQUF5QiwrQ0FBTztBQUNoQztBQUNBO0FBQ0EseUNBQXlDLDhDQUFJO0FBQzdDO0FBQ0E7QUFDQSwyQkFBMkIsdURBQVU7QUFDckM7QUFDQSwyQkFBMkIsK0VBQWdCO0FBQzNDLFNBQVM7QUFDVDtBQUNBO0FBQ0EsZ0JBQWdCLGlEQUFpRDtBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw2Q0FBSztBQUN6QjtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsOEVBQWU7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzQjtBQUN0QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcGFuL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlLCBmcmFtZSB9IGZyb20gJ21vdGlvbi1kb20nO1xuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBhZGRQb2ludGVyRXZlbnQgfSBmcm9tICcuLi8uLi9ldmVudHMvYWRkLXBvaW50ZXItZXZlbnQubWpzJztcbmltcG9ydCB7IGdldENvbnRleHRXaW5kb3cgfSBmcm9tICcuLi8uLi91dGlscy9nZXQtY29udGV4dC13aW5kb3cubWpzJztcbmltcG9ydCB7IFBhblNlc3Npb24gfSBmcm9tICcuL1BhblNlc3Npb24ubWpzJztcblxuY29uc3QgYXN5bmNIYW5kbGVyID0gKGhhbmRsZXIpID0+IChldmVudCwgaW5mbykgPT4ge1xuICAgIGlmIChoYW5kbGVyKSB7XG4gICAgICAgIGZyYW1lLnVwZGF0ZSgoKSA9PiBoYW5kbGVyKGV2ZW50LCBpbmZvKSwgZmFsc2UsIHRydWUpO1xuICAgIH1cbn07XG5jbGFzcyBQYW5HZXN0dXJlIGV4dGVuZHMgRmVhdHVyZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMucmVtb3ZlUG9pbnRlckRvd25MaXN0ZW5lciA9IG5vb3A7XG4gICAgfVxuICAgIG9uUG9pbnRlckRvd24ocG9pbnRlckRvd25FdmVudCkge1xuICAgICAgICB0aGlzLnNlc3Npb24gPSBuZXcgUGFuU2Vzc2lvbihwb2ludGVyRG93bkV2ZW50LCB0aGlzLmNyZWF0ZVBhbkhhbmRsZXJzKCksIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybVBhZ2VQb2ludDogdGhpcy5ub2RlLmdldFRyYW5zZm9ybVBhZ2VQb2ludCgpLFxuICAgICAgICAgICAgY29udGV4dFdpbmRvdzogZ2V0Q29udGV4dFdpbmRvdyh0aGlzLm5vZGUpLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY3JlYXRlUGFuSGFuZGxlcnMoKSB7XG4gICAgICAgIGNvbnN0IHsgb25QYW5TZXNzaW9uU3RhcnQsIG9uUGFuU3RhcnQsIG9uUGFuLCBvblBhbkVuZCB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBvblNlc3Npb25TdGFydDogYXN5bmNIYW5kbGVyKG9uUGFuU2Vzc2lvblN0YXJ0KSxcbiAgICAgICAgICAgIG9uU3RhcnQ6IGFzeW5jSGFuZGxlcihvblBhblN0YXJ0KSxcbiAgICAgICAgICAgIG9uTW92ZTogYXN5bmNIYW5kbGVyKG9uUGFuKSxcbiAgICAgICAgICAgIG9uRW5kOiAoZXZlbnQsIGluZm8pID0+IHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5zZXNzaW9uO1xuICAgICAgICAgICAgICAgIGlmIChvblBhbkVuZCkge1xuICAgICAgICAgICAgICAgICAgICBmcmFtZS5wb3N0UmVuZGVyKCgpID0+IG9uUGFuRW5kKGV2ZW50LCBpbmZvKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgbW91bnQoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlUG9pbnRlckRvd25MaXN0ZW5lciA9IGFkZFBvaW50ZXJFdmVudCh0aGlzLm5vZGUuY3VycmVudCwgXCJwb2ludGVyZG93blwiLCAoZXZlbnQpID0+IHRoaXMub25Qb2ludGVyRG93bihldmVudCkpO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbiAmJiB0aGlzLnNlc3Npb24udXBkYXRlSGFuZGxlcnModGhpcy5jcmVhdGVQYW5IYW5kbGVycygpKTtcbiAgICB9XG4gICAgdW5tb3VudCgpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVQb2ludGVyRG93bkxpc3RlbmVyKCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbiAmJiB0aGlzLnNlc3Npb24uZW5kKCk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBQYW5HZXN0dXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/gestures/press.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/press.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 */ PressGesture: () => (/* binding */ PressGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events/event-info.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n\n\n\nfunction handlePressEvent(node, event, lifecycle) {\n const { props } = node;\n if (node.current instanceof HTMLButtonElement && node.current.disabled) {\n return;\n }\n if (node.animationState && props.whileTap) {\n node.animationState.setActive(\"whileTap\", lifecycle === \"Start\");\n }\n const eventName = (\"onTap\" + (lifecycle === \"End\" ? \"\" : lifecycle));\n const callback = props[eventName];\n if (callback) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => callback(event, (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event)));\n }\n}\nclass PressGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_2__.Feature {\n mount() {\n const { current } = this.node;\n if (!current)\n return;\n const { globalTapTarget, propagate } = this.node.props;\n this.unmount = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.press)(current, (_element, startEvent) => {\n handlePressEvent(this.node, startEvent, \"Start\");\n return (endEvent, { success }) => handlePressEvent(this.node, endEvent, success ? \"End\" : \"Cancel\");\n }, {\n useGlobalTarget: globalTapTarget,\n stopPropagation: propagate?.tap === false,\n });\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=press.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFtRDtBQUNTOztBQUU1RDtBQUNBLFlBQVksUUFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZDQUFLLGtDQUFrQyx3RUFBZ0I7QUFDL0Q7QUFDQTtBQUNBLDJCQUEyQiwrQ0FBTztBQUNsQztBQUNBLGdCQUFnQixVQUFVO0FBQzFCO0FBQ0E7QUFDQSxnQkFBZ0IsNkJBQTZCO0FBQzdDLHVCQUF1QixpREFBSztBQUM1QjtBQUNBLGdDQUFnQyxTQUFTO0FBQ3pDLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlLCBwcmVzcywgZnJhbWUgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IGV4dHJhY3RFdmVudEluZm8gfSBmcm9tICcuLi9ldmVudHMvZXZlbnQtaW5mby5tanMnO1xuXG5mdW5jdGlvbiBoYW5kbGVQcmVzc0V2ZW50KG5vZGUsIGV2ZW50LCBsaWZlY3ljbGUpIHtcbiAgICBjb25zdCB7IHByb3BzIH0gPSBub2RlO1xuICAgIGlmIChub2RlLmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MQnV0dG9uRWxlbWVudCAmJiBub2RlLmN1cnJlbnQuZGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAobm9kZS5hbmltYXRpb25TdGF0ZSAmJiBwcm9wcy53aGlsZVRhcCkge1xuICAgICAgICBub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcIndoaWxlVGFwXCIsIGxpZmVjeWNsZSA9PT0gXCJTdGFydFwiKTtcbiAgICB9XG4gICAgY29uc3QgZXZlbnROYW1lID0gKFwib25UYXBcIiArIChsaWZlY3ljbGUgPT09IFwiRW5kXCIgPyBcIlwiIDogbGlmZWN5Y2xlKSk7XG4gICAgY29uc3QgY2FsbGJhY2sgPSBwcm9wc1tldmVudE5hbWVdO1xuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICBmcmFtZS5wb3N0UmVuZGVyKCgpID0+IGNhbGxiYWNrKGV2ZW50LCBleHRyYWN0RXZlbnRJbmZvKGV2ZW50KSkpO1xuICAgIH1cbn1cbmNsYXNzIFByZXNzR2VzdHVyZSBleHRlbmRzIEZlYXR1cmUge1xuICAgIG1vdW50KCkge1xuICAgICAgICBjb25zdCB7IGN1cnJlbnQgfSA9IHRoaXMubm9kZTtcbiAgICAgICAgaWYgKCFjdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB7IGdsb2JhbFRhcFRhcmdldCwgcHJvcGFnYXRlIH0gPSB0aGlzLm5vZGUucHJvcHM7XG4gICAgICAgIHRoaXMudW5tb3VudCA9IHByZXNzKGN1cnJlbnQsIChfZWxlbWVudCwgc3RhcnRFdmVudCkgPT4ge1xuICAgICAgICAgICAgaGFuZGxlUHJlc3NFdmVudCh0aGlzLm5vZGUsIHN0YXJ0RXZlbnQsIFwiU3RhcnRcIik7XG4gICAgICAgICAgICByZXR1cm4gKGVuZEV2ZW50LCB7IHN1Y2Nlc3MgfSkgPT4gaGFuZGxlUHJlc3NFdmVudCh0aGlzLm5vZGUsIGVuZEV2ZW50LCBzdWNjZXNzID8gXCJFbmRcIiA6IFwiQ2FuY2VsXCIpO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICB1c2VHbG9iYWxUYXJnZXQ6IGdsb2JhbFRhcFRhcmdldCxcbiAgICAgICAgICAgIHN0b3BQcm9wYWdhdGlvbjogcHJvcGFnYXRlPy50YXAgPT09IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgdW5tb3VudCgpIHsgfVxufVxuXG5leHBvcnQgeyBQcmVzc0dlc3R1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByZXNzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/gestures/press.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/animation/exit.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 */ ExitAnimationFeature: () => (/* binding */ ExitAnimationFeature)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n\n\nlet id = 0;\nclass ExitAnimationFeature extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent);\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => {\n onExitComplete(this.id);\n });\n }\n }\n mount() {\n const { register, onExitComplete } = this.node.presenceContext || {};\n if (onExitComplete) {\n onExitComplete(this.id);\n }\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=exit.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9hbmltYXRpb24vZXhpdC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBcUM7O0FBRXJDO0FBQ0EsbUNBQW1DLCtDQUFPO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDRCQUE0QjtBQUM1QyxnQkFBZ0IsMkJBQTJCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwyQkFBMkI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVnQztBQUNoQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbi9leGl0Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5cbmxldCBpZCA9IDA7XG5jbGFzcyBFeGl0QW5pbWF0aW9uRmVhdHVyZSBleHRlbmRzIEZlYXR1cmUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICB0aGlzLmlkID0gaWQrKztcbiAgICB9XG4gICAgdXBkYXRlKCkge1xuICAgICAgICBpZiAoIXRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgaXNQcmVzZW50LCBvbkV4aXRDb21wbGV0ZSB9ID0gdGhpcy5ub2RlLnByZXNlbmNlQ29udGV4dDtcbiAgICAgICAgY29uc3QgeyBpc1ByZXNlbnQ6IHByZXZJc1ByZXNlbnQgfSA9IHRoaXMubm9kZS5wcmV2UHJlc2VuY2VDb250ZXh0IHx8IHt9O1xuICAgICAgICBpZiAoIXRoaXMubm9kZS5hbmltYXRpb25TdGF0ZSB8fCBpc1ByZXNlbnQgPT09IHByZXZJc1ByZXNlbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBleGl0QW5pbWF0aW9uID0gdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcImV4aXRcIiwgIWlzUHJlc2VudCk7XG4gICAgICAgIGlmIChvbkV4aXRDb21wbGV0ZSAmJiAhaXNQcmVzZW50KSB7XG4gICAgICAgICAgICBleGl0QW5pbWF0aW9uLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlKHRoaXMuaWQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbW91bnQoKSB7XG4gICAgICAgIGNvbnN0IHsgcmVnaXN0ZXIsIG9uRXhpdENvbXBsZXRlIH0gPSB0aGlzLm5vZGUucHJlc2VuY2VDb250ZXh0IHx8IHt9O1xuICAgICAgICBpZiAob25FeGl0Q29tcGxldGUpIHtcbiAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlKHRoaXMuaWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWdpc3Rlcikge1xuICAgICAgICAgICAgdGhpcy51bm1vdW50ID0gcmVnaXN0ZXIodGhpcy5pZCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdW5tb3VudCgpIHsgfVxufVxuXG5leHBvcnQgeyBFeGl0QW5pbWF0aW9uRmVhdHVyZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXhpdC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/animation/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 */ AnimationFeature: () => (/* binding */ AnimationFeature)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/animation-state.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n\n\nclass AnimationFeature extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n constructor(node) {\n super(node);\n node.animationState || (node.animationState = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.createAnimationState)(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isAnimationControls)(animate)) {\n this.unmountControls = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() {\n this.node.animationState.reset();\n this.unmountControls?.();\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9hbmltYXRpb24vaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZ0Y7O0FBRWhGLCtCQUErQiwrQ0FBTztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRCxnRUFBb0I7QUFDMUU7QUFDQTtBQUNBLGdCQUFnQixVQUFVO0FBQzFCLFlBQVksK0RBQW1CO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUIsZ0JBQWdCLHVCQUF1QjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTRCO0FBQzVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvYW5pbWF0aW9uL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlLCBjcmVhdGVBbmltYXRpb25TdGF0ZSwgaXNBbmltYXRpb25Db250cm9scyB9IGZyb20gJ21vdGlvbi1kb20nO1xuXG5jbGFzcyBBbmltYXRpb25GZWF0dXJlIGV4dGVuZHMgRmVhdHVyZSB7XG4gICAgLyoqXG4gICAgICogV2UgZHluYW1pY2FsbHkgZ2VuZXJhdGUgdGhlIEFuaW1hdGlvblN0YXRlIG1hbmFnZXIgYXMgaXQgY29udGFpbnMgYSByZWZlcmVuY2VcbiAgICAgKiB0byB0aGUgdW5kZXJseWluZyBhbmltYXRpb24gbGlicmFyeS4gV2Ugb25seSB3YW50IHRvIGxvYWQgdGhhdCBpZiB3ZSBsb2FkIHRoaXMsXG4gICAgICogc28gcGVvcGxlIGNhbiBvcHRpb25hbGx5IGNvZGUgc3BsaXQgaXQgb3V0IHVzaW5nIHRoZSBgbWAgY29tcG9uZW50LlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKG5vZGUpIHtcbiAgICAgICAgc3VwZXIobm9kZSk7XG4gICAgICAgIG5vZGUuYW5pbWF0aW9uU3RhdGUgfHwgKG5vZGUuYW5pbWF0aW9uU3RhdGUgPSBjcmVhdGVBbmltYXRpb25TdGF0ZShub2RlKSk7XG4gICAgfVxuICAgIHVwZGF0ZUFuaW1hdGlvbkNvbnRyb2xzU3Vic2NyaXB0aW9uKCkge1xuICAgICAgICBjb25zdCB7IGFuaW1hdGUgfSA9IHRoaXMubm9kZS5nZXRQcm9wcygpO1xuICAgICAgICBpZiAoaXNBbmltYXRpb25Db250cm9scyhhbmltYXRlKSkge1xuICAgICAgICAgICAgdGhpcy51bm1vdW50Q29udHJvbHMgPSBhbmltYXRlLnN1YnNjcmliZSh0aGlzLm5vZGUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN1YnNjcmliZSBhbnkgcHJvdmlkZWQgQW5pbWF0aW9uQ29udHJvbHMgdG8gdGhlIGNvbXBvbmVudCdzIFZpc3VhbEVsZW1lbnRcbiAgICAgKi9cbiAgICBtb3VudCgpIHtcbiAgICAgICAgdGhpcy51cGRhdGVBbmltYXRpb25Db250cm9sc1N1YnNjcmlwdGlvbigpO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IHsgYW5pbWF0ZSB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XG4gICAgICAgIGNvbnN0IHsgYW5pbWF0ZTogcHJldkFuaW1hdGUgfSA9IHRoaXMubm9kZS5wcmV2UHJvcHMgfHwge307XG4gICAgICAgIGlmIChhbmltYXRlICE9PSBwcmV2QW5pbWF0ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVBbmltYXRpb25Db250cm9sc1N1YnNjcmlwdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHVubW91bnQoKSB7XG4gICAgICAgIHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5yZXNldCgpO1xuICAgICAgICB0aGlzLnVubW91bnRDb250cm9scz8uKCk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBBbmltYXRpb25GZWF0dXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/animations.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 */ animations: () => (/* binding */ animations)\n/* harmony export */ });\n/* harmony import */ var _animation_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation/index.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs\");\n/* harmony import */ var _animation_exit_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./animation/exit.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs\");\n\n\n\nconst animations = {\n animation: {\n Feature: _animation_index_mjs__WEBPACK_IMPORTED_MODULE_0__.AnimationFeature,\n },\n exit: {\n Feature: _animation_exit_mjs__WEBPACK_IMPORTED_MODULE_1__.ExitAnimationFeature,\n },\n};\n\n\n//# sourceMappingURL=animations.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9hbmltYXRpb25zLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUQ7QUFDRzs7QUFFNUQ7QUFDQTtBQUNBLGlCQUFpQixrRUFBZ0I7QUFDakMsS0FBSztBQUNMO0FBQ0EsaUJBQWlCLHFFQUFvQjtBQUNyQyxLQUFLO0FBQ0w7O0FBRXNCO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvYW5pbWF0aW9ucy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRmVhdHVyZSB9IGZyb20gJy4vYW5pbWF0aW9uL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBFeGl0QW5pbWF0aW9uRmVhdHVyZSB9IGZyb20gJy4vYW5pbWF0aW9uL2V4aXQubWpzJztcblxuY29uc3QgYW5pbWF0aW9ucyA9IHtcbiAgICBhbmltYXRpb246IHtcbiAgICAgICAgRmVhdHVyZTogQW5pbWF0aW9uRmVhdHVyZSxcbiAgICB9LFxuICAgIGV4aXQ6IHtcbiAgICAgICAgRmVhdHVyZTogRXhpdEFuaW1hdGlvbkZlYXR1cmUsXG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IGFuaW1hdGlvbnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFuaW1hdGlvbnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/definitions.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 */ getInitializedFeatureDefinitions: () => (/* binding */ getInitializedFeatureDefinitions),\n/* harmony export */ initFeatureDefinitions: () => (/* binding */ initFeatureDefinitions)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\");\n\n\nconst featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nlet isInitialized = false;\n/**\n * Initialize feature definitions with isEnabled checks.\n * This must be called before any motion components are rendered.\n */\nfunction initFeatureDefinitions() {\n if (isInitialized)\n return;\n const initialFeatureDefinitions = {};\n for (const key in featureProps) {\n initialFeatureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n }\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.setFeatureDefinitions)(initialFeatureDefinitions);\n isInitialized = true;\n}\n/**\n * Get the current feature definitions, initializing if needed.\n */\nfunction getInitializedFeatureDefinitions() {\n initFeatureDefinitions();\n return (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.getFeatureDefinitions)();\n}\n\n\n//# sourceMappingURL=definitions.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9kZWZpbml0aW9ucy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTBFOztBQUUxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksaUVBQXFCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxpRUFBcUI7QUFDaEM7O0FBRW9FO0FBQ3BFIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvZGVmaW5pdGlvbnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEZlYXR1cmVEZWZpbml0aW9ucywgc2V0RmVhdHVyZURlZmluaXRpb25zIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5cbmNvbnN0IGZlYXR1cmVQcm9wcyA9IHtcbiAgICBhbmltYXRpb246IFtcbiAgICAgICAgXCJhbmltYXRlXCIsXG4gICAgICAgIFwidmFyaWFudHNcIixcbiAgICAgICAgXCJ3aGlsZUhvdmVyXCIsXG4gICAgICAgIFwid2hpbGVUYXBcIixcbiAgICAgICAgXCJleGl0XCIsXG4gICAgICAgIFwid2hpbGVJblZpZXdcIixcbiAgICAgICAgXCJ3aGlsZUZvY3VzXCIsXG4gICAgICAgIFwid2hpbGVEcmFnXCIsXG4gICAgXSxcbiAgICBleGl0OiBbXCJleGl0XCJdLFxuICAgIGRyYWc6IFtcImRyYWdcIiwgXCJkcmFnQ29udHJvbHNcIl0sXG4gICAgZm9jdXM6IFtcIndoaWxlRm9jdXNcIl0sXG4gICAgaG92ZXI6IFtcIndoaWxlSG92ZXJcIiwgXCJvbkhvdmVyU3RhcnRcIiwgXCJvbkhvdmVyRW5kXCJdLFxuICAgIHRhcDogW1wid2hpbGVUYXBcIiwgXCJvblRhcFwiLCBcIm9uVGFwU3RhcnRcIiwgXCJvblRhcENhbmNlbFwiXSxcbiAgICBwYW46IFtcIm9uUGFuXCIsIFwib25QYW5TdGFydFwiLCBcIm9uUGFuU2Vzc2lvblN0YXJ0XCIsIFwib25QYW5FbmRcIl0sXG4gICAgaW5WaWV3OiBbXCJ3aGlsZUluVmlld1wiLCBcIm9uVmlld3BvcnRFbnRlclwiLCBcIm9uVmlld3BvcnRMZWF2ZVwiXSxcbiAgICBsYXlvdXQ6IFtcImxheW91dFwiLCBcImxheW91dElkXCJdLFxufTtcbmxldCBpc0luaXRpYWxpemVkID0gZmFsc2U7XG4vKipcbiAqIEluaXRpYWxpemUgZmVhdHVyZSBkZWZpbml0aW9ucyB3aXRoIGlzRW5hYmxlZCBjaGVja3MuXG4gKiBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBhbnkgbW90aW9uIGNvbXBvbmVudHMgYXJlIHJlbmRlcmVkLlxuICovXG5mdW5jdGlvbiBpbml0RmVhdHVyZURlZmluaXRpb25zKCkge1xuICAgIGlmIChpc0luaXRpYWxpemVkKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgaW5pdGlhbEZlYXR1cmVEZWZpbml0aW9ucyA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIGZlYXR1cmVQcm9wcykge1xuICAgICAgICBpbml0aWFsRmVhdHVyZURlZmluaXRpb25zW2tleV0gPSB7XG4gICAgICAgICAgICBpc0VuYWJsZWQ6IChwcm9wcykgPT4gZmVhdHVyZVByb3BzW2tleV0uc29tZSgobmFtZSkgPT4gISFwcm9wc1tuYW1lXSksXG4gICAgICAgIH07XG4gICAgfVxuICAgIHNldEZlYXR1cmVEZWZpbml0aW9ucyhpbml0aWFsRmVhdHVyZURlZmluaXRpb25zKTtcbiAgICBpc0luaXRpYWxpemVkID0gdHJ1ZTtcbn1cbi8qKlxuICogR2V0IHRoZSBjdXJyZW50IGZlYXR1cmUgZGVmaW5pdGlvbnMsIGluaXRpYWxpemluZyBpZiBuZWVkZWQuXG4gKi9cbmZ1bmN0aW9uIGdldEluaXRpYWxpemVkRmVhdHVyZURlZmluaXRpb25zKCkge1xuICAgIGluaXRGZWF0dXJlRGVmaW5pdGlvbnMoKTtcbiAgICByZXR1cm4gZ2V0RmVhdHVyZURlZmluaXRpb25zKCk7XG59XG5cbmV4cG9ydCB7IGdldEluaXRpYWxpemVkRmVhdHVyZURlZmluaXRpb25zLCBpbml0RmVhdHVyZURlZmluaXRpb25zIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZpbml0aW9ucy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/drag.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 */ drag: () => (/* binding */ drag)\n/* harmony export */ });\n/* harmony import */ var _gestures_drag_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../gestures/drag/index.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs\");\n/* harmony import */ var _gestures_pan_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../gestures/pan/index.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs\");\n/* harmony import */ var _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./layout/MeasureLayout.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs\");\n\n\n\n\n\nconst drag = {\n pan: {\n Feature: _gestures_pan_index_mjs__WEBPACK_IMPORTED_MODULE_0__.PanGesture,\n },\n drag: {\n Feature: _gestures_drag_index_mjs__WEBPACK_IMPORTED_MODULE_1__.DragGesture,\n ProjectionNode: motion_dom__WEBPACK_IMPORTED_MODULE_2__.HTMLProjectionNode,\n MeasureLayout: _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_3__.MeasureLayout,\n },\n};\n\n\n//# sourceMappingURL=drag.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9kcmFnLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUE0RDtBQUNGO0FBQ0M7QUFDWDs7QUFFaEQ7QUFDQTtBQUNBLGlCQUFpQiwrREFBVTtBQUMzQixLQUFLO0FBQ0w7QUFDQSxpQkFBaUIsaUVBQVc7QUFDNUIsd0JBQXdCLDBEQUFrQjtBQUMxQyxxQkFBcUI7QUFDckIsS0FBSztBQUNMOztBQUVnQjtBQUNoQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2RyYWcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERyYWdHZXN0dXJlIH0gZnJvbSAnLi4vLi4vZ2VzdHVyZXMvZHJhZy9pbmRleC5tanMnO1xuaW1wb3J0IHsgUGFuR2VzdHVyZSB9IGZyb20gJy4uLy4uL2dlc3R1cmVzL3Bhbi9pbmRleC5tanMnO1xuaW1wb3J0IHsgTWVhc3VyZUxheW91dCB9IGZyb20gJy4vbGF5b3V0L01lYXN1cmVMYXlvdXQubWpzJztcbmltcG9ydCB7IEhUTUxQcm9qZWN0aW9uTm9kZSB9IGZyb20gJ21vdGlvbi1kb20nO1xuXG5jb25zdCBkcmFnID0ge1xuICAgIHBhbjoge1xuICAgICAgICBGZWF0dXJlOiBQYW5HZXN0dXJlLFxuICAgIH0sXG4gICAgZHJhZzoge1xuICAgICAgICBGZWF0dXJlOiBEcmFnR2VzdHVyZSxcbiAgICAgICAgUHJvamVjdGlvbk5vZGU6IEhUTUxQcm9qZWN0aW9uTm9kZSxcbiAgICAgICAgTWVhc3VyZUxheW91dCxcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgZHJhZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZHJhZy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/gestures.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 */ gestureAnimations: () => (/* binding */ gestureAnimations)\n/* harmony export */ });\n/* harmony import */ var _gestures_hover_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../gestures/hover.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/gestures/hover.mjs\");\n/* harmony import */ var _gestures_focus_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gestures/focus.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/gestures/focus.mjs\");\n/* harmony import */ var _gestures_press_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../gestures/press.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/gestures/press.mjs\");\n/* harmony import */ var _viewport_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./viewport/index.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs\");\n\n\n\n\n\nconst gestureAnimations = {\n inView: {\n Feature: _viewport_index_mjs__WEBPACK_IMPORTED_MODULE_0__.InViewFeature,\n },\n tap: {\n Feature: _gestures_press_mjs__WEBPACK_IMPORTED_MODULE_1__.PressGesture,\n },\n focus: {\n Feature: _gestures_focus_mjs__WEBPACK_IMPORTED_MODULE_2__.FocusGesture,\n },\n hover: {\n Feature: _gestures_hover_mjs__WEBPACK_IMPORTED_MODULE_3__.HoverGesture,\n },\n};\n\n\n//# sourceMappingURL=gestures.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9nZXN0dXJlcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBd0Q7QUFDQTtBQUNBO0FBQ0g7O0FBRXJEO0FBQ0E7QUFDQSxpQkFBaUIsOERBQWE7QUFDOUIsS0FBSztBQUNMO0FBQ0EsaUJBQWlCLDZEQUFZO0FBQzdCLEtBQUs7QUFDTDtBQUNBLGlCQUFpQiw2REFBWTtBQUM3QixLQUFLO0FBQ0w7QUFDQSxpQkFBaUIsNkRBQVk7QUFDN0IsS0FBSztBQUNMOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2dlc3R1cmVzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIb3Zlckdlc3R1cmUgfSBmcm9tICcuLi8uLi9nZXN0dXJlcy9ob3Zlci5tanMnO1xuaW1wb3J0IHsgRm9jdXNHZXN0dXJlIH0gZnJvbSAnLi4vLi4vZ2VzdHVyZXMvZm9jdXMubWpzJztcbmltcG9ydCB7IFByZXNzR2VzdHVyZSB9IGZyb20gJy4uLy4uL2dlc3R1cmVzL3ByZXNzLm1qcyc7XG5pbXBvcnQgeyBJblZpZXdGZWF0dXJlIH0gZnJvbSAnLi92aWV3cG9ydC9pbmRleC5tanMnO1xuXG5jb25zdCBnZXN0dXJlQW5pbWF0aW9ucyA9IHtcbiAgICBpblZpZXc6IHtcbiAgICAgICAgRmVhdHVyZTogSW5WaWV3RmVhdHVyZSxcbiAgICB9LFxuICAgIHRhcDoge1xuICAgICAgICBGZWF0dXJlOiBQcmVzc0dlc3R1cmUsXG4gICAgfSxcbiAgICBmb2N1czoge1xuICAgICAgICBGZWF0dXJlOiBGb2N1c0dlc3R1cmUsXG4gICAgfSxcbiAgICBob3Zlcjoge1xuICAgICAgICBGZWF0dXJlOiBIb3Zlckdlc3R1cmUsXG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IGdlc3R1cmVBbmltYXRpb25zIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXN0dXJlcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/layout.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 */ layout: () => (/* binding */ layout)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs\");\n/* harmony import */ var _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layout/MeasureLayout.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\");\n\n\n\nconst layout = {\n layout: {\n ProjectionNode: motion_dom__WEBPACK_IMPORTED_MODULE_0__.HTMLProjectionNode,\n MeasureLayout: _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_1__.MeasureLayout,\n },\n};\n\n\n//# sourceMappingURL=layout.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9sYXlvdXQubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFnRDtBQUNXOztBQUUzRDtBQUNBO0FBQ0Esd0JBQXdCLDBEQUFrQjtBQUMxQyxxQkFBcUI7QUFDckIsS0FBSztBQUNMOztBQUVrQjtBQUNsQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRNTFByb2plY3Rpb25Ob2RlIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBNZWFzdXJlTGF5b3V0IH0gZnJvbSAnLi9sYXlvdXQvTWVhc3VyZUxheW91dC5tanMnO1xuXG5jb25zdCBsYXlvdXQgPSB7XG4gICAgbGF5b3V0OiB7XG4gICAgICAgIFByb2plY3Rpb25Ob2RlOiBIVE1MUHJvamVjdGlvbk5vZGUsXG4gICAgICAgIE1lYXN1cmVMYXlvdXQsXG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IGxheW91dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGF5b3V0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.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 */ MeasureLayout: () => (/* binding */ MeasureLayout)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/node/state.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _components_AnimatePresence_use_presence_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../components/AnimatePresence/use-presence.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../context/LayoutGroupContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../context/SwitchLayoutGroupContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\");\n/* __next_internal_client_entry_do_not_use__ MeasureLayout auto */ \n\n\n\n\n\n/**\n * Track whether we've taken any snapshots yet. If not,\n * we can safely skip notification of didUpdate.\n *\n * Difficult to capture in a test but to prevent flickering\n * we must set this to true either on update or unmount.\n * Running `next-env/layout-id` in Safari will show this behaviour if broken.\n */ let hasTakenAnySnapshot = false;\nclass MeasureLayoutWithContext extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */ componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n if (projection) {\n if (layoutGroup.group) layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n if (hasTakenAnySnapshot) {\n projection.root.didUpdate();\n }\n projection.addEventListener(\"animationComplete\", ()=>{\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n layoutDependency: this.props.layoutDependency,\n onExitComplete: ()=>this.safeToRemove()\n });\n }\n motion_dom__WEBPACK_IMPORTED_MODULE_2__.globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const { projection } = visualElement;\n if (!projection) return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */ projection.isPresent = isPresent;\n if (prevProps.layoutDependency !== layoutDependency) {\n projection.setOptions({\n ...projection.options,\n layoutDependency\n });\n }\n hasTakenAnySnapshot = true;\n if (drag || prevProps.layoutDependency !== layoutDependency || layoutDependency === undefined || prevProps.isPresent !== isPresent) {\n projection.willUpdate();\n } else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n } else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */ motion_dom__WEBPACK_IMPORTED_MODULE_3__.frame.postRender(()=>{\n const stack = projection.getStack();\n if (!stack || !stack.members.length) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n motion_dom__WEBPACK_IMPORTED_MODULE_4__.microtask.postRender(()=>{\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n });\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext } = this.props;\n const { projection } = visualElement;\n hasTakenAnySnapshot = true;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup && layoutGroup.group) layoutGroup.group.remove(projection);\n if (promoteContext && promoteContext.deregister) promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove && safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n const [isPresent, safeToRemove] = (0,_components_AnimatePresence_use_presence_mjs__WEBPACK_IMPORTED_MODULE_5__.usePresence)();\n const layoutGroup = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__.LayoutGroupContext);\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MeasureLayoutWithContext, {\n ...props,\n layoutGroup: layoutGroup,\n switchLayoutGroup: (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_7__.SwitchLayoutGroupContext),\n isPresent: isPresent,\n safeToRemove: safeToRemove\n });\n}\n //# sourceMappingURL=MeasureLayout.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9sYXlvdXQvTWVhc3VyZUxheW91dC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JBOzs7Ozs7O0NBT0csR0FDSDtBQUVBO0lBQ0k7Ozs7S0FJRztRQUVDO1FBRUE7O21DQUcyQjs7Z0JBR25COzs7Z0JBSUE7O1lBR0o7O1lBRUE7OztnQkFHSTtnQkFDQTtZQUNIOztRQUdMLDZEQUFxQixDQUFyQjs7SUFHSjtRQUNJO1FBQ0E7UUFFQSxpQkFBaUI7UUFFakI7Ozs7OztTQU1HLEdBQ0g7UUFFQTs7OztZQUlLOzs7UUFLTCwrREFHSSxrQ0FDQTs7Ozs7UUFPSjs7O21CQUdXO2dCQUNIOzs7O2lCQUlHLEdBQ0gsNkNBQUssQ0FBTDtvQkFDSTs7OztnQkFJSjs7O1FBSVI7Ozs7O1lBTUk7WUFFQSxpREFBUyxDQUFUOzs7O1lBSUE7Ozs7UUFLSjtRQUtBOzs7O1lBTUksc0NBQ0k7WUFDSixpREFDSTs7OztRQUtSOzs7O1FBS0E7O0FBRVA7QUFFSzs7SUFJRjs7Ozs7Ozs7QUFXSiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zcmMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC9NZWFzdXJlTGF5b3V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyBmcmFtZSwgbWljcm90YXNrLCBnbG9iYWxQcm9qZWN0aW9uU3RhdGUsIHR5cGUgVmlzdWFsRWxlbWVudCB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCB7IENvbXBvbmVudCwgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB1c2VQcmVzZW5jZSB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL0FuaW1hdGVQcmVzZW5jZS91c2UtcHJlc2VuY2VcIlxuaW1wb3J0IHtcbiAgICBMYXlvdXRHcm91cENvbnRleHQsXG4gICAgTGF5b3V0R3JvdXBDb250ZXh0UHJvcHMsXG59IGZyb20gXCIuLi8uLi8uLi9jb250ZXh0L0xheW91dEdyb3VwQ29udGV4dFwiXG5pbXBvcnQgeyBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vY29udGV4dC9Td2l0Y2hMYXlvdXRHcm91cENvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIlxuXG5pbnRlcmZhY2UgTWVhc3VyZUNvbnRleHRQcm9wcyB7XG4gICAgbGF5b3V0R3JvdXA6IExheW91dEdyb3VwQ29udGV4dFByb3BzXG4gICAgc3dpdGNoTGF5b3V0R3JvdXA/OiBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHRcbiAgICBpc1ByZXNlbnQ6IGJvb2xlYW5cbiAgICBzYWZlVG9SZW1vdmU/OiBWb2lkRnVuY3Rpb24gfCBudWxsXG59XG5cbnR5cGUgTWVhc3VyZVByb3BzID0gTW90aW9uUHJvcHMgJlxuICAgIE1lYXN1cmVDb250ZXh0UHJvcHMgJiB7IHZpc3VhbEVsZW1lbnQ6IFZpc3VhbEVsZW1lbnQgfVxuXG4vKipcbiAqIFRyYWNrIHdoZXRoZXIgd2UndmUgdGFrZW4gYW55IHNuYXBzaG90cyB5ZXQuIElmIG5vdCxcbiAqIHdlIGNhbiBzYWZlbHkgc2tpcCBub3RpZmljYXRpb24gb2YgZGlkVXBkYXRlLlxuICpcbiAqIERpZmZpY3VsdCB0byBjYXB0dXJlIGluIGEgdGVzdCBidXQgdG8gcHJldmVudCBmbGlja2VyaW5nXG4gKiB3ZSBtdXN0IHNldCB0aGlzIHRvIHRydWUgZWl0aGVyIG9uIHVwZGF0ZSBvciB1bm1vdW50LlxuICogUnVubmluZyBgbmV4dC1lbnYvbGF5b3V0LWlkYCBpbiBTYWZhcmkgd2lsbCBzaG93IHRoaXMgYmVoYXZpb3VyIGlmIGJyb2tlbi5cbiAqL1xubGV0IGhhc1Rha2VuQW55U25hcHNob3QgPSBmYWxzZVxuXG5jbGFzcyBNZWFzdXJlTGF5b3V0V2l0aENvbnRleHQgZXh0ZW5kcyBDb21wb25lbnQ8TWVhc3VyZVByb3BzPiB7XG4gICAgLyoqXG4gICAgICogVGhpcyBvbmx5IG1vdW50cyBwcm9qZWN0aW9uIG5vZGVzIGZvciBjb21wb25lbnRzIHRoYXRcbiAgICAgKiBuZWVkIG1lYXN1cmluZywgd2UgbWlnaHQgd2FudCB0byBkbyBpdCBmb3IgYWxsIGNvbXBvbmVudHNcbiAgICAgKiBpbiBvcmRlciB0byBpbmNvcnBvcmF0ZSB0cmFuc2Zvcm1zXG4gICAgICovXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCwgbGF5b3V0R3JvdXAsIHN3aXRjaExheW91dEdyb3VwLCBsYXlvdXRJZCB9ID1cbiAgICAgICAgICAgIHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB2aXN1YWxFbGVtZW50XG5cbiAgICAgICAgaWYgKHByb2plY3Rpb24pIHtcbiAgICAgICAgICAgIGlmIChsYXlvdXRHcm91cC5ncm91cCkgbGF5b3V0R3JvdXAuZ3JvdXAuYWRkKHByb2plY3Rpb24pXG5cbiAgICAgICAgICAgIGlmIChzd2l0Y2hMYXlvdXRHcm91cCAmJiBzd2l0Y2hMYXlvdXRHcm91cC5yZWdpc3RlciAmJiBsYXlvdXRJZCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaExheW91dEdyb3VwLnJlZ2lzdGVyKHByb2plY3Rpb24pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChoYXNUYWtlbkFueVNuYXBzaG90KSB7XG4gICAgICAgICAgICAgICAgcHJvamVjdGlvbi5yb290IS5kaWRVcGRhdGUoKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwcm9qZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoXCJhbmltYXRpb25Db21wbGV0ZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zYWZlVG9SZW1vdmUoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHByb2plY3Rpb24uc2V0T3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgLi4ucHJvamVjdGlvbi5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGxheW91dERlcGVuZGVuY3k6IHRoaXMucHJvcHMubGF5b3V0RGVwZW5kZW5jeSxcbiAgICAgICAgICAgICAgICBvbkV4aXRDb21wbGV0ZTogKCkgPT4gdGhpcy5zYWZlVG9SZW1vdmUoKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBnbG9iYWxQcm9qZWN0aW9uU3RhdGUuaGFzRXZlclVwZGF0ZWQgPSB0cnVlXG4gICAgfVxuXG4gICAgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzOiBNZWFzdXJlUHJvcHMpIHtcbiAgICAgICAgY29uc3QgeyBsYXlvdXREZXBlbmRlbmN5LCB2aXN1YWxFbGVtZW50LCBkcmFnLCBpc1ByZXNlbnQgfSA9IHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB2aXN1YWxFbGVtZW50XG5cbiAgICAgICAgaWYgKCFwcm9qZWN0aW9uKSByZXR1cm4gbnVsbFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUT0RPOiBXZSB1c2UgdGhpcyBkYXRhIGluIHJlbGVnYXRlIHRvIGRldGVybWluZSB3aGV0aGVyIHRvXG4gICAgICAgICAqIHByb21vdGUgYSBwcmV2aW91cyBlbGVtZW50LiBUaGVyZSdzIG5vIGd1YXJhbnRlZSBpdHMgcHJlc2VuY2UgZGF0YVxuICAgICAgICAgKiB3aWxsIGhhdmUgdXBkYXRlZCBieSB0aGlzIHBvaW50IC0gaWYgYSBidWcgbGlrZSB0aGlzIGFyaXNlcyBpdCB3aWxsXG4gICAgICAgICAqIGhhdmUgdG8gYmUgdGhhdCB3ZSBtYXJrRm9yUmVsZWdhdGlvbiBhbmQgdGhlbiBmaW5kIGEgbmV3IGxlYWQgc29tZSBvdGhlciB3YXksXG4gICAgICAgICAqIHBlcmhhcHMgaW4gZGlkVXBkYXRlXG4gICAgICAgICAqL1xuICAgICAgICBwcm9qZWN0aW9uLmlzUHJlc2VudCA9IGlzUHJlc2VudFxuXG4gICAgICAgIGlmIChwcmV2UHJvcHMubGF5b3V0RGVwZW5kZW5jeSAhPT0gbGF5b3V0RGVwZW5kZW5jeSkge1xuICAgICAgICAgICAgcHJvamVjdGlvbi5zZXRPcHRpb25zKHtcbiAgICAgICAgICAgICAgICAuLi5wcm9qZWN0aW9uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgbGF5b3V0RGVwZW5kZW5jeSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBoYXNUYWtlbkFueVNuYXBzaG90ID0gdHJ1ZVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGRyYWcgfHxcbiAgICAgICAgICAgIHByZXZQcm9wcy5sYXlvdXREZXBlbmRlbmN5ICE9PSBsYXlvdXREZXBlbmRlbmN5IHx8XG4gICAgICAgICAgICBsYXlvdXREZXBlbmRlbmN5ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIHByZXZQcm9wcy5pc1ByZXNlbnQgIT09IGlzUHJlc2VudFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHByb2plY3Rpb24ud2lsbFVwZGF0ZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNhZmVUb1JlbW92ZSgpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJldlByb3BzLmlzUHJlc2VudCAhPT0gaXNQcmVzZW50KSB7XG4gICAgICAgICAgICBpZiAoaXNQcmVzZW50KSB7XG4gICAgICAgICAgICAgICAgcHJvamVjdGlvbi5wcm9tb3RlKClcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXByb2plY3Rpb24ucmVsZWdhdGUoKSkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHRoZXJlJ3MgYW5vdGhlciBzdGFjayBtZW1iZXIgdGFraW5nIG92ZXIgZnJvbSB0aGlzIG9uZSxcbiAgICAgICAgICAgICAgICAgKiBpdCdzIGluIGNoYXJnZSBvZiB0aGUgZXhpdCBhbmltYXRpb24gYW5kIHRoZXJlZm9yZSBzaG91bGRcbiAgICAgICAgICAgICAgICAgKiBiZSBpbiBjaGFyZ2Ugb2YgdGhlIHNhZmUgdG8gcmVtb3ZlLiBPdGhlcndpc2Ugd2UgY2FsbCBpdCBoZXJlLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGZyYW1lLnBvc3RSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFjayA9IHByb2plY3Rpb24uZ2V0U3RhY2soKVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXN0YWNrIHx8ICFzdGFjay5tZW1iZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zYWZlVG9SZW1vdmUoKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgICBjb25zdCB7IHByb2plY3Rpb24gfSA9IHRoaXMucHJvcHMudmlzdWFsRWxlbWVudFxuICAgICAgICBpZiAocHJvamVjdGlvbikge1xuICAgICAgICAgICAgcHJvamVjdGlvbi5yb290IS5kaWRVcGRhdGUoKVxuXG4gICAgICAgICAgICBtaWNyb3Rhc2sucG9zdFJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0aW9uLmN1cnJlbnRBbmltYXRpb24gJiYgcHJvamVjdGlvbi5pc0xlYWQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNhZmVUb1JlbW92ZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LFxuICAgICAgICAgICAgbGF5b3V0R3JvdXAsXG4gICAgICAgICAgICBzd2l0Y2hMYXlvdXRHcm91cDogcHJvbW90ZUNvbnRleHQsXG4gICAgICAgIH0gPSB0aGlzLnByb3BzXG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdmlzdWFsRWxlbWVudFxuXG4gICAgICAgIGhhc1Rha2VuQW55U25hcHNob3QgPSB0cnVlXG5cbiAgICAgICAgaWYgKHByb2plY3Rpb24pIHtcbiAgICAgICAgICAgIHByb2plY3Rpb24uc2NoZWR1bGVDaGVja0FmdGVyVW5tb3VudCgpXG4gICAgICAgICAgICBpZiAobGF5b3V0R3JvdXAgJiYgbGF5b3V0R3JvdXAuZ3JvdXApXG4gICAgICAgICAgICAgICAgbGF5b3V0R3JvdXAuZ3JvdXAucmVtb3ZlKHByb2plY3Rpb24pXG4gICAgICAgICAgICBpZiAocHJvbW90ZUNvbnRleHQgJiYgcHJvbW90ZUNvbnRleHQuZGVyZWdpc3RlcilcbiAgICAgICAgICAgICAgICBwcm9tb3RlQ29udGV4dC5kZXJlZ2lzdGVyKHByb2plY3Rpb24pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzYWZlVG9SZW1vdmUoKSB7XG4gICAgICAgIGNvbnN0IHsgc2FmZVRvUmVtb3ZlIH0gPSB0aGlzLnByb3BzXG4gICAgICAgIHNhZmVUb1JlbW92ZSAmJiBzYWZlVG9SZW1vdmUoKVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNZWFzdXJlTGF5b3V0KFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wcyAmIHsgdmlzdWFsRWxlbWVudDogVmlzdWFsRWxlbWVudCB9XG4pIHtcbiAgICBjb25zdCBbaXNQcmVzZW50LCBzYWZlVG9SZW1vdmVdID0gdXNlUHJlc2VuY2UoKVxuICAgIGNvbnN0IGxheW91dEdyb3VwID0gdXNlQ29udGV4dChMYXlvdXRHcm91cENvbnRleHQpXG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8TWVhc3VyZUxheW91dFdpdGhDb250ZXh0XG4gICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICBsYXlvdXRHcm91cD17bGF5b3V0R3JvdXB9XG4gICAgICAgICAgICBzd2l0Y2hMYXlvdXRHcm91cD17dXNlQ29udGV4dChTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQpfVxuICAgICAgICAgICAgaXNQcmVzZW50PXtpc1ByZXNlbnR9XG4gICAgICAgICAgICBzYWZlVG9SZW1vdmU9e3NhZmVUb1JlbW92ZX1cbiAgICAgICAgLz5cbiAgICApXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/load-features.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 */ loadFeatures: () => (/* binding */ loadFeatures)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\");\n/* harmony import */ var _definitions_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./definitions.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\");\n\n\n\nfunction loadFeatures(features) {\n const featureDefinitions = (0,_definitions_mjs__WEBPACK_IMPORTED_MODULE_0__.getInitializedFeatureDefinitions)();\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.setFeatureDefinitions)(featureDefinitions);\n}\n\n\n//# sourceMappingURL=load-features.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9sb2FkLWZlYXR1cmVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBbUQ7QUFDa0I7O0FBRXJFO0FBQ0EsK0JBQStCLGtGQUFnQztBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGlFQUFxQjtBQUN6Qjs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9sb2FkLWZlYXR1cmVzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZXRGZWF0dXJlRGVmaW5pdGlvbnMgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IGdldEluaXRpYWxpemVkRmVhdHVyZURlZmluaXRpb25zIH0gZnJvbSAnLi9kZWZpbml0aW9ucy5tanMnO1xuXG5mdW5jdGlvbiBsb2FkRmVhdHVyZXMoZmVhdHVyZXMpIHtcbiAgICBjb25zdCBmZWF0dXJlRGVmaW5pdGlvbnMgPSBnZXRJbml0aWFsaXplZEZlYXR1cmVEZWZpbml0aW9ucygpO1xuICAgIGZvciAoY29uc3Qga2V5IGluIGZlYXR1cmVzKSB7XG4gICAgICAgIGZlYXR1cmVEZWZpbml0aW9uc1trZXldID0ge1xuICAgICAgICAgICAgLi4uZmVhdHVyZURlZmluaXRpb25zW2tleV0sXG4gICAgICAgICAgICAuLi5mZWF0dXJlc1trZXldLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBzZXRGZWF0dXJlRGVmaW5pdGlvbnMoZmVhdHVyZURlZmluaXRpb25zKTtcbn1cblxuZXhwb3J0IHsgbG9hZEZlYXR1cmVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sb2FkLWZlYXR1cmVzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/viewport/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 */ InViewFeature: () => (/* binding */ InViewFeature)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var _observers_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./observers.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs\");\n\n\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return (0,_observers_mjs__WEBPACK_IMPORTED_MODULE_1__.observeIntersection)(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy92aWV3cG9ydC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXFDO0FBQ2lCOztBQUV0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwrQ0FBTztBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixnQkFBZ0I7QUFDaEMsZ0JBQWdCLGtEQUFrRDtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsbUNBQW1DO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUVBQW1CO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1CQUFtQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxlQUFlLElBQUksOEJBQThCLElBQUk7QUFDekY7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy92aWV3cG9ydC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ21vdGlvbi1kb20nO1xuaW1wb3J0IHsgb2JzZXJ2ZUludGVyc2VjdGlvbiB9IGZyb20gJy4vb2JzZXJ2ZXJzLm1qcyc7XG5cbmNvbnN0IHRocmVzaG9sZE5hbWVzID0ge1xuICAgIHNvbWU6IDAsXG4gICAgYWxsOiAxLFxufTtcbmNsYXNzIEluVmlld0ZlYXR1cmUgZXh0ZW5kcyBGZWF0dXJlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5oYXNFbnRlcmVkVmlldyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzSW5WaWV3ID0gZmFsc2U7XG4gICAgfVxuICAgIHN0YXJ0T2JzZXJ2ZXIoKSB7XG4gICAgICAgIHRoaXMudW5tb3VudCgpO1xuICAgICAgICBjb25zdCB7IHZpZXdwb3J0ID0ge30gfSA9IHRoaXMubm9kZS5nZXRQcm9wcygpO1xuICAgICAgICBjb25zdCB7IHJvb3QsIG1hcmdpbjogcm9vdE1hcmdpbiwgYW1vdW50ID0gXCJzb21lXCIsIG9uY2UgfSA9IHZpZXdwb3J0O1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgcm9vdDogcm9vdCA/IHJvb3QuY3VycmVudCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHJvb3RNYXJnaW4sXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IHR5cGVvZiBhbW91bnQgPT09IFwibnVtYmVyXCIgPyBhbW91bnQgOiB0aHJlc2hvbGROYW1lc1thbW91bnRdLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvbkludGVyc2VjdGlvblVwZGF0ZSA9IChlbnRyeSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBpc0ludGVyc2VjdGluZyB9ID0gZW50cnk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoZXJlJ3MgYmVlbiBubyBjaGFuZ2UgaW4gdGhlIHZpZXdwb3J0IHN0YXRlLCBlYXJseSByZXR1cm4uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLmlzSW5WaWV3ID09PSBpc0ludGVyc2VjdGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLmlzSW5WaWV3ID0gaXNJbnRlcnNlY3Rpbmc7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEhhbmRsZSBoYXNFbnRlcmVkVmlldy4gSWYgdGhpcyBpcyBvbmx5IG1lYW50IHRvIHJ1biBvbmNlLCBhbmRcbiAgICAgICAgICAgICAqIGVsZW1lbnQgaXNuJ3QgdmlzaWJsZSwgZWFybHkgcmV0dXJuLiBPdGhlcndpc2Ugc2V0IGhhc0VudGVyZWRWaWV3IHRvIHRydWUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChvbmNlICYmICFpc0ludGVyc2VjdGluZyAmJiB0aGlzLmhhc0VudGVyZWRWaWV3KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNJbnRlcnNlY3RpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc0VudGVyZWRWaWV3ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwid2hpbGVJblZpZXdcIiwgaXNJbnRlcnNlY3RpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBVc2UgdGhlIGxhdGVzdCBjb21taXR0ZWQgcHJvcHMgcmF0aGVyIHRoYW4gdGhlIG9uZXMgaW4gc2NvcGVcbiAgICAgICAgICAgICAqIHdoZW4gdGhpcyBvYnNlcnZlciBpcyBjcmVhdGVkXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IHsgb25WaWV3cG9ydEVudGVyLCBvblZpZXdwb3J0TGVhdmUgfSA9IHRoaXMubm9kZS5nZXRQcm9wcygpO1xuICAgICAgICAgICAgY29uc3QgY2FsbGJhY2sgPSBpc0ludGVyc2VjdGluZyA/IG9uVmlld3BvcnRFbnRlciA6IG9uVmlld3BvcnRMZWF2ZTtcbiAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKGVudHJ5KTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIG9ic2VydmVJbnRlcnNlY3Rpb24odGhpcy5ub2RlLmN1cnJlbnQsIG9wdGlvbnMsIG9uSW50ZXJzZWN0aW9uVXBkYXRlKTtcbiAgICB9XG4gICAgbW91bnQoKSB7XG4gICAgICAgIHRoaXMuc3RhcnRPYnNlcnZlcigpO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIGlmICh0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPT09IFwidW5kZWZpbmVkXCIpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgcHJvcHMsIHByZXZQcm9wcyB9ID0gdGhpcy5ub2RlO1xuICAgICAgICBjb25zdCBoYXNPcHRpb25zQ2hhbmdlZCA9IFtcImFtb3VudFwiLCBcIm1hcmdpblwiLCBcInJvb3RcIl0uc29tZShoYXNWaWV3cG9ydE9wdGlvbkNoYW5nZWQocHJvcHMsIHByZXZQcm9wcykpO1xuICAgICAgICBpZiAoaGFzT3B0aW9uc0NoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRPYnNlcnZlcigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHVubW91bnQoKSB7IH1cbn1cbmZ1bmN0aW9uIGhhc1ZpZXdwb3J0T3B0aW9uQ2hhbmdlZCh7IHZpZXdwb3J0ID0ge30gfSwgeyB2aWV3cG9ydDogcHJldlZpZXdwb3J0ID0ge30gfSA9IHt9KSB7XG4gICAgcmV0dXJuIChuYW1lKSA9PiB2aWV3cG9ydFtuYW1lXSAhPT0gcHJldlZpZXdwb3J0W25hbWVdO1xufVxuXG5leHBvcnQgeyBJblZpZXdGZWF0dXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/viewport/observers.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 */ observeIntersection: () => (/* binding */ observeIntersection)\n/* harmony export */ });\n/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\n\n//# sourceMappingURL=observers.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy92aWV3cG9ydC9vYnNlcnZlcnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxrQkFBa0I7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0ZBQWtGLGtCQUFrQjtBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvdmlld3BvcnQvb2JzZXJ2ZXJzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1hcCBhbiBJbnRlcnNlY3Rpb25IYW5kbGVyIGNhbGxiYWNrIHRvIGFuIGVsZW1lbnQuIFdlIG9ubHkgZXZlciBtYWtlIG9uZSBoYW5kbGVyIGZvciBvbmVcbiAqIGVsZW1lbnQsIHNvIGV2ZW4gdGhvdWdoIHRoZXNlIGhhbmRsZXJzIG1pZ2h0IGFsbCBiZSB0cmlnZ2VyZWQgYnkgZGlmZmVyZW50XG4gKiBvYnNlcnZlcnMsIHdlIGNhbiBrZWVwIHRoZW0gaW4gdGhlIHNhbWUgbWFwLlxuICovXG5jb25zdCBvYnNlcnZlckNhbGxiYWNrcyA9IG5ldyBXZWFrTWFwKCk7XG4vKipcbiAqIE11bHRpcGxlIG9ic2VydmVycyBjYW4gYmUgY3JlYXRlZCBmb3IgbXVsdGlwbGUgZWxlbWVudC9kb2N1bWVudCByb290cy4gRWFjaCB3aXRoXG4gKiBkaWZmZXJlbnQgc2V0dGluZ3MuIFNvIGhlcmUgd2Ugc3RvcmUgZGljdGlvbmFyaWVzIG9mIG9ic2VydmVycyB0byBlYWNoIHJvb3QsXG4gKiB1c2luZyBzZXJpYWxpc2VkIHNldHRpbmdzICh0aHJlc2hvbGQvbWFyZ2luKSBhcyBsb29rdXAga2V5cy5cbiAqL1xuY29uc3Qgb2JzZXJ2ZXJzID0gbmV3IFdlYWtNYXAoKTtcbmNvbnN0IGZpcmVPYnNlcnZlckNhbGxiYWNrID0gKGVudHJ5KSA9PiB7XG4gICAgY29uc3QgY2FsbGJhY2sgPSBvYnNlcnZlckNhbGxiYWNrcy5nZXQoZW50cnkudGFyZ2V0KTtcbiAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhlbnRyeSk7XG59O1xuY29uc3QgZmlyZUFsbE9ic2VydmVyQ2FsbGJhY2tzID0gKGVudHJpZXMpID0+IHtcbiAgICBlbnRyaWVzLmZvckVhY2goZmlyZU9ic2VydmVyQ2FsbGJhY2spO1xufTtcbmZ1bmN0aW9uIGluaXRJbnRlcnNlY3Rpb25PYnNlcnZlcih7IHJvb3QsIC4uLm9wdGlvbnMgfSkge1xuICAgIGNvbnN0IGxvb2t1cFJvb3QgPSByb290IHx8IGRvY3VtZW50O1xuICAgIC8qKlxuICAgICAqIElmIHdlIGRvbid0IGhhdmUgYW4gb2JzZXJ2ZXIgbG9va3VwIG1hcCBmb3IgdGhpcyByb290LCBjcmVhdGUgb25lLlxuICAgICAqL1xuICAgIGlmICghb2JzZXJ2ZXJzLmhhcyhsb29rdXBSb290KSkge1xuICAgICAgICBvYnNlcnZlcnMuc2V0KGxvb2t1cFJvb3QsIHt9KTtcbiAgICB9XG4gICAgY29uc3Qgcm9vdE9ic2VydmVycyA9IG9ic2VydmVycy5nZXQobG9va3VwUm9vdCk7XG4gICAgY29uc3Qga2V5ID0gSlNPTi5zdHJpbmdpZnkob3B0aW9ucyk7XG4gICAgLyoqXG4gICAgICogSWYgd2UgZG9uJ3QgaGF2ZSBhbiBvYnNlcnZlciBmb3IgdGhpcyBjb21iaW5hdGlvbiBvZiByb290IGFuZCBzZXR0aW5ncyxcbiAgICAgKiBjcmVhdGUgb25lLlxuICAgICAqL1xuICAgIGlmICghcm9vdE9ic2VydmVyc1trZXldKSB7XG4gICAgICAgIHJvb3RPYnNlcnZlcnNba2V5XSA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihmaXJlQWxsT2JzZXJ2ZXJDYWxsYmFja3MsIHsgcm9vdCwgLi4ub3B0aW9ucyB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJvb3RPYnNlcnZlcnNba2V5XTtcbn1cbmZ1bmN0aW9uIG9ic2VydmVJbnRlcnNlY3Rpb24oZWxlbWVudCwgb3B0aW9ucywgY2FsbGJhY2spIHtcbiAgICBjb25zdCByb290SW50ZXJlc2VjdGlvbk9ic2VydmVyID0gaW5pdEludGVyc2VjdGlvbk9ic2VydmVyKG9wdGlvbnMpO1xuICAgIG9ic2VydmVyQ2FsbGJhY2tzLnNldChlbGVtZW50LCBjYWxsYmFjayk7XG4gICAgcm9vdEludGVyZXNlY3Rpb25PYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIG9ic2VydmVyQ2FsbGJhY2tzLmRlbGV0ZShlbGVtZW50KTtcbiAgICAgICAgcm9vdEludGVyZXNlY3Rpb25PYnNlcnZlci51bm9ic2VydmUoZWxlbWVudCk7XG4gICAgfTtcbn1cblxuZXhwb3J0IHsgb2JzZXJ2ZUludGVyc2VjdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9b2JzZXJ2ZXJzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/index.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/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 */ createMotionComponent: () => (/* binding */ createMotionComponent)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../context/LayoutGroupContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../context/LazyContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../context/MotionConfigContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../context/MotionContext/index.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_MotionContext_create_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../context/MotionContext/create.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs\");\n/* harmony import */ var _render_dom_use_render_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../render/dom/use-render.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs\");\n/* harmony import */ var _render_dom_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render/dom/utils/is-svg-component.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n/* harmony import */ var _render_html_use_html_visual_state_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../render/html/use-html-visual-state.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs\");\n/* harmony import */ var _render_svg_use_svg_visual_state_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../render/svg/use-svg-visual-state.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs\");\n/* harmony import */ var _utils_is_browser_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/is-browser.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\");\n/* harmony import */ var _features_definitions_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./features/definitions.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\");\n/* harmony import */ var _features_load_features_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./features/load-features.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs\");\n/* harmony import */ var _utils_symbol_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utils/symbol.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs\");\n/* harmony import */ var _utils_use_motion_ref_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/use-motion-ref.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs\");\n/* harmony import */ var _utils_use_visual_element_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/use-visual-element.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs\");\n/* __next_internal_client_entry_do_not_use__ createMotionComponent auto */ \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */ function createMotionComponent(Component, { forwardMotionProps = false, type } = {}, preloadedFeatures, createVisualElement) {\n preloadedFeatures && (0,_features_load_features_mjs__WEBPACK_IMPORTED_MODULE_2__.loadFeatures)(preloadedFeatures);\n /**\n * Determine whether to use SVG or HTML rendering based on:\n * 1. Explicit `type` option (highest priority)\n * 2. Auto-detection via `isSVGComponent`\n */ const isSVG = type ? type === \"svg\" : (0,_render_dom_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_3__.isSVGComponent)(Component);\n const useVisualState = isSVG ? _render_svg_use_svg_visual_state_mjs__WEBPACK_IMPORTED_MODULE_4__.useSVGVisualState : _render_html_use_html_visual_state_mjs__WEBPACK_IMPORTED_MODULE_5__.useHTMLVisualState;\n function MotionDOMComponent(props, externalRef) {\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */ let MeasureLayout;\n const configAndProps = {\n ...(0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_6__.MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props)\n };\n const { isStatic } = configAndProps;\n const context = (0,_context_MotionContext_create_mjs__WEBPACK_IMPORTED_MODULE_7__.useCreateMotionContext)(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && _utils_is_browser_mjs__WEBPACK_IMPORTED_MODULE_8__.isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */ context.visualElement = (0,_utils_use_visual_element_mjs__WEBPACK_IMPORTED_MODULE_9__.useVisualElement)(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode, isSVG);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_10__.MotionContext.Provider, {\n value: context,\n children: [\n MeasureLayout && context.visualElement ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MeasureLayout, {\n visualElement: context.visualElement,\n ...configAndProps\n }) : null,\n (0,_render_dom_use_render_mjs__WEBPACK_IMPORTED_MODULE_11__.useRender)(Component, props, (0,_utils_use_motion_ref_mjs__WEBPACK_IMPORTED_MODULE_12__.useMotionRef)(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps, isSVG)\n ]\n });\n }\n MotionDOMComponent.displayName = `motion.${typeof Component === \"string\" ? Component : `create(${Component.displayName ?? Component.name ?? \"\"})`}`;\n const ForwardRefMotionComponent = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(MotionDOMComponent);\n ForwardRefMotionComponent[_utils_symbol_mjs__WEBPACK_IMPORTED_MODULE_13__.motionComponentSymbol] = Component;\n return ForwardRefMotionComponent;\n}\nfunction useLayoutId({ layoutId }) {\n const layoutGroupId = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_14__.LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined ? layoutGroupId + \"-\" + layoutId : layoutId;\n}\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n const isStrict = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_15__.LazyContext).strict;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */ if ( true && preloadedFeatures && isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict ? (0,motion_utils__WEBPACK_IMPORTED_MODULE_16__.warning)(false, strictMessage, \"lazy-strict-mode\") : (0,motion_utils__WEBPACK_IMPORTED_MODULE_16__.invariant)(false, strictMessage, \"lazy-strict-mode\");\n }\n}\nfunction getProjectionFunctionality(props) {\n const featureDefinitions = (0,_features_definitions_mjs__WEBPACK_IMPORTED_MODULE_17__.getInitializedFeatureDefinitions)();\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout) return {};\n const combined = {\n ...drag,\n ...layout\n };\n return {\n MeasureLayout: drag?.isEnabled(props) || layout?.isEnabled(props) ? combined.MeasureLayout : undefined,\n ProjectionNode: combined.ProjectionNode\n };\n}\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThEQTs7Ozs7Ozs7Q0FRRztJQVVDO0lBRUE7Ozs7S0FJRyxHQUNIOztJQUdBO1FBSUk7OztTQUdHLEdBQ0g7UUFFQTs7WUFFSTtZQUNBOztRQUdKO1FBRUE7O1FBSUE7WUFDSTtZQUVBO1lBQ0E7WUFFQTs7Ozs7YUFLRyxHQUNIOztRQVVKOzs7U0FHRyxHQUNIO1lBQUE7WUFBQTtnQkFBQTtvQkFBQTtvQkFBQTtnQkFBQTtnQkFBQTthQUFBO1FBQUE7O0lBd0JKLDJFQUVRLFlBQ0E7SUFHUjtJQUNFO0lBRUY7QUFDSjtBQUVBOztJQUVJLGlEQUNJO0FBRVI7QUFFQTs7SUFNSTs7O0tBR0csR0FDSCxrQ0FHSTs7UUFJQTs7QUFJUjtBQUVBO0lBQ0k7SUFDQTtJQUVBLHNCQUFzQjs7Ozs7O1FBS2xCLDZGQUdROzs7QUFHaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9tb3Rpb24vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IGludmFyaWFudCwgd2FybmluZyB9IGZyb20gXCJtb3Rpb24tdXRpbHNcIlxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTGF5b3V0R3JvdXBDb250ZXh0IH0gZnJvbSBcIi4uL2NvbnRleHQvTGF5b3V0R3JvdXBDb250ZXh0XCJcbmltcG9ydCB7IExhenlDb250ZXh0IH0gZnJvbSBcIi4uL2NvbnRleHQvTGF6eUNvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uQ29uZmlnQ29udGV4dCB9IGZyb20gXCIuLi9jb250ZXh0L01vdGlvbkNvbmZpZ0NvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uQ29udGV4dCB9IGZyb20gXCIuLi9jb250ZXh0L01vdGlvbkNvbnRleHRcIlxuaW1wb3J0IHsgdXNlQ3JlYXRlTW90aW9uQ29udGV4dCB9IGZyb20gXCIuLi9jb250ZXh0L01vdGlvbkNvbnRleHQvY3JlYXRlXCJcbmltcG9ydCB7IERPTU1vdGlvbkNvbXBvbmVudHMgfSBmcm9tIFwiLi4vcmVuZGVyL2RvbS90eXBlc1wiXG5pbXBvcnQgeyB1c2VSZW5kZXIgfSBmcm9tIFwiLi4vcmVuZGVyL2RvbS91c2UtcmVuZGVyXCJcbmltcG9ydCB7IGlzU1ZHQ29tcG9uZW50IH0gZnJvbSBcIi4uL3JlbmRlci9kb20vdXRpbHMvaXMtc3ZnLWNvbXBvbmVudFwiXG5pbXBvcnQgeyBIVE1MUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi4vcmVuZGVyL2h0bWwvdHlwZXNcIlxuaW1wb3J0IHsgdXNlSFRNTFZpc3VhbFN0YXRlIH0gZnJvbSBcIi4uL3JlbmRlci9odG1sL3VzZS1odG1sLXZpc3VhbC1zdGF0ZVwiXG5pbXBvcnQgeyBTVkdSZW5kZXJTdGF0ZSB9IGZyb20gXCIuLi9yZW5kZXIvc3ZnL3R5cGVzXCJcbmltcG9ydCB7IHVzZVNWR1Zpc3VhbFN0YXRlIH0gZnJvbSBcIi4uL3JlbmRlci9zdmcvdXNlLXN2Zy12aXN1YWwtc3RhdGVcIlxuaW1wb3J0IHsgQ3JlYXRlVmlzdWFsRWxlbWVudCB9IGZyb20gXCIuLi9yZW5kZXIvdHlwZXNcIlxuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSBcIi4uL3V0aWxzL2lzLWJyb3dzZXJcIlxuaW1wb3J0IHsgZ2V0SW5pdGlhbGl6ZWRGZWF0dXJlRGVmaW5pdGlvbnMgfSBmcm9tIFwiLi9mZWF0dXJlcy9kZWZpbml0aW9uc1wiXG5pbXBvcnQgeyBsb2FkRmVhdHVyZXMgfSBmcm9tIFwiLi9mZWF0dXJlcy9sb2FkLWZlYXR1cmVzXCJcbmltcG9ydCB7IEZlYXR1cmVCdW5kbGUsIEZlYXR1cmVQYWNrYWdlcyB9IGZyb20gXCIuL2ZlYXR1cmVzL3R5cGVzXCJcbmltcG9ydCB7IE1vdGlvblByb3BzIH0gZnJvbSBcIi4vdHlwZXNcIlxuaW1wb3J0IHsgbW90aW9uQ29tcG9uZW50U3ltYm9sIH0gZnJvbSBcIi4vdXRpbHMvc3ltYm9sXCJcbmltcG9ydCB7IHVzZU1vdGlvblJlZiB9IGZyb20gXCIuL3V0aWxzL3VzZS1tb3Rpb24tcmVmXCJcbmltcG9ydCB7IHVzZVZpc3VhbEVsZW1lbnQgfSBmcm9tIFwiLi91dGlscy91c2UtdmlzdWFsLWVsZW1lbnRcIlxuXG5leHBvcnQgaW50ZXJmYWNlIE1vdGlvbkNvbXBvbmVudENvbmZpZzxcbiAgICBUYWdOYW1lIGV4dGVuZHMga2V5b2YgRE9NTW90aW9uQ29tcG9uZW50cyB8IHN0cmluZyA9IFwiZGl2XCJcbj4ge1xuICAgIHByZWxvYWRlZEZlYXR1cmVzPzogRmVhdHVyZUJ1bmRsZVxuICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQ/OiBDcmVhdGVWaXN1YWxFbGVtZW50XG4gICAgQ29tcG9uZW50OiBUYWdOYW1lIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjx1bmtub3duPj5cbiAgICBmb3J3YXJkTW90aW9uUHJvcHM/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIE1vdGlvbkNvbXBvbmVudFByb3BzPFByb3BzPiA9IHtcbiAgICBbSyBpbiBFeGNsdWRlPGtleW9mIFByb3BzLCBrZXlvZiBNb3Rpb25Qcm9wcz5dPzogUHJvcHNbS11cbn0gJiBNb3Rpb25Qcm9wc1xuXG5leHBvcnQgdHlwZSBNb3Rpb25Db21wb25lbnQ8VCwgUD4gPSBUIGV4dGVuZHMga2V5b2YgRE9NTW90aW9uQ29tcG9uZW50c1xuICAgID8gRE9NTW90aW9uQ29tcG9uZW50c1tUXVxuICAgIDogUmVhY3QuQ29tcG9uZW50VHlwZTxcbiAgICAgICAgICBPbWl0PE1vdGlvbkNvbXBvbmVudFByb3BzPFA+LCBcImNoaWxkcmVuXCI+ICYge1xuICAgICAgICAgICAgICBjaGlsZHJlbj86IFwiY2hpbGRyZW5cIiBleHRlbmRzIGtleW9mIFBcbiAgICAgICAgICAgICAgICAgID8gUFtcImNoaWxkcmVuXCJdIHwgTW90aW9uQ29tcG9uZW50UHJvcHM8UD5bXCJjaGlsZHJlblwiXVxuICAgICAgICAgICAgICAgICAgOiBNb3Rpb25Db21wb25lbnRQcm9wczxQPltcImNoaWxkcmVuXCJdXG4gICAgICAgICAgfVxuICAgICAgPlxuXG5leHBvcnQgaW50ZXJmYWNlIE1vdGlvbkNvbXBvbmVudE9wdGlvbnMge1xuICAgIGZvcndhcmRNb3Rpb25Qcm9wcz86IGJvb2xlYW5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgdGhlIGNvbXBvbmVudCByZW5kZXJzIGFuIEhUTUwgb3IgU1ZHIGVsZW1lbnQuXG4gICAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiB3cmFwcGluZyBjdXN0b20gU1ZHIGNvbXBvbmVudHMgdGhhdCBuZWVkXG4gICAgICogU1ZHLXNwZWNpZmljIGF0dHJpYnV0ZSBoYW5kbGluZyAobGlrZSB2aWV3Qm94IGFuaW1hdGlvbikuXG4gICAgICogQnkgZGVmYXVsdCwgTW90aW9uIGF1dG8tZGV0ZWN0cyBiYXNlZCBvbiB0aGUgY29tcG9uZW50IG5hbWUsXG4gICAgICogYnV0IGN1c3RvbSBSZWFjdCBjb21wb25lbnRzIGFyZSBhbHdheXMgdHJlYXRlZCBhcyBIVE1MLlxuICAgICAqL1xuICAgIHR5cGU/OiBcImh0bWxcIiB8IFwic3ZnXCJcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBgbW90aW9uYCBjb21wb25lbnQuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBhY2NlcHRzIGEgQ29tcG9uZW50IGFyZ3VtZW50LCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIChpZSBcImRpdlwiXG4gKiBmb3IgYG1vdGlvbi5kaXZgKSwgb3IgYW4gYWN0dWFsIFJlYWN0IGNvbXBvbmVudC5cbiAqXG4gKiBBbG9uZ3NpZGUgdGhpcyBpcyBhIGNvbmZpZyBvcHRpb24gd2hpY2ggcHJvdmlkZXMgYSB3YXkgb2YgcmVuZGVyaW5nIHRoZSBwcm92aWRlZFxuICogY29tcG9uZW50IFwib2ZmbGluZVwiLCBvciBvdXRzaWRlIHRoZSBSZWFjdCByZW5kZXIgY3ljbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb3Rpb25Db21wb25lbnQ8XG4gICAgUHJvcHMsXG4gICAgVGFnTmFtZSBleHRlbmRzIGtleW9mIERPTU1vdGlvbkNvbXBvbmVudHMgfCBzdHJpbmcgPSBcImRpdlwiXG4+KFxuICAgIENvbXBvbmVudDogVGFnTmFtZSB8IHN0cmluZyB8IFJlYWN0LkNvbXBvbmVudFR5cGU8UHJvcHM+LFxuICAgIHsgZm9yd2FyZE1vdGlvblByb3BzID0gZmFsc2UsIHR5cGUgfTogTW90aW9uQ29tcG9uZW50T3B0aW9ucyA9IHt9LFxuICAgIHByZWxvYWRlZEZlYXR1cmVzPzogRmVhdHVyZVBhY2thZ2VzLFxuICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQ/OiBDcmVhdGVWaXN1YWxFbGVtZW50PFByb3BzLCBUYWdOYW1lPlxuKSB7XG4gICAgcHJlbG9hZGVkRmVhdHVyZXMgJiYgbG9hZEZlYXR1cmVzKHByZWxvYWRlZEZlYXR1cmVzKVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gdXNlIFNWRyBvciBIVE1MIHJlbmRlcmluZyBiYXNlZCBvbjpcbiAgICAgKiAxLiBFeHBsaWNpdCBgdHlwZWAgb3B0aW9uIChoaWdoZXN0IHByaW9yaXR5KVxuICAgICAqIDIuIEF1dG8tZGV0ZWN0aW9uIHZpYSBgaXNTVkdDb21wb25lbnRgXG4gICAgICovXG4gICAgY29uc3QgaXNTVkcgPSB0eXBlID8gdHlwZSA9PT0gXCJzdmdcIiA6IGlzU1ZHQ29tcG9uZW50KENvbXBvbmVudClcbiAgICBjb25zdCB1c2VWaXN1YWxTdGF0ZSA9IGlzU1ZHID8gdXNlU1ZHVmlzdWFsU3RhdGUgOiB1c2VIVE1MVmlzdWFsU3RhdGVcblxuICAgIGZ1bmN0aW9uIE1vdGlvbkRPTUNvbXBvbmVudChcbiAgICAgICAgcHJvcHM6IE1vdGlvbkNvbXBvbmVudFByb3BzPFByb3BzPixcbiAgICAgICAgZXh0ZXJuYWxSZWY/OiBSZWFjdC5SZWY8SFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50PlxuICAgICkge1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgd2UgbmVlZCB0byBtZWFzdXJlIHRoZSBlbGVtZW50IHdlIGxvYWQgdGhpcyBmdW5jdGlvbmFsaXR5IGluIGFcbiAgICAgICAgICogc2VwYXJhdGUgY2xhc3MgY29tcG9uZW50IGluIG9yZGVyIHRvIGdhaW4gYWNjZXNzIHRvIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IE1lYXN1cmVMYXlvdXQ6IHVuZGVmaW5lZCB8IFJlYWN0LkNvbXBvbmVudFR5cGU8TW90aW9uUHJvcHM+XG5cbiAgICAgICAgY29uc3QgY29uZmlnQW5kUHJvcHMgPSB7XG4gICAgICAgICAgICAuLi51c2VDb250ZXh0KE1vdGlvbkNvbmZpZ0NvbnRleHQpLFxuICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICBsYXlvdXRJZDogdXNlTGF5b3V0SWQocHJvcHMpLFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBpc1N0YXRpYyB9ID0gY29uZmlnQW5kUHJvcHNcblxuICAgICAgICBjb25zdCBjb250ZXh0ID0gdXNlQ3JlYXRlTW90aW9uQ29udGV4dDxIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ+KHByb3BzKVxuXG4gICAgICAgIGNvbnN0IHZpc3VhbFN0YXRlID0gdXNlVmlzdWFsU3RhdGUocHJvcHMsIGlzU3RhdGljKVxuXG4gICAgICAgIGlmICghaXNTdGF0aWMgJiYgaXNCcm93c2VyKSB7XG4gICAgICAgICAgICB1c2VTdHJpY3RNb2RlKGNvbmZpZ0FuZFByb3BzLCBwcmVsb2FkZWRGZWF0dXJlcylcblxuICAgICAgICAgICAgY29uc3QgbGF5b3V0UHJvamVjdGlvbiA9IGdldFByb2plY3Rpb25GdW5jdGlvbmFsaXR5KGNvbmZpZ0FuZFByb3BzKVxuICAgICAgICAgICAgTWVhc3VyZUxheW91dCA9IGxheW91dFByb2plY3Rpb24uTWVhc3VyZUxheW91dFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIENyZWF0ZSBhIFZpc3VhbEVsZW1lbnQgZm9yIHRoaXMgY29tcG9uZW50LiBBIFZpc3VhbEVsZW1lbnQgcHJvdmlkZXMgYSBjb21tb25cbiAgICAgICAgICAgICAqIGludGVyZmFjZSB0byByZW5kZXJlci1zcGVjaWZpYyBBUElzIChpZSBET00vVGhyZWUuanMgZXRjKSBhcyB3ZWxsIGFzXG4gICAgICAgICAgICAgKiBwcm92aWRpbmcgYSB3YXkgb2YgcmVuZGVyaW5nIHRvIHRoZXNlIEFQSXMgb3V0c2lkZSBvZiB0aGUgUmVhY3QgcmVuZGVyIGxvb3BcbiAgICAgICAgICAgICAqIGZvciBtb3JlIHBlcmZvcm1hbnQgYW5pbWF0aW9ucyBhbmQgaW50ZXJhY3Rpb25zXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnRleHQudmlzdWFsRWxlbWVudCA9IHVzZVZpc3VhbEVsZW1lbnQoXG4gICAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHZpc3VhbFN0YXRlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ0FuZFByb3BzLFxuICAgICAgICAgICAgICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQsXG4gICAgICAgICAgICAgICAgbGF5b3V0UHJvamVjdGlvbi5Qcm9qZWN0aW9uTm9kZSxcbiAgICAgICAgICAgICAgICBpc1NWR1xuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBtb3VudCBvcmRlciBhbmQgaGllcmFyY2h5IGlzIHNwZWNpZmljIHRvIGVuc3VyZSBvdXIgZWxlbWVudCByZWZcbiAgICAgICAgICogaXMgaHlkcmF0ZWQgYnkgdGhlIHRpbWUgZmVhdHVyZXMgZmlyZSB0aGVpciBlZmZlY3RzLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxNb3Rpb25Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0fT5cbiAgICAgICAgICAgICAgICB7TWVhc3VyZUxheW91dCAmJiBjb250ZXh0LnZpc3VhbEVsZW1lbnQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxNZWFzdXJlTGF5b3V0XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50PXtjb250ZXh0LnZpc3VhbEVsZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4uY29uZmlnQW5kUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3VzZVJlbmRlcjxQcm9wcywgVGFnTmFtZT4oXG4gICAgICAgICAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIHVzZU1vdGlvblJlZjxcbiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxSZW5kZXJTdGF0ZSB8IFNWR1JlbmRlclN0YXRlXG4gICAgICAgICAgICAgICAgICAgID4odmlzdWFsU3RhdGUsIGNvbnRleHQudmlzdWFsRWxlbWVudCwgZXh0ZXJuYWxSZWYpLFxuICAgICAgICAgICAgICAgICAgICB2aXN1YWxTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgaXNTdGF0aWMsXG4gICAgICAgICAgICAgICAgICAgIGZvcndhcmRNb3Rpb25Qcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgaXNTVkdcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9Nb3Rpb25Db250ZXh0LlByb3ZpZGVyPlxuICAgICAgICApXG4gICAgfVxuXG4gICAgTW90aW9uRE9NQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gYG1vdGlvbi4ke1xuICAgICAgICB0eXBlb2YgQ29tcG9uZW50ID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IENvbXBvbmVudFxuICAgICAgICAgICAgOiBgY3JlYXRlKCR7Q29tcG9uZW50LmRpc3BsYXlOYW1lID8/IENvbXBvbmVudC5uYW1lID8/IFwiXCJ9KWBcbiAgICB9YFxuXG4gICAgY29uc3QgRm9yd2FyZFJlZk1vdGlvbkNvbXBvbmVudCA9IGZvcndhcmRSZWYoTW90aW9uRE9NQ29tcG9uZW50IGFzIGFueSlcbiAgICA7KEZvcndhcmRSZWZNb3Rpb25Db21wb25lbnQgYXMgYW55KVttb3Rpb25Db21wb25lbnRTeW1ib2xdID0gQ29tcG9uZW50XG5cbiAgICByZXR1cm4gRm9yd2FyZFJlZk1vdGlvbkNvbXBvbmVudCBhcyBNb3Rpb25Db21wb25lbnQ8VGFnTmFtZSwgUHJvcHM+XG59XG5cbmZ1bmN0aW9uIHVzZUxheW91dElkKHsgbGF5b3V0SWQgfTogTW90aW9uUHJvcHMpIHtcbiAgICBjb25zdCBsYXlvdXRHcm91cElkID0gdXNlQ29udGV4dChMYXlvdXRHcm91cENvbnRleHQpLmlkXG4gICAgcmV0dXJuIGxheW91dEdyb3VwSWQgJiYgbGF5b3V0SWQgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGxheW91dEdyb3VwSWQgKyBcIi1cIiArIGxheW91dElkXG4gICAgICAgIDogbGF5b3V0SWRcbn1cblxuZnVuY3Rpb24gdXNlU3RyaWN0TW9kZShcbiAgICBjb25maWdBbmRQcm9wczogTW90aW9uUHJvcHMsXG4gICAgcHJlbG9hZGVkRmVhdHVyZXM/OiBGZWF0dXJlUGFja2FnZXNcbikge1xuICAgIGNvbnN0IGlzU3RyaWN0ID0gdXNlQ29udGV4dChMYXp5Q29udGV4dCkuc3RyaWN0XG5cbiAgICAvKipcbiAgICAgKiBJZiB3ZSdyZSBpbiBkZXZlbG9wbWVudCBtb2RlLCBjaGVjayB0byBtYWtlIHN1cmUgd2UncmUgbm90IHJlbmRlcmluZyBhIG1vdGlvbiBjb21wb25lbnRcbiAgICAgKiBhcyBhIGNoaWxkIG9mIExhenlNb3Rpb24sIGFzIHRoaXMgd2lsbCBicmVhayB0aGUgZmlsZS1zaXplIGJlbmVmaXRzIG9mIHVzaW5nIGl0LlxuICAgICAqL1xuICAgIGlmIChcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmXG4gICAgICAgIHByZWxvYWRlZEZlYXR1cmVzICYmXG4gICAgICAgIGlzU3RyaWN0XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHN0cmljdE1lc3NhZ2UgPVxuICAgICAgICAgICAgXCJZb3UgaGF2ZSByZW5kZXJlZCBhIGBtb3Rpb25gIGNvbXBvbmVudCB3aXRoaW4gYSBgTGF6eU1vdGlvbmAgY29tcG9uZW50LiBUaGlzIHdpbGwgYnJlYWsgdHJlZSBzaGFraW5nLiBJbXBvcnQgYW5kIHJlbmRlciBhIGBtYCBjb21wb25lbnQgaW5zdGVhZC5cIlxuICAgICAgICBjb25maWdBbmRQcm9wcy5pZ25vcmVTdHJpY3RcbiAgICAgICAgICAgID8gd2FybmluZyhmYWxzZSwgc3RyaWN0TWVzc2FnZSwgXCJsYXp5LXN0cmljdC1tb2RlXCIpXG4gICAgICAgICAgICA6IGludmFyaWFudChmYWxzZSwgc3RyaWN0TWVzc2FnZSwgXCJsYXp5LXN0cmljdC1tb2RlXCIpXG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRQcm9qZWN0aW9uRnVuY3Rpb25hbGl0eShwcm9wczogTW90aW9uUHJvcHMpIHtcbiAgICBjb25zdCBmZWF0dXJlRGVmaW5pdGlvbnMgPSBnZXRJbml0aWFsaXplZEZlYXR1cmVEZWZpbml0aW9ucygpXG4gICAgY29uc3QgeyBkcmFnLCBsYXlvdXQgfSA9IGZlYXR1cmVEZWZpbml0aW9uc1xuXG4gICAgaWYgKCFkcmFnICYmICFsYXlvdXQpIHJldHVybiB7fVxuXG4gICAgY29uc3QgY29tYmluZWQgPSB7IC4uLmRyYWcsIC4uLmxheW91dCB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBNZWFzdXJlTGF5b3V0OlxuICAgICAgICAgICAgZHJhZz8uaXNFbmFibGVkKHByb3BzKSB8fCBsYXlvdXQ/LmlzRW5hYmxlZChwcm9wcylcbiAgICAgICAgICAgICAgICA/IGNvbWJpbmVkLk1lYXN1cmVMYXlvdXRcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgUHJvamVjdGlvbk5vZGU6IGNvbWJpbmVkLlByb2plY3Rpb25Ob2RlLFxuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/symbol.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 */ motionComponentSymbol: () => (/* binding */ motionComponentSymbol)\n/* harmony export */ });\nconst motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\n\n//# sourceMappingURL=symbol.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi91dGlscy9zeW1ib2wubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi91dGlscy9zeW1ib2wubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1vdGlvbkNvbXBvbmVudFN5bWJvbCA9IFN5bWJvbC5mb3IoXCJtb3Rpb25Db21wb25lbnRTeW1ib2xcIik7XG5cbmV4cG9ydCB7IG1vdGlvbkNvbXBvbmVudFN5bWJvbCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3ltYm9sLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.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 */ useMotionRef: () => (/* binding */ useMotionRef)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* __next_internal_client_entry_do_not_use__ useMotionRef auto */ \n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */ function useMotionRef(visualState, visualElement, externalRef) {\n /**\n * Store externalRef in a ref to avoid including it in the useCallback\n * dependency array. Including externalRef in dependencies causes issues\n * with libraries like Radix UI that create new callback refs on each render\n * when using asChild - this would cause the callback to be recreated,\n * triggering element remounts and breaking AnimatePresence exit animations.\n */ const externalRefContainer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(externalRef);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect)({\n \"useMotionRef.useInsertionEffect\": ()=>{\n externalRefContainer.current = externalRef;\n }\n }[\"useMotionRef.useInsertionEffect\"]);\n // Store cleanup function returned by callback refs (React 19 feature)\n const refCleanup = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useMotionRef.useCallback\": (instance)=>{\n if (instance) {\n visualState.onMount?.(instance);\n }\n if (visualElement) {\n instance ? visualElement.mount(instance) : visualElement.unmount();\n }\n const ref = externalRefContainer.current;\n if (typeof ref === \"function\") {\n if (instance) {\n const cleanup = ref(instance);\n if (typeof cleanup === \"function\") {\n refCleanup.current = cleanup;\n }\n } else if (refCleanup.current) {\n refCleanup.current();\n refCleanup.current = null;\n } else {\n ref(instance);\n }\n } else if (ref) {\n ref.current = instance;\n }\n }\n }[\"useMotionRef.useCallback\"], [\n visualElement\n ]);\n}\n //# sourceMappingURL=use-motion-ref.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi91dGlscy91c2UtbW90aW9uLXJlZi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBT0E7OztDQUdHO0lBTUM7Ozs7OztLQU1HLEdBQ0g7OztZQUVJO1FBQ0o7OztJQUdBO0lBRUE7b0NBQUE7O2dCQUdZOzs7Z0JBSUE7O1lBR0o7WUFDQTs7b0JBRVE7b0JBQ0E7d0JBQ0k7O3VCQUVEOztvQkFFSDs7Ozs7Z0JBS0Y7O1FBRVY7bUNBQUE7UUFBQTtLQUFBO0FBR1IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9tb3Rpb24vdXRpbHMvdXNlLW1vdGlvbi1yZWYudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHR5cGUgeyBWaXN1YWxFbGVtZW50IH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VJbnNlcnRpb25FZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBWaXN1YWxTdGF0ZSB9IGZyb20gXCIuL3VzZS12aXN1YWwtc3RhdGVcIlxuXG4vKipcbiAqIENyZWF0ZXMgYSByZWYgZnVuY3Rpb24gdGhhdCwgd2hlbiBjYWxsZWQsIGh5ZHJhdGVzIHRoZSBwcm92aWRlZFxuICogZXh0ZXJuYWwgcmVmIGFuZCBWaXN1YWxFbGVtZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlTW90aW9uUmVmPEluc3RhbmNlLCBSZW5kZXJTdGF0ZT4oXG4gICAgdmlzdWFsU3RhdGU6IFZpc3VhbFN0YXRlPEluc3RhbmNlLCBSZW5kZXJTdGF0ZT4sXG4gICAgdmlzdWFsRWxlbWVudD86IFZpc3VhbEVsZW1lbnQ8SW5zdGFuY2U+IHwgbnVsbCxcbiAgICBleHRlcm5hbFJlZj86IFJlYWN0LlJlZjxJbnN0YW5jZT5cbik6IFJlYWN0LlJlZjxJbnN0YW5jZT4ge1xuICAgIC8qKlxuICAgICAqIFN0b3JlIGV4dGVybmFsUmVmIGluIGEgcmVmIHRvIGF2b2lkIGluY2x1ZGluZyBpdCBpbiB0aGUgdXNlQ2FsbGJhY2tcbiAgICAgKiBkZXBlbmRlbmN5IGFycmF5LiBJbmNsdWRpbmcgZXh0ZXJuYWxSZWYgaW4gZGVwZW5kZW5jaWVzIGNhdXNlcyBpc3N1ZXNcbiAgICAgKiB3aXRoIGxpYnJhcmllcyBsaWtlIFJhZGl4IFVJIHRoYXQgY3JlYXRlIG5ldyBjYWxsYmFjayByZWZzIG9uIGVhY2ggcmVuZGVyXG4gICAgICogd2hlbiB1c2luZyBhc0NoaWxkIC0gdGhpcyB3b3VsZCBjYXVzZSB0aGUgY2FsbGJhY2sgdG8gYmUgcmVjcmVhdGVkLFxuICAgICAqIHRyaWdnZXJpbmcgZWxlbWVudCByZW1vdW50cyBhbmQgYnJlYWtpbmcgQW5pbWF0ZVByZXNlbmNlIGV4aXQgYW5pbWF0aW9ucy5cbiAgICAgKi9cbiAgICBjb25zdCBleHRlcm5hbFJlZkNvbnRhaW5lciA9IHVzZVJlZihleHRlcm5hbFJlZilcbiAgICB1c2VJbnNlcnRpb25FZmZlY3QoKCkgPT4ge1xuICAgICAgICBleHRlcm5hbFJlZkNvbnRhaW5lci5jdXJyZW50ID0gZXh0ZXJuYWxSZWZcbiAgICB9KVxuXG4gICAgLy8gU3RvcmUgY2xlYW51cCBmdW5jdGlvbiByZXR1cm5lZCBieSBjYWxsYmFjayByZWZzIChSZWFjdCAxOSBmZWF0dXJlKVxuICAgIGNvbnN0IHJlZkNsZWFudXAgPSB1c2VSZWY8KCgpID0+IHZvaWQpIHwgbnVsbD4obnVsbClcblxuICAgIHJldHVybiB1c2VDYWxsYmFjayhcbiAgICAgICAgKGluc3RhbmNlOiBJbnN0YW5jZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgdmlzdWFsU3RhdGUub25Nb3VudD8uKGluc3RhbmNlKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodmlzdWFsRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGluc3RhbmNlID8gdmlzdWFsRWxlbWVudC5tb3VudChpbnN0YW5jZSkgOiB2aXN1YWxFbGVtZW50LnVubW91bnQoKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZWYgPSBleHRlcm5hbFJlZkNvbnRhaW5lci5jdXJyZW50XG4gICAgICAgICAgICBpZiAodHlwZW9mIHJlZiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFudXAgPSByZWYoaW5zdGFuY2UpXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2xlYW51cCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWZDbGVhbnVwLmN1cnJlbnQgPSBjbGVhbnVwXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlZkNsZWFudXAuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICByZWZDbGVhbnVwLmN1cnJlbnQoKVxuICAgICAgICAgICAgICAgICAgICByZWZDbGVhbnVwLmN1cnJlbnQgPSBudWxsXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmKGluc3RhbmNlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgOyhyZWYgYXMgUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxJbnN0YW5jZT4pLmN1cnJlbnQgPSBpbnN0YW5jZVxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbdmlzdWFsRWxlbWVudF1cbiAgICApXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.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 */ useVisualElement: () => (/* binding */ useVisualElement)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/LazyContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/MotionConfigContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/MotionContext/index.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context/SwitchLayoutGroupContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\");\n/* harmony import */ var _utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/is-ref-object.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\");\n/* harmony import */ var _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/use-isomorphic-effect.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\");\n/* __next_internal_client_entry_do_not_use__ useVisualElement auto */ \n\n\n\n\n\n\n\n\nfunction useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor, isSVG) {\n const { visualElement: parent } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_1__.MotionContext);\n const lazyContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_2__.LazyContext);\n const presenceContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_3__.PresenceContext);\n const motionConfig = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_4__.MotionConfigContext);\n const reducedMotionConfig = motionConfig.reducedMotion;\n const skipAnimations = motionConfig.skipAnimations;\n const visualElementRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n /**\n * Track whether the component has been through React's commit phase.\n * Used to detect when LazyMotion features load after the component has mounted.\n */ const hasMountedOnce = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */ createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext ? presenceContext.initial === false : false,\n reducedMotionConfig,\n skipAnimations,\n isSVG\n });\n /**\n * If the component has already mounted before features loaded (e.g. via\n * LazyMotion with async feature loading), we need to force the initial\n * animation to run. Otherwise state changes that occurred before features\n * loaded will be lost and the element will snap to its final state.\n */ if (hasMountedOnce.current && visualElementRef.current) {\n visualElementRef.current.manuallyAnimateOnMount = true;\n }\n }\n const visualElement = visualElementRef.current;\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */ const initialLayoutGroupConfig = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_5__.SwitchLayoutGroupContext);\n if (visualElement && !visualElement.projection && ProjectionNodeConstructor && (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n const isMounted = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect)({\n \"useVisualElement.useInsertionEffect\": ()=>{\n /**\n * Check the component has already mounted before calling\n * `update` unnecessarily. This ensures we skip the initial update.\n */ if (visualElement && isMounted.current) {\n visualElement.update(props, presenceContext);\n }\n }\n }[\"useVisualElement.useInsertionEffect\"]);\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */ const optimisedAppearId = props[motion_dom__WEBPACK_IMPORTED_MODULE_6__.optimizedAppearDataAttribute];\n const wantsHandoff = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(Boolean(optimisedAppearId) && !window.MotionHandoffIsComplete?.(optimisedAppearId) && window.MotionHasOptimisedAnimation?.(optimisedAppearId));\n (0,_utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_7__.useIsomorphicLayoutEffect)({\n \"useVisualElement.useIsomorphicLayoutEffect\": ()=>{\n /**\n * Track that this component has mounted. This is used to detect when\n * LazyMotion features load after the component has already committed.\n */ hasMountedOnce.current = true;\n if (!visualElement) return;\n isMounted.current = true;\n window.MotionIsMounted = true;\n visualElement.updateFeatures();\n visualElement.scheduleRenderMicrotask();\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */ if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n }\n }[\"useVisualElement.useIsomorphicLayoutEffect\"]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useVisualElement.useEffect\": ()=>{\n if (!visualElement) return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n // This ensures all future calls to animateChanges() in this component will run in useEffect\n queueMicrotask({\n \"useVisualElement.useEffect\": ()=>{\n window.MotionHandoffMarkAsComplete?.(optimisedAppearId);\n }\n }[\"useVisualElement.useEffect\"]);\n wantsHandoff.current = false;\n }\n /**\n * Now we've finished triggering animations for this element we\n * can wipe the enteringChildren set for the next render.\n */ visualElement.enteringChildren = undefined;\n }\n }[\"useVisualElement.useEffect\"]);\n return visualElement;\n}\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, layoutCrossfade } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"] ? undefined : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || dragConstraints && (0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_8__.isRefObject)(dragConstraints),\n visualElement,\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */ animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig,\n crossfade: layoutCrossfade,\n layoutScroll,\n layoutRoot\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement) return undefined;\n return visualElement.options.allowProjection !== false ? visualElement.projection : getClosestProjectingNode(visualElement.parent);\n}\n //# sourceMappingURL=use-visual-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi91dGlscy91c2UtdmlzdWFsLWVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEwQmdCOztJQWNaO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFFQTtJQUlBOzs7S0FHRyxHQUNIO0lBRUE7O0tBRUc7SUFLSDtRQUNJOzs7OztZQUtJLHlDQUNJLG9DQUNBOzs7O1FBSVA7UUFFRDs7Ozs7U0FLRztZQUVDOzs7SUFJUjtJQUVBOzs7S0FHRyxHQUNIO0lBRUEsK0VBSUk7OztJQVVKOzs7WUFFSTs7O1NBR0csR0FDSDtnQkFDSTs7UUFFUjs7SUFFQTs7O0tBR0csR0FDSDtJQUVBLGlHQUVRLHdEQUNBOzs7WUFJSjs7O1NBR0csR0FDSDtZQUVBO1lBRUE7WUFDQTs7O1lBS0E7Ozs7Ozs7OztTQVNHO2dCQUVDOztRQUVSOzs7O1lBR0k7O2dCQUdJOztZQUdKOzs7O3dCQUdRO29CQUNKOztnQkFFQTs7WUFHSjs7O1NBR0csR0FDSDtRQUNKOztJQUVBO0FBQ0o7QUFFQTtJQU1JO0lBVUEsc0hBR1E7SUFJUjs7O1FBR0k7O1FBR0E7Ozs7OztTQU1HLEdBQ0g7O1FBRUE7OztJQUdIO0FBQ0w7QUFFQTtJQU9JLG9CQUFvQjtJQUVwQixvRkFFSTtBQUNSIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvbW90aW9uL3V0aWxzL3VzZS12aXN1YWwtZWxlbWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQge1xuICAgIG9wdGltaXplZEFwcGVhckRhdGFBdHRyaWJ1dGUsXG4gICAgdHlwZSBIVE1MUmVuZGVyU3RhdGUsXG4gICAgdHlwZSBTVkdSZW5kZXJTdGF0ZSxcbiAgICB0eXBlIFZpc3VhbEVsZW1lbnQsXG59IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZUluc2VydGlvbkVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IExhenlDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvTGF6eUNvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uQ29uZmlnQ29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0L01vdGlvbkNvbmZpZ0NvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uQ29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0L01vdGlvbkNvbnRleHRcIlxuaW1wb3J0IHsgUHJlc2VuY2VDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvUHJlc2VuY2VDb250ZXh0XCJcbmltcG9ydCB7XG4gICAgSW5pdGlhbFByb21vdGlvbkNvbmZpZyxcbiAgICBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQsXG59IGZyb20gXCIuLi8uLi9jb250ZXh0L1N3aXRjaExheW91dEdyb3VwQ29udGV4dFwiXG5pbXBvcnQgeyBNb3Rpb25Qcm9wcyB9IGZyb20gXCIuLi8uLi9tb3Rpb24vdHlwZXNcIlxuaW1wb3J0IHR5cGUgeyBJUHJvamVjdGlvbk5vZGUgfSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgeyBET01Nb3Rpb25Db21wb25lbnRzIH0gZnJvbSBcIi4uLy4uL3JlbmRlci9kb20vdHlwZXNcIlxuaW1wb3J0IHsgQ3JlYXRlVmlzdWFsRWxlbWVudCB9IGZyb20gXCIuLi8uLi9yZW5kZXIvdHlwZXNcIlxuaW1wb3J0IHsgaXNSZWZPYmplY3QgfSBmcm9tIFwiLi4vLi4vdXRpbHMvaXMtcmVmLW9iamVjdFwiXG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSBcIi4uLy4uL3V0aWxzL3VzZS1pc29tb3JwaGljLWVmZmVjdFwiXG5pbXBvcnQgeyBWaXN1YWxTdGF0ZSB9IGZyb20gXCIuL3VzZS12aXN1YWwtc3RhdGVcIlxuXG5leHBvcnQgZnVuY3Rpb24gdXNlVmlzdWFsRWxlbWVudDxcbiAgICBQcm9wcyxcbiAgICBUYWdOYW1lIGV4dGVuZHMga2V5b2YgRE9NTW90aW9uQ29tcG9uZW50cyB8IHN0cmluZ1xuPihcbiAgICBDb21wb25lbnQ6IFRhZ05hbWUgfCBzdHJpbmcgfCBSZWFjdC5Db21wb25lbnRUeXBlPFByb3BzPixcbiAgICB2aXN1YWxTdGF0ZTpcbiAgICAgICAgfCBWaXN1YWxTdGF0ZTxTVkdFbGVtZW50LCBTVkdSZW5kZXJTdGF0ZT5cbiAgICAgICAgfCBWaXN1YWxTdGF0ZTxIVE1MRWxlbWVudCwgSFRNTFJlbmRlclN0YXRlPixcbiAgICBwcm9wczogTW90aW9uUHJvcHMgJiBQYXJ0aWFsPE1vdGlvbkNvbmZpZ0NvbnRleHQ+LFxuICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQ/OiBDcmVhdGVWaXN1YWxFbGVtZW50PFByb3BzLCBUYWdOYW1lPixcbiAgICBQcm9qZWN0aW9uTm9kZUNvbnN0cnVjdG9yPzogYW55LFxuICAgIGlzU1ZHPzogYm9vbGVhblxuKTogVmlzdWFsRWxlbWVudDxIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB7IHZpc3VhbEVsZW1lbnQ6IHBhcmVudCB9ID0gdXNlQ29udGV4dChNb3Rpb25Db250ZXh0KVxuICAgIGNvbnN0IGxhenlDb250ZXh0ID0gdXNlQ29udGV4dChMYXp5Q29udGV4dClcbiAgICBjb25zdCBwcmVzZW5jZUNvbnRleHQgPSB1c2VDb250ZXh0KFByZXNlbmNlQ29udGV4dClcbiAgICBjb25zdCBtb3Rpb25Db25maWcgPSB1c2VDb250ZXh0KE1vdGlvbkNvbmZpZ0NvbnRleHQpXG4gICAgY29uc3QgcmVkdWNlZE1vdGlvbkNvbmZpZyA9IG1vdGlvbkNvbmZpZy5yZWR1Y2VkTW90aW9uXG4gICAgY29uc3Qgc2tpcEFuaW1hdGlvbnMgPSBtb3Rpb25Db25maWcuc2tpcEFuaW1hdGlvbnNcblxuICAgIGNvbnN0IHZpc3VhbEVsZW1lbnRSZWYgPSB1c2VSZWY8VmlzdWFsRWxlbWVudDxcbiAgICAgICAgSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50XG4gICAgPiB8IG51bGw+KG51bGwpXG5cbiAgICAvKipcbiAgICAgKiBUcmFjayB3aGV0aGVyIHRoZSBjb21wb25lbnQgaGFzIGJlZW4gdGhyb3VnaCBSZWFjdCdzIGNvbW1pdCBwaGFzZS5cbiAgICAgKiBVc2VkIHRvIGRldGVjdCB3aGVuIExhenlNb3Rpb24gZmVhdHVyZXMgbG9hZCBhZnRlciB0aGUgY29tcG9uZW50IGhhcyBtb3VudGVkLlxuICAgICAqL1xuICAgIGNvbnN0IGhhc01vdW50ZWRPbmNlID0gdXNlUmVmKGZhbHNlKVxuXG4gICAgLyoqXG4gICAgICogSWYgd2UgaGF2ZW4ndCBwcmVsb2FkZWQgYSByZW5kZXJlciwgY2hlY2sgdG8gc2VlIGlmIHdlIGhhdmUgb25lIGxhenktbG9hZGVkXG4gICAgICovXG4gICAgY3JlYXRlVmlzdWFsRWxlbWVudCA9XG4gICAgICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQgfHxcbiAgICAgICAgKGxhenlDb250ZXh0LnJlbmRlcmVyIGFzIENyZWF0ZVZpc3VhbEVsZW1lbnQ8UHJvcHMsIFRhZ05hbWU+KVxuXG4gICAgaWYgKCF2aXN1YWxFbGVtZW50UmVmLmN1cnJlbnQgJiYgY3JlYXRlVmlzdWFsRWxlbWVudCkge1xuICAgICAgICB2aXN1YWxFbGVtZW50UmVmLmN1cnJlbnQgPSBjcmVhdGVWaXN1YWxFbGVtZW50KENvbXBvbmVudCwge1xuICAgICAgICAgICAgdmlzdWFsU3RhdGUsXG4gICAgICAgICAgICBwYXJlbnQsXG4gICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgIHByZXNlbmNlQ29udGV4dCxcbiAgICAgICAgICAgIGJsb2NrSW5pdGlhbEFuaW1hdGlvbjogcHJlc2VuY2VDb250ZXh0XG4gICAgICAgICAgICAgICAgPyBwcmVzZW5jZUNvbnRleHQuaW5pdGlhbCA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgcmVkdWNlZE1vdGlvbkNvbmZpZyxcbiAgICAgICAgICAgIHNraXBBbmltYXRpb25zLFxuICAgICAgICAgICAgaXNTVkcsXG4gICAgICAgIH0pXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHRoZSBjb21wb25lbnQgaGFzIGFscmVhZHkgbW91bnRlZCBiZWZvcmUgZmVhdHVyZXMgbG9hZGVkIChlLmcuIHZpYVxuICAgICAgICAgKiBMYXp5TW90aW9uIHdpdGggYXN5bmMgZmVhdHVyZSBsb2FkaW5nKSwgd2UgbmVlZCB0byBmb3JjZSB0aGUgaW5pdGlhbFxuICAgICAgICAgKiBhbmltYXRpb24gdG8gcnVuLiBPdGhlcndpc2Ugc3RhdGUgY2hhbmdlcyB0aGF0IG9jY3VycmVkIGJlZm9yZSBmZWF0dXJlc1xuICAgICAgICAgKiBsb2FkZWQgd2lsbCBiZSBsb3N0IGFuZCB0aGUgZWxlbWVudCB3aWxsIHNuYXAgdG8gaXRzIGZpbmFsIHN0YXRlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGhhc01vdW50ZWRPbmNlLmN1cnJlbnQgJiYgdmlzdWFsRWxlbWVudFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50UmVmLmN1cnJlbnQubWFudWFsbHlBbmltYXRlT25Nb3VudCA9IHRydWVcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHZpc3VhbEVsZW1lbnQgPSB2aXN1YWxFbGVtZW50UmVmLmN1cnJlbnRcblxuICAgIC8qKlxuICAgICAqIExvYWQgTW90aW9uIGdlc3R1cmUgYW5kIGFuaW1hdGlvbiBmZWF0dXJlcy4gVGhlc2UgYXJlIHJlbmRlcmVkIGFzIHJlbmRlcmxlc3NcbiAgICAgKiBjb21wb25lbnRzIHNvIGVhY2ggZmVhdHVyZSBjYW4gb3B0aW9uYWxseSBtYWtlIHVzZSBvZiBSZWFjdCBsaWZlY3ljbGUgbWV0aG9kcy5cbiAgICAgKi9cbiAgICBjb25zdCBpbml0aWFsTGF5b3V0R3JvdXBDb25maWcgPSB1c2VDb250ZXh0KFN3aXRjaExheW91dEdyb3VwQ29udGV4dClcblxuICAgIGlmIChcbiAgICAgICAgdmlzdWFsRWxlbWVudCAmJlxuICAgICAgICAhdmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uICYmXG4gICAgICAgIFByb2plY3Rpb25Ob2RlQ29uc3RydWN0b3IgJiZcbiAgICAgICAgKHZpc3VhbEVsZW1lbnQudHlwZSA9PT0gXCJodG1sXCIgfHwgdmlzdWFsRWxlbWVudC50eXBlID09PSBcInN2Z1wiKVxuICAgICkge1xuICAgICAgICBjcmVhdGVQcm9qZWN0aW9uTm9kZShcbiAgICAgICAgICAgIHZpc3VhbEVsZW1lbnRSZWYuY3VycmVudCEsXG4gICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgIFByb2plY3Rpb25Ob2RlQ29uc3RydWN0b3IsXG4gICAgICAgICAgICBpbml0aWFsTGF5b3V0R3JvdXBDb25maWdcbiAgICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGlzTW91bnRlZCA9IHVzZVJlZihmYWxzZSlcbiAgICB1c2VJbnNlcnRpb25FZmZlY3QoKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogQ2hlY2sgdGhlIGNvbXBvbmVudCBoYXMgYWxyZWFkeSBtb3VudGVkIGJlZm9yZSBjYWxsaW5nXG4gICAgICAgICAqIGB1cGRhdGVgIHVubmVjZXNzYXJpbHkuIFRoaXMgZW5zdXJlcyB3ZSBza2lwIHRoZSBpbml0aWFsIHVwZGF0ZS5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh2aXN1YWxFbGVtZW50ICYmIGlzTW91bnRlZC5jdXJyZW50KSB7XG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LnVwZGF0ZShwcm9wcywgcHJlc2VuY2VDb250ZXh0KVxuICAgICAgICB9XG4gICAgfSlcblxuICAgIC8qKlxuICAgICAqIENhY2hlIHRoaXMgdmFsdWUgYXMgd2Ugd2FudCB0byBrbm93IHdoZXRoZXIgSGFuZG9mZkFwcGVhckFuaW1hdGlvbnNcbiAgICAgKiB3YXMgcHJlc2VudCBvbiBpbml0aWFsIHJlbmRlciAtIGl0IHdpbGwgYmUgZGVsZXRlZCBhZnRlciB0aGlzLlxuICAgICAqL1xuICAgIGNvbnN0IG9wdGltaXNlZEFwcGVhcklkID1cbiAgICAgICAgcHJvcHNbb3B0aW1pemVkQXBwZWFyRGF0YUF0dHJpYnV0ZSBhcyBrZXlvZiB0eXBlb2YgcHJvcHNdXG4gICAgY29uc3Qgd2FudHNIYW5kb2ZmID0gdXNlUmVmKFxuICAgICAgICBCb29sZWFuKG9wdGltaXNlZEFwcGVhcklkKSAmJlxuICAgICAgICAgICAgIXdpbmRvdy5Nb3Rpb25IYW5kb2ZmSXNDb21wbGV0ZT8uKG9wdGltaXNlZEFwcGVhcklkKSAmJlxuICAgICAgICAgICAgd2luZG93Lk1vdGlvbkhhc09wdGltaXNlZEFuaW1hdGlvbj8uKG9wdGltaXNlZEFwcGVhcklkKVxuICAgIClcblxuICAgIHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogVHJhY2sgdGhhdCB0aGlzIGNvbXBvbmVudCBoYXMgbW91bnRlZC4gVGhpcyBpcyB1c2VkIHRvIGRldGVjdCB3aGVuXG4gICAgICAgICAqIExhenlNb3Rpb24gZmVhdHVyZXMgbG9hZCBhZnRlciB0aGUgY29tcG9uZW50IGhhcyBhbHJlYWR5IGNvbW1pdHRlZC5cbiAgICAgICAgICovXG4gICAgICAgIGhhc01vdW50ZWRPbmNlLmN1cnJlbnQgPSB0cnVlXG5cbiAgICAgICAgaWYgKCF2aXN1YWxFbGVtZW50KSByZXR1cm5cblxuICAgICAgICBpc01vdW50ZWQuY3VycmVudCA9IHRydWVcbiAgICAgICAgd2luZG93Lk1vdGlvbklzTW91bnRlZCA9IHRydWVcblxuICAgICAgICB2aXN1YWxFbGVtZW50LnVwZGF0ZUZlYXR1cmVzKClcbiAgICAgICAgdmlzdWFsRWxlbWVudC5zY2hlZHVsZVJlbmRlck1pY3JvdGFzaygpXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElkZWFsbHkgdGhpcyBmdW5jdGlvbiB3b3VsZCBhbHdheXMgcnVuIGluIGEgdXNlRWZmZWN0LlxuICAgICAgICAgKlxuICAgICAgICAgKiBIb3dldmVyLCBpZiB3ZSBoYXZlIG9wdGltaXNlZCBhcHBlYXIgYW5pbWF0aW9ucyB0byBoYW5kb2ZmIGZyb20sXG4gICAgICAgICAqIGl0IG5lZWRzIHRvIGhhcHBlbiBzeW5jaHJvbm91c2x5IHRvIGVuc3VyZSB0aGVyZSdzIG5vIGZsYXNoIG9mXG4gICAgICAgICAqIGluY29ycmVjdCBzdHlsZXMgaW4gdGhlIGV2ZW50IG9mIGEgaHlkcmF0aW9uIGVycm9yLlxuICAgICAgICAgKlxuICAgICAgICAgKiBTbyBpZiB3ZSBkZXRlY3QgYSBzaXR1dGF0aW9uIHdoZXJlIG9wdGltaXNlZCBhcHBlYXIgYW5pbWF0aW9uc1xuICAgICAgICAgKiBhcmUgcnVubmluZywgd2UgdXNlIHVzZUxheW91dEVmZmVjdCB0byB0cmlnZ2VyIGFuaW1hdGlvbnMuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAod2FudHNIYW5kb2ZmLmN1cnJlbnQgJiYgdmlzdWFsRWxlbWVudC5hbmltYXRpb25TdGF0ZSkge1xuICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5hbmltYXRpb25TdGF0ZS5hbmltYXRlQ2hhbmdlcygpXG4gICAgICAgIH1cbiAgICB9KVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCF2aXN1YWxFbGVtZW50KSByZXR1cm5cblxuICAgICAgICBpZiAoIXdhbnRzSGFuZG9mZi5jdXJyZW50ICYmIHZpc3VhbEVsZW1lbnQuYW5pbWF0aW9uU3RhdGUpIHtcbiAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQuYW5pbWF0aW9uU3RhdGUuYW5pbWF0ZUNoYW5nZXMoKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdhbnRzSGFuZG9mZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAvLyBUaGlzIGVuc3VyZXMgYWxsIGZ1dHVyZSBjYWxscyB0byBhbmltYXRlQ2hhbmdlcygpIGluIHRoaXMgY29tcG9uZW50IHdpbGwgcnVuIGluIHVzZUVmZmVjdFxuICAgICAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5Nb3Rpb25IYW5kb2ZmTWFya0FzQ29tcGxldGU/LihvcHRpbWlzZWRBcHBlYXJJZClcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIHdhbnRzSGFuZG9mZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgfVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBOb3cgd2UndmUgZmluaXNoZWQgdHJpZ2dlcmluZyBhbmltYXRpb25zIGZvciB0aGlzIGVsZW1lbnQgd2VcbiAgICAgICAgICogY2FuIHdpcGUgdGhlIGVudGVyaW5nQ2hpbGRyZW4gc2V0IGZvciB0aGUgbmV4dCByZW5kZXIuXG4gICAgICAgICAqL1xuICAgICAgICB2aXN1YWxFbGVtZW50LmVudGVyaW5nQ2hpbGRyZW4gPSB1bmRlZmluZWRcbiAgICB9KVxuXG4gICAgcmV0dXJuIHZpc3VhbEVsZW1lbnQhXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVByb2plY3Rpb25Ob2RlKFxuICAgIHZpc3VhbEVsZW1lbnQ6IFZpc3VhbEVsZW1lbnQ8YW55PixcbiAgICBwcm9wczogTW90aW9uUHJvcHMsXG4gICAgUHJvamVjdGlvbk5vZGVDb25zdHJ1Y3RvcjogYW55LFxuICAgIGluaXRpYWxQcm9tb3Rpb25Db25maWc/OiBJbml0aWFsUHJvbW90aW9uQ29uZmlnXG4pIHtcbiAgICBjb25zdCB7XG4gICAgICAgIGxheW91dElkLFxuICAgICAgICBsYXlvdXQsXG4gICAgICAgIGRyYWcsXG4gICAgICAgIGRyYWdDb25zdHJhaW50cyxcbiAgICAgICAgbGF5b3V0U2Nyb2xsLFxuICAgICAgICBsYXlvdXRSb290LFxuICAgICAgICBsYXlvdXRDcm9zc2ZhZGUsXG4gICAgfSA9IHByb3BzXG5cbiAgICB2aXN1YWxFbGVtZW50LnByb2plY3Rpb24gPSBuZXcgUHJvamVjdGlvbk5vZGVDb25zdHJ1Y3RvcihcbiAgICAgICAgdmlzdWFsRWxlbWVudC5sYXRlc3RWYWx1ZXMsXG4gICAgICAgIHByb3BzW1wiZGF0YS1mcmFtZXItcG9ydGFsLWlkXCJdXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiBnZXRDbG9zZXN0UHJvamVjdGluZ05vZGUodmlzdWFsRWxlbWVudC5wYXJlbnQpXG4gICAgKSBhcyBJUHJvamVjdGlvbk5vZGVcblxuICAgIHZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5zZXRPcHRpb25zKHtcbiAgICAgICAgbGF5b3V0SWQsXG4gICAgICAgIGxheW91dCxcbiAgICAgICAgYWx3YXlzTWVhc3VyZUxheW91dDpcbiAgICAgICAgICAgIEJvb2xlYW4oZHJhZykgfHwgKGRyYWdDb25zdHJhaW50cyAmJiBpc1JlZk9iamVjdChkcmFnQ29uc3RyYWludHMpKSxcbiAgICAgICAgdmlzdWFsRWxlbWVudCxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRPRE86IFVwZGF0ZSBvcHRpb25zIGluIGFuIGVmZmVjdC4gVGhpcyBjb3VsZCBiZSB0cmlja3kgYXMgaXQnbGwgYmUgdG9vIGxhdGVcbiAgICAgICAgICogdG8gdXBkYXRlIGJ5IHRoZSB0aW1lIGxheW91dCBhbmltYXRpb25zIHJ1bi5cbiAgICAgICAgICogV2UgYWxzbyBuZWVkIHRvIGZpeCB0aGlzIHNhZmVUb1JlbW92ZSBieSBsaW5raW5nIGl0IHVwIHRvIHRoZSBvbmUgcmV0dXJuZWQgYnkgdXNlUHJlc2VuY2UsXG4gICAgICAgICAqIGVuc3VyaW5nIGl0IGdldHMgY2FsbGVkIGlmIHRoZXJlJ3Mgbm8gcG90ZW50aWFsIGxheW91dCBhbmltYXRpb25zLlxuICAgICAgICAgKlxuICAgICAgICAgKi9cbiAgICAgICAgYW5pbWF0aW9uVHlwZTogdHlwZW9mIGxheW91dCA9PT0gXCJzdHJpbmdcIiA/IGxheW91dCA6IFwiYm90aFwiLFxuICAgICAgICBpbml0aWFsUHJvbW90aW9uQ29uZmlnLFxuICAgICAgICBjcm9zc2ZhZGU6IGxheW91dENyb3NzZmFkZSxcbiAgICAgICAgbGF5b3V0U2Nyb2xsLFxuICAgICAgICBsYXlvdXRSb290LFxuICAgIH0pXG59XG5cbmZ1bmN0aW9uIGdldENsb3Nlc3RQcm9qZWN0aW5nTm9kZShcbiAgICB2aXN1YWxFbGVtZW50PzogVmlzdWFsRWxlbWVudDxcbiAgICAgICAgdW5rbm93bixcbiAgICAgICAgdW5rbm93bixcbiAgICAgICAgeyBhbGxvd1Byb2plY3Rpb24/OiBib29sZWFuIH1cbiAgICA+XG4pOiBJUHJvamVjdGlvbk5vZGUgfCB1bmRlZmluZWQge1xuICAgIGlmICghdmlzdWFsRWxlbWVudCkgcmV0dXJuIHVuZGVmaW5lZFxuXG4gICAgcmV0dXJuIHZpc3VhbEVsZW1lbnQub3B0aW9ucy5hbGxvd1Byb2plY3Rpb24gIT09IGZhbHNlXG4gICAgICAgID8gdmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uXG4gICAgICAgIDogZ2V0Q2xvc2VzdFByb2plY3RpbmdOb2RlKHZpc3VhbEVsZW1lbnQucGFyZW50KVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.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 */ makeUseVisualState: () => (/* binding */ makeUseVisualState)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context/MotionContext/index.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* __next_internal_client_entry_do_not_use__ makeUseVisualState auto */ \n\n\n\n\nfunction makeState({ scrapeMotionValuesFromProps, createRenderState }, props, context, presenceContext) {\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState()\n };\n return state;\n}\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props, {});\n for(const key in motionValues){\n values[key] = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.resolveMotionValue)(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isControllingVariants)(props);\n const isVariantNode$1 = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isVariantNode)(props);\n if (context && isVariantNode$1 && !isControllingVariants$1 && props.inherit !== false) {\n if (initial === undefined) initial = context.initial;\n if (animate === undefined) animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext ? presenceContext.initial === false : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet && typeof variantToSet !== \"boolean\" && !(0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.isAnimationControls)(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [\n variantToSet\n ];\n for(let i = 0; i < list.length; i++){\n const resolved = (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.resolveVariantFromProps)(props, list[i]);\n if (resolved) {\n const { transitionEnd, transition, ...target } = resolved;\n for(const key in target){\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */ const index = isInitialAnimationBlocked ? valueTarget.length - 1 : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for(const key in transitionEnd){\n values[key] = transitionEnd[key];\n }\n }\n }\n }\n return values;\n}\nconst makeUseVisualState = (config)=>(props, isStatic)=>{\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_5__.MotionContext);\n const presenceContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_6__.PresenceContext);\n const make = ()=>makeState(config, props, context, presenceContext);\n return isStatic ? make() : (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_7__.useConstant)(make);\n };\n //# sourceMappingURL=use-visual-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi91dGlscy91c2UtdmlzdWFsLXN0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQXFDQTtJQVNJOzs7O0lBVUE7QUFDSjtBQUVBOzs7SUFTSTs7O0lBSUE7SUFDQTtJQUNBO0lBRUEsa0NBR0ksNEJBQ0E7bUNBRTJCO21DQUNBOztzREFJM0I7SUFFSjs7SUFJQSx5REFHSTtRQUVBO1lBQUE7U0FBQTtRQUNBOzs7O2dCQUlRO29CQUNJO29CQUVBO3dCQUNJOzs7eUJBR0csNkNBRUM7d0JBRUo7O29CQUdKO3dCQUNJOzs7Z0JBR1I7Ozs7OztJQVNaO0FBQ0o7QUFFTztRQUdDO1FBQ0E7UUFDQTtRQUVBO0lBQ0oiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9tb3Rpb24vdXRpbHMvdXNlLXZpc3VhbC1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQge1xuICAgIEFueVJlc29sdmVkS2V5ZnJhbWUsXG4gICAgaXNBbmltYXRpb25Db250cm9scyxcbiAgICBpc0NvbnRyb2xsaW5nVmFyaWFudHMgYXMgY2hlY2tJc0NvbnRyb2xsaW5nVmFyaWFudHMsXG4gICAgaXNWYXJpYW50Tm9kZSBhcyBjaGVja0lzVmFyaWFudE5vZGUsXG4gICAgUmVzb2x2ZWRWYWx1ZXMsXG4gICAgcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMsXG59IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTW90aW9uQ29udGV4dCwgTW90aW9uQ29udGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvTW90aW9uQ29udGV4dFwiXG5pbXBvcnQge1xuICAgIFByZXNlbmNlQ29udGV4dCxcbiAgICB0eXBlIFByZXNlbmNlQ29udGV4dFByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29udGV4dC9QcmVzZW5jZUNvbnRleHRcIlxuaW1wb3J0IHsgU2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzIH0gZnJvbSBcIi4uLy4uL3JlbmRlci90eXBlc1wiXG5pbXBvcnQgeyB1c2VDb25zdGFudCB9IGZyb20gXCIuLi8uLi91dGlscy91c2UtY29uc3RhbnRcIlxuaW1wb3J0IHsgcmVzb2x2ZU1vdGlvblZhbHVlIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vdHlwZXNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFZpc3VhbFN0YXRlPEluc3RhbmNlLCBSZW5kZXJTdGF0ZT4ge1xuICAgIHJlbmRlclN0YXRlOiBSZW5kZXJTdGF0ZVxuICAgIGxhdGVzdFZhbHVlczogUmVzb2x2ZWRWYWx1ZXNcbiAgICBvbk1vdW50PzogKGluc3RhbmNlOiBJbnN0YW5jZSkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBVc2VWaXN1YWxTdGF0ZTxJbnN0YW5jZSwgUmVuZGVyU3RhdGU+ID0gKFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wcyxcbiAgICBpc1N0YXRpYzogYm9vbGVhblxuKSA9PiBWaXN1YWxTdGF0ZTxJbnN0YW5jZSwgUmVuZGVyU3RhdGU+XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlVmlzdWFsU3RhdGVDb25maWc8UmVuZGVyU3RhdGU+IHtcbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHM6IFNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wc1xuICAgIGNyZWF0ZVJlbmRlclN0YXRlOiAoKSA9PiBSZW5kZXJTdGF0ZVxufVxuXG5mdW5jdGlvbiBtYWtlU3RhdGU8SSwgUlM+KFxuICAgIHtcbiAgICAgICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzLFxuICAgICAgICBjcmVhdGVSZW5kZXJTdGF0ZSxcbiAgICB9OiBVc2VWaXN1YWxTdGF0ZUNvbmZpZzxSUz4sXG4gICAgcHJvcHM6IE1vdGlvblByb3BzLFxuICAgIGNvbnRleHQ6IE1vdGlvbkNvbnRleHRQcm9wcyxcbiAgICBwcmVzZW5jZUNvbnRleHQ6IFByZXNlbmNlQ29udGV4dFByb3BzIHwgbnVsbFxuKSB7XG4gICAgY29uc3Qgc3RhdGU6IFZpc3VhbFN0YXRlPEksIFJTPiA9IHtcbiAgICAgICAgbGF0ZXN0VmFsdWVzOiBtYWtlTGF0ZXN0VmFsdWVzKFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcHJlc2VuY2VDb250ZXh0LFxuICAgICAgICAgICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzXG4gICAgICAgICksXG4gICAgICAgIHJlbmRlclN0YXRlOiBjcmVhdGVSZW5kZXJTdGF0ZSgpLFxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZVxufVxuXG5mdW5jdGlvbiBtYWtlTGF0ZXN0VmFsdWVzKFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wcyxcbiAgICBjb250ZXh0OiBNb3Rpb25Db250ZXh0UHJvcHMsXG4gICAgcHJlc2VuY2VDb250ZXh0OiBQcmVzZW5jZUNvbnRleHRQcm9wcyB8IG51bGwsXG4gICAgc2NyYXBlTW90aW9uVmFsdWVzOiBTY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHNcbikge1xuICAgIGNvbnN0IHZhbHVlczogUmVzb2x2ZWRWYWx1ZXMgPSB7fVxuXG4gICAgY29uc3QgbW90aW9uVmFsdWVzID0gc2NyYXBlTW90aW9uVmFsdWVzKHByb3BzLCB7fSlcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBtb3Rpb25WYWx1ZXMpIHtcbiAgICAgICAgdmFsdWVzW2tleV0gPSByZXNvbHZlTW90aW9uVmFsdWUobW90aW9uVmFsdWVzW2tleV0pXG4gICAgfVxuXG4gICAgbGV0IHsgaW5pdGlhbCwgYW5pbWF0ZSB9ID0gcHJvcHNcbiAgICBjb25zdCBpc0NvbnRyb2xsaW5nVmFyaWFudHMgPSBjaGVja0lzQ29udHJvbGxpbmdWYXJpYW50cyhwcm9wcylcbiAgICBjb25zdCBpc1ZhcmlhbnROb2RlID0gY2hlY2tJc1ZhcmlhbnROb2RlKHByb3BzKVxuXG4gICAgaWYgKFxuICAgICAgICBjb250ZXh0ICYmXG4gICAgICAgIGlzVmFyaWFudE5vZGUgJiZcbiAgICAgICAgIWlzQ29udHJvbGxpbmdWYXJpYW50cyAmJlxuICAgICAgICBwcm9wcy5pbmhlcml0ICE9PSBmYWxzZVxuICAgICkge1xuICAgICAgICBpZiAoaW5pdGlhbCA9PT0gdW5kZWZpbmVkKSBpbml0aWFsID0gY29udGV4dC5pbml0aWFsXG4gICAgICAgIGlmIChhbmltYXRlID09PSB1bmRlZmluZWQpIGFuaW1hdGUgPSBjb250ZXh0LmFuaW1hdGVcbiAgICB9XG5cbiAgICBsZXQgaXNJbml0aWFsQW5pbWF0aW9uQmxvY2tlZCA9IHByZXNlbmNlQ29udGV4dFxuICAgICAgICA/IHByZXNlbmNlQ29udGV4dC5pbml0aWFsID09PSBmYWxzZVxuICAgICAgICA6IGZhbHNlXG4gICAgaXNJbml0aWFsQW5pbWF0aW9uQmxvY2tlZCA9IGlzSW5pdGlhbEFuaW1hdGlvbkJsb2NrZWQgfHwgaW5pdGlhbCA9PT0gZmFsc2VcblxuICAgIGNvbnN0IHZhcmlhbnRUb1NldCA9IGlzSW5pdGlhbEFuaW1hdGlvbkJsb2NrZWQgPyBhbmltYXRlIDogaW5pdGlhbFxuXG4gICAgaWYgKFxuICAgICAgICB2YXJpYW50VG9TZXQgJiZcbiAgICAgICAgdHlwZW9mIHZhcmlhbnRUb1NldCAhPT0gXCJib29sZWFuXCIgJiZcbiAgICAgICAgIWlzQW5pbWF0aW9uQ29udHJvbHModmFyaWFudFRvU2V0KVxuICAgICkge1xuICAgICAgICBjb25zdCBsaXN0ID0gQXJyYXkuaXNBcnJheSh2YXJpYW50VG9TZXQpID8gdmFyaWFudFRvU2V0IDogW3ZhcmlhbnRUb1NldF1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVWYXJpYW50RnJvbVByb3BzKHByb3BzLCBsaXN0W2ldIGFzIGFueSlcbiAgICAgICAgICAgIGlmIChyZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdHJhbnNpdGlvbkVuZCwgdHJhbnNpdGlvbiwgLi4udGFyZ2V0IH0gPSByZXNvbHZlZFxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWVUYXJnZXQgPSB0YXJnZXRba2V5IGFzIGtleW9mIHR5cGVvZiB0YXJnZXRdXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVUYXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFRha2UgZmluYWwga2V5ZnJhbWUgaWYgdGhlIGluaXRpYWwgYW5pbWF0aW9uIGlzIGJsb2NrZWQgYmVjYXVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICogd2Ugd2FudCB0byBpbml0aWFsaXNlIGF0IHRoZSBlbmQgb2YgdGhhdCBibG9ja2VkIGFuaW1hdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBpc0luaXRpYWxBbmltYXRpb25CbG9ja2VkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZVRhcmdldC5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAwXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRhcmdldCA9IHZhbHVlVGFyZ2V0W2luZGV4XSBhcyBhbnlcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVRhcmdldCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW2tleV0gPSB2YWx1ZVRhcmdldCBhcyBBbnlSZXNvbHZlZEtleWZyYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdHJhbnNpdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXNba2V5XSA9IHRyYW5zaXRpb25FbmRbXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXkgYXMga2V5b2YgdHlwZW9mIHRyYW5zaXRpb25FbmRcbiAgICAgICAgICAgICAgICAgICAgXSBhcyBBbnlSZXNvbHZlZEtleWZyYW1lXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlc1xufVxuXG5leHBvcnQgY29uc3QgbWFrZVVzZVZpc3VhbFN0YXRlID1cbiAgICA8SSwgUlM+KGNvbmZpZzogVXNlVmlzdWFsU3RhdGVDb25maWc8UlM+KTogVXNlVmlzdWFsU3RhdGU8SSwgUlM+ID0+XG4gICAgKHByb3BzOiBNb3Rpb25Qcm9wcywgaXNTdGF0aWM6IGJvb2xlYW4pOiBWaXN1YWxTdGF0ZTxJLCBSUz4gPT4ge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChNb3Rpb25Db250ZXh0KVxuICAgICAgICBjb25zdCBwcmVzZW5jZUNvbnRleHQgPSB1c2VDb250ZXh0KFByZXNlbmNlQ29udGV4dClcbiAgICAgICAgY29uc3QgbWFrZSA9ICgpID0+IG1ha2VTdGF0ZShjb25maWcsIHByb3BzLCBjb250ZXh0LCBwcmVzZW5jZUNvbnRleHQpXG5cbiAgICAgICAgcmV0dXJuIGlzU3RhdGljID8gbWFrZSgpIDogdXNlQ29uc3RhbnQobWFrZSlcbiAgICB9XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/valid-prop.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 */ isValidMotionProp: () => (/* binding */ isValidMotionProp)\n/* harmony export */ });\n/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"propagate\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n\n\n//# sourceMappingURL=valid-prop.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi91dGlscy92YWxpZC1wcm9wLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNkI7QUFDN0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi91dGlscy92YWxpZC1wcm9wLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgbGlzdCBvZiBhbGwgdmFsaWQgTW90aW9uUHJvcHMuXG4gKlxuICogQHByaXZhdGVSZW1hcmtzXG4gKiBUaGlzIGRvZXNuJ3QgdGhyb3cgaWYgYSBgTW90aW9uUHJvcGAgbmFtZSBpcyBtaXNzaW5nIC0gaXQgc2hvdWxkLlxuICovXG5jb25zdCB2YWxpZE1vdGlvblByb3BzID0gbmV3IFNldChbXG4gICAgXCJhbmltYXRlXCIsXG4gICAgXCJleGl0XCIsXG4gICAgXCJ2YXJpYW50c1wiLFxuICAgIFwiaW5pdGlhbFwiLFxuICAgIFwic3R5bGVcIixcbiAgICBcInZhbHVlc1wiLFxuICAgIFwidmFyaWFudHNcIixcbiAgICBcInRyYW5zaXRpb25cIixcbiAgICBcInRyYW5zZm9ybVRlbXBsYXRlXCIsXG4gICAgXCJjdXN0b21cIixcbiAgICBcImluaGVyaXRcIixcbiAgICBcIm9uQmVmb3JlTGF5b3V0TWVhc3VyZVwiLFxuICAgIFwib25BbmltYXRpb25TdGFydFwiLFxuICAgIFwib25BbmltYXRpb25Db21wbGV0ZVwiLFxuICAgIFwib25VcGRhdGVcIixcbiAgICBcIm9uRHJhZ1N0YXJ0XCIsXG4gICAgXCJvbkRyYWdcIixcbiAgICBcIm9uRHJhZ0VuZFwiLFxuICAgIFwib25NZWFzdXJlRHJhZ0NvbnN0cmFpbnRzXCIsXG4gICAgXCJvbkRpcmVjdGlvbkxvY2tcIixcbiAgICBcIm9uRHJhZ1RyYW5zaXRpb25FbmRcIixcbiAgICBcIl9kcmFnWFwiLFxuICAgIFwiX2RyYWdZXCIsXG4gICAgXCJvbkhvdmVyU3RhcnRcIixcbiAgICBcIm9uSG92ZXJFbmRcIixcbiAgICBcIm9uVmlld3BvcnRFbnRlclwiLFxuICAgIFwib25WaWV3cG9ydExlYXZlXCIsXG4gICAgXCJnbG9iYWxUYXBUYXJnZXRcIixcbiAgICBcInByb3BhZ2F0ZVwiLFxuICAgIFwiaWdub3JlU3RyaWN0XCIsXG4gICAgXCJ2aWV3cG9ydFwiLFxuXSk7XG4vKipcbiAqIENoZWNrIHdoZXRoZXIgYSBwcm9wIG5hbWUgaXMgYSB2YWxpZCBgTW90aW9uUHJvcGAga2V5LlxuICpcbiAqIEBwYXJhbSBrZXkgLSBOYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBjaGVja1xuICogQHJldHVybnMgYHRydWVgIGlzIGtleSBpcyBhIHZhbGlkIGBNb3Rpb25Qcm9wYC5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRNb3Rpb25Qcm9wKGtleSkge1xuICAgIHJldHVybiAoa2V5LnN0YXJ0c1dpdGgoXCJ3aGlsZVwiKSB8fFxuICAgICAgICAoa2V5LnN0YXJ0c1dpdGgoXCJkcmFnXCIpICYmIGtleSAhPT0gXCJkcmFnZ2FibGVcIikgfHxcbiAgICAgICAga2V5LnN0YXJ0c1dpdGgoXCJsYXlvdXRcIikgfHxcbiAgICAgICAga2V5LnN0YXJ0c1dpdGgoXCJvblRhcFwiKSB8fFxuICAgICAgICBrZXkuc3RhcnRzV2l0aChcIm9uUGFuXCIpIHx8XG4gICAgICAgIGtleS5zdGFydHNXaXRoKFwib25MYXlvdXRcIikgfHxcbiAgICAgICAgdmFsaWRNb3Rpb25Qcm9wcy5oYXMoa2V5KSk7XG59XG5cbmV4cG9ydCB7IGlzVmFsaWRNb3Rpb25Qcm9wIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD12YWxpZC1wcm9wLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/components/create-proxy.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 */ createMotionProxy: () => (/* binding */ createMotionProxy)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var _motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/index.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/index.mjs\");\n\n\n\nfunction createMotionProxy(preloadedFeatures, createVisualElement) {\n if (typeof Proxy === \"undefined\") {\n return _motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n const factory = (Component, options) => {\n return (0,_motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent)(Component, options, preloadedFeatures, createVisualElement);\n };\n /**\n * Support for deprecated`motion(Component)` pattern\n */\n const deprecatedFactoryFunction = (Component, options) => {\n if (true) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warnOnce)(false, \"motion() is deprecated. Use motion.create() instead.\");\n }\n return factory(Component, options);\n };\n return new Proxy(deprecatedFactoryFunction, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n if (key === \"create\")\n return factory;\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, (0,_motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent)(key, undefined, preloadedFeatures, createVisualElement));\n }\n return componentCache.get(key);\n },\n });\n}\n\n\n//# sourceMappingURL=create-proxy.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9jb21wb25lbnRzL2NyZWF0ZS1wcm94eS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXdDO0FBQ3VCOztBQUUvRDtBQUNBO0FBQ0EsZUFBZSxvRUFBcUI7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHdFQUFxQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxJQUFxQztBQUNqRCxZQUFZLHNEQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLHdFQUFxQjtBQUM3RDtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDs7QUFFNkI7QUFDN0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9jb21wb25lbnRzL2NyZWF0ZS1wcm94eS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgY3JlYXRlTW90aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW90aW9uL2luZGV4Lm1qcyc7XG5cbmZ1bmN0aW9uIGNyZWF0ZU1vdGlvblByb3h5KHByZWxvYWRlZEZlYXR1cmVzLCBjcmVhdGVWaXN1YWxFbGVtZW50KSB7XG4gICAgaWYgKHR5cGVvZiBQcm94eSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICByZXR1cm4gY3JlYXRlTW90aW9uQ29tcG9uZW50O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBIGNhY2hlIG9mIGdlbmVyYXRlZCBgbW90aW9uYCBjb21wb25lbnRzLCBlLmcgYG1vdGlvbi5kaXZgLCBgbW90aW9uLmlucHV0YCBldGMuXG4gICAgICogUmF0aGVyIHRoYW4gZ2VuZXJhdGluZyB0aGVtIGFuZXcgZXZlcnkgcmVuZGVyLlxuICAgICAqL1xuICAgIGNvbnN0IGNvbXBvbmVudENhY2hlID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IGZhY3RvcnkgPSAoQ29tcG9uZW50LCBvcHRpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiBjcmVhdGVNb3Rpb25Db21wb25lbnQoQ29tcG9uZW50LCBvcHRpb25zLCBwcmVsb2FkZWRGZWF0dXJlcywgY3JlYXRlVmlzdWFsRWxlbWVudCk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBTdXBwb3J0IGZvciBkZXByZWNhdGVkYG1vdGlvbihDb21wb25lbnQpYCBwYXR0ZXJuXG4gICAgICovXG4gICAgY29uc3QgZGVwcmVjYXRlZEZhY3RvcnlGdW5jdGlvbiA9IChDb21wb25lbnQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgICAgd2Fybk9uY2UoZmFsc2UsIFwibW90aW9uKCkgaXMgZGVwcmVjYXRlZC4gVXNlIG1vdGlvbi5jcmVhdGUoKSBpbnN0ZWFkLlwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFjdG9yeShDb21wb25lbnQsIG9wdGlvbnMpO1xuICAgIH07XG4gICAgcmV0dXJuIG5ldyBQcm94eShkZXByZWNhdGVkRmFjdG9yeUZ1bmN0aW9uLCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDYWxsZWQgd2hlbiBgbW90aW9uYCBpcyByZWZlcmVuY2VkIHdpdGggYSBwcm9wOiBgbW90aW9uLmRpdmAsIGBtb3Rpb24uaW5wdXRgIGV0Yy5cbiAgICAgICAgICogVGhlIHByb3AgbmFtZSBpcyBwYXNzZWQgdGhyb3VnaCBhcyBga2V5YCBhbmQgd2UgY2FuIHVzZSB0aGF0IHRvIGdlbmVyYXRlIGEgYG1vdGlvbmBcbiAgICAgICAgICogRE9NIGNvbXBvbmVudCB3aXRoIHRoYXQgbmFtZS5cbiAgICAgICAgICovXG4gICAgICAgIGdldDogKF90YXJnZXQsIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gXCJjcmVhdGVcIilcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFjdG9yeTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBlbGVtZW50IGRvZXNuJ3QgZXhpc3QgaW4gdGhlIGNvbXBvbmVudCBjYWNoZSwgY3JlYXRlIGl0IGFuZCBjYWNoZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKCFjb21wb25lbnRDYWNoZS5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudENhY2hlLnNldChrZXksIGNyZWF0ZU1vdGlvbkNvbXBvbmVudChrZXksIHVuZGVmaW5lZCwgcHJlbG9hZGVkRmVhdHVyZXMsIGNyZWF0ZVZpc3VhbEVsZW1lbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRDYWNoZS5nZXQoa2V5KTtcbiAgICAgICAgfSxcbiAgICB9KTtcbn1cblxuZXhwb3J0IHsgY3JlYXRlTW90aW9uUHJveHkgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZS1wcm94eS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.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 */ featureBundle: () => (/* binding */ featureBundle)\n/* harmony export */ });\n/* harmony import */ var _motion_features_animations_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../motion/features/animations.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs\");\n/* harmony import */ var _motion_features_drag_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../motion/features/drag.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs\");\n/* harmony import */ var _motion_features_gestures_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../motion/features/gestures.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs\");\n/* harmony import */ var _motion_features_layout_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../motion/features/layout.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs\");\n\n\n\n\n\nconst featureBundle = {\n ..._motion_features_animations_mjs__WEBPACK_IMPORTED_MODULE_0__.animations,\n ..._motion_features_gestures_mjs__WEBPACK_IMPORTED_MODULE_1__.gestureAnimations,\n ..._motion_features_drag_mjs__WEBPACK_IMPORTED_MODULE_2__.drag,\n ..._motion_features_layout_mjs__WEBPACK_IMPORTED_MODULE_3__.layout,\n};\n\n\n//# sourceMappingURL=feature-bundle.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9jb21wb25lbnRzL21vdGlvbi9mZWF0dXJlLWJ1bmRsZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBcUU7QUFDWjtBQUNpQjtBQUNiOztBQUU3RDtBQUNBLE9BQU8sdUVBQVU7QUFDakIsT0FBTyw0RUFBaUI7QUFDeEIsT0FBTywyREFBSTtBQUNYLE9BQU8sK0RBQU07QUFDYjs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9jb21wb25lbnRzL21vdGlvbi9mZWF0dXJlLWJ1bmRsZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0aW9ucyB9IGZyb20gJy4uLy4uLy4uL21vdGlvbi9mZWF0dXJlcy9hbmltYXRpb25zLm1qcyc7XG5pbXBvcnQgeyBkcmFnIH0gZnJvbSAnLi4vLi4vLi4vbW90aW9uL2ZlYXR1cmVzL2RyYWcubWpzJztcbmltcG9ydCB7IGdlc3R1cmVBbmltYXRpb25zIH0gZnJvbSAnLi4vLi4vLi4vbW90aW9uL2ZlYXR1cmVzL2dlc3R1cmVzLm1qcyc7XG5pbXBvcnQgeyBsYXlvdXQgfSBmcm9tICcuLi8uLi8uLi9tb3Rpb24vZmVhdHVyZXMvbGF5b3V0Lm1qcyc7XG5cbmNvbnN0IGZlYXR1cmVCdW5kbGUgPSB7XG4gICAgLi4uYW5pbWF0aW9ucyxcbiAgICAuLi5nZXN0dXJlQW5pbWF0aW9ucyxcbiAgICAuLi5kcmFnLFxuICAgIC4uLmxheW91dCxcbn07XG5cbmV4cG9ydCB7IGZlYXR1cmVCdW5kbGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZlYXR1cmUtYnVuZGxlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/components/motion/proxy.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 */ motion: () => (/* binding */ motion)\n/* harmony export */ });\n/* harmony import */ var _dom_create_visual_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dom/create-visual-element.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs\");\n/* harmony import */ var _create_proxy_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../create-proxy.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs\");\n/* harmony import */ var _feature_bundle_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./feature-bundle.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs\");\n\n\n\n\nconst motion = /*@__PURE__*/ (0,_create_proxy_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionProxy)(_feature_bundle_mjs__WEBPACK_IMPORTED_MODULE_1__.featureBundle, _dom_create_visual_element_mjs__WEBPACK_IMPORTED_MODULE_2__.createDomVisualElement);\n\n\n//# sourceMappingURL=proxy.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9jb21wb25lbnRzL21vdGlvbi9wcm94eS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE2RTtBQUNyQjtBQUNIOztBQUVyRCw2QkFBNkIsb0VBQWlCLENBQUMsOERBQWEsRUFBRSxrRkFBc0I7O0FBRWxFO0FBQ2xCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvY29tcG9uZW50cy9tb3Rpb24vcHJveHkubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZURvbVZpc3VhbEVsZW1lbnQgfSBmcm9tICcuLi8uLi9kb20vY3JlYXRlLXZpc3VhbC1lbGVtZW50Lm1qcyc7XG5pbXBvcnQgeyBjcmVhdGVNb3Rpb25Qcm94eSB9IGZyb20gJy4uL2NyZWF0ZS1wcm94eS5tanMnO1xuaW1wb3J0IHsgZmVhdHVyZUJ1bmRsZSB9IGZyb20gJy4vZmVhdHVyZS1idW5kbGUubWpzJztcblxuY29uc3QgbW90aW9uID0gLypAX19QVVJFX18qLyBjcmVhdGVNb3Rpb25Qcm94eShmZWF0dXJlQnVuZGxlLCBjcmVhdGVEb21WaXN1YWxFbGVtZW50KTtcblxuZXhwb3J0IHsgbW90aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcm94eS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/create-visual-element.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 */ createDomVisualElement: () => (/* binding */ createDomVisualElement)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/is-svg-component.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n\n\n\n\nconst createDomVisualElement = (Component, options) => {\n /**\n * Use explicit isSVG override if provided, otherwise auto-detect\n */\n const isSVG = options.isSVG ?? (0,_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__.isSVGComponent)(Component);\n return isSVG\n ? new motion_dom__WEBPACK_IMPORTED_MODULE_2__.SVGVisualElement(options)\n : new motion_dom__WEBPACK_IMPORTED_MODULE_3__.HTMLVisualElement(options, {\n allowProjection: Component !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment,\n });\n};\n\n\n//# sourceMappingURL=create-visual-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vY3JlYXRlLXZpc3VhbC1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFpRTtBQUNoQztBQUM2Qjs7QUFFOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsMkVBQWM7QUFDakQ7QUFDQSxjQUFjLHdEQUFnQjtBQUM5QixjQUFjLHlEQUFpQjtBQUMvQiwyQ0FBMkMsMkNBQVE7QUFDbkQsU0FBUztBQUNUOztBQUVrQztBQUNsQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9jcmVhdGUtdmlzdWFsLWVsZW1lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNWR1Zpc3VhbEVsZW1lbnQsIEhUTUxWaXN1YWxFbGVtZW50IH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBGcmFnbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGlzU1ZHQ29tcG9uZW50IH0gZnJvbSAnLi91dGlscy9pcy1zdmctY29tcG9uZW50Lm1qcyc7XG5cbmNvbnN0IGNyZWF0ZURvbVZpc3VhbEVsZW1lbnQgPSAoQ29tcG9uZW50LCBvcHRpb25zKSA9PiB7XG4gICAgLyoqXG4gICAgICogVXNlIGV4cGxpY2l0IGlzU1ZHIG92ZXJyaWRlIGlmIHByb3ZpZGVkLCBvdGhlcndpc2UgYXV0by1kZXRlY3RcbiAgICAgKi9cbiAgICBjb25zdCBpc1NWRyA9IG9wdGlvbnMuaXNTVkcgPz8gaXNTVkdDb21wb25lbnQoQ29tcG9uZW50KTtcbiAgICByZXR1cm4gaXNTVkdcbiAgICAgICAgPyBuZXcgU1ZHVmlzdWFsRWxlbWVudChvcHRpb25zKVxuICAgICAgICA6IG5ldyBIVE1MVmlzdWFsRWxlbWVudChvcHRpb25zLCB7XG4gICAgICAgICAgICBhbGxvd1Byb2plY3Rpb246IENvbXBvbmVudCAhPT0gRnJhZ21lbnQsXG4gICAgICAgIH0pO1xufTtcblxuZXhwb3J0IHsgY3JlYXRlRG9tVmlzdWFsRWxlbWVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLXZpc3VhbC1lbGVtZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/use-render.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 */ useRender: () => (/* binding */ useRender)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../html/use-props.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\");\n/* harmony import */ var _svg_use_props_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg/use-props.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs\");\n/* harmony import */ var _utils_filter_props_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/filter-props.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs\");\n/* harmony import */ var _utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/is-svg-component.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n/* __next_internal_client_entry_do_not_use__ useRender auto */ \n\n\n\n\n\nfunction useRender(Component, props, ref, { latestValues }, isStatic, forwardMotionProps = false, isSVG) {\n const useVisualProps = isSVG ?? (0,_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__.isSVGComponent)(Component) ? _svg_use_props_mjs__WEBPACK_IMPORTED_MODULE_2__.useSVGProps : _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_3__.useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = (0,_utils_filter_props_mjs__WEBPACK_IMPORTED_MODULE_4__.filterProps)(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment ? {\n ...filteredProps,\n ...visualProps,\n ref\n } : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */ const { children } = props;\n const renderedChildren = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useRender.useMemo[renderedChildren]\": ()=>(0,motion_dom__WEBPACK_IMPORTED_MODULE_5__.isMotionValue)(children) ? children.get() : children\n }[\"useRender.useMemo[renderedChildren]\"], [\n children\n ]);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Component, {\n ...elementProps,\n children: renderedChildren\n });\n}\n //# sourceMappingURL=use-render.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vdXNlLXJlbmRlci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7SUE0Qkk7SUFHQTtJQU1BOzs7Ozs7SUFRQTs7OztLQUlHLEdBQ0g7SUFDQTsrQ0FBQTs4Q0FBQTtRQUFBO0tBQUE7O1FBTUk7UUFDQTtJQUNIO0FBQ0wiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9yZW5kZXIvZG9tL3VzZS1yZW5kZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCB7IEZyYWdtZW50LCBjcmVhdGVFbGVtZW50LCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IE1vdGlvblByb3BzIH0gZnJvbSBcIi4uLy4uL21vdGlvbi90eXBlc1wiXG5pbXBvcnQgeyBWaXN1YWxTdGF0ZSB9IGZyb20gXCIuLi8uLi9tb3Rpb24vdXRpbHMvdXNlLXZpc3VhbC1zdGF0ZVwiXG5pbXBvcnQgeyBIVE1MUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi4vaHRtbC90eXBlc1wiXG5pbXBvcnQgeyB1c2VIVE1MUHJvcHMgfSBmcm9tIFwiLi4vaHRtbC91c2UtcHJvcHNcIlxuaW1wb3J0IHsgU1ZHUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi4vc3ZnL3R5cGVzXCJcbmltcG9ydCB7IHVzZVNWR1Byb3BzIH0gZnJvbSBcIi4uL3N2Zy91c2UtcHJvcHNcIlxuaW1wb3J0IHsgRE9NTW90aW9uQ29tcG9uZW50cyB9IGZyb20gXCIuL3R5cGVzXCJcbmltcG9ydCB7IGZpbHRlclByb3BzIH0gZnJvbSBcIi4vdXRpbHMvZmlsdGVyLXByb3BzXCJcbmltcG9ydCB7IGlzU1ZHQ29tcG9uZW50IH0gZnJvbSBcIi4vdXRpbHMvaXMtc3ZnLWNvbXBvbmVudFwiXG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VSZW5kZXI8XG4gICAgUHJvcHMgPSB7fSxcbiAgICBUYWdOYW1lIGV4dGVuZHMga2V5b2YgRE9NTW90aW9uQ29tcG9uZW50cyB8IHN0cmluZyA9IFwiZGl2XCJcbj4oXG4gICAgQ29tcG9uZW50OiBUYWdOYW1lIHwgc3RyaW5nIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxQcm9wcz4sXG4gICAgcHJvcHM6IE1vdGlvblByb3BzLFxuICAgIHJlZjogUmVhY3QuUmVmPEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudD4sXG4gICAge1xuICAgICAgICBsYXRlc3RWYWx1ZXMsXG4gICAgfTogVmlzdWFsU3RhdGU8SFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50LCBIVE1MUmVuZGVyU3RhdGUgfCBTVkdSZW5kZXJTdGF0ZT4sXG4gICAgaXNTdGF0aWM6IGJvb2xlYW4sXG4gICAgZm9yd2FyZE1vdGlvblByb3BzOiBib29sZWFuID0gZmFsc2UsXG4gICAgaXNTVkc/OiBib29sZWFuXG4pIHtcbiAgICBjb25zdCB1c2VWaXN1YWxQcm9wcyA9XG4gICAgICAgIChpc1NWRyA/PyBpc1NWR0NvbXBvbmVudChDb21wb25lbnQpKSA/IHVzZVNWR1Byb3BzIDogdXNlSFRNTFByb3BzXG5cbiAgICBjb25zdCB2aXN1YWxQcm9wcyA9IHVzZVZpc3VhbFByb3BzKFxuICAgICAgICBwcm9wcyBhcyBhbnksXG4gICAgICAgIGxhdGVzdFZhbHVlcyxcbiAgICAgICAgaXNTdGF0aWMsXG4gICAgICAgIENvbXBvbmVudCBhcyBhbnlcbiAgICApXG4gICAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IGZpbHRlclByb3BzKFxuICAgICAgICBwcm9wcyxcbiAgICAgICAgdHlwZW9mIENvbXBvbmVudCA9PT0gXCJzdHJpbmdcIixcbiAgICAgICAgZm9yd2FyZE1vdGlvblByb3BzXG4gICAgKVxuICAgIGNvbnN0IGVsZW1lbnRQcm9wcyA9XG4gICAgICAgIENvbXBvbmVudCAhPT0gRnJhZ21lbnQgPyB7IC4uLmZpbHRlcmVkUHJvcHMsIC4uLnZpc3VhbFByb3BzLCByZWYgfSA6IHt9XG5cbiAgICAvKipcbiAgICAgKiBJZiBjb21wb25lbnQgaGFzIGJlZW4gaGFuZGVkIGEgbW90aW9uIHZhbHVlIGFzIGl0cyBjaGlsZCxcbiAgICAgKiBtZW1vaXNlIGl0cyBpbml0aWFsIHZhbHVlIGFuZCByZW5kZXIgdGhhdC4gU3Vic2VxdWVudCB1cGRhdGVzXG4gICAgICogd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBvbkNoYW5nZSBoYW5kbGVyXG4gICAgICovXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gcHJvcHNcbiAgICBjb25zdCByZW5kZXJlZENoaWxkcmVuID0gdXNlTWVtbyhcbiAgICAgICAgKCkgPT4gKGlzTW90aW9uVmFsdWUoY2hpbGRyZW4pID8gY2hpbGRyZW4uZ2V0KCkgOiBjaGlsZHJlbiksXG4gICAgICAgIFtjaGlsZHJlbl1cbiAgICApXG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudDxhbnk+KENvbXBvbmVudCwge1xuICAgICAgICAuLi5lbGVtZW50UHJvcHMsXG4gICAgICAgIGNoaWxkcmVuOiByZW5kZXJlZENoaWxkcmVuLFxuICAgIH0pXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.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 */ filterProps: () => (/* binding */ filterProps),\n/* harmony export */ loadExternalIsValidProp: () => (/* binding */ loadExternalIsValidProp)\n/* harmony export */ });\n/* harmony import */ var _motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../motion/utils/valid-prop.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs\");\n\n\nlet shouldForward = (key) => !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (typeof isValidProp !== \"function\")\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && (0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key)) ||\n (!isDom && !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n\n\n//# sourceMappingURL=filter-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vdXRpbHMvZmlsdGVyLXByb3BzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUU7O0FBRXpFLDhCQUE4QiwrRUFBaUI7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsK0VBQWlCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsK0VBQWlCO0FBQzdELHdCQUF3QiwrRUFBaUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVnRDtBQUNoRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9maWx0ZXItcHJvcHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzVmFsaWRNb3Rpb25Qcm9wIH0gZnJvbSAnLi4vLi4vLi4vbW90aW9uL3V0aWxzL3ZhbGlkLXByb3AubWpzJztcblxubGV0IHNob3VsZEZvcndhcmQgPSAoa2V5KSA9PiAhaXNWYWxpZE1vdGlvblByb3Aoa2V5KTtcbmZ1bmN0aW9uIGxvYWRFeHRlcm5hbElzVmFsaWRQcm9wKGlzVmFsaWRQcm9wKSB7XG4gICAgaWYgKHR5cGVvZiBpc1ZhbGlkUHJvcCAhPT0gXCJmdW5jdGlvblwiKVxuICAgICAgICByZXR1cm47XG4gICAgLy8gRXhwbGljaXRseSBmaWx0ZXIgb3VyIGV2ZW50c1xuICAgIHNob3VsZEZvcndhcmQgPSAoa2V5KSA9PiBrZXkuc3RhcnRzV2l0aChcIm9uXCIpID8gIWlzVmFsaWRNb3Rpb25Qcm9wKGtleSkgOiBpc1ZhbGlkUHJvcChrZXkpO1xufVxuLyoqXG4gKiBFbW90aW9uIGFuZCBTdHlsZWQgQ29tcG9uZW50cyBib3RoIGFsbG93IHVzZXJzIHRvIHBhc3MgdGhyb3VnaCBhcmJpdHJhcnkgcHJvcHMgdG8gdGhlaXIgY29tcG9uZW50c1xuICogdG8gZHluYW1pY2FsbHkgZ2VuZXJhdGUgQ1NTLiBUaGV5IGJvdGggdXNlIHRoZSBgQGVtb3Rpb24vaXMtcHJvcC12YWxpZGAgcGFja2FnZSB0byBkZXRlcm1pbmUgd2hpY2hcbiAqIG9mIHRoZXNlIHNob3VsZCBiZSBwYXNzZWQgdG8gdGhlIHVuZGVybHlpbmcgRE9NIG5vZGUuXG4gKlxuICogSG93ZXZlciwgd2hlbiBzdHlsaW5nIGEgTW90aW9uIGNvbXBvbmVudCBgc3R5bGVkKG1vdGlvbi5kaXYpYCwgYm90aCBwYWNrYWdlcyBwYXNzIHRocm91Z2ggKmFsbCogcHJvcHNcbiAqIGFzIGl0J3Mgc2VlbiBhcyBhbiBhcmJpdHJhcnkgY29tcG9uZW50IHJhdGhlciB0aGFuIGEgRE9NIG5vZGUuIE1vdGlvbiBvbmx5IGFsbG93cyBhcmJpdHJhcnkgcHJvcHNcbiAqIHBhc3NlZCB0aHJvdWdoIHRoZSBgY3VzdG9tYCBwcm9wIHNvIGl0IGRvZXNuJ3QgKm5lZWQqIHRoZSBwYXlsb2FkIG9yIGNvbXB1dGF0aW9uYWwgb3ZlcmhlYWQgb2ZcbiAqIGBAZW1vdGlvbi9pcy1wcm9wLXZhbGlkYCwgaG93ZXZlciB0byBmaXggdGhpcyBwcm9ibGVtIHdlIG5lZWQgdG8gdXNlIGl0LlxuICpcbiAqIEJ5IG1ha2luZyBpdCBhbiBvcHRpb25hbERlcGVuZGVuY3kgd2UgY2FuIG9mZmVyIHRoaXMgZnVuY3Rpb25hbGl0eSBvbmx5IGluIHRoZSBzaXR1YXRpb25zIHdoZXJlIGl0J3NcbiAqIGFjdHVhbGx5IHJlcXVpcmVkLlxuICovXG50cnkge1xuICAgIC8qKlxuICAgICAqIFdlIGF0dGVtcHQgdG8gaW1wb3J0IHRoaXMgcGFja2FnZSBidXQgcmVxdWlyZSB3b24ndCBiZSBkZWZpbmVkIGluIGVzbSBlbnZpcm9ubWVudHMsIGluIHRoYXQgY2FzZVxuICAgICAqIGlzUHJvcFZhbGlkIHdpbGwgaGF2ZSB0byBiZSBwcm92aWRlZCB2aWEgYE1vdGlvbkNvbnRleHRgLiBJbiBhIDYuMC4wIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHJlbW92ZWRcbiAgICAgKiBpbiBmYXZvdXIgb2YgZXhwbGljaXQgaW5qZWN0aW9uLlxuICAgICAqL1xuICAgIGxvYWRFeHRlcm5hbElzVmFsaWRQcm9wKHJlcXVpcmUoXCJAZW1vdGlvbi9pcy1wcm9wLXZhbGlkXCIpLmRlZmF1bHQpO1xufVxuY2F0Y2gge1xuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gYWN0dWFsbHkgZG8gYW55dGhpbmcgaGVyZSAtIHRoZSBmYWxsYmFjayBpcyB0aGUgZXhpc3RpbmcgYGlzUHJvcFZhbGlkYC5cbn1cbmZ1bmN0aW9uIGZpbHRlclByb3BzKHByb3BzLCBpc0RvbSwgZm9yd2FyZE1vdGlvblByb3BzKSB7XG4gICAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIHByb3BzKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiB2YWx1ZXMgaXMgY29uc2lkZXJlZCBhIHZhbGlkIHByb3AgYnkgRW1vdGlvbiwgc28gaWYgaXQncyBwcmVzZW50XG4gICAgICAgICAqIHRoaXMgd2lsbCBiZSByZW5kZXJlZCBvdXQgdG8gdGhlIERPTSB1bmxlc3MgZXhwbGljaXRseSBmaWx0ZXJlZC5cbiAgICAgICAgICpcbiAgICAgICAgICogV2UgY2hlY2sgdGhlIHR5cGUgYXMgaXQgY291bGQgYmUgdXNlZCB3aXRoIHRoZSBgZmVDb2xvck1hdHJpeGBcbiAgICAgICAgICogZWxlbWVudCwgd2hpY2ggd2Ugc3VwcG9ydC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChrZXkgPT09IFwidmFsdWVzXCIgJiYgdHlwZW9mIHByb3BzLnZhbHVlcyA9PT0gXCJvYmplY3RcIilcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBpZiAoc2hvdWxkRm9yd2FyZChrZXkpIHx8XG4gICAgICAgICAgICAoZm9yd2FyZE1vdGlvblByb3BzID09PSB0cnVlICYmIGlzVmFsaWRNb3Rpb25Qcm9wKGtleSkpIHx8XG4gICAgICAgICAgICAoIWlzRG9tICYmICFpc1ZhbGlkTW90aW9uUHJvcChrZXkpKSB8fFxuICAgICAgICAgICAgLy8gSWYgdHJ5aW5nIHRvIHVzZSBuYXRpdmUgSFRNTCBkcmFnIGV2ZW50cywgZm9yd2FyZCBkcmFnIGxpc3RlbmVyc1xuICAgICAgICAgICAgKHByb3BzW1wiZHJhZ2dhYmxlXCJdICYmXG4gICAgICAgICAgICAgICAga2V5LnN0YXJ0c1dpdGgoXCJvbkRyYWdcIikpKSB7XG4gICAgICAgICAgICBmaWx0ZXJlZFByb3BzW2tleV0gPVxuICAgICAgICAgICAgICAgIHByb3BzW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcmVkUHJvcHM7XG59XG5cbmV4cG9ydCB7IGZpbHRlclByb3BzLCBsb2FkRXh0ZXJuYWxJc1ZhbGlkUHJvcCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlsdGVyLXByb3BzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.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 */ isSVGComponent: () => (/* binding */ isSVGComponent)\n/* harmony export */ });\n/* harmony import */ var _svg_lowercase_elements_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../svg/lowercase-elements.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs\");\n\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n _svg_lowercase_elements_mjs__WEBPACK_IMPORTED_MODULE_0__.lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/u.test(Component)) {\n return true;\n }\n return false;\n}\n\n\n//# sourceMappingURL=is-svg-component.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9kb20vdXRpbHMvaXMtc3ZnLWNvbXBvbmVudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0U7O0FBRXhFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLDZFQUFvQjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUwQjtBQUMxQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9pcy1zdmctY29tcG9uZW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb3dlcmNhc2VTVkdFbGVtZW50cyB9IGZyb20gJy4uLy4uL3N2Zy9sb3dlcmNhc2UtZWxlbWVudHMubWpzJztcblxuZnVuY3Rpb24gaXNTVkdDb21wb25lbnQoQ29tcG9uZW50KSB7XG4gICAgaWYgKFxuICAgIC8qKlxuICAgICAqIElmIGl0J3Mgbm90IGEgc3RyaW5nLCBpdCdzIGEgY3VzdG9tIFJlYWN0IGNvbXBvbmVudC4gQ3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydFxuICAgICAqIEhUTUwgY3VzdG9tIFJlYWN0IGNvbXBvbmVudHMuXG4gICAgICovXG4gICAgdHlwZW9mIENvbXBvbmVudCAhPT0gXCJzdHJpbmdcIiB8fFxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgaXQgY29udGFpbnMgYSBkYXNoLCB0aGUgZWxlbWVudCBpcyBhIGN1c3RvbSBIVE1MIHdlYmNvbXBvbmVudC5cbiAgICAgICAgICovXG4gICAgICAgIENvbXBvbmVudC5pbmNsdWRlcyhcIi1cIikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIGlmIChcbiAgICAvKipcbiAgICAgKiBJZiBpdCdzIGluIG91ciBsaXN0IG9mIGxvd2VyY2FzZSBTVkcgdGFncywgaXQncyBhbiBTVkcgY29tcG9uZW50XG4gICAgICovXG4gICAgbG93ZXJjYXNlU1ZHRWxlbWVudHMuaW5kZXhPZihDb21wb25lbnQpID4gLTEgfHxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIGl0IGNvbnRhaW5zIGEgY2FwaXRhbCBsZXR0ZXIsIGl0J3MgYW4gU1ZHIGNvbXBvbmVudFxuICAgICAgICAgKi9cbiAgICAgICAgL1tBLVpdL3UudGVzdChDb21wb25lbnQpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCB7IGlzU1ZHQ29tcG9uZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1zdmctY29tcG9uZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.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 */ useHTMLVisualState: () => (/* binding */ useHTMLVisualState)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\");\n/* harmony import */ var _motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/utils/use-visual-state.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ useHTMLVisualState auto */ \n\n\nconst useHTMLVisualState = /*@__PURE__*/ (0,_motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__.makeUseVisualState)({\n scrapeMotionValuesFromProps: motion_dom__WEBPACK_IMPORTED_MODULE_1__.scrapeMotionValuesFromProps,\n createRenderState: _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__.createHtmlRenderState\n});\n //# sourceMappingURL=use-html-visual-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9odG1sL3VzZS1odG1sLXZpc3VhbC1zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQU1hO0lBQ1Q7SUFDQTtBQUNIIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvcmVuZGVyL2h0bWwvdXNlLWh0bWwtdmlzdWFsLXN0YXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHNjcmFwZUhUTUxNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgeyBtYWtlVXNlVmlzdWFsU3RhdGUgfSBmcm9tIFwiLi4vLi4vbW90aW9uL3V0aWxzL3VzZS12aXN1YWwtc3RhdGVcIlxuaW1wb3J0IHsgY3JlYXRlSHRtbFJlbmRlclN0YXRlIH0gZnJvbSBcIi4vdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZVwiXG5cbmV4cG9ydCBjb25zdCB1c2VIVE1MVmlzdWFsU3RhdGUgPSAvKkBfX1BVUkVfXyovIG1ha2VVc2VWaXN1YWxTdGF0ZSh7XG4gICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzOiBzY3JhcGVIVE1MTW90aW9uVmFsdWVzRnJvbVByb3BzLFxuICAgIGNyZWF0ZVJlbmRlclN0YXRlOiBjcmVhdGVIdG1sUmVuZGVyU3RhdGUsXG59KVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/html/use-props.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 */ copyRawValuesOnly: () => (/* binding */ copyRawValuesOnly),\n/* harmony export */ useHTMLProps: () => (/* binding */ useHTMLProps)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ copyRawValuesOnly,useHTMLProps auto */ \n\n\nfunction copyRawValuesOnly(target, source, props) {\n for(const key in source){\n if (!(0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(source[key]) && !(0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isForcedMotionValue)(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues({ transformTemplate }, visualState) {\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useInitialMotionValues.useMemo\": ()=>{\n const state = (0,_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_3__.createHtmlRenderState)();\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.buildHTMLStyles)(state, visualState, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }\n }[\"useInitialMotionValues.useMemo\"], [\n visualState\n ]);\n}\nfunction useStyle(props, visualState) {\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */ copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState));\n return style;\n}\nfunction useHTMLProps(props, visualState) {\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect = style.WebkitUserSelect = style.WebkitTouchCallout = \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction = props.drag === true ? \"none\" : `pan-${props.drag === \"x\" ? \"y\" : \"x\"}`;\n }\n if (props.tabIndex === undefined && (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n //# sourceMappingURL=use-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9odG1sL3VzZS1wcm9wcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUFhSTtRQUNJOzs7O0FBSVI7QUFFQTs7O1lBS1E7WUFFQSwyREFBZSxDQUFmO1lBRUE7UUFDSjt5Q0FBQTtRQUFBO0tBQUE7QUFDSjtBQUVBO0lBSUk7O0lBR0E7O0tBRUcsR0FDSDtJQUVBO0lBRUE7QUFDSjtBQUVnQjs7Ozs7O1FBVVI7O1FBR0EsbUJBQ0kseUJBQ0EsMkJBQ0k7O1FBR1IsMENBRVEsU0FDQTs7SUFHWixvQ0FFSTtRQUVBOztJQUdKO0lBRUE7QUFDSiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL3JlbmRlci9odG1sL3VzZS1wcm9wcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyBBbnlSZXNvbHZlZEtleWZyYW1lLCBidWlsZEhUTUxTdHlsZXMsIGlzRm9yY2VkTW90aW9uVmFsdWUsIGlzTW90aW9uVmFsdWUsIE1vdGlvblZhbHVlIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgSFRNTFByb3BzLCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IE1vdGlvblByb3BzIH0gZnJvbSBcIi4uLy4uL21vdGlvbi90eXBlc1wiXG5pbXBvcnQgeyBSZXNvbHZlZFZhbHVlcyB9IGZyb20gXCIuLi90eXBlc1wiXG5pbXBvcnQgeyBjcmVhdGVIdG1sUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGNvcHlSYXdWYWx1ZXNPbmx5KFxuICAgIHRhcmdldDogUmVzb2x2ZWRWYWx1ZXMsXG4gICAgc291cmNlOiB7IFtrZXk6IHN0cmluZ106IEFueVJlc29sdmVkS2V5ZnJhbWUgfCBNb3Rpb25WYWx1ZSB9LFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wc1xuKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgIGlmICghaXNNb3Rpb25WYWx1ZShzb3VyY2Vba2V5XSkgJiYgIWlzRm9yY2VkTW90aW9uVmFsdWUoa2V5LCBwcm9wcykpIHtcbiAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV0gYXMgQW55UmVzb2x2ZWRLZXlmcmFtZVxuICAgICAgICB9XG4gICAgfVxufVxuXG5mdW5jdGlvbiB1c2VJbml0aWFsTW90aW9uVmFsdWVzKFxuICAgIHsgdHJhbnNmb3JtVGVtcGxhdGUgfTogTW90aW9uUHJvcHMsXG4gICAgdmlzdWFsU3RhdGU6IFJlc29sdmVkVmFsdWVzXG4pIHtcbiAgICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gY3JlYXRlSHRtbFJlbmRlclN0YXRlKClcblxuICAgICAgICBidWlsZEhUTUxTdHlsZXMoc3RhdGUsIHZpc3VhbFN0YXRlLCB0cmFuc2Zvcm1UZW1wbGF0ZSlcblxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RhdGUudmFycywgc3RhdGUuc3R5bGUpXG4gICAgfSwgW3Zpc3VhbFN0YXRlXSlcbn1cblxuZnVuY3Rpb24gdXNlU3R5bGUoXG4gICAgcHJvcHM6IE1vdGlvblByb3BzLFxuICAgIHZpc3VhbFN0YXRlOiBSZXNvbHZlZFZhbHVlc1xuKTogUmVzb2x2ZWRWYWx1ZXMge1xuICAgIGNvbnN0IHN0eWxlUHJvcCA9IHByb3BzLnN0eWxlIHx8IHt9XG4gICAgY29uc3Qgc3R5bGUgPSB7fVxuXG4gICAgLyoqXG4gICAgICogQ29weSBub24tTW90aW9uIFZhbHVlcyBzdHJhaWdodCBpbnRvIHN0eWxlXG4gICAgICovXG4gICAgY29weVJhd1ZhbHVlc09ubHkoc3R5bGUsIHN0eWxlUHJvcCBhcyBhbnksIHByb3BzKVxuXG4gICAgT2JqZWN0LmFzc2lnbihzdHlsZSwgdXNlSW5pdGlhbE1vdGlvblZhbHVlcyhwcm9wcywgdmlzdWFsU3RhdGUpKVxuXG4gICAgcmV0dXJuIHN0eWxlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VIVE1MUHJvcHMoXG4gICAgcHJvcHM6IE1vdGlvblByb3BzICYgSFRNTFByb3BzPEhUTUxFbGVtZW50PixcbiAgICB2aXN1YWxTdGF0ZTogUmVzb2x2ZWRWYWx1ZXNcbikge1xuICAgIC8vIFRoZSBgYW55YCBpc24ndCBpZGVhbCBidXQgaXQgaXMgdGhlIHR5cGUgb2YgY3JlYXRlRWxlbWVudCBwcm9wcyBhcmd1bWVudFxuICAgIGNvbnN0IGh0bWxQcm9wczogYW55ID0ge31cbiAgICBjb25zdCBzdHlsZSA9IHVzZVN0eWxlKHByb3BzLCB2aXN1YWxTdGF0ZSlcblxuICAgIGlmIChwcm9wcy5kcmFnICYmIHByb3BzLmRyYWdMaXN0ZW5lciAhPT0gZmFsc2UpIHtcbiAgICAgICAgLy8gRGlzYWJsZSB0aGUgZ2hvc3QgZWxlbWVudCB3aGVuIGEgdXNlciBkcmFnc1xuICAgICAgICBodG1sUHJvcHMuZHJhZ2dhYmxlID0gZmFsc2VcblxuICAgICAgICAvLyBEaXNhYmxlIHRleHQgc2VsZWN0aW9uXG4gICAgICAgIHN0eWxlLnVzZXJTZWxlY3QgPVxuICAgICAgICAgICAgc3R5bGUuV2Via2l0VXNlclNlbGVjdCA9XG4gICAgICAgICAgICBzdHlsZS5XZWJraXRUb3VjaENhbGxvdXQgPVxuICAgICAgICAgICAgICAgIFwibm9uZVwiXG5cbiAgICAgICAgLy8gRGlzYWJsZSBzY3JvbGxpbmcgb24gdGhlIGRyYWdnYWJsZSBkaXJlY3Rpb25cbiAgICAgICAgc3R5bGUudG91Y2hBY3Rpb24gPVxuICAgICAgICAgICAgcHJvcHMuZHJhZyA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgID8gXCJub25lXCJcbiAgICAgICAgICAgICAgICA6IGBwYW4tJHtwcm9wcy5kcmFnID09PSBcInhcIiA/IFwieVwiIDogXCJ4XCJ9YFxuICAgIH1cblxuICAgIGlmIChcbiAgICAgICAgcHJvcHMudGFiSW5kZXggPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAocHJvcHMub25UYXAgfHwgcHJvcHMub25UYXBTdGFydCB8fCBwcm9wcy53aGlsZVRhcClcbiAgICApIHtcbiAgICAgICAgaHRtbFByb3BzLnRhYkluZGV4ID0gMFxuICAgIH1cblxuICAgIGh0bWxQcm9wcy5zdHlsZSA9IHN0eWxlXG5cbiAgICByZXR1cm4gaHRtbFByb3BzXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.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 */ createHtmlRenderState: () => (/* binding */ createHtmlRenderState)\n/* harmony export */ });\nconst createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\n\n//# sourceMappingURL=create-render-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL2NyZWF0ZS1yZW5kZXItc3RhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLGFBQWE7QUFDYixpQkFBaUI7QUFDakIsdUJBQXVCO0FBQ3ZCLFlBQVk7QUFDWixDQUFDOztBQUVnQztBQUNqQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY3JlYXRlSHRtbFJlbmRlclN0YXRlID0gKCkgPT4gKHtcbiAgICBzdHlsZToge30sXG4gICAgdHJhbnNmb3JtOiB7fSxcbiAgICB0cmFuc2Zvcm1PcmlnaW46IHt9LFxuICAgIHZhcnM6IHt9LFxufSk7XG5cbmV4cG9ydCB7IGNyZWF0ZUh0bWxSZW5kZXJTdGF0ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLXJlbmRlci1zdGF0ZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.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 */ lowercaseSVGElements: () => (/* binding */ lowercaseSVGElements)\n/* harmony export */ });\n/**\n * We keep these listed separately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\n\n//# sourceMappingURL=lowercase-elements.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvbG93ZXJjYXNlLWVsZW1lbnRzLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvc3ZnL2xvd2VyY2FzZS1lbGVtZW50cy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXZSBrZWVwIHRoZXNlIGxpc3RlZCBzZXBhcmF0ZWx5IGFzIHdlIHVzZSB0aGUgbG93ZXJjYXNlIHRhZyBuYW1lcyBhcyBwYXJ0XG4gKiBvZiB0aGUgcnVudGltZSBidW5kbGUgdG8gZGV0ZWN0IFNWRyBjb21wb25lbnRzXG4gKi9cbmNvbnN0IGxvd2VyY2FzZVNWR0VsZW1lbnRzID0gW1xuICAgIFwiYW5pbWF0ZVwiLFxuICAgIFwiY2lyY2xlXCIsXG4gICAgXCJkZWZzXCIsXG4gICAgXCJkZXNjXCIsXG4gICAgXCJlbGxpcHNlXCIsXG4gICAgXCJnXCIsXG4gICAgXCJpbWFnZVwiLFxuICAgIFwibGluZVwiLFxuICAgIFwiZmlsdGVyXCIsXG4gICAgXCJtYXJrZXJcIixcbiAgICBcIm1hc2tcIixcbiAgICBcIm1ldGFkYXRhXCIsXG4gICAgXCJwYXRoXCIsXG4gICAgXCJwYXR0ZXJuXCIsXG4gICAgXCJwb2x5Z29uXCIsXG4gICAgXCJwb2x5bGluZVwiLFxuICAgIFwicmVjdFwiLFxuICAgIFwic3RvcFwiLFxuICAgIFwic3dpdGNoXCIsXG4gICAgXCJzeW1ib2xcIixcbiAgICBcInN2Z1wiLFxuICAgIFwidGV4dFwiLFxuICAgIFwidHNwYW5cIixcbiAgICBcInVzZVwiLFxuICAgIFwidmlld1wiLFxuXTtcblxuZXhwb3J0IHsgbG93ZXJjYXNlU1ZHRWxlbWVudHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvd2VyY2FzZS1lbGVtZW50cy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/use-props.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 */ useSVGProps: () => (/* binding */ useSVGProps)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../html/use-props.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ useSVGProps auto */ \n\n\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n const visualProps = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useSVGProps.useMemo[visualProps]\": ()=>{\n const state = (0,_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_1__.createSvgRenderState)();\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.buildSVGAttrs)(state, visualState, (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.isSVGTag)(Component), props.transformTemplate, props.style);\n return {\n ...state.attrs,\n style: {\n ...state.style\n }\n };\n }\n }[\"useSVGProps.useMemo[visualProps]\"], [\n visualState\n ]);\n if (props.style) {\n const rawStyles = {};\n (0,_html_use_props_mjs__WEBPACK_IMPORTED_MODULE_4__.copyRawValuesOnly)(rawStyles, props.style, props);\n visualProps.style = {\n ...rawStyles,\n ...visualProps.style\n };\n }\n return visualProps;\n}\n //# sourceMappingURL=use-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXNlLXByb3BzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBU007SUFNRjs0Q0FBQTtZQUNJO1lBRUEseURBQWEsQ0FBYjs7O2dCQVVJO29CQUFBO2dCQUFBOztRQUVSOzJDQUFBO1FBQUE7S0FBQTtJQUVBOzs7UUFHSTtZQUFBO1lBQUE7UUFBQTs7SUFHSjtBQUNKIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvcmVuZGVyL3N2Zy91c2UtcHJvcHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgYnVpbGRTVkdBdHRycywgaXNTVkdUYWcgfSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IE1vdGlvblByb3BzIH0gZnJvbSBcIi4uLy4uL21vdGlvbi90eXBlc1wiXG5pbXBvcnQgeyBjb3B5UmF3VmFsdWVzT25seSB9IGZyb20gXCIuLi9odG1sL3VzZS1wcm9wc1wiXG5pbXBvcnQgeyBSZXNvbHZlZFZhbHVlcyB9IGZyb20gXCIuLi90eXBlc1wiXG5pbXBvcnQgeyBjcmVhdGVTdmdSZW5kZXJTdGF0ZSB9IGZyb20gXCIuL3V0aWxzL2NyZWF0ZS1yZW5kZXItc3RhdGVcIlxuXG5leHBvcnQgZnVuY3Rpb24gdXNlU1ZHUHJvcHMoXG4gICAgcHJvcHM6IE1vdGlvblByb3BzLFxuICAgIHZpc3VhbFN0YXRlOiBSZXNvbHZlZFZhbHVlcyxcbiAgICBfaXNTdGF0aWM6IGJvb2xlYW4sXG4gICAgQ29tcG9uZW50OiBzdHJpbmcgfCBSZWFjdC5Db21wb25lbnRUeXBlPFJlYWN0LlByb3BzV2l0aENoaWxkcmVuPHVua25vd24+PlxuKSB7XG4gICAgY29uc3QgdmlzdWFsUHJvcHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBjcmVhdGVTdmdSZW5kZXJTdGF0ZSgpXG5cbiAgICAgICAgYnVpbGRTVkdBdHRycyhcbiAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgdmlzdWFsU3RhdGUsXG4gICAgICAgICAgICBpc1NWR1RhZyhDb21wb25lbnQpLFxuICAgICAgICAgICAgcHJvcHMudHJhbnNmb3JtVGVtcGxhdGUsXG4gICAgICAgICAgICBwcm9wcy5zdHlsZVxuICAgICAgICApXG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnN0YXRlLmF0dHJzLFxuICAgICAgICAgICAgc3R5bGU6IHsgLi4uc3RhdGUuc3R5bGUgfSxcbiAgICAgICAgfVxuICAgIH0sIFt2aXN1YWxTdGF0ZV0pXG5cbiAgICBpZiAocHJvcHMuc3R5bGUpIHtcbiAgICAgICAgY29uc3QgcmF3U3R5bGVzID0ge31cbiAgICAgICAgY29weVJhd1ZhbHVlc09ubHkocmF3U3R5bGVzLCBwcm9wcy5zdHlsZSBhcyBhbnksIHByb3BzKVxuICAgICAgICB2aXN1YWxQcm9wcy5zdHlsZSA9IHsgLi4ucmF3U3R5bGVzLCAuLi52aXN1YWxQcm9wcy5zdHlsZSB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpc3VhbFByb3BzXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.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 */ useSVGVisualState: () => (/* binding */ useSVGVisualState)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs\");\n/* harmony import */ var _motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/utils/use-visual-state.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ useSVGVisualState auto */ \n\n\nconst useSVGVisualState = /*@__PURE__*/ (0,_motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__.makeUseVisualState)({\n scrapeMotionValuesFromProps: motion_dom__WEBPACK_IMPORTED_MODULE_1__.scrapeMotionValuesFromProps,\n createRenderState: _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__.createSvgRenderState\n});\n //# sourceMappingURL=use-svg-visual-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXNlLXN2Zy12aXN1YWwtc3RhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFNYTtJQUNUO0lBQ0E7QUFDSCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL3JlbmRlci9zdmcvdXNlLXN2Zy12aXN1YWwtc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgc2NyYXBlU1ZHTW90aW9uVmFsdWVzRnJvbVByb3BzIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgbWFrZVVzZVZpc3VhbFN0YXRlIH0gZnJvbSBcIi4uLy4uL21vdGlvbi91dGlscy91c2UtdmlzdWFsLXN0YXRlXCJcbmltcG9ydCB7IGNyZWF0ZVN2Z1JlbmRlclN0YXRlIH0gZnJvbSBcIi4vdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZVwiXG5cbmV4cG9ydCBjb25zdCB1c2VTVkdWaXN1YWxTdGF0ZSA9IC8qQF9fUFVSRV9fKi8gbWFrZVVzZVZpc3VhbFN0YXRlKHtcbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHM6IHNjcmFwZVNWR01vdGlvblZhbHVlc0Zyb21Qcm9wcyxcbiAgICBjcmVhdGVSZW5kZXJTdGF0ZTogY3JlYXRlU3ZnUmVuZGVyU3RhdGUsXG59KVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.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 */ createSvgRenderState: () => (/* binding */ createSvgRenderState)\n/* harmony export */ });\n/* harmony import */ var _html_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/create-render-state.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n\n\nconst createSvgRenderState = () => ({\n ...(0,_html_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_0__.createHtmlRenderState)(),\n attrs: {},\n});\n\n\n//# sourceMappingURL=create-render-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUY7O0FBRWpGO0FBQ0EsT0FBTywwRkFBcUI7QUFDNUIsYUFBYTtBQUNiLENBQUM7O0FBRStCO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvc3ZnL3V0aWxzL2NyZWF0ZS1yZW5kZXItc3RhdGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUh0bWxSZW5kZXJTdGF0ZSB9IGZyb20gJy4uLy4uL2h0bWwvdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZS5tanMnO1xuXG5jb25zdCBjcmVhdGVTdmdSZW5kZXJTdGF0ZSA9ICgpID0+ICh7XG4gICAgLi4uY3JlYXRlSHRtbFJlbmRlclN0YXRlKCksXG4gICAgYXR0cnM6IHt9LFxufSk7XG5cbmV4cG9ydCB7IGNyZWF0ZVN2Z1JlbmRlclN0YXRlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/utils/distance.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/distance.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 */ distance: () => (/* binding */ distance),\n/* harmony export */ distance2D: () => (/* binding */ distance2D)\n/* harmony export */ });\nconst distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\n\n//# sourceMappingURL=distance.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL2Rpc3RhbmNlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVnQztBQUNoQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvZGlzdGFuY2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGRpc3RhbmNlID0gKGEsIGIpID0+IE1hdGguYWJzKGEgLSBiKTtcbmZ1bmN0aW9uIGRpc3RhbmNlMkQoYSwgYikge1xuICAgIC8vIE11bHRpLWRpbWVuc2lvbmFsXG4gICAgY29uc3QgeERlbHRhID0gZGlzdGFuY2UoYS54LCBiLngpO1xuICAgIGNvbnN0IHlEZWx0YSA9IGRpc3RhbmNlKGEueSwgYi55KTtcbiAgICByZXR1cm4gTWF0aC5zcXJ0KHhEZWx0YSAqKiAyICsgeURlbHRhICoqIDIpO1xufVxuXG5leHBvcnQgeyBkaXN0YW5jZSwgZGlzdGFuY2UyRCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGlzdGFuY2UubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/utils/distance.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/get-context-window.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 */ getContextWindow: () => (/* binding */ getContextWindow)\n/* harmony export */ });\n// Fixes https://github.com/motiondivision/motion/issues/2270\nconst getContextWindow = ({ current }) => {\n return current ? current.ownerDocument.defaultView : null;\n};\n\n\n//# sourceMappingURL=get-context-window.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL2dldC1jb250ZXh0LXdpbmRvdy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsNEJBQTRCLFNBQVM7QUFDckM7QUFDQTs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL2dldC1jb250ZXh0LXdpbmRvdy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRml4ZXMgaHR0cHM6Ly9naXRodWIuY29tL21vdGlvbmRpdmlzaW9uL21vdGlvbi9pc3N1ZXMvMjI3MFxuY29uc3QgZ2V0Q29udGV4dFdpbmRvdyA9ICh7IGN1cnJlbnQgfSkgPT4ge1xuICAgIHJldHVybiBjdXJyZW50ID8gY3VycmVudC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3IDogbnVsbDtcbn07XG5cbmV4cG9ydCB7IGdldENvbnRleHRXaW5kb3cgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1jb250ZXh0LXdpbmRvdy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/is-browser.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 */ isBrowser: () => (/* binding */ isBrowser)\n/* harmony export */ });\nconst isBrowser = typeof window !== \"undefined\";\n\n\n//# sourceMappingURL=is-browser.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL2lzLWJyb3dzZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFFcUI7QUFDckIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL2lzLWJyb3dzZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCI7XG5cbmV4cG9ydCB7IGlzQnJvd3NlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtYnJvd3Nlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/is-ref-object.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 */ isRefObject: () => (/* binding */ isRefObject)\n/* harmony export */ });\nfunction isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\n\n//# sourceMappingURL=is-ref-object.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL2lzLXJlZi1vYmplY3QubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV1QjtBQUN2QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvaXMtcmVmLW9iamVjdC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gaXNSZWZPYmplY3QocmVmKSB7XG4gICAgcmV0dXJuIChyZWYgJiZcbiAgICAgICAgdHlwZW9mIHJlZiA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVmLCBcImN1cnJlbnRcIikpO1xufVxuXG5leHBvcnQgeyBpc1JlZk9iamVjdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtcmVmLW9iamVjdC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/use-composed-ref.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 */ useComposedRefs: () => (/* binding */ useComposedRefs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n\n\n/**\n * Taken from https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/compose-refs.tsx\n */\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n }\n else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup === \"function\") {\n cleanup();\n }\n else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(composeRefs(...refs), refs);\n}\n\n\n//# sourceMappingURL=use-composed-ref.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL3VzZS1jb21wb3NlZC1yZWYubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQStCOztBQUUvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MscUJBQXFCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsOENBQWlCO0FBQzVCOztBQUUyQjtBQUMzQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvdXNlLWNvbXBvc2VkLXJlZi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG4vKipcbiAqIFRha2VuIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3JhZGl4LXVpL3ByaW1pdGl2ZXMvYmxvYi9tYWluL3BhY2thZ2VzL3JlYWN0L2NvbXBvc2UtcmVmcy9zcmMvY29tcG9zZS1yZWZzLnRzeFxuICovXG4vKipcbiAqIFNldCBhIGdpdmVuIHJlZiB0byBhIGdpdmVuIHZhbHVlXG4gKiBUaGlzIHV0aWxpdHkgdGFrZXMgY2FyZSBvZiBkaWZmZXJlbnQgdHlwZXMgb2YgcmVmczogY2FsbGJhY2sgcmVmcyBhbmQgUmVmT2JqZWN0KHMpXG4gKi9cbmZ1bmN0aW9uIHNldFJlZihyZWYsIHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICByZXR1cm4gcmVmKHZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSBpZiAocmVmICE9PSBudWxsICYmIHJlZiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlZi5jdXJyZW50ID0gdmFsdWU7XG4gICAgfVxufVxuLyoqXG4gKiBBIHV0aWxpdHkgdG8gY29tcG9zZSBtdWx0aXBsZSByZWZzIHRvZ2V0aGVyXG4gKiBBY2NlcHRzIGNhbGxiYWNrIHJlZnMgYW5kIFJlZk9iamVjdChzKVxuICovXG5mdW5jdGlvbiBjb21wb3NlUmVmcyguLi5yZWZzKSB7XG4gICAgcmV0dXJuIChub2RlKSA9PiB7XG4gICAgICAgIGxldCBoYXNDbGVhbnVwID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNsZWFudXBzID0gcmVmcy5tYXAoKHJlZikgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2xlYW51cCA9IHNldFJlZihyZWYsIG5vZGUpO1xuICAgICAgICAgICAgaWYgKCFoYXNDbGVhbnVwICYmIHR5cGVvZiBjbGVhbnVwID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICBoYXNDbGVhbnVwID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBjbGVhbnVwO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gUmVhY3QgPDE5IHdpbGwgbG9nIGFuIGVycm9yIHRvIHRoZSBjb25zb2xlIGlmIGEgY2FsbGJhY2sgcmVmIHJldHVybnMgYVxuICAgICAgICAvLyB2YWx1ZS4gV2UgZG9uJ3QgdXNlIHJlZiBjbGVhbnVwcyBpbnRlcm5hbGx5IHNvIHRoaXMgd2lsbCBvbmx5IGhhcHBlbiBpZiBhXG4gICAgICAgIC8vIHVzZXIncyByZWYgY2FsbGJhY2sgcmV0dXJucyBhIHZhbHVlLCB3aGljaCB3ZSBvbmx5IGV4cGVjdCBpZiB0aGV5IGFyZVxuICAgICAgICAvLyB1c2luZyB0aGUgY2xlYW51cCBmdW5jdGlvbmFsaXR5IGFkZGVkIGluIFJlYWN0IDE5LlxuICAgICAgICBpZiAoaGFzQ2xlYW51cCkge1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsZWFudXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFudXAgPSBjbGVhbnVwc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjbGVhbnVwID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlZihyZWZzW2ldLCBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9O1xufVxuLyoqXG4gKiBBIGN1c3RvbSBob29rIHRoYXQgY29tcG9zZXMgbXVsdGlwbGUgcmVmc1xuICogQWNjZXB0cyBjYWxsYmFjayByZWZzIGFuZCBSZWZPYmplY3QocylcbiAqL1xuZnVuY3Rpb24gdXNlQ29tcG9zZWRSZWZzKC4uLnJlZnMpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvZXhoYXVzdGl2ZS1kZXBzXG4gICAgcmV0dXJuIFJlYWN0LnVzZUNhbGxiYWNrKGNvbXBvc2VSZWZzKC4uLnJlZnMpLCByZWZzKTtcbn1cblxuZXhwb3J0IHsgdXNlQ29tcG9zZWRSZWZzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11c2UtY29tcG9zZWQtcmVmLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/use-constant.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 */ useConstant: () => (/* binding */ useConstant)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* __next_internal_client_entry_do_not_use__ useConstant auto */ \n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ function useConstant(init) {\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n //# sourceMappingURL=use-constant.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL3VzZS1jb25zdGFudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBTUE7Ozs7OztDQU1HLEdBQ0c7SUFDRjtJQUVBO1FBQ0k7OztBQUlSIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvdXRpbHMvdXNlLWNvbnN0YW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiXG5cbnR5cGUgSW5pdDxUPiA9ICgpID0+IFRcblxuLyoqXG4gKiBDcmVhdGVzIGEgY29uc3RhbnQgdmFsdWUgb3ZlciB0aGUgbGlmZWN5Y2xlIG9mIGEgY29tcG9uZW50LlxuICpcbiAqIEV2ZW4gaWYgYHVzZU1lbW9gIGlzIHByb3ZpZGVkIGFuIGVtcHR5IGFycmF5IGFzIGl0cyBmaW5hbCBhcmd1bWVudCwgaXQgZG9lc24ndCBvZmZlclxuICogYSBndWFyYW50ZWUgdGhhdCBpdCB3b24ndCByZS1ydW4gZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgbGF0ZXIgb24uIEJ5IHVzaW5nIGB1c2VDb25zdGFudGBcbiAqIHlvdSBjYW4gZW5zdXJlIHRoYXQgaW5pdGlhbGlzZXJzIGRvbid0IGV4ZWN1dGUgdHdpY2Ugb3IgbW9yZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbnN0YW50PFQ+KGluaXQ6IEluaXQ8VD4pIHtcbiAgICBjb25zdCByZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpXG5cbiAgICBpZiAocmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSBpbml0KClcbiAgICB9XG5cbiAgICByZXR1cm4gcmVmLmN1cnJlbnRcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.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 */ useIsomorphicLayoutEffect: () => (/* binding */ useIsomorphicLayoutEffect)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-browser.mjs */ \"(ssr)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\");\n/* __next_internal_client_entry_do_not_use__ useIsomorphicLayoutEffect auto */ \n\nconst useIsomorphicLayoutEffect = _is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__.isBrowser ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n //# sourceMappingURL=use-isomorphic-effect.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3V0aWxzL3VzZS1pc29tb3JwaGljLWVmZmVjdC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFLTyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3V0aWxzL3VzZS1pc29tb3JwaGljLWVmZmVjdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZUxheW91dEVmZmVjdCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBpc0Jyb3dzZXIgfSBmcm9tIFwiLi9pcy1icm93c2VyXCJcblxuZXhwb3J0IGNvbnN0IHVzZUlzb21vcnBoaWNMYXlvdXRFZmZlY3QgPSBpc0Jyb3dzZXIgPyB1c2VMYXlvdXRFZmZlY3QgOiB1c2VFZmZlY3RcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\n"); + +/***/ }) + +}; +; \ No newline at end of file diff --git a/.next/server/vendor-chunks/lucide-react.js b/.next/server/vendor-chunks/lucide-react.js new file mode 100644 index 00000000..d96cc561 --- /dev/null +++ b/.next/server/vendor-chunks/lucide-react.js @@ -0,0 +1,175 @@ +"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/lucide-react"; +exports.ids = ["vendor-chunks/lucide-react"]; +exports.modules = { + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/Icon.js": +/*!****************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/Icon.js ***! + \****************************************************/ +/***/ ((__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 */ \"default\": () => (/* binding */ Icon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultAttributes.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\");\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst Icon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(({ color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = \"\", children, iconNode, ...rest }, ref)=>{\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"svg\", {\n ref,\n ..._defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide\", className),\n ...rest\n }, [\n ...iconNode.map(([tag, attrs])=>/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(tag, attrs)),\n ...Array.isArray(children) ? children : [\n children\n ]\n ]);\n});\n //# sourceMappingURL=Icon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL0ljb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLENBQU0sU0FBTyxvRUFFVCxFQUNFLEtBQVEsbUJBQ1IsSUFBTyxPQUNQLFdBQWMsTUFDZCxxQkFDQSxTQUFZLE9BQ1osVUFDQSxVQUNBLEdBQUcsUUFFTCxHQUNHO0lBQ0ksMkVBQ0wsTUFDQTtRQUNFO1FBQ0EsR0FBRztRQUNILEtBQU87UUFDUCxNQUFRO1FBQ1IsTUFBUTtRQUNSLFlBQWEscUJBQXVCLFFBQU8sRUFBVyxZQUFJLElBQU0sVUFBTyxDQUFJLElBQUk7UUFDL0UsVUFBVyxtRUFBYSxXQUFVLFNBQVM7UUFDM0MsR0FBRztJQUNMLEdBQ0E7V0FDSyxDQUFTLFlBQUksQ0FBQyxDQUFDLENBQUssS0FBSyxLQUFNLHNFQUFjLEdBQUssT0FBSyxDQUFDO1dBQ3ZELEtBQU0sU0FBUSxRQUFRLENBQUksY0FBVztZQUFDLFFBQVE7U0FBQTtLQUNwRDtBQUVKIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvSWNvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50LCBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHsgSWNvbk5vZGUsIEx1Y2lkZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBtZXJnZUNsYXNzZXMgfSBmcm9tICdAbHVjaWRlL3NoYXJlZCc7XG5cbmludGVyZmFjZSBJY29uQ29tcG9uZW50UHJvcHMgZXh0ZW5kcyBMdWNpZGVQcm9wcyB7XG4gIGljb25Ob2RlOiBJY29uTm9kZTtcbn1cblxuLyoqXG4gKiBMdWNpZGUgaWNvbiBjb21wb25lbnRcbiAqXG4gKiBAY29tcG9uZW50IEljb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLmNvbG9yIC0gVGhlIGNvbG9yIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc3Ryb2tlV2lkdGggLSBUaGUgc3Ryb2tlIHdpZHRoIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHByb3BzLmFic29sdXRlU3Ryb2tlV2lkdGggLSBXaGV0aGVyIHRvIHVzZSBhYnNvbHV0ZSBzdHJva2Ugd2lkdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5jbGFzc05hbWUgLSBUaGUgY2xhc3MgbmFtZSBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtJY29uTm9kZX0gcHJvcHMuY2hpbGRyZW4gLSBUaGUgY2hpbGRyZW4gb2YgdGhlIGljb25cbiAqIEBwYXJhbSB7SWNvbk5vZGV9IHByb3BzLmljb25Ob2RlIC0gVGhlIGljb24gbm9kZSBvZiB0aGUgaWNvblxuICpcbiAqIEByZXR1cm5zIHtGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50fSBMdWNpZGVJY29uXG4gKi9cbmNvbnN0IEljb24gPSBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Db21wb25lbnRQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBjb2xvciA9ICdjdXJyZW50Q29sb3InLFxuICAgICAgc2l6ZSA9IDI0LFxuICAgICAgc3Ryb2tlV2lkdGggPSAyLFxuICAgICAgYWJzb2x1dGVTdHJva2VXaWR0aCxcbiAgICAgIGNsYXNzTmFtZSA9ICcnLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBpY29uTm9kZSxcbiAgICAgIC4uLnJlc3RcbiAgICB9LFxuICAgIHJlZixcbiAgKSA9PiB7XG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoXG4gICAgICAnc3ZnJyxcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICAuLi5kZWZhdWx0QXR0cmlidXRlcyxcbiAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgc3Ryb2tlOiBjb2xvcixcbiAgICAgICAgc3Ryb2tlV2lkdGg6IGFic29sdXRlU3Ryb2tlV2lkdGggPyAoTnVtYmVyKHN0cm9rZVdpZHRoKSAqIDI0KSAvIE51bWJlcihzaXplKSA6IHN0cm9rZVdpZHRoLFxuICAgICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcygnbHVjaWRlJywgY2xhc3NOYW1lKSxcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgIH0sXG4gICAgICBbXG4gICAgICAgIC4uLmljb25Ob2RlLm1hcCgoW3RhZywgYXR0cnNdKSA9PiBjcmVhdGVFbGVtZW50KHRhZywgYXR0cnMpKSxcbiAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiBbY2hpbGRyZW5dKSxcbiAgICAgIF0sXG4gICAgKTtcbiAgfSxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IEljb247XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/Icon.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js": +/*!****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/createLucideIcon.js ***! + \****************************************************************/ +/***/ ((__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 */ \"default\": () => (/* binding */ createLucideIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/* harmony import */ var _Icon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Icon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/Icon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst createLucideIcon = (iconName, iconNode)=>{\n const Component = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_Icon_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref,\n iconNode,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(`lucide-${(0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toKebabCase)(iconName)}`, className),\n ...props\n }));\n Component.displayName = `${iconName}`;\n return Component;\n};\n //# sourceMappingURL=createLucideIcon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2NyZWF0ZUx1Y2lkZUljb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBV00sdUJBQW1CLEdBQUMsVUFBa0IsUUFBdUI7SUFDakUsTUFBTSxDQUFZLDRFQUF3QyxFQUFFLENBQVcsV0FBRyxRQUFTLHVCQUNqRixvREFBYSxDQUFDLGdEQUFNO1lBQ2xCO1lBQ0E7WUFDQSxXQUFXLGtFQUFhLFdBQVUsaUVBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTO1lBQ3BFLEdBQUc7UUFBQSxDQUNKO0lBR08sd0JBQWMsRUFBRyxTQUFRO0lBRTVCO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9jcmVhdGVMdWNpZGVJY29uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUVsZW1lbnQsIGZvcndhcmRSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBtZXJnZUNsYXNzZXMsIHRvS2ViYWJDYXNlIH0gZnJvbSAnQGx1Y2lkZS9zaGFyZWQnO1xuaW1wb3J0IHsgSWNvbk5vZGUsIEx1Y2lkZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgSWNvbiBmcm9tICcuL0ljb24nO1xuXG4vKipcbiAqIENyZWF0ZSBhIEx1Y2lkZSBpY29uIGNvbXBvbmVudFxuICogQHBhcmFtIHtzdHJpbmd9IGljb25OYW1lXG4gKiBAcGFyYW0ge2FycmF5fSBpY29uTm9kZVxuICogQHJldHVybnMge0ZvcndhcmRSZWZFeG90aWNDb21wb25lbnR9IEx1Y2lkZUljb25cbiAqL1xuY29uc3QgY3JlYXRlTHVjaWRlSWNvbiA9IChpY29uTmFtZTogc3RyaW5nLCBpY29uTm9kZTogSWNvbk5vZGUpID0+IHtcbiAgY29uc3QgQ29tcG9uZW50ID0gZm9yd2FyZFJlZjxTVkdTVkdFbGVtZW50LCBMdWNpZGVQcm9wcz4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+XG4gICAgY3JlYXRlRWxlbWVudChJY29uLCB7XG4gICAgICByZWYsXG4gICAgICBpY29uTm9kZSxcbiAgICAgIGNsYXNzTmFtZTogbWVyZ2VDbGFzc2VzKGBsdWNpZGUtJHt0b0tlYmFiQ2FzZShpY29uTmFtZSl9YCwgY2xhc3NOYW1lKSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pLFxuICApO1xuXG4gIENvbXBvbmVudC5kaXNwbGF5TmFtZSA9IGAke2ljb25OYW1lfWA7XG5cbiAgcmV0dXJuIENvbXBvbmVudDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZUx1Y2lkZUljb247XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/defaultAttributes.js": +/*!*****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/defaultAttributes.js ***! + \*****************************************************************/ +/***/ ((__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 */ \"default\": () => (/* binding */ defaultAttributes)\n/* harmony export */ });\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ var defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n //# sourceMappingURL=defaultAttributes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2RlZmF1bHRBdHRyaWJ1dGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztJQUFBLENBQWU7SUFDYixLQUFPO0lBQ1AsS0FBTztJQUNQLE1BQVE7SUFDUixPQUFTO0lBQ1QsSUFBTTtJQUNOLE1BQVE7SUFDUixXQUFhO0lBQ2IsYUFBZTtJQUNmLGNBQWdCO0FBQ2xCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvZGVmYXVsdEF0dHJpYnV0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xuICB4bWxuczogJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyxcbiAgd2lkdGg6IDI0LFxuICBoZWlnaHQ6IDI0LFxuICB2aWV3Qm94OiAnMCAwIDI0IDI0JyxcbiAgZmlsbDogJ25vbmUnLFxuICBzdHJva2U6ICdjdXJyZW50Q29sb3InLFxuICBzdHJva2VXaWR0aDogMixcbiAgc3Ryb2tlTGluZWNhcDogJ3JvdW5kJyxcbiAgc3Ryb2tlTGluZWpvaW46ICdyb3VuZCcsXG59O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/activity.js": +/*!**************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/activity.js ***! + \**************************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Activity)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\",\n key: \"169zse\"\n }\n ]\n];\nconst Activity = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Activity\", __iconNode);\n //# sourceMappingURL=activity.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2FjdGl2aXR5LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFDRTtRQUNBO1lBQ0UsQ0FBRztZQUNILEdBQUs7UUFDUDtLQUNGO0NBQ0Y7QUFhTSxlQUFXLGtFQUFpQixhQUFZLENBQVUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9pY29ucy9hY3Rpdml0eS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFtcbiAgICAncGF0aCcsXG4gICAge1xuICAgICAgZDogJ00yMiAxMmgtMi40OGEyIDIgMCAwIDAtMS45MyAxLjQ2bC0yLjM1IDguMzZhLjI1LjI1IDAgMCAxLS40OCAwTDkuMjQgMi4xOGEuMjUuMjUgMCAwIDAtLjQ4IDBsLTIuMzUgOC4zNkEyIDIgMCAwIDEgNC40OSAxMkgyJyxcbiAgICAgIGtleTogJzE2OXpzZScsXG4gICAgfSxcbiAgXSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBBY3Rpdml0eVxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTWpJZ01USm9MVEl1TkRoaE1pQXlJREFnTUNBd0xURXVPVE1nTVM0ME5td3RNaTR6TlNBNExqTTJZUzR5TlM0eU5TQXdJREFnTVMwdU5EZ2dNRXc1TGpJMElESXVNVGhoTGpJMUxqSTFJREFnTUNBd0xTNDBPQ0F3YkMweUxqTTFJRGd1TXpaQk1pQXlJREFnTUNBeElEUXVORGtnTVRKSU1pSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9hY3Rpdml0eVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEFjdGl2aXR5ID0gY3JlYXRlTHVjaWRlSWNvbignQWN0aXZpdHknLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQWN0aXZpdHk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/activity.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js": +/*!******************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/circle-alert.js ***! + \******************************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ CircleAlert)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"8\",\n y2: \"12\",\n key: \"1pkeuh\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12.01\",\n y1: \"16\",\n y2: \"16\",\n key: \"4dfq90\"\n }\n ]\n];\nconst CircleAlert = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"CircleAlert\", __iconNode);\n //# sourceMappingURL=circle-alert.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2NpcmNsZS1hbGVydC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsUUFBVTtRQUFBO1lBQUUsRUFBSTtZQUFNLENBQUksUUFBTTtZQUFBLENBQUc7WUFBTSxHQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pEO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxJQUFLO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBUztZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDdkU7QUFhTSxrQkFBYyxrRUFBaUIsZ0JBQWUsQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL2NpcmNsZS1hbGVydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICcxMicsIHgyOiAnMTInLCB5MTogJzgnLCB5MjogJzEyJywga2V5OiAnMXBrZXVoJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMi4wMScsIHkxOiAnMTYnLCB5MjogJzE2Jywga2V5OiAnNGRmcTkwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDaXJjbGVBbGVydFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRJaUlIZ3lQU0l4TWlJZ2VURTlJamdpSUhreVBTSXhNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVElpSUhneVBTSXhNaTR3TVNJZ2VURTlJakUySWlCNU1qMGlNVFlpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2lyY2xlLWFsZXJ0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQ2lyY2xlQWxlcnQgPSBjcmVhdGVMdWNpZGVJY29uKCdDaXJjbGVBbGVydCcsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBDaXJjbGVBbGVydDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/clock.js": +/*!***********************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/clock.js ***! + \***********************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Clock)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"12 6 12 12 16 14\",\n key: \"68esgv\"\n }\n ]\n];\nconst Clock = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Clock\", __iconNode);\n //# sourceMappingURL=clock.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2Nsb2NrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFNLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxVQUFZO1FBQUE7WUFBRSxRQUFRLENBQW9CO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUM1RDtBQWFNLFlBQVEsa0VBQWlCLFVBQVMsQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL2Nsb2NrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMTIgNiAxMiAxMiAxNiAxNCcsIGtleTogJzY4ZXNndicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgQ2xvY2tcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHOXNlV3hwYm1VZ2NHOXBiblJ6UFNJeE1pQTJJREV5SURFeUlERTJJREUwSWlBdlBnbzhMM04yWno0SykgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvY2xvY2tcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDbG9jayA9IGNyZWF0ZUx1Y2lkZUljb24oJ0Nsb2NrJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENsb2NrO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/clock.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/external-link.js": +/*!*******************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/external-link.js ***! + \*******************************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ ExternalLink)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M15 3h6v6\",\n key: \"1q9fwt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 14 21 3\",\n key: \"gplh6r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\",\n key: \"a6xqqp\"\n }\n ]\n];\nconst ExternalLink = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ExternalLink\", __iconNode);\n //# sourceMappingURL=external-link.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2V4dGVybmFsLWxpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWU7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUE0RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDM0Y7QUFhTSxtQkFBZSxrRUFBaUIsaUJBQWdCLENBQVUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9pY29ucy9leHRlcm5hbC1saW5rLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTE1IDNoNnY2Jywga2V5OiAnMXE5Znd0JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEwIDE0IDIxIDMnLCBrZXk6ICdncGxoNnInIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTggMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoNicsIGtleTogJ2E2eHFxcCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgRXh0ZXJuYWxMaW5rXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NVFVnTTJnMmRqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURXdJREUwSURJeElETWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRURTRJREV6ZGpaaE1pQXlJREFnTUNBeExUSWdNa2cxWVRJZ01pQXdJREFnTVMweUxUSldPR0V5SURJZ01DQXdJREVnTWkweWFEWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9leHRlcm5hbC1saW5rXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgRXh0ZXJuYWxMaW5rID0gY3JlYXRlTHVjaWRlSWNvbignRXh0ZXJuYWxMaW5rJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IEV4dGVybmFsTGluaztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/external-link.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/globe.js": +/*!***********************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/globe.js ***! + \***********************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Globe)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\",\n key: \"13o1zl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h20\",\n key: \"9i4pu4\"\n }\n ]\n];\nconst Globe = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Globe\", __iconNode);\n //# sourceMappingURL=globe.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2dsb2JlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFNLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQW1EO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNoRjtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDM0M7QUFhTSxZQUFRLGtFQUFpQixVQUFTLENBQVUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9pY29ucy9nbG9iZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsnY2lyY2xlJywgeyBjeDogJzEyJywgY3k6ICcxMicsIHI6ICcxMCcsIGtleTogJzFtZ2xheScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xMiAyYTE0LjUgMTQuNSAwIDAgMCAwIDIwIDE0LjUgMTQuNSAwIDAgMCAwLTIwJywga2V5OiAnMTNvMXpsJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIgMTJoMjAnLCBrZXk6ICc5aTRwdTQnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEdsb2JlXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTW1FeE5DNDFJREUwTGpVZ01DQXdJREFnTUNBeU1DQXhOQzQxSURFMExqVWdNQ0F3SURBZ01DMHlNQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NaUF4TW1neU1DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9nbG9iZVxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IEdsb2JlID0gY3JlYXRlTHVjaWRlSWNvbignR2xvYmUnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgR2xvYmU7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/globe.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/layout-grid.js": +/*!*****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/layout-grid.js ***! + \*****************************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ LayoutGrid)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"1g98yp\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"14\",\n y: \"3\",\n rx: \"1\",\n key: \"6d4xhi\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"14\",\n y: \"14\",\n rx: \"1\",\n key: \"nxv5o0\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"3\",\n y: \"14\",\n rx: \"1\",\n key: \"1bb6yr\"\n }\n ]\n];\nconst LayoutGrid = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"LayoutGrid\", __iconNode);\n //# sourceMappingURL=layout-grid.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2xheW91dC1ncmlkLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQUssQ0FBUTtZQUFLLENBQUc7WUFBSyxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzVFO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFLLENBQVE7WUFBSyxDQUFHO1lBQU0sR0FBRyxDQUFLO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM3RTtRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFNLEdBQUcsQ0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDOUU7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQUssQ0FBUTtZQUFLLENBQUc7WUFBSyxHQUFHLENBQU07WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQy9FO0FBYU0saUJBQWEsa0VBQWlCLGVBQWMsQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL2xheW91dC1ncmlkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3JywgeDogJzMnLCB5OiAnMycsIHJ4OiAnMScsIGtleTogJzFnOTh5cCcgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICc3JywgaGVpZ2h0OiAnNycsIHg6ICcxNCcsIHk6ICczJywgcng6ICcxJywga2V5OiAnNmQ0eGhpJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3JywgeDogJzE0JywgeTogJzE0Jywgcng6ICcxJywga2V5OiAnbnh2NW8wJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3JywgeDogJzMnLCB5OiAnMTQnLCByeDogJzEnLCBrZXk6ICcxYmI2eXInIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExheW91dEdyaWRcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0kzSWlCNFBTSXpJaUI1UFNJeklpQnllRDBpTVNJZ0x6NEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSTNJaUI0UFNJeE5DSWdlVDBpTXlJZ2NuZzlJakVpSUM4K0NpQWdQSEpsWTNRZ2QybGtkR2c5SWpjaUlHaGxhV2RvZEQwaU55SWdlRDBpTVRRaUlIazlJakUwSWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJM0lpQjRQU0l6SWlCNVBTSXhOQ0lnY25nOUlqRWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9sYXlvdXQtZ3JpZFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExheW91dEdyaWQgPSBjcmVhdGVMdWNpZGVJY29uKCdMYXlvdXRHcmlkJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExheW91dEdyaWQ7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/layout-grid.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/list.js": +/*!**********************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/list.js ***! + \**********************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ List)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M3 12h.01\",\n key: \"nlz23k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 18h.01\",\n key: \"1tta3j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 6h.01\",\n key: \"1rqtza\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h13\",\n key: \"1za7za\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h13\",\n key: \"1lx6n3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6h13\",\n key: \"ik3vkj\"\n }\n ]\n];\nconst List = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"List\", __iconNode);\n //# sourceMappingURL=list.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL2xpc3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzFDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUMxQztBQWFNLFdBQU8sa0VBQWlCLFNBQVEsQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL2xpc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmguMDEnLCBrZXk6ICdubHoyM2snIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxOGguMDEnLCBrZXk6ICcxdHRhM2onIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMyA2aC4wMScsIGtleTogJzFycXR6YScgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDEyaDEzJywga2V5OiAnMXphN3phJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMThoMTMnLCBrZXk6ICcxbHg2bjMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA2aDEzJywga2V5OiAnaWszdmtqJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBMaXN0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUF4TW1ndU1ERWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUTWdNVGhvTGpBeElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweklEWm9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURFeWFERXpJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREU0YURFeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElEWm9NVE1pSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvbGlzdFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IExpc3QgPSBjcmVhdGVMdWNpZGVJY29uKCdMaXN0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IExpc3Q7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/list.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/plus.js": +/*!**********************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/plus.js ***! + \**********************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Plus)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M5 12h14\",\n key: \"1ays0h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 5v14\",\n key: \"s699le\"\n }\n ]\n];\nconst Plus = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Plus\", __iconNode);\n //# sourceMappingURL=plus.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3BsdXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzNDO0FBYU0sV0FBTyxrRUFBaUIsU0FBUSxDQUFVIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvaWNvbnMvcGx1cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ001IDEyaDE0Jywga2V5OiAnMWF5czBoJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDV2MTQnLCBrZXk6ICdzNjk5bGUnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFBsdXNcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk5TQXhNbWd4TkNJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOTVRJZ05YWXhOQ0lnTHo0S1BDOXpkbWMrQ2c9PSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcGx1c1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFBsdXMgPSBjcmVhdGVMdWNpZGVJY29uKCdQbHVzJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFBsdXM7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/plus.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js": +/*!****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/refresh-cw.js ***! + \****************************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ RefreshCw)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\",\n key: \"v9h5vc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3v5h-5\",\n key: \"1q7to0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\",\n key: \"3uifl3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16H3v5\",\n key: \"1cv678\"\n }\n ]\n];\nconst RefreshCw = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"RefreshCw\", __iconNode);\n //# sourceMappingURL=refresh-cw.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3JlZnJlc2gtY3cuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0Q7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25GO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFjO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMzQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBdUQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3BGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUM1QztBQWFNLGdCQUFZLGtFQUFpQixjQUFhLENBQVUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9pY29ucy9yZWZyZXNoLWN3LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgMTJhOSA5IDAgMCAxIDktOSA5Ljc1IDkuNzUgMCAwIDEgNi43NCAyLjc0TDIxIDgnLCBrZXk6ICd2OWg1dmMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgM3Y1aC01Jywga2V5OiAnMXE3dG8wJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTIxIDEyYTkgOSAwIDAgMS05IDkgOS43NSA5Ljc1IDAgMCAxLTYuNzQtMi43NEwzIDE2Jywga2V5OiAnM3VpZmwzJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTZIM3Y1Jywga2V5OiAnMWN2Njc4JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBSZWZyZXNoQ3dcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNbUU1SURrZ01DQXdJREVnT1MwNUlEa3VOelVnT1M0M05TQXdJREFnTVNBMkxqYzBJREl1TnpSTU1qRWdPQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NakVnTTNZMWFDMDFJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHlNU0F4TW1FNUlEa2dNQ0F3SURFdE9TQTVJRGt1TnpVZ09TNDNOU0F3SURBZ01TMDJMamMwTFRJdU56Uk1NeUF4TmlJZ0x6NEtJQ0E4Y0dGMGFDQmtQU0pOT0NBeE5rZ3pkalVpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvcmVmcmVzaC1jd1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFJlZnJlc2hDdyA9IGNyZWF0ZUx1Y2lkZUljb24oJ1JlZnJlc2hDdycsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBSZWZyZXNoQ3c7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/server.js": +/*!************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/server.js ***! + \************************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Server)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"8\",\n x: \"2\",\n y: \"2\",\n rx: \"2\",\n ry: \"2\",\n key: \"ngkwjq\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"8\",\n x: \"2\",\n y: \"14\",\n rx: \"2\",\n ry: \"2\",\n key: \"iecqi9\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6.01\",\n y1: \"6\",\n y2: \"6\",\n key: \"16zg32\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6.01\",\n y1: \"18\",\n y2: \"18\",\n key: \"nzw8ys\"\n }\n ]\n];\nconst Server = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Server\", __iconNode);\n //# sourceMappingURL=server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3NlcnZlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsS0FBTyxPQUFNO1lBQUEsT0FBUSxJQUFLO1lBQUEsR0FBRyxDQUFLO1lBQUEsR0FBRztZQUFLLENBQUksT0FBSztZQUFBLEdBQUksSUFBSztZQUFBLElBQUs7UUFBQSxDQUFVO0tBQUE7SUFDdEY7UUFBQyxNQUFRO1FBQUE7WUFBRSxLQUFPLE9BQU07WUFBQSxPQUFRLElBQUs7WUFBQSxHQUFHLENBQUs7WUFBQSxHQUFHO1lBQU0sQ0FBSSxPQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFBLENBQVU7S0FBQTtJQUN2RjtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksQ0FBUTtZQUFBLEdBQUksSUFBSztZQUFBLEdBQUksSUFBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDakU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQUs7WUFBQSxJQUFJLENBQVE7WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQ3JFO0FBYU0sYUFBUyxrRUFBaUIsV0FBVSxDQUFVIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvaWNvbnMvc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydyZWN0JywgeyB3aWR0aDogJzIwJywgaGVpZ2h0OiAnOCcsIHg6ICcyJywgeTogJzInLCByeDogJzInLCByeTogJzInLCBrZXk6ICduZ2t3anEnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc4JywgeDogJzInLCB5OiAnMTQnLCByeDogJzInLCByeTogJzInLCBrZXk6ICdpZWNxaTknIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnNicsIHgyOiAnNi4wMScsIHkxOiAnNicsIHkyOiAnNicsIGtleTogJzE2emczMicgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc2LjAxJywgeTE6ICcxOCcsIHkyOiAnMTgnLCBrZXk6ICduenc4eXMnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFNlcnZlclxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU1qQWlJR2hsYVdkb2REMGlPQ0lnZUQwaU1pSWdlVDBpTWlJZ2NuZzlJaklpSUhKNVBTSXlJaUF2UGdvZ0lEeHlaV04wSUhkcFpIUm9QU0l5TUNJZ2FHVnBaMmgwUFNJNElpQjRQU0l5SWlCNVBTSXhOQ0lnY25nOUlqSWlJSEo1UFNJeUlpQXZQZ29nSUR4c2FXNWxJSGd4UFNJMklpQjRNajBpTmk0d01TSWdlVEU5SWpZaUlIa3lQU0kySWlBdlBnb2dJRHhzYVc1bElIZ3hQU0kySWlCNE1qMGlOaTR3TVNJZ2VURTlJakU0SWlCNU1qMGlNVGdpSUM4K0Nqd3ZjM1puUGdvPSkgLSBodHRwczovL2x1Y2lkZS5kZXYvaWNvbnMvc2VydmVyXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgU2VydmVyID0gY3JlYXRlTHVjaWRlSWNvbignU2VydmVyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFNlcnZlcjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/server.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/trash-2.js": +/*!*************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/trash-2.js ***! + \*************************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Trash2)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M3 6h18\",\n key: \"d0wm0j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\",\n key: \"4alrt4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\",\n key: \"v07s0e\"\n }\n ],\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"10\",\n y1: \"11\",\n y2: \"17\",\n key: \"1uufr5\"\n }\n ],\n [\n \"line\",\n {\n x1: \"14\",\n x2: \"14\",\n y1: \"11\",\n y2: \"17\",\n key: \"xtxkd\"\n }\n ]\n];\nconst Trash2 = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Trash2\", __iconNode);\n //# sourceMappingURL=trash-2.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3RyYXNoLTIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBVztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDeEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQXlDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RTtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBc0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ25FO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNsRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBTTtZQUFBLElBQUksQ0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFTO0tBQUE7Q0FDbkU7QUFhTSxhQUFTLGtFQUFpQixXQUFVLENBQVUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9pY29ucy90cmFzaC0yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTMgNmgxOCcsIGtleTogJ2Qwd20waicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOSA2djE0YzAgMS0xIDItMiAySDdjLTEgMC0yLTEtMi0yVjYnLCBrZXk6ICc0YWxydDQnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCA2VjRjMC0xIDEtMiAyLTJoNGMxIDAgMiAxIDIgMnYyJywga2V5OiAndjA3czBlJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEwJywgeDI6ICcxMCcsIHkxOiAnMTEnLCB5MjogJzE3Jywga2V5OiAnMXV1ZnI1JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzE0JywgeDI6ICcxNCcsIHkxOiAnMTEnLCB5MjogJzE3Jywga2V5OiAneHR4a2QnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFRyYXNoMlxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBMmFERTRJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMHhPU0EyZGpFMFl6QWdNUzB4SURJdE1pQXlTRGRqTFRFZ01DMHlMVEV0TWkweVZqWWlJQzgrQ2lBZ1BIQmhkR2dnWkQwaVRUZ2dObFkwWXpBdE1TQXhMVElnTWkweWFEUmpNU0F3SURJZ01TQXlJREoyTWlJZ0x6NEtJQ0E4YkdsdVpTQjRNVDBpTVRBaUlIZ3lQU0l4TUNJZ2VURTlJakV4SWlCNU1qMGlNVGNpSUM4K0NpQWdQR3hwYm1VZ2VERTlJakUwSWlCNE1qMGlNVFFpSUhreFBTSXhNU0lnZVRJOUlqRTNJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmFzaC0yXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHJhc2gyID0gY3JlYXRlTHVjaWRlSWNvbignVHJhc2gyJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyYXNoMjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/trash-2.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/icons/trending-up.js": +/*!*****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/trending-up.js ***! + \*****************************************************************/ +/***/ ((__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 */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ TrendingUp)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(ssr)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"polyline\",\n {\n points: \"22 7 13.5 15.5 8.5 10.5 2 17\",\n key: \"126l90\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"16 7 22 7 22 13\",\n key: \"kwv8wd\"\n }\n ]\n];\nconst TrendingUp = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"TrendingUp\", __iconNode);\n //# sourceMappingURL=trending-up.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL2ljb25zL3RyZW5kaW5nLXVwLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFBQyxVQUFZO1FBQUE7WUFBRSxRQUFRLENBQWdDO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN0RTtRQUFDLFVBQVk7UUFBQTtZQUFFLFFBQVEsQ0FBbUI7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzNEO0FBYU0saUJBQWEsa0VBQWlCLGVBQWMsQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL3RyZW5kaW5nLXVwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMjIgNyAxMy41IDE1LjUgOC41IDEwLjUgMiAxNycsIGtleTogJzEyNmw5MCcgfV0sXG4gIFsncG9seWxpbmUnLCB7IHBvaW50czogJzE2IDcgMjIgNyAyMiAxMycsIGtleTogJ2t3djh3ZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJlbmRpbmdVcFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0c5c2VXeHBibVVnY0c5cGJuUnpQU0l5TWlBM0lERXpMalVnTVRVdU5TQTRMalVnTVRBdU5TQXlJREUzSWlBdlBnb2dJRHh3YjJ4NWJHbHVaU0J3YjJsdWRITTlJakUySURjZ01qSWdOeUF5TWlBeE15SWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy90cmVuZGluZy11cFxuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IFRyZW5kaW5nVXAgPSBjcmVhdGVMdWNpZGVJY29uKCdUcmVuZGluZ1VwJywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRyZW5kaW5nVXA7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/icons/trending-up.js\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/lucide-react/dist/esm/shared/src/utils.js": +/*!****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/shared/src/utils.js ***! + \****************************************************************/ +/***/ ((__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 */ mergeClasses: () => (/* binding */ mergeClasses),\n/* harmony export */ toKebabCase: () => (/* binding */ toKebabCase)\n/* harmony export */ });\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ const toKebabCase = (string)=>string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = (...classes)=>classes.filter((className, index, array)=>{\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n }).join(\" \").trim();\n //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbHVjaWRlLXJlYWN0L2Rpc3QvZXNtL3NoYXJlZC9zcmMvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztJQVFhLG9CQUFjLENBQUMsTUFDMUIsVUFBTyxRQUFRLG9CQUFzQixTQUFPLEVBQUUsV0FBWTtBQStCL0MsbUJBQWUsSUFBMkMsU0FDckUsV0FDRyxPQUFPLENBQUMsV0FBVyxPQUFPLEtBQVU7UUFFakMsZUFBUSxTQUFTLEVBQ2hCLFlBQXFCLFlBQVcsQ0FDakMsV0FBTSxPQUFRLEVBQVMsU0FBTTtJQUVqQyxDQUFDLENBQ0EsTUFBSyxDQUFHLElBQ1IsQ0FBSyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zaGFyZWQvc3JjL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENhbWVsVG9QYXNjYWwgfSBmcm9tICcuL3V0aWxpdHktdHlwZXMnO1xuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBrZWJhYiBjYXNlXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gQSBrZWJhYml6ZWQgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCB0b0tlYmFiQ2FzZSA9IChzdHJpbmc6IHN0cmluZykgPT5cbiAgc3RyaW5nLnJlcGxhY2UoLyhbYS16MC05XSkoW0EtWl0pL2csICckMS0kMicpLnRvTG93ZXJDYXNlKCk7XG5cbi8qKlxuICogQ29udmVydHMgc3RyaW5nIHRvIGNhbWVsIGNhc2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIGNhbWVsaXplZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHRvQ2FtZWxDYXNlID0gPFQgZXh0ZW5kcyBzdHJpbmc+KHN0cmluZzogVCkgPT5cbiAgc3RyaW5nLnJlcGxhY2UoL14oW0EtWl0pfFtcXHMtX10rKFxcdykvZywgKG1hdGNoLCBwMSwgcDIpID0+XG4gICAgcDIgPyBwMi50b1VwcGVyQ2FzZSgpIDogcDEudG9Mb3dlckNhc2UoKSxcbiAgKTtcblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gcGFzY2FsIGNhc2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHBhc2NhbGl6ZWQgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCB0b1Bhc2NhbENhc2UgPSA8VCBleHRlbmRzIHN0cmluZz4oc3RyaW5nOiBUKTogQ2FtZWxUb1Bhc2NhbDxUPiA9PiB7XG4gIGNvbnN0IGNhbWVsQ2FzZSA9IHRvQ2FtZWxDYXNlKHN0cmluZyk7XG5cbiAgcmV0dXJuIChjYW1lbENhc2UuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBjYW1lbENhc2Uuc2xpY2UoMSkpIGFzIENhbWVsVG9QYXNjYWw8VD47XG59O1xuXG4vKipcbiAqIE1lcmdlcyBjbGFzc2VzIGludG8gYSBzaW5nbGUgc3RyaW5nXG4gKlxuICogQHBhcmFtIHthcnJheX0gY2xhc3Nlc1xuICogQHJldHVybnMge3N0cmluZ30gQSBzdHJpbmcgb2YgY2xhc3Nlc1xuICovXG5leHBvcnQgY29uc3QgbWVyZ2VDbGFzc2VzID0gPENsYXNzVHlwZSA9IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+KC4uLmNsYXNzZXM6IENsYXNzVHlwZVtdKSA9PlxuICBjbGFzc2VzXG4gICAgLmZpbHRlcigoY2xhc3NOYW1lLCBpbmRleCwgYXJyYXkpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIEJvb2xlYW4oY2xhc3NOYW1lKSAmJlxuICAgICAgICAoY2xhc3NOYW1lIGFzIHN0cmluZykudHJpbSgpICE9PSAnJyAmJlxuICAgICAgICBhcnJheS5pbmRleE9mKGNsYXNzTmFtZSkgPT09IGluZGV4XG4gICAgICApO1xuICAgIH0pXG4gICAgLmpvaW4oJyAnKVxuICAgIC50cmltKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\n"); + +/***/ }) + +}; +; \ No newline at end of file diff --git a/.next/server/vendor-chunks/motion-dom.js b/.next/server/vendor-chunks/motion-dom.js new file mode 100644 index 00000000..c85b0279 --- /dev/null +++ b/.next/server/vendor-chunks/motion-dom.js @@ -0,0 +1,1825 @@ +"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/motion-dom"; +exports.ids = ["vendor-chunks/motion-dom"]; +exports.modules = { + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.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 */ AsyncMotionValueAnimation: () => (/* binding */ AsyncMotionValueAnimation)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./JSAnimation.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keyframes/KeyframesResolver.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var _NativeAnimationExtended_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./NativeAnimationExtended.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs\");\n/* harmony import */ var _utils_can_animate_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/can-animate.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs\");\n/* harmony import */ var _utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/make-animation-instant.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n/* harmony import */ var _waapi_supports_waapi_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./waapi/supports/waapi.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Maximum time allowed between an animation being created and it being\n * resolved for us to use the latter as the start time.\n *\n * This is to ensure that while we prefer to \"start\" an animation as soon\n * as it's triggered, we also want to avoid a visual jump if there's a big delay\n * between these two moments.\n */\nconst MAX_RESOLVE_DELAY = 40;\nclass AsyncMotionValueAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", keyframes, name, motionValue, element, ...options }) {\n super();\n /**\n * Bound to support return animation.stop pattern\n */\n this.stop = () => {\n if (this._animation) {\n this._animation.stop();\n this.stopTimeline?.();\n }\n this.keyframeResolver?.cancel();\n };\n this.createdAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now();\n const optionsWithDefaults = {\n autoplay,\n delay,\n type,\n repeat,\n repeatDelay,\n repeatType,\n name,\n motionValue,\n element,\n ...options,\n };\n const KeyframeResolver$1 = element?.KeyframeResolver || _keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__.KeyframeResolver;\n this.keyframeResolver = new KeyframeResolver$1(keyframes, (resolvedKeyframes, finalKeyframe, forced) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe, optionsWithDefaults, !forced), name, motionValue, element);\n this.keyframeResolver?.scheduleResolve();\n }\n onKeyframesResolved(keyframes, finalKeyframe, options, sync) {\n this.keyframeResolver = undefined;\n const { name, type, velocity, delay, isHandoff, onUpdate } = options;\n this.resolvedAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now();\n /**\n * If we can't animate this value with the resolved keyframes\n * then we should complete it immediately.\n */\n if (!(0,_utils_can_animate_mjs__WEBPACK_IMPORTED_MODULE_3__.canAnimate)(keyframes, name, type, velocity)) {\n if (motion_utils__WEBPACK_IMPORTED_MODULE_4__.MotionGlobalConfig.instantAnimations || !delay) {\n onUpdate?.((0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_5__.getFinalKeyframe)(keyframes, options, finalKeyframe));\n }\n keyframes[0] = keyframes[keyframes.length - 1];\n (0,_utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_6__.makeAnimationInstant)(options);\n options.repeat = 0;\n }\n /**\n * Resolve startTime for the animation.\n *\n * This method uses the createdAt and resolvedAt to calculate the\n * animation startTime. *Ideally*, we would use the createdAt time as t=0\n * as the following frame would then be the first frame of the animation in\n * progress, which would feel snappier.\n *\n * However, if there's a delay (main thread work) between the creation of\n * the animation and the first committed frame, we prefer to use resolvedAt\n * to avoid a sudden jump into the animation.\n */\n const startTime = sync\n ? !this.resolvedAt\n ? this.createdAt\n : this.resolvedAt - this.createdAt > MAX_RESOLVE_DELAY\n ? this.resolvedAt\n : this.createdAt\n : undefined;\n const resolvedOptions = {\n startTime,\n finalKeyframe,\n ...options,\n keyframes,\n };\n /**\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n */\n const useWaapi = !isHandoff && (0,_waapi_supports_waapi_mjs__WEBPACK_IMPORTED_MODULE_7__.supportsBrowserAnimation)(resolvedOptions);\n const element = resolvedOptions.motionValue?.owner?.current;\n const animation = useWaapi\n ? new _NativeAnimationExtended_mjs__WEBPACK_IMPORTED_MODULE_8__.NativeAnimationExtended({\n ...resolvedOptions,\n element,\n })\n : new _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__.JSAnimation(resolvedOptions);\n animation.finished.then(() => {\n this.notifyFinished();\n }).catch(motion_utils__WEBPACK_IMPORTED_MODULE_10__.noop);\n if (this.pendingTimeline) {\n this.stopTimeline = animation.attachTimeline(this.pendingTimeline);\n this.pendingTimeline = undefined;\n }\n this._animation = animation;\n }\n get finished() {\n if (!this._animation) {\n return this._finished;\n }\n else {\n return this.animation.finished;\n }\n }\n then(onResolve, _onReject) {\n return this.finished.finally(onResolve).then(() => { });\n }\n get animation() {\n if (!this._animation) {\n this.keyframeResolver?.resume();\n (0,_keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__.flushKeyframeResolvers)();\n }\n return this._animation;\n }\n get duration() {\n return this.animation.duration;\n }\n get iterationDuration() {\n return this.animation.iterationDuration;\n }\n get time() {\n return this.animation.time;\n }\n set time(newTime) {\n this.animation.time = newTime;\n }\n get speed() {\n return this.animation.speed;\n }\n get state() {\n return this.animation.state;\n }\n set speed(newSpeed) {\n this.animation.speed = newSpeed;\n }\n get startTime() {\n return this.animation.startTime;\n }\n attachTimeline(timeline) {\n if (this._animation) {\n this.stopTimeline = this.animation.attachTimeline(timeline);\n }\n else {\n this.pendingTimeline = timeline;\n }\n return () => this.stop();\n }\n play() {\n this.animation.play();\n }\n pause() {\n this.animation.pause();\n }\n complete() {\n this.animation.complete();\n }\n cancel() {\n if (this._animation) {\n this.animation.cancel();\n }\n this.keyframeResolver?.cancel();\n }\n}\n\n\n//# sourceMappingURL=AsyncMotionValueAnimation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9Bc3luY01vdGlvblZhbHVlQW5pbWF0aW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBd0Q7QUFDTjtBQUNGO0FBQ2E7QUFDZ0M7QUFDckI7QUFDbkI7QUFDcUI7QUFDcEI7QUFDZ0I7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QywrREFBVztBQUNuRCxrQkFBa0IscUpBQXFKO0FBQ3ZLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsMERBQUk7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0VBQWdFLDhFQUFnQjtBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1EQUFtRDtBQUNuRSwwQkFBMEIsMERBQUk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLGtFQUFVO0FBQ3ZCLGdCQUFnQiw0REFBa0I7QUFDbEMsMkJBQTJCLDBFQUFnQjtBQUMzQztBQUNBO0FBQ0EsWUFBWSx1RkFBb0I7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxtRkFBd0I7QUFDL0Q7QUFDQTtBQUNBLGtCQUFrQixpRkFBdUI7QUFDekM7QUFDQTtBQUNBLGFBQWE7QUFDYixrQkFBa0IseURBQVc7QUFDN0I7QUFDQTtBQUNBLFNBQVMsUUFBUSwrQ0FBSTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQ7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHdGQUFzQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFcUM7QUFDckMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9Bc3luY01vdGlvblZhbHVlQW5pbWF0aW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb3Rpb25HbG9iYWxDb25maWcsIG5vb3AgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgdGltZSB9IGZyb20gJy4uL2ZyYW1lbG9vcC9zeW5jLXRpbWUubWpzJztcbmltcG9ydCB7IEpTQW5pbWF0aW9uIH0gZnJvbSAnLi9KU0FuaW1hdGlvbi5tanMnO1xuaW1wb3J0IHsgZ2V0RmluYWxLZXlmcmFtZSB9IGZyb20gJy4va2V5ZnJhbWVzL2dldC1maW5hbC5tanMnO1xuaW1wb3J0IHsgS2V5ZnJhbWVSZXNvbHZlciwgZmx1c2hLZXlmcmFtZVJlc29sdmVycyB9IGZyb20gJy4va2V5ZnJhbWVzL0tleWZyYW1lc1Jlc29sdmVyLm1qcyc7XG5pbXBvcnQgeyBOYXRpdmVBbmltYXRpb25FeHRlbmRlZCB9IGZyb20gJy4vTmF0aXZlQW5pbWF0aW9uRXh0ZW5kZWQubWpzJztcbmltcG9ydCB7IGNhbkFuaW1hdGUgfSBmcm9tICcuL3V0aWxzL2Nhbi1hbmltYXRlLm1qcyc7XG5pbXBvcnQgeyBtYWtlQW5pbWF0aW9uSW5zdGFudCB9IGZyb20gJy4vdXRpbHMvbWFrZS1hbmltYXRpb24taW5zdGFudC5tanMnO1xuaW1wb3J0IHsgV2l0aFByb21pc2UgfSBmcm9tICcuL3V0aWxzL1dpdGhQcm9taXNlLm1qcyc7XG5pbXBvcnQgeyBzdXBwb3J0c0Jyb3dzZXJBbmltYXRpb24gfSBmcm9tICcuL3dhYXBpL3N1cHBvcnRzL3dhYXBpLm1qcyc7XG5cbi8qKlxuICogTWF4aW11bSB0aW1lIGFsbG93ZWQgYmV0d2VlbiBhbiBhbmltYXRpb24gYmVpbmcgY3JlYXRlZCBhbmQgaXQgYmVpbmdcbiAqIHJlc29sdmVkIGZvciB1cyB0byB1c2UgdGhlIGxhdHRlciBhcyB0aGUgc3RhcnQgdGltZS5cbiAqXG4gKiBUaGlzIGlzIHRvIGVuc3VyZSB0aGF0IHdoaWxlIHdlIHByZWZlciB0byBcInN0YXJ0XCIgYW4gYW5pbWF0aW9uIGFzIHNvb25cbiAqIGFzIGl0J3MgdHJpZ2dlcmVkLCB3ZSBhbHNvIHdhbnQgdG8gYXZvaWQgYSB2aXN1YWwganVtcCBpZiB0aGVyZSdzIGEgYmlnIGRlbGF5XG4gKiBiZXR3ZWVuIHRoZXNlIHR3byBtb21lbnRzLlxuICovXG5jb25zdCBNQVhfUkVTT0xWRV9ERUxBWSA9IDQwO1xuY2xhc3MgQXN5bmNNb3Rpb25WYWx1ZUFuaW1hdGlvbiBleHRlbmRzIFdpdGhQcm9taXNlIHtcbiAgICBjb25zdHJ1Y3Rvcih7IGF1dG9wbGF5ID0gdHJ1ZSwgZGVsYXkgPSAwLCB0eXBlID0gXCJrZXlmcmFtZXNcIiwgcmVwZWF0ID0gMCwgcmVwZWF0RGVsYXkgPSAwLCByZXBlYXRUeXBlID0gXCJsb29wXCIsIGtleWZyYW1lcywgbmFtZSwgbW90aW9uVmFsdWUsIGVsZW1lbnQsIC4uLm9wdGlvbnMgfSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQm91bmQgdG8gc3VwcG9ydCByZXR1cm4gYW5pbWF0aW9uLnN0b3AgcGF0dGVyblxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zdG9wID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbi5zdG9wKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9wVGltZWxpbmU/LigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5rZXlmcmFtZVJlc29sdmVyPy5jYW5jZWwoKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jcmVhdGVkQXQgPSB0aW1lLm5vdygpO1xuICAgICAgICBjb25zdCBvcHRpb25zV2l0aERlZmF1bHRzID0ge1xuICAgICAgICAgICAgYXV0b3BsYXksXG4gICAgICAgICAgICBkZWxheSxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICByZXBlYXQsXG4gICAgICAgICAgICByZXBlYXREZWxheSxcbiAgICAgICAgICAgIHJlcGVhdFR5cGUsXG4gICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgbW90aW9uVmFsdWUsXG4gICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgS2V5ZnJhbWVSZXNvbHZlciQxID0gZWxlbWVudD8uS2V5ZnJhbWVSZXNvbHZlciB8fCBLZXlmcmFtZVJlc29sdmVyO1xuICAgICAgICB0aGlzLmtleWZyYW1lUmVzb2x2ZXIgPSBuZXcgS2V5ZnJhbWVSZXNvbHZlciQxKGtleWZyYW1lcywgKHJlc29sdmVkS2V5ZnJhbWVzLCBmaW5hbEtleWZyYW1lLCBmb3JjZWQpID0+IHRoaXMub25LZXlmcmFtZXNSZXNvbHZlZChyZXNvbHZlZEtleWZyYW1lcywgZmluYWxLZXlmcmFtZSwgb3B0aW9uc1dpdGhEZWZhdWx0cywgIWZvcmNlZCksIG5hbWUsIG1vdGlvblZhbHVlLCBlbGVtZW50KTtcbiAgICAgICAgdGhpcy5rZXlmcmFtZVJlc29sdmVyPy5zY2hlZHVsZVJlc29sdmUoKTtcbiAgICB9XG4gICAgb25LZXlmcmFtZXNSZXNvbHZlZChrZXlmcmFtZXMsIGZpbmFsS2V5ZnJhbWUsIG9wdGlvbnMsIHN5bmMpIHtcbiAgICAgICAgdGhpcy5rZXlmcmFtZVJlc29sdmVyID0gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCB7IG5hbWUsIHR5cGUsIHZlbG9jaXR5LCBkZWxheSwgaXNIYW5kb2ZmLCBvblVwZGF0ZSB9ID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5yZXNvbHZlZEF0ID0gdGltZS5ub3coKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHdlIGNhbid0IGFuaW1hdGUgdGhpcyB2YWx1ZSB3aXRoIHRoZSByZXNvbHZlZCBrZXlmcmFtZXNcbiAgICAgICAgICogdGhlbiB3ZSBzaG91bGQgY29tcGxldGUgaXQgaW1tZWRpYXRlbHkuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIWNhbkFuaW1hdGUoa2V5ZnJhbWVzLCBuYW1lLCB0eXBlLCB2ZWxvY2l0eSkpIHtcbiAgICAgICAgICAgIGlmIChNb3Rpb25HbG9iYWxDb25maWcuaW5zdGFudEFuaW1hdGlvbnMgfHwgIWRlbGF5KSB7XG4gICAgICAgICAgICAgICAgb25VcGRhdGU/LihnZXRGaW5hbEtleWZyYW1lKGtleWZyYW1lcywgb3B0aW9ucywgZmluYWxLZXlmcmFtZSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAga2V5ZnJhbWVzWzBdID0ga2V5ZnJhbWVzW2tleWZyYW1lcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIG1ha2VBbmltYXRpb25JbnN0YW50KG9wdGlvbnMpO1xuICAgICAgICAgICAgb3B0aW9ucy5yZXBlYXQgPSAwO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZXNvbHZlIHN0YXJ0VGltZSBmb3IgdGhlIGFuaW1hdGlvbi5cbiAgICAgICAgICpcbiAgICAgICAgICogVGhpcyBtZXRob2QgdXNlcyB0aGUgY3JlYXRlZEF0IGFuZCByZXNvbHZlZEF0IHRvIGNhbGN1bGF0ZSB0aGVcbiAgICAgICAgICogYW5pbWF0aW9uIHN0YXJ0VGltZS4gKklkZWFsbHkqLCB3ZSB3b3VsZCB1c2UgdGhlIGNyZWF0ZWRBdCB0aW1lIGFzIHQ9MFxuICAgICAgICAgKiBhcyB0aGUgZm9sbG93aW5nIGZyYW1lIHdvdWxkIHRoZW4gYmUgdGhlIGZpcnN0IGZyYW1lIG9mIHRoZSBhbmltYXRpb24gaW5cbiAgICAgICAgICogcHJvZ3Jlc3MsIHdoaWNoIHdvdWxkIGZlZWwgc25hcHBpZXIuXG4gICAgICAgICAqXG4gICAgICAgICAqIEhvd2V2ZXIsIGlmIHRoZXJlJ3MgYSBkZWxheSAobWFpbiB0aHJlYWQgd29yaykgYmV0d2VlbiB0aGUgY3JlYXRpb24gb2ZcbiAgICAgICAgICogdGhlIGFuaW1hdGlvbiBhbmQgdGhlIGZpcnN0IGNvbW1pdHRlZCBmcmFtZSwgd2UgcHJlZmVyIHRvIHVzZSByZXNvbHZlZEF0XG4gICAgICAgICAqIHRvIGF2b2lkIGEgc3VkZGVuIGp1bXAgaW50byB0aGUgYW5pbWF0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gc3luY1xuICAgICAgICAgICAgPyAhdGhpcy5yZXNvbHZlZEF0XG4gICAgICAgICAgICAgICAgPyB0aGlzLmNyZWF0ZWRBdFxuICAgICAgICAgICAgICAgIDogdGhpcy5yZXNvbHZlZEF0IC0gdGhpcy5jcmVhdGVkQXQgPiBNQVhfUkVTT0xWRV9ERUxBWVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMucmVzb2x2ZWRBdFxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuY3JlYXRlZEF0XG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWRPcHRpb25zID0ge1xuICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgZmluYWxLZXlmcmFtZSxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICBrZXlmcmFtZXMsXG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbmltYXRlIHZpYSBXQUFQSSBpZiBwb3NzaWJsZS4gSWYgdGhpcyBpcyBhIGhhbmRvZmYgYW5pbWF0aW9uLCB0aGUgb3B0aW1pc2VkIGFuaW1hdGlvbiB3aWxsIGJlIHJ1bm5pbmcgdmlhXG4gICAgICAgICAqIFdBQVBJLiBUaGVyZWZvcmUsIHRoaXMgYW5pbWF0aW9uIG11c3QgYmUgSlMgdG8gZW5zdXJlIGl0IHJ1bnMgXCJ1bmRlclwiIHRoZVxuICAgICAgICAgKiBvcHRpbWlzZWQgYW5pbWF0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgdXNlV2FhcGkgPSAhaXNIYW5kb2ZmICYmIHN1cHBvcnRzQnJvd3NlckFuaW1hdGlvbihyZXNvbHZlZE9wdGlvbnMpO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gcmVzb2x2ZWRPcHRpb25zLm1vdGlvblZhbHVlPy5vd25lcj8uY3VycmVudDtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9uID0gdXNlV2FhcGlcbiAgICAgICAgICAgID8gbmV3IE5hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkKHtcbiAgICAgICAgICAgICAgICAuLi5yZXNvbHZlZE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgZWxlbWVudCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IG5ldyBKU0FuaW1hdGlvbihyZXNvbHZlZE9wdGlvbnMpO1xuICAgICAgICBhbmltYXRpb24uZmluaXNoZWQudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeUZpbmlzaGVkKCk7XG4gICAgICAgIH0pLmNhdGNoKG5vb3ApO1xuICAgICAgICBpZiAodGhpcy5wZW5kaW5nVGltZWxpbmUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVsaW5lID0gYW5pbWF0aW9uLmF0dGFjaFRpbWVsaW5lKHRoaXMucGVuZGluZ1RpbWVsaW5lKTtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ1RpbWVsaW5lID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FuaW1hdGlvbiA9IGFuaW1hdGlvbjtcbiAgICB9XG4gICAgZ2V0IGZpbmlzaGVkKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbmlzaGVkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLmZpbmlzaGVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIHRoZW4ob25SZXNvbHZlLCBfb25SZWplY3QpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluaXNoZWQuZmluYWxseShvblJlc29sdmUpLnRoZW4oKCkgPT4geyB9KTtcbiAgICB9XG4gICAgZ2V0IGFuaW1hdGlvbigpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9hbmltYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMua2V5ZnJhbWVSZXNvbHZlcj8ucmVzdW1lKCk7XG4gICAgICAgICAgICBmbHVzaEtleWZyYW1lUmVzb2x2ZXJzKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2FuaW1hdGlvbjtcbiAgICB9XG4gICAgZ2V0IGR1cmF0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24uZHVyYXRpb247XG4gICAgfVxuICAgIGdldCBpdGVyYXRpb25EdXJhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLml0ZXJhdGlvbkR1cmF0aW9uO1xuICAgIH1cbiAgICBnZXQgdGltZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLnRpbWU7XG4gICAgfVxuICAgIHNldCB0aW1lKG5ld1RpbWUpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24udGltZSA9IG5ld1RpbWU7XG4gICAgfVxuICAgIGdldCBzcGVlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLnNwZWVkO1xuICAgIH1cbiAgICBnZXQgc3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbi5zdGF0ZTtcbiAgICB9XG4gICAgc2V0IHNwZWVkKG5ld1NwZWVkKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLnNwZWVkID0gbmV3U3BlZWQ7XG4gICAgfVxuICAgIGdldCBzdGFydFRpbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbi5zdGFydFRpbWU7XG4gICAgfVxuICAgIGF0dGFjaFRpbWVsaW5lKHRpbWVsaW5lKSB7XG4gICAgICAgIGlmICh0aGlzLl9hbmltYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcFRpbWVsaW5lID0gdGhpcy5hbmltYXRpb24uYXR0YWNoVGltZWxpbmUodGltZWxpbmUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nVGltZWxpbmUgPSB0aW1lbGluZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCkgPT4gdGhpcy5zdG9wKCk7XG4gICAgfVxuICAgIHBsYXkoKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLnBsYXkoKTtcbiAgICB9XG4gICAgcGF1c2UoKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLnBhdXNlKCk7XG4gICAgfVxuICAgIGNvbXBsZXRlKCkge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbi5jb21wbGV0ZSgpO1xuICAgIH1cbiAgICBjYW5jZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLl9hbmltYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLmNhbmNlbCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMua2V5ZnJhbWVSZXNvbHZlcj8uY2FuY2VsKCk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBBc3luY01vdGlvblZhbHVlQW5pbWF0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Bc3luY01vdGlvblZhbHVlQW5pbWF0aW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/JSAnimation.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 */ JSAnimation: () => (/* binding */ JSAnimation),\n/* harmony export */ animateValue: () => (/* binding */ animateValue)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../stats/animation-count.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var _utils_mix_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/mix/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\");\n/* harmony import */ var _drivers_frame_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./drivers/frame.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs\");\n/* harmony import */ var _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./generators/inertia.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\");\n/* harmony import */ var _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./generators/keyframes.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\");\n/* harmony import */ var _generators_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./generators/utils/calc-duration.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/replace-transition-type.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\nconst percentToProgress = (percent) => percent / 100;\nclass JSAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\n constructor(options) {\n super();\n this.state = \"idle\";\n this.startTime = null;\n this.isStopped = false;\n /**\n * The current time of the animation.\n */\n this.currentTime = 0;\n /**\n * The time at which the animation was paused.\n */\n this.holdTime = null;\n /**\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\n */\n this.playbackSpeed = 1;\n /**\n * This method is bound to the instance to fix a pattern where\n * animation.stop is returned as a reference from a useEffect.\n */\n this.stop = () => {\n const { motionValue } = this.options;\n if (motionValue && motionValue.updatedAt !== _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now()) {\n this.tick(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\n }\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.teardown();\n this.options.onStop?.();\n };\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.mainThread++;\n this.options = options;\n this.initAnimation();\n this.play();\n if (options.autoplay === false)\n this.pause();\n }\n initAnimation() {\n const { options } = this;\n (0,_utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_3__.replaceTransitionType)(options);\n const { type = _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes, repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = options;\n let { keyframes: keyframes$1 } = options;\n const generatorFactory = type || _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes;\n if ( true &&\n generatorFactory !== _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.invariant)(keyframes$1.length <= 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`, \"spring-two-frames\");\n }\n if (generatorFactory !== _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n this.mixKeyframes = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.pipe)(percentToProgress, (0,_utils_mix_index_mjs__WEBPACK_IMPORTED_MODULE_7__.mix)(keyframes$1[0], keyframes$1[1]));\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...options, keyframes: keyframes$1 });\n /**\n * If we have a mirror repeat type we need to create a second generator that outputs the\n * mirrored (not reversed) animation and later ping pong between the two generators.\n */\n if (repeatType === \"mirror\") {\n this.mirroredGenerator = generatorFactory({\n ...options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -velocity,\n });\n }\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null) {\n generator.calculatedDuration = (0,_generators_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_8__.calcGeneratorDuration)(generator);\n }\n const { calculatedDuration } = generator;\n this.calculatedDuration = calculatedDuration;\n this.resolvedDuration = calculatedDuration + repeatDelay;\n this.totalDuration = this.resolvedDuration * (repeat + 1) - repeatDelay;\n this.generator = generator;\n }\n updateTime(timestamp) {\n const animationTime = Math.round(timestamp - this.startTime) * this.playbackSpeed;\n // Update currentTime\n if (this.holdTime !== null) {\n this.currentTime = this.holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n this.currentTime = animationTime;\n }\n }\n tick(timestamp, sample = false) {\n const { generator, totalDuration, mixKeyframes, mirroredGenerator, resolvedDuration, calculatedDuration, } = this;\n if (this.startTime === null)\n return generator.next(0);\n const { delay = 0, keyframes, repeat, repeatType, repeatDelay, type, onUpdate, finalKeyframe, } = this.options;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (this.speed > 0) {\n this.startTime = Math.min(this.startTime, timestamp);\n }\n else if (this.speed < 0) {\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n }\n if (sample) {\n this.currentTime = timestamp;\n }\n else {\n this.updateTime(timestamp);\n }\n // Rebase on delay\n const timeWithoutDelay = this.currentTime - delay * (this.playbackSpeed >= 0 ? 1 : -1);\n const isInDelayPhase = this.playbackSpeed >= 0\n ? timeWithoutDelay < 0\n : timeWithoutDelay > totalDuration;\n this.currentTime = Math.max(timeWithoutDelay, 0);\n // If this animation has finished, set the current time to the total duration.\n if (this.state === \"finished\" && this.holdTime === null) {\n this.currentTime = totalDuration;\n }\n let elapsed = this.currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = (0,motion_utils__WEBPACK_IMPORTED_MODULE_9__.clamp)(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes[0] }\n : frameGenerator.next(elapsed);\n if (mixKeyframes) {\n state.value = mixKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done =\n this.playbackSpeed >= 0\n ? this.currentTime >= totalDuration\n : this.currentTime <= 0;\n }\n const isAnimationFinished = this.holdTime === null &&\n (this.state === \"finished\" || (this.state === \"running\" && done));\n // TODO: The exception for inertia could be cleaner here\n if (isAnimationFinished && type !== _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_10__.inertia) {\n state.value = (0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_11__.getFinalKeyframe)(keyframes, this.options, finalKeyframe, this.speed);\n }\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n this.finish();\n }\n return state;\n }\n /**\n * Allows the returned animation to be awaited or promise-chained. Currently\n * resolves when the animation finishes at all but in a future update could/should\n * reject if its cancels.\n */\n then(resolve, reject) {\n return this.finished.then(resolve, reject);\n }\n get duration() {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.calculatedDuration);\n }\n get iterationDuration() {\n const { delay = 0 } = this.options || {};\n return this.duration + (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(delay);\n }\n get time() {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.currentTime);\n }\n set time(newTime) {\n newTime = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.secondsToMilliseconds)(newTime);\n this.currentTime = newTime;\n if (this.startTime === null ||\n this.holdTime !== null ||\n this.playbackSpeed === 0) {\n this.holdTime = newTime;\n }\n else if (this.driver) {\n this.startTime = this.driver.now() - newTime / this.playbackSpeed;\n }\n this.driver?.start(false);\n }\n get speed() {\n return this.playbackSpeed;\n }\n set speed(newSpeed) {\n this.updateTime(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\n const hasChanged = this.playbackSpeed !== newSpeed;\n this.playbackSpeed = newSpeed;\n if (hasChanged) {\n this.time = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.currentTime);\n }\n }\n play() {\n if (this.isStopped)\n return;\n const { driver = _drivers_frame_mjs__WEBPACK_IMPORTED_MODULE_13__.frameloopDriver, startTime } = this.options;\n if (!this.driver) {\n this.driver = driver((timestamp) => this.tick(timestamp));\n }\n this.options.onPlay?.();\n const now = this.driver.now();\n if (this.state === \"finished\") {\n this.updateFinished();\n this.startTime = now;\n }\n else if (this.holdTime !== null) {\n this.startTime = now - this.holdTime;\n }\n else if (!this.startTime) {\n this.startTime = startTime ?? now;\n }\n if (this.state === \"finished\" && this.speed < 0) {\n this.startTime += this.calculatedDuration;\n }\n this.holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n this.state = \"running\";\n this.driver.start();\n }\n pause() {\n this.state = \"paused\";\n this.updateTime(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\n this.holdTime = this.currentTime;\n }\n complete() {\n if (this.state !== \"running\") {\n this.play();\n }\n this.state = \"finished\";\n this.holdTime = null;\n }\n finish() {\n this.notifyFinished();\n this.teardown();\n this.state = \"finished\";\n this.options.onComplete?.();\n }\n cancel() {\n this.holdTime = null;\n this.startTime = 0;\n this.tick(0);\n this.teardown();\n this.options.onCancel?.();\n }\n teardown() {\n this.state = \"idle\";\n this.stopDriver();\n this.startTime = this.holdTime = null;\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.mainThread--;\n }\n stopDriver() {\n if (!this.driver)\n return;\n this.driver.stop();\n this.driver = undefined;\n }\n sample(sampleTime) {\n this.startTime = 0;\n return this.tick(sampleTime, true);\n }\n attachTimeline(timeline) {\n if (this.options.allowFlatten) {\n this.options.type = \"keyframes\";\n this.options.ease = \"linear\";\n this.initAnimation();\n }\n this.driver?.stop();\n return timeline.observe(this);\n }\n}\n// Legacy function support\nfunction animateValue(options) {\n return new JSAnimation(options);\n}\n\n\n//# sourceMappingURL=JSAnimation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9KU0FuaW1hdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFvRztBQUNsRDtBQUNjO0FBQ25CO0FBQ1M7QUFDSDtBQUNJO0FBQ3NCO0FBQ2hCO0FBQ2U7QUFDdEI7O0FBRXREO0FBQ0EsMEJBQTBCLCtEQUFXO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGNBQWM7QUFDbEMseURBQXlELDBEQUFJO0FBQzdELDBCQUEwQiwwREFBSTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0VBQWdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUIsUUFBUSx5RkFBcUI7QUFDN0IsZ0JBQWdCLE9BQU8sZ0VBQVMsMkRBQTJEO0FBQzNGLGNBQWMseUJBQXlCO0FBQ3ZDLHlDQUF5QyxnRUFBUztBQUNsRCxZQUFZLEtBQXFDO0FBQ2pELGlDQUFpQyxnRUFBUztBQUMxQyxZQUFZLHVEQUFTLDBIQUEwSCxZQUFZO0FBQzNKO0FBQ0EsaUNBQWlDLGdFQUFTO0FBQzFDO0FBQ0EsZ0NBQWdDLGtEQUFJLG9CQUFvQix5REFBRztBQUMzRDtBQUNBO0FBQ0EsNkNBQTZDLG9DQUFvQztBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMsMEZBQXFCO0FBQ2hFO0FBQ0EsZ0JBQWdCLHFCQUFxQjtBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtR0FBbUc7QUFDbkg7QUFDQTtBQUNBLGdCQUFnQix3RkFBd0Y7QUFDeEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtREFBSztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsT0FBTztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsNkRBQU87QUFDbkQsMEJBQTBCLDJFQUFnQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG9FQUFxQjtBQUNwQztBQUNBO0FBQ0EsZ0JBQWdCLFlBQVk7QUFDNUIsK0JBQStCLG9FQUFxQjtBQUNwRDtBQUNBO0FBQ0EsZUFBZSxvRUFBcUI7QUFDcEM7QUFDQTtBQUNBLGtCQUFrQixvRUFBcUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDBEQUFJO0FBQzVCO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixvRUFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixTQUFTLGdFQUFlLGNBQWM7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMERBQUk7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0VBQWdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVxQztBQUNyQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL0pTQW5pbWF0aW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnZhcmlhbnQsIHBpcGUsIGNsYW1wLCBtaWxsaXNlY29uZHNUb1NlY29uZHMsIHNlY29uZHNUb01pbGxpc2Vjb25kcyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyB0aW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL3N5bmMtdGltZS5tanMnO1xuaW1wb3J0IHsgYWN0aXZlQW5pbWF0aW9ucyB9IGZyb20gJy4uL3N0YXRzL2FuaW1hdGlvbi1jb3VudC5tanMnO1xuaW1wb3J0IHsgbWl4IH0gZnJvbSAnLi4vdXRpbHMvbWl4L2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBmcmFtZWxvb3BEcml2ZXIgfSBmcm9tICcuL2RyaXZlcnMvZnJhbWUubWpzJztcbmltcG9ydCB7IGluZXJ0aWEgfSBmcm9tICcuL2dlbmVyYXRvcnMvaW5lcnRpYS5tanMnO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSAnLi9nZW5lcmF0b3JzL2tleWZyYW1lcy5tanMnO1xuaW1wb3J0IHsgY2FsY0dlbmVyYXRvckR1cmF0aW9uIH0gZnJvbSAnLi9nZW5lcmF0b3JzL3V0aWxzL2NhbGMtZHVyYXRpb24ubWpzJztcbmltcG9ydCB7IGdldEZpbmFsS2V5ZnJhbWUgfSBmcm9tICcuL2tleWZyYW1lcy9nZXQtZmluYWwubWpzJztcbmltcG9ydCB7IHJlcGxhY2VUcmFuc2l0aW9uVHlwZSB9IGZyb20gJy4vdXRpbHMvcmVwbGFjZS10cmFuc2l0aW9uLXR5cGUubWpzJztcbmltcG9ydCB7IFdpdGhQcm9taXNlIH0gZnJvbSAnLi91dGlscy9XaXRoUHJvbWlzZS5tanMnO1xuXG5jb25zdCBwZXJjZW50VG9Qcm9ncmVzcyA9IChwZXJjZW50KSA9PiBwZXJjZW50IC8gMTAwO1xuY2xhc3MgSlNBbmltYXRpb24gZXh0ZW5kcyBXaXRoUHJvbWlzZSB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnN0YXRlID0gXCJpZGxlXCI7XG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc1N0b3BwZWQgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBjdXJyZW50IHRpbWUgb2YgdGhlIGFuaW1hdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY3VycmVudFRpbWUgPSAwO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIHRpbWUgYXQgd2hpY2ggdGhlIGFuaW1hdGlvbiB3YXMgcGF1c2VkLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5ob2xkVGltZSA9IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBQbGF5YmFjayBzcGVlZCBhcyBhIGZhY3Rvci4gMCB3b3VsZCBiZSBzdG9wcGVkLCAtMSByZXZlcnNlIGFuZCAyIGRvdWJsZSBzcGVlZC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucGxheWJhY2tTcGVlZCA9IDE7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGlzIG1ldGhvZCBpcyBib3VuZCB0byB0aGUgaW5zdGFuY2UgdG8gZml4IGEgcGF0dGVybiB3aGVyZVxuICAgICAgICAgKiBhbmltYXRpb24uc3RvcCBpcyByZXR1cm5lZCBhcyBhIHJlZmVyZW5jZSBmcm9tIGEgdXNlRWZmZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zdG9wID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBtb3Rpb25WYWx1ZSB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICAgICAgaWYgKG1vdGlvblZhbHVlICYmIG1vdGlvblZhbHVlLnVwZGF0ZWRBdCAhPT0gdGltZS5ub3coKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudGljayh0aW1lLm5vdygpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcImlkbGVcIilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnRlYXJkb3duKCk7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMub25TdG9wPy4oKTtcbiAgICAgICAgfTtcbiAgICAgICAgYWN0aXZlQW5pbWF0aW9ucy5tYWluVGhyZWFkKys7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuaW5pdEFuaW1hdGlvbigpO1xuICAgICAgICB0aGlzLnBsYXkoKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuYXV0b3BsYXkgPT09IGZhbHNlKVxuICAgICAgICAgICAgdGhpcy5wYXVzZSgpO1xuICAgIH1cbiAgICBpbml0QW5pbWF0aW9uKCkge1xuICAgICAgICBjb25zdCB7IG9wdGlvbnMgfSA9IHRoaXM7XG4gICAgICAgIHJlcGxhY2VUcmFuc2l0aW9uVHlwZShvcHRpb25zKTtcbiAgICAgICAgY29uc3QgeyB0eXBlID0ga2V5ZnJhbWVzLCByZXBlYXQgPSAwLCByZXBlYXREZWxheSA9IDAsIHJlcGVhdFR5cGUsIHZlbG9jaXR5ID0gMCwgfSA9IG9wdGlvbnM7XG4gICAgICAgIGxldCB7IGtleWZyYW1lczoga2V5ZnJhbWVzJDEgfSA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGdlbmVyYXRvckZhY3RvcnkgPSB0eXBlIHx8IGtleWZyYW1lcztcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIiAmJlxuICAgICAgICAgICAgZ2VuZXJhdG9yRmFjdG9yeSAhPT0ga2V5ZnJhbWVzKSB7XG4gICAgICAgICAgICBpbnZhcmlhbnQoa2V5ZnJhbWVzJDEubGVuZ3RoIDw9IDIsIGBPbmx5IHR3byBrZXlmcmFtZXMgY3VycmVudGx5IHN1cHBvcnRlZCB3aXRoIHNwcmluZyBhbmQgaW5lcnRpYSBhbmltYXRpb25zLiBUcnlpbmcgdG8gYW5pbWF0ZSAke2tleWZyYW1lcyQxfWAsIFwic3ByaW5nLXR3by1mcmFtZXNcIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdlbmVyYXRvckZhY3RvcnkgIT09IGtleWZyYW1lcyAmJlxuICAgICAgICAgICAgdHlwZW9mIGtleWZyYW1lcyQxWzBdICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICB0aGlzLm1peEtleWZyYW1lcyA9IHBpcGUocGVyY2VudFRvUHJvZ3Jlc3MsIG1peChrZXlmcmFtZXMkMVswXSwga2V5ZnJhbWVzJDFbMV0pKTtcbiAgICAgICAgICAgIGtleWZyYW1lcyQxID0gWzAsIDEwMF07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZ2VuZXJhdG9yID0gZ2VuZXJhdG9yRmFjdG9yeSh7IC4uLm9wdGlvbnMsIGtleWZyYW1lczoga2V5ZnJhbWVzJDEgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB3ZSBoYXZlIGEgbWlycm9yIHJlcGVhdCB0eXBlIHdlIG5lZWQgdG8gY3JlYXRlIGEgc2Vjb25kIGdlbmVyYXRvciB0aGF0IG91dHB1dHMgdGhlXG4gICAgICAgICAqIG1pcnJvcmVkIChub3QgcmV2ZXJzZWQpIGFuaW1hdGlvbiBhbmQgbGF0ZXIgcGluZyBwb25nIGJldHdlZW4gdGhlIHR3byBnZW5lcmF0b3JzLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHJlcGVhdFR5cGUgPT09IFwibWlycm9yXCIpIHtcbiAgICAgICAgICAgIHRoaXMubWlycm9yZWRHZW5lcmF0b3IgPSBnZW5lcmF0b3JGYWN0b3J5KHtcbiAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGtleWZyYW1lczogWy4uLmtleWZyYW1lcyQxXS5yZXZlcnNlKCksXG4gICAgICAgICAgICAgICAgdmVsb2NpdHk6IC12ZWxvY2l0eSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBkdXJhdGlvbiBpcyB1bmRlZmluZWQgYW5kIHdlIGhhdmUgcmVwZWF0IG9wdGlvbnMsXG4gICAgICAgICAqIHdlIG5lZWQgdG8gY2FsY3VsYXRlIGEgZHVyYXRpb24gZnJvbSB0aGUgZ2VuZXJhdG9yLlxuICAgICAgICAgKlxuICAgICAgICAgKiBXZSBzZXQgaXQgdG8gdGhlIGdlbmVyYXRvciBpdHNlbGYgdG8gY2FjaGUgdGhlIGR1cmF0aW9uLlxuICAgICAgICAgKiBBbnkgdGltZWxpbmUgcmVzb2x2ZXIgd2lsbCBuZWVkIHRvIGhhdmUgYWxyZWFkeSBwcmVjYWxjdWxhdGVkXG4gICAgICAgICAqIHRoZSBkdXJhdGlvbiBieSB0aGlzIHN0ZXAuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoZ2VuZXJhdG9yLmNhbGN1bGF0ZWREdXJhdGlvbiA9PT0gbnVsbCkge1xuICAgICAgICAgICAgZ2VuZXJhdG9yLmNhbGN1bGF0ZWREdXJhdGlvbiA9IGNhbGNHZW5lcmF0b3JEdXJhdGlvbihnZW5lcmF0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY2FsY3VsYXRlZER1cmF0aW9uIH0gPSBnZW5lcmF0b3I7XG4gICAgICAgIHRoaXMuY2FsY3VsYXRlZER1cmF0aW9uID0gY2FsY3VsYXRlZER1cmF0aW9uO1xuICAgICAgICB0aGlzLnJlc29sdmVkRHVyYXRpb24gPSBjYWxjdWxhdGVkRHVyYXRpb24gKyByZXBlYXREZWxheTtcbiAgICAgICAgdGhpcy50b3RhbER1cmF0aW9uID0gdGhpcy5yZXNvbHZlZER1cmF0aW9uICogKHJlcGVhdCArIDEpIC0gcmVwZWF0RGVsYXk7XG4gICAgICAgIHRoaXMuZ2VuZXJhdG9yID0gZ2VuZXJhdG9yO1xuICAgIH1cbiAgICB1cGRhdGVUaW1lKHRpbWVzdGFtcCkge1xuICAgICAgICBjb25zdCBhbmltYXRpb25UaW1lID0gTWF0aC5yb3VuZCh0aW1lc3RhbXAgLSB0aGlzLnN0YXJ0VGltZSkgKiB0aGlzLnBsYXliYWNrU3BlZWQ7XG4gICAgICAgIC8vIFVwZGF0ZSBjdXJyZW50VGltZVxuICAgICAgICBpZiAodGhpcy5ob2xkVGltZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuaG9sZFRpbWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBSb3VuZGluZyB0aGUgdGltZSBiZWNhdXNlIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgaXMgbm90IGFsd2F5cyBhY2N1cmF0ZSwgZS5nLiAzMDAwLjM2NyAtIDEwMDAuMzY3ID1cbiAgICAgICAgICAgIC8vIDIwMDAuMDAwMDAwMDAwMDAwMi4gVGhpcyBpcyBhIHByb2JsZW0gd2hlbiB3ZSBhcmUgY29tcGFyaW5nIHRoZSBjdXJyZW50VGltZSB3aXRoIHRoZSBkdXJhdGlvbiwgZm9yXG4gICAgICAgICAgICAvLyBleGFtcGxlLlxuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IGFuaW1hdGlvblRpbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGljayh0aW1lc3RhbXAsIHNhbXBsZSA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHsgZ2VuZXJhdG9yLCB0b3RhbER1cmF0aW9uLCBtaXhLZXlmcmFtZXMsIG1pcnJvcmVkR2VuZXJhdG9yLCByZXNvbHZlZER1cmF0aW9uLCBjYWxjdWxhdGVkRHVyYXRpb24sIH0gPSB0aGlzO1xuICAgICAgICBpZiAodGhpcy5zdGFydFRpbWUgPT09IG51bGwpXG4gICAgICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLm5leHQoMCk7XG4gICAgICAgIGNvbnN0IHsgZGVsYXkgPSAwLCBrZXlmcmFtZXMsIHJlcGVhdCwgcmVwZWF0VHlwZSwgcmVwZWF0RGVsYXksIHR5cGUsIG9uVXBkYXRlLCBmaW5hbEtleWZyYW1lLCB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICAvKipcbiAgICAgICAgICogcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHRpbWVzdGFtcHMgY2FuIGNvbWUgdGhyb3VnaCBhcyBsb3dlciB0aGFuXG4gICAgICAgICAqIHRoZSBzdGFydFRpbWUgYXMgc2V0IGJ5IHBlcmZvcm1hbmNlLm5vdygpLiBIZXJlIHdlIHByZXZlbnQgdGhpcyxcbiAgICAgICAgICogdGhvdWdoIGluIHRoZSBmdXR1cmUgaXQgY291bGQgYmUgcG9zc2libGUgdG8gbWFrZSBzZXR0aW5nIHN0YXJ0VGltZVxuICAgICAgICAgKiBhIHBlbmRpbmcgb3BlcmF0aW9uIHRoYXQgZ2V0cyByZXNvbHZlZCBoZXJlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMuc3BlZWQgPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IE1hdGgubWluKHRoaXMuc3RhcnRUaW1lLCB0aW1lc3RhbXApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuc3BlZWQgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IE1hdGgubWluKHRpbWVzdGFtcCAtIHRvdGFsRHVyYXRpb24gLyB0aGlzLnNwZWVkLCB0aGlzLnN0YXJ0VGltZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNhbXBsZSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IHRpbWVzdGFtcDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZSh0aW1lc3RhbXApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFJlYmFzZSBvbiBkZWxheVxuICAgICAgICBjb25zdCB0aW1lV2l0aG91dERlbGF5ID0gdGhpcy5jdXJyZW50VGltZSAtIGRlbGF5ICogKHRoaXMucGxheWJhY2tTcGVlZCA+PSAwID8gMSA6IC0xKTtcbiAgICAgICAgY29uc3QgaXNJbkRlbGF5UGhhc2UgPSB0aGlzLnBsYXliYWNrU3BlZWQgPj0gMFxuICAgICAgICAgICAgPyB0aW1lV2l0aG91dERlbGF5IDwgMFxuICAgICAgICAgICAgOiB0aW1lV2l0aG91dERlbGF5ID4gdG90YWxEdXJhdGlvbjtcbiAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IE1hdGgubWF4KHRpbWVXaXRob3V0RGVsYXksIDApO1xuICAgICAgICAvLyBJZiB0aGlzIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQsIHNldCB0aGUgY3VycmVudCB0aW1lICB0byB0aGUgdG90YWwgZHVyYXRpb24uXG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcImZpbmlzaGVkXCIgJiYgdGhpcy5ob2xkVGltZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IHRvdGFsRHVyYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGVsYXBzZWQgPSB0aGlzLmN1cnJlbnRUaW1lO1xuICAgICAgICBsZXQgZnJhbWVHZW5lcmF0b3IgPSBnZW5lcmF0b3I7XG4gICAgICAgIGlmIChyZXBlYXQpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogR2V0IHRoZSBjdXJyZW50IHByb2dyZXNzICgwLTEpIG9mIHRoZSBhbmltYXRpb24uIElmIHQgaXMgPlxuICAgICAgICAgICAgICogdGhhbiBkdXJhdGlvbiB3ZSdsbCBnZXQgdmFsdWVzIGxpa2UgMi41IChtaWR3YXkgdGhyb3VnaCB0aGVcbiAgICAgICAgICAgICAqIHRoaXJkIGl0ZXJhdGlvbilcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLm1pbih0aGlzLmN1cnJlbnRUaW1lLCB0b3RhbER1cmF0aW9uKSAvIHJlc29sdmVkRHVyYXRpb247XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEdldCB0aGUgY3VycmVudCBpdGVyYXRpb24gKDAgaW5kZXhlZCkuIEZvciBpbnN0YW5jZSB0aGUgZmxvb3Igb2ZcbiAgICAgICAgICAgICAqIDIuNSBpcyAyLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsZXQgY3VycmVudEl0ZXJhdGlvbiA9IE1hdGguZmxvb3IocHJvZ3Jlc3MpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBHZXQgdGhlIGN1cnJlbnQgcHJvZ3Jlc3Mgb2YgdGhlIGl0ZXJhdGlvbiBieSB0YWtpbmcgdGhlIHJlbWFpbmRlclxuICAgICAgICAgICAgICogc28gMi41IGlzIDAuNSB0aHJvdWdoIGl0ZXJhdGlvbiAyXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxldCBpdGVyYXRpb25Qcm9ncmVzcyA9IHByb2dyZXNzICUgMS4wO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiBpdGVyYXRpb24gcHJvZ3Jlc3MgaXMgMSB3ZSBjb3VudCB0aGF0IGFzIHRoZSBlbmRcbiAgICAgICAgICAgICAqIG9mIHRoZSBwcmV2aW91cyBpdGVyYXRpb24uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICghaXRlcmF0aW9uUHJvZ3Jlc3MgJiYgcHJvZ3Jlc3MgPj0gMSkge1xuICAgICAgICAgICAgICAgIGl0ZXJhdGlvblByb2dyZXNzID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGl0ZXJhdGlvblByb2dyZXNzID09PSAxICYmIGN1cnJlbnRJdGVyYXRpb24tLTtcbiAgICAgICAgICAgIGN1cnJlbnRJdGVyYXRpb24gPSBNYXRoLm1pbihjdXJyZW50SXRlcmF0aW9uLCByZXBlYXQgKyAxKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUmV2ZXJzZSBwcm9ncmVzcyBpZiB3ZSdyZSBub3QgcnVubmluZyBpbiBcIm5vcm1hbFwiIGRpcmVjdGlvblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBpc09kZEl0ZXJhdGlvbiA9IEJvb2xlYW4oY3VycmVudEl0ZXJhdGlvbiAlIDIpO1xuICAgICAgICAgICAgaWYgKGlzT2RkSXRlcmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlcGVhdFR5cGUgPT09IFwicmV2ZXJzZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvblByb2dyZXNzID0gMSAtIGl0ZXJhdGlvblByb2dyZXNzO1xuICAgICAgICAgICAgICAgICAgICBpZiAocmVwZWF0RGVsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZXJhdGlvblByb2dyZXNzIC09IHJlcGVhdERlbGF5IC8gcmVzb2x2ZWREdXJhdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXBlYXRUeXBlID09PSBcIm1pcnJvclwiKSB7XG4gICAgICAgICAgICAgICAgICAgIGZyYW1lR2VuZXJhdG9yID0gbWlycm9yZWRHZW5lcmF0b3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxhcHNlZCA9IGNsYW1wKDAsIDEsIGl0ZXJhdGlvblByb2dyZXNzKSAqIHJlc29sdmVkRHVyYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHdlJ3JlIGluIG5lZ2F0aXZlIHRpbWUsIHNldCBzdGF0ZSBhcyB0aGUgaW5pdGlhbCBrZXlmcmFtZS5cbiAgICAgICAgICogVGhpcyBwcmV2ZW50cyBkZWxheTogeCwgZHVyYXRpb246IDAgYW5pbWF0aW9ucyBmcm9tIGZpbmlzaGluZ1xuICAgICAgICAgKiBpbnN0YW50bHkuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBzdGF0ZSA9IGlzSW5EZWxheVBoYXNlXG4gICAgICAgICAgICA/IHsgZG9uZTogZmFsc2UsIHZhbHVlOiBrZXlmcmFtZXNbMF0gfVxuICAgICAgICAgICAgOiBmcmFtZUdlbmVyYXRvci5uZXh0KGVsYXBzZWQpO1xuICAgICAgICBpZiAobWl4S2V5ZnJhbWVzKSB7XG4gICAgICAgICAgICBzdGF0ZS52YWx1ZSA9IG1peEtleWZyYW1lcyhzdGF0ZS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHsgZG9uZSB9ID0gc3RhdGU7XG4gICAgICAgIGlmICghaXNJbkRlbGF5UGhhc2UgJiYgY2FsY3VsYXRlZER1cmF0aW9uICE9PSBudWxsKSB7XG4gICAgICAgICAgICBkb25lID1cbiAgICAgICAgICAgICAgICB0aGlzLnBsYXliYWNrU3BlZWQgPj0gMFxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuY3VycmVudFRpbWUgPj0gdG90YWxEdXJhdGlvblxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuY3VycmVudFRpbWUgPD0gMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0FuaW1hdGlvbkZpbmlzaGVkID0gdGhpcy5ob2xkVGltZSA9PT0gbnVsbCAmJlxuICAgICAgICAgICAgKHRoaXMuc3RhdGUgPT09IFwiZmluaXNoZWRcIiB8fCAodGhpcy5zdGF0ZSA9PT0gXCJydW5uaW5nXCIgJiYgZG9uZSkpO1xuICAgICAgICAvLyBUT0RPOiBUaGUgZXhjZXB0aW9uIGZvciBpbmVydGlhIGNvdWxkIGJlIGNsZWFuZXIgaGVyZVxuICAgICAgICBpZiAoaXNBbmltYXRpb25GaW5pc2hlZCAmJiB0eXBlICE9PSBpbmVydGlhKSB7XG4gICAgICAgICAgICBzdGF0ZS52YWx1ZSA9IGdldEZpbmFsS2V5ZnJhbWUoa2V5ZnJhbWVzLCB0aGlzLm9wdGlvbnMsIGZpbmFsS2V5ZnJhbWUsIHRoaXMuc3BlZWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvblVwZGF0ZSkge1xuICAgICAgICAgICAgb25VcGRhdGUoc3RhdGUudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc0FuaW1hdGlvbkZpbmlzaGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQWxsb3dzIHRoZSByZXR1cm5lZCBhbmltYXRpb24gdG8gYmUgYXdhaXRlZCBvciBwcm9taXNlLWNoYWluZWQuIEN1cnJlbnRseVxuICAgICAqIHJlc29sdmVzIHdoZW4gdGhlIGFuaW1hdGlvbiBmaW5pc2hlcyBhdCBhbGwgYnV0IGluIGEgZnV0dXJlIHVwZGF0ZSBjb3VsZC9zaG91bGRcbiAgICAgKiByZWplY3QgaWYgaXRzIGNhbmNlbHMuXG4gICAgICovXG4gICAgdGhlbihyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluaXNoZWQudGhlbihyZXNvbHZlLCByZWplY3QpO1xuICAgIH1cbiAgICBnZXQgZHVyYXRpb24oKSB7XG4gICAgICAgIHJldHVybiBtaWxsaXNlY29uZHNUb1NlY29uZHModGhpcy5jYWxjdWxhdGVkRHVyYXRpb24pO1xuICAgIH1cbiAgICBnZXQgaXRlcmF0aW9uRHVyYXRpb24oKSB7XG4gICAgICAgIGNvbnN0IHsgZGVsYXkgPSAwIH0gPSB0aGlzLm9wdGlvbnMgfHwge307XG4gICAgICAgIHJldHVybiB0aGlzLmR1cmF0aW9uICsgbWlsbGlzZWNvbmRzVG9TZWNvbmRzKGRlbGF5KTtcbiAgICB9XG4gICAgZ2V0IHRpbWUoKSB7XG4gICAgICAgIHJldHVybiBtaWxsaXNlY29uZHNUb1NlY29uZHModGhpcy5jdXJyZW50VGltZSk7XG4gICAgfVxuICAgIHNldCB0aW1lKG5ld1RpbWUpIHtcbiAgICAgICAgbmV3VGltZSA9IHNlY29uZHNUb01pbGxpc2Vjb25kcyhuZXdUaW1lKTtcbiAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IG5ld1RpbWU7XG4gICAgICAgIGlmICh0aGlzLnN0YXJ0VGltZSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgdGhpcy5ob2xkVGltZSAhPT0gbnVsbCB8fFxuICAgICAgICAgICAgdGhpcy5wbGF5YmFja1NwZWVkID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmhvbGRUaW1lID0gbmV3VGltZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmRyaXZlcikge1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSB0aGlzLmRyaXZlci5ub3coKSAtIG5ld1RpbWUgLyB0aGlzLnBsYXliYWNrU3BlZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kcml2ZXI/LnN0YXJ0KGZhbHNlKTtcbiAgICB9XG4gICAgZ2V0IHNwZWVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGF5YmFja1NwZWVkO1xuICAgIH1cbiAgICBzZXQgc3BlZWQobmV3U3BlZWQpIHtcbiAgICAgICAgdGhpcy51cGRhdGVUaW1lKHRpbWUubm93KCkpO1xuICAgICAgICBjb25zdCBoYXNDaGFuZ2VkID0gdGhpcy5wbGF5YmFja1NwZWVkICE9PSBuZXdTcGVlZDtcbiAgICAgICAgdGhpcy5wbGF5YmFja1NwZWVkID0gbmV3U3BlZWQ7XG4gICAgICAgIGlmIChoYXNDaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWUgPSBtaWxsaXNlY29uZHNUb1NlY29uZHModGhpcy5jdXJyZW50VGltZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcGxheSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB7IGRyaXZlciA9IGZyYW1lbG9vcERyaXZlciwgc3RhcnRUaW1lIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGlmICghdGhpcy5kcml2ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZHJpdmVyID0gZHJpdmVyKCh0aW1lc3RhbXApID0+IHRoaXMudGljayh0aW1lc3RhbXApKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wdGlvbnMub25QbGF5Py4oKTtcbiAgICAgICAgY29uc3Qgbm93ID0gdGhpcy5kcml2ZXIubm93KCk7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcImZpbmlzaGVkXCIpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmluaXNoZWQoKTtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gbm93O1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuaG9sZFRpbWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gbm93IC0gdGhpcy5ob2xkVGltZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICghdGhpcy5zdGFydFRpbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gc3RhcnRUaW1lID8/IG5vdztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gXCJmaW5pc2hlZFwiICYmIHRoaXMuc3BlZWQgPCAwKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSArPSB0aGlzLmNhbGN1bGF0ZWREdXJhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhvbGRUaW1lID0gbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCBwbGF5U3RhdGUgdG8gcnVubmluZyBvbmx5IGFmdGVyIHdlJ3ZlIHVzZWQgaXQgaW5cbiAgICAgICAgICogdGhlIHByZXZpb3VzIGxvZ2ljLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zdGF0ZSA9IFwicnVubmluZ1wiO1xuICAgICAgICB0aGlzLmRyaXZlci5zdGFydCgpO1xuICAgIH1cbiAgICBwYXVzZSgpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFwicGF1c2VkXCI7XG4gICAgICAgIHRoaXMudXBkYXRlVGltZSh0aW1lLm5vdygpKTtcbiAgICAgICAgdGhpcy5ob2xkVGltZSA9IHRoaXMuY3VycmVudFRpbWU7XG4gICAgfVxuICAgIGNvbXBsZXRlKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZSAhPT0gXCJydW5uaW5nXCIpIHtcbiAgICAgICAgICAgIHRoaXMucGxheSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RhdGUgPSBcImZpbmlzaGVkXCI7XG4gICAgICAgIHRoaXMuaG9sZFRpbWUgPSBudWxsO1xuICAgIH1cbiAgICBmaW5pc2goKSB7XG4gICAgICAgIHRoaXMubm90aWZ5RmluaXNoZWQoKTtcbiAgICAgICAgdGhpcy50ZWFyZG93bigpO1xuICAgICAgICB0aGlzLnN0YXRlID0gXCJmaW5pc2hlZFwiO1xuICAgICAgICB0aGlzLm9wdGlvbnMub25Db21wbGV0ZT8uKCk7XG4gICAgfVxuICAgIGNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy5ob2xkVGltZSA9IG51bGw7XG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gMDtcbiAgICAgICAgdGhpcy50aWNrKDApO1xuICAgICAgICB0aGlzLnRlYXJkb3duKCk7XG4gICAgICAgIHRoaXMub3B0aW9ucy5vbkNhbmNlbD8uKCk7XG4gICAgfVxuICAgIHRlYXJkb3duKCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gXCJpZGxlXCI7XG4gICAgICAgIHRoaXMuc3RvcERyaXZlcigpO1xuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IHRoaXMuaG9sZFRpbWUgPSBudWxsO1xuICAgICAgICBhY3RpdmVBbmltYXRpb25zLm1haW5UaHJlYWQtLTtcbiAgICB9XG4gICAgc3RvcERyaXZlcigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyaXZlcilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5kcml2ZXIuc3RvcCgpO1xuICAgICAgICB0aGlzLmRyaXZlciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgc2FtcGxlKHNhbXBsZVRpbWUpIHtcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSAwO1xuICAgICAgICByZXR1cm4gdGhpcy50aWNrKHNhbXBsZVRpbWUsIHRydWUpO1xuICAgIH1cbiAgICBhdHRhY2hUaW1lbGluZSh0aW1lbGluZSkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmFsbG93RmxhdHRlbikge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnR5cGUgPSBcImtleWZyYW1lc1wiO1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmVhc2UgPSBcImxpbmVhclwiO1xuICAgICAgICAgICAgdGhpcy5pbml0QW5pbWF0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kcml2ZXI/LnN0b3AoKTtcbiAgICAgICAgcmV0dXJuIHRpbWVsaW5lLm9ic2VydmUodGhpcyk7XG4gICAgfVxufVxuLy8gTGVnYWN5IGZ1bmN0aW9uIHN1cHBvcnRcbmZ1bmN0aW9uIGFuaW1hdGVWYWx1ZShvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBKU0FuaW1hdGlvbihvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgSlNBbmltYXRpb24sIGFuaW1hdGVWYWx1ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SlNBbmltYXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/NativeAnimation.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 */ NativeAnimation: () => (/* binding */ NativeAnimation)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _render_dom_style_set_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../render/dom/style-set.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs\");\n/* harmony import */ var _utils_supports_scroll_timeline_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/supports/scroll-timeline.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n/* harmony import */ var _waapi_start_waapi_animation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./waapi/start-waapi-animation.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs\");\n/* harmony import */ var _waapi_utils_apply_generator_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./waapi/utils/apply-generator.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs\");\n\n\n\n\n\n\n\n\n/**\n * NativeAnimation implements AnimationPlaybackControls for the browser's Web Animations API.\n */\nclass NativeAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\n constructor(options) {\n super();\n this.finishedTime = null;\n this.isStopped = false;\n /**\n * Tracks a manually-set start time that takes precedence over WAAPI's\n * dynamic startTime. This is cleared when play() or time setter is called,\n * allowing WAAPI to take over timing.\n */\n this.manualStartTime = null;\n if (!options)\n return;\n const { element, name, keyframes, pseudoElement, allowFlatten = false, finalKeyframe, onComplete, } = options;\n this.isPseudoElement = Boolean(pseudoElement);\n this.allowFlatten = allowFlatten;\n this.options = options;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.invariant)(typeof options.type !== \"string\", `Mini animate() doesn't support \"type\" as a string.`, \"mini-spring\");\n const transition = (0,_waapi_utils_apply_generator_mjs__WEBPACK_IMPORTED_MODULE_2__.applyGeneratorOptions)(options);\n this.animation = (0,_waapi_start_waapi_animation_mjs__WEBPACK_IMPORTED_MODULE_3__.startWaapiAnimation)(element, name, keyframes, transition, pseudoElement);\n if (transition.autoplay === false) {\n this.animation.pause();\n }\n this.animation.onfinish = () => {\n this.finishedTime = this.time;\n if (!pseudoElement) {\n const keyframe = (0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_4__.getFinalKeyframe)(keyframes, this.options, finalKeyframe, this.speed);\n if (this.updateMotionValue) {\n this.updateMotionValue(keyframe);\n }\n else {\n /**\n * If we can, we want to commit the final style as set by the user,\n * rather than the computed keyframe value supplied by the animation.\n */\n (0,_render_dom_style_set_mjs__WEBPACK_IMPORTED_MODULE_5__.setStyle)(element, name, keyframe);\n }\n this.animation.cancel();\n }\n onComplete?.();\n this.notifyFinished();\n };\n }\n play() {\n if (this.isStopped)\n return;\n this.manualStartTime = null;\n this.animation.play();\n if (this.state === \"finished\") {\n this.updateFinished();\n }\n }\n pause() {\n this.animation.pause();\n }\n complete() {\n this.animation.finish?.();\n }\n cancel() {\n try {\n this.animation.cancel();\n }\n catch (e) { }\n }\n stop() {\n if (this.isStopped)\n return;\n this.isStopped = true;\n const { state } = this;\n if (state === \"idle\" || state === \"finished\") {\n return;\n }\n if (this.updateMotionValue) {\n this.updateMotionValue();\n }\n else {\n this.commitStyles();\n }\n if (!this.isPseudoElement)\n this.cancel();\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * In this method, we commit styles back to the DOM before cancelling\n * the animation.\n *\n * This is designed to be overridden by NativeAnimationExtended, which\n * will create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to also correctly calculate velocity for any subsequent animation\n * while deferring the commit until the next animation frame.\n */\n commitStyles() {\n const element = this.options?.element;\n if (!this.isPseudoElement && element?.isConnected) {\n this.animation.commitStyles?.();\n }\n }\n get duration() {\n const duration = this.animation.effect?.getComputedTiming?.().duration || 0;\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(Number(duration));\n }\n get iterationDuration() {\n const { delay = 0 } = this.options || {};\n return this.duration + (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(delay);\n }\n get time() {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(Number(this.animation.currentTime) || 0);\n }\n set time(newTime) {\n this.manualStartTime = null;\n this.finishedTime = null;\n this.animation.currentTime = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.secondsToMilliseconds)(newTime);\n }\n /**\n * The playback speed of the animation.\n * 1 = normal speed, 2 = double speed, 0.5 = half speed.\n */\n get speed() {\n return this.animation.playbackRate;\n }\n set speed(newSpeed) {\n // Allow backwards playback after finishing\n if (newSpeed < 0)\n this.finishedTime = null;\n this.animation.playbackRate = newSpeed;\n }\n get state() {\n return this.finishedTime !== null\n ? \"finished\"\n : this.animation.playState;\n }\n get startTime() {\n return this.manualStartTime ?? Number(this.animation.startTime);\n }\n set startTime(newStartTime) {\n this.manualStartTime = this.animation.startTime = newStartTime;\n }\n /**\n * Attaches a timeline to the animation, for instance the `ScrollTimeline`.\n */\n attachTimeline({ timeline, observe }) {\n if (this.allowFlatten) {\n this.animation.effect?.updateTiming({ easing: \"linear\" });\n }\n this.animation.onfinish = null;\n if (timeline && (0,_utils_supports_scroll_timeline_mjs__WEBPACK_IMPORTED_MODULE_7__.supportsScrollTimeline)()) {\n this.animation.timeline = timeline;\n return motion_utils__WEBPACK_IMPORTED_MODULE_8__.noop;\n }\n else {\n return observe(this);\n }\n }\n}\n\n\n//# sourceMappingURL=NativeAnimation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9OYXRpdmVBbmltYXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBNkY7QUFDdEM7QUFDd0I7QUFDbEI7QUFDUDtBQUNrQjtBQUNFOztBQUUxRTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsK0RBQVc7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDRGQUE0RjtBQUM1RztBQUNBO0FBQ0E7QUFDQSxRQUFRLHVEQUFTO0FBQ2pCLDJCQUEyQix1RkFBcUI7QUFDaEQseUJBQXlCLHFGQUFtQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsMEVBQWdCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsbUVBQVE7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixRQUFRO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1FQUFxQjtBQUNwQztBQUNBO0FBQ0EsZ0JBQWdCLFlBQVk7QUFDNUIsK0JBQStCLG1FQUFxQjtBQUNwRDtBQUNBO0FBQ0EsZUFBZSxtRUFBcUI7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsbUVBQXFCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLG1CQUFtQjtBQUN4QztBQUNBLGtEQUFrRCxrQkFBa0I7QUFDcEU7QUFDQTtBQUNBLHdCQUF3QiwyRkFBc0I7QUFDOUM7QUFDQSxtQkFBbUIsOENBQUk7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUyQjtBQUMzQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL05hdGl2ZUFuaW1hdGlvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW52YXJpYW50LCBtaWxsaXNlY29uZHNUb1NlY29uZHMsIHNlY29uZHNUb01pbGxpc2Vjb25kcywgbm9vcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBzZXRTdHlsZSB9IGZyb20gJy4uL3JlbmRlci9kb20vc3R5bGUtc2V0Lm1qcyc7XG5pbXBvcnQgeyBzdXBwb3J0c1Njcm9sbFRpbWVsaW5lIH0gZnJvbSAnLi4vdXRpbHMvc3VwcG9ydHMvc2Nyb2xsLXRpbWVsaW5lLm1qcyc7XG5pbXBvcnQgeyBnZXRGaW5hbEtleWZyYW1lIH0gZnJvbSAnLi9rZXlmcmFtZXMvZ2V0LWZpbmFsLm1qcyc7XG5pbXBvcnQgeyBXaXRoUHJvbWlzZSB9IGZyb20gJy4vdXRpbHMvV2l0aFByb21pc2UubWpzJztcbmltcG9ydCB7IHN0YXJ0V2FhcGlBbmltYXRpb24gfSBmcm9tICcuL3dhYXBpL3N0YXJ0LXdhYXBpLWFuaW1hdGlvbi5tanMnO1xuaW1wb3J0IHsgYXBwbHlHZW5lcmF0b3JPcHRpb25zIH0gZnJvbSAnLi93YWFwaS91dGlscy9hcHBseS1nZW5lcmF0b3IubWpzJztcblxuLyoqXG4gKiBOYXRpdmVBbmltYXRpb24gaW1wbGVtZW50cyBBbmltYXRpb25QbGF5YmFja0NvbnRyb2xzIGZvciB0aGUgYnJvd3NlcidzIFdlYiBBbmltYXRpb25zIEFQSS5cbiAqL1xuY2xhc3MgTmF0aXZlQW5pbWF0aW9uIGV4dGVuZHMgV2l0aFByb21pc2Uge1xuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5maW5pc2hlZFRpbWUgPSBudWxsO1xuICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogVHJhY2tzIGEgbWFudWFsbHktc2V0IHN0YXJ0IHRpbWUgdGhhdCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgV0FBUEknc1xuICAgICAgICAgKiBkeW5hbWljIHN0YXJ0VGltZS4gVGhpcyBpcyBjbGVhcmVkIHdoZW4gcGxheSgpIG9yIHRpbWUgc2V0dGVyIGlzIGNhbGxlZCxcbiAgICAgICAgICogYWxsb3dpbmcgV0FBUEkgdG8gdGFrZSBvdmVyIHRpbWluZy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubWFudWFsU3RhcnRUaW1lID0gbnVsbDtcbiAgICAgICAgaWYgKCFvcHRpb25zKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB7IGVsZW1lbnQsIG5hbWUsIGtleWZyYW1lcywgcHNldWRvRWxlbWVudCwgYWxsb3dGbGF0dGVuID0gZmFsc2UsIGZpbmFsS2V5ZnJhbWUsIG9uQ29tcGxldGUsIH0gPSBvcHRpb25zO1xuICAgICAgICB0aGlzLmlzUHNldWRvRWxlbWVudCA9IEJvb2xlYW4ocHNldWRvRWxlbWVudCk7XG4gICAgICAgIHRoaXMuYWxsb3dGbGF0dGVuID0gYWxsb3dGbGF0dGVuO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgICBpbnZhcmlhbnQodHlwZW9mIG9wdGlvbnMudHlwZSAhPT0gXCJzdHJpbmdcIiwgYE1pbmkgYW5pbWF0ZSgpIGRvZXNuJ3Qgc3VwcG9ydCBcInR5cGVcIiBhcyBhIHN0cmluZy5gLCBcIm1pbmktc3ByaW5nXCIpO1xuICAgICAgICBjb25zdCB0cmFuc2l0aW9uID0gYXBwbHlHZW5lcmF0b3JPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IHN0YXJ0V2FhcGlBbmltYXRpb24oZWxlbWVudCwgbmFtZSwga2V5ZnJhbWVzLCB0cmFuc2l0aW9uLCBwc2V1ZG9FbGVtZW50KTtcbiAgICAgICAgaWYgKHRyYW5zaXRpb24uYXV0b3BsYXkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbi5wYXVzZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLm9uZmluaXNoID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maW5pc2hlZFRpbWUgPSB0aGlzLnRpbWU7XG4gICAgICAgICAgICBpZiAoIXBzZXVkb0VsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlmcmFtZSA9IGdldEZpbmFsS2V5ZnJhbWUoa2V5ZnJhbWVzLCB0aGlzLm9wdGlvbnMsIGZpbmFsS2V5ZnJhbWUsIHRoaXMuc3BlZWQpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnVwZGF0ZU1vdGlvblZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTW90aW9uVmFsdWUoa2V5ZnJhbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHdlIGNhbiwgd2Ugd2FudCB0byBjb21taXQgdGhlIGZpbmFsIHN0eWxlIGFzIHNldCBieSB0aGUgdXNlcixcbiAgICAgICAgICAgICAgICAgICAgICogcmF0aGVyIHRoYW4gdGhlIGNvbXB1dGVkIGtleWZyYW1lIHZhbHVlIHN1cHBsaWVkIGJ5IHRoZSBhbmltYXRpb24uXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBzZXRTdHlsZShlbGVtZW50LCBuYW1lLCBrZXlmcmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLmNhbmNlbCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25Db21wbGV0ZT8uKCk7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeUZpbmlzaGVkKCk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIHBsYXkoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzU3RvcHBlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5tYW51YWxTdGFydFRpbWUgPSBudWxsO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbi5wbGF5KCk7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcImZpbmlzaGVkXCIpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmluaXNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwYXVzZSgpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24ucGF1c2UoKTtcbiAgICB9XG4gICAgY29tcGxldGUoKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLmZpbmlzaD8uKCk7XG4gICAgfVxuICAgIGNhbmNlbCgpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLmNhbmNlbCgpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7IH1cbiAgICB9XG4gICAgc3RvcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7XG4gICAgICAgIGNvbnN0IHsgc3RhdGUgfSA9IHRoaXM7XG4gICAgICAgIGlmIChzdGF0ZSA9PT0gXCJpZGxlXCIgfHwgc3RhdGUgPT09IFwiZmluaXNoZWRcIikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnVwZGF0ZU1vdGlvblZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vdGlvblZhbHVlKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbW1pdFN0eWxlcygpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pc1BzZXVkb0VsZW1lbnQpXG4gICAgICAgICAgICB0aGlzLmNhbmNlbCgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBXQUFQSSBkb2Vzbid0IG5hdGl2ZWx5IGhhdmUgYW55IGludGVycnVwdGlvbiBjYXBhYmlsaXRpZXMuXG4gICAgICpcbiAgICAgKiBJbiB0aGlzIG1ldGhvZCwgd2UgY29tbWl0IHN0eWxlcyBiYWNrIHRvIHRoZSBET00gYmVmb3JlIGNhbmNlbGxpbmdcbiAgICAgKiB0aGUgYW5pbWF0aW9uLlxuICAgICAqXG4gICAgICogVGhpcyBpcyBkZXNpZ25lZCB0byBiZSBvdmVycmlkZGVuIGJ5IE5hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkLCB3aGljaFxuICAgICAqIHdpbGwgY3JlYXRlIGEgcmVuZGVybGVzcyBKUyBhbmltYXRpb24gYW5kIHNhbXBsZSBpdCB0d2ljZSB0byBjYWxjdWxhdGVcbiAgICAgKiBpdHMgY3VycmVudCB2YWx1ZSwgXCJwcmV2aW91c1wiIHZhbHVlLCBhbmQgdGhlcmVmb3JlIGFsbG93XG4gICAgICogTW90aW9uIHRvIGFsc28gY29ycmVjdGx5IGNhbGN1bGF0ZSB2ZWxvY2l0eSBmb3IgYW55IHN1YnNlcXVlbnQgYW5pbWF0aW9uXG4gICAgICogd2hpbGUgZGVmZXJyaW5nIHRoZSBjb21taXQgdW50aWwgdGhlIG5leHQgYW5pbWF0aW9uIGZyYW1lLlxuICAgICAqL1xuICAgIGNvbW1pdFN0eWxlcygpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMub3B0aW9ucz8uZWxlbWVudDtcbiAgICAgICAgaWYgKCF0aGlzLmlzUHNldWRvRWxlbWVudCAmJiBlbGVtZW50Py5pc0Nvbm5lY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uY29tbWl0U3R5bGVzPy4oKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgZHVyYXRpb24oKSB7XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5hbmltYXRpb24uZWZmZWN0Py5nZXRDb21wdXRlZFRpbWluZz8uKCkuZHVyYXRpb24gfHwgMDtcbiAgICAgICAgcmV0dXJuIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyhOdW1iZXIoZHVyYXRpb24pKTtcbiAgICB9XG4gICAgZ2V0IGl0ZXJhdGlvbkR1cmF0aW9uKCkge1xuICAgICAgICBjb25zdCB7IGRlbGF5ID0gMCB9ID0gdGhpcy5vcHRpb25zIHx8IHt9O1xuICAgICAgICByZXR1cm4gdGhpcy5kdXJhdGlvbiArIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyhkZWxheSk7XG4gICAgfVxuICAgIGdldCB0aW1lKCkge1xuICAgICAgICByZXR1cm4gbWlsbGlzZWNvbmRzVG9TZWNvbmRzKE51bWJlcih0aGlzLmFuaW1hdGlvbi5jdXJyZW50VGltZSkgfHwgMCk7XG4gICAgfVxuICAgIHNldCB0aW1lKG5ld1RpbWUpIHtcbiAgICAgICAgdGhpcy5tYW51YWxTdGFydFRpbWUgPSBudWxsO1xuICAgICAgICB0aGlzLmZpbmlzaGVkVGltZSA9IG51bGw7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLmN1cnJlbnRUaW1lID0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKG5ld1RpbWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGUgcGxheWJhY2sgc3BlZWQgb2YgdGhlIGFuaW1hdGlvbi5cbiAgICAgKiAxID0gbm9ybWFsIHNwZWVkLCAyID0gZG91YmxlIHNwZWVkLCAwLjUgPSBoYWxmIHNwZWVkLlxuICAgICAqL1xuICAgIGdldCBzcGVlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLnBsYXliYWNrUmF0ZTtcbiAgICB9XG4gICAgc2V0IHNwZWVkKG5ld1NwZWVkKSB7XG4gICAgICAgIC8vIEFsbG93IGJhY2t3YXJkcyBwbGF5YmFjayBhZnRlciBmaW5pc2hpbmdcbiAgICAgICAgaWYgKG5ld1NwZWVkIDwgMClcbiAgICAgICAgICAgIHRoaXMuZmluaXNoZWRUaW1lID0gbnVsbDtcbiAgICAgICAgdGhpcy5hbmltYXRpb24ucGxheWJhY2tSYXRlID0gbmV3U3BlZWQ7XG4gICAgfVxuICAgIGdldCBzdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluaXNoZWRUaW1lICE9PSBudWxsXG4gICAgICAgICAgICA/IFwiZmluaXNoZWRcIlxuICAgICAgICAgICAgOiB0aGlzLmFuaW1hdGlvbi5wbGF5U3RhdGU7XG4gICAgfVxuICAgIGdldCBzdGFydFRpbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hbnVhbFN0YXJ0VGltZSA/PyBOdW1iZXIodGhpcy5hbmltYXRpb24uc3RhcnRUaW1lKTtcbiAgICB9XG4gICAgc2V0IHN0YXJ0VGltZShuZXdTdGFydFRpbWUpIHtcbiAgICAgICAgdGhpcy5tYW51YWxTdGFydFRpbWUgPSB0aGlzLmFuaW1hdGlvbi5zdGFydFRpbWUgPSBuZXdTdGFydFRpbWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEF0dGFjaGVzIGEgdGltZWxpbmUgdG8gdGhlIGFuaW1hdGlvbiwgZm9yIGluc3RhbmNlIHRoZSBgU2Nyb2xsVGltZWxpbmVgLlxuICAgICAqL1xuICAgIGF0dGFjaFRpbWVsaW5lKHsgdGltZWxpbmUsIG9ic2VydmUgfSkge1xuICAgICAgICBpZiAodGhpcy5hbGxvd0ZsYXR0ZW4pIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLmVmZmVjdD8udXBkYXRlVGltaW5nKHsgZWFzaW5nOiBcImxpbmVhclwiIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLm9uZmluaXNoID0gbnVsbDtcbiAgICAgICAgaWYgKHRpbWVsaW5lICYmIHN1cHBvcnRzU2Nyb2xsVGltZWxpbmUoKSkge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24udGltZWxpbmUgPSB0aW1lbGluZTtcbiAgICAgICAgICAgIHJldHVybiBub29wO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG9ic2VydmUodGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCB7IE5hdGl2ZUFuaW1hdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TmF0aXZlQW5pbWF0aW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.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 */ NativeAnimationExtended: () => (/* binding */ NativeAnimationExtended)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./JSAnimation.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var _NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NativeAnimation.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs\");\n/* harmony import */ var _utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/replace-transition-type.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\");\n/* harmony import */ var _waapi_utils_unsupported_easing_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./waapi/utils/unsupported-easing.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs\");\n\n\n\n\n\n\n\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\nclass NativeAnimationExtended extends _NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_0__.NativeAnimation {\n constructor(options) {\n /**\n * The base NativeAnimation function only supports a subset\n * of Motion easings, and WAAPI also only supports some\n * easing functions via string/cubic-bezier definitions.\n *\n * This function replaces those unsupported easing functions\n * with a JS easing function. This will later get compiled\n * to a linear() easing function.\n */\n (0,_waapi_utils_unsupported_easing_mjs__WEBPACK_IMPORTED_MODULE_1__.replaceStringEasing)(options);\n /**\n * Ensure we replace the transition type with a generator function\n * before passing to WAAPI.\n *\n * TODO: Does this have a better home? It could be shared with\n * JSAnimation.\n */\n (0,_utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_2__.replaceTransitionType)(options);\n super(options);\n if (options.startTime !== undefined) {\n this.startTime = options.startTime;\n }\n this.options = options;\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read committed styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n updateMotionValue(value) {\n const { motionValue, onUpdate, onComplete, element, ...options } = this.options;\n if (!motionValue)\n return;\n if (value !== undefined) {\n motionValue.set(value);\n return;\n }\n const sampleAnimation = new _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_3__.JSAnimation({\n ...options,\n autoplay: false,\n });\n /**\n * Use wall-clock elapsed time for sampling.\n * Under CPU load, WAAPI's currentTime may not reflect actual\n * elapsed time, causing incorrect sampling and visual jumps.\n */\n const sampleTime = Math.max(sampleDelta, _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_4__.time.now() - this.startTime);\n const delta = (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.clamp)(0, sampleDelta, sampleTime - sampleDelta);\n motionValue.setWithVelocity(sampleAnimation.sample(Math.max(0, sampleTime - delta)).value, sampleAnimation.sample(sampleTime).value, delta);\n sampleAnimation.stop();\n }\n}\n\n\n//# sourceMappingURL=NativeAnimationExtended.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9OYXRpdmVBbmltYXRpb25FeHRlbmRlZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFxQztBQUNhO0FBQ0Y7QUFDUTtBQUNvQjtBQUNEOztBQUUzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCLHNDQUFzQyxpRUFBZTtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0ZBQW1CO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx5RkFBcUI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHlEQUF5RDtBQUN6RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MseURBQVc7QUFDL0M7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaURBQWlELDBEQUFJO0FBQ3JELHNCQUFzQixtREFBSztBQUMzQjtBQUNBO0FBQ0E7QUFDQTs7QUFFbUM7QUFDbkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9OYXRpdmVBbmltYXRpb25FeHRlbmRlZC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xhbXAgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgdGltZSB9IGZyb20gJy4uL2ZyYW1lbG9vcC9zeW5jLXRpbWUubWpzJztcbmltcG9ydCB7IEpTQW5pbWF0aW9uIH0gZnJvbSAnLi9KU0FuaW1hdGlvbi5tanMnO1xuaW1wb3J0IHsgTmF0aXZlQW5pbWF0aW9uIH0gZnJvbSAnLi9OYXRpdmVBbmltYXRpb24ubWpzJztcbmltcG9ydCB7IHJlcGxhY2VUcmFuc2l0aW9uVHlwZSB9IGZyb20gJy4vdXRpbHMvcmVwbGFjZS10cmFuc2l0aW9uLXR5cGUubWpzJztcbmltcG9ydCB7IHJlcGxhY2VTdHJpbmdFYXNpbmcgfSBmcm9tICcuL3dhYXBpL3V0aWxzL3Vuc3VwcG9ydGVkLWVhc2luZy5tanMnO1xuXG4vKipcbiAqIDEwbXMgaXMgY2hvc2VuIGhlcmUgYXMgaXQgc3RyaWtlcyBhIGJhbGFuY2UgYmV0d2VlbiBzbW9vdGhcbiAqIHJlc3VsdHMgKG1vcmUgdGhhbiBvbmUga2V5ZnJhbWUgcGVyIGZyYW1lIGF0IDYwZnBzKSBhbmRcbiAqIGtleWZyYW1lIHF1YW50aXR5LlxuICovXG5jb25zdCBzYW1wbGVEZWx0YSA9IDEwOyAvL21zXG5jbGFzcyBOYXRpdmVBbmltYXRpb25FeHRlbmRlZCBleHRlbmRzIE5hdGl2ZUFuaW1hdGlvbiB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGJhc2UgTmF0aXZlQW5pbWF0aW9uIGZ1bmN0aW9uIG9ubHkgc3VwcG9ydHMgYSBzdWJzZXRcbiAgICAgICAgICogb2YgTW90aW9uIGVhc2luZ3MsIGFuZCBXQUFQSSBhbHNvIG9ubHkgc3VwcG9ydHMgc29tZVxuICAgICAgICAgKiBlYXNpbmcgZnVuY3Rpb25zIHZpYSBzdHJpbmcvY3ViaWMtYmV6aWVyIGRlZmluaXRpb25zLlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGlzIGZ1bmN0aW9uIHJlcGxhY2VzIHRob3NlIHVuc3VwcG9ydGVkIGVhc2luZyBmdW5jdGlvbnNcbiAgICAgICAgICogd2l0aCBhIEpTIGVhc2luZyBmdW5jdGlvbi4gVGhpcyB3aWxsIGxhdGVyIGdldCBjb21waWxlZFxuICAgICAgICAgKiB0byBhIGxpbmVhcigpIGVhc2luZyBmdW5jdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIHJlcGxhY2VTdHJpbmdFYXNpbmcob3B0aW9ucyk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBFbnN1cmUgd2UgcmVwbGFjZSB0aGUgdHJhbnNpdGlvbiB0eXBlIHdpdGggYSBnZW5lcmF0b3IgZnVuY3Rpb25cbiAgICAgICAgICogYmVmb3JlIHBhc3NpbmcgdG8gV0FBUEkuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRPRE86IERvZXMgdGhpcyBoYXZlIGEgYmV0dGVyIGhvbWU/IEl0IGNvdWxkIGJlIHNoYXJlZCB3aXRoXG4gICAgICAgICAqIEpTQW5pbWF0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgcmVwbGFjZVRyYW5zaXRpb25UeXBlKG9wdGlvbnMpO1xuICAgICAgICBzdXBlcihvcHRpb25zKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuc3RhcnRUaW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gb3B0aW9ucy5zdGFydFRpbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG4gICAgLyoqXG4gICAgICogV0FBUEkgZG9lc24ndCBuYXRpdmVseSBoYXZlIGFueSBpbnRlcnJ1cHRpb24gY2FwYWJpbGl0aWVzLlxuICAgICAqXG4gICAgICogUmF0aGVyIHRoYW4gcmVhZCBjb21taXR0ZWQgc3R5bGVzIGJhY2sgb3V0IG9mIHRoZSBET00sIHdlIGNhblxuICAgICAqIGNyZWF0ZSBhIHJlbmRlcmxlc3MgSlMgYW5pbWF0aW9uIGFuZCBzYW1wbGUgaXQgdHdpY2UgdG8gY2FsY3VsYXRlXG4gICAgICogaXRzIGN1cnJlbnQgdmFsdWUsIFwicHJldmlvdXNcIiB2YWx1ZSwgYW5kIHRoZXJlZm9yZSBhbGxvd1xuICAgICAqIE1vdGlvbiB0byBjYWxjdWxhdGUgdmVsb2NpdHkgZm9yIGFueSBzdWJzZXF1ZW50IGFuaW1hdGlvbi5cbiAgICAgKi9cbiAgICB1cGRhdGVNb3Rpb25WYWx1ZSh2YWx1ZSkge1xuICAgICAgICBjb25zdCB7IG1vdGlvblZhbHVlLCBvblVwZGF0ZSwgb25Db21wbGV0ZSwgZWxlbWVudCwgLi4ub3B0aW9ucyB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBpZiAoIW1vdGlvblZhbHVlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbW90aW9uVmFsdWUuc2V0KHZhbHVlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzYW1wbGVBbmltYXRpb24gPSBuZXcgSlNBbmltYXRpb24oe1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2Ugd2FsbC1jbG9jayBlbGFwc2VkIHRpbWUgZm9yIHNhbXBsaW5nLlxuICAgICAgICAgKiBVbmRlciBDUFUgbG9hZCwgV0FBUEkncyBjdXJyZW50VGltZSBtYXkgbm90IHJlZmxlY3QgYWN0dWFsXG4gICAgICAgICAqIGVsYXBzZWQgdGltZSwgY2F1c2luZyBpbmNvcnJlY3Qgc2FtcGxpbmcgYW5kIHZpc3VhbCBqdW1wcy5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHNhbXBsZVRpbWUgPSBNYXRoLm1heChzYW1wbGVEZWx0YSwgdGltZS5ub3coKSAtIHRoaXMuc3RhcnRUaW1lKTtcbiAgICAgICAgY29uc3QgZGVsdGEgPSBjbGFtcCgwLCBzYW1wbGVEZWx0YSwgc2FtcGxlVGltZSAtIHNhbXBsZURlbHRhKTtcbiAgICAgICAgbW90aW9uVmFsdWUuc2V0V2l0aFZlbG9jaXR5KHNhbXBsZUFuaW1hdGlvbi5zYW1wbGUoTWF0aC5tYXgoMCwgc2FtcGxlVGltZSAtIGRlbHRhKSkudmFsdWUsIHNhbXBsZUFuaW1hdGlvbi5zYW1wbGUoc2FtcGxlVGltZSkudmFsdWUsIGRlbHRhKTtcbiAgICAgICAgc2FtcGxlQW5pbWF0aW9uLnN0b3AoKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IE5hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXRpdmVBbmltYXRpb25FeHRlbmRlZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/animate/single-value.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/animate/single-value.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 */ animateSingleValue: () => (/* binding */ animateSingleValue)\n/* harmony export */ });\n/* harmony import */ var _interfaces_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../interfaces/motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\");\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/utils/is-motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\n\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) ? value : (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_1__.motionValue)(value);\n motionValue$1.start((0,_interfaces_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__.animateMotionValue)(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\n\n//# sourceMappingURL=single-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9hbmltYXRlL3NpbmdsZS12YWx1ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFvRTtBQUNoQjtBQUNrQjs7QUFFdEU7QUFDQSwwQkFBMEIsK0VBQWEsa0JBQWtCLDZEQUFXO0FBQ3BFLHdCQUF3QixnRkFBa0I7QUFDMUM7QUFDQTs7QUFFOEI7QUFDOUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9hbmltYXRlL3NpbmdsZS12YWx1ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZU1vdGlvblZhbHVlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9tb3Rpb24tdmFsdWUubWpzJztcbmltcG9ydCB7IG1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvaW5kZXgubWpzJztcbmltcG9ydCB7IGlzTW90aW9uVmFsdWUgfSBmcm9tICcuLi8uLi92YWx1ZS91dGlscy9pcy1tb3Rpb24tdmFsdWUubWpzJztcblxuZnVuY3Rpb24gYW5pbWF0ZVNpbmdsZVZhbHVlKHZhbHVlLCBrZXlmcmFtZXMsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBtb3Rpb25WYWx1ZSQxID0gaXNNb3Rpb25WYWx1ZSh2YWx1ZSkgPyB2YWx1ZSA6IG1vdGlvblZhbHVlKHZhbHVlKTtcbiAgICBtb3Rpb25WYWx1ZSQxLnN0YXJ0KGFuaW1hdGVNb3Rpb25WYWx1ZShcIlwiLCBtb3Rpb25WYWx1ZSQxLCBrZXlmcmFtZXMsIG9wdGlvbnMpKTtcbiAgICByZXR1cm4gbW90aW9uVmFsdWUkMS5hbmltYXRpb247XG59XG5cbmV4cG9ydCB7IGFuaW1hdGVTaW5nbGVWYWx1ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2luZ2xlLXZhbHVlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/animate/single-value.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/drivers/frame.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 */ frameloopDriver: () => (/* binding */ frameloopDriver)\n/* harmony export */ });\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../frameloop/sync-time.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: (keepAlive = true) => _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frame.update(passTimestamp, keepAlive),\n stop: () => (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.cancelFrame)(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => (_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.isProcessing ? _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.timestamp : _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now()),\n };\n};\n\n\n//# sourceMappingURL=frame.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9kcml2ZXJzL2ZyYW1lLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBcUQ7QUFDcUI7O0FBRTFFO0FBQ0EsNkJBQTZCLFdBQVc7QUFDeEM7QUFDQSxxQ0FBcUMsdURBQUs7QUFDMUMsb0JBQW9CLGlFQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDJEQUFTLGdCQUFnQiwyREFBUyxhQUFhLDBEQUFJO0FBQ3ZFO0FBQ0E7O0FBRTJCO0FBQzNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vZHJpdmVycy9mcmFtZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGltZSB9IGZyb20gJy4uLy4uL2ZyYW1lbG9vcC9zeW5jLXRpbWUubWpzJztcbmltcG9ydCB7IGZyYW1lLCBjYW5jZWxGcmFtZSwgZnJhbWVEYXRhIH0gZnJvbSAnLi4vLi4vZnJhbWVsb29wL2ZyYW1lLm1qcyc7XG5cbmNvbnN0IGZyYW1lbG9vcERyaXZlciA9ICh1cGRhdGUpID0+IHtcbiAgICBjb25zdCBwYXNzVGltZXN0YW1wID0gKHsgdGltZXN0YW1wIH0pID0+IHVwZGF0ZSh0aW1lc3RhbXApO1xuICAgIHJldHVybiB7XG4gICAgICAgIHN0YXJ0OiAoa2VlcEFsaXZlID0gdHJ1ZSkgPT4gZnJhbWUudXBkYXRlKHBhc3NUaW1lc3RhbXAsIGtlZXBBbGl2ZSksXG4gICAgICAgIHN0b3A6ICgpID0+IGNhbmNlbEZyYW1lKHBhc3NUaW1lc3RhbXApLFxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgd2UncmUgcHJvY2Vzc2luZyB0aGlzIGZyYW1lIHdlIGNhbiB1c2UgdGhlXG4gICAgICAgICAqIGZyYW1lbG9ja2VkIHRpbWVzdGFtcCB0byBrZWVwIHRoaW5ncyBpbiBzeW5jLlxuICAgICAgICAgKi9cbiAgICAgICAgbm93OiAoKSA9PiAoZnJhbWVEYXRhLmlzUHJvY2Vzc2luZyA/IGZyYW1lRGF0YS50aW1lc3RhbXAgOiB0aW1lLm5vdygpKSxcbiAgICB9O1xufTtcblxuZXhwb3J0IHsgZnJhbWVsb29wRHJpdmVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mcmFtZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/inertia.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 */ inertia: () => (/* binding */ inertia)\n/* harmony export */ });\n/* harmony import */ var _spring_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./spring/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\");\n/* harmony import */ var _utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/velocity.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\");\n\n\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = (0,_spring_index_mjs__WEBPACK_IMPORTED_MODULE_0__.spring)({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: (0,_utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_1__.calcGeneratorVelocity)(calcLatest, t, state.value), // TODO: This should be passing * 1000\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\n\n//# sourceMappingURL=inertia.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL2luZXJ0aWEubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE0QztBQUNpQjs7QUFFN0QsbUJBQW1CLDRKQUE0SjtBQUMvSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIseURBQU07QUFDekI7QUFDQSxzQkFBc0IsMEVBQXFCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRW1CO0FBQ25CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vZ2VuZXJhdG9ycy9pbmVydGlhLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzcHJpbmcgfSBmcm9tICcuL3NwcmluZy9pbmRleC5tanMnO1xuaW1wb3J0IHsgY2FsY0dlbmVyYXRvclZlbG9jaXR5IH0gZnJvbSAnLi91dGlscy92ZWxvY2l0eS5tanMnO1xuXG5mdW5jdGlvbiBpbmVydGlhKHsga2V5ZnJhbWVzLCB2ZWxvY2l0eSA9IDAuMCwgcG93ZXIgPSAwLjgsIHRpbWVDb25zdGFudCA9IDMyNSwgYm91bmNlRGFtcGluZyA9IDEwLCBib3VuY2VTdGlmZm5lc3MgPSA1MDAsIG1vZGlmeVRhcmdldCwgbWluLCBtYXgsIHJlc3REZWx0YSA9IDAuNSwgcmVzdFNwZWVkLCB9KSB7XG4gICAgY29uc3Qgb3JpZ2luID0ga2V5ZnJhbWVzWzBdO1xuICAgIGNvbnN0IHN0YXRlID0ge1xuICAgICAgICBkb25lOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6IG9yaWdpbixcbiAgICB9O1xuICAgIGNvbnN0IGlzT3V0T2ZCb3VuZHMgPSAodikgPT4gKG1pbiAhPT0gdW5kZWZpbmVkICYmIHYgPCBtaW4pIHx8IChtYXggIT09IHVuZGVmaW5lZCAmJiB2ID4gbWF4KTtcbiAgICBjb25zdCBuZWFyZXN0Qm91bmRhcnkgPSAodikgPT4ge1xuICAgICAgICBpZiAobWluID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXR1cm4gbWF4O1xuICAgICAgICBpZiAobWF4ID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXR1cm4gbWluO1xuICAgICAgICByZXR1cm4gTWF0aC5hYnMobWluIC0gdikgPCBNYXRoLmFicyhtYXggLSB2KSA/IG1pbiA6IG1heDtcbiAgICB9O1xuICAgIGxldCBhbXBsaXR1ZGUgPSBwb3dlciAqIHZlbG9jaXR5O1xuICAgIGNvbnN0IGlkZWFsID0gb3JpZ2luICsgYW1wbGl0dWRlO1xuICAgIGNvbnN0IHRhcmdldCA9IG1vZGlmeVRhcmdldCA9PT0gdW5kZWZpbmVkID8gaWRlYWwgOiBtb2RpZnlUYXJnZXQoaWRlYWwpO1xuICAgIC8qKlxuICAgICAqIElmIHRoZSB0YXJnZXQgaGFzIGNoYW5nZWQgd2UgbmVlZCB0byByZS1jYWxjdWxhdGUgdGhlIGFtcGxpdHVkZSwgb3RoZXJ3aXNlXG4gICAgICogdGhlIGFuaW1hdGlvbiB3aWxsIHN0YXJ0IGZyb20gdGhlIHdyb25nIHBvc2l0aW9uLlxuICAgICAqL1xuICAgIGlmICh0YXJnZXQgIT09IGlkZWFsKVxuICAgICAgICBhbXBsaXR1ZGUgPSB0YXJnZXQgLSBvcmlnaW47XG4gICAgY29uc3QgY2FsY0RlbHRhID0gKHQpID0+IC1hbXBsaXR1ZGUgKiBNYXRoLmV4cCgtdCAvIHRpbWVDb25zdGFudCk7XG4gICAgY29uc3QgY2FsY0xhdGVzdCA9ICh0KSA9PiB0YXJnZXQgKyBjYWxjRGVsdGEodCk7XG4gICAgY29uc3QgYXBwbHlGcmljdGlvbiA9ICh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGRlbHRhID0gY2FsY0RlbHRhKHQpO1xuICAgICAgICBjb25zdCBsYXRlc3QgPSBjYWxjTGF0ZXN0KHQpO1xuICAgICAgICBzdGF0ZS5kb25lID0gTWF0aC5hYnMoZGVsdGEpIDw9IHJlc3REZWx0YTtcbiAgICAgICAgc3RhdGUudmFsdWUgPSBzdGF0ZS5kb25lID8gdGFyZ2V0IDogbGF0ZXN0O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogSWRlYWxseSB0aGlzIHdvdWxkIHJlc29sdmUgZm9yIHQgaW4gYSBzdGF0ZWxlc3Mgd2F5LCB3ZSBjb3VsZFxuICAgICAqIGRvIHRoYXQgYnkgYWx3YXlzIHByZWNhbGN1bGF0aW5nIHRoZSBhbmltYXRpb24gYnV0IGFzIHdlIGtub3dcbiAgICAgKiB0aGlzIHdpbGwgYmUgZG9uZSBhbnl3YXkgd2UgY2FuIGFzc3VtZSB0aGF0IHNwcmluZyB3aWxsXG4gICAgICogYmUgZGlzY292ZXJlZCBkdXJpbmcgdGhhdC5cbiAgICAgKi9cbiAgICBsZXQgdGltZVJlYWNoZWRCb3VuZGFyeTtcbiAgICBsZXQgc3ByaW5nJDE7XG4gICAgY29uc3QgY2hlY2tDYXRjaEJvdW5kYXJ5ID0gKHQpID0+IHtcbiAgICAgICAgaWYgKCFpc091dE9mQm91bmRzKHN0YXRlLnZhbHVlKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGltZVJlYWNoZWRCb3VuZGFyeSA9IHQ7XG4gICAgICAgIHNwcmluZyQxID0gc3ByaW5nKHtcbiAgICAgICAgICAgIGtleWZyYW1lczogW3N0YXRlLnZhbHVlLCBuZWFyZXN0Qm91bmRhcnkoc3RhdGUudmFsdWUpXSxcbiAgICAgICAgICAgIHZlbG9jaXR5OiBjYWxjR2VuZXJhdG9yVmVsb2NpdHkoY2FsY0xhdGVzdCwgdCwgc3RhdGUudmFsdWUpLCAvLyBUT0RPOiBUaGlzIHNob3VsZCBiZSBwYXNzaW5nICogMTAwMFxuICAgICAgICAgICAgZGFtcGluZzogYm91bmNlRGFtcGluZyxcbiAgICAgICAgICAgIHN0aWZmbmVzczogYm91bmNlU3RpZmZuZXNzLFxuICAgICAgICAgICAgcmVzdERlbHRhLFxuICAgICAgICAgICAgcmVzdFNwZWVkLFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNoZWNrQ2F0Y2hCb3VuZGFyeSgwKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjYWxjdWxhdGVkRHVyYXRpb246IG51bGwsXG4gICAgICAgIG5leHQ6ICh0KSA9PiB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFdlIG5lZWQgdG8gcmVzb2x2ZSB0aGUgZnJpY3Rpb24gdG8gZmlndXJlIG91dCBpZiB3ZSBuZWVkIGFcbiAgICAgICAgICAgICAqIHNwcmluZyBidXQgd2UgZG9uJ3Qgd2FudCB0byBkbyB0aGlzIHR3aWNlIHBlciBmcmFtZS4gU28gaGVyZVxuICAgICAgICAgICAgICogd2UgZmxhZyBpZiB3ZSB1cGRhdGVkIGZvciB0aGlzIGZyYW1lIGFuZCBsYXRlciBpZiB3ZSBkaWRcbiAgICAgICAgICAgICAqIHdlIGNhbiBza2lwIGRvaW5nIGl0IGFnYWluLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsZXQgaGFzVXBkYXRlZEZyYW1lID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoIXNwcmluZyQxICYmIHRpbWVSZWFjaGVkQm91bmRhcnkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGhhc1VwZGF0ZWRGcmFtZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYXBwbHlGcmljdGlvbih0KTtcbiAgICAgICAgICAgICAgICBjaGVja0NhdGNoQm91bmRhcnkodCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlIGhhdmUgYSBzcHJpbmcgYW5kIHRoZSBwcm92aWRlZCB0IGlzIGJleW9uZCB0aGUgbW9tZW50IHRoZSBmcmljdGlvblxuICAgICAgICAgICAgICogYW5pbWF0aW9uIGNyb3NzZWQgdGhlIG1pbi9tYXggYm91bmRhcnksIHVzZSB0aGUgc3ByaW5nLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGltZVJlYWNoZWRCb3VuZGFyeSAhPT0gdW5kZWZpbmVkICYmIHQgPj0gdGltZVJlYWNoZWRCb3VuZGFyeSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzcHJpbmckMS5uZXh0KHQgLSB0aW1lUmVhY2hlZEJvdW5kYXJ5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICFoYXNVcGRhdGVkRnJhbWUgJiYgYXBwbHlGcmljdGlvbih0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfTtcbn1cblxuZXhwb3J0IHsgaW5lcnRpYSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5lcnRpYS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/keyframes.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 */ defaultEasing: () => (/* binding */ defaultEasing),\n/* harmony export */ keyframes: () => (/* binding */ keyframes)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/ease.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs\");\n/* harmony import */ var _utils_interpolate_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/interpolate.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs\");\n/* harmony import */ var _keyframes_offsets_default_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../keyframes/offsets/default.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs\");\n/* harmony import */ var _keyframes_offsets_time_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../keyframes/offsets/time.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs\");\n\n\n\n\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || motion_utils__WEBPACK_IMPORTED_MODULE_0__.easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.isEasingArray)(ease)\n ? ease.map(motion_utils__WEBPACK_IMPORTED_MODULE_2__.easingDefinitionToFunction)\n : (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.easingDefinitionToFunction)(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = (0,_keyframes_offsets_time_mjs__WEBPACK_IMPORTED_MODULE_3__.convertOffsetToTimes)(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : (0,_keyframes_offsets_default_mjs__WEBPACK_IMPORTED_MODULE_4__.defaultOffset)(keyframeValues), duration);\n const mapTimeToKeyframe = (0,_utils_interpolate_mjs__WEBPACK_IMPORTED_MODULE_5__.interpolate)(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\n\n//# sourceMappingURL=keyframes.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL2tleWZyYW1lcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBb0Y7QUFDMUI7QUFDTztBQUNJOztBQUVyRTtBQUNBLHNDQUFzQyxtREFBUztBQUMvQztBQUNBLHFCQUFxQix1RUFBdUU7QUFDNUY7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsMkRBQWE7QUFDekMsbUJBQW1CLG9FQUEwQjtBQUM3QyxVQUFVLHdFQUEwQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLGlGQUFvQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsNkVBQWE7QUFDdkIsOEJBQThCLG1FQUFXO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFb0M7QUFDcEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL2tleWZyYW1lcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZWFzZUluT3V0LCBpc0Vhc2luZ0FycmF5LCBlYXNpbmdEZWZpbml0aW9uVG9GdW5jdGlvbiB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBpbnRlcnBvbGF0ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2ludGVycG9sYXRlLm1qcyc7XG5pbXBvcnQgeyBkZWZhdWx0T2Zmc2V0IH0gZnJvbSAnLi4va2V5ZnJhbWVzL29mZnNldHMvZGVmYXVsdC5tanMnO1xuaW1wb3J0IHsgY29udmVydE9mZnNldFRvVGltZXMgfSBmcm9tICcuLi9rZXlmcmFtZXMvb2Zmc2V0cy90aW1lLm1qcyc7XG5cbmZ1bmN0aW9uIGRlZmF1bHRFYXNpbmcodmFsdWVzLCBlYXNpbmcpIHtcbiAgICByZXR1cm4gdmFsdWVzLm1hcCgoKSA9PiBlYXNpbmcgfHwgZWFzZUluT3V0KS5zcGxpY2UoMCwgdmFsdWVzLmxlbmd0aCAtIDEpO1xufVxuZnVuY3Rpb24ga2V5ZnJhbWVzKHsgZHVyYXRpb24gPSAzMDAsIGtleWZyYW1lczoga2V5ZnJhbWVWYWx1ZXMsIHRpbWVzLCBlYXNlID0gXCJlYXNlSW5PdXRcIiwgfSkge1xuICAgIC8qKlxuICAgICAqIEVhc2luZyBmdW5jdGlvbnMgY2FuIGJlIGV4dGVybmFsbHkgZGVmaW5lZCBhcyBzdHJpbmdzLiBIZXJlIHdlIGNvbnZlcnQgdGhlbVxuICAgICAqIGludG8gYWN0dWFsIGZ1bmN0aW9ucy5cbiAgICAgKi9cbiAgICBjb25zdCBlYXNpbmdGdW5jdGlvbnMgPSBpc0Vhc2luZ0FycmF5KGVhc2UpXG4gICAgICAgID8gZWFzZS5tYXAoZWFzaW5nRGVmaW5pdGlvblRvRnVuY3Rpb24pXG4gICAgICAgIDogZWFzaW5nRGVmaW5pdGlvblRvRnVuY3Rpb24oZWFzZSk7XG4gICAgLyoqXG4gICAgICogVGhpcyBpcyB0aGUgSXRlcmF0b3Itc3BlYyByZXR1cm4gdmFsdWUuIFdlIGVuc3VyZSBpdCdzIG11dGFibGUgcmF0aGVyIHRoYW4gdXNpbmcgYSBnZW5lcmF0b3JcbiAgICAgKiB0byByZWR1Y2UgR0MgZHVyaW5nIGFuaW1hdGlvbi5cbiAgICAgKi9cbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgZG9uZTogZmFsc2UsXG4gICAgICAgIHZhbHVlOiBrZXlmcmFtZVZhbHVlc1swXSxcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIENyZWF0ZSBhIHRpbWVzIGFycmF5IGJhc2VkIG9uIHRoZSBwcm92aWRlZCAwLTEgb2Zmc2V0c1xuICAgICAqL1xuICAgIGNvbnN0IGFic29sdXRlVGltZXMgPSBjb252ZXJ0T2Zmc2V0VG9UaW1lcyhcbiAgICAvLyBPbmx5IHVzZSB0aGUgcHJvdmlkZWQgb2Zmc2V0cyBpZiB0aGV5J3JlIHRoZSBjb3JyZWN0IGxlbmd0aFxuICAgIC8vIFRPRE8gTWF5YmUgd2Ugc2hvdWxkIHdhcm4gaGVyZSBpZiB0aGVyZSdzIGEgbGVuZ3RoIG1pc21hdGNoXG4gICAgdGltZXMgJiYgdGltZXMubGVuZ3RoID09PSBrZXlmcmFtZVZhbHVlcy5sZW5ndGhcbiAgICAgICAgPyB0aW1lc1xuICAgICAgICA6IGRlZmF1bHRPZmZzZXQoa2V5ZnJhbWVWYWx1ZXMpLCBkdXJhdGlvbik7XG4gICAgY29uc3QgbWFwVGltZVRvS2V5ZnJhbWUgPSBpbnRlcnBvbGF0ZShhYnNvbHV0ZVRpbWVzLCBrZXlmcmFtZVZhbHVlcywge1xuICAgICAgICBlYXNlOiBBcnJheS5pc0FycmF5KGVhc2luZ0Z1bmN0aW9ucylcbiAgICAgICAgICAgID8gZWFzaW5nRnVuY3Rpb25zXG4gICAgICAgICAgICA6IGRlZmF1bHRFYXNpbmcoa2V5ZnJhbWVWYWx1ZXMsIGVhc2luZ0Z1bmN0aW9ucyksXG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgY2FsY3VsYXRlZER1cmF0aW9uOiBkdXJhdGlvbixcbiAgICAgICAgbmV4dDogKHQpID0+IHtcbiAgICAgICAgICAgIHN0YXRlLnZhbHVlID0gbWFwVGltZVRvS2V5ZnJhbWUodCk7XG4gICAgICAgICAgICBzdGF0ZS5kb25lID0gdCA+PSBkdXJhdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG5leHBvcnQgeyBkZWZhdWx0RWFzaW5nLCBrZXlmcmFtZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWtleWZyYW1lcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.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 */ springDefaults: () => (/* binding */ springDefaults)\n/* harmony export */ });\nconst springDefaults = {\n // Default spring physics\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n velocity: 0.0,\n // Default duration/bounce-based options\n duration: 800, // in ms\n bounce: 0.3,\n visualDuration: 0.3, // in seconds\n // Rest thresholds\n restSpeed: {\n granular: 0.01,\n default: 2,\n },\n restDelta: {\n granular: 0.005,\n default: 0.5,\n },\n // Limits\n minDuration: 0.01, // in seconds\n maxDuration: 10.0, // in seconds\n minDamping: 0.05,\n maxDamping: 1,\n};\n\n\n//# sourceMappingURL=defaults.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3NwcmluZy9kZWZhdWx0cy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMEI7QUFDMUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3NwcmluZy9kZWZhdWx0cy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgc3ByaW5nRGVmYXVsdHMgPSB7XG4gICAgLy8gRGVmYXVsdCBzcHJpbmcgcGh5c2ljc1xuICAgIHN0aWZmbmVzczogMTAwLFxuICAgIGRhbXBpbmc6IDEwLFxuICAgIG1hc3M6IDEuMCxcbiAgICB2ZWxvY2l0eTogMC4wLFxuICAgIC8vIERlZmF1bHQgZHVyYXRpb24vYm91bmNlLWJhc2VkIG9wdGlvbnNcbiAgICBkdXJhdGlvbjogODAwLCAvLyBpbiBtc1xuICAgIGJvdW5jZTogMC4zLFxuICAgIHZpc3VhbER1cmF0aW9uOiAwLjMsIC8vIGluIHNlY29uZHNcbiAgICAvLyBSZXN0IHRocmVzaG9sZHNcbiAgICByZXN0U3BlZWQ6IHtcbiAgICAgICAgZ3JhbnVsYXI6IDAuMDEsXG4gICAgICAgIGRlZmF1bHQ6IDIsXG4gICAgfSxcbiAgICByZXN0RGVsdGE6IHtcbiAgICAgICAgZ3JhbnVsYXI6IDAuMDA1LFxuICAgICAgICBkZWZhdWx0OiAwLjUsXG4gICAgfSxcbiAgICAvLyBMaW1pdHNcbiAgICBtaW5EdXJhdGlvbjogMC4wMSwgLy8gaW4gc2Vjb25kc1xuICAgIG1heER1cmF0aW9uOiAxMC4wLCAvLyBpbiBzZWNvbmRzXG4gICAgbWluRGFtcGluZzogMC4wNSxcbiAgICBtYXhEYW1waW5nOiAxLFxufTtcblxuZXhwb3J0IHsgc3ByaW5nRGVmYXVsdHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmF1bHRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/spring/find.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 */ calcAngularFreq: () => (/* binding */ calcAngularFreq),\n/* harmony export */ findSpring: () => (/* binding */ findSpring)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaults.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\");\n\n\n\nconst safeMin = 0.001;\nfunction findSpring({ duration = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.duration, bounce = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.bounce, velocity = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.velocity, mass = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass, }) {\n let envelope;\n let derivative;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warning)(duration <= (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDuration), \"Spring duration must be 10 seconds or less\", \"spring-duration-limit\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.minDamping, _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDamping, dampingRatio);\n duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.minDuration, _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDuration, (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.millisecondsToSeconds)(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.stiffness,\n damping: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.damping,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\n\n//# sourceMappingURL=find.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3NwcmluZy9maW5kLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBNEY7QUFDNUM7O0FBRWhEO0FBQ0Esc0JBQXNCLFdBQVcseURBQWMsb0JBQW9CLHlEQUFjLG9CQUFvQix5REFBYyxrQkFBa0IseURBQWMsUUFBUTtBQUMzSjtBQUNBO0FBQ0EsSUFBSSxxREFBTyxhQUFhLG1FQUFxQixDQUFDLHlEQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLG1EQUFLLENBQUMseURBQWMsYUFBYSx5REFBYztBQUNsRSxlQUFlLG1EQUFLLENBQUMseURBQWMsY0FBYyx5REFBYyxjQUFjLG1FQUFxQjtBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUVBQXFCO0FBQ3BDO0FBQ0E7QUFDQSx1QkFBdUIseURBQWM7QUFDckMscUJBQXFCLHlEQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixvQkFBb0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXVDO0FBQ3ZDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vZ2VuZXJhdG9ycy9zcHJpbmcvZmluZC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2FybmluZywgc2Vjb25kc1RvTWlsbGlzZWNvbmRzLCBjbGFtcCwgbWlsbGlzZWNvbmRzVG9TZWNvbmRzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IHNwcmluZ0RlZmF1bHRzIH0gZnJvbSAnLi9kZWZhdWx0cy5tanMnO1xuXG5jb25zdCBzYWZlTWluID0gMC4wMDE7XG5mdW5jdGlvbiBmaW5kU3ByaW5nKHsgZHVyYXRpb24gPSBzcHJpbmdEZWZhdWx0cy5kdXJhdGlvbiwgYm91bmNlID0gc3ByaW5nRGVmYXVsdHMuYm91bmNlLCB2ZWxvY2l0eSA9IHNwcmluZ0RlZmF1bHRzLnZlbG9jaXR5LCBtYXNzID0gc3ByaW5nRGVmYXVsdHMubWFzcywgfSkge1xuICAgIGxldCBlbnZlbG9wZTtcbiAgICBsZXQgZGVyaXZhdGl2ZTtcbiAgICB3YXJuaW5nKGR1cmF0aW9uIDw9IHNlY29uZHNUb01pbGxpc2Vjb25kcyhzcHJpbmdEZWZhdWx0cy5tYXhEdXJhdGlvbiksIFwiU3ByaW5nIGR1cmF0aW9uIG11c3QgYmUgMTAgc2Vjb25kcyBvciBsZXNzXCIsIFwic3ByaW5nLWR1cmF0aW9uLWxpbWl0XCIpO1xuICAgIGxldCBkYW1waW5nUmF0aW8gPSAxIC0gYm91bmNlO1xuICAgIC8qKlxuICAgICAqIFJlc3RyaWN0IGRhbXBpbmdSYXRpbyBhbmQgZHVyYXRpb24gdG8gd2l0aGluIGFjY2VwdGFibGUgcmFuZ2VzLlxuICAgICAqL1xuICAgIGRhbXBpbmdSYXRpbyA9IGNsYW1wKHNwcmluZ0RlZmF1bHRzLm1pbkRhbXBpbmcsIHNwcmluZ0RlZmF1bHRzLm1heERhbXBpbmcsIGRhbXBpbmdSYXRpbyk7XG4gICAgZHVyYXRpb24gPSBjbGFtcChzcHJpbmdEZWZhdWx0cy5taW5EdXJhdGlvbiwgc3ByaW5nRGVmYXVsdHMubWF4RHVyYXRpb24sIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyhkdXJhdGlvbikpO1xuICAgIGlmIChkYW1waW5nUmF0aW8gPCAxKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVbmRlcmRhbXBlZCBzcHJpbmdcbiAgICAgICAgICovXG4gICAgICAgIGVudmVsb3BlID0gKHVuZGFtcGVkRnJlcSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXhwb25lbnRpYWxEZWNheSA9IHVuZGFtcGVkRnJlcSAqIGRhbXBpbmdSYXRpbztcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gZXhwb25lbnRpYWxEZWNheSAqIGR1cmF0aW9uO1xuICAgICAgICAgICAgY29uc3QgYSA9IGV4cG9uZW50aWFsRGVjYXkgLSB2ZWxvY2l0eTtcbiAgICAgICAgICAgIGNvbnN0IGIgPSBjYWxjQW5ndWxhckZyZXEodW5kYW1wZWRGcmVxLCBkYW1waW5nUmF0aW8pO1xuICAgICAgICAgICAgY29uc3QgYyA9IE1hdGguZXhwKC1kZWx0YSk7XG4gICAgICAgICAgICByZXR1cm4gc2FmZU1pbiAtIChhIC8gYikgKiBjO1xuICAgICAgICB9O1xuICAgICAgICBkZXJpdmF0aXZlID0gKHVuZGFtcGVkRnJlcSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXhwb25lbnRpYWxEZWNheSA9IHVuZGFtcGVkRnJlcSAqIGRhbXBpbmdSYXRpbztcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhID0gZXhwb25lbnRpYWxEZWNheSAqIGR1cmF0aW9uO1xuICAgICAgICAgICAgY29uc3QgZCA9IGRlbHRhICogdmVsb2NpdHkgKyB2ZWxvY2l0eTtcbiAgICAgICAgICAgIGNvbnN0IGUgPSBNYXRoLnBvdyhkYW1waW5nUmF0aW8sIDIpICogTWF0aC5wb3codW5kYW1wZWRGcmVxLCAyKSAqIGR1cmF0aW9uO1xuICAgICAgICAgICAgY29uc3QgZiA9IE1hdGguZXhwKC1kZWx0YSk7XG4gICAgICAgICAgICBjb25zdCBnID0gY2FsY0FuZ3VsYXJGcmVxKE1hdGgucG93KHVuZGFtcGVkRnJlcSwgMiksIGRhbXBpbmdSYXRpbyk7XG4gICAgICAgICAgICBjb25zdCBmYWN0b3IgPSAtZW52ZWxvcGUodW5kYW1wZWRGcmVxKSArIHNhZmVNaW4gPiAwID8gLTEgOiAxO1xuICAgICAgICAgICAgcmV0dXJuIChmYWN0b3IgKiAoKGQgLSBlKSAqIGYpKSAvIGc7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvKipcbiAgICAgICAgICogQ3JpdGljYWxseS1kYW1wZWQgc3ByaW5nXG4gICAgICAgICAqL1xuICAgICAgICBlbnZlbG9wZSA9ICh1bmRhbXBlZEZyZXEpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGEgPSBNYXRoLmV4cCgtdW5kYW1wZWRGcmVxICogZHVyYXRpb24pO1xuICAgICAgICAgICAgY29uc3QgYiA9ICh1bmRhbXBlZEZyZXEgLSB2ZWxvY2l0eSkgKiBkdXJhdGlvbiArIDE7XG4gICAgICAgICAgICByZXR1cm4gLXNhZmVNaW4gKyBhICogYjtcbiAgICAgICAgfTtcbiAgICAgICAgZGVyaXZhdGl2ZSA9ICh1bmRhbXBlZEZyZXEpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGEgPSBNYXRoLmV4cCgtdW5kYW1wZWRGcmVxICogZHVyYXRpb24pO1xuICAgICAgICAgICAgY29uc3QgYiA9ICh2ZWxvY2l0eSAtIHVuZGFtcGVkRnJlcSkgKiAoZHVyYXRpb24gKiBkdXJhdGlvbik7XG4gICAgICAgICAgICByZXR1cm4gYSAqIGI7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IGluaXRpYWxHdWVzcyA9IDUgLyBkdXJhdGlvbjtcbiAgICBjb25zdCB1bmRhbXBlZEZyZXEgPSBhcHByb3hpbWF0ZVJvb3QoZW52ZWxvcGUsIGRlcml2YXRpdmUsIGluaXRpYWxHdWVzcyk7XG4gICAgZHVyYXRpb24gPSBzZWNvbmRzVG9NaWxsaXNlY29uZHMoZHVyYXRpb24pO1xuICAgIGlmIChpc05hTih1bmRhbXBlZEZyZXEpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGlmZm5lc3M6IHNwcmluZ0RlZmF1bHRzLnN0aWZmbmVzcyxcbiAgICAgICAgICAgIGRhbXBpbmc6IHNwcmluZ0RlZmF1bHRzLmRhbXBpbmcsXG4gICAgICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHN0aWZmbmVzcyA9IE1hdGgucG93KHVuZGFtcGVkRnJlcSwgMikgKiBtYXNzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc3RpZmZuZXNzLFxuICAgICAgICAgICAgZGFtcGluZzogZGFtcGluZ1JhdGlvICogMiAqIE1hdGguc3FydChtYXNzICogc3RpZmZuZXNzKSxcbiAgICAgICAgICAgIGR1cmF0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbn1cbmNvbnN0IHJvb3RJdGVyYXRpb25zID0gMTI7XG5mdW5jdGlvbiBhcHByb3hpbWF0ZVJvb3QoZW52ZWxvcGUsIGRlcml2YXRpdmUsIGluaXRpYWxHdWVzcykge1xuICAgIGxldCByZXN1bHQgPSBpbml0aWFsR3Vlc3M7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb290SXRlcmF0aW9uczsgaSsrKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCAtIGVudmVsb3BlKHJlc3VsdCkgLyBkZXJpdmF0aXZlKHJlc3VsdCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBjYWxjQW5ndWxhckZyZXEodW5kYW1wZWRGcmVxLCBkYW1waW5nUmF0aW8pIHtcbiAgICByZXR1cm4gdW5kYW1wZWRGcmVxICogTWF0aC5zcXJ0KDEgLSBkYW1waW5nUmF0aW8gKiBkYW1waW5nUmF0aW8pO1xufVxuXG5leHBvcnQgeyBjYWxjQW5ndWxhckZyZXEsIGZpbmRTcHJpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZpbmQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/spring/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 */ spring: () => (/* binding */ spring)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _waapi_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../waapi/utils/linear.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\");\n/* harmony import */ var _utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/calc-duration.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n/* harmony import */ var _utils_create_generator_easing_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/create-generator-easing.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs\");\n/* harmony import */ var _utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/velocity.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\");\n/* harmony import */ var _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaults.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\");\n/* harmony import */ var _find_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./find.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs\");\n\n\n\n\n\n\n\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.velocity,\n stiffness: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.stiffness,\n damping: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.damping,\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n if (options.visualDuration) {\n const visualDuration = options.visualDuration;\n const root = (2 * Math.PI) / (visualDuration * 1.2);\n const stiffness = root * root;\n const damping = 2 *\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.clamp)(0.05, 1, 1 - (options.bounce || 0)) *\n Math.sqrt(stiffness);\n springOptions = {\n ...springOptions,\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\n stiffness,\n damping,\n };\n }\n else {\n const derived = (0,_find_mjs__WEBPACK_IMPORTED_MODULE_2__.findSpring)(options);\n springOptions = {\n ...springOptions,\n ...derived,\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\n };\n springOptions.isResolvedFromDuration = true;\n }\n }\n return springOptions;\n}\nfunction spring(optionsOrVisualDuration = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.visualDuration, bounce = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.bounce) {\n const options = typeof optionsOrVisualDuration !== \"object\"\n ? {\n visualDuration: optionsOrVisualDuration,\n keyframes: [0, 1],\n bounce,\n }\n : optionsOrVisualDuration;\n let { restSpeed, restDelta } = options;\n const origin = options.keyframes[0];\n const target = options.keyframes[options.keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -(0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.millisecondsToSeconds)(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.millisecondsToSeconds)(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale\n ? _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restSpeed.granular\n : _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restSpeed.default);\n restDelta || (restDelta = isGranularScale\n ? _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restDelta.granular\n : _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restDelta.default);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = (0,_find_mjs__WEBPACK_IMPORTED_MODULE_2__.calcAngularFreq)(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n const generator = {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = t === 0 ? initialVelocity : 0.0;\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity =\n t === 0\n ? (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.secondsToMilliseconds)(initialVelocity)\n : (0,_utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_4__.calcGeneratorVelocity)(resolveSpring, t, current);\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n toString: () => {\n const calculatedDuration = Math.min((0,_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__.calcGeneratorDuration)(generator), _utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__.maxGeneratorDuration);\n const easing = (0,_waapi_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_6__.generateLinearEasing)((progress) => generator.next(calculatedDuration * progress).value, calculatedDuration, 30);\n return calculatedDuration + \"ms \" + easing;\n },\n toTransition: () => { },\n };\n return generator;\n}\nspring.applyToOptions = (options) => {\n const generatorOptions = (0,_utils_create_generator_easing_mjs__WEBPACK_IMPORTED_MODULE_7__.createGeneratorEasing)(options, 100, spring);\n options.ease = generatorOptions.ease;\n options.duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.secondsToMilliseconds)(generatorOptions.duration);\n options.type = \"keyframes\";\n return options;\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3NwcmluZy9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQW1GO0FBQ2Y7QUFDcUI7QUFDWjtBQUNmO0FBQ2Q7QUFDUzs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IseURBQWM7QUFDaEMsbUJBQW1CLHlEQUFjO0FBQ2pDLGlCQUFpQix5REFBYztBQUMvQixjQUFjLHlEQUFjO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbURBQUs7QUFDckI7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHlEQUFjO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIscURBQVU7QUFDdEM7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHlEQUFjO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyx5REFBYywwQkFBMEIseURBQWM7QUFDaEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLHVCQUF1QjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEIsWUFBWSx3RUFBd0U7QUFDcEY7QUFDQSxtQkFBbUIsbUVBQXFCO0FBQ3hDLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsbUVBQXFCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUseURBQWM7QUFDeEIsVUFBVSx5REFBYztBQUN4QjtBQUNBLFVBQVUseURBQWM7QUFDeEIsVUFBVSx5REFBYztBQUN4QjtBQUNBO0FBQ0EsNEJBQTRCLDBEQUFlO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixtRUFBcUI7QUFDbkQsOEJBQThCLDBFQUFxQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsZ0RBQWdELCtFQUFxQixhQUFhLDBFQUFvQjtBQUN0RywyQkFBMkIsNkVBQW9CO0FBQy9DO0FBQ0EsU0FBUztBQUNULCtCQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qix5RkFBcUI7QUFDbEQ7QUFDQSx1QkFBdUIsbUVBQXFCO0FBQzVDO0FBQ0E7QUFDQTs7QUFFa0I7QUFDbEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3NwcmluZy9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWlsbGlzZWNvbmRzVG9TZWNvbmRzLCBzZWNvbmRzVG9NaWxsaXNlY29uZHMsIGNsYW1wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGdlbmVyYXRlTGluZWFyRWFzaW5nIH0gZnJvbSAnLi4vLi4vd2FhcGkvdXRpbHMvbGluZWFyLm1qcyc7XG5pbXBvcnQgeyBjYWxjR2VuZXJhdG9yRHVyYXRpb24sIG1heEdlbmVyYXRvckR1cmF0aW9uIH0gZnJvbSAnLi4vdXRpbHMvY2FsYy1kdXJhdGlvbi5tanMnO1xuaW1wb3J0IHsgY3JlYXRlR2VuZXJhdG9yRWFzaW5nIH0gZnJvbSAnLi4vdXRpbHMvY3JlYXRlLWdlbmVyYXRvci1lYXNpbmcubWpzJztcbmltcG9ydCB7IGNhbGNHZW5lcmF0b3JWZWxvY2l0eSB9IGZyb20gJy4uL3V0aWxzL3ZlbG9jaXR5Lm1qcyc7XG5pbXBvcnQgeyBzcHJpbmdEZWZhdWx0cyB9IGZyb20gJy4vZGVmYXVsdHMubWpzJztcbmltcG9ydCB7IGZpbmRTcHJpbmcsIGNhbGNBbmd1bGFyRnJlcSB9IGZyb20gJy4vZmluZC5tanMnO1xuXG5jb25zdCBkdXJhdGlvbktleXMgPSBbXCJkdXJhdGlvblwiLCBcImJvdW5jZVwiXTtcbmNvbnN0IHBoeXNpY3NLZXlzID0gW1wic3RpZmZuZXNzXCIsIFwiZGFtcGluZ1wiLCBcIm1hc3NcIl07XG5mdW5jdGlvbiBpc1NwcmluZ1R5cGUob3B0aW9ucywga2V5cykge1xuICAgIHJldHVybiBrZXlzLnNvbWUoKGtleSkgPT4gb3B0aW9uc1trZXldICE9PSB1bmRlZmluZWQpO1xufVxuZnVuY3Rpb24gZ2V0U3ByaW5nT3B0aW9ucyhvcHRpb25zKSB7XG4gICAgbGV0IHNwcmluZ09wdGlvbnMgPSB7XG4gICAgICAgIHZlbG9jaXR5OiBzcHJpbmdEZWZhdWx0cy52ZWxvY2l0eSxcbiAgICAgICAgc3RpZmZuZXNzOiBzcHJpbmdEZWZhdWx0cy5zdGlmZm5lc3MsXG4gICAgICAgIGRhbXBpbmc6IHNwcmluZ0RlZmF1bHRzLmRhbXBpbmcsXG4gICAgICAgIG1hc3M6IHNwcmluZ0RlZmF1bHRzLm1hc3MsXG4gICAgICAgIGlzUmVzb2x2ZWRGcm9tRHVyYXRpb246IGZhbHNlLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgIH07XG4gICAgLy8gc3RpZmZuZXNzL2RhbXBpbmcvbWFzcyBvdmVycmlkZXMgZHVyYXRpb24vYm91bmNlXG4gICAgaWYgKCFpc1NwcmluZ1R5cGUob3B0aW9ucywgcGh5c2ljc0tleXMpICYmXG4gICAgICAgIGlzU3ByaW5nVHlwZShvcHRpb25zLCBkdXJhdGlvbktleXMpKSB7XG4gICAgICAgIGlmIChvcHRpb25zLnZpc3VhbER1cmF0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCB2aXN1YWxEdXJhdGlvbiA9IG9wdGlvbnMudmlzdWFsRHVyYXRpb247XG4gICAgICAgICAgICBjb25zdCByb290ID0gKDIgKiBNYXRoLlBJKSAvICh2aXN1YWxEdXJhdGlvbiAqIDEuMik7XG4gICAgICAgICAgICBjb25zdCBzdGlmZm5lc3MgPSByb290ICogcm9vdDtcbiAgICAgICAgICAgIGNvbnN0IGRhbXBpbmcgPSAyICpcbiAgICAgICAgICAgICAgICBjbGFtcCgwLjA1LCAxLCAxIC0gKG9wdGlvbnMuYm91bmNlIHx8IDApKSAqXG4gICAgICAgICAgICAgICAgTWF0aC5zcXJ0KHN0aWZmbmVzcyk7XG4gICAgICAgICAgICBzcHJpbmdPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIC4uLnNwcmluZ09wdGlvbnMsXG4gICAgICAgICAgICAgICAgbWFzczogc3ByaW5nRGVmYXVsdHMubWFzcyxcbiAgICAgICAgICAgICAgICBzdGlmZm5lc3MsXG4gICAgICAgICAgICAgICAgZGFtcGluZyxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkZXJpdmVkID0gZmluZFNwcmluZyhvcHRpb25zKTtcbiAgICAgICAgICAgIHNwcmluZ09wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgLi4uc3ByaW5nT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAuLi5kZXJpdmVkLFxuICAgICAgICAgICAgICAgIG1hc3M6IHNwcmluZ0RlZmF1bHRzLm1hc3MsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgc3ByaW5nT3B0aW9ucy5pc1Jlc29sdmVkRnJvbUR1cmF0aW9uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3ByaW5nT3B0aW9ucztcbn1cbmZ1bmN0aW9uIHNwcmluZyhvcHRpb25zT3JWaXN1YWxEdXJhdGlvbiA9IHNwcmluZ0RlZmF1bHRzLnZpc3VhbER1cmF0aW9uLCBib3VuY2UgPSBzcHJpbmdEZWZhdWx0cy5ib3VuY2UpIHtcbiAgICBjb25zdCBvcHRpb25zID0gdHlwZW9mIG9wdGlvbnNPclZpc3VhbER1cmF0aW9uICE9PSBcIm9iamVjdFwiXG4gICAgICAgID8ge1xuICAgICAgICAgICAgdmlzdWFsRHVyYXRpb246IG9wdGlvbnNPclZpc3VhbER1cmF0aW9uLFxuICAgICAgICAgICAga2V5ZnJhbWVzOiBbMCwgMV0sXG4gICAgICAgICAgICBib3VuY2UsXG4gICAgICAgIH1cbiAgICAgICAgOiBvcHRpb25zT3JWaXN1YWxEdXJhdGlvbjtcbiAgICBsZXQgeyByZXN0U3BlZWQsIHJlc3REZWx0YSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBvcmlnaW4gPSBvcHRpb25zLmtleWZyYW1lc1swXTtcbiAgICBjb25zdCB0YXJnZXQgPSBvcHRpb25zLmtleWZyYW1lc1tvcHRpb25zLmtleWZyYW1lcy5sZW5ndGggLSAxXTtcbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIHRoZSBJdGVyYXRvci1zcGVjIHJldHVybiB2YWx1ZS4gV2UgZW5zdXJlIGl0J3MgbXV0YWJsZSByYXRoZXIgdGhhbiB1c2luZyBhIGdlbmVyYXRvclxuICAgICAqIHRvIHJlZHVjZSBHQyBkdXJpbmcgYW5pbWF0aW9uLlxuICAgICAqL1xuICAgIGNvbnN0IHN0YXRlID0geyBkb25lOiBmYWxzZSwgdmFsdWU6IG9yaWdpbiB9O1xuICAgIGNvbnN0IHsgc3RpZmZuZXNzLCBkYW1waW5nLCBtYXNzLCBkdXJhdGlvbiwgdmVsb2NpdHksIGlzUmVzb2x2ZWRGcm9tRHVyYXRpb24sIH0gPSBnZXRTcHJpbmdPcHRpb25zKHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgdmVsb2NpdHk6IC1taWxsaXNlY29uZHNUb1NlY29uZHMob3B0aW9ucy52ZWxvY2l0eSB8fCAwKSxcbiAgICB9KTtcbiAgICBjb25zdCBpbml0aWFsVmVsb2NpdHkgPSB2ZWxvY2l0eSB8fCAwLjA7XG4gICAgY29uc3QgZGFtcGluZ1JhdGlvID0gZGFtcGluZyAvICgyICogTWF0aC5zcXJ0KHN0aWZmbmVzcyAqIG1hc3MpKTtcbiAgICBjb25zdCBpbml0aWFsRGVsdGEgPSB0YXJnZXQgLSBvcmlnaW47XG4gICAgY29uc3QgdW5kYW1wZWRBbmd1bGFyRnJlcSA9IG1pbGxpc2Vjb25kc1RvU2Vjb25kcyhNYXRoLnNxcnQoc3RpZmZuZXNzIC8gbWFzcykpO1xuICAgIC8qKlxuICAgICAqIElmIHdlJ3JlIHdvcmtpbmcgb24gYSBncmFudWxhciBzY2FsZSwgdXNlIHNtYWxsZXIgZGVmYXVsdHMgZm9yIGRldGVybWluaW5nXG4gICAgICogd2hlbiB0aGUgc3ByaW5nIGlzIGZpbmlzaGVkLlxuICAgICAqXG4gICAgICogVGhlc2UgZGVmYXVsdHMgaGF2ZSBiZWVuIHNlbGVjdGVkIGVtcHJpY2FsbHkgYmFzZWQgb24gd2hhdCBzdHJpa2VzIGEgZ29vZFxuICAgICAqIHJhdGlvIGJldHdlZW4gZmVlbGluZyBnb29kIGFuZCBmaW5pc2hpbmcgYXMgc29vbiBhcyBjaGFuZ2VzIGFyZSBpbXBlcmNlcHRpYmxlLlxuICAgICAqL1xuICAgIGNvbnN0IGlzR3JhbnVsYXJTY2FsZSA9IE1hdGguYWJzKGluaXRpYWxEZWx0YSkgPCA1O1xuICAgIHJlc3RTcGVlZCB8fCAocmVzdFNwZWVkID0gaXNHcmFudWxhclNjYWxlXG4gICAgICAgID8gc3ByaW5nRGVmYXVsdHMucmVzdFNwZWVkLmdyYW51bGFyXG4gICAgICAgIDogc3ByaW5nRGVmYXVsdHMucmVzdFNwZWVkLmRlZmF1bHQpO1xuICAgIHJlc3REZWx0YSB8fCAocmVzdERlbHRhID0gaXNHcmFudWxhclNjYWxlXG4gICAgICAgID8gc3ByaW5nRGVmYXVsdHMucmVzdERlbHRhLmdyYW51bGFyXG4gICAgICAgIDogc3ByaW5nRGVmYXVsdHMucmVzdERlbHRhLmRlZmF1bHQpO1xuICAgIGxldCByZXNvbHZlU3ByaW5nO1xuICAgIGlmIChkYW1waW5nUmF0aW8gPCAxKSB7XG4gICAgICAgIGNvbnN0IGFuZ3VsYXJGcmVxID0gY2FsY0FuZ3VsYXJGcmVxKHVuZGFtcGVkQW5ndWxhckZyZXEsIGRhbXBpbmdSYXRpbyk7XG4gICAgICAgIC8vIFVuZGVyZGFtcGVkIHNwcmluZ1xuICAgICAgICByZXNvbHZlU3ByaW5nID0gKHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVudmVsb3BlID0gTWF0aC5leHAoLWRhbXBpbmdSYXRpbyAqIHVuZGFtcGVkQW5ndWxhckZyZXEgKiB0KTtcbiAgICAgICAgICAgIHJldHVybiAodGFyZ2V0IC1cbiAgICAgICAgICAgICAgICBlbnZlbG9wZSAqXG4gICAgICAgICAgICAgICAgICAgICgoKGluaXRpYWxWZWxvY2l0eSArXG4gICAgICAgICAgICAgICAgICAgICAgICBkYW1waW5nUmF0aW8gKiB1bmRhbXBlZEFuZ3VsYXJGcmVxICogaW5pdGlhbERlbHRhKSAvXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmd1bGFyRnJlcSkgKlxuICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5zaW4oYW5ndWxhckZyZXEgKiB0KSArXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsRGVsdGEgKiBNYXRoLmNvcyhhbmd1bGFyRnJlcSAqIHQpKSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2UgaWYgKGRhbXBpbmdSYXRpbyA9PT0gMSkge1xuICAgICAgICAvLyBDcml0aWNhbGx5IGRhbXBlZCBzcHJpbmdcbiAgICAgICAgcmVzb2x2ZVNwcmluZyA9ICh0KSA9PiB0YXJnZXQgLVxuICAgICAgICAgICAgTWF0aC5leHAoLXVuZGFtcGVkQW5ndWxhckZyZXEgKiB0KSAqXG4gICAgICAgICAgICAgICAgKGluaXRpYWxEZWx0YSArXG4gICAgICAgICAgICAgICAgICAgIChpbml0aWFsVmVsb2NpdHkgKyB1bmRhbXBlZEFuZ3VsYXJGcmVxICogaW5pdGlhbERlbHRhKSAqIHQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgLy8gT3ZlcmRhbXBlZCBzcHJpbmdcbiAgICAgICAgY29uc3QgZGFtcGVkQW5ndWxhckZyZXEgPSB1bmRhbXBlZEFuZ3VsYXJGcmVxICogTWF0aC5zcXJ0KGRhbXBpbmdSYXRpbyAqIGRhbXBpbmdSYXRpbyAtIDEpO1xuICAgICAgICByZXNvbHZlU3ByaW5nID0gKHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVudmVsb3BlID0gTWF0aC5leHAoLWRhbXBpbmdSYXRpbyAqIHVuZGFtcGVkQW5ndWxhckZyZXEgKiB0KTtcbiAgICAgICAgICAgIC8vIFdoZW4gcGVyZm9ybWluZyBzaW5oIG9yIGNvc2ggdmFsdWVzIGNhbiBoaXQgSW5maW5pdHkgc28gd2UgY2FwIHRoZW0gaGVyZVxuICAgICAgICAgICAgY29uc3QgZnJlcUZvclQgPSBNYXRoLm1pbihkYW1wZWRBbmd1bGFyRnJlcSAqIHQsIDMwMCk7XG4gICAgICAgICAgICByZXR1cm4gKHRhcmdldCAtXG4gICAgICAgICAgICAgICAgKGVudmVsb3BlICpcbiAgICAgICAgICAgICAgICAgICAgKChpbml0aWFsVmVsb2NpdHkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgZGFtcGluZ1JhdGlvICogdW5kYW1wZWRBbmd1bGFyRnJlcSAqIGluaXRpYWxEZWx0YSkgKlxuICAgICAgICAgICAgICAgICAgICAgICAgTWF0aC5zaW5oKGZyZXFGb3JUKSArXG4gICAgICAgICAgICAgICAgICAgICAgICBkYW1wZWRBbmd1bGFyRnJlcSAqXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbERlbHRhICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXRoLmNvc2goZnJlcUZvclQpKSkgL1xuICAgICAgICAgICAgICAgICAgICBkYW1wZWRBbmd1bGFyRnJlcSk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IGdlbmVyYXRvciA9IHtcbiAgICAgICAgY2FsY3VsYXRlZER1cmF0aW9uOiBpc1Jlc29sdmVkRnJvbUR1cmF0aW9uID8gZHVyYXRpb24gfHwgbnVsbCA6IG51bGwsXG4gICAgICAgIG5leHQ6ICh0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gcmVzb2x2ZVNwcmluZyh0KTtcbiAgICAgICAgICAgIGlmICghaXNSZXNvbHZlZEZyb21EdXJhdGlvbikge1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50VmVsb2NpdHkgPSB0ID09PSAwID8gaW5pdGlhbFZlbG9jaXR5IDogMC4wO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFdlIG9ubHkgbmVlZCB0byBjYWxjdWxhdGUgdmVsb2NpdHkgZm9yIHVuZGVyLWRhbXBlZCBzcHJpbmdzXG4gICAgICAgICAgICAgICAgICogYXMgb3Zlci0gYW5kIGNyaXRpY2FsbHktZGFtcGVkIHNwcmluZ3MgY2FuJ3Qgb3ZlcnNob290LCBzb1xuICAgICAgICAgICAgICAgICAqIGNoZWNraW5nIG9ubHkgZm9yIGRpc3BsYWNlbWVudCBpcyBlbm91Z2guXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKGRhbXBpbmdSYXRpbyA8IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFZlbG9jaXR5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHQgPT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHNlY29uZHNUb01pbGxpc2Vjb25kcyhpbml0aWFsVmVsb2NpdHkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjYWxjR2VuZXJhdG9yVmVsb2NpdHkocmVzb2x2ZVNwcmluZywgdCwgY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGlzQmVsb3dWZWxvY2l0eVRocmVzaG9sZCA9IE1hdGguYWJzKGN1cnJlbnRWZWxvY2l0eSkgPD0gcmVzdFNwZWVkO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzQmVsb3dEaXNwbGFjZW1lbnRUaHJlc2hvbGQgPSBNYXRoLmFicyh0YXJnZXQgLSBjdXJyZW50KSA8PSByZXN0RGVsdGE7XG4gICAgICAgICAgICAgICAgc3RhdGUuZG9uZSA9XG4gICAgICAgICAgICAgICAgICAgIGlzQmVsb3dWZWxvY2l0eVRocmVzaG9sZCAmJiBpc0JlbG93RGlzcGxhY2VtZW50VGhyZXNob2xkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgc3RhdGUuZG9uZSA9IHQgPj0gZHVyYXRpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdGF0ZS52YWx1ZSA9IHN0YXRlLmRvbmUgPyB0YXJnZXQgOiBjdXJyZW50O1xuICAgICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9LFxuICAgICAgICB0b1N0cmluZzogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2FsY3VsYXRlZER1cmF0aW9uID0gTWF0aC5taW4oY2FsY0dlbmVyYXRvckR1cmF0aW9uKGdlbmVyYXRvciksIG1heEdlbmVyYXRvckR1cmF0aW9uKTtcbiAgICAgICAgICAgIGNvbnN0IGVhc2luZyA9IGdlbmVyYXRlTGluZWFyRWFzaW5nKChwcm9ncmVzcykgPT4gZ2VuZXJhdG9yLm5leHQoY2FsY3VsYXRlZER1cmF0aW9uICogcHJvZ3Jlc3MpLnZhbHVlLCBjYWxjdWxhdGVkRHVyYXRpb24sIDMwKTtcbiAgICAgICAgICAgIHJldHVybiBjYWxjdWxhdGVkRHVyYXRpb24gKyBcIm1zIFwiICsgZWFzaW5nO1xuICAgICAgICB9LFxuICAgICAgICB0b1RyYW5zaXRpb246ICgpID0+IHsgfSxcbiAgICB9O1xuICAgIHJldHVybiBnZW5lcmF0b3I7XG59XG5zcHJpbmcuYXBwbHlUb09wdGlvbnMgPSAob3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGdlbmVyYXRvck9wdGlvbnMgPSBjcmVhdGVHZW5lcmF0b3JFYXNpbmcob3B0aW9ucywgMTAwLCBzcHJpbmcpO1xuICAgIG9wdGlvbnMuZWFzZSA9IGdlbmVyYXRvck9wdGlvbnMuZWFzZTtcbiAgICBvcHRpb25zLmR1cmF0aW9uID0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKGdlbmVyYXRvck9wdGlvbnMuZHVyYXRpb24pO1xuICAgIG9wdGlvbnMudHlwZSA9IFwia2V5ZnJhbWVzXCI7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59O1xuXG5leHBvcnQgeyBzcHJpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.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 */ calcGeneratorDuration: () => (/* binding */ calcGeneratorDuration),\n/* harmony export */ maxGeneratorDuration: () => (/* binding */ maxGeneratorDuration)\n/* harmony export */ });\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\n\n//# sourceMappingURL=calc-duration.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3V0aWxzL2NhbGMtZHVyYXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV1RDtBQUN2RCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvY2FsYy1kdXJhdGlvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbXBsZW1lbnQgYSBwcmFjdGljYWwgbWF4IGR1cmF0aW9uIGZvciBrZXlmcmFtZSBnZW5lcmF0aW9uXG4gKiB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzXG4gKi9cbmNvbnN0IG1heEdlbmVyYXRvckR1cmF0aW9uID0gMjAwMDA7XG5mdW5jdGlvbiBjYWxjR2VuZXJhdG9yRHVyYXRpb24oZ2VuZXJhdG9yKSB7XG4gICAgbGV0IGR1cmF0aW9uID0gMDtcbiAgICBjb25zdCB0aW1lU3RlcCA9IDUwO1xuICAgIGxldCBzdGF0ZSA9IGdlbmVyYXRvci5uZXh0KGR1cmF0aW9uKTtcbiAgICB3aGlsZSAoIXN0YXRlLmRvbmUgJiYgZHVyYXRpb24gPCBtYXhHZW5lcmF0b3JEdXJhdGlvbikge1xuICAgICAgICBkdXJhdGlvbiArPSB0aW1lU3RlcDtcbiAgICAgICAgc3RhdGUgPSBnZW5lcmF0b3IubmV4dChkdXJhdGlvbik7XG4gICAgfVxuICAgIHJldHVybiBkdXJhdGlvbiA+PSBtYXhHZW5lcmF0b3JEdXJhdGlvbiA/IEluZmluaXR5IDogZHVyYXRpb247XG59XG5cbmV4cG9ydCB7IGNhbGNHZW5lcmF0b3JEdXJhdGlvbiwgbWF4R2VuZXJhdG9yRHVyYXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhbGMtZHVyYXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs": +/*!************************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.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 */ createGeneratorEasing: () => (/* binding */ createGeneratorEasing)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./calc-duration.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n\n\n\n/**\n * Create a progress => progress easing function from a generator.\n */\nfunction createGeneratorEasing(options, scale = 100, createGenerator) {\n const generator = createGenerator({ ...options, keyframes: [0, scale] });\n const duration = Math.min((0,_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__.calcGeneratorDuration)(generator), _calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__.maxGeneratorDuration);\n return {\n type: \"keyframes\",\n ease: (progress) => {\n return generator.next(duration * progress).value / scale;\n },\n duration: (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.millisecondsToSeconds)(duration),\n };\n}\n\n\n//# sourceMappingURL=create-generator-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3V0aWxzL2NyZWF0ZS1nZW5lcmF0b3ItZWFzaW5nLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBcUQ7QUFDNkI7O0FBRWxGO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLG1DQUFtQztBQUMzRSw4QkFBOEIseUVBQXFCLGFBQWEsb0VBQW9CO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULGtCQUFrQixtRUFBcUI7QUFDdkM7QUFDQTs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3V0aWxzL2NyZWF0ZS1nZW5lcmF0b3ItZWFzaW5nLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaWxsaXNlY29uZHNUb1NlY29uZHMgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgY2FsY0dlbmVyYXRvckR1cmF0aW9uLCBtYXhHZW5lcmF0b3JEdXJhdGlvbiB9IGZyb20gJy4vY2FsYy1kdXJhdGlvbi5tanMnO1xuXG4vKipcbiAqIENyZWF0ZSBhIHByb2dyZXNzID0+IHByb2dyZXNzIGVhc2luZyBmdW5jdGlvbiBmcm9tIGEgZ2VuZXJhdG9yLlxuICovXG5mdW5jdGlvbiBjcmVhdGVHZW5lcmF0b3JFYXNpbmcob3B0aW9ucywgc2NhbGUgPSAxMDAsIGNyZWF0ZUdlbmVyYXRvcikge1xuICAgIGNvbnN0IGdlbmVyYXRvciA9IGNyZWF0ZUdlbmVyYXRvcih7IC4uLm9wdGlvbnMsIGtleWZyYW1lczogWzAsIHNjYWxlXSB9KTtcbiAgICBjb25zdCBkdXJhdGlvbiA9IE1hdGgubWluKGNhbGNHZW5lcmF0b3JEdXJhdGlvbihnZW5lcmF0b3IpLCBtYXhHZW5lcmF0b3JEdXJhdGlvbik7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogXCJrZXlmcmFtZXNcIixcbiAgICAgICAgZWFzZTogKHByb2dyZXNzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLm5leHQoZHVyYXRpb24gKiBwcm9ncmVzcykudmFsdWUgLyBzY2FsZTtcbiAgICAgICAgfSxcbiAgICAgICAgZHVyYXRpb246IG1pbGxpc2Vjb25kc1RvU2Vjb25kcyhkdXJhdGlvbiksXG4gICAgfTtcbn1cblxuZXhwb3J0IHsgY3JlYXRlR2VuZXJhdG9yRWFzaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtZ2VuZXJhdG9yLWVhc2luZy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.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 */ isGenerator: () => (/* binding */ isGenerator)\n/* harmony export */ });\nfunction isGenerator(type) {\n return typeof type === \"function\" && \"applyToOptions\" in type;\n}\n\n\n//# sourceMappingURL=is-generator.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3V0aWxzL2lzLWdlbmVyYXRvci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTs7QUFFdUI7QUFDdkIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3V0aWxzL2lzLWdlbmVyYXRvci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gaXNHZW5lcmF0b3IodHlwZSkge1xuICAgIHJldHVybiB0eXBlb2YgdHlwZSA9PT0gXCJmdW5jdGlvblwiICYmIFwiYXBwbHlUb09wdGlvbnNcIiBpbiB0eXBlO1xufVxuXG5leHBvcnQgeyBpc0dlbmVyYXRvciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtZ2VuZXJhdG9yLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.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 */ calcGeneratorVelocity: () => (/* binding */ calcGeneratorVelocity)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\");\n\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.velocityPerSecond)(current - resolveValue(prevT), t - prevT);\n}\n\n\n//# sourceMappingURL=velocity.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3V0aWxzL3ZlbG9jaXR5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFpRDs7QUFFakQsa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQSxXQUFXLCtEQUFpQjtBQUM1Qjs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3V0aWxzL3ZlbG9jaXR5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB2ZWxvY2l0eVBlclNlY29uZCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5cbmNvbnN0IHZlbG9jaXR5U2FtcGxlRHVyYXRpb24gPSA1OyAvLyBtc1xuZnVuY3Rpb24gY2FsY0dlbmVyYXRvclZlbG9jaXR5KHJlc29sdmVWYWx1ZSwgdCwgY3VycmVudCkge1xuICAgIGNvbnN0IHByZXZUID0gTWF0aC5tYXgodCAtIHZlbG9jaXR5U2FtcGxlRHVyYXRpb24sIDApO1xuICAgIHJldHVybiB2ZWxvY2l0eVBlclNlY29uZChjdXJyZW50IC0gcmVzb2x2ZVZhbHVlKHByZXZUKSwgdCAtIHByZXZUKTtcbn1cblxuZXhwb3J0IHsgY2FsY0dlbmVyYXRvclZlbG9jaXR5IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD12ZWxvY2l0eS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.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 */ animateMotionValue: () => (/* binding */ animateMotionValue)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _AsyncMotionValueAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../AsyncMotionValueAnimation.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs\");\n/* harmony import */ var _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../JSAnimation.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var _utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/get-value-transition.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var _utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/make-animation-instant.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\");\n/* harmony import */ var _utils_default_transitions_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/default-transitions.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs\");\n/* harmony import */ var _utils_get_final_keyframe_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/get-final-keyframe.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs\");\n/* harmony import */ var _utils_is_transition_defined_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/is-transition-defined.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\n const valueTransition = (0,_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_0__.getValueTransition)(transition, name) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(delay);\n const options = {\n keyframes: Array.isArray(target) ? target : [null, target],\n ease: \"easeOut\",\n velocity: value.getVelocity(),\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n name,\n motionValue: value,\n element: isHandoff ? undefined : element,\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unique transition settings for this value.\n */\n if (!(0,_utils_is_transition_defined_mjs__WEBPACK_IMPORTED_MODULE_2__.isTransitionDefined)(valueTransition)) {\n Object.assign(options, (0,_utils_default_transitions_mjs__WEBPACK_IMPORTED_MODULE_3__.getDefaultTransition)(name, options));\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n options.duration && (options.duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(options.duration));\n options.repeatDelay && (options.repeatDelay = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(options.repeatDelay));\n /**\n * Support deprecated way to set initial value. Prefer keyframe syntax.\n */\n if (options.from !== undefined) {\n options.keyframes[0] = options.from;\n }\n let shouldSkip = false;\n if (options.type === false ||\n (options.duration === 0 && !options.repeatDelay)) {\n (0,_utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_4__.makeAnimationInstant)(options);\n if (options.delay === 0) {\n shouldSkip = true;\n }\n }\n if (motion_utils__WEBPACK_IMPORTED_MODULE_5__.MotionGlobalConfig.instantAnimations ||\n motion_utils__WEBPACK_IMPORTED_MODULE_5__.MotionGlobalConfig.skipAnimations ||\n element?.shouldSkipAnimations) {\n shouldSkip = true;\n (0,_utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_4__.makeAnimationInstant)(options);\n options.delay = 0;\n }\n /**\n * If the transition type or easing has been explicitly set by the user\n * then we don't want to allow flattening the animation.\n */\n options.allowFlatten = !valueTransition.type && !valueTransition.ease;\n /**\n * If we can or must skip creating the animation, and apply only\n * the final keyframe, do so. We also check once keyframes are resolved but\n * this early check prevents the need to create an animation at all.\n */\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\n const finalKeyframe = (0,_utils_get_final_keyframe_mjs__WEBPACK_IMPORTED_MODULE_6__.getFinalKeyframe)(options.keyframes, valueTransition);\n if (finalKeyframe !== undefined) {\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_7__.frame.update(() => {\n options.onUpdate(finalKeyframe);\n options.onComplete();\n });\n return;\n }\n }\n return valueTransition.isSync\n ? new _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_8__.JSAnimation(options)\n : new _AsyncMotionValueAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__.AsyncMotionValueAnimation(options);\n};\n\n\n//# sourceMappingURL=motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL21vdGlvbi12YWx1ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBeUU7QUFDSTtBQUM1QjtBQUNzQjtBQUNJO0FBQ0g7QUFDTDtBQUNNO0FBQ3ZCOztBQUVsRCxnRUFBZ0U7QUFDaEUsNEJBQTRCLG1GQUFrQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsY0FBYztBQUN4Qix3QkFBd0IsbUVBQXFCO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMscUZBQW1CO0FBQzVCLCtCQUErQixvRkFBb0I7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLG1FQUFxQjtBQUNqRSxrREFBa0QsbUVBQXFCO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsdUZBQW9CO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw0REFBa0I7QUFDMUIsUUFBUSw0REFBa0I7QUFDMUI7QUFDQTtBQUNBLFFBQVEsdUZBQW9CO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLCtFQUFnQjtBQUM5QztBQUNBLFlBQVksdURBQUs7QUFDakI7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMseURBQVc7QUFDekIsY0FBYyxxRkFBeUI7QUFDdkM7O0FBRThCO0FBQzlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vaW50ZXJmYWNlcy9tb3Rpb24tdmFsdWUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNlY29uZHNUb01pbGxpc2Vjb25kcywgTW90aW9uR2xvYmFsQ29uZmlnIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IEFzeW5jTW90aW9uVmFsdWVBbmltYXRpb24gfSBmcm9tICcuLi9Bc3luY01vdGlvblZhbHVlQW5pbWF0aW9uLm1qcyc7XG5pbXBvcnQgeyBKU0FuaW1hdGlvbiB9IGZyb20gJy4uL0pTQW5pbWF0aW9uLm1qcyc7XG5pbXBvcnQgeyBnZXRWYWx1ZVRyYW5zaXRpb24gfSBmcm9tICcuLi91dGlscy9nZXQtdmFsdWUtdHJhbnNpdGlvbi5tanMnO1xuaW1wb3J0IHsgbWFrZUFuaW1hdGlvbkluc3RhbnQgfSBmcm9tICcuLi91dGlscy9tYWtlLWFuaW1hdGlvbi1pbnN0YW50Lm1qcyc7XG5pbXBvcnQgeyBnZXREZWZhdWx0VHJhbnNpdGlvbiB9IGZyb20gJy4uL3V0aWxzL2RlZmF1bHQtdHJhbnNpdGlvbnMubWpzJztcbmltcG9ydCB7IGdldEZpbmFsS2V5ZnJhbWUgfSBmcm9tICcuLi91dGlscy9nZXQtZmluYWwta2V5ZnJhbWUubWpzJztcbmltcG9ydCB7IGlzVHJhbnNpdGlvbkRlZmluZWQgfSBmcm9tICcuLi91dGlscy9pcy10cmFuc2l0aW9uLWRlZmluZWQubWpzJztcbmltcG9ydCB7IGZyYW1lIH0gZnJvbSAnLi4vLi4vZnJhbWVsb29wL2ZyYW1lLm1qcyc7XG5cbmNvbnN0IGFuaW1hdGVNb3Rpb25WYWx1ZSA9IChuYW1lLCB2YWx1ZSwgdGFyZ2V0LCB0cmFuc2l0aW9uID0ge30sIGVsZW1lbnQsIGlzSGFuZG9mZikgPT4gKG9uQ29tcGxldGUpID0+IHtcbiAgICBjb25zdCB2YWx1ZVRyYW5zaXRpb24gPSBnZXRWYWx1ZVRyYW5zaXRpb24odHJhbnNpdGlvbiwgbmFtZSkgfHwge307XG4gICAgLyoqXG4gICAgICogTW9zdCB0cmFuc2l0aW9uIHZhbHVlcyBhcmUgY3VycmVudGx5IGNvbXBsZXRlbHkgb3ZlcndyaXR0ZW4gYnkgdmFsdWUtc3BlY2lmaWNcbiAgICAgKiB0cmFuc2l0aW9ucy4gSW4gdGhlIGZ1dHVyZSBpdCdkIGJlIG5pY2VyIHRvIGJsZW5kIHRoZXNlIHRyYW5zaXRpb25zLiBCdXQgZm9yIG5vd1xuICAgICAqIGRlbGF5IGFjdHVhbGx5IGRvZXMgaW5oZXJpdCBmcm9tIHRoZSByb290IHRyYW5zaXRpb24gaWYgbm90IHZhbHVlLXNwZWNpZmljLlxuICAgICAqL1xuICAgIGNvbnN0IGRlbGF5ID0gdmFsdWVUcmFuc2l0aW9uLmRlbGF5IHx8IHRyYW5zaXRpb24uZGVsYXkgfHwgMDtcbiAgICAvKipcbiAgICAgKiBFbGFwc2VkIGlzbid0IGEgcHVibGljIHRyYW5zaXRpb24gb3B0aW9uIGJ1dCBjYW4gYmUgcGFzc2VkIHRocm91Z2ggZnJvbVxuICAgICAqIG9wdGltaXplZCBhcHBlYXIgZWZmZWN0cyBpbiBtaWxsaXNlY29uZHMuXG4gICAgICovXG4gICAgbGV0IHsgZWxhcHNlZCA9IDAgfSA9IHRyYW5zaXRpb247XG4gICAgZWxhcHNlZCA9IGVsYXBzZWQgLSBzZWNvbmRzVG9NaWxsaXNlY29uZHMoZGVsYXkpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGtleWZyYW1lczogQXJyYXkuaXNBcnJheSh0YXJnZXQpID8gdGFyZ2V0IDogW251bGwsIHRhcmdldF0sXG4gICAgICAgIGVhc2U6IFwiZWFzZU91dFwiLFxuICAgICAgICB2ZWxvY2l0eTogdmFsdWUuZ2V0VmVsb2NpdHkoKSxcbiAgICAgICAgLi4udmFsdWVUcmFuc2l0aW9uLFxuICAgICAgICBkZWxheTogLWVsYXBzZWQsXG4gICAgICAgIG9uVXBkYXRlOiAodikgPT4ge1xuICAgICAgICAgICAgdmFsdWUuc2V0KHYpO1xuICAgICAgICAgICAgdmFsdWVUcmFuc2l0aW9uLm9uVXBkYXRlICYmIHZhbHVlVHJhbnNpdGlvbi5vblVwZGF0ZSh2KTtcbiAgICAgICAgfSxcbiAgICAgICAgb25Db21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgICAgb25Db21wbGV0ZSgpO1xuICAgICAgICAgICAgdmFsdWVUcmFuc2l0aW9uLm9uQ29tcGxldGUgJiYgdmFsdWVUcmFuc2l0aW9uLm9uQ29tcGxldGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgbW90aW9uVmFsdWU6IHZhbHVlLFxuICAgICAgICBlbGVtZW50OiBpc0hhbmRvZmYgPyB1bmRlZmluZWQgOiBlbGVtZW50LFxuICAgIH07XG4gICAgLyoqXG4gICAgICogSWYgdGhlcmUncyBubyB0cmFuc2l0aW9uIGRlZmluZWQgZm9yIHRoaXMgdmFsdWUsIHdlIGNhbiBnZW5lcmF0ZVxuICAgICAqIHVuaXF1ZSB0cmFuc2l0aW9uIHNldHRpbmdzIGZvciB0aGlzIHZhbHVlLlxuICAgICAqL1xuICAgIGlmICghaXNUcmFuc2l0aW9uRGVmaW5lZCh2YWx1ZVRyYW5zaXRpb24pKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24ob3B0aW9ucywgZ2V0RGVmYXVsdFRyYW5zaXRpb24obmFtZSwgb3B0aW9ucykpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBCb3RoIFdBQVBJIGFuZCBvdXIgaW50ZXJuYWwgYW5pbWF0aW9uIGZ1bmN0aW9ucyB1c2UgZHVyYXRpb25zXG4gICAgICogYXMgZGVmaW5lZCBieSBtaWxsaXNlY29uZHMsIHdoaWxlIG91ciBleHRlcm5hbCBBUEkgZGVmaW5lcyB0aGVtXG4gICAgICogYXMgc2Vjb25kcy5cbiAgICAgKi9cbiAgICBvcHRpb25zLmR1cmF0aW9uICYmIChvcHRpb25zLmR1cmF0aW9uID0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKG9wdGlvbnMuZHVyYXRpb24pKTtcbiAgICBvcHRpb25zLnJlcGVhdERlbGF5ICYmIChvcHRpb25zLnJlcGVhdERlbGF5ID0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKG9wdGlvbnMucmVwZWF0RGVsYXkpKTtcbiAgICAvKipcbiAgICAgKiBTdXBwb3J0IGRlcHJlY2F0ZWQgd2F5IHRvIHNldCBpbml0aWFsIHZhbHVlLiBQcmVmZXIga2V5ZnJhbWUgc3ludGF4LlxuICAgICAqL1xuICAgIGlmIChvcHRpb25zLmZyb20gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBvcHRpb25zLmtleWZyYW1lc1swXSA9IG9wdGlvbnMuZnJvbTtcbiAgICB9XG4gICAgbGV0IHNob3VsZFNraXAgPSBmYWxzZTtcbiAgICBpZiAob3B0aW9ucy50eXBlID09PSBmYWxzZSB8fFxuICAgICAgICAob3B0aW9ucy5kdXJhdGlvbiA9PT0gMCAmJiAhb3B0aW9ucy5yZXBlYXREZWxheSkpIHtcbiAgICAgICAgbWFrZUFuaW1hdGlvbkluc3RhbnQob3B0aW9ucyk7XG4gICAgICAgIGlmIChvcHRpb25zLmRlbGF5ID09PSAwKSB7XG4gICAgICAgICAgICBzaG91bGRTa2lwID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoTW90aW9uR2xvYmFsQ29uZmlnLmluc3RhbnRBbmltYXRpb25zIHx8XG4gICAgICAgIE1vdGlvbkdsb2JhbENvbmZpZy5za2lwQW5pbWF0aW9ucyB8fFxuICAgICAgICBlbGVtZW50Py5zaG91bGRTa2lwQW5pbWF0aW9ucykge1xuICAgICAgICBzaG91bGRTa2lwID0gdHJ1ZTtcbiAgICAgICAgbWFrZUFuaW1hdGlvbkluc3RhbnQob3B0aW9ucyk7XG4gICAgICAgIG9wdGlvbnMuZGVsYXkgPSAwO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdHJhbnNpdGlvbiB0eXBlIG9yIGVhc2luZyBoYXMgYmVlbiBleHBsaWNpdGx5IHNldCBieSB0aGUgdXNlclxuICAgICAqIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBhbGxvdyBmbGF0dGVuaW5nIHRoZSBhbmltYXRpb24uXG4gICAgICovXG4gICAgb3B0aW9ucy5hbGxvd0ZsYXR0ZW4gPSAhdmFsdWVUcmFuc2l0aW9uLnR5cGUgJiYgIXZhbHVlVHJhbnNpdGlvbi5lYXNlO1xuICAgIC8qKlxuICAgICAqIElmIHdlIGNhbiBvciBtdXN0IHNraXAgY3JlYXRpbmcgdGhlIGFuaW1hdGlvbiwgYW5kIGFwcGx5IG9ubHlcbiAgICAgKiB0aGUgZmluYWwga2V5ZnJhbWUsIGRvIHNvLiBXZSBhbHNvIGNoZWNrIG9uY2Uga2V5ZnJhbWVzIGFyZSByZXNvbHZlZCBidXRcbiAgICAgKiB0aGlzIGVhcmx5IGNoZWNrIHByZXZlbnRzIHRoZSBuZWVkIHRvIGNyZWF0ZSBhbiBhbmltYXRpb24gYXQgYWxsLlxuICAgICAqL1xuICAgIGlmIChzaG91bGRTa2lwICYmICFpc0hhbmRvZmYgJiYgdmFsdWUuZ2V0KCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBmaW5hbEtleWZyYW1lID0gZ2V0RmluYWxLZXlmcmFtZShvcHRpb25zLmtleWZyYW1lcywgdmFsdWVUcmFuc2l0aW9uKTtcbiAgICAgICAgaWYgKGZpbmFsS2V5ZnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZnJhbWUudXBkYXRlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLm9uVXBkYXRlKGZpbmFsS2V5ZnJhbWUpO1xuICAgICAgICAgICAgICAgIG9wdGlvbnMub25Db21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlVHJhbnNpdGlvbi5pc1N5bmNcbiAgICAgICAgPyBuZXcgSlNBbmltYXRpb24ob3B0aW9ucylcbiAgICAgICAgOiBuZXcgQXN5bmNNb3Rpb25WYWx1ZUFuaW1hdGlvbihvcHRpb25zKTtcbn07XG5cbmV4cG9ydCB7IGFuaW1hdGVNb3Rpb25WYWx1ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bW90aW9uLXZhbHVlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.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 */ animateTarget: () => (/* binding */ animateTarget)\n/* harmony export */ });\n/* harmony import */ var _utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/get-value-transition.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var _utils_resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/resolve-transition.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs\");\n/* harmony import */ var _render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../render/utils/keys-position.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\");\n/* harmony import */ var _render_utils_setters_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../render/utils/setters.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/setters.mjs\");\n/* harmony import */ var _value_will_change_add_will_change_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../value/will-change/add-will-change.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs\");\n/* harmony import */ var _optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../optimized-appear/get-appear-id.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs\");\n/* harmony import */ var _motion_value_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n let { transition, transitionEnd, ...target } = targetAndTransition;\n const defaultTransition = visualElement.getDefaultTransition();\n transition = transition\n ? (0,_utils_resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveTransition)(transition, defaultTransition)\n : defaultTransition;\n const reduceMotion = transition?.reduceMotion;\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key, visualElement.latestValues[key] ?? null);\n const valueTarget = target[key];\n if (valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n ...(0,_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_1__.getValueTransition)(transition || {}, key),\n };\n /**\n * If the value is already at the defined target, skip the animation.\n */\n const currentValue = value.get();\n if (currentValue !== undefined &&\n !value.isAnimating &&\n !Array.isArray(valueTarget) &&\n valueTarget === currentValue &&\n !valueTransition.velocity) {\n continue;\n }\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false;\n if (window.MotionHandoffAnimation) {\n const appearId = (0,_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_2__.getOptimisedAppearId)(visualElement);\n if (appearId) {\n const startTime = window.MotionHandoffAnimation(appearId, key, _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__.frame);\n if (startTime !== null) {\n valueTransition.startTime = startTime;\n isHandoff = true;\n }\n }\n }\n (0,_value_will_change_add_will_change_mjs__WEBPACK_IMPORTED_MODULE_4__.addValueToWillChange)(visualElement, key);\n const shouldReduceMotion = reduceMotion ?? visualElement.shouldReduceMotion;\n value.start((0,_motion_value_mjs__WEBPACK_IMPORTED_MODULE_5__.animateMotionValue)(key, value, valueTarget, shouldReduceMotion && _render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_6__.positionalKeys.has(key)\n ? { type: false }\n : valueTransition, visualElement, isHandoff));\n const animation = value.animation;\n if (animation) {\n animations.push(animation);\n }\n }\n if (transitionEnd) {\n const applyTransitionEnd = () => _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__.frame.update(() => {\n transitionEnd && (0,_render_utils_setters_mjs__WEBPACK_IMPORTED_MODULE_7__.setTarget)(visualElement, transitionEnd);\n });\n if (animations.length) {\n Promise.all(animations).then(applyTransitionEnd);\n }\n else {\n applyTransitionEnd();\n }\n }\n return animations;\n}\n\n\n//# sourceMappingURL=visual-element-target.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL3Zpc3VhbC1lbGVtZW50LXRhcmdldC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXVFO0FBQ0g7QUFDRTtBQUNYO0FBQ3dCO0FBQ047QUFDckI7QUFDTjs7QUFFbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLCtCQUErQjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZEQUE2RCxzQ0FBc0MsSUFBSTtBQUN2RyxVQUFVLHVDQUF1QztBQUNqRDtBQUNBO0FBQ0EsVUFBVSxnRkFBaUI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtRkFBa0IsaUJBQWlCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qix5RkFBb0I7QUFDakQ7QUFDQSwrRUFBK0UsdURBQUs7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw0RkFBb0I7QUFDNUI7QUFDQSxvQkFBb0IscUVBQWtCLGdEQUFnRCwyRUFBYztBQUNwRyxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsdURBQUs7QUFDOUMsNkJBQTZCLG9FQUFTO0FBQ3RDLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vaW50ZXJmYWNlcy92aXN1YWwtZWxlbWVudC10YXJnZXQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFZhbHVlVHJhbnNpdGlvbiB9IGZyb20gJy4uL3V0aWxzL2dldC12YWx1ZS10cmFuc2l0aW9uLm1qcyc7XG5pbXBvcnQgeyByZXNvbHZlVHJhbnNpdGlvbiB9IGZyb20gJy4uL3V0aWxzL3Jlc29sdmUtdHJhbnNpdGlvbi5tanMnO1xuaW1wb3J0IHsgcG9zaXRpb25hbEtleXMgfSBmcm9tICcuLi8uLi9yZW5kZXIvdXRpbHMva2V5cy1wb3NpdGlvbi5tanMnO1xuaW1wb3J0IHsgc2V0VGFyZ2V0IH0gZnJvbSAnLi4vLi4vcmVuZGVyL3V0aWxzL3NldHRlcnMubWpzJztcbmltcG9ydCB7IGFkZFZhbHVlVG9XaWxsQ2hhbmdlIH0gZnJvbSAnLi4vLi4vdmFsdWUvd2lsbC1jaGFuZ2UvYWRkLXdpbGwtY2hhbmdlLm1qcyc7XG5pbXBvcnQgeyBnZXRPcHRpbWlzZWRBcHBlYXJJZCB9IGZyb20gJy4uL29wdGltaXplZC1hcHBlYXIvZ2V0LWFwcGVhci1pZC5tanMnO1xuaW1wb3J0IHsgYW5pbWF0ZU1vdGlvblZhbHVlIH0gZnJvbSAnLi9tb3Rpb24tdmFsdWUubWpzJztcbmltcG9ydCB7IGZyYW1lIH0gZnJvbSAnLi4vLi4vZnJhbWVsb29wL2ZyYW1lLm1qcyc7XG5cbi8qKlxuICogRGVjaWRlIHdoZXRoZXIgd2Ugc2hvdWxkIGJsb2NrIHRoaXMgYW5pbWF0aW9uLiBQcmV2aW91c2x5LCB3ZSBhY2hpZXZlZCB0aGlzXG4gKiBqdXN0IGJ5IGNoZWNraW5nIHdoZXRoZXIgdGhlIGtleSB3YXMgbGlzdGVkIGluIHByb3RlY3RlZEtleXMsIGJ1dCB0aGlzXG4gKiBwb3NlZCBwcm9ibGVtcyBpZiBhbiBhbmltYXRpb24gd2FzIHRyaWdnZXJlZCBieSBhZnRlckNoaWxkcmVuIGFuZCBwcm90ZWN0ZWRLZXlzXG4gKiBoYWQgYmVlbiBzZXQgdG8gdHJ1ZSBpbiB0aGUgbWVhbnRpbWUuXG4gKi9cbmZ1bmN0aW9uIHNob3VsZEJsb2NrQW5pbWF0aW9uKHsgcHJvdGVjdGVkS2V5cywgbmVlZHNBbmltYXRpbmcgfSwga2V5KSB7XG4gICAgY29uc3Qgc2hvdWxkQmxvY2sgPSBwcm90ZWN0ZWRLZXlzLmhhc093blByb3BlcnR5KGtleSkgJiYgbmVlZHNBbmltYXRpbmdba2V5XSAhPT0gdHJ1ZTtcbiAgICBuZWVkc0FuaW1hdGluZ1trZXldID0gZmFsc2U7XG4gICAgcmV0dXJuIHNob3VsZEJsb2NrO1xufVxuZnVuY3Rpb24gYW5pbWF0ZVRhcmdldCh2aXN1YWxFbGVtZW50LCB0YXJnZXRBbmRUcmFuc2l0aW9uLCB7IGRlbGF5ID0gMCwgdHJhbnNpdGlvbk92ZXJyaWRlLCB0eXBlIH0gPSB7fSkge1xuICAgIGxldCB7IHRyYW5zaXRpb24sIHRyYW5zaXRpb25FbmQsIC4uLnRhcmdldCB9ID0gdGFyZ2V0QW5kVHJhbnNpdGlvbjtcbiAgICBjb25zdCBkZWZhdWx0VHJhbnNpdGlvbiA9IHZpc3VhbEVsZW1lbnQuZ2V0RGVmYXVsdFRyYW5zaXRpb24oKTtcbiAgICB0cmFuc2l0aW9uID0gdHJhbnNpdGlvblxuICAgICAgICA/IHJlc29sdmVUcmFuc2l0aW9uKHRyYW5zaXRpb24sIGRlZmF1bHRUcmFuc2l0aW9uKVxuICAgICAgICA6IGRlZmF1bHRUcmFuc2l0aW9uO1xuICAgIGNvbnN0IHJlZHVjZU1vdGlvbiA9IHRyYW5zaXRpb24/LnJlZHVjZU1vdGlvbjtcbiAgICBpZiAodHJhbnNpdGlvbk92ZXJyaWRlKVxuICAgICAgICB0cmFuc2l0aW9uID0gdHJhbnNpdGlvbk92ZXJyaWRlO1xuICAgIGNvbnN0IGFuaW1hdGlvbnMgPSBbXTtcbiAgICBjb25zdCBhbmltYXRpb25UeXBlU3RhdGUgPSB0eXBlICYmXG4gICAgICAgIHZpc3VhbEVsZW1lbnQuYW5pbWF0aW9uU3RhdGUgJiZcbiAgICAgICAgdmlzdWFsRWxlbWVudC5hbmltYXRpb25TdGF0ZS5nZXRTdGF0ZSgpW3R5cGVdO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRhcmdldCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZpc3VhbEVsZW1lbnQuZ2V0VmFsdWUoa2V5LCB2aXN1YWxFbGVtZW50LmxhdGVzdFZhbHVlc1trZXldID8/IG51bGwpO1xuICAgICAgICBjb25zdCB2YWx1ZVRhcmdldCA9IHRhcmdldFtrZXldO1xuICAgICAgICBpZiAodmFsdWVUYXJnZXQgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgKGFuaW1hdGlvblR5cGVTdGF0ZSAmJlxuICAgICAgICAgICAgICAgIHNob3VsZEJsb2NrQW5pbWF0aW9uKGFuaW1hdGlvblR5cGVTdGF0ZSwga2V5KSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlVHJhbnNpdGlvbiA9IHtcbiAgICAgICAgICAgIGRlbGF5LFxuICAgICAgICAgICAgLi4uZ2V0VmFsdWVUcmFuc2l0aW9uKHRyYW5zaXRpb24gfHwge30sIGtleSksXG4gICAgICAgIH07XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBhdCB0aGUgZGVmaW5lZCB0YXJnZXQsIHNraXAgdGhlIGFuaW1hdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHZhbHVlLmdldCgpO1xuICAgICAgICBpZiAoY3VycmVudFZhbHVlICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICF2YWx1ZS5pc0FuaW1hdGluZyAmJlxuICAgICAgICAgICAgIUFycmF5LmlzQXJyYXkodmFsdWVUYXJnZXQpICYmXG4gICAgICAgICAgICB2YWx1ZVRhcmdldCA9PT0gY3VycmVudFZhbHVlICYmXG4gICAgICAgICAgICAhdmFsdWVUcmFuc2l0aW9uLnZlbG9jaXR5KSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhpcyBpcyB0aGUgZmlyc3QgdGltZSBhIHZhbHVlIGlzIGJlaW5nIGFuaW1hdGVkLCBjaGVja1xuICAgICAgICAgKiB0byBzZWUgaWYgd2UncmUgaGFuZGxpbmcgb2ZmIGZyb20gYW4gZXhpc3RpbmcgYW5pbWF0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGlzSGFuZG9mZiA9IGZhbHNlO1xuICAgICAgICBpZiAod2luZG93Lk1vdGlvbkhhbmRvZmZBbmltYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGFwcGVhcklkID0gZ2V0T3B0aW1pc2VkQXBwZWFySWQodmlzdWFsRWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoYXBwZWFySWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSB3aW5kb3cuTW90aW9uSGFuZG9mZkFuaW1hdGlvbihhcHBlYXJJZCwga2V5LCBmcmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXJ0VGltZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZVRyYW5zaXRpb24uc3RhcnRUaW1lID0gc3RhcnRUaW1lO1xuICAgICAgICAgICAgICAgICAgICBpc0hhbmRvZmYgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhZGRWYWx1ZVRvV2lsbENoYW5nZSh2aXN1YWxFbGVtZW50LCBrZXkpO1xuICAgICAgICBjb25zdCBzaG91bGRSZWR1Y2VNb3Rpb24gPSByZWR1Y2VNb3Rpb24gPz8gdmlzdWFsRWxlbWVudC5zaG91bGRSZWR1Y2VNb3Rpb247XG4gICAgICAgIHZhbHVlLnN0YXJ0KGFuaW1hdGVNb3Rpb25WYWx1ZShrZXksIHZhbHVlLCB2YWx1ZVRhcmdldCwgc2hvdWxkUmVkdWNlTW90aW9uICYmIHBvc2l0aW9uYWxLZXlzLmhhcyhrZXkpXG4gICAgICAgICAgICA/IHsgdHlwZTogZmFsc2UgfVxuICAgICAgICAgICAgOiB2YWx1ZVRyYW5zaXRpb24sIHZpc3VhbEVsZW1lbnQsIGlzSGFuZG9mZikpO1xuICAgICAgICBjb25zdCBhbmltYXRpb24gPSB2YWx1ZS5hbmltYXRpb247XG4gICAgICAgIGlmIChhbmltYXRpb24pIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbnMucHVzaChhbmltYXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh0cmFuc2l0aW9uRW5kKSB7XG4gICAgICAgIGNvbnN0IGFwcGx5VHJhbnNpdGlvbkVuZCA9ICgpID0+IGZyYW1lLnVwZGF0ZSgoKSA9PiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uRW5kICYmIHNldFRhcmdldCh2aXN1YWxFbGVtZW50LCB0cmFuc2l0aW9uRW5kKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChhbmltYXRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgUHJvbWlzZS5hbGwoYW5pbWF0aW9ucykudGhlbihhcHBseVRyYW5zaXRpb25FbmQpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgYXBwbHlUcmFuc2l0aW9uRW5kKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFuaW1hdGlvbnM7XG59XG5cbmV4cG9ydCB7IGFuaW1hdGVUYXJnZXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZpc3VhbC1lbGVtZW50LXRhcmdldC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs": +/*!*****************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.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 */ animateVariant: () => (/* binding */ animateVariant)\n/* harmony export */ });\n/* harmony import */ var _render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/utils/resolve-dynamic-variants.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/calc-child-stagger.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs\");\n/* harmony import */ var _visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./visual-element-target.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs\");\n\n\n\n\nfunction animateVariant(visualElement, variant, options = {}) {\n const resolved = (0,_render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveVariant)(visualElement, variant, options.type === \"exit\"\n ? visualElement.presenceContext?.custom\n : undefined);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => Promise.all((0,_visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_1__.animateTarget)(visualElement, resolved, options))\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, forwardDelay, delayChildren, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delay = 0, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n for (const child of visualElement.variantChildren) {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delay +\n (typeof delayChildren === \"function\" ? 0 : delayChildren) +\n (0,_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_2__.calcChildStagger)(visualElement.variantChildren, child, delayChildren, staggerChildren, staggerDirection),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n }\n return Promise.all(animations);\n}\n\n\n//# sourceMappingURL=visual-element-variant.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL3Zpc3VhbC1lbGVtZW50LXZhcmlhbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBaUY7QUFDZDtBQUNQOztBQUU1RCw0REFBNEQ7QUFDNUQscUJBQXFCLDBGQUFjO0FBQ25DO0FBQ0E7QUFDQSxVQUFVLDBEQUEwRDtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHlFQUFhO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHdEQUF3RDtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksT0FBTztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsK0VBQWdCO0FBQ2hDLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRTBCO0FBQzFCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vaW50ZXJmYWNlcy92aXN1YWwtZWxlbWVudC12YXJpYW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlVmFyaWFudCB9IGZyb20gJy4uLy4uL3JlbmRlci91dGlscy9yZXNvbHZlLWR5bmFtaWMtdmFyaWFudHMubWpzJztcbmltcG9ydCB7IGNhbGNDaGlsZFN0YWdnZXIgfSBmcm9tICcuLi91dGlscy9jYWxjLWNoaWxkLXN0YWdnZXIubWpzJztcbmltcG9ydCB7IGFuaW1hdGVUYXJnZXQgfSBmcm9tICcuL3Zpc3VhbC1lbGVtZW50LXRhcmdldC5tanMnO1xuXG5mdW5jdGlvbiBhbmltYXRlVmFyaWFudCh2aXN1YWxFbGVtZW50LCB2YXJpYW50LCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIHZhcmlhbnQsIG9wdGlvbnMudHlwZSA9PT0gXCJleGl0XCJcbiAgICAgICAgPyB2aXN1YWxFbGVtZW50LnByZXNlbmNlQ29udGV4dD8uY3VzdG9tXG4gICAgICAgIDogdW5kZWZpbmVkKTtcbiAgICBsZXQgeyB0cmFuc2l0aW9uID0gdmlzdWFsRWxlbWVudC5nZXREZWZhdWx0VHJhbnNpdGlvbigpIHx8IHt9IH0gPSByZXNvbHZlZCB8fCB7fTtcbiAgICBpZiAob3B0aW9ucy50cmFuc2l0aW9uT3ZlcnJpZGUpIHtcbiAgICAgICAgdHJhbnNpdGlvbiA9IG9wdGlvbnMudHJhbnNpdGlvbk92ZXJyaWRlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBJZiB3ZSBoYXZlIGEgdmFyaWFudCwgY3JlYXRlIGEgY2FsbGJhY2sgdGhhdCBydW5zIGl0IGFzIGFuIGFuaW1hdGlvbi5cbiAgICAgKiBPdGhlcndpc2UsIHdlIHJlc29sdmUgYSBQcm9taXNlIGltbWVkaWF0ZWx5IGZvciBhIGNvbXBvc2FibGUgbm8tb3AuXG4gICAgICovXG4gICAgY29uc3QgZ2V0QW5pbWF0aW9uID0gcmVzb2x2ZWRcbiAgICAgICAgPyAoKSA9PiBQcm9taXNlLmFsbChhbmltYXRlVGFyZ2V0KHZpc3VhbEVsZW1lbnQsIHJlc29sdmVkLCBvcHRpb25zKSlcbiAgICAgICAgOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAvKipcbiAgICAgKiBJZiB3ZSBoYXZlIGNoaWxkcmVuLCBjcmVhdGUgYSBjYWxsYmFjayB0aGF0IHJ1bnMgYWxsIHRoZWlyIGFuaW1hdGlvbnMuXG4gICAgICogT3RoZXJ3aXNlLCB3ZSByZXNvbHZlIGEgUHJvbWlzZSBpbW1lZGlhdGVseSBmb3IgYSBjb21wb3NhYmxlIG5vLW9wLlxuICAgICAqL1xuICAgIGNvbnN0IGdldENoaWxkQW5pbWF0aW9ucyA9IHZpc3VhbEVsZW1lbnQudmFyaWFudENoaWxkcmVuICYmIHZpc3VhbEVsZW1lbnQudmFyaWFudENoaWxkcmVuLnNpemVcbiAgICAgICAgPyAoZm9yd2FyZERlbGF5ID0gMCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBkZWxheUNoaWxkcmVuID0gMCwgc3RhZ2dlckNoaWxkcmVuLCBzdGFnZ2VyRGlyZWN0aW9uLCB9ID0gdHJhbnNpdGlvbjtcbiAgICAgICAgICAgIHJldHVybiBhbmltYXRlQ2hpbGRyZW4odmlzdWFsRWxlbWVudCwgdmFyaWFudCwgZm9yd2FyZERlbGF5LCBkZWxheUNoaWxkcmVuLCBzdGFnZ2VyQ2hpbGRyZW4sIHN0YWdnZXJEaXJlY3Rpb24sIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIDogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgLyoqXG4gICAgICogSWYgdGhlIHRyYW5zaXRpb24gZXhwbGljaXRseSBkZWZpbmVzIGEgXCJ3aGVuXCIgb3B0aW9uLCB3ZSBuZWVkIHRvIHJlc29sdmUgZWl0aGVyXG4gICAgICogdGhpcyBhbmltYXRpb24gb3IgYWxsIGNoaWxkcmVuIGFuaW1hdGlvbnMgYmVmb3JlIHBsYXlpbmcgdGhlIG90aGVyLlxuICAgICAqL1xuICAgIGNvbnN0IHsgd2hlbiB9ID0gdHJhbnNpdGlvbjtcbiAgICBpZiAod2hlbikge1xuICAgICAgICBjb25zdCBbZmlyc3QsIGxhc3RdID0gd2hlbiA9PT0gXCJiZWZvcmVDaGlsZHJlblwiXG4gICAgICAgICAgICA/IFtnZXRBbmltYXRpb24sIGdldENoaWxkQW5pbWF0aW9uc11cbiAgICAgICAgICAgIDogW2dldENoaWxkQW5pbWF0aW9ucywgZ2V0QW5pbWF0aW9uXTtcbiAgICAgICAgcmV0dXJuIGZpcnN0KCkudGhlbigoKSA9PiBsYXN0KCkpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFtnZXRBbmltYXRpb24oKSwgZ2V0Q2hpbGRBbmltYXRpb25zKG9wdGlvbnMuZGVsYXkpXSk7XG4gICAgfVxufVxuZnVuY3Rpb24gYW5pbWF0ZUNoaWxkcmVuKHZpc3VhbEVsZW1lbnQsIHZhcmlhbnQsIGRlbGF5ID0gMCwgZGVsYXlDaGlsZHJlbiA9IDAsIHN0YWdnZXJDaGlsZHJlbiA9IDAsIHN0YWdnZXJEaXJlY3Rpb24gPSAxLCBvcHRpb25zKSB7XG4gICAgY29uc3QgYW5pbWF0aW9ucyA9IFtdO1xuICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdmlzdWFsRWxlbWVudC52YXJpYW50Q2hpbGRyZW4pIHtcbiAgICAgICAgY2hpbGQubm90aWZ5KFwiQW5pbWF0aW9uU3RhcnRcIiwgdmFyaWFudCk7XG4gICAgICAgIGFuaW1hdGlvbnMucHVzaChhbmltYXRlVmFyaWFudChjaGlsZCwgdmFyaWFudCwge1xuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIGRlbGF5OiBkZWxheSArXG4gICAgICAgICAgICAgICAgKHR5cGVvZiBkZWxheUNoaWxkcmVuID09PSBcImZ1bmN0aW9uXCIgPyAwIDogZGVsYXlDaGlsZHJlbikgK1xuICAgICAgICAgICAgICAgIGNhbGNDaGlsZFN0YWdnZXIodmlzdWFsRWxlbWVudC52YXJpYW50Q2hpbGRyZW4sIGNoaWxkLCBkZWxheUNoaWxkcmVuLCBzdGFnZ2VyQ2hpbGRyZW4sIHN0YWdnZXJEaXJlY3Rpb24pLFxuICAgICAgICB9KS50aGVuKCgpID0+IGNoaWxkLm5vdGlmeShcIkFuaW1hdGlvbkNvbXBsZXRlXCIsIHZhcmlhbnQpKSk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLmFsbChhbmltYXRpb25zKTtcbn1cblxuZXhwb3J0IHsgYW5pbWF0ZVZhcmlhbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZpc3VhbC1lbGVtZW50LXZhcmlhbnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.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 */ animateVisualElement: () => (/* binding */ animateVisualElement)\n/* harmony export */ });\n/* harmony import */ var _render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../render/utils/resolve-dynamic-variants.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./visual-element-target.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs\");\n/* harmony import */ var _visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./visual-element-variant.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs\");\n\n\n\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => (0,_visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__.animateVariant)(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = (0,_visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__.animateVariant)(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? (0,_render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_1__.resolveVariant)(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all((0,_visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_2__.animateTarget)(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => {\n visualElement.notify(\"AnimationComplete\", definition);\n });\n}\n\n\n//# sourceMappingURL=visual-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL3Zpc3VhbC1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWlGO0FBQ3JCO0FBQ0U7O0FBRTlELHFFQUFxRTtBQUNyRTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsMkVBQWM7QUFDckU7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDJFQUFjO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLGNBQWMsMEZBQWM7QUFDNUI7QUFDQSxnQ0FBZ0MseUVBQWE7QUFDN0M7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVnQztBQUNoQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmVWYXJpYW50IH0gZnJvbSAnLi4vLi4vcmVuZGVyL3V0aWxzL3Jlc29sdmUtZHluYW1pYy12YXJpYW50cy5tanMnO1xuaW1wb3J0IHsgYW5pbWF0ZVRhcmdldCB9IGZyb20gJy4vdmlzdWFsLWVsZW1lbnQtdGFyZ2V0Lm1qcyc7XG5pbXBvcnQgeyBhbmltYXRlVmFyaWFudCB9IGZyb20gJy4vdmlzdWFsLWVsZW1lbnQtdmFyaWFudC5tanMnO1xuXG5mdW5jdGlvbiBhbmltYXRlVmlzdWFsRWxlbWVudCh2aXN1YWxFbGVtZW50LCBkZWZpbml0aW9uLCBvcHRpb25zID0ge30pIHtcbiAgICB2aXN1YWxFbGVtZW50Lm5vdGlmeShcIkFuaW1hdGlvblN0YXJ0XCIsIGRlZmluaXRpb24pO1xuICAgIGxldCBhbmltYXRpb247XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbikpIHtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9ucyA9IGRlZmluaXRpb24ubWFwKCh2YXJpYW50KSA9PiBhbmltYXRlVmFyaWFudCh2aXN1YWxFbGVtZW50LCB2YXJpYW50LCBvcHRpb25zKSk7XG4gICAgICAgIGFuaW1hdGlvbiA9IFByb21pc2UuYWxsKGFuaW1hdGlvbnMpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZGVmaW5pdGlvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBhbmltYXRpb24gPSBhbmltYXRlVmFyaWFudCh2aXN1YWxFbGVtZW50LCBkZWZpbml0aW9uLCBvcHRpb25zKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkRGVmaW5pdGlvbiA9IHR5cGVvZiBkZWZpbml0aW9uID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgID8gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgZGVmaW5pdGlvbiwgb3B0aW9ucy5jdXN0b20pXG4gICAgICAgICAgICA6IGRlZmluaXRpb247XG4gICAgICAgIGFuaW1hdGlvbiA9IFByb21pc2UuYWxsKGFuaW1hdGVUYXJnZXQodmlzdWFsRWxlbWVudCwgcmVzb2x2ZWREZWZpbml0aW9uLCBvcHRpb25zKSk7XG4gICAgfVxuICAgIHJldHVybiBhbmltYXRpb24udGhlbigoKSA9PiB7XG4gICAgICAgIHZpc3VhbEVsZW1lbnQubm90aWZ5KFwiQW5pbWF0aW9uQ29tcGxldGVcIiwgZGVmaW5pdGlvbik7XG4gICAgfSk7XG59XG5cbmV4cG9ydCB7IGFuaW1hdGVWaXN1YWxFbGVtZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD12aXN1YWwtZWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.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 */ DOMKeyframesResolver: () => (/* binding */ DOMKeyframesResolver)\n/* harmony export */ });\n/* harmony import */ var _render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../render/utils/keys-position.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\");\n/* harmony import */ var _value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../value/types/dimensions.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\");\n/* harmony import */ var _utils_css_variables_conversion_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/css-variables-conversion.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs\");\n/* harmony import */ var _utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/is-css-variable.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./KeyframesResolver.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var _utils_is_none_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/is-none.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs\");\n/* harmony import */ var _utils_make_none_animatable_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/make-none-animatable.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs\");\n/* harmony import */ var _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/unit-conversion.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\");\n\n\n\n\n\n\n\n\n\nclass DOMKeyframesResolver extends _KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__.KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {\n super(unresolvedKeyframes, onComplete, name, motionValue, element, true);\n }\n readKeyframes() {\n const { unresolvedKeyframes, element, name } = this;\n if (!element || !element.current)\n return;\n super.readKeyframes();\n /**\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n let keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\") {\n keyframe = keyframe.trim();\n if ((0,_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableToken)(keyframe)) {\n const resolved = (0,_utils_css_variables_conversion_mjs__WEBPACK_IMPORTED_MODULE_2__.getVariableValue)(keyframe, element.current);\n if (resolved !== undefined) {\n unresolvedKeyframes[i] = resolved;\n }\n if (i === unresolvedKeyframes.length - 1) {\n this.finalKeyframe = keyframe;\n }\n }\n }\n }\n /**\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\n * have a far bigger performance impact.\n */\n this.resolveNoneKeyframes();\n /**\n * Check to see if unit type has changed. If so schedule jobs that will\n * temporarily set styles to the destination keyframes.\n * Skip if we have more than two keyframes or this isn't a positional value.\n * TODO: We can throw if there are multiple keyframes and the value type changes.\n */\n if (!_render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_3__.positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n return;\n }\n const [origin, target] = unresolvedKeyframes;\n const originType = (0,_value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__.findDimensionValueType)(origin);\n const targetType = (0,_value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__.findDimensionValueType)(target);\n /**\n * If one keyframe contains embedded CSS variables (e.g. in calc()) and the other\n * doesn't, we need to measure to convert to pixels. This handles GitHub issue #3410.\n */\n const originHasVar = (0,_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.containsCSSVariable)(origin);\n const targetHasVar = (0,_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.containsCSSVariable)(target);\n if (originHasVar !== targetHasVar && _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name]) {\n this.needsMeasurement = true;\n return;\n }\n /**\n * Either we don't recognise these value types or we can animate between them.\n */\n if (originType === targetType)\n return;\n /**\n * If both values are numbers or pixels, we can animate between them by\n * converting them to numbers.\n */\n if ((0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.isNumOrPxType)(originType) && (0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.isNumOrPxType)(targetType)) {\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const value = unresolvedKeyframes[i];\n if (typeof value === \"string\") {\n unresolvedKeyframes[i] = parseFloat(value);\n }\n }\n }\n else if (_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name]) {\n /**\n * Else, the only way to resolve this is by measuring the element.\n */\n this.needsMeasurement = true;\n }\n }\n resolveNoneKeyframes() {\n const { unresolvedKeyframes, name } = this;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (unresolvedKeyframes[i] === null ||\n (0,_utils_is_none_mjs__WEBPACK_IMPORTED_MODULE_6__.isNone)(unresolvedKeyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n }\n if (noneKeyframeIndexes.length) {\n (0,_utils_make_none_animatable_mjs__WEBPACK_IMPORTED_MODULE_7__.makeNoneKeyframesAnimatable)(unresolvedKeyframes, noneKeyframeIndexes, name);\n }\n }\n measureInitialState() {\n const { element, unresolvedKeyframes, name } = this;\n if (!element || !element.current)\n return;\n if (name === \"height\") {\n this.suspendedScrollY = window.pageYOffset;\n }\n this.measuredOrigin = _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n unresolvedKeyframes[0] = this.measuredOrigin;\n // Set final key frame to measure after next render\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (measureKeyframe !== undefined) {\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n }\n }\n measureEndState() {\n const { element, name, unresolvedKeyframes } = this;\n if (!element || !element.current)\n return;\n const value = element.getValue(name);\n value && value.jump(this.measuredOrigin, false);\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n unresolvedKeyframes[finalKeyframeIndex] = _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n if (finalKeyframe !== null && this.finalKeyframe === undefined) {\n this.finalKeyframe = finalKeyframe;\n }\n // If we removed transform values, reapply them before the next render\n if (this.removedTransforms?.length) {\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n element\n .getValue(unsetTransformName)\n .set(unsetTransformValue);\n });\n }\n this.resolveNoneKeyframes();\n }\n}\n\n\n//# sourceMappingURL=DOMKeyframesResolver.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvRE9NS2V5ZnJhbWVzUmVzb2x2ZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFzRTtBQUNJO0FBQ0Q7QUFDYztBQUM1QjtBQUNkO0FBQ2tDO0FBQ0Q7O0FBRTlFLG1DQUFtQyxvRUFBZ0I7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IscUNBQXFDO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnQ0FBZ0M7QUFDeEQ7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDhFQUFrQjtBQUN0QyxxQ0FBcUMscUZBQWdCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsMkVBQWM7QUFDM0I7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLG1GQUFzQjtBQUNqRCwyQkFBMkIsbUZBQXNCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLCtFQUFtQjtBQUNoRCw2QkFBNkIsK0VBQW1CO0FBQ2hELDZDQUE2Qyx3RUFBZ0I7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx5RUFBYSxnQkFBZ0IseUVBQWE7QUFDdEQsNEJBQTRCLGdDQUFnQztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsd0VBQWdCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDRCQUE0QjtBQUM1QztBQUNBLHdCQUF3QixnQ0FBZ0M7QUFDeEQ7QUFDQSxnQkFBZ0IsMERBQU07QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDRGQUEyQjtBQUN2QztBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IscUNBQXFDO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsd0VBQWdCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IscUNBQXFDO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRCx3RUFBZ0I7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVnQztBQUNoQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9ET01LZXlmcmFtZXNSZXNvbHZlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcG9zaXRpb25hbEtleXMgfSBmcm9tICcuLi8uLi9yZW5kZXIvdXRpbHMva2V5cy1wb3NpdGlvbi5tanMnO1xuaW1wb3J0IHsgZmluZERpbWVuc2lvblZhbHVlVHlwZSB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2RpbWVuc2lvbnMubWpzJztcbmltcG9ydCB7IGdldFZhcmlhYmxlVmFsdWUgfSBmcm9tICcuLi91dGlscy9jc3MtdmFyaWFibGVzLWNvbnZlcnNpb24ubWpzJztcbmltcG9ydCB7IGlzQ1NTVmFyaWFibGVUb2tlbiwgY29udGFpbnNDU1NWYXJpYWJsZSB9IGZyb20gJy4uL3V0aWxzL2lzLWNzcy12YXJpYWJsZS5tanMnO1xuaW1wb3J0IHsgS2V5ZnJhbWVSZXNvbHZlciB9IGZyb20gJy4vS2V5ZnJhbWVzUmVzb2x2ZXIubWpzJztcbmltcG9ydCB7IGlzTm9uZSB9IGZyb20gJy4vdXRpbHMvaXMtbm9uZS5tanMnO1xuaW1wb3J0IHsgbWFrZU5vbmVLZXlmcmFtZXNBbmltYXRhYmxlIH0gZnJvbSAnLi91dGlscy9tYWtlLW5vbmUtYW5pbWF0YWJsZS5tanMnO1xuaW1wb3J0IHsgcG9zaXRpb25hbFZhbHVlcywgaXNOdW1PclB4VHlwZSB9IGZyb20gJy4vdXRpbHMvdW5pdC1jb252ZXJzaW9uLm1qcyc7XG5cbmNsYXNzIERPTUtleWZyYW1lc1Jlc29sdmVyIGV4dGVuZHMgS2V5ZnJhbWVSZXNvbHZlciB7XG4gICAgY29uc3RydWN0b3IodW5yZXNvbHZlZEtleWZyYW1lcywgb25Db21wbGV0ZSwgbmFtZSwgbW90aW9uVmFsdWUsIGVsZW1lbnQpIHtcbiAgICAgICAgc3VwZXIodW5yZXNvbHZlZEtleWZyYW1lcywgb25Db21wbGV0ZSwgbmFtZSwgbW90aW9uVmFsdWUsIGVsZW1lbnQsIHRydWUpO1xuICAgIH1cbiAgICByZWFkS2V5ZnJhbWVzKCkge1xuICAgICAgICBjb25zdCB7IHVucmVzb2x2ZWRLZXlmcmFtZXMsIGVsZW1lbnQsIG5hbWUgfSA9IHRoaXM7XG4gICAgICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzdXBlci5yZWFkS2V5ZnJhbWVzKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBhbnkga2V5ZnJhbWUgaXMgYSBDU1MgdmFyaWFibGUsIHdlIG5lZWQgdG8gZmluZCBpdHMgdmFsdWUgYnkgc2FtcGxpbmcgdGhlIGVsZW1lbnRcbiAgICAgICAgICovXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgbGV0IGtleWZyYW1lID0gdW5yZXNvbHZlZEtleWZyYW1lc1tpXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2Yga2V5ZnJhbWUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICBrZXlmcmFtZSA9IGtleWZyYW1lLnRyaW0oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNDU1NWYXJpYWJsZVRva2VuKGtleWZyYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXNvbHZlZCA9IGdldFZhcmlhYmxlVmFsdWUoa2V5ZnJhbWUsIGVsZW1lbnQuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNvbHZlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1bnJlc29sdmVkS2V5ZnJhbWVzW2ldID0gcmVzb2x2ZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT09IHVucmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5hbEtleWZyYW1lID0ga2V5ZnJhbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJlc29sdmUgXCJub25lXCIgdmFsdWVzLiBXZSBkbyB0aGlzIHBvdGVudGlhbGx5IHR3aWNlIC0gb25jZSBiZWZvcmUgYW5kIG9uY2UgYWZ0ZXIgbWVhc3VyaW5nIGtleWZyYW1lcy5cbiAgICAgICAgICogVGhpcyBjb3VsZCBiZSBzZWVuIGFzIGluZWZmaWNpZW50IGJ1dCBpdCdzIGEgdHJhZGUtb2ZmIHRvIGF2b2lkIG1lYXN1cmVtZW50cyBpbiBtb3JlIHNpdHVhdGlvbnMsIHdoaWNoXG4gICAgICAgICAqIGhhdmUgYSBmYXIgYmlnZ2VyIHBlcmZvcm1hbmNlIGltcGFjdC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucmVzb2x2ZU5vbmVLZXlmcmFtZXMoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENoZWNrIHRvIHNlZSBpZiB1bml0IHR5cGUgaGFzIGNoYW5nZWQuIElmIHNvIHNjaGVkdWxlIGpvYnMgdGhhdCB3aWxsXG4gICAgICAgICAqIHRlbXBvcmFyaWx5IHNldCBzdHlsZXMgdG8gdGhlIGRlc3RpbmF0aW9uIGtleWZyYW1lcy5cbiAgICAgICAgICogU2tpcCBpZiB3ZSBoYXZlIG1vcmUgdGhhbiB0d28ga2V5ZnJhbWVzIG9yIHRoaXMgaXNuJ3QgYSBwb3NpdGlvbmFsIHZhbHVlLlxuICAgICAgICAgKiBUT0RPOiBXZSBjYW4gdGhyb3cgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGtleWZyYW1lcyBhbmQgdGhlIHZhbHVlIHR5cGUgY2hhbmdlcy5cbiAgICAgICAgICovXG4gICAgICAgIGlmICghcG9zaXRpb25hbEtleXMuaGFzKG5hbWUpIHx8IHVucmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoICE9PSAyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgW29yaWdpbiwgdGFyZ2V0XSA9IHVucmVzb2x2ZWRLZXlmcmFtZXM7XG4gICAgICAgIGNvbnN0IG9yaWdpblR5cGUgPSBmaW5kRGltZW5zaW9uVmFsdWVUeXBlKG9yaWdpbik7XG4gICAgICAgIGNvbnN0IHRhcmdldFR5cGUgPSBmaW5kRGltZW5zaW9uVmFsdWVUeXBlKHRhcmdldCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBvbmUga2V5ZnJhbWUgY29udGFpbnMgZW1iZWRkZWQgQ1NTIHZhcmlhYmxlcyAoZS5nLiBpbiBjYWxjKCkpIGFuZCB0aGUgb3RoZXJcbiAgICAgICAgICogZG9lc24ndCwgd2UgbmVlZCB0byBtZWFzdXJlIHRvIGNvbnZlcnQgdG8gcGl4ZWxzLiBUaGlzIGhhbmRsZXMgR2l0SHViIGlzc3VlICMzNDEwLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgb3JpZ2luSGFzVmFyID0gY29udGFpbnNDU1NWYXJpYWJsZShvcmlnaW4pO1xuICAgICAgICBjb25zdCB0YXJnZXRIYXNWYXIgPSBjb250YWluc0NTU1ZhcmlhYmxlKHRhcmdldCk7XG4gICAgICAgIGlmIChvcmlnaW5IYXNWYXIgIT09IHRhcmdldEhhc1ZhciAmJiBwb3NpdGlvbmFsVmFsdWVzW25hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLm5lZWRzTWVhc3VyZW1lbnQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBFaXRoZXIgd2UgZG9uJ3QgcmVjb2duaXNlIHRoZXNlIHZhbHVlIHR5cGVzIG9yIHdlIGNhbiBhbmltYXRlIGJldHdlZW4gdGhlbS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChvcmlnaW5UeXBlID09PSB0YXJnZXRUeXBlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgYm90aCB2YWx1ZXMgYXJlIG51bWJlcnMgb3IgcGl4ZWxzLCB3ZSBjYW4gYW5pbWF0ZSBiZXR3ZWVuIHRoZW0gYnlcbiAgICAgICAgICogY29udmVydGluZyB0aGVtIHRvIG51bWJlcnMuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoaXNOdW1PclB4VHlwZShvcmlnaW5UeXBlKSAmJiBpc051bU9yUHhUeXBlKHRhcmdldFR5cGUpKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHVucmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHVucmVzb2x2ZWRLZXlmcmFtZXNbaV07XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICB1bnJlc29sdmVkS2V5ZnJhbWVzW2ldID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHBvc2l0aW9uYWxWYWx1ZXNbbmFtZV0pIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRWxzZSwgdGhlIG9ubHkgd2F5IHRvIHJlc29sdmUgdGhpcyBpcyBieSBtZWFzdXJpbmcgdGhlIGVsZW1lbnQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMubmVlZHNNZWFzdXJlbWVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzb2x2ZU5vbmVLZXlmcmFtZXMoKSB7XG4gICAgICAgIGNvbnN0IHsgdW5yZXNvbHZlZEtleWZyYW1lcywgbmFtZSB9ID0gdGhpcztcbiAgICAgICAgY29uc3Qgbm9uZUtleWZyYW1lSW5kZXhlcyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHVucmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmICh1bnJlc29sdmVkS2V5ZnJhbWVzW2ldID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgaXNOb25lKHVucmVzb2x2ZWRLZXlmcmFtZXNbaV0pKSB7XG4gICAgICAgICAgICAgICAgbm9uZUtleWZyYW1lSW5kZXhlcy5wdXNoKGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChub25lS2V5ZnJhbWVJbmRleGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgbWFrZU5vbmVLZXlmcmFtZXNBbmltYXRhYmxlKHVucmVzb2x2ZWRLZXlmcmFtZXMsIG5vbmVLZXlmcmFtZUluZGV4ZXMsIG5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG1lYXN1cmVJbml0aWFsU3RhdGUoKSB7XG4gICAgICAgIGNvbnN0IHsgZWxlbWVudCwgdW5yZXNvbHZlZEtleWZyYW1lcywgbmFtZSB9ID0gdGhpcztcbiAgICAgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChuYW1lID09PSBcImhlaWdodFwiKSB7XG4gICAgICAgICAgICB0aGlzLnN1c3BlbmRlZFNjcm9sbFkgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5tZWFzdXJlZE9yaWdpbiA9IHBvc2l0aW9uYWxWYWx1ZXNbbmFtZV0oZWxlbWVudC5tZWFzdXJlVmlld3BvcnRCb3goKSwgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudC5jdXJyZW50KSk7XG4gICAgICAgIHVucmVzb2x2ZWRLZXlmcmFtZXNbMF0gPSB0aGlzLm1lYXN1cmVkT3JpZ2luO1xuICAgICAgICAvLyBTZXQgZmluYWwga2V5IGZyYW1lIHRvIG1lYXN1cmUgYWZ0ZXIgbmV4dCByZW5kZXJcbiAgICAgICAgY29uc3QgbWVhc3VyZUtleWZyYW1lID0gdW5yZXNvbHZlZEtleWZyYW1lc1t1bnJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aCAtIDFdO1xuICAgICAgICBpZiAobWVhc3VyZUtleWZyYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuZ2V0VmFsdWUobmFtZSwgbWVhc3VyZUtleWZyYW1lKS5qdW1wKG1lYXN1cmVLZXlmcmFtZSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG1lYXN1cmVFbmRTdGF0ZSgpIHtcbiAgICAgICAgY29uc3QgeyBlbGVtZW50LCBuYW1lLCB1bnJlc29sdmVkS2V5ZnJhbWVzIH0gPSB0aGlzO1xuICAgICAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlbGVtZW50LmdldFZhbHVlKG5hbWUpO1xuICAgICAgICB2YWx1ZSAmJiB2YWx1ZS5qdW1wKHRoaXMubWVhc3VyZWRPcmlnaW4sIGZhbHNlKTtcbiAgICAgICAgY29uc3QgZmluYWxLZXlmcmFtZUluZGV4ID0gdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBmaW5hbEtleWZyYW1lID0gdW5yZXNvbHZlZEtleWZyYW1lc1tmaW5hbEtleWZyYW1lSW5kZXhdO1xuICAgICAgICB1bnJlc29sdmVkS2V5ZnJhbWVzW2ZpbmFsS2V5ZnJhbWVJbmRleF0gPSBwb3NpdGlvbmFsVmFsdWVzW25hbWVdKGVsZW1lbnQubWVhc3VyZVZpZXdwb3J0Qm94KCksIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQuY3VycmVudCkpO1xuICAgICAgICBpZiAoZmluYWxLZXlmcmFtZSAhPT0gbnVsbCAmJiB0aGlzLmZpbmFsS2V5ZnJhbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5maW5hbEtleWZyYW1lID0gZmluYWxLZXlmcmFtZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiB3ZSByZW1vdmVkIHRyYW5zZm9ybSB2YWx1ZXMsIHJlYXBwbHkgdGhlbSBiZWZvcmUgdGhlIG5leHQgcmVuZGVyXG4gICAgICAgIGlmICh0aGlzLnJlbW92ZWRUcmFuc2Zvcm1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlZFRyYW5zZm9ybXMuZm9yRWFjaCgoW3Vuc2V0VHJhbnNmb3JtTmFtZSwgdW5zZXRUcmFuc2Zvcm1WYWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgIC5nZXRWYWx1ZSh1bnNldFRyYW5zZm9ybU5hbWUpXG4gICAgICAgICAgICAgICAgICAgIC5zZXQodW5zZXRUcmFuc2Zvcm1WYWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc29sdmVOb25lS2V5ZnJhbWVzKCk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBET01LZXlmcmFtZXNSZXNvbHZlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RE9NS2V5ZnJhbWVzUmVzb2x2ZXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.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 */ KeyframeResolver: () => (/* binding */ KeyframeResolver),\n/* harmony export */ flushKeyframeResolvers: () => (/* binding */ flushKeyframeResolvers)\n/* harmony export */ });\n/* harmony import */ var _utils_fill_wildcards_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/fill-wildcards.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs\");\n/* harmony import */ var _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/unit-conversion.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\nconst toResolve = new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nlet isForced = false;\nfunction measureAllKeyframes() {\n if (anyNeedsMeasurement) {\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n const transformsToRestore = new Map();\n /**\n * Write pass\n * If we're measuring elements we want to remove bounding box-changing transforms.\n */\n elementsToMeasure.forEach((element) => {\n const removedTransforms = (0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.removeNonTranslationalTransform)(element);\n if (!removedTransforms.length)\n return;\n transformsToRestore.set(element, removedTransforms);\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n const restore = transformsToRestore.get(element);\n if (restore) {\n restore.forEach(([key, value]) => {\n element.getValue(key)?.set(value);\n });\n }\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n // Write\n resolversToMeasure.forEach((resolver) => {\n if (resolver.suspendedScrollY !== undefined) {\n window.scrollTo(0, resolver.suspendedScrollY);\n }\n });\n }\n anyNeedsMeasurement = false;\n isScheduled = false;\n toResolve.forEach((resolver) => resolver.complete(isForced));\n toResolve.clear();\n}\nfunction readAllKeyframes() {\n toResolve.forEach((resolver) => {\n resolver.readKeyframes();\n if (resolver.needsMeasurement) {\n anyNeedsMeasurement = true;\n }\n });\n}\nfunction flushKeyframeResolvers() {\n isForced = true;\n readAllKeyframes();\n measureAllKeyframes();\n isForced = false;\n}\nclass KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n this.state = \"pending\";\n /**\n * Track whether this resolver is async. If it is, it'll be added to the\n * resolver queue and flushed in the next frame. Resolvers that aren't going\n * to trigger read/write thrashing don't need to be async.\n */\n this.isAsync = false;\n /**\n * Track whether this resolver needs to perform a measurement\n * to resolve its keyframes.\n */\n this.needsMeasurement = false;\n this.unresolvedKeyframes = [...unresolvedKeyframes];\n this.onComplete = onComplete;\n this.name = name;\n this.motionValue = motionValue;\n this.element = element;\n this.isAsync = isAsync;\n }\n scheduleResolve() {\n this.state = \"scheduled\";\n if (this.isAsync) {\n toResolve.add(this);\n if (!isScheduled) {\n isScheduled = true;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.read(readAllKeyframes);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.resolveKeyframes(measureAllKeyframes);\n }\n }\n else {\n this.readKeyframes();\n this.complete();\n }\n }\n readKeyframes() {\n const { unresolvedKeyframes, name, element, motionValue } = this;\n // If initial keyframe is null we need to read it from the DOM\n if (unresolvedKeyframes[0] === null) {\n const currentValue = motionValue?.get();\n // TODO: This doesn't work if the final keyframe is a wildcard\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (currentValue !== undefined) {\n unresolvedKeyframes[0] = currentValue;\n }\n else if (element && name) {\n const valueAsRead = element.readValue(name, finalKeyframe);\n if (valueAsRead !== undefined && valueAsRead !== null) {\n unresolvedKeyframes[0] = valueAsRead;\n }\n }\n if (unresolvedKeyframes[0] === undefined) {\n unresolvedKeyframes[0] = finalKeyframe;\n }\n if (motionValue && currentValue === undefined) {\n motionValue.set(unresolvedKeyframes[0]);\n }\n }\n (0,_utils_fill_wildcards_mjs__WEBPACK_IMPORTED_MODULE_2__.fillWildcards)(unresolvedKeyframes);\n }\n setFinalKeyframe() { }\n measureInitialState() { }\n renderEndStyles() { }\n measureEndState() { }\n complete(isForcedComplete = false) {\n this.state = \"complete\";\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe, isForcedComplete);\n toResolve.delete(this);\n }\n cancel() {\n if (this.state === \"scheduled\") {\n toResolve.delete(this);\n this.state = \"pending\";\n }\n }\n resume() {\n if (this.state === \"pending\")\n this.scheduleResolve();\n }\n}\n\n\n//# sourceMappingURL=KeyframesResolver.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvS2V5ZnJhbWVzUmVzb2x2ZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTJEO0FBQ21CO0FBQzVCOztBQUVsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLDJGQUErQjtBQUNyRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHVEQUFLO0FBQ3JCLGdCQUFnQix1REFBSztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGtEQUFrRDtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHdFQUFhO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFb0Q7QUFDcEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvS2V5ZnJhbWVzUmVzb2x2ZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbGxXaWxkY2FyZHMgfSBmcm9tICcuL3V0aWxzL2ZpbGwtd2lsZGNhcmRzLm1qcyc7XG5pbXBvcnQgeyByZW1vdmVOb25UcmFuc2xhdGlvbmFsVHJhbnNmb3JtIH0gZnJvbSAnLi91dGlscy91bml0LWNvbnZlcnNpb24ubWpzJztcbmltcG9ydCB7IGZyYW1lIH0gZnJvbSAnLi4vLi4vZnJhbWVsb29wL2ZyYW1lLm1qcyc7XG5cbmNvbnN0IHRvUmVzb2x2ZSA9IG5ldyBTZXQoKTtcbmxldCBpc1NjaGVkdWxlZCA9IGZhbHNlO1xubGV0IGFueU5lZWRzTWVhc3VyZW1lbnQgPSBmYWxzZTtcbmxldCBpc0ZvcmNlZCA9IGZhbHNlO1xuZnVuY3Rpb24gbWVhc3VyZUFsbEtleWZyYW1lcygpIHtcbiAgICBpZiAoYW55TmVlZHNNZWFzdXJlbWVudCkge1xuICAgICAgICBjb25zdCByZXNvbHZlcnNUb01lYXN1cmUgPSBBcnJheS5mcm9tKHRvUmVzb2x2ZSkuZmlsdGVyKChyZXNvbHZlcikgPT4gcmVzb2x2ZXIubmVlZHNNZWFzdXJlbWVudCk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzVG9NZWFzdXJlID0gbmV3IFNldChyZXNvbHZlcnNUb01lYXN1cmUubWFwKChyZXNvbHZlcikgPT4gcmVzb2x2ZXIuZWxlbWVudCkpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1zVG9SZXN0b3JlID0gbmV3IE1hcCgpO1xuICAgICAgICAvKipcbiAgICAgICAgICogV3JpdGUgcGFzc1xuICAgICAgICAgKiBJZiB3ZSdyZSBtZWFzdXJpbmcgZWxlbWVudHMgd2Ugd2FudCB0byByZW1vdmUgYm91bmRpbmcgYm94LWNoYW5naW5nIHRyYW5zZm9ybXMuXG4gICAgICAgICAqL1xuICAgICAgICBlbGVtZW50c1RvTWVhc3VyZS5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZW1vdmVkVHJhbnNmb3JtcyA9IHJlbW92ZU5vblRyYW5zbGF0aW9uYWxUcmFuc2Zvcm0oZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAoIXJlbW92ZWRUcmFuc2Zvcm1zLmxlbmd0aClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0cmFuc2Zvcm1zVG9SZXN0b3JlLnNldChlbGVtZW50LCByZW1vdmVkVHJhbnNmb3Jtcyk7XG4gICAgICAgICAgICBlbGVtZW50LnJlbmRlcigpO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gUmVhZFxuICAgICAgICByZXNvbHZlcnNUb01lYXN1cmUuZm9yRWFjaCgocmVzb2x2ZXIpID0+IHJlc29sdmVyLm1lYXN1cmVJbml0aWFsU3RhdGUoKSk7XG4gICAgICAgIC8vIFdyaXRlXG4gICAgICAgIGVsZW1lbnRzVG9NZWFzdXJlLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQucmVuZGVyKCk7XG4gICAgICAgICAgICBjb25zdCByZXN0b3JlID0gdHJhbnNmb3Jtc1RvUmVzdG9yZS5nZXQoZWxlbWVudCk7XG4gICAgICAgICAgICBpZiAocmVzdG9yZSkge1xuICAgICAgICAgICAgICAgIHJlc3RvcmUuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZ2V0VmFsdWUoa2V5KT8uc2V0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFJlYWRcbiAgICAgICAgcmVzb2x2ZXJzVG9NZWFzdXJlLmZvckVhY2goKHJlc29sdmVyKSA9PiByZXNvbHZlci5tZWFzdXJlRW5kU3RhdGUoKSk7XG4gICAgICAgIC8vIFdyaXRlXG4gICAgICAgIHJlc29sdmVyc1RvTWVhc3VyZS5mb3JFYWNoKChyZXNvbHZlcikgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc29sdmVyLnN1c3BlbmRlZFNjcm9sbFkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCByZXNvbHZlci5zdXNwZW5kZWRTY3JvbGxZKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGFueU5lZWRzTWVhc3VyZW1lbnQgPSBmYWxzZTtcbiAgICBpc1NjaGVkdWxlZCA9IGZhbHNlO1xuICAgIHRvUmVzb2x2ZS5mb3JFYWNoKChyZXNvbHZlcikgPT4gcmVzb2x2ZXIuY29tcGxldGUoaXNGb3JjZWQpKTtcbiAgICB0b1Jlc29sdmUuY2xlYXIoKTtcbn1cbmZ1bmN0aW9uIHJlYWRBbGxLZXlmcmFtZXMoKSB7XG4gICAgdG9SZXNvbHZlLmZvckVhY2goKHJlc29sdmVyKSA9PiB7XG4gICAgICAgIHJlc29sdmVyLnJlYWRLZXlmcmFtZXMoKTtcbiAgICAgICAgaWYgKHJlc29sdmVyLm5lZWRzTWVhc3VyZW1lbnQpIHtcbiAgICAgICAgICAgIGFueU5lZWRzTWVhc3VyZW1lbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5mdW5jdGlvbiBmbHVzaEtleWZyYW1lUmVzb2x2ZXJzKCkge1xuICAgIGlzRm9yY2VkID0gdHJ1ZTtcbiAgICByZWFkQWxsS2V5ZnJhbWVzKCk7XG4gICAgbWVhc3VyZUFsbEtleWZyYW1lcygpO1xuICAgIGlzRm9yY2VkID0gZmFsc2U7XG59XG5jbGFzcyBLZXlmcmFtZVJlc29sdmVyIHtcbiAgICBjb25zdHJ1Y3Rvcih1bnJlc29sdmVkS2V5ZnJhbWVzLCBvbkNvbXBsZXRlLCBuYW1lLCBtb3Rpb25WYWx1ZSwgZWxlbWVudCwgaXNBc3luYyA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBcInBlbmRpbmdcIjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyYWNrIHdoZXRoZXIgdGhpcyByZXNvbHZlciBpcyBhc3luYy4gSWYgaXQgaXMsIGl0J2xsIGJlIGFkZGVkIHRvIHRoZVxuICAgICAgICAgKiByZXNvbHZlciBxdWV1ZSBhbmQgZmx1c2hlZCBpbiB0aGUgbmV4dCBmcmFtZS4gUmVzb2x2ZXJzIHRoYXQgYXJlbid0IGdvaW5nXG4gICAgICAgICAqIHRvIHRyaWdnZXIgcmVhZC93cml0ZSB0aHJhc2hpbmcgZG9uJ3QgbmVlZCB0byBiZSBhc3luYy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaXNBc3luYyA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogVHJhY2sgd2hldGhlciB0aGlzIHJlc29sdmVyIG5lZWRzIHRvIHBlcmZvcm0gYSBtZWFzdXJlbWVudFxuICAgICAgICAgKiB0byByZXNvbHZlIGl0cyBrZXlmcmFtZXMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm5lZWRzTWVhc3VyZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51bnJlc29sdmVkS2V5ZnJhbWVzID0gWy4uLnVucmVzb2x2ZWRLZXlmcmFtZXNdO1xuICAgICAgICB0aGlzLm9uQ29tcGxldGUgPSBvbkNvbXBsZXRlO1xuICAgICAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgICAgICB0aGlzLm1vdGlvblZhbHVlID0gbW90aW9uVmFsdWU7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuaXNBc3luYyA9IGlzQXN5bmM7XG4gICAgfVxuICAgIHNjaGVkdWxlUmVzb2x2ZSgpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFwic2NoZWR1bGVkXCI7XG4gICAgICAgIGlmICh0aGlzLmlzQXN5bmMpIHtcbiAgICAgICAgICAgIHRvUmVzb2x2ZS5hZGQodGhpcyk7XG4gICAgICAgICAgICBpZiAoIWlzU2NoZWR1bGVkKSB7XG4gICAgICAgICAgICAgICAgaXNTY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGZyYW1lLnJlYWQocmVhZEFsbEtleWZyYW1lcyk7XG4gICAgICAgICAgICAgICAgZnJhbWUucmVzb2x2ZUtleWZyYW1lcyhtZWFzdXJlQWxsS2V5ZnJhbWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVhZEtleWZyYW1lcygpO1xuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlYWRLZXlmcmFtZXMoKSB7XG4gICAgICAgIGNvbnN0IHsgdW5yZXNvbHZlZEtleWZyYW1lcywgbmFtZSwgZWxlbWVudCwgbW90aW9uVmFsdWUgfSA9IHRoaXM7XG4gICAgICAgIC8vIElmIGluaXRpYWwga2V5ZnJhbWUgaXMgbnVsbCB3ZSBuZWVkIHRvIHJlYWQgaXQgZnJvbSB0aGUgRE9NXG4gICAgICAgIGlmICh1bnJlc29sdmVkS2V5ZnJhbWVzWzBdID09PSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBtb3Rpb25WYWx1ZT8uZ2V0KCk7XG4gICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGRvZXNuJ3Qgd29yayBpZiB0aGUgZmluYWwga2V5ZnJhbWUgaXMgYSB3aWxkY2FyZFxuICAgICAgICAgICAgY29uc3QgZmluYWxLZXlmcmFtZSA9IHVucmVzb2x2ZWRLZXlmcmFtZXNbdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHVucmVzb2x2ZWRLZXlmcmFtZXNbMF0gPSBjdXJyZW50VmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChlbGVtZW50ICYmIG5hbWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZUFzUmVhZCA9IGVsZW1lbnQucmVhZFZhbHVlKG5hbWUsIGZpbmFsS2V5ZnJhbWUpO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUFzUmVhZCAhPT0gdW5kZWZpbmVkICYmIHZhbHVlQXNSZWFkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHVucmVzb2x2ZWRLZXlmcmFtZXNbMF0gPSB2YWx1ZUFzUmVhZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodW5yZXNvbHZlZEtleWZyYW1lc1swXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdW5yZXNvbHZlZEtleWZyYW1lc1swXSA9IGZpbmFsS2V5ZnJhbWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobW90aW9uVmFsdWUgJiYgY3VycmVudFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBtb3Rpb25WYWx1ZS5zZXQodW5yZXNvbHZlZEtleWZyYW1lc1swXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmlsbFdpbGRjYXJkcyh1bnJlc29sdmVkS2V5ZnJhbWVzKTtcbiAgICB9XG4gICAgc2V0RmluYWxLZXlmcmFtZSgpIHsgfVxuICAgIG1lYXN1cmVJbml0aWFsU3RhdGUoKSB7IH1cbiAgICByZW5kZXJFbmRTdHlsZXMoKSB7IH1cbiAgICBtZWFzdXJlRW5kU3RhdGUoKSB7IH1cbiAgICBjb21wbGV0ZShpc0ZvcmNlZENvbXBsZXRlID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFwiY29tcGxldGVcIjtcbiAgICAgICAgdGhpcy5vbkNvbXBsZXRlKHRoaXMudW5yZXNvbHZlZEtleWZyYW1lcywgdGhpcy5maW5hbEtleWZyYW1lLCBpc0ZvcmNlZENvbXBsZXRlKTtcbiAgICAgICAgdG9SZXNvbHZlLmRlbGV0ZSh0aGlzKTtcbiAgICB9XG4gICAgY2FuY2VsKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZSA9PT0gXCJzY2hlZHVsZWRcIikge1xuICAgICAgICAgICAgdG9SZXNvbHZlLmRlbGV0ZSh0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBcInBlbmRpbmdcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXN1bWUoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcInBlbmRpbmdcIilcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZXNvbHZlKCk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBLZXlmcmFtZVJlc29sdmVyLCBmbHVzaEtleWZyYW1lUmVzb2x2ZXJzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1LZXlmcmFtZXNSZXNvbHZlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/get-final.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 */ getFinalKeyframe: () => (/* binding */ getFinalKeyframe)\n/* harmony export */ });\nconst isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe, speed = 1) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const useFirstKeyframe = speed < 0 || (repeat && repeatType !== \"loop\" && repeat % 2 === 1);\n const index = useFirstKeyframe ? 0 : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\n\n//# sourceMappingURL=get-final.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvZ2V0LWZpbmFsLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSx1Q0FBdUMsNkJBQTZCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9nZXQtZmluYWwubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzTm90TnVsbCA9ICh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGw7XG5mdW5jdGlvbiBnZXRGaW5hbEtleWZyYW1lKGtleWZyYW1lcywgeyByZXBlYXQsIHJlcGVhdFR5cGUgPSBcImxvb3BcIiB9LCBmaW5hbEtleWZyYW1lLCBzcGVlZCA9IDEpIHtcbiAgICBjb25zdCByZXNvbHZlZEtleWZyYW1lcyA9IGtleWZyYW1lcy5maWx0ZXIoaXNOb3ROdWxsKTtcbiAgICBjb25zdCB1c2VGaXJzdEtleWZyYW1lID0gc3BlZWQgPCAwIHx8IChyZXBlYXQgJiYgcmVwZWF0VHlwZSAhPT0gXCJsb29wXCIgJiYgcmVwZWF0ICUgMiA9PT0gMSk7XG4gICAgY29uc3QgaW5kZXggPSB1c2VGaXJzdEtleWZyYW1lID8gMCA6IHJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aCAtIDE7XG4gICAgcmV0dXJuICFpbmRleCB8fCBmaW5hbEtleWZyYW1lID09PSB1bmRlZmluZWRcbiAgICAgICAgPyByZXNvbHZlZEtleWZyYW1lc1tpbmRleF1cbiAgICAgICAgOiBmaW5hbEtleWZyYW1lO1xufVxuXG5leHBvcnQgeyBnZXRGaW5hbEtleWZyYW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtZmluYWwubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.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 */ defaultOffset: () => (/* binding */ defaultOffset)\n/* harmony export */ });\n/* harmony import */ var _fill_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fill.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs\");\n\n\nfunction defaultOffset(arr) {\n const offset = [0];\n (0,_fill_mjs__WEBPACK_IMPORTED_MODULE_0__.fillOffset)(offset, arr.length - 1);\n return offset;\n}\n\n\n//# sourceMappingURL=default.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvb2Zmc2V0cy9kZWZhdWx0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF3Qzs7QUFFeEM7QUFDQTtBQUNBLElBQUkscURBQVU7QUFDZDtBQUNBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL2RlZmF1bHQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbGxPZmZzZXQgfSBmcm9tICcuL2ZpbGwubWpzJztcblxuZnVuY3Rpb24gZGVmYXVsdE9mZnNldChhcnIpIHtcbiAgICBjb25zdCBvZmZzZXQgPSBbMF07XG4gICAgZmlsbE9mZnNldChvZmZzZXQsIGFyci5sZW5ndGggLSAxKTtcbiAgICByZXR1cm4gb2Zmc2V0O1xufVxuXG5leHBvcnQgeyBkZWZhdWx0T2Zmc2V0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.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 */ fillOffset: () => (/* binding */ fillOffset)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils/mix/number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.progress)(0, remaining, i);\n offset.push((0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(min, 1, offsetProgress));\n }\n}\n\n\n//# sourceMappingURL=fill.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvb2Zmc2V0cy9maWxsLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBd0M7QUFDa0I7O0FBRTFEO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDLCtCQUErQixzREFBUTtBQUN2QyxvQkFBb0IsZ0VBQVM7QUFDN0I7QUFDQTs7QUFFc0I7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvb2Zmc2V0cy9maWxsLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9ncmVzcyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBtaXhOdW1iZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9taXgvbnVtYmVyLm1qcyc7XG5cbmZ1bmN0aW9uIGZpbGxPZmZzZXQob2Zmc2V0LCByZW1haW5pbmcpIHtcbiAgICBjb25zdCBtaW4gPSBvZmZzZXRbb2Zmc2V0Lmxlbmd0aCAtIDFdO1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IHJlbWFpbmluZzsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldFByb2dyZXNzID0gcHJvZ3Jlc3MoMCwgcmVtYWluaW5nLCBpKTtcbiAgICAgICAgb2Zmc2V0LnB1c2gobWl4TnVtYmVyKG1pbiwgMSwgb2Zmc2V0UHJvZ3Jlc3MpKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IGZpbGxPZmZzZXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZpbGwubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.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 */ convertOffsetToTimes: () => (/* binding */ convertOffsetToTimes)\n/* harmony export */ });\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\n\n//# sourceMappingURL=time.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvb2Zmc2V0cy90aW1lLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBOztBQUVnQztBQUNoQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL3RpbWUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGNvbnZlcnRPZmZzZXRUb1RpbWVzKG9mZnNldCwgZHVyYXRpb24pIHtcbiAgICByZXR1cm4gb2Zmc2V0Lm1hcCgobykgPT4gbyAqIGR1cmF0aW9uKTtcbn1cblxuZXhwb3J0IHsgY29udmVydE9mZnNldFRvVGltZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRpbWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.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 */ fillWildcards: () => (/* binding */ fillWildcards)\n/* harmony export */ });\nfunction fillWildcards(keyframes) {\n for (let i = 1; i < keyframes.length; i++) {\n keyframes[i] ?? (keyframes[i] = keyframes[i - 1]);\n }\n}\n\n\n//# sourceMappingURL=fill-wildcards.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvZmlsbC13aWxkY2FyZHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLG9CQUFvQixzQkFBc0I7QUFDMUM7QUFDQTtBQUNBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy9maWxsLXdpbGRjYXJkcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gZmlsbFdpbGRjYXJkcyhrZXlmcmFtZXMpIHtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IGtleWZyYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBrZXlmcmFtZXNbaV0gPz8gKGtleWZyYW1lc1tpXSA9IGtleWZyYW1lc1tpIC0gMV0pO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgZmlsbFdpbGRjYXJkcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlsbC13aWxkY2FyZHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.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 */ isNone: () => (/* binding */ isNone)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\");\n\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isZeroValueString)(value);\n }\n else {\n return true;\n }\n}\n\n\n//# sourceMappingURL=is-none.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvaXMtbm9uZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUQ7O0FBRWpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0QsK0RBQWlCO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtCO0FBQ2xCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL3V0aWxzL2lzLW5vbmUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzWmVyb1ZhbHVlU3RyaW5nIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuZnVuY3Rpb24gaXNOb25lKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IDA7XG4gICAgfVxuICAgIGVsc2UgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gXCJub25lXCIgfHwgdmFsdWUgPT09IFwiMFwiIHx8IGlzWmVyb1ZhbHVlU3RyaW5nKHZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgaXNOb25lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1ub25lLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs": +/*!********************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.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 */ makeNoneKeyframesAnimatable: () => (/* binding */ makeNoneKeyframesAnimatable)\n/* harmony export */ });\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../value/types/complex/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/types/utils/animatable-none.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\");\n\n\n\n/**\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\n */\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" &&\n !invalidTemplates.has(keyframe) &&\n (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.analyseComplexValue)(keyframe).values.length) {\n animatableTemplate = unresolvedKeyframes[i];\n }\n i++;\n }\n if (animatableTemplate && name) {\n for (const noneIndex of noneKeyframeIndexes) {\n unresolvedKeyframes[noneIndex] = (0,_value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_1__.getAnimatableNone)(name, animatableTemplate);\n }\n }\n}\n\n\n//# sourceMappingURL=make-none-animatable.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvbWFrZS1ub25lLWFuaW1hdGFibGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE2RTtBQUNNOztBQUVuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxtRkFBbUI7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLHlGQUFpQjtBQUM5RDtBQUNBO0FBQ0E7O0FBRXVDO0FBQ3ZDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL3V0aWxzL21ha2Utbm9uZS1hbmltYXRhYmxlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmFseXNlQ29tcGxleFZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vdmFsdWUvdHlwZXMvY29tcGxleC9pbmRleC5tanMnO1xuaW1wb3J0IHsgZ2V0QW5pbWF0YWJsZU5vbmUgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy91dGlscy9hbmltYXRhYmxlLW5vbmUubWpzJztcblxuLyoqXG4gKiBJZiB3ZSBlbmNvdW50ZXIga2V5ZnJhbWVzIGxpa2UgXCJub25lXCIgb3IgXCIwXCIgYW5kIHdlIGFsc28gaGF2ZSBrZXlmcmFtZXMgbGlrZVxuICogXCIjZmZmXCIgb3IgXCIyMDBweCAyMDBweFwiIHdlIHdhbnQgdG8gZmluZCBhIGtleWZyYW1lIHRvIHNlcnZlIGFzIGEgdGVtcGxhdGUgZm9yXG4gKiB0aGUgXCJub25lXCIga2V5ZnJhbWVzLiBJbiB0aGlzIGNhc2UgXCIjZmZmXCIgb3IgXCIyMDBweCAyMDBweFwiIC0gdGhlbiB0aGVzZSBnZXQgdHVybmVkIGludG9cbiAqIHplcm8gZXF1aXZhbGVudHMsIGkuZS4gXCIjZmZmMFwiIG9yIFwiMHB4IDBweFwiLlxuICovXG5jb25zdCBpbnZhbGlkVGVtcGxhdGVzID0gbmV3IFNldChbXCJhdXRvXCIsIFwibm9uZVwiLCBcIjBcIl0pO1xuZnVuY3Rpb24gbWFrZU5vbmVLZXlmcmFtZXNBbmltYXRhYmxlKHVucmVzb2x2ZWRLZXlmcmFtZXMsIG5vbmVLZXlmcmFtZUluZGV4ZXMsIG5hbWUpIHtcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IGFuaW1hdGFibGVUZW1wbGF0ZSA9IHVuZGVmaW5lZDtcbiAgICB3aGlsZSAoaSA8IHVucmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoICYmICFhbmltYXRhYmxlVGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3Qga2V5ZnJhbWUgPSB1bnJlc29sdmVkS2V5ZnJhbWVzW2ldO1xuICAgICAgICBpZiAodHlwZW9mIGtleWZyYW1lID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAhaW52YWxpZFRlbXBsYXRlcy5oYXMoa2V5ZnJhbWUpICYmXG4gICAgICAgICAgICBhbmFseXNlQ29tcGxleFZhbHVlKGtleWZyYW1lKS52YWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBhbmltYXRhYmxlVGVtcGxhdGUgPSB1bnJlc29sdmVkS2V5ZnJhbWVzW2ldO1xuICAgICAgICB9XG4gICAgICAgIGkrKztcbiAgICB9XG4gICAgaWYgKGFuaW1hdGFibGVUZW1wbGF0ZSAmJiBuYW1lKSB7XG4gICAgICAgIGZvciAoY29uc3Qgbm9uZUluZGV4IG9mIG5vbmVLZXlmcmFtZUluZGV4ZXMpIHtcbiAgICAgICAgICAgIHVucmVzb2x2ZWRLZXlmcmFtZXNbbm9uZUluZGV4XSA9IGdldEFuaW1hdGFibGVOb25lKG5hbWUsIGFuaW1hdGFibGVUZW1wbGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCB7IG1ha2VOb25lS2V5ZnJhbWVzQW5pbWF0YWJsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWFrZS1ub25lLWFuaW1hdGFibGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs": +/*!***************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.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 */ isNumOrPxType: () => (/* binding */ isNumOrPxType),\n/* harmony export */ positionalValues: () => (/* binding */ positionalValues),\n/* harmony export */ removeNonTranslationalTransform: () => (/* binding */ removeNonTranslationalTransform)\n/* harmony export */ });\n/* harmony import */ var _render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../render/dom/parse-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\");\n/* harmony import */ var _render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../render/utils/keys-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _value_types_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../value/types/numbers/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/types/numbers/units.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\n\n\n\n\nconst isNumOrPxType = (v) => v === _value_types_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number || v === _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.px;\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = _render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: (_bbox, { transform }) => (0,_render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.parseValueFromTransform)(transform, \"x\"),\n y: (_bbox, { transform }) => (0,_render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.parseValueFromTransform)(transform, \"y\"),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\n\n\n//# sourceMappingURL=unit-conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvdW5pdC1jb252ZXJzaW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQWtGO0FBQ0o7QUFDZDtBQUNKOztBQUU1RCxtQ0FBbUMsa0VBQU0sVUFBVSw4REFBRTtBQUNyRDtBQUNBLHNDQUFzQyxnRkFBa0I7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsR0FBRyxJQUFJLHVDQUF1QztBQUM1RCxlQUFlLEdBQUcsSUFBSSx1Q0FBdUM7QUFDN0QsbUJBQW1CLEtBQUs7QUFDeEIsb0JBQW9CLE1BQU07QUFDMUIsZUFBZSxHQUFHLElBQUksS0FBSztBQUMzQixjQUFjLEdBQUcsSUFBSSxNQUFNO0FBQzNCO0FBQ0EsaUJBQWlCLFdBQVcsS0FBSyx3RkFBdUI7QUFDeEQsaUJBQWlCLFdBQVcsS0FBSyx3RkFBdUI7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRTRFO0FBQzVFIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL3V0aWxzL3VuaXQtY29udmVyc2lvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VWYWx1ZUZyb21UcmFuc2Zvcm0gfSBmcm9tICcuLi8uLi8uLi9yZW5kZXIvZG9tL3BhcnNlLXRyYW5zZm9ybS5tanMnO1xuaW1wb3J0IHsgdHJhbnNmb3JtUHJvcE9yZGVyIH0gZnJvbSAnLi4vLi4vLi4vcmVuZGVyL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyBudW1iZXIgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy9udW1iZXJzL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBweCB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3R5cGVzL251bWJlcnMvdW5pdHMubWpzJztcblxuY29uc3QgaXNOdW1PclB4VHlwZSA9ICh2KSA9PiB2ID09PSBudW1iZXIgfHwgdiA9PT0gcHg7XG5jb25zdCB0cmFuc2Zvcm1LZXlzID0gbmV3IFNldChbXCJ4XCIsIFwieVwiLCBcInpcIl0pO1xuY29uc3Qgbm9uVHJhbnNsYXRpb25hbFRyYW5zZm9ybUtleXMgPSB0cmFuc2Zvcm1Qcm9wT3JkZXIuZmlsdGVyKChrZXkpID0+ICF0cmFuc2Zvcm1LZXlzLmhhcyhrZXkpKTtcbmZ1bmN0aW9uIHJlbW92ZU5vblRyYW5zbGF0aW9uYWxUcmFuc2Zvcm0odmlzdWFsRWxlbWVudCkge1xuICAgIGNvbnN0IHJlbW92ZWRUcmFuc2Zvcm1zID0gW107XG4gICAgbm9uVHJhbnNsYXRpb25hbFRyYW5zZm9ybUtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmlzdWFsRWxlbWVudC5nZXRWYWx1ZShrZXkpO1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmVtb3ZlZFRyYW5zZm9ybXMucHVzaChba2V5LCB2YWx1ZS5nZXQoKV0pO1xuICAgICAgICAgICAgdmFsdWUuc2V0KGtleS5zdGFydHNXaXRoKFwic2NhbGVcIikgPyAxIDogMCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVtb3ZlZFRyYW5zZm9ybXM7XG59XG5jb25zdCBwb3NpdGlvbmFsVmFsdWVzID0ge1xuICAgIC8vIERpbWVuc2lvbnNcbiAgICB3aWR0aDogKHsgeCB9LCB7IHBhZGRpbmdMZWZ0ID0gXCIwXCIsIHBhZGRpbmdSaWdodCA9IFwiMFwiIH0pID0+IHgubWF4IC0geC5taW4gLSBwYXJzZUZsb2F0KHBhZGRpbmdMZWZ0KSAtIHBhcnNlRmxvYXQocGFkZGluZ1JpZ2h0KSxcbiAgICBoZWlnaHQ6ICh7IHkgfSwgeyBwYWRkaW5nVG9wID0gXCIwXCIsIHBhZGRpbmdCb3R0b20gPSBcIjBcIiB9KSA9PiB5Lm1heCAtIHkubWluIC0gcGFyc2VGbG9hdChwYWRkaW5nVG9wKSAtIHBhcnNlRmxvYXQocGFkZGluZ0JvdHRvbSksXG4gICAgdG9wOiAoX2Jib3gsIHsgdG9wIH0pID0+IHBhcnNlRmxvYXQodG9wKSxcbiAgICBsZWZ0OiAoX2Jib3gsIHsgbGVmdCB9KSA9PiBwYXJzZUZsb2F0KGxlZnQpLFxuICAgIGJvdHRvbTogKHsgeSB9LCB7IHRvcCB9KSA9PiBwYXJzZUZsb2F0KHRvcCkgKyAoeS5tYXggLSB5Lm1pbiksXG4gICAgcmlnaHQ6ICh7IHggfSwgeyBsZWZ0IH0pID0+IHBhcnNlRmxvYXQobGVmdCkgKyAoeC5tYXggLSB4Lm1pbiksXG4gICAgLy8gVHJhbnNmb3JtXG4gICAgeDogKF9iYm94LCB7IHRyYW5zZm9ybSB9KSA9PiBwYXJzZVZhbHVlRnJvbVRyYW5zZm9ybSh0cmFuc2Zvcm0sIFwieFwiKSxcbiAgICB5OiAoX2Jib3gsIHsgdHJhbnNmb3JtIH0pID0+IHBhcnNlVmFsdWVGcm9tVHJhbnNmb3JtKHRyYW5zZm9ybSwgXCJ5XCIpLFxufTtcbi8vIEFsaWFzIHRyYW5zbGF0ZSBsb25nZm9ybSBuYW1lc1xucG9zaXRpb25hbFZhbHVlcy50cmFuc2xhdGVYID0gcG9zaXRpb25hbFZhbHVlcy54O1xucG9zaXRpb25hbFZhbHVlcy50cmFuc2xhdGVZID0gcG9zaXRpb25hbFZhbHVlcy55O1xuXG5leHBvcnQgeyBpc051bU9yUHhUeXBlLCBwb3NpdGlvbmFsVmFsdWVzLCByZW1vdmVOb25UcmFuc2xhdGlvbmFsVHJhbnNmb3JtIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11bml0LWNvbnZlcnNpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.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 */ optimizedAppearDataAttribute: () => (/* binding */ optimizedAppearDataAttribute),\n/* harmony export */ optimizedAppearDataId: () => (/* binding */ optimizedAppearDataId)\n/* harmony export */ });\n/* harmony import */ var _render_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/dom/utils/camel-to-dash.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\");\n\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + (0,_render_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_0__.camelToDash)(optimizedAppearDataId);\n\n\n//# sourceMappingURL=data-id.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9vcHRpbWl6ZWQtYXBwZWFyL2RhdGEtaWQubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF1RTs7QUFFdkU7QUFDQSwrQ0FBK0MsZ0ZBQVc7O0FBRUs7QUFDL0QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9vcHRpbWl6ZWQtYXBwZWFyL2RhdGEtaWQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbWVsVG9EYXNoIH0gZnJvbSAnLi4vLi4vcmVuZGVyL2RvbS91dGlscy9jYW1lbC10by1kYXNoLm1qcyc7XG5cbmNvbnN0IG9wdGltaXplZEFwcGVhckRhdGFJZCA9IFwiZnJhbWVyQXBwZWFySWRcIjtcbmNvbnN0IG9wdGltaXplZEFwcGVhckRhdGFBdHRyaWJ1dGUgPSBcImRhdGEtXCIgKyBjYW1lbFRvRGFzaChvcHRpbWl6ZWRBcHBlYXJEYXRhSWQpO1xuXG5leHBvcnQgeyBvcHRpbWl6ZWRBcHBlYXJEYXRhQXR0cmlidXRlLCBvcHRpbWl6ZWRBcHBlYXJEYXRhSWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGEtaWQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.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 */ getOptimisedAppearId: () => (/* binding */ getOptimisedAppearId)\n/* harmony export */ });\n/* harmony import */ var _data_id_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./data-id.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs\");\n\n\nfunction getOptimisedAppearId(visualElement) {\n return visualElement.props[_data_id_mjs__WEBPACK_IMPORTED_MODULE_0__.optimizedAppearDataAttribute];\n}\n\n\n//# sourceMappingURL=get-appear-id.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9vcHRpbWl6ZWQtYXBwZWFyL2dldC1hcHBlYXItaWQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTZEOztBQUU3RDtBQUNBLCtCQUErQixzRUFBNEI7QUFDM0Q7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vb3B0aW1pemVkLWFwcGVhci9nZXQtYXBwZWFyLWlkLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBvcHRpbWl6ZWRBcHBlYXJEYXRhQXR0cmlidXRlIH0gZnJvbSAnLi9kYXRhLWlkLm1qcyc7XG5cbmZ1bmN0aW9uIGdldE9wdGltaXNlZEFwcGVhcklkKHZpc3VhbEVsZW1lbnQpIHtcbiAgICByZXR1cm4gdmlzdWFsRWxlbWVudC5wcm9wc1tvcHRpbWl6ZWRBcHBlYXJEYXRhQXR0cmlidXRlXTtcbn1cblxuZXhwb3J0IHsgZ2V0T3B0aW1pc2VkQXBwZWFySWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1hcHBlYXItaWQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/WithPromise.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 */ WithPromise: () => (/* binding */ WithPromise)\n/* harmony export */ });\nclass WithPromise {\n constructor() {\n this.updateFinished();\n }\n get finished() {\n return this._finished;\n }\n updateFinished() {\n this._finished = new Promise((resolve) => {\n this.resolve = resolve;\n });\n }\n notifyFinished() {\n this.resolve();\n }\n /**\n * Allows the animation to be awaited.\n *\n * @deprecated Use `finished` instead.\n */\n then(onResolve, onReject) {\n return this.finished.then(onResolve, onReject);\n }\n}\n\n\n//# sourceMappingURL=WithPromise.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9XaXRoUHJvbWlzZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV1QjtBQUN2QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL1dpdGhQcm9taXNlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBXaXRoUHJvbWlzZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRmluaXNoZWQoKTtcbiAgICB9XG4gICAgZ2V0IGZpbmlzaGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmluaXNoZWQ7XG4gICAgfVxuICAgIHVwZGF0ZUZpbmlzaGVkKCkge1xuICAgICAgICB0aGlzLl9maW5pc2hlZCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmUgPSByZXNvbHZlO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgbm90aWZ5RmluaXNoZWQoKSB7XG4gICAgICAgIHRoaXMucmVzb2x2ZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgdGhlIGFuaW1hdGlvbiB0byBiZSBhd2FpdGVkLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGBmaW5pc2hlZGAgaW5zdGVhZC5cbiAgICAgKi9cbiAgICB0aGVuKG9uUmVzb2x2ZSwgb25SZWplY3QpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluaXNoZWQudGhlbihvblJlc29sdmUsIG9uUmVqZWN0KTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IFdpdGhQcm9taXNlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1XaXRoUHJvbWlzZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.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 */ calcChildStagger: () => (/* binding */ calcChildStagger)\n/* harmony export */ });\nfunction calcChildStagger(children, child, delayChildren, staggerChildren = 0, staggerDirection = 1) {\n const index = Array.from(children)\n .sort((a, b) => a.sortNodePosition(b))\n .indexOf(child);\n const numChildren = children.size;\n const maxStaggerDuration = (numChildren - 1) * staggerChildren;\n const delayIsFunction = typeof delayChildren === \"function\";\n return delayIsFunction\n ? delayChildren(index, numChildren)\n : staggerDirection === 1\n ? index * staggerChildren\n : maxStaggerDuration - index * staggerChildren;\n}\n\n\n//# sourceMappingURL=calc-child-stagger.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9jYWxjLWNoaWxkLXN0YWdnZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9jYWxjLWNoaWxkLXN0YWdnZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGNhbGNDaGlsZFN0YWdnZXIoY2hpbGRyZW4sIGNoaWxkLCBkZWxheUNoaWxkcmVuLCBzdGFnZ2VyQ2hpbGRyZW4gPSAwLCBzdGFnZ2VyRGlyZWN0aW9uID0gMSkge1xuICAgIGNvbnN0IGluZGV4ID0gQXJyYXkuZnJvbShjaGlsZHJlbilcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEuc29ydE5vZGVQb3NpdGlvbihiKSlcbiAgICAgICAgLmluZGV4T2YoY2hpbGQpO1xuICAgIGNvbnN0IG51bUNoaWxkcmVuID0gY2hpbGRyZW4uc2l6ZTtcbiAgICBjb25zdCBtYXhTdGFnZ2VyRHVyYXRpb24gPSAobnVtQ2hpbGRyZW4gLSAxKSAqIHN0YWdnZXJDaGlsZHJlbjtcbiAgICBjb25zdCBkZWxheUlzRnVuY3Rpb24gPSB0eXBlb2YgZGVsYXlDaGlsZHJlbiA9PT0gXCJmdW5jdGlvblwiO1xuICAgIHJldHVybiBkZWxheUlzRnVuY3Rpb25cbiAgICAgICAgPyBkZWxheUNoaWxkcmVuKGluZGV4LCBudW1DaGlsZHJlbilcbiAgICAgICAgOiBzdGFnZ2VyRGlyZWN0aW9uID09PSAxXG4gICAgICAgICAgICA/IGluZGV4ICogc3RhZ2dlckNoaWxkcmVuXG4gICAgICAgICAgICA6IG1heFN0YWdnZXJEdXJhdGlvbiAtIGluZGV4ICogc3RhZ2dlckNoaWxkcmVuO1xufVxuXG5leHBvcnQgeyBjYWxjQ2hpbGRTdGFnZ2VyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jYWxjLWNoaWxkLXN0YWdnZXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/can-animate.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 */ canAnimate: () => (/* binding */ canAnimate)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../generators/utils/is-generator.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\");\n/* harmony import */ var _is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-animatable.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs\");\n\n\n\n\nfunction hasKeyframesChanged(keyframes) {\n const current = keyframes[0];\n if (keyframes.length === 1)\n return true;\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] !== current)\n return true;\n }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n if (originKeyframe === null) {\n return false;\n }\n /**\n * These aren't traditionally animatable but we do support them.\n * In future we could look into making this more generic or replacing\n * this function with mix() === mixImmediate\n */\n if (name === \"display\" || name === \"visibility\")\n return true;\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = (0,_is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimatable)(originKeyframe, name);\n const isTargetAnimatable = (0,_is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimatable)(targetKeyframe, name);\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warning)(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". \"${isOriginAnimatable ? targetKeyframe : originKeyframe}\" is not an animatable value.`, \"value-not-animatable\");\n // Always skip if any of these are true\n if (!isOriginAnimatable || !isTargetAnimatable) {\n return false;\n }\n return (hasKeyframesChanged(keyframes) ||\n ((type === \"spring\" || (0,_generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_2__.isGenerator)(type)) && velocity));\n}\n\n\n//# sourceMappingURL=can-animate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9jYW4tYW5pbWF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUF1QztBQUM0QjtBQUNoQjs7QUFFbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isc0JBQXNCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLGdFQUFZO0FBQzNDLCtCQUErQixnRUFBWTtBQUMzQyxJQUFJLHFEQUFPLHlFQUF5RSxNQUFNLFFBQVEsZUFBZSxRQUFRLGVBQWUsTUFBTSxxREFBcUQ7QUFDbk07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiwrRUFBVztBQUMxQzs7QUFFc0I7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9jYW4tYW5pbWF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2FybmluZyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBpc0dlbmVyYXRvciB9IGZyb20gJy4uL2dlbmVyYXRvcnMvdXRpbHMvaXMtZ2VuZXJhdG9yLm1qcyc7XG5pbXBvcnQgeyBpc0FuaW1hdGFibGUgfSBmcm9tICcuL2lzLWFuaW1hdGFibGUubWpzJztcblxuZnVuY3Rpb24gaGFzS2V5ZnJhbWVzQ2hhbmdlZChrZXlmcmFtZXMpIHtcbiAgICBjb25zdCBjdXJyZW50ID0ga2V5ZnJhbWVzWzBdO1xuICAgIGlmIChrZXlmcmFtZXMubGVuZ3RoID09PSAxKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleWZyYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoa2V5ZnJhbWVzW2ldICE9PSBjdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuZnVuY3Rpb24gY2FuQW5pbWF0ZShrZXlmcmFtZXMsIG5hbWUsIHR5cGUsIHZlbG9jaXR5KSB7XG4gICAgLyoqXG4gICAgICogQ2hlY2sgaWYgd2UncmUgYWJsZSB0byBhbmltYXRlIGJldHdlZW4gdGhlIHN0YXJ0IGFuZCBlbmQga2V5ZnJhbWVzLFxuICAgICAqIGFuZCB0aHJvdyBhIHdhcm5pbmcgaWYgd2UncmUgYXR0ZW1wdGluZyB0byBhbmltYXRlIGJldHdlZW4gb25lIHRoYXQnc1xuICAgICAqIGFuaW1hdGFibGUgYW5kIGFub3RoZXIgdGhhdCBpc24ndC5cbiAgICAgKi9cbiAgICBjb25zdCBvcmlnaW5LZXlmcmFtZSA9IGtleWZyYW1lc1swXTtcbiAgICBpZiAob3JpZ2luS2V5ZnJhbWUgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBUaGVzZSBhcmVuJ3QgdHJhZGl0aW9uYWxseSBhbmltYXRhYmxlIGJ1dCB3ZSBkbyBzdXBwb3J0IHRoZW0uXG4gICAgICogSW4gZnV0dXJlIHdlIGNvdWxkIGxvb2sgaW50byBtYWtpbmcgdGhpcyBtb3JlIGdlbmVyaWMgb3IgcmVwbGFjaW5nXG4gICAgICogdGhpcyBmdW5jdGlvbiB3aXRoIG1peCgpID09PSBtaXhJbW1lZGlhdGVcbiAgICAgKi9cbiAgICBpZiAobmFtZSA9PT0gXCJkaXNwbGF5XCIgfHwgbmFtZSA9PT0gXCJ2aXNpYmlsaXR5XCIpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGNvbnN0IHRhcmdldEtleWZyYW1lID0ga2V5ZnJhbWVzW2tleWZyYW1lcy5sZW5ndGggLSAxXTtcbiAgICBjb25zdCBpc09yaWdpbkFuaW1hdGFibGUgPSBpc0FuaW1hdGFibGUob3JpZ2luS2V5ZnJhbWUsIG5hbWUpO1xuICAgIGNvbnN0IGlzVGFyZ2V0QW5pbWF0YWJsZSA9IGlzQW5pbWF0YWJsZSh0YXJnZXRLZXlmcmFtZSwgbmFtZSk7XG4gICAgd2FybmluZyhpc09yaWdpbkFuaW1hdGFibGUgPT09IGlzVGFyZ2V0QW5pbWF0YWJsZSwgYFlvdSBhcmUgdHJ5aW5nIHRvIGFuaW1hdGUgJHtuYW1lfSBmcm9tIFwiJHtvcmlnaW5LZXlmcmFtZX1cIiB0byBcIiR7dGFyZ2V0S2V5ZnJhbWV9XCIuIFwiJHtpc09yaWdpbkFuaW1hdGFibGUgPyB0YXJnZXRLZXlmcmFtZSA6IG9yaWdpbktleWZyYW1lfVwiIGlzIG5vdCBhbiBhbmltYXRhYmxlIHZhbHVlLmAsIFwidmFsdWUtbm90LWFuaW1hdGFibGVcIik7XG4gICAgLy8gQWx3YXlzIHNraXAgaWYgYW55IG9mIHRoZXNlIGFyZSB0cnVlXG4gICAgaWYgKCFpc09yaWdpbkFuaW1hdGFibGUgfHwgIWlzVGFyZ2V0QW5pbWF0YWJsZSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAoaGFzS2V5ZnJhbWVzQ2hhbmdlZChrZXlmcmFtZXMpIHx8XG4gICAgICAgICgodHlwZSA9PT0gXCJzcHJpbmdcIiB8fCBpc0dlbmVyYXRvcih0eXBlKSkgJiYgdmVsb2NpdHkpKTtcbn1cblxuZXhwb3J0IHsgY2FuQW5pbWF0ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2FuLWFuaW1hdGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.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 */ getVariableValue: () => (/* binding */ getVariableValue),\n/* harmony export */ parseCSSVariable: () => (/* binding */ parseCSSVariable)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\");\n/* harmony import */ var _is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./is-css-variable.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n\n\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = \n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token1, token2, fallback] = match;\n return [`--${token1 ?? token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.invariant)(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`, \"max-css-var-depth\");\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.isNumericalString)(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n return (0,_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__.isCSSVariableToken)(fallback)\n ? getVariableValue(fallback, element, depth + 1)\n : fallback;\n}\n\n\n//# sourceMappingURL=css-variables-conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9jc3MtdmFyaWFibGVzLWNvbnZlcnNpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTREO0FBQ0Q7O0FBRTNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsaUJBQWlCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLElBQUksdURBQVMsNkVBQTZFLFFBQVE7QUFDbEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsK0RBQWlCO0FBQ2hDO0FBQ0EsV0FBVyx3RUFBa0I7QUFDN0I7QUFDQTtBQUNBOztBQUU4QztBQUM5QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2Nzcy12YXJpYWJsZXMtY29udmVyc2lvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW52YXJpYW50LCBpc051bWVyaWNhbFN0cmluZyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBpc0NTU1ZhcmlhYmxlVG9rZW4gfSBmcm9tICcuL2lzLWNzcy12YXJpYWJsZS5tanMnO1xuXG4vKipcbiAqIFBhcnNlIEZyYW1lcidzIHNwZWNpYWwgQ1NTIHZhcmlhYmxlIGZvcm1hdCBpbnRvIGEgQ1NTIHRva2VuIGFuZCBhIGZhbGxiYWNrLlxuICpcbiAqIGBgYFxuICogYHZhcigtLWZvbywgI2ZmZilgID0+IFtgLS1mb29gLCAnI2ZmZiddXG4gKiBgYGBcbiAqXG4gKiBAcGFyYW0gY3VycmVudFxuICovXG5jb25zdCBzcGxpdENTU1ZhcmlhYmxlUmVnZXggPSBcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWRvcy1kZXRlY3Rvci9uby11bnNhZmUtcmVnZXggLS0gZmFsc2UgcG9zaXRpdmUsIGFzIGl0IGNhbiBtYXRjaCBhIGxvdCBvZiB3b3Jkc1xuL152YXJcXCgtLSg/OihbXFx3LV0rKXwoW1xcdy1dKyksID8oW2EtekEtWlxcZCAoKSUjLiwtXSspKVxcKS91O1xuZnVuY3Rpb24gcGFyc2VDU1NWYXJpYWJsZShjdXJyZW50KSB7XG4gICAgY29uc3QgbWF0Y2ggPSBzcGxpdENTU1ZhcmlhYmxlUmVnZXguZXhlYyhjdXJyZW50KTtcbiAgICBpZiAoIW1hdGNoKVxuICAgICAgICByZXR1cm4gWyxdO1xuICAgIGNvbnN0IFssIHRva2VuMSwgdG9rZW4yLCBmYWxsYmFja10gPSBtYXRjaDtcbiAgICByZXR1cm4gW2AtLSR7dG9rZW4xID8/IHRva2VuMn1gLCBmYWxsYmFja107XG59XG5jb25zdCBtYXhEZXB0aCA9IDQ7XG5mdW5jdGlvbiBnZXRWYXJpYWJsZVZhbHVlKGN1cnJlbnQsIGVsZW1lbnQsIGRlcHRoID0gMSkge1xuICAgIGludmFyaWFudChkZXB0aCA8PSBtYXhEZXB0aCwgYE1heCBDU1MgdmFyaWFibGUgZmFsbGJhY2sgZGVwdGggZGV0ZWN0ZWQgaW4gcHJvcGVydHkgXCIke2N1cnJlbnR9XCIuIFRoaXMgbWF5IGluZGljYXRlIGEgY2lyY3VsYXIgZmFsbGJhY2sgZGVwZW5kZW5jeS5gLCBcIm1heC1jc3MtdmFyLWRlcHRoXCIpO1xuICAgIGNvbnN0IFt0b2tlbiwgZmFsbGJhY2tdID0gcGFyc2VDU1NWYXJpYWJsZShjdXJyZW50KTtcbiAgICAvLyBObyBDU1MgdmFyaWFibGUgZGV0ZWN0ZWRcbiAgICBpZiAoIXRva2VuKVxuICAgICAgICByZXR1cm47XG4gICAgLy8gQXR0ZW1wdCB0byByZWFkIHRoaXMgQ1NTIHZhcmlhYmxlIG9mZiB0aGUgZWxlbWVudFxuICAgIGNvbnN0IHJlc29sdmVkID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSh0b2tlbik7XG4gICAgaWYgKHJlc29sdmVkKSB7XG4gICAgICAgIGNvbnN0IHRyaW1tZWQgPSByZXNvbHZlZC50cmltKCk7XG4gICAgICAgIHJldHVybiBpc051bWVyaWNhbFN0cmluZyh0cmltbWVkKSA/IHBhcnNlRmxvYXQodHJpbW1lZCkgOiB0cmltbWVkO1xuICAgIH1cbiAgICByZXR1cm4gaXNDU1NWYXJpYWJsZVRva2VuKGZhbGxiYWNrKVxuICAgICAgICA/IGdldFZhcmlhYmxlVmFsdWUoZmFsbGJhY2ssIGVsZW1lbnQsIGRlcHRoICsgMSlcbiAgICAgICAgOiBmYWxsYmFjaztcbn1cblxuZXhwb3J0IHsgZ2V0VmFyaWFibGVWYWx1ZSwgcGFyc2VDU1NWYXJpYWJsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3NzLXZhcmlhYmxlcy1jb252ZXJzaW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/default-transitions.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 */ getDefaultTransition: () => (/* binding */ getDefaultTransition)\n/* harmony export */ });\n/* harmony import */ var _render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/utils/keys-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (_render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\n\n//# sourceMappingURL=default-transitions.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9kZWZhdWx0LXRyYW5zaXRpb25zLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF1RTs7QUFFdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxXQUFXO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBLGFBQWEsNEVBQWM7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVnQztBQUNoQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2RlZmF1bHQtdHJhbnNpdGlvbnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zZm9ybVByb3BzIH0gZnJvbSAnLi4vLi4vcmVuZGVyL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5cbmNvbnN0IHVuZGVyRGFtcGVkU3ByaW5nID0ge1xuICAgIHR5cGU6IFwic3ByaW5nXCIsXG4gICAgc3RpZmZuZXNzOiA1MDAsXG4gICAgZGFtcGluZzogMjUsXG4gICAgcmVzdFNwZWVkOiAxMCxcbn07XG5jb25zdCBjcml0aWNhbGx5RGFtcGVkU3ByaW5nID0gKHRhcmdldCkgPT4gKHtcbiAgICB0eXBlOiBcInNwcmluZ1wiLFxuICAgIHN0aWZmbmVzczogNTUwLFxuICAgIGRhbXBpbmc6IHRhcmdldCA9PT0gMCA/IDIgKiBNYXRoLnNxcnQoNTUwKSA6IDMwLFxuICAgIHJlc3RTcGVlZDogMTAsXG59KTtcbmNvbnN0IGtleWZyYW1lc1RyYW5zaXRpb24gPSB7XG4gICAgdHlwZTogXCJrZXlmcmFtZXNcIixcbiAgICBkdXJhdGlvbjogMC44LFxufTtcbi8qKlxuICogRGVmYXVsdCBlYXNpbmcgY3VydmUgaXMgYSBzbGlnaHRseSBzaGFsbG93ZXIgdmVyc2lvbiBvZlxuICogdGhlIGRlZmF1bHQgYnJvd3NlciBlYXNpbmcgY3VydmUuXG4gKi9cbmNvbnN0IGVhc2UgPSB7XG4gICAgdHlwZTogXCJrZXlmcmFtZXNcIixcbiAgICBlYXNlOiBbMC4yNSwgMC4xLCAwLjM1LCAxXSxcbiAgICBkdXJhdGlvbjogMC4zLFxufTtcbmNvbnN0IGdldERlZmF1bHRUcmFuc2l0aW9uID0gKHZhbHVlS2V5LCB7IGtleWZyYW1lcyB9KSA9PiB7XG4gICAgaWYgKGtleWZyYW1lcy5sZW5ndGggPiAyKSB7XG4gICAgICAgIHJldHVybiBrZXlmcmFtZXNUcmFuc2l0aW9uO1xuICAgIH1cbiAgICBlbHNlIGlmICh0cmFuc2Zvcm1Qcm9wcy5oYXModmFsdWVLZXkpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZUtleS5zdGFydHNXaXRoKFwic2NhbGVcIilcbiAgICAgICAgICAgID8gY3JpdGljYWxseURhbXBlZFNwcmluZyhrZXlmcmFtZXNbMV0pXG4gICAgICAgICAgICA6IHVuZGVyRGFtcGVkU3ByaW5nO1xuICAgIH1cbiAgICByZXR1cm4gZWFzZTtcbn07XG5cbmV4cG9ydCB7IGdldERlZmF1bHRUcmFuc2l0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWZhdWx0LXRyYW5zaXRpb25zLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.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 */ getFinalKeyframe: () => (/* binding */ getFinalKeyframe)\n/* harmony export */ });\nconst isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\n\n//# sourceMappingURL=get-final-keyframe.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9nZXQtZmluYWwta2V5ZnJhbWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLHVDQUF1Qyw2QkFBNkI7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9nZXQtZmluYWwta2V5ZnJhbWUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzTm90TnVsbCA9ICh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGw7XG5mdW5jdGlvbiBnZXRGaW5hbEtleWZyYW1lKGtleWZyYW1lcywgeyByZXBlYXQsIHJlcGVhdFR5cGUgPSBcImxvb3BcIiB9LCBmaW5hbEtleWZyYW1lKSB7XG4gICAgY29uc3QgcmVzb2x2ZWRLZXlmcmFtZXMgPSBrZXlmcmFtZXMuZmlsdGVyKGlzTm90TnVsbCk7XG4gICAgY29uc3QgaW5kZXggPSByZXBlYXQgJiYgcmVwZWF0VHlwZSAhPT0gXCJsb29wXCIgJiYgcmVwZWF0ICUgMiA9PT0gMVxuICAgICAgICA/IDBcbiAgICAgICAgOiByZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggLSAxO1xuICAgIHJldHVybiAhaW5kZXggfHwgZmluYWxLZXlmcmFtZSA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8gcmVzb2x2ZWRLZXlmcmFtZXNbaW5kZXhdXG4gICAgICAgIDogZmluYWxLZXlmcmFtZTtcbn1cblxuZXhwb3J0IHsgZ2V0RmluYWxLZXlmcmFtZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWZpbmFsLWtleWZyYW1lLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.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 */ getValueTransition: () => (/* binding */ getValueTransition)\n/* harmony export */ });\n/* harmony import */ var _resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resolve-transition.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs\");\n\n\nfunction getValueTransition(transition, key) {\n const valueTransition = transition?.[key] ??\n transition?.[\"default\"] ??\n transition;\n if (valueTransition !== transition) {\n return (0,_resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveTransition)(valueTransition, transition);\n }\n return valueTransition;\n}\n\n\n//# sourceMappingURL=get-value-transition.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9nZXQtdmFsdWUtdHJhbnNpdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBNkQ7O0FBRTdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDBFQUFpQjtBQUNoQztBQUNBO0FBQ0E7O0FBRThCO0FBQzlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvZ2V0LXZhbHVlLXRyYW5zaXRpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmVUcmFuc2l0aW9uIH0gZnJvbSAnLi9yZXNvbHZlLXRyYW5zaXRpb24ubWpzJztcblxuZnVuY3Rpb24gZ2V0VmFsdWVUcmFuc2l0aW9uKHRyYW5zaXRpb24sIGtleSkge1xuICAgIGNvbnN0IHZhbHVlVHJhbnNpdGlvbiA9IHRyYW5zaXRpb24/LltrZXldID8/XG4gICAgICAgIHRyYW5zaXRpb24/LltcImRlZmF1bHRcIl0gPz9cbiAgICAgICAgdHJhbnNpdGlvbjtcbiAgICBpZiAodmFsdWVUcmFuc2l0aW9uICE9PSB0cmFuc2l0aW9uKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlVHJhbnNpdGlvbih2YWx1ZVRyYW5zaXRpb24sIHRyYW5zaXRpb24pO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWVUcmFuc2l0aW9uO1xufVxuXG5leHBvcnQgeyBnZXRWYWx1ZVRyYW5zaXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC12YWx1ZS10cmFuc2l0aW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/is-animatable.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 */ isAnimatable: () => (/* binding */ isAnimatable)\n/* harmony export */ });\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/complex/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (value, name) => {\n // If the list of keys that might be non-animatable grows, replace with Set\n if (name === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\n\n//# sourceMappingURL=is-animatable.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9pcy1hbmltYXRhYmxlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE4RDs7QUFFOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTLG1FQUFPO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9pcy1hbmltYXRhYmxlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wbGV4IH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvY29tcGxleC9pbmRleC5tanMnO1xuXG4vKipcbiAqIENoZWNrIGlmIGEgdmFsdWUgaXMgYW5pbWF0YWJsZS4gRXhhbXBsZXM6XG4gKlxuICog4pyFOiAxMDAsIFwiMTAwcHhcIiwgXCIjZmZmXCJcbiAqIOKdjDogXCJibG9ja1wiLCBcInVybCgyLmpwZylcIlxuICogQHBhcmFtIHZhbHVlXG4gKlxuICogQGludGVybmFsXG4gKi9cbmNvbnN0IGlzQW5pbWF0YWJsZSA9ICh2YWx1ZSwgbmFtZSkgPT4ge1xuICAgIC8vIElmIHRoZSBsaXN0IG9mIGtleXMgdGhhdCBtaWdodCBiZSBub24tYW5pbWF0YWJsZSBncm93cywgcmVwbGFjZSB3aXRoIFNldFxuICAgIGlmIChuYW1lID09PSBcInpJbmRleFwiKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gSWYgaXQncyBhIG51bWJlciBvciBhIGtleWZyYW1lcyBhcnJheSwgd2UgY2FuIGFuaW1hdGUgaXQuIFdlIG1pZ2h0IGF0IHNvbWUgcG9pbnRcbiAgICAvLyBuZWVkIHRvIGRvIGEgZGVlcCBpc0FuaW1hdGFibGUgY2hlY2sgb2Yga2V5ZnJhbWVzLCBvciBsZXQgUG9wbW90aW9uIGhhbmRsZSB0aGlzLFxuICAgIC8vIGJ1dCBmb3Igbm93IGxldHMgbGVhdmUgaXQgbGlrZSB0aGlzIGZvciBwZXJmb3JtYW5jZSByZWFzb25zXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIiB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSlcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiAvLyBJdCdzIGFuaW1hdGFibGUgaWYgd2UgaGF2ZSBhIHN0cmluZ1xuICAgICAgICAoY29tcGxleC50ZXN0KHZhbHVlKSB8fCB2YWx1ZSA9PT0gXCIwXCIpICYmIC8vIEFuZCBpdCBjb250YWlucyBudW1iZXJzIGFuZC9vciBjb2xvcnNcbiAgICAgICAgIXZhbHVlLnN0YXJ0c1dpdGgoXCJ1cmwoXCIpIC8vIFVubGVzcyBpdCBzdGFydHMgd2l0aCBcInVybChcIlxuICAgICkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufTtcblxuZXhwb3J0IHsgaXNBbmltYXRhYmxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1hbmltYXRhYmxlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.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 */ containsCSSVariable: () => (/* binding */ containsCSSVariable),\n/* harmony export */ isCSSVariableName: () => (/* binding */ isCSSVariableName),\n/* harmony export */ isCSSVariableToken: () => (/* binding */ isCSSVariableToken)\n/* harmony export */ });\nconst checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = \n/*@__PURE__*/ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = \n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n/**\n * Check if a value contains a CSS variable anywhere (e.g. inside calc()).\n * Unlike isCSSVariableToken which checks if the value IS a var() token,\n * this checks if the value CONTAINS var() somewhere in the string.\n */\nfunction containsCSSVariable(value) {\n if (typeof value !== \"string\")\n return false;\n // Strip comments to avoid false positives\n return value.split(\"/*\")[0].includes(\"var(--\");\n}\n\n\n//# sourceMappingURL=is-css-variable.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9pcy1jc3MtdmFyaWFibGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFc0U7QUFDdEUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9pcy1jc3MtdmFyaWFibGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNoZWNrU3RyaW5nU3RhcnRzV2l0aCA9ICh0b2tlbikgPT4gKGtleSkgPT4gdHlwZW9mIGtleSA9PT0gXCJzdHJpbmdcIiAmJiBrZXkuc3RhcnRzV2l0aCh0b2tlbik7XG5jb25zdCBpc0NTU1ZhcmlhYmxlTmFtZSA9IFxuLypAX19QVVJFX18qLyBjaGVja1N0cmluZ1N0YXJ0c1dpdGgoXCItLVwiKTtcbmNvbnN0IHN0YXJ0c0FzVmFyaWFibGVUb2tlbiA9IFxuLypAX19QVVJFX18qLyBjaGVja1N0cmluZ1N0YXJ0c1dpdGgoXCJ2YXIoLS1cIik7XG5jb25zdCBpc0NTU1ZhcmlhYmxlVG9rZW4gPSAodmFsdWUpID0+IHtcbiAgICBjb25zdCBzdGFydHNXaXRoVG9rZW4gPSBzdGFydHNBc1ZhcmlhYmxlVG9rZW4odmFsdWUpO1xuICAgIGlmICghc3RhcnRzV2l0aFRva2VuKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gRW5zdXJlIGFueSBjb21tZW50cyBhcmUgc3RyaXBwZWQgZnJvbSB0aGUgdmFsdWUgYXMgdGhpcyBjYW4gaGFybSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVnZXguXG4gICAgcmV0dXJuIHNpbmdsZUNzc1ZhcmlhYmxlUmVnZXgudGVzdCh2YWx1ZS5zcGxpdChcIi8qXCIpWzBdLnRyaW0oKSk7XG59O1xuY29uc3Qgc2luZ2xlQ3NzVmFyaWFibGVSZWdleCA9IC92YXJcXCgtLSg/OltcXHctXStcXHMqfFtcXHctXStcXHMqLCg/OlxccypbXikoXFxzXXxcXHMqXFwoKD86W14pKF18XFwoW14pKF0qXFwpKSpcXCkpK1xccyopXFwpJC9pdTtcbi8qKlxuICogQ2hlY2sgaWYgYSB2YWx1ZSBjb250YWlucyBhIENTUyB2YXJpYWJsZSBhbnl3aGVyZSAoZS5nLiBpbnNpZGUgY2FsYygpKS5cbiAqIFVubGlrZSBpc0NTU1ZhcmlhYmxlVG9rZW4gd2hpY2ggY2hlY2tzIGlmIHRoZSB2YWx1ZSBJUyBhIHZhcigpIHRva2VuLFxuICogdGhpcyBjaGVja3MgaWYgdGhlIHZhbHVlIENPTlRBSU5TIHZhcigpIHNvbWV3aGVyZSBpbiB0aGUgc3RyaW5nLlxuICovXG5mdW5jdGlvbiBjb250YWluc0NTU1ZhcmlhYmxlKHZhbHVlKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIilcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIC8vIFN0cmlwIGNvbW1lbnRzIHRvIGF2b2lkIGZhbHNlIHBvc2l0aXZlc1xuICAgIHJldHVybiB2YWx1ZS5zcGxpdChcIi8qXCIpWzBdLmluY2x1ZGVzKFwidmFyKC0tXCIpO1xufVxuXG5leHBvcnQgeyBjb250YWluc0NTU1ZhcmlhYmxlLCBpc0NTU1ZhcmlhYmxlTmFtZSwgaXNDU1NWYXJpYWJsZVRva2VuIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1jc3MtdmFyaWFibGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.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 */ isTransitionDefined: () => (/* binding */ isTransitionDefined)\n/* harmony export */ });\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\n\n\n//# sourceMappingURL=is-transition-defined.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9pcy10cmFuc2l0aW9uLWRlZmluZWQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHNJQUFzSTtBQUNySztBQUNBOztBQUUrQjtBQUMvQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLXRyYW5zaXRpb24tZGVmaW5lZC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWNpZGUgd2hldGhlciBhIHRyYW5zaXRpb24gaXMgZGVmaW5lZCBvbiBhIGdpdmVuIFRyYW5zaXRpb24uXG4gKiBUaGlzIGZpbHRlcnMgb3V0IG9yY2hlc3RyYXRpb24gb3B0aW9ucyBhbmQgcmV0dXJucyB0cnVlXG4gKiBpZiBhbnkgb3B0aW9ucyBhcmUgbGVmdC5cbiAqL1xuZnVuY3Rpb24gaXNUcmFuc2l0aW9uRGVmaW5lZCh7IHdoZW4sIGRlbGF5OiBfZGVsYXksIGRlbGF5Q2hpbGRyZW4sIHN0YWdnZXJDaGlsZHJlbiwgc3RhZ2dlckRpcmVjdGlvbiwgcmVwZWF0LCByZXBlYXRUeXBlLCByZXBlYXREZWxheSwgZnJvbSwgZWxhcHNlZCwgLi4udHJhbnNpdGlvbiB9KSB7XG4gICAgcmV0dXJuICEhT2JqZWN0LmtleXModHJhbnNpdGlvbikubGVuZ3RoO1xufVxuXG5leHBvcnQgeyBpc1RyYW5zaXRpb25EZWZpbmVkIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy10cmFuc2l0aW9uLWRlZmluZWQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.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 */ makeAnimationInstant: () => (/* binding */ makeAnimationInstant)\n/* harmony export */ });\nfunction makeAnimationInstant(options) {\n options.duration = 0;\n options.type = \"keyframes\";\n}\n\n\n//# sourceMappingURL=make-animation-instant.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9tYWtlLWFuaW1hdGlvbi1pbnN0YW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvbWFrZS1hbmltYXRpb24taW5zdGFudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gbWFrZUFuaW1hdGlvbkluc3RhbnQob3B0aW9ucykge1xuICAgIG9wdGlvbnMuZHVyYXRpb24gPSAwO1xuICAgIG9wdGlvbnMudHlwZSA9IFwia2V5ZnJhbWVzXCI7XG59XG5cbmV4cG9ydCB7IG1ha2VBbmltYXRpb25JbnN0YW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYWtlLWFuaW1hdGlvbi1pbnN0YW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.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 */ replaceTransitionType: () => (/* binding */ replaceTransitionType)\n/* harmony export */ });\n/* harmony import */ var _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../generators/inertia.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\");\n/* harmony import */ var _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../generators/keyframes.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\");\n/* harmony import */ var _generators_spring_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../generators/spring/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\");\n\n\n\n\nconst transitionTypeMap = {\n decay: _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__.inertia,\n inertia: _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__.inertia,\n tween: _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__.keyframes,\n keyframes: _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__.keyframes,\n spring: _generators_spring_index_mjs__WEBPACK_IMPORTED_MODULE_2__.spring,\n};\nfunction replaceTransitionType(transition) {\n if (typeof transition.type === \"string\") {\n transition.type = transitionTypeMap[transition.type];\n }\n}\n\n\n//# sourceMappingURL=replace-transition-type.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9yZXBsYWNlLXRyYW5zaXRpb24tdHlwZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFvRDtBQUNJO0FBQ0E7O0FBRXhEO0FBQ0EsV0FBVyw0REFBTztBQUNsQixXQUFXO0FBQ1gsV0FBVyxnRUFBUztBQUNwQixlQUFlLGdFQUFTO0FBQ3hCLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWlDO0FBQ2pDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvcmVwbGFjZS10cmFuc2l0aW9uLXR5cGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluZXJ0aWEgfSBmcm9tICcuLi9nZW5lcmF0b3JzL2luZXJ0aWEubWpzJztcbmltcG9ydCB7IGtleWZyYW1lcyB9IGZyb20gJy4uL2dlbmVyYXRvcnMva2V5ZnJhbWVzLm1qcyc7XG5pbXBvcnQgeyBzcHJpbmcgfSBmcm9tICcuLi9nZW5lcmF0b3JzL3NwcmluZy9pbmRleC5tanMnO1xuXG5jb25zdCB0cmFuc2l0aW9uVHlwZU1hcCA9IHtcbiAgICBkZWNheTogaW5lcnRpYSxcbiAgICBpbmVydGlhLFxuICAgIHR3ZWVuOiBrZXlmcmFtZXMsXG4gICAga2V5ZnJhbWVzOiBrZXlmcmFtZXMsXG4gICAgc3ByaW5nLFxufTtcbmZ1bmN0aW9uIHJlcGxhY2VUcmFuc2l0aW9uVHlwZSh0cmFuc2l0aW9uKSB7XG4gICAgaWYgKHR5cGVvZiB0cmFuc2l0aW9uLnR5cGUgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgdHJhbnNpdGlvbi50eXBlID0gdHJhbnNpdGlvblR5cGVNYXBbdHJhbnNpdGlvbi50eXBlXTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IHJlcGxhY2VUcmFuc2l0aW9uVHlwZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVwbGFjZS10cmFuc2l0aW9uLXR5cGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.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 */ resolveTransition: () => (/* binding */ resolveTransition)\n/* harmony export */ });\n/**\n * If `transition` has `inherit: true`, shallow-merge it with\n * `parentTransition` (child keys win) and strip the `inherit` key.\n * Otherwise return `transition` unchanged.\n */\nfunction resolveTransition(transition, parentTransition) {\n if (transition?.inherit && parentTransition) {\n const { inherit: _, ...rest } = transition;\n return { ...parentTransition, ...rest };\n }\n return transition;\n}\n\n\n//# sourceMappingURL=resolve-transition.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9yZXNvbHZlLXRyYW5zaXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixzQkFBc0I7QUFDdEMsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTs7QUFFNkI7QUFDN0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9yZXNvbHZlLXRyYW5zaXRpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSWYgYHRyYW5zaXRpb25gIGhhcyBgaW5oZXJpdDogdHJ1ZWAsIHNoYWxsb3ctbWVyZ2UgaXQgd2l0aFxuICogYHBhcmVudFRyYW5zaXRpb25gIChjaGlsZCBrZXlzIHdpbikgYW5kIHN0cmlwIHRoZSBgaW5oZXJpdGAga2V5LlxuICogT3RoZXJ3aXNlIHJldHVybiBgdHJhbnNpdGlvbmAgdW5jaGFuZ2VkLlxuICovXG5mdW5jdGlvbiByZXNvbHZlVHJhbnNpdGlvbih0cmFuc2l0aW9uLCBwYXJlbnRUcmFuc2l0aW9uKSB7XG4gICAgaWYgKHRyYW5zaXRpb24/LmluaGVyaXQgJiYgcGFyZW50VHJhbnNpdGlvbikge1xuICAgICAgICBjb25zdCB7IGluaGVyaXQ6IF8sIC4uLnJlc3QgfSA9IHRyYW5zaXRpb247XG4gICAgICAgIHJldHVybiB7IC4uLnBhcmVudFRyYW5zaXRpb24sIC4uLnJlc3QgfTtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zaXRpb247XG59XG5cbmV4cG9ydCB7IHJlc29sdmVUcmFuc2l0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLXRyYW5zaXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.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 */ cubicBezierAsString: () => (/* binding */ cubicBezierAsString)\n/* harmony export */ });\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n\n\n//# sourceMappingURL=cubic-bezier.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9lYXNpbmcvY3ViaWMtYmV6aWVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsOERBQThELEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7O0FBRW5EO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vd2FhcGkvZWFzaW5nL2N1YmljLWJlemllci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY3ViaWNCZXppZXJBc1N0cmluZyA9IChbYSwgYiwgYywgZF0pID0+IGBjdWJpYy1iZXppZXIoJHthfSwgJHtifSwgJHtjfSwgJHtkfSlgO1xuXG5leHBvcnQgeyBjdWJpY0JlemllckFzU3RyaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jdWJpYy1iZXppZXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.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 */ mapEasingToNativeEasing: () => (/* binding */ mapEasingToNativeEasing)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\");\n/* harmony import */ var _utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../utils/supports/linear-easing.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\");\n/* harmony import */ var _utils_linear_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/linear.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\");\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\");\n/* harmony import */ var _supported_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./supported.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs\");\n\n\n\n\n\n\nfunction mapEasingToNativeEasing(easing, duration) {\n if (!easing) {\n return undefined;\n }\n else if (typeof easing === \"function\") {\n return (0,_utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_0__.supportsLinearEasing)()\n ? (0,_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_1__.generateLinearEasing)(easing, duration)\n : \"ease-out\";\n }\n else if ((0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.isBezierDefinition)(easing)) {\n return (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_3__.cubicBezierAsString)(easing);\n }\n else if (Array.isArray(easing)) {\n return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) ||\n _supported_mjs__WEBPACK_IMPORTED_MODULE_4__.supportedWaapiEasing.easeOut);\n }\n else {\n return _supported_mjs__WEBPACK_IMPORTED_MODULE_4__.supportedWaapiEasing[easing];\n }\n}\n\n\n//# sourceMappingURL=map-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9lYXNpbmcvbWFwLWVhc2luZy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWtEO0FBQytCO0FBQ3RCO0FBQ0Y7QUFDRjs7QUFFdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsdUZBQW9CO0FBQ25DLGNBQWMsdUVBQW9CO0FBQ2xDO0FBQ0E7QUFDQSxhQUFhLGdFQUFrQjtBQUMvQixlQUFlLHNFQUFtQjtBQUNsQztBQUNBO0FBQ0E7QUFDQSxZQUFZLGdFQUFvQjtBQUNoQztBQUNBO0FBQ0EsZUFBZSxnRUFBb0I7QUFDbkM7QUFDQTs7QUFFbUM7QUFDbkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9lYXNpbmcvbWFwLWVhc2luZy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNCZXppZXJEZWZpbml0aW9uIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IHN1cHBvcnRzTGluZWFyRWFzaW5nIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc3VwcG9ydHMvbGluZWFyLWVhc2luZy5tanMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVMaW5lYXJFYXNpbmcgfSBmcm9tICcuLi91dGlscy9saW5lYXIubWpzJztcbmltcG9ydCB7IGN1YmljQmV6aWVyQXNTdHJpbmcgfSBmcm9tICcuL2N1YmljLWJlemllci5tanMnO1xuaW1wb3J0IHsgc3VwcG9ydGVkV2FhcGlFYXNpbmcgfSBmcm9tICcuL3N1cHBvcnRlZC5tanMnO1xuXG5mdW5jdGlvbiBtYXBFYXNpbmdUb05hdGl2ZUVhc2luZyhlYXNpbmcsIGR1cmF0aW9uKSB7XG4gICAgaWYgKCFlYXNpbmcpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGVhc2luZyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBzdXBwb3J0c0xpbmVhckVhc2luZygpXG4gICAgICAgICAgICA/IGdlbmVyYXRlTGluZWFyRWFzaW5nKGVhc2luZywgZHVyYXRpb24pXG4gICAgICAgICAgICA6IFwiZWFzZS1vdXRcIjtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNCZXppZXJEZWZpbml0aW9uKGVhc2luZykpIHtcbiAgICAgICAgcmV0dXJuIGN1YmljQmV6aWVyQXNTdHJpbmcoZWFzaW5nKTtcbiAgICB9XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShlYXNpbmcpKSB7XG4gICAgICAgIHJldHVybiBlYXNpbmcubWFwKChzZWdtZW50RWFzaW5nKSA9PiBtYXBFYXNpbmdUb05hdGl2ZUVhc2luZyhzZWdtZW50RWFzaW5nLCBkdXJhdGlvbikgfHxcbiAgICAgICAgICAgIHN1cHBvcnRlZFdhYXBpRWFzaW5nLmVhc2VPdXQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRlZFdhYXBpRWFzaW5nW2Vhc2luZ107XG4gICAgfVxufVxuXG5leHBvcnQgeyBtYXBFYXNpbmdUb05hdGl2ZUVhc2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWFwLWVhc2luZy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.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 */ supportedWaapiEasing: () => (/* binding */ supportedWaapiEasing)\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\");\n\n\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0, 0.65, 0.55, 1]),\n circOut: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.55, 0, 1, 0.45]),\n backIn: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.31, 0.01, 0.66, -0.59]),\n backOut: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.33, 1.53, 0.69, 0.99]),\n};\n\n\n//# sourceMappingURL=supported.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9lYXNpbmcvc3VwcG9ydGVkLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF5RDs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHNFQUFtQjtBQUM3QywyQkFBMkIsc0VBQW1CO0FBQzlDLDBCQUEwQixzRUFBbUI7QUFDN0MsMkJBQTJCLHNFQUFtQjtBQUM5Qzs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9lYXNpbmcvc3VwcG9ydGVkLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdWJpY0JlemllckFzU3RyaW5nIH0gZnJvbSAnLi9jdWJpYy1iZXppZXIubWpzJztcblxuY29uc3Qgc3VwcG9ydGVkV2FhcGlFYXNpbmcgPSB7XG4gICAgbGluZWFyOiBcImxpbmVhclwiLFxuICAgIGVhc2U6IFwiZWFzZVwiLFxuICAgIGVhc2VJbjogXCJlYXNlLWluXCIsXG4gICAgZWFzZU91dDogXCJlYXNlLW91dFwiLFxuICAgIGVhc2VJbk91dDogXCJlYXNlLWluLW91dFwiLFxuICAgIGNpcmNJbjogLypAX19QVVJFX18qLyBjdWJpY0JlemllckFzU3RyaW5nKFswLCAwLjY1LCAwLjU1LCAxXSksXG4gICAgY2lyY091dDogLypAX19QVVJFX18qLyBjdWJpY0JlemllckFzU3RyaW5nKFswLjU1LCAwLCAxLCAwLjQ1XSksXG4gICAgYmFja0luOiAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyQXNTdHJpbmcoWzAuMzEsIDAuMDEsIDAuNjYsIC0wLjU5XSksXG4gICAgYmFja091dDogLypAX19QVVJFX18qLyBjdWJpY0JlemllckFzU3RyaW5nKFswLjMzLCAxLjUzLCAwLjY5LCAwLjk5XSksXG59O1xuXG5leHBvcnQgeyBzdXBwb3J0ZWRXYWFwaUVhc2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3VwcG9ydGVkLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.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 */ startWaapiAnimation: () => (/* binding */ startWaapiAnimation)\n/* harmony export */ });\n/* harmony import */ var _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../stats/animation-count.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../stats/buffer.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n/* harmony import */ var _easing_map_easing_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./easing/map-easing.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs\");\n\n\n\n\nfunction startWaapiAnimation(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease = \"easeOut\", times, } = {}, pseudoElement = undefined) {\n const keyframeOptions = {\n [valueName]: keyframes,\n };\n if (times)\n keyframeOptions.offset = times;\n const easing = (0,_easing_map_easing_mjs__WEBPACK_IMPORTED_MODULE_0__.mapEasingToNativeEasing)(ease, duration);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__.statsBuffer.value) {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.waapi++;\n }\n const options = {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n };\n if (pseudoElement)\n options.pseudoElement = pseudoElement;\n const animation = element.animate(keyframeOptions, options);\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__.statsBuffer.value) {\n animation.finished.finally(() => {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.waapi--;\n });\n }\n return animation;\n}\n\n\n//# sourceMappingURL=start-waapi-animation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9zdGFydC13YWFwaS1hbmltYXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBbUU7QUFDZDtBQUNhOztBQUVsRSw4REFBOEQsdUZBQXVGLElBQUk7QUFDeko7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQiwrRUFBdUI7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsMERBQVc7QUFDbkIsUUFBUSx3RUFBZ0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwwREFBVztBQUNuQjtBQUNBLFlBQVksd0VBQWdCO0FBQzVCLFNBQVM7QUFDVDtBQUNBO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vd2FhcGkvc3RhcnQtd2FhcGktYW5pbWF0aW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhY3RpdmVBbmltYXRpb25zIH0gZnJvbSAnLi4vLi4vc3RhdHMvYW5pbWF0aW9uLWNvdW50Lm1qcyc7XG5pbXBvcnQgeyBzdGF0c0J1ZmZlciB9IGZyb20gJy4uLy4uL3N0YXRzL2J1ZmZlci5tanMnO1xuaW1wb3J0IHsgbWFwRWFzaW5nVG9OYXRpdmVFYXNpbmcgfSBmcm9tICcuL2Vhc2luZy9tYXAtZWFzaW5nLm1qcyc7XG5cbmZ1bmN0aW9uIHN0YXJ0V2FhcGlBbmltYXRpb24oZWxlbWVudCwgdmFsdWVOYW1lLCBrZXlmcmFtZXMsIHsgZGVsYXkgPSAwLCBkdXJhdGlvbiA9IDMwMCwgcmVwZWF0ID0gMCwgcmVwZWF0VHlwZSA9IFwibG9vcFwiLCBlYXNlID0gXCJlYXNlT3V0XCIsIHRpbWVzLCB9ID0ge30sIHBzZXVkb0VsZW1lbnQgPSB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBrZXlmcmFtZU9wdGlvbnMgPSB7XG4gICAgICAgIFt2YWx1ZU5hbWVdOiBrZXlmcmFtZXMsXG4gICAgfTtcbiAgICBpZiAodGltZXMpXG4gICAgICAgIGtleWZyYW1lT3B0aW9ucy5vZmZzZXQgPSB0aW1lcztcbiAgICBjb25zdCBlYXNpbmcgPSBtYXBFYXNpbmdUb05hdGl2ZUVhc2luZyhlYXNlLCBkdXJhdGlvbik7XG4gICAgLyoqXG4gICAgICogSWYgdGhpcyBpcyBhbiBlYXNpbmcgYXJyYXksIGFwcGx5IHRvIGtleWZyYW1lcywgbm90IGFuaW1hdGlvbiBhcyBhIHdob2xlXG4gICAgICovXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZWFzaW5nKSlcbiAgICAgICAga2V5ZnJhbWVPcHRpb25zLmVhc2luZyA9IGVhc2luZztcbiAgICBpZiAoc3RhdHNCdWZmZXIudmFsdWUpIHtcbiAgICAgICAgYWN0aXZlQW5pbWF0aW9ucy53YWFwaSsrO1xuICAgIH1cbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICBkZWxheSxcbiAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIGVhc2luZzogIUFycmF5LmlzQXJyYXkoZWFzaW5nKSA/IGVhc2luZyA6IFwibGluZWFyXCIsXG4gICAgICAgIGZpbGw6IFwiYm90aFwiLFxuICAgICAgICBpdGVyYXRpb25zOiByZXBlYXQgKyAxLFxuICAgICAgICBkaXJlY3Rpb246IHJlcGVhdFR5cGUgPT09IFwicmV2ZXJzZVwiID8gXCJhbHRlcm5hdGVcIiA6IFwibm9ybWFsXCIsXG4gICAgfTtcbiAgICBpZiAocHNldWRvRWxlbWVudClcbiAgICAgICAgb3B0aW9ucy5wc2V1ZG9FbGVtZW50ID0gcHNldWRvRWxlbWVudDtcbiAgICBjb25zdCBhbmltYXRpb24gPSBlbGVtZW50LmFuaW1hdGUoa2V5ZnJhbWVPcHRpb25zLCBvcHRpb25zKTtcbiAgICBpZiAoc3RhdHNCdWZmZXIudmFsdWUpIHtcbiAgICAgICAgYW5pbWF0aW9uLmZpbmlzaGVkLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgYWN0aXZlQW5pbWF0aW9ucy53YWFwaS0tO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGFuaW1hdGlvbjtcbn1cblxuZXhwb3J0IHsgc3RhcnRXYWFwaUFuaW1hdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RhcnQtd2FhcGktYW5pbWF0aW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.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 */ supportsBrowserAnimation: () => (/* binding */ supportsBrowserAnimation)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/memo.mjs\");\n\n\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Could be re-enabled now we have support for linear() easing\n // \"background-color\"\n]);\nconst supportsWaapi = /*@__PURE__*/ (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.memo)(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\nfunction supportsBrowserAnimation(options) {\n const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\n const subject = motionValue?.owner?.current;\n /**\n * We use this check instead of isHTMLElement() because we explicitly\n * **don't** want elements in different timing contexts (i.e. popups)\n * to be accelerated, as it's not possible to sync these animations\n * properly with those driven from the main window frameloop.\n */\n if (!(subject instanceof HTMLElement)) {\n return false;\n }\n const { onUpdate, transformTemplate } = motionValue.owner.getProps();\n return (supportsWaapi() &&\n name &&\n acceleratedValues.has(name) &&\n (name !== \"transform\" || !transformTemplate) &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !onUpdate &&\n !repeatDelay &&\n repeatType !== \"mirror\" &&\n damping !== 0 &&\n type !== \"inertia\");\n}\n\n\n//# sourceMappingURL=waapi.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9zdXBwb3J0cy93YWFwaS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBb0M7O0FBRXBDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0Msa0RBQUk7QUFDeEM7QUFDQSxZQUFZLDREQUE0RDtBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksOEJBQThCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRW9DO0FBQ3BDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vd2FhcGkvc3VwcG9ydHMvd2FhcGkubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8gfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuXG4vKipcbiAqIEEgbGlzdCBvZiB2YWx1ZXMgdGhhdCBjYW4gYmUgaGFyZHdhcmUtYWNjZWxlcmF0ZWQuXG4gKi9cbmNvbnN0IGFjY2VsZXJhdGVkVmFsdWVzID0gbmV3IFNldChbXG4gICAgXCJvcGFjaXR5XCIsXG4gICAgXCJjbGlwUGF0aFwiLFxuICAgIFwiZmlsdGVyXCIsXG4gICAgXCJ0cmFuc2Zvcm1cIixcbiAgICAvLyBUT0RPOiBDb3VsZCBiZSByZS1lbmFibGVkIG5vdyB3ZSBoYXZlIHN1cHBvcnQgZm9yIGxpbmVhcigpIGVhc2luZ1xuICAgIC8vIFwiYmFja2dyb3VuZC1jb2xvclwiXG5dKTtcbmNvbnN0IHN1cHBvcnRzV2FhcGkgPSAvKkBfX1BVUkVfXyovIG1lbW8oKCkgPT4gT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoRWxlbWVudC5wcm90b3R5cGUsIFwiYW5pbWF0ZVwiKSk7XG5mdW5jdGlvbiBzdXBwb3J0c0Jyb3dzZXJBbmltYXRpb24ob3B0aW9ucykge1xuICAgIGNvbnN0IHsgbW90aW9uVmFsdWUsIG5hbWUsIHJlcGVhdERlbGF5LCByZXBlYXRUeXBlLCBkYW1waW5nLCB0eXBlIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHN1YmplY3QgPSBtb3Rpb25WYWx1ZT8ub3duZXI/LmN1cnJlbnQ7XG4gICAgLyoqXG4gICAgICogV2UgdXNlIHRoaXMgY2hlY2sgaW5zdGVhZCBvZiBpc0hUTUxFbGVtZW50KCkgYmVjYXVzZSB3ZSBleHBsaWNpdGx5XG4gICAgICogKipkb24ndCoqIHdhbnQgZWxlbWVudHMgaW4gZGlmZmVyZW50IHRpbWluZyBjb250ZXh0cyAoaS5lLiBwb3B1cHMpXG4gICAgICogdG8gYmUgYWNjZWxlcmF0ZWQsIGFzIGl0J3Mgbm90IHBvc3NpYmxlIHRvIHN5bmMgdGhlc2UgYW5pbWF0aW9uc1xuICAgICAqIHByb3Blcmx5IHdpdGggdGhvc2UgZHJpdmVuIGZyb20gdGhlIG1haW4gd2luZG93IGZyYW1lbG9vcC5cbiAgICAgKi9cbiAgICBpZiAoIShzdWJqZWN0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgeyBvblVwZGF0ZSwgdHJhbnNmb3JtVGVtcGxhdGUgfSA9IG1vdGlvblZhbHVlLm93bmVyLmdldFByb3BzKCk7XG4gICAgcmV0dXJuIChzdXBwb3J0c1dhYXBpKCkgJiZcbiAgICAgICAgbmFtZSAmJlxuICAgICAgICBhY2NlbGVyYXRlZFZhbHVlcy5oYXMobmFtZSkgJiZcbiAgICAgICAgKG5hbWUgIT09IFwidHJhbnNmb3JtXCIgfHwgIXRyYW5zZm9ybVRlbXBsYXRlKSAmJlxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgd2UncmUgb3V0cHV0dGluZyB2YWx1ZXMgdG8gb25VcGRhdGUgdGhlbiB3ZSBjYW4ndCB1c2UgV0FBUEkgYXMgdGhlcmUnc1xuICAgICAgICAgKiBubyB3YXkgdG8gcmVhZCB0aGUgdmFsdWUgZnJvbSBXQUFQSSBldmVyeSBmcmFtZS5cbiAgICAgICAgICovXG4gICAgICAgICFvblVwZGF0ZSAmJlxuICAgICAgICAhcmVwZWF0RGVsYXkgJiZcbiAgICAgICAgcmVwZWF0VHlwZSAhPT0gXCJtaXJyb3JcIiAmJlxuICAgICAgICBkYW1waW5nICE9PSAwICYmXG4gICAgICAgIHR5cGUgIT09IFwiaW5lcnRpYVwiKTtcbn1cblxuZXhwb3J0IHsgc3VwcG9ydHNCcm93c2VyQW5pbWF0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD13YWFwaS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.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 */ acceleratedValues: () => (/* binding */ acceleratedValues)\n/* harmony export */ });\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved\n // or until we implement support for linear() easing.\n // \"background-color\"\n]);\n\n\n//# sourceMappingURL=accelerated-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy9hY2NlbGVyYXRlZC12YWx1ZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTZCO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vd2FhcGkvdXRpbHMvYWNjZWxlcmF0ZWQtdmFsdWVzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgbGlzdCBvZiB2YWx1ZXMgdGhhdCBjYW4gYmUgaGFyZHdhcmUtYWNjZWxlcmF0ZWQuXG4gKi9cbmNvbnN0IGFjY2VsZXJhdGVkVmFsdWVzID0gbmV3IFNldChbXG4gICAgXCJvcGFjaXR5XCIsXG4gICAgXCJjbGlwUGF0aFwiLFxuICAgIFwiZmlsdGVyXCIsXG4gICAgXCJ0cmFuc2Zvcm1cIixcbiAgICAvLyBUT0RPOiBDYW4gYmUgYWNjZWxlcmF0ZWQgYnV0IGN1cnJlbnRseSBkaXNhYmxlZCB1bnRpbCBodHRwczovL2lzc3Vlcy5jaHJvbWl1bS5vcmcvaXNzdWVzLzQxNDkxMDk4IGlzIHJlc29sdmVkXG4gICAgLy8gb3IgdW50aWwgd2UgaW1wbGVtZW50IHN1cHBvcnQgZm9yIGxpbmVhcigpIGVhc2luZy5cbiAgICAvLyBcImJhY2tncm91bmQtY29sb3JcIlxuXSk7XG5cbmV4cG9ydCB7IGFjY2VsZXJhdGVkVmFsdWVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hY2NlbGVyYXRlZC12YWx1ZXMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.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 */ applyGeneratorOptions: () => (/* binding */ applyGeneratorOptions)\n/* harmony export */ });\n/* harmony import */ var _utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils/supports/linear-easing.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\");\n/* harmony import */ var _generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../generators/utils/is-generator.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\");\n\n\n\nfunction applyGeneratorOptions({ type, ...options }) {\n if ((0,_generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_0__.isGenerator)(type) && (0,_utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_1__.supportsLinearEasing)()) {\n return type.applyToOptions(options);\n }\n else {\n options.duration ?? (options.duration = 300);\n options.ease ?? (options.ease = \"easeOut\");\n }\n return options;\n}\n\n\n//# sourceMappingURL=apply-generator.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy9hcHBseS1nZW5lcmF0b3IubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFpRjtBQUNYOztBQUV0RSxpQ0FBaUMsa0JBQWtCO0FBQ25ELFFBQVEsK0VBQVcsVUFBVSx1RkFBb0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy9hcHBseS1nZW5lcmF0b3IubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN1cHBvcnRzTGluZWFyRWFzaW5nIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvc3VwcG9ydHMvbGluZWFyLWVhc2luZy5tanMnO1xuaW1wb3J0IHsgaXNHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi9nZW5lcmF0b3JzL3V0aWxzL2lzLWdlbmVyYXRvci5tanMnO1xuXG5mdW5jdGlvbiBhcHBseUdlbmVyYXRvck9wdGlvbnMoeyB0eXBlLCAuLi5vcHRpb25zIH0pIHtcbiAgICBpZiAoaXNHZW5lcmF0b3IodHlwZSkgJiYgc3VwcG9ydHNMaW5lYXJFYXNpbmcoKSkge1xuICAgICAgICByZXR1cm4gdHlwZS5hcHBseVRvT3B0aW9ucyhvcHRpb25zKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIG9wdGlvbnMuZHVyYXRpb24gPz8gKG9wdGlvbnMuZHVyYXRpb24gPSAzMDApO1xuICAgICAgICBvcHRpb25zLmVhc2UgPz8gKG9wdGlvbnMuZWFzZSA9IFwiZWFzZU91dFwiKTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG59XG5cbmV4cG9ydCB7IGFwcGx5R2VuZXJhdG9yT3B0aW9ucyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwbHktZ2VuZXJhdG9yLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.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 */ generateLinearEasing: () => (/* binding */ generateLinearEasing)\n/* harmony export */ });\nconst generateLinearEasing = (easing, duration, // as milliseconds\nresolution = 10 // as milliseconds\n) => {\n let points = \"\";\n const numPoints = Math.max(Math.round(duration / resolution), 2);\n for (let i = 0; i < numPoints; i++) {\n points += Math.round(easing(i / (numPoints - 1)) * 10000) / 10000 + \", \";\n }\n return `linear(${points.substring(0, points.length - 2)})`;\n};\n\n\n//# sourceMappingURL=linear.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy9saW5lYXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGVBQWU7QUFDbkM7QUFDQTtBQUNBLHFCQUFxQix1Q0FBdUM7QUFDNUQ7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vd2FhcGkvdXRpbHMvbGluZWFyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBnZW5lcmF0ZUxpbmVhckVhc2luZyA9IChlYXNpbmcsIGR1cmF0aW9uLCAvLyBhcyBtaWxsaXNlY29uZHNcbnJlc29sdXRpb24gPSAxMCAvLyBhcyBtaWxsaXNlY29uZHNcbikgPT4ge1xuICAgIGxldCBwb2ludHMgPSBcIlwiO1xuICAgIGNvbnN0IG51bVBvaW50cyA9IE1hdGgubWF4KE1hdGgucm91bmQoZHVyYXRpb24gLyByZXNvbHV0aW9uKSwgMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1Qb2ludHM7IGkrKykge1xuICAgICAgICBwb2ludHMgKz0gTWF0aC5yb3VuZChlYXNpbmcoaSAvIChudW1Qb2ludHMgLSAxKSkgKiAxMDAwMCkgLyAxMDAwMCArIFwiLCBcIjtcbiAgICB9XG4gICAgcmV0dXJuIGBsaW5lYXIoJHtwb2ludHMuc3Vic3RyaW5nKDAsIHBvaW50cy5sZW5ndGggLSAyKX0pYDtcbn07XG5cbmV4cG9ydCB7IGdlbmVyYXRlTGluZWFyRWFzaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1saW5lYXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.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 */ replaceStringEasing: () => (/* binding */ replaceStringEasing)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n\n\nconst unsupportedEasingFunctions = {\n anticipate: motion_utils__WEBPACK_IMPORTED_MODULE_0__.anticipate,\n backInOut: motion_utils__WEBPACK_IMPORTED_MODULE_1__.backInOut,\n circInOut: motion_utils__WEBPACK_IMPORTED_MODULE_2__.circInOut,\n};\nfunction isUnsupportedEase(key) {\n return key in unsupportedEasingFunctions;\n}\nfunction replaceStringEasing(transition) {\n if (typeof transition.ease === \"string\" &&\n isUnsupportedEase(transition.ease)) {\n transition.ease = unsupportedEasingFunctions[transition.ease];\n }\n}\n\n\n//# sourceMappingURL=unsupported-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy91bnN1cHBvcnRlZC1lYXNpbmcubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZ0U7O0FBRWhFO0FBQ0EsY0FBYztBQUNkLGFBQWE7QUFDYixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vd2FhcGkvdXRpbHMvdW5zdXBwb3J0ZWQtZWFzaW5nLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbnRpY2lwYXRlLCBiYWNrSW5PdXQsIGNpcmNJbk91dCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5cbmNvbnN0IHVuc3VwcG9ydGVkRWFzaW5nRnVuY3Rpb25zID0ge1xuICAgIGFudGljaXBhdGUsXG4gICAgYmFja0luT3V0LFxuICAgIGNpcmNJbk91dCxcbn07XG5mdW5jdGlvbiBpc1Vuc3VwcG9ydGVkRWFzZShrZXkpIHtcbiAgICByZXR1cm4ga2V5IGluIHVuc3VwcG9ydGVkRWFzaW5nRnVuY3Rpb25zO1xufVxuZnVuY3Rpb24gcmVwbGFjZVN0cmluZ0Vhc2luZyh0cmFuc2l0aW9uKSB7XG4gICAgaWYgKHR5cGVvZiB0cmFuc2l0aW9uLmVhc2UgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgaXNVbnN1cHBvcnRlZEVhc2UodHJhbnNpdGlvbi5lYXNlKSkge1xuICAgICAgICB0cmFuc2l0aW9uLmVhc2UgPSB1bnN1cHBvcnRlZEVhc2luZ0Z1bmN0aW9uc1t0cmFuc2l0aW9uLmVhc2VdO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgcmVwbGFjZVN0cmluZ0Vhc2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dW5zdXBwb3J0ZWQtZWFzaW5nLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/events/add-dom-event.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 */ addDomEvent: () => (/* binding */ addDomEvent)\n/* harmony export */ });\nfunction addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\n\n//# sourceMappingURL=add-dom-event.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2V2ZW50cy9hZGQtZG9tLWV2ZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsNkRBQTZELGVBQWU7QUFDNUU7QUFDQTtBQUNBOztBQUV1QjtBQUN2QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZXZlbnRzL2FkZC1kb20tZXZlbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGFkZERvbUV2ZW50KHRhcmdldCwgZXZlbnROYW1lLCBoYW5kbGVyLCBvcHRpb25zID0geyBwYXNzaXZlOiB0cnVlIH0pIHtcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGhhbmRsZXIsIG9wdGlvbnMpO1xuICAgIHJldHVybiAoKSA9PiB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGhhbmRsZXIpO1xufVxuXG5leHBvcnQgeyBhZGREb21FdmVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRkLWRvbS1ldmVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/batcher.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 */ createRenderBatcher: () => (/* binding */ createRenderBatcher)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _order_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./order.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/order.mjs\");\n/* harmony import */ var _render_step_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./render-step.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs\");\n\n\n\n\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n const flagRunNextFrame = () => (runNextFrame = true);\n const steps = _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.reduce((acc, key) => {\n acc[key] = (0,_render_step_mjs__WEBPACK_IMPORTED_MODULE_1__.createRenderStep)(flagRunNextFrame, allowKeepAlive ? key : undefined);\n return acc;\n }, {});\n const { setup, read, resolveKeyframes, preUpdate, update, preRender, render, postRender, } = steps;\n const processBatch = () => {\n const timestamp = motion_utils__WEBPACK_IMPORTED_MODULE_2__.MotionGlobalConfig.useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n if (!motion_utils__WEBPACK_IMPORTED_MODULE_2__.MotionGlobalConfig.useManualTiming) {\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n }\n state.timestamp = timestamp;\n state.isProcessing = true;\n // Unrolled render loop for better per-frame performance\n setup.process(state);\n read.process(state);\n resolveKeyframes.process(state);\n preUpdate.process(state);\n update.process(state);\n preRender.process(state);\n render.process(state);\n postRender.process(state);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => {\n for (let i = 0; i < _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.length; i++) {\n steps[_order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder[i]].cancel(process);\n }\n };\n return { schedule, cancel, state, steps };\n}\n\n\n//# sourceMappingURL=batcher.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9iYXRjaGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWtEO0FBQ1Q7QUFDWTs7QUFFckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Isa0RBQVU7QUFDNUIsbUJBQW1CLGtFQUFnQjtBQUNuQztBQUNBLEtBQUssSUFBSTtBQUNULFlBQVksbUZBQW1GO0FBQy9GO0FBQ0EsMEJBQTBCLDREQUFrQjtBQUM1QztBQUNBO0FBQ0E7QUFDQSxhQUFhLDREQUFrQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixrREFBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUssSUFBSTtBQUNUO0FBQ0Esd0JBQXdCLElBQUksa0RBQVUsU0FBUztBQUMvQyxrQkFBa0Isa0RBQVU7QUFDNUI7QUFDQTtBQUNBLGFBQWE7QUFDYjs7QUFFK0I7QUFDL0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9iYXRjaGVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb3Rpb25HbG9iYWxDb25maWcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgc3RlcHNPcmRlciB9IGZyb20gJy4vb3JkZXIubWpzJztcbmltcG9ydCB7IGNyZWF0ZVJlbmRlclN0ZXAgfSBmcm9tICcuL3JlbmRlci1zdGVwLm1qcyc7XG5cbmNvbnN0IG1heEVsYXBzZWQgPSA0MDtcbmZ1bmN0aW9uIGNyZWF0ZVJlbmRlckJhdGNoZXIoc2NoZWR1bGVOZXh0QmF0Y2gsIGFsbG93S2VlcEFsaXZlKSB7XG4gICAgbGV0IHJ1bk5leHRGcmFtZSA9IGZhbHNlO1xuICAgIGxldCB1c2VEZWZhdWx0RWxhcHNlZCA9IHRydWU7XG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgIGRlbHRhOiAwLjAsXG4gICAgICAgIHRpbWVzdGFtcDogMC4wLFxuICAgICAgICBpc1Byb2Nlc3Npbmc6IGZhbHNlLFxuICAgIH07XG4gICAgY29uc3QgZmxhZ1J1bk5leHRGcmFtZSA9ICgpID0+IChydW5OZXh0RnJhbWUgPSB0cnVlKTtcbiAgICBjb25zdCBzdGVwcyA9IHN0ZXBzT3JkZXIucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBhY2Nba2V5XSA9IGNyZWF0ZVJlbmRlclN0ZXAoZmxhZ1J1bk5leHRGcmFtZSwgYWxsb3dLZWVwQWxpdmUgPyBrZXkgOiB1bmRlZmluZWQpO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9KTtcbiAgICBjb25zdCB7IHNldHVwLCByZWFkLCByZXNvbHZlS2V5ZnJhbWVzLCBwcmVVcGRhdGUsIHVwZGF0ZSwgcHJlUmVuZGVyLCByZW5kZXIsIHBvc3RSZW5kZXIsIH0gPSBzdGVwcztcbiAgICBjb25zdCBwcm9jZXNzQmF0Y2ggPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IE1vdGlvbkdsb2JhbENvbmZpZy51c2VNYW51YWxUaW1pbmdcbiAgICAgICAgICAgID8gc3RhdGUudGltZXN0YW1wXG4gICAgICAgICAgICA6IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICBydW5OZXh0RnJhbWUgPSBmYWxzZTtcbiAgICAgICAgaWYgKCFNb3Rpb25HbG9iYWxDb25maWcudXNlTWFudWFsVGltaW5nKSB7XG4gICAgICAgICAgICBzdGF0ZS5kZWx0YSA9IHVzZURlZmF1bHRFbGFwc2VkXG4gICAgICAgICAgICAgICAgPyAxMDAwIC8gNjBcbiAgICAgICAgICAgICAgICA6IE1hdGgubWF4KE1hdGgubWluKHRpbWVzdGFtcCAtIHN0YXRlLnRpbWVzdGFtcCwgbWF4RWxhcHNlZCksIDEpO1xuICAgICAgICB9XG4gICAgICAgIHN0YXRlLnRpbWVzdGFtcCA9IHRpbWVzdGFtcDtcbiAgICAgICAgc3RhdGUuaXNQcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICAgICAgLy8gVW5yb2xsZWQgcmVuZGVyIGxvb3AgZm9yIGJldHRlciBwZXItZnJhbWUgcGVyZm9ybWFuY2VcbiAgICAgICAgc2V0dXAucHJvY2VzcyhzdGF0ZSk7XG4gICAgICAgIHJlYWQucHJvY2VzcyhzdGF0ZSk7XG4gICAgICAgIHJlc29sdmVLZXlmcmFtZXMucHJvY2VzcyhzdGF0ZSk7XG4gICAgICAgIHByZVVwZGF0ZS5wcm9jZXNzKHN0YXRlKTtcbiAgICAgICAgdXBkYXRlLnByb2Nlc3Moc3RhdGUpO1xuICAgICAgICBwcmVSZW5kZXIucHJvY2VzcyhzdGF0ZSk7XG4gICAgICAgIHJlbmRlci5wcm9jZXNzKHN0YXRlKTtcbiAgICAgICAgcG9zdFJlbmRlci5wcm9jZXNzKHN0YXRlKTtcbiAgICAgICAgc3RhdGUuaXNQcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgIGlmIChydW5OZXh0RnJhbWUgJiYgYWxsb3dLZWVwQWxpdmUpIHtcbiAgICAgICAgICAgIHVzZURlZmF1bHRFbGFwc2VkID0gZmFsc2U7XG4gICAgICAgICAgICBzY2hlZHVsZU5leHRCYXRjaChwcm9jZXNzQmF0Y2gpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCB3YWtlID0gKCkgPT4ge1xuICAgICAgICBydW5OZXh0RnJhbWUgPSB0cnVlO1xuICAgICAgICB1c2VEZWZhdWx0RWxhcHNlZCA9IHRydWU7XG4gICAgICAgIGlmICghc3RhdGUuaXNQcm9jZXNzaW5nKSB7XG4gICAgICAgICAgICBzY2hlZHVsZU5leHRCYXRjaChwcm9jZXNzQmF0Y2gpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBzY2hlZHVsZSA9IHN0ZXBzT3JkZXIucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBjb25zdCBzdGVwID0gc3RlcHNba2V5XTtcbiAgICAgICAgYWNjW2tleV0gPSAocHJvY2Vzcywga2VlcEFsaXZlID0gZmFsc2UsIGltbWVkaWF0ZSA9IGZhbHNlKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXJ1bk5leHRGcmFtZSlcbiAgICAgICAgICAgICAgICB3YWtlKCk7XG4gICAgICAgICAgICByZXR1cm4gc3RlcC5zY2hlZHVsZShwcm9jZXNzLCBrZWVwQWxpdmUsIGltbWVkaWF0ZSk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICAgIGNvbnN0IGNhbmNlbCA9IChwcm9jZXNzKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RlcHNPcmRlci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgc3RlcHNbc3RlcHNPcmRlcltpXV0uY2FuY2VsKHByb2Nlc3MpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4geyBzY2hlZHVsZSwgY2FuY2VsLCBzdGF0ZSwgc3RlcHMgfTtcbn1cblxuZXhwb3J0IHsgY3JlYXRlUmVuZGVyQmF0Y2hlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YmF0Y2hlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/frame.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 */ cancelFrame: () => (/* binding */ cancelFrame),\n/* harmony export */ frame: () => (/* binding */ frame),\n/* harmony export */ frameData: () => (/* binding */ frameData),\n/* harmony export */ frameSteps: () => (/* binding */ frameSteps)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _batcher_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./batcher.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\");\n\n\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps, } = /* @__PURE__ */ (0,_batcher_mjs__WEBPACK_IMPORTED_MODULE_0__.createRenderBatcher)(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop, true);\n\n\n//# sourceMappingURL=frame.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9mcmFtZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQW9DO0FBQ2dCOztBQUVwRCxRQUFRLDZFQUE2RSxrQkFBa0IsaUVBQW1CLHdFQUF3RSw4Q0FBSTs7QUFFako7QUFDckQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9mcmFtZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9vcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBjcmVhdGVSZW5kZXJCYXRjaGVyIH0gZnJvbSAnLi9iYXRjaGVyLm1qcyc7XG5cbmNvbnN0IHsgc2NoZWR1bGU6IGZyYW1lLCBjYW5jZWw6IGNhbmNlbEZyYW1lLCBzdGF0ZTogZnJhbWVEYXRhLCBzdGVwczogZnJhbWVTdGVwcywgfSA9IC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVSZW5kZXJCYXRjaGVyKHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgIT09IFwidW5kZWZpbmVkXCIgPyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgOiBub29wLCB0cnVlKTtcblxuZXhwb3J0IHsgY2FuY2VsRnJhbWUsIGZyYW1lLCBmcmFtZURhdGEsIGZyYW1lU3RlcHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZyYW1lLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/microtask.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 */ cancelMicrotask: () => (/* binding */ cancelMicrotask),\n/* harmony export */ microtask: () => (/* binding */ microtask)\n/* harmony export */ });\n/* harmony import */ var _batcher_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./batcher.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\");\n\n\nconst { schedule: microtask, cancel: cancelMicrotask } = \n/* @__PURE__ */ (0,_batcher_mjs__WEBPACK_IMPORTED_MODULE_0__.createRenderBatcher)(queueMicrotask, false);\n\n\n//# sourceMappingURL=microtask.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9taWNyb3Rhc2subWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvRDs7QUFFcEQsUUFBUSwrQ0FBK0M7QUFDdkQsZ0JBQWdCLGlFQUFtQjs7QUFFRztBQUN0QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL21pY3JvdGFzay5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVuZGVyQmF0Y2hlciB9IGZyb20gJy4vYmF0Y2hlci5tanMnO1xuXG5jb25zdCB7IHNjaGVkdWxlOiBtaWNyb3Rhc2ssIGNhbmNlbDogY2FuY2VsTWljcm90YXNrIH0gPSBcbi8qIEBfX1BVUkVfXyAqLyBjcmVhdGVSZW5kZXJCYXRjaGVyKHF1ZXVlTWljcm90YXNrLCBmYWxzZSk7XG5cbmV4cG9ydCB7IGNhbmNlbE1pY3JvdGFzaywgbWljcm90YXNrIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1taWNyb3Rhc2subWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/frameloop/order.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/order.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 */ stepsOrder: () => (/* binding */ stepsOrder)\n/* harmony export */ });\nconst stepsOrder = [\n \"setup\", // Compute\n \"read\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"preUpdate\", // Compute\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\n \"postRender\", // Compute\n];\n\n\n//# sourceMappingURL=order.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9vcmRlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzQjtBQUN0QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL29yZGVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzdGVwc09yZGVyID0gW1xuICAgIFwic2V0dXBcIiwgLy8gQ29tcHV0ZVxuICAgIFwicmVhZFwiLCAvLyBSZWFkXG4gICAgXCJyZXNvbHZlS2V5ZnJhbWVzXCIsIC8vIFdyaXRlL1JlYWQvV3JpdGUvUmVhZFxuICAgIFwicHJlVXBkYXRlXCIsIC8vIENvbXB1dGVcbiAgICBcInVwZGF0ZVwiLCAvLyBDb21wdXRlXG4gICAgXCJwcmVSZW5kZXJcIiwgLy8gQ29tcHV0ZVxuICAgIFwicmVuZGVyXCIsIC8vIFdyaXRlXG4gICAgXCJwb3N0UmVuZGVyXCIsIC8vIENvbXB1dGVcbl07XG5cbmV4cG9ydCB7IHN0ZXBzT3JkZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW9yZGVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/frameloop/order.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/render-step.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 */ createRenderStep: () => (/* binding */ createRenderStep)\n/* harmony export */ });\n/* harmony import */ var _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../stats/buffer.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n\n\nfunction createRenderStep(runNextFrame, stepName) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Set();\n let nextFrame = new Set();\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n let latestFrameData = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n let numCalls = 0;\n function triggerCallback(callback) {\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n numCalls++;\n callback(latestFrameData);\n }\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (!queue.has(callback))\n queue.add(callback);\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.delete(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n latestFrameData = frameData;\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Execute this frame\n thisFrame.forEach(triggerCallback);\n /**\n * If we're recording stats then\n */\n if (stepName && _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__.statsBuffer.value) {\n _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__.statsBuffer.value.frameloop[stepName].push(numCalls);\n }\n numCalls = 0;\n // Clear the frame so no callbacks remain. This is to avoid\n // memory leaks should this render step not run for a while.\n thisFrame.clear();\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\n\n//# sourceMappingURL=render-step.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9yZW5kZXItc3RlcC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBa0Q7O0FBRWxEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsMERBQVc7QUFDdkMsZ0JBQWdCLDBEQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9yZW5kZXItc3RlcC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3RhdHNCdWZmZXIgfSBmcm9tICcuLi9zdGF0cy9idWZmZXIubWpzJztcblxuZnVuY3Rpb24gY3JlYXRlUmVuZGVyU3RlcChydW5OZXh0RnJhbWUsIHN0ZXBOYW1lKSB7XG4gICAgLyoqXG4gICAgICogV2UgY3JlYXRlIGFuZCByZXVzZSB0d28gcXVldWVzLCBvbmUgdG8gcXVldWUgam9icyBmb3IgdGhlIGN1cnJlbnQgZnJhbWVcbiAgICAgKiBhbmQgb25lIGZvciB0aGUgbmV4dC4gV2UgcmV1c2UgdG8gYXZvaWQgdHJpZ2dlcmluZyBHQyBhZnRlciB4IGZyYW1lcy5cbiAgICAgKi9cbiAgICBsZXQgdGhpc0ZyYW1lID0gbmV3IFNldCgpO1xuICAgIGxldCBuZXh0RnJhbWUgPSBuZXcgU2V0KCk7XG4gICAgLyoqXG4gICAgICogVHJhY2sgd2hldGhlciB3ZSdyZSBjdXJyZW50bHkgcHJvY2Vzc2luZyBqb2JzIGluIHRoaXMgc3RlcC4gVGhpcyB3YXlcbiAgICAgKiB3ZSBjYW4gZGVjaWRlIHdoZXRoZXIgdG8gc2NoZWR1bGUgbmV3IGpvYnMgZm9yIHRoaXMgZnJhbWUgb3IgbmV4dC5cbiAgICAgKi9cbiAgICBsZXQgaXNQcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgbGV0IGZsdXNoTmV4dEZyYW1lID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogQSBzZXQgb2YgcHJvY2Vzc2VzIHdoaWNoIHdlcmUgbWFya2VkIGtlZXBBbGl2ZSB3aGVuIHNjaGVkdWxlZC5cbiAgICAgKi9cbiAgICBjb25zdCB0b0tlZXBBbGl2ZSA9IG5ldyBXZWFrU2V0KCk7XG4gICAgbGV0IGxhdGVzdEZyYW1lRGF0YSA9IHtcbiAgICAgICAgZGVsdGE6IDAuMCxcbiAgICAgICAgdGltZXN0YW1wOiAwLjAsXG4gICAgICAgIGlzUHJvY2Vzc2luZzogZmFsc2UsXG4gICAgfTtcbiAgICBsZXQgbnVtQ2FsbHMgPSAwO1xuICAgIGZ1bmN0aW9uIHRyaWdnZXJDYWxsYmFjayhjYWxsYmFjaykge1xuICAgICAgICBpZiAodG9LZWVwQWxpdmUuaGFzKGNhbGxiYWNrKSkge1xuICAgICAgICAgICAgc3RlcC5zY2hlZHVsZShjYWxsYmFjayk7XG4gICAgICAgICAgICBydW5OZXh0RnJhbWUoKTtcbiAgICAgICAgfVxuICAgICAgICBudW1DYWxscysrO1xuICAgICAgICBjYWxsYmFjayhsYXRlc3RGcmFtZURhdGEpO1xuICAgIH1cbiAgICBjb25zdCBzdGVwID0ge1xuICAgICAgICAvKipcbiAgICAgICAgICogU2NoZWR1bGUgYSBwcm9jZXNzIHRvIHJ1biBvbiB0aGUgbmV4dCBmcmFtZS5cbiAgICAgICAgICovXG4gICAgICAgIHNjaGVkdWxlOiAoY2FsbGJhY2ssIGtlZXBBbGl2ZSA9IGZhbHNlLCBpbW1lZGlhdGUgPSBmYWxzZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWRkVG9DdXJyZW50RnJhbWUgPSBpbW1lZGlhdGUgJiYgaXNQcm9jZXNzaW5nO1xuICAgICAgICAgICAgY29uc3QgcXVldWUgPSBhZGRUb0N1cnJlbnRGcmFtZSA/IHRoaXNGcmFtZSA6IG5leHRGcmFtZTtcbiAgICAgICAgICAgIGlmIChrZWVwQWxpdmUpXG4gICAgICAgICAgICAgICAgdG9LZWVwQWxpdmUuYWRkKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIGlmICghcXVldWUuaGFzKGNhbGxiYWNrKSlcbiAgICAgICAgICAgICAgICBxdWV1ZS5hZGQoY2FsbGJhY2spO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrO1xuICAgICAgICB9LFxuICAgICAgICAvKipcbiAgICAgICAgICogQ2FuY2VsIHRoZSBwcm92aWRlZCBjYWxsYmFjayBmcm9tIHJ1bm5pbmcgb24gdGhlIG5leHQgZnJhbWUuXG4gICAgICAgICAqL1xuICAgICAgICBjYW5jZWw6IChjYWxsYmFjaykgPT4ge1xuICAgICAgICAgICAgbmV4dEZyYW1lLmRlbGV0ZShjYWxsYmFjayk7XG4gICAgICAgICAgICB0b0tlZXBBbGl2ZS5kZWxldGUoY2FsbGJhY2spO1xuICAgICAgICB9LFxuICAgICAgICAvKipcbiAgICAgICAgICogRXhlY3V0ZSBhbGwgc2NoZWR1bGUgY2FsbGJhY2tzLlxuICAgICAgICAgKi9cbiAgICAgICAgcHJvY2VzczogKGZyYW1lRGF0YSkgPT4ge1xuICAgICAgICAgICAgbGF0ZXN0RnJhbWVEYXRhID0gZnJhbWVEYXRhO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB3ZSdyZSBhbHJlYWR5IHByb2Nlc3Npbmcgd2UndmUgcHJvYmFibHkgYmVlbiB0cmlnZ2VyZWQgYnkgYSBmbHVzaFN5bmNcbiAgICAgICAgICAgICAqIGluc2lkZSBhbiBleGlzdGluZyBwcm9jZXNzLiBJbnN0ZWFkIG9mIGV4ZWN1dGluZywgbWFyayBmbHVzaE5leHRGcmFtZVxuICAgICAgICAgICAgICogYXMgdHJ1ZSBhbmQgZW5zdXJlIHdlIGZsdXNoIHRoZSBmb2xsb3dpbmcgZnJhbWUgYXQgdGhlIGVuZCBvZiB0aGlzIG9uZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKGlzUHJvY2Vzc2luZykge1xuICAgICAgICAgICAgICAgIGZsdXNoTmV4dEZyYW1lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPSB0cnVlO1xuICAgICAgICAgICAgW3RoaXNGcmFtZSwgbmV4dEZyYW1lXSA9IFtuZXh0RnJhbWUsIHRoaXNGcmFtZV07XG4gICAgICAgICAgICAvLyBFeGVjdXRlIHRoaXMgZnJhbWVcbiAgICAgICAgICAgIHRoaXNGcmFtZS5mb3JFYWNoKHRyaWdnZXJDYWxsYmFjayk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlJ3JlIHJlY29yZGluZyBzdGF0cyB0aGVuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChzdGVwTmFtZSAmJiBzdGF0c0J1ZmZlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHN0YXRzQnVmZmVyLnZhbHVlLmZyYW1lbG9vcFtzdGVwTmFtZV0ucHVzaChudW1DYWxscyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBudW1DYWxscyA9IDA7XG4gICAgICAgICAgICAvLyBDbGVhciB0aGUgZnJhbWUgc28gbm8gY2FsbGJhY2tzIHJlbWFpbi4gVGhpcyBpcyB0byBhdm9pZFxuICAgICAgICAgICAgLy8gbWVtb3J5IGxlYWtzIHNob3VsZCB0aGlzIHJlbmRlciBzdGVwIG5vdCBydW4gZm9yIGEgd2hpbGUuXG4gICAgICAgICAgICB0aGlzRnJhbWUuY2xlYXIoKTtcbiAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGZsdXNoTmV4dEZyYW1lKSB7XG4gICAgICAgICAgICAgICAgZmx1c2hOZXh0RnJhbWUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBzdGVwLnByb2Nlc3MoZnJhbWVEYXRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xuICAgIHJldHVybiBzdGVwO1xufVxuXG5leHBvcnQgeyBjcmVhdGVSZW5kZXJTdGVwIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZW5kZXItc3RlcC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/sync-time.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 */ time: () => (/* binding */ time)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _frame_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./frame.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.isProcessing || motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.useManualTiming\n ? _frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\n\n//# sourceMappingURL=sync-time.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9zeW5jLXRpbWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFrRDtBQUNWOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsaURBQVMsaUJBQWlCLDREQUFrQjtBQUNqRSxrQkFBa0IsaURBQVM7QUFDM0I7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFZ0I7QUFDaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2ZyYW1lbG9vcC9zeW5jLXRpbWUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdGlvbkdsb2JhbENvbmZpZyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBmcmFtZURhdGEgfSBmcm9tICcuL2ZyYW1lLm1qcyc7XG5cbmxldCBub3c7XG5mdW5jdGlvbiBjbGVhclRpbWUoKSB7XG4gICAgbm93ID0gdW5kZWZpbmVkO1xufVxuLyoqXG4gKiBBbiBldmVudGxvb3Atc3luY2hyb25vdXMgYWx0ZXJuYXRpdmUgdG8gcGVyZm9ybWFuY2Uubm93KCkuXG4gKlxuICogRW5zdXJlcyB0aGF0IHRpbWUgbWVhc3VyZW1lbnRzIHJlbWFpbiBjb25zaXN0ZW50IHdpdGhpbiBhIHN5bmNocm9ub3VzIGNvbnRleHQuXG4gKiBVc3VhbGx5IGNhbGxpbmcgcGVyZm9ybWFuY2Uubm93KCkgdHdpY2Ugd2l0aGluIHRoZSBzYW1lIHN5bmNocm9ub3VzIGNvbnRleHRcbiAqIHdpbGwgcmV0dXJuIGRpZmZlcmVudCB2YWx1ZXMgd2hpY2ggaXNuJ3QgdXNlZnVsIGZvciBhbmltYXRpb25zIHdoZW4gd2UncmUgdXN1YWxseVxuICogdHJ5aW5nIHRvIHN5bmMgYW5pbWF0aW9ucyB0byB0aGUgc2FtZSBmcmFtZS5cbiAqL1xuY29uc3QgdGltZSA9IHtcbiAgICBub3c6ICgpID0+IHtcbiAgICAgICAgaWYgKG5vdyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aW1lLnNldChmcmFtZURhdGEuaXNQcm9jZXNzaW5nIHx8IE1vdGlvbkdsb2JhbENvbmZpZy51c2VNYW51YWxUaW1pbmdcbiAgICAgICAgICAgICAgICA/IGZyYW1lRGF0YS50aW1lc3RhbXBcbiAgICAgICAgICAgICAgICA6IHBlcmZvcm1hbmNlLm5vdygpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm93O1xuICAgIH0sXG4gICAgc2V0OiAobmV3VGltZSkgPT4ge1xuICAgICAgICBub3cgPSBuZXdUaW1lO1xuICAgICAgICBxdWV1ZU1pY3JvdGFzayhjbGVhclRpbWUpO1xuICAgIH0sXG59O1xuXG5leHBvcnQgeyB0aW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zeW5jLXRpbWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.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 */ isDragActive: () => (/* binding */ isDragActive),\n/* harmony export */ isDragging: () => (/* binding */ isDragging)\n/* harmony export */ });\nconst isDragging = {\n x: false,\n y: false,\n};\nfunction isDragActive() {\n return isDragging.x || isDragging.y;\n}\n\n\n//# sourceMappingURL=is-active.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvc3RhdGUvaXMtYWN0aXZlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVvQztBQUNwQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9zdGF0ZS9pcy1hY3RpdmUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzRHJhZ2dpbmcgPSB7XG4gICAgeDogZmFsc2UsXG4gICAgeTogZmFsc2UsXG59O1xuZnVuY3Rpb24gaXNEcmFnQWN0aXZlKCkge1xuICAgIHJldHVybiBpc0RyYWdnaW5nLnggfHwgaXNEcmFnZ2luZy55O1xufVxuXG5leHBvcnQgeyBpc0RyYWdBY3RpdmUsIGlzRHJhZ2dpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWFjdGl2ZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.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 */ setDragLock: () => (/* binding */ setDragLock)\n/* harmony export */ });\n/* harmony import */ var _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-active.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n\n\nfunction setDragLock(axis) {\n if (axis === \"x\" || axis === \"y\") {\n if (_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis]) {\n return null;\n }\n else {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis] = true;\n return () => {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis] = false;\n };\n }\n }\n else {\n if (_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x || _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y) {\n return null;\n }\n else {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x = _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y = true;\n return () => {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x = _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y = false;\n };\n }\n }\n}\n\n\n//# sourceMappingURL=set-active.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvc3RhdGUvc2V0LWFjdGl2ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBNkM7O0FBRTdDO0FBQ0E7QUFDQSxZQUFZLHNEQUFVO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBLFlBQVksc0RBQVU7QUFDdEI7QUFDQSxnQkFBZ0Isc0RBQVU7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHNEQUFVLE1BQU0sc0RBQVU7QUFDdEM7QUFDQTtBQUNBO0FBQ0EsWUFBWSxzREFBVSxLQUFLLHNEQUFVO0FBQ3JDO0FBQ0EsZ0JBQWdCLHNEQUFVLEtBQUssc0RBQVU7QUFDekM7QUFDQTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy9kcmFnL3N0YXRlL3NldC1hY3RpdmUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRHJhZ2dpbmcgfSBmcm9tICcuL2lzLWFjdGl2ZS5tanMnO1xuXG5mdW5jdGlvbiBzZXREcmFnTG9jayhheGlzKSB7XG4gICAgaWYgKGF4aXMgPT09IFwieFwiIHx8IGF4aXMgPT09IFwieVwiKSB7XG4gICAgICAgIGlmIChpc0RyYWdnaW5nW2F4aXNdKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlzRHJhZ2dpbmdbYXhpc10gPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBpc0RyYWdnaW5nW2F4aXNdID0gZmFsc2U7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBpZiAoaXNEcmFnZ2luZy54IHx8IGlzRHJhZ2dpbmcueSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpc0RyYWdnaW5nLnggPSBpc0RyYWdnaW5nLnkgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBpc0RyYWdnaW5nLnggPSBpc0RyYWdnaW5nLnkgPSBmYWxzZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCB7IHNldERyYWdMb2NrIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXQtYWN0aXZlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/gestures/hover.mjs": +/*!************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/hover.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 */ hover: () => (/* binding */ hover)\n/* harmony export */ });\n/* harmony import */ var _drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./drag/state/is-active.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n/* harmony import */ var _utils_setup_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/setup.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\");\n\n\n\nfunction isValidHover(event) {\n return !(event.pointerType === \"touch\" || (0,_drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragActive)());\n}\n/**\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\n * with drag gestures, and automatically removes the \"pointerennd\" event listener when the hover ends.\n *\n * @public\n */\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\n const [elements, eventOptions, cancel] = (0,_utils_setup_mjs__WEBPACK_IMPORTED_MODULE_1__.setupGesture)(elementOrSelector, options);\n elements.forEach((element) => {\n let isPressed = false;\n let deferredHoverEnd = false;\n let hoverEndCallback;\n const removePointerLeave = () => {\n element.removeEventListener(\"pointerleave\", onPointerLeave);\n };\n const endHover = (event) => {\n if (hoverEndCallback) {\n hoverEndCallback(event);\n hoverEndCallback = undefined;\n }\n removePointerLeave();\n };\n const onPointerUp = (event) => {\n isPressed = false;\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerUp);\n if (deferredHoverEnd) {\n deferredHoverEnd = false;\n endHover(event);\n }\n };\n const onPointerDown = () => {\n isPressed = true;\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerUp, eventOptions);\n };\n const onPointerLeave = (leaveEvent) => {\n if (leaveEvent.pointerType === \"touch\")\n return;\n if (isPressed) {\n deferredHoverEnd = true;\n return;\n }\n endHover(leaveEvent);\n };\n const onPointerEnter = (enterEvent) => {\n if (!isValidHover(enterEvent))\n return;\n deferredHoverEnd = false;\n const onHoverEnd = onHoverStart(element, enterEvent);\n if (typeof onHoverEnd !== \"function\")\n return;\n hoverEndCallback = onHoverEnd;\n element.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\n };\n element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\n element.addEventListener(\"pointerdown\", onPointerDown, eventOptions);\n });\n return cancel;\n}\n\n\n//# sourceMappingURL=hover.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL2hvdmVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMEQ7QUFDVDs7QUFFakQ7QUFDQSw4Q0FBOEMsdUVBQVk7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDREQUE0RDtBQUM1RCw2Q0FBNkMsOERBQVk7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFaUI7QUFDakIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL2hvdmVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0RyYWdBY3RpdmUgfSBmcm9tICcuL2RyYWcvc3RhdGUvaXMtYWN0aXZlLm1qcyc7XG5pbXBvcnQgeyBzZXR1cEdlc3R1cmUgfSBmcm9tICcuL3V0aWxzL3NldHVwLm1qcyc7XG5cbmZ1bmN0aW9uIGlzVmFsaWRIb3ZlcihldmVudCkge1xuICAgIHJldHVybiAhKGV2ZW50LnBvaW50ZXJUeXBlID09PSBcInRvdWNoXCIgfHwgaXNEcmFnQWN0aXZlKCkpO1xufVxuLyoqXG4gKiBDcmVhdGUgYSBob3ZlciBnZXN0dXJlLiBob3ZlcigpIGlzIGRpZmZlcmVudCB0byAuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJlbnRlclwiKVxuICogaW4gdGhhdCBpdCBoYXMgYW4gZWFzaWVyIHN5bnRheCwgZmlsdGVycyBvdXQgcG9seWZpbGxlZCB0b3VjaCBldmVudHMsIGludGVyb3BlcmF0ZXNcbiAqIHdpdGggZHJhZyBnZXN0dXJlcywgYW5kIGF1dG9tYXRpY2FsbHkgcmVtb3ZlcyB0aGUgXCJwb2ludGVyZW5uZFwiIGV2ZW50IGxpc3RlbmVyIHdoZW4gdGhlIGhvdmVyIGVuZHMuXG4gKlxuICogQHB1YmxpY1xuICovXG5mdW5jdGlvbiBob3ZlcihlbGVtZW50T3JTZWxlY3Rvciwgb25Ib3ZlclN0YXJ0LCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBbZWxlbWVudHMsIGV2ZW50T3B0aW9ucywgY2FuY2VsXSA9IHNldHVwR2VzdHVyZShlbGVtZW50T3JTZWxlY3Rvciwgb3B0aW9ucyk7XG4gICAgZWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICBsZXQgaXNQcmVzc2VkID0gZmFsc2U7XG4gICAgICAgIGxldCBkZWZlcnJlZEhvdmVyRW5kID0gZmFsc2U7XG4gICAgICAgIGxldCBob3ZlckVuZENhbGxiYWNrO1xuICAgICAgICBjb25zdCByZW1vdmVQb2ludGVyTGVhdmUgPSAoKSA9PiB7XG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVybGVhdmVcIiwgb25Qb2ludGVyTGVhdmUpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBlbmRIb3ZlciA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGhvdmVyRW5kQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICBob3ZlckVuZENhbGxiYWNrKGV2ZW50KTtcbiAgICAgICAgICAgICAgICBob3ZlckVuZENhbGxiYWNrID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVtb3ZlUG9pbnRlckxlYXZlKCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uUG9pbnRlclVwID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpc1ByZXNzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIsIG9uUG9pbnRlclVwKTtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmNhbmNlbFwiLCBvblBvaW50ZXJVcCk7XG4gICAgICAgICAgICBpZiAoZGVmZXJyZWRIb3ZlckVuZCkge1xuICAgICAgICAgICAgICAgIGRlZmVycmVkSG92ZXJFbmQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBlbmRIb3ZlcihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uUG9pbnRlckRvd24gPSAoKSA9PiB7XG4gICAgICAgICAgICBpc1ByZXNzZWQgPSB0cnVlO1xuICAgICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgb25Qb2ludGVyVXAsIGV2ZW50T3B0aW9ucyk7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJjYW5jZWxcIiwgb25Qb2ludGVyVXAsIGV2ZW50T3B0aW9ucyk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uUG9pbnRlckxlYXZlID0gKGxlYXZlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChsZWF2ZUV2ZW50LnBvaW50ZXJUeXBlID09PSBcInRvdWNoXCIpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGlzUHJlc3NlZCkge1xuICAgICAgICAgICAgICAgIGRlZmVycmVkSG92ZXJFbmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVuZEhvdmVyKGxlYXZlRXZlbnQpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvblBvaW50ZXJFbnRlciA9IChlbnRlckV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWRIb3ZlcihlbnRlckV2ZW50KSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBkZWZlcnJlZEhvdmVyRW5kID0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBvbkhvdmVyRW5kID0gb25Ib3ZlclN0YXJ0KGVsZW1lbnQsIGVudGVyRXZlbnQpO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvbkhvdmVyRW5kICE9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaG92ZXJFbmRDYWxsYmFjayA9IG9uSG92ZXJFbmQ7XG4gICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVybGVhdmVcIiwgb25Qb2ludGVyTGVhdmUsIGV2ZW50T3B0aW9ucyk7XG4gICAgICAgIH07XG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJlbnRlclwiLCBvblBvaW50ZXJFbnRlciwgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgb25Qb2ludGVyRG93biwgZXZlbnRPcHRpb25zKTtcbiAgICB9KTtcbiAgICByZXR1cm4gY2FuY2VsO1xufVxuXG5leHBvcnQgeyBob3ZlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aG92ZXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/gestures/hover.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/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 */ press: () => (/* binding */ press)\n/* harmony export */ });\n/* harmony import */ var _utils_is_html_element_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/is-html-element.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\");\n/* harmony import */ var _drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../drag/state/is-active.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n/* harmony import */ var _utils_is_node_or_child_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/is-node-or-child.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs\");\n/* harmony import */ var _utils_is_primary_pointer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/is-primary-pointer.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n/* harmony import */ var _utils_setup_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/setup.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\");\n/* harmony import */ var _utils_is_keyboard_accessible_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/is-keyboard-accessible.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs\");\n/* harmony import */ var _utils_keyboard_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/keyboard.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs\");\n/* harmony import */ var _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/state.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\");\n\n\n\n\n\n\n\n\n\n/**\n * Filter out events that are not primary pointer events, or are triggering\n * while a Motion gesture is active.\n */\nfunction isValidPressEvent(event) {\n return (0,_utils_is_primary_pointer_mjs__WEBPACK_IMPORTED_MODULE_0__.isPrimaryPointer)(event) && !(0,_drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_1__.isDragActive)();\n}\nconst claimedPointerDownEvents = new WeakSet();\n/**\n * Create a press gesture.\n *\n * Press is different to `\"pointerdown\"`, `\"pointerup\"` in that it\n * automatically filters out secondary pointer events like right\n * click and multitouch.\n *\n * It also adds accessibility support for keyboards, where\n * an element with a press gesture will receive focus and\n * trigger on Enter `\"keydown\"` and `\"keyup\"` events.\n *\n * This is different to a browser's `\"click\"` event, which does\n * respond to keyboards but only for the `\"click\"` itself, rather\n * than the press start and end/cancel. The element also needs\n * to be focusable for this to work, whereas a press gesture will\n * make an element focusable by default.\n *\n * @public\n */\nfunction press(targetOrSelector, onPressStart, options = {}) {\n const [targets, eventOptions, cancelEvents] = (0,_utils_setup_mjs__WEBPACK_IMPORTED_MODULE_2__.setupGesture)(targetOrSelector, options);\n const startPress = (startEvent) => {\n const target = startEvent.currentTarget;\n if (!isValidPressEvent(startEvent))\n return;\n if (claimedPointerDownEvents.has(startEvent))\n return;\n _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.add(target);\n if (options.stopPropagation) {\n claimedPointerDownEvents.add(startEvent);\n }\n const onPressEnd = onPressStart(target, startEvent);\n const onPointerEnd = (endEvent, success) => {\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerCancel);\n if (_utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.has(target)) {\n _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.delete(target);\n }\n if (!isValidPressEvent(endEvent)) {\n return;\n }\n if (typeof onPressEnd === \"function\") {\n onPressEnd(endEvent, { success });\n }\n };\n const onPointerUp = (upEvent) => {\n onPointerEnd(upEvent, target === window ||\n target === document ||\n options.useGlobalTarget ||\n (0,_utils_is_node_or_child_mjs__WEBPACK_IMPORTED_MODULE_4__.isNodeOrChild)(target, upEvent.target));\n };\n const onPointerCancel = (cancelEvent) => {\n onPointerEnd(cancelEvent, false);\n };\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerCancel, eventOptions);\n };\n targets.forEach((target) => {\n const pointerDownTarget = options.useGlobalTarget ? window : target;\n pointerDownTarget.addEventListener(\"pointerdown\", startPress, eventOptions);\n if ((0,_utils_is_html_element_mjs__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement)(target)) {\n target.addEventListener(\"focus\", (event) => (0,_utils_keyboard_mjs__WEBPACK_IMPORTED_MODULE_6__.enableKeyboardPress)(event, eventOptions));\n if (!(0,_utils_is_keyboard_accessible_mjs__WEBPACK_IMPORTED_MODULE_7__.isElementKeyboardAccessible)(target) &&\n !target.hasAttribute(\"tabindex\")) {\n target.tabIndex = 0;\n }\n }\n });\n return cancelEvents;\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBZ0U7QUFDTDtBQUNHO0FBQ0s7QUFDakI7QUFDK0I7QUFDdEI7QUFDWjs7QUFFL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsK0VBQWdCLFlBQVksdUVBQVk7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJEO0FBQzNELGtEQUFrRCw4REFBWTtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHdEQUFVO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHdEQUFVO0FBQzFCLGdCQUFnQix3REFBVTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLFNBQVM7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBFQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx5RUFBYTtBQUN6Qix3REFBd0Qsd0VBQW1CO0FBQzNFLGlCQUFpQiw4RkFBMkI7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFaUI7QUFDakIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0hUTUxFbGVtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvaXMtaHRtbC1lbGVtZW50Lm1qcyc7XG5pbXBvcnQgeyBpc0RyYWdBY3RpdmUgfSBmcm9tICcuLi9kcmFnL3N0YXRlL2lzLWFjdGl2ZS5tanMnO1xuaW1wb3J0IHsgaXNOb2RlT3JDaGlsZCB9IGZyb20gJy4uL3V0aWxzL2lzLW5vZGUtb3ItY2hpbGQubWpzJztcbmltcG9ydCB7IGlzUHJpbWFyeVBvaW50ZXIgfSBmcm9tICcuLi91dGlscy9pcy1wcmltYXJ5LXBvaW50ZXIubWpzJztcbmltcG9ydCB7IHNldHVwR2VzdHVyZSB9IGZyb20gJy4uL3V0aWxzL3NldHVwLm1qcyc7XG5pbXBvcnQgeyBpc0VsZW1lbnRLZXlib2FyZEFjY2Vzc2libGUgfSBmcm9tICcuL3V0aWxzL2lzLWtleWJvYXJkLWFjY2Vzc2libGUubWpzJztcbmltcG9ydCB7IGVuYWJsZUtleWJvYXJkUHJlc3MgfSBmcm9tICcuL3V0aWxzL2tleWJvYXJkLm1qcyc7XG5pbXBvcnQgeyBpc1ByZXNzaW5nIH0gZnJvbSAnLi91dGlscy9zdGF0ZS5tanMnO1xuXG4vKipcbiAqIEZpbHRlciBvdXQgZXZlbnRzIHRoYXQgYXJlIG5vdCBwcmltYXJ5IHBvaW50ZXIgZXZlbnRzLCBvciBhcmUgdHJpZ2dlcmluZ1xuICogd2hpbGUgYSBNb3Rpb24gZ2VzdHVyZSBpcyBhY3RpdmUuXG4gKi9cbmZ1bmN0aW9uIGlzVmFsaWRQcmVzc0V2ZW50KGV2ZW50KSB7XG4gICAgcmV0dXJuIGlzUHJpbWFyeVBvaW50ZXIoZXZlbnQpICYmICFpc0RyYWdBY3RpdmUoKTtcbn1cbmNvbnN0IGNsYWltZWRQb2ludGVyRG93bkV2ZW50cyA9IG5ldyBXZWFrU2V0KCk7XG4vKipcbiAqIENyZWF0ZSBhIHByZXNzIGdlc3R1cmUuXG4gKlxuICogUHJlc3MgaXMgZGlmZmVyZW50IHRvIGBcInBvaW50ZXJkb3duXCJgLCBgXCJwb2ludGVydXBcImAgaW4gdGhhdCBpdFxuICogYXV0b21hdGljYWxseSBmaWx0ZXJzIG91dCBzZWNvbmRhcnkgcG9pbnRlciBldmVudHMgbGlrZSByaWdodFxuICogY2xpY2sgYW5kIG11bHRpdG91Y2guXG4gKlxuICogSXQgYWxzbyBhZGRzIGFjY2Vzc2liaWxpdHkgc3VwcG9ydCBmb3Iga2V5Ym9hcmRzLCB3aGVyZVxuICogYW4gZWxlbWVudCB3aXRoIGEgcHJlc3MgZ2VzdHVyZSB3aWxsIHJlY2VpdmUgZm9jdXMgYW5kXG4gKiAgdHJpZ2dlciBvbiBFbnRlciBgXCJrZXlkb3duXCJgIGFuZCBgXCJrZXl1cFwiYCBldmVudHMuXG4gKlxuICogVGhpcyBpcyBkaWZmZXJlbnQgdG8gYSBicm93c2VyJ3MgYFwiY2xpY2tcImAgZXZlbnQsIHdoaWNoIGRvZXNcbiAqIHJlc3BvbmQgdG8ga2V5Ym9hcmRzIGJ1dCBvbmx5IGZvciB0aGUgYFwiY2xpY2tcImAgaXRzZWxmLCByYXRoZXJcbiAqIHRoYW4gdGhlIHByZXNzIHN0YXJ0IGFuZCBlbmQvY2FuY2VsLiBUaGUgZWxlbWVudCBhbHNvIG5lZWRzXG4gKiB0byBiZSBmb2N1c2FibGUgZm9yIHRoaXMgdG8gd29yaywgd2hlcmVhcyBhIHByZXNzIGdlc3R1cmUgd2lsbFxuICogbWFrZSBhbiBlbGVtZW50IGZvY3VzYWJsZSBieSBkZWZhdWx0LlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gcHJlc3ModGFyZ2V0T3JTZWxlY3Rvciwgb25QcmVzc1N0YXJ0LCBvcHRpb25zID0ge30pIHtcbiAgICBjb25zdCBbdGFyZ2V0cywgZXZlbnRPcHRpb25zLCBjYW5jZWxFdmVudHNdID0gc2V0dXBHZXN0dXJlKHRhcmdldE9yU2VsZWN0b3IsIG9wdGlvbnMpO1xuICAgIGNvbnN0IHN0YXJ0UHJlc3MgPSAoc3RhcnRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBzdGFydEV2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgICAgIGlmICghaXNWYWxpZFByZXNzRXZlbnQoc3RhcnRFdmVudCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChjbGFpbWVkUG9pbnRlckRvd25FdmVudHMuaGFzKHN0YXJ0RXZlbnQpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpc1ByZXNzaW5nLmFkZCh0YXJnZXQpO1xuICAgICAgICBpZiAob3B0aW9ucy5zdG9wUHJvcGFnYXRpb24pIHtcbiAgICAgICAgICAgIGNsYWltZWRQb2ludGVyRG93bkV2ZW50cy5hZGQoc3RhcnRFdmVudCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb25QcmVzc0VuZCA9IG9uUHJlc3NTdGFydCh0YXJnZXQsIHN0YXJ0RXZlbnQpO1xuICAgICAgICBjb25zdCBvblBvaW50ZXJFbmQgPSAoZW5kRXZlbnQsIHN1Y2Nlc3MpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIsIG9uUG9pbnRlclVwKTtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwicG9pbnRlcmNhbmNlbFwiLCBvblBvaW50ZXJDYW5jZWwpO1xuICAgICAgICAgICAgaWYgKGlzUHJlc3NpbmcuaGFzKHRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICBpc1ByZXNzaW5nLmRlbGV0ZSh0YXJnZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkUHJlc3NFdmVudChlbmRFdmVudCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9uUHJlc3NFbmQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIG9uUHJlc3NFbmQoZW5kRXZlbnQsIHsgc3VjY2VzcyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Qb2ludGVyVXAgPSAodXBFdmVudCkgPT4ge1xuICAgICAgICAgICAgb25Qb2ludGVyRW5kKHVwRXZlbnQsIHRhcmdldCA9PT0gd2luZG93IHx8XG4gICAgICAgICAgICAgICAgdGFyZ2V0ID09PSBkb2N1bWVudCB8fFxuICAgICAgICAgICAgICAgIG9wdGlvbnMudXNlR2xvYmFsVGFyZ2V0IHx8XG4gICAgICAgICAgICAgICAgaXNOb2RlT3JDaGlsZCh0YXJnZXQsIHVwRXZlbnQudGFyZ2V0KSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uUG9pbnRlckNhbmNlbCA9IChjYW5jZWxFdmVudCkgPT4ge1xuICAgICAgICAgICAgb25Qb2ludGVyRW5kKGNhbmNlbEV2ZW50LCBmYWxzZSk7XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcnVwXCIsIG9uUG9pbnRlclVwLCBldmVudE9wdGlvbnMpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJjYW5jZWxcIiwgb25Qb2ludGVyQ2FuY2VsLCBldmVudE9wdGlvbnMpO1xuICAgIH07XG4gICAgdGFyZ2V0cy5mb3JFYWNoKCh0YXJnZXQpID0+IHtcbiAgICAgICAgY29uc3QgcG9pbnRlckRvd25UYXJnZXQgPSBvcHRpb25zLnVzZUdsb2JhbFRhcmdldCA/IHdpbmRvdyA6IHRhcmdldDtcbiAgICAgICAgcG9pbnRlckRvd25UYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJkb3duXCIsIHN0YXJ0UHJlc3MsIGV2ZW50T3B0aW9ucyk7XG4gICAgICAgIGlmIChpc0hUTUxFbGVtZW50KHRhcmdldCkpIHtcbiAgICAgICAgICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNcIiwgKGV2ZW50KSA9PiBlbmFibGVLZXlib2FyZFByZXNzKGV2ZW50LCBldmVudE9wdGlvbnMpKTtcbiAgICAgICAgICAgIGlmICghaXNFbGVtZW50S2V5Ym9hcmRBY2Nlc3NpYmxlKHRhcmdldCkgJiZcbiAgICAgICAgICAgICAgICAhdGFyZ2V0Lmhhc0F0dHJpYnV0ZShcInRhYmluZGV4XCIpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnRhYkluZGV4ID0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjYW5jZWxFdmVudHM7XG59XG5cbmV4cG9ydCB7IHByZXNzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs": +/*!*****************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.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 */ isElementKeyboardAccessible: () => (/* binding */ isElementKeyboardAccessible),\n/* harmony export */ isElementTextInput: () => (/* binding */ isElementTextInput)\n/* harmony export */ });\nconst keyboardAccessibleElements = new Set([\n \"BUTTON\",\n \"INPUT\",\n \"SELECT\",\n \"TEXTAREA\",\n \"A\",\n]);\n/**\n * Checks if an element is natively keyboard accessible (focusable).\n * Used by the press gesture to determine if we need to add tabIndex.\n */\nfunction isElementKeyboardAccessible(element) {\n return (keyboardAccessibleElements.has(element.tagName) ||\n element.isContentEditable === true);\n}\nconst textInputElements = new Set([\"INPUT\", \"SELECT\", \"TEXTAREA\"]);\n/**\n * Checks if an element has text selection or direct interaction behavior\n * that should block drag gestures from starting.\n *\n * This specifically targets form controls where the user might want to select\n * text or interact with the control (e.g., sliders, dropdowns).\n *\n * Buttons and links are NOT included because they don't have click-and-move\n * actions of their own - they only respond to click events, so dragging\n * should still work when initiated from these elements.\n */\nfunction isElementTextInput(element) {\n return (textInputElements.has(element.tagName) ||\n element.isContentEditable === true);\n}\n\n\n//# sourceMappingURL=is-keyboard-accessible.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzL3V0aWxzL2lzLWtleWJvYXJkLWFjY2Vzc2libGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTJEO0FBQzNEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy9wcmVzcy91dGlscy9pcy1rZXlib2FyZC1hY2Nlc3NpYmxlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBrZXlib2FyZEFjY2Vzc2libGVFbGVtZW50cyA9IG5ldyBTZXQoW1xuICAgIFwiQlVUVE9OXCIsXG4gICAgXCJJTlBVVFwiLFxuICAgIFwiU0VMRUNUXCIsXG4gICAgXCJURVhUQVJFQVwiLFxuICAgIFwiQVwiLFxuXSk7XG4vKipcbiAqIENoZWNrcyBpZiBhbiBlbGVtZW50IGlzIG5hdGl2ZWx5IGtleWJvYXJkIGFjY2Vzc2libGUgKGZvY3VzYWJsZSkuXG4gKiBVc2VkIGJ5IHRoZSBwcmVzcyBnZXN0dXJlIHRvIGRldGVybWluZSBpZiB3ZSBuZWVkIHRvIGFkZCB0YWJJbmRleC5cbiAqL1xuZnVuY3Rpb24gaXNFbGVtZW50S2V5Ym9hcmRBY2Nlc3NpYmxlKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gKGtleWJvYXJkQWNjZXNzaWJsZUVsZW1lbnRzLmhhcyhlbGVtZW50LnRhZ05hbWUpIHx8XG4gICAgICAgIGVsZW1lbnQuaXNDb250ZW50RWRpdGFibGUgPT09IHRydWUpO1xufVxuY29uc3QgdGV4dElucHV0RWxlbWVudHMgPSBuZXcgU2V0KFtcIklOUFVUXCIsIFwiU0VMRUNUXCIsIFwiVEVYVEFSRUFcIl0pO1xuLyoqXG4gKiBDaGVja3MgaWYgYW4gZWxlbWVudCBoYXMgdGV4dCBzZWxlY3Rpb24gb3IgZGlyZWN0IGludGVyYWN0aW9uIGJlaGF2aW9yXG4gKiB0aGF0IHNob3VsZCBibG9jayBkcmFnIGdlc3R1cmVzIGZyb20gc3RhcnRpbmcuXG4gKlxuICogVGhpcyBzcGVjaWZpY2FsbHkgdGFyZ2V0cyBmb3JtIGNvbnRyb2xzIHdoZXJlIHRoZSB1c2VyIG1pZ2h0IHdhbnQgdG8gc2VsZWN0XG4gKiB0ZXh0IG9yIGludGVyYWN0IHdpdGggdGhlIGNvbnRyb2wgKGUuZy4sIHNsaWRlcnMsIGRyb3Bkb3ducykuXG4gKlxuICogQnV0dG9ucyBhbmQgbGlua3MgYXJlIE5PVCBpbmNsdWRlZCBiZWNhdXNlIHRoZXkgZG9uJ3QgaGF2ZSBjbGljay1hbmQtbW92ZVxuICogYWN0aW9ucyBvZiB0aGVpciBvd24gLSB0aGV5IG9ubHkgcmVzcG9uZCB0byBjbGljayBldmVudHMsIHNvIGRyYWdnaW5nXG4gKiBzaG91bGQgc3RpbGwgd29yayB3aGVuIGluaXRpYXRlZCBmcm9tIHRoZXNlIGVsZW1lbnRzLlxuICovXG5mdW5jdGlvbiBpc0VsZW1lbnRUZXh0SW5wdXQoZWxlbWVudCkge1xuICAgIHJldHVybiAodGV4dElucHV0RWxlbWVudHMuaGFzKGVsZW1lbnQudGFnTmFtZSkgfHxcbiAgICAgICAgZWxlbWVudC5pc0NvbnRlbnRFZGl0YWJsZSA9PT0gdHJ1ZSk7XG59XG5cbmV4cG9ydCB7IGlzRWxlbWVudEtleWJvYXJkQWNjZXNzaWJsZSwgaXNFbGVtZW50VGV4dElucHV0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1rZXlib2FyZC1hY2Nlc3NpYmxlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.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 */ enableKeyboardPress: () => (/* binding */ enableKeyboardPress)\n/* harmony export */ });\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\");\n\n\n/**\n * Filter out events that are not \"Enter\" keys.\n */\nfunction filterEvents(callback) {\n return (event) => {\n if (event.key !== \"Enter\")\n return;\n callback(event);\n };\n}\nfunction firePointerEvent(target, type) {\n target.dispatchEvent(new PointerEvent(\"pointer\" + type, { isPrimary: true, bubbles: true }));\n}\nconst enableKeyboardPress = (focusEvent, eventOptions) => {\n const element = focusEvent.currentTarget;\n if (!element)\n return;\n const handleKeydown = filterEvents(() => {\n if (_state_mjs__WEBPACK_IMPORTED_MODULE_0__.isPressing.has(element))\n return;\n firePointerEvent(element, \"down\");\n const handleKeyup = filterEvents(() => {\n firePointerEvent(element, \"up\");\n });\n const handleBlur = () => firePointerEvent(element, \"cancel\");\n element.addEventListener(\"keyup\", handleKeyup, eventOptions);\n element.addEventListener(\"blur\", handleBlur, eventOptions);\n });\n element.addEventListener(\"keydown\", handleKeydown, eventOptions);\n /**\n * Add an event listener that fires on blur to remove the keydown events.\n */\n element.addEventListener(\"blur\", () => element.removeEventListener(\"keydown\", handleKeydown), eventOptions);\n};\n\n\n//# sourceMappingURL=keyboard.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzL3V0aWxzL2tleWJvYXJkLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF5Qzs7QUFFekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RCxnQ0FBZ0M7QUFDOUY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxrREFBVTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUrQjtBQUMvQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvdXRpbHMva2V5Ym9hcmQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUHJlc3NpbmcgfSBmcm9tICcuL3N0YXRlLm1qcyc7XG5cbi8qKlxuICogRmlsdGVyIG91dCBldmVudHMgdGhhdCBhcmUgbm90IFwiRW50ZXJcIiBrZXlzLlxuICovXG5mdW5jdGlvbiBmaWx0ZXJFdmVudHMoY2FsbGJhY2spIHtcbiAgICByZXR1cm4gKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChldmVudC5rZXkgIT09IFwiRW50ZXJcIilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgIH07XG59XG5mdW5jdGlvbiBmaXJlUG9pbnRlckV2ZW50KHRhcmdldCwgdHlwZSkge1xuICAgIHRhcmdldC5kaXNwYXRjaEV2ZW50KG5ldyBQb2ludGVyRXZlbnQoXCJwb2ludGVyXCIgKyB0eXBlLCB7IGlzUHJpbWFyeTogdHJ1ZSwgYnViYmxlczogdHJ1ZSB9KSk7XG59XG5jb25zdCBlbmFibGVLZXlib2FyZFByZXNzID0gKGZvY3VzRXZlbnQsIGV2ZW50T3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBmb2N1c0V2ZW50LmN1cnJlbnRUYXJnZXQ7XG4gICAgaWYgKCFlbGVtZW50KVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgaGFuZGxlS2V5ZG93biA9IGZpbHRlckV2ZW50cygoKSA9PiB7XG4gICAgICAgIGlmIChpc1ByZXNzaW5nLmhhcyhlbGVtZW50KSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgZmlyZVBvaW50ZXJFdmVudChlbGVtZW50LCBcImRvd25cIik7XG4gICAgICAgIGNvbnN0IGhhbmRsZUtleXVwID0gZmlsdGVyRXZlbnRzKCgpID0+IHtcbiAgICAgICAgICAgIGZpcmVQb2ludGVyRXZlbnQoZWxlbWVudCwgXCJ1cFwiKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGhhbmRsZUJsdXIgPSAoKSA9PiBmaXJlUG9pbnRlckV2ZW50KGVsZW1lbnQsIFwiY2FuY2VsXCIpO1xuICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXl1cFwiLCBoYW5kbGVLZXl1cCwgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwiYmx1clwiLCBoYW5kbGVCbHVyLCBldmVudE9wdGlvbnMpO1xuICAgIH0pO1xuICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlS2V5ZG93biwgZXZlbnRPcHRpb25zKTtcbiAgICAvKipcbiAgICAgKiBBZGQgYW4gZXZlbnQgbGlzdGVuZXIgdGhhdCBmaXJlcyBvbiBibHVyIHRvIHJlbW92ZSB0aGUga2V5ZG93biBldmVudHMuXG4gICAgICovXG4gICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwiYmx1clwiLCAoKSA9PiBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGhhbmRsZUtleWRvd24pLCBldmVudE9wdGlvbnMpO1xufTtcblxuZXhwb3J0IHsgZW5hYmxlS2V5Ym9hcmRQcmVzcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9a2V5Ym9hcmQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/utils/state.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 */ isPressing: () => (/* binding */ isPressing)\n/* harmony export */ });\nconst isPressing = new WeakSet();\n\n\n//# sourceMappingURL=state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzL3V0aWxzL3N0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRXNCO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy9wcmVzcy91dGlscy9zdGF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNQcmVzc2luZyA9IG5ldyBXZWFrU2V0KCk7XG5cbmV4cG9ydCB7IGlzUHJlc3NpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0YXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.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 */ isNodeOrChild: () => (/* binding */ isNodeOrChild)\n/* harmony export */ });\n/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\n\n//# sourceMappingURL=is-node-or-child.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3V0aWxzL2lzLW5vZGUtb3ItY2hpbGQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy91dGlscy9pcy1ub2RlLW9yLWNoaWxkLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlY3Vyc2l2ZWx5IHRyYXZlcnNlIHVwIHRoZSB0cmVlIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHByb3ZpZGVkIGNoaWxkIG5vZGVcbiAqIGlzIHRoZSBwYXJlbnQgb3IgYSBkZXNjZW5kYW50IG9mIGl0LlxuICpcbiAqIEBwYXJhbSBwYXJlbnQgLSBFbGVtZW50IHRvIGZpbmRcbiAqIEBwYXJhbSBjaGlsZCAtIEVsZW1lbnQgdG8gdGVzdCBhZ2FpbnN0IHBhcmVudFxuICovXG5jb25zdCBpc05vZGVPckNoaWxkID0gKHBhcmVudCwgY2hpbGQpID0+IHtcbiAgICBpZiAoIWNoaWxkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSBpZiAocGFyZW50ID09PSBjaGlsZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiBpc05vZGVPckNoaWxkKHBhcmVudCwgY2hpbGQucGFyZW50RWxlbWVudCk7XG4gICAgfVxufTtcblxuZXhwb3J0IHsgaXNOb2RlT3JDaGlsZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtbm9kZS1vci1jaGlsZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.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 */ isPrimaryPointer: () => (/* binding */ isPrimaryPointer)\n/* harmony export */ });\nconst isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\n\n//# sourceMappingURL=is-primary-pointer.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3V0aWxzL2lzLXByaW1hcnktcG9pbnRlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvaXMtcHJpbWFyeS1wb2ludGVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc1ByaW1hcnlQb2ludGVyID0gKGV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlID09PSBcIm1vdXNlXCIpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBldmVudC5idXR0b24gIT09IFwibnVtYmVyXCIgfHwgZXZlbnQuYnV0dG9uIDw9IDA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvKipcbiAgICAgICAgICogaXNQcmltYXJ5IGlzIHRydWUgZm9yIGFsbCBtaWNlIGJ1dHRvbnMsIHdoZXJlYXMgZXZlcnkgdG91Y2ggcG9pbnRcbiAgICAgICAgICogaXMgcmVnYXJkZWQgYXMgaXRzIG93biBpbnB1dC4gU28gc3Vic2VxdWVudCBjb25jdXJyZW50IHRvdWNoIHBvaW50c1xuICAgICAgICAgKiB3aWxsIGJlIGZhbHNlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBTcGVjaWZpY2FsbHkgbWF0Y2ggYWdhaW5zdCBmYWxzZSBoZXJlIGFzIGluY29tcGxldGUgdmVyc2lvbnMgb2ZcbiAgICAgICAgICogUG9pbnRlckV2ZW50cyBpbiB2ZXJ5IG9sZCBicm93c2VyIG1pZ2h0IGhhdmUgaXQgc2V0IGFzIHVuZGVmaW5lZC5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBldmVudC5pc1ByaW1hcnkgIT09IGZhbHNlO1xuICAgIH1cbn07XG5cbmV4cG9ydCB7IGlzUHJpbWFyeVBvaW50ZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXByaW1hcnktcG9pbnRlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/utils/setup.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 */ setupGesture: () => (/* binding */ setupGesture)\n/* harmony export */ });\n/* harmony import */ var _utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/resolve-elements.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\");\n\n\nfunction setupGesture(elementOrSelector, options) {\n const elements = (0,_utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveElements)(elementOrSelector);\n const gestureAbortController = new AbortController();\n const eventOptions = {\n passive: true,\n ...options,\n signal: gestureAbortController.signal,\n };\n const cancel = () => gestureAbortController.abort();\n return [elements, eventOptions, cancel];\n}\n\n\n//# sourceMappingURL=setup.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3V0aWxzL3NldHVwLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFtRTs7QUFFbkU7QUFDQSxxQkFBcUIsNEVBQWU7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV3QjtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvc2V0dXAubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmVFbGVtZW50cyB9IGZyb20gJy4uLy4uL3V0aWxzL3Jlc29sdmUtZWxlbWVudHMubWpzJztcblxuZnVuY3Rpb24gc2V0dXBHZXN0dXJlKGVsZW1lbnRPclNlbGVjdG9yLCBvcHRpb25zKSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSByZXNvbHZlRWxlbWVudHMoZWxlbWVudE9yU2VsZWN0b3IpO1xuICAgIGNvbnN0IGdlc3R1cmVBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgY29uc3QgZXZlbnRPcHRpb25zID0ge1xuICAgICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBzaWduYWw6IGdlc3R1cmVBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgIH07XG4gICAgY29uc3QgY2FuY2VsID0gKCkgPT4gZ2VzdHVyZUFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICAgIHJldHVybiBbZWxlbWVudHMsIGV2ZW50T3B0aW9ucywgY2FuY2VsXTtcbn1cblxuZXhwb3J0IHsgc2V0dXBHZXN0dXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXR1cC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/animation/mix-values.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 */ mixValues: () => (/* binding */ mixValues)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/numbers/units.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/progress.mjs\");\n\n\n\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(0, lead.opacity ?? 1, easeCrossfadeIn(progress));\n target.opacityExit = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.opacity ?? 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.opacity ?? 1, lead.opacity ?? 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max((0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (_value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.percent.test(leadRadius) || _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\nconst easeCrossfadeIn = /*@__PURE__*/ compress(0, 0.5, motion_utils__WEBPACK_IMPORTED_MODULE_2__.circOut);\nconst easeCrossfadeOut = /*@__PURE__*/ compress(0.5, 0.95, motion_utils__WEBPACK_IMPORTED_MODULE_3__.noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing((0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.progress)(min, max, p));\n };\n}\n\n\n//# sourceMappingURL=mix-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vYW5pbWF0aW9uL21peC12YWx1ZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUF1RDtBQUNXO0FBQ1g7O0FBRXZEO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCw4REFBRTtBQUN2RDtBQUNBO0FBQ0EseUJBQXlCLGdFQUFTO0FBQ2xDLDZCQUE2QixnRUFBUztBQUN0QztBQUNBO0FBQ0EseUJBQXlCLGdFQUFTO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGdCQUFnQjtBQUNwQyxxQ0FBcUMsV0FBVztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyxnRUFBUztBQUNwRCxnQkFBZ0IsbUVBQU8scUJBQXFCLG1FQUFPO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0VBQVM7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsaURBQU87QUFDOUQsMkRBQTJELDhDQUFJO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHNEQUFRO0FBQzlCO0FBQ0E7O0FBRXFCO0FBQ3JCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL2FuaW1hdGlvbi9taXgtdmFsdWVzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaXhOdW1iZXIgfSBmcm9tICcuLi8uLi91dGlscy9taXgvbnVtYmVyLm1qcyc7XG5pbXBvcnQgeyBwZXJjZW50LCBweCB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL251bWJlcnMvdW5pdHMubWpzJztcbmltcG9ydCB7IHByb2dyZXNzLCBjaXJjT3V0LCBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuY29uc3QgYm9yZGVycyA9IFtcIlRvcExlZnRcIiwgXCJUb3BSaWdodFwiLCBcIkJvdHRvbUxlZnRcIiwgXCJCb3R0b21SaWdodFwiXTtcbmNvbnN0IG51bUJvcmRlcnMgPSBib3JkZXJzLmxlbmd0aDtcbmNvbnN0IGFzTnVtYmVyID0gKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgPyBwYXJzZUZsb2F0KHZhbHVlKSA6IHZhbHVlO1xuY29uc3QgaXNQeCA9ICh2YWx1ZSkgPT4gdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IHB4LnRlc3QodmFsdWUpO1xuZnVuY3Rpb24gbWl4VmFsdWVzKHRhcmdldCwgZm9sbG93LCBsZWFkLCBwcm9ncmVzcywgc2hvdWxkQ3Jvc3NmYWRlT3BhY2l0eSwgaXNPbmx5TWVtYmVyKSB7XG4gICAgaWYgKHNob3VsZENyb3NzZmFkZU9wYWNpdHkpIHtcbiAgICAgICAgdGFyZ2V0Lm9wYWNpdHkgPSBtaXhOdW1iZXIoMCwgbGVhZC5vcGFjaXR5ID8/IDEsIGVhc2VDcm9zc2ZhZGVJbihwcm9ncmVzcykpO1xuICAgICAgICB0YXJnZXQub3BhY2l0eUV4aXQgPSBtaXhOdW1iZXIoZm9sbG93Lm9wYWNpdHkgPz8gMSwgMCwgZWFzZUNyb3NzZmFkZU91dChwcm9ncmVzcykpO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc09ubHlNZW1iZXIpIHtcbiAgICAgICAgdGFyZ2V0Lm9wYWNpdHkgPSBtaXhOdW1iZXIoZm9sbG93Lm9wYWNpdHkgPz8gMSwgbGVhZC5vcGFjaXR5ID8/IDEsIHByb2dyZXNzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWl4IGJvcmRlciByYWRpdXNcbiAgICAgKi9cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUJvcmRlcnM7IGkrKykge1xuICAgICAgICBjb25zdCBib3JkZXJMYWJlbCA9IGBib3JkZXIke2JvcmRlcnNbaV19UmFkaXVzYDtcbiAgICAgICAgbGV0IGZvbGxvd1JhZGl1cyA9IGdldFJhZGl1cyhmb2xsb3csIGJvcmRlckxhYmVsKTtcbiAgICAgICAgbGV0IGxlYWRSYWRpdXMgPSBnZXRSYWRpdXMobGVhZCwgYm9yZGVyTGFiZWwpO1xuICAgICAgICBpZiAoZm9sbG93UmFkaXVzID09PSB1bmRlZmluZWQgJiYgbGVhZFJhZGl1cyA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGZvbGxvd1JhZGl1cyB8fCAoZm9sbG93UmFkaXVzID0gMCk7XG4gICAgICAgIGxlYWRSYWRpdXMgfHwgKGxlYWRSYWRpdXMgPSAwKTtcbiAgICAgICAgY29uc3QgY2FuTWl4ID0gZm9sbG93UmFkaXVzID09PSAwIHx8XG4gICAgICAgICAgICBsZWFkUmFkaXVzID09PSAwIHx8XG4gICAgICAgICAgICBpc1B4KGZvbGxvd1JhZGl1cykgPT09IGlzUHgobGVhZFJhZGl1cyk7XG4gICAgICAgIGlmIChjYW5NaXgpIHtcbiAgICAgICAgICAgIHRhcmdldFtib3JkZXJMYWJlbF0gPSBNYXRoLm1heChtaXhOdW1iZXIoYXNOdW1iZXIoZm9sbG93UmFkaXVzKSwgYXNOdW1iZXIobGVhZFJhZGl1cyksIHByb2dyZXNzKSwgMCk7XG4gICAgICAgICAgICBpZiAocGVyY2VudC50ZXN0KGxlYWRSYWRpdXMpIHx8IHBlcmNlbnQudGVzdChmb2xsb3dSYWRpdXMpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W2JvcmRlckxhYmVsXSArPSBcIiVcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRhcmdldFtib3JkZXJMYWJlbF0gPSBsZWFkUmFkaXVzO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1peCByb3RhdGlvblxuICAgICAqL1xuICAgIGlmIChmb2xsb3cucm90YXRlIHx8IGxlYWQucm90YXRlKSB7XG4gICAgICAgIHRhcmdldC5yb3RhdGUgPSBtaXhOdW1iZXIoZm9sbG93LnJvdGF0ZSB8fCAwLCBsZWFkLnJvdGF0ZSB8fCAwLCBwcm9ncmVzcyk7XG4gICAgfVxufVxuZnVuY3Rpb24gZ2V0UmFkaXVzKHZhbHVlcywgcmFkaXVzTmFtZSkge1xuICAgIHJldHVybiB2YWx1ZXNbcmFkaXVzTmFtZV0gIT09IHVuZGVmaW5lZFxuICAgICAgICA/IHZhbHVlc1tyYWRpdXNOYW1lXVxuICAgICAgICA6IHZhbHVlcy5ib3JkZXJSYWRpdXM7XG59XG5jb25zdCBlYXNlQ3Jvc3NmYWRlSW4gPSAvKkBfX1BVUkVfXyovIGNvbXByZXNzKDAsIDAuNSwgY2lyY091dCk7XG5jb25zdCBlYXNlQ3Jvc3NmYWRlT3V0ID0gLypAX19QVVJFX18qLyBjb21wcmVzcygwLjUsIDAuOTUsIG5vb3ApO1xuZnVuY3Rpb24gY29tcHJlc3MobWluLCBtYXgsIGVhc2luZykge1xuICAgIHJldHVybiAocCkgPT4ge1xuICAgICAgICAvLyBDb3VsZCByZXBsYWNlIGlmcyB3aXRoIGNsYW1wXG4gICAgICAgIGlmIChwIDwgbWluKVxuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIGlmIChwID4gbWF4KVxuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIHJldHVybiBlYXNpbmcocHJvZ3Jlc3MobWluLCBtYXgsIHApKTtcbiAgICB9O1xufVxuXG5leHBvcnQgeyBtaXhWYWx1ZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1peC12YWx1ZXMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/conversion.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 */ convertBoundingBoxToBox: () => (/* binding */ convertBoundingBoxToBox),\n/* harmony export */ convertBoxToBoundingBox: () => (/* binding */ convertBoxToBoundingBox),\n/* harmony export */ transformBoxPoints: () => (/* binding */ transformBoxPoints)\n/* harmony export */ });\n/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\n\n//# sourceMappingURL=conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvY29udmVyc2lvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQywyQkFBMkI7QUFDOUQ7QUFDQSxhQUFhLHVCQUF1QjtBQUNwQyxhQUFhLHVCQUF1QjtBQUNwQztBQUNBO0FBQ0EsbUNBQW1DLE1BQU07QUFDekMsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyw2QkFBNkI7QUFDbEUseUNBQXlDLGlDQUFpQztBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZ0Y7QUFDaEYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvY29udmVyc2lvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCb3VuZGluZyBib3hlcyB0ZW5kIHRvIGJlIGRlZmluZWQgYXMgdG9wLCBsZWZ0LCByaWdodCwgYm90dG9tLiBGb3IgdmFyaW91cyBvcGVyYXRpb25zXG4gKiBpdCdzIGVhc2llciB0byBjb25zaWRlciBlYWNoIGF4aXMgaW5kaXZpZHVhbGx5LiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgYSBib3VuZGluZyBib3hcbiAqIGFzIGEgbWFwIG9mIHNpbmdsZS1heGlzIG1pbi9tYXggdmFsdWVzLlxuICovXG5mdW5jdGlvbiBjb252ZXJ0Qm91bmRpbmdCb3hUb0JveCh7IHRvcCwgbGVmdCwgcmlnaHQsIGJvdHRvbSwgfSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHg6IHsgbWluOiBsZWZ0LCBtYXg6IHJpZ2h0IH0sXG4gICAgICAgIHk6IHsgbWluOiB0b3AsIG1heDogYm90dG9tIH0sXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNvbnZlcnRCb3hUb0JvdW5kaW5nQm94KHsgeCwgeSB9KSB7XG4gICAgcmV0dXJuIHsgdG9wOiB5Lm1pbiwgcmlnaHQ6IHgubWF4LCBib3R0b206IHkubWF4LCBsZWZ0OiB4Lm1pbiB9O1xufVxuLyoqXG4gKiBBcHBsaWVzIGEgVHJhbnNmb3JtUG9pbnQgZnVuY3Rpb24gdG8gYSBib3VuZGluZyBib3guIFRyYW5zZm9ybVBvaW50IGlzIHVzdWFsbHkgYSBmdW5jdGlvblxuICogcHJvdmlkZWQgYnkgRnJhbWVyIHRvIGFsbG93IG1lYXN1cmVkIHBvaW50cyB0byBiZSBjb3JyZWN0ZWQgZm9yIGRldmljZSBzY2FsaW5nLiBUaGlzIGlzIHVzZWRcbiAqIHdoZW4gbWVhc3VyaW5nIERPTSBlbGVtZW50cyBhbmQgRE9NIGV2ZW50IHBvaW50cy5cbiAqL1xuZnVuY3Rpb24gdHJhbnNmb3JtQm94UG9pbnRzKHBvaW50LCB0cmFuc2Zvcm1Qb2ludCkge1xuICAgIGlmICghdHJhbnNmb3JtUG9pbnQpXG4gICAgICAgIHJldHVybiBwb2ludDtcbiAgICBjb25zdCB0b3BMZWZ0ID0gdHJhbnNmb3JtUG9pbnQoeyB4OiBwb2ludC5sZWZ0LCB5OiBwb2ludC50b3AgfSk7XG4gICAgY29uc3QgYm90dG9tUmlnaHQgPSB0cmFuc2Zvcm1Qb2ludCh7IHg6IHBvaW50LnJpZ2h0LCB5OiBwb2ludC5ib3R0b20gfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgdG9wOiB0b3BMZWZ0LnksXG4gICAgICAgIGxlZnQ6IHRvcExlZnQueCxcbiAgICAgICAgYm90dG9tOiBib3R0b21SaWdodC55LFxuICAgICAgICByaWdodDogYm90dG9tUmlnaHQueCxcbiAgICB9O1xufVxuXG5leHBvcnQgeyBjb252ZXJ0Qm91bmRpbmdCb3hUb0JveCwgY29udmVydEJveFRvQm91bmRpbmdCb3gsIHRyYW5zZm9ybUJveFBvaW50cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29udmVyc2lvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/copy.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/copy.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 */ copyAxisDeltaInto: () => (/* binding */ copyAxisDeltaInto),\n/* harmony export */ copyAxisInto: () => (/* binding */ copyAxisInto),\n/* harmony export */ copyBoxInto: () => (/* binding */ copyBoxInto)\n/* harmony export */ });\n/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n/**\n * Reset a delta to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisDeltaInto(delta, originDelta) {\n delta.translate = originDelta.translate;\n delta.scale = originDelta.scale;\n delta.originPoint = originDelta.originPoint;\n delta.origin = originDelta.origin;\n}\n\n\n//# sourceMappingURL=copy.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvY29weS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFd0Q7QUFDeEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvY29weS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNldCBhbiBheGlzIHRvIHRoZSBwcm92aWRlZCBvcmlnaW4gYm94LlxuICpcbiAqIFRoaXMgaXMgYSBtdXRhdGl2ZSBvcGVyYXRpb24uXG4gKi9cbmZ1bmN0aW9uIGNvcHlBeGlzSW50byhheGlzLCBvcmlnaW5BeGlzKSB7XG4gICAgYXhpcy5taW4gPSBvcmlnaW5BeGlzLm1pbjtcbiAgICBheGlzLm1heCA9IG9yaWdpbkF4aXMubWF4O1xufVxuLyoqXG4gKiBSZXNldCBhIGJveCB0byB0aGUgcHJvdmlkZWQgb3JpZ2luIGJveC5cbiAqXG4gKiBUaGlzIGlzIGEgbXV0YXRpdmUgb3BlcmF0aW9uLlxuICovXG5mdW5jdGlvbiBjb3B5Qm94SW50byhib3gsIG9yaWdpbkJveCkge1xuICAgIGNvcHlBeGlzSW50byhib3gueCwgb3JpZ2luQm94LngpO1xuICAgIGNvcHlBeGlzSW50byhib3gueSwgb3JpZ2luQm94LnkpO1xufVxuLyoqXG4gKiBSZXNldCBhIGRlbHRhIHRvIHRoZSBwcm92aWRlZCBvcmlnaW4gYm94LlxuICpcbiAqIFRoaXMgaXMgYSBtdXRhdGl2ZSBvcGVyYXRpb24uXG4gKi9cbmZ1bmN0aW9uIGNvcHlBeGlzRGVsdGFJbnRvKGRlbHRhLCBvcmlnaW5EZWx0YSkge1xuICAgIGRlbHRhLnRyYW5zbGF0ZSA9IG9yaWdpbkRlbHRhLnRyYW5zbGF0ZTtcbiAgICBkZWx0YS5zY2FsZSA9IG9yaWdpbkRlbHRhLnNjYWxlO1xuICAgIGRlbHRhLm9yaWdpblBvaW50ID0gb3JpZ2luRGVsdGEub3JpZ2luUG9pbnQ7XG4gICAgZGVsdGEub3JpZ2luID0gb3JpZ2luRGVsdGEub3JpZ2luO1xufVxuXG5leHBvcnQgeyBjb3B5QXhpc0RlbHRhSW50bywgY29weUF4aXNJbnRvLCBjb3B5Qm94SW50byB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29weS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/copy.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.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 */ applyAxisDelta: () => (/* binding */ applyAxisDelta),\n/* harmony export */ applyBoxDelta: () => (/* binding */ applyBoxDelta),\n/* harmony export */ applyPointDelta: () => (/* binding */ applyPointDelta),\n/* harmony export */ applyTreeDeltas: () => (/* binding */ applyTreeDeltas),\n/* harmony export */ scalePoint: () => (/* binding */ scalePoint),\n/* harmony export */ transformAxis: () => (/* binding */ transformAxis),\n/* harmony export */ transformBox: () => (/* binding */ transformBox),\n/* harmony export */ translateAxis: () => (/* binding */ translateAxis)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/has-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs\");\n\n\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\nconst TREE_SCALE_SNAP_MIN = 0.999999999999;\nconst TREE_SCALE_SNAP_MAX = 1.0000000000001;\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const { visualElement } = node.options;\n if (visualElement &&\n visualElement.props.style &&\n visualElement.props.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a cumulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.hasTransform)(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n if (treeScale.x < TREE_SCALE_SNAP_MAX &&\n treeScale.x > TREE_SCALE_SNAP_MIN) {\n treeScale.x = 1.0;\n }\n if (treeScale.y < TREE_SCALE_SNAP_MAX &&\n treeScale.y > TREE_SCALE_SNAP_MIN) {\n treeScale.y = 1.0;\n }\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, axisTranslate, axisScale, boxScale, axisOrigin = 0.5) {\n const originPoint = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, axisTranslate, axisScale, originPoint, boxScale);\n}\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform.x, transform.scaleX, transform.scale, transform.originX);\n transformAxis(box.y, transform.y, transform.scaleY, transform.scale, transform.originY);\n}\n\n\n//# sourceMappingURL=delta-apply.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvZGVsdGEtYXBwbHkubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBdUQ7QUFDRzs7QUFFMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLE1BQU07QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixnQkFBZ0I7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0Msc0VBQVk7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnRUFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFbUk7QUFDbkkiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvZGVsdGEtYXBwbHkubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1peE51bWJlciB9IGZyb20gJy4uLy4uL3V0aWxzL21peC9udW1iZXIubWpzJztcbmltcG9ydCB7IGhhc1RyYW5zZm9ybSB9IGZyb20gJy4uL3V0aWxzL2hhcy10cmFuc2Zvcm0ubWpzJztcblxuLyoqXG4gKiBTY2FsZXMgYSBwb2ludCBiYXNlZCBvbiBhIGZhY3RvciBhbmQgYW4gb3JpZ2luUG9pbnRcbiAqL1xuZnVuY3Rpb24gc2NhbGVQb2ludChwb2ludCwgc2NhbGUsIG9yaWdpblBvaW50KSB7XG4gICAgY29uc3QgZGlzdGFuY2VGcm9tT3JpZ2luID0gcG9pbnQgLSBvcmlnaW5Qb2ludDtcbiAgICBjb25zdCBzY2FsZWQgPSBzY2FsZSAqIGRpc3RhbmNlRnJvbU9yaWdpbjtcbiAgICByZXR1cm4gb3JpZ2luUG9pbnQgKyBzY2FsZWQ7XG59XG4vKipcbiAqIEFwcGxpZXMgYSB0cmFuc2xhdGUvc2NhbGUgZGVsdGEgdG8gYSBwb2ludFxuICovXG5mdW5jdGlvbiBhcHBseVBvaW50RGVsdGEocG9pbnQsIHRyYW5zbGF0ZSwgc2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSkge1xuICAgIGlmIChib3hTY2FsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHBvaW50ID0gc2NhbGVQb2ludChwb2ludCwgYm94U2NhbGUsIG9yaWdpblBvaW50KTtcbiAgICB9XG4gICAgcmV0dXJuIHNjYWxlUG9pbnQocG9pbnQsIHNjYWxlLCBvcmlnaW5Qb2ludCkgKyB0cmFuc2xhdGU7XG59XG4vKipcbiAqIEFwcGxpZXMgYSB0cmFuc2xhdGUvc2NhbGUgZGVsdGEgdG8gYW4gYXhpc1xuICovXG5mdW5jdGlvbiBhcHBseUF4aXNEZWx0YShheGlzLCB0cmFuc2xhdGUgPSAwLCBzY2FsZSA9IDEsIG9yaWdpblBvaW50LCBib3hTY2FsZSkge1xuICAgIGF4aXMubWluID0gYXBwbHlQb2ludERlbHRhKGF4aXMubWluLCB0cmFuc2xhdGUsIHNjYWxlLCBvcmlnaW5Qb2ludCwgYm94U2NhbGUpO1xuICAgIGF4aXMubWF4ID0gYXBwbHlQb2ludERlbHRhKGF4aXMubWF4LCB0cmFuc2xhdGUsIHNjYWxlLCBvcmlnaW5Qb2ludCwgYm94U2NhbGUpO1xufVxuLyoqXG4gKiBBcHBsaWVzIGEgdHJhbnNsYXRlL3NjYWxlIGRlbHRhIHRvIGEgYm94XG4gKi9cbmZ1bmN0aW9uIGFwcGx5Qm94RGVsdGEoYm94LCB7IHgsIHkgfSkge1xuICAgIGFwcGx5QXhpc0RlbHRhKGJveC54LCB4LnRyYW5zbGF0ZSwgeC5zY2FsZSwgeC5vcmlnaW5Qb2ludCk7XG4gICAgYXBwbHlBeGlzRGVsdGEoYm94LnksIHkudHJhbnNsYXRlLCB5LnNjYWxlLCB5Lm9yaWdpblBvaW50KTtcbn1cbmNvbnN0IFRSRUVfU0NBTEVfU05BUF9NSU4gPSAwLjk5OTk5OTk5OTk5OTtcbmNvbnN0IFRSRUVfU0NBTEVfU05BUF9NQVggPSAxLjAwMDAwMDAwMDAwMDE7XG4vKipcbiAqIEFwcGx5IGEgdHJlZSBvZiBkZWx0YXMgdG8gYSBib3guIFdlIGRvIHRoaXMgdG8gY2FsY3VsYXRlIHRoZSBlZmZlY3Qgb2YgYWxsIHRoZSB0cmFuc2Zvcm1zXG4gKiBpbiBhIHRyZWUgdXBvbiBvdXIgYm94IGJlZm9yZSB0aGVuIGNhbGN1bGF0aW5nIGhvdyB0byBwcm9qZWN0IGl0IGludG8gb3VyIGRlc2lyZWQgdmlld3BvcnQtcmVsYXRpdmUgYm94XG4gKlxuICogVGhpcyBpcyB0aGUgZmluYWwgbmVzdGVkIGxvb3Agd2l0aGluIHVwZGF0ZUxheW91dERlbHRhIGZvciBmdXR1cmUgcmVmYWN0b3JpbmdcbiAqL1xuZnVuY3Rpb24gYXBwbHlUcmVlRGVsdGFzKGJveCwgdHJlZVNjYWxlLCB0cmVlUGF0aCwgaXNTaGFyZWRUcmFuc2l0aW9uID0gZmFsc2UpIHtcbiAgICBjb25zdCB0cmVlTGVuZ3RoID0gdHJlZVBhdGgubGVuZ3RoO1xuICAgIGlmICghdHJlZUxlbmd0aClcbiAgICAgICAgcmV0dXJuO1xuICAgIC8vIFJlc2V0IHRoZSB0cmVlU2NhbGVcbiAgICB0cmVlU2NhbGUueCA9IHRyZWVTY2FsZS55ID0gMTtcbiAgICBsZXQgbm9kZTtcbiAgICBsZXQgZGVsdGE7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0cmVlTGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbm9kZSA9IHRyZWVQYXRoW2ldO1xuICAgICAgICBkZWx0YSA9IG5vZGUucHJvamVjdGlvbkRlbHRhO1xuICAgICAgICAvKipcbiAgICAgICAgICogVE9ETzogUHJlZmVyIHRvIHJlbW92ZSB0aGlzLCBidXQgY3VycmVudGx5IHdlIGhhdmUgbW90aW9uIGNvbXBvbmVudHMgd2l0aFxuICAgICAgICAgKiBkaXNwbGF5OiBjb250ZW50cyBpbiBGcmFtZXIuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCB7IHZpc3VhbEVsZW1lbnQgfSA9IG5vZGUub3B0aW9ucztcbiAgICAgICAgaWYgKHZpc3VhbEVsZW1lbnQgJiZcbiAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQucHJvcHMuc3R5bGUgJiZcbiAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQucHJvcHMuc3R5bGUuZGlzcGxheSA9PT0gXCJjb250ZW50c1wiKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTaGFyZWRUcmFuc2l0aW9uICYmXG4gICAgICAgICAgICBub2RlLm9wdGlvbnMubGF5b3V0U2Nyb2xsICYmXG4gICAgICAgICAgICBub2RlLnNjcm9sbCAmJlxuICAgICAgICAgICAgbm9kZSAhPT0gbm9kZS5yb290KSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm1Cb3goYm94LCB7XG4gICAgICAgICAgICAgICAgeDogLW5vZGUuc2Nyb2xsLm9mZnNldC54LFxuICAgICAgICAgICAgICAgIHk6IC1ub2RlLnNjcm9sbC5vZmZzZXQueSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkZWx0YSkge1xuICAgICAgICAgICAgLy8gSW5jb3BvcmF0ZSBlYWNoIGFuY2VzdG9yJ3Mgc2NhbGUgaW50byBhIGN1bXVsYXRpdmUgdHJlZVNjYWxlIGZvciB0aGlzIGNvbXBvbmVudFxuICAgICAgICAgICAgdHJlZVNjYWxlLnggKj0gZGVsdGEueC5zY2FsZTtcbiAgICAgICAgICAgIHRyZWVTY2FsZS55ICo9IGRlbHRhLnkuc2NhbGU7XG4gICAgICAgICAgICAvLyBBcHBseSBlYWNoIGFuY2VzdG9yJ3MgY2FsY3VsYXRlZCBkZWx0YSBpbnRvIHRoaXMgY29tcG9uZW50J3MgcmVjb3JkZWQgbGF5b3V0IGJveFxuICAgICAgICAgICAgYXBwbHlCb3hEZWx0YShib3gsIGRlbHRhKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTaGFyZWRUcmFuc2l0aW9uICYmIGhhc1RyYW5zZm9ybShub2RlLmxhdGVzdFZhbHVlcykpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybUJveChib3gsIG5vZGUubGF0ZXN0VmFsdWVzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTbmFwIHRyZWUgc2NhbGUgYmFjayB0byAxIGlmIGl0J3Mgd2l0aGluIGEgbm9uLXBlcmNlaXZhYmxlIHRocmVzaG9sZC5cbiAgICAgKiBUaGlzIHdpbGwgaGVscCByZWR1Y2UgdXNlbGVzcyBzY2FsZXMgZ2V0dGluZyByZW5kZXJlZC5cbiAgICAgKi9cbiAgICBpZiAodHJlZVNjYWxlLnggPCBUUkVFX1NDQUxFX1NOQVBfTUFYICYmXG4gICAgICAgIHRyZWVTY2FsZS54ID4gVFJFRV9TQ0FMRV9TTkFQX01JTikge1xuICAgICAgICB0cmVlU2NhbGUueCA9IDEuMDtcbiAgICB9XG4gICAgaWYgKHRyZWVTY2FsZS55IDwgVFJFRV9TQ0FMRV9TTkFQX01BWCAmJlxuICAgICAgICB0cmVlU2NhbGUueSA+IFRSRUVfU0NBTEVfU05BUF9NSU4pIHtcbiAgICAgICAgdHJlZVNjYWxlLnkgPSAxLjA7XG4gICAgfVxufVxuZnVuY3Rpb24gdHJhbnNsYXRlQXhpcyhheGlzLCBkaXN0YW5jZSkge1xuICAgIGF4aXMubWluID0gYXhpcy5taW4gKyBkaXN0YW5jZTtcbiAgICBheGlzLm1heCA9IGF4aXMubWF4ICsgZGlzdGFuY2U7XG59XG4vKipcbiAqIEFwcGx5IGEgdHJhbnNmb3JtIHRvIGFuIGF4aXMgZnJvbSB0aGUgbGF0ZXN0IHJlc29sdmVkIG1vdGlvbiB2YWx1ZXMuXG4gKiBUaGlzIGZ1bmN0aW9uIGJhc2ljYWxseSBhY3RzIGFzIGEgYnJpZGdlIGJldHdlZW4gYSBmbGF0IG1vdGlvbiB2YWx1ZSBtYXBcbiAqIGFuZCBhcHBseUF4aXNEZWx0YVxuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1BeGlzKGF4aXMsIGF4aXNUcmFuc2xhdGUsIGF4aXNTY2FsZSwgYm94U2NhbGUsIGF4aXNPcmlnaW4gPSAwLjUpIHtcbiAgICBjb25zdCBvcmlnaW5Qb2ludCA9IG1peE51bWJlcihheGlzLm1pbiwgYXhpcy5tYXgsIGF4aXNPcmlnaW4pO1xuICAgIC8vIEFwcGx5IHRoZSBheGlzIGRlbHRhIHRvIHRoZSBmaW5hbCBheGlzXG4gICAgYXBwbHlBeGlzRGVsdGEoYXhpcywgYXhpc1RyYW5zbGF0ZSwgYXhpc1NjYWxlLCBvcmlnaW5Qb2ludCwgYm94U2NhbGUpO1xufVxuLyoqXG4gKiBBcHBseSBhIHRyYW5zZm9ybSB0byBhIGJveCBmcm9tIHRoZSBsYXRlc3QgcmVzb2x2ZWQgbW90aW9uIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gdHJhbnNmb3JtQm94KGJveCwgdHJhbnNmb3JtKSB7XG4gICAgdHJhbnNmb3JtQXhpcyhib3gueCwgdHJhbnNmb3JtLngsIHRyYW5zZm9ybS5zY2FsZVgsIHRyYW5zZm9ybS5zY2FsZSwgdHJhbnNmb3JtLm9yaWdpblgpO1xuICAgIHRyYW5zZm9ybUF4aXMoYm94LnksIHRyYW5zZm9ybS55LCB0cmFuc2Zvcm0uc2NhbGVZLCB0cmFuc2Zvcm0uc2NhbGUsIHRyYW5zZm9ybS5vcmlnaW5ZKTtcbn1cblxuZXhwb3J0IHsgYXBwbHlBeGlzRGVsdGEsIGFwcGx5Qm94RGVsdGEsIGFwcGx5UG9pbnREZWx0YSwgYXBwbHlUcmVlRGVsdGFzLCBzY2FsZVBvaW50LCB0cmFuc2Zvcm1BeGlzLCB0cmFuc2Zvcm1Cb3gsIHRyYW5zbGF0ZUF4aXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlbHRhLWFwcGx5Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.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 */ calcAxisDelta: () => (/* binding */ calcAxisDelta),\n/* harmony export */ calcBoxDelta: () => (/* binding */ calcBoxDelta),\n/* harmony export */ calcLength: () => (/* binding */ calcLength),\n/* harmony export */ calcRelativeAxis: () => (/* binding */ calcRelativeAxis),\n/* harmony export */ calcRelativeAxisPosition: () => (/* binding */ calcRelativeAxisPosition),\n/* harmony export */ calcRelativeBox: () => (/* binding */ calcRelativeBox),\n/* harmony export */ calcRelativePosition: () => (/* binding */ calcRelativePosition),\n/* harmony export */ isNear: () => (/* binding */ isNear)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\nconst SCALE_PRECISION = 0.0001;\nconst SCALE_MIN = 1 - SCALE_PRECISION;\nconst SCALE_MAX = 1 + SCALE_PRECISION;\nconst TRANSLATE_PRECISION = 0.01;\nconst TRANSLATE_MIN = 0 - TRANSLATE_PRECISION;\nconst TRANSLATE_MAX = 0 + TRANSLATE_PRECISION;\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target, maxDistance) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n delta.translate =\n (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(target.min, target.max, delta.origin) - delta.originPoint;\n if ((delta.scale >= SCALE_MIN && delta.scale <= SCALE_MAX) ||\n isNaN(delta.scale)) {\n delta.scale = 1.0;\n }\n if ((delta.translate >= TRANSLATE_MIN &&\n delta.translate <= TRANSLATE_MAX) ||\n isNaN(delta.translate)) {\n delta.translate = 0.0;\n }\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\n\n//# sourceMappingURL=delta-calc.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvZGVsdGEtY2FsYy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXVEOztBQUV2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdFQUFTO0FBQ2pDO0FBQ0E7QUFDQSxRQUFRLGdFQUFTO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFOEk7QUFDOUkiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvZGVsdGEtY2FsYy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWl4TnVtYmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWl4L251bWJlci5tanMnO1xuXG5jb25zdCBTQ0FMRV9QUkVDSVNJT04gPSAwLjAwMDE7XG5jb25zdCBTQ0FMRV9NSU4gPSAxIC0gU0NBTEVfUFJFQ0lTSU9OO1xuY29uc3QgU0NBTEVfTUFYID0gMSArIFNDQUxFX1BSRUNJU0lPTjtcbmNvbnN0IFRSQU5TTEFURV9QUkVDSVNJT04gPSAwLjAxO1xuY29uc3QgVFJBTlNMQVRFX01JTiA9IDAgLSBUUkFOU0xBVEVfUFJFQ0lTSU9OO1xuY29uc3QgVFJBTlNMQVRFX01BWCA9IDAgKyBUUkFOU0xBVEVfUFJFQ0lTSU9OO1xuZnVuY3Rpb24gY2FsY0xlbmd0aChheGlzKSB7XG4gICAgcmV0dXJuIGF4aXMubWF4IC0gYXhpcy5taW47XG59XG5mdW5jdGlvbiBpc05lYXIodmFsdWUsIHRhcmdldCwgbWF4RGlzdGFuY2UpIHtcbiAgICByZXR1cm4gTWF0aC5hYnModmFsdWUgLSB0YXJnZXQpIDw9IG1heERpc3RhbmNlO1xufVxuZnVuY3Rpb24gY2FsY0F4aXNEZWx0YShkZWx0YSwgc291cmNlLCB0YXJnZXQsIG9yaWdpbiA9IDAuNSkge1xuICAgIGRlbHRhLm9yaWdpbiA9IG9yaWdpbjtcbiAgICBkZWx0YS5vcmlnaW5Qb2ludCA9IG1peE51bWJlcihzb3VyY2UubWluLCBzb3VyY2UubWF4LCBkZWx0YS5vcmlnaW4pO1xuICAgIGRlbHRhLnNjYWxlID0gY2FsY0xlbmd0aCh0YXJnZXQpIC8gY2FsY0xlbmd0aChzb3VyY2UpO1xuICAgIGRlbHRhLnRyYW5zbGF0ZSA9XG4gICAgICAgIG1peE51bWJlcih0YXJnZXQubWluLCB0YXJnZXQubWF4LCBkZWx0YS5vcmlnaW4pIC0gZGVsdGEub3JpZ2luUG9pbnQ7XG4gICAgaWYgKChkZWx0YS5zY2FsZSA+PSBTQ0FMRV9NSU4gJiYgZGVsdGEuc2NhbGUgPD0gU0NBTEVfTUFYKSB8fFxuICAgICAgICBpc05hTihkZWx0YS5zY2FsZSkpIHtcbiAgICAgICAgZGVsdGEuc2NhbGUgPSAxLjA7XG4gICAgfVxuICAgIGlmICgoZGVsdGEudHJhbnNsYXRlID49IFRSQU5TTEFURV9NSU4gJiZcbiAgICAgICAgZGVsdGEudHJhbnNsYXRlIDw9IFRSQU5TTEFURV9NQVgpIHx8XG4gICAgICAgIGlzTmFOKGRlbHRhLnRyYW5zbGF0ZSkpIHtcbiAgICAgICAgZGVsdGEudHJhbnNsYXRlID0gMC4wO1xuICAgIH1cbn1cbmZ1bmN0aW9uIGNhbGNCb3hEZWx0YShkZWx0YSwgc291cmNlLCB0YXJnZXQsIG9yaWdpbikge1xuICAgIGNhbGNBeGlzRGVsdGEoZGVsdGEueCwgc291cmNlLngsIHRhcmdldC54LCBvcmlnaW4gPyBvcmlnaW4ub3JpZ2luWCA6IHVuZGVmaW5lZCk7XG4gICAgY2FsY0F4aXNEZWx0YShkZWx0YS55LCBzb3VyY2UueSwgdGFyZ2V0LnksIG9yaWdpbiA/IG9yaWdpbi5vcmlnaW5ZIDogdW5kZWZpbmVkKTtcbn1cbmZ1bmN0aW9uIGNhbGNSZWxhdGl2ZUF4aXModGFyZ2V0LCByZWxhdGl2ZSwgcGFyZW50KSB7XG4gICAgdGFyZ2V0Lm1pbiA9IHBhcmVudC5taW4gKyByZWxhdGl2ZS5taW47XG4gICAgdGFyZ2V0Lm1heCA9IHRhcmdldC5taW4gKyBjYWxjTGVuZ3RoKHJlbGF0aXZlKTtcbn1cbmZ1bmN0aW9uIGNhbGNSZWxhdGl2ZUJveCh0YXJnZXQsIHJlbGF0aXZlLCBwYXJlbnQpIHtcbiAgICBjYWxjUmVsYXRpdmVBeGlzKHRhcmdldC54LCByZWxhdGl2ZS54LCBwYXJlbnQueCk7XG4gICAgY2FsY1JlbGF0aXZlQXhpcyh0YXJnZXQueSwgcmVsYXRpdmUueSwgcGFyZW50LnkpO1xufVxuZnVuY3Rpb24gY2FsY1JlbGF0aXZlQXhpc1Bvc2l0aW9uKHRhcmdldCwgbGF5b3V0LCBwYXJlbnQpIHtcbiAgICB0YXJnZXQubWluID0gbGF5b3V0Lm1pbiAtIHBhcmVudC5taW47XG4gICAgdGFyZ2V0Lm1heCA9IHRhcmdldC5taW4gKyBjYWxjTGVuZ3RoKGxheW91dCk7XG59XG5mdW5jdGlvbiBjYWxjUmVsYXRpdmVQb3NpdGlvbih0YXJnZXQsIGxheW91dCwgcGFyZW50KSB7XG4gICAgY2FsY1JlbGF0aXZlQXhpc1Bvc2l0aW9uKHRhcmdldC54LCBsYXlvdXQueCwgcGFyZW50LngpO1xuICAgIGNhbGNSZWxhdGl2ZUF4aXNQb3NpdGlvbih0YXJnZXQueSwgbGF5b3V0LnksIHBhcmVudC55KTtcbn1cblxuZXhwb3J0IHsgY2FsY0F4aXNEZWx0YSwgY2FsY0JveERlbHRhLCBjYWxjTGVuZ3RoLCBjYWxjUmVsYXRpdmVBeGlzLCBjYWxjUmVsYXRpdmVBeGlzUG9zaXRpb24sIGNhbGNSZWxhdGl2ZUJveCwgY2FsY1JlbGF0aXZlUG9zaXRpb24sIGlzTmVhciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVsdGEtY2FsYy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.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 */ removeAxisDelta: () => (/* binding */ removeAxisDelta),\n/* harmony export */ removeAxisTransforms: () => (/* binding */ removeAxisTransforms),\n/* harmony export */ removeBoxTransforms: () => (/* binding */ removeBoxTransforms),\n/* harmony export */ removePointDelta: () => (/* binding */ removePointDelta)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/types/numbers/units.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./delta-apply.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\");\n\n\n\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = (0,_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__.scalePoint)(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = (0,_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__.scalePoint)(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (_value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_2__.mixNumber)(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_2__.mixNumber)(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\n}\n\n\n//# sourceMappingURL=delta-remove.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvZGVsdGEtcmVtb3ZlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXVEO0FBQ087QUFDZjs7QUFFL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksNERBQVU7QUFDdEI7QUFDQSxnQkFBZ0IsNERBQVU7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLG1FQUFPO0FBQ2Y7QUFDQSxpQ0FBaUMsZ0VBQVM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsZ0VBQVM7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXdGO0FBQ3hGIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL2dlb21ldHJ5L2RlbHRhLXJlbW92ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWl4TnVtYmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWl4L251bWJlci5tanMnO1xuaW1wb3J0IHsgcGVyY2VudCB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL251bWJlcnMvdW5pdHMubWpzJztcbmltcG9ydCB7IHNjYWxlUG9pbnQgfSBmcm9tICcuL2RlbHRhLWFwcGx5Lm1qcyc7XG5cbi8qKlxuICogUmVtb3ZlIGEgZGVsdGEgZnJvbSBhIHBvaW50LiBUaGlzIGlzIGVzc2VudGlhbGx5IHRoZSBzdGVwcyBvZiBhcHBseVBvaW50RGVsdGEgaW4gcmV2ZXJzZVxuICovXG5mdW5jdGlvbiByZW1vdmVQb2ludERlbHRhKHBvaW50LCB0cmFuc2xhdGUsIHNjYWxlLCBvcmlnaW5Qb2ludCwgYm94U2NhbGUpIHtcbiAgICBwb2ludCAtPSB0cmFuc2xhdGU7XG4gICAgcG9pbnQgPSBzY2FsZVBvaW50KHBvaW50LCAxIC8gc2NhbGUsIG9yaWdpblBvaW50KTtcbiAgICBpZiAoYm94U2NhbGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwb2ludCA9IHNjYWxlUG9pbnQocG9pbnQsIDEgLyBib3hTY2FsZSwgb3JpZ2luUG9pbnQpO1xuICAgIH1cbiAgICByZXR1cm4gcG9pbnQ7XG59XG4vKipcbiAqIFJlbW92ZSBhIGRlbHRhIGZyb20gYW4gYXhpcy4gVGhpcyBpcyBlc3NlbnRpYWxseSB0aGUgc3RlcHMgb2YgYXBwbHlBeGlzRGVsdGEgaW4gcmV2ZXJzZVxuICovXG5mdW5jdGlvbiByZW1vdmVBeGlzRGVsdGEoYXhpcywgdHJhbnNsYXRlID0gMCwgc2NhbGUgPSAxLCBvcmlnaW4gPSAwLjUsIGJveFNjYWxlLCBvcmlnaW5BeGlzID0gYXhpcywgc291cmNlQXhpcyA9IGF4aXMpIHtcbiAgICBpZiAocGVyY2VudC50ZXN0KHRyYW5zbGF0ZSkpIHtcbiAgICAgICAgdHJhbnNsYXRlID0gcGFyc2VGbG9hdCh0cmFuc2xhdGUpO1xuICAgICAgICBjb25zdCByZWxhdGl2ZVByb2dyZXNzID0gbWl4TnVtYmVyKHNvdXJjZUF4aXMubWluLCBzb3VyY2VBeGlzLm1heCwgdHJhbnNsYXRlIC8gMTAwKTtcbiAgICAgICAgdHJhbnNsYXRlID0gcmVsYXRpdmVQcm9ncmVzcyAtIHNvdXJjZUF4aXMubWluO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHRyYW5zbGF0ZSAhPT0gXCJudW1iZXJcIilcbiAgICAgICAgcmV0dXJuO1xuICAgIGxldCBvcmlnaW5Qb2ludCA9IG1peE51bWJlcihvcmlnaW5BeGlzLm1pbiwgb3JpZ2luQXhpcy5tYXgsIG9yaWdpbik7XG4gICAgaWYgKGF4aXMgPT09IG9yaWdpbkF4aXMpXG4gICAgICAgIG9yaWdpblBvaW50IC09IHRyYW5zbGF0ZTtcbiAgICBheGlzLm1pbiA9IHJlbW92ZVBvaW50RGVsdGEoYXhpcy5taW4sIHRyYW5zbGF0ZSwgc2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSk7XG4gICAgYXhpcy5tYXggPSByZW1vdmVQb2ludERlbHRhKGF4aXMubWF4LCB0cmFuc2xhdGUsIHNjYWxlLCBvcmlnaW5Qb2ludCwgYm94U2NhbGUpO1xufVxuLyoqXG4gKiBSZW1vdmUgYSB0cmFuc2Zvcm1zIGZyb20gYW4gYXhpcy4gVGhpcyBpcyBlc3NlbnRpYWxseSB0aGUgc3RlcHMgb2YgYXBwbHlBeGlzVHJhbnNmb3JtcyBpbiByZXZlcnNlXG4gKiBhbmQgYWN0cyBhcyBhIGJyaWRnZSBiZXR3ZWVuIG1vdGlvbiB2YWx1ZXMgYW5kIHJlbW92ZUF4aXNEZWx0YVxuICovXG5mdW5jdGlvbiByZW1vdmVBeGlzVHJhbnNmb3JtcyhheGlzLCB0cmFuc2Zvcm1zLCBba2V5LCBzY2FsZUtleSwgb3JpZ2luS2V5XSwgb3JpZ2luLCBzb3VyY2VBeGlzKSB7XG4gICAgcmVtb3ZlQXhpc0RlbHRhKGF4aXMsIHRyYW5zZm9ybXNba2V5XSwgdHJhbnNmb3Jtc1tzY2FsZUtleV0sIHRyYW5zZm9ybXNbb3JpZ2luS2V5XSwgdHJhbnNmb3Jtcy5zY2FsZSwgb3JpZ2luLCBzb3VyY2VBeGlzKTtcbn1cbi8qKlxuICogVGhlIG5hbWVzIG9mIHRoZSBtb3Rpb24gdmFsdWVzIHdlIHdhbnQgdG8gYXBwbHkgYXMgdHJhbnNsYXRpb24sIHNjYWxlIGFuZCBvcmlnaW4uXG4gKi9cbmNvbnN0IHhLZXlzID0gW1wieFwiLCBcInNjYWxlWFwiLCBcIm9yaWdpblhcIl07XG5jb25zdCB5S2V5cyA9IFtcInlcIiwgXCJzY2FsZVlcIiwgXCJvcmlnaW5ZXCJdO1xuLyoqXG4gKiBSZW1vdmUgYSB0cmFuc2Zvcm1zIGZyb20gYW4gYm94LiBUaGlzIGlzIGVzc2VudGlhbGx5IHRoZSBzdGVwcyBvZiBhcHBseUF4aXNCb3ggaW4gcmV2ZXJzZVxuICogYW5kIGFjdHMgYXMgYSBicmlkZ2UgYmV0d2VlbiBtb3Rpb24gdmFsdWVzIGFuZCByZW1vdmVBeGlzRGVsdGFcbiAqL1xuZnVuY3Rpb24gcmVtb3ZlQm94VHJhbnNmb3Jtcyhib3gsIHRyYW5zZm9ybXMsIG9yaWdpbkJveCwgc291cmNlQm94KSB7XG4gICAgcmVtb3ZlQXhpc1RyYW5zZm9ybXMoYm94LngsIHRyYW5zZm9ybXMsIHhLZXlzLCBvcmlnaW5Cb3ggPyBvcmlnaW5Cb3gueCA6IHVuZGVmaW5lZCwgc291cmNlQm94ID8gc291cmNlQm94LnggOiB1bmRlZmluZWQpO1xuICAgIHJlbW92ZUF4aXNUcmFuc2Zvcm1zKGJveC55LCB0cmFuc2Zvcm1zLCB5S2V5cywgb3JpZ2luQm94ID8gb3JpZ2luQm94LnkgOiB1bmRlZmluZWQsIHNvdXJjZUJveCA/IHNvdXJjZUJveC55IDogdW5kZWZpbmVkKTtcbn1cblxuZXhwb3J0IHsgcmVtb3ZlQXhpc0RlbHRhLCByZW1vdmVBeGlzVHJhbnNmb3JtcywgcmVtb3ZlQm94VHJhbnNmb3JtcywgcmVtb3ZlUG9pbnREZWx0YSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVsdGEtcmVtb3ZlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/models.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 */ createAxis: () => (/* binding */ createAxis),\n/* harmony export */ createAxisDelta: () => (/* binding */ createAxisDelta),\n/* harmony export */ createBox: () => (/* binding */ createBox),\n/* harmony export */ createDelta: () => (/* binding */ createDelta)\n/* harmony export */ });\nconst createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\n\n//# sourceMappingURL=models.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvbW9kZWxzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsNEJBQTRCLGdCQUFnQjtBQUM1QztBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUU4RDtBQUMvRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9tb2RlbHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNyZWF0ZUF4aXNEZWx0YSA9ICgpID0+ICh7XG4gICAgdHJhbnNsYXRlOiAwLFxuICAgIHNjYWxlOiAxLFxuICAgIG9yaWdpbjogMCxcbiAgICBvcmlnaW5Qb2ludDogMCxcbn0pO1xuY29uc3QgY3JlYXRlRGVsdGEgPSAoKSA9PiAoe1xuICAgIHg6IGNyZWF0ZUF4aXNEZWx0YSgpLFxuICAgIHk6IGNyZWF0ZUF4aXNEZWx0YSgpLFxufSk7XG5jb25zdCBjcmVhdGVBeGlzID0gKCkgPT4gKHsgbWluOiAwLCBtYXg6IDAgfSk7XG5jb25zdCBjcmVhdGVCb3ggPSAoKSA9PiAoe1xuICAgIHg6IGNyZWF0ZUF4aXMoKSxcbiAgICB5OiBjcmVhdGVBeGlzKCksXG59KTtcblxuZXhwb3J0IHsgY3JlYXRlQXhpcywgY3JlYXRlQXhpc0RlbHRhLCBjcmVhdGVCb3gsIGNyZWF0ZURlbHRhIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2RlbHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/utils.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/utils.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 */ aspectRatio: () => (/* binding */ aspectRatio),\n/* harmony export */ axisDeltaEquals: () => (/* binding */ axisDeltaEquals),\n/* harmony export */ axisEquals: () => (/* binding */ axisEquals),\n/* harmony export */ axisEqualsRounded: () => (/* binding */ axisEqualsRounded),\n/* harmony export */ boxEquals: () => (/* binding */ boxEquals),\n/* harmony export */ boxEqualsRounded: () => (/* binding */ boxEqualsRounded),\n/* harmony export */ isDeltaZero: () => (/* binding */ isDeltaZero)\n/* harmony export */ });\n/* harmony import */ var _delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./delta-calc.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction axisEquals(a, b) {\n return a.min === b.min && a.max === b.max;\n}\nfunction boxEquals(a, b) {\n return axisEquals(a.x, b.x) && axisEquals(a.y, b.y);\n}\nfunction axisEqualsRounded(a, b) {\n return (Math.round(a.min) === Math.round(b.min) &&\n Math.round(a.max) === Math.round(b.max));\n}\nfunction boxEqualsRounded(a, b) {\n return axisEqualsRounded(a.x, b.x) && axisEqualsRounded(a.y, b.y);\n}\nfunction aspectRatio(box) {\n return (0,_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__.calcLength)(box.x) / (0,_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__.calcLength)(box.y);\n}\nfunction axisDeltaEquals(a, b) {\n return (a.translate === b.translate &&\n a.scale === b.scale &&\n a.originPoint === b.originPoint);\n}\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvdXRpbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQThDOztBQUU5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVywyREFBVSxVQUFVLDJEQUFVO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFaUg7QUFDakgiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvdXRpbHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbGNMZW5ndGggfSBmcm9tICcuL2RlbHRhLWNhbGMubWpzJztcblxuZnVuY3Rpb24gaXNBeGlzRGVsdGFaZXJvKGRlbHRhKSB7XG4gICAgcmV0dXJuIGRlbHRhLnRyYW5zbGF0ZSA9PT0gMCAmJiBkZWx0YS5zY2FsZSA9PT0gMTtcbn1cbmZ1bmN0aW9uIGlzRGVsdGFaZXJvKGRlbHRhKSB7XG4gICAgcmV0dXJuIGlzQXhpc0RlbHRhWmVybyhkZWx0YS54KSAmJiBpc0F4aXNEZWx0YVplcm8oZGVsdGEueSk7XG59XG5mdW5jdGlvbiBheGlzRXF1YWxzKGEsIGIpIHtcbiAgICByZXR1cm4gYS5taW4gPT09IGIubWluICYmIGEubWF4ID09PSBiLm1heDtcbn1cbmZ1bmN0aW9uIGJveEVxdWFscyhhLCBiKSB7XG4gICAgcmV0dXJuIGF4aXNFcXVhbHMoYS54LCBiLngpICYmIGF4aXNFcXVhbHMoYS55LCBiLnkpO1xufVxuZnVuY3Rpb24gYXhpc0VxdWFsc1JvdW5kZWQoYSwgYikge1xuICAgIHJldHVybiAoTWF0aC5yb3VuZChhLm1pbikgPT09IE1hdGgucm91bmQoYi5taW4pICYmXG4gICAgICAgIE1hdGgucm91bmQoYS5tYXgpID09PSBNYXRoLnJvdW5kKGIubWF4KSk7XG59XG5mdW5jdGlvbiBib3hFcXVhbHNSb3VuZGVkKGEsIGIpIHtcbiAgICByZXR1cm4gYXhpc0VxdWFsc1JvdW5kZWQoYS54LCBiLngpICYmIGF4aXNFcXVhbHNSb3VuZGVkKGEueSwgYi55KTtcbn1cbmZ1bmN0aW9uIGFzcGVjdFJhdGlvKGJveCkge1xuICAgIHJldHVybiBjYWxjTGVuZ3RoKGJveC54KSAvIGNhbGNMZW5ndGgoYm94LnkpO1xufVxuZnVuY3Rpb24gYXhpc0RlbHRhRXF1YWxzKGEsIGIpIHtcbiAgICByZXR1cm4gKGEudHJhbnNsYXRlID09PSBiLnRyYW5zbGF0ZSAmJlxuICAgICAgICBhLnNjYWxlID09PSBiLnNjYWxlICYmXG4gICAgICAgIGEub3JpZ2luUG9pbnQgPT09IGIub3JpZ2luUG9pbnQpO1xufVxuXG5leHBvcnQgeyBhc3BlY3RSYXRpbywgYXhpc0RlbHRhRXF1YWxzLCBheGlzRXF1YWxzLCBheGlzRXF1YWxzUm91bmRlZCwgYm94RXF1YWxzLCBib3hFcXVhbHNSb3VuZGVkLCBpc0RlbHRhWmVybyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/utils.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.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 */ DocumentProjectionNode: () => (/* binding */ DocumentProjectionNode)\n/* harmony export */ });\n/* harmony import */ var _events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../events/add-dom-event.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var _create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-projection-node.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs\");\n\n\n\nconst DocumentProjectionNode = (0,_create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__.createProjectionNode)({\n attachResizeListener: (ref, notify) => (0,_events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__.addDomEvent)(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body?.scrollLeft || 0,\n y: document.documentElement.scrollTop || document.body?.scrollTop || 0,\n }),\n checkIsScrollRoot: () => true,\n});\n\n\n//# sourceMappingURL=DocumentProjectionNode.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vbm9kZS9Eb2N1bWVudFByb2plY3Rpb25Ob2RlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNkQ7QUFDTzs7QUFFcEUsK0JBQStCLGlGQUFvQjtBQUNuRCwyQ0FBMkMsc0VBQVc7QUFDdEQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsQ0FBQzs7QUFFaUM7QUFDbEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vbm9kZS9Eb2N1bWVudFByb2plY3Rpb25Ob2RlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGREb21FdmVudCB9IGZyb20gJy4uLy4uL2V2ZW50cy9hZGQtZG9tLWV2ZW50Lm1qcyc7XG5pbXBvcnQgeyBjcmVhdGVQcm9qZWN0aW9uTm9kZSB9IGZyb20gJy4vY3JlYXRlLXByb2plY3Rpb24tbm9kZS5tanMnO1xuXG5jb25zdCBEb2N1bWVudFByb2plY3Rpb25Ob2RlID0gY3JlYXRlUHJvamVjdGlvbk5vZGUoe1xuICAgIGF0dGFjaFJlc2l6ZUxpc3RlbmVyOiAocmVmLCBub3RpZnkpID0+IGFkZERvbUV2ZW50KHJlZiwgXCJyZXNpemVcIiwgbm90aWZ5KSxcbiAgICBtZWFzdXJlU2Nyb2xsOiAoKSA9PiAoe1xuICAgICAgICB4OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdCB8fCBkb2N1bWVudC5ib2R5Py5zY3JvbGxMZWZ0IHx8IDAsXG4gICAgICAgIHk6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgfHwgZG9jdW1lbnQuYm9keT8uc2Nyb2xsVG9wIHx8IDAsXG4gICAgfSksXG4gICAgY2hlY2tJc1Njcm9sbFJvb3Q6ICgpID0+IHRydWUsXG59KTtcblxuZXhwb3J0IHsgRG9jdW1lbnRQcm9qZWN0aW9uTm9kZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RG9jdW1lbnRQcm9qZWN0aW9uTm9kZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.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 */ HTMLProjectionNode: () => (/* binding */ HTMLProjectionNode),\n/* harmony export */ rootProjectionNode: () => (/* binding */ rootProjectionNode)\n/* harmony export */ });\n/* harmony import */ var _create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-projection-node.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs\");\n/* harmony import */ var _DocumentProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DocumentProjectionNode.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs\");\n\n\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = (0,_create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__.createProjectionNode)({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new _DocumentProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_1__.DocumentProjectionNode({});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\n\n//# sourceMappingURL=HTMLProjectionNode.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vbm9kZS9IVE1MUHJvamVjdGlvbk5vZGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBb0U7QUFDRTs7QUFFdEU7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLGlGQUFvQjtBQUMvQztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLHFDQUFxQywrRUFBc0IsR0FBRztBQUM5RDtBQUNBLHNDQUFzQyxvQkFBb0I7QUFDMUQ7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxDQUFDOztBQUVpRDtBQUNsRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL0hUTUxQcm9qZWN0aW9uTm9kZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUHJvamVjdGlvbk5vZGUgfSBmcm9tICcuL2NyZWF0ZS1wcm9qZWN0aW9uLW5vZGUubWpzJztcbmltcG9ydCB7IERvY3VtZW50UHJvamVjdGlvbk5vZGUgfSBmcm9tICcuL0RvY3VtZW50UHJvamVjdGlvbk5vZGUubWpzJztcblxuY29uc3Qgcm9vdFByb2plY3Rpb25Ob2RlID0ge1xuICAgIGN1cnJlbnQ6IHVuZGVmaW5lZCxcbn07XG5jb25zdCBIVE1MUHJvamVjdGlvbk5vZGUgPSBjcmVhdGVQcm9qZWN0aW9uTm9kZSh7XG4gICAgbWVhc3VyZVNjcm9sbDogKGluc3RhbmNlKSA9PiAoe1xuICAgICAgICB4OiBpbnN0YW5jZS5zY3JvbGxMZWZ0LFxuICAgICAgICB5OiBpbnN0YW5jZS5zY3JvbGxUb3AsXG4gICAgfSksXG4gICAgZGVmYXVsdFBhcmVudDogKCkgPT4ge1xuICAgICAgICBpZiAoIXJvb3RQcm9qZWN0aW9uTm9kZS5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudE5vZGUgPSBuZXcgRG9jdW1lbnRQcm9qZWN0aW9uTm9kZSh7fSk7XG4gICAgICAgICAgICBkb2N1bWVudE5vZGUubW91bnQod2luZG93KTtcbiAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5zZXRPcHRpb25zKHsgbGF5b3V0U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgICAgICAgcm9vdFByb2plY3Rpb25Ob2RlLmN1cnJlbnQgPSBkb2N1bWVudE5vZGU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJvb3RQcm9qZWN0aW9uTm9kZS5jdXJyZW50O1xuICAgIH0sXG4gICAgcmVzZXRUcmFuc2Zvcm06IChpbnN0YW5jZSwgdmFsdWUpID0+IHtcbiAgICAgICAgaW5zdGFuY2Uuc3R5bGUudHJhbnNmb3JtID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDogXCJub25lXCI7XG4gICAgfSxcbiAgICBjaGVja0lzU2Nyb2xsUm9vdDogKGluc3RhbmNlKSA9PiBCb29sZWFuKHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGluc3RhbmNlKS5wb3NpdGlvbiA9PT0gXCJmaXhlZFwiKSxcbn0pO1xuXG5leHBvcnQgeyBIVE1MUHJvamVjdGlvbk5vZGUsIHJvb3RQcm9qZWN0aW9uTm9kZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SFRNTFByb2plY3Rpb25Ob2RlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/create-projection-node.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 */ cleanDirtyNodes: () => (/* binding */ cleanDirtyNodes),\n/* harmony export */ createProjectionNode: () => (/* binding */ createProjectionNode),\n/* harmony export */ mixAxis: () => (/* binding */ mixAxis),\n/* harmony export */ mixAxisDelta: () => (/* binding */ mixAxisDelta),\n/* harmony export */ mixBox: () => (/* binding */ mixBox),\n/* harmony export */ propagateDirtyNodes: () => (/* binding */ propagateDirtyNodes)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _animation_animate_single_value_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../../animation/animate/single-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/animate/single-value.mjs\");\n/* harmony import */ var _animation_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../animation/optimized-appear/get-appear-id.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs\");\n/* harmony import */ var _animation_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../animation/utils/get-value-transition.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../frameloop/microtask.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../frameloop/sync-time.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../styles/scale-correction.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs\");\n/* harmony import */ var _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../stats/animation-count.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../stats/buffer.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n/* harmony import */ var _utils_delay_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/delay.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/delay.mjs\");\n/* harmony import */ var _utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/is-svg-element.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n/* harmony import */ var _utils_is_svg_svg_element_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/is-svg-svg-element.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs\");\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../../value/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../../value/utils/resolve-motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs\");\n/* harmony import */ var _animation_mix_values_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../animation/mix-values.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs\");\n/* harmony import */ var _geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../geometry/copy.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/copy.mjs\");\n/* harmony import */ var _geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../geometry/delta-apply.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\");\n/* harmony import */ var _geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geometry/delta-calc.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n/* harmony import */ var _geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../geometry/delta-remove.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs\");\n/* harmony import */ var _geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry/models.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry/utils.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/utils.mjs\");\n/* harmony import */ var _shared_stack_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../shared/stack.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/shared/stack.mjs\");\n/* harmony import */ var _styles_transform_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../styles/transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/styles/transform.mjs\");\n/* harmony import */ var _utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../utils/each-axis.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs\");\n/* harmony import */ var _utils_flat_tree_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/flat-tree.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs\");\n/* harmony import */ var _utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/has-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs\");\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./state.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/node/state.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst metrics = {\n nodes: 0,\n calculatedTargetDeltas: 0,\n calculatedProjections: 0,\n};\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\nfunction resetDistortingTransform(key, visualElement, values, sharedAnimationValues) {\n const { latestValues } = visualElement;\n // Record the distorting transform and then temporarily set it to 0\n if (latestValues[key]) {\n values[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n if (sharedAnimationValues) {\n sharedAnimationValues[key] = 0;\n }\n }\n}\nfunction cancelTreeOptimisedTransformAnimations(projectionNode) {\n projectionNode.hasCheckedOptimisedAppear = true;\n if (projectionNode.root === projectionNode)\n return;\n const { visualElement } = projectionNode.options;\n if (!visualElement)\n return;\n const appearId = (0,_animation_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_0__.getOptimisedAppearId)(visualElement);\n if (window.MotionHasOptimisedAnimation(appearId, \"transform\")) {\n const { layout, layoutId } = projectionNode.options;\n window.MotionCancelOptimisedAnimation(appearId, \"transform\", _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame, !(layout || layoutId));\n }\n const { parent } = projectionNode;\n if (parent && !parent.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(parent);\n }\n}\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(latestValues = {}, parent = defaultParent?.()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n this.animationCommitId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Flag to true if we think the projection calculations for this node needs\n * recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Flag to true if the layout *or* transform has changed. This then gets propagated\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\n */\n this.isSharedProjectionDirty = false;\n /**\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\n * respected by shared nodes.\n */\n this.isTransformDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * Store whether this node has been checked for optimised appear animations. As\n * effects fire bottom-up, and we want to look up the tree for appear animations,\n * this makes sure we only check each path once, stopping at nodes that\n * have already been checked.\n */\n this.hasCheckedOptimisedAppear = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n this.hasTreeAnimated = false;\n this.layoutVersion = 0;\n // Note: Currently only running on root node\n this.updateScheduled = false;\n this.scheduleUpdate = () => this.update();\n this.projectionUpdateScheduled = false;\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n this.projectionUpdateScheduled = false;\n /**\n * Reset debug counts. Manually resetting rather than creating a new\n * object each frame.\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.nodes =\n metrics.calculatedTargetDeltas =\n metrics.calculatedProjections =\n 0;\n }\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n this.nodes.forEach(cleanDirtyNodes);\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.addProjectionMetrics) {\n _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.addProjectionMetrics(metrics);\n }\n };\n /**\n * Frame calculations\n */\n this.resolvedRelativeTargetAt = 0.0;\n this.linkedParentVersion = 0;\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new _utils_flat_tree_mjs__WEBPACK_IMPORTED_MODULE_3__.FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new motion_utils__WEBPACK_IMPORTED_MODULE_4__.SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager && subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n /**\n * Lifecycles\n */\n mount(instance) {\n if (this.instance)\n return;\n this.isSVG = (0,_utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_5__.isSVGElement)(instance) && !(0,_utils_is_svg_svg_element_mjs__WEBPACK_IMPORTED_MODULE_6__.isSVGSVGElement)(instance);\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n this.parent && this.parent.children.add(this);\n if (this.root.hasTreeAnimated && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n let innerWidth = 0;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n // Set initial innerWidth in a frame.read callback to batch the read\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.read(() => {\n innerWidth = window.innerWidth;\n });\n attachResizeListener(instance, () => {\n const newInnerWidth = window.innerWidth;\n if (newInnerWidth === innerWidth)\n return;\n innerWidth = newInnerWidth;\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = (0,_utils_delay_mjs__WEBPACK_IMPORTED_MODULE_7__.delay)(resizeUnblockUpdate, 250);\n if (_state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize) {\n _state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeLayoutChanged, layout: newLayout, }) => {\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = this.options.transition ||\n visualElement.getDefaultTransition() ||\n defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const hasTargetChanged = !this.targetLayout ||\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEqualsRounded)(this.targetLayout, newLayout);\n /*\n * Note: Disabled to fix relative animations always triggering new\n * layout animations. If this causes further issues, we can try\n * a different approach to detecting relative target changes.\n */\n // || hasRelativeLayoutChanged\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeLayoutChanged;\n if (this.options.layoutRoot ||\n this.resumeFrom ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (hasTargetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n const animationOptions = {\n ...(0,_animation_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_10__.getValueTransition)(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion ||\n this.options.layoutRoot) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n /**\n * Set animation origin after starting animation to avoid layout jump\n * caused by stopping previous layout animation\n */\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never committed to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged) {\n finishAnimation(this);\n }\n if (this.isLead() && this.options.onExitComplete) {\n this.options.onExitComplete();\n }\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n const stack = this.getStack();\n stack && stack.remove(this);\n this.parent && this.parent.children.delete(this);\n this.instance = undefined;\n this.eventHandlers.clear();\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n return (this.isAnimationBlocked ||\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n this.nodes && this.nodes.forEach(resetSkewAndRotation);\n this.animationId++;\n }\n getTransformTemplate() {\n const { visualElement } = this.options;\n return visualElement && visualElement.getProps().transformTemplate;\n }\n willUpdate(shouldNotifyListeners = true) {\n this.root.hasTreeAnimated = true;\n if (this.root.isUpdateBlocked()) {\n this.options.onExitComplete && this.options.onExitComplete();\n return;\n }\n /**\n * If we're running optimised appear animations then these must be\n * cancelled before measuring the DOM. This is so we can measure\n * the true layout of the element rather than the WAAPI animation\n * which will be unaffected by the resetSkewAndRotate step.\n *\n * Note: This is a DOM write. Worst case scenario is this is sandwiched\n * between other snapshot reads which will cause unnecessary style recalculations.\n * This has to happen here though, as we don't yet know which nodes will need\n * snapshots in startUpdate(), but we only want to cancel optimised animations\n * if a layout animation measurement is actually going to be affected by them.\n */\n if (window.MotionCancelOptimisedAnimation &&\n !this.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(this);\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n if (node.options.layoutRoot) {\n node.willUpdate(false);\n }\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = this.getTransformTemplate();\n this.prevTransformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n update() {\n this.updateScheduled = false;\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n /**\n * If this is a repeat of didUpdate then ignore the animation.\n */\n if (this.animationId <= this.animationCommitId) {\n this.nodes.forEach(clearIsLayoutDirty);\n return;\n }\n this.animationCommitId = this.animationId;\n if (!this.isUpdating) {\n this.nodes.forEach(clearIsLayoutDirty);\n }\n else {\n this.isUpdating = false;\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n }\n this.clearAllSnapshots();\n /**\n * Manually flush any pending updates. Ideally\n * we could leave this to the following requestAnimationFrame but this seems\n * to leave a flash of incorrectly styled content.\n */\n const now = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_11__.time.now();\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.delta = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.clamp)(0, 1000 / 60, now - _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp = now;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.isProcessing = true;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameSteps.update.process(_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameSteps.preRender.process(_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameSteps.render.process(_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.isProcessing = false;\n }\n didUpdate() {\n if (!this.updateScheduled) {\n this.updateScheduled = true;\n _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_13__.microtask.read(this.scheduleUpdate);\n }\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n if (!this.projectionUpdateScheduled) {\n this.projectionUpdateScheduled = true;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.preRender(this.updateProjection, false, true);\n }\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n if (this.snapshot &&\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.snapshot.measuredBox.x) &&\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.snapshot.measuredBox.y)) {\n this.snapshot = undefined;\n }\n }\n updateLayout() {\n if (!this.instance)\n return;\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutVersion++;\n this.layoutCorrected = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n const { visualElement } = this.options;\n visualElement &&\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement && this.instance) {\n const isRoot = checkIsScrollRoot(this.instance);\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot,\n offset: measureScroll(this.instance),\n wasRoot: this.scroll ? this.scroll.isRoot : isRoot,\n };\n }\n }\n resetTransform() {\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty ||\n this.shouldResetTransform ||\n this.options.alwaysMeasureLayout;\n const hasProjection = this.projectionDelta && !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.isDeltaZero)(this.projectionDelta);\n const transformTemplate = this.getTransformTemplate();\n const transformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n this.instance &&\n (hasProjection ||\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n const { visualElement } = this.options;\n if (!visualElement)\n return (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const box = visualElement.measureViewportBox();\n const wasInScrollRoot = this.scroll?.wasRoot || this.path.some(checkNodeWasScrollRoot);\n if (!wasInScrollRoot) {\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(box.x, scroll.offset.x);\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(box.y, scroll.offset.y);\n }\n }\n return box;\n }\n removeElementScroll(box) {\n const boxWithoutScroll = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutScroll, box);\n if (this.scroll?.wasRoot) {\n return boxWithoutScroll;\n }\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.wasRoot) {\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutScroll, box);\n }\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(boxWithoutScroll.x, scroll.offset.x);\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(node.latestValues))\n continue;\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, node.latestValues);\n }\n if ((0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n const boxWithoutTransform = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(node.latestValues))\n continue;\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasScale)(node.latestValues) && node.updateSnapshot();\n const sourceBox = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const nodeBox = node.measurePageBox();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(sourceBox, nodeBox);\n (0,_geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__.removeBoxTransforms)(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\n }\n if ((0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\n (0,_geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__.removeBoxTransforms)(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n this.isProjectionDirty = true;\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n forceRelativeParentToResolveTarget() {\n if (!this.relativeParent)\n return;\n /**\n * If the parent target isn't up-to-date, force it to update.\n * This is an unfortunate de-optimisation as it means any updating relative\n * projection will cause all the relative parents to recalculate back\n * up the tree.\n */\n if (this.relativeParent.resolvedRelativeTargetAt !==\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp) {\n this.relativeParent.resolveTargetDelta(true);\n }\n }\n resolveTargetDelta(forceRecalculation = false) {\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n const canSkip = !(forceRecalculation ||\n (isShared && this.isSharedProjectionDirty) ||\n this.isProjectionDirty ||\n this.parent?.isProjectionDirty ||\n this.attemptToResolveRelativeTarget ||\n this.root.updateBlockedByResize);\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n this.resolvedRelativeTargetAt = _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n this.linkedParentVersion !== relativeParent.layoutVersion &&\n !relativeParent.options.layoutRoot) {\n this.removeRelativeTarget();\n }\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n if (!this.targetDelta && !this.relativeTarget) {\n if (relativeParent && relativeParent.layout) {\n this.createRelativeTarget(relativeParent, this.layout.layoutBox, relativeParent.layout.layoutBox);\n }\n else {\n this.removeRelativeTarget();\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n this.targetWithTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.relativeParent &&\n this.relativeParent.target) {\n this.forceRelativeParentToResolveTarget();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativeBox)(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.target, this.layout.layoutBox);\n }\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.applyBoxDelta)(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target &&\n this.animationProgress !== 1) {\n this.createRelativeTarget(relativeParent, this.target, relativeParent.target);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * Increase debug counter for resolved target deltas\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.calculatedTargetDeltas++;\n }\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasScale)(this.parent.latestValues) ||\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.has2DTranslate)(this.parent.latestValues)) {\n return undefined;\n }\n if (this.parent.isProjecting()) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n isProjecting() {\n return Boolean((this.relativeTarget ||\n this.targetDelta ||\n this.options.layoutRoot) &&\n this.layout);\n }\n createRelativeTarget(relativeParent, layout, parentLayout) {\n this.relativeParent = relativeParent;\n this.linkedParentVersion = relativeParent.layoutVersion;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n this.relativeTargetOrigin = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(this.relativeTargetOrigin, layout, parentLayout);\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.relativeTarget, this.relativeTargetOrigin);\n }\n removeRelativeTarget() {\n this.relativeParent = this.relativeTarget = undefined;\n }\n calcProjection() {\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n /**\n * If this is a normal layout animation and neither this node nor its nearest projecting\n * is dirty then we can't skip.\n */\n if (this.isProjectionDirty || this.parent?.isProjectionDirty) {\n canSkip = false;\n }\n /**\n * If this is a shared layout animation and this node's shared projection is dirty then\n * we can't skip.\n */\n if (isShared &&\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\n canSkip = false;\n }\n /**\n * If we have resolved the target this frame we must recalculate the\n * projection to ensure it visually represents the internal calculations.\n */\n if (this.resolvedRelativeTargetAt === _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp) {\n canSkip = false;\n }\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Record previous tree scales before updating.\n */\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.applyTreeDeltas)(this.layoutCorrected, this.treeScale, this.path, isShared);\n /**\n * If this layer needs to perform scale correction but doesn't have a target,\n * use the layout as the target.\n */\n if (lead.layout &&\n !lead.target &&\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n lead.target = lead.layout.layoutBox;\n lead.targetWithTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n }\n const { target } = lead;\n if (!target) {\n /**\n * If we don't have a target to project into, but we were previously\n * projecting, we want to remove the stored transform and schedule\n * a render to ensure the elements reflect the removed transform.\n */\n if (this.prevProjectionDelta) {\n this.createProjectionDeltas();\n this.scheduleRender();\n }\n return;\n }\n if (!this.projectionDelta || !this.prevProjectionDelta) {\n this.createProjectionDeltas();\n }\n else {\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyAxisDeltaInto)(this.prevProjectionDelta.x, this.projectionDelta.x);\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyAxisDeltaInto)(this.prevProjectionDelta.y, this.projectionDelta.y);\n }\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n if (this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY ||\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.axisDeltaEquals)(this.projectionDelta.x, this.prevProjectionDelta.x) ||\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.axisDeltaEquals)(this.projectionDelta.y, this.prevProjectionDelta.y)) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n /**\n * Increase debug counter for recalculated projections\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.calculatedProjections++;\n }\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n this.options.visualElement?.scheduleRender();\n if (notifyAll) {\n const stack = this.getStack();\n stack && stack.scheduleRender();\n }\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n createProjectionDeltas() {\n this.prevProjectionDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n this.projectionDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n this.projectionDeltaWithTransform = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n const snapshot = this.snapshot;\n const snapshotLatestValues = snapshot ? snapshot.latestValues : {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n if (!this.relativeParent ||\n !this.relativeParent.options.layoutRoot) {\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n }\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const snapshotSource = snapshot ? snapshot.source : undefined;\n const layoutSource = this.layout ? this.layout.source : undefined;\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n const stack = this.getStack();\n const isOnlyMember = !stack || stack.members.length <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n let prevRelativeTarget;\n this.mixTargetDelta = (latest) => {\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n this.relativeParent &&\n this.relativeParent.layout) {\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n /**\n * If this is an unchanged relative target we can consider the\n * projection not dirty.\n */\n if (prevRelativeTarget &&\n (0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEquals)(this.relativeTarget, prevRelativeTarget)) {\n this.isProjectionDirty = false;\n }\n if (!prevRelativeTarget)\n prevRelativeTarget = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(prevRelativeTarget, this.relativeTarget);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n (0,_animation_mix_values_mjs__WEBPACK_IMPORTED_MODULE_20__.mixValues)(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\n }\n startAnimation(options) {\n this.notifyListeners(\"animationStart\");\n this.currentAnimation?.stop();\n this.resumingFrom?.currentAnimation?.stop();\n if (this.pendingAnimation) {\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.update(() => {\n _state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize = true;\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout++;\n this.motionValue || (this.motionValue = (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_22__.motionValue)(0));\n this.motionValue.jump(0, false);\n this.currentAnimation = (0,_animation_animate_single_value_mjs__WEBPACK_IMPORTED_MODULE_23__.animateSingleValue)(this.motionValue, [0, 1000], {\n ...options,\n velocity: 0,\n isSync: true,\n onUpdate: (latest) => {\n this.mixTargetDelta(latest);\n options.onUpdate && options.onUpdate(latest);\n },\n onStop: () => {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout--;\n },\n onComplete: () => {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout--;\n options.onComplete && options.onComplete();\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n const stack = this.getStack();\n stack && stack.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n if (this.currentAnimation) {\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const xLength = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new _shared_stack_mjs__WEBPACK_IMPORTED_MODULE_24__.NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n const config = node.options.initialPromotionConfig;\n node.promote({\n transition: config ? config.transition : undefined,\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\n ? config.shouldPreserveFollowOpacity(node)\n : undefined,\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n const { layoutId } = this.options;\n return layoutId ? this.getStack()?.lead || this : this;\n }\n getPrevLead() {\n const { layoutId } = this.options;\n return layoutId ? this.getStack()?.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetSkewAndRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected skew or rotation values, we can early return without a forced render.\n let hasDistortingTransform = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.z ||\n latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ ||\n latestValues.skewX ||\n latestValues.skewY) {\n hasDistortingTransform = true;\n }\n // If there's no distorting values, we don't need to do any more.\n if (!hasDistortingTransform)\n return;\n const resetValues = {};\n if (latestValues.z) {\n resetDistortingTransform(\"z\", visualElement, resetValues, this.animationValues);\n }\n // Check the skew and rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n }\n // Force a render of this element to apply the transform with all skews and rotations\n // set to 0.\n visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n if (this.animationValues) {\n this.animationValues[key] = resetValues[key];\n }\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n applyProjectionStyles(targetStyle, // CSSStyleDeclaration - doesn't allow numbers to be assigned to properties\n styleProp) {\n if (!this.instance || this.isSVG)\n return;\n if (!this.isVisible) {\n targetStyle.visibility = \"hidden\";\n return;\n }\n const transformTemplate = this.getTransformTemplate();\n if (this.needsReset) {\n this.needsReset = false;\n targetStyle.visibility = \"\";\n targetStyle.opacity = \"\";\n targetStyle.pointerEvents =\n (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\";\n targetStyle.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n if (this.options.layoutId) {\n targetStyle.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n targetStyle.pointerEvents =\n (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\";\n }\n if (this.hasProjected && !(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\n targetStyle.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return;\n }\n targetStyle.visibility = \"\";\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n let transform = (0,_styles_transform_mjs__WEBPACK_IMPORTED_MODULE_26__.buildProjectionTransform)(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n transform = transformTemplate(valuesToRender, transform);\n }\n targetStyle.transform = transform;\n const { x, y } = this.projectionDelta;\n targetStyle.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n targetStyle.opacity =\n lead === this\n ? valuesToRender.opacity ??\n this.latestValues.opacity ??\n 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n targetStyle.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__.scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo, isCSSVariable } = _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__.scaleCorrectors[key];\n /**\n * Only apply scale correction to the value if we have an\n * active projection transform. Otherwise these values become\n * vulnerable to distortion if the element changes size without\n * a corresponding layout animation.\n */\n const corrected = transform === \"none\"\n ? valuesToRender[key]\n : correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n targetStyle[applyTo[i]] = corrected;\n }\n }\n else {\n // If this is a CSS variable, set it directly on the instance.\n // Replacing this function from creating styles to setting them\n // would be a good place to remove per frame object creation\n if (isCSSVariable) {\n this.options.visualElement.renderState.vars[key] = corrected;\n }\n else {\n targetStyle[key] = corrected;\n }\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n targetStyle.pointerEvents =\n lead === this\n ? (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\"\n : \"none\";\n }\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => node.currentAnimation?.stop());\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n const snapshot = node.resumeFrom?.snapshot || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n (0,_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__.eachAxis)((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n (0,_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__.eachAxis)((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n /**\n * Ensure relative target gets resized and rerendererd\n */\n if (node.relativeTarget && !node.currentAnimation) {\n node.isProjectionDirty = true;\n node.relativeTarget[axis].max =\n node.relativeTarget[axis].min + length;\n }\n });\n }\n const layoutDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n if (isShared) {\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.isDeltaZero)(layoutDelta);\n let hasRelativeLayoutChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeLayout, layout, parentLayout.layoutBox);\n if (!(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEqualsRounded)(relativeSnapshot, relativeLayout)) {\n hasRelativeLayoutChanged = true;\n }\n if (relativeParent.options.layoutRoot) {\n node.relativeTarget = relativeLayout;\n node.relativeTargetOrigin = relativeSnapshot;\n node.relativeParent = relativeParent;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeLayoutChanged,\n });\n }\n else if (node.isLead()) {\n const { onExitComplete } = node.options;\n onExitComplete && onExitComplete();\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Increase debug counter for nodes encountered this frame\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.nodes++;\n }\n if (!node.parent)\n return;\n /**\n * If this node isn't projecting, propagate isProjectionDirty. It will have\n * no performance impact but it will allow the next child that *is* projecting\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\n * correcting.\n */\n if (!node.isProjecting()) {\n node.isProjectionDirty = node.parent.isProjectionDirty;\n }\n /**\n * Propagate isSharedProjectionDirty and isTransformDirty\n * throughout the whole tree. A future revision can take another look at\n * this but for safety we still recalcualte shared nodes.\n */\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\n node.parent.isProjectionDirty ||\n node.parent.isSharedProjectionDirty));\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n node.isProjectionDirty =\n node.isSharedProjectionDirty =\n node.isTransformDirty =\n false;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetSkewAndRotation(node) {\n node.resetSkewAndRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(delta.translate, 0, p);\n output.scale = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(from.min, to.min, p);\n output.max = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().includes(string);\n/**\n * Measured bounding boxes must be rounded in Safari and\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\n * can appear to jump.\n */\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\n ? Math.round\n : motion_utils__WEBPACK_IMPORTED_MODULE_30__.noop;\nfunction roundAxis(axis) {\n // Round to the nearest .5 pixels to support subpixel layouts\n axis.min = roundPoint(axis.min);\n axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.isNear)((0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.aspectRatio)(snapshot), (0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.aspectRatio)(layout), 0.2)));\n}\nfunction checkNodeWasScrollRoot(node) {\n return node !== node.root && node.scroll?.wasRoot;\n}\n\n\n//# sourceMappingURL=create-projection-node.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vbm9kZS9jcmVhdGUtcHJvamVjdGlvbi1ub2RlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQWdFO0FBQ2M7QUFDWTtBQUNOO0FBQzFCO0FBQ0w7QUFDWTtBQUNFO0FBQ2Q7QUFDUDtBQUNnQjtBQUNPO0FBQ2Q7QUFDSDtBQUM0QjtBQUN4QjtBQUNjO0FBQ29DO0FBQ1c7QUFDbEQ7QUFDSDtBQUMrQztBQUMvRDtBQUNtQjtBQUNqQjtBQUNBO0FBQ2tDO0FBQ2hDO0FBQ2tDOztBQUV0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksZUFBZTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksZ0JBQWdCO0FBQzVCO0FBQ0E7QUFDQSxxQkFBcUIsbUdBQW9CO0FBQ3pDO0FBQ0EsZ0JBQWdCLG1CQUFtQjtBQUNuQyxxRUFBcUUsdURBQUs7QUFDMUU7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msd0ZBQXdGO0FBQ3hIO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwwREFBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMERBQVc7QUFDL0Isb0JBQW9CLDBEQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsc0JBQXNCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQywwREFBUTtBQUN6QztBQUNBO0FBQ0E7QUFDQSxpREFBaUQsNkRBQW1CO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLHVFQUFZLGVBQWUsOEVBQWU7QUFDbkU7QUFDQSxvQkFBb0Isa0NBQWtDO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHVEQUFLO0FBQ3JCO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLHVEQUFLO0FBQ3ZDLHdCQUF3Qiw2REFBcUI7QUFDN0Msd0JBQXdCLDZEQUFxQjtBQUM3QztBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzREFBc0QsdUVBQXVFO0FBQzdIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixxREFBcUQ7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixxRUFBZ0I7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsOEZBQWtCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGlFQUFXO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGdCQUFnQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsbUJBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDJEQUFJO0FBQzVCLFlBQVksMkRBQVMsU0FBUyxvREFBSyxxQkFBcUIsMkRBQVM7QUFDakUsWUFBWSwyREFBUztBQUNyQixZQUFZLDJEQUFTO0FBQ3JCLFlBQVksNERBQVUsZ0JBQWdCLDJEQUFTO0FBQy9DLFlBQVksNERBQVUsbUJBQW1CLDJEQUFTO0FBQ2xELFlBQVksNERBQVUsZ0JBQWdCLDJEQUFTO0FBQy9DLFlBQVksMkRBQVM7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsZ0VBQVM7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHVEQUFLO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHVEQUFLO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIscUVBQVU7QUFDM0IsaUJBQWlCLHFFQUFVO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLHNCQUFzQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxnRUFBUztBQUM1QztBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRCxnRUFBVztBQUN0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHVFQUFZO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGdCQUFnQjtBQUNwQztBQUNBLHVCQUF1QixnRUFBUztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixTQUFTO0FBQ2pDO0FBQ0Esb0JBQW9CLHlFQUFhO0FBQ2pDLG9CQUFvQix5RUFBYTtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLGdFQUFTO0FBQzlDLFlBQVksZ0VBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsc0JBQXNCO0FBQ2xEO0FBQ0Esd0JBQXdCLGtCQUFrQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0VBQVc7QUFDbkM7QUFDQSxvQkFBb0IseUVBQWE7QUFDakMsb0JBQW9CLHlFQUFhO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsZ0VBQVM7QUFDNUMsWUFBWSxnRUFBVztBQUN2Qiw0QkFBNEIsc0JBQXNCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isd0VBQVk7QUFDaEM7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLHFCQUFxQix1RUFBWTtBQUNqQztBQUNBLGdCQUFnQix3RUFBWTtBQUM1QjtBQUNBLGdCQUFnQix1RUFBWTtBQUM1QixnQkFBZ0Isd0VBQVk7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0MsZ0VBQVM7QUFDakQsWUFBWSxnRUFBVztBQUN2Qiw0QkFBNEIsc0JBQXNCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQix1RUFBWTtBQUNqQztBQUNBLGdCQUFnQixtRUFBUTtBQUN4QixrQ0FBa0MsZ0VBQVM7QUFDM0M7QUFDQSxnQkFBZ0IsZ0VBQVc7QUFDM0IsZ0JBQWdCLGdGQUFtQjtBQUNuQztBQUNBLGdCQUFnQix1RUFBWTtBQUM1QixnQkFBZ0IsZ0ZBQW1CO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDJEQUFTO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsbUJBQW1CO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsMkRBQVM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixnRUFBUztBQUN2Qyw0Q0FBNEMsZ0VBQVM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBFQUFlO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLGdFQUFXO0FBQy9CO0FBQ0EsZ0JBQWdCLHlFQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsZ0VBQVc7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBEQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUVBQVE7QUFDeEIsZ0JBQWdCLHlFQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLGdFQUFTO0FBQzNDLHdDQUF3QyxnRUFBUztBQUNqRCxZQUFZLCtFQUFvQjtBQUNoQyxZQUFZLGdFQUFXO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRCwyREFBUztBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQkFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGdFQUFXO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksMkVBQWU7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxnRUFBUztBQUNyRDtBQUNBLG9CQUFvQixTQUFTO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHNFQUFpQjtBQUNqQyxnQkFBZ0Isc0VBQWlCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx1RUFBWTtBQUN4QjtBQUNBO0FBQ0EsaUJBQWlCLG9FQUFlO0FBQ2hDLGlCQUFpQixvRUFBZTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwwREFBVztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxrRUFBVztBQUNsRCxtQ0FBbUMsa0VBQVc7QUFDOUMsZ0RBQWdELGtFQUFXO0FBQzNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDLGdDQUFnQyxrRUFBVztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLGdFQUFTO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwrRUFBb0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDhEQUFTO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLDZDQUE2QyxnRUFBUztBQUN0RCxvQkFBb0IsZ0VBQVc7QUFDL0I7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHFFQUFTO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixpRUFBVztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyx1REFBSztBQUN6QyxnQkFBZ0IsNkRBQXFCO0FBQ3JDLGdCQUFnQix5RUFBZ0I7QUFDaEMsd0RBQXdELDhEQUFXO0FBQ25FO0FBQ0Esd0NBQXdDLHdGQUFrQjtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQSx3QkFBd0IseUVBQWdCO0FBQ3hDLHFCQUFxQjtBQUNyQjtBQUNBLHdCQUF3Qix5RUFBZ0I7QUFDeEM7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQixpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixxREFBcUQ7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxnRUFBUztBQUNqRCxnQ0FBZ0MscUVBQVU7QUFDMUM7QUFDQTtBQUNBLGdDQUFnQyxxRUFBVTtBQUMxQztBQUNBO0FBQ0E7QUFDQSxZQUFZLGdFQUFXO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHdFQUFZO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksdUVBQVk7QUFDeEI7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELHlEQUFTO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsV0FBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsV0FBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsV0FBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsaURBQWlELElBQUk7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxZQUFZO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLDBCQUEwQjtBQUN0RCxrREFBa0QsaUJBQWlCO0FBQ25FLGdEQUFnRCxpQkFBaUI7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwwRkFBa0I7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMEZBQWtCO0FBQzFDO0FBQ0EsMENBQTBDLHVFQUFZO0FBQ3REO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsZ0ZBQXdCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLE9BQU87QUFDM0IsNkNBQTZDLGVBQWUsSUFBSSxlQUFlO0FBQy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLDBFQUFlO0FBQzdDO0FBQ0E7QUFDQSx3QkFBd0Isa0NBQWtDLEVBQUUsMEVBQWU7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxTQUFTO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsMEZBQWtCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsaURBQWlEO0FBQ2pFLGdCQUFnQixnQkFBZ0I7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLCtEQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixxRUFBVTtBQUN6QztBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxZQUFZLCtEQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixxRUFBVTtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSw0QkFBNEIsa0VBQVc7QUFDdkMsUUFBUSx1RUFBWTtBQUNwQiw0QkFBNEIsa0VBQVc7QUFDdkM7QUFDQSxZQUFZLHVFQUFZO0FBQ3hCO0FBQ0E7QUFDQSxZQUFZLHVFQUFZO0FBQ3hCO0FBQ0Esa0NBQWtDLGdFQUFXO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsaURBQWlEO0FBQ3pFO0FBQ0EsNkNBQTZDLGdFQUFTO0FBQ3RELG9CQUFvQiwrRUFBb0I7QUFDeEMsMkNBQTJDLGdFQUFTO0FBQ3BELG9CQUFvQiwrRUFBb0I7QUFDeEMseUJBQXlCLHFFQUFnQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxnQkFBZ0IsaUJBQWlCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0VBQW9FLGNBQWM7QUFDbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsMERBQVc7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxnQkFBZ0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixpRUFBUztBQUNoQyxtQkFBbUIsaUVBQVM7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsaUVBQVM7QUFDMUIsaUJBQWlCLGlFQUFTO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSwrQ0FBSTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsaUVBQU0sQ0FBQyxnRUFBVyxZQUFZLGdFQUFXO0FBQ3REO0FBQ0E7QUFDQTtBQUNBOztBQUVxRztBQUNyRyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL2NyZWF0ZS1wcm9qZWN0aW9uLW5vZGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvbk1hbmFnZXIsIGNsYW1wLCBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGFuaW1hdGVTaW5nbGVWYWx1ZSB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi9hbmltYXRlL3NpbmdsZS12YWx1ZS5tanMnO1xuaW1wb3J0IHsgZ2V0T3B0aW1pc2VkQXBwZWFySWQgfSBmcm9tICcuLi8uLi9hbmltYXRpb24vb3B0aW1pemVkLWFwcGVhci9nZXQtYXBwZWFyLWlkLm1qcyc7XG5pbXBvcnQgeyBnZXRWYWx1ZVRyYW5zaXRpb24gfSBmcm9tICcuLi8uLi9hbmltYXRpb24vdXRpbHMvZ2V0LXZhbHVlLXRyYW5zaXRpb24ubWpzJztcbmltcG9ydCB7IG1pY3JvdGFzayB9IGZyb20gJy4uLy4uL2ZyYW1lbG9vcC9taWNyb3Rhc2subWpzJztcbmltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3Avc3luYy10aW1lLm1qcyc7XG5pbXBvcnQgeyBzY2FsZUNvcnJlY3RvcnMgfSBmcm9tICcuLi9zdHlsZXMvc2NhbGUtY29ycmVjdGlvbi5tanMnO1xuaW1wb3J0IHsgYWN0aXZlQW5pbWF0aW9ucyB9IGZyb20gJy4uLy4uL3N0YXRzL2FuaW1hdGlvbi1jb3VudC5tanMnO1xuaW1wb3J0IHsgc3RhdHNCdWZmZXIgfSBmcm9tICcuLi8uLi9zdGF0cy9idWZmZXIubWpzJztcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSAnLi4vLi4vdXRpbHMvZGVsYXkubWpzJztcbmltcG9ydCB7IGlzU1ZHRWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL2lzLXN2Zy1lbGVtZW50Lm1qcyc7XG5pbXBvcnQgeyBpc1NWR1NWR0VsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscy9pcy1zdmctc3ZnLWVsZW1lbnQubWpzJztcbmltcG9ydCB7IG1peE51bWJlciB9IGZyb20gJy4uLy4uL3V0aWxzL21peC9udW1iZXIubWpzJztcbmltcG9ydCB7IG1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvaW5kZXgubWpzJztcbmltcG9ydCB7IHJlc29sdmVNb3Rpb25WYWx1ZSB9IGZyb20gJy4uLy4uL3ZhbHVlL3V0aWxzL3Jlc29sdmUtbW90aW9uLXZhbHVlLm1qcyc7XG5pbXBvcnQgeyBtaXhWYWx1ZXMgfSBmcm9tICcuLi9hbmltYXRpb24vbWl4LXZhbHVlcy5tanMnO1xuaW1wb3J0IHsgY29weUJveEludG8sIGNvcHlBeGlzRGVsdGFJbnRvIH0gZnJvbSAnLi4vZ2VvbWV0cnkvY29weS5tanMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlQXhpcywgdHJhbnNmb3JtQm94LCBhcHBseUJveERlbHRhLCBhcHBseVRyZWVEZWx0YXMgfSBmcm9tICcuLi9nZW9tZXRyeS9kZWx0YS1hcHBseS5tanMnO1xuaW1wb3J0IHsgY2FsY0xlbmd0aCwgY2FsY1JlbGF0aXZlQm94LCBjYWxjUmVsYXRpdmVQb3NpdGlvbiwgY2FsY0JveERlbHRhLCBpc05lYXIgfSBmcm9tICcuLi9nZW9tZXRyeS9kZWx0YS1jYWxjLm1qcyc7XG5pbXBvcnQgeyByZW1vdmVCb3hUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vZ2VvbWV0cnkvZGVsdGEtcmVtb3ZlLm1qcyc7XG5pbXBvcnQgeyBjcmVhdGVCb3gsIGNyZWF0ZURlbHRhIH0gZnJvbSAnLi4vZ2VvbWV0cnkvbW9kZWxzLm1qcyc7XG5pbXBvcnQgeyBib3hFcXVhbHNSb3VuZGVkLCBpc0RlbHRhWmVybywgYXhpc0RlbHRhRXF1YWxzLCBhc3BlY3RSYXRpbywgYm94RXF1YWxzIH0gZnJvbSAnLi4vZ2VvbWV0cnkvdXRpbHMubWpzJztcbmltcG9ydCB7IE5vZGVTdGFjayB9IGZyb20gJy4uL3NoYXJlZC9zdGFjay5tanMnO1xuaW1wb3J0IHsgYnVpbGRQcm9qZWN0aW9uVHJhbnNmb3JtIH0gZnJvbSAnLi4vc3R5bGVzL3RyYW5zZm9ybS5tanMnO1xuaW1wb3J0IHsgZWFjaEF4aXMgfSBmcm9tICcuLi91dGlscy9lYWNoLWF4aXMubWpzJztcbmltcG9ydCB7IEZsYXRUcmVlIH0gZnJvbSAnLi4vdXRpbHMvZmxhdC10cmVlLm1qcyc7XG5pbXBvcnQgeyBoYXNUcmFuc2Zvcm0sIGhhc1NjYWxlLCBoYXMyRFRyYW5zbGF0ZSB9IGZyb20gJy4uL3V0aWxzL2hhcy10cmFuc2Zvcm0ubWpzJztcbmltcG9ydCB7IGdsb2JhbFByb2plY3Rpb25TdGF0ZSB9IGZyb20gJy4vc3RhdGUubWpzJztcbmltcG9ydCB7IGZyYW1lLCBjYW5jZWxGcmFtZSwgZnJhbWVEYXRhLCBmcmFtZVN0ZXBzIH0gZnJvbSAnLi4vLi4vZnJhbWVsb29wL2ZyYW1lLm1qcyc7XG5cbmNvbnN0IG1ldHJpY3MgPSB7XG4gICAgbm9kZXM6IDAsXG4gICAgY2FsY3VsYXRlZFRhcmdldERlbHRhczogMCxcbiAgICBjYWxjdWxhdGVkUHJvamVjdGlvbnM6IDAsXG59O1xuY29uc3QgdHJhbnNmb3JtQXhlcyA9IFtcIlwiLCBcIlhcIiwgXCJZXCIsIFwiWlwiXTtcbi8qKlxuICogV2UgdXNlIDEwMDAgYXMgdGhlIGFuaW1hdGlvbiB0YXJnZXQgYXMgMC0xMDAwIG1hcHMgYmV0dGVyIHRvIHBpeGVscyB0aGFuIDAtMVxuICogd2hpY2ggaGFzIGEgbm90aWNlYWJsZSBkaWZmZXJlbmNlIGluIHNwcmluZyBhbmltYXRpb25zXG4gKi9cbmNvbnN0IGFuaW1hdGlvblRhcmdldCA9IDEwMDA7XG5sZXQgaWQgPSAwO1xuZnVuY3Rpb24gcmVzZXREaXN0b3J0aW5nVHJhbnNmb3JtKGtleSwgdmlzdWFsRWxlbWVudCwgdmFsdWVzLCBzaGFyZWRBbmltYXRpb25WYWx1ZXMpIHtcbiAgICBjb25zdCB7IGxhdGVzdFZhbHVlcyB9ID0gdmlzdWFsRWxlbWVudDtcbiAgICAvLyBSZWNvcmQgdGhlIGRpc3RvcnRpbmcgdHJhbnNmb3JtIGFuZCB0aGVuIHRlbXBvcmFyaWx5IHNldCBpdCB0byAwXG4gICAgaWYgKGxhdGVzdFZhbHVlc1trZXldKSB7XG4gICAgICAgIHZhbHVlc1trZXldID0gbGF0ZXN0VmFsdWVzW2tleV07XG4gICAgICAgIHZpc3VhbEVsZW1lbnQuc2V0U3RhdGljVmFsdWUoa2V5LCAwKTtcbiAgICAgICAgaWYgKHNoYXJlZEFuaW1hdGlvblZhbHVlcykge1xuICAgICAgICAgICAgc2hhcmVkQW5pbWF0aW9uVmFsdWVzW2tleV0gPSAwO1xuICAgICAgICB9XG4gICAgfVxufVxuZnVuY3Rpb24gY2FuY2VsVHJlZU9wdGltaXNlZFRyYW5zZm9ybUFuaW1hdGlvbnMocHJvamVjdGlvbk5vZGUpIHtcbiAgICBwcm9qZWN0aW9uTm9kZS5oYXNDaGVja2VkT3B0aW1pc2VkQXBwZWFyID0gdHJ1ZTtcbiAgICBpZiAocHJvamVjdGlvbk5vZGUucm9vdCA9PT0gcHJvamVjdGlvbk5vZGUpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCB7IHZpc3VhbEVsZW1lbnQgfSA9IHByb2plY3Rpb25Ob2RlLm9wdGlvbnM7XG4gICAgaWYgKCF2aXN1YWxFbGVtZW50KVxuICAgICAgICByZXR1cm47XG4gICAgY29uc3QgYXBwZWFySWQgPSBnZXRPcHRpbWlzZWRBcHBlYXJJZCh2aXN1YWxFbGVtZW50KTtcbiAgICBpZiAod2luZG93Lk1vdGlvbkhhc09wdGltaXNlZEFuaW1hdGlvbihhcHBlYXJJZCwgXCJ0cmFuc2Zvcm1cIikpIHtcbiAgICAgICAgY29uc3QgeyBsYXlvdXQsIGxheW91dElkIH0gPSBwcm9qZWN0aW9uTm9kZS5vcHRpb25zO1xuICAgICAgICB3aW5kb3cuTW90aW9uQ2FuY2VsT3B0aW1pc2VkQW5pbWF0aW9uKGFwcGVhcklkLCBcInRyYW5zZm9ybVwiLCBmcmFtZSwgIShsYXlvdXQgfHwgbGF5b3V0SWQpKTtcbiAgICB9XG4gICAgY29uc3QgeyBwYXJlbnQgfSA9IHByb2plY3Rpb25Ob2RlO1xuICAgIGlmIChwYXJlbnQgJiYgIXBhcmVudC5oYXNDaGVja2VkT3B0aW1pc2VkQXBwZWFyKSB7XG4gICAgICAgIGNhbmNlbFRyZWVPcHRpbWlzZWRUcmFuc2Zvcm1BbmltYXRpb25zKHBhcmVudCk7XG4gICAgfVxufVxuZnVuY3Rpb24gY3JlYXRlUHJvamVjdGlvbk5vZGUoeyBhdHRhY2hSZXNpemVMaXN0ZW5lciwgZGVmYXVsdFBhcmVudCwgbWVhc3VyZVNjcm9sbCwgY2hlY2tJc1Njcm9sbFJvb3QsIHJlc2V0VHJhbnNmb3JtLCB9KSB7XG4gICAgcmV0dXJuIGNsYXNzIFByb2plY3Rpb25Ob2RlIHtcbiAgICAgICAgY29uc3RydWN0b3IobGF0ZXN0VmFsdWVzID0ge30sIHBhcmVudCA9IGRlZmF1bHRQYXJlbnQ/LigpKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEEgdW5pcXVlIElEIGdlbmVyYXRlZCBmb3IgZXZlcnkgcHJvamVjdGlvbiBub2RlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmlkID0gaWQrKztcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQW4gaWQgdGhhdCByZXByZXNlbnRzIGEgdW5pcXVlIHNlc3Npb24gaW5zdGlnYXRlZCBieSBzdGFydFVwZGF0ZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JZCA9IDA7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkNvbW1pdElkID0gMDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQSBTZXQgY29udGFpbmluZyBhbGwgdGhpcyBjb21wb25lbnQncyBjaGlsZHJlbi4gVGhpcyBpcyB1c2VkIHRvIGl0ZXJhdGVcbiAgICAgICAgICAgICAqIHRocm91Z2ggdGhlIGNoaWxkcmVuLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIFRPRE86IFRoaXMgY291bGQgYmUgZmFzdGVyIHRvIGl0ZXJhdGUgYXMgYSBmbGF0IGFycmF5IHN0b3JlZCBvbiB0aGUgcm9vdCBub2RlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmNoaWxkcmVuID0gbmV3IFNldCgpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBPcHRpb25zIGZvciB0aGUgbm9kZS4gV2UgdXNlIHRoaXMgdG8gY29uZmlndXJlIHdoYXQga2luZCBvZiBsYXlvdXQgYW5pbWF0aW9uc1xuICAgICAgICAgICAgICogd2Ugc2hvdWxkIHBlcmZvcm0gKGlmIGFueSkuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMub3B0aW9ucyA9IHt9O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBXZSB1c2UgdGhpcyB0byBkZXRlY3Qgd2hlbiBpdHMgc2FmZSB0byBzaHV0IGRvd24gcGFydCBvZiBhIHByb2plY3Rpb24gdHJlZS5cbiAgICAgICAgICAgICAqIFdlIGhhdmUgdG8ga2VlcCBwcm9qZWN0aW5nIGNoaWxkcmVuIGZvciBzY2FsZSBjb3JyZWN0aW9uIGFuZCByZWxhdGl2ZSBwcm9qZWN0aW9uXG4gICAgICAgICAgICAgKiB1bnRpbCBhbGwgdGhlaXIgcGFyZW50cyBzdG9wIHBlcmZvcm1pbmcgbGF5b3V0IGFuaW1hdGlvbnMuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaXNUcmVlQW5pbWF0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzQW5pbWF0aW9uQmxvY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGbGFnIHRvIHRydWUgaWYgd2UgdGhpbmsgdGhpcyBsYXlvdXQgaGFzIGJlZW4gY2hhbmdlZC4gV2UgY2FuJ3QgYWx3YXlzIGtub3cgdGhpcyxcbiAgICAgICAgICAgICAqIGN1cnJlbnRseSB3ZSBzZXQgaXQgdG8gdHJ1ZSBldmVyeSB0aW1lIGEgY29tcG9uZW50IHJlbmRlcnMsIG9yIGlmIGl0IGhhcyBhIGxheW91dERlcGVuZGVuY3lcbiAgICAgICAgICAgICAqIGlmIHRoYXQgaGFzIGNoYW5nZWQgYmV0d2VlbiByZW5kZXJzLiBBZGRpdGlvbmFsbHksIGNvbXBvbmVudHMgY2FuIGJlIGdyb3VwZWQgYnkgTGF5b3V0R3JvdXBcbiAgICAgICAgICAgICAqIGFuZCBpZiBvbmUgbm9kZSBpcyBkaXJ0aWVkLCB0aGV5IGFsbCBhcmUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaXNMYXlvdXREaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGbGFnIHRvIHRydWUgaWYgd2UgdGhpbmsgdGhlIHByb2plY3Rpb24gY2FsY3VsYXRpb25zIGZvciB0aGlzIG5vZGUgbmVlZHNcbiAgICAgICAgICAgICAqIHJlY2FsY3VsYXRpbmcgYXMgYSByZXN1bHQgb2YgYW4gdXBkYXRlZCB0cmFuc2Zvcm0gb3IgbGF5b3V0IGFuaW1hdGlvbi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5pc1Byb2plY3Rpb25EaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGbGFnIHRvIHRydWUgaWYgdGhlIGxheW91dCAqb3IqIHRyYW5zZm9ybSBoYXMgY2hhbmdlZC4gVGhpcyB0aGVuIGdldHMgcHJvcGFnYXRlZFxuICAgICAgICAgICAgICogdGhyb3VnaG91dCB0aGUgcHJvamVjdGlvbiB0cmVlLCBmb3JjaW5nIGFueSBlbGVtZW50IGJlbG93IHRvIHJlY2FsY3VsYXRlIG9uIHRoZSBuZXh0IGZyYW1lLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZsYWcgdHJhbnNmb3JtIGRpcnR5LiBUaGlzIGdldHMgcHJvcGFnYXRlZCB0aHJvdWdob3V0IHRoZSB3aG9sZSB0cmVlIGJ1dCBpcyBvbmx5XG4gICAgICAgICAgICAgKiByZXNwZWN0ZWQgYnkgc2hhcmVkIG5vZGVzLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmlzVHJhbnNmb3JtRGlydHkgPSBmYWxzZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQmxvY2sgbGF5b3V0IHVwZGF0ZXMgZm9yIGluc3RhbnQgbGF5b3V0IHRyYW5zaXRpb25zIHRocm91Z2hvdXQgdGhlIHRyZWUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJsb2NrZWRCeVJlc2l6ZSA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBTZXQgdG8gdHJ1ZSBiZXR3ZWVuIHRoZSBzdGFydCBvZiB0aGUgZmlyc3QgYHdpbGxVcGRhdGVgIGNhbGwgYW5kIHRoZSBlbmQgb2YgdGhlIGBkaWRVcGRhdGVgXG4gICAgICAgICAgICAgKiBjYWxsLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhbiBTVkcgZWxlbWVudCB3ZSBjdXJyZW50bHkgZGlzYWJsZSBwcm9qZWN0aW9uIHRyYW5zZm9ybXNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5pc1NWRyA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGbGFnIHRvIHRydWUgKGR1cmluZyBwcm9tb3Rpb24pIGlmIGEgbm9kZSBkb2luZyBhbiBpbnN0YW50IGxheW91dCB0cmFuc2l0aW9uIG5lZWRzIHRvIHJlc2V0XG4gICAgICAgICAgICAgKiBpdHMgcHJvamVjdGlvbiBzdHlsZXMuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMubmVlZHNSZXNldCA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBGbGFncyB3aGV0aGVyIHRoaXMgbm9kZSBzaG91bGQgaGF2ZSBpdHMgdHJhbnNmb3JtIHJlc2V0IHByaW9yIHRvIG1lYXN1cmluZy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5zaG91bGRSZXNldFRyYW5zZm9ybSA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBTdG9yZSB3aGV0aGVyIHRoaXMgbm9kZSBoYXMgYmVlbiBjaGVja2VkIGZvciBvcHRpbWlzZWQgYXBwZWFyIGFuaW1hdGlvbnMuIEFzXG4gICAgICAgICAgICAgKiBlZmZlY3RzIGZpcmUgYm90dG9tLXVwLCBhbmQgd2Ugd2FudCB0byBsb29rIHVwIHRoZSB0cmVlIGZvciBhcHBlYXIgYW5pbWF0aW9ucyxcbiAgICAgICAgICAgICAqIHRoaXMgbWFrZXMgc3VyZSB3ZSBvbmx5IGNoZWNrIGVhY2ggcGF0aCBvbmNlLCBzdG9wcGluZyBhdCBub2RlcyB0aGF0XG4gICAgICAgICAgICAgKiBoYXZlIGFscmVhZHkgYmVlbiBjaGVja2VkLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmhhc0NoZWNrZWRPcHRpbWlzZWRBcHBlYXIgPSBmYWxzZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQW4gb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgY2FsY3VsYXRlZCBjb250ZXh0dWFsL2FjY3VtdWxhdGVkL3RyZWUgc2NhbGUuXG4gICAgICAgICAgICAgKiBUaGlzIHdpbGwgYmUgdXNlZCB0byBzY2FsZSBjYWxjdWxjYXRlZCBwcm9qZWN0aW9uIHRyYW5zZm9ybXMsIGFzIHRoZXNlIGFyZVxuICAgICAgICAgICAgICogY2FsY3VsYXRlZCBpbiBzY3JlZW4tc3BhY2UgYnV0IG5lZWQgdG8gYmUgc2NhbGVkIGZvciBlbGVtZW50cyB0byBsYXlvdXRseVxuICAgICAgICAgICAgICogbWFrZSBpdCB0byB0aGVpciBjYWxjdWxhdGVkIGRlc3RpbmF0aW9ucy5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBUT0RPOiBMYXp5LWluaXRcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy50cmVlU2NhbGUgPSB7IHg6IDEsIHk6IDEgfTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5ldmVudEhhbmRsZXJzID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgdGhpcy5oYXNUcmVlQW5pbWF0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0VmVyc2lvbiA9IDA7XG4gICAgICAgICAgICAvLyBOb3RlOiBDdXJyZW50bHkgb25seSBydW5uaW5nIG9uIHJvb3Qgbm9kZVxuICAgICAgICAgICAgdGhpcy51cGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVVcGRhdGUgPSAoKSA9PiB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uVXBkYXRlU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmNoZWNrVXBkYXRlRmFpbGVkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzVXBkYXRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1VwZGF0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJBbGxTbmFwc2hvdHMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBUaGlzIGlzIGEgbXVsdGktc3RlcCBwcm9jZXNzIGFzIHNoYXJlZCBub2RlcyBtaWdodCBiZSBvZiBkaWZmZXJlbnQgZGVwdGhzLiBOb2Rlc1xuICAgICAgICAgICAgICogYXJlIHNvcnRlZCBieSBkZXB0aCBvcmRlciwgc28gd2UgbmVlZCB0byByZXNvbHZlIHRoZSBlbnRpcmUgdHJlZSBiZWZvcmUgbW92aW5nIHRvXG4gICAgICAgICAgICAgKiB0aGUgbmV4dCBzdGVwLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVByb2plY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uVXBkYXRlU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogUmVzZXQgZGVidWcgY291bnRzLiBNYW51YWxseSByZXNldHRpbmcgcmF0aGVyIHRoYW4gY3JlYXRpbmcgYSBuZXdcbiAgICAgICAgICAgICAgICAgKiBvYmplY3QgZWFjaCBmcmFtZS5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAoc3RhdHNCdWZmZXIudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbWV0cmljcy5ub2RlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLmNhbGN1bGF0ZWRUYXJnZXREZWx0YXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldHJpY3MuY2FsY3VsYXRlZFByb2plY3Rpb25zID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKHByb3BhZ2F0ZURpcnR5Tm9kZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChyZXNvbHZlVGFyZ2V0RGVsdGEpO1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChjYWxjUHJvamVjdGlvbik7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGNsZWFuRGlydHlOb2Rlcyk7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRzQnVmZmVyLmFkZFByb2plY3Rpb25NZXRyaWNzKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRzQnVmZmVyLmFkZFByb2plY3Rpb25NZXRyaWNzKG1ldHJpY3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZyYW1lIGNhbGN1bGF0aW9uc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdCA9IDAuMDtcbiAgICAgICAgICAgIHRoaXMubGlua2VkUGFyZW50VmVyc2lvbiA9IDA7XG4gICAgICAgICAgICB0aGlzLmhhc1Byb2plY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25Qcm9ncmVzcyA9IDA7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNoYXJlZCBsYXlvdXRcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgLy8gVE9ETyBPbmx5IHJ1bm5pbmcgb24gcm9vdCBub2RlXG4gICAgICAgICAgICB0aGlzLnNoYXJlZE5vZGVzID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZXMgPSBsYXRlc3RWYWx1ZXM7XG4gICAgICAgICAgICB0aGlzLnJvb3QgPSBwYXJlbnQgPyBwYXJlbnQucm9vdCB8fCBwYXJlbnQgOiB0aGlzO1xuICAgICAgICAgICAgdGhpcy5wYXRoID0gcGFyZW50ID8gWy4uLnBhcmVudC5wYXRoLCBwYXJlbnRdIDogW107XG4gICAgICAgICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgICAgICAgICAgIHRoaXMuZGVwdGggPSBwYXJlbnQgPyBwYXJlbnQuZGVwdGggKyAxIDogMDtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXRoW2ldLnNob3VsZFJlc2V0VHJhbnNmb3JtID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnJvb3QgPT09IHRoaXMpXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlcyA9IG5ldyBGbGF0VHJlZSgpO1xuICAgICAgICB9XG4gICAgICAgIGFkZEV2ZW50TGlzdGVuZXIobmFtZSwgaGFuZGxlcikge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmV2ZW50SGFuZGxlcnMuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudEhhbmRsZXJzLnNldChuYW1lLCBuZXcgU3Vic2NyaXB0aW9uTWFuYWdlcigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV2ZW50SGFuZGxlcnMuZ2V0KG5hbWUpLmFkZChoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgICBub3RpZnlMaXN0ZW5lcnMobmFtZSwgLi4uYXJncykge1xuICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uTWFuYWdlciA9IHRoaXMuZXZlbnRIYW5kbGVycy5nZXQobmFtZSk7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb25NYW5hZ2VyICYmIHN1YnNjcmlwdGlvbk1hbmFnZXIubm90aWZ5KC4uLmFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGhhc0xpc3RlbmVycyhuYW1lKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ldmVudEhhbmRsZXJzLmhhcyhuYW1lKTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogTGlmZWN5Y2xlc1xuICAgICAgICAgKi9cbiAgICAgICAgbW91bnQoaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuaXNTVkcgPSBpc1NWR0VsZW1lbnQoaW5zdGFuY2UpICYmICFpc1NWR1NWR0VsZW1lbnQoaW5zdGFuY2UpO1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgICAgICAgICAgY29uc3QgeyBsYXlvdXRJZCwgbGF5b3V0LCB2aXN1YWxFbGVtZW50IH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAodmlzdWFsRWxlbWVudCAmJiAhdmlzdWFsRWxlbWVudC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5tb3VudChpbnN0YW5jZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnJvb3Qubm9kZXMuYWRkKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQuY2hpbGRyZW4uYWRkKHRoaXMpO1xuICAgICAgICAgICAgaWYgKHRoaXMucm9vdC5oYXNUcmVlQW5pbWF0ZWQgJiYgKGxheW91dCB8fCBsYXlvdXRJZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTGF5b3V0RGlydHkgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGF0dGFjaFJlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNhbmNlbERlbGF5O1xuICAgICAgICAgICAgICAgIGxldCBpbm5lcldpZHRoID0gMDtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNpemVVbmJsb2NrVXBkYXRlID0gKCkgPT4gKHRoaXMucm9vdC51cGRhdGVCbG9ja2VkQnlSZXNpemUgPSBmYWxzZSk7XG4gICAgICAgICAgICAgICAgLy8gU2V0IGluaXRpYWwgaW5uZXJXaWR0aCBpbiBhIGZyYW1lLnJlYWQgY2FsbGJhY2sgdG8gYmF0Y2ggdGhlIHJlYWRcbiAgICAgICAgICAgICAgICBmcmFtZS5yZWFkKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaW5uZXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGF0dGFjaFJlc2l6ZUxpc3RlbmVyKGluc3RhbmNlLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0lubmVyV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld0lubmVyV2lkdGggPT09IGlubmVyV2lkdGgpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIGlubmVyV2lkdGggPSBuZXdJbm5lcldpZHRoO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3QudXBkYXRlQmxvY2tlZEJ5UmVzaXplID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsRGVsYXkgJiYgY2FuY2VsRGVsYXkoKTtcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsRGVsYXkgPSBkZWxheShyZXNpemVVbmJsb2NrVXBkYXRlLCAyNTApO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsUHJvamVjdGlvblN0YXRlLmhhc0FuaW1hdGVkU2luY2VSZXNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdsb2JhbFByb2plY3Rpb25TdGF0ZS5oYXNBbmltYXRlZFNpbmNlUmVzaXplID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goZmluaXNoQW5pbWF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxheW91dElkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb290LnJlZ2lzdGVyU2hhcmVkTm9kZShsYXlvdXRJZCwgdGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBPbmx5IHJlZ2lzdGVyIHRoZSBoYW5kbGVyIGlmIGl0IHJlcXVpcmVzIGxheW91dCBhbmltYXRpb25cbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYW5pbWF0ZSAhPT0gZmFsc2UgJiZcbiAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgKGxheW91dElkIHx8IGxheW91dCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoXCJkaWRVcGRhdGVcIiwgKHsgZGVsdGEsIGhhc0xheW91dENoYW5nZWQsIGhhc1JlbGF0aXZlTGF5b3V0Q2hhbmdlZCwgbGF5b3V0OiBuZXdMYXlvdXQsIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNUcmVlQW5pbWF0aW9uQmxvY2tlZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpdmVUYXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogQ2hlY2sgaGVyZSBpZiBhbiBhbmltYXRpb24gZXhpc3RzXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxheW91dFRyYW5zaXRpb24gPSB0aGlzLm9wdGlvbnMudHJhbnNpdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5nZXREZWZhdWx0VHJhbnNpdGlvbigpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TGF5b3V0VHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBvbkxheW91dEFuaW1hdGlvblN0YXJ0LCBvbkxheW91dEFuaW1hdGlvbkNvbXBsZXRlLCB9ID0gdmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogVGhlIHRhcmdldCBsYXlvdXQgb2YgdGhlIGVsZW1lbnQgbWlnaHQgc3RheSB0aGUgc2FtZSxcbiAgICAgICAgICAgICAgICAgICAgICogYnV0IGl0cyBwb3NpdGlvbiByZWxhdGl2ZSB0byBpdHMgcGFyZW50IGhhcyBjaGFuZ2VkLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzVGFyZ2V0Q2hhbmdlZCA9ICF0aGlzLnRhcmdldExheW91dCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgIWJveEVxdWFsc1JvdW5kZWQodGhpcy50YXJnZXRMYXlvdXQsIG5ld0xheW91dCk7XG4gICAgICAgICAgICAgICAgICAgIC8qXG4gICAgICAgICAgICAgICAgICAgICAqIE5vdGU6IERpc2FibGVkIHRvIGZpeCByZWxhdGl2ZSBhbmltYXRpb25zIGFsd2F5cyB0cmlnZ2VyaW5nIG5ld1xuICAgICAgICAgICAgICAgICAgICAgKiBsYXlvdXQgYW5pbWF0aW9ucy4gSWYgdGhpcyBjYXVzZXMgZnVydGhlciBpc3N1ZXMsIHdlIGNhbiB0cnlcbiAgICAgICAgICAgICAgICAgICAgICogYSBkaWZmZXJlbnQgYXBwcm9hY2ggdG8gZGV0ZWN0aW5nIHJlbGF0aXZlIHRhcmdldCBjaGFuZ2VzLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgLy8gfHwgaGFzUmVsYXRpdmVMYXlvdXRDaGFuZ2VkXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBJZiB0aGUgbGF5b3V0IGhhc24ndCBzZWVtZWQgdG8gaGF2ZSBjaGFuZ2VkLCBpdCBtaWdodCBiZSB0aGF0IHRoZVxuICAgICAgICAgICAgICAgICAgICAgKiBlbGVtZW50IGlzIHZpc3VhbGx5IGluIHRoZSBzYW1lIHBsYWNlIGluIHRoZSBkb2N1bWVudCBidXQgaXRzIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAqIHJlbGF0aXZlIHRvIGl0cyBwYXJlbnQgaGFzIGluZGVlZCBjaGFuZ2VkLiBTbyBoZXJlIHdlIGNoZWNrIGZvciB0aGF0LlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzT25seVJlbGF0aXZlVGFyZ2V0Q2hhbmdlZCA9ICFoYXNMYXlvdXRDaGFuZ2VkICYmIGhhc1JlbGF0aXZlTGF5b3V0Q2hhbmdlZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sYXlvdXRSb290IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3VtZUZyb20gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc09ubHlSZWxhdGl2ZVRhcmdldENoYW5nZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIChoYXNMYXlvdXRDaGFuZ2VkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGhhc1RhcmdldENoYW5nZWQgfHwgIXRoaXMuY3VycmVudEFuaW1hdGlvbikpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXN1bWVGcm9tKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXN1bWluZ0Zyb20gPSB0aGlzLnJlc3VtZUZyb207XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXN1bWluZ0Zyb20ucmVzdW1pbmdGcm9tID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYW5pbWF0aW9uT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5nZXRWYWx1ZVRyYW5zaXRpb24obGF5b3V0VHJhbnNpdGlvbiwgXCJsYXlvdXRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25QbGF5OiBvbkxheW91dEFuaW1hdGlvblN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ29tcGxldGU6IG9uTGF5b3V0QW5pbWF0aW9uQ29tcGxldGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZpc3VhbEVsZW1lbnQuc2hvdWxkUmVkdWNlTW90aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmxheW91dFJvb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25PcHRpb25zLmRlbGF5ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25PcHRpb25zLnR5cGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRBbmltYXRpb24oYW5pbWF0aW9uT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFNldCBhbmltYXRpb24gb3JpZ2luIGFmdGVyIHN0YXJ0aW5nIGFuaW1hdGlvbiB0byBhdm9pZCBsYXlvdXQganVtcFxuICAgICAgICAgICAgICAgICAgICAgICAgICogY2F1c2VkIGJ5IHN0b3BwaW5nIHByZXZpb3VzIGxheW91dCBhbmltYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRBbmltYXRpb25PcmlnaW4oZGVsdGEsIGhhc09ubHlSZWxhdGl2ZVRhcmdldENoYW5nZWQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBJZiB0aGUgbGF5b3V0IGhhc24ndCBjaGFuZ2VkIGFuZCB3ZSBoYXZlIGFuIGFuaW1hdGlvbiB0aGF0IGhhc24ndCBzdGFydGVkIHlldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIGZpbmlzaCBpdCBpbW1lZGlhdGVseS4gT3RoZXJ3aXNlIGl0IHdpbGwgYmUgYW5pbWF0aW5nIGZyb20gYSBsb2NhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICogdGhhdCB3YXMgcHJvYmFibHkgbmV2ZXIgY29tbWl0dGVkIHRvIHNjcmVlbiBhbmQgbG9vayBsaWtlIGEganVtcHkgYm94LlxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0xheW91dENoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hBbmltYXRpb24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0xlYWQoKSAmJiB0aGlzLm9wdGlvbnMub25FeGl0Q29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMub25FeGl0Q29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldExheW91dCA9IG5ld0xheW91dDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB1bm1vdW50KCkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLmxheW91dElkICYmIHRoaXMud2lsbFVwZGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5yb290Lm5vZGVzLnJlbW92ZSh0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xuICAgICAgICAgICAgc3RhY2sgJiYgc3RhY2sucmVtb3ZlKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5wYXJlbnQgJiYgdGhpcy5wYXJlbnQuY2hpbGRyZW4uZGVsZXRlKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRIYW5kbGVycy5jbGVhcigpO1xuICAgICAgICAgICAgY2FuY2VsRnJhbWUodGhpcy51cGRhdGVQcm9qZWN0aW9uKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBvbmx5IG9uIHRoZSByb290XG4gICAgICAgIGJsb2NrVXBkYXRlKCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVNYW51YWxseUJsb2NrZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHVuYmxvY2tVcGRhdGUoKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1hbnVhbGx5QmxvY2tlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlzVXBkYXRlQmxvY2tlZCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZU1hbnVhbGx5QmxvY2tlZCB8fCB0aGlzLnVwZGF0ZUJsb2NrZWRCeVJlc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICBpc1RyZWVBbmltYXRpb25CbG9ja2VkKCkge1xuICAgICAgICAgICAgcmV0dXJuICh0aGlzLmlzQW5pbWF0aW9uQmxvY2tlZCB8fFxuICAgICAgICAgICAgICAgICh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5pc1RyZWVBbmltYXRpb25CbG9ja2VkKCkpIHx8XG4gICAgICAgICAgICAgICAgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5vdGU6IGN1cnJlbnRseSBvbmx5IHJ1bm5pbmcgb24gcm9vdCBub2RlXG4gICAgICAgIHN0YXJ0VXBkYXRlKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNVcGRhdGVCbG9ja2VkKCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5pc1VwZGF0aW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubm9kZXMgJiYgdGhpcy5ub2Rlcy5mb3JFYWNoKHJlc2V0U2tld0FuZFJvdGF0aW9uKTtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uSWQrKztcbiAgICAgICAgfVxuICAgICAgICBnZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICAgICAgcmV0dXJuIHZpc3VhbEVsZW1lbnQgJiYgdmlzdWFsRWxlbWVudC5nZXRQcm9wcygpLnRyYW5zZm9ybVRlbXBsYXRlO1xuICAgICAgICB9XG4gICAgICAgIHdpbGxVcGRhdGUoc2hvdWxkTm90aWZ5TGlzdGVuZXJzID0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5yb290Lmhhc1RyZWVBbmltYXRlZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5yb290LmlzVXBkYXRlQmxvY2tlZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLm9uRXhpdENvbXBsZXRlICYmIHRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UncmUgcnVubmluZyBvcHRpbWlzZWQgYXBwZWFyIGFuaW1hdGlvbnMgdGhlbiB0aGVzZSBtdXN0IGJlXG4gICAgICAgICAgICAgKiBjYW5jZWxsZWQgYmVmb3JlIG1lYXN1cmluZyB0aGUgRE9NLiBUaGlzIGlzIHNvIHdlIGNhbiBtZWFzdXJlXG4gICAgICAgICAgICAgKiB0aGUgdHJ1ZSBsYXlvdXQgb2YgdGhlIGVsZW1lbnQgcmF0aGVyIHRoYW4gdGhlIFdBQVBJIGFuaW1hdGlvblxuICAgICAgICAgICAgICogd2hpY2ggd2lsbCBiZSB1bmFmZmVjdGVkIGJ5IHRoZSByZXNldFNrZXdBbmRSb3RhdGUgc3RlcC5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBOb3RlOiBUaGlzIGlzIGEgRE9NIHdyaXRlLiBXb3JzdCBjYXNlIHNjZW5hcmlvIGlzIHRoaXMgaXMgc2FuZHdpY2hlZFxuICAgICAgICAgICAgICogYmV0d2VlbiBvdGhlciBzbmFwc2hvdCByZWFkcyB3aGljaCB3aWxsIGNhdXNlIHVubmVjZXNzYXJ5IHN0eWxlIHJlY2FsY3VsYXRpb25zLlxuICAgICAgICAgICAgICogVGhpcyBoYXMgdG8gaGFwcGVuIGhlcmUgdGhvdWdoLCBhcyB3ZSBkb24ndCB5ZXQga25vdyB3aGljaCBub2RlcyB3aWxsIG5lZWRcbiAgICAgICAgICAgICAqIHNuYXBzaG90cyBpbiBzdGFydFVwZGF0ZSgpLCBidXQgd2Ugb25seSB3YW50IHRvIGNhbmNlbCBvcHRpbWlzZWQgYW5pbWF0aW9uc1xuICAgICAgICAgICAgICogaWYgYSBsYXlvdXQgYW5pbWF0aW9uIG1lYXN1cmVtZW50IGlzIGFjdHVhbGx5IGdvaW5nIHRvIGJlIGFmZmVjdGVkIGJ5IHRoZW0uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh3aW5kb3cuTW90aW9uQ2FuY2VsT3B0aW1pc2VkQW5pbWF0aW9uICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuaGFzQ2hlY2tlZE9wdGltaXNlZEFwcGVhcikge1xuICAgICAgICAgICAgICAgIGNhbmNlbFRyZWVPcHRpbWlzZWRUcmFuc2Zvcm1BbmltYXRpb25zKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgIXRoaXMucm9vdC5pc1VwZGF0aW5nICYmIHRoaXMucm9vdC5zdGFydFVwZGF0ZSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNMYXlvdXREaXJ0eSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLmlzTGF5b3V0RGlydHkgPSB0cnVlO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5wYXRoW2ldO1xuICAgICAgICAgICAgICAgIG5vZGUuc2hvdWxkUmVzZXRUcmFuc2Zvcm0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5vZGUudXBkYXRlU2Nyb2xsKFwic25hcHNob3RcIik7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUub3B0aW9ucy5sYXlvdXRSb290KSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUud2lsbFVwZGF0ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyBsYXlvdXRJZCwgbGF5b3V0IH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAobGF5b3V0SWQgPT09IHVuZGVmaW5lZCAmJiAhbGF5b3V0KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVRlbXBsYXRlID0gdGhpcy5nZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5wcmV2VHJhbnNmb3JtVGVtcGxhdGVWYWx1ZSA9IHRyYW5zZm9ybVRlbXBsYXRlXG4gICAgICAgICAgICAgICAgPyB0cmFuc2Zvcm1UZW1wbGF0ZSh0aGlzLmxhdGVzdFZhbHVlcywgXCJcIilcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU25hcHNob3QoKTtcbiAgICAgICAgICAgIHNob3VsZE5vdGlmeUxpc3RlbmVycyAmJiB0aGlzLm5vdGlmeUxpc3RlbmVycyhcIndpbGxVcGRhdGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlKCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZVdhc0Jsb2NrZWQgPSB0aGlzLmlzVXBkYXRlQmxvY2tlZCgpO1xuICAgICAgICAgICAgLy8gV2hlbiBkb2luZyBhbiBpbnN0YW50IHRyYW5zaXRpb24sIHdlIHNraXAgdGhlIGxheW91dCB1cGRhdGUsXG4gICAgICAgICAgICAvLyBidXQgc2hvdWxkIHN0aWxsIGNsZWFuIHVwIHRoZSBtZWFzdXJlbWVudHMgc28gdGhhdCB0aGUgbmV4dFxuICAgICAgICAgICAgLy8gc25hcHNob3QgY291bGQgYmUgdGFrZW4gY29ycmVjdGx5LlxuICAgICAgICAgICAgaWYgKHVwZGF0ZVdhc0Jsb2NrZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVuYmxvY2tVcGRhdGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQWxsU25hcHNob3RzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGNsZWFyTWVhc3VyZW1lbnRzKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYSByZXBlYXQgb2YgZGlkVXBkYXRlIHRoZW4gaWdub3JlIHRoZSBhbmltYXRpb24uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbklkIDw9IHRoaXMuYW5pbWF0aW9uQ29tbWl0SWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goY2xlYXJJc0xheW91dERpcnR5KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkNvbW1pdElkID0gdGhpcy5hbmltYXRpb25JZDtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1VwZGF0aW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGNsZWFySXNMYXlvdXREaXJ0eSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBXcml0ZVxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChyZXNldFRyYW5zZm9ybVN0eWxlKTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBSZWFkID09PT09PT09PT09PT09PT09PVxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBsYXlvdXQgbWVhc3VyZW1lbnRzIG9mIHVwZGF0ZWQgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2godXBkYXRlTGF5b3V0KTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBXcml0ZVxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIC8vIE5vdGlmeSBsaXN0ZW5lcnMgdGhhdCB0aGUgbGF5b3V0IGlzIHVwZGF0ZWRcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2gobm90aWZ5TGF5b3V0VXBkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2xlYXJBbGxTbmFwc2hvdHMoKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTWFudWFsbHkgZmx1c2ggYW55IHBlbmRpbmcgdXBkYXRlcy4gSWRlYWxseVxuICAgICAgICAgICAgICogd2UgY291bGQgbGVhdmUgdGhpcyB0byB0aGUgZm9sbG93aW5nIHJlcXVlc3RBbmltYXRpb25GcmFtZSBidXQgdGhpcyBzZWVtc1xuICAgICAgICAgICAgICogdG8gbGVhdmUgYSBmbGFzaCBvZiBpbmNvcnJlY3RseSBzdHlsZWQgY29udGVudC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3Qgbm93ID0gdGltZS5ub3coKTtcbiAgICAgICAgICAgIGZyYW1lRGF0YS5kZWx0YSA9IGNsYW1wKDAsIDEwMDAgLyA2MCwgbm93IC0gZnJhbWVEYXRhLnRpbWVzdGFtcCk7XG4gICAgICAgICAgICBmcmFtZURhdGEudGltZXN0YW1wID0gbm93O1xuICAgICAgICAgICAgZnJhbWVEYXRhLmlzUHJvY2Vzc2luZyA9IHRydWU7XG4gICAgICAgICAgICBmcmFtZVN0ZXBzLnVwZGF0ZS5wcm9jZXNzKGZyYW1lRGF0YSk7XG4gICAgICAgICAgICBmcmFtZVN0ZXBzLnByZVJlbmRlci5wcm9jZXNzKGZyYW1lRGF0YSk7XG4gICAgICAgICAgICBmcmFtZVN0ZXBzLnJlbmRlci5wcm9jZXNzKGZyYW1lRGF0YSk7XG4gICAgICAgICAgICBmcmFtZURhdGEuaXNQcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZGlkVXBkYXRlKCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnVwZGF0ZVNjaGVkdWxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBtaWNyb3Rhc2sucmVhZCh0aGlzLnNjaGVkdWxlVXBkYXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjbGVhckFsbFNuYXBzaG90cygpIHtcbiAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChjbGVhclNuYXBzaG90KTtcbiAgICAgICAgICAgIHRoaXMuc2hhcmVkTm9kZXMuZm9yRWFjaChyZW1vdmVMZWFkU25hcHNob3RzKTtcbiAgICAgICAgfVxuICAgICAgICBzY2hlZHVsZVVwZGF0ZVByb2plY3Rpb24oKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMucHJvamVjdGlvblVwZGF0ZVNjaGVkdWxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvamVjdGlvblVwZGF0ZVNjaGVkdWxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgZnJhbWUucHJlUmVuZGVyKHRoaXMudXBkYXRlUHJvamVjdGlvbiwgZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNjaGVkdWxlQ2hlY2tBZnRlclVubW91bnQoKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoZSB1bm1vdW50aW5nIG5vZGUgaXMgaW4gYSBsYXlvdXRHcm91cCBhbmQgZGlkIHRyaWdnZXIgYSB3aWxsVXBkYXRlLFxuICAgICAgICAgICAgICogd2UgbWFudWFsbHkgY2FsbCBkaWRVcGRhdGUgdG8gZ2l2ZSBhIGNoYW5jZSB0byB0aGUgc2libGluZ3MgdG8gYW5pbWF0ZS5cbiAgICAgICAgICAgICAqIE90aGVyd2lzZSwgY2xlYW51cCBhbGwgc25hcHNob3RzIHRvIHByZXZlbnRzIGZ1dHVyZSBub2RlcyBmcm9tIHJldXNpbmcgdGhlbS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZnJhbWUucG9zdFJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNMYXlvdXREaXJ0eSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3QuZGlkVXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJvb3QuY2hlY2tVcGRhdGVGYWlsZWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogVXBkYXRlIG1lYXN1cmVtZW50c1xuICAgICAgICAgKi9cbiAgICAgICAgdXBkYXRlU25hcHNob3QoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zbmFwc2hvdCB8fCAhdGhpcy5pbnN0YW5jZSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnNuYXBzaG90ID0gdGhpcy5tZWFzdXJlKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5zbmFwc2hvdCAmJlxuICAgICAgICAgICAgICAgICFjYWxjTGVuZ3RoKHRoaXMuc25hcHNob3QubWVhc3VyZWRCb3gueCkgJiZcbiAgICAgICAgICAgICAgICAhY2FsY0xlbmd0aCh0aGlzLnNuYXBzaG90Lm1lYXN1cmVkQm94LnkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zbmFwc2hvdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVMYXlvdXQoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTY3JvbGwoKTtcbiAgICAgICAgICAgIGlmICghKHRoaXMub3B0aW9ucy5hbHdheXNNZWFzdXJlTGF5b3V0ICYmIHRoaXMuaXNMZWFkKCkpICYmXG4gICAgICAgICAgICAgICAgIXRoaXMuaXNMYXlvdXREaXJ0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2hlbiBhIG5vZGUgaXMgbW91bnRlZCwgaXQgc2ltcGx5IHJlc3VtZXMgZnJvbSB0aGUgcHJldkxlYWQnc1xuICAgICAgICAgICAgICogc25hcHNob3QgaW5zdGVhZCBvZiB0YWtpbmcgYSBuZXcgb25lLCBidXQgdGhlIGFuY2VzdG9ycyBzY3JvbGxcbiAgICAgICAgICAgICAqIG1pZ2h0IGhhdmUgdXBkYXRlZCB3aGlsZSB0aGUgcHJldkxlYWQgaXMgdW5tb3VudGVkLiBXZSBuZWVkIHRvXG4gICAgICAgICAgICAgKiB1cGRhdGUgdGhlIHNjcm9sbCBhZ2FpbiB0byBtYWtlIHN1cmUgdGhlIGxheW91dCB3ZSBtZWFzdXJlIGlzXG4gICAgICAgICAgICAgKiB1cCB0byBkYXRlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy5yZXN1bWVGcm9tICYmICF0aGlzLnJlc3VtZUZyb20uaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5wYXRoW2ldO1xuICAgICAgICAgICAgICAgICAgICBub2RlLnVwZGF0ZVNjcm9sbCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHByZXZMYXlvdXQgPSB0aGlzLmxheW91dDtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0ID0gdGhpcy5tZWFzdXJlKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0VmVyc2lvbisrO1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRDb3JyZWN0ZWQgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIHRoaXMuaXNMYXlvdXREaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uRGVsdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeUxpc3RlbmVycyhcIm1lYXN1cmVcIiwgdGhpcy5sYXlvdXQubGF5b3V0Qm94KTtcbiAgICAgICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICAgICAgdmlzdWFsRWxlbWVudCAmJlxuICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQubm90aWZ5KFwiTGF5b3V0TWVhc3VyZVwiLCB0aGlzLmxheW91dC5sYXlvdXRCb3gsIHByZXZMYXlvdXQgPyBwcmV2TGF5b3V0LmxheW91dEJveCA6IHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICAgICAgdXBkYXRlU2Nyb2xsKHBoYXNlID0gXCJtZWFzdXJlXCIpIHtcbiAgICAgICAgICAgIGxldCBuZWVkc01lYXN1cmVtZW50ID0gQm9vbGVhbih0aGlzLm9wdGlvbnMubGF5b3V0U2Nyb2xsICYmIHRoaXMuaW5zdGFuY2UpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2Nyb2xsICYmXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGwuYW5pbWF0aW9uSWQgPT09IHRoaXMucm9vdC5hbmltYXRpb25JZCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsLnBoYXNlID09PSBwaGFzZSkge1xuICAgICAgICAgICAgICAgIG5lZWRzTWVhc3VyZW1lbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChuZWVkc01lYXN1cmVtZW50ICYmIHRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1Jvb3QgPSBjaGVja0lzU2Nyb2xsUm9vdCh0aGlzLmluc3RhbmNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uSWQ6IHRoaXMucm9vdC5hbmltYXRpb25JZCxcbiAgICAgICAgICAgICAgICAgICAgcGhhc2UsXG4gICAgICAgICAgICAgICAgICAgIGlzUm9vdCxcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiBtZWFzdXJlU2Nyb2xsKHRoaXMuaW5zdGFuY2UpLFxuICAgICAgICAgICAgICAgICAgICB3YXNSb290OiB0aGlzLnNjcm9sbCA/IHRoaXMuc2Nyb2xsLmlzUm9vdCA6IGlzUm9vdCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc2V0VHJhbnNmb3JtKCkge1xuICAgICAgICAgICAgaWYgKCFyZXNldFRyYW5zZm9ybSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBpc1Jlc2V0UmVxdWVzdGVkID0gdGhpcy5pc0xheW91dERpcnR5IHx8XG4gICAgICAgICAgICAgICAgdGhpcy5zaG91bGRSZXNldFRyYW5zZm9ybSB8fFxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5hbHdheXNNZWFzdXJlTGF5b3V0O1xuICAgICAgICAgICAgY29uc3QgaGFzUHJvamVjdGlvbiA9IHRoaXMucHJvamVjdGlvbkRlbHRhICYmICFpc0RlbHRhWmVybyh0aGlzLnByb2plY3Rpb25EZWx0YSk7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1UZW1wbGF0ZSA9IHRoaXMuZ2V0VHJhbnNmb3JtVGVtcGxhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVRlbXBsYXRlVmFsdWUgPSB0cmFuc2Zvcm1UZW1wbGF0ZVxuICAgICAgICAgICAgICAgID8gdHJhbnNmb3JtVGVtcGxhdGUodGhpcy5sYXRlc3RWYWx1ZXMsIFwiXCIpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1UZW1wbGF0ZUhhc0NoYW5nZWQgPSB0cmFuc2Zvcm1UZW1wbGF0ZVZhbHVlICE9PSB0aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlO1xuICAgICAgICAgICAgaWYgKGlzUmVzZXRSZXF1ZXN0ZWQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RhbmNlICYmXG4gICAgICAgICAgICAgICAgKGhhc1Byb2plY3Rpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgaGFzVHJhbnNmb3JtKHRoaXMubGF0ZXN0VmFsdWVzKSB8fFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1UZW1wbGF0ZUhhc0NoYW5nZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzZXRUcmFuc2Zvcm0odGhpcy5pbnN0YW5jZSwgdHJhbnNmb3JtVGVtcGxhdGVWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG91bGRSZXNldFRyYW5zZm9ybSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZW5kZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBtZWFzdXJlKHJlbW92ZVRyYW5zZm9ybSA9IHRydWUpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZ2VCb3ggPSB0aGlzLm1lYXN1cmVQYWdlQm94KCk7XG4gICAgICAgICAgICBsZXQgbGF5b3V0Qm94ID0gdGhpcy5yZW1vdmVFbGVtZW50U2Nyb2xsKHBhZ2VCb3gpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBNZWFzdXJlbWVudHMgdGFrZW4gZHVyaW5nIHRoZSBwcmUtcmVuZGVyIHN0YWdlXG4gICAgICAgICAgICAgKiBzdGlsbCBoYXZlIHRyYW5zZm9ybXMgYXBwbGllZCBzbyB3ZSByZW1vdmUgdGhlbVxuICAgICAgICAgICAgICogdmlhIGNhbGN1bGF0aW9uLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAocmVtb3ZlVHJhbnNmb3JtKSB7XG4gICAgICAgICAgICAgICAgbGF5b3V0Qm94ID0gdGhpcy5yZW1vdmVUcmFuc2Zvcm0obGF5b3V0Qm94KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvdW5kQm94KGxheW91dEJveCk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbklkOiB0aGlzLnJvb3QuYW5pbWF0aW9uSWQsXG4gICAgICAgICAgICAgICAgbWVhc3VyZWRCb3g6IHBhZ2VCb3gsXG4gICAgICAgICAgICAgICAgbGF5b3V0Qm94LFxuICAgICAgICAgICAgICAgIGxhdGVzdFZhbHVlczoge30sXG4gICAgICAgICAgICAgICAgc291cmNlOiB0aGlzLmlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBtZWFzdXJlUGFnZUJveCgpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICAgICAgaWYgKCF2aXN1YWxFbGVtZW50KVxuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIGNvbnN0IGJveCA9IHZpc3VhbEVsZW1lbnQubWVhc3VyZVZpZXdwb3J0Qm94KCk7XG4gICAgICAgICAgICBjb25zdCB3YXNJblNjcm9sbFJvb3QgPSB0aGlzLnNjcm9sbD8ud2FzUm9vdCB8fCB0aGlzLnBhdGguc29tZShjaGVja05vZGVXYXNTY3JvbGxSb290KTtcbiAgICAgICAgICAgIGlmICghd2FzSW5TY3JvbGxSb290KSB7XG4gICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHZpZXdwb3J0IHNjcm9sbCB0byBnaXZlIHBhZ2UtcmVsYXRpdmUgY29vcmRpbmF0ZXNcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNjcm9sbCB9ID0gdGhpcy5yb290O1xuICAgICAgICAgICAgICAgIGlmIChzY3JvbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlQXhpcyhib3gueCwgc2Nyb2xsLm9mZnNldC54KTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlQXhpcyhib3gueSwgc2Nyb2xsLm9mZnNldC55KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYm94O1xuICAgICAgICB9XG4gICAgICAgIHJlbW92ZUVsZW1lbnRTY3JvbGwoYm94KSB7XG4gICAgICAgICAgICBjb25zdCBib3hXaXRob3V0U2Nyb2xsID0gY3JlYXRlQm94KCk7XG4gICAgICAgICAgICBjb3B5Qm94SW50byhib3hXaXRob3V0U2Nyb2xsLCBib3gpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2Nyb2xsPy53YXNSb290KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJveFdpdGhvdXRTY3JvbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFBlcmZvcm1hbmNlIFRPRE86IEtlZXAgYSBjdW11bGF0aXZlIHNjcm9sbCBvZmZzZXQgZG93biB0aGUgdHJlZVxuICAgICAgICAgICAgICogcmF0aGVyIHRoYW4gbG9vcCBiYWNrIHVwIHRoZSBwYXRoLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLnBhdGhbaV07XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzY3JvbGwsIG9wdGlvbnMgfSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgaWYgKG5vZGUgIT09IHRoaXMucm9vdCAmJiBzY3JvbGwgJiYgb3B0aW9ucy5sYXlvdXRTY3JvbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYSBuZXcgc2Nyb2xsIHJvb3QsIHdlIHdhbnQgdG8gcmVtb3ZlIGFsbCBwcmV2aW91cyBzY3JvbGxzXG4gICAgICAgICAgICAgICAgICAgICAqIGZyb20gdGhlIHZpZXdwb3J0IGJveC5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGwud2FzUm9vdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29weUJveEludG8oYm94V2l0aG91dFNjcm9sbCwgYm94KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBeGlzKGJveFdpdGhvdXRTY3JvbGwueCwgc2Nyb2xsLm9mZnNldC54KTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlQXhpcyhib3hXaXRob3V0U2Nyb2xsLnksIHNjcm9sbC5vZmZzZXQueSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGJveFdpdGhvdXRTY3JvbGw7XG4gICAgICAgIH1cbiAgICAgICAgYXBwbHlUcmFuc2Zvcm0oYm94LCB0cmFuc2Zvcm1Pbmx5ID0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHdpdGhUcmFuc2Zvcm1zID0gY3JlYXRlQm94KCk7XG4gICAgICAgICAgICBjb3B5Qm94SW50byh3aXRoVHJhbnNmb3JtcywgYm94KTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMucGF0aFtpXTtcbiAgICAgICAgICAgICAgICBpZiAoIXRyYW5zZm9ybU9ubHkgJiZcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5vcHRpb25zLmxheW91dFNjcm9sbCAmJlxuICAgICAgICAgICAgICAgICAgICBub2RlLnNjcm9sbCAmJlxuICAgICAgICAgICAgICAgICAgICBub2RlICE9PSBub2RlLnJvb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtQm94KHdpdGhUcmFuc2Zvcm1zLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB4OiAtbm9kZS5zY3JvbGwub2Zmc2V0LngsXG4gICAgICAgICAgICAgICAgICAgICAgICB5OiAtbm9kZS5zY3JvbGwub2Zmc2V0LnksXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIWhhc1RyYW5zZm9ybShub2RlLmxhdGVzdFZhbHVlcykpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybUJveCh3aXRoVHJhbnNmb3Jtcywgbm9kZS5sYXRlc3RWYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGhhc1RyYW5zZm9ybSh0aGlzLmxhdGVzdFZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1Cb3god2l0aFRyYW5zZm9ybXMsIHRoaXMubGF0ZXN0VmFsdWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB3aXRoVHJhbnNmb3JtcztcbiAgICAgICAgfVxuICAgICAgICByZW1vdmVUcmFuc2Zvcm0oYm94KSB7XG4gICAgICAgICAgICBjb25zdCBib3hXaXRob3V0VHJhbnNmb3JtID0gY3JlYXRlQm94KCk7XG4gICAgICAgICAgICBjb3B5Qm94SW50byhib3hXaXRob3V0VHJhbnNmb3JtLCBib3gpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5wYXRoW2ldO1xuICAgICAgICAgICAgICAgIGlmICghbm9kZS5pbnN0YW5jZSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgaWYgKCFoYXNUcmFuc2Zvcm0obm9kZS5sYXRlc3RWYWx1ZXMpKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBoYXNTY2FsZShub2RlLmxhdGVzdFZhbHVlcykgJiYgbm9kZS51cGRhdGVTbmFwc2hvdCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZUJveCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVCb3ggPSBub2RlLm1lYXN1cmVQYWdlQm94KCk7XG4gICAgICAgICAgICAgICAgY29weUJveEludG8oc291cmNlQm94LCBub2RlQm94KTtcbiAgICAgICAgICAgICAgICByZW1vdmVCb3hUcmFuc2Zvcm1zKGJveFdpdGhvdXRUcmFuc2Zvcm0sIG5vZGUubGF0ZXN0VmFsdWVzLCBub2RlLnNuYXBzaG90ID8gbm9kZS5zbmFwc2hvdC5sYXlvdXRCb3ggOiB1bmRlZmluZWQsIHNvdXJjZUJveCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGFzVHJhbnNmb3JtKHRoaXMubGF0ZXN0VmFsdWVzKSkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUJveFRyYW5zZm9ybXMoYm94V2l0aG91dFRyYW5zZm9ybSwgdGhpcy5sYXRlc3RWYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGJveFdpdGhvdXRUcmFuc2Zvcm07XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGFyZ2V0RGVsdGEoZGVsdGEpIHtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0RGVsdGEgPSBkZWx0YTtcbiAgICAgICAgICAgIHRoaXMucm9vdC5zY2hlZHVsZVVwZGF0ZVByb2plY3Rpb24oKTtcbiAgICAgICAgICAgIHRoaXMuaXNQcm9qZWN0aW9uRGlydHkgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHNldE9wdGlvbnMob3B0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0ge1xuICAgICAgICAgICAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGNyb3NzZmFkZTogb3B0aW9ucy5jcm9zc2ZhZGUgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuY3Jvc3NmYWRlIDogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY2xlYXJNZWFzdXJlbWVudHMoKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5zbmFwc2hvdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMucHJldlRyYW5zZm9ybVRlbXBsYXRlVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnRhcmdldERlbHRhID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy50YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLmlzTGF5b3V0RGlydHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBmb3JjZVJlbGF0aXZlUGFyZW50VG9SZXNvbHZlVGFyZ2V0KCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnJlbGF0aXZlUGFyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhlIHBhcmVudCB0YXJnZXQgaXNuJ3QgdXAtdG8tZGF0ZSwgZm9yY2UgaXQgdG8gdXBkYXRlLlxuICAgICAgICAgICAgICogVGhpcyBpcyBhbiB1bmZvcnR1bmF0ZSBkZS1vcHRpbWlzYXRpb24gYXMgaXQgbWVhbnMgYW55IHVwZGF0aW5nIHJlbGF0aXZlXG4gICAgICAgICAgICAgKiBwcm9qZWN0aW9uIHdpbGwgY2F1c2UgYWxsIHRoZSByZWxhdGl2ZSBwYXJlbnRzIHRvIHJlY2FsY3VsYXRlIGJhY2tcbiAgICAgICAgICAgICAqIHVwIHRoZSB0cmVlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy5yZWxhdGl2ZVBhcmVudC5yZXNvbHZlZFJlbGF0aXZlVGFyZ2V0QXQgIT09XG4gICAgICAgICAgICAgICAgZnJhbWVEYXRhLnRpbWVzdGFtcCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpdmVQYXJlbnQucmVzb2x2ZVRhcmdldERlbHRhKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc29sdmVUYXJnZXREZWx0YShmb3JjZVJlY2FsY3VsYXRpb24gPSBmYWxzZSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBPbmNlIHRoZSBkaXJ0eSBzdGF0dXMgb2Ygbm9kZXMgaGFzIGJlZW4gc3ByZWFkIHRocm91Z2ggdGhlIHRyZWUsIHdlIGFsc29cbiAgICAgICAgICAgICAqIG5lZWQgdG8gY2hlY2sgaWYgd2UgaGF2ZSBhIHNoYXJlZCBub2RlIG9mIGEgZGlmZmVyZW50IGRlcHRoIHRoYXQgaGFzIGl0c2VsZlxuICAgICAgICAgICAgICogYmVlbiBkaXJ0aWVkLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBsZWFkID0gdGhpcy5nZXRMZWFkKCk7XG4gICAgICAgICAgICB0aGlzLmlzUHJvamVjdGlvbkRpcnR5IHx8ICh0aGlzLmlzUHJvamVjdGlvbkRpcnR5ID0gbGVhZC5pc1Byb2plY3Rpb25EaXJ0eSk7XG4gICAgICAgICAgICB0aGlzLmlzVHJhbnNmb3JtRGlydHkgfHwgKHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eSA9IGxlYWQuaXNUcmFuc2Zvcm1EaXJ0eSk7XG4gICAgICAgICAgICB0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5IHx8ICh0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5ID0gbGVhZC5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eSk7XG4gICAgICAgICAgICBjb25zdCBpc1NoYXJlZCA9IEJvb2xlYW4odGhpcy5yZXN1bWluZ0Zyb20pIHx8IHRoaXMgIT09IGxlYWQ7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFdlIGRvbid0IHVzZSB0cmFuc2Zvcm0gZm9yIHRoaXMgc3RlcCBvZiBwcm9jZXNzaW5nIHNvIHdlIGRvbid0XG4gICAgICAgICAgICAgKiBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgYW55IG5vZGVzIGhhdmUgY2hhbmdlZCB0cmFuc2Zvcm0uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGNhblNraXAgPSAhKGZvcmNlUmVjYWxjdWxhdGlvbiB8fFxuICAgICAgICAgICAgICAgIChpc1NoYXJlZCAmJiB0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5KSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuaXNQcm9qZWN0aW9uRGlydHkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudD8uaXNQcm9qZWN0aW9uRGlydHkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmF0dGVtcHRUb1Jlc29sdmVSZWxhdGl2ZVRhcmdldCB8fFxuICAgICAgICAgICAgICAgIHRoaXMucm9vdC51cGRhdGVCbG9ja2VkQnlSZXNpemUpO1xuICAgICAgICAgICAgaWYgKGNhblNraXApXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgeyBsYXlvdXQsIGxheW91dElkIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlIGhhdmUgbm8gbGF5b3V0LCB3ZSBjYW4ndCBwZXJmb3JtIHByb2plY3Rpb24sIHNvIGVhcmx5IHJldHVyblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoIXRoaXMubGF5b3V0IHx8ICEobGF5b3V0IHx8IGxheW91dElkKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdCA9IGZyYW1lRGF0YS50aW1lc3RhbXA7XG4gICAgICAgICAgICBjb25zdCByZWxhdGl2ZVBhcmVudCA9IHRoaXMuZ2V0Q2xvc2VzdFByb2plY3RpbmdQYXJlbnQoKTtcbiAgICAgICAgICAgIGlmIChyZWxhdGl2ZVBhcmVudCAmJlxuICAgICAgICAgICAgICAgIHRoaXMubGlua2VkUGFyZW50VmVyc2lvbiAhPT0gcmVsYXRpdmVQYXJlbnQubGF5b3V0VmVyc2lvbiAmJlxuICAgICAgICAgICAgICAgICFyZWxhdGl2ZVBhcmVudC5vcHRpb25zLmxheW91dFJvb3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZVJlbGF0aXZlVGFyZ2V0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlIGRvbid0IGhhdmUgYSB0YXJnZXREZWx0YSBidXQgZG8gaGF2ZSBhIGxheW91dCwgd2UgY2FuIGF0dGVtcHQgdG8gcmVzb2x2ZVxuICAgICAgICAgICAgICogYSByZWxhdGl2ZVBhcmVudC4gVGhpcyB3aWxsIGFsbG93IGEgY29tcG9uZW50IHRvIHBlcmZvcm0gc2NhbGUgY29ycmVjdGlvblxuICAgICAgICAgICAgICogZXZlbiBpZiBubyBhbmltYXRpb24gaGFzIHN0YXJ0ZWQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICghdGhpcy50YXJnZXREZWx0YSAmJiAhdGhpcy5yZWxhdGl2ZVRhcmdldCkge1xuICAgICAgICAgICAgICAgIGlmIChyZWxhdGl2ZVBhcmVudCAmJiByZWxhdGl2ZVBhcmVudC5sYXlvdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVSZWxhdGl2ZVRhcmdldChyZWxhdGl2ZVBhcmVudCwgdGhpcy5sYXlvdXQubGF5b3V0Qm94LCByZWxhdGl2ZVBhcmVudC5sYXlvdXQubGF5b3V0Qm94KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlUmVsYXRpdmVUYXJnZXQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlIGhhdmUgbm8gcmVsYXRpdmUgdGFyZ2V0IG9yIG5vIHRhcmdldCBkZWx0YSBvdXIgdGFyZ2V0IGlzbid0IHZhbGlkXG4gICAgICAgICAgICAgKiBmb3IgdGhpcyBmcmFtZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKCF0aGlzLnJlbGF0aXZlVGFyZ2V0ICYmICF0aGlzLnRhcmdldERlbHRhKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogTGF6eS1pbml0IHRhcmdldCBkYXRhIHN0cnVjdHVyZVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoIXRoaXMudGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy50YXJnZXQgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhcmdldFdpdGhUcmFuc2Zvcm1zID0gY3JlYXRlQm94KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlJ3ZlIGdvdCBhIHJlbGF0aXZlIGJveCBmb3IgdGhpcyBjb21wb25lbnQsIHJlc29sdmUgaXQgaW50byBhIHRhcmdldCByZWxhdGl2ZSB0byB0aGUgcGFyZW50LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy5yZWxhdGl2ZVRhcmdldCAmJlxuICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4gJiZcbiAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50ICYmXG4gICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudC50YXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKTtcbiAgICAgICAgICAgICAgICBjYWxjUmVsYXRpdmVCb3godGhpcy50YXJnZXQsIHRoaXMucmVsYXRpdmVUYXJnZXQsIHRoaXMucmVsYXRpdmVQYXJlbnQudGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiB3ZSd2ZSBvbmx5IGdvdCBhIHRhcmdldERlbHRhLCByZXNvbHZlIGl0IGludG8gYSB0YXJnZXRcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMudGFyZ2V0RGVsdGEpIHtcbiAgICAgICAgICAgICAgICBpZiAoQm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogVGhpcyBpcyBjcmVhdGluZyBhIG5ldyBvYmplY3QgZXZlcnkgZnJhbWVcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50YXJnZXQgPSB0aGlzLmFwcGx5VHJhbnNmb3JtKHRoaXMubGF5b3V0LmxheW91dEJveCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb3B5Qm94SW50byh0aGlzLnRhcmdldCwgdGhpcy5sYXlvdXQubGF5b3V0Qm94KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYXBwbHlCb3hEZWx0YSh0aGlzLnRhcmdldCwgdGhpcy50YXJnZXREZWx0YSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiBubyB0YXJnZXQsIHVzZSBvd24gbGF5b3V0IGFzIHRhcmdldFxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGNvcHlCb3hJbnRvKHRoaXMudGFyZ2V0LCB0aGlzLmxheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB3ZSd2ZSBiZWVuIHRvbGQgdG8gYXR0ZW1wdCB0byByZXNvbHZlIGEgcmVsYXRpdmUgdGFyZ2V0LCBkbyBzby5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuYXR0ZW1wdFRvUmVzb2x2ZVJlbGF0aXZlVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hdHRlbXB0VG9SZXNvbHZlUmVsYXRpdmVUYXJnZXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAocmVsYXRpdmVQYXJlbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgQm9vbGVhbihyZWxhdGl2ZVBhcmVudC5yZXN1bWluZ0Zyb20pID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgQm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSkgJiZcbiAgICAgICAgICAgICAgICAgICAgIXJlbGF0aXZlUGFyZW50Lm9wdGlvbnMubGF5b3V0U2Nyb2xsICYmXG4gICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlUGFyZW50LnRhcmdldCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvblByb2dyZXNzICE9PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUmVsYXRpdmVUYXJnZXQocmVsYXRpdmVQYXJlbnQsIHRoaXMudGFyZ2V0LCByZWxhdGl2ZVBhcmVudC50YXJnZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudCA9IHRoaXMucmVsYXRpdmVUYXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJbmNyZWFzZSBkZWJ1ZyBjb3VudGVyIGZvciByZXNvbHZlZCB0YXJnZXQgZGVsdGFzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgIG1ldHJpY3MuY2FsY3VsYXRlZFRhcmdldERlbHRhcysrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLnBhcmVudCB8fFxuICAgICAgICAgICAgICAgIGhhc1NjYWxlKHRoaXMucGFyZW50LmxhdGVzdFZhbHVlcykgfHxcbiAgICAgICAgICAgICAgICBoYXMyRFRyYW5zbGF0ZSh0aGlzLnBhcmVudC5sYXRlc3RWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudC5pc1Byb2plY3RpbmcoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcmVudC5nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlzUHJvamVjdGluZygpIHtcbiAgICAgICAgICAgIHJldHVybiBCb29sZWFuKCh0aGlzLnJlbGF0aXZlVGFyZ2V0IHx8XG4gICAgICAgICAgICAgICAgdGhpcy50YXJnZXREZWx0YSB8fFxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5sYXlvdXRSb290KSAmJlxuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0KTtcbiAgICAgICAgfVxuICAgICAgICBjcmVhdGVSZWxhdGl2ZVRhcmdldChyZWxhdGl2ZVBhcmVudCwgbGF5b3V0LCBwYXJlbnRMYXlvdXQpIHtcbiAgICAgICAgICAgIHRoaXMucmVsYXRpdmVQYXJlbnQgPSByZWxhdGl2ZVBhcmVudDtcbiAgICAgICAgICAgIHRoaXMubGlua2VkUGFyZW50VmVyc2lvbiA9IHJlbGF0aXZlUGFyZW50LmxheW91dFZlcnNpb247XG4gICAgICAgICAgICB0aGlzLmZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKTtcbiAgICAgICAgICAgIHRoaXMucmVsYXRpdmVUYXJnZXQgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4gPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIGNhbGNSZWxhdGl2ZVBvc2l0aW9uKHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4sIGxheW91dCwgcGFyZW50TGF5b3V0KTtcbiAgICAgICAgICAgIGNvcHlCb3hJbnRvKHRoaXMucmVsYXRpdmVUYXJnZXQsIHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4pO1xuICAgICAgICB9XG4gICAgICAgIHJlbW92ZVJlbGF0aXZlVGFyZ2V0KCkge1xuICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudCA9IHRoaXMucmVsYXRpdmVUYXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY2FsY1Byb2plY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCBsZWFkID0gdGhpcy5nZXRMZWFkKCk7XG4gICAgICAgICAgICBjb25zdCBpc1NoYXJlZCA9IEJvb2xlYW4odGhpcy5yZXN1bWluZ0Zyb20pIHx8IHRoaXMgIT09IGxlYWQ7XG4gICAgICAgICAgICBsZXQgY2FuU2tpcCA9IHRydWU7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYSBub3JtYWwgbGF5b3V0IGFuaW1hdGlvbiBhbmQgbmVpdGhlciB0aGlzIG5vZGUgbm9yIGl0cyBuZWFyZXN0IHByb2plY3RpbmdcbiAgICAgICAgICAgICAqIGlzIGRpcnR5IHRoZW4gd2UgY2FuJ3Qgc2tpcC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNQcm9qZWN0aW9uRGlydHkgfHwgdGhpcy5wYXJlbnQ/LmlzUHJvamVjdGlvbkRpcnR5KSB7XG4gICAgICAgICAgICAgICAgY2FuU2tpcCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGlzIGEgc2hhcmVkIGxheW91dCBhbmltYXRpb24gYW5kIHRoaXMgbm9kZSdzIHNoYXJlZCBwcm9qZWN0aW9uIGlzIGRpcnR5IHRoZW5cbiAgICAgICAgICAgICAqIHdlIGNhbid0IHNraXAuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChpc1NoYXJlZCAmJlxuICAgICAgICAgICAgICAgICh0aGlzLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5IHx8IHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eSkpIHtcbiAgICAgICAgICAgICAgICBjYW5Ta2lwID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlIGhhdmUgcmVzb2x2ZWQgdGhlIHRhcmdldCB0aGlzIGZyYW1lIHdlIG11c3QgcmVjYWxjdWxhdGUgdGhlXG4gICAgICAgICAgICAgKiBwcm9qZWN0aW9uIHRvIGVuc3VyZSBpdCB2aXN1YWxseSByZXByZXNlbnRzIHRoZSBpbnRlcm5hbCBjYWxjdWxhdGlvbnMuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdCA9PT0gZnJhbWVEYXRhLnRpbWVzdGFtcCkge1xuICAgICAgICAgICAgICAgIGNhblNraXAgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjYW5Ta2lwKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHsgbGF5b3V0LCBsYXlvdXRJZCB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIHNlY3Rpb24gb2YgdGhlIHRyZWUgaXNuJ3QgYW5pbWF0aW5nIHdlIGNhblxuICAgICAgICAgICAgICogZGVsZXRlIG91ciB0YXJnZXQgc291cmNlcyBmb3IgdGhlIGZvbGxvd2luZyBmcmFtZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5pc1RyZWVBbmltYXRpbmcgPSBCb29sZWFuKCh0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5pc1RyZWVBbmltYXRpbmcpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QW5pbWF0aW9uIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQW5pbWF0aW9uKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1RyZWVBbmltYXRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhcmdldERlbHRhID0gdGhpcy5yZWxhdGl2ZVRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5sYXlvdXQgfHwgIShsYXlvdXQgfHwgbGF5b3V0SWQpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUmVzZXQgdGhlIGNvcnJlY3RlZCBib3ggd2l0aCB0aGUgbGF0ZXN0IHZhbHVlcyBmcm9tIGJveCwgYXMgd2UncmUgdGhlbiBnb2luZ1xuICAgICAgICAgICAgICogdG8gcGVyZm9ybSBtdXRhdGl2ZSBvcGVyYXRpb25zIG9uIGl0LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb3B5Qm94SW50byh0aGlzLmxheW91dENvcnJlY3RlZCwgdGhpcy5sYXlvdXQubGF5b3V0Qm94KTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUmVjb3JkIHByZXZpb3VzIHRyZWUgc2NhbGVzIGJlZm9yZSB1cGRhdGluZy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgcHJldlRyZWVTY2FsZVggPSB0aGlzLnRyZWVTY2FsZS54O1xuICAgICAgICAgICAgY29uc3QgcHJldlRyZWVTY2FsZVkgPSB0aGlzLnRyZWVTY2FsZS55O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBcHBseSBhbGwgdGhlIHBhcmVudCBkZWx0YXMgdG8gdGhpcyBib3ggdG8gcHJvZHVjZSB0aGUgY29ycmVjdGVkIGJveC4gVGhpc1xuICAgICAgICAgICAgICogaXMgdGhlIGxheW91dCBib3gsIGFzIGl0IHdpbGwgYXBwZWFyIG9uIHNjcmVlbiBhcyBhIHJlc3VsdCBvZiB0aGUgdHJhbnNmb3JtcyBvZiBpdHMgcGFyZW50cy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYXBwbHlUcmVlRGVsdGFzKHRoaXMubGF5b3V0Q29ycmVjdGVkLCB0aGlzLnRyZWVTY2FsZSwgdGhpcy5wYXRoLCBpc1NoYXJlZCk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoaXMgbGF5ZXIgbmVlZHMgdG8gcGVyZm9ybSBzY2FsZSBjb3JyZWN0aW9uIGJ1dCBkb2Vzbid0IGhhdmUgYSB0YXJnZXQsXG4gICAgICAgICAgICAgKiB1c2UgdGhlIGxheW91dCBhcyB0aGUgdGFyZ2V0LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAobGVhZC5sYXlvdXQgJiZcbiAgICAgICAgICAgICAgICAhbGVhZC50YXJnZXQgJiZcbiAgICAgICAgICAgICAgICAodGhpcy50cmVlU2NhbGUueCAhPT0gMSB8fCB0aGlzLnRyZWVTY2FsZS55ICE9PSAxKSkge1xuICAgICAgICAgICAgICAgIGxlYWQudGFyZ2V0ID0gbGVhZC5sYXlvdXQubGF5b3V0Qm94O1xuICAgICAgICAgICAgICAgIGxlYWQudGFyZ2V0V2l0aFRyYW5zZm9ybXMgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0IH0gPSBsZWFkO1xuICAgICAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiB3ZSBkb24ndCBoYXZlIGEgdGFyZ2V0IHRvIHByb2plY3QgaW50bywgYnV0IHdlIHdlcmUgcHJldmlvdXNseVxuICAgICAgICAgICAgICAgICAqIHByb2plY3RpbmcsIHdlIHdhbnQgdG8gcmVtb3ZlIHRoZSBzdG9yZWQgdHJhbnNmb3JtIGFuZCBzY2hlZHVsZVxuICAgICAgICAgICAgICAgICAqIGEgcmVuZGVyIHRvIGVuc3VyZSB0aGUgZWxlbWVudHMgcmVmbGVjdCB0aGUgcmVtb3ZlZCB0cmFuc2Zvcm0uXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJldlByb2plY3Rpb25EZWx0YSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVByb2plY3Rpb25EZWx0YXMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMucHJvamVjdGlvbkRlbHRhIHx8ICF0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVByb2plY3Rpb25EZWx0YXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvcHlBeGlzRGVsdGFJbnRvKHRoaXMucHJldlByb2plY3Rpb25EZWx0YS54LCB0aGlzLnByb2plY3Rpb25EZWx0YS54KTtcbiAgICAgICAgICAgICAgICBjb3B5QXhpc0RlbHRhSW50byh0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEueSwgdGhpcy5wcm9qZWN0aW9uRGVsdGEueSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFVwZGF0ZSB0aGUgZGVsdGEgYmV0d2VlbiB0aGUgY29ycmVjdGVkIGJveCBhbmQgdGhlIHRhcmdldCBib3ggYmVmb3JlIHVzZXItc2V0IHRyYW5zZm9ybXMgd2VyZSBhcHBsaWVkLlxuICAgICAgICAgICAgICogVGhpcyB3aWxsIGFsbG93IHVzIHRvIGNhbGN1bGF0ZSB0aGUgY29ycmVjdGVkIGJvcmRlclJhZGl1cyBhbmQgYm94U2hhZG93IHRvIGNvbXBlbnNhdGVcbiAgICAgICAgICAgICAqIGZvciBvdXIgbGF5b3V0IHJlcHJvamVjdGlvbiwgYnV0IHN0aWxsIGFsbG93IHRoZW0gdG8gYmUgc2NhbGVkIGNvcnJlY3RseSBieSB0aGUgdXNlci5cbiAgICAgICAgICAgICAqIEl0IG1pZ2h0IGJlIHRoYXQgdG8gc2ltcGxpZnkgdGhpcyB3ZSBtYXkgd2FudCB0byBhY2NlcHQgdGhhdCB1c2VyLXNldCBzY2FsZSBpcyBhbHNvIGNvcnJlY3RlZFxuICAgICAgICAgICAgICogYW5kIHdlIHdvdWxkbid0IGhhdmUgdG8ga2VlcCBhbmQgY2FsYyBib3RoIGRlbHRhcywgT1Igd2UgY291bGQgc3VwcG9ydCBhIHVzZXIgc2V0dGluZ1xuICAgICAgICAgICAgICogdG8gYWxsb3cgcGVvcGxlIHRvIGNob29zZSB3aGV0aGVyIHRoZXNlIHN0eWxlcyBhcmUgY29ycmVjdGVkIGJhc2VkIG9uIGp1c3QgdGhlXG4gICAgICAgICAgICAgKiBsYXlvdXQgcmVwcm9qZWN0aW9uIG9yIHRoZSBmaW5hbCBib3VuZGluZyBib3guXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNhbGNCb3hEZWx0YSh0aGlzLnByb2plY3Rpb25EZWx0YSwgdGhpcy5sYXlvdXRDb3JyZWN0ZWQsIHRhcmdldCwgdGhpcy5sYXRlc3RWYWx1ZXMpO1xuICAgICAgICAgICAgaWYgKHRoaXMudHJlZVNjYWxlLnggIT09IHByZXZUcmVlU2NhbGVYIHx8XG4gICAgICAgICAgICAgICAgdGhpcy50cmVlU2NhbGUueSAhPT0gcHJldlRyZWVTY2FsZVkgfHxcbiAgICAgICAgICAgICAgICAhYXhpc0RlbHRhRXF1YWxzKHRoaXMucHJvamVjdGlvbkRlbHRhLngsIHRoaXMucHJldlByb2plY3Rpb25EZWx0YS54KSB8fFxuICAgICAgICAgICAgICAgICFheGlzRGVsdGFFcXVhbHModGhpcy5wcm9qZWN0aW9uRGVsdGEueSwgdGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhLnkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oYXNQcm9qZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZW5kZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmeUxpc3RlbmVycyhcInByb2plY3Rpb25VcGRhdGVcIiwgdGFyZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSW5jcmVhc2UgZGVidWcgY291bnRlciBmb3IgcmVjYWxjdWxhdGVkIHByb2plY3Rpb25zXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgIG1ldHJpY3MuY2FsY3VsYXRlZFByb2plY3Rpb25zKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaGlkZSgpIHtcbiAgICAgICAgICAgIHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAvLyBUT0RPOiBTY2hlZHVsZSByZW5kZXJcbiAgICAgICAgfVxuICAgICAgICBzaG93KCkge1xuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xuICAgICAgICAgICAgLy8gVE9ETzogU2NoZWR1bGUgcmVuZGVyXG4gICAgICAgIH1cbiAgICAgICAgc2NoZWR1bGVSZW5kZXIobm90aWZ5QWxsID0gdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLnZpc3VhbEVsZW1lbnQ/LnNjaGVkdWxlUmVuZGVyKCk7XG4gICAgICAgICAgICBpZiAobm90aWZ5QWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKCk7XG4gICAgICAgICAgICAgICAgc3RhY2sgJiYgc3RhY2suc2NoZWR1bGVSZW5kZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnJlc3VtaW5nRnJvbSAmJiAhdGhpcy5yZXN1bWluZ0Zyb20uaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjcmVhdGVQcm9qZWN0aW9uRGVsdGFzKCkge1xuICAgICAgICAgICAgdGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhID0gY3JlYXRlRGVsdGEoKTtcbiAgICAgICAgICAgIHRoaXMucHJvamVjdGlvbkRlbHRhID0gY3JlYXRlRGVsdGEoKTtcbiAgICAgICAgICAgIHRoaXMucHJvamVjdGlvbkRlbHRhV2l0aFRyYW5zZm9ybSA9IGNyZWF0ZURlbHRhKCk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0QW5pbWF0aW9uT3JpZ2luKGRlbHRhLCBoYXNPbmx5UmVsYXRpdmVUYXJnZXRDaGFuZ2VkID0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHNuYXBzaG90ID0gdGhpcy5zbmFwc2hvdDtcbiAgICAgICAgICAgIGNvbnN0IHNuYXBzaG90TGF0ZXN0VmFsdWVzID0gc25hcHNob3QgPyBzbmFwc2hvdC5sYXRlc3RWYWx1ZXMgOiB7fTtcbiAgICAgICAgICAgIGNvbnN0IG1peGVkVmFsdWVzID0geyAuLi50aGlzLmxhdGVzdFZhbHVlcyB9O1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0RGVsdGEgPSBjcmVhdGVEZWx0YSgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnJlbGF0aXZlUGFyZW50IHx8XG4gICAgICAgICAgICAgICAgIXRoaXMucmVsYXRpdmVQYXJlbnQub3B0aW9ucy5sYXlvdXRSb290KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldCA9IHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmF0dGVtcHRUb1Jlc29sdmVSZWxhdGl2ZVRhcmdldCA9ICFoYXNPbmx5UmVsYXRpdmVUYXJnZXRDaGFuZ2VkO1xuICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVMYXlvdXQgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIGNvbnN0IHNuYXBzaG90U291cmNlID0gc25hcHNob3QgPyBzbmFwc2hvdC5zb3VyY2UgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCBsYXlvdXRTb3VyY2UgPSB0aGlzLmxheW91dCA/IHRoaXMubGF5b3V0LnNvdXJjZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGlzU2hhcmVkTGF5b3V0QW5pbWF0aW9uID0gc25hcHNob3RTb3VyY2UgIT09IGxheW91dFNvdXJjZTtcbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xuICAgICAgICAgICAgY29uc3QgaXNPbmx5TWVtYmVyID0gIXN0YWNrIHx8IHN0YWNrLm1lbWJlcnMubGVuZ3RoIDw9IDE7XG4gICAgICAgICAgICBjb25zdCBzaG91bGRDcm9zc2ZhZGVPcGFjaXR5ID0gQm9vbGVhbihpc1NoYXJlZExheW91dEFuaW1hdGlvbiAmJlxuICAgICAgICAgICAgICAgICFpc09ubHlNZW1iZXIgJiZcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMuY3Jvc3NmYWRlID09PSB0cnVlICYmXG4gICAgICAgICAgICAgICAgIXRoaXMucGF0aC5zb21lKGhhc09wYWNpdHlDcm9zc2ZhZGUpKTtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uUHJvZ3Jlc3MgPSAwO1xuICAgICAgICAgICAgbGV0IHByZXZSZWxhdGl2ZVRhcmdldDtcbiAgICAgICAgICAgIHRoaXMubWl4VGFyZ2V0RGVsdGEgPSAobGF0ZXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBsYXRlc3QgLyAxMDAwO1xuICAgICAgICAgICAgICAgIG1peEF4aXNEZWx0YSh0YXJnZXREZWx0YS54LCBkZWx0YS54LCBwcm9ncmVzcyk7XG4gICAgICAgICAgICAgICAgbWl4QXhpc0RlbHRhKHRhcmdldERlbHRhLnksIGRlbHRhLnksIHByb2dyZXNzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFRhcmdldERlbHRhKHRhcmdldERlbHRhKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZWxhdGl2ZVRhcmdldCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlVGFyZ2V0T3JpZ2luICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0ICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpdmVQYXJlbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudC5sYXlvdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FsY1JlbGF0aXZlUG9zaXRpb24ocmVsYXRpdmVMYXlvdXQsIHRoaXMubGF5b3V0LmxheW91dEJveCwgdGhpcy5yZWxhdGl2ZVBhcmVudC5sYXlvdXQubGF5b3V0Qm94KTtcbiAgICAgICAgICAgICAgICAgICAgbWl4Qm94KHRoaXMucmVsYXRpdmVUYXJnZXQsIHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4sIHJlbGF0aXZlTGF5b3V0LCBwcm9ncmVzcyk7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBJZiB0aGlzIGlzIGFuIHVuY2hhbmdlZCByZWxhdGl2ZSB0YXJnZXQgd2UgY2FuIGNvbnNpZGVyIHRoZVxuICAgICAgICAgICAgICAgICAgICAgKiBwcm9qZWN0aW9uIG5vdCBkaXJ0eS5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2UmVsYXRpdmVUYXJnZXQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveEVxdWFscyh0aGlzLnJlbGF0aXZlVGFyZ2V0LCBwcmV2UmVsYXRpdmVUYXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUHJvamVjdGlvbkRpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFwcmV2UmVsYXRpdmVUYXJnZXQpXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2UmVsYXRpdmVUYXJnZXQgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgICAgICAgICAgY29weUJveEludG8ocHJldlJlbGF0aXZlVGFyZ2V0LCB0aGlzLnJlbGF0aXZlVGFyZ2V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzU2hhcmVkTGF5b3V0QW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uVmFsdWVzID0gbWl4ZWRWYWx1ZXM7XG4gICAgICAgICAgICAgICAgICAgIG1peFZhbHVlcyhtaXhlZFZhbHVlcywgc25hcHNob3RMYXRlc3RWYWx1ZXMsIHRoaXMubGF0ZXN0VmFsdWVzLCBwcm9ncmVzcywgc2hvdWxkQ3Jvc3NmYWRlT3BhY2l0eSwgaXNPbmx5TWVtYmVyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5yb290LnNjaGVkdWxlVXBkYXRlUHJvamVjdGlvbigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZW5kZXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvblByb2dyZXNzID0gcHJvZ3Jlc3M7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5taXhUYXJnZXREZWx0YSh0aGlzLm9wdGlvbnMubGF5b3V0Um9vdCA/IDEwMDAgOiAwKTtcbiAgICAgICAgfVxuICAgICAgICBzdGFydEFuaW1hdGlvbihvcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeUxpc3RlbmVycyhcImFuaW1hdGlvblN0YXJ0XCIpO1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50QW5pbWF0aW9uPy5zdG9wKCk7XG4gICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbT8uY3VycmVudEFuaW1hdGlvbj8uc3RvcCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMucGVuZGluZ0FuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgIGNhbmNlbEZyYW1lKHRoaXMucGVuZGluZ0FuaW1hdGlvbik7XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQW5pbWF0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBTdGFydCB0aGUgYW5pbWF0aW9uIGluIHRoZSBuZXh0IGZyYW1lIHRvIGhhdmUgYSBmcmFtZSB3aXRoIHByb2dyZXNzIDAsXG4gICAgICAgICAgICAgKiB3aGVyZSB0aGUgdGFyZ2V0IGlzIHRoZSBzYW1lIGFzIHdoZW4gdGhlIGFuaW1hdGlvbiBzdGFydGVkLCBzbyB3ZSBjYW5cbiAgICAgICAgICAgICAqIGNhbGN1bGF0ZSB0aGUgcmVsYXRpdmUgcG9zaXRpb25zIGNvcnJlY3RseSBmb3IgaW5zdGFudCB0cmFuc2l0aW9ucy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nQW5pbWF0aW9uID0gZnJhbWUudXBkYXRlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBnbG9iYWxQcm9qZWN0aW9uU3RhdGUuaGFzQW5pbWF0ZWRTaW5jZVJlc2l6ZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgYWN0aXZlQW5pbWF0aW9ucy5sYXlvdXQrKztcbiAgICAgICAgICAgICAgICB0aGlzLm1vdGlvblZhbHVlIHx8ICh0aGlzLm1vdGlvblZhbHVlID0gbW90aW9uVmFsdWUoMCkpO1xuICAgICAgICAgICAgICAgIHRoaXMubW90aW9uVmFsdWUuanVtcCgwLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QW5pbWF0aW9uID0gYW5pbWF0ZVNpbmdsZVZhbHVlKHRoaXMubW90aW9uVmFsdWUsIFswLCAxMDAwXSwge1xuICAgICAgICAgICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICB2ZWxvY2l0eTogMCxcbiAgICAgICAgICAgICAgICAgICAgaXNTeW5jOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBvblVwZGF0ZTogKGxhdGVzdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5taXhUYXJnZXREZWx0YShsYXRlc3QpO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5vblVwZGF0ZSAmJiBvcHRpb25zLm9uVXBkYXRlKGxhdGVzdCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG9uU3RvcDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQW5pbWF0aW9ucy5sYXlvdXQtLTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb25Db21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlQW5pbWF0aW9ucy5sYXlvdXQtLTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMub25Db21wbGV0ZSAmJiBvcHRpb25zLm9uQ29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVBbmltYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXN1bWluZ0Zyb20pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXN1bWluZ0Zyb20uY3VycmVudEFuaW1hdGlvbiA9IHRoaXMuY3VycmVudEFuaW1hdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nQW5pbWF0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29tcGxldGVBbmltYXRpb24oKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5yZXN1bWluZ0Zyb20pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbS5jdXJyZW50QW5pbWF0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzdW1pbmdGcm9tLnByZXNlcnZlT3BhY2l0eSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xuICAgICAgICAgICAgc3RhY2sgJiYgc3RhY2suZXhpdEFuaW1hdGlvbkNvbXBsZXRlKCk7XG4gICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbSA9XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QW5pbWF0aW9uID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25WYWx1ZXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlMaXN0ZW5lcnMoXCJhbmltYXRpb25Db21wbGV0ZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBmaW5pc2hBbmltYXRpb24oKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50QW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5taXhUYXJnZXREZWx0YSAmJiB0aGlzLm1peFRhcmdldERlbHRhKGFuaW1hdGlvblRhcmdldCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50QW5pbWF0aW9uLnN0b3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVBbmltYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBhcHBseVRyYW5zZm9ybXNUb1RhcmdldCgpIHtcbiAgICAgICAgICAgIGNvbnN0IGxlYWQgPSB0aGlzLmdldExlYWQoKTtcbiAgICAgICAgICAgIGxldCB7IHRhcmdldFdpdGhUcmFuc2Zvcm1zLCB0YXJnZXQsIGxheW91dCwgbGF0ZXN0VmFsdWVzIH0gPSBsZWFkO1xuICAgICAgICAgICAgaWYgKCF0YXJnZXRXaXRoVHJhbnNmb3JtcyB8fCAhdGFyZ2V0IHx8ICFsYXlvdXQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB3ZSdyZSBvbmx5IGFuaW1hdGluZyBwb3NpdGlvbiwgYW5kIHRoaXMgZWxlbWVudCBpc24ndCB0aGUgbGVhZCBlbGVtZW50LFxuICAgICAgICAgICAgICogdGhlbiBpbnN0ZWFkIG9mIHByb2plY3RpbmcgaW50byB0aGUgbGVhZCBib3ggd2UgaW5zdGVhZCB3YW50IHRvIGNhbGN1bGF0ZVxuICAgICAgICAgICAgICogYSBuZXcgdGFyZ2V0IHRoYXQgYWxpZ25zIHRoZSB0d28gYm94ZXMgYnV0IG1haW50YWlucyB0aGUgbGF5b3V0IHNoYXBlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcyAhPT0gbGVhZCAmJlxuICAgICAgICAgICAgICAgIHRoaXMubGF5b3V0ICYmXG4gICAgICAgICAgICAgICAgbGF5b3V0ICYmXG4gICAgICAgICAgICAgICAgc2hvdWxkQW5pbWF0ZVBvc2l0aW9uT25seSh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uVHlwZSwgdGhpcy5sYXlvdXQubGF5b3V0Qm94LCBsYXlvdXQubGF5b3V0Qm94KSkge1xuICAgICAgICAgICAgICAgIHRhcmdldCA9IHRoaXMudGFyZ2V0IHx8IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHhMZW5ndGggPSBjYWxjTGVuZ3RoKHRoaXMubGF5b3V0LmxheW91dEJveC54KTtcbiAgICAgICAgICAgICAgICB0YXJnZXQueC5taW4gPSBsZWFkLnRhcmdldC54Lm1pbjtcbiAgICAgICAgICAgICAgICB0YXJnZXQueC5tYXggPSB0YXJnZXQueC5taW4gKyB4TGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbnN0IHlMZW5ndGggPSBjYWxjTGVuZ3RoKHRoaXMubGF5b3V0LmxheW91dEJveC55KTtcbiAgICAgICAgICAgICAgICB0YXJnZXQueS5taW4gPSBsZWFkLnRhcmdldC55Lm1pbjtcbiAgICAgICAgICAgICAgICB0YXJnZXQueS5tYXggPSB0YXJnZXQueS5taW4gKyB5TGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29weUJveEludG8odGFyZ2V0V2l0aFRyYW5zZm9ybXMsIHRhcmdldCk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEFwcGx5IHRoZSBsYXRlc3QgdXNlci1zZXQgdHJhbnNmb3JtcyB0byB0aGUgdGFyZ2V0Qm94IHRvIHByb2R1Y2UgdGhlIHRhcmdldEJveEZpbmFsLlxuICAgICAgICAgICAgICogVGhpcyBpcyB0aGUgZmluYWwgYm94IHRoYXQgd2Ugd2lsbCB0aGVuIHByb2plY3QgaW50byBieSBjYWxjdWxhdGluZyBhIHRyYW5zZm9ybSBkZWx0YSBhbmRcbiAgICAgICAgICAgICAqIGFwcGx5aW5nIGl0IHRvIHRoZSBjb3JyZWN0ZWQgYm94LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0cmFuc2Zvcm1Cb3godGFyZ2V0V2l0aFRyYW5zZm9ybXMsIGxhdGVzdFZhbHVlcyk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFVwZGF0ZSB0aGUgZGVsdGEgYmV0d2VlbiB0aGUgY29ycmVjdGVkIGJveCBhbmQgdGhlIGZpbmFsIHRhcmdldCBib3gsIGFmdGVyXG4gICAgICAgICAgICAgKiB1c2VyLXNldCB0cmFuc2Zvcm1zIGFyZSBhcHBsaWVkIHRvIGl0LiBUaGlzIHdpbGwgYmUgdXNlZCBieSB0aGUgcmVuZGVyZXIgdG9cbiAgICAgICAgICAgICAqIGNyZWF0ZSBhIHRyYW5zZm9ybSBzdHlsZSB0aGF0IHdpbGwgcmVwcm9qZWN0IHRoZSBlbGVtZW50IGZyb20gaXRzIGxheW91dCBsYXlvdXRcbiAgICAgICAgICAgICAqIGludG8gdGhlIGRlc2lyZWQgYm91bmRpbmcgYm94LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjYWxjQm94RGVsdGEodGhpcy5wcm9qZWN0aW9uRGVsdGFXaXRoVHJhbnNmb3JtLCB0aGlzLmxheW91dENvcnJlY3RlZCwgdGFyZ2V0V2l0aFRyYW5zZm9ybXMsIGxhdGVzdFZhbHVlcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmVnaXN0ZXJTaGFyZWROb2RlKGxheW91dElkLCBub2RlKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hhcmVkTm9kZXMuaGFzKGxheW91dElkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hhcmVkTm9kZXMuc2V0KGxheW91dElkLCBuZXcgTm9kZVN0YWNrKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLnNoYXJlZE5vZGVzLmdldChsYXlvdXRJZCk7XG4gICAgICAgICAgICBzdGFjay5hZGQobm9kZSk7XG4gICAgICAgICAgICBjb25zdCBjb25maWcgPSBub2RlLm9wdGlvbnMuaW5pdGlhbFByb21vdGlvbkNvbmZpZztcbiAgICAgICAgICAgIG5vZGUucHJvbW90ZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogY29uZmlnID8gY29uZmlnLnRyYW5zaXRpb24gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcHJlc2VydmVGb2xsb3dPcGFjaXR5OiBjb25maWcgJiYgY29uZmlnLnNob3VsZFByZXNlcnZlRm9sbG93T3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICA/IGNvbmZpZy5zaG91bGRQcmVzZXJ2ZUZvbGxvd09wYWNpdHkobm9kZSlcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpc0xlYWQoKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFjayA9IHRoaXMuZ2V0U3RhY2soKTtcbiAgICAgICAgICAgIHJldHVybiBzdGFjayA/IHN0YWNrLmxlYWQgPT09IHRoaXMgOiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGdldExlYWQoKSB7XG4gICAgICAgICAgICBjb25zdCB7IGxheW91dElkIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICByZXR1cm4gbGF5b3V0SWQgPyB0aGlzLmdldFN0YWNrKCk/LmxlYWQgfHwgdGhpcyA6IHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgZ2V0UHJldkxlYWQoKSB7XG4gICAgICAgICAgICBjb25zdCB7IGxheW91dElkIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICByZXR1cm4gbGF5b3V0SWQgPyB0aGlzLmdldFN0YWNrKCk/LnByZXZMZWFkIDogdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGdldFN0YWNrKCkge1xuICAgICAgICAgICAgY29uc3QgeyBsYXlvdXRJZCB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICAgICAgaWYgKGxheW91dElkKVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJvb3Quc2hhcmVkTm9kZXMuZ2V0KGxheW91dElkKTtcbiAgICAgICAgfVxuICAgICAgICBwcm9tb3RlKHsgbmVlZHNSZXNldCwgdHJhbnNpdGlvbiwgcHJlc2VydmVGb2xsb3dPcGFjaXR5LCB9ID0ge30pIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xuICAgICAgICAgICAgaWYgKHN0YWNrKVxuICAgICAgICAgICAgICAgIHN0YWNrLnByb21vdGUodGhpcywgcHJlc2VydmVGb2xsb3dPcGFjaXR5KTtcbiAgICAgICAgICAgIGlmIChuZWVkc1Jlc2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uRGVsdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5uZWVkc1Jlc2V0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uKVxuICAgICAgICAgICAgICAgIHRoaXMuc2V0T3B0aW9ucyh7IHRyYW5zaXRpb24gfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmVsZWdhdGUoKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFjayA9IHRoaXMuZ2V0U3RhY2soKTtcbiAgICAgICAgICAgIGlmIChzdGFjaykge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGFjay5yZWxlZ2F0ZSh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXNldFNrZXdBbmRSb3RhdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICAgICAgaWYgKCF2aXN1YWxFbGVtZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gZGV0ZWN0ZWQgc2tldyBvciByb3RhdGlvbiB2YWx1ZXMsIHdlIGNhbiBlYXJseSByZXR1cm4gd2l0aG91dCBhIGZvcmNlZCByZW5kZXIuXG4gICAgICAgICAgICBsZXQgaGFzRGlzdG9ydGluZ1RyYW5zZm9ybSA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBbiB1bnJvbGxlZCBjaGVjayBmb3Igcm90YXRpb24gdmFsdWVzLiBNb3N0IGVsZW1lbnRzIGRvbid0IGhhdmUgYW55IHJvdGF0aW9uIGFuZFxuICAgICAgICAgICAgICogc2tpcHBpbmcgdGhlIG5lc3RlZCBsb29wIGFuZCBuZXcgb2JqZWN0IGNyZWF0aW9uIGlzIDUwJSBmYXN0ZXIuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IHsgbGF0ZXN0VmFsdWVzIH0gPSB2aXN1YWxFbGVtZW50O1xuICAgICAgICAgICAgaWYgKGxhdGVzdFZhbHVlcy56IHx8XG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzLnJvdGF0ZSB8fFxuICAgICAgICAgICAgICAgIGxhdGVzdFZhbHVlcy5yb3RhdGVYIHx8XG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzLnJvdGF0ZVkgfHxcbiAgICAgICAgICAgICAgICBsYXRlc3RWYWx1ZXMucm90YXRlWiB8fFxuICAgICAgICAgICAgICAgIGxhdGVzdFZhbHVlcy5za2V3WCB8fFxuICAgICAgICAgICAgICAgIGxhdGVzdFZhbHVlcy5za2V3WSkge1xuICAgICAgICAgICAgICAgIGhhc0Rpc3RvcnRpbmdUcmFuc2Zvcm0gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBkaXN0b3J0aW5nIHZhbHVlcywgd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnkgbW9yZS5cbiAgICAgICAgICAgIGlmICghaGFzRGlzdG9ydGluZ1RyYW5zZm9ybSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCByZXNldFZhbHVlcyA9IHt9O1xuICAgICAgICAgICAgaWYgKGxhdGVzdFZhbHVlcy56KSB7XG4gICAgICAgICAgICAgICAgcmVzZXREaXN0b3J0aW5nVHJhbnNmb3JtKFwielwiLCB2aXN1YWxFbGVtZW50LCByZXNldFZhbHVlcywgdGhpcy5hbmltYXRpb25WYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQ2hlY2sgdGhlIHNrZXcgYW5kIHJvdGF0ZSB2YWx1ZSBvZiBhbGwgYXhlcyBhbmQgcmVzZXQgdG8gMFxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0cmFuc2Zvcm1BeGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcmVzZXREaXN0b3J0aW5nVHJhbnNmb3JtKGByb3RhdGUke3RyYW5zZm9ybUF4ZXNbaV19YCwgdmlzdWFsRWxlbWVudCwgcmVzZXRWYWx1ZXMsIHRoaXMuYW5pbWF0aW9uVmFsdWVzKTtcbiAgICAgICAgICAgICAgICByZXNldERpc3RvcnRpbmdUcmFuc2Zvcm0oYHNrZXcke3RyYW5zZm9ybUF4ZXNbaV19YCwgdmlzdWFsRWxlbWVudCwgcmVzZXRWYWx1ZXMsIHRoaXMuYW5pbWF0aW9uVmFsdWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZvcmNlIGEgcmVuZGVyIG9mIHRoaXMgZWxlbWVudCB0byBhcHBseSB0aGUgdHJhbnNmb3JtIHdpdGggYWxsIHNrZXdzIGFuZCByb3RhdGlvbnNcbiAgICAgICAgICAgIC8vIHNldCB0byAwLlxuICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5yZW5kZXIoKTtcbiAgICAgICAgICAgIC8vIFB1dCBiYWNrIGFsbCB0aGUgdmFsdWVzIHdlIHJlc2V0XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiByZXNldFZhbHVlcykge1xuICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQuc2V0U3RhdGljVmFsdWUoa2V5LCByZXNldFZhbHVlc1trZXldKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hbmltYXRpb25WYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25WYWx1ZXNba2V5XSA9IHJlc2V0VmFsdWVzW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gU2NoZWR1bGUgYSByZW5kZXIgZm9yIHRoZSBuZXh0IGZyYW1lLiBUaGlzIGVuc3VyZXMgd2Ugd29uJ3QgdmlzdWFsbHlcbiAgICAgICAgICAgIC8vIHNlZSB0aGUgZWxlbWVudCB3aXRoIHRoZSByZXNldCByb3RhdGUgdmFsdWUgYXBwbGllZC5cbiAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQuc2NoZWR1bGVSZW5kZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBhcHBseVByb2plY3Rpb25TdHlsZXModGFyZ2V0U3R5bGUsIC8vIENTU1N0eWxlRGVjbGFyYXRpb24gLSBkb2Vzbid0IGFsbG93IG51bWJlcnMgdG8gYmUgYXNzaWduZWQgdG8gcHJvcGVydGllc1xuICAgICAgICBzdHlsZVByb3ApIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSB8fCB0aGlzLmlzU1ZHKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1Zpc2libGUpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS52aXNpYmlsaXR5ID0gXCJoaWRkZW5cIjtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1UZW1wbGF0ZSA9IHRoaXMuZ2V0VHJhbnNmb3JtVGVtcGxhdGUoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLm5lZWRzUmVzZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5lZWRzUmVzZXQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS52aXNpYmlsaXR5ID0gXCJcIjtcbiAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS5vcGFjaXR5ID0gXCJcIjtcbiAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS5wb2ludGVyRXZlbnRzID1cbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZU1vdGlvblZhbHVlKHN0eWxlUHJvcD8ucG9pbnRlckV2ZW50cykgfHwgXCJcIjtcbiAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS50cmFuc2Zvcm0gPSB0cmFuc2Zvcm1UZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICA/IHRyYW5zZm9ybVRlbXBsYXRlKHRoaXMubGF0ZXN0VmFsdWVzLCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICA6IFwibm9uZVwiO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxlYWQgPSB0aGlzLmdldExlYWQoKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9qZWN0aW9uRGVsdGEgfHwgIXRoaXMubGF5b3V0IHx8ICFsZWFkLnRhcmdldCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubGF5b3V0SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGUub3BhY2l0eSA9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxhdGVzdFZhbHVlcy5vcGFjaXR5ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDE7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnBvaW50ZXJFdmVudHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZU1vdGlvblZhbHVlKHN0eWxlUHJvcD8ucG9pbnRlckV2ZW50cykgfHwgXCJcIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzUHJvamVjdGVkICYmICFoYXNUcmFuc2Zvcm0odGhpcy5sYXRlc3RWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRyYW5zZm9ybVRlbXBsYXRlKHt9LCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcIm5vbmVcIjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNQcm9qZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFyZ2V0U3R5bGUudmlzaWJpbGl0eSA9IFwiXCI7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXNUb1JlbmRlciA9IGxlYWQuYW5pbWF0aW9uVmFsdWVzIHx8IGxlYWQubGF0ZXN0VmFsdWVzO1xuICAgICAgICAgICAgdGhpcy5hcHBseVRyYW5zZm9ybXNUb1RhcmdldCgpO1xuICAgICAgICAgICAgbGV0IHRyYW5zZm9ybSA9IGJ1aWxkUHJvamVjdGlvblRyYW5zZm9ybSh0aGlzLnByb2plY3Rpb25EZWx0YVdpdGhUcmFuc2Zvcm0sIHRoaXMudHJlZVNjYWxlLCB2YWx1ZXNUb1JlbmRlcik7XG4gICAgICAgICAgICBpZiAodHJhbnNmb3JtVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gPSB0cmFuc2Zvcm1UZW1wbGF0ZSh2YWx1ZXNUb1JlbmRlciwgdHJhbnNmb3JtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRhcmdldFN0eWxlLnRyYW5zZm9ybSA9IHRyYW5zZm9ybTtcbiAgICAgICAgICAgIGNvbnN0IHsgeCwgeSB9ID0gdGhpcy5wcm9qZWN0aW9uRGVsdGE7XG4gICAgICAgICAgICB0YXJnZXRTdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSBgJHt4Lm9yaWdpbiAqIDEwMH0lICR7eS5vcmlnaW4gKiAxMDB9JSAwYDtcbiAgICAgICAgICAgIGlmIChsZWFkLmFuaW1hdGlvblZhbHVlcykge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHRoZSBsZWFkIGNvbXBvbmVudCBpcyBhbmltYXRpbmcsIGFzc2lnbiB0aGlzIGVpdGhlciB0aGUgZW50ZXJpbmcvbGVhdmluZ1xuICAgICAgICAgICAgICAgICAqIG9wYWNpdHlcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS5vcGFjaXR5ID1cbiAgICAgICAgICAgICAgICAgICAgbGVhZCA9PT0gdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZXNUb1JlbmRlci5vcGFjaXR5ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eSA/P1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5wcmVzZXJ2ZU9wYWNpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlc1RvUmVuZGVyLm9wYWNpdHlFeGl0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogT3Igd2UncmUgbm90IGFuaW1hdGluZyBhdCBhbGwsIHNldCB0aGUgbGVhZCBjb21wb25lbnQgdG8gaXRzIGxheW91dFxuICAgICAgICAgICAgICAgICAqIG9wYWNpdHkgYW5kIG90aGVyIGNvbXBvbmVudHMgdG8gaGlkZGVuLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLm9wYWNpdHkgPVxuICAgICAgICAgICAgICAgICAgICBsZWFkID09PSB0aGlzXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHZhbHVlc1RvUmVuZGVyLm9wYWNpdHkgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdmFsdWVzVG9SZW5kZXIub3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZXNUb1JlbmRlci5vcGFjaXR5RXhpdCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZXNUb1JlbmRlci5vcGFjaXR5RXhpdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQXBwbHkgc2NhbGUgY29ycmVjdGlvblxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2FsZUNvcnJlY3RvcnMpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWVzVG9SZW5kZXJba2V5XSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNvcnJlY3QsIGFwcGx5VG8sIGlzQ1NTVmFyaWFibGUgfSA9IHNjYWxlQ29ycmVjdG9yc1trZXldO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIE9ubHkgYXBwbHkgc2NhbGUgY29ycmVjdGlvbiB0byB0aGUgdmFsdWUgaWYgd2UgaGF2ZSBhblxuICAgICAgICAgICAgICAgICAqIGFjdGl2ZSBwcm9qZWN0aW9uIHRyYW5zZm9ybS4gT3RoZXJ3aXNlIHRoZXNlIHZhbHVlcyBiZWNvbWVcbiAgICAgICAgICAgICAgICAgKiB2dWxuZXJhYmxlIHRvIGRpc3RvcnRpb24gaWYgdGhlIGVsZW1lbnQgY2hhbmdlcyBzaXplIHdpdGhvdXRcbiAgICAgICAgICAgICAgICAgKiBhIGNvcnJlc3BvbmRpbmcgbGF5b3V0IGFuaW1hdGlvbi5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBjb25zdCBjb3JyZWN0ZWQgPSB0cmFuc2Zvcm0gPT09IFwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgID8gdmFsdWVzVG9SZW5kZXJba2V5XVxuICAgICAgICAgICAgICAgICAgICA6IGNvcnJlY3QodmFsdWVzVG9SZW5kZXJba2V5XSwgbGVhZCk7XG4gICAgICAgICAgICAgICAgaWYgKGFwcGx5VG8pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbnVtID0gYXBwbHlUby5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlW2FwcGx5VG9baV1dID0gY29ycmVjdGVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgQ1NTIHZhcmlhYmxlLCBzZXQgaXQgZGlyZWN0bHkgb24gdGhlIGluc3RhbmNlLlxuICAgICAgICAgICAgICAgICAgICAvLyBSZXBsYWNpbmcgdGhpcyBmdW5jdGlvbiBmcm9tIGNyZWF0aW5nIHN0eWxlcyB0byBzZXR0aW5nIHRoZW1cbiAgICAgICAgICAgICAgICAgICAgLy8gd291bGQgYmUgYSBnb29kIHBsYWNlIHRvIHJlbW92ZSBwZXIgZnJhbWUgb2JqZWN0IGNyZWF0aW9uXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0NTU1ZhcmlhYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmlzdWFsRWxlbWVudC5yZW5kZXJTdGF0ZS52YXJzW2tleV0gPSBjb3JyZWN0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZVtrZXldID0gY29ycmVjdGVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBEaXNhYmxlIHBvaW50ZXIgZXZlbnRzIG9uIGZvbGxvdyBjb21wb25lbnRzLiBUaGlzIGlzIHRvIGVuc3VyZVxuICAgICAgICAgICAgICogdGhhdCBpZiBhIGZvbGxvdyBjb21wb25lbnQgY292ZXJzIGEgbGVhZCBjb21wb25lbnQgaXQgZG9lc24ndCBibG9ja1xuICAgICAgICAgICAgICogcG9pbnRlciBldmVudHMgb24gdGhlIGxlYWQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMubGF5b3V0SWQpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS5wb2ludGVyRXZlbnRzID1cbiAgICAgICAgICAgICAgICAgICAgbGVhZCA9PT0gdGhpc1xuICAgICAgICAgICAgICAgICAgICAgICAgPyByZXNvbHZlTW90aW9uVmFsdWUoc3R5bGVQcm9wPy5wb2ludGVyRXZlbnRzKSB8fCBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwibm9uZVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNsZWFyU25hcHNob3QoKSB7XG4gICAgICAgICAgICB0aGlzLnJlc3VtZUZyb20gPSB0aGlzLnNuYXBzaG90ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgcnVuIG9uIHJvb3RcbiAgICAgICAgcmVzZXRUcmVlKCkge1xuICAgICAgICAgICAgdGhpcy5yb290Lm5vZGVzLmZvckVhY2goKG5vZGUpID0+IG5vZGUuY3VycmVudEFuaW1hdGlvbj8uc3RvcCgpKTtcbiAgICAgICAgICAgIHRoaXMucm9vdC5ub2Rlcy5mb3JFYWNoKGNsZWFyTWVhc3VyZW1lbnRzKTtcbiAgICAgICAgICAgIHRoaXMucm9vdC5zaGFyZWROb2Rlcy5jbGVhcigpO1xuICAgICAgICB9XG4gICAgfTtcbn1cbmZ1bmN0aW9uIHVwZGF0ZUxheW91dChub2RlKSB7XG4gICAgbm9kZS51cGRhdGVMYXlvdXQoKTtcbn1cbmZ1bmN0aW9uIG5vdGlmeUxheW91dFVwZGF0ZShub2RlKSB7XG4gICAgY29uc3Qgc25hcHNob3QgPSBub2RlLnJlc3VtZUZyb20/LnNuYXBzaG90IHx8IG5vZGUuc25hcHNob3Q7XG4gICAgaWYgKG5vZGUuaXNMZWFkKCkgJiZcbiAgICAgICAgbm9kZS5sYXlvdXQgJiZcbiAgICAgICAgc25hcHNob3QgJiZcbiAgICAgICAgbm9kZS5oYXNMaXN0ZW5lcnMoXCJkaWRVcGRhdGVcIikpIHtcbiAgICAgICAgY29uc3QgeyBsYXlvdXRCb3g6IGxheW91dCwgbWVhc3VyZWRCb3g6IG1lYXN1cmVkTGF5b3V0IH0gPSBub2RlLmxheW91dDtcbiAgICAgICAgY29uc3QgeyBhbmltYXRpb25UeXBlIH0gPSBub2RlLm9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGlzU2hhcmVkID0gc25hcHNob3Quc291cmNlICE9PSBub2RlLmxheW91dC5zb3VyY2U7XG4gICAgICAgIC8vIFRPRE8gTWF5YmUgd2Ugd2FudCB0byBhbHNvIHJlc2l6ZSB0aGUgbGF5b3V0IHNuYXBzaG90IHNvIHdlIGRvbid0IHRyaWdnZXJcbiAgICAgICAgLy8gYW5pbWF0aW9ucyBmb3IgaW5zdGFuY2UgaWYgbGF5b3V0PVwic2l6ZVwiIGFuZCBhbiBlbGVtZW50IGhhcyBvbmx5IGNoYW5nZWQgcG9zaXRpb25cbiAgICAgICAgaWYgKGFuaW1hdGlvblR5cGUgPT09IFwic2l6ZVwiKSB7XG4gICAgICAgICAgICBlYWNoQXhpcygoYXhpcykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF4aXNTbmFwc2hvdCA9IGlzU2hhcmVkXG4gICAgICAgICAgICAgICAgICAgID8gc25hcHNob3QubWVhc3VyZWRCb3hbYXhpc11cbiAgICAgICAgICAgICAgICAgICAgOiBzbmFwc2hvdC5sYXlvdXRCb3hbYXhpc107XG4gICAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gY2FsY0xlbmd0aChheGlzU25hcHNob3QpO1xuICAgICAgICAgICAgICAgIGF4aXNTbmFwc2hvdC5taW4gPSBsYXlvdXRbYXhpc10ubWluO1xuICAgICAgICAgICAgICAgIGF4aXNTbmFwc2hvdC5tYXggPSBheGlzU25hcHNob3QubWluICsgbGVuZ3RoO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc2hvdWxkQW5pbWF0ZVBvc2l0aW9uT25seShhbmltYXRpb25UeXBlLCBzbmFwc2hvdC5sYXlvdXRCb3gsIGxheW91dCkpIHtcbiAgICAgICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXhpc1NuYXBzaG90ID0gaXNTaGFyZWRcbiAgICAgICAgICAgICAgICAgICAgPyBzbmFwc2hvdC5tZWFzdXJlZEJveFtheGlzXVxuICAgICAgICAgICAgICAgICAgICA6IHNuYXBzaG90LmxheW91dEJveFtheGlzXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBjYWxjTGVuZ3RoKGxheW91dFtheGlzXSk7XG4gICAgICAgICAgICAgICAgYXhpc1NuYXBzaG90Lm1heCA9IGF4aXNTbmFwc2hvdC5taW4gKyBsZW5ndGg7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRW5zdXJlIHJlbGF0aXZlIHRhcmdldCBnZXRzIHJlc2l6ZWQgYW5kIHJlcmVuZGVyZXJkXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKG5vZGUucmVsYXRpdmVUYXJnZXQgJiYgIW5vZGUuY3VycmVudEFuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBub2RlLmlzUHJvamVjdGlvbkRpcnR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5yZWxhdGl2ZVRhcmdldFtheGlzXS5tYXggPVxuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5yZWxhdGl2ZVRhcmdldFtheGlzXS5taW4gKyBsZW5ndGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGF5b3V0RGVsdGEgPSBjcmVhdGVEZWx0YSgpO1xuICAgICAgICBjYWxjQm94RGVsdGEobGF5b3V0RGVsdGEsIGxheW91dCwgc25hcHNob3QubGF5b3V0Qm94KTtcbiAgICAgICAgY29uc3QgdmlzdWFsRGVsdGEgPSBjcmVhdGVEZWx0YSgpO1xuICAgICAgICBpZiAoaXNTaGFyZWQpIHtcbiAgICAgICAgICAgIGNhbGNCb3hEZWx0YSh2aXN1YWxEZWx0YSwgbm9kZS5hcHBseVRyYW5zZm9ybShtZWFzdXJlZExheW91dCwgdHJ1ZSksIHNuYXBzaG90Lm1lYXN1cmVkQm94KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNhbGNCb3hEZWx0YSh2aXN1YWxEZWx0YSwgbGF5b3V0LCBzbmFwc2hvdC5sYXlvdXRCb3gpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhhc0xheW91dENoYW5nZWQgPSAhaXNEZWx0YVplcm8obGF5b3V0RGVsdGEpO1xuICAgICAgICBsZXQgaGFzUmVsYXRpdmVMYXlvdXRDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIGlmICghbm9kZS5yZXN1bWVGcm9tKSB7XG4gICAgICAgICAgICBjb25zdCByZWxhdGl2ZVBhcmVudCA9IG5vZGUuZ2V0Q2xvc2VzdFByb2plY3RpbmdQYXJlbnQoKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhlIHJlbGF0aXZlUGFyZW50IGlzIGl0c2VsZiByZXN1bWluZyBmcm9tIGEgZGlmZmVyZW50IGVsZW1lbnQgdGhlblxuICAgICAgICAgICAgICogdGhlIHJlbGF0aXZlIHNuYXBzaG90IGlzIG5vdCByZWxhdmVudFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAocmVsYXRpdmVQYXJlbnQgJiYgIXJlbGF0aXZlUGFyZW50LnJlc3VtZUZyb20pIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNuYXBzaG90OiBwYXJlbnRTbmFwc2hvdCwgbGF5b3V0OiBwYXJlbnRMYXlvdXQgfSA9IHJlbGF0aXZlUGFyZW50O1xuICAgICAgICAgICAgICAgIGlmIChwYXJlbnRTbmFwc2hvdCAmJiBwYXJlbnRMYXlvdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVTbmFwc2hvdCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgICAgICAgICBjYWxjUmVsYXRpdmVQb3NpdGlvbihyZWxhdGl2ZVNuYXBzaG90LCBzbmFwc2hvdC5sYXlvdXRCb3gsIHBhcmVudFNuYXBzaG90LmxheW91dEJveCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0aXZlTGF5b3V0ID0gY3JlYXRlQm94KCk7XG4gICAgICAgICAgICAgICAgICAgIGNhbGNSZWxhdGl2ZVBvc2l0aW9uKHJlbGF0aXZlTGF5b3V0LCBsYXlvdXQsIHBhcmVudExheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWJveEVxdWFsc1JvdW5kZWQocmVsYXRpdmVTbmFwc2hvdCwgcmVsYXRpdmVMYXlvdXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNSZWxhdGl2ZUxheW91dENoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWxhdGl2ZVBhcmVudC5vcHRpb25zLmxheW91dFJvb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUucmVsYXRpdmVUYXJnZXQgPSByZWxhdGl2ZUxheW91dDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUucmVsYXRpdmVUYXJnZXRPcmlnaW4gPSByZWxhdGl2ZVNuYXBzaG90O1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5yZWxhdGl2ZVBhcmVudCA9IHJlbGF0aXZlUGFyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5vZGUubm90aWZ5TGlzdGVuZXJzKFwiZGlkVXBkYXRlXCIsIHtcbiAgICAgICAgICAgIGxheW91dCxcbiAgICAgICAgICAgIHNuYXBzaG90LFxuICAgICAgICAgICAgZGVsdGE6IHZpc3VhbERlbHRhLFxuICAgICAgICAgICAgbGF5b3V0RGVsdGEsXG4gICAgICAgICAgICBoYXNMYXlvdXRDaGFuZ2VkLFxuICAgICAgICAgICAgaGFzUmVsYXRpdmVMYXlvdXRDaGFuZ2VkLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZWxzZSBpZiAobm9kZS5pc0xlYWQoKSkge1xuICAgICAgICBjb25zdCB7IG9uRXhpdENvbXBsZXRlIH0gPSBub2RlLm9wdGlvbnM7XG4gICAgICAgIG9uRXhpdENvbXBsZXRlICYmIG9uRXhpdENvbXBsZXRlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENsZWFyaW5nIHRyYW5zaXRpb25cbiAgICAgKiBUT0RPOiBJbnZlc3RpZ2F0ZSB3aHkgdGhpcyB0cmFuc2l0aW9uIGlzIGJlaW5nIHBhc3NlZCBpbiBhcyB7dHlwZTogZmFsc2UgfSBmcm9tIEZyYW1lclxuICAgICAqIGFuZCB3aHkgd2UgbmVlZCBpdCBhdCBhbGxcbiAgICAgKi9cbiAgICBub2RlLm9wdGlvbnMudHJhbnNpdGlvbiA9IHVuZGVmaW5lZDtcbn1cbmZ1bmN0aW9uIHByb3BhZ2F0ZURpcnR5Tm9kZXMobm9kZSkge1xuICAgIC8qKlxuICAgICAqIEluY3JlYXNlIGRlYnVnIGNvdW50ZXIgZm9yIG5vZGVzIGVuY291bnRlcmVkIHRoaXMgZnJhbWVcbiAgICAgKi9cbiAgICBpZiAoc3RhdHNCdWZmZXIudmFsdWUpIHtcbiAgICAgICAgbWV0cmljcy5ub2RlcysrO1xuICAgIH1cbiAgICBpZiAoIW5vZGUucGFyZW50KVxuICAgICAgICByZXR1cm47XG4gICAgLyoqXG4gICAgICogSWYgdGhpcyBub2RlIGlzbid0IHByb2plY3RpbmcsIHByb3BhZ2F0ZSBpc1Byb2plY3Rpb25EaXJ0eS4gSXQgd2lsbCBoYXZlXG4gICAgICogbm8gcGVyZm9ybWFuY2UgaW1wYWN0IGJ1dCBpdCB3aWxsIGFsbG93IHRoZSBuZXh0IGNoaWxkIHRoYXQgKmlzKiBwcm9qZWN0aW5nXG4gICAgICogYnV0ICppc24ndCogZGlydHkgdG8ganVzdCBjaGVjayBpdHMgcGFyZW50IHRvIHNlZSBpZiAqYW55KiBhbmNlc3RvciBuZWVkc1xuICAgICAqIGNvcnJlY3RpbmcuXG4gICAgICovXG4gICAgaWYgKCFub2RlLmlzUHJvamVjdGluZygpKSB7XG4gICAgICAgIG5vZGUuaXNQcm9qZWN0aW9uRGlydHkgPSBub2RlLnBhcmVudC5pc1Byb2plY3Rpb25EaXJ0eTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUHJvcGFnYXRlIGlzU2hhcmVkUHJvamVjdGlvbkRpcnR5IGFuZCBpc1RyYW5zZm9ybURpcnR5XG4gICAgICogdGhyb3VnaG91dCB0aGUgd2hvbGUgdHJlZS4gQSBmdXR1cmUgcmV2aXNpb24gY2FuIHRha2UgYW5vdGhlciBsb29rIGF0XG4gICAgICogdGhpcyBidXQgZm9yIHNhZmV0eSB3ZSBzdGlsbCByZWNhbGN1YWx0ZSBzaGFyZWQgbm9kZXMuXG4gICAgICovXG4gICAgbm9kZS5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eSB8fCAobm9kZS5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eSA9IEJvb2xlYW4obm9kZS5pc1Byb2plY3Rpb25EaXJ0eSB8fFxuICAgICAgICBub2RlLnBhcmVudC5pc1Byb2plY3Rpb25EaXJ0eSB8fFxuICAgICAgICBub2RlLnBhcmVudC5pc1NoYXJlZFByb2plY3Rpb25EaXJ0eSkpO1xuICAgIG5vZGUuaXNUcmFuc2Zvcm1EaXJ0eSB8fCAobm9kZS5pc1RyYW5zZm9ybURpcnR5ID0gbm9kZS5wYXJlbnQuaXNUcmFuc2Zvcm1EaXJ0eSk7XG59XG5mdW5jdGlvbiBjbGVhbkRpcnR5Tm9kZXMobm9kZSkge1xuICAgIG5vZGUuaXNQcm9qZWN0aW9uRGlydHkgPVxuICAgICAgICBub2RlLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5ID1cbiAgICAgICAgICAgIG5vZGUuaXNUcmFuc2Zvcm1EaXJ0eSA9XG4gICAgICAgICAgICAgICAgZmFsc2U7XG59XG5mdW5jdGlvbiBjbGVhclNuYXBzaG90KG5vZGUpIHtcbiAgICBub2RlLmNsZWFyU25hcHNob3QoKTtcbn1cbmZ1bmN0aW9uIGNsZWFyTWVhc3VyZW1lbnRzKG5vZGUpIHtcbiAgICBub2RlLmNsZWFyTWVhc3VyZW1lbnRzKCk7XG59XG5mdW5jdGlvbiBjbGVhcklzTGF5b3V0RGlydHkobm9kZSkge1xuICAgIG5vZGUuaXNMYXlvdXREaXJ0eSA9IGZhbHNlO1xufVxuZnVuY3Rpb24gcmVzZXRUcmFuc2Zvcm1TdHlsZShub2RlKSB7XG4gICAgY29uc3QgeyB2aXN1YWxFbGVtZW50IH0gPSBub2RlLm9wdGlvbnM7XG4gICAgaWYgKHZpc3VhbEVsZW1lbnQgJiYgdmlzdWFsRWxlbWVudC5nZXRQcm9wcygpLm9uQmVmb3JlTGF5b3V0TWVhc3VyZSkge1xuICAgICAgICB2aXN1YWxFbGVtZW50Lm5vdGlmeShcIkJlZm9yZUxheW91dE1lYXN1cmVcIik7XG4gICAgfVxuICAgIG5vZGUucmVzZXRUcmFuc2Zvcm0oKTtcbn1cbmZ1bmN0aW9uIGZpbmlzaEFuaW1hdGlvbihub2RlKSB7XG4gICAgbm9kZS5maW5pc2hBbmltYXRpb24oKTtcbiAgICBub2RlLnRhcmdldERlbHRhID0gbm9kZS5yZWxhdGl2ZVRhcmdldCA9IG5vZGUudGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgIG5vZGUuaXNQcm9qZWN0aW9uRGlydHkgPSB0cnVlO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVRhcmdldERlbHRhKG5vZGUpIHtcbiAgICBub2RlLnJlc29sdmVUYXJnZXREZWx0YSgpO1xufVxuZnVuY3Rpb24gY2FsY1Byb2plY3Rpb24obm9kZSkge1xuICAgIG5vZGUuY2FsY1Byb2plY3Rpb24oKTtcbn1cbmZ1bmN0aW9uIHJlc2V0U2tld0FuZFJvdGF0aW9uKG5vZGUpIHtcbiAgICBub2RlLnJlc2V0U2tld0FuZFJvdGF0aW9uKCk7XG59XG5mdW5jdGlvbiByZW1vdmVMZWFkU25hcHNob3RzKHN0YWNrKSB7XG4gICAgc3RhY2sucmVtb3ZlTGVhZFNuYXBzaG90KCk7XG59XG5mdW5jdGlvbiBtaXhBeGlzRGVsdGEob3V0cHV0LCBkZWx0YSwgcCkge1xuICAgIG91dHB1dC50cmFuc2xhdGUgPSBtaXhOdW1iZXIoZGVsdGEudHJhbnNsYXRlLCAwLCBwKTtcbiAgICBvdXRwdXQuc2NhbGUgPSBtaXhOdW1iZXIoZGVsdGEuc2NhbGUsIDEsIHApO1xuICAgIG91dHB1dC5vcmlnaW4gPSBkZWx0YS5vcmlnaW47XG4gICAgb3V0cHV0Lm9yaWdpblBvaW50ID0gZGVsdGEub3JpZ2luUG9pbnQ7XG59XG5mdW5jdGlvbiBtaXhBeGlzKG91dHB1dCwgZnJvbSwgdG8sIHApIHtcbiAgICBvdXRwdXQubWluID0gbWl4TnVtYmVyKGZyb20ubWluLCB0by5taW4sIHApO1xuICAgIG91dHB1dC5tYXggPSBtaXhOdW1iZXIoZnJvbS5tYXgsIHRvLm1heCwgcCk7XG59XG5mdW5jdGlvbiBtaXhCb3gob3V0cHV0LCBmcm9tLCB0bywgcCkge1xuICAgIG1peEF4aXMob3V0cHV0LngsIGZyb20ueCwgdG8ueCwgcCk7XG4gICAgbWl4QXhpcyhvdXRwdXQueSwgZnJvbS55LCB0by55LCBwKTtcbn1cbmZ1bmN0aW9uIGhhc09wYWNpdHlDcm9zc2ZhZGUobm9kZSkge1xuICAgIHJldHVybiAobm9kZS5hbmltYXRpb25WYWx1ZXMgJiYgbm9kZS5hbmltYXRpb25WYWx1ZXMub3BhY2l0eUV4aXQgIT09IHVuZGVmaW5lZCk7XG59XG5jb25zdCBkZWZhdWx0TGF5b3V0VHJhbnNpdGlvbiA9IHtcbiAgICBkdXJhdGlvbjogMC40NSxcbiAgICBlYXNlOiBbMC40LCAwLCAwLjEsIDFdLFxufTtcbmNvbnN0IHVzZXJBZ2VudENvbnRhaW5zID0gKHN0cmluZykgPT4gdHlwZW9mIG5hdmlnYXRvciAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgIG5hdmlnYXRvci51c2VyQWdlbnQgJiZcbiAgICBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc3RyaW5nKTtcbi8qKlxuICogTWVhc3VyZWQgYm91bmRpbmcgYm94ZXMgbXVzdCBiZSByb3VuZGVkIGluIFNhZmFyaSBhbmRcbiAqIGxlZnQgdW50b3VjaGVkIGluIENocm9tZSwgb3RoZXJ3aXNlIG5vbi1pbnRlZ2VyIGxheW91dHMgd2l0aGluIHNjYWxlZC11cCBlbGVtZW50c1xuICogY2FuIGFwcGVhciB0byBqdW1wLlxuICovXG5jb25zdCByb3VuZFBvaW50ID0gdXNlckFnZW50Q29udGFpbnMoXCJhcHBsZXdlYmtpdC9cIikgJiYgIXVzZXJBZ2VudENvbnRhaW5zKFwiY2hyb21lL1wiKVxuICAgID8gTWF0aC5yb3VuZFxuICAgIDogbm9vcDtcbmZ1bmN0aW9uIHJvdW5kQXhpcyhheGlzKSB7XG4gICAgLy8gUm91bmQgdG8gdGhlIG5lYXJlc3QgLjUgcGl4ZWxzIHRvIHN1cHBvcnQgc3VicGl4ZWwgbGF5b3V0c1xuICAgIGF4aXMubWluID0gcm91bmRQb2ludChheGlzLm1pbik7XG4gICAgYXhpcy5tYXggPSByb3VuZFBvaW50KGF4aXMubWF4KTtcbn1cbmZ1bmN0aW9uIHJvdW5kQm94KGJveCkge1xuICAgIHJvdW5kQXhpcyhib3gueCk7XG4gICAgcm91bmRBeGlzKGJveC55KTtcbn1cbmZ1bmN0aW9uIHNob3VsZEFuaW1hdGVQb3NpdGlvbk9ubHkoYW5pbWF0aW9uVHlwZSwgc25hcHNob3QsIGxheW91dCkge1xuICAgIHJldHVybiAoYW5pbWF0aW9uVHlwZSA9PT0gXCJwb3NpdGlvblwiIHx8XG4gICAgICAgIChhbmltYXRpb25UeXBlID09PSBcInByZXNlcnZlLWFzcGVjdFwiICYmXG4gICAgICAgICAgICAhaXNOZWFyKGFzcGVjdFJhdGlvKHNuYXBzaG90KSwgYXNwZWN0UmF0aW8obGF5b3V0KSwgMC4yKSkpO1xufVxuZnVuY3Rpb24gY2hlY2tOb2RlV2FzU2Nyb2xsUm9vdChub2RlKSB7XG4gICAgcmV0dXJuIG5vZGUgIT09IG5vZGUucm9vdCAmJiBub2RlLnNjcm9sbD8ud2FzUm9vdDtcbn1cblxuZXhwb3J0IHsgY2xlYW5EaXJ0eU5vZGVzLCBjcmVhdGVQcm9qZWN0aW9uTm9kZSwgbWl4QXhpcywgbWl4QXhpc0RlbHRhLCBtaXhCb3gsIHByb3BhZ2F0ZURpcnR5Tm9kZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZS1wcm9qZWN0aW9uLW5vZGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/node/state.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/state.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 */ globalProjectionState: () => (/* binding */ globalProjectionState)\n/* harmony export */ });\n/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\n\n//# sourceMappingURL=state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vbm9kZS9zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWlDO0FBQ2pDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL25vZGUvc3RhdGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhpcyBzaG91bGQgb25seSBldmVyIGJlIG1vZGlmaWVkIG9uIHRoZSBjbGllbnQgb3RoZXJ3aXNlIGl0J2xsXG4gKiBwZXJzaXN0IHRocm91Z2ggc2VydmVyIHJlcXVlc3RzLiBJZiB3ZSBuZWVkIGluc3RhbmNlZCBzdGF0ZXMgd2VcbiAqIGNvdWxkIGxhenktaW5pdCB2aWEgcm9vdC5cbiAqL1xuY29uc3QgZ2xvYmFsUHJvamVjdGlvblN0YXRlID0ge1xuICAgIC8qKlxuICAgICAqIEdsb2JhbCBmbGFnIGFzIHRvIHdoZXRoZXIgdGhlIHRyZWUgaGFzIGFuaW1hdGVkIHNpbmNlIHRoZSBsYXN0IHRpbWVcbiAgICAgKiB3ZSByZXNpemVkIHRoZSB3aW5kb3dcbiAgICAgKi9cbiAgICBoYXNBbmltYXRlZFNpbmNlUmVzaXplOiB0cnVlLFxuICAgIC8qKlxuICAgICAqIFdlIHNldCB0aGlzIHRvIHRydWUgb25jZSwgb24gdGhlIGZpcnN0IHVwZGF0ZS4gQW55IG5vZGVzIGFkZGVkIHRvIHRoZSB0cmVlIGJleW9uZCB0aGF0XG4gICAgICogdXBkYXRlIHdpbGwgYmUgZ2l2ZW4gYSBgZGF0YS1wcm9qZWN0aW9uLWlkYCBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgaGFzRXZlclVwZGF0ZWQ6IGZhbHNlLFxufTtcblxuZXhwb3J0IHsgZ2xvYmFsUHJvamVjdGlvblN0YXRlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdGF0ZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/node/state.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/shared/stack.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/shared/stack.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 */ NodeStack: () => (/* binding */ NodeStack)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/array.mjs\");\n\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.members, node);\n for (let i = this.members.length - 1; i >= 0; i--) {\n const m = this.members[i];\n if (m === node || m === this.lead || m === this.prevLead)\n continue;\n const inst = m.instance;\n if (inst && inst.isConnected === false && m.isPresent !== false && !m.snapshot) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.members, m);\n }\n }\n node.scheduleRender();\n }\n remove(node) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n const inst = member.instance;\n if (member.isPresent !== false && (!inst || inst.isConnected !== false)) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n /**\n * If both the new and previous lead have the same defined layoutDependency,\n * skip the shared layout animation. This allows components with layoutId\n * to opt-out of animations when their layoutDependency hasn't changed,\n * even when the component unmounts and remounts in a different location.\n */\n const prevDep = prevLead.options.layoutDependency;\n const nextDep = node.options.layoutDependency;\n const dependencyMatches = prevDep !== undefined &&\n nextDep !== undefined &&\n prevDep === nextDep;\n if (!dependencyMatches) {\n const prevInstance = prevLead.instance;\n const isStale = prevInstance && prevInstance.isConnected === false && !prevLead.snapshot;\n if (!isStale) {\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if (node.root && node.root.isUpdating) {\n node.isLayoutDirty = true;\n }\n }\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n const { options, resumingFrom } = node;\n options.onExitComplete && options.onExitComplete();\n if (resumingFrom) {\n resumingFrom.options.onExitComplete &&\n resumingFrom.options.onExitComplete();\n }\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\n\n//# sourceMappingURL=stack.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vc2hhcmVkL3N0YWNrLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF5RDs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsMkRBQWE7QUFDckIsOENBQThDLFFBQVE7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQix3REFBVTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx3REFBVTtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsUUFBUTtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsWUFBWTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix3QkFBd0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVxQjtBQUNyQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zaGFyZWQvc3RhY2subWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFVuaXF1ZUl0ZW0sIHJlbW92ZUl0ZW0gfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuXG5jbGFzcyBOb2RlU3RhY2sge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLm1lbWJlcnMgPSBbXTtcbiAgICB9XG4gICAgYWRkKG5vZGUpIHtcbiAgICAgICAgYWRkVW5pcXVlSXRlbSh0aGlzLm1lbWJlcnMsIG5vZGUpO1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5tZW1iZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBtID0gdGhpcy5tZW1iZXJzW2ldO1xuICAgICAgICAgICAgaWYgKG0gPT09IG5vZGUgfHwgbSA9PT0gdGhpcy5sZWFkIHx8IG0gPT09IHRoaXMucHJldkxlYWQpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBjb25zdCBpbnN0ID0gbS5pbnN0YW5jZTtcbiAgICAgICAgICAgIGlmIChpbnN0ICYmIGluc3QuaXNDb25uZWN0ZWQgPT09IGZhbHNlICYmIG0uaXNQcmVzZW50ICE9PSBmYWxzZSAmJiAhbS5zbmFwc2hvdCkge1xuICAgICAgICAgICAgICAgIHJlbW92ZUl0ZW0odGhpcy5tZW1iZXJzLCBtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBub2RlLnNjaGVkdWxlUmVuZGVyKCk7XG4gICAgfVxuICAgIHJlbW92ZShub2RlKSB7XG4gICAgICAgIHJlbW92ZUl0ZW0odGhpcy5tZW1iZXJzLCBub2RlKTtcbiAgICAgICAgaWYgKG5vZGUgPT09IHRoaXMucHJldkxlYWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJldkxlYWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUgPT09IHRoaXMubGVhZCkge1xuICAgICAgICAgICAgY29uc3QgcHJldkxlYWQgPSB0aGlzLm1lbWJlcnNbdGhpcy5tZW1iZXJzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgaWYgKHByZXZMZWFkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9tb3RlKHByZXZMZWFkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZWxlZ2F0ZShub2RlKSB7XG4gICAgICAgIGNvbnN0IGluZGV4T2ZOb2RlID0gdGhpcy5tZW1iZXJzLmZpbmRJbmRleCgobWVtYmVyKSA9PiBub2RlID09PSBtZW1iZXIpO1xuICAgICAgICBpZiAoaW5kZXhPZk5vZGUgPT09IDApXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBGaW5kIHRoZSBuZXh0IHByb2plY3Rpb24gbm9kZSB0aGF0IGlzIHByZXNlbnRcbiAgICAgICAgICovXG4gICAgICAgIGxldCBwcmV2TGVhZDtcbiAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4T2ZOb2RlOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgY29uc3QgbWVtYmVyID0gdGhpcy5tZW1iZXJzW2ldO1xuICAgICAgICAgICAgY29uc3QgaW5zdCA9IG1lbWJlci5pbnN0YW5jZTtcbiAgICAgICAgICAgIGlmIChtZW1iZXIuaXNQcmVzZW50ICE9PSBmYWxzZSAmJiAoIWluc3QgfHwgaW5zdC5pc0Nvbm5lY3RlZCAhPT0gZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgcHJldkxlYWQgPSBtZW1iZXI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHByZXZMZWFkKSB7XG4gICAgICAgICAgICB0aGlzLnByb21vdGUocHJldkxlYWQpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvbW90ZShub2RlLCBwcmVzZXJ2ZUZvbGxvd09wYWNpdHkpIHtcbiAgICAgICAgY29uc3QgcHJldkxlYWQgPSB0aGlzLmxlYWQ7XG4gICAgICAgIGlmIChub2RlID09PSBwcmV2TGVhZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5wcmV2TGVhZCA9IHByZXZMZWFkO1xuICAgICAgICB0aGlzLmxlYWQgPSBub2RlO1xuICAgICAgICBub2RlLnNob3coKTtcbiAgICAgICAgaWYgKHByZXZMZWFkKSB7XG4gICAgICAgICAgICBwcmV2TGVhZC5pbnN0YW5jZSAmJiBwcmV2TGVhZC5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICAgICAgbm9kZS5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiBib3RoIHRoZSBuZXcgYW5kIHByZXZpb3VzIGxlYWQgaGF2ZSB0aGUgc2FtZSBkZWZpbmVkIGxheW91dERlcGVuZGVuY3ksXG4gICAgICAgICAgICAgKiBza2lwIHRoZSBzaGFyZWQgbGF5b3V0IGFuaW1hdGlvbi4gVGhpcyBhbGxvd3MgY29tcG9uZW50cyB3aXRoIGxheW91dElkXG4gICAgICAgICAgICAgKiB0byBvcHQtb3V0IG9mIGFuaW1hdGlvbnMgd2hlbiB0aGVpciBsYXlvdXREZXBlbmRlbmN5IGhhc24ndCBjaGFuZ2VkLFxuICAgICAgICAgICAgICogZXZlbiB3aGVuIHRoZSBjb21wb25lbnQgdW5tb3VudHMgYW5kIHJlbW91bnRzIGluIGEgZGlmZmVyZW50IGxvY2F0aW9uLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBwcmV2RGVwID0gcHJldkxlYWQub3B0aW9ucy5sYXlvdXREZXBlbmRlbmN5O1xuICAgICAgICAgICAgY29uc3QgbmV4dERlcCA9IG5vZGUub3B0aW9ucy5sYXlvdXREZXBlbmRlbmN5O1xuICAgICAgICAgICAgY29uc3QgZGVwZW5kZW5jeU1hdGNoZXMgPSBwcmV2RGVwICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBuZXh0RGVwICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICAgICBwcmV2RGVwID09PSBuZXh0RGVwO1xuICAgICAgICAgICAgaWYgKCFkZXBlbmRlbmN5TWF0Y2hlcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXZJbnN0YW5jZSA9IHByZXZMZWFkLmluc3RhbmNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzU3RhbGUgPSBwcmV2SW5zdGFuY2UgJiYgcHJldkluc3RhbmNlLmlzQ29ubmVjdGVkID09PSBmYWxzZSAmJiAhcHJldkxlYWQuc25hcHNob3Q7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1N0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUucmVzdW1lRnJvbSA9IHByZXZMZWFkO1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJlc2VydmVGb2xsb3dPcGFjaXR5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLnJlc3VtZUZyb20ucHJlc2VydmVPcGFjaXR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAocHJldkxlYWQuc25hcHNob3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuc25hcHNob3QgPSBwcmV2TGVhZC5zbmFwc2hvdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuc25hcHNob3QubGF0ZXN0VmFsdWVzID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2TGVhZC5hbmltYXRpb25WYWx1ZXMgfHwgcHJldkxlYWQubGF0ZXN0VmFsdWVzO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlLnJvb3QgJiYgbm9kZS5yb290LmlzVXBkYXRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUuaXNMYXlvdXREaXJ0eSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IGNyb3NzZmFkZSB9ID0gbm9kZS5vcHRpb25zO1xuICAgICAgICAgICAgaWYgKGNyb3NzZmFkZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBwcmV2TGVhZC5oaWRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZXhpdEFuaW1hdGlvbkNvbXBsZXRlKCkge1xuICAgICAgICB0aGlzLm1lbWJlcnMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBvcHRpb25zLCByZXN1bWluZ0Zyb20gfSA9IG5vZGU7XG4gICAgICAgICAgICBvcHRpb25zLm9uRXhpdENvbXBsZXRlICYmIG9wdGlvbnMub25FeGl0Q29tcGxldGUoKTtcbiAgICAgICAgICAgIGlmIChyZXN1bWluZ0Zyb20pIHtcbiAgICAgICAgICAgICAgICByZXN1bWluZ0Zyb20ub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSAmJlxuICAgICAgICAgICAgICAgICAgICByZXN1bWluZ0Zyb20ub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgc2NoZWR1bGVSZW5kZXIoKSB7XG4gICAgICAgIHRoaXMubWVtYmVycy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBub2RlLmluc3RhbmNlICYmIG5vZGUuc2NoZWR1bGVSZW5kZXIoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYXIgYW55IGxlYWRzIHRoYXQgaGF2ZSBiZWVuIHJlbW92ZWQgdGhpcyByZW5kZXIgdG8gcHJldmVudCB0aGVtIGZyb20gYmVpbmdcbiAgICAgKiB1c2VkIGluIGZ1dHVyZSBhbmltYXRpb25zIGFuZCB0byBwcmV2ZW50IG1lbW9yeSBsZWFrc1xuICAgICAqL1xuICAgIHJlbW92ZUxlYWRTbmFwc2hvdCgpIHtcbiAgICAgICAgaWYgKHRoaXMubGVhZCAmJiB0aGlzLmxlYWQuc25hcHNob3QpIHtcbiAgICAgICAgICAgIHRoaXMubGVhZC5zbmFwc2hvdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgTm9kZVN0YWNrIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdGFjay5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/shared/stack.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.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 */ correctBorderRadius: () => (/* binding */ correctBorderRadius),\n/* harmony export */ pixelsToPercent: () => (/* binding */ pixelsToPercent)\n/* harmony export */ });\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/numbers/units.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (_value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\n\n//# sourceMappingURL=scale-border-radius.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWJvcmRlci1yYWRpdXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5RDs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDhEQUFFO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixFQUFFLElBQUksRUFBRTtBQUMxQixLQUFLO0FBQ0w7O0FBRWdEO0FBQ2hEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3N0eWxlcy9zY2FsZS1ib3JkZXItcmFkaXVzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBweCB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL251bWJlcnMvdW5pdHMubWpzJztcblxuZnVuY3Rpb24gcGl4ZWxzVG9QZXJjZW50KHBpeGVscywgYXhpcykge1xuICAgIGlmIChheGlzLm1heCA9PT0gYXhpcy5taW4pXG4gICAgICAgIHJldHVybiAwO1xuICAgIHJldHVybiAocGl4ZWxzIC8gKGF4aXMubWF4IC0gYXhpcy5taW4pKSAqIDEwMDtcbn1cbi8qKlxuICogV2UgYWx3YXlzIGNvcnJlY3QgYm9yZGVyUmFkaXVzIGFzIGEgcGVyY2VudGFnZSByYXRoZXIgdGhhbiBwaXhlbHMgdG8gcmVkdWNlIHBhaW50cy5cbiAqIEZvciBleGFtcGxlLCBpZiB5b3UgYXJlIHByb2plY3RpbmcgYSBib3ggdGhhdCBpcyAxMDBweCB3aWRlIHdpdGggYSAxMHB4IGJvcmRlclJhZGl1c1xuICogaW50byBhIGJveCB0aGF0IGlzIDIwMHB4IHdpZGUgd2l0aCBhIDIwcHggYm9yZGVyUmFkaXVzLCB0aGF0IGlzIGFjdHVhbGx5IGEgMTAlXG4gKiBib3JkZXJSYWRpdXMgaW4gYm90aCBzdGF0ZXMuIElmIHdlIGFuaW1hdGUgYmV0d2VlbiB0aGUgdHdvIGluIHBpeGVscyB0aGF0IHdpbGwgdHJpZ2dlclxuICogYSBwYWludCBlYWNoIHRpbWUuIElmIHdlIGFuaW1hdGUgYmV0d2VlbiB0aGUgdHdvIGluIHBlcmNlbnRhZ2Ugd2UnbGwgYXZvaWQgYSBwYWludC5cbiAqL1xuY29uc3QgY29ycmVjdEJvcmRlclJhZGl1cyA9IHtcbiAgICBjb3JyZWN0OiAobGF0ZXN0LCBub2RlKSA9PiB7XG4gICAgICAgIGlmICghbm9kZS50YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gbGF0ZXN0O1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgbGF0ZXN0IGlzIGEgc3RyaW5nLCBpZiBpdCdzIGEgcGVyY2VudGFnZSB3ZSBjYW4gcmV0dXJuIGltbWVkaWF0ZWx5IGFzIGl0J3NcbiAgICAgICAgICogZ29pbmcgdG8gYmUgc3RyZXRjaGVkIGFwcHJvcHJpYXRlbHkuIE90aGVyd2lzZSwgaWYgaXQncyBhIHBpeGVsLCBjb252ZXJ0IGl0IHRvIGEgbnVtYmVyLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHR5cGVvZiBsYXRlc3QgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGlmIChweC50ZXN0KGxhdGVzdCkpIHtcbiAgICAgICAgICAgICAgICBsYXRlc3QgPSBwYXJzZUZsb2F0KGxhdGVzdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGF0ZXN0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBsYXRlc3QgaXMgYSBudW1iZXIsIGl0J3MgYSBwaXhlbCB2YWx1ZS4gV2UgdXNlIHRoZSBjdXJyZW50IHZpZXdwb3J0Qm94IHRvIGNhbGN1bGF0ZSB0aGF0XG4gICAgICAgICAqIHBpeGVsIHZhbHVlIGFzIGEgcGVyY2VudGFnZSBvZiBlYWNoIGF4aXNcbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHggPSBwaXhlbHNUb1BlcmNlbnQobGF0ZXN0LCBub2RlLnRhcmdldC54KTtcbiAgICAgICAgY29uc3QgeSA9IHBpeGVsc1RvUGVyY2VudChsYXRlc3QsIG5vZGUudGFyZ2V0LnkpO1xuICAgICAgICByZXR1cm4gYCR7eH0lICR7eX0lYDtcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgY29ycmVjdEJvcmRlclJhZGl1cywgcGl4ZWxzVG9QZXJjZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY2FsZS1ib3JkZXItcmFkaXVzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.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 */ correctBoxShadow: () => (/* binding */ correctBoxShadow)\n/* harmony export */ });\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/complex/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\n\n//# sourceMappingURL=scale-box-shadow.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWJveC1zaGFkb3cubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE4RDtBQUNQOztBQUV2RDtBQUNBLHdCQUF3Qiw0QkFBNEI7QUFDcEQ7QUFDQSx1QkFBdUIsbUVBQU87QUFDOUI7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLG1FQUFPO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixnRUFBUztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWJveC1zaGFkb3cubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBsZXggfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9jb21wbGV4L2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBtaXhOdW1iZXIgfSBmcm9tICcuLi8uLi91dGlscy9taXgvbnVtYmVyLm1qcyc7XG5cbmNvbnN0IGNvcnJlY3RCb3hTaGFkb3cgPSB7XG4gICAgY29ycmVjdDogKGxhdGVzdCwgeyB0cmVlU2NhbGUsIHByb2plY3Rpb25EZWx0YSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsID0gbGF0ZXN0O1xuICAgICAgICBjb25zdCBzaGFkb3cgPSBjb21wbGV4LnBhcnNlKGxhdGVzdCk7XG4gICAgICAgIC8vIFRPRE86IERvZXNuJ3Qgc3VwcG9ydCBtdWx0aXBsZSBzaGFkb3dzXG4gICAgICAgIGlmIChzaGFkb3cubGVuZ3RoID4gNSlcbiAgICAgICAgICAgIHJldHVybiBvcmlnaW5hbDtcbiAgICAgICAgY29uc3QgdGVtcGxhdGUgPSBjb21wbGV4LmNyZWF0ZVRyYW5zZm9ybWVyKGxhdGVzdCk7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHR5cGVvZiBzaGFkb3dbMF0gIT09IFwibnVtYmVyXCIgPyAxIDogMDtcbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBvdmVyYWxsIGNvbnRleHQgc2NhbGVcbiAgICAgICAgY29uc3QgeFNjYWxlID0gcHJvamVjdGlvbkRlbHRhLnguc2NhbGUgKiB0cmVlU2NhbGUueDtcbiAgICAgICAgY29uc3QgeVNjYWxlID0gcHJvamVjdGlvbkRlbHRhLnkuc2NhbGUgKiB0cmVlU2NhbGUueTtcbiAgICAgICAgc2hhZG93WzAgKyBvZmZzZXRdIC89IHhTY2FsZTtcbiAgICAgICAgc2hhZG93WzEgKyBvZmZzZXRdIC89IHlTY2FsZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElkZWFsbHkgd2UnZCBjb3JyZWN0IHggYW5kIHkgc2NhbGVzIGluZGl2aWR1YWxseSwgYnV0IGJlY2F1c2UgYmx1ciBhbmRcbiAgICAgICAgICogc3ByZWFkIGFwcGx5IHRvIGJvdGggd2UgaGF2ZSB0byB0YWtlIGEgc2NhbGUgYXZlcmFnZSBhbmQgYXBwbHkgdGhhdCBpbnN0ZWFkLlxuICAgICAgICAgKiBXZSBjb3VsZCBwb3RlbnRpYWxseSBpbXByb3ZlIHRoZSBvdXRjb21lIG9mIHRoaXMgYnkgaW5jb3Jwb3JhdGluZyB0aGUgcmF0aW8gYmV0d2VlblxuICAgICAgICAgKiB0aGUgdHdvIHNjYWxlcy5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGF2ZXJhZ2VTY2FsZSA9IG1peE51bWJlcih4U2NhbGUsIHlTY2FsZSwgMC41KTtcbiAgICAgICAgLy8gQmx1clxuICAgICAgICBpZiAodHlwZW9mIHNoYWRvd1syICsgb2Zmc2V0XSA9PT0gXCJudW1iZXJcIilcbiAgICAgICAgICAgIHNoYWRvd1syICsgb2Zmc2V0XSAvPSBhdmVyYWdlU2NhbGU7XG4gICAgICAgIC8vIFNwcmVhZFxuICAgICAgICBpZiAodHlwZW9mIHNoYWRvd1szICsgb2Zmc2V0XSA9PT0gXCJudW1iZXJcIilcbiAgICAgICAgICAgIHNoYWRvd1szICsgb2Zmc2V0XSAvPSBhdmVyYWdlU2NhbGU7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZShzaGFkb3cpO1xuICAgIH0sXG59O1xuXG5leHBvcnQgeyBjb3JyZWN0Qm94U2hhZG93IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY2FsZS1ib3gtc2hhZG93Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/scale-correction.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 */ addScaleCorrector: () => (/* binding */ addScaleCorrector),\n/* harmony export */ scaleCorrectors: () => (/* binding */ scaleCorrectors)\n/* harmony export */ });\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../animation/utils/is-css-variable.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scale-border-radius.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs\");\n/* harmony import */ var _scale_box_shadow_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scale-box-shadow.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs\");\n\n\n\n\nconst scaleCorrectors = {\n borderRadius: {\n ..._scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n borderTopRightRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n borderBottomLeftRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n borderBottomRightRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n boxShadow: _scale_box_shadow_mjs__WEBPACK_IMPORTED_MODULE_1__.correctBoxShadow,\n};\nfunction addScaleCorrector(correctors) {\n for (const key in correctors) {\n scaleCorrectors[key] = correctors[key];\n if ((0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__.isCSSVariableName)(key)) {\n scaleCorrectors[key].isCSSVariable = true;\n }\n }\n}\n\n\n//# sourceMappingURL=scale-correction.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWNvcnJlY3Rpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQThFO0FBQ2Q7QUFDTjs7QUFFMUQ7QUFDQTtBQUNBLFdBQVcseUVBQW1CO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCx5QkFBeUIseUVBQW1CO0FBQzVDLDBCQUEwQix5RUFBbUI7QUFDN0MsNEJBQTRCLHlFQUFtQjtBQUMvQyw2QkFBNkIseUVBQW1CO0FBQ2hELGVBQWUsbUVBQWdCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx1RkFBaUI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7O0FBRThDO0FBQzlDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3N0eWxlcy9zY2FsZS1jb3JyZWN0aW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0NTU1ZhcmlhYmxlTmFtZSB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi91dGlscy9pcy1jc3MtdmFyaWFibGUubWpzJztcbmltcG9ydCB7IGNvcnJlY3RCb3JkZXJSYWRpdXMgfSBmcm9tICcuL3NjYWxlLWJvcmRlci1yYWRpdXMubWpzJztcbmltcG9ydCB7IGNvcnJlY3RCb3hTaGFkb3cgfSBmcm9tICcuL3NjYWxlLWJveC1zaGFkb3cubWpzJztcblxuY29uc3Qgc2NhbGVDb3JyZWN0b3JzID0ge1xuICAgIGJvcmRlclJhZGl1czoge1xuICAgICAgICAuLi5jb3JyZWN0Qm9yZGVyUmFkaXVzLFxuICAgICAgICBhcHBseVRvOiBbXG4gICAgICAgICAgICBcImJvcmRlclRvcExlZnRSYWRpdXNcIixcbiAgICAgICAgICAgIFwiYm9yZGVyVG9wUmlnaHRSYWRpdXNcIixcbiAgICAgICAgICAgIFwiYm9yZGVyQm90dG9tTGVmdFJhZGl1c1wiLFxuICAgICAgICAgICAgXCJib3JkZXJCb3R0b21SaWdodFJhZGl1c1wiLFxuICAgICAgICBdLFxuICAgIH0sXG4gICAgYm9yZGVyVG9wTGVmdFJhZGl1czogY29ycmVjdEJvcmRlclJhZGl1cyxcbiAgICBib3JkZXJUb3BSaWdodFJhZGl1czogY29ycmVjdEJvcmRlclJhZGl1cyxcbiAgICBib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiBjb3JyZWN0Qm9yZGVyUmFkaXVzLFxuICAgIGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiBjb3JyZWN0Qm9yZGVyUmFkaXVzLFxuICAgIGJveFNoYWRvdzogY29ycmVjdEJveFNoYWRvdyxcbn07XG5mdW5jdGlvbiBhZGRTY2FsZUNvcnJlY3Rvcihjb3JyZWN0b3JzKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY29ycmVjdG9ycykge1xuICAgICAgICBzY2FsZUNvcnJlY3RvcnNba2V5XSA9IGNvcnJlY3RvcnNba2V5XTtcbiAgICAgICAgaWYgKGlzQ1NTVmFyaWFibGVOYW1lKGtleSkpIHtcbiAgICAgICAgICAgIHNjYWxlQ29ycmVjdG9yc1trZXldLmlzQ1NTVmFyaWFibGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgeyBhZGRTY2FsZUNvcnJlY3Rvciwgc2NhbGVDb3JyZWN0b3JzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY2FsZS1jb3JyZWN0aW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/styles/transform.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/transform.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 */ buildProjectionTransform: () => (/* binding */ buildProjectionTransform)\n/* harmony export */ });\nfunction buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n const zTranslate = latestTransform?.z || 0;\n if (xTranslate || yTranslate || zTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY } = latestTransform;\n if (transformPerspective)\n transform = `perspective(${transformPerspective}px) ${transform}`;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n if (skewX)\n transform += `skewX(${skewX}deg) `;\n if (skewY)\n transform += `skewY(${skewY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\n\n//# sourceMappingURL=transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3RyYW5zZm9ybS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxXQUFXLE1BQU0sV0FBVyxNQUFNLFdBQVc7QUFDaEY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGdCQUFnQixJQUFJLGdCQUFnQjtBQUNsRTtBQUNBO0FBQ0EsZ0JBQWdCLCtEQUErRDtBQUMvRTtBQUNBLHVDQUF1QyxxQkFBcUIsTUFBTSxVQUFVO0FBQzVFO0FBQ0EsbUNBQW1DLE9BQU87QUFDMUM7QUFDQSxvQ0FBb0MsUUFBUTtBQUM1QztBQUNBLG9DQUFvQyxRQUFRO0FBQzVDO0FBQ0Esa0NBQWtDLE1BQU07QUFDeEM7QUFDQSxrQ0FBa0MsTUFBTTtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGNBQWMsSUFBSSxjQUFjO0FBQzlEO0FBQ0E7QUFDQTs7QUFFb0M7QUFDcEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3RyYW5zZm9ybS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gYnVpbGRQcm9qZWN0aW9uVHJhbnNmb3JtKGRlbHRhLCB0cmVlU2NhbGUsIGxhdGVzdFRyYW5zZm9ybSkge1xuICAgIGxldCB0cmFuc2Zvcm0gPSBcIlwiO1xuICAgIC8qKlxuICAgICAqIFRoZSB0cmFuc2xhdGlvbnMgd2UgdXNlIHRvIGNhbGN1bGF0ZSBhcmUgYWx3YXlzIHJlbGF0aXZlIHRvIHRoZSB2aWV3cG9ydCBjb29yZGluYXRlIHNwYWNlLlxuICAgICAqIEJ1dCB3aGVuIHdlIGFwcGx5IHNjYWxlcywgd2UgYWxzbyBzY2FsZSB0aGUgY29vcmRpbmF0ZSBzcGFjZSBvZiBhbiBlbGVtZW50IGFuZCBpdHMgY2hpbGRyZW4uXG4gICAgICogRm9yIGluc3RhbmNlIGlmIHdlIGhhdmUgYSB0cmVlU2NhbGUgKHRoZSBjdWxtaW5hdGlvbiBvZiBhbGwgcGFyZW50IHNjYWxlcykgb2YgMC41IGFuZCB3ZSBuZWVkXG4gICAgICogdG8gbW92ZSBhbiBlbGVtZW50IDEwMCBwaXhlbHMsIHdlIGFjdHVhbGx5IG5lZWQgdG8gbW92ZSBpdCAyMDAgaW4gd2l0aGluIHRoYXQgc2NhbGVkIHNwYWNlLlxuICAgICAqL1xuICAgIGNvbnN0IHhUcmFuc2xhdGUgPSBkZWx0YS54LnRyYW5zbGF0ZSAvIHRyZWVTY2FsZS54O1xuICAgIGNvbnN0IHlUcmFuc2xhdGUgPSBkZWx0YS55LnRyYW5zbGF0ZSAvIHRyZWVTY2FsZS55O1xuICAgIGNvbnN0IHpUcmFuc2xhdGUgPSBsYXRlc3RUcmFuc2Zvcm0/LnogfHwgMDtcbiAgICBpZiAoeFRyYW5zbGF0ZSB8fCB5VHJhbnNsYXRlIHx8IHpUcmFuc2xhdGUpIHtcbiAgICAgICAgdHJhbnNmb3JtID0gYHRyYW5zbGF0ZTNkKCR7eFRyYW5zbGF0ZX1weCwgJHt5VHJhbnNsYXRlfXB4LCAke3pUcmFuc2xhdGV9cHgpIGA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFwcGx5IHNjYWxlIGNvcnJlY3Rpb24gZm9yIHRoZSB0cmVlIHRyYW5zZm9ybS5cbiAgICAgKiBUaGlzIHdpbGwgYXBwbHkgc2NhbGUgdG8gdGhlIHNjcmVlbi1vcmllbnRhdGVkIGF4ZXMuXG4gICAgICovXG4gICAgaWYgKHRyZWVTY2FsZS54ICE9PSAxIHx8IHRyZWVTY2FsZS55ICE9PSAxKSB7XG4gICAgICAgIHRyYW5zZm9ybSArPSBgc2NhbGUoJHsxIC8gdHJlZVNjYWxlLnh9LCAkezEgLyB0cmVlU2NhbGUueX0pIGA7XG4gICAgfVxuICAgIGlmIChsYXRlc3RUcmFuc2Zvcm0pIHtcbiAgICAgICAgY29uc3QgeyB0cmFuc2Zvcm1QZXJzcGVjdGl2ZSwgcm90YXRlLCByb3RhdGVYLCByb3RhdGVZLCBza2V3WCwgc2tld1kgfSA9IGxhdGVzdFRyYW5zZm9ybTtcbiAgICAgICAgaWYgKHRyYW5zZm9ybVBlcnNwZWN0aXZlKVxuICAgICAgICAgICAgdHJhbnNmb3JtID0gYHBlcnNwZWN0aXZlKCR7dHJhbnNmb3JtUGVyc3BlY3RpdmV9cHgpICR7dHJhbnNmb3JtfWA7XG4gICAgICAgIGlmIChyb3RhdGUpXG4gICAgICAgICAgICB0cmFuc2Zvcm0gKz0gYHJvdGF0ZSgke3JvdGF0ZX1kZWcpIGA7XG4gICAgICAgIGlmIChyb3RhdGVYKVxuICAgICAgICAgICAgdHJhbnNmb3JtICs9IGByb3RhdGVYKCR7cm90YXRlWH1kZWcpIGA7XG4gICAgICAgIGlmIChyb3RhdGVZKVxuICAgICAgICAgICAgdHJhbnNmb3JtICs9IGByb3RhdGVZKCR7cm90YXRlWX1kZWcpIGA7XG4gICAgICAgIGlmIChza2V3WClcbiAgICAgICAgICAgIHRyYW5zZm9ybSArPSBgc2tld1goJHtza2V3WH1kZWcpIGA7XG4gICAgICAgIGlmIChza2V3WSlcbiAgICAgICAgICAgIHRyYW5zZm9ybSArPSBgc2tld1koJHtza2V3WX1kZWcpIGA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFwcGx5IHNjYWxlIHRvIG1hdGNoIHRoZSBzaXplIG9mIHRoZSBlbGVtZW50IHRvIHRoZSBzaXplIHdlIHdhbnQgaXQuXG4gICAgICogVGhpcyB3aWxsIGFwcGx5IHNjYWxlIHRvIHRoZSBlbGVtZW50LW9yaWVudGF0ZWQgYXhlcy5cbiAgICAgKi9cbiAgICBjb25zdCBlbGVtZW50U2NhbGVYID0gZGVsdGEueC5zY2FsZSAqIHRyZWVTY2FsZS54O1xuICAgIGNvbnN0IGVsZW1lbnRTY2FsZVkgPSBkZWx0YS55LnNjYWxlICogdHJlZVNjYWxlLnk7XG4gICAgaWYgKGVsZW1lbnRTY2FsZVggIT09IDEgfHwgZWxlbWVudFNjYWxlWSAhPT0gMSkge1xuICAgICAgICB0cmFuc2Zvcm0gKz0gYHNjYWxlKCR7ZWxlbWVudFNjYWxlWH0sICR7ZWxlbWVudFNjYWxlWX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zZm9ybSB8fCBcIm5vbmVcIjtcbn1cblxuZXhwb3J0IHsgYnVpbGRQcm9qZWN0aW9uVHJhbnNmb3JtIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10cmFuc2Zvcm0ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/styles/transform.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.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 */ compareByDepth: () => (/* binding */ compareByDepth)\n/* harmony export */ });\nconst compareByDepth = (a, b) => a.depth - b.depth;\n\n\n//# sourceMappingURL=compare-by-depth.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vdXRpbHMvY29tcGFyZS1ieS1kZXB0aC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUUwQjtBQUMxQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9jb21wYXJlLWJ5LWRlcHRoLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb21wYXJlQnlEZXB0aCA9IChhLCBiKSA9PiBhLmRlcHRoIC0gYi5kZXB0aDtcblxuZXhwb3J0IHsgY29tcGFyZUJ5RGVwdGggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbXBhcmUtYnktZGVwdGgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/each-axis.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 */ eachAxis: () => (/* binding */ eachAxis)\n/* harmony export */ });\nfunction eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\n\n//# sourceMappingURL=each-axis.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vdXRpbHMvZWFjaC1heGlzLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBOztBQUVvQjtBQUNwQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9lYWNoLWF4aXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGVhY2hBeGlzKGNhbGxiYWNrKSB7XG4gICAgcmV0dXJuIFtjYWxsYmFjayhcInhcIiksIGNhbGxiYWNrKFwieVwiKV07XG59XG5cbmV4cG9ydCB7IGVhY2hBeGlzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lYWNoLWF4aXMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/flat-tree.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 */ FlatTree: () => (/* binding */ FlatTree)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/array.mjs\");\n/* harmony import */ var _compare_by_depth_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compare-by-depth.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs\");\n\n\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(_compare_by_depth_mjs__WEBPACK_IMPORTED_MODULE_1__.compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\n\n//# sourceMappingURL=flat-tree.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vdXRpbHMvZmxhdC10cmVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUQ7QUFDRDs7QUFFeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwyREFBYTtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxRQUFRLHdEQUFVO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyxpRUFBYztBQUN6RDtBQUNBO0FBQ0E7QUFDQTs7QUFFb0I7QUFDcEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vdXRpbHMvZmxhdC10cmVlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRVbmlxdWVJdGVtLCByZW1vdmVJdGVtIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGNvbXBhcmVCeURlcHRoIH0gZnJvbSAnLi9jb21wYXJlLWJ5LWRlcHRoLm1qcyc7XG5cbmNsYXNzIEZsYXRUcmVlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IFtdO1xuICAgICAgICB0aGlzLmlzRGlydHkgPSBmYWxzZTtcbiAgICB9XG4gICAgYWRkKGNoaWxkKSB7XG4gICAgICAgIGFkZFVuaXF1ZUl0ZW0odGhpcy5jaGlsZHJlbiwgY2hpbGQpO1xuICAgICAgICB0aGlzLmlzRGlydHkgPSB0cnVlO1xuICAgIH1cbiAgICByZW1vdmUoY2hpbGQpIHtcbiAgICAgICAgcmVtb3ZlSXRlbSh0aGlzLmNoaWxkcmVuLCBjaGlsZCk7XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IHRydWU7XG4gICAgfVxuICAgIGZvckVhY2goY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5pc0RpcnR5ICYmIHRoaXMuY2hpbGRyZW4uc29ydChjb21wYXJlQnlEZXB0aCk7XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goY2FsbGJhY2spO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgRmxhdFRyZWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZsYXQtdHJlZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/has-transform.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 */ has2DTranslate: () => (/* binding */ has2DTranslate),\n/* harmony export */ hasScale: () => (/* binding */ hasScale),\n/* harmony export */ hasTransform: () => (/* binding */ hasTransform)\n/* harmony export */ });\nfunction isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY ||\n values.skewX ||\n values.skewY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\n\n//# sourceMappingURL=has-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vdXRpbHMvaGFzLXRyYW5zZm9ybS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHVCQUF1QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVrRDtBQUNsRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9oYXMtdHJhbnNmb3JtLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc0lkZW50aXR5U2NhbGUoc2NhbGUpIHtcbiAgICByZXR1cm4gc2NhbGUgPT09IHVuZGVmaW5lZCB8fCBzY2FsZSA9PT0gMTtcbn1cbmZ1bmN0aW9uIGhhc1NjYWxlKHsgc2NhbGUsIHNjYWxlWCwgc2NhbGVZIH0pIHtcbiAgICByZXR1cm4gKCFpc0lkZW50aXR5U2NhbGUoc2NhbGUpIHx8XG4gICAgICAgICFpc0lkZW50aXR5U2NhbGUoc2NhbGVYKSB8fFxuICAgICAgICAhaXNJZGVudGl0eVNjYWxlKHNjYWxlWSkpO1xufVxuZnVuY3Rpb24gaGFzVHJhbnNmb3JtKHZhbHVlcykge1xuICAgIHJldHVybiAoaGFzU2NhbGUodmFsdWVzKSB8fFxuICAgICAgICBoYXMyRFRyYW5zbGF0ZSh2YWx1ZXMpIHx8XG4gICAgICAgIHZhbHVlcy56IHx8XG4gICAgICAgIHZhbHVlcy5yb3RhdGUgfHxcbiAgICAgICAgdmFsdWVzLnJvdGF0ZVggfHxcbiAgICAgICAgdmFsdWVzLnJvdGF0ZVkgfHxcbiAgICAgICAgdmFsdWVzLnNrZXdYIHx8XG4gICAgICAgIHZhbHVlcy5za2V3WSk7XG59XG5mdW5jdGlvbiBoYXMyRFRyYW5zbGF0ZSh2YWx1ZXMpIHtcbiAgICByZXR1cm4gaXMyRFRyYW5zbGF0ZSh2YWx1ZXMueCkgfHwgaXMyRFRyYW5zbGF0ZSh2YWx1ZXMueSk7XG59XG5mdW5jdGlvbiBpczJEVHJhbnNsYXRlKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlICE9PSBcIjAlXCI7XG59XG5cbmV4cG9ydCB7IGhhczJEVHJhbnNsYXRlLCBoYXNTY2FsZSwgaGFzVHJhbnNmb3JtIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oYXMtdHJhbnNmb3JtLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/measure.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 */ measurePageBox: () => (/* binding */ measurePageBox),\n/* harmony export */ measureViewportBox: () => (/* binding */ measureViewportBox)\n/* harmony export */ });\n/* harmony import */ var _geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry/conversion.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs\");\n/* harmony import */ var _geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry/delta-apply.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\");\n\n\n\nfunction measureViewportBox(instance, transformPoint) {\n return (0,_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.convertBoundingBoxToBox)((0,_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.transformBoxPoints)(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__.translateAxis)(viewportBox.x, scroll.offset.x);\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__.translateAxis)(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\n\n//# sourceMappingURL=measure.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vdXRpbHMvbWVhc3VyZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUF5RjtBQUM3Qjs7QUFFNUQ7QUFDQSxXQUFXLGlGQUF1QixDQUFDLDRFQUFrQjtBQUNyRDtBQUNBO0FBQ0E7QUFDQSxZQUFZLFNBQVM7QUFDckI7QUFDQSxRQUFRLHdFQUFhO0FBQ3JCLFFBQVEsd0VBQWE7QUFDckI7QUFDQTtBQUNBOztBQUU4QztBQUM5QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9tZWFzdXJlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb252ZXJ0Qm91bmRpbmdCb3hUb0JveCwgdHJhbnNmb3JtQm94UG9pbnRzIH0gZnJvbSAnLi4vZ2VvbWV0cnkvY29udmVyc2lvbi5tanMnO1xuaW1wb3J0IHsgdHJhbnNsYXRlQXhpcyB9IGZyb20gJy4uL2dlb21ldHJ5L2RlbHRhLWFwcGx5Lm1qcyc7XG5cbmZ1bmN0aW9uIG1lYXN1cmVWaWV3cG9ydEJveChpbnN0YW5jZSwgdHJhbnNmb3JtUG9pbnQpIHtcbiAgICByZXR1cm4gY29udmVydEJvdW5kaW5nQm94VG9Cb3godHJhbnNmb3JtQm94UG9pbnRzKGluc3RhbmNlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCB0cmFuc2Zvcm1Qb2ludCkpO1xufVxuZnVuY3Rpb24gbWVhc3VyZVBhZ2VCb3goZWxlbWVudCwgcm9vdFByb2plY3Rpb25Ob2RlLCB0cmFuc2Zvcm1QYWdlUG9pbnQpIHtcbiAgICBjb25zdCB2aWV3cG9ydEJveCA9IG1lYXN1cmVWaWV3cG9ydEJveChlbGVtZW50LCB0cmFuc2Zvcm1QYWdlUG9pbnQpO1xuICAgIGNvbnN0IHsgc2Nyb2xsIH0gPSByb290UHJvamVjdGlvbk5vZGU7XG4gICAgaWYgKHNjcm9sbCkge1xuICAgICAgICB0cmFuc2xhdGVBeGlzKHZpZXdwb3J0Qm94LngsIHNjcm9sbC5vZmZzZXQueCk7XG4gICAgICAgIHRyYW5zbGF0ZUF4aXModmlld3BvcnRCb3gueSwgc2Nyb2xsLm9mZnNldC55KTtcbiAgICB9XG4gICAgcmV0dXJuIHZpZXdwb3J0Qm94O1xufVxuXG5leHBvcnQgeyBtZWFzdXJlUGFnZUJveCwgbWVhc3VyZVZpZXdwb3J0Qm94IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZWFzdXJlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/Feature.mjs": +/*!************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/Feature.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 */ Feature: () => (/* binding */ Feature)\n/* harmony export */ });\n/**\n * Feature base class for extending VisualElement functionality.\n * Features are plugins that can be mounted/unmounted to add behavior\n * like gestures, animations, or layout tracking.\n */\nclass Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\n\n//# sourceMappingURL=Feature.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9GZWF0dXJlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVtQjtBQUNuQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL0ZlYXR1cmUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmVhdHVyZSBiYXNlIGNsYXNzIGZvciBleHRlbmRpbmcgVmlzdWFsRWxlbWVudCBmdW5jdGlvbmFsaXR5LlxuICogRmVhdHVyZXMgYXJlIHBsdWdpbnMgdGhhdCBjYW4gYmUgbW91bnRlZC91bm1vdW50ZWQgdG8gYWRkIGJlaGF2aW9yXG4gKiBsaWtlIGdlc3R1cmVzLCBhbmltYXRpb25zLCBvciBsYXlvdXQgdHJhY2tpbmcuXG4gKi9cbmNsYXNzIEZlYXR1cmUge1xuICAgIGNvbnN0cnVjdG9yKG5vZGUpIHtcbiAgICAgICAgdGhpcy5pc01vdW50ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICB9XG4gICAgdXBkYXRlKCkgeyB9XG59XG5cbmV4cG9ydCB7IEZlYXR1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZlYXR1cmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/Feature.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/VisualElement.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 */ VisualElement: () => (/* binding */ VisualElement),\n/* harmony export */ getFeatureDefinitions: () => (/* binding */ getFeatureDefinitions),\n/* harmony export */ setFeatureDefinitions: () => (/* binding */ setFeatureDefinitions)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var _animation_keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../animation/keyframes/KeyframesResolver.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var _animation_NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../animation/NativeAnimation.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs\");\n/* harmony import */ var _animation_waapi_utils_accelerated_values_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../animation/waapi/utils/accelerated-values.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs\");\n/* harmony import */ var _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../frameloop/microtask.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../projection/geometry/models.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../value/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../value/types/complex/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../value/types/utils/animatable-none.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\");\n/* harmony import */ var _value_types_utils_find_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../value/types/utils/find.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs\");\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../value/utils/is-motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _store_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./store.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/store.mjs\");\n/* harmony import */ var _utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/is-controlling-variants.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/keys-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _utils_motion_values_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utils/motion-values.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/motion-values.mjs\");\n/* harmony import */ var _utils_reduced_motion_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/reduced-motion/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs\");\n/* harmony import */ var _utils_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./utils/resolve-variants.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\");\n/* harmony import */ var _utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/reduced-motion/state.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../frameloop/frame.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\n/**\n * Static feature definitions - can be injected by framework layer\n */\nlet featureDefinitions = {};\n/**\n * Set feature definitions for all VisualElements.\n * This should be called by the framework layer (e.g., framer-motion) during initialization.\n */\nfunction setFeatureDefinitions(definitions) {\n featureDefinitions = definitions;\n}\n/**\n * Get the current feature definitions\n */\nfunction getFeatureDefinitions() {\n return featureDefinitions;\n}\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n return {};\n }\n constructor({ parent, props, presenceContext, reducedMotionConfig, skipAnimations, blockInitialAnimation, visualState, }, options = {}) {\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * Decides whether animations should be skipped for this VisualElement.\n * Useful for E2E tests and visual regression testing.\n */\n this.shouldSkipAnimations = false;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n this.KeyframeResolver = _animation_keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__.KeyframeResolver;\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * Track whether this element has been mounted before, to detect\n * remounts after Suspense unmount/remount cycles.\n */\n this.hasBeenMounted = false;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.renderScheduledAt = 0.0;\n this.scheduleRender = () => {\n const now = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now();\n if (this.renderScheduledAt < now) {\n this.renderScheduledAt = now;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.frame.render(this.render, false, true);\n }\n };\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.skipAnimationsConfig = skipAnimations;\n this.options = options;\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\n this.isControllingVariants = (0,_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__.isControllingVariants)(props);\n this.isVariantNode = (0,_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__.isVariantNode)(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't necessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value)) {\n value.set(latestValues[key]);\n }\n }\n }\n mount(instance) {\n /**\n * If this element has been mounted before (e.g. after a Suspense\n * unmount/remount), reset motion values to their initial state\n * so animations replay correctly from initial → animate.\n */\n if (this.hasBeenMounted) {\n for (const key in this.initialValues) {\n this.values.get(key)?.jump(this.initialValues[key]);\n this.latestValues[key] = this.initialValues[key];\n }\n }\n this.current = instance;\n _store_mjs__WEBPACK_IMPORTED_MODULE_5__.visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n /**\n * Determine reduced motion preference. Only initialize the matchMedia\n * listener if we actually need the dynamic value (i.e., when config\n * is neither \"never\" nor \"always\").\n */\n if (this.reducedMotionConfig === \"never\") {\n this.shouldReduceMotion = false;\n }\n else if (this.reducedMotionConfig === \"always\") {\n this.shouldReduceMotion = true;\n }\n else {\n if (!_utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__.hasReducedMotionListener.current) {\n (0,_utils_reduced_motion_index_mjs__WEBPACK_IMPORTED_MODULE_7__.initPrefersReducedMotion)();\n }\n this.shouldReduceMotion = _utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__.prefersReducedMotion.current;\n }\n if (true) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_8__.warnOnce)(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\", \"reduced-motion-disabled\");\n }\n /**\n * Set whether animations should be skipped based on the config.\n */\n this.shouldSkipAnimations = this.skipAnimationsConfig ?? false;\n this.parent?.addChild(this);\n this.update(this.props, this.presenceContext);\n this.hasBeenMounted = true;\n }\n unmount() {\n this.projection && this.projection.unmount();\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.cancelFrame)(this.notifyUpdate);\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.cancelFrame)(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.valueSubscriptions.clear();\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent?.removeChild(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature) {\n feature.unmount();\n feature.isMounted = false;\n }\n }\n this.current = null;\n }\n addChild(child) {\n this.children.add(child);\n this.enteringChildren ?? (this.enteringChildren = new Set());\n this.enteringChildren.add(child);\n }\n removeChild(child) {\n this.children.delete(child);\n this.enteringChildren && this.enteringChildren.delete(child);\n }\n bindToMotionValue(key, value) {\n if (this.valueSubscriptions.has(key)) {\n this.valueSubscriptions.get(key)();\n }\n if (value.accelerate &&\n _animation_waapi_utils_accelerated_values_mjs__WEBPACK_IMPORTED_MODULE_9__.acceleratedValues.has(key) &&\n this.current instanceof HTMLElement) {\n const { factory, keyframes, times, ease, duration } = value.accelerate;\n const animation = new _animation_NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_10__.NativeAnimation({\n element: this.current,\n name: key,\n keyframes,\n times,\n ease,\n duration: (0,motion_utils__WEBPACK_IMPORTED_MODULE_11__.secondsToMilliseconds)(duration),\n });\n const cleanup = factory(animation);\n this.valueSubscriptions.set(key, () => {\n cleanup();\n animation.cancel();\n });\n return;\n }\n const valueIsTransform = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_12__.transformProps.has(key);\n if (valueIsTransform && this.onBindTransform) {\n this.onBindTransform();\n }\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate && _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.frame.preRender(this.notifyUpdate);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n this.scheduleRender();\n });\n let removeSyncCheck;\n if (typeof window !== \"undefined\" &&\n window.MotionCheckAppearSync) {\n removeSyncCheck = window.MotionCheckAppearSync(this, key, value);\n }\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n if (removeSyncCheck)\n removeSyncCheck();\n if (value.owner)\n value.stop();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n updateFeatures() {\n let key = \"animation\";\n for (key in featureDefinitions) {\n const featureDefinition = featureDefinitions[key];\n if (!featureDefinition)\n continue;\n const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\n /**\n * If this feature is enabled but not active, make a new instance.\n */\n if (!this.features[key] &&\n FeatureConstructor &&\n isEnabled(this.props)) {\n this.features[key] = new FeatureConstructor(this);\n }\n /**\n * If we have a feature, mount or update it.\n */\n if (this.features[key]) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : (0,_projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_13__.createBox)();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listenerName = (\"on\" + key);\n const listener = props[listenerName];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = (0,_utils_motion_values_mjs__WEBPACK_IMPORTED_MODULE_14__.updateMotionValuesFromProps)(this, this.scrapeMotionValuesFromProps(props, this.prevProps || {}, this), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n const existingValue = this.values.get(key);\n if (value !== existingValue) {\n if (existingValue)\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_15__.motionValue)(defaultValue === null ? undefined : defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key, target) {\n let value = this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : this.getBaseTargetFromProps(this.props, key) ??\n this.readValueFromInstance(this.current, key, this.options);\n if (value !== undefined && value !== null) {\n if (typeof value === \"string\" &&\n ((0,motion_utils__WEBPACK_IMPORTED_MODULE_16__.isNumericalString)(value) || (0,motion_utils__WEBPACK_IMPORTED_MODULE_17__.isZeroValueString)(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!(0,_value_types_utils_find_mjs__WEBPACK_IMPORTED_MODULE_18__.findValueType)(value) && _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_19__.complex.test(target)) {\n value = (0,_value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_20__.getAnimatableNone)(key, target);\n }\n this.setBaseTarget(key, (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value) ? value.get() : value);\n }\n return (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value) ? value.get() : value;\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n const { initial } = this.props;\n let valueFromInitial;\n if (typeof initial === \"string\" || typeof initial === \"object\") {\n const variant = (0,_utils_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_21__.resolveVariantFromProps)(this.props, initial, this.presenceContext?.custom);\n if (variant) {\n valueFromInitial = variant[key];\n }\n }\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !(0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new motion_utils__WEBPACK_IMPORTED_MODULE_22__.SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n scheduleRenderMicrotask() {\n _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_23__.microtask.render(this.render);\n }\n}\n\n\n//# sourceMappingURL=VisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9WaXN1YWxFbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBMEg7QUFDMUM7QUFDYjtBQUNpQjtBQUM3QjtBQUNMO0FBQ1k7QUFDYjtBQUNVO0FBQ2tCO0FBQ2Y7QUFDSztBQUNsQjtBQUMwQztBQUMvQjtBQUNZO0FBQ0k7QUFDTDtBQUMyQjtBQUN0Qzs7QUFFNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiwwR0FBMEcsY0FBYztBQUMxSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msd0ZBQWdCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiwwREFBSTtBQUM1QjtBQUNBO0FBQ0EsZ0JBQWdCLHVEQUFLO0FBQ3JCO0FBQ0E7QUFDQSxnQkFBZ0IsNEJBQTRCO0FBQzVDO0FBQ0EsNEJBQTRCO0FBQzVCLCtDQUErQyxrQkFBa0I7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLHlGQUFxQjtBQUMxRCw2QkFBNkIsaUZBQWE7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQ0FBcUMsNENBQTRDO0FBQ2pHO0FBQ0E7QUFDQSxtREFBbUQsK0VBQWE7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsMERBQWtCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHFGQUF3QjtBQUN6QyxnQkFBZ0IseUZBQXdCO0FBQ3hDO0FBQ0Esc0NBQXNDLGlGQUFvQjtBQUMxRDtBQUNBLFlBQVksSUFBcUM7QUFDakQsWUFBWSxzREFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxpRUFBVztBQUNuQixRQUFRLGlFQUFXO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksNEZBQWlCO0FBQzdCO0FBQ0Esb0JBQW9CLDRDQUE0QztBQUNoRSxrQ0FBa0MsNEVBQWU7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixvRUFBcUI7QUFDL0MsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxpQ0FBaUMsc0VBQWM7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyx1REFBSztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix5Q0FBeUM7QUFDN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLDJFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDhCQUE4QjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLHNGQUEyQixtRUFBbUU7QUFDOUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsOERBQVcscURBQXFELGFBQWE7QUFDakc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsZ0VBQWlCLFdBQVcsZ0VBQWlCO0FBQzlEO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQiwyRUFBYSxXQUFXLG9FQUFPO0FBQ3JELHdCQUF3QiwwRkFBaUI7QUFDekM7QUFDQSxvQ0FBb0MsK0VBQWE7QUFDakQ7QUFDQSxlQUFlLCtFQUFhO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUI7QUFDQTtBQUNBLDRCQUE0QixxRkFBdUI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLCtFQUFhO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyw4REFBbUI7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxnRUFBUztBQUNqQjtBQUNBOztBQUV1RTtBQUN2RSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL1Zpc3VhbEVsZW1lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm5PbmNlLCBzZWNvbmRzVG9NaWxsaXNlY29uZHMsIGlzTnVtZXJpY2FsU3RyaW5nLCBpc1plcm9WYWx1ZVN0cmluZywgU3Vic2NyaXB0aW9uTWFuYWdlciB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBLZXlmcmFtZVJlc29sdmVyIH0gZnJvbSAnLi4vYW5pbWF0aW9uL2tleWZyYW1lcy9LZXlmcmFtZXNSZXNvbHZlci5tanMnO1xuaW1wb3J0IHsgTmF0aXZlQW5pbWF0aW9uIH0gZnJvbSAnLi4vYW5pbWF0aW9uL05hdGl2ZUFuaW1hdGlvbi5tanMnO1xuaW1wb3J0IHsgYWNjZWxlcmF0ZWRWYWx1ZXMgfSBmcm9tICcuLi9hbmltYXRpb24vd2FhcGkvdXRpbHMvYWNjZWxlcmF0ZWQtdmFsdWVzLm1qcyc7XG5pbXBvcnQgeyBtaWNyb3Rhc2sgfSBmcm9tICcuLi9mcmFtZWxvb3AvbWljcm90YXNrLm1qcyc7XG5pbXBvcnQgeyB0aW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL3N5bmMtdGltZS5tanMnO1xuaW1wb3J0IHsgY3JlYXRlQm94IH0gZnJvbSAnLi4vcHJvamVjdGlvbi9nZW9tZXRyeS9tb2RlbHMubWpzJztcbmltcG9ydCB7IG1vdGlvblZhbHVlIH0gZnJvbSAnLi4vdmFsdWUvaW5kZXgubWpzJztcbmltcG9ydCB7IGNvbXBsZXggfSBmcm9tICcuLi92YWx1ZS90eXBlcy9jb21wbGV4L2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBnZXRBbmltYXRhYmxlTm9uZSB9IGZyb20gJy4uL3ZhbHVlL3R5cGVzL3V0aWxzL2FuaW1hdGFibGUtbm9uZS5tanMnO1xuaW1wb3J0IHsgZmluZFZhbHVlVHlwZSB9IGZyb20gJy4uL3ZhbHVlL3R5cGVzL3V0aWxzL2ZpbmQubWpzJztcbmltcG9ydCB7IGlzTW90aW9uVmFsdWUgfSBmcm9tICcuLi92YWx1ZS91dGlscy9pcy1tb3Rpb24tdmFsdWUubWpzJztcbmltcG9ydCB7IHZpc3VhbEVsZW1lbnRTdG9yZSB9IGZyb20gJy4vc3RvcmUubWpzJztcbmltcG9ydCB7IGlzQ29udHJvbGxpbmdWYXJpYW50cywgaXNWYXJpYW50Tm9kZSB9IGZyb20gJy4vdXRpbHMvaXMtY29udHJvbGxpbmctdmFyaWFudHMubWpzJztcbmltcG9ydCB7IHRyYW5zZm9ybVByb3BzIH0gZnJvbSAnLi91dGlscy9rZXlzLXRyYW5zZm9ybS5tanMnO1xuaW1wb3J0IHsgdXBkYXRlTW90aW9uVmFsdWVzRnJvbVByb3BzIH0gZnJvbSAnLi91dGlscy9tb3Rpb24tdmFsdWVzLm1qcyc7XG5pbXBvcnQgeyBpbml0UHJlZmVyc1JlZHVjZWRNb3Rpb24gfSBmcm9tICcuL3V0aWxzL3JlZHVjZWQtbW90aW9uL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyByZXNvbHZlVmFyaWFudEZyb21Qcm9wcyB9IGZyb20gJy4vdXRpbHMvcmVzb2x2ZS12YXJpYW50cy5tanMnO1xuaW1wb3J0IHsgaGFzUmVkdWNlZE1vdGlvbkxpc3RlbmVyLCBwcmVmZXJzUmVkdWNlZE1vdGlvbiB9IGZyb20gJy4vdXRpbHMvcmVkdWNlZC1tb3Rpb24vc3RhdGUubWpzJztcbmltcG9ydCB7IGZyYW1lLCBjYW5jZWxGcmFtZSB9IGZyb20gJy4uL2ZyYW1lbG9vcC9mcmFtZS5tanMnO1xuXG5jb25zdCBwcm9wRXZlbnRIYW5kbGVycyA9IFtcbiAgICBcIkFuaW1hdGlvblN0YXJ0XCIsXG4gICAgXCJBbmltYXRpb25Db21wbGV0ZVwiLFxuICAgIFwiVXBkYXRlXCIsXG4gICAgXCJCZWZvcmVMYXlvdXRNZWFzdXJlXCIsXG4gICAgXCJMYXlvdXRNZWFzdXJlXCIsXG4gICAgXCJMYXlvdXRBbmltYXRpb25TdGFydFwiLFxuICAgIFwiTGF5b3V0QW5pbWF0aW9uQ29tcGxldGVcIixcbl07XG4vKipcbiAqIFN0YXRpYyBmZWF0dXJlIGRlZmluaXRpb25zIC0gY2FuIGJlIGluamVjdGVkIGJ5IGZyYW1ld29yayBsYXllclxuICovXG5sZXQgZmVhdHVyZURlZmluaXRpb25zID0ge307XG4vKipcbiAqIFNldCBmZWF0dXJlIGRlZmluaXRpb25zIGZvciBhbGwgVmlzdWFsRWxlbWVudHMuXG4gKiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgYnkgdGhlIGZyYW1ld29yayBsYXllciAoZS5nLiwgZnJhbWVyLW1vdGlvbikgZHVyaW5nIGluaXRpYWxpemF0aW9uLlxuICovXG5mdW5jdGlvbiBzZXRGZWF0dXJlRGVmaW5pdGlvbnMoZGVmaW5pdGlvbnMpIHtcbiAgICBmZWF0dXJlRGVmaW5pdGlvbnMgPSBkZWZpbml0aW9ucztcbn1cbi8qKlxuICogR2V0IHRoZSBjdXJyZW50IGZlYXR1cmUgZGVmaW5pdGlvbnNcbiAqL1xuZnVuY3Rpb24gZ2V0RmVhdHVyZURlZmluaXRpb25zKCkge1xuICAgIHJldHVybiBmZWF0dXJlRGVmaW5pdGlvbnM7XG59XG4vKipcbiAqIEEgVmlzdWFsRWxlbWVudCBpcyBhbiBpbXBlcmF0aXZlIGFic3RyYWN0aW9uIGFyb3VuZCBVSSBlbGVtZW50cyBzdWNoIGFzXG4gKiBIVE1MRWxlbWVudCwgU1ZHRWxlbWVudCwgVGhyZWUuT2JqZWN0M0QgZXRjLlxuICovXG5jbGFzcyBWaXN1YWxFbGVtZW50IHtcbiAgICAvKipcbiAgICAgKiBUaGlzIG1ldGhvZCB0YWtlcyBSZWFjdCBwcm9wcyBhbmQgcmV0dXJucyBmb3VuZCBNb3Rpb25WYWx1ZXMuIEZvciBleGFtcGxlLCBIVE1MXG4gICAgICogTW90aW9uVmFsdWVzIHdpbGwgYmUgZm91bmQgd2l0aGluIHRoZSBzdHlsZSBwcm9wLCB3aGVyZWFzIGZvciBUaHJlZS5qcyB3aXRoaW4gYXR0cmlidXRlIGFycmF5cy5cbiAgICAgKlxuICAgICAqIFRoaXMgaXNuJ3QgYW4gYWJzdHJhY3QgbWV0aG9kIGFzIGl0IG5lZWRzIGNhbGxpbmcgaW4gdGhlIGNvbnN0cnVjdG9yLCBidXQgaXQgaXNcbiAgICAgKiBpbnRlbmRlZCB0byBiZSBvbmUuXG4gICAgICovXG4gICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKF9wcm9wcywgX3ByZXZQcm9wcywgX3Zpc3VhbEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBjb25zdHJ1Y3Rvcih7IHBhcmVudCwgcHJvcHMsIHByZXNlbmNlQ29udGV4dCwgcmVkdWNlZE1vdGlvbkNvbmZpZywgc2tpcEFuaW1hdGlvbnMsIGJsb2NrSW5pdGlhbEFuaW1hdGlvbiwgdmlzdWFsU3RhdGUsIH0sIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgdW5kZXJseWluZyBJbnN0YW5jZSwgZS5nLiBhIEhUTUxFbGVtZW50XG4gICAgICAgICAqIG9yIFRocmVlLk1lc2ggZXRjLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEEgc2V0IGNvbnRhaW5pbmcgcmVmZXJlbmNlcyB0byB0aGlzIFZpc3VhbEVsZW1lbnQncyBjaGlsZHJlbi5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBuZXcgU2V0KCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEZXRlcm1pbmUgd2hhdCByb2xlIHRoaXMgdmlzdWFsIGVsZW1lbnQgc2hvdWxkIHRha2UgaW4gdGhlIHZhcmlhbnQgdHJlZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaXNWYXJpYW50Tm9kZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzQ29udHJvbGxpbmdWYXJpYW50cyA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogRGVjaWRlcyB3aGV0aGVyIHRoaXMgVmlzdWFsRWxlbWVudCBzaG91bGQgYW5pbWF0ZSBpbiByZWR1Y2VkIG1vdGlvblxuICAgICAgICAgKiBtb2RlLlxuICAgICAgICAgKlxuICAgICAgICAgKiBUT0RPOiBUaGlzIGlzIGN1cnJlbnRseSBzZXQgb24gZXZlcnkgaW5kaXZpZHVhbCBWaXN1YWxFbGVtZW50IGJ1dCBmZWVsc1xuICAgICAgICAgKiBsaWtlIGl0IGNvdWxkIGJlIHNldCBnbG9iYWxseS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2hvdWxkUmVkdWNlTW90aW9uID0gbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERlY2lkZXMgd2hldGhlciBhbmltYXRpb25zIHNob3VsZCBiZSBza2lwcGVkIGZvciB0aGlzIFZpc3VhbEVsZW1lbnQuXG4gICAgICAgICAqIFVzZWZ1bCBmb3IgRTJFIHRlc3RzIGFuZCB2aXN1YWwgcmVncmVzc2lvbiB0ZXN0aW5nLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zaG91bGRTa2lwQW5pbWF0aW9ucyA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBtYXAgb2YgYWxsIG1vdGlvbiB2YWx1ZXMgYXR0YWNoZWQgdG8gdGhpcyB2aXN1YWwgZWxlbWVudC4gTW90aW9uXG4gICAgICAgICAqIHZhbHVlcyBhcmUgc291cmNlIG9mIHRydXRoIGZvciBhbnkgZ2l2ZW4gYW5pbWF0ZWQgdmFsdWUuIEEgbW90aW9uXG4gICAgICAgICAqIHZhbHVlIG1pZ2h0IGJlIHByb3ZpZGVkIGV4dGVybmFsbHkgYnkgdGhlIGNvbXBvbmVudCB2aWEgcHJvcHMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnZhbHVlcyA9IG5ldyBNYXAoKTtcbiAgICAgICAgdGhpcy5LZXlmcmFtZVJlc29sdmVyID0gS2V5ZnJhbWVSZXNvbHZlcjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENsZWFudXAgZnVuY3Rpb25zIGZvciBhY3RpdmUgZmVhdHVyZXMgKGhvdmVyL3RhcC9leGl0IGV0YylcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZmVhdHVyZXMgPSB7fTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEEgbWFwIG9mIGV2ZXJ5IHN1YnNjcmlwdGlvbiB0aGF0IGJpbmRzIHRoZSBwcm92aWRlZCBvciBnZW5lcmF0ZWRcbiAgICAgICAgICogbW90aW9uIHZhbHVlcyBvbkNoYW5nZSBsaXN0ZW5lcnMgdG8gdGhpcyB2aXN1YWwgZWxlbWVudC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudmFsdWVTdWJzY3JpcHRpb25zID0gbmV3IE1hcCgpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQSByZWZlcmVuY2UgdG8gdGhlIHByZXZpb3VzbHktcHJvdmlkZWQgbW90aW9uIHZhbHVlcyBhcyByZXR1cm5lZFxuICAgICAgICAgKiBmcm9tIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcy4gV2UgdXNlIHRoZSBrZXlzIGluIGhlcmUgdG8gZGV0ZXJtaW5lXG4gICAgICAgICAqIGlmIGFueSBtb3Rpb24gdmFsdWVzIG5lZWQgdG8gYmUgcmVtb3ZlZCBhZnRlciBwcm9wcyBhcmUgdXBkYXRlZC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucHJldk1vdGlvblZhbHVlcyA9IHt9O1xuICAgICAgICAvKipcbiAgICAgICAgICogVHJhY2sgd2hldGhlciB0aGlzIGVsZW1lbnQgaGFzIGJlZW4gbW91bnRlZCBiZWZvcmUsIHRvIGRldGVjdFxuICAgICAgICAgKiByZW1vdW50cyBhZnRlciBTdXNwZW5zZSB1bm1vdW50L3JlbW91bnQgY3ljbGVzLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5oYXNCZWVuTW91bnRlZCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgYSBTdWJzY3JpcHRpb25NYW5hZ2VyIGZvciBlYWNoIGFjdGl2ZSBldmVudC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZXZlbnRzID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbiBvYmplY3QgY29udGFpbmluZyBhbiB1bnN1YnNjcmliZSBmdW5jdGlvbiBmb3IgZWFjaCBwcm9wIGV2ZW50IHN1YnNjcmlwdGlvbi5cbiAgICAgICAgICogRm9yIGV4YW1wbGUsIGV2ZXJ5IFwiVXBkYXRlXCIgZXZlbnQgY2FuIGhhdmUgbXVsdGlwbGUgc3Vic2NyaWJlcnMgdmlhXG4gICAgICAgICAqIFZpc3VhbEVsZW1lbnQub24oKSwgYnV0IG9ubHkgb25lIG9mIHRob3NlIGNhbiBiZSBkZWZpbmVkIHZpYSB0aGUgb25VcGRhdGUgcHJvcC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9ucyA9IHt9O1xuICAgICAgICB0aGlzLm5vdGlmeVVwZGF0ZSA9ICgpID0+IHRoaXMubm90aWZ5KFwiVXBkYXRlXCIsIHRoaXMubGF0ZXN0VmFsdWVzKTtcbiAgICAgICAgdGhpcy5yZW5kZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJCdWlsZCgpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJJbnN0YW5jZSh0aGlzLmN1cnJlbnQsIHRoaXMucmVuZGVyU3RhdGUsIHRoaXMucHJvcHMuc3R5bGUsIHRoaXMucHJvamVjdGlvbik7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMucmVuZGVyU2NoZWR1bGVkQXQgPSAwLjA7XG4gICAgICAgIHRoaXMuc2NoZWR1bGVSZW5kZXIgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBub3cgPSB0aW1lLm5vdygpO1xuICAgICAgICAgICAgaWYgKHRoaXMucmVuZGVyU2NoZWR1bGVkQXQgPCBub3cpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlclNjaGVkdWxlZEF0ID0gbm93O1xuICAgICAgICAgICAgICAgIGZyYW1lLnJlbmRlcih0aGlzLnJlbmRlciwgZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB7IGxhdGVzdFZhbHVlcywgcmVuZGVyU3RhdGUgfSA9IHZpc3VhbFN0YXRlO1xuICAgICAgICB0aGlzLmxhdGVzdFZhbHVlcyA9IGxhdGVzdFZhbHVlcztcbiAgICAgICAgdGhpcy5iYXNlVGFyZ2V0ID0geyAuLi5sYXRlc3RWYWx1ZXMgfTtcbiAgICAgICAgdGhpcy5pbml0aWFsVmFsdWVzID0gcHJvcHMuaW5pdGlhbCA/IHsgLi4ubGF0ZXN0VmFsdWVzIH0gOiB7fTtcbiAgICAgICAgdGhpcy5yZW5kZXJTdGF0ZSA9IHJlbmRlclN0YXRlO1xuICAgICAgICB0aGlzLnBhcmVudCA9IHBhcmVudDtcbiAgICAgICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgICAgICB0aGlzLnByZXNlbmNlQ29udGV4dCA9IHByZXNlbmNlQ29udGV4dDtcbiAgICAgICAgdGhpcy5kZXB0aCA9IHBhcmVudCA/IHBhcmVudC5kZXB0aCArIDEgOiAwO1xuICAgICAgICB0aGlzLnJlZHVjZWRNb3Rpb25Db25maWcgPSByZWR1Y2VkTW90aW9uQ29uZmlnO1xuICAgICAgICB0aGlzLnNraXBBbmltYXRpb25zQ29uZmlnID0gc2tpcEFuaW1hdGlvbnM7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuYmxvY2tJbml0aWFsQW5pbWF0aW9uID0gQm9vbGVhbihibG9ja0luaXRpYWxBbmltYXRpb24pO1xuICAgICAgICB0aGlzLmlzQ29udHJvbGxpbmdWYXJpYW50cyA9IGlzQ29udHJvbGxpbmdWYXJpYW50cyhwcm9wcyk7XG4gICAgICAgIHRoaXMuaXNWYXJpYW50Tm9kZSA9IGlzVmFyaWFudE5vZGUocHJvcHMpO1xuICAgICAgICBpZiAodGhpcy5pc1ZhcmlhbnROb2RlKSB7XG4gICAgICAgICAgICB0aGlzLnZhcmlhbnRDaGlsZHJlbiA9IG5ldyBTZXQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQgPSBCb29sZWFuKHBhcmVudCAmJiBwYXJlbnQuY3VycmVudCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbnkgbW90aW9uIHZhbHVlcyB0aGF0IGFyZSBwcm92aWRlZCB0byB0aGUgZWxlbWVudCB3aGVuIGNyZWF0ZWRcbiAgICAgICAgICogYXJlbid0IHlldCBib3VuZCB0byB0aGUgZWxlbWVudCwgYXMgdGhpcyB3b3VsZCB0ZWNobmljYWxseSBiZSBpbXB1cmUuXG4gICAgICAgICAqIEhvd2V2ZXIsIHdlIGl0ZXJhdGUgdGhyb3VnaCB0aGUgbW90aW9uIHZhbHVlcyBhbmQgc2V0IHRoZW0gdG8gdGhlXG4gICAgICAgICAqIGluaXRpYWwgdmFsdWVzIGZvciB0aGlzIGNvbXBvbmVudC5cbiAgICAgICAgICpcbiAgICAgICAgICogVE9ETzogVGhpcyBpcyBpbXB1cmUgYW5kIHdlIHNob3VsZCBsb29rIGF0IGNoYW5naW5nIHRoaXMgdG8gcnVuIG9uIG1vdW50LlxuICAgICAgICAgKiBEb2luZyBzbyB3aWxsIGJyZWFrIHNvbWUgdGVzdHMgYnV0IHRoaXMgaXNuJ3QgbmVjZXNzYXJpbHkgYSBicmVha2luZyBjaGFuZ2UsXG4gICAgICAgICAqIG1vcmUgYSByZWZsZWN0aW9uIG9mIHRoZSB0ZXN0LlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgeyB3aWxsQ2hhbmdlLCAuLi5pbml0aWFsTW90aW9uVmFsdWVzIH0gPSB0aGlzLnNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywge30sIHRoaXMpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpbml0aWFsTW90aW9uVmFsdWVzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGluaXRpYWxNb3Rpb25WYWx1ZXNba2V5XTtcbiAgICAgICAgICAgIGlmIChsYXRlc3RWYWx1ZXNba2V5XSAhPT0gdW5kZWZpbmVkICYmIGlzTW90aW9uVmFsdWUodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUuc2V0KGxhdGVzdFZhbHVlc1trZXldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBtb3VudChpbnN0YW5jZSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhpcyBlbGVtZW50IGhhcyBiZWVuIG1vdW50ZWQgYmVmb3JlIChlLmcuIGFmdGVyIGEgU3VzcGVuc2VcbiAgICAgICAgICogdW5tb3VudC9yZW1vdW50KSwgcmVzZXQgbW90aW9uIHZhbHVlcyB0byB0aGVpciBpbml0aWFsIHN0YXRlXG4gICAgICAgICAqIHNvIGFuaW1hdGlvbnMgcmVwbGF5IGNvcnJlY3RseSBmcm9tIGluaXRpYWwg4oaSIGFuaW1hdGUuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5oYXNCZWVuTW91bnRlZCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5pbml0aWFsVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWx1ZXMuZ2V0KGtleSk/Lmp1bXAodGhpcy5pbml0aWFsVmFsdWVzW2tleV0pO1xuICAgICAgICAgICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzW2tleV0gPSB0aGlzLmluaXRpYWxWYWx1ZXNba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnQgPSBpbnN0YW5jZTtcbiAgICAgICAgdmlzdWFsRWxlbWVudFN0b3JlLnNldChpbnN0YW5jZSwgdGhpcyk7XG4gICAgICAgIGlmICh0aGlzLnByb2plY3Rpb24gJiYgIXRoaXMucHJvamVjdGlvbi5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uLm1vdW50KGluc3RhbmNlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYXJlbnQgJiYgdGhpcy5pc1ZhcmlhbnROb2RlICYmICF0aGlzLmlzQ29udHJvbGxpbmdWYXJpYW50cykge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVGcm9tVmFyaWFudFRyZWUgPSB0aGlzLnBhcmVudC5hZGRWYXJpYW50Q2hpbGQodGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4gdGhpcy5iaW5kVG9Nb3Rpb25WYWx1ZShrZXksIHZhbHVlKSk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEZXRlcm1pbmUgcmVkdWNlZCBtb3Rpb24gcHJlZmVyZW5jZS4gT25seSBpbml0aWFsaXplIHRoZSBtYXRjaE1lZGlhXG4gICAgICAgICAqIGxpc3RlbmVyIGlmIHdlIGFjdHVhbGx5IG5lZWQgdGhlIGR5bmFtaWMgdmFsdWUgKGkuZS4sIHdoZW4gY29uZmlnXG4gICAgICAgICAqIGlzIG5laXRoZXIgXCJuZXZlclwiIG5vciBcImFsd2F5c1wiKS5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLnJlZHVjZWRNb3Rpb25Db25maWcgPT09IFwibmV2ZXJcIikge1xuICAgICAgICAgICAgdGhpcy5zaG91bGRSZWR1Y2VNb3Rpb24gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0aGlzLnJlZHVjZWRNb3Rpb25Db25maWcgPT09IFwiYWx3YXlzXCIpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvdWxkUmVkdWNlTW90aW9uID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzUmVkdWNlZE1vdGlvbkxpc3RlbmVyLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBpbml0UHJlZmVyc1JlZHVjZWRNb3Rpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2hvdWxkUmVkdWNlTW90aW9uID0gcHJlZmVyc1JlZHVjZWRNb3Rpb24uY3VycmVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICB3YXJuT25jZSh0aGlzLnNob3VsZFJlZHVjZU1vdGlvbiAhPT0gdHJ1ZSwgXCJZb3UgaGF2ZSBSZWR1Y2VkIE1vdGlvbiBlbmFibGVkIG9uIHlvdXIgZGV2aWNlLiBBbmltYXRpb25zIG1heSBub3QgYXBwZWFyIGFzIGV4cGVjdGVkLlwiLCBcInJlZHVjZWQtbW90aW9uLWRpc2FibGVkXCIpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgd2hldGhlciBhbmltYXRpb25zIHNob3VsZCBiZSBza2lwcGVkIGJhc2VkIG9uIHRoZSBjb25maWcuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNob3VsZFNraXBBbmltYXRpb25zID0gdGhpcy5za2lwQW5pbWF0aW9uc0NvbmZpZyA/PyBmYWxzZTtcbiAgICAgICAgdGhpcy5wYXJlbnQ/LmFkZENoaWxkKHRoaXMpO1xuICAgICAgICB0aGlzLnVwZGF0ZSh0aGlzLnByb3BzLCB0aGlzLnByZXNlbmNlQ29udGV4dCk7XG4gICAgICAgIHRoaXMuaGFzQmVlbk1vdW50ZWQgPSB0cnVlO1xuICAgIH1cbiAgICB1bm1vdW50KCkge1xuICAgICAgICB0aGlzLnByb2plY3Rpb24gJiYgdGhpcy5wcm9qZWN0aW9uLnVubW91bnQoKTtcbiAgICAgICAgY2FuY2VsRnJhbWUodGhpcy5ub3RpZnlVcGRhdGUpO1xuICAgICAgICBjYW5jZWxGcmFtZSh0aGlzLnJlbmRlcik7XG4gICAgICAgIHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmZvckVhY2goKHJlbW92ZSkgPT4gcmVtb3ZlKCkpO1xuICAgICAgICB0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5jbGVhcigpO1xuICAgICAgICB0aGlzLnJlbW92ZUZyb21WYXJpYW50VHJlZSAmJiB0aGlzLnJlbW92ZUZyb21WYXJpYW50VHJlZSgpO1xuICAgICAgICB0aGlzLnBhcmVudD8ucmVtb3ZlQ2hpbGQodGhpcyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZXZlbnRzKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50c1trZXldLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5mZWF0dXJlcykge1xuICAgICAgICAgICAgY29uc3QgZmVhdHVyZSA9IHRoaXMuZmVhdHVyZXNba2V5XTtcbiAgICAgICAgICAgIGlmIChmZWF0dXJlKSB7XG4gICAgICAgICAgICAgICAgZmVhdHVyZS51bm1vdW50KCk7XG4gICAgICAgICAgICAgICAgZmVhdHVyZS5pc01vdW50ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnQgPSBudWxsO1xuICAgIH1cbiAgICBhZGRDaGlsZChjaGlsZCkge1xuICAgICAgICB0aGlzLmNoaWxkcmVuLmFkZChjaGlsZCk7XG4gICAgICAgIHRoaXMuZW50ZXJpbmdDaGlsZHJlbiA/PyAodGhpcy5lbnRlcmluZ0NoaWxkcmVuID0gbmV3IFNldCgpKTtcbiAgICAgICAgdGhpcy5lbnRlcmluZ0NoaWxkcmVuLmFkZChjaGlsZCk7XG4gICAgfVxuICAgIHJlbW92ZUNoaWxkKGNoaWxkKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZGVsZXRlKGNoaWxkKTtcbiAgICAgICAgdGhpcy5lbnRlcmluZ0NoaWxkcmVuICYmIHRoaXMuZW50ZXJpbmdDaGlsZHJlbi5kZWxldGUoY2hpbGQpO1xuICAgIH1cbiAgICBiaW5kVG9Nb3Rpb25WYWx1ZShrZXksIHZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuZ2V0KGtleSkoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUuYWNjZWxlcmF0ZSAmJlxuICAgICAgICAgICAgYWNjZWxlcmF0ZWRWYWx1ZXMuaGFzKGtleSkgJiZcbiAgICAgICAgICAgIHRoaXMuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCB7IGZhY3RvcnksIGtleWZyYW1lcywgdGltZXMsIGVhc2UsIGR1cmF0aW9uIH0gPSB2YWx1ZS5hY2NlbGVyYXRlO1xuICAgICAgICAgICAgY29uc3QgYW5pbWF0aW9uID0gbmV3IE5hdGl2ZUFuaW1hdGlvbih7XG4gICAgICAgICAgICAgICAgZWxlbWVudDogdGhpcy5jdXJyZW50LFxuICAgICAgICAgICAgICAgIG5hbWU6IGtleSxcbiAgICAgICAgICAgICAgICBrZXlmcmFtZXMsXG4gICAgICAgICAgICAgICAgdGltZXMsXG4gICAgICAgICAgICAgICAgZWFzZSxcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogc2Vjb25kc1RvTWlsbGlzZWNvbmRzKGR1cmF0aW9uKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgY2xlYW51cCA9IGZhY3RvcnkoYW5pbWF0aW9uKTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLnNldChrZXksICgpID0+IHtcbiAgICAgICAgICAgICAgICBjbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLmNhbmNlbCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWVJc1RyYW5zZm9ybSA9IHRyYW5zZm9ybVByb3BzLmhhcyhrZXkpO1xuICAgICAgICBpZiAodmFsdWVJc1RyYW5zZm9ybSAmJiB0aGlzLm9uQmluZFRyYW5zZm9ybSkge1xuICAgICAgICAgICAgdGhpcy5vbkJpbmRUcmFuc2Zvcm0oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZW1vdmVPbkNoYW5nZSA9IHZhbHVlLm9uKFwiY2hhbmdlXCIsIChsYXRlc3RWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZXNba2V5XSA9IGxhdGVzdFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblVwZGF0ZSAmJiBmcmFtZS5wcmVSZW5kZXIodGhpcy5ub3RpZnlVcGRhdGUpO1xuICAgICAgICAgICAgaWYgKHZhbHVlSXNUcmFuc2Zvcm0gJiYgdGhpcy5wcm9qZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uLmlzVHJhbnNmb3JtRGlydHkgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IHJlbW92ZVN5bmNDaGVjaztcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgJiZcbiAgICAgICAgICAgIHdpbmRvdy5Nb3Rpb25DaGVja0FwcGVhclN5bmMpIHtcbiAgICAgICAgICAgIHJlbW92ZVN5bmNDaGVjayA9IHdpbmRvdy5Nb3Rpb25DaGVja0FwcGVhclN5bmModGhpcywga2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuc2V0KGtleSwgKCkgPT4ge1xuICAgICAgICAgICAgcmVtb3ZlT25DaGFuZ2UoKTtcbiAgICAgICAgICAgIGlmIChyZW1vdmVTeW5jQ2hlY2spXG4gICAgICAgICAgICAgICAgcmVtb3ZlU3luY0NoZWNrKCk7XG4gICAgICAgICAgICBpZiAodmFsdWUub3duZXIpXG4gICAgICAgICAgICAgICAgdmFsdWUuc3RvcCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgc29ydE5vZGVQb3NpdGlvbihvdGhlcikge1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhlc2Ugbm9kZXMgYXJlbid0IGV2ZW4gb2YgdGhlIHNhbWUgdHlwZSB3ZSBjYW4ndCBjb21wYXJlIHRoZWlyIGRlcHRoLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnQgfHxcbiAgICAgICAgICAgICF0aGlzLnNvcnRJbnN0YW5jZU5vZGVQb3NpdGlvbiB8fFxuICAgICAgICAgICAgdGhpcy50eXBlICE9PSBvdGhlci50eXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zb3J0SW5zdGFuY2VOb2RlUG9zaXRpb24odGhpcy5jdXJyZW50LCBvdGhlci5jdXJyZW50KTtcbiAgICB9XG4gICAgdXBkYXRlRmVhdHVyZXMoKSB7XG4gICAgICAgIGxldCBrZXkgPSBcImFuaW1hdGlvblwiO1xuICAgICAgICBmb3IgKGtleSBpbiBmZWF0dXJlRGVmaW5pdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVEZWZpbml0aW9uID0gZmVhdHVyZURlZmluaXRpb25zW2tleV07XG4gICAgICAgICAgICBpZiAoIWZlYXR1cmVEZWZpbml0aW9uKVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgY29uc3QgeyBpc0VuYWJsZWQsIEZlYXR1cmU6IEZlYXR1cmVDb25zdHJ1Y3RvciB9ID0gZmVhdHVyZURlZmluaXRpb247XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoaXMgZmVhdHVyZSBpcyBlbmFibGVkIGJ1dCBub3QgYWN0aXZlLCBtYWtlIGEgbmV3IGluc3RhbmNlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoIXRoaXMuZmVhdHVyZXNba2V5XSAmJlxuICAgICAgICAgICAgICAgIEZlYXR1cmVDb25zdHJ1Y3RvciAmJlxuICAgICAgICAgICAgICAgIGlzRW5hYmxlZCh0aGlzLnByb3BzKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmVhdHVyZXNba2V5XSA9IG5ldyBGZWF0dXJlQ29uc3RydWN0b3IodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlIGhhdmUgYSBmZWF0dXJlLCBtb3VudCBvciB1cGRhdGUgaXQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLmZlYXR1cmVzW2tleV0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlID0gdGhpcy5mZWF0dXJlc1trZXldO1xuICAgICAgICAgICAgICAgIGlmIChmZWF0dXJlLmlzTW91bnRlZCkge1xuICAgICAgICAgICAgICAgICAgICBmZWF0dXJlLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmVhdHVyZS5tb3VudCgpO1xuICAgICAgICAgICAgICAgICAgICBmZWF0dXJlLmlzTW91bnRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHRyaWdnZXJCdWlsZCgpIHtcbiAgICAgICAgdGhpcy5idWlsZCh0aGlzLnJlbmRlclN0YXRlLCB0aGlzLmxhdGVzdFZhbHVlcywgdGhpcy5wcm9wcyk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIE1lYXN1cmUgdGhlIGN1cnJlbnQgdmlld3BvcnQgYm94IHdpdGggb3Igd2l0aG91dCB0cmFuc2Zvcm1zLlxuICAgICAqIE9ubHkgbWVhc3VyZXMgYXhpcy1hbGlnbmVkIGJveGVzLCByb3RhdGUgYW5kIHNrZXcgbXVzdCBiZSBtYW51YWxseVxuICAgICAqIHJlbW92ZWQgd2l0aCBhIHJlLXJlbmRlciB0byB3b3JrLlxuICAgICAqL1xuICAgIG1lYXN1cmVWaWV3cG9ydEJveCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFxuICAgICAgICAgICAgPyB0aGlzLm1lYXN1cmVJbnN0YW5jZVZpZXdwb3J0Qm94KHRoaXMuY3VycmVudCwgdGhpcy5wcm9wcylcbiAgICAgICAgICAgIDogY3JlYXRlQm94KCk7XG4gICAgfVxuICAgIGdldFN0YXRpY1ZhbHVlKGtleSkge1xuICAgICAgICByZXR1cm4gdGhpcy5sYXRlc3RWYWx1ZXNba2V5XTtcbiAgICB9XG4gICAgc2V0U3RhdGljVmFsdWUoa2V5LCB2YWx1ZSkge1xuICAgICAgICB0aGlzLmxhdGVzdFZhbHVlc1trZXldID0gdmFsdWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgcHJvdmlkZWQgcHJvcHMuIEVuc3VyZSBhbnkgbmV3bHktYWRkZWQgbW90aW9uIHZhbHVlcyBhcmVcbiAgICAgKiBhZGRlZCB0byBvdXIgbWFwLCBvbGQgb25lcyByZW1vdmVkLCBhbmQgbGlzdGVuZXJzIHVwZGF0ZWQuXG4gICAgICovXG4gICAgdXBkYXRlKHByb3BzLCBwcmVzZW5jZUNvbnRleHQpIHtcbiAgICAgICAgaWYgKHByb3BzLnRyYW5zZm9ybVRlbXBsYXRlIHx8IHRoaXMucHJvcHMudHJhbnNmb3JtVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGVSZW5kZXIoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXZQcm9wcyA9IHRoaXMucHJvcHM7XG4gICAgICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICAgICAgdGhpcy5wcmV2UHJlc2VuY2VDb250ZXh0ID0gdGhpcy5wcmVzZW5jZUNvbnRleHQ7XG4gICAgICAgIHRoaXMucHJlc2VuY2VDb250ZXh0ID0gcHJlc2VuY2VDb250ZXh0O1xuICAgICAgICAvKipcbiAgICAgICAgICogVXBkYXRlIHByb3AgZXZlbnQgaGFuZGxlcnMgaWUgb25BbmltYXRpb25TdGFydCwgb25BbmltYXRpb25Db21wbGV0ZVxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wRXZlbnRIYW5kbGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gcHJvcEV2ZW50SGFuZGxlcnNbaV07XG4gICAgICAgICAgICBpZiAodGhpcy5wcm9wRXZlbnRTdWJzY3JpcHRpb25zW2tleV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNba2V5XSgpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxpc3RlbmVyTmFtZSA9IChcIm9uXCIgKyBrZXkpO1xuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXIgPSBwcm9wc1tsaXN0ZW5lck5hbWVdO1xuICAgICAgICAgICAgaWYgKGxpc3RlbmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9wRXZlbnRTdWJzY3JpcHRpb25zW2tleV0gPSB0aGlzLm9uKGtleSwgbGlzdGVuZXIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJldk1vdGlvblZhbHVlcyA9IHVwZGF0ZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyh0aGlzLCB0aGlzLnNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywgdGhpcy5wcmV2UHJvcHMgfHwge30sIHRoaXMpLCB0aGlzLnByZXZNb3Rpb25WYWx1ZXMpO1xuICAgICAgICBpZiAodGhpcy5oYW5kbGVDaGlsZE1vdGlvblZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUNoaWxkTW90aW9uVmFsdWUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXRQcm9wcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHZhcmlhbnQgZGVmaW5pdGlvbiB3aXRoIGEgZ2l2ZW4gbmFtZS5cbiAgICAgKi9cbiAgICBnZXRWYXJpYW50KG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMudmFyaWFudHMgPyB0aGlzLnByb3BzLnZhcmlhbnRzW25hbWVdIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBkZWZpbmVkIGRlZmF1bHQgdHJhbnNpdGlvbiBvbiB0aGlzIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBnZXREZWZhdWx0VHJhbnNpdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcHMudHJhbnNpdGlvbjtcbiAgICB9XG4gICAgZ2V0VHJhbnNmb3JtUGFnZVBvaW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy50cmFuc2Zvcm1QYWdlUG9pbnQ7XG4gICAgfVxuICAgIGdldENsb3Nlc3RWYXJpYW50Tm9kZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYXJpYW50Tm9kZVxuICAgICAgICAgICAgPyB0aGlzXG4gICAgICAgICAgICA6IHRoaXMucGFyZW50XG4gICAgICAgICAgICAgICAgPyB0aGlzLnBhcmVudC5nZXRDbG9zZXN0VmFyaWFudE5vZGUoKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGQgYSBjaGlsZCB2aXN1YWwgZWxlbWVudCB0byBvdXIgc2V0IG9mIGNoaWxkcmVuLlxuICAgICAqL1xuICAgIGFkZFZhcmlhbnRDaGlsZChjaGlsZCkge1xuICAgICAgICBjb25zdCBjbG9zZXN0VmFyaWFudE5vZGUgPSB0aGlzLmdldENsb3Nlc3RWYXJpYW50Tm9kZSgpO1xuICAgICAgICBpZiAoY2xvc2VzdFZhcmlhbnROb2RlKSB7XG4gICAgICAgICAgICBjbG9zZXN0VmFyaWFudE5vZGUudmFyaWFudENoaWxkcmVuICYmXG4gICAgICAgICAgICAgICAgY2xvc2VzdFZhcmlhbnROb2RlLnZhcmlhbnRDaGlsZHJlbi5hZGQoY2hpbGQpO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IGNsb3Nlc3RWYXJpYW50Tm9kZS52YXJpYW50Q2hpbGRyZW4uZGVsZXRlKGNoaWxkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGQgYSBtb3Rpb24gdmFsdWUgYW5kIGJpbmQgaXQgdG8gdGhpcyB2aXN1YWwgZWxlbWVudC5cbiAgICAgKi9cbiAgICBhZGRWYWx1ZShrZXksIHZhbHVlKSB7XG4gICAgICAgIC8vIFJlbW92ZSBleGlzdGluZyB2YWx1ZSBpZiBpdCBleGlzdHNcbiAgICAgICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IHRoaXMudmFsdWVzLmdldChrZXkpO1xuICAgICAgICBpZiAodmFsdWUgIT09IGV4aXN0aW5nVmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChleGlzdGluZ1ZhbHVlKVxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlVmFsdWUoa2V5KTtcbiAgICAgICAgICAgIHRoaXMuYmluZFRvTW90aW9uVmFsdWUoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmxhdGVzdFZhbHVlc1trZXldID0gdmFsdWUuZ2V0KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGEgbW90aW9uIHZhbHVlIGFuZCB1bmJpbmQgYW55IGFjdGl2ZSBzdWJzY3JpcHRpb25zLlxuICAgICAqL1xuICAgIHJlbW92ZVZhbHVlKGtleSkge1xuICAgICAgICB0aGlzLnZhbHVlcy5kZWxldGUoa2V5KTtcbiAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSB0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHVuc3Vic2NyaWJlKSB7XG4gICAgICAgICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuZGVsZXRlKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZGVsZXRlIHRoaXMubGF0ZXN0VmFsdWVzW2tleV07XG4gICAgICAgIHRoaXMucmVtb3ZlVmFsdWVGcm9tUmVuZGVyU3RhdGUoa2V5LCB0aGlzLnJlbmRlclN0YXRlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hlY2sgd2hldGhlciB3ZSBoYXZlIGEgbW90aW9uIHZhbHVlIGZvciB0aGlzIGtleVxuICAgICAqL1xuICAgIGhhc1ZhbHVlKGtleSkge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZXMuaGFzKGtleSk7XG4gICAgfVxuICAgIGdldFZhbHVlKGtleSwgZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlcyAmJiB0aGlzLnByb3BzLnZhbHVlc1trZXldKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy52YWx1ZXNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLnZhbHVlcy5nZXQoa2V5KTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHZhbHVlID0gbW90aW9uVmFsdWUoZGVmYXVsdFZhbHVlID09PSBudWxsID8gdW5kZWZpbmVkIDogZGVmYXVsdFZhbHVlLCB7IG93bmVyOiB0aGlzIH0pO1xuICAgICAgICAgICAgdGhpcy5hZGRWYWx1ZShrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIHdlJ3JlIHRyeWluZyB0byBhbmltYXRlIHRvIGEgcHJldmlvdXNseSB1bmVuY291bnRlcmVkIHZhbHVlLFxuICAgICAqIHdlIG5lZWQgdG8gY2hlY2sgZm9yIGl0IGluIG91ciBzdGF0ZSBhbmQgYXMgYSBsYXN0IHJlc29ydCByZWFkIGl0XG4gICAgICogZGlyZWN0bHkgZnJvbSB0aGUgaW5zdGFuY2UgKHdoaWNoIG1pZ2h0IGhhdmUgcGVyZm9ybWFuY2UgaW1wbGljYXRpb25zKS5cbiAgICAgKi9cbiAgICByZWFkVmFsdWUoa2V5LCB0YXJnZXQpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5sYXRlc3RWYWx1ZXNba2V5XSAhPT0gdW5kZWZpbmVkIHx8ICF0aGlzLmN1cnJlbnRcbiAgICAgICAgICAgID8gdGhpcy5sYXRlc3RWYWx1ZXNba2V5XVxuICAgICAgICAgICAgOiB0aGlzLmdldEJhc2VUYXJnZXRGcm9tUHJvcHModGhpcy5wcm9wcywga2V5KSA/P1xuICAgICAgICAgICAgICAgIHRoaXMucmVhZFZhbHVlRnJvbUluc3RhbmNlKHRoaXMuY3VycmVudCwga2V5LCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgICAgIChpc051bWVyaWNhbFN0cmluZyh2YWx1ZSkgfHwgaXNaZXJvVmFsdWVTdHJpbmcodmFsdWUpKSkge1xuICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBudW1iZXIgcmVhZCBhcyBhIHN0cmluZywgaWUgXCIwXCIgb3IgXCIyMDBcIiwgY29udmVydCBpdCB0byBhIG51bWJlclxuICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyc2VGbG9hdCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICghZmluZFZhbHVlVHlwZSh2YWx1ZSkgJiYgY29tcGxleC50ZXN0KHRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGdldEFuaW1hdGFibGVOb25lKGtleSwgdGFyZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc2V0QmFzZVRhcmdldChrZXksIGlzTW90aW9uVmFsdWUodmFsdWUpID8gdmFsdWUuZ2V0KCkgOiB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzTW90aW9uVmFsdWUodmFsdWUpID8gdmFsdWUuZ2V0KCkgOiB2YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBiYXNlIHRhcmdldCB0byBsYXRlciBhbmltYXRlIGJhY2sgdG8uIFRoaXMgaXMgY3VycmVudGx5XG4gICAgICogb25seSBoeWRyYXRlZCBvbiBjcmVhdGlvbiBhbmQgd2hlbiB3ZSBmaXJzdCByZWFkIGEgdmFsdWUuXG4gICAgICovXG4gICAgc2V0QmFzZVRhcmdldChrZXksIHZhbHVlKSB7XG4gICAgICAgIHRoaXMuYmFzZVRhcmdldFtrZXldID0gdmFsdWU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEZpbmQgdGhlIGJhc2UgdGFyZ2V0IGZvciBhIHZhbHVlIHRoYXRzIGJlZW4gcmVtb3ZlZCBmcm9tIGFsbCBhbmltYXRpb25cbiAgICAgKiBwcm9wcy5cbiAgICAgKi9cbiAgICBnZXRCYXNlVGFyZ2V0KGtleSkge1xuICAgICAgICBjb25zdCB7IGluaXRpYWwgfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGxldCB2YWx1ZUZyb21Jbml0aWFsO1xuICAgICAgICBpZiAodHlwZW9mIGluaXRpYWwgPT09IFwic3RyaW5nXCIgfHwgdHlwZW9mIGluaXRpYWwgPT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnQgPSByZXNvbHZlVmFyaWFudEZyb21Qcm9wcyh0aGlzLnByb3BzLCBpbml0aWFsLCB0aGlzLnByZXNlbmNlQ29udGV4dD8uY3VzdG9tKTtcbiAgICAgICAgICAgIGlmICh2YXJpYW50KSB7XG4gICAgICAgICAgICAgICAgdmFsdWVGcm9tSW5pdGlhbCA9IHZhcmlhbnRba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhpcyB2YWx1ZSBzdGlsbCBleGlzdHMgaW4gdGhlIGN1cnJlbnQgaW5pdGlhbCB2YXJpYW50LCByZWFkIHRoYXQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoaW5pdGlhbCAmJiB2YWx1ZUZyb21Jbml0aWFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZUZyb21Jbml0aWFsO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbHRlcm5hdGl2ZWx5LCBpZiB0aGlzIFZpc3VhbEVsZW1lbnQgY29uZmlnIGhhcyBkZWZpbmVkIGEgZ2V0QmFzZVRhcmdldFxuICAgICAgICAgKiBzbyB3ZSBjYW4gcmVhZCB0aGUgdmFsdWUgZnJvbSBhbiBhbHRlcm5hdGl2ZSBzb3VyY2UsIHRyeSB0aGF0LlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5nZXRCYXNlVGFyZ2V0RnJvbVByb3BzKHRoaXMucHJvcHMsIGtleSk7XG4gICAgICAgIGlmICh0YXJnZXQgIT09IHVuZGVmaW5lZCAmJiAhaXNNb3Rpb25WYWx1ZSh0YXJnZXQpKVxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHRoZSB2YWx1ZSB3YXMgaW5pdGlhbGx5IGRlZmluZWQgb24gaW5pdGlhbCwgYnV0IGl0IGRvZXNuJ3QgYW55IG1vcmUsXG4gICAgICAgICAqIHJldHVybiB1bmRlZmluZWQuIE90aGVyd2lzZSByZXR1cm4gdGhlIHZhbHVlIGFzIGluaXRpYWxseSByZWFkIGZyb20gdGhlIERPTS5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxWYWx1ZXNba2V5XSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICB2YWx1ZUZyb21Jbml0aWFsID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICA6IHRoaXMuYmFzZVRhcmdldFtrZXldO1xuICAgIH1cbiAgICBvbihldmVudE5hbWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICghdGhpcy5ldmVudHNbZXZlbnROYW1lXSkge1xuICAgICAgICAgICAgdGhpcy5ldmVudHNbZXZlbnROYW1lXSA9IG5ldyBTdWJzY3JpcHRpb25NYW5hZ2VyKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRzW2V2ZW50TmFtZV0uYWRkKGNhbGxiYWNrKTtcbiAgICB9XG4gICAgbm90aWZ5KGV2ZW50TmFtZSwgLi4uYXJncykge1xuICAgICAgICBpZiAodGhpcy5ldmVudHNbZXZlbnROYW1lXSkge1xuICAgICAgICAgICAgdGhpcy5ldmVudHNbZXZlbnROYW1lXS5ub3RpZnkoLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2NoZWR1bGVSZW5kZXJNaWNyb3Rhc2soKSB7XG4gICAgICAgIG1pY3JvdGFzay5yZW5kZXIodGhpcy5yZW5kZXIpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgVmlzdWFsRWxlbWVudCwgZ2V0RmVhdHVyZURlZmluaXRpb25zLCBzZXRGZWF0dXJlRGVmaW5pdGlvbnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVZpc3VhbEVsZW1lbnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.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 */ DOMVisualElement: () => (/* binding */ DOMVisualElement)\n/* harmony export */ });\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../value/utils/is-motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _animation_keyframes_DOMKeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/keyframes/DOMKeyframesResolver.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs\");\n/* harmony import */ var _VisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VisualElement.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\");\n\n\n\n\nclass DOMVisualElement extends _VisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.VisualElement {\n constructor() {\n super(...arguments);\n this.KeyframeResolver = _animation_keyframes_DOMKeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_1__.DOMKeyframesResolver;\n }\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n const style = props.style;\n return style ? style[key] : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__.isMotionValue)(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current) {\n this.current.textContent = `${latest}`;\n }\n });\n }\n }\n}\n\n\n//# sourceMappingURL=DOMVisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9kb20vRE9NVmlzdWFsRWxlbWVudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFzRTtBQUNvQjtBQUNyQzs7QUFFckQsK0JBQStCLDZEQUFhO0FBQzVDO0FBQ0E7QUFDQSxnQ0FBZ0MsK0ZBQW9CO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLGFBQWE7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixXQUFXO0FBQzNCLFlBQVksK0VBQWE7QUFDekI7QUFDQTtBQUNBLGtEQUFrRCxPQUFPO0FBQ3pEO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9kb20vRE9NVmlzdWFsRWxlbWVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJy4uLy4uL3ZhbHVlL3V0aWxzL2lzLW1vdGlvbi12YWx1ZS5tanMnO1xuaW1wb3J0IHsgRE9NS2V5ZnJhbWVzUmVzb2x2ZXIgfSBmcm9tICcuLi8uLi9hbmltYXRpb24va2V5ZnJhbWVzL0RPTUtleWZyYW1lc1Jlc29sdmVyLm1qcyc7XG5pbXBvcnQgeyBWaXN1YWxFbGVtZW50IH0gZnJvbSAnLi4vVmlzdWFsRWxlbWVudC5tanMnO1xuXG5jbGFzcyBET01WaXN1YWxFbGVtZW50IGV4dGVuZHMgVmlzdWFsRWxlbWVudCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMuS2V5ZnJhbWVSZXNvbHZlciA9IERPTUtleWZyYW1lc1Jlc29sdmVyO1xuICAgIH1cbiAgICBzb3J0SW5zdGFuY2VOb2RlUG9zaXRpb24oYSwgYikge1xuICAgICAgICAvKipcbiAgICAgICAgICogY29tcGFyZURvY3VtZW50UG9zaXRpb24gcmV0dXJucyBhIGJpdG1hc2ssIGJ5IHVzaW5nIHRoZSBiaXR3aXNlICZcbiAgICAgICAgICogd2UncmUgcmV0dXJuaW5nIHRydWUgaWYgMiBpbiB0aGF0IGJpdG1hc2sgaXMgc2V0IHRvIHRydWUuIDIgaXMgc2V0XG4gICAgICAgICAqIHRvIHRydWUgaWYgYiBwcmVjZWVkcyBhLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikgJiAyID8gMSA6IC0xO1xuICAgIH1cbiAgICBnZXRCYXNlVGFyZ2V0RnJvbVByb3BzKHByb3BzLCBrZXkpIHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBwcm9wcy5zdHlsZTtcbiAgICAgICAgcmV0dXJuIHN0eWxlID8gc3R5bGVba2V5XSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmVtb3ZlVmFsdWVGcm9tUmVuZGVyU3RhdGUoa2V5LCB7IHZhcnMsIHN0eWxlIH0pIHtcbiAgICAgICAgZGVsZXRlIHZhcnNba2V5XTtcbiAgICAgICAgZGVsZXRlIHN0eWxlW2tleV07XG4gICAgfVxuICAgIGhhbmRsZUNoaWxkTW90aW9uVmFsdWUoKSB7XG4gICAgICAgIGlmICh0aGlzLmNoaWxkU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNoaWxkU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5jaGlsZFN1YnNjcmlwdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xuICAgICAgICBpZiAoaXNNb3Rpb25WYWx1ZShjaGlsZHJlbikpIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRTdWJzY3JpcHRpb24gPSBjaGlsZHJlbi5vbihcImNoYW5nZVwiLCAobGF0ZXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnQudGV4dENvbnRlbnQgPSBgJHtsYXRlc3R9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgRE9NVmlzdWFsRWxlbWVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RE9NVmlzdWFsRWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/is-css-var.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 */ isCSSVar: () => (/* binding */ isCSSVar)\n/* harmony export */ });\nconst isCSSVar = (name) => name.startsWith(\"--\");\n\n\n//# sourceMappingURL=is-css-var.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9kb20vaXMtY3NzLXZhci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUVvQjtBQUNwQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9pcy1jc3MtdmFyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc0NTU1ZhciA9IChuYW1lKSA9PiBuYW1lLnN0YXJ0c1dpdGgoXCItLVwiKTtcblxuZXhwb3J0IHsgaXNDU1NWYXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWNzcy12YXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/parse-transform.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 */ defaultTransformValue: () => (/* binding */ defaultTransformValue),\n/* harmony export */ parseValueFromTransform: () => (/* binding */ parseValueFromTransform),\n/* harmony export */ readTransformValue: () => (/* binding */ readTransformValue)\n/* harmony export */ });\nconst radToDeg = (rad) => (rad * 180) / Math.PI;\nconst rotate = (v) => {\n const angle = radToDeg(Math.atan2(v[1], v[0]));\n return rebaseAngle(angle);\n};\nconst matrix2dParsers = {\n x: 4,\n y: 5,\n translateX: 4,\n translateY: 5,\n scaleX: 0,\n scaleY: 3,\n scale: (v) => (Math.abs(v[0]) + Math.abs(v[3])) / 2,\n rotate,\n rotateZ: rotate,\n skewX: (v) => radToDeg(Math.atan(v[1])),\n skewY: (v) => radToDeg(Math.atan(v[2])),\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[2])) / 2,\n};\nconst rebaseAngle = (angle) => {\n angle = angle % 360;\n if (angle < 0)\n angle += 360;\n return angle;\n};\nconst rotateZ = rotate;\nconst scaleX = (v) => Math.sqrt(v[0] * v[0] + v[1] * v[1]);\nconst scaleY = (v) => Math.sqrt(v[4] * v[4] + v[5] * v[5]);\nconst matrix3dParsers = {\n x: 12,\n y: 13,\n z: 14,\n translateX: 12,\n translateY: 13,\n translateZ: 14,\n scaleX,\n scaleY,\n scale: (v) => (scaleX(v) + scaleY(v)) / 2,\n rotateX: (v) => rebaseAngle(radToDeg(Math.atan2(v[6], v[5]))),\n rotateY: (v) => rebaseAngle(radToDeg(Math.atan2(-v[2], v[0]))),\n rotateZ,\n rotate: rotateZ,\n skewX: (v) => radToDeg(Math.atan(v[4])),\n skewY: (v) => radToDeg(Math.atan(v[1])),\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[4])) / 2,\n};\nfunction defaultTransformValue(name) {\n return name.includes(\"scale\") ? 1 : 0;\n}\nfunction parseValueFromTransform(transform, name) {\n if (!transform || transform === \"none\") {\n return defaultTransformValue(name);\n }\n const matrix3dMatch = transform.match(/^matrix3d\\(([-\\d.e\\s,]+)\\)$/u);\n let parsers;\n let match;\n if (matrix3dMatch) {\n parsers = matrix3dParsers;\n match = matrix3dMatch;\n }\n else {\n const matrix2dMatch = transform.match(/^matrix\\(([-\\d.e\\s,]+)\\)$/u);\n parsers = matrix2dParsers;\n match = matrix2dMatch;\n }\n if (!match) {\n return defaultTransformValue(name);\n }\n const valueParser = parsers[name];\n const values = match[1].split(\",\").map(convertTransformToNumber);\n return typeof valueParser === \"function\"\n ? valueParser(values)\n : values[valueParser];\n}\nconst readTransformValue = (instance, name) => {\n const { transform = \"none\" } = getComputedStyle(instance);\n return parseValueFromTransform(transform, name);\n};\nfunction convertTransformToNumber(value) {\n return parseFloat(value.trim());\n}\n\n\n//# sourceMappingURL=parse-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9kb20vcGFyc2UtdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFCQUFxQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU4RTtBQUM5RSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9wYXJzZS10cmFuc2Zvcm0ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJhZFRvRGVnID0gKHJhZCkgPT4gKHJhZCAqIDE4MCkgLyBNYXRoLlBJO1xuY29uc3Qgcm90YXRlID0gKHYpID0+IHtcbiAgICBjb25zdCBhbmdsZSA9IHJhZFRvRGVnKE1hdGguYXRhbjIodlsxXSwgdlswXSkpO1xuICAgIHJldHVybiByZWJhc2VBbmdsZShhbmdsZSk7XG59O1xuY29uc3QgbWF0cml4MmRQYXJzZXJzID0ge1xuICAgIHg6IDQsXG4gICAgeTogNSxcbiAgICB0cmFuc2xhdGVYOiA0LFxuICAgIHRyYW5zbGF0ZVk6IDUsXG4gICAgc2NhbGVYOiAwLFxuICAgIHNjYWxlWTogMyxcbiAgICBzY2FsZTogKHYpID0+IChNYXRoLmFicyh2WzBdKSArIE1hdGguYWJzKHZbM10pKSAvIDIsXG4gICAgcm90YXRlLFxuICAgIHJvdGF0ZVo6IHJvdGF0ZSxcbiAgICBza2V3WDogKHYpID0+IHJhZFRvRGVnKE1hdGguYXRhbih2WzFdKSksXG4gICAgc2tld1k6ICh2KSA9PiByYWRUb0RlZyhNYXRoLmF0YW4odlsyXSkpLFxuICAgIHNrZXc6ICh2KSA9PiAoTWF0aC5hYnModlsxXSkgKyBNYXRoLmFicyh2WzJdKSkgLyAyLFxufTtcbmNvbnN0IHJlYmFzZUFuZ2xlID0gKGFuZ2xlKSA9PiB7XG4gICAgYW5nbGUgPSBhbmdsZSAlIDM2MDtcbiAgICBpZiAoYW5nbGUgPCAwKVxuICAgICAgICBhbmdsZSArPSAzNjA7XG4gICAgcmV0dXJuIGFuZ2xlO1xufTtcbmNvbnN0IHJvdGF0ZVogPSByb3RhdGU7XG5jb25zdCBzY2FsZVggPSAodikgPT4gTWF0aC5zcXJ0KHZbMF0gKiB2WzBdICsgdlsxXSAqIHZbMV0pO1xuY29uc3Qgc2NhbGVZID0gKHYpID0+IE1hdGguc3FydCh2WzRdICogdls0XSArIHZbNV0gKiB2WzVdKTtcbmNvbnN0IG1hdHJpeDNkUGFyc2VycyA9IHtcbiAgICB4OiAxMixcbiAgICB5OiAxMyxcbiAgICB6OiAxNCxcbiAgICB0cmFuc2xhdGVYOiAxMixcbiAgICB0cmFuc2xhdGVZOiAxMyxcbiAgICB0cmFuc2xhdGVaOiAxNCxcbiAgICBzY2FsZVgsXG4gICAgc2NhbGVZLFxuICAgIHNjYWxlOiAodikgPT4gKHNjYWxlWCh2KSArIHNjYWxlWSh2KSkgLyAyLFxuICAgIHJvdGF0ZVg6ICh2KSA9PiByZWJhc2VBbmdsZShyYWRUb0RlZyhNYXRoLmF0YW4yKHZbNl0sIHZbNV0pKSksXG4gICAgcm90YXRlWTogKHYpID0+IHJlYmFzZUFuZ2xlKHJhZFRvRGVnKE1hdGguYXRhbjIoLXZbMl0sIHZbMF0pKSksXG4gICAgcm90YXRlWixcbiAgICByb3RhdGU6IHJvdGF0ZVosXG4gICAgc2tld1g6ICh2KSA9PiByYWRUb0RlZyhNYXRoLmF0YW4odls0XSkpLFxuICAgIHNrZXdZOiAodikgPT4gcmFkVG9EZWcoTWF0aC5hdGFuKHZbMV0pKSxcbiAgICBza2V3OiAodikgPT4gKE1hdGguYWJzKHZbMV0pICsgTWF0aC5hYnModls0XSkpIC8gMixcbn07XG5mdW5jdGlvbiBkZWZhdWx0VHJhbnNmb3JtVmFsdWUobmFtZSkge1xuICAgIHJldHVybiBuYW1lLmluY2x1ZGVzKFwic2NhbGVcIikgPyAxIDogMDtcbn1cbmZ1bmN0aW9uIHBhcnNlVmFsdWVGcm9tVHJhbnNmb3JtKHRyYW5zZm9ybSwgbmFtZSkge1xuICAgIGlmICghdHJhbnNmb3JtIHx8IHRyYW5zZm9ybSA9PT0gXCJub25lXCIpIHtcbiAgICAgICAgcmV0dXJuIGRlZmF1bHRUcmFuc2Zvcm1WYWx1ZShuYW1lKTtcbiAgICB9XG4gICAgY29uc3QgbWF0cml4M2RNYXRjaCA9IHRyYW5zZm9ybS5tYXRjaCgvXm1hdHJpeDNkXFwoKFstXFxkLmVcXHMsXSspXFwpJC91KTtcbiAgICBsZXQgcGFyc2VycztcbiAgICBsZXQgbWF0Y2g7XG4gICAgaWYgKG1hdHJpeDNkTWF0Y2gpIHtcbiAgICAgICAgcGFyc2VycyA9IG1hdHJpeDNkUGFyc2VycztcbiAgICAgICAgbWF0Y2ggPSBtYXRyaXgzZE1hdGNoO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgbWF0cml4MmRNYXRjaCA9IHRyYW5zZm9ybS5tYXRjaCgvXm1hdHJpeFxcKChbLVxcZC5lXFxzLF0rKVxcKSQvdSk7XG4gICAgICAgIHBhcnNlcnMgPSBtYXRyaXgyZFBhcnNlcnM7XG4gICAgICAgIG1hdGNoID0gbWF0cml4MmRNYXRjaDtcbiAgICB9XG4gICAgaWYgKCFtYXRjaCkge1xuICAgICAgICByZXR1cm4gZGVmYXVsdFRyYW5zZm9ybVZhbHVlKG5hbWUpO1xuICAgIH1cbiAgICBjb25zdCB2YWx1ZVBhcnNlciA9IHBhcnNlcnNbbmFtZV07XG4gICAgY29uc3QgdmFsdWVzID0gbWF0Y2hbMV0uc3BsaXQoXCIsXCIpLm1hcChjb252ZXJ0VHJhbnNmb3JtVG9OdW1iZXIpO1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWVQYXJzZXIgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICA/IHZhbHVlUGFyc2VyKHZhbHVlcylcbiAgICAgICAgOiB2YWx1ZXNbdmFsdWVQYXJzZXJdO1xufVxuY29uc3QgcmVhZFRyYW5zZm9ybVZhbHVlID0gKGluc3RhbmNlLCBuYW1lKSA9PiB7XG4gICAgY29uc3QgeyB0cmFuc2Zvcm0gPSBcIm5vbmVcIiB9ID0gZ2V0Q29tcHV0ZWRTdHlsZShpbnN0YW5jZSk7XG4gICAgcmV0dXJuIHBhcnNlVmFsdWVGcm9tVHJhbnNmb3JtKHRyYW5zZm9ybSwgbmFtZSk7XG59O1xuZnVuY3Rpb24gY29udmVydFRyYW5zZm9ybVRvTnVtYmVyKHZhbHVlKSB7XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQodmFsdWUudHJpbSgpKTtcbn1cblxuZXhwb3J0IHsgZGVmYXVsdFRyYW5zZm9ybVZhbHVlLCBwYXJzZVZhbHVlRnJvbVRyYW5zZm9ybSwgcmVhZFRyYW5zZm9ybVZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYXJzZS10cmFuc2Zvcm0ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/style-set.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 */ setStyle: () => (/* binding */ setStyle)\n/* harmony export */ });\n/* harmony import */ var _is_css_var_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-css-var.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs\");\n\n\nfunction setStyle(element, name, value) {\n (0,_is_css_var_mjs__WEBPACK_IMPORTED_MODULE_0__.isCSSVar)(name)\n ? element.style.setProperty(name, value)\n : (element.style[name] = value);\n}\n\n\n//# sourceMappingURL=style-set.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9kb20vc3R5bGUtc2V0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE0Qzs7QUFFNUM7QUFDQSxJQUFJLHlEQUFRO0FBQ1o7QUFDQTtBQUNBOztBQUVvQjtBQUNwQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9zdHlsZS1zZXQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQ1NTVmFyIH0gZnJvbSAnLi9pcy1jc3MtdmFyLm1qcyc7XG5cbmZ1bmN0aW9uIHNldFN0eWxlKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7XG4gICAgaXNDU1NWYXIobmFtZSlcbiAgICAgICAgPyBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KG5hbWUsIHZhbHVlKVxuICAgICAgICA6IChlbGVtZW50LnN0eWxlW25hbWVdID0gdmFsdWUpO1xufVxuXG5leHBvcnQgeyBzZXRTdHlsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3R5bGUtc2V0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.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 */ camelToDash: () => (/* binding */ camelToDash)\n/* harmony export */ });\nfunction camelToDash(str) {\n return str.replace(/([A-Z])/g, (match) => `-${match.toLowerCase()}`);\n}\n\n\n//# sourceMappingURL=camel-to-dash.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9kb20vdXRpbHMvY2FtZWwtdG8tZGFzaC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0Esa0RBQWtELG9CQUFvQjtBQUN0RTs7QUFFdUI7QUFDdkIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9kb20vdXRpbHMvY2FtZWwtdG8tZGFzaC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gY2FtZWxUb0Rhc2goc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oW0EtWl0pL2csIChtYXRjaCkgPT4gYC0ke21hdGNoLnRvTG93ZXJDYXNlKCl9YCk7XG59XG5cbmV4cG9ydCB7IGNhbWVsVG9EYXNoIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jYW1lbC10by1kYXNoLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.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 */ HTMLVisualElement: () => (/* binding */ HTMLVisualElement),\n/* harmony export */ getComputedStyle: () => (/* binding */ getComputedStyle)\n/* harmony export */ });\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../animation/utils/is-css-variable.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/keys-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom/parse-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\");\n/* harmony import */ var _projection_utils_measure_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../projection/utils/measure.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs\");\n/* harmony import */ var _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/DOMVisualElement.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs\");\n/* harmony import */ var _utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/build-styles.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var _utils_render_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/render.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs\");\n/* harmony import */ var _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/scrape-motion-values.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\");\n\n\n\n\n\n\n\n\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n this.renderInstance = _utils_render_mjs__WEBPACK_IMPORTED_MODULE_1__.renderHTML;\n }\n readValueFromInstance(instance, key) {\n if (_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformProps.has(key)) {\n return this.projection?.isProjecting\n ? (0,_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.defaultTransformValue)(key)\n : (0,_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.readTransformValue)(instance, key);\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = ((0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_4__.isCSSVariableName)(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return (0,_projection_utils_measure_mjs__WEBPACK_IMPORTED_MODULE_5__.measureViewportBox)(instance, transformPagePoint);\n }\n build(renderState, latestValues, props) {\n (0,_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_6__.buildHTMLStyles)(renderState, latestValues, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return (0,_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_7__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\n }\n}\n\n\n//# sourceMappingURL=HTMLVisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL0hUTUxWaXN1YWxFbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQThFO0FBQ2pCO0FBQzBCO0FBQ2Y7QUFDVDtBQUNKO0FBQ1g7QUFDK0I7O0FBRS9FO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx1RUFBZ0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLHlEQUFVO0FBQ3hDO0FBQ0E7QUFDQSxZQUFZLHFFQUFjO0FBQzFCO0FBQ0Esa0JBQWtCLCtFQUFxQjtBQUN2QyxrQkFBa0IsNEVBQWtCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQix1RkFBaUI7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyxvQkFBb0I7QUFDL0QsZUFBZSxpRkFBa0I7QUFDakM7QUFDQTtBQUNBLFFBQVEsd0VBQWU7QUFDdkI7QUFDQTtBQUNBLGVBQWUsNEZBQTJCO0FBQzFDO0FBQ0E7O0FBRStDO0FBQy9DIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvaHRtbC9IVE1MVmlzdWFsRWxlbWVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNDU1NWYXJpYWJsZU5hbWUgfSBmcm9tICcuLi8uLi9hbmltYXRpb24vdXRpbHMvaXMtY3NzLXZhcmlhYmxlLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wcyB9IGZyb20gJy4uL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyBkZWZhdWx0VHJhbnNmb3JtVmFsdWUsIHJlYWRUcmFuc2Zvcm1WYWx1ZSB9IGZyb20gJy4uL2RvbS9wYXJzZS10cmFuc2Zvcm0ubWpzJztcbmltcG9ydCB7IG1lYXN1cmVWaWV3cG9ydEJveCB9IGZyb20gJy4uLy4uL3Byb2plY3Rpb24vdXRpbHMvbWVhc3VyZS5tanMnO1xuaW1wb3J0IHsgRE9NVmlzdWFsRWxlbWVudCB9IGZyb20gJy4uL2RvbS9ET01WaXN1YWxFbGVtZW50Lm1qcyc7XG5pbXBvcnQgeyBidWlsZEhUTUxTdHlsZXMgfSBmcm9tICcuL3V0aWxzL2J1aWxkLXN0eWxlcy5tanMnO1xuaW1wb3J0IHsgcmVuZGVySFRNTCB9IGZyb20gJy4vdXRpbHMvcmVuZGVyLm1qcyc7XG5pbXBvcnQgeyBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfSBmcm9tICcuL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcyc7XG5cbmZ1bmN0aW9uIGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkge1xuICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbn1cbmNsYXNzIEhUTUxWaXN1YWxFbGVtZW50IGV4dGVuZHMgRE9NVmlzdWFsRWxlbWVudCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMudHlwZSA9IFwiaHRtbFwiO1xuICAgICAgICB0aGlzLnJlbmRlckluc3RhbmNlID0gcmVuZGVySFRNTDtcbiAgICB9XG4gICAgcmVhZFZhbHVlRnJvbUluc3RhbmNlKGluc3RhbmNlLCBrZXkpIHtcbiAgICAgICAgaWYgKHRyYW5zZm9ybVByb3BzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm9qZWN0aW9uPy5pc1Byb2plY3RpbmdcbiAgICAgICAgICAgICAgICA/IGRlZmF1bHRUcmFuc2Zvcm1WYWx1ZShrZXkpXG4gICAgICAgICAgICAgICAgOiByZWFkVHJhbnNmb3JtVmFsdWUoaW5zdGFuY2UsIGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZShpbnN0YW5jZSk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IChpc0NTU1ZhcmlhYmxlTmFtZShrZXkpXG4gICAgICAgICAgICAgICAgPyBjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFsdWUoa2V5KVxuICAgICAgICAgICAgICAgIDogY29tcHV0ZWRTdHlsZVtrZXldKSB8fCAwO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHZhbHVlLnRyaW0oKSA6IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIG1lYXN1cmVJbnN0YW5jZVZpZXdwb3J0Qm94KGluc3RhbmNlLCB7IHRyYW5zZm9ybVBhZ2VQb2ludCB9KSB7XG4gICAgICAgIHJldHVybiBtZWFzdXJlVmlld3BvcnRCb3goaW5zdGFuY2UsIHRyYW5zZm9ybVBhZ2VQb2ludCk7XG4gICAgfVxuICAgIGJ1aWxkKHJlbmRlclN0YXRlLCBsYXRlc3RWYWx1ZXMsIHByb3BzKSB7XG4gICAgICAgIGJ1aWxkSFRNTFN0eWxlcyhyZW5kZXJTdGF0ZSwgbGF0ZXN0VmFsdWVzLCBwcm9wcy50cmFuc2Zvcm1UZW1wbGF0ZSk7XG4gICAgfVxuICAgIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywgcHJldlByb3BzLCB2aXN1YWxFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBIVE1MVmlzdWFsRWxlbWVudCwgZ2V0Q29tcHV0ZWRTdHlsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SFRNTFZpc3VhbEVsZW1lbnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/build-styles.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 */ buildHTMLStyles: () => (/* binding */ buildHTMLStyles)\n/* harmony export */ });\n/* harmony import */ var _value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../value/types/utils/get-as-type.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\");\n/* harmony import */ var _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../value/types/maps/number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/keys-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../animation/utils/is-css-variable.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _build_transform_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./build-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs\");\n\n\n\n\n\n\nfunction buildHTMLStyles(state, latestValues, transformTemplate) {\n const { style, vars, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept separately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n if (_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n continue;\n }\n else if ((0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableName)(key)) {\n vars[key] = value;\n continue;\n }\n else {\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueAsType = (0,_value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_2__.getValueAsType)(value, _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_3__.numberValueTypes[key]);\n if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] =\n valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = (0,_build_transform_mjs__WEBPACK_IMPORTED_MODULE_4__.buildTransform)(latestValues, state.transform, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\n\n//# sourceMappingURL=build-styles.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL2J1aWxkLXN0eWxlcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTRFO0FBQ0o7QUFDUjtBQUNpQjtBQUMxQjs7QUFFdkQ7QUFDQSxZQUFZLCtCQUErQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxRUFBYztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQix1RkFBaUI7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxrRkFBYyxRQUFRLDBFQUFnQjtBQUN0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixvRUFBYztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlEQUFpRDtBQUNqRSxtQ0FBbUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRO0FBQ2pFO0FBQ0E7O0FBRTJCO0FBQzNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvaHRtbC91dGlscy9idWlsZC1zdHlsZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFZhbHVlQXNUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdmFsdWUvdHlwZXMvdXRpbHMvZ2V0LWFzLXR5cGUubWpzJztcbmltcG9ydCB7IG51bWJlclZhbHVlVHlwZXMgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy9tYXBzL251bWJlci5tanMnO1xuaW1wb3J0IHsgdHJhbnNmb3JtUHJvcHMgfSBmcm9tICcuLi8uLi91dGlscy9rZXlzLXRyYW5zZm9ybS5tanMnO1xuaW1wb3J0IHsgaXNDU1NWYXJpYWJsZU5hbWUgfSBmcm9tICcuLi8uLi8uLi9hbmltYXRpb24vdXRpbHMvaXMtY3NzLXZhcmlhYmxlLm1qcyc7XG5pbXBvcnQgeyBidWlsZFRyYW5zZm9ybSB9IGZyb20gJy4vYnVpbGQtdHJhbnNmb3JtLm1qcyc7XG5cbmZ1bmN0aW9uIGJ1aWxkSFRNTFN0eWxlcyhzdGF0ZSwgbGF0ZXN0VmFsdWVzLCB0cmFuc2Zvcm1UZW1wbGF0ZSkge1xuICAgIGNvbnN0IHsgc3R5bGUsIHZhcnMsIHRyYW5zZm9ybU9yaWdpbiB9ID0gc3RhdGU7XG4gICAgLy8gVHJhY2sgd2hldGhlciB3ZSBlbmNvdW50ZXIgYW55IHRyYW5zZm9ybSBvciB0cmFuc2Zvcm1PcmlnaW4gdmFsdWVzLlxuICAgIGxldCBoYXNUcmFuc2Zvcm0gPSBmYWxzZTtcbiAgICBsZXQgaGFzVHJhbnNmb3JtT3JpZ2luID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogTG9vcCBvdmVyIGFsbCBvdXIgbGF0ZXN0IGFuaW1hdGVkIHZhbHVlcyBhbmQgZGVjaWRlIHdoZXRoZXIgdG8gaGFuZGxlIHRoZW1cbiAgICAgKiBhcyBhIHN0eWxlIG9yIENTUyB2YXJpYWJsZS5cbiAgICAgKlxuICAgICAqIFRyYW5zZm9ybXMgYW5kIHRyYW5zZm9ybSBvcmlnaW5zIGFyZSBrZXB0IHNlcGFyYXRlbHkgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZy5cbiAgICAgKi9cbiAgICBmb3IgKGNvbnN0IGtleSBpbiBsYXRlc3RWYWx1ZXMpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBsYXRlc3RWYWx1ZXNba2V5XTtcbiAgICAgICAgaWYgKHRyYW5zZm9ybVByb3BzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgdHJhbnNmb3JtLCBmbGFnIHRvIGVuYWJsZSBmdXJ0aGVyIHRyYW5zZm9ybSBwcm9jZXNzaW5nXG4gICAgICAgICAgICBoYXNUcmFuc2Zvcm0gPSB0cnVlO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNDU1NWYXJpYWJsZU5hbWUoa2V5KSkge1xuICAgICAgICAgICAgdmFyc1trZXldID0gdmFsdWU7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIENvbnZlcnQgdGhlIHZhbHVlIHRvIGl0cyBkZWZhdWx0IHZhbHVlIHR5cGUsIGllIDAgLT4gXCIwcHhcIlxuICAgICAgICAgICAgY29uc3QgdmFsdWVBc1R5cGUgPSBnZXRWYWx1ZUFzVHlwZSh2YWx1ZSwgbnVtYmVyVmFsdWVUeXBlc1trZXldKTtcbiAgICAgICAgICAgIGlmIChrZXkuc3RhcnRzV2l0aChcIm9yaWdpblwiKSkge1xuICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSB0cmFuc2Zvcm0gb3JpZ2luLCBmbGFnIGFuZCBlbmFibGUgZnVydGhlciB0cmFuc2Zvcm0tb3JpZ2luIHByb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICBoYXNUcmFuc2Zvcm1PcmlnaW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbltrZXldID1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWVBc1R5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdHlsZVtrZXldID0gdmFsdWVBc1R5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFsYXRlc3RWYWx1ZXMudHJhbnNmb3JtKSB7XG4gICAgICAgIGlmIChoYXNUcmFuc2Zvcm0gfHwgdHJhbnNmb3JtVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHN0eWxlLnRyYW5zZm9ybSA9IGJ1aWxkVHJhbnNmb3JtKGxhdGVzdFZhbHVlcywgc3RhdGUudHJhbnNmb3JtLCB0cmFuc2Zvcm1UZW1wbGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc3R5bGUudHJhbnNmb3JtKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlIGhhdmUgcHJldmlvdXNseSBjcmVhdGVkIGEgdHJhbnNmb3JtIGJ1dCBjdXJyZW50bHkgZG9uJ3QgaGF2ZSBhbnksXG4gICAgICAgICAgICAgKiByZXNldCB0cmFuc2Zvcm0gc3R5bGUgdG8gbm9uZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgc3R5bGUudHJhbnNmb3JtID0gXCJub25lXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQnVpbGQgYSB0cmFuc2Zvcm1PcmlnaW4gc3R5bGUuIFVzZXMgdGhlIHNhbWUgZGVmYXVsdHMgYXMgdGhlIGJyb3dzZXIgZm9yXG4gICAgICogdW5kZWZpbmVkIG9yaWdpbnMuXG4gICAgICovXG4gICAgaWYgKGhhc1RyYW5zZm9ybU9yaWdpbikge1xuICAgICAgICBjb25zdCB7IG9yaWdpblggPSBcIjUwJVwiLCBvcmlnaW5ZID0gXCI1MCVcIiwgb3JpZ2luWiA9IDAsIH0gPSB0cmFuc2Zvcm1PcmlnaW47XG4gICAgICAgIHN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9IGAke29yaWdpblh9ICR7b3JpZ2luWX0gJHtvcmlnaW5afWA7XG4gICAgfVxufVxuXG5leHBvcnQgeyBidWlsZEhUTUxTdHlsZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1aWxkLXN0eWxlcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/build-transform.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 */ buildTransform: () => (/* binding */ buildTransform)\n/* harmony export */ });\n/* harmony import */ var _value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/types/utils/get-as-type.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\");\n/* harmony import */ var _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../value/types/maps/number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/keys-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n\n\n\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(latestValues, transform, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n let transformIsDefault = true;\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder[i];\n const value = latestValues[key];\n if (value === undefined)\n continue;\n let valueIsDefault = true;\n if (typeof value === \"number\") {\n valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\n }\n else {\n const parsed = parseFloat(value);\n valueIsDefault = key.startsWith(\"scale\") ? parsed === 1 : parsed === 0;\n }\n if (!valueIsDefault || transformTemplate) {\n const valueAsType = (0,_value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_1__.getValueAsType)(value, _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_2__.numberValueTypes[key]);\n if (!valueIsDefault) {\n transformIsDefault = false;\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${valueAsType}) `;\n }\n if (transformTemplate) {\n transform[key] = valueAsType;\n }\n }\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\n\n//# sourceMappingURL=build-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL2J1aWxkLXRyYW5zZm9ybS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0RTtBQUNKO0FBQ0o7O0FBRXBFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQix5RUFBa0I7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQkFBbUI7QUFDdkMsb0JBQW9CLHlFQUFrQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msa0ZBQWMsUUFBUSwwRUFBZ0I7QUFDdEU7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLGNBQWMsR0FBRyxZQUFZO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTBCO0FBQzFCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvaHRtbC91dGlscy9idWlsZC10cmFuc2Zvcm0ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFZhbHVlQXNUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdmFsdWUvdHlwZXMvdXRpbHMvZ2V0LWFzLXR5cGUubWpzJztcbmltcG9ydCB7IG51bWJlclZhbHVlVHlwZXMgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy9tYXBzL251bWJlci5tanMnO1xuaW1wb3J0IHsgdHJhbnNmb3JtUHJvcE9yZGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMva2V5cy10cmFuc2Zvcm0ubWpzJztcblxuY29uc3QgdHJhbnNsYXRlQWxpYXMgPSB7XG4gICAgeDogXCJ0cmFuc2xhdGVYXCIsXG4gICAgeTogXCJ0cmFuc2xhdGVZXCIsXG4gICAgejogXCJ0cmFuc2xhdGVaXCIsXG4gICAgdHJhbnNmb3JtUGVyc3BlY3RpdmU6IFwicGVyc3BlY3RpdmVcIixcbn07XG5jb25zdCBudW1UcmFuc2Zvcm1zID0gdHJhbnNmb3JtUHJvcE9yZGVyLmxlbmd0aDtcbi8qKlxuICogQnVpbGQgYSBDU1MgdHJhbnNmb3JtIHN0eWxlIGZyb20gaW5kaXZpZHVhbCB4L3kvc2NhbGUgZXRjIHByb3BlcnRpZXMuXG4gKlxuICogVGhpcyBvdXRwdXRzIHdpdGggYSBkZWZhdWx0IG9yZGVyIG9mIHRyYW5zZm9ybXMvc2NhbGVzL3JvdGF0aW9ucywgdGhpcyBjYW4gYmUgY3VzdG9taXNlZCBieVxuICogcHJvdmlkaW5nIGEgdHJhbnNmb3JtVGVtcGxhdGUgZnVuY3Rpb24uXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkVHJhbnNmb3JtKGxhdGVzdFZhbHVlcywgdHJhbnNmb3JtLCB0cmFuc2Zvcm1UZW1wbGF0ZSkge1xuICAgIC8vIFRoZSB0cmFuc2Zvcm0gc3RyaW5nIHdlJ3JlIGdvaW5nIHRvIGJ1aWxkIGludG8uXG4gICAgbGV0IHRyYW5zZm9ybVN0cmluZyA9IFwiXCI7XG4gICAgbGV0IHRyYW5zZm9ybUlzRGVmYXVsdCA9IHRydWU7XG4gICAgLyoqXG4gICAgICogTG9vcCBvdmVyIGFsbCBwb3NzaWJsZSB0cmFuc2Zvcm1zIGluIG9yZGVyLCBhZGRpbmcgdGhlIG9uZXMgdGhhdFxuICAgICAqIGFyZSBwcmVzZW50IHRvIHRoZSB0cmFuc2Zvcm0gc3RyaW5nLlxuICAgICAqL1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtVHJhbnNmb3JtczsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IHRyYW5zZm9ybVByb3BPcmRlcltpXTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBsYXRlc3RWYWx1ZXNba2V5XTtcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgbGV0IHZhbHVlSXNEZWZhdWx0ID0gdHJ1ZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgdmFsdWVJc0RlZmF1bHQgPSB2YWx1ZSA9PT0gKGtleS5zdGFydHNXaXRoKFwic2NhbGVcIikgPyAxIDogMCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgICAgICAgIHZhbHVlSXNEZWZhdWx0ID0ga2V5LnN0YXJ0c1dpdGgoXCJzY2FsZVwiKSA/IHBhcnNlZCA9PT0gMSA6IHBhcnNlZCA9PT0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbHVlSXNEZWZhdWx0IHx8IHRyYW5zZm9ybVRlbXBsYXRlKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFzVHlwZSA9IGdldFZhbHVlQXNUeXBlKHZhbHVlLCBudW1iZXJWYWx1ZVR5cGVzW2tleV0pO1xuICAgICAgICAgICAgaWYgKCF2YWx1ZUlzRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybUlzRGVmYXVsdCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybU5hbWUgPSB0cmFuc2xhdGVBbGlhc1trZXldIHx8IGtleTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1TdHJpbmcgKz0gYCR7dHJhbnNmb3JtTmFtZX0oJHt2YWx1ZUFzVHlwZX0pIGA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodHJhbnNmb3JtVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1ba2V5XSA9IHZhbHVlQXNUeXBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHRyYW5zZm9ybVN0cmluZyA9IHRyYW5zZm9ybVN0cmluZy50cmltKCk7XG4gICAgLy8gSWYgd2UgaGF2ZSBhIGN1c3RvbSBgdHJhbnNmb3JtYCB0ZW1wbGF0ZSwgcGFzcyBvdXIgdHJhbnNmb3JtIHZhbHVlcyBhbmRcbiAgICAvLyBnZW5lcmF0ZWQgdHJhbnNmb3JtU3RyaW5nIHRvIHRoYXQgYmVmb3JlIHJldHVybmluZ1xuICAgIGlmICh0cmFuc2Zvcm1UZW1wbGF0ZSkge1xuICAgICAgICB0cmFuc2Zvcm1TdHJpbmcgPSB0cmFuc2Zvcm1UZW1wbGF0ZSh0cmFuc2Zvcm0sIHRyYW5zZm9ybUlzRGVmYXVsdCA/IFwiXCIgOiB0cmFuc2Zvcm1TdHJpbmcpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0cmFuc2Zvcm1Jc0RlZmF1bHQpIHtcbiAgICAgICAgdHJhbnNmb3JtU3RyaW5nID0gXCJub25lXCI7XG4gICAgfVxuICAgIHJldHVybiB0cmFuc2Zvcm1TdHJpbmc7XG59XG5cbmV4cG9ydCB7IGJ1aWxkVHJhbnNmb3JtIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1idWlsZC10cmFuc2Zvcm0ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/render.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 */ renderHTML: () => (/* binding */ renderHTML)\n/* harmony export */ });\nfunction renderHTML(element, { style, vars }, styleProp, projection) {\n const elementStyle = element.style;\n let key;\n for (key in style) {\n // CSSStyleDeclaration has [index: number]: string; in the types, so we use that as key type.\n elementStyle[key] = style[key];\n }\n // Write projection styles directly to element style\n projection?.applyProjectionStyles(elementStyle, styleProp);\n for (key in vars) {\n // Loop over any CSS variables and assign those.\n // They can only be assigned using `setProperty`.\n elementStyle.setProperty(key, vars[key]);\n }\n}\n\n\n//# sourceMappingURL=render.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL3JlbmRlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLCtCQUErQixhQUFhO0FBQzVDO0FBQ0E7QUFDQTtBQUNBLDREQUE0RDtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFc0I7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL3JlbmRlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gcmVuZGVySFRNTChlbGVtZW50LCB7IHN0eWxlLCB2YXJzIH0sIHN0eWxlUHJvcCwgcHJvamVjdGlvbikge1xuICAgIGNvbnN0IGVsZW1lbnRTdHlsZSA9IGVsZW1lbnQuc3R5bGU7XG4gICAgbGV0IGtleTtcbiAgICBmb3IgKGtleSBpbiBzdHlsZSkge1xuICAgICAgICAvLyBDU1NTdHlsZURlY2xhcmF0aW9uIGhhcyBbaW5kZXg6IG51bWJlcl06IHN0cmluZzsgaW4gdGhlIHR5cGVzLCBzbyB3ZSB1c2UgdGhhdCBhcyBrZXkgdHlwZS5cbiAgICAgICAgZWxlbWVudFN0eWxlW2tleV0gPSBzdHlsZVtrZXldO1xuICAgIH1cbiAgICAvLyBXcml0ZSBwcm9qZWN0aW9uIHN0eWxlcyBkaXJlY3RseSB0byBlbGVtZW50IHN0eWxlXG4gICAgcHJvamVjdGlvbj8uYXBwbHlQcm9qZWN0aW9uU3R5bGVzKGVsZW1lbnRTdHlsZSwgc3R5bGVQcm9wKTtcbiAgICBmb3IgKGtleSBpbiB2YXJzKSB7XG4gICAgICAgIC8vIExvb3Agb3ZlciBhbnkgQ1NTIHZhcmlhYmxlcyBhbmQgYXNzaWduIHRob3NlLlxuICAgICAgICAvLyBUaGV5IGNhbiBvbmx5IGJlIGFzc2lnbmVkIHVzaW5nIGBzZXRQcm9wZXJ0eWAuXG4gICAgICAgIGVsZW1lbnRTdHlsZS5zZXRQcm9wZXJ0eShrZXksIHZhcnNba2V5XSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyByZW5kZXJIVE1MIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZW5kZXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.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 */ scrapeMotionValuesFromProps: () => (/* binding */ scrapeMotionValuesFromProps)\n/* harmony export */ });\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../value/utils/is-motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/is-forced-motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs\");\n\n\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const style = props.style;\n const prevStyle = prevProps?.style;\n const newValues = {};\n if (!style)\n return newValues;\n for (const key in style) {\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(style[key]) ||\n (prevStyle && (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(prevStyle[key])) ||\n (0,_utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__.isForcedMotionValue)(key, props) ||\n visualElement?.getValue(key)?.liveStyle !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\n\n//# sourceMappingURL=scrape-motion-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUU7QUFDSTs7QUFFN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLCtFQUFhO0FBQ3pCLDBCQUEwQiwrRUFBYTtBQUN2QyxZQUFZLHNGQUFtQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXVDO0FBQ3ZDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvaHRtbC91dGlscy9zY3JhcGUtbW90aW9uLXZhbHVlcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3V0aWxzL2lzLW1vdGlvbi12YWx1ZS5tanMnO1xuaW1wb3J0IHsgaXNGb3JjZWRNb3Rpb25WYWx1ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2lzLWZvcmNlZC1tb3Rpb24tdmFsdWUubWpzJztcblxuZnVuY3Rpb24gc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLCBwcmV2UHJvcHMsIHZpc3VhbEVsZW1lbnQpIHtcbiAgICBjb25zdCBzdHlsZSA9IHByb3BzLnN0eWxlO1xuICAgIGNvbnN0IHByZXZTdHlsZSA9IHByZXZQcm9wcz8uc3R5bGU7XG4gICAgY29uc3QgbmV3VmFsdWVzID0ge307XG4gICAgaWYgKCFzdHlsZSlcbiAgICAgICAgcmV0dXJuIG5ld1ZhbHVlcztcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzdHlsZSkge1xuICAgICAgICBpZiAoaXNNb3Rpb25WYWx1ZShzdHlsZVtrZXldKSB8fFxuICAgICAgICAgICAgKHByZXZTdHlsZSAmJiBpc01vdGlvblZhbHVlKHByZXZTdHlsZVtrZXldKSkgfHxcbiAgICAgICAgICAgIGlzRm9yY2VkTW90aW9uVmFsdWUoa2V5LCBwcm9wcykgfHxcbiAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQ/LmdldFZhbHVlKGtleSk/LmxpdmVTdHlsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBuZXdWYWx1ZXNba2V5XSA9IHN0eWxlW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1ZhbHVlcztcbn1cblxuZXhwb3J0IHsgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY3JhcGUtbW90aW9uLXZhbHVlcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/store.mjs": +/*!**********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/store.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 */ visualElementStore: () => (/* binding */ visualElementStore)\n/* harmony export */ });\nconst visualElementStore = new WeakMap();\n\n\n//# sourceMappingURL=store.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdG9yZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUU4QjtBQUM5QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N0b3JlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB2aXN1YWxFbGVtZW50U3RvcmUgPSBuZXcgV2Vha01hcCgpO1xuXG5leHBvcnQgeyB2aXN1YWxFbGVtZW50U3RvcmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0b3JlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/store.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.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 */ SVGVisualElement: () => (/* binding */ SVGVisualElement)\n/* harmony export */ });\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/keys-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _value_types_maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../value/types/maps/defaults.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\");\n/* harmony import */ var _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../projection/geometry/models.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/DOMVisualElement.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs\");\n/* harmony import */ var _dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom/utils/camel-to-dash.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\");\n/* harmony import */ var _utils_build_attrs_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/build-attrs.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs\");\n/* harmony import */ var _utils_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/camel-case-attrs.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs\");\n/* harmony import */ var _utils_is_svg_tag_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/is-svg-tag.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs\");\n/* harmony import */ var _utils_render_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/render.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/render.mjs\");\n/* harmony import */ var _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/scrape-motion-values.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs\");\n\n\n\n\n\n\n\n\n\n\n\nclass SVGVisualElement extends _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n this.measureInstanceViewportBox = _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_1__.createBox;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformProps.has(key)) {\n const defaultType = (0,_value_types_maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_3__.getDefaultValueType)(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !_utils_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_4__.camelCaseAttributes.has(key) ? (0,_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_5__.camelToDash)(key) : key;\n return instance.getAttribute(key);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return (0,_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_6__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\n }\n build(renderState, latestValues, props) {\n (0,_utils_build_attrs_mjs__WEBPACK_IMPORTED_MODULE_7__.buildSVGAttrs)(renderState, latestValues, this.isSVGTag, props.transformTemplate, props.style);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n (0,_utils_render_mjs__WEBPACK_IMPORTED_MODULE_8__.renderSVG)(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = (0,_utils_is_svg_tag_mjs__WEBPACK_IMPORTED_MODULE_9__.isSVGTag)(instance.tagName);\n super.mount(instance);\n }\n}\n\n\n//# sourceMappingURL=SVGVisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvU1ZHVmlzdWFsRWxlbWVudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBNkQ7QUFDYTtBQUNUO0FBQ0Y7QUFDRjtBQUNMO0FBQ1c7QUFDakI7QUFDSDtBQUNnQzs7QUFFL0UsK0JBQStCLHVFQUFnQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxzRUFBUztBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxRUFBYztBQUMxQixnQ0FBZ0MsbUZBQW1CO0FBQ25EO0FBQ0E7QUFDQSxlQUFlLDRFQUFtQixZQUFZLHlFQUFXO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLGVBQWUsNEZBQTJCO0FBQzFDO0FBQ0E7QUFDQSxRQUFRLHFFQUFhO0FBQ3JCO0FBQ0E7QUFDQSxRQUFRLDREQUFTO0FBQ2pCO0FBQ0E7QUFDQSx3QkFBd0IsK0RBQVE7QUFDaEM7QUFDQTtBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy9TVkdWaXN1YWxFbGVtZW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wcyB9IGZyb20gJy4uL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyBnZXREZWZhdWx0VmFsdWVUeXBlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvbWFwcy9kZWZhdWx0cy5tanMnO1xuaW1wb3J0IHsgY3JlYXRlQm94IH0gZnJvbSAnLi4vLi4vcHJvamVjdGlvbi9nZW9tZXRyeS9tb2RlbHMubWpzJztcbmltcG9ydCB7IERPTVZpc3VhbEVsZW1lbnQgfSBmcm9tICcuLi9kb20vRE9NVmlzdWFsRWxlbWVudC5tanMnO1xuaW1wb3J0IHsgY2FtZWxUb0Rhc2ggfSBmcm9tICcuLi9kb20vdXRpbHMvY2FtZWwtdG8tZGFzaC5tanMnO1xuaW1wb3J0IHsgYnVpbGRTVkdBdHRycyB9IGZyb20gJy4vdXRpbHMvYnVpbGQtYXR0cnMubWpzJztcbmltcG9ydCB7IGNhbWVsQ2FzZUF0dHJpYnV0ZXMgfSBmcm9tICcuL3V0aWxzL2NhbWVsLWNhc2UtYXR0cnMubWpzJztcbmltcG9ydCB7IGlzU1ZHVGFnIH0gZnJvbSAnLi91dGlscy9pcy1zdmctdGFnLm1qcyc7XG5pbXBvcnQgeyByZW5kZXJTVkcgfSBmcm9tICcuL3V0aWxzL3JlbmRlci5tanMnO1xuaW1wb3J0IHsgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzIH0gZnJvbSAnLi91dGlscy9zY3JhcGUtbW90aW9uLXZhbHVlcy5tanMnO1xuXG5jbGFzcyBTVkdWaXN1YWxFbGVtZW50IGV4dGVuZHMgRE9NVmlzdWFsRWxlbWVudCB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMudHlwZSA9IFwic3ZnXCI7XG4gICAgICAgIHRoaXMuaXNTVkdUYWcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tZWFzdXJlSW5zdGFuY2VWaWV3cG9ydEJveCA9IGNyZWF0ZUJveDtcbiAgICB9XG4gICAgZ2V0QmFzZVRhcmdldEZyb21Qcm9wcyhwcm9wcywga2V5KSB7XG4gICAgICAgIHJldHVybiBwcm9wc1trZXldO1xuICAgIH1cbiAgICByZWFkVmFsdWVGcm9tSW5zdGFuY2UoaW5zdGFuY2UsIGtleSkge1xuICAgICAgICBpZiAodHJhbnNmb3JtUHJvcHMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRUeXBlID0gZ2V0RGVmYXVsdFZhbHVlVHlwZShrZXkpO1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRUeXBlID8gZGVmYXVsdFR5cGUuZGVmYXVsdCB8fCAwIDogMDtcbiAgICAgICAgfVxuICAgICAgICBrZXkgPSAhY2FtZWxDYXNlQXR0cmlidXRlcy5oYXMoa2V5KSA/IGNhbWVsVG9EYXNoKGtleSkgOiBrZXk7XG4gICAgICAgIHJldHVybiBpbnN0YW5jZS5nZXRBdHRyaWJ1dGUoa2V5KTtcbiAgICB9XG4gICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLCBwcmV2UHJvcHMsIHZpc3VhbEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywgcHJldlByb3BzLCB2aXN1YWxFbGVtZW50KTtcbiAgICB9XG4gICAgYnVpbGQocmVuZGVyU3RhdGUsIGxhdGVzdFZhbHVlcywgcHJvcHMpIHtcbiAgICAgICAgYnVpbGRTVkdBdHRycyhyZW5kZXJTdGF0ZSwgbGF0ZXN0VmFsdWVzLCB0aGlzLmlzU1ZHVGFnLCBwcm9wcy50cmFuc2Zvcm1UZW1wbGF0ZSwgcHJvcHMuc3R5bGUpO1xuICAgIH1cbiAgICByZW5kZXJJbnN0YW5jZShpbnN0YW5jZSwgcmVuZGVyU3RhdGUsIHN0eWxlUHJvcCwgcHJvamVjdGlvbikge1xuICAgICAgICByZW5kZXJTVkcoaW5zdGFuY2UsIHJlbmRlclN0YXRlLCBzdHlsZVByb3AsIHByb2plY3Rpb24pO1xuICAgIH1cbiAgICBtb3VudChpbnN0YW5jZSkge1xuICAgICAgICB0aGlzLmlzU1ZHVGFnID0gaXNTVkdUYWcoaW5zdGFuY2UudGFnTmFtZSk7XG4gICAgICAgIHN1cGVyLm1vdW50KGluc3RhbmNlKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IFNWR1Zpc3VhbEVsZW1lbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNWR1Zpc3VhbEVsZW1lbnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.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 */ buildSVGAttrs: () => (/* binding */ buildSVGAttrs)\n/* harmony export */ });\n/* harmony import */ var _html_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/build-styles.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var _path_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/path.mjs\");\n\n\n\n/**\n * CSS Motion Path properties that should remain as CSS styles on SVG elements.\n */\nconst cssMotionPathProperties = [\n \"offsetDistance\",\n \"offsetPath\",\n \"offsetRotate\",\n \"offsetAnchor\",\n];\n/**\n * Build SVG visual attributes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, isSVGTag, transformTemplate, styleProp) {\n (0,_html_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_0__.buildHTMLStyles)(state, latest, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style } = state;\n /**\n * However, we apply transforms as CSS transforms.\n * So if we detect a transform, transformOrigin we take it from attrs and copy it into style.\n */\n if (attrs.transform) {\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n if (style.transform || attrs.transformOrigin) {\n style.transformOrigin = attrs.transformOrigin ?? \"50% 50%\";\n delete attrs.transformOrigin;\n }\n if (style.transform) {\n /**\n * SVG's element transform-origin uses its own median as a reference.\n * Therefore, transformBox becomes a fill-box\n */\n style.transformBox = styleProp?.transformBox ?? \"fill-box\";\n delete attrs.transformBox;\n }\n for (const key of cssMotionPathProperties) {\n if (attrs[key] !== undefined) {\n style[key] = attrs[key];\n delete attrs[key];\n }\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n (0,_path_mjs__WEBPACK_IMPORTED_MODULE_1__.buildSVGPath)(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\n\n//# sourceMappingURL=build-attrs.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvYnVpbGQtYXR0cnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvRTtBQUMxQjs7QUFFMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDO0FBQ2hDO0FBQ0EsV0FBVztBQUNYLElBQUksNkVBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxlQUFlO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHVEQUFZO0FBQ3BCO0FBQ0E7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvc3ZnL3V0aWxzL2J1aWxkLWF0dHJzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBidWlsZEhUTUxTdHlsZXMgfSBmcm9tICcuLi8uLi9odG1sL3V0aWxzL2J1aWxkLXN0eWxlcy5tanMnO1xuaW1wb3J0IHsgYnVpbGRTVkdQYXRoIH0gZnJvbSAnLi9wYXRoLm1qcyc7XG5cbi8qKlxuICogQ1NTIE1vdGlvbiBQYXRoIHByb3BlcnRpZXMgdGhhdCBzaG91bGQgcmVtYWluIGFzIENTUyBzdHlsZXMgb24gU1ZHIGVsZW1lbnRzLlxuICovXG5jb25zdCBjc3NNb3Rpb25QYXRoUHJvcGVydGllcyA9IFtcbiAgICBcIm9mZnNldERpc3RhbmNlXCIsXG4gICAgXCJvZmZzZXRQYXRoXCIsXG4gICAgXCJvZmZzZXRSb3RhdGVcIixcbiAgICBcIm9mZnNldEFuY2hvclwiLFxuXTtcbi8qKlxuICogQnVpbGQgU1ZHIHZpc3VhbCBhdHRyaWJ1dGVzLCBsaWtlIGN4IGFuZCBzdHlsZS50cmFuc2Zvcm1cbiAqL1xuZnVuY3Rpb24gYnVpbGRTVkdBdHRycyhzdGF0ZSwgeyBhdHRyWCwgYXR0clksIGF0dHJTY2FsZSwgcGF0aExlbmd0aCwgcGF0aFNwYWNpbmcgPSAxLCBwYXRoT2Zmc2V0ID0gMCwgXG4vLyBUaGlzIGlzIG9iamVjdCBjcmVhdGlvbiwgd2hpY2ggd2UgdHJ5IHRvIGF2b2lkIHBlci1mcmFtZS5cbi4uLmxhdGVzdCB9LCBpc1NWR1RhZywgdHJhbnNmb3JtVGVtcGxhdGUsIHN0eWxlUHJvcCkge1xuICAgIGJ1aWxkSFRNTFN0eWxlcyhzdGF0ZSwgbGF0ZXN0LCB0cmFuc2Zvcm1UZW1wbGF0ZSk7XG4gICAgLyoqXG4gICAgICogRm9yIHN2ZyB0YWdzIHdlIGp1c3Qgd2FudCB0byBtYWtlIHN1cmUgdmlld0JveCBpcyBhbmltYXRhYmxlIGFuZCB0cmVhdCBhbGwgdGhlIHN0eWxlc1xuICAgICAqIGFzIG5vcm1hbCBIVE1MIHRhZ3MuXG4gICAgICovXG4gICAgaWYgKGlzU1ZHVGFnKSB7XG4gICAgICAgIGlmIChzdGF0ZS5zdHlsZS52aWV3Qm94KSB7XG4gICAgICAgICAgICBzdGF0ZS5hdHRycy52aWV3Qm94ID0gc3RhdGUuc3R5bGUudmlld0JveDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHN0YXRlLmF0dHJzID0gc3RhdGUuc3R5bGU7XG4gICAgc3RhdGUuc3R5bGUgPSB7fTtcbiAgICBjb25zdCB7IGF0dHJzLCBzdHlsZSB9ID0gc3RhdGU7XG4gICAgLyoqXG4gICAgICogSG93ZXZlciwgd2UgYXBwbHkgdHJhbnNmb3JtcyBhcyBDU1MgdHJhbnNmb3Jtcy5cbiAgICAgKiBTbyBpZiB3ZSBkZXRlY3QgYSB0cmFuc2Zvcm0sIHRyYW5zZm9ybU9yaWdpbiB3ZSB0YWtlIGl0IGZyb20gYXR0cnMgYW5kIGNvcHkgaXQgaW50byBzdHlsZS5cbiAgICAgKi9cbiAgICBpZiAoYXR0cnMudHJhbnNmb3JtKSB7XG4gICAgICAgIHN0eWxlLnRyYW5zZm9ybSA9IGF0dHJzLnRyYW5zZm9ybTtcbiAgICAgICAgZGVsZXRlIGF0dHJzLnRyYW5zZm9ybTtcbiAgICB9XG4gICAgaWYgKHN0eWxlLnRyYW5zZm9ybSB8fCBhdHRycy50cmFuc2Zvcm1PcmlnaW4pIHtcbiAgICAgICAgc3R5bGUudHJhbnNmb3JtT3JpZ2luID0gYXR0cnMudHJhbnNmb3JtT3JpZ2luID8/IFwiNTAlIDUwJVwiO1xuICAgICAgICBkZWxldGUgYXR0cnMudHJhbnNmb3JtT3JpZ2luO1xuICAgIH1cbiAgICBpZiAoc3R5bGUudHJhbnNmb3JtKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTVkcncyBlbGVtZW50IHRyYW5zZm9ybS1vcmlnaW4gdXNlcyBpdHMgb3duIG1lZGlhbiBhcyBhIHJlZmVyZW5jZS5cbiAgICAgICAgICogVGhlcmVmb3JlLCB0cmFuc2Zvcm1Cb3ggYmVjb21lcyBhIGZpbGwtYm94XG4gICAgICAgICAqL1xuICAgICAgICBzdHlsZS50cmFuc2Zvcm1Cb3ggPSBzdHlsZVByb3A/LnRyYW5zZm9ybUJveCA/PyBcImZpbGwtYm94XCI7XG4gICAgICAgIGRlbGV0ZSBhdHRycy50cmFuc2Zvcm1Cb3g7XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIGNzc01vdGlvblBhdGhQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmIChhdHRyc1trZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHN0eWxlW2tleV0gPSBhdHRyc1trZXldO1xuICAgICAgICAgICAgZGVsZXRlIGF0dHJzW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gUmVuZGVyIGF0dHJYL2F0dHJZL2F0dHJTY2FsZSBhcyBhdHRyaWJ1dGVzXG4gICAgaWYgKGF0dHJYICE9PSB1bmRlZmluZWQpXG4gICAgICAgIGF0dHJzLnggPSBhdHRyWDtcbiAgICBpZiAoYXR0clkgIT09IHVuZGVmaW5lZClcbiAgICAgICAgYXR0cnMueSA9IGF0dHJZO1xuICAgIGlmIChhdHRyU2NhbGUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgYXR0cnMuc2NhbGUgPSBhdHRyU2NhbGU7XG4gICAgLy8gQnVpbGQgU1ZHIHBhdGggaWYgb25lIGhhcyBiZWVuIGRlZmluZWRcbiAgICBpZiAocGF0aExlbmd0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGJ1aWxkU1ZHUGF0aChhdHRycywgcGF0aExlbmd0aCwgcGF0aFNwYWNpbmcsIHBhdGhPZmZzZXQsIGZhbHNlKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IGJ1aWxkU1ZHQXR0cnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1aWxkLWF0dHJzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.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 */ camelCaseAttributes: () => (/* binding */ camelCaseAttributes)\n/* harmony export */ });\n/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\n\n//# sourceMappingURL=camel-case-attrs.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvY2FtZWwtY2FzZS1hdHRycy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUrQjtBQUMvQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9jYW1lbC1jYXNlLWF0dHJzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgc2V0IG9mIGF0dHJpYnV0ZSBuYW1lcyB0aGF0IGFyZSBhbHdheXMgcmVhZC93cml0dGVuIGFzIGNhbWVsIGNhc2UuXG4gKi9cbmNvbnN0IGNhbWVsQ2FzZUF0dHJpYnV0ZXMgPSBuZXcgU2V0KFtcbiAgICBcImJhc2VGcmVxdWVuY3lcIixcbiAgICBcImRpZmZ1c2VDb25zdGFudFwiLFxuICAgIFwia2VybmVsTWF0cml4XCIsXG4gICAgXCJrZXJuZWxVbml0TGVuZ3RoXCIsXG4gICAgXCJrZXlTcGxpbmVzXCIsXG4gICAgXCJrZXlUaW1lc1wiLFxuICAgIFwibGltaXRpbmdDb25lQW5nbGVcIixcbiAgICBcIm1hcmtlckhlaWdodFwiLFxuICAgIFwibWFya2VyV2lkdGhcIixcbiAgICBcIm51bU9jdGF2ZXNcIixcbiAgICBcInRhcmdldFhcIixcbiAgICBcInRhcmdldFlcIixcbiAgICBcInN1cmZhY2VTY2FsZVwiLFxuICAgIFwic3BlY3VsYXJDb25zdGFudFwiLFxuICAgIFwic3BlY3VsYXJFeHBvbmVudFwiLFxuICAgIFwic3RkRGV2aWF0aW9uXCIsXG4gICAgXCJ0YWJsZVZhbHVlc1wiLFxuICAgIFwidmlld0JveFwiLFxuICAgIFwiZ3JhZGllbnRUcmFuc2Zvcm1cIixcbiAgICBcInBhdGhMZW5ndGhcIixcbiAgICBcInN0YXJ0T2Zmc2V0XCIsXG4gICAgXCJ0ZXh0TGVuZ3RoXCIsXG4gICAgXCJsZW5ndGhBZGp1c3RcIixcbl0pO1xuXG5leHBvcnQgeyBjYW1lbENhc2VBdHRyaWJ1dGVzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jYW1lbC1jYXNlLWF0dHJzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.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 */ isSVGTag: () => (/* binding */ isSVGTag)\n/* harmony export */ });\nconst isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\n\n//# sourceMappingURL=is-svg-tag.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvaXMtc3ZnLXRhZy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUVvQjtBQUNwQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9pcy1zdmctdGFnLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc1NWR1RhZyA9ICh0YWcpID0+IHR5cGVvZiB0YWcgPT09IFwic3RyaW5nXCIgJiYgdGFnLnRvTG93ZXJDYXNlKCkgPT09IFwic3ZnXCI7XG5cbmV4cG9ydCB7IGlzU1ZHVGFnIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1zdmctdGFnLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/path.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/path.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 */ buildSVGPath: () => (/* binding */ buildSVGPath)\n/* harmony export */ });\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n *\n * Note: We use unitless values for stroke-dasharray and stroke-dashoffset\n * because Safari incorrectly scales px values when the page is zoomed.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset (unitless to avoid Safari zoom bug)\n attrs[keys.offset] = `${-offset}`;\n // Build the dash array (unitless to avoid Safari zoom bug)\n attrs[keys.array] = `${length} ${spacing}`;\n}\n\n\n//# sourceMappingURL=path.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvcGF0aC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLFFBQVE7QUFDcEM7QUFDQSwyQkFBMkIsUUFBUSxFQUFFLFFBQVE7QUFDN0M7O0FBRXdCO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvc3ZnL3V0aWxzL3BhdGgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGRhc2hLZXlzID0ge1xuICAgIG9mZnNldDogXCJzdHJva2UtZGFzaG9mZnNldFwiLFxuICAgIGFycmF5OiBcInN0cm9rZS1kYXNoYXJyYXlcIixcbn07XG5jb25zdCBjYW1lbEtleXMgPSB7XG4gICAgb2Zmc2V0OiBcInN0cm9rZURhc2hvZmZzZXRcIixcbiAgICBhcnJheTogXCJzdHJva2VEYXNoYXJyYXlcIixcbn07XG4vKipcbiAqIEJ1aWxkIFNWRyBwYXRoIHByb3BlcnRpZXMuIFVzZXMgdGhlIHBhdGgncyBtZWFzdXJlZCBsZW5ndGggdG8gY29udmVydFxuICogb3VyIGN1c3RvbSBwYXRoTGVuZ3RoLCBwYXRoU3BhY2luZyBhbmQgcGF0aE9mZnNldCBpbnRvIHN0cm9rZS1kYXNob2Zmc2V0XG4gKiBhbmQgc3Ryb2tlLWRhc2hhcnJheSBhdHRyaWJ1dGVzLlxuICpcbiAqIFRoaXMgZnVuY3Rpb24gaXMgbXV0YXRpdmUgdG8gcmVkdWNlIHBlci1mcmFtZSBHQy5cbiAqXG4gKiBOb3RlOiBXZSB1c2UgdW5pdGxlc3MgdmFsdWVzIGZvciBzdHJva2UtZGFzaGFycmF5IGFuZCBzdHJva2UtZGFzaG9mZnNldFxuICogYmVjYXVzZSBTYWZhcmkgaW5jb3JyZWN0bHkgc2NhbGVzIHB4IHZhbHVlcyB3aGVuIHRoZSBwYWdlIGlzIHpvb21lZC5cbiAqL1xuZnVuY3Rpb24gYnVpbGRTVkdQYXRoKGF0dHJzLCBsZW5ndGgsIHNwYWNpbmcgPSAxLCBvZmZzZXQgPSAwLCB1c2VEYXNoQ2FzZSA9IHRydWUpIHtcbiAgICAvLyBOb3JtYWxpc2UgcGF0aCBsZW5ndGggYnkgc2V0dGluZyBTVkcgYXR0cmlidXRlIHBhdGhMZW5ndGggdG8gMVxuICAgIGF0dHJzLnBhdGhMZW5ndGggPSAxO1xuICAgIC8vIFdlIHVzZSBkYXNoIGNhc2Ugd2hlbiBzZXR0aW5nIGF0dHJpYnV0ZXMgZGlyZWN0bHkgdG8gdGhlIERPTSBub2RlIGFuZCBjYW1lbCBjYXNlXG4gICAgLy8gd2hlbiBkZWZpbmluZyBwcm9wcyBvbiBhIFJlYWN0IGNvbXBvbmVudC5cbiAgICBjb25zdCBrZXlzID0gdXNlRGFzaENhc2UgPyBkYXNoS2V5cyA6IGNhbWVsS2V5cztcbiAgICAvLyBCdWlsZCB0aGUgZGFzaCBvZmZzZXQgKHVuaXRsZXNzIHRvIGF2b2lkIFNhZmFyaSB6b29tIGJ1ZylcbiAgICBhdHRyc1trZXlzLm9mZnNldF0gPSBgJHstb2Zmc2V0fWA7XG4gICAgLy8gQnVpbGQgdGhlIGRhc2ggYXJyYXkgKHVuaXRsZXNzIHRvIGF2b2lkIFNhZmFyaSB6b29tIGJ1ZylcbiAgICBhdHRyc1trZXlzLmFycmF5XSA9IGAke2xlbmd0aH0gJHtzcGFjaW5nfWA7XG59XG5cbmV4cG9ydCB7IGJ1aWxkU1ZHUGF0aCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGF0aC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/path.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/render.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/render.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 */ renderSVG: () => (/* binding */ renderSVG)\n/* harmony export */ });\n/* harmony import */ var _dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dom/utils/camel-to-dash.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\");\n/* harmony import */ var _html_utils_render_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/render.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs\");\n/* harmony import */ var _camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./camel-case-attrs.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs\");\n\n\n\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n (0,_html_utils_render_mjs__WEBPACK_IMPORTED_MODULE_0__.renderHTML)(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_1__.camelCaseAttributes.has(key) ? (0,_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_2__.camelToDash)(key) : key, renderState.attrs[key]);\n }\n}\n\n\n//# sourceMappingURL=render.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvcmVuZGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWdFO0FBQ1A7QUFDSTs7QUFFN0Q7QUFDQSxJQUFJLGtFQUFVO0FBQ2Q7QUFDQSw4QkFBOEIsc0VBQW1CLFlBQVkseUVBQVc7QUFDeEU7QUFDQTs7QUFFcUI7QUFDckIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvcmVuZGVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjYW1lbFRvRGFzaCB9IGZyb20gJy4uLy4uL2RvbS91dGlscy9jYW1lbC10by1kYXNoLm1qcyc7XG5pbXBvcnQgeyByZW5kZXJIVE1MIH0gZnJvbSAnLi4vLi4vaHRtbC91dGlscy9yZW5kZXIubWpzJztcbmltcG9ydCB7IGNhbWVsQ2FzZUF0dHJpYnV0ZXMgfSBmcm9tICcuL2NhbWVsLWNhc2UtYXR0cnMubWpzJztcblxuZnVuY3Rpb24gcmVuZGVyU1ZHKGVsZW1lbnQsIHJlbmRlclN0YXRlLCBfc3R5bGVQcm9wLCBwcm9qZWN0aW9uKSB7XG4gICAgcmVuZGVySFRNTChlbGVtZW50LCByZW5kZXJTdGF0ZSwgdW5kZWZpbmVkLCBwcm9qZWN0aW9uKTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiByZW5kZXJTdGF0ZS5hdHRycykge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSghY2FtZWxDYXNlQXR0cmlidXRlcy5oYXMoa2V5KSA/IGNhbWVsVG9EYXNoKGtleSkgOiBrZXksIHJlbmRlclN0YXRlLmF0dHJzW2tleV0pO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgcmVuZGVyU1ZHIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZW5kZXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/render.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.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 */ scrapeMotionValuesFromProps: () => (/* binding */ scrapeMotionValuesFromProps)\n/* harmony export */ });\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/utils/is-motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/keys-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _html_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/scrape-motion-values.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\");\n\n\n\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = (0,_html_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_0__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\n for (const key in props) {\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(props[key]) ||\n (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(prevProps[key])) {\n const targetKey = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\n\n//# sourceMappingURL=scrape-motion-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvc2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBeUU7QUFDTDtBQUNxRDs7QUFFekg7QUFDQSxzQkFBc0IsaUdBQTZCO0FBQ25EO0FBQ0EsWUFBWSwrRUFBYTtBQUN6QixZQUFZLCtFQUFhO0FBQ3pCLDhCQUE4Qix5RUFBa0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXVDO0FBQ3ZDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvc3ZnL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc01vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vdmFsdWUvdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wT3JkZXIgfSBmcm9tICcuLi8uLi91dGlscy9rZXlzLXRyYW5zZm9ybS5tanMnO1xuaW1wb3J0IHsgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzIGFzIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyQxIH0gZnJvbSAnLi4vLi4vaHRtbC91dGlscy9zY3JhcGUtbW90aW9uLXZhbHVlcy5tanMnO1xuXG5mdW5jdGlvbiBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCkge1xuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyQxKHByb3BzLCBwcmV2UHJvcHMsIHZpc3VhbEVsZW1lbnQpO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHByb3BzKSB7XG4gICAgICAgIGlmIChpc01vdGlvblZhbHVlKHByb3BzW2tleV0pIHx8XG4gICAgICAgICAgICBpc01vdGlvblZhbHVlKHByZXZQcm9wc1trZXldKSkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0S2V5ID0gdHJhbnNmb3JtUHJvcE9yZGVyLmluZGV4T2Yoa2V5KSAhPT0gLTFcbiAgICAgICAgICAgICAgICA/IFwiYXR0clwiICsga2V5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsga2V5LnN1YnN0cmluZygxKVxuICAgICAgICAgICAgICAgIDoga2V5O1xuICAgICAgICAgICAgbmV3VmFsdWVzW3RhcmdldEtleV0gPSBwcm9wc1trZXldO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdWYWx1ZXM7XG59XG5cbmV4cG9ydCB7IHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/animation-state.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/animation-state.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 */ checkVariantsDidChange: () => (/* binding */ checkVariantsDidChange),\n/* harmony export */ createAnimationState: () => (/* binding */ createAnimationState)\n/* harmony export */ });\n/* harmony import */ var _animation_interfaces_visual_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/interfaces/visual-element.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs\");\n/* harmony import */ var _animation_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../animation/utils/calc-child-stagger.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs\");\n/* harmony import */ var _get_variant_context_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./get-variant-context.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs\");\n/* harmony import */ var _is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./is-animation-controls.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n/* harmony import */ var _is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./is-keyframes-target.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs\");\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolve-dynamic-variants.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./shallow-compare.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variant-props.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\");\n\n\n\n\n\n\n\n\n\n\nconst reversePriorityOrder = [..._variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantPriorityOrder].reverse();\nconst numAnimationTypes = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantPriorityOrder.length;\nfunction createAnimateFunction(visualElement) {\n return (animations) => {\n return Promise.all(animations.map(({ animation, options }) => (0,_animation_interfaces_visual_element_mjs__WEBPACK_IMPORTED_MODULE_1__.animateVisualElement)(visualElement, animation, options)));\n };\n}\nfunction createAnimationState(visualElement) {\n let animate = createAnimateFunction(visualElement);\n let state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (type) => (acc, definition) => {\n const resolved = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, definition, type === \"exit\"\n ? visualElement.presenceContext?.custom\n : undefined);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(changedActiveType) {\n const { props } = visualElement;\n const context = (0,_get_variant_context_mjs__WEBPACK_IMPORTED_MODULE_3__.getVariantContext)(visualElement.parent) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined\n ? props[type]\n : context[type];\n const propIsVariant = (0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_4__.isVariantLabel)(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] &&\n prop !== props[type] &&\n propIsVariant;\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n (0,_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_5__.isAnimationControls)(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * If exit is already active and wasn't just activated, skip\n * re-processing to prevent interrupting running exit animations.\n * Re-resolving exit with a changed custom value can start new\n * value animations that stop the originals, leaving the exit\n * animation promise unresolved and the component stuck in the DOM.\n */\n if (type === \"exit\" && typeState.isActive && activeDelta !== true) {\n if (typeState.prevResolvedValues) {\n encounteredKeys = {\n ...encounteredKeys,\n ...typeState.prevResolvedValues,\n };\n }\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n let handledRemovedValues = false;\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n if (removedKeys.has(key)) {\n handledRemovedValues = true;\n removedKeys.delete(key);\n }\n typeState.needsAnimating[key] = true;\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = false;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n let valueHasChanged = false;\n if ((0,_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__.isKeyframesTarget)(next) && (0,_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__.isKeyframesTarget)(prev)) {\n valueHasChanged = !(0,_shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__.shallowCompare)(next, prev);\n }\n else {\n valueHasChanged = next !== prev;\n }\n if (valueHasChanged) {\n if (next !== undefined && next !== null) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to skip this animation\n * unless the inherited variants haven't changed on this render.\n */\n const willAnimateViaParent = isInherited && variantDidChange;\n const needsAnimating = !willAnimateViaParent || handledRemovedValues;\n if (shouldAnimateType && needsAnimating) {\n animations.push(...definitionList.map((animation) => {\n const options = { type };\n /**\n * If we're performing the initial animation, but we're not\n * rendering at the same time as the variant-controlling parent,\n * we want to use the parent's transition to calculate the stagger.\n */\n if (typeof animation === \"string\" &&\n isInitialRender &&\n !willAnimateViaParent &&\n visualElement.manuallyAnimateOnMount &&\n visualElement.parent) {\n const { parent } = visualElement;\n const parentVariant = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(parent, animation);\n if (parent.enteringChildren && parentVariant) {\n const { delayChildren } = parentVariant.transition || {};\n options.delay = (0,_animation_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_8__.calcChildStagger)(parent.enteringChildren, visualElement, delayChildren);\n }\n }\n return {\n animation: animation,\n options,\n };\n }));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n /**\n * If the initial prop contains a transition we can use that, otherwise\n * allow the animation function to use the visual element's default.\n */\n if (typeof props.initial !== \"boolean\") {\n const initialTransition = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, Array.isArray(props.initial)\n ? props.initial[0]\n : props.initial);\n if (initialTransition && initialTransition.transition) {\n fallbackAnimation.transition = initialTransition.transition;\n }\n }\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = true;\n // @ts-expect-error - @mattgperry to figure if we should do something here\n fallbackAnimation[key] = fallbackTarget ?? null;\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n (props.initial === false || props.initial === props.animate) &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive) {\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n visualElement.variantChildren?.forEach((child) => child.animationState?.setActive(type, isActive));\n state[type].isActive = isActive;\n const animations = animateChanges(type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n reset: () => {\n state = createState();\n /**\n * Temporarily disabling resetting this flag as it prevents components\n * with initial={false} from animating after being remounted, for instance\n * as the child of an Activity component.\n */\n // isInitialRender = true\n },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !(0,_shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__.shallowCompare)(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\n\n//# sourceMappingURL=animation-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9hbmltYXRpb24tc3RhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQXFGO0FBQ0w7QUFDbEI7QUFDSTtBQUNKO0FBQ047QUFDUTtBQUNUO0FBQ0k7O0FBRTNELGlDQUFpQyxvRUFBb0I7QUFDckQsMEJBQTBCLG9FQUFvQjtBQUM5QztBQUNBO0FBQ0EsNkNBQTZDLG9CQUFvQixLQUFLLDhGQUFvQjtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLDZFQUFjO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix1Q0FBdUM7QUFDM0Qsb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixRQUFRO0FBQ3hCLHdCQUF3QiwyRUFBaUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHVCQUF1QjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLHFFQUFjO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLCtFQUFtQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdGQUF3RjtBQUN4RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDBCQUEwQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwyRUFBaUIsVUFBVSwyRUFBaUI7QUFDaEUsdUNBQXVDLG9FQUFjO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQztBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsU0FBUztBQUN6Qyw4Q0FBOEMsNkVBQWM7QUFDNUQ7QUFDQSxvQ0FBb0MsZ0JBQWdCO0FBQ3BELDRDQUE0Qyx5RkFBZ0I7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsNkVBQWM7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsOEJBQThCLDhCQUE4QjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLE9BQU87QUFDcEM7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG9FQUFjO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QiwwQkFBMEI7QUFDMUIsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV3RDtBQUN4RCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2FuaW1hdGlvbi1zdGF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZVZpc3VhbEVsZW1lbnQgfSBmcm9tICcuLi8uLi9hbmltYXRpb24vaW50ZXJmYWNlcy92aXN1YWwtZWxlbWVudC5tanMnO1xuaW1wb3J0IHsgY2FsY0NoaWxkU3RhZ2dlciB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi91dGlscy9jYWxjLWNoaWxkLXN0YWdnZXIubWpzJztcbmltcG9ydCB7IGdldFZhcmlhbnRDb250ZXh0IH0gZnJvbSAnLi9nZXQtdmFyaWFudC1jb250ZXh0Lm1qcyc7XG5pbXBvcnQgeyBpc0FuaW1hdGlvbkNvbnRyb2xzIH0gZnJvbSAnLi9pcy1hbmltYXRpb24tY29udHJvbHMubWpzJztcbmltcG9ydCB7IGlzS2V5ZnJhbWVzVGFyZ2V0IH0gZnJvbSAnLi9pcy1rZXlmcmFtZXMtdGFyZ2V0Lm1qcyc7XG5pbXBvcnQgeyBpc1ZhcmlhbnRMYWJlbCB9IGZyb20gJy4vaXMtdmFyaWFudC1sYWJlbC5tanMnO1xuaW1wb3J0IHsgcmVzb2x2ZVZhcmlhbnQgfSBmcm9tICcuL3Jlc29sdmUtZHluYW1pYy12YXJpYW50cy5tanMnO1xuaW1wb3J0IHsgc2hhbGxvd0NvbXBhcmUgfSBmcm9tICcuL3NoYWxsb3ctY29tcGFyZS5tanMnO1xuaW1wb3J0IHsgdmFyaWFudFByaW9yaXR5T3JkZXIgfSBmcm9tICcuL3ZhcmlhbnQtcHJvcHMubWpzJztcblxuY29uc3QgcmV2ZXJzZVByaW9yaXR5T3JkZXIgPSBbLi4udmFyaWFudFByaW9yaXR5T3JkZXJdLnJldmVyc2UoKTtcbmNvbnN0IG51bUFuaW1hdGlvblR5cGVzID0gdmFyaWFudFByaW9yaXR5T3JkZXIubGVuZ3RoO1xuZnVuY3Rpb24gY3JlYXRlQW5pbWF0ZUZ1bmN0aW9uKHZpc3VhbEVsZW1lbnQpIHtcbiAgICByZXR1cm4gKGFuaW1hdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGFuaW1hdGlvbnMubWFwKCh7IGFuaW1hdGlvbiwgb3B0aW9ucyB9KSA9PiBhbmltYXRlVmlzdWFsRWxlbWVudCh2aXN1YWxFbGVtZW50LCBhbmltYXRpb24sIG9wdGlvbnMpKSk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZUFuaW1hdGlvblN0YXRlKHZpc3VhbEVsZW1lbnQpIHtcbiAgICBsZXQgYW5pbWF0ZSA9IGNyZWF0ZUFuaW1hdGVGdW5jdGlvbih2aXN1YWxFbGVtZW50KTtcbiAgICBsZXQgc3RhdGUgPSBjcmVhdGVTdGF0ZSgpO1xuICAgIGxldCBpc0luaXRpYWxSZW5kZXIgPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIHRvIHJlZHVjZSB0aGUgYW5pbWF0aW9uIGRlZmluaXRpb25zIGZvclxuICAgICAqIGVhY2ggYWN0aXZlIGFuaW1hdGlvbiB0eXBlIGludG8gYW4gb2JqZWN0IG9mIHJlc29sdmVkIHZhbHVlcyBmb3IgaXQuXG4gICAgICovXG4gICAgY29uc3QgYnVpbGRSZXNvbHZlZFR5cGVWYWx1ZXMgPSAodHlwZSkgPT4gKGFjYywgZGVmaW5pdGlvbikgPT4ge1xuICAgICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIGRlZmluaXRpb24sIHR5cGUgPT09IFwiZXhpdFwiXG4gICAgICAgICAgICA/IHZpc3VhbEVsZW1lbnQucHJlc2VuY2VDb250ZXh0Py5jdXN0b21cbiAgICAgICAgICAgIDogdW5kZWZpbmVkKTtcbiAgICAgICAgaWYgKHJlc29sdmVkKSB7XG4gICAgICAgICAgICBjb25zdCB7IHRyYW5zaXRpb24sIHRyYW5zaXRpb25FbmQsIC4uLnRhcmdldCB9ID0gcmVzb2x2ZWQ7XG4gICAgICAgICAgICBhY2MgPSB7IC4uLmFjYywgLi4udGFyZ2V0LCAuLi50cmFuc2l0aW9uRW5kIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFRoaXMganVzdCBhbGxvd3MgdXMgdG8gaW5qZWN0IG1vY2tlZCBhbmltYXRpb24gZnVuY3Rpb25zXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgZnVuY3Rpb24gc2V0QW5pbWF0ZUZ1bmN0aW9uKG1ha2VBbmltYXRvcikge1xuICAgICAgICBhbmltYXRlID0gbWFrZUFuaW1hdG9yKHZpc3VhbEVsZW1lbnQpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBXaGVuIHdlIHJlY2VpdmUgbmV3IHByb3BzLCB3ZSBuZWVkIHRvOlxuICAgICAqIDEuIENyZWF0ZSBhIGxpc3Qgb2YgcHJvdGVjdGVkIGtleXMgZm9yIGVhY2ggdHlwZS4gVGhpcyBpcyBhIGRpcmVjdG9yeSBvZlxuICAgICAqICAgIHZhbHVlIGtleXMgdGhhdCBhcmUgY3VycmVudGx5IGJlaW5nIFwiaGFuZGxlZFwiIGJ5IHR5cGVzIG9mIGEgaGlnaGVyIHByaW9yaXR5XG4gICAgICogICAgc28gdGhhdCB3aGVuZXZlciBhbiBhbmltYXRpb24gaXMgcGxheWVkIG9mIGEgZ2l2ZW4gdHlwZSwgdGhlc2UgdmFsdWVzIGFyZVxuICAgICAqICAgIHByb3RlY3RlZCBmcm9tIGJlaW5nIGFuaW1hdGVkLlxuICAgICAqIDIuIERldGVybWluZSBpZiBhbiBhbmltYXRpb24gdHlwZSBuZWVkcyBhbmltYXRpbmcuXG4gICAgICogMy4gRGV0ZXJtaW5lIGlmIGFueSB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSBhIHR5cGUgYW5kIGZpZ3VyZSBvdXRcbiAgICAgKiAgICB3aGF0IHRvIGFuaW1hdGUgdGhvc2UgdG8uXG4gICAgICovXG4gICAgZnVuY3Rpb24gYW5pbWF0ZUNoYW5nZXMoY2hhbmdlZEFjdGl2ZVR5cGUpIHtcbiAgICAgICAgY29uc3QgeyBwcm9wcyB9ID0gdmlzdWFsRWxlbWVudDtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IGdldFZhcmlhbnRDb250ZXh0KHZpc3VhbEVsZW1lbnQucGFyZW50KSB8fCB7fTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEEgbGlzdCBvZiBhbmltYXRpb25zIHRoYXQgd2UnbGwgYnVpbGQgaW50byBhcyB3ZSBpdGVyYXRlIHRocm91Z2ggdGhlIGFuaW1hdGlvblxuICAgICAgICAgKiB0eXBlcy4gVGhpcyB3aWxsIGdldCBleGVjdXRlZCBhdCB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbi5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbnMgPSBbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEtlZXAgdHJhY2sgb2Ygd2hpY2ggdmFsdWVzIGhhdmUgYmVlbiByZW1vdmVkLiBUaGVuLCBhcyB3ZSBoaXQgbG93ZXIgcHJpb3JpdHlcbiAgICAgICAgICogYW5pbWF0aW9uIHR5cGVzLCB3ZSBjYW4gY2hlY2sgaWYgdGhleSBjb250YWluIHJlbW92ZWQgdmFsdWVzIGFuZCBhbmltYXRlIHRvIHRoYXQuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCByZW1vdmVkS2V5cyA9IG5ldyBTZXQoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEEgZGljdGlvbmFyeSBvZiBhbGwgZW5jb3VudGVyZWQga2V5cy4gVGhpcyBpcyBhbiBvYmplY3QgdG8gbGV0IHVzIGJ1aWxkIGludG8gYW5kXG4gICAgICAgICAqIGNvcHkgaXQgd2l0aG91dCBpdGVyYXRpb24uIEVhY2ggdGltZSB3ZSBoaXQgYW4gYW5pbWF0aW9uIHR5cGUgd2Ugc2V0IGl0cyBwcm90ZWN0ZWRcbiAgICAgICAgICoga2V5cyAtIHRoZSBrZXlzIGl0cyBub3QgYWxsb3dlZCB0byBhbmltYXRlIC0gdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoaXMgb2JqZWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IGVuY291bnRlcmVkS2V5cyA9IHt9O1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgYSB2YXJpYW50IGhhcyBiZWVuIHJlbW92ZWQgYXQgYSBnaXZlbiBpbmRleCwgYW5kIHRoaXMgY29tcG9uZW50IGlzIGNvbnRyb2xsaW5nXG4gICAgICAgICAqIHZhcmlhbnQgYW5pbWF0aW9ucywgd2Ugd2FudCB0byBlbnN1cmUgbG93ZXItcHJpb3JpdHkgdmFyaWFudHMgYXJlIGZvcmNlZCB0byBhbmltYXRlLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IHJlbW92ZWRWYXJpYW50SW5kZXggPSBJbmZpbml0eTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEl0ZXJhdGUgdGhyb3VnaCBhbGwgYW5pbWF0aW9uIHR5cGVzIGluIHJldmVyc2UgcHJpb3JpdHkgb3JkZXIuIEZvciBlYWNoLCB3ZSB3YW50IHRvXG4gICAgICAgICAqIGRldGVjdCB3aGljaCB2YWx1ZXMgaXQncyBoYW5kbGluZyBhbmQgd2hldGhlciBvciBub3QgdGhleSd2ZSBjaGFuZ2VkIChhbmQgdGhlcmVmb3JlXG4gICAgICAgICAqIG5lZWQgdG8gYmUgYW5pbWF0ZWQpLiBJZiBhbnkgdmFsdWVzIGhhdmUgYmVlbiByZW1vdmVkLCB3ZSB3YW50IHRvIGRldGVjdCB0aG9zZSBpblxuICAgICAgICAgKiBsb3dlciBwcmlvcml0eSBwcm9wcyBhbmQgZmxhZyBmb3IgYW5pbWF0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1BbmltYXRpb25UeXBlczsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gcmV2ZXJzZVByaW9yaXR5T3JkZXJbaV07XG4gICAgICAgICAgICBjb25zdCB0eXBlU3RhdGUgPSBzdGF0ZVt0eXBlXTtcbiAgICAgICAgICAgIGNvbnN0IHByb3AgPSBwcm9wc1t0eXBlXSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgPyBwcm9wc1t0eXBlXVxuICAgICAgICAgICAgICAgIDogY29udGV4dFt0eXBlXTtcbiAgICAgICAgICAgIGNvbnN0IHByb3BJc1ZhcmlhbnQgPSBpc1ZhcmlhbnRMYWJlbChwcm9wKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyB0eXBlIGhhcyAqanVzdCogY2hhbmdlZCBpc0FjdGl2ZSBzdGF0dXMsIHNldCBhY3RpdmVEZWx0YVxuICAgICAgICAgICAgICogdG8gdGhhdCBzdGF0dXMuIE90aGVyd2lzZSBzZXQgdG8gbnVsbC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgYWN0aXZlRGVsdGEgPSB0eXBlID09PSBjaGFuZ2VkQWN0aXZlVHlwZSA/IHR5cGVTdGF0ZS5pc0FjdGl2ZSA6IG51bGw7XG4gICAgICAgICAgICBpZiAoYWN0aXZlRGVsdGEgPT09IGZhbHNlKVxuICAgICAgICAgICAgICAgIHJlbW92ZWRWYXJpYW50SW5kZXggPSBpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIHByb3AgaXMgYW4gaW5oZXJpdGVkIHZhcmlhbnQsIHJhdGhlciB0aGFuIGJlZW4gc2V0IGRpcmVjdGx5IG9uIHRoZVxuICAgICAgICAgICAgICogY29tcG9uZW50IGl0c2VsZiwgd2Ugd2FudCB0byBtYWtlIHN1cmUgd2UgYWxsb3cgdGhlIHBhcmVudCB0byB0cmlnZ2VyIGFuaW1hdGlvbnMuXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogVE9ETzogQ2FuIHByb2JhYmx5IGNoYW5nZSB0aGlzIHRvIGEgIWlzQ29udHJvbGxpbmdWYXJpYW50cyBjaGVja1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBsZXQgaXNJbmhlcml0ZWQgPSBwcm9wID09PSBjb250ZXh0W3R5cGVdICYmXG4gICAgICAgICAgICAgICAgcHJvcCAhPT0gcHJvcHNbdHlwZV0gJiZcbiAgICAgICAgICAgICAgICBwcm9wSXNWYXJpYW50O1xuICAgICAgICAgICAgaWYgKGlzSW5oZXJpdGVkICYmXG4gICAgICAgICAgICAgICAgaXNJbml0aWFsUmVuZGVyICYmXG4gICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5tYW51YWxseUFuaW1hdGVPbk1vdW50KSB7XG4gICAgICAgICAgICAgICAgaXNJbmhlcml0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogU2V0IGFsbCBlbmNvdW50ZXJlZCBrZXlzIHNvIGZhciBhcyB0aGUgcHJvdGVjdGVkIGtleXMgZm9yIHRoaXMgdHlwZS4gVGhpcyB3aWxsXG4gICAgICAgICAgICAgKiBiZSBhbnkga2V5IHRoYXQgaGFzIGJlZW4gYW5pbWF0ZWQgb3Igb3RoZXJ3aXNlIGhhbmRsZWQgYnkgYWN0aXZlLCBoaWdoZXItcHJpb3J0aXkgdHlwZXMuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHR5cGVTdGF0ZS5wcm90ZWN0ZWRLZXlzID0geyAuLi5lbmNvdW50ZXJlZEtleXMgfTtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHdlIGNhbiBza2lwIGFuYWx5c2luZyB0aGlzIHByb3AgZWFybHlcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIElmIGl0IGlzbid0IGFjdGl2ZSBhbmQgaGFzbid0ICpqdXN0KiBiZWVuIHNldCBhcyBpbmFjdGl2ZVxuICAgICAgICAgICAgKCF0eXBlU3RhdGUuaXNBY3RpdmUgJiYgYWN0aXZlRGVsdGEgPT09IG51bGwpIHx8XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgZGlkbid0IGFuZCBkb24ndCBoYXZlIGFueSBkZWZpbmVkIHByb3AgZm9yIHRoaXMgYW5pbWF0aW9uIHR5cGVcbiAgICAgICAgICAgICAgICAoIXByb3AgJiYgIXR5cGVTdGF0ZS5wcmV2UHJvcCkgfHxcbiAgICAgICAgICAgICAgICAvLyBPciBpZiB0aGUgcHJvcCBkb2Vzbid0IGRlZmluZSBhbiBhbmltYXRpb25cbiAgICAgICAgICAgICAgICBpc0FuaW1hdGlvbkNvbnRyb2xzKHByb3ApIHx8XG4gICAgICAgICAgICAgICAgdHlwZW9mIHByb3AgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIGV4aXQgaXMgYWxyZWFkeSBhY3RpdmUgYW5kIHdhc24ndCBqdXN0IGFjdGl2YXRlZCwgc2tpcFxuICAgICAgICAgICAgICogcmUtcHJvY2Vzc2luZyB0byBwcmV2ZW50IGludGVycnVwdGluZyBydW5uaW5nIGV4aXQgYW5pbWF0aW9ucy5cbiAgICAgICAgICAgICAqIFJlLXJlc29sdmluZyBleGl0IHdpdGggYSBjaGFuZ2VkIGN1c3RvbSB2YWx1ZSBjYW4gc3RhcnQgbmV3XG4gICAgICAgICAgICAgKiB2YWx1ZSBhbmltYXRpb25zIHRoYXQgc3RvcCB0aGUgb3JpZ2luYWxzLCBsZWF2aW5nIHRoZSBleGl0XG4gICAgICAgICAgICAgKiBhbmltYXRpb24gcHJvbWlzZSB1bnJlc29sdmVkIGFuZCB0aGUgY29tcG9uZW50IHN0dWNrIGluIHRoZSBET00uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0eXBlID09PSBcImV4aXRcIiAmJiB0eXBlU3RhdGUuaXNBY3RpdmUgJiYgYWN0aXZlRGVsdGEgIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZVN0YXRlLnByZXZSZXNvbHZlZFZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICBlbmNvdW50ZXJlZEtleXMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5lbmNvdW50ZXJlZEtleXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi50eXBlU3RhdGUucHJldlJlc29sdmVkVmFsdWVzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQXMgd2UgZ28gbG9vayB0aHJvdWdoIHRoZSB2YWx1ZXMgZGVmaW5lZCBvbiB0aGlzIHR5cGUsIGlmIHdlIGRldGVjdFxuICAgICAgICAgICAgICogYSBjaGFuZ2VkIHZhbHVlIG9yIGEgdmFsdWUgdGhhdCB3YXMgcmVtb3ZlZCBpbiBhIGhpZ2hlciBwcmlvcml0eSwgd2Ugc2V0XG4gICAgICAgICAgICAgKiB0aGlzIHRvIHRydWUgYW5kIGFkZCB0aGlzIHByb3AgdG8gdGhlIGFuaW1hdGlvbiBsaXN0LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCB2YXJpYW50RGlkQ2hhbmdlID0gY2hlY2tWYXJpYW50c0RpZENoYW5nZSh0eXBlU3RhdGUucHJldlByb3AsIHByb3ApO1xuICAgICAgICAgICAgbGV0IHNob3VsZEFuaW1hdGVUeXBlID0gdmFyaWFudERpZENoYW5nZSB8fFxuICAgICAgICAgICAgICAgIC8vIElmIHdlJ3JlIG1ha2luZyB0aGlzIHZhcmlhbnQgYWN0aXZlLCB3ZSB3YW50IHRvIGFsd2F5cyBtYWtlIGl0IGFjdGl2ZVxuICAgICAgICAgICAgICAgICh0eXBlID09PSBjaGFuZ2VkQWN0aXZlVHlwZSAmJlxuICAgICAgICAgICAgICAgICAgICB0eXBlU3RhdGUuaXNBY3RpdmUgJiZcbiAgICAgICAgICAgICAgICAgICAgIWlzSW5oZXJpdGVkICYmXG4gICAgICAgICAgICAgICAgICAgIHByb3BJc1ZhcmlhbnQpIHx8XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UgcmVtb3ZlZCBhIGhpZ2hlci1wcmlvcml0eSB2YXJpYW50IChpIGlzIGluIHJldmVyc2Ugb3JkZXIpXG4gICAgICAgICAgICAgICAgKGkgPiByZW1vdmVkVmFyaWFudEluZGV4ICYmIHByb3BJc1ZhcmlhbnQpO1xuICAgICAgICAgICAgbGV0IGhhbmRsZWRSZW1vdmVkVmFsdWVzID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEFzIGFuaW1hdGlvbnMgY2FuIGJlIHNldCBhcyB2YXJpYW50IGxpc3RzLCB2YXJpYW50cyBvciB0YXJnZXQgb2JqZWN0cywgd2VcbiAgICAgICAgICAgICAqIGNvZXJjZSBldmVyeXRoaW5nIHRvIGFuIGFycmF5IGlmIGl0IGlzbid0IG9uZSBhbHJlYWR5XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGRlZmluaXRpb25MaXN0ID0gQXJyYXkuaXNBcnJheShwcm9wKSA/IHByb3AgOiBbcHJvcF07XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEJ1aWxkIGFuIG9iamVjdCBvZiBhbGwgdGhlIHJlc29sdmVkIHZhbHVlcy4gV2UnbGwgdXNlIHRoaXMgaW4gdGhlIHN1YnNlcXVlbnRcbiAgICAgICAgICAgICAqIGFuaW1hdGVDaGFuZ2VzIGNhbGxzIHRvIGRldGVybWluZSB3aGV0aGVyIGEgdmFsdWUgaGFzIGNoYW5nZWQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxldCByZXNvbHZlZFZhbHVlcyA9IGRlZmluaXRpb25MaXN0LnJlZHVjZShidWlsZFJlc29sdmVkVHlwZVZhbHVlcyh0eXBlKSwge30pO1xuICAgICAgICAgICAgaWYgKGFjdGl2ZURlbHRhID09PSBmYWxzZSlcbiAgICAgICAgICAgICAgICByZXNvbHZlZFZhbHVlcyA9IHt9O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBOb3cgd2UgbmVlZCB0byBsb29wIHRocm91Z2ggYWxsIHRoZSBrZXlzIGluIHRoZSBwcmV2IHByb3AgYW5kIHRoaXMgcHJvcCxcbiAgICAgICAgICAgICAqIGFuZCBkZWNpZGU6XG4gICAgICAgICAgICAgKiAxLiBJZiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQsIGFuZCBuZWVkcyBhbmltYXRpbmdcbiAgICAgICAgICAgICAqIDIuIElmIGl0IGhhcyBiZWVuIHJlbW92ZWQsIGFuZCBuZWVkcyBhZGRpbmcgdG8gdGhlIHJlbW92ZWRLZXlzIHNldFxuICAgICAgICAgICAgICogMy4gSWYgaXQgaGFzIGJlZW4gcmVtb3ZlZCBpbiBhIGhpZ2hlciBwcmlvcml0eSB0eXBlIGFuZCBuZWVkcyBhbmltYXRpbmdcbiAgICAgICAgICAgICAqIDQuIElmIGl0IGhhc24ndCBiZWVuIHJlbW92ZWQgaW4gYSBoaWdoZXIgcHJpb3JpdHkgYnV0IGhhc24ndCBjaGFuZ2VkLCBhbmRcbiAgICAgICAgICAgICAqICAgIG5lZWRzIGFkZGluZyB0byB0aGUgdHlwZSdzIHByb3RlY3RlZEtleXMgbGlzdC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgeyBwcmV2UmVzb2x2ZWRWYWx1ZXMgPSB7fSB9ID0gdHlwZVN0YXRlO1xuICAgICAgICAgICAgY29uc3QgYWxsS2V5cyA9IHtcbiAgICAgICAgICAgICAgICAuLi5wcmV2UmVzb2x2ZWRWYWx1ZXMsXG4gICAgICAgICAgICAgICAgLi4ucmVzb2x2ZWRWYWx1ZXMsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgbWFya1RvQW5pbWF0ZSA9IChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBzaG91bGRBbmltYXRlVHlwZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKHJlbW92ZWRLZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZWRSZW1vdmVkVmFsdWVzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlZEtleXMuZGVsZXRlKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHR5cGVTdGF0ZS5uZWVkc0FuaW1hdGluZ1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBtb3Rpb25WYWx1ZSA9IHZpc3VhbEVsZW1lbnQuZ2V0VmFsdWUoa2V5KTtcbiAgICAgICAgICAgICAgICBpZiAobW90aW9uVmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIG1vdGlvblZhbHVlLmxpdmVTdHlsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGFsbEtleXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0ID0gcmVzb2x2ZWRWYWx1ZXNba2V5XTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmV2ID0gcHJldlJlc29sdmVkVmFsdWVzW2tleV07XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBoYW5kbGVkIHRoaXMgd2UgY2FuIGp1c3Qgc2tpcCBhaGVhZFxuICAgICAgICAgICAgICAgIGlmIChlbmNvdW50ZXJlZEtleXMuaGFzT3duUHJvcGVydHkoa2V5KSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSWYgdGhlIHZhbHVlIGhhcyBjaGFuZ2VkLCB3ZSBwcm9iYWJseSB3YW50IHRvIGFuaW1hdGUgaXQuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlSGFzQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmIChpc0tleWZyYW1lc1RhcmdldChuZXh0KSAmJiBpc0tleWZyYW1lc1RhcmdldChwcmV2KSkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZUhhc0NoYW5nZWQgPSAhc2hhbGxvd0NvbXBhcmUobmV4dCwgcHJldik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZUhhc0NoYW5nZWQgPSBuZXh0ICE9PSBwcmV2O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodmFsdWVIYXNDaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0ICE9PSB1bmRlZmluZWQgJiYgbmV4dCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgbmV4dCBpcyBkZWZpbmVkIGFuZCBkb2Vzbid0IGVxdWFsIHByZXYsIGl0IG5lZWRzIGFuaW1hdGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFya1RvQW5pbWF0ZShrZXkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgaXQncyB1bmRlZmluZWQsIGl0J3MgYmVlbiByZW1vdmVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlZEtleXMuYWRkKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAobmV4dCAhPT0gdW5kZWZpbmVkICYmIHJlbW92ZWRLZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBJZiBuZXh0IGhhc24ndCBjaGFuZ2VkIGFuZCBpdCBpc24ndCB1bmRlZmluZWQsIHdlIHdhbnQgdG8gY2hlY2sgaWYgaXQnc1xuICAgICAgICAgICAgICAgICAgICAgKiBiZWVuIHJlbW92ZWQgYnkgYSBoaWdoZXIgcHJpb3JpdHlcbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIG1hcmtUb0FuaW1hdGUoa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBJZiBpdCBoYXNuJ3QgY2hhbmdlZCwgd2UgYWRkIGl0IHRvIHRoZSBsaXN0IG9mIHByb3RlY3RlZCB2YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgICogdG8gZW5zdXJlIGl0IGRvZXNuJ3QgZ2V0IGFuaW1hdGVkLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgdHlwZVN0YXRlLnByb3RlY3RlZEtleXNba2V5XSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBVcGRhdGUgdGhlIHR5cGVTdGF0ZSBzbyBuZXh0IHRpbWUgYW5pbWF0ZUNoYW5nZXMgaXMgY2FsbGVkIHdlIGNhbiBjb21wYXJlIHRoZVxuICAgICAgICAgICAgICogbGF0ZXN0IHByb3AgYW5kIHJlc29sdmVkVmFsdWVzIHRvIHRoZXNlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0eXBlU3RhdGUucHJldlByb3AgPSBwcm9wO1xuICAgICAgICAgICAgdHlwZVN0YXRlLnByZXZSZXNvbHZlZFZhbHVlcyA9IHJlc29sdmVkVmFsdWVzO1xuICAgICAgICAgICAgaWYgKHR5cGVTdGF0ZS5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgIGVuY291bnRlcmVkS2V5cyA9IHsgLi4uZW5jb3VudGVyZWRLZXlzLCAuLi5yZXNvbHZlZFZhbHVlcyB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzSW5pdGlhbFJlbmRlciAmJiB2aXN1YWxFbGVtZW50LmJsb2NrSW5pdGlhbEFuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgIHNob3VsZEFuaW1hdGVUeXBlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYW4gaW5oZXJpdGVkIHByb3Agd2Ugd2FudCB0byBza2lwIHRoaXMgYW5pbWF0aW9uXG4gICAgICAgICAgICAgKiB1bmxlc3MgdGhlIGluaGVyaXRlZCB2YXJpYW50cyBoYXZlbid0IGNoYW5nZWQgb24gdGhpcyByZW5kZXIuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IHdpbGxBbmltYXRlVmlhUGFyZW50ID0gaXNJbmhlcml0ZWQgJiYgdmFyaWFudERpZENoYW5nZTtcbiAgICAgICAgICAgIGNvbnN0IG5lZWRzQW5pbWF0aW5nID0gIXdpbGxBbmltYXRlVmlhUGFyZW50IHx8IGhhbmRsZWRSZW1vdmVkVmFsdWVzO1xuICAgICAgICAgICAgaWYgKHNob3VsZEFuaW1hdGVUeXBlICYmIG5lZWRzQW5pbWF0aW5nKSB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9ucy5wdXNoKC4uLmRlZmluaXRpb25MaXN0Lm1hcCgoYW5pbWF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7IHR5cGUgfTtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHdlJ3JlIHBlcmZvcm1pbmcgdGhlIGluaXRpYWwgYW5pbWF0aW9uLCBidXQgd2UncmUgbm90XG4gICAgICAgICAgICAgICAgICAgICAqIHJlbmRlcmluZyBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZSB2YXJpYW50LWNvbnRyb2xsaW5nIHBhcmVudCxcbiAgICAgICAgICAgICAgICAgICAgICogd2Ugd2FudCB0byB1c2UgdGhlIHBhcmVudCdzIHRyYW5zaXRpb24gdG8gY2FsY3VsYXRlIHRoZSBzdGFnZ2VyLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhbmltYXRpb24gPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzSW5pdGlhbFJlbmRlciAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXdpbGxBbmltYXRlVmlhUGFyZW50ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50Lm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQucGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHBhcmVudCB9ID0gdmlzdWFsRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFZhcmlhbnQgPSByZXNvbHZlVmFyaWFudChwYXJlbnQsIGFuaW1hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50LmVudGVyaW5nQ2hpbGRyZW4gJiYgcGFyZW50VmFyaWFudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGVsYXlDaGlsZHJlbiB9ID0gcGFyZW50VmFyaWFudC50cmFuc2l0aW9uIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMuZGVsYXkgPSBjYWxjQ2hpbGRTdGFnZ2VyKHBhcmVudC5lbnRlcmluZ0NoaWxkcmVuLCB2aXN1YWxFbGVtZW50LCBkZWxheUNoaWxkcmVuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBhbmltYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhlcmUgYXJlIHNvbWUgcmVtb3ZlZCB2YWx1ZSB0aGF0IGhhdmVuJ3QgYmVlbiBkZWFsdCB3aXRoLFxuICAgICAgICAgKiB3ZSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBhbmltYXRpb24gdGhhdCBmYWxscyBiYWNrIGVpdGhlciB0byB0aGUgdmFsdWVcbiAgICAgICAgICogZGVmaW5lZCBpbiB0aGUgc3R5bGUgcHJvcCwgb3IgdGhlIGxhc3QgcmVhZCB2YWx1ZS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChyZW1vdmVkS2V5cy5zaXplKSB7XG4gICAgICAgICAgICBjb25zdCBmYWxsYmFja0FuaW1hdGlvbiA9IHt9O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGUgaW5pdGlhbCBwcm9wIGNvbnRhaW5zIGEgdHJhbnNpdGlvbiB3ZSBjYW4gdXNlIHRoYXQsIG90aGVyd2lzZVxuICAgICAgICAgICAgICogYWxsb3cgdGhlIGFuaW1hdGlvbiBmdW5jdGlvbiB0byB1c2UgdGhlIHZpc3VhbCBlbGVtZW50J3MgZGVmYXVsdC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBwcm9wcy5pbml0aWFsICE9PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluaXRpYWxUcmFuc2l0aW9uID0gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgQXJyYXkuaXNBcnJheShwcm9wcy5pbml0aWFsKVxuICAgICAgICAgICAgICAgICAgICA/IHByb3BzLmluaXRpYWxbMF1cbiAgICAgICAgICAgICAgICAgICAgOiBwcm9wcy5pbml0aWFsKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5pdGlhbFRyYW5zaXRpb24gJiYgaW5pdGlhbFRyYW5zaXRpb24udHJhbnNpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0FuaW1hdGlvbi50cmFuc2l0aW9uID0gaW5pdGlhbFRyYW5zaXRpb24udHJhbnNpdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZW1vdmVkS2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmYWxsYmFja1RhcmdldCA9IHZpc3VhbEVsZW1lbnQuZ2V0QmFzZVRhcmdldChrZXkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vdGlvblZhbHVlID0gdmlzdWFsRWxlbWVudC5nZXRWYWx1ZShrZXkpO1xuICAgICAgICAgICAgICAgIGlmIChtb3Rpb25WYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgbW90aW9uVmFsdWUubGl2ZVN0eWxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIC0gQG1hdHRncGVycnkgdG8gZmlndXJlIGlmIHdlIHNob3VsZCBkbyBzb21ldGhpbmcgaGVyZVxuICAgICAgICAgICAgICAgIGZhbGxiYWNrQW5pbWF0aW9uW2tleV0gPSBmYWxsYmFja1RhcmdldCA/PyBudWxsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBhbmltYXRpb25zLnB1c2goeyBhbmltYXRpb246IGZhbGxiYWNrQW5pbWF0aW9uIH0pO1xuICAgICAgICB9XG4gICAgICAgIGxldCBzaG91bGRBbmltYXRlID0gQm9vbGVhbihhbmltYXRpb25zLmxlbmd0aCk7XG4gICAgICAgIGlmIChpc0luaXRpYWxSZW5kZXIgJiZcbiAgICAgICAgICAgIChwcm9wcy5pbml0aWFsID09PSBmYWxzZSB8fCBwcm9wcy5pbml0aWFsID09PSBwcm9wcy5hbmltYXRlKSAmJlxuICAgICAgICAgICAgIXZpc3VhbEVsZW1lbnQubWFudWFsbHlBbmltYXRlT25Nb3VudCkge1xuICAgICAgICAgICAgc2hvdWxkQW5pbWF0ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlzSW5pdGlhbFJlbmRlciA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gc2hvdWxkQW5pbWF0ZSA/IGFuaW1hdGUoYW5pbWF0aW9ucykgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHdoZXRoZXIgYSBjZXJ0YWluIGFuaW1hdGlvbiB0eXBlIGlzIGFjdGl2ZS5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXRBY3RpdmUodHlwZSwgaXNBY3RpdmUpIHtcbiAgICAgICAgLy8gSWYgdGhlIGFjdGl2ZSBzdGF0ZSBoYXNuJ3QgY2hhbmdlZCwgd2UgY2FuIHNhZmVseSBkbyBub3RoaW5nIGhlcmVcbiAgICAgICAgaWYgKHN0YXRlW3R5cGVdLmlzQWN0aXZlID09PSBpc0FjdGl2ZSlcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgLy8gUHJvcGFnYXRlIGFjdGl2ZSBjaGFuZ2UgdG8gY2hpbGRyZW5cbiAgICAgICAgdmlzdWFsRWxlbWVudC52YXJpYW50Q2hpbGRyZW4/LmZvckVhY2goKGNoaWxkKSA9PiBjaGlsZC5hbmltYXRpb25TdGF0ZT8uc2V0QWN0aXZlKHR5cGUsIGlzQWN0aXZlKSk7XG4gICAgICAgIHN0YXRlW3R5cGVdLmlzQWN0aXZlID0gaXNBY3RpdmU7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbnMgPSBhbmltYXRlQ2hhbmdlcyh0eXBlKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gc3RhdGUpIHtcbiAgICAgICAgICAgIHN0YXRlW2tleV0ucHJvdGVjdGVkS2V5cyA9IHt9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhbmltYXRpb25zO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBhbmltYXRlQ2hhbmdlcyxcbiAgICAgICAgc2V0QWN0aXZlLFxuICAgICAgICBzZXRBbmltYXRlRnVuY3Rpb24sXG4gICAgICAgIGdldFN0YXRlOiAoKSA9PiBzdGF0ZSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIHN0YXRlID0gY3JlYXRlU3RhdGUoKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVGVtcG9yYXJpbHkgZGlzYWJsaW5nIHJlc2V0dGluZyB0aGlzIGZsYWcgYXMgaXQgcHJldmVudHMgY29tcG9uZW50c1xuICAgICAgICAgICAgICogd2l0aCBpbml0aWFsPXtmYWxzZX0gZnJvbSBhbmltYXRpbmcgYWZ0ZXIgYmVpbmcgcmVtb3VudGVkLCBmb3IgaW5zdGFuY2VcbiAgICAgICAgICAgICAqIGFzIHRoZSBjaGlsZCBvZiBhbiBBY3Rpdml0eSBjb21wb25lbnQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIC8vIGlzSW5pdGlhbFJlbmRlciA9IHRydWVcbiAgICAgICAgfSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY2hlY2tWYXJpYW50c0RpZENoYW5nZShwcmV2LCBuZXh0KSB7XG4gICAgaWYgKHR5cGVvZiBuZXh0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHJldHVybiBuZXh0ICE9PSBwcmV2O1xuICAgIH1cbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KG5leHQpKSB7XG4gICAgICAgIHJldHVybiAhc2hhbGxvd0NvbXBhcmUobmV4dCwgcHJldik7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVR5cGVTdGF0ZShpc0FjdGl2ZSA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgaXNBY3RpdmUsXG4gICAgICAgIHByb3RlY3RlZEtleXM6IHt9LFxuICAgICAgICBuZWVkc0FuaW1hdGluZzoge30sXG4gICAgICAgIHByZXZSZXNvbHZlZFZhbHVlczoge30sXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGNyZWF0ZVN0YXRlKCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIGFuaW1hdGU6IGNyZWF0ZVR5cGVTdGF0ZSh0cnVlKSxcbiAgICAgICAgd2hpbGVJblZpZXc6IGNyZWF0ZVR5cGVTdGF0ZSgpLFxuICAgICAgICB3aGlsZUhvdmVyOiBjcmVhdGVUeXBlU3RhdGUoKSxcbiAgICAgICAgd2hpbGVUYXA6IGNyZWF0ZVR5cGVTdGF0ZSgpLFxuICAgICAgICB3aGlsZURyYWc6IGNyZWF0ZVR5cGVTdGF0ZSgpLFxuICAgICAgICB3aGlsZUZvY3VzOiBjcmVhdGVUeXBlU3RhdGUoKSxcbiAgICAgICAgZXhpdDogY3JlYXRlVHlwZVN0YXRlKCksXG4gICAgfTtcbn1cblxuZXhwb3J0IHsgY2hlY2tWYXJpYW50c0RpZENoYW5nZSwgY3JlYXRlQW5pbWF0aW9uU3RhdGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFuaW1hdGlvbi1zdGF0ZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/animation-state.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/get-variant-context.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 */ getVariantContext: () => (/* binding */ getVariantContext)\n/* harmony export */ });\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variant-props.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\");\n\n\n\nconst numVariantProps = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantProps.length;\n/**\n * Get variant context from a visual element's parent chain.\n * Uses `any` type for visualElement to avoid circular dependencies.\n */\nfunction getVariantContext(visualElement) {\n if (!visualElement)\n return undefined;\n if (!visualElement.isControllingVariants) {\n const context = visualElement.parent\n ? getVariantContext(visualElement.parent) || {}\n : {};\n if (visualElement.props.initial !== undefined) {\n context.initial = visualElement.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantProps[i];\n const prop = visualElement.props[name];\n if ((0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n}\n\n\n//# sourceMappingURL=get-variant-context.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9nZXQtdmFyaWFudC1jb250ZXh0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBd0Q7QUFDTDs7QUFFbkQsd0JBQXdCLDREQUFZO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IscUJBQXFCO0FBQ3pDLHFCQUFxQiw0REFBWTtBQUNqQztBQUNBLFlBQVkscUVBQWM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNkI7QUFDN0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9nZXQtdmFyaWFudC1jb250ZXh0Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1ZhcmlhbnRMYWJlbCB9IGZyb20gJy4vaXMtdmFyaWFudC1sYWJlbC5tanMnO1xuaW1wb3J0IHsgdmFyaWFudFByb3BzIH0gZnJvbSAnLi92YXJpYW50LXByb3BzLm1qcyc7XG5cbmNvbnN0IG51bVZhcmlhbnRQcm9wcyA9IHZhcmlhbnRQcm9wcy5sZW5ndGg7XG4vKipcbiAqIEdldCB2YXJpYW50IGNvbnRleHQgZnJvbSBhIHZpc3VhbCBlbGVtZW50J3MgcGFyZW50IGNoYWluLlxuICogVXNlcyBgYW55YCB0eXBlIGZvciB2aXN1YWxFbGVtZW50IHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llcy5cbiAqL1xuZnVuY3Rpb24gZ2V0VmFyaWFudENvbnRleHQodmlzdWFsRWxlbWVudCkge1xuICAgIGlmICghdmlzdWFsRWxlbWVudClcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAoIXZpc3VhbEVsZW1lbnQuaXNDb250cm9sbGluZ1ZhcmlhbnRzKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB2aXN1YWxFbGVtZW50LnBhcmVudFxuICAgICAgICAgICAgPyBnZXRWYXJpYW50Q29udGV4dCh2aXN1YWxFbGVtZW50LnBhcmVudCkgfHwge31cbiAgICAgICAgICAgIDoge307XG4gICAgICAgIGlmICh2aXN1YWxFbGVtZW50LnByb3BzLmluaXRpYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29udGV4dC5pbml0aWFsID0gdmlzdWFsRWxlbWVudC5wcm9wcy5pbml0aWFsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb250ZXh0O1xuICAgIH1cbiAgICBjb25zdCBjb250ZXh0ID0ge307XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1WYXJpYW50UHJvcHM7IGkrKykge1xuICAgICAgICBjb25zdCBuYW1lID0gdmFyaWFudFByb3BzW2ldO1xuICAgICAgICBjb25zdCBwcm9wID0gdmlzdWFsRWxlbWVudC5wcm9wc1tuYW1lXTtcbiAgICAgICAgaWYgKGlzVmFyaWFudExhYmVsKHByb3ApIHx8IHByb3AgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBjb250ZXh0W25hbWVdID0gcHJvcDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29udGV4dDtcbn1cblxuZXhwb3J0IHsgZ2V0VmFyaWFudENvbnRleHQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC12YXJpYW50LWNvbnRleHQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.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 */ isAnimationControls: () => (/* binding */ isAnimationControls)\n/* harmony export */ });\nfunction isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\n\n//# sourceMappingURL=is-animation-controls.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9pcy1hbmltYXRpb24tY29udHJvbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUrQjtBQUMvQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWFuaW1hdGlvbi1jb250cm9scy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gaXNBbmltYXRpb25Db250cm9scyh2KSB7XG4gICAgcmV0dXJuICh2ICE9PSBudWxsICYmXG4gICAgICAgIHR5cGVvZiB2ID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIHR5cGVvZiB2LnN0YXJ0ID09PSBcImZ1bmN0aW9uXCIpO1xufVxuXG5leHBvcnQgeyBpc0FuaW1hdGlvbkNvbnRyb2xzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1hbmltYXRpb24tY29udHJvbHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.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 */ isControllingVariants: () => (/* binding */ isControllingVariants),\n/* harmony export */ isVariantNode: () => (/* binding */ isVariantNode)\n/* harmony export */ });\n/* harmony import */ var _is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-animation-controls.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./variant-props.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\");\n\n\n\n\nfunction isControllingVariants(props) {\n return ((0,_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimationControls)(props.animate) ||\n _variant_props_mjs__WEBPACK_IMPORTED_MODULE_1__.variantProps.some((name) => (0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_2__.isVariantLabel)(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\n\n//# sourceMappingURL=is-controlling-variants.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9pcy1jb250cm9sbGluZy12YXJpYW50cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBa0U7QUFDVjtBQUNMOztBQUVuRDtBQUNBLFlBQVksK0VBQW1CO0FBQy9CLFFBQVEsNERBQVksZ0JBQWdCLHFFQUFjO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBOztBQUVnRDtBQUNoRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWNvbnRyb2xsaW5nLXZhcmlhbnRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0FuaW1hdGlvbkNvbnRyb2xzIH0gZnJvbSAnLi9pcy1hbmltYXRpb24tY29udHJvbHMubWpzJztcbmltcG9ydCB7IGlzVmFyaWFudExhYmVsIH0gZnJvbSAnLi9pcy12YXJpYW50LWxhYmVsLm1qcyc7XG5pbXBvcnQgeyB2YXJpYW50UHJvcHMgfSBmcm9tICcuL3ZhcmlhbnQtcHJvcHMubWpzJztcblxuZnVuY3Rpb24gaXNDb250cm9sbGluZ1ZhcmlhbnRzKHByb3BzKSB7XG4gICAgcmV0dXJuIChpc0FuaW1hdGlvbkNvbnRyb2xzKHByb3BzLmFuaW1hdGUpIHx8XG4gICAgICAgIHZhcmlhbnRQcm9wcy5zb21lKChuYW1lKSA9PiBpc1ZhcmlhbnRMYWJlbChwcm9wc1tuYW1lXSkpKTtcbn1cbmZ1bmN0aW9uIGlzVmFyaWFudE5vZGUocHJvcHMpIHtcbiAgICByZXR1cm4gQm9vbGVhbihpc0NvbnRyb2xsaW5nVmFyaWFudHMocHJvcHMpIHx8IHByb3BzLnZhcmlhbnRzKTtcbn1cblxuZXhwb3J0IHsgaXNDb250cm9sbGluZ1ZhcmlhbnRzLCBpc1ZhcmlhbnROb2RlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1jb250cm9sbGluZy12YXJpYW50cy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.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 */ addScaleCorrector: () => (/* reexport safe */ _projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__.addScaleCorrector),\n/* harmony export */ isForcedMotionValue: () => (/* binding */ isForcedMotionValue),\n/* harmony export */ scaleCorrectors: () => (/* reexport safe */ _projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__.scaleCorrectors)\n/* harmony export */ });\n/* harmony import */ var _keys_transform_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../projection/styles/scale-correction.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs\");\n\n\n\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_1__.transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!_projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__.scaleCorrectors[key] || key === \"opacity\")));\n}\n\n\n//# sourceMappingURL=is-forced-motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9pcy1mb3JjZWQtbW90aW9uLXZhbHVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFzRDtBQUN5QjtBQUNFOztBQUVqRixvQ0FBb0Msa0JBQWtCO0FBQ3RELFlBQVksK0RBQWM7QUFDMUI7QUFDQTtBQUNBLGVBQWUsb0ZBQWU7QUFDOUI7O0FBRWdEO0FBQ2hEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvaXMtZm9yY2VkLW1vdGlvbi12YWx1ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJhbnNmb3JtUHJvcHMgfSBmcm9tICcuL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyBzY2FsZUNvcnJlY3RvcnMgfSBmcm9tICcuLi8uLi9wcm9qZWN0aW9uL3N0eWxlcy9zY2FsZS1jb3JyZWN0aW9uLm1qcyc7XG5leHBvcnQgeyBhZGRTY2FsZUNvcnJlY3RvciB9IGZyb20gJy4uLy4uL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWNvcnJlY3Rpb24ubWpzJztcblxuZnVuY3Rpb24gaXNGb3JjZWRNb3Rpb25WYWx1ZShrZXksIHsgbGF5b3V0LCBsYXlvdXRJZCB9KSB7XG4gICAgcmV0dXJuICh0cmFuc2Zvcm1Qcm9wcy5oYXMoa2V5KSB8fFxuICAgICAgICBrZXkuc3RhcnRzV2l0aChcIm9yaWdpblwiKSB8fFxuICAgICAgICAoKGxheW91dCB8fCBsYXlvdXRJZCAhPT0gdW5kZWZpbmVkKSAmJlxuICAgICAgICAgICAgKCEhc2NhbGVDb3JyZWN0b3JzW2tleV0gfHwga2V5ID09PSBcIm9wYWNpdHlcIikpKTtcbn1cblxuZXhwb3J0IHsgaXNGb3JjZWRNb3Rpb25WYWx1ZSwgc2NhbGVDb3JyZWN0b3JzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1mb3JjZWQtbW90aW9uLXZhbHVlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.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 */ isKeyframesTarget: () => (/* binding */ isKeyframesTarget)\n/* harmony export */ });\nconst isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\n\n//# sourceMappingURL=is-keyframes-target.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9pcy1rZXlmcmFtZXMtdGFyZ2V0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWtleWZyYW1lcy10YXJnZXQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzS2V5ZnJhbWVzVGFyZ2V0ID0gKHYpID0+IHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2KTtcbn07XG5cbmV4cG9ydCB7IGlzS2V5ZnJhbWVzVGFyZ2V0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1rZXlmcmFtZXMtdGFyZ2V0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-variant-label.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 */ isVariantLabel: () => (/* binding */ isVariantLabel)\n/* harmony export */ });\n/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\n\n//# sourceMappingURL=is-variant-label.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9pcy12YXJpYW50LWxhYmVsLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUwQjtBQUMxQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLXZhcmlhbnQtbGFiZWwubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVjaWRlcyBpZiB0aGUgc3VwcGxpZWQgdmFyaWFibGUgaXMgdmFyaWFudCBsYWJlbFxuICovXG5mdW5jdGlvbiBpc1ZhcmlhbnRMYWJlbCh2KSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiIHx8IEFycmF5LmlzQXJyYXkodik7XG59XG5cbmV4cG9ydCB7IGlzVmFyaWFudExhYmVsIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy12YXJpYW50LWxhYmVsLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/keys-position.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 */ positionalKeys: () => (/* binding */ positionalKeys)\n/* harmony export */ });\n/* harmony import */ var _keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys-transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n ..._keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder,\n]);\n\n\n//# sourceMappingURL=keys-position.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9rZXlzLXBvc2l0aW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEwRDs7QUFFMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLG1FQUFrQjtBQUN6Qjs7QUFFMEI7QUFDMUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9rZXlzLXBvc2l0aW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wT3JkZXIgfSBmcm9tICcuL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5cbmNvbnN0IHBvc2l0aW9uYWxLZXlzID0gbmV3IFNldChbXG4gICAgXCJ3aWR0aFwiLFxuICAgIFwiaGVpZ2h0XCIsXG4gICAgXCJ0b3BcIixcbiAgICBcImxlZnRcIixcbiAgICBcInJpZ2h0XCIsXG4gICAgXCJib3R0b21cIixcbiAgICAuLi50cmFuc2Zvcm1Qcm9wT3JkZXIsXG5dKTtcblxuZXhwb3J0IHsgcG9zaXRpb25hbEtleXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWtleXMtcG9zaXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/keys-transform.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 */ transformPropOrder: () => (/* binding */ transformPropOrder),\n/* harmony export */ transformProps: () => (/* binding */ transformProps)\n/* harmony export */ });\n/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = /*@__PURE__*/ (() => new Set(transformPropOrder))();\n\n\n//# sourceMappingURL=keys-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9rZXlzLXRyYW5zZm9ybS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU4QztBQUM5QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlIGEgbGlzdCBvZiBldmVyeSBwb3NzaWJsZSB0cmFuc2Zvcm0ga2V5LlxuICovXG5jb25zdCB0cmFuc2Zvcm1Qcm9wT3JkZXIgPSBbXG4gICAgXCJ0cmFuc2Zvcm1QZXJzcGVjdGl2ZVwiLFxuICAgIFwieFwiLFxuICAgIFwieVwiLFxuICAgIFwielwiLFxuICAgIFwidHJhbnNsYXRlWFwiLFxuICAgIFwidHJhbnNsYXRlWVwiLFxuICAgIFwidHJhbnNsYXRlWlwiLFxuICAgIFwic2NhbGVcIixcbiAgICBcInNjYWxlWFwiLFxuICAgIFwic2NhbGVZXCIsXG4gICAgXCJyb3RhdGVcIixcbiAgICBcInJvdGF0ZVhcIixcbiAgICBcInJvdGF0ZVlcIixcbiAgICBcInJvdGF0ZVpcIixcbiAgICBcInNrZXdcIixcbiAgICBcInNrZXdYXCIsXG4gICAgXCJza2V3WVwiLFxuXTtcbi8qKlxuICogQSBxdWljayBsb29rdXAgZm9yIHRyYW5zZm9ybSBwcm9wcy5cbiAqL1xuY29uc3QgdHJhbnNmb3JtUHJvcHMgPSAvKkBfX1BVUkVfXyovICgoKSA9PiBuZXcgU2V0KHRyYW5zZm9ybVByb3BPcmRlcikpKCk7XG5cbmV4cG9ydCB7IHRyYW5zZm9ybVByb3BPcmRlciwgdHJhbnNmb3JtUHJvcHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWtleXMtdHJhbnNmb3JtLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/motion-values.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/motion-values.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 */ updateMotionValuesFromProps: () => (/* binding */ updateMotionValuesFromProps)\n/* harmony export */ });\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/utils/is-motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\n\n/**\n * Updates motion values from props changes.\n * Uses `any` type for element to avoid circular dependencies with VisualElement.\n */\nfunction updateMotionValuesFromProps(element, next, prev) {\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n }\n else if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_1__.motionValue)(nextValue, { owner: element }));\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n if (existingValue.liveStyle === true) {\n existingValue.jump(nextValue);\n }\n else if (!existingValue.hasAnimated) {\n existingValue.set(nextValue);\n }\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_1__.motionValue)(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\n\n//# sourceMappingURL=motion-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9tb3Rpb24tdmFsdWVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0Q7QUFDa0I7O0FBRXRFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLCtFQUFhO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiwrRUFBYTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyw2REFBVyxjQUFjLGdCQUFnQjtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsNkRBQVcsd0RBQXdELGdCQUFnQjtBQUN6SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFdUM7QUFDdkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9tb3Rpb24tdmFsdWVzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb3Rpb25WYWx1ZSB9IGZyb20gJy4uLy4uL3ZhbHVlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBpc01vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyc7XG5cbi8qKlxuICogVXBkYXRlcyBtb3Rpb24gdmFsdWVzIGZyb20gcHJvcHMgY2hhbmdlcy5cbiAqIFVzZXMgYGFueWAgdHlwZSBmb3IgZWxlbWVudCB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMgd2l0aCBWaXN1YWxFbGVtZW50LlxuICovXG5mdW5jdGlvbiB1cGRhdGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMoZWxlbWVudCwgbmV4dCwgcHJldikge1xuICAgIGZvciAoY29uc3Qga2V5IGluIG5leHQpIHtcbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gbmV4dFtrZXldO1xuICAgICAgICBjb25zdCBwcmV2VmFsdWUgPSBwcmV2W2tleV07XG4gICAgICAgIGlmIChpc01vdGlvblZhbHVlKG5leHRWYWx1ZSkpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhIG1vdGlvbiB2YWx1ZSBmb3VuZCBpbiBwcm9wcyBvciBzdHlsZSwgd2Ugd2FudCB0byBhZGQgaXRcbiAgICAgICAgICAgICAqIHRvIG91ciB2aXN1YWwgZWxlbWVudCdzIG1vdGlvbiB2YWx1ZSBtYXAuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGVsZW1lbnQuYWRkVmFsdWUoa2V5LCBuZXh0VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKGlzTW90aW9uVmFsdWUocHJldlZhbHVlKSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB3ZSdyZSBzd2FwcGluZyBmcm9tIGEgbW90aW9uIHZhbHVlIHRvIGEgc3RhdGljIHZhbHVlLFxuICAgICAgICAgICAgICogY3JlYXRlIGEgbmV3IG1vdGlvbiB2YWx1ZSBmcm9tIHRoYXRcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZWxlbWVudC5hZGRWYWx1ZShrZXksIG1vdGlvblZhbHVlKG5leHRWYWx1ZSwgeyBvd25lcjogZWxlbWVudCB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJldlZhbHVlICE9PSBuZXh0VmFsdWUpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhIGZsYXQgdmFsdWUgdGhhdCBoYXMgY2hhbmdlZCwgdXBkYXRlIHRoZSBtb3Rpb24gdmFsdWVcbiAgICAgICAgICAgICAqIG9yIGNyZWF0ZSBvbmUgaWYgaXQgZG9lc24ndCBleGlzdC4gV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgaWYgd2UncmVcbiAgICAgICAgICAgICAqIG5vdCBoYW5kbGluZyB0aGUgdmFsdWUgd2l0aCBvdXIgYW5pbWF0aW9uIHN0YXRlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5oYXNWYWx1ZShrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IGVsZW1lbnQuZ2V0VmFsdWUoa2V5KTtcbiAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdWYWx1ZS5saXZlU3R5bGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdWYWx1ZS5qdW1wKG5leHRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKCFleGlzdGluZ1ZhbHVlLmhhc0FuaW1hdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nVmFsdWUuc2V0KG5leHRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGF0ZXN0VmFsdWUgPSBlbGVtZW50LmdldFN0YXRpY1ZhbHVlKGtleSk7XG4gICAgICAgICAgICAgICAgZWxlbWVudC5hZGRWYWx1ZShrZXksIG1vdGlvblZhbHVlKGxhdGVzdFZhbHVlICE9PSB1bmRlZmluZWQgPyBsYXRlc3RWYWx1ZSA6IG5leHRWYWx1ZSwgeyBvd25lcjogZWxlbWVudCB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gSGFuZGxlIHJlbW92ZWQgdmFsdWVzXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcHJldikge1xuICAgICAgICBpZiAobmV4dFtrZXldID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICBlbGVtZW50LnJlbW92ZVZhbHVlKGtleSk7XG4gICAgfVxuICAgIHJldHVybiBuZXh0O1xufVxuXG5leHBvcnQgeyB1cGRhdGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vdGlvbi12YWx1ZXMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/motion-values.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/reduced-motion/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 */ hasReducedMotionListener: () => (/* reexport safe */ _state_mjs__WEBPACK_IMPORTED_MODULE_0__.hasReducedMotionListener),\n/* harmony export */ initPrefersReducedMotion: () => (/* binding */ initPrefersReducedMotion),\n/* harmony export */ prefersReducedMotion: () => (/* reexport safe */ _state_mjs__WEBPACK_IMPORTED_MODULE_0__.prefersReducedMotion)\n/* harmony export */ });\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs\");\n\n\nconst isBrowser = typeof window !== \"undefined\";\nfunction initPrefersReducedMotion() {\n _state_mjs__WEBPACK_IMPORTED_MODULE_0__.hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (_state_mjs__WEBPACK_IMPORTED_MODULE_0__.prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addEventListener(\"change\", setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n _state_mjs__WEBPACK_IMPORTED_MODULE_0__.prefersReducedMotion.current = false;\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZWR1Y2VkLW1vdGlvbi9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE2RTs7QUFFN0U7QUFDQTtBQUNBLElBQUksZ0VBQXdCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELDREQUFvQjtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNERBQW9CO0FBQzVCO0FBQ0E7O0FBRW9GO0FBQ3BGIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvcmVkdWNlZC1tb3Rpb24vaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhhc1JlZHVjZWRNb3Rpb25MaXN0ZW5lciwgcHJlZmVyc1JlZHVjZWRNb3Rpb24gfSBmcm9tICcuL3N0YXRlLm1qcyc7XG5cbmNvbnN0IGlzQnJvd3NlciA9IHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCI7XG5mdW5jdGlvbiBpbml0UHJlZmVyc1JlZHVjZWRNb3Rpb24oKSB7XG4gICAgaGFzUmVkdWNlZE1vdGlvbkxpc3RlbmVyLmN1cnJlbnQgPSB0cnVlO1xuICAgIGlmICghaXNCcm93c2VyKVxuICAgICAgICByZXR1cm47XG4gICAgaWYgKHdpbmRvdy5tYXRjaE1lZGlhKSB7XG4gICAgICAgIGNvbnN0IG1vdGlvbk1lZGlhUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYShcIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uKVwiKTtcbiAgICAgICAgY29uc3Qgc2V0UmVkdWNlZE1vdGlvblByZWZlcmVuY2VzID0gKCkgPT4gKHByZWZlcnNSZWR1Y2VkTW90aW9uLmN1cnJlbnQgPSBtb3Rpb25NZWRpYVF1ZXJ5Lm1hdGNoZXMpO1xuICAgICAgICBtb3Rpb25NZWRpYVF1ZXJ5LmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgc2V0UmVkdWNlZE1vdGlvblByZWZlcmVuY2VzKTtcbiAgICAgICAgc2V0UmVkdWNlZE1vdGlvblByZWZlcmVuY2VzKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBwcmVmZXJzUmVkdWNlZE1vdGlvbi5jdXJyZW50ID0gZmFsc2U7XG4gICAgfVxufVxuXG5leHBvcnQgeyBoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIsIGluaXRQcmVmZXJzUmVkdWNlZE1vdGlvbiwgcHJlZmVyc1JlZHVjZWRNb3Rpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.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 */ hasReducedMotionListener: () => (/* binding */ hasReducedMotionListener),\n/* harmony export */ prefersReducedMotion: () => (/* binding */ prefersReducedMotion)\n/* harmony export */ });\n// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\n\n//# sourceMappingURL=state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZWR1Y2VkLW1vdGlvbi9zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBLCtCQUErQjtBQUMvQixtQ0FBbUM7O0FBRXVCO0FBQzFEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvcmVkdWNlZC1tb3Rpb24vc3RhdGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIERvZXMgdGhpcyBkZXZpY2UgcHJlZmVyIHJlZHVjZWQgbW90aW9uPyBSZXR1cm5zIGBudWxsYCBzZXJ2ZXItc2lkZS5cbmNvbnN0IHByZWZlcnNSZWR1Y2VkTW90aW9uID0geyBjdXJyZW50OiBudWxsIH07XG5jb25zdCBoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIgPSB7IGN1cnJlbnQ6IGZhbHNlIH07XG5cbmV4cG9ydCB7IGhhc1JlZHVjZWRNb3Rpb25MaXN0ZW5lciwgcHJlZmVyc1JlZHVjZWRNb3Rpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0YXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.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 */ resolveVariant: () => (/* binding */ resolveVariant)\n/* harmony export */ });\n/* harmony import */ var _resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resolve-variants.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\");\n\n\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return (0,_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveVariantFromProps)(props, definition, custom !== undefined ? custom : props.custom, visualElement);\n}\n\n\n//# sourceMappingURL=resolve-dynamic-variants.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZXNvbHZlLWR5bmFtaWMtdmFyaWFudHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWlFOztBQUVqRTtBQUNBO0FBQ0EsV0FBVyw4RUFBdUI7QUFDbEM7O0FBRTBCO0FBQzFCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvcmVzb2x2ZS1keW5hbWljLXZhcmlhbnRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZXNvbHZlVmFyaWFudEZyb21Qcm9wcyB9IGZyb20gJy4vcmVzb2x2ZS12YXJpYW50cy5tanMnO1xuXG5mdW5jdGlvbiByZXNvbHZlVmFyaWFudCh2aXN1YWxFbGVtZW50LCBkZWZpbml0aW9uLCBjdXN0b20pIHtcbiAgICBjb25zdCBwcm9wcyA9IHZpc3VhbEVsZW1lbnQuZ2V0UHJvcHMoKTtcbiAgICByZXR1cm4gcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMocHJvcHMsIGRlZmluaXRpb24sIGN1c3RvbSAhPT0gdW5kZWZpbmVkID8gY3VzdG9tIDogcHJvcHMuY3VzdG9tLCB2aXN1YWxFbGVtZW50KTtcbn1cblxuZXhwb3J0IHsgcmVzb2x2ZVZhcmlhbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtZHluYW1pYy12YXJpYW50cy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/resolve-variants.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 */ resolveVariantFromProps: () => (/* binding */ resolveVariantFromProps)\n/* harmony export */ });\nfunction getValueState(visualElement) {\n const state = [{}, {}];\n visualElement?.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n\n\n//# sourceMappingURL=resolve-variants.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZXNvbHZlLXZhcmlhbnRzLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSxxQkFBcUIsSUFBSTtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRW1DO0FBQ25DIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvcmVzb2x2ZS12YXJpYW50cy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gZ2V0VmFsdWVTdGF0ZSh2aXN1YWxFbGVtZW50KSB7XG4gICAgY29uc3Qgc3RhdGUgPSBbe30sIHt9XTtcbiAgICB2aXN1YWxFbGVtZW50Py52YWx1ZXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBzdGF0ZVswXVtrZXldID0gdmFsdWUuZ2V0KCk7XG4gICAgICAgIHN0YXRlWzFdW2tleV0gPSB2YWx1ZS5nZXRWZWxvY2l0eSgpO1xuICAgIH0pO1xuICAgIHJldHVybiBzdGF0ZTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVWYXJpYW50RnJvbVByb3BzKHByb3BzLCBkZWZpbml0aW9uLCBjdXN0b20sIHZpc3VhbEVsZW1lbnQpIHtcbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdmFyaWFudCBkZWZpbml0aW9uIGlzIGEgZnVuY3Rpb24sIHJlc29sdmUuXG4gICAgICovXG4gICAgaWYgKHR5cGVvZiBkZWZpbml0aW9uID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgY29uc3QgW2N1cnJlbnQsIHZlbG9jaXR5XSA9IGdldFZhbHVlU3RhdGUodmlzdWFsRWxlbWVudCk7XG4gICAgICAgIGRlZmluaXRpb24gPSBkZWZpbml0aW9uKGN1c3RvbSAhPT0gdW5kZWZpbmVkID8gY3VzdG9tIDogcHJvcHMuY3VzdG9tLCBjdXJyZW50LCB2ZWxvY2l0eSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIHRoZSB2YXJpYW50IGRlZmluaXRpb24gaXMgYSB2YXJpYW50IGxhYmVsLCBvclxuICAgICAqIHRoZSBmdW5jdGlvbiByZXR1cm5lZCBhIHZhcmlhbnQgbGFiZWwsIHJlc29sdmUuXG4gICAgICovXG4gICAgaWYgKHR5cGVvZiBkZWZpbml0aW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGRlZmluaXRpb24gPSBwcm9wcy52YXJpYW50cyAmJiBwcm9wcy52YXJpYW50c1tkZWZpbml0aW9uXTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQXQgdGhpcyBwb2ludCB3ZSd2ZSByZXNvbHZlZCBib3RoIGZ1bmN0aW9ucyBhbmQgdmFyaWFudCBsYWJlbHMsXG4gICAgICogYnV0IHRoZSByZXNvbHZlZCB2YXJpYW50IGxhYmVsIG1pZ2h0IGl0c2VsZiBoYXZlIGJlZW4gYSBmdW5jdGlvbi5cbiAgICAgKiBJZiBzbywgcmVzb2x2ZS4gVGhpcyBjYW4gb25seSBoYXZlIHJldHVybmVkIGEgdmFsaWQgdGFyZ2V0IG9iamVjdC5cbiAgICAgKi9cbiAgICBpZiAodHlwZW9mIGRlZmluaXRpb24gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCBbY3VycmVudCwgdmVsb2NpdHldID0gZ2V0VmFsdWVTdGF0ZSh2aXN1YWxFbGVtZW50KTtcbiAgICAgICAgZGVmaW5pdGlvbiA9IGRlZmluaXRpb24oY3VzdG9tICE9PSB1bmRlZmluZWQgPyBjdXN0b20gOiBwcm9wcy5jdXN0b20sIGN1cnJlbnQsIHZlbG9jaXR5KTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG59XG5cbmV4cG9ydCB7IHJlc29sdmVWYXJpYW50RnJvbVByb3BzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNvbHZlLXZhcmlhbnRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/setters.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/setters.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 */ setTarget: () => (/* binding */ setTarget)\n/* harmony export */ });\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolve-dynamic-variants.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-keyframes-target.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs\");\n\n\n\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_0__.motionValue)(value));\n }\n}\nfunction resolveFinalValueInKeyframes(v) {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return (0,_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_1__.isKeyframesTarget)(v) ? v[v.length - 1] || 0 : v;\n}\nfunction setTarget(visualElement, definition) {\n const resolved = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\n\n//# sourceMappingURL=setters.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9zZXR0ZXJzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQW9EO0FBQ1k7QUFDRjs7QUFFOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLDZEQUFXO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVywyRUFBaUI7QUFDNUI7QUFDQTtBQUNBLHFCQUFxQiw2RUFBYztBQUNuQyxVQUFVLGtCQUFrQixpQkFBaUIsY0FBYztBQUMzRCxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFcUI7QUFDckIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9zZXR0ZXJzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtb3Rpb25WYWx1ZSB9IGZyb20gJy4uLy4uL3ZhbHVlL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyByZXNvbHZlVmFyaWFudCB9IGZyb20gJy4vcmVzb2x2ZS1keW5hbWljLXZhcmlhbnRzLm1qcyc7XG5pbXBvcnQgeyBpc0tleWZyYW1lc1RhcmdldCB9IGZyb20gJy4vaXMta2V5ZnJhbWVzLXRhcmdldC5tanMnO1xuXG4vKipcbiAqIFNldCBWaXN1YWxFbGVtZW50J3MgTW90aW9uVmFsdWUsIGNyZWF0aW5nIGEgbmV3IE1vdGlvblZhbHVlIGZvciBpdCBpZlxuICogaXQgZG9lc24ndCBleGlzdC5cbiAqL1xuZnVuY3Rpb24gc2V0TW90aW9uVmFsdWUodmlzdWFsRWxlbWVudCwga2V5LCB2YWx1ZSkge1xuICAgIGlmICh2aXN1YWxFbGVtZW50Lmhhc1ZhbHVlKGtleSkpIHtcbiAgICAgICAgdmlzdWFsRWxlbWVudC5nZXRWYWx1ZShrZXkpLnNldCh2YWx1ZSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB2aXN1YWxFbGVtZW50LmFkZFZhbHVlKGtleSwgbW90aW9uVmFsdWUodmFsdWUpKTtcbiAgICB9XG59XG5mdW5jdGlvbiByZXNvbHZlRmluYWxWYWx1ZUluS2V5ZnJhbWVzKHYpIHtcbiAgICAvLyBUT0RPIG1heWJlIHRocm93IGlmIHYubGVuZ3RoIC0gMSBpcyBwbGFjZWhvbGRlciB0b2tlbj9cbiAgICByZXR1cm4gaXNLZXlmcmFtZXNUYXJnZXQodikgPyB2W3YubGVuZ3RoIC0gMV0gfHwgMCA6IHY7XG59XG5mdW5jdGlvbiBzZXRUYXJnZXQodmlzdWFsRWxlbWVudCwgZGVmaW5pdGlvbikge1xuICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgZGVmaW5pdGlvbik7XG4gICAgbGV0IHsgdHJhbnNpdGlvbkVuZCA9IHt9LCB0cmFuc2l0aW9uID0ge30sIC4uLnRhcmdldCB9ID0gcmVzb2x2ZWQgfHwge307XG4gICAgdGFyZ2V0ID0geyAuLi50YXJnZXQsIC4uLnRyYW5zaXRpb25FbmQgfTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB0YXJnZXQpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByZXNvbHZlRmluYWxWYWx1ZUluS2V5ZnJhbWVzKHRhcmdldFtrZXldKTtcbiAgICAgICAgc2V0TW90aW9uVmFsdWUodmlzdWFsRWxlbWVudCwga2V5LCB2YWx1ZSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBzZXRUYXJnZXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNldHRlcnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/setters.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/shallow-compare.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 */ shallowCompare: () => (/* binding */ shallowCompare)\n/* harmony export */ });\nfunction shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\n\n//# sourceMappingURL=shallow-compare.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9zaGFsbG93LWNvbXBhcmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTBCO0FBQzFCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvc2hhbGxvdy1jb21wYXJlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBzaGFsbG93Q29tcGFyZShuZXh0LCBwcmV2KSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHByZXYpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgY29uc3QgcHJldkxlbmd0aCA9IHByZXYubGVuZ3RoO1xuICAgIGlmIChwcmV2TGVuZ3RoICE9PSBuZXh0Lmxlbmd0aClcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldkxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChwcmV2W2ldICE9PSBuZXh0W2ldKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IHsgc2hhbGxvd0NvbXBhcmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNoYWxsb3ctY29tcGFyZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/variant-props.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 */ variantPriorityOrder: () => (/* binding */ variantPriorityOrder),\n/* harmony export */ variantProps: () => (/* binding */ variantProps)\n/* harmony export */ });\nconst variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\n\n//# sourceMappingURL=variant-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy92YXJpYW50LXByb3BzLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU4QztBQUM5QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3ZhcmlhbnQtcHJvcHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHZhcmlhbnRQcmlvcml0eU9yZGVyID0gW1xuICAgIFwiYW5pbWF0ZVwiLFxuICAgIFwid2hpbGVJblZpZXdcIixcbiAgICBcIndoaWxlRm9jdXNcIixcbiAgICBcIndoaWxlSG92ZXJcIixcbiAgICBcIndoaWxlVGFwXCIsXG4gICAgXCJ3aGlsZURyYWdcIixcbiAgICBcImV4aXRcIixcbl07XG5jb25zdCB2YXJpYW50UHJvcHMgPSBbXCJpbml0aWFsXCIsIC4uLnZhcmlhbnRQcmlvcml0eU9yZGVyXTtcblxuZXhwb3J0IHsgdmFyaWFudFByaW9yaXR5T3JkZXIsIHZhcmlhbnRQcm9wcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmFyaWFudC1wcm9wcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/resize/handle-element.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 */ resizeElement: () => (/* binding */ resizeElement)\n/* harmony export */ });\n/* harmony import */ var _utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/is-svg-element.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n/* harmony import */ var _utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/resolve-elements.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\");\n\n\n\nconst resizeHandlers = new WeakMap();\nlet observer;\nconst getSize = (borderBoxAxis, svgAxis, htmlAxis) => (target, borderBoxSize) => {\n if (borderBoxSize && borderBoxSize[0]) {\n return borderBoxSize[0][(borderBoxAxis + \"Size\")];\n }\n else if ((0,_utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__.isSVGElement)(target) && \"getBBox\" in target) {\n return target.getBBox()[svgAxis];\n }\n else {\n return target[htmlAxis];\n }\n};\nconst getWidth = /*@__PURE__*/ getSize(\"inline\", \"width\", \"offsetWidth\");\nconst getHeight = /*@__PURE__*/ getSize(\"block\", \"height\", \"offsetHeight\");\nfunction notifyTarget({ target, borderBoxSize }) {\n resizeHandlers.get(target)?.forEach((handler) => {\n handler(target, {\n get width() {\n return getWidth(target, borderBoxSize);\n },\n get height() {\n return getHeight(target, borderBoxSize);\n },\n });\n });\n}\nfunction notifyAll(entries) {\n entries.forEach(notifyTarget);\n}\nfunction createResizeObserver() {\n if (typeof ResizeObserver === \"undefined\")\n return;\n observer = new ResizeObserver(notifyAll);\n}\nfunction resizeElement(target, handler) {\n if (!observer)\n createResizeObserver();\n const elements = (0,_utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_1__.resolveElements)(target);\n elements.forEach((element) => {\n let elementHandlers = resizeHandlers.get(element);\n if (!elementHandlers) {\n elementHandlers = new Set();\n resizeHandlers.set(element, elementHandlers);\n }\n elementHandlers.add(handler);\n observer?.observe(element);\n });\n return () => {\n elements.forEach((element) => {\n const elementHandlers = resizeHandlers.get(element);\n elementHandlers?.delete(handler);\n if (!elementHandlers?.size) {\n observer?.unobserve(element);\n }\n });\n };\n}\n\n\n//# sourceMappingURL=handle-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Jlc2l6ZS9oYW5kbGUtZWxlbWVudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTJEO0FBQ0s7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsdUVBQVk7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qix1QkFBdUI7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQiw0RUFBZTtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZXNpemUvaGFuZGxlLWVsZW1lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU1ZHRWxlbWVudCB9IGZyb20gJy4uL3V0aWxzL2lzLXN2Zy1lbGVtZW50Lm1qcyc7XG5pbXBvcnQgeyByZXNvbHZlRWxlbWVudHMgfSBmcm9tICcuLi91dGlscy9yZXNvbHZlLWVsZW1lbnRzLm1qcyc7XG5cbmNvbnN0IHJlc2l6ZUhhbmRsZXJzID0gbmV3IFdlYWtNYXAoKTtcbmxldCBvYnNlcnZlcjtcbmNvbnN0IGdldFNpemUgPSAoYm9yZGVyQm94QXhpcywgc3ZnQXhpcywgaHRtbEF4aXMpID0+ICh0YXJnZXQsIGJvcmRlckJveFNpemUpID0+IHtcbiAgICBpZiAoYm9yZGVyQm94U2l6ZSAmJiBib3JkZXJCb3hTaXplWzBdKSB7XG4gICAgICAgIHJldHVybiBib3JkZXJCb3hTaXplWzBdWyhib3JkZXJCb3hBeGlzICsgXCJTaXplXCIpXTtcbiAgICB9XG4gICAgZWxzZSBpZiAoaXNTVkdFbGVtZW50KHRhcmdldCkgJiYgXCJnZXRCQm94XCIgaW4gdGFyZ2V0KSB7XG4gICAgICAgIHJldHVybiB0YXJnZXQuZ2V0QkJveCgpW3N2Z0F4aXNdO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldFtodG1sQXhpc107XG4gICAgfVxufTtcbmNvbnN0IGdldFdpZHRoID0gLypAX19QVVJFX18qLyBnZXRTaXplKFwiaW5saW5lXCIsIFwid2lkdGhcIiwgXCJvZmZzZXRXaWR0aFwiKTtcbmNvbnN0IGdldEhlaWdodCA9IC8qQF9fUFVSRV9fKi8gZ2V0U2l6ZShcImJsb2NrXCIsIFwiaGVpZ2h0XCIsIFwib2Zmc2V0SGVpZ2h0XCIpO1xuZnVuY3Rpb24gbm90aWZ5VGFyZ2V0KHsgdGFyZ2V0LCBib3JkZXJCb3hTaXplIH0pIHtcbiAgICByZXNpemVIYW5kbGVycy5nZXQodGFyZ2V0KT8uZm9yRWFjaCgoaGFuZGxlcikgPT4ge1xuICAgICAgICBoYW5kbGVyKHRhcmdldCwge1xuICAgICAgICAgICAgZ2V0IHdpZHRoKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRXaWR0aCh0YXJnZXQsIGJvcmRlckJveFNpemUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBoZWlnaHQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldEhlaWdodCh0YXJnZXQsIGJvcmRlckJveFNpemUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBub3RpZnlBbGwoZW50cmllcykge1xuICAgIGVudHJpZXMuZm9yRWFjaChub3RpZnlUYXJnZXQpO1xufVxuZnVuY3Rpb24gY3JlYXRlUmVzaXplT2JzZXJ2ZXIoKSB7XG4gICAgaWYgKHR5cGVvZiBSZXNpemVPYnNlcnZlciA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgcmV0dXJuO1xuICAgIG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKG5vdGlmeUFsbCk7XG59XG5mdW5jdGlvbiByZXNpemVFbGVtZW50KHRhcmdldCwgaGFuZGxlcikge1xuICAgIGlmICghb2JzZXJ2ZXIpXG4gICAgICAgIGNyZWF0ZVJlc2l6ZU9ic2VydmVyKCk7XG4gICAgY29uc3QgZWxlbWVudHMgPSByZXNvbHZlRWxlbWVudHModGFyZ2V0KTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGxldCBlbGVtZW50SGFuZGxlcnMgPSByZXNpemVIYW5kbGVycy5nZXQoZWxlbWVudCk7XG4gICAgICAgIGlmICghZWxlbWVudEhhbmRsZXJzKSB7XG4gICAgICAgICAgICBlbGVtZW50SGFuZGxlcnMgPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICByZXNpemVIYW5kbGVycy5zZXQoZWxlbWVudCwgZWxlbWVudEhhbmRsZXJzKTtcbiAgICAgICAgfVxuICAgICAgICBlbGVtZW50SGFuZGxlcnMuYWRkKGhhbmRsZXIpO1xuICAgICAgICBvYnNlcnZlcj8ub2JzZXJ2ZShlbGVtZW50KTtcbiAgICB9KTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50SGFuZGxlcnMgPSByZXNpemVIYW5kbGVycy5nZXQoZWxlbWVudCk7XG4gICAgICAgICAgICBlbGVtZW50SGFuZGxlcnM/LmRlbGV0ZShoYW5kbGVyKTtcbiAgICAgICAgICAgIGlmICghZWxlbWVudEhhbmRsZXJzPy5zaXplKSB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXI/LnVub2JzZXJ2ZShlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbn1cblxuZXhwb3J0IHsgcmVzaXplRWxlbWVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGFuZGxlLWVsZW1lbnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/resize/handle-window.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 */ resizeWindow: () => (/* binding */ resizeWindow)\n/* harmony export */ });\nconst windowCallbacks = new Set();\nlet windowResizeHandler;\nfunction createWindowResizeHandler() {\n windowResizeHandler = () => {\n const info = {\n get width() {\n return window.innerWidth;\n },\n get height() {\n return window.innerHeight;\n },\n };\n windowCallbacks.forEach((callback) => callback(info));\n };\n window.addEventListener(\"resize\", windowResizeHandler);\n}\nfunction resizeWindow(callback) {\n windowCallbacks.add(callback);\n if (!windowResizeHandler)\n createWindowResizeHandler();\n return () => {\n windowCallbacks.delete(callback);\n if (!windowCallbacks.size &&\n typeof windowResizeHandler === \"function\") {\n window.removeEventListener(\"resize\", windowResizeHandler);\n windowResizeHandler = undefined;\n }\n };\n}\n\n\n//# sourceMappingURL=handle-window.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Jlc2l6ZS9oYW5kbGUtd2luZG93Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXdCO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZXNpemUvaGFuZGxlLXdpbmRvdy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qgd2luZG93Q2FsbGJhY2tzID0gbmV3IFNldCgpO1xubGV0IHdpbmRvd1Jlc2l6ZUhhbmRsZXI7XG5mdW5jdGlvbiBjcmVhdGVXaW5kb3dSZXNpemVIYW5kbGVyKCkge1xuICAgIHdpbmRvd1Jlc2l6ZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZm8gPSB7XG4gICAgICAgICAgICBnZXQgd2lkdGgoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldCBoZWlnaHQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvd0NhbGxiYWNrcy5mb3JFYWNoKChjYWxsYmFjaykgPT4gY2FsbGJhY2soaW5mbykpO1xuICAgIH07XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgd2luZG93UmVzaXplSGFuZGxlcik7XG59XG5mdW5jdGlvbiByZXNpemVXaW5kb3coY2FsbGJhY2spIHtcbiAgICB3aW5kb3dDYWxsYmFja3MuYWRkKGNhbGxiYWNrKTtcbiAgICBpZiAoIXdpbmRvd1Jlc2l6ZUhhbmRsZXIpXG4gICAgICAgIGNyZWF0ZVdpbmRvd1Jlc2l6ZUhhbmRsZXIoKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICB3aW5kb3dDYWxsYmFja3MuZGVsZXRlKGNhbGxiYWNrKTtcbiAgICAgICAgaWYgKCF3aW5kb3dDYWxsYmFja3Muc2l6ZSAmJlxuICAgICAgICAgICAgdHlwZW9mIHdpbmRvd1Jlc2l6ZUhhbmRsZXIgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgd2luZG93UmVzaXplSGFuZGxlcik7XG4gICAgICAgICAgICB3aW5kb3dSZXNpemVIYW5kbGVyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuZXhwb3J0IHsgcmVzaXplV2luZG93IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oYW5kbGUtd2luZG93Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/resize/index.mjs": +/*!**********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/resize/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 */ resize: () => (/* binding */ resize)\n/* harmony export */ });\n/* harmony import */ var _handle_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./handle-element.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs\");\n/* harmony import */ var _handle_window_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./handle-window.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs\");\n\n\n\nfunction resize(a, b) {\n return typeof a === \"function\" ? (0,_handle_window_mjs__WEBPACK_IMPORTED_MODULE_0__.resizeWindow)(a) : (0,_handle_element_mjs__WEBPACK_IMPORTED_MODULE_1__.resizeElement)(a, b);\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Jlc2l6ZS9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXFEO0FBQ0Y7O0FBRW5EO0FBQ0EscUNBQXFDLGdFQUFZLE1BQU0sa0VBQWE7QUFDcEU7O0FBRWtCO0FBQ2xCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZXNpemUvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc2l6ZUVsZW1lbnQgfSBmcm9tICcuL2hhbmRsZS1lbGVtZW50Lm1qcyc7XG5pbXBvcnQgeyByZXNpemVXaW5kb3cgfSBmcm9tICcuL2hhbmRsZS13aW5kb3cubWpzJztcblxuZnVuY3Rpb24gcmVzaXplKGEsIGIpIHtcbiAgICByZXR1cm4gdHlwZW9mIGEgPT09IFwiZnVuY3Rpb25cIiA/IHJlc2l6ZVdpbmRvdyhhKSA6IHJlc2l6ZUVsZW1lbnQoYSwgYik7XG59XG5cbmV4cG9ydCB7IHJlc2l6ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/resize/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/stats/animation-count.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 */ activeAnimations: () => (/* binding */ activeAnimations)\n/* harmony export */ });\nconst activeAnimations = {\n layout: 0,\n mainThread: 0,\n waapi: 0,\n};\n\n\n//# sourceMappingURL=animation-count.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3N0YXRzL2FuaW1hdGlvbi1jb3VudC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTRCO0FBQzVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9zdGF0cy9hbmltYXRpb24tY291bnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGFjdGl2ZUFuaW1hdGlvbnMgPSB7XG4gICAgbGF5b3V0OiAwLFxuICAgIG1haW5UaHJlYWQ6IDAsXG4gICAgd2FhcGk6IDAsXG59O1xuXG5leHBvcnQgeyBhY3RpdmVBbmltYXRpb25zIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbmltYXRpb24tY291bnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/stats/buffer.mjs": +/*!**********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/stats/buffer.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 */ statsBuffer: () => (/* binding */ statsBuffer)\n/* harmony export */ });\nconst statsBuffer = {\n value: null,\n addProjectionMetrics: null,\n};\n\n\n//# sourceMappingURL=buffer.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3N0YXRzL2J1ZmZlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUV1QjtBQUN2QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvc3RhdHMvYnVmZmVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzdGF0c0J1ZmZlciA9IHtcbiAgICB2YWx1ZTogbnVsbCxcbiAgICBhZGRQcm9qZWN0aW9uTWV0cmljczogbnVsbCxcbn07XG5cbmV4cG9ydCB7IHN0YXRzQnVmZmVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1idWZmZXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/delay.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/delay.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 */ delay: () => (/* binding */ delay),\n/* harmony export */ delayInSeconds: () => (/* binding */ delayInSeconds)\n/* harmony export */ });\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/frame.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.setup(checkElapsed, true);\n return () => (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(checkElapsed);\n}\nfunction delayInSeconds(callback, timeout) {\n return delay(callback, (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(timeout));\n}\n\n\n//# sourceMappingURL=delay.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL2RlbGF5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFrRDtBQUNHO0FBQ087O0FBRTVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDBEQUFJO0FBQ3RCLDRCQUE0QixXQUFXO0FBQ3ZDO0FBQ0E7QUFDQSxZQUFZLGlFQUFXO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBLElBQUksdURBQUs7QUFDVCxpQkFBaUIsaUVBQVc7QUFDNUI7QUFDQTtBQUNBLDJCQUEyQixtRUFBcUI7QUFDaEQ7O0FBRWlDO0FBQ2pDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9kZWxheS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGltZSB9IGZyb20gJy4uL2ZyYW1lbG9vcC9zeW5jLXRpbWUubWpzJztcbmltcG9ydCB7IHNlY29uZHNUb01pbGxpc2Vjb25kcyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBmcmFtZSwgY2FuY2VsRnJhbWUgfSBmcm9tICcuLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcblxuLyoqXG4gKiBUaW1lb3V0IGRlZmluZWQgaW4gbXNcbiAqL1xuZnVuY3Rpb24gZGVsYXkoY2FsbGJhY2ssIHRpbWVvdXQpIHtcbiAgICBjb25zdCBzdGFydCA9IHRpbWUubm93KCk7XG4gICAgY29uc3QgY2hlY2tFbGFwc2VkID0gKHsgdGltZXN0YW1wIH0pID0+IHtcbiAgICAgICAgY29uc3QgZWxhcHNlZCA9IHRpbWVzdGFtcCAtIHN0YXJ0O1xuICAgICAgICBpZiAoZWxhcHNlZCA+PSB0aW1lb3V0KSB7XG4gICAgICAgICAgICBjYW5jZWxGcmFtZShjaGVja0VsYXBzZWQpO1xuICAgICAgICAgICAgY2FsbGJhY2soZWxhcHNlZCAtIHRpbWVvdXQpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmcmFtZS5zZXR1cChjaGVja0VsYXBzZWQsIHRydWUpO1xuICAgIHJldHVybiAoKSA9PiBjYW5jZWxGcmFtZShjaGVja0VsYXBzZWQpO1xufVxuZnVuY3Rpb24gZGVsYXlJblNlY29uZHMoY2FsbGJhY2ssIHRpbWVvdXQpIHtcbiAgICByZXR1cm4gZGVsYXkoY2FsbGJhY2ssIHNlY29uZHNUb01pbGxpc2Vjb25kcyh0aW1lb3V0KSk7XG59XG5cbmV4cG9ydCB7IGRlbGF5LCBkZWxheUluU2Vjb25kcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVsYXkubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/delay.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/interpolate.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 */ interpolate: () => (/* binding */ interpolate)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _mix_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mix/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\");\n\n\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || motion_utils__WEBPACK_IMPORTED_MODULE_0__.MotionGlobalConfig.mix || _mix_index_mjs__WEBPACK_IMPORTED_MODULE_1__.mix;\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || motion_utils__WEBPACK_IMPORTED_MODULE_2__.noop : ease;\n mixer = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.pipe)(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revisit this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.invariant)(inputLength === output.length, \"Both input and output ranges must be the same length\", \"range-length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && output[0] === output[1])\n return () => output[1];\n const isZeroDeltaRange = input[0] === input[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n if (isZeroDeltaRange && v < input[0])\n return output[0];\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.progress)(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator((0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.clamp)(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\n\n//# sourceMappingURL=interpolate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL2ludGVycG9sYXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUEwRjtBQUNwRDs7QUFFdEM7QUFDQTtBQUNBLHdDQUF3Qyw0REFBa0IsUUFBUSwrQ0FBRztBQUNyRTtBQUNBLG9CQUFvQixlQUFlO0FBQ25DO0FBQ0E7QUFDQSxvRUFBb0UsOENBQUk7QUFDeEUsb0JBQW9CLGtEQUFJO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyxxQ0FBcUMsSUFBSTtBQUMvRTtBQUNBLElBQUksdURBQVM7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsc0JBQXNCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLHNEQUFRO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixtREFBSztBQUNuQztBQUNBOztBQUV1QjtBQUN2QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaW50ZXJwb2xhdGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludmFyaWFudCwgY2xhbXAsIE1vdGlvbkdsb2JhbENvbmZpZywgbm9vcCwgcGlwZSwgcHJvZ3Jlc3MgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgbWl4IH0gZnJvbSAnLi9taXgvaW5kZXgubWpzJztcblxuZnVuY3Rpb24gY3JlYXRlTWl4ZXJzKG91dHB1dCwgZWFzZSwgY3VzdG9tTWl4ZXIpIHtcbiAgICBjb25zdCBtaXhlcnMgPSBbXTtcbiAgICBjb25zdCBtaXhlckZhY3RvcnkgPSBjdXN0b21NaXhlciB8fCBNb3Rpb25HbG9iYWxDb25maWcubWl4IHx8IG1peDtcbiAgICBjb25zdCBudW1NaXhlcnMgPSBvdXRwdXQubGVuZ3RoIC0gMTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bU1peGVyczsgaSsrKSB7XG4gICAgICAgIGxldCBtaXhlciA9IG1peGVyRmFjdG9yeShvdXRwdXRbaV0sIG91dHB1dFtpICsgMV0pO1xuICAgICAgICBpZiAoZWFzZSkge1xuICAgICAgICAgICAgY29uc3QgZWFzaW5nRnVuY3Rpb24gPSBBcnJheS5pc0FycmF5KGVhc2UpID8gZWFzZVtpXSB8fCBub29wIDogZWFzZTtcbiAgICAgICAgICAgIG1peGVyID0gcGlwZShlYXNpbmdGdW5jdGlvbiwgbWl4ZXIpO1xuICAgICAgICB9XG4gICAgICAgIG1peGVycy5wdXNoKG1peGVyKTtcbiAgICB9XG4gICAgcmV0dXJuIG1peGVycztcbn1cbi8qKlxuICogQ3JlYXRlIGEgZnVuY3Rpb24gdGhhdCBtYXBzIGZyb20gYSBudW1lcmljYWwgaW5wdXQgYXJyYXkgdG8gYSBnZW5lcmljIG91dHB1dCBhcnJheS5cbiAqXG4gKiBBY2NlcHRzOlxuICogICAtIE51bWJlcnNcbiAqICAgLSBDb2xvcnMgKGhleCwgaHNsLCBoc2xhLCByZ2IsIHJnYmEpXG4gKiAgIC0gQ29tcGxleCAoY29tYmluYXRpb25zIG9mIG9uZSBvciBtb3JlIG51bWJlcnMgb3Igc3RyaW5ncylcbiAqXG4gKiBgYGBqc3hcbiAqIGNvbnN0IG1peENvbG9yID0gaW50ZXJwb2xhdGUoWzAsIDFdLCBbJyNmZmYnLCAnIzAwMCddKVxuICpcbiAqIG1peENvbG9yKDAuNSkgLy8gJ3JnYmEoMTI4LCAxMjgsIDEyOCwgMSknXG4gKiBgYGBcbiAqXG4gKiBUT0RPIFJldmlzaXQgdGhpcyBhcHByb2FjaCBvbmNlIHdlJ3ZlIG1vdmVkIHRvIGRhdGEgbW9kZWxzIGZvciB2YWx1ZXMsXG4gKiBwcm9iYWJseSBub3QgbmVlZGVkIHRvIHByZWdlbmVyYXRlIG1peGVyIGZ1bmN0aW9ucy5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmZ1bmN0aW9uIGludGVycG9sYXRlKGlucHV0LCBvdXRwdXQsIHsgY2xhbXA6IGlzQ2xhbXAgPSB0cnVlLCBlYXNlLCBtaXhlciB9ID0ge30pIHtcbiAgICBjb25zdCBpbnB1dExlbmd0aCA9IGlucHV0Lmxlbmd0aDtcbiAgICBpbnZhcmlhbnQoaW5wdXRMZW5ndGggPT09IG91dHB1dC5sZW5ndGgsIFwiQm90aCBpbnB1dCBhbmQgb3V0cHV0IHJhbmdlcyBtdXN0IGJlIHRoZSBzYW1lIGxlbmd0aFwiLCBcInJhbmdlLWxlbmd0aFwiKTtcbiAgICAvKipcbiAgICAgKiBJZiB3ZSdyZSBvbmx5IHByb3ZpZGVkIGEgc2luZ2xlIGlucHV0LCB3ZSBjYW4ganVzdCBtYWtlIGEgZnVuY3Rpb25cbiAgICAgKiB0aGF0IHJldHVybnMgdGhlIG91dHB1dC5cbiAgICAgKi9cbiAgICBpZiAoaW5wdXRMZW5ndGggPT09IDEpXG4gICAgICAgIHJldHVybiAoKSA9PiBvdXRwdXRbMF07XG4gICAgaWYgKGlucHV0TGVuZ3RoID09PSAyICYmIG91dHB1dFswXSA9PT0gb3V0cHV0WzFdKVxuICAgICAgICByZXR1cm4gKCkgPT4gb3V0cHV0WzFdO1xuICAgIGNvbnN0IGlzWmVyb0RlbHRhUmFuZ2UgPSBpbnB1dFswXSA9PT0gaW5wdXRbMV07XG4gICAgLy8gSWYgaW5wdXQgcnVucyBoaWdoZXN0IC0+IGxvd2VzdCwgcmV2ZXJzZSBib3RoIGFycmF5c1xuICAgIGlmIChpbnB1dFswXSA+IGlucHV0W2lucHV0TGVuZ3RoIC0gMV0pIHtcbiAgICAgICAgaW5wdXQgPSBbLi4uaW5wdXRdLnJldmVyc2UoKTtcbiAgICAgICAgb3V0cHV0ID0gWy4uLm91dHB1dF0ucmV2ZXJzZSgpO1xuICAgIH1cbiAgICBjb25zdCBtaXhlcnMgPSBjcmVhdGVNaXhlcnMob3V0cHV0LCBlYXNlLCBtaXhlcik7XG4gICAgY29uc3QgbnVtTWl4ZXJzID0gbWl4ZXJzLmxlbmd0aDtcbiAgICBjb25zdCBpbnRlcnBvbGF0b3IgPSAodikgPT4ge1xuICAgICAgICBpZiAoaXNaZXJvRGVsdGFSYW5nZSAmJiB2IDwgaW5wdXRbMF0pXG4gICAgICAgICAgICByZXR1cm4gb3V0cHV0WzBdO1xuICAgICAgICBsZXQgaSA9IDA7XG4gICAgICAgIGlmIChudW1NaXhlcnMgPiAxKSB7XG4gICAgICAgICAgICBmb3IgKDsgaSA8IGlucHV0Lmxlbmd0aCAtIDI7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICh2IDwgaW5wdXRbaSArIDFdKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcm9ncmVzc0luUmFuZ2UgPSBwcm9ncmVzcyhpbnB1dFtpXSwgaW5wdXRbaSArIDFdLCB2KTtcbiAgICAgICAgcmV0dXJuIG1peGVyc1tpXShwcm9ncmVzc0luUmFuZ2UpO1xuICAgIH07XG4gICAgcmV0dXJuIGlzQ2xhbXBcbiAgICAgICAgPyAodikgPT4gaW50ZXJwb2xhdG9yKGNsYW1wKGlucHV0WzBdLCBpbnB1dFtpbnB1dExlbmd0aCAtIDFdLCB2KSlcbiAgICAgICAgOiBpbnRlcnBvbGF0b3I7XG59XG5cbmV4cG9ydCB7IGludGVycG9sYXRlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbnRlcnBvbGF0ZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/is-html-element.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 */ isHTMLElement: () => (/* binding */ isHTMLElement)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/is-object.mjs\");\n\n\n/**\n * Checks if an element is an HTML element in a way\n * that works across iframes\n */\nfunction isHTMLElement(element) {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isObject)(element) && \"offsetHeight\" in element;\n}\n\n\n//# sourceMappingURL=is-html-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL2lzLWh0bWwtZWxlbWVudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0M7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLHNEQUFRO0FBQ25COztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaXMtaHRtbC1lbGVtZW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGFuIGVsZW1lbnQgaXMgYW4gSFRNTCBlbGVtZW50IGluIGEgd2F5XG4gKiB0aGF0IHdvcmtzIGFjcm9zcyBpZnJhbWVzXG4gKi9cbmZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQoZWxlbWVudCkge1xuICAgIHJldHVybiBpc09iamVjdChlbGVtZW50KSAmJiBcIm9mZnNldEhlaWdodFwiIGluIGVsZW1lbnQ7XG59XG5cbmV4cG9ydCB7IGlzSFRNTEVsZW1lbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWh0bWwtZWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/is-svg-element.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 */ isSVGElement: () => (/* binding */ isSVGElement)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/is-object.mjs\");\n\n\n/**\n * Checks if an element is an SVG element in a way\n * that works across iframes\n */\nfunction isSVGElement(element) {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isObject)(element) && \"ownerSVGElement\" in element;\n}\n\n\n//# sourceMappingURL=is-svg-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL2lzLXN2Zy1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF3Qzs7QUFFeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsc0RBQVE7QUFDbkI7O0FBRXdCO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9pcy1zdmctZWxlbWVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuXG4vKipcbiAqIENoZWNrcyBpZiBhbiBlbGVtZW50IGlzIGFuIFNWRyBlbGVtZW50IGluIGEgd2F5XG4gKiB0aGF0IHdvcmtzIGFjcm9zcyBpZnJhbWVzXG4gKi9cbmZ1bmN0aW9uIGlzU1ZHRWxlbWVudChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGlzT2JqZWN0KGVsZW1lbnQpICYmIFwib3duZXJTVkdFbGVtZW50XCIgaW4gZWxlbWVudDtcbn1cblxuZXhwb3J0IHsgaXNTVkdFbGVtZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1zdmctZWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.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 */ isSVGSVGElement: () => (/* binding */ isSVGSVGElement)\n/* harmony export */ });\n/* harmony import */ var _is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-svg-element.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n\n\n/**\n * Checks if an element is specifically an SVGSVGElement (the root SVG element)\n * in a way that works across iframes\n */\nfunction isSVGSVGElement(element) {\n return (0,_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__.isSVGElement)(element) && element.tagName === \"svg\";\n}\n\n\n//# sourceMappingURL=is-svg-svg-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL2lzLXN2Zy1zdmctZWxlbWVudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBb0Q7O0FBRXBEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGlFQUFZO0FBQ3ZCOztBQUUyQjtBQUMzQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaXMtc3ZnLXN2Zy1lbGVtZW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1NWR0VsZW1lbnQgfSBmcm9tICcuL2lzLXN2Zy1lbGVtZW50Lm1qcyc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGFuIGVsZW1lbnQgaXMgc3BlY2lmaWNhbGx5IGFuIFNWR1NWR0VsZW1lbnQgKHRoZSByb290IFNWRyBlbGVtZW50KVxuICogaW4gYSB3YXkgdGhhdCB3b3JrcyBhY3Jvc3MgaWZyYW1lc1xuICovXG5mdW5jdGlvbiBpc1NWR1NWR0VsZW1lbnQoZWxlbWVudCkge1xuICAgIHJldHVybiBpc1NWR0VsZW1lbnQoZWxlbWVudCkgJiYgZWxlbWVudC50YWdOYW1lID09PSBcInN2Z1wiO1xufVxuXG5leHBvcnQgeyBpc1NWR1NWR0VsZW1lbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXN2Zy1zdmctZWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/color.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 */ mixColor: () => (/* binding */ mixColor),\n/* harmony export */ mixLinearColor: () => (/* binding */ mixLinearColor)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _value_types_color_hex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/color/hex.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\");\n/* harmony import */ var _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../value/types/color/hsla.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\");\n/* harmony import */ var _value_types_color_hsla_to_rgba_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../value/types/color/hsla-to-rgba.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs\");\n/* harmony import */ var _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/types/color/rgba.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n/* harmony import */ var _immediate_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./immediate.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\n\n\n\n\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [_value_types_color_hex_mjs__WEBPACK_IMPORTED_MODULE_0__.hex, _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba, _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.warning)(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`, \"color-not-animatable\");\n if (!Boolean(type))\n return false;\n let model = type.parse(color);\n if (type === _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla) {\n // TODO Remove this cast - needed since Motion's stricter typing\n model = (0,_value_types_color_hsla_to_rgba_mjs__WEBPACK_IMPORTED_MODULE_4__.hslaToRgba)(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n if (!fromRGBA || !toRGBA) {\n return (0,_immediate_mjs__WEBPACK_IMPORTED_MODULE_5__.mixImmediate)(from, to);\n }\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = (0,_number_mjs__WEBPACK_IMPORTED_MODULE_6__.mixNumber)(fromRGBA.alpha, toRGBA.alpha, v);\n return _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba.transform(blended);\n };\n};\n\n\n//# sourceMappingURL=color.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC9jb2xvci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXVDO0FBQ2U7QUFDRTtBQUNjO0FBQ2Q7QUFDVDtBQUNOOztBQUV6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDJEQUFHLEVBQUUsNkRBQUksRUFBRSw2REFBSTtBQUNuQztBQUNBO0FBQ0E7QUFDQSxJQUFJLHFEQUFPLG9CQUFvQixNQUFNO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiw2REFBSTtBQUNyQjtBQUNBLGdCQUFnQiwrRUFBVTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsNERBQVk7QUFDM0I7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isc0RBQVM7QUFDakMsZUFBZSw2REFBSTtBQUNuQjtBQUNBOztBQUVvQztBQUNwQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2NvbG9yLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YXJuaW5nIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGhleCB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbG9yL2hleC5tanMnO1xuaW1wb3J0IHsgaHNsYSB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbG9yL2hzbGEubWpzJztcbmltcG9ydCB7IGhzbGFUb1JnYmEgfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9jb2xvci9oc2xhLXRvLXJnYmEubWpzJztcbmltcG9ydCB7IHJnYmEgfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9jb2xvci9yZ2JhLm1qcyc7XG5pbXBvcnQgeyBtaXhJbW1lZGlhdGUgfSBmcm9tICcuL2ltbWVkaWF0ZS5tanMnO1xuaW1wb3J0IHsgbWl4TnVtYmVyIH0gZnJvbSAnLi9udW1iZXIubWpzJztcblxuLy8gTGluZWFyIGNvbG9yIHNwYWNlIGJsZW5kaW5nXG4vLyBFeHBsYWluZWQgaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1MS25xRUNjZzZHd1xuLy8gRGVtb25zdHJhdGVkIGh0dHA6Ly9jb2RlcGVuLmlvL29zdWJsYWtlL3Blbi94R1ZWYU5cbmNvbnN0IG1peExpbmVhckNvbG9yID0gKGZyb20sIHRvLCB2KSA9PiB7XG4gICAgY29uc3QgZnJvbUV4cG8gPSBmcm9tICogZnJvbTtcbiAgICBjb25zdCBleHBvID0gdiAqICh0byAqIHRvIC0gZnJvbUV4cG8pICsgZnJvbUV4cG87XG4gICAgcmV0dXJuIGV4cG8gPCAwID8gMCA6IE1hdGguc3FydChleHBvKTtcbn07XG5jb25zdCBjb2xvclR5cGVzID0gW2hleCwgcmdiYSwgaHNsYV07XG5jb25zdCBnZXRDb2xvclR5cGUgPSAodikgPT4gY29sb3JUeXBlcy5maW5kKCh0eXBlKSA9PiB0eXBlLnRlc3QodikpO1xuZnVuY3Rpb24gYXNSR0JBKGNvbG9yKSB7XG4gICAgY29uc3QgdHlwZSA9IGdldENvbG9yVHlwZShjb2xvcik7XG4gICAgd2FybmluZyhCb29sZWFuKHR5cGUpLCBgJyR7Y29sb3J9JyBpcyBub3QgYW4gYW5pbWF0YWJsZSBjb2xvci4gVXNlIHRoZSBlcXVpdmFsZW50IGNvbG9yIGNvZGUgaW5zdGVhZC5gLCBcImNvbG9yLW5vdC1hbmltYXRhYmxlXCIpO1xuICAgIGlmICghQm9vbGVhbih0eXBlKSlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBtb2RlbCA9IHR5cGUucGFyc2UoY29sb3IpO1xuICAgIGlmICh0eXBlID09PSBoc2xhKSB7XG4gICAgICAgIC8vIFRPRE8gUmVtb3ZlIHRoaXMgY2FzdCAtIG5lZWRlZCBzaW5jZSBNb3Rpb24ncyBzdHJpY3RlciB0eXBpbmdcbiAgICAgICAgbW9kZWwgPSBoc2xhVG9SZ2JhKG1vZGVsKTtcbiAgICB9XG4gICAgcmV0dXJuIG1vZGVsO1xufVxuY29uc3QgbWl4Q29sb3IgPSAoZnJvbSwgdG8pID0+IHtcbiAgICBjb25zdCBmcm9tUkdCQSA9IGFzUkdCQShmcm9tKTtcbiAgICBjb25zdCB0b1JHQkEgPSBhc1JHQkEodG8pO1xuICAgIGlmICghZnJvbVJHQkEgfHwgIXRvUkdCQSkge1xuICAgICAgICByZXR1cm4gbWl4SW1tZWRpYXRlKGZyb20sIHRvKTtcbiAgICB9XG4gICAgY29uc3QgYmxlbmRlZCA9IHsgLi4uZnJvbVJHQkEgfTtcbiAgICByZXR1cm4gKHYpID0+IHtcbiAgICAgICAgYmxlbmRlZC5yZWQgPSBtaXhMaW5lYXJDb2xvcihmcm9tUkdCQS5yZWQsIHRvUkdCQS5yZWQsIHYpO1xuICAgICAgICBibGVuZGVkLmdyZWVuID0gbWl4TGluZWFyQ29sb3IoZnJvbVJHQkEuZ3JlZW4sIHRvUkdCQS5ncmVlbiwgdik7XG4gICAgICAgIGJsZW5kZWQuYmx1ZSA9IG1peExpbmVhckNvbG9yKGZyb21SR0JBLmJsdWUsIHRvUkdCQS5ibHVlLCB2KTtcbiAgICAgICAgYmxlbmRlZC5hbHBoYSA9IG1peE51bWJlcihmcm9tUkdCQS5hbHBoYSwgdG9SR0JBLmFscGhhLCB2KTtcbiAgICAgICAgcmV0dXJuIHJnYmEudHJhbnNmb3JtKGJsZW5kZWQpO1xuICAgIH07XG59O1xuXG5leHBvcnQgeyBtaXhDb2xvciwgbWl4TGluZWFyQ29sb3IgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbG9yLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/complex.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 */ getMixer: () => (/* binding */ getMixer),\n/* harmony export */ mixArray: () => (/* binding */ mixArray),\n/* harmony export */ mixComplex: () => (/* binding */ mixComplex),\n/* harmony export */ mixObject: () => (/* binding */ mixObject)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/utils/is-css-variable.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../value/types/color/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../value/types/complex/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _color_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./color.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs\");\n/* harmony import */ var _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./immediate.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _visibility_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs\");\n\n\n\n\n\n\n\n\n\nfunction mixNumber(a, b) {\n return (p) => (0,_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return (0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableToken)(a)\n ? _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate\n : _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__.color.test(a)\n ? _color_mjs__WEBPACK_IMPORTED_MODULE_4__.mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__.color.test(a) ? _color_mjs__WEBPACK_IMPORTED_MODULE_4__.mixColor : mixObject;\n }\n return _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n}\nfunction matchOrder(origin, target) {\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = origin.values[originIndex] ?? 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.complex.createTransformer(target);\n const originStats = (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.analyseComplexValue)(origin);\n const targetStats = (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.analyseComplexValue)(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n if ((_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.invisibleValues.has(origin) &&\n !targetStats.values.length) ||\n (_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.invisibleValues.has(target) &&\n !originStats.values.length)) {\n return (0,_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.mixVisibility)(origin, target);\n }\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_7__.pipe)(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\n }\n else {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_8__.warning)(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`, \"complex-values-different\");\n return (0,_immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate)(origin, target);\n }\n};\n\n\n//# sourceMappingURL=complex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC9jb21wbGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQTZDO0FBQ2tDO0FBQ3JCO0FBQ3lCO0FBQzVDO0FBQ1E7QUFDUztBQUNVOztBQUVsRTtBQUNBLGtCQUFrQixzREFBVztBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHdGQUFrQjtBQUNqQyxjQUFjLHdEQUFZO0FBQzFCLGNBQWMsK0RBQUs7QUFDbkIsa0JBQWtCLGdEQUFRO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsK0RBQUssV0FBVyxnREFBUTtBQUN2QztBQUNBLFdBQVcsd0RBQVk7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGVBQWU7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QixvQkFBb0IsMEJBQTBCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixtRUFBTztBQUM1Qix3QkFBd0IsbUZBQW1CO0FBQzNDLHdCQUF3QixtRkFBbUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLDREQUFlO0FBQzVCO0FBQ0EsYUFBYSw0REFBZTtBQUM1QjtBQUNBLG1CQUFtQiw4REFBYTtBQUNoQztBQUNBLGVBQWUsa0RBQUk7QUFDbkI7QUFDQTtBQUNBLFFBQVEscURBQU8sMEJBQTBCLE9BQU8sU0FBUyxPQUFPO0FBQ2hFLGVBQWUsNERBQVk7QUFDM0I7QUFDQTs7QUFFcUQ7QUFDckQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC9jb21wbGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwaXBlLCB3YXJuaW5nIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGlzQ1NTVmFyaWFibGVUb2tlbiB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi91dGlscy9pcy1jc3MtdmFyaWFibGUubWpzJztcbmltcG9ydCB7IGNvbG9yIH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvY29sb3IvaW5kZXgubWpzJztcbmltcG9ydCB7IGNvbXBsZXgsIGFuYWx5c2VDb21wbGV4VmFsdWUgfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9jb21wbGV4L2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBtaXhDb2xvciB9IGZyb20gJy4vY29sb3IubWpzJztcbmltcG9ydCB7IG1peEltbWVkaWF0ZSB9IGZyb20gJy4vaW1tZWRpYXRlLm1qcyc7XG5pbXBvcnQgeyBtaXhOdW1iZXIgYXMgbWl4TnVtYmVyJDEgfSBmcm9tICcuL251bWJlci5tanMnO1xuaW1wb3J0IHsgaW52aXNpYmxlVmFsdWVzLCBtaXhWaXNpYmlsaXR5IH0gZnJvbSAnLi92aXNpYmlsaXR5Lm1qcyc7XG5cbmZ1bmN0aW9uIG1peE51bWJlcihhLCBiKSB7XG4gICAgcmV0dXJuIChwKSA9PiBtaXhOdW1iZXIkMShhLCBiLCBwKTtcbn1cbmZ1bmN0aW9uIGdldE1peGVyKGEpIHtcbiAgICBpZiAodHlwZW9mIGEgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIG1peE51bWJlcjtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIGlzQ1NTVmFyaWFibGVUb2tlbihhKVxuICAgICAgICAgICAgPyBtaXhJbW1lZGlhdGVcbiAgICAgICAgICAgIDogY29sb3IudGVzdChhKVxuICAgICAgICAgICAgICAgID8gbWl4Q29sb3JcbiAgICAgICAgICAgICAgICA6IG1peENvbXBsZXg7XG4gICAgfVxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHtcbiAgICAgICAgcmV0dXJuIG1peEFycmF5O1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgYSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICByZXR1cm4gY29sb3IudGVzdChhKSA/IG1peENvbG9yIDogbWl4T2JqZWN0O1xuICAgIH1cbiAgICByZXR1cm4gbWl4SW1tZWRpYXRlO1xufVxuZnVuY3Rpb24gbWl4QXJyYXkoYSwgYikge1xuICAgIGNvbnN0IG91dHB1dCA9IFsuLi5hXTtcbiAgICBjb25zdCBudW1WYWx1ZXMgPSBvdXRwdXQubGVuZ3RoO1xuICAgIGNvbnN0IGJsZW5kVmFsdWUgPSBhLm1hcCgodiwgaSkgPT4gZ2V0TWl4ZXIodikodiwgYltpXSkpO1xuICAgIHJldHVybiAocCkgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVZhbHVlczsgaSsrKSB7XG4gICAgICAgICAgICBvdXRwdXRbaV0gPSBibGVuZFZhbHVlW2ldKHApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIG1peE9iamVjdChhLCBiKSB7XG4gICAgY29uc3Qgb3V0cHV0ID0geyAuLi5hLCAuLi5iIH07XG4gICAgY29uc3QgYmxlbmRWYWx1ZSA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIG91dHB1dCkge1xuICAgICAgICBpZiAoYVtrZXldICE9PSB1bmRlZmluZWQgJiYgYltrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGJsZW5kVmFsdWVba2V5XSA9IGdldE1peGVyKGFba2V5XSkoYVtrZXldLCBiW2tleV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiAodikgPT4ge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBibGVuZFZhbHVlKSB7XG4gICAgICAgICAgICBvdXRwdXRba2V5XSA9IGJsZW5kVmFsdWVba2V5XSh2KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH07XG59XG5mdW5jdGlvbiBtYXRjaE9yZGVyKG9yaWdpbiwgdGFyZ2V0KSB7XG4gICAgY29uc3Qgb3JkZXJlZE9yaWdpbiA9IFtdO1xuICAgIGNvbnN0IHBvaW50ZXJzID0geyBjb2xvcjogMCwgdmFyOiAwLCBudW1iZXI6IDAgfTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhcmdldC52YWx1ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdHlwZSA9IHRhcmdldC50eXBlc1tpXTtcbiAgICAgICAgY29uc3Qgb3JpZ2luSW5kZXggPSBvcmlnaW4uaW5kZXhlc1t0eXBlXVtwb2ludGVyc1t0eXBlXV07XG4gICAgICAgIGNvbnN0IG9yaWdpblZhbHVlID0gb3JpZ2luLnZhbHVlc1tvcmlnaW5JbmRleF0gPz8gMDtcbiAgICAgICAgb3JkZXJlZE9yaWdpbltpXSA9IG9yaWdpblZhbHVlO1xuICAgICAgICBwb2ludGVyc1t0eXBlXSsrO1xuICAgIH1cbiAgICByZXR1cm4gb3JkZXJlZE9yaWdpbjtcbn1cbmNvbnN0IG1peENvbXBsZXggPSAob3JpZ2luLCB0YXJnZXQpID0+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IGNvbXBsZXguY3JlYXRlVHJhbnNmb3JtZXIodGFyZ2V0KTtcbiAgICBjb25zdCBvcmlnaW5TdGF0cyA9IGFuYWx5c2VDb21wbGV4VmFsdWUob3JpZ2luKTtcbiAgICBjb25zdCB0YXJnZXRTdGF0cyA9IGFuYWx5c2VDb21wbGV4VmFsdWUodGFyZ2V0KTtcbiAgICBjb25zdCBjYW5JbnRlcnBvbGF0ZSA9IG9yaWdpblN0YXRzLmluZGV4ZXMudmFyLmxlbmd0aCA9PT0gdGFyZ2V0U3RhdHMuaW5kZXhlcy52YXIubGVuZ3RoICYmXG4gICAgICAgIG9yaWdpblN0YXRzLmluZGV4ZXMuY29sb3IubGVuZ3RoID09PSB0YXJnZXRTdGF0cy5pbmRleGVzLmNvbG9yLmxlbmd0aCAmJlxuICAgICAgICBvcmlnaW5TdGF0cy5pbmRleGVzLm51bWJlci5sZW5ndGggPj0gdGFyZ2V0U3RhdHMuaW5kZXhlcy5udW1iZXIubGVuZ3RoO1xuICAgIGlmIChjYW5JbnRlcnBvbGF0ZSkge1xuICAgICAgICBpZiAoKGludmlzaWJsZVZhbHVlcy5oYXMob3JpZ2luKSAmJlxuICAgICAgICAgICAgIXRhcmdldFN0YXRzLnZhbHVlcy5sZW5ndGgpIHx8XG4gICAgICAgICAgICAoaW52aXNpYmxlVmFsdWVzLmhhcyh0YXJnZXQpICYmXG4gICAgICAgICAgICAgICAgIW9yaWdpblN0YXRzLnZhbHVlcy5sZW5ndGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbWl4VmlzaWJpbGl0eShvcmlnaW4sIHRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBpcGUobWl4QXJyYXkobWF0Y2hPcmRlcihvcmlnaW5TdGF0cywgdGFyZ2V0U3RhdHMpLCB0YXJnZXRTdGF0cy52YWx1ZXMpLCB0ZW1wbGF0ZSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICB3YXJuaW5nKHRydWUsIGBDb21wbGV4IHZhbHVlcyAnJHtvcmlnaW59JyBhbmQgJyR7dGFyZ2V0fScgdG9vIGRpZmZlcmVudCB0byBtaXguIEVuc3VyZSBhbGwgY29sb3JzIGFyZSBvZiB0aGUgc2FtZSB0eXBlLCBhbmQgdGhhdCBlYWNoIGNvbnRhaW5zIHRoZSBzYW1lIHF1YW50aXR5IG9mIG51bWJlciBhbmQgY29sb3IgdmFsdWVzLiBGYWxsaW5nIGJhY2sgdG8gaW5zdGFudCB0cmFuc2l0aW9uLmAsIFwiY29tcGxleC12YWx1ZXMtZGlmZmVyZW50XCIpO1xuICAgICAgICByZXR1cm4gbWl4SW1tZWRpYXRlKG9yaWdpbiwgdGFyZ2V0KTtcbiAgICB9XG59O1xuXG5leHBvcnQgeyBnZXRNaXhlciwgbWl4QXJyYXksIG1peENvbXBsZXgsIG1peE9iamVjdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29tcGxleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/immediate.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 */ mixImmediate: () => (/* binding */ mixImmediate)\n/* harmony export */ });\nfunction mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\n\n\n//# sourceMappingURL=immediate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC9pbW1lZGlhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRXdCO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9taXgvaW1tZWRpYXRlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBtaXhJbW1lZGlhdGUoYSwgYikge1xuICAgIHJldHVybiAocCkgPT4gKHAgPiAwID8gYiA6IGEpO1xufVxuXG5leHBvcnQgeyBtaXhJbW1lZGlhdGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWltbWVkaWF0ZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/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 */ mix: () => (/* binding */ mix)\n/* harmony export */ });\n/* harmony import */ var _complex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./complex.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return (0,_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(from, to, p);\n }\n const mixer = (0,_complex_mjs__WEBPACK_IMPORTED_MODULE_1__.getMixer)(from);\n return mixer(from, to);\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXlDO0FBQ0E7O0FBRXpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxzREFBUztBQUN4QjtBQUNBLGtCQUFrQixzREFBUTtBQUMxQjtBQUNBOztBQUVlO0FBQ2YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0TWl4ZXIgfSBmcm9tICcuL2NvbXBsZXgubWpzJztcbmltcG9ydCB7IG1peE51bWJlciB9IGZyb20gJy4vbnVtYmVyLm1qcyc7XG5cbmZ1bmN0aW9uIG1peChmcm9tLCB0bywgcCkge1xuICAgIGlmICh0eXBlb2YgZnJvbSA9PT0gXCJudW1iZXJcIiAmJlxuICAgICAgICB0eXBlb2YgdG8gPT09IFwibnVtYmVyXCIgJiZcbiAgICAgICAgdHlwZW9mIHAgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgcmV0dXJuIG1peE51bWJlcihmcm9tLCB0bywgcCk7XG4gICAgfVxuICAgIGNvbnN0IG1peGVyID0gZ2V0TWl4ZXIoZnJvbSk7XG4gICAgcmV0dXJuIG1peGVyKGZyb20sIHRvKTtcbn1cblxuZXhwb3J0IHsgbWl4IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/number.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 */ mixNumber: () => (/* binding */ mixNumber)\n/* harmony export */ });\n/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\n\n//# sourceMappingURL=number.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC9udW1iZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFcUI7QUFDckIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC9udW1iZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gIFZhbHVlIGluIHJhbmdlIGZyb20gcHJvZ3Jlc3NcblxuICBHaXZlbiBhIGxvd2VyIGxpbWl0IGFuZCBhbiB1cHBlciBsaW1pdCwgd2UgcmV0dXJuIHRoZSB2YWx1ZSB3aXRoaW5cbiAgdGhhdCByYW5nZSBhcyBleHByZXNzZWQgYnkgcHJvZ3Jlc3MgKHVzdWFsbHkgYSBudW1iZXIgZnJvbSAwIHRvIDEpXG5cbiAgU28gcHJvZ3Jlc3MgPSAwLjUgd291bGQgY2hhbmdlXG5cbiAgZnJvbSAtLS0tLS0tLSB0b1xuXG4gIHRvXG5cbiAgZnJvbSAtLS0tIHRvXG5cbiAgRS5nLiBmcm9tID0gMTAsIHRvID0gMjAsIHByb2dyZXNzID0gMC41ID0+IDE1XG5cbiAgQHBhcmFtIFtudW1iZXJdOiBMb3dlciBsaW1pdCBvZiByYW5nZVxuICBAcGFyYW0gW251bWJlcl06IFVwcGVyIGxpbWl0IG9mIHJhbmdlXG4gIEBwYXJhbSBbbnVtYmVyXTogVGhlIHByb2dyZXNzIGJldHdlZW4gbG93ZXIgYW5kIHVwcGVyIGxpbWl0cyBleHByZXNzZWQgMC0xXG4gIEByZXR1cm4gW251bWJlcl06IFZhbHVlIGFzIGNhbGN1bGF0ZWQgZnJvbSBwcm9ncmVzcyB3aXRoaW4gcmFuZ2UgKG5vdCBsaW1pdGVkIHdpdGhpbiByYW5nZSlcbiovXG5jb25zdCBtaXhOdW1iZXIgPSAoZnJvbSwgdG8sIHByb2dyZXNzKSA9PiB7XG4gICAgcmV0dXJuIGZyb20gKyAodG8gLSBmcm9tKSAqIHByb2dyZXNzO1xufTtcblxuZXhwb3J0IHsgbWl4TnVtYmVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1udW1iZXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/visibility.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 */ invisibleValues: () => (/* binding */ invisibleValues),\n/* harmony export */ mixVisibility: () => (/* binding */ mixVisibility)\n/* harmony export */ });\nconst invisibleValues = new Set([\"none\", \"hidden\"]);\n/**\n * Returns a function that, when provided a progress value between 0 and 1,\n * will return the \"none\" or \"hidden\" string only when the progress is that of\n * the origin or target.\n */\nfunction mixVisibility(origin, target) {\n if (invisibleValues.has(origin)) {\n return (p) => (p <= 0 ? origin : target);\n }\n else {\n return (p) => (p >= 1 ? target : origin);\n }\n}\n\n\n//# sourceMappingURL=visibility.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC92aXNpYmlsaXR5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTBDO0FBQzFDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9taXgvdmlzaWJpbGl0eS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaW52aXNpYmxlVmFsdWVzID0gbmV3IFNldChbXCJub25lXCIsIFwiaGlkZGVuXCJdKTtcbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQsIHdoZW4gcHJvdmlkZWQgYSBwcm9ncmVzcyB2YWx1ZSBiZXR3ZWVuIDAgYW5kIDEsXG4gKiB3aWxsIHJldHVybiB0aGUgXCJub25lXCIgb3IgXCJoaWRkZW5cIiBzdHJpbmcgb25seSB3aGVuIHRoZSBwcm9ncmVzcyBpcyB0aGF0IG9mXG4gKiB0aGUgb3JpZ2luIG9yIHRhcmdldC5cbiAqL1xuZnVuY3Rpb24gbWl4VmlzaWJpbGl0eShvcmlnaW4sIHRhcmdldCkge1xuICAgIGlmIChpbnZpc2libGVWYWx1ZXMuaGFzKG9yaWdpbikpIHtcbiAgICAgICAgcmV0dXJuIChwKSA9PiAocCA8PSAwID8gb3JpZ2luIDogdGFyZ2V0KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHJldHVybiAocCkgPT4gKHAgPj0gMSA/IHRhcmdldCA6IG9yaWdpbik7XG4gICAgfVxufVxuXG5leHBvcnQgeyBpbnZpc2libGVWYWx1ZXMsIG1peFZpc2liaWxpdHkgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZpc2liaWxpdHkubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/resolve-elements.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 */ resolveElements: () => (/* binding */ resolveElements)\n/* harmony export */ });\nfunction resolveElements(elementOrSelector, scope, selectorCache) {\n if (elementOrSelector == null) {\n return [];\n }\n if (elementOrSelector instanceof EventTarget) {\n return [elementOrSelector];\n }\n else if (typeof elementOrSelector === \"string\") {\n let root = document;\n if (scope) {\n root = scope.current;\n }\n const elements = selectorCache?.[elementOrSelector] ??\n root.querySelectorAll(elementOrSelector);\n return elements ? Array.from(elements) : [];\n }\n return Array.from(elementOrSelector).filter((element) => element != null);\n}\n\n\n//# sourceMappingURL=resolve-elements.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3Jlc29sdmUtZWxlbWVudHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTJCO0FBQzNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9yZXNvbHZlLWVsZW1lbnRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiByZXNvbHZlRWxlbWVudHMoZWxlbWVudE9yU2VsZWN0b3IsIHNjb3BlLCBzZWxlY3RvckNhY2hlKSB7XG4gICAgaWYgKGVsZW1lbnRPclNlbGVjdG9yID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudE9yU2VsZWN0b3IgaW5zdGFuY2VvZiBFdmVudFRhcmdldCkge1xuICAgICAgICByZXR1cm4gW2VsZW1lbnRPclNlbGVjdG9yXTtcbiAgICB9XG4gICAgZWxzZSBpZiAodHlwZW9mIGVsZW1lbnRPclNlbGVjdG9yID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGxldCByb290ID0gZG9jdW1lbnQ7XG4gICAgICAgIGlmIChzY29wZSkge1xuICAgICAgICAgICAgcm9vdCA9IHNjb3BlLmN1cnJlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBzZWxlY3RvckNhY2hlPy5bZWxlbWVudE9yU2VsZWN0b3JdID8/XG4gICAgICAgICAgICByb290LnF1ZXJ5U2VsZWN0b3JBbGwoZWxlbWVudE9yU2VsZWN0b3IpO1xuICAgICAgICByZXR1cm4gZWxlbWVudHMgPyBBcnJheS5mcm9tKGVsZW1lbnRzKSA6IFtdO1xuICAgIH1cbiAgICByZXR1cm4gQXJyYXkuZnJvbShlbGVtZW50T3JTZWxlY3RvcikuZmlsdGVyKChlbGVtZW50KSA9PiBlbGVtZW50ICE9IG51bGwpO1xufVxuXG5leHBvcnQgeyByZXNvbHZlRWxlbWVudHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtZWxlbWVudHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/flags.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 */ supportsFlags: () => (/* binding */ supportsFlags)\n/* harmony export */ });\n/**\n * Add the ability for test suites to manually set support flags\n * to better test more environments.\n */\nconst supportsFlags = {};\n\n\n//# sourceMappingURL=flags.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL2ZsYWdzLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL2ZsYWdzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFkZCB0aGUgYWJpbGl0eSBmb3IgdGVzdCBzdWl0ZXMgdG8gbWFudWFsbHkgc2V0IHN1cHBvcnQgZmxhZ3NcbiAqIHRvIGJldHRlciB0ZXN0IG1vcmUgZW52aXJvbm1lbnRzLlxuICovXG5jb25zdCBzdXBwb3J0c0ZsYWdzID0ge307XG5cbmV4cG9ydCB7IHN1cHBvcnRzRmxhZ3MgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZsYWdzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/linear-easing.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 */ supportsLinearEasing: () => (/* binding */ supportsLinearEasing)\n/* harmony export */ });\n/* harmony import */ var _memo_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./memo.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs\");\n\n\nconst supportsLinearEasing = /*@__PURE__*/ (0,_memo_mjs__WEBPACK_IMPORTED_MODULE_0__.memoSupports)(() => {\n try {\n document\n .createElement(\"div\")\n .animate({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n }\n catch (e) {\n return false;\n }\n return true;\n}, \"linearEasing\");\n\n\n//# sourceMappingURL=linear-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL2xpbmVhci1lYXNpbmcubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTBDOztBQUUxQywyQ0FBMkMsdURBQVk7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFlBQVksSUFBSSx3QkFBd0I7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRStCO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9zdXBwb3J0cy9saW5lYXItZWFzaW5nLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZW1vU3VwcG9ydHMgfSBmcm9tICcuL21lbW8ubWpzJztcblxuY29uc3Qgc3VwcG9ydHNMaW5lYXJFYXNpbmcgPSAvKkBfX1BVUkVfXyovIG1lbW9TdXBwb3J0cygoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgICAgZG9jdW1lbnRcbiAgICAgICAgICAgIC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpXG4gICAgICAgICAgICAuYW5pbWF0ZSh7IG9wYWNpdHk6IDAgfSwgeyBlYXNpbmc6IFwibGluZWFyKDAsIDEpXCIgfSk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG59LCBcImxpbmVhckVhc2luZ1wiKTtcblxuZXhwb3J0IHsgc3VwcG9ydHNMaW5lYXJFYXNpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmVhci1lYXNpbmcubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/memo.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 */ memoSupports: () => (/* binding */ memoSupports)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/memo.mjs\");\n/* harmony import */ var _flags_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flags.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs\");\n\n\n\nfunction memoSupports(callback, supportsFlag) {\n const memoized = (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.memo)(callback);\n return () => _flags_mjs__WEBPACK_IMPORTED_MODULE_1__.supportsFlags[supportsFlag] ?? memoized();\n}\n\n\n//# sourceMappingURL=memo.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL21lbW8ubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvQztBQUNROztBQUU1QztBQUNBLHFCQUFxQixrREFBSTtBQUN6QixpQkFBaUIscURBQWE7QUFDOUI7O0FBRXdCO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9zdXBwb3J0cy9tZW1vLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZW1vIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IHN1cHBvcnRzRmxhZ3MgfSBmcm9tICcuL2ZsYWdzLm1qcyc7XG5cbmZ1bmN0aW9uIG1lbW9TdXBwb3J0cyhjYWxsYmFjaywgc3VwcG9ydHNGbGFnKSB7XG4gICAgY29uc3QgbWVtb2l6ZWQgPSBtZW1vKGNhbGxiYWNrKTtcbiAgICByZXR1cm4gKCkgPT4gc3VwcG9ydHNGbGFnc1tzdXBwb3J0c0ZsYWddID8/IG1lbW9pemVkKCk7XG59XG5cbmV4cG9ydCB7IG1lbW9TdXBwb3J0cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWVtby5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.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 */ supportsScrollTimeline: () => (/* binding */ supportsScrollTimeline)\n/* harmony export */ });\n/* harmony import */ var _memo_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./memo.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs\");\n\n\nconst supportsScrollTimeline = /* @__PURE__ */ (0,_memo_mjs__WEBPACK_IMPORTED_MODULE_0__.memoSupports)(() => window.ScrollTimeline !== undefined, \"scrollTimeline\");\n\n\n//# sourceMappingURL=scroll-timeline.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL3Njcm9sbC10aW1lbGluZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBMEM7O0FBRTFDLCtDQUErQyx1REFBWTs7QUFFekI7QUFDbEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL3Njcm9sbC10aW1lbGluZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtb1N1cHBvcnRzIH0gZnJvbSAnLi9tZW1vLm1qcyc7XG5cbmNvbnN0IHN1cHBvcnRzU2Nyb2xsVGltZWxpbmUgPSAvKiBAX19QVVJFX18gKi8gbWVtb1N1cHBvcnRzKCgpID0+IHdpbmRvdy5TY3JvbGxUaW1lbGluZSAhPT0gdW5kZWZpbmVkLCBcInNjcm9sbFRpbWVsaW5lXCIpO1xuXG5leHBvcnQgeyBzdXBwb3J0c1Njcm9sbFRpbWVsaW5lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY3JvbGwtdGltZWxpbmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/index.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/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 */ MotionValue: () => (/* binding */ MotionValue),\n/* harmony export */ collectMotionValues: () => (/* binding */ collectMotionValues),\n/* harmony export */ motionValue: () => (/* binding */ motionValue)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../frameloop/frame.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n */\n constructor(init, options = {}) {\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = null;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v) => {\n const currentTime = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n /**\n * If we're updating the value during another frame or eventloop\n * than the previous frame, then the we set the previous frame value\n * to current.\n */\n if (this.updatedAt !== currentTime) {\n this.setPrevFrameValue();\n }\n this.prev = this.current;\n this.setCurrent(v);\n // Update update subscribers\n if (this.current !== this.prev) {\n this.events.change?.notify(this.current);\n if (this.dependents) {\n for (const dependent of this.dependents) {\n dependent.dirty();\n }\n }\n }\n };\n this.hasAnimated = false;\n this.setCurrent(init);\n this.owner = options.owner;\n }\n setCurrent(current) {\n this.current = current;\n this.updatedAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n if (this.canTrackVelocity === null && current !== undefined) {\n this.canTrackVelocity = isFloat(this.current);\n }\n }\n setPrevFrameValue(prevFrameValue = this.current) {\n this.prevFrameValue = prevFrameValue;\n this.prevUpdatedAt = this.updatedAt;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (true) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warnOnce)(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new motion_utils__WEBPACK_IMPORTED_MODULE_2__.SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__.frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v) {\n if (!this.passiveEffect) {\n this.updateAndNotify(v);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = undefined;\n this.prevFrameValue = prev;\n this.prevUpdatedAt = this.updatedAt - delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v, endAnimation = true) {\n this.updateAndNotify(v);\n this.prev = v;\n this.prevUpdatedAt = this.prevFrameValue = undefined;\n endAnimation && this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n dirty() {\n this.events.change?.notify(this.current);\n }\n addDependent(dependent) {\n if (!this.dependents) {\n this.dependents = new Set();\n }\n this.dependents.add(dependent);\n }\n removeDependent(dependent) {\n if (this.dependents) {\n this.dependents.delete(dependent);\n }\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n const currentTime = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n if (!this.canTrackVelocity ||\n this.prevFrameValue === undefined ||\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n return 0;\n }\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n // Casts because of parseFloat's poor typing\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.velocityPerSecond)(parseFloat(this.current) -\n parseFloat(this.prevFrameValue), delta);\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.dependents?.clear();\n this.events.destroy?.notify();\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFnRjtBQUM5QjtBQUNIOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLDBEQUFJO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsMERBQUk7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxxQ0FBcUMsS0FBSztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pELFlBQVksc0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyw2REFBbUI7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHVEQUFLO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLDBEQUFJO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSwrREFBaUI7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXlEO0FBQ3pEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2Fybk9uY2UsIFN1YnNjcmlwdGlvbk1hbmFnZXIsIHZlbG9jaXR5UGVyU2Vjb25kIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi9mcmFtZWxvb3Avc3luYy10aW1lLm1qcyc7XG5pbXBvcnQgeyBmcmFtZSB9IGZyb20gJy4uL2ZyYW1lbG9vcC9mcmFtZS5tanMnO1xuXG4vKipcbiAqIE1heGltdW0gdGltZSBiZXR3ZWVuIHRoZSB2YWx1ZSBvZiB0d28gZnJhbWVzLCBiZXlvbmQgd2hpY2ggd2VcbiAqIGFzc3VtZSB0aGUgdmVsb2NpdHkgaGFzIHNpbmNlIGJlZW4gMC5cbiAqL1xuY29uc3QgTUFYX1ZFTE9DSVRZX0RFTFRBID0gMzA7XG5jb25zdCBpc0Zsb2F0ID0gKHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuICFpc05hTihwYXJzZUZsb2F0KHZhbHVlKSk7XG59O1xuY29uc3QgY29sbGVjdE1vdGlvblZhbHVlcyA9IHtcbiAgICBjdXJyZW50OiB1bmRlZmluZWQsXG59O1xuLyoqXG4gKiBgTW90aW9uVmFsdWVgIGlzIHVzZWQgdG8gdHJhY2sgdGhlIHN0YXRlIGFuZCB2ZWxvY2l0eSBvZiBtb3Rpb24gdmFsdWVzLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuY2xhc3MgTW90aW9uVmFsdWUge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBpbml0IC0gVGhlIGluaXRpYXRpbmcgdmFsdWVcbiAgICAgKiBAcGFyYW0gY29uZmlnIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBvcHRpb25zXG4gICAgICpcbiAgICAgKiAtICBgdHJhbnNmb3JtZXJgOiBBIGZ1bmN0aW9uIHRvIHRyYW5zZm9ybSBpbmNvbWluZyB2YWx1ZXMgd2l0aC5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihpbml0LCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyYWNrcyB3aGV0aGVyIHRoaXMgdmFsdWUgY2FuIG91dHB1dCBhIHZlbG9jaXR5LiBDdXJyZW50bHkgdGhpcyBpcyBvbmx5IHRydWVcbiAgICAgICAgICogaWYgdGhlIHZhbHVlIGlzIG51bWVyaWNhbCwgYnV0IHdlIG1pZ2h0IGJlIGFibGUgdG8gd2lkZW4gdGhlIHNjb3BlIGhlcmUgYW5kIHN1cHBvcnRcbiAgICAgICAgICogb3RoZXIgdmFsdWUgdHlwZXMuXG4gICAgICAgICAqXG4gICAgICAgICAqIEBpbnRlcm5hbFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5jYW5UcmFja1ZlbG9jaXR5ID0gbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFuIG9iamVjdCBjb250YWluaW5nIGEgU3Vic2NyaXB0aW9uTWFuYWdlciBmb3IgZWFjaCBhY3RpdmUgZXZlbnQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmV2ZW50cyA9IHt9O1xuICAgICAgICB0aGlzLnVwZGF0ZUFuZE5vdGlmeSA9ICh2KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50VGltZSA9IHRpbWUubm93KCk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlJ3JlIHVwZGF0aW5nIHRoZSB2YWx1ZSBkdXJpbmcgYW5vdGhlciBmcmFtZSBvciBldmVudGxvb3BcbiAgICAgICAgICAgICAqIHRoYW4gdGhlIHByZXZpb3VzIGZyYW1lLCB0aGVuIHRoZSB3ZSBzZXQgdGhlIHByZXZpb3VzIGZyYW1lIHZhbHVlXG4gICAgICAgICAgICAgKiB0byBjdXJyZW50LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy51cGRhdGVkQXQgIT09IGN1cnJlbnRUaW1lKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcmV2RnJhbWVWYWx1ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wcmV2ID0gdGhpcy5jdXJyZW50O1xuICAgICAgICAgICAgdGhpcy5zZXRDdXJyZW50KHYpO1xuICAgICAgICAgICAgLy8gVXBkYXRlIHVwZGF0ZSBzdWJzY3JpYmVyc1xuICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudCAhPT0gdGhpcy5wcmV2KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudHMuY2hhbmdlPy5ub3RpZnkodGhpcy5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZXBlbmRlbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZGVwZW5kZW50IG9mIHRoaXMuZGVwZW5kZW50cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kZW50LmRpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaGFzQW5pbWF0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50KGluaXQpO1xuICAgICAgICB0aGlzLm93bmVyID0gb3B0aW9ucy5vd25lcjtcbiAgICB9XG4gICAgc2V0Q3VycmVudChjdXJyZW50KSB7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IGN1cnJlbnQ7XG4gICAgICAgIHRoaXMudXBkYXRlZEF0ID0gdGltZS5ub3coKTtcbiAgICAgICAgaWYgKHRoaXMuY2FuVHJhY2tWZWxvY2l0eSA9PT0gbnVsbCAmJiBjdXJyZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2FuVHJhY2tWZWxvY2l0eSA9IGlzRmxvYXQodGhpcy5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXRQcmV2RnJhbWVWYWx1ZShwcmV2RnJhbWVWYWx1ZSA9IHRoaXMuY3VycmVudCkge1xuICAgICAgICB0aGlzLnByZXZGcmFtZVZhbHVlID0gcHJldkZyYW1lVmFsdWU7XG4gICAgICAgIHRoaXMucHJldlVwZGF0ZWRBdCA9IHRoaXMudXBkYXRlZEF0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIG5vdGlmaWVkIHdoZW4gdGhlIGBNb3Rpb25WYWx1ZWAgaXMgdXBkYXRlZC5cbiAgICAgKlxuICAgICAqIEl0IHJldHVybnMgYSBmdW5jdGlvbiB0aGF0LCB3aGVuIGNhbGxlZCwgd2lsbCBjYW5jZWwgdGhlIHN1YnNjcmlwdGlvbi5cbiAgICAgKlxuICAgICAqIFdoZW4gY2FsbGluZyBgb25DaGFuZ2VgIGluc2lkZSBhIFJlYWN0IGNvbXBvbmVudCwgaXQgc2hvdWxkIGJlIHdyYXBwZWQgd2l0aCB0aGVcbiAgICAgKiBgdXNlRWZmZWN0YCBob29rLiBBcyBpdCByZXR1cm5zIGFuIHVuc3Vic2NyaWJlIGZ1bmN0aW9uLCB0aGlzIHNob3VsZCBiZSByZXR1cm5lZFxuICAgICAqIGZyb20gdGhlIGB1c2VFZmZlY3RgIGZ1bmN0aW9uIHRvIGVuc3VyZSB5b3UgZG9uJ3QgYWRkIGR1cGxpY2F0ZSBzdWJzY3JpYmVycy4uXG4gICAgICpcbiAgICAgKiBgYGBqc3hcbiAgICAgKiBleHBvcnQgY29uc3QgTXlDb21wb25lbnQgPSAoKSA9PiB7XG4gICAgICogICBjb25zdCB4ID0gdXNlTW90aW9uVmFsdWUoMClcbiAgICAgKiAgIGNvbnN0IHkgPSB1c2VNb3Rpb25WYWx1ZSgwKVxuICAgICAqICAgY29uc3Qgb3BhY2l0eSA9IHVzZU1vdGlvblZhbHVlKDEpXG4gICAgICpcbiAgICAgKiAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICogICAgIGZ1bmN0aW9uIHVwZGF0ZU9wYWNpdHkoKSB7XG4gICAgICogICAgICAgY29uc3QgbWF4WFkgPSBNYXRoLm1heCh4LmdldCgpLCB5LmdldCgpKVxuICAgICAqICAgICAgIGNvbnN0IG5ld09wYWNpdHkgPSB0cmFuc2Zvcm0obWF4WFksIFswLCAxMDBdLCBbMSwgMF0pXG4gICAgICogICAgICAgb3BhY2l0eS5zZXQobmV3T3BhY2l0eSlcbiAgICAgKiAgICAgfVxuICAgICAqXG4gICAgICogICAgIGNvbnN0IHVuc3Vic2NyaWJlWCA9IHgub24oXCJjaGFuZ2VcIiwgdXBkYXRlT3BhY2l0eSlcbiAgICAgKiAgICAgY29uc3QgdW5zdWJzY3JpYmVZID0geS5vbihcImNoYW5nZVwiLCB1cGRhdGVPcGFjaXR5KVxuICAgICAqXG4gICAgICogICAgIHJldHVybiAoKSA9PiB7XG4gICAgICogICAgICAgdW5zdWJzY3JpYmVYKClcbiAgICAgKiAgICAgICB1bnN1YnNjcmliZVkoKVxuICAgICAqICAgICB9XG4gICAgICogICB9LCBbXSlcbiAgICAgKlxuICAgICAqICAgcmV0dXJuIDxtb3Rpb24uZGl2IHN0eWxlPXt7IHggfX0gLz5cbiAgICAgKiB9XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3Vic2NyaWJlciAtIEEgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyB0aGUgbGF0ZXN0IHZhbHVlLlxuICAgICAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdGhhdCwgd2hlbiBjYWxsZWQsIHdpbGwgY2FuY2VsIHRoaXMgc3Vic2NyaXB0aW9uLlxuICAgICAqXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBvbkNoYW5nZShzdWJzY3JpcHRpb24pIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgICAgICAgICAgd2Fybk9uY2UoZmFsc2UsIGB2YWx1ZS5vbkNoYW5nZShjYWxsYmFjaykgaXMgZGVwcmVjYXRlZC4gU3dpdGNoIHRvIHZhbHVlLm9uKFwiY2hhbmdlXCIsIGNhbGxiYWNrKS5gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5vbihcImNoYW5nZVwiLCBzdWJzY3JpcHRpb24pO1xuICAgIH1cbiAgICBvbihldmVudE5hbWUsIGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICghdGhpcy5ldmVudHNbZXZlbnROYW1lXSkge1xuICAgICAgICAgICAgdGhpcy5ldmVudHNbZXZlbnROYW1lXSA9IG5ldyBTdWJzY3JpcHRpb25NYW5hZ2VyKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSB0aGlzLmV2ZW50c1tldmVudE5hbWVdLmFkZChjYWxsYmFjayk7XG4gICAgICAgIGlmIChldmVudE5hbWUgPT09IFwiY2hhbmdlXCIpIHtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiB3ZSBoYXZlIG5vIG1vcmUgY2hhbmdlIGxpc3RlbmVycyBieSB0aGUgc3RhcnRcbiAgICAgICAgICAgICAgICAgKiBvZiB0aGUgbmV4dCBmcmFtZSwgc3RvcCBhY3RpdmUgYW5pbWF0aW9ucy5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBmcmFtZS5yZWFkKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmV2ZW50cy5jaGFuZ2UuZ2V0U2l6ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5zdWJzY3JpYmU7XG4gICAgfVxuICAgIGNsZWFyTGlzdGVuZXJzKCkge1xuICAgICAgICBmb3IgKGNvbnN0IGV2ZW50TWFuYWdlcnMgaW4gdGhpcy5ldmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzW2V2ZW50TWFuYWdlcnNdLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQXR0YWNoZXMgYSBwYXNzaXZlIGVmZmVjdCB0byB0aGUgYE1vdGlvblZhbHVlYC5cbiAgICAgKi9cbiAgICBhdHRhY2gocGFzc2l2ZUVmZmVjdCwgc3RvcFBhc3NpdmVFZmZlY3QpIHtcbiAgICAgICAgdGhpcy5wYXNzaXZlRWZmZWN0ID0gcGFzc2l2ZUVmZmVjdDtcbiAgICAgICAgdGhpcy5zdG9wUGFzc2l2ZUVmZmVjdCA9IHN0b3BQYXNzaXZlRWZmZWN0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzdGF0ZSBvZiB0aGUgYE1vdGlvblZhbHVlYC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICpcbiAgICAgKiBgYGBqc3hcbiAgICAgKiBjb25zdCB4ID0gdXNlTW90aW9uVmFsdWUoMClcbiAgICAgKiB4LnNldCgxMClcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBsYXRlc3QgLSBMYXRlc3QgdmFsdWUgdG8gc2V0LlxuICAgICAqIEBwYXJhbSByZW5kZXIgLSBXaGV0aGVyIHRvIG5vdGlmeSByZW5kZXIgc3Vic2NyaWJlcnMuIERlZmF1bHRzIHRvIGB0cnVlYFxuICAgICAqXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIHNldCh2KSB7XG4gICAgICAgIGlmICghdGhpcy5wYXNzaXZlRWZmZWN0KSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFuZE5vdGlmeSh2KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGFzc2l2ZUVmZmVjdCh2LCB0aGlzLnVwZGF0ZUFuZE5vdGlmeSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2V0V2l0aFZlbG9jaXR5KHByZXYsIGN1cnJlbnQsIGRlbHRhKSB7XG4gICAgICAgIHRoaXMuc2V0KGN1cnJlbnQpO1xuICAgICAgICB0aGlzLnByZXYgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMucHJldkZyYW1lVmFsdWUgPSBwcmV2O1xuICAgICAgICB0aGlzLnByZXZVcGRhdGVkQXQgPSB0aGlzLnVwZGF0ZWRBdCAtIGRlbHRhO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIHN0YXRlIG9mIHRoZSBgTW90aW9uVmFsdWVgLCBzdG9wcGluZyBhbnkgYWN0aXZlIGFuaW1hdGlvbnMsXG4gICAgICogZWZmZWN0cywgYW5kIHJlc2V0cyB2ZWxvY2l0eSB0byBgMGAuXG4gICAgICovXG4gICAganVtcCh2LCBlbmRBbmltYXRpb24gPSB0cnVlKSB7XG4gICAgICAgIHRoaXMudXBkYXRlQW5kTm90aWZ5KHYpO1xuICAgICAgICB0aGlzLnByZXYgPSB2O1xuICAgICAgICB0aGlzLnByZXZVcGRhdGVkQXQgPSB0aGlzLnByZXZGcmFtZVZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICBlbmRBbmltYXRpb24gJiYgdGhpcy5zdG9wKCk7XG4gICAgICAgIGlmICh0aGlzLnN0b3BQYXNzaXZlRWZmZWN0KVxuICAgICAgICAgICAgdGhpcy5zdG9wUGFzc2l2ZUVmZmVjdCgpO1xuICAgIH1cbiAgICBkaXJ0eSgpIHtcbiAgICAgICAgdGhpcy5ldmVudHMuY2hhbmdlPy5ub3RpZnkodGhpcy5jdXJyZW50KTtcbiAgICB9XG4gICAgYWRkRGVwZW5kZW50KGRlcGVuZGVudCkge1xuICAgICAgICBpZiAoIXRoaXMuZGVwZW5kZW50cykge1xuICAgICAgICAgICAgdGhpcy5kZXBlbmRlbnRzID0gbmV3IFNldCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGVwZW5kZW50cy5hZGQoZGVwZW5kZW50KTtcbiAgICB9XG4gICAgcmVtb3ZlRGVwZW5kZW50KGRlcGVuZGVudCkge1xuICAgICAgICBpZiAodGhpcy5kZXBlbmRlbnRzKSB7XG4gICAgICAgICAgICB0aGlzLmRlcGVuZGVudHMuZGVsZXRlKGRlcGVuZGVudCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbGF0ZXN0IHN0YXRlIG9mIGBNb3Rpb25WYWx1ZWBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIC0gVGhlIGxhdGVzdCBzdGF0ZSBvZiBgTW90aW9uVmFsdWVgXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgZ2V0KCkge1xuICAgICAgICBpZiAoY29sbGVjdE1vdGlvblZhbHVlcy5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb2xsZWN0TW90aW9uVmFsdWVzLmN1cnJlbnQucHVzaCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgZ2V0UHJldmlvdXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByZXY7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGxhdGVzdCB2ZWxvY2l0eSBvZiBgTW90aW9uVmFsdWVgXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyAtIFRoZSBsYXRlc3QgdmVsb2NpdHkgb2YgYE1vdGlvblZhbHVlYC4gUmV0dXJucyBgMGAgaWYgdGhlIHN0YXRlIGlzIG5vbi1udW1lcmljYWwuXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgZ2V0VmVsb2NpdHkoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gdGltZS5ub3coKTtcbiAgICAgICAgaWYgKCF0aGlzLmNhblRyYWNrVmVsb2NpdHkgfHxcbiAgICAgICAgICAgIHRoaXMucHJldkZyYW1lVmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgY3VycmVudFRpbWUgLSB0aGlzLnVwZGF0ZWRBdCA+IE1BWF9WRUxPQ0lUWV9ERUxUQSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGVsdGEgPSBNYXRoLm1pbih0aGlzLnVwZGF0ZWRBdCAtIHRoaXMucHJldlVwZGF0ZWRBdCwgTUFYX1ZFTE9DSVRZX0RFTFRBKTtcbiAgICAgICAgLy8gQ2FzdHMgYmVjYXVzZSBvZiBwYXJzZUZsb2F0J3MgcG9vciB0eXBpbmdcbiAgICAgICAgcmV0dXJuIHZlbG9jaXR5UGVyU2Vjb25kKHBhcnNlRmxvYXQodGhpcy5jdXJyZW50KSAtXG4gICAgICAgICAgICBwYXJzZUZsb2F0KHRoaXMucHJldkZyYW1lVmFsdWUpLCBkZWx0YSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVycyBhIG5ldyBhbmltYXRpb24gdG8gY29udHJvbCB0aGlzIGBNb3Rpb25WYWx1ZWAuIE9ubHkgb25lXG4gICAgICogYW5pbWF0aW9uIGNhbiBkcml2ZSBhIGBNb3Rpb25WYWx1ZWAgYXQgb25lIHRpbWUuXG4gICAgICpcbiAgICAgKiBgYGBqc3hcbiAgICAgKiB2YWx1ZS5zdGFydCgpXG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYW5pbWF0aW9uIC0gQSBmdW5jdGlvbiB0aGF0IHN0YXJ0cyB0aGUgcHJvdmlkZWQgYW5pbWF0aW9uXG4gICAgICovXG4gICAgc3RhcnQoc3RhcnRBbmltYXRpb24pIHtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYXNBbmltYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbiA9IHN0YXJ0QW5pbWF0aW9uKHJlc29sdmUpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZXZlbnRzLmFuaW1hdGlvblN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudHMuYW5pbWF0aW9uU3RhcnQubm90aWZ5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZXZlbnRzLmFuaW1hdGlvbkNvbXBsZXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudHMuYW5pbWF0aW9uQ29tcGxldGUubm90aWZ5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNsZWFyQW5pbWF0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTdG9wIHRoZSBjdXJyZW50bHkgYWN0aXZlIGFuaW1hdGlvbi5cbiAgICAgKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBzdG9wKCkge1xuICAgICAgICBpZiAodGhpcy5hbmltYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLnN0b3AoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmV2ZW50cy5hbmltYXRpb25DYW5jZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5hbmltYXRpb25DYW5jZWwubm90aWZ5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jbGVhckFuaW1hdGlvbigpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGlzIHZhbHVlIGlzIGN1cnJlbnRseSBhbmltYXRpbmcuXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgaXNBbmltYXRpbmcoKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuYW5pbWF0aW9uO1xuICAgIH1cbiAgICBjbGVhckFuaW1hdGlvbigpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuYW5pbWF0aW9uO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBEZXN0cm95IGFuZCBjbGVhbiB1cCBzdWJzY3JpYmVycyB0byB0aGlzIGBNb3Rpb25WYWx1ZWAuXG4gICAgICpcbiAgICAgKiBUaGUgYE1vdGlvblZhbHVlYCBob29rcyBsaWtlIGB1c2VNb3Rpb25WYWx1ZWAgYW5kIGB1c2VUcmFuc2Zvcm1gIGF1dG9tYXRpY2FsbHlcbiAgICAgKiBoYW5kbGUgdGhlIGxpZmVjeWNsZSBvZiB0aGUgcmV0dXJuZWQgYE1vdGlvblZhbHVlYCwgc28gdGhpcyBtZXRob2QgaXMgb25seSBuZWNlc3NhcnkgaWYgeW91J3ZlIG1hbnVhbGx5XG4gICAgICogY3JlYXRlZCBhIGBNb3Rpb25WYWx1ZWAgdmlhIHRoZSBgbW90aW9uVmFsdWVgIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVwZW5kZW50cz8uY2xlYXIoKTtcbiAgICAgICAgdGhpcy5ldmVudHMuZGVzdHJveT8ubm90aWZ5KCk7XG4gICAgICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgIGlmICh0aGlzLnN0b3BQYXNzaXZlRWZmZWN0KSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BQYXNzaXZlRWZmZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBtb3Rpb25WYWx1ZShpbml0LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5ldyBNb3Rpb25WYWx1ZShpbml0LCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IHsgTW90aW9uVmFsdWUsIGNvbGxlY3RNb3Rpb25WYWx1ZXMsIG1vdGlvblZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/auto.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/auto.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 */ auto: () => (/* binding */ auto)\n/* harmony export */ });\n/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\n\n//# sourceMappingURL=auto.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2F1dG8ubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZ0I7QUFDaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2F1dG8ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVmFsdWVUeXBlIGZvciBcImF1dG9cIlxuICovXG5jb25zdCBhdXRvID0ge1xuICAgIHRlc3Q6ICh2KSA9PiB2ID09PSBcImF1dG9cIixcbiAgICBwYXJzZTogKHYpID0+IHYsXG59O1xuXG5leHBvcnQgeyBhdXRvIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hdXRvLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/auto.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/hex.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 */ hex: () => (/* binding */ hex)\n/* harmony export */ });\n/* harmony import */ var _rgba_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rgba.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\n\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.isColorString)(\"#\"),\n parse: parseHex,\n transform: _rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba.transform,\n};\n\n\n//# sourceMappingURL=hex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL2hleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtDO0FBQ1U7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHlEQUFhO0FBQ3JDO0FBQ0EsZUFBZSwyQ0FBSTtBQUNuQjs7QUFFZTtBQUNmIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9jb2xvci9oZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJnYmEgfSBmcm9tICcuL3JnYmEubWpzJztcbmltcG9ydCB7IGlzQ29sb3JTdHJpbmcgfSBmcm9tICcuL3V0aWxzLm1qcyc7XG5cbmZ1bmN0aW9uIHBhcnNlSGV4KHYpIHtcbiAgICBsZXQgciA9IFwiXCI7XG4gICAgbGV0IGcgPSBcIlwiO1xuICAgIGxldCBiID0gXCJcIjtcbiAgICBsZXQgYSA9IFwiXCI7XG4gICAgLy8gSWYgd2UgaGF2ZSA2IGNoYXJhY3RlcnMsIGllICNGRjAwMDBcbiAgICBpZiAodi5sZW5ndGggPiA1KSB7XG4gICAgICAgIHIgPSB2LnN1YnN0cmluZygxLCAzKTtcbiAgICAgICAgZyA9IHYuc3Vic3RyaW5nKDMsIDUpO1xuICAgICAgICBiID0gdi5zdWJzdHJpbmcoNSwgNyk7XG4gICAgICAgIGEgPSB2LnN1YnN0cmluZyg3LCA5KTtcbiAgICAgICAgLy8gT3Igd2UgaGF2ZSAzIGNoYXJhY3RlcnMsIGllICNGMDBcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHIgPSB2LnN1YnN0cmluZygxLCAyKTtcbiAgICAgICAgZyA9IHYuc3Vic3RyaW5nKDIsIDMpO1xuICAgICAgICBiID0gdi5zdWJzdHJpbmcoMywgNCk7XG4gICAgICAgIGEgPSB2LnN1YnN0cmluZyg0LCA1KTtcbiAgICAgICAgciArPSByO1xuICAgICAgICBnICs9IGc7XG4gICAgICAgIGIgKz0gYjtcbiAgICAgICAgYSArPSBhO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICByZWQ6IHBhcnNlSW50KHIsIDE2KSxcbiAgICAgICAgZ3JlZW46IHBhcnNlSW50KGcsIDE2KSxcbiAgICAgICAgYmx1ZTogcGFyc2VJbnQoYiwgMTYpLFxuICAgICAgICBhbHBoYTogYSA/IHBhcnNlSW50KGEsIDE2KSAvIDI1NSA6IDEsXG4gICAgfTtcbn1cbmNvbnN0IGhleCA9IHtcbiAgICB0ZXN0OiAvKkBfX1BVUkVfXyovIGlzQ29sb3JTdHJpbmcoXCIjXCIpLFxuICAgIHBhcnNlOiBwYXJzZUhleCxcbiAgICB0cmFuc2Zvcm06IHJnYmEudHJhbnNmb3JtLFxufTtcblxuZXhwb3J0IHsgaGV4IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.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 */ hslaToRgba: () => (/* binding */ hslaToRgba)\n/* harmony export */ });\n// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\n\n//# sourceMappingURL=hsla-to-rgba.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL2hzbGEtdG8tcmdiYS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsbUNBQW1DO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzQjtBQUN0QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaHNsYS10by1yZ2JhLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vbWphY2tzb24vNTMxMTI1NlxuZnVuY3Rpb24gaHVlVG9SZ2IocCwgcSwgdCkge1xuICAgIGlmICh0IDwgMClcbiAgICAgICAgdCArPSAxO1xuICAgIGlmICh0ID4gMSlcbiAgICAgICAgdCAtPSAxO1xuICAgIGlmICh0IDwgMSAvIDYpXG4gICAgICAgIHJldHVybiBwICsgKHEgLSBwKSAqIDYgKiB0O1xuICAgIGlmICh0IDwgMSAvIDIpXG4gICAgICAgIHJldHVybiBxO1xuICAgIGlmICh0IDwgMiAvIDMpXG4gICAgICAgIHJldHVybiBwICsgKHEgLSBwKSAqICgyIC8gMyAtIHQpICogNjtcbiAgICByZXR1cm4gcDtcbn1cbmZ1bmN0aW9uIGhzbGFUb1JnYmEoeyBodWUsIHNhdHVyYXRpb24sIGxpZ2h0bmVzcywgYWxwaGEgfSkge1xuICAgIGh1ZSAvPSAzNjA7XG4gICAgc2F0dXJhdGlvbiAvPSAxMDA7XG4gICAgbGlnaHRuZXNzIC89IDEwMDtcbiAgICBsZXQgcmVkID0gMDtcbiAgICBsZXQgZ3JlZW4gPSAwO1xuICAgIGxldCBibHVlID0gMDtcbiAgICBpZiAoIXNhdHVyYXRpb24pIHtcbiAgICAgICAgcmVkID0gZ3JlZW4gPSBibHVlID0gbGlnaHRuZXNzO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgcSA9IGxpZ2h0bmVzcyA8IDAuNVxuICAgICAgICAgICAgPyBsaWdodG5lc3MgKiAoMSArIHNhdHVyYXRpb24pXG4gICAgICAgICAgICA6IGxpZ2h0bmVzcyArIHNhdHVyYXRpb24gLSBsaWdodG5lc3MgKiBzYXR1cmF0aW9uO1xuICAgICAgICBjb25zdCBwID0gMiAqIGxpZ2h0bmVzcyAtIHE7XG4gICAgICAgIHJlZCA9IGh1ZVRvUmdiKHAsIHEsIGh1ZSArIDEgLyAzKTtcbiAgICAgICAgZ3JlZW4gPSBodWVUb1JnYihwLCBxLCBodWUpO1xuICAgICAgICBibHVlID0gaHVlVG9SZ2IocCwgcSwgaHVlIC0gMSAvIDMpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICByZWQ6IE1hdGgucm91bmQocmVkICogMjU1KSxcbiAgICAgICAgZ3JlZW46IE1hdGgucm91bmQoZ3JlZW4gKiAyNTUpLFxuICAgICAgICBibHVlOiBNYXRoLnJvdW5kKGJsdWUgKiAyNTUpLFxuICAgICAgICBhbHBoYSxcbiAgICB9O1xufVxuXG5leHBvcnQgeyBoc2xhVG9SZ2JhIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oc2xhLXRvLXJnYmEubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/hsla.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 */ hsla: () => (/* binding */ hsla)\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\n\n\n\n\nconst hsla = {\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.isColorString)(\"hsl\", \"hue\"),\n parse: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.splitColor)(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent.transform((0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(saturation)) +\n \", \" +\n _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent.transform((0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(lightness)) +\n \", \" +\n (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\n\n//# sourceMappingURL=hsla.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL2hzbGEubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTZDO0FBQ0U7QUFDRTtBQUNPOztBQUV4RDtBQUNBLHdCQUF3Qix5REFBYTtBQUNyQyx5QkFBeUIsc0RBQVU7QUFDbkMsa0JBQWtCLGdEQUFnRDtBQUNsRTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHVEQUFPLFdBQVcsNkRBQVE7QUFDdEM7QUFDQSxZQUFZLHVEQUFPLFdBQVcsNkRBQVE7QUFDdEM7QUFDQSxZQUFZLDZEQUFRLENBQUMscURBQUs7QUFDMUI7QUFDQSxLQUFLO0FBQ0w7O0FBRWdCO0FBQ2hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9jb2xvci9oc2xhLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbHBoYSB9IGZyb20gJy4uL251bWJlcnMvaW5kZXgubWpzJztcbmltcG9ydCB7IHBlcmNlbnQgfSBmcm9tICcuLi9udW1iZXJzL3VuaXRzLm1qcyc7XG5pbXBvcnQgeyBzYW5pdGl6ZSB9IGZyb20gJy4uL3V0aWxzL3Nhbml0aXplLm1qcyc7XG5pbXBvcnQgeyBpc0NvbG9yU3RyaW5nLCBzcGxpdENvbG9yIH0gZnJvbSAnLi91dGlscy5tanMnO1xuXG5jb25zdCBoc2xhID0ge1xuICAgIHRlc3Q6IC8qQF9fUFVSRV9fKi8gaXNDb2xvclN0cmluZyhcImhzbFwiLCBcImh1ZVwiKSxcbiAgICBwYXJzZTogLypAX19QVVJFX18qLyBzcGxpdENvbG9yKFwiaHVlXCIsIFwic2F0dXJhdGlvblwiLCBcImxpZ2h0bmVzc1wiKSxcbiAgICB0cmFuc2Zvcm06ICh7IGh1ZSwgc2F0dXJhdGlvbiwgbGlnaHRuZXNzLCBhbHBoYTogYWxwaGEkMSA9IDEgfSkgPT4ge1xuICAgICAgICByZXR1cm4gKFwiaHNsYShcIiArXG4gICAgICAgICAgICBNYXRoLnJvdW5kKGh1ZSkgK1xuICAgICAgICAgICAgXCIsIFwiICtcbiAgICAgICAgICAgIHBlcmNlbnQudHJhbnNmb3JtKHNhbml0aXplKHNhdHVyYXRpb24pKSArXG4gICAgICAgICAgICBcIiwgXCIgK1xuICAgICAgICAgICAgcGVyY2VudC50cmFuc2Zvcm0oc2FuaXRpemUobGlnaHRuZXNzKSkgK1xuICAgICAgICAgICAgXCIsIFwiICtcbiAgICAgICAgICAgIHNhbml0aXplKGFscGhhLnRyYW5zZm9ybShhbHBoYSQxKSkgK1xuICAgICAgICAgICAgXCIpXCIpO1xuICAgIH0sXG59O1xuXG5leHBvcnQgeyBoc2xhIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oc2xhLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/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 */ color: () => (/* binding */ color)\n/* harmony export */ });\n/* harmony import */ var _hex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hex.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\");\n/* harmony import */ var _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hsla.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\");\n/* harmony import */ var _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rgba.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n\n\n\n\nconst color = {\n test: (v) => _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.test(v) || _hex_mjs__WEBPACK_IMPORTED_MODULE_1__.hex.test(v) || _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.test(v),\n parse: (v) => {\n if (_rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.test(v)) {\n return _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.parse(v);\n }\n else if (_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.test(v)) {\n return _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.parse(v);\n }\n else {\n return _hex_mjs__WEBPACK_IMPORTED_MODULE_1__.hex.parse(v);\n }\n },\n transform: (v) => {\n return typeof v === \"string\"\n ? v\n : v.hasOwnProperty(\"red\")\n ? _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.transform(v)\n : _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.transform(v);\n },\n getAnimatableNone: (v) => {\n const parsed = color.parse(v);\n parsed.alpha = 0;\n return color.transform(parsed);\n },\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQWdDO0FBQ0U7QUFDQTs7QUFFbEM7QUFDQSxpQkFBaUIsMkNBQUksWUFBWSx5Q0FBRyxZQUFZLDJDQUFJO0FBQ3BEO0FBQ0EsWUFBWSwyQ0FBSTtBQUNoQixtQkFBbUIsMkNBQUk7QUFDdkI7QUFDQSxpQkFBaUIsMkNBQUk7QUFDckIsbUJBQW1CLDJDQUFJO0FBQ3ZCO0FBQ0E7QUFDQSxtQkFBbUIseUNBQUc7QUFDdEI7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsMkNBQUk7QUFDdEIsa0JBQWtCLDJDQUFJO0FBQ3RCLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFaUI7QUFDakIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoZXggfSBmcm9tICcuL2hleC5tanMnO1xuaW1wb3J0IHsgaHNsYSB9IGZyb20gJy4vaHNsYS5tanMnO1xuaW1wb3J0IHsgcmdiYSB9IGZyb20gJy4vcmdiYS5tanMnO1xuXG5jb25zdCBjb2xvciA9IHtcbiAgICB0ZXN0OiAodikgPT4gcmdiYS50ZXN0KHYpIHx8IGhleC50ZXN0KHYpIHx8IGhzbGEudGVzdCh2KSxcbiAgICBwYXJzZTogKHYpID0+IHtcbiAgICAgICAgaWYgKHJnYmEudGVzdCh2KSkge1xuICAgICAgICAgICAgcmV0dXJuIHJnYmEucGFyc2Uodik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaHNsYS50ZXN0KHYpKSB7XG4gICAgICAgICAgICByZXR1cm4gaHNsYS5wYXJzZSh2KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBoZXgucGFyc2Uodik7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHRyYW5zZm9ybTogKHYpID0+IHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IHZcbiAgICAgICAgICAgIDogdi5oYXNPd25Qcm9wZXJ0eShcInJlZFwiKVxuICAgICAgICAgICAgICAgID8gcmdiYS50cmFuc2Zvcm0odilcbiAgICAgICAgICAgICAgICA6IGhzbGEudHJhbnNmb3JtKHYpO1xuICAgIH0sXG4gICAgZ2V0QW5pbWF0YWJsZU5vbmU6ICh2KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IGNvbG9yLnBhcnNlKHYpO1xuICAgICAgICBwYXJzZWQuYWxwaGEgPSAwO1xuICAgICAgICByZXR1cm4gY29sb3IudHJhbnNmb3JtKHBhcnNlZCk7XG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IGNvbG9yIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/rgba.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 */ rgbUnit: () => (/* binding */ rgbUnit),\n/* harmony export */ rgba: () => (/* binding */ rgba)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\n\n\n\n\nconst clampRgbUnit = (v) => (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(0, 255, v);\nconst rgbUnit = {\n ..._numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.isColorString)(\"rgb\", \"red\"),\n parse: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.splitColor)(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__.sanitize)(_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.alpha.transform(alpha$1)) +\n \")\",\n};\n\n\n//# sourceMappingURL=rgba.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL3JnYmEubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFxQztBQUNnQjtBQUNKO0FBQ087O0FBRXhELDRCQUE0QixtREFBSztBQUNqQztBQUNBLE9BQU8sc0RBQU07QUFDYjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IseURBQWE7QUFDckMseUJBQXlCLHNEQUFVO0FBQ25DLGtCQUFrQixzQ0FBc0M7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw2REFBUSxDQUFDLHFEQUFLO0FBQ3RCO0FBQ0E7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9jb2xvci9yZ2JhLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbGFtcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBudW1iZXIsIGFscGhhIH0gZnJvbSAnLi4vbnVtYmVycy9pbmRleC5tanMnO1xuaW1wb3J0IHsgc2FuaXRpemUgfSBmcm9tICcuLi91dGlscy9zYW5pdGl6ZS5tanMnO1xuaW1wb3J0IHsgaXNDb2xvclN0cmluZywgc3BsaXRDb2xvciB9IGZyb20gJy4vdXRpbHMubWpzJztcblxuY29uc3QgY2xhbXBSZ2JVbml0ID0gKHYpID0+IGNsYW1wKDAsIDI1NSwgdik7XG5jb25zdCByZ2JVbml0ID0ge1xuICAgIC4uLm51bWJlcixcbiAgICB0cmFuc2Zvcm06ICh2KSA9PiBNYXRoLnJvdW5kKGNsYW1wUmdiVW5pdCh2KSksXG59O1xuY29uc3QgcmdiYSA9IHtcbiAgICB0ZXN0OiAvKkBfX1BVUkVfXyovIGlzQ29sb3JTdHJpbmcoXCJyZ2JcIiwgXCJyZWRcIiksXG4gICAgcGFyc2U6IC8qQF9fUFVSRV9fKi8gc3BsaXRDb2xvcihcInJlZFwiLCBcImdyZWVuXCIsIFwiYmx1ZVwiKSxcbiAgICB0cmFuc2Zvcm06ICh7IHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhOiBhbHBoYSQxID0gMSB9KSA9PiBcInJnYmEoXCIgK1xuICAgICAgICByZ2JVbml0LnRyYW5zZm9ybShyZWQpICtcbiAgICAgICAgXCIsIFwiICtcbiAgICAgICAgcmdiVW5pdC50cmFuc2Zvcm0oZ3JlZW4pICtcbiAgICAgICAgXCIsIFwiICtcbiAgICAgICAgcmdiVW5pdC50cmFuc2Zvcm0oYmx1ZSkgK1xuICAgICAgICBcIiwgXCIgK1xuICAgICAgICBzYW5pdGl6ZShhbHBoYS50cmFuc2Zvcm0oYWxwaGEkMSkpICtcbiAgICAgICAgXCIpXCIsXG59O1xuXG5leHBvcnQgeyByZ2JVbml0LCByZ2JhIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZ2JhLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/utils.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 */ isColorString: () => (/* binding */ isColorString),\n/* harmony export */ splitColor: () => (/* binding */ splitColor)\n/* harmony export */ });\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n/* harmony import */ var _utils_is_nullish_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/is-nullish.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs\");\n/* harmony import */ var _utils_single_color_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/single-color-regex.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs\");\n\n\n\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((typeof v === \"string\" &&\n _utils_single_color_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.singleColorRegex.test(v) &&\n v.startsWith(type)) ||\n (testProp &&\n !(0,_utils_is_nullish_mjs__WEBPACK_IMPORTED_MODULE_1__.isNullish)(v) &&\n Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (typeof v !== \"string\")\n return v;\n const [a, b, c, alpha] = v.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_2__.floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL3V0aWxzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFzRDtBQUNGO0FBQ2U7O0FBRW5FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsMkVBQWdCO0FBQ3hCO0FBQ0E7QUFDQSxhQUFhLGdFQUFTO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsOERBQVU7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXFDO0FBQ3JDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9jb2xvci91dGlscy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmxvYXRSZWdleCB9IGZyb20gJy4uL3V0aWxzL2Zsb2F0LXJlZ2V4Lm1qcyc7XG5pbXBvcnQgeyBpc051bGxpc2ggfSBmcm9tICcuLi91dGlscy9pcy1udWxsaXNoLm1qcyc7XG5pbXBvcnQgeyBzaW5nbGVDb2xvclJlZ2V4IH0gZnJvbSAnLi4vdXRpbHMvc2luZ2xlLWNvbG9yLXJlZ2V4Lm1qcyc7XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBwcm92aWRlZCBzdHJpbmcgaXMgYSBjb2xvciwgaWUgcmdiYSgwLDAsMCwwKSBvciAjMDAwLFxuICogYnV0IGZhbHNlIGlmIGEgbnVtYmVyIG9yIG11bHRpcGxlIGNvbG9yc1xuICovXG5jb25zdCBpc0NvbG9yU3RyaW5nID0gKHR5cGUsIHRlc3RQcm9wKSA9PiAodikgPT4ge1xuICAgIHJldHVybiBCb29sZWFuKCh0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICBzaW5nbGVDb2xvclJlZ2V4LnRlc3QodikgJiZcbiAgICAgICAgdi5zdGFydHNXaXRoKHR5cGUpKSB8fFxuICAgICAgICAodGVzdFByb3AgJiZcbiAgICAgICAgICAgICFpc051bGxpc2godikgJiZcbiAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2LCB0ZXN0UHJvcCkpKTtcbn07XG5jb25zdCBzcGxpdENvbG9yID0gKGFOYW1lLCBiTmFtZSwgY05hbWUpID0+ICh2KSA9PiB7XG4gICAgaWYgKHR5cGVvZiB2ICE9PSBcInN0cmluZ1wiKVxuICAgICAgICByZXR1cm4gdjtcbiAgICBjb25zdCBbYSwgYiwgYywgYWxwaGFdID0gdi5tYXRjaChmbG9hdFJlZ2V4KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBbYU5hbWVdOiBwYXJzZUZsb2F0KGEpLFxuICAgICAgICBbYk5hbWVdOiBwYXJzZUZsb2F0KGIpLFxuICAgICAgICBbY05hbWVdOiBwYXJzZUZsb2F0KGMpLFxuICAgICAgICBhbHBoYTogYWxwaGEgIT09IHVuZGVmaW5lZCA/IHBhcnNlRmxvYXQoYWxwaGEpIDogMSxcbiAgICB9O1xufTtcblxuZXhwb3J0IHsgaXNDb2xvclN0cmluZywgc3BsaXRDb2xvciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/complex/filter.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 */ filter: () => (/* binding */ filter)\n/* harmony export */ });\n/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n\n\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n ..._index_mjs__WEBPACK_IMPORTED_MODULE_1__.complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\n\n//# sourceMappingURL=filter.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbXBsZXgvZmlsdGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBc0M7QUFDZ0I7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsOERBQVU7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLCtDQUFPO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVrQjtBQUNsQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29tcGxleC9maWx0ZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBsZXggfSBmcm9tICcuL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBmbG9hdFJlZ2V4IH0gZnJvbSAnLi4vdXRpbHMvZmxvYXQtcmVnZXgubWpzJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRoYXQgc2hvdWxkIGRlZmF1bHQgdG8gMSBvciAxMDAlXG4gKi9cbmNvbnN0IG1heERlZmF1bHRzID0gbmV3IFNldChbXCJicmlnaHRuZXNzXCIsIFwiY29udHJhc3RcIiwgXCJzYXR1cmF0ZVwiLCBcIm9wYWNpdHlcIl0pO1xuZnVuY3Rpb24gYXBwbHlEZWZhdWx0RmlsdGVyKHYpIHtcbiAgICBjb25zdCBbbmFtZSwgdmFsdWVdID0gdi5zbGljZSgwLCAtMSkuc3BsaXQoXCIoXCIpO1xuICAgIGlmIChuYW1lID09PSBcImRyb3Atc2hhZG93XCIpXG4gICAgICAgIHJldHVybiB2O1xuICAgIGNvbnN0IFtudW1iZXJdID0gdmFsdWUubWF0Y2goZmxvYXRSZWdleCkgfHwgW107XG4gICAgaWYgKCFudW1iZXIpXG4gICAgICAgIHJldHVybiB2O1xuICAgIGNvbnN0IHVuaXQgPSB2YWx1ZS5yZXBsYWNlKG51bWJlciwgXCJcIik7XG4gICAgbGV0IGRlZmF1bHRWYWx1ZSA9IG1heERlZmF1bHRzLmhhcyhuYW1lKSA/IDEgOiAwO1xuICAgIGlmIChudW1iZXIgIT09IHZhbHVlKVxuICAgICAgICBkZWZhdWx0VmFsdWUgKj0gMTAwO1xuICAgIHJldHVybiBuYW1lICsgXCIoXCIgKyBkZWZhdWx0VmFsdWUgKyB1bml0ICsgXCIpXCI7XG59XG5jb25zdCBmdW5jdGlvblJlZ2V4ID0gL1xcYihbYS16LV0qKVxcKC4qP1xcKS9ndTtcbmNvbnN0IGZpbHRlciA9IHtcbiAgICAuLi5jb21wbGV4LFxuICAgIGdldEFuaW1hdGFibGVOb25lOiAodikgPT4ge1xuICAgICAgICBjb25zdCBmdW5jdGlvbnMgPSB2Lm1hdGNoKGZ1bmN0aW9uUmVnZXgpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb25zID8gZnVuY3Rpb25zLm1hcChhcHBseURlZmF1bHRGaWx0ZXIpLmpvaW4oXCIgXCIpIDogdjtcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgZmlsdGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1maWx0ZXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/complex/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 */ analyseComplexValue: () => (/* binding */ analyseComplexValue),\n/* harmony export */ complex: () => (/* binding */ complex)\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../color/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _utils_color_regex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/color-regex.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs\");\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n\n\n\n\n\nfunction test(v) {\n return (isNaN(v) &&\n typeof v === \"string\" &&\n (v.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.floatRegex)?.length || 0) +\n (v.match(_utils_color_regex_mjs__WEBPACK_IMPORTED_MODULE_1__.colorRegex)?.length || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (_color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(_color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__.sanitize)(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.test(v) ? _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.getAnimatableNone(v) : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUEyQztBQUNXO0FBQ0E7QUFDTDs7QUFFakQ7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDhEQUFVO0FBQzNCLHFCQUFxQiw4REFBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQSxzSEFBc0gsSUFBSSxxQ0FBcUMsRUFBRTtBQUNqSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxtREFBSztBQUNqQjtBQUNBO0FBQ0Esd0JBQXdCLG1EQUFLO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGVBQWU7QUFDM0I7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGlCQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qiw2REFBUTtBQUN0QztBQUNBO0FBQ0EsOEJBQThCLG1EQUFLO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdFQUFnRSxtREFBSyxXQUFXLG1EQUFLO0FBQ3JGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXdDO0FBQ3hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9jb21wbGV4L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2xvciB9IGZyb20gJy4uL2NvbG9yL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBjb2xvclJlZ2V4IH0gZnJvbSAnLi4vdXRpbHMvY29sb3ItcmVnZXgubWpzJztcbmltcG9ydCB7IGZsb2F0UmVnZXggfSBmcm9tICcuLi91dGlscy9mbG9hdC1yZWdleC5tanMnO1xuaW1wb3J0IHsgc2FuaXRpemUgfSBmcm9tICcuLi91dGlscy9zYW5pdGl6ZS5tanMnO1xuXG5mdW5jdGlvbiB0ZXN0KHYpIHtcbiAgICByZXR1cm4gKGlzTmFOKHYpICYmXG4gICAgICAgIHR5cGVvZiB2ID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICh2Lm1hdGNoKGZsb2F0UmVnZXgpPy5sZW5ndGggfHwgMCkgK1xuICAgICAgICAgICAgKHYubWF0Y2goY29sb3JSZWdleCk/Lmxlbmd0aCB8fCAwKSA+XG4gICAgICAgICAgICAwKTtcbn1cbmNvbnN0IE5VTUJFUl9UT0tFTiA9IFwibnVtYmVyXCI7XG5jb25zdCBDT0xPUl9UT0tFTiA9IFwiY29sb3JcIjtcbmNvbnN0IFZBUl9UT0tFTiA9IFwidmFyXCI7XG5jb25zdCBWQVJfRlVOQ1RJT05fVE9LRU4gPSBcInZhcihcIjtcbmNvbnN0IFNQTElUX1RPS0VOID0gXCIke31cIjtcbi8vIHRoaXMgcmVnZXggY29uc2lzdHMgb2YgdGhlIGBzaW5nbGVDc3NWYXJpYWJsZVJlZ2V4fHJnYkhTTFZhbHVlUmVnZXh8ZGlnaXRSZWdleGBcbmNvbnN0IGNvbXBsZXhSZWdleCA9IC92YXJcXHMqXFwoXFxzKi0tKD86W1xcdy1dK1xccyp8W1xcdy1dK1xccyosKD86XFxzKlteKShcXHNdfFxccypcXCgoPzpbXikoXXxcXChbXikoXSpcXCkpKlxcKSkrXFxzKilcXCl8I1tcXGRhLWZdezMsOH18KD86cmdifGhzbClhP1xcKCg/Oi0/W1xcZC5dKyU/WyxcXHNdKyl7Mn0tP1tcXGQuXSslP1xccyooPzpbLC9dXFxzKik/KD86XFxiXFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKT8lP1xcKXwtPyg/OlxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKykvZ2l1O1xuZnVuY3Rpb24gYW5hbHlzZUNvbXBsZXhWYWx1ZSh2YWx1ZSkge1xuICAgIGNvbnN0IG9yaWdpbmFsVmFsdWUgPSB2YWx1ZS50b1N0cmluZygpO1xuICAgIGNvbnN0IHZhbHVlcyA9IFtdO1xuICAgIGNvbnN0IGluZGV4ZXMgPSB7XG4gICAgICAgIGNvbG9yOiBbXSxcbiAgICAgICAgbnVtYmVyOiBbXSxcbiAgICAgICAgdmFyOiBbXSxcbiAgICB9O1xuICAgIGNvbnN0IHR5cGVzID0gW107XG4gICAgbGV0IGkgPSAwO1xuICAgIGNvbnN0IHRva2VuaXNlZCA9IG9yaWdpbmFsVmFsdWUucmVwbGFjZShjb21wbGV4UmVnZXgsIChwYXJzZWRWYWx1ZSkgPT4ge1xuICAgICAgICBpZiAoY29sb3IudGVzdChwYXJzZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgIGluZGV4ZXMuY29sb3IucHVzaChpKTtcbiAgICAgICAgICAgIHR5cGVzLnB1c2goQ09MT1JfVE9LRU4pO1xuICAgICAgICAgICAgdmFsdWVzLnB1c2goY29sb3IucGFyc2UocGFyc2VkVmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwYXJzZWRWYWx1ZS5zdGFydHNXaXRoKFZBUl9GVU5DVElPTl9UT0tFTikpIHtcbiAgICAgICAgICAgIGluZGV4ZXMudmFyLnB1c2goaSk7XG4gICAgICAgICAgICB0eXBlcy5wdXNoKFZBUl9UT0tFTik7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaChwYXJzZWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpbmRleGVzLm51bWJlci5wdXNoKGkpO1xuICAgICAgICAgICAgdHlwZXMucHVzaChOVU1CRVJfVE9LRU4pO1xuICAgICAgICAgICAgdmFsdWVzLnB1c2gocGFyc2VGbG9hdChwYXJzZWRWYWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgICsraTtcbiAgICAgICAgcmV0dXJuIFNQTElUX1RPS0VOO1xuICAgIH0pO1xuICAgIGNvbnN0IHNwbGl0ID0gdG9rZW5pc2VkLnNwbGl0KFNQTElUX1RPS0VOKTtcbiAgICByZXR1cm4geyB2YWx1ZXMsIHNwbGl0LCBpbmRleGVzLCB0eXBlcyB9O1xufVxuZnVuY3Rpb24gcGFyc2VDb21wbGV4VmFsdWUodikge1xuICAgIHJldHVybiBhbmFseXNlQ29tcGxleFZhbHVlKHYpLnZhbHVlcztcbn1cbmZ1bmN0aW9uIGNyZWF0ZVRyYW5zZm9ybWVyKHNvdXJjZSkge1xuICAgIGNvbnN0IHsgc3BsaXQsIHR5cGVzIH0gPSBhbmFseXNlQ29tcGxleFZhbHVlKHNvdXJjZSk7XG4gICAgY29uc3QgbnVtU2VjdGlvbnMgPSBzcGxpdC5sZW5ndGg7XG4gICAgcmV0dXJuICh2KSA9PiB7XG4gICAgICAgIGxldCBvdXRwdXQgPSBcIlwiO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVNlY3Rpb25zOyBpKyspIHtcbiAgICAgICAgICAgIG91dHB1dCArPSBzcGxpdFtpXTtcbiAgICAgICAgICAgIGlmICh2W2ldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gdHlwZXNbaV07XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IE5VTUJFUl9UT0tFTikge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gc2FuaXRpemUodltpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT09IENPTE9SX1RPS0VOKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSBjb2xvci50cmFuc2Zvcm0odltpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gdltpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9O1xufVxuY29uc3QgY29udmVydE51bWJlcnNUb1plcm8gPSAodikgPT4gdHlwZW9mIHYgPT09IFwibnVtYmVyXCIgPyAwIDogY29sb3IudGVzdCh2KSA/IGNvbG9yLmdldEFuaW1hdGFibGVOb25lKHYpIDogdjtcbmZ1bmN0aW9uIGdldEFuaW1hdGFibGVOb25lKHYpIHtcbiAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUNvbXBsZXhWYWx1ZSh2KTtcbiAgICBjb25zdCB0cmFuc2Zvcm1lciA9IGNyZWF0ZVRyYW5zZm9ybWVyKHYpO1xuICAgIHJldHVybiB0cmFuc2Zvcm1lcihwYXJzZWQubWFwKGNvbnZlcnROdW1iZXJzVG9aZXJvKSk7XG59XG5jb25zdCBjb21wbGV4ID0ge1xuICAgIHRlc3QsXG4gICAgcGFyc2U6IHBhcnNlQ29tcGxleFZhbHVlLFxuICAgIGNyZWF0ZVRyYW5zZm9ybWVyLFxuICAgIGdldEFuaW1hdGFibGVOb25lLFxufTtcblxuZXhwb3J0IHsgYW5hbHlzZUNvbXBsZXhWYWx1ZSwgY29tcGxleCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/complex/mask.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 */ mask: () => (/* binding */ mask)\n/* harmony export */ });\n/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n\n\nconst mask = {\n ..._index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex,\n getAnimatableNone: (v) => {\n const parsed = _index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.parse(v);\n const transformer = _index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.createTransformer(v);\n return transformer(parsed.map((v) => typeof v === \"number\" ? 0 : typeof v === \"object\" ? { ...v, alpha: 1 } : v));\n },\n};\n\n\n//# sourceMappingURL=mask.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbXBsZXgvbWFzay5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBc0M7O0FBRXRDO0FBQ0EsT0FBTywrQ0FBTztBQUNkO0FBQ0EsdUJBQXVCLCtDQUFPO0FBQzlCLDRCQUE0QiwrQ0FBTztBQUNuQyxtR0FBbUcsaUJBQWlCO0FBQ3BILEtBQUs7QUFDTDs7QUFFZ0I7QUFDaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbXBsZXgvbWFzay5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGxleCB9IGZyb20gJy4vaW5kZXgubWpzJztcblxuY29uc3QgbWFzayA9IHtcbiAgICAuLi5jb21wbGV4LFxuICAgIGdldEFuaW1hdGFibGVOb25lOiAodikgPT4ge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBjb21wbGV4LnBhcnNlKHYpO1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lciA9IGNvbXBsZXguY3JlYXRlVHJhbnNmb3JtZXIodik7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1lcihwYXJzZWQubWFwKCh2KSA9PiB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiA/IDAgOiB0eXBlb2YgdiA9PT0gXCJvYmplY3RcIiA/IHsgLi4udiwgYWxwaGE6IDEgfSA6IHYpKTtcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgbWFzayB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWFzay5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/dimensions.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 */ dimensionValueTypes: () => (/* binding */ dimensionValueTypes),\n/* harmony export */ findDimensionValueType: () => (/* binding */ findDimensionValueType)\n/* harmony export */ });\n/* harmony import */ var _auto_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./auto.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/auto.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numbers/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./numbers/units.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _test_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./test.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/test.mjs\");\n\n\n\n\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.px, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.degrees, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.vw, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.vh, _auto_mjs__WEBPACK_IMPORTED_MODULE_2__.auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find((0,_test_mjs__WEBPACK_IMPORTED_MODULE_3__.testValueType)(v));\n\n\n//# sourceMappingURL=dimensions.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2RpbWVuc2lvbnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFrQztBQUNXO0FBQ3NCO0FBQ3hCOztBQUUzQztBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsc0RBQU0sRUFBRSxrREFBRSxFQUFFLHVEQUFPLEVBQUUsdURBQU8sRUFBRSxrREFBRSxFQUFFLGtEQUFFLEVBQUUsMkNBQUk7QUFDdkU7QUFDQTtBQUNBO0FBQ0EsK0RBQStELHdEQUFhOztBQUVyQjtBQUN2RCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvZGltZW5zaW9ucy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXV0byB9IGZyb20gJy4vYXV0by5tanMnO1xuaW1wb3J0IHsgbnVtYmVyIH0gZnJvbSAnLi9udW1iZXJzL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBweCwgcGVyY2VudCwgZGVncmVlcywgdncsIHZoIH0gZnJvbSAnLi9udW1iZXJzL3VuaXRzLm1qcyc7XG5pbXBvcnQgeyB0ZXN0VmFsdWVUeXBlIH0gZnJvbSAnLi90ZXN0Lm1qcyc7XG5cbi8qKlxuICogQSBsaXN0IG9mIHZhbHVlIHR5cGVzIGNvbW1vbmx5IHVzZWQgZm9yIGRpbWVuc2lvbnNcbiAqL1xuY29uc3QgZGltZW5zaW9uVmFsdWVUeXBlcyA9IFtudW1iZXIsIHB4LCBwZXJjZW50LCBkZWdyZWVzLCB2dywgdmgsIGF1dG9dO1xuLyoqXG4gKiBUZXN0cyBhIGRpbWVuc2lvbmFsIHZhbHVlIGFnYWluc3QgdGhlIGxpc3Qgb2YgZGltZW5zaW9uIFZhbHVlVHlwZXNcbiAqL1xuY29uc3QgZmluZERpbWVuc2lvblZhbHVlVHlwZSA9ICh2KSA9PiBkaW1lbnNpb25WYWx1ZVR5cGVzLmZpbmQodGVzdFZhbHVlVHlwZSh2KSk7XG5cbmV4cG9ydCB7IGRpbWVuc2lvblZhbHVlVHlwZXMsIGZpbmREaW1lbnNpb25WYWx1ZVR5cGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRpbWVuc2lvbnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/int.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/int.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 */ int: () => (/* binding */ int)\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numbers/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n\n\nconst int = {\n ..._numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number,\n transform: Math.round,\n};\n\n\n//# sourceMappingURL=int.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2ludC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBNkM7O0FBRTdDO0FBQ0EsT0FBTyxzREFBTTtBQUNiO0FBQ0E7O0FBRWU7QUFDZiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvaW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBudW1iZXIgfSBmcm9tICcuL251bWJlcnMvaW5kZXgubWpzJztcblxuY29uc3QgaW50ID0ge1xuICAgIC4uLm51bWJlcixcbiAgICB0cmFuc2Zvcm06IE1hdGgucm91bmQsXG59O1xuXG5leHBvcnQgeyBpbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/int.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/maps/defaults.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 */ defaultValueTypes: () => (/* binding */ defaultValueTypes),\n/* harmony export */ getDefaultValueType: () => (/* binding */ getDefaultValueType)\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../color/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../complex/filter.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\");\n/* harmony import */ var _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../complex/mask.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n\n\n\n\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ..._number_mjs__WEBPACK_IMPORTED_MODULE_0__.numberValueTypes,\n // Color props\n color: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n backgroundColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n outlineColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n fill: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n stroke: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n // Border props\n borderColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderTopColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderRightColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderBottomColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderLeftColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n filter: _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__.filter,\n WebkitFilter: _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__.filter,\n mask: _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_3__.mask,\n WebkitMask: _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_3__.mask,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\n\n//# sourceMappingURL=defaults.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL21hcHMvZGVmYXVsdHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUEyQztBQUNJO0FBQ0o7QUFDSzs7QUFFaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLHlEQUFnQjtBQUN2QjtBQUNBLFNBQVM7QUFDVCxxQkFBcUIsbURBQUs7QUFDMUIsa0JBQWtCLG1EQUFLO0FBQ3ZCLFVBQVUsbURBQUs7QUFDZixZQUFZLG1EQUFLO0FBQ2pCO0FBQ0EsaUJBQWlCLG1EQUFLO0FBQ3RCLG9CQUFvQixtREFBSztBQUN6QixzQkFBc0IsbURBQUs7QUFDM0IsdUJBQXVCLG1EQUFLO0FBQzVCLHFCQUFxQixtREFBSztBQUMxQixVQUFVO0FBQ1Ysa0JBQWtCLHVEQUFNO0FBQ3hCLFFBQVE7QUFDUixnQkFBZ0IsbURBQUk7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFa0Q7QUFDbEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL21hcHMvZGVmYXVsdHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbG9yIH0gZnJvbSAnLi4vY29sb3IvaW5kZXgubWpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJy4uL2NvbXBsZXgvZmlsdGVyLm1qcyc7XG5pbXBvcnQgeyBtYXNrIH0gZnJvbSAnLi4vY29tcGxleC9tYXNrLm1qcyc7XG5pbXBvcnQgeyBudW1iZXJWYWx1ZVR5cGVzIH0gZnJvbSAnLi9udW1iZXIubWpzJztcblxuLyoqXG4gKiBBIG1hcCBvZiBkZWZhdWx0IHZhbHVlIHR5cGVzIGZvciBjb21tb24gdmFsdWVzXG4gKi9cbmNvbnN0IGRlZmF1bHRWYWx1ZVR5cGVzID0ge1xuICAgIC4uLm51bWJlclZhbHVlVHlwZXMsXG4gICAgLy8gQ29sb3IgcHJvcHNcbiAgICBjb2xvcixcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLFxuICAgIG91dGxpbmVDb2xvcjogY29sb3IsXG4gICAgZmlsbDogY29sb3IsXG4gICAgc3Ryb2tlOiBjb2xvcixcbiAgICAvLyBCb3JkZXIgcHJvcHNcbiAgICBib3JkZXJDb2xvcjogY29sb3IsXG4gICAgYm9yZGVyVG9wQ29sb3I6IGNvbG9yLFxuICAgIGJvcmRlclJpZ2h0Q29sb3I6IGNvbG9yLFxuICAgIGJvcmRlckJvdHRvbUNvbG9yOiBjb2xvcixcbiAgICBib3JkZXJMZWZ0Q29sb3I6IGNvbG9yLFxuICAgIGZpbHRlcixcbiAgICBXZWJraXRGaWx0ZXI6IGZpbHRlcixcbiAgICBtYXNrLFxuICAgIFdlYmtpdE1hc2s6IG1hc2ssXG59O1xuLyoqXG4gKiBHZXRzIHRoZSBkZWZhdWx0IFZhbHVlVHlwZSBmb3IgdGhlIHByb3ZpZGVkIHZhbHVlIGtleVxuICovXG5jb25zdCBnZXREZWZhdWx0VmFsdWVUeXBlID0gKGtleSkgPT4gZGVmYXVsdFZhbHVlVHlwZXNba2V5XTtcblxuZXhwb3J0IHsgZGVmYXVsdFZhbHVlVHlwZXMsIGdldERlZmF1bHRWYWx1ZVR5cGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmF1bHRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/maps/number.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 */ numberValueTypes: () => (/* binding */ numberValueTypes)\n/* harmony export */ });\n/* harmony import */ var _int_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../int.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/int.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _transform_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transform.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs\");\n\n\n\n\n\nconst numberValueTypes = {\n // Border props\n borderWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderTopWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderRightWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderBottomWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderLeftWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderTopLeftRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderTopRightRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderBottomRightRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderBottomLeftRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Positioning props\n width: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n maxWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n height: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n maxHeight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n top: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n right: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n bottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n left: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n inset: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetBlock: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetBlockStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetBlockEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetInline: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetInlineStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetInlineEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Spacing props\n padding: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingTop: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingRight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingLeft: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBlock: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBlockStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBlockEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingInline: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingInlineStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingInlineEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n margin: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginTop: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginRight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginLeft: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBlock: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBlockStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBlockEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginInline: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginInlineStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginInlineEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Typography\n fontSize: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Misc\n backgroundPositionX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n backgroundPositionY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n ..._transform_mjs__WEBPACK_IMPORTED_MODULE_1__.transformValueTypes,\n zIndex: _int_mjs__WEBPACK_IMPORTED_MODULE_2__.int,\n // SVG\n fillOpacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha,\n strokeOpacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha,\n numOctaves: _int_mjs__WEBPACK_IMPORTED_MODULE_2__.int,\n};\n\n\n//# sourceMappingURL=number.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL21hcHMvbnVtYmVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFpQztBQUNZO0FBQ0g7QUFDWTs7QUFFdEQ7QUFDQTtBQUNBLGlCQUFpQixrREFBRTtBQUNuQixvQkFBb0Isa0RBQUU7QUFDdEIsc0JBQXNCLGtEQUFFO0FBQ3hCLHVCQUF1QixrREFBRTtBQUN6QixxQkFBcUIsa0RBQUU7QUFDdkIsa0JBQWtCLGtEQUFFO0FBQ3BCLHlCQUF5QixrREFBRTtBQUMzQiwwQkFBMEIsa0RBQUU7QUFDNUIsNkJBQTZCLGtEQUFFO0FBQy9CLDRCQUE0QixrREFBRTtBQUM5QjtBQUNBLFdBQVcsa0RBQUU7QUFDYixjQUFjLGtEQUFFO0FBQ2hCLFlBQVksa0RBQUU7QUFDZCxlQUFlLGtEQUFFO0FBQ2pCLFNBQVMsa0RBQUU7QUFDWCxXQUFXLGtEQUFFO0FBQ2IsWUFBWSxrREFBRTtBQUNkLFVBQVUsa0RBQUU7QUFDWixXQUFXLGtEQUFFO0FBQ2IsZ0JBQWdCLGtEQUFFO0FBQ2xCLHFCQUFxQixrREFBRTtBQUN2QixtQkFBbUIsa0RBQUU7QUFDckIsaUJBQWlCLGtEQUFFO0FBQ25CLHNCQUFzQixrREFBRTtBQUN4QixvQkFBb0Isa0RBQUU7QUFDdEI7QUFDQSxhQUFhLGtEQUFFO0FBQ2YsZ0JBQWdCLGtEQUFFO0FBQ2xCLGtCQUFrQixrREFBRTtBQUNwQixtQkFBbUIsa0RBQUU7QUFDckIsaUJBQWlCLGtEQUFFO0FBQ25CLGtCQUFrQixrREFBRTtBQUNwQix1QkFBdUIsa0RBQUU7QUFDekIscUJBQXFCLGtEQUFFO0FBQ3ZCLG1CQUFtQixrREFBRTtBQUNyQix3QkFBd0Isa0RBQUU7QUFDMUIsc0JBQXNCLGtEQUFFO0FBQ3hCLFlBQVksa0RBQUU7QUFDZCxlQUFlLGtEQUFFO0FBQ2pCLGlCQUFpQixrREFBRTtBQUNuQixrQkFBa0Isa0RBQUU7QUFDcEIsZ0JBQWdCLGtEQUFFO0FBQ2xCLGlCQUFpQixrREFBRTtBQUNuQixzQkFBc0Isa0RBQUU7QUFDeEIsb0JBQW9CLGtEQUFFO0FBQ3RCLGtCQUFrQixrREFBRTtBQUNwQix1QkFBdUIsa0RBQUU7QUFDekIscUJBQXFCLGtEQUFFO0FBQ3ZCO0FBQ0EsY0FBYyxrREFBRTtBQUNoQjtBQUNBLHlCQUF5QixrREFBRTtBQUMzQix5QkFBeUIsa0RBQUU7QUFDM0IsT0FBTywrREFBbUI7QUFDMUIsWUFBWSx5Q0FBRztBQUNmO0FBQ0EsaUJBQWlCLHFEQUFLO0FBQ3RCLG1CQUFtQixxREFBSztBQUN4QixnQkFBZ0IseUNBQUc7QUFDbkI7O0FBRTRCO0FBQzVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9tYXBzL251bWJlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW50IH0gZnJvbSAnLi4vaW50Lm1qcyc7XG5pbXBvcnQgeyBhbHBoYSB9IGZyb20gJy4uL251bWJlcnMvaW5kZXgubWpzJztcbmltcG9ydCB7IHB4IH0gZnJvbSAnLi4vbnVtYmVycy91bml0cy5tanMnO1xuaW1wb3J0IHsgdHJhbnNmb3JtVmFsdWVUeXBlcyB9IGZyb20gJy4vdHJhbnNmb3JtLm1qcyc7XG5cbmNvbnN0IG51bWJlclZhbHVlVHlwZXMgPSB7XG4gICAgLy8gQm9yZGVyIHByb3BzXG4gICAgYm9yZGVyV2lkdGg6IHB4LFxuICAgIGJvcmRlclRvcFdpZHRoOiBweCxcbiAgICBib3JkZXJSaWdodFdpZHRoOiBweCxcbiAgICBib3JkZXJCb3R0b21XaWR0aDogcHgsXG4gICAgYm9yZGVyTGVmdFdpZHRoOiBweCxcbiAgICBib3JkZXJSYWRpdXM6IHB4LFxuICAgIGJvcmRlclRvcExlZnRSYWRpdXM6IHB4LFxuICAgIGJvcmRlclRvcFJpZ2h0UmFkaXVzOiBweCxcbiAgICBib3JkZXJCb3R0b21SaWdodFJhZGl1czogcHgsXG4gICAgYm9yZGVyQm90dG9tTGVmdFJhZGl1czogcHgsXG4gICAgLy8gUG9zaXRpb25pbmcgcHJvcHNcbiAgICB3aWR0aDogcHgsXG4gICAgbWF4V2lkdGg6IHB4LFxuICAgIGhlaWdodDogcHgsXG4gICAgbWF4SGVpZ2h0OiBweCxcbiAgICB0b3A6IHB4LFxuICAgIHJpZ2h0OiBweCxcbiAgICBib3R0b206IHB4LFxuICAgIGxlZnQ6IHB4LFxuICAgIGluc2V0OiBweCxcbiAgICBpbnNldEJsb2NrOiBweCxcbiAgICBpbnNldEJsb2NrU3RhcnQ6IHB4LFxuICAgIGluc2V0QmxvY2tFbmQ6IHB4LFxuICAgIGluc2V0SW5saW5lOiBweCxcbiAgICBpbnNldElubGluZVN0YXJ0OiBweCxcbiAgICBpbnNldElubGluZUVuZDogcHgsXG4gICAgLy8gU3BhY2luZyBwcm9wc1xuICAgIHBhZGRpbmc6IHB4LFxuICAgIHBhZGRpbmdUb3A6IHB4LFxuICAgIHBhZGRpbmdSaWdodDogcHgsXG4gICAgcGFkZGluZ0JvdHRvbTogcHgsXG4gICAgcGFkZGluZ0xlZnQ6IHB4LFxuICAgIHBhZGRpbmdCbG9jazogcHgsXG4gICAgcGFkZGluZ0Jsb2NrU3RhcnQ6IHB4LFxuICAgIHBhZGRpbmdCbG9ja0VuZDogcHgsXG4gICAgcGFkZGluZ0lubGluZTogcHgsXG4gICAgcGFkZGluZ0lubGluZVN0YXJ0OiBweCxcbiAgICBwYWRkaW5nSW5saW5lRW5kOiBweCxcbiAgICBtYXJnaW46IHB4LFxuICAgIG1hcmdpblRvcDogcHgsXG4gICAgbWFyZ2luUmlnaHQ6IHB4LFxuICAgIG1hcmdpbkJvdHRvbTogcHgsXG4gICAgbWFyZ2luTGVmdDogcHgsXG4gICAgbWFyZ2luQmxvY2s6IHB4LFxuICAgIG1hcmdpbkJsb2NrU3RhcnQ6IHB4LFxuICAgIG1hcmdpbkJsb2NrRW5kOiBweCxcbiAgICBtYXJnaW5JbmxpbmU6IHB4LFxuICAgIG1hcmdpbklubGluZVN0YXJ0OiBweCxcbiAgICBtYXJnaW5JbmxpbmVFbmQ6IHB4LFxuICAgIC8vIFR5cG9ncmFwaHlcbiAgICBmb250U2l6ZTogcHgsXG4gICAgLy8gTWlzY1xuICAgIGJhY2tncm91bmRQb3NpdGlvblg6IHB4LFxuICAgIGJhY2tncm91bmRQb3NpdGlvblk6IHB4LFxuICAgIC4uLnRyYW5zZm9ybVZhbHVlVHlwZXMsXG4gICAgekluZGV4OiBpbnQsXG4gICAgLy8gU1ZHXG4gICAgZmlsbE9wYWNpdHk6IGFscGhhLFxuICAgIHN0cm9rZU9wYWNpdHk6IGFscGhhLFxuICAgIG51bU9jdGF2ZXM6IGludCxcbn07XG5cbmV4cG9ydCB7IG51bWJlclZhbHVlVHlwZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW51bWJlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/maps/transform.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 */ transformValueTypes: () => (/* binding */ transformValueTypes)\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\n\n\nconst transformValueTypes = {\n rotate: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n rotateX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n rotateY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n rotateZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n scale: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n scaleX: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n scaleY: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n scaleZ: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n skew: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n skewX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n skewY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n distance: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n translateX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n translateY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n translateZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n x: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n y: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n z: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n perspective: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n transformPerspective: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n opacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.alpha,\n originX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.progressPercentage,\n originY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.progressPercentage,\n originZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n};\n\n\n//# sourceMappingURL=transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL21hcHMvdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBb0Q7QUFDbUI7O0FBRXZFO0FBQ0EsWUFBWSx1REFBTztBQUNuQixhQUFhLHVEQUFPO0FBQ3BCLGFBQWEsdURBQU87QUFDcEIsYUFBYSx1REFBTztBQUNwQixTQUFTO0FBQ1QsWUFBWSxxREFBSztBQUNqQixZQUFZLHFEQUFLO0FBQ2pCLFlBQVkscURBQUs7QUFDakIsVUFBVSx1REFBTztBQUNqQixXQUFXLHVEQUFPO0FBQ2xCLFdBQVcsdURBQU87QUFDbEIsY0FBYyxrREFBRTtBQUNoQixnQkFBZ0Isa0RBQUU7QUFDbEIsZ0JBQWdCLGtEQUFFO0FBQ2xCLGdCQUFnQixrREFBRTtBQUNsQixPQUFPLGtEQUFFO0FBQ1QsT0FBTyxrREFBRTtBQUNULE9BQU8sa0RBQUU7QUFDVCxpQkFBaUIsa0RBQUU7QUFDbkIsMEJBQTBCLGtEQUFFO0FBQzVCLGFBQWEscURBQUs7QUFDbEIsYUFBYSxrRUFBa0I7QUFDL0IsYUFBYSxrRUFBa0I7QUFDL0IsYUFBYSxrREFBRTtBQUNmOztBQUUrQjtBQUMvQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy90cmFuc2Zvcm0ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNjYWxlLCBhbHBoYSB9IGZyb20gJy4uL251bWJlcnMvaW5kZXgubWpzJztcbmltcG9ydCB7IGRlZ3JlZXMsIHB4LCBwcm9ncmVzc1BlcmNlbnRhZ2UgfSBmcm9tICcuLi9udW1iZXJzL3VuaXRzLm1qcyc7XG5cbmNvbnN0IHRyYW5zZm9ybVZhbHVlVHlwZXMgPSB7XG4gICAgcm90YXRlOiBkZWdyZWVzLFxuICAgIHJvdGF0ZVg6IGRlZ3JlZXMsXG4gICAgcm90YXRlWTogZGVncmVlcyxcbiAgICByb3RhdGVaOiBkZWdyZWVzLFxuICAgIHNjYWxlLFxuICAgIHNjYWxlWDogc2NhbGUsXG4gICAgc2NhbGVZOiBzY2FsZSxcbiAgICBzY2FsZVo6IHNjYWxlLFxuICAgIHNrZXc6IGRlZ3JlZXMsXG4gICAgc2tld1g6IGRlZ3JlZXMsXG4gICAgc2tld1k6IGRlZ3JlZXMsXG4gICAgZGlzdGFuY2U6IHB4LFxuICAgIHRyYW5zbGF0ZVg6IHB4LFxuICAgIHRyYW5zbGF0ZVk6IHB4LFxuICAgIHRyYW5zbGF0ZVo6IHB4LFxuICAgIHg6IHB4LFxuICAgIHk6IHB4LFxuICAgIHo6IHB4LFxuICAgIHBlcnNwZWN0aXZlOiBweCxcbiAgICB0cmFuc2Zvcm1QZXJzcGVjdGl2ZTogcHgsXG4gICAgb3BhY2l0eTogYWxwaGEsXG4gICAgb3JpZ2luWDogcHJvZ3Jlc3NQZXJjZW50YWdlLFxuICAgIG9yaWdpblk6IHByb2dyZXNzUGVyY2VudGFnZSxcbiAgICBvcmlnaW5aOiBweCxcbn07XG5cbmV4cG9ydCB7IHRyYW5zZm9ybVZhbHVlVHlwZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRyYW5zZm9ybS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/numbers/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 */ alpha: () => (/* binding */ alpha),\n/* harmony export */ number: () => (/* binding */ number),\n/* harmony export */ scale: () => (/* binding */ scale)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL251bWJlcnMvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBcUM7O0FBRXJDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG1EQUFLO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9udW1iZXJzL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbGFtcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5cbmNvbnN0IG51bWJlciA9IHtcbiAgICB0ZXN0OiAodikgPT4gdHlwZW9mIHYgPT09IFwibnVtYmVyXCIsXG4gICAgcGFyc2U6IHBhcnNlRmxvYXQsXG4gICAgdHJhbnNmb3JtOiAodikgPT4gdixcbn07XG5jb25zdCBhbHBoYSA9IHtcbiAgICAuLi5udW1iZXIsXG4gICAgdHJhbnNmb3JtOiAodikgPT4gY2xhbXAoMCwgMSwgdiksXG59O1xuY29uc3Qgc2NhbGUgPSB7XG4gICAgLi4ubnVtYmVyLFxuICAgIGRlZmF1bHQ6IDEsXG59O1xuXG5leHBvcnQgeyBhbHBoYSwgbnVtYmVyLCBzY2FsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/numbers/units.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 */ degrees: () => (/* binding */ degrees),\n/* harmony export */ percent: () => (/* binding */ percent),\n/* harmony export */ progressPercentage: () => (/* binding */ progressPercentage),\n/* harmony export */ px: () => (/* binding */ px),\n/* harmony export */ vh: () => (/* binding */ vh),\n/* harmony export */ vw: () => (/* binding */ vw)\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\nconst createUnitType = (unit) => ({\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\nconst px = /*@__PURE__*/ createUnitType(\"px\");\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\nconst progressPercentage = /*@__PURE__*/ (() => ({\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n}))();\n\n\n//# sourceMappingURL=units.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL251bWJlcnMvdW5pdHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLEVBQUUsRUFBRSxLQUFLO0FBQ2xDLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUUyRDtBQUM1RCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyojX19OT19TSURFX0VGRkVDVFNfXyovXG5jb25zdCBjcmVhdGVVbml0VHlwZSA9ICh1bml0KSA9PiAoe1xuICAgIHRlc3Q6ICh2KSA9PiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIiAmJiB2LmVuZHNXaXRoKHVuaXQpICYmIHYuc3BsaXQoXCIgXCIpLmxlbmd0aCA9PT0gMSxcbiAgICBwYXJzZTogcGFyc2VGbG9hdCxcbiAgICB0cmFuc2Zvcm06ICh2KSA9PiBgJHt2fSR7dW5pdH1gLFxufSk7XG5jb25zdCBkZWdyZWVzID0gLypAX19QVVJFX18qLyBjcmVhdGVVbml0VHlwZShcImRlZ1wiKTtcbmNvbnN0IHBlcmNlbnQgPSAvKkBfX1BVUkVfXyovIGNyZWF0ZVVuaXRUeXBlKFwiJVwiKTtcbmNvbnN0IHB4ID0gLypAX19QVVJFX18qLyBjcmVhdGVVbml0VHlwZShcInB4XCIpO1xuY29uc3QgdmggPSAvKkBfX1BVUkVfXyovIGNyZWF0ZVVuaXRUeXBlKFwidmhcIik7XG5jb25zdCB2dyA9IC8qQF9fUFVSRV9fKi8gY3JlYXRlVW5pdFR5cGUoXCJ2d1wiKTtcbmNvbnN0IHByb2dyZXNzUGVyY2VudGFnZSA9IC8qQF9fUFVSRV9fKi8gKCgpID0+ICh7XG4gICAgLi4ucGVyY2VudCxcbiAgICBwYXJzZTogKHYpID0+IHBlcmNlbnQucGFyc2UodikgLyAxMDAsXG4gICAgdHJhbnNmb3JtOiAodikgPT4gcGVyY2VudC50cmFuc2Zvcm0odiAqIDEwMCksXG59KSkoKTtcblxuZXhwb3J0IHsgZGVncmVlcywgcGVyY2VudCwgcHJvZ3Jlc3NQZXJjZW50YWdlLCBweCwgdmgsIHZ3IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11bml0cy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/test.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/test.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 */ testValueType: () => (/* binding */ testValueType)\n/* harmony export */ });\n/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\n\n//# sourceMappingURL=test.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3Rlc3QubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3Rlc3QubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGVzdHMgYSBwcm92aWRlZCB2YWx1ZSBhZ2FpbnN0IGEgVmFsdWVUeXBlXG4gKi9cbmNvbnN0IHRlc3RWYWx1ZVR5cGUgPSAodikgPT4gKHR5cGUpID0+IHR5cGUudGVzdCh2KTtcblxuZXhwb3J0IHsgdGVzdFZhbHVlVHlwZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGVzdC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/test.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.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 */ getAnimatableNone: () => (/* binding */ getAnimatableNone)\n/* harmony export */ });\n/* harmony import */ var _complex_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../complex/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../complex/filter.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\");\n/* harmony import */ var _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../complex/mask.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs\");\n/* harmony import */ var _maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../maps/defaults.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\");\n\n\n\n\n\nconst customTypes = /*@__PURE__*/ new Set([_complex_filter_mjs__WEBPACK_IMPORTED_MODULE_0__.filter, _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_1__.mask]);\nfunction getAnimatableNone(key, value) {\n let defaultValueType = (0,_maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_2__.getDefaultValueType)(key);\n if (!customTypes.has(defaultValueType))\n defaultValueType = _complex_index_mjs__WEBPACK_IMPORTED_MODULE_3__.complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\n\n//# sourceMappingURL=animatable-none.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2FuaW1hdGFibGUtbm9uZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBK0M7QUFDQTtBQUNKO0FBQ2dCOztBQUUzRCwyQ0FBMkMsdURBQU0sRUFBRSxtREFBSTtBQUN2RDtBQUNBLDJCQUEyQix1RUFBbUI7QUFDOUM7QUFDQSwyQkFBMkIsdURBQU87QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNkI7QUFDN0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2FuaW1hdGFibGUtbm9uZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGxleCB9IGZyb20gJy4uL2NvbXBsZXgvaW5kZXgubWpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJy4uL2NvbXBsZXgvZmlsdGVyLm1qcyc7XG5pbXBvcnQgeyBtYXNrIH0gZnJvbSAnLi4vY29tcGxleC9tYXNrLm1qcyc7XG5pbXBvcnQgeyBnZXREZWZhdWx0VmFsdWVUeXBlIH0gZnJvbSAnLi4vbWFwcy9kZWZhdWx0cy5tanMnO1xuXG5jb25zdCBjdXN0b21UeXBlcyA9IC8qQF9fUFVSRV9fKi8gbmV3IFNldChbZmlsdGVyLCBtYXNrXSk7XG5mdW5jdGlvbiBnZXRBbmltYXRhYmxlTm9uZShrZXksIHZhbHVlKSB7XG4gICAgbGV0IGRlZmF1bHRWYWx1ZVR5cGUgPSBnZXREZWZhdWx0VmFsdWVUeXBlKGtleSk7XG4gICAgaWYgKCFjdXN0b21UeXBlcy5oYXMoZGVmYXVsdFZhbHVlVHlwZSkpXG4gICAgICAgIGRlZmF1bHRWYWx1ZVR5cGUgPSBjb21wbGV4O1xuICAgIC8vIElmIHZhbHVlIGlzIG5vdCByZWNvZ25pc2VkIGFzIGFuaW1hdGFibGUsIGllIFwibm9uZVwiLCBjcmVhdGUgYW4gYW5pbWF0YWJsZSB2ZXJzaW9uIG9yaWdpbiBiYXNlZCBvbiB0aGUgdGFyZ2V0XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZVR5cGUuZ2V0QW5pbWF0YWJsZU5vbmVcbiAgICAgICAgPyBkZWZhdWx0VmFsdWVUeXBlLmdldEFuaW1hdGFibGVOb25lKHZhbHVlKVxuICAgICAgICA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IHsgZ2V0QW5pbWF0YWJsZU5vbmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFuaW1hdGFibGUtbm9uZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/color-regex.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 */ colorRegex: () => (/* binding */ colorRegex)\n/* harmony export */ });\nconst colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\n\n\n//# sourceMappingURL=color-regex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2NvbG9yLXJlZ2V4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsZ0NBQWdDLElBQUkscUNBQXFDLEVBQUU7O0FBRXJEO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy91dGlscy9jb2xvci1yZWdleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY29sb3JSZWdleCA9IC8oPzojW1xcZGEtZl17Myw4fXwoPzpyZ2J8aHNsKWE/XFwoKD86LT9bXFxkLl0rJT9bLFxcc10rKXsyfS0/W1xcZC5dKyU/XFxzKig/OlssL11cXHMqKT8oPzpcXGJcXGQrKD86XFwuXFxkKyk/fFxcLlxcZCspPyU/XFwpKS9naXU7XG5cbmV4cG9ydCB7IGNvbG9yUmVnZXggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbG9yLXJlZ2V4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/find.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 */ findValueType: () => (/* binding */ findValueType)\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../color/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../complex/index.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _dimensions_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dimensions.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\");\n/* harmony import */ var _test_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../test.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/types/test.mjs\");\n\n\n\n\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [..._dimensions_mjs__WEBPACK_IMPORTED_MODULE_0__.dimensionValueTypes, _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color, _complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__.complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find((0,_test_mjs__WEBPACK_IMPORTED_MODULE_3__.testValueType)(v));\n\n\n//# sourceMappingURL=find.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2ZpbmQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTJDO0FBQ0k7QUFDUztBQUNaOztBQUU1QztBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsZ0VBQW1CLEVBQUUsbURBQUssRUFBRSx1REFBTztBQUMxRDtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMsd0RBQWE7O0FBRWpDO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy91dGlscy9maW5kLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2xvciB9IGZyb20gJy4uL2NvbG9yL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBjb21wbGV4IH0gZnJvbSAnLi4vY29tcGxleC9pbmRleC5tanMnO1xuaW1wb3J0IHsgZGltZW5zaW9uVmFsdWVUeXBlcyB9IGZyb20gJy4uL2RpbWVuc2lvbnMubWpzJztcbmltcG9ydCB7IHRlc3RWYWx1ZVR5cGUgfSBmcm9tICcuLi90ZXN0Lm1qcyc7XG5cbi8qKlxuICogQSBsaXN0IG9mIGFsbCBWYWx1ZVR5cGVzXG4gKi9cbmNvbnN0IHZhbHVlVHlwZXMgPSBbLi4uZGltZW5zaW9uVmFsdWVUeXBlcywgY29sb3IsIGNvbXBsZXhdO1xuLyoqXG4gKiBUZXN0cyBhIHZhbHVlIGFnYWluc3QgdGhlIGxpc3Qgb2YgVmFsdWVUeXBlc1xuICovXG5jb25zdCBmaW5kVmFsdWVUeXBlID0gKHYpID0+IHZhbHVlVHlwZXMuZmluZCh0ZXN0VmFsdWVUeXBlKHYpKTtcblxuZXhwb3J0IHsgZmluZFZhbHVlVHlwZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmluZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/float-regex.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 */ floatRegex: () => (/* binding */ floatRegex)\n/* harmony export */ });\nconst floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n\n\n//# sourceMappingURL=float-regex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2Zsb2F0LXJlZ2V4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRXNCO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy91dGlscy9mbG9hdC1yZWdleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZmxvYXRSZWdleCA9IC8tPyg/OlxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKykvZ3U7XG5cbmV4cG9ydCB7IGZsb2F0UmVnZXggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZsb2F0LXJlZ2V4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.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 */ getValueAsType: () => (/* binding */ getValueAsType)\n/* harmony export */ });\n/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\n\n//# sourceMappingURL=get-as-type.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2dldC1hcy10eXBlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMEI7QUFDMUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2dldC1hcy10eXBlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb3ZpZGVkIGEgdmFsdWUgYW5kIGEgVmFsdWVUeXBlLCByZXR1cm5zIHRoZSB2YWx1ZSBhcyB0aGF0IHZhbHVlIHR5cGUuXG4gKi9cbmNvbnN0IGdldFZhbHVlQXNUeXBlID0gKHZhbHVlLCB0eXBlKSA9PiB7XG4gICAgcmV0dXJuIHR5cGUgJiYgdHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiXG4gICAgICAgID8gdHlwZS50cmFuc2Zvcm0odmFsdWUpXG4gICAgICAgIDogdmFsdWU7XG59O1xuXG5leHBvcnQgeyBnZXRWYWx1ZUFzVHlwZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWFzLXR5cGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.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 */ isNullish: () => (/* binding */ isNullish)\n/* harmony export */ });\nfunction isNullish(v) {\n return v == null;\n}\n\n\n//# sourceMappingURL=is-nullish.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2lzLW51bGxpc2gubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRXFCO0FBQ3JCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy91dGlscy9pcy1udWxsaXNoLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc051bGxpc2godikge1xuICAgIHJldHVybiB2ID09IG51bGw7XG59XG5cbmV4cG9ydCB7IGlzTnVsbGlzaCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtbnVsbGlzaC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/sanitize.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 */ sanitize: () => (/* binding */ sanitize)\n/* harmony export */ });\n// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\n\n\n//# sourceMappingURL=sanitize.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL3Nhbml0aXplLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBOztBQUVvQjtBQUNwQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvc2FuaXRpemUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIElmIHRoaXMgbnVtYmVyIGlzIGEgZGVjaW1hbCwgbWFrZSBpdCBqdXN0IGZpdmUgZGVjaW1hbCBwbGFjZXNcbi8vIHRvIGF2b2lkIGV4cG9uZW50c1xuY29uc3Qgc2FuaXRpemUgPSAodikgPT4gTWF0aC5yb3VuZCh2ICogMTAwMDAwKSAvIDEwMDAwMDtcblxuZXhwb3J0IHsgc2FuaXRpemUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNhbml0aXplLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.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 */ singleColorRegex: () => (/* binding */ singleColorRegex)\n/* harmony export */ });\nconst singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n\n\n//# sourceMappingURL=single-color-regex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL3NpbmdsZS1jb2xvci1yZWdleC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVDQUF1QyxJQUFJLHFDQUFxQyxFQUFFOztBQUV0RDtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvc2luZ2xlLWNvbG9yLXJlZ2V4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaW5nbGVDb2xvclJlZ2V4ID0gL14oPzojW1xcZGEtZl17Myw4fXwoPzpyZ2J8aHNsKWE/XFwoKD86LT9bXFxkLl0rJT9bLFxcc10rKXsyfS0/W1xcZC5dKyU/XFxzKig/OlssL11cXHMqKT8oPzpcXGJcXGQrKD86XFwuXFxkKyk/fFxcLlxcZCspPyU/XFwpKSQvaXU7XG5cbmV4cG9ydCB7IHNpbmdsZUNvbG9yUmVnZXggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNpbmdsZS1jb2xvci1yZWdleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/utils/is-motion-value.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 */ isMotionValue: () => (/* binding */ isMotionValue)\n/* harmony export */ });\nconst isMotionValue = (value) => Boolean(value && value.getVelocity);\n\n\n//# sourceMappingURL=is-motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3V0aWxzL2lzLW1vdGlvbi12YWx1ZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc01vdGlvblZhbHVlID0gKHZhbHVlKSA9PiBCb29sZWFuKHZhbHVlICYmIHZhbHVlLmdldFZlbG9jaXR5KTtcblxuZXhwb3J0IHsgaXNNb3Rpb25WYWx1ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtbW90aW9uLXZhbHVlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.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 */ resolveMotionValue: () => (/* binding */ resolveMotionValue)\n/* harmony export */ });\n/* harmony import */ var _is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n */\nfunction resolveMotionValue(value) {\n return (0,_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) ? value.get() : value;\n}\n\n\n//# sourceMappingURL=resolve-motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3V0aWxzL3Jlc29sdmUtbW90aW9uLXZhbHVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFzRDs7QUFFdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLG1FQUFhO0FBQ3hCOztBQUU4QjtBQUM5QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdXRpbHMvcmVzb2x2ZS1tb3Rpb24tdmFsdWUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTW90aW9uVmFsdWUgfSBmcm9tICcuL2lzLW1vdGlvbi12YWx1ZS5tanMnO1xuXG4vKipcbiAqIElmIHRoZSBwcm92aWRlZCB2YWx1ZSBpcyBhIE1vdGlvblZhbHVlLCB0aGlzIHJldHVybnMgdGhlIGFjdHVhbCB2YWx1ZSwgb3RoZXJ3aXNlIGp1c3QgdGhlIHZhbHVlIGl0c2VsZlxuICovXG5mdW5jdGlvbiByZXNvbHZlTW90aW9uVmFsdWUodmFsdWUpIHtcbiAgICByZXR1cm4gaXNNb3Rpb25WYWx1ZSh2YWx1ZSkgPyB2YWx1ZS5nZXQoKSA6IHZhbHVlO1xufVxuXG5leHBvcnQgeyByZXNvbHZlTW90aW9uVmFsdWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtbW90aW9uLXZhbHVlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/will-change/add-will-change.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 */ addValueToWillChange: () => (/* binding */ addValueToWillChange)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(ssr)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _is_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/will-change/is.mjs\");\n\n\n\nfunction addValueToWillChange(visualElement, key) {\n const willChange = visualElement.getValue(\"willChange\");\n /**\n * It could be that a user has set willChange to a regular MotionValue,\n * in which case we can't add the value to it.\n */\n if ((0,_is_mjs__WEBPACK_IMPORTED_MODULE_0__.isWillChangeMotionValue)(willChange)) {\n return willChange.add(key);\n }\n else if (!willChange && motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.WillChange) {\n const newWillChange = new motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.WillChange(\"auto\");\n visualElement.addValue(\"willChange\", newWillChange);\n newWillChange.add(key);\n }\n}\n\n\n//# sourceMappingURL=add-will-change.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3dpbGwtY2hhbmdlL2FkZC13aWxsLWNoYW5nZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtEO0FBQ0M7O0FBRW5EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsZ0VBQXVCO0FBQy9CO0FBQ0E7QUFDQSw0QkFBNEIsNERBQWtCO0FBQzlDLGtDQUFrQyw0REFBa0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS93aWxsLWNoYW5nZS9hZGQtd2lsbC1jaGFuZ2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdGlvbkdsb2JhbENvbmZpZyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBpc1dpbGxDaGFuZ2VNb3Rpb25WYWx1ZSB9IGZyb20gJy4vaXMubWpzJztcblxuZnVuY3Rpb24gYWRkVmFsdWVUb1dpbGxDaGFuZ2UodmlzdWFsRWxlbWVudCwga2V5KSB7XG4gICAgY29uc3Qgd2lsbENoYW5nZSA9IHZpc3VhbEVsZW1lbnQuZ2V0VmFsdWUoXCJ3aWxsQ2hhbmdlXCIpO1xuICAgIC8qKlxuICAgICAqIEl0IGNvdWxkIGJlIHRoYXQgYSB1c2VyIGhhcyBzZXQgd2lsbENoYW5nZSB0byBhIHJlZ3VsYXIgTW90aW9uVmFsdWUsXG4gICAgICogaW4gd2hpY2ggY2FzZSB3ZSBjYW4ndCBhZGQgdGhlIHZhbHVlIHRvIGl0LlxuICAgICAqL1xuICAgIGlmIChpc1dpbGxDaGFuZ2VNb3Rpb25WYWx1ZSh3aWxsQ2hhbmdlKSkge1xuICAgICAgICByZXR1cm4gd2lsbENoYW5nZS5hZGQoa2V5KTtcbiAgICB9XG4gICAgZWxzZSBpZiAoIXdpbGxDaGFuZ2UgJiYgTW90aW9uR2xvYmFsQ29uZmlnLldpbGxDaGFuZ2UpIHtcbiAgICAgICAgY29uc3QgbmV3V2lsbENoYW5nZSA9IG5ldyBNb3Rpb25HbG9iYWxDb25maWcuV2lsbENoYW5nZShcImF1dG9cIik7XG4gICAgICAgIHZpc3VhbEVsZW1lbnQuYWRkVmFsdWUoXCJ3aWxsQ2hhbmdlXCIsIG5ld1dpbGxDaGFuZ2UpO1xuICAgICAgICBuZXdXaWxsQ2hhbmdlLmFkZChrZXkpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgYWRkVmFsdWVUb1dpbGxDaGFuZ2UgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFkZC13aWxsLWNoYW5nZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-dom/dist/es/value/will-change/is.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/will-change/is.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 */ isWillChangeMotionValue: () => (/* binding */ isWillChangeMotionValue)\n/* harmony export */ });\n/* harmony import */ var _utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/is-motion-value.mjs */ \"(ssr)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\nfunction isWillChangeMotionValue(value) {\n return Boolean((0,_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) && value.add);\n}\n\n\n//# sourceMappingURL=is.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3dpbGwtY2hhbmdlL2lzLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2RDs7QUFFN0Q7QUFDQSxtQkFBbUIseUVBQWE7QUFDaEM7O0FBRW1DO0FBQ25DIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS93aWxsLWNoYW5nZS9pcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJy4uL3V0aWxzL2lzLW1vdGlvbi12YWx1ZS5tanMnO1xuXG5mdW5jdGlvbiBpc1dpbGxDaGFuZ2VNb3Rpb25WYWx1ZSh2YWx1ZSkge1xuICAgIHJldHVybiBCb29sZWFuKGlzTW90aW9uVmFsdWUodmFsdWUpICYmIHZhbHVlLmFkZCk7XG59XG5cbmV4cG9ydCB7IGlzV2lsbENoYW5nZU1vdGlvblZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-dom/dist/es/value/will-change/is.mjs\n"); + +/***/ }) + +}; +; \ No newline at end of file diff --git a/.next/server/vendor-chunks/motion-utils.js b/.next/server/vendor-chunks/motion-utils.js new file mode 100644 index 00000000..780776d5 --- /dev/null +++ b/.next/server/vendor-chunks/motion-utils.js @@ -0,0 +1,275 @@ +"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/motion-utils"; +exports.ids = ["vendor-chunks/motion-utils"]; +exports.modules = { + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/array.mjs": +/*!*****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/array.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 */ addUniqueItem: () => (/* binding */ addUniqueItem),\n/* harmony export */ moveItem: () => (/* binding */ moveItem),\n/* harmony export */ removeItem: () => (/* binding */ removeItem)\n/* harmony export */ });\nfunction addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\n\n//# sourceMappingURL=array.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvYXJyYXkubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUrQztBQUMvQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9hcnJheS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gYWRkVW5pcXVlSXRlbShhcnIsIGl0ZW0pIHtcbiAgICBpZiAoYXJyLmluZGV4T2YoaXRlbSkgPT09IC0xKVxuICAgICAgICBhcnIucHVzaChpdGVtKTtcbn1cbmZ1bmN0aW9uIHJlbW92ZUl0ZW0oYXJyLCBpdGVtKSB7XG4gICAgY29uc3QgaW5kZXggPSBhcnIuaW5kZXhPZihpdGVtKTtcbiAgICBpZiAoaW5kZXggPiAtMSlcbiAgICAgICAgYXJyLnNwbGljZShpbmRleCwgMSk7XG59XG4vLyBBZGFwdGVkIGZyb20gYXJyYXktbW92ZVxuZnVuY3Rpb24gbW92ZUl0ZW0oWy4uLmFycl0sIGZyb21JbmRleCwgdG9JbmRleCkge1xuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSBmcm9tSW5kZXggPCAwID8gYXJyLmxlbmd0aCArIGZyb21JbmRleCA6IGZyb21JbmRleDtcbiAgICBpZiAoc3RhcnRJbmRleCA+PSAwICYmIHN0YXJ0SW5kZXggPCBhcnIubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdG9JbmRleCA8IDAgPyBhcnIubGVuZ3RoICsgdG9JbmRleCA6IHRvSW5kZXg7XG4gICAgICAgIGNvbnN0IFtpdGVtXSA9IGFyci5zcGxpY2UoZnJvbUluZGV4LCAxKTtcbiAgICAgICAgYXJyLnNwbGljZShlbmRJbmRleCwgMCwgaXRlbSk7XG4gICAgfVxuICAgIHJldHVybiBhcnI7XG59XG5cbmV4cG9ydCB7IGFkZFVuaXF1ZUl0ZW0sIG1vdmVJdGVtLCByZW1vdmVJdGVtIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcnJheS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/array.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/clamp.mjs": +/*!*****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/clamp.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 */ clamp: () => (/* binding */ clamp)\n/* harmony export */ });\nconst clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\n\n//# sourceMappingURL=clamp.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvY2xhbXAubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFaUI7QUFDakIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvY2xhbXAubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNsYW1wID0gKG1pbiwgbWF4LCB2KSA9PiB7XG4gICAgaWYgKHYgPiBtYXgpXG4gICAgICAgIHJldHVybiBtYXg7XG4gICAgaWYgKHYgPCBtaW4pXG4gICAgICAgIHJldHVybiBtaW47XG4gICAgcmV0dXJuIHY7XG59O1xuXG5leHBvcnQgeyBjbGFtcCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2xhbXAubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/clamp.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/anticipate.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 */ anticipate: () => (/* binding */ anticipate)\n/* harmony export */ });\n/* harmony import */ var _back_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./back.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * (0,_back_mjs__WEBPACK_IMPORTED_MODULE_0__.backIn)(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\n\n//# sourceMappingURL=anticipate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2FudGljaXBhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW9DOztBQUVwQywrQ0FBK0MsaURBQU07O0FBRS9CO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9hbnRpY2lwYXRlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiYWNrSW4gfSBmcm9tICcuL2JhY2subWpzJztcblxuY29uc3QgYW50aWNpcGF0ZSA9IChwKSA9PiAocCAqPSAyKSA8IDEgPyAwLjUgKiBiYWNrSW4ocCkgOiAwLjUgKiAoMiAtIE1hdGgucG93KDIsIC0xMCAqIChwIC0gMSkpKTtcblxuZXhwb3J0IHsgYW50aWNpcGF0ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW50aWNpcGF0ZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/easing/back.mjs": +/*!***********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/back.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 */ backIn: () => (/* binding */ backIn),\n/* harmony export */ backInOut: () => (/* binding */ backInOut),\n/* harmony export */ backOut: () => (/* binding */ backOut)\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n/* harmony import */ var _modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/mirror.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\");\n/* harmony import */ var _modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/reverse.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\");\n\n\n\n\nconst backOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.33, 1.53, 0.69, 0.99);\nconst backIn = /*@__PURE__*/ (0,_modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_1__.reverseEasing)(backOut);\nconst backInOut = /*@__PURE__*/ (0,_modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_2__.mirrorEasing)(backIn);\n\n\n//# sourceMappingURL=back.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2JhY2subWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFpRDtBQUNLO0FBQ0U7O0FBRXhELDhCQUE4Qiw4REFBVztBQUN6Qyw2QkFBNkIscUVBQWE7QUFDMUMsZ0NBQWdDLG1FQUFZOztBQUVOO0FBQ3RDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9iYWNrLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdWJpY0JlemllciB9IGZyb20gJy4vY3ViaWMtYmV6aWVyLm1qcyc7XG5pbXBvcnQgeyBtaXJyb3JFYXNpbmcgfSBmcm9tICcuL21vZGlmaWVycy9taXJyb3IubWpzJztcbmltcG9ydCB7IHJldmVyc2VFYXNpbmcgfSBmcm9tICcuL21vZGlmaWVycy9yZXZlcnNlLm1qcyc7XG5cbmNvbnN0IGJhY2tPdXQgPSAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyKDAuMzMsIDEuNTMsIDAuNjksIDAuOTkpO1xuY29uc3QgYmFja0luID0gLypAX19QVVJFX18qLyByZXZlcnNlRWFzaW5nKGJhY2tPdXQpO1xuY29uc3QgYmFja0luT3V0ID0gLypAX19QVVJFX18qLyBtaXJyb3JFYXNpbmcoYmFja0luKTtcblxuZXhwb3J0IHsgYmFja0luLCBiYWNrSW5PdXQsIGJhY2tPdXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJhY2subWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/easing/back.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/easing/circ.mjs": +/*!***********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/circ.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 */ circIn: () => (/* binding */ circIn),\n/* harmony export */ circInOut: () => (/* binding */ circInOut),\n/* harmony export */ circOut: () => (/* binding */ circOut)\n/* harmony export */ });\n/* harmony import */ var _modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/mirror.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\");\n/* harmony import */ var _modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/reverse.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\");\n\n\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = (0,_modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_0__.reverseEasing)(circIn);\nconst circInOut = (0,_modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_1__.mirrorEasing)(circIn);\n\n\n//# sourceMappingURL=circ.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2NpcmMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXNEO0FBQ0U7O0FBRXhEO0FBQ0EsZ0JBQWdCLHFFQUFhO0FBQzdCLGtCQUFrQixtRUFBWTs7QUFFUTtBQUN0QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvY2lyYy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWlycm9yRWFzaW5nIH0gZnJvbSAnLi9tb2RpZmllcnMvbWlycm9yLm1qcyc7XG5pbXBvcnQgeyByZXZlcnNlRWFzaW5nIH0gZnJvbSAnLi9tb2RpZmllcnMvcmV2ZXJzZS5tanMnO1xuXG5jb25zdCBjaXJjSW4gPSAocCkgPT4gMSAtIE1hdGguc2luKE1hdGguYWNvcyhwKSk7XG5jb25zdCBjaXJjT3V0ID0gcmV2ZXJzZUVhc2luZyhjaXJjSW4pO1xuY29uc3QgY2lyY0luT3V0ID0gbWlycm9yRWFzaW5nKGNpcmNJbik7XG5cbmV4cG9ydCB7IGNpcmNJbiwgY2lyY0luT3V0LCBjaXJjT3V0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jaXJjLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/easing/circ.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/cubic-bezier.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 */ cubicBezier: () => (/* binding */ cubicBezier)\n/* harmony export */ });\n/* harmony import */ var _noop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/noop.mjs\");\n\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticeably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return _noop_mjs__WEBPACK_IMPORTED_MODULE_0__.noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\n\n//# sourceMappingURL=cubic-bezier.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2N1YmljLWJlemllci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBbUM7O0FBRW5DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDJDQUFJO0FBQ25CO0FBQ0E7QUFDQTtBQUNBOztBQUV1QjtBQUN2QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvY3ViaWMtYmV6aWVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vbm9vcC5tanMnO1xuXG4vKlxuICBCZXppZXIgZnVuY3Rpb24gZ2VuZXJhdG9yXG4gIFRoaXMgaGFzIGJlZW4gbW9kaWZpZWQgZnJvbSBHYcOrdGFuIFJlbmF1ZGVhdSdzIEJlemllckVhc2luZ1xuICBodHRwczovL2dpdGh1Yi5jb20vZ3JlL2Jlemllci1lYXNpbmcvYmxvYi9tYXN0ZXIvc3JjL2luZGV4LmpzXG4gIGh0dHBzOi8vZ2l0aHViLmNvbS9ncmUvYmV6aWVyLWVhc2luZy9ibG9iL21hc3Rlci9MSUNFTlNFXG4gIFxuICBJJ3ZlIHJlbW92ZWQgdGhlIG5ld3RvblJhcGhzb25JdGVyYXRlIGFsZ28gYmVjYXVzZSBpbiBiZW5jaG1hcmtpbmcgaXRcbiAgd2Fzbid0IG5vdGljZWFibHkgZmFzdGVyIHRoYW4gYmluYXJ5U3ViZGl2aXNpb24sIGluZGVlZCByZW1vdmluZyBpdFxuICB1c3VhbGx5IGltcHJvdmVkIHRpbWVzLCBkZXBlbmRpbmcgb24gdGhlIGN1cnZlLlxuICBJIGFsc28gcmVtb3ZlZCB0aGUgbG9va3VwIHRhYmxlLCBhcyBmb3IgdGhlIGFkZGVkIGJ1bmRsZSBzaXplIGFuZCBsb29wIHdlJ3JlXG4gIG9ubHkgY3V0dGluZyB+NCBvciBzbyBzdWJkaXZpc2lvbiBpdGVyYXRpb25zLiBJIGJ1bXBlZCB0aGUgbWF4IGl0ZXJhdGlvbnMgdXBcbiAgdG8gMTIgdG8gY29tcGVuc2F0ZSBhbmQgdGhpcyBzdGlsbCB0ZW5kZWQgdG8gYmUgZmFzdGVyIGZvciBubyBwZXJjZWl2YWJsZVxuICBsb3NzIGluIGFjY3VyYWN5LlxuICBVc2FnZVxuICAgIGNvbnN0IGVhc2VPdXQgPSBjdWJpY0JlemllciguMTcsLjY3LC44MywuNjcpO1xuICAgIGNvbnN0IHggPSBlYXNlT3V0KDAuNSk7IC8vIHJldHVybnMgMC42MjcuLi5cbiovXG4vLyBSZXR1cm5zIHgodCkgZ2l2ZW4gdCwgeDEsIGFuZCB4Miwgb3IgeSh0KSBnaXZlbiB0LCB5MSwgYW5kIHkyLlxuY29uc3QgY2FsY0JlemllciA9ICh0LCBhMSwgYTIpID0+ICgoKDEuMCAtIDMuMCAqIGEyICsgMy4wICogYTEpICogdCArICgzLjAgKiBhMiAtIDYuMCAqIGExKSkgKiB0ICsgMy4wICogYTEpICpcbiAgICB0O1xuY29uc3Qgc3ViZGl2aXNpb25QcmVjaXNpb24gPSAwLjAwMDAwMDE7XG5jb25zdCBzdWJkaXZpc2lvbk1heEl0ZXJhdGlvbnMgPSAxMjtcbmZ1bmN0aW9uIGJpbmFyeVN1YmRpdmlkZSh4LCBsb3dlckJvdW5kLCB1cHBlckJvdW5kLCBtWDEsIG1YMikge1xuICAgIGxldCBjdXJyZW50WDtcbiAgICBsZXQgY3VycmVudFQ7XG4gICAgbGV0IGkgPSAwO1xuICAgIGRvIHtcbiAgICAgICAgY3VycmVudFQgPSBsb3dlckJvdW5kICsgKHVwcGVyQm91bmQgLSBsb3dlckJvdW5kKSAvIDIuMDtcbiAgICAgICAgY3VycmVudFggPSBjYWxjQmV6aWVyKGN1cnJlbnRULCBtWDEsIG1YMikgLSB4O1xuICAgICAgICBpZiAoY3VycmVudFggPiAwLjApIHtcbiAgICAgICAgICAgIHVwcGVyQm91bmQgPSBjdXJyZW50VDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxvd2VyQm91bmQgPSBjdXJyZW50VDtcbiAgICAgICAgfVxuICAgIH0gd2hpbGUgKE1hdGguYWJzKGN1cnJlbnRYKSA+IHN1YmRpdmlzaW9uUHJlY2lzaW9uICYmXG4gICAgICAgICsraSA8IHN1YmRpdmlzaW9uTWF4SXRlcmF0aW9ucyk7XG4gICAgcmV0dXJuIGN1cnJlbnRUO1xufVxuZnVuY3Rpb24gY3ViaWNCZXppZXIobVgxLCBtWTEsIG1YMiwgbVkyKSB7XG4gICAgLy8gSWYgdGhpcyBpcyBhIGxpbmVhciBncmFkaWVudCwgcmV0dXJuIGxpbmVhciBlYXNpbmdcbiAgICBpZiAobVgxID09PSBtWTEgJiYgbVgyID09PSBtWTIpXG4gICAgICAgIHJldHVybiBub29wO1xuICAgIGNvbnN0IGdldFRGb3JYID0gKGFYKSA9PiBiaW5hcnlTdWJkaXZpZGUoYVgsIDAsIDEsIG1YMSwgbVgyKTtcbiAgICAvLyBJZiBhbmltYXRpb24gaXMgYXQgc3RhcnQvZW5kLCByZXR1cm4gdCB3aXRob3V0IGVhc2luZ1xuICAgIHJldHVybiAodCkgPT4gdCA9PT0gMCB8fCB0ID09PSAxID8gdCA6IGNhbGNCZXppZXIoZ2V0VEZvclgodCksIG1ZMSwgbVkyKTtcbn1cblxuZXhwb3J0IHsgY3ViaWNCZXppZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWN1YmljLWJlemllci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/easing/ease.mjs": +/*!***********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/ease.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 */ easeIn: () => (/* binding */ easeIn),\n/* harmony export */ easeInOut: () => (/* binding */ easeInOut),\n/* harmony export */ easeOut: () => (/* binding */ easeOut)\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n\n\nconst easeIn = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.42, 0, 1, 1);\nconst easeOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0, 0, 0.58, 1);\nconst easeInOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.42, 0, 0.58, 1);\n\n\n//# sourceMappingURL=ease.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2Vhc2UubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBaUQ7O0FBRWpELDZCQUE2Qiw4REFBVztBQUN4Qyw4QkFBOEIsOERBQVc7QUFDekMsZ0NBQWdDLDhEQUFXOztBQUVMO0FBQ3RDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9lYXNlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjdWJpY0JlemllciB9IGZyb20gJy4vY3ViaWMtYmV6aWVyLm1qcyc7XG5cbmNvbnN0IGVhc2VJbiA9IC8qQF9fUFVSRV9fKi8gY3ViaWNCZXppZXIoMC40MiwgMCwgMSwgMSk7XG5jb25zdCBlYXNlT3V0ID0gLypAX19QVVJFX18qLyBjdWJpY0JlemllcigwLCAwLCAwLjU4LCAxKTtcbmNvbnN0IGVhc2VJbk91dCA9IC8qQF9fUFVSRV9fKi8gY3ViaWNCZXppZXIoMC40MiwgMCwgMC41OCwgMSk7XG5cbmV4cG9ydCB7IGVhc2VJbiwgZWFzZUluT3V0LCBlYXNlT3V0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lYXNlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/easing/ease.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/modifiers/mirror.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 */ mirrorEasing: () => (/* binding */ mirrorEasing)\n/* harmony export */ });\n// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\n\n//# sourceMappingURL=mirror.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL21vZGlmaWVycy9taXJyb3IubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRXdCO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9tb2RpZmllcnMvbWlycm9yLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBY2NlcHRzIGFuIGVhc2luZyBmdW5jdGlvbiBhbmQgcmV0dXJucyBhIG5ldyBvbmUgdGhhdCBvdXRwdXRzIG1pcnJvcmVkIHZhbHVlcyBmb3Jcbi8vIHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgYW5pbWF0aW9uLiBUdXJucyBlYXNlSW4gaW50byBlYXNlSW5PdXQuXG5jb25zdCBtaXJyb3JFYXNpbmcgPSAoZWFzaW5nKSA9PiAocCkgPT4gcCA8PSAwLjUgPyBlYXNpbmcoMiAqIHApIC8gMiA6ICgyIC0gZWFzaW5nKDIgKiAoMSAtIHApKSkgLyAyO1xuXG5leHBvcnQgeyBtaXJyb3JFYXNpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1pcnJvci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/modifiers/reverse.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 */ reverseEasing: () => (/* binding */ reverseEasing)\n/* harmony export */ });\n// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\n\n//# sourceMappingURL=reverse.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL21vZGlmaWVycy9yZXZlcnNlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvbW9kaWZpZXJzL3JldmVyc2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFjY2VwdHMgYW4gZWFzaW5nIGZ1bmN0aW9uIGFuZCByZXR1cm5zIGEgbmV3IG9uZSB0aGF0IG91dHB1dHMgcmV2ZXJzZWQgdmFsdWVzLlxuLy8gVHVybnMgZWFzZUluIGludG8gZWFzZU91dC5cbmNvbnN0IHJldmVyc2VFYXNpbmcgPSAoZWFzaW5nKSA9PiAocCkgPT4gMSAtIGVhc2luZygxIC0gcCk7XG5cbmV4cG9ydCB7IHJldmVyc2VFYXNpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJldmVyc2UubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.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 */ isBezierDefinition: () => (/* binding */ isBezierDefinition)\n/* harmony export */ });\nconst isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\n\n//# sourceMappingURL=is-bezier-definition.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL3V0aWxzL2lzLWJlemllci1kZWZpbml0aW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRThCO0FBQzlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy91dGlscy9pcy1iZXppZXItZGVmaW5pdGlvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNCZXppZXJEZWZpbml0aW9uID0gKGVhc2luZykgPT4gQXJyYXkuaXNBcnJheShlYXNpbmcpICYmIHR5cGVvZiBlYXNpbmdbMF0gPT09IFwibnVtYmVyXCI7XG5cbmV4cG9ydCB7IGlzQmV6aWVyRGVmaW5pdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtYmV6aWVyLWRlZmluaXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.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 */ isEasingArray: () => (/* binding */ isEasingArray)\n/* harmony export */ });\nconst isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\n\n//# sourceMappingURL=is-easing-array.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL3V0aWxzL2lzLWVhc2luZy1hcnJheS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL3V0aWxzL2lzLWVhc2luZy1hcnJheS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNFYXNpbmdBcnJheSA9IChlYXNlKSA9PiB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZWFzZSkgJiYgdHlwZW9mIGVhc2VbMF0gIT09IFwibnVtYmVyXCI7XG59O1xuXG5leHBvcnQgeyBpc0Vhc2luZ0FycmF5IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1lYXNpbmctYXJyYXkubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs": +/*!****************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/utils/map.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 */ easingDefinitionToFunction: () => (/* binding */ easingDefinitionToFunction)\n/* harmony export */ });\n/* harmony import */ var _errors_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../errors.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _noop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../noop.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _anticipate_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../anticipate.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\");\n/* harmony import */ var _back_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../back.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n/* harmony import */ var _circ_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../circ.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../cubic-bezier.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n/* harmony import */ var _ease_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ease.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/ease.mjs\");\n/* harmony import */ var _is_bezier_definition_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./is-bezier-definition.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\");\n\n\n\n\n\n\n\n\n\nconst easingLookup = {\n linear: _noop_mjs__WEBPACK_IMPORTED_MODULE_0__.noop,\n easeIn: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeIn,\n easeInOut: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeInOut,\n easeOut: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeOut,\n circIn: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circIn,\n circInOut: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circInOut,\n circOut: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circOut,\n backIn: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backIn,\n backInOut: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backInOut,\n backOut: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backOut,\n anticipate: _anticipate_mjs__WEBPACK_IMPORTED_MODULE_4__.anticipate,\n};\nconst isValidEasing = (easing) => {\n return typeof easing === \"string\";\n};\nconst easingDefinitionToFunction = (definition) => {\n if ((0,_is_bezier_definition_mjs__WEBPACK_IMPORTED_MODULE_5__.isBezierDefinition)(definition)) {\n // If cubic bezier definition, create bezier curve\n (0,_errors_mjs__WEBPACK_IMPORTED_MODULE_6__.invariant)(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`, \"cubic-bezier-length\");\n const [x1, y1, x2, y2] = definition;\n return (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_7__.cubicBezier)(x1, y1, x2, y2);\n }\n else if (isValidEasing(definition)) {\n // Else lookup from table\n (0,_errors_mjs__WEBPACK_IMPORTED_MODULE_6__.invariant)(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`, \"invalid-easing-type\");\n return easingLookup[definition];\n }\n return definition;\n};\n\n\n//# sourceMappingURL=map.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL3V0aWxzL21hcC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQTZDO0FBQ1A7QUFDUztBQUNVO0FBQ0E7QUFDUDtBQUNPO0FBQ087O0FBRWhFO0FBQ0EsWUFBWSwyQ0FBSTtBQUNoQixVQUFVO0FBQ1YsYUFBYTtBQUNiLFdBQVc7QUFDWCxVQUFVO0FBQ1YsYUFBYTtBQUNiLFdBQVc7QUFDWCxVQUFVO0FBQ1YsYUFBYTtBQUNiLFdBQVc7QUFDWCxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNkVBQWtCO0FBQzFCO0FBQ0EsUUFBUSxzREFBUztBQUNqQjtBQUNBLGVBQWUsOERBQVc7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsUUFBUSxzREFBUyxpRUFBaUUsV0FBVztBQUM3RjtBQUNBO0FBQ0E7QUFDQTs7QUFFc0M7QUFDdEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL3V0aWxzL21hcC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW52YXJpYW50IH0gZnJvbSAnLi4vLi4vZXJyb3JzLm1qcyc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi4vLi4vbm9vcC5tanMnO1xuaW1wb3J0IHsgYW50aWNpcGF0ZSB9IGZyb20gJy4uL2FudGljaXBhdGUubWpzJztcbmltcG9ydCB7IGJhY2tJbiwgYmFja0luT3V0LCBiYWNrT3V0IH0gZnJvbSAnLi4vYmFjay5tanMnO1xuaW1wb3J0IHsgY2lyY0luLCBjaXJjSW5PdXQsIGNpcmNPdXQgfSBmcm9tICcuLi9jaXJjLm1qcyc7XG5pbXBvcnQgeyBjdWJpY0JlemllciB9IGZyb20gJy4uL2N1YmljLWJlemllci5tanMnO1xuaW1wb3J0IHsgZWFzZUluLCBlYXNlSW5PdXQsIGVhc2VPdXQgfSBmcm9tICcuLi9lYXNlLm1qcyc7XG5pbXBvcnQgeyBpc0JlemllckRlZmluaXRpb24gfSBmcm9tICcuL2lzLWJlemllci1kZWZpbml0aW9uLm1qcyc7XG5cbmNvbnN0IGVhc2luZ0xvb2t1cCA9IHtcbiAgICBsaW5lYXI6IG5vb3AsXG4gICAgZWFzZUluLFxuICAgIGVhc2VJbk91dCxcbiAgICBlYXNlT3V0LFxuICAgIGNpcmNJbixcbiAgICBjaXJjSW5PdXQsXG4gICAgY2lyY091dCxcbiAgICBiYWNrSW4sXG4gICAgYmFja0luT3V0LFxuICAgIGJhY2tPdXQsXG4gICAgYW50aWNpcGF0ZSxcbn07XG5jb25zdCBpc1ZhbGlkRWFzaW5nID0gKGVhc2luZykgPT4ge1xuICAgIHJldHVybiB0eXBlb2YgZWFzaW5nID09PSBcInN0cmluZ1wiO1xufTtcbmNvbnN0IGVhc2luZ0RlZmluaXRpb25Ub0Z1bmN0aW9uID0gKGRlZmluaXRpb24pID0+IHtcbiAgICBpZiAoaXNCZXppZXJEZWZpbml0aW9uKGRlZmluaXRpb24pKSB7XG4gICAgICAgIC8vIElmIGN1YmljIGJlemllciBkZWZpbml0aW9uLCBjcmVhdGUgYmV6aWVyIGN1cnZlXG4gICAgICAgIGludmFyaWFudChkZWZpbml0aW9uLmxlbmd0aCA9PT0gNCwgYEN1YmljIGJlemllciBhcnJheXMgbXVzdCBjb250YWluIGZvdXIgbnVtZXJpY2FsIHZhbHVlcy5gLCBcImN1YmljLWJlemllci1sZW5ndGhcIik7XG4gICAgICAgIGNvbnN0IFt4MSwgeTEsIHgyLCB5Ml0gPSBkZWZpbml0aW9uO1xuICAgICAgICByZXR1cm4gY3ViaWNCZXppZXIoeDEsIHkxLCB4MiwgeTIpO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1ZhbGlkRWFzaW5nKGRlZmluaXRpb24pKSB7XG4gICAgICAgIC8vIEVsc2UgbG9va3VwIGZyb20gdGFibGVcbiAgICAgICAgaW52YXJpYW50KGVhc2luZ0xvb2t1cFtkZWZpbml0aW9uXSAhPT0gdW5kZWZpbmVkLCBgSW52YWxpZCBlYXNpbmcgdHlwZSAnJHtkZWZpbml0aW9ufSdgLCBcImludmFsaWQtZWFzaW5nLXR5cGVcIik7XG4gICAgICAgIHJldHVybiBlYXNpbmdMb29rdXBbZGVmaW5pdGlvbl07XG4gICAgfVxuICAgIHJldHVybiBkZWZpbml0aW9uO1xufTtcblxuZXhwb3J0IHsgZWFzaW5nRGVmaW5pdGlvblRvRnVuY3Rpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1hcC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/errors.mjs": +/*!******************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/errors.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 */ invariant: () => (/* binding */ invariant),\n/* harmony export */ warning: () => (/* binding */ warning)\n/* harmony export */ });\n/* harmony import */ var _format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./format-error-message.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/format-error-message.mjs\");\n\n\nlet warning = () => { };\nlet invariant = () => { };\nif (typeof process !== \"undefined\" &&\n \"development\" !== \"production\") {\n warning = (check, message, errorCode) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\n }\n };\n invariant = (check, message, errorCode) => {\n if (!check) {\n throw new Error((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\n }\n };\n}\n\n\n//# sourceMappingURL=errors.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZXJyb3JzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBZ0U7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBLElBQUksYUFBcUI7QUFDekI7QUFDQTtBQUNBLHlCQUF5Qiw2RUFBa0I7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsNkVBQWtCO0FBQzlDO0FBQ0E7QUFDQTs7QUFFOEI7QUFDOUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZXJyb3JzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXRFcnJvck1lc3NhZ2UgfSBmcm9tICcuL2Zvcm1hdC1lcnJvci1tZXNzYWdlLm1qcyc7XG5cbmxldCB3YXJuaW5nID0gKCkgPT4geyB9O1xubGV0IGludmFyaWFudCA9ICgpID0+IHsgfTtcbmlmICh0eXBlb2YgcHJvY2VzcyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgIHByb2Nlc3MuZW52Py5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICB3YXJuaW5nID0gKGNoZWNrLCBtZXNzYWdlLCBlcnJvckNvZGUpID0+IHtcbiAgICAgICAgaWYgKCFjaGVjayAmJiB0eXBlb2YgY29uc29sZSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGZvcm1hdEVycm9yTWVzc2FnZShtZXNzYWdlLCBlcnJvckNvZGUpKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgaW52YXJpYW50ID0gKGNoZWNrLCBtZXNzYWdlLCBlcnJvckNvZGUpID0+IHtcbiAgICAgICAgaWYgKCFjaGVjaykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGZvcm1hdEVycm9yTWVzc2FnZShtZXNzYWdlLCBlcnJvckNvZGUpKTtcbiAgICAgICAgfVxuICAgIH07XG59XG5cbmV4cG9ydCB7IGludmFyaWFudCwgd2FybmluZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXJyb3JzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/errors.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/format-error-message.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/format-error-message.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 */ formatErrorMessage: () => (/* binding */ formatErrorMessage)\n/* harmony export */ });\nfunction formatErrorMessage(message, errorCode) {\n return errorCode\n ? `${message}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${errorCode}`\n : message;\n}\n\n\n//# sourceMappingURL=format-error-message.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZm9ybWF0LWVycm9yLW1lc3NhZ2UubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0EsYUFBYSxRQUFRLHlGQUF5RixVQUFVO0FBQ3hIO0FBQ0E7O0FBRThCO0FBQzlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Zvcm1hdC1lcnJvci1tZXNzYWdlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBmb3JtYXRFcnJvck1lc3NhZ2UobWVzc2FnZSwgZXJyb3JDb2RlKSB7XG4gICAgcmV0dXJuIGVycm9yQ29kZVxuICAgICAgICA/IGAke21lc3NhZ2V9LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgc3RlcHMgZm9yIHNvbHZpbmcsIHZpc2l0IGh0dHBzOi8vbW90aW9uLmRldi90cm91Ymxlc2hvb3RpbmcvJHtlcnJvckNvZGV9YFxuICAgICAgICA6IG1lc3NhZ2U7XG59XG5cbmV4cG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Zm9ybWF0LWVycm9yLW1lc3NhZ2UubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/format-error-message.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/global-config.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/global-config.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 */ MotionGlobalConfig: () => (/* binding */ MotionGlobalConfig)\n/* harmony export */ });\nconst MotionGlobalConfig = {};\n\n\n//# sourceMappingURL=global-config.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZ2xvYmFsLWNvbmZpZy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUU4QjtBQUM5QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9nbG9iYWwtY29uZmlnLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBNb3Rpb25HbG9iYWxDb25maWcgPSB7fTtcblxuZXhwb3J0IHsgTW90aW9uR2xvYmFsQ29uZmlnIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nbG9iYWwtY29uZmlnLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/global-config.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/is-numerical-string.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 */ isNumericalString: () => (/* binding */ isNumericalString)\n/* harmony export */ });\n/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\n\n\n//# sourceMappingURL=is-numerical-string.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvaXMtbnVtZXJpY2FsLXN0cmluZy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy1udW1lcmljYWwtc3RyaW5nLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIGlmIHZhbHVlIGlzIGEgbnVtZXJpY2FsIHN0cmluZywgaWUgYSBzdHJpbmcgdGhhdCBpcyBwdXJlbHkgYSBudW1iZXIgZWcgXCIxMDBcIiBvciBcIi0xMDAuMVwiXG4gKi9cbmNvbnN0IGlzTnVtZXJpY2FsU3RyaW5nID0gKHYpID0+IC9eLT8oPzpcXGQrKD86XFwuXFxkKyk/fFxcLlxcZCspJC91LnRlc3Qodik7XG5cbmV4cG9ydCB7IGlzTnVtZXJpY2FsU3RyaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1udW1lcmljYWwtc3RyaW5nLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/is-object.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/is-object.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 */ isObject: () => (/* binding */ isObject)\n/* harmony export */ });\nfunction isObject(value) {\n return typeof value === \"object\" && value !== null;\n}\n\n\n//# sourceMappingURL=is-object.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvaXMtb2JqZWN0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBOztBQUVvQjtBQUNwQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy1vYmplY3QubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJiB2YWx1ZSAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IHsgaXNPYmplY3QgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLW9iamVjdC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/is-object.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/is-zero-value-string.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 */ isZeroValueString: () => (/* binding */ isZeroValueString)\n/* harmony export */ });\n/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\n\n\n//# sourceMappingURL=is-zero-value-string.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvaXMtemVyby12YWx1ZS1zdHJpbmcubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNkI7QUFDN0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvaXMtemVyby12YWx1ZS1zdHJpbmcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgemVybyB2YWx1ZSBzdHJpbmcgbGlrZSBcIjBweFwiIG9yIFwiMCVcIlxuICovXG5jb25zdCBpc1plcm9WYWx1ZVN0cmluZyA9ICh2KSA9PiAvXjBbXi5cXHNdKyQvdS50ZXN0KHYpO1xuXG5leHBvcnQgeyBpc1plcm9WYWx1ZVN0cmluZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtemVyby12YWx1ZS1zdHJpbmcubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/memo.mjs": +/*!****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/memo.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 */ memo: () => (/* binding */ memo)\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\nfunction memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\n\n//# sourceMappingURL=memo.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvbWVtby5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZ0I7QUFDaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvbWVtby5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyojX19OT19TSURFX0VGRkVDVFNfXyovXG5mdW5jdGlvbiBtZW1vKGNhbGxiYWNrKSB7XG4gICAgbGV0IHJlc3VsdDtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICByZXN1bHQgPSBjYWxsYmFjaygpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG59XG5cbmV4cG9ydCB7IG1lbW8gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1lbW8ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/memo.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/noop.mjs": +/*!****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/noop.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 */ noop: () => (/* binding */ noop)\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\nconst noop = (any) => any;\n\n\n//# sourceMappingURL=noop.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvbm9vcC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7O0FBRWdCO0FBQ2hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL25vb3AubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qI19fTk9fU0lERV9FRkZFQ1RTX18qL1xuY29uc3Qgbm9vcCA9IChhbnkpID0+IGFueTtcblxuZXhwb3J0IHsgbm9vcCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bm9vcC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/noop.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/pipe.mjs": +/*!****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/pipe.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 */ pipe: () => (/* binding */ pipe)\n/* harmony export */ });\n/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\n\n//# sourceMappingURL=pipe.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvcGlwZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxjQUFjO0FBQzFCLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRWdCO0FBQ2hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL3BpcGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGlwZVxuICogQ29tcG9zZSBvdGhlciB0cmFuc2Zvcm1lcnMgdG8gcnVuIGxpbmVhcmlseVxuICogcGlwZShtaW4oMjApLCBtYXgoNDApKVxuICogQHBhcmFtICB7Li4uZnVuY3Rpb25zfSB0cmFuc2Zvcm1lcnNcbiAqIEByZXR1cm4ge2Z1bmN0aW9ufVxuICovXG5jb25zdCBjb21iaW5lRnVuY3Rpb25zID0gKGEsIGIpID0+ICh2KSA9PiBiKGEodikpO1xuY29uc3QgcGlwZSA9ICguLi50cmFuc2Zvcm1lcnMpID0+IHRyYW5zZm9ybWVycy5yZWR1Y2UoY29tYmluZUZ1bmN0aW9ucyk7XG5cbmV4cG9ydCB7IHBpcGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBpcGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/pipe.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/progress.mjs": +/*!********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/progress.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 */ progress: () => (/* binding */ progress)\n/* harmony export */ });\n/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\n/*#__NO_SIDE_EFFECTS__*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\n\n//# sourceMappingURL=progress.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvcHJvZ3Jlc3MubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFb0I7QUFDcEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvcHJvZ3Jlc3MubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gIFByb2dyZXNzIHdpdGhpbiBnaXZlbiByYW5nZVxuXG4gIEdpdmVuIGEgbG93ZXIgbGltaXQgYW5kIGFuIHVwcGVyIGxpbWl0LCB3ZSByZXR1cm4gdGhlIHByb2dyZXNzXG4gIChleHByZXNzZWQgYXMgYSBudW1iZXIgMC0xKSByZXByZXNlbnRlZCBieSB0aGUgZ2l2ZW4gdmFsdWUsIGFuZFxuICBsaW1pdCB0aGF0IHByb2dyZXNzIHRvIHdpdGhpbiAwLTEuXG5cbiAgQHBhcmFtIFtudW1iZXJdOiBMb3dlciBsaW1pdFxuICBAcGFyYW0gW251bWJlcl06IFVwcGVyIGxpbWl0XG4gIEBwYXJhbSBbbnVtYmVyXTogVmFsdWUgdG8gZmluZCBwcm9ncmVzcyB3aXRoaW4gZ2l2ZW4gcmFuZ2VcbiAgQHJldHVybiBbbnVtYmVyXTogUHJvZ3Jlc3Mgb2YgdmFsdWUgd2l0aGluIHJhbmdlIGFzIGV4cHJlc3NlZCAwLTFcbiovXG4vKiNfX05PX1NJREVfRUZGRUNUU19fKi9cbmNvbnN0IHByb2dyZXNzID0gKGZyb20sIHRvLCB2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHRvRnJvbURpZmZlcmVuY2UgPSB0byAtIGZyb207XG4gICAgcmV0dXJuIHRvRnJvbURpZmZlcmVuY2UgPT09IDAgPyAxIDogKHZhbHVlIC0gZnJvbSkgLyB0b0Zyb21EaWZmZXJlbmNlO1xufTtcblxuZXhwb3J0IHsgcHJvZ3Jlc3MgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByb2dyZXNzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/progress.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/subscription-manager.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/subscription-manager.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 */ SubscriptionManager: () => (/* binding */ SubscriptionManager)\n/* harmony export */ });\n/* harmony import */ var _array_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/array.mjs\");\n\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n (0,_array_mjs__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.subscriptions, handler);\n return () => (0,_array_mjs__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\n\n//# sourceMappingURL=subscription-manager.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvc3Vic2NyaXB0aW9uLW1hbmFnZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdEOztBQUV4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx5REFBYTtBQUNyQixxQkFBcUIsc0RBQVU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHNCQUFzQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFK0I7QUFDL0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvc3Vic2NyaXB0aW9uLW1hbmFnZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFVuaXF1ZUl0ZW0sIHJlbW92ZUl0ZW0gfSBmcm9tICcuL2FycmF5Lm1qcyc7XG5cbmNsYXNzIFN1YnNjcmlwdGlvbk1hbmFnZXIge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG4gICAgYWRkKGhhbmRsZXIpIHtcbiAgICAgICAgYWRkVW5pcXVlSXRlbSh0aGlzLnN1YnNjcmlwdGlvbnMsIGhhbmRsZXIpO1xuICAgICAgICByZXR1cm4gKCkgPT4gcmVtb3ZlSXRlbSh0aGlzLnN1YnNjcmlwdGlvbnMsIGhhbmRsZXIpO1xuICAgIH1cbiAgICBub3RpZnkoYSwgYiwgYykge1xuICAgICAgICBjb25zdCBudW1TdWJzY3JpcHRpb25zID0gdGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aDtcbiAgICAgICAgaWYgKCFudW1TdWJzY3JpcHRpb25zKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAobnVtU3Vic2NyaXB0aW9ucyA9PT0gMSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGVyZSdzIG9ubHkgYSBzaW5nbGUgaGFuZGxlciB3ZSBjYW4ganVzdCBjYWxsIGl0IHdpdGhvdXQgaW52b2tpbmcgYSBsb29wLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnNbMF0oYSwgYiwgYyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVN1YnNjcmlwdGlvbnM7IGkrKykge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIENoZWNrIHdoZXRoZXIgdGhlIGhhbmRsZXIgZXhpc3RzIGJlZm9yZSBmaXJpbmcgYXMgaXQncyBwb3NzaWJsZVxuICAgICAgICAgICAgICAgICAqIHRoZSBzdWJzY3JpcHRpb25zIHdlcmUgbW9kaWZpZWQgZHVyaW5nIHRoaXMgbG9vcCBydW5uaW5nLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLnN1YnNjcmlwdGlvbnNbaV07XG4gICAgICAgICAgICAgICAgaGFuZGxlciAmJiBoYW5kbGVyKGEsIGIsIGMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldFNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoO1xuICAgIH1cbiAgICBjbGVhcigpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCA9IDA7XG4gICAgfVxufVxuXG5leHBvcnQgeyBTdWJzY3JpcHRpb25NYW5hZ2VyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdWJzY3JpcHRpb24tbWFuYWdlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/time-conversion.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/time-conversion.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 */ millisecondsToSeconds: () => (/* binding */ millisecondsToSeconds),\n/* harmony export */ secondsToMilliseconds: () => (/* binding */ secondsToMilliseconds)\n/* harmony export */ });\n/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\n/*#__NO_SIDE_EFFECTS__*/\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\n/*#__NO_SIDE_EFFECTS__*/\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\n\n//# sourceMappingURL=time-conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvdGltZS1jb252ZXJzaW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV3RDtBQUN4RCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy90aW1lLWNvbnZlcnNpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29udmVydHMgc2Vjb25kcyB0byBtaWxsaXNlY29uZHNcbiAqXG4gKiBAcGFyYW0gc2Vjb25kcyAtIFRpbWUgaW4gc2Vjb25kcy5cbiAqIEByZXR1cm4gbWlsbGlzZWNvbmRzIC0gQ29udmVydGVkIHRpbWUgaW4gbWlsbGlzZWNvbmRzLlxuICovXG4vKiNfX05PX1NJREVfRUZGRUNUU19fKi9cbmNvbnN0IHNlY29uZHNUb01pbGxpc2Vjb25kcyA9IChzZWNvbmRzKSA9PiBzZWNvbmRzICogMTAwMDtcbi8qI19fTk9fU0lERV9FRkZFQ1RTX18qL1xuY29uc3QgbWlsbGlzZWNvbmRzVG9TZWNvbmRzID0gKG1pbGxpc2Vjb25kcykgPT4gbWlsbGlzZWNvbmRzIC8gMTAwMDtcblxuZXhwb3J0IHsgbWlsbGlzZWNvbmRzVG9TZWNvbmRzLCBzZWNvbmRzVG9NaWxsaXNlY29uZHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRpbWUtY29udmVyc2lvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/time-conversion.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/velocity-per-second.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 */ velocityPerSecond: () => (/* binding */ velocityPerSecond)\n/* harmony export */ });\n/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\n\n//# sourceMappingURL=velocity-per-second.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvdmVsb2NpdHktcGVyLXNlY29uZC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy92ZWxvY2l0eS1wZXItc2Vjb25kLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICBDb252ZXJ0IHZlbG9jaXR5IGludG8gdmVsb2NpdHkgcGVyIHNlY29uZFxuXG4gIEBwYXJhbSBbbnVtYmVyXTogVW5pdCBwZXIgZnJhbWVcbiAgQHBhcmFtIFtudW1iZXJdOiBGcmFtZSBkdXJhdGlvbiBpbiBtc1xuKi9cbmZ1bmN0aW9uIHZlbG9jaXR5UGVyU2Vjb25kKHZlbG9jaXR5LCBmcmFtZUR1cmF0aW9uKSB7XG4gICAgcmV0dXJuIGZyYW1lRHVyYXRpb24gPyB2ZWxvY2l0eSAqICgxMDAwIC8gZnJhbWVEdXJhdGlvbikgOiAwO1xufVxuXG5leHBvcnQgeyB2ZWxvY2l0eVBlclNlY29uZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmVsb2NpdHktcGVyLXNlY29uZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\n"); + +/***/ }), + +/***/ "(ssr)/./node_modules/motion-utils/dist/es/warn-once.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/warn-once.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 */ hasWarned: () => (/* binding */ hasWarned),\n/* harmony export */ warnOnce: () => (/* binding */ warnOnce)\n/* harmony export */ });\n/* harmony import */ var _format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./format-error-message.mjs */ \"(ssr)/./node_modules/motion-utils/dist/es/format-error-message.mjs\");\n\n\nconst warned = new Set();\nfunction hasWarned(message) {\n return warned.has(message);\n}\nfunction warnOnce(condition, message, errorCode) {\n if (condition || warned.has(message))\n return;\n console.warn((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\n warned.add(message);\n}\n\n\n//# sourceMappingURL=warn-once.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvd2Fybi1vbmNlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBZ0U7O0FBRWhFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDZFQUFrQjtBQUNuQztBQUNBOztBQUUrQjtBQUMvQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy93YXJuLW9uY2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4vZm9ybWF0LWVycm9yLW1lc3NhZ2UubWpzJztcblxuY29uc3Qgd2FybmVkID0gbmV3IFNldCgpO1xuZnVuY3Rpb24gaGFzV2FybmVkKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gd2FybmVkLmhhcyhtZXNzYWdlKTtcbn1cbmZ1bmN0aW9uIHdhcm5PbmNlKGNvbmRpdGlvbiwgbWVzc2FnZSwgZXJyb3JDb2RlKSB7XG4gICAgaWYgKGNvbmRpdGlvbiB8fCB3YXJuZWQuaGFzKG1lc3NhZ2UpKVxuICAgICAgICByZXR1cm47XG4gICAgY29uc29sZS53YXJuKGZvcm1hdEVycm9yTWVzc2FnZShtZXNzYWdlLCBlcnJvckNvZGUpKTtcbiAgICB3YXJuZWQuYWRkKG1lc3NhZ2UpO1xufVxuXG5leHBvcnQgeyBoYXNXYXJuZWQsIHdhcm5PbmNlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD13YXJuLW9uY2UubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/motion-utils/dist/es/warn-once.mjs\n"); + +/***/ }) + +}; +; \ No newline at end of file diff --git a/.next/server/vendor-chunks/next.js b/.next/server/vendor-chunks/next.js index 04193bd2..40df2852 100644 --- a/.next/server/vendor-chunks/next.js +++ b/.next/server/vendor-chunks/next.js @@ -10,6 +10,423 @@ exports.id = "vendor-chunks/next"; exports.ids = ["vendor-chunks/next"]; exports.modules = { +/***/ "./node_modules/next/dist/build/templates/helpers.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/build/templates/helpers.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("/**\n * Hoists a name from a module or promised module.\n *\n * @param module the module to hoist the name from\n * @param name the name to hoist\n * @returns the value on the module (or promised module)\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hoist\", ({\n enumerable: true,\n get: function() {\n return hoist;\n }\n}));\nfunction hoist(module, name) {\n // If the name is available in the module, return it.\n if (name in module) {\n return module[name];\n }\n // If a property called `then` exists, assume it's a promise and\n // return a promise that resolves to the name.\n if ('then' in module && typeof module.then === 'function') {\n return module.then((mod)=>hoist(mod, name));\n }\n // If we're trying to hoise the default export, and the module is a function,\n // return the module itself.\n if (typeof module === 'function' && name === 'default') {\n return module;\n }\n // Otherwise, return undefined.\n return undefined;\n}\n\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3RlbXBsYXRlcy9oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQWlCO0FBQ2pCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvdGVtcGxhdGVzL2hlbHBlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBIb2lzdHMgYSBuYW1lIGZyb20gYSBtb2R1bGUgb3IgcHJvbWlzZWQgbW9kdWxlLlxuICpcbiAqIEBwYXJhbSBtb2R1bGUgdGhlIG1vZHVsZSB0byBob2lzdCB0aGUgbmFtZSBmcm9tXG4gKiBAcGFyYW0gbmFtZSB0aGUgbmFtZSB0byBob2lzdFxuICogQHJldHVybnMgdGhlIHZhbHVlIG9uIHRoZSBtb2R1bGUgKG9yIHByb21pc2VkIG1vZHVsZSlcbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImhvaXN0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBob2lzdDtcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGhvaXN0KG1vZHVsZSwgbmFtZSkge1xuICAgIC8vIElmIHRoZSBuYW1lIGlzIGF2YWlsYWJsZSBpbiB0aGUgbW9kdWxlLCByZXR1cm4gaXQuXG4gICAgaWYgKG5hbWUgaW4gbW9kdWxlKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGVbbmFtZV07XG4gICAgfVxuICAgIC8vIElmIGEgcHJvcGVydHkgY2FsbGVkIGB0aGVuYCBleGlzdHMsIGFzc3VtZSBpdCdzIGEgcHJvbWlzZSBhbmRcbiAgICAvLyByZXR1cm4gYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG5hbWUuXG4gICAgaWYgKCd0aGVuJyBpbiBtb2R1bGUgJiYgdHlwZW9mIG1vZHVsZS50aGVuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiBtb2R1bGUudGhlbigobW9kKT0+aG9pc3QobW9kLCBuYW1lKSk7XG4gICAgfVxuICAgIC8vIElmIHdlJ3JlIHRyeWluZyB0byBob2lzZSB0aGUgZGVmYXVsdCBleHBvcnQsIGFuZCB0aGUgbW9kdWxlIGlzIGEgZnVuY3Rpb24sXG4gICAgLy8gcmV0dXJuIHRoZSBtb2R1bGUgaXRzZWxmLlxuICAgIGlmICh0eXBlb2YgbW9kdWxlID09PSAnZnVuY3Rpb24nICYmIG5hbWUgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICByZXR1cm4gbW9kdWxlO1xuICAgIH1cbiAgICAvLyBPdGhlcndpc2UsIHJldHVybiB1bmRlZmluZWQuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVscGVycy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/templates/helpers.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/pages/_app.js": +/*!**********************************************!*\ + !*** ./node_modules/next/dist/pages/_app.js ***! + \**********************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return App;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"react\"));\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */ async function appGetInitialProps(param) {\n let { Component, ctx } = param;\n const pageProps = await (0, _utils.loadGetInitialProps)(Component, ctx);\n return {\n pageProps\n };\n}\nclass App extends _react.default.Component {\n render() {\n const { Component, pageProps } = this.props;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n ...pageProps\n });\n }\n}\nApp.origGetInitialProps = appGetInitialProps;\nApp.getInitialProps = appGetInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_app.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19hcHAuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztlQWlDcUJBOzs7Ozs0RUFqQ0g7bUNBV2tCO0FBVXBDOzs7Q0FHQyxHQUNELGVBQWVDLG1CQUFtQixLQUdyQjtJQUhxQixNQUNoQ0MsU0FBUyxFQUNUQyxHQUFHLEVBQ1EsR0FIcUI7SUFJaEMsTUFBTUMsWUFBWSxNQUFNQyxDQUFBQSxHQUFBQSxPQUFBQSxtQkFBQUEsRUFBb0JILFdBQVdDO0lBQ3ZELE9BQU87UUFBRUM7SUFBVTtBQUNyQjtBQUVlLE1BQU1KLFlBQXNDTSxPQUFBQSxPQUFLLENBQUNKLFNBQVM7SUFPeEVLLFNBQVM7UUFDUCxNQUFNLEVBQUVMLFNBQVMsRUFBRUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDSSxLQUFLO1FBRTNDLE9BQU8sV0FBUCxHQUFPLHFCQUFDTixXQUFBQTtZQUFXLEdBQUdFLFNBQVM7O0lBQ2pDO0FBQ0Y7QUFacUJKLElBSVpTLG1CQUFBQSxHQUFzQlI7QUFKVkQsSUFLWlUsZUFBQUEsR0FBa0JUIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvcGFnZXMvX2FwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcENvbnRleHRUeXBlLFxuICBBcHBJbml0aWFsUHJvcHMsXG4gIEFwcFByb3BzVHlwZSxcbiAgTmV4dFdlYlZpdGFsc01ldHJpYyxcbiAgQXBwVHlwZSxcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi91dGlscydcbmltcG9ydCB0eXBlIHsgUm91dGVyIH0gZnJvbSAnLi4vY2xpZW50L3JvdXRlcidcblxuaW1wb3J0IHsgbG9hZEdldEluaXRpYWxQcm9wcyB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5cbmV4cG9ydCB0eXBlIHsgQXBwSW5pdGlhbFByb3BzLCBBcHBUeXBlIH1cblxuZXhwb3J0IHR5cGUgeyBOZXh0V2ViVml0YWxzTWV0cmljIH1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dCA9IEFwcENvbnRleHRUeXBlPFJvdXRlcj5cblxuZXhwb3J0IHR5cGUgQXBwUHJvcHM8UCA9IGFueT4gPSBBcHBQcm9wc1R5cGU8Um91dGVyLCBQPlxuXG4vKipcbiAqIGBBcHBgIGNvbXBvbmVudCBpcyB1c2VkIGZvciBpbml0aWFsaXplIG9mIHBhZ2VzLiBJdCBhbGxvd3MgZm9yIG92ZXJ3cml0aW5nIGFuZCBmdWxsIGNvbnRyb2wgb2YgdGhlIGBwYWdlYCBpbml0aWFsaXphdGlvbi5cbiAqIFRoaXMgYWxsb3dzIGZvciBrZWVwaW5nIHN0YXRlIGJldHdlZW4gbmF2aWdhdGlvbiwgY3VzdG9tIGVycm9yIGhhbmRsaW5nLCBpbmplY3RpbmcgYWRkaXRpb25hbCBkYXRhLlxuICovXG5hc3luYyBmdW5jdGlvbiBhcHBHZXRJbml0aWFsUHJvcHMoe1xuICBDb21wb25lbnQsXG4gIGN0eCxcbn06IEFwcENvbnRleHQpOiBQcm9taXNlPEFwcEluaXRpYWxQcm9wcz4ge1xuICBjb25zdCBwYWdlUHJvcHMgPSBhd2FpdCBsb2FkR2V0SW5pdGlhbFByb3BzKENvbXBvbmVudCwgY3R4KVxuICByZXR1cm4geyBwYWdlUHJvcHMgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcHA8UCA9IGFueSwgQ1AgPSB7fSwgUyA9IHt9PiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgUCAmIEFwcFByb3BzPENQPixcbiAgU1xuPiB7XG4gIHN0YXRpYyBvcmlnR2V0SW5pdGlhbFByb3BzID0gYXBwR2V0SW5pdGlhbFByb3BzXG4gIHN0YXRpYyBnZXRJbml0aWFsUHJvcHMgPSBhcHBHZXRJbml0aWFsUHJvcHNcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9ID0gdGhpcy5wcm9wcyBhcyBBcHBQcm9wczxDUD5cblxuICAgIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJBcHAiLCJhcHBHZXRJbml0aWFsUHJvcHMiLCJDb21wb25lbnQiLCJjdHgiLCJwYWdlUHJvcHMiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwiUmVhY3QiLCJyZW5kZXIiLCJwcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJnZXRJbml0aWFsUHJvcHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_app.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/pages/_document.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/pages/_document.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Head: function() {\n return Head;\n },\n Html: function() {\n return Html;\n },\n Main: function() {\n return Main;\n },\n NextScript: function() {\n return NextScript;\n },\n /**\n * `Document` component handles the initial `document` markup and renders only on the server side.\n * Commonly used for implementing server side rendering for `css-in-js` libraries.\n */ default: function() {\n return Document;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard(__webpack_require__(/*! react */ \"react\"));\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"./node_modules/next/dist/shared/lib/constants.js\");\nconst _getpagefiles = __webpack_require__(/*! ../server/get-page-files */ \"./node_modules/next/dist/server/get-page-files.js\");\nconst _htmlescape = __webpack_require__(/*! ../server/htmlescape */ \"./node_modules/next/dist/server/htmlescape.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nconst _htmlcontextsharedruntime = __webpack_require__(/*! ../shared/lib/html-context.shared-runtime */ \"./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js\");\nconst _encodeuripath = __webpack_require__(/*! ../shared/lib/encode-uri-path */ \"./node_modules/next/dist/shared/lib/encode-uri-path.js\");\nconst _tracer = __webpack_require__(/*! ../server/lib/trace/tracer */ \"./node_modules/next/dist/server/lib/trace/tracer.js\");\nconst _utils = __webpack_require__(/*! ../server/lib/trace/utils */ \"./node_modules/next/dist/server/lib/trace/utils.js\");\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") {\n return {\n default: obj\n };\n }\n var cache = _getRequireWildcardCache(nodeInterop);\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {\n __proto__: null\n };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for(var key in obj){\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj.default = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\n/** Set of pages that have triggered a large data warning on production mode. */ const largePageDataWarnings = new Set();\nfunction getDocumentFiles(buildManifest, pathname, inAmpMode) {\n const sharedFiles = (0, _getpagefiles.getPageFiles)(buildManifest, '/_app');\n const pageFiles = true && inAmpMode ? [] : (0, _getpagefiles.getPageFiles)(buildManifest, pathname);\n return {\n sharedFiles,\n pageFiles,\n allFiles: [\n ...new Set([\n ...sharedFiles,\n ...pageFiles\n ])\n ]\n };\n}\nfunction getPolyfillScripts(context, props) {\n // polyfills.js has to be rendered as nomodule without async\n // It also has to be the first script to load\n const { assetPrefix, buildManifest, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return buildManifest.polyfillFiles.filter((polyfill)=>polyfill.endsWith('.js') && !polyfill.endsWith('.module.js')).map((polyfill)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n defer: !disableOptimizedLoading,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin,\n noModule: true,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(polyfill)}${assetQueryString}`\n }, polyfill));\n}\nfunction hasComponentProps(child) {\n return !!child && !!child.props;\n}\nfunction AmpStyles({ styles }) {\n if (!styles) return null;\n // try to parse styles from fragment for backwards compat\n const curStyles = Array.isArray(styles) ? styles : [];\n if (styles.props && // @ts-ignore Property 'props' does not exist on type ReactElement\n Array.isArray(styles.props.children)) {\n const hasStyles = (el)=>{\n var _el_props_dangerouslySetInnerHTML, _el_props;\n return el == null ? void 0 : (_el_props = el.props) == null ? void 0 : (_el_props_dangerouslySetInnerHTML = _el_props.dangerouslySetInnerHTML) == null ? void 0 : _el_props_dangerouslySetInnerHTML.__html;\n };\n // @ts-ignore Property 'props' does not exist on type ReactElement\n styles.props.children.forEach((child)=>{\n if (Array.isArray(child)) {\n child.forEach((el)=>hasStyles(el) && curStyles.push(el));\n } else if (hasStyles(child)) {\n curStyles.push(child);\n }\n });\n }\n /* Add custom styles before AMP styles to prevent accidental overrides */ return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-custom\": \"\",\n dangerouslySetInnerHTML: {\n __html: curStyles.map((style)=>style.props.dangerouslySetInnerHTML.__html).join('').replace(/\\/\\*# sourceMappingURL=.*\\*\\//g, '').replace(/\\/\\*@ sourceURL=.*?\\*\\//g, '')\n }\n });\n}\nfunction getDynamicChunks(context, props, files) {\n const { dynamicImports, assetPrefix, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith('.js') || files.allFiles.includes(file)) return null;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getScripts(context, props, files) {\n var _buildManifest_lowPriorityFiles;\n const { assetPrefix, buildManifest, isDevelopment, assetQueryString, disableOptimizedLoading, crossOrigin } = context;\n const normalScripts = files.allFiles.filter((file)=>file.endsWith('.js'));\n const lowPriorityScripts = (_buildManifest_lowPriorityFiles = buildManifest.lowPriorityFiles) == null ? void 0 : _buildManifest_lowPriorityFiles.filter((file)=>file.endsWith('.js'));\n return [\n ...normalScripts,\n ...lowPriorityScripts\n ].map((file)=>{\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: props.nonce,\n async: !isDevelopment && disableOptimizedLoading,\n defer: !disableOptimizedLoading,\n crossOrigin: props.crossOrigin || crossOrigin\n }, file);\n });\n}\nfunction getPreNextWorkerScripts(context, props) {\n const { assetPrefix, scriptLoader, crossOrigin, nextScriptWorkers } = context;\n // disable `nextScriptWorkers` in edge runtime\n if (!nextScriptWorkers || \"nodejs\" === 'edge') return null;\n try {\n let { partytownSnippet } = require('@builder.io/partytown/integration');\n const children = Array.isArray(props.children) ? props.children : [\n props.children\n ];\n // Check to see if the user has defined their own Partytown configuration\n const userDefinedConfig = children.find((child)=>{\n var _child_props_dangerouslySetInnerHTML, _child_props;\n return hasComponentProps(child) && (child == null ? void 0 : (_child_props = child.props) == null ? void 0 : (_child_props_dangerouslySetInnerHTML = _child_props.dangerouslySetInnerHTML) == null ? void 0 : _child_props_dangerouslySetInnerHTML.__html.length) && 'data-partytown-config' in child.props;\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !userDefinedConfig && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown-config\": \"\",\n dangerouslySetInnerHTML: {\n __html: `\n partytown = {\n lib: \"${assetPrefix}/_next/static/~partytown/\"\n };\n `\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n \"data-partytown\": \"\",\n dangerouslySetInnerHTML: {\n __html: partytownSnippet()\n }\n }),\n (scriptLoader.worker || []).map((file, index)=>{\n const { strategy, src, children: scriptChildren, dangerouslySetInnerHTML, ...scriptProps } = file;\n let srcProps = {};\n if (src) {\n // Use external src if provided\n srcProps.src = src;\n } else if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n // Embed inline script if provided with dangerouslySetInnerHTML\n srcProps.dangerouslySetInnerHTML = {\n __html: dangerouslySetInnerHTML.__html\n };\n } else if (scriptChildren) {\n // Embed inline script if provided with children\n srcProps.dangerouslySetInnerHTML = {\n __html: typeof scriptChildren === 'string' ? scriptChildren : Array.isArray(scriptChildren) ? scriptChildren.join('') : ''\n };\n } else {\n throw new Error('Invalid usage of next/script. Did you forget to include a src attribute or an inline script? https://nextjs.org/docs/messages/invalid-script');\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...srcProps,\n ...scriptProps,\n type: \"text/partytown\",\n key: src || index,\n nonce: props.nonce,\n \"data-nscript\": \"worker\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n })\n ]\n });\n } catch (err) {\n if ((0, _iserror.default)(err) && err.code !== 'MODULE_NOT_FOUND') {\n console.warn(`Warning: ${err.message}`);\n }\n return null;\n }\n}\nfunction getPreNextScripts(context, props) {\n const { scriptLoader, disableOptimizedLoading, crossOrigin } = context;\n const webWorkerScripts = getPreNextWorkerScripts(context, props);\n const beforeInteractiveScripts = (scriptLoader.beforeInteractive || []).filter((script)=>script.src).map((file, index)=>{\n const { strategy, ...scriptProps } = file;\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n key: scriptProps.src || index,\n defer: scriptProps.defer ?? !disableOptimizedLoading,\n nonce: props.nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: props.crossOrigin || crossOrigin\n });\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n webWorkerScripts,\n beforeInteractiveScripts\n ]\n });\n}\nfunction getHeadHTMLProps(props) {\n const { crossOrigin, nonce, ...restProps } = props;\n // This assignment is necessary for additional type checking to avoid unsupported attributes in \n const headProps = restProps;\n return headProps;\n}\nfunction getAmpPath(ampPath, asPath) {\n return ampPath || `${asPath}${asPath.includes('?') ? '&' : '?'}amp=1`;\n}\nfunction getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix = '') {\n if (!nextFontManifest) {\n return {\n preconnect: null,\n preload: null\n };\n }\n const appFontsEntry = nextFontManifest.pages['/_app'];\n const pageFontsEntry = nextFontManifest.pages[dangerousAsPath];\n const preloadedFontFiles = Array.from(new Set([\n ...appFontsEntry ?? [],\n ...pageFontsEntry ?? []\n ]));\n // If no font files should preload but there's an entry for the path, add a preconnect tag.\n const preconnectToSelf = !!(preloadedFontFiles.length === 0 && (appFontsEntry || pageFontsEntry));\n return {\n preconnect: preconnectToSelf ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n \"data-next-font\": nextFontManifest.pagesUsingSizeAdjust ? 'size-adjust' : '',\n rel: \"preconnect\",\n href: \"/\",\n crossOrigin: \"anonymous\"\n }) : null,\n preload: preloadedFontFiles ? preloadedFontFiles.map((fontFile)=>{\n const ext = /\\.(woff|woff2|eot|ttf|otf)$/.exec(fontFile)[1];\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(fontFile)}`,\n as: \"font\",\n type: `font/${ext}`,\n crossOrigin: \"anonymous\",\n \"data-next-font\": fontFile.includes('-s') ? 'size-adjust' : ''\n }, fontFile);\n }) : null\n };\n}\nclass Head extends _react.default.Component {\n static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext;\n getCssLinks(files) {\n const { assetPrefix, assetQueryString, dynamicImports, dynamicCssManifest, crossOrigin, optimizeCss } = this.context;\n const cssFiles = files.allFiles.filter((f)=>f.endsWith('.css'));\n const sharedFiles = new Set(files.sharedFiles);\n // Unmanaged files are CSS files that will be handled directly by the\n // webpack runtime (`mini-css-extract-plugin`).\n let unmanagedFiles = new Set([]);\n let localDynamicCssFiles = Array.from(new Set(dynamicImports.filter((file)=>file.endsWith('.css'))));\n if (localDynamicCssFiles.length) {\n const existing = new Set(cssFiles);\n localDynamicCssFiles = localDynamicCssFiles.filter((f)=>!(existing.has(f) || sharedFiles.has(f)));\n unmanagedFiles = new Set(localDynamicCssFiles);\n cssFiles.push(...localDynamicCssFiles);\n }\n let cssLinkElements = [];\n cssFiles.forEach((file)=>{\n const isSharedFile = sharedFiles.has(file);\n const isUnmanagedFile = unmanagedFiles.has(file);\n const isFileInDynamicCssManifest = dynamicCssManifest.has(file);\n if (!optimizeCss) {\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"style\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, `${file}-preload`));\n }\n cssLinkElements.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"stylesheet\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n \"data-n-g\": isUnmanagedFile ? undefined : isSharedFile ? '' : undefined,\n \"data-n-p\": isSharedFile || isUnmanagedFile || isFileInDynamicCssManifest ? undefined : ''\n }, file));\n });\n return cssLinkElements.length === 0 ? null : cssLinkElements;\n }\n getPreloadDynamicChunks() {\n const { dynamicImports, assetPrefix, assetQueryString, crossOrigin } = this.context;\n return dynamicImports.map((file)=>{\n if (!file.endsWith('.js')) {\n return null;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file);\n }) // Filter out nulled scripts\n .filter(Boolean);\n }\n getPreloadMainLinks(files) {\n const { assetPrefix, assetQueryString, scriptLoader, crossOrigin } = this.context;\n const preloadFiles = files.allFiles.filter((file)=>{\n return file.endsWith('.js');\n });\n return [\n ...(scriptLoader.beforeInteractive || []).map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: file.src,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file.src)),\n ...preloadFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n nonce: this.props.nonce,\n rel: \"preload\",\n href: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n as: \"script\",\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file))\n ];\n }\n getBeforeInteractiveInlineScripts() {\n const { scriptLoader } = this.context;\n const { nonce, crossOrigin } = this.props;\n return (scriptLoader.beforeInteractive || []).filter((script)=>!script.src && (script.dangerouslySetInnerHTML || script.children)).map((file, index)=>{\n const { strategy, children, dangerouslySetInnerHTML, src, ...scriptProps } = file;\n let html = '';\n if (dangerouslySetInnerHTML && dangerouslySetInnerHTML.__html) {\n html = dangerouslySetInnerHTML.__html;\n } else if (children) {\n html = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n return /*#__PURE__*/ (0, _react.createElement)(\"script\", {\n ...scriptProps,\n dangerouslySetInnerHTML: {\n __html: html\n },\n key: scriptProps.id || index,\n nonce: nonce,\n \"data-nscript\": \"beforeInteractive\",\n crossOrigin: crossOrigin || undefined\n });\n });\n }\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n render() {\n const { styles, ampPath, inAmpMode, hybridAmp, canonicalBase, __NEXT_DATA__, dangerousAsPath, headTags, unstable_runtimeJS, unstable_JsPreload, disableOptimizedLoading, optimizeCss, assetPrefix, nextFontManifest } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n const disableJsPreload = unstable_JsPreload === false || !disableOptimizedLoading;\n this.context.docComponentsRendered.Head = true;\n let { head } = this.context;\n let cssPreloads = [];\n let otherHeadElements = [];\n if (head) {\n head.forEach((child)=>{\n if (child && child.type === 'link' && child.props['rel'] === 'preload' && child.props['as'] === 'style') {\n if (this.context.strictNextHead) {\n cssPreloads.push(/*#__PURE__*/ _react.default.cloneElement(child, {\n 'data-next-head': ''\n }));\n } else {\n cssPreloads.push(child);\n }\n } else {\n if (child) {\n if (this.context.strictNextHead) {\n otherHeadElements.push(/*#__PURE__*/ _react.default.cloneElement(child, {\n 'data-next-head': ''\n }));\n } else {\n otherHeadElements.push(child);\n }\n }\n }\n });\n head = cssPreloads.concat(otherHeadElements);\n }\n let children = _react.default.Children.toArray(this.props.children).filter(Boolean);\n // show a warning if Head contains (only in development)\n if (true) {\n children = _react.default.Children.map(children, (child)=>{\n var _child_props;\n const isReactHelmet = child == null ? void 0 : (_child_props = child.props) == null ? void 0 : _child_props['data-react-helmet'];\n if (!isReactHelmet) {\n var _child_props1;\n if ((child == null ? void 0 : child.type) === 'title') {\n console.warn(\"Warning: <title> should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-title\");\n } else if ((child == null ? void 0 : child.type) === 'meta' && (child == null ? void 0 : (_child_props1 = child.props) == null ? void 0 : _child_props1.name) === 'viewport') {\n console.warn(\"Warning: viewport meta tags should not be used in _document.js's <Head>. https://nextjs.org/docs/messages/no-document-viewport-meta\");\n }\n }\n return child;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n });\n if (this.props.crossOrigin) console.warn('Warning: `Head` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n let hasAmphtmlRel = false;\n let hasCanonicalRel = false;\n // show warning and remove conflicting amp head tags\n head = _react.default.Children.map(head || [], (child)=>{\n if (!child) return child;\n const { type, props } = child;\n if ( true && inAmpMode) {\n let badProp = '';\n if (type === 'meta' && props.name === 'viewport') {\n badProp = 'name=\"viewport\"';\n } else if (type === 'link' && props.rel === 'canonical') {\n hasCanonicalRel = true;\n } else if (type === 'script') {\n // only block if\n // 1. it has a src and isn't pointing to ampproject's CDN\n // 2. it is using dangerouslySetInnerHTML without a type or\n // a type of text/javascript\n if (props.src && props.src.indexOf('ampproject') < -1 || props.dangerouslySetInnerHTML && (!props.type || props.type === 'text/javascript')) {\n badProp = '<script';\n Object.keys(props).forEach((prop)=>{\n badProp += ` ${prop}=\"${props[prop]}\"`;\n });\n badProp += '/>';\n }\n }\n if (badProp) {\n console.warn(`Found conflicting amp tag \"${child.type}\" with conflicting prop ${badProp} in ${__NEXT_DATA__.page}. https://nextjs.org/docs/messages/conflicting-amp-tag`);\n return null;\n }\n } else {\n // non-amp mode\n if (type === 'link' && props.rel === 'amphtml') {\n hasAmphtmlRel = true;\n }\n }\n return child;\n // @types/react bug. Returned value from .map will not be `null` if you pass in `[null]`\n });\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, true && inAmpMode);\n const nextFontLinkTags = getNextFontLinkTags(nextFontManifest, dangerousAsPath, assetPrefix);\n const tracingMetadata = (0, _utils.getTracedMetadata)((0, _tracer.getTracer)().getTracePropagationData(), this.context.experimentalClientTraceMetadata);\n const traceMetaTags = (tracingMetadata || []).map(({ key, value }, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: key,\n content: value\n }, `next-trace-data-${index}`));\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"head\", {\n ...getHeadHTMLProps(this.props),\n children: [\n this.context.isDevelopment && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": true && inAmpMode ? 'true' : undefined,\n dangerouslySetInnerHTML: {\n __html: `body{display:none}`\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-next-hide-fouc\": true,\n \"data-ampdevmode\": true && inAmpMode ? 'true' : undefined,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `body{display:block}`\n }\n })\n })\n ]\n }),\n head,\n this.context.strictNextHead ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"next-head-count\",\n content: _react.default.Children.count(head || []).toString()\n }),\n children,\n nextFontLinkTags.preconnect,\n nextFontLinkTags.preload,\n true && inAmpMode && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width,minimum-scale=1,initial-scale=1\"\n }),\n !hasCanonicalRel && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"canonical\",\n href: canonicalBase + (__webpack_require__(/*! ../server/utils */ \"./node_modules/next/dist/server/utils.js\").cleanAmpPath)(dangerousAsPath)\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n as: \"script\",\n href: \"https://cdn.ampproject.org/v0.js\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(AmpStyles, {\n styles: styles\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}`\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n \"amp-boilerplate\": \"\",\n dangerouslySetInnerHTML: {\n __html: `body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}`\n }\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n async: true,\n src: \"https://cdn.ampproject.org/v0.js\"\n })\n ]\n }),\n !( true && inAmpMode) && /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !hasAmphtmlRel && hybridAmp && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"amphtml\",\n href: canonicalBase + getAmpPath(ampPath, dangerousAsPath)\n }),\n this.getBeforeInteractiveInlineScripts(),\n !optimizeCss && this.getCssLinks(files),\n !optimizeCss && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-n-css\": this.props.nonce ?? ''\n }),\n !disableRuntimeJS && !disableJsPreload && this.getPreloadDynamicChunks(),\n !disableRuntimeJS && !disableJsPreload && this.getPreloadMainLinks(files),\n !disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(),\n !disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(),\n !disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files),\n !disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files),\n optimizeCss && this.getCssLinks(files),\n optimizeCss && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n \"data-n-css\": this.props.nonce ?? ''\n }),\n this.context.isDevelopment && // this element is used to mount development styles so the\n // ordering matches production\n // (by default, style-loader injects at the bottom of <head />)\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"noscript\", {\n id: \"__next_css__DO_NOT_USE__\"\n }),\n traceMetaTags,\n styles || null\n ]\n }),\n /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, {}, ...headTags || [])\n ]\n });\n }\n}\nfunction handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props) {\n var _children_find_props, _children_find, _children_find_props1, _children_find1;\n if (!props.children) return;\n const scriptLoaderItems = [];\n const children = Array.isArray(props.children) ? props.children : [\n props.children\n ];\n const headChildren = (_children_find = children.find((child)=>child.type === Head)) == null ? void 0 : (_children_find_props = _children_find.props) == null ? void 0 : _children_find_props.children;\n const bodyChildren = (_children_find1 = children.find((child)=>child.type === 'body')) == null ? void 0 : (_children_find_props1 = _children_find1.props) == null ? void 0 : _children_find_props1.children;\n // Scripts with beforeInteractive can be placed inside Head or <body> so children of both needs to be traversed\n const combinedChildren = [\n ...Array.isArray(headChildren) ? headChildren : [\n headChildren\n ],\n ...Array.isArray(bodyChildren) ? bodyChildren : [\n bodyChildren\n ]\n ];\n _react.default.Children.forEach(combinedChildren, (child)=>{\n var _child_type;\n if (!child) return;\n // When using the `next/script` component, register it in script loader.\n if ((_child_type = child.type) == null ? void 0 : _child_type.__nextScript) {\n if (child.props.strategy === 'beforeInteractive') {\n scriptLoader.beforeInteractive = (scriptLoader.beforeInteractive || []).concat([\n {\n ...child.props\n }\n ]);\n return;\n } else if ([\n 'lazyOnload',\n 'afterInteractive',\n 'worker'\n ].includes(child.props.strategy)) {\n scriptLoaderItems.push(child.props);\n return;\n } else if (typeof child.props.strategy === 'undefined') {\n scriptLoaderItems.push({\n ...child.props,\n strategy: 'afterInteractive'\n });\n return;\n }\n }\n });\n __NEXT_DATA__.scriptLoader = scriptLoaderItems;\n}\nclass NextScript extends _react.default.Component {\n static #_ = this.contextType = _htmlcontextsharedruntime.HtmlContext;\n getDynamicChunks(files) {\n return getDynamicChunks(this.context, this.props, files);\n }\n getPreNextScripts() {\n return getPreNextScripts(this.context, this.props);\n }\n getScripts(files) {\n return getScripts(this.context, this.props, files);\n }\n getPolyfillScripts() {\n return getPolyfillScripts(this.context, this.props);\n }\n static getInlineScriptSource(context) {\n const { __NEXT_DATA__, largePageDataBytes } = context;\n try {\n const data = JSON.stringify(__NEXT_DATA__);\n if (largePageDataWarnings.has(__NEXT_DATA__.page)) {\n return (0, _htmlescape.htmlEscapeJsonString)(data);\n }\n const bytes = false ? 0 : Buffer.from(data).byteLength;\n const prettyBytes = (__webpack_require__(/*! ../lib/pretty-bytes */ \"./node_modules/next/dist/lib/pretty-bytes.js\")[\"default\"]);\n if (largePageDataBytes && bytes > largePageDataBytes) {\n if (false) {}\n console.warn(`Warning: data for page \"${__NEXT_DATA__.page}\"${__NEXT_DATA__.page === context.dangerousAsPath ? '' : ` (path \"${context.dangerousAsPath}\")`} is ${prettyBytes(bytes)} which exceeds the threshold of ${prettyBytes(largePageDataBytes)}, this amount of data can reduce performance.\\nSee more info here: https://nextjs.org/docs/messages/large-page-data`);\n }\n return (0, _htmlescape.htmlEscapeJsonString)(data);\n } catch (err) {\n if ((0, _iserror.default)(err) && err.message.indexOf('circular structure') !== -1) {\n throw new Error(`Circular structure in \"getInitialProps\" result of page \"${__NEXT_DATA__.page}\". https://nextjs.org/docs/messages/circular-structure`);\n }\n throw err;\n }\n }\n render() {\n const { assetPrefix, inAmpMode, buildManifest, unstable_runtimeJS, docComponentsRendered, assetQueryString, disableOptimizedLoading, crossOrigin } = this.context;\n const disableRuntimeJS = unstable_runtimeJS === false;\n docComponentsRendered.NextScript = true;\n if ( true && inAmpMode) {\n if (false) {}\n const ampDevFiles = [\n ...buildManifest.devFiles,\n ...buildManifest.polyfillFiles,\n ...buildManifest.ampDevFiles\n ];\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n disableRuntimeJS ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n },\n \"data-ampdevmode\": true\n }),\n ampDevFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n \"data-ampdevmode\": true\n }, file))\n ]\n });\n }\n if (true) {\n if (this.props.crossOrigin) console.warn('Warning: `NextScript` attribute `crossOrigin` is deprecated. https://nextjs.org/docs/messages/doc-crossorigin-deprecated');\n }\n const files = getDocumentFiles(this.context.buildManifest, this.context.__NEXT_DATA__.page, true && inAmpMode);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n !disableRuntimeJS && buildManifest.devFiles ? buildManifest.devFiles.map((file)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n src: `${assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(file)}${assetQueryString}`,\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin\n }, file)) : null,\n disableRuntimeJS ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n id: \"__NEXT_DATA__\",\n type: \"application/json\",\n nonce: this.props.nonce,\n crossOrigin: this.props.crossOrigin || crossOrigin,\n dangerouslySetInnerHTML: {\n __html: NextScript.getInlineScriptSource(this.context)\n }\n }),\n disableOptimizedLoading && !disableRuntimeJS && this.getPolyfillScripts(),\n disableOptimizedLoading && !disableRuntimeJS && this.getPreNextScripts(),\n disableOptimizedLoading && !disableRuntimeJS && this.getDynamicChunks(files),\n disableOptimizedLoading && !disableRuntimeJS && this.getScripts(files)\n ]\n });\n }\n}\nfunction Html(props) {\n const { inAmpMode, docComponentsRendered, locale, scriptLoader, __NEXT_DATA__ } = (0, _htmlcontextsharedruntime.useHtmlContext)();\n docComponentsRendered.Html = true;\n handleDocumentScriptLoaderItems(scriptLoader, __NEXT_DATA__, props);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"html\", {\n ...props,\n lang: props.lang || locale || undefined,\n amp: true && inAmpMode ? '' : undefined,\n \"data-ampdevmode\": true && inAmpMode && \"development\" !== 'production' ? '' : undefined\n });\n}\nfunction Main() {\n const { docComponentsRendered } = (0, _htmlcontextsharedruntime.useHtmlContext)();\n docComponentsRendered.Main = true;\n // @ts-ignore\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"next-js-internal-body-render-target\", {});\n}\nclass Document extends _react.default.Component {\n /**\n * `getInitialProps` hook returns the context object with the addition of `renderPage`.\n * `renderPage` callback executes `React` rendering logic synchronously to support server-rendering wrappers\n */ static getInitialProps(ctx) {\n return ctx.defaultGetInitialProps(ctx);\n }\n render() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(Html, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Main, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(NextScript, {})\n ]\n })\n ]\n });\n }\n}\n// Add a special property to the built-in `Document` component so later we can\n// identify if a user customized `Document` is used or not.\nconst InternalFunctionDocument = function InternalFunctionDocument() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(Html, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"body\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Main, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(NextScript, {})\n ]\n })\n ]\n });\n};\nDocument[_constants.NEXT_BUILTIN_DOCUMENT] = InternalFunctionDocument; //# sourceMappingURL=_document.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19kb2N1bWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFxYWFBLElBQUk7ZUFBSkE7O0lBaXRCR0MsSUFBSTtlQUFKQTs7SUFpQ0FDLElBQUk7ZUFBSkE7O0lBN01IQyxVQUFVO2VBQVZBOztJQW9OYjs7O0NBR0MsR0FDRCxPQXNCQztlQXRCb0JDOzs7OzJFQWxxQ1c7dUNBQ007MENBV1Q7d0NBRVE7NEVBQ2pCO3NEQUtiOzJDQUV1QjtvQ0FFSjttQ0FDUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QmxDLDhFQUE4RSxHQUM5RSxNQUFNQyx3QkFBd0IsSUFBSUM7QUFFbEMsU0FBU0MsaUJBQ1BDLGFBQTRCLEVBQzVCQyxRQUFnQixFQUNoQkMsU0FBa0I7SUFFbEIsTUFBTUMsY0FBaUNDLENBQUFBLEdBQUFBLGNBQUFBLFlBQUFBLEVBQWFKLGVBQWU7SUFDbkUsTUFBTUssWUFDSkMsS0FBbUMsSUFBSUosWUFDbkMsRUFBRSxHQUNGRSxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhSixlQUFlQztJQUVsQyxPQUFPO1FBQ0xFO1FBQ0FFO1FBQ0FJLFVBQVU7ZUFBSSxJQUFJWCxJQUFJO21CQUFJSzttQkFBZ0JFO2FBQVU7U0FBRTtJQUN4RDtBQUNGO0FBRUEsU0FBU0ssbUJBQW1CQyxPQUFrQixFQUFFQyxLQUFrQjtJQUNoRSw0REFBNEQ7SUFDNUQsNkNBQTZDO0lBQzdDLE1BQU0sRUFDSkMsV0FBVyxFQUNYYixhQUFhLEVBQ2JjLGdCQUFnQixFQUNoQkMsdUJBQXVCLEVBQ3ZCQyxXQUFXLEVBQ1osR0FBR0w7SUFFSixPQUFPWCxjQUFjaUIsYUFBYSxDQUMvQkMsTUFBTSxDQUNMLENBQUNDLFdBQWFBLFNBQVNDLFFBQVEsQ0FBQyxVQUFVLENBQUNELFNBQVNDLFFBQVEsQ0FBQyxlQUU5REMsR0FBRyxDQUFDLENBQUNGLFdBQ0osV0FESUEsR0FDSixxQkFBQ0csVUFBQUE7WUFFQ0MsT0FBTyxDQUFDUjtZQUNSUyxPQUFPWixNQUFNWSxLQUFLO1lBQ2xCUixhQUFhSixNQUFNSSxXQUFXLElBQUlBO1lBQ2xDUyxVQUFVO1lBQ1ZDLEtBQUssR0FBR2IsWUFBWSxPQUFPLEVBQUVjLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQzNCUixZQUNFTCxrQkFBa0I7V0FQakJLO0FBVWI7QUFFQSxTQUFTUyxrQkFBa0JDLEtBQVU7SUFDbkMsT0FBTyxDQUFDLENBQUNBLFNBQVMsQ0FBQyxDQUFDQSxNQUFNakIsS0FBSztBQUNqQztBQUVBLFNBQVNrQixVQUFVLEVBQ2pCQyxNQUFNLEVBR1A7SUFDQyxJQUFJLENBQUNBLFFBQVEsT0FBTztJQUVwQix5REFBeUQ7SUFDekQsTUFBTUMsWUFBdUNDLE1BQU1DLE9BQU8sQ0FBQ0gsVUFDdERBLFNBQ0QsRUFBRTtJQUNOLElBRUVBLE9BQU9uQixLQUFLLElBQ1osa0RBRmtFLGdCQUVBO0lBQ2xFcUIsTUFBTUMsT0FBTyxDQUFDSCxPQUFPbkIsS0FBSyxDQUFDdUIsUUFBUSxHQUNuQztRQUNBLE1BQU1DLFlBQVksQ0FBQ0M7Z0JBQ2pCQSxtQ0FBQUE7bUJBQUFBLE1BQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLFlBQUFBLEdBQUl6QixLQUFBQSxLQUFLLHFEQUFUeUIsVUFBV0MsdUJBQUFBLEtBQXVCLGdCQUFsQ0Qsa0NBQW9DRSxNQUFNOztRQUM1QyxrRUFBa0U7UUFDbEVSLE9BQU9uQixLQUFLLENBQUN1QixRQUFRLENBQUNLLE9BQU8sQ0FBQyxDQUFDWDtZQUM3QixJQUFJSSxNQUFNQyxPQUFPLENBQUNMLFFBQVE7Z0JBQ3hCQSxNQUFNVyxPQUFPLENBQUMsQ0FBQ0gsS0FBT0QsVUFBVUMsT0FBT0wsVUFBVVMsSUFBSSxDQUFDSjtZQUN4RCxPQUFPLElBQUlELFVBQVVQLFFBQVE7Z0JBQzNCRyxVQUFVUyxJQUFJLENBQUNaO1lBQ2pCO1FBQ0Y7SUFDRjtJQUVBLHVFQUF1RSxHQUN2RSxxQkFDRSxxQkFBQ2EsU0FBQUE7UUFDQ0MsY0FBVztRQUNYTCx5QkFBeUI7WUFDdkJDLFFBQVFQLFVBQ0xYLEdBQUcsQ0FBQyxDQUFDcUIsUUFBVUEsTUFBTTlCLEtBQUssQ0FBQzBCLHVCQUF1QixDQUFDQyxNQUFNLEVBQ3pESyxJQUFJLENBQUMsSUFDTEMsT0FBTyxDQUFDLGtDQUFrQyxJQUMxQ0EsT0FBTyxDQUFDLDRCQUE0QjtRQUN6Qzs7QUFHTjtBQUVBLFNBQVNDLGlCQUNQbkMsT0FBa0IsRUFDbEJDLEtBQWtCLEVBQ2xCbUMsS0FBb0I7SUFFcEIsTUFBTSxFQUNKQyxjQUFjLEVBQ2RuQyxXQUFXLEVBQ1hvQyxhQUFhLEVBQ2JuQyxnQkFBZ0IsRUFDaEJDLHVCQUF1QixFQUN2QkMsV0FBVyxFQUNaLEdBQUdMO0lBRUosT0FBT3FDLGVBQWUzQixHQUFHLENBQUMsQ0FBQzZCO1FBQ3pCLElBQUksQ0FBQ0EsS0FBSzlCLFFBQVEsQ0FBQyxVQUFVMkIsTUFBTXRDLFFBQVEsQ0FBQzBDLFFBQVEsQ0FBQ0QsT0FBTyxPQUFPO1FBRW5FLHFCQUNFLHFCQUFDNUIsVUFBQUE7WUFDQzhCLE9BQU8sQ0FBQ0gsaUJBQWlCbEM7WUFDekJRLE9BQU8sQ0FBQ1I7WUFFUlcsS0FBSyxHQUFHYixZQUFZLE9BQU8sRUFBRWMsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY3VCLFFBQVFwQyxrQkFBa0I7WUFDckVVLE9BQU9aLE1BQU1ZLEtBQUs7WUFDbEJSLGFBQWFKLE1BQU1JLFdBQVcsSUFBSUE7V0FIN0JrQztJQU1YO0FBQ0Y7QUFFQSxTQUFTRyxXQUNQMUMsT0FBa0IsRUFDbEJDLEtBQWtCLEVBQ2xCbUMsS0FBb0I7UUFZTy9DO0lBVjNCLE1BQU0sRUFDSmEsV0FBVyxFQUNYYixhQUFhLEVBQ2JpRCxhQUFhLEVBQ2JuQyxnQkFBZ0IsRUFDaEJDLHVCQUF1QixFQUN2QkMsV0FBVyxFQUNaLEdBQUdMO0lBRUosTUFBTTJDLGdCQUFnQlAsTUFBTXRDLFFBQVEsQ0FBQ1MsTUFBTSxDQUFDLENBQUNnQyxPQUFTQSxLQUFLOUIsUUFBUSxDQUFDO0lBQ3BFLE1BQU1tQyxxQkFBQUEsQ0FBcUJ2RCxrQ0FBQUEsY0FBY3dELGdCQUFBQSxLQUFnQixnQkFBOUJ4RCxnQ0FBZ0NrQixNQUFNLENBQUMsQ0FBQ2dDLE9BQ2pFQSxLQUFLOUIsUUFBUSxDQUFDO0lBR2hCLE9BQU87V0FBSWtDO1dBQWtCQztLQUFtQixDQUFDbEMsR0FBRyxDQUFDLENBQUM2QjtRQUNwRCxPQUNFLFdBREYsR0FDRSxxQkFBQzVCLFVBQUFBO1lBRUNJLEtBQUssR0FBR2IsWUFBWSxPQUFPLEVBQUVjLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWN1QixRQUFRcEMsa0JBQWtCO1lBQ3JFVSxPQUFPWixNQUFNWSxLQUFLO1lBQ2xCNEIsT0FBTyxDQUFDSCxpQkFBaUJsQztZQUN6QlEsT0FBTyxDQUFDUjtZQUNSQyxhQUFhSixNQUFNSSxXQUFXLElBQUlBO1dBTDdCa0M7SUFRWDtBQUNGO0FBRUEsU0FBU08sd0JBQXdCOUMsT0FBa0IsRUFBRUMsS0FBa0I7SUFDckUsTUFBTSxFQUFFQyxXQUFXLEVBQUU2QyxZQUFZLEVBQUUxQyxXQUFXLEVBQUUyQyxpQkFBaUIsRUFBRSxHQUFHaEQ7SUFFdEUsOENBQThDO0lBQzlDLElBQUksQ0FBQ2dELHFCQUFxQnJELFFBQXdCLEtBQUssUUFBUSxPQUFPO0lBRXRFLElBQUk7UUFDRixJQUFJLEVBQ0ZzRCxnQkFBZ0IsRUFFakIsR0FBR0MsT0FBdUJBLENBQUM7UUFFNUIsTUFBTTFCLFdBQVdGLE1BQU1DLE9BQU8sQ0FBQ3RCLE1BQU11QixRQUFRLElBQ3pDdkIsTUFBTXVCLFFBQVEsR0FDZDtZQUFDdkIsTUFBTXVCLFFBQVE7U0FBQztRQUVwQix5RUFBeUU7UUFDekUsTUFBTTJCLG9CQUFvQjNCLFNBQVM0QixJQUFJLENBQ3JDLENBQUNsQztnQkFFQ0Esc0NBQUFBO21CQURBRCxrQkFBa0JDLFdBQ2xCQSxTQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxlQUFBQSxNQUFPakIsS0FBSyxzQkFBWmlCLHVDQUFBQSxhQUFjUyx1QkFBQUEsS0FBdUIsZ0JBQXJDVCxxQ0FBdUNVLE1BQU0sQ0FBQ3lCLE1BQU0sS0FDcEQsMkJBQTJCbkMsTUFBTWpCLEtBQUs7O1FBRzFDLHFCQUNFOztnQkFDRyxDQUFDa0QscUJBQUFBLFdBQUFBLEdBQ0EscUJBQUN4QyxVQUFBQTtvQkFDQzJDLHlCQUFzQjtvQkFDdEIzQix5QkFBeUI7d0JBQ3ZCQyxRQUFRLENBQUM7O29CQUVILEVBQUUxQixZQUFZOztVQUV4QixDQUFDO29CQUNDOzs4QkFHSixxQkFBQ1MsVUFBQUE7b0JBQ0M0QyxrQkFBZTtvQkFDZjVCLHlCQUF5Qjt3QkFDdkJDLFFBQVFxQjtvQkFDVjs7aUJBRUFGLGFBQWFTLE1BQU0sSUFBSSxFQUFDLEVBQUc5QyxHQUFHLENBQUMsQ0FBQzZCLE1BQW1Ca0I7b0JBQ25ELE1BQU0sRUFDSkMsUUFBUSxFQUNSM0MsR0FBRyxFQUNIUyxVQUFVbUMsY0FBYyxFQUN4QmhDLHVCQUF1QixFQUN2QixHQUFHaUMsYUFDSixHQUFHckI7b0JBRUosSUFBSXNCLFdBR0EsQ0FBQztvQkFFTCxJQUFJOUMsS0FBSzt3QkFDUCwrQkFBK0I7d0JBQy9COEMsU0FBUzlDLEdBQUcsR0FBR0E7b0JBQ2pCLE9BQU8sSUFDTFksMkJBQ0FBLHdCQUF3QkMsTUFBTSxFQUM5Qjt3QkFDQSwrREFBK0Q7d0JBQy9EaUMsU0FBU2xDLHVCQUF1QixHQUFHOzRCQUNqQ0MsUUFBUUQsd0JBQXdCQyxNQUFNO3dCQUN4QztvQkFDRixPQUFPLElBQUkrQixnQkFBZ0I7d0JBQ3pCLGdEQUFnRDt3QkFDaERFLFNBQVNsQyx1QkFBdUIsR0FBRzs0QkFDakNDLFFBQ0UsT0FBTytCLG1CQUFtQixXQUN0QkEsaUJBQ0FyQyxNQUFNQyxPQUFPLENBQUNvQyxrQkFDWkEsZUFBZTFCLElBQUksQ0FBQyxNQUNwQjt3QkFDVjtvQkFDRixPQUFPO3dCQUNMLE1BQU0sSUFBSTZCLE1BQ1I7b0JBRUo7b0JBRUEscUJBQ0UsMEJBQUNuRCxVQUFBQTt3QkFDRSxHQUFHa0QsUUFBUTt3QkFDWCxHQUFHRCxXQUFXO3dCQUNmRyxNQUFLO3dCQUNMQyxLQUFLakQsT0FBTzBDO3dCQUNaNUMsT0FBT1osTUFBTVksS0FBSzt3QkFDbEJvRCxnQkFBYTt3QkFDYjVELGFBQWFKLE1BQU1JLFdBQVcsSUFBSUE7O2dCQUd4Qzs7O0lBR04sRUFBRSxPQUFPNkQsS0FBSztRQUNaLElBQUlDLENBQUFBLEdBQUFBLFNBQUFBLE9BQU8sRUFBQ0QsUUFBUUEsSUFBSUUsSUFBSSxLQUFLLG9CQUFvQjtZQUNuREMsUUFBUUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFSixJQUFJSyxPQUFPLEVBQUU7UUFDeEM7UUFDQSxPQUFPO0lBQ1Q7QUFDRjtBQUVBLFNBQVNDLGtCQUFrQnhFLE9BQWtCLEVBQUVDLEtBQWtCO0lBQy9ELE1BQU0sRUFBRThDLFlBQVksRUFBRTNDLHVCQUF1QixFQUFFQyxXQUFXLEVBQUUsR0FBR0w7SUFFL0QsTUFBTXlFLG1CQUFtQjNCLHdCQUF3QjlDLFNBQVNDO0lBRTFELE1BQU15RSwyQkFBNEIzQixjQUFhNEIsaUJBQWlCLElBQUksSUFDakVwRSxNQUFNLENBQUMsQ0FBQ0ksU0FBV0EsT0FBT0ksR0FBRyxFQUM3QkwsR0FBRyxDQUFDLENBQUM2QixNQUFtQmtCO1FBQ3ZCLE1BQU0sRUFBRUMsUUFBUSxFQUFFLEdBQUdFLGFBQWEsR0FBR3JCO1FBQ3JDLHFCQUNFLDBCQUFDNUIsVUFBQUE7WUFDRSxHQUFHaUQsV0FBVztZQUNmSSxLQUFLSixZQUFZN0MsR0FBRyxJQUFJMEM7WUFDeEI3QyxPQUFPZ0QsWUFBWWhELEtBQUssSUFBSSxDQUFDUjtZQUM3QlMsT0FBT1osTUFBTVksS0FBSztZQUNsQm9ELGdCQUFhO1lBQ2I1RCxhQUFhSixNQUFNSSxXQUFXLElBQUlBOztJQUd4QztJQUVGLHFCQUNFOztZQUNHb0U7WUFDQUM7OztBQUdQO0FBRUEsU0FBU0UsaUJBQWlCM0UsS0FBZ0I7SUFDeEMsTUFBTSxFQUFFSSxXQUFXLEVBQUVRLEtBQUssRUFBRSxHQUFHZ0UsV0FBVyxHQUFHNUU7SUFFN0Msc0dBQXNHO0lBQ3RHLE1BQU02RSxZQUVGRDtJQUVKLE9BQU9DO0FBQ1Q7QUFFQSxTQUFTQyxXQUFXQyxPQUFlLEVBQUVDLE1BQWM7SUFDakQsT0FBT0QsV0FBVyxHQUFHQyxTQUFTQSxPQUFPekMsUUFBUSxDQUFDLE9BQU8sTUFBTSxJQUFJLEtBQUssQ0FBQztBQUN2RTtBQUVBLFNBQVMwQyxvQkFDUEMsZ0JBQTRELEVBQzVEQyxlQUF1QixFQUN2QmxGLGNBQXNCLEVBQUU7SUFFeEIsSUFBSSxDQUFDaUYsa0JBQWtCO1FBQ3JCLE9BQU87WUFDTEUsWUFBWTtZQUNaQyxTQUFTO1FBQ1g7SUFDRjtJQUVBLE1BQU1DLGdCQUFnQkosaUJBQWlCSyxLQUFLLENBQUMsUUFBUTtJQUNyRCxNQUFNQyxpQkFBaUJOLGlCQUFpQkssS0FBSyxDQUFDSixnQkFBZ0I7SUFFOUQsTUFBTU0scUJBQXFCcEUsTUFBTXFFLElBQUksQ0FDbkMsSUFBSXhHLElBQUk7V0FBS29HLGlCQUFpQixFQUFFO1dBQU9FLGtCQUFrQixFQUFFO0tBQUU7SUFHL0QsMkZBQTJGO0lBQzNGLE1BQU1HLG1CQUFtQixDQUFDLENBQ3hCRixDQUFBQSxtQkFBbUJyQyxNQUFNLEtBQUssS0FDN0JrQyxDQUFBQSxpQkFBaUJFLGNBQUFBLENBQWEsQ0FBQztJQUdsQyxPQUFPO1FBQ0xKLFlBQVlPLG1CQUNWLFdBRFVBLEdBQ1YscUJBQUNDLFFBQUFBO1lBQ0NDLGtCQUNFWCxpQkFBaUJZLG9CQUFvQixHQUFHLGdCQUFnQjtZQUUxREMsS0FBSTtZQUNKQyxNQUFLO1lBQ0w1RixhQUFZO2FBRVo7UUFDSmlGLFNBQVNJLHFCQUNMQSxtQkFBbUJoRixHQUFHLENBQUMsQ0FBQ3dGO1lBQ3RCLE1BQU1DLE1BQU0sOEJBQThCQyxJQUFJLENBQUNGLFNBQVUsQ0FBQyxFQUFFO1lBQzVELHFCQUNFLHFCQUFDTCxRQUFBQTtnQkFFQ0csS0FBSTtnQkFDSkMsTUFBTSxHQUFHL0YsWUFBWSxPQUFPLEVBQUVjLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNrRixXQUFXO2dCQUN2REcsSUFBRztnQkFDSHRDLE1BQU0sQ0FBQyxLQUFLLEVBQUVvQyxLQUFLO2dCQUNuQjlGLGFBQVk7Z0JBQ1p5RixrQkFBZ0JJLFNBQVMxRCxRQUFRLENBQUMsUUFBUSxnQkFBZ0I7ZUFOckQwRDtRQVNYLEtBQ0E7SUFDTjtBQUNGO0FBUU8sTUFBTXJILGFBQWF5SCxPQUFBQSxPQUFLLENBQUNDLFNBQVM7cUJBQ2hDQyxXQUFBQSxHQUFjQywwQkFBQUEsV0FBVztJQUloQ0MsWUFBWXRFLEtBQW9CLEVBQXdCO1FBQ3RELE1BQU0sRUFDSmxDLFdBQVcsRUFDWEMsZ0JBQWdCLEVBQ2hCa0MsY0FBYyxFQUNkc0Usa0JBQWtCLEVBQ2xCdEcsV0FBVyxFQUNYdUcsV0FBVyxFQUNaLEdBQUcsSUFBSSxDQUFDNUcsT0FBTztRQUNoQixNQUFNNkcsV0FBV3pFLE1BQU10QyxRQUFRLENBQUNTLE1BQU0sQ0FBQyxDQUFDdUcsSUFBTUEsRUFBRXJHLFFBQVEsQ0FBQztRQUN6RCxNQUFNakIsY0FBMkIsSUFBSUwsSUFBSWlELE1BQU01QyxXQUFXO1FBRTFELHFFQUFxRTtRQUNyRSwrQ0FBK0M7UUFDL0MsSUFBSXVILGlCQUE4QixJQUFJNUgsSUFBSSxFQUFFO1FBQzVDLElBQUk2SCx1QkFBdUIxRixNQUFNcUUsSUFBSSxDQUNuQyxJQUFJeEcsSUFBSWtELGVBQWU5QixNQUFNLENBQUMsQ0FBQ2dDLE9BQVNBLEtBQUs5QixRQUFRLENBQUM7UUFFeEQsSUFBSXVHLHFCQUFxQjNELE1BQU0sRUFBRTtZQUMvQixNQUFNNEQsV0FBVyxJQUFJOUgsSUFBSTBIO1lBQ3pCRyx1QkFBdUJBLHFCQUFxQnpHLE1BQU0sQ0FDaEQsQ0FBQ3VHLElBQU0sQ0FBRUcsQ0FBQUEsU0FBU0MsR0FBRyxDQUFDSixNQUFNdEgsWUFBWTBILEdBQUcsQ0FBQ0osRUFBQUEsQ0FBQztZQUUvQ0MsaUJBQWlCLElBQUk1SCxJQUFJNkg7WUFDekJILFNBQVMvRSxJQUFJLElBQUlrRjtRQUNuQjtRQUVBLElBQUlHLGtCQUFpQyxFQUFFO1FBQ3ZDTixTQUFTaEYsT0FBTyxDQUFDLENBQUNVO1lBQ2hCLE1BQU02RSxlQUFlNUgsWUFBWTBILEdBQUcsQ0FBQzNFO1lBQ3JDLE1BQU04RSxrQkFBa0JOLGVBQWVHLEdBQUcsQ0FBQzNFO1lBQzNDLE1BQU0rRSw2QkFBNkJYLG1CQUFtQk8sR0FBRyxDQUFDM0U7WUFFMUQsSUFBSSxDQUFDcUUsYUFBYTtnQkFDaEJPLGdCQUFnQnJGLElBQUksZUFDbEIscUJBQUMrRCxRQUFBQTtvQkFFQ2hGLE9BQU8sSUFBSSxDQUFDWixLQUFLLENBQUNZLEtBQUs7b0JBQ3ZCbUYsS0FBSTtvQkFDSkMsTUFBTSxHQUFHL0YsWUFBWSxPQUFPLEVBQUVjLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQzVCdUIsUUFDRXBDLGtCQUFrQjtvQkFDdEJrRyxJQUFHO29CQUNIaEcsYUFBYSxJQUFJLENBQUNKLEtBQUssQ0FBQ0ksV0FBVyxJQUFJQTttQkFQbEMsR0FBR2tDLEtBQUssUUFBUSxDQUFDO1lBVTVCO1lBRUE0RSxnQkFBZ0JyRixJQUFJLGVBQ2xCLHFCQUFDK0QsUUFBQUE7Z0JBRUNoRixPQUFPLElBQUksQ0FBQ1osS0FBSyxDQUFDWSxLQUFLO2dCQUN2Qm1GLEtBQUk7Z0JBQ0pDLE1BQU0sR0FBRy9GLFlBQVksT0FBTyxFQUFFYyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUM1QnVCLFFBQ0VwQyxrQkFBa0I7Z0JBQ3RCRSxhQUFhLElBQUksQ0FBQ0osS0FBSyxDQUFDSSxXQUFXLElBQUlBO2dCQUN2Q2tILFlBQVVGLGtCQUFrQkcsWUFBWUosZUFBZSxLQUFLSTtnQkFDNURDLFlBQ0VMLGdCQUFnQkMsbUJBQW1CQyw2QkFDL0JFLFlBQ0E7ZUFYRGpGO1FBZVg7UUFFQSxPQUFPNEUsZ0JBQWdCOUQsTUFBTSxLQUFLLElBQUksT0FBTzhEO0lBQy9DO0lBRUFPLDBCQUEwQjtRQUN4QixNQUFNLEVBQUVyRixjQUFjLEVBQUVuQyxXQUFXLEVBQUVDLGdCQUFnQixFQUFFRSxXQUFXLEVBQUUsR0FDbEUsSUFBSSxDQUFDTCxPQUFPO1FBRWQsT0FDRXFDLGVBQ0czQixHQUFHLENBQUMsQ0FBQzZCO1lBQ0osSUFBSSxDQUFDQSxLQUFLOUIsUUFBUSxDQUFDLFFBQVE7Z0JBQ3pCLE9BQU87WUFDVDtZQUVBLHFCQUNFLHFCQUFDb0YsUUFBQUE7Z0JBQ0NHLEtBQUk7Z0JBRUpDLE1BQU0sR0FBRy9GLFlBQVksT0FBTyxFQUFFYyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUM1QnVCLFFBQ0VwQyxrQkFBa0I7Z0JBQ3RCa0csSUFBRztnQkFDSHhGLE9BQU8sSUFBSSxDQUFDWixLQUFLLENBQUNZLEtBQUs7Z0JBQ3ZCUixhQUFhLElBQUksQ0FBQ0osS0FBSyxDQUFDSSxXQUFXLElBQUlBO2VBTmxDa0M7UUFTWCxHQUNBLDRCQUE0QjtTQUMzQmhDLE1BQU0sQ0FBQ29IO0lBRWQ7SUFFQUMsb0JBQW9CeEYsS0FBb0IsRUFBd0I7UUFDOUQsTUFBTSxFQUFFbEMsV0FBVyxFQUFFQyxnQkFBZ0IsRUFBRTRDLFlBQVksRUFBRTFDLFdBQVcsRUFBRSxHQUNoRSxJQUFJLENBQUNMLE9BQU87UUFDZCxNQUFNNkgsZUFBZXpGLE1BQU10QyxRQUFRLENBQUNTLE1BQU0sQ0FBQyxDQUFDZ0M7WUFDMUMsT0FBT0EsS0FBSzlCLFFBQVEsQ0FBQztRQUN2QjtRQUVBLE9BQU87ZUFDRHNDLENBQUFBLGFBQWE0QixpQkFBaUIsSUFBSSxJQUFJakUsR0FBRyxDQUFDLENBQUM2QixPQUFBQSxXQUFBQSxHQUM3QyxxQkFBQ3NELFFBQUFBO29CQUVDaEYsT0FBTyxJQUFJLENBQUNaLEtBQUssQ0FBQ1ksS0FBSztvQkFDdkJtRixLQUFJO29CQUNKQyxNQUFNMUQsS0FBS3hCLEdBQUc7b0JBQ2RzRixJQUFHO29CQUNIaEcsYUFBYSxJQUFJLENBQUNKLEtBQUssQ0FBQ0ksV0FBVyxJQUFJQTttQkFMbENrQyxLQUFLeEIsR0FBRztlQVFkOEcsYUFBYW5ILEdBQUcsQ0FBQyxDQUFDNkIsT0FDbkIsV0FEbUJBLEdBQ25CLHFCQUFDc0QsUUFBQUE7b0JBRUNoRixPQUFPLElBQUksQ0FBQ1osS0FBSyxDQUFDWSxLQUFLO29CQUN2Qm1GLEtBQUk7b0JBQ0pDLE1BQU0sR0FBRy9GLFlBQVksT0FBTyxFQUFFYyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUM1QnVCLFFBQ0VwQyxrQkFBa0I7b0JBQ3RCa0csSUFBRztvQkFDSGhHLGFBQWEsSUFBSSxDQUFDSixLQUFLLENBQUNJLFdBQVcsSUFBSUE7bUJBUGxDa0M7U0FVVjtJQUNIO0lBRUF1RixvQ0FBb0M7UUFDbEMsTUFBTSxFQUFFL0UsWUFBWSxFQUFFLEdBQUcsSUFBSSxDQUFDL0MsT0FBTztRQUNyQyxNQUFNLEVBQUVhLEtBQUssRUFBRVIsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDSixLQUFLO1FBRXpDLE9BQVE4QyxDQUFBQSxhQUFhNEIsaUJBQWlCLElBQUksRUFBQyxFQUN4Q3BFLE1BQU0sQ0FDTCxDQUFDSSxTQUNDLENBQUNBLE9BQU9JLEdBQUcsSUFBS0osQ0FBQUEsT0FBT2dCLHVCQUF1QixJQUFJaEIsT0FBT2EsUUFBQUEsR0FFNURkLEdBQUcsQ0FBQyxDQUFDNkIsTUFBbUJrQjtZQUN2QixNQUFNLEVBQ0pDLFFBQVEsRUFDUmxDLFFBQVEsRUFDUkcsdUJBQXVCLEVBQ3ZCWixHQUFHLEVBQ0gsR0FBRzZDLGFBQ0osR0FBR3JCO1lBQ0osSUFBSXdGLE9BRVU7WUFFZCxJQUFJcEcsMkJBQTJCQSx3QkFBd0JDLE1BQU0sRUFBRTtnQkFDN0RtRyxPQUFPcEcsd0JBQXdCQyxNQUFNO1lBQ3ZDLE9BQU8sSUFBSUosVUFBVTtnQkFDbkJ1RyxPQUNFLE9BQU92RyxhQUFhLFdBQ2hCQSxXQUNBRixNQUFNQyxPQUFPLENBQUNDLFlBQ1pBLFNBQVNTLElBQUksQ0FBQyxNQUNkO1lBQ1Y7WUFFQSxxQkFDRSwwQkFBQ3RCLFVBQUFBO2dCQUNFLEdBQUdpRCxXQUFXO2dCQUNmakMseUJBQXlCO29CQUFFQyxRQUFRbUc7Z0JBQUs7Z0JBQ3hDL0QsS0FBS0osWUFBWW9FLEVBQUUsSUFBSXZFO2dCQUN2QjVDLE9BQU9BO2dCQUNQb0QsZ0JBQWE7Z0JBQ2I1RCxhQUNFQSxlQUNDVixTQUErQjs7UUFJeEM7SUFDSjtJQUVBd0MsaUJBQWlCQyxLQUFvQixFQUFFO1FBQ3JDLE9BQU9ELGlCQUFpQixJQUFJLENBQUNuQyxPQUFPLEVBQUUsSUFBSSxDQUFDQyxLQUFLLEVBQUVtQztJQUNwRDtJQUVBb0Msb0JBQW9CO1FBQ2xCLE9BQU9BLGtCQUFrQixJQUFJLENBQUN4RSxPQUFPLEVBQUUsSUFBSSxDQUFDQyxLQUFLO0lBQ25EO0lBRUF5QyxXQUFXTixLQUFvQixFQUFFO1FBQy9CLE9BQU9NLFdBQVcsSUFBSSxDQUFDMUMsT0FBTyxFQUFFLElBQUksQ0FBQ0MsS0FBSyxFQUFFbUM7SUFDOUM7SUFFQXJDLHFCQUFxQjtRQUNuQixPQUFPQSxtQkFBbUIsSUFBSSxDQUFDQyxPQUFPLEVBQUUsSUFBSSxDQUFDQyxLQUFLO0lBQ3BEO0lBRUFpSSxTQUFTO1FBQ1AsTUFBTSxFQUNKOUcsTUFBTSxFQUNONEQsT0FBTyxFQUNQekYsU0FBUyxFQUNUNEksU0FBUyxFQUNUQyxhQUFhLEVBQ2JDLGFBQWEsRUFDYmpELGVBQWUsRUFDZmtELFFBQVEsRUFDUkMsa0JBQWtCLEVBQ2xCQyxrQkFBa0IsRUFDbEJwSSx1QkFBdUIsRUFDdkJ3RyxXQUFXLEVBQ1gxRyxXQUFXLEVBQ1hpRixnQkFBZ0IsRUFDakIsR0FBRyxJQUFJLENBQUNuRixPQUFPO1FBRWhCLE1BQU15SSxtQkFBbUJGLHVCQUF1QjtRQUNoRCxNQUFNRyxtQkFDSkYsdUJBQXVCLFNBQVMsQ0FBQ3BJO1FBRW5DLElBQUksQ0FBQ0osT0FBTyxDQUFDMkkscUJBQXFCLENBQUM5SixJQUFJLEdBQUc7UUFFMUMsSUFBSSxFQUFFK0osSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDNUksT0FBTztRQUMzQixJQUFJNkksY0FBa0MsRUFBRTtRQUN4QyxJQUFJQyxvQkFBd0MsRUFBRTtRQUM5QyxJQUFJRixNQUFNO1lBQ1JBLEtBQUsvRyxPQUFPLENBQUMsQ0FBQ1g7Z0JBQ1osSUFDRUEsU0FDQUEsTUFBTTZDLElBQUksS0FBSyxVQUNmN0MsTUFBTWpCLEtBQUssQ0FBQyxNQUFNLEtBQUssYUFDdkJpQixNQUFNakIsS0FBSyxDQUFDLEtBQUssS0FBSyxTQUN0QjtvQkFDQSxJQUFJLElBQUksQ0FBQ0QsT0FBTyxDQUFDK0ksY0FBYyxFQUFFO3dCQUMvQkYsWUFBWS9HLElBQUksZUFDZHdFLE9BQUFBLE9BQUssQ0FBQzBDLFlBQVksQ0FBQzlILE9BQU87NEJBQUUsa0JBQWtCO3dCQUFHO29CQUVyRCxPQUFPO3dCQUNMMkgsWUFBWS9HLElBQUksQ0FBQ1o7b0JBQ25CO2dCQUNGLE9BQU87b0JBQ0wsSUFBSUEsT0FBTzt3QkFDVCxJQUFJLElBQUksQ0FBQ2xCLE9BQU8sQ0FBQytJLGNBQWMsRUFBRTs0QkFDL0JELGtCQUFrQmhILElBQUksZUFDcEJ3RSxPQUFBQSxPQUFLLENBQUMwQyxZQUFZLENBQUM5SCxPQUFPO2dDQUFFLGtCQUFrQjs0QkFBRzt3QkFFckQsT0FBTzs0QkFDTDRILGtCQUFrQmhILElBQUksQ0FBQ1o7d0JBQ3pCO29CQUNGO2dCQUNGO1lBQ0Y7WUFDQTBILE9BQU9DLFlBQVlJLE1BQU0sQ0FBQ0g7UUFDNUI7UUFDQSxJQUFJdEgsV0FBOEI4RSxPQUFBQSxPQUFLLENBQUM0QyxRQUFRLENBQUNDLE9BQU8sQ0FDdEQsSUFBSSxDQUFDbEosS0FBSyxDQUFDdUIsUUFBUSxFQUNuQmpCLE1BQU0sQ0FBQ29IO1FBQ1QsZ0VBQWdFO1FBQ2hFLElBQUloSSxJQUFvQixFQUFtQjtZQUN6QzZCLFdBQVc4RSxPQUFBQSxPQUFLLENBQUM0QyxRQUFRLENBQUN4SSxHQUFHLENBQUNjLFVBQVUsQ0FBQ047b0JBQ2pCQTtnQkFBdEIsTUFBTW1JLGdCQUFnQm5JLFNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGVBQUFBLE1BQU9qQixLQUFBQSxLQUFLLGdCQUFaaUIsWUFBYyxDQUFDLG9CQUFvQjtnQkFDekQsSUFBSSxDQUFDbUksZUFBZTt3QkFPaEJuSTtvQkFORixJQUFJQSxDQUFBQSxTQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxNQUFPNkMsSUFBQUEsTUFBUyxTQUFTO3dCQUMzQk0sUUFBUUMsSUFBSSxDQUNWO29CQUVKLE9BQU8sSUFDTHBELENBQUFBLFNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE1BQU82QyxJQUFBQSxNQUFTLFVBQ2hCN0MsQ0FBQUEsU0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsQ0FBQUEsZ0JBQUFBLE1BQU9qQixLQUFBQSxLQUFLLGdCQUFaaUIsY0FBY29JLElBQUFBLE1BQVMsWUFDdkI7d0JBQ0FqRixRQUFRQyxJQUFJLENBQ1Y7b0JBRUo7Z0JBQ0Y7Z0JBQ0EsT0FBT3BEO1lBQ1Asd0ZBQXdGO1lBQzFGO1lBQ0EsSUFBSSxJQUFJLENBQUNqQixLQUFLLENBQUNJLFdBQVcsRUFDeEJnRSxRQUFRQyxJQUFJLENBQ1Y7UUFFTjtRQUVBLElBQUlpRixnQkFBZ0I7UUFDcEIsSUFBSUMsa0JBQWtCO1FBRXRCLG9EQUFvRDtRQUNwRFosT0FBT3RDLE9BQUFBLE9BQUssQ0FBQzRDLFFBQVEsQ0FBQ3hJLEdBQUcsQ0FBQ2tJLFFBQVEsRUFBRSxFQUFFLENBQUMxSDtZQUNyQyxJQUFJLENBQUNBLE9BQU8sT0FBT0E7WUFDbkIsTUFBTSxFQUFFNkMsSUFBSSxFQUFFOUQsS0FBSyxFQUFFLEdBQUdpQjtZQUN4QixJQUFJdkIsS0FBbUMsSUFBSUosV0FBVztnQkFDcEQsSUFBSWtLLFVBQWtCO2dCQUV0QixJQUFJMUYsU0FBUyxVQUFVOUQsTUFBTXFKLElBQUksS0FBSyxZQUFZO29CQUNoREcsVUFBVTtnQkFDWixPQUFPLElBQUkxRixTQUFTLFVBQVU5RCxNQUFNK0YsR0FBRyxLQUFLLGFBQWE7b0JBQ3ZEd0Qsa0JBQWtCO2dCQUNwQixPQUFPLElBQUl6RixTQUFTLFVBQVU7b0JBQzVCLGdCQUFnQjtvQkFDaEIseURBQXlEO29CQUN6RCwyREFBMkQ7b0JBQzNELDRCQUE0QjtvQkFDNUIsSUFDRzlELE1BQU1jLEdBQUcsSUFBSWQsTUFBTWMsR0FBRyxDQUFDMkksT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQ2hEekosTUFBTTBCLHVCQUF1QixJQUMzQixFQUFDMUIsTUFBTThELElBQUksSUFBSTlELE1BQU04RCxJQUFJLEtBQUssa0JBQWdCLEVBQ2pEO3dCQUNBMEYsVUFBVTt3QkFDVkUsT0FBT0MsSUFBSSxDQUFDM0osT0FBTzRCLE9BQU8sQ0FBQyxDQUFDZ0k7NEJBQzFCSixXQUFXLENBQUMsQ0FBQyxFQUFFSSxLQUFLLEVBQUUsRUFBRTVKLEtBQUssQ0FBQzRKLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3hDO3dCQUNBSixXQUFXO29CQUNiO2dCQUNGO2dCQUVBLElBQUlBLFNBQVM7b0JBQ1hwRixRQUFRQyxJQUFJLENBQ1YsQ0FBQywyQkFBMkIsRUFBRXBELE1BQU02QyxJQUFJLENBQUMsd0JBQXdCLEVBQUUwRixRQUFRLElBQUksRUFBRXBCLGNBQWN5QixJQUFJLENBQUMsc0RBQXNELENBQUM7b0JBRTdKLE9BQU87Z0JBQ1Q7WUFDRixPQUFPO2dCQUNMLGVBQWU7Z0JBQ2YsSUFBSS9GLFNBQVMsVUFBVTlELE1BQU0rRixHQUFHLEtBQUssV0FBVztvQkFDOUN1RCxnQkFBZ0I7Z0JBQ2xCO1lBQ0Y7WUFDQSxPQUFPckk7UUFDUCx3RkFBd0Y7UUFDMUY7UUFFQSxNQUFNa0IsUUFBdUJoRCxpQkFDM0IsSUFBSSxDQUFDWSxPQUFPLENBQUNYLGFBQWEsRUFDMUIsSUFBSSxDQUFDVyxPQUFPLENBQUNxSSxhQUFhLENBQUN5QixJQUFJLEVBQy9CbkssS0FBbUMsSUFBSUo7UUFHekMsTUFBTXdLLG1CQUFtQjdFLG9CQUN2QkMsa0JBQ0FDLGlCQUNBbEY7UUFHRixNQUFNOEosa0JBQWtCQyxDQUFBQSxHQUFBQSxPQUFBQSxpQkFBaUIsRUFDdkNDLENBQUFBLEdBQUFBLFFBQUFBLFNBQUFBLElBQVlDLHVCQUF1QixJQUNuQyxJQUFJLENBQUNuSyxPQUFPLENBQUNvSywrQkFBK0I7UUFHOUMsTUFBTUMsZ0JBQWlCTCxDQUFBQSxtQkFBbUIsSUFBSXRKLEdBQUcsQ0FDL0MsQ0FBQyxFQUFFc0QsR0FBRyxFQUFFc0csS0FBSyxFQUFFLEVBQUU3RyxRQUFBQSxXQUFBQSxHQUNmLHFCQUFDOEcsUUFBQUE7Z0JBQXNDakIsTUFBTXRGO2dCQUFLd0csU0FBU0Y7ZUFBaEQsQ0FBQyxnQkFBZ0IsRUFBRTdHLE9BQU87UUFJekMscUJBQ0Usc0JBQUNtRixRQUFBQTtZQUFNLEdBQUdoRSxpQkFBaUIsSUFBSSxDQUFDM0UsS0FBSyxDQUFDOztnQkFDbkMsSUFBSSxDQUFDRCxPQUFPLENBQUNzQyxhQUFhLElBQ3pCLFdBRHlCLEdBQ3pCOztzQ0FDRSxxQkFBQ1AsU0FBQUE7NEJBQ0MwSSxxQkFBbUI7NEJBQ25CQyxtQkFDRS9LLEtBQW1DLElBQUlKLFlBQ25DLFNBQ0FpSTs0QkFFTjdGLHlCQUF5QjtnQ0FDdkJDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQzs0QkFDOUI7O3NDQUVGLHFCQUFDK0ksWUFBQUE7NEJBQ0NGLHFCQUFtQjs0QkFDbkJDLG1CQUNFL0ssS0FBbUMsSUFBSUosWUFDbkMsU0FDQWlJO3NDQUdOLG1DQUFDekYsU0FBQUE7Z0NBQ0NKLHlCQUF5QjtvQ0FDdkJDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQztnQ0FDL0I7Ozs7O2dCQUtQZ0g7Z0JBQ0EsSUFBSSxDQUFDNUksT0FBTyxDQUFDK0ksY0FBYyxHQUFHLHFCQUM3QixxQkFBQ3dCLFFBQUFBO29CQUNDakIsTUFBSztvQkFDTGtCLFNBQVNsRSxPQUFBQSxPQUFLLENBQUM0QyxRQUFRLENBQUMwQixLQUFLLENBQUNoQyxRQUFRLEVBQUUsRUFBRWlDLFFBQVE7O2dCQUlyRHJKO2dCQUVBdUksaUJBQWlCMUUsVUFBVTtnQkFDM0IwRSxpQkFBaUJ6RSxPQUFPO2dCQUV4QjNGLEtBQW1DLElBQUlKLGFBQUFBLFdBQUFBLEdBQ3RDOztzQ0FDRSxxQkFBQ2dMLFFBQUFBOzRCQUNDakIsTUFBSzs0QkFDTGtCLFNBQVE7O3dCQUVULENBQUNoQixtQkFDQSxXQURBQSxHQUNBLHFCQUFDM0QsUUFBQUE7NEJBQ0NHLEtBQUk7NEJBQ0pDLE1BQ0VtQyxnQkFDQTBDLHFHQUF1QyxDQUFDMUY7O3NDQUs5QyxxQkFBQ1MsUUFBQUE7NEJBQ0NHLEtBQUk7NEJBQ0pLLElBQUc7NEJBQ0hKLE1BQUs7O3NDQUVQLHFCQUFDOUUsV0FBQUE7NEJBQVVDLFFBQVFBOztzQ0FDbkIscUJBQUNXLFNBQUFBOzRCQUNDaUosbUJBQWdCOzRCQUNoQnJKLHlCQUF5QjtnQ0FDdkJDLFFBQVEsQ0FBQyxzbEJBQXNsQixDQUFDOzRCQUNsbUI7O3NDQUVGLHFCQUFDK0ksWUFBQUE7c0NBQ0MsbUNBQUM1SSxTQUFBQTtnQ0FDQ2lKLG1CQUFnQjtnQ0FDaEJySix5QkFBeUI7b0NBQ3ZCQyxRQUFRLENBQUMsa0ZBQWtGLENBQUM7Z0NBQzlGOzs7c0NBR0oscUJBQUNqQixVQUFBQTs0QkFBTzhCLEtBQUs7NEJBQUMxQixLQUFJOzs7O2dCQUdyQixDQUFFcEIsQ0FBQUEsS0FBbUMsSUFBSUosU0FBQUEsQ0FBUSxrQkFDaEQ7O3dCQUNHLENBQUNnSyxpQkFBaUJwQixhQUFBQSxXQUFBQSxHQUNqQixxQkFBQ3RDLFFBQUFBOzRCQUNDRyxLQUFJOzRCQUNKQyxNQUFNbUMsZ0JBQWdCckQsV0FBV0MsU0FBU0k7O3dCQUc3QyxJQUFJLENBQUMwQyxpQ0FBaUM7d0JBQ3RDLENBQUNsQixlQUFlLElBQUksQ0FBQ0YsV0FBVyxDQUFDdEU7d0JBQ2pDLENBQUN3RSxlQUFlLFdBQWZBLEdBQWUscUJBQUMrRCxZQUFBQTs0QkFBU00sY0FBWSxJQUFJLENBQUNoTCxLQUFLLENBQUNZLEtBQUssSUFBSTs7d0JBRTFELENBQUM0SCxvQkFDQSxDQUFDQyxvQkFDRCxJQUFJLENBQUNoQix1QkFBdUI7d0JBQzdCLENBQUNlLG9CQUNBLENBQUNDLG9CQUNELElBQUksQ0FBQ2QsbUJBQW1CLENBQUN4Rjt3QkFFMUIsQ0FBQ2hDLDJCQUNBLENBQUNxSSxvQkFDRCxJQUFJLENBQUMxSSxrQkFBa0I7d0JBRXhCLENBQUNLLDJCQUNBLENBQUNxSSxvQkFDRCxJQUFJLENBQUNqRSxpQkFBaUI7d0JBQ3ZCLENBQUNwRSwyQkFDQSxDQUFDcUksb0JBQ0QsSUFBSSxDQUFDdEcsZ0JBQWdCLENBQUNDO3dCQUN2QixDQUFDaEMsMkJBQ0EsQ0FBQ3FJLG9CQUNELElBQUksQ0FBQy9GLFVBQVUsQ0FBQ047d0JBRWpCd0UsZUFBZSxJQUFJLENBQUNGLFdBQVcsQ0FBQ3RFO3dCQUNoQ3dFLGVBQUFBLFdBQUFBLEdBQWUscUJBQUMrRCxZQUFBQTs0QkFBU00sY0FBWSxJQUFJLENBQUNoTCxLQUFLLENBQUNZLEtBQUssSUFBSTs7d0JBQ3pELElBQUksQ0FBQ2IsT0FBTyxDQUFDc0MsYUFBYSxJQUN6QiwwREFBMEQ7d0JBQzFELDhCQUE4Qjt3QkFDOUIsK0RBQStEO3NDQUMvRCxxQkFBQ3FJLFlBQUFBOzRCQUFTM0MsSUFBRzs7d0JBRWRxQzt3QkFDQWpKLFVBQVU7Ozs4QkFHZGtGLE9BQUFBLE9BQUssQ0FBQzRFLGFBQWEsQ0FBQzVFLE9BQUFBLE9BQUssQ0FBQzZFLFFBQVEsRUFBRSxDQUFDLE1BQU83QyxZQUFZLEVBQUU7OztJQUdqRTtBQUNGO0FBRUEsU0FBUzhDLGdDQUNQckksWUFBMkMsRUFDM0NzRixhQUF3QixFQUN4QnBJLEtBQVU7UUFVV3VCLHNCQUFBQSxnQkFHQUEsdUJBQUFBO0lBWHJCLElBQUksQ0FBQ3ZCLE1BQU11QixRQUFRLEVBQUU7SUFFckIsTUFBTTZKLG9CQUFtQyxFQUFFO0lBRTNDLE1BQU03SixXQUFXRixNQUFNQyxPQUFPLENBQUN0QixNQUFNdUIsUUFBUSxJQUN6Q3ZCLE1BQU11QixRQUFRLEdBQ2Q7UUFBQ3ZCLE1BQU11QixRQUFRO0tBQUM7SUFFcEIsTUFBTThKLGVBQUFBLENBQWU5SixpQkFBQUEsU0FBUzRCLElBQUksQ0FDaEMsQ0FBQ2xDLFFBQThCQSxNQUFNNkMsSUFBSSxLQUFLbEYsS0FBQUEsS0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsd0JBRDNCMkMsZUFFbEJ2QixLQUFBQSxLQUFLLGdCQUZhdUIscUJBRVhBLFFBQVE7SUFDbEIsTUFBTStKLGVBQUFBLENBQWUvSixrQkFBQUEsU0FBUzRCLElBQUksQ0FDaEMsQ0FBQ2xDLFFBQThCQSxNQUFNNkMsSUFBSSxLQUFLLHFEQUQzQnZDLGdCQUVsQnZCLEtBQUFBLEtBQUssZ0JBRmF1QixzQkFFWEEsUUFBUTtJQUVsQiwrR0FBK0c7SUFDL0csTUFBTWdLLG1CQUFtQjtXQUNuQmxLLE1BQU1DLE9BQU8sQ0FBQytKLGdCQUFnQkEsZUFBZTtZQUFDQTtTQUFhO1dBQzNEaEssTUFBTUMsT0FBTyxDQUFDZ0ssZ0JBQWdCQSxlQUFlO1lBQUNBO1NBQWE7S0FDaEU7SUFFRGpGLE9BQUFBLE9BQUssQ0FBQzRDLFFBQVEsQ0FBQ3JILE9BQU8sQ0FBQzJKLGtCQUFrQixDQUFDdEs7WUFJcENBO1FBSEosSUFBSSxDQUFDQSxPQUFPO1FBRVosd0VBQXdFO1FBQ3hFLEtBQUlBLGNBQUFBLE1BQU02QyxJQUFBQSxLQUFJLGdCQUFWN0MsWUFBWXVLLFlBQVksRUFBRTtZQUM1QixJQUFJdkssTUFBTWpCLEtBQUssQ0FBQ3lELFFBQVEsS0FBSyxxQkFBcUI7Z0JBQ2hEWCxhQUFhNEIsaUJBQWlCLEdBQzVCNUIsQ0FBQUEsYUFBYTRCLGlCQUFpQixJQUFJLElBQ2xDc0UsTUFBTSxDQUFDO29CQUNQO3dCQUNFLEdBQUcvSCxNQUFNakIsS0FBSztvQkFDaEI7aUJBQ0Q7Z0JBQ0Q7WUFDRixPQUFPLElBQ0w7Z0JBQUM7Z0JBQWM7Z0JBQW9CO2FBQVMsQ0FBQ3VDLFFBQVEsQ0FDbkR0QixNQUFNakIsS0FBSyxDQUFDeUQsUUFBUSxHQUV0QjtnQkFDQTJILGtCQUFrQnZKLElBQUksQ0FBQ1osTUFBTWpCLEtBQUs7Z0JBQ2xDO1lBQ0YsT0FBTyxJQUFJLE9BQU9pQixNQUFNakIsS0FBSyxDQUFDeUQsUUFBUSxLQUFLLGFBQWE7Z0JBQ3REMkgsa0JBQWtCdkosSUFBSSxDQUFDO29CQUFFLEdBQUdaLE1BQU1qQixLQUFLO29CQUFFeUQsVUFBVTtnQkFBbUI7Z0JBQ3RFO1lBQ0Y7UUFDRjtJQUNGO0lBRUEyRSxjQUFjdEYsWUFBWSxHQUFHc0k7QUFDL0I7QUFFTyxNQUFNck0sbUJBQW1Cc0gsT0FBQUEsT0FBSyxDQUFDQyxTQUFTO3FCQUN0Q0MsV0FBQUEsR0FBY0MsMEJBQUFBLFdBQVc7SUFJaEN0RSxpQkFBaUJDLEtBQW9CLEVBQUU7UUFDckMsT0FBT0QsaUJBQWlCLElBQUksQ0FBQ25DLE9BQU8sRUFBRSxJQUFJLENBQUNDLEtBQUssRUFBRW1DO0lBQ3BEO0lBRUFvQyxvQkFBb0I7UUFDbEIsT0FBT0Esa0JBQWtCLElBQUksQ0FBQ3hFLE9BQU8sRUFBRSxJQUFJLENBQUNDLEtBQUs7SUFDbkQ7SUFFQXlDLFdBQVdOLEtBQW9CLEVBQUU7UUFDL0IsT0FBT00sV0FBVyxJQUFJLENBQUMxQyxPQUFPLEVBQUUsSUFBSSxDQUFDQyxLQUFLLEVBQUVtQztJQUM5QztJQUVBckMscUJBQXFCO1FBQ25CLE9BQU9BLG1CQUFtQixJQUFJLENBQUNDLE9BQU8sRUFBRSxJQUFJLENBQUNDLEtBQUs7SUFDcEQ7SUFFQSxPQUFPeUwsc0JBQXNCMUwsT0FBNEIsRUFBVTtRQUNqRSxNQUFNLEVBQUVxSSxhQUFhLEVBQUVzRCxrQkFBa0IsRUFBRSxHQUFHM0w7UUFDOUMsSUFBSTtZQUNGLE1BQU00TCxPQUFPQyxLQUFLQyxTQUFTLENBQUN6RDtZQUU1QixJQUFJbkosc0JBQXNCZ0ksR0FBRyxDQUFDbUIsY0FBY3lCLElBQUksR0FBRztnQkFDakQsT0FBT2lDLENBQUFBLEdBQUFBLFlBQUFBLG9CQUFBQSxFQUFxQkg7WUFDOUI7WUFFQSxNQUFNSSxRQUNKck0sTUFBbUMsR0FDL0IsQ0FBZ0QsR0FDaEQwTSxPQUFPMUcsSUFBSSxDQUFDaUcsTUFBTVEsVUFBVTtZQUNsQyxNQUFNRSxjQUFjeEIsMkdBQXNDO1lBRTFELElBQUlhLHNCQUFzQkssUUFBUUwsb0JBQW9CO2dCQUNwRCxJQUFJaE0sS0FBb0IsRUFBbUIsRUFFMUM7Z0JBRUQwRSxRQUFRQyxJQUFJLENBQ1YsQ0FBQyx3QkFBd0IsRUFBRStELGNBQWN5QixJQUFJLENBQUMsQ0FBQyxFQUM3Q3pCLGNBQWN5QixJQUFJLEtBQUs5SixRQUFRb0YsZUFBZSxHQUMxQyxLQUNBLENBQUMsUUFBUSxFQUFFcEYsUUFBUW9GLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FDM0MsSUFBSSxFQUFFa0gsWUFDTE4sT0FDQSxnQ0FBZ0MsRUFBRU0sWUFDbENYLG9CQUNBLG1IQUFtSCxDQUFDO1lBRTFIO1lBRUEsT0FBT0ksQ0FBQUEsR0FBQUEsWUFBQUEsb0JBQUFBLEVBQXFCSDtRQUM5QixFQUFFLE9BQU8xSCxLQUFLO1lBQ1osSUFBSUMsQ0FBQUEsR0FBQUEsU0FBQUEsT0FBQUEsRUFBUUQsUUFBUUEsSUFBSUssT0FBTyxDQUFDbUYsT0FBTyxDQUFDLDBCQUEwQixDQUFDLEdBQUc7Z0JBQ3BFLE1BQU0sSUFBSTVGLE1BQ1IsQ0FBQyx3REFBd0QsRUFBRXVFLGNBQWN5QixJQUFJLENBQUMsc0RBQXNELENBQUM7WUFFekk7WUFDQSxNQUFNNUY7UUFDUjtJQUNGO0lBRUFnRSxTQUFTO1FBQ1AsTUFBTSxFQUNKaEksV0FBVyxFQUNYWCxTQUFTLEVBQ1RGLGFBQWEsRUFDYmtKLGtCQUFrQixFQUNsQkkscUJBQXFCLEVBQ3JCeEksZ0JBQWdCLEVBQ2hCQyx1QkFBdUIsRUFDdkJDLFdBQVcsRUFDWixHQUFHLElBQUksQ0FBQ0wsT0FBTztRQUNoQixNQUFNeUksbUJBQW1CRix1QkFBdUI7UUFFaERJLHNCQUFzQjNKLFVBQVUsR0FBRztRQUVuQyxJQUFJVyxLQUFtQyxJQUFJSixXQUFXO1lBQ3BELElBQUlJLEtBQW9CLEVBQW1CLEVBRTFDO1lBQ0QsTUFBTThNLGNBQWM7bUJBQ2ZwTixjQUFjcU4sUUFBUTttQkFDdEJyTixjQUFjaUIsYUFBYTttQkFDM0JqQixjQUFjb04sV0FBVzthQUM3QjtZQUVELHFCQUNFOztvQkFDR2hFLG1CQUFtQixPQUNsQixXQURrQixHQUNsQixxQkFBQzlILFVBQUFBO3dCQUNDcUgsSUFBRzt3QkFDSGpFLE1BQUs7d0JBQ0xsRCxPQUFPLElBQUksQ0FBQ1osS0FBSyxDQUFDWSxLQUFLO3dCQUN2QlIsYUFBYSxJQUFJLENBQUNKLEtBQUssQ0FBQ0ksV0FBVyxJQUFJQTt3QkFDdkNzQix5QkFBeUI7NEJBQ3ZCQyxRQUFRNUMsV0FBVzBNLHFCQUFxQixDQUFDLElBQUksQ0FBQzFMLE9BQU87d0JBQ3ZEO3dCQUNBMEssaUJBQWU7O29CQUdsQitCLFlBQVkvTCxHQUFHLENBQUMsQ0FBQzZCLE9BQ2hCLFdBRGdCQSxHQUNoQixxQkFBQzVCLFVBQUFBOzRCQUVDSSxLQUFLLEdBQUdiLFlBQVksT0FBTyxFQUFFYyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUMzQnVCLFFBQ0VwQyxrQkFBa0I7NEJBQ3RCVSxPQUFPLElBQUksQ0FBQ1osS0FBSyxDQUFDWSxLQUFLOzRCQUN2QlIsYUFBYSxJQUFJLENBQUNKLEtBQUssQ0FBQ0ksV0FBVyxJQUFJQTs0QkFDdkNxSyxpQkFBZTsyQkFOVm5JOzs7UUFXZjtRQUVBLElBQUk1QyxJQUFvQixFQUFtQjtZQUN6QyxJQUFJLElBQUksQ0FBQ00sS0FBSyxDQUFDSSxXQUFXLEVBQ3hCZ0UsUUFBUUMsSUFBSSxDQUNWO1FBRU47UUFFQSxNQUFNbEMsUUFBdUJoRCxpQkFDM0IsSUFBSSxDQUFDWSxPQUFPLENBQUNYLGFBQWEsRUFDMUIsSUFBSSxDQUFDVyxPQUFPLENBQUNxSSxhQUFhLENBQUN5QixJQUFJLEVBQy9CbkssS0FBbUMsSUFBSUo7UUFHekMscUJBQ0U7O2dCQUNHLENBQUNrSixvQkFBb0JwSixjQUFjcU4sUUFBUSxHQUN4Q3JOLGNBQWNxTixRQUFRLENBQUNoTSxHQUFHLENBQUMsQ0FBQzZCLE9BQUFBLFdBQUFBLEdBQzFCLHFCQUFDNUIsVUFBQUE7d0JBRUNJLEtBQUssR0FBR2IsWUFBWSxPQUFPLEVBQUVjLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQzNCdUIsUUFDRXBDLGtCQUFrQjt3QkFDdEJVLE9BQU8sSUFBSSxDQUFDWixLQUFLLENBQUNZLEtBQUs7d0JBQ3ZCUixhQUFhLElBQUksQ0FBQ0osS0FBSyxDQUFDSSxXQUFXLElBQUlBO3VCQUxsQ2tDLFNBUVQ7Z0JBQ0hrRyxtQkFBbUIscUJBQ2xCLHFCQUFDOUgsVUFBQUE7b0JBQ0NxSCxJQUFHO29CQUNIakUsTUFBSztvQkFDTGxELE9BQU8sSUFBSSxDQUFDWixLQUFLLENBQUNZLEtBQUs7b0JBQ3ZCUixhQUFhLElBQUksQ0FBQ0osS0FBSyxDQUFDSSxXQUFXLElBQUlBO29CQUN2Q3NCLHlCQUF5Qjt3QkFDdkJDLFFBQVE1QyxXQUFXME0scUJBQXFCLENBQUMsSUFBSSxDQUFDMUwsT0FBTztvQkFDdkQ7O2dCQUdISSwyQkFDQyxDQUFDcUksb0JBQ0QsSUFBSSxDQUFDMUksa0JBQWtCO2dCQUN4QkssMkJBQ0MsQ0FBQ3FJLG9CQUNELElBQUksQ0FBQ2pFLGlCQUFpQjtnQkFDdkJwRSwyQkFDQyxDQUFDcUksb0JBQ0QsSUFBSSxDQUFDdEcsZ0JBQWdCLENBQUNDO2dCQUN2QmhDLDJCQUEyQixDQUFDcUksb0JBQW9CLElBQUksQ0FBQy9GLFVBQVUsQ0FBQ047OztJQUd2RTtBQUNGO0FBRU8sU0FBU3RELEtBQ2RtQixLQUdDO0lBRUQsTUFBTSxFQUNKVixTQUFTLEVBQ1RvSixxQkFBcUIsRUFDckJnRSxNQUFNLEVBQ041SixZQUFZLEVBQ1pzRixhQUFhLEVBQ2QsR0FBR3VFLENBQUFBLEdBQUFBLDBCQUFBQSxjQUFBQTtJQUVKakUsc0JBQXNCN0osSUFBSSxHQUFHO0lBQzdCc00sZ0NBQWdDckksY0FBY3NGLGVBQWVwSTtJQUU3RCxxQkFDRSxxQkFBQzhILFFBQUFBO1FBQ0UsR0FBRzlILEtBQUs7UUFDVDRNLE1BQU01TSxNQUFNNE0sSUFBSSxJQUFJRixVQUFVbkY7UUFDOUJzRixLQUFLbk4sS0FBbUMsSUFBSUosWUFBWSxLQUFLaUk7UUFDN0RrRCxtQkFDRS9LLEtBQW1DLElBQ25DSixhQUNBSSxRQUFRQyxHQUFHLENBQUN3SixNQUFhLEVBQUwsYUFDaEIsS0FDQTVCOztBQUlaO0FBRU8sU0FBU3pJO0lBQ2QsTUFBTSxFQUFFNEoscUJBQXFCLEVBQUUsR0FBR2lFLENBQUFBLEdBQUFBLDBCQUFBQSxjQUFBQTtJQUNsQ2pFLHNCQUFzQjVKLElBQUksR0FBRztJQUM3QixhQUFhO0lBQ2IscUJBQU8scUJBQUNnTyx1Q0FBQUEsQ0FBQUE7QUFDVjtBQU1lLE1BQU05TixpQkFBeUJxSCxPQUFBQSxPQUFLLENBQUNDLFNBQVM7SUFHM0Q7OztHQUdDLEdBQ0QsT0FBT3lHLGdCQUFnQkMsR0FBb0IsRUFBaUM7UUFDMUUsT0FBT0EsSUFBSUMsc0JBQXNCLENBQUNEO0lBQ3BDO0lBRUEvRSxTQUFTO1FBQ1AsT0FDRSxXQURGLEdBQ0Usc0JBQUNwSixNQUFBQTs7OEJBQ0MscUJBQUNELE1BQUFBLENBQUFBOzhCQUNELHNCQUFDc08sUUFBQUE7O3NDQUNDLHFCQUFDcE8sTUFBQUEsQ0FBQUE7c0NBQ0QscUJBQUNDLFlBQUFBLENBQUFBOzs7OztJQUlUO0FBQ0Y7QUFFQSw4RUFBOEU7QUFDOUUsMkRBQTJEO0FBQzNELE1BQU1vTywyQkFDSixTQUFTQTtJQUNQLHFCQUNFLHNCQUFDdE8sTUFBQUE7OzBCQUNDLHFCQUFDRCxNQUFBQSxDQUFBQTswQkFDRCxzQkFBQ3NPLFFBQUFBOztrQ0FDQyxxQkFBQ3BPLE1BQUFBLENBQUFBO2tDQUNELHFCQUFDQyxZQUFBQSxDQUFBQTs7Ozs7QUFJVDtBQUNBQyxRQUFnQixDQUFDb08sV0FBQUEscUJBQXFCLENBQUMsR0FBR0QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9wYWdlcy9fZG9jdW1lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTkVYVF9CVUlMVElOX0RPQ1VNRU5UIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9jb25zdGFudHMnXG5pbXBvcnQgdHlwZSB7XG4gIERvY3VtZW50Q29udGV4dCxcbiAgRG9jdW1lbnRJbml0aWFsUHJvcHMsXG4gIERvY3VtZW50UHJvcHMsXG4gIERvY3VtZW50VHlwZSxcbiAgTkVYVF9EQVRBLFxufSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBTY3JpcHRQcm9wcyB9IGZyb20gJy4uL2NsaWVudC9zY3JpcHQnXG5pbXBvcnQgdHlwZSB7IE5leHRGb250TWFuaWZlc3QgfSBmcm9tICcuLi9idWlsZC93ZWJwYWNrL3BsdWdpbnMvbmV4dC1mb250LW1hbmlmZXN0LXBsdWdpbidcblxuaW1wb3J0IHsgZ2V0UGFnZUZpbGVzIH0gZnJvbSAnLi4vc2VydmVyL2dldC1wYWdlLWZpbGVzJ1xuaW1wb3J0IHR5cGUgeyBCdWlsZE1hbmlmZXN0IH0gZnJvbSAnLi4vc2VydmVyL2dldC1wYWdlLWZpbGVzJ1xuaW1wb3J0IHsgaHRtbEVzY2FwZUpzb25TdHJpbmcgfSBmcm9tICcuLi9zZXJ2ZXIvaHRtbGVzY2FwZSdcbmltcG9ydCBpc0Vycm9yIGZyb20gJy4uL2xpYi9pcy1lcnJvcidcblxuaW1wb3J0IHtcbiAgSHRtbENvbnRleHQsXG4gIHVzZUh0bWxDb250ZXh0LFxufSBmcm9tICcuLi9zaGFyZWQvbGliL2h0bWwtY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB0eXBlIHsgSHRtbFByb3BzIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9odG1sLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBlbmNvZGVVUklQYXRoIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9lbmNvZGUtdXJpLXBhdGgnXG5pbXBvcnQgdHlwZSB7IERlZXBSZWFkb25seSB9IGZyb20gJy4uL3NoYXJlZC9saWIvZGVlcC1yZWFkb25seSdcbmltcG9ydCB7IGdldFRyYWNlciB9IGZyb20gJy4uL3NlcnZlci9saWIvdHJhY2UvdHJhY2VyJ1xuaW1wb3J0IHsgZ2V0VHJhY2VkTWV0YWRhdGEgfSBmcm9tICcuLi9zZXJ2ZXIvbGliL3RyYWNlL3V0aWxzJ1xuXG5leHBvcnQgdHlwZSB7IERvY3VtZW50Q29udGV4dCwgRG9jdW1lbnRJbml0aWFsUHJvcHMsIERvY3VtZW50UHJvcHMgfVxuXG5leHBvcnQgdHlwZSBPcmlnaW5Qcm9wcyA9IHtcbiAgbm9uY2U/OiBzdHJpbmdcbiAgY3Jvc3NPcmlnaW4/OiAnYW5vbnltb3VzJyB8ICd1c2UtY3JlZGVudGlhbHMnIHwgJycgfCB1bmRlZmluZWRcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbn1cblxudHlwZSBEb2N1bWVudEZpbGVzID0ge1xuICBzaGFyZWRGaWxlczogcmVhZG9ubHkgc3RyaW5nW11cbiAgcGFnZUZpbGVzOiByZWFkb25seSBzdHJpbmdbXVxuICBhbGxGaWxlczogcmVhZG9ubHkgc3RyaW5nW11cbn1cblxudHlwZSBIZWFkSFRNTFByb3BzID0gUmVhY3QuRGV0YWlsZWRIVE1MUHJvcHM8XG4gIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxIZWFkRWxlbWVudD4sXG4gIEhUTUxIZWFkRWxlbWVudFxuPlxuXG50eXBlIEhlYWRQcm9wcyA9IE9yaWdpblByb3BzICYgSGVhZEhUTUxQcm9wc1xuXG4vKiogU2V0IG9mIHBhZ2VzIHRoYXQgaGF2ZSB0cmlnZ2VyZWQgYSBsYXJnZSBkYXRhIHdhcm5pbmcgb24gcHJvZHVjdGlvbiBtb2RlLiAqL1xuY29uc3QgbGFyZ2VQYWdlRGF0YVdhcm5pbmdzID0gbmV3IFNldDxzdHJpbmc+KClcblxuZnVuY3Rpb24gZ2V0RG9jdW1lbnRGaWxlcyhcbiAgYnVpbGRNYW5pZmVzdDogQnVpbGRNYW5pZmVzdCxcbiAgcGF0aG5hbWU6IHN0cmluZyxcbiAgaW5BbXBNb2RlOiBib29sZWFuXG4pOiBEb2N1bWVudEZpbGVzIHtcbiAgY29uc3Qgc2hhcmVkRmlsZXM6IHJlYWRvbmx5IHN0cmluZ1tdID0gZ2V0UGFnZUZpbGVzKGJ1aWxkTWFuaWZlc3QsICcvX2FwcCcpXG4gIGNvbnN0IHBhZ2VGaWxlczogcmVhZG9ubHkgc3RyaW5nW10gPVxuICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZVxuICAgICAgPyBbXVxuICAgICAgOiBnZXRQYWdlRmlsZXMoYnVpbGRNYW5pZmVzdCwgcGF0aG5hbWUpXG5cbiAgcmV0dXJuIHtcbiAgICBzaGFyZWRGaWxlcyxcbiAgICBwYWdlRmlsZXMsXG4gICAgYWxsRmlsZXM6IFsuLi5uZXcgU2V0KFsuLi5zaGFyZWRGaWxlcywgLi4ucGFnZUZpbGVzXSldLFxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFBvbHlmaWxsU2NyaXB0cyhjb250ZXh0OiBIdG1sUHJvcHMsIHByb3BzOiBPcmlnaW5Qcm9wcykge1xuICAvLyBwb2x5ZmlsbHMuanMgaGFzIHRvIGJlIHJlbmRlcmVkIGFzIG5vbW9kdWxlIHdpdGhvdXQgYXN5bmNcbiAgLy8gSXQgYWxzbyBoYXMgdG8gYmUgdGhlIGZpcnN0IHNjcmlwdCB0byBsb2FkXG4gIGNvbnN0IHtcbiAgICBhc3NldFByZWZpeCxcbiAgICBidWlsZE1hbmlmZXN0LFxuICAgIGFzc2V0UXVlcnlTdHJpbmcsXG4gICAgZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgY3Jvc3NPcmlnaW4sXG4gIH0gPSBjb250ZXh0XG5cbiAgcmV0dXJuIGJ1aWxkTWFuaWZlc3QucG9seWZpbGxGaWxlc1xuICAgIC5maWx0ZXIoXG4gICAgICAocG9seWZpbGwpID0+IHBvbHlmaWxsLmVuZHNXaXRoKCcuanMnKSAmJiAhcG9seWZpbGwuZW5kc1dpdGgoJy5tb2R1bGUuanMnKVxuICAgIClcbiAgICAubWFwKChwb2x5ZmlsbCkgPT4gKFxuICAgICAgPHNjcmlwdFxuICAgICAgICBrZXk9e3BvbHlmaWxsfVxuICAgICAgICBkZWZlcj17IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgIGNyb3NzT3JpZ2luPXtwcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgbm9Nb2R1bGU9e3RydWV9XG4gICAgICAgIHNyYz17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICBwb2x5ZmlsbFxuICAgICAgICApfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgLz5cbiAgICApKVxufVxuXG5mdW5jdGlvbiBoYXNDb21wb25lbnRQcm9wcyhjaGlsZDogYW55KTogY2hpbGQgaXMgUmVhY3QuUmVhY3RFbGVtZW50PGFueT4ge1xuICByZXR1cm4gISFjaGlsZCAmJiAhIWNoaWxkLnByb3BzXG59XG5cbmZ1bmN0aW9uIEFtcFN0eWxlcyh7XG4gIHN0eWxlcyxcbn06IHtcbiAgc3R5bGVzPzogUmVhY3QuUmVhY3RFbGVtZW50W10gfCBJdGVyYWJsZTxSZWFjdC5SZWFjdE5vZGU+XG59KSB7XG4gIGlmICghc3R5bGVzKSByZXR1cm4gbnVsbFxuXG4gIC8vIHRyeSB0byBwYXJzZSBzdHlsZXMgZnJvbSBmcmFnbWVudCBmb3IgYmFja3dhcmRzIGNvbXBhdFxuICBjb25zdCBjdXJTdHlsZXM6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+W10gPSBBcnJheS5pc0FycmF5KHN0eWxlcylcbiAgICA/IChzdHlsZXMgYXMgUmVhY3QuUmVhY3RFbGVtZW50W10pXG4gICAgOiBbXVxuICBpZiAoXG4gICAgLy8gQHRzLWlnbm9yZSBQcm9wZXJ0eSAncHJvcHMnIGRvZXMgbm90IGV4aXN0IG9uIHR5cGUgUmVhY3RFbGVtZW50XG4gICAgc3R5bGVzLnByb3BzICYmXG4gICAgLy8gQHRzLWlnbm9yZSBQcm9wZXJ0eSAncHJvcHMnIGRvZXMgbm90IGV4aXN0IG9uIHR5cGUgUmVhY3RFbGVtZW50XG4gICAgQXJyYXkuaXNBcnJheShzdHlsZXMucHJvcHMuY2hpbGRyZW4pXG4gICkge1xuICAgIGNvbnN0IGhhc1N0eWxlcyA9IChlbDogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4pID0+XG4gICAgICBlbD8ucHJvcHM/LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPy5fX2h0bWxcbiAgICAvLyBAdHMtaWdub3JlIFByb3BlcnR5ICdwcm9wcycgZG9lcyBub3QgZXhpc3Qgb24gdHlwZSBSZWFjdEVsZW1lbnRcbiAgICBzdHlsZXMucHJvcHMuY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGQ6IFJlYWN0LlJlYWN0RWxlbWVudCkgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGQpKSB7XG4gICAgICAgIGNoaWxkLmZvckVhY2goKGVsKSA9PiBoYXNTdHlsZXMoZWwpICYmIGN1clN0eWxlcy5wdXNoKGVsKSlcbiAgICAgIH0gZWxzZSBpZiAoaGFzU3R5bGVzKGNoaWxkKSkge1xuICAgICAgICBjdXJTdHlsZXMucHVzaChjaGlsZClcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyogQWRkIGN1c3RvbSBzdHlsZXMgYmVmb3JlIEFNUCBzdHlsZXMgdG8gcHJldmVudCBhY2NpZGVudGFsIG92ZXJyaWRlcyAqL1xuICByZXR1cm4gKFxuICAgIDxzdHlsZVxuICAgICAgYW1wLWN1c3RvbT1cIlwiXG4gICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICBfX2h0bWw6IGN1clN0eWxlc1xuICAgICAgICAgIC5tYXAoKHN0eWxlKSA9PiBzdHlsZS5wcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWwpXG4gICAgICAgICAgLmpvaW4oJycpXG4gICAgICAgICAgLnJlcGxhY2UoL1xcL1xcKiMgc291cmNlTWFwcGluZ1VSTD0uKlxcKlxcLy9nLCAnJylcbiAgICAgICAgICAucmVwbGFjZSgvXFwvXFwqQCBzb3VyY2VVUkw9Lio/XFwqXFwvL2csICcnKSxcbiAgICAgIH19XG4gICAgLz5cbiAgKVxufVxuXG5mdW5jdGlvbiBnZXREeW5hbWljQ2h1bmtzKFxuICBjb250ZXh0OiBIdG1sUHJvcHMsXG4gIHByb3BzOiBPcmlnaW5Qcm9wcyxcbiAgZmlsZXM6IERvY3VtZW50RmlsZXNcbikge1xuICBjb25zdCB7XG4gICAgZHluYW1pY0ltcG9ydHMsXG4gICAgYXNzZXRQcmVmaXgsXG4gICAgaXNEZXZlbG9wbWVudCxcbiAgICBhc3NldFF1ZXJ5U3RyaW5nLFxuICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgIGNyb3NzT3JpZ2luLFxuICB9ID0gY29udGV4dFxuXG4gIHJldHVybiBkeW5hbWljSW1wb3J0cy5tYXAoKGZpbGUpID0+IHtcbiAgICBpZiAoIWZpbGUuZW5kc1dpdGgoJy5qcycpIHx8IGZpbGVzLmFsbEZpbGVzLmluY2x1ZGVzKGZpbGUpKSByZXR1cm4gbnVsbFxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxzY3JpcHRcbiAgICAgICAgYXN5bmM9eyFpc0RldmVsb3BtZW50ICYmIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICBkZWZlcj17IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgIHNyYz17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChmaWxlKX0ke2Fzc2V0UXVlcnlTdHJpbmd9YH1cbiAgICAgICAgbm9uY2U9e3Byb3BzLm5vbmNlfVxuICAgICAgICBjcm9zc09yaWdpbj17cHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAvPlxuICAgIClcbiAgfSlcbn1cblxuZnVuY3Rpb24gZ2V0U2NyaXB0cyhcbiAgY29udGV4dDogSHRtbFByb3BzLFxuICBwcm9wczogT3JpZ2luUHJvcHMsXG4gIGZpbGVzOiBEb2N1bWVudEZpbGVzXG4pIHtcbiAgY29uc3Qge1xuICAgIGFzc2V0UHJlZml4LFxuICAgIGJ1aWxkTWFuaWZlc3QsXG4gICAgaXNEZXZlbG9wbWVudCxcbiAgICBhc3NldFF1ZXJ5U3RyaW5nLFxuICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgIGNyb3NzT3JpZ2luLFxuICB9ID0gY29udGV4dFxuXG4gIGNvbnN0IG5vcm1hbFNjcmlwdHMgPSBmaWxlcy5hbGxGaWxlcy5maWx0ZXIoKGZpbGUpID0+IGZpbGUuZW5kc1dpdGgoJy5qcycpKVxuICBjb25zdCBsb3dQcmlvcml0eVNjcmlwdHMgPSBidWlsZE1hbmlmZXN0Lmxvd1ByaW9yaXR5RmlsZXM/LmZpbHRlcigoZmlsZSkgPT5cbiAgICBmaWxlLmVuZHNXaXRoKCcuanMnKVxuICApXG5cbiAgcmV0dXJuIFsuLi5ub3JtYWxTY3JpcHRzLCAuLi5sb3dQcmlvcml0eVNjcmlwdHNdLm1hcCgoZmlsZSkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8c2NyaXB0XG4gICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgc3JjPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKGZpbGUpfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgIGFzeW5jPXshaXNEZXZlbG9wbWVudCAmJiBkaXNhYmxlT3B0aW1pemVkTG9hZGluZ31cbiAgICAgICAgZGVmZXI9eyFkaXNhYmxlT3B0aW1pemVkTG9hZGluZ31cbiAgICAgICAgY3Jvc3NPcmlnaW49e3Byb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgLz5cbiAgICApXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGdldFByZU5leHRXb3JrZXJTY3JpcHRzKGNvbnRleHQ6IEh0bWxQcm9wcywgcHJvcHM6IE9yaWdpblByb3BzKSB7XG4gIGNvbnN0IHsgYXNzZXRQcmVmaXgsIHNjcmlwdExvYWRlciwgY3Jvc3NPcmlnaW4sIG5leHRTY3JpcHRXb3JrZXJzIH0gPSBjb250ZXh0XG5cbiAgLy8gZGlzYWJsZSBgbmV4dFNjcmlwdFdvcmtlcnNgIGluIGVkZ2UgcnVudGltZVxuICBpZiAoIW5leHRTY3JpcHRXb3JrZXJzIHx8IHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSByZXR1cm4gbnVsbFxuXG4gIHRyeSB7XG4gICAgbGV0IHtcbiAgICAgIHBhcnR5dG93blNuaXBwZXQsXG4gICAgICAvLyBAdHMtaWdub3JlOiBQcmV2ZW50IHdlYnBhY2sgZnJvbSBwcm9jZXNzaW5nIHRoaXMgcmVxdWlyZVxuICAgIH0gPSBfX25vbl93ZWJwYWNrX3JlcXVpcmVfXygnQGJ1aWxkZXIuaW8vcGFydHl0b3duL2ludGVncmF0aW9uJyEpXG5cbiAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmlzQXJyYXkocHJvcHMuY2hpbGRyZW4pXG4gICAgICA/IHByb3BzLmNoaWxkcmVuXG4gICAgICA6IFtwcm9wcy5jaGlsZHJlbl1cblxuICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgdXNlciBoYXMgZGVmaW5lZCB0aGVpciBvd24gUGFydHl0b3duIGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCB1c2VyRGVmaW5lZENvbmZpZyA9IGNoaWxkcmVuLmZpbmQoXG4gICAgICAoY2hpbGQpID0+XG4gICAgICAgIGhhc0NvbXBvbmVudFByb3BzKGNoaWxkKSAmJlxuICAgICAgICBjaGlsZD8ucHJvcHM/LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPy5fX2h0bWwubGVuZ3RoICYmXG4gICAgICAgICdkYXRhLXBhcnR5dG93bi1jb25maWcnIGluIGNoaWxkLnByb3BzXG4gICAgKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHshdXNlckRlZmluZWRDb25maWcgJiYgKFxuICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgIGRhdGEtcGFydHl0b3duLWNvbmZpZz1cIlwiXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICBfX2h0bWw6IGBcbiAgICAgICAgICAgIHBhcnR5dG93biA9IHtcbiAgICAgICAgICAgICAgbGliOiBcIiR7YXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy9+cGFydHl0b3duL1wiXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIGAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxzY3JpcHRcbiAgICAgICAgICBkYXRhLXBhcnR5dG93bj1cIlwiXG4gICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgIF9faHRtbDogcGFydHl0b3duU25pcHBldCgpLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICAgIHsoc2NyaXB0TG9hZGVyLndvcmtlciB8fCBbXSkubWFwKChmaWxlOiBTY3JpcHRQcm9wcywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHN0cmF0ZWd5LFxuICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgY2hpbGRyZW46IHNjcmlwdENoaWxkcmVuLFxuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwsXG4gICAgICAgICAgICAuLi5zY3JpcHRQcm9wc1xuICAgICAgICAgIH0gPSBmaWxlXG5cbiAgICAgICAgICBsZXQgc3JjUHJvcHM6IHtcbiAgICAgICAgICAgIHNyYz86IHN0cmluZ1xuICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw/OiBTY3JpcHRQcm9wc1snZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwnXVxuICAgICAgICAgIH0gPSB7fVxuXG4gICAgICAgICAgaWYgKHNyYykge1xuICAgICAgICAgICAgLy8gVXNlIGV4dGVybmFsIHNyYyBpZiBwcm92aWRlZFxuICAgICAgICAgICAgc3JjUHJvcHMuc3JjID0gc3JjXG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICYmXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTC5fX2h0bWxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEVtYmVkIGlubGluZSBzY3JpcHQgaWYgcHJvdmlkZWQgd2l0aCBkYW5nZXJvdXNseVNldElubmVySFRNTFxuICAgICAgICAgICAgc3JjUHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPSB7XG4gICAgICAgICAgICAgIF9faHRtbDogZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoc2NyaXB0Q2hpbGRyZW4pIHtcbiAgICAgICAgICAgIC8vIEVtYmVkIGlubGluZSBzY3JpcHQgaWYgcHJvdmlkZWQgd2l0aCBjaGlsZHJlblxuICAgICAgICAgICAgc3JjUHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgPSB7XG4gICAgICAgICAgICAgIF9faHRtbDpcbiAgICAgICAgICAgICAgICB0eXBlb2Ygc2NyaXB0Q2hpbGRyZW4gPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgICAgICA/IHNjcmlwdENoaWxkcmVuXG4gICAgICAgICAgICAgICAgICA6IEFycmF5LmlzQXJyYXkoc2NyaXB0Q2hpbGRyZW4pXG4gICAgICAgICAgICAgICAgICAgID8gc2NyaXB0Q2hpbGRyZW4uam9pbignJylcbiAgICAgICAgICAgICAgICAgICAgOiAnJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAnSW52YWxpZCB1c2FnZSBvZiBuZXh0L3NjcmlwdC4gRGlkIHlvdSBmb3JnZXQgdG8gaW5jbHVkZSBhIHNyYyBhdHRyaWJ1dGUgb3IgYW4gaW5saW5lIHNjcmlwdD8gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW52YWxpZC1zY3JpcHQnXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgICAgey4uLnNyY1Byb3BzfVxuICAgICAgICAgICAgICB7Li4uc2NyaXB0UHJvcHN9XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0L3BhcnR5dG93blwiXG4gICAgICAgICAgICAgIGtleT17c3JjIHx8IGluZGV4fVxuICAgICAgICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgICAgICAgIGRhdGEtbnNjcmlwdD1cIndvcmtlclwiXG4gICAgICAgICAgICAgIGNyb3NzT3JpZ2luPXtwcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKVxuICAgICAgICB9KX1cbiAgICAgIDwvPlxuICAgIClcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKGlzRXJyb3IoZXJyKSAmJiBlcnIuY29kZSAhPT0gJ01PRFVMRV9OT1RfRk9VTkQnKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFdhcm5pbmc6ICR7ZXJyLm1lc3NhZ2V9YClcbiAgICB9XG4gICAgcmV0dXJuIG51bGxcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRQcmVOZXh0U2NyaXB0cyhjb250ZXh0OiBIdG1sUHJvcHMsIHByb3BzOiBPcmlnaW5Qcm9wcykge1xuICBjb25zdCB7IHNjcmlwdExvYWRlciwgZGlzYWJsZU9wdGltaXplZExvYWRpbmcsIGNyb3NzT3JpZ2luIH0gPSBjb250ZXh0XG5cbiAgY29uc3Qgd2ViV29ya2VyU2NyaXB0cyA9IGdldFByZU5leHRXb3JrZXJTY3JpcHRzKGNvbnRleHQsIHByb3BzKVxuXG4gIGNvbnN0IGJlZm9yZUludGVyYWN0aXZlU2NyaXB0cyA9IChzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW10pXG4gICAgLmZpbHRlcigoc2NyaXB0KSA9PiBzY3JpcHQuc3JjKVxuICAgIC5tYXAoKGZpbGU6IFNjcmlwdFByb3BzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmF0ZWd5LCAuLi5zY3JpcHRQcm9wcyB9ID0gZmlsZVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPHNjcmlwdFxuICAgICAgICAgIHsuLi5zY3JpcHRQcm9wc31cbiAgICAgICAgICBrZXk9e3NjcmlwdFByb3BzLnNyYyB8fCBpbmRleH1cbiAgICAgICAgICBkZWZlcj17c2NyaXB0UHJvcHMuZGVmZXIgPz8gIWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nfVxuICAgICAgICAgIG5vbmNlPXtwcm9wcy5ub25jZX1cbiAgICAgICAgICBkYXRhLW5zY3JpcHQ9XCJiZWZvcmVJbnRlcmFjdGl2ZVwiXG4gICAgICAgICAgY3Jvc3NPcmlnaW49e3Byb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAvPlxuICAgICAgKVxuICAgIH0pXG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge3dlYldvcmtlclNjcmlwdHN9XG4gICAgICB7YmVmb3JlSW50ZXJhY3RpdmVTY3JpcHRzfVxuICAgIDwvPlxuICApXG59XG5cbmZ1bmN0aW9uIGdldEhlYWRIVE1MUHJvcHMocHJvcHM6IEhlYWRQcm9wcykge1xuICBjb25zdCB7IGNyb3NzT3JpZ2luLCBub25jZSwgLi4ucmVzdFByb3BzIH0gPSBwcm9wc1xuXG4gIC8vIFRoaXMgYXNzaWdubWVudCBpcyBuZWNlc3NhcnkgZm9yIGFkZGl0aW9uYWwgdHlwZSBjaGVja2luZyB0byBhdm9pZCB1bnN1cHBvcnRlZCBhdHRyaWJ1dGVzIGluIDxoZWFkPlxuICBjb25zdCBoZWFkUHJvcHM6IEhlYWRIVE1MUHJvcHMgJiB7XG4gICAgW1AgaW4gRXhjbHVkZTxrZXlvZiBIZWFkUHJvcHMsIGtleW9mIEhlYWRIVE1MUHJvcHM+XT86IG5ldmVyXG4gIH0gPSByZXN0UHJvcHNcblxuICByZXR1cm4gaGVhZFByb3BzXG59XG5cbmZ1bmN0aW9uIGdldEFtcFBhdGgoYW1wUGF0aDogc3RyaW5nLCBhc1BhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBhbXBQYXRoIHx8IGAke2FzUGF0aH0ke2FzUGF0aC5pbmNsdWRlcygnPycpID8gJyYnIDogJz8nfWFtcD0xYFxufVxuXG5mdW5jdGlvbiBnZXROZXh0Rm9udExpbmtUYWdzKFxuICBuZXh0Rm9udE1hbmlmZXN0OiBEZWVwUmVhZG9ubHk8TmV4dEZvbnRNYW5pZmVzdD4gfCB1bmRlZmluZWQsXG4gIGRhbmdlcm91c0FzUGF0aDogc3RyaW5nLFxuICBhc3NldFByZWZpeDogc3RyaW5nID0gJydcbikge1xuICBpZiAoIW5leHRGb250TWFuaWZlc3QpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHJlY29ubmVjdDogbnVsbCxcbiAgICAgIHByZWxvYWQ6IG51bGwsXG4gICAgfVxuICB9XG5cbiAgY29uc3QgYXBwRm9udHNFbnRyeSA9IG5leHRGb250TWFuaWZlc3QucGFnZXNbJy9fYXBwJ11cbiAgY29uc3QgcGFnZUZvbnRzRW50cnkgPSBuZXh0Rm9udE1hbmlmZXN0LnBhZ2VzW2Rhbmdlcm91c0FzUGF0aF1cblxuICBjb25zdCBwcmVsb2FkZWRGb250RmlsZXMgPSBBcnJheS5mcm9tKFxuICAgIG5ldyBTZXQoWy4uLihhcHBGb250c0VudHJ5ID8/IFtdKSwgLi4uKHBhZ2VGb250c0VudHJ5ID8/IFtdKV0pXG4gIClcblxuICAvLyBJZiBubyBmb250IGZpbGVzIHNob3VsZCBwcmVsb2FkIGJ1dCB0aGVyZSdzIGFuIGVudHJ5IGZvciB0aGUgcGF0aCwgYWRkIGEgcHJlY29ubmVjdCB0YWcuXG4gIGNvbnN0IHByZWNvbm5lY3RUb1NlbGYgPSAhIShcbiAgICBwcmVsb2FkZWRGb250RmlsZXMubGVuZ3RoID09PSAwICYmXG4gICAgKGFwcEZvbnRzRW50cnkgfHwgcGFnZUZvbnRzRW50cnkpXG4gIClcblxuICByZXR1cm4ge1xuICAgIHByZWNvbm5lY3Q6IHByZWNvbm5lY3RUb1NlbGYgPyAoXG4gICAgICA8bGlua1xuICAgICAgICBkYXRhLW5leHQtZm9udD17XG4gICAgICAgICAgbmV4dEZvbnRNYW5pZmVzdC5wYWdlc1VzaW5nU2l6ZUFkanVzdCA/ICdzaXplLWFkanVzdCcgOiAnJ1xuICAgICAgICB9XG4gICAgICAgIHJlbD1cInByZWNvbm5lY3RcIlxuICAgICAgICBocmVmPVwiL1wiXG4gICAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgIC8+XG4gICAgKSA6IG51bGwsXG4gICAgcHJlbG9hZDogcHJlbG9hZGVkRm9udEZpbGVzXG4gICAgICA/IHByZWxvYWRlZEZvbnRGaWxlcy5tYXAoKGZvbnRGaWxlKSA9PiB7XG4gICAgICAgICAgY29uc3QgZXh0ID0gL1xcLih3b2ZmfHdvZmYyfGVvdHx0dGZ8b3RmKSQvLmV4ZWMoZm9udEZpbGUpIVsxXVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICBrZXk9e2ZvbnRGaWxlfVxuICAgICAgICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgICAgICAgaHJlZj17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChmb250RmlsZSl9YH1cbiAgICAgICAgICAgICAgYXM9XCJmb250XCJcbiAgICAgICAgICAgICAgdHlwZT17YGZvbnQvJHtleHR9YH1cbiAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgICAgICAgICBkYXRhLW5leHQtZm9udD17Zm9udEZpbGUuaW5jbHVkZXMoJy1zJykgPyAnc2l6ZS1hZGp1c3QnIDogJyd9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgIDogbnVsbCxcbiAgfVxufVxuXG4vLyBVc2UgYFJlYWN0LkNvbXBvbmVudGAgdG8gYXZvaWQgZXJyb3JzIGZyb20gdGhlIFJTQyBjaGVja3MgYmVjYXVzZVxuLy8gaXQgY2FuJ3QgYmUgaW1wb3J0ZWQgZGlyZWN0bHkgaW4gU2VydmVyIENvbXBvbmVudHM6XG4vL1xuLy8gICBpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdyZWFjdCdcbi8vXG4vLyBNb3JlIGluZm86IGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzQwNjg2XG5leHBvcnQgY2xhc3MgSGVhZCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxIZWFkUHJvcHM+IHtcbiAgc3RhdGljIGNvbnRleHRUeXBlID0gSHRtbENvbnRleHRcblxuICBjb250ZXh0ITogSHRtbFByb3BzXG5cbiAgZ2V0Q3NzTGlua3MoZmlsZXM6IERvY3VtZW50RmlsZXMpOiBKU1guRWxlbWVudFtdIHwgbnVsbCB7XG4gICAgY29uc3Qge1xuICAgICAgYXNzZXRQcmVmaXgsXG4gICAgICBhc3NldFF1ZXJ5U3RyaW5nLFxuICAgICAgZHluYW1pY0ltcG9ydHMsXG4gICAgICBkeW5hbWljQ3NzTWFuaWZlc3QsXG4gICAgICBjcm9zc09yaWdpbixcbiAgICAgIG9wdGltaXplQ3NzLFxuICAgIH0gPSB0aGlzLmNvbnRleHRcbiAgICBjb25zdCBjc3NGaWxlcyA9IGZpbGVzLmFsbEZpbGVzLmZpbHRlcigoZikgPT4gZi5lbmRzV2l0aCgnLmNzcycpKVxuICAgIGNvbnN0IHNoYXJlZEZpbGVzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoZmlsZXMuc2hhcmVkRmlsZXMpXG5cbiAgICAvLyBVbm1hbmFnZWQgZmlsZXMgYXJlIENTUyBmaWxlcyB0aGF0IHdpbGwgYmUgaGFuZGxlZCBkaXJlY3RseSBieSB0aGVcbiAgICAvLyB3ZWJwYWNrIHJ1bnRpbWUgKGBtaW5pLWNzcy1leHRyYWN0LXBsdWdpbmApLlxuICAgIGxldCB1bm1hbmFnZWRGaWxlczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KFtdKVxuICAgIGxldCBsb2NhbER5bmFtaWNDc3NGaWxlcyA9IEFycmF5LmZyb20oXG4gICAgICBuZXcgU2V0KGR5bmFtaWNJbXBvcnRzLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5lbmRzV2l0aCgnLmNzcycpKSlcbiAgICApXG4gICAgaWYgKGxvY2FsRHluYW1pY0Nzc0ZpbGVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBuZXcgU2V0KGNzc0ZpbGVzKVxuICAgICAgbG9jYWxEeW5hbWljQ3NzRmlsZXMgPSBsb2NhbER5bmFtaWNDc3NGaWxlcy5maWx0ZXIoXG4gICAgICAgIChmKSA9PiAhKGV4aXN0aW5nLmhhcyhmKSB8fCBzaGFyZWRGaWxlcy5oYXMoZikpXG4gICAgICApXG4gICAgICB1bm1hbmFnZWRGaWxlcyA9IG5ldyBTZXQobG9jYWxEeW5hbWljQ3NzRmlsZXMpXG4gICAgICBjc3NGaWxlcy5wdXNoKC4uLmxvY2FsRHluYW1pY0Nzc0ZpbGVzKVxuICAgIH1cblxuICAgIGxldCBjc3NMaW5rRWxlbWVudHM6IEpTWC5FbGVtZW50W10gPSBbXVxuICAgIGNzc0ZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgIGNvbnN0IGlzU2hhcmVkRmlsZSA9IHNoYXJlZEZpbGVzLmhhcyhmaWxlKVxuICAgICAgY29uc3QgaXNVbm1hbmFnZWRGaWxlID0gdW5tYW5hZ2VkRmlsZXMuaGFzKGZpbGUpXG4gICAgICBjb25zdCBpc0ZpbGVJbkR5bmFtaWNDc3NNYW5pZmVzdCA9IGR5bmFtaWNDc3NNYW5pZmVzdC5oYXMoZmlsZSlcblxuICAgICAgaWYgKCFvcHRpbWl6ZUNzcykge1xuICAgICAgICBjc3NMaW5rRWxlbWVudHMucHVzaChcbiAgICAgICAgICA8bGlua1xuICAgICAgICAgICAga2V5PXtgJHtmaWxlfS1wcmVsb2FkYH1cbiAgICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgICAgcmVsPVwicHJlbG9hZFwiXG4gICAgICAgICAgICBocmVmPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICApfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICAgICAgYXM9XCJzdHlsZVwiXG4gICAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICAvPlxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGNzc0xpbmtFbGVtZW50cy5wdXNoKFxuICAgICAgICA8bGlua1xuICAgICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICByZWw9XCJzdHlsZXNoZWV0XCJcbiAgICAgICAgICBocmVmPXtgJHthc3NldFByZWZpeH0vX25leHQvJHtlbmNvZGVVUklQYXRoKFxuICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgZGF0YS1uLWc9e2lzVW5tYW5hZ2VkRmlsZSA/IHVuZGVmaW5lZCA6IGlzU2hhcmVkRmlsZSA/ICcnIDogdW5kZWZpbmVkfVxuICAgICAgICAgIGRhdGEtbi1wPXtcbiAgICAgICAgICAgIGlzU2hhcmVkRmlsZSB8fCBpc1VubWFuYWdlZEZpbGUgfHwgaXNGaWxlSW5EeW5hbWljQ3NzTWFuaWZlc3RcbiAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgIH1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICB9KVxuXG4gICAgcmV0dXJuIGNzc0xpbmtFbGVtZW50cy5sZW5ndGggPT09IDAgPyBudWxsIDogY3NzTGlua0VsZW1lbnRzXG4gIH1cblxuICBnZXRQcmVsb2FkRHluYW1pY0NodW5rcygpIHtcbiAgICBjb25zdCB7IGR5bmFtaWNJbXBvcnRzLCBhc3NldFByZWZpeCwgYXNzZXRRdWVyeVN0cmluZywgY3Jvc3NPcmlnaW4gfSA9XG4gICAgICB0aGlzLmNvbnRleHRcblxuICAgIHJldHVybiAoXG4gICAgICBkeW5hbWljSW1wb3J0c1xuICAgICAgICAubWFwKChmaWxlKSA9PiB7XG4gICAgICAgICAgaWYgKCFmaWxlLmVuZHNXaXRoKCcuanMnKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPGxpbmtcbiAgICAgICAgICAgICAgcmVsPVwicHJlbG9hZFwiXG4gICAgICAgICAgICAgIGtleT17ZmlsZX1cbiAgICAgICAgICAgICAgaHJlZj17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICAgICl9JHthc3NldFF1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgICAgIGFzPVwic2NyaXB0XCJcbiAgICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgIC8vIEZpbHRlciBvdXQgbnVsbGVkIHNjcmlwdHNcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgIClcbiAgfVxuXG4gIGdldFByZWxvYWRNYWluTGlua3MoZmlsZXM6IERvY3VtZW50RmlsZXMpOiBKU1guRWxlbWVudFtdIHwgbnVsbCB7XG4gICAgY29uc3QgeyBhc3NldFByZWZpeCwgYXNzZXRRdWVyeVN0cmluZywgc2NyaXB0TG9hZGVyLCBjcm9zc09yaWdpbiB9ID1cbiAgICAgIHRoaXMuY29udGV4dFxuICAgIGNvbnN0IHByZWxvYWRGaWxlcyA9IGZpbGVzLmFsbEZpbGVzLmZpbHRlcigoZmlsZTogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gZmlsZS5lbmRzV2l0aCgnLmpzJylcbiAgICB9KVxuXG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLihzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgfHwgW10pLm1hcCgoZmlsZSkgPT4gKFxuICAgICAgICA8bGlua1xuICAgICAgICAgIGtleT17ZmlsZS5zcmN9XG4gICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgcmVsPVwicHJlbG9hZFwiXG4gICAgICAgICAgaHJlZj17ZmlsZS5zcmN9XG4gICAgICAgICAgYXM9XCJzY3JpcHRcIlxuICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAvPlxuICAgICAgKSksXG4gICAgICAuLi5wcmVsb2FkRmlsZXMubWFwKChmaWxlOiBzdHJpbmcpID0+IChcbiAgICAgICAgPGxpbmtcbiAgICAgICAgICBrZXk9e2ZpbGV9XG4gICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgcmVsPVwicHJlbG9hZFwiXG4gICAgICAgICAgaHJlZj17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICApfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICAgIGFzPVwic2NyaXB0XCJcbiAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgLz5cbiAgICAgICkpLFxuICAgIF1cbiAgfVxuXG4gIGdldEJlZm9yZUludGVyYWN0aXZlSW5saW5lU2NyaXB0cygpIHtcbiAgICBjb25zdCB7IHNjcmlwdExvYWRlciB9ID0gdGhpcy5jb250ZXh0XG4gICAgY29uc3QgeyBub25jZSwgY3Jvc3NPcmlnaW4gfSA9IHRoaXMucHJvcHNcblxuICAgIHJldHVybiAoc2NyaXB0TG9hZGVyLmJlZm9yZUludGVyYWN0aXZlIHx8IFtdKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgKHNjcmlwdCkgPT5cbiAgICAgICAgICAhc2NyaXB0LnNyYyAmJiAoc2NyaXB0LmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIHx8IHNjcmlwdC5jaGlsZHJlbilcbiAgICAgIClcbiAgICAgIC5tYXAoKGZpbGU6IFNjcmlwdFByb3BzLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBzdHJhdGVneSxcbiAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTCxcbiAgICAgICAgICBzcmMsXG4gICAgICAgICAgLi4uc2NyaXB0UHJvcHNcbiAgICAgICAgfSA9IGZpbGVcbiAgICAgICAgbGV0IGh0bWw6IE5vbk51bGxhYmxlPFxuICAgICAgICAgIFNjcmlwdFByb3BzWydkYW5nZXJvdXNseVNldElubmVySFRNTCddXG4gICAgICAgID5bJ19faHRtbCddID0gJydcblxuICAgICAgICBpZiAoZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiYgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sKSB7XG4gICAgICAgICAgaHRtbCA9IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MLl9faHRtbFxuICAgICAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XG4gICAgICAgICAgaHRtbCA9XG4gICAgICAgICAgICB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnXG4gICAgICAgICAgICAgID8gY2hpbGRyZW5cbiAgICAgICAgICAgICAgOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKVxuICAgICAgICAgICAgICAgID8gY2hpbGRyZW4uam9pbignJylcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgIHsuLi5zY3JpcHRQcm9wc31cbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogaHRtbCB9fVxuICAgICAgICAgICAga2V5PXtzY3JpcHRQcm9wcy5pZCB8fCBpbmRleH1cbiAgICAgICAgICAgIG5vbmNlPXtub25jZX1cbiAgICAgICAgICAgIGRhdGEtbnNjcmlwdD1cImJlZm9yZUludGVyYWN0aXZlXCJcbiAgICAgICAgICAgIGNyb3NzT3JpZ2luPXtcbiAgICAgICAgICAgICAgY3Jvc3NPcmlnaW4gfHxcbiAgICAgICAgICAgICAgKHByb2Nlc3MuZW52Ll9fTkVYVF9DUk9TU19PUklHSU4gYXMgdHlwZW9mIGNyb3NzT3JpZ2luKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH0pXG4gIH1cblxuICBnZXREeW5hbWljQ2h1bmtzKGZpbGVzOiBEb2N1bWVudEZpbGVzKSB7XG4gICAgcmV0dXJuIGdldER5bmFtaWNDaHVua3ModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcylcbiAgfVxuXG4gIGdldFByZU5leHRTY3JpcHRzKCkge1xuICAgIHJldHVybiBnZXRQcmVOZXh0U2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMpXG4gIH1cblxuICBnZXRTY3JpcHRzKGZpbGVzOiBEb2N1bWVudEZpbGVzKSB7XG4gICAgcmV0dXJuIGdldFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzLCBmaWxlcylcbiAgfVxuXG4gIGdldFBvbHlmaWxsU2NyaXB0cygpIHtcbiAgICByZXR1cm4gZ2V0UG9seWZpbGxTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcylcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBzdHlsZXMsXG4gICAgICBhbXBQYXRoLFxuICAgICAgaW5BbXBNb2RlLFxuICAgICAgaHlicmlkQW1wLFxuICAgICAgY2Fub25pY2FsQmFzZSxcbiAgICAgIF9fTkVYVF9EQVRBX18sXG4gICAgICBkYW5nZXJvdXNBc1BhdGgsXG4gICAgICBoZWFkVGFncyxcbiAgICAgIHVuc3RhYmxlX3J1bnRpbWVKUyxcbiAgICAgIHVuc3RhYmxlX0pzUHJlbG9hZCxcbiAgICAgIGRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nLFxuICAgICAgb3B0aW1pemVDc3MsXG4gICAgICBhc3NldFByZWZpeCxcbiAgICAgIG5leHRGb250TWFuaWZlc3QsXG4gICAgfSA9IHRoaXMuY29udGV4dFxuXG4gICAgY29uc3QgZGlzYWJsZVJ1bnRpbWVKUyA9IHVuc3RhYmxlX3J1bnRpbWVKUyA9PT0gZmFsc2VcbiAgICBjb25zdCBkaXNhYmxlSnNQcmVsb2FkID1cbiAgICAgIHVuc3RhYmxlX0pzUHJlbG9hZCA9PT0gZmFsc2UgfHwgIWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nXG5cbiAgICB0aGlzLmNvbnRleHQuZG9jQ29tcG9uZW50c1JlbmRlcmVkLkhlYWQgPSB0cnVlXG5cbiAgICBsZXQgeyBoZWFkIH0gPSB0aGlzLmNvbnRleHRcbiAgICBsZXQgY3NzUHJlbG9hZHM6IEFycmF5PEpTWC5FbGVtZW50PiA9IFtdXG4gICAgbGV0IG90aGVySGVhZEVsZW1lbnRzOiBBcnJheTxKU1guRWxlbWVudD4gPSBbXVxuICAgIGlmIChoZWFkKSB7XG4gICAgICBoZWFkLmZvckVhY2goKGNoaWxkKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjaGlsZCAmJlxuICAgICAgICAgIGNoaWxkLnR5cGUgPT09ICdsaW5rJyAmJlxuICAgICAgICAgIGNoaWxkLnByb3BzWydyZWwnXSA9PT0gJ3ByZWxvYWQnICYmXG4gICAgICAgICAgY2hpbGQucHJvcHNbJ2FzJ10gPT09ICdzdHlsZSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKHRoaXMuY29udGV4dC5zdHJpY3ROZXh0SGVhZCkge1xuICAgICAgICAgICAgY3NzUHJlbG9hZHMucHVzaChcbiAgICAgICAgICAgICAgUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7ICdkYXRhLW5leHQtaGVhZCc6ICcnIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNzc1ByZWxvYWRzLnB1c2goY2hpbGQpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udGV4dC5zdHJpY3ROZXh0SGVhZCkge1xuICAgICAgICAgICAgICBvdGhlckhlYWRFbGVtZW50cy5wdXNoKFxuICAgICAgICAgICAgICAgIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgeyAnZGF0YS1uZXh0LWhlYWQnOiAnJyB9KVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdGhlckhlYWRFbGVtZW50cy5wdXNoKGNoaWxkKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIGhlYWQgPSBjc3NQcmVsb2Fkcy5jb25jYXQob3RoZXJIZWFkRWxlbWVudHMpXG4gICAgfVxuICAgIGxldCBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlW10gPSBSZWFjdC5DaGlsZHJlbi50b0FycmF5KFxuICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlblxuICAgICkuZmlsdGVyKEJvb2xlYW4pXG4gICAgLy8gc2hvdyBhIHdhcm5pbmcgaWYgSGVhZCBjb250YWlucyA8dGl0bGU+IChvbmx5IGluIGRldmVsb3BtZW50KVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjaGlsZHJlbiA9IFJlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKGNoaWxkOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaXNSZWFjdEhlbG1ldCA9IGNoaWxkPy5wcm9wcz8uWydkYXRhLXJlYWN0LWhlbG1ldCddXG4gICAgICAgIGlmICghaXNSZWFjdEhlbG1ldCkge1xuICAgICAgICAgIGlmIChjaGlsZD8udHlwZSA9PT0gJ3RpdGxlJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBcIldhcm5pbmc6IDx0aXRsZT4gc2hvdWxkIG5vdCBiZSB1c2VkIGluIF9kb2N1bWVudC5qcydzIDxIZWFkPi4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tZG9jdW1lbnQtdGl0bGVcIlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBjaGlsZD8udHlwZSA9PT0gJ21ldGEnICYmXG4gICAgICAgICAgICBjaGlsZD8ucHJvcHM/Lm5hbWUgPT09ICd2aWV3cG9ydCdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgXCJXYXJuaW5nOiB2aWV3cG9ydCBtZXRhIHRhZ3Mgc2hvdWxkIG5vdCBiZSB1c2VkIGluIF9kb2N1bWVudC5qcydzIDxIZWFkPi4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tZG9jdW1lbnQtdmlld3BvcnQtbWV0YVwiXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGlsZFxuICAgICAgICAvLyBAdHlwZXMvcmVhY3QgYnVnLiBSZXR1cm5lZCB2YWx1ZSBmcm9tIC5tYXAgd2lsbCBub3QgYmUgYG51bGxgIGlmIHlvdSBwYXNzIGluIGBbbnVsbF1gXG4gICAgICB9KSFcbiAgICAgIGlmICh0aGlzLnByb3BzLmNyb3NzT3JpZ2luKVxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1dhcm5pbmc6IGBIZWFkYCBhdHRyaWJ1dGUgYGNyb3NzT3JpZ2luYCBpcyBkZXByZWNhdGVkLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9kb2MtY3Jvc3NvcmlnaW4tZGVwcmVjYXRlZCdcbiAgICAgICAgKVxuICAgIH1cblxuICAgIGxldCBoYXNBbXBodG1sUmVsID0gZmFsc2VcbiAgICBsZXQgaGFzQ2Fub25pY2FsUmVsID0gZmFsc2VcblxuICAgIC8vIHNob3cgd2FybmluZyBhbmQgcmVtb3ZlIGNvbmZsaWN0aW5nIGFtcCBoZWFkIHRhZ3NcbiAgICBoZWFkID0gUmVhY3QuQ2hpbGRyZW4ubWFwKGhlYWQgfHwgW10sIChjaGlsZCkgPT4ge1xuICAgICAgaWYgKCFjaGlsZCkgcmV0dXJuIGNoaWxkXG4gICAgICBjb25zdCB7IHR5cGUsIHByb3BzIH0gPSBjaGlsZFxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZSkge1xuICAgICAgICBsZXQgYmFkUHJvcDogc3RyaW5nID0gJydcblxuICAgICAgICBpZiAodHlwZSA9PT0gJ21ldGEnICYmIHByb3BzLm5hbWUgPT09ICd2aWV3cG9ydCcpIHtcbiAgICAgICAgICBiYWRQcm9wID0gJ25hbWU9XCJ2aWV3cG9ydFwiJ1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdsaW5rJyAmJiBwcm9wcy5yZWwgPT09ICdjYW5vbmljYWwnKSB7XG4gICAgICAgICAgaGFzQ2Fub25pY2FsUmVsID0gdHJ1ZVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzY3JpcHQnKSB7XG4gICAgICAgICAgLy8gb25seSBibG9jayBpZlxuICAgICAgICAgIC8vIDEuIGl0IGhhcyBhIHNyYyBhbmQgaXNuJ3QgcG9pbnRpbmcgdG8gYW1wcHJvamVjdCdzIENETlxuICAgICAgICAgIC8vIDIuIGl0IGlzIHVzaW5nIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIHdpdGhvdXQgYSB0eXBlIG9yXG4gICAgICAgICAgLy8gYSB0eXBlIG9mIHRleHQvamF2YXNjcmlwdFxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIChwcm9wcy5zcmMgJiYgcHJvcHMuc3JjLmluZGV4T2YoJ2FtcHByb2plY3QnKSA8IC0xKSB8fFxuICAgICAgICAgICAgKHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICYmXG4gICAgICAgICAgICAgICghcHJvcHMudHlwZSB8fCBwcm9wcy50eXBlID09PSAndGV4dC9qYXZhc2NyaXB0JykpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBiYWRQcm9wID0gJzxzY3JpcHQnXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhwcm9wcykuZm9yRWFjaCgocHJvcCkgPT4ge1xuICAgICAgICAgICAgICBiYWRQcm9wICs9IGAgJHtwcm9wfT1cIiR7cHJvcHNbcHJvcF19XCJgXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYmFkUHJvcCArPSAnLz4nXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGJhZFByb3ApIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgRm91bmQgY29uZmxpY3RpbmcgYW1wIHRhZyBcIiR7Y2hpbGQudHlwZX1cIiB3aXRoIGNvbmZsaWN0aW5nIHByb3AgJHtiYWRQcm9wfSBpbiAke19fTkVYVF9EQVRBX18ucGFnZX0uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NvbmZsaWN0aW5nLWFtcC10YWdgXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIG5vbi1hbXAgbW9kZVxuICAgICAgICBpZiAodHlwZSA9PT0gJ2xpbmsnICYmIHByb3BzLnJlbCA9PT0gJ2FtcGh0bWwnKSB7XG4gICAgICAgICAgaGFzQW1waHRtbFJlbCA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGNoaWxkXG4gICAgICAvLyBAdHlwZXMvcmVhY3QgYnVnLiBSZXR1cm5lZCB2YWx1ZSBmcm9tIC5tYXAgd2lsbCBub3QgYmUgYG51bGxgIGlmIHlvdSBwYXNzIGluIGBbbnVsbF1gXG4gICAgfSkhXG5cbiAgICBjb25zdCBmaWxlczogRG9jdW1lbnRGaWxlcyA9IGdldERvY3VtZW50RmlsZXMoXG4gICAgICB0aGlzLmNvbnRleHQuYnVpbGRNYW5pZmVzdCxcbiAgICAgIHRoaXMuY29udGV4dC5fX05FWFRfREFUQV9fLnBhZ2UsXG4gICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiBpbkFtcE1vZGVcbiAgICApXG5cbiAgICBjb25zdCBuZXh0Rm9udExpbmtUYWdzID0gZ2V0TmV4dEZvbnRMaW5rVGFncyhcbiAgICAgIG5leHRGb250TWFuaWZlc3QsXG4gICAgICBkYW5nZXJvdXNBc1BhdGgsXG4gICAgICBhc3NldFByZWZpeFxuICAgIClcblxuICAgIGNvbnN0IHRyYWNpbmdNZXRhZGF0YSA9IGdldFRyYWNlZE1ldGFkYXRhKFxuICAgICAgZ2V0VHJhY2VyKCkuZ2V0VHJhY2VQcm9wYWdhdGlvbkRhdGEoKSxcbiAgICAgIHRoaXMuY29udGV4dC5leHBlcmltZW50YWxDbGllbnRUcmFjZU1ldGFkYXRhXG4gICAgKVxuXG4gICAgY29uc3QgdHJhY2VNZXRhVGFncyA9ICh0cmFjaW5nTWV0YWRhdGEgfHwgW10pLm1hcChcbiAgICAgICh7IGtleSwgdmFsdWUgfSwgaW5kZXgpID0+IChcbiAgICAgICAgPG1ldGEga2V5PXtgbmV4dC10cmFjZS1kYXRhLSR7aW5kZXh9YH0gbmFtZT17a2V5fSBjb250ZW50PXt2YWx1ZX0gLz5cbiAgICAgIClcbiAgICApXG5cbiAgICByZXR1cm4gKFxuICAgICAgPGhlYWQgey4uLmdldEhlYWRIVE1MUHJvcHModGhpcy5wcm9wcyl9PlxuICAgICAgICB7dGhpcy5jb250ZXh0LmlzRGV2ZWxvcG1lbnQgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgICAgZGF0YS1uZXh0LWhpZGUtZm91Y1xuICAgICAgICAgICAgICBkYXRhLWFtcGRldm1vZGU9e1xuICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZVxuICAgICAgICAgICAgICAgICAgPyAndHJ1ZSdcbiAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgICBfX2h0bWw6IGBib2R5e2Rpc3BsYXk6bm9uZX1gLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxub3NjcmlwdFxuICAgICAgICAgICAgICBkYXRhLW5leHQtaGlkZS1mb3VjXG4gICAgICAgICAgICAgIGRhdGEtYW1wZGV2bW9kZT17XG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgaW5BbXBNb2RlXG4gICAgICAgICAgICAgICAgICA/ICd0cnVlJ1xuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAgICAgX19odG1sOiBgYm9keXtkaXNwbGF5OmJsb2NrfWAsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvbm9zY3JpcHQ+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICAgIHtoZWFkfVxuICAgICAgICB7dGhpcy5jb250ZXh0LnN0cmljdE5leHRIZWFkID8gbnVsbCA6IChcbiAgICAgICAgICA8bWV0YVxuICAgICAgICAgICAgbmFtZT1cIm5leHQtaGVhZC1jb3VudFwiXG4gICAgICAgICAgICBjb250ZW50PXtSZWFjdC5DaGlsZHJlbi5jb3VudChoZWFkIHx8IFtdKS50b1N0cmluZygpfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG5cbiAgICAgICAge2NoaWxkcmVufVxuXG4gICAgICAgIHtuZXh0Rm9udExpbmtUYWdzLnByZWNvbm5lY3R9XG4gICAgICAgIHtuZXh0Rm9udExpbmtUYWdzLnByZWxvYWR9XG5cbiAgICAgICAge3Byb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZSAmJiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxtZXRhXG4gICAgICAgICAgICAgIG5hbWU9XCJ2aWV3cG9ydFwiXG4gICAgICAgICAgICAgIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsbWluaW11bS1zY2FsZT0xLGluaXRpYWwtc2NhbGU9MVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgeyFoYXNDYW5vbmljYWxSZWwgJiYgKFxuICAgICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICAgIHJlbD1cImNhbm9uaWNhbFwiXG4gICAgICAgICAgICAgICAgaHJlZj17XG4gICAgICAgICAgICAgICAgICBjYW5vbmljYWxCYXNlICtcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmUoJy4uL3NlcnZlci91dGlscycpLmNsZWFuQW1wUGF0aChkYW5nZXJvdXNBc1BhdGgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHsvKiBodHRwczovL3d3dy5hbXBwcm9qZWN0Lm9yZy9kb2NzL2Z1bmRhbWVudGFscy9vcHRpbWl6ZV9hbXAjb3B0aW1pemUtdGhlLWFtcC1ydW50aW1lLWxvYWRpbmcgKi99XG4gICAgICAgICAgICA8bGlua1xuICAgICAgICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgICAgICAgYXM9XCJzY3JpcHRcIlxuICAgICAgICAgICAgICBocmVmPVwiaHR0cHM6Ly9jZG4uYW1wcHJvamVjdC5vcmcvdjAuanNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxBbXBTdHlsZXMgc3R5bGVzPXtzdHlsZXN9IC8+XG4gICAgICAgICAgICA8c3R5bGVcbiAgICAgICAgICAgICAgYW1wLWJvaWxlcnBsYXRlPVwiXCJcbiAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgICBfX2h0bWw6IGBib2R5ey13ZWJraXQtYW5pbWF0aW9uOi1hbXAtc3RhcnQgOHMgc3RlcHMoMSxlbmQpIDBzIDEgbm9ybWFsIGJvdGg7LW1vei1hbmltYXRpb246LWFtcC1zdGFydCA4cyBzdGVwcygxLGVuZCkgMHMgMSBub3JtYWwgYm90aDstbXMtYW5pbWF0aW9uOi1hbXAtc3RhcnQgOHMgc3RlcHMoMSxlbmQpIDBzIDEgbm9ybWFsIGJvdGg7YW5pbWF0aW9uOi1hbXAtc3RhcnQgOHMgc3RlcHMoMSxlbmQpIDBzIDEgbm9ybWFsIGJvdGh9QC13ZWJraXQta2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUAtbW96LWtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1ALW1zLWtleWZyYW1lcyAtYW1wLXN0YXJ0e2Zyb217dmlzaWJpbGl0eTpoaWRkZW59dG97dmlzaWJpbGl0eTp2aXNpYmxlfX1ALW8ta2V5ZnJhbWVzIC1hbXAtc3RhcnR7ZnJvbXt2aXNpYmlsaXR5OmhpZGRlbn10b3t2aXNpYmlsaXR5OnZpc2libGV9fUBrZXlmcmFtZXMgLWFtcC1zdGFydHtmcm9te3Zpc2liaWxpdHk6aGlkZGVufXRve3Zpc2liaWxpdHk6dmlzaWJsZX19YCxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bm9zY3JpcHQ+XG4gICAgICAgICAgICAgIDxzdHlsZVxuICAgICAgICAgICAgICAgIGFtcC1ib2lsZXJwbGF0ZT1cIlwiXG4gICAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7LXdlYmtpdC1hbmltYXRpb246bm9uZTstbW96LWFuaW1hdGlvbjpub25lOy1tcy1hbmltYXRpb246bm9uZTthbmltYXRpb246bm9uZX1gLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25vc2NyaXB0PlxuICAgICAgICAgICAgPHNjcmlwdCBhc3luYyBzcmM9XCJodHRwczovL2Nkbi5hbXBwcm9qZWN0Lm9yZy92MC5qc1wiIC8+XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICAgIHshKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZSkgJiYgKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICB7IWhhc0FtcGh0bWxSZWwgJiYgaHlicmlkQW1wICYmIChcbiAgICAgICAgICAgICAgPGxpbmtcbiAgICAgICAgICAgICAgICByZWw9XCJhbXBodG1sXCJcbiAgICAgICAgICAgICAgICBocmVmPXtjYW5vbmljYWxCYXNlICsgZ2V0QW1wUGF0aChhbXBQYXRoLCBkYW5nZXJvdXNBc1BhdGgpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIHt0aGlzLmdldEJlZm9yZUludGVyYWN0aXZlSW5saW5lU2NyaXB0cygpfVxuICAgICAgICAgICAgeyFvcHRpbWl6ZUNzcyAmJiB0aGlzLmdldENzc0xpbmtzKGZpbGVzKX1cbiAgICAgICAgICAgIHshb3B0aW1pemVDc3MgJiYgPG5vc2NyaXB0IGRhdGEtbi1jc3M9e3RoaXMucHJvcHMubm9uY2UgPz8gJyd9IC8+fVxuXG4gICAgICAgICAgICB7IWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVKc1ByZWxvYWQgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXRQcmVsb2FkRHluYW1pY0NodW5rcygpfVxuICAgICAgICAgICAgeyFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgICAgICFkaXNhYmxlSnNQcmVsb2FkICYmXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UHJlbG9hZE1haW5MaW5rcyhmaWxlcyl9XG5cbiAgICAgICAgICAgIHshZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAgICAgIWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICAgICAgdGhpcy5nZXRQb2x5ZmlsbFNjcmlwdHMoKX1cblxuICAgICAgICAgICAgeyFkaXNhYmxlT3B0aW1pemVkTG9hZGluZyAmJlxuICAgICAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgICAgICB0aGlzLmdldFByZU5leHRTY3JpcHRzKCl9XG4gICAgICAgICAgICB7IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmXG4gICAgICAgICAgICAgICFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgICAgIHRoaXMuZ2V0RHluYW1pY0NodW5rcyhmaWxlcyl9XG4gICAgICAgICAgICB7IWRpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmXG4gICAgICAgICAgICAgICFkaXNhYmxlUnVudGltZUpTICYmXG4gICAgICAgICAgICAgIHRoaXMuZ2V0U2NyaXB0cyhmaWxlcyl9XG5cbiAgICAgICAgICAgIHtvcHRpbWl6ZUNzcyAmJiB0aGlzLmdldENzc0xpbmtzKGZpbGVzKX1cbiAgICAgICAgICAgIHtvcHRpbWl6ZUNzcyAmJiA8bm9zY3JpcHQgZGF0YS1uLWNzcz17dGhpcy5wcm9wcy5ub25jZSA/PyAnJ30gLz59XG4gICAgICAgICAgICB7dGhpcy5jb250ZXh0LmlzRGV2ZWxvcG1lbnQgJiYgKFxuICAgICAgICAgICAgICAvLyB0aGlzIGVsZW1lbnQgaXMgdXNlZCB0byBtb3VudCBkZXZlbG9wbWVudCBzdHlsZXMgc28gdGhlXG4gICAgICAgICAgICAgIC8vIG9yZGVyaW5nIG1hdGNoZXMgcHJvZHVjdGlvblxuICAgICAgICAgICAgICAvLyAoYnkgZGVmYXVsdCwgc3R5bGUtbG9hZGVyIGluamVjdHMgYXQgdGhlIGJvdHRvbSBvZiA8aGVhZCAvPilcbiAgICAgICAgICAgICAgPG5vc2NyaXB0IGlkPVwiX19uZXh0X2Nzc19fRE9fTk9UX1VTRV9fXCIgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7dHJhY2VNZXRhVGFnc31cbiAgICAgICAgICAgIHtzdHlsZXMgfHwgbnVsbH1cbiAgICAgICAgICA8Lz5cbiAgICAgICAgKX1cbiAgICAgICAge1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3QuRnJhZ21lbnQsIHt9LCAuLi4oaGVhZFRhZ3MgfHwgW10pKX1cbiAgICAgIDwvaGVhZD5cbiAgICApXG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlRG9jdW1lbnRTY3JpcHRMb2FkZXJJdGVtcyhcbiAgc2NyaXB0TG9hZGVyOiB7IGJlZm9yZUludGVyYWN0aXZlPzogYW55W10gfSxcbiAgX19ORVhUX0RBVEFfXzogTkVYVF9EQVRBLFxuICBwcm9wczogYW55XG4pOiB2b2lkIHtcbiAgaWYgKCFwcm9wcy5jaGlsZHJlbikgcmV0dXJuXG5cbiAgY29uc3Qgc2NyaXB0TG9hZGVySXRlbXM6IFNjcmlwdFByb3BzW10gPSBbXVxuXG4gIGNvbnN0IGNoaWxkcmVuID0gQXJyYXkuaXNBcnJheShwcm9wcy5jaGlsZHJlbilcbiAgICA/IHByb3BzLmNoaWxkcmVuXG4gICAgOiBbcHJvcHMuY2hpbGRyZW5dXG5cbiAgY29uc3QgaGVhZENoaWxkcmVuID0gY2hpbGRyZW4uZmluZChcbiAgICAoY2hpbGQ6IFJlYWN0LlJlYWN0RWxlbWVudCkgPT4gY2hpbGQudHlwZSA9PT0gSGVhZFxuICApPy5wcm9wcz8uY2hpbGRyZW5cbiAgY29uc3QgYm9keUNoaWxkcmVuID0gY2hpbGRyZW4uZmluZChcbiAgICAoY2hpbGQ6IFJlYWN0LlJlYWN0RWxlbWVudCkgPT4gY2hpbGQudHlwZSA9PT0gJ2JvZHknXG4gICk/LnByb3BzPy5jaGlsZHJlblxuXG4gIC8vIFNjcmlwdHMgd2l0aCBiZWZvcmVJbnRlcmFjdGl2ZSBjYW4gYmUgcGxhY2VkIGluc2lkZSBIZWFkIG9yIDxib2R5PiBzbyBjaGlsZHJlbiBvZiBib3RoIG5lZWRzIHRvIGJlIHRyYXZlcnNlZFxuICBjb25zdCBjb21iaW5lZENoaWxkcmVuID0gW1xuICAgIC4uLihBcnJheS5pc0FycmF5KGhlYWRDaGlsZHJlbikgPyBoZWFkQ2hpbGRyZW4gOiBbaGVhZENoaWxkcmVuXSksXG4gICAgLi4uKEFycmF5LmlzQXJyYXkoYm9keUNoaWxkcmVuKSA/IGJvZHlDaGlsZHJlbiA6IFtib2R5Q2hpbGRyZW5dKSxcbiAgXVxuXG4gIFJlYWN0LkNoaWxkcmVuLmZvckVhY2goY29tYmluZWRDaGlsZHJlbiwgKGNoaWxkOiBhbnkpID0+IHtcbiAgICBpZiAoIWNoaWxkKSByZXR1cm5cblxuICAgIC8vIFdoZW4gdXNpbmcgdGhlIGBuZXh0L3NjcmlwdGAgY29tcG9uZW50LCByZWdpc3RlciBpdCBpbiBzY3JpcHQgbG9hZGVyLlxuICAgIGlmIChjaGlsZC50eXBlPy5fX25leHRTY3JpcHQpIHtcbiAgICAgIGlmIChjaGlsZC5wcm9wcy5zdHJhdGVneSA9PT0gJ2JlZm9yZUludGVyYWN0aXZlJykge1xuICAgICAgICBzY3JpcHRMb2FkZXIuYmVmb3JlSW50ZXJhY3RpdmUgPSAoXG4gICAgICAgICAgc2NyaXB0TG9hZGVyLmJlZm9yZUludGVyYWN0aXZlIHx8IFtdXG4gICAgICAgICkuY29uY2F0KFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICAuLi5jaGlsZC5wcm9wcyxcbiAgICAgICAgICB9LFxuICAgICAgICBdKVxuICAgICAgICByZXR1cm5cbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIFsnbGF6eU9ubG9hZCcsICdhZnRlckludGVyYWN0aXZlJywgJ3dvcmtlciddLmluY2x1ZGVzKFxuICAgICAgICAgIGNoaWxkLnByb3BzLnN0cmF0ZWd5XG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICBzY3JpcHRMb2FkZXJJdGVtcy5wdXNoKGNoaWxkLnByb3BzKVxuICAgICAgICByZXR1cm5cbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNoaWxkLnByb3BzLnN0cmF0ZWd5ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBzY3JpcHRMb2FkZXJJdGVtcy5wdXNoKHsgLi4uY2hpbGQucHJvcHMsIHN0cmF0ZWd5OiAnYWZ0ZXJJbnRlcmFjdGl2ZScgfSlcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIF9fTkVYVF9EQVRBX18uc2NyaXB0TG9hZGVyID0gc2NyaXB0TG9hZGVySXRlbXNcbn1cblxuZXhwb3J0IGNsYXNzIE5leHRTY3JpcHQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8T3JpZ2luUHJvcHM+IHtcbiAgc3RhdGljIGNvbnRleHRUeXBlID0gSHRtbENvbnRleHRcblxuICBjb250ZXh0ITogSHRtbFByb3BzXG5cbiAgZ2V0RHluYW1pY0NodW5rcyhmaWxlczogRG9jdW1lbnRGaWxlcykge1xuICAgIHJldHVybiBnZXREeW5hbWljQ2h1bmtzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcywgZmlsZXMpXG4gIH1cblxuICBnZXRQcmVOZXh0U2NyaXB0cygpIHtcbiAgICByZXR1cm4gZ2V0UHJlTmV4dFNjcmlwdHModGhpcy5jb250ZXh0LCB0aGlzLnByb3BzKVxuICB9XG5cbiAgZ2V0U2NyaXB0cyhmaWxlczogRG9jdW1lbnRGaWxlcykge1xuICAgIHJldHVybiBnZXRTY3JpcHRzKHRoaXMuY29udGV4dCwgdGhpcy5wcm9wcywgZmlsZXMpXG4gIH1cblxuICBnZXRQb2x5ZmlsbFNjcmlwdHMoKSB7XG4gICAgcmV0dXJuIGdldFBvbHlmaWxsU2NyaXB0cyh0aGlzLmNvbnRleHQsIHRoaXMucHJvcHMpXG4gIH1cblxuICBzdGF0aWMgZ2V0SW5saW5lU2NyaXB0U291cmNlKGNvbnRleHQ6IFJlYWRvbmx5PEh0bWxQcm9wcz4pOiBzdHJpbmcge1xuICAgIGNvbnN0IHsgX19ORVhUX0RBVEFfXywgbGFyZ2VQYWdlRGF0YUJ5dGVzIH0gPSBjb250ZXh0XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnN0cmluZ2lmeShfX05FWFRfREFUQV9fKVxuXG4gICAgICBpZiAobGFyZ2VQYWdlRGF0YVdhcm5pbmdzLmhhcyhfX05FWFRfREFUQV9fLnBhZ2UpKSB7XG4gICAgICAgIHJldHVybiBodG1sRXNjYXBlSnNvblN0cmluZyhkYXRhKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBieXRlcyA9XG4gICAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnXG4gICAgICAgICAgPyBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoZGF0YSkuYnVmZmVyLmJ5dGVMZW5ndGhcbiAgICAgICAgICA6IEJ1ZmZlci5mcm9tKGRhdGEpLmJ5dGVMZW5ndGhcbiAgICAgIGNvbnN0IHByZXR0eUJ5dGVzID0gcmVxdWlyZSgnLi4vbGliL3ByZXR0eS1ieXRlcycpLmRlZmF1bHRcblxuICAgICAgaWYgKGxhcmdlUGFnZURhdGFCeXRlcyAmJiBieXRlcyA+IGxhcmdlUGFnZURhdGFCeXRlcykge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICAgIGxhcmdlUGFnZURhdGFXYXJuaW5ncy5hZGQoX19ORVhUX0RBVEFfXy5wYWdlKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBXYXJuaW5nOiBkYXRhIGZvciBwYWdlIFwiJHtfX05FWFRfREFUQV9fLnBhZ2V9XCIke1xuICAgICAgICAgICAgX19ORVhUX0RBVEFfXy5wYWdlID09PSBjb250ZXh0LmRhbmdlcm91c0FzUGF0aFxuICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgIDogYCAocGF0aCBcIiR7Y29udGV4dC5kYW5nZXJvdXNBc1BhdGh9XCIpYFxuICAgICAgICAgIH0gaXMgJHtwcmV0dHlCeXRlcyhcbiAgICAgICAgICAgIGJ5dGVzXG4gICAgICAgICAgKX0gd2hpY2ggZXhjZWVkcyB0aGUgdGhyZXNob2xkIG9mICR7cHJldHR5Qnl0ZXMoXG4gICAgICAgICAgICBsYXJnZVBhZ2VEYXRhQnl0ZXNcbiAgICAgICAgICApfSwgdGhpcyBhbW91bnQgb2YgZGF0YSBjYW4gcmVkdWNlIHBlcmZvcm1hbmNlLlxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbGFyZ2UtcGFnZS1kYXRhYFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBodG1sRXNjYXBlSnNvblN0cmluZyhkYXRhKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGlzRXJyb3IoZXJyKSAmJiBlcnIubWVzc2FnZS5pbmRleE9mKCdjaXJjdWxhciBzdHJ1Y3R1cmUnKSAhPT0gLTEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDaXJjdWxhciBzdHJ1Y3R1cmUgaW4gXCJnZXRJbml0aWFsUHJvcHNcIiByZXN1bHQgb2YgcGFnZSBcIiR7X19ORVhUX0RBVEFfXy5wYWdlfVwiLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9jaXJjdWxhci1zdHJ1Y3R1cmVgXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBhc3NldFByZWZpeCxcbiAgICAgIGluQW1wTW9kZSxcbiAgICAgIGJ1aWxkTWFuaWZlc3QsXG4gICAgICB1bnN0YWJsZV9ydW50aW1lSlMsXG4gICAgICBkb2NDb21wb25lbnRzUmVuZGVyZWQsXG4gICAgICBhc3NldFF1ZXJ5U3RyaW5nLFxuICAgICAgZGlzYWJsZU9wdGltaXplZExvYWRpbmcsXG4gICAgICBjcm9zc09yaWdpbixcbiAgICB9ID0gdGhpcy5jb250ZXh0XG4gICAgY29uc3QgZGlzYWJsZVJ1bnRpbWVKUyA9IHVuc3RhYmxlX3J1bnRpbWVKUyA9PT0gZmFsc2VcblxuICAgIGRvY0NvbXBvbmVudHNSZW5kZXJlZC5OZXh0U2NyaXB0ID0gdHJ1ZVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZSkge1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFtcERldkZpbGVzID0gW1xuICAgICAgICAuLi5idWlsZE1hbmlmZXN0LmRldkZpbGVzLFxuICAgICAgICAuLi5idWlsZE1hbmlmZXN0LnBvbHlmaWxsRmlsZXMsXG4gICAgICAgIC4uLmJ1aWxkTWFuaWZlc3QuYW1wRGV2RmlsZXMsXG4gICAgICBdXG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2Rpc2FibGVSdW50aW1lSlMgPyBudWxsIDogKFxuICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICBpZD1cIl9fTkVYVF9EQVRBX19cIlxuICAgICAgICAgICAgICB0eXBlPVwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgICBfX2h0bWw6IE5leHRTY3JpcHQuZ2V0SW5saW5lU2NyaXB0U291cmNlKHRoaXMuY29udGV4dCksXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIGRhdGEtYW1wZGV2bW9kZVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIHthbXBEZXZGaWxlcy5tYXAoKGZpbGUpID0+IChcbiAgICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgICAga2V5PXtmaWxlfVxuICAgICAgICAgICAgICBzcmM9e2Ake2Fzc2V0UHJlZml4fS9fbmV4dC8ke2VuY29kZVVSSVBhdGgoXG4gICAgICAgICAgICAgICAgZmlsZVxuICAgICAgICAgICAgICApfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICAgICAgICBub25jZT17dGhpcy5wcm9wcy5ub25jZX1cbiAgICAgICAgICAgICAgY3Jvc3NPcmlnaW49e3RoaXMucHJvcHMuY3Jvc3NPcmlnaW4gfHwgY3Jvc3NPcmlnaW59XG4gICAgICAgICAgICAgIGRhdGEtYW1wZGV2bW9kZVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApKX1cbiAgICAgICAgPC8+XG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLmNyb3NzT3JpZ2luKVxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1dhcm5pbmc6IGBOZXh0U2NyaXB0YCBhdHRyaWJ1dGUgYGNyb3NzT3JpZ2luYCBpcyBkZXByZWNhdGVkLiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9kb2MtY3Jvc3NvcmlnaW4tZGVwcmVjYXRlZCdcbiAgICAgICAgKVxuICAgIH1cblxuICAgIGNvbnN0IGZpbGVzOiBEb2N1bWVudEZpbGVzID0gZ2V0RG9jdW1lbnRGaWxlcyhcbiAgICAgIHRoaXMuY29udGV4dC5idWlsZE1hbmlmZXN0LFxuICAgICAgdGhpcy5jb250ZXh0Ll9fTkVYVF9EQVRBX18ucGFnZSxcbiAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmIGluQW1wTW9kZVxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7IWRpc2FibGVSdW50aW1lSlMgJiYgYnVpbGRNYW5pZmVzdC5kZXZGaWxlc1xuICAgICAgICAgID8gYnVpbGRNYW5pZmVzdC5kZXZGaWxlcy5tYXAoKGZpbGU6IHN0cmluZykgPT4gKFxuICAgICAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICAgICAga2V5PXtmaWxlfVxuICAgICAgICAgICAgICAgIHNyYz17YCR7YXNzZXRQcmVmaXh9L19uZXh0LyR7ZW5jb2RlVVJJUGF0aChcbiAgICAgICAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICAgICAgICApfSR7YXNzZXRRdWVyeVN0cmluZ31gfVxuICAgICAgICAgICAgICAgIG5vbmNlPXt0aGlzLnByb3BzLm5vbmNlfVxuICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luPXt0aGlzLnByb3BzLmNyb3NzT3JpZ2luIHx8IGNyb3NzT3JpZ2lufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSlcbiAgICAgICAgICA6IG51bGx9XG4gICAgICAgIHtkaXNhYmxlUnVudGltZUpTID8gbnVsbCA6IChcbiAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICBpZD1cIl9fTkVYVF9EQVRBX19cIlxuICAgICAgICAgICAgdHlwZT1cImFwcGxpY2F0aW9uL2pzb25cIlxuICAgICAgICAgICAgbm9uY2U9e3RoaXMucHJvcHMubm9uY2V9XG4gICAgICAgICAgICBjcm9zc09yaWdpbj17dGhpcy5wcm9wcy5jcm9zc09yaWdpbiB8fCBjcm9zc09yaWdpbn1cbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIF9faHRtbDogTmV4dFNjcmlwdC5nZXRJbmxpbmVTY3JpcHRTb3VyY2UodGhpcy5jb250ZXh0KSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAge2Rpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmXG4gICAgICAgICAgIWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICB0aGlzLmdldFBvbHlmaWxsU2NyaXB0cygpfVxuICAgICAgICB7ZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiZcbiAgICAgICAgICAhZGlzYWJsZVJ1bnRpbWVKUyAmJlxuICAgICAgICAgIHRoaXMuZ2V0UHJlTmV4dFNjcmlwdHMoKX1cbiAgICAgICAge2Rpc2FibGVPcHRpbWl6ZWRMb2FkaW5nICYmXG4gICAgICAgICAgIWRpc2FibGVSdW50aW1lSlMgJiZcbiAgICAgICAgICB0aGlzLmdldER5bmFtaWNDaHVua3MoZmlsZXMpfVxuICAgICAgICB7ZGlzYWJsZU9wdGltaXplZExvYWRpbmcgJiYgIWRpc2FibGVSdW50aW1lSlMgJiYgdGhpcy5nZXRTY3JpcHRzKGZpbGVzKX1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gSHRtbChcbiAgcHJvcHM6IFJlYWN0LkRldGFpbGVkSFRNTFByb3BzPFxuICAgIFJlYWN0Lkh0bWxIVE1MQXR0cmlidXRlczxIVE1MSHRtbEVsZW1lbnQ+LFxuICAgIEhUTUxIdG1sRWxlbWVudFxuICA+XG4pIHtcbiAgY29uc3Qge1xuICAgIGluQW1wTW9kZSxcbiAgICBkb2NDb21wb25lbnRzUmVuZGVyZWQsXG4gICAgbG9jYWxlLFxuICAgIHNjcmlwdExvYWRlcixcbiAgICBfX05FWFRfREFUQV9fLFxuICB9ID0gdXNlSHRtbENvbnRleHQoKVxuXG4gIGRvY0NvbXBvbmVudHNSZW5kZXJlZC5IdG1sID0gdHJ1ZVxuICBoYW5kbGVEb2N1bWVudFNjcmlwdExvYWRlckl0ZW1zKHNjcmlwdExvYWRlciwgX19ORVhUX0RBVEFfXywgcHJvcHMpXG5cbiAgcmV0dXJuIChcbiAgICA8aHRtbFxuICAgICAgey4uLnByb3BzfVxuICAgICAgbGFuZz17cHJvcHMubGFuZyB8fCBsb2NhbGUgfHwgdW5kZWZpbmVkfVxuICAgICAgYW1wPXtwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJyAmJiBpbkFtcE1vZGUgPyAnJyA6IHVuZGVmaW5lZH1cbiAgICAgIGRhdGEtYW1wZGV2bW9kZT17XG4gICAgICAgIHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSAhPT0gJ2VkZ2UnICYmXG4gICAgICAgIGluQW1wTW9kZSAmJlxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICB9XG4gICAgLz5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gTWFpbigpIHtcbiAgY29uc3QgeyBkb2NDb21wb25lbnRzUmVuZGVyZWQgfSA9IHVzZUh0bWxDb250ZXh0KClcbiAgZG9jQ29tcG9uZW50c1JlbmRlcmVkLk1haW4gPSB0cnVlXG4gIC8vIEB0cy1pZ25vcmVcbiAgcmV0dXJuIDxuZXh0LWpzLWludGVybmFsLWJvZHktcmVuZGVyLXRhcmdldCAvPlxufVxuXG4vKipcbiAqIGBEb2N1bWVudGAgY29tcG9uZW50IGhhbmRsZXMgdGhlIGluaXRpYWwgYGRvY3VtZW50YCBtYXJrdXAgYW5kIHJlbmRlcnMgb25seSBvbiB0aGUgc2VydmVyIHNpZGUuXG4gKiBDb21tb25seSB1c2VkIGZvciBpbXBsZW1lbnRpbmcgc2VydmVyIHNpZGUgcmVuZGVyaW5nIGZvciBgY3NzLWluLWpzYCBsaWJyYXJpZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERvY3VtZW50PFAgPSB7fT4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8XG4gIERvY3VtZW50UHJvcHMgJiBQXG4+IHtcbiAgLyoqXG4gICAqIGBnZXRJbml0aWFsUHJvcHNgIGhvb2sgcmV0dXJucyB0aGUgY29udGV4dCBvYmplY3Qgd2l0aCB0aGUgYWRkaXRpb24gb2YgYHJlbmRlclBhZ2VgLlxuICAgKiBgcmVuZGVyUGFnZWAgY2FsbGJhY2sgZXhlY3V0ZXMgYFJlYWN0YCByZW5kZXJpbmcgbG9naWMgc3luY2hyb25vdXNseSB0byBzdXBwb3J0IHNlcnZlci1yZW5kZXJpbmcgd3JhcHBlcnNcbiAgICovXG4gIHN0YXRpYyBnZXRJbml0aWFsUHJvcHMoY3R4OiBEb2N1bWVudENvbnRleHQpOiBQcm9taXNlPERvY3VtZW50SW5pdGlhbFByb3BzPiB7XG4gICAgcmV0dXJuIGN0eC5kZWZhdWx0R2V0SW5pdGlhbFByb3BzKGN0eClcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEh0bWw+XG4gICAgICAgIDxIZWFkIC8+XG4gICAgICAgIDxib2R5PlxuICAgICAgICAgIDxNYWluIC8+XG4gICAgICAgICAgPE5leHRTY3JpcHQgLz5cbiAgICAgICAgPC9ib2R5PlxuICAgICAgPC9IdG1sPlxuICAgIClcbiAgfVxufVxuXG4vLyBBZGQgYSBzcGVjaWFsIHByb3BlcnR5IHRvIHRoZSBidWlsdC1pbiBgRG9jdW1lbnRgIGNvbXBvbmVudCBzbyBsYXRlciB3ZSBjYW5cbi8vIGlkZW50aWZ5IGlmIGEgdXNlciBjdXN0b21pemVkIGBEb2N1bWVudGAgaXMgdXNlZCBvciBub3QuXG5jb25zdCBJbnRlcm5hbEZ1bmN0aW9uRG9jdW1lbnQ6IERvY3VtZW50VHlwZSA9XG4gIGZ1bmN0aW9uIEludGVybmFsRnVuY3Rpb25Eb2N1bWVudCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPEh0bWw+XG4gICAgICAgIDxIZWFkIC8+XG4gICAgICAgIDxib2R5PlxuICAgICAgICAgIDxNYWluIC8+XG4gICAgICAgICAgPE5leHRTY3JpcHQgLz5cbiAgICAgICAgPC9ib2R5PlxuICAgICAgPC9IdG1sPlxuICAgIClcbiAgfVxuOyhEb2N1bWVudCBhcyBhbnkpW05FWFRfQlVJTFRJTl9ET0NVTUVOVF0gPSBJbnRlcm5hbEZ1bmN0aW9uRG9jdW1lbnRcbiJdLCJuYW1lcyI6WyJIZWFkIiwiSHRtbCIsIk1haW4iLCJOZXh0U2NyaXB0IiwiRG9jdW1lbnQiLCJsYXJnZVBhZ2VEYXRhV2FybmluZ3MiLCJTZXQiLCJnZXREb2N1bWVudEZpbGVzIiwiYnVpbGRNYW5pZmVzdCIsInBhdGhuYW1lIiwiaW5BbXBNb2RlIiwic2hhcmVkRmlsZXMiLCJnZXRQYWdlRmlsZXMiLCJwYWdlRmlsZXMiLCJwcm9jZXNzIiwiZW52IiwiTkVYVF9SVU5USU1FIiwiYWxsRmlsZXMiLCJnZXRQb2x5ZmlsbFNjcmlwdHMiLCJjb250ZXh0IiwicHJvcHMiLCJhc3NldFByZWZpeCIsImFzc2V0UXVlcnlTdHJpbmciLCJkaXNhYmxlT3B0aW1pemVkTG9hZGluZyIsImNyb3NzT3JpZ2luIiwicG9seWZpbGxGaWxlcyIsImZpbHRlciIsInBvbHlmaWxsIiwiZW5kc1dpdGgiLCJtYXAiLCJzY3JpcHQiLCJkZWZlciIsIm5vbmNlIiwibm9Nb2R1bGUiLCJzcmMiLCJlbmNvZGVVUklQYXRoIiwiaGFzQ29tcG9uZW50UHJvcHMiLCJjaGlsZCIsIkFtcFN0eWxlcyIsInN0eWxlcyIsImN1clN0eWxlcyIsIkFycmF5IiwiaXNBcnJheSIsImNoaWxkcmVuIiwiaGFzU3R5bGVzIiwiZWwiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImZvckVhY2giLCJwdXNoIiwic3R5bGUiLCJhbXAtY3VzdG9tIiwiam9pbiIsInJlcGxhY2UiLCJnZXREeW5hbWljQ2h1bmtzIiwiZmlsZXMiLCJkeW5hbWljSW1wb3J0cyIsImlzRGV2ZWxvcG1lbnQiLCJmaWxlIiwiaW5jbHVkZXMiLCJhc3luYyIsImdldFNjcmlwdHMiLCJub3JtYWxTY3JpcHRzIiwibG93UHJpb3JpdHlTY3JpcHRzIiwibG93UHJpb3JpdHlGaWxlcyIsImdldFByZU5leHRXb3JrZXJTY3JpcHRzIiwic2NyaXB0TG9hZGVyIiwibmV4dFNjcmlwdFdvcmtlcnMiLCJwYXJ0eXRvd25TbmlwcGV0IiwiX19ub25fd2VicGFja19yZXF1aXJlX18iLCJ1c2VyRGVmaW5lZENvbmZpZyIsImZpbmQiLCJsZW5ndGgiLCJkYXRhLXBhcnR5dG93bi1jb25maWciLCJkYXRhLXBhcnR5dG93biIsIndvcmtlciIsImluZGV4Iiwic3RyYXRlZ3kiLCJzY3JpcHRDaGlsZHJlbiIsInNjcmlwdFByb3BzIiwic3JjUHJvcHMiLCJFcnJvciIsInR5cGUiLCJrZXkiLCJkYXRhLW5zY3JpcHQiLCJlcnIiLCJpc0Vycm9yIiwiY29kZSIsImNvbnNvbGUiLCJ3YXJuIiwibWVzc2FnZSIsImdldFByZU5leHRTY3JpcHRzIiwid2ViV29ya2VyU2NyaXB0cyIsImJlZm9yZUludGVyYWN0aXZlU2NyaXB0cyIsImJlZm9yZUludGVyYWN0aXZlIiwiZ2V0SGVhZEhUTUxQcm9wcyIsInJlc3RQcm9wcyIsImhlYWRQcm9wcyIsImdldEFtcFBhdGgiLCJhbXBQYXRoIiwiYXNQYXRoIiwiZ2V0TmV4dEZvbnRMaW5rVGFncyIsIm5leHRGb250TWFuaWZlc3QiLCJkYW5nZXJvdXNBc1BhdGgiLCJwcmVjb25uZWN0IiwicHJlbG9hZCIsImFwcEZvbnRzRW50cnkiLCJwYWdlcyIsInBhZ2VGb250c0VudHJ5IiwicHJlbG9hZGVkRm9udEZpbGVzIiwiZnJvbSIsInByZWNvbm5lY3RUb1NlbGYiLCJsaW5rIiwiZGF0YS1uZXh0LWZvbnQiLCJwYWdlc1VzaW5nU2l6ZUFkanVzdCIsInJlbCIsImhyZWYiLCJmb250RmlsZSIsImV4dCIsImV4ZWMiLCJhcyIsIlJlYWN0IiwiQ29tcG9uZW50IiwiY29udGV4dFR5cGUiLCJIdG1sQ29udGV4dCIsImdldENzc0xpbmtzIiwiZHluYW1pY0Nzc01hbmlmZXN0Iiwib3B0aW1pemVDc3MiLCJjc3NGaWxlcyIsImYiLCJ1bm1hbmFnZWRGaWxlcyIsImxvY2FsRHluYW1pY0Nzc0ZpbGVzIiwiZXhpc3RpbmciLCJoYXMiLCJjc3NMaW5rRWxlbWVudHMiLCJpc1NoYXJlZEZpbGUiLCJpc1VubWFuYWdlZEZpbGUiLCJpc0ZpbGVJbkR5bmFtaWNDc3NNYW5pZmVzdCIsImRhdGEtbi1nIiwidW5kZWZpbmVkIiwiZGF0YS1uLXAiLCJnZXRQcmVsb2FkRHluYW1pY0NodW5rcyIsIkJvb2xlYW4iLCJnZXRQcmVsb2FkTWFpbkxpbmtzIiwicHJlbG9hZEZpbGVzIiwiZ2V0QmVmb3JlSW50ZXJhY3RpdmVJbmxpbmVTY3JpcHRzIiwiaHRtbCIsImlkIiwiX19ORVhUX0NST1NTX09SSUdJTiIsInJlbmRlciIsImh5YnJpZEFtcCIsImNhbm9uaWNhbEJhc2UiLCJfX05FWFRfREFUQV9fIiwiaGVhZFRhZ3MiLCJ1bnN0YWJsZV9ydW50aW1lSlMiLCJ1bnN0YWJsZV9Kc1ByZWxvYWQiLCJkaXNhYmxlUnVudGltZUpTIiwiZGlzYWJsZUpzUHJlbG9hZCIsImRvY0NvbXBvbmVudHNSZW5kZXJlZCIsImhlYWQiLCJjc3NQcmVsb2FkcyIsIm90aGVySGVhZEVsZW1lbnRzIiwic3RyaWN0TmV4dEhlYWQiLCJjbG9uZUVsZW1lbnQiLCJjb25jYXQiLCJDaGlsZHJlbiIsInRvQXJyYXkiLCJOT0RFX0VOViIsImlzUmVhY3RIZWxtZXQiLCJuYW1lIiwiaGFzQW1waHRtbFJlbCIsImhhc0Nhbm9uaWNhbFJlbCIsImJhZFByb3AiLCJpbmRleE9mIiwiT2JqZWN0Iiwia2V5cyIsInByb3AiLCJwYWdlIiwibmV4dEZvbnRMaW5rVGFncyIsInRyYWNpbmdNZXRhZGF0YSIsImdldFRyYWNlZE1ldGFkYXRhIiwiZ2V0VHJhY2VyIiwiZ2V0VHJhY2VQcm9wYWdhdGlvbkRhdGEiLCJleHBlcmltZW50YWxDbGllbnRUcmFjZU1ldGFkYXRhIiwidHJhY2VNZXRhVGFncyIsInZhbHVlIiwibWV0YSIsImNvbnRlbnQiLCJkYXRhLW5leHQtaGlkZS1mb3VjIiwiZGF0YS1hbXBkZXZtb2RlIiwibm9zY3JpcHQiLCJjb3VudCIsInRvU3RyaW5nIiwicmVxdWlyZSIsImNsZWFuQW1wUGF0aCIsImFtcC1ib2lsZXJwbGF0ZSIsImRhdGEtbi1jc3MiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJoYW5kbGVEb2N1bWVudFNjcmlwdExvYWRlckl0ZW1zIiwic2NyaXB0TG9hZGVySXRlbXMiLCJoZWFkQ2hpbGRyZW4iLCJib2R5Q2hpbGRyZW4iLCJjb21iaW5lZENoaWxkcmVuIiwiX19uZXh0U2NyaXB0IiwiZ2V0SW5saW5lU2NyaXB0U291cmNlIiwibGFyZ2VQYWdlRGF0YUJ5dGVzIiwiZGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJodG1sRXNjYXBlSnNvblN0cmluZyIsImJ5dGVzIiwiVGV4dEVuY29kZXIiLCJlbmNvZGUiLCJidWZmZXIiLCJieXRlTGVuZ3RoIiwiQnVmZmVyIiwicHJldHR5Qnl0ZXMiLCJkZWZhdWx0IiwiYWRkIiwiYW1wRGV2RmlsZXMiLCJkZXZGaWxlcyIsImxvY2FsZSIsInVzZUh0bWxDb250ZXh0IiwibGFuZyIsImFtcCIsIm5leHQtanMtaW50ZXJuYWwtYm9keS1yZW5kZXItdGFyZ2V0IiwiZ2V0SW5pdGlhbFByb3BzIiwiY3R4IiwiZGVmYXVsdEdldEluaXRpYWxQcm9wcyIsImJvZHkiLCJJbnRlcm5hbEZ1bmN0aW9uRG9jdW1lbnQiLCJORVhUX0JVSUxUSU5fRE9DVU1FTlQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_document.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/pages/_error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/pages/_error.js ***! + \************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Error;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"react\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"./node_modules/next/dist/shared/lib/head.js\"));\nconst statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\nfunction _getInitialProps(param) {\n let { res, err } = param;\n const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n return {\n statusCode\n };\n}\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n desc: {\n lineHeight: '48px'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px'\n },\n wrap: {\n display: 'inline-block'\n }\n};\nclass Error extends _react.default.Component {\n render() {\n const { statusCode, withDarkMode = true } = this.props;\n const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.error,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: statusCode ? statusCode + \": \" + title : 'Application error: a client-side exception has occurred'\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.desc,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* CSS minified from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n ${\n withDarkMode\n ? `@media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }`\n : ''\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\" + (withDarkMode ? '@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}' : '')\n }\n }),\n statusCode ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: styles.h1,\n children: statusCode\n }) : null,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.wrap,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.h2,\n children: [\n this.props.title || statusCode ? title : /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: \"Application error: a client-side exception has occurred (see the browser console for more information)\"\n }),\n \".\"\n ]\n })\n })\n ]\n })\n ]\n });\n }\n}\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_error.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O2VBOERxQkE7Ozs7OzRFQTlESDsyRUFDRDtBQUdqQixNQUFNQyxjQUEwQztJQUM5QyxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0FBQ1A7QUFRQSxTQUFTQyxpQkFBaUIsS0FHUjtJQUhRLE1BQ3hCQyxHQUFHLEVBQ0hDLEdBQUcsRUFDYSxHQUhRO0lBSXhCLE1BQU1DLGFBQ0pGLE9BQU9BLElBQUlFLFVBQVUsR0FBR0YsSUFBSUUsVUFBVSxHQUFHRCxNQUFNQSxJQUFJQyxVQUFVLEdBQUk7SUFDbkUsT0FBTztRQUFFQTtJQUFXO0FBQ3RCO0FBRUEsTUFBTUMsU0FBOEM7SUFDbERDLE9BQU87UUFDTCwwRkFBMEY7UUFDMUZDLFlBQ0U7UUFDRkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsZUFBZTtRQUNmQyxZQUFZO1FBQ1pDLGdCQUFnQjtJQUNsQjtJQUNBQyxNQUFNO1FBQ0pDLFlBQVk7SUFDZDtJQUNBQyxJQUFJO1FBQ0ZOLFNBQVM7UUFDVE8sUUFBUTtRQUNSQyxjQUFjO1FBQ2RDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxlQUFlO0lBQ2pCO0lBQ0FDLElBQUk7UUFDRkgsVUFBVTtRQUNWQyxZQUFZO1FBQ1pMLFlBQVk7SUFDZDtJQUNBUSxNQUFNO1FBQ0piLFNBQVM7SUFDWDtBQUNGO0FBS2UsTUFBTVgsY0FBc0J5QixPQUFBQSxPQUFLLENBQUNDLFNBQVM7SUFNeERDLFNBQVM7UUFDUCxNQUFNLEVBQUV0QixVQUFVLEVBQUV1QixlQUFlLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQ0MsS0FBSztRQUN0RCxNQUFNQyxRQUNKLElBQUksQ0FBQ0QsS0FBSyxDQUFDQyxLQUFLLElBQ2hCN0IsV0FBVyxDQUFDSSxXQUFXLElBQ3ZCO1FBRUYscUJBQ0Usc0JBQUMwQixPQUFBQTtZQUFJQyxPQUFPMUIsT0FBT0MsS0FBSzs7OEJBQ3RCLHFCQUFDMEIsTUFBQUEsT0FBSTs4QkFDSCxtQ0FBQ0gsU0FBQUE7a0NBQ0V6QixhQUNNQSxhQUFXLE9BQUl5QixRQUNsQjs7OzhCQUdSLHNCQUFDQyxPQUFBQTtvQkFBSUMsT0FBTzFCLE9BQU9TLElBQUk7O3NDQUNyQixxQkFBQ2lCLFNBQUFBOzRCQUNDRSx5QkFBeUI7Z0NBQ3ZCOzs7Ozs7Ozs7Ozs7Ozs7O2VBZ0JDLEdBQ0RDLFFBQVMsbUdBQ1BQLENBQUFBLGVBQ0ksb0lBQ0EsR0FBQzs0QkFFVDs7d0JBR0R2QixhQUFBQSxXQUFBQSxHQUNDLHFCQUFDWSxNQUFBQTs0QkFBR21CLFdBQVU7NEJBQWdCSixPQUFPMUIsT0FBT1csRUFBRTtzQ0FDM0NaOzZCQUVEO3NDQUNKLHFCQUFDMEIsT0FBQUE7NEJBQUlDLE9BQU8xQixPQUFPa0IsSUFBSTtzQ0FDckIsb0NBQUNELE1BQUFBO2dDQUFHUyxPQUFPMUIsT0FBT2lCLEVBQUU7O29DQUNqQixJQUFJLENBQUNNLEtBQUssQ0FBQ0MsS0FBSyxJQUFJekIsYUFDbkJ5QixRQUFBQSxXQUFBQSxHQUVBO2tEQUFFOztvQ0FJRjs7Ozs7Ozs7SUFPZDtBQUNGO0FBeEVxQjlCLE1BQ1pxQyxXQUFBQSxHQUFjO0FBREZyQyxNQUdac0MsZUFBQUEsR0FBa0JwQztBQUhORixNQUladUMsbUJBQUFBLEdBQXNCckMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9wYWdlcy9fZXJyb3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBIZWFkIGZyb20gJy4uL3NoYXJlZC9saWIvaGVhZCdcbmltcG9ydCB0eXBlIHsgTmV4dFBhZ2VDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi91dGlscydcblxuY29uc3Qgc3RhdHVzQ29kZXM6IHsgW2NvZGU6IG51bWJlcl06IHN0cmluZyB9ID0ge1xuICA0MDA6ICdCYWQgUmVxdWVzdCcsXG4gIDQwNDogJ1RoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQnLFxuICA0MDU6ICdNZXRob2QgTm90IEFsbG93ZWQnLFxuICA1MDA6ICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InLFxufVxuXG5leHBvcnQgdHlwZSBFcnJvclByb3BzID0ge1xuICBzdGF0dXNDb2RlOiBudW1iZXJcbiAgdGl0bGU/OiBzdHJpbmdcbiAgd2l0aERhcmtNb2RlPzogYm9vbGVhblxufVxuXG5mdW5jdGlvbiBfZ2V0SW5pdGlhbFByb3BzKHtcbiAgcmVzLFxuICBlcnIsXG59OiBOZXh0UGFnZUNvbnRleHQpOiBQcm9taXNlPEVycm9yUHJvcHM+IHwgRXJyb3JQcm9wcyB7XG4gIGNvbnN0IHN0YXR1c0NvZGUgPVxuICAgIHJlcyAmJiByZXMuc3RhdHVzQ29kZSA/IHJlcy5zdGF0dXNDb2RlIDogZXJyID8gZXJyLnN0YXR1c0NvZGUhIDogNDA0XG4gIHJldHVybiB7IHN0YXR1c0NvZGUgfVxufVxuXG5jb25zdCBzdHlsZXM6IFJlY29yZDxzdHJpbmcsIFJlYWN0LkNTU1Byb3BlcnRpZXM+ID0ge1xuICBlcnJvcjoge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9ibG9iL21haW4vbW9kZXJuLW5vcm1hbGl6ZS5jc3MjTDM4LUw1MlxuICAgIGZvbnRGYW1pbHk6XG4gICAgICAnc3lzdGVtLXVpLFwiU2Vnb2UgVUlcIixSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIicsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgfSxcbiAgZGVzYzoge1xuICAgIGxpbmVIZWlnaHQ6ICc0OHB4JyxcbiAgfSxcbiAgaDE6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICBtYXJnaW46ICcwIDIwcHggMCAwJyxcbiAgICBwYWRkaW5nUmlnaHQ6IDIzLFxuICAgIGZvbnRTaXplOiAyNCxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gIH0sXG4gIGgyOiB7XG4gICAgZm9udFNpemU6IDE0LFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjhweCcsXG4gIH0sXG4gIHdyYXA6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgfSxcbn1cblxuLyoqXG4gKiBgRXJyb3JgIGNvbXBvbmVudCB1c2VkIGZvciBoYW5kbGluZyBlcnJvcnMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVycm9yPFAgPSB7fT4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UCAmIEVycm9yUHJvcHM+IHtcbiAgc3RhdGljIGRpc3BsYXlOYW1lID0gJ0Vycm9yUGFnZSdcblxuICBzdGF0aWMgZ2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wc1xuICBzdGF0aWMgb3JpZ0dldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHNcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBzdGF0dXNDb2RlLCB3aXRoRGFya01vZGUgPSB0cnVlIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgdGl0bGUgPVxuICAgICAgdGhpcy5wcm9wcy50aXRsZSB8fFxuICAgICAgc3RhdHVzQ29kZXNbc3RhdHVzQ29kZV0gfHxcbiAgICAgICdBbiB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cnJlZCdcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZXJyb3J9PlxuICAgICAgICA8SGVhZD5cbiAgICAgICAgICA8dGl0bGU+XG4gICAgICAgICAgICB7c3RhdHVzQ29kZVxuICAgICAgICAgICAgICA/IGAke3N0YXR1c0NvZGV9OiAke3RpdGxlfWBcbiAgICAgICAgICAgICAgOiAnQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCd9XG4gICAgICAgICAgPC90aXRsZT5cbiAgICAgICAgPC9IZWFkPlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZGVzY30+XG4gICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAvKiBDU1MgbWluaWZpZWQgZnJvbVxuICAgICAgICAgICAgICAgIGJvZHkgeyBtYXJnaW46IDA7IGNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAgICAgICAgICAgLm5leHQtZXJyb3ItaDEge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJHtcbiAgICAgICAgICAgICAgICAgIHdpdGhEYXJrTW9kZVxuICAgICAgICAgICAgICAgICAgICA/IGBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgICAgICBib2R5IHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6ICMwMDA7IH1cbiAgICAgICAgICAgICAgICAgIC5uZXh0LWVycm9yLWgxIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAuMyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfWBcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kOiNmZmY7bWFyZ2luOjB9Lm5leHQtZXJyb3ItaDF7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDAsMCwwLC4zKX0ke1xuICAgICAgICAgICAgICAgIHdpdGhEYXJrTW9kZVxuICAgICAgICAgICAgICAgICAgPyAnQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMDAwfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyl9fSdcbiAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICB7c3RhdHVzQ29kZSA/IChcbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJuZXh0LWVycm9yLWgxXCIgc3R5bGU9e3N0eWxlcy5oMX0+XG4gICAgICAgICAgICAgIHtzdGF0dXNDb2RlfVxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMud3JhcH0+XG4gICAgICAgICAgICA8aDIgc3R5bGU9e3N0eWxlcy5oMn0+XG4gICAgICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGUgPyAoXG4gICAgICAgICAgICAgICAgdGl0bGVcbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCAoc2VlXG4gICAgICAgICAgICAgICAgICB0aGUgYnJvd3NlciBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uKVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAuXG4gICAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkVycm9yIiwic3RhdHVzQ29kZXMiLCJfZ2V0SW5pdGlhbFByb3BzIiwicmVzIiwiZXJyIiwic3RhdHVzQ29kZSIsInN0eWxlcyIsImVycm9yIiwiZm9udEZhbWlseSIsImhlaWdodCIsInRleHRBbGlnbiIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZGVzYyIsImxpbmVIZWlnaHQiLCJoMSIsIm1hcmdpbiIsInBhZGRpbmdSaWdodCIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsInZlcnRpY2FsQWxpZ24iLCJoMiIsIndyYXAiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsIndpdGhEYXJrTW9kZSIsInByb3BzIiwidGl0bGUiLCJkaXYiLCJzdHlsZSIsIkhlYWQiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImNsYXNzTmFtZSIsImRpc3BsYXlOYW1lIiwiZ2V0SW5pdGlhbFByb3BzIiwib3JpZ0dldEluaXRpYWxQcm9wcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp-mode.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp-mode.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isInAmpMode\", ({\n enumerable: true,\n get: function() {\n return isInAmpMode;\n }\n}));\nfunction isInAmpMode(param) {\n let { ampFirst = false, hybrid = false, hasQuery = false } = param === void 0 ? {} : param;\n return ampFirst || hybrid && hasQuery;\n} //# sourceMappingURL=amp-mode.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLW1vZGUuanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0FBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFlBQVk7SUFBQSxNQUMxQkMsV0FBVyxLQUFLLEVBQ2hCQyxTQUFTLEtBQUssRUFDZEMsV0FBVyxLQUFLLEVBQ2pCLEdBSjJCLG1CQUl4QixDQUFDLElBSnVCO0lBSzFCLE9BQU9GLFlBQWFDLFVBQVVDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvc2hhcmVkL2xpYi9hbXAtbW9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNJbkFtcE1vZGUoe1xuICBhbXBGaXJzdCA9IGZhbHNlLFxuICBoeWJyaWQgPSBmYWxzZSxcbiAgaGFzUXVlcnkgPSBmYWxzZSxcbn0gPSB7fSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYW1wRmlyc3QgfHwgKGh5YnJpZCAmJiBoYXNRdWVyeSlcbn1cbiJdLCJuYW1lcyI6WyJpc0luQW1wTW9kZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp-mode.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/constants.js": +/*!********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/constants.js ***! + \********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n APP_BUILD_MANIFEST: function() {\n return APP_BUILD_MANIFEST;\n },\n APP_CLIENT_INTERNALS: function() {\n return APP_CLIENT_INTERNALS;\n },\n APP_PATHS_MANIFEST: function() {\n return APP_PATHS_MANIFEST;\n },\n APP_PATH_ROUTES_MANIFEST: function() {\n return APP_PATH_ROUTES_MANIFEST;\n },\n BARREL_OPTIMIZATION_PREFIX: function() {\n return BARREL_OPTIMIZATION_PREFIX;\n },\n BLOCKED_PAGES: function() {\n return BLOCKED_PAGES;\n },\n BUILD_ID_FILE: function() {\n return BUILD_ID_FILE;\n },\n BUILD_MANIFEST: function() {\n return BUILD_MANIFEST;\n },\n CLIENT_PUBLIC_FILES_PATH: function() {\n return CLIENT_PUBLIC_FILES_PATH;\n },\n CLIENT_REFERENCE_MANIFEST: function() {\n return CLIENT_REFERENCE_MANIFEST;\n },\n CLIENT_STATIC_FILES_PATH: function() {\n return CLIENT_STATIC_FILES_PATH;\n },\n CLIENT_STATIC_FILES_RUNTIME_AMP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_AMP;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN_APP;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\n },\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: function() {\n return CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH;\n },\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK: function() {\n return CLIENT_STATIC_FILES_RUNTIME_WEBPACK;\n },\n COMPILER_INDEXES: function() {\n return COMPILER_INDEXES;\n },\n COMPILER_NAMES: function() {\n return COMPILER_NAMES;\n },\n CONFIG_FILES: function() {\n return CONFIG_FILES;\n },\n DEFAULT_RUNTIME_WEBPACK: function() {\n return DEFAULT_RUNTIME_WEBPACK;\n },\n DEFAULT_SANS_SERIF_FONT: function() {\n return DEFAULT_SANS_SERIF_FONT;\n },\n DEFAULT_SERIF_FONT: function() {\n return DEFAULT_SERIF_FONT;\n },\n DEV_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return DEV_CLIENT_MIDDLEWARE_MANIFEST;\n },\n DEV_CLIENT_PAGES_MANIFEST: function() {\n return DEV_CLIENT_PAGES_MANIFEST;\n },\n DYNAMIC_CSS_MANIFEST: function() {\n return DYNAMIC_CSS_MANIFEST;\n },\n EDGE_RUNTIME_WEBPACK: function() {\n return EDGE_RUNTIME_WEBPACK;\n },\n EDGE_UNSUPPORTED_NODE_APIS: function() {\n return EDGE_UNSUPPORTED_NODE_APIS;\n },\n EXPORT_DETAIL: function() {\n return EXPORT_DETAIL;\n },\n EXPORT_MARKER: function() {\n return EXPORT_MARKER;\n },\n FUNCTIONS_CONFIG_MANIFEST: function() {\n return FUNCTIONS_CONFIG_MANIFEST;\n },\n IMAGES_MANIFEST: function() {\n return IMAGES_MANIFEST;\n },\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: function() {\n return INTERCEPTION_ROUTE_REWRITE_MANIFEST;\n },\n MIDDLEWARE_BUILD_MANIFEST: function() {\n return MIDDLEWARE_BUILD_MANIFEST;\n },\n MIDDLEWARE_MANIFEST: function() {\n return MIDDLEWARE_MANIFEST;\n },\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: function() {\n return MIDDLEWARE_REACT_LOADABLE_MANIFEST;\n },\n MODERN_BROWSERSLIST_TARGET: function() {\n return _modernbrowserslisttarget.default;\n },\n NEXT_BUILTIN_DOCUMENT: function() {\n return NEXT_BUILTIN_DOCUMENT;\n },\n NEXT_FONT_MANIFEST: function() {\n return NEXT_FONT_MANIFEST;\n },\n PAGES_MANIFEST: function() {\n return PAGES_MANIFEST;\n },\n PHASE_DEVELOPMENT_SERVER: function() {\n return PHASE_DEVELOPMENT_SERVER;\n },\n PHASE_EXPORT: function() {\n return PHASE_EXPORT;\n },\n PHASE_INFO: function() {\n return PHASE_INFO;\n },\n PHASE_PRODUCTION_BUILD: function() {\n return PHASE_PRODUCTION_BUILD;\n },\n PHASE_PRODUCTION_SERVER: function() {\n return PHASE_PRODUCTION_SERVER;\n },\n PHASE_TEST: function() {\n return PHASE_TEST;\n },\n PRERENDER_MANIFEST: function() {\n return PRERENDER_MANIFEST;\n },\n REACT_LOADABLE_MANIFEST: function() {\n return REACT_LOADABLE_MANIFEST;\n },\n ROUTES_MANIFEST: function() {\n return ROUTES_MANIFEST;\n },\n RSC_MODULE_TYPES: function() {\n return RSC_MODULE_TYPES;\n },\n SERVER_DIRECTORY: function() {\n return SERVER_DIRECTORY;\n },\n SERVER_FILES_MANIFEST: function() {\n return SERVER_FILES_MANIFEST;\n },\n SERVER_PROPS_ID: function() {\n return SERVER_PROPS_ID;\n },\n SERVER_REFERENCE_MANIFEST: function() {\n return SERVER_REFERENCE_MANIFEST;\n },\n STATIC_PROPS_ID: function() {\n return STATIC_PROPS_ID;\n },\n STATIC_STATUS_PAGES: function() {\n return STATIC_STATUS_PAGES;\n },\n STRING_LITERAL_DROP_BUNDLE: function() {\n return STRING_LITERAL_DROP_BUNDLE;\n },\n SUBRESOURCE_INTEGRITY_MANIFEST: function() {\n return SUBRESOURCE_INTEGRITY_MANIFEST;\n },\n SYSTEM_ENTRYPOINTS: function() {\n return SYSTEM_ENTRYPOINTS;\n },\n TRACE_OUTPUT_VERSION: function() {\n return TRACE_OUTPUT_VERSION;\n },\n TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST;\n },\n TURBO_TRACE_DEFAULT_MEMORY_LIMIT: function() {\n return TURBO_TRACE_DEFAULT_MEMORY_LIMIT;\n },\n UNDERSCORE_NOT_FOUND_ROUTE: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE;\n },\n UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE_ENTRY;\n },\n WEBPACK_STATS: function() {\n return WEBPACK_STATS;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./modern-browserslist-target */ \"./node_modules/next/dist/shared/lib/modern-browserslist-target.js\"));\nconst COMPILER_NAMES = {\n client: 'client',\n server: 'server',\n edgeServer: 'edge-server'\n};\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\nconst UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found';\nconst UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = \"\" + UNDERSCORE_NOT_FOUND_ROUTE + \"/page\";\nconst PHASE_EXPORT = 'phase-export';\nconst PHASE_PRODUCTION_BUILD = 'phase-production-build';\nconst PHASE_PRODUCTION_SERVER = 'phase-production-server';\nconst PHASE_DEVELOPMENT_SERVER = 'phase-development-server';\nconst PHASE_TEST = 'phase-test';\nconst PHASE_INFO = 'phase-info';\nconst PAGES_MANIFEST = 'pages-manifest.json';\nconst WEBPACK_STATS = 'webpack-stats.json';\nconst APP_PATHS_MANIFEST = 'app-paths-manifest.json';\nconst APP_PATH_ROUTES_MANIFEST = 'app-path-routes-manifest.json';\nconst BUILD_MANIFEST = 'build-manifest.json';\nconst APP_BUILD_MANIFEST = 'app-build-manifest.json';\nconst FUNCTIONS_CONFIG_MANIFEST = 'functions-config-manifest.json';\nconst SUBRESOURCE_INTEGRITY_MANIFEST = 'subresource-integrity-manifest';\nconst NEXT_FONT_MANIFEST = 'next-font-manifest';\nconst EXPORT_MARKER = 'export-marker.json';\nconst EXPORT_DETAIL = 'export-detail.json';\nconst PRERENDER_MANIFEST = 'prerender-manifest.json';\nconst ROUTES_MANIFEST = 'routes-manifest.json';\nconst IMAGES_MANIFEST = 'images-manifest.json';\nconst SERVER_FILES_MANIFEST = 'required-server-files.json';\nconst DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json';\nconst MIDDLEWARE_MANIFEST = 'middleware-manifest.json';\nconst TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST = '_clientMiddlewareManifest.json';\nconst DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json';\nconst REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json';\nconst SERVER_DIRECTORY = 'server';\nconst CONFIG_FILES = [\n 'next.config.js',\n 'next.config.mjs',\n 'next.config.ts'\n];\nconst BUILD_ID_FILE = 'BUILD_ID';\nconst BLOCKED_PAGES = [\n '/_document',\n '/_app',\n '/_error'\n];\nconst CLIENT_PUBLIC_FILES_PATH = 'public';\nconst CLIENT_STATIC_FILES_PATH = 'static';\nconst STRING_LITERAL_DROP_BUNDLE = '__NEXT_DROP_CLIENT_FILE__';\nconst NEXT_BUILTIN_DOCUMENT = '__NEXT_BUILTIN_DOCUMENT__';\nconst BARREL_OPTIMIZATION_PREFIX = '__barrel_optimize__';\nconst CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest';\nconst SERVER_REFERENCE_MANIFEST = 'server-reference-manifest';\nconst MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest';\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = 'middleware-react-loadable-manifest';\nconst INTERCEPTION_ROUTE_REWRITE_MANIFEST = 'interception-route-rewrite-manifest';\nconst DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest';\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\nconst APP_CLIENT_INTERNALS = 'app-pages-internals';\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills';\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\nconst DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime';\nconst EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack';\nconst STATIC_PROPS_ID = '__N_SSG';\nconst SERVER_PROPS_ID = '__N_SSP';\nconst DEFAULT_SERIF_FONT = {\n name: 'Times New Roman',\n xAvgCharWidth: 821,\n azAvgWidth: 854.3953488372093,\n unitsPerEm: 2048\n};\nconst DEFAULT_SANS_SERIF_FONT = {\n name: 'Arial',\n xAvgCharWidth: 904,\n azAvgWidth: 934.5116279069767,\n unitsPerEm: 2048\n};\nconst STATIC_STATUS_PAGES = [\n '/500'\n];\nconst TRACE_OUTPUT_VERSION = 1;\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: 'client',\n server: 'server'\n};\nconst EDGE_UNSUPPORTED_NODE_APIS = [\n 'clearImmediate',\n 'setImmediate',\n 'BroadcastChannel',\n 'ByteLengthQueuingStrategy',\n 'CompressionStream',\n 'CountQueuingStrategy',\n 'DecompressionStream',\n 'DomException',\n 'MessageChannel',\n 'MessageEvent',\n 'MessagePort',\n 'ReadableByteStreamController',\n 'ReadableStreamBYOBRequest',\n 'ReadableStreamDefaultController',\n 'TransformStreamDefaultController',\n 'WritableStreamDefaultController'\n];\nconst SYSTEM_ENTRYPOINTS = new Set([\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP\n]);\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW1DYUEsa0JBQWtCO2VBQWxCQTs7SUFpREFDLG9CQUFvQjtlQUFwQkE7O0lBcERBQyxrQkFBa0I7ZUFBbEJBOztJQUNBQyx3QkFBd0I7ZUFBeEJBOztJQThCQUMsMEJBQTBCO2VBQTFCQTs7SUFMQUMsYUFBYTtlQUFiQTs7SUFEQUMsYUFBYTtlQUFiQTs7SUF2QkFDLGNBQWM7ZUFBZEE7O0lBeUJBQyx3QkFBd0I7ZUFBeEJBOztJQU9BQyx5QkFBeUI7ZUFBekJBOztJQU5BQyx3QkFBd0I7ZUFBeEJBOztJQTRCQUMsK0JBQStCO2VBQS9CQTs7SUFQQUMsZ0NBQWdDO2VBQWhDQTs7SUFDQUMsb0NBQW9DO2VBQXBDQTs7SUFVQUMscUNBQXFDO2VBQXJDQTs7SUFDQUMsNENBQTRDO2VBQTVDQTs7SUFQQUMseUNBQXlDO2VBQXpDQTs7SUFJQUMsbUNBQW1DO2VBQW5DQTs7SUE1RUFDLGdCQUFnQjtlQUFoQkE7O0lBUkFDLGNBQWM7ZUFBZEE7O0lBOENBQyxZQUFZO2VBQVpBOztJQTRDQUMsdUJBQXVCO2VBQXZCQTs7SUFVQUMsdUJBQXVCO2VBQXZCQTs7SUFOQUMsa0JBQWtCO2VBQWxCQTs7SUFuREFDLDhCQUE4QjtlQUE5QkE7O0lBSkFDLHlCQUF5QjtlQUF6QkE7O0lBaUNBQyxvQkFBb0I7ZUFBcEJBOztJQW1CQUMsb0JBQW9CO2VBQXBCQTs7SUE2QkFDLDBCQUEwQjtlQUExQkE7O0lBdEZBQyxhQUFhO2VBQWJBOztJQURBQyxhQUFhO2VBQWJBOztJQUhBQyx5QkFBeUI7ZUFBekJBOztJQU9BQyxlQUFlO2VBQWZBOztJQWdDQUMsbUNBQW1DO2VBQW5DQTs7SUFMQUMseUJBQXlCO2VBQXpCQTs7SUF4QkFDLG1CQUFtQjtlQUFuQkE7O0lBMEJBQyxrQ0FBa0M7ZUFBbENBOztJQXRFSkMsMEJBQTBCO2VBQTFCQSwwQkFBQUEsT0FBMEI7O0lBNER0QkMscUJBQXFCO2VBQXJCQTs7SUF4QkFDLGtCQUFrQjtlQUFsQkE7O0lBUkFDLGNBQWM7ZUFBZEE7O0lBSEFDLHdCQUF3QjtlQUF4QkE7O0lBSEFDLFlBQVk7ZUFBWkE7O0lBS0FDLFVBQVU7ZUFBVkE7O0lBSkFDLHNCQUFzQjtlQUF0QkE7O0lBQ0FDLHVCQUF1QjtlQUF2QkE7O0lBRUFDLFVBQVU7ZUFBVkE7O0lBYUFDLGtCQUFrQjtlQUFsQkE7O0lBU0FDLHVCQUF1QjtlQUF2QkE7O0lBUkFDLGVBQWU7ZUFBZkE7O0lBMkVBQyxnQkFBZ0I7ZUFBaEJBOztJQWxFQUMsZ0JBQWdCO2VBQWhCQTs7SUFQQUMscUJBQXFCO2VBQXJCQTs7SUF1REFDLGVBQWU7ZUFBZkE7O0lBL0JBQyx5QkFBeUI7ZUFBekJBOztJQThCQUMsZUFBZTtlQUFmQTs7SUFjQUMsbUJBQW1CO2VBQW5CQTs7SUFuREFDLDBCQUEwQjtlQUExQkE7O0lBeEJBQyw4QkFBOEI7ZUFBOUJBOztJQTRHQUMsa0JBQWtCO2VBQWxCQTs7SUFoQ0FDLG9CQUFvQjtlQUFwQkE7O0lBbEVBQyxvQ0FBb0M7ZUFBcENBOztJQW9FQUMsZ0NBQWdDO2VBQWhDQTs7SUE3RkFDLDBCQUEwQjtlQUExQkE7O0lBQ0FDLGdDQUFnQztlQUFoQ0E7O0lBUUFDLGFBQWE7ZUFBYkE7Ozs7K0ZBL0IwQjtBQU1oQyxNQUFNOUMsaUJBQWlCO0lBQzVCK0MsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFlBQVk7QUFDZDtBQUlPLE1BQU1sRCxtQkFFVDtJQUNGLENBQUNDLGVBQWUrQyxNQUFNLENBQUMsRUFBRTtJQUN6QixDQUFDL0MsZUFBZWdELE1BQU0sQ0FBQyxFQUFFO0lBQ3pCLENBQUNoRCxlQUFlaUQsVUFBVSxDQUFDLEVBQUU7QUFDL0I7QUFFTyxNQUFNTCw2QkFBNkI7QUFDbkMsTUFBTUMsbUNBQW9DLEtBQUVELDZCQUEyQjtBQUN2RSxNQUFNckIsZUFBZTtBQUNyQixNQUFNRSx5QkFBeUI7QUFDL0IsTUFBTUMsMEJBQTBCO0FBQ2hDLE1BQU1KLDJCQUEyQjtBQUNqQyxNQUFNSyxhQUFhO0FBQ25CLE1BQU1ILGFBQWE7QUFDbkIsTUFBTUgsaUJBQWlCO0FBQ3ZCLE1BQU15QixnQkFBZ0I7QUFDdEIsTUFBTS9ELHFCQUFxQjtBQUMzQixNQUFNQywyQkFBMkI7QUFDakMsTUFBTUksaUJBQWlCO0FBQ3ZCLE1BQU1QLHFCQUFxQjtBQUMzQixNQUFNK0IsNEJBQTRCO0FBQ2xDLE1BQU0yQixpQ0FBaUM7QUFDdkMsTUFBTW5CLHFCQUFxQjtBQUMzQixNQUFNVCxnQkFBZ0I7QUFDdEIsTUFBTUQsZ0JBQWdCO0FBQ3RCLE1BQU1rQixxQkFBcUI7QUFDM0IsTUFBTUUsa0JBQWtCO0FBQ3hCLE1BQU1qQixrQkFBa0I7QUFDeEIsTUFBTW9CLHdCQUF3QjtBQUM5QixNQUFNM0IsNEJBQTRCO0FBQ2xDLE1BQU1VLHNCQUFzQjtBQUM1QixNQUFNMEIsdUNBQ1g7QUFDSyxNQUFNckMsaUNBQWlDO0FBQ3ZDLE1BQU13QiwwQkFBMEI7QUFDaEMsTUFBTUcsbUJBQW1CO0FBQ3pCLE1BQU0vQixlQUFlO0lBQzFCO0lBQ0E7SUFDQTtDQUNEO0FBQ00sTUFBTWQsZ0JBQWdCO0FBQ3RCLE1BQU1ELGdCQUFnQjtJQUFDO0lBQWM7SUFBUztDQUFVO0FBQ3hELE1BQU1HLDJCQUEyQjtBQUNqQyxNQUFNRSwyQkFBMkI7QUFDakMsTUFBTStDLDZCQUE2QjtBQUNuQyxNQUFNbkIsd0JBQXdCO0FBQzlCLE1BQU1sQyw2QkFBNkI7QUFHbkMsTUFBTUssNEJBQTRCO0FBRWxDLE1BQU02Qyw0QkFBNEI7QUFFbEMsTUFBTXBCLDRCQUE0QjtBQUVsQyxNQUFNRSxxQ0FDWDtBQUVLLE1BQU1ILHNDQUNYO0FBRUssTUFBTVAsdUJBQXVCO0FBRzdCLE1BQU1kLG1DQUFvQztBQUMxQyxNQUFNQyx1Q0FBd0MsS0FBRUQsbUNBQWlDO0FBRWpGLE1BQU1YLHVCQUF1QjtBQUU3QixNQUFNZSw0Q0FBNkM7QUFFbkQsTUFBTUwsa0NBQW1DO0FBRXpDLE1BQU1NLHNDQUF1QztBQUU3QyxNQUFNSCx3Q0FBd0M7QUFDOUMsTUFBTUMsK0NBQStDc0QsT0FDMUR2RDtBQUVLLE1BQU1PLDBCQUEwQjtBQUNoQyxNQUFNTSx1QkFBdUI7QUFDN0IsTUFBTTRCLGtCQUFrQjtBQUN4QixNQUFNRixrQkFBa0I7QUFDeEIsTUFBTTlCLHFCQUFxQjtJQUNoQytDLE1BQU07SUFDTkMsZUFBZTtJQUNmQyxZQUFZO0lBQ1pDLFlBQVk7QUFDZDtBQUNPLE1BQU1uRCwwQkFBMEI7SUFDckNnRCxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2Q7QUFDTyxNQUFNakIsc0JBQXNCO0lBQUM7Q0FBTztBQUNwQyxNQUFNSSx1QkFBdUI7QUFFN0IsTUFBTUUsbUNBQW1DO0FBRXpDLE1BQU1aLG1CQUFtQjtJQUM5QmdCLFFBQVE7SUFDUkMsUUFBUTtBQUNWO0FBTU8sTUFBTXZDLDZCQUE2QjtJQUN4QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sTUFBTStCLHFCQUFxQixJQUFJZSxJQUFZO0lBQ2hEOUQ7SUFDQUk7SUFDQUw7SUFDQUU7Q0FDRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCBmcm9tICcuL21vZGVybi1icm93c2Vyc2xpc3QtdGFyZ2V0J1xuXG5leHBvcnQgeyBNT0RFUk5fQlJPV1NFUlNMSVNUX1RBUkdFVCB9XG5cbmV4cG9ydCB0eXBlIFZhbHVlT2Y8VD4gPSBSZXF1aXJlZDxUPltrZXlvZiBUXVxuXG5leHBvcnQgY29uc3QgQ09NUElMRVJfTkFNRVMgPSB7XG4gIGNsaWVudDogJ2NsaWVudCcsXG4gIHNlcnZlcjogJ3NlcnZlcicsXG4gIGVkZ2VTZXJ2ZXI6ICdlZGdlLXNlcnZlcicsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIENvbXBpbGVyTmFtZVZhbHVlcyA9IFZhbHVlT2Y8dHlwZW9mIENPTVBJTEVSX05BTUVTPlxuXG5leHBvcnQgY29uc3QgQ09NUElMRVJfSU5ERVhFUzoge1xuICBbY29tcGlsZXJLZXkgaW4gQ29tcGlsZXJOYW1lVmFsdWVzXTogbnVtYmVyXG59ID0ge1xuICBbQ09NUElMRVJfTkFNRVMuY2xpZW50XTogMCxcbiAgW0NPTVBJTEVSX05BTUVTLnNlcnZlcl06IDEsXG4gIFtDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXTogMixcbn0gYXMgY29uc3RcblxuZXhwb3J0IGNvbnN0IFVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFID0gJy9fbm90LWZvdW5kJ1xuZXhwb3J0IGNvbnN0IFVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFX0VOVFJZID0gYCR7VU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEV9L3BhZ2VgXG5leHBvcnQgY29uc3QgUEhBU0VfRVhQT1JUID0gJ3BoYXNlLWV4cG9ydCdcbmV4cG9ydCBjb25zdCBQSEFTRV9QUk9EVUNUSU9OX0JVSUxEID0gJ3BoYXNlLXByb2R1Y3Rpb24tYnVpbGQnXG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9TRVJWRVIgPSAncGhhc2UtcHJvZHVjdGlvbi1zZXJ2ZXInXG5leHBvcnQgY29uc3QgUEhBU0VfREVWRUxPUE1FTlRfU0VSVkVSID0gJ3BoYXNlLWRldmVsb3BtZW50LXNlcnZlcidcbmV4cG9ydCBjb25zdCBQSEFTRV9URVNUID0gJ3BoYXNlLXRlc3QnXG5leHBvcnQgY29uc3QgUEhBU0VfSU5GTyA9ICdwaGFzZS1pbmZvJ1xuZXhwb3J0IGNvbnN0IFBBR0VTX01BTklGRVNUID0gJ3BhZ2VzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgV0VCUEFDS19TVEFUUyA9ICd3ZWJwYWNrLXN0YXRzLmpzb24nXG5leHBvcnQgY29uc3QgQVBQX1BBVEhTX01BTklGRVNUID0gJ2FwcC1wYXRocy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIX1JPVVRFU19NQU5JRkVTVCA9ICdhcHAtcGF0aC1yb3V0ZXMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBCVUlMRF9NQU5JRkVTVCA9ICdidWlsZC1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9CVUlMRF9NQU5JRkVTVCA9ICdhcHAtYnVpbGQtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBGVU5DVElPTlNfQ09ORklHX01BTklGRVNUID0gJ2Z1bmN0aW9ucy1jb25maWctbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBTVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QgPSAnc3VicmVzb3VyY2UtaW50ZWdyaXR5LW1hbmlmZXN0J1xuZXhwb3J0IGNvbnN0IE5FWFRfRk9OVF9NQU5JRkVTVCA9ICduZXh0LWZvbnQtbWFuaWZlc3QnXG5leHBvcnQgY29uc3QgRVhQT1JUX01BUktFUiA9ICdleHBvcnQtbWFya2VyLmpzb24nXG5leHBvcnQgY29uc3QgRVhQT1JUX0RFVEFJTCA9ICdleHBvcnQtZGV0YWlsLmpzb24nXG5leHBvcnQgY29uc3QgUFJFUkVOREVSX01BTklGRVNUID0gJ3ByZXJlbmRlci1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFJPVVRFU19NQU5JRkVTVCA9ICdyb3V0ZXMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBJTUFHRVNfTUFOSUZFU1QgPSAnaW1hZ2VzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU0VSVkVSX0ZJTEVTX01BTklGRVNUID0gJ3JlcXVpcmVkLXNlcnZlci1maWxlcy5qc29uJ1xuZXhwb3J0IGNvbnN0IERFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QgPSAnX2RldlBhZ2VzTWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX01BTklGRVNUID0gJ21pZGRsZXdhcmUtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QgPVxuICAnX2NsaWVudE1pZGRsZXdhcmVNYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IERFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCA9ICdfZGV2TWlkZGxld2FyZU1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QgPSAncmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBTRVJWRVJfRElSRUNUT1JZID0gJ3NlcnZlcidcbmV4cG9ydCBjb25zdCBDT05GSUdfRklMRVMgPSBbXG4gICduZXh0LmNvbmZpZy5qcycsXG4gICduZXh0LmNvbmZpZy5tanMnLFxuICAnbmV4dC5jb25maWcudHMnLFxuXVxuZXhwb3J0IGNvbnN0IEJVSUxEX0lEX0ZJTEUgPSAnQlVJTERfSUQnXG5leHBvcnQgY29uc3QgQkxPQ0tFRF9QQUdFUyA9IFsnL19kb2N1bWVudCcsICcvX2FwcCcsICcvX2Vycm9yJ11cbmV4cG9ydCBjb25zdCBDTElFTlRfUFVCTElDX0ZJTEVTX1BBVEggPSAncHVibGljJ1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCA9ICdzdGF0aWMnXG5leHBvcnQgY29uc3QgU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUgPSAnX19ORVhUX0RST1BfQ0xJRU5UX0ZJTEVfXydcbmV4cG9ydCBjb25zdCBORVhUX0JVSUxUSU5fRE9DVU1FTlQgPSAnX19ORVhUX0JVSUxUSU5fRE9DVU1FTlRfXydcbmV4cG9ydCBjb25zdCBCQVJSRUxfT1BUSU1JWkFUSU9OX1BSRUZJWCA9ICdfX2JhcnJlbF9vcHRpbWl6ZV9fJ1xuXG4vLyBzZXJ2ZXIvW2VudHJ5XS9wYWdlX2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfUkVGRVJFTkNFX01BTklGRVNUID0gJ2NsaWVudC1yZWZlcmVuY2UtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdFxuZXhwb3J0IGNvbnN0IFNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QgPSAnc2VydmVyLXJlZmVyZW5jZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9taWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLWJ1aWxkLW1hbmlmZXN0J1xuLy8gc2VydmVyL21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBNSURETEVXQVJFX1JFQUNUX0xPQURBQkxFX01BTklGRVNUID1cbiAgJ21pZGRsZXdhcmUtcmVhY3QtbG9hZGFibGUtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvaW50ZXJjZXB0aW9uLXJvdXRlLXJld3JpdGUtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBJTlRFUkNFUFRJT05fUk9VVEVfUkVXUklURV9NQU5JRkVTVCA9XG4gICdpbnRlcmNlcHRpb24tcm91dGUtcmV3cml0ZS1tYW5pZmVzdCdcbi8vIHNlcnZlci9keW5hbWljLWNzcy1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IERZTkFNSUNfQ1NTX01BTklGRVNUID0gJ2R5bmFtaWMtY3NzLW1hbmlmZXN0J1xuXG4vLyBzdGF0aWMvcnVudGltZS9tYWluLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4gPSBgbWFpbmBcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAgPSBgJHtDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTn0tYXBwYFxuLy8gbmV4dCBpbnRlcm5hbCBjbGllbnQgY29tcG9uZW50cyBjaHVuayBmb3IgbGF5b3V0c1xuZXhwb3J0IGNvbnN0IEFQUF9DTElFTlRfSU5URVJOQUxTID0gJ2FwcC1wYWdlcy1pbnRlcm5hbHMnXG4vLyBzdGF0aWMvcnVudGltZS9yZWFjdC1yZWZyZXNoLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1JFQUNUX1JFRlJFU0ggPSBgcmVhY3QtcmVmcmVzaGBcbi8vIHN0YXRpYy9ydW50aW1lL2FtcC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAgPSBgYW1wYFxuLy8gc3RhdGljL3J1bnRpbWUvd2VicGFjay5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9XRUJQQUNLID0gYHdlYnBhY2tgXG4vLyBzdGF0aWMvcnVudGltZS9wb2x5ZmlsbHMuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTID0gJ3BvbHlmaWxscydcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCA9IFN5bWJvbChcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU1xuKVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUlVOVElNRV9XRUJQQUNLID0gJ3dlYnBhY2stcnVudGltZSdcbmV4cG9ydCBjb25zdCBFREdFX1JVTlRJTUVfV0VCUEFDSyA9ICdlZGdlLXJ1bnRpbWUtd2VicGFjaydcbmV4cG9ydCBjb25zdCBTVEFUSUNfUFJPUFNfSUQgPSAnX19OX1NTRydcbmV4cG9ydCBjb25zdCBTRVJWRVJfUFJPUFNfSUQgPSAnX19OX1NTUCdcbmV4cG9ydCBjb25zdCBERUZBVUxUX1NFUklGX0ZPTlQgPSB7XG4gIG5hbWU6ICdUaW1lcyBOZXcgUm9tYW4nLFxuICB4QXZnQ2hhcldpZHRoOiA4MjEsXG4gIGF6QXZnV2lkdGg6IDg1NC4zOTUzNDg4MzcyMDkzLFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IERFRkFVTFRfU0FOU19TRVJJRl9GT05UID0ge1xuICBuYW1lOiAnQXJpYWwnLFxuICB4QXZnQ2hhcldpZHRoOiA5MDQsXG4gIGF6QXZnV2lkdGg6IDkzNC41MTE2Mjc5MDY5NzY3LFxuICB1bml0c1BlckVtOiAyMDQ4LFxufVxuZXhwb3J0IGNvbnN0IFNUQVRJQ19TVEFUVVNfUEFHRVMgPSBbJy81MDAnXVxuZXhwb3J0IGNvbnN0IFRSQUNFX09VVFBVVF9WRVJTSU9OID0gMVxuLy8gaW4gYE1CYFxuZXhwb3J0IGNvbnN0IFRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUID0gNjAwMFxuXG5leHBvcnQgY29uc3QgUlNDX01PRFVMRV9UWVBFUyA9IHtcbiAgY2xpZW50OiAnY2xpZW50JyxcbiAgc2VydmVyOiAnc2VydmVyJyxcbn0gYXMgY29uc3RcblxuLy8gY29tcGFyaW5nXG4vLyBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL2VkZ2UtcnVudGltZVxuLy8gd2l0aFxuLy8gaHR0cHM6Ly9ub2RlanMub3JnL2RvY3MvbGF0ZXN0L2FwaS9nbG9iYWxzLmh0bWxcbmV4cG9ydCBjb25zdCBFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyA9IFtcbiAgJ2NsZWFySW1tZWRpYXRlJyxcbiAgJ3NldEltbWVkaWF0ZScsXG4gICdCcm9hZGNhc3RDaGFubmVsJyxcbiAgJ0J5dGVMZW5ndGhRdWV1aW5nU3RyYXRlZ3knLFxuICAnQ29tcHJlc3Npb25TdHJlYW0nLFxuICAnQ291bnRRdWV1aW5nU3RyYXRlZ3knLFxuICAnRGVjb21wcmVzc2lvblN0cmVhbScsXG4gICdEb21FeGNlcHRpb24nLFxuICAnTWVzc2FnZUNoYW5uZWwnLFxuICAnTWVzc2FnZUV2ZW50JyxcbiAgJ01lc3NhZ2VQb3J0JyxcbiAgJ1JlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXInLFxuICAnUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdCcsXG4gICdSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1RyYW5zZm9ybVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbiAgJ1dyaXRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXInLFxuXVxuXG5leHBvcnQgY29uc3QgU1lTVEVNX0VOVFJZUE9JTlRTID0gbmV3IFNldDxzdHJpbmc+KFtcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4sXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNILFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QLFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAsXG5dKVxuIl0sIm5hbWVzIjpbIkFQUF9CVUlMRF9NQU5JRkVTVCIsIkFQUF9DTElFTlRfSU5URVJOQUxTIiwiQVBQX1BBVEhTX01BTklGRVNUIiwiQVBQX1BBVEhfUk9VVEVTX01BTklGRVNUIiwiQkFSUkVMX09QVElNSVpBVElPTl9QUkVGSVgiLCJCTE9DS0VEX1BBR0VTIiwiQlVJTERfSURfRklMRSIsIkJVSUxEX01BTklGRVNUIiwiQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIIiwiQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUEFUSCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9BTVAiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTiIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOX0FQUCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFMiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTX1NZTUJPTCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNIIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1dFQlBBQ0siLCJDT01QSUxFUl9JTkRFWEVTIiwiQ09NUElMRVJfTkFNRVMiLCJDT05GSUdfRklMRVMiLCJERUZBVUxUX1JVTlRJTUVfV0VCUEFDSyIsIkRFRkFVTFRfU0FOU19TRVJJRl9GT05UIiwiREVGQVVMVF9TRVJJRl9GT05UIiwiREVWX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUIiwiREVWX0NMSUVOVF9QQUdFU19NQU5JRkVTVCIsIkRZTkFNSUNfQ1NTX01BTklGRVNUIiwiRURHRV9SVU5USU1FX1dFQlBBQ0siLCJFREdFX1VOU1VQUE9SVEVEX05PREVfQVBJUyIsIkVYUE9SVF9ERVRBSUwiLCJFWFBPUlRfTUFSS0VSIiwiRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCIsIklNQUdFU19NQU5JRkVTVCIsIklOVEVSQ0VQVElPTl9ST1VURV9SRVdSSVRFX01BTklGRVNUIiwiTUlERExFV0FSRV9CVUlMRF9NQU5JRkVTVCIsIk1JRERMRVdBUkVfTUFOSUZFU1QiLCJNSURETEVXQVJFX1JFQUNUX0xPQURBQkxFX01BTklGRVNUIiwiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJORVhUX0JVSUxUSU5fRE9DVU1FTlQiLCJORVhUX0ZPTlRfTUFOSUZFU1QiLCJQQUdFU19NQU5JRkVTVCIsIlBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiIsIlBIQVNFX0VYUE9SVCIsIlBIQVNFX0lORk8iLCJQSEFTRV9QUk9EVUNUSU9OX0JVSUxEIiwiUEhBU0VfUFJPRFVDVElPTl9TRVJWRVIiLCJQSEFTRV9URVNUIiwiUFJFUkVOREVSX01BTklGRVNUIiwiUkVBQ1RfTE9BREFCTEVfTUFOSUZFU1QiLCJST1VURVNfTUFOSUZFU1QiLCJSU0NfTU9EVUxFX1RZUEVTIiwiU0VSVkVSX0RJUkVDVE9SWSIsIlNFUlZFUl9GSUxFU19NQU5JRkVTVCIsIlNFUlZFUl9QUk9QU19JRCIsIlNFUlZFUl9SRUZFUkVOQ0VfTUFOSUZFU1QiLCJTVEFUSUNfUFJPUFNfSUQiLCJTVEFUSUNfU1RBVFVTX1BBR0VTIiwiU1RSSU5HX0xJVEVSQUxfRFJPUF9CVU5ETEUiLCJTVUJSRVNPVVJDRV9JTlRFR1JJVFlfTUFOSUZFU1QiLCJTWVNURU1fRU5UUllQT0lOVFMiLCJUUkFDRV9PVVRQVVRfVkVSU0lPTiIsIlRVUkJPUEFDS19DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIlRVUkJPX1RSQUNFX0RFRkFVTFRfTUVNT1JZX0xJTUlUIiwiVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEUiLCJVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSIsIldFQlBBQ0tfU1RBVFMiLCJjbGllbnQiLCJzZXJ2ZXIiLCJlZGdlU2VydmVyIiwiU3ltYm9sIiwibmFtZSIsInhBdmdDaGFyV2lkdGgiLCJhekF2Z1dpZHRoIiwidW5pdHNQZXJFbSIsIlNldCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/constants.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/encode-uri-path.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/encode-uri-path.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"encodeURIPath\", ({\n enumerable: true,\n get: function() {\n return encodeURIPath;\n }\n}));\nfunction encodeURIPath(file) {\n return file.split('/').map((p)=>encodeURIComponent(p)).join('/');\n} //# sourceMappingURL=encode-uri-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZW5jb2RlLXVyaS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBQWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxjQUFjQyxJQUFZO0lBQ3hDLE9BQU9BLEtBQ0pDLEtBQUssQ0FBQyxLQUNOQyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUMsbUJBQW1CRCxJQUM5QkUsSUFBSSxDQUFDO0FBQ1YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9zaGFyZWQvbGliL2VuY29kZS11cmktcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZW5jb2RlVVJJUGF0aChmaWxlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZpbGVcbiAgICAuc3BsaXQoJy8nKVxuICAgIC5tYXAoKHApID0+IGVuY29kZVVSSUNvbXBvbmVudChwKSlcbiAgICAuam9pbignLycpXG59XG4iXSwibmFtZXMiOlsiZW5jb2RlVVJJUGF0aCIsImZpbGUiLCJzcGxpdCIsIm1hcCIsInAiLCJlbmNvZGVVUklDb21wb25lbnQiLCJqb2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/encode-uri-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head.js ***! + \***************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n defaultHead: function() {\n return defaultHead;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/cjs/_interop_require_default.cjs\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"react/jsx-runtime\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"react\"));\nconst _sideeffect = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\nconst _ampcontextsharedruntime = __webpack_require__(/*! ./amp-context.shared-runtime */ \"./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js\");\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js\");\nconst _ampmode = __webpack_require__(/*! ./amp-mode */ \"./node_modules/next/dist/shared/lib/amp-mode.js\");\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }, \"charset\")\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }, \"viewport\"));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === _react.default.Fragment) {\n return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n 'name',\n 'httpEquiv',\n 'charSet',\n 'itemProp'\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (false) {}\n if (true) {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? '<script> tag with src=\"' + c.props['src'] + '\"' : \"inline <script>\";\n (0, _warnonce.warnOnce)(\"Do not add <script> tags using next/head (see \" + srcMessage + \"). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component\");\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n (0, _warnonce.warnOnce)('Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"' + c.props['href'] + '\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');\n }\n }\n return /*#__PURE__*/ _react.default.cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head(param) {\n let { children } = param;\n const ampState = (0, _react.useContext)(_ampcontextsharedruntime.AmpStateContext);\n const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampmode.isInAmpMode)(ampState),\n children: children\n });\n}\nconst _default = Head;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUF1TUEsT0FBbUI7ZUFBbkI7O0lBMUxnQkEsV0FBVztlQUFYQTs7Ozs7OzZFQVg0QjtpRkFDekI7cURBQ2E7NkRBQ0c7cUNBQ1A7c0NBQ0g7QUFNbEIsU0FBU0EsWUFBWUMsU0FBaUI7SUFBakJBLElBQUFBLGNBQUFBLEtBQUFBLEdBQUFBLFlBQVk7SUFDdEMsTUFBTUMsT0FBTztzQkFBQyxxQkFBQ0MsUUFBQUE7WUFBS0MsU0FBUTtXQUFZO0tBQWE7SUFDckQsSUFBSSxDQUFDSCxXQUFXO1FBQ2RDLEtBQUtHLElBQUksZUFDUCxxQkFBQ0YsUUFBQUE7WUFBS0csTUFBSztZQUFXQyxTQUFRO1dBQXlCO0lBRTNEO0lBQ0EsT0FBT0w7QUFDVDtBQUVBLFNBQVNNLGlCQUNQQyxJQUFvQyxFQUNwQ0MsS0FBMkM7SUFFM0MsOEZBQThGO0lBQzlGLElBQUksT0FBT0EsVUFBVSxZQUFZLE9BQU9BLFVBQVUsVUFBVTtRQUMxRCxPQUFPRDtJQUNUO0lBQ0Esa0NBQWtDO0lBQ2xDLElBQUlDLE1BQU1DLElBQUksS0FBS0MsT0FBQUEsT0FBSyxDQUFDQyxRQUFRLEVBQUU7UUFDakMsT0FBT0osS0FBS0ssTUFBTSxDQUNoQixPQUNBRixPQUFLLENBQUNHLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDTixNQUFNTyxLQUFLLENBQUNDLFFBQVEsRUFBRUMsTUFBTSxDQUNqRCxDQUVFQyxjQUNBQztZQUVBLElBQ0UsT0FBT0Esa0JBQWtCLFlBQ3pCLE9BQU9BLGtCQUFrQixVQUN6QjtnQkFDQSxPQUFPRDtZQUNUO1lBQ0EsT0FBT0EsYUFBYU4sTUFBTSxDQUFDTztRQUM3QixHQUNBLEVBQUU7SUFHUjtJQUNBLE9BQU9aLEtBQUtLLE1BQU0sQ0FBQ0o7QUFDckI7QUFFQSxNQUFNWSxZQUFZO0lBQUM7SUFBUTtJQUFhO0lBQVc7Q0FBVztBQUU5RDs7OztBQUlBLEdBQ0EsU0FBU0M7SUFDUCxNQUFNQyxPQUFPLElBQUlDO0lBQ2pCLE1BQU1DLE9BQU8sSUFBSUQ7SUFDakIsTUFBTUUsWUFBWSxJQUFJRjtJQUN0QixNQUFNRyxpQkFBc0QsQ0FBQztJQUU3RCxPQUFPLENBQUNDO1FBQ04sSUFBSUMsV0FBVztRQUNmLElBQUlDLFNBQVM7UUFFYixJQUFJRixFQUFFRyxHQUFHLElBQUksT0FBT0gsRUFBRUcsR0FBRyxLQUFLLFlBQVlILEVBQUVHLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLE9BQU8sR0FBRztZQUNoRUYsU0FBUztZQUNULE1BQU1DLE1BQU1ILEVBQUVHLEdBQUcsQ0FBQ0UsS0FBSyxDQUFDTCxFQUFFRyxHQUFHLENBQUNDLE9BQU8sQ0FBQyxPQUFPO1lBQzdDLElBQUlULEtBQUtXLEdBQUcsQ0FBQ0gsTUFBTTtnQkFDakJGLFdBQVc7WUFDYixPQUFPO2dCQUNMTixLQUFLWSxHQUFHLENBQUNKO1lBQ1g7UUFDRjtRQUVBLHdDQUF3QztRQUN4QyxPQUFRSCxFQUFFbEIsSUFBSTtZQUNaLEtBQUs7WUFDTCxLQUFLO2dCQUNILElBQUllLEtBQUtTLEdBQUcsQ0FBQ04sRUFBRWxCLElBQUksR0FBRztvQkFDcEJtQixXQUFXO2dCQUNiLE9BQU87b0JBQ0xKLEtBQUtVLEdBQUcsQ0FBQ1AsRUFBRWxCLElBQUk7Z0JBQ2pCO2dCQUNBO1lBQ0YsS0FBSztnQkFDSCxJQUFLLElBQUkwQixJQUFJLEdBQUdDLE1BQU1oQixVQUFVaUIsTUFBTSxFQUFFRixJQUFJQyxLQUFLRCxJQUFLO29CQUNwRCxNQUFNRyxXQUFXbEIsU0FBUyxDQUFDZSxFQUFFO29CQUM3QixJQUFJLENBQUNSLEVBQUVaLEtBQUssQ0FBQ3dCLGNBQWMsQ0FBQ0QsV0FBVztvQkFFdkMsSUFBSUEsYUFBYSxXQUFXO3dCQUMxQixJQUFJYixVQUFVUSxHQUFHLENBQUNLLFdBQVc7NEJBQzNCVixXQUFXO3dCQUNiLE9BQU87NEJBQ0xILFVBQVVTLEdBQUcsQ0FBQ0k7d0JBQ2hCO29CQUNGLE9BQU87d0JBQ0wsTUFBTUUsV0FBV2IsRUFBRVosS0FBSyxDQUFDdUIsU0FBUzt3QkFDbEMsTUFBTUcsYUFBYWYsY0FBYyxDQUFDWSxTQUFTLElBQUksSUFBSWY7d0JBQ25ELElBQUtlLENBQUFBLGFBQWEsVUFBVSxDQUFDVCxNQUFBQSxDQUFLLElBQU1ZLFdBQVdSLEdBQUcsQ0FBQ08sV0FBVzs0QkFDaEVaLFdBQVc7d0JBQ2IsT0FBTzs0QkFDTGEsV0FBV1AsR0FBRyxDQUFDTTs0QkFDZmQsY0FBYyxDQUFDWSxTQUFTLEdBQUdHO3dCQUM3QjtvQkFDRjtnQkFDRjtnQkFDQTtRQUNKO1FBRUEsT0FBT2I7SUFDVDtBQUNGO0FBRUE7OztDQUdDLEdBQ0QsU0FBU2MsaUJBQ1BDLG9CQUFvRCxFQUNwRDVCLEtBQVE7SUFFUixNQUFNLEVBQUVoQixTQUFTLEVBQUUsR0FBR2dCO0lBQ3RCLE9BQU80QixxQkFDSjFCLE1BQU0sQ0FBQ1gsa0JBQWtCLEVBQUUsRUFDM0JzQyxPQUFPLEdBQ1BoQyxNQUFNLENBQUNkLFlBQVlDLFdBQVc2QyxPQUFPLElBQ3JDQyxNQUFNLENBQUN4QixVQUNQdUIsT0FBTyxHQUNQRSxHQUFHLENBQUMsQ0FBQ0MsR0FBNEJaO1FBQ2hDLE1BQU1MLE1BQU1pQixFQUFFakIsR0FBRyxJQUFJSztRQUNyQixJQUNFYSxLQUVVakQsRUFDVixFQWtCRDtRQUNELElBQUlpRCxJQUFvQixFQUFvQjtZQUMxQyx5REFBeUQ7WUFDekQsSUFBSUQsRUFBRXRDLElBQUksS0FBSyxZQUFZc0MsRUFBRWhDLEtBQUssQ0FBQyxPQUFPLEtBQUssdUJBQXVCO2dCQUNwRSxNQUFNMkMsYUFBYVgsRUFBRWhDLEtBQUssQ0FBQyxNQUFNLEdBQzVCLDRCQUF5QmdDLEVBQUVoQyxLQUFLLENBQUMsTUFBTSxHQUFDLE1BQ3hDO2dCQUNMNEMsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyxtREFBZ0RELGFBQVc7WUFFaEUsT0FBTyxJQUFJWCxFQUFFdEMsSUFBSSxLQUFLLFVBQVVzQyxFQUFFaEMsS0FBSyxDQUFDLE1BQU0sS0FBSyxjQUFjO2dCQUMvRDRDLENBQUFBLEdBQUFBLFVBQUFBLFFBQUFBLEVBQ0csd0ZBQXFGWixFQUFFaEMsS0FBSyxDQUFDLE9BQU8sR0FBQztZQUUxRztRQUNGO1FBQ0EscUJBQU9MLE9BQUFBLE9BQUssQ0FBQytDLFlBQVksQ0FBQ1YsR0FBRztZQUFFakI7UUFBSTtJQUNyQztBQUNKO0FBRUE7OztDQUdDLEdBQ0QsU0FBUzhCLEtBQUssS0FBMkM7SUFBM0MsTUFBRTVDLFFBQVEsRUFBaUMsR0FBM0M7SUFDWixNQUFNNkMsV0FBV0MsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MseUJBQUFBLGVBQWU7SUFDM0MsTUFBTUMsY0FBY0YsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0csaUNBQUFBLGtCQUFrQjtJQUNqRCxxQkFDRSxxQkFBQ0MsWUFBQUEsT0FBTTtRQUNMQyx5QkFBeUJ6QjtRQUN6QnNCLGFBQWFBO1FBQ2JqRSxXQUFXcUUsQ0FBQUEsR0FBQUEsU0FBQUEsV0FBQUEsRUFBWVA7a0JBRXRCN0M7O0FBR1A7TUFFQSxXQUFlNEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9zaGFyZWQvbGliL2hlYWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCBFZmZlY3QgZnJvbSAnLi9zaWRlLWVmZmVjdCdcbmltcG9ydCB7IEFtcFN0YXRlQ29udGV4dCB9IGZyb20gJy4vYW1wLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBIZWFkTWFuYWdlckNvbnRleHQgfSBmcm9tICcuL2hlYWQtbWFuYWdlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgaXNJbkFtcE1vZGUgfSBmcm9tICcuL2FtcC1tb2RlJ1xuaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuL3V0aWxzL3dhcm4tb25jZSdcblxudHlwZSBXaXRoSW5BbXBNb2RlID0ge1xuICBpbkFtcE1vZGU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSk6IEpTWC5FbGVtZW50W10ge1xuICBjb25zdCBoZWFkID0gWzxtZXRhIGNoYXJTZXQ9XCJ1dGYtOFwiIGtleT1cImNoYXJzZXRcIiAvPl1cbiAgaWYgKCFpbkFtcE1vZGUpIHtcbiAgICBoZWFkLnB1c2goXG4gICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoXCIga2V5PVwidmlld3BvcnRcIiAvPlxuICAgIClcbiAgfVxuICByZXR1cm4gaGVhZFxufVxuXG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KFxuICBsaXN0OiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gIGNoaWxkOiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBudW1iZXIgfCBzdHJpbmdcbik6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PiB7XG4gIC8vIFJlYWN0IGNoaWxkcmVuIGNhbiBiZSBcInN0cmluZ1wiIG9yIFwibnVtYmVyXCIgaW4gdGhpcyBjYXNlIHdlIGlnbm9yZSB0aGVtIGZvciBiYWNrd2FyZHMgY29tcGF0XG4gIGlmICh0eXBlb2YgY2hpbGQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbGlzdFxuICB9XG4gIC8vIEFkZHMgc3VwcG9ydCBmb3IgUmVhY3QuRnJhZ21lbnRcbiAgaWYgKGNoaWxkLnR5cGUgPT09IFJlYWN0LkZyYWdtZW50KSB7XG4gICAgcmV0dXJuIGxpc3QuY29uY2F0KFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBAdHlwZXMvcmVhY3QgZG9lcyBub3QgcmVtb3ZlIGZyYWdtZW50cyBidXQgdGhpcyBjb3VsZCBhbHNvIHJldHVybiBSZWFjdFBvcnRhbFtdXG4gICAgICBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQHR5cGVzL3JlYWN0IGRvZXMgbm90IHJlbW92ZSBmcmFnbWVudHMgYnV0IHRoaXMgY291bGQgYWxzbyByZXR1cm4gUmVhY3RQb3J0YWxbXVxuICAgICAgICAoXG4gICAgICAgICAgZnJhZ21lbnRMaXN0OiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gICAgICAgICAgZnJhZ21lbnRDaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVtYmVyIHwgc3RyaW5nXG4gICAgICAgICk6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PiA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICAgICB0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ251bWJlcidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3RcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdC5jb25jYXQoZnJhZ21lbnRDaGlsZClcbiAgICAgICAgfSxcbiAgICAgICAgW11cbiAgICAgIClcbiAgICApXG4gIH1cbiAgcmV0dXJuIGxpc3QuY29uY2F0KGNoaWxkKVxufVxuXG5jb25zdCBNRVRBVFlQRVMgPSBbJ25hbWUnLCAnaHR0cEVxdWl2JywgJ2NoYXJTZXQnLCAnaXRlbVByb3AnXVxuXG4vKlxuIHJldHVybnMgYSBmdW5jdGlvbiBmb3IgZmlsdGVyaW5nIGhlYWQgY2hpbGQgZWxlbWVudHNcbiB3aGljaCBzaG91bGRuJ3QgYmUgZHVwbGljYXRlZCwgbGlrZSA8dGl0bGUvPlxuIEFsc28gYWRkcyBzdXBwb3J0IGZvciBkZWR1cGxpY2F0ZWQgYGtleWAgcHJvcGVydGllc1xuKi9cbmZ1bmN0aW9uIHVuaXF1ZSgpIHtcbiAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKVxuICBjb25zdCB0YWdzID0gbmV3IFNldCgpXG4gIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKVxuICBjb25zdCBtZXRhQ2F0ZWdvcmllczogeyBbbWV0YXR5cGU6IHN0cmluZ106IFNldDxzdHJpbmc+IH0gPSB7fVxuXG4gIHJldHVybiAoaDogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4pID0+IHtcbiAgICBsZXQgaXNVbmlxdWUgPSB0cnVlXG4gICAgbGV0IGhhc0tleSA9IGZhbHNlXG5cbiAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICBoYXNLZXkgPSB0cnVlXG4gICAgICBjb25zdCBrZXkgPSBoLmtleS5zbGljZShoLmtleS5pbmRleE9mKCckJykgKyAxKVxuICAgICAgaWYgKGtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAga2V5cy5hZGQoa2V5KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWZhdWx0LWNhc2VcbiAgICBzd2l0Y2ggKGgudHlwZSkge1xuICAgICAgY2FzZSAndGl0bGUnOlxuICAgICAgY2FzZSAnYmFzZSc6XG4gICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhZ3MuYWRkKGgudHlwZSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbWV0YSc6XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXVxuICAgICAgICAgIGlmICghaC5wcm9wcy5oYXNPd25Qcm9wZXJ0eShtZXRhdHlwZSkpIGNvbnRpbnVlXG5cbiAgICAgICAgICBpZiAobWV0YXR5cGUgPT09ICdjaGFyU2V0Jykge1xuICAgICAgICAgICAgaWYgKG1ldGFUeXBlcy5oYXMobWV0YXR5cGUpKSB7XG4gICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1ldGFUeXBlcy5hZGQobWV0YXR5cGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV1cbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBtZXRhQ2F0ZWdvcmllc1ttZXRhdHlwZV0gfHwgbmV3IFNldCgpXG4gICAgICAgICAgICBpZiAoKG1ldGF0eXBlICE9PSAnbmFtZScgfHwgIWhhc0tleSkgJiYgY2F0ZWdvcmllcy5oYXMoY2F0ZWdvcnkpKSB7XG4gICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNhdGVnb3JpZXMuYWRkKGNhdGVnb3J5KVxuICAgICAgICAgICAgICBtZXRhQ2F0ZWdvcmllc1ttZXRhdHlwZV0gPSBjYXRlZ29yaWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVW5pcXVlXG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGhlYWRDaGlsZHJlbkVsZW1lbnRzIExpc3Qgb2YgY2hpbGRyZW4gb2YgPEhlYWQ+XG4gKi9cbmZ1bmN0aW9uIHJlZHVjZUNvbXBvbmVudHM8VCBleHRlbmRzIHt9ICYgV2l0aEluQW1wTW9kZT4oXG4gIGhlYWRDaGlsZHJlbkVsZW1lbnRzOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gIHByb3BzOiBUXG4pIHtcbiAgY29uc3QgeyBpbkFtcE1vZGUgfSA9IHByb3BzXG4gIHJldHVybiBoZWFkQ2hpbGRyZW5FbGVtZW50c1xuICAgIC5yZWR1Y2Uob25seVJlYWN0RWxlbWVudCwgW10pXG4gICAgLnJldmVyc2UoKVxuICAgIC5jb25jYXQoZGVmYXVsdEhlYWQoaW5BbXBNb2RlKS5yZXZlcnNlKCkpXG4gICAgLmZpbHRlcih1bmlxdWUoKSlcbiAgICAucmV2ZXJzZSgpXG4gICAgLm1hcCgoYzogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4sIGk6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaVxuICAgICAgaWYgKFxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyAmJlxuICAgICAgICBwcm9jZXNzLmVudi5fX05FWFRfT1BUSU1JWkVfRk9OVFMgJiZcbiAgICAgICAgIWluQW1wTW9kZVxuICAgICAgKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjLnR5cGUgPT09ICdsaW5rJyAmJlxuICAgICAgICAgIGMucHJvcHNbJ2hyZWYnXSAmJlxuICAgICAgICAgIC8vIFRPRE8ocHJhdGVla2JoQCk6IFJlcGxhY2UgdGhpcyB3aXRoIGNvbnN0IGZyb20gYGNvbnN0YW50c2Agd2hlbiB0aGUgdHJlZSBzaGFraW5nIHdvcmtzLlxuICAgICAgICAgIFsnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MnLCAnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvJ10uc29tZShcbiAgICAgICAgICAgICh1cmwpID0+IGMucHJvcHNbJ2hyZWYnXS5zdGFydHNXaXRoKHVybClcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IG5ld1Byb3BzID0geyAuLi4oYy5wcm9wcyB8fCB7fSkgfVxuICAgICAgICAgIG5ld1Byb3BzWydkYXRhLWhyZWYnXSA9IG5ld1Byb3BzWydocmVmJ11cbiAgICAgICAgICBuZXdQcm9wc1snaHJlZiddID0gdW5kZWZpbmVkXG5cbiAgICAgICAgICAvLyBBZGQgdGhpcyBhdHRyaWJ1dGUgdG8gbWFrZSBpdCBlYXN5IHRvIGlkZW50aWZ5IG9wdGltaXplZCB0YWdzXG4gICAgICAgICAgbmV3UHJvcHNbJ2RhdGEtb3B0aW1pemVkLWZvbnRzJ10gPSB0cnVlXG5cbiAgICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGMsIG5ld1Byb3BzKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgLy8gb21pdCBKU09OLUxEIHN0cnVjdHVyZWQgZGF0YSBzbmlwcGV0cyBmcm9tIHRoZSB3YXJuaW5nXG4gICAgICAgIGlmIChjLnR5cGUgPT09ICdzY3JpcHQnICYmIGMucHJvcHNbJ3R5cGUnXSAhPT0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nKSB7XG4gICAgICAgICAgY29uc3Qgc3JjTWVzc2FnZSA9IGMucHJvcHNbJ3NyYyddXG4gICAgICAgICAgICA/IGA8c2NyaXB0PiB0YWcgd2l0aCBzcmM9XCIke2MucHJvcHNbJ3NyYyddfVwiYFxuICAgICAgICAgICAgOiBgaW5saW5lIDxzY3JpcHQ+YFxuICAgICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgYERvIG5vdCBhZGQgPHNjcmlwdD4gdGFncyB1c2luZyBuZXh0L2hlYWQgKHNlZSAke3NyY01lc3NhZ2V9KS4gVXNlIG5leHQvc2NyaXB0IGluc3RlYWQuIFxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tc2NyaXB0LXRhZ3MtaW4taGVhZC1jb21wb25lbnRgXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2UgaWYgKGMudHlwZSA9PT0gJ2xpbmsnICYmIGMucHJvcHNbJ3JlbCddID09PSAnc3R5bGVzaGVldCcpIHtcbiAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgIGBEbyBub3QgYWRkIHN0eWxlc2hlZXRzIHVzaW5nIG5leHQvaGVhZCAoc2VlIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIj4gdGFnIHdpdGggaHJlZj1cIiR7Yy5wcm9wc1snaHJlZiddfVwiKS4gVXNlIERvY3VtZW50IGluc3RlYWQuIFxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tc3R5bGVzaGVldHMtaW4taGVhZC1jb21wb25lbnRgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGMsIHsga2V5IH0pXG4gICAgfSlcbn1cblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpbmplY3RzIGVsZW1lbnRzIHRvIGA8aGVhZD5gIG9mIHlvdXIgcGFnZS5cbiAqIFRvIGF2b2lkIGR1cGxpY2F0ZWQgYHRhZ3NgIGluIGA8aGVhZD5gIHlvdSBjYW4gdXNlIHRoZSBga2V5YCBwcm9wZXJ0eSwgd2hpY2ggd2lsbCBtYWtlIHN1cmUgZXZlcnkgdGFnIGlzIG9ubHkgcmVuZGVyZWQgb25jZS5cbiAqL1xuZnVuY3Rpb24gSGVhZCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IGFtcFN0YXRlID0gdXNlQ29udGV4dChBbXBTdGF0ZUNvbnRleHQpXG4gIGNvbnN0IGhlYWRNYW5hZ2VyID0gdXNlQ29udGV4dChIZWFkTWFuYWdlckNvbnRleHQpXG4gIHJldHVybiAoXG4gICAgPEVmZmVjdFxuICAgICAgcmVkdWNlQ29tcG9uZW50c1RvU3RhdGU9e3JlZHVjZUNvbXBvbmVudHN9XG4gICAgICBoZWFkTWFuYWdlcj17aGVhZE1hbmFnZXJ9XG4gICAgICBpbkFtcE1vZGU9e2lzSW5BbXBNb2RlKGFtcFN0YXRlKX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9FZmZlY3Q+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgSGVhZFxuIl0sIm5hbWVzIjpbImRlZmF1bHRIZWFkIiwiaW5BbXBNb2RlIiwiaGVhZCIsIm1ldGEiLCJjaGFyU2V0IiwicHVzaCIsIm5hbWUiLCJjb250ZW50Iiwib25seVJlYWN0RWxlbWVudCIsImxpc3QiLCJjaGlsZCIsInR5cGUiLCJSZWFjdCIsIkZyYWdtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwicHJvcHMiLCJjaGlsZHJlbiIsInJlZHVjZSIsImZyYWdtZW50TGlzdCIsImZyYWdtZW50Q2hpbGQiLCJNRVRBVFlQRVMiLCJ1bmlxdWUiLCJrZXlzIiwiU2V0IiwidGFncyIsIm1ldGFUeXBlcyIsIm1ldGFDYXRlZ29yaWVzIiwiaCIsImlzVW5pcXVlIiwiaGFzS2V5Iiwia2V5IiwiaW5kZXhPZiIsInNsaWNlIiwiaGFzIiwiYWRkIiwiaSIsImxlbiIsImxlbmd0aCIsIm1ldGF0eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYXRlZ29yeSIsImNhdGVnb3JpZXMiLCJyZWR1Y2VDb21wb25lbnRzIiwiaGVhZENoaWxkcmVuRWxlbWVudHMiLCJyZXZlcnNlIiwiZmlsdGVyIiwibWFwIiwiYyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIl9fTkVYVF9PUFRJTUlaRV9GT05UUyIsInNvbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwibmV3UHJvcHMiLCJ1bmRlZmluZWQiLCJjbG9uZUVsZW1lbnQiLCJzcmNNZXNzYWdlIiwid2Fybk9uY2UiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJFZmZlY3QiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/is-plain-object.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\nfunction getObjectClassLabel(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isPlainObject(value) {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');\n} //# sourceMappingURL=is-plain-object.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFnQkEsbUJBQW1CO2VBQW5CQTs7SUFJQUMsYUFBYTtlQUFiQTs7O0FBSlQsU0FBU0Qsb0JBQW9CRSxLQUFVO0lBQzVDLE9BQU9DLE9BQU9DLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNKO0FBQ3hDO0FBRU8sU0FBU0QsY0FBY0MsS0FBVTtJQUN0QyxJQUFJRixvQkFBb0JFLFdBQVcsbUJBQW1CO1FBQ3BELE9BQU87SUFDVDtJQUVBLE1BQU1FLFlBQVlELE9BQU9JLGNBQWMsQ0FBQ0w7SUFFeEM7Ozs7Ozs7O0dBUUMsR0FDRCxPQUFPRSxjQUFjLFFBQVFBLFVBQVVJLGNBQWMsQ0FBQztBQUN4RCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSlcblxuICAvKipcbiAgICogdGhpcyB1c2VkIHRvIGJlIHByZXZpb3VzbHk6XG4gICAqXG4gICAqIGByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZWBcbiAgICpcbiAgICogYnV0IEVkZ2UgUnVudGltZSBleHBvc2UgT2JqZWN0IGZyb20gdm0sIGJlaW5nIHRoYXQga2luZCBvZiB0eXBlLWNoZWNraW5nIHdyb25nbHkgZmFpbC5cbiAgICpcbiAgICogSXQgd2FzIGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc2luY2UgaXQncyByZXNpbGllbnQgdG8gc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlLmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRPYmplY3RDbGFzc0xhYmVsIiwiaXNQbGFpbk9iamVjdCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJoYXNPd25Qcm9wZXJ0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/is-plain-object.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/is-thenable.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/is-thenable.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isThenable\", ({\n enumerable: true,\n get: function() {\n return isThenable;\n }\n}));\nfunction isThenable(promise) {\n return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function';\n} //# sourceMappingURL=is-thenable.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtdGhlbmFibGUuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0NBS0M7Ozs7OENBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFdBQ2RDLE9BQXVCO0lBRXZCLE9BQ0VBLFlBQVksUUFDWixPQUFPQSxZQUFZLFlBQ25CLFVBQVVBLFdBQ1YsT0FBT0EsUUFBUUMsSUFBSSxLQUFLO0FBRTVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvc2hhcmVkL2xpYi9pcy10aGVuYWJsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENoZWNrIHRvIHNlZSBpZiBhIHZhbHVlIGlzIFRoZW5hYmxlLlxuICpcbiAqIEBwYXJhbSBwcm9taXNlIHRoZSBtYXliZS10aGVuYWJsZSB2YWx1ZVxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgdmFsdWUgaXMgdGhlbmFibGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVGhlbmFibGU8VCA9IHVua25vd24+KFxuICBwcm9taXNlOiBQcm9taXNlPFQ+IHwgVFxuKTogcHJvbWlzZSBpcyBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIChcbiAgICBwcm9taXNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHByb21pc2UgPT09ICdvYmplY3QnICYmXG4gICAgJ3RoZW4nIGluIHByb21pc2UgJiZcbiAgICB0eXBlb2YgcHJvbWlzZS50aGVuID09PSAnZnVuY3Rpb24nXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJpc1RoZW5hYmxlIiwicHJvbWlzZSIsInRoZW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/is-thenable.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/modern-browserslist-target.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/modern-browserslist-target.js ***! + \*************************************************************************/ +/***/ ((module) => { + +"use strict"; +eval("// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS.\n// Keep file changes in sync with the corresponding `.d.ts` files.\n/**\n * These are the browser versions that support all of the following:\n * static import: https://caniuse.com/es6-module\n * dynamic import: https://caniuse.com/es6-module-dynamic-import\n * import.meta: https://caniuse.com/mdn-javascript_operators_import_meta\n */ \nconst MODERN_BROWSERSLIST_TARGET = [\n 'chrome 64',\n 'edge 79',\n 'firefox 67',\n 'opera 51',\n 'safari 12'\n];\nmodule.exports = MODERN_BROWSERSLIST_TARGET; //# sourceMappingURL=modern-browserslist-target.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiLCJtYXBwaW5ncyI6IkFBQUEsb0ZBQW9GO0FBQ3BGLGtFQUFrRTtBQUNsRTs7Ozs7Q0FLQztBQUNELE1BQU1BLDZCQUE2QjtJQUNqQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFREMsT0FBT0MsT0FBTyxHQUFHRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTm90ZTogVGhpcyBmaWxlIGlzIEpTIGJlY2F1c2UgaXQncyB1c2VkIGJ5IHRoZSB0YXNrZmlsZS1zd2MuanMgZmlsZSwgd2hpY2ggaXMgSlMuXG4vLyBLZWVwIGZpbGUgY2hhbmdlcyBpbiBzeW5jIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgYC5kLnRzYCBmaWxlcy5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBicm93c2VyIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBhbGwgb2YgdGhlIGZvbGxvd2luZzpcbiAqIHN0YXRpYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZVxuICogZHluYW1pYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZS1keW5hbWljLWltcG9ydFxuICogaW1wb3J0Lm1ldGE6IGh0dHBzOi8vY2FuaXVzZS5jb20vbWRuLWphdmFzY3JpcHRfb3BlcmF0b3JzX2ltcG9ydF9tZXRhXG4gKi9cbmNvbnN0IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUID0gW1xuICAnY2hyb21lIDY0JyxcbiAgJ2VkZ2UgNzknLFxuICAnZmlyZWZveCA2NycsXG4gICdvcGVyYSA1MScsXG4gICdzYWZhcmkgMTInLFxuXVxuXG5tb2R1bGUuZXhwb3J0cyA9IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUXG4iXSwibmFtZXMiOlsiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJtb2R1bGUiLCJleHBvcnRzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/modern-browserslist-target.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"denormalizePagePath\", ({\n enumerable: true,\n get: function() {\n return denormalizePagePath;\n }\n}));\nconst _utils = __webpack_require__(/*! ../router/utils */ \"./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _normalizepathsep = __webpack_require__(/*! ./normalize-path-sep */ \"./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\");\nfunction denormalizePagePath(page) {\n let _page = (0, _normalizepathsep.normalizePathSep)(page);\n return _page.startsWith('/index/') && !(0, _utils.isDynamicRoute)(_page) ? _page.slice(6) : _page !== '/index' ? _page : '/';\n} //# sourceMappingURL=denormalize-page-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQVdnQkE7OztlQUFBQTs7O21DQVhlOzhDQUNFO0FBVTFCLFNBQVNBLG9CQUFvQkMsSUFBWTtJQUM5QyxJQUFJQyxRQUFRQyxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCRjtJQUM3QixPQUFPQyxNQUFNRSxVQUFVLENBQUMsY0FBYyxDQUFDQyxDQUFBQSxHQUFBQSxPQUFBQSxjQUFBQSxFQUFlSCxTQUNsREEsTUFBTUksS0FBSyxDQUFDLEtBQ1pKLFVBQVUsV0FDUkEsUUFDQTtBQUNSIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZGVub3JtYWxpemUtcGFnZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vcm91dGVyL3V0aWxzJ1xuaW1wb3J0IHsgbm9ybWFsaXplUGF0aFNlcCB9IGZyb20gJy4vbm9ybWFsaXplLXBhdGgtc2VwJ1xuXG4vKipcbiAqIFBlcmZvcm1zIHRoZSBvcHBvc2l0ZSB0cmFuc2Zvcm1hdGlvbiBvZiBgbm9ybWFsaXplUGFnZVBhdGhgLiBOb3RlIHRoYXRcbiAqIHRoaXMgZnVuY3Rpb24gaXMgbm90IGlkZW1wb3RlbnQgZWl0aGVyIGluIGNhc2VzIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZVxuICogbGVhZGluZyBgL2luZGV4YCBmb3IgdGhlIHBhZ2UuIEV4YW1wbGVzOlxuICogIC0gYC9pbmRleGAgLT4gYC9gXG4gKiAgLSBgL2luZGV4L2Zvb2AgLT4gYC9mb29gXG4gKiAgLSBgL2luZGV4L2luZGV4YCAtPiBgL2luZGV4YFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVub3JtYWxpemVQYWdlUGF0aChwYWdlOiBzdHJpbmcpIHtcbiAgbGV0IF9wYWdlID0gbm9ybWFsaXplUGF0aFNlcChwYWdlKVxuICByZXR1cm4gX3BhZ2Uuc3RhcnRzV2l0aCgnL2luZGV4LycpICYmICFpc0R5bmFtaWNSb3V0ZShfcGFnZSlcbiAgICA/IF9wYWdlLnNsaWNlKDYpXG4gICAgOiBfcGFnZSAhPT0gJy9pbmRleCdcbiAgICAgID8gX3BhZ2VcbiAgICAgIDogJy8nXG59XG4iXSwibmFtZXMiOlsiZGVub3JtYWxpemVQYWdlUGF0aCIsInBhZ2UiLCJfcGFnZSIsIm5vcm1hbGl6ZVBhdGhTZXAiLCJzdGFydHNXaXRoIiwiaXNEeW5hbWljUm91dGUiLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction ensureLeadingSlash(path) {\n return path.startsWith('/') ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQW1CQyxJQUFZO0lBQzdDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQyxPQUFPRCxPQUFRLE1BQUdBO0FBQzNDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgbGVhZGluZyBzbGFzaC5cbiAqIElmIHRoZXJlIGlzIG5vdCBhIGxlYWRpbmcgc2xhc2gsIG9uZSBpcyBhZGRlZCwgb3RoZXJ3aXNlIGl0IGlzIG5vb3AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVMZWFkaW5nU2xhc2gocGF0aDogc3RyaW5nKSB7XG4gIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IHBhdGggOiBgLyR7cGF0aH1gXG59XG4iXSwibmFtZXMiOlsiZW5zdXJlTGVhZGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePagePath\", ({\n enumerable: true,\n get: function() {\n return normalizePagePath;\n }\n}));\nconst _ensureleadingslash = __webpack_require__(/*! ./ensure-leading-slash */ \"./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _utils = __webpack_require__(/*! ../router/utils */ \"./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _utils1 = __webpack_require__(/*! ../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nfunction normalizePagePath(page) {\n const normalized = /^\\/index(\\/|$)/.test(page) && !(0, _utils.isDynamicRoute)(page) ? \"/index\" + page : page === '/' ? '/index' : (0, _ensureleadingslash.ensureLeadingSlash)(page);\n if (true) {\n const { posix } = __webpack_require__(/*! path */ \"path\");\n const resolvedPage = posix.normalize(normalized);\n if (resolvedPage !== normalized) {\n throw new _utils1.NormalizeError(\"Requested and resolved page mismatch: \" + normalized + \" \" + resolvedPage);\n }\n }\n return normalized;\n} //# sourceMappingURL=normalize-page-path.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYWdlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7OztxREFhZ0JBOzs7ZUFBQUE7OztnREFibUI7bUNBQ0o7b0NBQ0E7QUFXeEIsU0FBU0Esa0JBQWtCQyxJQUFZO0lBQzVDLE1BQU1DLGFBQ0osaUJBQWlCQyxJQUFJLENBQUNGLFNBQVMsQ0FBQ0csQ0FBQUEsR0FBQUEsT0FBQUEsY0FBQUEsRUFBZUgsUUFDMUMsV0FBUUEsT0FDVEEsU0FBUyxNQUNQLFdBQ0FJLENBQUFBLEdBQUFBLG9CQUFBQSxrQkFBQUEsRUFBbUJKO0lBRTNCLElBQUlLLElBQW1DLEVBQUU7UUFDdkMsTUFBTSxFQUFFRyxLQUFLLEVBQUUsR0FBR0MsbUJBQU9BLENBQUMsa0JBQU07UUFDaEMsTUFBTUMsZUFBZUYsTUFBTUcsU0FBUyxDQUFDVjtRQUNyQyxJQUFJUyxpQkFBaUJULFlBQVk7WUFDL0IsTUFBTSxJQUFJVyxRQUFBQSxjQUFjLENBQ3JCLDJDQUF3Q1gsYUFBVyxNQUFHUztRQUUzRDtJQUNGO0lBRUEsT0FBT1Q7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYWdlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZW5zdXJlTGVhZGluZ1NsYXNoIH0gZnJvbSAnLi9lbnN1cmUtbGVhZGluZy1zbGFzaCdcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vcm91dGVyL3V0aWxzJ1xuaW1wb3J0IHsgTm9ybWFsaXplRXJyb3IgfSBmcm9tICcuLi91dGlscydcblxuLyoqXG4gKiBUYWtlcyBhIHBhZ2UgYW5kIHRyYW5zZm9ybXMgaXQgaW50byBpdHMgZmlsZSBjb3VudGVycGFydCBlbnN1cmluZyB0aGF0IHRoZVxuICogb3V0cHV0IGlzIG5vcm1hbGl6ZWQuIE5vdGUgdGhpcyBmdW5jdGlvbiBpcyBub3QgaWRlbXBvdGVudCBiZWNhdXNlIGEgcGFnZVxuICogYC9pbmRleGAgY2FuIGJlIHJlZmVyZW5jaW5nIGAvaW5kZXgvaW5kZXguanNgIGFuZCBgL2luZGV4L2luZGV4YCBjb3VsZCBiZVxuICogcmVmZXJlbmNpbmcgYC9pbmRleC9pbmRleC9pbmRleC5qc2AuIEV4YW1wbGVzOlxuICogIC0gYC9gIC0+IGAvaW5kZXhgXG4gKiAgLSBgL2luZGV4L2Zvb2AgLT4gYC9pbmRleC9pbmRleC9mb29gXG4gKiAgLSBgL2luZGV4YCAtPiBgL2luZGV4L2luZGV4YFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGFnZVBhdGgocGFnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9XG4gICAgL15cXC9pbmRleChcXC98JCkvLnRlc3QocGFnZSkgJiYgIWlzRHluYW1pY1JvdXRlKHBhZ2UpXG4gICAgICA/IGAvaW5kZXgke3BhZ2V9YFxuICAgICAgOiBwYWdlID09PSAnLydcbiAgICAgICAgPyAnL2luZGV4J1xuICAgICAgICA6IGVuc3VyZUxlYWRpbmdTbGFzaChwYWdlKVxuXG4gIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJykge1xuICAgIGNvbnN0IHsgcG9zaXggfSA9IHJlcXVpcmUoJ3BhdGgnKVxuICAgIGNvbnN0IHJlc29sdmVkUGFnZSA9IHBvc2l4Lm5vcm1hbGl6ZShub3JtYWxpemVkKVxuICAgIGlmIChyZXNvbHZlZFBhZ2UgIT09IG5vcm1hbGl6ZWQpIHtcbiAgICAgIHRocm93IG5ldyBOb3JtYWxpemVFcnJvcihcbiAgICAgICAgYFJlcXVlc3RlZCBhbmQgcmVzb2x2ZWQgcGFnZSBtaXNtYXRjaDogJHtub3JtYWxpemVkfSAke3Jlc29sdmVkUGFnZX1gXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5vcm1hbGl6ZWRcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVQYWdlUGF0aCIsInBhZ2UiLCJub3JtYWxpemVkIiwidGVzdCIsImlzRHluYW1pY1JvdXRlIiwiZW5zdXJlTGVhZGluZ1NsYXNoIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsInBvc2l4IiwicmVxdWlyZSIsInJlc29sdmVkUGFnZSIsIm5vcm1hbGl6ZSIsIk5vcm1hbGl6ZUVycm9yIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js": +/*!***************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("/**\n * For a given page path, this function ensures that there is no backslash\n * escaping slashes in the path. Example:\n * - `foo\\/bar\\/baz` -> `foo/bar/baz`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathSep\", ({\n enumerable: true,\n get: function() {\n return normalizePathSep;\n }\n}));\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n} //# sourceMappingURL=normalize-path-sep.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYXRoLXNlcC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7OztDQUlDOzs7O29EQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxpQkFBaUJDLElBQVk7SUFDM0MsT0FBT0EsS0FBS0MsT0FBTyxDQUFDLE9BQU87QUFDN0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGF0aC1zZXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIG5vIGJhY2tzbGFzaFxuICogZXNjYXBpbmcgc2xhc2hlcyBpbiB0aGUgcGF0aC4gRXhhbXBsZTpcbiAqICAtIGBmb29cXC9iYXJcXC9iYXpgIC0+IGBmb28vYmFyL2JhemBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGhTZXAocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplUGF0aFNlcCIsInBhdGgiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/app-paths.js": +/*!*********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.js ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.ensureLeadingSlash)(route.split('/').reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0, _segment.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, ''));\n}\nfunction normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, '$1');\n} //# sourceMappingURL=app-paths.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFzQmdCQSxnQkFBZ0I7ZUFBaEJBOztJQW1DQUMsZUFBZTtlQUFmQTs7O2dEQXpEbUI7cUNBQ0o7QUFxQnhCLFNBQVNELGlCQUFpQkUsS0FBYTtJQUM1QyxPQUFPQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0JBQUFBLEVBQ0xELE1BQU1FLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDakQsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNaLE9BQU9EO1FBQ1Q7UUFFQSxzQkFBc0I7UUFDdEIsSUFBSUksQ0FBQUEsR0FBQUEsU0FBQUEsY0FBQUEsRUFBZUgsVUFBVTtZQUMzQixPQUFPRDtRQUNUO1FBRUEsaUNBQWlDO1FBQ2pDLElBQUlDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSztZQUN0QixPQUFPRDtRQUNUO1FBRUEsdURBQXVEO1FBQ3ZELElBQ0dDLENBQUFBLFlBQVksVUFBVUEsWUFBWSxRQUFNLElBQ3pDQyxVQUFVQyxTQUFTRSxNQUFNLEdBQUcsR0FDNUI7WUFDQSxPQUFPTDtRQUNUO1FBRUEsT0FBVUEsV0FBUyxNQUFHQztJQUN4QixHQUFHO0FBRVA7QUFNTyxTQUFTTixnQkFBZ0JXLEdBQVc7SUFDekMsT0FBT0EsSUFBSUMsT0FBTyxDQUNoQixlQUNBO0FBR0oiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnN1cmVMZWFkaW5nU2xhc2ggfSBmcm9tICcuLi8uLi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gnXG5pbXBvcnQgeyBpc0dyb3VwU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlZ21lbnQnXG5cbi8qKlxuICogTm9ybWFsaXplcyBhbiBhcHAgcm91dGUgc28gaXQgcmVwcmVzZW50cyB0aGUgYWN0dWFsIHJlcXVlc3QgcGF0aC4gRXNzZW50aWFsbHlcbiAqIHBlcmZvcm1pbmcgdGhlIGZvbGxvd2luZyB0cmFuc2Zvcm1hdGlvbnM6XG4gKlxuICogLSBgLyhkYXNoYm9hcmQpL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC8oZGFzaGJvYXJkKS9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcGFnZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvYWNjb3VudC9wYWdlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvcGFnZWAgdG8gYC9gXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3JvdXRlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC8oZGFzaGJvYXJkKS9hY2NvdW50L3JvdXRlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvdXNlci9baWRdL3JvdXRlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3JvdXRlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvcm91dGVgIHRvIGAvYFxuICogLSBgL2AgdG8gYC9gXG4gKlxuICogQHBhcmFtIHJvdXRlIHRoZSBhcHAgcm91dGUgdG8gbm9ybWFsaXplXG4gKiBAcmV0dXJucyB0aGUgbm9ybWFsaXplZCBwYXRobmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQXBwUGF0aChyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiBlbnN1cmVMZWFkaW5nU2xhc2goXG4gICAgcm91dGUuc3BsaXQoJy8nKS5yZWR1Y2UoKHBhdGhuYW1lLCBzZWdtZW50LCBpbmRleCwgc2VnbWVudHMpID0+IHtcbiAgICAgIC8vIEVtcHR5IHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgaWYgKCFzZWdtZW50KSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBHcm91cHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoaXNHcm91cFNlZ21lbnQoc2VnbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIFBhcmFsbGVsIHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgaWYgKHNlZ21lbnRbMF0gPT09ICdAJykge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gVGhlIGxhc3Qgc2VnbWVudCAoaWYgaXQncyBhIGxlYWYpIHNob3VsZCBiZSBpZ25vcmVkLlxuICAgICAgaWYgKFxuICAgICAgICAoc2VnbWVudCA9PT0gJ3BhZ2UnIHx8IHNlZ21lbnQgPT09ICdyb3V0ZScpICYmXG4gICAgICAgIGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGggLSAxXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBgJHtwYXRobmFtZX0vJHtzZWdtZW50fWBcbiAgICB9LCAnJylcbiAgKVxufVxuXG4vKipcbiAqIFN0cmlwcyB0aGUgYC5yc2NgIGV4dGVuc2lvbiBpZiBpdCdzIGluIHRoZSBwYXRobmFtZS5cbiAqIFNpbmNlIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBvbiBmdWxsIHVybHMgaXQgY2hlY2tzIGA/YCBmb3Igc2VhcmNoUGFyYW1zIGhhbmRsaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUnNjVVJMKHVybDogc3RyaW5nKSB7XG4gIHJldHVybiB1cmwucmVwbGFjZShcbiAgICAvXFwucnNjKCR8XFw/KS8sXG4gICAgLy8gJDEgZW5zdXJlcyBgP2AgaXMgcHJlc2VydmVkXG4gICAgJyQxJ1xuICApXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplQXBwUGF0aCIsIm5vcm1hbGl6ZVJzY1VSTCIsInJvdXRlIiwiZW5zdXJlTGVhZGluZ1NsYXNoIiwic3BsaXQiLCJyZWR1Y2UiLCJwYXRobmFtZSIsInNlZ21lbnQiLCJpbmRleCIsInNlZ21lbnRzIiwiaXNHcm91cFNlZ21lbnQiLCJsZW5ndGgiLCJ1cmwiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/index.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return _sortedroutes.getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return _sortedroutes.getSortedRoutes;\n },\n isDynamicRoute: function() {\n return _isdynamic.isDynamicRoute;\n }\n});\nconst _sortedroutes = __webpack_require__(/*! ./sorted-routes */ \"./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\");\nconst _isdynamic = __webpack_require__(/*! ./is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\"); //# sourceMappingURL=index.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUEwQkEscUJBQXFCO2VBQXJCQSxjQUFBQSxxQkFBcUI7O0lBQXRDQyxlQUFlO2VBQWZBLGNBQUFBLGVBQWU7O0lBQ2ZDLGNBQWM7ZUFBZEEsV0FBQUEsY0FBYzs7OzBDQURnQzt1Q0FDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGdldFNvcnRlZFJvdXRlcywgZ2V0U29ydGVkUm91dGVPYmplY3RzIH0gZnJvbSAnLi9zb3J0ZWQtcm91dGVzJ1xuZXhwb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tICcuL2lzLWR5bmFtaWMnXG4iXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVPYmplY3RzIiwiZ2V0U29ydGVkUm91dGVzIiwiaXNEeW5hbWljUm91dGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isDynamicRoute\", ({\n enumerable: true,\n get: function() {\n return isDynamicRoute;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ../../../../server/lib/interception-routes */ \"./node_modules/next/dist/server/lib/interception-routes.js\");\n// Identify /[param]/ in route string\nconst TEST_ROUTE = /\\/\\[[^/]+?\\](?=\\/|$)/;\nfunction isDynamicRoute(route) {\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(route)) {\n route = (0, _interceptionroutes.extractInterceptionRouteInformation)(route).interceptedRoute;\n }\n return TEST_ROUTE.test(route);\n} //# sourceMappingURL=is-dynamic.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFRZ0JBOzs7ZUFBQUE7OztnREFMVDtBQUVQLHFDQUFxQztBQUNyQyxNQUFNQyxhQUFhO0FBRVosU0FBU0QsZUFBZUUsS0FBYTtJQUMxQyxJQUFJQyxDQUFBQSxHQUFBQSxvQkFBQUEsMEJBQUFBLEVBQTJCRCxRQUFRO1FBQ3JDQSxRQUFRRSxDQUFBQSxHQUFBQSxvQkFBQUEsbUNBQUFBLEVBQW9DRixPQUFPRyxnQkFBZ0I7SUFDckU7SUFFQSxPQUFPSixXQUFXSyxJQUFJLENBQUNKO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1keW5hbWljLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uLFxuICBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2xpYi9pbnRlcmNlcHRpb24tcm91dGVzJ1xuXG4vLyBJZGVudGlmeSAvW3BhcmFtXS8gaW4gcm91dGUgc3RyaW5nXG5jb25zdCBURVNUX1JPVVRFID0gL1xcL1xcW1teL10rP1xcXSg/PVxcL3wkKS9cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRHluYW1pY1JvdXRlKHJvdXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHJvdXRlKSkge1xuICAgIHJvdXRlID0gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24ocm91dGUpLmludGVyY2VwdGVkUm91dGVcbiAgfVxuXG4gIHJldHVybiBURVNUX1JPVVRFLnRlc3Qocm91dGUpXG59XG4iXSwibmFtZXMiOlsiaXNEeW5hbWljUm91dGUiLCJURVNUX1JPVVRFIiwicm91dGUiLCJpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCIsImV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsInRlc3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return getSortedRoutes;\n }\n});\nclass UrlNode {\n insert(urlPath) {\n this._insert(urlPath.split('/').filter(Boolean), [], false);\n }\n smoosh() {\n return this._smoosh();\n }\n _smoosh(prefix) {\n if (prefix === void 0) prefix = '/';\n const childrenPaths = [\n ...this.children.keys()\n ].sort();\n if (this.slugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[]'), 1);\n }\n if (this.restSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[...]'), 1);\n }\n if (this.optionalRestSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[[...]]'), 1);\n }\n const routes = childrenPaths.map((c)=>this.children.get(c)._smoosh(\"\" + prefix + c + \"/\")).reduce((prev, curr)=>[\n ...prev,\n ...curr\n ], []);\n if (this.slugName !== null) {\n routes.push(...this.children.get('[]')._smoosh(prefix + \"[\" + this.slugName + \"]/\"));\n }\n if (!this.placeholder) {\n const r = prefix === '/' ? '/' : prefix.slice(0, -1);\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot define a route with the same specificity as a optional catch-all route (\"' + r + '\" and \"' + r + \"[[...\" + this.optionalRestSlugName + ']]\").');\n }\n routes.unshift(r);\n }\n if (this.restSlugName !== null) {\n routes.push(...this.children.get('[...]')._smoosh(prefix + \"[...\" + this.restSlugName + \"]/\"));\n }\n if (this.optionalRestSlugName !== null) {\n routes.push(...this.children.get('[[...]]')._smoosh(prefix + \"[[...\" + this.optionalRestSlugName + \"]]/\"));\n }\n return routes;\n }\n _insert(urlPaths, slugNames, isCatchAll) {\n if (urlPaths.length === 0) {\n this.placeholder = false;\n return;\n }\n if (isCatchAll) {\n throw new Error(\"Catch-all must be the last part of the URL.\");\n }\n // The next segment in the urlPaths list\n let nextSegment = urlPaths[0];\n // Check if the segment matches `[something]`\n if (nextSegment.startsWith('[') && nextSegment.endsWith(']')) {\n // Strip `[` and `]`, leaving only `something`\n let segmentName = nextSegment.slice(1, -1);\n let isOptional = false;\n if (segmentName.startsWith('[') && segmentName.endsWith(']')) {\n // Strip optional `[` and `]`, leaving only `something`\n segmentName = segmentName.slice(1, -1);\n isOptional = true;\n }\n if (segmentName.startsWith('…')) {\n throw new Error(\"Detected a three-dot character ('…') at ('\" + segmentName + \"'). Did you mean ('...')?\");\n }\n if (segmentName.startsWith('...')) {\n // Strip `...`, leaving only `something`\n segmentName = segmentName.substring(3);\n isCatchAll = true;\n }\n if (segmentName.startsWith('[') || segmentName.endsWith(']')) {\n throw new Error(\"Segment names may not start or end with extra brackets ('\" + segmentName + \"').\");\n }\n if (segmentName.startsWith('.')) {\n throw new Error(\"Segment names may not start with erroneous periods ('\" + segmentName + \"').\");\n }\n function handleSlug(previousSlug, nextSlug) {\n if (previousSlug !== null) {\n // If the specific segment already has a slug but the slug is not `something`\n // This prevents collisions like:\n // pages/[post]/index.js\n // pages/[id]/index.js\n // Because currently multiple dynamic params on the same segment level are not supported\n if (previousSlug !== nextSlug) {\n // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment.\n throw new Error(\"You cannot use different slug names for the same dynamic path ('\" + previousSlug + \"' !== '\" + nextSlug + \"').\");\n }\n }\n slugNames.forEach((slug)=>{\n if (slug === nextSlug) {\n throw new Error('You cannot have the same slug name \"' + nextSlug + '\" repeat within a single dynamic path');\n }\n if (slug.replace(/\\W/g, '') === nextSegment.replace(/\\W/g, '')) {\n throw new Error('You cannot have the slug names \"' + slug + '\" and \"' + nextSlug + '\" differ only by non-word symbols within a single dynamic path');\n }\n });\n slugNames.push(nextSlug);\n }\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw new Error('You cannot use both an required and optional catch-all route at the same level (\"[...' + this.restSlugName + ']\" and \"' + urlPaths[0] + '\" ).');\n }\n handleSlug(this.optionalRestSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.optionalRestSlugName = segmentName;\n // nextSegment is overwritten to [[...]] so that it can later be sorted specifically\n nextSegment = '[[...]]';\n } else {\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot use both an optional and required catch-all route at the same level (\"[[...' + this.optionalRestSlugName + ']]\" and \"' + urlPaths[0] + '\").');\n }\n handleSlug(this.restSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.restSlugName = segmentName;\n // nextSegment is overwritten to [...] so that it can later be sorted specifically\n nextSegment = '[...]';\n }\n } else {\n if (isOptional) {\n throw new Error('Optional route parameters are not yet supported (\"' + urlPaths[0] + '\").');\n }\n handleSlug(this.slugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.slugName = segmentName;\n // nextSegment is overwritten to [] so that it can later be sorted specifically\n nextSegment = '[]';\n }\n }\n // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode\n if (!this.children.has(nextSegment)) {\n this.children.set(nextSegment, new UrlNode());\n }\n this.children.get(nextSegment)._insert(urlPaths.slice(1), slugNames, isCatchAll);\n }\n constructor(){\n this.placeholder = true;\n this.children = new Map();\n this.slugName = null;\n this.restSlugName = null;\n this.optionalRestSlugName = null;\n }\n}\nfunction getSortedRoutes(normalizedPages) {\n // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment\n // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js\n // Only 1 dynamic segment per nesting level\n // So in the case that is test/integration/dynamic-routing it'll be this:\n // pages/[post]/comments.js\n // pages/blog/[post]/comment/[id].js\n // Both are fine because `pages/[post]` and `pages/blog` are on the same level\n // So in this case `UrlNode` created here has `this.slugName === 'post'`\n // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities\n // Instead what has to be passed through is the upwards path's dynamic names\n const root = new UrlNode();\n // Here the `root` gets injected multiple paths, and insert will break them up into sublevels\n normalizedPages.forEach((pagePath)=>root.insert(pagePath));\n // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority\n return root.smoosh();\n}\nfunction getSortedRouteObjects(objects, getter) {\n // We're assuming here that all the pathnames are unique, that way we can\n // sort the list and use the index as the key.\n const indexes = {};\n const pathnames = [];\n for(let i = 0; i < objects.length; i++){\n const pathname = getter(objects[i]);\n indexes[pathname] = i;\n pathnames[i] = pathname;\n }\n // Sort the pathnames.\n const sorted = getSortedRoutes(pathnames);\n // Map the sorted pathnames back to the original objects using the new sorted\n // index.\n return sorted.map((pathname)=>objects[indexes[pathname]]);\n} //# sourceMappingURL=sorted-routes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3NvcnRlZC1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBaU9nQkEscUJBQXFCO2VBQXJCQTs7SUF0QkFDLGVBQWU7ZUFBZkE7OztBQTNNaEIsTUFBTUM7SUFPSkMsT0FBT0MsT0FBZSxFQUFRO1FBQzVCLElBQUksQ0FBQ0MsT0FBTyxDQUFDRCxRQUFRRSxLQUFLLENBQUMsS0FBS0MsTUFBTSxDQUFDQyxVQUFVLEVBQUUsRUFBRTtJQUN2RDtJQUVBQyxTQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQ0MsT0FBTztJQUNyQjtJQUVRQSxRQUFRQyxNQUFvQixFQUFZO1FBQWhDQSxJQUFBQSxXQUFBQSxLQUFBQSxHQUFBQSxTQUFpQjtRQUMvQixNQUFNQyxnQkFBZ0I7ZUFBSSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSTtTQUFHLENBQUNDLElBQUk7UUFDcEQsSUFBSSxJQUFJLENBQUNDLFFBQVEsS0FBSyxNQUFNO1lBQzFCSixjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxPQUFPO1FBQ3BEO1FBQ0EsSUFBSSxJQUFJLENBQUNDLFlBQVksS0FBSyxNQUFNO1lBQzlCUCxjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxVQUFVO1FBQ3ZEO1FBQ0EsSUFBSSxJQUFJLENBQUNFLG9CQUFvQixLQUFLLE1BQU07WUFDdENSLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLFlBQVk7UUFDekQ7UUFFQSxNQUFNRyxTQUFTVCxjQUNaVSxHQUFHLENBQUMsQ0FBQ0MsSUFBTSxJQUFJLENBQUNWLFFBQVEsQ0FBQ1csR0FBRyxDQUFDRCxHQUFJYixPQUFPLENBQUUsS0FBRUMsU0FBU1ksSUFBRSxNQUN2REUsTUFBTSxDQUFDLENBQUNDLE1BQU1DLE9BQVM7bUJBQUlEO21CQUFTQzthQUFLLEVBQUUsRUFBRTtRQUVoRCxJQUFJLElBQUksQ0FBQ1gsUUFBUSxLQUFLLE1BQU07WUFDMUJLLE9BQU9PLElBQUksSUFDTixJQUFJLENBQUNmLFFBQVEsQ0FBQ1csR0FBRyxDQUFDLE1BQU9kLE9BQU8sQ0FBSUMsU0FBTyxNQUFHLElBQUksQ0FBQ0ssUUFBUSxHQUFDO1FBRW5FO1FBRUEsSUFBSSxDQUFDLElBQUksQ0FBQ2EsV0FBVyxFQUFFO1lBQ3JCLE1BQU1DLElBQUluQixXQUFXLE1BQU0sTUFBTUEsT0FBT29CLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDbEQsSUFBSSxJQUFJLENBQUNYLG9CQUFvQixJQUFJLE1BQU07Z0JBQ3JDLE1BQU0sSUFBSVksTUFDUCx5RkFBc0ZGLElBQUUsWUFBU0EsSUFBRSxVQUFPLElBQUksQ0FBQ1Ysb0JBQW9CLEdBQUM7WUFFekk7WUFFQUMsT0FBT1ksT0FBTyxDQUFDSDtRQUNqQjtRQUVBLElBQUksSUFBSSxDQUFDWCxZQUFZLEtBQUssTUFBTTtZQUM5QkUsT0FBT08sSUFBSSxJQUNOLElBQUksQ0FBQ2YsUUFBUSxDQUNiVyxHQUFHLENBQUMsU0FDSmQsT0FBTyxDQUFJQyxTQUFPLFNBQU0sSUFBSSxDQUFDUSxZQUFZLEdBQUM7UUFFakQ7UUFFQSxJQUFJLElBQUksQ0FBQ0Msb0JBQW9CLEtBQUssTUFBTTtZQUN0Q0MsT0FBT08sSUFBSSxJQUNOLElBQUksQ0FBQ2YsUUFBUSxDQUNiVyxHQUFHLENBQUMsV0FDSmQsT0FBTyxDQUFJQyxTQUFPLFVBQU8sSUFBSSxDQUFDUyxvQkFBb0IsR0FBQztRQUUxRDtRQUVBLE9BQU9DO0lBQ1Q7SUFFUWhCLFFBQ042QixRQUFrQixFQUNsQkMsU0FBbUIsRUFDbkJDLFVBQW1CLEVBQ2I7UUFDTixJQUFJRixTQUFTRyxNQUFNLEtBQUssR0FBRztZQUN6QixJQUFJLENBQUNSLFdBQVcsR0FBRztZQUNuQjtRQUNGO1FBRUEsSUFBSU8sWUFBWTtZQUNkLE1BQU0sSUFBSUosTUFBTztRQUNuQjtRQUVBLHdDQUF3QztRQUN4QyxJQUFJTSxjQUFjSixRQUFRLENBQUMsRUFBRTtRQUU3Qiw2Q0FBNkM7UUFDN0MsSUFBSUksWUFBWUMsVUFBVSxDQUFDLFFBQVFELFlBQVlFLFFBQVEsQ0FBQyxNQUFNO1lBQzVELDhDQUE4QztZQUM5QyxJQUFJQyxjQUFjSCxZQUFZUCxLQUFLLENBQUMsR0FBRyxDQUFDO1lBRXhDLElBQUlXLGFBQWE7WUFDakIsSUFBSUQsWUFBWUYsVUFBVSxDQUFDLFFBQVFFLFlBQVlELFFBQVEsQ0FBQyxNQUFNO2dCQUM1RCx1REFBdUQ7Z0JBQ3ZEQyxjQUFjQSxZQUFZVixLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUNwQ1csYUFBYTtZQUNmO1lBRUEsSUFBSUQsWUFBWUYsVUFBVSxDQUFDLE1BQU07Z0JBQy9CLE1BQU0sSUFBSVAsTUFDUCwrQ0FBNENTLGNBQVk7WUFFN0Q7WUFFQSxJQUFJQSxZQUFZRixVQUFVLENBQUMsUUFBUTtnQkFDakMsd0NBQXdDO2dCQUN4Q0UsY0FBY0EsWUFBWUUsU0FBUyxDQUFDO2dCQUNwQ1AsYUFBYTtZQUNmO1lBRUEsSUFBSUssWUFBWUYsVUFBVSxDQUFDLFFBQVFFLFlBQVlELFFBQVEsQ0FBQyxNQUFNO2dCQUM1RCxNQUFNLElBQUlSLE1BQ1AsOERBQTJEUyxjQUFZO1lBRTVFO1lBRUEsSUFBSUEsWUFBWUYsVUFBVSxDQUFDLE1BQU07Z0JBQy9CLE1BQU0sSUFBSVAsTUFDUCwwREFBdURTLGNBQVk7WUFFeEU7WUFFQSxTQUFTRyxXQUFXQyxZQUEyQixFQUFFQyxRQUFnQjtnQkFDL0QsSUFBSUQsaUJBQWlCLE1BQU07b0JBQ3pCLDZFQUE2RTtvQkFDN0UsaUNBQWlDO29CQUNqQyx3QkFBd0I7b0JBQ3hCLHNCQUFzQjtvQkFDdEIsd0ZBQXdGO29CQUN4RixJQUFJQSxpQkFBaUJDLFVBQVU7d0JBQzdCLHdIQUF3SDt3QkFDeEgsTUFBTSxJQUFJZCxNQUNQLHFFQUFrRWEsZUFBYSxZQUFTQyxXQUFTO29CQUV0RztnQkFDRjtnQkFFQVgsVUFBVVksT0FBTyxDQUFDLENBQUNDO29CQUNqQixJQUFJQSxTQUFTRixVQUFVO3dCQUNyQixNQUFNLElBQUlkLE1BQ1AseUNBQXNDYyxXQUFTO29CQUVwRDtvQkFFQSxJQUFJRSxLQUFLQyxPQUFPLENBQUMsT0FBTyxRQUFRWCxZQUFZVyxPQUFPLENBQUMsT0FBTyxLQUFLO3dCQUM5RCxNQUFNLElBQUlqQixNQUNQLHFDQUFrQ2dCLE9BQUssWUFBU0YsV0FBUztvQkFFOUQ7Z0JBQ0Y7Z0JBRUFYLFVBQVVQLElBQUksQ0FBQ2tCO1lBQ2pCO1lBRUEsSUFBSVYsWUFBWTtnQkFDZCxJQUFJTSxZQUFZO29CQUNkLElBQUksSUFBSSxDQUFDdkIsWUFBWSxJQUFJLE1BQU07d0JBQzdCLE1BQU0sSUFBSWEsTUFDUCwwRkFBdUYsSUFBSSxDQUFDYixZQUFZLEdBQUMsYUFBVWUsUUFBUSxDQUFDLEVBQUUsR0FBQztvQkFFcEk7b0JBRUFVLFdBQVcsSUFBSSxDQUFDeEIsb0JBQW9CLEVBQUVxQjtvQkFDdEMsNkRBQTZEO29CQUM3RCxJQUFJLENBQUNyQixvQkFBb0IsR0FBR3FCO29CQUM1QixvRkFBb0Y7b0JBQ3BGSCxjQUFjO2dCQUNoQixPQUFPO29CQUNMLElBQUksSUFBSSxDQUFDbEIsb0JBQW9CLElBQUksTUFBTTt3QkFDckMsTUFBTSxJQUFJWSxNQUNQLDJGQUF3RixJQUFJLENBQUNaLG9CQUFvQixHQUFDLGNBQVdjLFFBQVEsQ0FBQyxFQUFFLEdBQUM7b0JBRTlJO29CQUVBVSxXQUFXLElBQUksQ0FBQ3pCLFlBQVksRUFBRXNCO29CQUM5Qiw2REFBNkQ7b0JBQzdELElBQUksQ0FBQ3RCLFlBQVksR0FBR3NCO29CQUNwQixrRkFBa0Y7b0JBQ2xGSCxjQUFjO2dCQUNoQjtZQUNGLE9BQU87Z0JBQ0wsSUFBSUksWUFBWTtvQkFDZCxNQUFNLElBQUlWLE1BQ1AsdURBQW9ERSxRQUFRLENBQUMsRUFBRSxHQUFDO2dCQUVyRTtnQkFDQVUsV0FBVyxJQUFJLENBQUM1QixRQUFRLEVBQUV5QjtnQkFDMUIsNkRBQTZEO2dCQUM3RCxJQUFJLENBQUN6QixRQUFRLEdBQUd5QjtnQkFDaEIsK0VBQStFO2dCQUMvRUgsY0FBYztZQUNoQjtRQUNGO1FBRUEsaUZBQWlGO1FBQ2pGLElBQUksQ0FBQyxJQUFJLENBQUN6QixRQUFRLENBQUNxQyxHQUFHLENBQUNaLGNBQWM7WUFDbkMsSUFBSSxDQUFDekIsUUFBUSxDQUFDc0MsR0FBRyxDQUFDYixhQUFhLElBQUlwQztRQUNyQztRQUVBLElBQUksQ0FBQ1csUUFBUSxDQUNWVyxHQUFHLENBQUNjLGFBQ0pqQyxPQUFPLENBQUM2QixTQUFTSCxLQUFLLENBQUMsSUFBSUksV0FBV0M7SUFDM0M7O2FBdk1BUCxXQUFBQSxHQUF1QjthQUN2QmhCLFFBQUFBLEdBQWlDLElBQUl1QzthQUNyQ3BDLFFBQUFBLEdBQTBCO2FBQzFCRyxZQUFBQSxHQUE4QjthQUM5QkMsb0JBQUFBLEdBQXNDOztBQW9NeEM7QUFFTyxTQUFTbkIsZ0JBQ2RvRCxlQUFzQztJQUV0QyxrRkFBa0Y7SUFDbEYsNEVBQTRFO0lBQzVFLDJDQUEyQztJQUUzQyx5RUFBeUU7SUFDekUsMkJBQTJCO0lBQzNCLG9DQUFvQztJQUNwQyw4RUFBOEU7SUFDOUUsd0VBQXdFO0lBQ3hFLGdIQUFnSDtJQUNoSCw0RUFBNEU7SUFDNUUsTUFBTUMsT0FBTyxJQUFJcEQ7SUFFakIsNkZBQTZGO0lBQzdGbUQsZ0JBQWdCTixPQUFPLENBQUMsQ0FBQ1EsV0FBYUQsS0FBS25ELE1BQU0sQ0FBQ29EO0lBQ2xELDRHQUE0RztJQUM1RyxPQUFPRCxLQUFLN0MsTUFBTTtBQUNwQjtBQUVPLFNBQVNULHNCQUNkd0QsT0FBWSxFQUNaQyxNQUEwQjtJQUUxQix5RUFBeUU7SUFDekUsOENBQThDO0lBQzlDLE1BQU1DLFVBQWtDLENBQUM7SUFDekMsTUFBTUMsWUFBc0IsRUFBRTtJQUM5QixJQUFLLElBQUlDLElBQUksR0FBR0EsSUFBSUosUUFBUW5CLE1BQU0sRUFBRXVCLElBQUs7UUFDdkMsTUFBTUMsV0FBV0osT0FBT0QsT0FBTyxDQUFDSSxFQUFFO1FBQ2xDRixPQUFPLENBQUNHLFNBQVMsR0FBR0Q7UUFDcEJELFNBQVMsQ0FBQ0MsRUFBRSxHQUFHQztJQUNqQjtJQUVBLHNCQUFzQjtJQUN0QixNQUFNQyxTQUFTN0QsZ0JBQWdCMEQ7SUFFL0IsNkVBQTZFO0lBQzdFLFNBQVM7SUFDVCxPQUFPRyxPQUFPeEMsR0FBRyxDQUFDLENBQUN1QyxXQUFhTCxPQUFPLENBQUNFLE9BQU8sQ0FBQ0csU0FBUyxDQUFDO0FBQzVEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9zb3J0ZWQtcm91dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFVybE5vZGUge1xuICBwbGFjZWhvbGRlcjogYm9vbGVhbiA9IHRydWVcbiAgY2hpbGRyZW46IE1hcDxzdHJpbmcsIFVybE5vZGU+ID0gbmV3IE1hcCgpXG4gIHNsdWdOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuICByZXN0U2x1Z05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gIG9wdGlvbmFsUmVzdFNsdWdOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuXG4gIGluc2VydCh1cmxQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnNlcnQodXJsUGF0aC5zcGxpdCgnLycpLmZpbHRlcihCb29sZWFuKSwgW10sIGZhbHNlKVxuICB9XG5cbiAgc21vb3NoKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc21vb3NoKClcbiAgfVxuXG4gIHByaXZhdGUgX3Ntb29zaChwcmVmaXg6IHN0cmluZyA9ICcvJyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjaGlsZHJlblBhdGhzID0gWy4uLnRoaXMuY2hpbGRyZW4ua2V5cygpXS5zb3J0KClcbiAgICBpZiAodGhpcy5zbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgY2hpbGRyZW5QYXRocy5zcGxpY2UoY2hpbGRyZW5QYXRocy5pbmRleE9mKCdbXScpLCAxKVxuICAgIH1cbiAgICBpZiAodGhpcy5yZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZignWy4uLl0nKSwgMSlcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZignW1suLi5dXScpLCAxKVxuICAgIH1cblxuICAgIGNvbnN0IHJvdXRlcyA9IGNoaWxkcmVuUGF0aHNcbiAgICAgIC5tYXAoKGMpID0+IHRoaXMuY2hpbGRyZW4uZ2V0KGMpIS5fc21vb3NoKGAke3ByZWZpeH0ke2N9L2ApKVxuICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSlcblxuICAgIGlmICh0aGlzLnNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICByb3V0ZXMucHVzaChcbiAgICAgICAgLi4udGhpcy5jaGlsZHJlbi5nZXQoJ1tdJykhLl9zbW9vc2goYCR7cHJlZml4fVske3RoaXMuc2x1Z05hbWV9XS9gKVxuICAgICAgKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgY29uc3QgciA9IHByZWZpeCA9PT0gJy8nID8gJy8nIDogcHJlZml4LnNsaWNlKDAsIC0xKVxuICAgICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFlvdSBjYW5ub3QgZGVmaW5lIGEgcm91dGUgd2l0aCB0aGUgc2FtZSBzcGVjaWZpY2l0eSBhcyBhIG9wdGlvbmFsIGNhdGNoLWFsbCByb3V0ZSAoXCIke3J9XCIgYW5kIFwiJHtyfVtbLi4uJHt0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lfV1dXCIpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICByb3V0ZXMudW5zaGlmdChyKVxuICAgIH1cblxuICAgIGlmICh0aGlzLnJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgcm91dGVzLnB1c2goXG4gICAgICAgIC4uLnRoaXMuY2hpbGRyZW5cbiAgICAgICAgICAuZ2V0KCdbLi4uXScpIVxuICAgICAgICAgIC5fc21vb3NoKGAke3ByZWZpeH1bLi4uJHt0aGlzLnJlc3RTbHVnTmFtZX1dL2ApXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIHJvdXRlcy5wdXNoKFxuICAgICAgICAuLi50aGlzLmNoaWxkcmVuXG4gICAgICAgICAgLmdldCgnW1suLi5dXScpIVxuICAgICAgICAgIC5fc21vb3NoKGAke3ByZWZpeH1bWy4uLiR7dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZX1dXS9gKVxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiByb3V0ZXNcbiAgfVxuXG4gIHByaXZhdGUgX2luc2VydChcbiAgICB1cmxQYXRoczogc3RyaW5nW10sXG4gICAgc2x1Z05hbWVzOiBzdHJpbmdbXSxcbiAgICBpc0NhdGNoQWxsOiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGlmICh1cmxQYXRocy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBmYWxzZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzQ2F0Y2hBbGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2F0Y2gtYWxsIG11c3QgYmUgdGhlIGxhc3QgcGFydCBvZiB0aGUgVVJMLmApXG4gICAgfVxuXG4gICAgLy8gVGhlIG5leHQgc2VnbWVudCBpbiB0aGUgdXJsUGF0aHMgbGlzdFxuICAgIGxldCBuZXh0U2VnbWVudCA9IHVybFBhdGhzWzBdXG5cbiAgICAvLyBDaGVjayBpZiB0aGUgc2VnbWVudCBtYXRjaGVzIGBbc29tZXRoaW5nXWBcbiAgICBpZiAobmV4dFNlZ21lbnQuc3RhcnRzV2l0aCgnWycpICYmIG5leHRTZWdtZW50LmVuZHNXaXRoKCddJykpIHtcbiAgICAgIC8vIFN0cmlwIGBbYCBhbmQgYF1gLCBsZWF2aW5nIG9ubHkgYHNvbWV0aGluZ2BcbiAgICAgIGxldCBzZWdtZW50TmFtZSA9IG5leHRTZWdtZW50LnNsaWNlKDEsIC0xKVxuXG4gICAgICBsZXQgaXNPcHRpb25hbCA9IGZhbHNlXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnWycpICYmIHNlZ21lbnROYW1lLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgLy8gU3RyaXAgb3B0aW9uYWwgYFtgIGFuZCBgXWAsIGxlYXZpbmcgb25seSBgc29tZXRoaW5nYFxuICAgICAgICBzZWdtZW50TmFtZSA9IHNlZ21lbnROYW1lLnNsaWNlKDEsIC0xKVxuICAgICAgICBpc09wdGlvbmFsID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgn4oCmJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBEZXRlY3RlZCBhIHRocmVlLWRvdCBjaGFyYWN0ZXIgKCfigKYnKSBhdCAoJyR7c2VnbWVudE5hbWV9JykuIERpZCB5b3UgbWVhbiAoJy4uLicpP2BcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnLi4uJykpIHtcbiAgICAgICAgLy8gU3RyaXAgYC4uLmAsIGxlYXZpbmcgb25seSBgc29tZXRoaW5nYFxuICAgICAgICBzZWdtZW50TmFtZSA9IHNlZ21lbnROYW1lLnN1YnN0cmluZygzKVxuICAgICAgICBpc0NhdGNoQWxsID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnWycpIHx8IHNlZ21lbnROYW1lLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBTZWdtZW50IG5hbWVzIG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggZXh0cmEgYnJhY2tldHMgKCcke3NlZ21lbnROYW1lfScpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgU2VnbWVudCBuYW1lcyBtYXkgbm90IHN0YXJ0IHdpdGggZXJyb25lb3VzIHBlcmlvZHMgKCcke3NlZ21lbnROYW1lfScpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVTbHVnKHByZXZpb3VzU2x1Zzogc3RyaW5nIHwgbnVsbCwgbmV4dFNsdWc6IHN0cmluZykge1xuICAgICAgICBpZiAocHJldmlvdXNTbHVnICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIHNwZWNpZmljIHNlZ21lbnQgYWxyZWFkeSBoYXMgYSBzbHVnIGJ1dCB0aGUgc2x1ZyBpcyBub3QgYHNvbWV0aGluZ2BcbiAgICAgICAgICAvLyBUaGlzIHByZXZlbnRzIGNvbGxpc2lvbnMgbGlrZTpcbiAgICAgICAgICAvLyBwYWdlcy9bcG9zdF0vaW5kZXguanNcbiAgICAgICAgICAvLyBwYWdlcy9baWRdL2luZGV4LmpzXG4gICAgICAgICAgLy8gQmVjYXVzZSBjdXJyZW50bHkgbXVsdGlwbGUgZHluYW1pYyBwYXJhbXMgb24gdGhlIHNhbWUgc2VnbWVudCBsZXZlbCBhcmUgbm90IHN1cHBvcnRlZFxuICAgICAgICAgIGlmIChwcmV2aW91c1NsdWcgIT09IG5leHRTbHVnKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIHNlZW1zIHRvIGJlIGNvbmZ1c2luZyBmb3IgdXNlcnMsIG5lZWRzIGFuIGVycm9yIGxpbmssIHRoZSBkZXNjcmlwdGlvbiBjYW4gYmUgYmFzZWQgb24gYWJvdmUgY29tbWVudC5cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGRpZmZlcmVudCBzbHVnIG5hbWVzIGZvciB0aGUgc2FtZSBkeW5hbWljIHBhdGggKCcke3ByZXZpb3VzU2x1Z30nICE9PSAnJHtuZXh0U2x1Z30nKS5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2x1Z05hbWVzLmZvckVhY2goKHNsdWcpID0+IHtcbiAgICAgICAgICBpZiAoc2x1ZyA9PT0gbmV4dFNsdWcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgaGF2ZSB0aGUgc2FtZSBzbHVnIG5hbWUgXCIke25leHRTbHVnfVwiIHJlcGVhdCB3aXRoaW4gYSBzaW5nbGUgZHluYW1pYyBwYXRoYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzbHVnLnJlcGxhY2UoL1xcVy9nLCAnJykgPT09IG5leHRTZWdtZW50LnJlcGxhY2UoL1xcVy9nLCAnJykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgaGF2ZSB0aGUgc2x1ZyBuYW1lcyBcIiR7c2x1Z31cIiBhbmQgXCIke25leHRTbHVnfVwiIGRpZmZlciBvbmx5IGJ5IG5vbi13b3JkIHN5bWJvbHMgd2l0aGluIGEgc2luZ2xlIGR5bmFtaWMgcGF0aGBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgc2x1Z05hbWVzLnB1c2gobmV4dFNsdWcpXG4gICAgICB9XG5cbiAgICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICAgIGlmIChpc09wdGlvbmFsKSB7XG4gICAgICAgICAgaWYgKHRoaXMucmVzdFNsdWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGJvdGggYW4gcmVxdWlyZWQgYW5kIG9wdGlvbmFsIGNhdGNoLWFsbCByb3V0ZSBhdCB0aGUgc2FtZSBsZXZlbCAoXCJbLi4uJHt0aGlzLnJlc3RTbHVnTmFtZX1dXCIgYW5kIFwiJHt1cmxQYXRoc1swXX1cIiApLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVTbHVnKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUsIHNlZ21lbnROYW1lKVxuICAgICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcbiAgICAgICAgICB0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lID0gc2VnbWVudE5hbWVcbiAgICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbWy4uLl1dIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICBuZXh0U2VnbWVudCA9ICdbWy4uLl1dJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGJvdGggYW4gb3B0aW9uYWwgYW5kIHJlcXVpcmVkIGNhdGNoLWFsbCByb3V0ZSBhdCB0aGUgc2FtZSBsZXZlbCAoXCJbWy4uLiR7dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZX1dXVwiIGFuZCBcIiR7dXJsUGF0aHNbMF19XCIpLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVTbHVnKHRoaXMucmVzdFNsdWdOYW1lLCBzZWdtZW50TmFtZSlcbiAgICAgICAgICAvLyBzbHVnTmFtZSBpcyBrZXB0IGFzIGl0IGNhbiBvbmx5IGJlIG9uZSBwYXJ0aWN1bGFyIHNsdWdOYW1lXG4gICAgICAgICAgdGhpcy5yZXN0U2x1Z05hbWUgPSBzZWdtZW50TmFtZVxuICAgICAgICAgIC8vIG5leHRTZWdtZW50IGlzIG92ZXJ3cml0dGVuIHRvIFsuLi5dIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICBuZXh0U2VnbWVudCA9ICdbLi4uXSdcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzT3B0aW9uYWwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgT3B0aW9uYWwgcm91dGUgcGFyYW1ldGVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgKFwiJHt1cmxQYXRoc1swXX1cIikuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBoYW5kbGVTbHVnKHRoaXMuc2x1Z05hbWUsIHNlZ21lbnROYW1lKVxuICAgICAgICAvLyBzbHVnTmFtZSBpcyBrZXB0IGFzIGl0IGNhbiBvbmx5IGJlIG9uZSBwYXJ0aWN1bGFyIHNsdWdOYW1lXG4gICAgICAgIHRoaXMuc2x1Z05hbWUgPSBzZWdtZW50TmFtZVxuICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbXSBzbyB0aGF0IGl0IGNhbiBsYXRlciBiZSBzb3J0ZWQgc3BlY2lmaWNhbGx5XG4gICAgICAgIG5leHRTZWdtZW50ID0gJ1tdJ1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoaXMgVXJsTm9kZSBkb2Vzbid0IGhhdmUgdGhlIG5leHRTZWdtZW50IHlldCB3ZSBjcmVhdGUgYSBuZXcgY2hpbGQgVXJsTm9kZVxuICAgIGlmICghdGhpcy5jaGlsZHJlbi5oYXMobmV4dFNlZ21lbnQpKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuLnNldChuZXh0U2VnbWVudCwgbmV3IFVybE5vZGUoKSlcbiAgICB9XG5cbiAgICB0aGlzLmNoaWxkcmVuXG4gICAgICAuZ2V0KG5leHRTZWdtZW50KSFcbiAgICAgIC5faW5zZXJ0KHVybFBhdGhzLnNsaWNlKDEpLCBzbHVnTmFtZXMsIGlzQ2F0Y2hBbGwpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNvcnRlZFJvdXRlcyhcbiAgbm9ybWFsaXplZFBhZ2VzOiBSZWFkb25seUFycmF5PHN0cmluZz5cbik6IHN0cmluZ1tdIHtcbiAgLy8gRmlyc3QgdGhlIFVybE5vZGUgaXMgY3JlYXRlZCwgYW5kIGV2ZXJ5IFVybE5vZGUgY2FuIGhhdmUgb25seSAxIGR5bmFtaWMgc2VnbWVudFxuICAvLyBFZyB5b3UgY2FuJ3QgaGF2ZSBwYWdlcy9bcG9zdF0vYWJjLmpzIGFuZCBwYWdlcy9baGVsbG9dL3NvbWV0aGluZy1lbHNlLmpzXG4gIC8vIE9ubHkgMSBkeW5hbWljIHNlZ21lbnQgcGVyIG5lc3RpbmcgbGV2ZWxcblxuICAvLyBTbyBpbiB0aGUgY2FzZSB0aGF0IGlzIHRlc3QvaW50ZWdyYXRpb24vZHluYW1pYy1yb3V0aW5nIGl0J2xsIGJlIHRoaXM6XG4gIC8vIHBhZ2VzL1twb3N0XS9jb21tZW50cy5qc1xuICAvLyBwYWdlcy9ibG9nL1twb3N0XS9jb21tZW50L1tpZF0uanNcbiAgLy8gQm90aCBhcmUgZmluZSBiZWNhdXNlIGBwYWdlcy9bcG9zdF1gIGFuZCBgcGFnZXMvYmxvZ2AgYXJlIG9uIHRoZSBzYW1lIGxldmVsXG4gIC8vIFNvIGluIHRoaXMgY2FzZSBgVXJsTm9kZWAgY3JlYXRlZCBoZXJlIGhhcyBgdGhpcy5zbHVnTmFtZSA9PT0gJ3Bvc3QnYFxuICAvLyBBbmQgc2luY2UgeW91ciBQUiBwYXNzZWQgdGhyb3VnaCBgc2x1Z05hbWVgIGFzIGFuIGFycmF5IGJhc2ljYWxseSBpdCdkIGluY2x1ZGluZyBpdCBpbiB0b28gbWFueSBwb3NzaWJpbGl0aWVzXG4gIC8vIEluc3RlYWQgd2hhdCBoYXMgdG8gYmUgcGFzc2VkIHRocm91Z2ggaXMgdGhlIHVwd2FyZHMgcGF0aCdzIGR5bmFtaWMgbmFtZXNcbiAgY29uc3Qgcm9vdCA9IG5ldyBVcmxOb2RlKClcblxuICAvLyBIZXJlIHRoZSBgcm9vdGAgZ2V0cyBpbmplY3RlZCBtdWx0aXBsZSBwYXRocywgYW5kIGluc2VydCB3aWxsIGJyZWFrIHRoZW0gdXAgaW50byBzdWJsZXZlbHNcbiAgbm9ybWFsaXplZFBhZ2VzLmZvckVhY2goKHBhZ2VQYXRoKSA9PiByb290Lmluc2VydChwYWdlUGF0aCkpXG4gIC8vIFNtb29zaCB3aWxsIHRoZW4gc29ydCB0aG9zZSBzdWJsZXZlbHMgdXAgdG8gdGhlIHBvaW50IHdoZXJlIHlvdSBnZXQgdGhlIGNvcnJlY3Qgcm91dGUgZGVmaW5pdGlvbiBwcmlvcml0eVxuICByZXR1cm4gcm9vdC5zbW9vc2goKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U29ydGVkUm91dGVPYmplY3RzPFQ+KFxuICBvYmplY3RzOiBUW10sXG4gIGdldHRlcjogKG9iajogVCkgPT4gc3RyaW5nXG4pOiBUW10ge1xuICAvLyBXZSdyZSBhc3N1bWluZyBoZXJlIHRoYXQgYWxsIHRoZSBwYXRobmFtZXMgYXJlIHVuaXF1ZSwgdGhhdCB3YXkgd2UgY2FuXG4gIC8vIHNvcnQgdGhlIGxpc3QgYW5kIHVzZSB0aGUgaW5kZXggYXMgdGhlIGtleS5cbiAgY29uc3QgaW5kZXhlczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9XG4gIGNvbnN0IHBhdGhuYW1lczogc3RyaW5nW10gPSBbXVxuICBmb3IgKGxldCBpID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBwYXRobmFtZSA9IGdldHRlcihvYmplY3RzW2ldKVxuICAgIGluZGV4ZXNbcGF0aG5hbWVdID0gaVxuICAgIHBhdGhuYW1lc1tpXSA9IHBhdGhuYW1lXG4gIH1cblxuICAvLyBTb3J0IHRoZSBwYXRobmFtZXMuXG4gIGNvbnN0IHNvcnRlZCA9IGdldFNvcnRlZFJvdXRlcyhwYXRobmFtZXMpXG5cbiAgLy8gTWFwIHRoZSBzb3J0ZWQgcGF0aG5hbWVzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIG9iamVjdHMgdXNpbmcgdGhlIG5ldyBzb3J0ZWRcbiAgLy8gaW5kZXguXG4gIHJldHVybiBzb3J0ZWQubWFwKChwYXRobmFtZSkgPT4gb2JqZWN0c1tpbmRleGVzW3BhdGhuYW1lXV0pXG59XG4iXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVPYmplY3RzIiwiZ2V0U29ydGVkUm91dGVzIiwiVXJsTm9kZSIsImluc2VydCIsInVybFBhdGgiLCJfaW5zZXJ0Iiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwic21vb3NoIiwiX3Ntb29zaCIsInByZWZpeCIsImNoaWxkcmVuUGF0aHMiLCJjaGlsZHJlbiIsImtleXMiLCJzb3J0Iiwic2x1Z05hbWUiLCJzcGxpY2UiLCJpbmRleE9mIiwicmVzdFNsdWdOYW1lIiwib3B0aW9uYWxSZXN0U2x1Z05hbWUiLCJyb3V0ZXMiLCJtYXAiLCJjIiwiZ2V0IiwicmVkdWNlIiwicHJldiIsImN1cnIiLCJwdXNoIiwicGxhY2Vob2xkZXIiLCJyIiwic2xpY2UiLCJFcnJvciIsInVuc2hpZnQiLCJ1cmxQYXRocyIsInNsdWdOYW1lcyIsImlzQ2F0Y2hBbGwiLCJsZW5ndGgiLCJuZXh0U2VnbWVudCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInNlZ21lbnROYW1lIiwiaXNPcHRpb25hbCIsInN1YnN0cmluZyIsImhhbmRsZVNsdWciLCJwcmV2aW91c1NsdWciLCJuZXh0U2x1ZyIsImZvckVhY2giLCJzbHVnIiwicmVwbGFjZSIsImhhcyIsInNldCIsIk1hcCIsIm5vcm1hbGl6ZWRQYWdlcyIsInJvb3QiLCJwYWdlUGF0aCIsIm9iamVjdHMiLCJnZXR0ZXIiLCJpbmRleGVzIiwicGF0aG5hbWVzIiwiaSIsInBhdGhuYW1lIiwic29ydGVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/segment.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/segment.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nconst PAGE_SEGMENT_KEY = '__PAGE__';\nconst DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLG1CQUFtQjtlQUFuQkE7O0lBREFDLGdCQUFnQjtlQUFoQkE7O0lBaEJHQyw0QkFBNEI7ZUFBNUJBOztJQVRBQyxjQUFjO2VBQWRBOztJQUtBQyxzQkFBc0I7ZUFBdEJBOzs7QUFMVCxTQUFTRCxlQUFlRSxPQUFlO0lBQzVDLHNDQUFzQztJQUN0QyxPQUFPQSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFDLFFBQVEsQ0FBQztBQUNoRDtBQUVPLFNBQVNGLHVCQUF1QkMsT0FBZTtJQUNwRCxPQUFPQSxRQUFRRSxVQUFVLENBQUMsUUFBUUYsWUFBWTtBQUNoRDtBQUVPLFNBQVNILDZCQUNkRyxPQUFnQixFQUNoQkcsWUFBMkQ7SUFFM0QsTUFBTUMsZ0JBQWdCSixRQUFRSyxRQUFRLENBQUNUO0lBRXZDLElBQUlRLGVBQWU7UUFDakIsTUFBTUUsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNMO1FBQ3hDLE9BQU9HLHFCQUFxQixPQUN4QlYsbUJBQW1CLE1BQU1VLG1CQUN6QlY7SUFDTjtJQUVBLE9BQU9JO0FBQ1Q7QUFFTyxNQUFNSixtQkFBbUI7QUFDekIsTUFBTUQsc0JBQXNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvc2hhcmVkL2xpYi9zZWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFsbGVsUm91dGVTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICByZXR1cm4gc2VnbWVudC5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudCAhPT0gJ0BjaGlsZHJlbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pIHtcbiAgY29uc3QgaXNQYWdlU2VnbWVudCA9IHNlZ21lbnQuaW5jbHVkZXMoUEFHRV9TRUdNRU5UX0tFWSlcblxuICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShzZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09ICd7fSdcbiAgICAgID8gUEFHRV9TRUdNRU5UX0tFWSArICc/JyArIHN0cmluZ2lmaWVkUXVlcnlcbiAgICAgIDogUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSAnX19QQUdFX18nXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9ICdfX0RFRkFVTFRfXydcbiJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwiUEFHRV9TRUdNRU5UX0tFWSIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJpc0dyb3VwU2VnbWVudCIsImlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2VhcmNoUGFyYW1zIiwiaXNQYWdlU2VnbWVudCIsImluY2x1ZGVzIiwic3RyaW5naWZpZWRRdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/segment.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/side-effect.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return SideEffect;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"react\");\nconst isServer = \"undefined\" === 'undefined';\nconst useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect;\nconst useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect;\nfunction SideEffect(props) {\n const { headManager, reduceComponentsToState } = props;\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean));\n headManager.updateHead(reduceComponentsToState(headElements, props));\n }\n }\n if (isServer) {\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n emitChange();\n }\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.delete(props.children);\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n useClientOnlyEffect({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n return ({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n }\n })[\"SideEffect.useClientOnlyEffect\"];\n }\n }[\"SideEffect.useClientOnlyEffect\"]);\n return null;\n} //# sourceMappingURL=side-effect.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FvQkE7OztlQUF3QkE7OzttQ0FuQnVDO0FBZS9ELE1BQU1DLFdBQVcsT0FBT0MsU0FBVztBQUNuQyxNQUFNQyw0QkFBNEJGLFdBQVcsS0FBTyxJQUFJRyxPQUFBQSxlQUFlO0FBQ3ZFLE1BQU1DLHNCQUFzQkosV0FBVyxLQUFPLElBQUlLLE9BQUFBLFNBQVM7QUFFNUMsU0FBU04sV0FBV08sS0FBc0I7SUFDdkQsTUFBTSxFQUFFQyxXQUFXLEVBQUVDLHVCQUF1QixFQUFFLEdBQUdGO0lBRWpELFNBQVNHO1FBQ1AsSUFBSUYsZUFBZUEsWUFBWUcsZ0JBQWdCLEVBQUU7WUFDL0MsTUFBTUMsZUFBZUMsT0FBQUEsUUFBUSxDQUFDQyxPQUFPLENBQ25DQyxNQUFNQyxJQUFJLENBQUNSLFlBQVlHLGdCQUFnQixFQUEwQk0sTUFBTSxDQUNyRUM7WUFHSlYsWUFBWVcsVUFBVSxDQUFDVix3QkFBd0JHLGNBQWNMO1FBQy9EO0lBQ0Y7SUFFQSxJQUFJTixVQUFVO1lBQ1pPO1FBQUFBLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLGlDQUFBQSxZQUFhRyxnQkFBQUEsS0FBZ0IsZ0JBQTdCSCw4QkFBK0JZLEdBQUcsQ0FBQ2IsTUFBTWMsUUFBUTtRQUNqRFg7SUFDRjtJQUVBUDtnREFBMEI7Z0JBQ3hCSztZQUFBQSxlQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxnQ0FBQUEsWUFBYUcsZ0JBQUFBLEtBQWdCLGdCQUE3QkgsOEJBQStCWSxHQUFHLENBQUNiLE1BQU1jLFFBQVE7WUFDakQ7d0RBQU87d0JBQ0xiO29CQUFBQSxlQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxnQ0FBQUEsWUFBYUcsZ0JBQUFBLEtBQWdCLGdCQUE3QkgsOEJBQStCYyxNQUFNLENBQUNmLE1BQU1jLFFBQVE7Z0JBQ3REOztRQUNGOztJQUVBLGtGQUFrRjtJQUNsRixvRkFBb0Y7SUFDcEYsZ0VBQWdFO0lBQ2hFLHFGQUFxRjtJQUNyRixtRkFBbUY7SUFDbkZsQjtnREFBMEI7WUFDeEIsSUFBSUssYUFBYTtnQkFDZkEsWUFBWWUsY0FBYyxHQUFHYjtZQUMvQjtZQUNBO3dEQUFPO29CQUNMLElBQUlGLGFBQWE7d0JBQ2ZBLFlBQVllLGNBQWMsR0FBR2I7b0JBQy9CO2dCQUNGOztRQUNGOztJQUVBTDswQ0FBb0I7WUFDbEIsSUFBSUcsZUFBZUEsWUFBWWUsY0FBYyxFQUFFO2dCQUM3Q2YsWUFBWWUsY0FBYztnQkFDMUJmLFlBQVllLGNBQWMsR0FBRztZQUMvQjtZQUNBO2tEQUFPO29CQUNMLElBQUlmLGVBQWVBLFlBQVllLGNBQWMsRUFBRTt3QkFDN0NmLFlBQVllLGNBQWM7d0JBQzFCZixZQUFZZSxjQUFjLEdBQUc7b0JBQy9CO2dCQUNGOztRQUNGOztJQUVBLE9BQU87QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvc2lkZS1lZmZlY3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2hpbGRyZW4sIHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0LCB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuXG50eXBlIFN0YXRlID0gSlNYLkVsZW1lbnRbXSB8IHVuZGVmaW5lZFxuXG5leHBvcnQgdHlwZSBTaWRlRWZmZWN0UHJvcHMgPSB7XG4gIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlOiA8VCBleHRlbmRzIHt9PihcbiAgICBjb21wb25lbnRzOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gICAgcHJvcHM6IFRcbiAgKSA9PiBTdGF0ZVxuICBoYW5kbGVTdGF0ZUNoYW5nZT86IChzdGF0ZTogU3RhdGUpID0+IHZvaWRcbiAgaGVhZE1hbmFnZXI6IGFueVxuICBpbkFtcE1vZGU/OiBib29sZWFuXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn1cblxuY29uc3QgaXNTZXJ2ZXIgPSB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJ1xuY29uc3QgdXNlQ2xpZW50T25seUxheW91dEVmZmVjdCA9IGlzU2VydmVyID8gKCkgPT4ge30gOiB1c2VMYXlvdXRFZmZlY3RcbmNvbnN0IHVzZUNsaWVudE9ubHlFZmZlY3QgPSBpc1NlcnZlciA/ICgpID0+IHt9IDogdXNlRWZmZWN0XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNpZGVFZmZlY3QocHJvcHM6IFNpZGVFZmZlY3RQcm9wcykge1xuICBjb25zdCB7IGhlYWRNYW5hZ2VyLCByZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSB9ID0gcHJvcHNcblxuICBmdW5jdGlvbiBlbWl0Q2hhbmdlKCkge1xuICAgIGlmIChoZWFkTWFuYWdlciAmJiBoZWFkTWFuYWdlci5tb3VudGVkSW5zdGFuY2VzKSB7XG4gICAgICBjb25zdCBoZWFkRWxlbWVudHMgPSBDaGlsZHJlbi50b0FycmF5KFxuICAgICAgICBBcnJheS5mcm9tKGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMgYXMgU2V0PFJlYWN0LlJlYWN0Tm9kZT4pLmZpbHRlcihcbiAgICAgICAgICBCb29sZWFuXG4gICAgICAgIClcbiAgICAgICkgYXMgUmVhY3QuUmVhY3RFbGVtZW50W11cbiAgICAgIGhlYWRNYW5hZ2VyLnVwZGF0ZUhlYWQocmVkdWNlQ29tcG9uZW50c1RvU3RhdGUoaGVhZEVsZW1lbnRzLCBwcm9wcykpXG4gICAgfVxuICB9XG5cbiAgaWYgKGlzU2VydmVyKSB7XG4gICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmFkZChwcm9wcy5jaGlsZHJlbilcbiAgICBlbWl0Q2hhbmdlKClcbiAgfVxuXG4gIHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGhlYWRNYW5hZ2VyPy5tb3VudGVkSW5zdGFuY2VzPy5hZGQocHJvcHMuY2hpbGRyZW4pXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGhlYWRNYW5hZ2VyPy5tb3VudGVkSW5zdGFuY2VzPy5kZWxldGUocHJvcHMuY2hpbGRyZW4pXG4gICAgfVxuICB9KVxuXG4gIC8vIFdlIG5lZWQgdG8gY2FsbCBgdXBkYXRlSGVhZGAgbWV0aG9kIHdoZW5ldmVyIHRoZSBgU2lkZUVmZmVjdGAgaXMgdHJpZ2dlciBpbiBhbGxcbiAgLy8gbGlmZS1jeWNsZXM6IG1vdW50LCB1cGRhdGUsIHVubW91bnQuIEhvd2V2ZXIsIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBgU2lkZUVmZmVjdGBzXG4gIC8vIGJlaW5nIHJlbmRlcmVkLCB3ZSBvbmx5IHRyaWdnZXIgdGhlIG1ldGhvZCBmcm9tIHRoZSBsYXN0IG9uZS5cbiAgLy8gVGhpcyBpcyBlbnN1cmVkIGJ5IGtlZXBpbmcgdGhlIGxhc3QgdW5mbHVzaGVkIGB1cGRhdGVIZWFkYCBpbiB0aGUgYF9wZW5kaW5nVXBkYXRlYFxuICAvLyBzaW5nbGV0b24gaW4gdGhlIGxheW91dCBlZmZlY3QgcGFzcywgYW5kIGFjdHVhbGx5IHRyaWdnZXIgaXQgaW4gdGhlIGVmZmVjdCBwYXNzLlxuICB1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaGVhZE1hbmFnZXIpIHtcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gZW1pdENoYW5nZVxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGhlYWRNYW5hZ2VyKSB7XG4gICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gZW1pdENoYW5nZVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICB1c2VDbGllbnRPbmx5RWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaGVhZE1hbmFnZXIgJiYgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUpIHtcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKClcbiAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlID0gbnVsbFxuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKGhlYWRNYW5hZ2VyICYmIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKSB7XG4gICAgICAgIGhlYWRNYW5hZ2VyLl9wZW5kaW5nVXBkYXRlKClcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBudWxsXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBudWxsXG59XG4iXSwibmFtZXMiOlsiU2lkZUVmZmVjdCIsImlzU2VydmVyIiwid2luZG93IiwidXNlQ2xpZW50T25seUxheW91dEVmZmVjdCIsInVzZUxheW91dEVmZmVjdCIsInVzZUNsaWVudE9ubHlFZmZlY3QiLCJ1c2VFZmZlY3QiLCJwcm9wcyIsImhlYWRNYW5hZ2VyIiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJlbWl0Q2hhbmdlIiwibW91bnRlZEluc3RhbmNlcyIsImhlYWRFbGVtZW50cyIsIkNoaWxkcmVuIiwidG9BcnJheSIsIkFycmF5IiwiZnJvbSIsImZpbHRlciIsIkJvb2xlYW4iLCJ1cGRhdGVIZWFkIiwiYWRkIiwiY2hpbGRyZW4iLCJkZWxldGUiLCJfcGVuZGluZ1VwZGF0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/side-effect.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/utils.js": +/*!****************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/utils.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? ':' + port : '');\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split('?');\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/').replace(/\\/\\/+/g, '/') + (urlParts[1] ? \"?\" + urlParts.slice(1).join('?') : '');\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw new Error(message);\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw new Error(message);\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== 'undefined';\nconst ST = SP && [\n 'mark',\n 'measure',\n 'getEntriesByName'\n].every((method)=>typeof performance[method] === 'function');\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = 'ENOENT';\n this.name = 'PageNotFoundError';\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = 'ENOENT';\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb2FhQSxXQUFXO2VBQVhBOztJQW9CQUMsdUJBQXVCO2VBQXZCQTs7SUFQQUMsaUJBQWlCO2VBQWpCQTs7SUFaQUMsY0FBYztlQUFkQTs7SUFDQUMsaUJBQWlCO2VBQWpCQTs7SUFUQUMsRUFBRTtlQUFGQTs7SUFDQUMsRUFBRTtlQUFGQTs7SUFsWEFDLFVBQVU7ZUFBVkE7O0lBc1FHQyxRQUFRO2VBQVJBOztJQStCQUMsY0FBYztlQUFkQTs7SUFYQUMsaUJBQWlCO2VBQWpCQTs7SUFLQUMsTUFBTTtlQUFOQTs7SUFQSEMsYUFBYTtlQUFiQTs7SUFtQkdDLFNBQVM7ZUFBVEE7O0lBa0JNQyxtQkFBbUI7ZUFBbkJBOztJQWROQyx3QkFBd0I7ZUFBeEJBOztJQStHQUMsY0FBYztlQUFkQTs7O0FBOVpULE1BQU1ULGFBQWE7SUFBQztJQUFPO0lBQU87SUFBTztJQUFPO0lBQU87Q0FBTztBQXNROUQsU0FBU0MsU0FDZFMsRUFBSztJQUVMLElBQUlDLE9BQU87SUFDWCxJQUFJQztJQUVKLE9BQVE7eUNBQUlDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO1lBQUFBLElBQUFBLENBQUFBLEtBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztRQUNWLElBQUksQ0FBQ0YsTUFBTTtZQUNUQSxPQUFPO1lBQ1BDLFNBQVNGLE1BQU1HO1FBQ2pCO1FBQ0EsT0FBT0Q7SUFDVDtBQUNGO0FBRUEsMERBQTBEO0FBQzFELGdFQUFnRTtBQUNoRSxNQUFNRSxxQkFBcUI7QUFDcEIsTUFBTVQsZ0JBQWdCLENBQUNVLE1BQWdCRCxtQkFBbUJFLElBQUksQ0FBQ0Q7QUFFL0QsU0FBU1o7SUFDZCxNQUFNLEVBQUVjLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsT0FBT0MsUUFBUTtJQUNwRCxPQUFVSixXQUFTLE9BQUlDLFdBQVdDLENBQUFBLE9BQU8sTUFBTUEsT0FBTyxHQUFDO0FBQ3pEO0FBRU8sU0FBU2Y7SUFDZCxNQUFNLEVBQUVrQixJQUFJLEVBQUUsR0FBR0YsT0FBT0MsUUFBUTtJQUNoQyxNQUFNRSxTQUFTcEI7SUFDZixPQUFPbUIsS0FBS0UsU0FBUyxDQUFDRCxPQUFPRSxNQUFNO0FBQ3JDO0FBRU8sU0FBU3ZCLGVBQWtCd0IsU0FBMkI7SUFDM0QsT0FBTyxPQUFPQSxjQUFjLFdBQ3hCQSxZQUNBQSxVQUFVQyxXQUFXLElBQUlELFVBQVVFLElBQUksSUFBSTtBQUNqRDtBQUVPLFNBQVN0QixVQUFVdUIsR0FBbUI7SUFDM0MsT0FBT0EsSUFBSUMsUUFBUSxJQUFJRCxJQUFJRSxXQUFXO0FBQ3hDO0FBRU8sU0FBU3ZCLHlCQUF5Qk8sR0FBVztJQUNsRCxNQUFNaUIsV0FBV2pCLElBQUlrQixLQUFLLENBQUM7SUFDM0IsTUFBTUMsYUFBYUYsUUFBUSxDQUFDLEVBQUU7SUFFOUIsT0FDRUUsV0FDRSw0REFBNEQ7SUFDNUQsMENBQTBDO0tBQ3pDQyxPQUFPLENBQUMsT0FBTyxLQUNmQSxPQUFPLENBQUMsVUFBVSxPQUNwQkgsQ0FBQUEsUUFBUSxDQUFDLEVBQUUsR0FBSSxNQUFHQSxTQUFTSSxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDLE9BQVMsR0FBQztBQUV4RDtBQUVPLGVBQWU5QixvQkFJcEIrQixHQUFnQyxFQUFFQyxHQUFNO0lBQ3hDLElBQUlDLElBQW9CLEVBQW1CO1lBQ3JDRjtRQUFKLHNCQUFJQSxJQUFJSyxTQUFBQSxLQUFTLGdCQUFiTCxlQUFlTSxlQUFlLEVBQUU7WUFDbEMsTUFBTUMsVUFBVyxNQUFHM0MsZUFDbEJvQyxPQUNBO1lBQ0YsTUFBTSxJQUFJUSxNQUFNRDtRQUNsQjtJQUNGO0lBQ0EsaURBQWlEO0lBQ2pELE1BQU1oQixNQUFNVSxJQUFJVixHQUFHLElBQUtVLElBQUlBLEdBQUcsSUFBSUEsSUFBSUEsR0FBRyxDQUFDVixHQUFHO0lBRTlDLElBQUksQ0FBQ1MsSUFBSU0sZUFBZSxFQUFFO1FBQ3hCLElBQUlMLElBQUlBLEdBQUcsSUFBSUEsSUFBSWIsU0FBUyxFQUFFO1lBQzVCLCtCQUErQjtZQUMvQixPQUFPO2dCQUNMcUIsV0FBVyxNQUFNeEMsb0JBQW9CZ0MsSUFBSWIsU0FBUyxFQUFFYSxJQUFJQSxHQUFHO1lBQzdEO1FBQ0Y7UUFDQSxPQUFPLENBQUM7SUFDVjtJQUVBLE1BQU1TLFFBQVEsTUFBTVYsSUFBSU0sZUFBZSxDQUFDTDtJQUV4QyxJQUFJVixPQUFPdkIsVUFBVXVCLE1BQU07UUFDekIsT0FBT21CO0lBQ1Q7SUFFQSxJQUFJLENBQUNBLE9BQU87UUFDVixNQUFNSCxVQUFXLE1BQUczQyxlQUNsQm9DLE9BQ0EsaUVBQThEVSxRQUFNO1FBQ3RFLE1BQU0sSUFBSUYsTUFBTUQ7SUFDbEI7SUFFQSxJQUFJTCxJQUFvQixFQUFtQjtRQUN6QyxJQUFJUyxPQUFPQyxJQUFJLENBQUNGLE9BQU92QixNQUFNLEtBQUssS0FBSyxDQUFDYyxJQUFJQSxHQUFHLEVBQUU7WUFDL0NZLFFBQVFDLElBQUksQ0FDVCxLQUFFbEQsZUFDRG9DLE9BQ0E7UUFFTjtJQUNGO0lBRUEsT0FBT1U7QUFDVDtBQUVPLE1BQU1sRCxLQUFLLE9BQU91RCxnQkFBZ0I7QUFDbEMsTUFBTXRELEtBQ1hELE1BQ0M7SUFBQztJQUFRO0lBQVc7Q0FBbUIsQ0FBV3dELEtBQUssQ0FDdEQsQ0FBQ0MsU0FBVyxPQUFPRixXQUFXLENBQUNFLE9BQU8sS0FBSztBQUd4QyxNQUFNOUQsb0JBQW9CcUQ7QUFBTztBQUNqQyxNQUFNbEQsdUJBQXVCa0Q7QUFBTztBQUNwQyxNQUFNakQsMEJBQTBCaUQ7SUFHckNVLFlBQVlDLElBQVksQ0FBRTtRQUN4QixLQUFLO1FBQ0wsSUFBSSxDQUFDQyxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUM5QixJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNpQixPQUFPLEdBQUksa0NBQStCWTtJQUNqRDtBQUNGO0FBRU8sTUFBTTlELDBCQUEwQm1EO0lBQ3JDVSxZQUFZQyxJQUFZLEVBQUVaLE9BQWUsQ0FBRTtRQUN6QyxLQUFLO1FBQ0wsSUFBSSxDQUFDQSxPQUFPLEdBQUksMENBQXVDWSxPQUFLLE1BQUdaO0lBQ2pFO0FBQ0Y7QUFFTyxNQUFNbkQsZ0NBQWdDb0Q7SUFFM0NVLGFBQWM7UUFDWixLQUFLO1FBQ0wsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNiLE9BQU8sR0FBSTtJQUNsQjtBQUNGO0FBV08sU0FBU3BDLGVBQWVrRCxLQUFZO0lBQ3pDLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQztRQUFFaEIsU0FBU2MsTUFBTWQsT0FBTztRQUFFaUIsT0FBT0gsTUFBTUcsS0FBSztJQUFDO0FBQ3JFIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvc2hhcmVkL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEh0bWxQcm9wcyB9IGZyb20gJy4vaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlLCBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRW52IH0gZnJvbSAnQG5leHQvZW52J1xuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB0eXBlIHsgUHJldmlld0RhdGEgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ09NUElMRVJfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIGZzIGZyb20gJ2ZzJ1xuXG5leHBvcnQgdHlwZSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQ29udGV4dCBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuICBJbml0aWFsUHJvcHMgPSB7fSxcbiAgUHJvcHMgPSB7fSxcbj4gPSBDb21wb25lbnRUeXBlPFByb3BzPiAmIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGluaXRpYWwgcGFnZSBsb2FkIGRhdGEgcG9wdWxhdGlvbi4gRGF0YSByZXR1cm5lZCBmcm9tIGBnZXRJbml0aWFsUHJvcHNgIGlzIHNlcmlhbGl6ZWQgd2hlbiBzZXJ2ZXIgcmVuZGVyZWQuXG4gICAqIE1ha2Ugc3VyZSB0byByZXR1cm4gcGxhaW4gYE9iamVjdGAgd2l0aG91dCB1c2luZyBgRGF0ZWAsIGBNYXBgLCBgU2V0YC5cbiAgICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiBgcGFnZWBcbiAgICovXG4gIGdldEluaXRpYWxQcm9wcz8oY29udGV4dDogQ29udGV4dCk6IEluaXRpYWxQcm9wcyB8IFByb21pc2U8SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFR5cGUgPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgRG9jdW1lbnRDb250ZXh0LFxuICBEb2N1bWVudEluaXRpYWxQcm9wcyxcbiAgRG9jdW1lbnRQcm9wc1xuPlxuXG5leHBvcnQgdHlwZSBBcHBUeXBlPFAgPSB7fT4gPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQXBwQ29udGV4dFR5cGUsXG4gIFAsXG4gIEFwcFByb3BzVHlwZTxhbnksIFA+XG4+XG5cbmV4cG9ydCB0eXBlIEFwcFRyZWVUeXBlID0gQ29tcG9uZW50VHlwZTxcbiAgQXBwSW5pdGlhbFByb3BzICYgeyBbbmFtZTogc3RyaW5nXTogYW55IH1cbj5cblxuLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFdFQl9WSVRBTFMgPSBbJ0NMUycsICdGQ1AnLCAnRklEJywgJ0lOUCcsICdMQ1AnLCAnVFRGQiddIGFzIGNvbnN0XG5leHBvcnQgdHlwZSBOZXh0V2ViVml0YWxzTWV0cmljID0ge1xuICBpZDogc3RyaW5nXG4gIHN0YXJ0VGltZTogbnVtYmVyXG4gIHZhbHVlOiBudW1iZXJcbiAgYXR0cmlidXRpb24/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfVxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbDogJ3dlYi12aXRhbCdcbiAgICAgIG5hbWU6ICh0eXBlb2YgV0VCX1ZJVEFMUylbbnVtYmVyXVxuICAgIH1cbiAgfCB7XG4gICAgICBsYWJlbDogJ2N1c3RvbSdcbiAgICAgIG5hbWU6XG4gICAgICAgIHwgJ05leHQuanMtaHlkcmF0aW9uJ1xuICAgICAgICB8ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInXG4gICAgICAgIHwgJ05leHQuanMtcmVuZGVyJ1xuICAgIH1cbilcblxuZXhwb3J0IHR5cGUgRW5oYW5jZXI8Qz4gPSAoQ29tcG9uZW50OiBDKSA9PiBDXG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudHNFbmhhbmNlciA9XG4gIHwge1xuICAgICAgZW5oYW5jZUFwcD86IEVuaGFuY2VyPEFwcFR5cGU+XG4gICAgICBlbmhhbmNlQ29tcG9uZW50PzogRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG4gICAgfVxuICB8IEVuaGFuY2VyPE5leHRDb21wb25lbnRUeXBlPlxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlUmVzdWx0ID0ge1xuICBodG1sOiBzdHJpbmdcbiAgaGVhZD86IEFycmF5PEpTWC5FbGVtZW50IHwgbnVsbD5cbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyUGFnZSA9IChcbiAgb3B0aW9ucz86IENvbXBvbmVudHNFbmhhbmNlclxuKSA9PiBEb2N1bWVudEluaXRpYWxQcm9wcyB8IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+XG5cbmV4cG9ydCB0eXBlIEJhc2VDb250ZXh0ID0ge1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICBbazogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCB0eXBlIE5FWFRfREFUQSA9IHtcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcGFnZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBidWlsZElkOiBzdHJpbmdcbiAgYXNzZXRQcmVmaXg/OiBzdHJpbmdcbiAgcnVudGltZUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgbmV4dEV4cG9ydD86IGJvb2xlYW5cbiAgYXV0b0V4cG9ydD86IGJvb2xlYW5cbiAgaXNGYWxsYmFjaz86IGJvb2xlYW5cbiAgaXNFeHBlcmltZW50YWxDb21waWxlPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICBlcnI/OiBFcnJvciAmIHtcbiAgICBzdGF0dXNDb2RlPzogbnVtYmVyXG4gICAgc291cmNlPzogdHlwZW9mIENPTVBJTEVSX05BTUVTLnNlcnZlciB8IHR5cGVvZiBDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXG4gIH1cbiAgZ3NwPzogYm9vbGVhblxuICBnc3NwPzogYm9vbGVhblxuICBjdXN0b21TZXJ2ZXI/OiBib29sZWFuXG4gIGdpcD86IGJvb2xlYW5cbiAgYXBwR2lwPzogYm9vbGVhblxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbG9jYWxlcz86IHN0cmluZ1tdXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgZG9tYWluTG9jYWxlcz86IERvbWFpbkxvY2FsZVtdXG4gIHNjcmlwdExvYWRlcj86IGFueVtdXG4gIGlzUHJldmlldz86IGJvb2xlYW5cbiAgbm90Rm91bmRTcmNQYWdlPzogc3RyaW5nXG59XG5cbi8qKlxuICogYE5leHRgIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0UGFnZUNvbnRleHQge1xuICAvKipcbiAgICogRXJyb3Igb2JqZWN0IGlmIGVuY291bnRlcmVkIGR1cmluZyByZW5kZXJpbmdcbiAgICovXG4gIGVycj86IChFcnJvciAmIHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSB8IG51bGxcbiAgLyoqXG4gICAqIGBIVFRQYCByZXF1ZXN0IG9iamVjdC5cbiAgICovXG4gIHJlcT86IEluY29taW5nTWVzc2FnZVxuICAvKipcbiAgICogYEhUVFBgIHJlc3BvbnNlIG9iamVjdC5cbiAgICovXG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIC8qKlxuICAgKiBQYXRoIHNlY3Rpb24gb2YgYFVSTGAuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBRdWVyeSBzdHJpbmcgc2VjdGlvbiBvZiBgVVJMYCBwYXJzZWQgYXMgYW4gb2JqZWN0LlxuICAgKi9cbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIC8qKlxuICAgKiBgU3RyaW5nYCBvZiB0aGUgYWN0dWFsIHBhdGggaW5jbHVkaW5nIHF1ZXJ5LlxuICAgKi9cbiAgYXNQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBsb2NhbGVcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogQWxsIGNvbmZpZ3VyZWQgbG9jYWxlc1xuICAgKi9cbiAgbG9jYWxlcz86IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBkZWZhdWx0IGxvY2FsZVxuICAgKi9cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogYENvbXBvbmVudGAgdGhlIHRyZWUgb2YgdGhlIEFwcCB0byB1c2UgaWYgbmVlZGluZyB0byByZW5kZXIgc2VwYXJhdGVseVxuICAgKi9cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbn1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dFR5cGU8Um91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXI+ID0ge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dD5cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbiAgY3R4OiBOZXh0UGFnZUNvbnRleHRcbiAgcm91dGVyOiBSb3V0ZXJcbn1cblxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcyA9IGFueT4gPSB7XG4gIHBhZ2VQcm9wczogUGFnZVByb3BzXG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzVHlwZTxcbiAgUm91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXIsXG4gIFBhZ2VQcm9wcyA9IHt9LFxuPiA9IEFwcEluaXRpYWxQcm9wczxQYWdlUHJvcHM+ICYge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dCwgYW55LCBhbnk+XG4gIHJvdXRlcjogUm91dGVyXG4gIF9fTl9TU0c/OiBib29sZWFuXG4gIF9fTl9TU1A/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50Q29udGV4dCA9IE5leHRQYWdlQ29udGV4dCAmIHtcbiAgcmVuZGVyUGFnZTogUmVuZGVyUGFnZVxuICBkZWZhdWx0R2V0SW5pdGlhbFByb3BzKFxuICAgIGN0eDogRG9jdW1lbnRDb250ZXh0LFxuICAgIG9wdGlvbnM/OiB7IG5vbmNlPzogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRJbml0aWFsUHJvcHMgPSBSZW5kZXJQYWdlUmVzdWx0ICYge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IEl0ZXJhYmxlPFJlYWN0LlJlYWN0Tm9kZT4gfCBKU1guRWxlbWVudFxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFByb3BzID0gRG9jdW1lbnRJbml0aWFsUHJvcHMgJiBIdG1sUHJvcHNcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXVxuICB9PlxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczogUGFydGlhbDx7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH0+XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBkcmFmdE1vZGU/OiBib29sZWFuXG5cbiAgcHJldmlldz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFByZXZpZXcgZGF0YSBzZXQgb24gdGhlIHJlcXVlc3QsIGlmIGFueVxuICAgKiAqL1xuICBwcmV2aWV3RGF0YT86IFByZXZpZXdEYXRhXG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8RGF0YSA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPERhdGE+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8RGF0YT5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFNldCBkcmFmdCBtb2RlXG4gICAqL1xuICBzZXREcmFmdE1vZGU6IChvcHRpb25zOiB7IGVuYWJsZTogYm9vbGVhbiB9KSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIHNldFByZXZpZXdEYXRhOiAoXG4gICAgZGF0YTogb2JqZWN0IHwgc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIChpbiBzZWNvbmRzKSBmb3IgdGhlIHByZXZpZXcgc2Vzc2lvbiB0byBsYXN0IGZvci5cbiAgICAgICAqIFRoZSBnaXZlbiBudW1iZXIgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBieSByb3VuZGluZyBkb3duLlxuICAgICAgICogQnkgZGVmYXVsdCwgbm8gbWF4aW11bSBhZ2UgaXMgc2V0IGFuZCB0aGUgcHJldmlldyBzZXNzaW9uIGZpbmlzaGVzXG4gICAgICAgKiB3aGVuIHRoZSBjbGllbnQgc2h1dHMgZG93biAoYnJvd3NlciBpcyBjbG9zZWQpLlxuICAgICAgICovXG4gICAgICBtYXhBZ2U/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBwYXRoIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIHdvcmsgdW5kZXIuIEJ5IGRlZmF1bHQsXG4gICAgICAgKiB0aGUgcGF0aCBpcyBjb25zaWRlcmVkIHRoZSBcImRlZmF1bHQgcGF0aFwiLCBpLmUuLCBhbnkgcGFnZXMgdW5kZXIgXCIvXCIuXG4gICAgICAgKi9cbiAgICAgIHBhdGg/OiBzdHJpbmdcbiAgICB9XG4gICkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIENsZWFyIHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIGNsZWFyUHJldmlld0RhdGE6IChvcHRpb25zPzogeyBwYXRoPzogc3RyaW5nIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIGEgc3BlY2lmaWMgcGFnZSBhbmQgcmVnZW5lcmF0ZSBpdCB1c2luZyBPbi1EZW1hbmQgSW5jcmVtZW50YWxcbiAgICogU3RhdGljIFJlZ2VuZXJhdGlvbi5cbiAgICogVGhlIHBhdGggc2hvdWxkIGJlIGFuIGFjdHVhbCBwYXRoLCBub3QgYSByZXdyaXR0ZW4gcGF0aC4gRS5nLiBmb3JcbiAgICogXCIvYmxvZy9bc2x1Z11cIiB0aGlzIHNob3VsZCBiZSBcIi9ibG9nL3Bvc3QtMVwiLlxuICAgKiBAbGluayBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb24jb24tZGVtYW5kLXJldmFsaWRhdGlvbi13aXRoLXJldmFsaWRhdGVwYXRoXG4gICAqL1xuICByZXZhbGlkYXRlOiAoXG4gICAgdXJsUGF0aDogc3RyaW5nLFxuICAgIG9wdHM/OiB7XG4gICAgICB1bnN0YWJsZV9vbmx5R2VuZXJhdGVkPzogYm9vbGVhblxuICAgIH1cbiAgKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSBoYW5kbGVyXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlIYW5kbGVyPFQgPSBhbnk+ID0gKFxuICByZXE6IE5leHRBcGlSZXF1ZXN0LFxuICByZXM6IE5leHRBcGlSZXNwb25zZTxUPlxuKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPlxuXG4vKipcbiAqIFV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjT25jZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBSZXR1cm5UeXBlPFQ+PihcbiAgZm46IFRcbik6IFQge1xuICBsZXQgdXNlZCA9IGZhbHNlXG4gIGxldCByZXN1bHQ6IFJldHVyblR5cGU8VD5cblxuICByZXR1cm4gKCguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICghdXNlZCkge1xuICAgICAgdXNlZCA9IHRydWVcbiAgICAgIHJlc3VsdCA9IGZuKC4uLmFyZ3MpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfSkgYXMgVFxufVxuXG4vLyBTY2hlbWU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4xXG4vLyBBYnNvbHV0ZSBVUkw6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tNC4zXG5jb25zdCBBQlNPTFVURV9VUkxfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi9cbmV4cG9ydCBjb25zdCBpc0Fic29sdXRlVXJsID0gKHVybDogc3RyaW5nKSA9PiBBQlNPTFVURV9VUkxfUkVHRVgudGVzdCh1cmwpXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKVxuICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF1cblxuICByZXR1cm4gKFxuICAgIHVybE5vUXVlcnlcbiAgICAgIC8vIGZpcnN0IHdlIHJlcGxhY2UgYW55IG5vbi1lbmNvZGVkIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZFxuICAgICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvXFwvKy9nLCAnLycpICtcbiAgICAodXJsUGFydHNbMV0gPyBgPyR7dXJsUGFydHMuc2xpY2UoMSkuam9pbignPycpfWAgOiAnJylcbiAgKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdldEluaXRpYWxQcm9wczxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0LFxuICBJUCA9IHt9LFxuICBQID0ge30sXG4+KEFwcDogTmV4dENvbXBvbmVudFR5cGU8QywgSVAsIFA+LCBjdHg6IEMpOiBQcm9taXNlPElQPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKEFwcC5wcm90b3R5cGU/LmdldEluaXRpYWxQcm9wcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgIEFwcFxuICAgICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICB9XG4gIH1cbiAgLy8gd2hlbiBjYWxsZWQgZnJvbSBfYXBwIGBjdHhgIGlzIG5lc3RlZCBpbiBgY3R4YFxuICBjb25zdCByZXMgPSBjdHgucmVzIHx8IChjdHguY3R4ICYmIGN0eC5jdHgucmVzKVxuXG4gIGlmICghQXBwLmdldEluaXRpYWxQcm9wcykge1xuICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhZ2VQcm9wczogYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhjdHguQ29tcG9uZW50LCBjdHguY3R4KSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9IGFzIElQXG4gIH1cblxuICBjb25zdCBwcm9wcyA9IGF3YWl0IEFwcC5nZXRJbml0aWFsUHJvcHMoY3R4KVxuXG4gIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGlmICghcHJvcHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgIEFwcFxuICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYFxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgICBBcHBcbiAgICAgICAgKX0gcmV0dXJuZWQgYW4gZW1wdHkgb2JqZWN0IGZyb20gXFxgZ2V0SW5pdGlhbFByb3BzXFxgLiBUaGlzIGRlLW9wdGltaXplcyBhbmQgcHJldmVudHMgYXV0b21hdGljIHN0YXRpYyBvcHRpbWl6YXRpb24uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2VtcHR5LW9iamVjdC1nZXRJbml0aWFsUHJvcHNgXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb3BzXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIChbJ21hcmsnLCAnbWVhc3VyZScsICdnZXRFbnRyaWVzQnlOYW1lJ10gYXMgY29uc3QpLmV2ZXJ5KFxuICAgIChtZXRob2QpID0+IHR5cGVvZiBwZXJmb3JtYW5jZVttZXRob2RdID09PSAnZnVuY3Rpb24nXG4gIClcblxuZXhwb3J0IGNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVFcnJvciBleHRlbmRzIEVycm9yIHt9XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvZGUgPSAnRU5PRU5UJ1xuICAgIHRoaXMubmFtZSA9ICdQYWdlTm90Rm91bmRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgbW9kdWxlIGZvciBwYWdlOiAke3BhZ2V9YFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nU3RhdGljUGFnZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5tZXNzYWdlID0gYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBmaWxlIGZvciBwYWdlOiAke3BhZ2V9ICR7bWVzc2FnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5tZXNzYWdlID0gYENhbm5vdCBmaW5kIHRoZSBtaWRkbGV3YXJlIG1vZHVsZWBcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlRnMge1xuICBleGlzdHNTeW5jOiB0eXBlb2YgZnMuZXhpc3RzU3luY1xuICByZWFkRmlsZTogdHlwZW9mIGZzLnByb21pc2VzLnJlYWRGaWxlXG4gIHJlYWRGaWxlU3luYzogdHlwZW9mIGZzLnJlYWRGaWxlU3luY1xuICB3cml0ZUZpbGUoZjogc3RyaW5nLCBkOiBhbnkpOiBQcm9taXNlPHZvaWQ+XG4gIG1rZGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkIHwgc3RyaW5nPlxuICBzdGF0KGY6IHN0cmluZyk6IFByb21pc2U8eyBtdGltZTogRGF0ZSB9PlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFjayB9KVxufVxuIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwicGVyZm9ybWFuY2UiLCJldmVyeSIsIm1ldGhvZCIsImNvbnN0cnVjdG9yIiwicGFnZSIsImNvZGUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/utils/warn-once.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/utils/warn-once.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"warnOnce\", ({\n enumerable: true,\n get: function() {\n return warnOnce;\n }\n}));\nlet warnOnce = (_)=>{};\nif (true) {\n const warnings = new Set();\n warnOnce = (msg)=>{\n if (!warnings.has(msg)) {\n console.warn(msg);\n }\n warnings.add(msg);\n };\n} //# sourceMappingURL=warn-once.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7NENBV1NBOzs7ZUFBQUE7OztBQVhULElBQUlBLFdBQVcsQ0FBQ0MsS0FBZTtBQUMvQixJQUFJQyxJQUFvQixFQUFtQjtJQUN6QyxNQUFNRyxXQUFXLElBQUlDO0lBQ3JCTixXQUFXLENBQUNPO1FBQ1YsSUFBSSxDQUFDRixTQUFTRyxHQUFHLENBQUNELE1BQU07WUFDdEJFLFFBQVFDLElBQUksQ0FBQ0g7UUFDZjtRQUNBRixTQUFTTSxHQUFHLENBQUNKO0lBQ2Y7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCB3YXJuT25jZSA9IChfOiBzdHJpbmcpID0+IHt9XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBjb25zdCB3YXJuaW5ncyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIHdhcm5PbmNlID0gKG1zZzogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCF3YXJuaW5ncy5oYXMobXNnKSkge1xuICAgICAgY29uc29sZS53YXJuKG1zZylcbiAgICB9XG4gICAgd2FybmluZ3MuYWRkKG1zZylcbiAgfVxufVxuXG5leHBvcnQgeyB3YXJuT25jZSB9XG4iXSwibmFtZXMiOlsid2Fybk9uY2UiLCJfIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwid2FybmluZ3MiLCJTZXQiLCJtc2ciLCJoYXMiLCJjb25zb2xlIiwid2FybiIsImFkZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/utils/warn-once.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/@opentelemetry/api/index.js": +/*!*********************************************************************!*\ + !*** ./node_modules/next/dist/compiled/@opentelemetry/api/index.js ***! + \*********************************************************************/ +/***/ ((module) => { + +eval("(()=>{\"use strict\";var e={491:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ContextAPI=void 0;const n=r(223);const a=r(172);const o=r(930);const i=\"context\";const c=new n.NoopContextManager;class ContextAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new ContextAPI}return this._instance}setGlobalContextManager(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}active(){return this._getContextManager().active()}with(e,t,r,...n){return this._getContextManager().with(e,t,r,...n)}bind(e,t){return this._getContextManager().bind(e,t)}_getContextManager(){return(0,a.getGlobal)(i)||c}disable(){this._getContextManager().disable();(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.ContextAPI=ContextAPI},930:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagAPI=void 0;const n=r(56);const a=r(912);const o=r(957);const i=r(172);const c=\"diag\";class DiagAPI{constructor(){function _logProxy(e){return function(...t){const r=(0,i.getGlobal)(\"diag\");if(!r)return;return r[e](...t)}}const e=this;const setLogger=(t,r={logLevel:o.DiagLogLevel.INFO})=>{var n,c,s;if(t===e){const t=new Error(\"Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation\");e.error((n=t.stack)!==null&&n!==void 0?n:t.message);return false}if(typeof r===\"number\"){r={logLevel:r}}const u=(0,i.getGlobal)(\"diag\");const l=(0,a.createLogLevelDiagLogger)((c=r.logLevel)!==null&&c!==void 0?c:o.DiagLogLevel.INFO,t);if(u&&!r.suppressOverrideMessage){const e=(s=(new Error).stack)!==null&&s!==void 0?s:\"<failed to generate stacktrace>\";u.warn(`Current logger will be overwritten from ${e}`);l.warn(`Current logger will overwrite one already registered from ${e}`)}return(0,i.registerGlobal)(\"diag\",l,e,true)};e.setLogger=setLogger;e.disable=()=>{(0,i.unregisterGlobal)(c,e)};e.createComponentLogger=e=>new n.DiagComponentLogger(e);e.verbose=_logProxy(\"verbose\");e.debug=_logProxy(\"debug\");e.info=_logProxy(\"info\");e.warn=_logProxy(\"warn\");e.error=_logProxy(\"error\")}static instance(){if(!this._instance){this._instance=new DiagAPI}return this._instance}}t.DiagAPI=DiagAPI},653:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.MetricsAPI=void 0;const n=r(660);const a=r(172);const o=r(930);const i=\"metrics\";class MetricsAPI{constructor(){}static getInstance(){if(!this._instance){this._instance=new MetricsAPI}return this._instance}setGlobalMeterProvider(e){return(0,a.registerGlobal)(i,e,o.DiagAPI.instance())}getMeterProvider(){return(0,a.getGlobal)(i)||n.NOOP_METER_PROVIDER}getMeter(e,t,r){return this.getMeterProvider().getMeter(e,t,r)}disable(){(0,a.unregisterGlobal)(i,o.DiagAPI.instance())}}t.MetricsAPI=MetricsAPI},181:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.PropagationAPI=void 0;const n=r(172);const a=r(874);const o=r(194);const i=r(277);const c=r(369);const s=r(930);const u=\"propagation\";const l=new a.NoopTextMapPropagator;class PropagationAPI{constructor(){this.createBaggage=c.createBaggage;this.getBaggage=i.getBaggage;this.getActiveBaggage=i.getActiveBaggage;this.setBaggage=i.setBaggage;this.deleteBaggage=i.deleteBaggage}static getInstance(){if(!this._instance){this._instance=new PropagationAPI}return this._instance}setGlobalPropagator(e){return(0,n.registerGlobal)(u,e,s.DiagAPI.instance())}inject(e,t,r=o.defaultTextMapSetter){return this._getGlobalPropagator().inject(e,t,r)}extract(e,t,r=o.defaultTextMapGetter){return this._getGlobalPropagator().extract(e,t,r)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,n.unregisterGlobal)(u,s.DiagAPI.instance())}_getGlobalPropagator(){return(0,n.getGlobal)(u)||l}}t.PropagationAPI=PropagationAPI},997:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceAPI=void 0;const n=r(172);const a=r(846);const o=r(139);const i=r(607);const c=r(930);const s=\"trace\";class TraceAPI{constructor(){this._proxyTracerProvider=new a.ProxyTracerProvider;this.wrapSpanContext=o.wrapSpanContext;this.isSpanContextValid=o.isSpanContextValid;this.deleteSpan=i.deleteSpan;this.getSpan=i.getSpan;this.getActiveSpan=i.getActiveSpan;this.getSpanContext=i.getSpanContext;this.setSpan=i.setSpan;this.setSpanContext=i.setSpanContext}static getInstance(){if(!this._instance){this._instance=new TraceAPI}return this._instance}setGlobalTracerProvider(e){const t=(0,n.registerGlobal)(s,this._proxyTracerProvider,c.DiagAPI.instance());if(t){this._proxyTracerProvider.setDelegate(e)}return t}getTracerProvider(){return(0,n.getGlobal)(s)||this._proxyTracerProvider}getTracer(e,t){return this.getTracerProvider().getTracer(e,t)}disable(){(0,n.unregisterGlobal)(s,c.DiagAPI.instance());this._proxyTracerProvider=new a.ProxyTracerProvider}}t.TraceAPI=TraceAPI},277:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.deleteBaggage=t.setBaggage=t.getActiveBaggage=t.getBaggage=void 0;const n=r(491);const a=r(780);const o=(0,a.createContextKey)(\"OpenTelemetry Baggage Key\");function getBaggage(e){return e.getValue(o)||undefined}t.getBaggage=getBaggage;function getActiveBaggage(){return getBaggage(n.ContextAPI.getInstance().active())}t.getActiveBaggage=getActiveBaggage;function setBaggage(e,t){return e.setValue(o,t)}t.setBaggage=setBaggage;function deleteBaggage(e){return e.deleteValue(o)}t.deleteBaggage=deleteBaggage},993:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.BaggageImpl=void 0;class BaggageImpl{constructor(e){this._entries=e?new Map(e):new Map}getEntry(e){const t=this._entries.get(e);if(!t){return undefined}return Object.assign({},t)}getAllEntries(){return Array.from(this._entries.entries()).map((([e,t])=>[e,t]))}setEntry(e,t){const r=new BaggageImpl(this._entries);r._entries.set(e,t);return r}removeEntry(e){const t=new BaggageImpl(this._entries);t._entries.delete(e);return t}removeEntries(...e){const t=new BaggageImpl(this._entries);for(const r of e){t._entries.delete(r)}return t}clear(){return new BaggageImpl}}t.BaggageImpl=BaggageImpl},830:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataSymbol=void 0;t.baggageEntryMetadataSymbol=Symbol(\"BaggageEntryMetadata\")},369:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.baggageEntryMetadataFromString=t.createBaggage=void 0;const n=r(930);const a=r(993);const o=r(830);const i=n.DiagAPI.instance();function createBaggage(e={}){return new a.BaggageImpl(new Map(Object.entries(e)))}t.createBaggage=createBaggage;function baggageEntryMetadataFromString(e){if(typeof e!==\"string\"){i.error(`Cannot create baggage metadata from unknown type: ${typeof e}`);e=\"\"}return{__TYPE__:o.baggageEntryMetadataSymbol,toString(){return e}}}t.baggageEntryMetadataFromString=baggageEntryMetadataFromString},67:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.context=void 0;const n=r(491);t.context=n.ContextAPI.getInstance()},223:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopContextManager=void 0;const n=r(780);class NoopContextManager{active(){return n.ROOT_CONTEXT}with(e,t,r,...n){return t.call(r,...n)}bind(e,t){return t}enable(){return this}disable(){return this}}t.NoopContextManager=NoopContextManager},780:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ROOT_CONTEXT=t.createContextKey=void 0;function createContextKey(e){return Symbol.for(e)}t.createContextKey=createContextKey;class BaseContext{constructor(e){const t=this;t._currentContext=e?new Map(e):new Map;t.getValue=e=>t._currentContext.get(e);t.setValue=(e,r)=>{const n=new BaseContext(t._currentContext);n._currentContext.set(e,r);return n};t.deleteValue=e=>{const r=new BaseContext(t._currentContext);r._currentContext.delete(e);return r}}}t.ROOT_CONTEXT=new BaseContext},506:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.diag=void 0;const n=r(930);t.diag=n.DiagAPI.instance()},56:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagComponentLogger=void 0;const n=r(172);class DiagComponentLogger{constructor(e){this._namespace=e.namespace||\"DiagComponentLogger\"}debug(...e){return logProxy(\"debug\",this._namespace,e)}error(...e){return logProxy(\"error\",this._namespace,e)}info(...e){return logProxy(\"info\",this._namespace,e)}warn(...e){return logProxy(\"warn\",this._namespace,e)}verbose(...e){return logProxy(\"verbose\",this._namespace,e)}}t.DiagComponentLogger=DiagComponentLogger;function logProxy(e,t,r){const a=(0,n.getGlobal)(\"diag\");if(!a){return}r.unshift(t);return a[e](...r)}},972:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagConsoleLogger=void 0;const r=[{n:\"error\",c:\"error\"},{n:\"warn\",c:\"warn\"},{n:\"info\",c:\"info\"},{n:\"debug\",c:\"debug\"},{n:\"verbose\",c:\"trace\"}];class DiagConsoleLogger{constructor(){function _consoleFunc(e){return function(...t){if(console){let r=console[e];if(typeof r!==\"function\"){r=console.log}if(typeof r===\"function\"){return r.apply(console,t)}}}}for(let e=0;e<r.length;e++){this[r[e].n]=_consoleFunc(r[e].c)}}}t.DiagConsoleLogger=DiagConsoleLogger},912:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createLogLevelDiagLogger=void 0;const n=r(957);function createLogLevelDiagLogger(e,t){if(e<n.DiagLogLevel.NONE){e=n.DiagLogLevel.NONE}else if(e>n.DiagLogLevel.ALL){e=n.DiagLogLevel.ALL}t=t||{};function _filterFunc(r,n){const a=t[r];if(typeof a===\"function\"&&e>=n){return a.bind(t)}return function(){}}return{error:_filterFunc(\"error\",n.DiagLogLevel.ERROR),warn:_filterFunc(\"warn\",n.DiagLogLevel.WARN),info:_filterFunc(\"info\",n.DiagLogLevel.INFO),debug:_filterFunc(\"debug\",n.DiagLogLevel.DEBUG),verbose:_filterFunc(\"verbose\",n.DiagLogLevel.VERBOSE)}}t.createLogLevelDiagLogger=createLogLevelDiagLogger},957:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.DiagLogLevel=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"ERROR\"]=30]=\"ERROR\";e[e[\"WARN\"]=50]=\"WARN\";e[e[\"INFO\"]=60]=\"INFO\";e[e[\"DEBUG\"]=70]=\"DEBUG\";e[e[\"VERBOSE\"]=80]=\"VERBOSE\";e[e[\"ALL\"]=9999]=\"ALL\"})(r=t.DiagLogLevel||(t.DiagLogLevel={}))},172:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.unregisterGlobal=t.getGlobal=t.registerGlobal=void 0;const n=r(200);const a=r(521);const o=r(130);const i=a.VERSION.split(\".\")[0];const c=Symbol.for(`opentelemetry.js.api.${i}`);const s=n._globalThis;function registerGlobal(e,t,r,n=false){var o;const i=s[c]=(o=s[c])!==null&&o!==void 0?o:{version:a.VERSION};if(!n&&i[e]){const t=new Error(`@opentelemetry/api: Attempted duplicate registration of API: ${e}`);r.error(t.stack||t.message);return false}if(i.version!==a.VERSION){const t=new Error(`@opentelemetry/api: Registration of version v${i.version} for ${e} does not match previously registered API v${a.VERSION}`);r.error(t.stack||t.message);return false}i[e]=t;r.debug(`@opentelemetry/api: Registered a global for ${e} v${a.VERSION}.`);return true}t.registerGlobal=registerGlobal;function getGlobal(e){var t,r;const n=(t=s[c])===null||t===void 0?void 0:t.version;if(!n||!(0,o.isCompatible)(n)){return}return(r=s[c])===null||r===void 0?void 0:r[e]}t.getGlobal=getGlobal;function unregisterGlobal(e,t){t.debug(`@opentelemetry/api: Unregistering a global for ${e} v${a.VERSION}.`);const r=s[c];if(r){delete r[e]}}t.unregisterGlobal=unregisterGlobal},130:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.isCompatible=t._makeCompatibilityCheck=void 0;const n=r(521);const a=/^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;function _makeCompatibilityCheck(e){const t=new Set([e]);const r=new Set;const n=e.match(a);if(!n){return()=>false}const o={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(o.prerelease!=null){return function isExactmatch(t){return t===e}}function _reject(e){r.add(e);return false}function _accept(e){t.add(e);return true}return function isCompatible(e){if(t.has(e)){return true}if(r.has(e)){return false}const n=e.match(a);if(!n){return _reject(e)}const i={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(i.prerelease!=null){return _reject(e)}if(o.major!==i.major){return _reject(e)}if(o.major===0){if(o.minor===i.minor&&o.patch<=i.patch){return _accept(e)}return _reject(e)}if(o.minor<=i.minor){return _accept(e)}return _reject(e)}}t._makeCompatibilityCheck=_makeCompatibilityCheck;t.isCompatible=_makeCompatibilityCheck(n.VERSION)},886:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.metrics=void 0;const n=r(653);t.metrics=n.MetricsAPI.getInstance()},901:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ValueType=void 0;var r;(function(e){e[e[\"INT\"]=0]=\"INT\";e[e[\"DOUBLE\"]=1]=\"DOUBLE\"})(r=t.ValueType||(t.ValueType={}))},102:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createNoopMeter=t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=t.NOOP_OBSERVABLE_GAUGE_METRIC=t.NOOP_OBSERVABLE_COUNTER_METRIC=t.NOOP_UP_DOWN_COUNTER_METRIC=t.NOOP_HISTOGRAM_METRIC=t.NOOP_COUNTER_METRIC=t.NOOP_METER=t.NoopObservableUpDownCounterMetric=t.NoopObservableGaugeMetric=t.NoopObservableCounterMetric=t.NoopObservableMetric=t.NoopHistogramMetric=t.NoopUpDownCounterMetric=t.NoopCounterMetric=t.NoopMetric=t.NoopMeter=void 0;class NoopMeter{constructor(){}createHistogram(e,r){return t.NOOP_HISTOGRAM_METRIC}createCounter(e,r){return t.NOOP_COUNTER_METRIC}createUpDownCounter(e,r){return t.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(e,r){return t.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(e,r){return t.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(e,r){return t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(e,t){}removeBatchObservableCallback(e){}}t.NoopMeter=NoopMeter;class NoopMetric{}t.NoopMetric=NoopMetric;class NoopCounterMetric extends NoopMetric{add(e,t){}}t.NoopCounterMetric=NoopCounterMetric;class NoopUpDownCounterMetric extends NoopMetric{add(e,t){}}t.NoopUpDownCounterMetric=NoopUpDownCounterMetric;class NoopHistogramMetric extends NoopMetric{record(e,t){}}t.NoopHistogramMetric=NoopHistogramMetric;class NoopObservableMetric{addCallback(e){}removeCallback(e){}}t.NoopObservableMetric=NoopObservableMetric;class NoopObservableCounterMetric extends NoopObservableMetric{}t.NoopObservableCounterMetric=NoopObservableCounterMetric;class NoopObservableGaugeMetric extends NoopObservableMetric{}t.NoopObservableGaugeMetric=NoopObservableGaugeMetric;class NoopObservableUpDownCounterMetric extends NoopObservableMetric{}t.NoopObservableUpDownCounterMetric=NoopObservableUpDownCounterMetric;t.NOOP_METER=new NoopMeter;t.NOOP_COUNTER_METRIC=new NoopCounterMetric;t.NOOP_HISTOGRAM_METRIC=new NoopHistogramMetric;t.NOOP_UP_DOWN_COUNTER_METRIC=new NoopUpDownCounterMetric;t.NOOP_OBSERVABLE_COUNTER_METRIC=new NoopObservableCounterMetric;t.NOOP_OBSERVABLE_GAUGE_METRIC=new NoopObservableGaugeMetric;t.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new NoopObservableUpDownCounterMetric;function createNoopMeter(){return t.NOOP_METER}t.createNoopMeter=createNoopMeter},660:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NOOP_METER_PROVIDER=t.NoopMeterProvider=void 0;const n=r(102);class NoopMeterProvider{getMeter(e,t,r){return n.NOOP_METER}}t.NoopMeterProvider=NoopMeterProvider;t.NOOP_METER_PROVIDER=new NoopMeterProvider},200:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(46),t)},651:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t._globalThis=void 0;t._globalThis=typeof globalThis===\"object\"?globalThis:global},46:function(e,t,r){var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){if(n===undefined)n=r;Object.defineProperty(e,n,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,n){if(n===undefined)n=r;e[n]=t[r]});var a=this&&this.__exportStar||function(e,t){for(var r in e)if(r!==\"default\"&&!Object.prototype.hasOwnProperty.call(t,r))n(t,e,r)};Object.defineProperty(t,\"__esModule\",{value:true});a(r(651),t)},939:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.propagation=void 0;const n=r(181);t.propagation=n.PropagationAPI.getInstance()},874:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTextMapPropagator=void 0;class NoopTextMapPropagator{inject(e,t){}extract(e,t){return e}fields(){return[]}}t.NoopTextMapPropagator=NoopTextMapPropagator},194:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.defaultTextMapSetter=t.defaultTextMapGetter=void 0;t.defaultTextMapGetter={get(e,t){if(e==null){return undefined}return e[t]},keys(e){if(e==null){return[]}return Object.keys(e)}};t.defaultTextMapSetter={set(e,t,r){if(e==null){return}e[t]=r}}},845:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.trace=void 0;const n=r(997);t.trace=n.TraceAPI.getInstance()},403:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NonRecordingSpan=void 0;const n=r(476);class NonRecordingSpan{constructor(e=n.INVALID_SPAN_CONTEXT){this._spanContext=e}spanContext(){return this._spanContext}setAttribute(e,t){return this}setAttributes(e){return this}addEvent(e,t){return this}setStatus(e){return this}updateName(e){return this}end(e){}isRecording(){return false}recordException(e,t){}}t.NonRecordingSpan=NonRecordingSpan},614:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracer=void 0;const n=r(491);const a=r(607);const o=r(403);const i=r(139);const c=n.ContextAPI.getInstance();class NoopTracer{startSpan(e,t,r=c.active()){const n=Boolean(t===null||t===void 0?void 0:t.root);if(n){return new o.NonRecordingSpan}const s=r&&(0,a.getSpanContext)(r);if(isSpanContext(s)&&(0,i.isSpanContextValid)(s)){return new o.NonRecordingSpan(s)}else{return new o.NonRecordingSpan}}startActiveSpan(e,t,r,n){let o;let i;let s;if(arguments.length<2){return}else if(arguments.length===2){s=t}else if(arguments.length===3){o=t;s=r}else{o=t;i=r;s=n}const u=i!==null&&i!==void 0?i:c.active();const l=this.startSpan(e,o,u);const g=(0,a.setSpan)(u,l);return c.with(g,s,undefined,l)}}t.NoopTracer=NoopTracer;function isSpanContext(e){return typeof e===\"object\"&&typeof e[\"spanId\"]===\"string\"&&typeof e[\"traceId\"]===\"string\"&&typeof e[\"traceFlags\"]===\"number\"}},124:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.NoopTracerProvider=void 0;const n=r(614);class NoopTracerProvider{getTracer(e,t,r){return new n.NoopTracer}}t.NoopTracerProvider=NoopTracerProvider},125:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracer=void 0;const n=r(614);const a=new n.NoopTracer;class ProxyTracer{constructor(e,t,r,n){this._provider=e;this.name=t;this.version=r;this.options=n}startSpan(e,t,r){return this._getTracer().startSpan(e,t,r)}startActiveSpan(e,t,r,n){const a=this._getTracer();return Reflect.apply(a.startActiveSpan,a,arguments)}_getTracer(){if(this._delegate){return this._delegate}const e=this._provider.getDelegateTracer(this.name,this.version,this.options);if(!e){return a}this._delegate=e;return this._delegate}}t.ProxyTracer=ProxyTracer},846:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.ProxyTracerProvider=void 0;const n=r(125);const a=r(124);const o=new a.NoopTracerProvider;class ProxyTracerProvider{getTracer(e,t,r){var a;return(a=this.getDelegateTracer(e,t,r))!==null&&a!==void 0?a:new n.ProxyTracer(this,e,t,r)}getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:o}setDelegate(e){this._delegate=e}getDelegateTracer(e,t,r){var n;return(n=this._delegate)===null||n===void 0?void 0:n.getTracer(e,t,r)}}t.ProxyTracerProvider=ProxyTracerProvider},996:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SamplingDecision=void 0;var r;(function(e){e[e[\"NOT_RECORD\"]=0]=\"NOT_RECORD\";e[e[\"RECORD\"]=1]=\"RECORD\";e[e[\"RECORD_AND_SAMPLED\"]=2]=\"RECORD_AND_SAMPLED\"})(r=t.SamplingDecision||(t.SamplingDecision={}))},607:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.getSpanContext=t.setSpanContext=t.deleteSpan=t.setSpan=t.getActiveSpan=t.getSpan=void 0;const n=r(780);const a=r(403);const o=r(491);const i=(0,n.createContextKey)(\"OpenTelemetry Context Key SPAN\");function getSpan(e){return e.getValue(i)||undefined}t.getSpan=getSpan;function getActiveSpan(){return getSpan(o.ContextAPI.getInstance().active())}t.getActiveSpan=getActiveSpan;function setSpan(e,t){return e.setValue(i,t)}t.setSpan=setSpan;function deleteSpan(e){return e.deleteValue(i)}t.deleteSpan=deleteSpan;function setSpanContext(e,t){return setSpan(e,new a.NonRecordingSpan(t))}t.setSpanContext=setSpanContext;function getSpanContext(e){var t;return(t=getSpan(e))===null||t===void 0?void 0:t.spanContext()}t.getSpanContext=getSpanContext},325:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceStateImpl=void 0;const n=r(564);const a=32;const o=512;const i=\",\";const c=\"=\";class TraceStateImpl{constructor(e){this._internalState=new Map;if(e)this._parse(e)}set(e,t){const r=this._clone();if(r._internalState.has(e)){r._internalState.delete(e)}r._internalState.set(e,t);return r}unset(e){const t=this._clone();t._internalState.delete(e);return t}get(e){return this._internalState.get(e)}serialize(){return this._keys().reduce(((e,t)=>{e.push(t+c+this.get(t));return e}),[]).join(i)}_parse(e){if(e.length>o)return;this._internalState=e.split(i).reverse().reduce(((e,t)=>{const r=t.trim();const a=r.indexOf(c);if(a!==-1){const o=r.slice(0,a);const i=r.slice(a+1,t.length);if((0,n.validateKey)(o)&&(0,n.validateValue)(i)){e.set(o,i)}else{}}return e}),new Map);if(this._internalState.size>a){this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,a))}}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){const e=new TraceStateImpl;e._internalState=new Map(this._internalState);return e}}t.TraceStateImpl=TraceStateImpl},564:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.validateValue=t.validateKey=void 0;const r=\"[_0-9a-z-*/]\";const n=`[a-z]${r}{0,255}`;const a=`[a-z0-9]${r}{0,240}@[a-z]${r}{0,13}`;const o=new RegExp(`^(?:${n}|${a})$`);const i=/^[ -~]{0,255}[!-~]$/;const c=/,|=/;function validateKey(e){return o.test(e)}t.validateKey=validateKey;function validateValue(e){return i.test(e)&&!c.test(e)}t.validateValue=validateValue},98:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.createTraceState=void 0;const n=r(325);function createTraceState(e){return new n.TraceStateImpl(e)}t.createTraceState=createTraceState},476:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.INVALID_SPAN_CONTEXT=t.INVALID_TRACEID=t.INVALID_SPANID=void 0;const n=r(475);t.INVALID_SPANID=\"0000000000000000\";t.INVALID_TRACEID=\"00000000000000000000000000000000\";t.INVALID_SPAN_CONTEXT={traceId:t.INVALID_TRACEID,spanId:t.INVALID_SPANID,traceFlags:n.TraceFlags.NONE}},357:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanKind=void 0;var r;(function(e){e[e[\"INTERNAL\"]=0]=\"INTERNAL\";e[e[\"SERVER\"]=1]=\"SERVER\";e[e[\"CLIENT\"]=2]=\"CLIENT\";e[e[\"PRODUCER\"]=3]=\"PRODUCER\";e[e[\"CONSUMER\"]=4]=\"CONSUMER\"})(r=t.SpanKind||(t.SpanKind={}))},139:(e,t,r)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.wrapSpanContext=t.isSpanContextValid=t.isValidSpanId=t.isValidTraceId=void 0;const n=r(476);const a=r(403);const o=/^([0-9a-f]{32})$/i;const i=/^[0-9a-f]{16}$/i;function isValidTraceId(e){return o.test(e)&&e!==n.INVALID_TRACEID}t.isValidTraceId=isValidTraceId;function isValidSpanId(e){return i.test(e)&&e!==n.INVALID_SPANID}t.isValidSpanId=isValidSpanId;function isSpanContextValid(e){return isValidTraceId(e.traceId)&&isValidSpanId(e.spanId)}t.isSpanContextValid=isSpanContextValid;function wrapSpanContext(e){return new a.NonRecordingSpan(e)}t.wrapSpanContext=wrapSpanContext},847:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.SpanStatusCode=void 0;var r;(function(e){e[e[\"UNSET\"]=0]=\"UNSET\";e[e[\"OK\"]=1]=\"OK\";e[e[\"ERROR\"]=2]=\"ERROR\"})(r=t.SpanStatusCode||(t.SpanStatusCode={}))},475:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.TraceFlags=void 0;var r;(function(e){e[e[\"NONE\"]=0]=\"NONE\";e[e[\"SAMPLED\"]=1]=\"SAMPLED\"})(r=t.TraceFlags||(t.TraceFlags={}))},521:(e,t)=>{Object.defineProperty(t,\"__esModule\",{value:true});t.VERSION=void 0;t.VERSION=\"1.6.0\"}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var a=t[r]={exports:{}};var o=true;try{e[r].call(a.exports,a,a.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r={};(()=>{var e=r;Object.defineProperty(e,\"__esModule\",{value:true});e.trace=e.propagation=e.metrics=e.diag=e.context=e.INVALID_SPAN_CONTEXT=e.INVALID_TRACEID=e.INVALID_SPANID=e.isValidSpanId=e.isValidTraceId=e.isSpanContextValid=e.createTraceState=e.TraceFlags=e.SpanStatusCode=e.SpanKind=e.SamplingDecision=e.ProxyTracerProvider=e.ProxyTracer=e.defaultTextMapSetter=e.defaultTextMapGetter=e.ValueType=e.createNoopMeter=e.DiagLogLevel=e.DiagConsoleLogger=e.ROOT_CONTEXT=e.createContextKey=e.baggageEntryMetadataFromString=void 0;var t=__nccwpck_require__(369);Object.defineProperty(e,\"baggageEntryMetadataFromString\",{enumerable:true,get:function(){return t.baggageEntryMetadataFromString}});var n=__nccwpck_require__(780);Object.defineProperty(e,\"createContextKey\",{enumerable:true,get:function(){return n.createContextKey}});Object.defineProperty(e,\"ROOT_CONTEXT\",{enumerable:true,get:function(){return n.ROOT_CONTEXT}});var a=__nccwpck_require__(972);Object.defineProperty(e,\"DiagConsoleLogger\",{enumerable:true,get:function(){return a.DiagConsoleLogger}});var o=__nccwpck_require__(957);Object.defineProperty(e,\"DiagLogLevel\",{enumerable:true,get:function(){return o.DiagLogLevel}});var i=__nccwpck_require__(102);Object.defineProperty(e,\"createNoopMeter\",{enumerable:true,get:function(){return i.createNoopMeter}});var c=__nccwpck_require__(901);Object.defineProperty(e,\"ValueType\",{enumerable:true,get:function(){return c.ValueType}});var s=__nccwpck_require__(194);Object.defineProperty(e,\"defaultTextMapGetter\",{enumerable:true,get:function(){return s.defaultTextMapGetter}});Object.defineProperty(e,\"defaultTextMapSetter\",{enumerable:true,get:function(){return s.defaultTextMapSetter}});var u=__nccwpck_require__(125);Object.defineProperty(e,\"ProxyTracer\",{enumerable:true,get:function(){return u.ProxyTracer}});var l=__nccwpck_require__(846);Object.defineProperty(e,\"ProxyTracerProvider\",{enumerable:true,get:function(){return l.ProxyTracerProvider}});var g=__nccwpck_require__(996);Object.defineProperty(e,\"SamplingDecision\",{enumerable:true,get:function(){return g.SamplingDecision}});var p=__nccwpck_require__(357);Object.defineProperty(e,\"SpanKind\",{enumerable:true,get:function(){return p.SpanKind}});var d=__nccwpck_require__(847);Object.defineProperty(e,\"SpanStatusCode\",{enumerable:true,get:function(){return d.SpanStatusCode}});var _=__nccwpck_require__(475);Object.defineProperty(e,\"TraceFlags\",{enumerable:true,get:function(){return _.TraceFlags}});var f=__nccwpck_require__(98);Object.defineProperty(e,\"createTraceState\",{enumerable:true,get:function(){return f.createTraceState}});var b=__nccwpck_require__(139);Object.defineProperty(e,\"isSpanContextValid\",{enumerable:true,get:function(){return b.isSpanContextValid}});Object.defineProperty(e,\"isValidTraceId\",{enumerable:true,get:function(){return b.isValidTraceId}});Object.defineProperty(e,\"isValidSpanId\",{enumerable:true,get:function(){return b.isValidSpanId}});var v=__nccwpck_require__(476);Object.defineProperty(e,\"INVALID_SPANID\",{enumerable:true,get:function(){return v.INVALID_SPANID}});Object.defineProperty(e,\"INVALID_TRACEID\",{enumerable:true,get:function(){return v.INVALID_TRACEID}});Object.defineProperty(e,\"INVALID_SPAN_CONTEXT\",{enumerable:true,get:function(){return v.INVALID_SPAN_CONTEXT}});const O=__nccwpck_require__(67);Object.defineProperty(e,\"context\",{enumerable:true,get:function(){return O.context}});const P=__nccwpck_require__(506);Object.defineProperty(e,\"diag\",{enumerable:true,get:function(){return P.diag}});const N=__nccwpck_require__(886);Object.defineProperty(e,\"metrics\",{enumerable:true,get:function(){return N.metrics}});const S=__nccwpck_require__(939);Object.defineProperty(e,\"propagation\",{enumerable:true,get:function(){return S.propagation}});const C=__nccwpck_require__(845);Object.defineProperty(e,\"trace\",{enumerable:true,get:function(){return C.trace}});e[\"default\"]={context:O.context,diag:P.diag,metrics:N.metrics,propagation:S.propagation,trace:C.trace}})();module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BvcGVudGVsZW1ldHJ5L2FwaS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsT0FBTyxjQUFjLHNDQUFzQyxXQUFXLEVBQUUsb0JBQW9CLGVBQWUsZUFBZSxlQUFlLGtCQUFrQixpQ0FBaUMsaUJBQWlCLGVBQWUscUJBQXFCLG9CQUFvQiw4QkFBOEIsc0JBQXNCLDJCQUEyQixxREFBcUQsU0FBUywwQ0FBMEMsaUJBQWlCLGtEQUFrRCxVQUFVLDJDQUEyQyxxQkFBcUIsNEJBQTRCLFVBQVUsb0NBQW9DLGdEQUFnRCx3QkFBd0IsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLGlCQUFpQixjQUFjLGVBQWUsZUFBZSxlQUFlLGVBQWUsY0FBYyxjQUFjLHNCQUFzQixzQkFBc0IsZ0NBQWdDLGFBQWEsbUJBQW1CLGFBQWEsc0JBQXNCLDZCQUE2QixJQUFJLFVBQVUsVUFBVSx3SkFBd0osb0RBQW9ELGFBQWEsd0JBQXdCLEdBQUcsWUFBWSxnQ0FBZ0Msa0dBQWtHLGtDQUFrQyxxRkFBcUYsa0RBQWtELEVBQUUsR0FBRyxvRUFBb0UsRUFBRSxHQUFHLDZDQUE2QyxzQkFBc0IsZUFBZSw2QkFBNkIsd0RBQXdELCtCQUErQiwyQkFBMkIseUJBQXlCLHlCQUF5QiwyQkFBMkIsa0JBQWtCLG9CQUFvQiwyQkFBMkIsdUJBQXVCLGtCQUFrQixlQUFlLHNDQUFzQyxXQUFXLEVBQUUsb0JBQW9CLGVBQWUsZUFBZSxlQUFlLGtCQUFrQixpQkFBaUIsZUFBZSxxQkFBcUIsb0JBQW9CLDhCQUE4QixzQkFBc0IsMEJBQTBCLHFEQUFxRCxtQkFBbUIsZ0RBQWdELGdCQUFnQiwrQ0FBK0MsVUFBVSxnREFBZ0Qsd0JBQXdCLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSx3QkFBd0IsZUFBZSxlQUFlLGVBQWUsZUFBZSxlQUFlLGVBQWUsc0JBQXNCLG9DQUFvQyxxQkFBcUIsY0FBYyxtQ0FBbUMsNkJBQTZCLHlDQUF5Qyw2QkFBNkIsbUNBQW1DLHFCQUFxQixvQkFBb0Isa0NBQWtDLHNCQUFzQix1QkFBdUIscURBQXFELHFDQUFxQyxpREFBaUQsc0NBQXNDLGtEQUFrRCxTQUFTLDRDQUE0QyxVQUFVLCtDQUErQyx1QkFBdUIsNkJBQTZCLGdDQUFnQyxlQUFlLHNDQUFzQyxXQUFXLEVBQUUsa0JBQWtCLGVBQWUsZUFBZSxlQUFlLGVBQWUsZUFBZSxnQkFBZ0IsZUFBZSxjQUFjLG9EQUFvRCx1Q0FBdUMsNkNBQTZDLDZCQUE2Qix1QkFBdUIsbUNBQW1DLHFDQUFxQyx1QkFBdUIscUNBQXFDLHFCQUFxQixvQkFBb0IsNEJBQTRCLHNCQUFzQiwyQkFBMkIsK0VBQStFLE1BQU0seUNBQXlDLFNBQVMsb0JBQW9CLG9EQUFvRCxlQUFlLCtDQUErQyxVQUFVLCtDQUErQyxxREFBcUQsb0JBQW9CLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSxvRUFBb0UsZUFBZSxlQUFlLDREQUE0RCx1QkFBdUIsZ0NBQWdDLHdCQUF3Qiw0QkFBNEIsdURBQXVELG9DQUFvQyx5QkFBeUIsdUJBQXVCLHdCQUF3QiwwQkFBMEIsd0JBQXdCLDhCQUE4QixhQUFhLHNDQUFzQyxXQUFXLEVBQUUscUJBQXFCLGtCQUFrQixlQUFlLG1DQUFtQyxZQUFZLDZCQUE2QixPQUFPLGlCQUFpQix1QkFBdUIsSUFBSSxnQkFBZ0IsaUVBQWlFLGNBQWMsdUNBQXVDLG9CQUFvQixTQUFTLGVBQWUsdUNBQXVDLHFCQUFxQixTQUFTLG9CQUFvQix1Q0FBdUMsa0JBQWtCLHFCQUFxQixTQUFTLFFBQVEsd0JBQXdCLDBCQUEwQixhQUFhLHNDQUFzQyxXQUFXLEVBQUUsb0NBQW9DLDREQUE0RCxlQUFlLHNDQUFzQyxXQUFXLEVBQUUsd0RBQXdELGVBQWUsZUFBZSxlQUFlLDZCQUE2QiwyQkFBMkIsRUFBRSxxREFBcUQsOEJBQThCLDJDQUEyQyx3QkFBd0IsNkRBQTZELFNBQVMsR0FBRyxLQUFLLE9BQU8saURBQWlELFdBQVcsZ0VBQWdFLGNBQWMsc0NBQXNDLFdBQVcsRUFBRSxpQkFBaUIsZUFBZSxxQ0FBcUMsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLDRCQUE0QixlQUFlLHlCQUF5QixTQUFTLHNCQUFzQixpQkFBaUIsc0JBQXNCLFVBQVUsU0FBUyxTQUFTLFlBQVksVUFBVSxhQUFhLHdDQUF3QyxhQUFhLHNDQUFzQyxXQUFXLEVBQUUseUNBQXlDLDZCQUE2QixxQkFBcUIsb0NBQW9DLGtCQUFrQixlQUFlLGFBQWEsdUNBQXVDLHVDQUF1QyxtQkFBbUIsMkNBQTJDLDJCQUEyQixVQUFVLGtCQUFrQiwyQ0FBMkMsNEJBQTRCLFdBQVcsK0JBQStCLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSxjQUFjLGVBQWUsNEJBQTRCLGNBQWMsc0NBQXNDLFdBQVcsRUFBRSw2QkFBNkIsZUFBZSwwQkFBMEIsZUFBZSxtREFBbUQsWUFBWSwyQ0FBMkMsWUFBWSwyQ0FBMkMsV0FBVywwQ0FBMEMsV0FBVywwQ0FBMEMsY0FBYyw4Q0FBOEMsMENBQTBDLHlCQUF5QixnQ0FBZ0MsT0FBTyxPQUFPLGFBQWEsbUJBQW1CLGFBQWEsc0NBQXNDLFdBQVcsRUFBRSwyQkFBMkIsVUFBVSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxzQkFBc0IsRUFBRSx3QkFBd0IsY0FBYyx5QkFBeUIsc0JBQXNCLFlBQVksaUJBQWlCLDBCQUEwQixjQUFjLDBCQUEwQiw2QkFBNkIsWUFBWSxXQUFXLEtBQUssb0NBQW9DLHNDQUFzQyxlQUFlLHNDQUFzQyxXQUFXLEVBQUUsa0NBQWtDLGVBQWUsdUNBQXVDLDBCQUEwQixzQkFBc0IsOEJBQThCLHFCQUFxQixRQUFRLDBCQUEwQixhQUFhLGdDQUFnQyxpQkFBaUIsb0JBQW9CLE9BQU8saVBBQWlQLG9EQUFvRCxhQUFhLHNDQUFzQyxXQUFXLEVBQUUsc0JBQXNCLE1BQU0sYUFBYSxzQkFBc0IseUJBQXlCLHVCQUF1Qix1QkFBdUIseUJBQXlCLDZCQUE2Qix1QkFBdUIsc0NBQXNDLEdBQUcsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLHVEQUF1RCxlQUFlLGVBQWUsZUFBZSxnQ0FBZ0MsMkNBQTJDLEVBQUUsR0FBRyxzQkFBc0IsdUNBQXVDLE1BQU0sNENBQTRDLG1CQUFtQixhQUFhLGtGQUFrRixFQUFFLEdBQUcsNEJBQTRCLGFBQWEsMEJBQTBCLGtFQUFrRSxXQUFXLE1BQU0sR0FBRyw0Q0FBNEMsVUFBVSxHQUFHLDRCQUE0QixhQUFhLE9BQU8sdURBQXVELEdBQUcsR0FBRyxVQUFVLElBQUksWUFBWSxnQ0FBZ0Msc0JBQXNCLFFBQVEscURBQXFELCtCQUErQixPQUFPLDhDQUE4QyxzQkFBc0IsK0JBQStCLDBEQUEwRCxHQUFHLEdBQUcsVUFBVSxJQUFJLGFBQWEsTUFBTSxhQUFhLG9DQUFvQyxlQUFlLHNDQUFzQyxXQUFXLEVBQUUsZ0RBQWdELGVBQWUsd0NBQXdDLG9DQUFvQyxxQkFBcUIsZ0JBQWdCLG1CQUFtQixPQUFPLGdCQUFnQixTQUFTLHFEQUFxRCx1QkFBdUIsZ0NBQWdDLGNBQWMsb0JBQW9CLFNBQVMsYUFBYSxvQkFBb0IsU0FBUyxZQUFZLGdDQUFnQyxhQUFhLFlBQVksYUFBYSxhQUFhLG1CQUFtQixPQUFPLGtCQUFrQixTQUFTLHFEQUFxRCx1QkFBdUIsa0JBQWtCLHNCQUFzQixrQkFBa0IsZ0JBQWdCLHdDQUF3QyxrQkFBa0Isa0JBQWtCLHFCQUFxQixrQkFBa0IsbUJBQW1CLGtEQUFrRCxrREFBa0QsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLGlCQUFpQixlQUFlLHFDQUFxQyxhQUFhLHNDQUFzQyxXQUFXLEVBQUUsbUJBQW1CLE1BQU0sYUFBYSxvQkFBb0IsMEJBQTBCLGdDQUFnQyxHQUFHLGFBQWEsc0NBQXNDLFdBQVcsRUFBRSw2YUFBNmEsZ0JBQWdCLGVBQWUscUJBQXFCLCtCQUErQixtQkFBbUIsNkJBQTZCLHlCQUF5QixxQ0FBcUMsMkJBQTJCLHNDQUFzQyw2QkFBNkIsd0NBQXdDLG1DQUFtQyxnREFBZ0QsaUNBQWlDLG1DQUFtQyxzQkFBc0Isa0JBQWtCLHdCQUF3QiwyQ0FBMkMsV0FBVyxzQ0FBc0MsaURBQWlELFdBQVcsa0RBQWtELDZDQUE2QyxjQUFjLDBDQUEwQywyQkFBMkIsZ0JBQWdCLG9CQUFvQiw0Q0FBNEMsZ0VBQWdFLDBEQUEwRCw4REFBOEQsc0RBQXNELHNFQUFzRSxzRUFBc0UsMkJBQTJCLDRDQUE0QyxnREFBZ0QsMERBQTBELGlFQUFpRSw2REFBNkQsK0VBQStFLDJCQUEyQixvQkFBb0Isa0NBQWtDLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSxpREFBaUQsZUFBZSx3QkFBd0IsZ0JBQWdCLHFCQUFxQixzQ0FBc0MsNENBQTRDLHFCQUFxQixtRUFBbUUscUJBQXFCLDJCQUEyQiwrQkFBK0IsYUFBYSxFQUFFLG1CQUFtQixxQkFBcUIsVUFBVSxFQUFFLDZDQUE2QyxzRkFBc0Ysc0NBQXNDLFdBQVcsRUFBRSxXQUFXLGFBQWEsc0NBQXNDLFdBQVcsRUFBRSxxQkFBcUIsNkRBQTZELG9CQUFvQixtRUFBbUUscUJBQXFCLDJCQUEyQiwrQkFBK0IsYUFBYSxFQUFFLG1CQUFtQixxQkFBcUIsVUFBVSxFQUFFLDZDQUE2QyxzRkFBc0Ysc0NBQXNDLFdBQVcsRUFBRSxZQUFZLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSxxQkFBcUIsZUFBZSw2Q0FBNkMsYUFBYSxzQ0FBc0MsV0FBVyxFQUFFLCtCQUErQiw0QkFBNEIsYUFBYSxhQUFhLFNBQVMsU0FBUyxVQUFVLDhDQUE4QyxhQUFhLHNDQUFzQyxXQUFXLEVBQUUscURBQXFELHdCQUF3QixTQUFTLFlBQVksaUJBQWlCLFlBQVksU0FBUyxZQUFZLFNBQVMsd0JBQXdCLHdCQUF3QixXQUFXLFlBQVksT0FBTyxTQUFTLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSxlQUFlLGVBQWUsaUNBQWlDLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSwwQkFBMEIsZUFBZSx1QkFBdUIsc0NBQXNDLG9CQUFvQixjQUFjLHlCQUF5QixrQkFBa0IsWUFBWSxpQkFBaUIsWUFBWSxjQUFjLFlBQVksYUFBYSxZQUFZLGNBQWMsWUFBWSxRQUFRLGNBQWMsYUFBYSx1QkFBdUIsb0NBQW9DLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSxvQkFBb0IsZUFBZSxlQUFlLGVBQWUsZUFBZSxtQ0FBbUMsaUJBQWlCLDRCQUE0QixvREFBb0QsTUFBTSw4QkFBOEIsbUNBQW1DLGtEQUFrRCxpQ0FBaUMsS0FBSywrQkFBK0IseUJBQXlCLE1BQU0sTUFBTSxNQUFNLHVCQUF1QixPQUFPLDhCQUE4QixJQUFJLDhCQUE4QixJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSwwQ0FBMEMsOEJBQThCLDJCQUEyQixnQ0FBZ0Msd0JBQXdCLDBCQUEwQiw4SEFBOEgsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLDRCQUE0QixlQUFlLHlCQUF5QixpQkFBaUIseUJBQXlCLHdDQUF3QyxlQUFlLHNDQUFzQyxXQUFXLEVBQUUscUJBQXFCLGVBQWUseUJBQXlCLGtCQUFrQixxQkFBcUIsaUJBQWlCLFlBQVksZUFBZSxlQUFlLGlCQUFpQiwwQ0FBMEMseUJBQXlCLDBCQUEwQixvREFBb0QsYUFBYSxtQkFBbUIsc0JBQXNCLDhFQUE4RSxPQUFPLFNBQVMsaUJBQWlCLHVCQUF1QiwwQkFBMEIsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLDZCQUE2QixlQUFlLGVBQWUsaUNBQWlDLDBCQUEwQixpQkFBaUIsTUFBTSwyRkFBMkYsY0FBYyxNQUFNLGdEQUFnRCxlQUFlLGlCQUFpQix5QkFBeUIsTUFBTSx1RUFBdUUsMENBQTBDLGFBQWEsc0NBQXNDLFdBQVcsRUFBRSwwQkFBMEIsTUFBTSxhQUFhLGtDQUFrQywwQkFBMEIsa0RBQWtELDhDQUE4QyxHQUFHLGVBQWUsc0NBQXNDLFdBQVcsRUFBRSwwRkFBMEYsZUFBZSxlQUFlLGVBQWUsaUVBQWlFLG9CQUFvQixnQ0FBZ0Msa0JBQWtCLHlCQUF5QixvREFBb0QsOEJBQThCLHNCQUFzQix1QkFBdUIsa0JBQWtCLHVCQUF1Qix3QkFBd0Isd0JBQXdCLDZCQUE2Qiw0Q0FBNEMsZ0NBQWdDLDJCQUEyQixNQUFNLCtEQUErRCxnQ0FBZ0MsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLHdCQUF3QixlQUFlLFdBQVcsWUFBWSxZQUFZLFlBQVkscUJBQXFCLGVBQWUsNEJBQTRCLG9CQUFvQixTQUFTLHNCQUFzQiw0QkFBNEIsMkJBQTJCLDBCQUEwQixTQUFTLFNBQVMsc0JBQXNCLDJCQUEyQixTQUFTLE9BQU8sa0NBQWtDLFlBQVksb0NBQW9DLHdCQUF3QixTQUFTLGNBQWMsVUFBVSxxQkFBcUIseURBQXlELGlCQUFpQixxQkFBcUIsV0FBVyxxQkFBcUIsOEJBQThCLGlEQUFpRCxXQUFXLE9BQU8sU0FBUyxXQUFXLCtCQUErQiw2RkFBNkYsUUFBUSx3REFBd0QsU0FBUywyQkFBMkIsOENBQThDLFVBQVUsZ0NBQWdDLGFBQWEsc0NBQXNDLFdBQVcsRUFBRSxxQ0FBcUMsdUJBQXVCLGdCQUFnQixHQUFHLE1BQU0sRUFBRSxtQkFBbUIsR0FBRyxNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQUUsMEJBQTBCLEVBQUUsR0FBRyxFQUFFLEtBQUssZ0JBQWdCLE1BQU0sUUFBUSxjQUFjLHdCQUF3QixpQkFBaUIsMEJBQTBCLDBCQUEwQiw2QkFBNkIsOEJBQThCLGNBQWMsc0NBQXNDLFdBQVcsRUFBRSwwQkFBMEIsZUFBZSw2QkFBNkIsK0JBQStCLG9DQUFvQyxlQUFlLHNDQUFzQyxXQUFXLEVBQUUsaUVBQWlFLGVBQWUsb0NBQW9DLHFEQUFxRCx3QkFBd0IsZ0ZBQWdGLGFBQWEsc0NBQXNDLFdBQVcsRUFBRSxrQkFBa0IsTUFBTSxhQUFhLDhCQUE4QiwwQkFBMEIsMEJBQTBCLDhCQUE4Qiw4QkFBOEIsOEJBQThCLEdBQUcsZUFBZSxzQ0FBc0MsV0FBVyxFQUFFLCtFQUErRSxlQUFlLGVBQWUsb0JBQW9CLEdBQUcsS0FBSyxtQkFBbUIsR0FBRyxJQUFJLDJCQUEyQix3Q0FBd0MsZ0NBQWdDLDBCQUEwQix1Q0FBdUMsOEJBQThCLCtCQUErQiwwREFBMEQsd0NBQXdDLDRCQUE0QixpQ0FBaUMsa0NBQWtDLGFBQWEsc0NBQXNDLFdBQVcsRUFBRSx3QkFBd0IsTUFBTSxhQUFhLHdCQUF3QixrQkFBa0Isd0JBQXdCLDBDQUEwQyxHQUFHLGFBQWEsc0NBQXNDLFdBQVcsRUFBRSxvQkFBb0IsTUFBTSxhQUFhLHNCQUFzQiw0QkFBNEIsa0NBQWtDLEdBQUcsYUFBYSxzQ0FBc0MsV0FBVyxFQUFFLGlCQUFpQixvQkFBb0IsU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUkscURBQXFELFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRixTQUFTLE1BQU0sUUFBUSxzQ0FBc0MsV0FBVyxFQUFFLDZjQUE2YywrQkFBK0IsMERBQTBELCtCQUErQix5Q0FBeUMsRUFBRSwrQkFBK0IsNENBQTRDLCtCQUErQiwyQkFBMkIsRUFBRSx3Q0FBd0MsK0JBQStCLHVCQUF1QixFQUFFLCtCQUErQiw2Q0FBNkMsK0JBQStCLDRCQUE0QixFQUFFLCtCQUErQix3Q0FBd0MsK0JBQStCLHVCQUF1QixFQUFFLCtCQUErQiwyQ0FBMkMsK0JBQStCLDBCQUEwQixFQUFFLCtCQUErQixxQ0FBcUMsK0JBQStCLG9CQUFvQixFQUFFLCtCQUErQixnREFBZ0QsK0JBQStCLCtCQUErQixFQUFFLGdEQUFnRCwrQkFBK0IsK0JBQStCLEVBQUUsK0JBQStCLHVDQUF1QywrQkFBK0Isc0JBQXNCLEVBQUUsK0JBQStCLCtDQUErQywrQkFBK0IsOEJBQThCLEVBQUUsK0JBQStCLDRDQUE0QywrQkFBK0IsMkJBQTJCLEVBQUUsK0JBQStCLG9DQUFvQywrQkFBK0IsbUJBQW1CLEVBQUUsK0JBQStCLDBDQUEwQywrQkFBK0IseUJBQXlCLEVBQUUsK0JBQStCLHNDQUFzQywrQkFBK0IscUJBQXFCLEVBQUUsOEJBQThCLDRDQUE0QywrQkFBK0IsMkJBQTJCLEVBQUUsK0JBQStCLDhDQUE4QywrQkFBK0IsNkJBQTZCLEVBQUUsMENBQTBDLCtCQUErQix5QkFBeUIsRUFBRSx5Q0FBeUMsK0JBQStCLHdCQUF3QixFQUFFLCtCQUErQiwwQ0FBMEMsK0JBQStCLHlCQUF5QixFQUFFLDJDQUEyQywrQkFBK0IsMEJBQTBCLEVBQUUsZ0RBQWdELCtCQUErQiwrQkFBK0IsRUFBRSxnQ0FBZ0MsbUNBQW1DLCtCQUErQixrQkFBa0IsRUFBRSxpQ0FBaUMsZ0NBQWdDLCtCQUErQixlQUFlLEVBQUUsaUNBQWlDLG1DQUFtQywrQkFBK0Isa0JBQWtCLEVBQUUsaUNBQWlDLHVDQUF1QywrQkFBK0Isc0JBQXNCLEVBQUUsaUNBQWlDLGlDQUFpQywrQkFBK0IsZ0JBQWdCLEVBQUUsY0FBYyx5RkFBeUYsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BvcGVudGVsZW1ldHJ5L2FwaS9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgZT17NDkxOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuQ29udGV4dEFQST12b2lkIDA7Y29uc3Qgbj1yKDIyMyk7Y29uc3QgYT1yKDE3Mik7Y29uc3Qgbz1yKDkzMCk7Y29uc3QgaT1cImNvbnRleHRcIjtjb25zdCBjPW5ldyBuLk5vb3BDb250ZXh0TWFuYWdlcjtjbGFzcyBDb250ZXh0QVBJe2NvbnN0cnVjdG9yKCl7fXN0YXRpYyBnZXRJbnN0YW5jZSgpe2lmKCF0aGlzLl9pbnN0YW5jZSl7dGhpcy5faW5zdGFuY2U9bmV3IENvbnRleHRBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbENvbnRleHRNYW5hZ2VyKGUpe3JldHVybigwLGEucmVnaXN0ZXJHbG9iYWwpKGksZSxvLkRpYWdBUEkuaW5zdGFuY2UoKSl9YWN0aXZlKCl7cmV0dXJuIHRoaXMuX2dldENvbnRleHRNYW5hZ2VyKCkuYWN0aXZlKCl9d2l0aChlLHQsciwuLi5uKXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS53aXRoKGUsdCxyLC4uLm4pfWJpbmQoZSx0KXtyZXR1cm4gdGhpcy5fZ2V0Q29udGV4dE1hbmFnZXIoKS5iaW5kKGUsdCl9X2dldENvbnRleHRNYW5hZ2VyKCl7cmV0dXJuKDAsYS5nZXRHbG9iYWwpKGkpfHxjfWRpc2FibGUoKXt0aGlzLl9nZXRDb250ZXh0TWFuYWdlcigpLmRpc2FibGUoKTsoMCxhLnVucmVnaXN0ZXJHbG9iYWwpKGksby5EaWFnQVBJLmluc3RhbmNlKCkpfX10LkNvbnRleHRBUEk9Q29udGV4dEFQSX0sOTMwOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuRGlhZ0FQST12b2lkIDA7Y29uc3Qgbj1yKDU2KTtjb25zdCBhPXIoOTEyKTtjb25zdCBvPXIoOTU3KTtjb25zdCBpPXIoMTcyKTtjb25zdCBjPVwiZGlhZ1wiO2NsYXNzIERpYWdBUEl7Y29uc3RydWN0b3IoKXtmdW5jdGlvbiBfbG9nUHJveHkoZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2NvbnN0IHI9KDAsaS5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtpZighcilyZXR1cm47cmV0dXJuIHJbZV0oLi4udCl9fWNvbnN0IGU9dGhpcztjb25zdCBzZXRMb2dnZXI9KHQscj17bG9nTGV2ZWw6by5EaWFnTG9nTGV2ZWwuSU5GT30pPT57dmFyIG4sYyxzO2lmKHQ9PT1lKXtjb25zdCB0PW5ldyBFcnJvcihcIkNhbm5vdCB1c2UgZGlhZyBhcyB0aGUgbG9nZ2VyIGZvciBpdHNlbGYuIFBsZWFzZSB1c2UgYSBEaWFnTG9nZ2VyIGltcGxlbWVudGF0aW9uIGxpa2UgQ29uc29sZURpYWdMb2dnZXIgb3IgYSBjdXN0b20gaW1wbGVtZW50YXRpb25cIik7ZS5lcnJvcigobj10LnN0YWNrKSE9PW51bGwmJm4hPT12b2lkIDA/bjp0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pZih0eXBlb2Ygcj09PVwibnVtYmVyXCIpe3I9e2xvZ0xldmVsOnJ9fWNvbnN0IHU9KDAsaS5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtjb25zdCBsPSgwLGEuY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyKSgoYz1yLmxvZ0xldmVsKSE9PW51bGwmJmMhPT12b2lkIDA/YzpvLkRpYWdMb2dMZXZlbC5JTkZPLHQpO2lmKHUmJiFyLnN1cHByZXNzT3ZlcnJpZGVNZXNzYWdlKXtjb25zdCBlPShzPShuZXcgRXJyb3IpLnN0YWNrKSE9PW51bGwmJnMhPT12b2lkIDA/czpcIjxmYWlsZWQgdG8gZ2VuZXJhdGUgc3RhY2t0cmFjZT5cIjt1Lndhcm4oYEN1cnJlbnQgbG9nZ2VyIHdpbGwgYmUgb3ZlcndyaXR0ZW4gZnJvbSAke2V9YCk7bC53YXJuKGBDdXJyZW50IGxvZ2dlciB3aWxsIG92ZXJ3cml0ZSBvbmUgYWxyZWFkeSByZWdpc3RlcmVkIGZyb20gJHtlfWApfXJldHVybigwLGkucmVnaXN0ZXJHbG9iYWwpKFwiZGlhZ1wiLGwsZSx0cnVlKX07ZS5zZXRMb2dnZXI9c2V0TG9nZ2VyO2UuZGlzYWJsZT0oKT0+eygwLGkudW5yZWdpc3Rlckdsb2JhbCkoYyxlKX07ZS5jcmVhdGVDb21wb25lbnRMb2dnZXI9ZT0+bmV3IG4uRGlhZ0NvbXBvbmVudExvZ2dlcihlKTtlLnZlcmJvc2U9X2xvZ1Byb3h5KFwidmVyYm9zZVwiKTtlLmRlYnVnPV9sb2dQcm94eShcImRlYnVnXCIpO2UuaW5mbz1fbG9nUHJveHkoXCJpbmZvXCIpO2Uud2Fybj1fbG9nUHJveHkoXCJ3YXJuXCIpO2UuZXJyb3I9X2xvZ1Byb3h5KFwiZXJyb3JcIil9c3RhdGljIGluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgRGlhZ0FQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9fXQuRGlhZ0FQST1EaWFnQVBJfSw2NTM6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5NZXRyaWNzQVBJPXZvaWQgMDtjb25zdCBuPXIoNjYwKTtjb25zdCBhPXIoMTcyKTtjb25zdCBvPXIoOTMwKTtjb25zdCBpPVwibWV0cmljc1wiO2NsYXNzIE1ldHJpY3NBUEl7Y29uc3RydWN0b3IoKXt9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgTWV0cmljc0FQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsTWV0ZXJQcm92aWRlcihlKXtyZXR1cm4oMCxhLnJlZ2lzdGVyR2xvYmFsKShpLGUsby5EaWFnQVBJLmluc3RhbmNlKCkpfWdldE1ldGVyUHJvdmlkZXIoKXtyZXR1cm4oMCxhLmdldEdsb2JhbCkoaSl8fG4uTk9PUF9NRVRFUl9QUk9WSURFUn1nZXRNZXRlcihlLHQscil7cmV0dXJuIHRoaXMuZ2V0TWV0ZXJQcm92aWRlcigpLmdldE1ldGVyKGUsdCxyKX1kaXNhYmxlKCl7KDAsYS51bnJlZ2lzdGVyR2xvYmFsKShpLG8uRGlhZ0FQSS5pbnN0YW5jZSgpKX19dC5NZXRyaWNzQVBJPU1ldHJpY3NBUEl9LDE4MTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3BhZ2F0aW9uQVBJPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjb25zdCBhPXIoODc0KTtjb25zdCBvPXIoMTk0KTtjb25zdCBpPXIoMjc3KTtjb25zdCBjPXIoMzY5KTtjb25zdCBzPXIoOTMwKTtjb25zdCB1PVwicHJvcGFnYXRpb25cIjtjb25zdCBsPW5ldyBhLk5vb3BUZXh0TWFwUHJvcGFnYXRvcjtjbGFzcyBQcm9wYWdhdGlvbkFQSXtjb25zdHJ1Y3Rvcigpe3RoaXMuY3JlYXRlQmFnZ2FnZT1jLmNyZWF0ZUJhZ2dhZ2U7dGhpcy5nZXRCYWdnYWdlPWkuZ2V0QmFnZ2FnZTt0aGlzLmdldEFjdGl2ZUJhZ2dhZ2U9aS5nZXRBY3RpdmVCYWdnYWdlO3RoaXMuc2V0QmFnZ2FnZT1pLnNldEJhZ2dhZ2U7dGhpcy5kZWxldGVCYWdnYWdlPWkuZGVsZXRlQmFnZ2FnZX1zdGF0aWMgZ2V0SW5zdGFuY2UoKXtpZighdGhpcy5faW5zdGFuY2Upe3RoaXMuX2luc3RhbmNlPW5ldyBQcm9wYWdhdGlvbkFQSX1yZXR1cm4gdGhpcy5faW5zdGFuY2V9c2V0R2xvYmFsUHJvcGFnYXRvcihlKXtyZXR1cm4oMCxuLnJlZ2lzdGVyR2xvYmFsKSh1LGUscy5EaWFnQVBJLmluc3RhbmNlKCkpfWluamVjdChlLHQscj1vLmRlZmF1bHRUZXh0TWFwU2V0dGVyKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmluamVjdChlLHQscil9ZXh0cmFjdChlLHQscj1vLmRlZmF1bHRUZXh0TWFwR2V0dGVyKXtyZXR1cm4gdGhpcy5fZ2V0R2xvYmFsUHJvcGFnYXRvcigpLmV4dHJhY3QoZSx0LHIpfWZpZWxkcygpe3JldHVybiB0aGlzLl9nZXRHbG9iYWxQcm9wYWdhdG9yKCkuZmllbGRzKCl9ZGlzYWJsZSgpeygwLG4udW5yZWdpc3Rlckdsb2JhbCkodSxzLkRpYWdBUEkuaW5zdGFuY2UoKSl9X2dldEdsb2JhbFByb3BhZ2F0b3IoKXtyZXR1cm4oMCxuLmdldEdsb2JhbCkodSl8fGx9fXQuUHJvcGFnYXRpb25BUEk9UHJvcGFnYXRpb25BUEl9LDk5NzooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlRyYWNlQVBJPXZvaWQgMDtjb25zdCBuPXIoMTcyKTtjb25zdCBhPXIoODQ2KTtjb25zdCBvPXIoMTM5KTtjb25zdCBpPXIoNjA3KTtjb25zdCBjPXIoOTMwKTtjb25zdCBzPVwidHJhY2VcIjtjbGFzcyBUcmFjZUFQSXtjb25zdHJ1Y3Rvcigpe3RoaXMuX3Byb3h5VHJhY2VyUHJvdmlkZXI9bmV3IGEuUHJveHlUcmFjZXJQcm92aWRlcjt0aGlzLndyYXBTcGFuQ29udGV4dD1vLndyYXBTcGFuQ29udGV4dDt0aGlzLmlzU3BhbkNvbnRleHRWYWxpZD1vLmlzU3BhbkNvbnRleHRWYWxpZDt0aGlzLmRlbGV0ZVNwYW49aS5kZWxldGVTcGFuO3RoaXMuZ2V0U3Bhbj1pLmdldFNwYW47dGhpcy5nZXRBY3RpdmVTcGFuPWkuZ2V0QWN0aXZlU3Bhbjt0aGlzLmdldFNwYW5Db250ZXh0PWkuZ2V0U3BhbkNvbnRleHQ7dGhpcy5zZXRTcGFuPWkuc2V0U3Bhbjt0aGlzLnNldFNwYW5Db250ZXh0PWkuc2V0U3BhbkNvbnRleHR9c3RhdGljIGdldEluc3RhbmNlKCl7aWYoIXRoaXMuX2luc3RhbmNlKXt0aGlzLl9pbnN0YW5jZT1uZXcgVHJhY2VBUEl9cmV0dXJuIHRoaXMuX2luc3RhbmNlfXNldEdsb2JhbFRyYWNlclByb3ZpZGVyKGUpe2NvbnN0IHQ9KDAsbi5yZWdpc3Rlckdsb2JhbCkocyx0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyLGMuRGlhZ0FQSS5pbnN0YW5jZSgpKTtpZih0KXt0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyLnNldERlbGVnYXRlKGUpfXJldHVybiB0fWdldFRyYWNlclByb3ZpZGVyKCl7cmV0dXJuKDAsbi5nZXRHbG9iYWwpKHMpfHx0aGlzLl9wcm94eVRyYWNlclByb3ZpZGVyfWdldFRyYWNlcihlLHQpe3JldHVybiB0aGlzLmdldFRyYWNlclByb3ZpZGVyKCkuZ2V0VHJhY2VyKGUsdCl9ZGlzYWJsZSgpeygwLG4udW5yZWdpc3Rlckdsb2JhbCkocyxjLkRpYWdBUEkuaW5zdGFuY2UoKSk7dGhpcy5fcHJveHlUcmFjZXJQcm92aWRlcj1uZXcgYS5Qcm94eVRyYWNlclByb3ZpZGVyfX10LlRyYWNlQVBJPVRyYWNlQVBJfSwyNzc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5kZWxldGVCYWdnYWdlPXQuc2V0QmFnZ2FnZT10LmdldEFjdGl2ZUJhZ2dhZ2U9dC5nZXRCYWdnYWdlPXZvaWQgMDtjb25zdCBuPXIoNDkxKTtjb25zdCBhPXIoNzgwKTtjb25zdCBvPSgwLGEuY3JlYXRlQ29udGV4dEtleSkoXCJPcGVuVGVsZW1ldHJ5IEJhZ2dhZ2UgS2V5XCIpO2Z1bmN0aW9uIGdldEJhZ2dhZ2UoZSl7cmV0dXJuIGUuZ2V0VmFsdWUobyl8fHVuZGVmaW5lZH10LmdldEJhZ2dhZ2U9Z2V0QmFnZ2FnZTtmdW5jdGlvbiBnZXRBY3RpdmVCYWdnYWdlKCl7cmV0dXJuIGdldEJhZ2dhZ2Uobi5Db250ZXh0QVBJLmdldEluc3RhbmNlKCkuYWN0aXZlKCkpfXQuZ2V0QWN0aXZlQmFnZ2FnZT1nZXRBY3RpdmVCYWdnYWdlO2Z1bmN0aW9uIHNldEJhZ2dhZ2UoZSx0KXtyZXR1cm4gZS5zZXRWYWx1ZShvLHQpfXQuc2V0QmFnZ2FnZT1zZXRCYWdnYWdlO2Z1bmN0aW9uIGRlbGV0ZUJhZ2dhZ2UoZSl7cmV0dXJuIGUuZGVsZXRlVmFsdWUobyl9dC5kZWxldGVCYWdnYWdlPWRlbGV0ZUJhZ2dhZ2V9LDk5MzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5CYWdnYWdlSW1wbD12b2lkIDA7Y2xhc3MgQmFnZ2FnZUltcGx7Y29uc3RydWN0b3IoZSl7dGhpcy5fZW50cmllcz1lP25ldyBNYXAoZSk6bmV3IE1hcH1nZXRFbnRyeShlKXtjb25zdCB0PXRoaXMuX2VudHJpZXMuZ2V0KGUpO2lmKCF0KXtyZXR1cm4gdW5kZWZpbmVkfXJldHVybiBPYmplY3QuYXNzaWduKHt9LHQpfWdldEFsbEVudHJpZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9lbnRyaWVzLmVudHJpZXMoKSkubWFwKCgoW2UsdF0pPT5bZSx0XSkpfXNldEVudHJ5KGUsdCl7Y29uc3Qgcj1uZXcgQmFnZ2FnZUltcGwodGhpcy5fZW50cmllcyk7ci5fZW50cmllcy5zZXQoZSx0KTtyZXR1cm4gcn1yZW1vdmVFbnRyeShlKXtjb25zdCB0PW5ldyBCYWdnYWdlSW1wbCh0aGlzLl9lbnRyaWVzKTt0Ll9lbnRyaWVzLmRlbGV0ZShlKTtyZXR1cm4gdH1yZW1vdmVFbnRyaWVzKC4uLmUpe2NvbnN0IHQ9bmV3IEJhZ2dhZ2VJbXBsKHRoaXMuX2VudHJpZXMpO2Zvcihjb25zdCByIG9mIGUpe3QuX2VudHJpZXMuZGVsZXRlKHIpfXJldHVybiB0fWNsZWFyKCl7cmV0dXJuIG5ldyBCYWdnYWdlSW1wbH19dC5CYWdnYWdlSW1wbD1CYWdnYWdlSW1wbH0sODMwOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sPXZvaWQgMDt0LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sPVN5bWJvbChcIkJhZ2dhZ2VFbnRyeU1ldGFkYXRhXCIpfSwzNjk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9dC5jcmVhdGVCYWdnYWdlPXZvaWQgMDtjb25zdCBuPXIoOTMwKTtjb25zdCBhPXIoOTkzKTtjb25zdCBvPXIoODMwKTtjb25zdCBpPW4uRGlhZ0FQSS5pbnN0YW5jZSgpO2Z1bmN0aW9uIGNyZWF0ZUJhZ2dhZ2UoZT17fSl7cmV0dXJuIG5ldyBhLkJhZ2dhZ2VJbXBsKG5ldyBNYXAoT2JqZWN0LmVudHJpZXMoZSkpKX10LmNyZWF0ZUJhZ2dhZ2U9Y3JlYXRlQmFnZ2FnZTtmdW5jdGlvbiBiYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmcoZSl7aWYodHlwZW9mIGUhPT1cInN0cmluZ1wiKXtpLmVycm9yKGBDYW5ub3QgY3JlYXRlIGJhZ2dhZ2UgbWV0YWRhdGEgZnJvbSB1bmtub3duIHR5cGU6ICR7dHlwZW9mIGV9YCk7ZT1cIlwifXJldHVybntfX1RZUEVfXzpvLmJhZ2dhZ2VFbnRyeU1ldGFkYXRhU3ltYm9sLHRvU3RyaW5nKCl7cmV0dXJuIGV9fX10LmJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZz1iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmd9LDY3OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY29udGV4dD12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7dC5jb250ZXh0PW4uQ29udGV4dEFQSS5nZXRJbnN0YW5jZSgpfSwyMjM6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wQ29udGV4dE1hbmFnZXI9dm9pZCAwO2NvbnN0IG49cig3ODApO2NsYXNzIE5vb3BDb250ZXh0TWFuYWdlcnthY3RpdmUoKXtyZXR1cm4gbi5ST09UX0NPTlRFWFR9d2l0aChlLHQsciwuLi5uKXtyZXR1cm4gdC5jYWxsKHIsLi4ubil9YmluZChlLHQpe3JldHVybiB0fWVuYWJsZSgpe3JldHVybiB0aGlzfWRpc2FibGUoKXtyZXR1cm4gdGhpc319dC5Ob29wQ29udGV4dE1hbmFnZXI9Tm9vcENvbnRleHRNYW5hZ2VyfSw3ODA6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuUk9PVF9DT05URVhUPXQuY3JlYXRlQ29udGV4dEtleT12b2lkIDA7ZnVuY3Rpb24gY3JlYXRlQ29udGV4dEtleShlKXtyZXR1cm4gU3ltYm9sLmZvcihlKX10LmNyZWF0ZUNvbnRleHRLZXk9Y3JlYXRlQ29udGV4dEtleTtjbGFzcyBCYXNlQ29udGV4dHtjb25zdHJ1Y3RvcihlKXtjb25zdCB0PXRoaXM7dC5fY3VycmVudENvbnRleHQ9ZT9uZXcgTWFwKGUpOm5ldyBNYXA7dC5nZXRWYWx1ZT1lPT50Ll9jdXJyZW50Q29udGV4dC5nZXQoZSk7dC5zZXRWYWx1ZT0oZSxyKT0+e2NvbnN0IG49bmV3IEJhc2VDb250ZXh0KHQuX2N1cnJlbnRDb250ZXh0KTtuLl9jdXJyZW50Q29udGV4dC5zZXQoZSxyKTtyZXR1cm4gbn07dC5kZWxldGVWYWx1ZT1lPT57Y29uc3Qgcj1uZXcgQmFzZUNvbnRleHQodC5fY3VycmVudENvbnRleHQpO3IuX2N1cnJlbnRDb250ZXh0LmRlbGV0ZShlKTtyZXR1cm4gcn19fXQuUk9PVF9DT05URVhUPW5ldyBCYXNlQ29udGV4dH0sNTA2OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuZGlhZz12b2lkIDA7Y29uc3Qgbj1yKDkzMCk7dC5kaWFnPW4uRGlhZ0FQSS5pbnN0YW5jZSgpfSw1NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdDb21wb25lbnRMb2dnZXI9dm9pZCAwO2NvbnN0IG49cigxNzIpO2NsYXNzIERpYWdDb21wb25lbnRMb2dnZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5fbmFtZXNwYWNlPWUubmFtZXNwYWNlfHxcIkRpYWdDb21wb25lbnRMb2dnZXJcIn1kZWJ1ZyguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJkZWJ1Z1wiLHRoaXMuX25hbWVzcGFjZSxlKX1lcnJvciguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJlcnJvclwiLHRoaXMuX25hbWVzcGFjZSxlKX1pbmZvKC4uLmUpe3JldHVybiBsb2dQcm94eShcImluZm9cIix0aGlzLl9uYW1lc3BhY2UsZSl9d2FybiguLi5lKXtyZXR1cm4gbG9nUHJveHkoXCJ3YXJuXCIsdGhpcy5fbmFtZXNwYWNlLGUpfXZlcmJvc2UoLi4uZSl7cmV0dXJuIGxvZ1Byb3h5KFwidmVyYm9zZVwiLHRoaXMuX25hbWVzcGFjZSxlKX19dC5EaWFnQ29tcG9uZW50TG9nZ2VyPURpYWdDb21wb25lbnRMb2dnZXI7ZnVuY3Rpb24gbG9nUHJveHkoZSx0LHIpe2NvbnN0IGE9KDAsbi5nZXRHbG9iYWwpKFwiZGlhZ1wiKTtpZighYSl7cmV0dXJufXIudW5zaGlmdCh0KTtyZXR1cm4gYVtlXSguLi5yKX19LDk3MjooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5EaWFnQ29uc29sZUxvZ2dlcj12b2lkIDA7Y29uc3Qgcj1be246XCJlcnJvclwiLGM6XCJlcnJvclwifSx7bjpcIndhcm5cIixjOlwid2FyblwifSx7bjpcImluZm9cIixjOlwiaW5mb1wifSx7bjpcImRlYnVnXCIsYzpcImRlYnVnXCJ9LHtuOlwidmVyYm9zZVwiLGM6XCJ0cmFjZVwifV07Y2xhc3MgRGlhZ0NvbnNvbGVMb2dnZXJ7Y29uc3RydWN0b3IoKXtmdW5jdGlvbiBfY29uc29sZUZ1bmMoZSl7cmV0dXJuIGZ1bmN0aW9uKC4uLnQpe2lmKGNvbnNvbGUpe2xldCByPWNvbnNvbGVbZV07aWYodHlwZW9mIHIhPT1cImZ1bmN0aW9uXCIpe3I9Y29uc29sZS5sb2d9aWYodHlwZW9mIHI9PT1cImZ1bmN0aW9uXCIpe3JldHVybiByLmFwcGx5KGNvbnNvbGUsdCl9fX19Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspe3RoaXNbcltlXS5uXT1fY29uc29sZUZ1bmMocltlXS5jKX19fXQuRGlhZ0NvbnNvbGVMb2dnZXI9RGlhZ0NvbnNvbGVMb2dnZXJ9LDkxMjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcj12b2lkIDA7Y29uc3Qgbj1yKDk1Nyk7ZnVuY3Rpb24gY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyKGUsdCl7aWYoZTxuLkRpYWdMb2dMZXZlbC5OT05FKXtlPW4uRGlhZ0xvZ0xldmVsLk5PTkV9ZWxzZSBpZihlPm4uRGlhZ0xvZ0xldmVsLkFMTCl7ZT1uLkRpYWdMb2dMZXZlbC5BTEx9dD10fHx7fTtmdW5jdGlvbiBfZmlsdGVyRnVuYyhyLG4pe2NvbnN0IGE9dFtyXTtpZih0eXBlb2YgYT09PVwiZnVuY3Rpb25cIiYmZT49bil7cmV0dXJuIGEuYmluZCh0KX1yZXR1cm4gZnVuY3Rpb24oKXt9fXJldHVybntlcnJvcjpfZmlsdGVyRnVuYyhcImVycm9yXCIsbi5EaWFnTG9nTGV2ZWwuRVJST1IpLHdhcm46X2ZpbHRlckZ1bmMoXCJ3YXJuXCIsbi5EaWFnTG9nTGV2ZWwuV0FSTiksaW5mbzpfZmlsdGVyRnVuYyhcImluZm9cIixuLkRpYWdMb2dMZXZlbC5JTkZPKSxkZWJ1ZzpfZmlsdGVyRnVuYyhcImRlYnVnXCIsbi5EaWFnTG9nTGV2ZWwuREVCVUcpLHZlcmJvc2U6X2ZpbHRlckZ1bmMoXCJ2ZXJib3NlXCIsbi5EaWFnTG9nTGV2ZWwuVkVSQk9TRSl9fXQuY3JlYXRlTG9nTGV2ZWxEaWFnTG9nZ2VyPWNyZWF0ZUxvZ0xldmVsRGlhZ0xvZ2dlcn0sOTU3OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LkRpYWdMb2dMZXZlbD12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PTkVcIl09MF09XCJOT05FXCI7ZVtlW1wiRVJST1JcIl09MzBdPVwiRVJST1JcIjtlW2VbXCJXQVJOXCJdPTUwXT1cIldBUk5cIjtlW2VbXCJJTkZPXCJdPTYwXT1cIklORk9cIjtlW2VbXCJERUJVR1wiXT03MF09XCJERUJVR1wiO2VbZVtcIlZFUkJPU0VcIl09ODBdPVwiVkVSQk9TRVwiO2VbZVtcIkFMTFwiXT05OTk5XT1cIkFMTFwifSkocj10LkRpYWdMb2dMZXZlbHx8KHQuRGlhZ0xvZ0xldmVsPXt9KSl9LDE3MjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnVucmVnaXN0ZXJHbG9iYWw9dC5nZXRHbG9iYWw9dC5yZWdpc3Rlckdsb2JhbD12b2lkIDA7Y29uc3Qgbj1yKDIwMCk7Y29uc3QgYT1yKDUyMSk7Y29uc3Qgbz1yKDEzMCk7Y29uc3QgaT1hLlZFUlNJT04uc3BsaXQoXCIuXCIpWzBdO2NvbnN0IGM9U3ltYm9sLmZvcihgb3BlbnRlbGVtZXRyeS5qcy5hcGkuJHtpfWApO2NvbnN0IHM9bi5fZ2xvYmFsVGhpcztmdW5jdGlvbiByZWdpc3Rlckdsb2JhbChlLHQscixuPWZhbHNlKXt2YXIgbztjb25zdCBpPXNbY109KG89c1tjXSkhPT1udWxsJiZvIT09dm9pZCAwP286e3ZlcnNpb246YS5WRVJTSU9OfTtpZighbiYmaVtlXSl7Y29uc3QgdD1uZXcgRXJyb3IoYEBvcGVudGVsZW1ldHJ5L2FwaTogQXR0ZW1wdGVkIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gb2YgQVBJOiAke2V9YCk7ci5lcnJvcih0LnN0YWNrfHx0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pZihpLnZlcnNpb24hPT1hLlZFUlNJT04pe2NvbnN0IHQ9bmV3IEVycm9yKGBAb3BlbnRlbGVtZXRyeS9hcGk6IFJlZ2lzdHJhdGlvbiBvZiB2ZXJzaW9uIHYke2kudmVyc2lvbn0gZm9yICR7ZX0gZG9lcyBub3QgbWF0Y2ggcHJldmlvdXNseSByZWdpc3RlcmVkIEFQSSB2JHthLlZFUlNJT059YCk7ci5lcnJvcih0LnN0YWNrfHx0Lm1lc3NhZ2UpO3JldHVybiBmYWxzZX1pW2VdPXQ7ci5kZWJ1ZyhgQG9wZW50ZWxlbWV0cnkvYXBpOiBSZWdpc3RlcmVkIGEgZ2xvYmFsIGZvciAke2V9IHYke2EuVkVSU0lPTn0uYCk7cmV0dXJuIHRydWV9dC5yZWdpc3Rlckdsb2JhbD1yZWdpc3Rlckdsb2JhbDtmdW5jdGlvbiBnZXRHbG9iYWwoZSl7dmFyIHQscjtjb25zdCBuPSh0PXNbY10pPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC52ZXJzaW9uO2lmKCFufHwhKDAsby5pc0NvbXBhdGlibGUpKG4pKXtyZXR1cm59cmV0dXJuKHI9c1tjXSk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyW2VdfXQuZ2V0R2xvYmFsPWdldEdsb2JhbDtmdW5jdGlvbiB1bnJlZ2lzdGVyR2xvYmFsKGUsdCl7dC5kZWJ1ZyhgQG9wZW50ZWxlbWV0cnkvYXBpOiBVbnJlZ2lzdGVyaW5nIGEgZ2xvYmFsIGZvciAke2V9IHYke2EuVkVSU0lPTn0uYCk7Y29uc3Qgcj1zW2NdO2lmKHIpe2RlbGV0ZSByW2VdfX10LnVucmVnaXN0ZXJHbG9iYWw9dW5yZWdpc3Rlckdsb2JhbH0sMTMwOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuaXNDb21wYXRpYmxlPXQuX21ha2VDb21wYXRpYmlsaXR5Q2hlY2s9dm9pZCAwO2NvbnN0IG49cig1MjEpO2NvbnN0IGE9L14oXFxkKylcXC4oXFxkKylcXC4oXFxkKykoLSguKykpPyQvO2Z1bmN0aW9uIF9tYWtlQ29tcGF0aWJpbGl0eUNoZWNrKGUpe2NvbnN0IHQ9bmV3IFNldChbZV0pO2NvbnN0IHI9bmV3IFNldDtjb25zdCBuPWUubWF0Y2goYSk7aWYoIW4pe3JldHVybigpPT5mYWxzZX1jb25zdCBvPXttYWpvcjorblsxXSxtaW5vcjorblsyXSxwYXRjaDorblszXSxwcmVyZWxlYXNlOm5bNF19O2lmKG8ucHJlcmVsZWFzZSE9bnVsbCl7cmV0dXJuIGZ1bmN0aW9uIGlzRXhhY3RtYXRjaCh0KXtyZXR1cm4gdD09PWV9fWZ1bmN0aW9uIF9yZWplY3QoZSl7ci5hZGQoZSk7cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIF9hY2NlcHQoZSl7dC5hZGQoZSk7cmV0dXJuIHRydWV9cmV0dXJuIGZ1bmN0aW9uIGlzQ29tcGF0aWJsZShlKXtpZih0LmhhcyhlKSl7cmV0dXJuIHRydWV9aWYoci5oYXMoZSkpe3JldHVybiBmYWxzZX1jb25zdCBuPWUubWF0Y2goYSk7aWYoIW4pe3JldHVybiBfcmVqZWN0KGUpfWNvbnN0IGk9e21ham9yOituWzFdLG1pbm9yOituWzJdLHBhdGNoOituWzNdLHByZXJlbGVhc2U6bls0XX07aWYoaS5wcmVyZWxlYXNlIT1udWxsKXtyZXR1cm4gX3JlamVjdChlKX1pZihvLm1ham9yIT09aS5tYWpvcil7cmV0dXJuIF9yZWplY3QoZSl9aWYoby5tYWpvcj09PTApe2lmKG8ubWlub3I9PT1pLm1pbm9yJiZvLnBhdGNoPD1pLnBhdGNoKXtyZXR1cm4gX2FjY2VwdChlKX1yZXR1cm4gX3JlamVjdChlKX1pZihvLm1pbm9yPD1pLm1pbm9yKXtyZXR1cm4gX2FjY2VwdChlKX1yZXR1cm4gX3JlamVjdChlKX19dC5fbWFrZUNvbXBhdGliaWxpdHlDaGVjaz1fbWFrZUNvbXBhdGliaWxpdHlDaGVjazt0LmlzQ29tcGF0aWJsZT1fbWFrZUNvbXBhdGliaWxpdHlDaGVjayhuLlZFUlNJT04pfSw4ODY6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5tZXRyaWNzPXZvaWQgMDtjb25zdCBuPXIoNjUzKTt0Lm1ldHJpY3M9bi5NZXRyaWNzQVBJLmdldEluc3RhbmNlKCl9LDkwMTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5WYWx1ZVR5cGU9dm9pZCAwO3ZhciByOyhmdW5jdGlvbihlKXtlW2VbXCJJTlRcIl09MF09XCJJTlRcIjtlW2VbXCJET1VCTEVcIl09MV09XCJET1VCTEVcIn0pKHI9dC5WYWx1ZVR5cGV8fCh0LlZhbHVlVHlwZT17fSkpfSwxMDI6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY3JlYXRlTm9vcE1ldGVyPXQuTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUM9dC5OT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDPXQuTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDPXQuTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDPXQuTk9PUF9ISVNUT0dSQU1fTUVUUklDPXQuTk9PUF9DT1VOVEVSX01FVFJJQz10Lk5PT1BfTUVURVI9dC5Ob29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM9dC5Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljPXQuTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljPXQuTm9vcE9ic2VydmFibGVNZXRyaWM9dC5Ob29wSGlzdG9ncmFtTWV0cmljPXQuTm9vcFVwRG93bkNvdW50ZXJNZXRyaWM9dC5Ob29wQ291bnRlck1ldHJpYz10Lk5vb3BNZXRyaWM9dC5Ob29wTWV0ZXI9dm9pZCAwO2NsYXNzIE5vb3BNZXRlcntjb25zdHJ1Y3Rvcigpe31jcmVhdGVIaXN0b2dyYW0oZSxyKXtyZXR1cm4gdC5OT09QX0hJU1RPR1JBTV9NRVRSSUN9Y3JlYXRlQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfQ09VTlRFUl9NRVRSSUN9Y3JlYXRlVXBEb3duQ291bnRlcihlLHIpe3JldHVybiB0Lk5PT1BfVVBfRE9XTl9DT1VOVEVSX01FVFJJQ31jcmVhdGVPYnNlcnZhYmxlR2F1Z2UoZSxyKXtyZXR1cm4gdC5OT09QX09CU0VSVkFCTEVfR0FVR0VfTUVUUklDfWNyZWF0ZU9ic2VydmFibGVDb3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX0NPVU5URVJfTUVUUklDfWNyZWF0ZU9ic2VydmFibGVVcERvd25Db3VudGVyKGUscil7cmV0dXJuIHQuTk9PUF9PQlNFUlZBQkxFX1VQX0RPV05fQ09VTlRFUl9NRVRSSUN9YWRkQmF0Y2hPYnNlcnZhYmxlQ2FsbGJhY2soZSx0KXt9cmVtb3ZlQmF0Y2hPYnNlcnZhYmxlQ2FsbGJhY2soZSl7fX10Lk5vb3BNZXRlcj1Ob29wTWV0ZXI7Y2xhc3MgTm9vcE1ldHJpY3t9dC5Ob29wTWV0cmljPU5vb3BNZXRyaWM7Y2xhc3MgTm9vcENvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje2FkZChlLHQpe319dC5Ob29wQ291bnRlck1ldHJpYz1Ob29wQ291bnRlck1ldHJpYztjbGFzcyBOb29wVXBEb3duQ291bnRlck1ldHJpYyBleHRlbmRzIE5vb3BNZXRyaWN7YWRkKGUsdCl7fX10Lk5vb3BVcERvd25Db3VudGVyTWV0cmljPU5vb3BVcERvd25Db3VudGVyTWV0cmljO2NsYXNzIE5vb3BIaXN0b2dyYW1NZXRyaWMgZXh0ZW5kcyBOb29wTWV0cmlje3JlY29yZChlLHQpe319dC5Ob29wSGlzdG9ncmFtTWV0cmljPU5vb3BIaXN0b2dyYW1NZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVNZXRyaWN7YWRkQ2FsbGJhY2soZSl7fXJlbW92ZUNhbGxiYWNrKGUpe319dC5Ob29wT2JzZXJ2YWJsZU1ldHJpYz1Ob29wT2JzZXJ2YWJsZU1ldHJpYztjbGFzcyBOb29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWMgZXh0ZW5kcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3t9dC5Ob29wT2JzZXJ2YWJsZUNvdW50ZXJNZXRyaWM9Tm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljO2NsYXNzIE5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWMgZXh0ZW5kcyBOb29wT2JzZXJ2YWJsZU1ldHJpY3t9dC5Ob29wT2JzZXJ2YWJsZUdhdWdlTWV0cmljPU5vb3BPYnNlcnZhYmxlR2F1Z2VNZXRyaWM7Y2xhc3MgTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljIGV4dGVuZHMgTm9vcE9ic2VydmFibGVNZXRyaWN7fXQuTm9vcE9ic2VydmFibGVVcERvd25Db3VudGVyTWV0cmljPU5vb3BPYnNlcnZhYmxlVXBEb3duQ291bnRlck1ldHJpYzt0Lk5PT1BfTUVURVI9bmV3IE5vb3BNZXRlcjt0Lk5PT1BfQ09VTlRFUl9NRVRSSUM9bmV3IE5vb3BDb3VudGVyTWV0cmljO3QuTk9PUF9ISVNUT0dSQU1fTUVUUklDPW5ldyBOb29wSGlzdG9ncmFtTWV0cmljO3QuTk9PUF9VUF9ET1dOX0NPVU5URVJfTUVUUklDPW5ldyBOb29wVXBEb3duQ291bnRlck1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9DT1VOVEVSX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVDb3VudGVyTWV0cmljO3QuTk9PUF9PQlNFUlZBQkxFX0dBVUdFX01FVFJJQz1uZXcgTm9vcE9ic2VydmFibGVHYXVnZU1ldHJpYzt0Lk5PT1BfT0JTRVJWQUJMRV9VUF9ET1dOX0NPVU5URVJfTUVUUklDPW5ldyBOb29wT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXJNZXRyaWM7ZnVuY3Rpb24gY3JlYXRlTm9vcE1ldGVyKCl7cmV0dXJuIHQuTk9PUF9NRVRFUn10LmNyZWF0ZU5vb3BNZXRlcj1jcmVhdGVOb29wTWV0ZXJ9LDY2MDooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5PT1BfTUVURVJfUFJPVklERVI9dC5Ob29wTWV0ZXJQcm92aWRlcj12b2lkIDA7Y29uc3Qgbj1yKDEwMik7Y2xhc3MgTm9vcE1ldGVyUHJvdmlkZXJ7Z2V0TWV0ZXIoZSx0LHIpe3JldHVybiBuLk5PT1BfTUVURVJ9fXQuTm9vcE1ldGVyUHJvdmlkZXI9Tm9vcE1ldGVyUHJvdmlkZXI7dC5OT09QX01FVEVSX1BST1ZJREVSPW5ldyBOb29wTWV0ZXJQcm92aWRlcn0sMjAwOmZ1bmN0aW9uKGUsdCxyKXt2YXIgbj10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsbix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB0W3JdfX0pfTpmdW5jdGlvbihlLHQscixuKXtpZihuPT09dW5kZWZpbmVkKW49cjtlW25dPXRbcl19KTt2YXIgYT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oZSx0KXtmb3IodmFyIHIgaW4gZSlpZihyIT09XCJkZWZhdWx0XCImJiFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxyKSluKHQsZSxyKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTthKHIoNDYpLHQpfSw2NTE6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuX2dsb2JhbFRoaXM9dm9pZCAwO3QuX2dsb2JhbFRoaXM9dHlwZW9mIGdsb2JhbFRoaXM9PT1cIm9iamVjdFwiP2dsb2JhbFRoaXM6Z2xvYmFsfSw0NjpmdW5jdGlvbihlLHQscil7dmFyIG49dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKGUsdCxyLG4pe2lmKG49PT11bmRlZmluZWQpbj1yO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4se2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdFtyXX19KX06ZnVuY3Rpb24oZSx0LHIsbil7aWYobj09PXVuZGVmaW5lZCluPXI7ZVtuXT10W3JdfSk7dmFyIGE9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciByIGluIGUpaWYociE9PVwiZGVmYXVsdFwiJiYhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscikpbih0LGUscil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7YShyKDY1MSksdCl9LDkzOTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnByb3BhZ2F0aW9uPXZvaWQgMDtjb25zdCBuPXIoMTgxKTt0LnByb3BhZ2F0aW9uPW4uUHJvcGFnYXRpb25BUEkuZ2V0SW5zdGFuY2UoKX0sODc0OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0Lk5vb3BUZXh0TWFwUHJvcGFnYXRvcj12b2lkIDA7Y2xhc3MgTm9vcFRleHRNYXBQcm9wYWdhdG9ye2luamVjdChlLHQpe31leHRyYWN0KGUsdCl7cmV0dXJuIGV9ZmllbGRzKCl7cmV0dXJuW119fXQuTm9vcFRleHRNYXBQcm9wYWdhdG9yPU5vb3BUZXh0TWFwUHJvcGFnYXRvcn0sMTk0OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LmRlZmF1bHRUZXh0TWFwU2V0dGVyPXQuZGVmYXVsdFRleHRNYXBHZXR0ZXI9dm9pZCAwO3QuZGVmYXVsdFRleHRNYXBHZXR0ZXI9e2dldChlLHQpe2lmKGU9PW51bGwpe3JldHVybiB1bmRlZmluZWR9cmV0dXJuIGVbdF19LGtleXMoZSl7aWYoZT09bnVsbCl7cmV0dXJuW119cmV0dXJuIE9iamVjdC5rZXlzKGUpfX07dC5kZWZhdWx0VGV4dE1hcFNldHRlcj17c2V0KGUsdCxyKXtpZihlPT1udWxsKXtyZXR1cm59ZVt0XT1yfX19LDg0NTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LnRyYWNlPXZvaWQgMDtjb25zdCBuPXIoOTk3KTt0LnRyYWNlPW4uVHJhY2VBUEkuZ2V0SW5zdGFuY2UoKX0sNDAzOihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9uUmVjb3JkaW5nU3Bhbj12b2lkIDA7Y29uc3Qgbj1yKDQ3Nik7Y2xhc3MgTm9uUmVjb3JkaW5nU3Bhbntjb25zdHJ1Y3RvcihlPW4uSU5WQUxJRF9TUEFOX0NPTlRFWFQpe3RoaXMuX3NwYW5Db250ZXh0PWV9c3BhbkNvbnRleHQoKXtyZXR1cm4gdGhpcy5fc3BhbkNvbnRleHR9c2V0QXR0cmlidXRlKGUsdCl7cmV0dXJuIHRoaXN9c2V0QXR0cmlidXRlcyhlKXtyZXR1cm4gdGhpc31hZGRFdmVudChlLHQpe3JldHVybiB0aGlzfXNldFN0YXR1cyhlKXtyZXR1cm4gdGhpc311cGRhdGVOYW1lKGUpe3JldHVybiB0aGlzfWVuZChlKXt9aXNSZWNvcmRpbmcoKXtyZXR1cm4gZmFsc2V9cmVjb3JkRXhjZXB0aW9uKGUsdCl7fX10Lk5vblJlY29yZGluZ1NwYW49Tm9uUmVjb3JkaW5nU3Bhbn0sNjE0OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuTm9vcFRyYWNlcj12b2lkIDA7Y29uc3Qgbj1yKDQ5MSk7Y29uc3QgYT1yKDYwNyk7Y29uc3Qgbz1yKDQwMyk7Y29uc3QgaT1yKDEzOSk7Y29uc3QgYz1uLkNvbnRleHRBUEkuZ2V0SW5zdGFuY2UoKTtjbGFzcyBOb29wVHJhY2Vye3N0YXJ0U3BhbihlLHQscj1jLmFjdGl2ZSgpKXtjb25zdCBuPUJvb2xlYW4odD09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQucm9vdCk7aWYobil7cmV0dXJuIG5ldyBvLk5vblJlY29yZGluZ1NwYW59Y29uc3Qgcz1yJiYoMCxhLmdldFNwYW5Db250ZXh0KShyKTtpZihpc1NwYW5Db250ZXh0KHMpJiYoMCxpLmlzU3BhbkNvbnRleHRWYWxpZCkocykpe3JldHVybiBuZXcgby5Ob25SZWNvcmRpbmdTcGFuKHMpfWVsc2V7cmV0dXJuIG5ldyBvLk5vblJlY29yZGluZ1NwYW59fXN0YXJ0QWN0aXZlU3BhbihlLHQscixuKXtsZXQgbztsZXQgaTtsZXQgcztpZihhcmd1bWVudHMubGVuZ3RoPDIpe3JldHVybn1lbHNlIGlmKGFyZ3VtZW50cy5sZW5ndGg9PT0yKXtzPXR9ZWxzZSBpZihhcmd1bWVudHMubGVuZ3RoPT09Myl7bz10O3M9cn1lbHNle289dDtpPXI7cz1ufWNvbnN0IHU9aSE9PW51bGwmJmkhPT12b2lkIDA/aTpjLmFjdGl2ZSgpO2NvbnN0IGw9dGhpcy5zdGFydFNwYW4oZSxvLHUpO2NvbnN0IGc9KDAsYS5zZXRTcGFuKSh1LGwpO3JldHVybiBjLndpdGgoZyxzLHVuZGVmaW5lZCxsKX19dC5Ob29wVHJhY2VyPU5vb3BUcmFjZXI7ZnVuY3Rpb24gaXNTcGFuQ29udGV4dChlKXtyZXR1cm4gdHlwZW9mIGU9PT1cIm9iamVjdFwiJiZ0eXBlb2YgZVtcInNwYW5JZFwiXT09PVwic3RyaW5nXCImJnR5cGVvZiBlW1widHJhY2VJZFwiXT09PVwic3RyaW5nXCImJnR5cGVvZiBlW1widHJhY2VGbGFnc1wiXT09PVwibnVtYmVyXCJ9fSwxMjQ6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5Ob29wVHJhY2VyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cig2MTQpO2NsYXNzIE5vb3BUcmFjZXJQcm92aWRlcntnZXRUcmFjZXIoZSx0LHIpe3JldHVybiBuZXcgbi5Ob29wVHJhY2VyfX10Lk5vb3BUcmFjZXJQcm92aWRlcj1Ob29wVHJhY2VyUHJvdmlkZXJ9LDEyNTooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3h5VHJhY2VyPXZvaWQgMDtjb25zdCBuPXIoNjE0KTtjb25zdCBhPW5ldyBuLk5vb3BUcmFjZXI7Y2xhc3MgUHJveHlUcmFjZXJ7Y29uc3RydWN0b3IoZSx0LHIsbil7dGhpcy5fcHJvdmlkZXI9ZTt0aGlzLm5hbWU9dDt0aGlzLnZlcnNpb249cjt0aGlzLm9wdGlvbnM9bn1zdGFydFNwYW4oZSx0LHIpe3JldHVybiB0aGlzLl9nZXRUcmFjZXIoKS5zdGFydFNwYW4oZSx0LHIpfXN0YXJ0QWN0aXZlU3BhbihlLHQscixuKXtjb25zdCBhPXRoaXMuX2dldFRyYWNlcigpO3JldHVybiBSZWZsZWN0LmFwcGx5KGEuc3RhcnRBY3RpdmVTcGFuLGEsYXJndW1lbnRzKX1fZ2V0VHJhY2VyKCl7aWYodGhpcy5fZGVsZWdhdGUpe3JldHVybiB0aGlzLl9kZWxlZ2F0ZX1jb25zdCBlPXRoaXMuX3Byb3ZpZGVyLmdldERlbGVnYXRlVHJhY2VyKHRoaXMubmFtZSx0aGlzLnZlcnNpb24sdGhpcy5vcHRpb25zKTtpZighZSl7cmV0dXJuIGF9dGhpcy5fZGVsZWdhdGU9ZTtyZXR1cm4gdGhpcy5fZGVsZWdhdGV9fXQuUHJveHlUcmFjZXI9UHJveHlUcmFjZXJ9LDg0NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlByb3h5VHJhY2VyUHJvdmlkZXI9dm9pZCAwO2NvbnN0IG49cigxMjUpO2NvbnN0IGE9cigxMjQpO2NvbnN0IG89bmV3IGEuTm9vcFRyYWNlclByb3ZpZGVyO2NsYXNzIFByb3h5VHJhY2VyUHJvdmlkZXJ7Z2V0VHJhY2VyKGUsdCxyKXt2YXIgYTtyZXR1cm4oYT10aGlzLmdldERlbGVnYXRlVHJhY2VyKGUsdCxyKSkhPT1udWxsJiZhIT09dm9pZCAwP2E6bmV3IG4uUHJveHlUcmFjZXIodGhpcyxlLHQscil9Z2V0RGVsZWdhdGUoKXt2YXIgZTtyZXR1cm4oZT10aGlzLl9kZWxlZ2F0ZSkhPT1udWxsJiZlIT09dm9pZCAwP2U6b31zZXREZWxlZ2F0ZShlKXt0aGlzLl9kZWxlZ2F0ZT1lfWdldERlbGVnYXRlVHJhY2VyKGUsdCxyKXt2YXIgbjtyZXR1cm4obj10aGlzLl9kZWxlZ2F0ZSk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLmdldFRyYWNlcihlLHQscil9fXQuUHJveHlUcmFjZXJQcm92aWRlcj1Qcm94eVRyYWNlclByb3ZpZGVyfSw5OTY6KGUsdCk9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuU2FtcGxpbmdEZWNpc2lvbj12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIk5PVF9SRUNPUkRcIl09MF09XCJOT1RfUkVDT1JEXCI7ZVtlW1wiUkVDT1JEXCJdPTFdPVwiUkVDT1JEXCI7ZVtlW1wiUkVDT1JEX0FORF9TQU1QTEVEXCJdPTJdPVwiUkVDT1JEX0FORF9TQU1QTEVEXCJ9KShyPXQuU2FtcGxpbmdEZWNpc2lvbnx8KHQuU2FtcGxpbmdEZWNpc2lvbj17fSkpfSw2MDc6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5nZXRTcGFuQ29udGV4dD10LnNldFNwYW5Db250ZXh0PXQuZGVsZXRlU3Bhbj10LnNldFNwYW49dC5nZXRBY3RpdmVTcGFuPXQuZ2V0U3Bhbj12b2lkIDA7Y29uc3Qgbj1yKDc4MCk7Y29uc3QgYT1yKDQwMyk7Y29uc3Qgbz1yKDQ5MSk7Y29uc3QgaT0oMCxuLmNyZWF0ZUNvbnRleHRLZXkpKFwiT3BlblRlbGVtZXRyeSBDb250ZXh0IEtleSBTUEFOXCIpO2Z1bmN0aW9uIGdldFNwYW4oZSl7cmV0dXJuIGUuZ2V0VmFsdWUoaSl8fHVuZGVmaW5lZH10LmdldFNwYW49Z2V0U3BhbjtmdW5jdGlvbiBnZXRBY3RpdmVTcGFuKCl7cmV0dXJuIGdldFNwYW4oby5Db250ZXh0QVBJLmdldEluc3RhbmNlKCkuYWN0aXZlKCkpfXQuZ2V0QWN0aXZlU3Bhbj1nZXRBY3RpdmVTcGFuO2Z1bmN0aW9uIHNldFNwYW4oZSx0KXtyZXR1cm4gZS5zZXRWYWx1ZShpLHQpfXQuc2V0U3Bhbj1zZXRTcGFuO2Z1bmN0aW9uIGRlbGV0ZVNwYW4oZSl7cmV0dXJuIGUuZGVsZXRlVmFsdWUoaSl9dC5kZWxldGVTcGFuPWRlbGV0ZVNwYW47ZnVuY3Rpb24gc2V0U3BhbkNvbnRleHQoZSx0KXtyZXR1cm4gc2V0U3BhbihlLG5ldyBhLk5vblJlY29yZGluZ1NwYW4odCkpfXQuc2V0U3BhbkNvbnRleHQ9c2V0U3BhbkNvbnRleHQ7ZnVuY3Rpb24gZ2V0U3BhbkNvbnRleHQoZSl7dmFyIHQ7cmV0dXJuKHQ9Z2V0U3BhbihlKSk9PT1udWxsfHx0PT09dm9pZCAwP3ZvaWQgMDp0LnNwYW5Db250ZXh0KCl9dC5nZXRTcGFuQ29udGV4dD1nZXRTcGFuQ29udGV4dH0sMzI1OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuVHJhY2VTdGF0ZUltcGw9dm9pZCAwO2NvbnN0IG49cig1NjQpO2NvbnN0IGE9MzI7Y29uc3Qgbz01MTI7Y29uc3QgaT1cIixcIjtjb25zdCBjPVwiPVwiO2NsYXNzIFRyYWNlU3RhdGVJbXBse2NvbnN0cnVjdG9yKGUpe3RoaXMuX2ludGVybmFsU3RhdGU9bmV3IE1hcDtpZihlKXRoaXMuX3BhcnNlKGUpfXNldChlLHQpe2NvbnN0IHI9dGhpcy5fY2xvbmUoKTtpZihyLl9pbnRlcm5hbFN0YXRlLmhhcyhlKSl7ci5faW50ZXJuYWxTdGF0ZS5kZWxldGUoZSl9ci5faW50ZXJuYWxTdGF0ZS5zZXQoZSx0KTtyZXR1cm4gcn11bnNldChlKXtjb25zdCB0PXRoaXMuX2Nsb25lKCk7dC5faW50ZXJuYWxTdGF0ZS5kZWxldGUoZSk7cmV0dXJuIHR9Z2V0KGUpe3JldHVybiB0aGlzLl9pbnRlcm5hbFN0YXRlLmdldChlKX1zZXJpYWxpemUoKXtyZXR1cm4gdGhpcy5fa2V5cygpLnJlZHVjZSgoKGUsdCk9PntlLnB1c2godCtjK3RoaXMuZ2V0KHQpKTtyZXR1cm4gZX0pLFtdKS5qb2luKGkpfV9wYXJzZShlKXtpZihlLmxlbmd0aD5vKXJldHVybjt0aGlzLl9pbnRlcm5hbFN0YXRlPWUuc3BsaXQoaSkucmV2ZXJzZSgpLnJlZHVjZSgoKGUsdCk9Pntjb25zdCByPXQudHJpbSgpO2NvbnN0IGE9ci5pbmRleE9mKGMpO2lmKGEhPT0tMSl7Y29uc3Qgbz1yLnNsaWNlKDAsYSk7Y29uc3QgaT1yLnNsaWNlKGErMSx0Lmxlbmd0aCk7aWYoKDAsbi52YWxpZGF0ZUtleSkobykmJigwLG4udmFsaWRhdGVWYWx1ZSkoaSkpe2Uuc2V0KG8saSl9ZWxzZXt9fXJldHVybiBlfSksbmV3IE1hcCk7aWYodGhpcy5faW50ZXJuYWxTdGF0ZS5zaXplPmEpe3RoaXMuX2ludGVybmFsU3RhdGU9bmV3IE1hcChBcnJheS5mcm9tKHRoaXMuX2ludGVybmFsU3RhdGUuZW50cmllcygpKS5yZXZlcnNlKCkuc2xpY2UoMCxhKSl9fV9rZXlzKCl7cmV0dXJuIEFycmF5LmZyb20odGhpcy5faW50ZXJuYWxTdGF0ZS5rZXlzKCkpLnJldmVyc2UoKX1fY2xvbmUoKXtjb25zdCBlPW5ldyBUcmFjZVN0YXRlSW1wbDtlLl9pbnRlcm5hbFN0YXRlPW5ldyBNYXAodGhpcy5faW50ZXJuYWxTdGF0ZSk7cmV0dXJuIGV9fXQuVHJhY2VTdGF0ZUltcGw9VHJhY2VTdGF0ZUltcGx9LDU2NDooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC52YWxpZGF0ZVZhbHVlPXQudmFsaWRhdGVLZXk9dm9pZCAwO2NvbnN0IHI9XCJbXzAtOWEtei0qL11cIjtjb25zdCBuPWBbYS16XSR7cn17MCwyNTV9YDtjb25zdCBhPWBbYS16MC05XSR7cn17MCwyNDB9QFthLXpdJHtyfXswLDEzfWA7Y29uc3Qgbz1uZXcgUmVnRXhwKGBeKD86JHtufXwke2F9KSRgKTtjb25zdCBpPS9eWyAtfl17MCwyNTV9WyEtfl0kLztjb25zdCBjPS8sfD0vO2Z1bmN0aW9uIHZhbGlkYXRlS2V5KGUpe3JldHVybiBvLnRlc3QoZSl9dC52YWxpZGF0ZUtleT12YWxpZGF0ZUtleTtmdW5jdGlvbiB2YWxpZGF0ZVZhbHVlKGUpe3JldHVybiBpLnRlc3QoZSkmJiFjLnRlc3QoZSl9dC52YWxpZGF0ZVZhbHVlPXZhbGlkYXRlVmFsdWV9LDk4OihlLHQscik9PntPYmplY3QuZGVmaW5lUHJvcGVydHkodCxcIl9fZXNNb2R1bGVcIix7dmFsdWU6dHJ1ZX0pO3QuY3JlYXRlVHJhY2VTdGF0ZT12b2lkIDA7Y29uc3Qgbj1yKDMyNSk7ZnVuY3Rpb24gY3JlYXRlVHJhY2VTdGF0ZShlKXtyZXR1cm4gbmV3IG4uVHJhY2VTdGF0ZUltcGwoZSl9dC5jcmVhdGVUcmFjZVN0YXRlPWNyZWF0ZVRyYWNlU3RhdGV9LDQ3NjooZSx0LHIpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LklOVkFMSURfU1BBTl9DT05URVhUPXQuSU5WQUxJRF9UUkFDRUlEPXQuSU5WQUxJRF9TUEFOSUQ9dm9pZCAwO2NvbnN0IG49cig0NzUpO3QuSU5WQUxJRF9TUEFOSUQ9XCIwMDAwMDAwMDAwMDAwMDAwXCI7dC5JTlZBTElEX1RSQUNFSUQ9XCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiO3QuSU5WQUxJRF9TUEFOX0NPTlRFWFQ9e3RyYWNlSWQ6dC5JTlZBTElEX1RSQUNFSUQsc3BhbklkOnQuSU5WQUxJRF9TUEFOSUQsdHJhY2VGbGFnczpuLlRyYWNlRmxhZ3MuTk9ORX19LDM1NzooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5TcGFuS2luZD12b2lkIDA7dmFyIHI7KGZ1bmN0aW9uKGUpe2VbZVtcIklOVEVSTkFMXCJdPTBdPVwiSU5URVJOQUxcIjtlW2VbXCJTRVJWRVJcIl09MV09XCJTRVJWRVJcIjtlW2VbXCJDTElFTlRcIl09Ml09XCJDTElFTlRcIjtlW2VbXCJQUk9EVUNFUlwiXT0zXT1cIlBST0RVQ0VSXCI7ZVtlW1wiQ09OU1VNRVJcIl09NF09XCJDT05TVU1FUlwifSkocj10LlNwYW5LaW5kfHwodC5TcGFuS2luZD17fSkpfSwxMzk6KGUsdCxyKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC53cmFwU3BhbkNvbnRleHQ9dC5pc1NwYW5Db250ZXh0VmFsaWQ9dC5pc1ZhbGlkU3BhbklkPXQuaXNWYWxpZFRyYWNlSWQ9dm9pZCAwO2NvbnN0IG49cig0NzYpO2NvbnN0IGE9cig0MDMpO2NvbnN0IG89L14oWzAtOWEtZl17MzJ9KSQvaTtjb25zdCBpPS9eWzAtOWEtZl17MTZ9JC9pO2Z1bmN0aW9uIGlzVmFsaWRUcmFjZUlkKGUpe3JldHVybiBvLnRlc3QoZSkmJmUhPT1uLklOVkFMSURfVFJBQ0VJRH10LmlzVmFsaWRUcmFjZUlkPWlzVmFsaWRUcmFjZUlkO2Z1bmN0aW9uIGlzVmFsaWRTcGFuSWQoZSl7cmV0dXJuIGkudGVzdChlKSYmZSE9PW4uSU5WQUxJRF9TUEFOSUR9dC5pc1ZhbGlkU3BhbklkPWlzVmFsaWRTcGFuSWQ7ZnVuY3Rpb24gaXNTcGFuQ29udGV4dFZhbGlkKGUpe3JldHVybiBpc1ZhbGlkVHJhY2VJZChlLnRyYWNlSWQpJiZpc1ZhbGlkU3BhbklkKGUuc3BhbklkKX10LmlzU3BhbkNvbnRleHRWYWxpZD1pc1NwYW5Db250ZXh0VmFsaWQ7ZnVuY3Rpb24gd3JhcFNwYW5Db250ZXh0KGUpe3JldHVybiBuZXcgYS5Ob25SZWNvcmRpbmdTcGFuKGUpfXQud3JhcFNwYW5Db250ZXh0PXdyYXBTcGFuQ29udGV4dH0sODQ3OihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlNwYW5TdGF0dXNDb2RlPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiVU5TRVRcIl09MF09XCJVTlNFVFwiO2VbZVtcIk9LXCJdPTFdPVwiT0tcIjtlW2VbXCJFUlJPUlwiXT0yXT1cIkVSUk9SXCJ9KShyPXQuU3BhblN0YXR1c0NvZGV8fCh0LlNwYW5TdGF0dXNDb2RlPXt9KSl9LDQ3NTooZSx0KT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dC5UcmFjZUZsYWdzPXZvaWQgMDt2YXIgcjsoZnVuY3Rpb24oZSl7ZVtlW1wiTk9ORVwiXT0wXT1cIk5PTkVcIjtlW2VbXCJTQU1QTEVEXCJdPTFdPVwiU0FNUExFRFwifSkocj10LlRyYWNlRmxhZ3N8fCh0LlRyYWNlRmxhZ3M9e30pKX0sNTIxOihlLHQpPT57T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTt0LlZFUlNJT049dm9pZCAwO3QuVkVSU0lPTj1cIjEuNi4wXCJ9fTt2YXIgdD17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHIpe3ZhciBuPXRbcl07aWYobiE9PXVuZGVmaW5lZCl7cmV0dXJuIG4uZXhwb3J0c312YXIgYT10W3JdPXtleHBvcnRzOnt9fTt2YXIgbz10cnVlO3RyeXtlW3JdLmNhbGwoYS5leHBvcnRzLGEsYS5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO289ZmFsc2V9ZmluYWxseXtpZihvKWRlbGV0ZSB0W3JdfXJldHVybiBhLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciByPXt9OygoKT0+e3ZhciBlPXI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJfX2VzTW9kdWxlXCIse3ZhbHVlOnRydWV9KTtlLnRyYWNlPWUucHJvcGFnYXRpb249ZS5tZXRyaWNzPWUuZGlhZz1lLmNvbnRleHQ9ZS5JTlZBTElEX1NQQU5fQ09OVEVYVD1lLklOVkFMSURfVFJBQ0VJRD1lLklOVkFMSURfU1BBTklEPWUuaXNWYWxpZFNwYW5JZD1lLmlzVmFsaWRUcmFjZUlkPWUuaXNTcGFuQ29udGV4dFZhbGlkPWUuY3JlYXRlVHJhY2VTdGF0ZT1lLlRyYWNlRmxhZ3M9ZS5TcGFuU3RhdHVzQ29kZT1lLlNwYW5LaW5kPWUuU2FtcGxpbmdEZWNpc2lvbj1lLlByb3h5VHJhY2VyUHJvdmlkZXI9ZS5Qcm94eVRyYWNlcj1lLmRlZmF1bHRUZXh0TWFwU2V0dGVyPWUuZGVmYXVsdFRleHRNYXBHZXR0ZXI9ZS5WYWx1ZVR5cGU9ZS5jcmVhdGVOb29wTWV0ZXI9ZS5EaWFnTG9nTGV2ZWw9ZS5EaWFnQ29uc29sZUxvZ2dlcj1lLlJPT1RfQ09OVEVYVD1lLmNyZWF0ZUNvbnRleHRLZXk9ZS5iYWdnYWdlRW50cnlNZXRhZGF0YUZyb21TdHJpbmc9dm9pZCAwO3ZhciB0PV9fbmNjd3Bja19yZXF1aXJlX18oMzY5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImJhZ2dhZ2VFbnRyeU1ldGFkYXRhRnJvbVN0cmluZ1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHQuYmFnZ2FnZUVudHJ5TWV0YWRhdGFGcm9tU3RyaW5nfX0pO3ZhciBuPV9fbmNjd3Bja19yZXF1aXJlX18oNzgwKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNyZWF0ZUNvbnRleHRLZXlcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBuLmNyZWF0ZUNvbnRleHRLZXl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJST09UX0NPTlRFWFRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBuLlJPT1RfQ09OVEVYVH19KTt2YXIgYT1fX25jY3dwY2tfcmVxdWlyZV9fKDk3Mik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJEaWFnQ29uc29sZUxvZ2dlclwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEuRGlhZ0NvbnNvbGVMb2dnZXJ9fSk7dmFyIG89X19uY2N3cGNrX3JlcXVpcmVfXyg5NTcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiRGlhZ0xvZ0xldmVsXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5EaWFnTG9nTGV2ZWx9fSk7dmFyIGk9X19uY2N3cGNrX3JlcXVpcmVfXygxMDIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY3JlYXRlTm9vcE1ldGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaS5jcmVhdGVOb29wTWV0ZXJ9fSk7dmFyIGM9X19uY2N3cGNrX3JlcXVpcmVfXyg5MDEpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiVmFsdWVUeXBlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5WYWx1ZVR5cGV9fSk7dmFyIHM9X19uY2N3cGNrX3JlcXVpcmVfXygxOTQpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFRleHRNYXBHZXR0ZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHRUZXh0TWFwR2V0dGVyfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiZGVmYXVsdFRleHRNYXBTZXR0ZXJcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBzLmRlZmF1bHRUZXh0TWFwU2V0dGVyfX0pO3ZhciB1PV9fbmNjd3Bja19yZXF1aXJlX18oMTI1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlByb3h5VHJhY2VyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdS5Qcm94eVRyYWNlcn19KTt2YXIgbD1fX25jY3dwY2tfcmVxdWlyZV9fKDg0Nik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJQcm94eVRyYWNlclByb3ZpZGVyXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbC5Qcm94eVRyYWNlclByb3ZpZGVyfX0pO3ZhciBnPV9fbmNjd3Bja19yZXF1aXJlX18oOTk2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNhbXBsaW5nRGVjaXNpb25cIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBnLlNhbXBsaW5nRGVjaXNpb259fSk7dmFyIHA9X19uY2N3cGNrX3JlcXVpcmVfXygzNTcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiU3BhbktpbmRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBwLlNwYW5LaW5kfX0pO3ZhciBkPV9fbmNjd3Bja19yZXF1aXJlX18oODQ3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcIlNwYW5TdGF0dXNDb2RlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZC5TcGFuU3RhdHVzQ29kZX19KTt2YXIgXz1fX25jY3dwY2tfcmVxdWlyZV9fKDQ3NSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJUcmFjZUZsYWdzXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gXy5UcmFjZUZsYWdzfX0pO3ZhciBmPV9fbmNjd3Bja19yZXF1aXJlX18oOTgpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiY3JlYXRlVHJhY2VTdGF0ZVwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGYuY3JlYXRlVHJhY2VTdGF0ZX19KTt2YXIgYj1fX25jY3dwY2tfcmVxdWlyZV9fKDEzOSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJpc1NwYW5Db250ZXh0VmFsaWRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBiLmlzU3BhbkNvbnRleHRWYWxpZH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImlzVmFsaWRUcmFjZUlkXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYi5pc1ZhbGlkVHJhY2VJZH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImlzVmFsaWRTcGFuSWRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBiLmlzVmFsaWRTcGFuSWR9fSk7dmFyIHY9X19uY2N3cGNrX3JlcXVpcmVfXyg0NzYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9TUEFOSURcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiB2LklOVkFMSURfU1BBTklEfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwiSU5WQUxJRF9UUkFDRUlEXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi5JTlZBTElEX1RSQUNFSUR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJJTlZBTElEX1NQQU5fQ09OVEVYVFwiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHYuSU5WQUxJRF9TUEFOX0NPTlRFWFR9fSk7Y29uc3QgTz1fX25jY3dwY2tfcmVxdWlyZV9fKDY3KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcImNvbnRleHRcIix7ZW51bWVyYWJsZTp0cnVlLGdldDpmdW5jdGlvbigpe3JldHVybiBPLmNvbnRleHR9fSk7Y29uc3QgUD1fX25jY3dwY2tfcmVxdWlyZV9fKDUwNik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsXCJkaWFnXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUC5kaWFnfX0pO2NvbnN0IE49X19uY2N3cGNrX3JlcXVpcmVfXyg4ODYpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLFwibWV0cmljc1wiLHtlbnVtZXJhYmxlOnRydWUsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE4ubWV0cmljc319KTtjb25zdCBTPV9fbmNjd3Bja19yZXF1aXJlX18oOTM5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInByb3BhZ2F0aW9uXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUy5wcm9wYWdhdGlvbn19KTtjb25zdCBDPV9fbmNjd3Bja19yZXF1aXJlX18oODQ1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxcInRyYWNlXCIse2VudW1lcmFibGU6dHJ1ZSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQy50cmFjZX19KTtlW1wiZGVmYXVsdFwiXT17Y29udGV4dDpPLmNvbnRleHQsZGlhZzpQLmRpYWcsbWV0cmljczpOLm1ldHJpY3MscHJvcGFnYXRpb246Uy5wcm9wYWdhdGlvbix0cmFjZTpDLnRyYWNlfX0pKCk7bW9kdWxlLmV4cG9ydHM9cn0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/@opentelemetry/api/index.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/lib/is-error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/lib/is-error.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined');\n }\n if (err === null) {\n return new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined');\n }\n }\n return new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + '');\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsbUJBQU8sQ0FBQyw2RkFBK0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvaXMtZXJyb3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBkZWZhdWx0OiBudWxsLFxuICAgIGdldFByb3BlckVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIC8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGlzIGEgTmV4dEVycm9yLlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBwcmludCBhIG1vcmUgZGV0YWlsZWQgZXJyb3IgbWVzc2FnZSB3aXRoIHByb3BlcnRpZXMgbGlrZSBgY29kZWAgJiBgZGlnZXN0YC5cbiAqLyBkZWZhdWx0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzRXJyb3I7XG4gICAgfSxcbiAgICBnZXRQcm9wZXJFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRQcm9wZXJFcnJvcjtcbiAgICB9XG59KTtcbmNvbnN0IF9pc3BsYWlub2JqZWN0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0XCIpO1xuZnVuY3Rpb24gaXNFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVyciA9PT0gJ29iamVjdCcgJiYgZXJyICE9PSBudWxsICYmICduYW1lJyBpbiBlcnIgJiYgJ21lc3NhZ2UnIGluIGVycjtcbn1cbmZ1bmN0aW9uIHNhZmVTdHJpbmdpZnkob2JqKSB7XG4gICAgY29uc3Qgc2VlbiA9IG5ldyBXZWFrU2V0KCk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaiwgKF9rZXksIHZhbHVlKT0+e1xuICAgICAgICAvLyBJZiB2YWx1ZSBpcyBhbiBvYmplY3QgYW5kIGFscmVhZHkgc2VlbiwgcmVwbGFjZSB3aXRoIFwiW0NpcmN1bGFyXVwiXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoc2Vlbi5oYXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbQ2lyY3VsYXJdJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlZW4uYWRkKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXRQcm9wZXJFcnJvcihlcnIpIHtcbiAgICBpZiAoaXNFcnJvcihlcnIpKSB7XG4gICAgICAgIHJldHVybiBlcnI7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAvLyBwcm92aWRlIGJldHRlciBlcnJvciBmb3IgY2FzZSB3aGVyZSBgdGhyb3cgdW5kZWZpbmVkYFxuICAgICAgICAvLyBpcyBjYWxsZWQgaW4gZGV2ZWxvcG1lbnRcbiAgICAgICAgaWYgKHR5cGVvZiBlcnIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKCdBbiB1bmRlZmluZWQgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKCdBIG51bGwgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEVycm9yKCgwLCBfaXNwbGFpbm9iamVjdC5pc1BsYWluT2JqZWN0KShlcnIpID8gc2FmZVN0cmluZ2lmeShlcnIpIDogZXJyICsgJycpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-error.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/lib/pretty-bytes.js": +/*!****************************************************!*\ + !*** ./node_modules/next/dist/lib/pretty-bytes.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("/*\nMIT License\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return prettyBytes;\n }\n}));\nconst UNITS = [\n 'B',\n 'kB',\n 'MB',\n 'GB',\n 'TB',\n 'PB',\n 'EB',\n 'ZB',\n 'YB'\n];\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/ const toLocaleString = (number, locale)=>{\n let result = number;\n if (typeof locale === 'string') {\n result = number.toLocaleString(locale);\n } else if (locale === true) {\n result = number.toLocaleString();\n }\n return result;\n};\nfunction prettyBytes(number, options) {\n if (!Number.isFinite(number)) {\n throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);\n }\n options = Object.assign({}, options);\n if (options.signed && number === 0) {\n return ' 0 B';\n }\n const isNegative = number < 0;\n const prefix = isNegative ? '-' : options.signed ? '+' : '';\n if (isNegative) {\n number = -number;\n }\n if (number < 1) {\n const numberString = toLocaleString(number, options.locale);\n return prefix + numberString + ' B';\n }\n const exponent = Math.min(Math.floor(Math.log10(number) / 3), UNITS.length - 1);\n number = Number((number / Math.pow(1000, exponent)).toPrecision(3));\n const numberString = toLocaleString(number, options.locale);\n const unit = UNITS[exponent];\n return prefix + numberString + ' ' + unit;\n}\n\n//# sourceMappingURL=pretty-bytes.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9wcmV0dHktYnl0ZXMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBLEdBQWdCO0FBQ2hCLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLDJDQUEwQztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkRBQTZELGNBQWMsSUFBSSxPQUFPO0FBQ3RGO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL3ByZXR0eS1ieXRlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuTUlUIExpY2Vuc2VcblxuQ29weXJpZ2h0IChjKSBTaW5kcmUgU29yaHVzIDxzaW5kcmVzb3JodXNAZ21haWwuY29tPiAoc2luZHJlc29yaHVzLmNvbSlcblxuUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuKi8gXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJkZWZhdWx0XCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBwcmV0dHlCeXRlcztcbiAgICB9XG59KTtcbmNvbnN0IFVOSVRTID0gW1xuICAgICdCJyxcbiAgICAna0InLFxuICAgICdNQicsXG4gICAgJ0dCJyxcbiAgICAnVEInLFxuICAgICdQQicsXG4gICAgJ0VCJyxcbiAgICAnWkInLFxuICAgICdZQidcbl07XG4vKlxuRm9ybWF0cyB0aGUgZ2l2ZW4gbnVtYmVyIHVzaW5nIGBOdW1iZXIjdG9Mb2NhbGVTdHJpbmdgLlxuLSBJZiBsb2NhbGUgaXMgYSBzdHJpbmcsIHRoZSB2YWx1ZSBpcyBleHBlY3RlZCB0byBiZSBhIGxvY2FsZS1rZXkgKGZvciBleGFtcGxlOiBgZGVgKS5cbi0gSWYgbG9jYWxlIGlzIHRydWUsIHRoZSBzeXN0ZW0gZGVmYXVsdCBsb2NhbGUgaXMgdXNlZCBmb3IgdHJhbnNsYXRpb24uXG4tIElmIG5vIHZhbHVlIGZvciBsb2NhbGUgaXMgc3BlY2lmaWVkLCB0aGUgbnVtYmVyIGlzIHJldHVybmVkIHVubW9kaWZpZWQuXG4qLyBjb25zdCB0b0xvY2FsZVN0cmluZyA9IChudW1iZXIsIGxvY2FsZSk9PntcbiAgICBsZXQgcmVzdWx0ID0gbnVtYmVyO1xuICAgIGlmICh0eXBlb2YgbG9jYWxlID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXN1bHQgPSBudW1iZXIudG9Mb2NhbGVTdHJpbmcobG9jYWxlKTtcbiAgICB9IGVsc2UgaWYgKGxvY2FsZSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXN1bHQgPSBudW1iZXIudG9Mb2NhbGVTdHJpbmcoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn07XG5mdW5jdGlvbiBwcmV0dHlCeXRlcyhudW1iZXIsIG9wdGlvbnMpIHtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShudW1iZXIpKSB7XG4gICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEV4cGVjdGVkIGEgZmluaXRlIG51bWJlciwgZ290ICR7dHlwZW9mIG51bWJlcn06ICR7bnVtYmVyfWApO1xuICAgIH1cbiAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyk7XG4gICAgaWYgKG9wdGlvbnMuc2lnbmVkICYmIG51bWJlciA9PT0gMCkge1xuICAgICAgICByZXR1cm4gJyAwIEInO1xuICAgIH1cbiAgICBjb25zdCBpc05lZ2F0aXZlID0gbnVtYmVyIDwgMDtcbiAgICBjb25zdCBwcmVmaXggPSBpc05lZ2F0aXZlID8gJy0nIDogb3B0aW9ucy5zaWduZWQgPyAnKycgOiAnJztcbiAgICBpZiAoaXNOZWdhdGl2ZSkge1xuICAgICAgICBudW1iZXIgPSAtbnVtYmVyO1xuICAgIH1cbiAgICBpZiAobnVtYmVyIDwgMSkge1xuICAgICAgICBjb25zdCBudW1iZXJTdHJpbmcgPSB0b0xvY2FsZVN0cmluZyhudW1iZXIsIG9wdGlvbnMubG9jYWxlKTtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIG51bWJlclN0cmluZyArICcgQic7XG4gICAgfVxuICAgIGNvbnN0IGV4cG9uZW50ID0gTWF0aC5taW4oTWF0aC5mbG9vcihNYXRoLmxvZzEwKG51bWJlcikgLyAzKSwgVU5JVFMubGVuZ3RoIC0gMSk7XG4gICAgbnVtYmVyID0gTnVtYmVyKChudW1iZXIgLyBNYXRoLnBvdygxMDAwLCBleHBvbmVudCkpLnRvUHJlY2lzaW9uKDMpKTtcbiAgICBjb25zdCBudW1iZXJTdHJpbmcgPSB0b0xvY2FsZVN0cmluZyhudW1iZXIsIG9wdGlvbnMubG9jYWxlKTtcbiAgICBjb25zdCB1bml0ID0gVU5JVFNbZXhwb25lbnRdO1xuICAgIHJldHVybiBwcmVmaXggKyBudW1iZXJTdHJpbmcgKyAnICcgKyB1bml0O1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1wcmV0dHktYnl0ZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/pretty-bytes.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/get-page-files.js": +/*!*********************************************************!*\ + !*** ./node_modules/next/dist/server/get-page-files.js ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getPageFiles\", ({\n enumerable: true,\n get: function() {\n return getPageFiles;\n }\n}));\nconst _denormalizepagepath = __webpack_require__(/*! ../shared/lib/page-path/denormalize-page-path */ \"./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\");\nconst _normalizepagepath = __webpack_require__(/*! ../shared/lib/page-path/normalize-page-path */ \"./node_modules/next/dist/shared/lib/page-path/normalize-page-path.js\");\nfunction getPageFiles(buildManifest, page) {\n const normalizedPage = (0, _denormalizepagepath.denormalizePagePath)((0, _normalizepagepath.normalizePagePath)(page));\n let files = buildManifest.pages[normalizedPage];\n if (!files) {\n console.warn(`Could not find files for ${normalizedPage} in .next/build-manifest.json`);\n return [];\n }\n return files;\n}\n\n//# sourceMappingURL=get-page-files.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9nZXQtcGFnZS1maWxlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGdEQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLDZCQUE2QixtQkFBTyxDQUFDLDZIQUErQztBQUNwRiwyQkFBMkIsbUJBQU8sQ0FBQyx5SEFBNkM7QUFDaEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsZ0JBQWdCO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvZ2V0LXBhZ2UtZmlsZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXRQYWdlRmlsZXNcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFBhZ2VGaWxlcztcbiAgICB9XG59KTtcbmNvbnN0IF9kZW5vcm1hbGl6ZXBhZ2VwYXRoID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvcGFnZS1wYXRoL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aFwiKTtcbmNvbnN0IF9ub3JtYWxpemVwYWdlcGF0aCA9IHJlcXVpcmUoXCIuLi9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGFnZS1wYXRoXCIpO1xuZnVuY3Rpb24gZ2V0UGFnZUZpbGVzKGJ1aWxkTWFuaWZlc3QsIHBhZ2UpIHtcbiAgICBjb25zdCBub3JtYWxpemVkUGFnZSA9ICgwLCBfZGVub3JtYWxpemVwYWdlcGF0aC5kZW5vcm1hbGl6ZVBhZ2VQYXRoKSgoMCwgX25vcm1hbGl6ZXBhZ2VwYXRoLm5vcm1hbGl6ZVBhZ2VQYXRoKShwYWdlKSk7XG4gICAgbGV0IGZpbGVzID0gYnVpbGRNYW5pZmVzdC5wYWdlc1tub3JtYWxpemVkUGFnZV07XG4gICAgaWYgKCFmaWxlcykge1xuICAgICAgICBjb25zb2xlLndhcm4oYENvdWxkIG5vdCBmaW5kIGZpbGVzIGZvciAke25vcm1hbGl6ZWRQYWdlfSBpbiAubmV4dC9idWlsZC1tYW5pZmVzdC5qc29uYCk7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbGVzO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtcGFnZS1maWxlcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/get-page-files.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/htmlescape.js": +/*!*****************************************************!*\ + !*** ./node_modules/next/dist/server/htmlescape.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("// This utility is based on https://github.com/zertosh/htmlescape\n// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ESCAPE_REGEX: function() {\n return ESCAPE_REGEX;\n },\n htmlEscapeJsonString: function() {\n return htmlEscapeJsonString;\n }\n});\nconst ESCAPE_LOOKUP = {\n '&': '\\\\u0026',\n '>': '\\\\u003e',\n '<': '\\\\u003c',\n '\\u2028': '\\\\u2028',\n '\\u2029': '\\\\u2029'\n};\nconst ESCAPE_REGEX = /[&><\\u2028\\u2029]/g;\nfunction htmlEscapeJsonString(str) {\n return str.replace(ESCAPE_REGEX, (match)=>ESCAPE_LOOKUP[match]);\n}\n\n//# sourceMappingURL=htmlescape.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9odG1sZXNjYXBlLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvaHRtbGVzY2FwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIHV0aWxpdHkgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3plcnRvc2gvaHRtbGVzY2FwZVxuLy8gTGljZW5zZTogaHR0cHM6Ly9naXRodWIuY29tL3plcnRvc2gvaHRtbGVzY2FwZS9ibG9iLzA1MjdjYTcxNTZhNTI0ZDI1NjEwMWJiMzEwYTlmOTcwZjYzMDc4YWQvTElDRU5TRVxuXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBFU0NBUEVfUkVHRVg6IG51bGwsXG4gICAgaHRtbEVzY2FwZUpzb25TdHJpbmc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgRVNDQVBFX1JFR0VYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEVTQ0FQRV9SRUdFWDtcbiAgICB9LFxuICAgIGh0bWxFc2NhcGVKc29uU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGh0bWxFc2NhcGVKc29uU3RyaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgRVNDQVBFX0xPT0tVUCA9IHtcbiAgICAnJic6ICdcXFxcdTAwMjYnLFxuICAgICc+JzogJ1xcXFx1MDAzZScsXG4gICAgJzwnOiAnXFxcXHUwMDNjJyxcbiAgICAnXFx1MjAyOCc6ICdcXFxcdTIwMjgnLFxuICAgICdcXHUyMDI5JzogJ1xcXFx1MjAyOSdcbn07XG5jb25zdCBFU0NBUEVfUkVHRVggPSAvWyY+PFxcdTIwMjhcXHUyMDI5XS9nO1xuZnVuY3Rpb24gaHRtbEVzY2FwZUpzb25TdHJpbmcoc3RyKSB7XG4gICAgcmV0dXJuIHN0ci5yZXBsYWNlKEVTQ0FQRV9SRUdFWCwgKG1hdGNoKT0+RVNDQVBFX0xPT0tVUFttYXRjaF0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1odG1sZXNjYXBlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/htmlescape.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/lib/interception-routes.js": +/*!******************************************************************!*\ + !*** ./node_modules/next/dist/server/lib/interception-routes.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)'\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split('/')){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw new Error(`Invalid interception route: ${path}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`);\n }\n interceptingRoute = (0, _apppaths.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = `/${interceptedRoute}`;\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute;\n }\n break;\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw new Error(`Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`);\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw new Error(`Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`);\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw new Error('Invariant: unexpected marker');\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n}\n\n//# sourceMappingURL=interception-routes.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvaW50ZXJjZXB0aW9uLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGtCQUFrQixtQkFBTyxDQUFDLDhHQUF5QztBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsS0FBSztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxpQkFBaUI7QUFDeEQsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErRCxLQUFLO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrREFBK0QsS0FBSztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL2ludGVyY2VwdGlvbi1yb3V0ZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUzogbnVsbCxcbiAgICBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbjogbnVsbCxcbiAgICBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUztcbiAgICB9LFxuICAgIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uO1xuICAgIH0sXG4gICAgaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGg7XG4gICAgfVxufSk7XG5jb25zdCBfYXBwcGF0aHMgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzXCIpO1xuY29uc3QgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMgPSBbXG4gICAgJyguLikoLi4pJyxcbiAgICAnKC4pJyxcbiAgICAnKC4uKScsXG4gICAgJyguLi4pJ1xuXTtcbmZ1bmN0aW9uIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHBhdGgpIHtcbiAgICAvLyBUT0RPLUFQUDogYWRkIG1vcmUgc2VyaW91cyB2YWxpZGF0aW9uXG4gICAgcmV0dXJuIHBhdGguc3BsaXQoJy8nKS5maW5kKChzZWdtZW50KT0+SU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSk9PnNlZ21lbnQuc3RhcnRzV2l0aChtKSkpICE9PSB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbihwYXRoKSB7XG4gICAgbGV0IGludGVyY2VwdGluZ1JvdXRlLCBtYXJrZXIsIGludGVyY2VwdGVkUm91dGU7XG4gICAgZm9yIChjb25zdCBzZWdtZW50IG9mIHBhdGguc3BsaXQoJy8nKSl7XG4gICAgICAgIG1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pPT5zZWdtZW50LnN0YXJ0c1dpdGgobSkpO1xuICAgICAgICBpZiAobWFya2VyKSB7XG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBbaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGVdID0gcGF0aC5zcGxpdChtYXJrZXIsIDIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFpbnRlcmNlcHRpbmdSb3V0ZSB8fCAhbWFya2VyIHx8ICFpbnRlcmNlcHRlZFJvdXRlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIE11c3QgYmUgaW4gdGhlIGZvcm1hdCAvPGludGVyY2VwdGluZyByb3V0ZT4vKC4ufC4uLnwuLikoLi4pLzxpbnRlcmNlcHRlZCByb3V0ZT5gKTtcbiAgICB9XG4gICAgaW50ZXJjZXB0aW5nUm91dGUgPSAoMCwgX2FwcHBhdGhzLm5vcm1hbGl6ZUFwcFBhdGgpKGludGVyY2VwdGluZ1JvdXRlKSAvLyBub3JtYWxpemUgdGhlIHBhdGgsIGUuZy4gLyhibG9nKS9mZWVkIC0+IC9mZWVkXG4gICAgO1xuICAgIHN3aXRjaChtYXJrZXIpe1xuICAgICAgICBjYXNlICcoLiknOlxuICAgICAgICAgICAgLy8gKC4pIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBtYXRjaCB3aXRoIHNpYmxpbmcgcm91dGVzLCBzbyB3ZSBqdXN0IG5lZWQgdG8gYXBwZW5kIHRoZSBpbnRlcmNlcHRlZCByb3V0ZSB0byB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG4gICAgICAgICAgICBpZiAoaW50ZXJjZXB0aW5nUm91dGUgPT09ICcvJykge1xuICAgICAgICAgICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBgLyR7aW50ZXJjZXB0ZWRSb3V0ZX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUgKyAnLycgKyBpbnRlcmNlcHRlZFJvdXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJyguLiknOlxuICAgICAgICAgICAgLy8gKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgb25lIGxldmVsIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCBzZWdtZW50IG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgICAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pIG1hcmtlciBhdCB0aGUgcm9vdCBsZXZlbCwgdXNlICguKSBpbnN0ZWFkLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KCcvJykuc2xpY2UoMCwgLTEpLmNvbmNhdChpbnRlcmNlcHRlZFJvdXRlKS5qb2luKCcvJyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnKC4uLiknOlxuICAgICAgICAgICAgLy8gKC4uLikgd2lsbCBtYXRjaCB0aGUgcm91dGUgc2VnbWVudCBpbiB0aGUgcm9vdCBkaXJlY3RvcnksIHNvIHdlIG5lZWQgdG8gdXNlIHRoZSByb290IGRpcmVjdG9yeSB0byBwcmVwZW5kIHRoZSBpbnRlcmNlcHRlZCByb3V0ZVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9ICcvJyArIGludGVyY2VwdGVkUm91dGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnKC4uKSguLiknOlxuICAgICAgICAgICAgLy8gKC4uKSguLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIGF0IHR3byBsZXZlbHMgdXAsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBsYXN0IHR3byBzZWdtZW50cyBvZiB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG4gICAgICAgICAgICBjb25zdCBzcGxpdEludGVyY2VwdGluZ1JvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUuc3BsaXQoJy8nKTtcbiAgICAgICAgICAgIGlmIChzcGxpdEludGVyY2VwdGluZ1JvdXRlLmxlbmd0aCA8PSAyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwgb3Igb25lIGxldmVsIHVwLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IHNwbGl0SW50ZXJjZXB0aW5nUm91dGUuc2xpY2UoMCwgLTIpLmNvbmNhdChpbnRlcmNlcHRlZFJvdXRlKS5qb2luKCcvJyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlcicpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBpbnRlcmNlcHRpbmdSb3V0ZSxcbiAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVyY2VwdGlvbi1yb3V0ZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/lib/interception-routes.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/lib/trace/constants.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/server/lib/trace/constants.js ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("/**\n * Contains predefined constants for the trace span name in next/server.\n *\n * Currently, next/server/tracer is internal implementation only for tracking\n * next.js's implementation only with known span names defined here.\n **/ // eslint typescript has a bug with TS enums\n/* eslint-disable no-shadow */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppRenderSpan: function() {\n return AppRenderSpan;\n },\n AppRouteRouteHandlersSpan: function() {\n return AppRouteRouteHandlersSpan;\n },\n BaseServerSpan: function() {\n return BaseServerSpan;\n },\n LoadComponentsSpan: function() {\n return LoadComponentsSpan;\n },\n LogSpanAllowList: function() {\n return LogSpanAllowList;\n },\n MiddlewareSpan: function() {\n return MiddlewareSpan;\n },\n NextNodeServerSpan: function() {\n return NextNodeServerSpan;\n },\n NextServerSpan: function() {\n return NextServerSpan;\n },\n NextVanillaSpanAllowlist: function() {\n return NextVanillaSpanAllowlist;\n },\n NodeSpan: function() {\n return NodeSpan;\n },\n RenderSpan: function() {\n return RenderSpan;\n },\n ResolveMetadataSpan: function() {\n return ResolveMetadataSpan;\n },\n RouterSpan: function() {\n return RouterSpan;\n },\n StartServerSpan: function() {\n return StartServerSpan;\n }\n});\nvar BaseServerSpan = /*#__PURE__*/ function(BaseServerSpan) {\n BaseServerSpan[\"handleRequest\"] = \"BaseServer.handleRequest\";\n BaseServerSpan[\"run\"] = \"BaseServer.run\";\n BaseServerSpan[\"pipe\"] = \"BaseServer.pipe\";\n BaseServerSpan[\"getStaticHTML\"] = \"BaseServer.getStaticHTML\";\n BaseServerSpan[\"render\"] = \"BaseServer.render\";\n BaseServerSpan[\"renderToResponseWithComponents\"] = \"BaseServer.renderToResponseWithComponents\";\n BaseServerSpan[\"renderToResponse\"] = \"BaseServer.renderToResponse\";\n BaseServerSpan[\"renderToHTML\"] = \"BaseServer.renderToHTML\";\n BaseServerSpan[\"renderError\"] = \"BaseServer.renderError\";\n BaseServerSpan[\"renderErrorToResponse\"] = \"BaseServer.renderErrorToResponse\";\n BaseServerSpan[\"renderErrorToHTML\"] = \"BaseServer.renderErrorToHTML\";\n BaseServerSpan[\"render404\"] = \"BaseServer.render404\";\n return BaseServerSpan;\n}(BaseServerSpan || {});\nvar LoadComponentsSpan = /*#__PURE__*/ function(LoadComponentsSpan) {\n LoadComponentsSpan[\"loadDefaultErrorComponents\"] = \"LoadComponents.loadDefaultErrorComponents\";\n LoadComponentsSpan[\"loadComponents\"] = \"LoadComponents.loadComponents\";\n return LoadComponentsSpan;\n}(LoadComponentsSpan || {});\nvar NextServerSpan = /*#__PURE__*/ function(NextServerSpan) {\n NextServerSpan[\"getRequestHandler\"] = \"NextServer.getRequestHandler\";\n NextServerSpan[\"getServer\"] = \"NextServer.getServer\";\n NextServerSpan[\"getServerRequestHandler\"] = \"NextServer.getServerRequestHandler\";\n NextServerSpan[\"createServer\"] = \"createServer.createServer\";\n return NextServerSpan;\n}(NextServerSpan || {});\nvar NextNodeServerSpan = /*#__PURE__*/ function(NextNodeServerSpan) {\n NextNodeServerSpan[\"compression\"] = \"NextNodeServer.compression\";\n NextNodeServerSpan[\"getBuildId\"] = \"NextNodeServer.getBuildId\";\n NextNodeServerSpan[\"createComponentTree\"] = \"NextNodeServer.createComponentTree\";\n NextNodeServerSpan[\"clientComponentLoading\"] = \"NextNodeServer.clientComponentLoading\";\n NextNodeServerSpan[\"getLayoutOrPageModule\"] = \"NextNodeServer.getLayoutOrPageModule\";\n NextNodeServerSpan[\"generateStaticRoutes\"] = \"NextNodeServer.generateStaticRoutes\";\n NextNodeServerSpan[\"generateFsStaticRoutes\"] = \"NextNodeServer.generateFsStaticRoutes\";\n NextNodeServerSpan[\"generatePublicRoutes\"] = \"NextNodeServer.generatePublicRoutes\";\n NextNodeServerSpan[\"generateImageRoutes\"] = \"NextNodeServer.generateImageRoutes.route\";\n NextNodeServerSpan[\"sendRenderResult\"] = \"NextNodeServer.sendRenderResult\";\n NextNodeServerSpan[\"proxyRequest\"] = \"NextNodeServer.proxyRequest\";\n NextNodeServerSpan[\"runApi\"] = \"NextNodeServer.runApi\";\n NextNodeServerSpan[\"render\"] = \"NextNodeServer.render\";\n NextNodeServerSpan[\"renderHTML\"] = \"NextNodeServer.renderHTML\";\n NextNodeServerSpan[\"imageOptimizer\"] = \"NextNodeServer.imageOptimizer\";\n NextNodeServerSpan[\"getPagePath\"] = \"NextNodeServer.getPagePath\";\n NextNodeServerSpan[\"getRoutesManifest\"] = \"NextNodeServer.getRoutesManifest\";\n NextNodeServerSpan[\"findPageComponents\"] = \"NextNodeServer.findPageComponents\";\n NextNodeServerSpan[\"getFontManifest\"] = \"NextNodeServer.getFontManifest\";\n NextNodeServerSpan[\"getServerComponentManifest\"] = \"NextNodeServer.getServerComponentManifest\";\n NextNodeServerSpan[\"getRequestHandler\"] = \"NextNodeServer.getRequestHandler\";\n NextNodeServerSpan[\"renderToHTML\"] = \"NextNodeServer.renderToHTML\";\n NextNodeServerSpan[\"renderError\"] = \"NextNodeServer.renderError\";\n NextNodeServerSpan[\"renderErrorToHTML\"] = \"NextNodeServer.renderErrorToHTML\";\n NextNodeServerSpan[\"render404\"] = \"NextNodeServer.render404\";\n NextNodeServerSpan[\"startResponse\"] = \"NextNodeServer.startResponse\";\n // nested inner span, does not require parent scope name\n NextNodeServerSpan[\"route\"] = \"route\";\n NextNodeServerSpan[\"onProxyReq\"] = \"onProxyReq\";\n NextNodeServerSpan[\"apiResolver\"] = \"apiResolver\";\n NextNodeServerSpan[\"internalFetch\"] = \"internalFetch\";\n return NextNodeServerSpan;\n}(NextNodeServerSpan || {});\nvar StartServerSpan = /*#__PURE__*/ function(StartServerSpan) {\n StartServerSpan[\"startServer\"] = \"startServer.startServer\";\n return StartServerSpan;\n}(StartServerSpan || {});\nvar RenderSpan = /*#__PURE__*/ function(RenderSpan) {\n RenderSpan[\"getServerSideProps\"] = \"Render.getServerSideProps\";\n RenderSpan[\"getStaticProps\"] = \"Render.getStaticProps\";\n RenderSpan[\"renderToString\"] = \"Render.renderToString\";\n RenderSpan[\"renderDocument\"] = \"Render.renderDocument\";\n RenderSpan[\"createBodyResult\"] = \"Render.createBodyResult\";\n return RenderSpan;\n}(RenderSpan || {});\nvar AppRenderSpan = /*#__PURE__*/ function(AppRenderSpan) {\n AppRenderSpan[\"renderToString\"] = \"AppRender.renderToString\";\n AppRenderSpan[\"renderToReadableStream\"] = \"AppRender.renderToReadableStream\";\n AppRenderSpan[\"getBodyResult\"] = \"AppRender.getBodyResult\";\n AppRenderSpan[\"fetch\"] = \"AppRender.fetch\";\n return AppRenderSpan;\n}(AppRenderSpan || {});\nvar RouterSpan = /*#__PURE__*/ function(RouterSpan) {\n RouterSpan[\"executeRoute\"] = \"Router.executeRoute\";\n return RouterSpan;\n}(RouterSpan || {});\nvar NodeSpan = /*#__PURE__*/ function(NodeSpan) {\n NodeSpan[\"runHandler\"] = \"Node.runHandler\";\n return NodeSpan;\n}(NodeSpan || {});\nvar AppRouteRouteHandlersSpan = /*#__PURE__*/ function(AppRouteRouteHandlersSpan) {\n AppRouteRouteHandlersSpan[\"runHandler\"] = \"AppRouteRouteHandlers.runHandler\";\n return AppRouteRouteHandlersSpan;\n}(AppRouteRouteHandlersSpan || {});\nvar ResolveMetadataSpan = /*#__PURE__*/ function(ResolveMetadataSpan) {\n ResolveMetadataSpan[\"generateMetadata\"] = \"ResolveMetadata.generateMetadata\";\n ResolveMetadataSpan[\"generateViewport\"] = \"ResolveMetadata.generateViewport\";\n return ResolveMetadataSpan;\n}(ResolveMetadataSpan || {});\nvar MiddlewareSpan = /*#__PURE__*/ function(MiddlewareSpan) {\n MiddlewareSpan[\"execute\"] = \"Middleware.execute\";\n return MiddlewareSpan;\n}(MiddlewareSpan || {});\nconst NextVanillaSpanAllowlist = [\n \"Middleware.execute\",\n \"BaseServer.handleRequest\",\n \"Render.getServerSideProps\",\n \"Render.getStaticProps\",\n \"AppRender.fetch\",\n \"AppRender.getBodyResult\",\n \"Render.renderDocument\",\n \"Node.runHandler\",\n \"AppRouteRouteHandlers.runHandler\",\n \"ResolveMetadata.generateMetadata\",\n \"ResolveMetadata.generateViewport\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.getLayoutOrPageModule\",\n \"NextNodeServer.startResponse\",\n \"NextNodeServer.clientComponentLoading\"\n];\nconst LogSpanAllowList = [\n \"NextNodeServer.findPageComponents\",\n \"NextNodeServer.createComponentTree\",\n \"NextNodeServer.clientComponentLoading\"\n];\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUE0QztBQUM1Qyw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBZUw7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMscUJBQXFCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxxQkFBcUI7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyx5QkFBeUI7QUFDMUI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxzQkFBc0I7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLG9CQUFvQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlCQUFpQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLGVBQWU7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxnQ0FBZ0M7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDBCQUEwQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQSxDQUFDLHFCQUFxQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL3RyYWNlL2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnRhaW5zIHByZWRlZmluZWQgY29uc3RhbnRzIGZvciB0aGUgdHJhY2Ugc3BhbiBuYW1lIGluIG5leHQvc2VydmVyLlxuICpcbiAqIEN1cnJlbnRseSwgbmV4dC9zZXJ2ZXIvdHJhY2VyIGlzIGludGVybmFsIGltcGxlbWVudGF0aW9uIG9ubHkgZm9yIHRyYWNraW5nXG4gKiBuZXh0LmpzJ3MgaW1wbGVtZW50YXRpb24gb25seSB3aXRoIGtub3duIHNwYW4gbmFtZXMgZGVmaW5lZCBoZXJlLlxuICoqLyAvLyBlc2xpbnQgdHlwZXNjcmlwdCBoYXMgYSBidWcgd2l0aCBUUyBlbnVtc1xuLyogZXNsaW50LWRpc2FibGUgbm8tc2hhZG93ICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgQXBwUmVuZGVyU3BhbjogbnVsbCxcbiAgICBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuOiBudWxsLFxuICAgIEJhc2VTZXJ2ZXJTcGFuOiBudWxsLFxuICAgIExvYWRDb21wb25lbnRzU3BhbjogbnVsbCxcbiAgICBMb2dTcGFuQWxsb3dMaXN0OiBudWxsLFxuICAgIE1pZGRsZXdhcmVTcGFuOiBudWxsLFxuICAgIE5leHROb2RlU2VydmVyU3BhbjogbnVsbCxcbiAgICBOZXh0U2VydmVyU3BhbjogbnVsbCxcbiAgICBOZXh0VmFuaWxsYVNwYW5BbGxvd2xpc3Q6IG51bGwsXG4gICAgTm9kZVNwYW46IG51bGwsXG4gICAgUmVuZGVyU3BhbjogbnVsbCxcbiAgICBSZXNvbHZlTWV0YWRhdGFTcGFuOiBudWxsLFxuICAgIFJvdXRlclNwYW46IG51bGwsXG4gICAgU3RhcnRTZXJ2ZXJTcGFuOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEFwcFJlbmRlclNwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwUmVuZGVyU3BhbjtcbiAgICB9LFxuICAgIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbjtcbiAgICB9LFxuICAgIEJhc2VTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEJhc2VTZXJ2ZXJTcGFuO1xuICAgIH0sXG4gICAgTG9hZENvbXBvbmVudHNTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIExvYWRDb21wb25lbnRzU3BhbjtcbiAgICB9LFxuICAgIExvZ1NwYW5BbGxvd0xpc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTG9nU3BhbkFsbG93TGlzdDtcbiAgICB9LFxuICAgIE1pZGRsZXdhcmVTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1pZGRsZXdhcmVTcGFuO1xuICAgIH0sXG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHROb2RlU2VydmVyU3BhbjtcbiAgICB9LFxuICAgIE5leHRTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRTZXJ2ZXJTcGFuO1xuICAgIH0sXG4gICAgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRWYW5pbGxhU3BhbkFsbG93bGlzdDtcbiAgICB9LFxuICAgIE5vZGVTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5vZGVTcGFuO1xuICAgIH0sXG4gICAgUmVuZGVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZW5kZXJTcGFuO1xuICAgIH0sXG4gICAgUmVzb2x2ZU1ldGFkYXRhU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSZXNvbHZlTWV0YWRhdGFTcGFuO1xuICAgIH0sXG4gICAgUm91dGVyU3BhbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSb3V0ZXJTcGFuO1xuICAgIH0sXG4gICAgU3RhcnRTZXJ2ZXJTcGFuOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFN0YXJ0U2VydmVyU3BhbjtcbiAgICB9XG59KTtcbnZhciBCYXNlU2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oQmFzZVNlcnZlclNwYW4pIHtcbiAgICBCYXNlU2VydmVyU3BhbltcImhhbmRsZVJlcXVlc3RcIl0gPSBcIkJhc2VTZXJ2ZXIuaGFuZGxlUmVxdWVzdFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicnVuXCJdID0gXCJCYXNlU2VydmVyLnJ1blwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicGlwZVwiXSA9IFwiQmFzZVNlcnZlci5waXBlXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJnZXRTdGF0aWNIVE1MXCJdID0gXCJCYXNlU2VydmVyLmdldFN0YXRpY0hUTUxcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvUmVzcG9uc2VXaXRoQ29tcG9uZW50c1wiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJUb1Jlc3BvbnNlV2l0aENvbXBvbmVudHNcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlclRvUmVzcG9uc2VcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyVG9SZXNwb25zZVwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyVG9IVE1MXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlclRvSFRNTFwiO1xuICAgIEJhc2VTZXJ2ZXJTcGFuW1wicmVuZGVyRXJyb3JcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyRXJyb3JcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yVG9SZXNwb25zZVwiXSA9IFwiQmFzZVNlcnZlci5yZW5kZXJFcnJvclRvUmVzcG9uc2VcIjtcbiAgICBCYXNlU2VydmVyU3BhbltcInJlbmRlckVycm9yVG9IVE1MXCJdID0gXCJCYXNlU2VydmVyLnJlbmRlckVycm9yVG9IVE1MXCI7XG4gICAgQmFzZVNlcnZlclNwYW5bXCJyZW5kZXI0MDRcIl0gPSBcIkJhc2VTZXJ2ZXIucmVuZGVyNDA0XCI7XG4gICAgcmV0dXJuIEJhc2VTZXJ2ZXJTcGFuO1xufShCYXNlU2VydmVyU3BhbiB8fCB7fSk7XG52YXIgTG9hZENvbXBvbmVudHNTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihMb2FkQ29tcG9uZW50c1NwYW4pIHtcbiAgICBMb2FkQ29tcG9uZW50c1NwYW5bXCJsb2FkRGVmYXVsdEVycm9yQ29tcG9uZW50c1wiXSA9IFwiTG9hZENvbXBvbmVudHMubG9hZERlZmF1bHRFcnJvckNvbXBvbmVudHNcIjtcbiAgICBMb2FkQ29tcG9uZW50c1NwYW5bXCJsb2FkQ29tcG9uZW50c1wiXSA9IFwiTG9hZENvbXBvbmVudHMubG9hZENvbXBvbmVudHNcIjtcbiAgICByZXR1cm4gTG9hZENvbXBvbmVudHNTcGFuO1xufShMb2FkQ29tcG9uZW50c1NwYW4gfHwge30pO1xudmFyIE5leHRTZXJ2ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihOZXh0U2VydmVyU3Bhbikge1xuICAgIE5leHRTZXJ2ZXJTcGFuW1wiZ2V0UmVxdWVzdEhhbmRsZXJcIl0gPSBcIk5leHRTZXJ2ZXIuZ2V0UmVxdWVzdEhhbmRsZXJcIjtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFNlcnZlclwiXSA9IFwiTmV4dFNlcnZlci5nZXRTZXJ2ZXJcIjtcbiAgICBOZXh0U2VydmVyU3BhbltcImdldFNlcnZlclJlcXVlc3RIYW5kbGVyXCJdID0gXCJOZXh0U2VydmVyLmdldFNlcnZlclJlcXVlc3RIYW5kbGVyXCI7XG4gICAgTmV4dFNlcnZlclNwYW5bXCJjcmVhdGVTZXJ2ZXJcIl0gPSBcImNyZWF0ZVNlcnZlci5jcmVhdGVTZXJ2ZXJcIjtcbiAgICByZXR1cm4gTmV4dFNlcnZlclNwYW47XG59KE5leHRTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBOZXh0Tm9kZVNlcnZlclNwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKE5leHROb2RlU2VydmVyU3Bhbikge1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImNvbXByZXNzaW9uXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5jb21wcmVzc2lvblwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldEJ1aWxkSWRcIl0gPSBcIk5leHROb2RlU2VydmVyLmdldEJ1aWxkSWRcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJjcmVhdGVDb21wb25lbnRUcmVlXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5jcmVhdGVDb21wb25lbnRUcmVlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuY2xpZW50Q29tcG9uZW50TG9hZGluZ1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldExheW91dE9yUGFnZU1vZHVsZVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVTdGF0aWNSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlU3RhdGljUm91dGVzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2VuZXJhdGVGc1N0YXRpY1JvdXRlc1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2VuZXJhdGVGc1N0YXRpY1JvdXRlc1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlUHVibGljUm91dGVzXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZW5lcmF0ZVB1YmxpY1JvdXRlc1wiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdlbmVyYXRlSW1hZ2VSb3V0ZXNcIl0gPSBcIk5leHROb2RlU2VydmVyLmdlbmVyYXRlSW1hZ2VSb3V0ZXMucm91dGVcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJzZW5kUmVuZGVyUmVzdWx0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5zZW5kUmVuZGVyUmVzdWx0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicHJveHlSZXF1ZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5wcm94eVJlcXVlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJydW5BcGlcIl0gPSBcIk5leHROb2RlU2VydmVyLnJ1bkFwaVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicmVuZGVySFRNTFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVySFRNTFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImltYWdlT3B0aW1pemVyXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5pbWFnZU9wdGltaXplclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFBhZ2VQYXRoXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRQYWdlUGF0aFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImdldFJvdXRlc01hbmlmZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRSb3V0ZXNNYW5pZmVzdFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImZpbmRQYWdlQ29tcG9uZW50c1wiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZmluZFBhZ2VDb21wb25lbnRzXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wiZ2V0Rm9udE1hbmlmZXN0XCJdID0gXCJOZXh0Tm9kZVNlcnZlci5nZXRGb250TWFuaWZlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRTZXJ2ZXJDb21wb25lbnRNYW5pZmVzdFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0U2VydmVyQ29tcG9uZW50TWFuaWZlc3RcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJnZXRSZXF1ZXN0SGFuZGxlclwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0UmVxdWVzdEhhbmRsZXJcIjtcbiAgICBOZXh0Tm9kZVNlcnZlclNwYW5bXCJyZW5kZXJUb0hUTUxcIl0gPSBcIk5leHROb2RlU2VydmVyLnJlbmRlclRvSFRNTFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlckVycm9yXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJFcnJvclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlckVycm9yVG9IVE1MXCJdID0gXCJOZXh0Tm9kZVNlcnZlci5yZW5kZXJFcnJvclRvSFRNTFwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcInJlbmRlcjQwNFwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIucmVuZGVyNDA0XCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wic3RhcnRSZXNwb25zZVwiXSA9IFwiTmV4dE5vZGVTZXJ2ZXIuc3RhcnRSZXNwb25zZVwiO1xuICAgIC8vIG5lc3RlZCBpbm5lciBzcGFuLCBkb2VzIG5vdCByZXF1aXJlIHBhcmVudCBzY29wZSBuYW1lXG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wicm91dGVcIl0gPSBcInJvdXRlXCI7XG4gICAgTmV4dE5vZGVTZXJ2ZXJTcGFuW1wib25Qcm94eVJlcVwiXSA9IFwib25Qcm94eVJlcVwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImFwaVJlc29sdmVyXCJdID0gXCJhcGlSZXNvbHZlclwiO1xuICAgIE5leHROb2RlU2VydmVyU3BhbltcImludGVybmFsRmV0Y2hcIl0gPSBcImludGVybmFsRmV0Y2hcIjtcbiAgICByZXR1cm4gTmV4dE5vZGVTZXJ2ZXJTcGFuO1xufShOZXh0Tm9kZVNlcnZlclNwYW4gfHwge30pO1xudmFyIFN0YXJ0U2VydmVyU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oU3RhcnRTZXJ2ZXJTcGFuKSB7XG4gICAgU3RhcnRTZXJ2ZXJTcGFuW1wic3RhcnRTZXJ2ZXJcIl0gPSBcInN0YXJ0U2VydmVyLnN0YXJ0U2VydmVyXCI7XG4gICAgcmV0dXJuIFN0YXJ0U2VydmVyU3Bhbjtcbn0oU3RhcnRTZXJ2ZXJTcGFuIHx8IHt9KTtcbnZhciBSZW5kZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihSZW5kZXJTcGFuKSB7XG4gICAgUmVuZGVyU3BhbltcImdldFNlcnZlclNpZGVQcm9wc1wiXSA9IFwiUmVuZGVyLmdldFNlcnZlclNpZGVQcm9wc1wiO1xuICAgIFJlbmRlclNwYW5bXCJnZXRTdGF0aWNQcm9wc1wiXSA9IFwiUmVuZGVyLmdldFN0YXRpY1Byb3BzXCI7XG4gICAgUmVuZGVyU3BhbltcInJlbmRlclRvU3RyaW5nXCJdID0gXCJSZW5kZXIucmVuZGVyVG9TdHJpbmdcIjtcbiAgICBSZW5kZXJTcGFuW1wicmVuZGVyRG9jdW1lbnRcIl0gPSBcIlJlbmRlci5yZW5kZXJEb2N1bWVudFwiO1xuICAgIFJlbmRlclNwYW5bXCJjcmVhdGVCb2R5UmVzdWx0XCJdID0gXCJSZW5kZXIuY3JlYXRlQm9keVJlc3VsdFwiO1xuICAgIHJldHVybiBSZW5kZXJTcGFuO1xufShSZW5kZXJTcGFuIHx8IHt9KTtcbnZhciBBcHBSZW5kZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihBcHBSZW5kZXJTcGFuKSB7XG4gICAgQXBwUmVuZGVyU3BhbltcInJlbmRlclRvU3RyaW5nXCJdID0gXCJBcHBSZW5kZXIucmVuZGVyVG9TdHJpbmdcIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wicmVuZGVyVG9SZWFkYWJsZVN0cmVhbVwiXSA9IFwiQXBwUmVuZGVyLnJlbmRlclRvUmVhZGFibGVTdHJlYW1cIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wiZ2V0Qm9keVJlc3VsdFwiXSA9IFwiQXBwUmVuZGVyLmdldEJvZHlSZXN1bHRcIjtcbiAgICBBcHBSZW5kZXJTcGFuW1wiZmV0Y2hcIl0gPSBcIkFwcFJlbmRlci5mZXRjaFwiO1xuICAgIHJldHVybiBBcHBSZW5kZXJTcGFuO1xufShBcHBSZW5kZXJTcGFuIHx8IHt9KTtcbnZhciBSb3V0ZXJTcGFuID0gLyojX19QVVJFX18qLyBmdW5jdGlvbihSb3V0ZXJTcGFuKSB7XG4gICAgUm91dGVyU3BhbltcImV4ZWN1dGVSb3V0ZVwiXSA9IFwiUm91dGVyLmV4ZWN1dGVSb3V0ZVwiO1xuICAgIHJldHVybiBSb3V0ZXJTcGFuO1xufShSb3V0ZXJTcGFuIHx8IHt9KTtcbnZhciBOb2RlU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTm9kZVNwYW4pIHtcbiAgICBOb2RlU3BhbltcInJ1bkhhbmRsZXJcIl0gPSBcIk5vZGUucnVuSGFuZGxlclwiO1xuICAgIHJldHVybiBOb2RlU3Bhbjtcbn0oTm9kZVNwYW4gfHwge30pO1xudmFyIEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4gPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEFwcFJvdXRlUm91dGVIYW5kbGVyc1NwYW4pIHtcbiAgICBBcHBSb3V0ZVJvdXRlSGFuZGxlcnNTcGFuW1wicnVuSGFuZGxlclwiXSA9IFwiQXBwUm91dGVSb3V0ZUhhbmRsZXJzLnJ1bkhhbmRsZXJcIjtcbiAgICByZXR1cm4gQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3Bhbjtcbn0oQXBwUm91dGVSb3V0ZUhhbmRsZXJzU3BhbiB8fCB7fSk7XG52YXIgUmVzb2x2ZU1ldGFkYXRhU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUmVzb2x2ZU1ldGFkYXRhU3Bhbikge1xuICAgIFJlc29sdmVNZXRhZGF0YVNwYW5bXCJnZW5lcmF0ZU1ldGFkYXRhXCJdID0gXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVNZXRhZGF0YVwiO1xuICAgIFJlc29sdmVNZXRhZGF0YVNwYW5bXCJnZW5lcmF0ZVZpZXdwb3J0XCJdID0gXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVWaWV3cG9ydFwiO1xuICAgIHJldHVybiBSZXNvbHZlTWV0YWRhdGFTcGFuO1xufShSZXNvbHZlTWV0YWRhdGFTcGFuIHx8IHt9KTtcbnZhciBNaWRkbGV3YXJlU3BhbiA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oTWlkZGxld2FyZVNwYW4pIHtcbiAgICBNaWRkbGV3YXJlU3BhbltcImV4ZWN1dGVcIl0gPSBcIk1pZGRsZXdhcmUuZXhlY3V0ZVwiO1xuICAgIHJldHVybiBNaWRkbGV3YXJlU3Bhbjtcbn0oTWlkZGxld2FyZVNwYW4gfHwge30pO1xuY29uc3QgTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0ID0gW1xuICAgIFwiTWlkZGxld2FyZS5leGVjdXRlXCIsXG4gICAgXCJCYXNlU2VydmVyLmhhbmRsZVJlcXVlc3RcIixcbiAgICBcIlJlbmRlci5nZXRTZXJ2ZXJTaWRlUHJvcHNcIixcbiAgICBcIlJlbmRlci5nZXRTdGF0aWNQcm9wc1wiLFxuICAgIFwiQXBwUmVuZGVyLmZldGNoXCIsXG4gICAgXCJBcHBSZW5kZXIuZ2V0Qm9keVJlc3VsdFwiLFxuICAgIFwiUmVuZGVyLnJlbmRlckRvY3VtZW50XCIsXG4gICAgXCJOb2RlLnJ1bkhhbmRsZXJcIixcbiAgICBcIkFwcFJvdXRlUm91dGVIYW5kbGVycy5ydW5IYW5kbGVyXCIsXG4gICAgXCJSZXNvbHZlTWV0YWRhdGEuZ2VuZXJhdGVNZXRhZGF0YVwiLFxuICAgIFwiUmVzb2x2ZU1ldGFkYXRhLmdlbmVyYXRlVmlld3BvcnRcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmNyZWF0ZUNvbXBvbmVudFRyZWVcIixcbiAgICBcIk5leHROb2RlU2VydmVyLmZpbmRQYWdlQ29tcG9uZW50c1wiLFxuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuZ2V0TGF5b3V0T3JQYWdlTW9kdWxlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5zdGFydFJlc3BvbnNlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jbGllbnRDb21wb25lbnRMb2FkaW5nXCJcbl07XG5jb25zdCBMb2dTcGFuQWxsb3dMaXN0ID0gW1xuICAgIFwiTmV4dE5vZGVTZXJ2ZXIuZmluZFBhZ2VDb21wb25lbnRzXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jcmVhdGVDb21wb25lbnRUcmVlXCIsXG4gICAgXCJOZXh0Tm9kZVNlcnZlci5jbGllbnRDb21wb25lbnRMb2FkaW5nXCJcbl07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNvbnN0YW50cy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/lib/trace/constants.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/lib/trace/tracer.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/server/lib/trace/tracer.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BubbledError: function() {\n return BubbledError;\n },\n SpanKind: function() {\n return SpanKind;\n },\n SpanStatusCode: function() {\n return SpanStatusCode;\n },\n getTracer: function() {\n return getTracer;\n },\n isBubbledError: function() {\n return isBubbledError;\n }\n});\nconst _constants = __webpack_require__(/*! ./constants */ \"./node_modules/next/dist/server/lib/trace/constants.js\");\nconst _isthenable = __webpack_require__(/*! ../../../shared/lib/is-thenable */ \"./node_modules/next/dist/shared/lib/is-thenable.js\");\nlet api;\n// we want to allow users to use their own version of @opentelemetry/api if they\n// want to, so we try to require it first, and if it fails we fall back to the\n// version that is bundled with Next.js\n// this is because @opentelemetry/api has to be synced with the version of\n// @opentelemetry/tracing that is used, and we don't want to force users to use\n// the version that is bundled with Next.js.\n// the API is ~stable, so this should be fine\nif (false) {} else {\n try {\n api = __webpack_require__(/*! @opentelemetry/api */ \"./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n } catch (err) {\n api = __webpack_require__(/*! next/dist/compiled/@opentelemetry/api */ \"./node_modules/next/dist/compiled/@opentelemetry/api/index.js\");\n }\n}\nconst { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api;\nclass BubbledError extends Error {\n constructor(bubble, result){\n super(), this.bubble = bubble, this.result = result;\n }\n}\nfunction isBubbledError(error) {\n if (typeof error !== 'object' || error === null) return false;\n return error instanceof BubbledError;\n}\nconst closeSpanWithError = (span, error)=>{\n if (isBubbledError(error) && error.bubble) {\n span.setAttribute('next.bubble', true);\n } else {\n if (error) {\n span.recordException(error);\n }\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error == null ? void 0 : error.message\n });\n }\n span.end();\n};\n/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map();\nconst rootSpanIdKey = api.createContextKey('next.rootSpanId');\nlet lastSpanId = 0;\nconst getSpanId = ()=>lastSpanId++;\nconst clientTraceDataSetter = {\n set (carrier, key, value) {\n carrier.push({\n key,\n value\n });\n }\n};\nclass NextTracerImpl {\n /**\n * Returns an instance to the trace with configured name.\n * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization,\n * This should be lazily evaluated.\n */ getTracerInstance() {\n return trace.getTracer('next.js', '0.0.1');\n }\n getContext() {\n return context;\n }\n getTracePropagationData() {\n const activeContext = context.active();\n const entries = [];\n propagation.inject(activeContext, entries, clientTraceDataSetter);\n return entries;\n }\n getActiveScopeSpan() {\n return trace.getSpan(context == null ? void 0 : context.active());\n }\n withPropagatedContext(carrier, fn, getter) {\n const activeContext = context.active();\n if (trace.getSpanContext(activeContext)) {\n // Active span is already set, too late to propagate.\n return fn();\n }\n const remoteContext = propagation.extract(activeContext, carrier, getter);\n return context.with(remoteContext, fn);\n }\n trace(...args) {\n var _trace_getSpanContext;\n const [type, fnOrOptions, fnOrEmpty] = args;\n // coerce options form overload\n const { fn, options } = typeof fnOrOptions === 'function' ? {\n fn: fnOrOptions,\n options: {}\n } : {\n fn: fnOrEmpty,\n options: {\n ...fnOrOptions\n }\n };\n const spanName = options.spanName ?? type;\n if (!_constants.NextVanillaSpanAllowlist.includes(type) && process.env.NEXT_OTEL_VERBOSE !== '1' || options.hideSpan) {\n return fn();\n }\n // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it.\n let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n let isRootSpan = false;\n if (!spanContext) {\n spanContext = (context == null ? void 0 : context.active()) ?? ROOT_CONTEXT;\n isRootSpan = true;\n } else if ((_trace_getSpanContext = trace.getSpanContext(spanContext)) == null ? void 0 : _trace_getSpanContext.isRemote) {\n isRootSpan = true;\n }\n const spanId = getSpanId();\n options.attributes = {\n 'next.span_name': spanName,\n 'next.span_type': type,\n ...options.attributes\n };\n return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{\n const startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined;\n const onCleanup = ()=>{\n rootSpanAttributesStore.delete(spanId);\n if (startTime && process.env.NEXT_OTEL_PERFORMANCE_PREFIX && _constants.LogSpanAllowList.includes(type || '')) {\n performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, {\n start: startTime,\n end: performance.now()\n });\n }\n };\n if (isRootSpan) {\n rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {})));\n }\n try {\n if (fn.length > 1) {\n return fn(span, (err)=>closeSpanWithError(span, err));\n }\n const result = fn(span);\n if ((0, _isthenable.isThenable)(result)) {\n // If there's error make sure it throws\n return result.then((res)=>{\n span.end();\n // Need to pass down the promise result,\n // it could be react stream response with error { error, stream }\n return res;\n }).catch((err)=>{\n closeSpanWithError(span, err);\n throw err;\n }).finally(onCleanup);\n } else {\n span.end();\n onCleanup();\n }\n return result;\n } catch (err) {\n closeSpanWithError(span, err);\n onCleanup();\n throw err;\n }\n }));\n }\n wrap(...args) {\n const tracer = this;\n const [name, options, fn] = args.length === 3 ? args : [\n args[0],\n {},\n args[1]\n ];\n if (!_constants.NextVanillaSpanAllowlist.includes(name) && process.env.NEXT_OTEL_VERBOSE !== '1') {\n return fn;\n }\n return function() {\n let optionsObj = options;\n if (typeof optionsObj === 'function' && typeof fn === 'function') {\n optionsObj = optionsObj.apply(this, arguments);\n }\n const lastArgId = arguments.length - 1;\n const cb = arguments[lastArgId];\n if (typeof cb === 'function') {\n const scopeBoundCb = tracer.getContext().bind(context.active(), cb);\n return tracer.trace(name, optionsObj, (_span, done)=>{\n arguments[lastArgId] = function(err) {\n done == null ? void 0 : done(err);\n return scopeBoundCb.apply(this, arguments);\n };\n return fn.apply(this, arguments);\n });\n } else {\n return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments));\n }\n };\n }\n startSpan(...args) {\n const [type, options] = args;\n const spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan());\n return this.getTracerInstance().startSpan(type, options, spanContext);\n }\n getSpanContext(parentSpan) {\n const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined;\n return spanContext;\n }\n getRootSpanAttributes() {\n const spanId = context.active().getValue(rootSpanIdKey);\n return rootSpanAttributesStore.get(spanId);\n }\n setRootSpanAttribute(key, value) {\n const spanId = context.active().getValue(rootSpanIdKey);\n const attributes = rootSpanAttributesStore.get(spanId);\n if (attributes) {\n attributes.set(key, value);\n }\n }\n}\nconst getTracer = (()=>{\n const tracer = new NextTracerImpl();\n return ()=>tracer;\n})();\n\n//# sourceMappingURL=tracer.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdHJhY2VyLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQU1MO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG1CQUFtQixtQkFBTyxDQUFDLDJFQUFhO0FBQ3hDLG9CQUFvQixtQkFBTyxDQUFDLDJGQUFpQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFtQyxFQUFFLEVBRXhDLENBQUM7QUFDRjtBQUNBLGNBQWMsbUJBQU8sQ0FBQyx5RkFBb0I7QUFDMUMsTUFBTTtBQUNOLGNBQWMsbUJBQU8sQ0FBQyw0R0FBdUM7QUFDN0Q7QUFDQTtBQUNBLFFBQVEsc0VBQXNFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsY0FBYztBQUM5QjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyx5Q0FBeUMsUUFBUSxvRkFBb0Y7QUFDcEw7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSx1R0FBdUc7QUFDdkc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhFQUE4RTtBQUM5RTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2xpYi90cmFjZS90cmFjZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBCdWJibGVkRXJyb3I6IG51bGwsXG4gICAgU3BhbktpbmQ6IG51bGwsXG4gICAgU3BhblN0YXR1c0NvZGU6IG51bGwsXG4gICAgZ2V0VHJhY2VyOiBudWxsLFxuICAgIGlzQnViYmxlZEVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIEJ1YmJsZWRFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBCdWJibGVkRXJyb3I7XG4gICAgfSxcbiAgICBTcGFuS2luZDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTcGFuS2luZDtcbiAgICB9LFxuICAgIFNwYW5TdGF0dXNDb2RlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNwYW5TdGF0dXNDb2RlO1xuICAgIH0sXG4gICAgZ2V0VHJhY2VyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldFRyYWNlcjtcbiAgICB9LFxuICAgIGlzQnViYmxlZEVycm9yOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQnViYmxlZEVycm9yO1xuICAgIH1cbn0pO1xuY29uc3QgX2NvbnN0YW50cyA9IHJlcXVpcmUoXCIuL2NvbnN0YW50c1wiKTtcbmNvbnN0IF9pc3RoZW5hYmxlID0gcmVxdWlyZShcIi4uLy4uLy4uL3NoYXJlZC9saWIvaXMtdGhlbmFibGVcIik7XG5sZXQgYXBpO1xuLy8gd2Ugd2FudCB0byBhbGxvdyB1c2VycyB0byB1c2UgdGhlaXIgb3duIHZlcnNpb24gb2YgQG9wZW50ZWxlbWV0cnkvYXBpIGlmIHRoZXlcbi8vIHdhbnQgdG8sIHNvIHdlIHRyeSB0byByZXF1aXJlIGl0IGZpcnN0LCBhbmQgaWYgaXQgZmFpbHMgd2UgZmFsbCBiYWNrIHRvIHRoZVxuLy8gdmVyc2lvbiB0aGF0IGlzIGJ1bmRsZWQgd2l0aCBOZXh0LmpzXG4vLyB0aGlzIGlzIGJlY2F1c2UgQG9wZW50ZWxlbWV0cnkvYXBpIGhhcyB0byBiZSBzeW5jZWQgd2l0aCB0aGUgdmVyc2lvbiBvZlxuLy8gQG9wZW50ZWxlbWV0cnkvdHJhY2luZyB0aGF0IGlzIHVzZWQsIGFuZCB3ZSBkb24ndCB3YW50IHRvIGZvcmNlIHVzZXJzIHRvIHVzZVxuLy8gdGhlIHZlcnNpb24gdGhhdCBpcyBidW5kbGVkIHdpdGggTmV4dC5qcy5cbi8vIHRoZSBBUEkgaXMgfnN0YWJsZSwgc28gdGhpcyBzaG91bGQgYmUgZmluZVxuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgYXBpID0gcmVxdWlyZSgnQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG59IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICAgIGFwaSA9IHJlcXVpcmUoJ0BvcGVudGVsZW1ldHJ5L2FwaScpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBhcGkgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvQG9wZW50ZWxlbWV0cnkvYXBpJyk7XG4gICAgfVxufVxuY29uc3QgeyBjb250ZXh0LCBwcm9wYWdhdGlvbiwgdHJhY2UsIFNwYW5TdGF0dXNDb2RlLCBTcGFuS2luZCwgUk9PVF9DT05URVhUIH0gPSBhcGk7XG5jbGFzcyBCdWJibGVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IoYnViYmxlLCByZXN1bHQpe1xuICAgICAgICBzdXBlcigpLCB0aGlzLmJ1YmJsZSA9IGJ1YmJsZSwgdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG4gICAgfVxufVxuZnVuY3Rpb24gaXNCdWJibGVkRXJyb3IoZXJyb3IpIHtcbiAgICBpZiAodHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fCBlcnJvciA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiBlcnJvciBpbnN0YW5jZW9mIEJ1YmJsZWRFcnJvcjtcbn1cbmNvbnN0IGNsb3NlU3BhbldpdGhFcnJvciA9IChzcGFuLCBlcnJvcik9PntcbiAgICBpZiAoaXNCdWJibGVkRXJyb3IoZXJyb3IpICYmIGVycm9yLmJ1YmJsZSkge1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnbmV4dC5idWJibGUnLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICAgIHNwYW4ucmVjb3JkRXhjZXB0aW9uKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICBzcGFuLnNldFN0YXR1cyh7XG4gICAgICAgICAgICBjb2RlOiBTcGFuU3RhdHVzQ29kZS5FUlJPUixcbiAgICAgICAgICAgIG1lc3NhZ2U6IGVycm9yID09IG51bGwgPyB2b2lkIDAgOiBlcnJvci5tZXNzYWdlXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzcGFuLmVuZCgpO1xufTtcbi8qKiB3ZSB1c2UgdGhpcyBtYXAgdG8gcHJvcGFnYXRlIGF0dHJpYnV0ZXMgZnJvbSBuZXN0ZWQgc3BhbnMgdG8gdGhlIHRvcCBzcGFuICovIGNvbnN0IHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlID0gbmV3IE1hcCgpO1xuY29uc3Qgcm9vdFNwYW5JZEtleSA9IGFwaS5jcmVhdGVDb250ZXh0S2V5KCduZXh0LnJvb3RTcGFuSWQnKTtcbmxldCBsYXN0U3BhbklkID0gMDtcbmNvbnN0IGdldFNwYW5JZCA9ICgpPT5sYXN0U3BhbklkKys7XG5jb25zdCBjbGllbnRUcmFjZURhdGFTZXR0ZXIgPSB7XG4gICAgc2V0IChjYXJyaWVyLCBrZXksIHZhbHVlKSB7XG4gICAgICAgIGNhcnJpZXIucHVzaCh7XG4gICAgICAgICAgICBrZXksXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICB9KTtcbiAgICB9XG59O1xuY2xhc3MgTmV4dFRyYWNlckltcGwge1xuICAgIC8qKlxuICAgKiBSZXR1cm5zIGFuIGluc3RhbmNlIHRvIHRoZSB0cmFjZSB3aXRoIGNvbmZpZ3VyZWQgbmFtZS5cbiAgICogU2luY2Ugd3JhcCAvIHRyYWNlIGNhbiBiZSBkZWZpbmVkIGluIGFueSBwbGFjZSBwcmlvciB0byBhY3R1YWwgdHJhY2Ugc3Vic2NyaWJlciBpbml0aWFsaXphdGlvbixcbiAgICogVGhpcyBzaG91bGQgYmUgbGF6aWx5IGV2YWx1YXRlZC5cbiAgICovIGdldFRyYWNlckluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gdHJhY2UuZ2V0VHJhY2VyKCduZXh0LmpzJywgJzAuMC4xJyk7XG4gICAgfVxuICAgIGdldENvbnRleHQoKSB7XG4gICAgICAgIHJldHVybiBjb250ZXh0O1xuICAgIH1cbiAgICBnZXRUcmFjZVByb3BhZ2F0aW9uRGF0YSgpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlQ29udGV4dCA9IGNvbnRleHQuYWN0aXZlKCk7XG4gICAgICAgIGNvbnN0IGVudHJpZXMgPSBbXTtcbiAgICAgICAgcHJvcGFnYXRpb24uaW5qZWN0KGFjdGl2ZUNvbnRleHQsIGVudHJpZXMsIGNsaWVudFRyYWNlRGF0YVNldHRlcik7XG4gICAgICAgIHJldHVybiBlbnRyaWVzO1xuICAgIH1cbiAgICBnZXRBY3RpdmVTY29wZVNwYW4oKSB7XG4gICAgICAgIHJldHVybiB0cmFjZS5nZXRTcGFuKGNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IGNvbnRleHQuYWN0aXZlKCkpO1xuICAgIH1cbiAgICB3aXRoUHJvcGFnYXRlZENvbnRleHQoY2FycmllciwgZm4sIGdldHRlcikge1xuICAgICAgICBjb25zdCBhY3RpdmVDb250ZXh0ID0gY29udGV4dC5hY3RpdmUoKTtcbiAgICAgICAgaWYgKHRyYWNlLmdldFNwYW5Db250ZXh0KGFjdGl2ZUNvbnRleHQpKSB7XG4gICAgICAgICAgICAvLyBBY3RpdmUgc3BhbiBpcyBhbHJlYWR5IHNldCwgdG9vIGxhdGUgdG8gcHJvcGFnYXRlLlxuICAgICAgICAgICAgcmV0dXJuIGZuKCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmVtb3RlQ29udGV4dCA9IHByb3BhZ2F0aW9uLmV4dHJhY3QoYWN0aXZlQ29udGV4dCwgY2FycmllciwgZ2V0dGVyKTtcbiAgICAgICAgcmV0dXJuIGNvbnRleHQud2l0aChyZW1vdGVDb250ZXh0LCBmbik7XG4gICAgfVxuICAgIHRyYWNlKC4uLmFyZ3MpIHtcbiAgICAgICAgdmFyIF90cmFjZV9nZXRTcGFuQ29udGV4dDtcbiAgICAgICAgY29uc3QgW3R5cGUsIGZuT3JPcHRpb25zLCBmbk9yRW1wdHldID0gYXJncztcbiAgICAgICAgLy8gY29lcmNlIG9wdGlvbnMgZm9ybSBvdmVybG9hZFxuICAgICAgICBjb25zdCB7IGZuLCBvcHRpb25zIH0gPSB0eXBlb2YgZm5Pck9wdGlvbnMgPT09ICdmdW5jdGlvbicgPyB7XG4gICAgICAgICAgICBmbjogZm5Pck9wdGlvbnMsXG4gICAgICAgICAgICBvcHRpb25zOiB7fVxuICAgICAgICB9IDoge1xuICAgICAgICAgICAgZm46IGZuT3JFbXB0eSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAuLi5mbk9yT3B0aW9uc1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBzcGFuTmFtZSA9IG9wdGlvbnMuc3Bhbk5hbWUgPz8gdHlwZTtcbiAgICAgICAgaWYgKCFfY29uc3RhbnRzLk5leHRWYW5pbGxhU3BhbkFsbG93bGlzdC5pbmNsdWRlcyh0eXBlKSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfVkVSQk9TRSAhPT0gJzEnIHx8IG9wdGlvbnMuaGlkZVNwYW4pIHtcbiAgICAgICAgICAgIHJldHVybiBmbigpO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRyeWluZyB0byBnZXQgYWN0aXZlIHNjb3BlZCBzcGFuIHRvIGFzc2lnbiBwYXJlbnQuIElmIG9wdGlvbiBzcGVjaWZpZXMgcGFyZW50IHNwYW4gbWFudWFsbHksIHdpbGwgdHJ5IHRvIHVzZSBpdC5cbiAgICAgICAgbGV0IHNwYW5Db250ZXh0ID0gdGhpcy5nZXRTcGFuQ29udGV4dCgob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5wYXJlbnRTcGFuKSA/PyB0aGlzLmdldEFjdGl2ZVNjb3BlU3BhbigpKTtcbiAgICAgICAgbGV0IGlzUm9vdFNwYW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKCFzcGFuQ29udGV4dCkge1xuICAgICAgICAgICAgc3BhbkNvbnRleHQgPSAoY29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogY29udGV4dC5hY3RpdmUoKSkgPz8gUk9PVF9DT05URVhUO1xuICAgICAgICAgICAgaXNSb290U3BhbiA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoKF90cmFjZV9nZXRTcGFuQ29udGV4dCA9IHRyYWNlLmdldFNwYW5Db250ZXh0KHNwYW5Db250ZXh0KSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90cmFjZV9nZXRTcGFuQ29udGV4dC5pc1JlbW90ZSkge1xuICAgICAgICAgICAgaXNSb290U3BhbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3BhbklkID0gZ2V0U3BhbklkKCk7XG4gICAgICAgIG9wdGlvbnMuYXR0cmlidXRlcyA9IHtcbiAgICAgICAgICAgICduZXh0LnNwYW5fbmFtZSc6IHNwYW5OYW1lLFxuICAgICAgICAgICAgJ25leHQuc3Bhbl90eXBlJzogdHlwZSxcbiAgICAgICAgICAgIC4uLm9wdGlvbnMuYXR0cmlidXRlc1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gY29udGV4dC53aXRoKHNwYW5Db250ZXh0LnNldFZhbHVlKHJvb3RTcGFuSWRLZXksIHNwYW5JZCksICgpPT50aGlzLmdldFRyYWNlckluc3RhbmNlKCkuc3RhcnRBY3RpdmVTcGFuKHNwYW5OYW1lLCBvcHRpb25zLCAoc3Bhbik9PntcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSAncGVyZm9ybWFuY2UnIGluIGdsb2JhbFRoaXMgJiYgJ21lYXN1cmUnIGluIHBlcmZvcm1hbmNlID8gZ2xvYmFsVGhpcy5wZXJmb3JtYW5jZS5ub3coKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBjb25zdCBvbkNsZWFudXAgPSAoKT0+e1xuICAgICAgICAgICAgICAgICAgICByb290U3BhbkF0dHJpYnV0ZXNTdG9yZS5kZWxldGUoc3BhbklkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0VGltZSAmJiBwcm9jZXNzLmVudi5ORVhUX09URUxfUEVSRk9STUFOQ0VfUFJFRklYICYmIF9jb25zdGFudHMuTG9nU3BhbkFsbG93TGlzdC5pbmNsdWRlcyh0eXBlIHx8ICcnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZShgJHtwcm9jZXNzLmVudi5ORVhUX09URUxfUEVSRk9STUFOQ0VfUFJFRklYfTpuZXh0LSR7KHR5cGUuc3BsaXQoJy4nKS5wb3AoKSB8fCAnJykucmVwbGFjZSgvW0EtWl0vZywgKG1hdGNoKT0+Jy0nICsgbWF0Y2gudG9Mb3dlckNhc2UoKSl9YCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBzdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kOiBwZXJmb3JtYW5jZS5ub3coKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChpc1Jvb3RTcGFuKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLnNldChzcGFuSWQsIG5ldyBNYXAoT2JqZWN0LmVudHJpZXMob3B0aW9ucy5hdHRyaWJ1dGVzID8/IHt9KSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZm4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZuKHNwYW4sIChlcnIpPT5jbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZm4oc3Bhbik7XG4gICAgICAgICAgICAgICAgICAgIGlmICgoMCwgX2lzdGhlbmFibGUuaXNUaGVuYWJsZSkocmVzdWx0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBlcnJvciBtYWtlIHN1cmUgaXQgdGhyb3dzXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnRoZW4oKHJlcyk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFuLmVuZCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5lZWQgdG8gcGFzcyBkb3duIHRoZSBwcm9taXNlIHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpdCBjb3VsZCBiZSByZWFjdCBzdHJlYW0gcmVzcG9uc2Ugd2l0aCBlcnJvciB7IGVycm9yLCBzdHJlYW0gfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU3BhbldpdGhFcnJvcihzcGFuLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLmZpbmFsbHkob25DbGVhbnVwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4uZW5kKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICBjbG9zZVNwYW5XaXRoRXJyb3Ioc3BhbiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgb25DbGVhbnVwKCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuICAgIHdyYXAoLi4uYXJncykge1xuICAgICAgICBjb25zdCB0cmFjZXIgPSB0aGlzO1xuICAgICAgICBjb25zdCBbbmFtZSwgb3B0aW9ucywgZm5dID0gYXJncy5sZW5ndGggPT09IDMgPyBhcmdzIDogW1xuICAgICAgICAgICAgYXJnc1swXSxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgYXJnc1sxXVxuICAgICAgICBdO1xuICAgICAgICBpZiAoIV9jb25zdGFudHMuTmV4dFZhbmlsbGFTcGFuQWxsb3dsaXN0LmluY2x1ZGVzKG5hbWUpICYmIHByb2Nlc3MuZW52Lk5FWFRfT1RFTF9WRVJCT1NFICE9PSAnMScpIHtcbiAgICAgICAgICAgIHJldHVybiBmbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBsZXQgb3B0aW9uc09iaiA9IG9wdGlvbnM7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnNPYmogPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uc09iaiA9IG9wdGlvbnNPYmouYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxhc3RBcmdJZCA9IGFyZ3VtZW50cy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgY29uc3QgY2IgPSBhcmd1bWVudHNbbGFzdEFyZ0lkXTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2IgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY29wZUJvdW5kQ2IgPSB0cmFjZXIuZ2V0Q29udGV4dCgpLmJpbmQoY29udGV4dC5hY3RpdmUoKSwgY2IpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFjZXIudHJhY2UobmFtZSwgb3B0aW9uc09iaiwgKF9zcGFuLCBkb25lKT0+e1xuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbbGFzdEFyZ0lkXSA9IGZ1bmN0aW9uKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9uZSA9PSBudWxsID8gdm9pZCAwIDogZG9uZShlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNjb3BlQm91bmRDYi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYWNlci50cmFjZShuYW1lLCBvcHRpb25zT2JqLCAoKT0+Zm4uYXBwbHkodGhpcywgYXJndW1lbnRzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuICAgIHN0YXJ0U3BhbiguLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBvcHRpb25zXSA9IGFyZ3M7XG4gICAgICAgIGNvbnN0IHNwYW5Db250ZXh0ID0gdGhpcy5nZXRTcGFuQ29udGV4dCgob3B0aW9ucyA9PSBudWxsID8gdm9pZCAwIDogb3B0aW9ucy5wYXJlbnRTcGFuKSA/PyB0aGlzLmdldEFjdGl2ZVNjb3BlU3BhbigpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhY2VySW5zdGFuY2UoKS5zdGFydFNwYW4odHlwZSwgb3B0aW9ucywgc3BhbkNvbnRleHQpO1xuICAgIH1cbiAgICBnZXRTcGFuQ29udGV4dChwYXJlbnRTcGFuKSB7XG4gICAgICAgIGNvbnN0IHNwYW5Db250ZXh0ID0gcGFyZW50U3BhbiA/IHRyYWNlLnNldFNwYW4oY29udGV4dC5hY3RpdmUoKSwgcGFyZW50U3BhbikgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiBzcGFuQ29udGV4dDtcbiAgICB9XG4gICAgZ2V0Um9vdFNwYW5BdHRyaWJ1dGVzKCkge1xuICAgICAgICBjb25zdCBzcGFuSWQgPSBjb250ZXh0LmFjdGl2ZSgpLmdldFZhbHVlKHJvb3RTcGFuSWRLZXkpO1xuICAgICAgICByZXR1cm4gcm9vdFNwYW5BdHRyaWJ1dGVzU3RvcmUuZ2V0KHNwYW5JZCk7XG4gICAgfVxuICAgIHNldFJvb3RTcGFuQXR0cmlidXRlKGtleSwgdmFsdWUpIHtcbiAgICAgICAgY29uc3Qgc3BhbklkID0gY29udGV4dC5hY3RpdmUoKS5nZXRWYWx1ZShyb290U3BhbklkS2V5KTtcbiAgICAgICAgY29uc3QgYXR0cmlidXRlcyA9IHJvb3RTcGFuQXR0cmlidXRlc1N0b3JlLmdldChzcGFuSWQpO1xuICAgICAgICBpZiAoYXR0cmlidXRlcykge1xuICAgICAgICAgICAgYXR0cmlidXRlcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5jb25zdCBnZXRUcmFjZXIgPSAoKCk9PntcbiAgICBjb25zdCB0cmFjZXIgPSBuZXcgTmV4dFRyYWNlckltcGwoKTtcbiAgICByZXR1cm4gKCk9PnRyYWNlcjtcbn0pKCk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRyYWNlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/lib/trace/tracer.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/lib/trace/utils.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/server/lib/trace/utils.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getTracedMetadata\", ({\n enumerable: true,\n get: function() {\n return getTracedMetadata;\n }\n}));\nfunction getTracedMetadata(traceData, clientTraceMetadata) {\n if (!clientTraceMetadata) return undefined;\n return traceData.filter(({ key })=>clientTraceMetadata.includes(key));\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixxREFBb0Q7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0EsK0JBQStCLEtBQUs7QUFDcEM7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXRUcmFjZWRNZXRhZGF0YVwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0VHJhY2VkTWV0YWRhdGE7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBnZXRUcmFjZWRNZXRhZGF0YSh0cmFjZURhdGEsIGNsaWVudFRyYWNlTWV0YWRhdGEpIHtcbiAgICBpZiAoIWNsaWVudFRyYWNlTWV0YWRhdGEpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRyYWNlRGF0YS5maWx0ZXIoKHsga2V5IH0pPT5jbGllbnRUcmFjZU1ldGFkYXRhLmluY2x1ZGVzKGtleSkpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/lib/trace/utils.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/route-kind.js": +/*!*****************************************************!*\ + !*** ./node_modules/next/dist/server/route-kind.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouteKind\", ({\n enumerable: true,\n get: function() {\n return RouteKind;\n }\n}));\nvar RouteKind = /*#__PURE__*/ function(RouteKind) {\n /**\n * `PAGES` represents all the React pages that are under `pages/`.\n */ RouteKind[\"PAGES\"] = \"PAGES\";\n /**\n * `PAGES_API` represents all the API routes under `pages/api/`.\n */ RouteKind[\"PAGES_API\"] = \"PAGES_API\";\n /**\n * `APP_PAGE` represents all the React pages that are under `app/` with the\n * filename of `page.{j,t}s{,x}`.\n */ RouteKind[\"APP_PAGE\"] = \"APP_PAGE\";\n /**\n * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n * filename of `route.{j,t}s{,x}`.\n */ RouteKind[\"APP_ROUTE\"] = \"APP_ROUTE\";\n /**\n * `IMAGE` represents all the images that are generated by `next/image`.\n */ RouteKind[\"IMAGE\"] = \"IMAGE\";\n return RouteKind;\n}({});\n\n//# sourceMappingURL=route-kind.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1raW5kLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsNkNBQTRDO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLElBQUksRUFBRSxHQUFHO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixJQUFJLEVBQUUsR0FBRztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxHQUFHOztBQUVKIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUta2luZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIlJvdXRlS2luZFwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUm91dGVLaW5kO1xuICAgIH1cbn0pO1xudmFyIFJvdXRlS2luZCA9IC8qI19fUFVSRV9fKi8gZnVuY3Rpb24oUm91dGVLaW5kKSB7XG4gICAgLyoqXG4gICAqIGBQQUdFU2AgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBwYWdlcy9gLlxuICAgKi8gUm91dGVLaW5kW1wiUEFHRVNcIl0gPSBcIlBBR0VTXCI7XG4gICAgLyoqXG4gICAqIGBQQUdFU19BUElgIHJlcHJlc2VudHMgYWxsIHRoZSBBUEkgcm91dGVzIHVuZGVyIGBwYWdlcy9hcGkvYC5cbiAgICovIFJvdXRlS2luZFtcIlBBR0VTX0FQSVwiXSA9IFwiUEFHRVNfQVBJXCI7XG4gICAgLyoqXG4gICAqIGBBUFBfUEFHRWAgcmVwcmVzZW50cyBhbGwgdGhlIFJlYWN0IHBhZ2VzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcGFnZS57aix0fXN7LHh9YC5cbiAgICovIFJvdXRlS2luZFtcIkFQUF9QQUdFXCJdID0gXCJBUFBfUEFHRVwiO1xuICAgIC8qKlxuICAgKiBgQVBQX1JPVVRFYCByZXByZXNlbnRzIGFsbCB0aGUgQVBJIHJvdXRlcyBhbmQgbWV0YWRhdGEgcm91dGVzIHRoYXQgYXJlIHVuZGVyIGBhcHAvYCB3aXRoIHRoZVxuICAgKiBmaWxlbmFtZSBvZiBgcm91dGUue2osdH1zeyx4fWAuXG4gICAqLyBSb3V0ZUtpbmRbXCJBUFBfUk9VVEVcIl0gPSBcIkFQUF9ST1VURVwiO1xuICAgIC8qKlxuICAgKiBgSU1BR0VgIHJlcHJlc2VudHMgYWxsIHRoZSBpbWFnZXMgdGhhdCBhcmUgZ2VuZXJhdGVkIGJ5IGBuZXh0L2ltYWdlYC5cbiAgICovIFJvdXRlS2luZFtcIklNQUdFXCJdID0gXCJJTUFHRVwiO1xuICAgIHJldHVybiBSb3V0ZUtpbmQ7XG59KHt9KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGUta2luZC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/route-kind.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/route-modules/pages/module.compiled.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/server/route-modules/pages/module.compiled.js ***! + \******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("\nif (false) {} else {\n if (true) {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/pages.runtime.dev.js */ \"next/dist/compiled/next-server/pages.runtime.dev.js\");\n } else {}\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL21vZHVsZS5jb21waWxlZC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLElBQUksS0FBbUMsRUFBRSxFQUV4QyxDQUFDO0FBQ0YsUUFBUSxJQUFzQztBQUM5QyxRQUFRLHNKQUErRTtBQUN2RixNQUFNLEtBQUssRUFJTjtBQUNMOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9wYWdlcy9tb2R1bGUuY29tcGlsZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9wYWdlcy9tb2R1bGUuanMnKTtcbn0gZWxzZSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL3BhZ2VzLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvcGFnZXMtdHVyYm8ucnVudGltZS5wcm9kLmpzJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvcGFnZXMucnVudGltZS5wcm9kLmpzJyk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuY29tcGlsZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/route-modules/pages/module.compiled.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js ***! + \********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.AmpContext;\n\n//# sourceMappingURL=amp-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2FtcC1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2Isd0tBQWlGOztBQUVqRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvYW1wLWNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydjb250ZXh0cyddLkFtcENvbnRleHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFtcC1jb250ZXh0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/route-modules/pages/vendored/contexts/amp-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js ***! + \*****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.HeadManagerContext;\n\n//# sourceMappingURL=head-manager-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2hlYWQtbWFuYWdlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsZ0xBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvcGFnZXMvdmVuZG9yZWQvY29udGV4dHMvaGVhZC1tYW5hZ2VyLWNvbnRleHQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5tb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4uLy4uL21vZHVsZS5jb21waWxlZCcpLnZlbmRvcmVkWydjb250ZXh0cyddLkhlYWRNYW5hZ2VyQ29udGV4dDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aGVhZC1tYW5hZ2VyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js ***! + \*********************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"./node_modules/next/dist/server/route-modules/pages/module.compiled.js\").vendored.contexts.HtmlContext;\n\n//# sourceMappingURL=html-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2h0bWwtY29udGV4dC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLHlLQUFrRjs7QUFFbEYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL3BhZ2VzL3ZlbmRvcmVkL2NvbnRleHRzL2h0bWwtY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uSHRtbENvbnRleHQ7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWh0bWwtY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js\n"); + +/***/ }), + +/***/ "./node_modules/next/dist/server/utils.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/server/utils.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n cleanAmpPath: function() {\n return cleanAmpPath;\n },\n debounce: function() {\n return debounce;\n },\n isBlockedPage: function() {\n return isBlockedPage;\n }\n});\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"./node_modules/next/dist/shared/lib/constants.js\");\nfunction isBlockedPage(page) {\n return _constants.BLOCKED_PAGES.includes(page);\n}\nfunction cleanAmpPath(pathname) {\n if (pathname.match(/\\?amp=(y|yes|true|1)/)) {\n pathname = pathname.replace(/\\?amp=(y|yes|true|1)&?/, '?');\n }\n if (pathname.match(/&=(y|yes|true|1)/)) {\n pathname = pathname.replace(/&=(y|yes|true|1)/, '');\n }\n pathname = pathname.replace(/\\?$/, '');\n return pathname;\n}\nfunction debounce(fn, ms, maxWait = Infinity) {\n let timeoutId;\n // The time the debouncing function was first called during this debounce queue.\n let startTime = 0;\n // The time the debouncing function was last called.\n let lastCall = 0;\n // The arguments and this context of the last call to the debouncing function.\n let args, context;\n // A helper used to that either invokes the debounced function, or\n // reschedules the timer if a more recent call was made.\n function run() {\n const now = Date.now();\n const diff = lastCall + ms - now;\n // If the diff is non-positive, then we've waited at least `ms`\n // milliseconds since the last call. Or if we've waited for longer than the\n // max wait time, we must call the debounced function.\n if (diff <= 0 || startTime + maxWait >= now) {\n // It's important to clear the timeout id before invoking the debounced\n // function, in case the function calls the debouncing function again.\n timeoutId = undefined;\n fn.apply(context, args);\n } else {\n // Else, a new call was made after the original timer was scheduled. We\n // didn't clear the timeout (doing so is very slow), so now we need to\n // reschedule the timer for the time difference.\n timeoutId = setTimeout(run, diff);\n }\n }\n return function(...passedArgs) {\n // The arguments and this context of the most recent call are saved so the\n // debounced function can be invoked with them later.\n args = passedArgs;\n context = this;\n // Instead of constantly clearing and scheduling a timer, we record the\n // time of the last call. If a second call comes in before the timer fires,\n // then we'll reschedule in the run function. Doing this is considerably\n // faster.\n lastCall = Date.now();\n // Only schedule a new timer if we're not currently waiting.\n if (timeoutId === undefined) {\n startTime = lastCall;\n timeoutId = setTimeout(run, ms);\n }\n };\n}\n\n//# sourceMappingURL=utils.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci91dGlscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELG1CQUFtQixtQkFBTyxDQUFDLGlGQUF5QjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBjbGVhbkFtcFBhdGg6IG51bGwsXG4gICAgZGVib3VuY2U6IG51bGwsXG4gICAgaXNCbG9ja2VkUGFnZTogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBjbGVhbkFtcFBhdGg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gY2xlYW5BbXBQYXRoO1xuICAgIH0sXG4gICAgZGVib3VuY2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZGVib3VuY2U7XG4gICAgfSxcbiAgICBpc0Jsb2NrZWRQYWdlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzQmxvY2tlZFBhZ2U7XG4gICAgfVxufSk7XG5jb25zdCBfY29uc3RhbnRzID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvY29uc3RhbnRzXCIpO1xuZnVuY3Rpb24gaXNCbG9ja2VkUGFnZShwYWdlKSB7XG4gICAgcmV0dXJuIF9jb25zdGFudHMuQkxPQ0tFRF9QQUdFUy5pbmNsdWRlcyhwYWdlKTtcbn1cbmZ1bmN0aW9uIGNsZWFuQW1wUGF0aChwYXRobmFtZSkge1xuICAgIGlmIChwYXRobmFtZS5tYXRjaCgvXFw/YW1wPSh5fHllc3x0cnVlfDEpLykpIHtcbiAgICAgICAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9cXD9hbXA9KHl8eWVzfHRydWV8MSkmPy8sICc/Jyk7XG4gICAgfVxuICAgIGlmIChwYXRobmFtZS5tYXRjaCgvJmFtcD0oeXx5ZXN8dHJ1ZXwxKS8pKSB7XG4gICAgICAgIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvJmFtcD0oeXx5ZXN8dHJ1ZXwxKS8sICcnKTtcbiAgICB9XG4gICAgcGF0aG5hbWUgPSBwYXRobmFtZS5yZXBsYWNlKC9cXD8kLywgJycpO1xuICAgIHJldHVybiBwYXRobmFtZTtcbn1cbmZ1bmN0aW9uIGRlYm91bmNlKGZuLCBtcywgbWF4V2FpdCA9IEluZmluaXR5KSB7XG4gICAgbGV0IHRpbWVvdXRJZDtcbiAgICAvLyBUaGUgdGltZSB0aGUgZGVib3VuY2luZyBmdW5jdGlvbiB3YXMgZmlyc3QgY2FsbGVkIGR1cmluZyB0aGlzIGRlYm91bmNlIHF1ZXVlLlxuICAgIGxldCBzdGFydFRpbWUgPSAwO1xuICAgIC8vIFRoZSB0aW1lIHRoZSBkZWJvdW5jaW5nIGZ1bmN0aW9uIHdhcyBsYXN0IGNhbGxlZC5cbiAgICBsZXQgbGFzdENhbGwgPSAwO1xuICAgIC8vIFRoZSBhcmd1bWVudHMgYW5kIHRoaXMgY29udGV4dCBvZiB0aGUgbGFzdCBjYWxsIHRvIHRoZSBkZWJvdW5jaW5nIGZ1bmN0aW9uLlxuICAgIGxldCBhcmdzLCBjb250ZXh0O1xuICAgIC8vIEEgaGVscGVyIHVzZWQgdG8gdGhhdCBlaXRoZXIgaW52b2tlcyB0aGUgZGVib3VuY2VkIGZ1bmN0aW9uLCBvclxuICAgIC8vIHJlc2NoZWR1bGVzIHRoZSB0aW1lciBpZiBhIG1vcmUgcmVjZW50IGNhbGwgd2FzIG1hZGUuXG4gICAgZnVuY3Rpb24gcnVuKCkge1xuICAgICAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBjb25zdCBkaWZmID0gbGFzdENhbGwgKyBtcyAtIG5vdztcbiAgICAgICAgLy8gSWYgdGhlIGRpZmYgaXMgbm9uLXBvc2l0aXZlLCB0aGVuIHdlJ3ZlIHdhaXRlZCBhdCBsZWFzdCBgbXNgXG4gICAgICAgIC8vIG1pbGxpc2Vjb25kcyBzaW5jZSB0aGUgbGFzdCBjYWxsLiBPciBpZiB3ZSd2ZSB3YWl0ZWQgZm9yIGxvbmdlciB0aGFuIHRoZVxuICAgICAgICAvLyBtYXggd2FpdCB0aW1lLCB3ZSBtdXN0IGNhbGwgdGhlIGRlYm91bmNlZCBmdW5jdGlvbi5cbiAgICAgICAgaWYgKGRpZmYgPD0gMCB8fCBzdGFydFRpbWUgKyBtYXhXYWl0ID49IG5vdykge1xuICAgICAgICAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gY2xlYXIgdGhlIHRpbWVvdXQgaWQgYmVmb3JlIGludm9raW5nIHRoZSBkZWJvdW5jZWRcbiAgICAgICAgICAgIC8vIGZ1bmN0aW9uLCBpbiBjYXNlIHRoZSBmdW5jdGlvbiBjYWxscyB0aGUgZGVib3VuY2luZyBmdW5jdGlvbiBhZ2Fpbi5cbiAgICAgICAgICAgIHRpbWVvdXRJZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGZuLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gRWxzZSwgYSBuZXcgY2FsbCB3YXMgbWFkZSBhZnRlciB0aGUgb3JpZ2luYWwgdGltZXIgd2FzIHNjaGVkdWxlZC4gV2VcbiAgICAgICAgICAgIC8vIGRpZG4ndCBjbGVhciB0aGUgdGltZW91dCAoZG9pbmcgc28gaXMgdmVyeSBzbG93KSwgc28gbm93IHdlIG5lZWQgdG9cbiAgICAgICAgICAgIC8vIHJlc2NoZWR1bGUgdGhlIHRpbWVyIGZvciB0aGUgdGltZSBkaWZmZXJlbmNlLlxuICAgICAgICAgICAgdGltZW91dElkID0gc2V0VGltZW91dChydW4sIGRpZmYpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbiguLi5wYXNzZWRBcmdzKSB7XG4gICAgICAgIC8vIFRoZSBhcmd1bWVudHMgYW5kIHRoaXMgY29udGV4dCBvZiB0aGUgbW9zdCByZWNlbnQgY2FsbCBhcmUgc2F2ZWQgc28gdGhlXG4gICAgICAgIC8vIGRlYm91bmNlZCBmdW5jdGlvbiBjYW4gYmUgaW52b2tlZCB3aXRoIHRoZW0gbGF0ZXIuXG4gICAgICAgIGFyZ3MgPSBwYXNzZWRBcmdzO1xuICAgICAgICBjb250ZXh0ID0gdGhpcztcbiAgICAgICAgLy8gSW5zdGVhZCBvZiBjb25zdGFudGx5IGNsZWFyaW5nIGFuZCBzY2hlZHVsaW5nIGEgdGltZXIsIHdlIHJlY29yZCB0aGVcbiAgICAgICAgLy8gdGltZSBvZiB0aGUgbGFzdCBjYWxsLiBJZiBhIHNlY29uZCBjYWxsIGNvbWVzIGluIGJlZm9yZSB0aGUgdGltZXIgZmlyZXMsXG4gICAgICAgIC8vIHRoZW4gd2UnbGwgcmVzY2hlZHVsZSBpbiB0aGUgcnVuIGZ1bmN0aW9uLiBEb2luZyB0aGlzIGlzIGNvbnNpZGVyYWJseVxuICAgICAgICAvLyBmYXN0ZXIuXG4gICAgICAgIGxhc3RDYWxsID0gRGF0ZS5ub3coKTtcbiAgICAgICAgLy8gT25seSBzY2hlZHVsZSBhIG5ldyB0aW1lciBpZiB3ZSdyZSBub3QgY3VycmVudGx5IHdhaXRpbmcuXG4gICAgICAgIGlmICh0aW1lb3V0SWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc3RhcnRUaW1lID0gbGFzdENhbGw7XG4gICAgICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KHJ1biwgbXMpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/utils.js\n"); + +/***/ }), + /***/ "(ssr)/./node_modules/next/dist/client/app-build-id.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/client/app-build-id.js ***! @@ -1436,6 +1853,17 @@ eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr /***/ }), +/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js ***! + \****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?9abb\").vendored[\"react-ssr\"].ReactJsxDevRuntime;\n\n//# sourceMappingURL=react-jsx-dev-runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL3Nzci9yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixrTUFBMEY7O0FBRTFGIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9zc3IvcmVhY3QtanN4LWRldi1ydW50aW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9tb2R1bGUuY29tcGlsZWQnKS52ZW5kb3JlZFsncmVhY3Qtc3NyJ10uUmVhY3RKc3hEZXZSdW50aW1lO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1qc3gtZGV2LXJ1bnRpbWUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\n"); + +/***/ }), + /***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js": /*!************************************************************************************************!*\ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js ***! @@ -1623,6 +2051,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sha /***/ }), +/***/ "(rsc)/./node_modules/next/dist/api/server.js": +/*!**********************************************!*\ + !*** ./node_modules/next/dist/api/server.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../server/web/exports/index */ \"(rsc)/./node_modules/next/dist/server/web/exports/index.js\");\n/* harmony import */ var _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=server.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9zZXJ2ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRDOztBQUU1QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL3NlcnZlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi9zZXJ2ZXIvd2ViL2V4cG9ydHMvaW5kZXgnO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1zZXJ2ZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/api/server.js\n"); + +/***/ }), + /***/ "(rsc)/./node_modules/next/dist/build/output/log.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/build/output/log.js ***! @@ -1862,6 +2301,16 @@ eval("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js ***! + \*******************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +eval("var __WEBPACK_AMD_DEFINE_RESULT__;(()=>{var i={226:function(i,e){(function(o,a){\"use strict\";var r=\"1.0.35\",t=\"\",n=\"?\",s=\"function\",b=\"undefined\",w=\"object\",l=\"string\",d=\"major\",c=\"model\",u=\"name\",p=\"type\",m=\"vendor\",f=\"version\",h=\"architecture\",v=\"console\",g=\"mobile\",k=\"tablet\",x=\"smarttv\",_=\"wearable\",y=\"embedded\",q=350;var T=\"Amazon\",S=\"Apple\",z=\"ASUS\",N=\"BlackBerry\",A=\"Browser\",C=\"Chrome\",E=\"Edge\",O=\"Firefox\",U=\"Google\",j=\"Huawei\",P=\"LG\",R=\"Microsoft\",M=\"Motorola\",B=\"Opera\",V=\"Samsung\",D=\"Sharp\",I=\"Sony\",W=\"Viera\",F=\"Xiaomi\",G=\"Zebra\",H=\"Facebook\",L=\"Chromium OS\",Z=\"Mac OS\";var extend=function(i,e){var o={};for(var a in i){if(e[a]&&e[a].length%2===0){o[a]=e[a].concat(i[a])}else{o[a]=i[a]}}return o},enumerize=function(i){var e={};for(var o=0;o<i.length;o++){e[i[o].toUpperCase()]=i[o]}return e},has=function(i,e){return typeof i===l?lowerize(e).indexOf(lowerize(i))!==-1:false},lowerize=function(i){return i.toLowerCase()},majorize=function(i){return typeof i===l?i.replace(/[^\\d\\.]/g,t).split(\".\")[0]:a},trim=function(i,e){if(typeof i===l){i=i.replace(/^\\s\\s*/,t);return typeof e===b?i:i.substring(0,q)}};var rgxMapper=function(i,e){var o=0,r,t,n,b,l,d;while(o<e.length&&!l){var c=e[o],u=e[o+1];r=t=0;while(r<c.length&&!l){if(!c[r]){break}l=c[r++].exec(i);if(!!l){for(n=0;n<u.length;n++){d=l[++t];b=u[n];if(typeof b===w&&b.length>0){if(b.length===2){if(typeof b[1]==s){this[b[0]]=b[1].call(this,d)}else{this[b[0]]=b[1]}}else if(b.length===3){if(typeof b[1]===s&&!(b[1].exec&&b[1].test)){this[b[0]]=d?b[1].call(this,d,b[2]):a}else{this[b[0]]=d?d.replace(b[1],b[2]):a}}else if(b.length===4){this[b[0]]=d?b[3].call(this,d.replace(b[1],b[2])):a}}else{this[b]=d?d:a}}}}o+=2}},strMapper=function(i,e){for(var o in e){if(typeof e[o]===w&&e[o].length>0){for(var r=0;r<e[o].length;r++){if(has(e[o][r],i)){return o===n?a:o}}}else if(has(e[o],i)){return o===n?a:o}}return i};var $={\"1.0\":\"/8\",1.2:\"/1\",1.3:\"/3\",\"2.0\":\"/412\",\"2.0.2\":\"/416\",\"2.0.3\":\"/417\",\"2.0.4\":\"/419\",\"?\":\"/\"},X={ME:\"4.90\",\"NT 3.11\":\"NT3.51\",\"NT 4.0\":\"NT4.0\",2e3:\"NT 5.0\",XP:[\"NT 5.1\",\"NT 5.2\"],Vista:\"NT 6.0\",7:\"NT 6.1\",8:\"NT 6.2\",8.1:\"NT 6.3\",10:[\"NT 6.4\",\"NT 10.0\"],RT:\"ARM\"};var K={browser:[[/\\b(?:crmo|crios)\\/([\\w\\.]+)/i],[f,[u,\"Chrome\"]],[/edg(?:e|ios|a)?\\/([\\w\\.]+)/i],[f,[u,\"Edge\"]],[/(opera mini)\\/([-\\w\\.]+)/i,/(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,/(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i],[u,f],[/opios[\\/ ]+([\\w\\.]+)/i],[f,[u,B+\" Mini\"]],[/\\bopr\\/([\\w\\.]+)/i],[f,[u,B]],[/(kindle)\\/([\\w\\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,/(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i,/(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i,/(?:ms|\\()(ie) ([\\w\\.]+)/i,/(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,/(heytap|ovi)browser\\/([\\d\\.]+)/i,/(weibo)__([\\d\\.]+)/i],[u,f],[/(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i],[f,[u,\"UC\"+A]],[/microm.+\\bqbcore\\/([\\w\\.]+)/i,/\\bqbcore\\/([\\w\\.]+).+microm/i],[f,[u,\"WeChat(Win) Desktop\"]],[/micromessenger\\/([\\w\\.]+)/i],[f,[u,\"WeChat\"]],[/konqueror\\/([\\w\\.]+)/i],[f,[u,\"Konqueror\"]],[/trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i],[f,[u,\"IE\"]],[/ya(?:search)?browser\\/([\\w\\.]+)/i],[f,[u,\"Yandex\"]],[/(avast|avg)\\/([\\w\\.]+)/i],[[u,/(.+)/,\"$1 Secure \"+A],f],[/\\bfocus\\/([\\w\\.]+)/i],[f,[u,O+\" Focus\"]],[/\\bopt\\/([\\w\\.]+)/i],[f,[u,B+\" Touch\"]],[/coc_coc\\w+\\/([\\w\\.]+)/i],[f,[u,\"Coc Coc\"]],[/dolfin\\/([\\w\\.]+)/i],[f,[u,\"Dolphin\"]],[/coast\\/([\\w\\.]+)/i],[f,[u,B+\" Coast\"]],[/miuibrowser\\/([\\w\\.]+)/i],[f,[u,\"MIUI \"+A]],[/fxios\\/([-\\w\\.]+)/i],[f,[u,O]],[/\\bqihu|(qi?ho?o?|360)browser/i],[[u,\"360 \"+A]],[/(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i],[[u,/(.+)/,\"$1 \"+A],f],[/(comodo_dragon)\\/([\\w\\.]+)/i],[[u,/_/g,\" \"],f],[/(electron)\\/([\\w\\.]+) safari/i,/(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,/m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i],[u,f],[/(metasr)[\\/ ]?([\\w\\.]+)/i,/(lbbrowser)/i,/\\[(linkedin)app\\]/i],[u],[/((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i],[[u,H],f],[/(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,/(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,/safari (line)\\/([\\w\\.]+)/i,/\\b(line)\\/([\\w\\.]+)\\/iab/i,/(chromium|instagram)[\\/ ]([-\\w\\.]+)/i],[u,f],[/\\bgsa\\/([\\w\\.]+) .*safari\\//i],[f,[u,\"GSA\"]],[/musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i],[f,[u,\"TikTok\"]],[/headlesschrome(?:\\/([\\w\\.]+)| )/i],[f,[u,C+\" Headless\"]],[/ wv\\).+(chrome)\\/([\\w\\.]+)/i],[[u,C+\" WebView\"],f],[/droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i],[f,[u,\"Android \"+A]],[/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i],[u,f],[/version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i],[f,[u,\"Mobile Safari\"]],[/version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i],[f,u],[/webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i],[u,[f,strMapper,$]],[/(webkit|khtml)\\/([\\w\\.]+)/i],[u,f],[/(navigator|netscape\\d?)\\/([-\\w\\.]+)/i],[[u,\"Netscape\"],f],[/mobile vr; rv:([\\w\\.]+)\\).+firefox/i],[f,[u,O+\" Reality\"]],[/ekiohf.+(flow)\\/([\\w\\.]+)/i,/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,/(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,/(firefox)\\/([\\w\\.]+)/i,/(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,/(links) \\(([\\w\\.]+)/i,/panasonic;(viera)/i],[u,f],[/(cobalt)\\/([\\w\\.]+)/i],[u,[f,/master.|lts./,\"\"]]],cpu:[[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i],[[h,\"amd64\"]],[/(ia32(?=;))/i],[[h,lowerize]],[/((?:i[346]|x)86)[;\\)]/i],[[h,\"ia32\"]],[/\\b(aarch64|arm(v?8e?l?|_?64))\\b/i],[[h,\"arm64\"]],[/\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i],[[h,\"armhf\"]],[/windows (ce|mobile); ppc;/i],[[h,\"arm\"]],[/((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i],[[h,/ower/,t,lowerize]],[/(sun4\\w)[;\\)]/i],[[h,\"sparc\"]],[/((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i],[[h,lowerize]]],device:[[/\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i],[c,[m,V],[p,k]],[/\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,/samsung[- ]([-\\w]+)/i,/sec-(sgh\\w+)/i],[c,[m,V],[p,g]],[/(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i],[c,[m,S],[p,g]],[/\\((ipad);[-\\w\\),; ]+apple/i,/applecoremedia\\/[\\w\\.]+ \\((ipad)/i,/\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i],[c,[m,S],[p,k]],[/(macintosh);/i],[c,[m,S]],[/\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i],[c,[m,D],[p,g]],[/\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i],[c,[m,j],[p,k]],[/(?:huawei|honor)([-\\w ]+)[;\\)]/i,/\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i],[c,[m,j],[p,g]],[/\\b(poco[\\w ]+)(?: bui|\\))/i,/\\b; (\\w+) build\\/hm\\1/i,/\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,/\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,/\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i],[[c,/_/g,\" \"],[m,F],[p,g]],[/\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i],[[c,/_/g,\" \"],[m,F],[p,k]],[/; (\\w+) bui.+ oppo/i,/\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i],[c,[m,\"OPPO\"],[p,g]],[/vivo (\\w+)(?: bui|\\))/i,/\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i],[c,[m,\"Vivo\"],[p,g]],[/\\b(rmx[12]\\d{3})(?: bui|;|\\))/i],[c,[m,\"Realme\"],[p,g]],[/\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,/\\bmot(?:orola)?[- ](\\w*)/i,/((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i],[c,[m,M],[p,g]],[/\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i],[c,[m,M],[p,k]],[/((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i],[c,[m,P],[p,k]],[/(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,/\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,/\\blg-?([\\d\\w]+) bui/i],[c,[m,P],[p,g]],[/(ideatab[-\\w ]+)/i,/lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i],[c,[m,\"Lenovo\"],[p,k]],[/(?:maemo|nokia).*(n900|lumia \\d+)/i,/nokia[-_ ]?([-\\w\\.]*)/i],[[c,/_/g,\" \"],[m,\"Nokia\"],[p,g]],[/(pixel c)\\b/i],[c,[m,U],[p,k]],[/droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i],[c,[m,U],[p,g]],[/droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i],[c,[m,I],[p,g]],[/sony tablet [ps]/i,/\\b(?:sony)?sgp\\w+(?: bui|\\))/i],[[c,\"Xperia Tablet\"],[m,I],[p,k]],[/ (kb2005|in20[12]5|be20[12][59])\\b/i,/(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i],[c,[m,\"OnePlus\"],[p,g]],[/(alexa)webm/i,/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,/(kf[a-z]+)( bui|\\)).+silk\\//i],[c,[m,T],[p,k]],[/((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i],[[c,/(.+)/g,\"Fire Phone $1\"],[m,T],[p,g]],[/(playbook);[-\\w\\),; ]+(rim)/i],[c,m,[p,k]],[/\\b((?:bb[a-f]|st[hv])100-\\d)/i,/\\(bb10; (\\w+)/i],[c,[m,N],[p,g]],[/(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i],[c,[m,z],[p,k]],[/ (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i],[c,[m,z],[p,g]],[/(nexus 9)/i],[c,[m,\"HTC\"],[p,k]],[/(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,/(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i],[m,[c,/_/g,\" \"],[p,g]],[/droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i],[c,[m,\"Acer\"],[p,k]],[/droid.+; (m[1-5] note) bui/i,/\\bmz-([-\\w]{2,})/i],[c,[m,\"Meizu\"],[p,g]],[/(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,/(hp) ([\\w ]+\\w)/i,/(asus)-?(\\w+)/i,/(microsoft); (lumia[\\w ]+)/i,/(lenovo)[-_ ]?([-\\w]+)/i,/(jolla)/i,/(oppo) ?([\\w ]+) bui/i],[m,c,[p,g]],[/(kobo)\\s(ereader|touch)/i,/(archos) (gamepad2?)/i,/(hp).+(touchpad(?!.+tablet)|tablet)/i,/(kindle)\\/([\\w\\.]+)/i,/(nook)[\\w ]+build\\/(\\w+)/i,/(dell) (strea[kpr\\d ]*[\\dko])/i,/(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,/(trinity)[- ]*(t\\d{3}) bui/i,/(gigaset)[- ]+(q\\w{1,9}) bui/i,/(vodafone) ([\\w ]+)(?:\\)| bui)/i],[m,c,[p,k]],[/(surface duo)/i],[c,[m,R],[p,k]],[/droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i],[c,[m,\"Fairphone\"],[p,g]],[/(u304aa)/i],[c,[m,\"AT&T\"],[p,g]],[/\\bsie-(\\w*)/i],[c,[m,\"Siemens\"],[p,g]],[/\\b(rct\\w+) b/i],[c,[m,\"RCA\"],[p,k]],[/\\b(venue[\\d ]{2,7}) b/i],[c,[m,\"Dell\"],[p,k]],[/\\b(q(?:mv|ta)\\w+) b/i],[c,[m,\"Verizon\"],[p,k]],[/\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i],[c,[m,\"Barnes & Noble\"],[p,k]],[/\\b(tm\\d{3}\\w+) b/i],[c,[m,\"NuVision\"],[p,k]],[/\\b(k88) b/i],[c,[m,\"ZTE\"],[p,k]],[/\\b(nx\\d{3}j) b/i],[c,[m,\"ZTE\"],[p,g]],[/\\b(gen\\d{3}) b.+49h/i],[c,[m,\"Swiss\"],[p,g]],[/\\b(zur\\d{3}) b/i],[c,[m,\"Swiss\"],[p,k]],[/\\b((zeki)?tb.*\\b) b/i],[c,[m,\"Zeki\"],[p,k]],[/\\b([yr]\\d{2}) b/i,/\\b(dragon[- ]+touch |dt)(\\w{5}) b/i],[[m,\"Dragon Touch\"],c,[p,k]],[/\\b(ns-?\\w{0,9}) b/i],[c,[m,\"Insignia\"],[p,k]],[/\\b((nxa|next)-?\\w{0,9}) b/i],[c,[m,\"NextBook\"],[p,k]],[/\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i],[[m,\"Voice\"],c,[p,g]],[/\\b(lvtel\\-)?(v1[12]) b/i],[[m,\"LvTel\"],c,[p,g]],[/\\b(ph-1) /i],[c,[m,\"Essential\"],[p,g]],[/\\b(v(100md|700na|7011|917g).*\\b) b/i],[c,[m,\"Envizen\"],[p,k]],[/\\b(trio[-\\w\\. ]+) b/i],[c,[m,\"MachSpeed\"],[p,k]],[/\\btu_(1491) b/i],[c,[m,\"Rotor\"],[p,k]],[/(shield[\\w ]+) b/i],[c,[m,\"Nvidia\"],[p,k]],[/(sprint) (\\w+)/i],[m,c,[p,g]],[/(kin\\.[onetw]{3})/i],[[c,/\\./g,\" \"],[m,R],[p,g]],[/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i],[c,[m,G],[p,k]],[/droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i],[c,[m,G],[p,g]],[/smart-tv.+(samsung)/i],[m,[p,x]],[/hbbtv.+maple;(\\d+)/i],[[c,/^/,\"SmartTV\"],[m,V],[p,x]],[/(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i],[[m,P],[p,x]],[/(apple) ?tv/i],[m,[c,S+\" TV\"],[p,x]],[/crkey/i],[[c,C+\"cast\"],[m,U],[p,x]],[/droid.+aft(\\w)( bui|\\))/i],[c,[m,T],[p,x]],[/\\(dtv[\\);].+(aquos)/i,/(aquos-tv[\\w ]+)\\)/i],[c,[m,D],[p,x]],[/(bravia[\\w ]+)( bui|\\))/i],[c,[m,I],[p,x]],[/(mitv-\\w{5}) bui/i],[c,[m,F],[p,x]],[/Hbbtv.*(technisat) (.*);/i],[m,c,[p,x]],[/\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,/hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i],[[m,trim],[c,trim],[p,x]],[/\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i],[[p,x]],[/(ouya)/i,/(nintendo) ([wids3utch]+)/i],[m,c,[p,v]],[/droid.+; (shield) bui/i],[c,[m,\"Nvidia\"],[p,v]],[/(playstation [345portablevi]+)/i],[c,[m,I],[p,v]],[/\\b(xbox(?: one)?(?!; xbox))[\\); ]/i],[c,[m,R],[p,v]],[/((pebble))app/i],[m,c,[p,_]],[/(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i],[c,[m,S],[p,_]],[/droid.+; (glass) \\d/i],[c,[m,U],[p,_]],[/droid.+; (wt63?0{2,3})\\)/i],[c,[m,G],[p,_]],[/(quest( 2| pro)?)/i],[c,[m,H],[p,_]],[/(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i],[m,[p,y]],[/(aeobc)\\b/i],[c,[m,T],[p,y]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i],[c,[p,g]],[/droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i],[c,[p,k]],[/\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i],[[p,k]],[/(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i],[[p,g]],[/(android[-\\w\\. ]{0,9});.+buil/i],[c,[m,\"Generic\"]]],engine:[[/windows.+ edge\\/([\\w\\.]+)/i],[f,[u,E+\"HTML\"]],[/webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i],[f,[u,\"Blink\"]],[/(presto)\\/([\\w\\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i,/ekioh(flow)\\/([\\w\\.]+)/i,/(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,/(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,/\\b(libweb)/i],[u,f],[/rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i],[f,u]],os:[[/microsoft (windows) (vista|xp)/i],[u,f],[/(windows) nt 6\\.2; (arm)/i,/(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i,/(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i],[u,[f,strMapper,X]],[/(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i],[[u,\"Windows\"],[f,strMapper,X]],[/ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,/ios;fbsv\\/([\\d\\.]+)/i,/cfnetwork\\/.+darwin/i],[[f,/_/g,\".\"],[u,\"iOS\"]],[/(mac os x) ?([\\w\\. ]*)/i,/(macintosh|mac_powerpc\\b)(?!.+haiku)/i],[[u,Z],[f,/_/g,\".\"]],[/droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i],[f,u],[/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,/(blackberry)\\w*\\/([\\w\\.]*)/i,/(tizen|kaios)[\\/ ]([\\w\\.]+)/i,/\\((series40);/i],[u,f],[/\\(bb(10);/i],[f,[u,N]],[/(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i],[f,[u,\"Symbian\"]],[/mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i],[f,[u,O+\" OS\"]],[/web0s;.+rt(tv)/i,/\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i],[f,[u,\"webOS\"]],[/watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i],[f,[u,\"watchOS\"]],[/crkey\\/([\\d\\.]+)/i],[f,[u,C+\"cast\"]],[/(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i],[[u,L],f],[/panasonic;(viera)/i,/(netrange)mmh/i,/(nettv)\\/(\\d+\\.[\\w\\.]+)/i,/(nintendo|playstation) ([wids345portablevuch]+)/i,/(xbox); +xbox ([^\\);]+)/i,/\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,/(mint)[\\/\\(\\) ]?(\\w*)/i,/(mageia|vectorlinux)[; ]/i,/([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,/(hurd|linux) ?([\\w\\.]*)/i,/(gnu) ?([\\w\\.]*)/i,/\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i,/(haiku) (\\w+)/i],[u,f],[/(sunos) ?([\\w\\.\\d]*)/i],[[u,\"Solaris\"],f],[/((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,/(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,/\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i,/(unix) ?([\\w\\.]*)/i],[u,f]]};var UAParser=function(i,e){if(typeof i===w){e=i;i=a}if(!(this instanceof UAParser)){return new UAParser(i,e).getResult()}var r=typeof o!==b&&o.navigator?o.navigator:a;var n=i||(r&&r.userAgent?r.userAgent:t);var v=r&&r.userAgentData?r.userAgentData:a;var x=e?extend(K,e):K;var _=r&&r.userAgent==n;this.getBrowser=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.browser);i[d]=majorize(i[f]);if(_&&r&&r.brave&&typeof r.brave.isBrave==s){i[u]=\"Brave\"}return i};this.getCPU=function(){var i={};i[h]=a;rgxMapper.call(i,n,x.cpu);return i};this.getDevice=function(){var i={};i[m]=a;i[c]=a;i[p]=a;rgxMapper.call(i,n,x.device);if(_&&!i[p]&&v&&v.mobile){i[p]=g}if(_&&i[c]==\"Macintosh\"&&r&&typeof r.standalone!==b&&r.maxTouchPoints&&r.maxTouchPoints>2){i[c]=\"iPad\";i[p]=k}return i};this.getEngine=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.engine);return i};this.getOS=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.os);if(_&&!i[u]&&v&&v.platform!=\"Unknown\"){i[u]=v.platform.replace(/chrome os/i,L).replace(/macos/i,Z)}return i};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return n};this.setUA=function(i){n=typeof i===l&&i.length>q?trim(i,q):i;return this};this.setUA(n);return this};UAParser.VERSION=r;UAParser.BROWSER=enumerize([u,f,d]);UAParser.CPU=enumerize([h]);UAParser.DEVICE=enumerize([c,m,p,v,g,x,k,_,y]);UAParser.ENGINE=UAParser.OS=enumerize([u,f]);if(typeof e!==b){if(\"object\"!==b&&i.exports){e=i.exports=UAParser}e.UAParser=UAParser}else{if(\"function\"===s&&__webpack_require__.amdO){!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return UAParser}).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof o!==b){o.UAParser=UAParser}}var Q=typeof o!==b&&(o.jQuery||o.Zepto);if(Q&&!Q.ua){var Y=new UAParser;Q.ua=Y.getResult();Q.ua.get=function(){return Y.getUA()};Q.ua.set=function(i){Y.setUA(i);var e=Y.getResult();for(var o in e){Q.ua[o]=e[o]}}}})(typeof window===\"object\"?window:this)}};var e={};function __nccwpck_require__(o){var a=e[o];if(a!==undefined){return a.exports}var r=e[o]={exports:{}};var t=true;try{i[o].call(r.exports,r,r.exports,__nccwpck_require__);t=false}finally{if(t)delete e[o]}return r.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var o=__nccwpck_require__(226);module.exports=o})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3VhLXBhcnNlci1qcy91YS1wYXJzZXIuanMiLCJtYXBwaW5ncyI6IkFBQUEsd0NBQU0sT0FBTyxrQkFBa0IsZUFBZSxhQUFhLHVPQUF1TyxxUUFBcVEseUJBQXlCLFNBQVMsZ0JBQWdCLDRCQUE0Qix1QkFBdUIsS0FBSyxXQUFXLFNBQVMsdUJBQXVCLFNBQVMsWUFBWSxXQUFXLEtBQUssMkJBQTJCLFNBQVMsbUJBQW1CLGdFQUFnRSxzQkFBc0IsdUJBQXVCLHNCQUFzQiw0REFBNEQsb0JBQW9CLGlCQUFpQix3QkFBd0IseUNBQXlDLDRCQUE0QixvQkFBb0Isc0JBQXNCLG9CQUFvQixNQUFNLHNCQUFzQixVQUFVLE1BQU0saUJBQWlCLFFBQVEsUUFBUSxXQUFXLEtBQUssU0FBUyxPQUFPLDZCQUE2QixpQkFBaUIsbUJBQW1CLDZCQUE2QixLQUFLLGlCQUFpQixzQkFBc0IsNkNBQTZDLHNDQUFzQyxLQUFLLHFDQUFxQyxzQkFBc0IscURBQXFELEtBQUssaUJBQWlCLE1BQU0seUJBQXlCLGdCQUFnQixtQ0FBbUMsWUFBWSxjQUFjLEtBQUssbUJBQW1CLG1CQUFtQixxQkFBcUIsa0JBQWtCLFVBQVUsT0FBTywrRkFBK0YsSUFBSSxzS0FBc0ssT0FBTywySkFBMkosSUFBSSx3M0JBQXczQixJQUFJLHEyQkFBcTJCLGdCQUFnQixraEJBQWtoQixHQUFHLHlWQUF5ViwyZkFBMmYscUhBQXFILGdDQUFnQyx5Q0FBeUMsZ0pBQWdKLElBQUksbURBQW1ELDRDQUE0Qyx5Q0FBeUMsMENBQTBDLDZIQUE2SCxJQUFJLFdBQVcsSUFBSSxvTUFBb00sZ0NBQWdDLFNBQVMsb0VBQW9FLDBDQUEwQyw2R0FBNkcsRUFBRSw4REFBOEQsc0JBQXNCLElBQUkscUdBQXFHLDhUQUE4VCxpQ0FBaUMsRUFBRSw4R0FBOEcsRUFBRSxpQkFBaUIseUNBQXlDLEVBQUUsVUFBVSxzS0FBc0ssSUFBSSw4REFBOEQsSUFBSSxrREFBa0QsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLGFBQWEsSUFBSSxxRkFBcUYseUpBQXlKLEVBQUUsV0FBVyxFQUFFLHlLQUF5SyxlQUFlLElBQUkscURBQXFELEVBQUUsV0FBVyxFQUFFLHlEQUF5RCxJQUFJLHFQQUFxUCxFQUFFLFlBQVksRUFBRSxzS0FBc0ssU0FBUyxpRUFBaUUsd0RBQXdELE1BQU0sZ0xBQWdMLElBQUksSUFBSSwwR0FBMEcsdUVBQXVFLDZEQUE2RCxpQ0FBaUMsR0FBRyxnTEFBZ0wsK1JBQStSLElBQUksNEJBQTRCLEVBQUUsNEJBQTRCLElBQUksMkdBQTJHLGlMQUFpTCxJQUFJLHNLQUFzSyxFQUFFLGdGQUFnRixFQUFFLHVDQUF1QyxFQUFFLDZDQUE2QyxFQUFFLHVGQUF1RixFQUFFLG1DQUFtQyxFQUFFLGdEQUFnRCxJQUFJLG9EQUFvRCxJQUFJLCtiQUErYixFQUFFLDRDQUE0QywwRUFBMEUsaUdBQWlHLGlEQUFpRCwwTUFBME0sNEdBQTRHLEVBQUUsbURBQW1ELDhGQUE4RixXQUFXLElBQUksSUFBSSwyRUFBMkUsa0ZBQWtGLGtIQUFrSCxXQUFXLHdIQUF3SCx5Q0FBeUMsUUFBUSxJQUFJLDZKQUE2SixJQUFJLGtFQUFrRSxJQUFJLDRFQUE0RSwwREFBMEQsMEVBQTBFLElBQUksRUFBRSxxWEFBcVgsSUFBSSwwRkFBMEYsc05BQXNOLElBQUksNkJBQTZCLGNBQWMsZ1hBQWdYLHFCQUFxQiw2Q0FBNkMsa0dBQWtHLFNBQVMsa0RBQWtELGdPQUFnTyxrSEFBa0gsWUFBWSwrRkFBK0Ysb1hBQW9YLElBQUksbUNBQW1DLElBQUksNlBBQTZQLDJCQUEyQixpQkFBaUIsSUFBSSxJQUFJLGdDQUFnQyxxQ0FBcUMsOENBQThDLHdDQUF3QywyQ0FBMkMsc0JBQXNCLHdCQUF3QiwyQkFBMkIsU0FBUyxPQUFPLE9BQU8sOEJBQThCLG9CQUFvQiw2Q0FBNkMsYUFBYSxVQUFVLHVCQUF1QixTQUFTLE9BQU8sMEJBQTBCLFVBQVUsMEJBQTBCLFNBQVMsT0FBTyxPQUFPLE9BQU8sNkJBQTZCLDBCQUEwQixPQUFPLDJGQUEyRixZQUFZLE9BQU8sVUFBVSwwQkFBMEIsU0FBUyxPQUFPLE9BQU8sNkJBQTZCLFVBQVUsc0JBQXNCLFNBQVMsT0FBTyxPQUFPLHlCQUF5Qix1Q0FBdUMsNERBQTRELFVBQVUsMEJBQTBCLE9BQU8sOEhBQThILHNCQUFzQixVQUFVLHVCQUF1Qix1Q0FBdUMsYUFBYSxjQUFjLGFBQWEsbUJBQW1CLG9DQUFvQyw0QkFBNEIsK0NBQStDLDZDQUE2QyxpQkFBaUIsNEJBQTRCLHFCQUFxQixvQkFBb0IsS0FBSyxHQUFHLFVBQWEsTUFBTSx3QkFBVSxFQUFFLG1DQUFRLFdBQVcsZ0JBQWdCO0FBQUEsa0dBQUUsQ0FBQyxzQkFBc0IscUJBQXFCLHdDQUF3QyxhQUFhLG1CQUFtQixtQkFBbUIsb0JBQW9CLGtCQUFrQixxQkFBcUIsV0FBVyxvQkFBb0IsZ0JBQWdCLGdCQUFnQiwwQ0FBMEMsU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUkscURBQXFELFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRiwrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC91YS1wYXJzZXItanMvdWEtcGFyc2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e3ZhciBpPXsyMjY6ZnVuY3Rpb24oaSxlKXsoZnVuY3Rpb24obyxhKXtcInVzZSBzdHJpY3RcIjt2YXIgcj1cIjEuMC4zNVwiLHQ9XCJcIixuPVwiP1wiLHM9XCJmdW5jdGlvblwiLGI9XCJ1bmRlZmluZWRcIix3PVwib2JqZWN0XCIsbD1cInN0cmluZ1wiLGQ9XCJtYWpvclwiLGM9XCJtb2RlbFwiLHU9XCJuYW1lXCIscD1cInR5cGVcIixtPVwidmVuZG9yXCIsZj1cInZlcnNpb25cIixoPVwiYXJjaGl0ZWN0dXJlXCIsdj1cImNvbnNvbGVcIixnPVwibW9iaWxlXCIsaz1cInRhYmxldFwiLHg9XCJzbWFydHR2XCIsXz1cIndlYXJhYmxlXCIseT1cImVtYmVkZGVkXCIscT0zNTA7dmFyIFQ9XCJBbWF6b25cIixTPVwiQXBwbGVcIix6PVwiQVNVU1wiLE49XCJCbGFja0JlcnJ5XCIsQT1cIkJyb3dzZXJcIixDPVwiQ2hyb21lXCIsRT1cIkVkZ2VcIixPPVwiRmlyZWZveFwiLFU9XCJHb29nbGVcIixqPVwiSHVhd2VpXCIsUD1cIkxHXCIsUj1cIk1pY3Jvc29mdFwiLE09XCJNb3Rvcm9sYVwiLEI9XCJPcGVyYVwiLFY9XCJTYW1zdW5nXCIsRD1cIlNoYXJwXCIsST1cIlNvbnlcIixXPVwiVmllcmFcIixGPVwiWGlhb21pXCIsRz1cIlplYnJhXCIsSD1cIkZhY2Vib29rXCIsTD1cIkNocm9taXVtIE9TXCIsWj1cIk1hYyBPU1wiO3ZhciBleHRlbmQ9ZnVuY3Rpb24oaSxlKXt2YXIgbz17fTtmb3IodmFyIGEgaW4gaSl7aWYoZVthXSYmZVthXS5sZW5ndGglMj09PTApe29bYV09ZVthXS5jb25jYXQoaVthXSl9ZWxzZXtvW2FdPWlbYV19fXJldHVybiBvfSxlbnVtZXJpemU9ZnVuY3Rpb24oaSl7dmFyIGU9e307Zm9yKHZhciBvPTA7bzxpLmxlbmd0aDtvKyspe2VbaVtvXS50b1VwcGVyQ2FzZSgpXT1pW29dfXJldHVybiBlfSxoYXM9ZnVuY3Rpb24oaSxlKXtyZXR1cm4gdHlwZW9mIGk9PT1sP2xvd2VyaXplKGUpLmluZGV4T2YobG93ZXJpemUoaSkpIT09LTE6ZmFsc2V9LGxvd2VyaXplPWZ1bmN0aW9uKGkpe3JldHVybiBpLnRvTG93ZXJDYXNlKCl9LG1ham9yaXplPWZ1bmN0aW9uKGkpe3JldHVybiB0eXBlb2YgaT09PWw/aS5yZXBsYWNlKC9bXlxcZFxcLl0vZyx0KS5zcGxpdChcIi5cIilbMF06YX0sdHJpbT1mdW5jdGlvbihpLGUpe2lmKHR5cGVvZiBpPT09bCl7aT1pLnJlcGxhY2UoL15cXHNcXHMqLyx0KTtyZXR1cm4gdHlwZW9mIGU9PT1iP2k6aS5zdWJzdHJpbmcoMCxxKX19O3ZhciByZ3hNYXBwZXI9ZnVuY3Rpb24oaSxlKXt2YXIgbz0wLHIsdCxuLGIsbCxkO3doaWxlKG88ZS5sZW5ndGgmJiFsKXt2YXIgYz1lW29dLHU9ZVtvKzFdO3I9dD0wO3doaWxlKHI8Yy5sZW5ndGgmJiFsKXtpZighY1tyXSl7YnJlYWt9bD1jW3IrK10uZXhlYyhpKTtpZighIWwpe2ZvcihuPTA7bjx1Lmxlbmd0aDtuKyspe2Q9bFsrK3RdO2I9dVtuXTtpZih0eXBlb2YgYj09PXcmJmIubGVuZ3RoPjApe2lmKGIubGVuZ3RoPT09Mil7aWYodHlwZW9mIGJbMV09PXMpe3RoaXNbYlswXV09YlsxXS5jYWxsKHRoaXMsZCl9ZWxzZXt0aGlzW2JbMF1dPWJbMV19fWVsc2UgaWYoYi5sZW5ndGg9PT0zKXtpZih0eXBlb2YgYlsxXT09PXMmJiEoYlsxXS5leGVjJiZiWzFdLnRlc3QpKXt0aGlzW2JbMF1dPWQ/YlsxXS5jYWxsKHRoaXMsZCxiWzJdKTphfWVsc2V7dGhpc1tiWzBdXT1kP2QucmVwbGFjZShiWzFdLGJbMl0pOmF9fWVsc2UgaWYoYi5sZW5ndGg9PT00KXt0aGlzW2JbMF1dPWQ/YlszXS5jYWxsKHRoaXMsZC5yZXBsYWNlKGJbMV0sYlsyXSkpOmF9fWVsc2V7dGhpc1tiXT1kP2Q6YX19fX1vKz0yfX0sc3RyTWFwcGVyPWZ1bmN0aW9uKGksZSl7Zm9yKHZhciBvIGluIGUpe2lmKHR5cGVvZiBlW29dPT09dyYmZVtvXS5sZW5ndGg+MCl7Zm9yKHZhciByPTA7cjxlW29dLmxlbmd0aDtyKyspe2lmKGhhcyhlW29dW3JdLGkpKXtyZXR1cm4gbz09PW4/YTpvfX19ZWxzZSBpZihoYXMoZVtvXSxpKSl7cmV0dXJuIG89PT1uP2E6b319cmV0dXJuIGl9O3ZhciAkPXtcIjEuMFwiOlwiLzhcIiwxLjI6XCIvMVwiLDEuMzpcIi8zXCIsXCIyLjBcIjpcIi80MTJcIixcIjIuMC4yXCI6XCIvNDE2XCIsXCIyLjAuM1wiOlwiLzQxN1wiLFwiMi4wLjRcIjpcIi80MTlcIixcIj9cIjpcIi9cIn0sWD17TUU6XCI0LjkwXCIsXCJOVCAzLjExXCI6XCJOVDMuNTFcIixcIk5UIDQuMFwiOlwiTlQ0LjBcIiwyZTM6XCJOVCA1LjBcIixYUDpbXCJOVCA1LjFcIixcIk5UIDUuMlwiXSxWaXN0YTpcIk5UIDYuMFwiLDc6XCJOVCA2LjFcIiw4OlwiTlQgNi4yXCIsOC4xOlwiTlQgNi4zXCIsMTA6W1wiTlQgNi40XCIsXCJOVCAxMC4wXCJdLFJUOlwiQVJNXCJ9O3ZhciBLPXticm93c2VyOltbL1xcYig/OmNybW98Y3Jpb3MpXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJDaHJvbWVcIl1dLFsvZWRnKD86ZXxpb3N8YSk/XFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJFZGdlXCJdXSxbLyhvcGVyYSBtaW5pKVxcLyhbLVxcd1xcLl0rKS9pLC8ob3BlcmEgW21vYmlsZXRhYl17Myw2fSlcXGIuK3ZlcnNpb25cXC8oWy1cXHdcXC5dKykvaSwvKG9wZXJhKSg/Oi4rdmVyc2lvblxcL3xbXFwvIF0rKShbXFx3XFwuXSspL2ldLFt1LGZdLFsvb3Bpb3NbXFwvIF0rKFtcXHdcXC5dKykvaV0sW2YsW3UsQitcIiBNaW5pXCJdXSxbL1xcYm9wclxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LEJdXSxbLyhraW5kbGUpXFwvKFtcXHdcXC5dKykvaSwvKGx1bmFzY2FwZXxtYXh0aG9ufG5ldGZyb250fGphc21pbmV8YmxhemVyKVtcXC8gXT8oW1xcd1xcLl0qKS9pLC8oYXZhbnQgfGllbW9iaWxlfHNsaW0pKD86YnJvd3Nlcik/W1xcLyBdPyhbXFx3XFwuXSopL2ksLyhiYT9pZHVicm93c2VyKVtcXC8gXT8oW1xcd1xcLl0rKS9pLC8oPzptc3xcXCgpKGllKSAoW1xcd1xcLl0rKS9pLC8oZmxvY2t8cm9ja21lbHR8bWlkb3JpfGVwaXBoYW55fHNpbGt8c2t5ZmlyZXxib2x0fGlyb258dml2YWxkaXxpcmlkaXVtfHBoYW50b21qc3xib3dzZXJ8cXVhcmt8cXVwemlsbGF8ZmFsa29ufHJla29ucXxwdWZmaW58YnJhdmV8d2hhbGUoPyEuK25hdmVyKXxxcWJyb3dzZXJsaXRlfHFxfGR1Y2tkdWNrZ28pXFwvKFstXFx3XFwuXSspL2ksLyhoZXl0YXB8b3ZpKWJyb3dzZXJcXC8oW1xcZFxcLl0rKS9pLC8od2VpYm8pX18oW1xcZFxcLl0rKS9pXSxbdSxmXSxbLyg/OlxcYnVjPyA/YnJvd3NlcnwoPzpqdWMuKyl1Y3dlYilbXFwvIF0/KFtcXHdcXC5dKykvaV0sW2YsW3UsXCJVQ1wiK0FdXSxbL21pY3JvbS4rXFxicWJjb3JlXFwvKFtcXHdcXC5dKykvaSwvXFxicWJjb3JlXFwvKFtcXHdcXC5dKykuK21pY3JvbS9pXSxbZixbdSxcIldlQ2hhdChXaW4pIERlc2t0b3BcIl1dLFsvbWljcm9tZXNzZW5nZXJcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIldlQ2hhdFwiXV0sWy9rb25xdWVyb3JcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIktvbnF1ZXJvclwiXV0sWy90cmlkZW50Litydls6IF0oW1xcd1xcLl17MSw5fSlcXGIuK2xpa2UgZ2Vja28vaV0sW2YsW3UsXCJJRVwiXV0sWy95YSg/OnNlYXJjaCk/YnJvd3NlclxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiWWFuZGV4XCJdXSxbLyhhdmFzdHxhdmcpXFwvKFtcXHdcXC5dKykvaV0sW1t1LC8oLispLyxcIiQxIFNlY3VyZSBcIitBXSxmXSxbL1xcYmZvY3VzXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsTytcIiBGb2N1c1wiXV0sWy9cXGJvcHRcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxCK1wiIFRvdWNoXCJdXSxbL2NvY19jb2NcXHcrXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJDb2MgQ29jXCJdXSxbL2RvbGZpblxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiRG9scGhpblwiXV0sWy9jb2FzdFxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LEIrXCIgQ29hc3RcIl1dLFsvbWl1aWJyb3dzZXJcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIk1JVUkgXCIrQV1dLFsvZnhpb3NcXC8oWy1cXHdcXC5dKykvaV0sW2YsW3UsT11dLFsvXFxicWlodXwocWk/aG8/bz98MzYwKWJyb3dzZXIvaV0sW1t1LFwiMzYwIFwiK0FdXSxbLyhvY3VsdXN8c2Ftc3VuZ3xzYWlsZmlzaHxodWF3ZWkpYnJvd3NlclxcLyhbXFx3XFwuXSspL2ldLFtbdSwvKC4rKS8sXCIkMSBcIitBXSxmXSxbLyhjb21vZG9fZHJhZ29uKVxcLyhbXFx3XFwuXSspL2ldLFtbdSwvXy9nLFwiIFwiXSxmXSxbLyhlbGVjdHJvbilcXC8oW1xcd1xcLl0rKSBzYWZhcmkvaSwvKHRlc2xhKSg/OiBxdGNhcmJyb3dzZXJ8XFwvKDIwXFxkXFxkXFwuWy1cXHdcXC5dKykpL2ksL20/KHFxYnJvd3NlcnxiYWlkdWJveGFwcHwyMzQ1RXhwbG9yZXIpW1xcLyBdPyhbXFx3XFwuXSspL2ldLFt1LGZdLFsvKG1ldGFzcilbXFwvIF0/KFtcXHdcXC5dKykvaSwvKGxiYnJvd3NlcikvaSwvXFxbKGxpbmtlZGluKWFwcFxcXS9pXSxbdV0sWy8oKD86ZmJhblxcL2ZiaW9zfGZiX2lhYlxcL2ZiNGEpKD8hLitmYmF2KXw7ZmJhdlxcLyhbXFx3XFwuXSspOykvaV0sW1t1LEhdLGZdLFsvKGtha2FvKD86dGFsa3xzdG9yeSkpW1xcLyBdKFtcXHdcXC5dKykvaSwvKG5hdmVyKVxcKC4qPyhcXGQrXFwuW1xcd1xcLl0rKS4qXFwpL2ksL3NhZmFyaSAobGluZSlcXC8oW1xcd1xcLl0rKS9pLC9cXGIobGluZSlcXC8oW1xcd1xcLl0rKVxcL2lhYi9pLC8oY2hyb21pdW18aW5zdGFncmFtKVtcXC8gXShbLVxcd1xcLl0rKS9pXSxbdSxmXSxbL1xcYmdzYVxcLyhbXFx3XFwuXSspIC4qc2FmYXJpXFwvL2ldLFtmLFt1LFwiR1NBXCJdXSxbL211c2ljYWxfbHkoPzouK2FwcF8/dmVyc2lvblxcL3xfKShbXFx3XFwuXSspL2ldLFtmLFt1LFwiVGlrVG9rXCJdXSxbL2hlYWRsZXNzY2hyb21lKD86XFwvKFtcXHdcXC5dKyl8ICkvaV0sW2YsW3UsQytcIiBIZWFkbGVzc1wiXV0sWy8gd3ZcXCkuKyhjaHJvbWUpXFwvKFtcXHdcXC5dKykvaV0sW1t1LEMrXCIgV2ViVmlld1wiXSxmXSxbL2Ryb2lkLisgdmVyc2lvblxcLyhbXFx3XFwuXSspXFxiLisoPzptb2JpbGUgc2FmYXJpfHNhZmFyaSkvaV0sW2YsW3UsXCJBbmRyb2lkIFwiK0FdXSxbLyhjaHJvbWV8b21uaXdlYnxhcm9yYXxbdGl6ZW5va2FdezV9ID9icm93c2VyKVxcL3Y/KFtcXHdcXC5dKykvaV0sW3UsZl0sWy92ZXJzaW9uXFwvKFtcXHdcXC5cXCxdKykgLiptb2JpbGVcXC9cXHcrIChzYWZhcmkpL2ldLFtmLFt1LFwiTW9iaWxlIFNhZmFyaVwiXV0sWy92ZXJzaW9uXFwvKFtcXHcoXFwufFxcLCldKykgLioobW9iaWxlID9zYWZhcml8c2FmYXJpKS9pXSxbZix1XSxbL3dlYmtpdC4rPyhtb2JpbGUgP3NhZmFyaXxzYWZhcmkpKFxcL1tcXHdcXC5dKykvaV0sW3UsW2Ysc3RyTWFwcGVyLCRdXSxbLyh3ZWJraXR8a2h0bWwpXFwvKFtcXHdcXC5dKykvaV0sW3UsZl0sWy8obmF2aWdhdG9yfG5ldHNjYXBlXFxkPylcXC8oWy1cXHdcXC5dKykvaV0sW1t1LFwiTmV0c2NhcGVcIl0sZl0sWy9tb2JpbGUgdnI7IHJ2OihbXFx3XFwuXSspXFwpLitmaXJlZm94L2ldLFtmLFt1LE8rXCIgUmVhbGl0eVwiXV0sWy9la2lvaGYuKyhmbG93KVxcLyhbXFx3XFwuXSspL2ksLyhzd2lmdGZveCkvaSwvKGljZWRyYWdvbnxpY2V3ZWFzZWx8Y2FtaW5vfGNoaW1lcmF8ZmVubmVjfG1hZW1vIGJyb3dzZXJ8bWluaW1vfGNvbmtlcm9yfGtsYXIpW1xcLyBdPyhbXFx3XFwuXFwrXSspL2ksLyhzZWFtb25rZXl8ay1tZWxlb258aWNlY2F0fGljZWFwZXxmaXJlYmlyZHxwaG9lbml4fHBhbGVtb29ufGJhc2lsaXNrfHdhdGVyZm94KVxcLyhbLVxcd1xcLl0rKSQvaSwvKGZpcmVmb3gpXFwvKFtcXHdcXC5dKykvaSwvKG1vemlsbGEpXFwvKFtcXHdcXC5dKykgLitydlxcOi4rZ2Vja29cXC9cXGQrL2ksLyhwb2xhcmlzfGx5bnh8ZGlsbG98aWNhYnxkb3Jpc3xhbWF5YXx3M218bmV0c3VyZnxzbGVpcG5pcnxvYmlnb3xtb3NhaWN8KD86Z298aWNlfHVwKVtcXC4gXT9icm93c2VyKVstXFwvIF0/dj8oW1xcd1xcLl0rKS9pLC8obGlua3MpIFxcKChbXFx3XFwuXSspL2ksL3BhbmFzb25pYzsodmllcmEpL2ldLFt1LGZdLFsvKGNvYmFsdClcXC8oW1xcd1xcLl0rKS9pXSxbdSxbZiwvbWFzdGVyLnxsdHMuLyxcIlwiXV1dLGNwdTpbWy8oPzooYW1kfHgoPzooPzo4Nnw2NClbLV9dKT98d293fHdpbik2NClbO1xcKV0vaV0sW1toLFwiYW1kNjRcIl1dLFsvKGlhMzIoPz07KSkvaV0sW1toLGxvd2VyaXplXV0sWy8oKD86aVszNDZdfHgpODYpWztcXCldL2ldLFtbaCxcImlhMzJcIl1dLFsvXFxiKGFhcmNoNjR8YXJtKHY/OGU/bD98Xz82NCkpXFxiL2ldLFtbaCxcImFybTY0XCJdXSxbL1xcYihhcm0oPzp2WzY3XSk/aHQ/bj9bZmxdcD8pXFxiL2ldLFtbaCxcImFybWhmXCJdXSxbL3dpbmRvd3MgKGNlfG1vYmlsZSk7IHBwYzsvaV0sW1toLFwiYXJtXCJdXSxbLygoPzpwcGN8cG93ZXJwYykoPzo2NCk/KSg/OiBtYWN8O3xcXCkpL2ldLFtbaCwvb3dlci8sdCxsb3dlcml6ZV1dLFsvKHN1bjRcXHcpWztcXCldL2ldLFtbaCxcInNwYXJjXCJdXSxbLygoPzphdnIzMnxpYTY0KD89OykpfDY4ayg/PVxcKSl8XFxiYXJtKD89dig/OlsxLTddfFs1LTddMSlsP3w7fGVhYmkpfCg/PWF0bWVsIClhdnJ8KD86aXJpeHxtaXBzfHNwYXJjKSg/OjY0KT9cXGJ8cGEtcmlzYykvaV0sW1toLGxvd2VyaXplXV1dLGRldmljZTpbWy9cXGIoc2NoLWlbODldMFxcZHxzaHctbTM4MHN8c20tW3B0eF1cXHd7Miw0fXxndC1bcG5dXFxkezIsNH18c2doLXQ4WzU2XTl8bmV4dXMgMTApL2ldLFtjLFttLFZdLFtwLGtdXSxbL1xcYigoPzpzW2NncF1ofGd0fHNtKS1cXHcrfHNjW2ctXT9bXFxkXSthP3xnYWxheHkgbmV4dXMpL2ksL3NhbXN1bmdbLSBdKFstXFx3XSspL2ksL3NlYy0oc2doXFx3KykvaV0sW2MsW20sVl0sW3AsZ11dLFsvKD86XFwvfFxcKCkoaXAoPzpob25lfG9kKVtcXHcsIF0qKSg/OlxcL3w7KS9pXSxbYyxbbSxTXSxbcCxnXV0sWy9cXCgoaXBhZCk7Wy1cXHdcXCksOyBdK2FwcGxlL2ksL2FwcGxlY29yZW1lZGlhXFwvW1xcd1xcLl0rIFxcKChpcGFkKS9pLC9cXGIoaXBhZClcXGRcXGQ/LFxcZFxcZD9bO1xcXV0uK2lvcy9pXSxbYyxbbSxTXSxbcCxrXV0sWy8obWFjaW50b3NoKTsvaV0sW2MsW20sU11dLFsvXFxiKHNoLT9bYWx0dnpdP1xcZFxcZFthLWVrbV0/KS9pXSxbYyxbbSxEXSxbcCxnXV0sWy9cXGIoKD86YWdbcnNdWzIzXT98YmFoMj98c2h0P3xidHYpLWE/W2x3XVxcZHsyfSlcXGIoPyEuK2RcXC9zKS9pXSxbYyxbbSxqXSxbcCxrXV0sWy8oPzpodWF3ZWl8aG9ub3IpKFstXFx3IF0rKVs7XFwpXS9pLC9cXGIobmV4dXMgNnB8XFx3ezIsNH1lPy1bYXR1XT9bbG5dW1xcZHhdWzAxMjM1OWNdW2Fkbl0/KVxcYig/IS4rZFxcL3MpL2ldLFtjLFttLGpdLFtwLGddXSxbL1xcYihwb2NvW1xcdyBdKykoPzogYnVpfFxcKSkvaSwvXFxiOyAoXFx3KykgYnVpbGRcXC9obVxcMS9pLC9cXGIoaG1bLV8gXT9ub3RlP1tfIF0/KD86XFxkXFx3KT8pIGJ1aS9pLC9cXGIocmVkbWlbXFwtXyBdPyg/Om5vdGV8ayk/W1xcd18gXSspKD86IGJ1aXxcXCkpL2ksL1xcYihtaVstXyBdPyg/OmFcXGR8b25lfG9uZVtfIF1wbHVzfG5vdGUgbHRlfG1heHxjYyk/W18gXT8oPzpcXGQ/XFx3PylbXyBdPyg/OnBsdXN8c2V8bGl0ZSk/KSg/OiBidWl8XFwpKS9pXSxbW2MsL18vZyxcIiBcIl0sW20sRl0sW3AsZ11dLFsvXFxiKG1pWy1fIF0/KD86cGFkKSg/OltcXHdfIF0rKSkoPzogYnVpfFxcKSkvaV0sW1tjLC9fL2csXCIgXCJdLFttLEZdLFtwLGtdXSxbLzsgKFxcdyspIGJ1aS4rIG9wcG8vaSwvXFxiKGNwaFsxMl1cXGR7M318cCg/OmFmfGNbYWxdfGRcXHd8ZVthcl0pW210XVxcZDB8eDkwMDd8YTEwMW9wKVxcYi9pXSxbYyxbbSxcIk9QUE9cIl0sW3AsZ11dLFsvdml2byAoXFx3KykoPzogYnVpfFxcKSkvaSwvXFxiKHZbMTJdXFxkezN9XFx3P1thdF0pKD86IGJ1aXw7KS9pXSxbYyxbbSxcIlZpdm9cIl0sW3AsZ11dLFsvXFxiKHJteFsxMl1cXGR7M30pKD86IGJ1aXw7fFxcKSkvaV0sW2MsW20sXCJSZWFsbWVcIl0sW3AsZ11dLFsvXFxiKG1pbGVzdG9uZXxkcm9pZCg/OlsyLTR4XXwgKD86YmlvbmljfHgyfHByb3xyYXpyKSk/Oj8oIDRnKT8pXFxiW1xcdyBdK2J1aWxkXFwvL2ksL1xcYm1vdCg/Om9yb2xhKT9bLSBdKFxcdyopL2ksLygoPzptb3RvW1xcd1xcKFxcKSBdK3x4dFxcZHszLDR9fG5leHVzIDYpKD89IGJ1aXxcXCkpKS9pXSxbYyxbbSxNXSxbcCxnXV0sWy9cXGIobXo2MFxcZHx4b29tWzIgXXswLDJ9KSBidWlsZFxcLy9pXSxbYyxbbSxNXSxbcCxrXV0sWy8oKD89bGcpP1t2bF1rXFwtP1xcZHszfSkgYnVpfCAzXFwuWy1cXHc7IF17MTB9bGc/LShbMDZjdjldezMsNH0pL2ldLFtjLFttLFBdLFtwLGtdXSxbLyhsbSg/Oi0/ZjEwMFtudl0/fC1bXFx3XFwuXSspKD89IGJ1aXxcXCkpfG5leHVzIFs0NV0pL2ksL1xcYmxnWy1lO1xcLyBdKygoPyFicm93c2VyfG5ldGNhc3R8YW5kcm9pZCB0dilcXHcrKS9pLC9cXGJsZy0/KFtcXGRcXHddKykgYnVpL2ldLFtjLFttLFBdLFtwLGddXSxbLyhpZGVhdGFiWy1cXHcgXSspL2ksL2xlbm92byA/KHNbNTZdMDAwWy1cXHddK3x0YWIoPzpbXFx3IF0rKXx5dFstXFxkXFx3XXs2fXx0YlstXFxkXFx3XXs2fSkvaV0sW2MsW20sXCJMZW5vdm9cIl0sW3Asa11dLFsvKD86bWFlbW98bm9raWEpLioobjkwMHxsdW1pYSBcXGQrKS9pLC9ub2tpYVstXyBdPyhbLVxcd1xcLl0qKS9pXSxbW2MsL18vZyxcIiBcIl0sW20sXCJOb2tpYVwiXSxbcCxnXV0sWy8ocGl4ZWwgYylcXGIvaV0sW2MsW20sVV0sW3Asa11dLFsvZHJvaWQuKzsgKHBpeGVsW1xcZGF4bCBdezAsNn0pKD86IGJ1aXxcXCkpL2ldLFtjLFttLFVdLFtwLGddXSxbL2Ryb2lkLisgKGE/XFxkWzAtMl17Mn1zb3xbYy1nXVxcZHs0fXxzb1stZ2xdXFx3K3x4cS1hXFx3WzQtN11bMTJdKSg/PSBidWl8XFwpLitjaHJvbWVcXC8oPyFbMS02XXswLDF9XFxkXFwuKSkvaV0sW2MsW20sSV0sW3AsZ11dLFsvc29ueSB0YWJsZXQgW3BzXS9pLC9cXGIoPzpzb255KT9zZ3BcXHcrKD86IGJ1aXxcXCkpL2ldLFtbYyxcIlhwZXJpYSBUYWJsZXRcIl0sW20sSV0sW3Asa11dLFsvIChrYjIwMDV8aW4yMFsxMl01fGJlMjBbMTJdWzU5XSlcXGIvaSwvKD86b25lKT8oPzpwbHVzKT8gKGFcXGQwXFxkXFxkKSg/OiBifFxcKSkvaV0sW2MsW20sXCJPbmVQbHVzXCJdLFtwLGddXSxbLyhhbGV4YSl3ZWJtL2ksLyhrZlthLXpdezJ9d2l8YWVvW2Mtcl17Mn0pKCBidWl8XFwpKS9pLC8oa2ZbYS16XSspKCBidWl8XFwpKS4rc2lsa1xcLy9pXSxbYyxbbSxUXSxbcCxrXV0sWy8oKD86c2R8a2YpWzAzNDloaWpvcnN0dXddKykoIGJ1aXxcXCkpLitzaWxrXFwvL2ldLFtbYywvKC4rKS9nLFwiRmlyZSBQaG9uZSAkMVwiXSxbbSxUXSxbcCxnXV0sWy8ocGxheWJvb2spO1stXFx3XFwpLDsgXSsocmltKS9pXSxbYyxtLFtwLGtdXSxbL1xcYigoPzpiYlthLWZdfHN0W2h2XSkxMDAtXFxkKS9pLC9cXChiYjEwOyAoXFx3KykvaV0sW2MsW20sTl0sW3AsZ11dLFsvKD86XFxifGFzdXNfKSh0cmFuc2ZvW3ByaW1lIF17NCwxMH0gXFx3K3xlZWVwY3xzbGlkZXIgXFx3K3xuZXh1cyA3fHBhZGZvbmV8cDAwW2NqXSkvaV0sW2MsW20sel0sW3Asa11dLFsvICh6W2Jlc102WzAyN11bMDEyXVtrbV1bbHNdfHplbmZvbmUgXFxkXFx3PylcXGIvaV0sW2MsW20sel0sW3AsZ11dLFsvKG5leHVzIDkpL2ldLFtjLFttLFwiSFRDXCJdLFtwLGtdXSxbLyhodGMpWy07XyBdezEsMn0oW1xcdyBdKyg/PVxcKXwgYnVpKXxcXHcrKS9pLC8oenRlKVstIF0oW1xcdyBdKz8pKD86IGJ1aXxcXC98XFwpKS9pLC8oYWxjYXRlbHxnZWVrc3Bob25lfG5leGlhbnxwYW5hc29uaWMoPyEoPzo7fFxcLikpfHNvbnkoPyEtYnJhKSlbLV8gXT8oWy1cXHddKikvaV0sW20sW2MsL18vZyxcIiBcIl0sW3AsZ11dLFsvZHJvaWQuKzsgKFthYl1bMS03XS0/WzAxNzhhXVxcZFxcZD8pL2ldLFtjLFttLFwiQWNlclwiXSxbcCxrXV0sWy9kcm9pZC4rOyAobVsxLTVdIG5vdGUpIGJ1aS9pLC9cXGJtei0oWy1cXHddezIsfSkvaV0sW2MsW20sXCJNZWl6dVwiXSxbcCxnXV0sWy8oYmxhY2tiZXJyeXxiZW5xfHBhbG0oPz1cXC0pfHNvbnllcmljc3NvbnxhY2VyfGFzdXN8ZGVsbHxtZWl6dXxtb3Rvcm9sYXxwb2x5dHJvbilbLV8gXT8oWy1cXHddKikvaSwvKGhwKSAoW1xcdyBdK1xcdykvaSwvKGFzdXMpLT8oXFx3KykvaSwvKG1pY3Jvc29mdCk7IChsdW1pYVtcXHcgXSspL2ksLyhsZW5vdm8pWy1fIF0/KFstXFx3XSspL2ksLyhqb2xsYSkvaSwvKG9wcG8pID8oW1xcdyBdKykgYnVpL2ldLFttLGMsW3AsZ11dLFsvKGtvYm8pXFxzKGVyZWFkZXJ8dG91Y2gpL2ksLyhhcmNob3MpIChnYW1lcGFkMj8pL2ksLyhocCkuKyh0b3VjaHBhZCg/IS4rdGFibGV0KXx0YWJsZXQpL2ksLyhraW5kbGUpXFwvKFtcXHdcXC5dKykvaSwvKG5vb2spW1xcdyBdK2J1aWxkXFwvKFxcdyspL2ksLyhkZWxsKSAoc3RyZWFba3ByXFxkIF0qW1xcZGtvXSkvaSwvKGxlWy0gXStwYW4pWy0gXSsoXFx3ezEsOX0pIGJ1aS9pLC8odHJpbml0eSlbLSBdKih0XFxkezN9KSBidWkvaSwvKGdpZ2FzZXQpWy0gXSsocVxcd3sxLDl9KSBidWkvaSwvKHZvZGFmb25lKSAoW1xcdyBdKykoPzpcXCl8IGJ1aSkvaV0sW20sYyxbcCxrXV0sWy8oc3VyZmFjZSBkdW8pL2ldLFtjLFttLFJdLFtwLGtdXSxbL2Ryb2lkIFtcXGRcXC5dKzsgKGZwXFxkdT8pKD86IGJ8XFwpKS9pXSxbYyxbbSxcIkZhaXJwaG9uZVwiXSxbcCxnXV0sWy8odTMwNGFhKS9pXSxbYyxbbSxcIkFUJlRcIl0sW3AsZ11dLFsvXFxic2llLShcXHcqKS9pXSxbYyxbbSxcIlNpZW1lbnNcIl0sW3AsZ11dLFsvXFxiKHJjdFxcdyspIGIvaV0sW2MsW20sXCJSQ0FcIl0sW3Asa11dLFsvXFxiKHZlbnVlW1xcZCBdezIsN30pIGIvaV0sW2MsW20sXCJEZWxsXCJdLFtwLGtdXSxbL1xcYihxKD86bXZ8dGEpXFx3KykgYi9pXSxbYyxbbSxcIlZlcml6b25cIl0sW3Asa11dLFsvXFxiKD86YmFybmVzWyYgXStub2JsZSB8Ym5bcnRdKShbXFx3XFwrIF0qKSBiL2ldLFtjLFttLFwiQmFybmVzICYgTm9ibGVcIl0sW3Asa11dLFsvXFxiKHRtXFxkezN9XFx3KykgYi9pXSxbYyxbbSxcIk51VmlzaW9uXCJdLFtwLGtdXSxbL1xcYihrODgpIGIvaV0sW2MsW20sXCJaVEVcIl0sW3Asa11dLFsvXFxiKG54XFxkezN9aikgYi9pXSxbYyxbbSxcIlpURVwiXSxbcCxnXV0sWy9cXGIoZ2VuXFxkezN9KSBiLis0OWgvaV0sW2MsW20sXCJTd2lzc1wiXSxbcCxnXV0sWy9cXGIoenVyXFxkezN9KSBiL2ldLFtjLFttLFwiU3dpc3NcIl0sW3Asa11dLFsvXFxiKCh6ZWtpKT90Yi4qXFxiKSBiL2ldLFtjLFttLFwiWmVraVwiXSxbcCxrXV0sWy9cXGIoW3lyXVxcZHsyfSkgYi9pLC9cXGIoZHJhZ29uWy0gXSt0b3VjaCB8ZHQpKFxcd3s1fSkgYi9pXSxbW20sXCJEcmFnb24gVG91Y2hcIl0sYyxbcCxrXV0sWy9cXGIobnMtP1xcd3swLDl9KSBiL2ldLFtjLFttLFwiSW5zaWduaWFcIl0sW3Asa11dLFsvXFxiKChueGF8bmV4dCktP1xcd3swLDl9KSBiL2ldLFtjLFttLFwiTmV4dEJvb2tcIl0sW3Asa11dLFsvXFxiKHh0cmVtZVxcXyk/KHYoMVswNDVdfDJbMDE1XXxbMzQ2OV0wfDdbMDVdKSkgYi9pXSxbW20sXCJWb2ljZVwiXSxjLFtwLGddXSxbL1xcYihsdnRlbFxcLSk/KHYxWzEyXSkgYi9pXSxbW20sXCJMdlRlbFwiXSxjLFtwLGddXSxbL1xcYihwaC0xKSAvaV0sW2MsW20sXCJFc3NlbnRpYWxcIl0sW3AsZ11dLFsvXFxiKHYoMTAwbWR8NzAwbmF8NzAxMXw5MTdnKS4qXFxiKSBiL2ldLFtjLFttLFwiRW52aXplblwiXSxbcCxrXV0sWy9cXGIodHJpb1stXFx3XFwuIF0rKSBiL2ldLFtjLFttLFwiTWFjaFNwZWVkXCJdLFtwLGtdXSxbL1xcYnR1XygxNDkxKSBiL2ldLFtjLFttLFwiUm90b3JcIl0sW3Asa11dLFsvKHNoaWVsZFtcXHcgXSspIGIvaV0sW2MsW20sXCJOdmlkaWFcIl0sW3Asa11dLFsvKHNwcmludCkgKFxcdyspL2ldLFttLGMsW3AsZ11dLFsvKGtpblxcLltvbmV0d117M30pL2ldLFtbYywvXFwuL2csXCIgXCJdLFttLFJdLFtwLGddXSxbL2Ryb2lkLis7IChjYzY2NjY/fGV0NVsxNl18bWNbMjM5XVsyM114P3x2YzhbMDNdeD8pXFwpL2ldLFtjLFttLEddLFtwLGtdXSxbL2Ryb2lkLis7IChlYzMwfHBzMjB8dGNbMi04XVxcZFtreF0pXFwpL2ldLFtjLFttLEddLFtwLGddXSxbL3NtYXJ0LXR2Lisoc2Ftc3VuZykvaV0sW20sW3AseF1dLFsvaGJidHYuK21hcGxlOyhcXGQrKS9pXSxbW2MsL14vLFwiU21hcnRUVlwiXSxbbSxWXSxbcCx4XV0sWy8obnV4OyBuZXRjYXN0LitzbWFydHR2fGxnIChuZXRjYXN0XFwudHYtMjAxXFxkfGFuZHJvaWQgdHYpKS9pXSxbW20sUF0sW3AseF1dLFsvKGFwcGxlKSA/dHYvaV0sW20sW2MsUytcIiBUVlwiXSxbcCx4XV0sWy9jcmtleS9pXSxbW2MsQytcImNhc3RcIl0sW20sVV0sW3AseF1dLFsvZHJvaWQuK2FmdChcXHcpKCBidWl8XFwpKS9pXSxbYyxbbSxUXSxbcCx4XV0sWy9cXChkdHZbXFwpO10uKyhhcXVvcykvaSwvKGFxdW9zLXR2W1xcdyBdKylcXCkvaV0sW2MsW20sRF0sW3AseF1dLFsvKGJyYXZpYVtcXHcgXSspKCBidWl8XFwpKS9pXSxbYyxbbSxJXSxbcCx4XV0sWy8obWl0di1cXHd7NX0pIGJ1aS9pXSxbYyxbbSxGXSxbcCx4XV0sWy9IYmJ0di4qKHRlY2huaXNhdCkgKC4qKTsvaV0sW20sYyxbcCx4XV0sWy9cXGIocm9rdSlbXFxkeF0qW1xcKVxcL10oKD86ZHZwLSk/W1xcZFxcLl0qKS9pLC9oYmJ0dlxcL1xcZCtcXC5cXGQrXFwuXFxkKyArXFwoW1xcd1xcKyBdKjsgKihbXFx3XFxkXVteO10qKTsoW147XSopL2ldLFtbbSx0cmltXSxbYyx0cmltXSxbcCx4XV0sWy9cXGIoYW5kcm9pZCB0dnxzbWFydFstIF0/dHZ8b3BlcmEgdHZ8dHY7IHJ2OilcXGIvaV0sW1twLHhdXSxbLyhvdXlhKS9pLC8obmludGVuZG8pIChbd2lkczN1dGNoXSspL2ldLFttLGMsW3Asdl1dLFsvZHJvaWQuKzsgKHNoaWVsZCkgYnVpL2ldLFtjLFttLFwiTnZpZGlhXCJdLFtwLHZdXSxbLyhwbGF5c3RhdGlvbiBbMzQ1cG9ydGFibGV2aV0rKS9pXSxbYyxbbSxJXSxbcCx2XV0sWy9cXGIoeGJveCg/OiBvbmUpPyg/ITsgeGJveCkpW1xcKTsgXS9pXSxbYyxbbSxSXSxbcCx2XV0sWy8oKHBlYmJsZSkpYXBwL2ldLFttLGMsW3AsX11dLFsvKHdhdGNoKSg/OiA/b3NbLFxcL118XFxkLFxcZFxcLylbXFxkXFwuXSsvaV0sW2MsW20sU10sW3AsX11dLFsvZHJvaWQuKzsgKGdsYXNzKSBcXGQvaV0sW2MsW20sVV0sW3AsX11dLFsvZHJvaWQuKzsgKHd0NjM/MHsyLDN9KVxcKS9pXSxbYyxbbSxHXSxbcCxfXV0sWy8ocXVlc3QoIDJ8IHBybyk/KS9pXSxbYyxbbSxIXSxbcCxfXV0sWy8odGVzbGEpKD86IHF0Y2FyYnJvd3NlcnxcXC9bLVxcd1xcLl0rKS9pXSxbbSxbcCx5XV0sWy8oYWVvYmMpXFxiL2ldLFtjLFttLFRdLFtwLHldXSxbL2Ryb2lkIC4rPzsgKFteO10rPykoPzogYnVpfFxcKSBhcHBsZXcpLis/IG1vYmlsZSBzYWZhcmkvaV0sW2MsW3AsZ11dLFsvZHJvaWQgLis/OyAoW147XSs/KSg/OiBidWl8XFwpIGFwcGxldykuKz8oPyEgbW9iaWxlKSBzYWZhcmkvaV0sW2MsW3Asa11dLFsvXFxiKCh0YWJsZXR8dGFiKVs7XFwvXXxmb2N1c1xcL1xcZCg/IS4rbW9iaWxlKSkvaV0sW1twLGtdXSxbLyhwaG9uZXxtb2JpbGUoPzpbO1xcL118IFsgXFx3XFwvXFwuXSpzYWZhcmkpfHBkYSg/PS4rd2luZG93cyBjZSkpL2ldLFtbcCxnXV0sWy8oYW5kcm9pZFstXFx3XFwuIF17MCw5fSk7LitidWlsL2ldLFtjLFttLFwiR2VuZXJpY1wiXV1dLGVuZ2luZTpbWy93aW5kb3dzLisgZWRnZVxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LEUrXCJIVE1MXCJdXSxbL3dlYmtpdFxcLzUzN1xcLjM2LitjaHJvbWVcXC8oPyEyNykoW1xcd1xcLl0rKS9pXSxbZixbdSxcIkJsaW5rXCJdXSxbLyhwcmVzdG8pXFwvKFtcXHdcXC5dKykvaSwvKHdlYmtpdHx0cmlkZW50fG5ldGZyb250fG5ldHN1cmZ8YW1heWF8bHlueHx3M218Z29hbm5hKVxcLyhbXFx3XFwuXSspL2ksL2VraW9oKGZsb3cpXFwvKFtcXHdcXC5dKykvaSwvKGtodG1sfHRhc21hbnxsaW5rcylbXFwvIF1cXCg/KFtcXHdcXC5dKykvaSwvKGljYWIpW1xcLyBdKFsyM11cXC5bXFxkXFwuXSspL2ksL1xcYihsaWJ3ZWIpL2ldLFt1LGZdLFsvcnZcXDooW1xcd1xcLl17MSw5fSlcXGIuKyhnZWNrbykvaV0sW2YsdV1dLG9zOltbL21pY3Jvc29mdCAod2luZG93cykgKHZpc3RhfHhwKS9pXSxbdSxmXSxbLyh3aW5kb3dzKSBudCA2XFwuMjsgKGFybSkvaSwvKHdpbmRvd3MgKD86cGhvbmUoPzogb3MpP3xtb2JpbGUpKVtcXC8gXT8oW1xcZFxcLlxcdyBdKikvaSwvKHdpbmRvd3MpW1xcLyBdPyhbbnRjZVxcZFxcLiBdK1xcdykoPyEuK3hib3gpL2ldLFt1LFtmLHN0ck1hcHBlcixYXV0sWy8od2luKD89M3w5fG4pfHdpbiA5eCApKFtudFxcZFxcLl0rKS9pXSxbW3UsXCJXaW5kb3dzXCJdLFtmLHN0ck1hcHBlcixYXV0sWy9pcFtob25lYWRdezIsNH1cXGIoPzouKm9zIChbXFx3XSspIGxpa2UgbWFjfDsgb3BlcmEpL2ksL2lvcztmYnN2XFwvKFtcXGRcXC5dKykvaSwvY2ZuZXR3b3JrXFwvLitkYXJ3aW4vaV0sW1tmLC9fL2csXCIuXCJdLFt1LFwiaU9TXCJdXSxbLyhtYWMgb3MgeCkgPyhbXFx3XFwuIF0qKS9pLC8obWFjaW50b3NofG1hY19wb3dlcnBjXFxiKSg/IS4raGFpa3UpL2ldLFtbdSxaXSxbZiwvXy9nLFwiLlwiXV0sWy9kcm9pZCAoW1xcd1xcLl0rKVxcYi4rKGFuZHJvaWRbLSBdeDg2fGhhcm1vbnlvcykvaV0sW2YsdV0sWy8oYW5kcm9pZHx3ZWJvc3xxbnh8YmFkYXxyaW0gdGFibGV0IG9zfG1hZW1vfG1lZWdvfHNhaWxmaXNoKVstXFwvIF0/KFtcXHdcXC5dKikvaSwvKGJsYWNrYmVycnkpXFx3KlxcLyhbXFx3XFwuXSopL2ksLyh0aXplbnxrYWlvcylbXFwvIF0oW1xcd1xcLl0rKS9pLC9cXCgoc2VyaWVzNDApOy9pXSxbdSxmXSxbL1xcKGJiKDEwKTsvaV0sW2YsW3UsTl1dLFsvKD86c3ltYmlhbiA/b3N8c3ltYm9zfHM2MCg/PTspfHNlcmllczYwKVstXFwvIF0/KFtcXHdcXC5dKikvaV0sW2YsW3UsXCJTeW1iaWFuXCJdXSxbL21vemlsbGFcXC9bXFxkXFwuXSsgXFwoKD86bW9iaWxlfHRhYmxldHx0dnxtb2JpbGU7IFtcXHcgXSspOyBydjouKyBnZWNrb1xcLyhbXFx3XFwuXSspL2ldLFtmLFt1LE8rXCIgT1NcIl1dLFsvd2ViMHM7LitydCh0dikvaSwvXFxiKD86aHApP3dvcyg/OmJyb3dzZXIpP1xcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwid2ViT1NcIl1dLFsvd2F0Y2goPzogP29zWyxcXC9dfFxcZCxcXGRcXC8pKFtcXGRcXC5dKykvaV0sW2YsW3UsXCJ3YXRjaE9TXCJdXSxbL2Nya2V5XFwvKFtcXGRcXC5dKykvaV0sW2YsW3UsQytcImNhc3RcIl1dLFsvKGNyb3MpIFtcXHddKyg/OlxcKXwgKFtcXHdcXC5dKylcXGIpL2ldLFtbdSxMXSxmXSxbL3BhbmFzb25pYzsodmllcmEpL2ksLyhuZXRyYW5nZSltbWgvaSwvKG5ldHR2KVxcLyhcXGQrXFwuW1xcd1xcLl0rKS9pLC8obmludGVuZG98cGxheXN0YXRpb24pIChbd2lkczM0NXBvcnRhYmxldnVjaF0rKS9pLC8oeGJveCk7ICt4Ym94IChbXlxcKTtdKykvaSwvXFxiKGpvbGl8cGFsbSlcXGIgPyg/Om9zKT9cXC8/KFtcXHdcXC5dKikvaSwvKG1pbnQpW1xcL1xcKFxcKSBdPyhcXHcqKS9pLC8obWFnZWlhfHZlY3RvcmxpbnV4KVs7IF0vaSwvKFtreGxuXT91YnVudHV8ZGViaWFufHN1c2V8b3BlbnN1c2V8Z2VudG9vfGFyY2goPz0gbGludXgpfHNsYWNrd2FyZXxmZWRvcmF8bWFuZHJpdmF8Y2VudG9zfHBjbGludXhvc3xyZWQgP2hhdHx6ZW53YWxrfGxpbnB1c3xyYXNwYmlhbnxwbGFuIDl8bWluaXh8cmlzYyBvc3xjb250aWtpfGRlZXBpbnxtYW5qYXJvfGVsZW1lbnRhcnkgb3N8c2FiYXlvbnxsaW5zcGlyZSkoPzogZ251XFwvbGludXgpPyg/OiBlbnRlcnByaXNlKT8oPzpbLSBdbGludXgpPyg/Oi1nbnUpP1stXFwvIF0/KD8hY2hyb218cGFja2FnZSkoWy1cXHdcXC5dKikvaSwvKGh1cmR8bGludXgpID8oW1xcd1xcLl0qKS9pLC8oZ251KSA/KFtcXHdcXC5dKikvaSwvXFxiKFstZnJlbnRvcGNnaHNdezAsNX1ic2R8ZHJhZ29uZmx5KVtcXC8gXT8oPyFhbWR8W2l4MzQ2XXsxLDJ9ODYpKFtcXHdcXC5dKikvaSwvKGhhaWt1KSAoXFx3KykvaV0sW3UsZl0sWy8oc3Vub3MpID8oW1xcd1xcLlxcZF0qKS9pXSxbW3UsXCJTb2xhcmlzXCJdLGZdLFsvKCg/Om9wZW4pP3NvbGFyaXMpWy1cXC8gXT8oW1xcd1xcLl0qKS9pLC8oYWl4KSAoKFxcZCkoPz1cXC58XFwpfCApW1xcd1xcLl0pKi9pLC9cXGIoYmVvc3xvc1xcLzJ8YW1pZ2Fvc3xtb3JwaG9zfG9wZW52bXN8ZnVjaHNpYXxocC11eHxzZXJlbml0eW9zKS9pLC8odW5peCkgPyhbXFx3XFwuXSopL2ldLFt1LGZdXX07dmFyIFVBUGFyc2VyPWZ1bmN0aW9uKGksZSl7aWYodHlwZW9mIGk9PT13KXtlPWk7aT1hfWlmKCEodGhpcyBpbnN0YW5jZW9mIFVBUGFyc2VyKSl7cmV0dXJuIG5ldyBVQVBhcnNlcihpLGUpLmdldFJlc3VsdCgpfXZhciByPXR5cGVvZiBvIT09YiYmby5uYXZpZ2F0b3I/by5uYXZpZ2F0b3I6YTt2YXIgbj1pfHwociYmci51c2VyQWdlbnQ/ci51c2VyQWdlbnQ6dCk7dmFyIHY9ciYmci51c2VyQWdlbnREYXRhP3IudXNlckFnZW50RGF0YTphO3ZhciB4PWU/ZXh0ZW5kKEssZSk6Szt2YXIgXz1yJiZyLnVzZXJBZ2VudD09bjt0aGlzLmdldEJyb3dzZXI9ZnVuY3Rpb24oKXt2YXIgaT17fTtpW3VdPWE7aVtmXT1hO3JneE1hcHBlci5jYWxsKGksbix4LmJyb3dzZXIpO2lbZF09bWFqb3JpemUoaVtmXSk7aWYoXyYmciYmci5icmF2ZSYmdHlwZW9mIHIuYnJhdmUuaXNCcmF2ZT09cyl7aVt1XT1cIkJyYXZlXCJ9cmV0dXJuIGl9O3RoaXMuZ2V0Q1BVPWZ1bmN0aW9uKCl7dmFyIGk9e307aVtoXT1hO3JneE1hcHBlci5jYWxsKGksbix4LmNwdSk7cmV0dXJuIGl9O3RoaXMuZ2V0RGV2aWNlPWZ1bmN0aW9uKCl7dmFyIGk9e307aVttXT1hO2lbY109YTtpW3BdPWE7cmd4TWFwcGVyLmNhbGwoaSxuLHguZGV2aWNlKTtpZihfJiYhaVtwXSYmdiYmdi5tb2JpbGUpe2lbcF09Z31pZihfJiZpW2NdPT1cIk1hY2ludG9zaFwiJiZyJiZ0eXBlb2Ygci5zdGFuZGFsb25lIT09YiYmci5tYXhUb3VjaFBvaW50cyYmci5tYXhUb3VjaFBvaW50cz4yKXtpW2NdPVwiaVBhZFwiO2lbcF09a31yZXR1cm4gaX07dGhpcy5nZXRFbmdpbmU9ZnVuY3Rpb24oKXt2YXIgaT17fTtpW3VdPWE7aVtmXT1hO3JneE1hcHBlci5jYWxsKGksbix4LmVuZ2luZSk7cmV0dXJuIGl9O3RoaXMuZ2V0T1M9ZnVuY3Rpb24oKXt2YXIgaT17fTtpW3VdPWE7aVtmXT1hO3JneE1hcHBlci5jYWxsKGksbix4Lm9zKTtpZihfJiYhaVt1XSYmdiYmdi5wbGF0Zm9ybSE9XCJVbmtub3duXCIpe2lbdV09di5wbGF0Zm9ybS5yZXBsYWNlKC9jaHJvbWUgb3MvaSxMKS5yZXBsYWNlKC9tYWNvcy9pLFopfXJldHVybiBpfTt0aGlzLmdldFJlc3VsdD1mdW5jdGlvbigpe3JldHVybnt1YTp0aGlzLmdldFVBKCksYnJvd3Nlcjp0aGlzLmdldEJyb3dzZXIoKSxlbmdpbmU6dGhpcy5nZXRFbmdpbmUoKSxvczp0aGlzLmdldE9TKCksZGV2aWNlOnRoaXMuZ2V0RGV2aWNlKCksY3B1OnRoaXMuZ2V0Q1BVKCl9fTt0aGlzLmdldFVBPWZ1bmN0aW9uKCl7cmV0dXJuIG59O3RoaXMuc2V0VUE9ZnVuY3Rpb24oaSl7bj10eXBlb2YgaT09PWwmJmkubGVuZ3RoPnE/dHJpbShpLHEpOmk7cmV0dXJuIHRoaXN9O3RoaXMuc2V0VUEobik7cmV0dXJuIHRoaXN9O1VBUGFyc2VyLlZFUlNJT049cjtVQVBhcnNlci5CUk9XU0VSPWVudW1lcml6ZShbdSxmLGRdKTtVQVBhcnNlci5DUFU9ZW51bWVyaXplKFtoXSk7VUFQYXJzZXIuREVWSUNFPWVudW1lcml6ZShbYyxtLHAsdixnLHgsayxfLHldKTtVQVBhcnNlci5FTkdJTkU9VUFQYXJzZXIuT1M9ZW51bWVyaXplKFt1LGZdKTtpZih0eXBlb2YgZSE9PWIpe2lmKFwib2JqZWN0XCIhPT1iJiZpLmV4cG9ydHMpe2U9aS5leHBvcnRzPVVBUGFyc2VyfWUuVUFQYXJzZXI9VUFQYXJzZXJ9ZWxzZXtpZih0eXBlb2YgZGVmaW5lPT09cyYmZGVmaW5lLmFtZCl7ZGVmaW5lKChmdW5jdGlvbigpe3JldHVybiBVQVBhcnNlcn0pKX1lbHNlIGlmKHR5cGVvZiBvIT09Yil7by5VQVBhcnNlcj1VQVBhcnNlcn19dmFyIFE9dHlwZW9mIG8hPT1iJiYoby5qUXVlcnl8fG8uWmVwdG8pO2lmKFEmJiFRLnVhKXt2YXIgWT1uZXcgVUFQYXJzZXI7US51YT1ZLmdldFJlc3VsdCgpO1EudWEuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIFkuZ2V0VUEoKX07US51YS5zZXQ9ZnVuY3Rpb24oaSl7WS5zZXRVQShpKTt2YXIgZT1ZLmdldFJlc3VsdCgpO2Zvcih2YXIgbyBpbiBlKXtRLnVhW29dPWVbb119fX19KSh0eXBlb2Ygd2luZG93PT09XCJvYmplY3RcIj93aW5kb3c6dGhpcyl9fTt2YXIgZT17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKG8pe3ZhciBhPWVbb107aWYoYSE9PXVuZGVmaW5lZCl7cmV0dXJuIGEuZXhwb3J0c312YXIgcj1lW29dPXtleHBvcnRzOnt9fTt2YXIgdD10cnVlO3RyeXtpW29dLmNhbGwoci5leHBvcnRzLHIsci5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO3Q9ZmFsc2V9ZmluYWxseXtpZih0KWRlbGV0ZSBlW29dfXJldHVybiByLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciBvPV9fbmNjd3Bja19yZXF1aXJlX18oMjI2KTttb2R1bGUuZXhwb3J0cz1vfSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js\n"); + /***/ }), /***/ "(rsc)/./node_modules/next/dist/lib/batcher.js": @@ -2152,6 +2601,28 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n})); /***/ }), +/***/ "(rsc)/./node_modules/next/dist/server/after/after.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/server/after/after.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"after\", ({\n enumerable: true,\n get: function() {\n return after;\n }\n}));\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"../app-render/work-async-storage.external\");\nfunction after(task) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n // TODO(after): the linked docs page talks about *dynamic* APIs, which after soon won't be anymore\n throw new Error('`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context');\n }\n const { afterContext } = workStore;\n return afterContext.after(task);\n}\n\n//# sourceMappingURL=after.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hZnRlci9hZnRlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLGtDQUFrQyxtQkFBTyxDQUFDLDRGQUEyQztBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGVBQWU7QUFDM0I7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FmdGVyL2FmdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiYWZ0ZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFmdGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmZ1bmN0aW9uIGFmdGVyKHRhc2spIHtcbiAgICBjb25zdCB3b3JrU3RvcmUgPSBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAoIXdvcmtTdG9yZSkge1xuICAgICAgICAvLyBUT0RPKGFmdGVyKTogdGhlIGxpbmtlZCBkb2NzIHBhZ2UgdGFsa3MgYWJvdXQgKmR5bmFtaWMqIEFQSXMsIHdoaWNoIGFmdGVyIHNvb24gd29uJ3QgYmUgYW55bW9yZVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BhZnRlcmAgd2FzIGNhbGxlZCBvdXRzaWRlIGEgcmVxdWVzdCBzY29wZS4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LWR5bmFtaWMtYXBpLXdyb25nLWNvbnRleHQnKTtcbiAgICB9XG4gICAgY29uc3QgeyBhZnRlckNvbnRleHQgfSA9IHdvcmtTdG9yZTtcbiAgICByZXR1cm4gYWZ0ZXJDb250ZXh0LmFmdGVyKHRhc2spO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1hZnRlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/after/after.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/server/after/index.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/server/after/index.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && 0;\n_export_star(__webpack_require__(/*! ./after */ \"(rsc)/./node_modules/next/dist/server/after/after.js\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hZnRlci9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLEtBQUssQ0FBNEI7QUFDakMsYUFBYSxtQkFBTyxDQUFDLHFFQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FmdGVyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiBfX2V4cG9ydChyZXF1aXJlKFwiLi9hZnRlclwiKSk7XG5fZXhwb3J0X3N0YXIocmVxdWlyZShcIi4vYWZ0ZXJcIiksIGV4cG9ydHMpO1xuZnVuY3Rpb24gX2V4cG9ydF9zdGFyKGZyb20sIHRvKSB7XG4gICAgT2JqZWN0LmtleXMoZnJvbSkuZm9yRWFjaChmdW5jdGlvbihrKSB7XG4gICAgICAgIGlmIChrICE9PSBcImRlZmF1bHRcIiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRvLCBrKSkge1xuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRvLCBrLCB7XG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbVtrXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmcm9tO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/after/index.js\n"); + +/***/ }), + /***/ "(rsc)/./node_modules/next/dist/server/app-render/collect-segment-data.js": /*!**************************************************************************!*\ !*** ./node_modules/next/dist/server/app-render/collect-segment-data.js ***! @@ -2372,6 +2843,17 @@ eval("/* eslint-disable no-redeclare */ \nObject.defineProperty(exports, \"__esM /***/ }), +/***/ "(rsc)/./node_modules/next/dist/server/request/connection.js": +/*!*************************************************************!*\ + !*** ./node_modules/next/dist/server/request/connection.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"connection\", ({\n enumerable: true,\n get: function() {\n return connection;\n }\n}));\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"../app-render/work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/request/utils.js\");\nfunction connection() {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workStore) {\n if (workUnitStore && workUnitStore.phase === 'after' && !(0, _utils.isRequestAPICallableInsideAfter)()) {\n throw new Error(`Route ${workStore.route} used \"connection\" inside \"after(...)\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but \"after(...)\" executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`);\n }\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // headers object without tracking\n return Promise.resolve(undefined);\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'cache') {\n throw new Error(`Route ${workStore.route} used \"connection\" inside \"use cache\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`);\n } else if (workUnitStore.type === 'unstable-cache') {\n throw new Error(`Route ${workStore.route} used \"connection\" inside a function cached with \"unstable_cache(...)\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`);\n }\n }\n if (workStore.dynamicShouldError) {\n throw new _staticgenerationbailout.StaticGenBailoutError(`Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`connection\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`);\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'prerender') {\n // dynamicIO Prerender\n // We return a promise that never resolves to allow the prender to stall at this point\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, '`connection()`');\n } else if (workUnitStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n // We use React's postpone API to interrupt rendering here to create a dynamic hole\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, 'connection', workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n // Legacy Prerender\n // We throw an error here to interrupt prerendering to mark the route as dynamic\n (0, _dynamicrendering.throwToInterruptStaticGeneration)('connection', workStore, workUnitStore);\n }\n }\n // We fall through to the dynamic context below but we still track dynamic access\n // because in dev we can still error for things like using headers inside a cache context\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workStore, workUnitStore);\n }\n return Promise.resolve(undefined);\n}\n\n//# sourceMappingURL=connection.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2Nvbm5lY3Rpb24uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw4Q0FBNkM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixrQ0FBa0MsbUJBQU8sQ0FBQyw0RkFBMkM7QUFDckYsc0NBQXNDLG1CQUFPLENBQUMsMEZBQWdEO0FBQzlGLDBCQUEwQixtQkFBTyxDQUFDLDhHQUFpQztBQUNuRSxpQ0FBaUMsbUJBQU8sQ0FBQyx3SUFBbUQ7QUFDNUYsK0JBQStCLG1CQUFPLENBQUMsb0dBQTRCO0FBQ25FLGVBQWUsbUJBQU8sQ0FBQyx1RUFBUztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLGlCQUFpQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLGlCQUFpQjtBQUMxRCxjQUFjO0FBQ2QseUNBQXlDLGlCQUFpQjtBQUMxRDtBQUNBO0FBQ0E7QUFDQSw4RUFBOEUsaUJBQWlCO0FBQy9GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QvY29ubmVjdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImNvbm5lY3Rpb25cIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb247XG4gICAgfVxufSk7XG5jb25zdCBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5nID0gcmVxdWlyZShcIi4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmdcIik7XG5jb25zdCBfc3RhdGljZ2VuZXJhdGlvbmJhaWxvdXQgPSByZXF1aXJlKFwiLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dFwiKTtcbmNvbnN0IF9keW5hbWljcmVuZGVyaW5ndXRpbHMgPSByZXF1aXJlKFwiLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHNcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbmZ1bmN0aW9uIGNvbm5lY3Rpb24oKSB7XG4gICAgY29uc3Qgd29ya1N0b3JlID0gX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbC53b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgaWYgKHdvcmtTdG9yZSkge1xuICAgICAgICBpZiAod29ya1VuaXRTdG9yZSAmJiB3b3JrVW5pdFN0b3JlLnBoYXNlID09PSAnYWZ0ZXInICYmICEoMCwgX3V0aWxzLmlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIpKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJjb25uZWN0aW9uXCIgaW5zaWRlIFwiYWZ0ZXIoLi4uKVwiLiBUaGUgXFxgY29ubmVjdGlvbigpXFxgIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhlIHN1YnNlcXVlbnQgY29kZSBtdXN0IG9ubHkgcnVuIHdoZW4gdGhlcmUgaXMgYW4gYWN0dWFsIFJlcXVlc3QsIGJ1dCBcImFmdGVyKC4uLilcIiBleGVjdXRlcyBhZnRlciB0aGUgcmVxdWVzdCwgc28gdGhpcyBmdW5jdGlvbiBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHNjb3BlLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2NhbmFyeS9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvYWZ0ZXJgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAod29ya1N0b3JlLmZvcmNlU3RhdGljKSB7XG4gICAgICAgICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAgICAgICAvLyBoZWFkZXJzIG9iamVjdCB3aXRob3V0IHRyYWNraW5nXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdjYWNoZScpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJvdXRlICR7d29ya1N0b3JlLnJvdXRlfSB1c2VkIFwiY29ubmVjdGlvblwiIGluc2lkZSBcInVzZSBjYWNoZVwiLiBUaGUgXFxgY29ubmVjdGlvbigpXFxgIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhlIHN1YnNlcXVlbnQgY29kZSBtdXN0IG9ubHkgcnVuIHdoZW4gdGhlcmUgaXMgYW4gYWN0dWFsIFJlcXVlc3QsIGJ1dCBjYWNoZXMgbXVzdCBiZSBhYmxlIHRvIGJlIHByb2R1Y2VkIGJlZm9yZSBhIFJlcXVlc3Qgc28gdGhpcyBmdW5jdGlvbiBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHNjb3BlLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcmVxdWVzdC1pbi11c2UtY2FjaGVgKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAndW5zdGFibGUtY2FjaGUnKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSb3V0ZSAke3dvcmtTdG9yZS5yb3V0ZX0gdXNlZCBcImNvbm5lY3Rpb25cIiBpbnNpZGUgYSBmdW5jdGlvbiBjYWNoZWQgd2l0aCBcInVuc3RhYmxlX2NhY2hlKC4uLilcIi4gVGhlIFxcYGNvbm5lY3Rpb24oKVxcYCBmdW5jdGlvbiBpcyB1c2VkIHRvIGluZGljYXRlIHRoZSBzdWJzZXF1ZW50IGNvZGUgbXVzdCBvbmx5IHJ1biB3aGVuIHRoZXJlIGlzIGFuIGFjdHVhbCBSZXF1ZXN0LCBidXQgY2FjaGVzIG11c3QgYmUgYWJsZSB0byBiZSBwcm9kdWNlZCBiZWZvcmUgYSBSZXF1ZXN0IHNvIHRoaXMgZnVuY3Rpb24gaXMgbm90IGFsbG93ZWQgaW4gdGhpcyBzY29wZS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdW5zdGFibGVfY2FjaGVgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IF9zdGF0aWNnZW5lcmF0aW9uYmFpbG91dC5TdGF0aWNHZW5CYWlsb3V0RXJyb3IoYFJvdXRlICR7d29ya1N0b3JlLnJvdXRlfSB3aXRoIFxcYGR5bmFtaWMgPSBcImVycm9yXCJcXGAgY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgY29ubmVjdGlvblxcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgICAgICAgIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXInKSB7XG4gICAgICAgICAgICAgICAgLy8gZHluYW1pY0lPIFByZXJlbmRlclxuICAgICAgICAgICAgICAgIC8vIFdlIHJldHVybiBhIHByb21pc2UgdGhhdCBuZXZlciByZXNvbHZlcyB0byBhbGxvdyB0aGUgcHJlbmRlciB0byBzdGFsbCBhdCB0aGlzIHBvaW50XG4gICAgICAgICAgICAgICAgcmV0dXJuICgwLCBfZHluYW1pY3JlbmRlcmluZ3V0aWxzLm1ha2VIYW5naW5nUHJvbWlzZSkod29ya1VuaXRTdG9yZS5yZW5kZXJTaWduYWwsICdgY29ubmVjdGlvbigpYCcpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItcHByJykge1xuICAgICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGR5bmFtaWNJTylcbiAgICAgICAgICAgICAgICAvLyBXZSB1c2UgUmVhY3QncyBwb3N0cG9uZSBBUEkgdG8gaW50ZXJydXB0IHJlbmRlcmluZyBoZXJlIHRvIGNyZWF0ZSBhIGR5bmFtaWMgaG9sZVxuICAgICAgICAgICAgICAgICgwLCBfZHluYW1pY3JlbmRlcmluZy5wb3N0cG9uZVdpdGhUcmFja2luZykod29ya1N0b3JlLnJvdXRlLCAnY29ubmVjdGlvbicsIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLWxlZ2FjeScpIHtcbiAgICAgICAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgICAgICAgLy8gV2UgdGhyb3cgYW4gZXJyb3IgaGVyZSB0byBpbnRlcnJ1cHQgcHJlcmVuZGVyaW5nIHRvIG1hcmsgdGhlIHJvdXRlIGFzIGR5bmFtaWNcbiAgICAgICAgICAgICAgICAoMCwgX2R5bmFtaWNyZW5kZXJpbmcudGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24pKCdjb25uZWN0aW9uJywgd29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBXZSBmYWxsIHRocm91Z2ggdG8gdGhlIGR5bmFtaWMgY29udGV4dCBiZWxvdyBidXQgd2Ugc3RpbGwgdHJhY2sgZHluYW1pYyBhY2Nlc3NcbiAgICAgICAgLy8gYmVjYXVzZSBpbiBkZXYgd2UgY2FuIHN0aWxsIGVycm9yIGZvciB0aGluZ3MgbGlrZSB1c2luZyBoZWFkZXJzIGluc2lkZSBhIGNhY2hlIGNvbnRleHRcbiAgICAgICAgKDAsIF9keW5hbWljcmVuZGVyaW5nLnRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIpKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSk7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29ubmVjdGlvbi5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/connection.js\n"); + +/***/ }), + /***/ "(rsc)/./node_modules/next/dist/server/request/params.js": /*!*********************************************************!*\ !*** ./node_modules/next/dist/server/request/params.js ***! @@ -2526,6 +3008,17 @@ eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr /***/ }), +/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-route/module.compiled.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/next/dist/server/route-modules/app-route/module.compiled.js ***! + \**********************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("\nif (false) {} else {\n if (false) {} else {\n if (true) {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/app-route.runtime.dev.js */ \"next/dist/compiled/next-server/app-route.runtime.dev.js\");\n } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1yb3V0ZS9tb2R1bGUuY29tcGlsZWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixJQUFJLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNGLFFBQVEsS0FBcUMsRUFBRSxFQVExQyxDQUFDO0FBQ04sWUFBWSxJQUFzQztBQUNsRCxZQUFZLDhKQUFtRjtBQUMvRixVQUFVLEtBQUssRUFJTjtBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1yb3V0ZS9tb2R1bGUuY29tcGlsZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5pZiAocHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FID09PSAnZWRnZScpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcm91dGUvbW9kdWxlLmpzJyk7XG59IGVsc2Uge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfRVhQRVJJTUVOVEFMX1JFQUNUKSB7XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXJvdXRlLWV4cGVyaW1lbnRhbC5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXJvdXRlLXR1cmJvLWV4cGVyaW1lbnRhbC5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1yb3V0ZS1leHBlcmltZW50YWwucnVudGltZS5wcm9kLmpzJyk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1yb3V0ZS5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICB9IGVsc2UgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXJvdXRlLXR1cmJvLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXJvdXRlLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuY29tcGlsZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-route/module.compiled.js\n"); + +/***/ }), + /***/ "(rsc)/./node_modules/next/dist/server/stream-utils/encodedTags.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/server/stream-utils/encodedTags.js ***! @@ -2570,6 +3063,17 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n})); /***/ }), +/***/ "(rsc)/./node_modules/next/dist/server/web/exports/index.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/server/web/exports/index.js ***! + \************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("// Alias index file of next/server for edge runtime for tree-shaking purpose\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ImageResponse: function() {\n return _imageresponse.ImageResponse;\n },\n NextRequest: function() {\n return _request.NextRequest;\n },\n NextResponse: function() {\n return _response.NextResponse;\n },\n URLPattern: function() {\n return _urlpattern.URLPattern;\n },\n after: function() {\n return _after.after;\n },\n connection: function() {\n return _connection.connection;\n },\n userAgent: function() {\n return _useragent.userAgent;\n },\n userAgentFromString: function() {\n return _useragent.userAgentFromString;\n }\n});\nconst _imageresponse = __webpack_require__(/*! ../spec-extension/image-response */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js\");\nconst _request = __webpack_require__(/*! ../spec-extension/request */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js\");\nconst _response = __webpack_require__(/*! ../spec-extension/response */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js\");\nconst _useragent = __webpack_require__(/*! ../spec-extension/user-agent */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js\");\nconst _urlpattern = __webpack_require__(/*! ../spec-extension/url-pattern */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js\");\nconst _after = __webpack_require__(/*! ../../after */ \"(rsc)/./node_modules/next/dist/server/after/index.js\");\nconst _connection = __webpack_require__(/*! ../../request/connection */ \"(rsc)/./node_modules/next/dist/server/request/connection.js\");\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvZXhwb3J0cy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQVNMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELHVCQUF1QixtQkFBTyxDQUFDLG9IQUFrQztBQUNqRSxpQkFBaUIsbUJBQU8sQ0FBQyxzR0FBMkI7QUFDcEQsa0JBQWtCLG1CQUFPLENBQUMsd0dBQTRCO0FBQ3RELG1CQUFtQixtQkFBTyxDQUFDLDRHQUE4QjtBQUN6RCxvQkFBb0IsbUJBQU8sQ0FBQyw4R0FBK0I7QUFDM0QsZUFBZSxtQkFBTyxDQUFDLHlFQUFhO0FBQ3BDLG9CQUFvQixtQkFBTyxDQUFDLDZGQUEwQjs7QUFFdEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvZXhwb3J0cy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbGlhcyBpbmRleCBmaWxlIG9mIG5leHQvc2VydmVyIGZvciBlZGdlIHJ1bnRpbWUgZm9yIHRyZWUtc2hha2luZyBwdXJwb3NlXG5cInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEltYWdlUmVzcG9uc2U6IG51bGwsXG4gICAgTmV4dFJlcXVlc3Q6IG51bGwsXG4gICAgTmV4dFJlc3BvbnNlOiBudWxsLFxuICAgIFVSTFBhdHRlcm46IG51bGwsXG4gICAgYWZ0ZXI6IG51bGwsXG4gICAgY29ubmVjdGlvbjogbnVsbCxcbiAgICB1c2VyQWdlbnQ6IG51bGwsXG4gICAgdXNlckFnZW50RnJvbVN0cmluZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBJbWFnZVJlc3BvbnNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9pbWFnZXJlc3BvbnNlLkltYWdlUmVzcG9uc2U7XG4gICAgfSxcbiAgICBOZXh0UmVxdWVzdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcmVxdWVzdC5OZXh0UmVxdWVzdDtcbiAgICB9LFxuICAgIE5leHRSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfcmVzcG9uc2UuTmV4dFJlc3BvbnNlO1xuICAgIH0sXG4gICAgVVJMUGF0dGVybjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdXJscGF0dGVybi5VUkxQYXR0ZXJuO1xuICAgIH0sXG4gICAgYWZ0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2FmdGVyLmFmdGVyO1xuICAgIH0sXG4gICAgY29ubmVjdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfY29ubmVjdGlvbi5jb25uZWN0aW9uO1xuICAgIH0sXG4gICAgdXNlckFnZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF91c2VyYWdlbnQudXNlckFnZW50O1xuICAgIH0sXG4gICAgdXNlckFnZW50RnJvbVN0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdXNlcmFnZW50LnVzZXJBZ2VudEZyb21TdHJpbmc7XG4gICAgfVxufSk7XG5jb25zdCBfaW1hZ2VyZXNwb25zZSA9IHJlcXVpcmUoXCIuLi9zcGVjLWV4dGVuc2lvbi9pbWFnZS1yZXNwb25zZVwiKTtcbmNvbnN0IF9yZXF1ZXN0ID0gcmVxdWlyZShcIi4uL3NwZWMtZXh0ZW5zaW9uL3JlcXVlc3RcIik7XG5jb25zdCBfcmVzcG9uc2UgPSByZXF1aXJlKFwiLi4vc3BlYy1leHRlbnNpb24vcmVzcG9uc2VcIik7XG5jb25zdCBfdXNlcmFnZW50ID0gcmVxdWlyZShcIi4uL3NwZWMtZXh0ZW5zaW9uL3VzZXItYWdlbnRcIik7XG5jb25zdCBfdXJscGF0dGVybiA9IHJlcXVpcmUoXCIuLi9zcGVjLWV4dGVuc2lvbi91cmwtcGF0dGVyblwiKTtcbmNvbnN0IF9hZnRlciA9IHJlcXVpcmUoXCIuLi8uLi9hZnRlclwiKTtcbmNvbnN0IF9jb25uZWN0aW9uID0gcmVxdWlyZShcIi4uLy4uL3JlcXVlc3QvY29ubmVjdGlvblwiKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/exports/index.js\n"); + +/***/ }), + /***/ "(rsc)/./node_modules/next/dist/server/web/next-url.js": /*!*******************************************************!*\ !*** ./node_modules/next/dist/server/web/next-url.js ***! @@ -2614,6 +3118,17 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n})); /***/ }), +/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/dist/server/web/spec-extension/image-response.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("/**\n * @deprecated ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead.\n * Migration with codemods: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#next-og-import\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ImageResponse\", ({\n enumerable: true,\n get: function() {\n return ImageResponse;\n }\n}));\nfunction ImageResponse() {\n throw new Error('ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead');\n}\n\n//# sourceMappingURL=image-response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vaW1hZ2UtcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsaURBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2ltYWdlLXJlc3BvbnNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlcHJlY2F0ZWQgSW1hZ2VSZXNwb25zZSBtb3ZlZCBmcm9tIFwibmV4dC9zZXJ2ZXJcIiB0byBcIm5leHQvb2dcIiBzaW5jZSBOZXh0LmpzIDE0LCBwbGVhc2UgaW1wb3J0IGZyb20gXCJuZXh0L29nXCIgaW5zdGVhZC5cbiAqIE1pZ3JhdGlvbiB3aXRoIGNvZGVtb2RzOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi91cGdyYWRpbmcvY29kZW1vZHMjbmV4dC1vZy1pbXBvcnRcbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkltYWdlUmVzcG9uc2VcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEltYWdlUmVzcG9uc2U7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBJbWFnZVJlc3BvbnNlKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW1hZ2VSZXNwb25zZSBtb3ZlZCBmcm9tIFwibmV4dC9zZXJ2ZXJcIiB0byBcIm5leHQvb2dcIiBzaW5jZSBOZXh0LmpzIDE0LCBwbGVhc2UgaW1wb3J0IGZyb20gXCJuZXh0L29nXCIgaW5zdGVhZCcpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1yZXNwb25zZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js\n"); + +/***/ }), + /***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/request.js ***! @@ -2625,6 +3140,39 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n})); /***/ }), +/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/server/web/spec-extension/response.js ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NextResponse\", ({\n enumerable: true,\n get: function() {\n return NextResponse;\n }\n}));\nconst _cookies = __webpack_require__(/*! ../../web/spec-extension/cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst _nexturl = __webpack_require__(/*! ../next-url */ \"(rsc)/./node_modules/next/dist/server/web/next-url.js\");\nconst _utils = __webpack_require__(/*! ../utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _reflect = __webpack_require__(/*! ./adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _cookies1 = __webpack_require__(/*! ./cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst INTERNALS = Symbol('internal response');\nconst REDIRECTS = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction handleMiddlewareField(init, headers) {\n var _init_request;\n if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) {\n if (!(init.request.headers instanceof Headers)) {\n throw new Error('request.headers must be an instance of Headers');\n }\n const keys = [];\n for (const [key, value] of init.request.headers){\n headers.set('x-middleware-request-' + key, value);\n keys.push(key);\n }\n headers.set('x-middleware-override-headers', keys.join(','));\n }\n}\nclass NextResponse extends Response {\n constructor(body, init = {}){\n super(body, init);\n const headers = this.headers;\n const cookies = new _cookies1.ResponseCookies(headers);\n const cookiesProxy = new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case 'delete':\n case 'set':\n {\n return (...args)=>{\n const result = Reflect.apply(target[prop], target, args);\n const newHeaders = new Headers(headers);\n if (result instanceof _cookies1.ResponseCookies) {\n headers.set('x-middleware-set-cookie', result.getAll().map((cookie)=>(0, _cookies.stringifyCookie)(cookie)).join(','));\n }\n handleMiddlewareField(init, newHeaders);\n return result;\n };\n }\n default:\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n this[INTERNALS] = {\n cookies: cookiesProxy,\n url: init.url ? new _nexturl.NextURL(init.url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(headers),\n nextConfig: init.nextConfig\n }) : undefined\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n url: this.url,\n // rest of props come from Response\n body: this.body,\n bodyUsed: this.bodyUsed,\n headers: Object.fromEntries(this.headers),\n ok: this.ok,\n redirected: this.redirected,\n status: this.status,\n statusText: this.statusText,\n type: this.type\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n static json(body, init) {\n const response = Response.json(body, init);\n return new NextResponse(response.body, response);\n }\n static redirect(url, init) {\n const status = typeof init === 'number' ? init : (init == null ? void 0 : init.status) ?? 307;\n if (!REDIRECTS.has(status)) {\n throw new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code');\n }\n const initObj = typeof init === 'object' ? init : {};\n const headers = new Headers(initObj == null ? void 0 : initObj.headers);\n headers.set('Location', (0, _utils.validateURL)(url));\n return new NextResponse(null, {\n ...initObj,\n headers,\n status\n });\n }\n static rewrite(destination, init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set('x-middleware-rewrite', (0, _utils.validateURL)(destination));\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n static next(init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set('x-middleware-next', '1');\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n}\n\n//# sourceMappingURL=response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixnREFBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixpQkFBaUIsbUJBQU8sQ0FBQyw2R0FBa0M7QUFDM0QsaUJBQWlCLG1CQUFPLENBQUMsMEVBQWE7QUFDdEMsZUFBZSxtQkFBTyxDQUFDLG9FQUFVO0FBQ2pDLGlCQUFpQixtQkFBTyxDQUFDLHdHQUFvQjtBQUM3QyxrQkFBa0IsbUJBQU8sQ0FBQyxzRkFBVztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVzcG9uc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJOZXh0UmVzcG9uc2VcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5leHRSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9jb29raWVzID0gcmVxdWlyZShcIi4uLy4uL3dlYi9zcGVjLWV4dGVuc2lvbi9jb29raWVzXCIpO1xuY29uc3QgX25leHR1cmwgPSByZXF1aXJlKFwiLi4vbmV4dC11cmxcIik7XG5jb25zdCBfdXRpbHMgPSByZXF1aXJlKFwiLi4vdXRpbHNcIik7XG5jb25zdCBfcmVmbGVjdCA9IHJlcXVpcmUoXCIuL2FkYXB0ZXJzL3JlZmxlY3RcIik7XG5jb25zdCBfY29va2llczEgPSByZXF1aXJlKFwiLi9jb29raWVzXCIpO1xuY29uc3QgSU5URVJOQUxTID0gU3ltYm9sKCdpbnRlcm5hbCByZXNwb25zZScpO1xuY29uc3QgUkVESVJFQ1RTID0gbmV3IFNldChbXG4gICAgMzAxLFxuICAgIDMwMixcbiAgICAzMDMsXG4gICAgMzA3LFxuICAgIDMwOFxuXSk7XG5mdW5jdGlvbiBoYW5kbGVNaWRkbGV3YXJlRmllbGQoaW5pdCwgaGVhZGVycykge1xuICAgIHZhciBfaW5pdF9yZXF1ZXN0O1xuICAgIGlmIChpbml0ID09IG51bGwgPyB2b2lkIDAgOiAoX2luaXRfcmVxdWVzdCA9IGluaXQucmVxdWVzdCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9pbml0X3JlcXVlc3QuaGVhZGVycykge1xuICAgICAgICBpZiAoIShpbml0LnJlcXVlc3QuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlcXVlc3QuaGVhZGVycyBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIEhlYWRlcnMnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGluaXQucmVxdWVzdC5oZWFkZXJzKXtcbiAgICAgICAgICAgIGhlYWRlcnMuc2V0KCd4LW1pZGRsZXdhcmUtcmVxdWVzdC0nICsga2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBoZWFkZXJzLnNldCgneC1taWRkbGV3YXJlLW92ZXJyaWRlLWhlYWRlcnMnLCBrZXlzLmpvaW4oJywnKSk7XG4gICAgfVxufVxuY2xhc3MgTmV4dFJlc3BvbnNlIGV4dGVuZHMgUmVzcG9uc2Uge1xuICAgIGNvbnN0cnVjdG9yKGJvZHksIGluaXQgPSB7fSl7XG4gICAgICAgIHN1cGVyKGJvZHksIGluaXQpO1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5oZWFkZXJzO1xuICAgICAgICBjb25zdCBjb29raWVzID0gbmV3IF9jb29raWVzMS5SZXNwb25zZUNvb2tpZXMoaGVhZGVycyk7XG4gICAgICAgIGNvbnN0IGNvb2tpZXNQcm94eSA9IG5ldyBQcm94eShjb29raWVzLCB7XG4gICAgICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NldCc6XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBSZWZsZWN0LmFwcGx5KHRhcmdldFtwcm9wXSwgdGFyZ2V0LCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlcnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgX2Nvb2tpZXMxLlJlc3BvbnNlQ29va2llcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycy5zZXQoJ3gtbWlkZGxld2FyZS1zZXQtY29va2llJywgcmVzdWx0LmdldEFsbCgpLm1hcCgoY29va2llKT0+KDAsIF9jb29raWVzLnN0cmluZ2lmeUNvb2tpZSkoY29va2llKSkuam9pbignLCcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVNaWRkbGV3YXJlRmllbGQoaW5pdCwgbmV3SGVhZGVycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpc1tJTlRFUk5BTFNdID0ge1xuICAgICAgICAgICAgY29va2llczogY29va2llc1Byb3h5LFxuICAgICAgICAgICAgdXJsOiBpbml0LnVybCA/IG5ldyBfbmV4dHVybC5OZXh0VVJMKGluaXQudXJsLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogKDAsIF91dGlscy50b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKShoZWFkZXJzKSxcbiAgICAgICAgICAgICAgICBuZXh0Q29uZmlnOiBpbml0Lm5leHRDb25maWdcbiAgICAgICAgICAgIH0pIDogdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgfVxuICAgIFtTeW1ib2wuZm9yKCdlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b20nKV0oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb29raWVzOiB0aGlzLmNvb2tpZXMsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgLy8gcmVzdCBvZiBwcm9wcyBjb21lIGZyb20gUmVzcG9uc2VcbiAgICAgICAgICAgIGJvZHk6IHRoaXMuYm9keSxcbiAgICAgICAgICAgIGJvZHlVc2VkOiB0aGlzLmJvZHlVc2VkLFxuICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBvazogdGhpcy5vayxcbiAgICAgICAgICAgIHJlZGlyZWN0ZWQ6IHRoaXMucmVkaXJlY3RlZCxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgICAgICBzdGF0dXNUZXh0OiB0aGlzLnN0YXR1c1RleHQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGVcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10uY29va2llcztcbiAgICB9XG4gICAgc3RhdGljIGpzb24oYm9keSwgaW5pdCkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IFJlc3BvbnNlLmpzb24oYm9keSwgaW5pdCk7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFJlc3BvbnNlKHJlc3BvbnNlLmJvZHksIHJlc3BvbnNlKTtcbiAgICB9XG4gICAgc3RhdGljIHJlZGlyZWN0KHVybCwgaW5pdCkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSB0eXBlb2YgaW5pdCA9PT0gJ251bWJlcicgPyBpbml0IDogKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQuc3RhdHVzKSA/PyAzMDc7XG4gICAgICAgIGlmICghUkVESVJFQ1RTLmhhcyhzdGF0dXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmFuZ2VFcnJvcignRmFpbGVkIHRvIGV4ZWN1dGUgXCJyZWRpcmVjdFwiIG9uIFwicmVzcG9uc2VcIjogSW52YWxpZCBzdGF0dXMgY29kZScpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGluaXRPYmogPSB0eXBlb2YgaW5pdCA9PT0gJ29iamVjdCcgPyBpbml0IDoge307XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhpbml0T2JqID09IG51bGwgPyB2b2lkIDAgOiBpbml0T2JqLmhlYWRlcnMpO1xuICAgICAgICBoZWFkZXJzLnNldCgnTG9jYXRpb24nLCAoMCwgX3V0aWxzLnZhbGlkYXRlVVJMKSh1cmwpKTtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXh0UmVzcG9uc2UobnVsbCwge1xuICAgICAgICAgICAgLi4uaW5pdE9iaixcbiAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICBzdGF0dXNcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyByZXdyaXRlKGRlc3RpbmF0aW9uLCBpbml0KSB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhpbml0ID09IG51bGwgPyB2b2lkIDAgOiBpbml0LmhlYWRlcnMpO1xuICAgICAgICBoZWFkZXJzLnNldCgneC1taWRkbGV3YXJlLXJld3JpdGUnLCAoMCwgX3V0aWxzLnZhbGlkYXRlVVJMKShkZXN0aW5hdGlvbikpO1xuICAgICAgICBoYW5kbGVNaWRkbGV3YXJlRmllbGQoaW5pdCwgaGVhZGVycyk7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFJlc3BvbnNlKG51bGwsIHtcbiAgICAgICAgICAgIC4uLmluaXQsXG4gICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzdGF0aWMgbmV4dChpbml0KSB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycyhpbml0ID09IG51bGwgPyB2b2lkIDAgOiBpbml0LmhlYWRlcnMpO1xuICAgICAgICBoZWFkZXJzLnNldCgneC1taWRkbGV3YXJlLW5leHQnLCAnMScpO1xuICAgICAgICBoYW5kbGVNaWRkbGV3YXJlRmllbGQoaW5pdCwgaGVhZGVycyk7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFJlc3BvbnNlKG51bGwsIHtcbiAgICAgICAgICAgIC4uLmluaXQsXG4gICAgICAgICAgICBoZWFkZXJzXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzcG9uc2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/server/web/spec-extension/url-pattern.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"URLPattern\", ({\n enumerable: true,\n get: function() {\n return GlobalURLPattern;\n }\n}));\nconst GlobalURLPattern = // @ts-expect-error: URLPattern is not available in Node.js\ntypeof URLPattern === 'undefined' ? undefined : URLPattern;\n\n//# sourceMappingURL=url-pattern.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vdXJsLXBhdHRlcm4uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw4Q0FBNkM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL3VybC1wYXR0ZXJuLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiVVJMUGF0dGVyblwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gR2xvYmFsVVJMUGF0dGVybjtcbiAgICB9XG59KTtcbmNvbnN0IEdsb2JhbFVSTFBhdHRlcm4gPSAvLyBAdHMtZXhwZWN0LWVycm9yOiBVUkxQYXR0ZXJuIGlzIG5vdCBhdmFpbGFibGUgaW4gTm9kZS5qc1xudHlwZW9mIFVSTFBhdHRlcm4gPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkIDogVVJMUGF0dGVybjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXJsLXBhdHRlcm4uanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js\n"); + +/***/ }), + +/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js": +/*!************************************************************************!*\ + !*** ./node_modules/next/dist/server/web/spec-extension/user-agent.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isBot: function() {\n return isBot;\n },\n userAgent: function() {\n return userAgent;\n },\n userAgentFromString: function() {\n return userAgentFromString;\n }\n});\nconst _uaparserjs = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/ua-parser-js */ \"(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isBot(input) {\n return /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(input);\n}\nfunction userAgentFromString(input) {\n return {\n ...(0, _uaparserjs.default)(input),\n isBot: input === undefined ? false : isBot(input)\n };\n}\nfunction userAgent({ headers }) {\n return userAgentFromString(headers.get('user-agent') || undefined);\n}\n\n//# sourceMappingURL=user-agent.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vdXNlci1hZ2VudC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDJEQUEyRCxtQkFBTyxDQUFDLDBHQUFpQztBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLFNBQVM7QUFDOUI7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi91c2VyLWFnZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgaXNCb3Q6IG51bGwsXG4gICAgdXNlckFnZW50OiBudWxsLFxuICAgIHVzZXJBZ2VudEZyb21TdHJpbmc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgaXNCb3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNCb3Q7XG4gICAgfSxcbiAgICB1c2VyQWdlbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdXNlckFnZW50O1xuICAgIH0sXG4gICAgdXNlckFnZW50RnJvbVN0cmluZzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB1c2VyQWdlbnRGcm9tU3RyaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgX3VhcGFyc2VyanMgPSAvKiNfX1BVUkVfXyovIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3VhLXBhcnNlci1qc1wiKSk7XG5mdW5jdGlvbiBfaW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQob2JqKSB7XG4gICAgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHtcbiAgICAgICAgZGVmYXVsdDogb2JqXG4gICAgfTtcbn1cbmZ1bmN0aW9uIGlzQm90KGlucHV0KSB7XG4gICAgcmV0dXJuIC9Hb29nbGVib3R8TWVkaWFwYXJ0bmVycy1Hb29nbGV8QWRzQm90LUdvb2dsZXxnb29nbGV3ZWJsaWdodHxTdG9yZWJvdC1Hb29nbGV8R29vZ2xlLVBhZ2VSZW5kZXJlcnxHb29nbGUtSW5zcGVjdGlvblRvb2x8QmluZ2JvdHxCaW5nUHJldmlld3xTbHVycHxEdWNrRHVja0JvdHxiYWlkdXNwaWRlcnx5YW5kZXh8c29nb3V8TGlua2VkSW5Cb3R8Yml0bHlib3R8dHVtYmxyfHZrU2hhcmV8cXVvcmEgbGluayBwcmV2aWV3fGZhY2Vib29rZXh0ZXJuYWxoaXR8ZmFjZWJvb2tjYXRhbG9nfFR3aXR0ZXJib3R8YXBwbGVib3R8cmVkZGl0Ym90fFNsYWNrYm90fERpc2NvcmRib3R8V2hhdHNBcHB8U2t5cGVVcmlQcmV2aWV3fGlhX2FyY2hpdmVyL2kudGVzdChpbnB1dCk7XG59XG5mdW5jdGlvbiB1c2VyQWdlbnRGcm9tU3RyaW5nKGlucHV0KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgLi4uKDAsIF91YXBhcnNlcmpzLmRlZmF1bHQpKGlucHV0KSxcbiAgICAgICAgaXNCb3Q6IGlucHV0ID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IGlzQm90KGlucHV0KVxuICAgIH07XG59XG5mdW5jdGlvbiB1c2VyQWdlbnQoeyBoZWFkZXJzIH0pIHtcbiAgICByZXR1cm4gdXNlckFnZW50RnJvbVN0cmluZyhoZWFkZXJzLmdldCgndXNlci1hZ2VudCcpIHx8IHVuZGVmaW5lZCk7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZXItYWdlbnQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js\n"); + +/***/ }), + /***/ "(rsc)/./node_modules/next/dist/server/web/utils.js": /*!****************************************************!*\ !*** ./node_modules/next/dist/server/web/utils.js ***! diff --git a/.next/server/webpack-runtime.js b/.next/server/webpack-runtime.js index cd5881e3..e214a331 100644 --- a/.next/server/webpack-runtime.js +++ b/.next/server/webpack-runtime.js @@ -47,6 +47,11 @@ /******/ __webpack_require__.m = __webpack_modules__; /******/ /************************************************************************/ +/******/ /* webpack/runtime/amd options */ +/******/ (() => { +/******/ __webpack_require__.amdO = {}; +/******/ })(); +/******/ /******/ /* webpack/runtime/compat get default export */ /******/ (() => { /******/ // getDefaultExport function for compatibility with non-harmony modules @@ -125,7 +130,7 @@ /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("0e336cb3c86c715c") +/******/ __webpack_require__.h = () => ("a0760f453524691e") /******/ })(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ diff --git a/.next/static/chunks/_error.js b/.next/static/chunks/_error.js new file mode 100644 index 00000000..8248248d --- /dev/null +++ b/.next/static/chunks/_error.js @@ -0,0 +1,28 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["/_error"],{ + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!": +/*!*****************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error! ***! + \*****************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_error\",\n function () {\n return __webpack_require__(/*! ./node_modules/next/dist/pages/_error.js */ \"./node_modules/next/dist/pages/_error.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_error\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/YWJzb2x1dGVQYWdlUGF0aD0lMkZVc2VycyUyRm1hdHRicnVjZSUyRkRvY3VtZW50cyUyRlByb2plY3RzJTJGT3BlbkNsYXclMkZXZWIlMkZoZWFydGJlYXQtbW9uaXRvciUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGcGFnZXMlMkZfZXJyb3IuanMmcGFnZT0lMkZfZXJyb3IhIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsMEZBQTBDO0FBQ2pFO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL19lcnJvclwiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9wYWdlcy9fZXJyb3IuanNcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL19lcnJvclwiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!\n")); + +/***/ }) + +}, +/******/ __webpack_require__ => { // webpackRuntimeModules +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +/******/ __webpack_require__.O(0, ["main"], () => (__webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!"))); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/app/api/monitor/route.js b/.next/static/chunks/app/api/monitor/route.js new file mode 100644 index 00000000..f40a45e3 --- /dev/null +++ b/.next/static/chunks/app/api/monitor/route.js @@ -0,0 +1,28 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/api/monitor/route"],{ + +/***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=false!": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=false! ***! + \*******************************************************************************************************/ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + + + +/***/ }) + +}, +/******/ __webpack_require__ => { // webpackRuntimeModules +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +/******/ __webpack_require__.O(0, ["main-app"], () => (__webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?server=false!"))); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/app/page.js b/.next/static/chunks/app/page.js new file mode 100644 index 00000000..bc4ddd9a --- /dev/null +++ b/.next/static/chunks/app/page.js @@ -0,0 +1,3193 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/page"],{ + +/***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!": +/*!************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false! ***! + \************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + +eval(__webpack_require__.ts("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/page.tsx */ \"(app-pages-browser)/./src/app/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWNsaWVudC1lbnRyeS1sb2FkZXIuanM/bW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZtYXR0YnJ1Y2UlMkZEb2N1bWVudHMlMkZQcm9qZWN0cyUyRk9wZW5DbGF3JTJGV2ViJTJGaGVhcnRiZWF0LW1vbml0b3IlMkZzcmMlMkZhcHAlMkZwYWdlLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9ZmFsc2UhIiwibWFwcGluZ3MiOiJBQUFBLDhKQUF3SCIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvcGFnZS50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./src/app/page.tsx": +/*!**************************!*\ + !*** ./src/app/page.tsx ***! + \**************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ HeartbeatMonitor)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! framer-motion */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\");\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! framer-motion */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/activity.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/plus.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/server.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trending-up.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/globe.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/list.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/layout-grid.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/external-link.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash-2.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\nfunction HeartbeatMonitor() {\n _s();\n const [apps, setApps] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [status, setStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [refreshing, setRefreshing] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showAddApp, setShowAddApp] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [viewMode, setViewMode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"grid\");\n const [newApp, setNewApp] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n name: \"\",\n description: \"\",\n url: \"http://localhost:\",\n port: 3000,\n path: \"\",\n command: \"npm run dev\",\n category: \"Other\",\n color: \"#22C55E\",\n enabled: true\n });\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"HeartbeatMonitor.useEffect\": ()=>{\n fetchData();\n const interval = setInterval(fetchData, 30000);\n return ({\n \"HeartbeatMonitor.useEffect\": ()=>clearInterval(interval)\n })[\"HeartbeatMonitor.useEffect\"];\n }\n }[\"HeartbeatMonitor.useEffect\"], []);\n async function fetchData() {\n try {\n const res = await fetch(\"/api/monitor\");\n const data = await res.json();\n setApps(data.apps || []);\n setStatus(data.status || []);\n } catch (err) {\n console.error(\"Failed to fetch data:\", err);\n } finally{\n setLoading(false);\n setRefreshing(false);\n }\n }\n async function handleRefresh() {\n setRefreshing(true);\n await fetchData();\n }\n async function addApp(e) {\n e.preventDefault();\n if (!newApp.name || !newApp.url) return;\n await fetch(\"/api/monitor\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n action: \"addApp\",\n app: newApp\n })\n });\n setShowAddApp(false);\n setNewApp({\n name: \"\",\n description: \"\",\n url: \"http://localhost:\",\n port: 3000,\n path: \"\",\n command: \"npm run dev\",\n category: \"Other\",\n color: \"#22C55E\",\n enabled: true\n });\n fetchData();\n }\n async function deleteApp(id) {\n if (!confirm(\"Delete this app?\")) return;\n await fetch(\"/api/monitor\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n action: \"deleteApp\",\n id\n })\n });\n fetchData();\n }\n function getAppStatus(appId) {\n const appStatus = status.filter((s)=>s.appId === appId);\n const latest = appStatus[appStatus.length - 1];\n const isUp = (latest === null || latest === void 0 ? void 0 : latest.status) === \"up\";\n const uptime = appStatus.length > 0 ? Math.round(appStatus.filter((s)=>s.status === \"up\").length / appStatus.length * 100) : 100;\n const avgResponseTime = appStatus.length > 0 ? Math.round(appStatus.filter((s)=>s.responseTime).reduce((acc, s)=>acc + (s.responseTime || 0), 0) / appStatus.filter((s)=>s.responseTime).length) || 0 : 0;\n const last24Hours = appStatus.filter((s)=>{\n const hoursAgo = (Date.now() - new Date(s.timestamp).getTime()) / (1000 * 60 * 60);\n return hoursAgo <= 24;\n });\n return {\n latest,\n isUp,\n uptime,\n avgResponseTime,\n history: last24Hours\n };\n }\n const stats = {\n total: apps.length,\n online: apps.filter((app)=>getAppStatus(app.id).isUp).length,\n offline: apps.filter((app)=>!getAppStatus(app.id).isUp).length,\n avgUptime: apps.length > 0 ? Math.round(apps.reduce((acc, app)=>acc + getAppStatus(app.id).uptime, 0) / apps.length) : 0,\n avgResponseTime: apps.length > 0 ? Math.round(apps.reduce((acc, app)=>acc + getAppStatus(app.id).avgResponseTime, 0) / apps.length) : 0,\n incidents: status.filter((s)=>s.status === \"down\").length\n };\n const allUp = stats.online === stats.total && stats.total > 0;\n function Sparkline(param) {\n let { data } = param;\n if (data.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-8 w-20 bg-slate-800/50 rounded flex items-end justify-center gap-0.5 p-1\",\n children: Array.from({\n length: 8\n }).map((_, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-1 bg-slate-700 rounded-sm\",\n style: {\n height: '30%'\n }\n }, i, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 157,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 155,\n columnNumber: 9\n }, this);\n }\n const bars = data.slice(-8).map((entry, i)=>{\n const height = entry.status === \"up\" ? Math.max(20, Math.min(100, 100 - (entry.responseTime || 100) / 10)) : 10;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-1.5 rounded-sm \".concat(entry.status === \"up\" ? \"bg-emerald-500/80\" : \"bg-red-500/80\"),\n style: {\n height: \"\".concat(height, \"%\")\n }\n }, i, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 168,\n columnNumber: 9\n }, this);\n });\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-8 w-20 bg-slate-800/50 rounded flex items-end justify-center gap-0.5 p-1\",\n children: bars\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 177,\n columnNumber: 7\n }, this);\n }\n if (loading) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-slate-950 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.9\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n className: \"flex flex-col items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 animate-pulse\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 192,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 blur-xl opacity-50\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 193,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 191,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400 animate-pulse\",\n children: \"Loading dashboard...\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 195,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 186,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 185,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-slate-950 text-slate-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.header, {\n initial: {\n y: -20,\n opacity: 0\n },\n animate: {\n y: 0,\n opacity: 1\n },\n className: \"sticky top-0 z-50 border-b border-slate-800/50 bg-slate-950/80 backdrop-blur-xl\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between h-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n className: \"relative\",\n whileHover: {\n scale: 1.05\n },\n whileTap: {\n scale: 0.95\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-10 h-10 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 flex items-center justify-center shadow-lg shadow-emerald-500/20\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"w-5 h-5 text-white\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 218,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 217,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 212,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-xl font-bold text-white\",\n children: \"Heartbeat\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 222,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Infrastructure Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 223,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 221,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 211,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleRefresh,\n disabled: refreshing,\n className: \"p-2 text-slate-400 hover:text-white hover:bg-slate-800 rounded-lg transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"w-5 h-5 \".concat(refreshing ? 'animate-spin' : '')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 233,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 228,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowAddApp(true),\n className: \"flex items-center gap-2 px-4 py-2 bg-gradient-to-r from-emerald-600 to-emerald-500 hover:from-emerald-500 hover:to-emerald-400 text-white rounded-lg shadow-lg shadow-emerald-500/20 transition-all\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 240,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"hidden sm:inline\",\n children: \"Add Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 241,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 236,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 227,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 210,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 209,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 204,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n transition: {\n staggerChildren: 0.1\n },\n className: \"space-y-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 10\n },\n animate: {\n opacity: 1,\n y: 0\n },\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-3 h-3 rounded-full \".concat(allUp ? 'bg-emerald-500 animate-pulse' : 'bg-red-500')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 262,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-lg font-medium\",\n children: allUp ? 'All Systems Operational' : \"\".concat(stats.offline, \" Service\").concat(stats.offline > 1 ? 's' : '', \" Down\")\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 263,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-500\",\n children: [\n \"• Last updated \",\n new Date().toLocaleTimeString()\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 266,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 257,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.1\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-emerald-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-emerald-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"w-6 h-6 text-emerald-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 280,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 279,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: [\n stats.online,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-500 text-lg\",\n children: [\n \"/\",\n stats.total\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 283,\n columnNumber: 67\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 283,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Services Online\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 284,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 282,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 278,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 271,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.15\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-blue-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-blue-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"w-6 h-6 text-blue-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 298,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 297,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: [\n stats.avgUptime,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 301,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Avg Uptime\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 302,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 300,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 296,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 w-full bg-slate-800 rounded-full h-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n width: 0\n },\n animate: {\n width: \"\".concat(stats.avgUptime, \"%\")\n },\n transition: {\n duration: 1,\n delay: 0.5\n },\n className: \"bg-blue-500 h-2 rounded-full\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 306,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 305,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 289,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.2\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-purple-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-purple-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"w-6 h-6 text-purple-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 324,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 323,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: [\n stats.avgResponseTime,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-500 text-lg\",\n children: \"ms\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 327,\n columnNumber: 76\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 327,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Avg Response\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 328,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 326,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 322,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 315,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.25\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-amber-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-amber-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"w-6 h-6 text-amber-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 342,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 341,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: stats.incidents\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 345,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Incidents\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 346,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 344,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 340,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 333,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 270,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.3\n },\n className: \"bg-slate-900/50 border border-slate-800 rounded-xl overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"px-6 py-4 border-b border-slate-800 flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"w-5 h-5 text-slate-400\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 362,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xl font-bold\",\n children: \"Monitored Services\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 363,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 361,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400 mt-1\",\n children: [\n stats.total,\n \" active monitor\",\n stats.total !== 1 ? 's' : ''\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 365,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 360,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setViewMode(viewMode === \"grid\" ? \"list\" : \"grid\"),\n className: \"p-2 text-slate-400 hover:text-white hover:bg-slate-800 rounded-lg transition-colors\",\n children: viewMode === \"grid\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 372,\n columnNumber: 42\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 372,\n columnNumber: 73\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 368,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 367,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 359,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6\",\n children: apps.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.95\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n className: \"text-center py-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-20 h-20 bg-gradient-to-br from-slate-800 to-slate-900 rounded-2xl flex items-center justify-center mx-auto mb-6 shadow-inner\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"w-10 h-10 text-slate-600\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 385,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 384,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"No monitors yet\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 387,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400 mb-6\",\n children: \"Start monitoring your services by adding your first monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 388,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowAddApp(true),\n className: \"px-4 py-2 bg-emerald-600 hover:bg-emerald-500 text-white rounded-lg transition-colors\",\n children: \"Add Your First Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 389,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 379,\n columnNumber: 17\n }, this) : viewMode === \"grid\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 lg:grid-cols-2 gap-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_13__.AnimatePresence, {\n children: apps.map((app, index)=>{\n const { isUp, uptime, avgResponseTime, history, latest } = getAppStatus(app.id);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n exit: {\n opacity: 0,\n scale: 0.95\n },\n transition: {\n delay: index * 0.05\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900 border border-slate-800 rounded-xl border-l-4 \".concat(isUp ? 'border-l-emerald-500' : 'border-l-red-500', \" p-5 group\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-10 h-10 rounded-xl flex items-center justify-center \".concat(isUp ? 'bg-emerald-500/10' : 'bg-red-500/10'),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"w-5 h-5 \".concat(isUp ? 'text-emerald-500' : 'text-red-500')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 415,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 414,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-semibold text-lg\",\n children: app.name\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 418,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: app.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"text-sm text-slate-400 hover:text-emerald-400 transition-colors flex items-center gap-1\",\n children: [\n app.url,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n className: \"w-3 h-3\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 426,\n columnNumber: 35\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 419,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 417,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 413,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border \".concat(isUp ? 'border-emerald-500/30 bg-emerald-500/10 text-emerald-400' : 'border-red-500/30 bg-red-500/10 text-red-400'),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"relative flex h-2 w-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"animate-ping absolute inline-flex h-full w-full rounded-full opacity-75 \".concat(isUp ? 'bg-emerald-400' : 'bg-red-400')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 432,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"relative inline-flex rounded-full h-2 w-2 \".concat(isUp ? 'bg-emerald-500' : 'bg-red-500')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 433,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 431,\n columnNumber: 31\n }, this),\n isUp ? \"Operational\" : \"Down\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 430,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 412,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 grid grid-cols-3 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-2xl font-bold\",\n children: [\n uptime,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 441,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Uptime\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 442,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 440,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-2xl font-bold\",\n children: avgResponseTime > 0 ? \"\".concat(avgResponseTime, \"ms\") : '—'\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 445,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Response\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 446,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 444,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-end\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Sparkline, {\n data: history\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 449,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 448,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 439,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 pt-4 border-t border-slate-800 flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-slate-500\",\n children: [\n \"Last check: \",\n latest ? new Date(latest.timestamp).toLocaleTimeString() : 'Never'\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 454,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>deleteApp(app.id),\n className: \"p-2 text-slate-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg opacity-0 group-hover:opacity-100 transition-all\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 461,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 457,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 453,\n columnNumber: 27\n }, this)\n ]\n }, app.id, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 403,\n columnNumber: 25\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 398,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 397,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"divide-y divide-slate-800\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_13__.AnimatePresence, {\n children: apps.map((app)=>{\n const { isUp, uptime, avgResponseTime, history, latest } = getAppStatus(app.id);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n exit: {\n opacity: 0\n },\n className: \"py-4 flex items-center justify-between group hover:bg-slate-800/30 transition-colors px-2 rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-2 h-12 rounded-full \".concat(isUp ? 'bg-emerald-500' : 'bg-red-500')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 484,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-semibold\",\n children: app.name\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 486,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: app.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"text-sm text-slate-400 hover:text-emerald-400 transition-colors\",\n children: app.url\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 487,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 485,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 483,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl font-bold\",\n children: [\n uptime,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 495,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Uptime\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 496,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 494,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Sparkline, {\n data: history\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 498,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border \".concat(isUp ? 'border-emerald-500/30 bg-emerald-500/10 text-emerald-400' : 'border-red-500/30 bg-red-500/10 text-red-400'),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"w-2 h-2 rounded-full \".concat(isUp ? 'bg-emerald-500' : 'bg-red-500')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 500,\n columnNumber: 31\n }, this),\n isUp ? \"Operational\" : \"Down\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 499,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>deleteApp(app.id),\n className: \"p-2 text-slate-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg opacity-0 group-hover:opacity-100 transition-all\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 507,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 503,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 493,\n columnNumber: 27\n }, this)\n ]\n }, app.id, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 476,\n columnNumber: 25\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 471,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 470,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 377,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 353,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 250,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 249,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_13__.AnimatePresence, {\n children: showAddApp && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n exit: {\n opacity: 0\n },\n className: \"fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50 p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.95,\n y: 20\n },\n animate: {\n opacity: 1,\n scale: 1,\n y: 0\n },\n exit: {\n opacity: 0,\n scale: 0.95,\n y: 20\n },\n className: \"bg-slate-900 border border-slate-800 rounded-xl p-6 w-full max-w-md shadow-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xl font-bold mb-2\",\n children: \"Add New Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 536,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400 text-sm mb-6\",\n children: \"Monitor a new service by providing its details below.\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 537,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: addApp,\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2\",\n children: \"Monitor Name\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 540,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: newApp.name,\n onChange: (e)=>setNewApp({\n ...newApp,\n name: e.target.value\n }),\n className: \"w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors\",\n placeholder: \"My Application\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 541,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 539,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2\",\n children: \"URL\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 552,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"url\",\n value: newApp.url,\n onChange: (e)=>setNewApp({\n ...newApp,\n url: e.target.value\n }),\n className: \"w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors\",\n placeholder: \"http://localhost:3000\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 553,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 551,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2\",\n children: \"Port\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 563,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: newApp.port,\n onChange: (e)=>setNewApp({\n ...newApp,\n port: parseInt(e.target.value)\n }),\n className: \"w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 564,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 562,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 550,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-3 pt-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setShowAddApp(false),\n className: \"flex-1 px-4 py-2.5 border border-slate-700 rounded-lg hover:bg-slate-800 transition-colors\",\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 574,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"flex-1 px-4 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white rounded-lg transition-colors font-medium\",\n children: \"Add Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 581,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 573,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 538,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 530,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 524,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 522,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n_s(HeartbeatMonitor, \"HoCcOePlBZi5MSt20IsS/84xH98=\");\n_c = HeartbeatMonitor;\nvar _c;\n$RefreshReg$(_c, \"HeartbeatMonitor\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvcGFnZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNEM7QUFDWTtBQWlCbEM7QUFzQlAsU0FBU2dCOztJQUN0QixNQUFNLENBQUNDLE1BQU1DLFFBQVEsR0FBR2xCLCtDQUFRQSxDQUFRLEVBQUU7SUFDMUMsTUFBTSxDQUFDbUIsUUFBUUMsVUFBVSxHQUFHcEIsK0NBQVFBLENBQWdCLEVBQUU7SUFDdEQsTUFBTSxDQUFDcUIsU0FBU0MsV0FBVyxHQUFHdEIsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDdUIsWUFBWUMsY0FBYyxHQUFHeEIsK0NBQVFBLENBQUM7SUFDN0MsTUFBTSxDQUFDeUIsWUFBWUMsY0FBYyxHQUFHMUIsK0NBQVFBLENBQUM7SUFDN0MsTUFBTSxDQUFDMkIsVUFBVUMsWUFBWSxHQUFHNUIsK0NBQVFBLENBQWtCO0lBQzFELE1BQU0sQ0FBQzZCLFFBQVFDLFVBQVUsR0FBRzlCLCtDQUFRQSxDQUFlO1FBQ2pEK0IsTUFBTTtRQUNOQyxhQUFhO1FBQ2JDLEtBQUs7UUFDTEMsTUFBTTtRQUNOQyxNQUFNO1FBQ05DLFNBQVM7UUFDVEMsVUFBVTtRQUNWQyxPQUFPO1FBQ1BDLFNBQVM7SUFDWDtJQUVBdEMsZ0RBQVNBO3NDQUFDO1lBQ1J1QztZQUNBLE1BQU1DLFdBQVdDLFlBQVlGLFdBQVc7WUFDeEM7OENBQU8sSUFBTUcsY0FBY0Y7O1FBQzdCO3FDQUFHLEVBQUU7SUFFTCxlQUFlRDtRQUNiLElBQUk7WUFDRixNQUFNSSxNQUFNLE1BQU1DLE1BQU07WUFDeEIsTUFBTUMsT0FBTyxNQUFNRixJQUFJRyxJQUFJO1lBQzNCN0IsUUFBUTRCLEtBQUs3QixJQUFJLElBQUksRUFBRTtZQUN2QkcsVUFBVTBCLEtBQUszQixNQUFNLElBQUksRUFBRTtRQUM3QixFQUFFLE9BQU82QixLQUFLO1lBQ1pDLFFBQVFDLEtBQUssQ0FBQyx5QkFBeUJGO1FBQ3pDLFNBQVU7WUFDUjFCLFdBQVc7WUFDWEUsY0FBYztRQUNoQjtJQUNGO0lBRUEsZUFBZTJCO1FBQ2IzQixjQUFjO1FBQ2QsTUFBTWdCO0lBQ1I7SUFFQSxlQUFlWSxPQUFPQyxDQUFrQjtRQUN0Q0EsRUFBRUMsY0FBYztRQUNoQixJQUFJLENBQUN6QixPQUFPRSxJQUFJLElBQUksQ0FBQ0YsT0FBT0ksR0FBRyxFQUFFO1FBQ2pDLE1BQU1ZLE1BQU0sZ0JBQWdCO1lBQzFCVSxRQUFRO1lBQ1JDLFNBQVM7Z0JBQUUsZ0JBQWdCO1lBQW1CO1lBQzlDQyxNQUFNQyxLQUFLQyxTQUFTLENBQUM7Z0JBQUVDLFFBQVE7Z0JBQVVDLEtBQUtoQztZQUFPO1FBQ3ZEO1FBQ0FILGNBQWM7UUFDZEksVUFBVTtZQUNSQyxNQUFNO1lBQ05DLGFBQWE7WUFDYkMsS0FBSztZQUNMQyxNQUFNO1lBQ05DLE1BQU07WUFDTkMsU0FBUztZQUNUQyxVQUFVO1lBQ1ZDLE9BQU87WUFDUEMsU0FBUztRQUNYO1FBQ0FDO0lBQ0Y7SUFFQSxlQUFlc0IsVUFBVUMsRUFBVTtRQUNqQyxJQUFJLENBQUNDLFFBQVEscUJBQXFCO1FBQ2xDLE1BQU1uQixNQUFNLGdCQUFnQjtZQUMxQlUsUUFBUTtZQUNSQyxTQUFTO2dCQUFFLGdCQUFnQjtZQUFtQjtZQUM5Q0MsTUFBTUMsS0FBS0MsU0FBUyxDQUFDO2dCQUFFQyxRQUFRO2dCQUFhRztZQUFHO1FBQ2pEO1FBQ0F2QjtJQUNGO0lBRUEsU0FBU3lCLGFBQWFDLEtBQWE7UUFDakMsTUFBTUMsWUFBWWhELE9BQU9pRCxNQUFNLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUgsS0FBSyxLQUFLQTtRQUNuRCxNQUFNSSxTQUFTSCxTQUFTLENBQUNBLFVBQVVJLE1BQU0sR0FBRyxFQUFFO1FBQzlDLE1BQU1DLE9BQU9GLENBQUFBLG1CQUFBQSw2QkFBQUEsT0FBUW5ELE1BQU0sTUFBSztRQUNoQyxNQUFNc0QsU0FBU04sVUFBVUksTUFBTSxHQUFHLElBQzlCRyxLQUFLQyxLQUFLLENBQUMsVUFBV1AsTUFBTSxDQUFDQyxDQUFBQSxJQUFLQSxFQUFFbEQsTUFBTSxLQUFLLE1BQU1vRCxNQUFNLEdBQUdKLFVBQVVJLE1BQU0sR0FBSSxPQUNsRjtRQUNKLE1BQU1LLGtCQUFrQlQsVUFBVUksTUFBTSxHQUFHLElBQ3ZDRyxLQUFLQyxLQUFLLENBQUNSLFVBQVVDLE1BQU0sQ0FBQ0MsQ0FBQUEsSUFBS0EsRUFBRVEsWUFBWSxFQUFFQyxNQUFNLENBQUMsQ0FBQ0MsS0FBS1YsSUFBTVUsTUFBT1YsQ0FBQUEsRUFBRVEsWUFBWSxJQUFJLElBQUksS0FBS1YsVUFBVUMsTUFBTSxDQUFDQyxDQUFBQSxJQUFLQSxFQUFFUSxZQUFZLEVBQUVOLE1BQU0sS0FBSyxJQUN2SjtRQUNKLE1BQU1TLGNBQWNiLFVBQVVDLE1BQU0sQ0FBQ0MsQ0FBQUE7WUFDbkMsTUFBTVksV0FBVyxDQUFDQyxLQUFLQyxHQUFHLEtBQUssSUFBSUQsS0FBS2IsRUFBRWUsU0FBUyxFQUFFQyxPQUFPLEVBQUMsSUFBTSxRQUFPLEtBQUssRUFBQztZQUNoRixPQUFPSixZQUFZO1FBQ3JCO1FBQ0EsT0FBTztZQUFFWDtZQUFRRTtZQUFNQztZQUFRRztZQUFpQlUsU0FBU047UUFBWTtJQUN2RTtJQUVBLE1BQU1PLFFBQVE7UUFDWkMsT0FBT3ZFLEtBQUtzRCxNQUFNO1FBQ2xCa0IsUUFBUXhFLEtBQUttRCxNQUFNLENBQUMsQ0FBQ1AsTUFBUUksYUFBYUosSUFBSUUsRUFBRSxFQUFFUyxJQUFJLEVBQUVELE1BQU07UUFDOURtQixTQUFTekUsS0FBS21ELE1BQU0sQ0FBQyxDQUFDUCxNQUFRLENBQUNJLGFBQWFKLElBQUlFLEVBQUUsRUFBRVMsSUFBSSxFQUFFRCxNQUFNO1FBQ2hFb0IsV0FBVzFFLEtBQUtzRCxNQUFNLEdBQUcsSUFDckJHLEtBQUtDLEtBQUssQ0FBQzFELEtBQUs2RCxNQUFNLENBQUMsQ0FBQ0MsS0FBS2xCLE1BQVFrQixNQUFNZCxhQUFhSixJQUFJRSxFQUFFLEVBQUVVLE1BQU0sRUFBRSxLQUFLeEQsS0FBS3NELE1BQU0sSUFDeEY7UUFDSkssaUJBQWlCM0QsS0FBS3NELE1BQU0sR0FBRyxJQUMzQkcsS0FBS0MsS0FBSyxDQUFDMUQsS0FBSzZELE1BQU0sQ0FBQyxDQUFDQyxLQUFLbEIsTUFBUWtCLE1BQU1kLGFBQWFKLElBQUlFLEVBQUUsRUFBRWEsZUFBZSxFQUFFLEtBQUszRCxLQUFLc0QsTUFBTSxJQUNqRztRQUNKcUIsV0FBV3pFLE9BQU9pRCxNQUFNLENBQUNDLENBQUFBLElBQUtBLEVBQUVsRCxNQUFNLEtBQUssUUFBUW9ELE1BQU07SUFDM0Q7SUFFQSxNQUFNc0IsUUFBUU4sTUFBTUUsTUFBTSxLQUFLRixNQUFNQyxLQUFLLElBQUlELE1BQU1DLEtBQUssR0FBRztJQUU1RCxTQUFTTSxVQUFVLEtBQWlDO1lBQWpDLEVBQUVoRCxJQUFJLEVBQTJCLEdBQWpDO1FBQ2pCLElBQUlBLEtBQUt5QixNQUFNLEtBQUssR0FBRztZQUNyQixxQkFDRSw4REFBQ3dCO2dCQUFJQyxXQUFVOzBCQUNaQyxNQUFNQyxJQUFJLENBQUM7b0JBQUUzQixRQUFRO2dCQUFFLEdBQUc0QixHQUFHLENBQUMsQ0FBQ0MsR0FBR0Msa0JBQ2pDLDhEQUFDTjt3QkFBWUMsV0FBVTt3QkFBOEJNLE9BQU87NEJBQUVDLFFBQVE7d0JBQU07dUJBQWxFRjs7Ozs7Ozs7OztRQUlsQjtRQUVBLE1BQU1HLE9BQU8xRCxLQUFLMkQsS0FBSyxDQUFDLENBQUMsR0FBR04sR0FBRyxDQUFDLENBQUNPLE9BQU9MO1lBQ3RDLE1BQU1FLFNBQVNHLE1BQU12RixNQUFNLEtBQUssT0FDNUJ1RCxLQUFLaUMsR0FBRyxDQUFDLElBQUlqQyxLQUFLa0MsR0FBRyxDQUFDLEtBQUssTUFBTyxDQUFDRixNQUFNN0IsWUFBWSxJQUFJLEdBQUUsSUFBSyxPQUNoRTtZQUNKLHFCQUNFLDhEQUFDa0I7Z0JBRUNDLFdBQVcsb0JBQWtGLE9BQTlEVSxNQUFNdkYsTUFBTSxLQUFLLE9BQU8sc0JBQXNCO2dCQUM3RW1GLE9BQU87b0JBQUVDLFFBQVEsR0FBVSxPQUFQQSxRQUFPO2dCQUFHO2VBRnpCRjs7Ozs7UUFLWDtRQUVBLHFCQUNFLDhEQUFDTjtZQUFJQyxXQUFVO3NCQUNaUTs7Ozs7O0lBR1A7SUFFQSxJQUFJbkYsU0FBUztRQUNYLHFCQUNFLDhEQUFDMEU7WUFBSUMsV0FBVTtzQkFDYiw0RUFBQzlGLGlEQUFNQSxDQUFDNkYsR0FBRztnQkFDVGMsU0FBUztvQkFBRUMsU0FBUztvQkFBR0MsT0FBTztnQkFBSTtnQkFDbENDLFNBQVM7b0JBQUVGLFNBQVM7b0JBQUdDLE9BQU87Z0JBQUU7Z0JBQ2hDZixXQUFVOztrQ0FFViw4REFBQ0Q7d0JBQUlDLFdBQVU7OzBDQUNiLDhEQUFDRDtnQ0FBSUMsV0FBVTs7Ozs7OzBDQUNmLDhEQUFDRDtnQ0FBSUMsV0FBVTs7Ozs7Ozs7Ozs7O2tDQUVqQiw4REFBQ2lCO3dCQUFFakIsV0FBVTtrQ0FBK0I7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBSXBEO0lBRUEscUJBQ0UsOERBQUNEO1FBQUlDLFdBQVU7OzBCQUViLDhEQUFDOUYsaURBQU1BLENBQUNnSCxNQUFNO2dCQUNaTCxTQUFTO29CQUFFTSxHQUFHLENBQUM7b0JBQUlMLFNBQVM7Z0JBQUU7Z0JBQzlCRSxTQUFTO29CQUFFRyxHQUFHO29CQUFHTCxTQUFTO2dCQUFFO2dCQUM1QmQsV0FBVTswQkFFViw0RUFBQ0Q7b0JBQUlDLFdBQVU7OEJBQ2IsNEVBQUNEO3dCQUFJQyxXQUFVOzswQ0FDYiw4REFBQ0Q7Z0NBQUlDLFdBQVU7O2tEQUNiLDhEQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO3dDQUNUQyxXQUFVO3dDQUNWb0IsWUFBWTs0Q0FBRUwsT0FBTzt3Q0FBSzt3Q0FDMUJNLFVBQVU7NENBQUVOLE9BQU87d0NBQUs7a0RBRXhCLDRFQUFDaEI7NENBQUlDLFdBQVU7c0RBQ2IsNEVBQUM1RixpTEFBUUE7Z0RBQUM0RixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7O2tEQUd4Qiw4REFBQ0Q7OzBEQUNDLDhEQUFDdUI7Z0RBQUd0QixXQUFVOzBEQUErQjs7Ozs7OzBEQUM3Qyw4REFBQ2lCO2dEQUFFakIsV0FBVTswREFBeUI7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQ0FJMUMsOERBQUNEO2dDQUFJQyxXQUFVOztrREFDYiw4REFBQ3VCO3dDQUNDQyxTQUFTckU7d0NBQ1RzRSxVQUFVbEc7d0NBQ1Z5RSxXQUFVO2tEQUVWLDRFQUFDMUYsaUxBQVNBOzRDQUFDMEYsV0FBVyxXQUE0QyxPQUFqQ3pFLGFBQWEsaUJBQWlCOzs7Ozs7Ozs7OztrREFHakUsOERBQUNnRzt3Q0FDQ0MsU0FBUyxJQUFNOUYsY0FBYzt3Q0FDN0JzRSxXQUFVOzswREFFViw4REFBQzNGLGlMQUFJQTtnREFBQzJGLFdBQVU7Ozs7OzswREFDaEIsOERBQUMwQjtnREFBSzFCLFdBQVU7MERBQW1COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQVE3Qyw4REFBQzJCO2dCQUFLM0IsV0FBVTswQkFDZCw0RUFBQzlGLGlEQUFNQSxDQUFDNkYsR0FBRztvQkFDVGMsU0FBUzt3QkFBRUMsU0FBUztvQkFBRTtvQkFDdEJFLFNBQVM7d0JBQUVGLFNBQVM7b0JBQUU7b0JBQ3RCYyxZQUFZO3dCQUFFQyxpQkFBaUI7b0JBQUk7b0JBQ25DN0IsV0FBVTs7c0NBR1YsOERBQUM5RixpREFBTUEsQ0FBQzZGLEdBQUc7NEJBQ1RjLFNBQVM7Z0NBQUVDLFNBQVM7Z0NBQUdLLEdBQUc7NEJBQUc7NEJBQzdCSCxTQUFTO2dDQUFFRixTQUFTO2dDQUFHSyxHQUFHOzRCQUFFOzRCQUM1Qm5CLFdBQVU7OzhDQUVWLDhEQUFDRDtvQ0FBSUMsV0FBVyx3QkFBOEUsT0FBdERILFFBQVEsaUNBQWlDOzs7Ozs7OENBQ2pGLDhEQUFDNkI7b0NBQUsxQixXQUFVOzhDQUNiSCxRQUFRLDRCQUE0QixHQUEyQk4sT0FBeEJBLE1BQU1HLE9BQU8sRUFBQyxZQUF1QyxPQUE3QkgsTUFBTUcsT0FBTyxHQUFHLElBQUksTUFBTSxJQUFHOzs7Ozs7OENBRS9GLDhEQUFDZ0M7b0NBQUsxQixXQUFVOzt3Q0FBaUI7d0NBQWdCLElBQUlkLE9BQU80QyxrQkFBa0I7Ozs7Ozs7Ozs7Ozs7c0NBSWhGLDhEQUFDL0I7NEJBQUlDLFdBQVU7OzhDQUNiLDhEQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO29DQUNUYyxTQUFTO3dDQUFFQyxTQUFTO3dDQUFHSyxHQUFHO29DQUFHO29DQUM3QkgsU0FBUzt3Q0FBRUYsU0FBUzt3Q0FBR0ssR0FBRztvQ0FBRTtvQ0FDNUJTLFlBQVk7d0NBQUVHLE9BQU87b0NBQUk7b0NBQ3pCWCxZQUFZO3dDQUFFRCxHQUFHLENBQUM7b0NBQUU7b0NBQ3BCbkIsV0FBVTs4Q0FFViw0RUFBQ0Q7d0NBQUlDLFdBQVU7OzBEQUNiLDhEQUFDRDtnREFBSUMsV0FBVTswREFDYiw0RUFBQ3ZGLGlMQUFNQTtvREFBQ3VGLFdBQVU7Ozs7Ozs7Ozs7OzBEQUVwQiw4REFBQ0Q7Z0RBQUlDLFdBQVU7O2tFQUNiLDhEQUFDaUI7d0RBQUVqQixXQUFVOzs0REFBc0JULE1BQU1FLE1BQU07MEVBQUMsOERBQUNpQztnRUFBSzFCLFdBQVU7O29FQUF5QjtvRUFBRVQsTUFBTUMsS0FBSzs7Ozs7Ozs7Ozs7OztrRUFDdEcsOERBQUN5Qjt3REFBRWpCLFdBQVU7a0VBQXlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4Q0FLNUMsOERBQUM5RixpREFBTUEsQ0FBQzZGLEdBQUc7b0NBQ1RjLFNBQVM7d0NBQUVDLFNBQVM7d0NBQUdLLEdBQUc7b0NBQUc7b0NBQzdCSCxTQUFTO3dDQUFFRixTQUFTO3dDQUFHSyxHQUFHO29DQUFFO29DQUM1QlMsWUFBWTt3Q0FBRUcsT0FBTztvQ0FBSztvQ0FDMUJYLFlBQVk7d0NBQUVELEdBQUcsQ0FBQztvQ0FBRTtvQ0FDcEJuQixXQUFVOztzREFFViw4REFBQ0Q7NENBQUlDLFdBQVU7OzhEQUNiLDhEQUFDRDtvREFBSUMsV0FBVTs4REFDYiw0RUFBQ3RGLGlMQUFVQTt3REFBQ3NGLFdBQVU7Ozs7Ozs7Ozs7OzhEQUV4Qiw4REFBQ0Q7b0RBQUlDLFdBQVU7O3NFQUNiLDhEQUFDaUI7NERBQUVqQixXQUFVOztnRUFBc0JULE1BQU1JLFNBQVM7Z0VBQUM7Ozs7Ozs7c0VBQ25ELDhEQUFDc0I7NERBQUVqQixXQUFVO3NFQUF5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NEQUcxQyw4REFBQ0Q7NENBQUlDLFdBQVU7c0RBQ2IsNEVBQUM5RixpREFBTUEsQ0FBQzZGLEdBQUc7Z0RBQ1RjLFNBQVM7b0RBQUVtQixPQUFPO2dEQUFFO2dEQUNwQmhCLFNBQVM7b0RBQUVnQixPQUFPLEdBQW1CLE9BQWhCekMsTUFBTUksU0FBUyxFQUFDO2dEQUFHO2dEQUN4Q2lDLFlBQVk7b0RBQUVLLFVBQVU7b0RBQUdGLE9BQU87Z0RBQUk7Z0RBQ3RDL0IsV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7OENBS2hCLDhEQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO29DQUNUYyxTQUFTO3dDQUFFQyxTQUFTO3dDQUFHSyxHQUFHO29DQUFHO29DQUM3QkgsU0FBUzt3Q0FBRUYsU0FBUzt3Q0FBR0ssR0FBRztvQ0FBRTtvQ0FDNUJTLFlBQVk7d0NBQUVHLE9BQU87b0NBQUk7b0NBQ3pCWCxZQUFZO3dDQUFFRCxHQUFHLENBQUM7b0NBQUU7b0NBQ3BCbkIsV0FBVTs4Q0FFViw0RUFBQ0Q7d0NBQUlDLFdBQVU7OzBEQUNiLDhEQUFDRDtnREFBSUMsV0FBVTswREFDYiw0RUFBQ25GLGlMQUFLQTtvREFBQ21GLFdBQVU7Ozs7Ozs7Ozs7OzBEQUVuQiw4REFBQ0Q7Z0RBQUlDLFdBQVU7O2tFQUNiLDhEQUFDaUI7d0RBQUVqQixXQUFVOzs0REFBc0JULE1BQU1YLGVBQWU7MEVBQUMsOERBQUM4QztnRUFBSzFCLFdBQVU7MEVBQXlCOzs7Ozs7Ozs7Ozs7a0VBQ2xHLDhEQUFDaUI7d0RBQUVqQixXQUFVO2tFQUF5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OENBSzVDLDhEQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO29DQUNUYyxTQUFTO3dDQUFFQyxTQUFTO3dDQUFHSyxHQUFHO29DQUFHO29DQUM3QkgsU0FBUzt3Q0FBRUYsU0FBUzt3Q0FBR0ssR0FBRztvQ0FBRTtvQ0FDNUJTLFlBQVk7d0NBQUVHLE9BQU87b0NBQUs7b0NBQzFCWCxZQUFZO3dDQUFFRCxHQUFHLENBQUM7b0NBQUU7b0NBQ3BCbkIsV0FBVTs4Q0FFViw0RUFBQ0Q7d0NBQUlDLFdBQVU7OzBEQUNiLDhEQUFDRDtnREFBSUMsV0FBVTswREFDYiw0RUFBQ3JGLGlMQUFXQTtvREFBQ3FGLFdBQVU7Ozs7Ozs7Ozs7OzBEQUV6Qiw4REFBQ0Q7Z0RBQUlDLFdBQVU7O2tFQUNiLDhEQUFDaUI7d0RBQUVqQixXQUFVO2tFQUFzQlQsTUFBTUssU0FBUzs7Ozs7O2tFQUNsRCw4REFBQ3FCO3dEQUFFakIsV0FBVTtrRUFBeUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQU85Qyw4REFBQzlGLGlEQUFNQSxDQUFDNkYsR0FBRzs0QkFDVGMsU0FBUztnQ0FBRUMsU0FBUztnQ0FBR0ssR0FBRzs0QkFBRzs0QkFDN0JILFNBQVM7Z0NBQUVGLFNBQVM7Z0NBQUdLLEdBQUc7NEJBQUU7NEJBQzVCUyxZQUFZO2dDQUFFRyxPQUFPOzRCQUFJOzRCQUN6Qi9CLFdBQVU7OzhDQUVWLDhEQUFDRDtvQ0FBSUMsV0FBVTs7c0RBQ2IsOERBQUNEOzs4REFDQyw4REFBQ0E7b0RBQUlDLFdBQVU7O3NFQUNiLDhEQUFDcEYsa0xBQUtBOzREQUFDb0YsV0FBVTs7Ozs7O3NFQUNqQiw4REFBQ2tDOzREQUFHbEMsV0FBVTtzRUFBb0I7Ozs7Ozs7Ozs7Ozs4REFFcEMsOERBQUNpQjtvREFBRWpCLFdBQVU7O3dEQUErQlQsTUFBTUMsS0FBSzt3REFBQzt3REFBZ0JELE1BQU1DLEtBQUssS0FBSyxJQUFJLE1BQU07Ozs7Ozs7Ozs7Ozs7c0RBRXBHLDhEQUFDTzs0Q0FBSUMsV0FBVTtzREFDYiw0RUFBQ3VCO2dEQUNDQyxTQUFTLElBQU01RixZQUFZRCxhQUFhLFNBQVMsU0FBUztnREFDMURxRSxXQUFVOzBEQUVUckUsYUFBYSx1QkFBUyw4REFBQ1osa0xBQUlBO29EQUFDaUYsV0FBVTs7Ozs7eUVBQWUsOERBQUNsRixrTEFBVUE7b0RBQUNrRixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhDQUtsRiw4REFBQ0Q7b0NBQUlDLFdBQVU7OENBQ1ovRSxLQUFLc0QsTUFBTSxLQUFLLGtCQUNmLDhEQUFDckUsaURBQU1BLENBQUM2RixHQUFHO3dDQUNUYyxTQUFTOzRDQUFFQyxTQUFTOzRDQUFHQyxPQUFPO3dDQUFLO3dDQUNuQ0MsU0FBUzs0Q0FBRUYsU0FBUzs0Q0FBR0MsT0FBTzt3Q0FBRTt3Q0FDaENmLFdBQVU7OzBEQUVWLDhEQUFDRDtnREFBSUMsV0FBVTswREFDYiw0RUFBQzVGLGlMQUFRQTtvREFBQzRGLFdBQVU7Ozs7Ozs7Ozs7OzBEQUV0Qiw4REFBQ21DO2dEQUFHbkMsV0FBVTswREFBNkI7Ozs7OzswREFDM0MsOERBQUNpQjtnREFBRWpCLFdBQVU7MERBQXNCOzs7Ozs7MERBQ25DLDhEQUFDdUI7Z0RBQ0NDLFNBQVMsSUFBTTlGLGNBQWM7Z0RBQzdCc0UsV0FBVTswREFDWDs7Ozs7Ozs7Ozs7K0NBSURyRSxhQUFhLHVCQUNmLDhEQUFDb0U7d0NBQUlDLFdBQVU7a0RBQ2IsNEVBQUM3RiwyREFBZUE7c0RBQ2JjLEtBQUtrRixHQUFHLENBQUMsQ0FBQ3RDLEtBQUt1RTtnREFDZCxNQUFNLEVBQUU1RCxJQUFJLEVBQUVDLE1BQU0sRUFBRUcsZUFBZSxFQUFFVSxPQUFPLEVBQUVoQixNQUFNLEVBQUUsR0FBR0wsYUFBYUosSUFBSUUsRUFBRTtnREFFOUUscUJBQ0UsOERBQUM3RCxpREFBTUEsQ0FBQzZGLEdBQUc7b0RBRVRjLFNBQVM7d0RBQUVDLFNBQVM7d0RBQUdLLEdBQUc7b0RBQUc7b0RBQzdCSCxTQUFTO3dEQUFFRixTQUFTO3dEQUFHSyxHQUFHO29EQUFFO29EQUM1QmtCLE1BQU07d0RBQUV2QixTQUFTO3dEQUFHQyxPQUFPO29EQUFLO29EQUNoQ2EsWUFBWTt3REFBRUcsT0FBT0ssUUFBUTtvREFBSztvREFDbENoQixZQUFZO3dEQUFFRCxHQUFHLENBQUM7b0RBQUU7b0RBQ3BCbkIsV0FBVyw4REFBaUgsT0FBbkR4QixPQUFPLHlCQUF5QixvQkFBbUI7O3NFQUU1SCw4REFBQ3VCOzREQUFJQyxXQUFVOzs4RUFDYiw4REFBQ0Q7b0VBQUlDLFdBQVU7O3NGQUNiLDhEQUFDRDs0RUFBSUMsV0FBVyx5REFBc0csT0FBN0N4QixPQUFPLHNCQUFzQjtzRkFDcEcsNEVBQUMvRCxpTEFBTUE7Z0ZBQUN1RixXQUFXLFdBQXNELE9BQTNDeEIsT0FBTyxxQkFBcUI7Ozs7Ozs7Ozs7O3NGQUU1RCw4REFBQ3VCOzs4RkFDQyw4REFBQ29DO29GQUFHbkMsV0FBVTs4RkFBeUJuQyxJQUFJOUIsSUFBSTs7Ozs7OzhGQUMvQyw4REFBQ3VHO29GQUNDQyxNQUFNMUUsSUFBSTVCLEdBQUc7b0ZBQ2J1RyxRQUFPO29GQUNQQyxLQUFJO29GQUNKekMsV0FBVTs7d0ZBRVRuQyxJQUFJNUIsR0FBRztzR0FDUiw4REFBQ3pCLGtMQUFZQTs0RkFBQ3dGLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4RUFJOUIsOERBQUMwQjtvRUFBSzFCLFdBQVcsd0ZBQTJNLE9BQW5IeEIsT0FBTyw2REFBNkQ7O3NGQUMzSyw4REFBQ2tEOzRFQUFLMUIsV0FBWTs7OEZBQ2hCLDhEQUFDMEI7b0ZBQUsxQixXQUFXLDJFQUFrSCxPQUF2Q3hCLE9BQU8sbUJBQW1COzs7Ozs7OEZBQ3RILDhEQUFDa0Q7b0ZBQUsxQixXQUFXLDZDQUFvRixPQUF2Q3hCLE9BQU8sbUJBQW1COzs7Ozs7Ozs7Ozs7d0VBRXpGQSxPQUFPLGdCQUFnQjs7Ozs7Ozs7Ozs7OztzRUFJNUIsOERBQUN1Qjs0REFBSUMsV0FBVTs7OEVBQ2IsOERBQUNEOztzRkFDQyw4REFBQ2tCOzRFQUFFakIsV0FBVTs7Z0ZBQXNCdkI7Z0ZBQU87Ozs7Ozs7c0ZBQzFDLDhEQUFDd0M7NEVBQUVqQixXQUFVO3NGQUF5Qjs7Ozs7Ozs7Ozs7OzhFQUV4Qyw4REFBQ0Q7O3NGQUNDLDhEQUFDa0I7NEVBQUVqQixXQUFVO3NGQUFzQnBCLGtCQUFrQixJQUFJLEdBQW1CLE9BQWhCQSxpQkFBZ0IsUUFBTTs7Ozs7O3NGQUNsRiw4REFBQ3FDOzRFQUFFakIsV0FBVTtzRkFBeUI7Ozs7Ozs7Ozs7Ozs4RUFFeEMsOERBQUNEO29FQUFJQyxXQUFVOzhFQUNiLDRFQUFDRjt3RUFBVWhELE1BQU13Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7c0VBSXJCLDhEQUFDUzs0REFBSUMsV0FBVTs7OEVBQ2IsOERBQUMwQjtvRUFBSzFCLFdBQVU7O3dFQUF5Qjt3RUFDMUIxQixTQUFTLElBQUlZLEtBQUtaLE9BQU9jLFNBQVMsRUFBRTBDLGtCQUFrQixLQUFLOzs7Ozs7OzhFQUUxRSw4REFBQ1A7b0VBQ0NDLFNBQVMsSUFBTTFELFVBQVVELElBQUlFLEVBQUU7b0VBQy9CaUMsV0FBVTs4RUFFViw0RUFBQ3pGLGtMQUFNQTt3RUFBQ3lGLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7OzttREF6RGpCbkMsSUFBSUUsRUFBRTs7Ozs7NENBOERqQjs7Ozs7Ozs7Ozs2REFJSiw4REFBQ2dDO3dDQUFJQyxXQUFVO2tEQUNiLDRFQUFDN0YsMkRBQWVBO3NEQUNiYyxLQUFLa0YsR0FBRyxDQUFDLENBQUN0QztnREFDVCxNQUFNLEVBQUVXLElBQUksRUFBRUMsTUFBTSxFQUFFRyxlQUFlLEVBQUVVLE9BQU8sRUFBRWhCLE1BQU0sRUFBRSxHQUFHTCxhQUFhSixJQUFJRSxFQUFFO2dEQUU5RSxxQkFDRSw4REFBQzdELGlEQUFNQSxDQUFDNkYsR0FBRztvREFFVGMsU0FBUzt3REFBRUMsU0FBUztvREFBRTtvREFDdEJFLFNBQVM7d0RBQUVGLFNBQVM7b0RBQUU7b0RBQ3RCdUIsTUFBTTt3REFBRXZCLFNBQVM7b0RBQUU7b0RBQ25CZCxXQUFVOztzRUFFViw4REFBQ0Q7NERBQUlDLFdBQVU7OzhFQUNiLDhEQUFDRDtvRUFBSUMsV0FBVyx5QkFBZ0UsT0FBdkN4QixPQUFPLG1CQUFtQjs7Ozs7OzhFQUNuRSw4REFBQ3VCOztzRkFDQyw4REFBQ29DOzRFQUFHbkMsV0FBVTtzRkFBaUJuQyxJQUFJOUIsSUFBSTs7Ozs7O3NGQUN2Qyw4REFBQ3VHOzRFQUFFQyxNQUFNMUUsSUFBSTVCLEdBQUc7NEVBQUV1RyxRQUFPOzRFQUFTQyxLQUFJOzRFQUFzQnpDLFdBQVU7c0ZBQ25FbkMsSUFBSTVCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7OztzRUFLZCw4REFBQzhEOzREQUFJQyxXQUFVOzs4RUFDYiw4REFBQ0Q7b0VBQUlDLFdBQVU7O3NGQUNiLDhEQUFDaUI7NEVBQUVqQixXQUFVOztnRkFBcUJ2QjtnRkFBTzs7Ozs7OztzRkFDekMsOERBQUN3Qzs0RUFBRWpCLFdBQVU7c0ZBQXlCOzs7Ozs7Ozs7Ozs7OEVBRXhDLDhEQUFDRjtvRUFBVWhELE1BQU13Qzs7Ozs7OzhFQUNqQiw4REFBQ29DO29FQUFLMUIsV0FBVyx3RkFBMk0sT0FBbkh4QixPQUFPLDZEQUE2RDs7c0ZBQzNLLDhEQUFDa0Q7NEVBQUsxQixXQUFXLHdCQUErRCxPQUF2Q3hCLE9BQU8sbUJBQW1COzs7Ozs7d0VBQ2xFQSxPQUFPLGdCQUFnQjs7Ozs7Ozs4RUFFMUIsOERBQUMrQztvRUFDQ0MsU0FBUyxJQUFNMUQsVUFBVUQsSUFBSUUsRUFBRTtvRUFDL0JpQyxXQUFVOzhFQUVWLDRFQUFDekYsa0xBQU1BO3dFQUFDeUYsV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7O21EQTlCakJuQyxJQUFJRSxFQUFFOzs7Ozs0Q0FtQ2pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBVWQsOERBQUM1RCwyREFBZUE7MEJBQ2JzQiw0QkFDQyw4REFBQ3ZCLGlEQUFNQSxDQUFDNkYsR0FBRztvQkFDVGMsU0FBUzt3QkFBRUMsU0FBUztvQkFBRTtvQkFDdEJFLFNBQVM7d0JBQUVGLFNBQVM7b0JBQUU7b0JBQ3RCdUIsTUFBTTt3QkFBRXZCLFNBQVM7b0JBQUU7b0JBQ25CZCxXQUFVOzhCQUVWLDRFQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO3dCQUNUYyxTQUFTOzRCQUFFQyxTQUFTOzRCQUFHQyxPQUFPOzRCQUFNSSxHQUFHO3dCQUFHO3dCQUMxQ0gsU0FBUzs0QkFBRUYsU0FBUzs0QkFBR0MsT0FBTzs0QkFBR0ksR0FBRzt3QkFBRTt3QkFDdENrQixNQUFNOzRCQUFFdkIsU0FBUzs0QkFBR0MsT0FBTzs0QkFBTUksR0FBRzt3QkFBRzt3QkFDdkNuQixXQUFVOzswQ0FFViw4REFBQ2tDO2dDQUFHbEMsV0FBVTswQ0FBeUI7Ozs7OzswQ0FDdkMsOERBQUNpQjtnQ0FBRWpCLFdBQVU7MENBQThCOzs7Ozs7MENBQzNDLDhEQUFDMEM7Z0NBQUtDLFVBQVV2RjtnQ0FBUTRDLFdBQVU7O2tEQUNoQyw4REFBQ0Q7OzBEQUNDLDhEQUFDNkM7Z0RBQU01QyxXQUFVOzBEQUFpQzs7Ozs7OzBEQUNsRCw4REFBQzZDO2dEQUNDQyxNQUFLO2dEQUNMQyxPQUFPbEgsT0FBT0UsSUFBSTtnREFDbEJpSCxVQUFVLENBQUMzRixJQUFNdkIsVUFBVTt3REFBRSxHQUFHRCxNQUFNO3dEQUFFRSxNQUFNc0IsRUFBRW1GLE1BQU0sQ0FBQ08sS0FBSztvREFBQztnREFDN0QvQyxXQUFVO2dEQUNWaUQsYUFBWTtnREFDWkMsUUFBUTs7Ozs7Ozs7Ozs7O2tEQUdaLDhEQUFDbkQ7d0NBQUlDLFdBQVU7OzBEQUNiLDhEQUFDRDs7a0VBQ0MsOERBQUM2Qzt3REFBTTVDLFdBQVU7a0VBQWlDOzs7Ozs7a0VBQ2xELDhEQUFDNkM7d0RBQ0NDLE1BQUs7d0RBQ0xDLE9BQU9sSCxPQUFPSSxHQUFHO3dEQUNqQitHLFVBQVUsQ0FBQzNGLElBQU12QixVQUFVO2dFQUFFLEdBQUdELE1BQU07Z0VBQUVJLEtBQUtvQixFQUFFbUYsTUFBTSxDQUFDTyxLQUFLOzREQUFDO3dEQUM1RC9DLFdBQVU7d0RBQ1ZpRCxhQUFZO3dEQUNaQyxRQUFROzs7Ozs7Ozs7Ozs7MERBR1osOERBQUNuRDs7a0VBQ0MsOERBQUM2Qzt3REFBTTVDLFdBQVU7a0VBQWlDOzs7Ozs7a0VBQ2xELDhEQUFDNkM7d0RBQ0NDLE1BQUs7d0RBQ0xDLE9BQU9sSCxPQUFPSyxJQUFJO3dEQUNsQjhHLFVBQVUsQ0FBQzNGLElBQU12QixVQUFVO2dFQUFFLEdBQUdELE1BQU07Z0VBQUVLLE1BQU1pSCxTQUFTOUYsRUFBRW1GLE1BQU0sQ0FBQ08sS0FBSzs0REFBRTt3REFDdkUvQyxXQUFVO3dEQUNWa0QsUUFBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tEQUlkLDhEQUFDbkQ7d0NBQUlDLFdBQVU7OzBEQUNiLDhEQUFDdUI7Z0RBQ0N1QixNQUFLO2dEQUNMdEIsU0FBUyxJQUFNOUYsY0FBYztnREFDN0JzRSxXQUFVOzBEQUNYOzs7Ozs7MERBR0QsOERBQUN1QjtnREFDQ3VCLE1BQUs7Z0RBQ0w5QyxXQUFVOzBEQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV25CO0dBeGlCd0JoRjtLQUFBQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvcGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IG1vdGlvbiwgQW5pbWF0ZVByZXNlbmNlIH0gZnJvbSBcImZyYW1lci1tb3Rpb25cIjtcbmltcG9ydCB7IFxuICBBY3Rpdml0eSwgXG4gIFBsdXMsIFxuICBSZWZyZXNoQ3csIFxuICBUcmFzaDIsIFxuICBFeHRlcm5hbExpbmssXG4gIFNlcnZlcixcbiAgVHJlbmRpbmdVcCxcbiAgQWxlcnRDaXJjbGUsXG4gIEdsb2JlLFxuICBDaGVja0NpcmNsZTIsXG4gIFhDaXJjbGUsXG4gIENsb2NrLFxuICBNb3JlSG9yaXpvbnRhbCxcbiAgTGF5b3V0R3JpZCxcbiAgTGlzdFxufSBmcm9tIFwibHVjaWRlLXJlYWN0XCI7XG5cbmludGVyZmFjZSBBcHAge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBwb3J0OiBudW1iZXI7XG4gIHBhdGg6IHN0cmluZztcbiAgY29tbWFuZDogc3RyaW5nO1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBlbmFibGVkOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgU3RhdHVzRW50cnkge1xuICBhcHBJZDogc3RyaW5nO1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgc3RhdHVzOiBcInVwXCIgfCBcImRvd25cIjtcbiAgcmVzcG9uc2VUaW1lPzogbnVtYmVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIZWFydGJlYXRNb25pdG9yKCkge1xuICBjb25zdCBbYXBwcywgc2V0QXBwc10gPSB1c2VTdGF0ZTxBcHBbXT4oW10pO1xuICBjb25zdCBbc3RhdHVzLCBzZXRTdGF0dXNdID0gdXNlU3RhdGU8U3RhdHVzRW50cnlbXT4oW10pO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW3JlZnJlc2hpbmcsIHNldFJlZnJlc2hpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd0FkZEFwcCwgc2V0U2hvd0FkZEFwcF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFt2aWV3TW9kZSwgc2V0Vmlld01vZGVdID0gdXNlU3RhdGU8XCJncmlkXCIgfCBcImxpc3RcIj4oXCJncmlkXCIpO1xuICBjb25zdCBbbmV3QXBwLCBzZXROZXdBcHBdID0gdXNlU3RhdGU8UGFydGlhbDxBcHA+Pih7XG4gICAgbmFtZTogXCJcIixcbiAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICB1cmw6IFwiaHR0cDovL2xvY2FsaG9zdDpcIixcbiAgICBwb3J0OiAzMDAwLFxuICAgIHBhdGg6IFwiXCIsXG4gICAgY29tbWFuZDogXCJucG0gcnVuIGRldlwiLFxuICAgIGNhdGVnb3J5OiBcIk90aGVyXCIsXG4gICAgY29sb3I6IFwiIzIyQzU1RVwiLFxuICAgIGVuYWJsZWQ6IHRydWUsXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hEYXRhKCk7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmZXRjaERhdGEsIDMwMDAwKTtcbiAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gIH0sIFtdKTtcblxuICBhc3luYyBmdW5jdGlvbiBmZXRjaERhdGEoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKFwiL2FwaS9tb25pdG9yXCIpO1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgICBzZXRBcHBzKGRhdGEuYXBwcyB8fCBbXSk7XG4gICAgICBzZXRTdGF0dXMoZGF0YS5zdGF0dXMgfHwgW10pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBmZXRjaCBkYXRhOlwiLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIHNldFJlZnJlc2hpbmcoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVJlZnJlc2goKSB7XG4gICAgc2V0UmVmcmVzaGluZyh0cnVlKTtcbiAgICBhd2FpdCBmZXRjaERhdGEoKTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGFkZEFwcChlOiBSZWFjdC5Gb3JtRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCFuZXdBcHAubmFtZSB8fCAhbmV3QXBwLnVybCkgcmV0dXJuO1xuICAgIGF3YWl0IGZldGNoKFwiL2FwaS9tb25pdG9yXCIsIHtcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGFjdGlvbjogXCJhZGRBcHBcIiwgYXBwOiBuZXdBcHAgfSksXG4gICAgfSk7XG4gICAgc2V0U2hvd0FkZEFwcChmYWxzZSk7XG4gICAgc2V0TmV3QXBwKHtcbiAgICAgIG5hbWU6IFwiXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICAgIHVybDogXCJodHRwOi8vbG9jYWxob3N0OlwiLFxuICAgICAgcG9ydDogMzAwMCxcbiAgICAgIHBhdGg6IFwiXCIsXG4gICAgICBjb21tYW5kOiBcIm5wbSBydW4gZGV2XCIsXG4gICAgICBjYXRlZ29yeTogXCJPdGhlclwiLFxuICAgICAgY29sb3I6IFwiIzIyQzU1RVwiLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICB9KTtcbiAgICBmZXRjaERhdGEoKTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUFwcChpZDogc3RyaW5nKSB7XG4gICAgaWYgKCFjb25maXJtKFwiRGVsZXRlIHRoaXMgYXBwP1wiKSkgcmV0dXJuO1xuICAgIGF3YWl0IGZldGNoKFwiL2FwaS9tb25pdG9yXCIsIHtcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGFjdGlvbjogXCJkZWxldGVBcHBcIiwgaWQgfSksXG4gICAgfSk7XG4gICAgZmV0Y2hEYXRhKCk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRBcHBTdGF0dXMoYXBwSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGFwcFN0YXR1cyA9IHN0YXR1cy5maWx0ZXIoKHMpID0+IHMuYXBwSWQgPT09IGFwcElkKTtcbiAgICBjb25zdCBsYXRlc3QgPSBhcHBTdGF0dXNbYXBwU3RhdHVzLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGlzVXAgPSBsYXRlc3Q/LnN0YXR1cyA9PT0gXCJ1cFwiO1xuICAgIGNvbnN0IHVwdGltZSA9IGFwcFN0YXR1cy5sZW5ndGggPiAwIFxuICAgICAgPyBNYXRoLnJvdW5kKChhcHBTdGF0dXMuZmlsdGVyKHMgPT4gcy5zdGF0dXMgPT09IFwidXBcIikubGVuZ3RoIC8gYXBwU3RhdHVzLmxlbmd0aCkgKiAxMDApXG4gICAgICA6IDEwMDtcbiAgICBjb25zdCBhdmdSZXNwb25zZVRpbWUgPSBhcHBTdGF0dXMubGVuZ3RoID4gMFxuICAgICAgPyBNYXRoLnJvdW5kKGFwcFN0YXR1cy5maWx0ZXIocyA9PiBzLnJlc3BvbnNlVGltZSkucmVkdWNlKChhY2MsIHMpID0+IGFjYyArIChzLnJlc3BvbnNlVGltZSB8fCAwKSwgMCkgLyBhcHBTdGF0dXMuZmlsdGVyKHMgPT4gcy5yZXNwb25zZVRpbWUpLmxlbmd0aCkgfHwgMFxuICAgICAgOiAwO1xuICAgIGNvbnN0IGxhc3QyNEhvdXJzID0gYXBwU3RhdHVzLmZpbHRlcihzID0+IHtcbiAgICAgIGNvbnN0IGhvdXJzQWdvID0gKERhdGUubm93KCkgLSBuZXcgRGF0ZShzLnRpbWVzdGFtcCkuZ2V0VGltZSgpKSAvICgxMDAwICogNjAgKiA2MCk7XG4gICAgICByZXR1cm4gaG91cnNBZ28gPD0gMjQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgbGF0ZXN0LCBpc1VwLCB1cHRpbWUsIGF2Z1Jlc3BvbnNlVGltZSwgaGlzdG9yeTogbGFzdDI0SG91cnMgfTtcbiAgfVxuXG4gIGNvbnN0IHN0YXRzID0ge1xuICAgIHRvdGFsOiBhcHBzLmxlbmd0aCxcbiAgICBvbmxpbmU6IGFwcHMuZmlsdGVyKChhcHApID0+IGdldEFwcFN0YXR1cyhhcHAuaWQpLmlzVXApLmxlbmd0aCxcbiAgICBvZmZsaW5lOiBhcHBzLmZpbHRlcigoYXBwKSA9PiAhZ2V0QXBwU3RhdHVzKGFwcC5pZCkuaXNVcCkubGVuZ3RoLFxuICAgIGF2Z1VwdGltZTogYXBwcy5sZW5ndGggPiAwIFxuICAgICAgPyBNYXRoLnJvdW5kKGFwcHMucmVkdWNlKChhY2MsIGFwcCkgPT4gYWNjICsgZ2V0QXBwU3RhdHVzKGFwcC5pZCkudXB0aW1lLCAwKSAvIGFwcHMubGVuZ3RoKVxuICAgICAgOiAwLFxuICAgIGF2Z1Jlc3BvbnNlVGltZTogYXBwcy5sZW5ndGggPiAwXG4gICAgICA/IE1hdGgucm91bmQoYXBwcy5yZWR1Y2UoKGFjYywgYXBwKSA9PiBhY2MgKyBnZXRBcHBTdGF0dXMoYXBwLmlkKS5hdmdSZXNwb25zZVRpbWUsIDApIC8gYXBwcy5sZW5ndGgpXG4gICAgICA6IDAsXG4gICAgaW5jaWRlbnRzOiBzdGF0dXMuZmlsdGVyKHMgPT4gcy5zdGF0dXMgPT09IFwiZG93blwiKS5sZW5ndGgsXG4gIH07XG5cbiAgY29uc3QgYWxsVXAgPSBzdGF0cy5vbmxpbmUgPT09IHN0YXRzLnRvdGFsICYmIHN0YXRzLnRvdGFsID4gMDtcblxuICBmdW5jdGlvbiBTcGFya2xpbmUoeyBkYXRhIH06IHsgZGF0YTogU3RhdHVzRW50cnlbXSB9KSB7XG4gICAgaWYgKGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtOCB3LTIwIGJnLXNsYXRlLTgwMC81MCByb3VuZGVkIGZsZXggaXRlbXMtZW5kIGp1c3RpZnktY2VudGVyIGdhcC0wLjUgcC0xXCI+XG4gICAgICAgICAge0FycmF5LmZyb20oeyBsZW5ndGg6IDggfSkubWFwKChfLCBpKSA9PiAoXG4gICAgICAgICAgICA8ZGl2IGtleT17aX0gY2xhc3NOYW1lPVwidy0xIGJnLXNsYXRlLTcwMCByb3VuZGVkLXNtXCIgc3R5bGU9e3sgaGVpZ2h0OiAnMzAlJyB9fSAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGJhcnMgPSBkYXRhLnNsaWNlKC04KS5tYXAoKGVudHJ5LCBpKSA9PiB7XG4gICAgICBjb25zdCBoZWlnaHQgPSBlbnRyeS5zdGF0dXMgPT09IFwidXBcIiBcbiAgICAgICAgPyBNYXRoLm1heCgyMCwgTWF0aC5taW4oMTAwLCAxMDAgLSAoKGVudHJ5LnJlc3BvbnNlVGltZSB8fCAxMDApIC8gMTApKSlcbiAgICAgICAgOiAxMDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgY2xhc3NOYW1lPXtgdy0xLjUgcm91bmRlZC1zbSAke2VudHJ5LnN0YXR1cyA9PT0gXCJ1cFwiID8gXCJiZy1lbWVyYWxkLTUwMC84MFwiIDogXCJiZy1yZWQtNTAwLzgwXCJ9YH1cbiAgICAgICAgICBzdHlsZT17eyBoZWlnaHQ6IGAke2hlaWdodH0lYCB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9KTtcbiAgICBcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLTggdy0yMCBiZy1zbGF0ZS04MDAvNTAgcm91bmRlZCBmbGV4IGl0ZW1zLWVuZCBqdXN0aWZ5LWNlbnRlciBnYXAtMC41IHAtMVwiPlxuICAgICAgICB7YmFyc31cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxuICBpZiAobG9hZGluZykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1zbGF0ZS05NTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPG1vdGlvbi5kaXYgXG4gICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwLCBzY2FsZTogMC45IH19XG4gICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCBzY2FsZTogMSB9fVxuICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC00XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xMiBoLTEyIHJvdW5kZWQteGwgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1lbWVyYWxkLTUwMCB0by1jeWFuLTUwMCBhbmltYXRlLXB1bHNlXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCB3LTEyIGgtMTIgcm91bmRlZC14bCBiZy1ncmFkaWVudC10by1iciBmcm9tLWVtZXJhbGQtNTAwIHRvLWN5YW4tNTAwIGJsdXIteGwgb3BhY2l0eS01MFwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS00MDAgYW5pbWF0ZS1wdWxzZVwiPkxvYWRpbmcgZGFzaGJvYXJkLi4uPC9wPlxuICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1zbGF0ZS05NTAgdGV4dC1zbGF0ZS0xMDBcIj5cbiAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICA8bW90aW9uLmhlYWRlciBcbiAgICAgICAgaW5pdGlhbD17eyB5OiAtMjAsIG9wYWNpdHk6IDAgfX1cbiAgICAgICAgYW5pbWF0ZT17eyB5OiAwLCBvcGFjaXR5OiAxIH19XG4gICAgICAgIGNsYXNzTmFtZT1cInN0aWNreSB0b3AtMCB6LTUwIGJvcmRlci1iIGJvcmRlci1zbGF0ZS04MDAvNTAgYmctc2xhdGUtOTUwLzgwIGJhY2tkcm9wLWJsdXIteGxcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTd4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaC0xNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICA8bW90aW9uLmRpdiBcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiXG4gICAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyBzY2FsZTogMS4wNSB9fVxuICAgICAgICAgICAgICAgIHdoaWxlVGFwPXt7IHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMTAgaC0xMCByb3VuZGVkLXhsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZW1lcmFsZC01MDAgdG8tY3lhbi01MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgc2hhZG93LWxnIHNoYWRvdy1lbWVyYWxkLTUwMC8yMFwiPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2aXR5IGNsYXNzTmFtZT1cInctNSBoLTUgdGV4dC13aGl0ZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZVwiPkhlYXJ0YmVhdDwvaDE+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXNsYXRlLTQwMFwiPkluZnJhc3RydWN0dXJlIE1vbml0b3I8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVJlZnJlc2h9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3JlZnJlc2hpbmd9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIHRleHQtc2xhdGUtNDAwIGhvdmVyOnRleHQtd2hpdGUgaG92ZXI6Ymctc2xhdGUtODAwIHJvdW5kZWQtbGcgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlZnJlc2hDdyBjbGFzc05hbWU9e2B3LTUgaC01ICR7cmVmcmVzaGluZyA/ICdhbmltYXRlLXNwaW4nIDogJyd9YH0gLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0FkZEFwcCh0cnVlKX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC00IHB5LTIgYmctZ3JhZGllbnQtdG8tciBmcm9tLWVtZXJhbGQtNjAwIHRvLWVtZXJhbGQtNTAwIGhvdmVyOmZyb20tZW1lcmFsZC01MDAgaG92ZXI6dG8tZW1lcmFsZC00MDAgdGV4dC13aGl0ZSByb3VuZGVkLWxnIHNoYWRvdy1sZyBzaGFkb3ctZW1lcmFsZC01MDAvMjAgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBsdXMgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaGlkZGVuIHNtOmlubGluZVwiPkFkZCBNb25pdG9yPC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbW90aW9uLmhlYWRlcj5cblxuICAgICAgey8qIE1haW4gQ29udGVudCAqL31cbiAgICAgIDxtYWluIGNsYXNzTmFtZT1cIm1heC13LTd4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04IHB5LThcIj5cbiAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICB0cmFuc2l0aW9uPXt7IHN0YWdnZXJDaGlsZHJlbjogMC4xIH19XG4gICAgICAgICAgY2xhc3NOYW1lPVwic3BhY2UteS04XCJcbiAgICAgICAgPlxuICAgICAgICAgIHsvKiBTdGF0dXMgT3ZlcnZpZXcgKi99XG4gICAgICAgICAgPG1vdGlvbi5kaXYgXG4gICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDEwIH19XG4gICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHk6IDAgfX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHctMyBoLTMgcm91bmRlZC1mdWxsICR7YWxsVXAgPyAnYmctZW1lcmFsZC01MDAgYW5pbWF0ZS1wdWxzZScgOiAnYmctcmVkLTUwMCd9YH0gLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW1cIj5cbiAgICAgICAgICAgICAge2FsbFVwID8gJ0FsbCBTeXN0ZW1zIE9wZXJhdGlvbmFsJyA6IGAke3N0YXRzLm9mZmxpbmV9IFNlcnZpY2Uke3N0YXRzLm9mZmxpbmUgPiAxID8gJ3MnIDogJyd9IERvd25gfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS01MDBcIj7igKIgTGFzdCB1cGRhdGVkIHtuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpfTwvc3Bhbj5cbiAgICAgICAgICA8L21vdGlvbi5kaXY+XG5cbiAgICAgICAgICB7LyogU3RhdHMgR3JpZCAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTQgZ2FwLTRcIj5cbiAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMSB9fVxuICAgICAgICAgICAgICB3aGlsZUhvdmVyPXt7IHk6IC00IH19XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXNsYXRlLTkwMC81MCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCBib3JkZXItbC00IGJvcmRlci1sLWVtZXJhbGQtNTAwIHJvdW5kZWQteGwgcC02IGN1cnNvci1wb2ludGVyIGhvdmVyOmJnLXNsYXRlLTgwMC81MCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTMgcm91bmRlZC14bCBiZy1lbWVyYWxkLTUwMC8xMFwiPlxuICAgICAgICAgICAgICAgICAgPFNlcnZlciBjbGFzc05hbWU9XCJ3LTYgaC02IHRleHQtZW1lcmFsZC01MDBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1ib2xkXCI+e3N0YXRzLm9ubGluZX08c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTUwMCB0ZXh0LWxnXCI+L3tzdGF0cy50b3RhbH08L3NwYW4+PC9wPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMFwiPlNlcnZpY2VzIE9ubGluZTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21vdGlvbi5kaXY+XG5cbiAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMTUgfX1cbiAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyB5OiAtNCB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1zbGF0ZS05MDAvNTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgYm9yZGVyLWwtNCBib3JkZXItbC1ibHVlLTUwMCByb3VuZGVkLXhsIHAtNiBjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1zbGF0ZS04MDAvNTAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zIHJvdW5kZWQteGwgYmctYmx1ZS01MDAvMTBcIj5cbiAgICAgICAgICAgICAgICAgIDxUcmVuZGluZ1VwIGNsYXNzTmFtZT1cInctNiBoLTYgdGV4dC1ibHVlLTUwMFwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBmb250LWJvbGRcIj57c3RhdHMuYXZnVXB0aW1lfSU8L3A+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtc2xhdGUtNDAwXCI+QXZnIFVwdGltZTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtNCB3LWZ1bGwgYmctc2xhdGUtODAwIHJvdW5kZWQtZnVsbCBoLTJcIj5cbiAgICAgICAgICAgICAgICA8bW90aW9uLmRpdiBcbiAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgd2lkdGg6IDAgfX1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgd2lkdGg6IGAke3N0YXRzLmF2Z1VwdGltZX0lYCB9fVxuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkdXJhdGlvbjogMSwgZGVsYXk6IDAuNSB9fVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctYmx1ZS01MDAgaC0yIHJvdW5kZWQtZnVsbFwiIFxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuXG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDIwIH19XG4gICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSwgeTogMCB9fVxuICAgICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGRlbGF5OiAwLjIgfX1cbiAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyB5OiAtNCB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1zbGF0ZS05MDAvNTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgYm9yZGVyLWwtNCBib3JkZXItbC1wdXJwbGUtNTAwIHJvdW5kZWQteGwgcC02IGN1cnNvci1wb2ludGVyIGhvdmVyOmJnLXNsYXRlLTgwMC81MCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTMgcm91bmRlZC14bCBiZy1wdXJwbGUtNTAwLzEwXCI+XG4gICAgICAgICAgICAgICAgICA8Q2xvY2sgY2xhc3NOYW1lPVwidy02IGgtNiB0ZXh0LXB1cnBsZS01MDBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1ib2xkXCI+e3N0YXRzLmF2Z1Jlc3BvbnNlVGltZX08c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTUwMCB0ZXh0LWxnXCI+bXM8L3NwYW4+PC9wPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMFwiPkF2ZyBSZXNwb25zZTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21vdGlvbi5kaXY+XG5cbiAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMjUgfX1cbiAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyB5OiAtNCB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1zbGF0ZS05MDAvNTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgYm9yZGVyLWwtNCBib3JkZXItbC1hbWJlci01MDAgcm91bmRlZC14bCBwLTYgY3Vyc29yLXBvaW50ZXIgaG92ZXI6Ymctc2xhdGUtODAwLzUwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtMyByb3VuZGVkLXhsIGJnLWFtYmVyLTUwMC8xMFwiPlxuICAgICAgICAgICAgICAgICAgPEFsZXJ0Q2lyY2xlIGNsYXNzTmFtZT1cInctNiBoLTYgdGV4dC1hbWJlci01MDBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1ib2xkXCI+e3N0YXRzLmluY2lkZW50c308L3A+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtc2xhdGUtNDAwXCI+SW5jaWRlbnRzPC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIHsvKiBNb25pdG9ycyBTZWN0aW9uICovfVxuICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDIwIH19XG4gICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHk6IDAgfX1cbiAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMyB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctc2xhdGUtOTAwLzUwIGJvcmRlciBib3JkZXItc2xhdGUtODAwIHJvdW5kZWQteGwgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTYgcHktNCBib3JkZXItYiBib3JkZXItc2xhdGUtODAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxHbG9iZSBjbGFzc05hbWU9XCJ3LTUgaC01IHRleHQtc2xhdGUtNDAwXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZFwiPk1vbml0b3JlZCBTZXJ2aWNlczwvaDI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMCBtdC0xXCI+e3N0YXRzLnRvdGFsfSBhY3RpdmUgbW9uaXRvcntzdGF0cy50b3RhbCAhPT0gMSA/ICdzJyA6ICcnfTwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRWaWV3TW9kZSh2aWV3TW9kZSA9PT0gXCJncmlkXCIgPyBcImxpc3RcIiA6IFwiZ3JpZFwiKX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtMiB0ZXh0LXNsYXRlLTQwMCBob3Zlcjp0ZXh0LXdoaXRlIGhvdmVyOmJnLXNsYXRlLTgwMCByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7dmlld01vZGUgPT09IFwiZ3JpZFwiID8gPExpc3QgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+IDogPExheW91dEdyaWQgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNlwiPlxuICAgICAgICAgICAgICB7YXBwcy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgPG1vdGlvbi5kaXYgXG4gICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHNjYWxlOiAxIH19XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBweS0xNlwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTIwIGgtMjAgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1zbGF0ZS04MDAgdG8tc2xhdGUtOTAwIHJvdW5kZWQtMnhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItNiBzaGFkb3ctaW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPEFjdGl2aXR5IGNsYXNzTmFtZT1cInctMTAgaC0xMCB0ZXh0LXNsYXRlLTYwMFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItMlwiPk5vIG1vbml0b3JzIHlldDwvaDM+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTQwMCBtYi02XCI+U3RhcnQgbW9uaXRvcmluZyB5b3VyIHNlcnZpY2VzIGJ5IGFkZGluZyB5b3VyIGZpcnN0IG1vbml0b3I8L3A+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93QWRkQXBwKHRydWUpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJweC00IHB5LTIgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC01MDAgdGV4dC13aGl0ZSByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQWRkIFlvdXIgRmlyc3QgTW9uaXRvclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICApIDogdmlld01vZGUgPT09IFwiZ3JpZFwiID8gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBsZzpncmlkLWNvbHMtMiBnYXAtNFwiPlxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVQcmVzZW5jZT5cbiAgICAgICAgICAgICAgICAgICAge2FwcHMubWFwKChhcHAsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBpc1VwLCB1cHRpbWUsIGF2Z1Jlc3BvbnNlVGltZSwgaGlzdG9yeSwgbGF0ZXN0IH0gPSBnZXRBcHBTdGF0dXMoYXBwLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXthcHAuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQ9e3sgb3BhY2l0eTogMCwgc2NhbGU6IDAuOTUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkZWxheTogaW5kZXggKiAwLjA1IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlSG92ZXI9e3sgeTogLTQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgYmctc2xhdGUtOTAwIGJvcmRlciBib3JkZXItc2xhdGUtODAwIHJvdW5kZWQteGwgYm9yZGVyLWwtNCAke2lzVXAgPyAnYm9yZGVyLWwtZW1lcmFsZC01MDAnIDogJ2JvcmRlci1sLXJlZC01MDAnfSBwLTUgZ3JvdXBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2B3LTEwIGgtMTAgcm91bmRlZC14bCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAke2lzVXAgPyAnYmctZW1lcmFsZC01MDAvMTAnIDogJ2JnLXJlZC01MDAvMTAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VydmVyIGNsYXNzTmFtZT17YHctNSBoLTUgJHtpc1VwID8gJ3RleHQtZW1lcmFsZC01MDAnIDogJ3RleHQtcmVkLTUwMCd9YH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGQgdGV4dC1sZ1wiPnthcHAubmFtZX08L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXthcHAudXJsfSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtc2xhdGUtNDAwIGhvdmVyOnRleHQtZW1lcmFsZC00MDAgdHJhbnNpdGlvbi1jb2xvcnMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FwcC51cmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEV4dGVybmFsTGluayBjbGFzc05hbWU9XCJ3LTMgaC0zXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgcHgtMi41IHB5LTEgcm91bmRlZC1mdWxsIHRleHQteHMgZm9udC1tZWRpdW0gYm9yZGVyICR7aXNVcCA/ICdib3JkZXItZW1lcmFsZC01MDAvMzAgYmctZW1lcmFsZC01MDAvMTAgdGV4dC1lbWVyYWxkLTQwMCcgOiAnYm9yZGVyLXJlZC01MDAvMzAgYmctcmVkLTUwMC8xMCB0ZXh0LXJlZC00MDAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgcmVsYXRpdmUgZmxleCBoLTIgdy0yYH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGFuaW1hdGUtcGluZyBhYnNvbHV0ZSBpbmxpbmUtZmxleCBoLWZ1bGwgdy1mdWxsIHJvdW5kZWQtZnVsbCBvcGFjaXR5LTc1ICR7aXNVcCA/ICdiZy1lbWVyYWxkLTQwMCcgOiAnYmctcmVkLTQwMCd9YH0+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2ByZWxhdGl2ZSBpbmxpbmUtZmxleCByb3VuZGVkLWZ1bGwgaC0yIHctMiAke2lzVXAgPyAnYmctZW1lcmFsZC01MDAnIDogJ2JnLXJlZC01MDAnfWB9Pjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc1VwID8gXCJPcGVyYXRpb25hbFwiIDogXCJEb3duXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTQgZ3JpZCBncmlkLWNvbHMtMyBnYXAtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGRcIj57dXB0aW1lfSU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtc2xhdGUtNDAwXCI+VXB0aW1lPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGRcIj57YXZnUmVzcG9uc2VUaW1lID4gMCA/IGAke2F2Z1Jlc3BvbnNlVGltZX1tc2AgOiAn4oCUJ308L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtc2xhdGUtNDAwXCI+UmVzcG9uc2U8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNwYXJrbGluZSBkYXRhPXtoaXN0b3J5fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTQgcHQtNCBib3JkZXItdCBib3JkZXItc2xhdGUtODAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1zbGF0ZS01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhc3QgY2hlY2s6IHtsYXRlc3QgPyBuZXcgRGF0ZShsYXRlc3QudGltZXN0YW1wKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA6ICdOZXZlcid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGRlbGV0ZUFwcChhcHAuaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIHRleHQtc2xhdGUtNTAwIGhvdmVyOnRleHQtcmVkLTQwMCBob3ZlcjpiZy1yZWQtNTAwLzEwIHJvdW5kZWQtbGcgb3BhY2l0eS0wIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwIHRyYW5zaXRpb24tYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHJhc2gyIGNsYXNzTmFtZT1cInctNCBoLTRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIDwvQW5pbWF0ZVByZXNlbmNlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGl2aWRlLXkgZGl2aWRlLXNsYXRlLTgwMFwiPlxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVQcmVzZW5jZT5cbiAgICAgICAgICAgICAgICAgICAge2FwcHMubWFwKChhcHApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGlzVXAsIHVwdGltZSwgYXZnUmVzcG9uc2VUaW1lLCBoaXN0b3J5LCBsYXRlc3QgfSA9IGdldEFwcFN0YXR1cyhhcHAuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2FwcC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBleGl0PXt7IG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicHktNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ3JvdXAgaG92ZXI6Ymctc2xhdGUtODAwLzMwIHRyYW5zaXRpb24tY29sb3JzIHB4LTIgcm91bmRlZC1sZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHctMiBoLTEyIHJvdW5kZWQtZnVsbCAke2lzVXAgPyAnYmctZW1lcmFsZC01MDAnIDogJ2JnLXJlZC01MDAnfWB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkXCI+e2FwcC5uYW1lfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPXthcHAudXJsfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMCBob3Zlcjp0ZXh0LWVtZXJhbGQtNDAwIHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthcHAudXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLThcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ib2xkXCI+e3VwdGltZX0lPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXNsYXRlLTQwMFwiPlVwdGltZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3BhcmtsaW5lIGRhdGE9e2hpc3Rvcnl9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgcHgtMi41IHB5LTEgcm91bmRlZC1mdWxsIHRleHQteHMgZm9udC1tZWRpdW0gYm9yZGVyICR7aXNVcCA/ICdib3JkZXItZW1lcmFsZC01MDAvMzAgYmctZW1lcmFsZC01MDAvMTAgdGV4dC1lbWVyYWxkLTQwMCcgOiAnYm9yZGVyLXJlZC01MDAvMzAgYmctcmVkLTUwMC8xMCB0ZXh0LXJlZC00MDAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgdy0yIGgtMiByb3VuZGVkLWZ1bGwgJHtpc1VwID8gJ2JnLWVtZXJhbGQtNTAwJyA6ICdiZy1yZWQtNTAwJ31gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzVXAgPyBcIk9wZXJhdGlvbmFsXCIgOiBcIkRvd25cIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gZGVsZXRlQXBwKGFwcC5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTIgdGV4dC1zbGF0ZS01MDAgaG92ZXI6dGV4dC1yZWQtNDAwIGhvdmVyOmJnLXJlZC01MDAvMTAgcm91bmRlZC1sZyBvcGFjaXR5LTAgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUcmFzaDIgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgPC9BbmltYXRlUHJlc2VuY2U+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgIDwvbWFpbj5cblxuICAgICAgey8qIEFkZCBNb25pdG9yIERpYWxvZyAqL31cbiAgICAgIDxBbmltYXRlUHJlc2VuY2U+XG4gICAgICAgIHtzaG93QWRkQXBwICYmIChcbiAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICAgIGV4aXQ9e3sgb3BhY2l0eTogMCB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQgaW5zZXQtMCBiZy1ibGFjay82MCBiYWNrZHJvcC1ibHVyLXNtIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHotNTAgcC00XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHNjYWxlOiAwLjk1LCB5OiAyMCB9fVxuICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHNjYWxlOiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIGV4aXQ9e3sgb3BhY2l0eTogMCwgc2NhbGU6IDAuOTUsIHk6IDIwIH19XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXNsYXRlLTkwMCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCByb3VuZGVkLXhsIHAtNiB3LWZ1bGwgbWF4LXctbWQgc2hhZG93LTJ4bFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZCBtYi0yXCI+QWRkIE5ldyBNb25pdG9yPC9oMj5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS00MDAgdGV4dC1zbSBtYi02XCI+TW9uaXRvciBhIG5ldyBzZXJ2aWNlIGJ5IHByb3ZpZGluZyBpdHMgZGV0YWlscyBiZWxvdy48L3A+XG4gICAgICAgICAgICAgIDxmb3JtIG9uU3VibWl0PXthZGRBcHB9IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSBtYi0yXCI+TW9uaXRvciBOYW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e25ld0FwcC5uYW1lfSBcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXROZXdBcHAoeyAuLi5uZXdBcHAsIG5hbWU6IGUudGFyZ2V0LnZhbHVlIH0pfSBcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLXNsYXRlLTk1MCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCByb3VuZGVkLWxnIHB4LTQgcHktMi41IHRleHQtd2hpdGUgcGxhY2Vob2xkZXItc2xhdGUtNTAwIGZvY3VzOmJvcmRlci1lbWVyYWxkLTUwMCBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1lbWVyYWxkLTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTXkgQXBwbGljYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCBcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0yIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSBtYi0yXCI+VVJMPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ1cmxcIiBcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17bmV3QXBwLnVybH0gXG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXROZXdBcHAoeyAuLi5uZXdBcHAsIHVybDogZS50YXJnZXQudmFsdWUgfSl9IFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBiZy1zbGF0ZS05NTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgcm91bmRlZC1sZyBweC00IHB5LTIuNSB0ZXh0LXdoaXRlIHBsYWNlaG9sZGVyLXNsYXRlLTUwMCBmb2N1czpib3JkZXItZW1lcmFsZC01MDAgZm9jdXM6cmluZy0xIGZvY3VzOnJpbmctZW1lcmFsZC01MDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiaHR0cDovL2xvY2FsaG9zdDozMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCBcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gbWItMlwiPlBvcnQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiIFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtuZXdBcHAucG9ydH0gXG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXROZXdBcHAoeyAuLi5uZXdBcHAsIHBvcnQ6IHBhcnNlSW50KGUudGFyZ2V0LnZhbHVlKSB9KX0gXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLXNsYXRlLTk1MCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCByb3VuZGVkLWxnIHB4LTQgcHktMi41IHRleHQtd2hpdGUgcGxhY2Vob2xkZXItc2xhdGUtNTAwIGZvY3VzOmJvcmRlci1lbWVyYWxkLTUwMCBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1lbWVyYWxkLTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQgXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTMgcHQtNFwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0FkZEFwcChmYWxzZSl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBweC00IHB5LTIuNSBib3JkZXIgYm9yZGVyLXNsYXRlLTcwMCByb3VuZGVkLWxnIGhvdmVyOmJnLXNsYXRlLTgwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4LTEgcHgtNCBweS0yLjUgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC01MDAgdGV4dC13aGl0ZSByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzIGZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQWRkIE1vbml0b3JcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICApfVxuICAgICAgPC9BbmltYXRlUHJlc2VuY2U+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJtb3Rpb24iLCJBbmltYXRlUHJlc2VuY2UiLCJBY3Rpdml0eSIsIlBsdXMiLCJSZWZyZXNoQ3ciLCJUcmFzaDIiLCJFeHRlcm5hbExpbmsiLCJTZXJ2ZXIiLCJUcmVuZGluZ1VwIiwiQWxlcnRDaXJjbGUiLCJHbG9iZSIsIkNsb2NrIiwiTGF5b3V0R3JpZCIsIkxpc3QiLCJIZWFydGJlYXRNb25pdG9yIiwiYXBwcyIsInNldEFwcHMiLCJzdGF0dXMiLCJzZXRTdGF0dXMiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsInJlZnJlc2hpbmciLCJzZXRSZWZyZXNoaW5nIiwic2hvd0FkZEFwcCIsInNldFNob3dBZGRBcHAiLCJ2aWV3TW9kZSIsInNldFZpZXdNb2RlIiwibmV3QXBwIiwic2V0TmV3QXBwIiwibmFtZSIsImRlc2NyaXB0aW9uIiwidXJsIiwicG9ydCIsInBhdGgiLCJjb21tYW5kIiwiY2F0ZWdvcnkiLCJjb2xvciIsImVuYWJsZWQiLCJmZXRjaERhdGEiLCJpbnRlcnZhbCIsInNldEludGVydmFsIiwiY2xlYXJJbnRlcnZhbCIsInJlcyIsImZldGNoIiwiZGF0YSIsImpzb24iLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJoYW5kbGVSZWZyZXNoIiwiYWRkQXBwIiwiZSIsInByZXZlbnREZWZhdWx0IiwibWV0aG9kIiwiaGVhZGVycyIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiYWN0aW9uIiwiYXBwIiwiZGVsZXRlQXBwIiwiaWQiLCJjb25maXJtIiwiZ2V0QXBwU3RhdHVzIiwiYXBwSWQiLCJhcHBTdGF0dXMiLCJmaWx0ZXIiLCJzIiwibGF0ZXN0IiwibGVuZ3RoIiwiaXNVcCIsInVwdGltZSIsIk1hdGgiLCJyb3VuZCIsImF2Z1Jlc3BvbnNlVGltZSIsInJlc3BvbnNlVGltZSIsInJlZHVjZSIsImFjYyIsImxhc3QyNEhvdXJzIiwiaG91cnNBZ28iLCJEYXRlIiwibm93IiwidGltZXN0YW1wIiwiZ2V0VGltZSIsImhpc3RvcnkiLCJzdGF0cyIsInRvdGFsIiwib25saW5lIiwib2ZmbGluZSIsImF2Z1VwdGltZSIsImluY2lkZW50cyIsImFsbFVwIiwiU3BhcmtsaW5lIiwiZGl2IiwiY2xhc3NOYW1lIiwiQXJyYXkiLCJmcm9tIiwibWFwIiwiXyIsImkiLCJzdHlsZSIsImhlaWdodCIsImJhcnMiLCJzbGljZSIsImVudHJ5IiwibWF4IiwibWluIiwiaW5pdGlhbCIsIm9wYWNpdHkiLCJzY2FsZSIsImFuaW1hdGUiLCJwIiwiaGVhZGVyIiwieSIsIndoaWxlSG92ZXIiLCJ3aGlsZVRhcCIsImgxIiwiYnV0dG9uIiwib25DbGljayIsImRpc2FibGVkIiwic3BhbiIsIm1haW4iLCJ0cmFuc2l0aW9uIiwic3RhZ2dlckNoaWxkcmVuIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiZGVsYXkiLCJ3aWR0aCIsImR1cmF0aW9uIiwiaDIiLCJoMyIsImluZGV4IiwiZXhpdCIsImEiLCJocmVmIiwidGFyZ2V0IiwicmVsIiwiZm9ybSIsIm9uU3VibWl0IiwibGFiZWwiLCJpbnB1dCIsInR5cGUiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwicGxhY2Vob2xkZXIiLCJyZXF1aXJlZCIsInBhcnNlSW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/page.tsx\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE$2\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function disabledLog() {}\n function disableLogs() {\n if (0 === disabledDepth) {\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd;\n var props = {\n configurable: !0,\n enumerable: !0,\n value: disabledLog,\n writable: !0\n };\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n }\n disabledDepth++;\n }\n function reenableLogs() {\n disabledDepth--;\n if (0 === disabledDepth) {\n var props = { configurable: !0, enumerable: !0, writable: !0 };\n Object.defineProperties(console, {\n log: assign({}, props, { value: prevLog }),\n info: assign({}, props, { value: prevInfo }),\n warn: assign({}, props, { value: prevWarn }),\n error: assign({}, props, { value: prevError }),\n group: assign({}, props, { value: prevGroup }),\n groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),\n groupEnd: assign({}, props, { value: prevGroupEnd })\n });\n }\n 0 > disabledDepth &&\n console.error(\n \"disabledDepth fell below zero. This is a bug in React. Please file an issue.\"\n );\n }\n function describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n }\n function describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n var frame = componentFrameCache.get(fn);\n if (void 0 !== frame) return frame;\n reentry = !0;\n frame = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n var previousDispatcher = null;\n previousDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = null;\n disableLogs();\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$0) {\n control = x$0;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$1) {\n control = x$1;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter =\n RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n _RunInRootFrame$Deter = namePropDescriptor = 0;\n namePropDescriptor < sampleLines.length &&\n !sampleLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n for (\n ;\n _RunInRootFrame$Deter < controlLines.length &&\n !controlLines[_RunInRootFrame$Deter].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n _RunInRootFrame$Deter++;\n if (\n namePropDescriptor === sampleLines.length ||\n _RunInRootFrame$Deter === controlLines.length\n )\n for (\n namePropDescriptor = sampleLines.length - 1,\n _RunInRootFrame$Deter = controlLines.length - 1;\n 1 <= namePropDescriptor &&\n 0 <= _RunInRootFrame$Deter &&\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter];\n\n )\n _RunInRootFrame$Deter--;\n for (\n ;\n 1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;\n namePropDescriptor--, _RunInRootFrame$Deter--\n )\n if (\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter]\n ) {\n if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {\n do\n if (\n (namePropDescriptor--,\n _RunInRootFrame$Deter--,\n 0 > _RunInRootFrame$Deter ||\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter])\n ) {\n var _frame =\n \"\\n\" +\n sampleLines[namePropDescriptor].replace(\n \" at new \",\n \" at \"\n );\n fn.displayName &&\n _frame.includes(\"<anonymous>\") &&\n (_frame = _frame.replace(\"<anonymous>\", fn.displayName));\n \"function\" === typeof fn &&\n componentFrameCache.set(fn, _frame);\n return _frame;\n }\n while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);\n }\n break;\n }\n }\n } finally {\n (reentry = !1),\n (ReactSharedInternals.H = previousDispatcher),\n reenableLogs(),\n (Error.prepareStackTrace = frame);\n }\n sampleLines = (sampleLines = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(sampleLines)\n : \"\";\n \"function\" === typeof fn && componentFrameCache.set(fn, sampleLines);\n return sampleLines;\n }\n function describeUnknownElementTypeFrameInDEV(type) {\n if (null == type) return \"\";\n if (\"function\" === typeof type) {\n var prototype = type.prototype;\n return describeNativeComponentFrame(\n type,\n !(!prototype || !prototype.isReactComponent)\n );\n }\n if (\"string\" === typeof type) return describeBuiltInComponentFrame(type);\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame(\"Suspense\");\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return (type = describeNativeComponentFrame(type.render, !1)), type;\n case REACT_MEMO_TYPE:\n return describeUnknownElementTypeFrameInDEV(type.type);\n case REACT_LAZY_TYPE:\n prototype = type._payload;\n type = type._init;\n try {\n return describeUnknownElementTypeFrameInDEV(type(prototype));\n } catch (x) {}\n }\n return \"\";\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, self, source, owner, props) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self\n ) {\n if (\n \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n type === REACT_OFFSCREEN_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE$1 ||\n void 0 !== type.getModuleId))\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren], type);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children, type);\n } else {\n children = \"\";\n if (\n void 0 === type ||\n (\"object\" === typeof type &&\n null !== type &&\n 0 === Object.keys(type).length)\n )\n children +=\n \" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\";\n null === type\n ? (isStaticChildren = \"null\")\n : isArrayImpl(type)\n ? (isStaticChildren = \"array\")\n : void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE\n ? ((isStaticChildren =\n \"<\" +\n (getComponentNameFromType(type.type) || \"Unknown\") +\n \" />\"),\n (children =\n \" Did you accidentally export a JSX literal instead of a component?\"))\n : (isStaticChildren = typeof type);\n console.error(\n \"React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",\n isStaticChildren,\n children\n );\n }\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(type, children, self, source, getOwner(), maybeKey);\n }\n function validateChildKeys(node, parentType) {\n if (\n \"object\" === typeof node &&\n node &&\n node.$$typeof !== REACT_CLIENT_REFERENCE\n )\n if (isArrayImpl(node))\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n isValidElement(child) && validateExplicitKey(child, parentType);\n }\n else if (isValidElement(node))\n node._store && (node._store.validated = 1);\n else if (\n (null === node || \"object\" !== typeof node\n ? (i = null)\n : ((i =\n (MAYBE_ITERATOR_SYMBOL && node[MAYBE_ITERATOR_SYMBOL]) ||\n node[\"@@iterator\"]),\n (i = \"function\" === typeof i ? i : null)),\n \"function\" === typeof i &&\n i !== node.entries &&\n ((i = i.call(node)), i !== node))\n )\n for (; !(node = i.next()).done; )\n isValidElement(node.value) &&\n validateExplicitKey(node.value, parentType);\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function validateExplicitKey(element, parentType) {\n if (\n element._store &&\n !element._store.validated &&\n null == element.key &&\n ((element._store.validated = 1),\n (parentType = getCurrentComponentErrorInfo(parentType)),\n !ownerHasKeyUseWarning[parentType])\n ) {\n ownerHasKeyUseWarning[parentType] = !0;\n var childOwner = \"\";\n element &&\n null != element._owner &&\n element._owner !== getOwner() &&\n ((childOwner = null),\n \"number\" === typeof element._owner.tag\n ? (childOwner = getComponentNameFromType(element._owner.type))\n : \"string\" === typeof element._owner.name &&\n (childOwner = element._owner.name),\n (childOwner = \" It was passed a child from \" + childOwner + \".\"));\n var prevGetCurrentStack = ReactSharedInternals.getCurrentStack;\n ReactSharedInternals.getCurrentStack = function () {\n var stack = describeUnknownElementTypeFrameInDEV(element.type);\n prevGetCurrentStack && (stack += prevGetCurrentStack() || \"\");\n return stack;\n };\n console.error(\n 'Each child in a list should have a unique \"key\" prop.%s%s See https://react.dev/link/warning-keys for more information.',\n parentType,\n childOwner\n );\n ReactSharedInternals.getCurrentStack = prevGetCurrentStack;\n }\n }\n function getCurrentComponentErrorInfo(parentType) {\n var info = \"\",\n owner = getOwner();\n owner &&\n (owner = getComponentNameFromType(owner.type)) &&\n (info = \"\\n\\nCheck the render method of `\" + owner + \"`.\");\n info ||\n ((parentType = getComponentNameFromType(parentType)) &&\n (info =\n \"\\n\\nCheck the top-level render call using <\" + parentType + \">.\"));\n return info;\n }\n var React = __webpack_require__(/*! next/dist/compiled/react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n REACT_CLIENT_REFERENCE$2 = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n assign = Object.assign,\n REACT_CLIENT_REFERENCE$1 = Symbol.for(\"react.client.reference\"),\n isArrayImpl = Array.isArray,\n disabledDepth = 0,\n prevLog,\n prevInfo,\n prevWarn,\n prevError,\n prevGroup,\n prevGroupCollapsed,\n prevGroupEnd;\n disabledLog.__reactDisabledLog = !0;\n var prefix,\n suffix,\n reentry = !1;\n var componentFrameCache = new (\n \"function\" === typeof WeakMap ? WeakMap : Map\n )();\n var REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var didWarnAboutKeySpread = {},\n ownerHasKeyUseWarning = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsxDEV = function (\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self\n ) {\n return jsxDEVImpl(type, config, maybeKey, isStaticChildren, source, self);\n };\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7QUFDYixLQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBLHdCQUF3QixXQUFXLGdCQUFnQjtBQUNuRCx5QkFBeUIsV0FBVyxpQkFBaUI7QUFDckQseUJBQXlCLFdBQVcsaUJBQWlCO0FBQ3JELDBCQUEwQixXQUFXLGtCQUFrQjtBQUN2RCwwQkFBMEIsV0FBVyxrQkFBa0I7QUFDdkQsbUNBQW1DLFdBQVcsMkJBQTJCO0FBQ3pFLDZCQUE2QixXQUFXLHFCQUFxQjtBQUM3RCxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkM7QUFDM0M7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1gsK0NBQStDLDZCQUE2QjtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxnQkFBZ0IsZ0RBQWdEO0FBQ2hFLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQSxnQ0FBZ0Msa0NBQWtDLE9BQU87QUFDekU7QUFDQSxnR0FBZ0csU0FBUyxVQUFVLHNGQUFzRixhQUFhLFVBQVUsVUFBVTtBQUMxTztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixpQkFBaUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIseUJBQXlCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUJBQU8sQ0FBQyxzR0FBMEI7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQSxJQUFJLGdCQUFnQjtBQUNwQixJQUFJLGNBQWM7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1qc3gtZGV2LXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXCJwcm9kdWN0aW9uXCIgIT09IHByb2Nlc3MuZW52Lk5PREVfRU5WICYmXG4gIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHtcbiAgICAgIGlmIChudWxsID09IHR5cGUpIHJldHVybiBudWxsO1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHJldHVybiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDJcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHR5cGUpIHJldHVybiB0eXBlO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJGcmFnbWVudFwiO1xuICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlBvcnRhbFwiO1xuICAgICAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiUHJvZmlsZXJcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN0cmljdE1vZGVcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlTGlzdFwiO1xuICAgICAgfVxuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICBzd2l0Y2ggKFxuICAgICAgICAgIChcIm51bWJlclwiID09PSB0eXBlb2YgdHlwZS50YWcgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKCkuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB0eXBlLiQkdHlwZW9mKVxuICAgICAgICApIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAodHlwZS5kaXNwbGF5TmFtZSB8fCBcIkNvbnRleHRcIikgKyBcIi5Qcm92aWRlclwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OU1VNRVJfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAodHlwZS5fY29udGV4dC5kaXNwbGF5TmFtZSB8fCBcIkNvbnRleHRcIikgKyBcIi5Db25zdW1lclwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgIHZhciBpbm5lclR5cGUgPSB0eXBlLnJlbmRlcjtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLmRpc3BsYXlOYW1lO1xuICAgICAgICAgICAgdHlwZSB8fFxuICAgICAgICAgICAgICAoKHR5cGUgPSBpbm5lclR5cGUuZGlzcGxheU5hbWUgfHwgaW5uZXJUeXBlLm5hbWUgfHwgXCJcIiksXG4gICAgICAgICAgICAgICh0eXBlID0gXCJcIiAhPT0gdHlwZSA/IFwiRm9yd2FyZFJlZihcIiArIHR5cGUgKyBcIilcIiA6IFwiRm9yd2FyZFJlZlwiKSk7XG4gICAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChpbm5lclR5cGUgPSB0eXBlLmRpc3BsYXlOYW1lIHx8IG51bGwpLFxuICAgICAgICAgICAgICBudWxsICE9PSBpbm5lclR5cGVcbiAgICAgICAgICAgICAgICA/IGlubmVyVHlwZVxuICAgICAgICAgICAgICAgIDogZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgXCJNZW1vXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICBpbm5lclR5cGUgPSB0eXBlLl9wYXlsb2FkO1xuICAgICAgICAgICAgdHlwZSA9IHR5cGUuX2luaXQ7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUoaW5uZXJUeXBlKSk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gXCJcIiArIHZhbHVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjaGVja0tleVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpO1xuICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gITE7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICEwO1xuICAgICAgfVxuICAgICAgaWYgKEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCkge1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBjb25zb2xlO1xuICAgICAgICB2YXIgSlNDb21waWxlcl90ZW1wX2NvbnN0ID0gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LmVycm9yO1xuICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwID1cbiAgICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgU3ltYm9sICYmXG4gICAgICAgICAgICBTeW1ib2wudG9TdHJpbmdUYWcgJiZcbiAgICAgICAgICAgIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10pIHx8XG4gICAgICAgICAgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fFxuICAgICAgICAgIFwiT2JqZWN0XCI7XG4gICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdC5jYWxsKFxuICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCxcbiAgICAgICAgICBcIlRoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIHVzaW5nIGl0IGhlcmUuXCIsXG4gICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkaXNhYmxlZExvZygpIHt9XG4gICAgZnVuY3Rpb24gZGlzYWJsZUxvZ3MoKSB7XG4gICAgICBpZiAoMCA9PT0gZGlzYWJsZWREZXB0aCkge1xuICAgICAgICBwcmV2TG9nID0gY29uc29sZS5sb2c7XG4gICAgICAgIHByZXZJbmZvID0gY29uc29sZS5pbmZvO1xuICAgICAgICBwcmV2V2FybiA9IGNvbnNvbGUud2FybjtcbiAgICAgICAgcHJldkVycm9yID0gY29uc29sZS5lcnJvcjtcbiAgICAgICAgcHJldkdyb3VwID0gY29uc29sZS5ncm91cDtcbiAgICAgICAgcHJldkdyb3VwQ29sbGFwc2VkID0gY29uc29sZS5ncm91cENvbGxhcHNlZDtcbiAgICAgICAgcHJldkdyb3VwRW5kID0gY29uc29sZS5ncm91cEVuZDtcbiAgICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgICAgICAgZW51bWVyYWJsZTogITAsXG4gICAgICAgICAgdmFsdWU6IGRpc2FibGVkTG9nLFxuICAgICAgICAgIHdyaXRhYmxlOiAhMFxuICAgICAgICB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgICAgaW5mbzogcHJvcHMsXG4gICAgICAgICAgbG9nOiBwcm9wcyxcbiAgICAgICAgICB3YXJuOiBwcm9wcyxcbiAgICAgICAgICBlcnJvcjogcHJvcHMsXG4gICAgICAgICAgZ3JvdXA6IHByb3BzLFxuICAgICAgICAgIGdyb3VwQ29sbGFwc2VkOiBwcm9wcyxcbiAgICAgICAgICBncm91cEVuZDogcHJvcHNcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBkaXNhYmxlZERlcHRoKys7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlZW5hYmxlTG9ncygpIHtcbiAgICAgIGRpc2FibGVkRGVwdGgtLTtcbiAgICAgIGlmICgwID09PSBkaXNhYmxlZERlcHRoKSB7XG4gICAgICAgIHZhciBwcm9wcyA9IHsgY29uZmlndXJhYmxlOiAhMCwgZW51bWVyYWJsZTogITAsIHdyaXRhYmxlOiAhMCB9O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhjb25zb2xlLCB7XG4gICAgICAgICAgbG9nOiBhc3NpZ24oe30sIHByb3BzLCB7IHZhbHVlOiBwcmV2TG9nIH0pLFxuICAgICAgICAgIGluZm86IGFzc2lnbih7fSwgcHJvcHMsIHsgdmFsdWU6IHByZXZJbmZvIH0pLFxuICAgICAgICAgIHdhcm46IGFzc2lnbih7fSwgcHJvcHMsIHsgdmFsdWU6IHByZXZXYXJuIH0pLFxuICAgICAgICAgIGVycm9yOiBhc3NpZ24oe30sIHByb3BzLCB7IHZhbHVlOiBwcmV2RXJyb3IgfSksXG4gICAgICAgICAgZ3JvdXA6IGFzc2lnbih7fSwgcHJvcHMsIHsgdmFsdWU6IHByZXZHcm91cCB9KSxcbiAgICAgICAgICBncm91cENvbGxhcHNlZDogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkdyb3VwQ29sbGFwc2VkIH0pLFxuICAgICAgICAgIGdyb3VwRW5kOiBhc3NpZ24oe30sIHByb3BzLCB7IHZhbHVlOiBwcmV2R3JvdXBFbmQgfSlcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICAwID4gZGlzYWJsZWREZXB0aCAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiZGlzYWJsZWREZXB0aCBmZWxsIGJlbG93IHplcm8uIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKG5hbWUpIHtcbiAgICAgIGlmICh2b2lkIDAgPT09IHByZWZpeClcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgdmFyIG1hdGNoID0geC5zdGFjay50cmltKCkubWF0Y2goL1xcbiggKihhdCApPykvKTtcbiAgICAgICAgICBwcmVmaXggPSAobWF0Y2ggJiYgbWF0Y2hbMV0pIHx8IFwiXCI7XG4gICAgICAgICAgc3VmZml4ID1cbiAgICAgICAgICAgIC0xIDwgeC5zdGFjay5pbmRleE9mKFwiXFxuICAgIGF0XCIpXG4gICAgICAgICAgICAgID8gXCIgKDxhbm9ueW1vdXM+KVwiXG4gICAgICAgICAgICAgIDogLTEgPCB4LnN0YWNrLmluZGV4T2YoXCJAXCIpXG4gICAgICAgICAgICAgICAgPyBcIkB1bmtub3duOjA6MFwiXG4gICAgICAgICAgICAgICAgOiBcIlwiO1xuICAgICAgICB9XG4gICAgICByZXR1cm4gXCJcXG5cIiArIHByZWZpeCArIG5hbWUgKyBzdWZmaXg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGNvbnN0cnVjdCkge1xuICAgICAgaWYgKCFmbiB8fCByZWVudHJ5KSByZXR1cm4gXCJcIjtcbiAgICAgIHZhciBmcmFtZSA9IGNvbXBvbmVudEZyYW1lQ2FjaGUuZ2V0KGZuKTtcbiAgICAgIGlmICh2b2lkIDAgIT09IGZyYW1lKSByZXR1cm4gZnJhbWU7XG4gICAgICByZWVudHJ5ID0gITA7XG4gICAgICBmcmFtZSA9IEVycm9yLnByZXBhcmVTdGFja1RyYWNlO1xuICAgICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSB2b2lkIDA7XG4gICAgICB2YXIgcHJldmlvdXNEaXNwYXRjaGVyID0gbnVsbDtcbiAgICAgIHByZXZpb3VzRGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gbnVsbDtcbiAgICAgIGRpc2FibGVMb2dzKCk7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgUnVuSW5Sb290RnJhbWUgPSB7XG4gICAgICAgICAgRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBpZiAoY29uc3RydWN0KSB7XG4gICAgICAgICAgICAgICAgdmFyIEZha2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZha2UucHJvdG90eXBlLCBcInByb3BzXCIsIHtcbiAgICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgUmVmbGVjdCAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgUmVmbGVjdC5jb25zdHJ1Y3QoRmFrZSwgW10pO1xuICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgY29udHJvbCA9IHg7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChmbiwgW10sIEZha2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBGYWtlLmNhbGwoKTtcbiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHgkMCkge1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sID0geCQwO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgZm4uY2FsbChGYWtlLnByb3RvdHlwZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHgkMSkge1xuICAgICAgICAgICAgICAgICAgY29udHJvbCA9IHgkMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKEZha2UgPSBmbigpKSAmJlxuICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgRmFrZS5jYXRjaCAmJlxuICAgICAgICAgICAgICAgICAgRmFrZS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKHNhbXBsZSkge1xuICAgICAgICAgICAgICBpZiAoc2FtcGxlICYmIGNvbnRyb2wgJiYgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHNhbXBsZS5zdGFjaylcbiAgICAgICAgICAgICAgICByZXR1cm4gW3NhbXBsZS5zdGFjaywgY29udHJvbC5zdGFja107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gW251bGwsIG51bGxdO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LmRpc3BsYXlOYW1lID1cbiAgICAgICAgICBcIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwiO1xuICAgICAgICB2YXIgbmFtZVByb3BEZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgICAgICAgICBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QsXG4gICAgICAgICAgXCJuYW1lXCJcbiAgICAgICAgKTtcbiAgICAgICAgbmFtZVByb3BEZXNjcmlwdG9yICYmXG4gICAgICAgICAgbmFtZVByb3BEZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSAmJlxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShcbiAgICAgICAgICAgIFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCxcbiAgICAgICAgICAgIFwibmFtZVwiLFxuICAgICAgICAgICAgeyB2YWx1ZTogXCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3RcIiB9XG4gICAgICAgICAgKTtcbiAgICAgICAgdmFyIF9SdW5JblJvb3RGcmFtZSREZXRlciA9XG4gICAgICAgICAgICBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QoKSxcbiAgICAgICAgICBzYW1wbGVTdGFjayA9IF9SdW5JblJvb3RGcmFtZSREZXRlclswXSxcbiAgICAgICAgICBjb250cm9sU3RhY2sgPSBfUnVuSW5Sb290RnJhbWUkRGV0ZXJbMV07XG4gICAgICAgIGlmIChzYW1wbGVTdGFjayAmJiBjb250cm9sU3RhY2spIHtcbiAgICAgICAgICB2YXIgc2FtcGxlTGluZXMgPSBzYW1wbGVTdGFjay5zcGxpdChcIlxcblwiKSxcbiAgICAgICAgICAgIGNvbnRyb2xMaW5lcyA9IGNvbnRyb2xTdGFjay5zcGxpdChcIlxcblwiKTtcbiAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgX1J1bkluUm9vdEZyYW1lJERldGVyID0gbmFtZVByb3BEZXNjcmlwdG9yID0gMDtcbiAgICAgICAgICAgIG5hbWVQcm9wRGVzY3JpcHRvciA8IHNhbXBsZUxpbmVzLmxlbmd0aCAmJlxuICAgICAgICAgICAgIXNhbXBsZUxpbmVzW25hbWVQcm9wRGVzY3JpcHRvcl0uaW5jbHVkZXMoXG4gICAgICAgICAgICAgIFwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290XCJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICApXG4gICAgICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3IrKztcbiAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgO1xuICAgICAgICAgICAgX1J1bkluUm9vdEZyYW1lJERldGVyIDwgY29udHJvbExpbmVzLmxlbmd0aCAmJlxuICAgICAgICAgICAgIWNvbnRyb2xMaW5lc1tfUnVuSW5Sb290RnJhbWUkRGV0ZXJdLmluY2x1ZGVzKFxuICAgICAgICAgICAgICBcIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwiXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgKVxuICAgICAgICAgICAgX1J1bkluUm9vdEZyYW1lJERldGVyKys7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgbmFtZVByb3BEZXNjcmlwdG9yID09PSBzYW1wbGVMaW5lcy5sZW5ndGggfHxcbiAgICAgICAgICAgIF9SdW5JblJvb3RGcmFtZSREZXRlciA9PT0gY29udHJvbExpbmVzLmxlbmd0aFxuICAgICAgICAgIClcbiAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgIG5hbWVQcm9wRGVzY3JpcHRvciA9IHNhbXBsZUxpbmVzLmxlbmd0aCAtIDEsXG4gICAgICAgICAgICAgICAgX1J1bkluUm9vdEZyYW1lJERldGVyID0gY29udHJvbExpbmVzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgIDEgPD0gbmFtZVByb3BEZXNjcmlwdG9yICYmXG4gICAgICAgICAgICAgIDAgPD0gX1J1bkluUm9vdEZyYW1lJERldGVyICYmXG4gICAgICAgICAgICAgIHNhbXBsZUxpbmVzW25hbWVQcm9wRGVzY3JpcHRvcl0gIT09XG4gICAgICAgICAgICAgICAgY29udHJvbExpbmVzW19SdW5JblJvb3RGcmFtZSREZXRlcl07XG5cbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgX1J1bkluUm9vdEZyYW1lJERldGVyLS07XG4gICAgICAgICAgZm9yIChcbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIDEgPD0gbmFtZVByb3BEZXNjcmlwdG9yICYmIDAgPD0gX1J1bkluUm9vdEZyYW1lJERldGVyO1xuICAgICAgICAgICAgbmFtZVByb3BEZXNjcmlwdG9yLS0sIF9SdW5JblJvb3RGcmFtZSREZXRlci0tXG4gICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBzYW1wbGVMaW5lc1tuYW1lUHJvcERlc2NyaXB0b3JdICE9PVxuICAgICAgICAgICAgICBjb250cm9sTGluZXNbX1J1bkluUm9vdEZyYW1lJERldGVyXVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGlmICgxICE9PSBuYW1lUHJvcERlc2NyaXB0b3IgfHwgMSAhPT0gX1J1bkluUm9vdEZyYW1lJERldGVyKSB7XG4gICAgICAgICAgICAgICAgZG9cbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKG5hbWVQcm9wRGVzY3JpcHRvci0tLFxuICAgICAgICAgICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXItLSxcbiAgICAgICAgICAgICAgICAgICAgMCA+IF9SdW5JblJvb3RGcmFtZSREZXRlciB8fFxuICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZUxpbmVzW25hbWVQcm9wRGVzY3JpcHRvcl0gIT09XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sTGluZXNbX1J1bkluUm9vdEZyYW1lJERldGVyXSlcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2ZyYW1lID1cbiAgICAgICAgICAgICAgICAgICAgICBcIlxcblwiICtcbiAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVMaW5lc1tuYW1lUHJvcERlc2NyaXB0b3JdLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiBhdCBuZXcgXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiBhdCBcIlxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGZuLmRpc3BsYXlOYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgX2ZyYW1lLmluY2x1ZGVzKFwiPGFub255bW91cz5cIikgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoX2ZyYW1lID0gX2ZyYW1lLnJlcGxhY2UoXCI8YW5vbnltb3VzPlwiLCBmbi5kaXNwbGF5TmFtZSkpO1xuICAgICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBmbiAmJlxuICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBfZnJhbWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2ZyYW1lO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdoaWxlICgxIDw9IG5hbWVQcm9wRGVzY3JpcHRvciAmJiAwIDw9IF9SdW5JblJvb3RGcmFtZSREZXRlcik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIChyZWVudHJ5ID0gITEpLFxuICAgICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldmlvdXNEaXNwYXRjaGVyKSxcbiAgICAgICAgICByZWVuYWJsZUxvZ3MoKSxcbiAgICAgICAgICAoRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBmcmFtZSk7XG4gICAgICB9XG4gICAgICBzYW1wbGVMaW5lcyA9IChzYW1wbGVMaW5lcyA9IGZuID8gZm4uZGlzcGxheU5hbWUgfHwgZm4ubmFtZSA6IFwiXCIpXG4gICAgICAgID8gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoc2FtcGxlTGluZXMpXG4gICAgICAgIDogXCJcIjtcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGZuICYmIGNvbXBvbmVudEZyYW1lQ2FjaGUuc2V0KGZuLCBzYW1wbGVMaW5lcyk7XG4gICAgICByZXR1cm4gc2FtcGxlTGluZXM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVih0eXBlKSB7XG4gICAgICBpZiAobnVsbCA9PSB0eXBlKSByZXR1cm4gXCJcIjtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKSB7XG4gICAgICAgIHZhciBwcm90b3R5cGUgPSB0eXBlLnByb3RvdHlwZTtcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICAhKCFwcm90b3R5cGUgfHwgIXByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlKSByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUodHlwZSk7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShcIlN1c3BlbnNlXCIpO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJTdXNwZW5zZUxpc3RcIik7XG4gICAgICB9XG4gICAgICBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAodHlwZSA9IGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUodHlwZS5yZW5kZXIsICExKSksIHR5cGU7XG4gICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUudHlwZSk7XG4gICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICBwcm90b3R5cGUgPSB0eXBlLl9wYXlsb2FkO1xuICAgICAgICAgICAgdHlwZSA9IHR5cGUuX2luaXQ7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUocHJvdG90eXBlKSk7XG4gICAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0T3duZXIoKSB7XG4gICAgICB2YXIgZGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkE7XG4gICAgICByZXR1cm4gbnVsbCA9PT0gZGlzcGF0Y2hlciA/IG51bGwgOiBkaXNwYXRjaGVyLmdldE93bmVyKCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhc1ZhbGlkS2V5KGNvbmZpZykge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBcImtleVwiKSkge1xuICAgICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsIFwia2V5XCIpLmdldDtcbiAgICAgICAgaWYgKGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmcpIHJldHVybiAhMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2b2lkIDAgIT09IGNvbmZpZy5rZXk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSkge1xuICAgICAgZnVuY3Rpb24gd2FybkFib3V0QWNjZXNzaW5nS2V5KCkge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biB8fFxuICAgICAgICAgICgoc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gPSAhMCksXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXM6IGBrZXlgIGlzIG5vdCBhIHByb3AuIFRyeWluZyB0byBhY2Nlc3MgaXQgd2lsbCByZXN1bHQgaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSB2YWx1ZSB3aXRoaW4gdGhlIGNoaWxkIGNvbXBvbmVudCwgeW91IHNob3VsZCBwYXNzIGl0IGFzIGEgZGlmZmVyZW50IHByb3AuIChodHRwczovL3JlYWN0LmRldi9saW5rL3NwZWNpYWwtcHJvcHMpXCIsXG4gICAgICAgICAgICBkaXNwbGF5TmFtZVxuICAgICAgICAgICkpO1xuICAgICAgfVxuICAgICAgd2FybkFib3V0QWNjZXNzaW5nS2V5LmlzUmVhY3RXYXJuaW5nID0gITA7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvcHMsIFwia2V5XCIsIHtcbiAgICAgICAgZ2V0OiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXksXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITBcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbGVtZW50UmVmR2V0dGVyV2l0aERlcHJlY2F0aW9uV2FybmluZygpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHRoaXMudHlwZSk7XG4gICAgICBkaWRXYXJuQWJvdXRFbGVtZW50UmVmW2NvbXBvbmVudE5hbWVdIHx8XG4gICAgICAgICgoZGlkV2FybkFib3V0RWxlbWVudFJlZltjb21wb25lbnROYW1lXSA9ICEwKSxcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkFjY2Vzc2luZyBlbGVtZW50LnJlZiB3YXMgcmVtb3ZlZCBpbiBSZWFjdCAxOS4gcmVmIGlzIG5vdyBhIHJlZ3VsYXIgcHJvcC4gSXQgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIEpTWCBFbGVtZW50IHR5cGUgaW4gYSBmdXR1cmUgcmVsZWFzZS5cIlxuICAgICAgICApKTtcbiAgICAgIGNvbXBvbmVudE5hbWUgPSB0aGlzLnByb3BzLnJlZjtcbiAgICAgIHJldHVybiB2b2lkIDAgIT09IGNvbXBvbmVudE5hbWUgPyBjb21wb25lbnROYW1lIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gUmVhY3RFbGVtZW50KHR5cGUsIGtleSwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcbiAgICAgIHNlbGYgPSBwcm9wcy5yZWY7XG4gICAgICB0eXBlID0ge1xuICAgICAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICBfb3duZXI6IG93bmVyXG4gICAgICB9O1xuICAgICAgbnVsbCAhPT0gKHZvaWQgMCAhPT0gc2VsZiA/IHNlbGYgOiBudWxsKVxuICAgICAgICA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcInJlZlwiLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgIGdldDogZWxlbWVudFJlZkdldHRlcldpdGhEZXByZWNhdGlvbldhcm5pbmdcbiAgICAgICAgICB9KVxuICAgICAgICA6IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcInJlZlwiLCB7IGVudW1lcmFibGU6ICExLCB2YWx1ZTogbnVsbCB9KTtcbiAgICAgIHR5cGUuX3N0b3JlID0ge307XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZS5fc3RvcmUsIFwidmFsaWRhdGVkXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IDBcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnSW5mb1wiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiBudWxsXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5mcmVlemUgJiYgKE9iamVjdC5mcmVlemUodHlwZS5wcm9wcyksIE9iamVjdC5mcmVlemUodHlwZSkpO1xuICAgICAgcmV0dXJuIHR5cGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGpzeERFVkltcGwoXG4gICAgICB0eXBlLFxuICAgICAgY29uZmlnLFxuICAgICAgbWF5YmVLZXksXG4gICAgICBpc1N0YXRpY0NoaWxkcmVuLFxuICAgICAgc291cmNlLFxuICAgICAgc2VsZlxuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSB8fFxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlIHx8XG4gICAgICAgIHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUgfHxcbiAgICAgICAgdHlwZSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRSB8fFxuICAgICAgICB0eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFIHx8XG4gICAgICAgIHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX1RZUEUgfHxcbiAgICAgICAgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFIHx8XG4gICAgICAgIHR5cGUgPT09IFJFQUNUX09GRlNDUkVFTl9UWVBFIHx8XG4gICAgICAgIChcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSAmJlxuICAgICAgICAgIG51bGwgIT09IHR5cGUgJiZcbiAgICAgICAgICAodHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFIHx8XG4gICAgICAgICAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHxcbiAgICAgICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NPTlRFWFRfVFlQRSB8fFxuICAgICAgICAgICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OU1VNRVJfVFlQRSB8fFxuICAgICAgICAgICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSB8fFxuICAgICAgICAgICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQxIHx8XG4gICAgICAgICAgICB2b2lkIDAgIT09IHR5cGUuZ2V0TW9kdWxlSWQpKVxuICAgICAgKSB7XG4gICAgICAgIHZhciBjaGlsZHJlbiA9IGNvbmZpZy5jaGlsZHJlbjtcbiAgICAgICAgaWYgKHZvaWQgMCAhPT0gY2hpbGRyZW4pXG4gICAgICAgICAgaWYgKGlzU3RhdGljQ2hpbGRyZW4pXG4gICAgICAgICAgICBpZiAoaXNBcnJheUltcGwoY2hpbGRyZW4pKSB7XG4gICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAgaXNTdGF0aWNDaGlsZHJlbiA9IDA7XG4gICAgICAgICAgICAgICAgaXNTdGF0aWNDaGlsZHJlbiA8IGNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpc1N0YXRpY0NoaWxkcmVuKytcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuW2lzU3RhdGljQ2hpbGRyZW5dLCB0eXBlKTtcbiAgICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZSAmJiBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcbiAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiUmVhY3QuanN4OiBTdGF0aWMgY2hpbGRyZW4gc2hvdWxkIGFsd2F5cyBiZSBhbiBhcnJheS4gWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiBVc2UgdGhlIEJhYmVsIHRyYW5zZm9ybSBpbnN0ZWFkLlwiXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgZWxzZSB2YWxpZGF0ZUNoaWxkS2V5cyhjaGlsZHJlbiwgdHlwZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjaGlsZHJlbiA9IFwiXCI7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB2b2lkIDAgPT09IHR5cGUgfHxcbiAgICAgICAgICAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgICAgIG51bGwgIT09IHR5cGUgJiZcbiAgICAgICAgICAgIDAgPT09IE9iamVjdC5rZXlzKHR5cGUpLmxlbmd0aClcbiAgICAgICAgKVxuICAgICAgICAgIGNoaWxkcmVuICs9XG4gICAgICAgICAgICBcIiBZb3UgbGlrZWx5IGZvcmdvdCB0byBleHBvcnQgeW91ciBjb21wb25lbnQgZnJvbSB0aGUgZmlsZSBpdCdzIGRlZmluZWQgaW4sIG9yIHlvdSBtaWdodCBoYXZlIG1peGVkIHVwIGRlZmF1bHQgYW5kIG5hbWVkIGltcG9ydHMuXCI7XG4gICAgICAgIG51bGwgPT09IHR5cGVcbiAgICAgICAgICA/IChpc1N0YXRpY0NoaWxkcmVuID0gXCJudWxsXCIpXG4gICAgICAgICAgOiBpc0FycmF5SW1wbCh0eXBlKVxuICAgICAgICAgICAgPyAoaXNTdGF0aWNDaGlsZHJlbiA9IFwiYXJyYXlcIilcbiAgICAgICAgICAgIDogdm9pZCAwICE9PSB0eXBlICYmIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgICAgICAgICA/ICgoaXNTdGF0aWNDaGlsZHJlbiA9XG4gICAgICAgICAgICAgICAgICBcIjxcIiArXG4gICAgICAgICAgICAgICAgICAoZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUudHlwZSkgfHwgXCJVbmtub3duXCIpICtcbiAgICAgICAgICAgICAgICAgIFwiIC8+XCIpLFxuICAgICAgICAgICAgICAgIChjaGlsZHJlbiA9XG4gICAgICAgICAgICAgICAgICBcIiBEaWQgeW91IGFjY2lkZW50YWxseSBleHBvcnQgYSBKU1ggbGl0ZXJhbCBpbnN0ZWFkIG9mIGEgY29tcG9uZW50P1wiKSlcbiAgICAgICAgICAgICAgOiAoaXNTdGF0aWNDaGlsZHJlbiA9IHR5cGVvZiB0eXBlKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlJlYWN0LmpzeDogdHlwZSBpcyBpbnZhbGlkIC0tIGV4cGVjdGVkIGEgc3RyaW5nIChmb3IgYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSBjb21wb25lbnRzKSBidXQgZ290OiAlcy4lc1wiLFxuICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgXCJrZXlcIikpIHtcbiAgICAgICAgY2hpbGRyZW4gPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSk7XG4gICAgICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoY29uZmlnKS5maWx0ZXIoZnVuY3Rpb24gKGspIHtcbiAgICAgICAgICByZXR1cm4gXCJrZXlcIiAhPT0gaztcbiAgICAgICAgfSk7XG4gICAgICAgIGlzU3RhdGljQ2hpbGRyZW4gPVxuICAgICAgICAgIDAgPCBrZXlzLmxlbmd0aFxuICAgICAgICAgICAgPyBcIntrZXk6IHNvbWVLZXksIFwiICsga2V5cy5qb2luKFwiOiAuLi4sIFwiKSArIFwiOiAuLi59XCJcbiAgICAgICAgICAgIDogXCJ7a2V5OiBzb21lS2V5fVwiO1xuICAgICAgICBkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY2hpbGRyZW4gKyBpc1N0YXRpY0NoaWxkcmVuXSB8fFxuICAgICAgICAgICgoa2V5cyA9XG4gICAgICAgICAgICAwIDwga2V5cy5sZW5ndGggPyBcIntcIiArIGtleXMuam9pbihcIjogLi4uLCBcIikgKyBcIjogLi4ufVwiIDogXCJ7fVwiKSxcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ0EgcHJvcHMgb2JqZWN0IGNvbnRhaW5pbmcgYSBcImtleVwiIHByb3AgaXMgYmVpbmcgc3ByZWFkIGludG8gSlNYOlxcbiAgbGV0IHByb3BzID0gJXM7XFxuICA8JXMgey4uLnByb3BzfSAvPlxcblJlYWN0IGtleXMgbXVzdCBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gSlNYIHdpdGhvdXQgdXNpbmcgc3ByZWFkOlxcbiAgbGV0IHByb3BzID0gJXM7XFxuICA8JXMga2V5PXtzb21lS2V5fSB7Li4ucHJvcHN9IC8+JyxcbiAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICAgIGtleXMsXG4gICAgICAgICAgICBjaGlsZHJlblxuICAgICAgICAgICksXG4gICAgICAgICAgKGRpZFdhcm5BYm91dEtleVNwcmVhZFtjaGlsZHJlbiArIGlzU3RhdGljQ2hpbGRyZW5dID0gITApKTtcbiAgICAgIH1cbiAgICAgIGNoaWxkcmVuID0gbnVsbDtcbiAgICAgIHZvaWQgMCAhPT0gbWF5YmVLZXkgJiZcbiAgICAgICAgKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24obWF5YmVLZXkpLCAoY2hpbGRyZW4gPSBcIlwiICsgbWF5YmVLZXkpKTtcbiAgICAgIGhhc1ZhbGlkS2V5KGNvbmZpZykgJiZcbiAgICAgICAgKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY29uZmlnLmtleSksIChjaGlsZHJlbiA9IFwiXCIgKyBjb25maWcua2V5KSk7XG4gICAgICBpZiAoXCJrZXlcIiBpbiBjb25maWcpIHtcbiAgICAgICAgbWF5YmVLZXkgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgcHJvcE5hbWUgaW4gY29uZmlnKVxuICAgICAgICAgIFwia2V5XCIgIT09IHByb3BOYW1lICYmIChtYXliZUtleVtwcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdKTtcbiAgICAgIH0gZWxzZSBtYXliZUtleSA9IGNvbmZpZztcbiAgICAgIGNoaWxkcmVuICYmXG4gICAgICAgIGRlZmluZUtleVByb3BXYXJuaW5nR2V0dGVyKFxuICAgICAgICAgIG1heWJlS2V5LFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGVcbiAgICAgICAgICAgID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgXCJVbmtub3duXCJcbiAgICAgICAgICAgIDogdHlwZVxuICAgICAgICApO1xuICAgICAgcmV0dXJuIFJlYWN0RWxlbWVudCh0eXBlLCBjaGlsZHJlbiwgc2VsZiwgc291cmNlLCBnZXRPd25lcigpLCBtYXliZUtleSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlQ2hpbGRLZXlzKG5vZGUsIHBhcmVudFR5cGUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIG5vZGUgJiZcbiAgICAgICAgbm9kZSAmJlxuICAgICAgICBub2RlLiQkdHlwZW9mICE9PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFXG4gICAgICApXG4gICAgICAgIGlmIChpc0FycmF5SW1wbChub2RlKSlcbiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBjaGlsZCA9IG5vZGVbaV07XG4gICAgICAgICAgICBpc1ZhbGlkRWxlbWVudChjaGlsZCkgJiYgdmFsaWRhdGVFeHBsaWNpdEtleShjaGlsZCwgcGFyZW50VHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc1ZhbGlkRWxlbWVudChub2RlKSlcbiAgICAgICAgICBub2RlLl9zdG9yZSAmJiAobm9kZS5fc3RvcmUudmFsaWRhdGVkID0gMSk7XG4gICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgIChudWxsID09PSBub2RlIHx8IFwib2JqZWN0XCIgIT09IHR5cGVvZiBub2RlXG4gICAgICAgICAgICA/IChpID0gbnVsbClcbiAgICAgICAgICAgIDogKChpID1cbiAgICAgICAgICAgICAgICAoTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG5vZGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSkgfHxcbiAgICAgICAgICAgICAgICBub2RlW1wiQEBpdGVyYXRvclwiXSksXG4gICAgICAgICAgICAgIChpID0gXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaSA/IGkgOiBudWxsKSksXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaSAmJlxuICAgICAgICAgICAgaSAhPT0gbm9kZS5lbnRyaWVzICYmXG4gICAgICAgICAgICAoKGkgPSBpLmNhbGwobm9kZSkpLCBpICE9PSBub2RlKSlcbiAgICAgICAgKVxuICAgICAgICAgIGZvciAoOyAhKG5vZGUgPSBpLm5leHQoKSkuZG9uZTsgKVxuICAgICAgICAgICAgaXNWYWxpZEVsZW1lbnQobm9kZS52YWx1ZSkgJiZcbiAgICAgICAgICAgICAgdmFsaWRhdGVFeHBsaWNpdEtleShub2RlLnZhbHVlLCBwYXJlbnRUeXBlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnQob2JqZWN0KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2Ygb2JqZWN0ICYmXG4gICAgICAgIG51bGwgIT09IG9iamVjdCAmJlxuICAgICAgICBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVFeHBsaWNpdEtleShlbGVtZW50LCBwYXJlbnRUeXBlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGVsZW1lbnQuX3N0b3JlICYmXG4gICAgICAgICFlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgJiZcbiAgICAgICAgbnVsbCA9PSBlbGVtZW50LmtleSAmJlxuICAgICAgICAoKGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCA9IDEpLFxuICAgICAgICAocGFyZW50VHlwZSA9IGdldEN1cnJlbnRDb21wb25lbnRFcnJvckluZm8ocGFyZW50VHlwZSkpLFxuICAgICAgICAhb3duZXJIYXNLZXlVc2VXYXJuaW5nW3BhcmVudFR5cGVdKVxuICAgICAgKSB7XG4gICAgICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1twYXJlbnRUeXBlXSA9ICEwO1xuICAgICAgICB2YXIgY2hpbGRPd25lciA9IFwiXCI7XG4gICAgICAgIGVsZW1lbnQgJiZcbiAgICAgICAgICBudWxsICE9IGVsZW1lbnQuX293bmVyICYmXG4gICAgICAgICAgZWxlbWVudC5fb3duZXIgIT09IGdldE93bmVyKCkgJiZcbiAgICAgICAgICAoKGNoaWxkT3duZXIgPSBudWxsKSxcbiAgICAgICAgICBcIm51bWJlclwiID09PSB0eXBlb2YgZWxlbWVudC5fb3duZXIudGFnXG4gICAgICAgICAgICA/IChjaGlsZE93bmVyID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGVsZW1lbnQuX293bmVyLnR5cGUpKVxuICAgICAgICAgICAgOiBcInN0cmluZ1wiID09PSB0eXBlb2YgZWxlbWVudC5fb3duZXIubmFtZSAmJlxuICAgICAgICAgICAgICAoY2hpbGRPd25lciA9IGVsZW1lbnQuX293bmVyLm5hbWUpLFxuICAgICAgICAgIChjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBjaGlsZE93bmVyICsgXCIuXCIpKTtcbiAgICAgICAgdmFyIHByZXZHZXRDdXJyZW50U3RhY2sgPSBSZWFjdFNoYXJlZEludGVybmFscy5nZXRDdXJyZW50U3RhY2s7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmdldEN1cnJlbnRTdGFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB2YXIgc3RhY2sgPSBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYoZWxlbWVudC50eXBlKTtcbiAgICAgICAgICBwcmV2R2V0Q3VycmVudFN0YWNrICYmIChzdGFjayArPSBwcmV2R2V0Q3VycmVudFN0YWNrKCkgfHwgXCJcIik7XG4gICAgICAgICAgcmV0dXJuIHN0YWNrO1xuICAgICAgICB9O1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJXMlcyBTZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay93YXJuaW5nLWtleXMgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyxcbiAgICAgICAgICBwYXJlbnRUeXBlLFxuICAgICAgICAgIGNoaWxkT3duZXJcbiAgICAgICAgKTtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuZ2V0Q3VycmVudFN0YWNrID0gcHJldkdldEN1cnJlbnRTdGFjaztcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q3VycmVudENvbXBvbmVudEVycm9ySW5mbyhwYXJlbnRUeXBlKSB7XG4gICAgICB2YXIgaW5mbyA9IFwiXCIsXG4gICAgICAgIG93bmVyID0gZ2V0T3duZXIoKTtcbiAgICAgIG93bmVyICYmXG4gICAgICAgIChvd25lciA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShvd25lci50eXBlKSkgJiZcbiAgICAgICAgKGluZm8gPSBcIlxcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGBcIiArIG93bmVyICsgXCJgLlwiKTtcbiAgICAgIGluZm8gfHxcbiAgICAgICAgKChwYXJlbnRUeXBlID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHBhcmVudFR5cGUpKSAmJlxuICAgICAgICAgIChpbmZvID1cbiAgICAgICAgICAgIFwiXFxuXFxuQ2hlY2sgdGhlIHRvcC1sZXZlbCByZW5kZXIgY2FsbCB1c2luZyA8XCIgKyBwYXJlbnRUeXBlICsgXCI+LlwiKSk7XG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9XG4gICAgdmFyIFJlYWN0ID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9yZWFjdFwiKSxcbiAgICAgIFJFQUNUX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKSxcbiAgICAgIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxcbiAgICAgIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksXG4gICAgICBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLFxuICAgICAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKTtcbiAgICBTeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIik7XG4gICAgdmFyIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIiksXG4gICAgICBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxcbiAgICAgIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksXG4gICAgICBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxcbiAgICAgIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpLFxuICAgICAgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Qub2Zmc2NyZWVuXCIpLFxuICAgICAgTUFZQkVfSVRFUkFUT1JfU1lNQk9MID0gU3ltYm9sLml0ZXJhdG9yLFxuICAgICAgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQyID0gU3ltYm9sLmZvcihcInJlYWN0LmNsaWVudC5yZWZlcmVuY2VcIiksXG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscyA9XG4gICAgICAgIFJlYWN0Ll9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxcbiAgICAgIGhhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxcbiAgICAgIGFzc2lnbiA9IE9iamVjdC5hc3NpZ24sXG4gICAgICBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDEgPSBTeW1ib2wuZm9yKFwicmVhY3QuY2xpZW50LnJlZmVyZW5jZVwiKSxcbiAgICAgIGlzQXJyYXlJbXBsID0gQXJyYXkuaXNBcnJheSxcbiAgICAgIGRpc2FibGVkRGVwdGggPSAwLFxuICAgICAgcHJldkxvZyxcbiAgICAgIHByZXZJbmZvLFxuICAgICAgcHJldldhcm4sXG4gICAgICBwcmV2RXJyb3IsXG4gICAgICBwcmV2R3JvdXAsXG4gICAgICBwcmV2R3JvdXBDb2xsYXBzZWQsXG4gICAgICBwcmV2R3JvdXBFbmQ7XG4gICAgZGlzYWJsZWRMb2cuX19yZWFjdERpc2FibGVkTG9nID0gITA7XG4gICAgdmFyIHByZWZpeCxcbiAgICAgIHN1ZmZpeCxcbiAgICAgIHJlZW50cnkgPSAhMTtcbiAgICB2YXIgY29tcG9uZW50RnJhbWVDYWNoZSA9IG5ldyAoXG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBXZWFrTWFwID8gV2Vha01hcCA6IE1hcFxuICAgICkoKTtcbiAgICB2YXIgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpLFxuICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd247XG4gICAgdmFyIGRpZFdhcm5BYm91dEVsZW1lbnRSZWYgPSB7fTtcbiAgICB2YXIgZGlkV2FybkFib3V0S2V5U3ByZWFkID0ge30sXG4gICAgICBvd25lckhhc0tleVVzZVdhcm5pbmcgPSB7fTtcbiAgICBleHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbiAgICBleHBvcnRzLmpzeERFViA9IGZ1bmN0aW9uIChcbiAgICAgIHR5cGUsXG4gICAgICBjb25maWcsXG4gICAgICBtYXliZUtleSxcbiAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICBzb3VyY2UsXG4gICAgICBzZWxmXG4gICAgKSB7XG4gICAgICByZXR1cm4ganN4REVWSW1wbCh0eXBlLCBjb25maWcsIG1heWJlS2V5LCBpc1N0YXRpY0NoaWxkcmVuLCBzb3VyY2UsIHNlbGYpO1xuICAgIH07XG4gIH0pKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js": +/*!******************************************************************!*\ + !*** ./node_modules/next/dist/compiled/react/jsx-dev-runtime.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-dev-runtime.development.js */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LWRldi1ydW50aW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSw4TEFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0L2pzeC1kZXYtcnVudGltZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLnByb2R1Y3Rpb24uanMnKTtcbn0gZWxzZSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PopChild: () => (/* binding */ PopChild)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/MotionConfigContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _utils_use_composed_ref_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/use-composed-ref.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs\");\n/* __next_internal_client_entry_do_not_use__ PopChild auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */ class PopChildMeasure extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent && this.props.pop !== false) {\n const parent = element.offsetParent;\n const parentWidth = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(parent) ? parent.offsetWidth || 0 : 0;\n const parentHeight = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(parent) ? parent.offsetHeight || 0 : 0;\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n size.right = parentWidth - size.width - size.left;\n size.bottom = parentHeight - size.height - size.top;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */ componentDidUpdate() {}\n render() {\n return this.props.children;\n }\n}\nfunction PopChild(param) {\n let { children, isPresent, anchorX, anchorY, root, pop } = param;\n var _children_props;\n _s();\n const id = (0,react__WEBPACK_IMPORTED_MODULE_1__.useId)();\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const size = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n });\n const { nonce } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_3__.MotionConfigContext);\n var _children_props_ref;\n /**\n * In React 19, refs are passed via props.ref instead of element.ref.\n * We check props.ref first (React 19) and fall back to element.ref (React 18).\n */ const childRef = (_children_props_ref = (_children_props = children.props) === null || _children_props === void 0 ? void 0 : _children_props.ref) !== null && _children_props_ref !== void 0 ? _children_props_ref : children === null || children === void 0 ? void 0 : children.ref;\n const composedRef = (0,_utils_use_composed_ref_mjs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(ref, childRef);\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */ (0,react__WEBPACK_IMPORTED_MODULE_1__.useInsertionEffect)({\n \"PopChild.useInsertionEffect\": ()=>{\n const { width, height, top, left, right, bottom } = size.current;\n if (isPresent || pop === false || !ref.current || !width || !height) return;\n const x = anchorX === \"left\" ? \"left: \".concat(left) : \"right: \".concat(right);\n const y = anchorY === \"bottom\" ? \"bottom: \".concat(bottom) : \"top: \".concat(top);\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce) style.nonce = nonce;\n const parent = root !== null && root !== void 0 ? root : document.head;\n parent.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule('\\n [data-motion-pop-id=\"'.concat(id, '\"] {\\n position: absolute !important;\\n width: ').concat(width, \"px !important;\\n height: \").concat(height, \"px !important;\\n \").concat(x, \"px !important;\\n \").concat(y, \"px !important;\\n }\\n \"));\n }\n return ({\n \"PopChild.useInsertionEffect\": ()=>{\n if (parent.contains(style)) {\n parent.removeChild(style);\n }\n }\n })[\"PopChild.useInsertionEffect\"];\n }\n }[\"PopChild.useInsertionEffect\"], [\n isPresent\n ]);\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PopChildMeasure, {\n isPresent: isPresent,\n childRef: ref,\n sizeRef: size,\n pop: pop,\n children: pop === false ? children : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(children, {\n ref: composedRef\n })\n });\n}\n_s(PopChild, \"QhKiIZwbt8eea+7alp/wi+bg3HI=\", false, function() {\n return [\n react__WEBPACK_IMPORTED_MODULE_1__.useId,\n _utils_use_composed_ref_mjs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs,\n react__WEBPACK_IMPORTED_MODULE_1__.useInsertionEffect\n ];\n});\n_c = PopChild;\n //# sourceMappingURL=PopChild.mjs.map\nvar _c;\n$RefreshReg$(_c, \"PopChild\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvUG9wQ2hpbGQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQ0E7OztDQUdHLEdBQ0g7SUFDSTs7O1lBR1E7WUFDQSx3RkFDSTtZQUVKLHlGQUNJOzs7O1lBTUo7WUFDQTtZQUNBO1lBQ0E7O1FBR0o7O0lBR0o7O0tBRUcsR0FDSDs7UUFHSTs7QUFFUDtBQUVlO1FBQUE7UUFnQlo7O0lBZkE7SUFDQTs7UUFFSTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7SUFDSDs7UUFNRDtJQUpBOzs7S0FHRyxHQUNIOztJQUtBOzs7Ozs7OztLQVFHOztZQUVDO1lBQ0E7WUFFQTtZQUNBOzs7WUFLQSxXQUFXO1lBRVg7WUFDQTtZQUVBO2dCQUNJOztZQVdKOytDQUFBO29CQUNJO3dCQUNJOztnQkFFUjs7UUFDSjtzQ0FBQTtRQUFBO0tBQUE7Ozs7OztrQ0FLWSx5QkFDQTtZQUFBO1FBQUE7SUFBQTtBQUdoQjtHQXZFZ0I7O1FBQ1o7Ozs7O0tBRFkiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9jb21wb25lbnRzL0FuaW1hdGVQcmVzZW5jZS9Qb3BDaGlsZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VJZCwgdXNlSW5zZXJ0aW9uRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBNb3Rpb25Db25maWdDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvTW90aW9uQ29uZmlnQ29udGV4dFwiXG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tIFwiLi4vLi4vdXRpbHMvdXNlLWNvbXBvc2VkLXJlZlwiXG5cbmludGVyZmFjZSBTaXplIHtcbiAgICB3aWR0aDogbnVtYmVyXG4gICAgaGVpZ2h0OiBudW1iZXJcbiAgICB0b3A6IG51bWJlclxuICAgIGxlZnQ6IG51bWJlclxuICAgIHJpZ2h0OiBudW1iZXJcbiAgICBib3R0b206IG51bWJlclxufVxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnRcbiAgICBpc1ByZXNlbnQ6IGJvb2xlYW5cbiAgICBhbmNob3JYPzogXCJsZWZ0XCIgfCBcInJpZ2h0XCJcbiAgICBhbmNob3JZPzogXCJ0b3BcIiB8IFwiYm90dG9tXCJcbiAgICByb290PzogSFRNTEVsZW1lbnQgfCBTaGFkb3dSb290XG4gICAgcG9wPzogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgTWVhc3VyZVByb3BzIGV4dGVuZHMgUHJvcHMge1xuICAgIGNoaWxkUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPlxuICAgIHNpemVSZWY6IFJlYWN0LlJlZk9iamVjdDxTaXplPlxufVxuXG4vKipcbiAqIE1lYXN1cmVtZW50IGZ1bmN0aW9uYWxpdHkgaGFzIHRvIGJlIHdpdGhpbiBhIHNlcGFyYXRlIGNvbXBvbmVudFxuICogdG8gbGV2ZXJhZ2Ugc25hcHNob3QgbGlmZWN5Y2xlLlxuICovXG5jbGFzcyBQb3BDaGlsZE1lYXN1cmUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8TWVhc3VyZVByb3BzPiB7XG4gICAgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzOiBNZWFzdXJlUHJvcHMpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMucHJvcHMuY2hpbGRSZWYuY3VycmVudFxuICAgICAgICBpZiAoZWxlbWVudCAmJiBwcmV2UHJvcHMuaXNQcmVzZW50ICYmICF0aGlzLnByb3BzLmlzUHJlc2VudCAmJiB0aGlzLnByb3BzLnBvcCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRXaWR0aCA9IGlzSFRNTEVsZW1lbnQocGFyZW50KVxuICAgICAgICAgICAgICAgID8gcGFyZW50Lm9mZnNldFdpZHRoIHx8IDBcbiAgICAgICAgICAgICAgICA6IDBcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudEhlaWdodCA9IGlzSFRNTEVsZW1lbnQocGFyZW50KVxuICAgICAgICAgICAgICAgID8gcGFyZW50Lm9mZnNldEhlaWdodCB8fCAwXG4gICAgICAgICAgICAgICAgOiAwXG5cbiAgICAgICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemVSZWYuY3VycmVudCFcbiAgICAgICAgICAgIHNpemUuaGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQgfHwgMFxuICAgICAgICAgICAgc2l6ZS53aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMFxuICAgICAgICAgICAgc2l6ZS50b3AgPSBlbGVtZW50Lm9mZnNldFRvcFxuICAgICAgICAgICAgc2l6ZS5sZWZ0ID0gZWxlbWVudC5vZmZzZXRMZWZ0XG4gICAgICAgICAgICBzaXplLnJpZ2h0ID0gcGFyZW50V2lkdGggLSBzaXplLndpZHRoIC0gc2l6ZS5sZWZ0XG4gICAgICAgICAgICBzaXplLmJvdHRvbSA9IHBhcmVudEhlaWdodCAtIHNpemUuaGVpZ2h0IC0gc2l6ZS50b3BcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVxdWlyZWQgd2l0aCBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSB0byBzdG9wIFJlYWN0IGNvbXBsYWluaW5nLlxuICAgICAqL1xuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHt9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gUG9wQ2hpbGQoeyBjaGlsZHJlbiwgaXNQcmVzZW50LCBhbmNob3JYLCBhbmNob3JZLCByb290LCBwb3AgfTogUHJvcHMpIHtcbiAgICBjb25zdCBpZCA9IHVzZUlkKClcbiAgICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQ+KG51bGwpXG4gICAgY29uc3Qgc2l6ZSA9IHVzZVJlZjxTaXplPih7XG4gICAgICAgIHdpZHRoOiAwLFxuICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgIGJvdHRvbTogMCxcbiAgICB9KVxuICAgIGNvbnN0IHsgbm9uY2UgfSA9IHVzZUNvbnRleHQoTW90aW9uQ29uZmlnQ29udGV4dClcbiAgICAvKipcbiAgICAgKiBJbiBSZWFjdCAxOSwgcmVmcyBhcmUgcGFzc2VkIHZpYSBwcm9wcy5yZWYgaW5zdGVhZCBvZiBlbGVtZW50LnJlZi5cbiAgICAgKiBXZSBjaGVjayBwcm9wcy5yZWYgZmlyc3QgKFJlYWN0IDE5KSBhbmQgZmFsbCBiYWNrIHRvIGVsZW1lbnQucmVmIChSZWFjdCAxOCkuXG4gICAgICovXG4gICAgY29uc3QgY2hpbGRSZWYgPVxuICAgICAgICAoY2hpbGRyZW4ucHJvcHMgYXMgeyByZWY/OiBSZWFjdC5SZWY8SFRNTEVsZW1lbnQ+IH0pPy5yZWYgPz9cbiAgICAgICAgKGNoaWxkcmVuIGFzIHVua25vd24gYXMgeyByZWY/OiBSZWFjdC5SZWY8SFRNTEVsZW1lbnQ+IH0pPy5yZWZcbiAgICBjb25zdCBjb21wb3NlZFJlZiA9IHVzZUNvbXBvc2VkUmVmcyhyZWYsIGNoaWxkUmVmKVxuXG4gICAgLyoqXG4gICAgICogV2UgY3JlYXRlIGFuZCBpbmplY3QgYSBzdHlsZSBibG9jayBzbyB3ZSBjYW4gYXBwbHkgdGhpcyBleHBsaWNpdFxuICAgICAqIHNpemluZyBpbiBhIG5vbi1kZXN0cnVjdGl2ZSBtYW5uZXIgYnkganVzdCBkZWxldGluZyB0aGUgc3R5bGUgYmxvY2suXG4gICAgICpcbiAgICAgKiBXZSBjYW4ndCBhcHBseSBzaXplIHZpYSByZW5kZXIgYXMgdGhlIG1lYXN1cmVtZW50IGhhcHBlbnNcbiAgICAgKiBpbiBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSAocG9zdC1yZW5kZXIpLCBsaWtld2lzZSBpZiB3ZSBhcHBseSB0aGVcbiAgICAgKiBzdHlsZXMgZGlyZWN0bHkgb24gdGhlIERPTSBub2RlLCB3ZSBtaWdodCBiZSBvdmVyd3JpdGluZ1xuICAgICAqIHN0eWxlcyBzZXQgdmlhIHRoZSBzdHlsZSBwcm9wLlxuICAgICAqL1xuICAgIHVzZUluc2VydGlvbkVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgdG9wLCBsZWZ0LCByaWdodCwgYm90dG9tIH0gPSBzaXplLmN1cnJlbnRcbiAgICAgICAgaWYgKGlzUHJlc2VudCB8fCBwb3AgPT09IGZhbHNlIHx8ICFyZWYuY3VycmVudCB8fCAhd2lkdGggfHwgIWhlaWdodCkgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgeCA9IGFuY2hvclggPT09IFwibGVmdFwiID8gYGxlZnQ6ICR7bGVmdH1gIDogYHJpZ2h0OiAke3JpZ2h0fWBcbiAgICAgICAgY29uc3QgeSA9IGFuY2hvclkgPT09IFwiYm90dG9tXCIgPyBgYm90dG9tOiAke2JvdHRvbX1gIDogYHRvcDogJHt0b3B9YFxuXG4gICAgICAgIHJlZi5jdXJyZW50LmRhdGFzZXQubW90aW9uUG9wSWQgPSBpZFxuXG4gICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpXG4gICAgICAgIGlmIChub25jZSkgc3R5bGUubm9uY2UgPSBub25jZVxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHJvb3QgPz8gZG9jdW1lbnQuaGVhZFxuICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoc3R5bGUpXG5cbiAgICAgICAgaWYgKHN0eWxlLnNoZWV0KSB7XG4gICAgICAgICAgICBzdHlsZS5zaGVldC5pbnNlcnRSdWxlKGBcbiAgICAgICAgICBbZGF0YS1tb3Rpb24tcG9wLWlkPVwiJHtpZH1cIl0ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogJHt3aWR0aH1weCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAke2hlaWdodH1weCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgJHt4fXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAke3l9cHggIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIGApXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHBhcmVudC5jb250YWlucyhzdHlsZSkpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQoc3R5bGUpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbaXNQcmVzZW50XSlcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxQb3BDaGlsZE1lYXN1cmUgaXNQcmVzZW50PXtpc1ByZXNlbnR9IGNoaWxkUmVmPXtyZWZ9IHNpemVSZWY9e3NpemV9IHBvcD17cG9wfT5cbiAgICAgICAgICAgIHtwb3AgPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgPyBjaGlsZHJlblxuICAgICAgICAgICAgICAgIDogUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuIGFzIGFueSwgeyByZWY6IGNvbXBvc2VkUmVmIH0pfVxuICAgICAgICA8L1BvcENoaWxkTWVhc3VyZT5cbiAgICApXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs": +/*!*****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PresenceChild: () => (/* binding */ PresenceChild)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* harmony import */ var _PopChild_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PopChild.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs\");\n/* __next_internal_client_entry_do_not_use__ PresenceChild auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\nconst PresenceChild = (param)=>{\n let { children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, anchorY, root } = param;\n _s();\n const presenceChildren = (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__.useConstant)(newChildrenMap);\n const id = (0,react__WEBPACK_IMPORTED_MODULE_1__.useId)();\n let isReusedContext = true;\n let context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"PresenceChild.useMemo[context]\": ()=>{\n isReusedContext = false;\n return {\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: ({\n \"PresenceChild.useMemo[context]\": (childId)=>{\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()){\n if (!isComplete) return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n }\n })[\"PresenceChild.useMemo[context]\"],\n register: ({\n \"PresenceChild.useMemo[context]\": (childId)=>{\n presenceChildren.set(childId, false);\n return ({\n \"PresenceChild.useMemo[context]\": ()=>presenceChildren.delete(childId)\n })[\"PresenceChild.useMemo[context]\"];\n }\n })[\"PresenceChild.useMemo[context]\"]\n };\n }\n }[\"PresenceChild.useMemo[context]\"], [\n isPresent,\n presenceChildren,\n onExitComplete\n ]);\n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */ if (presenceAffectsLayout && isReusedContext) {\n context = {\n ...context\n };\n }\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"PresenceChild.useMemo\": ()=>{\n presenceChildren.forEach({\n \"PresenceChild.useMemo\": (_, key)=>presenceChildren.set(key, false)\n }[\"PresenceChild.useMemo\"]);\n }\n }[\"PresenceChild.useMemo\"], [\n isPresent\n ]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */ react__WEBPACK_IMPORTED_MODULE_1__.useEffect({\n \"PresenceChild.useEffect\": ()=>{\n !isPresent && !presenceChildren.size && onExitComplete && onExitComplete();\n }\n }[\"PresenceChild.useEffect\"], [\n isPresent\n ]);\n children = (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PopChild_mjs__WEBPACK_IMPORTED_MODULE_3__.PopChild, {\n pop: mode === \"popLayout\",\n isPresent: isPresent,\n anchorX: anchorX,\n anchorY: anchorY,\n root: root,\n children: children\n });\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_4__.PresenceContext.Provider, {\n value: context,\n children: children\n });\n};\n_s(PresenceChild, \"LuJRAK72iQdFH7nv0cJ6ZjdNWv8=\", false, function() {\n return [\n _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__.useConstant,\n react__WEBPACK_IMPORTED_MODULE_1__.useId\n ];\n});\n_c = PresenceChild;\nfunction newChildrenMap() {\n return new Map();\n}\n //# sourceMappingURL=PresenceChild.mjs.map\nvar _c;\n$RefreshReg$(_c, \"PresenceChild\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvUHJlc2VuY2VDaGlsZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQXlCYTtRQUFBOztJQVlUO0lBQ0E7O0lBR0E7MENBQUE7Ozs7Ozs7Z0JBT1E7c0RBQUE7d0JBQ0k7OzRCQUdJLGlCQUFpQjs7Ozs7Z0JBS3pCO3NEQUFBO3dCQUNJOzs7Ozs7Ozs7Ozs7O0lBTVo7Ozs7S0FJRyxHQUNIO1FBQ0k7WUFBQTtRQUFBOzs7O1lBSUE7eUNBQUE7O1FBQ0o7Z0NBQUE7UUFBQTtLQUFBO0lBRUE7OztLQUdHLEdBQ0g7bUNBQUE7WUFDSSwwREFHSTtRQUNSO2tDQUFBO1FBQUE7S0FBQTtJQUVBO1FBQUE7UUFBQTtRQUFBO1FBQUE7UUFBQTtRQUFBO0lBQUE7SUFNQTtRQUFBO1FBQUE7SUFBQTtBQUtKO0dBMUVhOztRQVlUO1FBQ0E7OztLQWJTO0FBNEViOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvUHJlc2VuY2VDaGlsZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IHVzZUlkLCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7XG4gICAgUHJlc2VuY2VDb250ZXh0LFxuICAgIHR5cGUgUHJlc2VuY2VDb250ZXh0UHJvcHMsXG59IGZyb20gXCIuLi8uLi9jb250ZXh0L1ByZXNlbmNlQ29udGV4dFwiXG5pbXBvcnQgeyBWYXJpYW50TGFiZWxzIH0gZnJvbSBcIi4uLy4uL21vdGlvbi90eXBlc1wiXG5pbXBvcnQgeyB1c2VDb25zdGFudCB9IGZyb20gXCIuLi8uLi91dGlscy91c2UtY29uc3RhbnRcIlxuaW1wb3J0IHsgUG9wQ2hpbGQgfSBmcm9tIFwiLi9Qb3BDaGlsZFwiXG5cbmludGVyZmFjZSBQcmVzZW5jZUNoaWxkUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnRcbiAgICBpc1ByZXNlbnQ6IGJvb2xlYW5cbiAgICBvbkV4aXRDb21wbGV0ZT86ICgpID0+IHZvaWRcbiAgICBpbml0aWFsPzogZmFsc2UgfCBWYXJpYW50TGFiZWxzXG4gICAgY3VzdG9tPzogYW55XG4gICAgcHJlc2VuY2VBZmZlY3RzTGF5b3V0OiBib29sZWFuXG4gICAgbW9kZTogXCJzeW5jXCIgfCBcInBvcExheW91dFwiIHwgXCJ3YWl0XCJcbiAgICBhbmNob3JYPzogXCJsZWZ0XCIgfCBcInJpZ2h0XCJcbiAgICBhbmNob3JZPzogXCJ0b3BcIiB8IFwiYm90dG9tXCJcbiAgICByb290PzogSFRNTEVsZW1lbnQgfCBTaGFkb3dSb290XG59XG5cbmV4cG9ydCBjb25zdCBQcmVzZW5jZUNoaWxkID0gKHtcbiAgICBjaGlsZHJlbixcbiAgICBpbml0aWFsLFxuICAgIGlzUHJlc2VudCxcbiAgICBvbkV4aXRDb21wbGV0ZSxcbiAgICBjdXN0b20sXG4gICAgcHJlc2VuY2VBZmZlY3RzTGF5b3V0LFxuICAgIG1vZGUsXG4gICAgYW5jaG9yWCxcbiAgICBhbmNob3JZLFxuICAgIHJvb3Rcbn06IFByZXNlbmNlQ2hpbGRQcm9wcykgPT4ge1xuICAgIGNvbnN0IHByZXNlbmNlQ2hpbGRyZW4gPSB1c2VDb25zdGFudChuZXdDaGlsZHJlbk1hcClcbiAgICBjb25zdCBpZCA9IHVzZUlkKClcblxuICAgIGxldCBpc1JldXNlZENvbnRleHQgPSB0cnVlXG4gICAgbGV0IGNvbnRleHQgPSB1c2VNZW1vKCgpOiBQcmVzZW5jZUNvbnRleHRQcm9wcyA9PiB7XG4gICAgICAgIGlzUmV1c2VkQ29udGV4dCA9IGZhbHNlXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIGluaXRpYWwsXG4gICAgICAgICAgICBpc1ByZXNlbnQsXG4gICAgICAgICAgICBjdXN0b20sXG4gICAgICAgICAgICBvbkV4aXRDb21wbGV0ZTogKGNoaWxkSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHByZXNlbmNlQ2hpbGRyZW4uc2V0KGNoaWxkSWQsIHRydWUpXG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGlzQ29tcGxldGUgb2YgcHJlc2VuY2VDaGlsZHJlbi52YWx1ZXMoKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzQ29tcGxldGUpIHJldHVybiAvLyBjYW4gc3RvcCBzZWFyY2hpbmcgd2hlbiBhbnkgaXMgaW5jb21wbGV0ZVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlICYmIG9uRXhpdENvbXBsZXRlKClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWdpc3RlcjogKGNoaWxkSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHByZXNlbmNlQ2hpbGRyZW4uc2V0KGNoaWxkSWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiBwcmVzZW5jZUNoaWxkcmVuLmRlbGV0ZShjaGlsZElkKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgIH0sIFtpc1ByZXNlbnQsIHByZXNlbmNlQ2hpbGRyZW4sIG9uRXhpdENvbXBsZXRlXSlcblxuICAgIC8qKlxuICAgICAqIElmIHRoZSBwcmVzZW5jZSBvZiBhIGNoaWxkIGFmZmVjdHMgdGhlIGxheW91dCBvZiB0aGUgY29tcG9uZW50cyBhcm91bmQgaXQsXG4gICAgICogd2Ugd2FudCB0byBtYWtlIGEgbmV3IGNvbnRleHQgdmFsdWUgdG8gZW5zdXJlIHRoZXkgZ2V0IHJlLXJlbmRlcmVkXG4gICAgICogc28gdGhleSBjYW4gZGV0ZWN0IHRoYXQgbGF5b3V0IGNoYW5nZS5cbiAgICAgKi9cbiAgICBpZiAocHJlc2VuY2VBZmZlY3RzTGF5b3V0ICYmIGlzUmV1c2VkQ29udGV4dCkge1xuICAgICAgICBjb250ZXh0ID0geyAuLi5jb250ZXh0IH1cbiAgICB9XG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcHJlc2VuY2VDaGlsZHJlbi5mb3JFYWNoKChfLCBrZXkpID0+IHByZXNlbmNlQ2hpbGRyZW4uc2V0KGtleSwgZmFsc2UpKVxuICAgIH0sIFtpc1ByZXNlbnRdKVxuXG4gICAgLyoqXG4gICAgICogSWYgdGhlcmUncyBubyBgbW90aW9uYCBjb21wb25lbnRzIHRvIGZpcmUgZXhpdCBhbmltYXRpb25zLCB3ZSB3YW50IHRvIHJlbW92ZSB0aGlzXG4gICAgICogY29tcG9uZW50IGltbWVkaWF0ZWx5LlxuICAgICAqL1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICFpc1ByZXNlbnQgJiZcbiAgICAgICAgICAgICFwcmVzZW5jZUNoaWxkcmVuLnNpemUgJiZcbiAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlICYmXG4gICAgICAgICAgICBvbkV4aXRDb21wbGV0ZSgpXG4gICAgfSwgW2lzUHJlc2VudF0pXG5cbiAgICBjaGlsZHJlbiA9IChcbiAgICAgICAgPFBvcENoaWxkIHBvcD17bW9kZSA9PT0gXCJwb3BMYXlvdXRcIn0gaXNQcmVzZW50PXtpc1ByZXNlbnR9IGFuY2hvclg9e2FuY2hvclh9IGFuY2hvclk9e2FuY2hvcll9IHJvb3Q9e3Jvb3R9PlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1BvcENoaWxkPlxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxQcmVzZW5jZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHR9PlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1ByZXNlbmNlQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG59XG5cbmZ1bmN0aW9uIG5ld0NoaWxkcmVuTWFwKCk6IE1hcDxzdHJpbmcsIGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IE1hcCgpXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimatePresence: () => (/* binding */ AnimatePresence)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context/LayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* harmony import */ var _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/use-isomorphic-effect.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\");\n/* harmony import */ var _PresenceChild_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PresenceChild.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs\");\n/* harmony import */ var _use_presence_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-presence.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs\");\n/* __next_internal_client_entry_do_not_use__ AnimatePresence auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * <AnimatePresence>\n * {items.map(item => (\n * <motion.div\n * key={item.id}\n * initial={{ opacity: 0 }}\n * animate={{ opacity: 1 }}\n * exit={{ opacity: 0 }}\n * />\n * ))}\n * </AnimatePresence>\n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */ const AnimatePresence = (param)=>{\n let { children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = \"sync\", propagate = false, anchorX = \"left\", anchorY = \"top\", root } = param;\n _s();\n const [isParentPresent, safeToRemove] = (0,_use_presence_mjs__WEBPACK_IMPORTED_MODULE_2__.usePresence)(propagate);\n /**\n * Filter any children that aren't ReactElements. We can only track components\n * between renders with a props.key.\n */ const presentChildren = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"AnimatePresence.useMemo[presentChildren]\": ()=>(0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.onlyElements)(children)\n }[\"AnimatePresence.useMemo[presentChildren]\"], [\n children\n ]);\n /**\n * Track the keys of the currently rendered children. This is used to\n * determine which children are exiting.\n */ const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey);\n /**\n * If `initial={false}` we only want to pass this to components in the first render.\n */ const isInitialRender = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(true);\n /**\n * A ref containing the currently present children. When all exit animations\n * are complete, we use this to re-render the component with the latest children\n * *committed* rather than the latest children *rendered*.\n */ const pendingPresentChildren = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(presentChildren);\n /**\n * Track which exiting children have finished animating out.\n */ const exitComplete = (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_4__.useConstant)({\n \"AnimatePresence.useConstant[exitComplete]\": ()=>new Map()\n }[\"AnimatePresence.useConstant[exitComplete]\"]);\n /**\n * Track which components are currently processing exit to prevent duplicate processing.\n */ const exitingComponents = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(new Set());\n /**\n * Save children to render as React state. To ensure this component is concurrent-safe,\n * we check for exiting children via an effect.\n */ const [diffedChildren, setDiffedChildren] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(presentChildren);\n const [renderedChildren, setRenderedChildren] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(presentChildren);\n (0,_utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_5__.useIsomorphicLayoutEffect)({\n \"AnimatePresence.useIsomorphicLayoutEffect\": ()=>{\n isInitialRender.current = false;\n pendingPresentChildren.current = presentChildren;\n /**\n * Update complete status of exiting children.\n */ for(let i = 0; i < renderedChildren.length; i++){\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(renderedChildren[i]);\n if (!presentKeys.includes(key)) {\n if (exitComplete.get(key) !== true) {\n exitComplete.set(key, false);\n }\n } else {\n exitComplete.delete(key);\n exitingComponents.current.delete(key);\n }\n }\n }\n }[\"AnimatePresence.useIsomorphicLayoutEffect\"], [\n renderedChildren,\n presentKeys.length,\n presentKeys.join(\"-\")\n ]);\n const exitingChildren = [];\n if (presentChildren !== diffedChildren) {\n let nextChildren = [\n ...presentChildren\n ];\n /**\n * Loop through all the currently rendered components and decide which\n * are exiting.\n */ for(let i = 0; i < renderedChildren.length; i++){\n const child = renderedChildren[i];\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(child);\n if (!presentKeys.includes(key)) {\n nextChildren.splice(i, 0, child);\n exitingChildren.push(child);\n }\n }\n /**\n * If we're in \"wait\" mode, and we have exiting children, we want to\n * only render these until they've all exited.\n */ if (mode === \"wait\" && exitingChildren.length) {\n nextChildren = exitingChildren;\n }\n setRenderedChildren((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.onlyElements)(nextChildren));\n setDiffedChildren(presentChildren);\n /**\n * Early return to ensure once we've set state with the latest diffed\n * children, we can immediately re-render.\n */ return null;\n }\n if ( true && mode === \"wait\" && renderedChildren.length > 1) {\n console.warn('You\\'re attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.');\n }\n /**\n * If we've been provided a forceRender function by the LayoutGroupContext,\n * we can use it to force a re-render amongst all surrounding components once\n * all components have finished animating out.\n */ const { forceRender } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__.LayoutGroupContext);\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: renderedChildren.map((child)=>{\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(child);\n const isPresent = propagate && !isParentPresent ? false : presentChildren === renderedChildren || presentKeys.includes(key);\n const onExit = ()=>{\n if (exitingComponents.current.has(key)) {\n return;\n }\n exitingComponents.current.add(key);\n if (exitComplete.has(key)) {\n exitComplete.set(key, true);\n } else {\n return;\n }\n let isEveryExitComplete = true;\n exitComplete.forEach((isExitComplete)=>{\n if (!isExitComplete) isEveryExitComplete = false;\n });\n if (isEveryExitComplete) {\n forceRender === null || forceRender === void 0 ? void 0 : forceRender();\n setRenderedChildren(pendingPresentChildren.current);\n propagate && (safeToRemove === null || safeToRemove === void 0 ? void 0 : safeToRemove());\n onExitComplete && onExitComplete();\n }\n };\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PresenceChild_mjs__WEBPACK_IMPORTED_MODULE_7__.PresenceChild, {\n isPresent: isPresent,\n initial: !isInitialRender.current || initial ? undefined : false,\n custom: custom,\n presenceAffectsLayout: presenceAffectsLayout,\n mode: mode,\n root: root,\n onExitComplete: isPresent ? undefined : onExit,\n anchorX: anchorX,\n anchorY: anchorY,\n children: child\n }, key);\n })\n });\n};\n_s(AnimatePresence, \"te1emcPGxu5jrrIezZ9xAEMgBrg=\", false, function() {\n return [\n _use_presence_mjs__WEBPACK_IMPORTED_MODULE_2__.usePresence,\n _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_4__.useConstant,\n _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_5__.useIsomorphicLayoutEffect\n ];\n});\n_c = AnimatePresence;\n //# sourceMappingURL=index.mjs.map\nvar _c;\n$RefreshReg$(_c, \"AnimatePresence\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVlBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWdDRyxHQUNVO1FBQUE7OztJQWNUOzs7S0FHRyxHQUNIO29EQUFBO21EQUFBO1FBQUE7S0FBQTtJQUVBOzs7S0FHRyxHQUNIO0lBR0E7O0tBRUcsR0FDSDtJQUVBOzs7O0tBSUcsR0FDSDtJQUVBOztLQUVHOzs7SUFHSDs7S0FFRztJQUdIOzs7S0FHRzs7OztZQUtDO1lBQ0E7WUFFQTs7U0FFRyxHQUNIOzs7O3dCQUtZOzs7b0JBR0o7b0JBQ0E7OztRQUdaO29EQUFBO1FBQUE7UUFBQTtRQUFBO0tBQUE7O0lBSUE7UUFDSTtlQUFBO1NBQUE7UUFFQTs7O1NBR0csR0FDSDtZQUNJO1lBQ0E7OztnQkFJSTs7O1FBSVI7OztTQUdHOzs7UUFLSDs7UUFHQTs7O1NBR0csR0FDSDs7SUFHSixhQUVJLG1CQUNBO1FBRUE7O0lBS0o7Ozs7S0FJRzs7O1lBTVM7WUFFQSxrREFFUSxnREFFRTs7Ozs7Z0JBTU47Z0JBRUE7b0JBQ0k7Ozs7O2dCQU1KO29CQUNJO2dCQUNKOzs7b0JBSUk7b0JBRUE7OztZQUlSO1lBRUE7Z0JBQUE7Z0JBQUEsK0NBTWdCOzs7Ozs7Ozs7Ozs7QUFpQmhDO0dBaE1hOzs7Ozs7O0tBQUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9jb21wb25lbnRzL0FuaW1hdGVQcmVzZW5jZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTGF5b3V0R3JvdXBDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvTGF5b3V0R3JvdXBDb250ZXh0XCJcbmltcG9ydCB7IHVzZUNvbnN0YW50IH0gZnJvbSBcIi4uLy4uL3V0aWxzL3VzZS1jb25zdGFudFwiXG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSBcIi4uLy4uL3V0aWxzL3VzZS1pc29tb3JwaGljLWVmZmVjdFwiXG5pbXBvcnQgeyBQcmVzZW5jZUNoaWxkIH0gZnJvbSBcIi4vUHJlc2VuY2VDaGlsZFwiXG5pbXBvcnQgeyBBbmltYXRlUHJlc2VuY2VQcm9wcyB9IGZyb20gXCIuL3R5cGVzXCJcbmltcG9ydCB7IHVzZVByZXNlbmNlIH0gZnJvbSBcIi4vdXNlLXByZXNlbmNlXCJcbmltcG9ydCB7IENvbXBvbmVudEtleSwgZ2V0Q2hpbGRLZXksIG9ubHlFbGVtZW50cyB9IGZyb20gXCIuL3V0aWxzXCJcblxuLyoqXG4gKiBgQW5pbWF0ZVByZXNlbmNlYCBlbmFibGVzIHRoZSBhbmltYXRpb24gb2YgY29tcG9uZW50cyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIHRyZWUuXG4gKlxuICogV2hlbiBhZGRpbmcvcmVtb3ZpbmcgbW9yZSB0aGFuIGEgc2luZ2xlIGNoaWxkLCBldmVyeSBjaGlsZCAqKm11c3QqKiBiZSBnaXZlbiBhIHVuaXF1ZSBga2V5YCBwcm9wLlxuICpcbiAqIEFueSBgbW90aW9uYCBjb21wb25lbnRzIHRoYXQgaGF2ZSBhbiBgZXhpdGAgcHJvcGVydHkgZGVmaW5lZCB3aWxsIGFuaW1hdGUgb3V0IHdoZW4gcmVtb3ZlZCBmcm9tXG4gKiB0aGUgdHJlZS5cbiAqXG4gKiBgYGBqc3hcbiAqIGltcG9ydCB7IG1vdGlvbiwgQW5pbWF0ZVByZXNlbmNlIH0gZnJvbSAnZnJhbWVyLW1vdGlvbidcbiAqXG4gKiBleHBvcnQgY29uc3QgSXRlbXMgPSAoeyBpdGVtcyB9KSA9PiAoXG4gKiAgIDxBbmltYXRlUHJlc2VuY2U+XG4gKiAgICAge2l0ZW1zLm1hcChpdGVtID0+IChcbiAqICAgICAgIDxtb3Rpb24uZGl2XG4gKiAgICAgICAgIGtleT17aXRlbS5pZH1cbiAqICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gKiAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSB9fVxuICogICAgICAgICBleGl0PXt7IG9wYWNpdHk6IDAgfX1cbiAqICAgICAgIC8+XG4gKiAgICAgKSl9XG4gKiAgIDwvQW5pbWF0ZVByZXNlbmNlPlxuICogKVxuICogYGBgXG4gKlxuICogWW91IGNhbiBzZXF1ZW5jZSBleGl0IGFuaW1hdGlvbnMgdGhyb3VnaG91dCBhIHRyZWUgdXNpbmcgdmFyaWFudHMuXG4gKlxuICogSWYgYSBjaGlsZCBjb250YWlucyBtdWx0aXBsZSBgbW90aW9uYCBjb21wb25lbnRzIHdpdGggYGV4aXRgIHByb3BzLCBpdCB3aWxsIG9ubHkgdW5tb3VudCB0aGUgY2hpbGRcbiAqIG9uY2UgYWxsIGBtb3Rpb25gIGNvbXBvbmVudHMgaGF2ZSBmaW5pc2hlZCBhbmltYXRpbmcgb3V0LiBMaWtld2lzZSwgYW55IGNvbXBvbmVudHMgdXNpbmdcbiAqIGB1c2VQcmVzZW5jZWAgYWxsIG5lZWQgdG8gY2FsbCBgc2FmZVRvUmVtb3ZlYC5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBBbmltYXRlUHJlc2VuY2UgPSAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGN1c3RvbSxcbiAgICBpbml0aWFsID0gdHJ1ZSxcbiAgICBvbkV4aXRDb21wbGV0ZSxcbiAgICBwcmVzZW5jZUFmZmVjdHNMYXlvdXQgPSB0cnVlLFxuICAgIG1vZGUgPSBcInN5bmNcIixcbiAgICBwcm9wYWdhdGUgPSBmYWxzZSxcbiAgICBhbmNob3JYID0gXCJsZWZ0XCIsXG4gICAgYW5jaG9yWSA9IFwidG9wXCIsXG4gICAgcm9vdFxufTogUmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW48QW5pbWF0ZVByZXNlbmNlUHJvcHM+KSA9PiB7XG4gICAgY29uc3QgW2lzUGFyZW50UHJlc2VudCwgc2FmZVRvUmVtb3ZlXSA9IHVzZVByZXNlbmNlKHByb3BhZ2F0ZSlcblxuICAgIC8qKlxuICAgICAqIEZpbHRlciBhbnkgY2hpbGRyZW4gdGhhdCBhcmVuJ3QgUmVhY3RFbGVtZW50cy4gV2UgY2FuIG9ubHkgdHJhY2sgY29tcG9uZW50c1xuICAgICAqIGJldHdlZW4gcmVuZGVycyB3aXRoIGEgcHJvcHMua2V5LlxuICAgICAqL1xuICAgIGNvbnN0IHByZXNlbnRDaGlsZHJlbiA9IHVzZU1lbW8oKCkgPT4gb25seUVsZW1lbnRzKGNoaWxkcmVuKSwgW2NoaWxkcmVuXSlcblxuICAgIC8qKlxuICAgICAqIFRyYWNrIHRoZSBrZXlzIG9mIHRoZSBjdXJyZW50bHkgcmVuZGVyZWQgY2hpbGRyZW4uIFRoaXMgaXMgdXNlZCB0b1xuICAgICAqIGRldGVybWluZSB3aGljaCBjaGlsZHJlbiBhcmUgZXhpdGluZy5cbiAgICAgKi9cbiAgICBjb25zdCBwcmVzZW50S2V5cyA9XG4gICAgICAgIHByb3BhZ2F0ZSAmJiAhaXNQYXJlbnRQcmVzZW50ID8gW10gOiBwcmVzZW50Q2hpbGRyZW4ubWFwKGdldENoaWxkS2V5KVxuXG4gICAgLyoqXG4gICAgICogSWYgYGluaXRpYWw9e2ZhbHNlfWAgd2Ugb25seSB3YW50IHRvIHBhc3MgdGhpcyB0byBjb21wb25lbnRzIGluIHRoZSBmaXJzdCByZW5kZXIuXG4gICAgICovXG4gICAgY29uc3QgaXNJbml0aWFsUmVuZGVyID0gdXNlUmVmKHRydWUpXG5cbiAgICAvKipcbiAgICAgKiBBIHJlZiBjb250YWluaW5nIHRoZSBjdXJyZW50bHkgcHJlc2VudCBjaGlsZHJlbi4gV2hlbiBhbGwgZXhpdCBhbmltYXRpb25zXG4gICAgICogYXJlIGNvbXBsZXRlLCB3ZSB1c2UgdGhpcyB0byByZS1yZW5kZXIgdGhlIGNvbXBvbmVudCB3aXRoIHRoZSBsYXRlc3QgY2hpbGRyZW5cbiAgICAgKiAqY29tbWl0dGVkKiByYXRoZXIgdGhhbiB0aGUgbGF0ZXN0IGNoaWxkcmVuICpyZW5kZXJlZCouXG4gICAgICovXG4gICAgY29uc3QgcGVuZGluZ1ByZXNlbnRDaGlsZHJlbiA9IHVzZVJlZihwcmVzZW50Q2hpbGRyZW4pXG5cbiAgICAvKipcbiAgICAgKiBUcmFjayB3aGljaCBleGl0aW5nIGNoaWxkcmVuIGhhdmUgZmluaXNoZWQgYW5pbWF0aW5nIG91dC5cbiAgICAgKi9cbiAgICBjb25zdCBleGl0Q29tcGxldGUgPSB1c2VDb25zdGFudCgoKSA9PiBuZXcgTWFwPENvbXBvbmVudEtleSwgYm9vbGVhbj4oKSlcblxuICAgIC8qKlxuICAgICAqIFRyYWNrIHdoaWNoIGNvbXBvbmVudHMgYXJlIGN1cnJlbnRseSBwcm9jZXNzaW5nIGV4aXQgdG8gcHJldmVudCBkdXBsaWNhdGUgcHJvY2Vzc2luZy5cbiAgICAgKi9cbiAgICBjb25zdCBleGl0aW5nQ29tcG9uZW50cyA9IHVzZVJlZihuZXcgU2V0PENvbXBvbmVudEtleT4oKSlcblxuICAgIC8qKlxuICAgICAqIFNhdmUgY2hpbGRyZW4gdG8gcmVuZGVyIGFzIFJlYWN0IHN0YXRlLiBUbyBlbnN1cmUgdGhpcyBjb21wb25lbnQgaXMgY29uY3VycmVudC1zYWZlLFxuICAgICAqIHdlIGNoZWNrIGZvciBleGl0aW5nIGNoaWxkcmVuIHZpYSBhbiBlZmZlY3QuXG4gICAgICovXG4gICAgY29uc3QgW2RpZmZlZENoaWxkcmVuLCBzZXREaWZmZWRDaGlsZHJlbl0gPSB1c2VTdGF0ZShwcmVzZW50Q2hpbGRyZW4pXG4gICAgY29uc3QgW3JlbmRlcmVkQ2hpbGRyZW4sIHNldFJlbmRlcmVkQ2hpbGRyZW5dID0gdXNlU3RhdGUocHJlc2VudENoaWxkcmVuKVxuXG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlzSW5pdGlhbFJlbmRlci5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgcGVuZGluZ1ByZXNlbnRDaGlsZHJlbi5jdXJyZW50ID0gcHJlc2VudENoaWxkcmVuXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVwZGF0ZSBjb21wbGV0ZSBzdGF0dXMgb2YgZXhpdGluZyBjaGlsZHJlbi5cbiAgICAgICAgICovXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVuZGVyZWRDaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gZ2V0Q2hpbGRLZXkocmVuZGVyZWRDaGlsZHJlbltpXSlcblxuICAgICAgICAgICAgaWYgKCFwcmVzZW50S2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGV4aXRDb21wbGV0ZS5nZXQoa2V5KSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICBleGl0Q29tcGxldGUuc2V0KGtleSwgZmFsc2UpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBleGl0Q29tcGxldGUuZGVsZXRlKGtleSlcbiAgICAgICAgICAgICAgICBleGl0aW5nQ29tcG9uZW50cy5jdXJyZW50LmRlbGV0ZShrZXkpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbcmVuZGVyZWRDaGlsZHJlbiwgcHJlc2VudEtleXMubGVuZ3RoLCBwcmVzZW50S2V5cy5qb2luKFwiLVwiKV0pXG5cbiAgICBjb25zdCBleGl0aW5nQ2hpbGRyZW46IGFueVtdID0gW11cblxuICAgIGlmIChwcmVzZW50Q2hpbGRyZW4gIT09IGRpZmZlZENoaWxkcmVuKSB7XG4gICAgICAgIGxldCBuZXh0Q2hpbGRyZW4gPSBbLi4ucHJlc2VudENoaWxkcmVuXVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMb29wIHRocm91Z2ggYWxsIHRoZSBjdXJyZW50bHkgcmVuZGVyZWQgY29tcG9uZW50cyBhbmQgZGVjaWRlIHdoaWNoXG4gICAgICAgICAqIGFyZSBleGl0aW5nLlxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZW5kZXJlZENoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZCA9IHJlbmRlcmVkQ2hpbGRyZW5baV1cbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGdldENoaWxkS2V5KGNoaWxkKVxuXG4gICAgICAgICAgICBpZiAoIXByZXNlbnRLZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICAgICAgICBuZXh0Q2hpbGRyZW4uc3BsaWNlKGksIDAsIGNoaWxkKVxuICAgICAgICAgICAgICAgIGV4aXRpbmdDaGlsZHJlbi5wdXNoKGNoaWxkKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHdlJ3JlIGluIFwid2FpdFwiIG1vZGUsIGFuZCB3ZSBoYXZlIGV4aXRpbmcgY2hpbGRyZW4sIHdlIHdhbnQgdG9cbiAgICAgICAgICogb25seSByZW5kZXIgdGhlc2UgdW50aWwgdGhleSd2ZSBhbGwgZXhpdGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG1vZGUgPT09IFwid2FpdFwiICYmIGV4aXRpbmdDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIG5leHRDaGlsZHJlbiA9IGV4aXRpbmdDaGlsZHJlblxuICAgICAgICB9XG5cbiAgICAgICAgc2V0UmVuZGVyZWRDaGlsZHJlbihvbmx5RWxlbWVudHMobmV4dENoaWxkcmVuKSlcbiAgICAgICAgc2V0RGlmZmVkQ2hpbGRyZW4ocHJlc2VudENoaWxkcmVuKVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBFYXJseSByZXR1cm4gdG8gZW5zdXJlIG9uY2Ugd2UndmUgc2V0IHN0YXRlIHdpdGggdGhlIGxhdGVzdCBkaWZmZWRcbiAgICAgICAgICogY2hpbGRyZW4sIHdlIGNhbiBpbW1lZGlhdGVseSByZS1yZW5kZXIuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGlmIChcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmXG4gICAgICAgIG1vZGUgPT09IFwid2FpdFwiICYmXG4gICAgICAgIHJlbmRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMVxuICAgICkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgWW91J3JlIGF0dGVtcHRpbmcgdG8gYW5pbWF0ZSBtdWx0aXBsZSBjaGlsZHJlbiB3aXRoaW4gQW5pbWF0ZVByZXNlbmNlLCBidXQgaXRzIG1vZGUgaXMgc2V0IHRvIFwid2FpdFwiLiBUaGlzIHdpbGwgbGVhZCB0byBvZGQgdmlzdWFsIGJlaGF2aW91ci5gXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB3ZSd2ZSBiZWVuIHByb3ZpZGVkIGEgZm9yY2VSZW5kZXIgZnVuY3Rpb24gYnkgdGhlIExheW91dEdyb3VwQ29udGV4dCxcbiAgICAgKiB3ZSBjYW4gdXNlIGl0IHRvIGZvcmNlIGEgcmUtcmVuZGVyIGFtb25nc3QgYWxsIHN1cnJvdW5kaW5nIGNvbXBvbmVudHMgb25jZVxuICAgICAqIGFsbCBjb21wb25lbnRzIGhhdmUgZmluaXNoZWQgYW5pbWF0aW5nIG91dC5cbiAgICAgKi9cbiAgICBjb25zdCB7IGZvcmNlUmVuZGVyIH0gPSB1c2VDb250ZXh0KExheW91dEdyb3VwQ29udGV4dClcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICB7cmVuZGVyZWRDaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZ2V0Q2hpbGRLZXkoY2hpbGQpXG5cbiAgICAgICAgICAgICAgICBjb25zdCBpc1ByZXNlbnQgPVxuICAgICAgICAgICAgICAgICAgICBwcm9wYWdhdGUgJiYgIWlzUGFyZW50UHJlc2VudFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwcmVzZW50Q2hpbGRyZW4gPT09IHJlbmRlcmVkQ2hpbGRyZW4gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2VudEtleXMuaW5jbHVkZXMoa2V5KVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgb25FeGl0ID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXhpdGluZ0NvbXBvbmVudHMuY3VycmVudC5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXhpdGluZ0NvbXBvbmVudHMuY3VycmVudC5hZGQoa2V5KVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChleGl0Q29tcGxldGUuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4aXRDb21wbGV0ZS5zZXQoa2V5LCB0cnVlKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgaXNFdmVyeUV4aXRDb21wbGV0ZSA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgZXhpdENvbXBsZXRlLmZvckVhY2goKGlzRXhpdENvbXBsZXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRXhpdENvbXBsZXRlKSBpc0V2ZXJ5RXhpdENvbXBsZXRlID0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNFdmVyeUV4aXRDb21wbGV0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VSZW5kZXI/LigpXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRSZW5kZXJlZENoaWxkcmVuKHBlbmRpbmdQcmVzZW50Q2hpbGRyZW4uY3VycmVudClcblxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGFnYXRlICYmIHNhZmVUb1JlbW92ZT8uKClcblxuICAgICAgICAgICAgICAgICAgICAgICAgb25FeGl0Q29tcGxldGUgJiYgb25FeGl0Q29tcGxldGUoKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPFByZXNlbmNlQ2hpbGRcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgaXNQcmVzZW50PXtpc1ByZXNlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaXNJbml0aWFsUmVuZGVyLmN1cnJlbnQgfHwgaW5pdGlhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXN0b209e2N1c3RvbX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXNlbmNlQWZmZWN0c0xheW91dD17cHJlc2VuY2VBZmZlY3RzTGF5b3V0fVxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZT17bW9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3Q9e3Jvb3R9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkV4aXRDb21wbGV0ZT17aXNQcmVzZW50ID8gdW5kZWZpbmVkIDogb25FeGl0fVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yWD17YW5jaG9yWH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvclk9e2FuY2hvcll9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZH1cbiAgICAgICAgICAgICAgICAgICAgPC9QcmVzZW5jZUNoaWxkPlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICA8Lz5cbiAgICApXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPresent: () => (/* binding */ isPresent),\n/* harmony export */ useIsPresent: () => (/* binding */ useIsPresent),\n/* harmony export */ usePresence: () => (/* binding */ usePresence)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* __next_internal_client_entry_do_not_use__ isPresent,useIsPresent,usePresence auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$();\n\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed from the tree,\n * but `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */ function usePresence() {\n let subscribe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;\n _s();\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__.PresenceContext);\n if (context === null) return [\n true,\n null\n ];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"usePresence.useEffect\": ()=>{\n if (subscribe) {\n return register(id);\n }\n }\n }[\"usePresence.useEffect\"], [\n subscribe\n ]);\n const safeToRemove = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"usePresence.useCallback[safeToRemove]\": ()=>subscribe && onExitComplete && onExitComplete(id)\n }[\"usePresence.useCallback[safeToRemove]\"], [\n id,\n onExitComplete,\n subscribe\n ]);\n return !isPresent && onExitComplete ? [\n false,\n safeToRemove\n ] : [\n true\n ];\n}\n_s(usePresence, \"GY2Qss37g7I0L0lHt/6OFO+hjmE=\", false, function() {\n return [\n react__WEBPACK_IMPORTED_MODULE_0__.useId\n ];\n});\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * @public\n */ function useIsPresent() {\n _s1();\n return isPresent((0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__.PresenceContext));\n}\n_s1(useIsPresent, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n //# sourceMappingURL=use-presence.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvdXNlLXByZXNlbmNlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWdCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCRyxHQUNhO1FBQUE7O0lBR1o7MEJBRXNCO1FBQUE7UUFBQTtLQUFBOzs7O0lBT3RCOzs7O2dCQUdROztRQUVSO2dDQUFBO1FBQUE7S0FBQTs7Ozs7Ozs7SUFPQTtRQUFBO1FBQUE7S0FBQTtRQUFBO0tBQUE7QUFDSjtHQXpCZ0I7O1FBWVo7OztBQWVKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUJHOztJQUVDO0FBQ0o7O0FBRU07SUFDRjtBQUNKIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvdXNlLXByZXNlbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZUlkIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7XG4gICAgUHJlc2VuY2VDb250ZXh0LFxuICAgIFByZXNlbmNlQ29udGV4dFByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29udGV4dC9QcmVzZW5jZUNvbnRleHRcIlxuXG5leHBvcnQgdHlwZSBTYWZlVG9SZW1vdmUgPSAoKSA9PiB2b2lkXG5cbnR5cGUgQWx3YXlzUHJlc2VudCA9IFt0cnVlLCBudWxsXVxuXG50eXBlIFByZXNlbnQgPSBbdHJ1ZV1cblxudHlwZSBOb3RQcmVzZW50ID0gW2ZhbHNlLCBTYWZlVG9SZW1vdmVdXG5cbi8qKlxuICogV2hlbiBhIGNvbXBvbmVudCBpcyB0aGUgY2hpbGQgb2YgYEFuaW1hdGVQcmVzZW5jZWAsIGl0IGNhbiB1c2UgYHVzZVByZXNlbmNlYFxuICogdG8gYWNjZXNzIGluZm9ybWF0aW9uIGFib3V0IHdoZXRoZXIgaXQncyBzdGlsbCBwcmVzZW50IGluIHRoZSBSZWFjdCB0cmVlLlxuICpcbiAqIGBgYGpzeFxuICogaW1wb3J0IHsgdXNlUHJlc2VuY2UgfSBmcm9tIFwiZnJhbWVyLW1vdGlvblwiXG4gKlxuICogZXhwb3J0IGNvbnN0IENvbXBvbmVudCA9ICgpID0+IHtcbiAqICAgY29uc3QgW2lzUHJlc2VudCwgc2FmZVRvUmVtb3ZlXSA9IHVzZVByZXNlbmNlKClcbiAqXG4gKiAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gKiAgICAgIWlzUHJlc2VudCAmJiBzZXRUaW1lb3V0KHNhZmVUb1JlbW92ZSwgMTAwMClcbiAqICAgfSwgW2lzUHJlc2VudF0pXG4gKlxuICogICByZXR1cm4gPGRpdiAvPlxuICogfVxuICogYGBgXG4gKlxuICogSWYgYGlzUHJlc2VudGAgaXMgYGZhbHNlYCwgaXQgbWVhbnMgdGhhdCBhIGNvbXBvbmVudCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHRyZWUsXG4gKiBidXQgYEFuaW1hdGVQcmVzZW5jZWAgd29uJ3QgcmVhbGx5IHJlbW92ZSBpdCB1bnRpbCBgc2FmZVRvUmVtb3ZlYCBoYXMgYmVlbiBjYWxsZWQuXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUHJlc2VuY2UoXG4gICAgc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZVxuKTogQWx3YXlzUHJlc2VudCB8IFByZXNlbnQgfCBOb3RQcmVzZW50IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChQcmVzZW5jZUNvbnRleHQpXG5cbiAgICBpZiAoY29udGV4dCA9PT0gbnVsbCkgcmV0dXJuIFt0cnVlLCBudWxsXVxuXG4gICAgY29uc3QgeyBpc1ByZXNlbnQsIG9uRXhpdENvbXBsZXRlLCByZWdpc3RlciB9ID0gY29udGV4dFxuXG4gICAgLy8gSXQncyBzYWZlIHRvIGNhbGwgdGhlIGZvbGxvd2luZyBob29rcyBjb25kaXRpb25hbGx5IChhZnRlciBhbiBlYXJseSByZXR1cm4pIGJlY2F1c2UgdGhlIGNvbnRleHQgd2lsbCBhbHdheXNcbiAgICAvLyBlaXRoZXIgYmUgbnVsbCBvciBub24tbnVsbCBmb3IgdGhlIGxpZmVzcGFuIG9mIHRoZSBjb21wb25lbnQuXG5cbiAgICBjb25zdCBpZCA9IHVzZUlkKClcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoc3Vic2NyaWJlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVnaXN0ZXIoaWQpXG4gICAgICAgIH1cbiAgICB9LCBbc3Vic2NyaWJlXSlcblxuICAgIGNvbnN0IHNhZmVUb1JlbW92ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAoKSA9PiBzdWJzY3JpYmUgJiYgb25FeGl0Q29tcGxldGUgJiYgb25FeGl0Q29tcGxldGUoaWQpLFxuICAgICAgICBbaWQsIG9uRXhpdENvbXBsZXRlLCBzdWJzY3JpYmVdXG4gICAgKVxuXG4gICAgcmV0dXJuICFpc1ByZXNlbnQgJiYgb25FeGl0Q29tcGxldGUgPyBbZmFsc2UsIHNhZmVUb1JlbW92ZV0gOiBbdHJ1ZV1cbn1cblxuLyoqXG4gKiBTaW1pbGFyIHRvIGB1c2VQcmVzZW5jZWAsIGV4Y2VwdCBgdXNlSXNQcmVzZW50YCBzaW1wbHkgcmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgY29tcG9uZW50IGlzIHByZXNlbnQuXG4gKiBUaGVyZSBpcyBubyBgc2FmZVRvUmVtb3ZlYCBmdW5jdGlvbi5cbiAqXG4gKiBgYGBqc3hcbiAqIGltcG9ydCB7IHVzZUlzUHJlc2VudCB9IGZyb20gXCJmcmFtZXItbW90aW9uXCJcbiAqXG4gKiBleHBvcnQgY29uc3QgQ29tcG9uZW50ID0gKCkgPT4ge1xuICogICBjb25zdCBpc1ByZXNlbnQgPSB1c2VJc1ByZXNlbnQoKVxuICpcbiAqICAgdXNlRWZmZWN0KCgpID0+IHtcbiAqICAgICAhaXNQcmVzZW50ICYmIGNvbnNvbGUubG9nKFwiSSd2ZSBiZWVuIHJlbW92ZWQhXCIpXG4gKiAgIH0sIFtpc1ByZXNlbnRdKVxuICpcbiAqICAgcmV0dXJuIDxkaXYgLz5cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUlzUHJlc2VudCgpIHtcbiAgICByZXR1cm4gaXNQcmVzZW50KHVzZUNvbnRleHQoUHJlc2VuY2VDb250ZXh0KSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJlc2VudChjb250ZXh0OiBQcmVzZW5jZUNvbnRleHRQcm9wcyB8IG51bGwpIHtcbiAgICByZXR1cm4gY29udGV4dCA9PT0gbnVsbCA/IHRydWUgOiBjb250ZXh0LmlzUHJlc2VudFxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getChildKey: () => (/* binding */ getChildKey),\n/* harmony export */ onlyElements: () => (/* binding */ onlyElements)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\nconst getChildKey = (child) => child.key || \"\";\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n react__WEBPACK_IMPORTED_MODULE_0__.Children.forEach(children, (child) => {\n if ((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(child))\n filtered.push(child);\n });\n return filtered;\n}\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvdXRpbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFpRDs7QUFFakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLDJDQUFRO0FBQ1osWUFBWSxxREFBYztBQUMxQjtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVxQztBQUNyQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvdXRpbHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoaWxkcmVuLCBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgZ2V0Q2hpbGRLZXkgPSAoY2hpbGQpID0+IGNoaWxkLmtleSB8fCBcIlwiO1xuZnVuY3Rpb24gb25seUVsZW1lbnRzKGNoaWxkcmVuKSB7XG4gICAgY29uc3QgZmlsdGVyZWQgPSBbXTtcbiAgICAvLyBXZSB1c2UgZm9yRWFjaCBoZXJlIGluc3RlYWQgb2YgbWFwIGFzIG1hcCBtdXRhdGVzIHRoZSBjb21wb25lbnQga2V5IGJ5IHByZXByZW5kaW5nIGAuJGBcbiAgICBDaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIGZpbHRlcmVkLnB1c2goY2hpbGQpO1xuICAgIH0pO1xuICAgIHJldHVybiBmaWx0ZXJlZDtcbn1cblxuZXhwb3J0IHsgZ2V0Q2hpbGRLZXksIG9ubHlFbGVtZW50cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LayoutGroupContext: () => (/* binding */ LayoutGroupContext) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js"); +/* __next_internal_client_entry_do_not_use__ LayoutGroupContext auto */ +const LayoutGroupContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({}); + //# sourceMappingURL=LayoutGroupContext.mjs.map + + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/LazyContext.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LazyContext: () => (/* binding */ LazyContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ LazyContext auto */ \nconst LazyContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({\n strict: false\n});\n //# sourceMappingURL=LazyContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9MYXp5Q29udGV4dC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBVU87SUFBQTtBQUFBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvY29udGV4dC9MYXp5Q29udGV4dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IENyZWF0ZVZpc3VhbEVsZW1lbnQgfSBmcm9tIFwiLi4vcmVuZGVyL3R5cGVzXCJcblxuZXhwb3J0IGludGVyZmFjZSBMYXp5Q29udGV4dFByb3BzIHtcbiAgICByZW5kZXJlcj86IENyZWF0ZVZpc3VhbEVsZW1lbnRcbiAgICBzdHJpY3Q6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IExhenlDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxMYXp5Q29udGV4dFByb3BzPih7IHN0cmljdDogZmFsc2UgfSlcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionConfigContext: () => (/* binding */ MotionConfigContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ MotionConfigContext auto */ \n/**\n * @public\n */ const MotionConfigContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({\n transformPagePoint: (p)=>p,\n isStatic: false,\n reducedMotion: \"never\"\n});\n //# sourceMappingURL=MotionConfigContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db25maWdDb250ZXh0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUF5REE7O0NBRUcsR0FDSTtJQUNIO0lBQ0E7SUFDQTtBQUNIIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvY29udGV4dC9Nb3Rpb25Db25maWdDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgdHlwZSB7IFRyYW5zaXRpb24gfSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgeyBUcmFuc2Zvcm1Qb2ludCB9IGZyb20gXCJtb3Rpb24tdXRpbHNcIlxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCB0eXBlIFJlZHVjZWRNb3Rpb25Db25maWcgPSBcImFsd2F5c1wiIHwgXCJuZXZlclwiIHwgXCJ1c2VyXCJcblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW90aW9uQ29uZmlnQ29udGV4dCB7XG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwsIGV4cG9ydGVkIG9ubHkgZm9yIHVzYWdlIGluIEZyYW1lclxuICAgICAqL1xuICAgIHRyYW5zZm9ybVBhZ2VQb2ludDogVHJhbnNmb3JtUG9pbnRcblxuICAgIC8qKlxuICAgICAqIEludGVybmFsLiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyBpcyBhIHN0YXRpYyBjb250ZXh0IGllIHRoZSBGcmFtZXIgY2FudmFzLiBJZiBzbyxcbiAgICAgKiBpdCdsbCBkaXNhYmxlIGFsbCBkeW5hbWljIGZ1bmN0aW9uYWxpdHkuXG4gICAgICovXG4gICAgaXNTdGF0aWM6IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgYSBuZXcgZGVmYXVsdCB0cmFuc2l0aW9uIGZvciB0aGUgZW50aXJlIHRyZWUuXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgdHJhbnNpdGlvbj86IFRyYW5zaXRpb25cblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHdpbGwgcmVzcGVjdCB0aGUgZGV2aWNlIHByZWZlcnNSZWR1Y2VkTW90aW9uIHNldHRpbmcgYnkgc3dpdGNoaW5nXG4gICAgICogdHJhbnNmb3JtIGFuaW1hdGlvbnMgb2ZmLlxuICAgICAqXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIHJlZHVjZWRNb3Rpb24/OiBSZWR1Y2VkTW90aW9uQ29uZmlnXG5cbiAgICAvKipcbiAgICAgKiBBIGN1c3RvbSBgbm9uY2VgIGF0dHJpYnV0ZSB1c2VkIHdoZW4gd2FudGluZyB0byBlbmZvcmNlIGEgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgKENTUCkuXG4gICAgICogRm9yIG1vcmUgZGV0YWlscyBzZWU6XG4gICAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9IZWFkZXJzL0NvbnRlbnQtU2VjdXJpdHktUG9saWN5L3N0eWxlLXNyYyN1bnNhZmVfaW5saW5lX3N0eWxlc1xuICAgICAqXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIG5vbmNlPzogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBhbGwgYW5pbWF0aW9ucyB3aWxsIGJlIHNraXBwZWQgYW5kIHZhbHVlcyB3aWxsIGJlIHNldCBpbnN0YW50bHkuXG4gICAgICogVXNlZnVsIGZvciBFMkUgdGVzdHMgYW5kIHZpc3VhbCByZWdyZXNzaW9uIHRlc3RpbmcuXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgc2tpcEFuaW1hdGlvbnM/OiBib29sZWFuXG5cbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBNb3Rpb25Db25maWdDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxNb3Rpb25Db25maWdDb250ZXh0Pih7XG4gICAgdHJhbnNmb3JtUGFnZVBvaW50OiAocCkgPT4gcCxcbiAgICBpc1N0YXRpYzogZmFsc2UsXG4gICAgcmVkdWNlZE1vdGlvbjogXCJuZXZlclwiLFxufSlcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCreateMotionContext: () => (/* binding */ useCreateMotionContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs\");\n/* __next_internal_client_entry_do_not_use__ useCreateMotionContext auto */ var _s = $RefreshSig$();\n\n\n\nfunction useCreateMotionContext(props) {\n _s();\n const { initial, animate } = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.getCurrentTreeVariants)(props, (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index_mjs__WEBPACK_IMPORTED_MODULE_2__.MotionContext));\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useCreateMotionContext.useMemo\": ()=>({\n initial,\n animate\n })\n }[\"useCreateMotionContext.useMemo\"], [\n variantLabelsAsDependency(initial),\n variantLabelsAsDependency(animate)\n ]);\n}\n_s(useCreateMotionContext, \"shxTVlB2oWfKttdhhGhChpfITWQ=\");\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n //# sourceMappingURL=create.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db250ZXh0L2NyZWF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFPTTs7SUFHRjs7Ozs7Ozs7OztBQVNKO0dBWk07QUFjTjtJQUdJO0FBQ0oiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9jb250ZXh0L01vdGlvbkNvbnRleHQvY3JlYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTW90aW9uQ29udGV4dCwgdHlwZSBNb3Rpb25Db250ZXh0UHJvcHMgfSBmcm9tIFwiLlwiXG5pbXBvcnQgeyBNb3Rpb25Qcm9wcyB9IGZyb20gXCIuLi8uLi9tb3Rpb24vdHlwZXNcIlxuaW1wb3J0IHsgZ2V0Q3VycmVudFRyZWVWYXJpYW50cyB9IGZyb20gXCIuL3V0aWxzXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0ZU1vdGlvbkNvbnRleHQ8SW5zdGFuY2U+KFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wc1xuKTogTW90aW9uQ29udGV4dFByb3BzPEluc3RhbmNlPiB7XG4gICAgY29uc3QgeyBpbml0aWFsLCBhbmltYXRlIH0gPSBnZXRDdXJyZW50VHJlZVZhcmlhbnRzKFxuICAgICAgICBwcm9wcyxcbiAgICAgICAgdXNlQ29udGV4dChNb3Rpb25Db250ZXh0KVxuICAgIClcblxuICAgIHJldHVybiB1c2VNZW1vKFxuICAgICAgICAoKSA9PiAoeyBpbml0aWFsLCBhbmltYXRlIH0pLFxuICAgICAgICBbdmFyaWFudExhYmVsc0FzRGVwZW5kZW5jeShpbml0aWFsKSwgdmFyaWFudExhYmVsc0FzRGVwZW5kZW5jeShhbmltYXRlKV1cbiAgICApXG59XG5cbmZ1bmN0aW9uIHZhcmlhbnRMYWJlbHNBc0RlcGVuZGVuY3koXG4gICAgcHJvcDogdW5kZWZpbmVkIHwgc3RyaW5nIHwgc3RyaW5nW10gfCBib29sZWFuXG4pIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwcm9wKSA/IHByb3Auam9pbihcIiBcIikgOiBwcm9wXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionContext: () => (/* binding */ MotionContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ MotionContext auto */ \nconst MotionContext = /* @__PURE__ */ /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db250ZXh0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFXYSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL2NvbnRleHQvTW90aW9uQ29udGV4dC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgdHlwZSB7IFZpc3VhbEVsZW1lbnQgfSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSBcInJlYWN0XCJcblxuZXhwb3J0IGludGVyZmFjZSBNb3Rpb25Db250ZXh0UHJvcHM8SW5zdGFuY2UgPSB1bmtub3duPiB7XG4gICAgdmlzdWFsRWxlbWVudD86IFZpc3VhbEVsZW1lbnQ8SW5zdGFuY2U+XG4gICAgaW5pdGlhbD86IGZhbHNlIHwgc3RyaW5nIHwgc3RyaW5nW11cbiAgICBhbmltYXRlPzogc3RyaW5nIHwgc3RyaW5nW11cbn1cblxuZXhwb3J0IGNvbnN0IE1vdGlvbkNvbnRleHQgPSAvKiBAX19QVVJFX18gKi8gY3JlYXRlQ29udGV4dDxNb3Rpb25Db250ZXh0UHJvcHM+KFxuICAgIHt9XG4pXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getCurrentTreeVariants: () => (/* binding */ getCurrentTreeVariants)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n\n\nfunction getCurrentTreeVariants(props, context) {\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isControllingVariants)(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(initial)\n ? initial\n : undefined,\n animate: (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db250ZXh0L3V0aWxzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBbUU7O0FBRW5FO0FBQ0EsUUFBUSxpRUFBcUI7QUFDN0IsZ0JBQWdCLG1CQUFtQjtBQUNuQztBQUNBLDBDQUEwQywwREFBYztBQUN4RDtBQUNBO0FBQ0EscUJBQXFCLDBEQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVrQztBQUNsQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db250ZXh0L3V0aWxzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0NvbnRyb2xsaW5nVmFyaWFudHMsIGlzVmFyaWFudExhYmVsIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRUcmVlVmFyaWFudHMocHJvcHMsIGNvbnRleHQpIHtcbiAgICBpZiAoaXNDb250cm9sbGluZ1ZhcmlhbnRzKHByb3BzKSkge1xuICAgICAgICBjb25zdCB7IGluaXRpYWwsIGFuaW1hdGUgfSA9IHByb3BzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaW5pdGlhbDogaW5pdGlhbCA9PT0gZmFsc2UgfHwgaXNWYXJpYW50TGFiZWwoaW5pdGlhbClcbiAgICAgICAgICAgICAgICA/IGluaXRpYWxcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGFuaW1hdGU6IGlzVmFyaWFudExhYmVsKGFuaW1hdGUpID8gYW5pbWF0ZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHByb3BzLmluaGVyaXQgIT09IGZhbHNlID8gY29udGV4dCA6IHt9O1xufVxuXG5leHBvcnQgeyBnZXRDdXJyZW50VHJlZVZhcmlhbnRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/PresenceContext.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PresenceContext: () => (/* binding */ PresenceContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ PresenceContext auto */ \n/**\n * @public\n */ const PresenceContext = /* @__PURE__ */ /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);\n //# sourceMappingURL=PresenceContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9QcmVzZW5jZUNvbnRleHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQU9BOztDQUVHLDJCQUVDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvY29udGV4dC9QcmVzZW5jZUNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgdHlwZSB7IFByZXNlbmNlQ29udGV4dFByb3BzIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuXG5leHBvcnQgdHlwZSB7IFByZXNlbmNlQ29udGV4dFByb3BzIH1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBQcmVzZW5jZUNvbnRleHQgPVxuICAgIC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVDb250ZXh0PFByZXNlbmNlQ29udGV4dFByb3BzIHwgbnVsbD4obnVsbClcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SwitchLayoutGroupContext: () => (/* binding */ SwitchLayoutGroupContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ SwitchLayoutGroupContext auto */ \n/**\n * Internal, exported only for usage in Framer\n */ const SwitchLayoutGroupContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});\n //# sourceMappingURL=SwitchLayoutGroupContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Td2l0Y2hMYXlvdXRHcm91cENvbnRleHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQXlCQTs7Q0FFRyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2NvbnRleHQvU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB0eXBlIHsgVHJhbnNpdGlvbiwgSVByb2plY3Rpb25Ob2RlIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgU3dpdGNoTGF5b3V0R3JvdXAge1xuICAgIHJlZ2lzdGVyPzogKG1lbWJlcjogSVByb2plY3Rpb25Ob2RlKSA9PiB2b2lkXG4gICAgZGVyZWdpc3Rlcj86IChtZW1iZXI6IElQcm9qZWN0aW9uTm9kZSkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQgPSBTd2l0Y2hMYXlvdXRHcm91cCAmXG4gICAgSW5pdGlhbFByb21vdGlvbkNvbmZpZ1xuXG5leHBvcnQgdHlwZSBJbml0aWFsUHJvbW90aW9uQ29uZmlnID0ge1xuICAgIC8qKlxuICAgICAqIFRoZSBpbml0aWFsIHRyYW5zaXRpb24gdG8gdXNlIHdoZW4gdGhlIGVsZW1lbnRzIGluIHRoaXMgZ3JvdXAgbW91bnQgKGFuZCBhdXRvbWF0aWNhbGx5IHByb21vdGVkKS5cbiAgICAgKiBTdWJzZXF1ZW50IHVwZGF0ZXMgc2hvdWxkIHByb3ZpZGUgYSB0cmFuc2l0aW9uIGluIHRoZSBwcm9tb3RlIG1ldGhvZC5cbiAgICAgKi9cbiAgICB0cmFuc2l0aW9uPzogVHJhbnNpdGlvblxuICAgIC8qKlxuICAgICAqIElmIHRoZSBmb2xsb3cgdHJlZSBzaG91bGQgcHJlc2VydmUgaXRzIG9wYWNpdHkgd2hlbiB0aGUgbGVhZCBpcyBwcm9tb3RlZCBvbiBtb3VudFxuICAgICAqL1xuICAgIHNob3VsZFByZXNlcnZlRm9sbG93T3BhY2l0eT86IChtZW1iZXI6IElQcm9qZWN0aW9uTm9kZSkgPT4gYm9vbGVhblxufVxuXG4vKipcbiAqIEludGVybmFsLCBleHBvcnRlZCBvbmx5IGZvciB1c2FnZSBpbiBGcmFtZXJcbiAqL1xuZXhwb3J0IGNvbnN0IFN3aXRjaExheW91dEdyb3VwQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0PihcbiAgICB7fVxuKVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addPointerEvent: () => (/* binding */ addPointerEvent)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var _event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n\n\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.addDomEvent)(target, eventName, (0,_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.addPointerInfo)(handler), options);\n}\n\n\n//# sourceMappingURL=add-pointer-event.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZXZlbnRzL2FkZC1wb2ludGVyLWV2ZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUM7QUFDUzs7QUFFbEQ7QUFDQSxXQUFXLHVEQUFXLG9CQUFvQiwrREFBYztBQUN4RDs7QUFFMkI7QUFDM0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2V2ZW50cy9hZGQtcG9pbnRlci1ldmVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkRG9tRXZlbnQgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IGFkZFBvaW50ZXJJbmZvIH0gZnJvbSAnLi9ldmVudC1pbmZvLm1qcyc7XG5cbmZ1bmN0aW9uIGFkZFBvaW50ZXJFdmVudCh0YXJnZXQsIGV2ZW50TmFtZSwgaGFuZGxlciwgb3B0aW9ucykge1xuICAgIHJldHVybiBhZGREb21FdmVudCh0YXJnZXQsIGV2ZW50TmFtZSwgYWRkUG9pbnRlckluZm8oaGFuZGxlciksIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgeyBhZGRQb2ludGVyRXZlbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFkZC1wb2ludGVyLWV2ZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/events/event-info.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addPointerInfo: () => (/* binding */ addPointerInfo),\n/* harmony export */ extractEventInfo: () => (/* binding */ extractEventInfo)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n\n\nfunction extractEventInfo(event) {\n return {\n point: {\n x: event.pageX,\n y: event.pageY,\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isPrimaryPointer)(event) && handler(event, extractEventInfo(event));\n};\n\n\n//# sourceMappingURL=event-info.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZXZlbnRzL2V2ZW50LWluZm8ubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE4Qzs7QUFFOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsNERBQWdCO0FBQ3RDOztBQUU0QztBQUM1QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZXZlbnRzL2V2ZW50LWluZm8ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUHJpbWFyeVBvaW50ZXIgfSBmcm9tICdtb3Rpb24tZG9tJztcblxuZnVuY3Rpb24gZXh0cmFjdEV2ZW50SW5mbyhldmVudCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHBvaW50OiB7XG4gICAgICAgICAgICB4OiBldmVudC5wYWdlWCxcbiAgICAgICAgICAgIHk6IGV2ZW50LnBhZ2VZLFxuICAgICAgICB9LFxuICAgIH07XG59XG5jb25zdCBhZGRQb2ludGVySW5mbyA9IChoYW5kbGVyKSA9PiB7XG4gICAgcmV0dXJuIChldmVudCkgPT4gaXNQcmltYXJ5UG9pbnRlcihldmVudCkgJiYgaGFuZGxlcihldmVudCwgZXh0cmFjdEV2ZW50SW5mbyhldmVudCkpO1xufTtcblxuZXhwb3J0IHsgYWRkUG9pbnRlckluZm8sIGV4dHJhY3RFdmVudEluZm8gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWV2ZW50LWluZm8ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VisualElementDragControls: () => (/* binding */ VisualElementDragControls),\n/* harmony export */ elementDragControls: () => (/* binding */ elementDragControls)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/index.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n/* harmony import */ var _utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/get-context-window.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\");\n/* harmony import */ var _utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../utils/is-ref-object.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\");\n/* harmony import */ var _pan_PanSession_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../pan/PanSession.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\");\n/* harmony import */ var _utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/constraints.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs\");\n\n\n\n\n\n\n\n\n\nconst elementDragControls = new WeakMap();\nclass VisualElementDragControls {\n constructor(visualElement) {\n this.openDragLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.createBox)();\n /**\n * The latest pointer event. Used as fallback when the `cancel` and `stop` functions are called without arguments.\n */\n this.latestPointerEvent = null;\n /**\n * The latest pan info. Used as fallback when the `cancel` and `stop` functions are called without arguments.\n */\n this.latestPanInfo = null;\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false, distanceThreshold } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n if (snapToCursor) {\n this.snapToCursor((0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event).point);\n }\n this.stopAnimation();\n };\n const onStart = (event, info) => {\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openDragLock)\n this.openDragLock();\n this.openDragLock = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.setDragLock)(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openDragLock)\n return;\n }\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin and pointer offset\n */\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (motion_dom__WEBPACK_IMPORTED_MODULE_4__.percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = (0,motion_dom__WEBPACK_IMPORTED_MODULE_5__.calcLength)(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart) {\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.update(() => onDragStart(event, info), false, true);\n }\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_7__.addValueToWillChange)(this.visualElement, \"transform\");\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openDragLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n if (onDrag) {\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.update(() => onDrag(event, info), false, true);\n }\n };\n const onSessionEnd = (event, info) => {\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n this.stop(event, info);\n this.latestPointerEvent = null;\n this.latestPanInfo = null;\n };\n const resumeAnimation = () => {\n const { dragSnapToOrigin: snap } = this.getProps();\n if (snap || this.constraints) {\n this.startAnimation({ x: 0, y: 0 });\n }\n };\n const { dragSnapToOrigin } = this.getProps();\n this.panSession = new _pan_PanSession_mjs__WEBPACK_IMPORTED_MODULE_8__.PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n resumeAnimation,\n }, {\n transformPagePoint: this.visualElement.getTransformPagePoint(),\n dragSnapToOrigin,\n distanceThreshold,\n contextWindow: (0,_utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_9__.getContextWindow)(this.visualElement),\n element: this.visualElement.current,\n });\n }\n /**\n * @internal\n */\n stop(event, panInfo) {\n const finalEvent = event || this.latestPointerEvent;\n const finalPanInfo = panInfo || this.latestPanInfo;\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging || !finalPanInfo || !finalEvent)\n return;\n const { velocity } = finalPanInfo;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n if (onDragEnd) {\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.postRender(() => onDragEnd(finalEvent, finalPanInfo));\n }\n }\n /**\n * @internal\n */\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.endPanSession();\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openDragLock) {\n this.openDragLock();\n this.openDragLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n /**\n * Clean up the pan session without modifying other drag state.\n * This is used during unmount to ensure event listeners are removed\n * without affecting projection animations or drag locks.\n * @internal\n */\n endPanSession() {\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.applyConstraints)(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n const { dragConstraints, dragElastic } = this.getProps();\n const layout = this.visualElement.projection &&\n !this.visualElement.projection.layout\n ? this.visualElement.projection.measure(false)\n : this.visualElement.projection?.layout;\n const prevConstraints = this.constraints;\n if (dragConstraints && (0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcRelativeConstraints)(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.resolveDragElastic)(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative. This only applies to relative (non-ref)\n * constraints, as ref-based constraints from calcViewportConstraints are already in the\n * correct coordinate space for the motion value transform offset.\n */\n if (prevConstraints !== this.constraints &&\n !(0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints) &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n if (this.constraints !== false &&\n this.getAxisMotionValue(axis)) {\n this.constraints[axis] = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.rebaseAxisConstraints)(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !(0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(constraints))\n return false;\n const constraintsElement = constraints.current;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.invariant)(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\", \"drag-constraints-ref\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = (0,motion_dom__WEBPACK_IMPORTED_MODULE_13__.measurePageBox)(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcViewportConstraints)(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints((0,motion_dom__WEBPACK_IMPORTED_MODULE_14__.convertBoxToBoundingBox)(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = (0,motion_dom__WEBPACK_IMPORTED_MODULE_14__.convertBoundingBoxToBox)(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_7__.addValueToWillChange)(this.visualElement, axis);\n return axisValue.start((0,motion_dom__WEBPACK_IMPORTED_MODULE_15__.animateMotionValue)(axis, axisValue, 0, transition, this.visualElement, false));\n }\n stopAnimation() {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => this.getAxisMotionValue(axis).stop());\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = `_drag${axis.toUpperCase()}`;\n const props = this.visualElement.getProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (props.initial\n ? props.initial[axis]\n : undefined) || 0);\n }\n snapToCursor(point) {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n /**\n * The layout measurement includes the current transform value,\n * so we need to add it back to get the correct snap position.\n * This fixes an issue where elements with initial coordinates\n * would snap to the wrong position on the first drag.\n */\n const current = axisValue.get() || 0;\n axisValue.set(point[axis] - (0,motion_dom__WEBPACK_IMPORTED_MODULE_16__.mixNumber)(min, max, 0.5) + current);\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!(0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue && this.constraints !== false) {\n const latest = axisValue.get();\n boxProgress[axis] = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcOrigin)({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n /**\n * Reset constraints so resolveConstraints() will recalculate them\n * with the freshly measured layout rather than returning the cached value.\n */\n this.constraints = false;\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set((0,motion_dom__WEBPACK_IMPORTED_MODULE_16__.mixNumber)(min, max, boxProgress[axis]));\n });\n /**\n * Flush the updated transform to the DOM synchronously to prevent\n * a visual flash at the element's CSS layout position (0,0) when\n * the transform was stripped for measurement.\n */\n this.visualElement.render();\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_17__.addPointerEvent)(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n const target = event.target;\n /**\n * Only block drag if clicking on a text input child element\n * (input, textarea, select, contenteditable) where users might\n * want to select text or interact with the control.\n *\n * Buttons and links don't block drag since they don't have\n * click-and-move actions of their own.\n */\n const isClickingTextInputChild = target !== element && (0,motion_dom__WEBPACK_IMPORTED_MODULE_18__.isElementTextInput)(target);\n if (drag && dragListener && !isClickingTextInputChild) {\n this.start(event);\n }\n });\n /**\n * If using ref-based constraints, observe both the draggable element\n * and the constraint container for size changes via ResizeObserver.\n * Setup is deferred because dragConstraints.current is null when\n * addListeners first runs (React hasn't committed the ref yet).\n */\n let stopResizeObservers;\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if ((0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints) && dragConstraints.current) {\n this.constraints = this.resolveRefConstraints();\n if (!stopResizeObservers) {\n stopResizeObservers = startResizeObservers(element, dragConstraints.current, () => this.scalePositionWithinConstraints());\n }\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.read(measureDragConstraints);\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = (0,motion_dom__WEBPACK_IMPORTED_MODULE_19__.addDomEvent)(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n stopResizeObservers && stopResizeObservers();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = _utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction skipFirstCall(callback) {\n let isFirst = true;\n return () => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n callback();\n };\n}\nfunction startResizeObservers(element, constraintsElement, onResize) {\n const stopElement = (0,motion_dom__WEBPACK_IMPORTED_MODULE_20__.resize)(element, skipFirstCall(onResize));\n const stopContainer = (0,motion_dom__WEBPACK_IMPORTED_MODULE_20__.resize)(constraintsElement, skipFirstCall(onResize));\n return () => {\n stopElement();\n stopContainer();\n };\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\n\n//# sourceMappingURL=VisualElementDragControls.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9WaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUEwUDtBQUNqTjtBQUM0QjtBQUNOO0FBQ087QUFDVjtBQUNUO0FBQ2lJOztBQUVwTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixxREFBUztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QiwwQ0FBMEMsSUFBSTtBQUN2RTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLHdFQUFnQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHFDQUFxQztBQUN6RDtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsdURBQVc7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLG9EQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLCtDQUFPO0FBQzNCLDRCQUE0QixhQUFhO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyxzREFBVTtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxnQkFBZ0IsNkNBQUs7QUFDckI7QUFDQSxZQUFZLGdFQUFvQjtBQUNoQyxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsK0RBQStEO0FBQ25GO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixTQUFTO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2Q0FBSztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix5QkFBeUI7QUFDN0M7QUFDQSxzQ0FBc0MsWUFBWTtBQUNsRDtBQUNBO0FBQ0EsZ0JBQWdCLG1CQUFtQjtBQUNuQyw4QkFBOEIsMkRBQVU7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsK0VBQWdCO0FBQzNDO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsV0FBVztBQUMzQjtBQUNBLGdCQUFnQixZQUFZO0FBQzVCO0FBQ0EsWUFBWSw2Q0FBSztBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2QkFBNkI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsT0FBTztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQix5RUFBZ0I7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsK0JBQStCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0Isc0VBQVc7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLGdGQUF1QjtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLDJFQUFrQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsc0VBQVc7QUFDeEI7QUFDQTtBQUNBO0FBQ0EsWUFBWSxvREFBUTtBQUNwQjtBQUNBO0FBQ0EsNkNBQTZDLDhFQUFxQjtBQUNsRTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IseURBQXlEO0FBQ3pFLDZCQUE2QixzRUFBVztBQUN4QztBQUNBO0FBQ0EsUUFBUSx3REFBUztBQUNqQixnQkFBZ0IsYUFBYTtBQUM3QjtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsMkRBQWM7QUFDN0Msa0NBQWtDLGdGQUF1QjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkRBQTZELG9FQUF1QjtBQUNwRjtBQUNBO0FBQ0Esc0NBQXNDLG9FQUF1QjtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBGQUEwRjtBQUMxRztBQUNBLG1DQUFtQyxvREFBUTtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsZ0VBQW9CO0FBQzVCLCtCQUErQiwrREFBa0I7QUFDakQ7QUFDQTtBQUNBLFFBQVEsb0RBQVE7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxtQkFBbUI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxvREFBUTtBQUNoQixvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsYUFBYTtBQUNqQztBQUNBO0FBQ0Esd0JBQXdCLFdBQVc7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsc0RBQVM7QUFDckQ7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHdCQUF3QjtBQUN4QyxnQkFBZ0IsYUFBYTtBQUM3QixhQUFhLHNFQUFXO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCLFFBQVEsb0RBQVE7QUFDaEI7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLG1FQUFVLEdBQUcsMEJBQTBCO0FBQzNFO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixvQkFBb0I7QUFDcEM7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLG9EQUFRO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CLDBCQUEwQixzREFBUztBQUNuQyxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLCtFQUFlO0FBQ25ELG9CQUFvQiw0QkFBNEI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUVBQW1FLCtEQUFrQjtBQUNyRjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixrQkFBa0I7QUFDdEMsZ0JBQWdCLHNFQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZDQUFLO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsd0RBQVc7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzRkFBc0YseUJBQXlCO0FBQy9HO0FBQ0EsZ0JBQWdCLG9EQUFRO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQix5R0FBeUcsbUVBQWMseUJBQXlCO0FBQ2hLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLG1EQUFNO0FBQzlCLDBCQUEwQixtREFBTTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUwRDtBQUMxRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9WaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVCb3gsIGZyYW1lLCBlYWNoQXhpcywgbWVhc3VyZVBhZ2VCb3gsIGNvbnZlcnRCb3hUb0JvdW5kaW5nQm94LCBjb252ZXJ0Qm91bmRpbmdCb3hUb0JveCwgYWRkVmFsdWVUb1dpbGxDaGFuZ2UsIGFuaW1hdGVNb3Rpb25WYWx1ZSwgbWl4TnVtYmVyLCBpc0VsZW1lbnRUZXh0SW5wdXQsIGFkZERvbUV2ZW50LCBzZXREcmFnTG9jaywgcGVyY2VudCwgY2FsY0xlbmd0aCwgcmVzaXplIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBpbnZhcmlhbnQgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgYWRkUG9pbnRlckV2ZW50IH0gZnJvbSAnLi4vLi4vZXZlbnRzL2FkZC1wb2ludGVyLWV2ZW50Lm1qcyc7XG5pbXBvcnQgeyBleHRyYWN0RXZlbnRJbmZvIH0gZnJvbSAnLi4vLi4vZXZlbnRzL2V2ZW50LWluZm8ubWpzJztcbmltcG9ydCB7IGdldENvbnRleHRXaW5kb3cgfSBmcm9tICcuLi8uLi91dGlscy9nZXQtY29udGV4dC13aW5kb3cubWpzJztcbmltcG9ydCB7IGlzUmVmT2JqZWN0IH0gZnJvbSAnLi4vLi4vdXRpbHMvaXMtcmVmLW9iamVjdC5tanMnO1xuaW1wb3J0IHsgUGFuU2Vzc2lvbiB9IGZyb20gJy4uL3Bhbi9QYW5TZXNzaW9uLm1qcyc7XG5pbXBvcnQgeyBhcHBseUNvbnN0cmFpbnRzLCBjYWxjUmVsYXRpdmVDb25zdHJhaW50cywgcmVzb2x2ZURyYWdFbGFzdGljLCByZWJhc2VBeGlzQ29uc3RyYWludHMsIGNhbGNWaWV3cG9ydENvbnN0cmFpbnRzLCBjYWxjT3JpZ2luLCBkZWZhdWx0RWxhc3RpYyB9IGZyb20gJy4vdXRpbHMvY29uc3RyYWludHMubWpzJztcblxuY29uc3QgZWxlbWVudERyYWdDb250cm9scyA9IG5ldyBXZWFrTWFwKCk7XG5jbGFzcyBWaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzIHtcbiAgICBjb25zdHJ1Y3Rvcih2aXN1YWxFbGVtZW50KSB7XG4gICAgICAgIHRoaXMub3BlbkRyYWdMb2NrID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudERpcmVjdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMub3JpZ2luUG9pbnQgPSB7IHg6IDAsIHk6IDAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBwZXJtaXR0ZWQgYm91bmRhcmllcyBvZiB0cmF2ZWwsIGluIHBpeGVscy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY29uc3RyYWludHMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oYXNNdXRhdGVkQ29uc3RyYWludHMgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBwZXItYXhpcyByZXNvbHZlZCBlbGFzdGljIHZhbHVlcy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZWxhc3RpYyA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGxhdGVzdCBwb2ludGVyIGV2ZW50LiBVc2VkIGFzIGZhbGxiYWNrIHdoZW4gdGhlIGBjYW5jZWxgIGFuZCBgc3RvcGAgZnVuY3Rpb25zIGFyZSBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxhdGVzdFBvaW50ZXJFdmVudCA9IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgbGF0ZXN0IHBhbiBpbmZvLiBVc2VkIGFzIGZhbGxiYWNrIHdoZW4gdGhlIGBjYW5jZWxgIGFuZCBgc3RvcGAgZnVuY3Rpb25zIGFyZSBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxhdGVzdFBhbkluZm8gPSBudWxsO1xuICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQgPSB2aXN1YWxFbGVtZW50O1xuICAgIH1cbiAgICBzdGFydChvcmlnaW5FdmVudCwgeyBzbmFwVG9DdXJzb3IgPSBmYWxzZSwgZGlzdGFuY2VUaHJlc2hvbGQgfSA9IHt9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEb24ndCBzdGFydCBkcmFnZ2luZyBpZiB0aGlzIGNvbXBvbmVudCBpcyBleGl0aW5nXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCB7IHByZXNlbmNlQ29udGV4dCB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xuICAgICAgICBpZiAocHJlc2VuY2VDb250ZXh0ICYmIHByZXNlbmNlQ29udGV4dC5pc1ByZXNlbnQgPT09IGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBvblNlc3Npb25TdGFydCA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNuYXBUb0N1cnNvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc25hcFRvQ3Vyc29yKGV4dHJhY3RFdmVudEluZm8oZXZlbnQpLnBvaW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvblN0YXJ0ID0gKGV2ZW50LCBpbmZvKSA9PiB7XG4gICAgICAgICAgICAvLyBBdHRlbXB0IHRvIGdyYWIgdGhlIGdsb2JhbCBkcmFnIGdlc3R1cmUgbG9jayAtIG1heWJlIG1ha2UgdGhpcyBwYXJ0IG9mIFBhblNlc3Npb25cbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZywgZHJhZ1Byb3BhZ2F0aW9uLCBvbkRyYWdTdGFydCB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICAgICAgaWYgKGRyYWcgJiYgIWRyYWdQcm9wYWdhdGlvbikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wZW5EcmFnTG9jaylcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuRHJhZ0xvY2soKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5EcmFnTG9jayA9IHNldERyYWdMb2NrKGRyYWcpO1xuICAgICAgICAgICAgICAgIC8vIElmIHdlIGRvbiAndCBoYXZlIHRoZSBsb2NrLCBkb24ndCBzdGFydCBkcmFnZ2luZ1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5vcGVuRHJhZ0xvY2spXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubGF0ZXN0UG9pbnRlckV2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgICB0aGlzLmxhdGVzdFBhbkluZm8gPSBpbmZvO1xuICAgICAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudERpcmVjdGlvbiA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVDb25zdHJhaW50cygpO1xuICAgICAgICAgICAgaWYgKHRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24uaXNBbmltYXRpb25CbG9ja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi50YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFJlY29yZCBnZXN0dXJlIG9yaWdpbiBhbmQgcG9pbnRlciBvZmZzZXRcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudCA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpLmdldCgpIHx8IDA7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSWYgdGhlIE1vdGlvblZhbHVlIGlzIGEgcGVyY2VudGFnZSB2YWx1ZSBjb252ZXJ0IHRvIHB4XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKHBlcmNlbnQudGVzdChjdXJyZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByb2plY3Rpb24gfSA9IHRoaXMudmlzdWFsRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2plY3Rpb24gJiYgcHJvamVjdGlvbi5sYXlvdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVkQXhpcyA9IHByb2plY3Rpb24ubGF5b3V0LmxheW91dEJveFtheGlzXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZWFzdXJlZEF4aXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBjYWxjTGVuZ3RoKG1lYXN1cmVkQXhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGxlbmd0aCAqIChwYXJzZUZsb2F0KGN1cnJlbnQpIC8gMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblBvaW50W2F4aXNdID0gY3VycmVudDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gRmlyZSBvbkRyYWdTdGFydCBldmVudFxuICAgICAgICAgICAgaWYgKG9uRHJhZ1N0YXJ0KSB7XG4gICAgICAgICAgICAgICAgZnJhbWUudXBkYXRlKCgpID0+IG9uRHJhZ1N0YXJ0KGV2ZW50LCBpbmZvKSwgZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWRkVmFsdWVUb1dpbGxDaGFuZ2UodGhpcy52aXN1YWxFbGVtZW50LCBcInRyYW5zZm9ybVwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYW5pbWF0aW9uU3RhdGUgfSA9IHRoaXMudmlzdWFsRWxlbWVudDtcbiAgICAgICAgICAgIGFuaW1hdGlvblN0YXRlICYmIGFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcIndoaWxlRHJhZ1wiLCB0cnVlKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Nb3ZlID0gKGV2ZW50LCBpbmZvKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxhdGVzdFBvaW50ZXJFdmVudCA9IGV2ZW50O1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RQYW5JbmZvID0gaW5mbztcbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZ1Byb3BhZ2F0aW9uLCBkcmFnRGlyZWN0aW9uTG9jaywgb25EaXJlY3Rpb25Mb2NrLCBvbkRyYWcsIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgICAgICAvLyBJZiB3ZSBkaWRuJ3Qgc3VjY2Vzc2Z1bGx5IHJlY2VpdmUgdGhlIGdlc3R1cmUgbG9jaywgZWFybHkgcmV0dXJuLlxuICAgICAgICAgICAgaWYgKCFkcmFnUHJvcGFnYXRpb24gJiYgIXRoaXMub3BlbkRyYWdMb2NrKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBpbmZvO1xuICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBkZXRlY3QgZHJhZyBkaXJlY3Rpb24gaWYgZGlyZWN0aW9uTG9jayBpcyB0cnVlXG4gICAgICAgICAgICBpZiAoZHJhZ0RpcmVjdGlvbkxvY2sgJiYgdGhpcy5jdXJyZW50RGlyZWN0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uID0gZ2V0Q3VycmVudERpcmVjdGlvbihvZmZzZXQpO1xuICAgICAgICAgICAgICAgIC8vIElmIHdlJ3ZlIHN1Y2Nlc3NmdWxseSBzZXQgYSBkaXJlY3Rpb24sIG5vdGlmeSBsaXN0ZW5lclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnREaXJlY3Rpb24gIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgb25EaXJlY3Rpb25Mb2NrICYmIG9uRGlyZWN0aW9uTG9jayh0aGlzLmN1cnJlbnREaXJlY3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBVcGRhdGUgZWFjaCBwb2ludCB3aXRoIHRoZSBsYXRlc3QgcG9zaXRpb25cbiAgICAgICAgICAgIHRoaXMudXBkYXRlQXhpcyhcInhcIiwgaW5mby5wb2ludCwgb2Zmc2V0KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQXhpcyhcInlcIiwgaW5mby5wb2ludCwgb2Zmc2V0KTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWRlYWxseSB3ZSB3b3VsZCBsZWF2ZSB0aGUgcmVuZGVyZXIgdG8gZmlyZSBuYXR1cmFsbHkgYXQgdGhlIGVuZCBvZlxuICAgICAgICAgICAgICogdGhpcyBmcmFtZSBidXQgaWYgdGhlIGVsZW1lbnQgaXMgYWJvdXQgdG8gY2hhbmdlIGxheW91dCBhcyB0aGUgcmVzdWx0XG4gICAgICAgICAgICAgKiBvZiBhIHJlLXJlbmRlciB3ZSB3YW50IHRvIGVuc3VyZSB0aGUgYnJvd3NlciBjYW4gcmVhZCB0aGUgbGF0ZXN0XG4gICAgICAgICAgICAgKiBib3VuZGluZyBib3ggdG8gZW5zdXJlIHRoZSBwb2ludGVyIGFuZCBlbGVtZW50IGRvbid0IGZhbGwgb3V0IG9mIHN5bmMuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMudmlzdWFsRWxlbWVudC5yZW5kZXIoKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVGhpcyBtdXN0IGZpcmUgYWZ0ZXIgdGhlIHJlbmRlciBjYWxsIGFzIGl0IG1pZ2h0IHRyaWdnZXIgYSBzdGF0ZVxuICAgICAgICAgICAgICogY2hhbmdlIHdoaWNoIGl0c2VsZiBtaWdodCB0cmlnZ2VyIGEgbGF5b3V0IHVwZGF0ZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKG9uRHJhZykge1xuICAgICAgICAgICAgICAgIGZyYW1lLnVwZGF0ZSgoKSA9PiBvbkRyYWcoZXZlbnQsIGluZm8pLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uU2Vzc2lvbkVuZCA9IChldmVudCwgaW5mbykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RQb2ludGVyRXZlbnQgPSBldmVudDtcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0UGFuSW5mbyA9IGluZm87XG4gICAgICAgICAgICB0aGlzLnN0b3AoZXZlbnQsIGluZm8pO1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RQb2ludGVyRXZlbnQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RQYW5JbmZvID0gbnVsbDtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVzdW1lQW5pbWF0aW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBkcmFnU25hcFRvT3JpZ2luOiBzbmFwIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgICAgICBpZiAoc25hcCB8fCB0aGlzLmNvbnN0cmFpbnRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydEFuaW1hdGlvbih7IHg6IDAsIHk6IDAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgZHJhZ1NuYXBUb09yaWdpbiB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICB0aGlzLnBhblNlc3Npb24gPSBuZXcgUGFuU2Vzc2lvbihvcmlnaW5FdmVudCwge1xuICAgICAgICAgICAgb25TZXNzaW9uU3RhcnQsXG4gICAgICAgICAgICBvblN0YXJ0LFxuICAgICAgICAgICAgb25Nb3ZlLFxuICAgICAgICAgICAgb25TZXNzaW9uRW5kLFxuICAgICAgICAgICAgcmVzdW1lQW5pbWF0aW9uLFxuICAgICAgICB9LCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm1QYWdlUG9pbnQ6IHRoaXMudmlzdWFsRWxlbWVudC5nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSxcbiAgICAgICAgICAgIGRyYWdTbmFwVG9PcmlnaW4sXG4gICAgICAgICAgICBkaXN0YW5jZVRocmVzaG9sZCxcbiAgICAgICAgICAgIGNvbnRleHRXaW5kb3c6IGdldENvbnRleHRXaW5kb3codGhpcy52aXN1YWxFbGVtZW50KSxcbiAgICAgICAgICAgIGVsZW1lbnQ6IHRoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgc3RvcChldmVudCwgcGFuSW5mbykge1xuICAgICAgICBjb25zdCBmaW5hbEV2ZW50ID0gZXZlbnQgfHwgdGhpcy5sYXRlc3RQb2ludGVyRXZlbnQ7XG4gICAgICAgIGNvbnN0IGZpbmFsUGFuSW5mbyA9IHBhbkluZm8gfHwgdGhpcy5sYXRlc3RQYW5JbmZvO1xuICAgICAgICBjb25zdCBpc0RyYWdnaW5nID0gdGhpcy5pc0RyYWdnaW5nO1xuICAgICAgICB0aGlzLmNhbmNlbCgpO1xuICAgICAgICBpZiAoIWlzRHJhZ2dpbmcgfHwgIWZpbmFsUGFuSW5mbyB8fCAhZmluYWxFdmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyB2ZWxvY2l0eSB9ID0gZmluYWxQYW5JbmZvO1xuICAgICAgICB0aGlzLnN0YXJ0QW5pbWF0aW9uKHZlbG9jaXR5KTtcbiAgICAgICAgY29uc3QgeyBvbkRyYWdFbmQgfSA9IHRoaXMuZ2V0UHJvcHMoKTtcbiAgICAgICAgaWYgKG9uRHJhZ0VuZCkge1xuICAgICAgICAgICAgZnJhbWUucG9zdFJlbmRlcigoKSA9PiBvbkRyYWdFbmQoZmluYWxFdmVudCwgZmluYWxQYW5JbmZvKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uLCBhbmltYXRpb25TdGF0ZSB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xuICAgICAgICBpZiAocHJvamVjdGlvbikge1xuICAgICAgICAgICAgcHJvamVjdGlvbi5pc0FuaW1hdGlvbkJsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVuZFBhblNlc3Npb24oKTtcbiAgICAgICAgY29uc3QgeyBkcmFnUHJvcGFnYXRpb24gfSA9IHRoaXMuZ2V0UHJvcHMoKTtcbiAgICAgICAgaWYgKCFkcmFnUHJvcGFnYXRpb24gJiYgdGhpcy5vcGVuRHJhZ0xvY2spIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkRyYWdMb2NrKCk7XG4gICAgICAgICAgICB0aGlzLm9wZW5EcmFnTG9jayA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgYW5pbWF0aW9uU3RhdGUgJiYgYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwid2hpbGVEcmFnXCIsIGZhbHNlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYW4gdXAgdGhlIHBhbiBzZXNzaW9uIHdpdGhvdXQgbW9kaWZ5aW5nIG90aGVyIGRyYWcgc3RhdGUuXG4gICAgICogVGhpcyBpcyB1c2VkIGR1cmluZyB1bm1vdW50IHRvIGVuc3VyZSBldmVudCBsaXN0ZW5lcnMgYXJlIHJlbW92ZWRcbiAgICAgKiB3aXRob3V0IGFmZmVjdGluZyBwcm9qZWN0aW9uIGFuaW1hdGlvbnMgb3IgZHJhZyBsb2Nrcy5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBlbmRQYW5TZXNzaW9uKCkge1xuICAgICAgICB0aGlzLnBhblNlc3Npb24gJiYgdGhpcy5wYW5TZXNzaW9uLmVuZCgpO1xuICAgICAgICB0aGlzLnBhblNlc3Npb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHVwZGF0ZUF4aXMoYXhpcywgX3BvaW50LCBvZmZzZXQpIHtcbiAgICAgICAgY29uc3QgeyBkcmFnIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgIC8vIElmIHdlJ3JlIG5vdCBkcmFnZ2luZyB0aGlzIGF4aXMsIGRvIGFuIGVhcmx5IHJldHVybi5cbiAgICAgICAgaWYgKCFvZmZzZXQgfHwgIXNob3VsZERyYWcoYXhpcywgZHJhZywgdGhpcy5jdXJyZW50RGlyZWN0aW9uKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgYXhpc1ZhbHVlID0gdGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoYXhpcyk7XG4gICAgICAgIGxldCBuZXh0ID0gdGhpcy5vcmlnaW5Qb2ludFtheGlzXSArIG9mZnNldFtheGlzXTtcbiAgICAgICAgLy8gQXBwbHkgY29uc3RyYWludHNcbiAgICAgICAgaWYgKHRoaXMuY29uc3RyYWludHMgJiYgdGhpcy5jb25zdHJhaW50c1theGlzXSkge1xuICAgICAgICAgICAgbmV4dCA9IGFwcGx5Q29uc3RyYWludHMobmV4dCwgdGhpcy5jb25zdHJhaW50c1theGlzXSwgdGhpcy5lbGFzdGljW2F4aXNdKTtcbiAgICAgICAgfVxuICAgICAgICBheGlzVmFsdWUuc2V0KG5leHQpO1xuICAgIH1cbiAgICByZXNvbHZlQ29uc3RyYWludHMoKSB7XG4gICAgICAgIGNvbnN0IHsgZHJhZ0NvbnN0cmFpbnRzLCBkcmFnRWxhc3RpYyB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICBjb25zdCBsYXlvdXQgPSB0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbiAmJlxuICAgICAgICAgICAgIXRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uLmxheW91dFxuICAgICAgICAgICAgPyB0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5tZWFzdXJlKGZhbHNlKVxuICAgICAgICAgICAgOiB0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbj8ubGF5b3V0O1xuICAgICAgICBjb25zdCBwcmV2Q29uc3RyYWludHMgPSB0aGlzLmNvbnN0cmFpbnRzO1xuICAgICAgICBpZiAoZHJhZ0NvbnN0cmFpbnRzICYmIGlzUmVmT2JqZWN0KGRyYWdDb25zdHJhaW50cykpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25zdHJhaW50cykge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uc3RyYWludHMgPSB0aGlzLnJlc29sdmVSZWZDb25zdHJhaW50cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRyYWdDb25zdHJhaW50cyAmJiBsYXlvdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN0cmFpbnRzID0gY2FsY1JlbGF0aXZlQ29uc3RyYWludHMobGF5b3V0LmxheW91dEJveCwgZHJhZ0NvbnN0cmFpbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uc3RyYWludHMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsYXN0aWMgPSByZXNvbHZlRHJhZ0VsYXN0aWMoZHJhZ0VsYXN0aWMpO1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgd2UncmUgb3V0cHV0dGluZyB0byBleHRlcm5hbCBNb3Rpb25WYWx1ZXMsIHdlIHdhbnQgdG8gcmViYXNlIHRoZSBtZWFzdXJlZCBjb25zdHJhaW50c1xuICAgICAgICAgKiBmcm9tIHZpZXdwb3J0LXJlbGF0aXZlIHRvIGNvbXBvbmVudC1yZWxhdGl2ZS4gVGhpcyBvbmx5IGFwcGxpZXMgdG8gcmVsYXRpdmUgKG5vbi1yZWYpXG4gICAgICAgICAqIGNvbnN0cmFpbnRzLCBhcyByZWYtYmFzZWQgY29uc3RyYWludHMgZnJvbSBjYWxjVmlld3BvcnRDb25zdHJhaW50cyBhcmUgYWxyZWFkeSBpbiB0aGVcbiAgICAgICAgICogY29ycmVjdCBjb29yZGluYXRlIHNwYWNlIGZvciB0aGUgbW90aW9uIHZhbHVlIHRyYW5zZm9ybSBvZmZzZXQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocHJldkNvbnN0cmFpbnRzICE9PSB0aGlzLmNvbnN0cmFpbnRzICYmXG4gICAgICAgICAgICAhaXNSZWZPYmplY3QoZHJhZ0NvbnN0cmFpbnRzKSAmJlxuICAgICAgICAgICAgbGF5b3V0ICYmXG4gICAgICAgICAgICB0aGlzLmNvbnN0cmFpbnRzICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNNdXRhdGVkQ29uc3RyYWludHMpIHtcbiAgICAgICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uc3RyYWludHMgIT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3RyYWludHNbYXhpc10gPSByZWJhc2VBeGlzQ29uc3RyYWludHMobGF5b3V0LmxheW91dEJveFtheGlzXSwgdGhpcy5jb25zdHJhaW50c1theGlzXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzb2x2ZVJlZkNvbnN0cmFpbnRzKCkge1xuICAgICAgICBjb25zdCB7IGRyYWdDb25zdHJhaW50czogY29uc3RyYWludHMsIG9uTWVhc3VyZURyYWdDb25zdHJhaW50cyB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICBpZiAoIWNvbnN0cmFpbnRzIHx8ICFpc1JlZk9iamVjdChjb25zdHJhaW50cykpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzRWxlbWVudCA9IGNvbnN0cmFpbnRzLmN1cnJlbnQ7XG4gICAgICAgIGludmFyaWFudChjb25zdHJhaW50c0VsZW1lbnQgIT09IG51bGwsIFwiSWYgYGRyYWdDb25zdHJhaW50c2AgaXMgc2V0IGFzIGEgUmVhY3QgcmVmLCB0aGF0IHJlZiBtdXN0IGJlIHBhc3NlZCB0byBhbm90aGVyIGNvbXBvbmVudCdzIGByZWZgIHByb3AuXCIsIFwiZHJhZy1jb25zdHJhaW50cy1yZWZcIik7XG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xuICAgICAgICAvLyBUT0RPXG4gICAgICAgIGlmICghcHJvamVjdGlvbiB8fCAhcHJvamVjdGlvbi5sYXlvdXQpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzQm94ID0gbWVhc3VyZVBhZ2VCb3goY29uc3RyYWludHNFbGVtZW50LCBwcm9qZWN0aW9uLnJvb3QsIHRoaXMudmlzdWFsRWxlbWVudC5nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSk7XG4gICAgICAgIGxldCBtZWFzdXJlZENvbnN0cmFpbnRzID0gY2FsY1ZpZXdwb3J0Q29uc3RyYWludHMocHJvamVjdGlvbi5sYXlvdXQubGF5b3V0Qm94LCBjb25zdHJhaW50c0JveCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGVyZSdzIGFuIG9uTWVhc3VyZURyYWdDb25zdHJhaW50cyBsaXN0ZW5lciB3ZSBjYWxsIGl0IGFuZFxuICAgICAgICAgKiBpZiBkaWZmZXJlbnQgY29uc3RyYWludHMgYXJlIHJldHVybmVkLCBzZXQgY29uc3RyYWludHMgdG8gdGhhdFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG9uTWVhc3VyZURyYWdDb25zdHJhaW50cykge1xuICAgICAgICAgICAgY29uc3QgdXNlckNvbnN0cmFpbnRzID0gb25NZWFzdXJlRHJhZ0NvbnN0cmFpbnRzKGNvbnZlcnRCb3hUb0JvdW5kaW5nQm94KG1lYXN1cmVkQ29uc3RyYWludHMpKTtcbiAgICAgICAgICAgIHRoaXMuaGFzTXV0YXRlZENvbnN0cmFpbnRzID0gISF1c2VyQ29uc3RyYWludHM7XG4gICAgICAgICAgICBpZiAodXNlckNvbnN0cmFpbnRzKSB7XG4gICAgICAgICAgICAgICAgbWVhc3VyZWRDb25zdHJhaW50cyA9IGNvbnZlcnRCb3VuZGluZ0JveFRvQm94KHVzZXJDb25zdHJhaW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lYXN1cmVkQ29uc3RyYWludHM7XG4gICAgfVxuICAgIHN0YXJ0QW5pbWF0aW9uKHZlbG9jaXR5KSB7XG4gICAgICAgIGNvbnN0IHsgZHJhZywgZHJhZ01vbWVudHVtLCBkcmFnRWxhc3RpYywgZHJhZ1RyYW5zaXRpb24sIGRyYWdTbmFwVG9PcmlnaW4sIG9uRHJhZ1RyYW5zaXRpb25FbmQsIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gdGhpcy5jb25zdHJhaW50cyB8fCB7fTtcbiAgICAgICAgY29uc3QgbW9tZW50dW1BbmltYXRpb25zID0gZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgIGlmICghc2hvdWxkRHJhZyhheGlzLCBkcmFnLCB0aGlzLmN1cnJlbnREaXJlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHRyYW5zaXRpb24gPSAoY29uc3RyYWludHMgJiYgY29uc3RyYWludHNbYXhpc10pIHx8IHt9O1xuICAgICAgICAgICAgaWYgKGRyYWdTbmFwVG9PcmlnaW4pXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbiA9IHsgbWluOiAwLCBtYXg6IDAgfTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogT3ZlcmRhbXAgdGhlIGJvdW5kYXJ5IHNwcmluZyBpZiBgZHJhZ0VsYXN0aWNgIGlzIGRpc2FibGVkLiBUaGVyZSdzIHN0aWxsIGEgZnJhbWVcbiAgICAgICAgICAgICAqIG9mIHNwcmluZyBhbmltYXRpb25zIHNvIHdlIHNob3VsZCBsb29rIGludG8gYWRkaW5nIGEgZGlzYWJsZSBzcHJpbmcgb3B0aW9uIHRvIGBpbmVydGlhYC5cbiAgICAgICAgICAgICAqIFdlIGNvdWxkIGRvIHNvbWV0aGluZyBoZXJlIHdoZXJlIHdlIGFmZmVjdCB0aGUgYGJvdW5jZVN0aWZmbmVzc2AgYW5kIGBib3VuY2VEYW1waW5nYFxuICAgICAgICAgICAgICogdXNpbmcgdGhlIHZhbHVlIG9mIGBkcmFnRWxhc3RpY2AuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGJvdW5jZVN0aWZmbmVzcyA9IGRyYWdFbGFzdGljID8gMjAwIDogMTAwMDAwMDtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5jZURhbXBpbmcgPSBkcmFnRWxhc3RpYyA/IDQwIDogMTAwMDAwMDA7XG4gICAgICAgICAgICBjb25zdCBpbmVydGlhID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiaW5lcnRpYVwiLFxuICAgICAgICAgICAgICAgIHZlbG9jaXR5OiBkcmFnTW9tZW50dW0gPyB2ZWxvY2l0eVtheGlzXSA6IDAsXG4gICAgICAgICAgICAgICAgYm91bmNlU3RpZmZuZXNzLFxuICAgICAgICAgICAgICAgIGJvdW5jZURhbXBpbmcsXG4gICAgICAgICAgICAgICAgdGltZUNvbnN0YW50OiA3NTAsXG4gICAgICAgICAgICAgICAgcmVzdERlbHRhOiAxLFxuICAgICAgICAgICAgICAgIHJlc3RTcGVlZDogMTAsXG4gICAgICAgICAgICAgICAgLi4uZHJhZ1RyYW5zaXRpb24sXG4gICAgICAgICAgICAgICAgLi4udHJhbnNpdGlvbixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvLyBJZiB3ZSdyZSBub3QgYW5pbWF0aW5nIG9uIGFuIGV4dGVybmFsbHktcHJvdmlkZWQgYE1vdGlvblZhbHVlYCB3ZSBjYW4gdXNlIHRoZVxuICAgICAgICAgICAgLy8gY29tcG9uZW50J3MgYW5pbWF0aW9uIGNvbnRyb2xzIHdoaWNoIHdpbGwgaGFuZGxlIGludGVyYWN0aW9ucyB3aXRoIHdoaWxlSG92ZXIgKGV0YyksXG4gICAgICAgICAgICAvLyBvdGhlcndpc2Ugd2UganVzdCBoYXZlIHRvIGFuaW1hdGUgdGhlIGBNb3Rpb25WYWx1ZWAgaXRzZWxmLlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRBeGlzVmFsdWVBbmltYXRpb24oYXhpcywgaW5lcnRpYSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBSdW4gYWxsIGFuaW1hdGlvbnMgYW5kIHRoZW4gcmVzb2x2ZSB0aGUgbmV3IGRyYWcgY29uc3RyYWludHMuXG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChtb21lbnR1bUFuaW1hdGlvbnMpLnRoZW4ob25EcmFnVHJhbnNpdGlvbkVuZCk7XG4gICAgfVxuICAgIHN0YXJ0QXhpc1ZhbHVlQW5pbWF0aW9uKGF4aXMsIHRyYW5zaXRpb24pIHtcbiAgICAgICAgY29uc3QgYXhpc1ZhbHVlID0gdGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoYXhpcyk7XG4gICAgICAgIGFkZFZhbHVlVG9XaWxsQ2hhbmdlKHRoaXMudmlzdWFsRWxlbWVudCwgYXhpcyk7XG4gICAgICAgIHJldHVybiBheGlzVmFsdWUuc3RhcnQoYW5pbWF0ZU1vdGlvblZhbHVlKGF4aXMsIGF4aXNWYWx1ZSwgMCwgdHJhbnNpdGlvbiwgdGhpcy52aXN1YWxFbGVtZW50LCBmYWxzZSkpO1xuICAgIH1cbiAgICBzdG9wQW5pbWF0aW9uKCkge1xuICAgICAgICBlYWNoQXhpcygoYXhpcykgPT4gdGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoYXhpcykuc3RvcCgpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRHJhZyB3b3JrcyBkaWZmZXJlbnRseSBkZXBlbmRpbmcgb24gd2hpY2ggcHJvcHMgYXJlIHByb3ZpZGVkLlxuICAgICAqXG4gICAgICogLSBJZiBfZHJhZ1ggYW5kIF9kcmFnWSBhcmUgcHJvdmlkZWQsIHdlIG91dHB1dCB0aGUgZ2VzdHVyZSBkZWx0YSBkaXJlY3RseSB0byB0aG9zZSBtb3Rpb24gdmFsdWVzLlxuICAgICAqIC0gT3RoZXJ3aXNlLCB3ZSBhcHBseSB0aGUgZGVsdGEgdG8gdGhlIHgveSBtb3Rpb24gdmFsdWVzLlxuICAgICAqL1xuICAgIGdldEF4aXNNb3Rpb25WYWx1ZShheGlzKSB7XG4gICAgICAgIGNvbnN0IGRyYWdLZXkgPSBgX2RyYWcke2F4aXMudG9VcHBlckNhc2UoKX1gO1xuICAgICAgICBjb25zdCBwcm9wcyA9IHRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO1xuICAgICAgICBjb25zdCBleHRlcm5hbE1vdGlvblZhbHVlID0gcHJvcHNbZHJhZ0tleV07XG4gICAgICAgIHJldHVybiBleHRlcm5hbE1vdGlvblZhbHVlXG4gICAgICAgICAgICA/IGV4dGVybmFsTW90aW9uVmFsdWVcbiAgICAgICAgICAgIDogdGhpcy52aXN1YWxFbGVtZW50LmdldFZhbHVlKGF4aXMsIChwcm9wcy5pbml0aWFsXG4gICAgICAgICAgICAgICAgPyBwcm9wcy5pbml0aWFsW2F4aXNdXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQpIHx8IDApO1xuICAgIH1cbiAgICBzbmFwVG9DdXJzb3IocG9pbnQpIHtcbiAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZyB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICAgICAgLy8gSWYgd2UncmUgbm90IGRyYWdnaW5nIHRoaXMgYXhpcywgZG8gYW4gZWFybHkgcmV0dXJuLlxuICAgICAgICAgICAgaWYgKCFzaG91bGREcmFnKGF4aXMsIGRyYWcsIHRoaXMuY3VycmVudERpcmVjdGlvbikpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB0aGlzLnZpc3VhbEVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBheGlzVmFsdWUgPSB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKTtcbiAgICAgICAgICAgIGlmIChwcm9qZWN0aW9uICYmIHByb2plY3Rpb24ubGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBtaW4sIG1heCB9ID0gcHJvamVjdGlvbi5sYXlvdXQubGF5b3V0Qm94W2F4aXNdO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFRoZSBsYXlvdXQgbWVhc3VyZW1lbnQgaW5jbHVkZXMgdGhlIGN1cnJlbnQgdHJhbnNmb3JtIHZhbHVlLFxuICAgICAgICAgICAgICAgICAqIHNvIHdlIG5lZWQgdG8gYWRkIGl0IGJhY2sgdG8gZ2V0IHRoZSBjb3JyZWN0IHNuYXAgcG9zaXRpb24uXG4gICAgICAgICAgICAgICAgICogVGhpcyBmaXhlcyBhbiBpc3N1ZSB3aGVyZSBlbGVtZW50cyB3aXRoIGluaXRpYWwgY29vcmRpbmF0ZXNcbiAgICAgICAgICAgICAgICAgKiB3b3VsZCBzbmFwIHRvIHRoZSB3cm9uZyBwb3NpdGlvbiBvbiB0aGUgZmlyc3QgZHJhZy5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gYXhpc1ZhbHVlLmdldCgpIHx8IDA7XG4gICAgICAgICAgICAgICAgYXhpc1ZhbHVlLnNldChwb2ludFtheGlzXSAtIG1peE51bWJlcihtaW4sIG1heCwgMC41KSArIGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogV2hlbiB0aGUgdmlld3BvcnQgcmVzaXplcyB3ZSB3YW50IHRvIGNoZWNrIGlmIHRoZSBtZWFzdXJlZCBjb25zdHJhaW50c1xuICAgICAqIGhhdmUgY2hhbmdlZCBhbmQsIGlmIHNvLCByZXBvc2l0aW9uIHRoZSBlbGVtZW50IHdpdGhpbiB0aG9zZSBuZXcgY29uc3RyYWludHNcbiAgICAgKiByZWxhdGl2ZSB0byB3aGVyZSBpdCB3YXMgYmVmb3JlIHRoZSByZXNpemUuXG4gICAgICovXG4gICAgc2NhbGVQb3NpdGlvbldpdGhpbkNvbnN0cmFpbnRzKCkge1xuICAgICAgICBpZiAoIXRoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB7IGRyYWcsIGRyYWdDb25zdHJhaW50cyB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICBjb25zdCB7IHByb2plY3Rpb24gfSA9IHRoaXMudmlzdWFsRWxlbWVudDtcbiAgICAgICAgaWYgKCFpc1JlZk9iamVjdChkcmFnQ29uc3RyYWludHMpIHx8ICFwcm9qZWN0aW9uIHx8ICF0aGlzLmNvbnN0cmFpbnRzKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvKipcbiAgICAgICAgICogU3RvcCBjdXJyZW50IGFuaW1hdGlvbnMgYXMgdGhlcmUgY2FuIGJlIHZpc3VhbCBnbGl0Y2hpbmcgaWYgd2UgdHJ5IHRvIGRvXG4gICAgICAgICAqIHRoaXMgbWlkLWFuaW1hdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zdG9wQW5pbWF0aW9uKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZWNvcmQgdGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIHRoZSBkcmFnZ2VkIGVsZW1lbnQgcmVsYXRpdmUgdG8gdGhlXG4gICAgICAgICAqIGNvbnN0cmFpbnRzIGJveCBhbmQgc2F2ZSBhcyBhIHByb2dyZXNzIHZhbHVlLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgYm94UHJvZ3Jlc3MgPSB7IHg6IDAsIHk6IDAgfTtcbiAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGF4aXNWYWx1ZSA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO1xuICAgICAgICAgICAgaWYgKGF4aXNWYWx1ZSAmJiB0aGlzLmNvbnN0cmFpbnRzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhdGVzdCA9IGF4aXNWYWx1ZS5nZXQoKTtcbiAgICAgICAgICAgICAgICBib3hQcm9ncmVzc1theGlzXSA9IGNhbGNPcmlnaW4oeyBtaW46IGxhdGVzdCwgbWF4OiBsYXRlc3QgfSwgdGhpcy5jb25zdHJhaW50c1theGlzXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogVXBkYXRlIHRoZSBsYXlvdXQgb2YgdGhpcyBlbGVtZW50IGFuZCByZXNvbHZlIHRoZSBsYXRlc3QgZHJhZyBjb25zdHJhaW50c1xuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgeyB0cmFuc2Zvcm1UZW1wbGF0ZSB9ID0gdGhpcy52aXN1YWxFbGVtZW50LmdldFByb3BzKCk7XG4gICAgICAgIHRoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVRlbXBsYXRlXG4gICAgICAgICAgICA/IHRyYW5zZm9ybVRlbXBsYXRlKHt9LCBcIlwiKVxuICAgICAgICAgICAgOiBcIm5vbmVcIjtcbiAgICAgICAgcHJvamVjdGlvbi5yb290ICYmIHByb2plY3Rpb24ucm9vdC51cGRhdGVTY3JvbGwoKTtcbiAgICAgICAgcHJvamVjdGlvbi51cGRhdGVMYXlvdXQoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJlc2V0IGNvbnN0cmFpbnRzIHNvIHJlc29sdmVDb25zdHJhaW50cygpIHdpbGwgcmVjYWxjdWxhdGUgdGhlbVxuICAgICAgICAgKiB3aXRoIHRoZSBmcmVzaGx5IG1lYXN1cmVkIGxheW91dCByYXRoZXIgdGhhbiByZXR1cm5pbmcgdGhlIGNhY2hlZCB2YWx1ZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY29uc3RyYWludHMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZXNvbHZlQ29uc3RyYWludHMoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvciBlYWNoIGF4aXMsIGNhbGN1bGF0ZSB0aGUgY3VycmVudCBwcm9ncmVzcyBvZiB0aGUgbGF5b3V0IGF4aXNcbiAgICAgICAgICogd2l0aGluIHRoZSBuZXcgY29uc3RyYWludHMuXG4gICAgICAgICAqL1xuICAgICAgICBlYWNoQXhpcygoYXhpcykgPT4ge1xuICAgICAgICAgICAgaWYgKCFzaG91bGREcmFnKGF4aXMsIGRyYWcsIG51bGwpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQ2FsY3VsYXRlIGEgbmV3IHRyYW5zZm9ybSBiYXNlZCBvbiB0aGUgcHJldmlvdXMgYm94IHByb2dyZXNzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGF4aXNWYWx1ZSA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO1xuICAgICAgICAgICAgY29uc3QgeyBtaW4sIG1heCB9ID0gdGhpcy5jb25zdHJhaW50c1theGlzXTtcbiAgICAgICAgICAgIGF4aXNWYWx1ZS5zZXQobWl4TnVtYmVyKG1pbiwgbWF4LCBib3hQcm9ncmVzc1theGlzXSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZsdXNoIHRoZSB1cGRhdGVkIHRyYW5zZm9ybSB0byB0aGUgRE9NIHN5bmNocm9ub3VzbHkgdG8gcHJldmVudFxuICAgICAgICAgKiBhIHZpc3VhbCBmbGFzaCBhdCB0aGUgZWxlbWVudCdzIENTUyBsYXlvdXQgcG9zaXRpb24gKDAsMCkgd2hlblxuICAgICAgICAgKiB0aGUgdHJhbnNmb3JtIHdhcyBzdHJpcHBlZCBmb3IgbWVhc3VyZW1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCk7XG4gICAgfVxuICAgIGFkZExpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZpc3VhbEVsZW1lbnQuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgZWxlbWVudERyYWdDb250cm9scy5zZXQodGhpcy52aXN1YWxFbGVtZW50LCB0aGlzKTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50O1xuICAgICAgICAvKipcbiAgICAgICAgICogQXR0YWNoIGEgcG9pbnRlcmRvd24gZXZlbnQgbGlzdGVuZXIgb24gdGhpcyBET00gZWxlbWVudCB0byBpbml0aWF0ZSBkcmFnIHRyYWNraW5nLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgc3RvcFBvaW50ZXJMaXN0ZW5lciA9IGFkZFBvaW50ZXJFdmVudChlbGVtZW50LCBcInBvaW50ZXJkb3duXCIsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBkcmFnLCBkcmFnTGlzdGVuZXIgPSB0cnVlIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE9ubHkgYmxvY2sgZHJhZyBpZiBjbGlja2luZyBvbiBhIHRleHQgaW5wdXQgY2hpbGQgZWxlbWVudFxuICAgICAgICAgICAgICogKGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBjb250ZW50ZWRpdGFibGUpIHdoZXJlIHVzZXJzIG1pZ2h0XG4gICAgICAgICAgICAgKiB3YW50IHRvIHNlbGVjdCB0ZXh0IG9yIGludGVyYWN0IHdpdGggdGhlIGNvbnRyb2wuXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogQnV0dG9ucyBhbmQgbGlua3MgZG9uJ3QgYmxvY2sgZHJhZyBzaW5jZSB0aGV5IGRvbid0IGhhdmVcbiAgICAgICAgICAgICAqIGNsaWNrLWFuZC1tb3ZlIGFjdGlvbnMgb2YgdGhlaXIgb3duLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBpc0NsaWNraW5nVGV4dElucHV0Q2hpbGQgPSB0YXJnZXQgIT09IGVsZW1lbnQgJiYgaXNFbGVtZW50VGV4dElucHV0KHRhcmdldCk7XG4gICAgICAgICAgICBpZiAoZHJhZyAmJiBkcmFnTGlzdGVuZXIgJiYgIWlzQ2xpY2tpbmdUZXh0SW5wdXRDaGlsZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnQoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHVzaW5nIHJlZi1iYXNlZCBjb25zdHJhaW50cywgb2JzZXJ2ZSBib3RoIHRoZSBkcmFnZ2FibGUgZWxlbWVudFxuICAgICAgICAgKiBhbmQgdGhlIGNvbnN0cmFpbnQgY29udGFpbmVyIGZvciBzaXplIGNoYW5nZXMgdmlhIFJlc2l6ZU9ic2VydmVyLlxuICAgICAgICAgKiBTZXR1cCBpcyBkZWZlcnJlZCBiZWNhdXNlIGRyYWdDb25zdHJhaW50cy5jdXJyZW50IGlzIG51bGwgd2hlblxuICAgICAgICAgKiBhZGRMaXN0ZW5lcnMgZmlyc3QgcnVucyAoUmVhY3QgaGFzbid0IGNvbW1pdHRlZCB0aGUgcmVmIHlldCkuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgc3RvcFJlc2l6ZU9ic2VydmVycztcbiAgICAgICAgY29uc3QgbWVhc3VyZURyYWdDb25zdHJhaW50cyA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZ0NvbnN0cmFpbnRzIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgICAgICBpZiAoaXNSZWZPYmplY3QoZHJhZ0NvbnN0cmFpbnRzKSAmJiBkcmFnQ29uc3RyYWludHMuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uc3RyYWludHMgPSB0aGlzLnJlc29sdmVSZWZDb25zdHJhaW50cygpO1xuICAgICAgICAgICAgICAgIGlmICghc3RvcFJlc2l6ZU9ic2VydmVycykge1xuICAgICAgICAgICAgICAgICAgICBzdG9wUmVzaXplT2JzZXJ2ZXJzID0gc3RhcnRSZXNpemVPYnNlcnZlcnMoZWxlbWVudCwgZHJhZ0NvbnN0cmFpbnRzLmN1cnJlbnQsICgpID0+IHRoaXMuc2NhbGVQb3NpdGlvbldpdGhpbkNvbnN0cmFpbnRzKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB0aGlzLnZpc3VhbEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHN0b3BNZWFzdXJlTGF5b3V0TGlzdGVuZXIgPSBwcm9qZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoXCJtZWFzdXJlXCIsIG1lYXN1cmVEcmFnQ29uc3RyYWludHMpO1xuICAgICAgICBpZiAocHJvamVjdGlvbiAmJiAhcHJvamVjdGlvbi5sYXlvdXQpIHtcbiAgICAgICAgICAgIHByb2plY3Rpb24ucm9vdCAmJiBwcm9qZWN0aW9uLnJvb3QudXBkYXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICBwcm9qZWN0aW9uLnVwZGF0ZUxheW91dCgpO1xuICAgICAgICB9XG4gICAgICAgIGZyYW1lLnJlYWQobWVhc3VyZURyYWdDb25zdHJhaW50cyk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBdHRhY2ggYSB3aW5kb3cgcmVzaXplIGxpc3RlbmVyIHRvIHNjYWxlIHRoZSBkcmFnZ2FibGUgdGFyZ2V0IHdpdGhpbiBpdHMgZGVmaW5lZFxuICAgICAgICAgKiBjb25zdHJhaW50cyBhcyB0aGUgd2luZG93IHJlc2l6ZXMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBzdG9wUmVzaXplTGlzdGVuZXIgPSBhZGREb21FdmVudCh3aW5kb3csIFwicmVzaXplXCIsICgpID0+IHRoaXMuc2NhbGVQb3NpdGlvbldpdGhpbkNvbnN0cmFpbnRzKCkpO1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhlIGVsZW1lbnQncyBsYXlvdXQgY2hhbmdlcywgY2FsY3VsYXRlIHRoZSBkZWx0YSBhbmQgYXBwbHkgdGhhdCB0b1xuICAgICAgICAgKiB0aGUgZHJhZyBnZXN0dXJlJ3Mgb3JpZ2luIHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgc3RvcExheW91dFVwZGF0ZUxpc3RlbmVyID0gcHJvamVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFwiZGlkVXBkYXRlXCIsICgoeyBkZWx0YSwgaGFzTGF5b3V0Q2hhbmdlZCB9KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0RyYWdnaW5nICYmIGhhc0xheW91dENoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICBlYWNoQXhpcygoYXhpcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb3Rpb25WYWx1ZSA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vdGlvblZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblBvaW50W2F4aXNdICs9IGRlbHRhW2F4aXNdLnRyYW5zbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgbW90aW9uVmFsdWUuc2V0KG1vdGlvblZhbHVlLmdldCgpICsgZGVsdGFbYXhpc10udHJhbnNsYXRlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHN0b3BSZXNpemVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgc3RvcFBvaW50ZXJMaXN0ZW5lcigpO1xuICAgICAgICAgICAgc3RvcE1lYXN1cmVMYXlvdXRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgc3RvcExheW91dFVwZGF0ZUxpc3RlbmVyICYmIHN0b3BMYXlvdXRVcGRhdGVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgc3RvcFJlc2l6ZU9ic2VydmVycyAmJiBzdG9wUmVzaXplT2JzZXJ2ZXJzKCk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldFByb3BzKCkge1xuICAgICAgICBjb25zdCBwcm9wcyA9IHRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO1xuICAgICAgICBjb25zdCB7IGRyYWcgPSBmYWxzZSwgZHJhZ0RpcmVjdGlvbkxvY2sgPSBmYWxzZSwgZHJhZ1Byb3BhZ2F0aW9uID0gZmFsc2UsIGRyYWdDb25zdHJhaW50cyA9IGZhbHNlLCBkcmFnRWxhc3RpYyA9IGRlZmF1bHRFbGFzdGljLCBkcmFnTW9tZW50dW0gPSB0cnVlLCB9ID0gcHJvcHM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgIGRyYWcsXG4gICAgICAgICAgICBkcmFnRGlyZWN0aW9uTG9jayxcbiAgICAgICAgICAgIGRyYWdQcm9wYWdhdGlvbixcbiAgICAgICAgICAgIGRyYWdDb25zdHJhaW50cyxcbiAgICAgICAgICAgIGRyYWdFbGFzdGljLFxuICAgICAgICAgICAgZHJhZ01vbWVudHVtLFxuICAgICAgICB9O1xuICAgIH1cbn1cbmZ1bmN0aW9uIHNraXBGaXJzdENhbGwoY2FsbGJhY2spIHtcbiAgICBsZXQgaXNGaXJzdCA9IHRydWU7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGlzRmlyc3QpIHtcbiAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjYWxsYmFjaygpO1xuICAgIH07XG59XG5mdW5jdGlvbiBzdGFydFJlc2l6ZU9ic2VydmVycyhlbGVtZW50LCBjb25zdHJhaW50c0VsZW1lbnQsIG9uUmVzaXplKSB7XG4gICAgY29uc3Qgc3RvcEVsZW1lbnQgPSByZXNpemUoZWxlbWVudCwgc2tpcEZpcnN0Q2FsbChvblJlc2l6ZSkpO1xuICAgIGNvbnN0IHN0b3BDb250YWluZXIgPSByZXNpemUoY29uc3RyYWludHNFbGVtZW50LCBza2lwRmlyc3RDYWxsKG9uUmVzaXplKSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgc3RvcEVsZW1lbnQoKTtcbiAgICAgICAgc3RvcENvbnRhaW5lcigpO1xuICAgIH07XG59XG5mdW5jdGlvbiBzaG91bGREcmFnKGRpcmVjdGlvbiwgZHJhZywgY3VycmVudERpcmVjdGlvbikge1xuICAgIHJldHVybiAoKGRyYWcgPT09IHRydWUgfHwgZHJhZyA9PT0gZGlyZWN0aW9uKSAmJlxuICAgICAgICAoY3VycmVudERpcmVjdGlvbiA9PT0gbnVsbCB8fCBjdXJyZW50RGlyZWN0aW9uID09PSBkaXJlY3Rpb24pKTtcbn1cbi8qKlxuICogQmFzZWQgb24gYW4geC95IG9mZnNldCBkZXRlcm1pbmUgdGhlIGN1cnJlbnQgZHJhZyBkaXJlY3Rpb24uIElmIGJvdGggYXhpcycgb2Zmc2V0cyBhcmUgbG93ZXJcbiAqIHRoYW4gdGhlIHByb3ZpZGVkIHRocmVzaG9sZCwgcmV0dXJuIGBudWxsYC5cbiAqXG4gKiBAcGFyYW0gb2Zmc2V0IC0gVGhlIHgveSBvZmZzZXQgZnJvbSBvcmlnaW4uXG4gKiBAcGFyYW0gbG9ja1RocmVzaG9sZCAtIChPcHRpb25hbCkgLSB0aGUgbWluaW11bSBhYnNvbHV0ZSBvZmZzZXQgYmVmb3JlIHdlIGNhbiBkZXRlcm1pbmUgYSBkcmFnIGRpcmVjdGlvbi5cbiAqL1xuZnVuY3Rpb24gZ2V0Q3VycmVudERpcmVjdGlvbihvZmZzZXQsIGxvY2tUaHJlc2hvbGQgPSAxMCkge1xuICAgIGxldCBkaXJlY3Rpb24gPSBudWxsO1xuICAgIGlmIChNYXRoLmFicyhvZmZzZXQueSkgPiBsb2NrVGhyZXNob2xkKSB7XG4gICAgICAgIGRpcmVjdGlvbiA9IFwieVwiO1xuICAgIH1cbiAgICBlbHNlIGlmIChNYXRoLmFicyhvZmZzZXQueCkgPiBsb2NrVGhyZXNob2xkKSB7XG4gICAgICAgIGRpcmVjdGlvbiA9IFwieFwiO1xuICAgIH1cbiAgICByZXR1cm4gZGlyZWN0aW9uO1xufVxuXG5leHBvcnQgeyBWaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzLCBlbGVtZW50RHJhZ0NvbnRyb2xzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1WaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/drag/index.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DragGesture: () => (/* binding */ DragGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _VisualElementDragControls_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VisualElementDragControls.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs\");\n\n\n\n\nclass DragGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor(node) {\n super(node);\n this.removeGroupControls = motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\n this.removeListeners = motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\n this.controls = new _VisualElementDragControls_mjs__WEBPACK_IMPORTED_MODULE_2__.VisualElementDragControls(node);\n }\n mount() {\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n const { dragControls } = this.node.getProps();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n this.removeListeners = this.controls.addListeners() || motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\n }\n update() {\n const { dragControls } = this.node.getProps();\n const { dragControls: prevDragControls } = this.node.prevProps || {};\n if (dragControls !== prevDragControls) {\n this.removeGroupControls();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n }\n }\n unmount() {\n this.removeGroupControls();\n this.removeListeners();\n /**\n * In React 19, during list reorder reconciliation, components may\n * briefly unmount and remount while the drag is still active. If we're\n * actively dragging, we should NOT end the pan session - it will\n * continue tracking pointer events via its window-level listeners.\n *\n * The pan session will be properly cleaned up when:\n * 1. The drag ends naturally (pointerup/pointercancel)\n * 2. The component is truly removed from the DOM\n */\n if (!this.controls.isDragging) {\n this.controls.endPanSession();\n }\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFxQztBQUNEO0FBQ3dDOztBQUU1RSwwQkFBMEIsK0NBQU87QUFDakM7QUFDQTtBQUNBLG1DQUFtQyw4Q0FBSTtBQUN2QywrQkFBK0IsOENBQUk7QUFDbkMsNEJBQTRCLHFGQUF5QjtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixlQUFlO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLCtEQUErRCw4Q0FBSTtBQUNuRTtBQUNBO0FBQ0EsZ0JBQWdCLGVBQWU7QUFDL0IsZ0JBQWdCLGlDQUFpQztBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFdUI7QUFDdkIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgVmlzdWFsRWxlbWVudERyYWdDb250cm9scyB9IGZyb20gJy4vVmlzdWFsRWxlbWVudERyYWdDb250cm9scy5tanMnO1xuXG5jbGFzcyBEcmFnR2VzdHVyZSBleHRlbmRzIEZlYXR1cmUge1xuICAgIGNvbnN0cnVjdG9yKG5vZGUpIHtcbiAgICAgICAgc3VwZXIobm9kZSk7XG4gICAgICAgIHRoaXMucmVtb3ZlR3JvdXBDb250cm9scyA9IG5vb3A7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzID0gbm9vcDtcbiAgICAgICAgdGhpcy5jb250cm9scyA9IG5ldyBWaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzKG5vZGUpO1xuICAgIH1cbiAgICBtb3VudCgpIHtcbiAgICAgICAgLy8gSWYgd2UndmUgYmVlbiBwcm92aWRlZCBhIERyYWdDb250cm9scyBmb3IgbWFudWFsIGNvbnRyb2wgb3ZlciB0aGUgZHJhZyBnZXN0dXJlLFxuICAgICAgICAvLyBzdWJzY3JpYmUgdGhpcyBjb21wb25lbnQgdG8gaXQgb24gbW91bnQuXG4gICAgICAgIGNvbnN0IHsgZHJhZ0NvbnRyb2xzIH0gPSB0aGlzLm5vZGUuZ2V0UHJvcHMoKTtcbiAgICAgICAgaWYgKGRyYWdDb250cm9scykge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVHcm91cENvbnRyb2xzID0gZHJhZ0NvbnRyb2xzLnN1YnNjcmliZSh0aGlzLmNvbnRyb2xzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycyA9IHRoaXMuY29udHJvbHMuYWRkTGlzdGVuZXJzKCkgfHwgbm9vcDtcbiAgICB9XG4gICAgdXBkYXRlKCkge1xuICAgICAgICBjb25zdCB7IGRyYWdDb250cm9scyB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XG4gICAgICAgIGNvbnN0IHsgZHJhZ0NvbnRyb2xzOiBwcmV2RHJhZ0NvbnRyb2xzIH0gPSB0aGlzLm5vZGUucHJldlByb3BzIHx8IHt9O1xuICAgICAgICBpZiAoZHJhZ0NvbnRyb2xzICE9PSBwcmV2RHJhZ0NvbnRyb2xzKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUdyb3VwQ29udHJvbHMoKTtcbiAgICAgICAgICAgIGlmIChkcmFnQ29udHJvbHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUdyb3VwQ29udHJvbHMgPSBkcmFnQ29udHJvbHMuc3Vic2NyaWJlKHRoaXMuY29udHJvbHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHVubW91bnQoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlR3JvdXBDb250cm9scygpO1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xuICAgICAgICAvKipcbiAgICAgICAgICogSW4gUmVhY3QgMTksIGR1cmluZyBsaXN0IHJlb3JkZXIgcmVjb25jaWxpYXRpb24sIGNvbXBvbmVudHMgbWF5XG4gICAgICAgICAqIGJyaWVmbHkgdW5tb3VudCBhbmQgcmVtb3VudCB3aGlsZSB0aGUgZHJhZyBpcyBzdGlsbCBhY3RpdmUuIElmIHdlJ3JlXG4gICAgICAgICAqIGFjdGl2ZWx5IGRyYWdnaW5nLCB3ZSBzaG91bGQgTk9UIGVuZCB0aGUgcGFuIHNlc3Npb24gLSBpdCB3aWxsXG4gICAgICAgICAqIGNvbnRpbnVlIHRyYWNraW5nIHBvaW50ZXIgZXZlbnRzIHZpYSBpdHMgd2luZG93LWxldmVsIGxpc3RlbmVycy5cbiAgICAgICAgICpcbiAgICAgICAgICogVGhlIHBhbiBzZXNzaW9uIHdpbGwgYmUgcHJvcGVybHkgY2xlYW5lZCB1cCB3aGVuOlxuICAgICAgICAgKiAxLiBUaGUgZHJhZyBlbmRzIG5hdHVyYWxseSAocG9pbnRlcnVwL3BvaW50ZXJjYW5jZWwpXG4gICAgICAgICAqIDIuIFRoZSBjb21wb25lbnQgaXMgdHJ1bHkgcmVtb3ZlZCBmcm9tIHRoZSBET01cbiAgICAgICAgICovXG4gICAgICAgIGlmICghdGhpcy5jb250cm9scy5pc0RyYWdnaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLmVuZFBhblNlc3Npb24oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgRHJhZ0dlc3R1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyConstraints: () => (/* binding */ applyConstraints),\n/* harmony export */ calcOrigin: () => (/* binding */ calcOrigin),\n/* harmony export */ calcRelativeAxisConstraints: () => (/* binding */ calcRelativeAxisConstraints),\n/* harmony export */ calcRelativeConstraints: () => (/* binding */ calcRelativeConstraints),\n/* harmony export */ calcViewportAxisConstraints: () => (/* binding */ calcViewportAxisConstraints),\n/* harmony export */ calcViewportConstraints: () => (/* binding */ calcViewportConstraints),\n/* harmony export */ defaultElastic: () => (/* binding */ defaultElastic),\n/* harmony export */ rebaseAxisConstraints: () => (/* binding */ rebaseAxisConstraints),\n/* harmony export */ resolveAxisElastic: () => (/* binding */ resolveAxisElastic),\n/* harmony export */ resolveDragElastic: () => (/* binding */ resolveDragElastic),\n/* harmony export */ resolvePointElastic: () => (/* binding */ resolvePointElastic)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n\n\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic\n ? (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(min, point, elastic.min)\n : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic\n ? (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(max, point, elastic.max)\n : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.calcLength)(source);\n const targetLength = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.calcLength)(target);\n if (targetLength > sourceLength) {\n origin = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.progress)(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.progress)(source.min, source.max - targetLength, target.min);\n }\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\n\n//# sourceMappingURL=constraints.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy91dGlscy9jb25zdHJhaW50cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQW1EO0FBQ0o7O0FBRS9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsVUFBVTtBQUM3QztBQUNBO0FBQ0E7QUFDQSxjQUFjLHFEQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLHFEQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QywwQkFBMEI7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixzREFBVTtBQUNuQyx5QkFBeUIsc0RBQVU7QUFDbkM7QUFDQSxpQkFBaUIsc0RBQVE7QUFDekI7QUFDQTtBQUNBLGlCQUFpQixzREFBUTtBQUN6QjtBQUNBLFdBQVcsbURBQUs7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFd1A7QUFDeFAiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvdXRpbHMvY29uc3RyYWludHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1peE51bWJlciwgY2FsY0xlbmd0aCB9IGZyb20gJ21vdGlvbi1kb20nO1xuaW1wb3J0IHsgcHJvZ3Jlc3MsIGNsYW1wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuLyoqXG4gKiBBcHBseSBjb25zdHJhaW50cyB0byBhIHBvaW50LiBUaGVzZSBjb25zdHJhaW50cyBhcmUgYm90aCBwaHlzaWNhbCBhbG9uZyBhblxuICogYXhpcywgYW5kIGFuIGVsYXN0aWMgZmFjdG9yIHRoYXQgZGV0ZXJtaW5lcyBob3cgbXVjaCB0byBjb25zdHJhaW4gdGhlIHBvaW50XG4gKiBieSBpZiBpdCBkb2VzIGxpZSBvdXRzaWRlIHRoZSBkZWZpbmVkIHBhcmFtZXRlcnMuXG4gKi9cbmZ1bmN0aW9uIGFwcGx5Q29uc3RyYWludHMocG9pbnQsIHsgbWluLCBtYXggfSwgZWxhc3RpYykge1xuICAgIGlmIChtaW4gIT09IHVuZGVmaW5lZCAmJiBwb2ludCA8IG1pbikge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgbWluIHBvaW50IGRlZmluZWQsIGFuZCB0aGlzIGlzIG91dHNpZGUgb2YgdGhhdCwgY29uc3RyYWluXG4gICAgICAgIHBvaW50ID0gZWxhc3RpY1xuICAgICAgICAgICAgPyBtaXhOdW1iZXIobWluLCBwb2ludCwgZWxhc3RpYy5taW4pXG4gICAgICAgICAgICA6IE1hdGgubWF4KHBvaW50LCBtaW4pO1xuICAgIH1cbiAgICBlbHNlIGlmIChtYXggIT09IHVuZGVmaW5lZCAmJiBwb2ludCA+IG1heCkge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgbWF4IHBvaW50IGRlZmluZWQsIGFuZCB0aGlzIGlzIG91dHNpZGUgb2YgdGhhdCwgY29uc3RyYWluXG4gICAgICAgIHBvaW50ID0gZWxhc3RpY1xuICAgICAgICAgICAgPyBtaXhOdW1iZXIobWF4LCBwb2ludCwgZWxhc3RpYy5tYXgpXG4gICAgICAgICAgICA6IE1hdGgubWluKHBvaW50LCBtYXgpO1xuICAgIH1cbiAgICByZXR1cm4gcG9pbnQ7XG59XG4vKipcbiAqIENhbGN1bGF0ZSBjb25zdHJhaW50cyBpbiB0ZXJtcyBvZiB0aGUgdmlld3BvcnQgd2hlbiBkZWZpbmVkIHJlbGF0aXZlbHkgdG8gdGhlXG4gKiBtZWFzdXJlZCBheGlzLiBUaGlzIGlzIG1lYXN1cmVkIGZyb20gdGhlIG5lYXJlc3QgZWRnZSwgc28gYSBtYXggY29uc3RyYWludCBvZiAyMDBcbiAqIG9uIGFuIGF4aXMgd2l0aCBhIG1heCB2YWx1ZSBvZiAzMDAgd291bGQgcmV0dXJuIGEgY29uc3RyYWludCBvZiA1MDAgLSBheGlzIGxlbmd0aFxuICovXG5mdW5jdGlvbiBjYWxjUmVsYXRpdmVBeGlzQ29uc3RyYWludHMoYXhpcywgbWluLCBtYXgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBtaW46IG1pbiAhPT0gdW5kZWZpbmVkID8gYXhpcy5taW4gKyBtaW4gOiB1bmRlZmluZWQsXG4gICAgICAgIG1heDogbWF4ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gYXhpcy5tYXggKyBtYXggLSAoYXhpcy5tYXggLSBheGlzLm1pbilcbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG59XG4vKipcbiAqIENhbGN1bGF0ZSBjb25zdHJhaW50cyBpbiB0ZXJtcyBvZiB0aGUgdmlld3BvcnQgd2hlblxuICogZGVmaW5lZCByZWxhdGl2ZWx5IHRvIHRoZSBtZWFzdXJlZCBib3VuZGluZyBib3guXG4gKi9cbmZ1bmN0aW9uIGNhbGNSZWxhdGl2ZUNvbnN0cmFpbnRzKGxheW91dEJveCwgeyB0b3AsIGxlZnQsIGJvdHRvbSwgcmlnaHQgfSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHg6IGNhbGNSZWxhdGl2ZUF4aXNDb25zdHJhaW50cyhsYXlvdXRCb3gueCwgbGVmdCwgcmlnaHQpLFxuICAgICAgICB5OiBjYWxjUmVsYXRpdmVBeGlzQ29uc3RyYWludHMobGF5b3V0Qm94LnksIHRvcCwgYm90dG9tKSxcbiAgICB9O1xufVxuLyoqXG4gKiBDYWxjdWxhdGUgdmlld3BvcnQgY29uc3RyYWludHMgd2hlbiBkZWZpbmVkIGFzIGFub3RoZXIgdmlld3BvcnQtcmVsYXRpdmUgYXhpc1xuICovXG5mdW5jdGlvbiBjYWxjVmlld3BvcnRBeGlzQ29uc3RyYWludHMobGF5b3V0QXhpcywgY29uc3RyYWludHNBeGlzKSB7XG4gICAgbGV0IG1pbiA9IGNvbnN0cmFpbnRzQXhpcy5taW4gLSBsYXlvdXRBeGlzLm1pbjtcbiAgICBsZXQgbWF4ID0gY29uc3RyYWludHNBeGlzLm1heCAtIGxheW91dEF4aXMubWF4O1xuICAgIC8vIElmIHRoZSBjb25zdHJhaW50cyBheGlzIGlzIGFjdHVhbGx5IHNtYWxsZXIgdGhhbiB0aGUgbGF5b3V0IGF4aXMgdGhlbiB3ZSBjYW5cbiAgICAvLyBmbGlwIHRoZSBjb25zdHJhaW50c1xuICAgIGlmIChjb25zdHJhaW50c0F4aXMubWF4IC0gY29uc3RyYWludHNBeGlzLm1pbiA8XG4gICAgICAgIGxheW91dEF4aXMubWF4IC0gbGF5b3V0QXhpcy5taW4pIHtcbiAgICAgICAgW21pbiwgbWF4XSA9IFttYXgsIG1pbl07XG4gICAgfVxuICAgIHJldHVybiB7IG1pbiwgbWF4IH07XG59XG4vKipcbiAqIENhbGN1bGF0ZSB2aWV3cG9ydCBjb25zdHJhaW50cyB3aGVuIGRlZmluZWQgYXMgYW5vdGhlciB2aWV3cG9ydC1yZWxhdGl2ZSBib3hcbiAqL1xuZnVuY3Rpb24gY2FsY1ZpZXdwb3J0Q29uc3RyYWludHMobGF5b3V0Qm94LCBjb25zdHJhaW50c0JveCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHg6IGNhbGNWaWV3cG9ydEF4aXNDb25zdHJhaW50cyhsYXlvdXRCb3gueCwgY29uc3RyYWludHNCb3gueCksXG4gICAgICAgIHk6IGNhbGNWaWV3cG9ydEF4aXNDb25zdHJhaW50cyhsYXlvdXRCb3gueSwgY29uc3RyYWludHNCb3gueSksXG4gICAgfTtcbn1cbi8qKlxuICogQ2FsY3VsYXRlIGEgdHJhbnNmb3JtIG9yaWdpbiByZWxhdGl2ZSB0byB0aGUgc291cmNlIGF4aXMsIGJldHdlZW4gMC0xLCB0aGF0IHJlc3VsdHNcbiAqIGluIGFuIGFzdGhldGljYWxseSBwbGVhc2luZyBzY2FsZS90cmFuc2Zvcm0gbmVlZGVkIHRvIHByb2plY3QgZnJvbSBzb3VyY2UgdG8gdGFyZ2V0LlxuICovXG5mdW5jdGlvbiBjYWxjT3JpZ2luKHNvdXJjZSwgdGFyZ2V0KSB7XG4gICAgbGV0IG9yaWdpbiA9IDAuNTtcbiAgICBjb25zdCBzb3VyY2VMZW5ndGggPSBjYWxjTGVuZ3RoKHNvdXJjZSk7XG4gICAgY29uc3QgdGFyZ2V0TGVuZ3RoID0gY2FsY0xlbmd0aCh0YXJnZXQpO1xuICAgIGlmICh0YXJnZXRMZW5ndGggPiBzb3VyY2VMZW5ndGgpIHtcbiAgICAgICAgb3JpZ2luID0gcHJvZ3Jlc3ModGFyZ2V0Lm1pbiwgdGFyZ2V0Lm1heCAtIHNvdXJjZUxlbmd0aCwgc291cmNlLm1pbik7XG4gICAgfVxuICAgIGVsc2UgaWYgKHNvdXJjZUxlbmd0aCA+IHRhcmdldExlbmd0aCkge1xuICAgICAgICBvcmlnaW4gPSBwcm9ncmVzcyhzb3VyY2UubWluLCBzb3VyY2UubWF4IC0gdGFyZ2V0TGVuZ3RoLCB0YXJnZXQubWluKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsYW1wKDAsIDEsIG9yaWdpbik7XG59XG4vKipcbiAqIFJlYmFzZSB0aGUgY2FsY3VsYXRlZCB2aWV3cG9ydCBjb25zdHJhaW50cyByZWxhdGl2ZSB0byB0aGUgbGF5b3V0Lm1pbiBwb2ludC5cbiAqL1xuZnVuY3Rpb24gcmViYXNlQXhpc0NvbnN0cmFpbnRzKGxheW91dCwgY29uc3RyYWludHMpIHtcbiAgICBjb25zdCByZWxhdGl2ZUNvbnN0cmFpbnRzID0ge307XG4gICAgaWYgKGNvbnN0cmFpbnRzLm1pbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlbGF0aXZlQ29uc3RyYWludHMubWluID0gY29uc3RyYWludHMubWluIC0gbGF5b3V0Lm1pbjtcbiAgICB9XG4gICAgaWYgKGNvbnN0cmFpbnRzLm1heCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlbGF0aXZlQ29uc3RyYWludHMubWF4ID0gY29uc3RyYWludHMubWF4IC0gbGF5b3V0Lm1pbjtcbiAgICB9XG4gICAgcmV0dXJuIHJlbGF0aXZlQ29uc3RyYWludHM7XG59XG5jb25zdCBkZWZhdWx0RWxhc3RpYyA9IDAuMzU7XG4vKipcbiAqIEFjY2VwdHMgYSBkcmFnRWxhc3RpYyBwcm9wIGFuZCByZXR1cm5zIHJlc29sdmVkIGVsYXN0aWMgdmFsdWVzIGZvciBlYWNoIGF4aXMuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVEcmFnRWxhc3RpYyhkcmFnRWxhc3RpYyA9IGRlZmF1bHRFbGFzdGljKSB7XG4gICAgaWYgKGRyYWdFbGFzdGljID09PSBmYWxzZSkge1xuICAgICAgICBkcmFnRWxhc3RpYyA9IDA7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRyYWdFbGFzdGljID09PSB0cnVlKSB7XG4gICAgICAgIGRyYWdFbGFzdGljID0gZGVmYXVsdEVsYXN0aWM7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHg6IHJlc29sdmVBeGlzRWxhc3RpYyhkcmFnRWxhc3RpYywgXCJsZWZ0XCIsIFwicmlnaHRcIiksXG4gICAgICAgIHk6IHJlc29sdmVBeGlzRWxhc3RpYyhkcmFnRWxhc3RpYywgXCJ0b3BcIiwgXCJib3R0b21cIiksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVBeGlzRWxhc3RpYyhkcmFnRWxhc3RpYywgbWluTGFiZWwsIG1heExhYmVsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWluOiByZXNvbHZlUG9pbnRFbGFzdGljKGRyYWdFbGFzdGljLCBtaW5MYWJlbCksXG4gICAgICAgIG1heDogcmVzb2x2ZVBvaW50RWxhc3RpYyhkcmFnRWxhc3RpYywgbWF4TGFiZWwpLFxuICAgIH07XG59XG5mdW5jdGlvbiByZXNvbHZlUG9pbnRFbGFzdGljKGRyYWdFbGFzdGljLCBsYWJlbCkge1xuICAgIHJldHVybiB0eXBlb2YgZHJhZ0VsYXN0aWMgPT09IFwibnVtYmVyXCJcbiAgICAgICAgPyBkcmFnRWxhc3RpY1xuICAgICAgICA6IGRyYWdFbGFzdGljW2xhYmVsXSB8fCAwO1xufVxuXG5leHBvcnQgeyBhcHBseUNvbnN0cmFpbnRzLCBjYWxjT3JpZ2luLCBjYWxjUmVsYXRpdmVBeGlzQ29uc3RyYWludHMsIGNhbGNSZWxhdGl2ZUNvbnN0cmFpbnRzLCBjYWxjVmlld3BvcnRBeGlzQ29uc3RyYWludHMsIGNhbGNWaWV3cG9ydENvbnN0cmFpbnRzLCBkZWZhdWx0RWxhc3RpYywgcmViYXNlQXhpc0NvbnN0cmFpbnRzLCByZXNvbHZlQXhpc0VsYXN0aWMsIHJlc29sdmVEcmFnRWxhc3RpYywgcmVzb2x2ZVBvaW50RWxhc3RpYyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RyYWludHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/focus.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/focus.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusGesture: () => (/* binding */ FocusGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n\n\n\nclass FocusGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.pipe)((0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.addDomEvent)(this.node.current, \"focus\", () => this.onFocus()), (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.addDomEvent)(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=focus.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZm9jdXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBa0Q7QUFDZDs7QUFFcEMsMkJBQTJCLCtDQUFPO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixrREFBSSxDQUFDLHVEQUFXLG9EQUFvRCx1REFBVztBQUN0RztBQUNBO0FBQ0E7O0FBRXdCO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9nZXN0dXJlcy9mb2N1cy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZSwgYWRkRG9tRXZlbnQgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuXG5jbGFzcyBGb2N1c0dlc3R1cmUgZXh0ZW5kcyBGZWF0dXJlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgICBvbkZvY3VzKCkge1xuICAgICAgICBsZXQgaXNGb2N1c1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHRoaXMgZWxlbWVudCBkb2Vzbid0IG1hdGNoIGZvY3VzLXZpc2libGUgdGhlbiBkb24ndFxuICAgICAgICAgKiBhcHBseSB3aGlsZUhvdmVyLiBCdXQsIGlmIG1hdGNoZXMgdGhyb3dzIHRoYXQgZm9jdXMtdmlzaWJsZVxuICAgICAgICAgKiBpcyBub3QgYSB2YWxpZCBzZWxlY3RvciB0aGVuIGluIHRoYXQgYnJvd3NlciBvdXRsaW5lIHN0eWxlcyB3aWxsIGJlIGFwcGxpZWRcbiAgICAgICAgICogdG8gdGhlIGVsZW1lbnQgYnkgZGVmYXVsdCBhbmQgd2Ugd2FudCB0byBtYXRjaCB0aGF0IGJlaGF2aW91ciB3aXRoIHdoaWxlRm9jdXMuXG4gICAgICAgICAqL1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaXNGb2N1c1Zpc2libGUgPSB0aGlzLm5vZGUuY3VycmVudC5tYXRjaGVzKFwiOmZvY3VzLXZpc2libGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlzRm9jdXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzRm9jdXNWaXNpYmxlIHx8ICF0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZUZvY3VzXCIsIHRydWUpO1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gICAgb25CbHVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNBY3RpdmUgfHwgIXRoaXMubm9kZS5hbmltYXRpb25TdGF0ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcIndoaWxlRm9jdXNcIiwgZmFsc2UpO1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIG1vdW50KCkge1xuICAgICAgICB0aGlzLnVubW91bnQgPSBwaXBlKGFkZERvbUV2ZW50KHRoaXMubm9kZS5jdXJyZW50LCBcImZvY3VzXCIsICgpID0+IHRoaXMub25Gb2N1cygpKSwgYWRkRG9tRXZlbnQodGhpcy5ub2RlLmN1cnJlbnQsIFwiYmx1clwiLCAoKSA9PiB0aGlzLm9uQmx1cigpKSk7XG4gICAgfVxuICAgIHVubW91bnQoKSB7IH1cbn1cblxuZXhwb3J0IHsgRm9jdXNHZXN0dXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb2N1cy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/focus.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/hover.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/hover.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HoverGesture: () => (/* binding */ HoverGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/hover.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n\n\n\nfunction handleHoverEvent(node, event, lifecycle) {\n const { props } = node;\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", lifecycle === \"Start\");\n }\n const eventName = (\"onHover\" + lifecycle);\n const callback = props[eventName];\n if (callback) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => callback(event, (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event)));\n }\n}\nclass HoverGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_2__.Feature {\n mount() {\n const { current } = this.node;\n if (!current)\n return;\n this.unmount = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.hover)(current, (_element, startEvent) => {\n handleHoverEvent(this.node, startEvent, \"Start\");\n return (endEvent) => handleHoverEvent(this.node, endEvent, \"End\");\n });\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=hover.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvaG92ZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQW1EO0FBQ1M7O0FBRTVEO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNkNBQUssa0NBQWtDLHdFQUFnQjtBQUMvRDtBQUNBO0FBQ0EsMkJBQTJCLCtDQUFPO0FBQ2xDO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUI7QUFDQTtBQUNBLHVCQUF1QixpREFBSztBQUM1QjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2hvdmVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlLCBob3ZlciwgZnJhbWUgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IGV4dHJhY3RFdmVudEluZm8gfSBmcm9tICcuLi9ldmVudHMvZXZlbnQtaW5mby5tanMnO1xuXG5mdW5jdGlvbiBoYW5kbGVIb3ZlckV2ZW50KG5vZGUsIGV2ZW50LCBsaWZlY3ljbGUpIHtcbiAgICBjb25zdCB7IHByb3BzIH0gPSBub2RlO1xuICAgIGlmIChub2RlLmFuaW1hdGlvblN0YXRlICYmIHByb3BzLndoaWxlSG92ZXIpIHtcbiAgICAgICAgbm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZUhvdmVyXCIsIGxpZmVjeWNsZSA9PT0gXCJTdGFydFwiKTtcbiAgICB9XG4gICAgY29uc3QgZXZlbnROYW1lID0gKFwib25Ib3ZlclwiICsgbGlmZWN5Y2xlKTtcbiAgICBjb25zdCBjYWxsYmFjayA9IHByb3BzW2V2ZW50TmFtZV07XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIGZyYW1lLnBvc3RSZW5kZXIoKCkgPT4gY2FsbGJhY2soZXZlbnQsIGV4dHJhY3RFdmVudEluZm8oZXZlbnQpKSk7XG4gICAgfVxufVxuY2xhc3MgSG92ZXJHZXN0dXJlIGV4dGVuZHMgRmVhdHVyZSB7XG4gICAgbW91bnQoKSB7XG4gICAgICAgIGNvbnN0IHsgY3VycmVudCB9ID0gdGhpcy5ub2RlO1xuICAgICAgICBpZiAoIWN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMudW5tb3VudCA9IGhvdmVyKGN1cnJlbnQsIChfZWxlbWVudCwgc3RhcnRFdmVudCkgPT4ge1xuICAgICAgICAgICAgaGFuZGxlSG92ZXJFdmVudCh0aGlzLm5vZGUsIHN0YXJ0RXZlbnQsIFwiU3RhcnRcIik7XG4gICAgICAgICAgICByZXR1cm4gKGVuZEV2ZW50KSA9PiBoYW5kbGVIb3ZlckV2ZW50KHRoaXMubm9kZSwgZW5kRXZlbnQsIFwiRW5kXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgdW5tb3VudCgpIHsgfVxufVxuXG5leHBvcnQgeyBIb3Zlckdlc3R1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhvdmVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/hover.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PanSession: () => (/* binding */ PanSession)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n/* harmony import */ var _utils_distance_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/distance.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/distance.mjs\");\n\n\n\n\n\n\nconst overflowStyles = /*#__PURE__*/ new Set([\"auto\", \"scroll\"]);\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint, contextWindow = window, dragSnapToOrigin = false, distanceThreshold = 3, element, } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n /**\n * @internal\n */\n this.contextWindow = window;\n /**\n * Scroll positions of scrollable ancestors and window.\n * @internal\n */\n this.scrollPositions = new Map();\n /**\n * Cleanup function for scroll listeners.\n * @internal\n */\n this.removeScrollListeners = null;\n this.onElementScroll = (event) => {\n this.handleScroll(event.target);\n };\n this.onWindowScroll = () => {\n this.handleScroll(window);\n };\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursor.\n const isDistancePastThreshold = (0,_utils_distance_mjs__WEBPACK_IMPORTED_MODULE_0__.distance2D)(info.offset, { x: 0, y: 0 }) >= this.distanceThreshold;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Throttle mouse move event to once per frame\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n // Resume animation if dragSnapToOrigin is set OR if no drag started (user just clicked)\n // This ensures constraint animations continue when interrupted by a click\n if (this.dragSnapToOrigin || !this.startEvent) {\n resumeAnimation && resumeAnimation();\n }\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!(0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isPrimaryPointer)(event))\n return;\n this.dragSnapToOrigin = dragSnapToOrigin;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n this.distanceThreshold = distanceThreshold;\n this.contextWindow = contextWindow || window;\n const info = (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_3__.extractEventInfo)(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.pipe)((0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointermove\", this.handlePointerMove), (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointerup\", this.handlePointerUp), (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointercancel\", this.handlePointerUp));\n // Start scroll tracking if element provided\n if (element) {\n this.startScrollTracking(element);\n }\n }\n /**\n * Start tracking scroll on ancestors and window.\n */\n startScrollTracking(element) {\n // Store initial scroll positions for scrollable ancestors\n let current = element.parentElement;\n while (current) {\n const style = getComputedStyle(current);\n if (overflowStyles.has(style.overflowX) ||\n overflowStyles.has(style.overflowY)) {\n this.scrollPositions.set(current, {\n x: current.scrollLeft,\n y: current.scrollTop,\n });\n }\n current = current.parentElement;\n }\n // Track window scroll\n this.scrollPositions.set(window, {\n x: window.scrollX,\n y: window.scrollY,\n });\n // Capture listener catches element scroll events as they bubble\n window.addEventListener(\"scroll\", this.onElementScroll, {\n capture: true,\n passive: true,\n });\n // Direct window scroll listener (window scroll doesn't bubble)\n window.addEventListener(\"scroll\", this.onWindowScroll, {\n passive: true,\n });\n this.removeScrollListeners = () => {\n window.removeEventListener(\"scroll\", this.onElementScroll, {\n capture: true,\n });\n window.removeEventListener(\"scroll\", this.onWindowScroll);\n };\n }\n /**\n * Handle scroll compensation during drag.\n *\n * For element scroll: adjusts history origin since pageX/pageY doesn't change.\n * For window scroll: adjusts lastMoveEventInfo since pageX/pageY would change.\n */\n handleScroll(target) {\n const initial = this.scrollPositions.get(target);\n if (!initial)\n return;\n const isWindow = target === window;\n const current = isWindow\n ? { x: window.scrollX, y: window.scrollY }\n : {\n x: target.scrollLeft,\n y: target.scrollTop,\n };\n const delta = { x: current.x - initial.x, y: current.y - initial.y };\n if (delta.x === 0 && delta.y === 0)\n return;\n if (isWindow) {\n // Window scroll: pageX/pageY changes, so update lastMoveEventInfo\n if (this.lastMoveEventInfo) {\n this.lastMoveEventInfo.point.x += delta.x;\n this.lastMoveEventInfo.point.y += delta.y;\n }\n }\n else {\n // Element scroll: pageX/pageY unchanged, so adjust history origin\n if (this.history.length > 0) {\n this.history[0].x -= delta.x;\n this.history[0].y -= delta.y;\n }\n }\n this.scrollPositions.set(target, current);\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.update(this.updatePoint, true);\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n this.removeScrollListeners && this.removeScrollListeners();\n this.scrollPositions.clear();\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.secondsToMilliseconds)(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n /**\n * If the selected point is the pointer-down origin (history[0]),\n * there are better movement points available, and the time gap\n * is suspiciously large (>2x timeDelta), use the next point instead.\n * This prevents stale pointer-down points from diluting velocity\n * in hold-then-flick gestures.\n */\n if (timestampedPoint === history[0] &&\n history.length > 2 &&\n lastPoint.timestamp - timestampedPoint.timestamp >\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.secondsToMilliseconds)(timeDelta) * 2) {\n timestampedPoint = history[1];\n }\n const time = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(lastPoint.timestamp - timestampedPoint.timestamp);\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\n\n//# sourceMappingURL=PanSession.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcGFuL1BhblNlc3Npb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQTZFO0FBQ0s7QUFDYjtBQUNOO0FBQ1Q7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsd0dBQXdHLElBQUk7QUFDL0k7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QywrREFBVSxnQkFBZ0IsWUFBWTtBQUNsRjtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUIsb0JBQW9CLFlBQVksRUFBRSxpREFBUztBQUMzQyxnQ0FBZ0MscUJBQXFCO0FBQ3JELG9CQUFvQixrQkFBa0I7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDZDQUFLO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix1Q0FBdUM7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLDREQUFnQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsd0VBQWdCO0FBQ3JDO0FBQ0EsZ0JBQWdCLFFBQVE7QUFDeEIsZ0JBQWdCLFlBQVksRUFBRSxpREFBUztBQUN2QywwQkFBMEIscUJBQXFCO0FBQy9DLGdCQUFnQixpQkFBaUI7QUFDakM7QUFDQTtBQUNBLCtCQUErQixrREFBSSxDQUFDLDhFQUFlLDZEQUE2RCw4RUFBZSx5REFBeUQsOEVBQWU7QUFDdk07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZDQUFLO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsdURBQVc7QUFDbkI7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLHdDQUF3QztBQUMxRTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0Esc0JBQXNCLE9BQU87QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxtRUFBcUI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxtRUFBcUI7QUFDakM7QUFDQTtBQUNBLGlCQUFpQixtRUFBcUI7QUFDdEM7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNCO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9nZXN0dXJlcy9wYW4vUGFuU2Vzc2lvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJhbWUsIGlzUHJpbWFyeVBvaW50ZXIsIGNhbmNlbEZyYW1lLCBmcmFtZURhdGEgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IHBpcGUsIHNlY29uZHNUb01pbGxpc2Vjb25kcywgbWlsbGlzZWNvbmRzVG9TZWNvbmRzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGFkZFBvaW50ZXJFdmVudCB9IGZyb20gJy4uLy4uL2V2ZW50cy9hZGQtcG9pbnRlci1ldmVudC5tanMnO1xuaW1wb3J0IHsgZXh0cmFjdEV2ZW50SW5mbyB9IGZyb20gJy4uLy4uL2V2ZW50cy9ldmVudC1pbmZvLm1qcyc7XG5pbXBvcnQgeyBkaXN0YW5jZTJEIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGlzdGFuY2UubWpzJztcblxuY29uc3Qgb3ZlcmZsb3dTdHlsZXMgPSAvKiNfX1BVUkVfXyovIG5ldyBTZXQoW1wiYXV0b1wiLCBcInNjcm9sbFwiXSk7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5jbGFzcyBQYW5TZXNzaW9uIHtcbiAgICBjb25zdHJ1Y3RvcihldmVudCwgaGFuZGxlcnMsIHsgdHJhbnNmb3JtUGFnZVBvaW50LCBjb250ZXh0V2luZG93ID0gd2luZG93LCBkcmFnU25hcFRvT3JpZ2luID0gZmFsc2UsIGRpc3RhbmNlVGhyZXNob2xkID0gMywgZWxlbWVudCwgfSA9IHt9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc3RhcnRFdmVudCA9IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubGFzdE1vdmVFdmVudCA9IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubGFzdE1vdmVFdmVudEluZm8gPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGludGVybmFsXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmhhbmRsZXJzID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY29udGV4dFdpbmRvdyA9IHdpbmRvdztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNjcm9sbCBwb3NpdGlvbnMgb2Ygc2Nyb2xsYWJsZSBhbmNlc3RvcnMgYW5kIHdpbmRvdy5cbiAgICAgICAgICogQGludGVybmFsXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNjcm9sbFBvc2l0aW9ucyA9IG5ldyBNYXAoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENsZWFudXAgZnVuY3Rpb24gZm9yIHNjcm9sbCBsaXN0ZW5lcnMuXG4gICAgICAgICAqIEBpbnRlcm5hbFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5yZW1vdmVTY3JvbGxMaXN0ZW5lcnMgPSBudWxsO1xuICAgICAgICB0aGlzLm9uRWxlbWVudFNjcm9sbCA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVTY3JvbGwoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5vbldpbmRvd1Njcm9sbCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2Nyb2xsKHdpbmRvdyk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudXBkYXRlUG9pbnQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoISh0aGlzLmxhc3RNb3ZlRXZlbnQgJiYgdGhpcy5sYXN0TW92ZUV2ZW50SW5mbykpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgaW5mbyA9IGdldFBhbkluZm8odGhpcy5sYXN0TW92ZUV2ZW50SW5mbywgdGhpcy5oaXN0b3J5KTtcbiAgICAgICAgICAgIGNvbnN0IGlzUGFuU3RhcnRlZCA9IHRoaXMuc3RhcnRFdmVudCAhPT0gbnVsbDtcbiAgICAgICAgICAgIC8vIE9ubHkgc3RhcnQgcGFubmluZyBpZiB0aGUgb2Zmc2V0IGlzIGxhcmdlciB0aGFuIDMgcGl4ZWxzLiBJZiB3ZSBtYWtlIGl0XG4gICAgICAgICAgICAvLyBhbnkgbGFyZ2VyIHRoYW4gdGhpcyB3ZSdsbCB3YW50IHRvIHJlc2V0IHRoZSBwb2ludGVyIGhpc3RvcnlcbiAgICAgICAgICAgIC8vIG9uIHRoZSBmaXJzdCB1cGRhdGUgdG8gYXZvaWQgdmlzdWFsIHNuYXBwaW5nIHRvIHRoZSBjdXJzb3IuXG4gICAgICAgICAgICBjb25zdCBpc0Rpc3RhbmNlUGFzdFRocmVzaG9sZCA9IGRpc3RhbmNlMkQoaW5mby5vZmZzZXQsIHsgeDogMCwgeTogMCB9KSA+PSB0aGlzLmRpc3RhbmNlVGhyZXNob2xkO1xuICAgICAgICAgICAgaWYgKCFpc1BhblN0YXJ0ZWQgJiYgIWlzRGlzdGFuY2VQYXN0VGhyZXNob2xkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHsgcG9pbnQgfSA9IGluZm87XG4gICAgICAgICAgICBjb25zdCB7IHRpbWVzdGFtcCB9ID0gZnJhbWVEYXRhO1xuICAgICAgICAgICAgdGhpcy5oaXN0b3J5LnB1c2goeyAuLi5wb2ludCwgdGltZXN0YW1wIH0pO1xuICAgICAgICAgICAgY29uc3QgeyBvblN0YXJ0LCBvbk1vdmUgfSA9IHRoaXMuaGFuZGxlcnM7XG4gICAgICAgICAgICBpZiAoIWlzUGFuU3RhcnRlZCkge1xuICAgICAgICAgICAgICAgIG9uU3RhcnQgJiYgb25TdGFydCh0aGlzLmxhc3RNb3ZlRXZlbnQsIGluZm8pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRFdmVudCA9IHRoaXMubGFzdE1vdmVFdmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uTW92ZSAmJiBvbk1vdmUodGhpcy5sYXN0TW92ZUV2ZW50LCBpbmZvKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5oYW5kbGVQb2ludGVyTW92ZSA9IChldmVudCwgaW5mbykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYXN0TW92ZUV2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgICB0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvID0gdHJhbnNmb3JtUG9pbnQoaW5mbywgdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQpO1xuICAgICAgICAgICAgLy8gVGhyb3R0bGUgbW91c2UgbW92ZSBldmVudCB0byBvbmNlIHBlciBmcmFtZVxuICAgICAgICAgICAgZnJhbWUudXBkYXRlKHRoaXMudXBkYXRlUG9pbnQsIHRydWUpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmhhbmRsZVBvaW50ZXJVcCA9IChldmVudCwgaW5mbykgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmQoKTtcbiAgICAgICAgICAgIGNvbnN0IHsgb25FbmQsIG9uU2Vzc2lvbkVuZCwgcmVzdW1lQW5pbWF0aW9uIH0gPSB0aGlzLmhhbmRsZXJzO1xuICAgICAgICAgICAgLy8gUmVzdW1lIGFuaW1hdGlvbiBpZiBkcmFnU25hcFRvT3JpZ2luIGlzIHNldCBPUiBpZiBubyBkcmFnIHN0YXJ0ZWQgKHVzZXIganVzdCBjbGlja2VkKVxuICAgICAgICAgICAgLy8gVGhpcyBlbnN1cmVzIGNvbnN0cmFpbnQgYW5pbWF0aW9ucyBjb250aW51ZSB3aGVuIGludGVycnVwdGVkIGJ5IGEgY2xpY2tcbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdTbmFwVG9PcmlnaW4gfHwgIXRoaXMuc3RhcnRFdmVudCkge1xuICAgICAgICAgICAgICAgIHJlc3VtZUFuaW1hdGlvbiAmJiByZXN1bWVBbmltYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghKHRoaXMubGFzdE1vdmVFdmVudCAmJiB0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBwYW5JbmZvID0gZ2V0UGFuSW5mbyhldmVudC50eXBlID09PSBcInBvaW50ZXJjYW5jZWxcIlxuICAgICAgICAgICAgICAgID8gdGhpcy5sYXN0TW92ZUV2ZW50SW5mb1xuICAgICAgICAgICAgICAgIDogdHJhbnNmb3JtUG9pbnQoaW5mbywgdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQpLCB0aGlzLmhpc3RvcnkpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRFdmVudCAmJiBvbkVuZCkge1xuICAgICAgICAgICAgICAgIG9uRW5kKGV2ZW50LCBwYW5JbmZvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uU2Vzc2lvbkVuZCAmJiBvblNlc3Npb25FbmQoZXZlbnQsIHBhbkluZm8pO1xuICAgICAgICB9O1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdG91Y2gsIGRvbid0IHN0YXJ0IGRldGVjdGluZyB0aGlzIGdlc3R1cmVcbiAgICAgICAgaWYgKCFpc1ByaW1hcnlQb2ludGVyKGV2ZW50KSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5kcmFnU25hcFRvT3JpZ2luID0gZHJhZ1NuYXBUb09yaWdpbjtcbiAgICAgICAgdGhpcy5oYW5kbGVycyA9IGhhbmRsZXJzO1xuICAgICAgICB0aGlzLnRyYW5zZm9ybVBhZ2VQb2ludCA9IHRyYW5zZm9ybVBhZ2VQb2ludDtcbiAgICAgICAgdGhpcy5kaXN0YW5jZVRocmVzaG9sZCA9IGRpc3RhbmNlVGhyZXNob2xkO1xuICAgICAgICB0aGlzLmNvbnRleHRXaW5kb3cgPSBjb250ZXh0V2luZG93IHx8IHdpbmRvdztcbiAgICAgICAgY29uc3QgaW5mbyA9IGV4dHJhY3RFdmVudEluZm8oZXZlbnQpO1xuICAgICAgICBjb25zdCBpbml0aWFsSW5mbyA9IHRyYW5zZm9ybVBvaW50KGluZm8sIHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KTtcbiAgICAgICAgY29uc3QgeyBwb2ludCB9ID0gaW5pdGlhbEluZm87XG4gICAgICAgIGNvbnN0IHsgdGltZXN0YW1wIH0gPSBmcmFtZURhdGE7XG4gICAgICAgIHRoaXMuaGlzdG9yeSA9IFt7IC4uLnBvaW50LCB0aW1lc3RhbXAgfV07XG4gICAgICAgIGNvbnN0IHsgb25TZXNzaW9uU3RhcnQgfSA9IGhhbmRsZXJzO1xuICAgICAgICBvblNlc3Npb25TdGFydCAmJlxuICAgICAgICAgICAgb25TZXNzaW9uU3RhcnQoZXZlbnQsIGdldFBhbkluZm8oaW5pdGlhbEluZm8sIHRoaXMuaGlzdG9yeSkpO1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycyA9IHBpcGUoYWRkUG9pbnRlckV2ZW50KHRoaXMuY29udGV4dFdpbmRvdywgXCJwb2ludGVybW92ZVwiLCB0aGlzLmhhbmRsZVBvaW50ZXJNb3ZlKSwgYWRkUG9pbnRlckV2ZW50KHRoaXMuY29udGV4dFdpbmRvdywgXCJwb2ludGVydXBcIiwgdGhpcy5oYW5kbGVQb2ludGVyVXApLCBhZGRQb2ludGVyRXZlbnQodGhpcy5jb250ZXh0V2luZG93LCBcInBvaW50ZXJjYW5jZWxcIiwgdGhpcy5oYW5kbGVQb2ludGVyVXApKTtcbiAgICAgICAgLy8gU3RhcnQgc2Nyb2xsIHRyYWNraW5nIGlmIGVsZW1lbnQgcHJvdmlkZWRcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRTY3JvbGxUcmFja2luZyhlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTdGFydCB0cmFja2luZyBzY3JvbGwgb24gYW5jZXN0b3JzIGFuZCB3aW5kb3cuXG4gICAgICovXG4gICAgc3RhcnRTY3JvbGxUcmFja2luZyhlbGVtZW50KSB7XG4gICAgICAgIC8vIFN0b3JlIGluaXRpYWwgc2Nyb2xsIHBvc2l0aW9ucyBmb3Igc2Nyb2xsYWJsZSBhbmNlc3RvcnNcbiAgICAgICAgbGV0IGN1cnJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIHdoaWxlIChjdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudCk7XG4gICAgICAgICAgICBpZiAob3ZlcmZsb3dTdHlsZXMuaGFzKHN0eWxlLm92ZXJmbG93WCkgfHxcbiAgICAgICAgICAgICAgICBvdmVyZmxvd1N0eWxlcy5oYXMoc3R5bGUub3ZlcmZsb3dZKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsUG9zaXRpb25zLnNldChjdXJyZW50LCB7XG4gICAgICAgICAgICAgICAgICAgIHg6IGN1cnJlbnQuc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgICAgICAgICAgeTogY3VycmVudC5zY3JvbGxUb3AsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIC8vIFRyYWNrIHdpbmRvdyBzY3JvbGxcbiAgICAgICAgdGhpcy5zY3JvbGxQb3NpdGlvbnMuc2V0KHdpbmRvdywge1xuICAgICAgICAgICAgeDogd2luZG93LnNjcm9sbFgsXG4gICAgICAgICAgICB5OiB3aW5kb3cuc2Nyb2xsWSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIENhcHR1cmUgbGlzdGVuZXIgY2F0Y2hlcyBlbGVtZW50IHNjcm9sbCBldmVudHMgYXMgdGhleSBidWJibGVcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5vbkVsZW1lbnRTY3JvbGwsIHtcbiAgICAgICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICAgICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gRGlyZWN0IHdpbmRvdyBzY3JvbGwgbGlzdGVuZXIgKHdpbmRvdyBzY3JvbGwgZG9lc24ndCBidWJibGUpXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMub25XaW5kb3dTY3JvbGwsIHtcbiAgICAgICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVycyA9ICgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMub25FbGVtZW50U2Nyb2xsLCB7XG4gICAgICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5vbldpbmRvd1Njcm9sbCk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBzY3JvbGwgY29tcGVuc2F0aW9uIGR1cmluZyBkcmFnLlxuICAgICAqXG4gICAgICogRm9yIGVsZW1lbnQgc2Nyb2xsOiBhZGp1c3RzIGhpc3Rvcnkgb3JpZ2luIHNpbmNlIHBhZ2VYL3BhZ2VZIGRvZXNuJ3QgY2hhbmdlLlxuICAgICAqIEZvciB3aW5kb3cgc2Nyb2xsOiBhZGp1c3RzIGxhc3RNb3ZlRXZlbnRJbmZvIHNpbmNlIHBhZ2VYL3BhZ2VZIHdvdWxkIGNoYW5nZS5cbiAgICAgKi9cbiAgICBoYW5kbGVTY3JvbGwodGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSB0aGlzLnNjcm9sbFBvc2l0aW9ucy5nZXQodGFyZ2V0KTtcbiAgICAgICAgaWYgKCFpbml0aWFsKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBpc1dpbmRvdyA9IHRhcmdldCA9PT0gd2luZG93O1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gaXNXaW5kb3dcbiAgICAgICAgICAgID8geyB4OiB3aW5kb3cuc2Nyb2xsWCwgeTogd2luZG93LnNjcm9sbFkgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgeDogdGFyZ2V0LnNjcm9sbExlZnQsXG4gICAgICAgICAgICAgICAgeTogdGFyZ2V0LnNjcm9sbFRvcCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRlbHRhID0geyB4OiBjdXJyZW50LnggLSBpbml0aWFsLngsIHk6IGN1cnJlbnQueSAtIGluaXRpYWwueSB9O1xuICAgICAgICBpZiAoZGVsdGEueCA9PT0gMCAmJiBkZWx0YS55ID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoaXNXaW5kb3cpIHtcbiAgICAgICAgICAgIC8vIFdpbmRvdyBzY3JvbGw6IHBhZ2VYL3BhZ2VZIGNoYW5nZXMsIHNvIHVwZGF0ZSBsYXN0TW92ZUV2ZW50SW5mb1xuICAgICAgICAgICAgaWYgKHRoaXMubGFzdE1vdmVFdmVudEluZm8pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvLnBvaW50LnggKz0gZGVsdGEueDtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvLnBvaW50LnkgKz0gZGVsdGEueTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIEVsZW1lbnQgc2Nyb2xsOiBwYWdlWC9wYWdlWSB1bmNoYW5nZWQsIHNvIGFkanVzdCBoaXN0b3J5IG9yaWdpblxuICAgICAgICAgICAgaWYgKHRoaXMuaGlzdG9yeS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5WzBdLnggLT0gZGVsdGEueDtcbiAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlbMF0ueSAtPSBkZWx0YS55O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2Nyb2xsUG9zaXRpb25zLnNldCh0YXJnZXQsIGN1cnJlbnQpO1xuICAgICAgICBmcmFtZS51cGRhdGUodGhpcy51cGRhdGVQb2ludCwgdHJ1ZSk7XG4gICAgfVxuICAgIHVwZGF0ZUhhbmRsZXJzKGhhbmRsZXJzKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlcnMgPSBoYW5kbGVycztcbiAgICB9XG4gICAgZW5kKCkge1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycyAmJiB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xuICAgICAgICB0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVycyAmJiB0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVycygpO1xuICAgICAgICB0aGlzLnNjcm9sbFBvc2l0aW9ucy5jbGVhcigpO1xuICAgICAgICBjYW5jZWxGcmFtZSh0aGlzLnVwZGF0ZVBvaW50KTtcbiAgICB9XG59XG5mdW5jdGlvbiB0cmFuc2Zvcm1Qb2ludChpbmZvLCB0cmFuc2Zvcm1QYWdlUG9pbnQpIHtcbiAgICByZXR1cm4gdHJhbnNmb3JtUGFnZVBvaW50ID8geyBwb2ludDogdHJhbnNmb3JtUGFnZVBvaW50KGluZm8ucG9pbnQpIH0gOiBpbmZvO1xufVxuZnVuY3Rpb24gc3VidHJhY3RQb2ludChhLCBiKSB7XG4gICAgcmV0dXJuIHsgeDogYS54IC0gYi54LCB5OiBhLnkgLSBiLnkgfTtcbn1cbmZ1bmN0aW9uIGdldFBhbkluZm8oeyBwb2ludCB9LCBoaXN0b3J5KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcG9pbnQsXG4gICAgICAgIGRlbHRhOiBzdWJ0cmFjdFBvaW50KHBvaW50LCBsYXN0RGV2aWNlUG9pbnQoaGlzdG9yeSkpLFxuICAgICAgICBvZmZzZXQ6IHN1YnRyYWN0UG9pbnQocG9pbnQsIHN0YXJ0RGV2aWNlUG9pbnQoaGlzdG9yeSkpLFxuICAgICAgICB2ZWxvY2l0eTogZ2V0VmVsb2NpdHkoaGlzdG9yeSwgMC4xKSxcbiAgICB9O1xufVxuZnVuY3Rpb24gc3RhcnREZXZpY2VQb2ludChoaXN0b3J5KSB7XG4gICAgcmV0dXJuIGhpc3RvcnlbMF07XG59XG5mdW5jdGlvbiBsYXN0RGV2aWNlUG9pbnQoaGlzdG9yeSkge1xuICAgIHJldHVybiBoaXN0b3J5W2hpc3RvcnkubGVuZ3RoIC0gMV07XG59XG5mdW5jdGlvbiBnZXRWZWxvY2l0eShoaXN0b3J5LCB0aW1lRGVsdGEpIHtcbiAgICBpZiAoaGlzdG9yeS5sZW5ndGggPCAyKSB7XG4gICAgICAgIHJldHVybiB7IHg6IDAsIHk6IDAgfTtcbiAgICB9XG4gICAgbGV0IGkgPSBoaXN0b3J5Lmxlbmd0aCAtIDE7XG4gICAgbGV0IHRpbWVzdGFtcGVkUG9pbnQgPSBudWxsO1xuICAgIGNvbnN0IGxhc3RQb2ludCA9IGxhc3REZXZpY2VQb2ludChoaXN0b3J5KTtcbiAgICB3aGlsZSAoaSA+PSAwKSB7XG4gICAgICAgIHRpbWVzdGFtcGVkUG9pbnQgPSBoaXN0b3J5W2ldO1xuICAgICAgICBpZiAobGFzdFBvaW50LnRpbWVzdGFtcCAtIHRpbWVzdGFtcGVkUG9pbnQudGltZXN0YW1wID5cbiAgICAgICAgICAgIHNlY29uZHNUb01pbGxpc2Vjb25kcyh0aW1lRGVsdGEpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpLS07XG4gICAgfVxuICAgIGlmICghdGltZXN0YW1wZWRQb2ludCkge1xuICAgICAgICByZXR1cm4geyB4OiAwLCB5OiAwIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIHRoZSBzZWxlY3RlZCBwb2ludCBpcyB0aGUgcG9pbnRlci1kb3duIG9yaWdpbiAoaGlzdG9yeVswXSksXG4gICAgICogdGhlcmUgYXJlIGJldHRlciBtb3ZlbWVudCBwb2ludHMgYXZhaWxhYmxlLCBhbmQgdGhlIHRpbWUgZ2FwXG4gICAgICogaXMgc3VzcGljaW91c2x5IGxhcmdlICg+MnggdGltZURlbHRhKSwgdXNlIHRoZSBuZXh0IHBvaW50IGluc3RlYWQuXG4gICAgICogVGhpcyBwcmV2ZW50cyBzdGFsZSBwb2ludGVyLWRvd24gcG9pbnRzIGZyb20gZGlsdXRpbmcgdmVsb2NpdHlcbiAgICAgKiBpbiBob2xkLXRoZW4tZmxpY2sgZ2VzdHVyZXMuXG4gICAgICovXG4gICAgaWYgKHRpbWVzdGFtcGVkUG9pbnQgPT09IGhpc3RvcnlbMF0gJiZcbiAgICAgICAgaGlzdG9yeS5sZW5ndGggPiAyICYmXG4gICAgICAgIGxhc3RQb2ludC50aW1lc3RhbXAgLSB0aW1lc3RhbXBlZFBvaW50LnRpbWVzdGFtcCA+XG4gICAgICAgICAgICBzZWNvbmRzVG9NaWxsaXNlY29uZHModGltZURlbHRhKSAqIDIpIHtcbiAgICAgICAgdGltZXN0YW1wZWRQb2ludCA9IGhpc3RvcnlbMV07XG4gICAgfVxuICAgIGNvbnN0IHRpbWUgPSBtaWxsaXNlY29uZHNUb1NlY29uZHMobGFzdFBvaW50LnRpbWVzdGFtcCAtIHRpbWVzdGFtcGVkUG9pbnQudGltZXN0YW1wKTtcbiAgICBpZiAodGltZSA9PT0gMCkge1xuICAgICAgICByZXR1cm4geyB4OiAwLCB5OiAwIH07XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRWZWxvY2l0eSA9IHtcbiAgICAgICAgeDogKGxhc3RQb2ludC54IC0gdGltZXN0YW1wZWRQb2ludC54KSAvIHRpbWUsXG4gICAgICAgIHk6IChsYXN0UG9pbnQueSAtIHRpbWVzdGFtcGVkUG9pbnQueSkgLyB0aW1lLFxuICAgIH07XG4gICAgaWYgKGN1cnJlbnRWZWxvY2l0eS54ID09PSBJbmZpbml0eSkge1xuICAgICAgICBjdXJyZW50VmVsb2NpdHkueCA9IDA7XG4gICAgfVxuICAgIGlmIChjdXJyZW50VmVsb2NpdHkueSA9PT0gSW5maW5pdHkpIHtcbiAgICAgICAgY3VycmVudFZlbG9jaXR5LnkgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudFZlbG9jaXR5O1xufVxuXG5leHBvcnQgeyBQYW5TZXNzaW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYW5TZXNzaW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/pan/index.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PanGesture: () => (/* binding */ PanGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/get-context-window.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\");\n/* harmony import */ var _PanSession_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PanSession.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\");\n\n\n\n\n\n\nconst asyncHandler = (handler) => (event, info) => {\n if (handler) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.update(() => handler(event, info), false, true);\n }\n};\nclass PanGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_1__.Feature {\n constructor() {\n super(...arguments);\n this.removePointerDownListener = motion_utils__WEBPACK_IMPORTED_MODULE_2__.noop;\n }\n onPointerDown(pointerDownEvent) {\n this.session = new _PanSession_mjs__WEBPACK_IMPORTED_MODULE_3__.PanSession(pointerDownEvent, this.createPanHandlers(), {\n transformPagePoint: this.node.getTransformPagePoint(),\n contextWindow: (0,_utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_4__.getContextWindow)(this.node),\n });\n }\n createPanHandlers() {\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\n return {\n onSessionStart: asyncHandler(onPanSessionStart),\n onStart: asyncHandler(onPanStart),\n onMove: asyncHandler(onPan),\n onEnd: (event, info) => {\n delete this.session;\n if (onPanEnd) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => onPanEnd(event, info));\n }\n },\n };\n }\n mount() {\n this.removePointerDownListener = (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\n }\n update() {\n this.session && this.session.updateHandlers(this.createPanHandlers());\n }\n unmount() {\n this.removePointerDownListener();\n this.session && this.session.end();\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcGFuL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQTRDO0FBQ1I7QUFDaUM7QUFDQztBQUN4Qjs7QUFFOUM7QUFDQTtBQUNBLFFBQVEsNkNBQUs7QUFDYjtBQUNBO0FBQ0EseUJBQXlCLCtDQUFPO0FBQ2hDO0FBQ0E7QUFDQSx5Q0FBeUMsOENBQUk7QUFDN0M7QUFDQTtBQUNBLDJCQUEyQix1REFBVTtBQUNyQztBQUNBLDJCQUEyQiwrRUFBZ0I7QUFDM0MsU0FBUztBQUNUO0FBQ0E7QUFDQSxnQkFBZ0IsaURBQWlEO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDZDQUFLO0FBQ3pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyw4RUFBZTtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNCO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9nZXN0dXJlcy9wYW4vaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUsIGZyYW1lIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGFkZFBvaW50ZXJFdmVudCB9IGZyb20gJy4uLy4uL2V2ZW50cy9hZGQtcG9pbnRlci1ldmVudC5tanMnO1xuaW1wb3J0IHsgZ2V0Q29udGV4dFdpbmRvdyB9IGZyb20gJy4uLy4uL3V0aWxzL2dldC1jb250ZXh0LXdpbmRvdy5tanMnO1xuaW1wb3J0IHsgUGFuU2Vzc2lvbiB9IGZyb20gJy4vUGFuU2Vzc2lvbi5tanMnO1xuXG5jb25zdCBhc3luY0hhbmRsZXIgPSAoaGFuZGxlcikgPT4gKGV2ZW50LCBpbmZvKSA9PiB7XG4gICAgaWYgKGhhbmRsZXIpIHtcbiAgICAgICAgZnJhbWUudXBkYXRlKCgpID0+IGhhbmRsZXIoZXZlbnQsIGluZm8pLCBmYWxzZSwgdHJ1ZSk7XG4gICAgfVxufTtcbmNsYXNzIFBhbkdlc3R1cmUgZXh0ZW5kcyBGZWF0dXJlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5yZW1vdmVQb2ludGVyRG93bkxpc3RlbmVyID0gbm9vcDtcbiAgICB9XG4gICAgb25Qb2ludGVyRG93bihwb2ludGVyRG93bkV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbiA9IG5ldyBQYW5TZXNzaW9uKHBvaW50ZXJEb3duRXZlbnQsIHRoaXMuY3JlYXRlUGFuSGFuZGxlcnMoKSwge1xuICAgICAgICAgICAgdHJhbnNmb3JtUGFnZVBvaW50OiB0aGlzLm5vZGUuZ2V0VHJhbnNmb3JtUGFnZVBvaW50KCksXG4gICAgICAgICAgICBjb250ZXh0V2luZG93OiBnZXRDb250ZXh0V2luZG93KHRoaXMubm9kZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjcmVhdGVQYW5IYW5kbGVycygpIHtcbiAgICAgICAgY29uc3QgeyBvblBhblNlc3Npb25TdGFydCwgb25QYW5TdGFydCwgb25QYW4sIG9uUGFuRW5kIH0gPSB0aGlzLm5vZGUuZ2V0UHJvcHMoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG9uU2Vzc2lvblN0YXJ0OiBhc3luY0hhbmRsZXIob25QYW5TZXNzaW9uU3RhcnQpLFxuICAgICAgICAgICAgb25TdGFydDogYXN5bmNIYW5kbGVyKG9uUGFuU3RhcnQpLFxuICAgICAgICAgICAgb25Nb3ZlOiBhc3luY0hhbmRsZXIob25QYW4pLFxuICAgICAgICAgICAgb25FbmQ6IChldmVudCwgaW5mbykgPT4ge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnNlc3Npb247XG4gICAgICAgICAgICAgICAgaWYgKG9uUGFuRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGZyYW1lLnBvc3RSZW5kZXIoKCkgPT4gb25QYW5FbmQoZXZlbnQsIGluZm8pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBtb3VudCgpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVQb2ludGVyRG93bkxpc3RlbmVyID0gYWRkUG9pbnRlckV2ZW50KHRoaXMubm9kZS5jdXJyZW50LCBcInBvaW50ZXJkb3duXCIsIChldmVudCkgPT4gdGhpcy5vblBvaW50ZXJEb3duKGV2ZW50KSk7XG4gICAgfVxuICAgIHVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5zZXNzaW9uICYmIHRoaXMuc2Vzc2lvbi51cGRhdGVIYW5kbGVycyh0aGlzLmNyZWF0ZVBhbkhhbmRsZXJzKCkpO1xuICAgIH1cbiAgICB1bm1vdW50KCkge1xuICAgICAgICB0aGlzLnJlbW92ZVBvaW50ZXJEb3duTGlzdGVuZXIoKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uICYmIHRoaXMuc2Vzc2lvbi5lbmQoKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IFBhbkdlc3R1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/press.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/press.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PressGesture: () => (/* binding */ PressGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n\n\n\nfunction handlePressEvent(node, event, lifecycle) {\n const { props } = node;\n if (node.current instanceof HTMLButtonElement && node.current.disabled) {\n return;\n }\n if (node.animationState && props.whileTap) {\n node.animationState.setActive(\"whileTap\", lifecycle === \"Start\");\n }\n const eventName = (\"onTap\" + (lifecycle === \"End\" ? \"\" : lifecycle));\n const callback = props[eventName];\n if (callback) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => callback(event, (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event)));\n }\n}\nclass PressGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_2__.Feature {\n mount() {\n const { current } = this.node;\n if (!current)\n return;\n const { globalTapTarget, propagate } = this.node.props;\n this.unmount = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.press)(current, (_element, startEvent) => {\n handlePressEvent(this.node, startEvent, \"Start\");\n return (endEvent, { success }) => handlePressEvent(this.node, endEvent, success ? \"End\" : \"Cancel\");\n }, {\n useGlobalTarget: globalTapTarget,\n stopPropagation: propagate?.tap === false,\n });\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=press.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQW1EO0FBQ1M7O0FBRTVEO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNkNBQUssa0NBQWtDLHdFQUFnQjtBQUMvRDtBQUNBO0FBQ0EsMkJBQTJCLCtDQUFPO0FBQ2xDO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUI7QUFDQTtBQUNBLGdCQUFnQiw2QkFBNkI7QUFDN0MsdUJBQXVCLGlEQUFLO0FBQzVCO0FBQ0EsZ0NBQWdDLFNBQVM7QUFDekMsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUV3QjtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUsIHByZXNzLCBmcmFtZSB9IGZyb20gJ21vdGlvbi1kb20nO1xuaW1wb3J0IHsgZXh0cmFjdEV2ZW50SW5mbyB9IGZyb20gJy4uL2V2ZW50cy9ldmVudC1pbmZvLm1qcyc7XG5cbmZ1bmN0aW9uIGhhbmRsZVByZXNzRXZlbnQobm9kZSwgZXZlbnQsIGxpZmVjeWNsZSkge1xuICAgIGNvbnN0IHsgcHJvcHMgfSA9IG5vZGU7XG4gICAgaWYgKG5vZGUuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50ICYmIG5vZGUuY3VycmVudC5kaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChub2RlLmFuaW1hdGlvblN0YXRlICYmIHByb3BzLndoaWxlVGFwKSB7XG4gICAgICAgIG5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwid2hpbGVUYXBcIiwgbGlmZWN5Y2xlID09PSBcIlN0YXJ0XCIpO1xuICAgIH1cbiAgICBjb25zdCBldmVudE5hbWUgPSAoXCJvblRhcFwiICsgKGxpZmVjeWNsZSA9PT0gXCJFbmRcIiA/IFwiXCIgOiBsaWZlY3ljbGUpKTtcbiAgICBjb25zdCBjYWxsYmFjayA9IHByb3BzW2V2ZW50TmFtZV07XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIGZyYW1lLnBvc3RSZW5kZXIoKCkgPT4gY2FsbGJhY2soZXZlbnQsIGV4dHJhY3RFdmVudEluZm8oZXZlbnQpKSk7XG4gICAgfVxufVxuY2xhc3MgUHJlc3NHZXN0dXJlIGV4dGVuZHMgRmVhdHVyZSB7XG4gICAgbW91bnQoKSB7XG4gICAgICAgIGNvbnN0IHsgY3VycmVudCB9ID0gdGhpcy5ub2RlO1xuICAgICAgICBpZiAoIWN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgZ2xvYmFsVGFwVGFyZ2V0LCBwcm9wYWdhdGUgfSA9IHRoaXMubm9kZS5wcm9wcztcbiAgICAgICAgdGhpcy51bm1vdW50ID0gcHJlc3MoY3VycmVudCwgKF9lbGVtZW50LCBzdGFydEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBoYW5kbGVQcmVzc0V2ZW50KHRoaXMubm9kZSwgc3RhcnRFdmVudCwgXCJTdGFydFwiKTtcbiAgICAgICAgICAgIHJldHVybiAoZW5kRXZlbnQsIHsgc3VjY2VzcyB9KSA9PiBoYW5kbGVQcmVzc0V2ZW50KHRoaXMubm9kZSwgZW5kRXZlbnQsIHN1Y2Nlc3MgPyBcIkVuZFwiIDogXCJDYW5jZWxcIik7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIHVzZUdsb2JhbFRhcmdldDogZ2xvYmFsVGFwVGFyZ2V0LFxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiBwcm9wYWdhdGU/LnRhcCA9PT0gZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB1bm1vdW50KCkgeyB9XG59XG5cbmV4cG9ydCB7IFByZXNzR2VzdHVyZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlc3MubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/press.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ExitAnimationFeature: () => (/* binding */ ExitAnimationFeature)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n\n\nlet id = 0;\nclass ExitAnimationFeature extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent);\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => {\n onExitComplete(this.id);\n });\n }\n }\n mount() {\n const { register, onExitComplete } = this.node.presenceContext || {};\n if (onExitComplete) {\n onExitComplete(this.id);\n }\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=exit.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbi9leGl0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFxQzs7QUFFckM7QUFDQSxtQ0FBbUMsK0NBQU87QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsNEJBQTRCO0FBQzVDLGdCQUFnQiwyQkFBMkI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDJCQUEyQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvYW5pbWF0aW9uL2V4aXQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICdtb3Rpb24tZG9tJztcblxubGV0IGlkID0gMDtcbmNsYXNzIEV4aXRBbmltYXRpb25GZWF0dXJlIGV4dGVuZHMgRmVhdHVyZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMuaWQgPSBpZCsrO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5ub2RlLnByZXNlbmNlQ29udGV4dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyBpc1ByZXNlbnQsIG9uRXhpdENvbXBsZXRlIH0gPSB0aGlzLm5vZGUucHJlc2VuY2VDb250ZXh0O1xuICAgICAgICBjb25zdCB7IGlzUHJlc2VudDogcHJldklzUHJlc2VudCB9ID0gdGhpcy5ub2RlLnByZXZQcmVzZW5jZUNvbnRleHQgfHwge307XG4gICAgICAgIGlmICghdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlIHx8IGlzUHJlc2VudCA9PT0gcHJldklzUHJlc2VudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV4aXRBbmltYXRpb24gPSB0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwiZXhpdFwiLCAhaXNQcmVzZW50KTtcbiAgICAgICAgaWYgKG9uRXhpdENvbXBsZXRlICYmICFpc1ByZXNlbnQpIHtcbiAgICAgICAgICAgIGV4aXRBbmltYXRpb24udGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgb25FeGl0Q29tcGxldGUodGhpcy5pZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBtb3VudCgpIHtcbiAgICAgICAgY29uc3QgeyByZWdpc3Rlciwgb25FeGl0Q29tcGxldGUgfSA9IHRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHQgfHwge307XG4gICAgICAgIGlmIChvbkV4aXRDb21wbGV0ZSkge1xuICAgICAgICAgICAgb25FeGl0Q29tcGxldGUodGhpcy5pZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlZ2lzdGVyKSB7XG4gICAgICAgICAgICB0aGlzLnVubW91bnQgPSByZWdpc3Rlcih0aGlzLmlkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB1bm1vdW50KCkgeyB9XG59XG5cbmV4cG9ydCB7IEV4aXRBbmltYXRpb25GZWF0dXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1leGl0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimationFeature: () => (/* binding */ AnimationFeature)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/animation-state.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n\n\nclass AnimationFeature extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n constructor(node) {\n super(node);\n node.animationState || (node.animationState = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.createAnimationState)(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isAnimationControls)(animate)) {\n this.unmountControls = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() {\n this.node.animationState.reset();\n this.unmountControls?.();\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbi9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFnRjs7QUFFaEYsK0JBQStCLCtDQUFPO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNELGdFQUFvQjtBQUMxRTtBQUNBO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUIsWUFBWSwrREFBbUI7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsVUFBVTtBQUMxQixnQkFBZ0IsdUJBQXVCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9hbmltYXRpb24vaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUsIGNyZWF0ZUFuaW1hdGlvblN0YXRlLCBpc0FuaW1hdGlvbkNvbnRyb2xzIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5cbmNsYXNzIEFuaW1hdGlvbkZlYXR1cmUgZXh0ZW5kcyBGZWF0dXJlIHtcbiAgICAvKipcbiAgICAgKiBXZSBkeW5hbWljYWxseSBnZW5lcmF0ZSB0aGUgQW5pbWF0aW9uU3RhdGUgbWFuYWdlciBhcyBpdCBjb250YWlucyBhIHJlZmVyZW5jZVxuICAgICAqIHRvIHRoZSB1bmRlcmx5aW5nIGFuaW1hdGlvbiBsaWJyYXJ5LiBXZSBvbmx5IHdhbnQgdG8gbG9hZCB0aGF0IGlmIHdlIGxvYWQgdGhpcyxcbiAgICAgKiBzbyBwZW9wbGUgY2FuIG9wdGlvbmFsbHkgY29kZSBzcGxpdCBpdCBvdXQgdXNpbmcgdGhlIGBtYCBjb21wb25lbnQuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iobm9kZSkge1xuICAgICAgICBzdXBlcihub2RlKTtcbiAgICAgICAgbm9kZS5hbmltYXRpb25TdGF0ZSB8fCAobm9kZS5hbmltYXRpb25TdGF0ZSA9IGNyZWF0ZUFuaW1hdGlvblN0YXRlKG5vZGUpKTtcbiAgICB9XG4gICAgdXBkYXRlQW5pbWF0aW9uQ29udHJvbHNTdWJzY3JpcHRpb24oKSB7XG4gICAgICAgIGNvbnN0IHsgYW5pbWF0ZSB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XG4gICAgICAgIGlmIChpc0FuaW1hdGlvbkNvbnRyb2xzKGFuaW1hdGUpKSB7XG4gICAgICAgICAgICB0aGlzLnVubW91bnRDb250cm9scyA9IGFuaW1hdGUuc3Vic2NyaWJlKHRoaXMubm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU3Vic2NyaWJlIGFueSBwcm92aWRlZCBBbmltYXRpb25Db250cm9scyB0byB0aGUgY29tcG9uZW50J3MgVmlzdWFsRWxlbWVudFxuICAgICAqL1xuICAgIG1vdW50KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUFuaW1hdGlvbkNvbnRyb2xzU3Vic2NyaXB0aW9uKCk7XG4gICAgfVxuICAgIHVwZGF0ZSgpIHtcbiAgICAgICAgY29uc3QgeyBhbmltYXRlIH0gPSB0aGlzLm5vZGUuZ2V0UHJvcHMoKTtcbiAgICAgICAgY29uc3QgeyBhbmltYXRlOiBwcmV2QW5pbWF0ZSB9ID0gdGhpcy5ub2RlLnByZXZQcm9wcyB8fCB7fTtcbiAgICAgICAgaWYgKGFuaW1hdGUgIT09IHByZXZBbmltYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFuaW1hdGlvbkNvbnRyb2xzU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdW5tb3VudCgpIHtcbiAgICAgICAgdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnJlc2V0KCk7XG4gICAgICAgIHRoaXMudW5tb3VudENvbnRyb2xzPy4oKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IEFuaW1hdGlvbkZlYXR1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/animations.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animations: () => (/* binding */ animations)\n/* harmony export */ });\n/* harmony import */ var _animation_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs\");\n/* harmony import */ var _animation_exit_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./animation/exit.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs\");\n\n\n\nconst animations = {\n animation: {\n Feature: _animation_index_mjs__WEBPACK_IMPORTED_MODULE_0__.AnimationFeature,\n },\n exit: {\n Feature: _animation_exit_mjs__WEBPACK_IMPORTED_MODULE_1__.ExitAnimationFeature,\n },\n};\n\n\n//# sourceMappingURL=animations.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5RDtBQUNHOztBQUU1RDtBQUNBO0FBQ0EsaUJBQWlCLGtFQUFnQjtBQUNqQyxLQUFLO0FBQ0w7QUFDQSxpQkFBaUIscUVBQW9CO0FBQ3JDLEtBQUs7QUFDTDs7QUFFc0I7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9hbmltYXRpb25zLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRpb25GZWF0dXJlIH0gZnJvbSAnLi9hbmltYXRpb24vaW5kZXgubWpzJztcbmltcG9ydCB7IEV4aXRBbmltYXRpb25GZWF0dXJlIH0gZnJvbSAnLi9hbmltYXRpb24vZXhpdC5tanMnO1xuXG5jb25zdCBhbmltYXRpb25zID0ge1xuICAgIGFuaW1hdGlvbjoge1xuICAgICAgICBGZWF0dXJlOiBBbmltYXRpb25GZWF0dXJlLFxuICAgIH0sXG4gICAgZXhpdDoge1xuICAgICAgICBGZWF0dXJlOiBFeGl0QW5pbWF0aW9uRmVhdHVyZSxcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgYW5pbWF0aW9ucyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW5pbWF0aW9ucy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/definitions.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getInitializedFeatureDefinitions: () => (/* binding */ getInitializedFeatureDefinitions),\n/* harmony export */ initFeatureDefinitions: () => (/* binding */ initFeatureDefinitions)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\");\n\n\nconst featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nlet isInitialized = false;\n/**\n * Initialize feature definitions with isEnabled checks.\n * This must be called before any motion components are rendered.\n */\nfunction initFeatureDefinitions() {\n if (isInitialized)\n return;\n const initialFeatureDefinitions = {};\n for (const key in featureProps) {\n initialFeatureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n }\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.setFeatureDefinitions)(initialFeatureDefinitions);\n isInitialized = true;\n}\n/**\n * Get the current feature definitions, initializing if needed.\n */\nfunction getInitializedFeatureDefinitions() {\n initFeatureDefinitions();\n return (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.getFeatureDefinitions)();\n}\n\n\n//# sourceMappingURL=definitions.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2RlZmluaXRpb25zLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMEU7O0FBRTFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxpRUFBcUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGlFQUFxQjtBQUNoQzs7QUFFb0U7QUFDcEUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9kZWZpbml0aW9ucy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0RmVhdHVyZURlZmluaXRpb25zLCBzZXRGZWF0dXJlRGVmaW5pdGlvbnMgfSBmcm9tICdtb3Rpb24tZG9tJztcblxuY29uc3QgZmVhdHVyZVByb3BzID0ge1xuICAgIGFuaW1hdGlvbjogW1xuICAgICAgICBcImFuaW1hdGVcIixcbiAgICAgICAgXCJ2YXJpYW50c1wiLFxuICAgICAgICBcIndoaWxlSG92ZXJcIixcbiAgICAgICAgXCJ3aGlsZVRhcFwiLFxuICAgICAgICBcImV4aXRcIixcbiAgICAgICAgXCJ3aGlsZUluVmlld1wiLFxuICAgICAgICBcIndoaWxlRm9jdXNcIixcbiAgICAgICAgXCJ3aGlsZURyYWdcIixcbiAgICBdLFxuICAgIGV4aXQ6IFtcImV4aXRcIl0sXG4gICAgZHJhZzogW1wiZHJhZ1wiLCBcImRyYWdDb250cm9sc1wiXSxcbiAgICBmb2N1czogW1wid2hpbGVGb2N1c1wiXSxcbiAgICBob3ZlcjogW1wid2hpbGVIb3ZlclwiLCBcIm9uSG92ZXJTdGFydFwiLCBcIm9uSG92ZXJFbmRcIl0sXG4gICAgdGFwOiBbXCJ3aGlsZVRhcFwiLCBcIm9uVGFwXCIsIFwib25UYXBTdGFydFwiLCBcIm9uVGFwQ2FuY2VsXCJdLFxuICAgIHBhbjogW1wib25QYW5cIiwgXCJvblBhblN0YXJ0XCIsIFwib25QYW5TZXNzaW9uU3RhcnRcIiwgXCJvblBhbkVuZFwiXSxcbiAgICBpblZpZXc6IFtcIndoaWxlSW5WaWV3XCIsIFwib25WaWV3cG9ydEVudGVyXCIsIFwib25WaWV3cG9ydExlYXZlXCJdLFxuICAgIGxheW91dDogW1wibGF5b3V0XCIsIFwibGF5b3V0SWRcIl0sXG59O1xubGV0IGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbi8qKlxuICogSW5pdGlhbGl6ZSBmZWF0dXJlIGRlZmluaXRpb25zIHdpdGggaXNFbmFibGVkIGNoZWNrcy5cbiAqIFRoaXMgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBtb3Rpb24gY29tcG9uZW50cyBhcmUgcmVuZGVyZWQuXG4gKi9cbmZ1bmN0aW9uIGluaXRGZWF0dXJlRGVmaW5pdGlvbnMoKSB7XG4gICAgaWYgKGlzSW5pdGlhbGl6ZWQpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBpbml0aWFsRmVhdHVyZURlZmluaXRpb25zID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmVhdHVyZVByb3BzKSB7XG4gICAgICAgIGluaXRpYWxGZWF0dXJlRGVmaW5pdGlvbnNba2V5XSA9IHtcbiAgICAgICAgICAgIGlzRW5hYmxlZDogKHByb3BzKSA9PiBmZWF0dXJlUHJvcHNba2V5XS5zb21lKChuYW1lKSA9PiAhIXByb3BzW25hbWVdKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc2V0RmVhdHVyZURlZmluaXRpb25zKGluaXRpYWxGZWF0dXJlRGVmaW5pdGlvbnMpO1xuICAgIGlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xufVxuLyoqXG4gKiBHZXQgdGhlIGN1cnJlbnQgZmVhdHVyZSBkZWZpbml0aW9ucywgaW5pdGlhbGl6aW5nIGlmIG5lZWRlZC5cbiAqL1xuZnVuY3Rpb24gZ2V0SW5pdGlhbGl6ZWRGZWF0dXJlRGVmaW5pdGlvbnMoKSB7XG4gICAgaW5pdEZlYXR1cmVEZWZpbml0aW9ucygpO1xuICAgIHJldHVybiBnZXRGZWF0dXJlRGVmaW5pdGlvbnMoKTtcbn1cblxuZXhwb3J0IHsgZ2V0SW5pdGlhbGl6ZWRGZWF0dXJlRGVmaW5pdGlvbnMsIGluaXRGZWF0dXJlRGVmaW5pdGlvbnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmluaXRpb25zLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/drag.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drag: () => (/* binding */ drag)\n/* harmony export */ });\n/* harmony import */ var _gestures_drag_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../gestures/drag/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs\");\n/* harmony import */ var _gestures_pan_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../gestures/pan/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs\");\n/* harmony import */ var _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./layout/MeasureLayout.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs\");\n\n\n\n\n\nconst drag = {\n pan: {\n Feature: _gestures_pan_index_mjs__WEBPACK_IMPORTED_MODULE_0__.PanGesture,\n },\n drag: {\n Feature: _gestures_drag_index_mjs__WEBPACK_IMPORTED_MODULE_1__.DragGesture,\n ProjectionNode: motion_dom__WEBPACK_IMPORTED_MODULE_2__.HTMLProjectionNode,\n MeasureLayout: _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_3__.MeasureLayout,\n },\n};\n\n\n//# sourceMappingURL=drag.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2RyYWcubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTREO0FBQ0Y7QUFDQztBQUNYOztBQUVoRDtBQUNBO0FBQ0EsaUJBQWlCLCtEQUFVO0FBQzNCLEtBQUs7QUFDTDtBQUNBLGlCQUFpQixpRUFBVztBQUM1Qix3QkFBd0IsMERBQWtCO0FBQzFDLHFCQUFxQjtBQUNyQixLQUFLO0FBQ0w7O0FBRWdCO0FBQ2hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvZHJhZy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0dlc3R1cmUgfSBmcm9tICcuLi8uLi9nZXN0dXJlcy9kcmFnL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBQYW5HZXN0dXJlIH0gZnJvbSAnLi4vLi4vZ2VzdHVyZXMvcGFuL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBNZWFzdXJlTGF5b3V0IH0gZnJvbSAnLi9sYXlvdXQvTWVhc3VyZUxheW91dC5tanMnO1xuaW1wb3J0IHsgSFRNTFByb2plY3Rpb25Ob2RlIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5cbmNvbnN0IGRyYWcgPSB7XG4gICAgcGFuOiB7XG4gICAgICAgIEZlYXR1cmU6IFBhbkdlc3R1cmUsXG4gICAgfSxcbiAgICBkcmFnOiB7XG4gICAgICAgIEZlYXR1cmU6IERyYWdHZXN0dXJlLFxuICAgICAgICBQcm9qZWN0aW9uTm9kZTogSFRNTFByb2plY3Rpb25Ob2RlLFxuICAgICAgICBNZWFzdXJlTGF5b3V0LFxuICAgIH0sXG59O1xuXG5leHBvcnQgeyBkcmFnIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kcmFnLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/gestures.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gestureAnimations: () => (/* binding */ gestureAnimations)\n/* harmony export */ });\n/* harmony import */ var _gestures_hover_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../gestures/hover.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/hover.mjs\");\n/* harmony import */ var _gestures_focus_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gestures/focus.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/focus.mjs\");\n/* harmony import */ var _gestures_press_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../gestures/press.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/press.mjs\");\n/* harmony import */ var _viewport_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./viewport/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs\");\n\n\n\n\n\nconst gestureAnimations = {\n inView: {\n Feature: _viewport_index_mjs__WEBPACK_IMPORTED_MODULE_0__.InViewFeature,\n },\n tap: {\n Feature: _gestures_press_mjs__WEBPACK_IMPORTED_MODULE_1__.PressGesture,\n },\n focus: {\n Feature: _gestures_focus_mjs__WEBPACK_IMPORTED_MODULE_2__.FocusGesture,\n },\n hover: {\n Feature: _gestures_hover_mjs__WEBPACK_IMPORTED_MODULE_3__.HoverGesture,\n },\n};\n\n\n//# sourceMappingURL=gestures.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2dlc3R1cmVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUF3RDtBQUNBO0FBQ0E7QUFDSDs7QUFFckQ7QUFDQTtBQUNBLGlCQUFpQiw4REFBYTtBQUM5QixLQUFLO0FBQ0w7QUFDQSxpQkFBaUIsNkRBQVk7QUFDN0IsS0FBSztBQUNMO0FBQ0EsaUJBQWlCLDZEQUFZO0FBQzdCLEtBQUs7QUFDTDtBQUNBLGlCQUFpQiw2REFBWTtBQUM3QixLQUFLO0FBQ0w7O0FBRTZCO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvZ2VzdHVyZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhvdmVyR2VzdHVyZSB9IGZyb20gJy4uLy4uL2dlc3R1cmVzL2hvdmVyLm1qcyc7XG5pbXBvcnQgeyBGb2N1c0dlc3R1cmUgfSBmcm9tICcuLi8uLi9nZXN0dXJlcy9mb2N1cy5tanMnO1xuaW1wb3J0IHsgUHJlc3NHZXN0dXJlIH0gZnJvbSAnLi4vLi4vZ2VzdHVyZXMvcHJlc3MubWpzJztcbmltcG9ydCB7IEluVmlld0ZlYXR1cmUgfSBmcm9tICcuL3ZpZXdwb3J0L2luZGV4Lm1qcyc7XG5cbmNvbnN0IGdlc3R1cmVBbmltYXRpb25zID0ge1xuICAgIGluVmlldzoge1xuICAgICAgICBGZWF0dXJlOiBJblZpZXdGZWF0dXJlLFxuICAgIH0sXG4gICAgdGFwOiB7XG4gICAgICAgIEZlYXR1cmU6IFByZXNzR2VzdHVyZSxcbiAgICB9LFxuICAgIGZvY3VzOiB7XG4gICAgICAgIEZlYXR1cmU6IEZvY3VzR2VzdHVyZSxcbiAgICB9LFxuICAgIGhvdmVyOiB7XG4gICAgICAgIEZlYXR1cmU6IEhvdmVyR2VzdHVyZSxcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgZ2VzdHVyZUFuaW1hdGlvbnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdlc3R1cmVzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/layout.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ layout: () => (/* binding */ layout)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs\");\n/* harmony import */ var _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layout/MeasureLayout.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\");\n\n\n\nconst layout = {\n layout: {\n ProjectionNode: motion_dom__WEBPACK_IMPORTED_MODULE_0__.HTMLProjectionNode,\n MeasureLayout: _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_1__.MeasureLayout,\n },\n};\n\n\n//# sourceMappingURL=layout.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdEO0FBQ1c7O0FBRTNEO0FBQ0E7QUFDQSx3QkFBd0IsMERBQWtCO0FBQzFDLHFCQUFxQjtBQUNyQixLQUFLO0FBQ0w7O0FBRWtCO0FBQ2xCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvbGF5b3V0Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVE1MUHJvamVjdGlvbk5vZGUgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IE1lYXN1cmVMYXlvdXQgfSBmcm9tICcuL2xheW91dC9NZWFzdXJlTGF5b3V0Lm1qcyc7XG5cbmNvbnN0IGxheW91dCA9IHtcbiAgICBsYXlvdXQ6IHtcbiAgICAgICAgUHJvamVjdGlvbk5vZGU6IEhUTUxQcm9qZWN0aW9uTm9kZSxcbiAgICAgICAgTWVhc3VyZUxheW91dCxcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgbGF5b3V0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sYXlvdXQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs ***! + \*************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MeasureLayout: () => (/* binding */ MeasureLayout)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/state.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _components_AnimatePresence_use_presence_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../components/AnimatePresence/use-presence.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../context/LayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../context/SwitchLayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\");\n/* __next_internal_client_entry_do_not_use__ MeasureLayout auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\n/**\n * Track whether we've taken any snapshots yet. If not,\n * we can safely skip notification of didUpdate.\n *\n * Difficult to capture in a test but to prevent flickering\n * we must set this to true either on update or unmount.\n * Running `next-env/layout-id` in Safari will show this behaviour if broken.\n */ let hasTakenAnySnapshot = false;\nclass MeasureLayoutWithContext extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */ componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n if (projection) {\n if (layoutGroup.group) layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n if (hasTakenAnySnapshot) {\n projection.root.didUpdate();\n }\n projection.addEventListener(\"animationComplete\", ()=>{\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n layoutDependency: this.props.layoutDependency,\n onExitComplete: ()=>this.safeToRemove()\n });\n }\n motion_dom__WEBPACK_IMPORTED_MODULE_2__.globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const { projection } = visualElement;\n if (!projection) return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */ projection.isPresent = isPresent;\n if (prevProps.layoutDependency !== layoutDependency) {\n projection.setOptions({\n ...projection.options,\n layoutDependency\n });\n }\n hasTakenAnySnapshot = true;\n if (drag || prevProps.layoutDependency !== layoutDependency || layoutDependency === undefined || prevProps.isPresent !== isPresent) {\n projection.willUpdate();\n } else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n } else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */ motion_dom__WEBPACK_IMPORTED_MODULE_3__.frame.postRender(()=>{\n const stack = projection.getStack();\n if (!stack || !stack.members.length) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n motion_dom__WEBPACK_IMPORTED_MODULE_4__.microtask.postRender(()=>{\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n });\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext } = this.props;\n const { projection } = visualElement;\n hasTakenAnySnapshot = true;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup && layoutGroup.group) layoutGroup.group.remove(projection);\n if (promoteContext && promoteContext.deregister) promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove && safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n _s();\n const [isPresent, safeToRemove] = (0,_components_AnimatePresence_use_presence_mjs__WEBPACK_IMPORTED_MODULE_5__.usePresence)();\n const layoutGroup = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__.LayoutGroupContext);\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MeasureLayoutWithContext, {\n ...props,\n layoutGroup: layoutGroup,\n switchLayoutGroup: (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_7__.SwitchLayoutGroupContext),\n isPresent: isPresent,\n safeToRemove: safeToRemove\n });\n}\n_s(MeasureLayout, \"yNGbDR7vVbW3g5x+bSOH3lDhKv0=\", false, function() {\n return [\n _components_AnimatePresence_use_presence_mjs__WEBPACK_IMPORTED_MODULE_5__.usePresence\n ];\n});\n_c = MeasureLayout;\n //# sourceMappingURL=MeasureLayout.mjs.map\nvar _c;\n$RefreshReg$(_c, \"MeasureLayout\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC9NZWFzdXJlTGF5b3V0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JBOzs7Ozs7O0NBT0csR0FDSDtBQUVBO0lBQ0k7Ozs7S0FJRztRQUVDO1FBRUE7O21DQUcyQjs7Z0JBR25COzs7Z0JBSUE7O1lBR0o7O1lBRUE7OztnQkFHSTtnQkFDQTtZQUNIOztRQUdMLDZEQUFxQixDQUFyQjs7SUFHSjtRQUNJO1FBQ0E7UUFFQSxpQkFBaUI7UUFFakI7Ozs7OztTQU1HLEdBQ0g7UUFFQTs7OztZQUlLOzs7UUFLTCwrREFHSSxrQ0FDQTs7Ozs7UUFPSjs7O21CQUdXO2dCQUNIOzs7O2lCQUlHLEdBQ0gsNkNBQUssQ0FBTDtvQkFDSTs7OztnQkFJSjs7O1FBSVI7Ozs7O1lBTUk7WUFFQSxpREFBUyxDQUFUOzs7O1lBSUE7Ozs7UUFLSjtRQUtBOzs7O1lBTUksc0NBQ0k7WUFDSixpREFDSTs7OztRQUtSOzs7O1FBS0E7O0FBRVA7QUFFSzs7O0lBSUY7Ozs7Ozs7O0FBV0o7R0FmTTs7Ozs7S0FBQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zcmMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC9NZWFzdXJlTGF5b3V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyBmcmFtZSwgbWljcm90YXNrLCBnbG9iYWxQcm9qZWN0aW9uU3RhdGUsIHR5cGUgVmlzdWFsRWxlbWVudCB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCB7IENvbXBvbmVudCwgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB1c2VQcmVzZW5jZSB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL0FuaW1hdGVQcmVzZW5jZS91c2UtcHJlc2VuY2VcIlxuaW1wb3J0IHtcbiAgICBMYXlvdXRHcm91cENvbnRleHQsXG4gICAgTGF5b3V0R3JvdXBDb250ZXh0UHJvcHMsXG59IGZyb20gXCIuLi8uLi8uLi9jb250ZXh0L0xheW91dEdyb3VwQ29udGV4dFwiXG5pbXBvcnQgeyBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vY29udGV4dC9Td2l0Y2hMYXlvdXRHcm91cENvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIlxuXG5pbnRlcmZhY2UgTWVhc3VyZUNvbnRleHRQcm9wcyB7XG4gICAgbGF5b3V0R3JvdXA6IExheW91dEdyb3VwQ29udGV4dFByb3BzXG4gICAgc3dpdGNoTGF5b3V0R3JvdXA/OiBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHRcbiAgICBpc1ByZXNlbnQ6IGJvb2xlYW5cbiAgICBzYWZlVG9SZW1vdmU/OiBWb2lkRnVuY3Rpb24gfCBudWxsXG59XG5cbnR5cGUgTWVhc3VyZVByb3BzID0gTW90aW9uUHJvcHMgJlxuICAgIE1lYXN1cmVDb250ZXh0UHJvcHMgJiB7IHZpc3VhbEVsZW1lbnQ6IFZpc3VhbEVsZW1lbnQgfVxuXG4vKipcbiAqIFRyYWNrIHdoZXRoZXIgd2UndmUgdGFrZW4gYW55IHNuYXBzaG90cyB5ZXQuIElmIG5vdCxcbiAqIHdlIGNhbiBzYWZlbHkgc2tpcCBub3RpZmljYXRpb24gb2YgZGlkVXBkYXRlLlxuICpcbiAqIERpZmZpY3VsdCB0byBjYXB0dXJlIGluIGEgdGVzdCBidXQgdG8gcHJldmVudCBmbGlja2VyaW5nXG4gKiB3ZSBtdXN0IHNldCB0aGlzIHRvIHRydWUgZWl0aGVyIG9uIHVwZGF0ZSBvciB1bm1vdW50LlxuICogUnVubmluZyBgbmV4dC1lbnYvbGF5b3V0LWlkYCBpbiBTYWZhcmkgd2lsbCBzaG93IHRoaXMgYmVoYXZpb3VyIGlmIGJyb2tlbi5cbiAqL1xubGV0IGhhc1Rha2VuQW55U25hcHNob3QgPSBmYWxzZVxuXG5jbGFzcyBNZWFzdXJlTGF5b3V0V2l0aENvbnRleHQgZXh0ZW5kcyBDb21wb25lbnQ8TWVhc3VyZVByb3BzPiB7XG4gICAgLyoqXG4gICAgICogVGhpcyBvbmx5IG1vdW50cyBwcm9qZWN0aW9uIG5vZGVzIGZvciBjb21wb25lbnRzIHRoYXRcbiAgICAgKiBuZWVkIG1lYXN1cmluZywgd2UgbWlnaHQgd2FudCB0byBkbyBpdCBmb3IgYWxsIGNvbXBvbmVudHNcbiAgICAgKiBpbiBvcmRlciB0byBpbmNvcnBvcmF0ZSB0cmFuc2Zvcm1zXG4gICAgICovXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCwgbGF5b3V0R3JvdXAsIHN3aXRjaExheW91dEdyb3VwLCBsYXlvdXRJZCB9ID1cbiAgICAgICAgICAgIHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB2aXN1YWxFbGVtZW50XG5cbiAgICAgICAgaWYgKHByb2plY3Rpb24pIHtcbiAgICAgICAgICAgIGlmIChsYXlvdXRHcm91cC5ncm91cCkgbGF5b3V0R3JvdXAuZ3JvdXAuYWRkKHByb2plY3Rpb24pXG5cbiAgICAgICAgICAgIGlmIChzd2l0Y2hMYXlvdXRHcm91cCAmJiBzd2l0Y2hMYXlvdXRHcm91cC5yZWdpc3RlciAmJiBsYXlvdXRJZCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaExheW91dEdyb3VwLnJlZ2lzdGVyKHByb2plY3Rpb24pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChoYXNUYWtlbkFueVNuYXBzaG90KSB7XG4gICAgICAgICAgICAgICAgcHJvamVjdGlvbi5yb290IS5kaWRVcGRhdGUoKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwcm9qZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoXCJhbmltYXRpb25Db21wbGV0ZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zYWZlVG9SZW1vdmUoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHByb2plY3Rpb24uc2V0T3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgLi4ucHJvamVjdGlvbi5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGxheW91dERlcGVuZGVuY3k6IHRoaXMucHJvcHMubGF5b3V0RGVwZW5kZW5jeSxcbiAgICAgICAgICAgICAgICBvbkV4aXRDb21wbGV0ZTogKCkgPT4gdGhpcy5zYWZlVG9SZW1vdmUoKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBnbG9iYWxQcm9qZWN0aW9uU3RhdGUuaGFzRXZlclVwZGF0ZWQgPSB0cnVlXG4gICAgfVxuXG4gICAgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzOiBNZWFzdXJlUHJvcHMpIHtcbiAgICAgICAgY29uc3QgeyBsYXlvdXREZXBlbmRlbmN5LCB2aXN1YWxFbGVtZW50LCBkcmFnLCBpc1ByZXNlbnQgfSA9IHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB2aXN1YWxFbGVtZW50XG5cbiAgICAgICAgaWYgKCFwcm9qZWN0aW9uKSByZXR1cm4gbnVsbFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUT0RPOiBXZSB1c2UgdGhpcyBkYXRhIGluIHJlbGVnYXRlIHRvIGRldGVybWluZSB3aGV0aGVyIHRvXG4gICAgICAgICAqIHByb21vdGUgYSBwcmV2aW91cyBlbGVtZW50LiBUaGVyZSdzIG5vIGd1YXJhbnRlZSBpdHMgcHJlc2VuY2UgZGF0YVxuICAgICAgICAgKiB3aWxsIGhhdmUgdXBkYXRlZCBieSB0aGlzIHBvaW50IC0gaWYgYSBidWcgbGlrZSB0aGlzIGFyaXNlcyBpdCB3aWxsXG4gICAgICAgICAqIGhhdmUgdG8gYmUgdGhhdCB3ZSBtYXJrRm9yUmVsZWdhdGlvbiBhbmQgdGhlbiBmaW5kIGEgbmV3IGxlYWQgc29tZSBvdGhlciB3YXksXG4gICAgICAgICAqIHBlcmhhcHMgaW4gZGlkVXBkYXRlXG4gICAgICAgICAqL1xuICAgICAgICBwcm9qZWN0aW9uLmlzUHJlc2VudCA9IGlzUHJlc2VudFxuXG4gICAgICAgIGlmIChwcmV2UHJvcHMubGF5b3V0RGVwZW5kZW5jeSAhPT0gbGF5b3V0RGVwZW5kZW5jeSkge1xuICAgICAgICAgICAgcHJvamVjdGlvbi5zZXRPcHRpb25zKHtcbiAgICAgICAgICAgICAgICAuLi5wcm9qZWN0aW9uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgbGF5b3V0RGVwZW5kZW5jeSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBoYXNUYWtlbkFueVNuYXBzaG90ID0gdHJ1ZVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGRyYWcgfHxcbiAgICAgICAgICAgIHByZXZQcm9wcy5sYXlvdXREZXBlbmRlbmN5ICE9PSBsYXlvdXREZXBlbmRlbmN5IHx8XG4gICAgICAgICAgICBsYXlvdXREZXBlbmRlbmN5ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIHByZXZQcm9wcy5pc1ByZXNlbnQgIT09IGlzUHJlc2VudFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHByb2plY3Rpb24ud2lsbFVwZGF0ZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNhZmVUb1JlbW92ZSgpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJldlByb3BzLmlzUHJlc2VudCAhPT0gaXNQcmVzZW50KSB7XG4gICAgICAgICAgICBpZiAoaXNQcmVzZW50KSB7XG4gICAgICAgICAgICAgICAgcHJvamVjdGlvbi5wcm9tb3RlKClcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXByb2plY3Rpb24ucmVsZWdhdGUoKSkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHRoZXJlJ3MgYW5vdGhlciBzdGFjayBtZW1iZXIgdGFraW5nIG92ZXIgZnJvbSB0aGlzIG9uZSxcbiAgICAgICAgICAgICAgICAgKiBpdCdzIGluIGNoYXJnZSBvZiB0aGUgZXhpdCBhbmltYXRpb24gYW5kIHRoZXJlZm9yZSBzaG91bGRcbiAgICAgICAgICAgICAgICAgKiBiZSBpbiBjaGFyZ2Ugb2YgdGhlIHNhZmUgdG8gcmVtb3ZlLiBPdGhlcndpc2Ugd2UgY2FsbCBpdCBoZXJlLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGZyYW1lLnBvc3RSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFjayA9IHByb2plY3Rpb24uZ2V0U3RhY2soKVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXN0YWNrIHx8ICFzdGFjay5tZW1iZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zYWZlVG9SZW1vdmUoKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgICBjb25zdCB7IHByb2plY3Rpb24gfSA9IHRoaXMucHJvcHMudmlzdWFsRWxlbWVudFxuICAgICAgICBpZiAocHJvamVjdGlvbikge1xuICAgICAgICAgICAgcHJvamVjdGlvbi5yb290IS5kaWRVcGRhdGUoKVxuXG4gICAgICAgICAgICBtaWNyb3Rhc2sucG9zdFJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0aW9uLmN1cnJlbnRBbmltYXRpb24gJiYgcHJvamVjdGlvbi5pc0xlYWQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNhZmVUb1JlbW92ZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LFxuICAgICAgICAgICAgbGF5b3V0R3JvdXAsXG4gICAgICAgICAgICBzd2l0Y2hMYXlvdXRHcm91cDogcHJvbW90ZUNvbnRleHQsXG4gICAgICAgIH0gPSB0aGlzLnByb3BzXG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdmlzdWFsRWxlbWVudFxuXG4gICAgICAgIGhhc1Rha2VuQW55U25hcHNob3QgPSB0cnVlXG5cbiAgICAgICAgaWYgKHByb2plY3Rpb24pIHtcbiAgICAgICAgICAgIHByb2plY3Rpb24uc2NoZWR1bGVDaGVja0FmdGVyVW5tb3VudCgpXG4gICAgICAgICAgICBpZiAobGF5b3V0R3JvdXAgJiYgbGF5b3V0R3JvdXAuZ3JvdXApXG4gICAgICAgICAgICAgICAgbGF5b3V0R3JvdXAuZ3JvdXAucmVtb3ZlKHByb2plY3Rpb24pXG4gICAgICAgICAgICBpZiAocHJvbW90ZUNvbnRleHQgJiYgcHJvbW90ZUNvbnRleHQuZGVyZWdpc3RlcilcbiAgICAgICAgICAgICAgICBwcm9tb3RlQ29udGV4dC5kZXJlZ2lzdGVyKHByb2plY3Rpb24pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzYWZlVG9SZW1vdmUoKSB7XG4gICAgICAgIGNvbnN0IHsgc2FmZVRvUmVtb3ZlIH0gPSB0aGlzLnByb3BzXG4gICAgICAgIHNhZmVUb1JlbW92ZSAmJiBzYWZlVG9SZW1vdmUoKVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNZWFzdXJlTGF5b3V0KFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wcyAmIHsgdmlzdWFsRWxlbWVudDogVmlzdWFsRWxlbWVudCB9XG4pIHtcbiAgICBjb25zdCBbaXNQcmVzZW50LCBzYWZlVG9SZW1vdmVdID0gdXNlUHJlc2VuY2UoKVxuICAgIGNvbnN0IGxheW91dEdyb3VwID0gdXNlQ29udGV4dChMYXlvdXRHcm91cENvbnRleHQpXG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8TWVhc3VyZUxheW91dFdpdGhDb250ZXh0XG4gICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICBsYXlvdXRHcm91cD17bGF5b3V0R3JvdXB9XG4gICAgICAgICAgICBzd2l0Y2hMYXlvdXRHcm91cD17dXNlQ29udGV4dChTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQpfVxuICAgICAgICAgICAgaXNQcmVzZW50PXtpc1ByZXNlbnR9XG4gICAgICAgICAgICBzYWZlVG9SZW1vdmU9e3NhZmVUb1JlbW92ZX1cbiAgICAgICAgLz5cbiAgICApXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/load-features.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadFeatures: () => (/* binding */ loadFeatures)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\");\n/* harmony import */ var _definitions_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./definitions.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\");\n\n\n\nfunction loadFeatures(features) {\n const featureDefinitions = (0,_definitions_mjs__WEBPACK_IMPORTED_MODULE_0__.getInitializedFeatureDefinitions)();\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.setFeatureDefinitions)(featureDefinitions);\n}\n\n\n//# sourceMappingURL=load-features.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xvYWQtZmVhdHVyZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFtRDtBQUNrQjs7QUFFckU7QUFDQSwrQkFBK0Isa0ZBQWdDO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksaUVBQXFCO0FBQ3pCOztBQUV3QjtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xvYWQtZmVhdHVyZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldEZlYXR1cmVEZWZpbml0aW9ucyB9IGZyb20gJ21vdGlvbi1kb20nO1xuaW1wb3J0IHsgZ2V0SW5pdGlhbGl6ZWRGZWF0dXJlRGVmaW5pdGlvbnMgfSBmcm9tICcuL2RlZmluaXRpb25zLm1qcyc7XG5cbmZ1bmN0aW9uIGxvYWRGZWF0dXJlcyhmZWF0dXJlcykge1xuICAgIGNvbnN0IGZlYXR1cmVEZWZpbml0aW9ucyA9IGdldEluaXRpYWxpemVkRmVhdHVyZURlZmluaXRpb25zKCk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmVhdHVyZXMpIHtcbiAgICAgICAgZmVhdHVyZURlZmluaXRpb25zW2tleV0gPSB7XG4gICAgICAgICAgICAuLi5mZWF0dXJlRGVmaW5pdGlvbnNba2V5XSxcbiAgICAgICAgICAgIC4uLmZlYXR1cmVzW2tleV0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIHNldEZlYXR1cmVEZWZpbml0aW9ucyhmZWF0dXJlRGVmaW5pdGlvbnMpO1xufVxuXG5leHBvcnQgeyBsb2FkRmVhdHVyZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvYWQtZmVhdHVyZXMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InViewFeature: () => (/* binding */ InViewFeature)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var _observers_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./observers.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs\");\n\n\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return (0,_observers_mjs__WEBPACK_IMPORTED_MODULE_1__.observeIntersection)(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL3ZpZXdwb3J0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBcUM7QUFDaUI7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLCtDQUFPO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGdCQUFnQjtBQUNoQyxnQkFBZ0Isa0RBQWtEO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQ0FBbUM7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtRUFBbUI7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUJBQW1CO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLGVBQWUsSUFBSSw4QkFBOEIsSUFBSTtBQUN6RjtBQUNBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL3ZpZXdwb3J0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBvYnNlcnZlSW50ZXJzZWN0aW9uIH0gZnJvbSAnLi9vYnNlcnZlcnMubWpzJztcblxuY29uc3QgdGhyZXNob2xkTmFtZXMgPSB7XG4gICAgc29tZTogMCxcbiAgICBhbGw6IDEsXG59O1xuY2xhc3MgSW5WaWV3RmVhdHVyZSBleHRlbmRzIEZlYXR1cmUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICB0aGlzLmhhc0VudGVyZWRWaWV3ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNJblZpZXcgPSBmYWxzZTtcbiAgICB9XG4gICAgc3RhcnRPYnNlcnZlcigpIHtcbiAgICAgICAgdGhpcy51bm1vdW50KCk7XG4gICAgICAgIGNvbnN0IHsgdmlld3BvcnQgPSB7fSB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XG4gICAgICAgIGNvbnN0IHsgcm9vdCwgbWFyZ2luOiByb290TWFyZ2luLCBhbW91bnQgPSBcInNvbWVcIiwgb25jZSB9ID0gdmlld3BvcnQ7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICByb290OiByb290ID8gcm9vdC5jdXJyZW50IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcm9vdE1hcmdpbixcbiAgICAgICAgICAgIHRocmVzaG9sZDogdHlwZW9mIGFtb3VudCA9PT0gXCJudW1iZXJcIiA/IGFtb3VudCA6IHRocmVzaG9sZE5hbWVzW2Ftb3VudF0sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uSW50ZXJzZWN0aW9uVXBkYXRlID0gKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGlzSW50ZXJzZWN0aW5nIH0gPSBlbnRyeTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhlcmUncyBiZWVuIG5vIGNoYW5nZSBpbiB0aGUgdmlld3BvcnQgc3RhdGUsIGVhcmx5IHJldHVybi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNJblZpZXcgPT09IGlzSW50ZXJzZWN0aW5nKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuaXNJblZpZXcgPSBpc0ludGVyc2VjdGluZztcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSGFuZGxlIGhhc0VudGVyZWRWaWV3LiBJZiB0aGlzIGlzIG9ubHkgbWVhbnQgdG8gcnVuIG9uY2UsIGFuZFxuICAgICAgICAgICAgICogZWxlbWVudCBpc24ndCB2aXNpYmxlLCBlYXJseSByZXR1cm4uIE90aGVyd2lzZSBzZXQgaGFzRW50ZXJlZFZpZXcgdG8gdHJ1ZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKG9uY2UgJiYgIWlzSW50ZXJzZWN0aW5nICYmIHRoaXMuaGFzRW50ZXJlZFZpZXcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzRW50ZXJlZFZpZXcgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZUluVmlld1wiLCBpc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFVzZSB0aGUgbGF0ZXN0IGNvbW1pdHRlZCBwcm9wcyByYXRoZXIgdGhhbiB0aGUgb25lcyBpbiBzY29wZVxuICAgICAgICAgICAgICogd2hlbiB0aGlzIG9ic2VydmVyIGlzIGNyZWF0ZWRcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgeyBvblZpZXdwb3J0RW50ZXIsIG9uVmlld3BvcnRMZWF2ZSB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IGlzSW50ZXJzZWN0aW5nID8gb25WaWV3cG9ydEVudGVyIDogb25WaWV3cG9ydExlYXZlO1xuICAgICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soZW50cnkpO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gb2JzZXJ2ZUludGVyc2VjdGlvbih0aGlzLm5vZGUuY3VycmVudCwgb3B0aW9ucywgb25JbnRlcnNlY3Rpb25VcGRhdGUpO1xuICAgIH1cbiAgICBtb3VudCgpIHtcbiAgICAgICAgdGhpcy5zdGFydE9ic2VydmVyKCk7XG4gICAgfVxuICAgIHVwZGF0ZSgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyBwcm9wcywgcHJldlByb3BzIH0gPSB0aGlzLm5vZGU7XG4gICAgICAgIGNvbnN0IGhhc09wdGlvbnNDaGFuZ2VkID0gW1wiYW1vdW50XCIsIFwibWFyZ2luXCIsIFwicm9vdFwiXS5zb21lKGhhc1ZpZXdwb3J0T3B0aW9uQ2hhbmdlZChwcm9wcywgcHJldlByb3BzKSk7XG4gICAgICAgIGlmIChoYXNPcHRpb25zQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5zdGFydE9ic2VydmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdW5tb3VudCgpIHsgfVxufVxuZnVuY3Rpb24gaGFzVmlld3BvcnRPcHRpb25DaGFuZ2VkKHsgdmlld3BvcnQgPSB7fSB9LCB7IHZpZXdwb3J0OiBwcmV2Vmlld3BvcnQgPSB7fSB9ID0ge30pIHtcbiAgICByZXR1cm4gKG5hbWUpID0+IHZpZXdwb3J0W25hbWVdICE9PSBwcmV2Vmlld3BvcnRbbmFtZV07XG59XG5cbmV4cG9ydCB7IEluVmlld0ZlYXR1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ observeIntersection: () => (/* binding */ observeIntersection)\n/* harmony export */ });\n/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\n\n//# sourceMappingURL=observers.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL3ZpZXdwb3J0L29ic2VydmVycy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLGtCQUFrQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrRkFBa0Ysa0JBQWtCO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFK0I7QUFDL0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy92aWV3cG9ydC9vYnNlcnZlcnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWFwIGFuIEludGVyc2VjdGlvbkhhbmRsZXIgY2FsbGJhY2sgdG8gYW4gZWxlbWVudC4gV2Ugb25seSBldmVyIG1ha2Ugb25lIGhhbmRsZXIgZm9yIG9uZVxuICogZWxlbWVudCwgc28gZXZlbiB0aG91Z2ggdGhlc2UgaGFuZGxlcnMgbWlnaHQgYWxsIGJlIHRyaWdnZXJlZCBieSBkaWZmZXJlbnRcbiAqIG9ic2VydmVycywgd2UgY2FuIGtlZXAgdGhlbSBpbiB0aGUgc2FtZSBtYXAuXG4gKi9cbmNvbnN0IG9ic2VydmVyQ2FsbGJhY2tzID0gbmV3IFdlYWtNYXAoKTtcbi8qKlxuICogTXVsdGlwbGUgb2JzZXJ2ZXJzIGNhbiBiZSBjcmVhdGVkIGZvciBtdWx0aXBsZSBlbGVtZW50L2RvY3VtZW50IHJvb3RzLiBFYWNoIHdpdGhcbiAqIGRpZmZlcmVudCBzZXR0aW5ncy4gU28gaGVyZSB3ZSBzdG9yZSBkaWN0aW9uYXJpZXMgb2Ygb2JzZXJ2ZXJzIHRvIGVhY2ggcm9vdCxcbiAqIHVzaW5nIHNlcmlhbGlzZWQgc2V0dGluZ3MgKHRocmVzaG9sZC9tYXJnaW4pIGFzIGxvb2t1cCBrZXlzLlxuICovXG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgZmlyZU9ic2VydmVyQ2FsbGJhY2sgPSAoZW50cnkpID0+IHtcbiAgICBjb25zdCBjYWxsYmFjayA9IG9ic2VydmVyQ2FsbGJhY2tzLmdldChlbnRyeS50YXJnZXQpO1xuICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKGVudHJ5KTtcbn07XG5jb25zdCBmaXJlQWxsT2JzZXJ2ZXJDYWxsYmFja3MgPSAoZW50cmllcykgPT4ge1xuICAgIGVudHJpZXMuZm9yRWFjaChmaXJlT2JzZXJ2ZXJDYWxsYmFjayk7XG59O1xuZnVuY3Rpb24gaW5pdEludGVyc2VjdGlvbk9ic2VydmVyKHsgcm9vdCwgLi4ub3B0aW9ucyB9KSB7XG4gICAgY29uc3QgbG9va3VwUm9vdCA9IHJvb3QgfHwgZG9jdW1lbnQ7XG4gICAgLyoqXG4gICAgICogSWYgd2UgZG9uJ3QgaGF2ZSBhbiBvYnNlcnZlciBsb29rdXAgbWFwIGZvciB0aGlzIHJvb3QsIGNyZWF0ZSBvbmUuXG4gICAgICovXG4gICAgaWYgKCFvYnNlcnZlcnMuaGFzKGxvb2t1cFJvb3QpKSB7XG4gICAgICAgIG9ic2VydmVycy5zZXQobG9va3VwUm9vdCwge30pO1xuICAgIH1cbiAgICBjb25zdCByb290T2JzZXJ2ZXJzID0gb2JzZXJ2ZXJzLmdldChsb29rdXBSb290KTtcbiAgICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShvcHRpb25zKTtcbiAgICAvKipcbiAgICAgKiBJZiB3ZSBkb24ndCBoYXZlIGFuIG9ic2VydmVyIGZvciB0aGlzIGNvbWJpbmF0aW9uIG9mIHJvb3QgYW5kIHNldHRpbmdzLFxuICAgICAqIGNyZWF0ZSBvbmUuXG4gICAgICovXG4gICAgaWYgKCFyb290T2JzZXJ2ZXJzW2tleV0pIHtcbiAgICAgICAgcm9vdE9ic2VydmVyc1trZXldID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZpcmVBbGxPYnNlcnZlckNhbGxiYWNrcywgeyByb290LCAuLi5vcHRpb25zIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcm9vdE9ic2VydmVyc1trZXldO1xufVxuZnVuY3Rpb24gb2JzZXJ2ZUludGVyc2VjdGlvbihlbGVtZW50LCBvcHRpb25zLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IHJvb3RJbnRlcmVzZWN0aW9uT2JzZXJ2ZXIgPSBpbml0SW50ZXJzZWN0aW9uT2JzZXJ2ZXIob3B0aW9ucyk7XG4gICAgb2JzZXJ2ZXJDYWxsYmFja3Muc2V0KGVsZW1lbnQsIGNhbGxiYWNrKTtcbiAgICByb290SW50ZXJlc2VjdGlvbk9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgb2JzZXJ2ZXJDYWxsYmFja3MuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICByb290SW50ZXJlc2VjdGlvbk9ic2VydmVyLnVub2JzZXJ2ZShlbGVtZW50KTtcbiAgICB9O1xufVxuXG5leHBvcnQgeyBvYnNlcnZlSW50ZXJzZWN0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1vYnNlcnZlcnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/index.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/index.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createMotionComponent: () => (/* binding */ createMotionComponent)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../context/LayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../context/LazyContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../context/MotionConfigContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../context/MotionContext/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_MotionContext_create_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../context/MotionContext/create.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs\");\n/* harmony import */ var _render_dom_use_render_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../render/dom/use-render.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs\");\n/* harmony import */ var _render_dom_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render/dom/utils/is-svg-component.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n/* harmony import */ var _render_html_use_html_visual_state_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../render/html/use-html-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs\");\n/* harmony import */ var _render_svg_use_svg_visual_state_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../render/svg/use-svg-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs\");\n/* harmony import */ var _utils_is_browser_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/is-browser.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\");\n/* harmony import */ var _features_definitions_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./features/definitions.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\");\n/* harmony import */ var _features_load_features_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./features/load-features.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs\");\n/* harmony import */ var _utils_symbol_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utils/symbol.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs\");\n/* harmony import */ var _utils_use_motion_ref_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/use-motion-ref.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs\");\n/* harmony import */ var _utils_use_visual_element_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/use-visual-element.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs\");\n/* __next_internal_client_entry_do_not_use__ createMotionComponent auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */ function createMotionComponent(Component) {\n let { forwardMotionProps = false, type } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, preloadedFeatures = arguments.length > 2 ? arguments[2] : void 0, createVisualElement = arguments.length > 3 ? arguments[3] : void 0;\n var _s = $RefreshSig$();\n preloadedFeatures && (0,_features_load_features_mjs__WEBPACK_IMPORTED_MODULE_2__.loadFeatures)(preloadedFeatures);\n /**\n * Determine whether to use SVG or HTML rendering based on:\n * 1. Explicit `type` option (highest priority)\n * 2. Auto-detection via `isSVGComponent`\n */ const isSVG = type ? type === \"svg\" : (0,_render_dom_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_3__.isSVGComponent)(Component);\n const useVisualState = isSVG ? _render_svg_use_svg_visual_state_mjs__WEBPACK_IMPORTED_MODULE_4__.useSVGVisualState : _render_html_use_html_visual_state_mjs__WEBPACK_IMPORTED_MODULE_5__.useHTMLVisualState;\n function MotionDOMComponent(props, externalRef) {\n _s();\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */ let MeasureLayout;\n const configAndProps = {\n ...(0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_6__.MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props)\n };\n const { isStatic } = configAndProps;\n const context = (0,_context_MotionContext_create_mjs__WEBPACK_IMPORTED_MODULE_7__.useCreateMotionContext)(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && _utils_is_browser_mjs__WEBPACK_IMPORTED_MODULE_8__.isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */ context.visualElement = (0,_utils_use_visual_element_mjs__WEBPACK_IMPORTED_MODULE_9__.useVisualElement)(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode, isSVG);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_10__.MotionContext.Provider, {\n value: context,\n children: [\n MeasureLayout && context.visualElement ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MeasureLayout, {\n visualElement: context.visualElement,\n ...configAndProps\n }) : null,\n (0,_render_dom_use_render_mjs__WEBPACK_IMPORTED_MODULE_11__.useRender)(Component, props, (0,_utils_use_motion_ref_mjs__WEBPACK_IMPORTED_MODULE_12__.useMotionRef)(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps, isSVG)\n ]\n });\n }\n _s(MotionDOMComponent, \"OzmmWP8E2WLE0LhHHUY21ioDbYk=\", false, function() {\n return [\n useLayoutId,\n _context_MotionContext_create_mjs__WEBPACK_IMPORTED_MODULE_7__.useCreateMotionContext,\n useVisualState,\n _utils_use_motion_ref_mjs__WEBPACK_IMPORTED_MODULE_12__.useMotionRef,\n _render_dom_use_render_mjs__WEBPACK_IMPORTED_MODULE_11__.useRender\n ];\n });\n var _Component_displayName, _ref;\n MotionDOMComponent.displayName = \"motion.\".concat(typeof Component === \"string\" ? Component : \"create(\".concat((_ref = (_Component_displayName = Component.displayName) !== null && _Component_displayName !== void 0 ? _Component_displayName : Component.name) !== null && _ref !== void 0 ? _ref : \"\", \")\"));\n const ForwardRefMotionComponent = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(MotionDOMComponent);\n ForwardRefMotionComponent[_utils_symbol_mjs__WEBPACK_IMPORTED_MODULE_13__.motionComponentSymbol] = Component;\n return ForwardRefMotionComponent;\n}\nfunction useLayoutId(param) {\n let { layoutId } = param;\n _s();\n const layoutGroupId = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_14__.LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined ? layoutGroupId + \"-\" + layoutId : layoutId;\n}\n_s(useLayoutId, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n _s1();\n const isStrict = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_15__.LazyContext).strict;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */ if ( true && preloadedFeatures && isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict ? (0,motion_utils__WEBPACK_IMPORTED_MODULE_16__.warning)(false, strictMessage, \"lazy-strict-mode\") : (0,motion_utils__WEBPACK_IMPORTED_MODULE_16__.invariant)(false, strictMessage, \"lazy-strict-mode\");\n }\n}\n_s1(useStrictMode, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\nfunction getProjectionFunctionality(props) {\n const featureDefinitions = (0,_features_definitions_mjs__WEBPACK_IMPORTED_MODULE_17__.getInitializedFeatureDefinitions)();\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout) return {};\n const combined = {\n ...drag,\n ...layout\n };\n return {\n MeasureLayout: (drag === null || drag === void 0 ? void 0 : drag.isEnabled(props)) || (layout === null || layout === void 0 ? void 0 : layout.isEnabled(props)) ? combined.MeasureLayout : undefined,\n ProjectionNode: combined.ProjectionNode\n };\n}\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThEQTs7Ozs7Ozs7Q0FRRzs7O0lBVUM7SUFFQTs7OztLQUlHLEdBQ0g7O0lBR0E7O1FBSUk7OztTQUdHLEdBQ0g7UUFFQTs7WUFFSTtZQUNBOztRQUdKO1FBRUE7O1FBSUE7WUFDSTtZQUVBO1lBQ0E7WUFFQTs7Ozs7YUFLRyxHQUNIOztRQVVKOzs7U0FHRyxHQUNIO1lBQUE7WUFBQTtnQkFBQTtvQkFBQTtvQkFBQTtnQkFBQTtnQkFBQTthQUFBO1FBQUE7O09BaERKOztZQWFRO1lBS0o7O1lBOEJBO1lBQUE7OztRQTJCSTtJQUhSLDJDQUdRLE9BSFIsZ0NBRVEsWUFDQTtJQUdSO0lBQ0U7SUFFRjtBQUNKO0FBRUE7UUFBQTs7O0lBRUksaURBQ0k7QUFFUjtHQUxBO0FBT0E7OztJQU1JOzs7S0FHRyxHQUNILGtDQUdJOztRQUlBOztBQUlSO0lBckJBO0FBdUJBO0lBQ0k7SUFDQTtJQUVBLHNCQUFzQjs7Ozs7O1FBS2xCLDJMQUdROzs7QUFHaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9tb3Rpb24vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IGludmFyaWFudCwgd2FybmluZyB9IGZyb20gXCJtb3Rpb24tdXRpbHNcIlxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTGF5b3V0R3JvdXBDb250ZXh0IH0gZnJvbSBcIi4uL2NvbnRleHQvTGF5b3V0R3JvdXBDb250ZXh0XCJcbmltcG9ydCB7IExhenlDb250ZXh0IH0gZnJvbSBcIi4uL2NvbnRleHQvTGF6eUNvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uQ29uZmlnQ29udGV4dCB9IGZyb20gXCIuLi9jb250ZXh0L01vdGlvbkNvbmZpZ0NvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uQ29udGV4dCB9IGZyb20gXCIuLi9jb250ZXh0L01vdGlvbkNvbnRleHRcIlxuaW1wb3J0IHsgdXNlQ3JlYXRlTW90aW9uQ29udGV4dCB9IGZyb20gXCIuLi9jb250ZXh0L01vdGlvbkNvbnRleHQvY3JlYXRlXCJcbmltcG9ydCB7IERPTU1vdGlvbkNvbXBvbmVudHMgfSBmcm9tIFwiLi4vcmVuZGVyL2RvbS90eXBlc1wiXG5pbXBvcnQgeyB1c2VSZW5kZXIgfSBmcm9tIFwiLi4vcmVuZGVyL2RvbS91c2UtcmVuZGVyXCJcbmltcG9ydCB7IGlzU1ZHQ29tcG9uZW50IH0gZnJvbSBcIi4uL3JlbmRlci9kb20vdXRpbHMvaXMtc3ZnLWNvbXBvbmVudFwiXG5pbXBvcnQgeyBIVE1MUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi4vcmVuZGVyL2h0bWwvdHlwZXNcIlxuaW1wb3J0IHsgdXNlSFRNTFZpc3VhbFN0YXRlIH0gZnJvbSBcIi4uL3JlbmRlci9odG1sL3VzZS1odG1sLXZpc3VhbC1zdGF0ZVwiXG5pbXBvcnQgeyBTVkdSZW5kZXJTdGF0ZSB9IGZyb20gXCIuLi9yZW5kZXIvc3ZnL3R5cGVzXCJcbmltcG9ydCB7IHVzZVNWR1Zpc3VhbFN0YXRlIH0gZnJvbSBcIi4uL3JlbmRlci9zdmcvdXNlLXN2Zy12aXN1YWwtc3RhdGVcIlxuaW1wb3J0IHsgQ3JlYXRlVmlzdWFsRWxlbWVudCB9IGZyb20gXCIuLi9yZW5kZXIvdHlwZXNcIlxuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSBcIi4uL3V0aWxzL2lzLWJyb3dzZXJcIlxuaW1wb3J0IHsgZ2V0SW5pdGlhbGl6ZWRGZWF0dXJlRGVmaW5pdGlvbnMgfSBmcm9tIFwiLi9mZWF0dXJlcy9kZWZpbml0aW9uc1wiXG5pbXBvcnQgeyBsb2FkRmVhdHVyZXMgfSBmcm9tIFwiLi9mZWF0dXJlcy9sb2FkLWZlYXR1cmVzXCJcbmltcG9ydCB7IEZlYXR1cmVCdW5kbGUsIEZlYXR1cmVQYWNrYWdlcyB9IGZyb20gXCIuL2ZlYXR1cmVzL3R5cGVzXCJcbmltcG9ydCB7IE1vdGlvblByb3BzIH0gZnJvbSBcIi4vdHlwZXNcIlxuaW1wb3J0IHsgbW90aW9uQ29tcG9uZW50U3ltYm9sIH0gZnJvbSBcIi4vdXRpbHMvc3ltYm9sXCJcbmltcG9ydCB7IHVzZU1vdGlvblJlZiB9IGZyb20gXCIuL3V0aWxzL3VzZS1tb3Rpb24tcmVmXCJcbmltcG9ydCB7IHVzZVZpc3VhbEVsZW1lbnQgfSBmcm9tIFwiLi91dGlscy91c2UtdmlzdWFsLWVsZW1lbnRcIlxuXG5leHBvcnQgaW50ZXJmYWNlIE1vdGlvbkNvbXBvbmVudENvbmZpZzxcbiAgICBUYWdOYW1lIGV4dGVuZHMga2V5b2YgRE9NTW90aW9uQ29tcG9uZW50cyB8IHN0cmluZyA9IFwiZGl2XCJcbj4ge1xuICAgIHByZWxvYWRlZEZlYXR1cmVzPzogRmVhdHVyZUJ1bmRsZVxuICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQ/OiBDcmVhdGVWaXN1YWxFbGVtZW50XG4gICAgQ29tcG9uZW50OiBUYWdOYW1lIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjx1bmtub3duPj5cbiAgICBmb3J3YXJkTW90aW9uUHJvcHM/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIE1vdGlvbkNvbXBvbmVudFByb3BzPFByb3BzPiA9IHtcbiAgICBbSyBpbiBFeGNsdWRlPGtleW9mIFByb3BzLCBrZXlvZiBNb3Rpb25Qcm9wcz5dPzogUHJvcHNbS11cbn0gJiBNb3Rpb25Qcm9wc1xuXG5leHBvcnQgdHlwZSBNb3Rpb25Db21wb25lbnQ8VCwgUD4gPSBUIGV4dGVuZHMga2V5b2YgRE9NTW90aW9uQ29tcG9uZW50c1xuICAgID8gRE9NTW90aW9uQ29tcG9uZW50c1tUXVxuICAgIDogUmVhY3QuQ29tcG9uZW50VHlwZTxcbiAgICAgICAgICBPbWl0PE1vdGlvbkNvbXBvbmVudFByb3BzPFA+LCBcImNoaWxkcmVuXCI+ICYge1xuICAgICAgICAgICAgICBjaGlsZHJlbj86IFwiY2hpbGRyZW5cIiBleHRlbmRzIGtleW9mIFBcbiAgICAgICAgICAgICAgICAgID8gUFtcImNoaWxkcmVuXCJdIHwgTW90aW9uQ29tcG9uZW50UHJvcHM8UD5bXCJjaGlsZHJlblwiXVxuICAgICAgICAgICAgICAgICAgOiBNb3Rpb25Db21wb25lbnRQcm9wczxQPltcImNoaWxkcmVuXCJdXG4gICAgICAgICAgfVxuICAgICAgPlxuXG5leHBvcnQgaW50ZXJmYWNlIE1vdGlvbkNvbXBvbmVudE9wdGlvbnMge1xuICAgIGZvcndhcmRNb3Rpb25Qcm9wcz86IGJvb2xlYW5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgdGhlIGNvbXBvbmVudCByZW5kZXJzIGFuIEhUTUwgb3IgU1ZHIGVsZW1lbnQuXG4gICAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiB3cmFwcGluZyBjdXN0b20gU1ZHIGNvbXBvbmVudHMgdGhhdCBuZWVkXG4gICAgICogU1ZHLXNwZWNpZmljIGF0dHJpYnV0ZSBoYW5kbGluZyAobGlrZSB2aWV3Qm94IGFuaW1hdGlvbikuXG4gICAgICogQnkgZGVmYXVsdCwgTW90aW9uIGF1dG8tZGV0ZWN0cyBiYXNlZCBvbiB0aGUgY29tcG9uZW50IG5hbWUsXG4gICAgICogYnV0IGN1c3RvbSBSZWFjdCBjb21wb25lbnRzIGFyZSBhbHdheXMgdHJlYXRlZCBhcyBIVE1MLlxuICAgICAqL1xuICAgIHR5cGU/OiBcImh0bWxcIiB8IFwic3ZnXCJcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBgbW90aW9uYCBjb21wb25lbnQuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBhY2NlcHRzIGEgQ29tcG9uZW50IGFyZ3VtZW50LCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIChpZSBcImRpdlwiXG4gKiBmb3IgYG1vdGlvbi5kaXZgKSwgb3IgYW4gYWN0dWFsIFJlYWN0IGNvbXBvbmVudC5cbiAqXG4gKiBBbG9uZ3NpZGUgdGhpcyBpcyBhIGNvbmZpZyBvcHRpb24gd2hpY2ggcHJvdmlkZXMgYSB3YXkgb2YgcmVuZGVyaW5nIHRoZSBwcm92aWRlZFxuICogY29tcG9uZW50IFwib2ZmbGluZVwiLCBvciBvdXRzaWRlIHRoZSBSZWFjdCByZW5kZXIgY3ljbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb3Rpb25Db21wb25lbnQ8XG4gICAgUHJvcHMsXG4gICAgVGFnTmFtZSBleHRlbmRzIGtleW9mIERPTU1vdGlvbkNvbXBvbmVudHMgfCBzdHJpbmcgPSBcImRpdlwiXG4+KFxuICAgIENvbXBvbmVudDogVGFnTmFtZSB8IHN0cmluZyB8IFJlYWN0LkNvbXBvbmVudFR5cGU8UHJvcHM+LFxuICAgIHsgZm9yd2FyZE1vdGlvblByb3BzID0gZmFsc2UsIHR5cGUgfTogTW90aW9uQ29tcG9uZW50T3B0aW9ucyA9IHt9LFxuICAgIHByZWxvYWRlZEZlYXR1cmVzPzogRmVhdHVyZVBhY2thZ2VzLFxuICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQ/OiBDcmVhdGVWaXN1YWxFbGVtZW50PFByb3BzLCBUYWdOYW1lPlxuKSB7XG4gICAgcHJlbG9hZGVkRmVhdHVyZXMgJiYgbG9hZEZlYXR1cmVzKHByZWxvYWRlZEZlYXR1cmVzKVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gdXNlIFNWRyBvciBIVE1MIHJlbmRlcmluZyBiYXNlZCBvbjpcbiAgICAgKiAxLiBFeHBsaWNpdCBgdHlwZWAgb3B0aW9uIChoaWdoZXN0IHByaW9yaXR5KVxuICAgICAqIDIuIEF1dG8tZGV0ZWN0aW9uIHZpYSBgaXNTVkdDb21wb25lbnRgXG4gICAgICovXG4gICAgY29uc3QgaXNTVkcgPSB0eXBlID8gdHlwZSA9PT0gXCJzdmdcIiA6IGlzU1ZHQ29tcG9uZW50KENvbXBvbmVudClcbiAgICBjb25zdCB1c2VWaXN1YWxTdGF0ZSA9IGlzU1ZHID8gdXNlU1ZHVmlzdWFsU3RhdGUgOiB1c2VIVE1MVmlzdWFsU3RhdGVcblxuICAgIGZ1bmN0aW9uIE1vdGlvbkRPTUNvbXBvbmVudChcbiAgICAgICAgcHJvcHM6IE1vdGlvbkNvbXBvbmVudFByb3BzPFByb3BzPixcbiAgICAgICAgZXh0ZXJuYWxSZWY/OiBSZWFjdC5SZWY8SFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50PlxuICAgICkge1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgd2UgbmVlZCB0byBtZWFzdXJlIHRoZSBlbGVtZW50IHdlIGxvYWQgdGhpcyBmdW5jdGlvbmFsaXR5IGluIGFcbiAgICAgICAgICogc2VwYXJhdGUgY2xhc3MgY29tcG9uZW50IGluIG9yZGVyIHRvIGdhaW4gYWNjZXNzIHRvIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IE1lYXN1cmVMYXlvdXQ6IHVuZGVmaW5lZCB8IFJlYWN0LkNvbXBvbmVudFR5cGU8TW90aW9uUHJvcHM+XG5cbiAgICAgICAgY29uc3QgY29uZmlnQW5kUHJvcHMgPSB7XG4gICAgICAgICAgICAuLi51c2VDb250ZXh0KE1vdGlvbkNvbmZpZ0NvbnRleHQpLFxuICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICBsYXlvdXRJZDogdXNlTGF5b3V0SWQocHJvcHMpLFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBpc1N0YXRpYyB9ID0gY29uZmlnQW5kUHJvcHNcblxuICAgICAgICBjb25zdCBjb250ZXh0ID0gdXNlQ3JlYXRlTW90aW9uQ29udGV4dDxIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ+KHByb3BzKVxuXG4gICAgICAgIGNvbnN0IHZpc3VhbFN0YXRlID0gdXNlVmlzdWFsU3RhdGUocHJvcHMsIGlzU3RhdGljKVxuXG4gICAgICAgIGlmICghaXNTdGF0aWMgJiYgaXNCcm93c2VyKSB7XG4gICAgICAgICAgICB1c2VTdHJpY3RNb2RlKGNvbmZpZ0FuZFByb3BzLCBwcmVsb2FkZWRGZWF0dXJlcylcblxuICAgICAgICAgICAgY29uc3QgbGF5b3V0UHJvamVjdGlvbiA9IGdldFByb2plY3Rpb25GdW5jdGlvbmFsaXR5KGNvbmZpZ0FuZFByb3BzKVxuICAgICAgICAgICAgTWVhc3VyZUxheW91dCA9IGxheW91dFByb2plY3Rpb24uTWVhc3VyZUxheW91dFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIENyZWF0ZSBhIFZpc3VhbEVsZW1lbnQgZm9yIHRoaXMgY29tcG9uZW50LiBBIFZpc3VhbEVsZW1lbnQgcHJvdmlkZXMgYSBjb21tb25cbiAgICAgICAgICAgICAqIGludGVyZmFjZSB0byByZW5kZXJlci1zcGVjaWZpYyBBUElzIChpZSBET00vVGhyZWUuanMgZXRjKSBhcyB3ZWxsIGFzXG4gICAgICAgICAgICAgKiBwcm92aWRpbmcgYSB3YXkgb2YgcmVuZGVyaW5nIHRvIHRoZXNlIEFQSXMgb3V0c2lkZSBvZiB0aGUgUmVhY3QgcmVuZGVyIGxvb3BcbiAgICAgICAgICAgICAqIGZvciBtb3JlIHBlcmZvcm1hbnQgYW5pbWF0aW9ucyBhbmQgaW50ZXJhY3Rpb25zXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnRleHQudmlzdWFsRWxlbWVudCA9IHVzZVZpc3VhbEVsZW1lbnQoXG4gICAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHZpc3VhbFN0YXRlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ0FuZFByb3BzLFxuICAgICAgICAgICAgICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQsXG4gICAgICAgICAgICAgICAgbGF5b3V0UHJvamVjdGlvbi5Qcm9qZWN0aW9uTm9kZSxcbiAgICAgICAgICAgICAgICBpc1NWR1xuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBtb3VudCBvcmRlciBhbmQgaGllcmFyY2h5IGlzIHNwZWNpZmljIHRvIGVuc3VyZSBvdXIgZWxlbWVudCByZWZcbiAgICAgICAgICogaXMgaHlkcmF0ZWQgYnkgdGhlIHRpbWUgZmVhdHVyZXMgZmlyZSB0aGVpciBlZmZlY3RzLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxNb3Rpb25Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0fT5cbiAgICAgICAgICAgICAgICB7TWVhc3VyZUxheW91dCAmJiBjb250ZXh0LnZpc3VhbEVsZW1lbnQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxNZWFzdXJlTGF5b3V0XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50PXtjb250ZXh0LnZpc3VhbEVsZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4uY29uZmlnQW5kUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3VzZVJlbmRlcjxQcm9wcywgVGFnTmFtZT4oXG4gICAgICAgICAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIHVzZU1vdGlvblJlZjxcbiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxSZW5kZXJTdGF0ZSB8IFNWR1JlbmRlclN0YXRlXG4gICAgICAgICAgICAgICAgICAgID4odmlzdWFsU3RhdGUsIGNvbnRleHQudmlzdWFsRWxlbWVudCwgZXh0ZXJuYWxSZWYpLFxuICAgICAgICAgICAgICAgICAgICB2aXN1YWxTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgaXNTdGF0aWMsXG4gICAgICAgICAgICAgICAgICAgIGZvcndhcmRNb3Rpb25Qcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgaXNTVkdcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9Nb3Rpb25Db250ZXh0LlByb3ZpZGVyPlxuICAgICAgICApXG4gICAgfVxuXG4gICAgTW90aW9uRE9NQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gYG1vdGlvbi4ke1xuICAgICAgICB0eXBlb2YgQ29tcG9uZW50ID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IENvbXBvbmVudFxuICAgICAgICAgICAgOiBgY3JlYXRlKCR7Q29tcG9uZW50LmRpc3BsYXlOYW1lID8/IENvbXBvbmVudC5uYW1lID8/IFwiXCJ9KWBcbiAgICB9YFxuXG4gICAgY29uc3QgRm9yd2FyZFJlZk1vdGlvbkNvbXBvbmVudCA9IGZvcndhcmRSZWYoTW90aW9uRE9NQ29tcG9uZW50IGFzIGFueSlcbiAgICA7KEZvcndhcmRSZWZNb3Rpb25Db21wb25lbnQgYXMgYW55KVttb3Rpb25Db21wb25lbnRTeW1ib2xdID0gQ29tcG9uZW50XG5cbiAgICByZXR1cm4gRm9yd2FyZFJlZk1vdGlvbkNvbXBvbmVudCBhcyBNb3Rpb25Db21wb25lbnQ8VGFnTmFtZSwgUHJvcHM+XG59XG5cbmZ1bmN0aW9uIHVzZUxheW91dElkKHsgbGF5b3V0SWQgfTogTW90aW9uUHJvcHMpIHtcbiAgICBjb25zdCBsYXlvdXRHcm91cElkID0gdXNlQ29udGV4dChMYXlvdXRHcm91cENvbnRleHQpLmlkXG4gICAgcmV0dXJuIGxheW91dEdyb3VwSWQgJiYgbGF5b3V0SWQgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGxheW91dEdyb3VwSWQgKyBcIi1cIiArIGxheW91dElkXG4gICAgICAgIDogbGF5b3V0SWRcbn1cblxuZnVuY3Rpb24gdXNlU3RyaWN0TW9kZShcbiAgICBjb25maWdBbmRQcm9wczogTW90aW9uUHJvcHMsXG4gICAgcHJlbG9hZGVkRmVhdHVyZXM/OiBGZWF0dXJlUGFja2FnZXNcbikge1xuICAgIGNvbnN0IGlzU3RyaWN0ID0gdXNlQ29udGV4dChMYXp5Q29udGV4dCkuc3RyaWN0XG5cbiAgICAvKipcbiAgICAgKiBJZiB3ZSdyZSBpbiBkZXZlbG9wbWVudCBtb2RlLCBjaGVjayB0byBtYWtlIHN1cmUgd2UncmUgbm90IHJlbmRlcmluZyBhIG1vdGlvbiBjb21wb25lbnRcbiAgICAgKiBhcyBhIGNoaWxkIG9mIExhenlNb3Rpb24sIGFzIHRoaXMgd2lsbCBicmVhayB0aGUgZmlsZS1zaXplIGJlbmVmaXRzIG9mIHVzaW5nIGl0LlxuICAgICAqL1xuICAgIGlmIChcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmXG4gICAgICAgIHByZWxvYWRlZEZlYXR1cmVzICYmXG4gICAgICAgIGlzU3RyaWN0XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHN0cmljdE1lc3NhZ2UgPVxuICAgICAgICAgICAgXCJZb3UgaGF2ZSByZW5kZXJlZCBhIGBtb3Rpb25gIGNvbXBvbmVudCB3aXRoaW4gYSBgTGF6eU1vdGlvbmAgY29tcG9uZW50LiBUaGlzIHdpbGwgYnJlYWsgdHJlZSBzaGFraW5nLiBJbXBvcnQgYW5kIHJlbmRlciBhIGBtYCBjb21wb25lbnQgaW5zdGVhZC5cIlxuICAgICAgICBjb25maWdBbmRQcm9wcy5pZ25vcmVTdHJpY3RcbiAgICAgICAgICAgID8gd2FybmluZyhmYWxzZSwgc3RyaWN0TWVzc2FnZSwgXCJsYXp5LXN0cmljdC1tb2RlXCIpXG4gICAgICAgICAgICA6IGludmFyaWFudChmYWxzZSwgc3RyaWN0TWVzc2FnZSwgXCJsYXp5LXN0cmljdC1tb2RlXCIpXG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRQcm9qZWN0aW9uRnVuY3Rpb25hbGl0eShwcm9wczogTW90aW9uUHJvcHMpIHtcbiAgICBjb25zdCBmZWF0dXJlRGVmaW5pdGlvbnMgPSBnZXRJbml0aWFsaXplZEZlYXR1cmVEZWZpbml0aW9ucygpXG4gICAgY29uc3QgeyBkcmFnLCBsYXlvdXQgfSA9IGZlYXR1cmVEZWZpbml0aW9uc1xuXG4gICAgaWYgKCFkcmFnICYmICFsYXlvdXQpIHJldHVybiB7fVxuXG4gICAgY29uc3QgY29tYmluZWQgPSB7IC4uLmRyYWcsIC4uLmxheW91dCB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBNZWFzdXJlTGF5b3V0OlxuICAgICAgICAgICAgZHJhZz8uaXNFbmFibGVkKHByb3BzKSB8fCBsYXlvdXQ/LmlzRW5hYmxlZChwcm9wcylcbiAgICAgICAgICAgICAgICA/IGNvbWJpbmVkLk1lYXN1cmVMYXlvdXRcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgUHJvamVjdGlvbk5vZGU6IGNvbWJpbmVkLlByb2plY3Rpb25Ob2RlLFxuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ motionComponentSymbol: () => (/* binding */ motionComponentSymbol)\n/* harmony export */ });\nconst motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\n\n//# sourceMappingURL=symbol.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3N5bWJvbC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUVpQztBQUNqQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3N5bWJvbC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW90aW9uQ29tcG9uZW50U3ltYm9sID0gU3ltYm9sLmZvcihcIm1vdGlvbkNvbXBvbmVudFN5bWJvbFwiKTtcblxuZXhwb3J0IHsgbW90aW9uQ29tcG9uZW50U3ltYm9sIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zeW1ib2wubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useMotionRef: () => (/* binding */ useMotionRef)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ useMotionRef auto */ var _s = $RefreshSig$();\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */ function useMotionRef(visualState, visualElement, externalRef) {\n _s();\n /**\n * Store externalRef in a ref to avoid including it in the useCallback\n * dependency array. Including externalRef in dependencies causes issues\n * with libraries like Radix UI that create new callback refs on each render\n * when using asChild - this would cause the callback to be recreated,\n * triggering element remounts and breaking AnimatePresence exit animations.\n */ const externalRefContainer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(externalRef);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect)({\n \"useMotionRef.useInsertionEffect\": ()=>{\n externalRefContainer.current = externalRef;\n }\n }[\"useMotionRef.useInsertionEffect\"]);\n // Store cleanup function returned by callback refs (React 19 feature)\n const refCleanup = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useMotionRef.useCallback\": (instance)=>{\n if (instance) {\n var _visualState_onMount;\n (_visualState_onMount = visualState.onMount) === null || _visualState_onMount === void 0 ? void 0 : _visualState_onMount.call(visualState, instance);\n }\n if (visualElement) {\n instance ? visualElement.mount(instance) : visualElement.unmount();\n }\n const ref = externalRefContainer.current;\n if (typeof ref === \"function\") {\n if (instance) {\n const cleanup = ref(instance);\n if (typeof cleanup === \"function\") {\n refCleanup.current = cleanup;\n }\n } else if (refCleanup.current) {\n refCleanup.current();\n refCleanup.current = null;\n } else {\n ref(instance);\n }\n } else if (ref) {\n ref.current = instance;\n }\n }\n }[\"useMotionRef.useCallback\"], [\n visualElement\n ]);\n}\n_s(useMotionRef, \"6nGs9vaEQZ+Z6sb6torCbtfABKk=\", false, function() {\n return [\n react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect\n ];\n});\n //# sourceMappingURL=use-motion-ref.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3VzZS1tb3Rpb24tcmVmLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBT0E7OztDQUdHOztJQU1DOzs7Ozs7S0FNRyxHQUNIOzs7WUFFSTtRQUNKOzs7SUFHQTtJQUVBO29DQUFBOztvQkFHWTtpQkFBQTs7O2dCQUlBOztZQUdKO1lBQ0E7O29CQUVRO29CQUNBO3dCQUNJOzt1QkFFRDs7b0JBRUg7Ozs7O2dCQUtGOztRQUVWO21DQUFBO1FBQUE7S0FBQTtBQUdSIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvbW90aW9uL3V0aWxzL3VzZS1tb3Rpb24tcmVmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB0eXBlIHsgVmlzdWFsRWxlbWVudCB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlSW5zZXJ0aW9uRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgVmlzdWFsU3RhdGUgfSBmcm9tIFwiLi91c2UtdmlzdWFsLXN0YXRlXCJcblxuLyoqXG4gKiBDcmVhdGVzIGEgcmVmIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkLCBoeWRyYXRlcyB0aGUgcHJvdmlkZWRcbiAqIGV4dGVybmFsIHJlZiBhbmQgVmlzdWFsRWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1vdGlvblJlZjxJbnN0YW5jZSwgUmVuZGVyU3RhdGU+KFxuICAgIHZpc3VhbFN0YXRlOiBWaXN1YWxTdGF0ZTxJbnN0YW5jZSwgUmVuZGVyU3RhdGU+LFxuICAgIHZpc3VhbEVsZW1lbnQ/OiBWaXN1YWxFbGVtZW50PEluc3RhbmNlPiB8IG51bGwsXG4gICAgZXh0ZXJuYWxSZWY/OiBSZWFjdC5SZWY8SW5zdGFuY2U+XG4pOiBSZWFjdC5SZWY8SW5zdGFuY2U+IHtcbiAgICAvKipcbiAgICAgKiBTdG9yZSBleHRlcm5hbFJlZiBpbiBhIHJlZiB0byBhdm9pZCBpbmNsdWRpbmcgaXQgaW4gdGhlIHVzZUNhbGxiYWNrXG4gICAgICogZGVwZW5kZW5jeSBhcnJheS4gSW5jbHVkaW5nIGV4dGVybmFsUmVmIGluIGRlcGVuZGVuY2llcyBjYXVzZXMgaXNzdWVzXG4gICAgICogd2l0aCBsaWJyYXJpZXMgbGlrZSBSYWRpeCBVSSB0aGF0IGNyZWF0ZSBuZXcgY2FsbGJhY2sgcmVmcyBvbiBlYWNoIHJlbmRlclxuICAgICAqIHdoZW4gdXNpbmcgYXNDaGlsZCAtIHRoaXMgd291bGQgY2F1c2UgdGhlIGNhbGxiYWNrIHRvIGJlIHJlY3JlYXRlZCxcbiAgICAgKiB0cmlnZ2VyaW5nIGVsZW1lbnQgcmVtb3VudHMgYW5kIGJyZWFraW5nIEFuaW1hdGVQcmVzZW5jZSBleGl0IGFuaW1hdGlvbnMuXG4gICAgICovXG4gICAgY29uc3QgZXh0ZXJuYWxSZWZDb250YWluZXIgPSB1c2VSZWYoZXh0ZXJuYWxSZWYpXG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZXh0ZXJuYWxSZWZDb250YWluZXIuY3VycmVudCA9IGV4dGVybmFsUmVmXG4gICAgfSlcblxuICAgIC8vIFN0b3JlIGNsZWFudXAgZnVuY3Rpb24gcmV0dXJuZWQgYnkgY2FsbGJhY2sgcmVmcyAoUmVhY3QgMTkgZmVhdHVyZSlcbiAgICBjb25zdCByZWZDbGVhbnVwID0gdXNlUmVmPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG5cbiAgICByZXR1cm4gdXNlQ2FsbGJhY2soXG4gICAgICAgIChpbnN0YW5jZTogSW5zdGFuY2UpID0+IHtcbiAgICAgICAgICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHZpc3VhbFN0YXRlLm9uTW91bnQ/LihpbnN0YW5jZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZpc3VhbEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZSA/IHZpc3VhbEVsZW1lbnQubW91bnQoaW5zdGFuY2UpIDogdmlzdWFsRWxlbWVudC51bm1vdW50KClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcmVmID0gZXh0ZXJuYWxSZWZDb250YWluZXIuY3VycmVudFxuICAgICAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGVhbnVwID0gcmVmKGluc3RhbmNlKVxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNsZWFudXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmQ2xlYW51cC5jdXJyZW50ID0gY2xlYW51cFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWZDbGVhbnVwLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmQ2xlYW51cC5jdXJyZW50KClcbiAgICAgICAgICAgICAgICAgICAgcmVmQ2xlYW51cC5jdXJyZW50ID0gbnVsbFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZihpbnN0YW5jZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlZikge1xuICAgICAgICAgICAgICAgIDsocmVmIGFzIFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SW5zdGFuY2U+KS5jdXJyZW50ID0gaW5zdGFuY2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW3Zpc3VhbEVsZW1lbnRdXG4gICAgKVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useVisualElement: () => (/* binding */ useVisualElement)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/LazyContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/MotionConfigContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/MotionContext/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context/SwitchLayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\");\n/* harmony import */ var _utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/is-ref-object.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\");\n/* harmony import */ var _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/use-isomorphic-effect.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\");\n/* __next_internal_client_entry_do_not_use__ useVisualElement auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\nfunction useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor, isSVG) {\n var _window_MotionHandoffIsComplete, _window, _window_MotionHasOptimisedAnimation, _window1;\n _s();\n const { visualElement: parent } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_1__.MotionContext);\n const lazyContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_2__.LazyContext);\n const presenceContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_3__.PresenceContext);\n const motionConfig = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_4__.MotionConfigContext);\n const reducedMotionConfig = motionConfig.reducedMotion;\n const skipAnimations = motionConfig.skipAnimations;\n const visualElementRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n /**\n * Track whether the component has been through React's commit phase.\n * Used to detect when LazyMotion features load after the component has mounted.\n */ const hasMountedOnce = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */ createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext ? presenceContext.initial === false : false,\n reducedMotionConfig,\n skipAnimations,\n isSVG\n });\n /**\n * If the component has already mounted before features loaded (e.g. via\n * LazyMotion with async feature loading), we need to force the initial\n * animation to run. Otherwise state changes that occurred before features\n * loaded will be lost and the element will snap to its final state.\n */ if (hasMountedOnce.current && visualElementRef.current) {\n visualElementRef.current.manuallyAnimateOnMount = true;\n }\n }\n const visualElement = visualElementRef.current;\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */ const initialLayoutGroupConfig = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_5__.SwitchLayoutGroupContext);\n if (visualElement && !visualElement.projection && ProjectionNodeConstructor && (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n const isMounted = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect)({\n \"useVisualElement.useInsertionEffect\": ()=>{\n /**\n * Check the component has already mounted before calling\n * `update` unnecessarily. This ensures we skip the initial update.\n */ if (visualElement && isMounted.current) {\n visualElement.update(props, presenceContext);\n }\n }\n }[\"useVisualElement.useInsertionEffect\"]);\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */ const optimisedAppearId = props[motion_dom__WEBPACK_IMPORTED_MODULE_6__.optimizedAppearDataAttribute];\n const wantsHandoff = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(Boolean(optimisedAppearId) && !((_window_MotionHandoffIsComplete = (_window = window).MotionHandoffIsComplete) === null || _window_MotionHandoffIsComplete === void 0 ? void 0 : _window_MotionHandoffIsComplete.call(_window, optimisedAppearId)) && ((_window_MotionHasOptimisedAnimation = (_window1 = window).MotionHasOptimisedAnimation) === null || _window_MotionHasOptimisedAnimation === void 0 ? void 0 : _window_MotionHasOptimisedAnimation.call(_window1, optimisedAppearId)));\n (0,_utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_7__.useIsomorphicLayoutEffect)({\n \"useVisualElement.useIsomorphicLayoutEffect\": ()=>{\n /**\n * Track that this component has mounted. This is used to detect when\n * LazyMotion features load after the component has already committed.\n */ hasMountedOnce.current = true;\n if (!visualElement) return;\n isMounted.current = true;\n window.MotionIsMounted = true;\n visualElement.updateFeatures();\n visualElement.scheduleRenderMicrotask();\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */ if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n }\n }[\"useVisualElement.useIsomorphicLayoutEffect\"]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useVisualElement.useEffect\": ()=>{\n if (!visualElement) return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n // This ensures all future calls to animateChanges() in this component will run in useEffect\n queueMicrotask({\n \"useVisualElement.useEffect\": ()=>{\n var _window_MotionHandoffMarkAsComplete, _window;\n (_window_MotionHandoffMarkAsComplete = (_window = window).MotionHandoffMarkAsComplete) === null || _window_MotionHandoffMarkAsComplete === void 0 ? void 0 : _window_MotionHandoffMarkAsComplete.call(_window, optimisedAppearId);\n }\n }[\"useVisualElement.useEffect\"]);\n wantsHandoff.current = false;\n }\n /**\n * Now we've finished triggering animations for this element we\n * can wipe the enteringChildren set for the next render.\n */ visualElement.enteringChildren = undefined;\n }\n }[\"useVisualElement.useEffect\"]);\n return visualElement;\n}\n_s(useVisualElement, \"kGP7Z7eFyi/pYfNg3V4TNZ4UZdY=\", false, function() {\n return [\n react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect,\n _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_7__.useIsomorphicLayoutEffect\n ];\n});\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, layoutCrossfade } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"] ? undefined : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || dragConstraints && (0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_8__.isRefObject)(dragConstraints),\n visualElement,\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */ animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig,\n crossfade: layoutCrossfade,\n layoutScroll,\n layoutRoot\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement) return undefined;\n return visualElement.options.allowProjection !== false ? visualElement.projection : getClosestProjectingNode(visualElement.parent);\n}\n //# sourceMappingURL=use-visual-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3VzZS12aXN1YWwtZWxlbWVudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEwQmdCO1FBdUdKLDBDQUNBOzs7SUExRlI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBSUE7OztLQUdHLEdBQ0g7SUFFQTs7S0FFRztJQUtIO1FBQ0k7Ozs7O1lBS0kseUNBQ0ksb0NBQ0E7Ozs7UUFJUDtRQUVEOzs7OztTQUtHO1lBRUM7OztJQUlSO0lBRUE7OztLQUdHLEdBQ0g7SUFFQSwrRUFJSTs7O0lBVUo7OztZQUVJOzs7U0FHRyxHQUNIO2dCQUNJOztRQUVSOztJQUVBOzs7S0FHRyxHQUNIO0lBRUEsaUdBRVEsME5BQ0E7OztZQUlKOzs7U0FHRyxHQUNIO1lBRUE7WUFFQTtZQUNBOzs7WUFLQTs7Ozs7Ozs7O1NBU0c7Z0JBRUM7O1FBRVI7Ozs7WUFHSTs7Z0JBR0k7O1lBR0o7Ozs7NEJBR1E7eUJBQUE7b0JBQ0o7O2dCQUVBOztZQUdKOzs7U0FHRyxHQUNIO1FBQ0o7O0lBRUE7QUFDSjtHQWpLZ0I7Ozs7OztBQW1LaEI7SUFNSTtJQVVBLHNIQUdRO0lBSVI7OztRQUdJOztRQUdBOzs7Ozs7U0FNRyxHQUNIOztRQUVBOzs7SUFHSDtBQUNMO0FBRUE7SUFPSSxvQkFBb0I7SUFFcEIsb0ZBRUk7QUFDUiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL21vdGlvbi91dGlscy91c2UtdmlzdWFsLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHtcbiAgICBvcHRpbWl6ZWRBcHBlYXJEYXRhQXR0cmlidXRlLFxuICAgIHR5cGUgSFRNTFJlbmRlclN0YXRlLFxuICAgIHR5cGUgU1ZHUmVuZGVyU3RhdGUsXG4gICAgdHlwZSBWaXN1YWxFbGVtZW50LFxufSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VJbnNlcnRpb25FZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBMYXp5Q29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0L0xhenlDb250ZXh0XCJcbmltcG9ydCB7IE1vdGlvbkNvbmZpZ0NvbnRleHQgfSBmcm9tIFwiLi4vLi4vY29udGV4dC9Nb3Rpb25Db25maWdDb250ZXh0XCJcbmltcG9ydCB7IE1vdGlvbkNvbnRleHQgfSBmcm9tIFwiLi4vLi4vY29udGV4dC9Nb3Rpb25Db250ZXh0XCJcbmltcG9ydCB7IFByZXNlbmNlQ29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0L1ByZXNlbmNlQ29udGV4dFwiXG5pbXBvcnQge1xuICAgIEluaXRpYWxQcm9tb3Rpb25Db25maWcsXG4gICAgU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0LFxufSBmcm9tIFwiLi4vLi4vY29udGV4dC9Td2l0Y2hMYXlvdXRHcm91cENvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vLi4vbW90aW9uL3R5cGVzXCJcbmltcG9ydCB0eXBlIHsgSVByb2plY3Rpb25Ob2RlIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgRE9NTW90aW9uQ29tcG9uZW50cyB9IGZyb20gXCIuLi8uLi9yZW5kZXIvZG9tL3R5cGVzXCJcbmltcG9ydCB7IENyZWF0ZVZpc3VhbEVsZW1lbnQgfSBmcm9tIFwiLi4vLi4vcmVuZGVyL3R5cGVzXCJcbmltcG9ydCB7IGlzUmVmT2JqZWN0IH0gZnJvbSBcIi4uLy4uL3V0aWxzL2lzLXJlZi1vYmplY3RcIlxuaW1wb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9IGZyb20gXCIuLi8uLi91dGlscy91c2UtaXNvbW9ycGhpYy1lZmZlY3RcIlxuaW1wb3J0IHsgVmlzdWFsU3RhdGUgfSBmcm9tIFwiLi91c2UtdmlzdWFsLXN0YXRlXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVZpc3VhbEVsZW1lbnQ8XG4gICAgUHJvcHMsXG4gICAgVGFnTmFtZSBleHRlbmRzIGtleW9mIERPTU1vdGlvbkNvbXBvbmVudHMgfCBzdHJpbmdcbj4oXG4gICAgQ29tcG9uZW50OiBUYWdOYW1lIHwgc3RyaW5nIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxQcm9wcz4sXG4gICAgdmlzdWFsU3RhdGU6XG4gICAgICAgIHwgVmlzdWFsU3RhdGU8U1ZHRWxlbWVudCwgU1ZHUmVuZGVyU3RhdGU+XG4gICAgICAgIHwgVmlzdWFsU3RhdGU8SFRNTEVsZW1lbnQsIEhUTUxSZW5kZXJTdGF0ZT4sXG4gICAgcHJvcHM6IE1vdGlvblByb3BzICYgUGFydGlhbDxNb3Rpb25Db25maWdDb250ZXh0PixcbiAgICBjcmVhdGVWaXN1YWxFbGVtZW50PzogQ3JlYXRlVmlzdWFsRWxlbWVudDxQcm9wcywgVGFnTmFtZT4sXG4gICAgUHJvamVjdGlvbk5vZGVDb25zdHJ1Y3Rvcj86IGFueSxcbiAgICBpc1NWRz86IGJvb2xlYW5cbik6IFZpc3VhbEVsZW1lbnQ8SFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50PiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgeyB2aXN1YWxFbGVtZW50OiBwYXJlbnQgfSA9IHVzZUNvbnRleHQoTW90aW9uQ29udGV4dClcbiAgICBjb25zdCBsYXp5Q29udGV4dCA9IHVzZUNvbnRleHQoTGF6eUNvbnRleHQpXG4gICAgY29uc3QgcHJlc2VuY2VDb250ZXh0ID0gdXNlQ29udGV4dChQcmVzZW5jZUNvbnRleHQpXG4gICAgY29uc3QgbW90aW9uQ29uZmlnID0gdXNlQ29udGV4dChNb3Rpb25Db25maWdDb250ZXh0KVxuICAgIGNvbnN0IHJlZHVjZWRNb3Rpb25Db25maWcgPSBtb3Rpb25Db25maWcucmVkdWNlZE1vdGlvblxuICAgIGNvbnN0IHNraXBBbmltYXRpb25zID0gbW90aW9uQ29uZmlnLnNraXBBbmltYXRpb25zXG5cbiAgICBjb25zdCB2aXN1YWxFbGVtZW50UmVmID0gdXNlUmVmPFZpc3VhbEVsZW1lbnQ8XG4gICAgICAgIEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudFxuICAgID4gfCBudWxsPihudWxsKVxuXG4gICAgLyoqXG4gICAgICogVHJhY2sgd2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBiZWVuIHRocm91Z2ggUmVhY3QncyBjb21taXQgcGhhc2UuXG4gICAgICogVXNlZCB0byBkZXRlY3Qgd2hlbiBMYXp5TW90aW9uIGZlYXR1cmVzIGxvYWQgYWZ0ZXIgdGhlIGNvbXBvbmVudCBoYXMgbW91bnRlZC5cbiAgICAgKi9cbiAgICBjb25zdCBoYXNNb3VudGVkT25jZSA9IHVzZVJlZihmYWxzZSlcblxuICAgIC8qKlxuICAgICAqIElmIHdlIGhhdmVuJ3QgcHJlbG9hZGVkIGEgcmVuZGVyZXIsIGNoZWNrIHRvIHNlZSBpZiB3ZSBoYXZlIG9uZSBsYXp5LWxvYWRlZFxuICAgICAqL1xuICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQgPVxuICAgICAgICBjcmVhdGVWaXN1YWxFbGVtZW50IHx8XG4gICAgICAgIChsYXp5Q29udGV4dC5yZW5kZXJlciBhcyBDcmVhdGVWaXN1YWxFbGVtZW50PFByb3BzLCBUYWdOYW1lPilcblxuICAgIGlmICghdmlzdWFsRWxlbWVudFJlZi5jdXJyZW50ICYmIGNyZWF0ZVZpc3VhbEVsZW1lbnQpIHtcbiAgICAgICAgdmlzdWFsRWxlbWVudFJlZi5jdXJyZW50ID0gY3JlYXRlVmlzdWFsRWxlbWVudChDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHZpc3VhbFN0YXRlLFxuICAgICAgICAgICAgcGFyZW50LFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICBwcmVzZW5jZUNvbnRleHQsXG4gICAgICAgICAgICBibG9ja0luaXRpYWxBbmltYXRpb246IHByZXNlbmNlQ29udGV4dFxuICAgICAgICAgICAgICAgID8gcHJlc2VuY2VDb250ZXh0LmluaXRpYWwgPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgIHJlZHVjZWRNb3Rpb25Db25maWcsXG4gICAgICAgICAgICBza2lwQW5pbWF0aW9ucyxcbiAgICAgICAgICAgIGlzU1ZHLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgY29tcG9uZW50IGhhcyBhbHJlYWR5IG1vdW50ZWQgYmVmb3JlIGZlYXR1cmVzIGxvYWRlZCAoZS5nLiB2aWFcbiAgICAgICAgICogTGF6eU1vdGlvbiB3aXRoIGFzeW5jIGZlYXR1cmUgbG9hZGluZyksIHdlIG5lZWQgdG8gZm9yY2UgdGhlIGluaXRpYWxcbiAgICAgICAgICogYW5pbWF0aW9uIHRvIHJ1bi4gT3RoZXJ3aXNlIHN0YXRlIGNoYW5nZXMgdGhhdCBvY2N1cnJlZCBiZWZvcmUgZmVhdHVyZXNcbiAgICAgICAgICogbG9hZGVkIHdpbGwgYmUgbG9zdCBhbmQgdGhlIGVsZW1lbnQgd2lsbCBzbmFwIHRvIGl0cyBmaW5hbCBzdGF0ZS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChoYXNNb3VudGVkT25jZS5jdXJyZW50ICYmIHZpc3VhbEVsZW1lbnRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgdmlzdWFsRWxlbWVudFJlZi5jdXJyZW50Lm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQgPSB0cnVlXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB2aXN1YWxFbGVtZW50ID0gdmlzdWFsRWxlbWVudFJlZi5jdXJyZW50XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIE1vdGlvbiBnZXN0dXJlIGFuZCBhbmltYXRpb24gZmVhdHVyZXMuIFRoZXNlIGFyZSByZW5kZXJlZCBhcyByZW5kZXJsZXNzXG4gICAgICogY29tcG9uZW50cyBzbyBlYWNoIGZlYXR1cmUgY2FuIG9wdGlvbmFsbHkgbWFrZSB1c2Ugb2YgUmVhY3QgbGlmZWN5Y2xlIG1ldGhvZHMuXG4gICAgICovXG4gICAgY29uc3QgaW5pdGlhbExheW91dEdyb3VwQ29uZmlnID0gdXNlQ29udGV4dChTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQpXG5cbiAgICBpZiAoXG4gICAgICAgIHZpc3VhbEVsZW1lbnQgJiZcbiAgICAgICAgIXZpc3VhbEVsZW1lbnQucHJvamVjdGlvbiAmJlxuICAgICAgICBQcm9qZWN0aW9uTm9kZUNvbnN0cnVjdG9yICYmXG4gICAgICAgICh2aXN1YWxFbGVtZW50LnR5cGUgPT09IFwiaHRtbFwiIHx8IHZpc3VhbEVsZW1lbnQudHlwZSA9PT0gXCJzdmdcIilcbiAgICApIHtcbiAgICAgICAgY3JlYXRlUHJvamVjdGlvbk5vZGUoXG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50UmVmLmN1cnJlbnQhLFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICBQcm9qZWN0aW9uTm9kZUNvbnN0cnVjdG9yLFxuICAgICAgICAgICAgaW5pdGlhbExheW91dEdyb3VwQ29uZmlnXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpc01vdW50ZWQgPSB1c2VSZWYoZmFsc2UpXG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENoZWNrIHRoZSBjb21wb25lbnQgaGFzIGFscmVhZHkgbW91bnRlZCBiZWZvcmUgY2FsbGluZ1xuICAgICAgICAgKiBgdXBkYXRlYCB1bm5lY2Vzc2FyaWx5LiBUaGlzIGVuc3VyZXMgd2Ugc2tpcCB0aGUgaW5pdGlhbCB1cGRhdGUuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodmlzdWFsRWxlbWVudCAmJiBpc01vdW50ZWQuY3VycmVudCkge1xuICAgICAgICAgICAgdmlzdWFsRWxlbWVudC51cGRhdGUocHJvcHMsIHByZXNlbmNlQ29udGV4dClcbiAgICAgICAgfVxuICAgIH0pXG5cbiAgICAvKipcbiAgICAgKiBDYWNoZSB0aGlzIHZhbHVlIGFzIHdlIHdhbnQgdG8ga25vdyB3aGV0aGVyIEhhbmRvZmZBcHBlYXJBbmltYXRpb25zXG4gICAgICogd2FzIHByZXNlbnQgb24gaW5pdGlhbCByZW5kZXIgLSBpdCB3aWxsIGJlIGRlbGV0ZWQgYWZ0ZXIgdGhpcy5cbiAgICAgKi9cbiAgICBjb25zdCBvcHRpbWlzZWRBcHBlYXJJZCA9XG4gICAgICAgIHByb3BzW29wdGltaXplZEFwcGVhckRhdGFBdHRyaWJ1dGUgYXMga2V5b2YgdHlwZW9mIHByb3BzXVxuICAgIGNvbnN0IHdhbnRzSGFuZG9mZiA9IHVzZVJlZihcbiAgICAgICAgQm9vbGVhbihvcHRpbWlzZWRBcHBlYXJJZCkgJiZcbiAgICAgICAgICAgICF3aW5kb3cuTW90aW9uSGFuZG9mZklzQ29tcGxldGU/LihvcHRpbWlzZWRBcHBlYXJJZCkgJiZcbiAgICAgICAgICAgIHdpbmRvdy5Nb3Rpb25IYXNPcHRpbWlzZWRBbmltYXRpb24/LihvcHRpbWlzZWRBcHBlYXJJZClcbiAgICApXG5cbiAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyYWNrIHRoYXQgdGhpcyBjb21wb25lbnQgaGFzIG1vdW50ZWQuIFRoaXMgaXMgdXNlZCB0byBkZXRlY3Qgd2hlblxuICAgICAgICAgKiBMYXp5TW90aW9uIGZlYXR1cmVzIGxvYWQgYWZ0ZXIgdGhlIGNvbXBvbmVudCBoYXMgYWxyZWFkeSBjb21taXR0ZWQuXG4gICAgICAgICAqL1xuICAgICAgICBoYXNNb3VudGVkT25jZS5jdXJyZW50ID0gdHJ1ZVxuXG4gICAgICAgIGlmICghdmlzdWFsRWxlbWVudCkgcmV0dXJuXG5cbiAgICAgICAgaXNNb3VudGVkLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgIHdpbmRvdy5Nb3Rpb25Jc01vdW50ZWQgPSB0cnVlXG5cbiAgICAgICAgdmlzdWFsRWxlbWVudC51cGRhdGVGZWF0dXJlcygpXG4gICAgICAgIHZpc3VhbEVsZW1lbnQuc2NoZWR1bGVSZW5kZXJNaWNyb3Rhc2soKVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZGVhbGx5IHRoaXMgZnVuY3Rpb24gd291bGQgYWx3YXlzIHJ1biBpbiBhIHVzZUVmZmVjdC5cbiAgICAgICAgICpcbiAgICAgICAgICogSG93ZXZlciwgaWYgd2UgaGF2ZSBvcHRpbWlzZWQgYXBwZWFyIGFuaW1hdGlvbnMgdG8gaGFuZG9mZiBmcm9tLFxuICAgICAgICAgKiBpdCBuZWVkcyB0byBoYXBwZW4gc3luY2hyb25vdXNseSB0byBlbnN1cmUgdGhlcmUncyBubyBmbGFzaCBvZlxuICAgICAgICAgKiBpbmNvcnJlY3Qgc3R5bGVzIGluIHRoZSBldmVudCBvZiBhIGh5ZHJhdGlvbiBlcnJvci5cbiAgICAgICAgICpcbiAgICAgICAgICogU28gaWYgd2UgZGV0ZWN0IGEgc2l0dXRhdGlvbiB3aGVyZSBvcHRpbWlzZWQgYXBwZWFyIGFuaW1hdGlvbnNcbiAgICAgICAgICogYXJlIHJ1bm5pbmcsIHdlIHVzZSB1c2VMYXlvdXRFZmZlY3QgdG8gdHJpZ2dlciBhbmltYXRpb25zLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHdhbnRzSGFuZG9mZi5jdXJyZW50ICYmIHZpc3VhbEVsZW1lbnQuYW5pbWF0aW9uU3RhdGUpIHtcbiAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQuYW5pbWF0aW9uU3RhdGUuYW5pbWF0ZUNoYW5nZXMoKVxuICAgICAgICB9XG4gICAgfSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghdmlzdWFsRWxlbWVudCkgcmV0dXJuXG5cbiAgICAgICAgaWYgKCF3YW50c0hhbmRvZmYuY3VycmVudCAmJiB2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlKSB7XG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlLmFuaW1hdGVDaGFuZ2VzKClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh3YW50c0hhbmRvZmYuY3VycmVudCkge1xuICAgICAgICAgICAgLy8gVGhpcyBlbnN1cmVzIGFsbCBmdXR1cmUgY2FsbHMgdG8gYW5pbWF0ZUNoYW5nZXMoKSBpbiB0aGlzIGNvbXBvbmVudCB3aWxsIHJ1biBpbiB1c2VFZmZlY3RcbiAgICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuTW90aW9uSGFuZG9mZk1hcmtBc0NvbXBsZXRlPy4ob3B0aW1pc2VkQXBwZWFySWQpXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICB3YW50c0hhbmRvZmYuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogTm93IHdlJ3ZlIGZpbmlzaGVkIHRyaWdnZXJpbmcgYW5pbWF0aW9ucyBmb3IgdGhpcyBlbGVtZW50IHdlXG4gICAgICAgICAqIGNhbiB3aXBlIHRoZSBlbnRlcmluZ0NoaWxkcmVuIHNldCBmb3IgdGhlIG5leHQgcmVuZGVyLlxuICAgICAgICAgKi9cbiAgICAgICAgdmlzdWFsRWxlbWVudC5lbnRlcmluZ0NoaWxkcmVuID0gdW5kZWZpbmVkXG4gICAgfSlcblxuICAgIHJldHVybiB2aXN1YWxFbGVtZW50IVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQcm9qZWN0aW9uTm9kZShcbiAgICB2aXN1YWxFbGVtZW50OiBWaXN1YWxFbGVtZW50PGFueT4sXG4gICAgcHJvcHM6IE1vdGlvblByb3BzLFxuICAgIFByb2plY3Rpb25Ob2RlQ29uc3RydWN0b3I6IGFueSxcbiAgICBpbml0aWFsUHJvbW90aW9uQ29uZmlnPzogSW5pdGlhbFByb21vdGlvbkNvbmZpZ1xuKSB7XG4gICAgY29uc3Qge1xuICAgICAgICBsYXlvdXRJZCxcbiAgICAgICAgbGF5b3V0LFxuICAgICAgICBkcmFnLFxuICAgICAgICBkcmFnQ29uc3RyYWludHMsXG4gICAgICAgIGxheW91dFNjcm9sbCxcbiAgICAgICAgbGF5b3V0Um9vdCxcbiAgICAgICAgbGF5b3V0Q3Jvc3NmYWRlLFxuICAgIH0gPSBwcm9wc1xuXG4gICAgdmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uID0gbmV3IFByb2plY3Rpb25Ob2RlQ29uc3RydWN0b3IoXG4gICAgICAgIHZpc3VhbEVsZW1lbnQubGF0ZXN0VmFsdWVzLFxuICAgICAgICBwcm9wc1tcImRhdGEtZnJhbWVyLXBvcnRhbC1pZFwiXVxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogZ2V0Q2xvc2VzdFByb2plY3RpbmdOb2RlKHZpc3VhbEVsZW1lbnQucGFyZW50KVxuICAgICkgYXMgSVByb2plY3Rpb25Ob2RlXG5cbiAgICB2aXN1YWxFbGVtZW50LnByb2plY3Rpb24uc2V0T3B0aW9ucyh7XG4gICAgICAgIGxheW91dElkLFxuICAgICAgICBsYXlvdXQsXG4gICAgICAgIGFsd2F5c01lYXN1cmVMYXlvdXQ6XG4gICAgICAgICAgICBCb29sZWFuKGRyYWcpIHx8IChkcmFnQ29uc3RyYWludHMgJiYgaXNSZWZPYmplY3QoZHJhZ0NvbnN0cmFpbnRzKSksXG4gICAgICAgIHZpc3VhbEVsZW1lbnQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUT0RPOiBVcGRhdGUgb3B0aW9ucyBpbiBhbiBlZmZlY3QuIFRoaXMgY291bGQgYmUgdHJpY2t5IGFzIGl0J2xsIGJlIHRvbyBsYXRlXG4gICAgICAgICAqIHRvIHVwZGF0ZSBieSB0aGUgdGltZSBsYXlvdXQgYW5pbWF0aW9ucyBydW4uXG4gICAgICAgICAqIFdlIGFsc28gbmVlZCB0byBmaXggdGhpcyBzYWZlVG9SZW1vdmUgYnkgbGlua2luZyBpdCB1cCB0byB0aGUgb25lIHJldHVybmVkIGJ5IHVzZVByZXNlbmNlLFxuICAgICAgICAgKiBlbnN1cmluZyBpdCBnZXRzIGNhbGxlZCBpZiB0aGVyZSdzIG5vIHBvdGVudGlhbCBsYXlvdXQgYW5pbWF0aW9ucy5cbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGFuaW1hdGlvblR5cGU6IHR5cGVvZiBsYXlvdXQgPT09IFwic3RyaW5nXCIgPyBsYXlvdXQgOiBcImJvdGhcIixcbiAgICAgICAgaW5pdGlhbFByb21vdGlvbkNvbmZpZyxcbiAgICAgICAgY3Jvc3NmYWRlOiBsYXlvdXRDcm9zc2ZhZGUsXG4gICAgICAgIGxheW91dFNjcm9sbCxcbiAgICAgICAgbGF5b3V0Um9vdCxcbiAgICB9KVxufVxuXG5mdW5jdGlvbiBnZXRDbG9zZXN0UHJvamVjdGluZ05vZGUoXG4gICAgdmlzdWFsRWxlbWVudD86IFZpc3VhbEVsZW1lbnQ8XG4gICAgICAgIHVua25vd24sXG4gICAgICAgIHVua25vd24sXG4gICAgICAgIHsgYWxsb3dQcm9qZWN0aW9uPzogYm9vbGVhbiB9XG4gICAgPlxuKTogSVByb2plY3Rpb25Ob2RlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXZpc3VhbEVsZW1lbnQpIHJldHVybiB1bmRlZmluZWRcblxuICAgIHJldHVybiB2aXN1YWxFbGVtZW50Lm9wdGlvbnMuYWxsb3dQcm9qZWN0aW9uICE9PSBmYWxzZVxuICAgICAgICA/IHZpc3VhbEVsZW1lbnQucHJvamVjdGlvblxuICAgICAgICA6IGdldENsb3Nlc3RQcm9qZWN0aW5nTm9kZSh2aXN1YWxFbGVtZW50LnBhcmVudClcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ makeUseVisualState: () => (/* binding */ makeUseVisualState)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context/MotionContext/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* __next_internal_client_entry_do_not_use__ makeUseVisualState auto */ var _s = $RefreshSig$();\n\n\n\n\n\nfunction makeState(param, props, context, presenceContext) {\n let { scrapeMotionValuesFromProps, createRenderState } = param;\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState()\n };\n return state;\n}\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props, {});\n for(const key in motionValues){\n values[key] = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.resolveMotionValue)(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isControllingVariants)(props);\n const isVariantNode$1 = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isVariantNode)(props);\n if (context && isVariantNode$1 && !isControllingVariants$1 && props.inherit !== false) {\n if (initial === undefined) initial = context.initial;\n if (animate === undefined) animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext ? presenceContext.initial === false : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet && typeof variantToSet !== \"boolean\" && !(0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.isAnimationControls)(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [\n variantToSet\n ];\n for(let i = 0; i < list.length; i++){\n const resolved = (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.resolveVariantFromProps)(props, list[i]);\n if (resolved) {\n const { transitionEnd, transition, ...target } = resolved;\n for(const key in target){\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */ const index = isInitialAnimationBlocked ? valueTarget.length - 1 : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for(const key in transitionEnd){\n values[key] = transitionEnd[key];\n }\n }\n }\n }\n return values;\n}\nconst makeUseVisualState = (config)=>_s((props, isStatic)=>{\n _s();\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_5__.MotionContext);\n const presenceContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_6__.PresenceContext);\n const make = ()=>makeState(config, props, context, presenceContext);\n return isStatic ? make() : (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_7__.useConstant)(make);\n }, \"sNxIIlbNmx0ZryDSe/DlWrNSZgI=\", false, function() {\n return [\n _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_7__.useConstant\n ];\n });\n //# sourceMappingURL=use-visual-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3VzZS12aXN1YWwtc3RhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFDQTtRQUFBO0lBU0k7Ozs7SUFVQTtBQUNKO0FBRUE7OztJQVNJOzs7SUFJQTtJQUNBO0lBQ0E7SUFFQSxrQ0FHSSw0QkFDQTttQ0FFMkI7bUNBQ0E7O3NEQUkzQjtJQUVKOztJQUlBLHlEQUdJO1FBRUE7WUFBQTtTQUFBO1FBQ0E7Ozs7Z0JBSVE7b0JBQ0k7b0JBRUE7d0JBQ0k7Ozt5QkFHRyw2Q0FFQzt3QkFFSjs7b0JBR0o7d0JBQ0k7OztnQkFHUjs7Ozs7O0lBU1o7QUFDSjtBQUVPOztRQUdDO1FBQ0E7UUFDQTtRQUVBO0lBQ0o7O1lBREkiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9tb3Rpb24vdXRpbHMvdXNlLXZpc3VhbC1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQge1xuICAgIEFueVJlc29sdmVkS2V5ZnJhbWUsXG4gICAgaXNBbmltYXRpb25Db250cm9scyxcbiAgICBpc0NvbnRyb2xsaW5nVmFyaWFudHMgYXMgY2hlY2tJc0NvbnRyb2xsaW5nVmFyaWFudHMsXG4gICAgaXNWYXJpYW50Tm9kZSBhcyBjaGVja0lzVmFyaWFudE5vZGUsXG4gICAgUmVzb2x2ZWRWYWx1ZXMsXG4gICAgcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMsXG59IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTW90aW9uQ29udGV4dCwgTW90aW9uQ29udGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvTW90aW9uQ29udGV4dFwiXG5pbXBvcnQge1xuICAgIFByZXNlbmNlQ29udGV4dCxcbiAgICB0eXBlIFByZXNlbmNlQ29udGV4dFByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29udGV4dC9QcmVzZW5jZUNvbnRleHRcIlxuaW1wb3J0IHsgU2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzIH0gZnJvbSBcIi4uLy4uL3JlbmRlci90eXBlc1wiXG5pbXBvcnQgeyB1c2VDb25zdGFudCB9IGZyb20gXCIuLi8uLi91dGlscy91c2UtY29uc3RhbnRcIlxuaW1wb3J0IHsgcmVzb2x2ZU1vdGlvblZhbHVlIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vdHlwZXNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFZpc3VhbFN0YXRlPEluc3RhbmNlLCBSZW5kZXJTdGF0ZT4ge1xuICAgIHJlbmRlclN0YXRlOiBSZW5kZXJTdGF0ZVxuICAgIGxhdGVzdFZhbHVlczogUmVzb2x2ZWRWYWx1ZXNcbiAgICBvbk1vdW50PzogKGluc3RhbmNlOiBJbnN0YW5jZSkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBVc2VWaXN1YWxTdGF0ZTxJbnN0YW5jZSwgUmVuZGVyU3RhdGU+ID0gKFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wcyxcbiAgICBpc1N0YXRpYzogYm9vbGVhblxuKSA9PiBWaXN1YWxTdGF0ZTxJbnN0YW5jZSwgUmVuZGVyU3RhdGU+XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlVmlzdWFsU3RhdGVDb25maWc8UmVuZGVyU3RhdGU+IHtcbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHM6IFNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wc1xuICAgIGNyZWF0ZVJlbmRlclN0YXRlOiAoKSA9PiBSZW5kZXJTdGF0ZVxufVxuXG5mdW5jdGlvbiBtYWtlU3RhdGU8SSwgUlM+KFxuICAgIHtcbiAgICAgICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzLFxuICAgICAgICBjcmVhdGVSZW5kZXJTdGF0ZSxcbiAgICB9OiBVc2VWaXN1YWxTdGF0ZUNvbmZpZzxSUz4sXG4gICAgcHJvcHM6IE1vdGlvblByb3BzLFxuICAgIGNvbnRleHQ6IE1vdGlvbkNvbnRleHRQcm9wcyxcbiAgICBwcmVzZW5jZUNvbnRleHQ6IFByZXNlbmNlQ29udGV4dFByb3BzIHwgbnVsbFxuKSB7XG4gICAgY29uc3Qgc3RhdGU6IFZpc3VhbFN0YXRlPEksIFJTPiA9IHtcbiAgICAgICAgbGF0ZXN0VmFsdWVzOiBtYWtlTGF0ZXN0VmFsdWVzKFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcHJlc2VuY2VDb250ZXh0LFxuICAgICAgICAgICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzXG4gICAgICAgICksXG4gICAgICAgIHJlbmRlclN0YXRlOiBjcmVhdGVSZW5kZXJTdGF0ZSgpLFxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZVxufVxuXG5mdW5jdGlvbiBtYWtlTGF0ZXN0VmFsdWVzKFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wcyxcbiAgICBjb250ZXh0OiBNb3Rpb25Db250ZXh0UHJvcHMsXG4gICAgcHJlc2VuY2VDb250ZXh0OiBQcmVzZW5jZUNvbnRleHRQcm9wcyB8IG51bGwsXG4gICAgc2NyYXBlTW90aW9uVmFsdWVzOiBTY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHNcbikge1xuICAgIGNvbnN0IHZhbHVlczogUmVzb2x2ZWRWYWx1ZXMgPSB7fVxuXG4gICAgY29uc3QgbW90aW9uVmFsdWVzID0gc2NyYXBlTW90aW9uVmFsdWVzKHByb3BzLCB7fSlcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBtb3Rpb25WYWx1ZXMpIHtcbiAgICAgICAgdmFsdWVzW2tleV0gPSByZXNvbHZlTW90aW9uVmFsdWUobW90aW9uVmFsdWVzW2tleV0pXG4gICAgfVxuXG4gICAgbGV0IHsgaW5pdGlhbCwgYW5pbWF0ZSB9ID0gcHJvcHNcbiAgICBjb25zdCBpc0NvbnRyb2xsaW5nVmFyaWFudHMgPSBjaGVja0lzQ29udHJvbGxpbmdWYXJpYW50cyhwcm9wcylcbiAgICBjb25zdCBpc1ZhcmlhbnROb2RlID0gY2hlY2tJc1ZhcmlhbnROb2RlKHByb3BzKVxuXG4gICAgaWYgKFxuICAgICAgICBjb250ZXh0ICYmXG4gICAgICAgIGlzVmFyaWFudE5vZGUgJiZcbiAgICAgICAgIWlzQ29udHJvbGxpbmdWYXJpYW50cyAmJlxuICAgICAgICBwcm9wcy5pbmhlcml0ICE9PSBmYWxzZVxuICAgICkge1xuICAgICAgICBpZiAoaW5pdGlhbCA9PT0gdW5kZWZpbmVkKSBpbml0aWFsID0gY29udGV4dC5pbml0aWFsXG4gICAgICAgIGlmIChhbmltYXRlID09PSB1bmRlZmluZWQpIGFuaW1hdGUgPSBjb250ZXh0LmFuaW1hdGVcbiAgICB9XG5cbiAgICBsZXQgaXNJbml0aWFsQW5pbWF0aW9uQmxvY2tlZCA9IHByZXNlbmNlQ29udGV4dFxuICAgICAgICA/IHByZXNlbmNlQ29udGV4dC5pbml0aWFsID09PSBmYWxzZVxuICAgICAgICA6IGZhbHNlXG4gICAgaXNJbml0aWFsQW5pbWF0aW9uQmxvY2tlZCA9IGlzSW5pdGlhbEFuaW1hdGlvbkJsb2NrZWQgfHwgaW5pdGlhbCA9PT0gZmFsc2VcblxuICAgIGNvbnN0IHZhcmlhbnRUb1NldCA9IGlzSW5pdGlhbEFuaW1hdGlvbkJsb2NrZWQgPyBhbmltYXRlIDogaW5pdGlhbFxuXG4gICAgaWYgKFxuICAgICAgICB2YXJpYW50VG9TZXQgJiZcbiAgICAgICAgdHlwZW9mIHZhcmlhbnRUb1NldCAhPT0gXCJib29sZWFuXCIgJiZcbiAgICAgICAgIWlzQW5pbWF0aW9uQ29udHJvbHModmFyaWFudFRvU2V0KVxuICAgICkge1xuICAgICAgICBjb25zdCBsaXN0ID0gQXJyYXkuaXNBcnJheSh2YXJpYW50VG9TZXQpID8gdmFyaWFudFRvU2V0IDogW3ZhcmlhbnRUb1NldF1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVWYXJpYW50RnJvbVByb3BzKHByb3BzLCBsaXN0W2ldIGFzIGFueSlcbiAgICAgICAgICAgIGlmIChyZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdHJhbnNpdGlvbkVuZCwgdHJhbnNpdGlvbiwgLi4udGFyZ2V0IH0gPSByZXNvbHZlZFxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWVUYXJnZXQgPSB0YXJnZXRba2V5IGFzIGtleW9mIHR5cGVvZiB0YXJnZXRdXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVUYXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFRha2UgZmluYWwga2V5ZnJhbWUgaWYgdGhlIGluaXRpYWwgYW5pbWF0aW9uIGlzIGJsb2NrZWQgYmVjYXVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICogd2Ugd2FudCB0byBpbml0aWFsaXNlIGF0IHRoZSBlbmQgb2YgdGhhdCBibG9ja2VkIGFuaW1hdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBpc0luaXRpYWxBbmltYXRpb25CbG9ja2VkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZVRhcmdldC5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAwXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRhcmdldCA9IHZhbHVlVGFyZ2V0W2luZGV4XSBhcyBhbnlcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVRhcmdldCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW2tleV0gPSB2YWx1ZVRhcmdldCBhcyBBbnlSZXNvbHZlZEtleWZyYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdHJhbnNpdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXNba2V5XSA9IHRyYW5zaXRpb25FbmRbXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXkgYXMga2V5b2YgdHlwZW9mIHRyYW5zaXRpb25FbmRcbiAgICAgICAgICAgICAgICAgICAgXSBhcyBBbnlSZXNvbHZlZEtleWZyYW1lXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlc1xufVxuXG5leHBvcnQgY29uc3QgbWFrZVVzZVZpc3VhbFN0YXRlID1cbiAgICA8SSwgUlM+KGNvbmZpZzogVXNlVmlzdWFsU3RhdGVDb25maWc8UlM+KTogVXNlVmlzdWFsU3RhdGU8SSwgUlM+ID0+XG4gICAgKHByb3BzOiBNb3Rpb25Qcm9wcywgaXNTdGF0aWM6IGJvb2xlYW4pOiBWaXN1YWxTdGF0ZTxJLCBSUz4gPT4ge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChNb3Rpb25Db250ZXh0KVxuICAgICAgICBjb25zdCBwcmVzZW5jZUNvbnRleHQgPSB1c2VDb250ZXh0KFByZXNlbmNlQ29udGV4dClcbiAgICAgICAgY29uc3QgbWFrZSA9ICgpID0+IG1ha2VTdGF0ZShjb25maWcsIHByb3BzLCBjb250ZXh0LCBwcmVzZW5jZUNvbnRleHQpXG5cbiAgICAgICAgcmV0dXJuIGlzU3RhdGljID8gbWFrZSgpIDogdXNlQ29uc3RhbnQobWFrZSlcbiAgICB9XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isValidMotionProp: () => (/* binding */ isValidMotionProp)\n/* harmony export */ });\n/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"propagate\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n\n\n//# sourceMappingURL=valid-prop.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3ZhbGlkLXByb3AubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3ZhbGlkLXByb3AubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBsaXN0IG9mIGFsbCB2YWxpZCBNb3Rpb25Qcm9wcy5cbiAqXG4gKiBAcHJpdmF0ZVJlbWFya3NcbiAqIFRoaXMgZG9lc24ndCB0aHJvdyBpZiBhIGBNb3Rpb25Qcm9wYCBuYW1lIGlzIG1pc3NpbmcgLSBpdCBzaG91bGQuXG4gKi9cbmNvbnN0IHZhbGlkTW90aW9uUHJvcHMgPSBuZXcgU2V0KFtcbiAgICBcImFuaW1hdGVcIixcbiAgICBcImV4aXRcIixcbiAgICBcInZhcmlhbnRzXCIsXG4gICAgXCJpbml0aWFsXCIsXG4gICAgXCJzdHlsZVwiLFxuICAgIFwidmFsdWVzXCIsXG4gICAgXCJ2YXJpYW50c1wiLFxuICAgIFwidHJhbnNpdGlvblwiLFxuICAgIFwidHJhbnNmb3JtVGVtcGxhdGVcIixcbiAgICBcImN1c3RvbVwiLFxuICAgIFwiaW5oZXJpdFwiLFxuICAgIFwib25CZWZvcmVMYXlvdXRNZWFzdXJlXCIsXG4gICAgXCJvbkFuaW1hdGlvblN0YXJ0XCIsXG4gICAgXCJvbkFuaW1hdGlvbkNvbXBsZXRlXCIsXG4gICAgXCJvblVwZGF0ZVwiLFxuICAgIFwib25EcmFnU3RhcnRcIixcbiAgICBcIm9uRHJhZ1wiLFxuICAgIFwib25EcmFnRW5kXCIsXG4gICAgXCJvbk1lYXN1cmVEcmFnQ29uc3RyYWludHNcIixcbiAgICBcIm9uRGlyZWN0aW9uTG9ja1wiLFxuICAgIFwib25EcmFnVHJhbnNpdGlvbkVuZFwiLFxuICAgIFwiX2RyYWdYXCIsXG4gICAgXCJfZHJhZ1lcIixcbiAgICBcIm9uSG92ZXJTdGFydFwiLFxuICAgIFwib25Ib3ZlckVuZFwiLFxuICAgIFwib25WaWV3cG9ydEVudGVyXCIsXG4gICAgXCJvblZpZXdwb3J0TGVhdmVcIixcbiAgICBcImdsb2JhbFRhcFRhcmdldFwiLFxuICAgIFwicHJvcGFnYXRlXCIsXG4gICAgXCJpZ25vcmVTdHJpY3RcIixcbiAgICBcInZpZXdwb3J0XCIsXG5dKTtcbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIHByb3AgbmFtZSBpcyBhIHZhbGlkIGBNb3Rpb25Qcm9wYCBrZXkuXG4gKlxuICogQHBhcmFtIGtleSAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGNoZWNrXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaXMga2V5IGlzIGEgdmFsaWQgYE1vdGlvblByb3BgLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gaXNWYWxpZE1vdGlvblByb3Aoa2V5KSB7XG4gICAgcmV0dXJuIChrZXkuc3RhcnRzV2l0aChcIndoaWxlXCIpIHx8XG4gICAgICAgIChrZXkuc3RhcnRzV2l0aChcImRyYWdcIikgJiYga2V5ICE9PSBcImRyYWdnYWJsZVwiKSB8fFxuICAgICAgICBrZXkuc3RhcnRzV2l0aChcImxheW91dFwiKSB8fFxuICAgICAgICBrZXkuc3RhcnRzV2l0aChcIm9uVGFwXCIpIHx8XG4gICAgICAgIGtleS5zdGFydHNXaXRoKFwib25QYW5cIikgfHxcbiAgICAgICAga2V5LnN0YXJ0c1dpdGgoXCJvbkxheW91dFwiKSB8fFxuICAgICAgICB2YWxpZE1vdGlvblByb3BzLmhhcyhrZXkpKTtcbn1cblxuZXhwb3J0IHsgaXNWYWxpZE1vdGlvblByb3AgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZhbGlkLXByb3AubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createMotionProxy: () => (/* binding */ createMotionProxy)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var _motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/index.mjs\");\n\n\n\nfunction createMotionProxy(preloadedFeatures, createVisualElement) {\n if (typeof Proxy === \"undefined\") {\n return _motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n const factory = (Component, options) => {\n return (0,_motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent)(Component, options, preloadedFeatures, createVisualElement);\n };\n /**\n * Support for deprecated`motion(Component)` pattern\n */\n const deprecatedFactoryFunction = (Component, options) => {\n if (true) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warnOnce)(false, \"motion() is deprecated. Use motion.create() instead.\");\n }\n return factory(Component, options);\n };\n return new Proxy(deprecatedFactoryFunction, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n if (key === \"create\")\n return factory;\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, (0,_motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent)(key, undefined, preloadedFeatures, createVisualElement));\n }\n return componentCache.get(key);\n },\n });\n}\n\n\n//# sourceMappingURL=create-proxy.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvY3JlYXRlLXByb3h5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBd0M7QUFDdUI7O0FBRS9EO0FBQ0E7QUFDQSxlQUFlLG9FQUFxQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsd0VBQXFCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pELFlBQVksc0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0Msd0VBQXFCO0FBQzdEO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvY3JlYXRlLXByb3h5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBjcmVhdGVNb3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9tb3Rpb24vaW5kZXgubWpzJztcblxuZnVuY3Rpb24gY3JlYXRlTW90aW9uUHJveHkocHJlbG9hZGVkRmVhdHVyZXMsIGNyZWF0ZVZpc3VhbEVsZW1lbnQpIHtcbiAgICBpZiAodHlwZW9mIFByb3h5ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVNb3Rpb25Db21wb25lbnQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgY2FjaGUgb2YgZ2VuZXJhdGVkIGBtb3Rpb25gIGNvbXBvbmVudHMsIGUuZyBgbW90aW9uLmRpdmAsIGBtb3Rpb24uaW5wdXRgIGV0Yy5cbiAgICAgKiBSYXRoZXIgdGhhbiBnZW5lcmF0aW5nIHRoZW0gYW5ldyBldmVyeSByZW5kZXIuXG4gICAgICovXG4gICAgY29uc3QgY29tcG9uZW50Q2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgZmFjdG9yeSA9IChDb21wb25lbnQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZU1vdGlvbkNvbXBvbmVudChDb21wb25lbnQsIG9wdGlvbnMsIHByZWxvYWRlZEZlYXR1cmVzLCBjcmVhdGVWaXN1YWxFbGVtZW50KTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFN1cHBvcnQgZm9yIGRlcHJlY2F0ZWRgbW90aW9uKENvbXBvbmVudClgIHBhdHRlcm5cbiAgICAgKi9cbiAgICBjb25zdCBkZXByZWNhdGVkRmFjdG9yeUZ1bmN0aW9uID0gKENvbXBvbmVudCwgb3B0aW9ucykgPT4ge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICB3YXJuT25jZShmYWxzZSwgXCJtb3Rpb24oKSBpcyBkZXByZWNhdGVkLiBVc2UgbW90aW9uLmNyZWF0ZSgpIGluc3RlYWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWN0b3J5KENvbXBvbmVudCwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3IFByb3h5KGRlcHJlY2F0ZWRGYWN0b3J5RnVuY3Rpb24sIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENhbGxlZCB3aGVuIGBtb3Rpb25gIGlzIHJlZmVyZW5jZWQgd2l0aCBhIHByb3A6IGBtb3Rpb24uZGl2YCwgYG1vdGlvbi5pbnB1dGAgZXRjLlxuICAgICAgICAgKiBUaGUgcHJvcCBuYW1lIGlzIHBhc3NlZCB0aHJvdWdoIGFzIGBrZXlgIGFuZCB3ZSBjYW4gdXNlIHRoYXQgdG8gZ2VuZXJhdGUgYSBgbW90aW9uYFxuICAgICAgICAgKiBET00gY29tcG9uZW50IHdpdGggdGhhdCBuYW1lLlxuICAgICAgICAgKi9cbiAgICAgICAgZ2V0OiAoX3RhcmdldCwga2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBcImNyZWF0ZVwiKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWN0b3J5O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGVsZW1lbnQgZG9lc24ndCBleGlzdCBpbiB0aGUgY29tcG9uZW50IGNhY2hlLCBjcmVhdGUgaXQgYW5kIGNhY2hlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoIWNvbXBvbmVudENhY2hlLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50Q2FjaGUuc2V0KGtleSwgY3JlYXRlTW90aW9uQ29tcG9uZW50KGtleSwgdW5kZWZpbmVkLCBwcmVsb2FkZWRGZWF0dXJlcywgY3JlYXRlVmlzdWFsRWxlbWVudCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudENhY2hlLmdldChrZXkpO1xuICAgICAgICB9LFxuICAgIH0pO1xufVxuXG5leHBvcnQgeyBjcmVhdGVNb3Rpb25Qcm94eSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLXByb3h5Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ featureBundle: () => (/* binding */ featureBundle)\n/* harmony export */ });\n/* harmony import */ var _motion_features_animations_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../motion/features/animations.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs\");\n/* harmony import */ var _motion_features_drag_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../motion/features/drag.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs\");\n/* harmony import */ var _motion_features_gestures_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../motion/features/gestures.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs\");\n/* harmony import */ var _motion_features_layout_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../motion/features/layout.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs\");\n\n\n\n\n\nconst featureBundle = {\n ..._motion_features_animations_mjs__WEBPACK_IMPORTED_MODULE_0__.animations,\n ..._motion_features_gestures_mjs__WEBPACK_IMPORTED_MODULE_1__.gestureAnimations,\n ..._motion_features_drag_mjs__WEBPACK_IMPORTED_MODULE_2__.drag,\n ..._motion_features_layout_mjs__WEBPACK_IMPORTED_MODULE_3__.layout,\n};\n\n\n//# sourceMappingURL=feature-bundle.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvbW90aW9uL2ZlYXR1cmUtYnVuZGxlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFxRTtBQUNaO0FBQ2lCO0FBQ2I7O0FBRTdEO0FBQ0EsT0FBTyx1RUFBVTtBQUNqQixPQUFPLDRFQUFpQjtBQUN4QixPQUFPLDJEQUFJO0FBQ1gsT0FBTywrREFBTTtBQUNiOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvbW90aW9uL2ZlYXR1cmUtYnVuZGxlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRpb25zIH0gZnJvbSAnLi4vLi4vLi4vbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbnMubWpzJztcbmltcG9ydCB7IGRyYWcgfSBmcm9tICcuLi8uLi8uLi9tb3Rpb24vZmVhdHVyZXMvZHJhZy5tanMnO1xuaW1wb3J0IHsgZ2VzdHVyZUFuaW1hdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9tb3Rpb24vZmVhdHVyZXMvZ2VzdHVyZXMubWpzJztcbmltcG9ydCB7IGxheW91dCB9IGZyb20gJy4uLy4uLy4uL21vdGlvbi9mZWF0dXJlcy9sYXlvdXQubWpzJztcblxuY29uc3QgZmVhdHVyZUJ1bmRsZSA9IHtcbiAgICAuLi5hbmltYXRpb25zLFxuICAgIC4uLmdlc3R1cmVBbmltYXRpb25zLFxuICAgIC4uLmRyYWcsXG4gICAgLi4ubGF5b3V0LFxufTtcblxuZXhwb3J0IHsgZmVhdHVyZUJ1bmRsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmVhdHVyZS1idW5kbGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ motion: () => (/* binding */ motion)\n/* harmony export */ });\n/* harmony import */ var _dom_create_visual_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dom/create-visual-element.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs\");\n/* harmony import */ var _create_proxy_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../create-proxy.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs\");\n/* harmony import */ var _feature_bundle_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./feature-bundle.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs\");\n\n\n\n\nconst motion = /*@__PURE__*/ (0,_create_proxy_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionProxy)(_feature_bundle_mjs__WEBPACK_IMPORTED_MODULE_1__.featureBundle, _dom_create_visual_element_mjs__WEBPACK_IMPORTED_MODULE_2__.createDomVisualElement);\n\n\n//# sourceMappingURL=proxy.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvbW90aW9uL3Byb3h5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTZFO0FBQ3JCO0FBQ0g7O0FBRXJELDZCQUE2QixvRUFBaUIsQ0FBQyw4REFBYSxFQUFFLGtGQUFzQjs7QUFFbEU7QUFDbEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9jb21wb25lbnRzL21vdGlvbi9wcm94eS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRG9tVmlzdWFsRWxlbWVudCB9IGZyb20gJy4uLy4uL2RvbS9jcmVhdGUtdmlzdWFsLWVsZW1lbnQubWpzJztcbmltcG9ydCB7IGNyZWF0ZU1vdGlvblByb3h5IH0gZnJvbSAnLi4vY3JlYXRlLXByb3h5Lm1qcyc7XG5pbXBvcnQgeyBmZWF0dXJlQnVuZGxlIH0gZnJvbSAnLi9mZWF0dXJlLWJ1bmRsZS5tanMnO1xuXG5jb25zdCBtb3Rpb24gPSAvKkBfX1BVUkVfXyovIGNyZWF0ZU1vdGlvblByb3h5KGZlYXR1cmVCdW5kbGUsIGNyZWF0ZURvbVZpc3VhbEVsZW1lbnQpO1xuXG5leHBvcnQgeyBtb3Rpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByb3h5Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createDomVisualElement: () => (/* binding */ createDomVisualElement)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/is-svg-component.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n\n\n\n\nconst createDomVisualElement = (Component, options) => {\n /**\n * Use explicit isSVG override if provided, otherwise auto-detect\n */\n const isSVG = options.isSVG ?? (0,_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__.isSVGComponent)(Component);\n return isSVG\n ? new motion_dom__WEBPACK_IMPORTED_MODULE_2__.SVGVisualElement(options)\n : new motion_dom__WEBPACK_IMPORTED_MODULE_3__.HTMLVisualElement(options, {\n allowProjection: Component !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment,\n });\n};\n\n\n//# sourceMappingURL=create-visual-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9jcmVhdGUtdmlzdWFsLWVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWlFO0FBQ2hDO0FBQzZCOztBQUU5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQywyRUFBYztBQUNqRDtBQUNBLGNBQWMsd0RBQWdCO0FBQzlCLGNBQWMseURBQWlCO0FBQy9CLDJDQUEyQywyQ0FBUTtBQUNuRCxTQUFTO0FBQ1Q7O0FBRWtDO0FBQ2xDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL2NyZWF0ZS12aXN1YWwtZWxlbWVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU1ZHVmlzdWFsRWxlbWVudCwgSFRNTFZpc3VhbEVsZW1lbnQgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNTVkdDb21wb25lbnQgfSBmcm9tICcuL3V0aWxzL2lzLXN2Zy1jb21wb25lbnQubWpzJztcblxuY29uc3QgY3JlYXRlRG9tVmlzdWFsRWxlbWVudCA9IChDb21wb25lbnQsIG9wdGlvbnMpID0+IHtcbiAgICAvKipcbiAgICAgKiBVc2UgZXhwbGljaXQgaXNTVkcgb3ZlcnJpZGUgaWYgcHJvdmlkZWQsIG90aGVyd2lzZSBhdXRvLWRldGVjdFxuICAgICAqL1xuICAgIGNvbnN0IGlzU1ZHID0gb3B0aW9ucy5pc1NWRyA/PyBpc1NWR0NvbXBvbmVudChDb21wb25lbnQpO1xuICAgIHJldHVybiBpc1NWR1xuICAgICAgICA/IG5ldyBTVkdWaXN1YWxFbGVtZW50KG9wdGlvbnMpXG4gICAgICAgIDogbmV3IEhUTUxWaXN1YWxFbGVtZW50KG9wdGlvbnMsIHtcbiAgICAgICAgICAgIGFsbG93UHJvamVjdGlvbjogQ29tcG9uZW50ICE9PSBGcmFnbWVudCxcbiAgICAgICAgfSk7XG59O1xuXG5leHBvcnQgeyBjcmVhdGVEb21WaXN1YWxFbGVtZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtdmlzdWFsLWVsZW1lbnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/use-render.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useRender: () => (/* binding */ useRender)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../html/use-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\");\n/* harmony import */ var _svg_use_props_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg/use-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs\");\n/* harmony import */ var _utils_filter_props_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/filter-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs\");\n/* harmony import */ var _utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/is-svg-component.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n/* __next_internal_client_entry_do_not_use__ useRender auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\nfunction useRender(Component, props, ref, param, isStatic) {\n let { latestValues } = param, forwardMotionProps = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : false, isSVG = arguments.length > 6 ? arguments[6] : void 0;\n _s();\n const useVisualProps = (isSVG !== null && isSVG !== void 0 ? isSVG : (0,_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__.isSVGComponent)(Component)) ? _svg_use_props_mjs__WEBPACK_IMPORTED_MODULE_2__.useSVGProps : _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_3__.useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = (0,_utils_filter_props_mjs__WEBPACK_IMPORTED_MODULE_4__.filterProps)(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment ? {\n ...filteredProps,\n ...visualProps,\n ref\n } : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */ const { children } = props;\n const renderedChildren = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useRender.useMemo[renderedChildren]\": ()=>(0,motion_dom__WEBPACK_IMPORTED_MODULE_5__.isMotionValue)(children) ? children.get() : children\n }[\"useRender.useMemo[renderedChildren]\"], [\n children\n ]);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Component, {\n ...elementProps,\n children: renderedChildren\n });\n}\n_s(useRender, \"pOEkb9VCzNFDbYF6ZAwinK0v/WY=\", true);\n //# sourceMappingURL=use-render.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91c2UtcmVuZGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTRCSTtJQUdBO0lBTUE7Ozs7OztJQVFBOzs7O0tBSUcsR0FDSDtJQUNBOytDQUFBOzhDQUFBO1FBQUE7S0FBQTs7UUFNSTtRQUNBO0lBQ0g7QUFDTCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL3JlbmRlci9kb20vdXNlLXJlbmRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyBpc01vdGlvblZhbHVlIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgRnJhZ21lbnQsIGNyZWF0ZUVsZW1lbnQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vLi4vbW90aW9uL3R5cGVzXCJcbmltcG9ydCB7IFZpc3VhbFN0YXRlIH0gZnJvbSBcIi4uLy4uL21vdGlvbi91dGlscy91c2UtdmlzdWFsLXN0YXRlXCJcbmltcG9ydCB7IEhUTUxSZW5kZXJTdGF0ZSB9IGZyb20gXCIuLi9odG1sL3R5cGVzXCJcbmltcG9ydCB7IHVzZUhUTUxQcm9wcyB9IGZyb20gXCIuLi9odG1sL3VzZS1wcm9wc1wiXG5pbXBvcnQgeyBTVkdSZW5kZXJTdGF0ZSB9IGZyb20gXCIuLi9zdmcvdHlwZXNcIlxuaW1wb3J0IHsgdXNlU1ZHUHJvcHMgfSBmcm9tIFwiLi4vc3ZnL3VzZS1wcm9wc1wiXG5pbXBvcnQgeyBET01Nb3Rpb25Db21wb25lbnRzIH0gZnJvbSBcIi4vdHlwZXNcIlxuaW1wb3J0IHsgZmlsdGVyUHJvcHMgfSBmcm9tIFwiLi91dGlscy9maWx0ZXItcHJvcHNcIlxuaW1wb3J0IHsgaXNTVkdDb21wb25lbnQgfSBmcm9tIFwiLi91dGlscy9pcy1zdmctY29tcG9uZW50XCJcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVJlbmRlcjxcbiAgICBQcm9wcyA9IHt9LFxuICAgIFRhZ05hbWUgZXh0ZW5kcyBrZXlvZiBET01Nb3Rpb25Db21wb25lbnRzIHwgc3RyaW5nID0gXCJkaXZcIlxuPihcbiAgICBDb21wb25lbnQ6IFRhZ05hbWUgfCBzdHJpbmcgfCBSZWFjdC5Db21wb25lbnRUeXBlPFByb3BzPixcbiAgICBwcm9wczogTW90aW9uUHJvcHMsXG4gICAgcmVmOiBSZWFjdC5SZWY8SFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50PixcbiAgICB7XG4gICAgICAgIGxhdGVzdFZhbHVlcyxcbiAgICB9OiBWaXN1YWxTdGF0ZTxIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQsIEhUTUxSZW5kZXJTdGF0ZSB8IFNWR1JlbmRlclN0YXRlPixcbiAgICBpc1N0YXRpYzogYm9vbGVhbixcbiAgICBmb3J3YXJkTW90aW9uUHJvcHM6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpc1NWRz86IGJvb2xlYW5cbikge1xuICAgIGNvbnN0IHVzZVZpc3VhbFByb3BzID1cbiAgICAgICAgKGlzU1ZHID8/IGlzU1ZHQ29tcG9uZW50KENvbXBvbmVudCkpID8gdXNlU1ZHUHJvcHMgOiB1c2VIVE1MUHJvcHNcblxuICAgIGNvbnN0IHZpc3VhbFByb3BzID0gdXNlVmlzdWFsUHJvcHMoXG4gICAgICAgIHByb3BzIGFzIGFueSxcbiAgICAgICAgbGF0ZXN0VmFsdWVzLFxuICAgICAgICBpc1N0YXRpYyxcbiAgICAgICAgQ29tcG9uZW50IGFzIGFueVxuICAgIClcbiAgICBjb25zdCBmaWx0ZXJlZFByb3BzID0gZmlsdGVyUHJvcHMoXG4gICAgICAgIHByb3BzLFxuICAgICAgICB0eXBlb2YgQ29tcG9uZW50ID09PSBcInN0cmluZ1wiLFxuICAgICAgICBmb3J3YXJkTW90aW9uUHJvcHNcbiAgICApXG4gICAgY29uc3QgZWxlbWVudFByb3BzID1cbiAgICAgICAgQ29tcG9uZW50ICE9PSBGcmFnbWVudCA/IHsgLi4uZmlsdGVyZWRQcm9wcywgLi4udmlzdWFsUHJvcHMsIHJlZiB9IDoge31cblxuICAgIC8qKlxuICAgICAqIElmIGNvbXBvbmVudCBoYXMgYmVlbiBoYW5kZWQgYSBtb3Rpb24gdmFsdWUgYXMgaXRzIGNoaWxkLFxuICAgICAqIG1lbW9pc2UgaXRzIGluaXRpYWwgdmFsdWUgYW5kIHJlbmRlciB0aGF0LiBTdWJzZXF1ZW50IHVwZGF0ZXNcbiAgICAgKiB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIG9uQ2hhbmdlIGhhbmRsZXJcbiAgICAgKi9cbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSBwcm9wc1xuICAgIGNvbnN0IHJlbmRlcmVkQ2hpbGRyZW4gPSB1c2VNZW1vKFxuICAgICAgICAoKSA9PiAoaXNNb3Rpb25WYWx1ZShjaGlsZHJlbikgPyBjaGlsZHJlbi5nZXQoKSA6IGNoaWxkcmVuKSxcbiAgICAgICAgW2NoaWxkcmVuXVxuICAgIClcblxuICAgIHJldHVybiBjcmVhdGVFbGVtZW50PGFueT4oQ29tcG9uZW50LCB7XG4gICAgICAgIC4uLmVsZW1lbnRQcm9wcyxcbiAgICAgICAgY2hpbGRyZW46IHJlbmRlcmVkQ2hpbGRyZW4sXG4gICAgfSlcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ filterProps: () => (/* binding */ filterProps),\n/* harmony export */ loadExternalIsValidProp: () => (/* binding */ loadExternalIsValidProp)\n/* harmony export */ });\n/* harmony import */ var _motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../motion/utils/valid-prop.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs\");\n\n\nlet shouldForward = (key) => !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (typeof isValidProp !== \"function\")\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && (0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key)) ||\n (!isDom && !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n\n\n//# sourceMappingURL=filter-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9maWx0ZXItcHJvcHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5RTs7QUFFekUsOEJBQThCLCtFQUFpQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCwrRUFBaUI7QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QywrRUFBaUI7QUFDN0Qsd0JBQXdCLCtFQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdEO0FBQ2hEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL3V0aWxzL2ZpbHRlci1wcm9wcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNWYWxpZE1vdGlvblByb3AgfSBmcm9tICcuLi8uLi8uLi9tb3Rpb24vdXRpbHMvdmFsaWQtcHJvcC5tanMnO1xuXG5sZXQgc2hvdWxkRm9yd2FyZCA9IChrZXkpID0+ICFpc1ZhbGlkTW90aW9uUHJvcChrZXkpO1xuZnVuY3Rpb24gbG9hZEV4dGVybmFsSXNWYWxpZFByb3AoaXNWYWxpZFByb3ApIHtcbiAgICBpZiAodHlwZW9mIGlzVmFsaWRQcm9wICE9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIHJldHVybjtcbiAgICAvLyBFeHBsaWNpdGx5IGZpbHRlciBvdXIgZXZlbnRzXG4gICAgc2hvdWxkRm9yd2FyZCA9IChrZXkpID0+IGtleS5zdGFydHNXaXRoKFwib25cIikgPyAhaXNWYWxpZE1vdGlvblByb3Aoa2V5KSA6IGlzVmFsaWRQcm9wKGtleSk7XG59XG4vKipcbiAqIEVtb3Rpb24gYW5kIFN0eWxlZCBDb21wb25lbnRzIGJvdGggYWxsb3cgdXNlcnMgdG8gcGFzcyB0aHJvdWdoIGFyYml0cmFyeSBwcm9wcyB0byB0aGVpciBjb21wb25lbnRzXG4gKiB0byBkeW5hbWljYWxseSBnZW5lcmF0ZSBDU1MuIFRoZXkgYm90aCB1c2UgdGhlIGBAZW1vdGlvbi9pcy1wcm9wLXZhbGlkYCBwYWNrYWdlIHRvIGRldGVybWluZSB3aGljaFxuICogb2YgdGhlc2Ugc2hvdWxkIGJlIHBhc3NlZCB0byB0aGUgdW5kZXJseWluZyBET00gbm9kZS5cbiAqXG4gKiBIb3dldmVyLCB3aGVuIHN0eWxpbmcgYSBNb3Rpb24gY29tcG9uZW50IGBzdHlsZWQobW90aW9uLmRpdilgLCBib3RoIHBhY2thZ2VzIHBhc3MgdGhyb3VnaCAqYWxsKiBwcm9wc1xuICogYXMgaXQncyBzZWVuIGFzIGFuIGFyYml0cmFyeSBjb21wb25lbnQgcmF0aGVyIHRoYW4gYSBET00gbm9kZS4gTW90aW9uIG9ubHkgYWxsb3dzIGFyYml0cmFyeSBwcm9wc1xuICogcGFzc2VkIHRocm91Z2ggdGhlIGBjdXN0b21gIHByb3Agc28gaXQgZG9lc24ndCAqbmVlZCogdGhlIHBheWxvYWQgb3IgY29tcHV0YXRpb25hbCBvdmVyaGVhZCBvZlxuICogYEBlbW90aW9uL2lzLXByb3AtdmFsaWRgLCBob3dldmVyIHRvIGZpeCB0aGlzIHByb2JsZW0gd2UgbmVlZCB0byB1c2UgaXQuXG4gKlxuICogQnkgbWFraW5nIGl0IGFuIG9wdGlvbmFsRGVwZW5kZW5jeSB3ZSBjYW4gb2ZmZXIgdGhpcyBmdW5jdGlvbmFsaXR5IG9ubHkgaW4gdGhlIHNpdHVhdGlvbnMgd2hlcmUgaXQnc1xuICogYWN0dWFsbHkgcmVxdWlyZWQuXG4gKi9cbnRyeSB7XG4gICAgLyoqXG4gICAgICogV2UgYXR0ZW1wdCB0byBpbXBvcnQgdGhpcyBwYWNrYWdlIGJ1dCByZXF1aXJlIHdvbid0IGJlIGRlZmluZWQgaW4gZXNtIGVudmlyb25tZW50cywgaW4gdGhhdCBjYXNlXG4gICAgICogaXNQcm9wVmFsaWQgd2lsbCBoYXZlIHRvIGJlIHByb3ZpZGVkIHZpYSBgTW90aW9uQ29udGV4dGAuIEluIGEgNi4wLjAgdGhpcyBzaG91bGQgcHJvYmFibHkgYmUgcmVtb3ZlZFxuICAgICAqIGluIGZhdm91ciBvZiBleHBsaWNpdCBpbmplY3Rpb24uXG4gICAgICovXG4gICAgbG9hZEV4dGVybmFsSXNWYWxpZFByb3AocmVxdWlyZShcIkBlbW90aW9uL2lzLXByb3AtdmFsaWRcIikuZGVmYXVsdCk7XG59XG5jYXRjaCB7XG4gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBhY3R1YWxseSBkbyBhbnl0aGluZyBoZXJlIC0gdGhlIGZhbGxiYWNrIGlzIHRoZSBleGlzdGluZyBgaXNQcm9wVmFsaWRgLlxufVxuZnVuY3Rpb24gZmlsdGVyUHJvcHMocHJvcHMsIGlzRG9tLCBmb3J3YXJkTW90aW9uUHJvcHMpIHtcbiAgICBjb25zdCBmaWx0ZXJlZFByb3BzID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gcHJvcHMpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHZhbHVlcyBpcyBjb25zaWRlcmVkIGEgdmFsaWQgcHJvcCBieSBFbW90aW9uLCBzbyBpZiBpdCdzIHByZXNlbnRcbiAgICAgICAgICogdGhpcyB3aWxsIGJlIHJlbmRlcmVkIG91dCB0byB0aGUgRE9NIHVubGVzcyBleHBsaWNpdGx5IGZpbHRlcmVkLlxuICAgICAgICAgKlxuICAgICAgICAgKiBXZSBjaGVjayB0aGUgdHlwZSBhcyBpdCBjb3VsZCBiZSB1c2VkIHdpdGggdGhlIGBmZUNvbG9yTWF0cml4YFxuICAgICAgICAgKiBlbGVtZW50LCB3aGljaCB3ZSBzdXBwb3J0LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGtleSA9PT0gXCJ2YWx1ZXNcIiAmJiB0eXBlb2YgcHJvcHMudmFsdWVzID09PSBcIm9iamVjdFwiKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGlmIChzaG91bGRGb3J3YXJkKGtleSkgfHxcbiAgICAgICAgICAgIChmb3J3YXJkTW90aW9uUHJvcHMgPT09IHRydWUgJiYgaXNWYWxpZE1vdGlvblByb3Aoa2V5KSkgfHxcbiAgICAgICAgICAgICghaXNEb20gJiYgIWlzVmFsaWRNb3Rpb25Qcm9wKGtleSkpIHx8XG4gICAgICAgICAgICAvLyBJZiB0cnlpbmcgdG8gdXNlIG5hdGl2ZSBIVE1MIGRyYWcgZXZlbnRzLCBmb3J3YXJkIGRyYWcgbGlzdGVuZXJzXG4gICAgICAgICAgICAocHJvcHNbXCJkcmFnZ2FibGVcIl0gJiZcbiAgICAgICAgICAgICAgICBrZXkuc3RhcnRzV2l0aChcIm9uRHJhZ1wiKSkpIHtcbiAgICAgICAgICAgIGZpbHRlcmVkUHJvcHNba2V5XSA9XG4gICAgICAgICAgICAgICAgcHJvcHNba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyZWRQcm9wcztcbn1cblxuZXhwb3J0IHsgZmlsdGVyUHJvcHMsIGxvYWRFeHRlcm5hbElzVmFsaWRQcm9wIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1maWx0ZXItcHJvcHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGComponent: () => (/* binding */ isSVGComponent)\n/* harmony export */ });\n/* harmony import */ var _svg_lowercase_elements_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../svg/lowercase-elements.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs\");\n\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n _svg_lowercase_elements_mjs__WEBPACK_IMPORTED_MODULE_0__.lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/u.test(Component)) {\n return true;\n }\n return false;\n}\n\n\n//# sourceMappingURL=is-svg-component.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9pcy1zdmctY29tcG9uZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF3RTs7QUFFeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksNkVBQW9CO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTBCO0FBQzFCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL3V0aWxzL2lzLXN2Zy1jb21wb25lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvd2VyY2FzZVNWR0VsZW1lbnRzIH0gZnJvbSAnLi4vLi4vc3ZnL2xvd2VyY2FzZS1lbGVtZW50cy5tanMnO1xuXG5mdW5jdGlvbiBpc1NWR0NvbXBvbmVudChDb21wb25lbnQpIHtcbiAgICBpZiAoXG4gICAgLyoqXG4gICAgICogSWYgaXQncyBub3QgYSBzdHJpbmcsIGl0J3MgYSBjdXN0b20gUmVhY3QgY29tcG9uZW50LiBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0XG4gICAgICogSFRNTCBjdXN0b20gUmVhY3QgY29tcG9uZW50cy5cbiAgICAgKi9cbiAgICB0eXBlb2YgQ29tcG9uZW50ICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBpdCBjb250YWlucyBhIGRhc2gsIHRoZSBlbGVtZW50IGlzIGEgY3VzdG9tIEhUTUwgd2ViY29tcG9uZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgQ29tcG9uZW50LmluY2x1ZGVzKFwiLVwiKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKFxuICAgIC8qKlxuICAgICAqIElmIGl0J3MgaW4gb3VyIGxpc3Qgb2YgbG93ZXJjYXNlIFNWRyB0YWdzLCBpdCdzIGFuIFNWRyBjb21wb25lbnRcbiAgICAgKi9cbiAgICBsb3dlcmNhc2VTVkdFbGVtZW50cy5pbmRleE9mKENvbXBvbmVudCkgPiAtMSB8fFxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgaXQgY29udGFpbnMgYSBjYXBpdGFsIGxldHRlciwgaXQncyBhbiBTVkcgY29tcG9uZW50XG4gICAgICAgICAqL1xuICAgICAgICAvW0EtWl0vdS50ZXN0KENvbXBvbmVudCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IHsgaXNTVkdDb21wb25lbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXN2Zy1jb21wb25lbnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useHTMLVisualState: () => (/* binding */ useHTMLVisualState)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\");\n/* harmony import */ var _motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/utils/use-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ useHTMLVisualState auto */ \n\n\nconst useHTMLVisualState = /*@__PURE__*/ (0,_motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__.makeUseVisualState)({\n scrapeMotionValuesFromProps: motion_dom__WEBPACK_IMPORTED_MODULE_1__.scrapeMotionValuesFromProps,\n createRenderState: _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__.createHtmlRenderState\n});\n //# sourceMappingURL=use-html-visual-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXNlLWh0bWwtdmlzdWFsLXN0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBTWE7SUFDVDtJQUNBO0FBQ0giLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9yZW5kZXIvaHRtbC91c2UtaHRtbC12aXN1YWwtc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgc2NyYXBlSFRNTE1vdGlvblZhbHVlc0Zyb21Qcm9wcyB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCB7IG1ha2VVc2VWaXN1YWxTdGF0ZSB9IGZyb20gXCIuLi8uLi9tb3Rpb24vdXRpbHMvdXNlLXZpc3VhbC1zdGF0ZVwiXG5pbXBvcnQgeyBjcmVhdGVIdG1sUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlXCJcblxuZXhwb3J0IGNvbnN0IHVzZUhUTUxWaXN1YWxTdGF0ZSA9IC8qQF9fUFVSRV9fKi8gbWFrZVVzZVZpc3VhbFN0YXRlKHtcbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHM6IHNjcmFwZUhUTUxNb3Rpb25WYWx1ZXNGcm9tUHJvcHMsXG4gICAgY3JlYXRlUmVuZGVyU3RhdGU6IGNyZWF0ZUh0bWxSZW5kZXJTdGF0ZSxcbn0pXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/html/use-props.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ copyRawValuesOnly: () => (/* binding */ copyRawValuesOnly),\n/* harmony export */ useHTMLProps: () => (/* binding */ useHTMLProps)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ copyRawValuesOnly,useHTMLProps auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n\n\n\nfunction copyRawValuesOnly(target, source, props) {\n for(const key in source){\n if (!(0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(source[key]) && !(0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isForcedMotionValue)(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues(param, visualState) {\n let { transformTemplate } = param;\n _s();\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useInitialMotionValues.useMemo\": ()=>{\n const state = (0,_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_3__.createHtmlRenderState)();\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.buildHTMLStyles)(state, visualState, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }\n }[\"useInitialMotionValues.useMemo\"], [\n visualState\n ]);\n}\n_s(useInitialMotionValues, \"nwk+m61qLgjDVUp4IGV/072DDN4=\");\nfunction useStyle(props, visualState) {\n _s1();\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */ copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState));\n return style;\n}\n_s1(useStyle, \"/Sy6LYzJ66EazRcvQe1ceKYmJ6M=\", false, function() {\n return [\n useInitialMotionValues\n ];\n});\nfunction useHTMLProps(props, visualState) {\n _s2();\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect = style.WebkitUserSelect = style.WebkitTouchCallout = \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction = props.drag === true ? \"none\" : \"pan-\".concat(props.drag === \"x\" ? \"y\" : \"x\");\n }\n if (props.tabIndex === undefined && (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n_s2(useHTMLProps, \"WJWu2yDa0dJ2LCrqC4EY4AJkLTI=\", false, function() {\n return [\n useStyle\n ];\n});\n //# sourceMappingURL=use-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXNlLXByb3BzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7SUFhSTtRQUNJOzs7O0FBSVI7QUFFQTtRQUFBOzs7O1lBS1E7WUFFQSwyREFBZSxDQUFmO1lBRUE7UUFDSjt5Q0FBQTtRQUFBO0tBQUE7QUFDSjtHQVhBO0FBYUE7O0lBSUk7O0lBR0E7O0tBRUcsR0FDSDtJQUVBO0lBRUE7QUFDSjtJQWZBOztRQVlJOzs7QUFLWTs7Ozs7OztRQVVSOztRQUdBLG1CQUNJLHlCQUNBLDJCQUNJOztRQUdSLDBDQUVRLFNBQ0E7O0lBR1osb0NBRUk7UUFFQTs7SUFHSjtJQUVBO0FBQ0o7SUFuQ2dCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvcmVuZGVyL2h0bWwvdXNlLXByb3BzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IEFueVJlc29sdmVkS2V5ZnJhbWUsIGJ1aWxkSFRNTFN0eWxlcywgaXNGb3JjZWRNb3Rpb25WYWx1ZSwgaXNNb3Rpb25WYWx1ZSwgTW90aW9uVmFsdWUgfSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgeyBIVE1MUHJvcHMsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vLi4vbW90aW9uL3R5cGVzXCJcbmltcG9ydCB7IFJlc29sdmVkVmFsdWVzIH0gZnJvbSBcIi4uL3R5cGVzXCJcbmltcG9ydCB7IGNyZWF0ZUh0bWxSZW5kZXJTdGF0ZSB9IGZyb20gXCIuL3V0aWxzL2NyZWF0ZS1yZW5kZXItc3RhdGVcIlxuXG5leHBvcnQgZnVuY3Rpb24gY29weVJhd1ZhbHVlc09ubHkoXG4gICAgdGFyZ2V0OiBSZXNvbHZlZFZhbHVlcyxcbiAgICBzb3VyY2U6IHsgW2tleTogc3RyaW5nXTogQW55UmVzb2x2ZWRLZXlmcmFtZSB8IE1vdGlvblZhbHVlIH0sXG4gICAgcHJvcHM6IE1vdGlvblByb3BzXG4pIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKCFpc01vdGlvblZhbHVlKHNvdXJjZVtrZXldKSAmJiAhaXNGb3JjZWRNb3Rpb25WYWx1ZShrZXksIHByb3BzKSkge1xuICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XSBhcyBBbnlSZXNvbHZlZEtleWZyYW1lXG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIHVzZUluaXRpYWxNb3Rpb25WYWx1ZXMoXG4gICAgeyB0cmFuc2Zvcm1UZW1wbGF0ZSB9OiBNb3Rpb25Qcm9wcyxcbiAgICB2aXN1YWxTdGF0ZTogUmVzb2x2ZWRWYWx1ZXNcbikge1xuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBjcmVhdGVIdG1sUmVuZGVyU3RhdGUoKVxuXG4gICAgICAgIGJ1aWxkSFRNTFN0eWxlcyhzdGF0ZSwgdmlzdWFsU3RhdGUsIHRyYW5zZm9ybVRlbXBsYXRlKVxuXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS52YXJzLCBzdGF0ZS5zdHlsZSlcbiAgICB9LCBbdmlzdWFsU3RhdGVdKVxufVxuXG5mdW5jdGlvbiB1c2VTdHlsZShcbiAgICBwcm9wczogTW90aW9uUHJvcHMsXG4gICAgdmlzdWFsU3RhdGU6IFJlc29sdmVkVmFsdWVzXG4pOiBSZXNvbHZlZFZhbHVlcyB7XG4gICAgY29uc3Qgc3R5bGVQcm9wID0gcHJvcHMuc3R5bGUgfHwge31cbiAgICBjb25zdCBzdHlsZSA9IHt9XG5cbiAgICAvKipcbiAgICAgKiBDb3B5IG5vbi1Nb3Rpb24gVmFsdWVzIHN0cmFpZ2h0IGludG8gc3R5bGVcbiAgICAgKi9cbiAgICBjb3B5UmF3VmFsdWVzT25seShzdHlsZSwgc3R5bGVQcm9wIGFzIGFueSwgcHJvcHMpXG5cbiAgICBPYmplY3QuYXNzaWduKHN0eWxlLCB1c2VJbml0aWFsTW90aW9uVmFsdWVzKHByb3BzLCB2aXN1YWxTdGF0ZSkpXG5cbiAgICByZXR1cm4gc3R5bGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUhUTUxQcm9wcyhcbiAgICBwcm9wczogTW90aW9uUHJvcHMgJiBIVE1MUHJvcHM8SFRNTEVsZW1lbnQ+LFxuICAgIHZpc3VhbFN0YXRlOiBSZXNvbHZlZFZhbHVlc1xuKSB7XG4gICAgLy8gVGhlIGBhbnlgIGlzbid0IGlkZWFsIGJ1dCBpdCBpcyB0aGUgdHlwZSBvZiBjcmVhdGVFbGVtZW50IHByb3BzIGFyZ3VtZW50XG4gICAgY29uc3QgaHRtbFByb3BzOiBhbnkgPSB7fVxuICAgIGNvbnN0IHN0eWxlID0gdXNlU3R5bGUocHJvcHMsIHZpc3VhbFN0YXRlKVxuXG4gICAgaWYgKHByb3BzLmRyYWcgJiYgcHJvcHMuZHJhZ0xpc3RlbmVyICE9PSBmYWxzZSkge1xuICAgICAgICAvLyBEaXNhYmxlIHRoZSBnaG9zdCBlbGVtZW50IHdoZW4gYSB1c2VyIGRyYWdzXG4gICAgICAgIGh0bWxQcm9wcy5kcmFnZ2FibGUgPSBmYWxzZVxuXG4gICAgICAgIC8vIERpc2FibGUgdGV4dCBzZWxlY3Rpb25cbiAgICAgICAgc3R5bGUudXNlclNlbGVjdCA9XG4gICAgICAgICAgICBzdHlsZS5XZWJraXRVc2VyU2VsZWN0ID1cbiAgICAgICAgICAgIHN0eWxlLldlYmtpdFRvdWNoQ2FsbG91dCA9XG4gICAgICAgICAgICAgICAgXCJub25lXCJcblxuICAgICAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBvbiB0aGUgZHJhZ2dhYmxlIGRpcmVjdGlvblxuICAgICAgICBzdHlsZS50b3VjaEFjdGlvbiA9XG4gICAgICAgICAgICBwcm9wcy5kcmFnID09PSB0cnVlXG4gICAgICAgICAgICAgICAgPyBcIm5vbmVcIlxuICAgICAgICAgICAgICAgIDogYHBhbi0ke3Byb3BzLmRyYWcgPT09IFwieFwiID8gXCJ5XCIgOiBcInhcIn1gXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgICBwcm9wcy50YWJJbmRleCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgIChwcm9wcy5vblRhcCB8fCBwcm9wcy5vblRhcFN0YXJ0IHx8IHByb3BzLndoaWxlVGFwKVxuICAgICkge1xuICAgICAgICBodG1sUHJvcHMudGFiSW5kZXggPSAwXG4gICAgfVxuXG4gICAgaHRtbFByb3BzLnN0eWxlID0gc3R5bGVcblxuICAgIHJldHVybiBodG1sUHJvcHNcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createHtmlRenderState: () => (/* binding */ createHtmlRenderState)\n/* harmony export */ });\nconst createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\n\n//# sourceMappingURL=create-render-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsYUFBYTtBQUNiLGlCQUFpQjtBQUNqQix1QkFBdUI7QUFDdkIsWUFBWTtBQUNaLENBQUM7O0FBRWdDO0FBQ2pDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvaHRtbC91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjcmVhdGVIdG1sUmVuZGVyU3RhdGUgPSAoKSA9PiAoe1xuICAgIHN0eWxlOiB7fSxcbiAgICB0cmFuc2Zvcm06IHt9LFxuICAgIHRyYW5zZm9ybU9yaWdpbjoge30sXG4gICAgdmFyczoge30sXG59KTtcblxuZXhwb3J0IHsgY3JlYXRlSHRtbFJlbmRlclN0YXRlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ lowercaseSVGElements: () => (/* binding */ lowercaseSVGElements)\n/* harmony export */ });\n/**\n * We keep these listed separately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\n\n//# sourceMappingURL=lowercase-elements.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy9sb3dlcmNhc2UtZWxlbWVudHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvbG93ZXJjYXNlLWVsZW1lbnRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFdlIGtlZXAgdGhlc2UgbGlzdGVkIHNlcGFyYXRlbHkgYXMgd2UgdXNlIHRoZSBsb3dlcmNhc2UgdGFnIG5hbWVzIGFzIHBhcnRcbiAqIG9mIHRoZSBydW50aW1lIGJ1bmRsZSB0byBkZXRlY3QgU1ZHIGNvbXBvbmVudHNcbiAqL1xuY29uc3QgbG93ZXJjYXNlU1ZHRWxlbWVudHMgPSBbXG4gICAgXCJhbmltYXRlXCIsXG4gICAgXCJjaXJjbGVcIixcbiAgICBcImRlZnNcIixcbiAgICBcImRlc2NcIixcbiAgICBcImVsbGlwc2VcIixcbiAgICBcImdcIixcbiAgICBcImltYWdlXCIsXG4gICAgXCJsaW5lXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcIm1hcmtlclwiLFxuICAgIFwibWFza1wiLFxuICAgIFwibWV0YWRhdGFcIixcbiAgICBcInBhdGhcIixcbiAgICBcInBhdHRlcm5cIixcbiAgICBcInBvbHlnb25cIixcbiAgICBcInBvbHlsaW5lXCIsXG4gICAgXCJyZWN0XCIsXG4gICAgXCJzdG9wXCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcInN5bWJvbFwiLFxuICAgIFwic3ZnXCIsXG4gICAgXCJ0ZXh0XCIsXG4gICAgXCJ0c3BhblwiLFxuICAgIFwidXNlXCIsXG4gICAgXCJ2aWV3XCIsXG5dO1xuXG5leHBvcnQgeyBsb3dlcmNhc2VTVkdFbGVtZW50cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG93ZXJjYXNlLWVsZW1lbnRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/use-props.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSVGProps: () => (/* binding */ useSVGProps)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../html/use-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ useSVGProps auto */ var _s = $RefreshSig$();\n\n\n\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n _s();\n const visualProps = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useSVGProps.useMemo[visualProps]\": ()=>{\n const state = (0,_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_1__.createSvgRenderState)();\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.buildSVGAttrs)(state, visualState, (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.isSVGTag)(Component), props.transformTemplate, props.style);\n return {\n ...state.attrs,\n style: {\n ...state.style\n }\n };\n }\n }[\"useSVGProps.useMemo[visualProps]\"], [\n visualState\n ]);\n if (props.style) {\n const rawStyles = {};\n (0,_html_use_props_mjs__WEBPACK_IMPORTED_MODULE_4__.copyRawValuesOnly)(rawStyles, props.style, props);\n visualProps.style = {\n ...rawStyles,\n ...visualProps.style\n };\n }\n return visualProps;\n}\n_s(useSVGProps, \"eiqa+9wkPNrwvDQrXOyiC3q3ueU=\");\n //# sourceMappingURL=use-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91c2UtcHJvcHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBU007O0lBTUY7NENBQUE7WUFDSTtZQUVBLHlEQUFhLENBQWI7OztnQkFVSTtvQkFBQTtnQkFBQTs7UUFFUjsyQ0FBQTtRQUFBO0tBQUE7SUFFQTs7O1FBR0k7WUFBQTtZQUFBO1FBQUE7O0lBR0o7QUFDSjtHQTlCTSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL3JlbmRlci9zdmcvdXNlLXByb3BzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IGJ1aWxkU1ZHQXR0cnMsIGlzU1ZHVGFnIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBNb3Rpb25Qcm9wcyB9IGZyb20gXCIuLi8uLi9tb3Rpb24vdHlwZXNcIlxuaW1wb3J0IHsgY29weVJhd1ZhbHVlc09ubHkgfSBmcm9tIFwiLi4vaHRtbC91c2UtcHJvcHNcIlxuaW1wb3J0IHsgUmVzb2x2ZWRWYWx1ZXMgfSBmcm9tIFwiLi4vdHlwZXNcIlxuaW1wb3J0IHsgY3JlYXRlU3ZnUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNWR1Byb3BzKFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wcyxcbiAgICB2aXN1YWxTdGF0ZTogUmVzb2x2ZWRWYWx1ZXMsXG4gICAgX2lzU3RhdGljOiBib29sZWFuLFxuICAgIENvbXBvbmVudDogc3RyaW5nIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjx1bmtub3duPj5cbikge1xuICAgIGNvbnN0IHZpc3VhbFByb3BzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gY3JlYXRlU3ZnUmVuZGVyU3RhdGUoKVxuXG4gICAgICAgIGJ1aWxkU1ZHQXR0cnMoXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIHZpc3VhbFN0YXRlLFxuICAgICAgICAgICAgaXNTVkdUYWcoQ29tcG9uZW50KSxcbiAgICAgICAgICAgIHByb3BzLnRyYW5zZm9ybVRlbXBsYXRlLFxuICAgICAgICAgICAgcHJvcHMuc3R5bGVcbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5hdHRycyxcbiAgICAgICAgICAgIHN0eWxlOiB7IC4uLnN0YXRlLnN0eWxlIH0sXG4gICAgICAgIH1cbiAgICB9LCBbdmlzdWFsU3RhdGVdKVxuXG4gICAgaWYgKHByb3BzLnN0eWxlKSB7XG4gICAgICAgIGNvbnN0IHJhd1N0eWxlcyA9IHt9XG4gICAgICAgIGNvcHlSYXdWYWx1ZXNPbmx5KHJhd1N0eWxlcywgcHJvcHMuc3R5bGUgYXMgYW55LCBwcm9wcylcbiAgICAgICAgdmlzdWFsUHJvcHMuc3R5bGUgPSB7IC4uLnJhd1N0eWxlcywgLi4udmlzdWFsUHJvcHMuc3R5bGUgfVxuICAgIH1cblxuICAgIHJldHVybiB2aXN1YWxQcm9wc1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSVGVisualState: () => (/* binding */ useSVGVisualState)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs\");\n/* harmony import */ var _motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/utils/use-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ useSVGVisualState auto */ \n\n\nconst useSVGVisualState = /*@__PURE__*/ (0,_motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__.makeUseVisualState)({\n scrapeMotionValuesFromProps: motion_dom__WEBPACK_IMPORTED_MODULE_1__.scrapeMotionValuesFromProps,\n createRenderState: _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__.createSvgRenderState\n});\n //# sourceMappingURL=use-svg-visual-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91c2Utc3ZnLXZpc3VhbC1zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQU1hO0lBQ1Q7SUFDQTtBQUNIIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvcmVuZGVyL3N2Zy91c2Utc3ZnLXZpc3VhbC1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyBzY3JhcGVTVkdNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgeyBtYWtlVXNlVmlzdWFsU3RhdGUgfSBmcm9tIFwiLi4vLi4vbW90aW9uL3V0aWxzL3VzZS12aXN1YWwtc3RhdGVcIlxuaW1wb3J0IHsgY3JlYXRlU3ZnUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlXCJcblxuZXhwb3J0IGNvbnN0IHVzZVNWR1Zpc3VhbFN0YXRlID0gLypAX19QVVJFX18qLyBtYWtlVXNlVmlzdWFsU3RhdGUoe1xuICAgIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wczogc2NyYXBlU1ZHTW90aW9uVmFsdWVzRnJvbVByb3BzLFxuICAgIGNyZWF0ZVJlbmRlclN0YXRlOiBjcmVhdGVTdmdSZW5kZXJTdGF0ZSxcbn0pXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs ***! + \*************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createSvgRenderState: () => (/* binding */ createSvgRenderState)\n/* harmony export */ });\n/* harmony import */ var _html_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n\n\nconst createSvgRenderState = () => ({\n ...(0,_html_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_0__.createHtmlRenderState)(),\n attrs: {},\n});\n\n\n//# sourceMappingURL=create-render-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFpRjs7QUFFakY7QUFDQSxPQUFPLDBGQUFxQjtBQUM1QixhQUFhO0FBQ2IsQ0FBQzs7QUFFK0I7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSHRtbFJlbmRlclN0YXRlIH0gZnJvbSAnLi4vLi4vaHRtbC91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcyc7XG5cbmNvbnN0IGNyZWF0ZVN2Z1JlbmRlclN0YXRlID0gKCkgPT4gKHtcbiAgICAuLi5jcmVhdGVIdG1sUmVuZGVyU3RhdGUoKSxcbiAgICBhdHRyczoge30sXG59KTtcblxuZXhwb3J0IHsgY3JlYXRlU3ZnUmVuZGVyU3RhdGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZS1yZW5kZXItc3RhdGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/distance.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/distance.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ distance: () => (/* binding */ distance),\n/* harmony export */ distance2D: () => (/* binding */ distance2D)\n/* harmony export */ });\nconst distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\n\n//# sourceMappingURL=distance.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvZGlzdGFuY2UubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy9kaXN0YW5jZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZGlzdGFuY2UgPSAoYSwgYikgPT4gTWF0aC5hYnMoYSAtIGIpO1xuZnVuY3Rpb24gZGlzdGFuY2UyRChhLCBiKSB7XG4gICAgLy8gTXVsdGktZGltZW5zaW9uYWxcbiAgICBjb25zdCB4RGVsdGEgPSBkaXN0YW5jZShhLngsIGIueCk7XG4gICAgY29uc3QgeURlbHRhID0gZGlzdGFuY2UoYS55LCBiLnkpO1xuICAgIHJldHVybiBNYXRoLnNxcnQoeERlbHRhICoqIDIgKyB5RGVsdGEgKiogMik7XG59XG5cbmV4cG9ydCB7IGRpc3RhbmNlLCBkaXN0YW5jZTJEIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kaXN0YW5jZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/distance.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/get-context-window.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getContextWindow: () => (/* binding */ getContextWindow)\n/* harmony export */ });\n// Fixes https://github.com/motiondivision/motion/issues/2270\nconst getContextWindow = ({ current }) => {\n return current ? current.ownerDocument.defaultView : null;\n};\n\n\n//# sourceMappingURL=get-context-window.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvZ2V0LWNvbnRleHQtd2luZG93Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSw0QkFBNEIsU0FBUztBQUNyQztBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvZ2V0LWNvbnRleHQtd2luZG93Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGaXhlcyBodHRwczovL2dpdGh1Yi5jb20vbW90aW9uZGl2aXNpb24vbW90aW9uL2lzc3Vlcy8yMjcwXG5jb25zdCBnZXRDb250ZXh0V2luZG93ID0gKHsgY3VycmVudCB9KSA9PiB7XG4gICAgcmV0dXJuIGN1cnJlbnQgPyBjdXJyZW50Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgOiBudWxsO1xufTtcblxuZXhwb3J0IHsgZ2V0Q29udGV4dFdpbmRvdyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWNvbnRleHQtd2luZG93Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/is-browser.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isBrowser: () => (/* binding */ isBrowser)\n/* harmony export */ });\nconst isBrowser = typeof window !== \"undefined\";\n\n\n//# sourceMappingURL=is-browser.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvaXMtYnJvd3Nlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUVxQjtBQUNyQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvaXMtYnJvd3Nlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNCcm93c2VyID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIjtcblxuZXhwb3J0IHsgaXNCcm93c2VyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1icm93c2VyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isRefObject: () => (/* binding */ isRefObject)\n/* harmony export */ });\nfunction isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\n\n//# sourceMappingURL=is-ref-object.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvaXMtcmVmLW9iamVjdC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy9pcy1yZWYtb2JqZWN0Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc1JlZk9iamVjdChyZWYpIHtcbiAgICByZXR1cm4gKHJlZiAmJlxuICAgICAgICB0eXBlb2YgcmVmID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWYsIFwiY3VycmVudFwiKSk7XG59XG5cbmV4cG9ydCB7IGlzUmVmT2JqZWN0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1yZWYtb2JqZWN0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useComposedRefs: () => (/* binding */ useComposedRefs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\n/**\n * Taken from https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/compose-refs.tsx\n */\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n }\n else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup === \"function\") {\n cleanup();\n }\n else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(composeRefs(...refs), refs);\n}\n\n\n//# sourceMappingURL=use-composed-ref.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvdXNlLWNvbXBvc2VkLXJlZi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBK0I7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxxQkFBcUI7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyw4Q0FBaUI7QUFDNUI7O0FBRTJCO0FBQzNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy91c2UtY29tcG9zZWQtcmVmLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbi8qKlxuICogVGFrZW4gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vcmFkaXgtdWkvcHJpbWl0aXZlcy9ibG9iL21haW4vcGFja2FnZXMvcmVhY3QvY29tcG9zZS1yZWZzL3NyYy9jb21wb3NlLXJlZnMudHN4XG4gKi9cbi8qKlxuICogU2V0IGEgZ2l2ZW4gcmVmIHRvIGEgZ2l2ZW4gdmFsdWVcbiAqIFRoaXMgdXRpbGl0eSB0YWtlcyBjYXJlIG9mIGRpZmZlcmVudCB0eXBlcyBvZiByZWZzOiBjYWxsYmFjayByZWZzIGFuZCBSZWZPYmplY3QocylcbiAqL1xuZnVuY3Rpb24gc2V0UmVmKHJlZiwgdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHJlZiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiByZWYodmFsdWUpO1xuICAgIH1cbiAgICBlbHNlIGlmIChyZWYgIT09IG51bGwgJiYgcmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG59XG4vKipcbiAqIEEgdXRpbGl0eSB0byBjb21wb3NlIG11bHRpcGxlIHJlZnMgdG9nZXRoZXJcbiAqIEFjY2VwdHMgY2FsbGJhY2sgcmVmcyBhbmQgUmVmT2JqZWN0KHMpXG4gKi9cbmZ1bmN0aW9uIGNvbXBvc2VSZWZzKC4uLnJlZnMpIHtcbiAgICByZXR1cm4gKG5vZGUpID0+IHtcbiAgICAgICAgbGV0IGhhc0NsZWFudXAgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgY2xlYW51cHMgPSByZWZzLm1hcCgocmVmKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjbGVhbnVwID0gc2V0UmVmKHJlZiwgbm9kZSk7XG4gICAgICAgICAgICBpZiAoIWhhc0NsZWFudXAgJiYgdHlwZW9mIGNsZWFudXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGhhc0NsZWFudXAgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNsZWFudXA7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBSZWFjdCA8MTkgd2lsbCBsb2cgYW4gZXJyb3IgdG8gdGhlIGNvbnNvbGUgaWYgYSBjYWxsYmFjayByZWYgcmV0dXJucyBhXG4gICAgICAgIC8vIHZhbHVlLiBXZSBkb24ndCB1c2UgcmVmIGNsZWFudXBzIGludGVybmFsbHkgc28gdGhpcyB3aWxsIG9ubHkgaGFwcGVuIGlmIGFcbiAgICAgICAgLy8gdXNlcidzIHJlZiBjYWxsYmFjayByZXR1cm5zIGEgdmFsdWUsIHdoaWNoIHdlIG9ubHkgZXhwZWN0IGlmIHRoZXkgYXJlXG4gICAgICAgIC8vIHVzaW5nIHRoZSBjbGVhbnVwIGZ1bmN0aW9uYWxpdHkgYWRkZWQgaW4gUmVhY3QgMTkuXG4gICAgICAgIGlmIChoYXNDbGVhbnVwKSB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2xlYW51cHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xlYW51cCA9IGNsZWFudXBzW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNsZWFudXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVmKHJlZnNbaV0sIG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH07XG59XG4vKipcbiAqIEEgY3VzdG9tIGhvb2sgdGhhdCBjb21wb3NlcyBtdWx0aXBsZSByZWZzXG4gKiBBY2NlcHRzIGNhbGxiYWNrIHJlZnMgYW5kIFJlZk9iamVjdChzKVxuICovXG5mdW5jdGlvbiB1c2VDb21wb3NlZFJlZnMoLi4ucmVmcykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICByZXR1cm4gUmVhY3QudXNlQ2FsbGJhY2soY29tcG9zZVJlZnMoLi4ucmVmcyksIHJlZnMpO1xufVxuXG5leHBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1jb21wb3NlZC1yZWYubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/use-constant.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useConstant: () => (/* binding */ useConstant)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ useConstant auto */ var _s = $RefreshSig$();\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ function useConstant(init) {\n _s();\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n_s(useConstant, \"QMBuJFIdzLIeqBcFwhMf246mjOM=\");\n //# sourceMappingURL=use-constant.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvdXNlLWNvbnN0YW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBTUE7Ozs7OztDQU1HLEdBQ0c7O0lBQ0Y7SUFFQTtRQUNJOzs7QUFJUjtHQVJNIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvdXRpbHMvdXNlLWNvbnN0YW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiXG5cbnR5cGUgSW5pdDxUPiA9ICgpID0+IFRcblxuLyoqXG4gKiBDcmVhdGVzIGEgY29uc3RhbnQgdmFsdWUgb3ZlciB0aGUgbGlmZWN5Y2xlIG9mIGEgY29tcG9uZW50LlxuICpcbiAqIEV2ZW4gaWYgYHVzZU1lbW9gIGlzIHByb3ZpZGVkIGFuIGVtcHR5IGFycmF5IGFzIGl0cyBmaW5hbCBhcmd1bWVudCwgaXQgZG9lc24ndCBvZmZlclxuICogYSBndWFyYW50ZWUgdGhhdCBpdCB3b24ndCByZS1ydW4gZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgbGF0ZXIgb24uIEJ5IHVzaW5nIGB1c2VDb25zdGFudGBcbiAqIHlvdSBjYW4gZW5zdXJlIHRoYXQgaW5pdGlhbGlzZXJzIGRvbid0IGV4ZWN1dGUgdHdpY2Ugb3IgbW9yZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbnN0YW50PFQ+KGluaXQ6IEluaXQ8VD4pIHtcbiAgICBjb25zdCByZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpXG5cbiAgICBpZiAocmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSBpbml0KClcbiAgICB9XG5cbiAgICByZXR1cm4gcmVmLmN1cnJlbnRcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useIsomorphicLayoutEffect: () => (/* binding */ useIsomorphicLayoutEffect)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-browser.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\");\n/* __next_internal_client_entry_do_not_use__ useIsomorphicLayoutEffect auto */ \n\nconst useIsomorphicLayoutEffect = _is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__.isBrowser ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n //# sourceMappingURL=use-isomorphic-effect.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvdXNlLWlzb21vcnBoaWMtZWZmZWN0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUtPIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvdXRpbHMvdXNlLWlzb21vcnBoaWMtZWZmZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gXCIuL2lzLWJyb3dzZXJcIlxuXG5leHBvcnQgY29uc3QgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9IGlzQnJvd3NlciA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js": +/*!****************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/Icon.js ***! + \****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Icon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultAttributes.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\");\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst Icon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(_c = (param, ref)=>{\n let { color = \"currentColor\", size = 24, strokeWidth = 2, absoluteStrokeWidth, className = \"\", children, iconNode, ...rest } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"svg\", {\n ref,\n ..._defaultAttributes_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide\", className),\n ...rest\n }, [\n ...iconNode.map((param)=>{\n let [tag, attrs] = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(tag, attrs);\n }),\n ...Array.isArray(children) ? children : [\n children\n ]\n ]);\n});\n_c1 = Icon;\n //# sourceMappingURL=Icon.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Icon$forwardRef\");\n$RefreshReg$(_c1, \"Icon\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsQ0FBTSxTQUFPLHdFQUNYLFFBV0UsR0FDRztRQVhILEVBQ0UsS0FBUSxtQkFDUixJQUFPLE9BQ1AsV0FBYyxNQUNkLHFCQUNBLFNBQVksT0FDWixVQUNBLFVBQ0EsR0FBRztJQUlFLDJFQUNMLE1BQ0E7UUFDRTtRQUNBLEdBQUc7UUFDSCxLQUFPO1FBQ1AsTUFBUTtRQUNSLE1BQVE7UUFDUixZQUFhLHFCQUF1QixRQUFPLEVBQVcsWUFBSSxJQUFNLFVBQU8sQ0FBSSxJQUFJO1FBQy9FLFVBQVcsbUVBQWEsV0FBVSxTQUFTO1FBQzNDLEdBQUc7SUFDTCxHQUNBO1dBQ0ssQ0FBUyxZQUFJO2dCQUFDLENBQUMsQ0FBSyxLQUFLLEtBQU07aUNBQUEscURBQWMsR0FBSyxPQUFLLENBQUM7O1dBQ3ZELEtBQU0sU0FBUSxRQUFRLENBQUksY0FBVztZQUFDLFFBQVE7U0FBQTtLQUNwRDtBQUVKIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvSWNvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVFbGVtZW50LCBmb3J3YXJkUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGRlZmF1bHRBdHRyaWJ1dGVzIGZyb20gJy4vZGVmYXVsdEF0dHJpYnV0ZXMnO1xuaW1wb3J0IHsgSWNvbk5vZGUsIEx1Y2lkZVByb3BzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBtZXJnZUNsYXNzZXMgfSBmcm9tICdAbHVjaWRlL3NoYXJlZCc7XG5cbmludGVyZmFjZSBJY29uQ29tcG9uZW50UHJvcHMgZXh0ZW5kcyBMdWNpZGVQcm9wcyB7XG4gIGljb25Ob2RlOiBJY29uTm9kZTtcbn1cblxuLyoqXG4gKiBMdWNpZGUgaWNvbiBjb21wb25lbnRcbiAqXG4gKiBAY29tcG9uZW50IEljb25cbiAqIEBwYXJhbSB7b2JqZWN0fSBwcm9wc1xuICogQHBhcmFtIHtzdHJpbmd9IHByb3BzLmNvbG9yIC0gVGhlIGNvbG9yIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc2l6ZSAtIFRoZSBzaXplIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge251bWJlcn0gcHJvcHMuc3Ryb2tlV2lkdGggLSBUaGUgc3Ryb2tlIHdpZHRoIG9mIHRoZSBpY29uXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHByb3BzLmFic29sdXRlU3Ryb2tlV2lkdGggLSBXaGV0aGVyIHRvIHVzZSBhYnNvbHV0ZSBzdHJva2Ugd2lkdGhcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcm9wcy5jbGFzc05hbWUgLSBUaGUgY2xhc3MgbmFtZSBvZiB0aGUgaWNvblxuICogQHBhcmFtIHtJY29uTm9kZX0gcHJvcHMuY2hpbGRyZW4gLSBUaGUgY2hpbGRyZW4gb2YgdGhlIGljb25cbiAqIEBwYXJhbSB7SWNvbk5vZGV9IHByb3BzLmljb25Ob2RlIC0gVGhlIGljb24gbm9kZSBvZiB0aGUgaWNvblxuICpcbiAqIEByZXR1cm5zIHtGb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50fSBMdWNpZGVJY29uXG4gKi9cbmNvbnN0IEljb24gPSBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEljb25Db21wb25lbnRQcm9wcz4oXG4gIChcbiAgICB7XG4gICAgICBjb2xvciA9ICdjdXJyZW50Q29sb3InLFxuICAgICAgc2l6ZSA9IDI0LFxuICAgICAgc3Ryb2tlV2lkdGggPSAyLFxuICAgICAgYWJzb2x1dGVTdHJva2VXaWR0aCxcbiAgICAgIGNsYXNzTmFtZSA9ICcnLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBpY29uTm9kZSxcbiAgICAgIC4uLnJlc3RcbiAgICB9LFxuICAgIHJlZixcbiAgKSA9PiB7XG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoXG4gICAgICAnc3ZnJyxcbiAgICAgIHtcbiAgICAgICAgcmVmLFxuICAgICAgICAuLi5kZWZhdWx0QXR0cmlidXRlcyxcbiAgICAgICAgd2lkdGg6IHNpemUsXG4gICAgICAgIGhlaWdodDogc2l6ZSxcbiAgICAgICAgc3Ryb2tlOiBjb2xvcixcbiAgICAgICAgc3Ryb2tlV2lkdGg6IGFic29sdXRlU3Ryb2tlV2lkdGggPyAoTnVtYmVyKHN0cm9rZVdpZHRoKSAqIDI0KSAvIE51bWJlcihzaXplKSA6IHN0cm9rZVdpZHRoLFxuICAgICAgICBjbGFzc05hbWU6IG1lcmdlQ2xhc3NlcygnbHVjaWRlJywgY2xhc3NOYW1lKSxcbiAgICAgICAgLi4ucmVzdCxcbiAgICAgIH0sXG4gICAgICBbXG4gICAgICAgIC4uLmljb25Ob2RlLm1hcCgoW3RhZywgYXR0cnNdKSA9PiBjcmVhdGVFbGVtZW50KHRhZywgYXR0cnMpKSxcbiAgICAgICAgLi4uKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pID8gY2hpbGRyZW4gOiBbY2hpbGRyZW5dKSxcbiAgICAgIF0sXG4gICAgKTtcbiAgfSxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IEljb247XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js": +/*!****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/createLucideIcon.js ***! + \****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ createLucideIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./shared/src/utils.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\");\n/* harmony import */ var _Icon_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Icon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/Icon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \n\n\nconst createLucideIcon = (iconName, iconNode)=>{\n const Component = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((param, ref)=>{\n let { className, ...props } = param;\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(_Icon_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ref,\n iconNode,\n className: (0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.mergeClasses)(\"lucide-\".concat((0,_shared_src_utils_js__WEBPACK_IMPORTED_MODULE_2__.toKebabCase)(iconName)), className),\n ...props\n });\n });\n Component.displayName = \"\".concat(iconName);\n return Component;\n};\n //# sourceMappingURL=createLucideIcon.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vY3JlYXRlTHVjaWRlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFXTSx1QkFBbUIsR0FBQyxVQUFrQixRQUF1QjtJQUNqRSxNQUFNLENBQVksbUZBQWlFO1lBQXpCLEVBQUUsQ0FBVyxXQUFHLFFBQVM7NkJBQ2pGLG9EQUFhLENBQUMsZ0RBQU07WUFDbEI7WUFDQTtZQUNBLFdBQVcsa0VBQWEsV0FBK0IsT0FBckIsaUVBQVcsQ0FBQyxRQUFRLENBQUMsR0FBSSxTQUFTO1lBQ3BFLEdBQUc7UUFBQSxDQUNKOztJQUdPLHdCQUFjLENBQUcsRUFBUSxPQUFSLFFBQVE7SUFFNUI7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvc3JjL2NyZWF0ZUx1Y2lkZUljb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRWxlbWVudCwgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IG1lcmdlQ2xhc3NlcywgdG9LZWJhYkNhc2UgfSBmcm9tICdAbHVjaWRlL3NoYXJlZCc7XG5pbXBvcnQgeyBJY29uTm9kZSwgTHVjaWRlUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBJY29uIGZyb20gJy4vSWNvbic7XG5cbi8qKlxuICogQ3JlYXRlIGEgTHVjaWRlIGljb24gY29tcG9uZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gaWNvbk5hbWVcbiAqIEBwYXJhbSB7YXJyYXl9IGljb25Ob2RlXG4gKiBAcmV0dXJucyB7Rm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudH0gTHVjaWRlSWNvblxuICovXG5jb25zdCBjcmVhdGVMdWNpZGVJY29uID0gKGljb25OYW1lOiBzdHJpbmcsIGljb25Ob2RlOiBJY29uTm9kZSkgPT4ge1xuICBjb25zdCBDb21wb25lbnQgPSBmb3J3YXJkUmVmPFNWR1NWR0VsZW1lbnQsIEx1Y2lkZVByb3BzPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT5cbiAgICBjcmVhdGVFbGVtZW50KEljb24sIHtcbiAgICAgIHJlZixcbiAgICAgIGljb25Ob2RlLFxuICAgICAgY2xhc3NOYW1lOiBtZXJnZUNsYXNzZXMoYGx1Y2lkZS0ke3RvS2ViYWJDYXNlKGljb25OYW1lKX1gLCBjbGFzc05hbWUpLFxuICAgICAgLi4ucHJvcHMsXG4gICAgfSksXG4gICk7XG5cbiAgQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gYCR7aWNvbk5hbWV9YDtcblxuICByZXR1cm4gQ29tcG9uZW50O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlTHVjaWRlSWNvbjtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js": +/*!*****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/defaultAttributes.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ defaultAttributes)\n/* harmony export */ });\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ var defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n //# sourceMappingURL=defaultAttributes.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vZGVmYXVsdEF0dHJpYnV0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsQ0FBZTtJQUNiLEtBQU87SUFDUCxLQUFPO0lBQ1AsTUFBUTtJQUNSLE9BQVM7SUFDVCxJQUFNO0lBQ04sTUFBUTtJQUNSLFdBQWE7SUFDYixhQUFlO0lBQ2YsY0FBZ0I7QUFDbEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9kZWZhdWx0QXR0cmlidXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XG4gIHhtbG5zOiAnaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnLFxuICB3aWR0aDogMjQsXG4gIGhlaWdodDogMjQsXG4gIHZpZXdCb3g6ICcwIDAgMjQgMjQnLFxuICBmaWxsOiAnbm9uZScsXG4gIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gIHN0cm9rZVdpZHRoOiAyLFxuICBzdHJva2VMaW5lY2FwOiAncm91bmQnLFxuICBzdHJva2VMaW5lam9pbjogJ3JvdW5kJyxcbn07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/defaultAttributes.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/activity.js": +/*!**************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/activity.js ***! + \**************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Activity)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2\",\n key: \"169zse\"\n }\n ]\n];\nconst Activity = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Activity\", __iconNode);\n //# sourceMappingURL=activity.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvYWN0aXZpdHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUNFO1FBQ0E7WUFDRSxDQUFHO1lBQ0gsR0FBSztRQUNQO0tBQ0Y7Q0FDRjtBQWFNLGVBQVcsa0VBQWlCLGFBQVksQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL2FjdGl2aXR5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgW1xuICAgICdwYXRoJyxcbiAgICB7XG4gICAgICBkOiAnTTIyIDEyaC0yLjQ4YTIgMiAwIDAgMC0xLjkzIDEuNDZsLTIuMzUgOC4zNmEuMjUuMjUgMCAwIDEtLjQ4IDBMOS4yNCAyLjE4YS4yNS4yNSAwIDAgMC0uNDggMGwtMi4zNSA4LjM2QTIgMiAwIDAgMSA0LjQ5IDEySDInLFxuICAgICAga2V5OiAnMTY5enNlJyxcbiAgICB9LFxuICBdLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIEFjdGl2aXR5XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NaklnTVRKb0xUSXVORGhoTWlBeUlEQWdNQ0F3TFRFdU9UTWdNUzQwTm13dE1pNHpOU0E0TGpNMllTNHlOUzR5TlNBd0lEQWdNUzB1TkRnZ01FdzVMakkwSURJdU1UaGhMakkxTGpJMUlEQWdNQ0F3TFM0ME9DQXdiQzB5TGpNMUlEZ3VNelpCTWlBeUlEQWdNQ0F4SURRdU5Ea2dNVEpJTWlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2FjdGl2aXR5XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgQWN0aXZpdHkgPSBjcmVhdGVMdWNpZGVJY29uKCdBY3Rpdml0eScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBBY3Rpdml0eTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/activity.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js": +/*!******************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/circle-alert.js ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ CircleAlert)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12\",\n y1: \"8\",\n y2: \"12\",\n key: \"1pkeuh\"\n }\n ],\n [\n \"line\",\n {\n x1: \"12\",\n x2: \"12.01\",\n y1: \"16\",\n y2: \"16\",\n key: \"4dfq90\"\n }\n ]\n];\nconst CircleAlert = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"CircleAlert\", __iconNode);\n //# sourceMappingURL=circle-alert.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2lyY2xlLWFsZXJ0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFBQyxRQUFVO1FBQUE7WUFBRSxFQUFJO1lBQU0sQ0FBSSxRQUFNO1lBQUEsQ0FBRztZQUFNLEdBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekQ7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLElBQUs7WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2pFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFTO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUN2RTtBQWFNLGtCQUFjLGtFQUFpQixnQkFBZSxDQUFVIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvaWNvbnMvY2lyY2xlLWFsZXJ0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzEyJywgeDI6ICcxMicsIHkxOiAnOCcsIHkyOiAnMTInLCBrZXk6ICcxcGtldWgnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTInLCB4MjogJzEyLjAxJywgeTE6ICcxNicsIHkyOiAnMTYnLCBrZXk6ICc0ZGZxOTAnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIENpcmNsZUFsZXJ0XG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThZMmx5WTJ4bElHTjRQU0l4TWlJZ1kzazlJakV5SWlCeVBTSXhNQ0lnTHo0S0lDQThiR2x1WlNCNE1UMGlNVElpSUhneVBTSXhNaUlnZVRFOUlqZ2lJSGt5UFNJeE1pSWdMejRLSUNBOGJHbHVaU0I0TVQwaU1USWlJSGd5UFNJeE1pNHdNU0lnZVRFOUlqRTJJaUI1TWowaU1UWWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jaXJjbGUtYWxlcnRcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBDaXJjbGVBbGVydCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0NpcmNsZUFsZXJ0JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IENpcmNsZUFsZXJ0O1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js": +/*!***********************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/clock.js ***! + \***********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Clock)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"12 6 12 12 16 14\",\n key: \"68esgv\"\n }\n ]\n];\nconst Clock = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Clock\", __iconNode);\n //# sourceMappingURL=clock.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2xvY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQU0sR0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLFVBQVk7UUFBQTtZQUFFLFFBQVEsQ0FBb0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzVEO0FBYU0sWUFBUSxrRUFBaUIsVUFBUyxDQUFVIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvaWNvbnMvY2xvY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICcxMiA2IDEyIDEyIDE2IDE0Jywga2V5OiAnNjhlc2d2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG9ja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0c5c2VXeHBibVVnY0c5cGJuUnpQU0l4TWlBMklERXlJREV5SURFMklERTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9ja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsb2NrID0gY3JlYXRlTHVjaWRlSWNvbignQ2xvY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2s7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/external-link.js": +/*!*******************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/external-link.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ ExternalLink)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M15 3h6v6\",\n key: \"1q9fwt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 14 21 3\",\n key: \"gplh6r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\",\n key: \"a6xqqp\"\n }\n ]\n];\nconst ExternalLink = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ExternalLink\", __iconNode);\n //# sourceMappingURL=external-link.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZXh0ZXJuYWwtbGluay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTREO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUMzRjtBQWFNLG1CQUFlLGtFQUFpQixpQkFBZ0IsQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL2V4dGVybmFsLWxpbmsudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM2g2djYnLCBrZXk6ICcxcTlmd3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTQgMjEgMycsIGtleTogJ2dwbGg2cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2Jywga2V5OiAnYTZ4cXFwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBFeHRlcm5hbExpbmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNMmcyZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTBJREl4SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERXpkalpoTWlBeUlEQWdNQ0F4TFRJZ01rZzFZVElnTWlBd0lEQWdNUzB5TFRKV09HRXlJRElnTUNBd0lERWdNaTB5YURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2V4dGVybmFsLWxpbmtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBFeHRlcm5hbExpbmsgPSBjcmVhdGVMdWNpZGVJY29uKCdFeHRlcm5hbExpbmsnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRXh0ZXJuYWxMaW5rO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/external-link.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/globe.js": +/*!***********************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/globe.js ***! + \***********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Globe)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20\",\n key: \"13o1zl\"\n }\n ],\n [\n \"path\",\n {\n d: \"M2 12h20\",\n key: \"9i4pu4\"\n }\n ]\n];\nconst Globe = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Globe\", __iconNode);\n //# sourceMappingURL=globe.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZ2xvYmUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQU0sR0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBbUQ7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2hGO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUMzQztBQWFNLFlBQVEsa0VBQWlCLFVBQVMsQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL2dsb2JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydjaXJjbGUnLCB7IGN4OiAnMTInLCBjeTogJzEyJywgcjogJzEwJywga2V5OiAnMW1nbGF5JyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTEyIDJhMTQuNSAxNC41IDAgMCAwIDAgMjAgMTQuNSAxNC41IDAgMCAwIDAtMjAnLCBrZXk6ICcxM28xemwnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMiAxMmgyMCcsIGtleTogJzlpNHB1NCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgR2xvYmVcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOFkybHlZMnhsSUdONFBTSXhNaUlnWTNrOUlqRXlJaUJ5UFNJeE1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1USWdNbUV4TkM0MUlERTBMalVnTUNBd0lEQWdNQ0F5TUNBeE5DNDFJREUwTGpVZ01DQXdJREFnTUMweU1DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1pQXhNbWd5TUNJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2dsb2JlXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgR2xvYmUgPSBjcmVhdGVMdWNpZGVJY29uKCdHbG9iZScsIF9faWNvbk5vZGUpO1xuXG5leHBvcnQgZGVmYXVsdCBHbG9iZTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/globe.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/layout-grid.js": +/*!*****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/layout-grid.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ LayoutGrid)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"1g98yp\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"14\",\n y: \"3\",\n rx: \"1\",\n key: \"6d4xhi\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"14\",\n y: \"14\",\n rx: \"1\",\n key: \"nxv5o0\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"3\",\n y: \"14\",\n rx: \"1\",\n key: \"1bb6yr\"\n }\n ]\n];\nconst LayoutGrid = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"LayoutGrid\", __iconNode);\n //# sourceMappingURL=layout-grid.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbGF5b3V0LWdyaWQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUU7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQUssQ0FBUTtZQUFLLENBQUc7WUFBTSxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdFO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFLLENBQVE7WUFBSyxDQUFHO1lBQU0sR0FBRyxDQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDL0U7QUFhTSxpQkFBYSxrRUFBaUIsZUFBYyxDQUFVIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvaWNvbnMvbGF5b3V0LWdyaWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICczJywgcng6ICcxJywga2V5OiAnMWc5OHlwJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3JywgeDogJzE0JywgeTogJzMnLCByeDogJzEnLCBrZXk6ICc2ZDR4aGknIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMTQnLCB5OiAnMTQnLCByeDogJzEnLCBrZXk6ICdueHY1bzAnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICcxNCcsIHJ4OiAnMScsIGtleTogJzFiYjZ5cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGF5b3V0R3JpZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSTNJaUI0UFNJeklpQjVQU0l6SWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJM0lpQjRQU0l4TkNJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJamNpSUdobGFXZG9kRDBpTnlJZ2VEMGlNVFFpSUhrOUlqRTBJaUJ5ZUQwaU1TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0kzSWlCNFBTSXpJaUI1UFNJeE5DSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xheW91dC1ncmlkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGF5b3V0R3JpZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0xheW91dEdyaWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGF5b3V0R3JpZDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/layout-grid.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/list.js": +/*!**********************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/list.js ***! + \**********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ List)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M3 12h.01\",\n key: \"nlz23k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 18h.01\",\n key: \"1tta3j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 6h.01\",\n key: \"1rqtza\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h13\",\n key: \"1za7za\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h13\",\n key: \"1lx6n3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6h13\",\n key: \"ik3vkj\"\n }\n ]\n];\nconst List = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"List\", __iconNode);\n //# sourceMappingURL=list.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbGlzdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzFDO0FBYU0sV0FBTyxrRUFBaUIsU0FBUSxDQUFVIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvaWNvbnMvbGlzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyaC4wMScsIGtleTogJ25sejIzaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE4aC4wMScsIGtleTogJzF0dGEzaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDZoLjAxJywga2V5OiAnMXJxdHphJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoMTMnLCBrZXk6ICcxemE3emEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOGgxMycsIGtleTogJzFseDZuMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDZoMTMnLCBrZXk6ICdpazN2a2onIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNbWd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UaG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURab0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV5YURFeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTRhREV6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURab01UTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGlzdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0xpc3QnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/list.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/plus.js": +/*!**********************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/plus.js ***! + \**********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Plus)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M5 12h14\",\n key: \"1ays0h\"\n }\n ],\n [\n \"path\",\n {\n d: \"M12 5v14\",\n key: \"s699le\"\n }\n ]\n];\nconst Plus = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Plus\", __iconNode);\n //# sourceMappingURL=plus.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcGx1cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDM0M7QUFhTSxXQUFPLGtFQUFpQixTQUFRLENBQVUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9pY29ucy9wbHVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcmVhdGVMdWNpZGVJY29uIGZyb20gJy4uL2NyZWF0ZUx1Y2lkZUljb24nO1xuaW1wb3J0IHsgSWNvbk5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBfX2ljb25Ob2RlOiBJY29uTm9kZSA9IFtcbiAgWydwYXRoJywgeyBkOiAnTTUgMTJoMTQnLCBrZXk6ICcxYXlzMGgnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTIgNXYxNCcsIGtleTogJ3M2OTlsZScgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgUGx1c1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTlNBeE1tZ3hOQ0lnTHo0S0lDQThjR0YwYUNCa1BTSk5NVElnTlhZeE5DSWdMejRLUEM5emRtYytDZz09KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9wbHVzXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUGx1cyA9IGNyZWF0ZUx1Y2lkZUljb24oJ1BsdXMnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgUGx1cztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/plus.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js": +/*!****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/refresh-cw.js ***! + \****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ RefreshCw)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\",\n key: \"v9h5vc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3v5h-5\",\n key: \"1q7to0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\",\n key: \"3uifl3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16H3v5\",\n key: \"1cv678\"\n }\n ]\n];\nconst RefreshCw = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"RefreshCw\", __iconNode);\n //# sourceMappingURL=refresh-cw.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcmVmcmVzaC1jdy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFzRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbkY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF1RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDcEY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzVDO0FBYU0sZ0JBQVksa0VBQWlCLGNBQWEsQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL3JlZnJlc2gtY3cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCcsIGtleTogJ3Y5aDV2YycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAzdjVoLTUnLCBrZXk6ICcxcTd0bzAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJhOSA5IDAgMCAxLTkgOSA5Ljc1IDkuNzUgMCAwIDEtNi43NC0yLjc0TDMgMTYnLCBrZXk6ICczdWlmbDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNkgzdjUnLCBrZXk6ICcxY3Y2NzgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlZnJlc2hDd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1tRTVJRGtnTUNBd0lERWdPUzA1SURrdU56VWdPUzQzTlNBd0lEQWdNU0EyTGpjMElESXVOelJNTWpFZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNM1kxYUMwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhNbUU1SURrZ01DQXdJREV0T1NBNUlEa3VOelVnT1M0M05TQXdJREFnTVMwMkxqYzBMVEl1TnpSTU15QXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TmtnemRqVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWZyZXNoLWN3XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVmcmVzaEN3ID0gY3JlYXRlTHVjaWRlSWNvbignUmVmcmVzaEN3JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlZnJlc2hDdztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/server.js": +/*!************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/server.js ***! + \************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Server)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"rect\",\n {\n width: \"20\",\n height: \"8\",\n x: \"2\",\n y: \"2\",\n rx: \"2\",\n ry: \"2\",\n key: \"ngkwjq\"\n }\n ],\n [\n \"rect\",\n {\n width: \"20\",\n height: \"8\",\n x: \"2\",\n y: \"14\",\n rx: \"2\",\n ry: \"2\",\n key: \"iecqi9\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6.01\",\n y1: \"6\",\n y2: \"6\",\n key: \"16zg32\"\n }\n ],\n [\n \"line\",\n {\n x1: \"6\",\n x2: \"6.01\",\n y1: \"18\",\n y2: \"18\",\n key: \"nzw8ys\"\n }\n ]\n];\nconst Server = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Server\", __iconNode);\n //# sourceMappingURL=server.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvc2VydmVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdPLE1BQU0sVUFBdUI7SUFDbEM7UUFBQyxNQUFRO1FBQUE7WUFBRSxLQUFPLE9BQU07WUFBQSxPQUFRLElBQUs7WUFBQSxHQUFHLENBQUs7WUFBQSxHQUFHO1lBQUssQ0FBSSxPQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsSUFBSztRQUFBLENBQVU7S0FBQTtJQUN0RjtRQUFDLE1BQVE7UUFBQTtZQUFFLEtBQU8sT0FBTTtZQUFBLE9BQVEsSUFBSztZQUFBLEdBQUcsQ0FBSztZQUFBLEdBQUc7WUFBTSxDQUFJLE9BQUs7WUFBQSxHQUFJLElBQUs7WUFBQSxJQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3ZGO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFLO1lBQUEsSUFBSSxDQUFRO1lBQUEsR0FBSSxJQUFLO1lBQUEsR0FBSSxJQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUNqRTtRQUFDO1FBQVEsQ0FBRTtZQUFBLElBQUksQ0FBSztZQUFBLElBQUksQ0FBUTtZQUFBLEdBQUksS0FBTTtZQUFBLEdBQUksS0FBTTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDckU7QUFhTSxhQUFTLGtFQUFpQixXQUFVLENBQVUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9pY29ucy9zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnMjAnLCBoZWlnaHQ6ICc4JywgeDogJzInLCB5OiAnMicsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJ25na3dqcScgfV0sXG4gIFsncmVjdCcsIHsgd2lkdGg6ICcyMCcsIGhlaWdodDogJzgnLCB4OiAnMicsIHk6ICcxNCcsIHJ4OiAnMicsIHJ5OiAnMicsIGtleTogJ2llY3FpOScgfV0sXG4gIFsnbGluZScsIHsgeDE6ICc2JywgeDI6ICc2LjAxJywgeTE6ICc2JywgeTI6ICc2Jywga2V5OiAnMTZ6ZzMyJyB9XSxcbiAgWydsaW5lJywgeyB4MTogJzYnLCB4MjogJzYuMDEnLCB5MTogJzE4JywgeTI6ICcxOCcsIGtleTogJ256dzh5cycgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgU2VydmVyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjbVZqZENCM2FXUjBhRDBpTWpBaUlHaGxhV2RvZEQwaU9DSWdlRDBpTWlJZ2VUMGlNaUlnY25nOUlqSWlJSEo1UFNJeUlpQXZQZ29nSUR4eVpXTjBJSGRwWkhSb1BTSXlNQ0lnYUdWcFoyaDBQU0k0SWlCNFBTSXlJaUI1UFNJeE5DSWdjbmc5SWpJaUlISjVQU0l5SWlBdlBnb2dJRHhzYVc1bElIZ3hQU0kySWlCNE1qMGlOaTR3TVNJZ2VURTlJallpSUhreVBTSTJJaUF2UGdvZ0lEeHNhVzVsSUhneFBTSTJJaUI0TWowaU5pNHdNU0lnZVRFOUlqRTRJaUI1TWowaU1UZ2lJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9zZXJ2ZXJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBTZXJ2ZXIgPSBjcmVhdGVMdWNpZGVJY29uKCdTZXJ2ZXInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgU2VydmVyO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/server.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash-2.js": +/*!*************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/trash-2.js ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Trash2)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M3 6h18\",\n key: \"d0wm0j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6\",\n key: \"4alrt4\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2\",\n key: \"v07s0e\"\n }\n ],\n [\n \"line\",\n {\n x1: \"10\",\n x2: \"10\",\n y1: \"11\",\n y2: \"17\",\n key: \"1uufr5\"\n }\n ],\n [\n \"line\",\n {\n x1: \"14\",\n x2: \"14\",\n y1: \"11\",\n y2: \"17\",\n key: \"xtxkd\"\n }\n ]\n];\nconst Trash2 = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Trash2\", __iconNode);\n //# sourceMappingURL=trash-2.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdHJhc2gtMi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFXO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN4QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBeUM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3RFO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFzQztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbkU7UUFBQztRQUFRLENBQUU7WUFBQSxJQUFJLENBQU07WUFBQSxJQUFJLENBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxHQUFJLEtBQU07WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ2xFO1FBQUM7UUFBUSxDQUFFO1lBQUEsSUFBSSxDQUFNO1lBQUEsSUFBSSxDQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsR0FBSSxLQUFNO1lBQUEsS0FBSztRQUFBLENBQVM7S0FBQTtDQUNuRTtBQWFNLGFBQVMsa0VBQWlCLFdBQVUsQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL3RyYXNoLTIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyA2aDE4Jywga2V5OiAnZDB3bTBqJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTE5IDZ2MTRjMCAxLTEgMi0yIDJIN2MtMSAwLTItMS0yLTJWNicsIGtleTogJzRhbHJ0NCcgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDZWNGMwLTEgMS0yIDItMmg0YzEgMCAyIDEgMiAydjInLCBrZXk6ICd2MDdzMGUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTAnLCB4MjogJzEwJywgeTE6ICcxMScsIHkyOiAnMTcnLCBrZXk6ICcxdXVmcjUnIH1dLFxuICBbJ2xpbmUnLCB7IHgxOiAnMTQnLCB4MjogJzE0JywgeTE6ICcxMScsIHkyOiAnMTcnLCBrZXk6ICd4dHhrZCcgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgVHJhc2gyXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjR0YwYUNCa1BTSk5NeUEyYURFNElpQXZQZ29nSUR4d1lYUm9JR1E5SWsweE9TQTJkakUwWXpBZ01TMHhJREl0TWlBeVNEZGpMVEVnTUMweUxURXRNaTB5VmpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRnZ05sWTBZekF0TVNBeExUSWdNaTB5YURSak1TQXdJRElnTVNBeUlESjJNaUlnTHo0S0lDQThiR2x1WlNCNE1UMGlNVEFpSUhneVBTSXhNQ0lnZVRFOUlqRXhJaUI1TWowaU1UY2lJQzgrQ2lBZ1BHeHBibVVnZURFOUlqRTBJaUI0TWowaU1UUWlJSGt4UFNJeE1TSWdlVEk5SWpFM0lpQXZQZ284TDNOMlp6NEspIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyYXNoLTJcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBUcmFzaDIgPSBjcmVhdGVMdWNpZGVJY29uKCdUcmFzaDInLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJhc2gyO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash-2.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trending-up.js": +/*!*****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/trending-up.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ TrendingUp)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"polyline\",\n {\n points: \"22 7 13.5 15.5 8.5 10.5 2 17\",\n key: \"126l90\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"16 7 22 7 22 13\",\n key: \"kwv8wd\"\n }\n ]\n];\nconst TrendingUp = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"TrendingUp\", __iconNode);\n //# sourceMappingURL=trending-up.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvdHJlbmRpbmctdXAuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLFVBQVk7UUFBQTtZQUFFLFFBQVEsQ0FBZ0M7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3RFO1FBQUMsVUFBWTtRQUFBO1lBQUUsUUFBUSxDQUFtQjtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDM0Q7QUFhTSxpQkFBYSxrRUFBaUIsZUFBYyxDQUFVIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvaWNvbnMvdHJlbmRpbmctdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICcyMiA3IDEzLjUgMTUuNSA4LjUgMTAuNSAyIDE3Jywga2V5OiAnMTI2bDkwJyB9XSxcbiAgWydwb2x5bGluZScsIHsgcG9pbnRzOiAnMTYgNyAyMiA3IDIyIDEzJywga2V5OiAna3d2OHdkJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBUcmVuZGluZ1VwXG4gKiBAZGVzY3JpcHRpb24gTHVjaWRlIFNWRyBpY29uIGNvbXBvbmVudCwgcmVuZGVycyBTVkcgRWxlbWVudCB3aXRoIGNoaWxkcmVuLlxuICpcbiAqIEBwcmV2aWV3ICFbaW1nXShkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUFnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ29nSUhkcFpIUm9QU0l5TkNJS0lDQm9aV2xuYUhROUlqSTBJZ29nSUhacFpYZENiM2c5SWpBZ01DQXlOQ0F5TkNJS0lDQm1hV3hzUFNKdWIyNWxJZ29nSUhOMGNtOXJaVDBpSXpBd01DSWdjM1I1YkdVOUltSmhZMnRuY205MWJtUXRZMjlzYjNJNklDTm1abVk3SUdKdmNtUmxjaTF5WVdScGRYTTZJREp3ZUNJS0lDQnpkSEp2YTJVdGQybGtkR2c5SWpJaUNpQWdjM1J5YjJ0bExXeHBibVZqWVhBOUluSnZkVzVrSWdvZ0lITjBjbTlyWlMxc2FXNWxhbTlwYmowaWNtOTFibVFpQ2o0S0lDQThjRzlzZVd4cGJtVWdjRzlwYm5SelBTSXlNaUEzSURFekxqVWdNVFV1TlNBNExqVWdNVEF1TlNBeUlERTNJaUF2UGdvZ0lEeHdiMng1YkdsdVpTQndiMmx1ZEhNOUlqRTJJRGNnTWpJZ055QXlNaUF4TXlJZ0x6NEtQQzl6ZG1jK0NnPT0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL3RyZW5kaW5nLXVwXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgVHJlbmRpbmdVcCA9IGNyZWF0ZUx1Y2lkZUljb24oJ1RyZW5kaW5nVXAnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgVHJlbmRpbmdVcDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trending-up.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js": +/*!****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/shared/src/utils.js ***! + \****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mergeClasses: () => (/* binding */ mergeClasses),\n/* harmony export */ toKebabCase: () => (/* binding */ toKebabCase)\n/* harmony export */ });\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ const toKebabCase = (string)=>string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst mergeClasses = function() {\n for(var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++){\n classes[_key] = arguments[_key];\n }\n return classes.filter((className, index, array)=>{\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n }).join(\" \").trim();\n};\n //# sourceMappingURL=utils.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vc2hhcmVkL3NyYy91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0lBUWEsb0JBQWMsQ0FBQyxNQUMxQixVQUFPLFFBQVEsb0JBQXNCLFNBQU8sRUFBRSxXQUFZO0FBK0IvQyxtQkFBZSxJQUEyQzs7UUFBQSxPQUNyRTs7V0FBQSxRQUNHLE9BQU8sQ0FBQyxXQUFXLE9BQU8sS0FBVTtRQUVqQyxlQUFRLFNBQVMsRUFDaEIsWUFBcUIsWUFBVyxDQUNqQyxXQUFNLE9BQVEsRUFBUyxTQUFNO0lBRWpDLENBQUMsQ0FDQSxNQUFLLENBQUcsSUFDUixDQUFLIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NoYXJlZC9zcmMvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FtZWxUb1Bhc2NhbCB9IGZyb20gJy4vdXRpbGl0eS10eXBlcyc7XG5cbi8qKlxuICogQ29udmVydHMgc3RyaW5nIHRvIGtlYmFiIGNhc2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIGtlYmFiaXplZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHRvS2ViYWJDYXNlID0gKHN0cmluZzogc3RyaW5nKSA9PlxuICBzdHJpbmcucmVwbGFjZSgvKFthLXowLTldKShbQS1aXSkvZywgJyQxLSQyJykudG9Mb3dlckNhc2UoKTtcblxuLyoqXG4gKiBDb252ZXJ0cyBzdHJpbmcgdG8gY2FtZWwgY2FzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgY2FtZWxpemVkIHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgdG9DYW1lbENhc2UgPSA8VCBleHRlbmRzIHN0cmluZz4oc3RyaW5nOiBUKSA9PlxuICBzdHJpbmcucmVwbGFjZSgvXihbQS1aXSl8W1xccy1fXSsoXFx3KS9nLCAobWF0Y2gsIHAxLCBwMikgPT5cbiAgICBwMiA/IHAyLnRvVXBwZXJDYXNlKCkgOiBwMS50b0xvd2VyQ2FzZSgpLFxuICApO1xuXG4vKipcbiAqIENvbnZlcnRzIHN0cmluZyB0byBwYXNjYWwgY2FzZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgcGFzY2FsaXplZCBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IHRvUGFzY2FsQ2FzZSA9IDxUIGV4dGVuZHMgc3RyaW5nPihzdHJpbmc6IFQpOiBDYW1lbFRvUGFzY2FsPFQ+ID0+IHtcbiAgY29uc3QgY2FtZWxDYXNlID0gdG9DYW1lbENhc2Uoc3RyaW5nKTtcblxuICByZXR1cm4gKGNhbWVsQ2FzZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNhbWVsQ2FzZS5zbGljZSgxKSkgYXMgQ2FtZWxUb1Bhc2NhbDxUPjtcbn07XG5cbi8qKlxuICogTWVyZ2VzIGNsYXNzZXMgaW50byBhIHNpbmdsZSBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge2FycmF5fSBjbGFzc2VzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHN0cmluZyBvZiBjbGFzc2VzXG4gKi9cbmV4cG9ydCBjb25zdCBtZXJnZUNsYXNzZXMgPSA8Q2xhc3NUeXBlID0gc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4oLi4uY2xhc3NlczogQ2xhc3NUeXBlW10pID0+XG4gIGNsYXNzZXNcbiAgICAuZmlsdGVyKChjbGFzc05hbWUsIGluZGV4LCBhcnJheSkgPT4ge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgQm9vbGVhbihjbGFzc05hbWUpICYmXG4gICAgICAgIChjbGFzc05hbWUgYXMgc3RyaW5nKS50cmltKCkgIT09ICcnICYmXG4gICAgICAgIGFycmF5LmluZGV4T2YoY2xhc3NOYW1lKSA9PT0gaW5kZXhcbiAgICAgICk7XG4gICAgfSlcbiAgICAuam9pbignICcpXG4gICAgLnRyaW0oKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/shared/src/utils.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AsyncMotionValueAnimation: () => (/* binding */ AsyncMotionValueAnimation)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./JSAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keyframes/KeyframesResolver.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var _NativeAnimationExtended_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./NativeAnimationExtended.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs\");\n/* harmony import */ var _utils_can_animate_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/can-animate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs\");\n/* harmony import */ var _utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/make-animation-instant.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n/* harmony import */ var _waapi_supports_waapi_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./waapi/supports/waapi.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Maximum time allowed between an animation being created and it being\n * resolved for us to use the latter as the start time.\n *\n * This is to ensure that while we prefer to \"start\" an animation as soon\n * as it's triggered, we also want to avoid a visual jump if there's a big delay\n * between these two moments.\n */\nconst MAX_RESOLVE_DELAY = 40;\nclass AsyncMotionValueAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", keyframes, name, motionValue, element, ...options }) {\n super();\n /**\n * Bound to support return animation.stop pattern\n */\n this.stop = () => {\n if (this._animation) {\n this._animation.stop();\n this.stopTimeline?.();\n }\n this.keyframeResolver?.cancel();\n };\n this.createdAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now();\n const optionsWithDefaults = {\n autoplay,\n delay,\n type,\n repeat,\n repeatDelay,\n repeatType,\n name,\n motionValue,\n element,\n ...options,\n };\n const KeyframeResolver$1 = element?.KeyframeResolver || _keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__.KeyframeResolver;\n this.keyframeResolver = new KeyframeResolver$1(keyframes, (resolvedKeyframes, finalKeyframe, forced) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe, optionsWithDefaults, !forced), name, motionValue, element);\n this.keyframeResolver?.scheduleResolve();\n }\n onKeyframesResolved(keyframes, finalKeyframe, options, sync) {\n this.keyframeResolver = undefined;\n const { name, type, velocity, delay, isHandoff, onUpdate } = options;\n this.resolvedAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now();\n /**\n * If we can't animate this value with the resolved keyframes\n * then we should complete it immediately.\n */\n if (!(0,_utils_can_animate_mjs__WEBPACK_IMPORTED_MODULE_3__.canAnimate)(keyframes, name, type, velocity)) {\n if (motion_utils__WEBPACK_IMPORTED_MODULE_4__.MotionGlobalConfig.instantAnimations || !delay) {\n onUpdate?.((0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_5__.getFinalKeyframe)(keyframes, options, finalKeyframe));\n }\n keyframes[0] = keyframes[keyframes.length - 1];\n (0,_utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_6__.makeAnimationInstant)(options);\n options.repeat = 0;\n }\n /**\n * Resolve startTime for the animation.\n *\n * This method uses the createdAt and resolvedAt to calculate the\n * animation startTime. *Ideally*, we would use the createdAt time as t=0\n * as the following frame would then be the first frame of the animation in\n * progress, which would feel snappier.\n *\n * However, if there's a delay (main thread work) between the creation of\n * the animation and the first committed frame, we prefer to use resolvedAt\n * to avoid a sudden jump into the animation.\n */\n const startTime = sync\n ? !this.resolvedAt\n ? this.createdAt\n : this.resolvedAt - this.createdAt > MAX_RESOLVE_DELAY\n ? this.resolvedAt\n : this.createdAt\n : undefined;\n const resolvedOptions = {\n startTime,\n finalKeyframe,\n ...options,\n keyframes,\n };\n /**\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n */\n const useWaapi = !isHandoff && (0,_waapi_supports_waapi_mjs__WEBPACK_IMPORTED_MODULE_7__.supportsBrowserAnimation)(resolvedOptions);\n const element = resolvedOptions.motionValue?.owner?.current;\n const animation = useWaapi\n ? new _NativeAnimationExtended_mjs__WEBPACK_IMPORTED_MODULE_8__.NativeAnimationExtended({\n ...resolvedOptions,\n element,\n })\n : new _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__.JSAnimation(resolvedOptions);\n animation.finished.then(() => {\n this.notifyFinished();\n }).catch(motion_utils__WEBPACK_IMPORTED_MODULE_10__.noop);\n if (this.pendingTimeline) {\n this.stopTimeline = animation.attachTimeline(this.pendingTimeline);\n this.pendingTimeline = undefined;\n }\n this._animation = animation;\n }\n get finished() {\n if (!this._animation) {\n return this._finished;\n }\n else {\n return this.animation.finished;\n }\n }\n then(onResolve, _onReject) {\n return this.finished.finally(onResolve).then(() => { });\n }\n get animation() {\n if (!this._animation) {\n this.keyframeResolver?.resume();\n (0,_keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__.flushKeyframeResolvers)();\n }\n return this._animation;\n }\n get duration() {\n return this.animation.duration;\n }\n get iterationDuration() {\n return this.animation.iterationDuration;\n }\n get time() {\n return this.animation.time;\n }\n set time(newTime) {\n this.animation.time = newTime;\n }\n get speed() {\n return this.animation.speed;\n }\n get state() {\n return this.animation.state;\n }\n set speed(newSpeed) {\n this.animation.speed = newSpeed;\n }\n get startTime() {\n return this.animation.startTime;\n }\n attachTimeline(timeline) {\n if (this._animation) {\n this.stopTimeline = this.animation.attachTimeline(timeline);\n }\n else {\n this.pendingTimeline = timeline;\n }\n return () => this.stop();\n }\n play() {\n this.animation.play();\n }\n pause() {\n this.animation.pause();\n }\n complete() {\n this.animation.complete();\n }\n cancel() {\n if (this._animation) {\n this.animation.cancel();\n }\n this.keyframeResolver?.cancel();\n }\n}\n\n\n//# sourceMappingURL=AsyncMotionValueAnimation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL0FzeW5jTW90aW9uVmFsdWVBbmltYXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUF3RDtBQUNOO0FBQ0Y7QUFDYTtBQUNnQztBQUNyQjtBQUNuQjtBQUNxQjtBQUNwQjtBQUNnQjs7QUFFdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLCtEQUFXO0FBQ25ELGtCQUFrQixxSkFBcUo7QUFDdks7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QiwwREFBSTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRUFBZ0UsOEVBQWdCO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbURBQW1EO0FBQ25FLDBCQUEwQiwwREFBSTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsa0VBQVU7QUFDdkIsZ0JBQWdCLDREQUFrQjtBQUNsQywyQkFBMkIsMEVBQWdCO0FBQzNDO0FBQ0E7QUFDQSxZQUFZLHVGQUFvQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLG1GQUF3QjtBQUMvRDtBQUNBO0FBQ0Esa0JBQWtCLGlGQUF1QjtBQUN6QztBQUNBO0FBQ0EsYUFBYTtBQUNiLGtCQUFrQix5REFBVztBQUM3QjtBQUNBO0FBQ0EsU0FBUyxRQUFRLCtDQUFJO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RDtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksd0ZBQXNCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVxQztBQUNyQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL0FzeW5jTW90aW9uVmFsdWVBbmltYXRpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdGlvbkdsb2JhbENvbmZpZywgbm9vcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyB0aW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL3N5bmMtdGltZS5tanMnO1xuaW1wb3J0IHsgSlNBbmltYXRpb24gfSBmcm9tICcuL0pTQW5pbWF0aW9uLm1qcyc7XG5pbXBvcnQgeyBnZXRGaW5hbEtleWZyYW1lIH0gZnJvbSAnLi9rZXlmcmFtZXMvZ2V0LWZpbmFsLm1qcyc7XG5pbXBvcnQgeyBLZXlmcmFtZVJlc29sdmVyLCBmbHVzaEtleWZyYW1lUmVzb2x2ZXJzIH0gZnJvbSAnLi9rZXlmcmFtZXMvS2V5ZnJhbWVzUmVzb2x2ZXIubWpzJztcbmltcG9ydCB7IE5hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkIH0gZnJvbSAnLi9OYXRpdmVBbmltYXRpb25FeHRlbmRlZC5tanMnO1xuaW1wb3J0IHsgY2FuQW5pbWF0ZSB9IGZyb20gJy4vdXRpbHMvY2FuLWFuaW1hdGUubWpzJztcbmltcG9ydCB7IG1ha2VBbmltYXRpb25JbnN0YW50IH0gZnJvbSAnLi91dGlscy9tYWtlLWFuaW1hdGlvbi1pbnN0YW50Lm1qcyc7XG5pbXBvcnQgeyBXaXRoUHJvbWlzZSB9IGZyb20gJy4vdXRpbHMvV2l0aFByb21pc2UubWpzJztcbmltcG9ydCB7IHN1cHBvcnRzQnJvd3NlckFuaW1hdGlvbiB9IGZyb20gJy4vd2FhcGkvc3VwcG9ydHMvd2FhcGkubWpzJztcblxuLyoqXG4gKiBNYXhpbXVtIHRpbWUgYWxsb3dlZCBiZXR3ZWVuIGFuIGFuaW1hdGlvbiBiZWluZyBjcmVhdGVkIGFuZCBpdCBiZWluZ1xuICogcmVzb2x2ZWQgZm9yIHVzIHRvIHVzZSB0aGUgbGF0dGVyIGFzIHRoZSBzdGFydCB0aW1lLlxuICpcbiAqIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgd2hpbGUgd2UgcHJlZmVyIHRvIFwic3RhcnRcIiBhbiBhbmltYXRpb24gYXMgc29vblxuICogYXMgaXQncyB0cmlnZ2VyZWQsIHdlIGFsc28gd2FudCB0byBhdm9pZCBhIHZpc3VhbCBqdW1wIGlmIHRoZXJlJ3MgYSBiaWcgZGVsYXlcbiAqIGJldHdlZW4gdGhlc2UgdHdvIG1vbWVudHMuXG4gKi9cbmNvbnN0IE1BWF9SRVNPTFZFX0RFTEFZID0gNDA7XG5jbGFzcyBBc3luY01vdGlvblZhbHVlQW5pbWF0aW9uIGV4dGVuZHMgV2l0aFByb21pc2Uge1xuICAgIGNvbnN0cnVjdG9yKHsgYXV0b3BsYXkgPSB0cnVlLCBkZWxheSA9IDAsIHR5cGUgPSBcImtleWZyYW1lc1wiLCByZXBlYXQgPSAwLCByZXBlYXREZWxheSA9IDAsIHJlcGVhdFR5cGUgPSBcImxvb3BcIiwga2V5ZnJhbWVzLCBuYW1lLCBtb3Rpb25WYWx1ZSwgZWxlbWVudCwgLi4ub3B0aW9ucyB9KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCb3VuZCB0byBzdXBwb3J0IHJldHVybiBhbmltYXRpb24uc3RvcCBwYXR0ZXJuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnN0b3AgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLnN0b3AoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BUaW1lbGluZT8uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmtleWZyYW1lUmVzb2x2ZXI/LmNhbmNlbCgpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNyZWF0ZWRBdCA9IHRpbWUubm93KCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNXaXRoRGVmYXVsdHMgPSB7XG4gICAgICAgICAgICBhdXRvcGxheSxcbiAgICAgICAgICAgIGRlbGF5LFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIHJlcGVhdCxcbiAgICAgICAgICAgIHJlcGVhdERlbGF5LFxuICAgICAgICAgICAgcmVwZWF0VHlwZSxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBtb3Rpb25WYWx1ZSxcbiAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBLZXlmcmFtZVJlc29sdmVyJDEgPSBlbGVtZW50Py5LZXlmcmFtZVJlc29sdmVyIHx8IEtleWZyYW1lUmVzb2x2ZXI7XG4gICAgICAgIHRoaXMua2V5ZnJhbWVSZXNvbHZlciA9IG5ldyBLZXlmcmFtZVJlc29sdmVyJDEoa2V5ZnJhbWVzLCAocmVzb2x2ZWRLZXlmcmFtZXMsIGZpbmFsS2V5ZnJhbWUsIGZvcmNlZCkgPT4gdGhpcy5vbktleWZyYW1lc1Jlc29sdmVkKHJlc29sdmVkS2V5ZnJhbWVzLCBmaW5hbEtleWZyYW1lLCBvcHRpb25zV2l0aERlZmF1bHRzLCAhZm9yY2VkKSwgbmFtZSwgbW90aW9uVmFsdWUsIGVsZW1lbnQpO1xuICAgICAgICB0aGlzLmtleWZyYW1lUmVzb2x2ZXI/LnNjaGVkdWxlUmVzb2x2ZSgpO1xuICAgIH1cbiAgICBvbktleWZyYW1lc1Jlc29sdmVkKGtleWZyYW1lcywgZmluYWxLZXlmcmFtZSwgb3B0aW9ucywgc3luYykge1xuICAgICAgICB0aGlzLmtleWZyYW1lUmVzb2x2ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgdHlwZSwgdmVsb2NpdHksIGRlbGF5LCBpc0hhbmRvZmYsIG9uVXBkYXRlIH0gPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnJlc29sdmVkQXQgPSB0aW1lLm5vdygpO1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgd2UgY2FuJ3QgYW5pbWF0ZSB0aGlzIHZhbHVlIHdpdGggdGhlIHJlc29sdmVkIGtleWZyYW1lc1xuICAgICAgICAgKiB0aGVuIHdlIHNob3VsZCBjb21wbGV0ZSBpdCBpbW1lZGlhdGVseS5cbiAgICAgICAgICovXG4gICAgICAgIGlmICghY2FuQW5pbWF0ZShrZXlmcmFtZXMsIG5hbWUsIHR5cGUsIHZlbG9jaXR5KSkge1xuICAgICAgICAgICAgaWYgKE1vdGlvbkdsb2JhbENvbmZpZy5pbnN0YW50QW5pbWF0aW9ucyB8fCAhZGVsYXkpIHtcbiAgICAgICAgICAgICAgICBvblVwZGF0ZT8uKGdldEZpbmFsS2V5ZnJhbWUoa2V5ZnJhbWVzLCBvcHRpb25zLCBmaW5hbEtleWZyYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBrZXlmcmFtZXNbMF0gPSBrZXlmcmFtZXNba2V5ZnJhbWVzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgbWFrZUFuaW1hdGlvbkluc3RhbnQob3B0aW9ucyk7XG4gICAgICAgICAgICBvcHRpb25zLnJlcGVhdCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJlc29sdmUgc3RhcnRUaW1lIGZvciB0aGUgYW5pbWF0aW9uLlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGlzIG1ldGhvZCB1c2VzIHRoZSBjcmVhdGVkQXQgYW5kIHJlc29sdmVkQXQgdG8gY2FsY3VsYXRlIHRoZVxuICAgICAgICAgKiBhbmltYXRpb24gc3RhcnRUaW1lLiAqSWRlYWxseSosIHdlIHdvdWxkIHVzZSB0aGUgY3JlYXRlZEF0IHRpbWUgYXMgdD0wXG4gICAgICAgICAqIGFzIHRoZSBmb2xsb3dpbmcgZnJhbWUgd291bGQgdGhlbiBiZSB0aGUgZmlyc3QgZnJhbWUgb2YgdGhlIGFuaW1hdGlvbiBpblxuICAgICAgICAgKiBwcm9ncmVzcywgd2hpY2ggd291bGQgZmVlbCBzbmFwcGllci5cbiAgICAgICAgICpcbiAgICAgICAgICogSG93ZXZlciwgaWYgdGhlcmUncyBhIGRlbGF5IChtYWluIHRocmVhZCB3b3JrKSBiZXR3ZWVuIHRoZSBjcmVhdGlvbiBvZlxuICAgICAgICAgKiB0aGUgYW5pbWF0aW9uIGFuZCB0aGUgZmlyc3QgY29tbWl0dGVkIGZyYW1lLCB3ZSBwcmVmZXIgdG8gdXNlIHJlc29sdmVkQXRcbiAgICAgICAgICogdG8gYXZvaWQgYSBzdWRkZW4ganVtcCBpbnRvIHRoZSBhbmltYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBzeW5jXG4gICAgICAgICAgICA/ICF0aGlzLnJlc29sdmVkQXRcbiAgICAgICAgICAgICAgICA/IHRoaXMuY3JlYXRlZEF0XG4gICAgICAgICAgICAgICAgOiB0aGlzLnJlc29sdmVkQXQgLSB0aGlzLmNyZWF0ZWRBdCA+IE1BWF9SRVNPTFZFX0RFTEFZXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5yZXNvbHZlZEF0XG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5jcmVhdGVkQXRcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCByZXNvbHZlZE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICBmaW5hbEtleWZyYW1lLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIGtleWZyYW1lcyxcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFuaW1hdGUgdmlhIFdBQVBJIGlmIHBvc3NpYmxlLiBJZiB0aGlzIGlzIGEgaGFuZG9mZiBhbmltYXRpb24sIHRoZSBvcHRpbWlzZWQgYW5pbWF0aW9uIHdpbGwgYmUgcnVubmluZyB2aWFcbiAgICAgICAgICogV0FBUEkuIFRoZXJlZm9yZSwgdGhpcyBhbmltYXRpb24gbXVzdCBiZSBKUyB0byBlbnN1cmUgaXQgcnVucyBcInVuZGVyXCIgdGhlXG4gICAgICAgICAqIG9wdGltaXNlZCBhbmltYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCB1c2VXYWFwaSA9ICFpc0hhbmRvZmYgJiYgc3VwcG9ydHNCcm93c2VyQW5pbWF0aW9uKHJlc29sdmVkT3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSByZXNvbHZlZE9wdGlvbnMubW90aW9uVmFsdWU/Lm93bmVyPy5jdXJyZW50O1xuICAgICAgICBjb25zdCBhbmltYXRpb24gPSB1c2VXYWFwaVxuICAgICAgICAgICAgPyBuZXcgTmF0aXZlQW5pbWF0aW9uRXh0ZW5kZWQoe1xuICAgICAgICAgICAgICAgIC4uLnJlc29sdmVkT3B0aW9ucyxcbiAgICAgICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogbmV3IEpTQW5pbWF0aW9uKHJlc29sdmVkT3B0aW9ucyk7XG4gICAgICAgIGFuaW1hdGlvbi5maW5pc2hlZC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5RmluaXNoZWQoKTtcbiAgICAgICAgfSkuY2F0Y2gobm9vcCk7XG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdUaW1lbGluZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9wVGltZWxpbmUgPSBhbmltYXRpb24uYXR0YWNoVGltZWxpbmUodGhpcy5wZW5kaW5nVGltZWxpbmUpO1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nVGltZWxpbmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYW5pbWF0aW9uID0gYW5pbWF0aW9uO1xuICAgIH1cbiAgICBnZXQgZmluaXNoZWQoKSB7XG4gICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmluaXNoZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24uZmluaXNoZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhlbihvblJlc29sdmUsIF9vblJlamVjdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5pc2hlZC5maW5hbGx5KG9uUmVzb2x2ZSkudGhlbigoKSA9PiB7IH0pO1xuICAgIH1cbiAgICBnZXQgYW5pbWF0aW9uKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5rZXlmcmFtZVJlc29sdmVyPy5yZXN1bWUoKTtcbiAgICAgICAgICAgIGZsdXNoS2V5ZnJhbWVSZXNvbHZlcnMoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uO1xuICAgIH1cbiAgICBnZXQgZHVyYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbi5kdXJhdGlvbjtcbiAgICB9XG4gICAgZ2V0IGl0ZXJhdGlvbkR1cmF0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb247XG4gICAgfVxuICAgIGdldCB0aW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24udGltZTtcbiAgICB9XG4gICAgc2V0IHRpbWUobmV3VGltZSkge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbi50aW1lID0gbmV3VGltZTtcbiAgICB9XG4gICAgZ2V0IHNwZWVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24uc3BlZWQ7XG4gICAgfVxuICAgIGdldCBzdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLnN0YXRlO1xuICAgIH1cbiAgICBzZXQgc3BlZWQobmV3U3BlZWQpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24uc3BlZWQgPSBuZXdTcGVlZDtcbiAgICB9XG4gICAgZ2V0IHN0YXJ0VGltZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLnN0YXJ0VGltZTtcbiAgICB9XG4gICAgYXR0YWNoVGltZWxpbmUodGltZWxpbmUpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdG9wVGltZWxpbmUgPSB0aGlzLmFuaW1hdGlvbi5hdHRhY2hUaW1lbGluZSh0aW1lbGluZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdUaW1lbGluZSA9IHRpbWVsaW5lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoKSA9PiB0aGlzLnN0b3AoKTtcbiAgICB9XG4gICAgcGxheSgpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24ucGxheSgpO1xuICAgIH1cbiAgICBwYXVzZSgpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24ucGF1c2UoKTtcbiAgICB9XG4gICAgY29tcGxldGUoKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLmNvbXBsZXRlKCk7XG4gICAgfVxuICAgIGNhbmNlbCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uY2FuY2VsKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5rZXlmcmFtZVJlc29sdmVyPy5jYW5jZWwoKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IEFzeW5jTW90aW9uVmFsdWVBbmltYXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFzeW5jTW90aW9uVmFsdWVBbmltYXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ JSAnimation: () => (/* binding */ JSAnimation),\n/* harmony export */ animateValue: () => (/* binding */ animateValue)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../stats/animation-count.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var _utils_mix_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/mix/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\");\n/* harmony import */ var _drivers_frame_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./drivers/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs\");\n/* harmony import */ var _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./generators/inertia.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\");\n/* harmony import */ var _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./generators/keyframes.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\");\n/* harmony import */ var _generators_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./generators/utils/calc-duration.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/replace-transition-type.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\nconst percentToProgress = (percent) => percent / 100;\nclass JSAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\n constructor(options) {\n super();\n this.state = \"idle\";\n this.startTime = null;\n this.isStopped = false;\n /**\n * The current time of the animation.\n */\n this.currentTime = 0;\n /**\n * The time at which the animation was paused.\n */\n this.holdTime = null;\n /**\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\n */\n this.playbackSpeed = 1;\n /**\n * This method is bound to the instance to fix a pattern where\n * animation.stop is returned as a reference from a useEffect.\n */\n this.stop = () => {\n const { motionValue } = this.options;\n if (motionValue && motionValue.updatedAt !== _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now()) {\n this.tick(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\n }\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.teardown();\n this.options.onStop?.();\n };\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.mainThread++;\n this.options = options;\n this.initAnimation();\n this.play();\n if (options.autoplay === false)\n this.pause();\n }\n initAnimation() {\n const { options } = this;\n (0,_utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_3__.replaceTransitionType)(options);\n const { type = _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes, repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = options;\n let { keyframes: keyframes$1 } = options;\n const generatorFactory = type || _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes;\n if ( true &&\n generatorFactory !== _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.invariant)(keyframes$1.length <= 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`, \"spring-two-frames\");\n }\n if (generatorFactory !== _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n this.mixKeyframes = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.pipe)(percentToProgress, (0,_utils_mix_index_mjs__WEBPACK_IMPORTED_MODULE_7__.mix)(keyframes$1[0], keyframes$1[1]));\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...options, keyframes: keyframes$1 });\n /**\n * If we have a mirror repeat type we need to create a second generator that outputs the\n * mirrored (not reversed) animation and later ping pong between the two generators.\n */\n if (repeatType === \"mirror\") {\n this.mirroredGenerator = generatorFactory({\n ...options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -velocity,\n });\n }\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null) {\n generator.calculatedDuration = (0,_generators_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_8__.calcGeneratorDuration)(generator);\n }\n const { calculatedDuration } = generator;\n this.calculatedDuration = calculatedDuration;\n this.resolvedDuration = calculatedDuration + repeatDelay;\n this.totalDuration = this.resolvedDuration * (repeat + 1) - repeatDelay;\n this.generator = generator;\n }\n updateTime(timestamp) {\n const animationTime = Math.round(timestamp - this.startTime) * this.playbackSpeed;\n // Update currentTime\n if (this.holdTime !== null) {\n this.currentTime = this.holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n this.currentTime = animationTime;\n }\n }\n tick(timestamp, sample = false) {\n const { generator, totalDuration, mixKeyframes, mirroredGenerator, resolvedDuration, calculatedDuration, } = this;\n if (this.startTime === null)\n return generator.next(0);\n const { delay = 0, keyframes, repeat, repeatType, repeatDelay, type, onUpdate, finalKeyframe, } = this.options;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (this.speed > 0) {\n this.startTime = Math.min(this.startTime, timestamp);\n }\n else if (this.speed < 0) {\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n }\n if (sample) {\n this.currentTime = timestamp;\n }\n else {\n this.updateTime(timestamp);\n }\n // Rebase on delay\n const timeWithoutDelay = this.currentTime - delay * (this.playbackSpeed >= 0 ? 1 : -1);\n const isInDelayPhase = this.playbackSpeed >= 0\n ? timeWithoutDelay < 0\n : timeWithoutDelay > totalDuration;\n this.currentTime = Math.max(timeWithoutDelay, 0);\n // If this animation has finished, set the current time to the total duration.\n if (this.state === \"finished\" && this.holdTime === null) {\n this.currentTime = totalDuration;\n }\n let elapsed = this.currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = (0,motion_utils__WEBPACK_IMPORTED_MODULE_9__.clamp)(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes[0] }\n : frameGenerator.next(elapsed);\n if (mixKeyframes) {\n state.value = mixKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done =\n this.playbackSpeed >= 0\n ? this.currentTime >= totalDuration\n : this.currentTime <= 0;\n }\n const isAnimationFinished = this.holdTime === null &&\n (this.state === \"finished\" || (this.state === \"running\" && done));\n // TODO: The exception for inertia could be cleaner here\n if (isAnimationFinished && type !== _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_10__.inertia) {\n state.value = (0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_11__.getFinalKeyframe)(keyframes, this.options, finalKeyframe, this.speed);\n }\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n this.finish();\n }\n return state;\n }\n /**\n * Allows the returned animation to be awaited or promise-chained. Currently\n * resolves when the animation finishes at all but in a future update could/should\n * reject if its cancels.\n */\n then(resolve, reject) {\n return this.finished.then(resolve, reject);\n }\n get duration() {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.calculatedDuration);\n }\n get iterationDuration() {\n const { delay = 0 } = this.options || {};\n return this.duration + (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(delay);\n }\n get time() {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.currentTime);\n }\n set time(newTime) {\n newTime = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.secondsToMilliseconds)(newTime);\n this.currentTime = newTime;\n if (this.startTime === null ||\n this.holdTime !== null ||\n this.playbackSpeed === 0) {\n this.holdTime = newTime;\n }\n else if (this.driver) {\n this.startTime = this.driver.now() - newTime / this.playbackSpeed;\n }\n this.driver?.start(false);\n }\n get speed() {\n return this.playbackSpeed;\n }\n set speed(newSpeed) {\n this.updateTime(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\n const hasChanged = this.playbackSpeed !== newSpeed;\n this.playbackSpeed = newSpeed;\n if (hasChanged) {\n this.time = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.currentTime);\n }\n }\n play() {\n if (this.isStopped)\n return;\n const { driver = _drivers_frame_mjs__WEBPACK_IMPORTED_MODULE_13__.frameloopDriver, startTime } = this.options;\n if (!this.driver) {\n this.driver = driver((timestamp) => this.tick(timestamp));\n }\n this.options.onPlay?.();\n const now = this.driver.now();\n if (this.state === \"finished\") {\n this.updateFinished();\n this.startTime = now;\n }\n else if (this.holdTime !== null) {\n this.startTime = now - this.holdTime;\n }\n else if (!this.startTime) {\n this.startTime = startTime ?? now;\n }\n if (this.state === \"finished\" && this.speed < 0) {\n this.startTime += this.calculatedDuration;\n }\n this.holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n this.state = \"running\";\n this.driver.start();\n }\n pause() {\n this.state = \"paused\";\n this.updateTime(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\n this.holdTime = this.currentTime;\n }\n complete() {\n if (this.state !== \"running\") {\n this.play();\n }\n this.state = \"finished\";\n this.holdTime = null;\n }\n finish() {\n this.notifyFinished();\n this.teardown();\n this.state = \"finished\";\n this.options.onComplete?.();\n }\n cancel() {\n this.holdTime = null;\n this.startTime = 0;\n this.tick(0);\n this.teardown();\n this.options.onCancel?.();\n }\n teardown() {\n this.state = \"idle\";\n this.stopDriver();\n this.startTime = this.holdTime = null;\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.mainThread--;\n }\n stopDriver() {\n if (!this.driver)\n return;\n this.driver.stop();\n this.driver = undefined;\n }\n sample(sampleTime) {\n this.startTime = 0;\n return this.tick(sampleTime, true);\n }\n attachTimeline(timeline) {\n if (this.options.allowFlatten) {\n this.options.type = \"keyframes\";\n this.options.ease = \"linear\";\n this.initAnimation();\n }\n this.driver?.stop();\n return timeline.observe(this);\n }\n}\n// Legacy function support\nfunction animateValue(options) {\n return new JSAnimation(options);\n}\n\n\n//# sourceMappingURL=JSAnimation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL0pTQW5pbWF0aW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQW9HO0FBQ2xEO0FBQ2M7QUFDbkI7QUFDUztBQUNIO0FBQ0k7QUFDc0I7QUFDaEI7QUFDZTtBQUN0Qjs7QUFFdEQ7QUFDQSwwQkFBMEIsK0RBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsY0FBYztBQUNsQyx5REFBeUQsMERBQUk7QUFDN0QsMEJBQTBCLDBEQUFJO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx3RUFBZ0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsVUFBVTtBQUMxQixRQUFRLHlGQUFxQjtBQUM3QixnQkFBZ0IsT0FBTyxnRUFBUywyREFBMkQ7QUFDM0YsY0FBYyx5QkFBeUI7QUFDdkMseUNBQXlDLGdFQUFTO0FBQ2xELFlBQVksS0FBcUM7QUFDakQsaUNBQWlDLGdFQUFTO0FBQzFDLFlBQVksdURBQVMsMEhBQTBILFlBQVk7QUFDM0o7QUFDQSxpQ0FBaUMsZ0VBQVM7QUFDMUM7QUFDQSxnQ0FBZ0Msa0RBQUksb0JBQW9CLHlEQUFHO0FBQzNEO0FBQ0E7QUFDQSw2Q0FBNkMsb0NBQW9DO0FBQ2pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQywwRkFBcUI7QUFDaEU7QUFDQSxnQkFBZ0IscUJBQXFCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1HQUFtRztBQUNuSDtBQUNBO0FBQ0EsZ0JBQWdCLHdGQUF3RjtBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG1EQUFLO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxPQUFPO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0Qyw2REFBTztBQUNuRCwwQkFBMEIsMkVBQWdCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsb0VBQXFCO0FBQ3BDO0FBQ0E7QUFDQSxnQkFBZ0IsWUFBWTtBQUM1QiwrQkFBK0Isb0VBQXFCO0FBQ3BEO0FBQ0E7QUFDQSxlQUFlLG9FQUFxQjtBQUNwQztBQUNBO0FBQ0Esa0JBQWtCLG9FQUFxQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMERBQUk7QUFDNUI7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLG9FQUFxQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFNBQVMsZ0VBQWUsY0FBYztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiwwREFBSTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx3RUFBZ0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXFDO0FBQ3JDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vSlNBbmltYXRpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludmFyaWFudCwgcGlwZSwgY2xhbXAsIG1pbGxpc2Vjb25kc1RvU2Vjb25kcywgc2Vjb25kc1RvTWlsbGlzZWNvbmRzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi9mcmFtZWxvb3Avc3luYy10aW1lLm1qcyc7XG5pbXBvcnQgeyBhY3RpdmVBbmltYXRpb25zIH0gZnJvbSAnLi4vc3RhdHMvYW5pbWF0aW9uLWNvdW50Lm1qcyc7XG5pbXBvcnQgeyBtaXggfSBmcm9tICcuLi91dGlscy9taXgvaW5kZXgubWpzJztcbmltcG9ydCB7IGZyYW1lbG9vcERyaXZlciB9IGZyb20gJy4vZHJpdmVycy9mcmFtZS5tanMnO1xuaW1wb3J0IHsgaW5lcnRpYSB9IGZyb20gJy4vZ2VuZXJhdG9ycy9pbmVydGlhLm1qcyc7XG5pbXBvcnQgeyBrZXlmcmFtZXMgfSBmcm9tICcuL2dlbmVyYXRvcnMva2V5ZnJhbWVzLm1qcyc7XG5pbXBvcnQgeyBjYWxjR2VuZXJhdG9yRHVyYXRpb24gfSBmcm9tICcuL2dlbmVyYXRvcnMvdXRpbHMvY2FsYy1kdXJhdGlvbi5tanMnO1xuaW1wb3J0IHsgZ2V0RmluYWxLZXlmcmFtZSB9IGZyb20gJy4va2V5ZnJhbWVzL2dldC1maW5hbC5tanMnO1xuaW1wb3J0IHsgcmVwbGFjZVRyYW5zaXRpb25UeXBlIH0gZnJvbSAnLi91dGlscy9yZXBsYWNlLXRyYW5zaXRpb24tdHlwZS5tanMnO1xuaW1wb3J0IHsgV2l0aFByb21pc2UgfSBmcm9tICcuL3V0aWxzL1dpdGhQcm9taXNlLm1qcyc7XG5cbmNvbnN0IHBlcmNlbnRUb1Byb2dyZXNzID0gKHBlcmNlbnQpID0+IHBlcmNlbnQgLyAxMDA7XG5jbGFzcyBKU0FuaW1hdGlvbiBleHRlbmRzIFdpdGhQcm9taXNlIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBcImlkbGVcIjtcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBudWxsO1xuICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGN1cnJlbnQgdGltZSBvZiB0aGUgYW5pbWF0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IDA7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgYW5pbWF0aW9uIHdhcyBwYXVzZWQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmhvbGRUaW1lID0gbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBsYXliYWNrIHNwZWVkIGFzIGEgZmFjdG9yLiAwIHdvdWxkIGJlIHN0b3BwZWQsIC0xIHJldmVyc2UgYW5kIDIgZG91YmxlIHNwZWVkLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5wbGF5YmFja1NwZWVkID0gMTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIGJvdW5kIHRvIHRoZSBpbnN0YW5jZSB0byBmaXggYSBwYXR0ZXJuIHdoZXJlXG4gICAgICAgICAqIGFuaW1hdGlvbi5zdG9wIGlzIHJldHVybmVkIGFzIGEgcmVmZXJlbmNlIGZyb20gYSB1c2VFZmZlY3QuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnN0b3AgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IG1vdGlvblZhbHVlIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAobW90aW9uVmFsdWUgJiYgbW90aW9uVmFsdWUudXBkYXRlZEF0ICE9PSB0aW1lLm5vdygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aWNrKHRpbWUubm93KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pc1N0b3BwZWQgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwiaWRsZVwiKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMudGVhcmRvd24oKTtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vblN0b3A/LigpO1xuICAgICAgICB9O1xuICAgICAgICBhY3RpdmVBbmltYXRpb25zLm1haW5UaHJlYWQrKztcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5pbml0QW5pbWF0aW9uKCk7XG4gICAgICAgIHRoaXMucGxheSgpO1xuICAgICAgICBpZiAob3B0aW9ucy5hdXRvcGxheSA9PT0gZmFsc2UpXG4gICAgICAgICAgICB0aGlzLnBhdXNlKCk7XG4gICAgfVxuICAgIGluaXRBbmltYXRpb24oKSB7XG4gICAgICAgIGNvbnN0IHsgb3B0aW9ucyB9ID0gdGhpcztcbiAgICAgICAgcmVwbGFjZVRyYW5zaXRpb25UeXBlKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCB7IHR5cGUgPSBrZXlmcmFtZXMsIHJlcGVhdCA9IDAsIHJlcGVhdERlbGF5ID0gMCwgcmVwZWF0VHlwZSwgdmVsb2NpdHkgPSAwLCB9ID0gb3B0aW9ucztcbiAgICAgICAgbGV0IHsga2V5ZnJhbWVzOiBrZXlmcmFtZXMkMSB9ID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgZ2VuZXJhdG9yRmFjdG9yeSA9IHR5cGUgfHwga2V5ZnJhbWVzO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmXG4gICAgICAgICAgICBnZW5lcmF0b3JGYWN0b3J5ICE9PSBrZXlmcmFtZXMpIHtcbiAgICAgICAgICAgIGludmFyaWFudChrZXlmcmFtZXMkMS5sZW5ndGggPD0gMiwgYE9ubHkgdHdvIGtleWZyYW1lcyBjdXJyZW50bHkgc3VwcG9ydGVkIHdpdGggc3ByaW5nIGFuZCBpbmVydGlhIGFuaW1hdGlvbnMuIFRyeWluZyB0byBhbmltYXRlICR7a2V5ZnJhbWVzJDF9YCwgXCJzcHJpbmctdHdvLWZyYW1lc1wiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZ2VuZXJhdG9yRmFjdG9yeSAhPT0ga2V5ZnJhbWVzICYmXG4gICAgICAgICAgICB0eXBlb2Yga2V5ZnJhbWVzJDFbMF0gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHRoaXMubWl4S2V5ZnJhbWVzID0gcGlwZShwZXJjZW50VG9Qcm9ncmVzcywgbWl4KGtleWZyYW1lcyQxWzBdLCBrZXlmcmFtZXMkMVsxXSkpO1xuICAgICAgICAgICAga2V5ZnJhbWVzJDEgPSBbMCwgMTAwXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBnZW5lcmF0b3IgPSBnZW5lcmF0b3JGYWN0b3J5KHsgLi4ub3B0aW9ucywga2V5ZnJhbWVzOiBrZXlmcmFtZXMkMSB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHdlIGhhdmUgYSBtaXJyb3IgcmVwZWF0IHR5cGUgd2UgbmVlZCB0byBjcmVhdGUgYSBzZWNvbmQgZ2VuZXJhdG9yIHRoYXQgb3V0cHV0cyB0aGVcbiAgICAgICAgICogbWlycm9yZWQgKG5vdCByZXZlcnNlZCkgYW5pbWF0aW9uIGFuZCBsYXRlciBwaW5nIHBvbmcgYmV0d2VlbiB0aGUgdHdvIGdlbmVyYXRvcnMuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocmVwZWF0VHlwZSA9PT0gXCJtaXJyb3JcIikge1xuICAgICAgICAgICAgdGhpcy5taXJyb3JlZEdlbmVyYXRvciA9IGdlbmVyYXRvckZhY3Rvcnkoe1xuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAga2V5ZnJhbWVzOiBbLi4ua2V5ZnJhbWVzJDFdLnJldmVyc2UoKSxcbiAgICAgICAgICAgICAgICB2ZWxvY2l0eTogLXZlbG9jaXR5LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIGR1cmF0aW9uIGlzIHVuZGVmaW5lZCBhbmQgd2UgaGF2ZSByZXBlYXQgb3B0aW9ucyxcbiAgICAgICAgICogd2UgbmVlZCB0byBjYWxjdWxhdGUgYSBkdXJhdGlvbiBmcm9tIHRoZSBnZW5lcmF0b3IuXG4gICAgICAgICAqXG4gICAgICAgICAqIFdlIHNldCBpdCB0byB0aGUgZ2VuZXJhdG9yIGl0c2VsZiB0byBjYWNoZSB0aGUgZHVyYXRpb24uXG4gICAgICAgICAqIEFueSB0aW1lbGluZSByZXNvbHZlciB3aWxsIG5lZWQgdG8gaGF2ZSBhbHJlYWR5IHByZWNhbGN1bGF0ZWRcbiAgICAgICAgICogdGhlIGR1cmF0aW9uIGJ5IHRoaXMgc3RlcC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChnZW5lcmF0b3IuY2FsY3VsYXRlZER1cmF0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICBnZW5lcmF0b3IuY2FsY3VsYXRlZER1cmF0aW9uID0gY2FsY0dlbmVyYXRvckR1cmF0aW9uKGdlbmVyYXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjYWxjdWxhdGVkRHVyYXRpb24gfSA9IGdlbmVyYXRvcjtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVkRHVyYXRpb24gPSBjYWxjdWxhdGVkRHVyYXRpb247XG4gICAgICAgIHRoaXMucmVzb2x2ZWREdXJhdGlvbiA9IGNhbGN1bGF0ZWREdXJhdGlvbiArIHJlcGVhdERlbGF5O1xuICAgICAgICB0aGlzLnRvdGFsRHVyYXRpb24gPSB0aGlzLnJlc29sdmVkRHVyYXRpb24gKiAocmVwZWF0ICsgMSkgLSByZXBlYXREZWxheTtcbiAgICAgICAgdGhpcy5nZW5lcmF0b3IgPSBnZW5lcmF0b3I7XG4gICAgfVxuICAgIHVwZGF0ZVRpbWUodGltZXN0YW1wKSB7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvblRpbWUgPSBNYXRoLnJvdW5kKHRpbWVzdGFtcCAtIHRoaXMuc3RhcnRUaW1lKSAqIHRoaXMucGxheWJhY2tTcGVlZDtcbiAgICAgICAgLy8gVXBkYXRlIGN1cnJlbnRUaW1lXG4gICAgICAgIGlmICh0aGlzLmhvbGRUaW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5ob2xkVGltZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIFJvdW5kaW5nIHRoZSB0aW1lIGJlY2F1c2UgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBpcyBub3QgYWx3YXlzIGFjY3VyYXRlLCBlLmcuIDMwMDAuMzY3IC0gMTAwMC4zNjcgPVxuICAgICAgICAgICAgLy8gMjAwMC4wMDAwMDAwMDAwMDAyLiBUaGlzIGlzIGEgcHJvYmxlbSB3aGVuIHdlIGFyZSBjb21wYXJpbmcgdGhlIGN1cnJlbnRUaW1lIHdpdGggdGhlIGR1cmF0aW9uLCBmb3JcbiAgICAgICAgICAgIC8vIGV4YW1wbGUuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gYW5pbWF0aW9uVGltZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aWNrKHRpbWVzdGFtcCwgc2FtcGxlID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgeyBnZW5lcmF0b3IsIHRvdGFsRHVyYXRpb24sIG1peEtleWZyYW1lcywgbWlycm9yZWRHZW5lcmF0b3IsIHJlc29sdmVkRHVyYXRpb24sIGNhbGN1bGF0ZWREdXJhdGlvbiwgfSA9IHRoaXM7XG4gICAgICAgIGlmICh0aGlzLnN0YXJ0VGltZSA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubmV4dCgwKTtcbiAgICAgICAgY29uc3QgeyBkZWxheSA9IDAsIGtleWZyYW1lcywgcmVwZWF0LCByZXBlYXRUeXBlLCByZXBlYXREZWxheSwgdHlwZSwgb25VcGRhdGUsIGZpbmFsS2V5ZnJhbWUsIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdGltZXN0YW1wcyBjYW4gY29tZSB0aHJvdWdoIGFzIGxvd2VyIHRoYW5cbiAgICAgICAgICogdGhlIHN0YXJ0VGltZSBhcyBzZXQgYnkgcGVyZm9ybWFuY2Uubm93KCkuIEhlcmUgd2UgcHJldmVudCB0aGlzLFxuICAgICAgICAgKiB0aG91Z2ggaW4gdGhlIGZ1dHVyZSBpdCBjb3VsZCBiZSBwb3NzaWJsZSB0byBtYWtlIHNldHRpbmcgc3RhcnRUaW1lXG4gICAgICAgICAqIGEgcGVuZGluZyBvcGVyYXRpb24gdGhhdCBnZXRzIHJlc29sdmVkIGhlcmUuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5zcGVlZCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gTWF0aC5taW4odGhpcy5zdGFydFRpbWUsIHRpbWVzdGFtcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5zcGVlZCA8IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gTWF0aC5taW4odGltZXN0YW1wIC0gdG90YWxEdXJhdGlvbiAvIHRoaXMuc3BlZWQsIHRoaXMuc3RhcnRUaW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2FtcGxlKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGltZXN0YW1wO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lKHRpbWVzdGFtcCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmViYXNlIG9uIGRlbGF5XG4gICAgICAgIGNvbnN0IHRpbWVXaXRob3V0RGVsYXkgPSB0aGlzLmN1cnJlbnRUaW1lIC0gZGVsYXkgKiAodGhpcy5wbGF5YmFja1NwZWVkID49IDAgPyAxIDogLTEpO1xuICAgICAgICBjb25zdCBpc0luRGVsYXlQaGFzZSA9IHRoaXMucGxheWJhY2tTcGVlZCA+PSAwXG4gICAgICAgICAgICA/IHRpbWVXaXRob3V0RGVsYXkgPCAwXG4gICAgICAgICAgICA6IHRpbWVXaXRob3V0RGVsYXkgPiB0b3RhbER1cmF0aW9uO1xuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gTWF0aC5tYXgodGltZVdpdGhvdXREZWxheSwgMCk7XG4gICAgICAgIC8vIElmIHRoaXMgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCwgc2V0IHRoZSBjdXJyZW50IHRpbWUgIHRvIHRoZSB0b3RhbCBkdXJhdGlvbi5cbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwiZmluaXNoZWRcIiAmJiB0aGlzLmhvbGRUaW1lID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdG90YWxEdXJhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZWxhcHNlZCA9IHRoaXMuY3VycmVudFRpbWU7XG4gICAgICAgIGxldCBmcmFtZUdlbmVyYXRvciA9IGdlbmVyYXRvcjtcbiAgICAgICAgaWYgKHJlcGVhdCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBHZXQgdGhlIGN1cnJlbnQgcHJvZ3Jlc3MgKDAtMSkgb2YgdGhlIGFuaW1hdGlvbi4gSWYgdCBpcyA+XG4gICAgICAgICAgICAgKiB0aGFuIGR1cmF0aW9uIHdlJ2xsIGdldCB2YWx1ZXMgbGlrZSAyLjUgKG1pZHdheSB0aHJvdWdoIHRoZVxuICAgICAgICAgICAgICogdGhpcmQgaXRlcmF0aW9uKVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBwcm9ncmVzcyA9IE1hdGgubWluKHRoaXMuY3VycmVudFRpbWUsIHRvdGFsRHVyYXRpb24pIC8gcmVzb2x2ZWREdXJhdGlvbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogR2V0IHRoZSBjdXJyZW50IGl0ZXJhdGlvbiAoMCBpbmRleGVkKS4gRm9yIGluc3RhbmNlIHRoZSBmbG9vciBvZlxuICAgICAgICAgICAgICogMi41IGlzIDIuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxldCBjdXJyZW50SXRlcmF0aW9uID0gTWF0aC5mbG9vcihwcm9ncmVzcyk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEdldCB0aGUgY3VycmVudCBwcm9ncmVzcyBvZiB0aGUgaXRlcmF0aW9uIGJ5IHRha2luZyB0aGUgcmVtYWluZGVyXG4gICAgICAgICAgICAgKiBzbyAyLjUgaXMgMC41IHRocm91Z2ggaXRlcmF0aW9uIDJcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGV0IGl0ZXJhdGlvblByb2dyZXNzID0gcHJvZ3Jlc3MgJSAxLjA7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIGl0ZXJhdGlvbiBwcm9ncmVzcyBpcyAxIHdlIGNvdW50IHRoYXQgYXMgdGhlIGVuZFxuICAgICAgICAgICAgICogb2YgdGhlIHByZXZpb3VzIGl0ZXJhdGlvbi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKCFpdGVyYXRpb25Qcm9ncmVzcyAmJiBwcm9ncmVzcyA+PSAxKSB7XG4gICAgICAgICAgICAgICAgaXRlcmF0aW9uUHJvZ3Jlc3MgPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXRlcmF0aW9uUHJvZ3Jlc3MgPT09IDEgJiYgY3VycmVudEl0ZXJhdGlvbi0tO1xuICAgICAgICAgICAgY3VycmVudEl0ZXJhdGlvbiA9IE1hdGgubWluKGN1cnJlbnRJdGVyYXRpb24sIHJlcGVhdCArIDEpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBSZXZlcnNlIHByb2dyZXNzIGlmIHdlJ3JlIG5vdCBydW5uaW5nIGluIFwibm9ybWFsXCIgZGlyZWN0aW9uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGlzT2RkSXRlcmF0aW9uID0gQm9vbGVhbihjdXJyZW50SXRlcmF0aW9uICUgMik7XG4gICAgICAgICAgICBpZiAoaXNPZGRJdGVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAocmVwZWF0VHlwZSA9PT0gXCJyZXZlcnNlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uUHJvZ3Jlc3MgPSAxIC0gaXRlcmF0aW9uUHJvZ3Jlc3M7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXBlYXREZWxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uUHJvZ3Jlc3MgLT0gcmVwZWF0RGVsYXkgLyByZXNvbHZlZER1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlcGVhdFR5cGUgPT09IFwibWlycm9yXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZnJhbWVHZW5lcmF0b3IgPSBtaXJyb3JlZEdlbmVyYXRvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbGFwc2VkID0gY2xhbXAoMCwgMSwgaXRlcmF0aW9uUHJvZ3Jlc3MpICogcmVzb2x2ZWREdXJhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgd2UncmUgaW4gbmVnYXRpdmUgdGltZSwgc2V0IHN0YXRlIGFzIHRoZSBpbml0aWFsIGtleWZyYW1lLlxuICAgICAgICAgKiBUaGlzIHByZXZlbnRzIGRlbGF5OiB4LCBkdXJhdGlvbjogMCBhbmltYXRpb25zIGZyb20gZmluaXNoaW5nXG4gICAgICAgICAqIGluc3RhbnRseS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHN0YXRlID0gaXNJbkRlbGF5UGhhc2VcbiAgICAgICAgICAgID8geyBkb25lOiBmYWxzZSwgdmFsdWU6IGtleWZyYW1lc1swXSB9XG4gICAgICAgICAgICA6IGZyYW1lR2VuZXJhdG9yLm5leHQoZWxhcHNlZCk7XG4gICAgICAgIGlmIChtaXhLZXlmcmFtZXMpIHtcbiAgICAgICAgICAgIHN0YXRlLnZhbHVlID0gbWl4S2V5ZnJhbWVzKHN0YXRlLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgeyBkb25lIH0gPSBzdGF0ZTtcbiAgICAgICAgaWYgKCFpc0luRGVsYXlQaGFzZSAmJiBjYWxjdWxhdGVkRHVyYXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGRvbmUgPVxuICAgICAgICAgICAgICAgIHRoaXMucGxheWJhY2tTcGVlZCA+PSAwXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5jdXJyZW50VGltZSA+PSB0b3RhbER1cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5jdXJyZW50VGltZSA8PSAwO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzQW5pbWF0aW9uRmluaXNoZWQgPSB0aGlzLmhvbGRUaW1lID09PSBudWxsICYmXG4gICAgICAgICAgICAodGhpcy5zdGF0ZSA9PT0gXCJmaW5pc2hlZFwiIHx8ICh0aGlzLnN0YXRlID09PSBcInJ1bm5pbmdcIiAmJiBkb25lKSk7XG4gICAgICAgIC8vIFRPRE86IFRoZSBleGNlcHRpb24gZm9yIGluZXJ0aWEgY291bGQgYmUgY2xlYW5lciBoZXJlXG4gICAgICAgIGlmIChpc0FuaW1hdGlvbkZpbmlzaGVkICYmIHR5cGUgIT09IGluZXJ0aWEpIHtcbiAgICAgICAgICAgIHN0YXRlLnZhbHVlID0gZ2V0RmluYWxLZXlmcmFtZShrZXlmcmFtZXMsIHRoaXMub3B0aW9ucywgZmluYWxLZXlmcmFtZSwgdGhpcy5zcGVlZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9uVXBkYXRlKSB7XG4gICAgICAgICAgICBvblVwZGF0ZShzdGF0ZS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQW5pbWF0aW9uRmluaXNoZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgdGhlIHJldHVybmVkIGFuaW1hdGlvbiB0byBiZSBhd2FpdGVkIG9yIHByb21pc2UtY2hhaW5lZC4gQ3VycmVudGx5XG4gICAgICogcmVzb2x2ZXMgd2hlbiB0aGUgYW5pbWF0aW9uIGZpbmlzaGVzIGF0IGFsbCBidXQgaW4gYSBmdXR1cmUgdXBkYXRlIGNvdWxkL3Nob3VsZFxuICAgICAqIHJlamVjdCBpZiBpdHMgY2FuY2Vscy5cbiAgICAgKi9cbiAgICB0aGVuKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5pc2hlZC50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgfVxuICAgIGdldCBkdXJhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyh0aGlzLmNhbGN1bGF0ZWREdXJhdGlvbik7XG4gICAgfVxuICAgIGdldCBpdGVyYXRpb25EdXJhdGlvbigpIHtcbiAgICAgICAgY29uc3QgeyBkZWxheSA9IDAgfSA9IHRoaXMub3B0aW9ucyB8fCB7fTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHVyYXRpb24gKyBtaWxsaXNlY29uZHNUb1NlY29uZHMoZGVsYXkpO1xuICAgIH1cbiAgICBnZXQgdGltZSgpIHtcbiAgICAgICAgcmV0dXJuIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyh0aGlzLmN1cnJlbnRUaW1lKTtcbiAgICB9XG4gICAgc2V0IHRpbWUobmV3VGltZSkge1xuICAgICAgICBuZXdUaW1lID0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKG5ld1RpbWUpO1xuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gbmV3VGltZTtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRUaW1lID09PSBudWxsIHx8XG4gICAgICAgICAgICB0aGlzLmhvbGRUaW1lICE9PSBudWxsIHx8XG4gICAgICAgICAgICB0aGlzLnBsYXliYWNrU3BlZWQgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuaG9sZFRpbWUgPSBuZXdUaW1lO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZHJpdmVyKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IHRoaXMuZHJpdmVyLm5vdygpIC0gbmV3VGltZSAvIHRoaXMucGxheWJhY2tTcGVlZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyaXZlcj8uc3RhcnQoZmFsc2UpO1xuICAgIH1cbiAgICBnZXQgc3BlZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXliYWNrU3BlZWQ7XG4gICAgfVxuICAgIHNldCBzcGVlZChuZXdTcGVlZCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVRpbWUodGltZS5ub3coKSk7XG4gICAgICAgIGNvbnN0IGhhc0NoYW5nZWQgPSB0aGlzLnBsYXliYWNrU3BlZWQgIT09IG5ld1NwZWVkO1xuICAgICAgICB0aGlzLnBsYXliYWNrU3BlZWQgPSBuZXdTcGVlZDtcbiAgICAgICAgaWYgKGhhc0NoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZSA9IG1pbGxpc2Vjb25kc1RvU2Vjb25kcyh0aGlzLmN1cnJlbnRUaW1lKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwbGF5KCkge1xuICAgICAgICBpZiAodGhpcy5pc1N0b3BwZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgZHJpdmVyID0gZnJhbWVsb29wRHJpdmVyLCBzdGFydFRpbWUgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKCF0aGlzLmRyaXZlcikge1xuICAgICAgICAgICAgdGhpcy5kcml2ZXIgPSBkcml2ZXIoKHRpbWVzdGFtcCkgPT4gdGhpcy50aWNrKHRpbWVzdGFtcCkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9ucy5vblBsYXk/LigpO1xuICAgICAgICBjb25zdCBub3cgPSB0aGlzLmRyaXZlci5ub3coKTtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwiZmluaXNoZWRcIikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGaW5pc2hlZCgpO1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBub3c7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5ob2xkVGltZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBub3cgLSB0aGlzLmhvbGRUaW1lO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLnN0YXJ0VGltZSkge1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBzdGFydFRpbWUgPz8gbm93O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcImZpbmlzaGVkXCIgJiYgdGhpcy5zcGVlZCA8IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lICs9IHRoaXMuY2FsY3VsYXRlZER1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9sZFRpbWUgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogU2V0IHBsYXlTdGF0ZSB0byBydW5uaW5nIG9ubHkgYWZ0ZXIgd2UndmUgdXNlZCBpdCBpblxuICAgICAgICAgKiB0aGUgcHJldmlvdXMgbG9naWMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnN0YXRlID0gXCJydW5uaW5nXCI7XG4gICAgICAgIHRoaXMuZHJpdmVyLnN0YXJ0KCk7XG4gICAgfVxuICAgIHBhdXNlKCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gXCJwYXVzZWRcIjtcbiAgICAgICAgdGhpcy51cGRhdGVUaW1lKHRpbWUubm93KCkpO1xuICAgICAgICB0aGlzLmhvbGRUaW1lID0gdGhpcy5jdXJyZW50VGltZTtcbiAgICB9XG4gICAgY29tcGxldGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlICE9PSBcInJ1bm5pbmdcIikge1xuICAgICAgICAgICAgdGhpcy5wbGF5KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IFwiZmluaXNoZWRcIjtcbiAgICAgICAgdGhpcy5ob2xkVGltZSA9IG51bGw7XG4gICAgfVxuICAgIGZpbmlzaCgpIHtcbiAgICAgICAgdGhpcy5ub3RpZnlGaW5pc2hlZCgpO1xuICAgICAgICB0aGlzLnRlYXJkb3duKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBcImZpbmlzaGVkXCI7XG4gICAgICAgIHRoaXMub3B0aW9ucy5vbkNvbXBsZXRlPy4oKTtcbiAgICB9XG4gICAgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLmhvbGRUaW1lID0gbnVsbDtcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSAwO1xuICAgICAgICB0aGlzLnRpY2soMCk7XG4gICAgICAgIHRoaXMudGVhcmRvd24oKTtcbiAgICAgICAgdGhpcy5vcHRpb25zLm9uQ2FuY2VsPy4oKTtcbiAgICB9XG4gICAgdGVhcmRvd24oKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBcImlkbGVcIjtcbiAgICAgICAgdGhpcy5zdG9wRHJpdmVyKCk7XG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gdGhpcy5ob2xkVGltZSA9IG51bGw7XG4gICAgICAgIGFjdGl2ZUFuaW1hdGlvbnMubWFpblRocmVhZC0tO1xuICAgIH1cbiAgICBzdG9wRHJpdmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuZHJpdmVyKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLmRyaXZlci5zdG9wKCk7XG4gICAgICAgIHRoaXMuZHJpdmVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBzYW1wbGUoc2FtcGxlVGltZSkge1xuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzLnRpY2soc2FtcGxlVGltZSwgdHJ1ZSk7XG4gICAgfVxuICAgIGF0dGFjaFRpbWVsaW5lKHRpbWVsaW5lKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYWxsb3dGbGF0dGVuKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMudHlwZSA9IFwia2V5ZnJhbWVzXCI7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZWFzZSA9IFwibGluZWFyXCI7XG4gICAgICAgICAgICB0aGlzLmluaXRBbmltYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyaXZlcj8uc3RvcCgpO1xuICAgICAgICByZXR1cm4gdGltZWxpbmUub2JzZXJ2ZSh0aGlzKTtcbiAgICB9XG59XG4vLyBMZWdhY3kgZnVuY3Rpb24gc3VwcG9ydFxuZnVuY3Rpb24gYW5pbWF0ZVZhbHVlKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IEpTQW5pbWF0aW9uKG9wdGlvbnMpO1xufVxuXG5leHBvcnQgeyBKU0FuaW1hdGlvbiwgYW5pbWF0ZVZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1KU0FuaW1hdGlvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NativeAnimation: () => (/* binding */ NativeAnimation)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _render_dom_style_set_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../render/dom/style-set.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs\");\n/* harmony import */ var _utils_supports_scroll_timeline_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/supports/scroll-timeline.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n/* harmony import */ var _waapi_start_waapi_animation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./waapi/start-waapi-animation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs\");\n/* harmony import */ var _waapi_utils_apply_generator_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./waapi/utils/apply-generator.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs\");\n\n\n\n\n\n\n\n\n/**\n * NativeAnimation implements AnimationPlaybackControls for the browser's Web Animations API.\n */\nclass NativeAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\n constructor(options) {\n super();\n this.finishedTime = null;\n this.isStopped = false;\n /**\n * Tracks a manually-set start time that takes precedence over WAAPI's\n * dynamic startTime. This is cleared when play() or time setter is called,\n * allowing WAAPI to take over timing.\n */\n this.manualStartTime = null;\n if (!options)\n return;\n const { element, name, keyframes, pseudoElement, allowFlatten = false, finalKeyframe, onComplete, } = options;\n this.isPseudoElement = Boolean(pseudoElement);\n this.allowFlatten = allowFlatten;\n this.options = options;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.invariant)(typeof options.type !== \"string\", `Mini animate() doesn't support \"type\" as a string.`, \"mini-spring\");\n const transition = (0,_waapi_utils_apply_generator_mjs__WEBPACK_IMPORTED_MODULE_2__.applyGeneratorOptions)(options);\n this.animation = (0,_waapi_start_waapi_animation_mjs__WEBPACK_IMPORTED_MODULE_3__.startWaapiAnimation)(element, name, keyframes, transition, pseudoElement);\n if (transition.autoplay === false) {\n this.animation.pause();\n }\n this.animation.onfinish = () => {\n this.finishedTime = this.time;\n if (!pseudoElement) {\n const keyframe = (0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_4__.getFinalKeyframe)(keyframes, this.options, finalKeyframe, this.speed);\n if (this.updateMotionValue) {\n this.updateMotionValue(keyframe);\n }\n else {\n /**\n * If we can, we want to commit the final style as set by the user,\n * rather than the computed keyframe value supplied by the animation.\n */\n (0,_render_dom_style_set_mjs__WEBPACK_IMPORTED_MODULE_5__.setStyle)(element, name, keyframe);\n }\n this.animation.cancel();\n }\n onComplete?.();\n this.notifyFinished();\n };\n }\n play() {\n if (this.isStopped)\n return;\n this.manualStartTime = null;\n this.animation.play();\n if (this.state === \"finished\") {\n this.updateFinished();\n }\n }\n pause() {\n this.animation.pause();\n }\n complete() {\n this.animation.finish?.();\n }\n cancel() {\n try {\n this.animation.cancel();\n }\n catch (e) { }\n }\n stop() {\n if (this.isStopped)\n return;\n this.isStopped = true;\n const { state } = this;\n if (state === \"idle\" || state === \"finished\") {\n return;\n }\n if (this.updateMotionValue) {\n this.updateMotionValue();\n }\n else {\n this.commitStyles();\n }\n if (!this.isPseudoElement)\n this.cancel();\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * In this method, we commit styles back to the DOM before cancelling\n * the animation.\n *\n * This is designed to be overridden by NativeAnimationExtended, which\n * will create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to also correctly calculate velocity for any subsequent animation\n * while deferring the commit until the next animation frame.\n */\n commitStyles() {\n const element = this.options?.element;\n if (!this.isPseudoElement && element?.isConnected) {\n this.animation.commitStyles?.();\n }\n }\n get duration() {\n const duration = this.animation.effect?.getComputedTiming?.().duration || 0;\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(Number(duration));\n }\n get iterationDuration() {\n const { delay = 0 } = this.options || {};\n return this.duration + (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(delay);\n }\n get time() {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(Number(this.animation.currentTime) || 0);\n }\n set time(newTime) {\n this.manualStartTime = null;\n this.finishedTime = null;\n this.animation.currentTime = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.secondsToMilliseconds)(newTime);\n }\n /**\n * The playback speed of the animation.\n * 1 = normal speed, 2 = double speed, 0.5 = half speed.\n */\n get speed() {\n return this.animation.playbackRate;\n }\n set speed(newSpeed) {\n // Allow backwards playback after finishing\n if (newSpeed < 0)\n this.finishedTime = null;\n this.animation.playbackRate = newSpeed;\n }\n get state() {\n return this.finishedTime !== null\n ? \"finished\"\n : this.animation.playState;\n }\n get startTime() {\n return this.manualStartTime ?? Number(this.animation.startTime);\n }\n set startTime(newStartTime) {\n this.manualStartTime = this.animation.startTime = newStartTime;\n }\n /**\n * Attaches a timeline to the animation, for instance the `ScrollTimeline`.\n */\n attachTimeline({ timeline, observe }) {\n if (this.allowFlatten) {\n this.animation.effect?.updateTiming({ easing: \"linear\" });\n }\n this.animation.onfinish = null;\n if (timeline && (0,_utils_supports_scroll_timeline_mjs__WEBPACK_IMPORTED_MODULE_7__.supportsScrollTimeline)()) {\n this.animation.timeline = timeline;\n return motion_utils__WEBPACK_IMPORTED_MODULE_8__.noop;\n }\n else {\n return observe(this);\n }\n }\n}\n\n\n//# sourceMappingURL=NativeAnimation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL05hdGl2ZUFuaW1hdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUE2RjtBQUN0QztBQUN3QjtBQUNsQjtBQUNQO0FBQ2tCO0FBQ0U7O0FBRTFFO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QiwrREFBVztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsNEZBQTRGO0FBQzVHO0FBQ0E7QUFDQTtBQUNBLFFBQVEsdURBQVM7QUFDakIsMkJBQTJCLHVGQUFxQjtBQUNoRCx5QkFBeUIscUZBQW1CO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQywwRUFBZ0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtRUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFFBQVE7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUVBQXFCO0FBQ3BDO0FBQ0E7QUFDQSxnQkFBZ0IsWUFBWTtBQUM1QiwrQkFBK0IsbUVBQXFCO0FBQ3BEO0FBQ0E7QUFDQSxlQUFlLG1FQUFxQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyxtRUFBcUI7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsbUJBQW1CO0FBQ3hDO0FBQ0Esa0RBQWtELGtCQUFrQjtBQUNwRTtBQUNBO0FBQ0Esd0JBQXdCLDJGQUFzQjtBQUM5QztBQUNBLG1CQUFtQiw4Q0FBSTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTJCO0FBQzNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vTmF0aXZlQW5pbWF0aW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnZhcmlhbnQsIG1pbGxpc2Vjb25kc1RvU2Vjb25kcywgc2Vjb25kc1RvTWlsbGlzZWNvbmRzLCBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IHNldFN0eWxlIH0gZnJvbSAnLi4vcmVuZGVyL2RvbS9zdHlsZS1zZXQubWpzJztcbmltcG9ydCB7IHN1cHBvcnRzU2Nyb2xsVGltZWxpbmUgfSBmcm9tICcuLi91dGlscy9zdXBwb3J0cy9zY3JvbGwtdGltZWxpbmUubWpzJztcbmltcG9ydCB7IGdldEZpbmFsS2V5ZnJhbWUgfSBmcm9tICcuL2tleWZyYW1lcy9nZXQtZmluYWwubWpzJztcbmltcG9ydCB7IFdpdGhQcm9taXNlIH0gZnJvbSAnLi91dGlscy9XaXRoUHJvbWlzZS5tanMnO1xuaW1wb3J0IHsgc3RhcnRXYWFwaUFuaW1hdGlvbiB9IGZyb20gJy4vd2FhcGkvc3RhcnQtd2FhcGktYW5pbWF0aW9uLm1qcyc7XG5pbXBvcnQgeyBhcHBseUdlbmVyYXRvck9wdGlvbnMgfSBmcm9tICcuL3dhYXBpL3V0aWxzL2FwcGx5LWdlbmVyYXRvci5tanMnO1xuXG4vKipcbiAqIE5hdGl2ZUFuaW1hdGlvbiBpbXBsZW1lbnRzIEFuaW1hdGlvblBsYXliYWNrQ29udHJvbHMgZm9yIHRoZSBicm93c2VyJ3MgV2ViIEFuaW1hdGlvbnMgQVBJLlxuICovXG5jbGFzcyBOYXRpdmVBbmltYXRpb24gZXh0ZW5kcyBXaXRoUHJvbWlzZSB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmZpbmlzaGVkVGltZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNTdG9wcGVkID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFja3MgYSBtYW51YWxseS1zZXQgc3RhcnQgdGltZSB0aGF0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBXQUFQSSdzXG4gICAgICAgICAqIGR5bmFtaWMgc3RhcnRUaW1lLiBUaGlzIGlzIGNsZWFyZWQgd2hlbiBwbGF5KCkgb3IgdGltZSBzZXR0ZXIgaXMgY2FsbGVkLFxuICAgICAgICAgKiBhbGxvd2luZyBXQUFQSSB0byB0YWtlIG92ZXIgdGltaW5nLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tYW51YWxTdGFydFRpbWUgPSBudWxsO1xuICAgICAgICBpZiAoIW9wdGlvbnMpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgZWxlbWVudCwgbmFtZSwga2V5ZnJhbWVzLCBwc2V1ZG9FbGVtZW50LCBhbGxvd0ZsYXR0ZW4gPSBmYWxzZSwgZmluYWxLZXlmcmFtZSwgb25Db21wbGV0ZSwgfSA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuaXNQc2V1ZG9FbGVtZW50ID0gQm9vbGVhbihwc2V1ZG9FbGVtZW50KTtcbiAgICAgICAgdGhpcy5hbGxvd0ZsYXR0ZW4gPSBhbGxvd0ZsYXR0ZW47XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGludmFyaWFudCh0eXBlb2Ygb3B0aW9ucy50eXBlICE9PSBcInN0cmluZ1wiLCBgTWluaSBhbmltYXRlKCkgZG9lc24ndCBzdXBwb3J0IFwidHlwZVwiIGFzIGEgc3RyaW5nLmAsIFwibWluaS1zcHJpbmdcIik7XG4gICAgICAgIGNvbnN0IHRyYW5zaXRpb24gPSBhcHBseUdlbmVyYXRvck9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uID0gc3RhcnRXYWFwaUFuaW1hdGlvbihlbGVtZW50LCBuYW1lLCBrZXlmcmFtZXMsIHRyYW5zaXRpb24sIHBzZXVkb0VsZW1lbnQpO1xuICAgICAgICBpZiAodHJhbnNpdGlvbi5hdXRvcGxheSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLnBhdXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbmltYXRpb24ub25maW5pc2ggPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaGVkVGltZSA9IHRoaXMudGltZTtcbiAgICAgICAgICAgIGlmICghcHNldWRvRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleWZyYW1lID0gZ2V0RmluYWxLZXlmcmFtZShrZXlmcmFtZXMsIHRoaXMub3B0aW9ucywgZmluYWxLZXlmcmFtZSwgdGhpcy5zcGVlZCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudXBkYXRlTW90aW9uVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVNb3Rpb25WYWx1ZShrZXlmcmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogSWYgd2UgY2FuLCB3ZSB3YW50IHRvIGNvbW1pdCB0aGUgZmluYWwgc3R5bGUgYXMgc2V0IGJ5IHRoZSB1c2VyLFxuICAgICAgICAgICAgICAgICAgICAgKiByYXRoZXIgdGhhbiB0aGUgY29tcHV0ZWQga2V5ZnJhbWUgdmFsdWUgc3VwcGxpZWQgYnkgdGhlIGFuaW1hdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIHNldFN0eWxlKGVsZW1lbnQsIG5hbWUsIGtleWZyYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uY2FuY2VsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkNvbXBsZXRlPy4oKTtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5RmluaXNoZWQoKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcGxheSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLm1hbnVhbFN0YXJ0VGltZSA9IG51bGw7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLnBsYXkoKTtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwiZmluaXNoZWRcIikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGaW5pc2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHBhdXNlKCkge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbi5wYXVzZSgpO1xuICAgIH1cbiAgICBjb21wbGV0ZSgpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24uZmluaXNoPy4oKTtcbiAgICB9XG4gICAgY2FuY2VsKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uY2FuY2VsKCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBzdG9wKCkge1xuICAgICAgICBpZiAodGhpcy5pc1N0b3BwZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgeyBzdGF0ZSB9ID0gdGhpcztcbiAgICAgICAgaWYgKHN0YXRlID09PSBcImlkbGVcIiB8fCBzdGF0ZSA9PT0gXCJmaW5pc2hlZFwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudXBkYXRlTW90aW9uVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW90aW9uVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29tbWl0U3R5bGVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlzUHNldWRvRWxlbWVudClcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdBQVBJIGRvZXNuJ3QgbmF0aXZlbHkgaGF2ZSBhbnkgaW50ZXJydXB0aW9uIGNhcGFiaWxpdGllcy5cbiAgICAgKlxuICAgICAqIEluIHRoaXMgbWV0aG9kLCB3ZSBjb21taXQgc3R5bGVzIGJhY2sgdG8gdGhlIERPTSBiZWZvcmUgY2FuY2VsbGluZ1xuICAgICAqIHRoZSBhbmltYXRpb24uXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIGRlc2lnbmVkIHRvIGJlIG92ZXJyaWRkZW4gYnkgTmF0aXZlQW5pbWF0aW9uRXh0ZW5kZWQsIHdoaWNoXG4gICAgICogd2lsbCBjcmVhdGUgYSByZW5kZXJsZXNzIEpTIGFuaW1hdGlvbiBhbmQgc2FtcGxlIGl0IHR3aWNlIHRvIGNhbGN1bGF0ZVxuICAgICAqIGl0cyBjdXJyZW50IHZhbHVlLCBcInByZXZpb3VzXCIgdmFsdWUsIGFuZCB0aGVyZWZvcmUgYWxsb3dcbiAgICAgKiBNb3Rpb24gdG8gYWxzbyBjb3JyZWN0bHkgY2FsY3VsYXRlIHZlbG9jaXR5IGZvciBhbnkgc3Vic2VxdWVudCBhbmltYXRpb25cbiAgICAgKiB3aGlsZSBkZWZlcnJpbmcgdGhlIGNvbW1pdCB1bnRpbCB0aGUgbmV4dCBhbmltYXRpb24gZnJhbWUuXG4gICAgICovXG4gICAgY29tbWl0U3R5bGVzKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5vcHRpb25zPy5lbGVtZW50O1xuICAgICAgICBpZiAoIXRoaXMuaXNQc2V1ZG9FbGVtZW50ICYmIGVsZW1lbnQ/LmlzQ29ubmVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbi5jb21taXRTdHlsZXM/LigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBkdXJhdGlvbigpIHtcbiAgICAgICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLmFuaW1hdGlvbi5lZmZlY3Q/LmdldENvbXB1dGVkVGltaW5nPy4oKS5kdXJhdGlvbiB8fCAwO1xuICAgICAgICByZXR1cm4gbWlsbGlzZWNvbmRzVG9TZWNvbmRzKE51bWJlcihkdXJhdGlvbikpO1xuICAgIH1cbiAgICBnZXQgaXRlcmF0aW9uRHVyYXRpb24oKSB7XG4gICAgICAgIGNvbnN0IHsgZGVsYXkgPSAwIH0gPSB0aGlzLm9wdGlvbnMgfHwge307XG4gICAgICAgIHJldHVybiB0aGlzLmR1cmF0aW9uICsgbWlsbGlzZWNvbmRzVG9TZWNvbmRzKGRlbGF5KTtcbiAgICB9XG4gICAgZ2V0IHRpbWUoKSB7XG4gICAgICAgIHJldHVybiBtaWxsaXNlY29uZHNUb1NlY29uZHMoTnVtYmVyKHRoaXMuYW5pbWF0aW9uLmN1cnJlbnRUaW1lKSB8fCAwKTtcbiAgICB9XG4gICAgc2V0IHRpbWUobmV3VGltZSkge1xuICAgICAgICB0aGlzLm1hbnVhbFN0YXJ0VGltZSA9IG51bGw7XG4gICAgICAgIHRoaXMuZmluaXNoZWRUaW1lID0gbnVsbDtcbiAgICAgICAgdGhpcy5hbmltYXRpb24uY3VycmVudFRpbWUgPSBzZWNvbmRzVG9NaWxsaXNlY29uZHMobmV3VGltZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZSBwbGF5YmFjayBzcGVlZCBvZiB0aGUgYW5pbWF0aW9uLlxuICAgICAqIDEgPSBub3JtYWwgc3BlZWQsIDIgPSBkb3VibGUgc3BlZWQsIDAuNSA9IGhhbGYgc3BlZWQuXG4gICAgICovXG4gICAgZ2V0IHNwZWVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24ucGxheWJhY2tSYXRlO1xuICAgIH1cbiAgICBzZXQgc3BlZWQobmV3U3BlZWQpIHtcbiAgICAgICAgLy8gQWxsb3cgYmFja3dhcmRzIHBsYXliYWNrIGFmdGVyIGZpbmlzaGluZ1xuICAgICAgICBpZiAobmV3U3BlZWQgPCAwKVxuICAgICAgICAgICAgdGhpcy5maW5pc2hlZFRpbWUgPSBudWxsO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbi5wbGF5YmFja1JhdGUgPSBuZXdTcGVlZDtcbiAgICB9XG4gICAgZ2V0IHN0YXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5pc2hlZFRpbWUgIT09IG51bGxcbiAgICAgICAgICAgID8gXCJmaW5pc2hlZFwiXG4gICAgICAgICAgICA6IHRoaXMuYW5pbWF0aW9uLnBsYXlTdGF0ZTtcbiAgICB9XG4gICAgZ2V0IHN0YXJ0VGltZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFudWFsU3RhcnRUaW1lID8/IE51bWJlcih0aGlzLmFuaW1hdGlvbi5zdGFydFRpbWUpO1xuICAgIH1cbiAgICBzZXQgc3RhcnRUaW1lKG5ld1N0YXJ0VGltZSkge1xuICAgICAgICB0aGlzLm1hbnVhbFN0YXJ0VGltZSA9IHRoaXMuYW5pbWF0aW9uLnN0YXJ0VGltZSA9IG5ld1N0YXJ0VGltZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQXR0YWNoZXMgYSB0aW1lbGluZSB0byB0aGUgYW5pbWF0aW9uLCBmb3IgaW5zdGFuY2UgdGhlIGBTY3JvbGxUaW1lbGluZWAuXG4gICAgICovXG4gICAgYXR0YWNoVGltZWxpbmUoeyB0aW1lbGluZSwgb2JzZXJ2ZSB9KSB7XG4gICAgICAgIGlmICh0aGlzLmFsbG93RmxhdHRlbikge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uZWZmZWN0Py51cGRhdGVUaW1pbmcoeyBlYXNpbmc6IFwibGluZWFyXCIgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbmltYXRpb24ub25maW5pc2ggPSBudWxsO1xuICAgICAgICBpZiAodGltZWxpbmUgJiYgc3VwcG9ydHNTY3JvbGxUaW1lbGluZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbi50aW1lbGluZSA9IHRpbWVsaW5lO1xuICAgICAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2ZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgTmF0aXZlQW5pbWF0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXRpdmVBbmltYXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NativeAnimationExtended: () => (/* binding */ NativeAnimationExtended)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./JSAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var _NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NativeAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs\");\n/* harmony import */ var _utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/replace-transition-type.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\");\n/* harmony import */ var _waapi_utils_unsupported_easing_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./waapi/utils/unsupported-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs\");\n\n\n\n\n\n\n\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\nclass NativeAnimationExtended extends _NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_0__.NativeAnimation {\n constructor(options) {\n /**\n * The base NativeAnimation function only supports a subset\n * of Motion easings, and WAAPI also only supports some\n * easing functions via string/cubic-bezier definitions.\n *\n * This function replaces those unsupported easing functions\n * with a JS easing function. This will later get compiled\n * to a linear() easing function.\n */\n (0,_waapi_utils_unsupported_easing_mjs__WEBPACK_IMPORTED_MODULE_1__.replaceStringEasing)(options);\n /**\n * Ensure we replace the transition type with a generator function\n * before passing to WAAPI.\n *\n * TODO: Does this have a better home? It could be shared with\n * JSAnimation.\n */\n (0,_utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_2__.replaceTransitionType)(options);\n super(options);\n if (options.startTime !== undefined) {\n this.startTime = options.startTime;\n }\n this.options = options;\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read committed styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n updateMotionValue(value) {\n const { motionValue, onUpdate, onComplete, element, ...options } = this.options;\n if (!motionValue)\n return;\n if (value !== undefined) {\n motionValue.set(value);\n return;\n }\n const sampleAnimation = new _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_3__.JSAnimation({\n ...options,\n autoplay: false,\n });\n /**\n * Use wall-clock elapsed time for sampling.\n * Under CPU load, WAAPI's currentTime may not reflect actual\n * elapsed time, causing incorrect sampling and visual jumps.\n */\n const sampleTime = Math.max(sampleDelta, _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_4__.time.now() - this.startTime);\n const delta = (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.clamp)(0, sampleDelta, sampleTime - sampleDelta);\n motionValue.setWithVelocity(sampleAnimation.sample(Math.max(0, sampleTime - delta)).value, sampleAnimation.sample(sampleTime).value, delta);\n sampleAnimation.stop();\n }\n}\n\n\n//# sourceMappingURL=NativeAnimationExtended.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL05hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXFDO0FBQ2E7QUFDRjtBQUNRO0FBQ29CO0FBQ0Q7O0FBRTNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEIsc0NBQXNDLGlFQUFlO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx3RkFBbUI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHlGQUFxQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IseURBQXlEO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyx5REFBVztBQUMvQztBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsMERBQUk7QUFDckQsc0JBQXNCLG1EQUFLO0FBQzNCO0FBQ0E7QUFDQTtBQUNBOztBQUVtQztBQUNuQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL05hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbGFtcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyB0aW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL3N5bmMtdGltZS5tanMnO1xuaW1wb3J0IHsgSlNBbmltYXRpb24gfSBmcm9tICcuL0pTQW5pbWF0aW9uLm1qcyc7XG5pbXBvcnQgeyBOYXRpdmVBbmltYXRpb24gfSBmcm9tICcuL05hdGl2ZUFuaW1hdGlvbi5tanMnO1xuaW1wb3J0IHsgcmVwbGFjZVRyYW5zaXRpb25UeXBlIH0gZnJvbSAnLi91dGlscy9yZXBsYWNlLXRyYW5zaXRpb24tdHlwZS5tanMnO1xuaW1wb3J0IHsgcmVwbGFjZVN0cmluZ0Vhc2luZyB9IGZyb20gJy4vd2FhcGkvdXRpbHMvdW5zdXBwb3J0ZWQtZWFzaW5nLm1qcyc7XG5cbi8qKlxuICogMTBtcyBpcyBjaG9zZW4gaGVyZSBhcyBpdCBzdHJpa2VzIGEgYmFsYW5jZSBiZXR3ZWVuIHNtb290aFxuICogcmVzdWx0cyAobW9yZSB0aGFuIG9uZSBrZXlmcmFtZSBwZXIgZnJhbWUgYXQgNjBmcHMpIGFuZFxuICoga2V5ZnJhbWUgcXVhbnRpdHkuXG4gKi9cbmNvbnN0IHNhbXBsZURlbHRhID0gMTA7IC8vbXNcbmNsYXNzIE5hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkIGV4dGVuZHMgTmF0aXZlQW5pbWF0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgYmFzZSBOYXRpdmVBbmltYXRpb24gZnVuY3Rpb24gb25seSBzdXBwb3J0cyBhIHN1YnNldFxuICAgICAgICAgKiBvZiBNb3Rpb24gZWFzaW5ncywgYW5kIFdBQVBJIGFsc28gb25seSBzdXBwb3J0cyBzb21lXG4gICAgICAgICAqIGVhc2luZyBmdW5jdGlvbnMgdmlhIHN0cmluZy9jdWJpYy1iZXppZXIgZGVmaW5pdGlvbnMuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoaXMgZnVuY3Rpb24gcmVwbGFjZXMgdGhvc2UgdW5zdXBwb3J0ZWQgZWFzaW5nIGZ1bmN0aW9uc1xuICAgICAgICAgKiB3aXRoIGEgSlMgZWFzaW5nIGZ1bmN0aW9uLiBUaGlzIHdpbGwgbGF0ZXIgZ2V0IGNvbXBpbGVkXG4gICAgICAgICAqIHRvIGEgbGluZWFyKCkgZWFzaW5nIGZ1bmN0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgcmVwbGFjZVN0cmluZ0Vhc2luZyhvcHRpb25zKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEVuc3VyZSB3ZSByZXBsYWNlIHRoZSB0cmFuc2l0aW9uIHR5cGUgd2l0aCBhIGdlbmVyYXRvciBmdW5jdGlvblxuICAgICAgICAgKiBiZWZvcmUgcGFzc2luZyB0byBXQUFQSS5cbiAgICAgICAgICpcbiAgICAgICAgICogVE9ETzogRG9lcyB0aGlzIGhhdmUgYSBiZXR0ZXIgaG9tZT8gSXQgY291bGQgYmUgc2hhcmVkIHdpdGhcbiAgICAgICAgICogSlNBbmltYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICByZXBsYWNlVHJhbnNpdGlvblR5cGUob3B0aW9ucyk7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBpZiAob3B0aW9ucy5zdGFydFRpbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBvcHRpb25zLnN0YXJ0VGltZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBXQUFQSSBkb2Vzbid0IG5hdGl2ZWx5IGhhdmUgYW55IGludGVycnVwdGlvbiBjYXBhYmlsaXRpZXMuXG4gICAgICpcbiAgICAgKiBSYXRoZXIgdGhhbiByZWFkIGNvbW1pdHRlZCBzdHlsZXMgYmFjayBvdXQgb2YgdGhlIERPTSwgd2UgY2FuXG4gICAgICogY3JlYXRlIGEgcmVuZGVybGVzcyBKUyBhbmltYXRpb24gYW5kIHNhbXBsZSBpdCB0d2ljZSB0byBjYWxjdWxhdGVcbiAgICAgKiBpdHMgY3VycmVudCB2YWx1ZSwgXCJwcmV2aW91c1wiIHZhbHVlLCBhbmQgdGhlcmVmb3JlIGFsbG93XG4gICAgICogTW90aW9uIHRvIGNhbGN1bGF0ZSB2ZWxvY2l0eSBmb3IgYW55IHN1YnNlcXVlbnQgYW5pbWF0aW9uLlxuICAgICAqL1xuICAgIHVwZGF0ZU1vdGlvblZhbHVlKHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHsgbW90aW9uVmFsdWUsIG9uVXBkYXRlLCBvbkNvbXBsZXRlLCBlbGVtZW50LCAuLi5vcHRpb25zIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGlmICghbW90aW9uVmFsdWUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBtb3Rpb25WYWx1ZS5zZXQodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNhbXBsZUFuaW1hdGlvbiA9IG5ldyBKU0FuaW1hdGlvbih7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgYXV0b3BsYXk6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZSB3YWxsLWNsb2NrIGVsYXBzZWQgdGltZSBmb3Igc2FtcGxpbmcuXG4gICAgICAgICAqIFVuZGVyIENQVSBsb2FkLCBXQUFQSSdzIGN1cnJlbnRUaW1lIG1heSBub3QgcmVmbGVjdCBhY3R1YWxcbiAgICAgICAgICogZWxhcHNlZCB0aW1lLCBjYXVzaW5nIGluY29ycmVjdCBzYW1wbGluZyBhbmQgdmlzdWFsIGp1bXBzLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgc2FtcGxlVGltZSA9IE1hdGgubWF4KHNhbXBsZURlbHRhLCB0aW1lLm5vdygpIC0gdGhpcy5zdGFydFRpbWUpO1xuICAgICAgICBjb25zdCBkZWx0YSA9IGNsYW1wKDAsIHNhbXBsZURlbHRhLCBzYW1wbGVUaW1lIC0gc2FtcGxlRGVsdGEpO1xuICAgICAgICBtb3Rpb25WYWx1ZS5zZXRXaXRoVmVsb2NpdHkoc2FtcGxlQW5pbWF0aW9uLnNhbXBsZShNYXRoLm1heCgwLCBzYW1wbGVUaW1lIC0gZGVsdGEpKS52YWx1ZSwgc2FtcGxlQW5pbWF0aW9uLnNhbXBsZShzYW1wbGVUaW1lKS52YWx1ZSwgZGVsdGEpO1xuICAgICAgICBzYW1wbGVBbmltYXRpb24uc3RvcCgpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgTmF0aXZlQW5pbWF0aW9uRXh0ZW5kZWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/animate/single-value.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/animate/single-value.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateSingleValue: () => (/* binding */ animateSingleValue)\n/* harmony export */ });\n/* harmony import */ var _interfaces_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../interfaces/motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\");\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\n\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) ? value : (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_1__.motionValue)(value);\n motionValue$1.start((0,_interfaces_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__.animateMotionValue)(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\n\n//# sourceMappingURL=single-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2FuaW1hdGUvc2luZ2xlLXZhbHVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQW9FO0FBQ2hCO0FBQ2tCOztBQUV0RTtBQUNBLDBCQUEwQiwrRUFBYSxrQkFBa0IsNkRBQVc7QUFDcEUsd0JBQXdCLGdGQUFrQjtBQUMxQztBQUNBOztBQUU4QjtBQUM5QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2FuaW1hdGUvc2luZ2xlLXZhbHVlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlTW90aW9uVmFsdWUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL21vdGlvbi12YWx1ZS5tanMnO1xuaW1wb3J0IHsgbW90aW9uVmFsdWUgfSBmcm9tICcuLi8uLi92YWx1ZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJy4uLy4uL3ZhbHVlL3V0aWxzL2lzLW1vdGlvbi12YWx1ZS5tanMnO1xuXG5mdW5jdGlvbiBhbmltYXRlU2luZ2xlVmFsdWUodmFsdWUsIGtleWZyYW1lcywgb3B0aW9ucykge1xuICAgIGNvbnN0IG1vdGlvblZhbHVlJDEgPSBpc01vdGlvblZhbHVlKHZhbHVlKSA/IHZhbHVlIDogbW90aW9uVmFsdWUodmFsdWUpO1xuICAgIG1vdGlvblZhbHVlJDEuc3RhcnQoYW5pbWF0ZU1vdGlvblZhbHVlKFwiXCIsIG1vdGlvblZhbHVlJDEsIGtleWZyYW1lcywgb3B0aW9ucykpO1xuICAgIHJldHVybiBtb3Rpb25WYWx1ZSQxLmFuaW1hdGlvbjtcbn1cblxuZXhwb3J0IHsgYW5pbWF0ZVNpbmdsZVZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zaW5nbGUtdmFsdWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/animate/single-value.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ frameloopDriver: () => (/* binding */ frameloopDriver)\n/* harmony export */ });\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: (keepAlive = true) => _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frame.update(passTimestamp, keepAlive),\n stop: () => (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.cancelFrame)(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => (_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.isProcessing ? _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.timestamp : _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now()),\n };\n};\n\n\n//# sourceMappingURL=frame.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2RyaXZlcnMvZnJhbWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFxRDtBQUNxQjs7QUFFMUU7QUFDQSw2QkFBNkIsV0FBVztBQUN4QztBQUNBLHFDQUFxQyx1REFBSztBQUMxQyxvQkFBb0IsaUVBQVc7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMkRBQVMsZ0JBQWdCLDJEQUFTLGFBQWEsMERBQUk7QUFDdkU7QUFDQTs7QUFFMkI7QUFDM0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9kcml2ZXJzL2ZyYW1lLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0aW1lIH0gZnJvbSAnLi4vLi4vZnJhbWVsb29wL3N5bmMtdGltZS5tanMnO1xuaW1wb3J0IHsgZnJhbWUsIGNhbmNlbEZyYW1lLCBmcmFtZURhdGEgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcblxuY29uc3QgZnJhbWVsb29wRHJpdmVyID0gKHVwZGF0ZSkgPT4ge1xuICAgIGNvbnN0IHBhc3NUaW1lc3RhbXAgPSAoeyB0aW1lc3RhbXAgfSkgPT4gdXBkYXRlKHRpbWVzdGFtcCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IChrZWVwQWxpdmUgPSB0cnVlKSA9PiBmcmFtZS51cGRhdGUocGFzc1RpbWVzdGFtcCwga2VlcEFsaXZlKSxcbiAgICAgICAgc3RvcDogKCkgPT4gY2FuY2VsRnJhbWUocGFzc1RpbWVzdGFtcCksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB3ZSdyZSBwcm9jZXNzaW5nIHRoaXMgZnJhbWUgd2UgY2FuIHVzZSB0aGVcbiAgICAgICAgICogZnJhbWVsb2NrZWQgdGltZXN0YW1wIHRvIGtlZXAgdGhpbmdzIGluIHN5bmMuXG4gICAgICAgICAqL1xuICAgICAgICBub3c6ICgpID0+IChmcmFtZURhdGEuaXNQcm9jZXNzaW5nID8gZnJhbWVEYXRhLnRpbWVzdGFtcCA6IHRpbWUubm93KCkpLFxuICAgIH07XG59O1xuXG5leHBvcnQgeyBmcmFtZWxvb3BEcml2ZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZyYW1lLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ inertia: () => (/* binding */ inertia)\n/* harmony export */ });\n/* harmony import */ var _spring_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./spring/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\");\n/* harmony import */ var _utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/velocity.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\");\n\n\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = (0,_spring_index_mjs__WEBPACK_IMPORTED_MODULE_0__.spring)({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: (0,_utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_1__.calcGeneratorVelocity)(calcLatest, t, state.value), // TODO: This should be passing * 1000\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\n\n//# sourceMappingURL=inertia.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvaW5lcnRpYS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRDO0FBQ2lCOztBQUU3RCxtQkFBbUIsNEpBQTRKO0FBQy9LO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQix5REFBTTtBQUN6QjtBQUNBLHNCQUFzQiwwRUFBcUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFbUI7QUFDbkIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL2luZXJ0aWEubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwcmluZyB9IGZyb20gJy4vc3ByaW5nL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBjYWxjR2VuZXJhdG9yVmVsb2NpdHkgfSBmcm9tICcuL3V0aWxzL3ZlbG9jaXR5Lm1qcyc7XG5cbmZ1bmN0aW9uIGluZXJ0aWEoeyBrZXlmcmFtZXMsIHZlbG9jaXR5ID0gMC4wLCBwb3dlciA9IDAuOCwgdGltZUNvbnN0YW50ID0gMzI1LCBib3VuY2VEYW1waW5nID0gMTAsIGJvdW5jZVN0aWZmbmVzcyA9IDUwMCwgbW9kaWZ5VGFyZ2V0LCBtaW4sIG1heCwgcmVzdERlbHRhID0gMC41LCByZXN0U3BlZWQsIH0pIHtcbiAgICBjb25zdCBvcmlnaW4gPSBrZXlmcmFtZXNbMF07XG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgIGRvbmU6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogb3JpZ2luLFxuICAgIH07XG4gICAgY29uc3QgaXNPdXRPZkJvdW5kcyA9ICh2KSA9PiAobWluICE9PSB1bmRlZmluZWQgJiYgdiA8IG1pbikgfHwgKG1heCAhPT0gdW5kZWZpbmVkICYmIHYgPiBtYXgpO1xuICAgIGNvbnN0IG5lYXJlc3RCb3VuZGFyeSA9ICh2KSA9PiB7XG4gICAgICAgIGlmIChtaW4gPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiBtYXg7XG4gICAgICAgIGlmIChtYXggPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiBtaW47XG4gICAgICAgIHJldHVybiBNYXRoLmFicyhtaW4gLSB2KSA8IE1hdGguYWJzKG1heCAtIHYpID8gbWluIDogbWF4O1xuICAgIH07XG4gICAgbGV0IGFtcGxpdHVkZSA9IHBvd2VyICogdmVsb2NpdHk7XG4gICAgY29uc3QgaWRlYWwgPSBvcmlnaW4gKyBhbXBsaXR1ZGU7XG4gICAgY29uc3QgdGFyZ2V0ID0gbW9kaWZ5VGFyZ2V0ID09PSB1bmRlZmluZWQgPyBpZGVhbCA6IG1vZGlmeVRhcmdldChpZGVhbCk7XG4gICAgLyoqXG4gICAgICogSWYgdGhlIHRhcmdldCBoYXMgY2hhbmdlZCB3ZSBuZWVkIHRvIHJlLWNhbGN1bGF0ZSB0aGUgYW1wbGl0dWRlLCBvdGhlcndpc2VcbiAgICAgKiB0aGUgYW5pbWF0aW9uIHdpbGwgc3RhcnQgZnJvbSB0aGUgd3JvbmcgcG9zaXRpb24uXG4gICAgICovXG4gICAgaWYgKHRhcmdldCAhPT0gaWRlYWwpXG4gICAgICAgIGFtcGxpdHVkZSA9IHRhcmdldCAtIG9yaWdpbjtcbiAgICBjb25zdCBjYWxjRGVsdGEgPSAodCkgPT4gLWFtcGxpdHVkZSAqIE1hdGguZXhwKC10IC8gdGltZUNvbnN0YW50KTtcbiAgICBjb25zdCBjYWxjTGF0ZXN0ID0gKHQpID0+IHRhcmdldCArIGNhbGNEZWx0YSh0KTtcbiAgICBjb25zdCBhcHBseUZyaWN0aW9uID0gKHQpID0+IHtcbiAgICAgICAgY29uc3QgZGVsdGEgPSBjYWxjRGVsdGEodCk7XG4gICAgICAgIGNvbnN0IGxhdGVzdCA9IGNhbGNMYXRlc3QodCk7XG4gICAgICAgIHN0YXRlLmRvbmUgPSBNYXRoLmFicyhkZWx0YSkgPD0gcmVzdERlbHRhO1xuICAgICAgICBzdGF0ZS52YWx1ZSA9IHN0YXRlLmRvbmUgPyB0YXJnZXQgOiBsYXRlc3Q7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBJZGVhbGx5IHRoaXMgd291bGQgcmVzb2x2ZSBmb3IgdCBpbiBhIHN0YXRlbGVzcyB3YXksIHdlIGNvdWxkXG4gICAgICogZG8gdGhhdCBieSBhbHdheXMgcHJlY2FsY3VsYXRpbmcgdGhlIGFuaW1hdGlvbiBidXQgYXMgd2Uga25vd1xuICAgICAqIHRoaXMgd2lsbCBiZSBkb25lIGFueXdheSB3ZSBjYW4gYXNzdW1lIHRoYXQgc3ByaW5nIHdpbGxcbiAgICAgKiBiZSBkaXNjb3ZlcmVkIGR1cmluZyB0aGF0LlxuICAgICAqL1xuICAgIGxldCB0aW1lUmVhY2hlZEJvdW5kYXJ5O1xuICAgIGxldCBzcHJpbmckMTtcbiAgICBjb25zdCBjaGVja0NhdGNoQm91bmRhcnkgPSAodCkgPT4ge1xuICAgICAgICBpZiAoIWlzT3V0T2ZCb3VuZHMoc3RhdGUudmFsdWUpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aW1lUmVhY2hlZEJvdW5kYXJ5ID0gdDtcbiAgICAgICAgc3ByaW5nJDEgPSBzcHJpbmcoe1xuICAgICAgICAgICAga2V5ZnJhbWVzOiBbc3RhdGUudmFsdWUsIG5lYXJlc3RCb3VuZGFyeShzdGF0ZS52YWx1ZSldLFxuICAgICAgICAgICAgdmVsb2NpdHk6IGNhbGNHZW5lcmF0b3JWZWxvY2l0eShjYWxjTGF0ZXN0LCB0LCBzdGF0ZS52YWx1ZSksIC8vIFRPRE86IFRoaXMgc2hvdWxkIGJlIHBhc3NpbmcgKiAxMDAwXG4gICAgICAgICAgICBkYW1waW5nOiBib3VuY2VEYW1waW5nLFxuICAgICAgICAgICAgc3RpZmZuZXNzOiBib3VuY2VTdGlmZm5lc3MsXG4gICAgICAgICAgICByZXN0RGVsdGEsXG4gICAgICAgICAgICByZXN0U3BlZWQsXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY2hlY2tDYXRjaEJvdW5kYXJ5KDApO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNhbGN1bGF0ZWREdXJhdGlvbjogbnVsbCxcbiAgICAgICAgbmV4dDogKHQpID0+IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2UgbmVlZCB0byByZXNvbHZlIHRoZSBmcmljdGlvbiB0byBmaWd1cmUgb3V0IGlmIHdlIG5lZWQgYVxuICAgICAgICAgICAgICogc3ByaW5nIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGRvIHRoaXMgdHdpY2UgcGVyIGZyYW1lLiBTbyBoZXJlXG4gICAgICAgICAgICAgKiB3ZSBmbGFnIGlmIHdlIHVwZGF0ZWQgZm9yIHRoaXMgZnJhbWUgYW5kIGxhdGVyIGlmIHdlIGRpZFxuICAgICAgICAgICAgICogd2UgY2FuIHNraXAgZG9pbmcgaXQgYWdhaW4uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxldCBoYXNVcGRhdGVkRnJhbWUgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICghc3ByaW5nJDEgJiYgdGltZVJlYWNoZWRCb3VuZGFyeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaGFzVXBkYXRlZEZyYW1lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBhcHBseUZyaWN0aW9uKHQpO1xuICAgICAgICAgICAgICAgIGNoZWNrQ2F0Y2hCb3VuZGFyeSh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBhIHNwcmluZyBhbmQgdGhlIHByb3ZpZGVkIHQgaXMgYmV5b25kIHRoZSBtb21lbnQgdGhlIGZyaWN0aW9uXG4gICAgICAgICAgICAgKiBhbmltYXRpb24gY3Jvc3NlZCB0aGUgbWluL21heCBib3VuZGFyeSwgdXNlIHRoZSBzcHJpbmcuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aW1lUmVhY2hlZEJvdW5kYXJ5ICE9PSB1bmRlZmluZWQgJiYgdCA+PSB0aW1lUmVhY2hlZEJvdW5kYXJ5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNwcmluZyQxLm5leHQodCAtIHRpbWVSZWFjaGVkQm91bmRhcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgIWhhc1VwZGF0ZWRGcmFtZSAmJiBhcHBseUZyaWN0aW9uKHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG5leHBvcnQgeyBpbmVydGlhIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmVydGlhLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultEasing: () => (/* binding */ defaultEasing),\n/* harmony export */ keyframes: () => (/* binding */ keyframes)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs\");\n/* harmony import */ var _utils_interpolate_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/interpolate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs\");\n/* harmony import */ var _keyframes_offsets_default_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../keyframes/offsets/default.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs\");\n/* harmony import */ var _keyframes_offsets_time_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../keyframes/offsets/time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs\");\n\n\n\n\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || motion_utils__WEBPACK_IMPORTED_MODULE_0__.easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.isEasingArray)(ease)\n ? ease.map(motion_utils__WEBPACK_IMPORTED_MODULE_2__.easingDefinitionToFunction)\n : (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.easingDefinitionToFunction)(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = (0,_keyframes_offsets_time_mjs__WEBPACK_IMPORTED_MODULE_3__.convertOffsetToTimes)(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : (0,_keyframes_offsets_default_mjs__WEBPACK_IMPORTED_MODULE_4__.defaultOffset)(keyframeValues), duration);\n const mapTimeToKeyframe = (0,_utils_interpolate_mjs__WEBPACK_IMPORTED_MODULE_5__.interpolate)(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\n\n//# sourceMappingURL=keyframes.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMva2V5ZnJhbWVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFvRjtBQUMxQjtBQUNPO0FBQ0k7O0FBRXJFO0FBQ0Esc0NBQXNDLG1EQUFTO0FBQy9DO0FBQ0EscUJBQXFCLHVFQUF1RTtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwyREFBYTtBQUN6QyxtQkFBbUIsb0VBQTBCO0FBQzdDLFVBQVUsd0VBQTBCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsaUZBQW9CO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSw2RUFBYTtBQUN2Qiw4QkFBOEIsbUVBQVc7QUFDekM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVvQztBQUNwQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMva2V5ZnJhbWVzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlYXNlSW5PdXQsIGlzRWFzaW5nQXJyYXksIGVhc2luZ0RlZmluaXRpb25Ub0Z1bmN0aW9uIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGludGVycG9sYXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJwb2xhdGUubWpzJztcbmltcG9ydCB7IGRlZmF1bHRPZmZzZXQgfSBmcm9tICcuLi9rZXlmcmFtZXMvb2Zmc2V0cy9kZWZhdWx0Lm1qcyc7XG5pbXBvcnQgeyBjb252ZXJ0T2Zmc2V0VG9UaW1lcyB9IGZyb20gJy4uL2tleWZyYW1lcy9vZmZzZXRzL3RpbWUubWpzJztcblxuZnVuY3Rpb24gZGVmYXVsdEVhc2luZyh2YWx1ZXMsIGVhc2luZykge1xuICAgIHJldHVybiB2YWx1ZXMubWFwKCgpID0+IGVhc2luZyB8fCBlYXNlSW5PdXQpLnNwbGljZSgwLCB2YWx1ZXMubGVuZ3RoIC0gMSk7XG59XG5mdW5jdGlvbiBrZXlmcmFtZXMoeyBkdXJhdGlvbiA9IDMwMCwga2V5ZnJhbWVzOiBrZXlmcmFtZVZhbHVlcywgdGltZXMsIGVhc2UgPSBcImVhc2VJbk91dFwiLCB9KSB7XG4gICAgLyoqXG4gICAgICogRWFzaW5nIGZ1bmN0aW9ucyBjYW4gYmUgZXh0ZXJuYWxseSBkZWZpbmVkIGFzIHN0cmluZ3MuIEhlcmUgd2UgY29udmVydCB0aGVtXG4gICAgICogaW50byBhY3R1YWwgZnVuY3Rpb25zLlxuICAgICAqL1xuICAgIGNvbnN0IGVhc2luZ0Z1bmN0aW9ucyA9IGlzRWFzaW5nQXJyYXkoZWFzZSlcbiAgICAgICAgPyBlYXNlLm1hcChlYXNpbmdEZWZpbml0aW9uVG9GdW5jdGlvbilcbiAgICAgICAgOiBlYXNpbmdEZWZpbml0aW9uVG9GdW5jdGlvbihlYXNlKTtcbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIHRoZSBJdGVyYXRvci1zcGVjIHJldHVybiB2YWx1ZS4gV2UgZW5zdXJlIGl0J3MgbXV0YWJsZSByYXRoZXIgdGhhbiB1c2luZyBhIGdlbmVyYXRvclxuICAgICAqIHRvIHJlZHVjZSBHQyBkdXJpbmcgYW5pbWF0aW9uLlxuICAgICAqL1xuICAgIGNvbnN0IHN0YXRlID0ge1xuICAgICAgICBkb25lOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6IGtleWZyYW1lVmFsdWVzWzBdLFxuICAgIH07XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgdGltZXMgYXJyYXkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIDAtMSBvZmZzZXRzXG4gICAgICovXG4gICAgY29uc3QgYWJzb2x1dGVUaW1lcyA9IGNvbnZlcnRPZmZzZXRUb1RpbWVzKFxuICAgIC8vIE9ubHkgdXNlIHRoZSBwcm92aWRlZCBvZmZzZXRzIGlmIHRoZXkncmUgdGhlIGNvcnJlY3QgbGVuZ3RoXG4gICAgLy8gVE9ETyBNYXliZSB3ZSBzaG91bGQgd2FybiBoZXJlIGlmIHRoZXJlJ3MgYSBsZW5ndGggbWlzbWF0Y2hcbiAgICB0aW1lcyAmJiB0aW1lcy5sZW5ndGggPT09IGtleWZyYW1lVmFsdWVzLmxlbmd0aFxuICAgICAgICA/IHRpbWVzXG4gICAgICAgIDogZGVmYXVsdE9mZnNldChrZXlmcmFtZVZhbHVlcyksIGR1cmF0aW9uKTtcbiAgICBjb25zdCBtYXBUaW1lVG9LZXlmcmFtZSA9IGludGVycG9sYXRlKGFic29sdXRlVGltZXMsIGtleWZyYW1lVmFsdWVzLCB7XG4gICAgICAgIGVhc2U6IEFycmF5LmlzQXJyYXkoZWFzaW5nRnVuY3Rpb25zKVxuICAgICAgICAgICAgPyBlYXNpbmdGdW5jdGlvbnNcbiAgICAgICAgICAgIDogZGVmYXVsdEVhc2luZyhrZXlmcmFtZVZhbHVlcywgZWFzaW5nRnVuY3Rpb25zKSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjYWxjdWxhdGVkRHVyYXRpb246IGR1cmF0aW9uLFxuICAgICAgICBuZXh0OiAodCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUudmFsdWUgPSBtYXBUaW1lVG9LZXlmcmFtZSh0KTtcbiAgICAgICAgICAgIHN0YXRlLmRvbmUgPSB0ID49IGR1cmF0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9LFxuICAgIH07XG59XG5cbmV4cG9ydCB7IGRlZmF1bHRFYXNpbmcsIGtleWZyYW1lcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9a2V5ZnJhbWVzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ springDefaults: () => (/* binding */ springDefaults)\n/* harmony export */ });\nconst springDefaults = {\n // Default spring physics\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n velocity: 0.0,\n // Default duration/bounce-based options\n duration: 800, // in ms\n bounce: 0.3,\n visualDuration: 0.3, // in seconds\n // Rest thresholds\n restSpeed: {\n granular: 0.01,\n default: 2,\n },\n restDelta: {\n granular: 0.005,\n default: 0.5,\n },\n // Limits\n minDuration: 0.01, // in seconds\n maxDuration: 10.0, // in seconds\n minDamping: 0.05,\n maxDamping: 1,\n};\n\n\n//# sourceMappingURL=defaults.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2RlZmF1bHRzLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUwQjtBQUMxQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2RlZmF1bHRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzcHJpbmdEZWZhdWx0cyA9IHtcbiAgICAvLyBEZWZhdWx0IHNwcmluZyBwaHlzaWNzXG4gICAgc3RpZmZuZXNzOiAxMDAsXG4gICAgZGFtcGluZzogMTAsXG4gICAgbWFzczogMS4wLFxuICAgIHZlbG9jaXR5OiAwLjAsXG4gICAgLy8gRGVmYXVsdCBkdXJhdGlvbi9ib3VuY2UtYmFzZWQgb3B0aW9uc1xuICAgIGR1cmF0aW9uOiA4MDAsIC8vIGluIG1zXG4gICAgYm91bmNlOiAwLjMsXG4gICAgdmlzdWFsRHVyYXRpb246IDAuMywgLy8gaW4gc2Vjb25kc1xuICAgIC8vIFJlc3QgdGhyZXNob2xkc1xuICAgIHJlc3RTcGVlZDoge1xuICAgICAgICBncmFudWxhcjogMC4wMSxcbiAgICAgICAgZGVmYXVsdDogMixcbiAgICB9LFxuICAgIHJlc3REZWx0YToge1xuICAgICAgICBncmFudWxhcjogMC4wMDUsXG4gICAgICAgIGRlZmF1bHQ6IDAuNSxcbiAgICB9LFxuICAgIC8vIExpbWl0c1xuICAgIG1pbkR1cmF0aW9uOiAwLjAxLCAvLyBpbiBzZWNvbmRzXG4gICAgbWF4RHVyYXRpb246IDEwLjAsIC8vIGluIHNlY29uZHNcbiAgICBtaW5EYW1waW5nOiAwLjA1LFxuICAgIG1heERhbXBpbmc6IDEsXG59O1xuXG5leHBvcnQgeyBzcHJpbmdEZWZhdWx0cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVmYXVsdHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcAngularFreq: () => (/* binding */ calcAngularFreq),\n/* harmony export */ findSpring: () => (/* binding */ findSpring)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaults.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\");\n\n\n\nconst safeMin = 0.001;\nfunction findSpring({ duration = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.duration, bounce = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.bounce, velocity = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.velocity, mass = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass, }) {\n let envelope;\n let derivative;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warning)(duration <= (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDuration), \"Spring duration must be 10 seconds or less\", \"spring-duration-limit\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.minDamping, _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDamping, dampingRatio);\n duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.minDuration, _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDuration, (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.millisecondsToSeconds)(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.stiffness,\n damping: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.damping,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\n\n//# sourceMappingURL=find.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2ZpbmQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUE0RjtBQUM1Qzs7QUFFaEQ7QUFDQSxzQkFBc0IsV0FBVyx5REFBYyxvQkFBb0IseURBQWMsb0JBQW9CLHlEQUFjLGtCQUFrQix5REFBYyxRQUFRO0FBQzNKO0FBQ0E7QUFDQSxJQUFJLHFEQUFPLGFBQWEsbUVBQXFCLENBQUMseURBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsbURBQUssQ0FBQyx5REFBYyxhQUFhLHlEQUFjO0FBQ2xFLGVBQWUsbURBQUssQ0FBQyx5REFBYyxjQUFjLHlEQUFjLGNBQWMsbUVBQXFCO0FBQ2xHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtRUFBcUI7QUFDcEM7QUFDQTtBQUNBLHVCQUF1Qix5REFBYztBQUNyQyxxQkFBcUIseURBQWM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLG9CQUFvQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFdUM7QUFDdkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3NwcmluZy9maW5kLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YXJuaW5nLCBzZWNvbmRzVG9NaWxsaXNlY29uZHMsIGNsYW1wLCBtaWxsaXNlY29uZHNUb1NlY29uZHMgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgc3ByaW5nRGVmYXVsdHMgfSBmcm9tICcuL2RlZmF1bHRzLm1qcyc7XG5cbmNvbnN0IHNhZmVNaW4gPSAwLjAwMTtcbmZ1bmN0aW9uIGZpbmRTcHJpbmcoeyBkdXJhdGlvbiA9IHNwcmluZ0RlZmF1bHRzLmR1cmF0aW9uLCBib3VuY2UgPSBzcHJpbmdEZWZhdWx0cy5ib3VuY2UsIHZlbG9jaXR5ID0gc3ByaW5nRGVmYXVsdHMudmVsb2NpdHksIG1hc3MgPSBzcHJpbmdEZWZhdWx0cy5tYXNzLCB9KSB7XG4gICAgbGV0IGVudmVsb3BlO1xuICAgIGxldCBkZXJpdmF0aXZlO1xuICAgIHdhcm5pbmcoZHVyYXRpb24gPD0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKHNwcmluZ0RlZmF1bHRzLm1heER1cmF0aW9uKSwgXCJTcHJpbmcgZHVyYXRpb24gbXVzdCBiZSAxMCBzZWNvbmRzIG9yIGxlc3NcIiwgXCJzcHJpbmctZHVyYXRpb24tbGltaXRcIik7XG4gICAgbGV0IGRhbXBpbmdSYXRpbyA9IDEgLSBib3VuY2U7XG4gICAgLyoqXG4gICAgICogUmVzdHJpY3QgZGFtcGluZ1JhdGlvIGFuZCBkdXJhdGlvbiB0byB3aXRoaW4gYWNjZXB0YWJsZSByYW5nZXMuXG4gICAgICovXG4gICAgZGFtcGluZ1JhdGlvID0gY2xhbXAoc3ByaW5nRGVmYXVsdHMubWluRGFtcGluZywgc3ByaW5nRGVmYXVsdHMubWF4RGFtcGluZywgZGFtcGluZ1JhdGlvKTtcbiAgICBkdXJhdGlvbiA9IGNsYW1wKHNwcmluZ0RlZmF1bHRzLm1pbkR1cmF0aW9uLCBzcHJpbmdEZWZhdWx0cy5tYXhEdXJhdGlvbiwgbWlsbGlzZWNvbmRzVG9TZWNvbmRzKGR1cmF0aW9uKSk7XG4gICAgaWYgKGRhbXBpbmdSYXRpbyA8IDEpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVuZGVyZGFtcGVkIHNwcmluZ1xuICAgICAgICAgKi9cbiAgICAgICAgZW52ZWxvcGUgPSAodW5kYW1wZWRGcmVxKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBleHBvbmVudGlhbERlY2F5ID0gdW5kYW1wZWRGcmVxICogZGFtcGluZ1JhdGlvO1xuICAgICAgICAgICAgY29uc3QgZGVsdGEgPSBleHBvbmVudGlhbERlY2F5ICogZHVyYXRpb247XG4gICAgICAgICAgICBjb25zdCBhID0gZXhwb25lbnRpYWxEZWNheSAtIHZlbG9jaXR5O1xuICAgICAgICAgICAgY29uc3QgYiA9IGNhbGNBbmd1bGFyRnJlcSh1bmRhbXBlZEZyZXEsIGRhbXBpbmdSYXRpbyk7XG4gICAgICAgICAgICBjb25zdCBjID0gTWF0aC5leHAoLWRlbHRhKTtcbiAgICAgICAgICAgIHJldHVybiBzYWZlTWluIC0gKGEgLyBiKSAqIGM7XG4gICAgICAgIH07XG4gICAgICAgIGRlcml2YXRpdmUgPSAodW5kYW1wZWRGcmVxKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBleHBvbmVudGlhbERlY2F5ID0gdW5kYW1wZWRGcmVxICogZGFtcGluZ1JhdGlvO1xuICAgICAgICAgICAgY29uc3QgZGVsdGEgPSBleHBvbmVudGlhbERlY2F5ICogZHVyYXRpb247XG4gICAgICAgICAgICBjb25zdCBkID0gZGVsdGEgKiB2ZWxvY2l0eSArIHZlbG9jaXR5O1xuICAgICAgICAgICAgY29uc3QgZSA9IE1hdGgucG93KGRhbXBpbmdSYXRpbywgMikgKiBNYXRoLnBvdyh1bmRhbXBlZEZyZXEsIDIpICogZHVyYXRpb247XG4gICAgICAgICAgICBjb25zdCBmID0gTWF0aC5leHAoLWRlbHRhKTtcbiAgICAgICAgICAgIGNvbnN0IGcgPSBjYWxjQW5ndWxhckZyZXEoTWF0aC5wb3codW5kYW1wZWRGcmVxLCAyKSwgZGFtcGluZ1JhdGlvKTtcbiAgICAgICAgICAgIGNvbnN0IGZhY3RvciA9IC1lbnZlbG9wZSh1bmRhbXBlZEZyZXEpICsgc2FmZU1pbiA+IDAgPyAtMSA6IDE7XG4gICAgICAgICAgICByZXR1cm4gKGZhY3RvciAqICgoZCAtIGUpICogZikpIC8gZztcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDcml0aWNhbGx5LWRhbXBlZCBzcHJpbmdcbiAgICAgICAgICovXG4gICAgICAgIGVudmVsb3BlID0gKHVuZGFtcGVkRnJlcSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYSA9IE1hdGguZXhwKC11bmRhbXBlZEZyZXEgKiBkdXJhdGlvbik7XG4gICAgICAgICAgICBjb25zdCBiID0gKHVuZGFtcGVkRnJlcSAtIHZlbG9jaXR5KSAqIGR1cmF0aW9uICsgMTtcbiAgICAgICAgICAgIHJldHVybiAtc2FmZU1pbiArIGEgKiBiO1xuICAgICAgICB9O1xuICAgICAgICBkZXJpdmF0aXZlID0gKHVuZGFtcGVkRnJlcSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYSA9IE1hdGguZXhwKC11bmRhbXBlZEZyZXEgKiBkdXJhdGlvbik7XG4gICAgICAgICAgICBjb25zdCBiID0gKHZlbG9jaXR5IC0gdW5kYW1wZWRGcmVxKSAqIChkdXJhdGlvbiAqIGR1cmF0aW9uKTtcbiAgICAgICAgICAgIHJldHVybiBhICogYjtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgaW5pdGlhbEd1ZXNzID0gNSAvIGR1cmF0aW9uO1xuICAgIGNvbnN0IHVuZGFtcGVkRnJlcSA9IGFwcHJveGltYXRlUm9vdChlbnZlbG9wZSwgZGVyaXZhdGl2ZSwgaW5pdGlhbEd1ZXNzKTtcbiAgICBkdXJhdGlvbiA9IHNlY29uZHNUb01pbGxpc2Vjb25kcyhkdXJhdGlvbik7XG4gICAgaWYgKGlzTmFOKHVuZGFtcGVkRnJlcSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0aWZmbmVzczogc3ByaW5nRGVmYXVsdHMuc3RpZmZuZXNzLFxuICAgICAgICAgICAgZGFtcGluZzogc3ByaW5nRGVmYXVsdHMuZGFtcGluZyxcbiAgICAgICAgICAgIGR1cmF0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3RpZmZuZXNzID0gTWF0aC5wb3codW5kYW1wZWRGcmVxLCAyKSAqIG1hc3M7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGlmZm5lc3MsXG4gICAgICAgICAgICBkYW1waW5nOiBkYW1waW5nUmF0aW8gKiAyICogTWF0aC5zcXJ0KG1hc3MgKiBzdGlmZm5lc3MpLFxuICAgICAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIH07XG4gICAgfVxufVxuY29uc3Qgcm9vdEl0ZXJhdGlvbnMgPSAxMjtcbmZ1bmN0aW9uIGFwcHJveGltYXRlUm9vdChlbnZlbG9wZSwgZGVyaXZhdGl2ZSwgaW5pdGlhbEd1ZXNzKSB7XG4gICAgbGV0IHJlc3VsdCA9IGluaXRpYWxHdWVzcztcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvb3RJdGVyYXRpb25zOyBpKyspIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0IC0gZW52ZWxvcGUocmVzdWx0KSAvIGRlcml2YXRpdmUocmVzdWx0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIGNhbGNBbmd1bGFyRnJlcSh1bmRhbXBlZEZyZXEsIGRhbXBpbmdSYXRpbykge1xuICAgIHJldHVybiB1bmRhbXBlZEZyZXEgKiBNYXRoLnNxcnQoMSAtIGRhbXBpbmdSYXRpbyAqIGRhbXBpbmdSYXRpbyk7XG59XG5cbmV4cG9ydCB7IGNhbGNBbmd1bGFyRnJlcSwgZmluZFNwcmluZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmluZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ spring: () => (/* binding */ spring)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _waapi_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../waapi/utils/linear.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\");\n/* harmony import */ var _utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/calc-duration.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n/* harmony import */ var _utils_create_generator_easing_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/create-generator-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs\");\n/* harmony import */ var _utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/velocity.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\");\n/* harmony import */ var _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaults.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\");\n/* harmony import */ var _find_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./find.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs\");\n\n\n\n\n\n\n\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.velocity,\n stiffness: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.stiffness,\n damping: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.damping,\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n if (options.visualDuration) {\n const visualDuration = options.visualDuration;\n const root = (2 * Math.PI) / (visualDuration * 1.2);\n const stiffness = root * root;\n const damping = 2 *\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.clamp)(0.05, 1, 1 - (options.bounce || 0)) *\n Math.sqrt(stiffness);\n springOptions = {\n ...springOptions,\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\n stiffness,\n damping,\n };\n }\n else {\n const derived = (0,_find_mjs__WEBPACK_IMPORTED_MODULE_2__.findSpring)(options);\n springOptions = {\n ...springOptions,\n ...derived,\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\n };\n springOptions.isResolvedFromDuration = true;\n }\n }\n return springOptions;\n}\nfunction spring(optionsOrVisualDuration = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.visualDuration, bounce = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.bounce) {\n const options = typeof optionsOrVisualDuration !== \"object\"\n ? {\n visualDuration: optionsOrVisualDuration,\n keyframes: [0, 1],\n bounce,\n }\n : optionsOrVisualDuration;\n let { restSpeed, restDelta } = options;\n const origin = options.keyframes[0];\n const target = options.keyframes[options.keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -(0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.millisecondsToSeconds)(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.millisecondsToSeconds)(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale\n ? _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restSpeed.granular\n : _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restSpeed.default);\n restDelta || (restDelta = isGranularScale\n ? _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restDelta.granular\n : _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restDelta.default);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = (0,_find_mjs__WEBPACK_IMPORTED_MODULE_2__.calcAngularFreq)(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n const generator = {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = t === 0 ? initialVelocity : 0.0;\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity =\n t === 0\n ? (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.secondsToMilliseconds)(initialVelocity)\n : (0,_utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_4__.calcGeneratorVelocity)(resolveSpring, t, current);\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n toString: () => {\n const calculatedDuration = Math.min((0,_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__.calcGeneratorDuration)(generator), _utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__.maxGeneratorDuration);\n const easing = (0,_waapi_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_6__.generateLinearEasing)((progress) => generator.next(calculatedDuration * progress).value, calculatedDuration, 30);\n return calculatedDuration + \"ms \" + easing;\n },\n toTransition: () => { },\n };\n return generator;\n}\nspring.applyToOptions = (options) => {\n const generatorOptions = (0,_utils_create_generator_easing_mjs__WEBPACK_IMPORTED_MODULE_7__.createGeneratorEasing)(options, 100, spring);\n options.ease = generatorOptions.ease;\n options.duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.secondsToMilliseconds)(generatorOptions.duration);\n options.type = \"keyframes\";\n return options;\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBbUY7QUFDZjtBQUNxQjtBQUNaO0FBQ2Y7QUFDZDtBQUNTOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQix5REFBYztBQUNoQyxtQkFBbUIseURBQWM7QUFDakMsaUJBQWlCLHlEQUFjO0FBQy9CLGNBQWMseURBQWM7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtREFBSztBQUNyQjtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IseURBQWM7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixxREFBVTtBQUN0QztBQUNBO0FBQ0E7QUFDQSxzQkFBc0IseURBQWM7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLHlEQUFjLDBCQUEwQix5REFBYztBQUNoRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsdUJBQXVCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQixZQUFZLHdFQUF3RTtBQUNwRjtBQUNBLG1CQUFtQixtRUFBcUI7QUFDeEMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxtRUFBcUI7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSx5REFBYztBQUN4QixVQUFVLHlEQUFjO0FBQ3hCO0FBQ0EsVUFBVSx5REFBYztBQUN4QixVQUFVLHlEQUFjO0FBQ3hCO0FBQ0E7QUFDQSw0QkFBNEIsMERBQWU7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLG1FQUFxQjtBQUNuRCw4QkFBOEIsMEVBQXFCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxnREFBZ0QsK0VBQXFCLGFBQWEsMEVBQW9CO0FBQ3RHLDJCQUEyQiw2RUFBb0I7QUFDL0M7QUFDQSxTQUFTO0FBQ1QsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLHlGQUFxQjtBQUNsRDtBQUNBLHVCQUF1QixtRUFBcUI7QUFDNUM7QUFDQTtBQUNBOztBQUVrQjtBQUNsQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaWxsaXNlY29uZHNUb1NlY29uZHMsIHNlY29uZHNUb01pbGxpc2Vjb25kcywgY2xhbXAgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVMaW5lYXJFYXNpbmcgfSBmcm9tICcuLi8uLi93YWFwaS91dGlscy9saW5lYXIubWpzJztcbmltcG9ydCB7IGNhbGNHZW5lcmF0b3JEdXJhdGlvbiwgbWF4R2VuZXJhdG9yRHVyYXRpb24gfSBmcm9tICcuLi91dGlscy9jYWxjLWR1cmF0aW9uLm1qcyc7XG5pbXBvcnQgeyBjcmVhdGVHZW5lcmF0b3JFYXNpbmcgfSBmcm9tICcuLi91dGlscy9jcmVhdGUtZ2VuZXJhdG9yLWVhc2luZy5tanMnO1xuaW1wb3J0IHsgY2FsY0dlbmVyYXRvclZlbG9jaXR5IH0gZnJvbSAnLi4vdXRpbHMvdmVsb2NpdHkubWpzJztcbmltcG9ydCB7IHNwcmluZ0RlZmF1bHRzIH0gZnJvbSAnLi9kZWZhdWx0cy5tanMnO1xuaW1wb3J0IHsgZmluZFNwcmluZywgY2FsY0FuZ3VsYXJGcmVxIH0gZnJvbSAnLi9maW5kLm1qcyc7XG5cbmNvbnN0IGR1cmF0aW9uS2V5cyA9IFtcImR1cmF0aW9uXCIsIFwiYm91bmNlXCJdO1xuY29uc3QgcGh5c2ljc0tleXMgPSBbXCJzdGlmZm5lc3NcIiwgXCJkYW1waW5nXCIsIFwibWFzc1wiXTtcbmZ1bmN0aW9uIGlzU3ByaW5nVHlwZShvcHRpb25zLCBrZXlzKSB7XG4gICAgcmV0dXJuIGtleXMuc29tZSgoa2V5KSA9PiBvcHRpb25zW2tleV0gIT09IHVuZGVmaW5lZCk7XG59XG5mdW5jdGlvbiBnZXRTcHJpbmdPcHRpb25zKG9wdGlvbnMpIHtcbiAgICBsZXQgc3ByaW5nT3B0aW9ucyA9IHtcbiAgICAgICAgdmVsb2NpdHk6IHNwcmluZ0RlZmF1bHRzLnZlbG9jaXR5LFxuICAgICAgICBzdGlmZm5lc3M6IHNwcmluZ0RlZmF1bHRzLnN0aWZmbmVzcyxcbiAgICAgICAgZGFtcGluZzogc3ByaW5nRGVmYXVsdHMuZGFtcGluZyxcbiAgICAgICAgbWFzczogc3ByaW5nRGVmYXVsdHMubWFzcyxcbiAgICAgICAgaXNSZXNvbHZlZEZyb21EdXJhdGlvbjogZmFsc2UsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgICAvLyBzdGlmZm5lc3MvZGFtcGluZy9tYXNzIG92ZXJyaWRlcyBkdXJhdGlvbi9ib3VuY2VcbiAgICBpZiAoIWlzU3ByaW5nVHlwZShvcHRpb25zLCBwaHlzaWNzS2V5cykgJiZcbiAgICAgICAgaXNTcHJpbmdUeXBlKG9wdGlvbnMsIGR1cmF0aW9uS2V5cykpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMudmlzdWFsRHVyYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHZpc3VhbER1cmF0aW9uID0gb3B0aW9ucy52aXN1YWxEdXJhdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSAoMiAqIE1hdGguUEkpIC8gKHZpc3VhbER1cmF0aW9uICogMS4yKTtcbiAgICAgICAgICAgIGNvbnN0IHN0aWZmbmVzcyA9IHJvb3QgKiByb290O1xuICAgICAgICAgICAgY29uc3QgZGFtcGluZyA9IDIgKlxuICAgICAgICAgICAgICAgIGNsYW1wKDAuMDUsIDEsIDEgLSAob3B0aW9ucy5ib3VuY2UgfHwgMCkpICpcbiAgICAgICAgICAgICAgICBNYXRoLnNxcnQoc3RpZmZuZXNzKTtcbiAgICAgICAgICAgIHNwcmluZ09wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgLi4uc3ByaW5nT3B0aW9ucyxcbiAgICAgICAgICAgICAgICBtYXNzOiBzcHJpbmdEZWZhdWx0cy5tYXNzLFxuICAgICAgICAgICAgICAgIHN0aWZmbmVzcyxcbiAgICAgICAgICAgICAgICBkYW1waW5nLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRlcml2ZWQgPSBmaW5kU3ByaW5nKG9wdGlvbnMpO1xuICAgICAgICAgICAgc3ByaW5nT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAuLi5zcHJpbmdPcHRpb25zLFxuICAgICAgICAgICAgICAgIC4uLmRlcml2ZWQsXG4gICAgICAgICAgICAgICAgbWFzczogc3ByaW5nRGVmYXVsdHMubWFzcyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzcHJpbmdPcHRpb25zLmlzUmVzb2x2ZWRGcm9tRHVyYXRpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzcHJpbmdPcHRpb25zO1xufVxuZnVuY3Rpb24gc3ByaW5nKG9wdGlvbnNPclZpc3VhbER1cmF0aW9uID0gc3ByaW5nRGVmYXVsdHMudmlzdWFsRHVyYXRpb24sIGJvdW5jZSA9IHNwcmluZ0RlZmF1bHRzLmJvdW5jZSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0eXBlb2Ygb3B0aW9uc09yVmlzdWFsRHVyYXRpb24gIT09IFwib2JqZWN0XCJcbiAgICAgICAgPyB7XG4gICAgICAgICAgICB2aXN1YWxEdXJhdGlvbjogb3B0aW9uc09yVmlzdWFsRHVyYXRpb24sXG4gICAgICAgICAgICBrZXlmcmFtZXM6IFswLCAxXSxcbiAgICAgICAgICAgIGJvdW5jZSxcbiAgICAgICAgfVxuICAgICAgICA6IG9wdGlvbnNPclZpc3VhbER1cmF0aW9uO1xuICAgIGxldCB7IHJlc3RTcGVlZCwgcmVzdERlbHRhIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IG9yaWdpbiA9IG9wdGlvbnMua2V5ZnJhbWVzWzBdO1xuICAgIGNvbnN0IHRhcmdldCA9IG9wdGlvbnMua2V5ZnJhbWVzW29wdGlvbnMua2V5ZnJhbWVzLmxlbmd0aCAtIDFdO1xuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgdGhlIEl0ZXJhdG9yLXNwZWMgcmV0dXJuIHZhbHVlLiBXZSBlbnN1cmUgaXQncyBtdXRhYmxlIHJhdGhlciB0aGFuIHVzaW5nIGEgZ2VuZXJhdG9yXG4gICAgICogdG8gcmVkdWNlIEdDIGR1cmluZyBhbmltYXRpb24uXG4gICAgICovXG4gICAgY29uc3Qgc3RhdGUgPSB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogb3JpZ2luIH07XG4gICAgY29uc3QgeyBzdGlmZm5lc3MsIGRhbXBpbmcsIG1hc3MsIGR1cmF0aW9uLCB2ZWxvY2l0eSwgaXNSZXNvbHZlZEZyb21EdXJhdGlvbiwgfSA9IGdldFNwcmluZ09wdGlvbnMoe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB2ZWxvY2l0eTogLW1pbGxpc2Vjb25kc1RvU2Vjb25kcyhvcHRpb25zLnZlbG9jaXR5IHx8IDApLFxuICAgIH0pO1xuICAgIGNvbnN0IGluaXRpYWxWZWxvY2l0eSA9IHZlbG9jaXR5IHx8IDAuMDtcbiAgICBjb25zdCBkYW1waW5nUmF0aW8gPSBkYW1waW5nIC8gKDIgKiBNYXRoLnNxcnQoc3RpZmZuZXNzICogbWFzcykpO1xuICAgIGNvbnN0IGluaXRpYWxEZWx0YSA9IHRhcmdldCAtIG9yaWdpbjtcbiAgICBjb25zdCB1bmRhbXBlZEFuZ3VsYXJGcmVxID0gbWlsbGlzZWNvbmRzVG9TZWNvbmRzKE1hdGguc3FydChzdGlmZm5lc3MgLyBtYXNzKSk7XG4gICAgLyoqXG4gICAgICogSWYgd2UncmUgd29ya2luZyBvbiBhIGdyYW51bGFyIHNjYWxlLCB1c2Ugc21hbGxlciBkZWZhdWx0cyBmb3IgZGV0ZXJtaW5pbmdcbiAgICAgKiB3aGVuIHRoZSBzcHJpbmcgaXMgZmluaXNoZWQuXG4gICAgICpcbiAgICAgKiBUaGVzZSBkZWZhdWx0cyBoYXZlIGJlZW4gc2VsZWN0ZWQgZW1wcmljYWxseSBiYXNlZCBvbiB3aGF0IHN0cmlrZXMgYSBnb29kXG4gICAgICogcmF0aW8gYmV0d2VlbiBmZWVsaW5nIGdvb2QgYW5kIGZpbmlzaGluZyBhcyBzb29uIGFzIGNoYW5nZXMgYXJlIGltcGVyY2VwdGlibGUuXG4gICAgICovXG4gICAgY29uc3QgaXNHcmFudWxhclNjYWxlID0gTWF0aC5hYnMoaW5pdGlhbERlbHRhKSA8IDU7XG4gICAgcmVzdFNwZWVkIHx8IChyZXN0U3BlZWQgPSBpc0dyYW51bGFyU2NhbGVcbiAgICAgICAgPyBzcHJpbmdEZWZhdWx0cy5yZXN0U3BlZWQuZ3JhbnVsYXJcbiAgICAgICAgOiBzcHJpbmdEZWZhdWx0cy5yZXN0U3BlZWQuZGVmYXVsdCk7XG4gICAgcmVzdERlbHRhIHx8IChyZXN0RGVsdGEgPSBpc0dyYW51bGFyU2NhbGVcbiAgICAgICAgPyBzcHJpbmdEZWZhdWx0cy5yZXN0RGVsdGEuZ3JhbnVsYXJcbiAgICAgICAgOiBzcHJpbmdEZWZhdWx0cy5yZXN0RGVsdGEuZGVmYXVsdCk7XG4gICAgbGV0IHJlc29sdmVTcHJpbmc7XG4gICAgaWYgKGRhbXBpbmdSYXRpbyA8IDEpIHtcbiAgICAgICAgY29uc3QgYW5ndWxhckZyZXEgPSBjYWxjQW5ndWxhckZyZXEodW5kYW1wZWRBbmd1bGFyRnJlcSwgZGFtcGluZ1JhdGlvKTtcbiAgICAgICAgLy8gVW5kZXJkYW1wZWQgc3ByaW5nXG4gICAgICAgIHJlc29sdmVTcHJpbmcgPSAodCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW52ZWxvcGUgPSBNYXRoLmV4cCgtZGFtcGluZ1JhdGlvICogdW5kYW1wZWRBbmd1bGFyRnJlcSAqIHQpO1xuICAgICAgICAgICAgcmV0dXJuICh0YXJnZXQgLVxuICAgICAgICAgICAgICAgIGVudmVsb3BlICpcbiAgICAgICAgICAgICAgICAgICAgKCgoaW5pdGlhbFZlbG9jaXR5ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhbXBpbmdSYXRpbyAqIHVuZGFtcGVkQW5ndWxhckZyZXEgKiBpbml0aWFsRGVsdGEpIC9cbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZ3VsYXJGcmVxKSAqXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnNpbihhbmd1bGFyRnJlcSAqIHQpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxEZWx0YSAqIE1hdGguY29zKGFuZ3VsYXJGcmVxICogdCkpKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZGFtcGluZ1JhdGlvID09PSAxKSB7XG4gICAgICAgIC8vIENyaXRpY2FsbHkgZGFtcGVkIHNwcmluZ1xuICAgICAgICByZXNvbHZlU3ByaW5nID0gKHQpID0+IHRhcmdldCAtXG4gICAgICAgICAgICBNYXRoLmV4cCgtdW5kYW1wZWRBbmd1bGFyRnJlcSAqIHQpICpcbiAgICAgICAgICAgICAgICAoaW5pdGlhbERlbHRhICtcbiAgICAgICAgICAgICAgICAgICAgKGluaXRpYWxWZWxvY2l0eSArIHVuZGFtcGVkQW5ndWxhckZyZXEgKiBpbml0aWFsRGVsdGEpICogdCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyBPdmVyZGFtcGVkIHNwcmluZ1xuICAgICAgICBjb25zdCBkYW1wZWRBbmd1bGFyRnJlcSA9IHVuZGFtcGVkQW5ndWxhckZyZXEgKiBNYXRoLnNxcnQoZGFtcGluZ1JhdGlvICogZGFtcGluZ1JhdGlvIC0gMSk7XG4gICAgICAgIHJlc29sdmVTcHJpbmcgPSAodCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW52ZWxvcGUgPSBNYXRoLmV4cCgtZGFtcGluZ1JhdGlvICogdW5kYW1wZWRBbmd1bGFyRnJlcSAqIHQpO1xuICAgICAgICAgICAgLy8gV2hlbiBwZXJmb3JtaW5nIHNpbmggb3IgY29zaCB2YWx1ZXMgY2FuIGhpdCBJbmZpbml0eSBzbyB3ZSBjYXAgdGhlbSBoZXJlXG4gICAgICAgICAgICBjb25zdCBmcmVxRm9yVCA9IE1hdGgubWluKGRhbXBlZEFuZ3VsYXJGcmVxICogdCwgMzAwKTtcbiAgICAgICAgICAgIHJldHVybiAodGFyZ2V0IC1cbiAgICAgICAgICAgICAgICAoZW52ZWxvcGUgKlxuICAgICAgICAgICAgICAgICAgICAoKGluaXRpYWxWZWxvY2l0eSArXG4gICAgICAgICAgICAgICAgICAgICAgICBkYW1waW5nUmF0aW8gKiB1bmRhbXBlZEFuZ3VsYXJGcmVxICogaW5pdGlhbERlbHRhKSAqXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnNpbmgoZnJlcUZvclQpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhbXBlZEFuZ3VsYXJGcmVxICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsRGVsdGEgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguY29zaChmcmVxRm9yVCkpKSAvXG4gICAgICAgICAgICAgICAgICAgIGRhbXBlZEFuZ3VsYXJGcmVxKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgZ2VuZXJhdG9yID0ge1xuICAgICAgICBjYWxjdWxhdGVkRHVyYXRpb246IGlzUmVzb2x2ZWRGcm9tRHVyYXRpb24gPyBkdXJhdGlvbiB8fCBudWxsIDogbnVsbCxcbiAgICAgICAgbmV4dDogKHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSByZXNvbHZlU3ByaW5nKHQpO1xuICAgICAgICAgICAgaWYgKCFpc1Jlc29sdmVkRnJvbUR1cmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRWZWxvY2l0eSA9IHQgPT09IDAgPyBpbml0aWFsVmVsb2NpdHkgOiAwLjA7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogV2Ugb25seSBuZWVkIHRvIGNhbGN1bGF0ZSB2ZWxvY2l0eSBmb3IgdW5kZXItZGFtcGVkIHNwcmluZ3NcbiAgICAgICAgICAgICAgICAgKiBhcyBvdmVyLSBhbmQgY3JpdGljYWxseS1kYW1wZWQgc3ByaW5ncyBjYW4ndCBvdmVyc2hvb3QsIHNvXG4gICAgICAgICAgICAgICAgICogY2hlY2tpbmcgb25seSBmb3IgZGlzcGxhY2VtZW50IGlzIGVub3VnaC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAoZGFtcGluZ1JhdGlvIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmVsb2NpdHkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKGluaXRpYWxWZWxvY2l0eSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNhbGNHZW5lcmF0b3JWZWxvY2l0eShyZXNvbHZlU3ByaW5nLCB0LCBjdXJyZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaXNCZWxvd1ZlbG9jaXR5VGhyZXNob2xkID0gTWF0aC5hYnMoY3VycmVudFZlbG9jaXR5KSA8PSByZXN0U3BlZWQ7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNCZWxvd0Rpc3BsYWNlbWVudFRocmVzaG9sZCA9IE1hdGguYWJzKHRhcmdldCAtIGN1cnJlbnQpIDw9IHJlc3REZWx0YTtcbiAgICAgICAgICAgICAgICBzdGF0ZS5kb25lID1cbiAgICAgICAgICAgICAgICAgICAgaXNCZWxvd1ZlbG9jaXR5VGhyZXNob2xkICYmIGlzQmVsb3dEaXNwbGFjZW1lbnRUaHJlc2hvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5kb25lID0gdCA+PSBkdXJhdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXRlLnZhbHVlID0gc3RhdGUuZG9uZSA/IHRhcmdldCA6IGN1cnJlbnQ7XG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIHRvU3RyaW5nOiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYWxjdWxhdGVkRHVyYXRpb24gPSBNYXRoLm1pbihjYWxjR2VuZXJhdG9yRHVyYXRpb24oZ2VuZXJhdG9yKSwgbWF4R2VuZXJhdG9yRHVyYXRpb24pO1xuICAgICAgICAgICAgY29uc3QgZWFzaW5nID0gZ2VuZXJhdGVMaW5lYXJFYXNpbmcoKHByb2dyZXNzKSA9PiBnZW5lcmF0b3IubmV4dChjYWxjdWxhdGVkRHVyYXRpb24gKiBwcm9ncmVzcykudmFsdWUsIGNhbGN1bGF0ZWREdXJhdGlvbiwgMzApO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZWREdXJhdGlvbiArIFwibXMgXCIgKyBlYXNpbmc7XG4gICAgICAgIH0sXG4gICAgICAgIHRvVHJhbnNpdGlvbjogKCkgPT4geyB9LFxuICAgIH07XG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcbn1cbnNwcmluZy5hcHBseVRvT3B0aW9ucyA9IChvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgZ2VuZXJhdG9yT3B0aW9ucyA9IGNyZWF0ZUdlbmVyYXRvckVhc2luZyhvcHRpb25zLCAxMDAsIHNwcmluZyk7XG4gICAgb3B0aW9ucy5lYXNlID0gZ2VuZXJhdG9yT3B0aW9ucy5lYXNlO1xuICAgIG9wdGlvbnMuZHVyYXRpb24gPSBzZWNvbmRzVG9NaWxsaXNlY29uZHMoZ2VuZXJhdG9yT3B0aW9ucy5kdXJhdGlvbik7XG4gICAgb3B0aW9ucy50eXBlID0gXCJrZXlmcmFtZXNcIjtcbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5cbmV4cG9ydCB7IHNwcmluZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcGeneratorDuration: () => (/* binding */ calcGeneratorDuration),\n/* harmony export */ maxGeneratorDuration: () => (/* binding */ maxGeneratorDuration)\n/* harmony export */ });\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\n\n//# sourceMappingURL=calc-duration.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvY2FsYy1kdXJhdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXVEO0FBQ3ZEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vZ2VuZXJhdG9ycy91dGlscy9jYWxjLWR1cmF0aW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEltcGxlbWVudCBhIHByYWN0aWNhbCBtYXggZHVyYXRpb24gZm9yIGtleWZyYW1lIGdlbmVyYXRpb25cbiAqIHRvIHByZXZlbnQgaW5maW5pdGUgbG9vcHNcbiAqL1xuY29uc3QgbWF4R2VuZXJhdG9yRHVyYXRpb24gPSAyMDAwMDtcbmZ1bmN0aW9uIGNhbGNHZW5lcmF0b3JEdXJhdGlvbihnZW5lcmF0b3IpIHtcbiAgICBsZXQgZHVyYXRpb24gPSAwO1xuICAgIGNvbnN0IHRpbWVTdGVwID0gNTA7XG4gICAgbGV0IHN0YXRlID0gZ2VuZXJhdG9yLm5leHQoZHVyYXRpb24pO1xuICAgIHdoaWxlICghc3RhdGUuZG9uZSAmJiBkdXJhdGlvbiA8IG1heEdlbmVyYXRvckR1cmF0aW9uKSB7XG4gICAgICAgIGR1cmF0aW9uICs9IHRpbWVTdGVwO1xuICAgICAgICBzdGF0ZSA9IGdlbmVyYXRvci5uZXh0KGR1cmF0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIGR1cmF0aW9uID49IG1heEdlbmVyYXRvckR1cmF0aW9uID8gSW5maW5pdHkgOiBkdXJhdGlvbjtcbn1cblxuZXhwb3J0IHsgY2FsY0dlbmVyYXRvckR1cmF0aW9uLCBtYXhHZW5lcmF0b3JEdXJhdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2FsYy1kdXJhdGlvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs": +/*!************************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs ***! + \************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createGeneratorEasing: () => (/* binding */ createGeneratorEasing)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./calc-duration.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n\n\n\n/**\n * Create a progress => progress easing function from a generator.\n */\nfunction createGeneratorEasing(options, scale = 100, createGenerator) {\n const generator = createGenerator({ ...options, keyframes: [0, scale] });\n const duration = Math.min((0,_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__.calcGeneratorDuration)(generator), _calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__.maxGeneratorDuration);\n return {\n type: \"keyframes\",\n ease: (progress) => {\n return generator.next(duration * progress).value / scale;\n },\n duration: (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.millisecondsToSeconds)(duration),\n };\n}\n\n\n//# sourceMappingURL=create-generator-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvY3JlYXRlLWdlbmVyYXRvci1lYXNpbmcubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFxRDtBQUM2Qjs7QUFFbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0MsbUNBQW1DO0FBQzNFLDhCQUE4Qix5RUFBcUIsYUFBYSxvRUFBb0I7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsa0JBQWtCLG1FQUFxQjtBQUN2QztBQUNBOztBQUVpQztBQUNqQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvY3JlYXRlLWdlbmVyYXRvci1lYXNpbmcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1pbGxpc2Vjb25kc1RvU2Vjb25kcyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBjYWxjR2VuZXJhdG9yRHVyYXRpb24sIG1heEdlbmVyYXRvckR1cmF0aW9uIH0gZnJvbSAnLi9jYWxjLWR1cmF0aW9uLm1qcyc7XG5cbi8qKlxuICogQ3JlYXRlIGEgcHJvZ3Jlc3MgPT4gcHJvZ3Jlc3MgZWFzaW5nIGZ1bmN0aW9uIGZyb20gYSBnZW5lcmF0b3IuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUdlbmVyYXRvckVhc2luZyhvcHRpb25zLCBzY2FsZSA9IDEwMCwgY3JlYXRlR2VuZXJhdG9yKSB7XG4gICAgY29uc3QgZ2VuZXJhdG9yID0gY3JlYXRlR2VuZXJhdG9yKHsgLi4ub3B0aW9ucywga2V5ZnJhbWVzOiBbMCwgc2NhbGVdIH0pO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gTWF0aC5taW4oY2FsY0dlbmVyYXRvckR1cmF0aW9uKGdlbmVyYXRvciksIG1heEdlbmVyYXRvckR1cmF0aW9uKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcImtleWZyYW1lc1wiLFxuICAgICAgICBlYXNlOiAocHJvZ3Jlc3MpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubmV4dChkdXJhdGlvbiAqIHByb2dyZXNzKS52YWx1ZSAvIHNjYWxlO1xuICAgICAgICB9LFxuICAgICAgICBkdXJhdGlvbjogbWlsbGlzZWNvbmRzVG9TZWNvbmRzKGR1cmF0aW9uKSxcbiAgICB9O1xufVxuXG5leHBvcnQgeyBjcmVhdGVHZW5lcmF0b3JFYXNpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZS1nZW5lcmF0b3ItZWFzaW5nLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs ***! + \*************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isGenerator: () => (/* binding */ isGenerator)\n/* harmony export */ });\nfunction isGenerator(type) {\n return typeof type === \"function\" && \"applyToOptions\" in type;\n}\n\n\n//# sourceMappingURL=is-generator.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvaXMtZ2VuZXJhdG9yLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBOztBQUV1QjtBQUN2QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvaXMtZ2VuZXJhdG9yLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc0dlbmVyYXRvcih0eXBlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSBcImZ1bmN0aW9uXCIgJiYgXCJhcHBseVRvT3B0aW9uc1wiIGluIHR5cGU7XG59XG5cbmV4cG9ydCB7IGlzR2VuZXJhdG9yIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1nZW5lcmF0b3IubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcGeneratorVelocity: () => (/* binding */ calcGeneratorVelocity)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\");\n\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.velocityPerSecond)(current - resolveValue(prevT), t - prevT);\n}\n\n\n//# sourceMappingURL=velocity.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvdmVsb2NpdHkubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWlEOztBQUVqRCxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBLFdBQVcsK0RBQWlCO0FBQzVCOztBQUVpQztBQUNqQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvdmVsb2NpdHkubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZlbG9jaXR5UGVyU2Vjb25kIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuY29uc3QgdmVsb2NpdHlTYW1wbGVEdXJhdGlvbiA9IDU7IC8vIG1zXG5mdW5jdGlvbiBjYWxjR2VuZXJhdG9yVmVsb2NpdHkocmVzb2x2ZVZhbHVlLCB0LCBjdXJyZW50KSB7XG4gICAgY29uc3QgcHJldlQgPSBNYXRoLm1heCh0IC0gdmVsb2NpdHlTYW1wbGVEdXJhdGlvbiwgMCk7XG4gICAgcmV0dXJuIHZlbG9jaXR5UGVyU2Vjb25kKGN1cnJlbnQgLSByZXNvbHZlVmFsdWUocHJldlQpLCB0IC0gcHJldlQpO1xufVxuXG5leHBvcnQgeyBjYWxjR2VuZXJhdG9yVmVsb2NpdHkgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZlbG9jaXR5Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateMotionValue: () => (/* binding */ animateMotionValue)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _AsyncMotionValueAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../AsyncMotionValueAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs\");\n/* harmony import */ var _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../JSAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var _utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/get-value-transition.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var _utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/make-animation-instant.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\");\n/* harmony import */ var _utils_default_transitions_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/default-transitions.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs\");\n/* harmony import */ var _utils_get_final_keyframe_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/get-final-keyframe.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs\");\n/* harmony import */ var _utils_is_transition_defined_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/is-transition-defined.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\n const valueTransition = (0,_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_0__.getValueTransition)(transition, name) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(delay);\n const options = {\n keyframes: Array.isArray(target) ? target : [null, target],\n ease: \"easeOut\",\n velocity: value.getVelocity(),\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n name,\n motionValue: value,\n element: isHandoff ? undefined : element,\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unique transition settings for this value.\n */\n if (!(0,_utils_is_transition_defined_mjs__WEBPACK_IMPORTED_MODULE_2__.isTransitionDefined)(valueTransition)) {\n Object.assign(options, (0,_utils_default_transitions_mjs__WEBPACK_IMPORTED_MODULE_3__.getDefaultTransition)(name, options));\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n options.duration && (options.duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(options.duration));\n options.repeatDelay && (options.repeatDelay = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(options.repeatDelay));\n /**\n * Support deprecated way to set initial value. Prefer keyframe syntax.\n */\n if (options.from !== undefined) {\n options.keyframes[0] = options.from;\n }\n let shouldSkip = false;\n if (options.type === false ||\n (options.duration === 0 && !options.repeatDelay)) {\n (0,_utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_4__.makeAnimationInstant)(options);\n if (options.delay === 0) {\n shouldSkip = true;\n }\n }\n if (motion_utils__WEBPACK_IMPORTED_MODULE_5__.MotionGlobalConfig.instantAnimations ||\n motion_utils__WEBPACK_IMPORTED_MODULE_5__.MotionGlobalConfig.skipAnimations ||\n element?.shouldSkipAnimations) {\n shouldSkip = true;\n (0,_utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_4__.makeAnimationInstant)(options);\n options.delay = 0;\n }\n /**\n * If the transition type or easing has been explicitly set by the user\n * then we don't want to allow flattening the animation.\n */\n options.allowFlatten = !valueTransition.type && !valueTransition.ease;\n /**\n * If we can or must skip creating the animation, and apply only\n * the final keyframe, do so. We also check once keyframes are resolved but\n * this early check prevents the need to create an animation at all.\n */\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\n const finalKeyframe = (0,_utils_get_final_keyframe_mjs__WEBPACK_IMPORTED_MODULE_6__.getFinalKeyframe)(options.keyframes, valueTransition);\n if (finalKeyframe !== undefined) {\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_7__.frame.update(() => {\n options.onUpdate(finalKeyframe);\n options.onComplete();\n });\n return;\n }\n }\n return valueTransition.isSync\n ? new _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_8__.JSAnimation(options)\n : new _AsyncMotionValueAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__.AsyncMotionValueAnimation(options);\n};\n\n\n//# sourceMappingURL=motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvbW90aW9uLXZhbHVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUF5RTtBQUNJO0FBQzVCO0FBQ3NCO0FBQ0k7QUFDSDtBQUNMO0FBQ007QUFDdkI7O0FBRWxELGdFQUFnRTtBQUNoRSw0QkFBNEIsbUZBQWtCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxjQUFjO0FBQ3hCLHdCQUF3QixtRUFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxxRkFBbUI7QUFDNUIsK0JBQStCLG9GQUFvQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsbUVBQXFCO0FBQ2pFLGtEQUFrRCxtRUFBcUI7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx1RkFBb0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDREQUFrQjtBQUMxQixRQUFRLDREQUFrQjtBQUMxQjtBQUNBO0FBQ0EsUUFBUSx1RkFBb0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsK0VBQWdCO0FBQzlDO0FBQ0EsWUFBWSx1REFBSztBQUNqQjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyx5REFBVztBQUN6QixjQUFjLHFGQUF5QjtBQUN2Qzs7QUFFOEI7QUFDOUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL21vdGlvbi12YWx1ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2Vjb25kc1RvTWlsbGlzZWNvbmRzLCBNb3Rpb25HbG9iYWxDb25maWcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgQXN5bmNNb3Rpb25WYWx1ZUFuaW1hdGlvbiB9IGZyb20gJy4uL0FzeW5jTW90aW9uVmFsdWVBbmltYXRpb24ubWpzJztcbmltcG9ydCB7IEpTQW5pbWF0aW9uIH0gZnJvbSAnLi4vSlNBbmltYXRpb24ubWpzJztcbmltcG9ydCB7IGdldFZhbHVlVHJhbnNpdGlvbiB9IGZyb20gJy4uL3V0aWxzL2dldC12YWx1ZS10cmFuc2l0aW9uLm1qcyc7XG5pbXBvcnQgeyBtYWtlQW5pbWF0aW9uSW5zdGFudCB9IGZyb20gJy4uL3V0aWxzL21ha2UtYW5pbWF0aW9uLWluc3RhbnQubWpzJztcbmltcG9ydCB7IGdldERlZmF1bHRUcmFuc2l0aW9uIH0gZnJvbSAnLi4vdXRpbHMvZGVmYXVsdC10cmFuc2l0aW9ucy5tanMnO1xuaW1wb3J0IHsgZ2V0RmluYWxLZXlmcmFtZSB9IGZyb20gJy4uL3V0aWxzL2dldC1maW5hbC1rZXlmcmFtZS5tanMnO1xuaW1wb3J0IHsgaXNUcmFuc2l0aW9uRGVmaW5lZCB9IGZyb20gJy4uL3V0aWxzL2lzLXRyYW5zaXRpb24tZGVmaW5lZC5tanMnO1xuaW1wb3J0IHsgZnJhbWUgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcblxuY29uc3QgYW5pbWF0ZU1vdGlvblZhbHVlID0gKG5hbWUsIHZhbHVlLCB0YXJnZXQsIHRyYW5zaXRpb24gPSB7fSwgZWxlbWVudCwgaXNIYW5kb2ZmKSA9PiAob25Db21wbGV0ZSkgPT4ge1xuICAgIGNvbnN0IHZhbHVlVHJhbnNpdGlvbiA9IGdldFZhbHVlVHJhbnNpdGlvbih0cmFuc2l0aW9uLCBuYW1lKSB8fCB7fTtcbiAgICAvKipcbiAgICAgKiBNb3N0IHRyYW5zaXRpb24gdmFsdWVzIGFyZSBjdXJyZW50bHkgY29tcGxldGVseSBvdmVyd3JpdHRlbiBieSB2YWx1ZS1zcGVjaWZpY1xuICAgICAqIHRyYW5zaXRpb25zLiBJbiB0aGUgZnV0dXJlIGl0J2QgYmUgbmljZXIgdG8gYmxlbmQgdGhlc2UgdHJhbnNpdGlvbnMuIEJ1dCBmb3Igbm93XG4gICAgICogZGVsYXkgYWN0dWFsbHkgZG9lcyBpbmhlcml0IGZyb20gdGhlIHJvb3QgdHJhbnNpdGlvbiBpZiBub3QgdmFsdWUtc3BlY2lmaWMuXG4gICAgICovXG4gICAgY29uc3QgZGVsYXkgPSB2YWx1ZVRyYW5zaXRpb24uZGVsYXkgfHwgdHJhbnNpdGlvbi5kZWxheSB8fCAwO1xuICAgIC8qKlxuICAgICAqIEVsYXBzZWQgaXNuJ3QgYSBwdWJsaWMgdHJhbnNpdGlvbiBvcHRpb24gYnV0IGNhbiBiZSBwYXNzZWQgdGhyb3VnaCBmcm9tXG4gICAgICogb3B0aW1pemVkIGFwcGVhciBlZmZlY3RzIGluIG1pbGxpc2Vjb25kcy5cbiAgICAgKi9cbiAgICBsZXQgeyBlbGFwc2VkID0gMCB9ID0gdHJhbnNpdGlvbjtcbiAgICBlbGFwc2VkID0gZWxhcHNlZCAtIHNlY29uZHNUb01pbGxpc2Vjb25kcyhkZWxheSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAga2V5ZnJhbWVzOiBBcnJheS5pc0FycmF5KHRhcmdldCkgPyB0YXJnZXQgOiBbbnVsbCwgdGFyZ2V0XSxcbiAgICAgICAgZWFzZTogXCJlYXNlT3V0XCIsXG4gICAgICAgIHZlbG9jaXR5OiB2YWx1ZS5nZXRWZWxvY2l0eSgpLFxuICAgICAgICAuLi52YWx1ZVRyYW5zaXRpb24sXG4gICAgICAgIGRlbGF5OiAtZWxhcHNlZCxcbiAgICAgICAgb25VcGRhdGU6ICh2KSA9PiB7XG4gICAgICAgICAgICB2YWx1ZS5zZXQodik7XG4gICAgICAgICAgICB2YWx1ZVRyYW5zaXRpb24ub25VcGRhdGUgJiYgdmFsdWVUcmFuc2l0aW9uLm9uVXBkYXRlKHYpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKCk7XG4gICAgICAgICAgICB2YWx1ZVRyYW5zaXRpb24ub25Db21wbGV0ZSAmJiB2YWx1ZVRyYW5zaXRpb24ub25Db21wbGV0ZSgpO1xuICAgICAgICB9LFxuICAgICAgICBuYW1lLFxuICAgICAgICBtb3Rpb25WYWx1ZTogdmFsdWUsXG4gICAgICAgIGVsZW1lbnQ6IGlzSGFuZG9mZiA/IHVuZGVmaW5lZCA6IGVsZW1lbnQsXG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBJZiB0aGVyZSdzIG5vIHRyYW5zaXRpb24gZGVmaW5lZCBmb3IgdGhpcyB2YWx1ZSwgd2UgY2FuIGdlbmVyYXRlXG4gICAgICogdW5pcXVlIHRyYW5zaXRpb24gc2V0dGluZ3MgZm9yIHRoaXMgdmFsdWUuXG4gICAgICovXG4gICAgaWYgKCFpc1RyYW5zaXRpb25EZWZpbmVkKHZhbHVlVHJhbnNpdGlvbikpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihvcHRpb25zLCBnZXREZWZhdWx0VHJhbnNpdGlvbihuYW1lLCBvcHRpb25zKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEJvdGggV0FBUEkgYW5kIG91ciBpbnRlcm5hbCBhbmltYXRpb24gZnVuY3Rpb25zIHVzZSBkdXJhdGlvbnNcbiAgICAgKiBhcyBkZWZpbmVkIGJ5IG1pbGxpc2Vjb25kcywgd2hpbGUgb3VyIGV4dGVybmFsIEFQSSBkZWZpbmVzIHRoZW1cbiAgICAgKiBhcyBzZWNvbmRzLlxuICAgICAqL1xuICAgIG9wdGlvbnMuZHVyYXRpb24gJiYgKG9wdGlvbnMuZHVyYXRpb24gPSBzZWNvbmRzVG9NaWxsaXNlY29uZHMob3B0aW9ucy5kdXJhdGlvbikpO1xuICAgIG9wdGlvbnMucmVwZWF0RGVsYXkgJiYgKG9wdGlvbnMucmVwZWF0RGVsYXkgPSBzZWNvbmRzVG9NaWxsaXNlY29uZHMob3B0aW9ucy5yZXBlYXREZWxheSkpO1xuICAgIC8qKlxuICAgICAqIFN1cHBvcnQgZGVwcmVjYXRlZCB3YXkgdG8gc2V0IGluaXRpYWwgdmFsdWUuIFByZWZlciBrZXlmcmFtZSBzeW50YXguXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMuZnJvbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG9wdGlvbnMua2V5ZnJhbWVzWzBdID0gb3B0aW9ucy5mcm9tO1xuICAgIH1cbiAgICBsZXQgc2hvdWxkU2tpcCA9IGZhbHNlO1xuICAgIGlmIChvcHRpb25zLnR5cGUgPT09IGZhbHNlIHx8XG4gICAgICAgIChvcHRpb25zLmR1cmF0aW9uID09PSAwICYmICFvcHRpb25zLnJlcGVhdERlbGF5KSkge1xuICAgICAgICBtYWtlQW5pbWF0aW9uSW5zdGFudChvcHRpb25zKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuZGVsYXkgPT09IDApIHtcbiAgICAgICAgICAgIHNob3VsZFNraXAgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChNb3Rpb25HbG9iYWxDb25maWcuaW5zdGFudEFuaW1hdGlvbnMgfHxcbiAgICAgICAgTW90aW9uR2xvYmFsQ29uZmlnLnNraXBBbmltYXRpb25zIHx8XG4gICAgICAgIGVsZW1lbnQ/LnNob3VsZFNraXBBbmltYXRpb25zKSB7XG4gICAgICAgIHNob3VsZFNraXAgPSB0cnVlO1xuICAgICAgICBtYWtlQW5pbWF0aW9uSW5zdGFudChvcHRpb25zKTtcbiAgICAgICAgb3B0aW9ucy5kZWxheSA9IDA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIHRoZSB0cmFuc2l0aW9uIHR5cGUgb3IgZWFzaW5nIGhhcyBiZWVuIGV4cGxpY2l0bHkgc2V0IGJ5IHRoZSB1c2VyXG4gICAgICogdGhlbiB3ZSBkb24ndCB3YW50IHRvIGFsbG93IGZsYXR0ZW5pbmcgdGhlIGFuaW1hdGlvbi5cbiAgICAgKi9cbiAgICBvcHRpb25zLmFsbG93RmxhdHRlbiA9ICF2YWx1ZVRyYW5zaXRpb24udHlwZSAmJiAhdmFsdWVUcmFuc2l0aW9uLmVhc2U7XG4gICAgLyoqXG4gICAgICogSWYgd2UgY2FuIG9yIG11c3Qgc2tpcCBjcmVhdGluZyB0aGUgYW5pbWF0aW9uLCBhbmQgYXBwbHkgb25seVxuICAgICAqIHRoZSBmaW5hbCBrZXlmcmFtZSwgZG8gc28uIFdlIGFsc28gY2hlY2sgb25jZSBrZXlmcmFtZXMgYXJlIHJlc29sdmVkIGJ1dFxuICAgICAqIHRoaXMgZWFybHkgY2hlY2sgcHJldmVudHMgdGhlIG5lZWQgdG8gY3JlYXRlIGFuIGFuaW1hdGlvbiBhdCBhbGwuXG4gICAgICovXG4gICAgaWYgKHNob3VsZFNraXAgJiYgIWlzSGFuZG9mZiAmJiB2YWx1ZS5nZXQoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGZpbmFsS2V5ZnJhbWUgPSBnZXRGaW5hbEtleWZyYW1lKG9wdGlvbnMua2V5ZnJhbWVzLCB2YWx1ZVRyYW5zaXRpb24pO1xuICAgICAgICBpZiAoZmluYWxLZXlmcmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmcmFtZS51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMub25VcGRhdGUoZmluYWxLZXlmcmFtZSk7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5vbkNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVUcmFuc2l0aW9uLmlzU3luY1xuICAgICAgICA/IG5ldyBKU0FuaW1hdGlvbihvcHRpb25zKVxuICAgICAgICA6IG5ldyBBc3luY01vdGlvblZhbHVlQW5pbWF0aW9uKG9wdGlvbnMpO1xufTtcblxuZXhwb3J0IHsgYW5pbWF0ZU1vdGlvblZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb3Rpb24tdmFsdWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateTarget: () => (/* binding */ animateTarget)\n/* harmony export */ });\n/* harmony import */ var _utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/get-value-transition.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var _utils_resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/resolve-transition.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs\");\n/* harmony import */ var _render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../render/utils/keys-position.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\");\n/* harmony import */ var _render_utils_setters_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../render/utils/setters.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/setters.mjs\");\n/* harmony import */ var _value_will_change_add_will_change_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../value/will-change/add-will-change.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs\");\n/* harmony import */ var _optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../optimized-appear/get-appear-id.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs\");\n/* harmony import */ var _motion_value_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n let { transition, transitionEnd, ...target } = targetAndTransition;\n const defaultTransition = visualElement.getDefaultTransition();\n transition = transition\n ? (0,_utils_resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveTransition)(transition, defaultTransition)\n : defaultTransition;\n const reduceMotion = transition?.reduceMotion;\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key, visualElement.latestValues[key] ?? null);\n const valueTarget = target[key];\n if (valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n ...(0,_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_1__.getValueTransition)(transition || {}, key),\n };\n /**\n * If the value is already at the defined target, skip the animation.\n */\n const currentValue = value.get();\n if (currentValue !== undefined &&\n !value.isAnimating &&\n !Array.isArray(valueTarget) &&\n valueTarget === currentValue &&\n !valueTransition.velocity) {\n continue;\n }\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false;\n if (window.MotionHandoffAnimation) {\n const appearId = (0,_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_2__.getOptimisedAppearId)(visualElement);\n if (appearId) {\n const startTime = window.MotionHandoffAnimation(appearId, key, _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__.frame);\n if (startTime !== null) {\n valueTransition.startTime = startTime;\n isHandoff = true;\n }\n }\n }\n (0,_value_will_change_add_will_change_mjs__WEBPACK_IMPORTED_MODULE_4__.addValueToWillChange)(visualElement, key);\n const shouldReduceMotion = reduceMotion ?? visualElement.shouldReduceMotion;\n value.start((0,_motion_value_mjs__WEBPACK_IMPORTED_MODULE_5__.animateMotionValue)(key, value, valueTarget, shouldReduceMotion && _render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_6__.positionalKeys.has(key)\n ? { type: false }\n : valueTransition, visualElement, isHandoff));\n const animation = value.animation;\n if (animation) {\n animations.push(animation);\n }\n }\n if (transitionEnd) {\n const applyTransitionEnd = () => _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__.frame.update(() => {\n transitionEnd && (0,_render_utils_setters_mjs__WEBPACK_IMPORTED_MODULE_7__.setTarget)(visualElement, transitionEnd);\n });\n if (animations.length) {\n Promise.all(animations).then(applyTransitionEnd);\n }\n else {\n applyTransitionEnd();\n }\n }\n return animations;\n}\n\n\n//# sourceMappingURL=visual-element-target.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQtdGFyZ2V0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBdUU7QUFDSDtBQUNFO0FBQ1g7QUFDd0I7QUFDTjtBQUNyQjtBQUNOOztBQUVsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsK0JBQStCO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkRBQTZELHNDQUFzQyxJQUFJO0FBQ3ZHLFVBQVUsdUNBQXVDO0FBQ2pEO0FBQ0E7QUFDQSxVQUFVLGdGQUFpQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1GQUFrQixpQkFBaUI7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLHlGQUFvQjtBQUNqRDtBQUNBLCtFQUErRSx1REFBSztBQUNwRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDRGQUFvQjtBQUM1QjtBQUNBLG9CQUFvQixxRUFBa0IsZ0RBQWdELDJFQUFjO0FBQ3BHLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyx1REFBSztBQUM5Qyw2QkFBNkIsb0VBQVM7QUFDdEMsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL3Zpc3VhbC1lbGVtZW50LXRhcmdldC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VmFsdWVUcmFuc2l0aW9uIH0gZnJvbSAnLi4vdXRpbHMvZ2V0LXZhbHVlLXRyYW5zaXRpb24ubWpzJztcbmltcG9ydCB7IHJlc29sdmVUcmFuc2l0aW9uIH0gZnJvbSAnLi4vdXRpbHMvcmVzb2x2ZS10cmFuc2l0aW9uLm1qcyc7XG5pbXBvcnQgeyBwb3NpdGlvbmFsS2V5cyB9IGZyb20gJy4uLy4uL3JlbmRlci91dGlscy9rZXlzLXBvc2l0aW9uLm1qcyc7XG5pbXBvcnQgeyBzZXRUYXJnZXQgfSBmcm9tICcuLi8uLi9yZW5kZXIvdXRpbHMvc2V0dGVycy5tanMnO1xuaW1wb3J0IHsgYWRkVmFsdWVUb1dpbGxDaGFuZ2UgfSBmcm9tICcuLi8uLi92YWx1ZS93aWxsLWNoYW5nZS9hZGQtd2lsbC1jaGFuZ2UubWpzJztcbmltcG9ydCB7IGdldE9wdGltaXNlZEFwcGVhcklkIH0gZnJvbSAnLi4vb3B0aW1pemVkLWFwcGVhci9nZXQtYXBwZWFyLWlkLm1qcyc7XG5pbXBvcnQgeyBhbmltYXRlTW90aW9uVmFsdWUgfSBmcm9tICcuL21vdGlvbi12YWx1ZS5tanMnO1xuaW1wb3J0IHsgZnJhbWUgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcblxuLyoqXG4gKiBEZWNpZGUgd2hldGhlciB3ZSBzaG91bGQgYmxvY2sgdGhpcyBhbmltYXRpb24uIFByZXZpb3VzbHksIHdlIGFjaGlldmVkIHRoaXNcbiAqIGp1c3QgYnkgY2hlY2tpbmcgd2hldGhlciB0aGUga2V5IHdhcyBsaXN0ZWQgaW4gcHJvdGVjdGVkS2V5cywgYnV0IHRoaXNcbiAqIHBvc2VkIHByb2JsZW1zIGlmIGFuIGFuaW1hdGlvbiB3YXMgdHJpZ2dlcmVkIGJ5IGFmdGVyQ2hpbGRyZW4gYW5kIHByb3RlY3RlZEtleXNcbiAqIGhhZCBiZWVuIHNldCB0byB0cnVlIGluIHRoZSBtZWFudGltZS5cbiAqL1xuZnVuY3Rpb24gc2hvdWxkQmxvY2tBbmltYXRpb24oeyBwcm90ZWN0ZWRLZXlzLCBuZWVkc0FuaW1hdGluZyB9LCBrZXkpIHtcbiAgICBjb25zdCBzaG91bGRCbG9jayA9IHByb3RlY3RlZEtleXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBuZWVkc0FuaW1hdGluZ1trZXldICE9PSB0cnVlO1xuICAgIG5lZWRzQW5pbWF0aW5nW2tleV0gPSBmYWxzZTtcbiAgICByZXR1cm4gc2hvdWxkQmxvY2s7XG59XG5mdW5jdGlvbiBhbmltYXRlVGFyZ2V0KHZpc3VhbEVsZW1lbnQsIHRhcmdldEFuZFRyYW5zaXRpb24sIHsgZGVsYXkgPSAwLCB0cmFuc2l0aW9uT3ZlcnJpZGUsIHR5cGUgfSA9IHt9KSB7XG4gICAgbGV0IHsgdHJhbnNpdGlvbiwgdHJhbnNpdGlvbkVuZCwgLi4udGFyZ2V0IH0gPSB0YXJnZXRBbmRUcmFuc2l0aW9uO1xuICAgIGNvbnN0IGRlZmF1bHRUcmFuc2l0aW9uID0gdmlzdWFsRWxlbWVudC5nZXREZWZhdWx0VHJhbnNpdGlvbigpO1xuICAgIHRyYW5zaXRpb24gPSB0cmFuc2l0aW9uXG4gICAgICAgID8gcmVzb2x2ZVRyYW5zaXRpb24odHJhbnNpdGlvbiwgZGVmYXVsdFRyYW5zaXRpb24pXG4gICAgICAgIDogZGVmYXVsdFRyYW5zaXRpb247XG4gICAgY29uc3QgcmVkdWNlTW90aW9uID0gdHJhbnNpdGlvbj8ucmVkdWNlTW90aW9uO1xuICAgIGlmICh0cmFuc2l0aW9uT3ZlcnJpZGUpXG4gICAgICAgIHRyYW5zaXRpb24gPSB0cmFuc2l0aW9uT3ZlcnJpZGU7XG4gICAgY29uc3QgYW5pbWF0aW9ucyA9IFtdO1xuICAgIGNvbnN0IGFuaW1hdGlvblR5cGVTdGF0ZSA9IHR5cGUgJiZcbiAgICAgICAgdmlzdWFsRWxlbWVudC5hbmltYXRpb25TdGF0ZSAmJlxuICAgICAgICB2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlLmdldFN0YXRlKClbdHlwZV07XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmlzdWFsRWxlbWVudC5nZXRWYWx1ZShrZXksIHZpc3VhbEVsZW1lbnQubGF0ZXN0VmFsdWVzW2tleV0gPz8gbnVsbCk7XG4gICAgICAgIGNvbnN0IHZhbHVlVGFyZ2V0ID0gdGFyZ2V0W2tleV07XG4gICAgICAgIGlmICh2YWx1ZVRhcmdldCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAoYW5pbWF0aW9uVHlwZVN0YXRlICYmXG4gICAgICAgICAgICAgICAgc2hvdWxkQmxvY2tBbmltYXRpb24oYW5pbWF0aW9uVHlwZVN0YXRlLCBrZXkpKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWVUcmFuc2l0aW9uID0ge1xuICAgICAgICAgICAgZGVsYXksXG4gICAgICAgICAgICAuLi5nZXRWYWx1ZVRyYW5zaXRpb24odHJhbnNpdGlvbiB8fCB7fSwga2V5KSxcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IGF0IHRoZSBkZWZpbmVkIHRhcmdldCwgc2tpcCB0aGUgYW5pbWF0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdmFsdWUuZ2V0KCk7XG4gICAgICAgIGlmIChjdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgIXZhbHVlLmlzQW5pbWF0aW5nICYmXG4gICAgICAgICAgICAhQXJyYXkuaXNBcnJheSh2YWx1ZVRhcmdldCkgJiZcbiAgICAgICAgICAgIHZhbHVlVGFyZ2V0ID09PSBjdXJyZW50VmFsdWUgJiZcbiAgICAgICAgICAgICF2YWx1ZVRyYW5zaXRpb24udmVsb2NpdHkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIGEgdmFsdWUgaXMgYmVpbmcgYW5pbWF0ZWQsIGNoZWNrXG4gICAgICAgICAqIHRvIHNlZSBpZiB3ZSdyZSBoYW5kbGluZyBvZmYgZnJvbSBhbiBleGlzdGluZyBhbmltYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgaXNIYW5kb2ZmID0gZmFsc2U7XG4gICAgICAgIGlmICh3aW5kb3cuTW90aW9uSGFuZG9mZkFuaW1hdGlvbikge1xuICAgICAgICAgICAgY29uc3QgYXBwZWFySWQgPSBnZXRPcHRpbWlzZWRBcHBlYXJJZCh2aXN1YWxFbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChhcHBlYXJJZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHdpbmRvdy5Nb3Rpb25IYW5kb2ZmQW5pbWF0aW9uKGFwcGVhcklkLCBrZXksIGZyYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRUaW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlVHJhbnNpdGlvbi5zdGFydFRpbWUgPSBzdGFydFRpbWU7XG4gICAgICAgICAgICAgICAgICAgIGlzSGFuZG9mZiA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGFkZFZhbHVlVG9XaWxsQ2hhbmdlKHZpc3VhbEVsZW1lbnQsIGtleSk7XG4gICAgICAgIGNvbnN0IHNob3VsZFJlZHVjZU1vdGlvbiA9IHJlZHVjZU1vdGlvbiA/PyB2aXN1YWxFbGVtZW50LnNob3VsZFJlZHVjZU1vdGlvbjtcbiAgICAgICAgdmFsdWUuc3RhcnQoYW5pbWF0ZU1vdGlvblZhbHVlKGtleSwgdmFsdWUsIHZhbHVlVGFyZ2V0LCBzaG91bGRSZWR1Y2VNb3Rpb24gJiYgcG9zaXRpb25hbEtleXMuaGFzKGtleSlcbiAgICAgICAgICAgID8geyB0eXBlOiBmYWxzZSB9XG4gICAgICAgICAgICA6IHZhbHVlVHJhbnNpdGlvbiwgdmlzdWFsRWxlbWVudCwgaXNIYW5kb2ZmKSk7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9IHZhbHVlLmFuaW1hdGlvbjtcbiAgICAgICAgaWYgKGFuaW1hdGlvbikge1xuICAgICAgICAgICAgYW5pbWF0aW9ucy5wdXNoKGFuaW1hdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRyYW5zaXRpb25FbmQpIHtcbiAgICAgICAgY29uc3QgYXBwbHlUcmFuc2l0aW9uRW5kID0gKCkgPT4gZnJhbWUudXBkYXRlKCgpID0+IHtcbiAgICAgICAgICAgIHRyYW5zaXRpb25FbmQgJiYgc2V0VGFyZ2V0KHZpc3VhbEVsZW1lbnQsIHRyYW5zaXRpb25FbmQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGFuaW1hdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBQcm9taXNlLmFsbChhbmltYXRpb25zKS50aGVuKGFwcGx5VHJhbnNpdGlvbkVuZCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhcHBseVRyYW5zaXRpb25FbmQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYW5pbWF0aW9ucztcbn1cblxuZXhwb3J0IHsgYW5pbWF0ZVRhcmdldCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmlzdWFsLWVsZW1lbnQtdGFyZ2V0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs": +/*!*****************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateVariant: () => (/* binding */ animateVariant)\n/* harmony export */ });\n/* harmony import */ var _render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/utils/resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/calc-child-stagger.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs\");\n/* harmony import */ var _visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./visual-element-target.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs\");\n\n\n\n\nfunction animateVariant(visualElement, variant, options = {}) {\n const resolved = (0,_render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveVariant)(visualElement, variant, options.type === \"exit\"\n ? visualElement.presenceContext?.custom\n : undefined);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => Promise.all((0,_visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_1__.animateTarget)(visualElement, resolved, options))\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, forwardDelay, delayChildren, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delay = 0, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n for (const child of visualElement.variantChildren) {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delay +\n (typeof delayChildren === \"function\" ? 0 : delayChildren) +\n (0,_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_2__.calcChildStagger)(visualElement.variantChildren, child, delayChildren, staggerChildren, staggerDirection),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n }\n return Promise.all(animations);\n}\n\n\n//# sourceMappingURL=visual-element-variant.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQtdmFyaWFudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFpRjtBQUNkO0FBQ1A7O0FBRTVELDREQUE0RDtBQUM1RCxxQkFBcUIsMEZBQWM7QUFDbkM7QUFDQTtBQUNBLFVBQVUsMERBQTBEO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIseUVBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isd0RBQXdEO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwrRUFBZ0I7QUFDaEMsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFMEI7QUFDMUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL3Zpc3VhbC1lbGVtZW50LXZhcmlhbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmVWYXJpYW50IH0gZnJvbSAnLi4vLi4vcmVuZGVyL3V0aWxzL3Jlc29sdmUtZHluYW1pYy12YXJpYW50cy5tanMnO1xuaW1wb3J0IHsgY2FsY0NoaWxkU3RhZ2dlciB9IGZyb20gJy4uL3V0aWxzL2NhbGMtY2hpbGQtc3RhZ2dlci5tanMnO1xuaW1wb3J0IHsgYW5pbWF0ZVRhcmdldCB9IGZyb20gJy4vdmlzdWFsLWVsZW1lbnQtdGFyZ2V0Lm1qcyc7XG5cbmZ1bmN0aW9uIGFuaW1hdGVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIHZhcmlhbnQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgdmFyaWFudCwgb3B0aW9ucy50eXBlID09PSBcImV4aXRcIlxuICAgICAgICA/IHZpc3VhbEVsZW1lbnQucHJlc2VuY2VDb250ZXh0Py5jdXN0b21cbiAgICAgICAgOiB1bmRlZmluZWQpO1xuICAgIGxldCB7IHRyYW5zaXRpb24gPSB2aXN1YWxFbGVtZW50LmdldERlZmF1bHRUcmFuc2l0aW9uKCkgfHwge30gfSA9IHJlc29sdmVkIHx8IHt9O1xuICAgIGlmIChvcHRpb25zLnRyYW5zaXRpb25PdmVycmlkZSkge1xuICAgICAgICB0cmFuc2l0aW9uID0gb3B0aW9ucy50cmFuc2l0aW9uT3ZlcnJpZGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIHdlIGhhdmUgYSB2YXJpYW50LCBjcmVhdGUgYSBjYWxsYmFjayB0aGF0IHJ1bnMgaXQgYXMgYW4gYW5pbWF0aW9uLlxuICAgICAqIE90aGVyd2lzZSwgd2UgcmVzb2x2ZSBhIFByb21pc2UgaW1tZWRpYXRlbHkgZm9yIGEgY29tcG9zYWJsZSBuby1vcC5cbiAgICAgKi9cbiAgICBjb25zdCBnZXRBbmltYXRpb24gPSByZXNvbHZlZFxuICAgICAgICA/ICgpID0+IFByb21pc2UuYWxsKGFuaW1hdGVUYXJnZXQodmlzdWFsRWxlbWVudCwgcmVzb2x2ZWQsIG9wdGlvbnMpKVxuICAgICAgICA6ICgpID0+IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIC8qKlxuICAgICAqIElmIHdlIGhhdmUgY2hpbGRyZW4sIGNyZWF0ZSBhIGNhbGxiYWNrIHRoYXQgcnVucyBhbGwgdGhlaXIgYW5pbWF0aW9ucy5cbiAgICAgKiBPdGhlcndpc2UsIHdlIHJlc29sdmUgYSBQcm9taXNlIGltbWVkaWF0ZWx5IGZvciBhIGNvbXBvc2FibGUgbm8tb3AuXG4gICAgICovXG4gICAgY29uc3QgZ2V0Q2hpbGRBbmltYXRpb25zID0gdmlzdWFsRWxlbWVudC52YXJpYW50Q2hpbGRyZW4gJiYgdmlzdWFsRWxlbWVudC52YXJpYW50Q2hpbGRyZW4uc2l6ZVxuICAgICAgICA/IChmb3J3YXJkRGVsYXkgPSAwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGRlbGF5Q2hpbGRyZW4gPSAwLCBzdGFnZ2VyQ2hpbGRyZW4sIHN0YWdnZXJEaXJlY3Rpb24sIH0gPSB0cmFuc2l0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGVDaGlsZHJlbih2aXN1YWxFbGVtZW50LCB2YXJpYW50LCBmb3J3YXJkRGVsYXksIGRlbGF5Q2hpbGRyZW4sIHN0YWdnZXJDaGlsZHJlbiwgc3RhZ2dlckRpcmVjdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdHJhbnNpdGlvbiBleHBsaWNpdGx5IGRlZmluZXMgYSBcIndoZW5cIiBvcHRpb24sIHdlIG5lZWQgdG8gcmVzb2x2ZSBlaXRoZXJcbiAgICAgKiB0aGlzIGFuaW1hdGlvbiBvciBhbGwgY2hpbGRyZW4gYW5pbWF0aW9ucyBiZWZvcmUgcGxheWluZyB0aGUgb3RoZXIuXG4gICAgICovXG4gICAgY29uc3QgeyB3aGVuIH0gPSB0cmFuc2l0aW9uO1xuICAgIGlmICh3aGVuKSB7XG4gICAgICAgIGNvbnN0IFtmaXJzdCwgbGFzdF0gPSB3aGVuID09PSBcImJlZm9yZUNoaWxkcmVuXCJcbiAgICAgICAgICAgID8gW2dldEFuaW1hdGlvbiwgZ2V0Q2hpbGRBbmltYXRpb25zXVxuICAgICAgICAgICAgOiBbZ2V0Q2hpbGRBbmltYXRpb25zLCBnZXRBbmltYXRpb25dO1xuICAgICAgICByZXR1cm4gZmlyc3QoKS50aGVuKCgpID0+IGxhc3QoKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2dldEFuaW1hdGlvbigpLCBnZXRDaGlsZEFuaW1hdGlvbnMob3B0aW9ucy5kZWxheSldKTtcbiAgICB9XG59XG5mdW5jdGlvbiBhbmltYXRlQ2hpbGRyZW4odmlzdWFsRWxlbWVudCwgdmFyaWFudCwgZGVsYXkgPSAwLCBkZWxheUNoaWxkcmVuID0gMCwgc3RhZ2dlckNoaWxkcmVuID0gMCwgc3RhZ2dlckRpcmVjdGlvbiA9IDEsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBhbmltYXRpb25zID0gW107XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB2aXN1YWxFbGVtZW50LnZhcmlhbnRDaGlsZHJlbikge1xuICAgICAgICBjaGlsZC5ub3RpZnkoXCJBbmltYXRpb25TdGFydFwiLCB2YXJpYW50KTtcbiAgICAgICAgYW5pbWF0aW9ucy5wdXNoKGFuaW1hdGVWYXJpYW50KGNoaWxkLCB2YXJpYW50LCB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgZGVsYXk6IGRlbGF5ICtcbiAgICAgICAgICAgICAgICAodHlwZW9mIGRlbGF5Q2hpbGRyZW4gPT09IFwiZnVuY3Rpb25cIiA/IDAgOiBkZWxheUNoaWxkcmVuKSArXG4gICAgICAgICAgICAgICAgY2FsY0NoaWxkU3RhZ2dlcih2aXN1YWxFbGVtZW50LnZhcmlhbnRDaGlsZHJlbiwgY2hpbGQsIGRlbGF5Q2hpbGRyZW4sIHN0YWdnZXJDaGlsZHJlbiwgc3RhZ2dlckRpcmVjdGlvbiksXG4gICAgICAgIH0pLnRoZW4oKCkgPT4gY2hpbGQubm90aWZ5KFwiQW5pbWF0aW9uQ29tcGxldGVcIiwgdmFyaWFudCkpKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGFuaW1hdGlvbnMpO1xufVxuXG5leHBvcnQgeyBhbmltYXRlVmFyaWFudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmlzdWFsLWVsZW1lbnQtdmFyaWFudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateVisualElement: () => (/* binding */ animateVisualElement)\n/* harmony export */ });\n/* harmony import */ var _render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../render/utils/resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./visual-element-target.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs\");\n/* harmony import */ var _visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./visual-element-variant.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs\");\n\n\n\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => (0,_visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__.animateVariant)(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = (0,_visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__.animateVariant)(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? (0,_render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_1__.resolveVariant)(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all((0,_visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_2__.animateTarget)(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => {\n visualElement.notify(\"AnimationComplete\", definition);\n });\n}\n\n\n//# sourceMappingURL=visual-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBaUY7QUFDckI7QUFDRTs7QUFFOUQscUVBQXFFO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCwyRUFBYztBQUNyRTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMkVBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0EsY0FBYywwRkFBYztBQUM1QjtBQUNBLGdDQUFnQyx5RUFBYTtBQUM3QztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vaW50ZXJmYWNlcy92aXN1YWwtZWxlbWVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZVZhcmlhbnQgfSBmcm9tICcuLi8uLi9yZW5kZXIvdXRpbHMvcmVzb2x2ZS1keW5hbWljLXZhcmlhbnRzLm1qcyc7XG5pbXBvcnQgeyBhbmltYXRlVGFyZ2V0IH0gZnJvbSAnLi92aXN1YWwtZWxlbWVudC10YXJnZXQubWpzJztcbmltcG9ydCB7IGFuaW1hdGVWYXJpYW50IH0gZnJvbSAnLi92aXN1YWwtZWxlbWVudC12YXJpYW50Lm1qcyc7XG5cbmZ1bmN0aW9uIGFuaW1hdGVWaXN1YWxFbGVtZW50KHZpc3VhbEVsZW1lbnQsIGRlZmluaXRpb24sIG9wdGlvbnMgPSB7fSkge1xuICAgIHZpc3VhbEVsZW1lbnQubm90aWZ5KFwiQW5pbWF0aW9uU3RhcnRcIiwgZGVmaW5pdGlvbik7XG4gICAgbGV0IGFuaW1hdGlvbjtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKSkge1xuICAgICAgICBjb25zdCBhbmltYXRpb25zID0gZGVmaW5pdGlvbi5tYXAoKHZhcmlhbnQpID0+IGFuaW1hdGVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIHZhcmlhbnQsIG9wdGlvbnMpKTtcbiAgICAgICAgYW5pbWF0aW9uID0gUHJvbWlzZS5hbGwoYW5pbWF0aW9ucyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBkZWZpbml0aW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGFuaW1hdGlvbiA9IGFuaW1hdGVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIGRlZmluaXRpb24sIG9wdGlvbnMpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWREZWZpbml0aW9uID0gdHlwZW9mIGRlZmluaXRpb24gPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgPyByZXNvbHZlVmFyaWFudCh2aXN1YWxFbGVtZW50LCBkZWZpbml0aW9uLCBvcHRpb25zLmN1c3RvbSlcbiAgICAgICAgICAgIDogZGVmaW5pdGlvbjtcbiAgICAgICAgYW5pbWF0aW9uID0gUHJvbWlzZS5hbGwoYW5pbWF0ZVRhcmdldCh2aXN1YWxFbGVtZW50LCByZXNvbHZlZERlZmluaXRpb24sIG9wdGlvbnMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGFuaW1hdGlvbi50aGVuKCgpID0+IHtcbiAgICAgICAgdmlzdWFsRWxlbWVudC5ub3RpZnkoXCJBbmltYXRpb25Db21wbGV0ZVwiLCBkZWZpbml0aW9uKTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IHsgYW5pbWF0ZVZpc3VhbEVsZW1lbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZpc3VhbC1lbGVtZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DOMKeyframesResolver: () => (/* binding */ DOMKeyframesResolver)\n/* harmony export */ });\n/* harmony import */ var _render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../render/utils/keys-position.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\");\n/* harmony import */ var _value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../value/types/dimensions.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\");\n/* harmony import */ var _utils_css_variables_conversion_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/css-variables-conversion.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs\");\n/* harmony import */ var _utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./KeyframesResolver.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var _utils_is_none_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/is-none.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs\");\n/* harmony import */ var _utils_make_none_animatable_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/make-none-animatable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs\");\n/* harmony import */ var _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/unit-conversion.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\");\n\n\n\n\n\n\n\n\n\nclass DOMKeyframesResolver extends _KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__.KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {\n super(unresolvedKeyframes, onComplete, name, motionValue, element, true);\n }\n readKeyframes() {\n const { unresolvedKeyframes, element, name } = this;\n if (!element || !element.current)\n return;\n super.readKeyframes();\n /**\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n let keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\") {\n keyframe = keyframe.trim();\n if ((0,_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableToken)(keyframe)) {\n const resolved = (0,_utils_css_variables_conversion_mjs__WEBPACK_IMPORTED_MODULE_2__.getVariableValue)(keyframe, element.current);\n if (resolved !== undefined) {\n unresolvedKeyframes[i] = resolved;\n }\n if (i === unresolvedKeyframes.length - 1) {\n this.finalKeyframe = keyframe;\n }\n }\n }\n }\n /**\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\n * have a far bigger performance impact.\n */\n this.resolveNoneKeyframes();\n /**\n * Check to see if unit type has changed. If so schedule jobs that will\n * temporarily set styles to the destination keyframes.\n * Skip if we have more than two keyframes or this isn't a positional value.\n * TODO: We can throw if there are multiple keyframes and the value type changes.\n */\n if (!_render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_3__.positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n return;\n }\n const [origin, target] = unresolvedKeyframes;\n const originType = (0,_value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__.findDimensionValueType)(origin);\n const targetType = (0,_value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__.findDimensionValueType)(target);\n /**\n * If one keyframe contains embedded CSS variables (e.g. in calc()) and the other\n * doesn't, we need to measure to convert to pixels. This handles GitHub issue #3410.\n */\n const originHasVar = (0,_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.containsCSSVariable)(origin);\n const targetHasVar = (0,_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.containsCSSVariable)(target);\n if (originHasVar !== targetHasVar && _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name]) {\n this.needsMeasurement = true;\n return;\n }\n /**\n * Either we don't recognise these value types or we can animate between them.\n */\n if (originType === targetType)\n return;\n /**\n * If both values are numbers or pixels, we can animate between them by\n * converting them to numbers.\n */\n if ((0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.isNumOrPxType)(originType) && (0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.isNumOrPxType)(targetType)) {\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const value = unresolvedKeyframes[i];\n if (typeof value === \"string\") {\n unresolvedKeyframes[i] = parseFloat(value);\n }\n }\n }\n else if (_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name]) {\n /**\n * Else, the only way to resolve this is by measuring the element.\n */\n this.needsMeasurement = true;\n }\n }\n resolveNoneKeyframes() {\n const { unresolvedKeyframes, name } = this;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (unresolvedKeyframes[i] === null ||\n (0,_utils_is_none_mjs__WEBPACK_IMPORTED_MODULE_6__.isNone)(unresolvedKeyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n }\n if (noneKeyframeIndexes.length) {\n (0,_utils_make_none_animatable_mjs__WEBPACK_IMPORTED_MODULE_7__.makeNoneKeyframesAnimatable)(unresolvedKeyframes, noneKeyframeIndexes, name);\n }\n }\n measureInitialState() {\n const { element, unresolvedKeyframes, name } = this;\n if (!element || !element.current)\n return;\n if (name === \"height\") {\n this.suspendedScrollY = window.pageYOffset;\n }\n this.measuredOrigin = _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n unresolvedKeyframes[0] = this.measuredOrigin;\n // Set final key frame to measure after next render\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (measureKeyframe !== undefined) {\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n }\n }\n measureEndState() {\n const { element, name, unresolvedKeyframes } = this;\n if (!element || !element.current)\n return;\n const value = element.getValue(name);\n value && value.jump(this.measuredOrigin, false);\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n unresolvedKeyframes[finalKeyframeIndex] = _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n if (finalKeyframe !== null && this.finalKeyframe === undefined) {\n this.finalKeyframe = finalKeyframe;\n }\n // If we removed transform values, reapply them before the next render\n if (this.removedTransforms?.length) {\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n element\n .getValue(unsetTransformName)\n .set(unsetTransformValue);\n });\n }\n this.resolveNoneKeyframes();\n }\n}\n\n\n//# sourceMappingURL=DOMKeyframesResolver.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9ET01LZXlmcmFtZXNSZXNvbHZlci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXNFO0FBQ0k7QUFDRDtBQUNjO0FBQzVCO0FBQ2Q7QUFDa0M7QUFDRDs7QUFFOUUsbUNBQW1DLG9FQUFnQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQ0FBcUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdDQUFnQztBQUN4RDtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsOEVBQWtCO0FBQ3RDLHFDQUFxQyxxRkFBZ0I7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSwyRUFBYztBQUMzQjtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsbUZBQXNCO0FBQ2pELDJCQUEyQixtRkFBc0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsK0VBQW1CO0FBQ2hELDZCQUE2QiwrRUFBbUI7QUFDaEQsNkNBQTZDLHdFQUFnQjtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHlFQUFhLGdCQUFnQix5RUFBYTtBQUN0RCw0QkFBNEIsZ0NBQWdDO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQix3RUFBZ0I7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsNEJBQTRCO0FBQzVDO0FBQ0Esd0JBQXdCLGdDQUFnQztBQUN4RDtBQUNBLGdCQUFnQiwwREFBTTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksNEZBQTJCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQ0FBcUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qix3RUFBZ0I7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQ0FBcUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELHdFQUFnQjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL0RPTUtleWZyYW1lc1Jlc29sdmVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb3NpdGlvbmFsS2V5cyB9IGZyb20gJy4uLy4uL3JlbmRlci91dGlscy9rZXlzLXBvc2l0aW9uLm1qcyc7XG5pbXBvcnQgeyBmaW5kRGltZW5zaW9uVmFsdWVUeXBlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvZGltZW5zaW9ucy5tanMnO1xuaW1wb3J0IHsgZ2V0VmFyaWFibGVWYWx1ZSB9IGZyb20gJy4uL3V0aWxzL2Nzcy12YXJpYWJsZXMtY29udmVyc2lvbi5tanMnO1xuaW1wb3J0IHsgaXNDU1NWYXJpYWJsZVRva2VuLCBjb250YWluc0NTU1ZhcmlhYmxlIH0gZnJvbSAnLi4vdXRpbHMvaXMtY3NzLXZhcmlhYmxlLm1qcyc7XG5pbXBvcnQgeyBLZXlmcmFtZVJlc29sdmVyIH0gZnJvbSAnLi9LZXlmcmFtZXNSZXNvbHZlci5tanMnO1xuaW1wb3J0IHsgaXNOb25lIH0gZnJvbSAnLi91dGlscy9pcy1ub25lLm1qcyc7XG5pbXBvcnQgeyBtYWtlTm9uZUtleWZyYW1lc0FuaW1hdGFibGUgfSBmcm9tICcuL3V0aWxzL21ha2Utbm9uZS1hbmltYXRhYmxlLm1qcyc7XG5pbXBvcnQgeyBwb3NpdGlvbmFsVmFsdWVzLCBpc051bU9yUHhUeXBlIH0gZnJvbSAnLi91dGlscy91bml0LWNvbnZlcnNpb24ubWpzJztcblxuY2xhc3MgRE9NS2V5ZnJhbWVzUmVzb2x2ZXIgZXh0ZW5kcyBLZXlmcmFtZVJlc29sdmVyIHtcbiAgICBjb25zdHJ1Y3Rvcih1bnJlc29sdmVkS2V5ZnJhbWVzLCBvbkNvbXBsZXRlLCBuYW1lLCBtb3Rpb25WYWx1ZSwgZWxlbWVudCkge1xuICAgICAgICBzdXBlcih1bnJlc29sdmVkS2V5ZnJhbWVzLCBvbkNvbXBsZXRlLCBuYW1lLCBtb3Rpb25WYWx1ZSwgZWxlbWVudCwgdHJ1ZSk7XG4gICAgfVxuICAgIHJlYWRLZXlmcmFtZXMoKSB7XG4gICAgICAgIGNvbnN0IHsgdW5yZXNvbHZlZEtleWZyYW1lcywgZWxlbWVudCwgbmFtZSB9ID0gdGhpcztcbiAgICAgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN1cGVyLnJlYWRLZXlmcmFtZXMoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIGFueSBrZXlmcmFtZSBpcyBhIENTUyB2YXJpYWJsZSwgd2UgbmVlZCB0byBmaW5kIGl0cyB2YWx1ZSBieSBzYW1wbGluZyB0aGUgZWxlbWVudFxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB1bnJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQga2V5ZnJhbWUgPSB1bnJlc29sdmVkS2V5ZnJhbWVzW2ldO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBrZXlmcmFtZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGtleWZyYW1lID0ga2V5ZnJhbWUudHJpbSgpO1xuICAgICAgICAgICAgICAgIGlmIChpc0NTU1ZhcmlhYmxlVG9rZW4oa2V5ZnJhbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gZ2V0VmFyaWFibGVWYWx1ZShrZXlmcmFtZSwgZWxlbWVudC5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc29sdmVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucmVzb2x2ZWRLZXlmcmFtZXNbaV0gPSByZXNvbHZlZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PT0gdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsS2V5ZnJhbWUgPSBrZXlmcmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogUmVzb2x2ZSBcIm5vbmVcIiB2YWx1ZXMuIFdlIGRvIHRoaXMgcG90ZW50aWFsbHkgdHdpY2UgLSBvbmNlIGJlZm9yZSBhbmQgb25jZSBhZnRlciBtZWFzdXJpbmcga2V5ZnJhbWVzLlxuICAgICAgICAgKiBUaGlzIGNvdWxkIGJlIHNlZW4gYXMgaW5lZmZpY2llbnQgYnV0IGl0J3MgYSB0cmFkZS1vZmYgdG8gYXZvaWQgbWVhc3VyZW1lbnRzIGluIG1vcmUgc2l0dWF0aW9ucywgd2hpY2hcbiAgICAgICAgICogaGF2ZSBhIGZhciBiaWdnZXIgcGVyZm9ybWFuY2UgaW1wYWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5yZXNvbHZlTm9uZUtleWZyYW1lcygpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQ2hlY2sgdG8gc2VlIGlmIHVuaXQgdHlwZSBoYXMgY2hhbmdlZC4gSWYgc28gc2NoZWR1bGUgam9icyB0aGF0IHdpbGxcbiAgICAgICAgICogdGVtcG9yYXJpbHkgc2V0IHN0eWxlcyB0byB0aGUgZGVzdGluYXRpb24ga2V5ZnJhbWVzLlxuICAgICAgICAgKiBTa2lwIGlmIHdlIGhhdmUgbW9yZSB0aGFuIHR3byBrZXlmcmFtZXMgb3IgdGhpcyBpc24ndCBhIHBvc2l0aW9uYWwgdmFsdWUuXG4gICAgICAgICAqIFRPRE86IFdlIGNhbiB0aHJvdyBpZiB0aGVyZSBhcmUgbXVsdGlwbGUga2V5ZnJhbWVzIGFuZCB0aGUgdmFsdWUgdHlwZSBjaGFuZ2VzLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCFwb3NpdGlvbmFsS2V5cy5oYXMobmFtZSkgfHwgdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbb3JpZ2luLCB0YXJnZXRdID0gdW5yZXNvbHZlZEtleWZyYW1lcztcbiAgICAgICAgY29uc3Qgb3JpZ2luVHlwZSA9IGZpbmREaW1lbnNpb25WYWx1ZVR5cGUob3JpZ2luKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0VHlwZSA9IGZpbmREaW1lbnNpb25WYWx1ZVR5cGUodGFyZ2V0KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIG9uZSBrZXlmcmFtZSBjb250YWlucyBlbWJlZGRlZCBDU1MgdmFyaWFibGVzIChlLmcuIGluIGNhbGMoKSkgYW5kIHRoZSBvdGhlclxuICAgICAgICAgKiBkb2Vzbid0LCB3ZSBuZWVkIHRvIG1lYXN1cmUgdG8gY29udmVydCB0byBwaXhlbHMuIFRoaXMgaGFuZGxlcyBHaXRIdWIgaXNzdWUgIzM0MTAuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBvcmlnaW5IYXNWYXIgPSBjb250YWluc0NTU1ZhcmlhYmxlKG9yaWdpbik7XG4gICAgICAgIGNvbnN0IHRhcmdldEhhc1ZhciA9IGNvbnRhaW5zQ1NTVmFyaWFibGUodGFyZ2V0KTtcbiAgICAgICAgaWYgKG9yaWdpbkhhc1ZhciAhPT0gdGFyZ2V0SGFzVmFyICYmIHBvc2l0aW9uYWxWYWx1ZXNbbmFtZV0pIHtcbiAgICAgICAgICAgIHRoaXMubmVlZHNNZWFzdXJlbWVudCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEVpdGhlciB3ZSBkb24ndCByZWNvZ25pc2UgdGhlc2UgdmFsdWUgdHlwZXMgb3Igd2UgY2FuIGFuaW1hdGUgYmV0d2VlbiB0aGVtLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG9yaWdpblR5cGUgPT09IHRhcmdldFR5cGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBib3RoIHZhbHVlcyBhcmUgbnVtYmVycyBvciBwaXhlbHMsIHdlIGNhbiBhbmltYXRlIGJldHdlZW4gdGhlbSBieVxuICAgICAgICAgKiBjb252ZXJ0aW5nIHRoZW0gdG8gbnVtYmVycy5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChpc051bU9yUHhUeXBlKG9yaWdpblR5cGUpICYmIGlzTnVtT3JQeFR5cGUodGFyZ2V0VHlwZSkpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdW5yZXNvbHZlZEtleWZyYW1lc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHVucmVzb2x2ZWRLZXlmcmFtZXNbaV0gPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocG9zaXRpb25hbFZhbHVlc1tuYW1lXSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBFbHNlLCB0aGUgb25seSB3YXkgdG8gcmVzb2x2ZSB0aGlzIGlzIGJ5IG1lYXN1cmluZyB0aGUgZWxlbWVudC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5uZWVkc01lYXN1cmVtZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXNvbHZlTm9uZUtleWZyYW1lcygpIHtcbiAgICAgICAgY29uc3QgeyB1bnJlc29sdmVkS2V5ZnJhbWVzLCBuYW1lIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBub25lS2V5ZnJhbWVJbmRleGVzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHVucmVzb2x2ZWRLZXlmcmFtZXNbaV0gPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICBpc05vbmUodW5yZXNvbHZlZEtleWZyYW1lc1tpXSkpIHtcbiAgICAgICAgICAgICAgICBub25lS2V5ZnJhbWVJbmRleGVzLnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vbmVLZXlmcmFtZUluZGV4ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBtYWtlTm9uZUtleWZyYW1lc0FuaW1hdGFibGUodW5yZXNvbHZlZEtleWZyYW1lcywgbm9uZUtleWZyYW1lSW5kZXhlcywgbmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWVhc3VyZUluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgY29uc3QgeyBlbGVtZW50LCB1bnJlc29sdmVkS2V5ZnJhbWVzLCBuYW1lIH0gPSB0aGlzO1xuICAgICAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKG5hbWUgPT09IFwiaGVpZ2h0XCIpIHtcbiAgICAgICAgICAgIHRoaXMuc3VzcGVuZGVkU2Nyb2xsWSA9IHdpbmRvdy5wYWdlWU9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1lYXN1cmVkT3JpZ2luID0gcG9zaXRpb25hbFZhbHVlc1tuYW1lXShlbGVtZW50Lm1lYXN1cmVWaWV3cG9ydEJveCgpLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LmN1cnJlbnQpKTtcbiAgICAgICAgdW5yZXNvbHZlZEtleWZyYW1lc1swXSA9IHRoaXMubWVhc3VyZWRPcmlnaW47XG4gICAgICAgIC8vIFNldCBmaW5hbCBrZXkgZnJhbWUgdG8gbWVhc3VyZSBhZnRlciBuZXh0IHJlbmRlclxuICAgICAgICBjb25zdCBtZWFzdXJlS2V5ZnJhbWUgPSB1bnJlc29sdmVkS2V5ZnJhbWVzW3VucmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoIC0gMV07XG4gICAgICAgIGlmIChtZWFzdXJlS2V5ZnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZWxlbWVudC5nZXRWYWx1ZShuYW1lLCBtZWFzdXJlS2V5ZnJhbWUpLmp1bXAobWVhc3VyZUtleWZyYW1lLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWVhc3VyZUVuZFN0YXRlKCkge1xuICAgICAgICBjb25zdCB7IGVsZW1lbnQsIG5hbWUsIHVucmVzb2x2ZWRLZXlmcmFtZXMgfSA9IHRoaXM7XG4gICAgICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGVsZW1lbnQuZ2V0VmFsdWUobmFtZSk7XG4gICAgICAgIHZhbHVlICYmIHZhbHVlLmp1bXAodGhpcy5tZWFzdXJlZE9yaWdpbiwgZmFsc2UpO1xuICAgICAgICBjb25zdCBmaW5hbEtleWZyYW1lSW5kZXggPSB1bnJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IGZpbmFsS2V5ZnJhbWUgPSB1bnJlc29sdmVkS2V5ZnJhbWVzW2ZpbmFsS2V5ZnJhbWVJbmRleF07XG4gICAgICAgIHVucmVzb2x2ZWRLZXlmcmFtZXNbZmluYWxLZXlmcmFtZUluZGV4XSA9IHBvc2l0aW9uYWxWYWx1ZXNbbmFtZV0oZWxlbWVudC5tZWFzdXJlVmlld3BvcnRCb3goKSwgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudC5jdXJyZW50KSk7XG4gICAgICAgIGlmIChmaW5hbEtleWZyYW1lICE9PSBudWxsICYmIHRoaXMuZmluYWxLZXlmcmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbmFsS2V5ZnJhbWUgPSBmaW5hbEtleWZyYW1lO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHdlIHJlbW92ZWQgdHJhbnNmb3JtIHZhbHVlcywgcmVhcHBseSB0aGVtIGJlZm9yZSB0aGUgbmV4dCByZW5kZXJcbiAgICAgICAgaWYgKHRoaXMucmVtb3ZlZFRyYW5zZm9ybXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVkVHJhbnNmb3Jtcy5mb3JFYWNoKChbdW5zZXRUcmFuc2Zvcm1OYW1lLCB1bnNldFRyYW5zZm9ybVZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgLmdldFZhbHVlKHVuc2V0VHJhbnNmb3JtTmFtZSlcbiAgICAgICAgICAgICAgICAgICAgLnNldCh1bnNldFRyYW5zZm9ybVZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzb2x2ZU5vbmVLZXlmcmFtZXMoKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IERPTUtleWZyYW1lc1Jlc29sdmVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ET01LZXlmcmFtZXNSZXNvbHZlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ KeyframeResolver: () => (/* binding */ KeyframeResolver),\n/* harmony export */ flushKeyframeResolvers: () => (/* binding */ flushKeyframeResolvers)\n/* harmony export */ });\n/* harmony import */ var _utils_fill_wildcards_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/fill-wildcards.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs\");\n/* harmony import */ var _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/unit-conversion.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\nconst toResolve = new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nlet isForced = false;\nfunction measureAllKeyframes() {\n if (anyNeedsMeasurement) {\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n const transformsToRestore = new Map();\n /**\n * Write pass\n * If we're measuring elements we want to remove bounding box-changing transforms.\n */\n elementsToMeasure.forEach((element) => {\n const removedTransforms = (0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.removeNonTranslationalTransform)(element);\n if (!removedTransforms.length)\n return;\n transformsToRestore.set(element, removedTransforms);\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n const restore = transformsToRestore.get(element);\n if (restore) {\n restore.forEach(([key, value]) => {\n element.getValue(key)?.set(value);\n });\n }\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n // Write\n resolversToMeasure.forEach((resolver) => {\n if (resolver.suspendedScrollY !== undefined) {\n window.scrollTo(0, resolver.suspendedScrollY);\n }\n });\n }\n anyNeedsMeasurement = false;\n isScheduled = false;\n toResolve.forEach((resolver) => resolver.complete(isForced));\n toResolve.clear();\n}\nfunction readAllKeyframes() {\n toResolve.forEach((resolver) => {\n resolver.readKeyframes();\n if (resolver.needsMeasurement) {\n anyNeedsMeasurement = true;\n }\n });\n}\nfunction flushKeyframeResolvers() {\n isForced = true;\n readAllKeyframes();\n measureAllKeyframes();\n isForced = false;\n}\nclass KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n this.state = \"pending\";\n /**\n * Track whether this resolver is async. If it is, it'll be added to the\n * resolver queue and flushed in the next frame. Resolvers that aren't going\n * to trigger read/write thrashing don't need to be async.\n */\n this.isAsync = false;\n /**\n * Track whether this resolver needs to perform a measurement\n * to resolve its keyframes.\n */\n this.needsMeasurement = false;\n this.unresolvedKeyframes = [...unresolvedKeyframes];\n this.onComplete = onComplete;\n this.name = name;\n this.motionValue = motionValue;\n this.element = element;\n this.isAsync = isAsync;\n }\n scheduleResolve() {\n this.state = \"scheduled\";\n if (this.isAsync) {\n toResolve.add(this);\n if (!isScheduled) {\n isScheduled = true;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.read(readAllKeyframes);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.resolveKeyframes(measureAllKeyframes);\n }\n }\n else {\n this.readKeyframes();\n this.complete();\n }\n }\n readKeyframes() {\n const { unresolvedKeyframes, name, element, motionValue } = this;\n // If initial keyframe is null we need to read it from the DOM\n if (unresolvedKeyframes[0] === null) {\n const currentValue = motionValue?.get();\n // TODO: This doesn't work if the final keyframe is a wildcard\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (currentValue !== undefined) {\n unresolvedKeyframes[0] = currentValue;\n }\n else if (element && name) {\n const valueAsRead = element.readValue(name, finalKeyframe);\n if (valueAsRead !== undefined && valueAsRead !== null) {\n unresolvedKeyframes[0] = valueAsRead;\n }\n }\n if (unresolvedKeyframes[0] === undefined) {\n unresolvedKeyframes[0] = finalKeyframe;\n }\n if (motionValue && currentValue === undefined) {\n motionValue.set(unresolvedKeyframes[0]);\n }\n }\n (0,_utils_fill_wildcards_mjs__WEBPACK_IMPORTED_MODULE_2__.fillWildcards)(unresolvedKeyframes);\n }\n setFinalKeyframe() { }\n measureInitialState() { }\n renderEndStyles() { }\n measureEndState() { }\n complete(isForcedComplete = false) {\n this.state = \"complete\";\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe, isForcedComplete);\n toResolve.delete(this);\n }\n cancel() {\n if (this.state === \"scheduled\") {\n toResolve.delete(this);\n this.state = \"pending\";\n }\n }\n resume() {\n if (this.state === \"pending\")\n this.scheduleResolve();\n }\n}\n\n\n//# sourceMappingURL=KeyframesResolver.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9LZXlmcmFtZXNSZXNvbHZlci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBMkQ7QUFDbUI7QUFDNUI7O0FBRWxEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsMkZBQStCO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQUs7QUFDckIsZ0JBQWdCLHVEQUFLO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isa0RBQWtEO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0VBQWE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVvRDtBQUNwRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9LZXlmcmFtZXNSZXNvbHZlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsbFdpbGRjYXJkcyB9IGZyb20gJy4vdXRpbHMvZmlsbC13aWxkY2FyZHMubWpzJztcbmltcG9ydCB7IHJlbW92ZU5vblRyYW5zbGF0aW9uYWxUcmFuc2Zvcm0gfSBmcm9tICcuL3V0aWxzL3VuaXQtY29udmVyc2lvbi5tanMnO1xuaW1wb3J0IHsgZnJhbWUgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcblxuY29uc3QgdG9SZXNvbHZlID0gbmV3IFNldCgpO1xubGV0IGlzU2NoZWR1bGVkID0gZmFsc2U7XG5sZXQgYW55TmVlZHNNZWFzdXJlbWVudCA9IGZhbHNlO1xubGV0IGlzRm9yY2VkID0gZmFsc2U7XG5mdW5jdGlvbiBtZWFzdXJlQWxsS2V5ZnJhbWVzKCkge1xuICAgIGlmIChhbnlOZWVkc01lYXN1cmVtZW50KSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVyc1RvTWVhc3VyZSA9IEFycmF5LmZyb20odG9SZXNvbHZlKS5maWx0ZXIoKHJlc29sdmVyKSA9PiByZXNvbHZlci5uZWVkc01lYXN1cmVtZW50KTtcbiAgICAgICAgY29uc3QgZWxlbWVudHNUb01lYXN1cmUgPSBuZXcgU2V0KHJlc29sdmVyc1RvTWVhc3VyZS5tYXAoKHJlc29sdmVyKSA9PiByZXNvbHZlci5lbGVtZW50KSk7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybXNUb1Jlc3RvcmUgPSBuZXcgTWFwKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXcml0ZSBwYXNzXG4gICAgICAgICAqIElmIHdlJ3JlIG1lYXN1cmluZyBlbGVtZW50cyB3ZSB3YW50IHRvIHJlbW92ZSBib3VuZGluZyBib3gtY2hhbmdpbmcgdHJhbnNmb3Jtcy5cbiAgICAgICAgICovXG4gICAgICAgIGVsZW1lbnRzVG9NZWFzdXJlLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZWRUcmFuc2Zvcm1zID0gcmVtb3ZlTm9uVHJhbnNsYXRpb25hbFRyYW5zZm9ybShlbGVtZW50KTtcbiAgICAgICAgICAgIGlmICghcmVtb3ZlZFRyYW5zZm9ybXMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRyYW5zZm9ybXNUb1Jlc3RvcmUuc2V0KGVsZW1lbnQsIHJlbW92ZWRUcmFuc2Zvcm1zKTtcbiAgICAgICAgICAgIGVsZW1lbnQucmVuZGVyKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBSZWFkXG4gICAgICAgIHJlc29sdmVyc1RvTWVhc3VyZS5mb3JFYWNoKChyZXNvbHZlcikgPT4gcmVzb2x2ZXIubWVhc3VyZUluaXRpYWxTdGF0ZSgpKTtcbiAgICAgICAgLy8gV3JpdGVcbiAgICAgICAgZWxlbWVudHNUb01lYXN1cmUuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5yZW5kZXIoKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3RvcmUgPSB0cmFuc2Zvcm1zVG9SZXN0b3JlLmdldChlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChyZXN0b3JlKSB7XG4gICAgICAgICAgICAgICAgcmVzdG9yZS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5nZXRWYWx1ZShrZXkpPy5zZXQodmFsdWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gUmVhZFxuICAgICAgICByZXNvbHZlcnNUb01lYXN1cmUuZm9yRWFjaCgocmVzb2x2ZXIpID0+IHJlc29sdmVyLm1lYXN1cmVFbmRTdGF0ZSgpKTtcbiAgICAgICAgLy8gV3JpdGVcbiAgICAgICAgcmVzb2x2ZXJzVG9NZWFzdXJlLmZvckVhY2goKHJlc29sdmVyKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzb2x2ZXIuc3VzcGVuZGVkU2Nyb2xsWSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIHJlc29sdmVyLnN1c3BlbmRlZFNjcm9sbFkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYW55TmVlZHNNZWFzdXJlbWVudCA9IGZhbHNlO1xuICAgIGlzU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgdG9SZXNvbHZlLmZvckVhY2goKHJlc29sdmVyKSA9PiByZXNvbHZlci5jb21wbGV0ZShpc0ZvcmNlZCkpO1xuICAgIHRvUmVzb2x2ZS5jbGVhcigpO1xufVxuZnVuY3Rpb24gcmVhZEFsbEtleWZyYW1lcygpIHtcbiAgICB0b1Jlc29sdmUuZm9yRWFjaCgocmVzb2x2ZXIpID0+IHtcbiAgICAgICAgcmVzb2x2ZXIucmVhZEtleWZyYW1lcygpO1xuICAgICAgICBpZiAocmVzb2x2ZXIubmVlZHNNZWFzdXJlbWVudCkge1xuICAgICAgICAgICAgYW55TmVlZHNNZWFzdXJlbWVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGZsdXNoS2V5ZnJhbWVSZXNvbHZlcnMoKSB7XG4gICAgaXNGb3JjZWQgPSB0cnVlO1xuICAgIHJlYWRBbGxLZXlmcmFtZXMoKTtcbiAgICBtZWFzdXJlQWxsS2V5ZnJhbWVzKCk7XG4gICAgaXNGb3JjZWQgPSBmYWxzZTtcbn1cbmNsYXNzIEtleWZyYW1lUmVzb2x2ZXIge1xuICAgIGNvbnN0cnVjdG9yKHVucmVzb2x2ZWRLZXlmcmFtZXMsIG9uQ29tcGxldGUsIG5hbWUsIG1vdGlvblZhbHVlLCBlbGVtZW50LCBpc0FzeW5jID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFwicGVuZGluZ1wiO1xuICAgICAgICAvKipcbiAgICAgICAgICogVHJhY2sgd2hldGhlciB0aGlzIHJlc29sdmVyIGlzIGFzeW5jLiBJZiBpdCBpcywgaXQnbGwgYmUgYWRkZWQgdG8gdGhlXG4gICAgICAgICAqIHJlc29sdmVyIHF1ZXVlIGFuZCBmbHVzaGVkIGluIHRoZSBuZXh0IGZyYW1lLiBSZXNvbHZlcnMgdGhhdCBhcmVuJ3QgZ29pbmdcbiAgICAgICAgICogdG8gdHJpZ2dlciByZWFkL3dyaXRlIHRocmFzaGluZyBkb24ndCBuZWVkIHRvIGJlIGFzeW5jLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pc0FzeW5jID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFjayB3aGV0aGVyIHRoaXMgcmVzb2x2ZXIgbmVlZHMgdG8gcGVyZm9ybSBhIG1lYXN1cmVtZW50XG4gICAgICAgICAqIHRvIHJlc29sdmUgaXRzIGtleWZyYW1lcy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubmVlZHNNZWFzdXJlbWVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVucmVzb2x2ZWRLZXlmcmFtZXMgPSBbLi4udW5yZXNvbHZlZEtleWZyYW1lc107XG4gICAgICAgIHRoaXMub25Db21wbGV0ZSA9IG9uQ29tcGxldGU7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMubW90aW9uVmFsdWUgPSBtb3Rpb25WYWx1ZTtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgdGhpcy5pc0FzeW5jID0gaXNBc3luYztcbiAgICB9XG4gICAgc2NoZWR1bGVSZXNvbHZlKCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gXCJzY2hlZHVsZWRcIjtcbiAgICAgICAgaWYgKHRoaXMuaXNBc3luYykge1xuICAgICAgICAgICAgdG9SZXNvbHZlLmFkZCh0aGlzKTtcbiAgICAgICAgICAgIGlmICghaXNTY2hlZHVsZWQpIHtcbiAgICAgICAgICAgICAgICBpc1NjaGVkdWxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgZnJhbWUucmVhZChyZWFkQWxsS2V5ZnJhbWVzKTtcbiAgICAgICAgICAgICAgICBmcmFtZS5yZXNvbHZlS2V5ZnJhbWVzKG1lYXN1cmVBbGxLZXlmcmFtZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZWFkS2V5ZnJhbWVzKCk7XG4gICAgICAgICAgICB0aGlzLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVhZEtleWZyYW1lcygpIHtcbiAgICAgICAgY29uc3QgeyB1bnJlc29sdmVkS2V5ZnJhbWVzLCBuYW1lLCBlbGVtZW50LCBtb3Rpb25WYWx1ZSB9ID0gdGhpcztcbiAgICAgICAgLy8gSWYgaW5pdGlhbCBrZXlmcmFtZSBpcyBudWxsIHdlIG5lZWQgdG8gcmVhZCBpdCBmcm9tIHRoZSBET01cbiAgICAgICAgaWYgKHVucmVzb2x2ZWRLZXlmcmFtZXNbMF0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IG1vdGlvblZhbHVlPy5nZXQoKTtcbiAgICAgICAgICAgIC8vIFRPRE86IFRoaXMgZG9lc24ndCB3b3JrIGlmIHRoZSBmaW5hbCBrZXlmcmFtZSBpcyBhIHdpbGRjYXJkXG4gICAgICAgICAgICBjb25zdCBmaW5hbEtleWZyYW1lID0gdW5yZXNvbHZlZEtleWZyYW1lc1t1bnJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdW5yZXNvbHZlZEtleWZyYW1lc1swXSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQgJiYgbmFtZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNSZWFkID0gZWxlbWVudC5yZWFkVmFsdWUobmFtZSwgZmluYWxLZXlmcmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlQXNSZWFkICE9PSB1bmRlZmluZWQgJiYgdmFsdWVBc1JlYWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdW5yZXNvbHZlZEtleWZyYW1lc1swXSA9IHZhbHVlQXNSZWFkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh1bnJlc29sdmVkS2V5ZnJhbWVzWzBdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB1bnJlc29sdmVkS2V5ZnJhbWVzWzBdID0gZmluYWxLZXlmcmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtb3Rpb25WYWx1ZSAmJiBjdXJyZW50VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIG1vdGlvblZhbHVlLnNldCh1bnJlc29sdmVkS2V5ZnJhbWVzWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaWxsV2lsZGNhcmRzKHVucmVzb2x2ZWRLZXlmcmFtZXMpO1xuICAgIH1cbiAgICBzZXRGaW5hbEtleWZyYW1lKCkgeyB9XG4gICAgbWVhc3VyZUluaXRpYWxTdGF0ZSgpIHsgfVxuICAgIHJlbmRlckVuZFN0eWxlcygpIHsgfVxuICAgIG1lYXN1cmVFbmRTdGF0ZSgpIHsgfVxuICAgIGNvbXBsZXRlKGlzRm9yY2VkQ29tcGxldGUgPSBmYWxzZSkge1xuICAgICAgICB0aGlzLnN0YXRlID0gXCJjb21wbGV0ZVwiO1xuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51bnJlc29sdmVkS2V5ZnJhbWVzLCB0aGlzLmZpbmFsS2V5ZnJhbWUsIGlzRm9yY2VkQ29tcGxldGUpO1xuICAgICAgICB0b1Jlc29sdmUuZGVsZXRlKHRoaXMpO1xuICAgIH1cbiAgICBjYW5jZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcInNjaGVkdWxlZFwiKSB7XG4gICAgICAgICAgICB0b1Jlc29sdmUuZGVsZXRlKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFwicGVuZGluZ1wiO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc3VtZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwicGVuZGluZ1wiKVxuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlc29sdmUoKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IEtleWZyYW1lUmVzb2x2ZXIsIGZsdXNoS2V5ZnJhbWVSZXNvbHZlcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUtleWZyYW1lc1Jlc29sdmVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getFinalKeyframe: () => (/* binding */ getFinalKeyframe)\n/* harmony export */ });\nconst isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe, speed = 1) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const useFirstKeyframe = speed < 0 || (repeat && repeatType !== \"loop\" && repeat % 2 === 1);\n const index = useFirstKeyframe ? 0 : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\n\n//# sourceMappingURL=get-final.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9nZXQtZmluYWwubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLHVDQUF1Qyw2QkFBNkI7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTRCO0FBQzVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL2dldC1maW5hbC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNOb3ROdWxsID0gKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbnVsbDtcbmZ1bmN0aW9uIGdldEZpbmFsS2V5ZnJhbWUoa2V5ZnJhbWVzLCB7IHJlcGVhdCwgcmVwZWF0VHlwZSA9IFwibG9vcFwiIH0sIGZpbmFsS2V5ZnJhbWUsIHNwZWVkID0gMSkge1xuICAgIGNvbnN0IHJlc29sdmVkS2V5ZnJhbWVzID0ga2V5ZnJhbWVzLmZpbHRlcihpc05vdE51bGwpO1xuICAgIGNvbnN0IHVzZUZpcnN0S2V5ZnJhbWUgPSBzcGVlZCA8IDAgfHwgKHJlcGVhdCAmJiByZXBlYXRUeXBlICE9PSBcImxvb3BcIiAmJiByZXBlYXQgJSAyID09PSAxKTtcbiAgICBjb25zdCBpbmRleCA9IHVzZUZpcnN0S2V5ZnJhbWUgPyAwIDogcmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoIC0gMTtcbiAgICByZXR1cm4gIWluZGV4IHx8IGZpbmFsS2V5ZnJhbWUgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHJlc29sdmVkS2V5ZnJhbWVzW2luZGV4XVxuICAgICAgICA6IGZpbmFsS2V5ZnJhbWU7XG59XG5cbmV4cG9ydCB7IGdldEZpbmFsS2V5ZnJhbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1maW5hbC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultOffset: () => (/* binding */ defaultOffset)\n/* harmony export */ });\n/* harmony import */ var _fill_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fill.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs\");\n\n\nfunction defaultOffset(arr) {\n const offset = [0];\n (0,_fill_mjs__WEBPACK_IMPORTED_MODULE_0__.fillOffset)(offset, arr.length - 1);\n return offset;\n}\n\n\n//# sourceMappingURL=default.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL2RlZmF1bHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdDOztBQUV4QztBQUNBO0FBQ0EsSUFBSSxxREFBVTtBQUNkO0FBQ0E7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL29mZnNldHMvZGVmYXVsdC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsbE9mZnNldCB9IGZyb20gJy4vZmlsbC5tanMnO1xuXG5mdW5jdGlvbiBkZWZhdWx0T2Zmc2V0KGFycikge1xuICAgIGNvbnN0IG9mZnNldCA9IFswXTtcbiAgICBmaWxsT2Zmc2V0KG9mZnNldCwgYXJyLmxlbmd0aCAtIDEpO1xuICAgIHJldHVybiBvZmZzZXQ7XG59XG5cbmV4cG9ydCB7IGRlZmF1bHRPZmZzZXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmF1bHQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fillOffset: () => (/* binding */ fillOffset)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.progress)(0, remaining, i);\n offset.push((0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(min, 1, offsetProgress));\n }\n}\n\n\n//# sourceMappingURL=fill.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL2ZpbGwubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3QztBQUNrQjs7QUFFMUQ7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEMsK0JBQStCLHNEQUFRO0FBQ3ZDLG9CQUFvQixnRUFBUztBQUM3QjtBQUNBOztBQUVzQjtBQUN0QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL2ZpbGwubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb2dyZXNzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IG1peE51bWJlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL21peC9udW1iZXIubWpzJztcblxuZnVuY3Rpb24gZmlsbE9mZnNldChvZmZzZXQsIHJlbWFpbmluZykge1xuICAgIGNvbnN0IG1pbiA9IG9mZnNldFtvZmZzZXQubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gcmVtYWluaW5nOyBpKyspIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0UHJvZ3Jlc3MgPSBwcm9ncmVzcygwLCByZW1haW5pbmcsIGkpO1xuICAgICAgICBvZmZzZXQucHVzaChtaXhOdW1iZXIobWluLCAxLCBvZmZzZXRQcm9ncmVzcykpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgZmlsbE9mZnNldCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlsbC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ convertOffsetToTimes: () => (/* binding */ convertOffsetToTimes)\n/* harmony export */ });\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\n\n//# sourceMappingURL=time.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL3RpbWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL29mZnNldHMvdGltZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gY29udmVydE9mZnNldFRvVGltZXMob2Zmc2V0LCBkdXJhdGlvbikge1xuICAgIHJldHVybiBvZmZzZXQubWFwKChvKSA9PiBvICogZHVyYXRpb24pO1xufVxuXG5leHBvcnQgeyBjb252ZXJ0T2Zmc2V0VG9UaW1lcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGltZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fillWildcards: () => (/* binding */ fillWildcards)\n/* harmony export */ });\nfunction fillWildcards(keyframes) {\n for (let i = 1; i < keyframes.length; i++) {\n keyframes[i] ?? (keyframes[i] = keyframes[i - 1]);\n }\n}\n\n\n//# sourceMappingURL=fill-wildcards.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy9maWxsLXdpbGRjYXJkcy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0Esb0JBQW9CLHNCQUFzQjtBQUMxQztBQUNBO0FBQ0E7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL3V0aWxzL2ZpbGwtd2lsZGNhcmRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBmaWxsV2lsZGNhcmRzKGtleWZyYW1lcykge1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwga2V5ZnJhbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGtleWZyYW1lc1tpXSA/PyAoa2V5ZnJhbWVzW2ldID0ga2V5ZnJhbWVzW2kgLSAxXSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBmaWxsV2lsZGNhcmRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1maWxsLXdpbGRjYXJkcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNone: () => (/* binding */ isNone)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\");\n\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isZeroValueString)(value);\n }\n else {\n return true;\n }\n}\n\n\n//# sourceMappingURL=is-none.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy9pcy1ub25lLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFpRDs7QUFFakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRCwrREFBaUI7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFa0I7QUFDbEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvaXMtbm9uZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNaZXJvVmFsdWVTdHJpbmcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuXG5mdW5jdGlvbiBpc05vbmUodmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gMDtcbiAgICB9XG4gICAgZWxzZSBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSBcIm5vbmVcIiB8fCB2YWx1ZSA9PT0gXCIwXCIgfHwgaXNaZXJvVmFsdWVTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgeyBpc05vbmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLW5vbmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs": +/*!********************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs ***! + \********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ makeNoneKeyframesAnimatable: () => (/* binding */ makeNoneKeyframesAnimatable)\n/* harmony export */ });\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/types/utils/animatable-none.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\");\n\n\n\n/**\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\n */\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" &&\n !invalidTemplates.has(keyframe) &&\n (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.analyseComplexValue)(keyframe).values.length) {\n animatableTemplate = unresolvedKeyframes[i];\n }\n i++;\n }\n if (animatableTemplate && name) {\n for (const noneIndex of noneKeyframeIndexes) {\n unresolvedKeyframes[noneIndex] = (0,_value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_1__.getAnimatableNone)(name, animatableTemplate);\n }\n }\n}\n\n\n//# sourceMappingURL=make-none-animatable.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy9tYWtlLW5vbmUtYW5pbWF0YWJsZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTZFO0FBQ007O0FBRW5GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLG1GQUFtQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMseUZBQWlCO0FBQzlEO0FBQ0E7QUFDQTs7QUFFdUM7QUFDdkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvbWFrZS1ub25lLWFuaW1hdGFibGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuYWx5c2VDb21wbGV4VmFsdWUgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy9jb21wbGV4L2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBnZXRBbmltYXRhYmxlTm9uZSB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3R5cGVzL3V0aWxzL2FuaW1hdGFibGUtbm9uZS5tanMnO1xuXG4vKipcbiAqIElmIHdlIGVuY291bnRlciBrZXlmcmFtZXMgbGlrZSBcIm5vbmVcIiBvciBcIjBcIiBhbmQgd2UgYWxzbyBoYXZlIGtleWZyYW1lcyBsaWtlXG4gKiBcIiNmZmZcIiBvciBcIjIwMHB4IDIwMHB4XCIgd2Ugd2FudCB0byBmaW5kIGEga2V5ZnJhbWUgdG8gc2VydmUgYXMgYSB0ZW1wbGF0ZSBmb3JcbiAqIHRoZSBcIm5vbmVcIiBrZXlmcmFtZXMuIEluIHRoaXMgY2FzZSBcIiNmZmZcIiBvciBcIjIwMHB4IDIwMHB4XCIgLSB0aGVuIHRoZXNlIGdldCB0dXJuZWQgaW50b1xuICogemVybyBlcXVpdmFsZW50cywgaS5lLiBcIiNmZmYwXCIgb3IgXCIwcHggMHB4XCIuXG4gKi9cbmNvbnN0IGludmFsaWRUZW1wbGF0ZXMgPSBuZXcgU2V0KFtcImF1dG9cIiwgXCJub25lXCIsIFwiMFwiXSk7XG5mdW5jdGlvbiBtYWtlTm9uZUtleWZyYW1lc0FuaW1hdGFibGUodW5yZXNvbHZlZEtleWZyYW1lcywgbm9uZUtleWZyYW1lSW5kZXhlcywgbmFtZSkge1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgYW5pbWF0YWJsZVRlbXBsYXRlID0gdW5kZWZpbmVkO1xuICAgIHdoaWxlIChpIDwgdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggJiYgIWFuaW1hdGFibGVUZW1wbGF0ZSkge1xuICAgICAgICBjb25zdCBrZXlmcmFtZSA9IHVucmVzb2x2ZWRLZXlmcmFtZXNbaV07XG4gICAgICAgIGlmICh0eXBlb2Yga2V5ZnJhbWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICFpbnZhbGlkVGVtcGxhdGVzLmhhcyhrZXlmcmFtZSkgJiZcbiAgICAgICAgICAgIGFuYWx5c2VDb21wbGV4VmFsdWUoa2V5ZnJhbWUpLnZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGFuaW1hdGFibGVUZW1wbGF0ZSA9IHVucmVzb2x2ZWRLZXlmcmFtZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgaSsrO1xuICAgIH1cbiAgICBpZiAoYW5pbWF0YWJsZVRlbXBsYXRlICYmIG5hbWUpIHtcbiAgICAgICAgZm9yIChjb25zdCBub25lSW5kZXggb2Ygbm9uZUtleWZyYW1lSW5kZXhlcykge1xuICAgICAgICAgICAgdW5yZXNvbHZlZEtleWZyYW1lc1tub25lSW5kZXhdID0gZ2V0QW5pbWF0YWJsZU5vbmUobmFtZSwgYW5pbWF0YWJsZVRlbXBsYXRlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgbWFrZU5vbmVLZXlmcmFtZXNBbmltYXRhYmxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYWtlLW5vbmUtYW5pbWF0YWJsZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs": +/*!***************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs ***! + \***************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNumOrPxType: () => (/* binding */ isNumOrPxType),\n/* harmony export */ positionalValues: () => (/* binding */ positionalValues),\n/* harmony export */ removeNonTranslationalTransform: () => (/* binding */ removeNonTranslationalTransform)\n/* harmony export */ });\n/* harmony import */ var _render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../render/dom/parse-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\");\n/* harmony import */ var _render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../render/utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _value_types_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../value/types/numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/types/numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\n\n\n\n\nconst isNumOrPxType = (v) => v === _value_types_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number || v === _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.px;\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = _render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: (_bbox, { transform }) => (0,_render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.parseValueFromTransform)(transform, \"x\"),\n y: (_bbox, { transform }) => (0,_render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.parseValueFromTransform)(transform, \"y\"),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\n\n\n//# sourceMappingURL=unit-conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy91bml0LWNvbnZlcnNpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBa0Y7QUFDSjtBQUNkO0FBQ0o7O0FBRTVELG1DQUFtQyxrRUFBTSxVQUFVLDhEQUFFO0FBQ3JEO0FBQ0Esc0NBQXNDLGdGQUFrQjtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxHQUFHLElBQUksdUNBQXVDO0FBQzVELGVBQWUsR0FBRyxJQUFJLHVDQUF1QztBQUM3RCxtQkFBbUIsS0FBSztBQUN4QixvQkFBb0IsTUFBTTtBQUMxQixlQUFlLEdBQUcsSUFBSSxLQUFLO0FBQzNCLGNBQWMsR0FBRyxJQUFJLE1BQU07QUFDM0I7QUFDQSxpQkFBaUIsV0FBVyxLQUFLLHdGQUF1QjtBQUN4RCxpQkFBaUIsV0FBVyxLQUFLLHdGQUF1QjtBQUN4RDtBQUNBO0FBQ0E7QUFDQTs7QUFFNEU7QUFDNUUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvdW5pdC1jb252ZXJzaW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVZhbHVlRnJvbVRyYW5zZm9ybSB9IGZyb20gJy4uLy4uLy4uL3JlbmRlci9kb20vcGFyc2UtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wT3JkZXIgfSBmcm9tICcuLi8uLi8uLi9yZW5kZXIvdXRpbHMva2V5cy10cmFuc2Zvcm0ubWpzJztcbmltcG9ydCB7IG51bWJlciB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3R5cGVzL251bWJlcnMvaW5kZXgubWpzJztcbmltcG9ydCB7IHB4IH0gZnJvbSAnLi4vLi4vLi4vdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMnO1xuXG5jb25zdCBpc051bU9yUHhUeXBlID0gKHYpID0+IHYgPT09IG51bWJlciB8fCB2ID09PSBweDtcbmNvbnN0IHRyYW5zZm9ybUtleXMgPSBuZXcgU2V0KFtcInhcIiwgXCJ5XCIsIFwielwiXSk7XG5jb25zdCBub25UcmFuc2xhdGlvbmFsVHJhbnNmb3JtS2V5cyA9IHRyYW5zZm9ybVByb3BPcmRlci5maWx0ZXIoKGtleSkgPT4gIXRyYW5zZm9ybUtleXMuaGFzKGtleSkpO1xuZnVuY3Rpb24gcmVtb3ZlTm9uVHJhbnNsYXRpb25hbFRyYW5zZm9ybSh2aXN1YWxFbGVtZW50KSB7XG4gICAgY29uc3QgcmVtb3ZlZFRyYW5zZm9ybXMgPSBbXTtcbiAgICBub25UcmFuc2xhdGlvbmFsVHJhbnNmb3JtS2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZW1vdmVkVHJhbnNmb3Jtcy5wdXNoKFtrZXksIHZhbHVlLmdldCgpXSk7XG4gICAgICAgICAgICB2YWx1ZS5zZXQoa2V5LnN0YXJ0c1dpdGgoXCJzY2FsZVwiKSA/IDEgOiAwKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZW1vdmVkVHJhbnNmb3Jtcztcbn1cbmNvbnN0IHBvc2l0aW9uYWxWYWx1ZXMgPSB7XG4gICAgLy8gRGltZW5zaW9uc1xuICAgIHdpZHRoOiAoeyB4IH0sIHsgcGFkZGluZ0xlZnQgPSBcIjBcIiwgcGFkZGluZ1JpZ2h0ID0gXCIwXCIgfSkgPT4geC5tYXggLSB4Lm1pbiAtIHBhcnNlRmxvYXQocGFkZGluZ0xlZnQpIC0gcGFyc2VGbG9hdChwYWRkaW5nUmlnaHQpLFxuICAgIGhlaWdodDogKHsgeSB9LCB7IHBhZGRpbmdUb3AgPSBcIjBcIiwgcGFkZGluZ0JvdHRvbSA9IFwiMFwiIH0pID0+IHkubWF4IC0geS5taW4gLSBwYXJzZUZsb2F0KHBhZGRpbmdUb3ApIC0gcGFyc2VGbG9hdChwYWRkaW5nQm90dG9tKSxcbiAgICB0b3A6IChfYmJveCwgeyB0b3AgfSkgPT4gcGFyc2VGbG9hdCh0b3ApLFxuICAgIGxlZnQ6IChfYmJveCwgeyBsZWZ0IH0pID0+IHBhcnNlRmxvYXQobGVmdCksXG4gICAgYm90dG9tOiAoeyB5IH0sIHsgdG9wIH0pID0+IHBhcnNlRmxvYXQodG9wKSArICh5Lm1heCAtIHkubWluKSxcbiAgICByaWdodDogKHsgeCB9LCB7IGxlZnQgfSkgPT4gcGFyc2VGbG9hdChsZWZ0KSArICh4Lm1heCAtIHgubWluKSxcbiAgICAvLyBUcmFuc2Zvcm1cbiAgICB4OiAoX2Jib3gsIHsgdHJhbnNmb3JtIH0pID0+IHBhcnNlVmFsdWVGcm9tVHJhbnNmb3JtKHRyYW5zZm9ybSwgXCJ4XCIpLFxuICAgIHk6IChfYmJveCwgeyB0cmFuc2Zvcm0gfSkgPT4gcGFyc2VWYWx1ZUZyb21UcmFuc2Zvcm0odHJhbnNmb3JtLCBcInlcIiksXG59O1xuLy8gQWxpYXMgdHJhbnNsYXRlIGxvbmdmb3JtIG5hbWVzXG5wb3NpdGlvbmFsVmFsdWVzLnRyYW5zbGF0ZVggPSBwb3NpdGlvbmFsVmFsdWVzLng7XG5wb3NpdGlvbmFsVmFsdWVzLnRyYW5zbGF0ZVkgPSBwb3NpdGlvbmFsVmFsdWVzLnk7XG5cbmV4cG9ydCB7IGlzTnVtT3JQeFR5cGUsIHBvc2l0aW9uYWxWYWx1ZXMsIHJlbW92ZU5vblRyYW5zbGF0aW9uYWxUcmFuc2Zvcm0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVuaXQtY29udmVyc2lvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ optimizedAppearDataAttribute: () => (/* binding */ optimizedAppearDataAttribute),\n/* harmony export */ optimizedAppearDataId: () => (/* binding */ optimizedAppearDataId)\n/* harmony export */ });\n/* harmony import */ var _render_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/dom/utils/camel-to-dash.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\");\n\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + (0,_render_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_0__.camelToDash)(optimizedAppearDataId);\n\n\n//# sourceMappingURL=data-id.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL29wdGltaXplZC1hcHBlYXIvZGF0YS1pZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXVFOztBQUV2RTtBQUNBLCtDQUErQyxnRkFBVzs7QUFFSztBQUMvRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL29wdGltaXplZC1hcHBlYXIvZGF0YS1pZC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FtZWxUb0Rhc2ggfSBmcm9tICcuLi8uLi9yZW5kZXIvZG9tL3V0aWxzL2NhbWVsLXRvLWRhc2gubWpzJztcblxuY29uc3Qgb3B0aW1pemVkQXBwZWFyRGF0YUlkID0gXCJmcmFtZXJBcHBlYXJJZFwiO1xuY29uc3Qgb3B0aW1pemVkQXBwZWFyRGF0YUF0dHJpYnV0ZSA9IFwiZGF0YS1cIiArIGNhbWVsVG9EYXNoKG9wdGltaXplZEFwcGVhckRhdGFJZCk7XG5cbmV4cG9ydCB7IG9wdGltaXplZEFwcGVhckRhdGFBdHRyaWJ1dGUsIG9wdGltaXplZEFwcGVhckRhdGFJZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YS1pZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getOptimisedAppearId: () => (/* binding */ getOptimisedAppearId)\n/* harmony export */ });\n/* harmony import */ var _data_id_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./data-id.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs\");\n\n\nfunction getOptimisedAppearId(visualElement) {\n return visualElement.props[_data_id_mjs__WEBPACK_IMPORTED_MODULE_0__.optimizedAppearDataAttribute];\n}\n\n\n//# sourceMappingURL=get-appear-id.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL29wdGltaXplZC1hcHBlYXIvZ2V0LWFwcGVhci1pZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBNkQ7O0FBRTdEO0FBQ0EsK0JBQStCLHNFQUE0QjtBQUMzRDs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9vcHRpbWl6ZWQtYXBwZWFyL2dldC1hcHBlYXItaWQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9wdGltaXplZEFwcGVhckRhdGFBdHRyaWJ1dGUgfSBmcm9tICcuL2RhdGEtaWQubWpzJztcblxuZnVuY3Rpb24gZ2V0T3B0aW1pc2VkQXBwZWFySWQodmlzdWFsRWxlbWVudCkge1xuICAgIHJldHVybiB2aXN1YWxFbGVtZW50LnByb3BzW29wdGltaXplZEFwcGVhckRhdGFBdHRyaWJ1dGVdO1xufVxuXG5leHBvcnQgeyBnZXRPcHRpbWlzZWRBcHBlYXJJZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWFwcGVhci1pZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WithPromise: () => (/* binding */ WithPromise)\n/* harmony export */ });\nclass WithPromise {\n constructor() {\n this.updateFinished();\n }\n get finished() {\n return this._finished;\n }\n updateFinished() {\n this._finished = new Promise((resolve) => {\n this.resolve = resolve;\n });\n }\n notifyFinished() {\n this.resolve();\n }\n /**\n * Allows the animation to be awaited.\n *\n * @deprecated Use `finished` instead.\n */\n then(onResolve, onReject) {\n return this.finished.then(onResolve, onReject);\n }\n}\n\n\n//# sourceMappingURL=WithPromise.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL1dpdGhQcm9taXNlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvV2l0aFByb21pc2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFdpdGhQcm9taXNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy51cGRhdGVGaW5pc2hlZCgpO1xuICAgIH1cbiAgICBnZXQgZmluaXNoZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maW5pc2hlZDtcbiAgICB9XG4gICAgdXBkYXRlRmluaXNoZWQoKSB7XG4gICAgICAgIHRoaXMuX2ZpbmlzaGVkID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBub3RpZnlGaW5pc2hlZCgpIHtcbiAgICAgICAgdGhpcy5yZXNvbHZlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFsbG93cyB0aGUgYW5pbWF0aW9uIHRvIGJlIGF3YWl0ZWQuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYGZpbmlzaGVkYCBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHRoZW4ob25SZXNvbHZlLCBvblJlamVjdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5pc2hlZC50aGVuKG9uUmVzb2x2ZSwgb25SZWplY3QpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgV2l0aFByb21pc2UgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVdpdGhQcm9taXNlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcChildStagger: () => (/* binding */ calcChildStagger)\n/* harmony export */ });\nfunction calcChildStagger(children, child, delayChildren, staggerChildren = 0, staggerDirection = 1) {\n const index = Array.from(children)\n .sort((a, b) => a.sortNodePosition(b))\n .indexOf(child);\n const numChildren = children.size;\n const maxStaggerDuration = (numChildren - 1) * staggerChildren;\n const delayIsFunction = typeof delayChildren === \"function\";\n return delayIsFunction\n ? delayChildren(index, numChildren)\n : staggerDirection === 1\n ? index * staggerChildren\n : maxStaggerDuration - index * staggerChildren;\n}\n\n\n//# sourceMappingURL=calc-child-stagger.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2NhbGMtY2hpbGQtc3RhZ2dlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2NhbGMtY2hpbGQtc3RhZ2dlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gY2FsY0NoaWxkU3RhZ2dlcihjaGlsZHJlbiwgY2hpbGQsIGRlbGF5Q2hpbGRyZW4sIHN0YWdnZXJDaGlsZHJlbiA9IDAsIHN0YWdnZXJEaXJlY3Rpb24gPSAxKSB7XG4gICAgY29uc3QgaW5kZXggPSBBcnJheS5mcm9tKGNoaWxkcmVuKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5zb3J0Tm9kZVBvc2l0aW9uKGIpKVxuICAgICAgICAuaW5kZXhPZihjaGlsZCk7XG4gICAgY29uc3QgbnVtQ2hpbGRyZW4gPSBjaGlsZHJlbi5zaXplO1xuICAgIGNvbnN0IG1heFN0YWdnZXJEdXJhdGlvbiA9IChudW1DaGlsZHJlbiAtIDEpICogc3RhZ2dlckNoaWxkcmVuO1xuICAgIGNvbnN0IGRlbGF5SXNGdW5jdGlvbiA9IHR5cGVvZiBkZWxheUNoaWxkcmVuID09PSBcImZ1bmN0aW9uXCI7XG4gICAgcmV0dXJuIGRlbGF5SXNGdW5jdGlvblxuICAgICAgICA/IGRlbGF5Q2hpbGRyZW4oaW5kZXgsIG51bUNoaWxkcmVuKVxuICAgICAgICA6IHN0YWdnZXJEaXJlY3Rpb24gPT09IDFcbiAgICAgICAgICAgID8gaW5kZXggKiBzdGFnZ2VyQ2hpbGRyZW5cbiAgICAgICAgICAgIDogbWF4U3RhZ2dlckR1cmF0aW9uIC0gaW5kZXggKiBzdGFnZ2VyQ2hpbGRyZW47XG59XG5cbmV4cG9ydCB7IGNhbGNDaGlsZFN0YWdnZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhbGMtY2hpbGQtc3RhZ2dlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ canAnimate: () => (/* binding */ canAnimate)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../generators/utils/is-generator.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\");\n/* harmony import */ var _is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-animatable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs\");\n\n\n\n\nfunction hasKeyframesChanged(keyframes) {\n const current = keyframes[0];\n if (keyframes.length === 1)\n return true;\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] !== current)\n return true;\n }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n if (originKeyframe === null) {\n return false;\n }\n /**\n * These aren't traditionally animatable but we do support them.\n * In future we could look into making this more generic or replacing\n * this function with mix() === mixImmediate\n */\n if (name === \"display\" || name === \"visibility\")\n return true;\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = (0,_is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimatable)(originKeyframe, name);\n const isTargetAnimatable = (0,_is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimatable)(targetKeyframe, name);\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warning)(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". \"${isOriginAnimatable ? targetKeyframe : originKeyframe}\" is not an animatable value.`, \"value-not-animatable\");\n // Always skip if any of these are true\n if (!isOriginAnimatable || !isTargetAnimatable) {\n return false;\n }\n return (hasKeyframesChanged(keyframes) ||\n ((type === \"spring\" || (0,_generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_2__.isGenerator)(type)) && velocity));\n}\n\n\n//# sourceMappingURL=can-animate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2Nhbi1hbmltYXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVDO0FBQzRCO0FBQ2hCOztBQUVuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixzQkFBc0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsZ0VBQVk7QUFDM0MsK0JBQStCLGdFQUFZO0FBQzNDLElBQUkscURBQU8seUVBQXlFLE1BQU0sUUFBUSxlQUFlLFFBQVEsZUFBZSxNQUFNLHFEQUFxRDtBQUNuTTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLCtFQUFXO0FBQzFDOztBQUVzQjtBQUN0QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2Nhbi1hbmltYXRlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YXJuaW5nIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGlzR2VuZXJhdG9yIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycy91dGlscy9pcy1nZW5lcmF0b3IubWpzJztcbmltcG9ydCB7IGlzQW5pbWF0YWJsZSB9IGZyb20gJy4vaXMtYW5pbWF0YWJsZS5tanMnO1xuXG5mdW5jdGlvbiBoYXNLZXlmcmFtZXNDaGFuZ2VkKGtleWZyYW1lcykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBrZXlmcmFtZXNbMF07XG4gICAgaWYgKGtleWZyYW1lcy5sZW5ndGggPT09IDEpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5ZnJhbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChrZXlmcmFtZXNbaV0gIT09IGN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5mdW5jdGlvbiBjYW5BbmltYXRlKGtleWZyYW1lcywgbmFtZSwgdHlwZSwgdmVsb2NpdHkpIHtcbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB3ZSdyZSBhYmxlIHRvIGFuaW1hdGUgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCBrZXlmcmFtZXMsXG4gICAgICogYW5kIHRocm93IGEgd2FybmluZyBpZiB3ZSdyZSBhdHRlbXB0aW5nIHRvIGFuaW1hdGUgYmV0d2VlbiBvbmUgdGhhdCdzXG4gICAgICogYW5pbWF0YWJsZSBhbmQgYW5vdGhlciB0aGF0IGlzbid0LlxuICAgICAqL1xuICAgIGNvbnN0IG9yaWdpbktleWZyYW1lID0ga2V5ZnJhbWVzWzBdO1xuICAgIGlmIChvcmlnaW5LZXlmcmFtZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZXNlIGFyZW4ndCB0cmFkaXRpb25hbGx5IGFuaW1hdGFibGUgYnV0IHdlIGRvIHN1cHBvcnQgdGhlbS5cbiAgICAgKiBJbiBmdXR1cmUgd2UgY291bGQgbG9vayBpbnRvIG1ha2luZyB0aGlzIG1vcmUgZ2VuZXJpYyBvciByZXBsYWNpbmdcbiAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpdGggbWl4KCkgPT09IG1peEltbWVkaWF0ZVxuICAgICAqL1xuICAgIGlmIChuYW1lID09PSBcImRpc3BsYXlcIiB8fCBuYW1lID09PSBcInZpc2liaWxpdHlcIilcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgdGFyZ2V0S2V5ZnJhbWUgPSBrZXlmcmFtZXNba2V5ZnJhbWVzLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGlzT3JpZ2luQW5pbWF0YWJsZSA9IGlzQW5pbWF0YWJsZShvcmlnaW5LZXlmcmFtZSwgbmFtZSk7XG4gICAgY29uc3QgaXNUYXJnZXRBbmltYXRhYmxlID0gaXNBbmltYXRhYmxlKHRhcmdldEtleWZyYW1lLCBuYW1lKTtcbiAgICB3YXJuaW5nKGlzT3JpZ2luQW5pbWF0YWJsZSA9PT0gaXNUYXJnZXRBbmltYXRhYmxlLCBgWW91IGFyZSB0cnlpbmcgdG8gYW5pbWF0ZSAke25hbWV9IGZyb20gXCIke29yaWdpbktleWZyYW1lfVwiIHRvIFwiJHt0YXJnZXRLZXlmcmFtZX1cIi4gXCIke2lzT3JpZ2luQW5pbWF0YWJsZSA/IHRhcmdldEtleWZyYW1lIDogb3JpZ2luS2V5ZnJhbWV9XCIgaXMgbm90IGFuIGFuaW1hdGFibGUgdmFsdWUuYCwgXCJ2YWx1ZS1ub3QtYW5pbWF0YWJsZVwiKTtcbiAgICAvLyBBbHdheXMgc2tpcCBpZiBhbnkgb2YgdGhlc2UgYXJlIHRydWVcbiAgICBpZiAoIWlzT3JpZ2luQW5pbWF0YWJsZSB8fCAhaXNUYXJnZXRBbmltYXRhYmxlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIChoYXNLZXlmcmFtZXNDaGFuZ2VkKGtleWZyYW1lcykgfHxcbiAgICAgICAgKCh0eXBlID09PSBcInNwcmluZ1wiIHx8IGlzR2VuZXJhdG9yKHR5cGUpKSAmJiB2ZWxvY2l0eSkpO1xufVxuXG5leHBvcnQgeyBjYW5BbmltYXRlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jYW4tYW5pbWF0ZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getVariableValue: () => (/* binding */ getVariableValue),\n/* harmony export */ parseCSSVariable: () => (/* binding */ parseCSSVariable)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\");\n/* harmony import */ var _is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n\n\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = \n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token1, token2, fallback] = match;\n return [`--${token1 ?? token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.invariant)(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`, \"max-css-var-depth\");\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.isNumericalString)(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n return (0,_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__.isCSSVariableToken)(fallback)\n ? getVariableValue(fallback, element, depth + 1)\n : fallback;\n}\n\n\n//# sourceMappingURL=css-variables-conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2Nzcy12YXJpYWJsZXMtY29udmVyc2lvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBNEQ7QUFDRDs7QUFFM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixpQkFBaUI7QUFDbEM7QUFDQTtBQUNBO0FBQ0EsSUFBSSx1REFBUyw2RUFBNkUsUUFBUTtBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSwrREFBaUI7QUFDaEM7QUFDQSxXQUFXLHdFQUFrQjtBQUM3QjtBQUNBO0FBQ0E7O0FBRThDO0FBQzlDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvY3NzLXZhcmlhYmxlcy1jb252ZXJzaW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnZhcmlhbnQsIGlzTnVtZXJpY2FsU3RyaW5nIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGlzQ1NTVmFyaWFibGVUb2tlbiB9IGZyb20gJy4vaXMtY3NzLXZhcmlhYmxlLm1qcyc7XG5cbi8qKlxuICogUGFyc2UgRnJhbWVyJ3Mgc3BlY2lhbCBDU1MgdmFyaWFibGUgZm9ybWF0IGludG8gYSBDU1MgdG9rZW4gYW5kIGEgZmFsbGJhY2suXG4gKlxuICogYGBgXG4gKiBgdmFyKC0tZm9vLCAjZmZmKWAgPT4gW2AtLWZvb2AsICcjZmZmJ11cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBjdXJyZW50XG4gKi9cbmNvbnN0IHNwbGl0Q1NTVmFyaWFibGVSZWdleCA9IFxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlZG9zLWRldGVjdG9yL25vLXVuc2FmZS1yZWdleCAtLSBmYWxzZSBwb3NpdGl2ZSwgYXMgaXQgY2FuIG1hdGNoIGEgbG90IG9mIHdvcmRzXG4vXnZhclxcKC0tKD86KFtcXHctXSspfChbXFx3LV0rKSwgPyhbYS16QS1aXFxkICgpJSMuLC1dKykpXFwpL3U7XG5mdW5jdGlvbiBwYXJzZUNTU1ZhcmlhYmxlKGN1cnJlbnQpIHtcbiAgICBjb25zdCBtYXRjaCA9IHNwbGl0Q1NTVmFyaWFibGVSZWdleC5leGVjKGN1cnJlbnQpO1xuICAgIGlmICghbWF0Y2gpXG4gICAgICAgIHJldHVybiBbLF07XG4gICAgY29uc3QgWywgdG9rZW4xLCB0b2tlbjIsIGZhbGxiYWNrXSA9IG1hdGNoO1xuICAgIHJldHVybiBbYC0tJHt0b2tlbjEgPz8gdG9rZW4yfWAsIGZhbGxiYWNrXTtcbn1cbmNvbnN0IG1heERlcHRoID0gNDtcbmZ1bmN0aW9uIGdldFZhcmlhYmxlVmFsdWUoY3VycmVudCwgZWxlbWVudCwgZGVwdGggPSAxKSB7XG4gICAgaW52YXJpYW50KGRlcHRoIDw9IG1heERlcHRoLCBgTWF4IENTUyB2YXJpYWJsZSBmYWxsYmFjayBkZXB0aCBkZXRlY3RlZCBpbiBwcm9wZXJ0eSBcIiR7Y3VycmVudH1cIi4gVGhpcyBtYXkgaW5kaWNhdGUgYSBjaXJjdWxhciBmYWxsYmFjayBkZXBlbmRlbmN5LmAsIFwibWF4LWNzcy12YXItZGVwdGhcIik7XG4gICAgY29uc3QgW3Rva2VuLCBmYWxsYmFja10gPSBwYXJzZUNTU1ZhcmlhYmxlKGN1cnJlbnQpO1xuICAgIC8vIE5vIENTUyB2YXJpYWJsZSBkZXRlY3RlZFxuICAgIGlmICghdG9rZW4pXG4gICAgICAgIHJldHVybjtcbiAgICAvLyBBdHRlbXB0IHRvIHJlYWQgdGhpcyBDU1MgdmFyaWFibGUgb2ZmIHRoZSBlbGVtZW50XG4gICAgY29uc3QgcmVzb2x2ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKHRva2VuKTtcbiAgICBpZiAocmVzb2x2ZWQpIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHJlc29sdmVkLnRyaW0oKTtcbiAgICAgICAgcmV0dXJuIGlzTnVtZXJpY2FsU3RyaW5nKHRyaW1tZWQpID8gcGFyc2VGbG9hdCh0cmltbWVkKSA6IHRyaW1tZWQ7XG4gICAgfVxuICAgIHJldHVybiBpc0NTU1ZhcmlhYmxlVG9rZW4oZmFsbGJhY2spXG4gICAgICAgID8gZ2V0VmFyaWFibGVWYWx1ZShmYWxsYmFjaywgZWxlbWVudCwgZGVwdGggKyAxKVxuICAgICAgICA6IGZhbGxiYWNrO1xufVxuXG5leHBvcnQgeyBnZXRWYXJpYWJsZVZhbHVlLCBwYXJzZUNTU1ZhcmlhYmxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jc3MtdmFyaWFibGVzLWNvbnZlcnNpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getDefaultTransition: () => (/* binding */ getDefaultTransition)\n/* harmony export */ });\n/* harmony import */ var _render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (_render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\n\n//# sourceMappingURL=default-transitions.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2RlZmF1bHQtdHJhbnNpdGlvbnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXVFOztBQUV2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLFdBQVc7QUFDckQ7QUFDQTtBQUNBO0FBQ0EsYUFBYSw0RUFBYztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvZGVmYXVsdC10cmFuc2l0aW9ucy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJhbnNmb3JtUHJvcHMgfSBmcm9tICcuLi8uLi9yZW5kZXIvdXRpbHMva2V5cy10cmFuc2Zvcm0ubWpzJztcblxuY29uc3QgdW5kZXJEYW1wZWRTcHJpbmcgPSB7XG4gICAgdHlwZTogXCJzcHJpbmdcIixcbiAgICBzdGlmZm5lc3M6IDUwMCxcbiAgICBkYW1waW5nOiAyNSxcbiAgICByZXN0U3BlZWQ6IDEwLFxufTtcbmNvbnN0IGNyaXRpY2FsbHlEYW1wZWRTcHJpbmcgPSAodGFyZ2V0KSA9PiAoe1xuICAgIHR5cGU6IFwic3ByaW5nXCIsXG4gICAgc3RpZmZuZXNzOiA1NTAsXG4gICAgZGFtcGluZzogdGFyZ2V0ID09PSAwID8gMiAqIE1hdGguc3FydCg1NTApIDogMzAsXG4gICAgcmVzdFNwZWVkOiAxMCxcbn0pO1xuY29uc3Qga2V5ZnJhbWVzVHJhbnNpdGlvbiA9IHtcbiAgICB0eXBlOiBcImtleWZyYW1lc1wiLFxuICAgIGR1cmF0aW9uOiAwLjgsXG59O1xuLyoqXG4gKiBEZWZhdWx0IGVhc2luZyBjdXJ2ZSBpcyBhIHNsaWdodGx5IHNoYWxsb3dlciB2ZXJzaW9uIG9mXG4gKiB0aGUgZGVmYXVsdCBicm93c2VyIGVhc2luZyBjdXJ2ZS5cbiAqL1xuY29uc3QgZWFzZSA9IHtcbiAgICB0eXBlOiBcImtleWZyYW1lc1wiLFxuICAgIGVhc2U6IFswLjI1LCAwLjEsIDAuMzUsIDFdLFxuICAgIGR1cmF0aW9uOiAwLjMsXG59O1xuY29uc3QgZ2V0RGVmYXVsdFRyYW5zaXRpb24gPSAodmFsdWVLZXksIHsga2V5ZnJhbWVzIH0pID0+IHtcbiAgICBpZiAoa2V5ZnJhbWVzLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgcmV0dXJuIGtleWZyYW1lc1RyYW5zaXRpb247XG4gICAgfVxuICAgIGVsc2UgaWYgKHRyYW5zZm9ybVByb3BzLmhhcyh2YWx1ZUtleSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlS2V5LnN0YXJ0c1dpdGgoXCJzY2FsZVwiKVxuICAgICAgICAgICAgPyBjcml0aWNhbGx5RGFtcGVkU3ByaW5nKGtleWZyYW1lc1sxXSlcbiAgICAgICAgICAgIDogdW5kZXJEYW1wZWRTcHJpbmc7XG4gICAgfVxuICAgIHJldHVybiBlYXNlO1xufTtcblxuZXhwb3J0IHsgZ2V0RGVmYXVsdFRyYW5zaXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmF1bHQtdHJhbnNpdGlvbnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getFinalKeyframe: () => (/* binding */ getFinalKeyframe)\n/* harmony export */ });\nconst isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\n\n//# sourceMappingURL=get-final-keyframe.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2dldC1maW5hbC1rZXlmcmFtZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsdUNBQXVDLDZCQUE2QjtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2dldC1maW5hbC1rZXlmcmFtZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNOb3ROdWxsID0gKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbnVsbDtcbmZ1bmN0aW9uIGdldEZpbmFsS2V5ZnJhbWUoa2V5ZnJhbWVzLCB7IHJlcGVhdCwgcmVwZWF0VHlwZSA9IFwibG9vcFwiIH0sIGZpbmFsS2V5ZnJhbWUpIHtcbiAgICBjb25zdCByZXNvbHZlZEtleWZyYW1lcyA9IGtleWZyYW1lcy5maWx0ZXIoaXNOb3ROdWxsKTtcbiAgICBjb25zdCBpbmRleCA9IHJlcGVhdCAmJiByZXBlYXRUeXBlICE9PSBcImxvb3BcIiAmJiByZXBlYXQgJSAyID09PSAxXG4gICAgICAgID8gMFxuICAgICAgICA6IHJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aCAtIDE7XG4gICAgcmV0dXJuICFpbmRleCB8fCBmaW5hbEtleWZyYW1lID09PSB1bmRlZmluZWRcbiAgICAgICAgPyByZXNvbHZlZEtleWZyYW1lc1tpbmRleF1cbiAgICAgICAgOiBmaW5hbEtleWZyYW1lO1xufVxuXG5leHBvcnQgeyBnZXRGaW5hbEtleWZyYW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtZmluYWwta2V5ZnJhbWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getValueTransition: () => (/* binding */ getValueTransition)\n/* harmony export */ });\n/* harmony import */ var _resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resolve-transition.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs\");\n\n\nfunction getValueTransition(transition, key) {\n const valueTransition = transition?.[key] ??\n transition?.[\"default\"] ??\n transition;\n if (valueTransition !== transition) {\n return (0,_resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveTransition)(valueTransition, transition);\n }\n return valueTransition;\n}\n\n\n//# sourceMappingURL=get-value-transition.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2dldC12YWx1ZS10cmFuc2l0aW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2RDs7QUFFN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsMEVBQWlCO0FBQ2hDO0FBQ0E7QUFDQTs7QUFFOEI7QUFDOUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9nZXQtdmFsdWUtdHJhbnNpdGlvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZVRyYW5zaXRpb24gfSBmcm9tICcuL3Jlc29sdmUtdHJhbnNpdGlvbi5tanMnO1xuXG5mdW5jdGlvbiBnZXRWYWx1ZVRyYW5zaXRpb24odHJhbnNpdGlvbiwga2V5KSB7XG4gICAgY29uc3QgdmFsdWVUcmFuc2l0aW9uID0gdHJhbnNpdGlvbj8uW2tleV0gPz9cbiAgICAgICAgdHJhbnNpdGlvbj8uW1wiZGVmYXVsdFwiXSA/P1xuICAgICAgICB0cmFuc2l0aW9uO1xuICAgIGlmICh2YWx1ZVRyYW5zaXRpb24gIT09IHRyYW5zaXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVUcmFuc2l0aW9uKHZhbHVlVHJhbnNpdGlvbiwgdHJhbnNpdGlvbik7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZVRyYW5zaXRpb247XG59XG5cbmV4cG9ydCB7IGdldFZhbHVlVHJhbnNpdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LXZhbHVlLXRyYW5zaXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAnimatable: () => (/* binding */ isAnimatable)\n/* harmony export */ });\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (value, name) => {\n // If the list of keys that might be non-animatable grows, replace with Set\n if (name === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\n\n//# sourceMappingURL=is-animatable.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWFuaW1hdGFibGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQThEOztBQUU5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsbUVBQU87QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV3QjtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWFuaW1hdGFibGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBsZXggfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9jb21wbGV4L2luZGV4Lm1qcyc7XG5cbi8qKlxuICogQ2hlY2sgaWYgYSB2YWx1ZSBpcyBhbmltYXRhYmxlLiBFeGFtcGxlczpcbiAqXG4gKiDinIU6IDEwMCwgXCIxMDBweFwiLCBcIiNmZmZcIlxuICog4p2MOiBcImJsb2NrXCIsIFwidXJsKDIuanBnKVwiXG4gKiBAcGFyYW0gdmFsdWVcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgaXNBbmltYXRhYmxlID0gKHZhbHVlLCBuYW1lKSA9PiB7XG4gICAgLy8gSWYgdGhlIGxpc3Qgb2Yga2V5cyB0aGF0IG1pZ2h0IGJlIG5vbi1hbmltYXRhYmxlIGdyb3dzLCByZXBsYWNlIHdpdGggU2V0XG4gICAgaWYgKG5hbWUgPT09IFwiekluZGV4XCIpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyBJZiBpdCdzIGEgbnVtYmVyIG9yIGEga2V5ZnJhbWVzIGFycmF5LCB3ZSBjYW4gYW5pbWF0ZSBpdC4gV2UgbWlnaHQgYXQgc29tZSBwb2ludFxuICAgIC8vIG5lZWQgdG8gZG8gYSBkZWVwIGlzQW5pbWF0YWJsZSBjaGVjayBvZiBrZXlmcmFtZXMsIG9yIGxldCBQb3Btb3Rpb24gaGFuZGxlIHRoaXMsXG4gICAgLy8gYnV0IGZvciBub3cgbGV0cyBsZWF2ZSBpdCBsaWtlIHRoaXMgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnNcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIC8vIEl0J3MgYW5pbWF0YWJsZSBpZiB3ZSBoYXZlIGEgc3RyaW5nXG4gICAgICAgIChjb21wbGV4LnRlc3QodmFsdWUpIHx8IHZhbHVlID09PSBcIjBcIikgJiYgLy8gQW5kIGl0IGNvbnRhaW5zIG51bWJlcnMgYW5kL29yIGNvbG9yc1xuICAgICAgICAhdmFsdWUuc3RhcnRzV2l0aChcInVybChcIikgLy8gVW5sZXNzIGl0IHN0YXJ0cyB3aXRoIFwidXJsKFwiXG4gICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgeyBpc0FuaW1hdGFibGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWFuaW1hdGFibGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ containsCSSVariable: () => (/* binding */ containsCSSVariable),\n/* harmony export */ isCSSVariableName: () => (/* binding */ isCSSVariableName),\n/* harmony export */ isCSSVariableToken: () => (/* binding */ isCSSVariableToken)\n/* harmony export */ });\nconst checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = \n/*@__PURE__*/ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = \n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n/**\n * Check if a value contains a CSS variable anywhere (e.g. inside calc()).\n * Unlike isCSSVariableToken which checks if the value IS a var() token,\n * this checks if the value CONTAINS var() somewhere in the string.\n */\nfunction containsCSSVariable(value) {\n if (typeof value !== \"string\")\n return false;\n // Strip comments to avoid false positives\n return value.split(\"/*\")[0].includes(\"var(--\");\n}\n\n\n//# sourceMappingURL=is-css-variable.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWNzcy12YXJpYWJsZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzRTtBQUN0RSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWNzcy12YXJpYWJsZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY2hlY2tTdHJpbmdTdGFydHNXaXRoID0gKHRva2VuKSA9PiAoa2V5KSA9PiB0eXBlb2Yga2V5ID09PSBcInN0cmluZ1wiICYmIGtleS5zdGFydHNXaXRoKHRva2VuKTtcbmNvbnN0IGlzQ1NTVmFyaWFibGVOYW1lID0gXG4vKkBfX1BVUkVfXyovIGNoZWNrU3RyaW5nU3RhcnRzV2l0aChcIi0tXCIpO1xuY29uc3Qgc3RhcnRzQXNWYXJpYWJsZVRva2VuID0gXG4vKkBfX1BVUkVfXyovIGNoZWNrU3RyaW5nU3RhcnRzV2l0aChcInZhcigtLVwiKTtcbmNvbnN0IGlzQ1NTVmFyaWFibGVUb2tlbiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHN0YXJ0c1dpdGhUb2tlbiA9IHN0YXJ0c0FzVmFyaWFibGVUb2tlbih2YWx1ZSk7XG4gICAgaWYgKCFzdGFydHNXaXRoVG9rZW4pXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyBFbnN1cmUgYW55IGNvbW1lbnRzIGFyZSBzdHJpcHBlZCBmcm9tIHRoZSB2YWx1ZSBhcyB0aGlzIGNhbiBoYXJtIHBlcmZvcm1hbmNlIG9mIHRoZSByZWdleC5cbiAgICByZXR1cm4gc2luZ2xlQ3NzVmFyaWFibGVSZWdleC50ZXN0KHZhbHVlLnNwbGl0KFwiLypcIilbMF0udHJpbSgpKTtcbn07XG5jb25zdCBzaW5nbGVDc3NWYXJpYWJsZVJlZ2V4ID0gL3ZhclxcKC0tKD86W1xcdy1dK1xccyp8W1xcdy1dK1xccyosKD86XFxzKlteKShcXHNdfFxccypcXCgoPzpbXikoXXxcXChbXikoXSpcXCkpKlxcKSkrXFxzKilcXCkkL2l1O1xuLyoqXG4gKiBDaGVjayBpZiBhIHZhbHVlIGNvbnRhaW5zIGEgQ1NTIHZhcmlhYmxlIGFueXdoZXJlIChlLmcuIGluc2lkZSBjYWxjKCkpLlxuICogVW5saWtlIGlzQ1NTVmFyaWFibGVUb2tlbiB3aGljaCBjaGVja3MgaWYgdGhlIHZhbHVlIElTIGEgdmFyKCkgdG9rZW4sXG4gKiB0aGlzIGNoZWNrcyBpZiB0aGUgdmFsdWUgQ09OVEFJTlMgdmFyKCkgc29tZXdoZXJlIGluIHRoZSBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGNvbnRhaW5zQ1NTVmFyaWFibGUodmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gU3RyaXAgY29tbWVudHMgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzXG4gICAgcmV0dXJuIHZhbHVlLnNwbGl0KFwiLypcIilbMF0uaW5jbHVkZXMoXCJ2YXIoLS1cIik7XG59XG5cbmV4cG9ydCB7IGNvbnRhaW5zQ1NTVmFyaWFibGUsIGlzQ1NTVmFyaWFibGVOYW1lLCBpc0NTU1ZhcmlhYmxlVG9rZW4gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWNzcy12YXJpYWJsZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isTransitionDefined: () => (/* binding */ isTransitionDefined)\n/* harmony export */ });\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\n\n\n//# sourceMappingURL=is-transition-defined.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLXRyYW5zaXRpb24tZGVmaW5lZC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0Isc0lBQXNJO0FBQ3JLO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvaXMtdHJhbnNpdGlvbi1kZWZpbmVkLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlY2lkZSB3aGV0aGVyIGEgdHJhbnNpdGlvbiBpcyBkZWZpbmVkIG9uIGEgZ2l2ZW4gVHJhbnNpdGlvbi5cbiAqIFRoaXMgZmlsdGVycyBvdXQgb3JjaGVzdHJhdGlvbiBvcHRpb25zIGFuZCByZXR1cm5zIHRydWVcbiAqIGlmIGFueSBvcHRpb25zIGFyZSBsZWZ0LlxuICovXG5mdW5jdGlvbiBpc1RyYW5zaXRpb25EZWZpbmVkKHsgd2hlbiwgZGVsYXk6IF9kZWxheSwgZGVsYXlDaGlsZHJlbiwgc3RhZ2dlckNoaWxkcmVuLCBzdGFnZ2VyRGlyZWN0aW9uLCByZXBlYXQsIHJlcGVhdFR5cGUsIHJlcGVhdERlbGF5LCBmcm9tLCBlbGFwc2VkLCAuLi50cmFuc2l0aW9uIH0pIHtcbiAgICByZXR1cm4gISFPYmplY3Qua2V5cyh0cmFuc2l0aW9uKS5sZW5ndGg7XG59XG5cbmV4cG9ydCB7IGlzVHJhbnNpdGlvbkRlZmluZWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXRyYW5zaXRpb24tZGVmaW5lZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ makeAnimationInstant: () => (/* binding */ makeAnimationInstant)\n/* harmony export */ });\nfunction makeAnimationInstant(options) {\n options.duration = 0;\n options.type = \"keyframes\";\n}\n\n\n//# sourceMappingURL=make-animation-instant.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL21ha2UtYW5pbWF0aW9uLWluc3RhbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9tYWtlLWFuaW1hdGlvbi1pbnN0YW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBtYWtlQW5pbWF0aW9uSW5zdGFudChvcHRpb25zKSB7XG4gICAgb3B0aW9ucy5kdXJhdGlvbiA9IDA7XG4gICAgb3B0aW9ucy50eXBlID0gXCJrZXlmcmFtZXNcIjtcbn1cblxuZXhwb3J0IHsgbWFrZUFuaW1hdGlvbkluc3RhbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1ha2UtYW5pbWF0aW9uLWluc3RhbnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs ***! + \*************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ replaceTransitionType: () => (/* binding */ replaceTransitionType)\n/* harmony export */ });\n/* harmony import */ var _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../generators/inertia.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\");\n/* harmony import */ var _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../generators/keyframes.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\");\n/* harmony import */ var _generators_spring_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../generators/spring/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\");\n\n\n\n\nconst transitionTypeMap = {\n decay: _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__.inertia,\n inertia: _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__.inertia,\n tween: _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__.keyframes,\n keyframes: _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__.keyframes,\n spring: _generators_spring_index_mjs__WEBPACK_IMPORTED_MODULE_2__.spring,\n};\nfunction replaceTransitionType(transition) {\n if (typeof transition.type === \"string\") {\n transition.type = transitionTypeMap[transition.type];\n }\n}\n\n\n//# sourceMappingURL=replace-transition-type.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL3JlcGxhY2UtdHJhbnNpdGlvbi10eXBlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQW9EO0FBQ0k7QUFDQTs7QUFFeEQ7QUFDQSxXQUFXLDREQUFPO0FBQ2xCLFdBQVc7QUFDWCxXQUFXLGdFQUFTO0FBQ3BCLGVBQWUsZ0VBQVM7QUFDeEIsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9yZXBsYWNlLXRyYW5zaXRpb24tdHlwZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5lcnRpYSB9IGZyb20gJy4uL2dlbmVyYXRvcnMvaW5lcnRpYS5tanMnO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycy9rZXlmcmFtZXMubWpzJztcbmltcG9ydCB7IHNwcmluZyB9IGZyb20gJy4uL2dlbmVyYXRvcnMvc3ByaW5nL2luZGV4Lm1qcyc7XG5cbmNvbnN0IHRyYW5zaXRpb25UeXBlTWFwID0ge1xuICAgIGRlY2F5OiBpbmVydGlhLFxuICAgIGluZXJ0aWEsXG4gICAgdHdlZW46IGtleWZyYW1lcyxcbiAgICBrZXlmcmFtZXM6IGtleWZyYW1lcyxcbiAgICBzcHJpbmcsXG59O1xuZnVuY3Rpb24gcmVwbGFjZVRyYW5zaXRpb25UeXBlKHRyYW5zaXRpb24pIHtcbiAgICBpZiAodHlwZW9mIHRyYW5zaXRpb24udHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0cmFuc2l0aW9uLnR5cGUgPSB0cmFuc2l0aW9uVHlwZU1hcFt0cmFuc2l0aW9uLnR5cGVdO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgcmVwbGFjZVRyYW5zaXRpb25UeXBlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXBsYWNlLXRyYW5zaXRpb24tdHlwZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveTransition: () => (/* binding */ resolveTransition)\n/* harmony export */ });\n/**\n * If `transition` has `inherit: true`, shallow-merge it with\n * `parentTransition` (child keys win) and strip the `inherit` key.\n * Otherwise return `transition` unchanged.\n */\nfunction resolveTransition(transition, parentTransition) {\n if (transition?.inherit && parentTransition) {\n const { inherit: _, ...rest } = transition;\n return { ...parentTransition, ...rest };\n }\n return transition;\n}\n\n\n//# sourceMappingURL=resolve-transition.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL3Jlc29sdmUtdHJhbnNpdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHNCQUFzQjtBQUN0QyxpQkFBaUI7QUFDakI7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL3Jlc29sdmUtdHJhbnNpdGlvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJZiBgdHJhbnNpdGlvbmAgaGFzIGBpbmhlcml0OiB0cnVlYCwgc2hhbGxvdy1tZXJnZSBpdCB3aXRoXG4gKiBgcGFyZW50VHJhbnNpdGlvbmAgKGNoaWxkIGtleXMgd2luKSBhbmQgc3RyaXAgdGhlIGBpbmhlcml0YCBrZXkuXG4gKiBPdGhlcndpc2UgcmV0dXJuIGB0cmFuc2l0aW9uYCB1bmNoYW5nZWQuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVUcmFuc2l0aW9uKHRyYW5zaXRpb24sIHBhcmVudFRyYW5zaXRpb24pIHtcbiAgICBpZiAodHJhbnNpdGlvbj8uaW5oZXJpdCAmJiBwYXJlbnRUcmFuc2l0aW9uKSB7XG4gICAgICAgIGNvbnN0IHsgaW5oZXJpdDogXywgLi4ucmVzdCB9ID0gdHJhbnNpdGlvbjtcbiAgICAgICAgcmV0dXJuIHsgLi4ucGFyZW50VHJhbnNpdGlvbiwgLi4ucmVzdCB9O1xuICAgIH1cbiAgICByZXR1cm4gdHJhbnNpdGlvbjtcbn1cblxuZXhwb3J0IHsgcmVzb2x2ZVRyYW5zaXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtdHJhbnNpdGlvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cubicBezierAsString: () => (/* binding */ cubicBezierAsString)\n/* harmony export */ });\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n\n\n//# sourceMappingURL=cubic-bezier.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9jdWJpYy1iZXppZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSw4REFBOEQsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTs7QUFFbkQ7QUFDL0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9lYXNpbmcvY3ViaWMtYmV6aWVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjdWJpY0JlemllckFzU3RyaW5nID0gKFthLCBiLCBjLCBkXSkgPT4gYGN1YmljLWJlemllcigke2F9LCAke2J9LCAke2N9LCAke2R9KWA7XG5cbmV4cG9ydCB7IGN1YmljQmV6aWVyQXNTdHJpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWN1YmljLWJlemllci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mapEasingToNativeEasing: () => (/* binding */ mapEasingToNativeEasing)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\");\n/* harmony import */ var _utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../utils/supports/linear-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\");\n/* harmony import */ var _utils_linear_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/linear.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\");\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\");\n/* harmony import */ var _supported_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./supported.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs\");\n\n\n\n\n\n\nfunction mapEasingToNativeEasing(easing, duration) {\n if (!easing) {\n return undefined;\n }\n else if (typeof easing === \"function\") {\n return (0,_utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_0__.supportsLinearEasing)()\n ? (0,_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_1__.generateLinearEasing)(easing, duration)\n : \"ease-out\";\n }\n else if ((0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.isBezierDefinition)(easing)) {\n return (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_3__.cubicBezierAsString)(easing);\n }\n else if (Array.isArray(easing)) {\n return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) ||\n _supported_mjs__WEBPACK_IMPORTED_MODULE_4__.supportedWaapiEasing.easeOut);\n }\n else {\n return _supported_mjs__WEBPACK_IMPORTED_MODULE_4__.supportedWaapiEasing[easing];\n }\n}\n\n\n//# sourceMappingURL=map-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9tYXAtZWFzaW5nLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBa0Q7QUFDK0I7QUFDdEI7QUFDRjtBQUNGOztBQUV2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSx1RkFBb0I7QUFDbkMsY0FBYyx1RUFBb0I7QUFDbEM7QUFDQTtBQUNBLGFBQWEsZ0VBQWtCO0FBQy9CLGVBQWUsc0VBQW1CO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLFlBQVksZ0VBQW9CO0FBQ2hDO0FBQ0E7QUFDQSxlQUFlLGdFQUFvQjtBQUNuQztBQUNBOztBQUVtQztBQUNuQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9tYXAtZWFzaW5nLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0JlemllckRlZmluaXRpb24gfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgc3VwcG9ydHNMaW5lYXJFYXNpbmcgfSBmcm9tICcuLi8uLi8uLi91dGlscy9zdXBwb3J0cy9saW5lYXItZWFzaW5nLm1qcyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUxpbmVhckVhc2luZyB9IGZyb20gJy4uL3V0aWxzL2xpbmVhci5tanMnO1xuaW1wb3J0IHsgY3ViaWNCZXppZXJBc1N0cmluZyB9IGZyb20gJy4vY3ViaWMtYmV6aWVyLm1qcyc7XG5pbXBvcnQgeyBzdXBwb3J0ZWRXYWFwaUVhc2luZyB9IGZyb20gJy4vc3VwcG9ydGVkLm1qcyc7XG5cbmZ1bmN0aW9uIG1hcEVhc2luZ1RvTmF0aXZlRWFzaW5nKGVhc2luZywgZHVyYXRpb24pIHtcbiAgICBpZiAoIWVhc2luZykge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZWFzaW5nID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRzTGluZWFyRWFzaW5nKClcbiAgICAgICAgICAgID8gZ2VuZXJhdGVMaW5lYXJFYXNpbmcoZWFzaW5nLCBkdXJhdGlvbilcbiAgICAgICAgICAgIDogXCJlYXNlLW91dFwiO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc0JlemllckRlZmluaXRpb24oZWFzaW5nKSkge1xuICAgICAgICByZXR1cm4gY3ViaWNCZXppZXJBc1N0cmluZyhlYXNpbmcpO1xuICAgIH1cbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGVhc2luZykpIHtcbiAgICAgICAgcmV0dXJuIGVhc2luZy5tYXAoKHNlZ21lbnRFYXNpbmcpID0+IG1hcEVhc2luZ1RvTmF0aXZlRWFzaW5nKHNlZ21lbnRFYXNpbmcsIGR1cmF0aW9uKSB8fFxuICAgICAgICAgICAgc3VwcG9ydGVkV2FhcGlFYXNpbmcuZWFzZU91dCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gc3VwcG9ydGVkV2FhcGlFYXNpbmdbZWFzaW5nXTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IG1hcEVhc2luZ1RvTmF0aXZlRWFzaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYXAtZWFzaW5nLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportedWaapiEasing: () => (/* binding */ supportedWaapiEasing)\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\");\n\n\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0, 0.65, 0.55, 1]),\n circOut: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.55, 0, 1, 0.45]),\n backIn: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.31, 0.01, 0.66, -0.59]),\n backOut: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.33, 1.53, 0.69, 0.99]),\n};\n\n\n//# sourceMappingURL=supported.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9zdXBwb3J0ZWQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlEOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsc0VBQW1CO0FBQzdDLDJCQUEyQixzRUFBbUI7QUFDOUMsMEJBQTBCLHNFQUFtQjtBQUM3QywyQkFBMkIsc0VBQW1CO0FBQzlDOztBQUVnQztBQUNoQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9zdXBwb3J0ZWQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1YmljQmV6aWVyQXNTdHJpbmcgfSBmcm9tICcuL2N1YmljLWJlemllci5tanMnO1xuXG5jb25zdCBzdXBwb3J0ZWRXYWFwaUVhc2luZyA9IHtcbiAgICBsaW5lYXI6IFwibGluZWFyXCIsXG4gICAgZWFzZTogXCJlYXNlXCIsXG4gICAgZWFzZUluOiBcImVhc2UtaW5cIixcbiAgICBlYXNlT3V0OiBcImVhc2Utb3V0XCIsXG4gICAgZWFzZUluT3V0OiBcImVhc2UtaW4tb3V0XCIsXG4gICAgY2lyY0luOiAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyQXNTdHJpbmcoWzAsIDAuNjUsIDAuNTUsIDFdKSxcbiAgICBjaXJjT3V0OiAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyQXNTdHJpbmcoWzAuNTUsIDAsIDEsIDAuNDVdKSxcbiAgICBiYWNrSW46IC8qQF9fUFVSRV9fKi8gY3ViaWNCZXppZXJBc1N0cmluZyhbMC4zMSwgMC4wMSwgMC42NiwgLTAuNTldKSxcbiAgICBiYWNrT3V0OiAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyQXNTdHJpbmcoWzAuMzMsIDEuNTMsIDAuNjksIDAuOTldKSxcbn07XG5cbmV4cG9ydCB7IHN1cHBvcnRlZFdhYXBpRWFzaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdXBwb3J0ZWQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ startWaapiAnimation: () => (/* binding */ startWaapiAnimation)\n/* harmony export */ });\n/* harmony import */ var _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../stats/animation-count.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../stats/buffer.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n/* harmony import */ var _easing_map_easing_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./easing/map-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs\");\n\n\n\n\nfunction startWaapiAnimation(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease = \"easeOut\", times, } = {}, pseudoElement = undefined) {\n const keyframeOptions = {\n [valueName]: keyframes,\n };\n if (times)\n keyframeOptions.offset = times;\n const easing = (0,_easing_map_easing_mjs__WEBPACK_IMPORTED_MODULE_0__.mapEasingToNativeEasing)(ease, duration);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__.statsBuffer.value) {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.waapi++;\n }\n const options = {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n };\n if (pseudoElement)\n options.pseudoElement = pseudoElement;\n const animation = element.animate(keyframeOptions, options);\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__.statsBuffer.value) {\n animation.finished.finally(() => {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.waapi--;\n });\n }\n return animation;\n}\n\n\n//# sourceMappingURL=start-waapi-animation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3N0YXJ0LXdhYXBpLWFuaW1hdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFtRTtBQUNkO0FBQ2E7O0FBRWxFLDhEQUE4RCx1RkFBdUYsSUFBSTtBQUN6SjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLCtFQUF1QjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwwREFBVztBQUNuQixRQUFRLHdFQUFnQjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDBEQUFXO0FBQ25CO0FBQ0EsWUFBWSx3RUFBZ0I7QUFDNUIsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFK0I7QUFDL0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9zdGFydC13YWFwaS1hbmltYXRpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFjdGl2ZUFuaW1hdGlvbnMgfSBmcm9tICcuLi8uLi9zdGF0cy9hbmltYXRpb24tY291bnQubWpzJztcbmltcG9ydCB7IHN0YXRzQnVmZmVyIH0gZnJvbSAnLi4vLi4vc3RhdHMvYnVmZmVyLm1qcyc7XG5pbXBvcnQgeyBtYXBFYXNpbmdUb05hdGl2ZUVhc2luZyB9IGZyb20gJy4vZWFzaW5nL21hcC1lYXNpbmcubWpzJztcblxuZnVuY3Rpb24gc3RhcnRXYWFwaUFuaW1hdGlvbihlbGVtZW50LCB2YWx1ZU5hbWUsIGtleWZyYW1lcywgeyBkZWxheSA9IDAsIGR1cmF0aW9uID0gMzAwLCByZXBlYXQgPSAwLCByZXBlYXRUeXBlID0gXCJsb29wXCIsIGVhc2UgPSBcImVhc2VPdXRcIiwgdGltZXMsIH0gPSB7fSwgcHNldWRvRWxlbWVudCA9IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGtleWZyYW1lT3B0aW9ucyA9IHtcbiAgICAgICAgW3ZhbHVlTmFtZV06IGtleWZyYW1lcyxcbiAgICB9O1xuICAgIGlmICh0aW1lcylcbiAgICAgICAga2V5ZnJhbWVPcHRpb25zLm9mZnNldCA9IHRpbWVzO1xuICAgIGNvbnN0IGVhc2luZyA9IG1hcEVhc2luZ1RvTmF0aXZlRWFzaW5nKGVhc2UsIGR1cmF0aW9uKTtcbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIGlzIGFuIGVhc2luZyBhcnJheSwgYXBwbHkgdG8ga2V5ZnJhbWVzLCBub3QgYW5pbWF0aW9uIGFzIGEgd2hvbGVcbiAgICAgKi9cbiAgICBpZiAoQXJyYXkuaXNBcnJheShlYXNpbmcpKVxuICAgICAgICBrZXlmcmFtZU9wdGlvbnMuZWFzaW5nID0gZWFzaW5nO1xuICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xuICAgICAgICBhY3RpdmVBbmltYXRpb25zLndhYXBpKys7XG4gICAgfVxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgZWFzaW5nOiAhQXJyYXkuaXNBcnJheShlYXNpbmcpID8gZWFzaW5nIDogXCJsaW5lYXJcIixcbiAgICAgICAgZmlsbDogXCJib3RoXCIsXG4gICAgICAgIGl0ZXJhdGlvbnM6IHJlcGVhdCArIDEsXG4gICAgICAgIGRpcmVjdGlvbjogcmVwZWF0VHlwZSA9PT0gXCJyZXZlcnNlXCIgPyBcImFsdGVybmF0ZVwiIDogXCJub3JtYWxcIixcbiAgICB9O1xuICAgIGlmIChwc2V1ZG9FbGVtZW50KVxuICAgICAgICBvcHRpb25zLnBzZXVkb0VsZW1lbnQgPSBwc2V1ZG9FbGVtZW50O1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IGVsZW1lbnQuYW5pbWF0ZShrZXlmcmFtZU9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xuICAgICAgICBhbmltYXRpb24uZmluaXNoZWQuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICBhY3RpdmVBbmltYXRpb25zLndhYXBpLS07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYW5pbWF0aW9uO1xufVxuXG5leHBvcnQgeyBzdGFydFdhYXBpQW5pbWF0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdGFydC13YWFwaS1hbmltYXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsBrowserAnimation: () => (/* binding */ supportsBrowserAnimation)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs\");\n\n\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Could be re-enabled now we have support for linear() easing\n // \"background-color\"\n]);\nconst supportsWaapi = /*@__PURE__*/ (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.memo)(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\nfunction supportsBrowserAnimation(options) {\n const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\n const subject = motionValue?.owner?.current;\n /**\n * We use this check instead of isHTMLElement() because we explicitly\n * **don't** want elements in different timing contexts (i.e. popups)\n * to be accelerated, as it's not possible to sync these animations\n * properly with those driven from the main window frameloop.\n */\n if (!(subject instanceof HTMLElement)) {\n return false;\n }\n const { onUpdate, transformTemplate } = motionValue.owner.getProps();\n return (supportsWaapi() &&\n name &&\n acceleratedValues.has(name) &&\n (name !== \"transform\" || !transformTemplate) &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !onUpdate &&\n !repeatDelay &&\n repeatType !== \"mirror\" &&\n damping !== 0 &&\n type !== \"inertia\");\n}\n\n\n//# sourceMappingURL=waapi.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3N1cHBvcnRzL3dhYXBpLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvQzs7QUFFcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxrREFBSTtBQUN4QztBQUNBLFlBQVksNERBQTREO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSw4QkFBOEI7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFb0M7QUFDcEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9zdXBwb3J0cy93YWFwaS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtbyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5cbi8qKlxuICogQSBsaXN0IG9mIHZhbHVlcyB0aGF0IGNhbiBiZSBoYXJkd2FyZS1hY2NlbGVyYXRlZC5cbiAqL1xuY29uc3QgYWNjZWxlcmF0ZWRWYWx1ZXMgPSBuZXcgU2V0KFtcbiAgICBcIm9wYWNpdHlcIixcbiAgICBcImNsaXBQYXRoXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcInRyYW5zZm9ybVwiLFxuICAgIC8vIFRPRE86IENvdWxkIGJlIHJlLWVuYWJsZWQgbm93IHdlIGhhdmUgc3VwcG9ydCBmb3IgbGluZWFyKCkgZWFzaW5nXG4gICAgLy8gXCJiYWNrZ3JvdW5kLWNvbG9yXCJcbl0pO1xuY29uc3Qgc3VwcG9ydHNXYWFwaSA9IC8qQF9fUFVSRV9fKi8gbWVtbygoKSA9PiBPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChFbGVtZW50LnByb3RvdHlwZSwgXCJhbmltYXRlXCIpKTtcbmZ1bmN0aW9uIHN1cHBvcnRzQnJvd3NlckFuaW1hdGlvbihvcHRpb25zKSB7XG4gICAgY29uc3QgeyBtb3Rpb25WYWx1ZSwgbmFtZSwgcmVwZWF0RGVsYXksIHJlcGVhdFR5cGUsIGRhbXBpbmcsIHR5cGUgfSA9IG9wdGlvbnM7XG4gICAgY29uc3Qgc3ViamVjdCA9IG1vdGlvblZhbHVlPy5vd25lcj8uY3VycmVudDtcbiAgICAvKipcbiAgICAgKiBXZSB1c2UgdGhpcyBjaGVjayBpbnN0ZWFkIG9mIGlzSFRNTEVsZW1lbnQoKSBiZWNhdXNlIHdlIGV4cGxpY2l0bHlcbiAgICAgKiAqKmRvbid0Kiogd2FudCBlbGVtZW50cyBpbiBkaWZmZXJlbnQgdGltaW5nIGNvbnRleHRzIChpLmUuIHBvcHVwcylcbiAgICAgKiB0byBiZSBhY2NlbGVyYXRlZCwgYXMgaXQncyBub3QgcG9zc2libGUgdG8gc3luYyB0aGVzZSBhbmltYXRpb25zXG4gICAgICogcHJvcGVybHkgd2l0aCB0aG9zZSBkcml2ZW4gZnJvbSB0aGUgbWFpbiB3aW5kb3cgZnJhbWVsb29wLlxuICAgICAqL1xuICAgIGlmICghKHN1YmplY3QgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB7IG9uVXBkYXRlLCB0cmFuc2Zvcm1UZW1wbGF0ZSB9ID0gbW90aW9uVmFsdWUub3duZXIuZ2V0UHJvcHMoKTtcbiAgICByZXR1cm4gKHN1cHBvcnRzV2FhcGkoKSAmJlxuICAgICAgICBuYW1lICYmXG4gICAgICAgIGFjY2VsZXJhdGVkVmFsdWVzLmhhcyhuYW1lKSAmJlxuICAgICAgICAobmFtZSAhPT0gXCJ0cmFuc2Zvcm1cIiB8fCAhdHJhbnNmb3JtVGVtcGxhdGUpICYmXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB3ZSdyZSBvdXRwdXR0aW5nIHZhbHVlcyB0byBvblVwZGF0ZSB0aGVuIHdlIGNhbid0IHVzZSBXQUFQSSBhcyB0aGVyZSdzXG4gICAgICAgICAqIG5vIHdheSB0byByZWFkIHRoZSB2YWx1ZSBmcm9tIFdBQVBJIGV2ZXJ5IGZyYW1lLlxuICAgICAgICAgKi9cbiAgICAgICAgIW9uVXBkYXRlICYmXG4gICAgICAgICFyZXBlYXREZWxheSAmJlxuICAgICAgICByZXBlYXRUeXBlICE9PSBcIm1pcnJvclwiICYmXG4gICAgICAgIGRhbXBpbmcgIT09IDAgJiZcbiAgICAgICAgdHlwZSAhPT0gXCJpbmVydGlhXCIpO1xufVxuXG5leHBvcnQgeyBzdXBwb3J0c0Jyb3dzZXJBbmltYXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXdhYXBpLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ acceleratedValues: () => (/* binding */ acceleratedValues)\n/* harmony export */ });\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved\n // or until we implement support for linear() easing.\n // \"background-color\"\n]);\n\n\n//# sourceMappingURL=accelerated-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2FjY2VsZXJhdGVkLXZhbHVlcy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNkI7QUFDN0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy9hY2NlbGVyYXRlZC12YWx1ZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBsaXN0IG9mIHZhbHVlcyB0aGF0IGNhbiBiZSBoYXJkd2FyZS1hY2NlbGVyYXRlZC5cbiAqL1xuY29uc3QgYWNjZWxlcmF0ZWRWYWx1ZXMgPSBuZXcgU2V0KFtcbiAgICBcIm9wYWNpdHlcIixcbiAgICBcImNsaXBQYXRoXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcInRyYW5zZm9ybVwiLFxuICAgIC8vIFRPRE86IENhbiBiZSBhY2NlbGVyYXRlZCBidXQgY3VycmVudGx5IGRpc2FibGVkIHVudGlsIGh0dHBzOi8vaXNzdWVzLmNocm9taXVtLm9yZy9pc3N1ZXMvNDE0OTEwOTggaXMgcmVzb2x2ZWRcbiAgICAvLyBvciB1bnRpbCB3ZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgbGluZWFyKCkgZWFzaW5nLlxuICAgIC8vIFwiYmFja2dyb3VuZC1jb2xvclwiXG5dKTtcblxuZXhwb3J0IHsgYWNjZWxlcmF0ZWRWYWx1ZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFjY2VsZXJhdGVkLXZhbHVlcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyGeneratorOptions: () => (/* binding */ applyGeneratorOptions)\n/* harmony export */ });\n/* harmony import */ var _utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils/supports/linear-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\");\n/* harmony import */ var _generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../generators/utils/is-generator.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\");\n\n\n\nfunction applyGeneratorOptions({ type, ...options }) {\n if ((0,_generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_0__.isGenerator)(type) && (0,_utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_1__.supportsLinearEasing)()) {\n return type.applyToOptions(options);\n }\n else {\n options.duration ?? (options.duration = 300);\n options.ease ?? (options.ease = \"easeOut\");\n }\n return options;\n}\n\n\n//# sourceMappingURL=apply-generator.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2FwcGx5LWdlbmVyYXRvci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWlGO0FBQ1g7O0FBRXRFLGlDQUFpQyxrQkFBa0I7QUFDbkQsUUFBUSwrRUFBVyxVQUFVLHVGQUFvQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVpQztBQUNqQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2FwcGx5LWdlbmVyYXRvci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3VwcG9ydHNMaW5lYXJFYXNpbmcgfSBmcm9tICcuLi8uLi8uLi91dGlscy9zdXBwb3J0cy9saW5lYXItZWFzaW5nLm1qcyc7XG5pbXBvcnQgeyBpc0dlbmVyYXRvciB9IGZyb20gJy4uLy4uL2dlbmVyYXRvcnMvdXRpbHMvaXMtZ2VuZXJhdG9yLm1qcyc7XG5cbmZ1bmN0aW9uIGFwcGx5R2VuZXJhdG9yT3B0aW9ucyh7IHR5cGUsIC4uLm9wdGlvbnMgfSkge1xuICAgIGlmIChpc0dlbmVyYXRvcih0eXBlKSAmJiBzdXBwb3J0c0xpbmVhckVhc2luZygpKSB7XG4gICAgICAgIHJldHVybiB0eXBlLmFwcGx5VG9PcHRpb25zKG9wdGlvbnMpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgb3B0aW9ucy5kdXJhdGlvbiA/PyAob3B0aW9ucy5kdXJhdGlvbiA9IDMwMCk7XG4gICAgICAgIG9wdGlvbnMuZWFzZSA/PyAob3B0aW9ucy5lYXNlID0gXCJlYXNlT3V0XCIpO1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn1cblxuZXhwb3J0IHsgYXBwbHlHZW5lcmF0b3JPcHRpb25zIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHBseS1nZW5lcmF0b3IubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ generateLinearEasing: () => (/* binding */ generateLinearEasing)\n/* harmony export */ });\nconst generateLinearEasing = (easing, duration, // as milliseconds\nresolution = 10 // as milliseconds\n) => {\n let points = \"\";\n const numPoints = Math.max(Math.round(duration / resolution), 2);\n for (let i = 0; i < numPoints; i++) {\n points += Math.round(easing(i / (numPoints - 1)) * 10000) / 10000 + \", \";\n }\n return `linear(${points.substring(0, points.length - 2)})`;\n};\n\n\n//# sourceMappingURL=linear.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2xpbmVhci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQztBQUNBO0FBQ0EscUJBQXFCLHVDQUF1QztBQUM1RDs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy9saW5lYXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGdlbmVyYXRlTGluZWFyRWFzaW5nID0gKGVhc2luZywgZHVyYXRpb24sIC8vIGFzIG1pbGxpc2Vjb25kc1xucmVzb2x1dGlvbiA9IDEwIC8vIGFzIG1pbGxpc2Vjb25kc1xuKSA9PiB7XG4gICAgbGV0IHBvaW50cyA9IFwiXCI7XG4gICAgY29uc3QgbnVtUG9pbnRzID0gTWF0aC5tYXgoTWF0aC5yb3VuZChkdXJhdGlvbiAvIHJlc29sdXRpb24pLCAyKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVBvaW50czsgaSsrKSB7XG4gICAgICAgIHBvaW50cyArPSBNYXRoLnJvdW5kKGVhc2luZyhpIC8gKG51bVBvaW50cyAtIDEpKSAqIDEwMDAwKSAvIDEwMDAwICsgXCIsIFwiO1xuICAgIH1cbiAgICByZXR1cm4gYGxpbmVhcigke3BvaW50cy5zdWJzdHJpbmcoMCwgcG9pbnRzLmxlbmd0aCAtIDIpfSlgO1xufTtcblxuZXhwb3J0IHsgZ2VuZXJhdGVMaW5lYXJFYXNpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmVhci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ replaceStringEasing: () => (/* binding */ replaceStringEasing)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n\n\nconst unsupportedEasingFunctions = {\n anticipate: motion_utils__WEBPACK_IMPORTED_MODULE_0__.anticipate,\n backInOut: motion_utils__WEBPACK_IMPORTED_MODULE_1__.backInOut,\n circInOut: motion_utils__WEBPACK_IMPORTED_MODULE_2__.circInOut,\n};\nfunction isUnsupportedEase(key) {\n return key in unsupportedEasingFunctions;\n}\nfunction replaceStringEasing(transition) {\n if (typeof transition.ease === \"string\" &&\n isUnsupportedEase(transition.ease)) {\n transition.ease = unsupportedEasingFunctions[transition.ease];\n }\n}\n\n\n//# sourceMappingURL=unsupported-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL3Vuc3VwcG9ydGVkLWVhc2luZy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFnRTs7QUFFaEU7QUFDQSxjQUFjO0FBQ2QsYUFBYTtBQUNiLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFK0I7QUFDL0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy91bnN1cHBvcnRlZC1lYXNpbmcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFudGljaXBhdGUsIGJhY2tJbk91dCwgY2lyY0luT3V0IH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuY29uc3QgdW5zdXBwb3J0ZWRFYXNpbmdGdW5jdGlvbnMgPSB7XG4gICAgYW50aWNpcGF0ZSxcbiAgICBiYWNrSW5PdXQsXG4gICAgY2lyY0luT3V0LFxufTtcbmZ1bmN0aW9uIGlzVW5zdXBwb3J0ZWRFYXNlKGtleSkge1xuICAgIHJldHVybiBrZXkgaW4gdW5zdXBwb3J0ZWRFYXNpbmdGdW5jdGlvbnM7XG59XG5mdW5jdGlvbiByZXBsYWNlU3RyaW5nRWFzaW5nKHRyYW5zaXRpb24pIHtcbiAgICBpZiAodHlwZW9mIHRyYW5zaXRpb24uZWFzZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICBpc1Vuc3VwcG9ydGVkRWFzZSh0cmFuc2l0aW9uLmVhc2UpKSB7XG4gICAgICAgIHRyYW5zaXRpb24uZWFzZSA9IHVuc3VwcG9ydGVkRWFzaW5nRnVuY3Rpb25zW3RyYW5zaXRpb24uZWFzZV07XG4gICAgfVxufVxuXG5leHBvcnQgeyByZXBsYWNlU3RyaW5nRWFzaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11bnN1cHBvcnRlZC1lYXNpbmcubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/events/add-dom-event.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDomEvent: () => (/* binding */ addDomEvent)\n/* harmony export */ });\nfunction addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\n\n//# sourceMappingURL=add-dom-event.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZXZlbnRzL2FkZC1kb20tZXZlbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2REFBNkQsZUFBZTtBQUM1RTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9ldmVudHMvYWRkLWRvbS1ldmVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gYWRkRG9tRXZlbnQodGFyZ2V0LCBldmVudE5hbWUsIGhhbmRsZXIsIG9wdGlvbnMgPSB7IHBhc3NpdmU6IHRydWUgfSkge1xuICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlciwgb3B0aW9ucyk7XG4gICAgcmV0dXJuICgpID0+IHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlcik7XG59XG5cbmV4cG9ydCB7IGFkZERvbUV2ZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hZGQtZG9tLWV2ZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/batcher.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createRenderBatcher: () => (/* binding */ createRenderBatcher)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _order_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./order.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/order.mjs\");\n/* harmony import */ var _render_step_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./render-step.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs\");\n\n\n\n\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n const flagRunNextFrame = () => (runNextFrame = true);\n const steps = _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.reduce((acc, key) => {\n acc[key] = (0,_render_step_mjs__WEBPACK_IMPORTED_MODULE_1__.createRenderStep)(flagRunNextFrame, allowKeepAlive ? key : undefined);\n return acc;\n }, {});\n const { setup, read, resolveKeyframes, preUpdate, update, preRender, render, postRender, } = steps;\n const processBatch = () => {\n const timestamp = motion_utils__WEBPACK_IMPORTED_MODULE_2__.MotionGlobalConfig.useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n if (!motion_utils__WEBPACK_IMPORTED_MODULE_2__.MotionGlobalConfig.useManualTiming) {\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n }\n state.timestamp = timestamp;\n state.isProcessing = true;\n // Unrolled render loop for better per-frame performance\n setup.process(state);\n read.process(state);\n resolveKeyframes.process(state);\n preUpdate.process(state);\n update.process(state);\n preRender.process(state);\n render.process(state);\n postRender.process(state);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => {\n for (let i = 0; i < _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.length; i++) {\n steps[_order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder[i]].cancel(process);\n }\n };\n return { schedule, cancel, state, steps };\n}\n\n\n//# sourceMappingURL=batcher.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL2JhdGNoZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBa0Q7QUFDVDtBQUNZOztBQUVyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixrREFBVTtBQUM1QixtQkFBbUIsa0VBQWdCO0FBQ25DO0FBQ0EsS0FBSyxJQUFJO0FBQ1QsWUFBWSxtRkFBbUY7QUFDL0Y7QUFDQSwwQkFBMEIsNERBQWtCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBLGFBQWEsNERBQWtCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGtEQUFVO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxJQUFJO0FBQ1Q7QUFDQSx3QkFBd0IsSUFBSSxrREFBVSxTQUFTO0FBQy9DLGtCQUFrQixrREFBVTtBQUM1QjtBQUNBO0FBQ0EsYUFBYTtBQUNiOztBQUUrQjtBQUMvQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL2JhdGNoZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdGlvbkdsb2JhbENvbmZpZyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBzdGVwc09yZGVyIH0gZnJvbSAnLi9vcmRlci5tanMnO1xuaW1wb3J0IHsgY3JlYXRlUmVuZGVyU3RlcCB9IGZyb20gJy4vcmVuZGVyLXN0ZXAubWpzJztcblxuY29uc3QgbWF4RWxhcHNlZCA9IDQwO1xuZnVuY3Rpb24gY3JlYXRlUmVuZGVyQmF0Y2hlcihzY2hlZHVsZU5leHRCYXRjaCwgYWxsb3dLZWVwQWxpdmUpIHtcbiAgICBsZXQgcnVuTmV4dEZyYW1lID0gZmFsc2U7XG4gICAgbGV0IHVzZURlZmF1bHRFbGFwc2VkID0gdHJ1ZTtcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgZGVsdGE6IDAuMCxcbiAgICAgICAgdGltZXN0YW1wOiAwLjAsXG4gICAgICAgIGlzUHJvY2Vzc2luZzogZmFsc2UsXG4gICAgfTtcbiAgICBjb25zdCBmbGFnUnVuTmV4dEZyYW1lID0gKCkgPT4gKHJ1bk5leHRGcmFtZSA9IHRydWUpO1xuICAgIGNvbnN0IHN0ZXBzID0gc3RlcHNPcmRlci5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgIGFjY1trZXldID0gY3JlYXRlUmVuZGVyU3RlcChmbGFnUnVuTmV4dEZyYW1lLCBhbGxvd0tlZXBBbGl2ZSA/IGtleSA6IHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICAgIGNvbnN0IHsgc2V0dXAsIHJlYWQsIHJlc29sdmVLZXlmcmFtZXMsIHByZVVwZGF0ZSwgdXBkYXRlLCBwcmVSZW5kZXIsIHJlbmRlciwgcG9zdFJlbmRlciwgfSA9IHN0ZXBzO1xuICAgIGNvbnN0IHByb2Nlc3NCYXRjaCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gTW90aW9uR2xvYmFsQ29uZmlnLnVzZU1hbnVhbFRpbWluZ1xuICAgICAgICAgICAgPyBzdGF0ZS50aW1lc3RhbXBcbiAgICAgICAgICAgIDogcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgIHJ1bk5leHRGcmFtZSA9IGZhbHNlO1xuICAgICAgICBpZiAoIU1vdGlvbkdsb2JhbENvbmZpZy51c2VNYW51YWxUaW1pbmcpIHtcbiAgICAgICAgICAgIHN0YXRlLmRlbHRhID0gdXNlRGVmYXVsdEVsYXBzZWRcbiAgICAgICAgICAgICAgICA/IDEwMDAgLyA2MFxuICAgICAgICAgICAgICAgIDogTWF0aC5tYXgoTWF0aC5taW4odGltZXN0YW1wIC0gc3RhdGUudGltZXN0YW1wLCBtYXhFbGFwc2VkKSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUudGltZXN0YW1wID0gdGltZXN0YW1wO1xuICAgICAgICBzdGF0ZS5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xuICAgICAgICAvLyBVbnJvbGxlZCByZW5kZXIgbG9vcCBmb3IgYmV0dGVyIHBlci1mcmFtZSBwZXJmb3JtYW5jZVxuICAgICAgICBzZXR1cC5wcm9jZXNzKHN0YXRlKTtcbiAgICAgICAgcmVhZC5wcm9jZXNzKHN0YXRlKTtcbiAgICAgICAgcmVzb2x2ZUtleWZyYW1lcy5wcm9jZXNzKHN0YXRlKTtcbiAgICAgICAgcHJlVXBkYXRlLnByb2Nlc3Moc3RhdGUpO1xuICAgICAgICB1cGRhdGUucHJvY2VzcyhzdGF0ZSk7XG4gICAgICAgIHByZVJlbmRlci5wcm9jZXNzKHN0YXRlKTtcbiAgICAgICAgcmVuZGVyLnByb2Nlc3Moc3RhdGUpO1xuICAgICAgICBwb3N0UmVuZGVyLnByb2Nlc3Moc3RhdGUpO1xuICAgICAgICBzdGF0ZS5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKHJ1bk5leHRGcmFtZSAmJiBhbGxvd0tlZXBBbGl2ZSkge1xuICAgICAgICAgICAgdXNlRGVmYXVsdEVsYXBzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHNjaGVkdWxlTmV4dEJhdGNoKHByb2Nlc3NCYXRjaCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHdha2UgPSAoKSA9PiB7XG4gICAgICAgIHJ1bk5leHRGcmFtZSA9IHRydWU7XG4gICAgICAgIHVzZURlZmF1bHRFbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCFzdGF0ZS5pc1Byb2Nlc3NpbmcpIHtcbiAgICAgICAgICAgIHNjaGVkdWxlTmV4dEJhdGNoKHByb2Nlc3NCYXRjaCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHNjaGVkdWxlID0gc3RlcHNPcmRlci5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0ZXAgPSBzdGVwc1trZXldO1xuICAgICAgICBhY2Nba2V5XSA9IChwcm9jZXNzLCBrZWVwQWxpdmUgPSBmYWxzZSwgaW1tZWRpYXRlID0gZmFsc2UpID0+IHtcbiAgICAgICAgICAgIGlmICghcnVuTmV4dEZyYW1lKVxuICAgICAgICAgICAgICAgIHdha2UoKTtcbiAgICAgICAgICAgIHJldHVybiBzdGVwLnNjaGVkdWxlKHByb2Nlc3MsIGtlZXBBbGl2ZSwgaW1tZWRpYXRlKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gICAgY29uc3QgY2FuY2VsID0gKHByb2Nlc3MpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGVwc09yZGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBzdGVwc1tzdGVwc09yZGVyW2ldXS5jYW5jZWwocHJvY2Vzcyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiB7IHNjaGVkdWxlLCBjYW5jZWwsIHN0YXRlLCBzdGVwcyB9O1xufVxuXG5leHBvcnQgeyBjcmVhdGVSZW5kZXJCYXRjaGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYXRjaGVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/frame.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cancelFrame: () => (/* binding */ cancelFrame),\n/* harmony export */ frame: () => (/* binding */ frame),\n/* harmony export */ frameData: () => (/* binding */ frameData),\n/* harmony export */ frameSteps: () => (/* binding */ frameSteps)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _batcher_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./batcher.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\");\n\n\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps, } = /* @__PURE__ */ (0,_batcher_mjs__WEBPACK_IMPORTED_MODULE_0__.createRenderBatcher)(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop, true);\n\n\n//# sourceMappingURL=frame.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL2ZyYW1lLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBb0M7QUFDZ0I7O0FBRXBELFFBQVEsNkVBQTZFLGtCQUFrQixpRUFBbUIsd0VBQXdFLDhDQUFJOztBQUVqSjtBQUNyRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL2ZyYW1lLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGNyZWF0ZVJlbmRlckJhdGNoZXIgfSBmcm9tICcuL2JhdGNoZXIubWpzJztcblxuY29uc3QgeyBzY2hlZHVsZTogZnJhbWUsIGNhbmNlbDogY2FuY2VsRnJhbWUsIHN0YXRlOiBmcmFtZURhdGEsIHN0ZXBzOiBmcmFtZVN0ZXBzLCB9ID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZVJlbmRlckJhdGNoZXIodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gXCJ1bmRlZmluZWRcIiA/IHJlcXVlc3RBbmltYXRpb25GcmFtZSA6IG5vb3AsIHRydWUpO1xuXG5leHBvcnQgeyBjYW5jZWxGcmFtZSwgZnJhbWUsIGZyYW1lRGF0YSwgZnJhbWVTdGVwcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZnJhbWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/microtask.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cancelMicrotask: () => (/* binding */ cancelMicrotask),\n/* harmony export */ microtask: () => (/* binding */ microtask)\n/* harmony export */ });\n/* harmony import */ var _batcher_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./batcher.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\");\n\n\nconst { schedule: microtask, cancel: cancelMicrotask } = \n/* @__PURE__ */ (0,_batcher_mjs__WEBPACK_IMPORTED_MODULE_0__.createRenderBatcher)(queueMicrotask, false);\n\n\n//# sourceMappingURL=microtask.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL21pY3JvdGFzay5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9EOztBQUVwRCxRQUFRLCtDQUErQztBQUN2RCxnQkFBZ0IsaUVBQW1COztBQUVHO0FBQ3RDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9mcmFtZWxvb3AvbWljcm90YXNrLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZW5kZXJCYXRjaGVyIH0gZnJvbSAnLi9iYXRjaGVyLm1qcyc7XG5cbmNvbnN0IHsgc2NoZWR1bGU6IG1pY3JvdGFzaywgY2FuY2VsOiBjYW5jZWxNaWNyb3Rhc2sgfSA9IFxuLyogQF9fUFVSRV9fICovIGNyZWF0ZVJlbmRlckJhdGNoZXIocXVldWVNaWNyb3Rhc2ssIGZhbHNlKTtcblxuZXhwb3J0IHsgY2FuY2VsTWljcm90YXNrLCBtaWNyb3Rhc2sgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1pY3JvdGFzay5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/order.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/order.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ stepsOrder: () => (/* binding */ stepsOrder)\n/* harmony export */ });\nconst stepsOrder = [\n \"setup\", // Compute\n \"read\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"preUpdate\", // Compute\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\n \"postRender\", // Compute\n];\n\n\n//# sourceMappingURL=order.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL29yZGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNCO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9mcmFtZWxvb3Avb3JkZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHN0ZXBzT3JkZXIgPSBbXG4gICAgXCJzZXR1cFwiLCAvLyBDb21wdXRlXG4gICAgXCJyZWFkXCIsIC8vIFJlYWRcbiAgICBcInJlc29sdmVLZXlmcmFtZXNcIiwgLy8gV3JpdGUvUmVhZC9Xcml0ZS9SZWFkXG4gICAgXCJwcmVVcGRhdGVcIiwgLy8gQ29tcHV0ZVxuICAgIFwidXBkYXRlXCIsIC8vIENvbXB1dGVcbiAgICBcInByZVJlbmRlclwiLCAvLyBDb21wdXRlXG4gICAgXCJyZW5kZXJcIiwgLy8gV3JpdGVcbiAgICBcInBvc3RSZW5kZXJcIiwgLy8gQ29tcHV0ZVxuXTtcblxuZXhwb3J0IHsgc3RlcHNPcmRlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9b3JkZXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/order.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/render-step.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createRenderStep: () => (/* binding */ createRenderStep)\n/* harmony export */ });\n/* harmony import */ var _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../stats/buffer.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n\n\nfunction createRenderStep(runNextFrame, stepName) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Set();\n let nextFrame = new Set();\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n let latestFrameData = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n let numCalls = 0;\n function triggerCallback(callback) {\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n numCalls++;\n callback(latestFrameData);\n }\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (!queue.has(callback))\n queue.add(callback);\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.delete(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n latestFrameData = frameData;\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Execute this frame\n thisFrame.forEach(triggerCallback);\n /**\n * If we're recording stats then\n */\n if (stepName && _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__.statsBuffer.value) {\n _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__.statsBuffer.value.frameloop[stepName].push(numCalls);\n }\n numCalls = 0;\n // Clear the frame so no callbacks remain. This is to avoid\n // memory leaks should this render step not run for a while.\n thisFrame.clear();\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\n\n//# sourceMappingURL=render-step.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3JlbmRlci1zdGVwLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFrRDs7QUFFbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwwREFBVztBQUN2QyxnQkFBZ0IsMERBQVc7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3JlbmRlci1zdGVwLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGF0c0J1ZmZlciB9IGZyb20gJy4uL3N0YXRzL2J1ZmZlci5tanMnO1xuXG5mdW5jdGlvbiBjcmVhdGVSZW5kZXJTdGVwKHJ1bk5leHRGcmFtZSwgc3RlcE5hbWUpIHtcbiAgICAvKipcbiAgICAgKiBXZSBjcmVhdGUgYW5kIHJldXNlIHR3byBxdWV1ZXMsIG9uZSB0byBxdWV1ZSBqb2JzIGZvciB0aGUgY3VycmVudCBmcmFtZVxuICAgICAqIGFuZCBvbmUgZm9yIHRoZSBuZXh0LiBXZSByZXVzZSB0byBhdm9pZCB0cmlnZ2VyaW5nIEdDIGFmdGVyIHggZnJhbWVzLlxuICAgICAqL1xuICAgIGxldCB0aGlzRnJhbWUgPSBuZXcgU2V0KCk7XG4gICAgbGV0IG5leHRGcmFtZSA9IG5ldyBTZXQoKTtcbiAgICAvKipcbiAgICAgKiBUcmFjayB3aGV0aGVyIHdlJ3JlIGN1cnJlbnRseSBwcm9jZXNzaW5nIGpvYnMgaW4gdGhpcyBzdGVwLiBUaGlzIHdheVxuICAgICAqIHdlIGNhbiBkZWNpZGUgd2hldGhlciB0byBzY2hlZHVsZSBuZXcgam9icyBmb3IgdGhpcyBmcmFtZSBvciBuZXh0LlxuICAgICAqL1xuICAgIGxldCBpc1Byb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICBsZXQgZmx1c2hOZXh0RnJhbWUgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBIHNldCBvZiBwcm9jZXNzZXMgd2hpY2ggd2VyZSBtYXJrZWQga2VlcEFsaXZlIHdoZW4gc2NoZWR1bGVkLlxuICAgICAqL1xuICAgIGNvbnN0IHRvS2VlcEFsaXZlID0gbmV3IFdlYWtTZXQoKTtcbiAgICBsZXQgbGF0ZXN0RnJhbWVEYXRhID0ge1xuICAgICAgICBkZWx0YTogMC4wLFxuICAgICAgICB0aW1lc3RhbXA6IDAuMCxcbiAgICAgICAgaXNQcm9jZXNzaW5nOiBmYWxzZSxcbiAgICB9O1xuICAgIGxldCBudW1DYWxscyA9IDA7XG4gICAgZnVuY3Rpb24gdHJpZ2dlckNhbGxiYWNrKGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICh0b0tlZXBBbGl2ZS5oYXMoY2FsbGJhY2spKSB7XG4gICAgICAgICAgICBzdGVwLnNjaGVkdWxlKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIHJ1bk5leHRGcmFtZSgpO1xuICAgICAgICB9XG4gICAgICAgIG51bUNhbGxzKys7XG4gICAgICAgIGNhbGxiYWNrKGxhdGVzdEZyYW1lRGF0YSk7XG4gICAgfVxuICAgIGNvbnN0IHN0ZXAgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTY2hlZHVsZSBhIHByb2Nlc3MgdG8gcnVuIG9uIHRoZSBuZXh0IGZyYW1lLlxuICAgICAgICAgKi9cbiAgICAgICAgc2NoZWR1bGU6IChjYWxsYmFjaywga2VlcEFsaXZlID0gZmFsc2UsIGltbWVkaWF0ZSA9IGZhbHNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhZGRUb0N1cnJlbnRGcmFtZSA9IGltbWVkaWF0ZSAmJiBpc1Byb2Nlc3Npbmc7XG4gICAgICAgICAgICBjb25zdCBxdWV1ZSA9IGFkZFRvQ3VycmVudEZyYW1lID8gdGhpc0ZyYW1lIDogbmV4dEZyYW1lO1xuICAgICAgICAgICAgaWYgKGtlZXBBbGl2ZSlcbiAgICAgICAgICAgICAgICB0b0tlZXBBbGl2ZS5hZGQoY2FsbGJhY2spO1xuICAgICAgICAgICAgaWYgKCFxdWV1ZS5oYXMoY2FsbGJhY2spKVxuICAgICAgICAgICAgICAgIHF1ZXVlLmFkZChjYWxsYmFjayk7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2s7XG4gICAgICAgIH0sXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDYW5jZWwgdGhlIHByb3ZpZGVkIGNhbGxiYWNrIGZyb20gcnVubmluZyBvbiB0aGUgbmV4dCBmcmFtZS5cbiAgICAgICAgICovXG4gICAgICAgIGNhbmNlbDogKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICBuZXh0RnJhbWUuZGVsZXRlKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIHRvS2VlcEFsaXZlLmRlbGV0ZShjYWxsYmFjayk7XG4gICAgICAgIH0sXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBFeGVjdXRlIGFsbCBzY2hlZHVsZSBjYWxsYmFja3MuXG4gICAgICAgICAqL1xuICAgICAgICBwcm9jZXNzOiAoZnJhbWVEYXRhKSA9PiB7XG4gICAgICAgICAgICBsYXRlc3RGcmFtZURhdGEgPSBmcmFtZURhdGE7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlJ3JlIGFscmVhZHkgcHJvY2Vzc2luZyB3ZSd2ZSBwcm9iYWJseSBiZWVuIHRyaWdnZXJlZCBieSBhIGZsdXNoU3luY1xuICAgICAgICAgICAgICogaW5zaWRlIGFuIGV4aXN0aW5nIHByb2Nlc3MuIEluc3RlYWQgb2YgZXhlY3V0aW5nLCBtYXJrIGZsdXNoTmV4dEZyYW1lXG4gICAgICAgICAgICAgKiBhcyB0cnVlIGFuZCBlbnN1cmUgd2UgZmx1c2ggdGhlIGZvbGxvd2luZyBmcmFtZSBhdCB0aGUgZW5kIG9mIHRoaXMgb25lLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoaXNQcm9jZXNzaW5nKSB7XG4gICAgICAgICAgICAgICAgZmx1c2hOZXh0RnJhbWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA9IHRydWU7XG4gICAgICAgICAgICBbdGhpc0ZyYW1lLCBuZXh0RnJhbWVdID0gW25leHRGcmFtZSwgdGhpc0ZyYW1lXTtcbiAgICAgICAgICAgIC8vIEV4ZWN1dGUgdGhpcyBmcmFtZVxuICAgICAgICAgICAgdGhpc0ZyYW1lLmZvckVhY2godHJpZ2dlckNhbGxiYWNrKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UncmUgcmVjb3JkaW5nIHN0YXRzIHRoZW5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHN0ZXBOYW1lICYmIHN0YXRzQnVmZmVyLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgc3RhdHNCdWZmZXIudmFsdWUuZnJhbWVsb29wW3N0ZXBOYW1lXS5wdXNoKG51bUNhbGxzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG51bUNhbGxzID0gMDtcbiAgICAgICAgICAgIC8vIENsZWFyIHRoZSBmcmFtZSBzbyBubyBjYWxsYmFja3MgcmVtYWluLiBUaGlzIGlzIHRvIGF2b2lkXG4gICAgICAgICAgICAvLyBtZW1vcnkgbGVha3Mgc2hvdWxkIHRoaXMgcmVuZGVyIHN0ZXAgbm90IHJ1biBmb3IgYSB3aGlsZS5cbiAgICAgICAgICAgIHRoaXNGcmFtZS5jbGVhcigpO1xuICAgICAgICAgICAgaXNQcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoZmx1c2hOZXh0RnJhbWUpIHtcbiAgICAgICAgICAgICAgICBmbHVzaE5leHRGcmFtZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHN0ZXAucHJvY2VzcyhmcmFtZURhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIHN0ZXA7XG59XG5cbmV4cG9ydCB7IGNyZWF0ZVJlbmRlclN0ZXAgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbmRlci1zdGVwLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ time: () => (/* binding */ time)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _frame_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.isProcessing || motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.useManualTiming\n ? _frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\n\n//# sourceMappingURL=sync-time.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3N5bmMtdGltZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtEO0FBQ1Y7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixpREFBUyxpQkFBaUIsNERBQWtCO0FBQ2pFLGtCQUFrQixpREFBUztBQUMzQjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVnQjtBQUNoQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3N5bmMtdGltZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW90aW9uR2xvYmFsQ29uZmlnIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGZyYW1lRGF0YSB9IGZyb20gJy4vZnJhbWUubWpzJztcblxubGV0IG5vdztcbmZ1bmN0aW9uIGNsZWFyVGltZSgpIHtcbiAgICBub3cgPSB1bmRlZmluZWQ7XG59XG4vKipcbiAqIEFuIGV2ZW50bG9vcC1zeW5jaHJvbm91cyBhbHRlcm5hdGl2ZSB0byBwZXJmb3JtYW5jZS5ub3coKS5cbiAqXG4gKiBFbnN1cmVzIHRoYXQgdGltZSBtZWFzdXJlbWVudHMgcmVtYWluIGNvbnNpc3RlbnQgd2l0aGluIGEgc3luY2hyb25vdXMgY29udGV4dC5cbiAqIFVzdWFsbHkgY2FsbGluZyBwZXJmb3JtYW5jZS5ub3coKSB0d2ljZSB3aXRoaW4gdGhlIHNhbWUgc3luY2hyb25vdXMgY29udGV4dFxuICogd2lsbCByZXR1cm4gZGlmZmVyZW50IHZhbHVlcyB3aGljaCBpc24ndCB1c2VmdWwgZm9yIGFuaW1hdGlvbnMgd2hlbiB3ZSdyZSB1c3VhbGx5XG4gKiB0cnlpbmcgdG8gc3luYyBhbmltYXRpb25zIHRvIHRoZSBzYW1lIGZyYW1lLlxuICovXG5jb25zdCB0aW1lID0ge1xuICAgIG5vdzogKCkgPT4ge1xuICAgICAgICBpZiAobm93ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRpbWUuc2V0KGZyYW1lRGF0YS5pc1Byb2Nlc3NpbmcgfHwgTW90aW9uR2xvYmFsQ29uZmlnLnVzZU1hbnVhbFRpbWluZ1xuICAgICAgICAgICAgICAgID8gZnJhbWVEYXRhLnRpbWVzdGFtcFxuICAgICAgICAgICAgICAgIDogcGVyZm9ybWFuY2Uubm93KCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub3c7XG4gICAgfSxcbiAgICBzZXQ6IChuZXdUaW1lKSA9PiB7XG4gICAgICAgIG5vdyA9IG5ld1RpbWU7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKGNsZWFyVGltZSk7XG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IHRpbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN5bmMtdGltZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isDragActive: () => (/* binding */ isDragActive),\n/* harmony export */ isDragging: () => (/* binding */ isDragging)\n/* harmony export */ });\nconst isDragging = {\n x: false,\n y: false,\n};\nfunction isDragActive() {\n return isDragging.x || isDragging.y;\n}\n\n\n//# sourceMappingURL=is-active.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9zdGF0ZS9pcy1hY3RpdmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRW9DO0FBQ3BDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy9kcmFnL3N0YXRlL2lzLWFjdGl2ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNEcmFnZ2luZyA9IHtcbiAgICB4OiBmYWxzZSxcbiAgICB5OiBmYWxzZSxcbn07XG5mdW5jdGlvbiBpc0RyYWdBY3RpdmUoKSB7XG4gICAgcmV0dXJuIGlzRHJhZ2dpbmcueCB8fCBpc0RyYWdnaW5nLnk7XG59XG5cbmV4cG9ydCB7IGlzRHJhZ0FjdGl2ZSwgaXNEcmFnZ2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtYWN0aXZlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setDragLock: () => (/* binding */ setDragLock)\n/* harmony export */ });\n/* harmony import */ var _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-active.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n\n\nfunction setDragLock(axis) {\n if (axis === \"x\" || axis === \"y\") {\n if (_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis]) {\n return null;\n }\n else {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis] = true;\n return () => {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis] = false;\n };\n }\n }\n else {\n if (_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x || _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y) {\n return null;\n }\n else {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x = _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y = true;\n return () => {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x = _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y = false;\n };\n }\n }\n}\n\n\n//# sourceMappingURL=set-active.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9zdGF0ZS9zZXQtYWN0aXZlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2Qzs7QUFFN0M7QUFDQTtBQUNBLFlBQVksc0RBQVU7QUFDdEI7QUFDQTtBQUNBO0FBQ0EsWUFBWSxzREFBVTtBQUN0QjtBQUNBLGdCQUFnQixzREFBVTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksc0RBQVUsTUFBTSxzREFBVTtBQUN0QztBQUNBO0FBQ0E7QUFDQSxZQUFZLHNEQUFVLEtBQUssc0RBQVU7QUFDckM7QUFDQSxnQkFBZ0Isc0RBQVUsS0FBSyxzREFBVTtBQUN6QztBQUNBO0FBQ0E7QUFDQTs7QUFFdUI7QUFDdkIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvc3RhdGUvc2V0LWFjdGl2ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEcmFnZ2luZyB9IGZyb20gJy4vaXMtYWN0aXZlLm1qcyc7XG5cbmZ1bmN0aW9uIHNldERyYWdMb2NrKGF4aXMpIHtcbiAgICBpZiAoYXhpcyA9PT0gXCJ4XCIgfHwgYXhpcyA9PT0gXCJ5XCIpIHtcbiAgICAgICAgaWYgKGlzRHJhZ2dpbmdbYXhpc10pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaXNEcmFnZ2luZ1theGlzXSA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlzRHJhZ2dpbmdbYXhpc10gPSBmYWxzZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmIChpc0RyYWdnaW5nLnggfHwgaXNEcmFnZ2luZy55KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlzRHJhZ2dpbmcueCA9IGlzRHJhZ2dpbmcueSA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlzRHJhZ2dpbmcueCA9IGlzRHJhZ2dpbmcueSA9IGZhbHNlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgc2V0RHJhZ0xvY2sgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNldC1hY3RpdmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/hover.mjs": +/*!************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/hover.mjs ***! + \************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hover: () => (/* binding */ hover)\n/* harmony export */ });\n/* harmony import */ var _drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./drag/state/is-active.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n/* harmony import */ var _utils_setup_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/setup.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\");\n\n\n\nfunction isValidHover(event) {\n return !(event.pointerType === \"touch\" || (0,_drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragActive)());\n}\n/**\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\n * with drag gestures, and automatically removes the \"pointerennd\" event listener when the hover ends.\n *\n * @public\n */\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\n const [elements, eventOptions, cancel] = (0,_utils_setup_mjs__WEBPACK_IMPORTED_MODULE_1__.setupGesture)(elementOrSelector, options);\n elements.forEach((element) => {\n let isPressed = false;\n let deferredHoverEnd = false;\n let hoverEndCallback;\n const removePointerLeave = () => {\n element.removeEventListener(\"pointerleave\", onPointerLeave);\n };\n const endHover = (event) => {\n if (hoverEndCallback) {\n hoverEndCallback(event);\n hoverEndCallback = undefined;\n }\n removePointerLeave();\n };\n const onPointerUp = (event) => {\n isPressed = false;\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerUp);\n if (deferredHoverEnd) {\n deferredHoverEnd = false;\n endHover(event);\n }\n };\n const onPointerDown = () => {\n isPressed = true;\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerUp, eventOptions);\n };\n const onPointerLeave = (leaveEvent) => {\n if (leaveEvent.pointerType === \"touch\")\n return;\n if (isPressed) {\n deferredHoverEnd = true;\n return;\n }\n endHover(leaveEvent);\n };\n const onPointerEnter = (enterEvent) => {\n if (!isValidHover(enterEvent))\n return;\n deferredHoverEnd = false;\n const onHoverEnd = onHoverStart(element, enterEvent);\n if (typeof onHoverEnd !== \"function\")\n return;\n hoverEndCallback = onHoverEnd;\n element.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\n };\n element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\n element.addEventListener(\"pointerdown\", onPointerDown, eventOptions);\n });\n return cancel;\n}\n\n\n//# sourceMappingURL=hover.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvaG92ZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEwRDtBQUNUOztBQUVqRDtBQUNBLDhDQUE4Qyx1RUFBWTtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNERBQTREO0FBQzVELDZDQUE2Qyw4REFBWTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVpQjtBQUNqQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvaG92ZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRHJhZ0FjdGl2ZSB9IGZyb20gJy4vZHJhZy9zdGF0ZS9pcy1hY3RpdmUubWpzJztcbmltcG9ydCB7IHNldHVwR2VzdHVyZSB9IGZyb20gJy4vdXRpbHMvc2V0dXAubWpzJztcblxuZnVuY3Rpb24gaXNWYWxpZEhvdmVyKGV2ZW50KSB7XG4gICAgcmV0dXJuICEoZXZlbnQucG9pbnRlclR5cGUgPT09IFwidG91Y2hcIiB8fCBpc0RyYWdBY3RpdmUoKSk7XG59XG4vKipcbiAqIENyZWF0ZSBhIGhvdmVyIGdlc3R1cmUuIGhvdmVyKCkgaXMgZGlmZmVyZW50IHRvIC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmVudGVyXCIpXG4gKiBpbiB0aGF0IGl0IGhhcyBhbiBlYXNpZXIgc3ludGF4LCBmaWx0ZXJzIG91dCBwb2x5ZmlsbGVkIHRvdWNoIGV2ZW50cywgaW50ZXJvcGVyYXRlc1xuICogd2l0aCBkcmFnIGdlc3R1cmVzLCBhbmQgYXV0b21hdGljYWxseSByZW1vdmVzIHRoZSBcInBvaW50ZXJlbm5kXCIgZXZlbnQgbGlzdGVuZXIgd2hlbiB0aGUgaG92ZXIgZW5kcy5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmZ1bmN0aW9uIGhvdmVyKGVsZW1lbnRPclNlbGVjdG9yLCBvbkhvdmVyU3RhcnQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IFtlbGVtZW50cywgZXZlbnRPcHRpb25zLCBjYW5jZWxdID0gc2V0dXBHZXN0dXJlKGVsZW1lbnRPclNlbGVjdG9yLCBvcHRpb25zKTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGxldCBpc1ByZXNzZWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGRlZmVycmVkSG92ZXJFbmQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGhvdmVyRW5kQ2FsbGJhY2s7XG4gICAgICAgIGNvbnN0IHJlbW92ZVBvaW50ZXJMZWF2ZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJsZWF2ZVwiLCBvblBvaW50ZXJMZWF2ZSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGVuZEhvdmVyID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoaG92ZXJFbmRDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGhvdmVyRW5kQ2FsbGJhY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIGhvdmVyRW5kQ2FsbGJhY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZW1vdmVQb2ludGVyTGVhdmUoKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Qb2ludGVyVXAgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlzUHJlc3NlZCA9IGZhbHNlO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgb25Qb2ludGVyVXApO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVyY2FuY2VsXCIsIG9uUG9pbnRlclVwKTtcbiAgICAgICAgICAgIGlmIChkZWZlcnJlZEhvdmVyRW5kKSB7XG4gICAgICAgICAgICAgICAgZGVmZXJyZWRIb3ZlckVuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGVuZEhvdmVyKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Qb2ludGVyRG93biA9ICgpID0+IHtcbiAgICAgICAgICAgIGlzUHJlc3NlZCA9IHRydWU7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLCBvblBvaW50ZXJVcCwgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmNhbmNlbFwiLCBvblBvaW50ZXJVcCwgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Qb2ludGVyTGVhdmUgPSAobGVhdmVFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGxlYXZlRXZlbnQucG9pbnRlclR5cGUgPT09IFwidG91Y2hcIilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBpZiAoaXNQcmVzc2VkKSB7XG4gICAgICAgICAgICAgICAgZGVmZXJyZWRIb3ZlckVuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW5kSG92ZXIobGVhdmVFdmVudCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uUG9pbnRlckVudGVyID0gKGVudGVyRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNWYWxpZEhvdmVyKGVudGVyRXZlbnQpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGRlZmVycmVkSG92ZXJFbmQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG9uSG92ZXJFbmQgPSBvbkhvdmVyU3RhcnQoZWxlbWVudCwgZW50ZXJFdmVudCk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9uSG92ZXJFbmQgIT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBob3ZlckVuZENhbGxiYWNrID0gb25Ib3ZlckVuZDtcbiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJsZWF2ZVwiLCBvblBvaW50ZXJMZWF2ZSwgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgfTtcbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmVudGVyXCIsIG9uUG9pbnRlckVudGVyLCBldmVudE9wdGlvbnMpO1xuICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLCBvblBvaW50ZXJEb3duLCBldmVudE9wdGlvbnMpO1xuICAgIH0pO1xuICAgIHJldHVybiBjYW5jZWw7XG59XG5cbmV4cG9ydCB7IGhvdmVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob3Zlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/hover.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/index.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ press: () => (/* binding */ press)\n/* harmony export */ });\n/* harmony import */ var _utils_is_html_element_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/is-html-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\");\n/* harmony import */ var _drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../drag/state/is-active.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n/* harmony import */ var _utils_is_node_or_child_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/is-node-or-child.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs\");\n/* harmony import */ var _utils_is_primary_pointer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/is-primary-pointer.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n/* harmony import */ var _utils_setup_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/setup.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\");\n/* harmony import */ var _utils_is_keyboard_accessible_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/is-keyboard-accessible.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs\");\n/* harmony import */ var _utils_keyboard_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/keyboard.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs\");\n/* harmony import */ var _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\");\n\n\n\n\n\n\n\n\n\n/**\n * Filter out events that are not primary pointer events, or are triggering\n * while a Motion gesture is active.\n */\nfunction isValidPressEvent(event) {\n return (0,_utils_is_primary_pointer_mjs__WEBPACK_IMPORTED_MODULE_0__.isPrimaryPointer)(event) && !(0,_drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_1__.isDragActive)();\n}\nconst claimedPointerDownEvents = new WeakSet();\n/**\n * Create a press gesture.\n *\n * Press is different to `\"pointerdown\"`, `\"pointerup\"` in that it\n * automatically filters out secondary pointer events like right\n * click and multitouch.\n *\n * It also adds accessibility support for keyboards, where\n * an element with a press gesture will receive focus and\n * trigger on Enter `\"keydown\"` and `\"keyup\"` events.\n *\n * This is different to a browser's `\"click\"` event, which does\n * respond to keyboards but only for the `\"click\"` itself, rather\n * than the press start and end/cancel. The element also needs\n * to be focusable for this to work, whereas a press gesture will\n * make an element focusable by default.\n *\n * @public\n */\nfunction press(targetOrSelector, onPressStart, options = {}) {\n const [targets, eventOptions, cancelEvents] = (0,_utils_setup_mjs__WEBPACK_IMPORTED_MODULE_2__.setupGesture)(targetOrSelector, options);\n const startPress = (startEvent) => {\n const target = startEvent.currentTarget;\n if (!isValidPressEvent(startEvent))\n return;\n if (claimedPointerDownEvents.has(startEvent))\n return;\n _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.add(target);\n if (options.stopPropagation) {\n claimedPointerDownEvents.add(startEvent);\n }\n const onPressEnd = onPressStart(target, startEvent);\n const onPointerEnd = (endEvent, success) => {\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerCancel);\n if (_utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.has(target)) {\n _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.delete(target);\n }\n if (!isValidPressEvent(endEvent)) {\n return;\n }\n if (typeof onPressEnd === \"function\") {\n onPressEnd(endEvent, { success });\n }\n };\n const onPointerUp = (upEvent) => {\n onPointerEnd(upEvent, target === window ||\n target === document ||\n options.useGlobalTarget ||\n (0,_utils_is_node_or_child_mjs__WEBPACK_IMPORTED_MODULE_4__.isNodeOrChild)(target, upEvent.target));\n };\n const onPointerCancel = (cancelEvent) => {\n onPointerEnd(cancelEvent, false);\n };\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerCancel, eventOptions);\n };\n targets.forEach((target) => {\n const pointerDownTarget = options.useGlobalTarget ? window : target;\n pointerDownTarget.addEventListener(\"pointerdown\", startPress, eventOptions);\n if ((0,_utils_is_html_element_mjs__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement)(target)) {\n target.addEventListener(\"focus\", (event) => (0,_utils_keyboard_mjs__WEBPACK_IMPORTED_MODULE_6__.enableKeyboardPress)(event, eventOptions));\n if (!(0,_utils_is_keyboard_accessible_mjs__WEBPACK_IMPORTED_MODULE_7__.isElementKeyboardAccessible)(target) &&\n !target.hasAttribute(\"tabindex\")) {\n target.tabIndex = 0;\n }\n }\n });\n return cancelEvents;\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFnRTtBQUNMO0FBQ0c7QUFDSztBQUNqQjtBQUMrQjtBQUN0QjtBQUNaOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVywrRUFBZ0IsWUFBWSx1RUFBWTtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQ7QUFDM0Qsa0RBQWtELDhEQUFZO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0RBQVU7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isd0RBQVU7QUFDMUIsZ0JBQWdCLHdEQUFVO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsU0FBUztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMEVBQWE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHlFQUFhO0FBQ3pCLHdEQUF3RCx3RUFBbUI7QUFDM0UsaUJBQWlCLDhGQUEyQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVpQjtBQUNqQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscy9pcy1odG1sLWVsZW1lbnQubWpzJztcbmltcG9ydCB7IGlzRHJhZ0FjdGl2ZSB9IGZyb20gJy4uL2RyYWcvc3RhdGUvaXMtYWN0aXZlLm1qcyc7XG5pbXBvcnQgeyBpc05vZGVPckNoaWxkIH0gZnJvbSAnLi4vdXRpbHMvaXMtbm9kZS1vci1jaGlsZC5tanMnO1xuaW1wb3J0IHsgaXNQcmltYXJ5UG9pbnRlciB9IGZyb20gJy4uL3V0aWxzL2lzLXByaW1hcnktcG9pbnRlci5tanMnO1xuaW1wb3J0IHsgc2V0dXBHZXN0dXJlIH0gZnJvbSAnLi4vdXRpbHMvc2V0dXAubWpzJztcbmltcG9ydCB7IGlzRWxlbWVudEtleWJvYXJkQWNjZXNzaWJsZSB9IGZyb20gJy4vdXRpbHMvaXMta2V5Ym9hcmQtYWNjZXNzaWJsZS5tanMnO1xuaW1wb3J0IHsgZW5hYmxlS2V5Ym9hcmRQcmVzcyB9IGZyb20gJy4vdXRpbHMva2V5Ym9hcmQubWpzJztcbmltcG9ydCB7IGlzUHJlc3NpbmcgfSBmcm9tICcuL3V0aWxzL3N0YXRlLm1qcyc7XG5cbi8qKlxuICogRmlsdGVyIG91dCBldmVudHMgdGhhdCBhcmUgbm90IHByaW1hcnkgcG9pbnRlciBldmVudHMsIG9yIGFyZSB0cmlnZ2VyaW5nXG4gKiB3aGlsZSBhIE1vdGlvbiBnZXN0dXJlIGlzIGFjdGl2ZS5cbiAqL1xuZnVuY3Rpb24gaXNWYWxpZFByZXNzRXZlbnQoZXZlbnQpIHtcbiAgICByZXR1cm4gaXNQcmltYXJ5UG9pbnRlcihldmVudCkgJiYgIWlzRHJhZ0FjdGl2ZSgpO1xufVxuY29uc3QgY2xhaW1lZFBvaW50ZXJEb3duRXZlbnRzID0gbmV3IFdlYWtTZXQoKTtcbi8qKlxuICogQ3JlYXRlIGEgcHJlc3MgZ2VzdHVyZS5cbiAqXG4gKiBQcmVzcyBpcyBkaWZmZXJlbnQgdG8gYFwicG9pbnRlcmRvd25cImAsIGBcInBvaW50ZXJ1cFwiYCBpbiB0aGF0IGl0XG4gKiBhdXRvbWF0aWNhbGx5IGZpbHRlcnMgb3V0IHNlY29uZGFyeSBwb2ludGVyIGV2ZW50cyBsaWtlIHJpZ2h0XG4gKiBjbGljayBhbmQgbXVsdGl0b3VjaC5cbiAqXG4gKiBJdCBhbHNvIGFkZHMgYWNjZXNzaWJpbGl0eSBzdXBwb3J0IGZvciBrZXlib2FyZHMsIHdoZXJlXG4gKiBhbiBlbGVtZW50IHdpdGggYSBwcmVzcyBnZXN0dXJlIHdpbGwgcmVjZWl2ZSBmb2N1cyBhbmRcbiAqICB0cmlnZ2VyIG9uIEVudGVyIGBcImtleWRvd25cImAgYW5kIGBcImtleXVwXCJgIGV2ZW50cy5cbiAqXG4gKiBUaGlzIGlzIGRpZmZlcmVudCB0byBhIGJyb3dzZXIncyBgXCJjbGlja1wiYCBldmVudCwgd2hpY2ggZG9lc1xuICogcmVzcG9uZCB0byBrZXlib2FyZHMgYnV0IG9ubHkgZm9yIHRoZSBgXCJjbGlja1wiYCBpdHNlbGYsIHJhdGhlclxuICogdGhhbiB0aGUgcHJlc3Mgc3RhcnQgYW5kIGVuZC9jYW5jZWwuIFRoZSBlbGVtZW50IGFsc28gbmVlZHNcbiAqIHRvIGJlIGZvY3VzYWJsZSBmb3IgdGhpcyB0byB3b3JrLCB3aGVyZWFzIGEgcHJlc3MgZ2VzdHVyZSB3aWxsXG4gKiBtYWtlIGFuIGVsZW1lbnQgZm9jdXNhYmxlIGJ5IGRlZmF1bHQuXG4gKlxuICogQHB1YmxpY1xuICovXG5mdW5jdGlvbiBwcmVzcyh0YXJnZXRPclNlbGVjdG9yLCBvblByZXNzU3RhcnQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IFt0YXJnZXRzLCBldmVudE9wdGlvbnMsIGNhbmNlbEV2ZW50c10gPSBzZXR1cEdlc3R1cmUodGFyZ2V0T3JTZWxlY3Rvciwgb3B0aW9ucyk7XG4gICAgY29uc3Qgc3RhcnRQcmVzcyA9IChzdGFydEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHN0YXJ0RXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgICAgaWYgKCFpc1ZhbGlkUHJlc3NFdmVudChzdGFydEV2ZW50KSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKGNsYWltZWRQb2ludGVyRG93bkV2ZW50cy5oYXMoc3RhcnRFdmVudCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlzUHJlc3NpbmcuYWRkKHRhcmdldCk7XG4gICAgICAgIGlmIChvcHRpb25zLnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICAgICAgY2xhaW1lZFBvaW50ZXJEb3duRXZlbnRzLmFkZChzdGFydEV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvblByZXNzRW5kID0gb25QcmVzc1N0YXJ0KHRhcmdldCwgc3RhcnRFdmVudCk7XG4gICAgICAgIGNvbnN0IG9uUG9pbnRlckVuZCA9IChlbmRFdmVudCwgc3VjY2VzcykgPT4ge1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgb25Qb2ludGVyVXApO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVyY2FuY2VsXCIsIG9uUG9pbnRlckNhbmNlbCk7XG4gICAgICAgICAgICBpZiAoaXNQcmVzc2luZy5oYXModGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIGlzUHJlc3NpbmcuZGVsZXRlKHRhcmdldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWRQcmVzc0V2ZW50KGVuZEV2ZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb25QcmVzc0VuZCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgb25QcmVzc0VuZChlbmRFdmVudCwgeyBzdWNjZXNzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvblBvaW50ZXJVcCA9ICh1cEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBvblBvaW50ZXJFbmQodXBFdmVudCwgdGFyZ2V0ID09PSB3aW5kb3cgfHxcbiAgICAgICAgICAgICAgICB0YXJnZXQgPT09IGRvY3VtZW50IHx8XG4gICAgICAgICAgICAgICAgb3B0aW9ucy51c2VHbG9iYWxUYXJnZXQgfHxcbiAgICAgICAgICAgICAgICBpc05vZGVPckNoaWxkKHRhcmdldCwgdXBFdmVudC50YXJnZXQpKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Qb2ludGVyQ2FuY2VsID0gKGNhbmNlbEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBvblBvaW50ZXJFbmQoY2FuY2VsRXZlbnQsIGZhbHNlKTtcbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgb25Qb2ludGVyVXAsIGV2ZW50T3B0aW9ucyk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmNhbmNlbFwiLCBvblBvaW50ZXJDYW5jZWwsIGV2ZW50T3B0aW9ucyk7XG4gICAgfTtcbiAgICB0YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgICAgICBjb25zdCBwb2ludGVyRG93blRhcmdldCA9IG9wdGlvbnMudXNlR2xvYmFsVGFyZ2V0ID8gd2luZG93IDogdGFyZ2V0O1xuICAgICAgICBwb2ludGVyRG93blRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgc3RhcnRQcmVzcywgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgaWYgKGlzSFRNTEVsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLCAoZXZlbnQpID0+IGVuYWJsZUtleWJvYXJkUHJlc3MoZXZlbnQsIGV2ZW50T3B0aW9ucykpO1xuICAgICAgICAgICAgaWYgKCFpc0VsZW1lbnRLZXlib2FyZEFjY2Vzc2libGUodGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICF0YXJnZXQuaGFzQXR0cmlidXRlKFwidGFiaW5kZXhcIikpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQudGFiSW5kZXggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNhbmNlbEV2ZW50cztcbn1cblxuZXhwb3J0IHsgcHJlc3MgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs": +/*!*****************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isElementKeyboardAccessible: () => (/* binding */ isElementKeyboardAccessible),\n/* harmony export */ isElementTextInput: () => (/* binding */ isElementTextInput)\n/* harmony export */ });\nconst keyboardAccessibleElements = new Set([\n \"BUTTON\",\n \"INPUT\",\n \"SELECT\",\n \"TEXTAREA\",\n \"A\",\n]);\n/**\n * Checks if an element is natively keyboard accessible (focusable).\n * Used by the press gesture to determine if we need to add tabIndex.\n */\nfunction isElementKeyboardAccessible(element) {\n return (keyboardAccessibleElements.has(element.tagName) ||\n element.isContentEditable === true);\n}\nconst textInputElements = new Set([\"INPUT\", \"SELECT\", \"TEXTAREA\"]);\n/**\n * Checks if an element has text selection or direct interaction behavior\n * that should block drag gestures from starting.\n *\n * This specifically targets form controls where the user might want to select\n * text or interact with the control (e.g., sliders, dropdowns).\n *\n * Buttons and links are NOT included because they don't have click-and-move\n * actions of their own - they only respond to click events, so dragging\n * should still work when initiated from these elements.\n */\nfunction isElementTextInput(element) {\n return (textInputElements.has(element.tagName) ||\n element.isContentEditable === true);\n}\n\n\n//# sourceMappingURL=is-keyboard-accessible.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvdXRpbHMvaXMta2V5Ym9hcmQtYWNjZXNzaWJsZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMkQ7QUFDM0QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzL3V0aWxzL2lzLWtleWJvYXJkLWFjY2Vzc2libGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGtleWJvYXJkQWNjZXNzaWJsZUVsZW1lbnRzID0gbmV3IFNldChbXG4gICAgXCJCVVRUT05cIixcbiAgICBcIklOUFVUXCIsXG4gICAgXCJTRUxFQ1RcIixcbiAgICBcIlRFWFRBUkVBXCIsXG4gICAgXCJBXCIsXG5dKTtcbi8qKlxuICogQ2hlY2tzIGlmIGFuIGVsZW1lbnQgaXMgbmF0aXZlbHkga2V5Ym9hcmQgYWNjZXNzaWJsZSAoZm9jdXNhYmxlKS5cbiAqIFVzZWQgYnkgdGhlIHByZXNzIGdlc3R1cmUgdG8gZGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gYWRkIHRhYkluZGV4LlxuICovXG5mdW5jdGlvbiBpc0VsZW1lbnRLZXlib2FyZEFjY2Vzc2libGUoZWxlbWVudCkge1xuICAgIHJldHVybiAoa2V5Ym9hcmRBY2Nlc3NpYmxlRWxlbWVudHMuaGFzKGVsZW1lbnQudGFnTmFtZSkgfHxcbiAgICAgICAgZWxlbWVudC5pc0NvbnRlbnRFZGl0YWJsZSA9PT0gdHJ1ZSk7XG59XG5jb25zdCB0ZXh0SW5wdXRFbGVtZW50cyA9IG5ldyBTZXQoW1wiSU5QVVRcIiwgXCJTRUxFQ1RcIiwgXCJURVhUQVJFQVwiXSk7XG4vKipcbiAqIENoZWNrcyBpZiBhbiBlbGVtZW50IGhhcyB0ZXh0IHNlbGVjdGlvbiBvciBkaXJlY3QgaW50ZXJhY3Rpb24gYmVoYXZpb3JcbiAqIHRoYXQgc2hvdWxkIGJsb2NrIGRyYWcgZ2VzdHVyZXMgZnJvbSBzdGFydGluZy5cbiAqXG4gKiBUaGlzIHNwZWNpZmljYWxseSB0YXJnZXRzIGZvcm0gY29udHJvbHMgd2hlcmUgdGhlIHVzZXIgbWlnaHQgd2FudCB0byBzZWxlY3RcbiAqIHRleHQgb3IgaW50ZXJhY3Qgd2l0aCB0aGUgY29udHJvbCAoZS5nLiwgc2xpZGVycywgZHJvcGRvd25zKS5cbiAqXG4gKiBCdXR0b25zIGFuZCBsaW5rcyBhcmUgTk9UIGluY2x1ZGVkIGJlY2F1c2UgdGhleSBkb24ndCBoYXZlIGNsaWNrLWFuZC1tb3ZlXG4gKiBhY3Rpb25zIG9mIHRoZWlyIG93biAtIHRoZXkgb25seSByZXNwb25kIHRvIGNsaWNrIGV2ZW50cywgc28gZHJhZ2dpbmdcbiAqIHNob3VsZCBzdGlsbCB3b3JrIHdoZW4gaW5pdGlhdGVkIGZyb20gdGhlc2UgZWxlbWVudHMuXG4gKi9cbmZ1bmN0aW9uIGlzRWxlbWVudFRleHRJbnB1dChlbGVtZW50KSB7XG4gICAgcmV0dXJuICh0ZXh0SW5wdXRFbGVtZW50cy5oYXMoZWxlbWVudC50YWdOYW1lKSB8fFxuICAgICAgICBlbGVtZW50LmlzQ29udGVudEVkaXRhYmxlID09PSB0cnVlKTtcbn1cblxuZXhwb3J0IHsgaXNFbGVtZW50S2V5Ym9hcmRBY2Nlc3NpYmxlLCBpc0VsZW1lbnRUZXh0SW5wdXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWtleWJvYXJkLWFjY2Vzc2libGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ enableKeyboardPress: () => (/* binding */ enableKeyboardPress)\n/* harmony export */ });\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\");\n\n\n/**\n * Filter out events that are not \"Enter\" keys.\n */\nfunction filterEvents(callback) {\n return (event) => {\n if (event.key !== \"Enter\")\n return;\n callback(event);\n };\n}\nfunction firePointerEvent(target, type) {\n target.dispatchEvent(new PointerEvent(\"pointer\" + type, { isPrimary: true, bubbles: true }));\n}\nconst enableKeyboardPress = (focusEvent, eventOptions) => {\n const element = focusEvent.currentTarget;\n if (!element)\n return;\n const handleKeydown = filterEvents(() => {\n if (_state_mjs__WEBPACK_IMPORTED_MODULE_0__.isPressing.has(element))\n return;\n firePointerEvent(element, \"down\");\n const handleKeyup = filterEvents(() => {\n firePointerEvent(element, \"up\");\n });\n const handleBlur = () => firePointerEvent(element, \"cancel\");\n element.addEventListener(\"keyup\", handleKeyup, eventOptions);\n element.addEventListener(\"blur\", handleBlur, eventOptions);\n });\n element.addEventListener(\"keydown\", handleKeydown, eventOptions);\n /**\n * Add an event listener that fires on blur to remove the keydown events.\n */\n element.addEventListener(\"blur\", () => element.removeEventListener(\"keydown\", handleKeydown), eventOptions);\n};\n\n\n//# sourceMappingURL=keyboard.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvdXRpbHMva2V5Ym9hcmQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlDOztBQUV6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOERBQThELGdDQUFnQztBQUM5RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGtEQUFVO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy9wcmVzcy91dGlscy9rZXlib2FyZC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQcmVzc2luZyB9IGZyb20gJy4vc3RhdGUubWpzJztcblxuLyoqXG4gKiBGaWx0ZXIgb3V0IGV2ZW50cyB0aGF0IGFyZSBub3QgXCJFbnRlclwiIGtleXMuXG4gKi9cbmZ1bmN0aW9uIGZpbHRlckV2ZW50cyhjYWxsYmFjaykge1xuICAgIHJldHVybiAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gXCJFbnRlclwiKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGZpcmVQb2ludGVyRXZlbnQodGFyZ2V0LCB0eXBlKSB7XG4gICAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IFBvaW50ZXJFdmVudChcInBvaW50ZXJcIiArIHR5cGUsIHsgaXNQcmltYXJ5OiB0cnVlLCBidWJibGVzOiB0cnVlIH0pKTtcbn1cbmNvbnN0IGVuYWJsZUtleWJvYXJkUHJlc3MgPSAoZm9jdXNFdmVudCwgZXZlbnRPcHRpb25zKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGZvY3VzRXZlbnQuY3VycmVudFRhcmdldDtcbiAgICBpZiAoIWVsZW1lbnQpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBoYW5kbGVLZXlkb3duID0gZmlsdGVyRXZlbnRzKCgpID0+IHtcbiAgICAgICAgaWYgKGlzUHJlc3NpbmcuaGFzKGVsZW1lbnQpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBmaXJlUG9pbnRlckV2ZW50KGVsZW1lbnQsIFwiZG93blwiKTtcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5dXAgPSBmaWx0ZXJFdmVudHMoKCkgPT4ge1xuICAgICAgICAgICAgZmlyZVBvaW50ZXJFdmVudChlbGVtZW50LCBcInVwXCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaGFuZGxlQmx1ciA9ICgpID0+IGZpcmVQb2ludGVyRXZlbnQoZWxlbWVudCwgXCJjYW5jZWxcIik7XG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsIGhhbmRsZUtleXVwLCBldmVudE9wdGlvbnMpO1xuICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsIGhhbmRsZUJsdXIsIGV2ZW50T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlkb3duLCBldmVudE9wdGlvbnMpO1xuICAgIC8qKlxuICAgICAqIEFkZCBhbiBldmVudCBsaXN0ZW5lciB0aGF0IGZpcmVzIG9uIGJsdXIgdG8gcmVtb3ZlIHRoZSBrZXlkb3duIGV2ZW50cy5cbiAgICAgKi9cbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsICgpID0+IGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlS2V5ZG93biksIGV2ZW50T3B0aW9ucyk7XG59O1xuXG5leHBvcnQgeyBlbmFibGVLZXlib2FyZFByZXNzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1rZXlib2FyZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPressing: () => (/* binding */ isPressing)\n/* harmony export */ });\nconst isPressing = new WeakSet();\n\n\n//# sourceMappingURL=state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvdXRpbHMvc3RhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFFc0I7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzL3V0aWxzL3N0YXRlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc1ByZXNzaW5nID0gbmV3IFdlYWtTZXQoKTtcblxuZXhwb3J0IHsgaXNQcmVzc2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RhdGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNodeOrChild: () => (/* binding */ isNodeOrChild)\n/* harmony export */ });\n/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\n\n//# sourceMappingURL=is-node-or-child.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvaXMtbm9kZS1vci1jaGlsZC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3V0aWxzL2lzLW5vZGUtb3ItY2hpbGQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVjdXJzaXZlbHkgdHJhdmVyc2UgdXAgdGhlIHRyZWUgdG8gY2hlY2sgd2hldGhlciB0aGUgcHJvdmlkZWQgY2hpbGQgbm9kZVxuICogaXMgdGhlIHBhcmVudCBvciBhIGRlc2NlbmRhbnQgb2YgaXQuXG4gKlxuICogQHBhcmFtIHBhcmVudCAtIEVsZW1lbnQgdG8gZmluZFxuICogQHBhcmFtIGNoaWxkIC0gRWxlbWVudCB0byB0ZXN0IGFnYWluc3QgcGFyZW50XG4gKi9cbmNvbnN0IGlzTm9kZU9yQ2hpbGQgPSAocGFyZW50LCBjaGlsZCkgPT4ge1xuICAgIGlmICghY2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIGlmIChwYXJlbnQgPT09IGNoaWxkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGlzTm9kZU9yQ2hpbGQocGFyZW50LCBjaGlsZC5wYXJlbnRFbGVtZW50KTtcbiAgICB9XG59O1xuXG5leHBvcnQgeyBpc05vZGVPckNoaWxkIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1ub2RlLW9yLWNoaWxkLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPrimaryPointer: () => (/* binding */ isPrimaryPointer)\n/* harmony export */ });\nconst isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\n\n//# sourceMappingURL=is-primary-pointer.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvaXMtcHJpbWFyeS1wb2ludGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTRCO0FBQzVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy91dGlscy9pcy1wcmltYXJ5LXBvaW50ZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzUHJpbWFyeVBvaW50ZXIgPSAoZXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgPT09IFwibW91c2VcIikge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGV2ZW50LmJ1dHRvbiAhPT0gXCJudW1iZXJcIiB8fCBldmVudC5idXR0b24gPD0gMDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBpc1ByaW1hcnkgaXMgdHJ1ZSBmb3IgYWxsIG1pY2UgYnV0dG9ucywgd2hlcmVhcyBldmVyeSB0b3VjaCBwb2ludFxuICAgICAgICAgKiBpcyByZWdhcmRlZCBhcyBpdHMgb3duIGlucHV0LiBTbyBzdWJzZXF1ZW50IGNvbmN1cnJlbnQgdG91Y2ggcG9pbnRzXG4gICAgICAgICAqIHdpbGwgYmUgZmFsc2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIFNwZWNpZmljYWxseSBtYXRjaCBhZ2FpbnN0IGZhbHNlIGhlcmUgYXMgaW5jb21wbGV0ZSB2ZXJzaW9ucyBvZlxuICAgICAgICAgKiBQb2ludGVyRXZlbnRzIGluIHZlcnkgb2xkIGJyb3dzZXIgbWlnaHQgaGF2ZSBpdCBzZXQgYXMgdW5kZWZpbmVkLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGV2ZW50LmlzUHJpbWFyeSAhPT0gZmFsc2U7XG4gICAgfVxufTtcblxuZXhwb3J0IHsgaXNQcmltYXJ5UG9pbnRlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtcHJpbWFyeS1wb2ludGVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setupGesture: () => (/* binding */ setupGesture)\n/* harmony export */ });\n/* harmony import */ var _utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/resolve-elements.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\");\n\n\nfunction setupGesture(elementOrSelector, options) {\n const elements = (0,_utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveElements)(elementOrSelector);\n const gestureAbortController = new AbortController();\n const eventOptions = {\n passive: true,\n ...options,\n signal: gestureAbortController.signal,\n };\n const cancel = () => gestureAbortController.abort();\n return [elements, eventOptions, cancel];\n}\n\n\n//# sourceMappingURL=setup.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvc2V0dXAubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW1FOztBQUVuRTtBQUNBLHFCQUFxQiw0RUFBZTtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXdCO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy91dGlscy9zZXR1cC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZUVsZW1lbnRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVzb2x2ZS1lbGVtZW50cy5tanMnO1xuXG5mdW5jdGlvbiBzZXR1cEdlc3R1cmUoZWxlbWVudE9yU2VsZWN0b3IsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHJlc29sdmVFbGVtZW50cyhlbGVtZW50T3JTZWxlY3Rvcik7XG4gICAgY29uc3QgZ2VzdHVyZUFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBjb25zdCBldmVudE9wdGlvbnMgPSB7XG4gICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHNpZ25hbDogZ2VzdHVyZUFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfTtcbiAgICBjb25zdCBjYW5jZWwgPSAoKSA9PiBnZXN0dXJlQWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgcmV0dXJuIFtlbGVtZW50cywgZXZlbnRPcHRpb25zLCBjYW5jZWxdO1xufVxuXG5leHBvcnQgeyBzZXR1cEdlc3R1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNldHVwLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixValues: () => (/* binding */ mixValues)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n\n\n\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(0, lead.opacity ?? 1, easeCrossfadeIn(progress));\n target.opacityExit = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.opacity ?? 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.opacity ?? 1, lead.opacity ?? 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max((0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (_value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.percent.test(leadRadius) || _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\nconst easeCrossfadeIn = /*@__PURE__*/ compress(0, 0.5, motion_utils__WEBPACK_IMPORTED_MODULE_2__.circOut);\nconst easeCrossfadeOut = /*@__PURE__*/ compress(0.5, 0.95, motion_utils__WEBPACK_IMPORTED_MODULE_3__.noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing((0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.progress)(min, max, p));\n };\n}\n\n\n//# sourceMappingURL=mix-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9hbmltYXRpb24vbWl4LXZhbHVlcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXVEO0FBQ1c7QUFDWDs7QUFFdkQ7QUFDQTtBQUNBO0FBQ0EscURBQXFELDhEQUFFO0FBQ3ZEO0FBQ0E7QUFDQSx5QkFBeUIsZ0VBQVM7QUFDbEMsNkJBQTZCLGdFQUFTO0FBQ3RDO0FBQ0E7QUFDQSx5QkFBeUIsZ0VBQVM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDLHFDQUFxQyxXQUFXO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLGdFQUFTO0FBQ3BELGdCQUFnQixtRUFBTyxxQkFBcUIsbUVBQU87QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnRUFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCxpREFBTztBQUM5RCwyREFBMkQsOENBQUk7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0Isc0RBQVE7QUFDOUI7QUFDQTs7QUFFcUI7QUFDckIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vYW5pbWF0aW9uL21peC12YWx1ZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1peE51bWJlciB9IGZyb20gJy4uLy4uL3V0aWxzL21peC9udW1iZXIubWpzJztcbmltcG9ydCB7IHBlcmNlbnQsIHB4IH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMnO1xuaW1wb3J0IHsgcHJvZ3Jlc3MsIGNpcmNPdXQsIG5vb3AgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuXG5jb25zdCBib3JkZXJzID0gW1wiVG9wTGVmdFwiLCBcIlRvcFJpZ2h0XCIsIFwiQm90dG9tTGVmdFwiLCBcIkJvdHRvbVJpZ2h0XCJdO1xuY29uc3QgbnVtQm9yZGVycyA9IGJvcmRlcnMubGVuZ3RoO1xuY29uc3QgYXNOdW1iZXIgPSAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHBhcnNlRmxvYXQodmFsdWUpIDogdmFsdWU7XG5jb25zdCBpc1B4ID0gKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgfHwgcHgudGVzdCh2YWx1ZSk7XG5mdW5jdGlvbiBtaXhWYWx1ZXModGFyZ2V0LCBmb2xsb3csIGxlYWQsIHByb2dyZXNzLCBzaG91bGRDcm9zc2ZhZGVPcGFjaXR5LCBpc09ubHlNZW1iZXIpIHtcbiAgICBpZiAoc2hvdWxkQ3Jvc3NmYWRlT3BhY2l0eSkge1xuICAgICAgICB0YXJnZXQub3BhY2l0eSA9IG1peE51bWJlcigwLCBsZWFkLm9wYWNpdHkgPz8gMSwgZWFzZUNyb3NzZmFkZUluKHByb2dyZXNzKSk7XG4gICAgICAgIHRhcmdldC5vcGFjaXR5RXhpdCA9IG1peE51bWJlcihmb2xsb3cub3BhY2l0eSA/PyAxLCAwLCBlYXNlQ3Jvc3NmYWRlT3V0KHByb2dyZXNzKSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzT25seU1lbWJlcikge1xuICAgICAgICB0YXJnZXQub3BhY2l0eSA9IG1peE51bWJlcihmb2xsb3cub3BhY2l0eSA/PyAxLCBsZWFkLm9wYWNpdHkgPz8gMSwgcHJvZ3Jlc3MpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNaXggYm9yZGVyIHJhZGl1c1xuICAgICAqL1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtQm9yZGVyczsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGJvcmRlckxhYmVsID0gYGJvcmRlciR7Ym9yZGVyc1tpXX1SYWRpdXNgO1xuICAgICAgICBsZXQgZm9sbG93UmFkaXVzID0gZ2V0UmFkaXVzKGZvbGxvdywgYm9yZGVyTGFiZWwpO1xuICAgICAgICBsZXQgbGVhZFJhZGl1cyA9IGdldFJhZGl1cyhsZWFkLCBib3JkZXJMYWJlbCk7XG4gICAgICAgIGlmIChmb2xsb3dSYWRpdXMgPT09IHVuZGVmaW5lZCAmJiBsZWFkUmFkaXVzID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgZm9sbG93UmFkaXVzIHx8IChmb2xsb3dSYWRpdXMgPSAwKTtcbiAgICAgICAgbGVhZFJhZGl1cyB8fCAobGVhZFJhZGl1cyA9IDApO1xuICAgICAgICBjb25zdCBjYW5NaXggPSBmb2xsb3dSYWRpdXMgPT09IDAgfHxcbiAgICAgICAgICAgIGxlYWRSYWRpdXMgPT09IDAgfHxcbiAgICAgICAgICAgIGlzUHgoZm9sbG93UmFkaXVzKSA9PT0gaXNQeChsZWFkUmFkaXVzKTtcbiAgICAgICAgaWYgKGNhbk1peCkge1xuICAgICAgICAgICAgdGFyZ2V0W2JvcmRlckxhYmVsXSA9IE1hdGgubWF4KG1peE51bWJlcihhc051bWJlcihmb2xsb3dSYWRpdXMpLCBhc051bWJlcihsZWFkUmFkaXVzKSwgcHJvZ3Jlc3MpLCAwKTtcbiAgICAgICAgICAgIGlmIChwZXJjZW50LnRlc3QobGVhZFJhZGl1cykgfHwgcGVyY2VudC50ZXN0KGZvbGxvd1JhZGl1cykpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRbYm9yZGVyTGFiZWxdICs9IFwiJVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGFyZ2V0W2JvcmRlckxhYmVsXSA9IGxlYWRSYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogTWl4IHJvdGF0aW9uXG4gICAgICovXG4gICAgaWYgKGZvbGxvdy5yb3RhdGUgfHwgbGVhZC5yb3RhdGUpIHtcbiAgICAgICAgdGFyZ2V0LnJvdGF0ZSA9IG1peE51bWJlcihmb2xsb3cucm90YXRlIHx8IDAsIGxlYWQucm90YXRlIHx8IDAsIHByb2dyZXNzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRSYWRpdXModmFsdWVzLCByYWRpdXNOYW1lKSB7XG4gICAgcmV0dXJuIHZhbHVlc1tyYWRpdXNOYW1lXSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gdmFsdWVzW3JhZGl1c05hbWVdXG4gICAgICAgIDogdmFsdWVzLmJvcmRlclJhZGl1cztcbn1cbmNvbnN0IGVhc2VDcm9zc2ZhZGVJbiA9IC8qQF9fUFVSRV9fKi8gY29tcHJlc3MoMCwgMC41LCBjaXJjT3V0KTtcbmNvbnN0IGVhc2VDcm9zc2ZhZGVPdXQgPSAvKkBfX1BVUkVfXyovIGNvbXByZXNzKDAuNSwgMC45NSwgbm9vcCk7XG5mdW5jdGlvbiBjb21wcmVzcyhtaW4sIG1heCwgZWFzaW5nKSB7XG4gICAgcmV0dXJuIChwKSA9PiB7XG4gICAgICAgIC8vIENvdWxkIHJlcGxhY2UgaWZzIHdpdGggY2xhbXBcbiAgICAgICAgaWYgKHAgPCBtaW4pXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgaWYgKHAgPiBtYXgpXG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgcmV0dXJuIGVhc2luZyhwcm9ncmVzcyhtaW4sIG1heCwgcCkpO1xuICAgIH07XG59XG5cbmV4cG9ydCB7IG1peFZhbHVlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWl4LXZhbHVlcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ convertBoundingBoxToBox: () => (/* binding */ convertBoundingBoxToBox),\n/* harmony export */ convertBoxToBoundingBox: () => (/* binding */ convertBoxToBoundingBox),\n/* harmony export */ transformBoxPoints: () => (/* binding */ transformBoxPoints)\n/* harmony export */ });\n/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\n\n//# sourceMappingURL=conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9jb252ZXJzaW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLDJCQUEyQjtBQUM5RDtBQUNBLGFBQWEsdUJBQXVCO0FBQ3BDLGFBQWEsdUJBQXVCO0FBQ3BDO0FBQ0E7QUFDQSxtQ0FBbUMsTUFBTTtBQUN6QyxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLDZCQUE2QjtBQUNsRSx5Q0FBeUMsaUNBQWlDO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVnRjtBQUNoRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9jb252ZXJzaW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJvdW5kaW5nIGJveGVzIHRlbmQgdG8gYmUgZGVmaW5lZCBhcyB0b3AsIGxlZnQsIHJpZ2h0LCBib3R0b20uIEZvciB2YXJpb3VzIG9wZXJhdGlvbnNcbiAqIGl0J3MgZWFzaWVyIHRvIGNvbnNpZGVyIGVhY2ggYXhpcyBpbmRpdmlkdWFsbHkuIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGJvdW5kaW5nIGJveFxuICogYXMgYSBtYXAgb2Ygc2luZ2xlLWF4aXMgbWluL21heCB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRCb3VuZGluZ0JveFRvQm94KHsgdG9wLCBsZWZ0LCByaWdodCwgYm90dG9tLCB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgeDogeyBtaW46IGxlZnQsIG1heDogcmlnaHQgfSxcbiAgICAgICAgeTogeyBtaW46IHRvcCwgbWF4OiBib3R0b20gfSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY29udmVydEJveFRvQm91bmRpbmdCb3goeyB4LCB5IH0pIHtcbiAgICByZXR1cm4geyB0b3A6IHkubWluLCByaWdodDogeC5tYXgsIGJvdHRvbTogeS5tYXgsIGxlZnQ6IHgubWluIH07XG59XG4vKipcbiAqIEFwcGxpZXMgYSBUcmFuc2Zvcm1Qb2ludCBmdW5jdGlvbiB0byBhIGJvdW5kaW5nIGJveC4gVHJhbnNmb3JtUG9pbnQgaXMgdXN1YWxseSBhIGZ1bmN0aW9uXG4gKiBwcm92aWRlZCBieSBGcmFtZXIgdG8gYWxsb3cgbWVhc3VyZWQgcG9pbnRzIHRvIGJlIGNvcnJlY3RlZCBmb3IgZGV2aWNlIHNjYWxpbmcuIFRoaXMgaXMgdXNlZFxuICogd2hlbiBtZWFzdXJpbmcgRE9NIGVsZW1lbnRzIGFuZCBET00gZXZlbnQgcG9pbnRzLlxuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1Cb3hQb2ludHMocG9pbnQsIHRyYW5zZm9ybVBvaW50KSB7XG4gICAgaWYgKCF0cmFuc2Zvcm1Qb2ludClcbiAgICAgICAgcmV0dXJuIHBvaW50O1xuICAgIGNvbnN0IHRvcExlZnQgPSB0cmFuc2Zvcm1Qb2ludCh7IHg6IHBvaW50LmxlZnQsIHk6IHBvaW50LnRvcCB9KTtcbiAgICBjb25zdCBib3R0b21SaWdodCA9IHRyYW5zZm9ybVBvaW50KHsgeDogcG9pbnQucmlnaHQsIHk6IHBvaW50LmJvdHRvbSB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0b3A6IHRvcExlZnQueSxcbiAgICAgICAgbGVmdDogdG9wTGVmdC54LFxuICAgICAgICBib3R0b206IGJvdHRvbVJpZ2h0LnksXG4gICAgICAgIHJpZ2h0OiBib3R0b21SaWdodC54LFxuICAgIH07XG59XG5cbmV4cG9ydCB7IGNvbnZlcnRCb3VuZGluZ0JveFRvQm94LCBjb252ZXJ0Qm94VG9Cb3VuZGluZ0JveCwgdHJhbnNmb3JtQm94UG9pbnRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb252ZXJzaW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/copy.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/copy.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ copyAxisDeltaInto: () => (/* binding */ copyAxisDeltaInto),\n/* harmony export */ copyAxisInto: () => (/* binding */ copyAxisInto),\n/* harmony export */ copyBoxInto: () => (/* binding */ copyBoxInto)\n/* harmony export */ });\n/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n/**\n * Reset a delta to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisDeltaInto(delta, originDelta) {\n delta.translate = originDelta.translate;\n delta.scale = originDelta.scale;\n delta.originPoint = originDelta.originPoint;\n delta.origin = originDelta.origin;\n}\n\n\n//# sourceMappingURL=copy.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9jb3B5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV3RDtBQUN4RCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9jb3B5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc2V0IGFuIGF4aXMgdG8gdGhlIHByb3ZpZGVkIG9yaWdpbiBib3guXG4gKlxuICogVGhpcyBpcyBhIG11dGF0aXZlIG9wZXJhdGlvbi5cbiAqL1xuZnVuY3Rpb24gY29weUF4aXNJbnRvKGF4aXMsIG9yaWdpbkF4aXMpIHtcbiAgICBheGlzLm1pbiA9IG9yaWdpbkF4aXMubWluO1xuICAgIGF4aXMubWF4ID0gb3JpZ2luQXhpcy5tYXg7XG59XG4vKipcbiAqIFJlc2V0IGEgYm94IHRvIHRoZSBwcm92aWRlZCBvcmlnaW4gYm94LlxuICpcbiAqIFRoaXMgaXMgYSBtdXRhdGl2ZSBvcGVyYXRpb24uXG4gKi9cbmZ1bmN0aW9uIGNvcHlCb3hJbnRvKGJveCwgb3JpZ2luQm94KSB7XG4gICAgY29weUF4aXNJbnRvKGJveC54LCBvcmlnaW5Cb3gueCk7XG4gICAgY29weUF4aXNJbnRvKGJveC55LCBvcmlnaW5Cb3gueSk7XG59XG4vKipcbiAqIFJlc2V0IGEgZGVsdGEgdG8gdGhlIHByb3ZpZGVkIG9yaWdpbiBib3guXG4gKlxuICogVGhpcyBpcyBhIG11dGF0aXZlIG9wZXJhdGlvbi5cbiAqL1xuZnVuY3Rpb24gY29weUF4aXNEZWx0YUludG8oZGVsdGEsIG9yaWdpbkRlbHRhKSB7XG4gICAgZGVsdGEudHJhbnNsYXRlID0gb3JpZ2luRGVsdGEudHJhbnNsYXRlO1xuICAgIGRlbHRhLnNjYWxlID0gb3JpZ2luRGVsdGEuc2NhbGU7XG4gICAgZGVsdGEub3JpZ2luUG9pbnQgPSBvcmlnaW5EZWx0YS5vcmlnaW5Qb2ludDtcbiAgICBkZWx0YS5vcmlnaW4gPSBvcmlnaW5EZWx0YS5vcmlnaW47XG59XG5cbmV4cG9ydCB7IGNvcHlBeGlzRGVsdGFJbnRvLCBjb3B5QXhpc0ludG8sIGNvcHlCb3hJbnRvIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb3B5Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/copy.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyAxisDelta: () => (/* binding */ applyAxisDelta),\n/* harmony export */ applyBoxDelta: () => (/* binding */ applyBoxDelta),\n/* harmony export */ applyPointDelta: () => (/* binding */ applyPointDelta),\n/* harmony export */ applyTreeDeltas: () => (/* binding */ applyTreeDeltas),\n/* harmony export */ scalePoint: () => (/* binding */ scalePoint),\n/* harmony export */ transformAxis: () => (/* binding */ transformAxis),\n/* harmony export */ transformBox: () => (/* binding */ transformBox),\n/* harmony export */ translateAxis: () => (/* binding */ translateAxis)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/has-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs\");\n\n\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\nconst TREE_SCALE_SNAP_MIN = 0.999999999999;\nconst TREE_SCALE_SNAP_MAX = 1.0000000000001;\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const { visualElement } = node.options;\n if (visualElement &&\n visualElement.props.style &&\n visualElement.props.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a cumulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.hasTransform)(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n if (treeScale.x < TREE_SCALE_SNAP_MAX &&\n treeScale.x > TREE_SCALE_SNAP_MIN) {\n treeScale.x = 1.0;\n }\n if (treeScale.y < TREE_SCALE_SNAP_MAX &&\n treeScale.y > TREE_SCALE_SNAP_MIN) {\n treeScale.y = 1.0;\n }\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, axisTranslate, axisScale, boxScale, axisOrigin = 0.5) {\n const originPoint = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, axisTranslate, axisScale, originPoint, boxScale);\n}\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform.x, transform.scaleX, transform.scale, transform.originX);\n transformAxis(box.y, transform.y, transform.scaleY, transform.scale, transform.originY);\n}\n\n\n//# sourceMappingURL=delta-apply.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1hcHBseS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUF1RDtBQUNHOztBQUUxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsTUFBTTtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGdCQUFnQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxzRUFBWTtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdFQUFTO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVtSTtBQUNuSSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1hcHBseS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWl4TnVtYmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWl4L251bWJlci5tanMnO1xuaW1wb3J0IHsgaGFzVHJhbnNmb3JtIH0gZnJvbSAnLi4vdXRpbHMvaGFzLXRyYW5zZm9ybS5tanMnO1xuXG4vKipcbiAqIFNjYWxlcyBhIHBvaW50IGJhc2VkIG9uIGEgZmFjdG9yIGFuZCBhbiBvcmlnaW5Qb2ludFxuICovXG5mdW5jdGlvbiBzY2FsZVBvaW50KHBvaW50LCBzY2FsZSwgb3JpZ2luUG9pbnQpIHtcbiAgICBjb25zdCBkaXN0YW5jZUZyb21PcmlnaW4gPSBwb2ludCAtIG9yaWdpblBvaW50O1xuICAgIGNvbnN0IHNjYWxlZCA9IHNjYWxlICogZGlzdGFuY2VGcm9tT3JpZ2luO1xuICAgIHJldHVybiBvcmlnaW5Qb2ludCArIHNjYWxlZDtcbn1cbi8qKlxuICogQXBwbGllcyBhIHRyYW5zbGF0ZS9zY2FsZSBkZWx0YSB0byBhIHBvaW50XG4gKi9cbmZ1bmN0aW9uIGFwcGx5UG9pbnREZWx0YShwb2ludCwgdHJhbnNsYXRlLCBzY2FsZSwgb3JpZ2luUG9pbnQsIGJveFNjYWxlKSB7XG4gICAgaWYgKGJveFNjYWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcG9pbnQgPSBzY2FsZVBvaW50KHBvaW50LCBib3hTY2FsZSwgb3JpZ2luUG9pbnQpO1xuICAgIH1cbiAgICByZXR1cm4gc2NhbGVQb2ludChwb2ludCwgc2NhbGUsIG9yaWdpblBvaW50KSArIHRyYW5zbGF0ZTtcbn1cbi8qKlxuICogQXBwbGllcyBhIHRyYW5zbGF0ZS9zY2FsZSBkZWx0YSB0byBhbiBheGlzXG4gKi9cbmZ1bmN0aW9uIGFwcGx5QXhpc0RlbHRhKGF4aXMsIHRyYW5zbGF0ZSA9IDAsIHNjYWxlID0gMSwgb3JpZ2luUG9pbnQsIGJveFNjYWxlKSB7XG4gICAgYXhpcy5taW4gPSBhcHBseVBvaW50RGVsdGEoYXhpcy5taW4sIHRyYW5zbGF0ZSwgc2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSk7XG4gICAgYXhpcy5tYXggPSBhcHBseVBvaW50RGVsdGEoYXhpcy5tYXgsIHRyYW5zbGF0ZSwgc2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSk7XG59XG4vKipcbiAqIEFwcGxpZXMgYSB0cmFuc2xhdGUvc2NhbGUgZGVsdGEgdG8gYSBib3hcbiAqL1xuZnVuY3Rpb24gYXBwbHlCb3hEZWx0YShib3gsIHsgeCwgeSB9KSB7XG4gICAgYXBwbHlBeGlzRGVsdGEoYm94LngsIHgudHJhbnNsYXRlLCB4LnNjYWxlLCB4Lm9yaWdpblBvaW50KTtcbiAgICBhcHBseUF4aXNEZWx0YShib3gueSwgeS50cmFuc2xhdGUsIHkuc2NhbGUsIHkub3JpZ2luUG9pbnQpO1xufVxuY29uc3QgVFJFRV9TQ0FMRV9TTkFQX01JTiA9IDAuOTk5OTk5OTk5OTk5O1xuY29uc3QgVFJFRV9TQ0FMRV9TTkFQX01BWCA9IDEuMDAwMDAwMDAwMDAwMTtcbi8qKlxuICogQXBwbHkgYSB0cmVlIG9mIGRlbHRhcyB0byBhIGJveC4gV2UgZG8gdGhpcyB0byBjYWxjdWxhdGUgdGhlIGVmZmVjdCBvZiBhbGwgdGhlIHRyYW5zZm9ybXNcbiAqIGluIGEgdHJlZSB1cG9uIG91ciBib3ggYmVmb3JlIHRoZW4gY2FsY3VsYXRpbmcgaG93IHRvIHByb2plY3QgaXQgaW50byBvdXIgZGVzaXJlZCB2aWV3cG9ydC1yZWxhdGl2ZSBib3hcbiAqXG4gKiBUaGlzIGlzIHRoZSBmaW5hbCBuZXN0ZWQgbG9vcCB3aXRoaW4gdXBkYXRlTGF5b3V0RGVsdGEgZm9yIGZ1dHVyZSByZWZhY3RvcmluZ1xuICovXG5mdW5jdGlvbiBhcHBseVRyZWVEZWx0YXMoYm94LCB0cmVlU2NhbGUsIHRyZWVQYXRoLCBpc1NoYXJlZFRyYW5zaXRpb24gPSBmYWxzZSkge1xuICAgIGNvbnN0IHRyZWVMZW5ndGggPSB0cmVlUGF0aC5sZW5ndGg7XG4gICAgaWYgKCF0cmVlTGVuZ3RoKVxuICAgICAgICByZXR1cm47XG4gICAgLy8gUmVzZXQgdGhlIHRyZWVTY2FsZVxuICAgIHRyZWVTY2FsZS54ID0gdHJlZVNjYWxlLnkgPSAxO1xuICAgIGxldCBub2RlO1xuICAgIGxldCBkZWx0YTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyZWVMZW5ndGg7IGkrKykge1xuICAgICAgICBub2RlID0gdHJlZVBhdGhbaV07XG4gICAgICAgIGRlbHRhID0gbm9kZS5wcm9qZWN0aW9uRGVsdGE7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUT0RPOiBQcmVmZXIgdG8gcmVtb3ZlIHRoaXMsIGJ1dCBjdXJyZW50bHkgd2UgaGF2ZSBtb3Rpb24gY29tcG9uZW50cyB3aXRoXG4gICAgICAgICAqIGRpc3BsYXk6IGNvbnRlbnRzIGluIEZyYW1lci5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCB9ID0gbm9kZS5vcHRpb25zO1xuICAgICAgICBpZiAodmlzdWFsRWxlbWVudCAmJlxuICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5wcm9wcy5zdHlsZSAmJlxuICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5wcm9wcy5zdHlsZS5kaXNwbGF5ID09PSBcImNvbnRlbnRzXCIpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1NoYXJlZFRyYW5zaXRpb24gJiZcbiAgICAgICAgICAgIG5vZGUub3B0aW9ucy5sYXlvdXRTY3JvbGwgJiZcbiAgICAgICAgICAgIG5vZGUuc2Nyb2xsICYmXG4gICAgICAgICAgICBub2RlICE9PSBub2RlLnJvb3QpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybUJveChib3gsIHtcbiAgICAgICAgICAgICAgICB4OiAtbm9kZS5zY3JvbGwub2Zmc2V0LngsXG4gICAgICAgICAgICAgICAgeTogLW5vZGUuc2Nyb2xsLm9mZnNldC55LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlbHRhKSB7XG4gICAgICAgICAgICAvLyBJbmNvcG9yYXRlIGVhY2ggYW5jZXN0b3IncyBzY2FsZSBpbnRvIGEgY3VtdWxhdGl2ZSB0cmVlU2NhbGUgZm9yIHRoaXMgY29tcG9uZW50XG4gICAgICAgICAgICB0cmVlU2NhbGUueCAqPSBkZWx0YS54LnNjYWxlO1xuICAgICAgICAgICAgdHJlZVNjYWxlLnkgKj0gZGVsdGEueS5zY2FsZTtcbiAgICAgICAgICAgIC8vIEFwcGx5IGVhY2ggYW5jZXN0b3IncyBjYWxjdWxhdGVkIGRlbHRhIGludG8gdGhpcyBjb21wb25lbnQncyByZWNvcmRlZCBsYXlvdXQgYm94XG4gICAgICAgICAgICBhcHBseUJveERlbHRhKGJveCwgZGVsdGEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1NoYXJlZFRyYW5zaXRpb24gJiYgaGFzVHJhbnNmb3JtKG5vZGUubGF0ZXN0VmFsdWVzKSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtQm94KGJveCwgbm9kZS5sYXRlc3RWYWx1ZXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNuYXAgdHJlZSBzY2FsZSBiYWNrIHRvIDEgaWYgaXQncyB3aXRoaW4gYSBub24tcGVyY2VpdmFibGUgdGhyZXNob2xkLlxuICAgICAqIFRoaXMgd2lsbCBoZWxwIHJlZHVjZSB1c2VsZXNzIHNjYWxlcyBnZXR0aW5nIHJlbmRlcmVkLlxuICAgICAqL1xuICAgIGlmICh0cmVlU2NhbGUueCA8IFRSRUVfU0NBTEVfU05BUF9NQVggJiZcbiAgICAgICAgdHJlZVNjYWxlLnggPiBUUkVFX1NDQUxFX1NOQVBfTUlOKSB7XG4gICAgICAgIHRyZWVTY2FsZS54ID0gMS4wO1xuICAgIH1cbiAgICBpZiAodHJlZVNjYWxlLnkgPCBUUkVFX1NDQUxFX1NOQVBfTUFYICYmXG4gICAgICAgIHRyZWVTY2FsZS55ID4gVFJFRV9TQ0FMRV9TTkFQX01JTikge1xuICAgICAgICB0cmVlU2NhbGUueSA9IDEuMDtcbiAgICB9XG59XG5mdW5jdGlvbiB0cmFuc2xhdGVBeGlzKGF4aXMsIGRpc3RhbmNlKSB7XG4gICAgYXhpcy5taW4gPSBheGlzLm1pbiArIGRpc3RhbmNlO1xuICAgIGF4aXMubWF4ID0gYXhpcy5tYXggKyBkaXN0YW5jZTtcbn1cbi8qKlxuICogQXBwbHkgYSB0cmFuc2Zvcm0gdG8gYW4gYXhpcyBmcm9tIHRoZSBsYXRlc3QgcmVzb2x2ZWQgbW90aW9uIHZhbHVlcy5cbiAqIFRoaXMgZnVuY3Rpb24gYmFzaWNhbGx5IGFjdHMgYXMgYSBicmlkZ2UgYmV0d2VlbiBhIGZsYXQgbW90aW9uIHZhbHVlIG1hcFxuICogYW5kIGFwcGx5QXhpc0RlbHRhXG4gKi9cbmZ1bmN0aW9uIHRyYW5zZm9ybUF4aXMoYXhpcywgYXhpc1RyYW5zbGF0ZSwgYXhpc1NjYWxlLCBib3hTY2FsZSwgYXhpc09yaWdpbiA9IDAuNSkge1xuICAgIGNvbnN0IG9yaWdpblBvaW50ID0gbWl4TnVtYmVyKGF4aXMubWluLCBheGlzLm1heCwgYXhpc09yaWdpbik7XG4gICAgLy8gQXBwbHkgdGhlIGF4aXMgZGVsdGEgdG8gdGhlIGZpbmFsIGF4aXNcbiAgICBhcHBseUF4aXNEZWx0YShheGlzLCBheGlzVHJhbnNsYXRlLCBheGlzU2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSk7XG59XG4vKipcbiAqIEFwcGx5IGEgdHJhbnNmb3JtIHRvIGEgYm94IGZyb20gdGhlIGxhdGVzdCByZXNvbHZlZCBtb3Rpb24gdmFsdWVzLlxuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1Cb3goYm94LCB0cmFuc2Zvcm0pIHtcbiAgICB0cmFuc2Zvcm1BeGlzKGJveC54LCB0cmFuc2Zvcm0ueCwgdHJhbnNmb3JtLnNjYWxlWCwgdHJhbnNmb3JtLnNjYWxlLCB0cmFuc2Zvcm0ub3JpZ2luWCk7XG4gICAgdHJhbnNmb3JtQXhpcyhib3gueSwgdHJhbnNmb3JtLnksIHRyYW5zZm9ybS5zY2FsZVksIHRyYW5zZm9ybS5zY2FsZSwgdHJhbnNmb3JtLm9yaWdpblkpO1xufVxuXG5leHBvcnQgeyBhcHBseUF4aXNEZWx0YSwgYXBwbHlCb3hEZWx0YSwgYXBwbHlQb2ludERlbHRhLCBhcHBseVRyZWVEZWx0YXMsIHNjYWxlUG9pbnQsIHRyYW5zZm9ybUF4aXMsIHRyYW5zZm9ybUJveCwgdHJhbnNsYXRlQXhpcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVsdGEtYXBwbHkubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcAxisDelta: () => (/* binding */ calcAxisDelta),\n/* harmony export */ calcBoxDelta: () => (/* binding */ calcBoxDelta),\n/* harmony export */ calcLength: () => (/* binding */ calcLength),\n/* harmony export */ calcRelativeAxis: () => (/* binding */ calcRelativeAxis),\n/* harmony export */ calcRelativeAxisPosition: () => (/* binding */ calcRelativeAxisPosition),\n/* harmony export */ calcRelativeBox: () => (/* binding */ calcRelativeBox),\n/* harmony export */ calcRelativePosition: () => (/* binding */ calcRelativePosition),\n/* harmony export */ isNear: () => (/* binding */ isNear)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\nconst SCALE_PRECISION = 0.0001;\nconst SCALE_MIN = 1 - SCALE_PRECISION;\nconst SCALE_MAX = 1 + SCALE_PRECISION;\nconst TRANSLATE_PRECISION = 0.01;\nconst TRANSLATE_MIN = 0 - TRANSLATE_PRECISION;\nconst TRANSLATE_MAX = 0 + TRANSLATE_PRECISION;\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target, maxDistance) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n delta.translate =\n (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(target.min, target.max, delta.origin) - delta.originPoint;\n if ((delta.scale >= SCALE_MIN && delta.scale <= SCALE_MAX) ||\n isNaN(delta.scale)) {\n delta.scale = 1.0;\n }\n if ((delta.translate >= TRANSLATE_MIN &&\n delta.translate <= TRANSLATE_MAX) ||\n isNaN(delta.translate)) {\n delta.translate = 0.0;\n }\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\n\n//# sourceMappingURL=delta-calc.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1jYWxjLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBdUQ7O0FBRXZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0VBQVM7QUFDakM7QUFDQTtBQUNBLFFBQVEsZ0VBQVM7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU4STtBQUM5SSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1jYWxjLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaXhOdW1iZXIgfSBmcm9tICcuLi8uLi91dGlscy9taXgvbnVtYmVyLm1qcyc7XG5cbmNvbnN0IFNDQUxFX1BSRUNJU0lPTiA9IDAuMDAwMTtcbmNvbnN0IFNDQUxFX01JTiA9IDEgLSBTQ0FMRV9QUkVDSVNJT047XG5jb25zdCBTQ0FMRV9NQVggPSAxICsgU0NBTEVfUFJFQ0lTSU9OO1xuY29uc3QgVFJBTlNMQVRFX1BSRUNJU0lPTiA9IDAuMDE7XG5jb25zdCBUUkFOU0xBVEVfTUlOID0gMCAtIFRSQU5TTEFURV9QUkVDSVNJT047XG5jb25zdCBUUkFOU0xBVEVfTUFYID0gMCArIFRSQU5TTEFURV9QUkVDSVNJT047XG5mdW5jdGlvbiBjYWxjTGVuZ3RoKGF4aXMpIHtcbiAgICByZXR1cm4gYXhpcy5tYXggLSBheGlzLm1pbjtcbn1cbmZ1bmN0aW9uIGlzTmVhcih2YWx1ZSwgdGFyZ2V0LCBtYXhEaXN0YW5jZSkge1xuICAgIHJldHVybiBNYXRoLmFicyh2YWx1ZSAtIHRhcmdldCkgPD0gbWF4RGlzdGFuY2U7XG59XG5mdW5jdGlvbiBjYWxjQXhpc0RlbHRhKGRlbHRhLCBzb3VyY2UsIHRhcmdldCwgb3JpZ2luID0gMC41KSB7XG4gICAgZGVsdGEub3JpZ2luID0gb3JpZ2luO1xuICAgIGRlbHRhLm9yaWdpblBvaW50ID0gbWl4TnVtYmVyKHNvdXJjZS5taW4sIHNvdXJjZS5tYXgsIGRlbHRhLm9yaWdpbik7XG4gICAgZGVsdGEuc2NhbGUgPSBjYWxjTGVuZ3RoKHRhcmdldCkgLyBjYWxjTGVuZ3RoKHNvdXJjZSk7XG4gICAgZGVsdGEudHJhbnNsYXRlID1cbiAgICAgICAgbWl4TnVtYmVyKHRhcmdldC5taW4sIHRhcmdldC5tYXgsIGRlbHRhLm9yaWdpbikgLSBkZWx0YS5vcmlnaW5Qb2ludDtcbiAgICBpZiAoKGRlbHRhLnNjYWxlID49IFNDQUxFX01JTiAmJiBkZWx0YS5zY2FsZSA8PSBTQ0FMRV9NQVgpIHx8XG4gICAgICAgIGlzTmFOKGRlbHRhLnNjYWxlKSkge1xuICAgICAgICBkZWx0YS5zY2FsZSA9IDEuMDtcbiAgICB9XG4gICAgaWYgKChkZWx0YS50cmFuc2xhdGUgPj0gVFJBTlNMQVRFX01JTiAmJlxuICAgICAgICBkZWx0YS50cmFuc2xhdGUgPD0gVFJBTlNMQVRFX01BWCkgfHxcbiAgICAgICAgaXNOYU4oZGVsdGEudHJhbnNsYXRlKSkge1xuICAgICAgICBkZWx0YS50cmFuc2xhdGUgPSAwLjA7XG4gICAgfVxufVxuZnVuY3Rpb24gY2FsY0JveERlbHRhKGRlbHRhLCBzb3VyY2UsIHRhcmdldCwgb3JpZ2luKSB7XG4gICAgY2FsY0F4aXNEZWx0YShkZWx0YS54LCBzb3VyY2UueCwgdGFyZ2V0LngsIG9yaWdpbiA/IG9yaWdpbi5vcmlnaW5YIDogdW5kZWZpbmVkKTtcbiAgICBjYWxjQXhpc0RlbHRhKGRlbHRhLnksIHNvdXJjZS55LCB0YXJnZXQueSwgb3JpZ2luID8gb3JpZ2luLm9yaWdpblkgOiB1bmRlZmluZWQpO1xufVxuZnVuY3Rpb24gY2FsY1JlbGF0aXZlQXhpcyh0YXJnZXQsIHJlbGF0aXZlLCBwYXJlbnQpIHtcbiAgICB0YXJnZXQubWluID0gcGFyZW50Lm1pbiArIHJlbGF0aXZlLm1pbjtcbiAgICB0YXJnZXQubWF4ID0gdGFyZ2V0Lm1pbiArIGNhbGNMZW5ndGgocmVsYXRpdmUpO1xufVxuZnVuY3Rpb24gY2FsY1JlbGF0aXZlQm94KHRhcmdldCwgcmVsYXRpdmUsIHBhcmVudCkge1xuICAgIGNhbGNSZWxhdGl2ZUF4aXModGFyZ2V0LngsIHJlbGF0aXZlLngsIHBhcmVudC54KTtcbiAgICBjYWxjUmVsYXRpdmVBeGlzKHRhcmdldC55LCByZWxhdGl2ZS55LCBwYXJlbnQueSk7XG59XG5mdW5jdGlvbiBjYWxjUmVsYXRpdmVBeGlzUG9zaXRpb24odGFyZ2V0LCBsYXlvdXQsIHBhcmVudCkge1xuICAgIHRhcmdldC5taW4gPSBsYXlvdXQubWluIC0gcGFyZW50Lm1pbjtcbiAgICB0YXJnZXQubWF4ID0gdGFyZ2V0Lm1pbiArIGNhbGNMZW5ndGgobGF5b3V0KTtcbn1cbmZ1bmN0aW9uIGNhbGNSZWxhdGl2ZVBvc2l0aW9uKHRhcmdldCwgbGF5b3V0LCBwYXJlbnQpIHtcbiAgICBjYWxjUmVsYXRpdmVBeGlzUG9zaXRpb24odGFyZ2V0LngsIGxheW91dC54LCBwYXJlbnQueCk7XG4gICAgY2FsY1JlbGF0aXZlQXhpc1Bvc2l0aW9uKHRhcmdldC55LCBsYXlvdXQueSwgcGFyZW50LnkpO1xufVxuXG5leHBvcnQgeyBjYWxjQXhpc0RlbHRhLCBjYWxjQm94RGVsdGEsIGNhbGNMZW5ndGgsIGNhbGNSZWxhdGl2ZUF4aXMsIGNhbGNSZWxhdGl2ZUF4aXNQb3NpdGlvbiwgY2FsY1JlbGF0aXZlQm94LCBjYWxjUmVsYXRpdmVQb3NpdGlvbiwgaXNOZWFyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWx0YS1jYWxjLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ removeAxisDelta: () => (/* binding */ removeAxisDelta),\n/* harmony export */ removeAxisTransforms: () => (/* binding */ removeAxisTransforms),\n/* harmony export */ removeBoxTransforms: () => (/* binding */ removeBoxTransforms),\n/* harmony export */ removePointDelta: () => (/* binding */ removePointDelta)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/types/numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./delta-apply.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\");\n\n\n\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = (0,_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__.scalePoint)(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = (0,_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__.scalePoint)(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (_value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_2__.mixNumber)(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_2__.mixNumber)(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\n}\n\n\n//# sourceMappingURL=delta-remove.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1yZW1vdmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBdUQ7QUFDTztBQUNmOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSw0REFBVTtBQUN0QjtBQUNBLGdCQUFnQiw0REFBVTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsbUVBQU87QUFDZjtBQUNBLGlDQUFpQyxnRUFBUztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixnRUFBUztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFd0Y7QUFDeEYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvZGVsdGEtcmVtb3ZlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaXhOdW1iZXIgfSBmcm9tICcuLi8uLi91dGlscy9taXgvbnVtYmVyLm1qcyc7XG5pbXBvcnQgeyBwZXJjZW50IH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMnO1xuaW1wb3J0IHsgc2NhbGVQb2ludCB9IGZyb20gJy4vZGVsdGEtYXBwbHkubWpzJztcblxuLyoqXG4gKiBSZW1vdmUgYSBkZWx0YSBmcm9tIGEgcG9pbnQuIFRoaXMgaXMgZXNzZW50aWFsbHkgdGhlIHN0ZXBzIG9mIGFwcGx5UG9pbnREZWx0YSBpbiByZXZlcnNlXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZVBvaW50RGVsdGEocG9pbnQsIHRyYW5zbGF0ZSwgc2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSkge1xuICAgIHBvaW50IC09IHRyYW5zbGF0ZTtcbiAgICBwb2ludCA9IHNjYWxlUG9pbnQocG9pbnQsIDEgLyBzY2FsZSwgb3JpZ2luUG9pbnQpO1xuICAgIGlmIChib3hTY2FsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHBvaW50ID0gc2NhbGVQb2ludChwb2ludCwgMSAvIGJveFNjYWxlLCBvcmlnaW5Qb2ludCk7XG4gICAgfVxuICAgIHJldHVybiBwb2ludDtcbn1cbi8qKlxuICogUmVtb3ZlIGEgZGVsdGEgZnJvbSBhbiBheGlzLiBUaGlzIGlzIGVzc2VudGlhbGx5IHRoZSBzdGVwcyBvZiBhcHBseUF4aXNEZWx0YSBpbiByZXZlcnNlXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUF4aXNEZWx0YShheGlzLCB0cmFuc2xhdGUgPSAwLCBzY2FsZSA9IDEsIG9yaWdpbiA9IDAuNSwgYm94U2NhbGUsIG9yaWdpbkF4aXMgPSBheGlzLCBzb3VyY2VBeGlzID0gYXhpcykge1xuICAgIGlmIChwZXJjZW50LnRlc3QodHJhbnNsYXRlKSkge1xuICAgICAgICB0cmFuc2xhdGUgPSBwYXJzZUZsb2F0KHRyYW5zbGF0ZSk7XG4gICAgICAgIGNvbnN0IHJlbGF0aXZlUHJvZ3Jlc3MgPSBtaXhOdW1iZXIoc291cmNlQXhpcy5taW4sIHNvdXJjZUF4aXMubWF4LCB0cmFuc2xhdGUgLyAxMDApO1xuICAgICAgICB0cmFuc2xhdGUgPSByZWxhdGl2ZVByb2dyZXNzIC0gc291cmNlQXhpcy5taW47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdHJhbnNsYXRlICE9PSBcIm51bWJlclwiKVxuICAgICAgICByZXR1cm47XG4gICAgbGV0IG9yaWdpblBvaW50ID0gbWl4TnVtYmVyKG9yaWdpbkF4aXMubWluLCBvcmlnaW5BeGlzLm1heCwgb3JpZ2luKTtcbiAgICBpZiAoYXhpcyA9PT0gb3JpZ2luQXhpcylcbiAgICAgICAgb3JpZ2luUG9pbnQgLT0gdHJhbnNsYXRlO1xuICAgIGF4aXMubWluID0gcmVtb3ZlUG9pbnREZWx0YShheGlzLm1pbiwgdHJhbnNsYXRlLCBzY2FsZSwgb3JpZ2luUG9pbnQsIGJveFNjYWxlKTtcbiAgICBheGlzLm1heCA9IHJlbW92ZVBvaW50RGVsdGEoYXhpcy5tYXgsIHRyYW5zbGF0ZSwgc2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSk7XG59XG4vKipcbiAqIFJlbW92ZSBhIHRyYW5zZm9ybXMgZnJvbSBhbiBheGlzLiBUaGlzIGlzIGVzc2VudGlhbGx5IHRoZSBzdGVwcyBvZiBhcHBseUF4aXNUcmFuc2Zvcm1zIGluIHJldmVyc2VcbiAqIGFuZCBhY3RzIGFzIGEgYnJpZGdlIGJldHdlZW4gbW90aW9uIHZhbHVlcyBhbmQgcmVtb3ZlQXhpc0RlbHRhXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUF4aXNUcmFuc2Zvcm1zKGF4aXMsIHRyYW5zZm9ybXMsIFtrZXksIHNjYWxlS2V5LCBvcmlnaW5LZXldLCBvcmlnaW4sIHNvdXJjZUF4aXMpIHtcbiAgICByZW1vdmVBeGlzRGVsdGEoYXhpcywgdHJhbnNmb3Jtc1trZXldLCB0cmFuc2Zvcm1zW3NjYWxlS2V5XSwgdHJhbnNmb3Jtc1tvcmlnaW5LZXldLCB0cmFuc2Zvcm1zLnNjYWxlLCBvcmlnaW4sIHNvdXJjZUF4aXMpO1xufVxuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIG1vdGlvbiB2YWx1ZXMgd2Ugd2FudCB0byBhcHBseSBhcyB0cmFuc2xhdGlvbiwgc2NhbGUgYW5kIG9yaWdpbi5cbiAqL1xuY29uc3QgeEtleXMgPSBbXCJ4XCIsIFwic2NhbGVYXCIsIFwib3JpZ2luWFwiXTtcbmNvbnN0IHlLZXlzID0gW1wieVwiLCBcInNjYWxlWVwiLCBcIm9yaWdpbllcIl07XG4vKipcbiAqIFJlbW92ZSBhIHRyYW5zZm9ybXMgZnJvbSBhbiBib3guIFRoaXMgaXMgZXNzZW50aWFsbHkgdGhlIHN0ZXBzIG9mIGFwcGx5QXhpc0JveCBpbiByZXZlcnNlXG4gKiBhbmQgYWN0cyBhcyBhIGJyaWRnZSBiZXR3ZWVuIG1vdGlvbiB2YWx1ZXMgYW5kIHJlbW92ZUF4aXNEZWx0YVxuICovXG5mdW5jdGlvbiByZW1vdmVCb3hUcmFuc2Zvcm1zKGJveCwgdHJhbnNmb3Jtcywgb3JpZ2luQm94LCBzb3VyY2VCb3gpIHtcbiAgICByZW1vdmVBeGlzVHJhbnNmb3Jtcyhib3gueCwgdHJhbnNmb3JtcywgeEtleXMsIG9yaWdpbkJveCA/IG9yaWdpbkJveC54IDogdW5kZWZpbmVkLCBzb3VyY2VCb3ggPyBzb3VyY2VCb3gueCA6IHVuZGVmaW5lZCk7XG4gICAgcmVtb3ZlQXhpc1RyYW5zZm9ybXMoYm94LnksIHRyYW5zZm9ybXMsIHlLZXlzLCBvcmlnaW5Cb3ggPyBvcmlnaW5Cb3gueSA6IHVuZGVmaW5lZCwgc291cmNlQm94ID8gc291cmNlQm94LnkgOiB1bmRlZmluZWQpO1xufVxuXG5leHBvcnQgeyByZW1vdmVBeGlzRGVsdGEsIHJlbW92ZUF4aXNUcmFuc2Zvcm1zLCByZW1vdmVCb3hUcmFuc2Zvcm1zLCByZW1vdmVQb2ludERlbHRhIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWx0YS1yZW1vdmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/models.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createAxis: () => (/* binding */ createAxis),\n/* harmony export */ createAxisDelta: () => (/* binding */ createAxisDelta),\n/* harmony export */ createBox: () => (/* binding */ createBox),\n/* harmony export */ createDelta: () => (/* binding */ createDelta)\n/* harmony export */ });\nconst createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\n\n//# sourceMappingURL=models.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9tb2RlbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCw0QkFBNEIsZ0JBQWdCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRThEO0FBQy9EIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL2dlb21ldHJ5L21vZGVscy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY3JlYXRlQXhpc0RlbHRhID0gKCkgPT4gKHtcbiAgICB0cmFuc2xhdGU6IDAsXG4gICAgc2NhbGU6IDEsXG4gICAgb3JpZ2luOiAwLFxuICAgIG9yaWdpblBvaW50OiAwLFxufSk7XG5jb25zdCBjcmVhdGVEZWx0YSA9ICgpID0+ICh7XG4gICAgeDogY3JlYXRlQXhpc0RlbHRhKCksXG4gICAgeTogY3JlYXRlQXhpc0RlbHRhKCksXG59KTtcbmNvbnN0IGNyZWF0ZUF4aXMgPSAoKSA9PiAoeyBtaW46IDAsIG1heDogMCB9KTtcbmNvbnN0IGNyZWF0ZUJveCA9ICgpID0+ICh7XG4gICAgeDogY3JlYXRlQXhpcygpLFxuICAgIHk6IGNyZWF0ZUF4aXMoKSxcbn0pO1xuXG5leHBvcnQgeyBjcmVhdGVBeGlzLCBjcmVhdGVBeGlzRGVsdGEsIGNyZWF0ZUJveCwgY3JlYXRlRGVsdGEgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZGVscy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/utils.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/utils.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ aspectRatio: () => (/* binding */ aspectRatio),\n/* harmony export */ axisDeltaEquals: () => (/* binding */ axisDeltaEquals),\n/* harmony export */ axisEquals: () => (/* binding */ axisEquals),\n/* harmony export */ axisEqualsRounded: () => (/* binding */ axisEqualsRounded),\n/* harmony export */ boxEquals: () => (/* binding */ boxEquals),\n/* harmony export */ boxEqualsRounded: () => (/* binding */ boxEqualsRounded),\n/* harmony export */ isDeltaZero: () => (/* binding */ isDeltaZero)\n/* harmony export */ });\n/* harmony import */ var _delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./delta-calc.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction axisEquals(a, b) {\n return a.min === b.min && a.max === b.max;\n}\nfunction boxEquals(a, b) {\n return axisEquals(a.x, b.x) && axisEquals(a.y, b.y);\n}\nfunction axisEqualsRounded(a, b) {\n return (Math.round(a.min) === Math.round(b.min) &&\n Math.round(a.max) === Math.round(b.max));\n}\nfunction boxEqualsRounded(a, b) {\n return axisEqualsRounded(a.x, b.x) && axisEqualsRounded(a.y, b.y);\n}\nfunction aspectRatio(box) {\n return (0,_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__.calcLength)(box.x) / (0,_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__.calcLength)(box.y);\n}\nfunction axisDeltaEquals(a, b) {\n return (a.translate === b.translate &&\n a.scale === b.scale &&\n a.originPoint === b.originPoint);\n}\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS91dGlscy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLDJEQUFVLFVBQVUsMkRBQVU7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVpSDtBQUNqSCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS91dGlscy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FsY0xlbmd0aCB9IGZyb20gJy4vZGVsdGEtY2FsYy5tanMnO1xuXG5mdW5jdGlvbiBpc0F4aXNEZWx0YVplcm8oZGVsdGEpIHtcbiAgICByZXR1cm4gZGVsdGEudHJhbnNsYXRlID09PSAwICYmIGRlbHRhLnNjYWxlID09PSAxO1xufVxuZnVuY3Rpb24gaXNEZWx0YVplcm8oZGVsdGEpIHtcbiAgICByZXR1cm4gaXNBeGlzRGVsdGFaZXJvKGRlbHRhLngpICYmIGlzQXhpc0RlbHRhWmVybyhkZWx0YS55KTtcbn1cbmZ1bmN0aW9uIGF4aXNFcXVhbHMoYSwgYikge1xuICAgIHJldHVybiBhLm1pbiA9PT0gYi5taW4gJiYgYS5tYXggPT09IGIubWF4O1xufVxuZnVuY3Rpb24gYm94RXF1YWxzKGEsIGIpIHtcbiAgICByZXR1cm4gYXhpc0VxdWFscyhhLngsIGIueCkgJiYgYXhpc0VxdWFscyhhLnksIGIueSk7XG59XG5mdW5jdGlvbiBheGlzRXF1YWxzUm91bmRlZChhLCBiKSB7XG4gICAgcmV0dXJuIChNYXRoLnJvdW5kKGEubWluKSA9PT0gTWF0aC5yb3VuZChiLm1pbikgJiZcbiAgICAgICAgTWF0aC5yb3VuZChhLm1heCkgPT09IE1hdGgucm91bmQoYi5tYXgpKTtcbn1cbmZ1bmN0aW9uIGJveEVxdWFsc1JvdW5kZWQoYSwgYikge1xuICAgIHJldHVybiBheGlzRXF1YWxzUm91bmRlZChhLngsIGIueCkgJiYgYXhpc0VxdWFsc1JvdW5kZWQoYS55LCBiLnkpO1xufVxuZnVuY3Rpb24gYXNwZWN0UmF0aW8oYm94KSB7XG4gICAgcmV0dXJuIGNhbGNMZW5ndGgoYm94LngpIC8gY2FsY0xlbmd0aChib3gueSk7XG59XG5mdW5jdGlvbiBheGlzRGVsdGFFcXVhbHMoYSwgYikge1xuICAgIHJldHVybiAoYS50cmFuc2xhdGUgPT09IGIudHJhbnNsYXRlICYmXG4gICAgICAgIGEuc2NhbGUgPT09IGIuc2NhbGUgJiZcbiAgICAgICAgYS5vcmlnaW5Qb2ludCA9PT0gYi5vcmlnaW5Qb2ludCk7XG59XG5cbmV4cG9ydCB7IGFzcGVjdFJhdGlvLCBheGlzRGVsdGFFcXVhbHMsIGF4aXNFcXVhbHMsIGF4aXNFcXVhbHNSb3VuZGVkLCBib3hFcXVhbHMsIGJveEVxdWFsc1JvdW5kZWQsIGlzRGVsdGFaZXJvIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/utils.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DocumentProjectionNode: () => (/* binding */ DocumentProjectionNode)\n/* harmony export */ });\n/* harmony import */ var _events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../events/add-dom-event.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var _create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-projection-node.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs\");\n\n\n\nconst DocumentProjectionNode = (0,_create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__.createProjectionNode)({\n attachResizeListener: (ref, notify) => (0,_events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__.addDomEvent)(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body?.scrollLeft || 0,\n y: document.documentElement.scrollTop || document.body?.scrollTop || 0,\n }),\n checkIsScrollRoot: () => true,\n});\n\n\n//# sourceMappingURL=DocumentProjectionNode.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL0RvY3VtZW50UHJvamVjdGlvbk5vZGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE2RDtBQUNPOztBQUVwRSwrQkFBK0IsaUZBQW9CO0FBQ25ELDJDQUEyQyxzRUFBVztBQUN0RDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxDQUFDOztBQUVpQztBQUNsQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL0RvY3VtZW50UHJvamVjdGlvbk5vZGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZERvbUV2ZW50IH0gZnJvbSAnLi4vLi4vZXZlbnRzL2FkZC1kb20tZXZlbnQubWpzJztcbmltcG9ydCB7IGNyZWF0ZVByb2plY3Rpb25Ob2RlIH0gZnJvbSAnLi9jcmVhdGUtcHJvamVjdGlvbi1ub2RlLm1qcyc7XG5cbmNvbnN0IERvY3VtZW50UHJvamVjdGlvbk5vZGUgPSBjcmVhdGVQcm9qZWN0aW9uTm9kZSh7XG4gICAgYXR0YWNoUmVzaXplTGlzdGVuZXI6IChyZWYsIG5vdGlmeSkgPT4gYWRkRG9tRXZlbnQocmVmLCBcInJlc2l6ZVwiLCBub3RpZnkpLFxuICAgIG1lYXN1cmVTY3JvbGw6ICgpID0+ICh7XG4gICAgICAgIHg6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IHx8IGRvY3VtZW50LmJvZHk/LnNjcm9sbExlZnQgfHwgMCxcbiAgICAgICAgeTogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5Py5zY3JvbGxUb3AgfHwgMCxcbiAgICB9KSxcbiAgICBjaGVja0lzU2Nyb2xsUm9vdDogKCkgPT4gdHJ1ZSxcbn0pO1xuXG5leHBvcnQgeyBEb2N1bWVudFByb2plY3Rpb25Ob2RlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Eb2N1bWVudFByb2plY3Rpb25Ob2RlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HTMLProjectionNode: () => (/* binding */ HTMLProjectionNode),\n/* harmony export */ rootProjectionNode: () => (/* binding */ rootProjectionNode)\n/* harmony export */ });\n/* harmony import */ var _create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-projection-node.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs\");\n/* harmony import */ var _DocumentProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DocumentProjectionNode.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs\");\n\n\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = (0,_create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__.createProjectionNode)({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new _DocumentProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_1__.DocumentProjectionNode({});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\n\n//# sourceMappingURL=HTMLProjectionNode.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL0hUTUxQcm9qZWN0aW9uTm9kZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFvRTtBQUNFOztBQUV0RTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsaUZBQW9CO0FBQy9DO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EscUNBQXFDLCtFQUFzQixHQUFHO0FBQzlEO0FBQ0Esc0NBQXNDLG9CQUFvQjtBQUMxRDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLENBQUM7O0FBRWlEO0FBQ2xEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL25vZGUvSFRNTFByb2plY3Rpb25Ob2RlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVQcm9qZWN0aW9uTm9kZSB9IGZyb20gJy4vY3JlYXRlLXByb2plY3Rpb24tbm9kZS5tanMnO1xuaW1wb3J0IHsgRG9jdW1lbnRQcm9qZWN0aW9uTm9kZSB9IGZyb20gJy4vRG9jdW1lbnRQcm9qZWN0aW9uTm9kZS5tanMnO1xuXG5jb25zdCByb290UHJvamVjdGlvbk5vZGUgPSB7XG4gICAgY3VycmVudDogdW5kZWZpbmVkLFxufTtcbmNvbnN0IEhUTUxQcm9qZWN0aW9uTm9kZSA9IGNyZWF0ZVByb2plY3Rpb25Ob2RlKHtcbiAgICBtZWFzdXJlU2Nyb2xsOiAoaW5zdGFuY2UpID0+ICh7XG4gICAgICAgIHg6IGluc3RhbmNlLnNjcm9sbExlZnQsXG4gICAgICAgIHk6IGluc3RhbmNlLnNjcm9sbFRvcCxcbiAgICB9KSxcbiAgICBkZWZhdWx0UGFyZW50OiAoKSA9PiB7XG4gICAgICAgIGlmICghcm9vdFByb2plY3Rpb25Ob2RlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50Tm9kZSA9IG5ldyBEb2N1bWVudFByb2plY3Rpb25Ob2RlKHt9KTtcbiAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5tb3VudCh3aW5kb3cpO1xuICAgICAgICAgICAgZG9jdW1lbnROb2RlLnNldE9wdGlvbnMoeyBsYXlvdXRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByb290UHJvamVjdGlvbk5vZGUuY3VycmVudCA9IGRvY3VtZW50Tm9kZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm9vdFByb2plY3Rpb25Ob2RlLmN1cnJlbnQ7XG4gICAgfSxcbiAgICByZXNldFRyYW5zZm9ybTogKGluc3RhbmNlLCB2YWx1ZSkgPT4ge1xuICAgICAgICBpbnN0YW5jZS5zdHlsZS50cmFuc2Zvcm0gPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiBcIm5vbmVcIjtcbiAgICB9LFxuICAgIGNoZWNrSXNTY3JvbGxSb290OiAoaW5zdGFuY2UpID0+IEJvb2xlYW4od2luZG93LmdldENvbXB1dGVkU3R5bGUoaW5zdGFuY2UpLnBvc2l0aW9uID09PSBcImZpeGVkXCIpLFxufSk7XG5cbmV4cG9ydCB7IEhUTUxQcm9qZWN0aW9uTm9kZSwgcm9vdFByb2plY3Rpb25Ob2RlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1IVE1MUHJvamVjdGlvbk5vZGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cleanDirtyNodes: () => (/* binding */ cleanDirtyNodes),\n/* harmony export */ createProjectionNode: () => (/* binding */ createProjectionNode),\n/* harmony export */ mixAxis: () => (/* binding */ mixAxis),\n/* harmony export */ mixAxisDelta: () => (/* binding */ mixAxisDelta),\n/* harmony export */ mixBox: () => (/* binding */ mixBox),\n/* harmony export */ propagateDirtyNodes: () => (/* binding */ propagateDirtyNodes)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _animation_animate_single_value_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../../animation/animate/single-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/animate/single-value.mjs\");\n/* harmony import */ var _animation_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../animation/optimized-appear/get-appear-id.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs\");\n/* harmony import */ var _animation_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../animation/utils/get-value-transition.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../frameloop/microtask.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../styles/scale-correction.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs\");\n/* harmony import */ var _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../stats/animation-count.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../stats/buffer.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n/* harmony import */ var _utils_delay_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/delay.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/delay.mjs\");\n/* harmony import */ var _utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/is-svg-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n/* harmony import */ var _utils_is_svg_svg_element_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/is-svg-svg-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs\");\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../../value/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../../value/utils/resolve-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs\");\n/* harmony import */ var _animation_mix_values_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../animation/mix-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs\");\n/* harmony import */ var _geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../geometry/copy.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/copy.mjs\");\n/* harmony import */ var _geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../geometry/delta-apply.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\");\n/* harmony import */ var _geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geometry/delta-calc.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n/* harmony import */ var _geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../geometry/delta-remove.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs\");\n/* harmony import */ var _geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry/models.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry/utils.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/utils.mjs\");\n/* harmony import */ var _shared_stack_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../shared/stack.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/shared/stack.mjs\");\n/* harmony import */ var _styles_transform_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../styles/transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/transform.mjs\");\n/* harmony import */ var _utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../utils/each-axis.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs\");\n/* harmony import */ var _utils_flat_tree_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/flat-tree.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs\");\n/* harmony import */ var _utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/has-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs\");\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/state.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst metrics = {\n nodes: 0,\n calculatedTargetDeltas: 0,\n calculatedProjections: 0,\n};\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\nfunction resetDistortingTransform(key, visualElement, values, sharedAnimationValues) {\n const { latestValues } = visualElement;\n // Record the distorting transform and then temporarily set it to 0\n if (latestValues[key]) {\n values[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n if (sharedAnimationValues) {\n sharedAnimationValues[key] = 0;\n }\n }\n}\nfunction cancelTreeOptimisedTransformAnimations(projectionNode) {\n projectionNode.hasCheckedOptimisedAppear = true;\n if (projectionNode.root === projectionNode)\n return;\n const { visualElement } = projectionNode.options;\n if (!visualElement)\n return;\n const appearId = (0,_animation_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_0__.getOptimisedAppearId)(visualElement);\n if (window.MotionHasOptimisedAnimation(appearId, \"transform\")) {\n const { layout, layoutId } = projectionNode.options;\n window.MotionCancelOptimisedAnimation(appearId, \"transform\", _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame, !(layout || layoutId));\n }\n const { parent } = projectionNode;\n if (parent && !parent.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(parent);\n }\n}\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(latestValues = {}, parent = defaultParent?.()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n this.animationCommitId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Flag to true if we think the projection calculations for this node needs\n * recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Flag to true if the layout *or* transform has changed. This then gets propagated\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\n */\n this.isSharedProjectionDirty = false;\n /**\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\n * respected by shared nodes.\n */\n this.isTransformDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * Store whether this node has been checked for optimised appear animations. As\n * effects fire bottom-up, and we want to look up the tree for appear animations,\n * this makes sure we only check each path once, stopping at nodes that\n * have already been checked.\n */\n this.hasCheckedOptimisedAppear = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n this.hasTreeAnimated = false;\n this.layoutVersion = 0;\n // Note: Currently only running on root node\n this.updateScheduled = false;\n this.scheduleUpdate = () => this.update();\n this.projectionUpdateScheduled = false;\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n this.projectionUpdateScheduled = false;\n /**\n * Reset debug counts. Manually resetting rather than creating a new\n * object each frame.\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.nodes =\n metrics.calculatedTargetDeltas =\n metrics.calculatedProjections =\n 0;\n }\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n this.nodes.forEach(cleanDirtyNodes);\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.addProjectionMetrics) {\n _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.addProjectionMetrics(metrics);\n }\n };\n /**\n * Frame calculations\n */\n this.resolvedRelativeTargetAt = 0.0;\n this.linkedParentVersion = 0;\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new _utils_flat_tree_mjs__WEBPACK_IMPORTED_MODULE_3__.FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new motion_utils__WEBPACK_IMPORTED_MODULE_4__.SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager && subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n /**\n * Lifecycles\n */\n mount(instance) {\n if (this.instance)\n return;\n this.isSVG = (0,_utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_5__.isSVGElement)(instance) && !(0,_utils_is_svg_svg_element_mjs__WEBPACK_IMPORTED_MODULE_6__.isSVGSVGElement)(instance);\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n this.parent && this.parent.children.add(this);\n if (this.root.hasTreeAnimated && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n let innerWidth = 0;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n // Set initial innerWidth in a frame.read callback to batch the read\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.read(() => {\n innerWidth = window.innerWidth;\n });\n attachResizeListener(instance, () => {\n const newInnerWidth = window.innerWidth;\n if (newInnerWidth === innerWidth)\n return;\n innerWidth = newInnerWidth;\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = (0,_utils_delay_mjs__WEBPACK_IMPORTED_MODULE_7__.delay)(resizeUnblockUpdate, 250);\n if (_state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize) {\n _state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeLayoutChanged, layout: newLayout, }) => {\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = this.options.transition ||\n visualElement.getDefaultTransition() ||\n defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const hasTargetChanged = !this.targetLayout ||\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEqualsRounded)(this.targetLayout, newLayout);\n /*\n * Note: Disabled to fix relative animations always triggering new\n * layout animations. If this causes further issues, we can try\n * a different approach to detecting relative target changes.\n */\n // || hasRelativeLayoutChanged\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeLayoutChanged;\n if (this.options.layoutRoot ||\n this.resumeFrom ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (hasTargetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n const animationOptions = {\n ...(0,_animation_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_10__.getValueTransition)(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion ||\n this.options.layoutRoot) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n /**\n * Set animation origin after starting animation to avoid layout jump\n * caused by stopping previous layout animation\n */\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never committed to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged) {\n finishAnimation(this);\n }\n if (this.isLead() && this.options.onExitComplete) {\n this.options.onExitComplete();\n }\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n const stack = this.getStack();\n stack && stack.remove(this);\n this.parent && this.parent.children.delete(this);\n this.instance = undefined;\n this.eventHandlers.clear();\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n return (this.isAnimationBlocked ||\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n this.nodes && this.nodes.forEach(resetSkewAndRotation);\n this.animationId++;\n }\n getTransformTemplate() {\n const { visualElement } = this.options;\n return visualElement && visualElement.getProps().transformTemplate;\n }\n willUpdate(shouldNotifyListeners = true) {\n this.root.hasTreeAnimated = true;\n if (this.root.isUpdateBlocked()) {\n this.options.onExitComplete && this.options.onExitComplete();\n return;\n }\n /**\n * If we're running optimised appear animations then these must be\n * cancelled before measuring the DOM. This is so we can measure\n * the true layout of the element rather than the WAAPI animation\n * which will be unaffected by the resetSkewAndRotate step.\n *\n * Note: This is a DOM write. Worst case scenario is this is sandwiched\n * between other snapshot reads which will cause unnecessary style recalculations.\n * This has to happen here though, as we don't yet know which nodes will need\n * snapshots in startUpdate(), but we only want to cancel optimised animations\n * if a layout animation measurement is actually going to be affected by them.\n */\n if (window.MotionCancelOptimisedAnimation &&\n !this.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(this);\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n if (node.options.layoutRoot) {\n node.willUpdate(false);\n }\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = this.getTransformTemplate();\n this.prevTransformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n update() {\n this.updateScheduled = false;\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n /**\n * If this is a repeat of didUpdate then ignore the animation.\n */\n if (this.animationId <= this.animationCommitId) {\n this.nodes.forEach(clearIsLayoutDirty);\n return;\n }\n this.animationCommitId = this.animationId;\n if (!this.isUpdating) {\n this.nodes.forEach(clearIsLayoutDirty);\n }\n else {\n this.isUpdating = false;\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n }\n this.clearAllSnapshots();\n /**\n * Manually flush any pending updates. Ideally\n * we could leave this to the following requestAnimationFrame but this seems\n * to leave a flash of incorrectly styled content.\n */\n const now = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_11__.time.now();\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.delta = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.clamp)(0, 1000 / 60, now - _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp = now;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.isProcessing = true;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameSteps.update.process(_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameSteps.preRender.process(_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameSteps.render.process(_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.isProcessing = false;\n }\n didUpdate() {\n if (!this.updateScheduled) {\n this.updateScheduled = true;\n _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_13__.microtask.read(this.scheduleUpdate);\n }\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n if (!this.projectionUpdateScheduled) {\n this.projectionUpdateScheduled = true;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.preRender(this.updateProjection, false, true);\n }\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n if (this.snapshot &&\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.snapshot.measuredBox.x) &&\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.snapshot.measuredBox.y)) {\n this.snapshot = undefined;\n }\n }\n updateLayout() {\n if (!this.instance)\n return;\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutVersion++;\n this.layoutCorrected = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n const { visualElement } = this.options;\n visualElement &&\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement && this.instance) {\n const isRoot = checkIsScrollRoot(this.instance);\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot,\n offset: measureScroll(this.instance),\n wasRoot: this.scroll ? this.scroll.isRoot : isRoot,\n };\n }\n }\n resetTransform() {\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty ||\n this.shouldResetTransform ||\n this.options.alwaysMeasureLayout;\n const hasProjection = this.projectionDelta && !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.isDeltaZero)(this.projectionDelta);\n const transformTemplate = this.getTransformTemplate();\n const transformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n this.instance &&\n (hasProjection ||\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n const { visualElement } = this.options;\n if (!visualElement)\n return (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const box = visualElement.measureViewportBox();\n const wasInScrollRoot = this.scroll?.wasRoot || this.path.some(checkNodeWasScrollRoot);\n if (!wasInScrollRoot) {\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(box.x, scroll.offset.x);\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(box.y, scroll.offset.y);\n }\n }\n return box;\n }\n removeElementScroll(box) {\n const boxWithoutScroll = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutScroll, box);\n if (this.scroll?.wasRoot) {\n return boxWithoutScroll;\n }\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.wasRoot) {\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutScroll, box);\n }\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(boxWithoutScroll.x, scroll.offset.x);\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(node.latestValues))\n continue;\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, node.latestValues);\n }\n if ((0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n const boxWithoutTransform = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(node.latestValues))\n continue;\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasScale)(node.latestValues) && node.updateSnapshot();\n const sourceBox = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const nodeBox = node.measurePageBox();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(sourceBox, nodeBox);\n (0,_geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__.removeBoxTransforms)(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\n }\n if ((0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\n (0,_geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__.removeBoxTransforms)(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n this.isProjectionDirty = true;\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n forceRelativeParentToResolveTarget() {\n if (!this.relativeParent)\n return;\n /**\n * If the parent target isn't up-to-date, force it to update.\n * This is an unfortunate de-optimisation as it means any updating relative\n * projection will cause all the relative parents to recalculate back\n * up the tree.\n */\n if (this.relativeParent.resolvedRelativeTargetAt !==\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp) {\n this.relativeParent.resolveTargetDelta(true);\n }\n }\n resolveTargetDelta(forceRecalculation = false) {\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n const canSkip = !(forceRecalculation ||\n (isShared && this.isSharedProjectionDirty) ||\n this.isProjectionDirty ||\n this.parent?.isProjectionDirty ||\n this.attemptToResolveRelativeTarget ||\n this.root.updateBlockedByResize);\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n this.resolvedRelativeTargetAt = _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n this.linkedParentVersion !== relativeParent.layoutVersion &&\n !relativeParent.options.layoutRoot) {\n this.removeRelativeTarget();\n }\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n if (!this.targetDelta && !this.relativeTarget) {\n if (relativeParent && relativeParent.layout) {\n this.createRelativeTarget(relativeParent, this.layout.layoutBox, relativeParent.layout.layoutBox);\n }\n else {\n this.removeRelativeTarget();\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n this.targetWithTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.relativeParent &&\n this.relativeParent.target) {\n this.forceRelativeParentToResolveTarget();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativeBox)(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.target, this.layout.layoutBox);\n }\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.applyBoxDelta)(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target &&\n this.animationProgress !== 1) {\n this.createRelativeTarget(relativeParent, this.target, relativeParent.target);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * Increase debug counter for resolved target deltas\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.calculatedTargetDeltas++;\n }\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasScale)(this.parent.latestValues) ||\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.has2DTranslate)(this.parent.latestValues)) {\n return undefined;\n }\n if (this.parent.isProjecting()) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n isProjecting() {\n return Boolean((this.relativeTarget ||\n this.targetDelta ||\n this.options.layoutRoot) &&\n this.layout);\n }\n createRelativeTarget(relativeParent, layout, parentLayout) {\n this.relativeParent = relativeParent;\n this.linkedParentVersion = relativeParent.layoutVersion;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n this.relativeTargetOrigin = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(this.relativeTargetOrigin, layout, parentLayout);\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.relativeTarget, this.relativeTargetOrigin);\n }\n removeRelativeTarget() {\n this.relativeParent = this.relativeTarget = undefined;\n }\n calcProjection() {\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n /**\n * If this is a normal layout animation and neither this node nor its nearest projecting\n * is dirty then we can't skip.\n */\n if (this.isProjectionDirty || this.parent?.isProjectionDirty) {\n canSkip = false;\n }\n /**\n * If this is a shared layout animation and this node's shared projection is dirty then\n * we can't skip.\n */\n if (isShared &&\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\n canSkip = false;\n }\n /**\n * If we have resolved the target this frame we must recalculate the\n * projection to ensure it visually represents the internal calculations.\n */\n if (this.resolvedRelativeTargetAt === _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp) {\n canSkip = false;\n }\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Record previous tree scales before updating.\n */\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.applyTreeDeltas)(this.layoutCorrected, this.treeScale, this.path, isShared);\n /**\n * If this layer needs to perform scale correction but doesn't have a target,\n * use the layout as the target.\n */\n if (lead.layout &&\n !lead.target &&\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n lead.target = lead.layout.layoutBox;\n lead.targetWithTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n }\n const { target } = lead;\n if (!target) {\n /**\n * If we don't have a target to project into, but we were previously\n * projecting, we want to remove the stored transform and schedule\n * a render to ensure the elements reflect the removed transform.\n */\n if (this.prevProjectionDelta) {\n this.createProjectionDeltas();\n this.scheduleRender();\n }\n return;\n }\n if (!this.projectionDelta || !this.prevProjectionDelta) {\n this.createProjectionDeltas();\n }\n else {\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyAxisDeltaInto)(this.prevProjectionDelta.x, this.projectionDelta.x);\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyAxisDeltaInto)(this.prevProjectionDelta.y, this.projectionDelta.y);\n }\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n if (this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY ||\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.axisDeltaEquals)(this.projectionDelta.x, this.prevProjectionDelta.x) ||\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.axisDeltaEquals)(this.projectionDelta.y, this.prevProjectionDelta.y)) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n /**\n * Increase debug counter for recalculated projections\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.calculatedProjections++;\n }\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n this.options.visualElement?.scheduleRender();\n if (notifyAll) {\n const stack = this.getStack();\n stack && stack.scheduleRender();\n }\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n createProjectionDeltas() {\n this.prevProjectionDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n this.projectionDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n this.projectionDeltaWithTransform = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n const snapshot = this.snapshot;\n const snapshotLatestValues = snapshot ? snapshot.latestValues : {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n if (!this.relativeParent ||\n !this.relativeParent.options.layoutRoot) {\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n }\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const snapshotSource = snapshot ? snapshot.source : undefined;\n const layoutSource = this.layout ? this.layout.source : undefined;\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n const stack = this.getStack();\n const isOnlyMember = !stack || stack.members.length <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n let prevRelativeTarget;\n this.mixTargetDelta = (latest) => {\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n this.relativeParent &&\n this.relativeParent.layout) {\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n /**\n * If this is an unchanged relative target we can consider the\n * projection not dirty.\n */\n if (prevRelativeTarget &&\n (0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEquals)(this.relativeTarget, prevRelativeTarget)) {\n this.isProjectionDirty = false;\n }\n if (!prevRelativeTarget)\n prevRelativeTarget = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(prevRelativeTarget, this.relativeTarget);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n (0,_animation_mix_values_mjs__WEBPACK_IMPORTED_MODULE_20__.mixValues)(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\n }\n startAnimation(options) {\n this.notifyListeners(\"animationStart\");\n this.currentAnimation?.stop();\n this.resumingFrom?.currentAnimation?.stop();\n if (this.pendingAnimation) {\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.update(() => {\n _state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize = true;\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout++;\n this.motionValue || (this.motionValue = (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_22__.motionValue)(0));\n this.motionValue.jump(0, false);\n this.currentAnimation = (0,_animation_animate_single_value_mjs__WEBPACK_IMPORTED_MODULE_23__.animateSingleValue)(this.motionValue, [0, 1000], {\n ...options,\n velocity: 0,\n isSync: true,\n onUpdate: (latest) => {\n this.mixTargetDelta(latest);\n options.onUpdate && options.onUpdate(latest);\n },\n onStop: () => {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout--;\n },\n onComplete: () => {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout--;\n options.onComplete && options.onComplete();\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n const stack = this.getStack();\n stack && stack.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n if (this.currentAnimation) {\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const xLength = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new _shared_stack_mjs__WEBPACK_IMPORTED_MODULE_24__.NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n const config = node.options.initialPromotionConfig;\n node.promote({\n transition: config ? config.transition : undefined,\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\n ? config.shouldPreserveFollowOpacity(node)\n : undefined,\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n const { layoutId } = this.options;\n return layoutId ? this.getStack()?.lead || this : this;\n }\n getPrevLead() {\n const { layoutId } = this.options;\n return layoutId ? this.getStack()?.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetSkewAndRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected skew or rotation values, we can early return without a forced render.\n let hasDistortingTransform = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.z ||\n latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ ||\n latestValues.skewX ||\n latestValues.skewY) {\n hasDistortingTransform = true;\n }\n // If there's no distorting values, we don't need to do any more.\n if (!hasDistortingTransform)\n return;\n const resetValues = {};\n if (latestValues.z) {\n resetDistortingTransform(\"z\", visualElement, resetValues, this.animationValues);\n }\n // Check the skew and rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n }\n // Force a render of this element to apply the transform with all skews and rotations\n // set to 0.\n visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n if (this.animationValues) {\n this.animationValues[key] = resetValues[key];\n }\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n applyProjectionStyles(targetStyle, // CSSStyleDeclaration - doesn't allow numbers to be assigned to properties\n styleProp) {\n if (!this.instance || this.isSVG)\n return;\n if (!this.isVisible) {\n targetStyle.visibility = \"hidden\";\n return;\n }\n const transformTemplate = this.getTransformTemplate();\n if (this.needsReset) {\n this.needsReset = false;\n targetStyle.visibility = \"\";\n targetStyle.opacity = \"\";\n targetStyle.pointerEvents =\n (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\";\n targetStyle.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n if (this.options.layoutId) {\n targetStyle.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n targetStyle.pointerEvents =\n (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\";\n }\n if (this.hasProjected && !(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\n targetStyle.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return;\n }\n targetStyle.visibility = \"\";\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n let transform = (0,_styles_transform_mjs__WEBPACK_IMPORTED_MODULE_26__.buildProjectionTransform)(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n transform = transformTemplate(valuesToRender, transform);\n }\n targetStyle.transform = transform;\n const { x, y } = this.projectionDelta;\n targetStyle.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n targetStyle.opacity =\n lead === this\n ? valuesToRender.opacity ??\n this.latestValues.opacity ??\n 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n targetStyle.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__.scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo, isCSSVariable } = _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__.scaleCorrectors[key];\n /**\n * Only apply scale correction to the value if we have an\n * active projection transform. Otherwise these values become\n * vulnerable to distortion if the element changes size without\n * a corresponding layout animation.\n */\n const corrected = transform === \"none\"\n ? valuesToRender[key]\n : correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n targetStyle[applyTo[i]] = corrected;\n }\n }\n else {\n // If this is a CSS variable, set it directly on the instance.\n // Replacing this function from creating styles to setting them\n // would be a good place to remove per frame object creation\n if (isCSSVariable) {\n this.options.visualElement.renderState.vars[key] = corrected;\n }\n else {\n targetStyle[key] = corrected;\n }\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n targetStyle.pointerEvents =\n lead === this\n ? (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\"\n : \"none\";\n }\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => node.currentAnimation?.stop());\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n const snapshot = node.resumeFrom?.snapshot || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n (0,_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__.eachAxis)((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n (0,_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__.eachAxis)((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n /**\n * Ensure relative target gets resized and rerendererd\n */\n if (node.relativeTarget && !node.currentAnimation) {\n node.isProjectionDirty = true;\n node.relativeTarget[axis].max =\n node.relativeTarget[axis].min + length;\n }\n });\n }\n const layoutDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n if (isShared) {\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.isDeltaZero)(layoutDelta);\n let hasRelativeLayoutChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeLayout, layout, parentLayout.layoutBox);\n if (!(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEqualsRounded)(relativeSnapshot, relativeLayout)) {\n hasRelativeLayoutChanged = true;\n }\n if (relativeParent.options.layoutRoot) {\n node.relativeTarget = relativeLayout;\n node.relativeTargetOrigin = relativeSnapshot;\n node.relativeParent = relativeParent;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeLayoutChanged,\n });\n }\n else if (node.isLead()) {\n const { onExitComplete } = node.options;\n onExitComplete && onExitComplete();\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Increase debug counter for nodes encountered this frame\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.nodes++;\n }\n if (!node.parent)\n return;\n /**\n * If this node isn't projecting, propagate isProjectionDirty. It will have\n * no performance impact but it will allow the next child that *is* projecting\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\n * correcting.\n */\n if (!node.isProjecting()) {\n node.isProjectionDirty = node.parent.isProjectionDirty;\n }\n /**\n * Propagate isSharedProjectionDirty and isTransformDirty\n * throughout the whole tree. A future revision can take another look at\n * this but for safety we still recalcualte shared nodes.\n */\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\n node.parent.isProjectionDirty ||\n node.parent.isSharedProjectionDirty));\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n node.isProjectionDirty =\n node.isSharedProjectionDirty =\n node.isTransformDirty =\n false;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetSkewAndRotation(node) {\n node.resetSkewAndRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(delta.translate, 0, p);\n output.scale = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(from.min, to.min, p);\n output.max = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().includes(string);\n/**\n * Measured bounding boxes must be rounded in Safari and\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\n * can appear to jump.\n */\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\n ? Math.round\n : motion_utils__WEBPACK_IMPORTED_MODULE_30__.noop;\nfunction roundAxis(axis) {\n // Round to the nearest .5 pixels to support subpixel layouts\n axis.min = roundPoint(axis.min);\n axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.isNear)((0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.aspectRatio)(snapshot), (0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.aspectRatio)(layout), 0.2)));\n}\nfunction checkNodeWasScrollRoot(node) {\n return node !== node.root && node.scroll?.wasRoot;\n}\n\n\n//# sourceMappingURL=create-projection-node.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL2NyZWF0ZS1wcm9qZWN0aW9uLW5vZGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBZ0U7QUFDYztBQUNZO0FBQ047QUFDMUI7QUFDTDtBQUNZO0FBQ0U7QUFDZDtBQUNQO0FBQ2dCO0FBQ087QUFDZDtBQUNIO0FBQzRCO0FBQ3hCO0FBQ2M7QUFDb0M7QUFDVztBQUNsRDtBQUNIO0FBQytDO0FBQy9EO0FBQ21CO0FBQ2pCO0FBQ0E7QUFDa0M7QUFDaEM7QUFDa0M7O0FBRXRGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxlQUFlO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxnQkFBZ0I7QUFDNUI7QUFDQTtBQUNBLHFCQUFxQixtR0FBb0I7QUFDekM7QUFDQSxnQkFBZ0IsbUJBQW1CO0FBQ25DLHFFQUFxRSx1REFBSztBQUMxRTtBQUNBLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx3RkFBd0Y7QUFDeEg7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDBEQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwwREFBVztBQUMvQixvQkFBb0IsMERBQVc7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLDBEQUFRO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRCw2REFBbUI7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsdUVBQVksZUFBZSw4RUFBZTtBQUNuRTtBQUNBLG9CQUFvQixrQ0FBa0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQUs7QUFDckI7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsdURBQUs7QUFDdkMsd0JBQXdCLDZEQUFxQjtBQUM3Qyx3QkFBd0IsNkRBQXFCO0FBQzdDO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRCx1RUFBdUU7QUFDN0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHFEQUFxRDtBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLHFFQUFnQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiw4RkFBa0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksaUVBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHNCQUFzQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQkFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMkRBQUk7QUFDNUIsWUFBWSwyREFBUyxTQUFTLG9EQUFLLHFCQUFxQiwyREFBUztBQUNqRSxZQUFZLDJEQUFTO0FBQ3JCLFlBQVksMkRBQVM7QUFDckIsWUFBWSw0REFBVSxnQkFBZ0IsMkRBQVM7QUFDL0MsWUFBWSw0REFBVSxtQkFBbUIsMkRBQVM7QUFDbEQsWUFBWSw0REFBVSxnQkFBZ0IsMkRBQVM7QUFDL0MsWUFBWSwyREFBUztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixnRUFBUztBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQUs7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksdURBQUs7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixxRUFBVTtBQUMzQixpQkFBaUIscUVBQVU7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msc0JBQXNCO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLGdFQUFTO0FBQzVDO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJELGdFQUFXO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsdUVBQVk7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0EsdUJBQXVCLGdFQUFTO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFNBQVM7QUFDakM7QUFDQSxvQkFBb0IseUVBQWE7QUFDakMsb0JBQW9CLHlFQUFhO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsZ0VBQVM7QUFDOUMsWUFBWSxnRUFBVztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQSx3QkFBd0Isa0JBQWtCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnRUFBVztBQUNuQztBQUNBLG9CQUFvQix5RUFBYTtBQUNqQyxvQkFBb0IseUVBQWE7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxnRUFBUztBQUM1QyxZQUFZLGdFQUFXO0FBQ3ZCLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix3RUFBWTtBQUNoQztBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EscUJBQXFCLHVFQUFZO0FBQ2pDO0FBQ0EsZ0JBQWdCLHdFQUFZO0FBQzVCO0FBQ0EsZ0JBQWdCLHVFQUFZO0FBQzVCLGdCQUFnQix3RUFBWTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxnRUFBUztBQUNqRCxZQUFZLGdFQUFXO0FBQ3ZCLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLHVFQUFZO0FBQ2pDO0FBQ0EsZ0JBQWdCLG1FQUFRO0FBQ3hCLGtDQUFrQyxnRUFBUztBQUMzQztBQUNBLGdCQUFnQixnRUFBVztBQUMzQixnQkFBZ0IsZ0ZBQW1CO0FBQ25DO0FBQ0EsZ0JBQWdCLHVFQUFZO0FBQzVCLGdCQUFnQixnRkFBbUI7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMkRBQVM7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQkFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QywyREFBUztBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGdFQUFTO0FBQ3ZDLDRDQUE0QyxnRUFBUztBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMEVBQWU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0VBQVc7QUFDL0I7QUFDQSxnQkFBZ0IseUVBQWE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixnRUFBVztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMERBQVc7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtRUFBUTtBQUN4QixnQkFBZ0IseUVBQWM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsZ0VBQVM7QUFDM0Msd0NBQXdDLGdFQUFTO0FBQ2pELFlBQVksK0VBQW9CO0FBQ2hDLFlBQVksZ0VBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELDJEQUFTO0FBQzNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLG1CQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksZ0VBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwyRUFBZTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLGdFQUFTO0FBQ3JEO0FBQ0Esb0JBQW9CLFNBQVM7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isc0VBQWlCO0FBQ2pDLGdCQUFnQixzRUFBaUI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHVFQUFZO0FBQ3hCO0FBQ0E7QUFDQSxpQkFBaUIsb0VBQWU7QUFDaEMsaUJBQWlCLG9FQUFlO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBEQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLGtFQUFXO0FBQ2xELG1DQUFtQyxrRUFBVztBQUM5QyxnREFBZ0Qsa0VBQVc7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEMsZ0NBQWdDLGtFQUFXO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsZ0VBQVM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLCtFQUFvQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsOERBQVM7QUFDakM7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLGdFQUFTO0FBQ3RELG9CQUFvQixnRUFBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IscUVBQVM7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlFQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLHVEQUFLO0FBQ3pDLGdCQUFnQiw2REFBcUI7QUFDckMsZ0JBQWdCLHlFQUFnQjtBQUNoQyx3REFBd0QsOERBQVc7QUFDbkU7QUFDQSx3Q0FBd0Msd0ZBQWtCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLHdCQUF3Qix5RUFBZ0I7QUFDeEMscUJBQXFCO0FBQ3JCO0FBQ0Esd0JBQXdCLHlFQUFnQjtBQUN4QztBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLHFEQUFxRDtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLGdFQUFTO0FBQ2pELGdDQUFnQyxxRUFBVTtBQUMxQztBQUNBO0FBQ0EsZ0NBQWdDLHFFQUFVO0FBQzFDO0FBQ0E7QUFDQTtBQUNBLFlBQVksZ0VBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksd0VBQVk7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx1RUFBWTtBQUN4QjtBQUNBO0FBQ0E7QUFDQSxtREFBbUQseURBQVM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixpREFBaUQsSUFBSTtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLFlBQVk7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixlQUFlO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsMEJBQTBCO0FBQ3RELGtEQUFrRCxpQkFBaUI7QUFDbkUsZ0RBQWdELGlCQUFpQjtBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDBGQUFrQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiwwRkFBa0I7QUFDMUM7QUFDQSwwQ0FBMEMsdUVBQVk7QUFDdEQ7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixnRkFBd0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQiw2Q0FBNkMsZUFBZSxJQUFJLGVBQWU7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsMEVBQWU7QUFDN0M7QUFDQTtBQUNBLHdCQUF3QixrQ0FBa0MsRUFBRSwwRUFBZTtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLFNBQVM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiwwRkFBa0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixpREFBaUQ7QUFDakUsZ0JBQWdCLGdCQUFnQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksK0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHFFQUFVO0FBQ3pDO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLFlBQVksK0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHFFQUFVO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLDRCQUE0QixrRUFBVztBQUN2QyxRQUFRLHVFQUFZO0FBQ3BCLDRCQUE0QixrRUFBVztBQUN2QztBQUNBLFlBQVksdUVBQVk7QUFDeEI7QUFDQTtBQUNBLFlBQVksdUVBQVk7QUFDeEI7QUFDQSxrQ0FBa0MsZ0VBQVc7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixpREFBaUQ7QUFDekU7QUFDQSw2Q0FBNkMsZ0VBQVM7QUFDdEQsb0JBQW9CLCtFQUFvQjtBQUN4QywyQ0FBMkMsZ0VBQVM7QUFDcEQsb0JBQW9CLCtFQUFvQjtBQUN4Qyx5QkFBeUIscUVBQWdCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLGdCQUFnQixpQkFBaUI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvRUFBb0UsY0FBYztBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwwREFBVztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGdCQUFnQjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLGlFQUFTO0FBQ2hDLG1CQUFtQixpRUFBUztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixpRUFBUztBQUMxQixpQkFBaUIsaUVBQVM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLCtDQUFJO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxpRUFBTSxDQUFDLGdFQUFXLFlBQVksZ0VBQVc7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRXFHO0FBQ3JHIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL25vZGUvY3JlYXRlLXByb2plY3Rpb24tbm9kZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uTWFuYWdlciwgY2xhbXAsIG5vb3AgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgYW5pbWF0ZVNpbmdsZVZhbHVlIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL2FuaW1hdGUvc2luZ2xlLXZhbHVlLm1qcyc7XG5pbXBvcnQgeyBnZXRPcHRpbWlzZWRBcHBlYXJJZCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi9vcHRpbWl6ZWQtYXBwZWFyL2dldC1hcHBlYXItaWQubWpzJztcbmltcG9ydCB7IGdldFZhbHVlVHJhbnNpdGlvbiB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi91dGlscy9nZXQtdmFsdWUtdHJhbnNpdGlvbi5tanMnO1xuaW1wb3J0IHsgbWljcm90YXNrIH0gZnJvbSAnLi4vLi4vZnJhbWVsb29wL21pY3JvdGFzay5tanMnO1xuaW1wb3J0IHsgdGltZSB9IGZyb20gJy4uLy4uL2ZyYW1lbG9vcC9zeW5jLXRpbWUubWpzJztcbmltcG9ydCB7IHNjYWxlQ29ycmVjdG9ycyB9IGZyb20gJy4uL3N0eWxlcy9zY2FsZS1jb3JyZWN0aW9uLm1qcyc7XG5pbXBvcnQgeyBhY3RpdmVBbmltYXRpb25zIH0gZnJvbSAnLi4vLi4vc3RhdHMvYW5pbWF0aW9uLWNvdW50Lm1qcyc7XG5pbXBvcnQgeyBzdGF0c0J1ZmZlciB9IGZyb20gJy4uLy4uL3N0YXRzL2J1ZmZlci5tanMnO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICcuLi8uLi91dGlscy9kZWxheS5tanMnO1xuaW1wb3J0IHsgaXNTVkdFbGVtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvaXMtc3ZnLWVsZW1lbnQubWpzJztcbmltcG9ydCB7IGlzU1ZHU1ZHRWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL2lzLXN2Zy1zdmctZWxlbWVudC5tanMnO1xuaW1wb3J0IHsgbWl4TnVtYmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWl4L251bWJlci5tanMnO1xuaW1wb3J0IHsgbW90aW9uVmFsdWUgfSBmcm9tICcuLi8uLi92YWx1ZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgcmVzb2x2ZU1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdXRpbHMvcmVzb2x2ZS1tb3Rpb24tdmFsdWUubWpzJztcbmltcG9ydCB7IG1peFZhbHVlcyB9IGZyb20gJy4uL2FuaW1hdGlvbi9taXgtdmFsdWVzLm1qcyc7XG5pbXBvcnQgeyBjb3B5Qm94SW50bywgY29weUF4aXNEZWx0YUludG8gfSBmcm9tICcuLi9nZW9tZXRyeS9jb3B5Lm1qcyc7XG5pbXBvcnQgeyB0cmFuc2xhdGVBeGlzLCB0cmFuc2Zvcm1Cb3gsIGFwcGx5Qm94RGVsdGEsIGFwcGx5VHJlZURlbHRhcyB9IGZyb20gJy4uL2dlb21ldHJ5L2RlbHRhLWFwcGx5Lm1qcyc7XG5pbXBvcnQgeyBjYWxjTGVuZ3RoLCBjYWxjUmVsYXRpdmVCb3gsIGNhbGNSZWxhdGl2ZVBvc2l0aW9uLCBjYWxjQm94RGVsdGEsIGlzTmVhciB9IGZyb20gJy4uL2dlb21ldHJ5L2RlbHRhLWNhbGMubWpzJztcbmltcG9ydCB7IHJlbW92ZUJveFRyYW5zZm9ybXMgfSBmcm9tICcuLi9nZW9tZXRyeS9kZWx0YS1yZW1vdmUubWpzJztcbmltcG9ydCB7IGNyZWF0ZUJveCwgY3JlYXRlRGVsdGEgfSBmcm9tICcuLi9nZW9tZXRyeS9tb2RlbHMubWpzJztcbmltcG9ydCB7IGJveEVxdWFsc1JvdW5kZWQsIGlzRGVsdGFaZXJvLCBheGlzRGVsdGFFcXVhbHMsIGFzcGVjdFJhdGlvLCBib3hFcXVhbHMgfSBmcm9tICcuLi9nZW9tZXRyeS91dGlscy5tanMnO1xuaW1wb3J0IHsgTm9kZVN0YWNrIH0gZnJvbSAnLi4vc2hhcmVkL3N0YWNrLm1qcyc7XG5pbXBvcnQgeyBidWlsZFByb2plY3Rpb25UcmFuc2Zvcm0gfSBmcm9tICcuLi9zdHlsZXMvdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyBlYWNoQXhpcyB9IGZyb20gJy4uL3V0aWxzL2VhY2gtYXhpcy5tanMnO1xuaW1wb3J0IHsgRmxhdFRyZWUgfSBmcm9tICcuLi91dGlscy9mbGF0LXRyZWUubWpzJztcbmltcG9ydCB7IGhhc1RyYW5zZm9ybSwgaGFzU2NhbGUsIGhhczJEVHJhbnNsYXRlIH0gZnJvbSAnLi4vdXRpbHMvaGFzLXRyYW5zZm9ybS5tanMnO1xuaW1wb3J0IHsgZ2xvYmFsUHJvamVjdGlvblN0YXRlIH0gZnJvbSAnLi9zdGF0ZS5tanMnO1xuaW1wb3J0IHsgZnJhbWUsIGNhbmNlbEZyYW1lLCBmcmFtZURhdGEsIGZyYW1lU3RlcHMgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcblxuY29uc3QgbWV0cmljcyA9IHtcbiAgICBub2RlczogMCxcbiAgICBjYWxjdWxhdGVkVGFyZ2V0RGVsdGFzOiAwLFxuICAgIGNhbGN1bGF0ZWRQcm9qZWN0aW9uczogMCxcbn07XG5jb25zdCB0cmFuc2Zvcm1BeGVzID0gW1wiXCIsIFwiWFwiLCBcIllcIiwgXCJaXCJdO1xuLyoqXG4gKiBXZSB1c2UgMTAwMCBhcyB0aGUgYW5pbWF0aW9uIHRhcmdldCBhcyAwLTEwMDAgbWFwcyBiZXR0ZXIgdG8gcGl4ZWxzIHRoYW4gMC0xXG4gKiB3aGljaCBoYXMgYSBub3RpY2VhYmxlIGRpZmZlcmVuY2UgaW4gc3ByaW5nIGFuaW1hdGlvbnNcbiAqL1xuY29uc3QgYW5pbWF0aW9uVGFyZ2V0ID0gMTAwMDtcbmxldCBpZCA9IDA7XG5mdW5jdGlvbiByZXNldERpc3RvcnRpbmdUcmFuc2Zvcm0oa2V5LCB2aXN1YWxFbGVtZW50LCB2YWx1ZXMsIHNoYXJlZEFuaW1hdGlvblZhbHVlcykge1xuICAgIGNvbnN0IHsgbGF0ZXN0VmFsdWVzIH0gPSB2aXN1YWxFbGVtZW50O1xuICAgIC8vIFJlY29yZCB0aGUgZGlzdG9ydGluZyB0cmFuc2Zvcm0gYW5kIHRoZW4gdGVtcG9yYXJpbHkgc2V0IGl0IHRvIDBcbiAgICBpZiAobGF0ZXN0VmFsdWVzW2tleV0pIHtcbiAgICAgICAgdmFsdWVzW2tleV0gPSBsYXRlc3RWYWx1ZXNba2V5XTtcbiAgICAgICAgdmlzdWFsRWxlbWVudC5zZXRTdGF0aWNWYWx1ZShrZXksIDApO1xuICAgICAgICBpZiAoc2hhcmVkQW5pbWF0aW9uVmFsdWVzKSB7XG4gICAgICAgICAgICBzaGFyZWRBbmltYXRpb25WYWx1ZXNba2V5XSA9IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBjYW5jZWxUcmVlT3B0aW1pc2VkVHJhbnNmb3JtQW5pbWF0aW9ucyhwcm9qZWN0aW9uTm9kZSkge1xuICAgIHByb2plY3Rpb25Ob2RlLmhhc0NoZWNrZWRPcHRpbWlzZWRBcHBlYXIgPSB0cnVlO1xuICAgIGlmIChwcm9qZWN0aW9uTm9kZS5yb290ID09PSBwcm9qZWN0aW9uTm9kZSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCB9ID0gcHJvamVjdGlvbk5vZGUub3B0aW9ucztcbiAgICBpZiAoIXZpc3VhbEVsZW1lbnQpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBhcHBlYXJJZCA9IGdldE9wdGltaXNlZEFwcGVhcklkKHZpc3VhbEVsZW1lbnQpO1xuICAgIGlmICh3aW5kb3cuTW90aW9uSGFzT3B0aW1pc2VkQW5pbWF0aW9uKGFwcGVhcklkLCBcInRyYW5zZm9ybVwiKSkge1xuICAgICAgICBjb25zdCB7IGxheW91dCwgbGF5b3V0SWQgfSA9IHByb2plY3Rpb25Ob2RlLm9wdGlvbnM7XG4gICAgICAgIHdpbmRvdy5Nb3Rpb25DYW5jZWxPcHRpbWlzZWRBbmltYXRpb24oYXBwZWFySWQsIFwidHJhbnNmb3JtXCIsIGZyYW1lLCAhKGxheW91dCB8fCBsYXlvdXRJZCkpO1xuICAgIH1cbiAgICBjb25zdCB7IHBhcmVudCB9ID0gcHJvamVjdGlvbk5vZGU7XG4gICAgaWYgKHBhcmVudCAmJiAhcGFyZW50Lmhhc0NoZWNrZWRPcHRpbWlzZWRBcHBlYXIpIHtcbiAgICAgICAgY2FuY2VsVHJlZU9wdGltaXNlZFRyYW5zZm9ybUFuaW1hdGlvbnMocGFyZW50KTtcbiAgICB9XG59XG5mdW5jdGlvbiBjcmVhdGVQcm9qZWN0aW9uTm9kZSh7IGF0dGFjaFJlc2l6ZUxpc3RlbmVyLCBkZWZhdWx0UGFyZW50LCBtZWFzdXJlU2Nyb2xsLCBjaGVja0lzU2Nyb2xsUm9vdCwgcmVzZXRUcmFuc2Zvcm0sIH0pIHtcbiAgICByZXR1cm4gY2xhc3MgUHJvamVjdGlvbk5vZGUge1xuICAgICAgICBjb25zdHJ1Y3RvcihsYXRlc3RWYWx1ZXMgPSB7fSwgcGFyZW50ID0gZGVmYXVsdFBhcmVudD8uKCkpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQSB1bmlxdWUgSUQgZ2VuZXJhdGVkIGZvciBldmVyeSBwcm9qZWN0aW9uIG5vZGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaWQgPSBpZCsrO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBbiBpZCB0aGF0IHJlcHJlc2VudHMgYSB1bmlxdWUgc2Vzc2lvbiBpbnN0aWdhdGVkIGJ5IHN0YXJ0VXBkYXRlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbklkID0gMDtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uQ29tbWl0SWQgPSAwO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBIFNldCBjb250YWluaW5nIGFsbCB0aGlzIGNvbXBvbmVudCdzIGNoaWxkcmVuLiBUaGlzIGlzIHVzZWQgdG8gaXRlcmF0ZVxuICAgICAgICAgICAgICogdGhyb3VnaCB0aGUgY2hpbGRyZW4uXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogVE9ETzogVGhpcyBjb3VsZCBiZSBmYXN0ZXIgdG8gaXRlcmF0ZSBhcyBhIGZsYXQgYXJyYXkgc3RvcmVkIG9uIHRoZSByb290IG5vZGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW4gPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE9wdGlvbnMgZm9yIHRoZSBub2RlLiBXZSB1c2UgdGhpcyB0byBjb25maWd1cmUgd2hhdCBraW5kIG9mIGxheW91dCBhbmltYXRpb25zXG4gICAgICAgICAgICAgKiB3ZSBzaG91bGQgcGVyZm9ybSAoaWYgYW55KS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0ge307XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFdlIHVzZSB0aGlzIHRvIGRldGVjdCB3aGVuIGl0cyBzYWZlIHRvIHNodXQgZG93biBwYXJ0IG9mIGEgcHJvamVjdGlvbiB0cmVlLlxuICAgICAgICAgICAgICogV2UgaGF2ZSB0byBrZWVwIHByb2plY3RpbmcgY2hpbGRyZW4gZm9yIHNjYWxlIGNvcnJlY3Rpb24gYW5kIHJlbGF0aXZlIHByb2plY3Rpb25cbiAgICAgICAgICAgICAqIHVudGlsIGFsbCB0aGVpciBwYXJlbnRzIHN0b3AgcGVyZm9ybWluZyBsYXlvdXQgYW5pbWF0aW9ucy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5pc1RyZWVBbmltYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaXNBbmltYXRpb25CbG9ja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZsYWcgdG8gdHJ1ZSBpZiB3ZSB0aGluayB0aGlzIGxheW91dCBoYXMgYmVlbiBjaGFuZ2VkLiBXZSBjYW4ndCBhbHdheXMga25vdyB0aGlzLFxuICAgICAgICAgICAgICogY3VycmVudGx5IHdlIHNldCBpdCB0byB0cnVlIGV2ZXJ5IHRpbWUgYSBjb21wb25lbnQgcmVuZGVycywgb3IgaWYgaXQgaGFzIGEgbGF5b3V0RGVwZW5kZW5jeVxuICAgICAgICAgICAgICogaWYgdGhhdCBoYXMgY2hhbmdlZCBiZXR3ZWVuIHJlbmRlcnMuIEFkZGl0aW9uYWxseSwgY29tcG9uZW50cyBjYW4gYmUgZ3JvdXBlZCBieSBMYXlvdXRHcm91cFxuICAgICAgICAgICAgICogYW5kIGlmIG9uZSBub2RlIGlzIGRpcnRpZWQsIHRoZXkgYWxsIGFyZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5pc0xheW91dERpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZsYWcgdG8gdHJ1ZSBpZiB3ZSB0aGluayB0aGUgcHJvamVjdGlvbiBjYWxjdWxhdGlvbnMgZm9yIHRoaXMgbm9kZSBuZWVkc1xuICAgICAgICAgICAgICogcmVjYWxjdWxhdGluZyBhcyBhIHJlc3VsdCBvZiBhbiB1cGRhdGVkIHRyYW5zZm9ybSBvciBsYXlvdXQgYW5pbWF0aW9uLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmlzUHJvamVjdGlvbkRpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZsYWcgdG8gdHJ1ZSBpZiB0aGUgbGF5b3V0ICpvciogdHJhbnNmb3JtIGhhcyBjaGFuZ2VkLiBUaGlzIHRoZW4gZ2V0cyBwcm9wYWdhdGVkXG4gICAgICAgICAgICAgKiB0aHJvdWdob3V0IHRoZSBwcm9qZWN0aW9uIHRyZWUsIGZvcmNpbmcgYW55IGVsZW1lbnQgYmVsb3cgdG8gcmVjYWxjdWxhdGUgb24gdGhlIG5leHQgZnJhbWUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgPSBmYWxzZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRmxhZyB0cmFuc2Zvcm0gZGlydHkuIFRoaXMgZ2V0cyBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHdob2xlIHRyZWUgYnV0IGlzIG9ubHlcbiAgICAgICAgICAgICAqIHJlc3BlY3RlZCBieSBzaGFyZWQgbm9kZXMuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBCbG9jayBsYXlvdXQgdXBkYXRlcyBmb3IgaW5zdGFudCBsYXlvdXQgdHJhbnNpdGlvbnMgdGhyb3VnaG91dCB0aGUgdHJlZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy51cGRhdGVNYW51YWxseUJsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQmxvY2tlZEJ5UmVzaXplID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNldCB0byB0cnVlIGJldHdlZW4gdGhlIHN0YXJ0IG9mIHRoZSBmaXJzdCBgd2lsbFVwZGF0ZWAgY2FsbCBhbmQgdGhlIGVuZCBvZiB0aGUgYGRpZFVwZGF0ZWBcbiAgICAgICAgICAgICAqIGNhbGwuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaXNVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGlzIGFuIFNWRyBlbGVtZW50IHdlIGN1cnJlbnRseSBkaXNhYmxlIHByb2plY3Rpb24gdHJhbnNmb3Jtc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmlzU1ZHID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZsYWcgdG8gdHJ1ZSAoZHVyaW5nIHByb21vdGlvbikgaWYgYSBub2RlIGRvaW5nIGFuIGluc3RhbnQgbGF5b3V0IHRyYW5zaXRpb24gbmVlZHMgdG8gcmVzZXRcbiAgICAgICAgICAgICAqIGl0cyBwcm9qZWN0aW9uIHN0eWxlcy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5uZWVkc1Jlc2V0ID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZsYWdzIHdoZXRoZXIgdGhpcyBub2RlIHNob3VsZCBoYXZlIGl0cyB0cmFuc2Zvcm0gcmVzZXQgcHJpb3IgdG8gbWVhc3VyaW5nLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFN0b3JlIHdoZXRoZXIgdGhpcyBub2RlIGhhcyBiZWVuIGNoZWNrZWQgZm9yIG9wdGltaXNlZCBhcHBlYXIgYW5pbWF0aW9ucy4gQXNcbiAgICAgICAgICAgICAqIGVmZmVjdHMgZmlyZSBib3R0b20tdXAsIGFuZCB3ZSB3YW50IHRvIGxvb2sgdXAgdGhlIHRyZWUgZm9yIGFwcGVhciBhbmltYXRpb25zLFxuICAgICAgICAgICAgICogdGhpcyBtYWtlcyBzdXJlIHdlIG9ubHkgY2hlY2sgZWFjaCBwYXRoIG9uY2UsIHN0b3BwaW5nIGF0IG5vZGVzIHRoYXRcbiAgICAgICAgICAgICAqIGhhdmUgYWxyZWFkeSBiZWVuIGNoZWNrZWQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaGFzQ2hlY2tlZE9wdGltaXNlZEFwcGVhciA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBjYWxjdWxhdGVkIGNvbnRleHR1YWwvYWNjdW11bGF0ZWQvdHJlZSBzY2FsZS5cbiAgICAgICAgICAgICAqIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHNjYWxlIGNhbGN1bGNhdGVkIHByb2plY3Rpb24gdHJhbnNmb3JtcywgYXMgdGhlc2UgYXJlXG4gICAgICAgICAgICAgKiBjYWxjdWxhdGVkIGluIHNjcmVlbi1zcGFjZSBidXQgbmVlZCB0byBiZSBzY2FsZWQgZm9yIGVsZW1lbnRzIHRvIGxheW91dGx5XG4gICAgICAgICAgICAgKiBtYWtlIGl0IHRvIHRoZWlyIGNhbGN1bGF0ZWQgZGVzdGluYXRpb25zLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIFRPRE86IExhenktaW5pdFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLnRyZWVTY2FsZSA9IHsgeDogMSwgeTogMSB9O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmV2ZW50SGFuZGxlcnMgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICB0aGlzLmhhc1RyZWVBbmltYXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRWZXJzaW9uID0gMDtcbiAgICAgICAgICAgIC8vIE5vdGU6IEN1cnJlbnRseSBvbmx5IHJ1bm5pbmcgb24gcm9vdCBub2RlXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVVwZGF0ZSA9ICgpID0+IHRoaXMudXBkYXRlKCk7XG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tVcGRhdGVGYWlsZWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNVcGRhdGluZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckFsbFNuYXBzaG90cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRoaXMgaXMgYSBtdWx0aS1zdGVwIHByb2Nlc3MgYXMgc2hhcmVkIG5vZGVzIG1pZ2h0IGJlIG9mIGRpZmZlcmVudCBkZXB0aHMuIE5vZGVzXG4gICAgICAgICAgICAgKiBhcmUgc29ydGVkIGJ5IGRlcHRoIG9yZGVyLCBzbyB3ZSBuZWVkIHRvIHJlc29sdmUgdGhlIGVudGlyZSB0cmVlIGJlZm9yZSBtb3ZpbmcgdG9cbiAgICAgICAgICAgICAqIHRoZSBuZXh0IHN0ZXAuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJvamVjdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBSZXNldCBkZWJ1ZyBjb3VudHMuIE1hbnVhbGx5IHJlc2V0dGluZyByYXRoZXIgdGhhbiBjcmVhdGluZyBhIG5ld1xuICAgICAgICAgICAgICAgICAqIG9iamVjdCBlYWNoIGZyYW1lLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLm5vZGVzID1cbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldHJpY3MuY2FsY3VsYXRlZFRhcmdldERlbHRhcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0cmljcy5jYWxjdWxhdGVkUHJvamVjdGlvbnMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2gocHJvcGFnYXRlRGlydHlOb2Rlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKHJlc29sdmVUYXJnZXREZWx0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGNhbGNQcm9qZWN0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goY2xlYW5EaXJ0eU5vZGVzKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdHNCdWZmZXIuYWRkUHJvamVjdGlvbk1ldHJpY3MpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHNCdWZmZXIuYWRkUHJvamVjdGlvbk1ldHJpY3MobWV0cmljcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRnJhbWUgY2FsY3VsYXRpb25zXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZWRSZWxhdGl2ZVRhcmdldEF0ID0gMC4wO1xuICAgICAgICAgICAgdGhpcy5saW5rZWRQYXJlbnRWZXJzaW9uID0gMDtcbiAgICAgICAgICAgIHRoaXMuaGFzUHJvamVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvblByb2dyZXNzID0gMDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogU2hhcmVkIGxheW91dFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICAvLyBUT0RPIE9ubHkgcnVubmluZyBvbiByb290IG5vZGVcbiAgICAgICAgICAgIHRoaXMuc2hhcmVkTm9kZXMgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICB0aGlzLmxhdGVzdFZhbHVlcyA9IGxhdGVzdFZhbHVlcztcbiAgICAgICAgICAgIHRoaXMucm9vdCA9IHBhcmVudCA/IHBhcmVudC5yb290IHx8IHBhcmVudCA6IHRoaXM7XG4gICAgICAgICAgICB0aGlzLnBhdGggPSBwYXJlbnQgPyBbLi4ucGFyZW50LnBhdGgsIHBhcmVudF0gOiBbXTtcbiAgICAgICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgICAgICAgICAgdGhpcy5kZXB0aCA9IHBhcmVudCA/IHBhcmVudC5kZXB0aCArIDEgOiAwO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhdGhbaV0uc2hvdWxkUmVzZXRUcmFuc2Zvcm0gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucm9vdCA9PT0gdGhpcylcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzID0gbmV3IEZsYXRUcmVlKCk7XG4gICAgICAgIH1cbiAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZXZlbnRIYW5kbGVycy5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50SGFuZGxlcnMuc2V0KG5hbWUsIG5ldyBTdWJzY3JpcHRpb25NYW5hZ2VyKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRIYW5kbGVycy5nZXQobmFtZSkuYWRkKGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICAgIG5vdGlmeUxpc3RlbmVycyhuYW1lLCAuLi5hcmdzKSB7XG4gICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25NYW5hZ2VyID0gdGhpcy5ldmVudEhhbmRsZXJzLmdldChuYW1lKTtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbk1hbmFnZXIgJiYgc3Vic2NyaXB0aW9uTWFuYWdlci5ub3RpZnkoLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgaGFzTGlzdGVuZXJzKG5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV2ZW50SGFuZGxlcnMuaGFzKG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMaWZlY3ljbGVzXG4gICAgICAgICAqL1xuICAgICAgICBtb3VudChpbnN0YW5jZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5pc1NWRyA9IGlzU1ZHRWxlbWVudChpbnN0YW5jZSkgJiYgIWlzU1ZHU1ZHRWxlbWVudChpbnN0YW5jZSk7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICAgICAgICBjb25zdCB7IGxheW91dElkLCBsYXlvdXQsIHZpc3VhbEVsZW1lbnQgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgIGlmICh2aXN1YWxFbGVtZW50ICYmICF2aXN1YWxFbGVtZW50LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50Lm1vdW50KGluc3RhbmNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucm9vdC5ub2Rlcy5hZGQodGhpcyk7XG4gICAgICAgICAgICB0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5jaGlsZHJlbi5hZGQodGhpcyk7XG4gICAgICAgICAgICBpZiAodGhpcy5yb290Lmhhc1RyZWVBbmltYXRlZCAmJiAobGF5b3V0IHx8IGxheW91dElkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMYXlvdXREaXJ0eSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYXR0YWNoUmVzaXplTGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICBsZXQgY2FuY2VsRGVsYXk7XG4gICAgICAgICAgICAgICAgbGV0IGlubmVyV2lkdGggPSAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc2l6ZVVuYmxvY2tVcGRhdGUgPSAoKSA9PiAodGhpcy5yb290LnVwZGF0ZUJsb2NrZWRCeVJlc2l6ZSA9IGZhbHNlKTtcbiAgICAgICAgICAgICAgICAvLyBTZXQgaW5pdGlhbCBpbm5lcldpZHRoIGluIGEgZnJhbWUucmVhZCBjYWxsYmFjayB0byBiYXRjaCB0aGUgcmVhZFxuICAgICAgICAgICAgICAgIGZyYW1lLnJlYWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpbm5lcldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYXR0YWNoUmVzaXplTGlzdGVuZXIoaW5zdGFuY2UsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SW5uZXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3SW5uZXJXaWR0aCA9PT0gaW5uZXJXaWR0aClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgaW5uZXJXaWR0aCA9IG5ld0lubmVyV2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdC51cGRhdGVCbG9ja2VkQnlSZXNpemUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBjYW5jZWxEZWxheSAmJiBjYW5jZWxEZWxheSgpO1xuICAgICAgICAgICAgICAgICAgICBjYW5jZWxEZWxheSA9IGRlbGF5KHJlc2l6ZVVuYmxvY2tVcGRhdGUsIDI1MCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChnbG9iYWxQcm9qZWN0aW9uU3RhdGUuaGFzQW5pbWF0ZWRTaW5jZVJlc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsUHJvamVjdGlvblN0YXRlLmhhc0FuaW1hdGVkU2luY2VSZXNpemUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChmaW5pc2hBbmltYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGF5b3V0SWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3QucmVnaXN0ZXJTaGFyZWROb2RlKGxheW91dElkLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIE9ubHkgcmVnaXN0ZXIgdGhlIGhhbmRsZXIgaWYgaXQgcmVxdWlyZXMgbGF5b3V0IGFuaW1hdGlvblxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hbmltYXRlICE9PSBmYWxzZSAmJlxuICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAobGF5b3V0SWQgfHwgbGF5b3V0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcImRpZFVwZGF0ZVwiLCAoeyBkZWx0YSwgaGFzTGF5b3V0Q2hhbmdlZCwgaGFzUmVsYXRpdmVMYXlvdXRDaGFuZ2VkLCBsYXlvdXQ6IG5ld0xheW91dCwgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1RyZWVBbmltYXRpb25CbG9ja2VkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBDaGVjayBoZXJlIGlmIGFuIGFuaW1hdGlvbiBleGlzdHNcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5b3V0VHJhbnNpdGlvbiA9IHRoaXMub3B0aW9ucy50cmFuc2l0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50LmdldERlZmF1bHRUcmFuc2l0aW9uKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMYXlvdXRUcmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IG9uTGF5b3V0QW5pbWF0aW9uU3RhcnQsIG9uTGF5b3V0QW5pbWF0aW9uQ29tcGxldGUsIH0gPSB2aXN1YWxFbGVtZW50LmdldFByb3BzKCk7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBUaGUgdGFyZ2V0IGxheW91dCBvZiB0aGUgZWxlbWVudCBtaWdodCBzdGF5IHRoZSBzYW1lLFxuICAgICAgICAgICAgICAgICAgICAgKiBidXQgaXRzIHBvc2l0aW9uIHJlbGF0aXZlIHRvIGl0cyBwYXJlbnQgaGFzIGNoYW5nZWQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNUYXJnZXRDaGFuZ2VkID0gIXRoaXMudGFyZ2V0TGF5b3V0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAhYm94RXF1YWxzUm91bmRlZCh0aGlzLnRhcmdldExheW91dCwgbmV3TGF5b3V0KTtcbiAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICogTm90ZTogRGlzYWJsZWQgdG8gZml4IHJlbGF0aXZlIGFuaW1hdGlvbnMgYWx3YXlzIHRyaWdnZXJpbmcgbmV3XG4gICAgICAgICAgICAgICAgICAgICAqIGxheW91dCBhbmltYXRpb25zLiBJZiB0aGlzIGNhdXNlcyBmdXJ0aGVyIGlzc3Vlcywgd2UgY2FuIHRyeVxuICAgICAgICAgICAgICAgICAgICAgKiBhIGRpZmZlcmVudCBhcHByb2FjaCB0byBkZXRlY3RpbmcgcmVsYXRpdmUgdGFyZ2V0IGNoYW5nZXMuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAvLyB8fCBoYXNSZWxhdGl2ZUxheW91dENoYW5nZWRcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHRoZSBsYXlvdXQgaGFzbid0IHNlZW1lZCB0byBoYXZlIGNoYW5nZWQsIGl0IG1pZ2h0IGJlIHRoYXQgdGhlXG4gICAgICAgICAgICAgICAgICAgICAqIGVsZW1lbnQgaXMgdmlzdWFsbHkgaW4gdGhlIHNhbWUgcGxhY2UgaW4gdGhlIGRvY3VtZW50IGJ1dCBpdHMgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICogcmVsYXRpdmUgdG8gaXRzIHBhcmVudCBoYXMgaW5kZWVkIGNoYW5nZWQuIFNvIGhlcmUgd2UgY2hlY2sgZm9yIHRoYXQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNPbmx5UmVsYXRpdmVUYXJnZXRDaGFuZ2VkID0gIWhhc0xheW91dENoYW5nZWQgJiYgaGFzUmVsYXRpdmVMYXlvdXRDaGFuZ2VkO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxheW91dFJvb3QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzdW1lRnJvbSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzT25seVJlbGF0aXZlVGFyZ2V0Q2hhbmdlZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKGhhc0xheW91dENoYW5nZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzVGFyZ2V0Q2hhbmdlZCB8fCAhdGhpcy5jdXJyZW50QW5pbWF0aW9uKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc3VtZUZyb20pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbSA9IHRoaXMucmVzdW1lRnJvbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbS5yZXN1bWluZ0Zyb20gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhbmltYXRpb25PcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmdldFZhbHVlVHJhbnNpdGlvbihsYXlvdXRUcmFuc2l0aW9uLCBcImxheW91dFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblBsYXk6IG9uTGF5b3V0QW5pbWF0aW9uU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Db21wbGV0ZTogb25MYXlvdXRBbmltYXRpb25Db21wbGV0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlzdWFsRWxlbWVudC5zaG91bGRSZWR1Y2VNb3Rpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMubGF5b3V0Um9vdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbk9wdGlvbnMuZGVsYXkgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbk9wdGlvbnMudHlwZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydEFuaW1hdGlvbihhbmltYXRpb25PcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogU2V0IGFuaW1hdGlvbiBvcmlnaW4gYWZ0ZXIgc3RhcnRpbmcgYW5pbWF0aW9uIHRvIGF2b2lkIGxheW91dCBqdW1wXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBjYXVzZWQgYnkgc3RvcHBpbmcgcHJldmlvdXMgbGF5b3V0IGFuaW1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEFuaW1hdGlvbk9yaWdpbihkZWx0YSwgaGFzT25seVJlbGF0aXZlVGFyZ2V0Q2hhbmdlZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIElmIHRoZSBsYXlvdXQgaGFzbid0IGNoYW5nZWQgYW5kIHdlIGhhdmUgYW4gYW5pbWF0aW9uIHRoYXQgaGFzbid0IHN0YXJ0ZWQgeWV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICogZmluaXNoIGl0IGltbWVkaWF0ZWx5LiBPdGhlcndpc2UgaXQgd2lsbCBiZSBhbmltYXRpbmcgZnJvbSBhIGxvY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGF0IHdhcyBwcm9iYWJseSBuZXZlciBjb21taXR0ZWQgdG8gc2NyZWVuIGFuZCBsb29rIGxpa2UgYSBqdW1weSBib3guXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFzTGF5b3V0Q2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEFuaW1hdGlvbih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTGVhZCgpICYmIHRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0TGF5b3V0ID0gbmV3TGF5b3V0O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVubW91bnQoKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubGF5b3V0SWQgJiYgdGhpcy53aWxsVXBkYXRlKCk7XG4gICAgICAgICAgICB0aGlzLnJvb3Qubm9kZXMucmVtb3ZlKHRoaXMpO1xuICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKCk7XG4gICAgICAgICAgICBzdGFjayAmJiBzdGFjay5yZW1vdmUodGhpcyk7XG4gICAgICAgICAgICB0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5jaGlsZHJlbi5kZWxldGUodGhpcyk7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5ldmVudEhhbmRsZXJzLmNsZWFyKCk7XG4gICAgICAgICAgICBjYW5jZWxGcmFtZSh0aGlzLnVwZGF0ZVByb2plY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIC8vIG9ubHkgb24gdGhlIHJvb3RcbiAgICAgICAgYmxvY2tVcGRhdGUoKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1hbnVhbGx5QmxvY2tlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdW5ibG9ja1VwZGF0ZSgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaXNVcGRhdGVCbG9ja2VkKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkIHx8IHRoaXMudXBkYXRlQmxvY2tlZEJ5UmVzaXplO1xuICAgICAgICB9XG4gICAgICAgIGlzVHJlZUFuaW1hdGlvbkJsb2NrZWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuaXNBbmltYXRpb25CbG9ja2VkIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50LmlzVHJlZUFuaW1hdGlvbkJsb2NrZWQoKSkgfHxcbiAgICAgICAgICAgICAgICBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTm90ZTogY3VycmVudGx5IG9ubHkgcnVubmluZyBvbiByb290IG5vZGVcbiAgICAgICAgc3RhcnRVcGRhdGUoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1VwZGF0ZUJsb2NrZWQoKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5ub2RlcyAmJiB0aGlzLm5vZGVzLmZvckVhY2gocmVzZXRTa2V3QW5kUm90YXRpb24pO1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JZCsrO1xuICAgICAgICB9XG4gICAgICAgIGdldFRyYW5zZm9ybVRlbXBsYXRlKCkge1xuICAgICAgICAgICAgY29uc3QgeyB2aXN1YWxFbGVtZW50IH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICByZXR1cm4gdmlzdWFsRWxlbWVudCAmJiB2aXN1YWxFbGVtZW50LmdldFByb3BzKCkudHJhbnNmb3JtVGVtcGxhdGU7XG4gICAgICAgIH1cbiAgICAgICAgd2lsbFVwZGF0ZShzaG91bGROb3RpZnlMaXN0ZW5lcnMgPSB0cnVlKSB7XG4gICAgICAgICAgICB0aGlzLnJvb3QuaGFzVHJlZUFuaW1hdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnJvb3QuaXNVcGRhdGVCbG9ja2VkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMub25FeGl0Q29tcGxldGUgJiYgdGhpcy5vcHRpb25zLm9uRXhpdENvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB3ZSdyZSBydW5uaW5nIG9wdGltaXNlZCBhcHBlYXIgYW5pbWF0aW9ucyB0aGVuIHRoZXNlIG11c3QgYmVcbiAgICAgICAgICAgICAqIGNhbmNlbGxlZCBiZWZvcmUgbWVhc3VyaW5nIHRoZSBET00uIFRoaXMgaXMgc28gd2UgY2FuIG1lYXN1cmVcbiAgICAgICAgICAgICAqIHRoZSB0cnVlIGxheW91dCBvZiB0aGUgZWxlbWVudCByYXRoZXIgdGhhbiB0aGUgV0FBUEkgYW5pbWF0aW9uXG4gICAgICAgICAgICAgKiB3aGljaCB3aWxsIGJlIHVuYWZmZWN0ZWQgYnkgdGhlIHJlc2V0U2tld0FuZFJvdGF0ZSBzdGVwLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIE5vdGU6IFRoaXMgaXMgYSBET00gd3JpdGUuIFdvcnN0IGNhc2Ugc2NlbmFyaW8gaXMgdGhpcyBpcyBzYW5kd2ljaGVkXG4gICAgICAgICAgICAgKiBiZXR3ZWVuIG90aGVyIHNuYXBzaG90IHJlYWRzIHdoaWNoIHdpbGwgY2F1c2UgdW5uZWNlc3Nhcnkgc3R5bGUgcmVjYWxjdWxhdGlvbnMuXG4gICAgICAgICAgICAgKiBUaGlzIGhhcyB0byBoYXBwZW4gaGVyZSB0aG91Z2gsIGFzIHdlIGRvbid0IHlldCBrbm93IHdoaWNoIG5vZGVzIHdpbGwgbmVlZFxuICAgICAgICAgICAgICogc25hcHNob3RzIGluIHN0YXJ0VXBkYXRlKCksIGJ1dCB3ZSBvbmx5IHdhbnQgdG8gY2FuY2VsIG9wdGltaXNlZCBhbmltYXRpb25zXG4gICAgICAgICAgICAgKiBpZiBhIGxheW91dCBhbmltYXRpb24gbWVhc3VyZW1lbnQgaXMgYWN0dWFsbHkgZ29pbmcgdG8gYmUgYWZmZWN0ZWQgYnkgdGhlbS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5Nb3Rpb25DYW5jZWxPcHRpbWlzZWRBbmltYXRpb24gJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5oYXNDaGVja2VkT3B0aW1pc2VkQXBwZWFyKSB7XG4gICAgICAgICAgICAgICAgY2FuY2VsVHJlZU9wdGltaXNlZFRyYW5zZm9ybUFuaW1hdGlvbnModGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAhdGhpcy5yb290LmlzVXBkYXRpbmcgJiYgdGhpcy5yb290LnN0YXJ0VXBkYXRlKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0xheW91dERpcnR5KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuaXNMYXlvdXREaXJ0eSA9IHRydWU7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLnBhdGhbaV07XG4gICAgICAgICAgICAgICAgbm9kZS5zaG91bGRSZXNldFRyYW5zZm9ybSA9IHRydWU7XG4gICAgICAgICAgICAgICAgbm9kZS51cGRhdGVTY3JvbGwoXCJzbmFwc2hvdFwiKTtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5vcHRpb25zLmxheW91dFJvb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS53aWxsVXBkYXRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IGxheW91dElkLCBsYXlvdXQgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgIGlmIChsYXlvdXRJZCA9PT0gdW5kZWZpbmVkICYmICFsYXlvdXQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtVGVtcGxhdGUgPSB0aGlzLmdldFRyYW5zZm9ybVRlbXBsYXRlKCk7XG4gICAgICAgICAgICB0aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlID0gdHJhbnNmb3JtVGVtcGxhdGVcbiAgICAgICAgICAgICAgICA/IHRyYW5zZm9ybVRlbXBsYXRlKHRoaXMubGF0ZXN0VmFsdWVzLCBcIlwiKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTbmFwc2hvdCgpO1xuICAgICAgICAgICAgc2hvdWxkTm90aWZ5TGlzdGVuZXJzICYmIHRoaXMubm90aWZ5TGlzdGVuZXJzKFwid2lsbFVwZGF0ZVwiKTtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGUoKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlV2FzQmxvY2tlZCA9IHRoaXMuaXNVcGRhdGVCbG9ja2VkKCk7XG4gICAgICAgICAgICAvLyBXaGVuIGRvaW5nIGFuIGluc3RhbnQgdHJhbnNpdGlvbiwgd2Ugc2tpcCB0aGUgbGF5b3V0IHVwZGF0ZSxcbiAgICAgICAgICAgIC8vIGJ1dCBzaG91bGQgc3RpbGwgY2xlYW4gdXAgdGhlIG1lYXN1cmVtZW50cyBzbyB0aGF0IHRoZSBuZXh0XG4gICAgICAgICAgICAvLyBzbmFwc2hvdCBjb3VsZCBiZSB0YWtlbiBjb3JyZWN0bHkuXG4gICAgICAgICAgICBpZiAodXBkYXRlV2FzQmxvY2tlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMudW5ibG9ja1VwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJBbGxTbmFwc2hvdHMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goY2xlYXJNZWFzdXJlbWVudHMpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhIHJlcGVhdCBvZiBkaWRVcGRhdGUgdGhlbiBpZ25vcmUgdGhlIGFuaW1hdGlvbi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uSWQgPD0gdGhpcy5hbmltYXRpb25Db21taXRJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChjbGVhcklzTGF5b3V0RGlydHkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uQ29tbWl0SWQgPSB0aGlzLmFuaW1hdGlvbklkO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzVXBkYXRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goY2xlYXJJc0xheW91dERpcnR5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFdyaXRlXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKHJlc2V0VHJhbnNmb3JtU3R5bGUpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFJlYWQgPT09PT09PT09PT09PT09PT09XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLy8gVXBkYXRlIGxheW91dCBtZWFzdXJlbWVudHMgb2YgdXBkYXRlZCBjaGlsZHJlblxuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaCh1cGRhdGVMYXlvdXQpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFdyaXRlXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLy8gTm90aWZ5IGxpc3RlbmVycyB0aGF0IHRoZSBsYXlvdXQgaXMgdXBkYXRlZFxuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChub3RpZnlMYXlvdXRVcGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jbGVhckFsbFNuYXBzaG90cygpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBNYW51YWxseSBmbHVzaCBhbnkgcGVuZGluZyB1cGRhdGVzLiBJZGVhbGx5XG4gICAgICAgICAgICAgKiB3ZSBjb3VsZCBsZWF2ZSB0aGlzIHRvIHRoZSBmb2xsb3dpbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGJ1dCB0aGlzIHNlZW1zXG4gICAgICAgICAgICAgKiB0byBsZWF2ZSBhIGZsYXNoIG9mIGluY29ycmVjdGx5IHN0eWxlZCBjb250ZW50LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBub3cgPSB0aW1lLm5vdygpO1xuICAgICAgICAgICAgZnJhbWVEYXRhLmRlbHRhID0gY2xhbXAoMCwgMTAwMCAvIDYwLCBub3cgLSBmcmFtZURhdGEudGltZXN0YW1wKTtcbiAgICAgICAgICAgIGZyYW1lRGF0YS50aW1lc3RhbXAgPSBub3c7XG4gICAgICAgICAgICBmcmFtZURhdGEuaXNQcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGZyYW1lU3RlcHMudXBkYXRlLnByb2Nlc3MoZnJhbWVEYXRhKTtcbiAgICAgICAgICAgIGZyYW1lU3RlcHMucHJlUmVuZGVyLnByb2Nlc3MoZnJhbWVEYXRhKTtcbiAgICAgICAgICAgIGZyYW1lU3RlcHMucmVuZGVyLnByb2Nlc3MoZnJhbWVEYXRhKTtcbiAgICAgICAgICAgIGZyYW1lRGF0YS5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBkaWRVcGRhdGUoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMudXBkYXRlU2NoZWR1bGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG1pY3JvdGFzay5yZWFkKHRoaXMuc2NoZWR1bGVVcGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNsZWFyQWxsU25hcHNob3RzKCkge1xuICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGNsZWFyU25hcHNob3QpO1xuICAgICAgICAgICAgdGhpcy5zaGFyZWROb2Rlcy5mb3JFYWNoKHJlbW92ZUxlYWRTbmFwc2hvdHMpO1xuICAgICAgICB9XG4gICAgICAgIHNjaGVkdWxlVXBkYXRlUHJvamVjdGlvbigpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9qZWN0aW9uVXBkYXRlU2NoZWR1bGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uVXBkYXRlU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBmcmFtZS5wcmVSZW5kZXIodGhpcy51cGRhdGVQcm9qZWN0aW9uLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2NoZWR1bGVDaGVja0FmdGVyVW5tb3VudCgpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhlIHVubW91bnRpbmcgbm9kZSBpcyBpbiBhIGxheW91dEdyb3VwIGFuZCBkaWQgdHJpZ2dlciBhIHdpbGxVcGRhdGUsXG4gICAgICAgICAgICAgKiB3ZSBtYW51YWxseSBjYWxsIGRpZFVwZGF0ZSB0byBnaXZlIGEgY2hhbmNlIHRvIHRoZSBzaWJsaW5ncyB0byBhbmltYXRlLlxuICAgICAgICAgICAgICogT3RoZXJ3aXNlLCBjbGVhbnVwIGFsbCBzbmFwc2hvdHMgdG8gcHJldmVudHMgZnV0dXJlIG5vZGVzIGZyb20gcmV1c2luZyB0aGVtLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBmcmFtZS5wb3N0UmVuZGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0xheW91dERpcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdC5kaWRVcGRhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdC5jaGVja1VwZGF0ZUZhaWxlZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVcGRhdGUgbWVhc3VyZW1lbnRzXG4gICAgICAgICAqL1xuICAgICAgICB1cGRhdGVTbmFwc2hvdCgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNuYXBzaG90IHx8ICF0aGlzLmluc3RhbmNlKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuc25hcHNob3QgPSB0aGlzLm1lYXN1cmUoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNuYXBzaG90ICYmXG4gICAgICAgICAgICAgICAgIWNhbGNMZW5ndGgodGhpcy5zbmFwc2hvdC5tZWFzdXJlZEJveC54KSAmJlxuICAgICAgICAgICAgICAgICFjYWxjTGVuZ3RoKHRoaXMuc25hcHNob3QubWVhc3VyZWRCb3gueSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNuYXBzaG90ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZUxheW91dCgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbCgpO1xuICAgICAgICAgICAgaWYgKCEodGhpcy5vcHRpb25zLmFsd2F5c01lYXN1cmVMYXlvdXQgJiYgdGhpcy5pc0xlYWQoKSkgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5pc0xheW91dERpcnR5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBXaGVuIGEgbm9kZSBpcyBtb3VudGVkLCBpdCBzaW1wbHkgcmVzdW1lcyBmcm9tIHRoZSBwcmV2TGVhZCdzXG4gICAgICAgICAgICAgKiBzbmFwc2hvdCBpbnN0ZWFkIG9mIHRha2luZyBhIG5ldyBvbmUsIGJ1dCB0aGUgYW5jZXN0b3JzIHNjcm9sbFxuICAgICAgICAgICAgICogbWlnaHQgaGF2ZSB1cGRhdGVkIHdoaWxlIHRoZSBwcmV2TGVhZCBpcyB1bm1vdW50ZWQuIFdlIG5lZWQgdG9cbiAgICAgICAgICAgICAqIHVwZGF0ZSB0aGUgc2Nyb2xsIGFnYWluIHRvIG1ha2Ugc3VyZSB0aGUgbGF5b3V0IHdlIG1lYXN1cmUgaXNcbiAgICAgICAgICAgICAqIHVwIHRvIGRhdGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLnJlc3VtZUZyb20gJiYgIXRoaXMucmVzdW1lRnJvbS5pbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLnBhdGhbaV07XG4gICAgICAgICAgICAgICAgICAgIG5vZGUudXBkYXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcHJldkxheW91dCA9IHRoaXMubGF5b3V0O1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQgPSB0aGlzLm1lYXN1cmUoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRWZXJzaW9uKys7XG4gICAgICAgICAgICB0aGlzLmxheW91dENvcnJlY3RlZCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgdGhpcy5pc0xheW91dERpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25EZWx0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5TGlzdGVuZXJzKFwibWVhc3VyZVwiLCB0aGlzLmxheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgY29uc3QgeyB2aXN1YWxFbGVtZW50IH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5ub3RpZnkoXCJMYXlvdXRNZWFzdXJlXCIsIHRoaXMubGF5b3V0LmxheW91dEJveCwgcHJldkxheW91dCA/IHByZXZMYXlvdXQubGF5b3V0Qm94IDogdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVTY3JvbGwocGhhc2UgPSBcIm1lYXN1cmVcIikge1xuICAgICAgICAgICAgbGV0IG5lZWRzTWVhc3VyZW1lbnQgPSBCb29sZWFuKHRoaXMub3B0aW9ucy5sYXlvdXRTY3JvbGwgJiYgdGhpcy5pbnN0YW5jZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5zY3JvbGwgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbC5hbmltYXRpb25JZCA9PT0gdGhpcy5yb290LmFuaW1hdGlvbklkICYmXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGwucGhhc2UgPT09IHBoYXNlKSB7XG4gICAgICAgICAgICAgICAgbmVlZHNNZWFzdXJlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5lZWRzTWVhc3VyZW1lbnQgJiYgdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzUm9vdCA9IGNoZWNrSXNTY3JvbGxSb290KHRoaXMuaW5zdGFuY2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsID0ge1xuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25JZDogdGhpcy5yb290LmFuaW1hdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICBwaGFzZSxcbiAgICAgICAgICAgICAgICAgICAgaXNSb290LFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IG1lYXN1cmVTY3JvbGwodGhpcy5pbnN0YW5jZSksXG4gICAgICAgICAgICAgICAgICAgIHdhc1Jvb3Q6IHRoaXMuc2Nyb2xsID8gdGhpcy5zY3JvbGwuaXNSb290IDogaXNSb290LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzZXRUcmFuc2Zvcm0oKSB7XG4gICAgICAgICAgICBpZiAoIXJlc2V0VHJhbnNmb3JtKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGlzUmVzZXRSZXF1ZXN0ZWQgPSB0aGlzLmlzTGF5b3V0RGlydHkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmFsd2F5c01lYXN1cmVMYXlvdXQ7XG4gICAgICAgICAgICBjb25zdCBoYXNQcm9qZWN0aW9uID0gdGhpcy5wcm9qZWN0aW9uRGVsdGEgJiYgIWlzRGVsdGFaZXJvKHRoaXMucHJvamVjdGlvbkRlbHRhKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVRlbXBsYXRlID0gdGhpcy5nZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpO1xuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtVGVtcGxhdGVWYWx1ZSA9IHRyYW5zZm9ybVRlbXBsYXRlXG4gICAgICAgICAgICAgICAgPyB0cmFuc2Zvcm1UZW1wbGF0ZSh0aGlzLmxhdGVzdFZhbHVlcywgXCJcIilcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVRlbXBsYXRlSGFzQ2hhbmdlZCA9IHRyYW5zZm9ybVRlbXBsYXRlVmFsdWUgIT09IHRoaXMucHJldlRyYW5zZm9ybVRlbXBsYXRlVmFsdWU7XG4gICAgICAgICAgICBpZiAoaXNSZXNldFJlcXVlc3RlZCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgJiZcbiAgICAgICAgICAgICAgICAoaGFzUHJvamVjdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICBoYXNUcmFuc2Zvcm0odGhpcy5sYXRlc3RWYWx1ZXMpIHx8XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybVRlbXBsYXRlSGFzQ2hhbmdlZCkpIHtcbiAgICAgICAgICAgICAgICByZXNldFRyYW5zZm9ybSh0aGlzLmluc3RhbmNlLCB0cmFuc2Zvcm1UZW1wbGF0ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG1lYXN1cmUocmVtb3ZlVHJhbnNmb3JtID0gdHJ1ZSkge1xuICAgICAgICAgICAgY29uc3QgcGFnZUJveCA9IHRoaXMubWVhc3VyZVBhZ2VCb3goKTtcbiAgICAgICAgICAgIGxldCBsYXlvdXRCb3ggPSB0aGlzLnJlbW92ZUVsZW1lbnRTY3JvbGwocGFnZUJveCk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE1lYXN1cmVtZW50cyB0YWtlbiBkdXJpbmcgdGhlIHByZS1yZW5kZXIgc3RhZ2VcbiAgICAgICAgICAgICAqIHN0aWxsIGhhdmUgdHJhbnNmb3JtcyBhcHBsaWVkIHNvIHdlIHJlbW92ZSB0aGVtXG4gICAgICAgICAgICAgKiB2aWEgY2FsY3VsYXRpb24uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChyZW1vdmVUcmFuc2Zvcm0pIHtcbiAgICAgICAgICAgICAgICBsYXlvdXRCb3ggPSB0aGlzLnJlbW92ZVRyYW5zZm9ybShsYXlvdXRCb3gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm91bmRCb3gobGF5b3V0Qm94KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uSWQ6IHRoaXMucm9vdC5hbmltYXRpb25JZCxcbiAgICAgICAgICAgICAgICBtZWFzdXJlZEJveDogcGFnZUJveCxcbiAgICAgICAgICAgICAgICBsYXlvdXRCb3gsXG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzOiB7fSxcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoaXMuaWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIG1lYXN1cmVQYWdlQm94KCkge1xuICAgICAgICAgICAgY29uc3QgeyB2aXN1YWxFbGVtZW50IH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAoIXZpc3VhbEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgY29uc3QgYm94ID0gdmlzdWFsRWxlbWVudC5tZWFzdXJlVmlld3BvcnRCb3goKTtcbiAgICAgICAgICAgIGNvbnN0IHdhc0luU2Nyb2xsUm9vdCA9IHRoaXMuc2Nyb2xsPy53YXNSb290IHx8IHRoaXMucGF0aC5zb21lKGNoZWNrTm9kZVdhc1Njcm9sbFJvb3QpO1xuICAgICAgICAgICAgaWYgKCF3YXNJblNjcm9sbFJvb3QpIHtcbiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdmlld3BvcnQgc2Nyb2xsIHRvIGdpdmUgcGFnZS1yZWxhdGl2ZSBjb29yZGluYXRlc1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsIH0gPSB0aGlzLnJvb3Q7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbCkge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBeGlzKGJveC54LCBzY3JvbGwub2Zmc2V0LngpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBeGlzKGJveC55LCBzY3JvbGwub2Zmc2V0LnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBib3g7XG4gICAgICAgIH1cbiAgICAgICAgcmVtb3ZlRWxlbWVudFNjcm9sbChib3gpIHtcbiAgICAgICAgICAgIGNvbnN0IGJveFdpdGhvdXRTY3JvbGwgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIGNvcHlCb3hJbnRvKGJveFdpdGhvdXRTY3JvbGwsIGJveCk7XG4gICAgICAgICAgICBpZiAodGhpcy5zY3JvbGw/Lndhc1Jvb3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYm94V2l0aG91dFNjcm9sbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUGVyZm9ybWFuY2UgVE9ETzogS2VlcCBhIGN1bXVsYXRpdmUgc2Nyb2xsIG9mZnNldCBkb3duIHRoZSB0cmVlXG4gICAgICAgICAgICAgKiByYXRoZXIgdGhhbiBsb29wIGJhY2sgdXAgdGhlIHBhdGguXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMucGF0aFtpXTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNjcm9sbCwgb3B0aW9ucyB9ID0gbm9kZTtcbiAgICAgICAgICAgICAgICBpZiAobm9kZSAhPT0gdGhpcy5yb290ICYmIHNjcm9sbCAmJiBvcHRpb25zLmxheW91dFNjcm9sbCkge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhIG5ldyBzY3JvbGwgcm9vdCwgd2Ugd2FudCB0byByZW1vdmUgYWxsIHByZXZpb3VzIHNjcm9sbHNcbiAgICAgICAgICAgICAgICAgICAgICogZnJvbSB0aGUgdmlld3BvcnQgYm94LlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNjcm9sbC53YXNSb290KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb3B5Qm94SW50byhib3hXaXRob3V0U2Nyb2xsLCBib3gpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZUF4aXMoYm94V2l0aG91dFNjcm9sbC54LCBzY3JvbGwub2Zmc2V0LngpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBeGlzKGJveFdpdGhvdXRTY3JvbGwueSwgc2Nyb2xsLm9mZnNldC55KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYm94V2l0aG91dFNjcm9sbDtcbiAgICAgICAgfVxuICAgICAgICBhcHBseVRyYW5zZm9ybShib3gsIHRyYW5zZm9ybU9ubHkgPSBmYWxzZSkge1xuICAgICAgICAgICAgY29uc3Qgd2l0aFRyYW5zZm9ybXMgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIGNvcHlCb3hJbnRvKHdpdGhUcmFuc2Zvcm1zLCBib3gpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5wYXRoW2ldO1xuICAgICAgICAgICAgICAgIGlmICghdHJhbnNmb3JtT25seSAmJlxuICAgICAgICAgICAgICAgICAgICBub2RlLm9wdGlvbnMubGF5b3V0U2Nyb2xsICYmXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuc2Nyb2xsICYmXG4gICAgICAgICAgICAgICAgICAgIG5vZGUgIT09IG5vZGUucm9vdCkge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1Cb3god2l0aFRyYW5zZm9ybXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IC1ub2RlLnNjcm9sbC5vZmZzZXQueCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IC1ub2RlLnNjcm9sbC5vZmZzZXQueSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghaGFzVHJhbnNmb3JtKG5vZGUubGF0ZXN0VmFsdWVzKSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtQm94KHdpdGhUcmFuc2Zvcm1zLCBub2RlLmxhdGVzdFZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGFzVHJhbnNmb3JtKHRoaXMubGF0ZXN0VmFsdWVzKSkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybUJveCh3aXRoVHJhbnNmb3JtcywgdGhpcy5sYXRlc3RWYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHdpdGhUcmFuc2Zvcm1zO1xuICAgICAgICB9XG4gICAgICAgIHJlbW92ZVRyYW5zZm9ybShib3gpIHtcbiAgICAgICAgICAgIGNvbnN0IGJveFdpdGhvdXRUcmFuc2Zvcm0gPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIGNvcHlCb3hJbnRvKGJveFdpdGhvdXRUcmFuc2Zvcm0sIGJveCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLnBhdGhbaV07XG4gICAgICAgICAgICAgICAgaWYgKCFub2RlLmluc3RhbmNlKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc1RyYW5zZm9ybShub2RlLmxhdGVzdFZhbHVlcykpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGhhc1NjYWxlKG5vZGUubGF0ZXN0VmFsdWVzKSAmJiBub2RlLnVwZGF0ZVNuYXBzaG90KCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlQm94ID0gY3JlYXRlQm94KCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZUJveCA9IG5vZGUubWVhc3VyZVBhZ2VCb3goKTtcbiAgICAgICAgICAgICAgICBjb3B5Qm94SW50byhzb3VyY2VCb3gsIG5vZGVCb3gpO1xuICAgICAgICAgICAgICAgIHJlbW92ZUJveFRyYW5zZm9ybXMoYm94V2l0aG91dFRyYW5zZm9ybSwgbm9kZS5sYXRlc3RWYWx1ZXMsIG5vZGUuc25hcHNob3QgPyBub2RlLnNuYXBzaG90LmxheW91dEJveCA6IHVuZGVmaW5lZCwgc291cmNlQm94KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNUcmFuc2Zvcm0odGhpcy5sYXRlc3RWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlQm94VHJhbnNmb3Jtcyhib3hXaXRob3V0VHJhbnNmb3JtLCB0aGlzLmxhdGVzdFZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYm94V2l0aG91dFRyYW5zZm9ybTtcbiAgICAgICAgfVxuICAgICAgICBzZXRUYXJnZXREZWx0YShkZWx0YSkge1xuICAgICAgICAgICAgdGhpcy50YXJnZXREZWx0YSA9IGRlbHRhO1xuICAgICAgICAgICAgdGhpcy5yb290LnNjaGVkdWxlVXBkYXRlUHJvamVjdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5pc1Byb2plY3Rpb25EaXJ0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgc2V0T3B0aW9ucyhvcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgY3Jvc3NmYWRlOiBvcHRpb25zLmNyb3NzZmFkZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5jcm9zc2ZhZGUgOiB0cnVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjbGVhck1lYXN1cmVtZW50cygpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnNuYXBzaG90ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5wcmV2VHJhbnNmb3JtVGVtcGxhdGVWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0RGVsdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuaXNMYXlvdXREaXJ0eSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMucmVsYXRpdmVQYXJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGUgcGFyZW50IHRhcmdldCBpc24ndCB1cC10by1kYXRlLCBmb3JjZSBpdCB0byB1cGRhdGUuXG4gICAgICAgICAgICAgKiBUaGlzIGlzIGFuIHVuZm9ydHVuYXRlIGRlLW9wdGltaXNhdGlvbiBhcyBpdCBtZWFucyBhbnkgdXBkYXRpbmcgcmVsYXRpdmVcbiAgICAgICAgICAgICAqIHByb2plY3Rpb24gd2lsbCBjYXVzZSBhbGwgdGhlIHJlbGF0aXZlIHBhcmVudHMgdG8gcmVjYWxjdWxhdGUgYmFja1xuICAgICAgICAgICAgICogdXAgdGhlIHRyZWUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLnJlbGF0aXZlUGFyZW50LnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdCAhPT1cbiAgICAgICAgICAgICAgICBmcmFtZURhdGEudGltZXN0YW1wKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudC5yZXNvbHZlVGFyZ2V0RGVsdGEodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZVRhcmdldERlbHRhKGZvcmNlUmVjYWxjdWxhdGlvbiA9IGZhbHNlKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE9uY2UgdGhlIGRpcnR5IHN0YXR1cyBvZiBub2RlcyBoYXMgYmVlbiBzcHJlYWQgdGhyb3VnaCB0aGUgdHJlZSwgd2UgYWxzb1xuICAgICAgICAgICAgICogbmVlZCB0byBjaGVjayBpZiB3ZSBoYXZlIGEgc2hhcmVkIG5vZGUgb2YgYSBkaWZmZXJlbnQgZGVwdGggdGhhdCBoYXMgaXRzZWxmXG4gICAgICAgICAgICAgKiBiZWVuIGRpcnRpZWQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGxlYWQgPSB0aGlzLmdldExlYWQoKTtcbiAgICAgICAgICAgIHRoaXMuaXNQcm9qZWN0aW9uRGlydHkgfHwgKHRoaXMuaXNQcm9qZWN0aW9uRGlydHkgPSBsZWFkLmlzUHJvamVjdGlvbkRpcnR5KTtcbiAgICAgICAgICAgIHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eSB8fCAodGhpcy5pc1RyYW5zZm9ybURpcnR5ID0gbGVhZC5pc1RyYW5zZm9ybURpcnR5KTtcbiAgICAgICAgICAgIHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgfHwgKHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgPSBsZWFkLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5KTtcbiAgICAgICAgICAgIGNvbnN0IGlzU2hhcmVkID0gQm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSkgfHwgdGhpcyAhPT0gbGVhZDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2UgZG9uJ3QgdXNlIHRyYW5zZm9ybSBmb3IgdGhpcyBzdGVwIG9mIHByb2Nlc3Npbmcgc28gd2UgZG9uJ3RcbiAgICAgICAgICAgICAqIG5lZWQgdG8gY2hlY2sgd2hldGhlciBhbnkgbm9kZXMgaGF2ZSBjaGFuZ2VkIHRyYW5zZm9ybS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgY2FuU2tpcCA9ICEoZm9yY2VSZWNhbGN1bGF0aW9uIHx8XG4gICAgICAgICAgICAgICAgKGlzU2hhcmVkICYmIHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5pc1Byb2plY3Rpb25EaXJ0eSB8fFxuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50Py5pc1Byb2plY3Rpb25EaXJ0eSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuYXR0ZW1wdFRvUmVzb2x2ZVJlbGF0aXZlVGFyZ2V0IHx8XG4gICAgICAgICAgICAgICAgdGhpcy5yb290LnVwZGF0ZUJsb2NrZWRCeVJlc2l6ZSk7XG4gICAgICAgICAgICBpZiAoY2FuU2tpcClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCB7IGxheW91dCwgbGF5b3V0SWQgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBubyBsYXlvdXQsIHdlIGNhbid0IHBlcmZvcm0gcHJvamVjdGlvbiwgc28gZWFybHkgcmV0dXJuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICghdGhpcy5sYXlvdXQgfHwgIShsYXlvdXQgfHwgbGF5b3V0SWQpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZWRSZWxhdGl2ZVRhcmdldEF0ID0gZnJhbWVEYXRhLnRpbWVzdGFtcDtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0aXZlUGFyZW50ID0gdGhpcy5nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpO1xuICAgICAgICAgICAgaWYgKHJlbGF0aXZlUGFyZW50ICYmXG4gICAgICAgICAgICAgICAgdGhpcy5saW5rZWRQYXJlbnRWZXJzaW9uICE9PSByZWxhdGl2ZVBhcmVudC5sYXlvdXRWZXJzaW9uICYmXG4gICAgICAgICAgICAgICAgIXJlbGF0aXZlUGFyZW50Lm9wdGlvbnMubGF5b3V0Um9vdCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlUmVsYXRpdmVUYXJnZXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgZG9uJ3QgaGF2ZSBhIHRhcmdldERlbHRhIGJ1dCBkbyBoYXZlIGEgbGF5b3V0LCB3ZSBjYW4gYXR0ZW1wdCB0byByZXNvbHZlXG4gICAgICAgICAgICAgKiBhIHJlbGF0aXZlUGFyZW50LiBUaGlzIHdpbGwgYWxsb3cgYSBjb21wb25lbnQgdG8gcGVyZm9ybSBzY2FsZSBjb3JyZWN0aW9uXG4gICAgICAgICAgICAgKiBldmVuIGlmIG5vIGFuaW1hdGlvbiBoYXMgc3RhcnRlZC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRhcmdldERlbHRhICYmICF0aGlzLnJlbGF0aXZlVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlbGF0aXZlUGFyZW50ICYmIHJlbGF0aXZlUGFyZW50LmxheW91dCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVJlbGF0aXZlVGFyZ2V0KHJlbGF0aXZlUGFyZW50LCB0aGlzLmxheW91dC5sYXlvdXRCb3gsIHJlbGF0aXZlUGFyZW50LmxheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVSZWxhdGl2ZVRhcmdldCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBubyByZWxhdGl2ZSB0YXJnZXQgb3Igbm8gdGFyZ2V0IGRlbHRhIG91ciB0YXJnZXQgaXNuJ3QgdmFsaWRcbiAgICAgICAgICAgICAqIGZvciB0aGlzIGZyYW1lLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVsYXRpdmVUYXJnZXQgJiYgIXRoaXMudGFyZ2V0RGVsdGEpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBMYXp5LWluaXQgdGFyZ2V0IGRhdGEgc3RydWN0dXJlXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICghdGhpcy50YXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhcmdldCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0V2l0aFRyYW5zZm9ybXMgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UndmUgZ290IGEgcmVsYXRpdmUgYm94IGZvciB0aGlzIGNvbXBvbmVudCwgcmVzb2x2ZSBpdCBpbnRvIGEgdGFyZ2V0IHJlbGF0aXZlIHRvIHRoZSBwYXJlbnQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLnJlbGF0aXZlVGFyZ2V0ICYmXG4gICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiAmJlxuICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpdmVQYXJlbnQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50LnRhcmdldCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9yY2VSZWxhdGl2ZVBhcmVudFRvUmVzb2x2ZVRhcmdldCgpO1xuICAgICAgICAgICAgICAgIGNhbGNSZWxhdGl2ZUJveCh0aGlzLnRhcmdldCwgdGhpcy5yZWxhdGl2ZVRhcmdldCwgdGhpcy5yZWxhdGl2ZVBhcmVudC50YXJnZXQpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHdlJ3ZlIG9ubHkgZ290IGEgdGFyZ2V0RGVsdGEsIHJlc29sdmUgaXQgaW50byBhIHRhcmdldFxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50YXJnZXREZWx0YSkge1xuICAgICAgICAgICAgICAgIGlmIChCb29sZWFuKHRoaXMucmVzdW1pbmdGcm9tKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGlzIGNyZWF0aW5nIGEgbmV3IG9iamVjdCBldmVyeSBmcmFtZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldCA9IHRoaXMuYXBwbHlUcmFuc2Zvcm0odGhpcy5sYXlvdXQubGF5b3V0Qm94KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvcHlCb3hJbnRvKHRoaXMudGFyZ2V0LCB0aGlzLmxheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhcHBseUJveERlbHRhKHRoaXMudGFyZ2V0LCB0aGlzLnRhcmdldERlbHRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIG5vIHRhcmdldCwgdXNlIG93biBsYXlvdXQgYXMgdGFyZ2V0XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgY29weUJveEludG8odGhpcy50YXJnZXQsIHRoaXMubGF5b3V0LmxheW91dEJveCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlJ3ZlIGJlZW4gdG9sZCB0byBhdHRlbXB0IHRvIHJlc29sdmUgYSByZWxhdGl2ZSB0YXJnZXQsIGRvIHNvLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy5hdHRlbXB0VG9SZXNvbHZlUmVsYXRpdmVUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmF0dGVtcHRUb1Jlc29sdmVSZWxhdGl2ZVRhcmdldCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmIChyZWxhdGl2ZVBhcmVudCAmJlxuICAgICAgICAgICAgICAgICAgICBCb29sZWFuKHJlbGF0aXZlUGFyZW50LnJlc3VtaW5nRnJvbSkgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICBCb29sZWFuKHRoaXMucmVzdW1pbmdGcm9tKSAmJlxuICAgICAgICAgICAgICAgICAgICAhcmVsYXRpdmVQYXJlbnQub3B0aW9ucy5sYXlvdXRTY3JvbGwgJiZcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVQYXJlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uUHJvZ3Jlc3MgIT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVSZWxhdGl2ZVRhcmdldChyZWxhdGl2ZVBhcmVudCwgdGhpcy50YXJnZXQsIHJlbGF0aXZlUGFyZW50LnRhcmdldCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50ID0gdGhpcy5yZWxhdGl2ZVRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEluY3JlYXNlIGRlYnVnIGNvdW50ZXIgZm9yIHJlc29sdmVkIHRhcmdldCBkZWx0YXNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHN0YXRzQnVmZmVyLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbWV0cmljcy5jYWxjdWxhdGVkVGFyZ2V0RGVsdGFzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZ2V0Q2xvc2VzdFByb2plY3RpbmdQYXJlbnQoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMucGFyZW50IHx8XG4gICAgICAgICAgICAgICAgaGFzU2NhbGUodGhpcy5wYXJlbnQubGF0ZXN0VmFsdWVzKSB8fFxuICAgICAgICAgICAgICAgIGhhczJEVHJhbnNsYXRlKHRoaXMucGFyZW50LmxhdGVzdFZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50LmlzUHJvamVjdGluZygpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50LmdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaXNQcm9qZWN0aW5nKCkge1xuICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW4oKHRoaXMucmVsYXRpdmVUYXJnZXQgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnRhcmdldERlbHRhIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmxheW91dFJvb3QpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQpO1xuICAgICAgICB9XG4gICAgICAgIGNyZWF0ZVJlbGF0aXZlVGFyZ2V0KHJlbGF0aXZlUGFyZW50LCBsYXlvdXQsIHBhcmVudExheW91dCkge1xuICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudCA9IHJlbGF0aXZlUGFyZW50O1xuICAgICAgICAgICAgdGhpcy5saW5rZWRQYXJlbnRWZXJzaW9uID0gcmVsYXRpdmVQYXJlbnQubGF5b3V0VmVyc2lvbjtcbiAgICAgICAgICAgIHRoaXMuZm9yY2VSZWxhdGl2ZVBhcmVudFRvUmVzb2x2ZVRhcmdldCgpO1xuICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgY2FsY1JlbGF0aXZlUG9zaXRpb24odGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiwgbGF5b3V0LCBwYXJlbnRMYXlvdXQpO1xuICAgICAgICAgICAgY29weUJveEludG8odGhpcy5yZWxhdGl2ZVRhcmdldCwgdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbik7XG4gICAgICAgIH1cbiAgICAgICAgcmVtb3ZlUmVsYXRpdmVUYXJnZXQoKSB7XG4gICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50ID0gdGhpcy5yZWxhdGl2ZVRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjYWxjUHJvamVjdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnN0IGxlYWQgPSB0aGlzLmdldExlYWQoKTtcbiAgICAgICAgICAgIGNvbnN0IGlzU2hhcmVkID0gQm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSkgfHwgdGhpcyAhPT0gbGVhZDtcbiAgICAgICAgICAgIGxldCBjYW5Ta2lwID0gdHJ1ZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhIG5vcm1hbCBsYXlvdXQgYW5pbWF0aW9uIGFuZCBuZWl0aGVyIHRoaXMgbm9kZSBub3IgaXRzIG5lYXJlc3QgcHJvamVjdGluZ1xuICAgICAgICAgICAgICogaXMgZGlydHkgdGhlbiB3ZSBjYW4ndCBza2lwLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy5pc1Byb2plY3Rpb25EaXJ0eSB8fCB0aGlzLnBhcmVudD8uaXNQcm9qZWN0aW9uRGlydHkpIHtcbiAgICAgICAgICAgICAgICBjYW5Ta2lwID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYSBzaGFyZWQgbGF5b3V0IGFuaW1hdGlvbiBhbmQgdGhpcyBub2RlJ3Mgc2hhcmVkIHByb2plY3Rpb24gaXMgZGlydHkgdGhlblxuICAgICAgICAgICAgICogd2UgY2FuJ3Qgc2tpcC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKGlzU2hhcmVkICYmXG4gICAgICAgICAgICAgICAgKHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgfHwgdGhpcy5pc1RyYW5zZm9ybURpcnR5KSkge1xuICAgICAgICAgICAgICAgIGNhblNraXAgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSByZXNvbHZlZCB0aGUgdGFyZ2V0IHRoaXMgZnJhbWUgd2UgbXVzdCByZWNhbGN1bGF0ZSB0aGVcbiAgICAgICAgICAgICAqIHByb2plY3Rpb24gdG8gZW5zdXJlIGl0IHZpc3VhbGx5IHJlcHJlc2VudHMgdGhlIGludGVybmFsIGNhbGN1bGF0aW9ucy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMucmVzb2x2ZWRSZWxhdGl2ZVRhcmdldEF0ID09PSBmcmFtZURhdGEudGltZXN0YW1wKSB7XG4gICAgICAgICAgICAgICAgY2FuU2tpcCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhblNraXApXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgeyBsYXlvdXQsIGxheW91dElkIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoaXMgc2VjdGlvbiBvZiB0aGUgdHJlZSBpc24ndCBhbmltYXRpbmcgd2UgY2FuXG4gICAgICAgICAgICAgKiBkZWxldGUgb3VyIHRhcmdldCBzb3VyY2VzIGZvciB0aGUgZm9sbG93aW5nIGZyYW1lLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmlzVHJlZUFuaW1hdGluZyA9IEJvb2xlYW4oKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50LmlzVHJlZUFuaW1hdGluZykgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltYXRpb24gfHxcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBbmltYXRpb24pO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzVHJlZUFuaW1hdGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0RGVsdGEgPSB0aGlzLnJlbGF0aXZlVGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLmxheW91dCB8fCAhKGxheW91dCB8fCBsYXlvdXRJZCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBSZXNldCB0aGUgY29ycmVjdGVkIGJveCB3aXRoIHRoZSBsYXRlc3QgdmFsdWVzIGZyb20gYm94LCBhcyB3ZSdyZSB0aGVuIGdvaW5nXG4gICAgICAgICAgICAgKiB0byBwZXJmb3JtIG11dGF0aXZlIG9wZXJhdGlvbnMgb24gaXQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvcHlCb3hJbnRvKHRoaXMubGF5b3V0Q29ycmVjdGVkLCB0aGlzLmxheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBSZWNvcmQgcHJldmlvdXMgdHJlZSBzY2FsZXMgYmVmb3JlIHVwZGF0aW5nLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBwcmV2VHJlZVNjYWxlWCA9IHRoaXMudHJlZVNjYWxlLng7XG4gICAgICAgICAgICBjb25zdCBwcmV2VHJlZVNjYWxlWSA9IHRoaXMudHJlZVNjYWxlLnk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEFwcGx5IGFsbCB0aGUgcGFyZW50IGRlbHRhcyB0byB0aGlzIGJveCB0byBwcm9kdWNlIHRoZSBjb3JyZWN0ZWQgYm94LiBUaGlzXG4gICAgICAgICAgICAgKiBpcyB0aGUgbGF5b3V0IGJveCwgYXMgaXQgd2lsbCBhcHBlYXIgb24gc2NyZWVuIGFzIGEgcmVzdWx0IG9mIHRoZSB0cmFuc2Zvcm1zIG9mIGl0cyBwYXJlbnRzLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhcHBseVRyZWVEZWx0YXModGhpcy5sYXlvdXRDb3JyZWN0ZWQsIHRoaXMudHJlZVNjYWxlLCB0aGlzLnBhdGgsIGlzU2hhcmVkKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBsYXllciBuZWVkcyB0byBwZXJmb3JtIHNjYWxlIGNvcnJlY3Rpb24gYnV0IGRvZXNuJ3QgaGF2ZSBhIHRhcmdldCxcbiAgICAgICAgICAgICAqIHVzZSB0aGUgbGF5b3V0IGFzIHRoZSB0YXJnZXQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChsZWFkLmxheW91dCAmJlxuICAgICAgICAgICAgICAgICFsZWFkLnRhcmdldCAmJlxuICAgICAgICAgICAgICAgICh0aGlzLnRyZWVTY2FsZS54ICE9PSAxIHx8IHRoaXMudHJlZVNjYWxlLnkgIT09IDEpKSB7XG4gICAgICAgICAgICAgICAgbGVhZC50YXJnZXQgPSBsZWFkLmxheW91dC5sYXlvdXRCb3g7XG4gICAgICAgICAgICAgICAgbGVhZC50YXJnZXRXaXRoVHJhbnNmb3JtcyA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyB0YXJnZXQgfSA9IGxlYWQ7XG4gICAgICAgICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHdlIGRvbid0IGhhdmUgYSB0YXJnZXQgdG8gcHJvamVjdCBpbnRvLCBidXQgd2Ugd2VyZSBwcmV2aW91c2x5XG4gICAgICAgICAgICAgICAgICogcHJvamVjdGluZywgd2Ugd2FudCB0byByZW1vdmUgdGhlIHN0b3JlZCB0cmFuc2Zvcm0gYW5kIHNjaGVkdWxlXG4gICAgICAgICAgICAgICAgICogYSByZW5kZXIgdG8gZW5zdXJlIHRoZSBlbGVtZW50cyByZWZsZWN0IHRoZSByZW1vdmVkIHRyYW5zZm9ybS5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUHJvamVjdGlvbkRlbHRhcygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlUmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9qZWN0aW9uRGVsdGEgfHwgIXRoaXMucHJldlByb2plY3Rpb25EZWx0YSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUHJvamVjdGlvbkRlbHRhcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29weUF4aXNEZWx0YUludG8odGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhLngsIHRoaXMucHJvamVjdGlvbkRlbHRhLngpO1xuICAgICAgICAgICAgICAgIGNvcHlBeGlzRGVsdGFJbnRvKHRoaXMucHJldlByb2plY3Rpb25EZWx0YS55LCB0aGlzLnByb2plY3Rpb25EZWx0YS55KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVXBkYXRlIHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSBjb3JyZWN0ZWQgYm94IGFuZCB0aGUgdGFyZ2V0IGJveCBiZWZvcmUgdXNlci1zZXQgdHJhbnNmb3JtcyB3ZXJlIGFwcGxpZWQuXG4gICAgICAgICAgICAgKiBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gY2FsY3VsYXRlIHRoZSBjb3JyZWN0ZWQgYm9yZGVyUmFkaXVzIGFuZCBib3hTaGFkb3cgdG8gY29tcGVuc2F0ZVxuICAgICAgICAgICAgICogZm9yIG91ciBsYXlvdXQgcmVwcm9qZWN0aW9uLCBidXQgc3RpbGwgYWxsb3cgdGhlbSB0byBiZSBzY2FsZWQgY29ycmVjdGx5IGJ5IHRoZSB1c2VyLlxuICAgICAgICAgICAgICogSXQgbWlnaHQgYmUgdGhhdCB0byBzaW1wbGlmeSB0aGlzIHdlIG1heSB3YW50IHRvIGFjY2VwdCB0aGF0IHVzZXItc2V0IHNjYWxlIGlzIGFsc28gY29ycmVjdGVkXG4gICAgICAgICAgICAgKiBhbmQgd2Ugd291bGRuJ3QgaGF2ZSB0byBrZWVwIGFuZCBjYWxjIGJvdGggZGVsdGFzLCBPUiB3ZSBjb3VsZCBzdXBwb3J0IGEgdXNlciBzZXR0aW5nXG4gICAgICAgICAgICAgKiB0byBhbGxvdyBwZW9wbGUgdG8gY2hvb3NlIHdoZXRoZXIgdGhlc2Ugc3R5bGVzIGFyZSBjb3JyZWN0ZWQgYmFzZWQgb24ganVzdCB0aGVcbiAgICAgICAgICAgICAqIGxheW91dCByZXByb2plY3Rpb24gb3IgdGhlIGZpbmFsIGJvdW5kaW5nIGJveC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY2FsY0JveERlbHRhKHRoaXMucHJvamVjdGlvbkRlbHRhLCB0aGlzLmxheW91dENvcnJlY3RlZCwgdGFyZ2V0LCB0aGlzLmxhdGVzdFZhbHVlcyk7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlU2NhbGUueCAhPT0gcHJldlRyZWVTY2FsZVggfHxcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVTY2FsZS55ICE9PSBwcmV2VHJlZVNjYWxlWSB8fFxuICAgICAgICAgICAgICAgICFheGlzRGVsdGFFcXVhbHModGhpcy5wcm9qZWN0aW9uRGVsdGEueCwgdGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhLngpIHx8XG4gICAgICAgICAgICAgICAgIWF4aXNEZWx0YUVxdWFscyh0aGlzLnByb2plY3Rpb25EZWx0YS55LCB0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEueSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc1Byb2plY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5TGlzdGVuZXJzKFwicHJvamVjdGlvblVwZGF0ZVwiLCB0YXJnZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJbmNyZWFzZSBkZWJ1ZyBjb3VudGVyIGZvciByZWNhbGN1bGF0ZWQgcHJvamVjdGlvbnNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHN0YXRzQnVmZmVyLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbWV0cmljcy5jYWxjdWxhdGVkUHJvamVjdGlvbnMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBoaWRlKCkge1xuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIC8vIFRPRE86IFNjaGVkdWxlIHJlbmRlclxuICAgICAgICB9XG4gICAgICAgIHNob3coKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICAvLyBUT0RPOiBTY2hlZHVsZSByZW5kZXJcbiAgICAgICAgfVxuICAgICAgICBzY2hlZHVsZVJlbmRlcihub3RpZnlBbGwgPSB0cnVlKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMudmlzdWFsRWxlbWVudD8uc2NoZWR1bGVSZW5kZXIoKTtcbiAgICAgICAgICAgIGlmIChub3RpZnlBbGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFjayA9IHRoaXMuZ2V0U3RhY2soKTtcbiAgICAgICAgICAgICAgICBzdGFjayAmJiBzdGFjay5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucmVzdW1pbmdGcm9tICYmICF0aGlzLnJlc3VtaW5nRnJvbS5pbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzdW1pbmdGcm9tID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNyZWF0ZVByb2plY3Rpb25EZWx0YXMoKSB7XG4gICAgICAgICAgICB0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEgPSBjcmVhdGVEZWx0YSgpO1xuICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uRGVsdGEgPSBjcmVhdGVEZWx0YSgpO1xuICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uRGVsdGFXaXRoVHJhbnNmb3JtID0gY3JlYXRlRGVsdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRBbmltYXRpb25PcmlnaW4oZGVsdGEsIGhhc09ubHlSZWxhdGl2ZVRhcmdldENoYW5nZWQgPSBmYWxzZSkge1xuICAgICAgICAgICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnNuYXBzaG90O1xuICAgICAgICAgICAgY29uc3Qgc25hcHNob3RMYXRlc3RWYWx1ZXMgPSBzbmFwc2hvdCA/IHNuYXBzaG90LmxhdGVzdFZhbHVlcyA6IHt9O1xuICAgICAgICAgICAgY29uc3QgbWl4ZWRWYWx1ZXMgPSB7IC4uLnRoaXMubGF0ZXN0VmFsdWVzIH07XG4gICAgICAgICAgICBjb25zdCB0YXJnZXREZWx0YSA9IGNyZWF0ZURlbHRhKCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMucmVsYXRpdmVQYXJlbnQgfHxcbiAgICAgICAgICAgICAgICAhdGhpcy5yZWxhdGl2ZVBhcmVudC5vcHRpb25zLmxheW91dFJvb3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlVGFyZ2V0ID0gdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYXR0ZW1wdFRvUmVzb2x2ZVJlbGF0aXZlVGFyZ2V0ID0gIWhhc09ubHlSZWxhdGl2ZVRhcmdldENoYW5nZWQ7XG4gICAgICAgICAgICBjb25zdCByZWxhdGl2ZUxheW91dCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgY29uc3Qgc25hcHNob3RTb3VyY2UgPSBzbmFwc2hvdCA/IHNuYXBzaG90LnNvdXJjZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGxheW91dFNvdXJjZSA9IHRoaXMubGF5b3V0ID8gdGhpcy5sYXlvdXQuc291cmNlIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaXNTaGFyZWRMYXlvdXRBbmltYXRpb24gPSBzbmFwc2hvdFNvdXJjZSAhPT0gbGF5b3V0U291cmNlO1xuICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKCk7XG4gICAgICAgICAgICBjb25zdCBpc09ubHlNZW1iZXIgPSAhc3RhY2sgfHwgc3RhY2subWVtYmVycy5sZW5ndGggPD0gMTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZENyb3NzZmFkZU9wYWNpdHkgPSBCb29sZWFuKGlzU2hhcmVkTGF5b3V0QW5pbWF0aW9uICYmXG4gICAgICAgICAgICAgICAgIWlzT25seU1lbWJlciAmJlxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5jcm9zc2ZhZGUgPT09IHRydWUgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5wYXRoLnNvbWUoaGFzT3BhY2l0eUNyb3NzZmFkZSkpO1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25Qcm9ncmVzcyA9IDA7XG4gICAgICAgICAgICBsZXQgcHJldlJlbGF0aXZlVGFyZ2V0O1xuICAgICAgICAgICAgdGhpcy5taXhUYXJnZXREZWx0YSA9IChsYXRlc3QpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9ncmVzcyA9IGxhdGVzdCAvIDEwMDA7XG4gICAgICAgICAgICAgICAgbWl4QXhpc0RlbHRhKHRhcmdldERlbHRhLngsIGRlbHRhLngsIHByb2dyZXNzKTtcbiAgICAgICAgICAgICAgICBtaXhBeGlzRGVsdGEodGFyZ2V0RGVsdGEueSwgZGVsdGEueSwgcHJvZ3Jlc3MpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VGFyZ2V0RGVsdGEodGFyZ2V0RGVsdGEpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlbGF0aXZlVGFyZ2V0ICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4gJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50LmxheW91dCkge1xuICAgICAgICAgICAgICAgICAgICBjYWxjUmVsYXRpdmVQb3NpdGlvbihyZWxhdGl2ZUxheW91dCwgdGhpcy5sYXlvdXQubGF5b3V0Qm94LCB0aGlzLnJlbGF0aXZlUGFyZW50LmxheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgICAgICAgICBtaXhCb3godGhpcy5yZWxhdGl2ZVRhcmdldCwgdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiwgcmVsYXRpdmVMYXlvdXQsIHByb2dyZXNzKTtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYW4gdW5jaGFuZ2VkIHJlbGF0aXZlIHRhcmdldCB3ZSBjYW4gY29uc2lkZXIgdGhlXG4gICAgICAgICAgICAgICAgICAgICAqIHByb2plY3Rpb24gbm90IGRpcnR5LlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZSZWxhdGl2ZVRhcmdldCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYm94RXF1YWxzKHRoaXMucmVsYXRpdmVUYXJnZXQsIHByZXZSZWxhdGl2ZVRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNQcm9qZWN0aW9uRGlydHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZSZWxhdGl2ZVRhcmdldClcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZSZWxhdGl2ZVRhcmdldCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgICAgICAgICBjb3B5Qm94SW50byhwcmV2UmVsYXRpdmVUYXJnZXQsIHRoaXMucmVsYXRpdmVUYXJnZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNTaGFyZWRMYXlvdXRBbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25WYWx1ZXMgPSBtaXhlZFZhbHVlcztcbiAgICAgICAgICAgICAgICAgICAgbWl4VmFsdWVzKG1peGVkVmFsdWVzLCBzbmFwc2hvdExhdGVzdFZhbHVlcywgdGhpcy5sYXRlc3RWYWx1ZXMsIHByb2dyZXNzLCBzaG91bGRDcm9zc2ZhZGVPcGFjaXR5LCBpc09ubHlNZW1iZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnJvb3Quc2NoZWR1bGVVcGRhdGVQcm9qZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uUHJvZ3Jlc3MgPSBwcm9ncmVzcztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLm1peFRhcmdldERlbHRhKHRoaXMub3B0aW9ucy5sYXlvdXRSb290ID8gMTAwMCA6IDApO1xuICAgICAgICB9XG4gICAgICAgIHN0YXJ0QW5pbWF0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5TGlzdGVuZXJzKFwiYW5pbWF0aW9uU3RhcnRcIik7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltYXRpb24/LnN0b3AoKTtcbiAgICAgICAgICAgIHRoaXMucmVzdW1pbmdGcm9tPy5jdXJyZW50QW5pbWF0aW9uPy5zdG9wKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5wZW5kaW5nQW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FuY2VsRnJhbWUodGhpcy5wZW5kaW5nQW5pbWF0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBbmltYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFN0YXJ0IHRoZSBhbmltYXRpb24gaW4gdGhlIG5leHQgZnJhbWUgdG8gaGF2ZSBhIGZyYW1lIHdpdGggcHJvZ3Jlc3MgMCxcbiAgICAgICAgICAgICAqIHdoZXJlIHRoZSB0YXJnZXQgaXMgdGhlIHNhbWUgYXMgd2hlbiB0aGUgYW5pbWF0aW9uIHN0YXJ0ZWQsIHNvIHdlIGNhblxuICAgICAgICAgICAgICogY2FsY3VsYXRlIHRoZSByZWxhdGl2ZSBwb3NpdGlvbnMgY29ycmVjdGx5IGZvciBpbnN0YW50IHRyYW5zaXRpb25zLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdBbmltYXRpb24gPSBmcmFtZS51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGdsb2JhbFByb2plY3Rpb25TdGF0ZS5oYXNBbmltYXRlZFNpbmNlUmVzaXplID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBhY3RpdmVBbmltYXRpb25zLmxheW91dCsrO1xuICAgICAgICAgICAgICAgIHRoaXMubW90aW9uVmFsdWUgfHwgKHRoaXMubW90aW9uVmFsdWUgPSBtb3Rpb25WYWx1ZSgwKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3Rpb25WYWx1ZS5qdW1wKDAsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltYXRpb24gPSBhbmltYXRlU2luZ2xlVmFsdWUodGhpcy5tb3Rpb25WYWx1ZSwgWzAsIDEwMDBdLCB7XG4gICAgICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIHZlbG9jaXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICBpc1N5bmM6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG9uVXBkYXRlOiAobGF0ZXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1peFRhcmdldERlbHRhKGxhdGVzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm9uVXBkYXRlICYmIG9wdGlvbnMub25VcGRhdGUobGF0ZXN0KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb25TdG9wOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVBbmltYXRpb25zLmxheW91dC0tO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvbkNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVBbmltYXRpb25zLmxheW91dC0tO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5vbkNvbXBsZXRlICYmIG9wdGlvbnMub25Db21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZUFuaW1hdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc3VtaW5nRnJvbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbS5jdXJyZW50QW5pbWF0aW9uID0gdGhpcy5jdXJyZW50QW5pbWF0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBbmltYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb21wbGV0ZUFuaW1hdGlvbigpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlc3VtaW5nRnJvbSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzdW1pbmdGcm9tLmN1cnJlbnRBbmltYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXN1bWluZ0Zyb20ucHJlc2VydmVPcGFjaXR5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKCk7XG4gICAgICAgICAgICBzdGFjayAmJiBzdGFjay5leGl0QW5pbWF0aW9uQ29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMucmVzdW1pbmdGcm9tID1cbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltYXRpb24gPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvblZhbHVlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeUxpc3RlbmVycyhcImFuaW1hdGlvbkNvbXBsZXRlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmlzaEFuaW1hdGlvbigpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRBbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1peFRhcmdldERlbHRhICYmIHRoaXMubWl4VGFyZ2V0RGVsdGEoYW5pbWF0aW9uVGFyZ2V0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltYXRpb24uc3RvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZUFuaW1hdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGFwcGx5VHJhbnNmb3Jtc1RvVGFyZ2V0KCkge1xuICAgICAgICAgICAgY29uc3QgbGVhZCA9IHRoaXMuZ2V0TGVhZCgpO1xuICAgICAgICAgICAgbGV0IHsgdGFyZ2V0V2l0aFRyYW5zZm9ybXMsIHRhcmdldCwgbGF5b3V0LCBsYXRlc3RWYWx1ZXMgfSA9IGxlYWQ7XG4gICAgICAgICAgICBpZiAoIXRhcmdldFdpdGhUcmFuc2Zvcm1zIHx8ICF0YXJnZXQgfHwgIWxheW91dClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlJ3JlIG9ubHkgYW5pbWF0aW5nIHBvc2l0aW9uLCBhbmQgdGhpcyBlbGVtZW50IGlzbid0IHRoZSBsZWFkIGVsZW1lbnQsXG4gICAgICAgICAgICAgKiB0aGVuIGluc3RlYWQgb2YgcHJvamVjdGluZyBpbnRvIHRoZSBsZWFkIGJveCB3ZSBpbnN0ZWFkIHdhbnQgdG8gY2FsY3VsYXRlXG4gICAgICAgICAgICAgKiBhIG5ldyB0YXJnZXQgdGhhdCBhbGlnbnMgdGhlIHR3byBib3hlcyBidXQgbWFpbnRhaW5zIHRoZSBsYXlvdXQgc2hhcGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzICE9PSBsZWFkICYmXG4gICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQgJiZcbiAgICAgICAgICAgICAgICBsYXlvdXQgJiZcbiAgICAgICAgICAgICAgICBzaG91bGRBbmltYXRlUG9zaXRpb25Pbmx5KHRoaXMub3B0aW9ucy5hbmltYXRpb25UeXBlLCB0aGlzLmxheW91dC5sYXlvdXRCb3gsIGxheW91dC5sYXlvdXRCb3gpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gdGhpcy50YXJnZXQgfHwgY3JlYXRlQm94KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeExlbmd0aCA9IGNhbGNMZW5ndGgodGhpcy5sYXlvdXQubGF5b3V0Qm94LngpO1xuICAgICAgICAgICAgICAgIHRhcmdldC54Lm1pbiA9IGxlYWQudGFyZ2V0LngubWluO1xuICAgICAgICAgICAgICAgIHRhcmdldC54Lm1heCA9IHRhcmdldC54Lm1pbiArIHhMZW5ndGg7XG4gICAgICAgICAgICAgICAgY29uc3QgeUxlbmd0aCA9IGNhbGNMZW5ndGgodGhpcy5sYXlvdXQubGF5b3V0Qm94LnkpO1xuICAgICAgICAgICAgICAgIHRhcmdldC55Lm1pbiA9IGxlYWQudGFyZ2V0LnkubWluO1xuICAgICAgICAgICAgICAgIHRhcmdldC55Lm1heCA9IHRhcmdldC55Lm1pbiArIHlMZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb3B5Qm94SW50byh0YXJnZXRXaXRoVHJhbnNmb3JtcywgdGFyZ2V0KTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQXBwbHkgdGhlIGxhdGVzdCB1c2VyLXNldCB0cmFuc2Zvcm1zIHRvIHRoZSB0YXJnZXRCb3ggdG8gcHJvZHVjZSB0aGUgdGFyZ2V0Qm94RmluYWwuXG4gICAgICAgICAgICAgKiBUaGlzIGlzIHRoZSBmaW5hbCBib3ggdGhhdCB3ZSB3aWxsIHRoZW4gcHJvamVjdCBpbnRvIGJ5IGNhbGN1bGF0aW5nIGEgdHJhbnNmb3JtIGRlbHRhIGFuZFxuICAgICAgICAgICAgICogYXBwbHlpbmcgaXQgdG8gdGhlIGNvcnJlY3RlZCBib3guXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRyYW5zZm9ybUJveCh0YXJnZXRXaXRoVHJhbnNmb3JtcywgbGF0ZXN0VmFsdWVzKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVXBkYXRlIHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSBjb3JyZWN0ZWQgYm94IGFuZCB0aGUgZmluYWwgdGFyZ2V0IGJveCwgYWZ0ZXJcbiAgICAgICAgICAgICAqIHVzZXItc2V0IHRyYW5zZm9ybXMgYXJlIGFwcGxpZWQgdG8gaXQuIFRoaXMgd2lsbCBiZSB1c2VkIGJ5IHRoZSByZW5kZXJlciB0b1xuICAgICAgICAgICAgICogY3JlYXRlIGEgdHJhbnNmb3JtIHN0eWxlIHRoYXQgd2lsbCByZXByb2plY3QgdGhlIGVsZW1lbnQgZnJvbSBpdHMgbGF5b3V0IGxheW91dFxuICAgICAgICAgICAgICogaW50byB0aGUgZGVzaXJlZCBib3VuZGluZyBib3guXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNhbGNCb3hEZWx0YSh0aGlzLnByb2plY3Rpb25EZWx0YVdpdGhUcmFuc2Zvcm0sIHRoaXMubGF5b3V0Q29ycmVjdGVkLCB0YXJnZXRXaXRoVHJhbnNmb3JtcywgbGF0ZXN0VmFsdWVzKTtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3RlclNoYXJlZE5vZGUobGF5b3V0SWQsIG5vZGUpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zaGFyZWROb2Rlcy5oYXMobGF5b3V0SWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFyZWROb2Rlcy5zZXQobGF5b3V0SWQsIG5ldyBOb2RlU3RhY2soKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzdGFjayA9IHRoaXMuc2hhcmVkTm9kZXMuZ2V0KGxheW91dElkKTtcbiAgICAgICAgICAgIHN0YWNrLmFkZChub2RlKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IG5vZGUub3B0aW9ucy5pbml0aWFsUHJvbW90aW9uQ29uZmlnO1xuICAgICAgICAgICAgbm9kZS5wcm9tb3RlKHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb25maWcgPyBjb25maWcudHJhbnNpdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwcmVzZXJ2ZUZvbGxvd09wYWNpdHk6IGNvbmZpZyAmJiBjb25maWcuc2hvdWxkUHJlc2VydmVGb2xsb3dPcGFjaXR5XG4gICAgICAgICAgICAgICAgICAgID8gY29uZmlnLnNob3VsZFByZXNlcnZlRm9sbG93T3BhY2l0eShub2RlKVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlzTGVhZCgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xuICAgICAgICAgICAgcmV0dXJuIHN0YWNrID8gc3RhY2subGVhZCA9PT0gdGhpcyA6IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZ2V0TGVhZCgpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbGF5b3V0SWQgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgIHJldHVybiBsYXlvdXRJZCA/IHRoaXMuZ2V0U3RhY2soKT8ubGVhZCB8fCB0aGlzIDogdGhpcztcbiAgICAgICAgfVxuICAgICAgICBnZXRQcmV2TGVhZCgpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbGF5b3V0SWQgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgIHJldHVybiBsYXlvdXRJZCA/IHRoaXMuZ2V0U3RhY2soKT8ucHJldkxlYWQgOiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZ2V0U3RhY2soKSB7XG4gICAgICAgICAgICBjb25zdCB7IGxheW91dElkIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAobGF5b3V0SWQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucm9vdC5zaGFyZWROb2Rlcy5nZXQobGF5b3V0SWQpO1xuICAgICAgICB9XG4gICAgICAgIHByb21vdGUoeyBuZWVkc1Jlc2V0LCB0cmFuc2l0aW9uLCBwcmVzZXJ2ZUZvbGxvd09wYWNpdHksIH0gPSB7fSkge1xuICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKCk7XG4gICAgICAgICAgICBpZiAoc3RhY2spXG4gICAgICAgICAgICAgICAgc3RhY2sucHJvbW90ZSh0aGlzLCBwcmVzZXJ2ZUZvbGxvd09wYWNpdHkpO1xuICAgICAgICAgICAgaWYgKG5lZWRzUmVzZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2plY3Rpb25EZWx0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0aGlzLm5lZWRzUmVzZXQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRyYW5zaXRpb24pXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRPcHRpb25zKHsgdHJhbnNpdGlvbiB9KTtcbiAgICAgICAgfVxuICAgICAgICByZWxlZ2F0ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xuICAgICAgICAgICAgaWYgKHN0YWNrKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0YWNrLnJlbGVnYXRlKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc2V0U2tld0FuZFJvdGF0aW9uKCkge1xuICAgICAgICAgICAgY29uc3QgeyB2aXN1YWxFbGVtZW50IH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAoIXZpc3VhbEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBkZXRlY3RlZCBza2V3IG9yIHJvdGF0aW9uIHZhbHVlcywgd2UgY2FuIGVhcmx5IHJldHVybiB3aXRob3V0IGEgZm9yY2VkIHJlbmRlci5cbiAgICAgICAgICAgIGxldCBoYXNEaXN0b3J0aW5nVHJhbnNmb3JtID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEFuIHVucm9sbGVkIGNoZWNrIGZvciByb3RhdGlvbiB2YWx1ZXMuIE1vc3QgZWxlbWVudHMgZG9uJ3QgaGF2ZSBhbnkgcm90YXRpb24gYW5kXG4gICAgICAgICAgICAgKiBza2lwcGluZyB0aGUgbmVzdGVkIGxvb3AgYW5kIG5ldyBvYmplY3QgY3JlYXRpb24gaXMgNTAlIGZhc3Rlci5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgeyBsYXRlc3RWYWx1ZXMgfSA9IHZpc3VhbEVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAobGF0ZXN0VmFsdWVzLnogfHxcbiAgICAgICAgICAgICAgICBsYXRlc3RWYWx1ZXMucm90YXRlIHx8XG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzLnJvdGF0ZVggfHxcbiAgICAgICAgICAgICAgICBsYXRlc3RWYWx1ZXMucm90YXRlWSB8fFxuICAgICAgICAgICAgICAgIGxhdGVzdFZhbHVlcy5yb3RhdGVaIHx8XG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzLnNrZXdYIHx8XG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzLnNrZXdZKSB7XG4gICAgICAgICAgICAgICAgaGFzRGlzdG9ydGluZ1RyYW5zZm9ybSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIGRpc3RvcnRpbmcgdmFsdWVzLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueSBtb3JlLlxuICAgICAgICAgICAgaWYgKCFoYXNEaXN0b3J0aW5nVHJhbnNmb3JtKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHJlc2V0VmFsdWVzID0ge307XG4gICAgICAgICAgICBpZiAobGF0ZXN0VmFsdWVzLnopIHtcbiAgICAgICAgICAgICAgICByZXNldERpc3RvcnRpbmdUcmFuc2Zvcm0oXCJ6XCIsIHZpc3VhbEVsZW1lbnQsIHJlc2V0VmFsdWVzLCB0aGlzLmFuaW1hdGlvblZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBDaGVjayB0aGUgc2tldyBhbmQgcm90YXRlIHZhbHVlIG9mIGFsbCBheGVzIGFuZCByZXNldCB0byAwXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyYW5zZm9ybUF4ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICByZXNldERpc3RvcnRpbmdUcmFuc2Zvcm0oYHJvdGF0ZSR7dHJhbnNmb3JtQXhlc1tpXX1gLCB2aXN1YWxFbGVtZW50LCByZXNldFZhbHVlcywgdGhpcy5hbmltYXRpb25WYWx1ZXMpO1xuICAgICAgICAgICAgICAgIHJlc2V0RGlzdG9ydGluZ1RyYW5zZm9ybShgc2tldyR7dHJhbnNmb3JtQXhlc1tpXX1gLCB2aXN1YWxFbGVtZW50LCByZXNldFZhbHVlcywgdGhpcy5hbmltYXRpb25WYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRm9yY2UgYSByZW5kZXIgb2YgdGhpcyBlbGVtZW50IHRvIGFwcGx5IHRoZSB0cmFuc2Zvcm0gd2l0aCBhbGwgc2tld3MgYW5kIHJvdGF0aW9uc1xuICAgICAgICAgICAgLy8gc2V0IHRvIDAuXG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LnJlbmRlcigpO1xuICAgICAgICAgICAgLy8gUHV0IGJhY2sgYWxsIHRoZSB2YWx1ZXMgd2UgcmVzZXRcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJlc2V0VmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5zZXRTdGF0aWNWYWx1ZShrZXksIHJlc2V0VmFsdWVzW2tleV0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGlvblZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvblZhbHVlc1trZXldID0gcmVzZXRWYWx1ZXNba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHJlbmRlciBmb3IgdGhlIG5leHQgZnJhbWUuIFRoaXMgZW5zdXJlcyB3ZSB3b24ndCB2aXN1YWxseVxuICAgICAgICAgICAgLy8gc2VlIHRoZSBlbGVtZW50IHdpdGggdGhlIHJlc2V0IHJvdGF0ZSB2YWx1ZSBhcHBsaWVkLlxuICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICB9XG4gICAgICAgIGFwcGx5UHJvamVjdGlvblN0eWxlcyh0YXJnZXRTdHlsZSwgLy8gQ1NTU3R5bGVEZWNsYXJhdGlvbiAtIGRvZXNuJ3QgYWxsb3cgbnVtYmVycyB0byBiZSBhc3NpZ25lZCB0byBwcm9wZXJ0aWVzXG4gICAgICAgIHN0eWxlUHJvcCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlIHx8IHRoaXMuaXNTVkcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVRlbXBsYXRlID0gdGhpcy5nZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMubmVlZHNSZXNldCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmVlZHNSZXNldCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnZpc2liaWxpdHkgPSBcIlwiO1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLm9wYWNpdHkgPSBcIlwiO1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnBvaW50ZXJFdmVudHMgPVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlTW90aW9uVmFsdWUoc3R5bGVQcm9wPy5wb2ludGVyRXZlbnRzKSB8fCBcIlwiO1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgID8gdHJhbnNmb3JtVGVtcGxhdGUodGhpcy5sYXRlc3RWYWx1ZXMsIFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIDogXCJub25lXCI7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGVhZCA9IHRoaXMuZ2V0TGVhZCgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnByb2plY3Rpb25EZWx0YSB8fCAhdGhpcy5sYXlvdXQgfHwgIWxlYWQudGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sYXlvdXRJZCkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS5vcGFjaXR5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHkgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMTtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGUucG9pbnRlckV2ZW50cyA9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlTW90aW9uVmFsdWUoc3R5bGVQcm9wPy5wb2ludGVyRXZlbnRzKSB8fCBcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNQcm9qZWN0ZWQgJiYgIWhhc1RyYW5zZm9ybSh0aGlzLmxhdGVzdFZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGUudHJhbnNmb3JtID0gdHJhbnNmb3JtVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdHJhbnNmb3JtVGVtcGxhdGUoe30sIFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwibm9uZVwiO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc1Byb2plY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YXJnZXRTdHlsZS52aXNpYmlsaXR5ID0gXCJcIjtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlc1RvUmVuZGVyID0gbGVhZC5hbmltYXRpb25WYWx1ZXMgfHwgbGVhZC5sYXRlc3RWYWx1ZXM7XG4gICAgICAgICAgICB0aGlzLmFwcGx5VHJhbnNmb3Jtc1RvVGFyZ2V0KCk7XG4gICAgICAgICAgICBsZXQgdHJhbnNmb3JtID0gYnVpbGRQcm9qZWN0aW9uVHJhbnNmb3JtKHRoaXMucHJvamVjdGlvbkRlbHRhV2l0aFRyYW5zZm9ybSwgdGhpcy50cmVlU2NhbGUsIHZhbHVlc1RvUmVuZGVyKTtcbiAgICAgICAgICAgIGlmICh0cmFuc2Zvcm1UZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybVRlbXBsYXRlKHZhbHVlc1RvUmVuZGVyLCB0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFyZ2V0U3R5bGUudHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgICAgICAgICAgY29uc3QgeyB4LCB5IH0gPSB0aGlzLnByb2plY3Rpb25EZWx0YTtcbiAgICAgICAgICAgIHRhcmdldFN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9IGAke3gub3JpZ2luICogMTAwfSUgJHt5Lm9yaWdpbiAqIDEwMH0lIDBgO1xuICAgICAgICAgICAgaWYgKGxlYWQuYW5pbWF0aW9uVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSWYgdGhlIGxlYWQgY29tcG9uZW50IGlzIGFuaW1hdGluZywgYXNzaWduIHRoaXMgZWl0aGVyIHRoZSBlbnRlcmluZy9sZWF2aW5nXG4gICAgICAgICAgICAgICAgICogb3BhY2l0eVxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLm9wYWNpdHkgPVxuICAgICAgICAgICAgICAgICAgICBsZWFkID09PSB0aGlzXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHZhbHVlc1RvUmVuZGVyLm9wYWNpdHkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxhdGVzdFZhbHVlcy5vcGFjaXR5ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnByZXNlcnZlT3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWVzVG9SZW5kZXIub3BhY2l0eUV4aXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBPciB3ZSdyZSBub3QgYW5pbWF0aW5nIGF0IGFsbCwgc2V0IHRoZSBsZWFkIGNvbXBvbmVudCB0byBpdHMgbGF5b3V0XG4gICAgICAgICAgICAgICAgICogb3BhY2l0eSBhbmQgb3RoZXIgY29tcG9uZW50cyB0byBoaWRkZW4uXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGUub3BhY2l0eSA9XG4gICAgICAgICAgICAgICAgICAgIGxlYWQgPT09IHRoaXNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdmFsdWVzVG9SZW5kZXIub3BhY2l0eSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZXNUb1JlbmRlci5vcGFjaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlc1RvUmVuZGVyLm9wYWNpdHlFeGl0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZhbHVlc1RvUmVuZGVyLm9wYWNpdHlFeGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBcHBseSBzY2FsZSBjb3JyZWN0aW9uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHNjYWxlQ29ycmVjdG9ycykge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZXNUb1JlbmRlcltrZXldID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgY29ycmVjdCwgYXBwbHlUbywgaXNDU1NWYXJpYWJsZSB9ID0gc2NhbGVDb3JyZWN0b3JzW2tleV07XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogT25seSBhcHBseSBzY2FsZSBjb3JyZWN0aW9uIHRvIHRoZSB2YWx1ZSBpZiB3ZSBoYXZlIGFuXG4gICAgICAgICAgICAgICAgICogYWN0aXZlIHByb2plY3Rpb24gdHJhbnNmb3JtLiBPdGhlcndpc2UgdGhlc2UgdmFsdWVzIGJlY29tZVxuICAgICAgICAgICAgICAgICAqIHZ1bG5lcmFibGUgdG8gZGlzdG9ydGlvbiBpZiB0aGUgZWxlbWVudCBjaGFuZ2VzIHNpemUgd2l0aG91dFxuICAgICAgICAgICAgICAgICAqIGEgY29ycmVzcG9uZGluZyBsYXlvdXQgYW5pbWF0aW9uLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvcnJlY3RlZCA9IHRyYW5zZm9ybSA9PT0gXCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZXNUb1JlbmRlcltrZXldXG4gICAgICAgICAgICAgICAgICAgIDogY29ycmVjdCh2YWx1ZXNUb1JlbmRlcltrZXldLCBsZWFkKTtcbiAgICAgICAgICAgICAgICBpZiAoYXBwbHlUbykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBudW0gPSBhcHBseVRvLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW07IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGVbYXBwbHlUb1tpXV0gPSBjb3JyZWN0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBDU1MgdmFyaWFibGUsIHNldCBpdCBkaXJlY3RseSBvbiB0aGUgaW5zdGFuY2UuXG4gICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2luZyB0aGlzIGZ1bmN0aW9uIGZyb20gY3JlYXRpbmcgc3R5bGVzIHRvIHNldHRpbmcgdGhlbVxuICAgICAgICAgICAgICAgICAgICAvLyB3b3VsZCBiZSBhIGdvb2QgcGxhY2UgdG8gcmVtb3ZlIHBlciBmcmFtZSBvYmplY3QgY3JlYXRpb25cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ1NTVmFyaWFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy52aXN1YWxFbGVtZW50LnJlbmRlclN0YXRlLnZhcnNba2V5XSA9IGNvcnJlY3RlZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlW2tleV0gPSBjb3JyZWN0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIERpc2FibGUgcG9pbnRlciBldmVudHMgb24gZm9sbG93IGNvbXBvbmVudHMuIFRoaXMgaXMgdG8gZW5zdXJlXG4gICAgICAgICAgICAgKiB0aGF0IGlmIGEgZm9sbG93IGNvbXBvbmVudCBjb3ZlcnMgYSBsZWFkIGNvbXBvbmVudCBpdCBkb2Vzbid0IGJsb2NrXG4gICAgICAgICAgICAgKiBwb2ludGVyIGV2ZW50cyBvbiB0aGUgbGVhZC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sYXlvdXRJZCkge1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnBvaW50ZXJFdmVudHMgPVxuICAgICAgICAgICAgICAgICAgICBsZWFkID09PSB0aGlzXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHJlc29sdmVNb3Rpb25WYWx1ZShzdHlsZVByb3A/LnBvaW50ZXJFdmVudHMpIHx8IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJub25lXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2xlYXJTbmFwc2hvdCgpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdW1lRnJvbSA9IHRoaXMuc25hcHNob3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gT25seSBydW4gb24gcm9vdFxuICAgICAgICByZXNldFRyZWUoKSB7XG4gICAgICAgICAgICB0aGlzLnJvb3Qubm9kZXMuZm9yRWFjaCgobm9kZSkgPT4gbm9kZS5jdXJyZW50QW5pbWF0aW9uPy5zdG9wKCkpO1xuICAgICAgICAgICAgdGhpcy5yb290Lm5vZGVzLmZvckVhY2goY2xlYXJNZWFzdXJlbWVudHMpO1xuICAgICAgICAgICAgdGhpcy5yb290LnNoYXJlZE5vZGVzLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuZnVuY3Rpb24gdXBkYXRlTGF5b3V0KG5vZGUpIHtcbiAgICBub2RlLnVwZGF0ZUxheW91dCgpO1xufVxuZnVuY3Rpb24gbm90aWZ5TGF5b3V0VXBkYXRlKG5vZGUpIHtcbiAgICBjb25zdCBzbmFwc2hvdCA9IG5vZGUucmVzdW1lRnJvbT8uc25hcHNob3QgfHwgbm9kZS5zbmFwc2hvdDtcbiAgICBpZiAobm9kZS5pc0xlYWQoKSAmJlxuICAgICAgICBub2RlLmxheW91dCAmJlxuICAgICAgICBzbmFwc2hvdCAmJlxuICAgICAgICBub2RlLmhhc0xpc3RlbmVycyhcImRpZFVwZGF0ZVwiKSkge1xuICAgICAgICBjb25zdCB7IGxheW91dEJveDogbGF5b3V0LCBtZWFzdXJlZEJveDogbWVhc3VyZWRMYXlvdXQgfSA9IG5vZGUubGF5b3V0O1xuICAgICAgICBjb25zdCB7IGFuaW1hdGlvblR5cGUgfSA9IG5vZGUub3B0aW9ucztcbiAgICAgICAgY29uc3QgaXNTaGFyZWQgPSBzbmFwc2hvdC5zb3VyY2UgIT09IG5vZGUubGF5b3V0LnNvdXJjZTtcbiAgICAgICAgLy8gVE9ETyBNYXliZSB3ZSB3YW50IHRvIGFsc28gcmVzaXplIHRoZSBsYXlvdXQgc25hcHNob3Qgc28gd2UgZG9uJ3QgdHJpZ2dlclxuICAgICAgICAvLyBhbmltYXRpb25zIGZvciBpbnN0YW5jZSBpZiBsYXlvdXQ9XCJzaXplXCIgYW5kIGFuIGVsZW1lbnQgaGFzIG9ubHkgY2hhbmdlZCBwb3NpdGlvblxuICAgICAgICBpZiAoYW5pbWF0aW9uVHlwZSA9PT0gXCJzaXplXCIpIHtcbiAgICAgICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXhpc1NuYXBzaG90ID0gaXNTaGFyZWRcbiAgICAgICAgICAgICAgICAgICAgPyBzbmFwc2hvdC5tZWFzdXJlZEJveFtheGlzXVxuICAgICAgICAgICAgICAgICAgICA6IHNuYXBzaG90LmxheW91dEJveFtheGlzXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBjYWxjTGVuZ3RoKGF4aXNTbmFwc2hvdCk7XG4gICAgICAgICAgICAgICAgYXhpc1NuYXBzaG90Lm1pbiA9IGxheW91dFtheGlzXS5taW47XG4gICAgICAgICAgICAgICAgYXhpc1NuYXBzaG90Lm1heCA9IGF4aXNTbmFwc2hvdC5taW4gKyBsZW5ndGg7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzaG91bGRBbmltYXRlUG9zaXRpb25Pbmx5KGFuaW1hdGlvblR5cGUsIHNuYXBzaG90LmxheW91dEJveCwgbGF5b3V0KSkge1xuICAgICAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBheGlzU25hcHNob3QgPSBpc1NoYXJlZFxuICAgICAgICAgICAgICAgICAgICA/IHNuYXBzaG90Lm1lYXN1cmVkQm94W2F4aXNdXG4gICAgICAgICAgICAgICAgICAgIDogc25hcHNob3QubGF5b3V0Qm94W2F4aXNdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IGNhbGNMZW5ndGgobGF5b3V0W2F4aXNdKTtcbiAgICAgICAgICAgICAgICBheGlzU25hcHNob3QubWF4ID0gYXhpc1NuYXBzaG90Lm1pbiArIGxlbmd0aDtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBFbnN1cmUgcmVsYXRpdmUgdGFyZ2V0IGdldHMgcmVzaXplZCBhbmQgcmVyZW5kZXJlcmRcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAobm9kZS5yZWxhdGl2ZVRhcmdldCAmJiAhbm9kZS5jdXJyZW50QW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuaXNQcm9qZWN0aW9uRGlydHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBub2RlLnJlbGF0aXZlVGFyZ2V0W2F4aXNdLm1heCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLnJlbGF0aXZlVGFyZ2V0W2F4aXNdLm1pbiArIGxlbmd0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYXlvdXREZWx0YSA9IGNyZWF0ZURlbHRhKCk7XG4gICAgICAgIGNhbGNCb3hEZWx0YShsYXlvdXREZWx0YSwgbGF5b3V0LCBzbmFwc2hvdC5sYXlvdXRCb3gpO1xuICAgICAgICBjb25zdCB2aXN1YWxEZWx0YSA9IGNyZWF0ZURlbHRhKCk7XG4gICAgICAgIGlmIChpc1NoYXJlZCkge1xuICAgICAgICAgICAgY2FsY0JveERlbHRhKHZpc3VhbERlbHRhLCBub2RlLmFwcGx5VHJhbnNmb3JtKG1lYXN1cmVkTGF5b3V0LCB0cnVlKSwgc25hcHNob3QubWVhc3VyZWRCb3gpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY2FsY0JveERlbHRhKHZpc3VhbERlbHRhLCBsYXlvdXQsIHNuYXBzaG90LmxheW91dEJveCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFzTGF5b3V0Q2hhbmdlZCA9ICFpc0RlbHRhWmVybyhsYXlvdXREZWx0YSk7XG4gICAgICAgIGxldCBoYXNSZWxhdGl2ZUxheW91dENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKCFub2RlLnJlc3VtZUZyb20pIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0aXZlUGFyZW50ID0gbm9kZS5nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGUgcmVsYXRpdmVQYXJlbnQgaXMgaXRzZWxmIHJlc3VtaW5nIGZyb20gYSBkaWZmZXJlbnQgZWxlbWVudCB0aGVuXG4gICAgICAgICAgICAgKiB0aGUgcmVsYXRpdmUgc25hcHNob3QgaXMgbm90IHJlbGF2ZW50XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChyZWxhdGl2ZVBhcmVudCAmJiAhcmVsYXRpdmVQYXJlbnQucmVzdW1lRnJvbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgc25hcHNob3Q6IHBhcmVudFNuYXBzaG90LCBsYXlvdXQ6IHBhcmVudExheW91dCB9ID0gcmVsYXRpdmVQYXJlbnQ7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudFNuYXBzaG90ICYmIHBhcmVudExheW91dCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWxhdGl2ZVNuYXBzaG90ID0gY3JlYXRlQm94KCk7XG4gICAgICAgICAgICAgICAgICAgIGNhbGNSZWxhdGl2ZVBvc2l0aW9uKHJlbGF0aXZlU25hcHNob3QsIHNuYXBzaG90LmxheW91dEJveCwgcGFyZW50U25hcHNob3QubGF5b3V0Qm94KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVMYXlvdXQgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgICAgICAgICAgY2FsY1JlbGF0aXZlUG9zaXRpb24ocmVsYXRpdmVMYXlvdXQsIGxheW91dCwgcGFyZW50TGF5b3V0LmxheW91dEJveCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYm94RXF1YWxzUm91bmRlZChyZWxhdGl2ZVNuYXBzaG90LCByZWxhdGl2ZUxheW91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc1JlbGF0aXZlTGF5b3V0Q2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbGF0aXZlUGFyZW50Lm9wdGlvbnMubGF5b3V0Um9vdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5yZWxhdGl2ZVRhcmdldCA9IHJlbGF0aXZlTGF5b3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5yZWxhdGl2ZVRhcmdldE9yaWdpbiA9IHJlbGF0aXZlU25hcHNob3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLnJlbGF0aXZlUGFyZW50ID0gcmVsYXRpdmVQYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbm9kZS5ub3RpZnlMaXN0ZW5lcnMoXCJkaWRVcGRhdGVcIiwge1xuICAgICAgICAgICAgbGF5b3V0LFxuICAgICAgICAgICAgc25hcHNob3QsXG4gICAgICAgICAgICBkZWx0YTogdmlzdWFsRGVsdGEsXG4gICAgICAgICAgICBsYXlvdXREZWx0YSxcbiAgICAgICAgICAgIGhhc0xheW91dENoYW5nZWQsXG4gICAgICAgICAgICBoYXNSZWxhdGl2ZUxheW91dENoYW5nZWQsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmIChub2RlLmlzTGVhZCgpKSB7XG4gICAgICAgIGNvbnN0IHsgb25FeGl0Q29tcGxldGUgfSA9IG5vZGUub3B0aW9ucztcbiAgICAgICAgb25FeGl0Q29tcGxldGUgJiYgb25FeGl0Q29tcGxldGUoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYXJpbmcgdHJhbnNpdGlvblxuICAgICAqIFRPRE86IEludmVzdGlnYXRlIHdoeSB0aGlzIHRyYW5zaXRpb24gaXMgYmVpbmcgcGFzc2VkIGluIGFzIHt0eXBlOiBmYWxzZSB9IGZyb20gRnJhbWVyXG4gICAgICogYW5kIHdoeSB3ZSBuZWVkIGl0IGF0IGFsbFxuICAgICAqL1xuICAgIG5vZGUub3B0aW9ucy50cmFuc2l0aW9uID0gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gcHJvcGFnYXRlRGlydHlOb2Rlcyhub2RlKSB7XG4gICAgLyoqXG4gICAgICogSW5jcmVhc2UgZGVidWcgY291bnRlciBmb3Igbm9kZXMgZW5jb3VudGVyZWQgdGhpcyBmcmFtZVxuICAgICAqL1xuICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xuICAgICAgICBtZXRyaWNzLm5vZGVzKys7XG4gICAgfVxuICAgIGlmICghbm9kZS5wYXJlbnQpXG4gICAgICAgIHJldHVybjtcbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIG5vZGUgaXNuJ3QgcHJvamVjdGluZywgcHJvcGFnYXRlIGlzUHJvamVjdGlvbkRpcnR5LiBJdCB3aWxsIGhhdmVcbiAgICAgKiBubyBwZXJmb3JtYW5jZSBpbXBhY3QgYnV0IGl0IHdpbGwgYWxsb3cgdGhlIG5leHQgY2hpbGQgdGhhdCAqaXMqIHByb2plY3RpbmdcbiAgICAgKiBidXQgKmlzbid0KiBkaXJ0eSB0byBqdXN0IGNoZWNrIGl0cyBwYXJlbnQgdG8gc2VlIGlmICphbnkqIGFuY2VzdG9yIG5lZWRzXG4gICAgICogY29ycmVjdGluZy5cbiAgICAgKi9cbiAgICBpZiAoIW5vZGUuaXNQcm9qZWN0aW5nKCkpIHtcbiAgICAgICAgbm9kZS5pc1Byb2plY3Rpb25EaXJ0eSA9IG5vZGUucGFyZW50LmlzUHJvamVjdGlvbkRpcnR5O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcm9wYWdhdGUgaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgYW5kIGlzVHJhbnNmb3JtRGlydHlcbiAgICAgKiB0aHJvdWdob3V0IHRoZSB3aG9sZSB0cmVlLiBBIGZ1dHVyZSByZXZpc2lvbiBjYW4gdGFrZSBhbm90aGVyIGxvb2sgYXRcbiAgICAgKiB0aGlzIGJ1dCBmb3Igc2FmZXR5IHdlIHN0aWxsIHJlY2FsY3VhbHRlIHNoYXJlZCBub2Rlcy5cbiAgICAgKi9cbiAgICBub2RlLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5IHx8IChub2RlLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5ID0gQm9vbGVhbihub2RlLmlzUHJvamVjdGlvbkRpcnR5IHx8XG4gICAgICAgIG5vZGUucGFyZW50LmlzUHJvamVjdGlvbkRpcnR5IHx8XG4gICAgICAgIG5vZGUucGFyZW50LmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5KSk7XG4gICAgbm9kZS5pc1RyYW5zZm9ybURpcnR5IHx8IChub2RlLmlzVHJhbnNmb3JtRGlydHkgPSBub2RlLnBhcmVudC5pc1RyYW5zZm9ybURpcnR5KTtcbn1cbmZ1bmN0aW9uIGNsZWFuRGlydHlOb2Rlcyhub2RlKSB7XG4gICAgbm9kZS5pc1Byb2plY3Rpb25EaXJ0eSA9XG4gICAgICAgIG5vZGUuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgPVxuICAgICAgICAgICAgbm9kZS5pc1RyYW5zZm9ybURpcnR5ID1cbiAgICAgICAgICAgICAgICBmYWxzZTtcbn1cbmZ1bmN0aW9uIGNsZWFyU25hcHNob3Qobm9kZSkge1xuICAgIG5vZGUuY2xlYXJTbmFwc2hvdCgpO1xufVxuZnVuY3Rpb24gY2xlYXJNZWFzdXJlbWVudHMobm9kZSkge1xuICAgIG5vZGUuY2xlYXJNZWFzdXJlbWVudHMoKTtcbn1cbmZ1bmN0aW9uIGNsZWFySXNMYXlvdXREaXJ0eShub2RlKSB7XG4gICAgbm9kZS5pc0xheW91dERpcnR5ID0gZmFsc2U7XG59XG5mdW5jdGlvbiByZXNldFRyYW5zZm9ybVN0eWxlKG5vZGUpIHtcbiAgICBjb25zdCB7IHZpc3VhbEVsZW1lbnQgfSA9IG5vZGUub3B0aW9ucztcbiAgICBpZiAodmlzdWFsRWxlbWVudCAmJiB2aXN1YWxFbGVtZW50LmdldFByb3BzKCkub25CZWZvcmVMYXlvdXRNZWFzdXJlKSB7XG4gICAgICAgIHZpc3VhbEVsZW1lbnQubm90aWZ5KFwiQmVmb3JlTGF5b3V0TWVhc3VyZVwiKTtcbiAgICB9XG4gICAgbm9kZS5yZXNldFRyYW5zZm9ybSgpO1xufVxuZnVuY3Rpb24gZmluaXNoQW5pbWF0aW9uKG5vZGUpIHtcbiAgICBub2RlLmZpbmlzaEFuaW1hdGlvbigpO1xuICAgIG5vZGUudGFyZ2V0RGVsdGEgPSBub2RlLnJlbGF0aXZlVGFyZ2V0ID0gbm9kZS50YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgbm9kZS5pc1Byb2plY3Rpb25EaXJ0eSA9IHRydWU7XG59XG5mdW5jdGlvbiByZXNvbHZlVGFyZ2V0RGVsdGEobm9kZSkge1xuICAgIG5vZGUucmVzb2x2ZVRhcmdldERlbHRhKCk7XG59XG5mdW5jdGlvbiBjYWxjUHJvamVjdGlvbihub2RlKSB7XG4gICAgbm9kZS5jYWxjUHJvamVjdGlvbigpO1xufVxuZnVuY3Rpb24gcmVzZXRTa2V3QW5kUm90YXRpb24obm9kZSkge1xuICAgIG5vZGUucmVzZXRTa2V3QW5kUm90YXRpb24oKTtcbn1cbmZ1bmN0aW9uIHJlbW92ZUxlYWRTbmFwc2hvdHMoc3RhY2spIHtcbiAgICBzdGFjay5yZW1vdmVMZWFkU25hcHNob3QoKTtcbn1cbmZ1bmN0aW9uIG1peEF4aXNEZWx0YShvdXRwdXQsIGRlbHRhLCBwKSB7XG4gICAgb3V0cHV0LnRyYW5zbGF0ZSA9IG1peE51bWJlcihkZWx0YS50cmFuc2xhdGUsIDAsIHApO1xuICAgIG91dHB1dC5zY2FsZSA9IG1peE51bWJlcihkZWx0YS5zY2FsZSwgMSwgcCk7XG4gICAgb3V0cHV0Lm9yaWdpbiA9IGRlbHRhLm9yaWdpbjtcbiAgICBvdXRwdXQub3JpZ2luUG9pbnQgPSBkZWx0YS5vcmlnaW5Qb2ludDtcbn1cbmZ1bmN0aW9uIG1peEF4aXMob3V0cHV0LCBmcm9tLCB0bywgcCkge1xuICAgIG91dHB1dC5taW4gPSBtaXhOdW1iZXIoZnJvbS5taW4sIHRvLm1pbiwgcCk7XG4gICAgb3V0cHV0Lm1heCA9IG1peE51bWJlcihmcm9tLm1heCwgdG8ubWF4LCBwKTtcbn1cbmZ1bmN0aW9uIG1peEJveChvdXRwdXQsIGZyb20sIHRvLCBwKSB7XG4gICAgbWl4QXhpcyhvdXRwdXQueCwgZnJvbS54LCB0by54LCBwKTtcbiAgICBtaXhBeGlzKG91dHB1dC55LCBmcm9tLnksIHRvLnksIHApO1xufVxuZnVuY3Rpb24gaGFzT3BhY2l0eUNyb3NzZmFkZShub2RlKSB7XG4gICAgcmV0dXJuIChub2RlLmFuaW1hdGlvblZhbHVlcyAmJiBub2RlLmFuaW1hdGlvblZhbHVlcy5vcGFjaXR5RXhpdCAhPT0gdW5kZWZpbmVkKTtcbn1cbmNvbnN0IGRlZmF1bHRMYXlvdXRUcmFuc2l0aW9uID0ge1xuICAgIGR1cmF0aW9uOiAwLjQ1LFxuICAgIGVhc2U6IFswLjQsIDAsIDAuMSwgMV0sXG59O1xuY29uc3QgdXNlckFnZW50Q29udGFpbnMgPSAoc3RyaW5nKSA9PiB0eXBlb2YgbmF2aWdhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJlxuICAgIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzdHJpbmcpO1xuLyoqXG4gKiBNZWFzdXJlZCBib3VuZGluZyBib3hlcyBtdXN0IGJlIHJvdW5kZWQgaW4gU2FmYXJpIGFuZFxuICogbGVmdCB1bnRvdWNoZWQgaW4gQ2hyb21lLCBvdGhlcndpc2Ugbm9uLWludGVnZXIgbGF5b3V0cyB3aXRoaW4gc2NhbGVkLXVwIGVsZW1lbnRzXG4gKiBjYW4gYXBwZWFyIHRvIGp1bXAuXG4gKi9cbmNvbnN0IHJvdW5kUG9pbnQgPSB1c2VyQWdlbnRDb250YWlucyhcImFwcGxld2Via2l0L1wiKSAmJiAhdXNlckFnZW50Q29udGFpbnMoXCJjaHJvbWUvXCIpXG4gICAgPyBNYXRoLnJvdW5kXG4gICAgOiBub29wO1xuZnVuY3Rpb24gcm91bmRBeGlzKGF4aXMpIHtcbiAgICAvLyBSb3VuZCB0byB0aGUgbmVhcmVzdCAuNSBwaXhlbHMgdG8gc3VwcG9ydCBzdWJwaXhlbCBsYXlvdXRzXG4gICAgYXhpcy5taW4gPSByb3VuZFBvaW50KGF4aXMubWluKTtcbiAgICBheGlzLm1heCA9IHJvdW5kUG9pbnQoYXhpcy5tYXgpO1xufVxuZnVuY3Rpb24gcm91bmRCb3goYm94KSB7XG4gICAgcm91bmRBeGlzKGJveC54KTtcbiAgICByb3VuZEF4aXMoYm94LnkpO1xufVxuZnVuY3Rpb24gc2hvdWxkQW5pbWF0ZVBvc2l0aW9uT25seShhbmltYXRpb25UeXBlLCBzbmFwc2hvdCwgbGF5b3V0KSB7XG4gICAgcmV0dXJuIChhbmltYXRpb25UeXBlID09PSBcInBvc2l0aW9uXCIgfHxcbiAgICAgICAgKGFuaW1hdGlvblR5cGUgPT09IFwicHJlc2VydmUtYXNwZWN0XCIgJiZcbiAgICAgICAgICAgICFpc05lYXIoYXNwZWN0UmF0aW8oc25hcHNob3QpLCBhc3BlY3RSYXRpbyhsYXlvdXQpLCAwLjIpKSk7XG59XG5mdW5jdGlvbiBjaGVja05vZGVXYXNTY3JvbGxSb290KG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZSAhPT0gbm9kZS5yb290ICYmIG5vZGUuc2Nyb2xsPy53YXNSb290O1xufVxuXG5leHBvcnQgeyBjbGVhbkRpcnR5Tm9kZXMsIGNyZWF0ZVByb2plY3Rpb25Ob2RlLCBtaXhBeGlzLCBtaXhBeGlzRGVsdGEsIG1peEJveCwgcHJvcGFnYXRlRGlydHlOb2RlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLXByb2plY3Rpb24tbm9kZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/state.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/state.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ globalProjectionState: () => (/* binding */ globalProjectionState)\n/* harmony export */ });\n/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\n\n//# sourceMappingURL=state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL3N0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vbm9kZS9zdGF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIHNob3VsZCBvbmx5IGV2ZXIgYmUgbW9kaWZpZWQgb24gdGhlIGNsaWVudCBvdGhlcndpc2UgaXQnbGxcbiAqIHBlcnNpc3QgdGhyb3VnaCBzZXJ2ZXIgcmVxdWVzdHMuIElmIHdlIG5lZWQgaW5zdGFuY2VkIHN0YXRlcyB3ZVxuICogY291bGQgbGF6eS1pbml0IHZpYSByb290LlxuICovXG5jb25zdCBnbG9iYWxQcm9qZWN0aW9uU3RhdGUgPSB7XG4gICAgLyoqXG4gICAgICogR2xvYmFsIGZsYWcgYXMgdG8gd2hldGhlciB0aGUgdHJlZSBoYXMgYW5pbWF0ZWQgc2luY2UgdGhlIGxhc3QgdGltZVxuICAgICAqIHdlIHJlc2l6ZWQgdGhlIHdpbmRvd1xuICAgICAqL1xuICAgIGhhc0FuaW1hdGVkU2luY2VSZXNpemU6IHRydWUsXG4gICAgLyoqXG4gICAgICogV2Ugc2V0IHRoaXMgdG8gdHJ1ZSBvbmNlLCBvbiB0aGUgZmlyc3QgdXBkYXRlLiBBbnkgbm9kZXMgYWRkZWQgdG8gdGhlIHRyZWUgYmV5b25kIHRoYXRcbiAgICAgKiB1cGRhdGUgd2lsbCBiZSBnaXZlbiBhIGBkYXRhLXByb2plY3Rpb24taWRgIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBoYXNFdmVyVXBkYXRlZDogZmFsc2UsXG59O1xuXG5leHBvcnQgeyBnbG9iYWxQcm9qZWN0aW9uU3RhdGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0YXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/shared/stack.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/shared/stack.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NodeStack: () => (/* binding */ NodeStack)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\");\n\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.members, node);\n for (let i = this.members.length - 1; i >= 0; i--) {\n const m = this.members[i];\n if (m === node || m === this.lead || m === this.prevLead)\n continue;\n const inst = m.instance;\n if (inst && inst.isConnected === false && m.isPresent !== false && !m.snapshot) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.members, m);\n }\n }\n node.scheduleRender();\n }\n remove(node) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n const inst = member.instance;\n if (member.isPresent !== false && (!inst || inst.isConnected !== false)) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n /**\n * If both the new and previous lead have the same defined layoutDependency,\n * skip the shared layout animation. This allows components with layoutId\n * to opt-out of animations when their layoutDependency hasn't changed,\n * even when the component unmounts and remounts in a different location.\n */\n const prevDep = prevLead.options.layoutDependency;\n const nextDep = node.options.layoutDependency;\n const dependencyMatches = prevDep !== undefined &&\n nextDep !== undefined &&\n prevDep === nextDep;\n if (!dependencyMatches) {\n const prevInstance = prevLead.instance;\n const isStale = prevInstance && prevInstance.isConnected === false && !prevLead.snapshot;\n if (!isStale) {\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if (node.root && node.root.isUpdating) {\n node.isLayoutDirty = true;\n }\n }\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n const { options, resumingFrom } = node;\n options.onExitComplete && options.onExitComplete();\n if (resumingFrom) {\n resumingFrom.options.onExitComplete &&\n resumingFrom.options.onExitComplete();\n }\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\n\n//# sourceMappingURL=stack.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zaGFyZWQvc3RhY2subWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlEOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwyREFBYTtBQUNyQiw4Q0FBOEMsUUFBUTtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHdEQUFVO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHdEQUFVO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxRQUFRO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHdCQUF3QjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXFCO0FBQ3JCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3NoYXJlZC9zdGFjay5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkVW5pcXVlSXRlbSwgcmVtb3ZlSXRlbSB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5cbmNsYXNzIE5vZGVTdGFjayB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubWVtYmVycyA9IFtdO1xuICAgIH1cbiAgICBhZGQobm9kZSkge1xuICAgICAgICBhZGRVbmlxdWVJdGVtKHRoaXMubWVtYmVycywgbm9kZSk7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLm1lbWJlcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IG0gPSB0aGlzLm1lbWJlcnNbaV07XG4gICAgICAgICAgICBpZiAobSA9PT0gbm9kZSB8fCBtID09PSB0aGlzLmxlYWQgfHwgbSA9PT0gdGhpcy5wcmV2TGVhZClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGNvbnN0IGluc3QgPSBtLmluc3RhbmNlO1xuICAgICAgICAgICAgaWYgKGluc3QgJiYgaW5zdC5pc0Nvbm5lY3RlZCA9PT0gZmFsc2UgJiYgbS5pc1ByZXNlbnQgIT09IGZhbHNlICYmICFtLnNuYXBzaG90KSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlSXRlbSh0aGlzLm1lbWJlcnMsIG0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5vZGUuc2NoZWR1bGVSZW5kZXIoKTtcbiAgICB9XG4gICAgcmVtb3ZlKG5vZGUpIHtcbiAgICAgICAgcmVtb3ZlSXRlbSh0aGlzLm1lbWJlcnMsIG5vZGUpO1xuICAgICAgICBpZiAobm9kZSA9PT0gdGhpcy5wcmV2TGVhZCkge1xuICAgICAgICAgICAgdGhpcy5wcmV2TGVhZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZSA9PT0gdGhpcy5sZWFkKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2TGVhZCA9IHRoaXMubWVtYmVyc1t0aGlzLm1lbWJlcnMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBpZiAocHJldkxlYWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb21vdGUocHJldkxlYWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJlbGVnYXRlKG5vZGUpIHtcbiAgICAgICAgY29uc3QgaW5kZXhPZk5vZGUgPSB0aGlzLm1lbWJlcnMuZmluZEluZGV4KChtZW1iZXIpID0+IG5vZGUgPT09IG1lbWJlcik7XG4gICAgICAgIGlmIChpbmRleE9mTm9kZSA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpbmQgdGhlIG5leHQgcHJvamVjdGlvbiBub2RlIHRoYXQgaXMgcHJlc2VudFxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IHByZXZMZWFkO1xuICAgICAgICBmb3IgKGxldCBpID0gaW5kZXhPZk5vZGU7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBtZW1iZXIgPSB0aGlzLm1lbWJlcnNbaV07XG4gICAgICAgICAgICBjb25zdCBpbnN0ID0gbWVtYmVyLmluc3RhbmNlO1xuICAgICAgICAgICAgaWYgKG1lbWJlci5pc1ByZXNlbnQgIT09IGZhbHNlICYmICghaW5zdCB8fCBpbnN0LmlzQ29ubmVjdGVkICE9PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICBwcmV2TGVhZCA9IG1lbWJlcjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocHJldkxlYWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvbW90ZShwcmV2TGVhZCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm9tb3RlKG5vZGUsIHByZXNlcnZlRm9sbG93T3BhY2l0eSkge1xuICAgICAgICBjb25zdCBwcmV2TGVhZCA9IHRoaXMubGVhZDtcbiAgICAgICAgaWYgKG5vZGUgPT09IHByZXZMZWFkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLnByZXZMZWFkID0gcHJldkxlYWQ7XG4gICAgICAgIHRoaXMubGVhZCA9IG5vZGU7XG4gICAgICAgIG5vZGUuc2hvdygpO1xuICAgICAgICBpZiAocHJldkxlYWQpIHtcbiAgICAgICAgICAgIHByZXZMZWFkLmluc3RhbmNlICYmIHByZXZMZWFkLnNjaGVkdWxlUmVuZGVyKCk7XG4gICAgICAgICAgICBub2RlLnNjaGVkdWxlUmVuZGVyKCk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIGJvdGggdGhlIG5ldyBhbmQgcHJldmlvdXMgbGVhZCBoYXZlIHRoZSBzYW1lIGRlZmluZWQgbGF5b3V0RGVwZW5kZW5jeSxcbiAgICAgICAgICAgICAqIHNraXAgdGhlIHNoYXJlZCBsYXlvdXQgYW5pbWF0aW9uLiBUaGlzIGFsbG93cyBjb21wb25lbnRzIHdpdGggbGF5b3V0SWRcbiAgICAgICAgICAgICAqIHRvIG9wdC1vdXQgb2YgYW5pbWF0aW9ucyB3aGVuIHRoZWlyIGxheW91dERlcGVuZGVuY3kgaGFzbid0IGNoYW5nZWQsXG4gICAgICAgICAgICAgKiBldmVuIHdoZW4gdGhlIGNvbXBvbmVudCB1bm1vdW50cyBhbmQgcmVtb3VudHMgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IHByZXZEZXAgPSBwcmV2TGVhZC5vcHRpb25zLmxheW91dERlcGVuZGVuY3k7XG4gICAgICAgICAgICBjb25zdCBuZXh0RGVwID0gbm9kZS5vcHRpb25zLmxheW91dERlcGVuZGVuY3k7XG4gICAgICAgICAgICBjb25zdCBkZXBlbmRlbmN5TWF0Y2hlcyA9IHByZXZEZXAgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIG5leHREZXAgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIHByZXZEZXAgPT09IG5leHREZXA7XG4gICAgICAgICAgICBpZiAoIWRlcGVuZGVuY3lNYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldkluc3RhbmNlID0gcHJldkxlYWQuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNTdGFsZSA9IHByZXZJbnN0YW5jZSAmJiBwcmV2SW5zdGFuY2UuaXNDb25uZWN0ZWQgPT09IGZhbHNlICYmICFwcmV2TGVhZC5zbmFwc2hvdDtcbiAgICAgICAgICAgICAgICBpZiAoIWlzU3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5yZXN1bWVGcm9tID0gcHJldkxlYWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmVzZXJ2ZUZvbGxvd09wYWNpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUucmVzdW1lRnJvbS5wcmVzZXJ2ZU9wYWNpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2TGVhZC5zbmFwc2hvdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5zbmFwc2hvdCA9IHByZXZMZWFkLnNuYXBzaG90O1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5zbmFwc2hvdC5sYXRlc3RWYWx1ZXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZMZWFkLmFuaW1hdGlvblZhbHVlcyB8fCBwcmV2TGVhZC5sYXRlc3RWYWx1ZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUucm9vdCAmJiBub2RlLnJvb3QuaXNVcGRhdGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5pc0xheW91dERpcnR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgY3Jvc3NmYWRlIH0gPSBub2RlLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAoY3Jvc3NmYWRlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHByZXZMZWFkLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBleGl0QW5pbWF0aW9uQ29tcGxldGUoKSB7XG4gICAgICAgIHRoaXMubWVtYmVycy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IG9wdGlvbnMsIHJlc3VtaW5nRnJvbSB9ID0gbm9kZTtcbiAgICAgICAgICAgIG9wdGlvbnMub25FeGl0Q29tcGxldGUgJiYgb3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO1xuICAgICAgICAgICAgaWYgKHJlc3VtaW5nRnJvbSkge1xuICAgICAgICAgICAgICAgIHJlc3VtaW5nRnJvbS5vcHRpb25zLm9uRXhpdENvbXBsZXRlICYmXG4gICAgICAgICAgICAgICAgICAgIHJlc3VtaW5nRnJvbS5vcHRpb25zLm9uRXhpdENvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzY2hlZHVsZVJlbmRlcigpIHtcbiAgICAgICAgdGhpcy5tZW1iZXJzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgIG5vZGUuaW5zdGFuY2UgJiYgbm9kZS5zY2hlZHVsZVJlbmRlcihmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbGVhciBhbnkgbGVhZHMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCB0aGlzIHJlbmRlciB0byBwcmV2ZW50IHRoZW0gZnJvbSBiZWluZ1xuICAgICAqIHVzZWQgaW4gZnV0dXJlIGFuaW1hdGlvbnMgYW5kIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzXG4gICAgICovXG4gICAgcmVtb3ZlTGVhZFNuYXBzaG90KCkge1xuICAgICAgICBpZiAodGhpcy5sZWFkICYmIHRoaXMubGVhZC5zbmFwc2hvdCkge1xuICAgICAgICAgICAgdGhpcy5sZWFkLnNuYXBzaG90ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgeyBOb2RlU3RhY2sgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0YWNrLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/shared/stack.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ correctBorderRadius: () => (/* binding */ correctBorderRadius),\n/* harmony export */ pixelsToPercent: () => (/* binding */ pixelsToPercent)\n/* harmony export */ });\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (_value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\n\n//# sourceMappingURL=scale-border-radius.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtYm9yZGVyLXJhZGl1cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXlEOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsOERBQUU7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLEVBQUUsSUFBSSxFQUFFO0FBQzFCLEtBQUs7QUFDTDs7QUFFZ0Q7QUFDaEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWJvcmRlci1yYWRpdXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHB4IH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMnO1xuXG5mdW5jdGlvbiBwaXhlbHNUb1BlcmNlbnQocGl4ZWxzLCBheGlzKSB7XG4gICAgaWYgKGF4aXMubWF4ID09PSBheGlzLm1pbilcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgcmV0dXJuIChwaXhlbHMgLyAoYXhpcy5tYXggLSBheGlzLm1pbikpICogMTAwO1xufVxuLyoqXG4gKiBXZSBhbHdheXMgY29ycmVjdCBib3JkZXJSYWRpdXMgYXMgYSBwZXJjZW50YWdlIHJhdGhlciB0aGFuIHBpeGVscyB0byByZWR1Y2UgcGFpbnRzLlxuICogRm9yIGV4YW1wbGUsIGlmIHlvdSBhcmUgcHJvamVjdGluZyBhIGJveCB0aGF0IGlzIDEwMHB4IHdpZGUgd2l0aCBhIDEwcHggYm9yZGVyUmFkaXVzXG4gKiBpbnRvIGEgYm94IHRoYXQgaXMgMjAwcHggd2lkZSB3aXRoIGEgMjBweCBib3JkZXJSYWRpdXMsIHRoYXQgaXMgYWN0dWFsbHkgYSAxMCVcbiAqIGJvcmRlclJhZGl1cyBpbiBib3RoIHN0YXRlcy4gSWYgd2UgYW5pbWF0ZSBiZXR3ZWVuIHRoZSB0d28gaW4gcGl4ZWxzIHRoYXQgd2lsbCB0cmlnZ2VyXG4gKiBhIHBhaW50IGVhY2ggdGltZS4gSWYgd2UgYW5pbWF0ZSBiZXR3ZWVuIHRoZSB0d28gaW4gcGVyY2VudGFnZSB3ZSdsbCBhdm9pZCBhIHBhaW50LlxuICovXG5jb25zdCBjb3JyZWN0Qm9yZGVyUmFkaXVzID0ge1xuICAgIGNvcnJlY3Q6IChsYXRlc3QsIG5vZGUpID0+IHtcbiAgICAgICAgaWYgKCFub2RlLnRhcmdldClcbiAgICAgICAgICAgIHJldHVybiBsYXRlc3Q7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBsYXRlc3QgaXMgYSBzdHJpbmcsIGlmIGl0J3MgYSBwZXJjZW50YWdlIHdlIGNhbiByZXR1cm4gaW1tZWRpYXRlbHkgYXMgaXQnc1xuICAgICAgICAgKiBnb2luZyB0byBiZSBzdHJldGNoZWQgYXBwcm9wcmlhdGVseS4gT3RoZXJ3aXNlLCBpZiBpdCdzIGEgcGl4ZWwsIGNvbnZlcnQgaXQgdG8gYSBudW1iZXIuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodHlwZW9mIGxhdGVzdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgaWYgKHB4LnRlc3QobGF0ZXN0KSkge1xuICAgICAgICAgICAgICAgIGxhdGVzdCA9IHBhcnNlRmxvYXQobGF0ZXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBsYXRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIGxhdGVzdCBpcyBhIG51bWJlciwgaXQncyBhIHBpeGVsIHZhbHVlLiBXZSB1c2UgdGhlIGN1cnJlbnQgdmlld3BvcnRCb3ggdG8gY2FsY3VsYXRlIHRoYXRcbiAgICAgICAgICogcGl4ZWwgdmFsdWUgYXMgYSBwZXJjZW50YWdlIG9mIGVhY2ggYXhpc1xuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgeCA9IHBpeGVsc1RvUGVyY2VudChsYXRlc3QsIG5vZGUudGFyZ2V0LngpO1xuICAgICAgICBjb25zdCB5ID0gcGl4ZWxzVG9QZXJjZW50KGxhdGVzdCwgbm9kZS50YXJnZXQueSk7XG4gICAgICAgIHJldHVybiBgJHt4fSUgJHt5fSVgO1xuICAgIH0sXG59O1xuXG5leHBvcnQgeyBjb3JyZWN0Qm9yZGVyUmFkaXVzLCBwaXhlbHNUb1BlcmNlbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjYWxlLWJvcmRlci1yYWRpdXMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ correctBoxShadow: () => (/* binding */ correctBoxShadow)\n/* harmony export */ });\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\n\n//# sourceMappingURL=scale-box-shadow.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtYm94LXNoYWRvdy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQThEO0FBQ1A7O0FBRXZEO0FBQ0Esd0JBQXdCLDRCQUE0QjtBQUNwRDtBQUNBLHVCQUF1QixtRUFBTztBQUM5QjtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsbUVBQU87QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGdFQUFTO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtYm94LXNoYWRvdy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGxleCB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzJztcbmltcG9ydCB7IG1peE51bWJlciB9IGZyb20gJy4uLy4uL3V0aWxzL21peC9udW1iZXIubWpzJztcblxuY29uc3QgY29ycmVjdEJveFNoYWRvdyA9IHtcbiAgICBjb3JyZWN0OiAobGF0ZXN0LCB7IHRyZWVTY2FsZSwgcHJvamVjdGlvbkRlbHRhIH0pID0+IHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBsYXRlc3Q7XG4gICAgICAgIGNvbnN0IHNoYWRvdyA9IGNvbXBsZXgucGFyc2UobGF0ZXN0KTtcbiAgICAgICAgLy8gVE9ETzogRG9lc24ndCBzdXBwb3J0IG11bHRpcGxlIHNoYWRvd3NcbiAgICAgICAgaWYgKHNoYWRvdy5sZW5ndGggPiA1KVxuICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsO1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IGNvbXBsZXguY3JlYXRlVHJhbnNmb3JtZXIobGF0ZXN0KTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdHlwZW9mIHNoYWRvd1swXSAhPT0gXCJudW1iZXJcIiA/IDEgOiAwO1xuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG92ZXJhbGwgY29udGV4dCBzY2FsZVxuICAgICAgICBjb25zdCB4U2NhbGUgPSBwcm9qZWN0aW9uRGVsdGEueC5zY2FsZSAqIHRyZWVTY2FsZS54O1xuICAgICAgICBjb25zdCB5U2NhbGUgPSBwcm9qZWN0aW9uRGVsdGEueS5zY2FsZSAqIHRyZWVTY2FsZS55O1xuICAgICAgICBzaGFkb3dbMCArIG9mZnNldF0gLz0geFNjYWxlO1xuICAgICAgICBzaGFkb3dbMSArIG9mZnNldF0gLz0geVNjYWxlO1xuICAgICAgICAvKipcbiAgICAgICAgICogSWRlYWxseSB3ZSdkIGNvcnJlY3QgeCBhbmQgeSBzY2FsZXMgaW5kaXZpZHVhbGx5LCBidXQgYmVjYXVzZSBibHVyIGFuZFxuICAgICAgICAgKiBzcHJlYWQgYXBwbHkgdG8gYm90aCB3ZSBoYXZlIHRvIHRha2UgYSBzY2FsZSBhdmVyYWdlIGFuZCBhcHBseSB0aGF0IGluc3RlYWQuXG4gICAgICAgICAqIFdlIGNvdWxkIHBvdGVudGlhbGx5IGltcHJvdmUgdGhlIG91dGNvbWUgb2YgdGhpcyBieSBpbmNvcnBvcmF0aW5nIHRoZSByYXRpbyBiZXR3ZWVuXG4gICAgICAgICAqIHRoZSB0d28gc2NhbGVzLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgYXZlcmFnZVNjYWxlID0gbWl4TnVtYmVyKHhTY2FsZSwgeVNjYWxlLCAwLjUpO1xuICAgICAgICAvLyBCbHVyXG4gICAgICAgIGlmICh0eXBlb2Ygc2hhZG93WzIgKyBvZmZzZXRdID09PSBcIm51bWJlclwiKVxuICAgICAgICAgICAgc2hhZG93WzIgKyBvZmZzZXRdIC89IGF2ZXJhZ2VTY2FsZTtcbiAgICAgICAgLy8gU3ByZWFkXG4gICAgICAgIGlmICh0eXBlb2Ygc2hhZG93WzMgKyBvZmZzZXRdID09PSBcIm51bWJlclwiKVxuICAgICAgICAgICAgc2hhZG93WzMgKyBvZmZzZXRdIC89IGF2ZXJhZ2VTY2FsZTtcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlKHNoYWRvdyk7XG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IGNvcnJlY3RCb3hTaGFkb3cgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjYWxlLWJveC1zaGFkb3cubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addScaleCorrector: () => (/* binding */ addScaleCorrector),\n/* harmony export */ scaleCorrectors: () => (/* binding */ scaleCorrectors)\n/* harmony export */ });\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../animation/utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scale-border-radius.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs\");\n/* harmony import */ var _scale_box_shadow_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scale-box-shadow.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs\");\n\n\n\n\nconst scaleCorrectors = {\n borderRadius: {\n ..._scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n borderTopRightRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n borderBottomLeftRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n borderBottomRightRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n boxShadow: _scale_box_shadow_mjs__WEBPACK_IMPORTED_MODULE_1__.correctBoxShadow,\n};\nfunction addScaleCorrector(correctors) {\n for (const key in correctors) {\n scaleCorrectors[key] = correctors[key];\n if ((0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__.isCSSVariableName)(key)) {\n scaleCorrectors[key].isCSSVariable = true;\n }\n }\n}\n\n\n//# sourceMappingURL=scale-correction.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtY29ycmVjdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBOEU7QUFDZDtBQUNOOztBQUUxRDtBQUNBO0FBQ0EsV0FBVyx5RUFBbUI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLHlCQUF5Qix5RUFBbUI7QUFDNUMsMEJBQTBCLHlFQUFtQjtBQUM3Qyw0QkFBNEIseUVBQW1CO0FBQy9DLDZCQUE2Qix5RUFBbUI7QUFDaEQsZUFBZSxtRUFBZ0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHVGQUFpQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTs7QUFFOEM7QUFDOUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWNvcnJlY3Rpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQ1NTVmFyaWFibGVOYW1lIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL3V0aWxzL2lzLWNzcy12YXJpYWJsZS5tanMnO1xuaW1wb3J0IHsgY29ycmVjdEJvcmRlclJhZGl1cyB9IGZyb20gJy4vc2NhbGUtYm9yZGVyLXJhZGl1cy5tanMnO1xuaW1wb3J0IHsgY29ycmVjdEJveFNoYWRvdyB9IGZyb20gJy4vc2NhbGUtYm94LXNoYWRvdy5tanMnO1xuXG5jb25zdCBzY2FsZUNvcnJlY3RvcnMgPSB7XG4gICAgYm9yZGVyUmFkaXVzOiB7XG4gICAgICAgIC4uLmNvcnJlY3RCb3JkZXJSYWRpdXMsXG4gICAgICAgIGFwcGx5VG86IFtcbiAgICAgICAgICAgIFwiYm9yZGVyVG9wTGVmdFJhZGl1c1wiLFxuICAgICAgICAgICAgXCJib3JkZXJUb3BSaWdodFJhZGl1c1wiLFxuICAgICAgICAgICAgXCJib3JkZXJCb3R0b21MZWZ0UmFkaXVzXCIsXG4gICAgICAgICAgICBcImJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzXCIsXG4gICAgICAgIF0sXG4gICAgfSxcbiAgICBib3JkZXJUb3BMZWZ0UmFkaXVzOiBjb3JyZWN0Qm9yZGVyUmFkaXVzLFxuICAgIGJvcmRlclRvcFJpZ2h0UmFkaXVzOiBjb3JyZWN0Qm9yZGVyUmFkaXVzLFxuICAgIGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6IGNvcnJlY3RCb3JkZXJSYWRpdXMsXG4gICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IGNvcnJlY3RCb3JkZXJSYWRpdXMsXG4gICAgYm94U2hhZG93OiBjb3JyZWN0Qm94U2hhZG93LFxufTtcbmZ1bmN0aW9uIGFkZFNjYWxlQ29ycmVjdG9yKGNvcnJlY3RvcnMpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjb3JyZWN0b3JzKSB7XG4gICAgICAgIHNjYWxlQ29ycmVjdG9yc1trZXldID0gY29ycmVjdG9yc1trZXldO1xuICAgICAgICBpZiAoaXNDU1NWYXJpYWJsZU5hbWUoa2V5KSkge1xuICAgICAgICAgICAgc2NhbGVDb3JyZWN0b3JzW2tleV0uaXNDU1NWYXJpYWJsZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCB7IGFkZFNjYWxlQ29ycmVjdG9yLCBzY2FsZUNvcnJlY3RvcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjYWxlLWNvcnJlY3Rpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/transform.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/transform.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildProjectionTransform: () => (/* binding */ buildProjectionTransform)\n/* harmony export */ });\nfunction buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n const zTranslate = latestTransform?.z || 0;\n if (xTranslate || yTranslate || zTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY } = latestTransform;\n if (transformPerspective)\n transform = `perspective(${transformPerspective}px) ${transform}`;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n if (skewX)\n transform += `skewX(${skewX}deg) `;\n if (skewY)\n transform += `skewY(${skewY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\n\n//# sourceMappingURL=transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLFdBQVcsTUFBTSxXQUFXLE1BQU0sV0FBVztBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsZ0JBQWdCLElBQUksZ0JBQWdCO0FBQ2xFO0FBQ0E7QUFDQSxnQkFBZ0IsK0RBQStEO0FBQy9FO0FBQ0EsdUNBQXVDLHFCQUFxQixNQUFNLFVBQVU7QUFDNUU7QUFDQSxtQ0FBbUMsT0FBTztBQUMxQztBQUNBLG9DQUFvQyxRQUFRO0FBQzVDO0FBQ0Esb0NBQW9DLFFBQVE7QUFDNUM7QUFDQSxrQ0FBa0MsTUFBTTtBQUN4QztBQUNBLGtDQUFrQyxNQUFNO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsY0FBYyxJQUFJLGNBQWM7QUFDOUQ7QUFDQTtBQUNBOztBQUVvQztBQUNwQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvdHJhbnNmb3JtLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBidWlsZFByb2plY3Rpb25UcmFuc2Zvcm0oZGVsdGEsIHRyZWVTY2FsZSwgbGF0ZXN0VHJhbnNmb3JtKSB7XG4gICAgbGV0IHRyYW5zZm9ybSA9IFwiXCI7XG4gICAgLyoqXG4gICAgICogVGhlIHRyYW5zbGF0aW9ucyB3ZSB1c2UgdG8gY2FsY3VsYXRlIGFyZSBhbHdheXMgcmVsYXRpdmUgdG8gdGhlIHZpZXdwb3J0IGNvb3JkaW5hdGUgc3BhY2UuXG4gICAgICogQnV0IHdoZW4gd2UgYXBwbHkgc2NhbGVzLCB3ZSBhbHNvIHNjYWxlIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIGFuIGVsZW1lbnQgYW5kIGl0cyBjaGlsZHJlbi5cbiAgICAgKiBGb3IgaW5zdGFuY2UgaWYgd2UgaGF2ZSBhIHRyZWVTY2FsZSAodGhlIGN1bG1pbmF0aW9uIG9mIGFsbCBwYXJlbnQgc2NhbGVzKSBvZiAwLjUgYW5kIHdlIG5lZWRcbiAgICAgKiB0byBtb3ZlIGFuIGVsZW1lbnQgMTAwIHBpeGVscywgd2UgYWN0dWFsbHkgbmVlZCB0byBtb3ZlIGl0IDIwMCBpbiB3aXRoaW4gdGhhdCBzY2FsZWQgc3BhY2UuXG4gICAgICovXG4gICAgY29uc3QgeFRyYW5zbGF0ZSA9IGRlbHRhLngudHJhbnNsYXRlIC8gdHJlZVNjYWxlLng7XG4gICAgY29uc3QgeVRyYW5zbGF0ZSA9IGRlbHRhLnkudHJhbnNsYXRlIC8gdHJlZVNjYWxlLnk7XG4gICAgY29uc3QgelRyYW5zbGF0ZSA9IGxhdGVzdFRyYW5zZm9ybT8ueiB8fCAwO1xuICAgIGlmICh4VHJhbnNsYXRlIHx8IHlUcmFuc2xhdGUgfHwgelRyYW5zbGF0ZSkge1xuICAgICAgICB0cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoJHt4VHJhbnNsYXRlfXB4LCAke3lUcmFuc2xhdGV9cHgsICR7elRyYW5zbGF0ZX1weCkgYDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQXBwbHkgc2NhbGUgY29ycmVjdGlvbiBmb3IgdGhlIHRyZWUgdHJhbnNmb3JtLlxuICAgICAqIFRoaXMgd2lsbCBhcHBseSBzY2FsZSB0byB0aGUgc2NyZWVuLW9yaWVudGF0ZWQgYXhlcy5cbiAgICAgKi9cbiAgICBpZiAodHJlZVNjYWxlLnggIT09IDEgfHwgdHJlZVNjYWxlLnkgIT09IDEpIHtcbiAgICAgICAgdHJhbnNmb3JtICs9IGBzY2FsZSgkezEgLyB0cmVlU2NhbGUueH0sICR7MSAvIHRyZWVTY2FsZS55fSkgYDtcbiAgICB9XG4gICAgaWYgKGxhdGVzdFRyYW5zZm9ybSkge1xuICAgICAgICBjb25zdCB7IHRyYW5zZm9ybVBlcnNwZWN0aXZlLCByb3RhdGUsIHJvdGF0ZVgsIHJvdGF0ZVksIHNrZXdYLCBza2V3WSB9ID0gbGF0ZXN0VHJhbnNmb3JtO1xuICAgICAgICBpZiAodHJhbnNmb3JtUGVyc3BlY3RpdmUpXG4gICAgICAgICAgICB0cmFuc2Zvcm0gPSBgcGVyc3BlY3RpdmUoJHt0cmFuc2Zvcm1QZXJzcGVjdGl2ZX1weCkgJHt0cmFuc2Zvcm19YDtcbiAgICAgICAgaWYgKHJvdGF0ZSlcbiAgICAgICAgICAgIHRyYW5zZm9ybSArPSBgcm90YXRlKCR7cm90YXRlfWRlZykgYDtcbiAgICAgICAgaWYgKHJvdGF0ZVgpXG4gICAgICAgICAgICB0cmFuc2Zvcm0gKz0gYHJvdGF0ZVgoJHtyb3RhdGVYfWRlZykgYDtcbiAgICAgICAgaWYgKHJvdGF0ZVkpXG4gICAgICAgICAgICB0cmFuc2Zvcm0gKz0gYHJvdGF0ZVkoJHtyb3RhdGVZfWRlZykgYDtcbiAgICAgICAgaWYgKHNrZXdYKVxuICAgICAgICAgICAgdHJhbnNmb3JtICs9IGBza2V3WCgke3NrZXdYfWRlZykgYDtcbiAgICAgICAgaWYgKHNrZXdZKVxuICAgICAgICAgICAgdHJhbnNmb3JtICs9IGBza2V3WSgke3NrZXdZfWRlZykgYDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQXBwbHkgc2NhbGUgdG8gbWF0Y2ggdGhlIHNpemUgb2YgdGhlIGVsZW1lbnQgdG8gdGhlIHNpemUgd2Ugd2FudCBpdC5cbiAgICAgKiBUaGlzIHdpbGwgYXBwbHkgc2NhbGUgdG8gdGhlIGVsZW1lbnQtb3JpZW50YXRlZCBheGVzLlxuICAgICAqL1xuICAgIGNvbnN0IGVsZW1lbnRTY2FsZVggPSBkZWx0YS54LnNjYWxlICogdHJlZVNjYWxlLng7XG4gICAgY29uc3QgZWxlbWVudFNjYWxlWSA9IGRlbHRhLnkuc2NhbGUgKiB0cmVlU2NhbGUueTtcbiAgICBpZiAoZWxlbWVudFNjYWxlWCAhPT0gMSB8fCBlbGVtZW50U2NhbGVZICE9PSAxKSB7XG4gICAgICAgIHRyYW5zZm9ybSArPSBgc2NhbGUoJHtlbGVtZW50U2NhbGVYfSwgJHtlbGVtZW50U2NhbGVZfSlgO1xuICAgIH1cbiAgICByZXR1cm4gdHJhbnNmb3JtIHx8IFwibm9uZVwiO1xufVxuXG5leHBvcnQgeyBidWlsZFByb2plY3Rpb25UcmFuc2Zvcm0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRyYW5zZm9ybS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ compareByDepth: () => (/* binding */ compareByDepth)\n/* harmony export */ });\nconst compareByDepth = (a, b) => a.depth - b.depth;\n\n\n//# sourceMappingURL=compare-by-depth.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9jb21wYXJlLWJ5LWRlcHRoLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRTBCO0FBQzFCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3V0aWxzL2NvbXBhcmUtYnktZGVwdGgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbXBhcmVCeURlcHRoID0gKGEsIGIpID0+IGEuZGVwdGggLSBiLmRlcHRoO1xuXG5leHBvcnQgeyBjb21wYXJlQnlEZXB0aCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29tcGFyZS1ieS1kZXB0aC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ eachAxis: () => (/* binding */ eachAxis)\n/* harmony export */ });\nfunction eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\n\n//# sourceMappingURL=each-axis.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9lYWNoLWF4aXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3V0aWxzL2VhY2gtYXhpcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gZWFjaEF4aXMoY2FsbGJhY2spIHtcbiAgICByZXR1cm4gW2NhbGxiYWNrKFwieFwiKSwgY2FsbGJhY2soXCJ5XCIpXTtcbn1cblxuZXhwb3J0IHsgZWFjaEF4aXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVhY2gtYXhpcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FlatTree: () => (/* binding */ FlatTree)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\");\n/* harmony import */ var _compare_by_depth_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compare-by-depth.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs\");\n\n\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(_compare_by_depth_mjs__WEBPACK_IMPORTED_MODULE_1__.compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\n\n//# sourceMappingURL=flat-tree.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9mbGF0LXRyZWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5RDtBQUNEOztBQUV4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDJEQUFhO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0RBQVU7QUFDbEI7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLGlFQUFjO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBOztBQUVvQjtBQUNwQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9mbGF0LXRyZWUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFVuaXF1ZUl0ZW0sIHJlbW92ZUl0ZW0gfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgY29tcGFyZUJ5RGVwdGggfSBmcm9tICcuL2NvbXBhcmUtYnktZGVwdGgubWpzJztcblxuY2xhc3MgRmxhdFRyZWUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IGZhbHNlO1xuICAgIH1cbiAgICBhZGQoY2hpbGQpIHtcbiAgICAgICAgYWRkVW5pcXVlSXRlbSh0aGlzLmNoaWxkcmVuLCBjaGlsZCk7XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IHRydWU7XG4gICAgfVxuICAgIHJlbW92ZShjaGlsZCkge1xuICAgICAgICByZW1vdmVJdGVtKHRoaXMuY2hpbGRyZW4sIGNoaWxkKTtcbiAgICAgICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcbiAgICB9XG4gICAgZm9yRWFjaChjYWxsYmFjaykge1xuICAgICAgICB0aGlzLmlzRGlydHkgJiYgdGhpcy5jaGlsZHJlbi5zb3J0KGNvbXBhcmVCeURlcHRoKTtcbiAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaChjYWxsYmFjayk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBGbGF0VHJlZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmxhdC10cmVlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ has2DTranslate: () => (/* binding */ has2DTranslate),\n/* harmony export */ hasScale: () => (/* binding */ hasScale),\n/* harmony export */ hasTransform: () => (/* binding */ hasTransform)\n/* harmony export */ });\nfunction isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY ||\n values.skewX ||\n values.skewY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\n\n//# sourceMappingURL=has-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9oYXMtdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsdUJBQXVCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtEO0FBQ2xEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3V0aWxzL2hhcy10cmFuc2Zvcm0ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGlzSWRlbnRpdHlTY2FsZShzY2FsZSkge1xuICAgIHJldHVybiBzY2FsZSA9PT0gdW5kZWZpbmVkIHx8IHNjYWxlID09PSAxO1xufVxuZnVuY3Rpb24gaGFzU2NhbGUoeyBzY2FsZSwgc2NhbGVYLCBzY2FsZVkgfSkge1xuICAgIHJldHVybiAoIWlzSWRlbnRpdHlTY2FsZShzY2FsZSkgfHxcbiAgICAgICAgIWlzSWRlbnRpdHlTY2FsZShzY2FsZVgpIHx8XG4gICAgICAgICFpc0lkZW50aXR5U2NhbGUoc2NhbGVZKSk7XG59XG5mdW5jdGlvbiBoYXNUcmFuc2Zvcm0odmFsdWVzKSB7XG4gICAgcmV0dXJuIChoYXNTY2FsZSh2YWx1ZXMpIHx8XG4gICAgICAgIGhhczJEVHJhbnNsYXRlKHZhbHVlcykgfHxcbiAgICAgICAgdmFsdWVzLnogfHxcbiAgICAgICAgdmFsdWVzLnJvdGF0ZSB8fFxuICAgICAgICB2YWx1ZXMucm90YXRlWCB8fFxuICAgICAgICB2YWx1ZXMucm90YXRlWSB8fFxuICAgICAgICB2YWx1ZXMuc2tld1ggfHxcbiAgICAgICAgdmFsdWVzLnNrZXdZKTtcbn1cbmZ1bmN0aW9uIGhhczJEVHJhbnNsYXRlKHZhbHVlcykge1xuICAgIHJldHVybiBpczJEVHJhbnNsYXRlKHZhbHVlcy54KSB8fCBpczJEVHJhbnNsYXRlKHZhbHVlcy55KTtcbn1cbmZ1bmN0aW9uIGlzMkRUcmFuc2xhdGUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUgIT09IFwiMCVcIjtcbn1cblxuZXhwb3J0IHsgaGFzMkRUcmFuc2xhdGUsIGhhc1NjYWxlLCBoYXNUcmFuc2Zvcm0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhhcy10cmFuc2Zvcm0ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/measure.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ measurePageBox: () => (/* binding */ measurePageBox),\n/* harmony export */ measureViewportBox: () => (/* binding */ measureViewportBox)\n/* harmony export */ });\n/* harmony import */ var _geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry/conversion.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs\");\n/* harmony import */ var _geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry/delta-apply.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\");\n\n\n\nfunction measureViewportBox(instance, transformPoint) {\n return (0,_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.convertBoundingBoxToBox)((0,_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.transformBoxPoints)(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__.translateAxis)(viewportBox.x, scroll.offset.x);\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__.translateAxis)(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\n\n//# sourceMappingURL=measure.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9tZWFzdXJlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXlGO0FBQzdCOztBQUU1RDtBQUNBLFdBQVcsaUZBQXVCLENBQUMsNEVBQWtCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBLFlBQVksU0FBUztBQUNyQjtBQUNBLFFBQVEsd0VBQWE7QUFDckIsUUFBUSx3RUFBYTtBQUNyQjtBQUNBO0FBQ0E7O0FBRThDO0FBQzlDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3V0aWxzL21lYXN1cmUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnZlcnRCb3VuZGluZ0JveFRvQm94LCB0cmFuc2Zvcm1Cb3hQb2ludHMgfSBmcm9tICcuLi9nZW9tZXRyeS9jb252ZXJzaW9uLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2xhdGVBeGlzIH0gZnJvbSAnLi4vZ2VvbWV0cnkvZGVsdGEtYXBwbHkubWpzJztcblxuZnVuY3Rpb24gbWVhc3VyZVZpZXdwb3J0Qm94KGluc3RhbmNlLCB0cmFuc2Zvcm1Qb2ludCkge1xuICAgIHJldHVybiBjb252ZXJ0Qm91bmRpbmdCb3hUb0JveCh0cmFuc2Zvcm1Cb3hQb2ludHMoaW5zdGFuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksIHRyYW5zZm9ybVBvaW50KSk7XG59XG5mdW5jdGlvbiBtZWFzdXJlUGFnZUJveChlbGVtZW50LCByb290UHJvamVjdGlvbk5vZGUsIHRyYW5zZm9ybVBhZ2VQb2ludCkge1xuICAgIGNvbnN0IHZpZXdwb3J0Qm94ID0gbWVhc3VyZVZpZXdwb3J0Qm94KGVsZW1lbnQsIHRyYW5zZm9ybVBhZ2VQb2ludCk7XG4gICAgY29uc3QgeyBzY3JvbGwgfSA9IHJvb3RQcm9qZWN0aW9uTm9kZTtcbiAgICBpZiAoc2Nyb2xsKSB7XG4gICAgICAgIHRyYW5zbGF0ZUF4aXModmlld3BvcnRCb3gueCwgc2Nyb2xsLm9mZnNldC54KTtcbiAgICAgICAgdHJhbnNsYXRlQXhpcyh2aWV3cG9ydEJveC55LCBzY3JvbGwub2Zmc2V0LnkpO1xuICAgIH1cbiAgICByZXR1cm4gdmlld3BvcnRCb3g7XG59XG5cbmV4cG9ydCB7IG1lYXN1cmVQYWdlQm94LCBtZWFzdXJlVmlld3BvcnRCb3ggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1lYXN1cmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs": +/*!************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/Feature.mjs ***! + \************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Feature: () => (/* binding */ Feature)\n/* harmony export */ });\n/**\n * Feature base class for extending VisualElement functionality.\n * Features are plugins that can be mounted/unmounted to add behavior\n * like gestures, animations, or layout tracking.\n */\nclass Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\n\n//# sourceMappingURL=Feature.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL0ZlYXR1cmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRW1CO0FBQ25CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvRmVhdHVyZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGZWF0dXJlIGJhc2UgY2xhc3MgZm9yIGV4dGVuZGluZyBWaXN1YWxFbGVtZW50IGZ1bmN0aW9uYWxpdHkuXG4gKiBGZWF0dXJlcyBhcmUgcGx1Z2lucyB0aGF0IGNhbiBiZSBtb3VudGVkL3VubW91bnRlZCB0byBhZGQgYmVoYXZpb3JcbiAqIGxpa2UgZ2VzdHVyZXMsIGFuaW1hdGlvbnMsIG9yIGxheW91dCB0cmFja2luZy5cbiAqL1xuY2xhc3MgRmVhdHVyZSB7XG4gICAgY29uc3RydWN0b3Iobm9kZSkge1xuICAgICAgICB0aGlzLmlzTW91bnRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7IH1cbn1cblxuZXhwb3J0IHsgRmVhdHVyZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RmVhdHVyZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/VisualElement.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VisualElement: () => (/* binding */ VisualElement),\n/* harmony export */ getFeatureDefinitions: () => (/* binding */ getFeatureDefinitions),\n/* harmony export */ setFeatureDefinitions: () => (/* binding */ setFeatureDefinitions)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var _animation_keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../animation/keyframes/KeyframesResolver.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var _animation_NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../animation/NativeAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs\");\n/* harmony import */ var _animation_waapi_utils_accelerated_values_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../animation/waapi/utils/accelerated-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs\");\n/* harmony import */ var _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../frameloop/microtask.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../projection/geometry/models.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../value/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../value/types/utils/animatable-none.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\");\n/* harmony import */ var _value_types_utils_find_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../value/types/utils/find.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs\");\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _store_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./store.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/store.mjs\");\n/* harmony import */ var _utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/is-controlling-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _utils_motion_values_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utils/motion-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/motion-values.mjs\");\n/* harmony import */ var _utils_reduced_motion_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/reduced-motion/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs\");\n/* harmony import */ var _utils_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./utils/resolve-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\");\n/* harmony import */ var _utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/reduced-motion/state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\n/**\n * Static feature definitions - can be injected by framework layer\n */\nlet featureDefinitions = {};\n/**\n * Set feature definitions for all VisualElements.\n * This should be called by the framework layer (e.g., framer-motion) during initialization.\n */\nfunction setFeatureDefinitions(definitions) {\n featureDefinitions = definitions;\n}\n/**\n * Get the current feature definitions\n */\nfunction getFeatureDefinitions() {\n return featureDefinitions;\n}\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n return {};\n }\n constructor({ parent, props, presenceContext, reducedMotionConfig, skipAnimations, blockInitialAnimation, visualState, }, options = {}) {\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * Decides whether animations should be skipped for this VisualElement.\n * Useful for E2E tests and visual regression testing.\n */\n this.shouldSkipAnimations = false;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n this.KeyframeResolver = _animation_keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__.KeyframeResolver;\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * Track whether this element has been mounted before, to detect\n * remounts after Suspense unmount/remount cycles.\n */\n this.hasBeenMounted = false;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.renderScheduledAt = 0.0;\n this.scheduleRender = () => {\n const now = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now();\n if (this.renderScheduledAt < now) {\n this.renderScheduledAt = now;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.frame.render(this.render, false, true);\n }\n };\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.skipAnimationsConfig = skipAnimations;\n this.options = options;\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\n this.isControllingVariants = (0,_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__.isControllingVariants)(props);\n this.isVariantNode = (0,_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__.isVariantNode)(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't necessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value)) {\n value.set(latestValues[key]);\n }\n }\n }\n mount(instance) {\n /**\n * If this element has been mounted before (e.g. after a Suspense\n * unmount/remount), reset motion values to their initial state\n * so animations replay correctly from initial → animate.\n */\n if (this.hasBeenMounted) {\n for (const key in this.initialValues) {\n this.values.get(key)?.jump(this.initialValues[key]);\n this.latestValues[key] = this.initialValues[key];\n }\n }\n this.current = instance;\n _store_mjs__WEBPACK_IMPORTED_MODULE_5__.visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n /**\n * Determine reduced motion preference. Only initialize the matchMedia\n * listener if we actually need the dynamic value (i.e., when config\n * is neither \"never\" nor \"always\").\n */\n if (this.reducedMotionConfig === \"never\") {\n this.shouldReduceMotion = false;\n }\n else if (this.reducedMotionConfig === \"always\") {\n this.shouldReduceMotion = true;\n }\n else {\n if (!_utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__.hasReducedMotionListener.current) {\n (0,_utils_reduced_motion_index_mjs__WEBPACK_IMPORTED_MODULE_7__.initPrefersReducedMotion)();\n }\n this.shouldReduceMotion = _utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__.prefersReducedMotion.current;\n }\n if (true) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_8__.warnOnce)(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\", \"reduced-motion-disabled\");\n }\n /**\n * Set whether animations should be skipped based on the config.\n */\n this.shouldSkipAnimations = this.skipAnimationsConfig ?? false;\n this.parent?.addChild(this);\n this.update(this.props, this.presenceContext);\n this.hasBeenMounted = true;\n }\n unmount() {\n this.projection && this.projection.unmount();\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.cancelFrame)(this.notifyUpdate);\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.cancelFrame)(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.valueSubscriptions.clear();\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent?.removeChild(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature) {\n feature.unmount();\n feature.isMounted = false;\n }\n }\n this.current = null;\n }\n addChild(child) {\n this.children.add(child);\n this.enteringChildren ?? (this.enteringChildren = new Set());\n this.enteringChildren.add(child);\n }\n removeChild(child) {\n this.children.delete(child);\n this.enteringChildren && this.enteringChildren.delete(child);\n }\n bindToMotionValue(key, value) {\n if (this.valueSubscriptions.has(key)) {\n this.valueSubscriptions.get(key)();\n }\n if (value.accelerate &&\n _animation_waapi_utils_accelerated_values_mjs__WEBPACK_IMPORTED_MODULE_9__.acceleratedValues.has(key) &&\n this.current instanceof HTMLElement) {\n const { factory, keyframes, times, ease, duration } = value.accelerate;\n const animation = new _animation_NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_10__.NativeAnimation({\n element: this.current,\n name: key,\n keyframes,\n times,\n ease,\n duration: (0,motion_utils__WEBPACK_IMPORTED_MODULE_11__.secondsToMilliseconds)(duration),\n });\n const cleanup = factory(animation);\n this.valueSubscriptions.set(key, () => {\n cleanup();\n animation.cancel();\n });\n return;\n }\n const valueIsTransform = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_12__.transformProps.has(key);\n if (valueIsTransform && this.onBindTransform) {\n this.onBindTransform();\n }\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate && _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.frame.preRender(this.notifyUpdate);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n this.scheduleRender();\n });\n let removeSyncCheck;\n if (typeof window !== \"undefined\" &&\n window.MotionCheckAppearSync) {\n removeSyncCheck = window.MotionCheckAppearSync(this, key, value);\n }\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n if (removeSyncCheck)\n removeSyncCheck();\n if (value.owner)\n value.stop();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n updateFeatures() {\n let key = \"animation\";\n for (key in featureDefinitions) {\n const featureDefinition = featureDefinitions[key];\n if (!featureDefinition)\n continue;\n const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\n /**\n * If this feature is enabled but not active, make a new instance.\n */\n if (!this.features[key] &&\n FeatureConstructor &&\n isEnabled(this.props)) {\n this.features[key] = new FeatureConstructor(this);\n }\n /**\n * If we have a feature, mount or update it.\n */\n if (this.features[key]) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : (0,_projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_13__.createBox)();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listenerName = (\"on\" + key);\n const listener = props[listenerName];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = (0,_utils_motion_values_mjs__WEBPACK_IMPORTED_MODULE_14__.updateMotionValuesFromProps)(this, this.scrapeMotionValuesFromProps(props, this.prevProps || {}, this), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n const existingValue = this.values.get(key);\n if (value !== existingValue) {\n if (existingValue)\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_15__.motionValue)(defaultValue === null ? undefined : defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key, target) {\n let value = this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : this.getBaseTargetFromProps(this.props, key) ??\n this.readValueFromInstance(this.current, key, this.options);\n if (value !== undefined && value !== null) {\n if (typeof value === \"string\" &&\n ((0,motion_utils__WEBPACK_IMPORTED_MODULE_16__.isNumericalString)(value) || (0,motion_utils__WEBPACK_IMPORTED_MODULE_17__.isZeroValueString)(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!(0,_value_types_utils_find_mjs__WEBPACK_IMPORTED_MODULE_18__.findValueType)(value) && _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_19__.complex.test(target)) {\n value = (0,_value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_20__.getAnimatableNone)(key, target);\n }\n this.setBaseTarget(key, (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value) ? value.get() : value);\n }\n return (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value) ? value.get() : value;\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n const { initial } = this.props;\n let valueFromInitial;\n if (typeof initial === \"string\" || typeof initial === \"object\") {\n const variant = (0,_utils_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_21__.resolveVariantFromProps)(this.props, initial, this.presenceContext?.custom);\n if (variant) {\n valueFromInitial = variant[key];\n }\n }\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !(0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new motion_utils__WEBPACK_IMPORTED_MODULE_22__.SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n scheduleRenderMicrotask() {\n _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_23__.microtask.render(this.render);\n }\n}\n\n\n//# sourceMappingURL=VisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL1Zpc3VhbEVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUEwSDtBQUMxQztBQUNiO0FBQ2lCO0FBQzdCO0FBQ0w7QUFDWTtBQUNiO0FBQ1U7QUFDa0I7QUFDZjtBQUNLO0FBQ2xCO0FBQzBDO0FBQy9CO0FBQ1k7QUFDSTtBQUNMO0FBQzJCO0FBQ3RDOztBQUU1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDBHQUEwRyxjQUFjO0FBQzFJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx3RkFBZ0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDBEQUFJO0FBQzVCO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQUs7QUFDckI7QUFDQTtBQUNBLGdCQUFnQiw0QkFBNEI7QUFDNUM7QUFDQSw0QkFBNEI7QUFDNUIsK0NBQStDLGtCQUFrQjtBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMseUZBQXFCO0FBQzFELDZCQUE2QixpRkFBYTtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHFDQUFxQyw0Q0FBNEM7QUFDakc7QUFDQTtBQUNBLG1EQUFtRCwrRUFBYTtBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwwREFBa0I7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIscUZBQXdCO0FBQ3pDLGdCQUFnQix5RkFBd0I7QUFDeEM7QUFDQSxzQ0FBc0MsaUZBQW9CO0FBQzFEO0FBQ0EsWUFBWSxJQUFxQztBQUNqRCxZQUFZLHNEQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLGlFQUFXO0FBQ25CLFFBQVEsaUVBQVc7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSw0RkFBaUI7QUFDN0I7QUFDQSxvQkFBb0IsNENBQTRDO0FBQ2hFLGtDQUFrQyw0RUFBZTtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLG9FQUFxQjtBQUMvQyxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGlDQUFpQyxzRUFBYztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHVEQUFLO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHlDQUF5QztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsMkVBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsOEJBQThCO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msc0ZBQTJCLG1FQUFtRTtBQUM5SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw4REFBVyxxREFBcUQsYUFBYTtBQUNqRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixnRUFBaUIsV0FBVyxnRUFBaUI7QUFDOUQ7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDJFQUFhLFdBQVcsb0VBQU87QUFDckQsd0JBQXdCLDBGQUFpQjtBQUN6QztBQUNBLG9DQUFvQywrRUFBYTtBQUNqRDtBQUNBLGVBQWUsK0VBQWE7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsVUFBVTtBQUMxQjtBQUNBO0FBQ0EsNEJBQTRCLHFGQUF1QjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsK0VBQWE7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLDhEQUFtQjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLGdFQUFTO0FBQ2pCO0FBQ0E7O0FBRXVFO0FBQ3ZFIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvVmlzdWFsRWxlbWVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2Fybk9uY2UsIHNlY29uZHNUb01pbGxpc2Vjb25kcywgaXNOdW1lcmljYWxTdHJpbmcsIGlzWmVyb1ZhbHVlU3RyaW5nLCBTdWJzY3JpcHRpb25NYW5hZ2VyIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IEtleWZyYW1lUmVzb2x2ZXIgfSBmcm9tICcuLi9hbmltYXRpb24va2V5ZnJhbWVzL0tleWZyYW1lc1Jlc29sdmVyLm1qcyc7XG5pbXBvcnQgeyBOYXRpdmVBbmltYXRpb24gfSBmcm9tICcuLi9hbmltYXRpb24vTmF0aXZlQW5pbWF0aW9uLm1qcyc7XG5pbXBvcnQgeyBhY2NlbGVyYXRlZFZhbHVlcyB9IGZyb20gJy4uL2FuaW1hdGlvbi93YWFwaS91dGlscy9hY2NlbGVyYXRlZC12YWx1ZXMubWpzJztcbmltcG9ydCB7IG1pY3JvdGFzayB9IGZyb20gJy4uL2ZyYW1lbG9vcC9taWNyb3Rhc2subWpzJztcbmltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi9mcmFtZWxvb3Avc3luYy10aW1lLm1qcyc7XG5pbXBvcnQgeyBjcmVhdGVCb3ggfSBmcm9tICcuLi9wcm9qZWN0aW9uL2dlb21ldHJ5L21vZGVscy5tanMnO1xuaW1wb3J0IHsgbW90aW9uVmFsdWUgfSBmcm9tICcuLi92YWx1ZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgY29tcGxleCB9IGZyb20gJy4uL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzJztcbmltcG9ydCB7IGdldEFuaW1hdGFibGVOb25lIH0gZnJvbSAnLi4vdmFsdWUvdHlwZXMvdXRpbHMvYW5pbWF0YWJsZS1ub25lLm1qcyc7XG5pbXBvcnQgeyBmaW5kVmFsdWVUeXBlIH0gZnJvbSAnLi4vdmFsdWUvdHlwZXMvdXRpbHMvZmluZC5tanMnO1xuaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJy4uL3ZhbHVlL3V0aWxzL2lzLW1vdGlvbi12YWx1ZS5tanMnO1xuaW1wb3J0IHsgdmlzdWFsRWxlbWVudFN0b3JlIH0gZnJvbSAnLi9zdG9yZS5tanMnO1xuaW1wb3J0IHsgaXNDb250cm9sbGluZ1ZhcmlhbnRzLCBpc1ZhcmlhbnROb2RlIH0gZnJvbSAnLi91dGlscy9pcy1jb250cm9sbGluZy12YXJpYW50cy5tanMnO1xuaW1wb3J0IHsgdHJhbnNmb3JtUHJvcHMgfSBmcm9tICcuL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyB1cGRhdGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfSBmcm9tICcuL3V0aWxzL21vdGlvbi12YWx1ZXMubWpzJztcbmltcG9ydCB7IGluaXRQcmVmZXJzUmVkdWNlZE1vdGlvbiB9IGZyb20gJy4vdXRpbHMvcmVkdWNlZC1tb3Rpb24vaW5kZXgubWpzJztcbmltcG9ydCB7IHJlc29sdmVWYXJpYW50RnJvbVByb3BzIH0gZnJvbSAnLi91dGlscy9yZXNvbHZlLXZhcmlhbnRzLm1qcyc7XG5pbXBvcnQgeyBoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIsIHByZWZlcnNSZWR1Y2VkTW90aW9uIH0gZnJvbSAnLi91dGlscy9yZWR1Y2VkLW1vdGlvbi9zdGF0ZS5tanMnO1xuaW1wb3J0IHsgZnJhbWUsIGNhbmNlbEZyYW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL2ZyYW1lLm1qcyc7XG5cbmNvbnN0IHByb3BFdmVudEhhbmRsZXJzID0gW1xuICAgIFwiQW5pbWF0aW9uU3RhcnRcIixcbiAgICBcIkFuaW1hdGlvbkNvbXBsZXRlXCIsXG4gICAgXCJVcGRhdGVcIixcbiAgICBcIkJlZm9yZUxheW91dE1lYXN1cmVcIixcbiAgICBcIkxheW91dE1lYXN1cmVcIixcbiAgICBcIkxheW91dEFuaW1hdGlvblN0YXJ0XCIsXG4gICAgXCJMYXlvdXRBbmltYXRpb25Db21wbGV0ZVwiLFxuXTtcbi8qKlxuICogU3RhdGljIGZlYXR1cmUgZGVmaW5pdGlvbnMgLSBjYW4gYmUgaW5qZWN0ZWQgYnkgZnJhbWV3b3JrIGxheWVyXG4gKi9cbmxldCBmZWF0dXJlRGVmaW5pdGlvbnMgPSB7fTtcbi8qKlxuICogU2V0IGZlYXR1cmUgZGVmaW5pdGlvbnMgZm9yIGFsbCBWaXN1YWxFbGVtZW50cy5cbiAqIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBieSB0aGUgZnJhbWV3b3JrIGxheWVyIChlLmcuLCBmcmFtZXItbW90aW9uKSBkdXJpbmcgaW5pdGlhbGl6YXRpb24uXG4gKi9cbmZ1bmN0aW9uIHNldEZlYXR1cmVEZWZpbml0aW9ucyhkZWZpbml0aW9ucykge1xuICAgIGZlYXR1cmVEZWZpbml0aW9ucyA9IGRlZmluaXRpb25zO1xufVxuLyoqXG4gKiBHZXQgdGhlIGN1cnJlbnQgZmVhdHVyZSBkZWZpbml0aW9uc1xuICovXG5mdW5jdGlvbiBnZXRGZWF0dXJlRGVmaW5pdGlvbnMoKSB7XG4gICAgcmV0dXJuIGZlYXR1cmVEZWZpbml0aW9ucztcbn1cbi8qKlxuICogQSBWaXN1YWxFbGVtZW50IGlzIGFuIGltcGVyYXRpdmUgYWJzdHJhY3Rpb24gYXJvdW5kIFVJIGVsZW1lbnRzIHN1Y2ggYXNcbiAqIEhUTUxFbGVtZW50LCBTVkdFbGVtZW50LCBUaHJlZS5PYmplY3QzRCBldGMuXG4gKi9cbmNsYXNzIFZpc3VhbEVsZW1lbnQge1xuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHRha2VzIFJlYWN0IHByb3BzIGFuZCByZXR1cm5zIGZvdW5kIE1vdGlvblZhbHVlcy4gRm9yIGV4YW1wbGUsIEhUTUxcbiAgICAgKiBNb3Rpb25WYWx1ZXMgd2lsbCBiZSBmb3VuZCB3aXRoaW4gdGhlIHN0eWxlIHByb3AsIHdoZXJlYXMgZm9yIFRocmVlLmpzIHdpdGhpbiBhdHRyaWJ1dGUgYXJyYXlzLlxuICAgICAqXG4gICAgICogVGhpcyBpc24ndCBhbiBhYnN0cmFjdCBtZXRob2QgYXMgaXQgbmVlZHMgY2FsbGluZyBpbiB0aGUgY29uc3RydWN0b3IsIGJ1dCBpdCBpc1xuICAgICAqIGludGVuZGVkIHRvIGJlIG9uZS5cbiAgICAgKi9cbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMoX3Byb3BzLCBfcHJldlByb3BzLCBfdmlzdWFsRWxlbWVudCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHsgcGFyZW50LCBwcm9wcywgcHJlc2VuY2VDb250ZXh0LCByZWR1Y2VkTW90aW9uQ29uZmlnLCBza2lwQW5pbWF0aW9ucywgYmxvY2tJbml0aWFsQW5pbWF0aW9uLCB2aXN1YWxTdGF0ZSwgfSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCB1bmRlcmx5aW5nIEluc3RhbmNlLCBlLmcuIGEgSFRNTEVsZW1lbnRcbiAgICAgICAgICogb3IgVGhyZWUuTWVzaCBldGMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBzZXQgY29udGFpbmluZyByZWZlcmVuY2VzIHRvIHRoaXMgVmlzdWFsRWxlbWVudCdzIGNoaWxkcmVuLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IG5ldyBTZXQoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERldGVybWluZSB3aGF0IHJvbGUgdGhpcyB2aXN1YWwgZWxlbWVudCBzaG91bGQgdGFrZSBpbiB0aGUgdmFyaWFudCB0cmVlLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pc1ZhcmlhbnROb2RlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEZWNpZGVzIHdoZXRoZXIgdGhpcyBWaXN1YWxFbGVtZW50IHNob3VsZCBhbmltYXRlIGluIHJlZHVjZWQgbW90aW9uXG4gICAgICAgICAqIG1vZGUuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRPRE86IFRoaXMgaXMgY3VycmVudGx5IHNldCBvbiBldmVyeSBpbmRpdmlkdWFsIFZpc3VhbEVsZW1lbnQgYnV0IGZlZWxzXG4gICAgICAgICAqIGxpa2UgaXQgY291bGQgYmUgc2V0IGdsb2JhbGx5LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zaG91bGRSZWR1Y2VNb3Rpb24gPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogRGVjaWRlcyB3aGV0aGVyIGFuaW1hdGlvbnMgc2hvdWxkIGJlIHNraXBwZWQgZm9yIHRoaXMgVmlzdWFsRWxlbWVudC5cbiAgICAgICAgICogVXNlZnVsIGZvciBFMkUgdGVzdHMgYW5kIHZpc3VhbCByZWdyZXNzaW9uIHRlc3RpbmcuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNob3VsZFNraXBBbmltYXRpb25zID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIG1hcCBvZiBhbGwgbW90aW9uIHZhbHVlcyBhdHRhY2hlZCB0byB0aGlzIHZpc3VhbCBlbGVtZW50LiBNb3Rpb25cbiAgICAgICAgICogdmFsdWVzIGFyZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGFueSBnaXZlbiBhbmltYXRlZCB2YWx1ZS4gQSBtb3Rpb25cbiAgICAgICAgICogdmFsdWUgbWlnaHQgYmUgcHJvdmlkZWQgZXh0ZXJuYWxseSBieSB0aGUgY29tcG9uZW50IHZpYSBwcm9wcy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudmFsdWVzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLktleWZyYW1lUmVzb2x2ZXIgPSBLZXlmcmFtZVJlc29sdmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQ2xlYW51cCBmdW5jdGlvbnMgZm9yIGFjdGl2ZSBmZWF0dXJlcyAoaG92ZXIvdGFwL2V4aXQgZXRjKVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5mZWF0dXJlcyA9IHt9O1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBtYXAgb2YgZXZlcnkgc3Vic2NyaXB0aW9uIHRoYXQgYmluZHMgdGhlIHByb3ZpZGVkIG9yIGdlbmVyYXRlZFxuICAgICAgICAgKiBtb3Rpb24gdmFsdWVzIG9uQ2hhbmdlIGxpc3RlbmVycyB0byB0aGlzIHZpc3VhbCBlbGVtZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgcHJldmlvdXNseS1wcm92aWRlZCBtb3Rpb24gdmFsdWVzIGFzIHJldHVybmVkXG4gICAgICAgICAqIGZyb20gc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzLiBXZSB1c2UgdGhlIGtleXMgaW4gaGVyZSB0byBkZXRlcm1pbmVcbiAgICAgICAgICogaWYgYW55IG1vdGlvbiB2YWx1ZXMgbmVlZCB0byBiZSByZW1vdmVkIGFmdGVyIHByb3BzIGFyZSB1cGRhdGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5wcmV2TW90aW9uVmFsdWVzID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFjayB3aGV0aGVyIHRoaXMgZWxlbWVudCBoYXMgYmVlbiBtb3VudGVkIGJlZm9yZSwgdG8gZGV0ZWN0XG4gICAgICAgICAqIHJlbW91bnRzIGFmdGVyIFN1c3BlbnNlIHVubW91bnQvcmVtb3VudCBjeWNsZXMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmhhc0JlZW5Nb3VudGVkID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbiBvYmplY3QgY29udGFpbmluZyBhIFN1YnNjcmlwdGlvbk1hbmFnZXIgZm9yIGVhY2ggYWN0aXZlIGV2ZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5ldmVudHMgPSB7fTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFuIG9iamVjdCBjb250YWluaW5nIGFuIHVuc3Vic2NyaWJlIGZ1bmN0aW9uIGZvciBlYWNoIHByb3AgZXZlbnQgc3Vic2NyaXB0aW9uLlxuICAgICAgICAgKiBGb3IgZXhhbXBsZSwgZXZlcnkgXCJVcGRhdGVcIiBldmVudCBjYW4gaGF2ZSBtdWx0aXBsZSBzdWJzY3JpYmVycyB2aWFcbiAgICAgICAgICogVmlzdWFsRWxlbWVudC5vbigpLCBidXQgb25seSBvbmUgb2YgdGhvc2UgY2FuIGJlIGRlZmluZWQgdmlhIHRoZSBvblVwZGF0ZSBwcm9wLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5wcm9wRXZlbnRTdWJzY3JpcHRpb25zID0ge307XG4gICAgICAgIHRoaXMubm90aWZ5VXBkYXRlID0gKCkgPT4gdGhpcy5ub3RpZnkoXCJVcGRhdGVcIiwgdGhpcy5sYXRlc3RWYWx1ZXMpO1xuICAgICAgICB0aGlzLnJlbmRlciA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlckJ1aWxkKCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckluc3RhbmNlKHRoaXMuY3VycmVudCwgdGhpcy5yZW5kZXJTdGF0ZSwgdGhpcy5wcm9wcy5zdHlsZSwgdGhpcy5wcm9qZWN0aW9uKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5yZW5kZXJTY2hlZHVsZWRBdCA9IDAuMDtcbiAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlciA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vdyA9IHRpbWUubm93KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5yZW5kZXJTY2hlZHVsZWRBdCA8IG5vdykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyU2NoZWR1bGVkQXQgPSBub3c7XG4gICAgICAgICAgICAgICAgZnJhbWUucmVuZGVyKHRoaXMucmVuZGVyLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgbGF0ZXN0VmFsdWVzLCByZW5kZXJTdGF0ZSB9ID0gdmlzdWFsU3RhdGU7XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzID0gbGF0ZXN0VmFsdWVzO1xuICAgICAgICB0aGlzLmJhc2VUYXJnZXQgPSB7IC4uLmxhdGVzdFZhbHVlcyB9O1xuICAgICAgICB0aGlzLmluaXRpYWxWYWx1ZXMgPSBwcm9wcy5pbml0aWFsID8geyAuLi5sYXRlc3RWYWx1ZXMgfSA6IHt9O1xuICAgICAgICB0aGlzLnJlbmRlclN0YXRlID0gcmVuZGVyU3RhdGU7XG4gICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgICAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgICAgIHRoaXMucHJlc2VuY2VDb250ZXh0ID0gcHJlc2VuY2VDb250ZXh0O1xuICAgICAgICB0aGlzLmRlcHRoID0gcGFyZW50ID8gcGFyZW50LmRlcHRoICsgMSA6IDA7XG4gICAgICAgIHRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZyA9IHJlZHVjZWRNb3Rpb25Db25maWc7XG4gICAgICAgIHRoaXMuc2tpcEFuaW1hdGlvbnNDb25maWcgPSBza2lwQW5pbWF0aW9ucztcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5ibG9ja0luaXRpYWxBbmltYXRpb24gPSBCb29sZWFuKGJsb2NrSW5pdGlhbEFuaW1hdGlvbik7XG4gICAgICAgIHRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzID0gaXNDb250cm9sbGluZ1ZhcmlhbnRzKHByb3BzKTtcbiAgICAgICAgdGhpcy5pc1ZhcmlhbnROb2RlID0gaXNWYXJpYW50Tm9kZShwcm9wcyk7XG4gICAgICAgIGlmICh0aGlzLmlzVmFyaWFudE5vZGUpIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFudENoaWxkcmVuID0gbmV3IFNldCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWFudWFsbHlBbmltYXRlT25Nb3VudCA9IEJvb2xlYW4ocGFyZW50ICYmIHBhcmVudC5jdXJyZW50KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFueSBtb3Rpb24gdmFsdWVzIHRoYXQgYXJlIHByb3ZpZGVkIHRvIHRoZSBlbGVtZW50IHdoZW4gY3JlYXRlZFxuICAgICAgICAgKiBhcmVuJ3QgeWV0IGJvdW5kIHRvIHRoZSBlbGVtZW50LCBhcyB0aGlzIHdvdWxkIHRlY2huaWNhbGx5IGJlIGltcHVyZS5cbiAgICAgICAgICogSG93ZXZlciwgd2UgaXRlcmF0ZSB0aHJvdWdoIHRoZSBtb3Rpb24gdmFsdWVzIGFuZCBzZXQgdGhlbSB0byB0aGVcbiAgICAgICAgICogaW5pdGlhbCB2YWx1ZXMgZm9yIHRoaXMgY29tcG9uZW50LlxuICAgICAgICAgKlxuICAgICAgICAgKiBUT0RPOiBUaGlzIGlzIGltcHVyZSBhbmQgd2Ugc2hvdWxkIGxvb2sgYXQgY2hhbmdpbmcgdGhpcyB0byBydW4gb24gbW91bnQuXG4gICAgICAgICAqIERvaW5nIHNvIHdpbGwgYnJlYWsgc29tZSB0ZXN0cyBidXQgdGhpcyBpc24ndCBuZWNlc3NhcmlseSBhIGJyZWFraW5nIGNoYW5nZSxcbiAgICAgICAgICogbW9yZSBhIHJlZmxlY3Rpb24gb2YgdGhlIHRlc3QuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCB7IHdpbGxDaGFuZ2UsIC4uLmluaXRpYWxNb3Rpb25WYWx1ZXMgfSA9IHRoaXMuc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLCB7fSwgdGhpcyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXRpYWxNb3Rpb25WYWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5pdGlhbE1vdGlvblZhbHVlc1trZXldO1xuICAgICAgICAgICAgaWYgKGxhdGVzdFZhbHVlc1trZXldICE9PSB1bmRlZmluZWQgJiYgaXNNb3Rpb25WYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5zZXQobGF0ZXN0VmFsdWVzW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG1vdW50KGluc3RhbmNlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGlzIGVsZW1lbnQgaGFzIGJlZW4gbW91bnRlZCBiZWZvcmUgKGUuZy4gYWZ0ZXIgYSBTdXNwZW5zZVxuICAgICAgICAgKiB1bm1vdW50L3JlbW91bnQpLCByZXNldCBtb3Rpb24gdmFsdWVzIHRvIHRoZWlyIGluaXRpYWwgc3RhdGVcbiAgICAgICAgICogc28gYW5pbWF0aW9ucyByZXBsYXkgY29ycmVjdGx5IGZyb20gaW5pdGlhbCDihpIgYW5pbWF0ZS5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLmhhc0JlZW5Nb3VudGVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmluaXRpYWxWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5nZXQoa2V5KT8uanVtcCh0aGlzLmluaXRpYWxWYWx1ZXNba2V5XSk7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZXNba2V5XSA9IHRoaXMuaW5pdGlhbFZhbHVlc1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudCA9IGluc3RhbmNlO1xuICAgICAgICB2aXN1YWxFbGVtZW50U3RvcmUuc2V0KGluc3RhbmNlLCB0aGlzKTtcbiAgICAgICAgaWYgKHRoaXMucHJvamVjdGlvbiAmJiAhdGhpcy5wcm9qZWN0aW9uLmluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb24ubW91bnQoaW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBhcmVudCAmJiB0aGlzLmlzVmFyaWFudE5vZGUgJiYgIXRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUZyb21WYXJpYW50VHJlZSA9IHRoaXMucGFyZW50LmFkZFZhcmlhbnRDaGlsZCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB0aGlzLmJpbmRUb01vdGlvblZhbHVlKGtleSwgdmFsdWUpKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERldGVybWluZSByZWR1Y2VkIG1vdGlvbiBwcmVmZXJlbmNlLiBPbmx5IGluaXRpYWxpemUgdGhlIG1hdGNoTWVkaWFcbiAgICAgICAgICogbGlzdGVuZXIgaWYgd2UgYWN0dWFsbHkgbmVlZCB0aGUgZHluYW1pYyB2YWx1ZSAoaS5lLiwgd2hlbiBjb25maWdcbiAgICAgICAgICogaXMgbmVpdGhlciBcIm5ldmVyXCIgbm9yIFwiYWx3YXlzXCIpLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZyA9PT0gXCJuZXZlclwiKSB7XG4gICAgICAgICAgICB0aGlzLnNob3VsZFJlZHVjZU1vdGlvbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZyA9PT0gXCJhbHdheXNcIikge1xuICAgICAgICAgICAgdGhpcy5zaG91bGRSZWR1Y2VNb3Rpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGluaXRQcmVmZXJzUmVkdWNlZE1vdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zaG91bGRSZWR1Y2VNb3Rpb24gPSBwcmVmZXJzUmVkdWNlZE1vdGlvbi5jdXJyZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgICAgIHdhcm5PbmNlKHRoaXMuc2hvdWxkUmVkdWNlTW90aW9uICE9PSB0cnVlLCBcIllvdSBoYXZlIFJlZHVjZWQgTW90aW9uIGVuYWJsZWQgb24geW91ciBkZXZpY2UuIEFuaW1hdGlvbnMgbWF5IG5vdCBhcHBlYXIgYXMgZXhwZWN0ZWQuXCIsIFwicmVkdWNlZC1tb3Rpb24tZGlzYWJsZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCB3aGV0aGVyIGFuaW1hdGlvbnMgc2hvdWxkIGJlIHNraXBwZWQgYmFzZWQgb24gdGhlIGNvbmZpZy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2hvdWxkU2tpcEFuaW1hdGlvbnMgPSB0aGlzLnNraXBBbmltYXRpb25zQ29uZmlnID8/IGZhbHNlO1xuICAgICAgICB0aGlzLnBhcmVudD8uYWRkQ2hpbGQodGhpcyk7XG4gICAgICAgIHRoaXMudXBkYXRlKHRoaXMucHJvcHMsIHRoaXMucHJlc2VuY2VDb250ZXh0KTtcbiAgICAgICAgdGhpcy5oYXNCZWVuTW91bnRlZCA9IHRydWU7XG4gICAgfVxuICAgIHVubW91bnQoKSB7XG4gICAgICAgIHRoaXMucHJvamVjdGlvbiAmJiB0aGlzLnByb2plY3Rpb24udW5tb3VudCgpO1xuICAgICAgICBjYW5jZWxGcmFtZSh0aGlzLm5vdGlmeVVwZGF0ZSk7XG4gICAgICAgIGNhbmNlbEZyYW1lKHRoaXMucmVuZGVyKTtcbiAgICAgICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocmVtb3ZlKSA9PiByZW1vdmUoKSk7XG4gICAgICAgIHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmNsZWFyKCk7XG4gICAgICAgIHRoaXMucmVtb3ZlRnJvbVZhcmlhbnRUcmVlICYmIHRoaXMucmVtb3ZlRnJvbVZhcmlhbnRUcmVlKCk7XG4gICAgICAgIHRoaXMucGFyZW50Py5yZW1vdmVDaGlsZCh0aGlzKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5ldmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzW2tleV0uY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmZlYXR1cmVzKSB7XG4gICAgICAgICAgICBjb25zdCBmZWF0dXJlID0gdGhpcy5mZWF0dXJlc1trZXldO1xuICAgICAgICAgICAgaWYgKGZlYXR1cmUpIHtcbiAgICAgICAgICAgICAgICBmZWF0dXJlLnVubW91bnQoKTtcbiAgICAgICAgICAgICAgICBmZWF0dXJlLmlzTW91bnRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICAgIGFkZENoaWxkKGNoaWxkKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4uYWRkKGNoaWxkKTtcbiAgICAgICAgdGhpcy5lbnRlcmluZ0NoaWxkcmVuID8/ICh0aGlzLmVudGVyaW5nQ2hpbGRyZW4gPSBuZXcgU2V0KCkpO1xuICAgICAgICB0aGlzLmVudGVyaW5nQ2hpbGRyZW4uYWRkKGNoaWxkKTtcbiAgICB9XG4gICAgcmVtb3ZlQ2hpbGQoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5kZWxldGUoY2hpbGQpO1xuICAgICAgICB0aGlzLmVudGVyaW5nQ2hpbGRyZW4gJiYgdGhpcy5lbnRlcmluZ0NoaWxkcmVuLmRlbGV0ZShjaGlsZCk7XG4gICAgfVxuICAgIGJpbmRUb01vdGlvblZhbHVlKGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5nZXQoa2V5KSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZS5hY2NlbGVyYXRlICYmXG4gICAgICAgICAgICBhY2NlbGVyYXRlZFZhbHVlcy5oYXMoa2V5KSAmJlxuICAgICAgICAgICAgdGhpcy5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZmFjdG9yeSwga2V5ZnJhbWVzLCB0aW1lcywgZWFzZSwgZHVyYXRpb24gfSA9IHZhbHVlLmFjY2VsZXJhdGU7XG4gICAgICAgICAgICBjb25zdCBhbmltYXRpb24gPSBuZXcgTmF0aXZlQW5pbWF0aW9uKHtcbiAgICAgICAgICAgICAgICBlbGVtZW50OiB0aGlzLmN1cnJlbnQsXG4gICAgICAgICAgICAgICAgbmFtZToga2V5LFxuICAgICAgICAgICAgICAgIGtleWZyYW1lcyxcbiAgICAgICAgICAgICAgICB0aW1lcyxcbiAgICAgICAgICAgICAgICBlYXNlLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBzZWNvbmRzVG9NaWxsaXNlY29uZHMoZHVyYXRpb24pLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBjbGVhbnVwID0gZmFjdG9yeShhbmltYXRpb24pO1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuc2V0KGtleSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24uY2FuY2VsKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZUlzVHJhbnNmb3JtID0gdHJhbnNmb3JtUHJvcHMuaGFzKGtleSk7XG4gICAgICAgIGlmICh2YWx1ZUlzVHJhbnNmb3JtICYmIHRoaXMub25CaW5kVHJhbnNmb3JtKSB7XG4gICAgICAgICAgICB0aGlzLm9uQmluZFRyYW5zZm9ybSgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlbW92ZU9uQ2hhbmdlID0gdmFsdWUub24oXCJjaGFuZ2VcIiwgKGxhdGVzdFZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxhdGVzdFZhbHVlc1trZXldID0gbGF0ZXN0VmFsdWU7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uVXBkYXRlICYmIGZyYW1lLnByZVJlbmRlcih0aGlzLm5vdGlmeVVwZGF0ZSk7XG4gICAgICAgICAgICBpZiAodmFsdWVJc1RyYW5zZm9ybSAmJiB0aGlzLnByb2plY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2plY3Rpb24uaXNUcmFuc2Zvcm1EaXJ0eSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlUmVuZGVyKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgcmVtb3ZlU3luY0NoZWNrO1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgICAgICAgICAgd2luZG93Lk1vdGlvbkNoZWNrQXBwZWFyU3luYykge1xuICAgICAgICAgICAgcmVtb3ZlU3luY0NoZWNrID0gd2luZG93Lk1vdGlvbkNoZWNrQXBwZWFyU3luYyh0aGlzLCBrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5zZXQoa2V5LCAoKSA9PiB7XG4gICAgICAgICAgICByZW1vdmVPbkNoYW5nZSgpO1xuICAgICAgICAgICAgaWYgKHJlbW92ZVN5bmNDaGVjaylcbiAgICAgICAgICAgICAgICByZW1vdmVTeW5jQ2hlY2soKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5vd25lcilcbiAgICAgICAgICAgICAgICB2YWx1ZS5zdG9wKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzb3J0Tm9kZVBvc2l0aW9uKG90aGVyKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGVzZSBub2RlcyBhcmVuJ3QgZXZlbiBvZiB0aGUgc2FtZSB0eXBlIHdlIGNhbid0IGNvbXBhcmUgdGhlaXIgZGVwdGguXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudCB8fFxuICAgICAgICAgICAgIXRoaXMuc29ydEluc3RhbmNlTm9kZVBvc2l0aW9uIHx8XG4gICAgICAgICAgICB0aGlzLnR5cGUgIT09IG90aGVyLnR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRJbnN0YW5jZU5vZGVQb3NpdGlvbih0aGlzLmN1cnJlbnQsIG90aGVyLmN1cnJlbnQpO1xuICAgIH1cbiAgICB1cGRhdGVGZWF0dXJlcygpIHtcbiAgICAgICAgbGV0IGtleSA9IFwiYW5pbWF0aW9uXCI7XG4gICAgICAgIGZvciAoa2V5IGluIGZlYXR1cmVEZWZpbml0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgZmVhdHVyZURlZmluaXRpb24gPSBmZWF0dXJlRGVmaW5pdGlvbnNba2V5XTtcbiAgICAgICAgICAgIGlmICghZmVhdHVyZURlZmluaXRpb24pXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBjb25zdCB7IGlzRW5hYmxlZCwgRmVhdHVyZTogRmVhdHVyZUNvbnN0cnVjdG9yIH0gPSBmZWF0dXJlRGVmaW5pdGlvbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQgYnV0IG5vdCBhY3RpdmUsIG1ha2UgYSBuZXcgaW5zdGFuY2UuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICghdGhpcy5mZWF0dXJlc1trZXldICYmXG4gICAgICAgICAgICAgICAgRmVhdHVyZUNvbnN0cnVjdG9yICYmXG4gICAgICAgICAgICAgICAgaXNFbmFibGVkKHRoaXMucHJvcHMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZWF0dXJlc1trZXldID0gbmV3IEZlYXR1cmVDb25zdHJ1Y3Rvcih0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBhIGZlYXR1cmUsIG1vdW50IG9yIHVwZGF0ZSBpdC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuZmVhdHVyZXNba2V5XSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZlYXR1cmUgPSB0aGlzLmZlYXR1cmVzW2tleV07XG4gICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUuaXNNb3VudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZlYXR1cmUudXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmZWF0dXJlLm1vdW50KCk7XG4gICAgICAgICAgICAgICAgICAgIGZlYXR1cmUuaXNNb3VudGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHJpZ2dlckJ1aWxkKCkge1xuICAgICAgICB0aGlzLmJ1aWxkKHRoaXMucmVuZGVyU3RhdGUsIHRoaXMubGF0ZXN0VmFsdWVzLCB0aGlzLnByb3BzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWVhc3VyZSB0aGUgY3VycmVudCB2aWV3cG9ydCBib3ggd2l0aCBvciB3aXRob3V0IHRyYW5zZm9ybXMuXG4gICAgICogT25seSBtZWFzdXJlcyBheGlzLWFsaWduZWQgYm94ZXMsIHJvdGF0ZSBhbmQgc2tldyBtdXN0IGJlIG1hbnVhbGx5XG4gICAgICogcmVtb3ZlZCB3aXRoIGEgcmUtcmVuZGVyIHRvIHdvcmsuXG4gICAgICovXG4gICAgbWVhc3VyZVZpZXdwb3J0Qm94KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50XG4gICAgICAgICAgICA/IHRoaXMubWVhc3VyZUluc3RhbmNlVmlld3BvcnRCb3godGhpcy5jdXJyZW50LCB0aGlzLnByb3BzKVxuICAgICAgICAgICAgOiBjcmVhdGVCb3goKTtcbiAgICB9XG4gICAgZ2V0U3RhdGljVmFsdWUoa2V5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhdGVzdFZhbHVlc1trZXldO1xuICAgIH1cbiAgICBzZXRTdGF0aWNWYWx1ZShrZXksIHZhbHVlKSB7XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzW2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBwcm92aWRlZCBwcm9wcy4gRW5zdXJlIGFueSBuZXdseS1hZGRlZCBtb3Rpb24gdmFsdWVzIGFyZVxuICAgICAqIGFkZGVkIHRvIG91ciBtYXAsIG9sZCBvbmVzIHJlbW92ZWQsIGFuZCBsaXN0ZW5lcnMgdXBkYXRlZC5cbiAgICAgKi9cbiAgICB1cGRhdGUocHJvcHMsIHByZXNlbmNlQ29udGV4dCkge1xuICAgICAgICBpZiAocHJvcHMudHJhbnNmb3JtVGVtcGxhdGUgfHwgdGhpcy5wcm9wcy50cmFuc2Zvcm1UZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJldlByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgICAgICB0aGlzLnByZXZQcmVzZW5jZUNvbnRleHQgPSB0aGlzLnByZXNlbmNlQ29udGV4dDtcbiAgICAgICAgdGhpcy5wcmVzZW5jZUNvbnRleHQgPSBwcmVzZW5jZUNvbnRleHQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVcGRhdGUgcHJvcCBldmVudCBoYW5kbGVycyBpZSBvbkFuaW1hdGlvblN0YXJ0LCBvbkFuaW1hdGlvbkNvbXBsZXRlXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BFdmVudEhhbmRsZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBwcm9wRXZlbnRIYW5kbGVyc1tpXTtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNba2V5XSkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9uc1trZXldKCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9uc1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXJOYW1lID0gKFwib25cIiArIGtleSk7XG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lciA9IHByb3BzW2xpc3RlbmVyTmFtZV07XG4gICAgICAgICAgICBpZiAobGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNba2V5XSA9IHRoaXMub24oa2V5LCBsaXN0ZW5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmV2TW90aW9uVmFsdWVzID0gdXBkYXRlTW90aW9uVmFsdWVzRnJvbVByb3BzKHRoaXMsIHRoaXMuc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLCB0aGlzLnByZXZQcm9wcyB8fCB7fSwgdGhpcyksIHRoaXMucHJldk1vdGlvblZhbHVlcyk7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZUNoaWxkTW90aW9uVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hpbGRNb3Rpb25WYWx1ZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldFByb3BzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdmFyaWFudCBkZWZpbml0aW9uIHdpdGggYSBnaXZlbiBuYW1lLlxuICAgICAqL1xuICAgIGdldFZhcmlhbnQobmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy52YXJpYW50cyA/IHRoaXMucHJvcHMudmFyaWFudHNbbmFtZV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGRlZmluZWQgZGVmYXVsdCB0cmFuc2l0aW9uIG9uIHRoaXMgY29tcG9uZW50LlxuICAgICAqL1xuICAgIGdldERlZmF1bHRUcmFuc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy50cmFuc2l0aW9uO1xuICAgIH1cbiAgICBnZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLnRyYW5zZm9ybVBhZ2VQb2ludDtcbiAgICB9XG4gICAgZ2V0Q2xvc2VzdFZhcmlhbnROb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhcmlhbnROb2RlXG4gICAgICAgICAgICA/IHRoaXNcbiAgICAgICAgICAgIDogdGhpcy5wYXJlbnRcbiAgICAgICAgICAgICAgICA/IHRoaXMucGFyZW50LmdldENsb3Nlc3RWYXJpYW50Tm9kZSgpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZCBhIGNoaWxkIHZpc3VhbCBlbGVtZW50IHRvIG91ciBzZXQgb2YgY2hpbGRyZW4uXG4gICAgICovXG4gICAgYWRkVmFyaWFudENoaWxkKGNoaWxkKSB7XG4gICAgICAgIGNvbnN0IGNsb3Nlc3RWYXJpYW50Tm9kZSA9IHRoaXMuZ2V0Q2xvc2VzdFZhcmlhbnROb2RlKCk7XG4gICAgICAgIGlmIChjbG9zZXN0VmFyaWFudE5vZGUpIHtcbiAgICAgICAgICAgIGNsb3Nlc3RWYXJpYW50Tm9kZS52YXJpYW50Q2hpbGRyZW4gJiZcbiAgICAgICAgICAgICAgICBjbG9zZXN0VmFyaWFudE5vZGUudmFyaWFudENoaWxkcmVuLmFkZChjaGlsZCk7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gY2xvc2VzdFZhcmlhbnROb2RlLnZhcmlhbnRDaGlsZHJlbi5kZWxldGUoY2hpbGQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZCBhIG1vdGlvbiB2YWx1ZSBhbmQgYmluZCBpdCB0byB0aGlzIHZpc3VhbCBlbGVtZW50LlxuICAgICAqL1xuICAgIGFkZFZhbHVlKGtleSwgdmFsdWUpIHtcbiAgICAgICAgLy8gUmVtb3ZlIGV4aXN0aW5nIHZhbHVlIGlmIGl0IGV4aXN0c1xuICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gdGhpcy52YWx1ZXMuZ2V0KGtleSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gZXhpc3RpbmdWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nVmFsdWUpXG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVWYWx1ZShrZXkpO1xuICAgICAgICAgICAgdGhpcy5iaW5kVG9Nb3Rpb25WYWx1ZShrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVzLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzW2tleV0gPSB2YWx1ZS5nZXQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYSBtb3Rpb24gdmFsdWUgYW5kIHVuYmluZCBhbnkgYWN0aXZlIHN1YnNjcmlwdGlvbnMuXG4gICAgICovXG4gICAgcmVtb3ZlVmFsdWUoa2V5KSB7XG4gICAgICAgIHRoaXMudmFsdWVzLmRlbGV0ZShrZXkpO1xuICAgICAgICBjb25zdCB1bnN1YnNjcmliZSA9IHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmdldChrZXkpO1xuICAgICAgICBpZiAodW5zdWJzY3JpYmUpIHtcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5kZWxldGUoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgdGhpcy5sYXRlc3RWYWx1ZXNba2V5XTtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWx1ZUZyb21SZW5kZXJTdGF0ZShrZXksIHRoaXMucmVuZGVyU3RhdGUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVjayB3aGV0aGVyIHdlIGhhdmUgYSBtb3Rpb24gdmFsdWUgZm9yIHRoaXMga2V5XG4gICAgICovXG4gICAgaGFzVmFsdWUoa2V5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5oYXMoa2V5KTtcbiAgICB9XG4gICAgZ2V0VmFsdWUoa2V5LCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMudmFsdWVzICYmIHRoaXMucHJvcHMudmFsdWVzW2tleV0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb3BzLnZhbHVlc1trZXldO1xuICAgICAgICB9XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMudmFsdWVzLmdldChrZXkpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBkZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdmFsdWUgPSBtb3Rpb25WYWx1ZShkZWZhdWx0VmFsdWUgPT09IG51bGwgPyB1bmRlZmluZWQgOiBkZWZhdWx0VmFsdWUsIHsgb3duZXI6IHRoaXMgfSk7XG4gICAgICAgICAgICB0aGlzLmFkZFZhbHVlKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSWYgd2UncmUgdHJ5aW5nIHRvIGFuaW1hdGUgdG8gYSBwcmV2aW91c2x5IHVuZW5jb3VudGVyZWQgdmFsdWUsXG4gICAgICogd2UgbmVlZCB0byBjaGVjayBmb3IgaXQgaW4gb3VyIHN0YXRlIGFuZCBhcyBhIGxhc3QgcmVzb3J0IHJlYWQgaXRcbiAgICAgKiBkaXJlY3RseSBmcm9tIHRoZSBpbnN0YW5jZSAod2hpY2ggbWlnaHQgaGF2ZSBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMpLlxuICAgICAqL1xuICAgIHJlYWRWYWx1ZShrZXksIHRhcmdldCkge1xuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmxhdGVzdFZhbHVlc1trZXldICE9PSB1bmRlZmluZWQgfHwgIXRoaXMuY3VycmVudFxuICAgICAgICAgICAgPyB0aGlzLmxhdGVzdFZhbHVlc1trZXldXG4gICAgICAgICAgICA6IHRoaXMuZ2V0QmFzZVRhcmdldEZyb21Qcm9wcyh0aGlzLnByb3BzLCBrZXkpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5yZWFkVmFsdWVGcm9tSW5zdGFuY2UodGhpcy5jdXJyZW50LCBrZXksIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgKGlzTnVtZXJpY2FsU3RyaW5nKHZhbHVlKSB8fCBpc1plcm9WYWx1ZVN0cmluZyh2YWx1ZSkpKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIG51bWJlciByZWFkIGFzIGEgc3RyaW5nLCBpZSBcIjBcIiBvciBcIjIwMFwiLCBjb252ZXJ0IGl0IHRvIGEgbnVtYmVyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCFmaW5kVmFsdWVUeXBlKHZhbHVlKSAmJiBjb21wbGV4LnRlc3QodGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0QW5pbWF0YWJsZU5vbmUoa2V5LCB0YXJnZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXRCYXNlVGFyZ2V0KGtleSwgaXNNb3Rpb25WYWx1ZSh2YWx1ZSkgPyB2YWx1ZS5nZXQoKSA6IHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNNb3Rpb25WYWx1ZSh2YWx1ZSkgPyB2YWx1ZS5nZXQoKSA6IHZhbHVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGJhc2UgdGFyZ2V0IHRvIGxhdGVyIGFuaW1hdGUgYmFjayB0by4gVGhpcyBpcyBjdXJyZW50bHlcbiAgICAgKiBvbmx5IGh5ZHJhdGVkIG9uIGNyZWF0aW9uIGFuZCB3aGVuIHdlIGZpcnN0IHJlYWQgYSB2YWx1ZS5cbiAgICAgKi9cbiAgICBzZXRCYXNlVGFyZ2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5iYXNlVGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmluZCB0aGUgYmFzZSB0YXJnZXQgZm9yIGEgdmFsdWUgdGhhdHMgYmVlbiByZW1vdmVkIGZyb20gYWxsIGFuaW1hdGlvblxuICAgICAqIHByb3BzLlxuICAgICAqL1xuICAgIGdldEJhc2VUYXJnZXQoa2V5KSB7XG4gICAgICAgIGNvbnN0IHsgaW5pdGlhbCB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgbGV0IHZhbHVlRnJvbUluaXRpYWw7XG4gICAgICAgIGlmICh0eXBlb2YgaW5pdGlhbCA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgaW5pdGlhbCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgY29uc3QgdmFyaWFudCA9IHJlc29sdmVWYXJpYW50RnJvbVByb3BzKHRoaXMucHJvcHMsIGluaXRpYWwsIHRoaXMucHJlc2VuY2VDb250ZXh0Py5jdXN0b20pO1xuICAgICAgICAgICAgaWYgKHZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZUZyb21Jbml0aWFsID0gdmFyaWFudFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGlzIHZhbHVlIHN0aWxsIGV4aXN0cyBpbiB0aGUgY3VycmVudCBpbml0aWFsIHZhcmlhbnQsIHJlYWQgdGhhdC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChpbml0aWFsICYmIHZhbHVlRnJvbUluaXRpYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlRnJvbUluaXRpYWw7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFsdGVybmF0aXZlbHksIGlmIHRoaXMgVmlzdWFsRWxlbWVudCBjb25maWcgaGFzIGRlZmluZWQgYSBnZXRCYXNlVGFyZ2V0XG4gICAgICAgICAqIHNvIHdlIGNhbiByZWFkIHRoZSB2YWx1ZSBmcm9tIGFuIGFsdGVybmF0aXZlIHNvdXJjZSwgdHJ5IHRoYXQuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmdldEJhc2VUYXJnZXRGcm9tUHJvcHModGhpcy5wcm9wcywga2V5KTtcbiAgICAgICAgaWYgKHRhcmdldCAhPT0gdW5kZWZpbmVkICYmICFpc01vdGlvblZhbHVlKHRhcmdldCkpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhlIHZhbHVlIHdhcyBpbml0aWFsbHkgZGVmaW5lZCBvbiBpbml0aWFsLCBidXQgaXQgZG9lc24ndCBhbnkgbW9yZSxcbiAgICAgICAgICogcmV0dXJuIHVuZGVmaW5lZC4gT3RoZXJ3aXNlIHJldHVybiB0aGUgdmFsdWUgYXMgaW5pdGlhbGx5IHJlYWQgZnJvbSB0aGUgRE9NLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdGlhbFZhbHVlc1trZXldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHZhbHVlRnJvbUluaXRpYWwgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogdGhpcy5iYXNlVGFyZ2V0W2tleV07XG4gICAgfVxuICAgIG9uKGV2ZW50TmFtZSwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCF0aGlzLmV2ZW50c1tldmVudE5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50c1tldmVudE5hbWVdID0gbmV3IFN1YnNjcmlwdGlvbk1hbmFnZXIoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ldmVudHNbZXZlbnROYW1lXS5hZGQoY2FsbGJhY2spO1xuICAgIH1cbiAgICBub3RpZnkoZXZlbnROYW1lLCAuLi5hcmdzKSB7XG4gICAgICAgIGlmICh0aGlzLmV2ZW50c1tldmVudE5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50c1tldmVudE5hbWVdLm5vdGlmeSguLi5hcmdzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzY2hlZHVsZVJlbmRlck1pY3JvdGFzaygpIHtcbiAgICAgICAgbWljcm90YXNrLnJlbmRlcih0aGlzLnJlbmRlcik7XG4gICAgfVxufVxuXG5leHBvcnQgeyBWaXN1YWxFbGVtZW50LCBnZXRGZWF0dXJlRGVmaW5pdGlvbnMsIHNldEZlYXR1cmVEZWZpbml0aW9ucyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VmlzdWFsRWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DOMVisualElement: () => (/* binding */ DOMVisualElement)\n/* harmony export */ });\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _animation_keyframes_DOMKeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/keyframes/DOMKeyframesResolver.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs\");\n/* harmony import */ var _VisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VisualElement.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\");\n\n\n\n\nclass DOMVisualElement extends _VisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.VisualElement {\n constructor() {\n super(...arguments);\n this.KeyframeResolver = _animation_keyframes_DOMKeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_1__.DOMKeyframesResolver;\n }\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n const style = props.style;\n return style ? style[key] : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__.isMotionValue)(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current) {\n this.current.textContent = `${latest}`;\n }\n });\n }\n }\n}\n\n\n//# sourceMappingURL=DOMVisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9ET01WaXN1YWxFbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXNFO0FBQ29CO0FBQ3JDOztBQUVyRCwrQkFBK0IsNkRBQWE7QUFDNUM7QUFDQTtBQUNBLGdDQUFnQywrRkFBb0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsYUFBYTtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFdBQVc7QUFDM0IsWUFBWSwrRUFBYTtBQUN6QjtBQUNBO0FBQ0Esa0RBQWtELE9BQU87QUFDekQ7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9ET01WaXN1YWxFbGVtZW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc01vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyc7XG5pbXBvcnQgeyBET01LZXlmcmFtZXNSZXNvbHZlciB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi9rZXlmcmFtZXMvRE9NS2V5ZnJhbWVzUmVzb2x2ZXIubWpzJztcbmltcG9ydCB7IFZpc3VhbEVsZW1lbnQgfSBmcm9tICcuLi9WaXN1YWxFbGVtZW50Lm1qcyc7XG5cbmNsYXNzIERPTVZpc3VhbEVsZW1lbnQgZXh0ZW5kcyBWaXN1YWxFbGVtZW50IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5LZXlmcmFtZVJlc29sdmVyID0gRE9NS2V5ZnJhbWVzUmVzb2x2ZXI7XG4gICAgfVxuICAgIHNvcnRJbnN0YW5jZU5vZGVQb3NpdGlvbihhLCBiKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiByZXR1cm5zIGEgYml0bWFzaywgYnkgdXNpbmcgdGhlIGJpdHdpc2UgJlxuICAgICAgICAgKiB3ZSdyZSByZXR1cm5pbmcgdHJ1ZSBpZiAyIGluIHRoYXQgYml0bWFzayBpcyBzZXQgdG8gdHJ1ZS4gMiBpcyBzZXRcbiAgICAgICAgICogdG8gdHJ1ZSBpZiBiIHByZWNlZWRzIGEuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIDIgPyAxIDogLTE7XG4gICAgfVxuICAgIGdldEJhc2VUYXJnZXRGcm9tUHJvcHMocHJvcHMsIGtleSkge1xuICAgICAgICBjb25zdCBzdHlsZSA9IHByb3BzLnN0eWxlO1xuICAgICAgICByZXR1cm4gc3R5bGUgPyBzdHlsZVtrZXldIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZW1vdmVWYWx1ZUZyb21SZW5kZXJTdGF0ZShrZXksIHsgdmFycywgc3R5bGUgfSkge1xuICAgICAgICBkZWxldGUgdmFyc1trZXldO1xuICAgICAgICBkZWxldGUgc3R5bGVba2V5XTtcbiAgICB9XG4gICAgaGFuZGxlQ2hpbGRNb3Rpb25WYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmNoaWxkU3Vic2NyaXB0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGlmIChpc01vdGlvblZhbHVlKGNoaWxkcmVuKSkge1xuICAgICAgICAgICAgdGhpcy5jaGlsZFN1YnNjcmlwdGlvbiA9IGNoaWxkcmVuLm9uKFwiY2hhbmdlXCIsIChsYXRlc3QpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudC50ZXh0Q29udGVudCA9IGAke2xhdGVzdH1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgeyBET01WaXN1YWxFbGVtZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ET01WaXN1YWxFbGVtZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isCSSVar: () => (/* binding */ isCSSVar)\n/* harmony export */ });\nconst isCSSVar = (name) => name.startsWith(\"--\");\n\n\n//# sourceMappingURL=is-css-var.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9pcy1jc3MtdmFyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvZG9tL2lzLWNzcy12YXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzQ1NTVmFyID0gKG5hbWUpID0+IG5hbWUuc3RhcnRzV2l0aChcIi0tXCIpO1xuXG5leHBvcnQgeyBpc0NTU1ZhciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtY3NzLXZhci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultTransformValue: () => (/* binding */ defaultTransformValue),\n/* harmony export */ parseValueFromTransform: () => (/* binding */ parseValueFromTransform),\n/* harmony export */ readTransformValue: () => (/* binding */ readTransformValue)\n/* harmony export */ });\nconst radToDeg = (rad) => (rad * 180) / Math.PI;\nconst rotate = (v) => {\n const angle = radToDeg(Math.atan2(v[1], v[0]));\n return rebaseAngle(angle);\n};\nconst matrix2dParsers = {\n x: 4,\n y: 5,\n translateX: 4,\n translateY: 5,\n scaleX: 0,\n scaleY: 3,\n scale: (v) => (Math.abs(v[0]) + Math.abs(v[3])) / 2,\n rotate,\n rotateZ: rotate,\n skewX: (v) => radToDeg(Math.atan(v[1])),\n skewY: (v) => radToDeg(Math.atan(v[2])),\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[2])) / 2,\n};\nconst rebaseAngle = (angle) => {\n angle = angle % 360;\n if (angle < 0)\n angle += 360;\n return angle;\n};\nconst rotateZ = rotate;\nconst scaleX = (v) => Math.sqrt(v[0] * v[0] + v[1] * v[1]);\nconst scaleY = (v) => Math.sqrt(v[4] * v[4] + v[5] * v[5]);\nconst matrix3dParsers = {\n x: 12,\n y: 13,\n z: 14,\n translateX: 12,\n translateY: 13,\n translateZ: 14,\n scaleX,\n scaleY,\n scale: (v) => (scaleX(v) + scaleY(v)) / 2,\n rotateX: (v) => rebaseAngle(radToDeg(Math.atan2(v[6], v[5]))),\n rotateY: (v) => rebaseAngle(radToDeg(Math.atan2(-v[2], v[0]))),\n rotateZ,\n rotate: rotateZ,\n skewX: (v) => radToDeg(Math.atan(v[4])),\n skewY: (v) => radToDeg(Math.atan(v[1])),\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[4])) / 2,\n};\nfunction defaultTransformValue(name) {\n return name.includes(\"scale\") ? 1 : 0;\n}\nfunction parseValueFromTransform(transform, name) {\n if (!transform || transform === \"none\") {\n return defaultTransformValue(name);\n }\n const matrix3dMatch = transform.match(/^matrix3d\\(([-\\d.e\\s,]+)\\)$/u);\n let parsers;\n let match;\n if (matrix3dMatch) {\n parsers = matrix3dParsers;\n match = matrix3dMatch;\n }\n else {\n const matrix2dMatch = transform.match(/^matrix\\(([-\\d.e\\s,]+)\\)$/u);\n parsers = matrix2dParsers;\n match = matrix2dMatch;\n }\n if (!match) {\n return defaultTransformValue(name);\n }\n const valueParser = parsers[name];\n const values = match[1].split(\",\").map(convertTransformToNumber);\n return typeof valueParser === \"function\"\n ? valueParser(values)\n : values[valueParser];\n}\nconst readTransformValue = (instance, name) => {\n const { transform = \"none\" } = getComputedStyle(instance);\n return parseValueFromTransform(transform, name);\n};\nfunction convertTransformToNumber(value) {\n return parseFloat(value.trim());\n}\n\n\n//# sourceMappingURL=parse-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9wYXJzZS10cmFuc2Zvcm0ubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkscUJBQXFCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRThFO0FBQzlFIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvZG9tL3BhcnNlLXRyYW5zZm9ybS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcmFkVG9EZWcgPSAocmFkKSA9PiAocmFkICogMTgwKSAvIE1hdGguUEk7XG5jb25zdCByb3RhdGUgPSAodikgPT4ge1xuICAgIGNvbnN0IGFuZ2xlID0gcmFkVG9EZWcoTWF0aC5hdGFuMih2WzFdLCB2WzBdKSk7XG4gICAgcmV0dXJuIHJlYmFzZUFuZ2xlKGFuZ2xlKTtcbn07XG5jb25zdCBtYXRyaXgyZFBhcnNlcnMgPSB7XG4gICAgeDogNCxcbiAgICB5OiA1LFxuICAgIHRyYW5zbGF0ZVg6IDQsXG4gICAgdHJhbnNsYXRlWTogNSxcbiAgICBzY2FsZVg6IDAsXG4gICAgc2NhbGVZOiAzLFxuICAgIHNjYWxlOiAodikgPT4gKE1hdGguYWJzKHZbMF0pICsgTWF0aC5hYnModlszXSkpIC8gMixcbiAgICByb3RhdGUsXG4gICAgcm90YXRlWjogcm90YXRlLFxuICAgIHNrZXdYOiAodikgPT4gcmFkVG9EZWcoTWF0aC5hdGFuKHZbMV0pKSxcbiAgICBza2V3WTogKHYpID0+IHJhZFRvRGVnKE1hdGguYXRhbih2WzJdKSksXG4gICAgc2tldzogKHYpID0+IChNYXRoLmFicyh2WzFdKSArIE1hdGguYWJzKHZbMl0pKSAvIDIsXG59O1xuY29uc3QgcmViYXNlQW5nbGUgPSAoYW5nbGUpID0+IHtcbiAgICBhbmdsZSA9IGFuZ2xlICUgMzYwO1xuICAgIGlmIChhbmdsZSA8IDApXG4gICAgICAgIGFuZ2xlICs9IDM2MDtcbiAgICByZXR1cm4gYW5nbGU7XG59O1xuY29uc3Qgcm90YXRlWiA9IHJvdGF0ZTtcbmNvbnN0IHNjYWxlWCA9ICh2KSA9PiBNYXRoLnNxcnQodlswXSAqIHZbMF0gKyB2WzFdICogdlsxXSk7XG5jb25zdCBzY2FsZVkgPSAodikgPT4gTWF0aC5zcXJ0KHZbNF0gKiB2WzRdICsgdls1XSAqIHZbNV0pO1xuY29uc3QgbWF0cml4M2RQYXJzZXJzID0ge1xuICAgIHg6IDEyLFxuICAgIHk6IDEzLFxuICAgIHo6IDE0LFxuICAgIHRyYW5zbGF0ZVg6IDEyLFxuICAgIHRyYW5zbGF0ZVk6IDEzLFxuICAgIHRyYW5zbGF0ZVo6IDE0LFxuICAgIHNjYWxlWCxcbiAgICBzY2FsZVksXG4gICAgc2NhbGU6ICh2KSA9PiAoc2NhbGVYKHYpICsgc2NhbGVZKHYpKSAvIDIsXG4gICAgcm90YXRlWDogKHYpID0+IHJlYmFzZUFuZ2xlKHJhZFRvRGVnKE1hdGguYXRhbjIodls2XSwgdls1XSkpKSxcbiAgICByb3RhdGVZOiAodikgPT4gcmViYXNlQW5nbGUocmFkVG9EZWcoTWF0aC5hdGFuMigtdlsyXSwgdlswXSkpKSxcbiAgICByb3RhdGVaLFxuICAgIHJvdGF0ZTogcm90YXRlWixcbiAgICBza2V3WDogKHYpID0+IHJhZFRvRGVnKE1hdGguYXRhbih2WzRdKSksXG4gICAgc2tld1k6ICh2KSA9PiByYWRUb0RlZyhNYXRoLmF0YW4odlsxXSkpLFxuICAgIHNrZXc6ICh2KSA9PiAoTWF0aC5hYnModlsxXSkgKyBNYXRoLmFicyh2WzRdKSkgLyAyLFxufTtcbmZ1bmN0aW9uIGRlZmF1bHRUcmFuc2Zvcm1WYWx1ZShuYW1lKSB7XG4gICAgcmV0dXJuIG5hbWUuaW5jbHVkZXMoXCJzY2FsZVwiKSA/IDEgOiAwO1xufVxuZnVuY3Rpb24gcGFyc2VWYWx1ZUZyb21UcmFuc2Zvcm0odHJhbnNmb3JtLCBuYW1lKSB7XG4gICAgaWYgKCF0cmFuc2Zvcm0gfHwgdHJhbnNmb3JtID09PSBcIm5vbmVcIikge1xuICAgICAgICByZXR1cm4gZGVmYXVsdFRyYW5zZm9ybVZhbHVlKG5hbWUpO1xuICAgIH1cbiAgICBjb25zdCBtYXRyaXgzZE1hdGNoID0gdHJhbnNmb3JtLm1hdGNoKC9ebWF0cml4M2RcXCgoWy1cXGQuZVxccyxdKylcXCkkL3UpO1xuICAgIGxldCBwYXJzZXJzO1xuICAgIGxldCBtYXRjaDtcbiAgICBpZiAobWF0cml4M2RNYXRjaCkge1xuICAgICAgICBwYXJzZXJzID0gbWF0cml4M2RQYXJzZXJzO1xuICAgICAgICBtYXRjaCA9IG1hdHJpeDNkTWF0Y2g7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBtYXRyaXgyZE1hdGNoID0gdHJhbnNmb3JtLm1hdGNoKC9ebWF0cml4XFwoKFstXFxkLmVcXHMsXSspXFwpJC91KTtcbiAgICAgICAgcGFyc2VycyA9IG1hdHJpeDJkUGFyc2VycztcbiAgICAgICAgbWF0Y2ggPSBtYXRyaXgyZE1hdGNoO1xuICAgIH1cbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0VHJhbnNmb3JtVmFsdWUobmFtZSk7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlUGFyc2VyID0gcGFyc2Vyc1tuYW1lXTtcbiAgICBjb25zdCB2YWx1ZXMgPSBtYXRjaFsxXS5zcGxpdChcIixcIikubWFwKGNvbnZlcnRUcmFuc2Zvcm1Ub051bWJlcik7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZVBhcnNlciA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gdmFsdWVQYXJzZXIodmFsdWVzKVxuICAgICAgICA6IHZhbHVlc1t2YWx1ZVBhcnNlcl07XG59XG5jb25zdCByZWFkVHJhbnNmb3JtVmFsdWUgPSAoaW5zdGFuY2UsIG5hbWUpID0+IHtcbiAgICBjb25zdCB7IHRyYW5zZm9ybSA9IFwibm9uZVwiIH0gPSBnZXRDb21wdXRlZFN0eWxlKGluc3RhbmNlKTtcbiAgICByZXR1cm4gcGFyc2VWYWx1ZUZyb21UcmFuc2Zvcm0odHJhbnNmb3JtLCBuYW1lKTtcbn07XG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNmb3JtVG9OdW1iZXIodmFsdWUpIHtcbiAgICByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZS50cmltKCkpO1xufVxuXG5leHBvcnQgeyBkZWZhdWx0VHJhbnNmb3JtVmFsdWUsIHBhcnNlVmFsdWVGcm9tVHJhbnNmb3JtLCByZWFkVHJhbnNmb3JtVmFsdWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLXRyYW5zZm9ybS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/style-set.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setStyle: () => (/* binding */ setStyle)\n/* harmony export */ });\n/* harmony import */ var _is_css_var_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-css-var.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs\");\n\n\nfunction setStyle(element, name, value) {\n (0,_is_css_var_mjs__WEBPACK_IMPORTED_MODULE_0__.isCSSVar)(name)\n ? element.style.setProperty(name, value)\n : (element.style[name] = value);\n}\n\n\n//# sourceMappingURL=style-set.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9zdHlsZS1zZXQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTRDOztBQUU1QztBQUNBLElBQUkseURBQVE7QUFDWjtBQUNBO0FBQ0E7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvZG9tL3N0eWxlLXNldC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNDU1NWYXIgfSBmcm9tICcuL2lzLWNzcy12YXIubWpzJztcblxuZnVuY3Rpb24gc2V0U3R5bGUoZWxlbWVudCwgbmFtZSwgdmFsdWUpIHtcbiAgICBpc0NTU1ZhcihuYW1lKVxuICAgICAgICA/IGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkobmFtZSwgdmFsdWUpXG4gICAgICAgIDogKGVsZW1lbnQuc3R5bGVbbmFtZV0gPSB2YWx1ZSk7XG59XG5cbmV4cG9ydCB7IHNldFN0eWxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZS1zZXQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ camelToDash: () => (/* binding */ camelToDash)\n/* harmony export */ });\nfunction camelToDash(str) {\n return str.replace(/([A-Z])/g, (match) => `-${match.toLowerCase()}`);\n}\n\n\n//# sourceMappingURL=camel-to-dash.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9jYW1lbC10by1kYXNoLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSxrREFBa0Qsb0JBQW9CO0FBQ3RFOztBQUV1QjtBQUN2QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9jYW1lbC10by1kYXNoLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBjYW1lbFRvRGFzaChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyhbQS1aXSkvZywgKG1hdGNoKSA9PiBgLSR7bWF0Y2gudG9Mb3dlckNhc2UoKX1gKTtcbn1cblxuZXhwb3J0IHsgY2FtZWxUb0Rhc2ggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhbWVsLXRvLWRhc2gubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HTMLVisualElement: () => (/* binding */ HTMLVisualElement),\n/* harmony export */ getComputedStyle: () => (/* binding */ getComputedStyle)\n/* harmony export */ });\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../animation/utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom/parse-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\");\n/* harmony import */ var _projection_utils_measure_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../projection/utils/measure.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs\");\n/* harmony import */ var _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/DOMVisualElement.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs\");\n/* harmony import */ var _utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/build-styles.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var _utils_render_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/render.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs\");\n/* harmony import */ var _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/scrape-motion-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\");\n\n\n\n\n\n\n\n\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n this.renderInstance = _utils_render_mjs__WEBPACK_IMPORTED_MODULE_1__.renderHTML;\n }\n readValueFromInstance(instance, key) {\n if (_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformProps.has(key)) {\n return this.projection?.isProjecting\n ? (0,_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.defaultTransformValue)(key)\n : (0,_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.readTransformValue)(instance, key);\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = ((0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_4__.isCSSVariableName)(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return (0,_projection_utils_measure_mjs__WEBPACK_IMPORTED_MODULE_5__.measureViewportBox)(instance, transformPagePoint);\n }\n build(renderState, latestValues, props) {\n (0,_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_6__.buildHTMLStyles)(renderState, latestValues, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return (0,_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_7__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\n }\n}\n\n\n//# sourceMappingURL=HTMLVisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvSFRNTFZpc3VhbEVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBOEU7QUFDakI7QUFDMEI7QUFDZjtBQUNUO0FBQ0o7QUFDWDtBQUMrQjs7QUFFL0U7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLHVFQUFnQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIseURBQVU7QUFDeEM7QUFDQTtBQUNBLFlBQVkscUVBQWM7QUFDMUI7QUFDQSxrQkFBa0IsK0VBQXFCO0FBQ3ZDLGtCQUFrQiw0RUFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLHVGQUFpQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLG9CQUFvQjtBQUMvRCxlQUFlLGlGQUFrQjtBQUNqQztBQUNBO0FBQ0EsUUFBUSx3RUFBZTtBQUN2QjtBQUNBO0FBQ0EsZUFBZSw0RkFBMkI7QUFDMUM7QUFDQTs7QUFFK0M7QUFDL0MiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL0hUTUxWaXN1YWxFbGVtZW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0NTU1ZhcmlhYmxlTmFtZSB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi91dGlscy9pcy1jc3MtdmFyaWFibGUubWpzJztcbmltcG9ydCB7IHRyYW5zZm9ybVByb3BzIH0gZnJvbSAnLi4vdXRpbHMva2V5cy10cmFuc2Zvcm0ubWpzJztcbmltcG9ydCB7IGRlZmF1bHRUcmFuc2Zvcm1WYWx1ZSwgcmVhZFRyYW5zZm9ybVZhbHVlIH0gZnJvbSAnLi4vZG9tL3BhcnNlLXRyYW5zZm9ybS5tanMnO1xuaW1wb3J0IHsgbWVhc3VyZVZpZXdwb3J0Qm94IH0gZnJvbSAnLi4vLi4vcHJvamVjdGlvbi91dGlscy9tZWFzdXJlLm1qcyc7XG5pbXBvcnQgeyBET01WaXN1YWxFbGVtZW50IH0gZnJvbSAnLi4vZG9tL0RPTVZpc3VhbEVsZW1lbnQubWpzJztcbmltcG9ydCB7IGJ1aWxkSFRNTFN0eWxlcyB9IGZyb20gJy4vdXRpbHMvYnVpbGQtc3R5bGVzLm1qcyc7XG5pbXBvcnQgeyByZW5kZXJIVE1MIH0gZnJvbSAnLi91dGlscy9yZW5kZXIubWpzJztcbmltcG9ydCB7IHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyB9IGZyb20gJy4vdXRpbHMvc2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzJztcblxuZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSB7XG4gICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xufVxuY2xhc3MgSFRNTFZpc3VhbEVsZW1lbnQgZXh0ZW5kcyBET01WaXN1YWxFbGVtZW50IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy50eXBlID0gXCJodG1sXCI7XG4gICAgICAgIHRoaXMucmVuZGVySW5zdGFuY2UgPSByZW5kZXJIVE1MO1xuICAgIH1cbiAgICByZWFkVmFsdWVGcm9tSW5zdGFuY2UoaW5zdGFuY2UsIGtleSkge1xuICAgICAgICBpZiAodHJhbnNmb3JtUHJvcHMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2plY3Rpb24/LmlzUHJvamVjdGluZ1xuICAgICAgICAgICAgICAgID8gZGVmYXVsdFRyYW5zZm9ybVZhbHVlKGtleSlcbiAgICAgICAgICAgICAgICA6IHJlYWRUcmFuc2Zvcm1WYWx1ZShpbnN0YW5jZSwga2V5KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGluc3RhbmNlKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKGlzQ1NTVmFyaWFibGVOYW1lKGtleSlcbiAgICAgICAgICAgICAgICA/IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShrZXkpXG4gICAgICAgICAgICAgICAgOiBjb21wdXRlZFN0eWxlW2tleV0pIHx8IDA7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUudHJpbSgpIDogdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWVhc3VyZUluc3RhbmNlVmlld3BvcnRCb3goaW5zdGFuY2UsIHsgdHJhbnNmb3JtUGFnZVBvaW50IH0pIHtcbiAgICAgICAgcmV0dXJuIG1lYXN1cmVWaWV3cG9ydEJveChpbnN0YW5jZSwgdHJhbnNmb3JtUGFnZVBvaW50KTtcbiAgICB9XG4gICAgYnVpbGQocmVuZGVyU3RhdGUsIGxhdGVzdFZhbHVlcywgcHJvcHMpIHtcbiAgICAgICAgYnVpbGRIVE1MU3R5bGVzKHJlbmRlclN0YXRlLCBsYXRlc3RWYWx1ZXMsIHByb3BzLnRyYW5zZm9ybVRlbXBsYXRlKTtcbiAgICB9XG4gICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLCBwcmV2UHJvcHMsIHZpc3VhbEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywgcHJldlByb3BzLCB2aXN1YWxFbGVtZW50KTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IEhUTUxWaXN1YWxFbGVtZW50LCBnZXRDb21wdXRlZFN0eWxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1IVE1MVmlzdWFsRWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildHTMLStyles: () => (/* binding */ buildHTMLStyles)\n/* harmony export */ });\n/* harmony import */ var _value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../value/types/utils/get-as-type.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\");\n/* harmony import */ var _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../value/types/maps/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../animation/utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _build_transform_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./build-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs\");\n\n\n\n\n\n\nfunction buildHTMLStyles(state, latestValues, transformTemplate) {\n const { style, vars, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept separately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n if (_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n continue;\n }\n else if ((0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableName)(key)) {\n vars[key] = value;\n continue;\n }\n else {\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueAsType = (0,_value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_2__.getValueAsType)(value, _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_3__.numberValueTypes[key]);\n if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] =\n valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = (0,_build_transform_mjs__WEBPACK_IMPORTED_MODULE_4__.buildTransform)(latestValues, state.transform, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\n\n//# sourceMappingURL=build-styles.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvYnVpbGQtc3R5bGVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBNEU7QUFDSjtBQUNSO0FBQ2lCO0FBQzFCOztBQUV2RDtBQUNBLFlBQVksK0JBQStCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFFQUFjO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHVGQUFpQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLGtGQUFjLFFBQVEsMEVBQWdCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLG9FQUFjO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsaURBQWlEO0FBQ2pFLG1DQUFtQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVE7QUFDakU7QUFDQTs7QUFFMkI7QUFDM0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL2J1aWxkLXN0eWxlcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VmFsdWVBc1R5cGUgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy91dGlscy9nZXQtYXMtdHlwZS5tanMnO1xuaW1wb3J0IHsgbnVtYmVyVmFsdWVUeXBlcyB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3R5cGVzL21hcHMvbnVtYmVyLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wcyB9IGZyb20gJy4uLy4uL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyBpc0NTU1ZhcmlhYmxlTmFtZSB9IGZyb20gJy4uLy4uLy4uL2FuaW1hdGlvbi91dGlscy9pcy1jc3MtdmFyaWFibGUubWpzJztcbmltcG9ydCB7IGJ1aWxkVHJhbnNmb3JtIH0gZnJvbSAnLi9idWlsZC10cmFuc2Zvcm0ubWpzJztcblxuZnVuY3Rpb24gYnVpbGRIVE1MU3R5bGVzKHN0YXRlLCBsYXRlc3RWYWx1ZXMsIHRyYW5zZm9ybVRlbXBsYXRlKSB7XG4gICAgY29uc3QgeyBzdHlsZSwgdmFycywgdHJhbnNmb3JtT3JpZ2luIH0gPSBzdGF0ZTtcbiAgICAvLyBUcmFjayB3aGV0aGVyIHdlIGVuY291bnRlciBhbnkgdHJhbnNmb3JtIG9yIHRyYW5zZm9ybU9yaWdpbiB2YWx1ZXMuXG4gICAgbGV0IGhhc1RyYW5zZm9ybSA9IGZhbHNlO1xuICAgIGxldCBoYXNUcmFuc2Zvcm1PcmlnaW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBMb29wIG92ZXIgYWxsIG91ciBsYXRlc3QgYW5pbWF0ZWQgdmFsdWVzIGFuZCBkZWNpZGUgd2hldGhlciB0byBoYW5kbGUgdGhlbVxuICAgICAqIGFzIGEgc3R5bGUgb3IgQ1NTIHZhcmlhYmxlLlxuICAgICAqXG4gICAgICogVHJhbnNmb3JtcyBhbmQgdHJhbnNmb3JtIG9yaWdpbnMgYXJlIGtlcHQgc2VwYXJhdGVseSBmb3IgZnVydGhlciBwcm9jZXNzaW5nLlxuICAgICAqL1xuICAgIGZvciAoY29uc3Qga2V5IGluIGxhdGVzdFZhbHVlcykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGxhdGVzdFZhbHVlc1trZXldO1xuICAgICAgICBpZiAodHJhbnNmb3JtUHJvcHMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSB0cmFuc2Zvcm0sIGZsYWcgdG8gZW5hYmxlIGZ1cnRoZXIgdHJhbnNmb3JtIHByb2Nlc3NpbmdcbiAgICAgICAgICAgIGhhc1RyYW5zZm9ybSA9IHRydWU7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0NTU1ZhcmlhYmxlTmFtZShrZXkpKSB7XG4gICAgICAgICAgICB2YXJzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgdmFsdWUgdG8gaXRzIGRlZmF1bHQgdmFsdWUgdHlwZSwgaWUgMCAtPiBcIjBweFwiXG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFzVHlwZSA9IGdldFZhbHVlQXNUeXBlKHZhbHVlLCBudW1iZXJWYWx1ZVR5cGVzW2tleV0pO1xuICAgICAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKFwib3JpZ2luXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHRyYW5zZm9ybSBvcmlnaW4sIGZsYWcgYW5kIGVuYWJsZSBmdXJ0aGVyIHRyYW5zZm9ybS1vcmlnaW4gcHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgIGhhc1RyYW5zZm9ybU9yaWdpbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luW2tleV0gPVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUFzVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0eWxlW2tleV0gPSB2YWx1ZUFzVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWxhdGVzdFZhbHVlcy50cmFuc2Zvcm0pIHtcbiAgICAgICAgaWYgKGhhc1RyYW5zZm9ybSB8fCB0cmFuc2Zvcm1UZW1wbGF0ZSkge1xuICAgICAgICAgICAgc3R5bGUudHJhbnNmb3JtID0gYnVpbGRUcmFuc2Zvcm0obGF0ZXN0VmFsdWVzLCBzdGF0ZS50cmFuc2Zvcm0sIHRyYW5zZm9ybVRlbXBsYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdHlsZS50cmFuc2Zvcm0pIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBwcmV2aW91c2x5IGNyZWF0ZWQgYSB0cmFuc2Zvcm0gYnV0IGN1cnJlbnRseSBkb24ndCBoYXZlIGFueSxcbiAgICAgICAgICAgICAqIHJlc2V0IHRyYW5zZm9ybSBzdHlsZSB0byBub25lLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBzdHlsZS50cmFuc2Zvcm0gPSBcIm5vbmVcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBCdWlsZCBhIHRyYW5zZm9ybU9yaWdpbiBzdHlsZS4gVXNlcyB0aGUgc2FtZSBkZWZhdWx0cyBhcyB0aGUgYnJvd3NlciBmb3JcbiAgICAgKiB1bmRlZmluZWQgb3JpZ2lucy5cbiAgICAgKi9cbiAgICBpZiAoaGFzVHJhbnNmb3JtT3JpZ2luKSB7XG4gICAgICAgIGNvbnN0IHsgb3JpZ2luWCA9IFwiNTAlXCIsIG9yaWdpblkgPSBcIjUwJVwiLCBvcmlnaW5aID0gMCwgfSA9IHRyYW5zZm9ybU9yaWdpbjtcbiAgICAgICAgc3R5bGUudHJhbnNmb3JtT3JpZ2luID0gYCR7b3JpZ2luWH0gJHtvcmlnaW5ZfSAke29yaWdpblp9YDtcbiAgICB9XG59XG5cbmV4cG9ydCB7IGJ1aWxkSFRNTFN0eWxlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVpbGQtc3R5bGVzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildTransform: () => (/* binding */ buildTransform)\n/* harmony export */ });\n/* harmony import */ var _value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/types/utils/get-as-type.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\");\n/* harmony import */ var _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../value/types/maps/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n\n\n\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(latestValues, transform, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n let transformIsDefault = true;\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder[i];\n const value = latestValues[key];\n if (value === undefined)\n continue;\n let valueIsDefault = true;\n if (typeof value === \"number\") {\n valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\n }\n else {\n const parsed = parseFloat(value);\n valueIsDefault = key.startsWith(\"scale\") ? parsed === 1 : parsed === 0;\n }\n if (!valueIsDefault || transformTemplate) {\n const valueAsType = (0,_value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_1__.getValueAsType)(value, _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_2__.numberValueTypes[key]);\n if (!valueIsDefault) {\n transformIsDefault = false;\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${valueAsType}) `;\n }\n if (transformTemplate) {\n transform[key] = valueAsType;\n }\n }\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\n\n//# sourceMappingURL=build-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvYnVpbGQtdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTRFO0FBQ0o7QUFDSjs7QUFFcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHlFQUFrQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLG1CQUFtQjtBQUN2QyxvQkFBb0IseUVBQWtCO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxrRkFBYyxRQUFRLDBFQUFnQjtBQUN0RTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsY0FBYyxHQUFHLFlBQVk7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMEI7QUFDMUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL2J1aWxkLXRyYW5zZm9ybS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VmFsdWVBc1R5cGUgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy91dGlscy9nZXQtYXMtdHlwZS5tanMnO1xuaW1wb3J0IHsgbnVtYmVyVmFsdWVUeXBlcyB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3R5cGVzL21hcHMvbnVtYmVyLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wT3JkZXIgfSBmcm9tICcuLi8uLi91dGlscy9rZXlzLXRyYW5zZm9ybS5tanMnO1xuXG5jb25zdCB0cmFuc2xhdGVBbGlhcyA9IHtcbiAgICB4OiBcInRyYW5zbGF0ZVhcIixcbiAgICB5OiBcInRyYW5zbGF0ZVlcIixcbiAgICB6OiBcInRyYW5zbGF0ZVpcIixcbiAgICB0cmFuc2Zvcm1QZXJzcGVjdGl2ZTogXCJwZXJzcGVjdGl2ZVwiLFxufTtcbmNvbnN0IG51bVRyYW5zZm9ybXMgPSB0cmFuc2Zvcm1Qcm9wT3JkZXIubGVuZ3RoO1xuLyoqXG4gKiBCdWlsZCBhIENTUyB0cmFuc2Zvcm0gc3R5bGUgZnJvbSBpbmRpdmlkdWFsIHgveS9zY2FsZSBldGMgcHJvcGVydGllcy5cbiAqXG4gKiBUaGlzIG91dHB1dHMgd2l0aCBhIGRlZmF1bHQgb3JkZXIgb2YgdHJhbnNmb3Jtcy9zY2FsZXMvcm90YXRpb25zLCB0aGlzIGNhbiBiZSBjdXN0b21pc2VkIGJ5XG4gKiBwcm92aWRpbmcgYSB0cmFuc2Zvcm1UZW1wbGF0ZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYnVpbGRUcmFuc2Zvcm0obGF0ZXN0VmFsdWVzLCB0cmFuc2Zvcm0sIHRyYW5zZm9ybVRlbXBsYXRlKSB7XG4gICAgLy8gVGhlIHRyYW5zZm9ybSBzdHJpbmcgd2UncmUgZ29pbmcgdG8gYnVpbGQgaW50by5cbiAgICBsZXQgdHJhbnNmb3JtU3RyaW5nID0gXCJcIjtcbiAgICBsZXQgdHJhbnNmb3JtSXNEZWZhdWx0ID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBMb29wIG92ZXIgYWxsIHBvc3NpYmxlIHRyYW5zZm9ybXMgaW4gb3JkZXIsIGFkZGluZyB0aGUgb25lcyB0aGF0XG4gICAgICogYXJlIHByZXNlbnQgdG8gdGhlIHRyYW5zZm9ybSBzdHJpbmcuXG4gICAgICovXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1UcmFuc2Zvcm1zOyBpKyspIHtcbiAgICAgICAgY29uc3Qga2V5ID0gdHJhbnNmb3JtUHJvcE9yZGVyW2ldO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGxhdGVzdFZhbHVlc1trZXldO1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBsZXQgdmFsdWVJc0RlZmF1bHQgPSB0cnVlO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICB2YWx1ZUlzRGVmYXVsdCA9IHZhbHVlID09PSAoa2V5LnN0YXJ0c1dpdGgoXCJzY2FsZVwiKSA/IDEgOiAwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgICAgICAgdmFsdWVJc0RlZmF1bHQgPSBrZXkuc3RhcnRzV2l0aChcInNjYWxlXCIpID8gcGFyc2VkID09PSAxIDogcGFyc2VkID09PSAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsdWVJc0RlZmF1bHQgfHwgdHJhbnNmb3JtVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNUeXBlID0gZ2V0VmFsdWVBc1R5cGUodmFsdWUsIG51bWJlclZhbHVlVHlwZXNba2V5XSk7XG4gICAgICAgICAgICBpZiAoIXZhbHVlSXNEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtSXNEZWZhdWx0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtTmFtZSA9IHRyYW5zbGF0ZUFsaWFzW2tleV0gfHwga2V5O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybVN0cmluZyArPSBgJHt0cmFuc2Zvcm1OYW1lfSgke3ZhbHVlQXNUeXBlfSkgYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0cmFuc2Zvcm1UZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybVtrZXldID0gdmFsdWVBc1R5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHJhbnNmb3JtU3RyaW5nID0gdHJhbnNmb3JtU3RyaW5nLnRyaW0oKTtcbiAgICAvLyBJZiB3ZSBoYXZlIGEgY3VzdG9tIGB0cmFuc2Zvcm1gIHRlbXBsYXRlLCBwYXNzIG91ciB0cmFuc2Zvcm0gdmFsdWVzIGFuZFxuICAgIC8vIGdlbmVyYXRlZCB0cmFuc2Zvcm1TdHJpbmcgdG8gdGhhdCBiZWZvcmUgcmV0dXJuaW5nXG4gICAgaWYgKHRyYW5zZm9ybVRlbXBsYXRlKSB7XG4gICAgICAgIHRyYW5zZm9ybVN0cmluZyA9IHRyYW5zZm9ybVRlbXBsYXRlKHRyYW5zZm9ybSwgdHJhbnNmb3JtSXNEZWZhdWx0ID8gXCJcIiA6IHRyYW5zZm9ybVN0cmluZyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRyYW5zZm9ybUlzRGVmYXVsdCkge1xuICAgICAgICB0cmFuc2Zvcm1TdHJpbmcgPSBcIm5vbmVcIjtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zZm9ybVN0cmluZztcbn1cblxuZXhwb3J0IHsgYnVpbGRUcmFuc2Zvcm0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1aWxkLXRyYW5zZm9ybS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/render.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ renderHTML: () => (/* binding */ renderHTML)\n/* harmony export */ });\nfunction renderHTML(element, { style, vars }, styleProp, projection) {\n const elementStyle = element.style;\n let key;\n for (key in style) {\n // CSSStyleDeclaration has [index: number]: string; in the types, so we use that as key type.\n elementStyle[key] = style[key];\n }\n // Write projection styles directly to element style\n projection?.applyProjectionStyles(elementStyle, styleProp);\n for (key in vars) {\n // Loop over any CSS variables and assign those.\n // They can only be assigned using `setProperty`.\n elementStyle.setProperty(key, vars[key]);\n }\n}\n\n\n//# sourceMappingURL=render.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvcmVuZGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsK0JBQStCLGFBQWE7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsNERBQTREO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzQjtBQUN0QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvcmVuZGVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiByZW5kZXJIVE1MKGVsZW1lbnQsIHsgc3R5bGUsIHZhcnMgfSwgc3R5bGVQcm9wLCBwcm9qZWN0aW9uKSB7XG4gICAgY29uc3QgZWxlbWVudFN0eWxlID0gZWxlbWVudC5zdHlsZTtcbiAgICBsZXQga2V5O1xuICAgIGZvciAoa2V5IGluIHN0eWxlKSB7XG4gICAgICAgIC8vIENTU1N0eWxlRGVjbGFyYXRpb24gaGFzIFtpbmRleDogbnVtYmVyXTogc3RyaW5nOyBpbiB0aGUgdHlwZXMsIHNvIHdlIHVzZSB0aGF0IGFzIGtleSB0eXBlLlxuICAgICAgICBlbGVtZW50U3R5bGVba2V5XSA9IHN0eWxlW2tleV07XG4gICAgfVxuICAgIC8vIFdyaXRlIHByb2plY3Rpb24gc3R5bGVzIGRpcmVjdGx5IHRvIGVsZW1lbnQgc3R5bGVcbiAgICBwcm9qZWN0aW9uPy5hcHBseVByb2plY3Rpb25TdHlsZXMoZWxlbWVudFN0eWxlLCBzdHlsZVByb3ApO1xuICAgIGZvciAoa2V5IGluIHZhcnMpIHtcbiAgICAgICAgLy8gTG9vcCBvdmVyIGFueSBDU1MgdmFyaWFibGVzIGFuZCBhc3NpZ24gdGhvc2UuXG4gICAgICAgIC8vIFRoZXkgY2FuIG9ubHkgYmUgYXNzaWduZWQgdXNpbmcgYHNldFByb3BlcnR5YC5cbiAgICAgICAgZWxlbWVudFN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFyc1trZXldKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IHJlbmRlckhUTUwgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbmRlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ scrapeMotionValuesFromProps: () => (/* binding */ scrapeMotionValuesFromProps)\n/* harmony export */ });\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/is-forced-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs\");\n\n\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const style = props.style;\n const prevStyle = prevProps?.style;\n const newValues = {};\n if (!style)\n return newValues;\n for (const key in style) {\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(style[key]) ||\n (prevStyle && (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(prevStyle[key])) ||\n (0,_utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__.isForcedMotionValue)(key, props) ||\n visualElement?.getValue(key)?.liveStyle !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\n\n//# sourceMappingURL=scrape-motion-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvc2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5RTtBQUNJOztBQUU3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksK0VBQWE7QUFDekIsMEJBQTBCLCtFQUFhO0FBQ3ZDLFlBQVksc0ZBQW1CO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFdUM7QUFDdkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc01vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vdmFsdWUvdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyc7XG5pbXBvcnQgeyBpc0ZvcmNlZE1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvaXMtZm9yY2VkLW1vdGlvbi12YWx1ZS5tanMnO1xuXG5mdW5jdGlvbiBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCkge1xuICAgIGNvbnN0IHN0eWxlID0gcHJvcHMuc3R5bGU7XG4gICAgY29uc3QgcHJldlN0eWxlID0gcHJldlByb3BzPy5zdHlsZTtcbiAgICBjb25zdCBuZXdWYWx1ZXMgPSB7fTtcbiAgICBpZiAoIXN0eWxlKVxuICAgICAgICByZXR1cm4gbmV3VmFsdWVzO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHN0eWxlKSB7XG4gICAgICAgIGlmIChpc01vdGlvblZhbHVlKHN0eWxlW2tleV0pIHx8XG4gICAgICAgICAgICAocHJldlN0eWxlICYmIGlzTW90aW9uVmFsdWUocHJldlN0eWxlW2tleV0pKSB8fFxuICAgICAgICAgICAgaXNGb3JjZWRNb3Rpb25WYWx1ZShrZXksIHByb3BzKSB8fFxuICAgICAgICAgICAgdmlzdWFsRWxlbWVudD8uZ2V0VmFsdWUoa2V5KT8ubGl2ZVN0eWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlc1trZXldID0gc3R5bGVba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3VmFsdWVzO1xufVxuXG5leHBvcnQgeyBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/store.mjs": +/*!**********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/store.mjs ***! + \**********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ visualElementStore: () => (/* binding */ visualElementStore)\n/* harmony export */ });\nconst visualElementStore = new WeakMap();\n\n\n//# sourceMappingURL=store.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N0b3JlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRThCO0FBQzlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvc3RvcmUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHZpc3VhbEVsZW1lbnRTdG9yZSA9IG5ldyBXZWFrTWFwKCk7XG5cbmV4cG9ydCB7IHZpc3VhbEVsZW1lbnRTdG9yZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RvcmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/store.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SVGVisualElement: () => (/* binding */ SVGVisualElement)\n/* harmony export */ });\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _value_types_maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../value/types/maps/defaults.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\");\n/* harmony import */ var _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../projection/geometry/models.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/DOMVisualElement.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs\");\n/* harmony import */ var _dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom/utils/camel-to-dash.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\");\n/* harmony import */ var _utils_build_attrs_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/build-attrs.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs\");\n/* harmony import */ var _utils_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/camel-case-attrs.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs\");\n/* harmony import */ var _utils_is_svg_tag_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/is-svg-tag.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs\");\n/* harmony import */ var _utils_render_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/render.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/render.mjs\");\n/* harmony import */ var _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/scrape-motion-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs\");\n\n\n\n\n\n\n\n\n\n\n\nclass SVGVisualElement extends _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n this.measureInstanceViewportBox = _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_1__.createBox;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformProps.has(key)) {\n const defaultType = (0,_value_types_maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_3__.getDefaultValueType)(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !_utils_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_4__.camelCaseAttributes.has(key) ? (0,_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_5__.camelToDash)(key) : key;\n return instance.getAttribute(key);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return (0,_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_6__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\n }\n build(renderState, latestValues, props) {\n (0,_utils_build_attrs_mjs__WEBPACK_IMPORTED_MODULE_7__.buildSVGAttrs)(renderState, latestValues, this.isSVGTag, props.transformTemplate, props.style);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n (0,_utils_render_mjs__WEBPACK_IMPORTED_MODULE_8__.renderSVG)(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = (0,_utils_is_svg_tag_mjs__WEBPACK_IMPORTED_MODULE_9__.isSVGTag)(instance.tagName);\n super.mount(instance);\n }\n}\n\n\n//# sourceMappingURL=SVGVisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy9TVkdWaXN1YWxFbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUE2RDtBQUNhO0FBQ1Q7QUFDRjtBQUNGO0FBQ0w7QUFDVztBQUNqQjtBQUNIO0FBQ2dDOztBQUUvRSwrQkFBK0IsdUVBQWdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLHNFQUFTO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFFQUFjO0FBQzFCLGdDQUFnQyxtRkFBbUI7QUFDbkQ7QUFDQTtBQUNBLGVBQWUsNEVBQW1CLFlBQVkseUVBQVc7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsZUFBZSw0RkFBMkI7QUFDMUM7QUFDQTtBQUNBLFFBQVEscUVBQWE7QUFDckI7QUFDQTtBQUNBLFFBQVEsNERBQVM7QUFDakI7QUFDQTtBQUNBLHdCQUF3QiwrREFBUTtBQUNoQztBQUNBO0FBQ0E7O0FBRTRCO0FBQzVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvc3ZnL1NWR1Zpc3VhbEVsZW1lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zZm9ybVByb3BzIH0gZnJvbSAnLi4vdXRpbHMva2V5cy10cmFuc2Zvcm0ubWpzJztcbmltcG9ydCB7IGdldERlZmF1bHRWYWx1ZVR5cGUgfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9tYXBzL2RlZmF1bHRzLm1qcyc7XG5pbXBvcnQgeyBjcmVhdGVCb3ggfSBmcm9tICcuLi8uLi9wcm9qZWN0aW9uL2dlb21ldHJ5L21vZGVscy5tanMnO1xuaW1wb3J0IHsgRE9NVmlzdWFsRWxlbWVudCB9IGZyb20gJy4uL2RvbS9ET01WaXN1YWxFbGVtZW50Lm1qcyc7XG5pbXBvcnQgeyBjYW1lbFRvRGFzaCB9IGZyb20gJy4uL2RvbS91dGlscy9jYW1lbC10by1kYXNoLm1qcyc7XG5pbXBvcnQgeyBidWlsZFNWR0F0dHJzIH0gZnJvbSAnLi91dGlscy9idWlsZC1hdHRycy5tanMnO1xuaW1wb3J0IHsgY2FtZWxDYXNlQXR0cmlidXRlcyB9IGZyb20gJy4vdXRpbHMvY2FtZWwtY2FzZS1hdHRycy5tanMnO1xuaW1wb3J0IHsgaXNTVkdUYWcgfSBmcm9tICcuL3V0aWxzL2lzLXN2Zy10YWcubWpzJztcbmltcG9ydCB7IHJlbmRlclNWRyB9IGZyb20gJy4vdXRpbHMvcmVuZGVyLm1qcyc7XG5pbXBvcnQgeyBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfSBmcm9tICcuL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcyc7XG5cbmNsYXNzIFNWR1Zpc3VhbEVsZW1lbnQgZXh0ZW5kcyBET01WaXN1YWxFbGVtZW50IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy50eXBlID0gXCJzdmdcIjtcbiAgICAgICAgdGhpcy5pc1NWR1RhZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1lYXN1cmVJbnN0YW5jZVZpZXdwb3J0Qm94ID0gY3JlYXRlQm94O1xuICAgIH1cbiAgICBnZXRCYXNlVGFyZ2V0RnJvbVByb3BzKHByb3BzLCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIHByb3BzW2tleV07XG4gICAgfVxuICAgIHJlYWRWYWx1ZUZyb21JbnN0YW5jZShpbnN0YW5jZSwga2V5KSB7XG4gICAgICAgIGlmICh0cmFuc2Zvcm1Qcm9wcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFR5cGUgPSBnZXREZWZhdWx0VmFsdWVUeXBlKGtleSk7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFR5cGUgPyBkZWZhdWx0VHlwZS5kZWZhdWx0IHx8IDAgOiAwO1xuICAgICAgICB9XG4gICAgICAgIGtleSA9ICFjYW1lbENhc2VBdHRyaWJ1dGVzLmhhcyhrZXkpID8gY2FtZWxUb0Rhc2goa2V5KSA6IGtleTtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmdldEF0dHJpYnV0ZShrZXkpO1xuICAgIH1cbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLCBwcmV2UHJvcHMsIHZpc3VhbEVsZW1lbnQpO1xuICAgIH1cbiAgICBidWlsZChyZW5kZXJTdGF0ZSwgbGF0ZXN0VmFsdWVzLCBwcm9wcykge1xuICAgICAgICBidWlsZFNWR0F0dHJzKHJlbmRlclN0YXRlLCBsYXRlc3RWYWx1ZXMsIHRoaXMuaXNTVkdUYWcsIHByb3BzLnRyYW5zZm9ybVRlbXBsYXRlLCBwcm9wcy5zdHlsZSk7XG4gICAgfVxuICAgIHJlbmRlckluc3RhbmNlKGluc3RhbmNlLCByZW5kZXJTdGF0ZSwgc3R5bGVQcm9wLCBwcm9qZWN0aW9uKSB7XG4gICAgICAgIHJlbmRlclNWRyhpbnN0YW5jZSwgcmVuZGVyU3RhdGUsIHN0eWxlUHJvcCwgcHJvamVjdGlvbik7XG4gICAgfVxuICAgIG1vdW50KGluc3RhbmNlKSB7XG4gICAgICAgIHRoaXMuaXNTVkdUYWcgPSBpc1NWR1RhZyhpbnN0YW5jZS50YWdOYW1lKTtcbiAgICAgICAgc3VwZXIubW91bnQoaW5zdGFuY2UpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgU1ZHVmlzdWFsRWxlbWVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U1ZHVmlzdWFsRWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildSVGAttrs: () => (/* binding */ buildSVGAttrs)\n/* harmony export */ });\n/* harmony import */ var _html_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/build-styles.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var _path_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/path.mjs\");\n\n\n\n/**\n * CSS Motion Path properties that should remain as CSS styles on SVG elements.\n */\nconst cssMotionPathProperties = [\n \"offsetDistance\",\n \"offsetPath\",\n \"offsetRotate\",\n \"offsetAnchor\",\n];\n/**\n * Build SVG visual attributes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, isSVGTag, transformTemplate, styleProp) {\n (0,_html_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_0__.buildHTMLStyles)(state, latest, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style } = state;\n /**\n * However, we apply transforms as CSS transforms.\n * So if we detect a transform, transformOrigin we take it from attrs and copy it into style.\n */\n if (attrs.transform) {\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n if (style.transform || attrs.transformOrigin) {\n style.transformOrigin = attrs.transformOrigin ?? \"50% 50%\";\n delete attrs.transformOrigin;\n }\n if (style.transform) {\n /**\n * SVG's element transform-origin uses its own median as a reference.\n * Therefore, transformBox becomes a fill-box\n */\n style.transformBox = styleProp?.transformBox ?? \"fill-box\";\n delete attrs.transformBox;\n }\n for (const key of cssMotionPathProperties) {\n if (attrs[key] !== undefined) {\n style[key] = attrs[key];\n delete attrs[key];\n }\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n (0,_path_mjs__WEBPACK_IMPORTED_MODULE_1__.buildSVGPath)(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\n\n//# sourceMappingURL=build-attrs.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9idWlsZC1hdHRycy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9FO0FBQzFCOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQSxXQUFXO0FBQ1gsSUFBSSw2RUFBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGVBQWU7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsdURBQVk7QUFDcEI7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvYnVpbGQtYXR0cnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJ1aWxkSFRNTFN0eWxlcyB9IGZyb20gJy4uLy4uL2h0bWwvdXRpbHMvYnVpbGQtc3R5bGVzLm1qcyc7XG5pbXBvcnQgeyBidWlsZFNWR1BhdGggfSBmcm9tICcuL3BhdGgubWpzJztcblxuLyoqXG4gKiBDU1MgTW90aW9uIFBhdGggcHJvcGVydGllcyB0aGF0IHNob3VsZCByZW1haW4gYXMgQ1NTIHN0eWxlcyBvbiBTVkcgZWxlbWVudHMuXG4gKi9cbmNvbnN0IGNzc01vdGlvblBhdGhQcm9wZXJ0aWVzID0gW1xuICAgIFwib2Zmc2V0RGlzdGFuY2VcIixcbiAgICBcIm9mZnNldFBhdGhcIixcbiAgICBcIm9mZnNldFJvdGF0ZVwiLFxuICAgIFwib2Zmc2V0QW5jaG9yXCIsXG5dO1xuLyoqXG4gKiBCdWlsZCBTVkcgdmlzdWFsIGF0dHJpYnV0ZXMsIGxpa2UgY3ggYW5kIHN0eWxlLnRyYW5zZm9ybVxuICovXG5mdW5jdGlvbiBidWlsZFNWR0F0dHJzKHN0YXRlLCB7IGF0dHJYLCBhdHRyWSwgYXR0clNjYWxlLCBwYXRoTGVuZ3RoLCBwYXRoU3BhY2luZyA9IDEsIHBhdGhPZmZzZXQgPSAwLCBcbi8vIFRoaXMgaXMgb2JqZWN0IGNyZWF0aW9uLCB3aGljaCB3ZSB0cnkgdG8gYXZvaWQgcGVyLWZyYW1lLlxuLi4ubGF0ZXN0IH0sIGlzU1ZHVGFnLCB0cmFuc2Zvcm1UZW1wbGF0ZSwgc3R5bGVQcm9wKSB7XG4gICAgYnVpbGRIVE1MU3R5bGVzKHN0YXRlLCBsYXRlc3QsIHRyYW5zZm9ybVRlbXBsYXRlKTtcbiAgICAvKipcbiAgICAgKiBGb3Igc3ZnIHRhZ3Mgd2UganVzdCB3YW50IHRvIG1ha2Ugc3VyZSB2aWV3Qm94IGlzIGFuaW1hdGFibGUgYW5kIHRyZWF0IGFsbCB0aGUgc3R5bGVzXG4gICAgICogYXMgbm9ybWFsIEhUTUwgdGFncy5cbiAgICAgKi9cbiAgICBpZiAoaXNTVkdUYWcpIHtcbiAgICAgICAgaWYgKHN0YXRlLnN0eWxlLnZpZXdCb3gpIHtcbiAgICAgICAgICAgIHN0YXRlLmF0dHJzLnZpZXdCb3ggPSBzdGF0ZS5zdHlsZS52aWV3Qm94O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3RhdGUuYXR0cnMgPSBzdGF0ZS5zdHlsZTtcbiAgICBzdGF0ZS5zdHlsZSA9IHt9O1xuICAgIGNvbnN0IHsgYXR0cnMsIHN0eWxlIH0gPSBzdGF0ZTtcbiAgICAvKipcbiAgICAgKiBIb3dldmVyLCB3ZSBhcHBseSB0cmFuc2Zvcm1zIGFzIENTUyB0cmFuc2Zvcm1zLlxuICAgICAqIFNvIGlmIHdlIGRldGVjdCBhIHRyYW5zZm9ybSwgdHJhbnNmb3JtT3JpZ2luIHdlIHRha2UgaXQgZnJvbSBhdHRycyBhbmQgY29weSBpdCBpbnRvIHN0eWxlLlxuICAgICAqL1xuICAgIGlmIChhdHRycy50cmFuc2Zvcm0pIHtcbiAgICAgICAgc3R5bGUudHJhbnNmb3JtID0gYXR0cnMudHJhbnNmb3JtO1xuICAgICAgICBkZWxldGUgYXR0cnMudHJhbnNmb3JtO1xuICAgIH1cbiAgICBpZiAoc3R5bGUudHJhbnNmb3JtIHx8IGF0dHJzLnRyYW5zZm9ybU9yaWdpbikge1xuICAgICAgICBzdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSBhdHRycy50cmFuc2Zvcm1PcmlnaW4gPz8gXCI1MCUgNTAlXCI7XG4gICAgICAgIGRlbGV0ZSBhdHRycy50cmFuc2Zvcm1PcmlnaW47XG4gICAgfVxuICAgIGlmIChzdHlsZS50cmFuc2Zvcm0pIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNWRydzIGVsZW1lbnQgdHJhbnNmb3JtLW9yaWdpbiB1c2VzIGl0cyBvd24gbWVkaWFuIGFzIGEgcmVmZXJlbmNlLlxuICAgICAgICAgKiBUaGVyZWZvcmUsIHRyYW5zZm9ybUJveCBiZWNvbWVzIGEgZmlsbC1ib3hcbiAgICAgICAgICovXG4gICAgICAgIHN0eWxlLnRyYW5zZm9ybUJveCA9IHN0eWxlUHJvcD8udHJhbnNmb3JtQm94ID8/IFwiZmlsbC1ib3hcIjtcbiAgICAgICAgZGVsZXRlIGF0dHJzLnRyYW5zZm9ybUJveDtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2YgY3NzTW90aW9uUGF0aFByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKGF0dHJzW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc3R5bGVba2V5XSA9IGF0dHJzW2tleV07XG4gICAgICAgICAgICBkZWxldGUgYXR0cnNba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSZW5kZXIgYXR0clgvYXR0clkvYXR0clNjYWxlIGFzIGF0dHJpYnV0ZXNcbiAgICBpZiAoYXR0clggIT09IHVuZGVmaW5lZClcbiAgICAgICAgYXR0cnMueCA9IGF0dHJYO1xuICAgIGlmIChhdHRyWSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICBhdHRycy55ID0gYXR0clk7XG4gICAgaWYgKGF0dHJTY2FsZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICBhdHRycy5zY2FsZSA9IGF0dHJTY2FsZTtcbiAgICAvLyBCdWlsZCBTVkcgcGF0aCBpZiBvbmUgaGFzIGJlZW4gZGVmaW5lZFxuICAgIGlmIChwYXRoTGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYnVpbGRTVkdQYXRoKGF0dHJzLCBwYXRoTGVuZ3RoLCBwYXRoU3BhY2luZywgcGF0aE9mZnNldCwgZmFsc2UpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgYnVpbGRTVkdBdHRycyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVpbGQtYXR0cnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ camelCaseAttributes: () => (/* binding */ camelCaseAttributes)\n/* harmony export */ });\n/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\n\n//# sourceMappingURL=camel-case-attrs.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9jYW1lbC1jYXNlLWF0dHJzLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvc3ZnL3V0aWxzL2NhbWVsLWNhc2UtYXR0cnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzZXQgb2YgYXR0cmlidXRlIG5hbWVzIHRoYXQgYXJlIGFsd2F5cyByZWFkL3dyaXR0ZW4gYXMgY2FtZWwgY2FzZS5cbiAqL1xuY29uc3QgY2FtZWxDYXNlQXR0cmlidXRlcyA9IG5ldyBTZXQoW1xuICAgIFwiYmFzZUZyZXF1ZW5jeVwiLFxuICAgIFwiZGlmZnVzZUNvbnN0YW50XCIsXG4gICAgXCJrZXJuZWxNYXRyaXhcIixcbiAgICBcImtlcm5lbFVuaXRMZW5ndGhcIixcbiAgICBcImtleVNwbGluZXNcIixcbiAgICBcImtleVRpbWVzXCIsXG4gICAgXCJsaW1pdGluZ0NvbmVBbmdsZVwiLFxuICAgIFwibWFya2VySGVpZ2h0XCIsXG4gICAgXCJtYXJrZXJXaWR0aFwiLFxuICAgIFwibnVtT2N0YXZlc1wiLFxuICAgIFwidGFyZ2V0WFwiLFxuICAgIFwidGFyZ2V0WVwiLFxuICAgIFwic3VyZmFjZVNjYWxlXCIsXG4gICAgXCJzcGVjdWxhckNvbnN0YW50XCIsXG4gICAgXCJzcGVjdWxhckV4cG9uZW50XCIsXG4gICAgXCJzdGREZXZpYXRpb25cIixcbiAgICBcInRhYmxlVmFsdWVzXCIsXG4gICAgXCJ2aWV3Qm94XCIsXG4gICAgXCJncmFkaWVudFRyYW5zZm9ybVwiLFxuICAgIFwicGF0aExlbmd0aFwiLFxuICAgIFwic3RhcnRPZmZzZXRcIixcbiAgICBcInRleHRMZW5ndGhcIixcbiAgICBcImxlbmd0aEFkanVzdFwiLFxuXSk7XG5cbmV4cG9ydCB7IGNhbWVsQ2FzZUF0dHJpYnV0ZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhbWVsLWNhc2UtYXR0cnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGTag: () => (/* binding */ isSVGTag)\n/* harmony export */ });\nconst isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\n\n//# sourceMappingURL=is-svg-tag.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9pcy1zdmctdGFnLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvc3ZnL3V0aWxzL2lzLXN2Zy10YWcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzU1ZHVGFnID0gKHRhZykgPT4gdHlwZW9mIHRhZyA9PT0gXCJzdHJpbmdcIiAmJiB0YWcudG9Mb3dlckNhc2UoKSA9PT0gXCJzdmdcIjtcblxuZXhwb3J0IHsgaXNTVkdUYWcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXN2Zy10YWcubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/path.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/path.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildSVGPath: () => (/* binding */ buildSVGPath)\n/* harmony export */ });\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n *\n * Note: We use unitless values for stroke-dasharray and stroke-dashoffset\n * because Safari incorrectly scales px values when the page is zoomed.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset (unitless to avoid Safari zoom bug)\n attrs[keys.offset] = `${-offset}`;\n // Build the dash array (unitless to avoid Safari zoom bug)\n attrs[keys.array] = `${length} ${spacing}`;\n}\n\n\n//# sourceMappingURL=path.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9wYXRoLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsUUFBUTtBQUNwQztBQUNBLDJCQUEyQixRQUFRLEVBQUUsUUFBUTtBQUM3Qzs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvcGF0aC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZGFzaEtleXMgPSB7XG4gICAgb2Zmc2V0OiBcInN0cm9rZS1kYXNob2Zmc2V0XCIsXG4gICAgYXJyYXk6IFwic3Ryb2tlLWRhc2hhcnJheVwiLFxufTtcbmNvbnN0IGNhbWVsS2V5cyA9IHtcbiAgICBvZmZzZXQ6IFwic3Ryb2tlRGFzaG9mZnNldFwiLFxuICAgIGFycmF5OiBcInN0cm9rZURhc2hhcnJheVwiLFxufTtcbi8qKlxuICogQnVpbGQgU1ZHIHBhdGggcHJvcGVydGllcy4gVXNlcyB0aGUgcGF0aCdzIG1lYXN1cmVkIGxlbmd0aCB0byBjb252ZXJ0XG4gKiBvdXIgY3VzdG9tIHBhdGhMZW5ndGgsIHBhdGhTcGFjaW5nIGFuZCBwYXRoT2Zmc2V0IGludG8gc3Ryb2tlLWRhc2hvZmZzZXRcbiAqIGFuZCBzdHJva2UtZGFzaGFycmF5IGF0dHJpYnV0ZXMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBpcyBtdXRhdGl2ZSB0byByZWR1Y2UgcGVyLWZyYW1lIEdDLlxuICpcbiAqIE5vdGU6IFdlIHVzZSB1bml0bGVzcyB2YWx1ZXMgZm9yIHN0cm9rZS1kYXNoYXJyYXkgYW5kIHN0cm9rZS1kYXNob2Zmc2V0XG4gKiBiZWNhdXNlIFNhZmFyaSBpbmNvcnJlY3RseSBzY2FsZXMgcHggdmFsdWVzIHdoZW4gdGhlIHBhZ2UgaXMgem9vbWVkLlxuICovXG5mdW5jdGlvbiBidWlsZFNWR1BhdGgoYXR0cnMsIGxlbmd0aCwgc3BhY2luZyA9IDEsIG9mZnNldCA9IDAsIHVzZURhc2hDYXNlID0gdHJ1ZSkge1xuICAgIC8vIE5vcm1hbGlzZSBwYXRoIGxlbmd0aCBieSBzZXR0aW5nIFNWRyBhdHRyaWJ1dGUgcGF0aExlbmd0aCB0byAxXG4gICAgYXR0cnMucGF0aExlbmd0aCA9IDE7XG4gICAgLy8gV2UgdXNlIGRhc2ggY2FzZSB3aGVuIHNldHRpbmcgYXR0cmlidXRlcyBkaXJlY3RseSB0byB0aGUgRE9NIG5vZGUgYW5kIGNhbWVsIGNhc2VcbiAgICAvLyB3aGVuIGRlZmluaW5nIHByb3BzIG9uIGEgUmVhY3QgY29tcG9uZW50LlxuICAgIGNvbnN0IGtleXMgPSB1c2VEYXNoQ2FzZSA/IGRhc2hLZXlzIDogY2FtZWxLZXlzO1xuICAgIC8vIEJ1aWxkIHRoZSBkYXNoIG9mZnNldCAodW5pdGxlc3MgdG8gYXZvaWQgU2FmYXJpIHpvb20gYnVnKVxuICAgIGF0dHJzW2tleXMub2Zmc2V0XSA9IGAkey1vZmZzZXR9YDtcbiAgICAvLyBCdWlsZCB0aGUgZGFzaCBhcnJheSAodW5pdGxlc3MgdG8gYXZvaWQgU2FmYXJpIHpvb20gYnVnKVxuICAgIGF0dHJzW2tleXMuYXJyYXldID0gYCR7bGVuZ3RofSAke3NwYWNpbmd9YDtcbn1cblxuZXhwb3J0IHsgYnVpbGRTVkdQYXRoIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYXRoLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/path.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/render.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/render.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ renderSVG: () => (/* binding */ renderSVG)\n/* harmony export */ });\n/* harmony import */ var _dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dom/utils/camel-to-dash.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\");\n/* harmony import */ var _html_utils_render_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/render.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs\");\n/* harmony import */ var _camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./camel-case-attrs.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs\");\n\n\n\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n (0,_html_utils_render_mjs__WEBPACK_IMPORTED_MODULE_0__.renderHTML)(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_1__.camelCaseAttributes.has(key) ? (0,_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_2__.camelToDash)(key) : key, renderState.attrs[key]);\n }\n}\n\n\n//# sourceMappingURL=render.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9yZW5kZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZ0U7QUFDUDtBQUNJOztBQUU3RDtBQUNBLElBQUksa0VBQVU7QUFDZDtBQUNBLDhCQUE4QixzRUFBbUIsWUFBWSx5RUFBVztBQUN4RTtBQUNBOztBQUVxQjtBQUNyQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9yZW5kZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbWVsVG9EYXNoIH0gZnJvbSAnLi4vLi4vZG9tL3V0aWxzL2NhbWVsLXRvLWRhc2gubWpzJztcbmltcG9ydCB7IHJlbmRlckhUTUwgfSBmcm9tICcuLi8uLi9odG1sL3V0aWxzL3JlbmRlci5tanMnO1xuaW1wb3J0IHsgY2FtZWxDYXNlQXR0cmlidXRlcyB9IGZyb20gJy4vY2FtZWwtY2FzZS1hdHRycy5tanMnO1xuXG5mdW5jdGlvbiByZW5kZXJTVkcoZWxlbWVudCwgcmVuZGVyU3RhdGUsIF9zdHlsZVByb3AsIHByb2plY3Rpb24pIHtcbiAgICByZW5kZXJIVE1MKGVsZW1lbnQsIHJlbmRlclN0YXRlLCB1bmRlZmluZWQsIHByb2plY3Rpb24pO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHJlbmRlclN0YXRlLmF0dHJzKSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCFjYW1lbENhc2VBdHRyaWJ1dGVzLmhhcyhrZXkpID8gY2FtZWxUb0Rhc2goa2V5KSA6IGtleSwgcmVuZGVyU3RhdGUuYXR0cnNba2V5XSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyByZW5kZXJTVkcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbmRlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/render.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ scrapeMotionValuesFromProps: () => (/* binding */ scrapeMotionValuesFromProps)\n/* harmony export */ });\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _html_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/scrape-motion-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\");\n\n\n\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = (0,_html_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_0__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\n for (const key in props) {\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(props[key]) ||\n (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(prevProps[key])) {\n const targetKey = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\n\n//# sourceMappingURL=scrape-motion-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9zY3JhcGUtbW90aW9uLXZhbHVlcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUF5RTtBQUNMO0FBQ3FEOztBQUV6SDtBQUNBLHNCQUFzQixpR0FBNkI7QUFDbkQ7QUFDQSxZQUFZLCtFQUFhO0FBQ3pCLFlBQVksK0VBQWE7QUFDekIsOEJBQThCLHlFQUFrQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFdUM7QUFDdkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvc2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTW90aW9uVmFsdWUgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS91dGlscy9pcy1tb3Rpb24tdmFsdWUubWpzJztcbmltcG9ydCB7IHRyYW5zZm9ybVByb3BPcmRlciB9IGZyb20gJy4uLy4uL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgYXMgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzJDEgfSBmcm9tICcuLi8uLi9odG1sL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcyc7XG5cbmZ1bmN0aW9uIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywgcHJldlByb3BzLCB2aXN1YWxFbGVtZW50KSB7XG4gICAgY29uc3QgbmV3VmFsdWVzID0gc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzJDEocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gcHJvcHMpIHtcbiAgICAgICAgaWYgKGlzTW90aW9uVmFsdWUocHJvcHNba2V5XSkgfHxcbiAgICAgICAgICAgIGlzTW90aW9uVmFsdWUocHJldlByb3BzW2tleV0pKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRLZXkgPSB0cmFuc2Zvcm1Qcm9wT3JkZXIuaW5kZXhPZihrZXkpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gXCJhdHRyXCIgKyBrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc3Vic3RyaW5nKDEpXG4gICAgICAgICAgICAgICAgOiBrZXk7XG4gICAgICAgICAgICBuZXdWYWx1ZXNbdGFyZ2V0S2V5XSA9IHByb3BzW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1ZhbHVlcztcbn1cblxuZXhwb3J0IHsgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY3JhcGUtbW90aW9uLXZhbHVlcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/animation-state.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/animation-state.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkVariantsDidChange: () => (/* binding */ checkVariantsDidChange),\n/* harmony export */ createAnimationState: () => (/* binding */ createAnimationState)\n/* harmony export */ });\n/* harmony import */ var _animation_interfaces_visual_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/interfaces/visual-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs\");\n/* harmony import */ var _animation_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../animation/utils/calc-child-stagger.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs\");\n/* harmony import */ var _get_variant_context_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./get-variant-context.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs\");\n/* harmony import */ var _is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./is-animation-controls.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n/* harmony import */ var _is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./is-keyframes-target.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs\");\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./shallow-compare.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variant-props.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\");\n\n\n\n\n\n\n\n\n\n\nconst reversePriorityOrder = [..._variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantPriorityOrder].reverse();\nconst numAnimationTypes = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantPriorityOrder.length;\nfunction createAnimateFunction(visualElement) {\n return (animations) => {\n return Promise.all(animations.map(({ animation, options }) => (0,_animation_interfaces_visual_element_mjs__WEBPACK_IMPORTED_MODULE_1__.animateVisualElement)(visualElement, animation, options)));\n };\n}\nfunction createAnimationState(visualElement) {\n let animate = createAnimateFunction(visualElement);\n let state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (type) => (acc, definition) => {\n const resolved = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, definition, type === \"exit\"\n ? visualElement.presenceContext?.custom\n : undefined);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(changedActiveType) {\n const { props } = visualElement;\n const context = (0,_get_variant_context_mjs__WEBPACK_IMPORTED_MODULE_3__.getVariantContext)(visualElement.parent) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined\n ? props[type]\n : context[type];\n const propIsVariant = (0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_4__.isVariantLabel)(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] &&\n prop !== props[type] &&\n propIsVariant;\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n (0,_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_5__.isAnimationControls)(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * If exit is already active and wasn't just activated, skip\n * re-processing to prevent interrupting running exit animations.\n * Re-resolving exit with a changed custom value can start new\n * value animations that stop the originals, leaving the exit\n * animation promise unresolved and the component stuck in the DOM.\n */\n if (type === \"exit\" && typeState.isActive && activeDelta !== true) {\n if (typeState.prevResolvedValues) {\n encounteredKeys = {\n ...encounteredKeys,\n ...typeState.prevResolvedValues,\n };\n }\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n let handledRemovedValues = false;\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n if (removedKeys.has(key)) {\n handledRemovedValues = true;\n removedKeys.delete(key);\n }\n typeState.needsAnimating[key] = true;\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = false;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n let valueHasChanged = false;\n if ((0,_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__.isKeyframesTarget)(next) && (0,_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__.isKeyframesTarget)(prev)) {\n valueHasChanged = !(0,_shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__.shallowCompare)(next, prev);\n }\n else {\n valueHasChanged = next !== prev;\n }\n if (valueHasChanged) {\n if (next !== undefined && next !== null) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to skip this animation\n * unless the inherited variants haven't changed on this render.\n */\n const willAnimateViaParent = isInherited && variantDidChange;\n const needsAnimating = !willAnimateViaParent || handledRemovedValues;\n if (shouldAnimateType && needsAnimating) {\n animations.push(...definitionList.map((animation) => {\n const options = { type };\n /**\n * If we're performing the initial animation, but we're not\n * rendering at the same time as the variant-controlling parent,\n * we want to use the parent's transition to calculate the stagger.\n */\n if (typeof animation === \"string\" &&\n isInitialRender &&\n !willAnimateViaParent &&\n visualElement.manuallyAnimateOnMount &&\n visualElement.parent) {\n const { parent } = visualElement;\n const parentVariant = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(parent, animation);\n if (parent.enteringChildren && parentVariant) {\n const { delayChildren } = parentVariant.transition || {};\n options.delay = (0,_animation_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_8__.calcChildStagger)(parent.enteringChildren, visualElement, delayChildren);\n }\n }\n return {\n animation: animation,\n options,\n };\n }));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n /**\n * If the initial prop contains a transition we can use that, otherwise\n * allow the animation function to use the visual element's default.\n */\n if (typeof props.initial !== \"boolean\") {\n const initialTransition = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, Array.isArray(props.initial)\n ? props.initial[0]\n : props.initial);\n if (initialTransition && initialTransition.transition) {\n fallbackAnimation.transition = initialTransition.transition;\n }\n }\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = true;\n // @ts-expect-error - @mattgperry to figure if we should do something here\n fallbackAnimation[key] = fallbackTarget ?? null;\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n (props.initial === false || props.initial === props.animate) &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive) {\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n visualElement.variantChildren?.forEach((child) => child.animationState?.setActive(type, isActive));\n state[type].isActive = isActive;\n const animations = animateChanges(type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n reset: () => {\n state = createState();\n /**\n * Temporarily disabling resetting this flag as it prevents components\n * with initial={false} from animating after being remounted, for instance\n * as the child of an Activity component.\n */\n // isInitialRender = true\n },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !(0,_shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__.shallowCompare)(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\n\n//# sourceMappingURL=animation-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2FuaW1hdGlvbi1zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBcUY7QUFDTDtBQUNsQjtBQUNJO0FBQ0o7QUFDTjtBQUNRO0FBQ1Q7QUFDSTs7QUFFM0QsaUNBQWlDLG9FQUFvQjtBQUNyRCwwQkFBMEIsb0VBQW9CO0FBQzlDO0FBQ0E7QUFDQSw2Q0FBNkMsb0JBQW9CLEtBQUssOEZBQW9CO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsNkVBQWM7QUFDdkM7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHVDQUF1QztBQUMzRCxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFFBQVE7QUFDeEIsd0JBQXdCLDJFQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsdUJBQXVCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MscUVBQWM7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsK0VBQW1CO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0ZBQXdGO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMEJBQTBCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDJFQUFpQixVQUFVLDJFQUFpQjtBQUNoRSx1Q0FBdUMsb0VBQWM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxTQUFTO0FBQ3pDLDhDQUE4Qyw2RUFBYztBQUM1RDtBQUNBLG9DQUFvQyxnQkFBZ0I7QUFDcEQsNENBQTRDLHlGQUFnQjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyw2RUFBYztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYiw4QkFBOEIsOEJBQThCO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsT0FBTztBQUNwQztBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isb0VBQWM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLDBCQUEwQjtBQUMxQiw4QkFBOEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXdEO0FBQ3hEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvYW5pbWF0aW9uLXN0YXRlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlVmlzdWFsRWxlbWVudCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi9pbnRlcmZhY2VzL3Zpc3VhbC1lbGVtZW50Lm1qcyc7XG5pbXBvcnQgeyBjYWxjQ2hpbGRTdGFnZ2VyIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL3V0aWxzL2NhbGMtY2hpbGQtc3RhZ2dlci5tanMnO1xuaW1wb3J0IHsgZ2V0VmFyaWFudENvbnRleHQgfSBmcm9tICcuL2dldC12YXJpYW50LWNvbnRleHQubWpzJztcbmltcG9ydCB7IGlzQW5pbWF0aW9uQ29udHJvbHMgfSBmcm9tICcuL2lzLWFuaW1hdGlvbi1jb250cm9scy5tanMnO1xuaW1wb3J0IHsgaXNLZXlmcmFtZXNUYXJnZXQgfSBmcm9tICcuL2lzLWtleWZyYW1lcy10YXJnZXQubWpzJztcbmltcG9ydCB7IGlzVmFyaWFudExhYmVsIH0gZnJvbSAnLi9pcy12YXJpYW50LWxhYmVsLm1qcyc7XG5pbXBvcnQgeyByZXNvbHZlVmFyaWFudCB9IGZyb20gJy4vcmVzb2x2ZS1keW5hbWljLXZhcmlhbnRzLm1qcyc7XG5pbXBvcnQgeyBzaGFsbG93Q29tcGFyZSB9IGZyb20gJy4vc2hhbGxvdy1jb21wYXJlLm1qcyc7XG5pbXBvcnQgeyB2YXJpYW50UHJpb3JpdHlPcmRlciB9IGZyb20gJy4vdmFyaWFudC1wcm9wcy5tanMnO1xuXG5jb25zdCByZXZlcnNlUHJpb3JpdHlPcmRlciA9IFsuLi52YXJpYW50UHJpb3JpdHlPcmRlcl0ucmV2ZXJzZSgpO1xuY29uc3QgbnVtQW5pbWF0aW9uVHlwZXMgPSB2YXJpYW50UHJpb3JpdHlPcmRlci5sZW5ndGg7XG5mdW5jdGlvbiBjcmVhdGVBbmltYXRlRnVuY3Rpb24odmlzdWFsRWxlbWVudCkge1xuICAgIHJldHVybiAoYW5pbWF0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoYW5pbWF0aW9ucy5tYXAoKHsgYW5pbWF0aW9uLCBvcHRpb25zIH0pID0+IGFuaW1hdGVWaXN1YWxFbGVtZW50KHZpc3VhbEVsZW1lbnQsIGFuaW1hdGlvbiwgb3B0aW9ucykpKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uU3RhdGUodmlzdWFsRWxlbWVudCkge1xuICAgIGxldCBhbmltYXRlID0gY3JlYXRlQW5pbWF0ZUZ1bmN0aW9uKHZpc3VhbEVsZW1lbnQpO1xuICAgIGxldCBzdGF0ZSA9IGNyZWF0ZVN0YXRlKCk7XG4gICAgbGV0IGlzSW5pdGlhbFJlbmRlciA9IHRydWU7XG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHVzZWQgdG8gcmVkdWNlIHRoZSBhbmltYXRpb24gZGVmaW5pdGlvbnMgZm9yXG4gICAgICogZWFjaCBhY3RpdmUgYW5pbWF0aW9uIHR5cGUgaW50byBhbiBvYmplY3Qgb2YgcmVzb2x2ZWQgdmFsdWVzIGZvciBpdC5cbiAgICAgKi9cbiAgICBjb25zdCBidWlsZFJlc29sdmVkVHlwZVZhbHVlcyA9ICh0eXBlKSA9PiAoYWNjLCBkZWZpbml0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgZGVmaW5pdGlvbiwgdHlwZSA9PT0gXCJleGl0XCJcbiAgICAgICAgICAgID8gdmlzdWFsRWxlbWVudC5wcmVzZW5jZUNvbnRleHQ/LmN1c3RvbVxuICAgICAgICAgICAgOiB1bmRlZmluZWQpO1xuICAgICAgICBpZiAocmVzb2x2ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdHJhbnNpdGlvbiwgdHJhbnNpdGlvbkVuZCwgLi4udGFyZ2V0IH0gPSByZXNvbHZlZDtcbiAgICAgICAgICAgIGFjYyA9IHsgLi4uYWNjLCAuLi50YXJnZXQsIC4uLnRyYW5zaXRpb25FbmQgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogVGhpcyBqdXN0IGFsbG93cyB1cyB0byBpbmplY3QgbW9ja2VkIGFuaW1hdGlvbiBmdW5jdGlvbnNcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXRBbmltYXRlRnVuY3Rpb24obWFrZUFuaW1hdG9yKSB7XG4gICAgICAgIGFuaW1hdGUgPSBtYWtlQW5pbWF0b3IodmlzdWFsRWxlbWVudCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdoZW4gd2UgcmVjZWl2ZSBuZXcgcHJvcHMsIHdlIG5lZWQgdG86XG4gICAgICogMS4gQ3JlYXRlIGEgbGlzdCBvZiBwcm90ZWN0ZWQga2V5cyBmb3IgZWFjaCB0eXBlLiBUaGlzIGlzIGEgZGlyZWN0b3J5IG9mXG4gICAgICogICAgdmFsdWUga2V5cyB0aGF0IGFyZSBjdXJyZW50bHkgYmVpbmcgXCJoYW5kbGVkXCIgYnkgdHlwZXMgb2YgYSBoaWdoZXIgcHJpb3JpdHlcbiAgICAgKiAgICBzbyB0aGF0IHdoZW5ldmVyIGFuIGFuaW1hdGlvbiBpcyBwbGF5ZWQgb2YgYSBnaXZlbiB0eXBlLCB0aGVzZSB2YWx1ZXMgYXJlXG4gICAgICogICAgcHJvdGVjdGVkIGZyb20gYmVpbmcgYW5pbWF0ZWQuXG4gICAgICogMi4gRGV0ZXJtaW5lIGlmIGFuIGFuaW1hdGlvbiB0eXBlIG5lZWRzIGFuaW1hdGluZy5cbiAgICAgKiAzLiBEZXRlcm1pbmUgaWYgYW55IHZhbHVlcyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIGEgdHlwZSBhbmQgZmlndXJlIG91dFxuICAgICAqICAgIHdoYXQgdG8gYW5pbWF0ZSB0aG9zZSB0by5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhbmltYXRlQ2hhbmdlcyhjaGFuZ2VkQWN0aXZlVHlwZSkge1xuICAgICAgICBjb25zdCB7IHByb3BzIH0gPSB2aXN1YWxFbGVtZW50O1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gZ2V0VmFyaWFudENvbnRleHQodmlzdWFsRWxlbWVudC5wYXJlbnQpIHx8IHt9O1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBsaXN0IG9mIGFuaW1hdGlvbnMgdGhhdCB3ZSdsbCBidWlsZCBpbnRvIGFzIHdlIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYW5pbWF0aW9uXG4gICAgICAgICAqIHR5cGVzLiBUaGlzIHdpbGwgZ2V0IGV4ZWN1dGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgYW5pbWF0aW9ucyA9IFtdO1xuICAgICAgICAvKipcbiAgICAgICAgICogS2VlcCB0cmFjayBvZiB3aGljaCB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQuIFRoZW4sIGFzIHdlIGhpdCBsb3dlciBwcmlvcml0eVxuICAgICAgICAgKiBhbmltYXRpb24gdHlwZXMsIHdlIGNhbiBjaGVjayBpZiB0aGV5IGNvbnRhaW4gcmVtb3ZlZCB2YWx1ZXMgYW5kIGFuaW1hdGUgdG8gdGhhdC5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHJlbW92ZWRLZXlzID0gbmV3IFNldCgpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBkaWN0aW9uYXJ5IG9mIGFsbCBlbmNvdW50ZXJlZCBrZXlzLiBUaGlzIGlzIGFuIG9iamVjdCB0byBsZXQgdXMgYnVpbGQgaW50byBhbmRcbiAgICAgICAgICogY29weSBpdCB3aXRob3V0IGl0ZXJhdGlvbi4gRWFjaCB0aW1lIHdlIGhpdCBhbiBhbmltYXRpb24gdHlwZSB3ZSBzZXQgaXRzIHByb3RlY3RlZFxuICAgICAgICAgKiBrZXlzIC0gdGhlIGtleXMgaXRzIG5vdCBhbGxvd2VkIHRvIGFuaW1hdGUgLSB0byB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgZW5jb3VudGVyZWRLZXlzID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBhIHZhcmlhbnQgaGFzIGJlZW4gcmVtb3ZlZCBhdCBhIGdpdmVuIGluZGV4LCBhbmQgdGhpcyBjb21wb25lbnQgaXMgY29udHJvbGxpbmdcbiAgICAgICAgICogdmFyaWFudCBhbmltYXRpb25zLCB3ZSB3YW50IHRvIGVuc3VyZSBsb3dlci1wcmlvcml0eSB2YXJpYW50cyBhcmUgZm9yY2VkIHRvIGFuaW1hdGUuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgcmVtb3ZlZFZhcmlhbnRJbmRleCA9IEluZmluaXR5O1xuICAgICAgICAvKipcbiAgICAgICAgICogSXRlcmF0ZSB0aHJvdWdoIGFsbCBhbmltYXRpb24gdHlwZXMgaW4gcmV2ZXJzZSBwcmlvcml0eSBvcmRlci4gRm9yIGVhY2gsIHdlIHdhbnQgdG9cbiAgICAgICAgICogZGV0ZWN0IHdoaWNoIHZhbHVlcyBpdCdzIGhhbmRsaW5nIGFuZCB3aGV0aGVyIG9yIG5vdCB0aGV5J3ZlIGNoYW5nZWQgKGFuZCB0aGVyZWZvcmVcbiAgICAgICAgICogbmVlZCB0byBiZSBhbmltYXRlZCkuIElmIGFueSB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQsIHdlIHdhbnQgdG8gZGV0ZWN0IHRob3NlIGluXG4gICAgICAgICAqIGxvd2VyIHByaW9yaXR5IHByb3BzIGFuZCBmbGFnIGZvciBhbmltYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUFuaW1hdGlvblR5cGVzOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSByZXZlcnNlUHJpb3JpdHlPcmRlcltpXTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVTdGF0ZSA9IHN0YXRlW3R5cGVdO1xuICAgICAgICAgICAgY29uc3QgcHJvcCA9IHByb3BzW3R5cGVdICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHByb3BzW3R5cGVdXG4gICAgICAgICAgICAgICAgOiBjb250ZXh0W3R5cGVdO1xuICAgICAgICAgICAgY29uc3QgcHJvcElzVmFyaWFudCA9IGlzVmFyaWFudExhYmVsKHByb3ApO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIHR5cGUgaGFzICpqdXN0KiBjaGFuZ2VkIGlzQWN0aXZlIHN0YXR1cywgc2V0IGFjdGl2ZURlbHRhXG4gICAgICAgICAgICAgKiB0byB0aGF0IHN0YXR1cy4gT3RoZXJ3aXNlIHNldCB0byBudWxsLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVEZWx0YSA9IHR5cGUgPT09IGNoYW5nZWRBY3RpdmVUeXBlID8gdHlwZVN0YXRlLmlzQWN0aXZlIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChhY3RpdmVEZWx0YSA9PT0gZmFsc2UpXG4gICAgICAgICAgICAgICAgcmVtb3ZlZFZhcmlhbnRJbmRleCA9IGk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoaXMgcHJvcCBpcyBhbiBpbmhlcml0ZWQgdmFyaWFudCwgcmF0aGVyIHRoYW4gYmVlbiBzZXQgZGlyZWN0bHkgb24gdGhlXG4gICAgICAgICAgICAgKiBjb21wb25lbnQgaXRzZWxmLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB3ZSBhbGxvdyB0aGUgcGFyZW50IHRvIHRyaWdnZXIgYW5pbWF0aW9ucy5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBUT0RPOiBDYW4gcHJvYmFibHkgY2hhbmdlIHRoaXMgdG8gYSAhaXNDb250cm9sbGluZ1ZhcmlhbnRzIGNoZWNrXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxldCBpc0luaGVyaXRlZCA9IHByb3AgPT09IGNvbnRleHRbdHlwZV0gJiZcbiAgICAgICAgICAgICAgICBwcm9wICE9PSBwcm9wc1t0eXBlXSAmJlxuICAgICAgICAgICAgICAgIHByb3BJc1ZhcmlhbnQ7XG4gICAgICAgICAgICBpZiAoaXNJbmhlcml0ZWQgJiZcbiAgICAgICAgICAgICAgICBpc0luaXRpYWxSZW5kZXIgJiZcbiAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50Lm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQpIHtcbiAgICAgICAgICAgICAgICBpc0luaGVyaXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBTZXQgYWxsIGVuY291bnRlcmVkIGtleXMgc28gZmFyIGFzIHRoZSBwcm90ZWN0ZWQga2V5cyBmb3IgdGhpcyB0eXBlLiBUaGlzIHdpbGxcbiAgICAgICAgICAgICAqIGJlIGFueSBrZXkgdGhhdCBoYXMgYmVlbiBhbmltYXRlZCBvciBvdGhlcndpc2UgaGFuZGxlZCBieSBhY3RpdmUsIGhpZ2hlci1wcmlvcnRpeSB0eXBlcy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdHlwZVN0YXRlLnByb3RlY3RlZEtleXMgPSB7IC4uLmVuY291bnRlcmVkS2V5cyB9O1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgd2UgY2FuIHNraXAgYW5hbHlzaW5nIHRoaXMgcHJvcCBlYXJseVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgLy8gSWYgaXQgaXNuJ3QgYWN0aXZlIGFuZCBoYXNuJ3QgKmp1c3QqIGJlZW4gc2V0IGFzIGluYWN0aXZlXG4gICAgICAgICAgICAoIXR5cGVTdGF0ZS5pc0FjdGl2ZSAmJiBhY3RpdmVEZWx0YSA9PT0gbnVsbCkgfHxcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSBkaWRuJ3QgYW5kIGRvbid0IGhhdmUgYW55IGRlZmluZWQgcHJvcCBmb3IgdGhpcyBhbmltYXRpb24gdHlwZVxuICAgICAgICAgICAgICAgICghcHJvcCAmJiAhdHlwZVN0YXRlLnByZXZQcm9wKSB8fFxuICAgICAgICAgICAgICAgIC8vIE9yIGlmIHRoZSBwcm9wIGRvZXNuJ3QgZGVmaW5lIGFuIGFuaW1hdGlvblxuICAgICAgICAgICAgICAgIGlzQW5pbWF0aW9uQ29udHJvbHMocHJvcCkgfHxcbiAgICAgICAgICAgICAgICB0eXBlb2YgcHJvcCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgZXhpdCBpcyBhbHJlYWR5IGFjdGl2ZSBhbmQgd2Fzbid0IGp1c3QgYWN0aXZhdGVkLCBza2lwXG4gICAgICAgICAgICAgKiByZS1wcm9jZXNzaW5nIHRvIHByZXZlbnQgaW50ZXJydXB0aW5nIHJ1bm5pbmcgZXhpdCBhbmltYXRpb25zLlxuICAgICAgICAgICAgICogUmUtcmVzb2x2aW5nIGV4aXQgd2l0aCBhIGNoYW5nZWQgY3VzdG9tIHZhbHVlIGNhbiBzdGFydCBuZXdcbiAgICAgICAgICAgICAqIHZhbHVlIGFuaW1hdGlvbnMgdGhhdCBzdG9wIHRoZSBvcmlnaW5hbHMsIGxlYXZpbmcgdGhlIGV4aXRcbiAgICAgICAgICAgICAqIGFuaW1hdGlvbiBwcm9taXNlIHVucmVzb2x2ZWQgYW5kIHRoZSBjb21wb25lbnQgc3R1Y2sgaW4gdGhlIERPTS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09IFwiZXhpdFwiICYmIHR5cGVTdGF0ZS5pc0FjdGl2ZSAmJiBhY3RpdmVEZWx0YSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlU3RhdGUucHJldlJlc29sdmVkVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuY291bnRlcmVkS2V5cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmVuY291bnRlcmVkS2V5cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnR5cGVTdGF0ZS5wcmV2UmVzb2x2ZWRWYWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBcyB3ZSBnbyBsb29rIHRocm91Z2ggdGhlIHZhbHVlcyBkZWZpbmVkIG9uIHRoaXMgdHlwZSwgaWYgd2UgZGV0ZWN0XG4gICAgICAgICAgICAgKiBhIGNoYW5nZWQgdmFsdWUgb3IgYSB2YWx1ZSB0aGF0IHdhcyByZW1vdmVkIGluIGEgaGlnaGVyIHByaW9yaXR5LCB3ZSBzZXRcbiAgICAgICAgICAgICAqIHRoaXMgdG8gdHJ1ZSBhbmQgYWRkIHRoaXMgcHJvcCB0byB0aGUgYW5pbWF0aW9uIGxpc3QuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnREaWRDaGFuZ2UgPSBjaGVja1ZhcmlhbnRzRGlkQ2hhbmdlKHR5cGVTdGF0ZS5wcmV2UHJvcCwgcHJvcCk7XG4gICAgICAgICAgICBsZXQgc2hvdWxkQW5pbWF0ZVR5cGUgPSB2YXJpYW50RGlkQ2hhbmdlIHx8XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgbWFraW5nIHRoaXMgdmFyaWFudCBhY3RpdmUsIHdlIHdhbnQgdG8gYWx3YXlzIG1ha2UgaXQgYWN0aXZlXG4gICAgICAgICAgICAgICAgKHR5cGUgPT09IGNoYW5nZWRBY3RpdmVUeXBlICYmXG4gICAgICAgICAgICAgICAgICAgIHR5cGVTdGF0ZS5pc0FjdGl2ZSAmJlxuICAgICAgICAgICAgICAgICAgICAhaXNJbmhlcml0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgcHJvcElzVmFyaWFudCkgfHxcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZW1vdmVkIGEgaGlnaGVyLXByaW9yaXR5IHZhcmlhbnQgKGkgaXMgaW4gcmV2ZXJzZSBvcmRlcilcbiAgICAgICAgICAgICAgICAoaSA+IHJlbW92ZWRWYXJpYW50SW5kZXggJiYgcHJvcElzVmFyaWFudCk7XG4gICAgICAgICAgICBsZXQgaGFuZGxlZFJlbW92ZWRWYWx1ZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQXMgYW5pbWF0aW9ucyBjYW4gYmUgc2V0IGFzIHZhcmlhbnQgbGlzdHMsIHZhcmlhbnRzIG9yIHRhcmdldCBvYmplY3RzLCB3ZVxuICAgICAgICAgICAgICogY29lcmNlIGV2ZXJ5dGhpbmcgdG8gYW4gYXJyYXkgaWYgaXQgaXNuJ3Qgb25lIGFscmVhZHlcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgZGVmaW5pdGlvbkxpc3QgPSBBcnJheS5pc0FycmF5KHByb3ApID8gcHJvcCA6IFtwcm9wXTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQnVpbGQgYW4gb2JqZWN0IG9mIGFsbCB0aGUgcmVzb2x2ZWQgdmFsdWVzLiBXZSdsbCB1c2UgdGhpcyBpbiB0aGUgc3Vic2VxdWVudFxuICAgICAgICAgICAgICogYW5pbWF0ZUNoYW5nZXMgY2FsbHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSB2YWx1ZSBoYXMgY2hhbmdlZC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGV0IHJlc29sdmVkVmFsdWVzID0gZGVmaW5pdGlvbkxpc3QucmVkdWNlKGJ1aWxkUmVzb2x2ZWRUeXBlVmFsdWVzKHR5cGUpLCB7fSk7XG4gICAgICAgICAgICBpZiAoYWN0aXZlRGVsdGEgPT09IGZhbHNlKVxuICAgICAgICAgICAgICAgIHJlc29sdmVkVmFsdWVzID0ge307XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE5vdyB3ZSBuZWVkIHRvIGxvb3AgdGhyb3VnaCBhbGwgdGhlIGtleXMgaW4gdGhlIHByZXYgcHJvcCBhbmQgdGhpcyBwcm9wLFxuICAgICAgICAgICAgICogYW5kIGRlY2lkZTpcbiAgICAgICAgICAgICAqIDEuIElmIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZCwgYW5kIG5lZWRzIGFuaW1hdGluZ1xuICAgICAgICAgICAgICogMi4gSWYgaXQgaGFzIGJlZW4gcmVtb3ZlZCwgYW5kIG5lZWRzIGFkZGluZyB0byB0aGUgcmVtb3ZlZEtleXMgc2V0XG4gICAgICAgICAgICAgKiAzLiBJZiBpdCBoYXMgYmVlbiByZW1vdmVkIGluIGEgaGlnaGVyIHByaW9yaXR5IHR5cGUgYW5kIG5lZWRzIGFuaW1hdGluZ1xuICAgICAgICAgICAgICogNC4gSWYgaXQgaGFzbid0IGJlZW4gcmVtb3ZlZCBpbiBhIGhpZ2hlciBwcmlvcml0eSBidXQgaGFzbid0IGNoYW5nZWQsIGFuZFxuICAgICAgICAgICAgICogICAgbmVlZHMgYWRkaW5nIHRvIHRoZSB0eXBlJ3MgcHJvdGVjdGVkS2V5cyBsaXN0LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCB7IHByZXZSZXNvbHZlZFZhbHVlcyA9IHt9IH0gPSB0eXBlU3RhdGU7XG4gICAgICAgICAgICBjb25zdCBhbGxLZXlzID0ge1xuICAgICAgICAgICAgICAgIC4uLnByZXZSZXNvbHZlZFZhbHVlcyxcbiAgICAgICAgICAgICAgICAuLi5yZXNvbHZlZFZhbHVlcyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBtYXJrVG9BbmltYXRlID0gKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHNob3VsZEFuaW1hdGVUeXBlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAocmVtb3ZlZEtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlZFJlbW92ZWRWYWx1ZXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVkS2V5cy5kZWxldGUoa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHlwZVN0YXRlLm5lZWRzQW5pbWF0aW5nW2tleV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vdGlvblZhbHVlID0gdmlzdWFsRWxlbWVudC5nZXRWYWx1ZShrZXkpO1xuICAgICAgICAgICAgICAgIGlmIChtb3Rpb25WYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgbW90aW9uVmFsdWUubGl2ZVN0eWxlID0gZmFsc2U7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYWxsS2V5cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSByZXNvbHZlZFZhbHVlc1trZXldO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXYgPSBwcmV2UmVzb2x2ZWRWYWx1ZXNba2V5XTtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGhhbmRsZWQgdGhpcyB3ZSBjYW4ganVzdCBza2lwIGFoZWFkXG4gICAgICAgICAgICAgICAgaWYgKGVuY291bnRlcmVkS2V5cy5oYXNPd25Qcm9wZXJ0eShrZXkpKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQsIHdlIHByb2JhYmx5IHdhbnQgdG8gYW5pbWF0ZSBpdC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVIYXNDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKGlzS2V5ZnJhbWVzVGFyZ2V0KG5leHQpICYmIGlzS2V5ZnJhbWVzVGFyZ2V0KHByZXYpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlSGFzQ2hhbmdlZCA9ICFzaGFsbG93Q29tcGFyZShuZXh0LCBwcmV2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlSGFzQ2hhbmdlZCA9IG5leHQgIT09IHByZXY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUhhc0NoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgIT09IHVuZGVmaW5lZCAmJiBuZXh0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBuZXh0IGlzIGRlZmluZWQgYW5kIGRvZXNuJ3QgZXF1YWwgcHJldiwgaXQgbmVlZHMgYW5pbWF0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJrVG9BbmltYXRlKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBpdCdzIHVuZGVmaW5lZCwgaXQncyBiZWVuIHJlbW92ZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVkS2V5cy5hZGQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChuZXh0ICE9PSB1bmRlZmluZWQgJiYgcmVtb3ZlZEtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIG5leHQgaGFzbid0IGNoYW5nZWQgYW5kIGl0IGlzbid0IHVuZGVmaW5lZCwgd2Ugd2FudCB0byBjaGVjayBpZiBpdCdzXG4gICAgICAgICAgICAgICAgICAgICAqIGJlZW4gcmVtb3ZlZCBieSBhIGhpZ2hlciBwcmlvcml0eVxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgbWFya1RvQW5pbWF0ZShrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIGl0IGhhc24ndCBjaGFuZ2VkLCB3ZSBhZGQgaXQgdG8gdGhlIGxpc3Qgb2YgcHJvdGVjdGVkIHZhbHVlc1xuICAgICAgICAgICAgICAgICAgICAgKiB0byBlbnN1cmUgaXQgZG9lc24ndCBnZXQgYW5pbWF0ZWQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICB0eXBlU3RhdGUucHJvdGVjdGVkS2V5c1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFVwZGF0ZSB0aGUgdHlwZVN0YXRlIHNvIG5leHQgdGltZSBhbmltYXRlQ2hhbmdlcyBpcyBjYWxsZWQgd2UgY2FuIGNvbXBhcmUgdGhlXG4gICAgICAgICAgICAgKiBsYXRlc3QgcHJvcCBhbmQgcmVzb2x2ZWRWYWx1ZXMgdG8gdGhlc2UuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHR5cGVTdGF0ZS5wcmV2UHJvcCA9IHByb3A7XG4gICAgICAgICAgICB0eXBlU3RhdGUucHJldlJlc29sdmVkVmFsdWVzID0gcmVzb2x2ZWRWYWx1ZXM7XG4gICAgICAgICAgICBpZiAodHlwZVN0YXRlLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgZW5jb3VudGVyZWRLZXlzID0geyAuLi5lbmNvdW50ZXJlZEtleXMsIC4uLnJlc29sdmVkVmFsdWVzIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJbml0aWFsUmVuZGVyICYmIHZpc3VhbEVsZW1lbnQuYmxvY2tJbml0aWFsQW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgc2hvdWxkQW5pbWF0ZVR5cGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhbiBpbmhlcml0ZWQgcHJvcCB3ZSB3YW50IHRvIHNraXAgdGhpcyBhbmltYXRpb25cbiAgICAgICAgICAgICAqIHVubGVzcyB0aGUgaW5oZXJpdGVkIHZhcmlhbnRzIGhhdmVuJ3QgY2hhbmdlZCBvbiB0aGlzIHJlbmRlci5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3Qgd2lsbEFuaW1hdGVWaWFQYXJlbnQgPSBpc0luaGVyaXRlZCAmJiB2YXJpYW50RGlkQ2hhbmdlO1xuICAgICAgICAgICAgY29uc3QgbmVlZHNBbmltYXRpbmcgPSAhd2lsbEFuaW1hdGVWaWFQYXJlbnQgfHwgaGFuZGxlZFJlbW92ZWRWYWx1ZXM7XG4gICAgICAgICAgICBpZiAoc2hvdWxkQW5pbWF0ZVR5cGUgJiYgbmVlZHNBbmltYXRpbmcpIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb25zLnB1c2goLi4uZGVmaW5pdGlvbkxpc3QubWFwKChhbmltYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsgdHlwZSB9O1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogSWYgd2UncmUgcGVyZm9ybWluZyB0aGUgaW5pdGlhbCBhbmltYXRpb24sIGJ1dCB3ZSdyZSBub3RcbiAgICAgICAgICAgICAgICAgICAgICogcmVuZGVyaW5nIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIHZhcmlhbnQtY29udHJvbGxpbmcgcGFyZW50LFxuICAgICAgICAgICAgICAgICAgICAgKiB3ZSB3YW50IHRvIHVzZSB0aGUgcGFyZW50J3MgdHJhbnNpdGlvbiB0byBjYWxjdWxhdGUgdGhlIHN0YWdnZXIuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFuaW1hdGlvbiA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXNJbml0aWFsUmVuZGVyICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhd2lsbEFuaW1hdGVWaWFQYXJlbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQubWFudWFsbHlBbmltYXRlT25Nb3VudCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGFyZW50IH0gPSB2aXN1YWxFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50VmFyaWFudCA9IHJlc29sdmVWYXJpYW50KHBhcmVudCwgYW5pbWF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnQuZW50ZXJpbmdDaGlsZHJlbiAmJiBwYXJlbnRWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkZWxheUNoaWxkcmVuIH0gPSBwYXJlbnRWYXJpYW50LnRyYW5zaXRpb24gfHwge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5kZWxheSA9IGNhbGNDaGlsZFN0YWdnZXIocGFyZW50LmVudGVyaW5nQ2hpbGRyZW4sIHZpc3VhbEVsZW1lbnQsIGRlbGF5Q2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGVyZSBhcmUgc29tZSByZW1vdmVkIHZhbHVlIHRoYXQgaGF2ZW4ndCBiZWVuIGRlYWx0IHdpdGgsXG4gICAgICAgICAqIHdlIG5lZWQgdG8gY3JlYXRlIGEgbmV3IGFuaW1hdGlvbiB0aGF0IGZhbGxzIGJhY2sgZWl0aGVyIHRvIHRoZSB2YWx1ZVxuICAgICAgICAgKiBkZWZpbmVkIGluIHRoZSBzdHlsZSBwcm9wLCBvciB0aGUgbGFzdCByZWFkIHZhbHVlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHJlbW92ZWRLZXlzLnNpemUpIHtcbiAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrQW5pbWF0aW9uID0ge307XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoZSBpbml0aWFsIHByb3AgY29udGFpbnMgYSB0cmFuc2l0aW9uIHdlIGNhbiB1c2UgdGhhdCwgb3RoZXJ3aXNlXG4gICAgICAgICAgICAgKiBhbGxvdyB0aGUgYW5pbWF0aW9uIGZ1bmN0aW9uIHRvIHVzZSB0aGUgdmlzdWFsIGVsZW1lbnQncyBkZWZhdWx0LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3BzLmluaXRpYWwgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5pdGlhbFRyYW5zaXRpb24gPSByZXNvbHZlVmFyaWFudCh2aXN1YWxFbGVtZW50LCBBcnJheS5pc0FycmF5KHByb3BzLmluaXRpYWwpXG4gICAgICAgICAgICAgICAgICAgID8gcHJvcHMuaW5pdGlhbFswXVxuICAgICAgICAgICAgICAgICAgICA6IHByb3BzLmluaXRpYWwpO1xuICAgICAgICAgICAgICAgIGlmIChpbml0aWFsVHJhbnNpdGlvbiAmJiBpbml0aWFsVHJhbnNpdGlvbi50cmFuc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrQW5pbWF0aW9uLnRyYW5zaXRpb24gPSBpbml0aWFsVHJhbnNpdGlvbi50cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlbW92ZWRLZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrVGFyZ2V0ID0gdmlzdWFsRWxlbWVudC5nZXRCYXNlVGFyZ2V0KGtleSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbW90aW9uVmFsdWUgPSB2aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKG1vdGlvblZhbHVlKVxuICAgICAgICAgICAgICAgICAgICBtb3Rpb25WYWx1ZS5saXZlU3R5bGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBAbWF0dGdwZXJyeSB0byBmaWd1cmUgaWYgd2Ugc2hvdWxkIGRvIHNvbWV0aGluZyBoZXJlXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tBbmltYXRpb25ba2V5XSA9IGZhbGxiYWNrVGFyZ2V0ID8/IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGFuaW1hdGlvbnMucHVzaCh7IGFuaW1hdGlvbjogZmFsbGJhY2tBbmltYXRpb24gfSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHNob3VsZEFuaW1hdGUgPSBCb29sZWFuKGFuaW1hdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgaWYgKGlzSW5pdGlhbFJlbmRlciAmJlxuICAgICAgICAgICAgKHByb3BzLmluaXRpYWwgPT09IGZhbHNlIHx8IHByb3BzLmluaXRpYWwgPT09IHByb3BzLmFuaW1hdGUpICYmXG4gICAgICAgICAgICAhdmlzdWFsRWxlbWVudC5tYW51YWxseUFuaW1hdGVPbk1vdW50KSB7XG4gICAgICAgICAgICBzaG91bGRBbmltYXRlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaXNJbml0aWFsUmVuZGVyID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBzaG91bGRBbmltYXRlID8gYW5pbWF0ZShhbmltYXRpb25zKSA6IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGFuZ2Ugd2hldGhlciBhIGNlcnRhaW4gYW5pbWF0aW9uIHR5cGUgaXMgYWN0aXZlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldEFjdGl2ZSh0eXBlLCBpc0FjdGl2ZSkge1xuICAgICAgICAvLyBJZiB0aGUgYWN0aXZlIHN0YXRlIGhhc24ndCBjaGFuZ2VkLCB3ZSBjYW4gc2FmZWx5IGRvIG5vdGhpbmcgaGVyZVxuICAgICAgICBpZiAoc3RhdGVbdHlwZV0uaXNBY3RpdmUgPT09IGlzQWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAvLyBQcm9wYWdhdGUgYWN0aXZlIGNoYW5nZSB0byBjaGlsZHJlblxuICAgICAgICB2aXN1YWxFbGVtZW50LnZhcmlhbnRDaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQpID0+IGNoaWxkLmFuaW1hdGlvblN0YXRlPy5zZXRBY3RpdmUodHlwZSwgaXNBY3RpdmUpKTtcbiAgICAgICAgc3RhdGVbdHlwZV0uaXNBY3RpdmUgPSBpc0FjdGl2ZTtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9ucyA9IGFuaW1hdGVDaGFuZ2VzKHR5cGUpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzdGF0ZSkge1xuICAgICAgICAgICAgc3RhdGVba2V5XS5wcm90ZWN0ZWRLZXlzID0ge307XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFuaW1hdGlvbnM7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGFuaW1hdGVDaGFuZ2VzLFxuICAgICAgICBzZXRBY3RpdmUsXG4gICAgICAgIHNldEFuaW1hdGVGdW5jdGlvbixcbiAgICAgICAgZ2V0U3RhdGU6ICgpID0+IHN0YXRlLFxuICAgICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUgPSBjcmVhdGVTdGF0ZSgpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBUZW1wb3JhcmlseSBkaXNhYmxpbmcgcmVzZXR0aW5nIHRoaXMgZmxhZyBhcyBpdCBwcmV2ZW50cyBjb21wb25lbnRzXG4gICAgICAgICAgICAgKiB3aXRoIGluaXRpYWw9e2ZhbHNlfSBmcm9tIGFuaW1hdGluZyBhZnRlciBiZWluZyByZW1vdW50ZWQsIGZvciBpbnN0YW5jZVxuICAgICAgICAgICAgICogYXMgdGhlIGNoaWxkIG9mIGFuIEFjdGl2aXR5IGNvbXBvbmVudC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgLy8gaXNJbml0aWFsUmVuZGVyID0gdHJ1ZVxuICAgICAgICB9LFxuICAgIH07XG59XG5mdW5jdGlvbiBjaGVja1ZhcmlhbnRzRGlkQ2hhbmdlKHByZXYsIG5leHQpIHtcbiAgICBpZiAodHlwZW9mIG5leHQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIG5leHQgIT09IHByZXY7XG4gICAgfVxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobmV4dCkpIHtcbiAgICAgICAgcmV0dXJuICFzaGFsbG93Q29tcGFyZShuZXh0LCBwcmV2KTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gY3JlYXRlVHlwZVN0YXRlKGlzQWN0aXZlID0gZmFsc2UpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBpc0FjdGl2ZSxcbiAgICAgICAgcHJvdGVjdGVkS2V5czoge30sXG4gICAgICAgIG5lZWRzQW5pbWF0aW5nOiB7fSxcbiAgICAgICAgcHJldlJlc29sdmVkVmFsdWVzOiB7fSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlU3RhdGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYW5pbWF0ZTogY3JlYXRlVHlwZVN0YXRlKHRydWUpLFxuICAgICAgICB3aGlsZUluVmlldzogY3JlYXRlVHlwZVN0YXRlKCksXG4gICAgICAgIHdoaWxlSG92ZXI6IGNyZWF0ZVR5cGVTdGF0ZSgpLFxuICAgICAgICB3aGlsZVRhcDogY3JlYXRlVHlwZVN0YXRlKCksXG4gICAgICAgIHdoaWxlRHJhZzogY3JlYXRlVHlwZVN0YXRlKCksXG4gICAgICAgIHdoaWxlRm9jdXM6IGNyZWF0ZVR5cGVTdGF0ZSgpLFxuICAgICAgICBleGl0OiBjcmVhdGVUeXBlU3RhdGUoKSxcbiAgICB9O1xufVxuXG5leHBvcnQgeyBjaGVja1ZhcmlhbnRzRGlkQ2hhbmdlLCBjcmVhdGVBbmltYXRpb25TdGF0ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW5pbWF0aW9uLXN0YXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/animation-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getVariantContext: () => (/* binding */ getVariantContext)\n/* harmony export */ });\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variant-props.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\");\n\n\n\nconst numVariantProps = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantProps.length;\n/**\n * Get variant context from a visual element's parent chain.\n * Uses `any` type for visualElement to avoid circular dependencies.\n */\nfunction getVariantContext(visualElement) {\n if (!visualElement)\n return undefined;\n if (!visualElement.isControllingVariants) {\n const context = visualElement.parent\n ? getVariantContext(visualElement.parent) || {}\n : {};\n if (visualElement.props.initial !== undefined) {\n context.initial = visualElement.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantProps[i];\n const prop = visualElement.props[name];\n if ((0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n}\n\n\n//# sourceMappingURL=get-variant-context.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2dldC12YXJpYW50LWNvbnRleHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3RDtBQUNMOztBQUVuRCx3QkFBd0IsNERBQVk7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixxQkFBcUI7QUFDekMscUJBQXFCLDREQUFZO0FBQ2pDO0FBQ0EsWUFBWSxxRUFBYztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2dldC12YXJpYW50LWNvbnRleHQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzVmFyaWFudExhYmVsIH0gZnJvbSAnLi9pcy12YXJpYW50LWxhYmVsLm1qcyc7XG5pbXBvcnQgeyB2YXJpYW50UHJvcHMgfSBmcm9tICcuL3ZhcmlhbnQtcHJvcHMubWpzJztcblxuY29uc3QgbnVtVmFyaWFudFByb3BzID0gdmFyaWFudFByb3BzLmxlbmd0aDtcbi8qKlxuICogR2V0IHZhcmlhbnQgY29udGV4dCBmcm9tIGEgdmlzdWFsIGVsZW1lbnQncyBwYXJlbnQgY2hhaW4uXG4gKiBVc2VzIGBhbnlgIHR5cGUgZm9yIHZpc3VhbEVsZW1lbnQgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzLlxuICovXG5mdW5jdGlvbiBnZXRWYXJpYW50Q29udGV4dCh2aXN1YWxFbGVtZW50KSB7XG4gICAgaWYgKCF2aXN1YWxFbGVtZW50KVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICghdmlzdWFsRWxlbWVudC5pc0NvbnRyb2xsaW5nVmFyaWFudHMpIHtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHZpc3VhbEVsZW1lbnQucGFyZW50XG4gICAgICAgICAgICA/IGdldFZhcmlhbnRDb250ZXh0KHZpc3VhbEVsZW1lbnQucGFyZW50KSB8fCB7fVxuICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgaWYgKHZpc3VhbEVsZW1lbnQucHJvcHMuaW5pdGlhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb250ZXh0LmluaXRpYWwgPSB2aXN1YWxFbGVtZW50LnByb3BzLmluaXRpYWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRleHQgPSB7fTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVZhcmlhbnRQcm9wczsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB2YXJpYW50UHJvcHNbaV07XG4gICAgICAgIGNvbnN0IHByb3AgPSB2aXN1YWxFbGVtZW50LnByb3BzW25hbWVdO1xuICAgICAgICBpZiAoaXNWYXJpYW50TGFiZWwocHJvcCkgfHwgcHJvcCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnRleHRbbmFtZV0gPSBwcm9wO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0O1xufVxuXG5leHBvcnQgeyBnZXRWYXJpYW50Q29udGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LXZhcmlhbnQtY29udGV4dC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAnimationControls: () => (/* binding */ isAnimationControls)\n/* harmony export */ });\nfunction isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\n\n//# sourceMappingURL=is-animation-controls.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWFuaW1hdGlvbi1jb250cm9scy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvaXMtYW5pbWF0aW9uLWNvbnRyb2xzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc0FuaW1hdGlvbkNvbnRyb2xzKHYpIHtcbiAgICByZXR1cm4gKHYgIT09IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIHYgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgdHlwZW9mIHYuc3RhcnQgPT09IFwiZnVuY3Rpb25cIik7XG59XG5cbmV4cG9ydCB7IGlzQW5pbWF0aW9uQ29udHJvbHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWFuaW1hdGlvbi1jb250cm9scy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isControllingVariants: () => (/* binding */ isControllingVariants),\n/* harmony export */ isVariantNode: () => (/* binding */ isVariantNode)\n/* harmony export */ });\n/* harmony import */ var _is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-animation-controls.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./variant-props.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\");\n\n\n\n\nfunction isControllingVariants(props) {\n return ((0,_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimationControls)(props.animate) ||\n _variant_props_mjs__WEBPACK_IMPORTED_MODULE_1__.variantProps.some((name) => (0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_2__.isVariantLabel)(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\n\n//# sourceMappingURL=is-controlling-variants.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWNvbnRyb2xsaW5nLXZhcmlhbnRzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFrRTtBQUNWO0FBQ0w7O0FBRW5EO0FBQ0EsWUFBWSwrRUFBbUI7QUFDL0IsUUFBUSw0REFBWSxnQkFBZ0IscUVBQWM7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRWdEO0FBQ2hEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvaXMtY29udHJvbGxpbmctdmFyaWFudHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQW5pbWF0aW9uQ29udHJvbHMgfSBmcm9tICcuL2lzLWFuaW1hdGlvbi1jb250cm9scy5tanMnO1xuaW1wb3J0IHsgaXNWYXJpYW50TGFiZWwgfSBmcm9tICcuL2lzLXZhcmlhbnQtbGFiZWwubWpzJztcbmltcG9ydCB7IHZhcmlhbnRQcm9wcyB9IGZyb20gJy4vdmFyaWFudC1wcm9wcy5tanMnO1xuXG5mdW5jdGlvbiBpc0NvbnRyb2xsaW5nVmFyaWFudHMocHJvcHMpIHtcbiAgICByZXR1cm4gKGlzQW5pbWF0aW9uQ29udHJvbHMocHJvcHMuYW5pbWF0ZSkgfHxcbiAgICAgICAgdmFyaWFudFByb3BzLnNvbWUoKG5hbWUpID0+IGlzVmFyaWFudExhYmVsKHByb3BzW25hbWVdKSkpO1xufVxuZnVuY3Rpb24gaXNWYXJpYW50Tm9kZShwcm9wcykge1xuICAgIHJldHVybiBCb29sZWFuKGlzQ29udHJvbGxpbmdWYXJpYW50cyhwcm9wcykgfHwgcHJvcHMudmFyaWFudHMpO1xufVxuXG5leHBvcnQgeyBpc0NvbnRyb2xsaW5nVmFyaWFudHMsIGlzVmFyaWFudE5vZGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWNvbnRyb2xsaW5nLXZhcmlhbnRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addScaleCorrector: () => (/* reexport safe */ _projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__.addScaleCorrector),\n/* harmony export */ isForcedMotionValue: () => (/* binding */ isForcedMotionValue),\n/* harmony export */ scaleCorrectors: () => (/* reexport safe */ _projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__.scaleCorrectors)\n/* harmony export */ });\n/* harmony import */ var _keys_transform_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../projection/styles/scale-correction.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs\");\n\n\n\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_1__.transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!_projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__.scaleCorrectors[key] || key === \"opacity\")));\n}\n\n\n//# sourceMappingURL=is-forced-motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWZvcmNlZC1tb3Rpb24tdmFsdWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXNEO0FBQ3lCO0FBQ0U7O0FBRWpGLG9DQUFvQyxrQkFBa0I7QUFDdEQsWUFBWSwrREFBYztBQUMxQjtBQUNBO0FBQ0EsZUFBZSxvRkFBZTtBQUM5Qjs7QUFFZ0Q7QUFDaEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9pcy1mb3JjZWQtbW90aW9uLXZhbHVlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wcyB9IGZyb20gJy4va2V5cy10cmFuc2Zvcm0ubWpzJztcbmltcG9ydCB7IHNjYWxlQ29ycmVjdG9ycyB9IGZyb20gJy4uLy4uL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWNvcnJlY3Rpb24ubWpzJztcbmV4cG9ydCB7IGFkZFNjYWxlQ29ycmVjdG9yIH0gZnJvbSAnLi4vLi4vcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtY29ycmVjdGlvbi5tanMnO1xuXG5mdW5jdGlvbiBpc0ZvcmNlZE1vdGlvblZhbHVlKGtleSwgeyBsYXlvdXQsIGxheW91dElkIH0pIHtcbiAgICByZXR1cm4gKHRyYW5zZm9ybVByb3BzLmhhcyhrZXkpIHx8XG4gICAgICAgIGtleS5zdGFydHNXaXRoKFwib3JpZ2luXCIpIHx8XG4gICAgICAgICgobGF5b3V0IHx8IGxheW91dElkICE9PSB1bmRlZmluZWQpICYmXG4gICAgICAgICAgICAoISFzY2FsZUNvcnJlY3RvcnNba2V5XSB8fCBrZXkgPT09IFwib3BhY2l0eVwiKSkpO1xufVxuXG5leHBvcnQgeyBpc0ZvcmNlZE1vdGlvblZhbHVlLCBzY2FsZUNvcnJlY3RvcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWZvcmNlZC1tb3Rpb24tdmFsdWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isKeyframesTarget: () => (/* binding */ isKeyframesTarget)\n/* harmony export */ });\nconst isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\n\n//# sourceMappingURL=is-keyframes-target.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWtleWZyYW1lcy10YXJnZXQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRTZCO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvaXMta2V5ZnJhbWVzLXRhcmdldC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNLZXlmcmFtZXNUYXJnZXQgPSAodikgPT4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHYpO1xufTtcblxuZXhwb3J0IHsgaXNLZXlmcmFtZXNUYXJnZXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWtleWZyYW1lcy10YXJnZXQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isVariantLabel: () => (/* binding */ isVariantLabel)\n/* harmony export */ });\n/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\n\n//# sourceMappingURL=is-variant-label.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLXZhcmlhbnQtbGFiZWwubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTBCO0FBQzFCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvaXMtdmFyaWFudC1sYWJlbC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWNpZGVzIGlmIHRoZSBzdXBwbGllZCB2YXJpYWJsZSBpcyB2YXJpYW50IGxhYmVsXG4gKi9cbmZ1bmN0aW9uIGlzVmFyaWFudExhYmVsKHYpIHtcbiAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCIgfHwgQXJyYXkuaXNBcnJheSh2KTtcbn1cblxuZXhwb3J0IHsgaXNWYXJpYW50TGFiZWwgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXZhcmlhbnQtbGFiZWwubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ positionalKeys: () => (/* binding */ positionalKeys)\n/* harmony export */ });\n/* harmony import */ var _keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n ..._keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder,\n]);\n\n\n//# sourceMappingURL=keys-position.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2tleXMtcG9zaXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTBEOztBQUUxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sbUVBQWtCO0FBQ3pCOztBQUUwQjtBQUMxQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2tleXMtcG9zaXRpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zZm9ybVByb3BPcmRlciB9IGZyb20gJy4va2V5cy10cmFuc2Zvcm0ubWpzJztcblxuY29uc3QgcG9zaXRpb25hbEtleXMgPSBuZXcgU2V0KFtcbiAgICBcIndpZHRoXCIsXG4gICAgXCJoZWlnaHRcIixcbiAgICBcInRvcFwiLFxuICAgIFwibGVmdFwiLFxuICAgIFwicmlnaHRcIixcbiAgICBcImJvdHRvbVwiLFxuICAgIC4uLnRyYW5zZm9ybVByb3BPcmRlcixcbl0pO1xuXG5leHBvcnQgeyBwb3NpdGlvbmFsS2V5cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9a2V5cy1wb3NpdGlvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ transformPropOrder: () => (/* binding */ transformPropOrder),\n/* harmony export */ transformProps: () => (/* binding */ transformProps)\n/* harmony export */ });\n/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = /*@__PURE__*/ (() => new Set(transformPropOrder))();\n\n\n//# sourceMappingURL=keys-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRThDO0FBQzlDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMva2V5cy10cmFuc2Zvcm0ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGUgYSBsaXN0IG9mIGV2ZXJ5IHBvc3NpYmxlIHRyYW5zZm9ybSBrZXkuXG4gKi9cbmNvbnN0IHRyYW5zZm9ybVByb3BPcmRlciA9IFtcbiAgICBcInRyYW5zZm9ybVBlcnNwZWN0aXZlXCIsXG4gICAgXCJ4XCIsXG4gICAgXCJ5XCIsXG4gICAgXCJ6XCIsXG4gICAgXCJ0cmFuc2xhdGVYXCIsXG4gICAgXCJ0cmFuc2xhdGVZXCIsXG4gICAgXCJ0cmFuc2xhdGVaXCIsXG4gICAgXCJzY2FsZVwiLFxuICAgIFwic2NhbGVYXCIsXG4gICAgXCJzY2FsZVlcIixcbiAgICBcInJvdGF0ZVwiLFxuICAgIFwicm90YXRlWFwiLFxuICAgIFwicm90YXRlWVwiLFxuICAgIFwicm90YXRlWlwiLFxuICAgIFwic2tld1wiLFxuICAgIFwic2tld1hcIixcbiAgICBcInNrZXdZXCIsXG5dO1xuLyoqXG4gKiBBIHF1aWNrIGxvb2t1cCBmb3IgdHJhbnNmb3JtIHByb3BzLlxuICovXG5jb25zdCB0cmFuc2Zvcm1Qcm9wcyA9IC8qQF9fUFVSRV9fKi8gKCgpID0+IG5ldyBTZXQodHJhbnNmb3JtUHJvcE9yZGVyKSkoKTtcblxuZXhwb3J0IHsgdHJhbnNmb3JtUHJvcE9yZGVyLCB0cmFuc2Zvcm1Qcm9wcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9a2V5cy10cmFuc2Zvcm0ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/motion-values.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/motion-values.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ updateMotionValuesFromProps: () => (/* binding */ updateMotionValuesFromProps)\n/* harmony export */ });\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\n\n/**\n * Updates motion values from props changes.\n * Uses `any` type for element to avoid circular dependencies with VisualElement.\n */\nfunction updateMotionValuesFromProps(element, next, prev) {\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n }\n else if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_1__.motionValue)(nextValue, { owner: element }));\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n if (existingValue.liveStyle === true) {\n existingValue.jump(nextValue);\n }\n else if (!existingValue.hasAnimated) {\n existingValue.set(nextValue);\n }\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_1__.motionValue)(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\n\n//# sourceMappingURL=motion-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL21vdGlvbi12YWx1ZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvRDtBQUNrQjs7QUFFdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksK0VBQWE7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLCtFQUFhO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLDZEQUFXLGNBQWMsZ0JBQWdCO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyw2REFBVyx3REFBd0QsZ0JBQWdCO0FBQ3pIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV1QztBQUN2QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL21vdGlvbi12YWx1ZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvaW5kZXgubWpzJztcbmltcG9ydCB7IGlzTW90aW9uVmFsdWUgfSBmcm9tICcuLi8uLi92YWx1ZS91dGlscy9pcy1tb3Rpb24tdmFsdWUubWpzJztcblxuLyoqXG4gKiBVcGRhdGVzIG1vdGlvbiB2YWx1ZXMgZnJvbSBwcm9wcyBjaGFuZ2VzLlxuICogVXNlcyBgYW55YCB0eXBlIGZvciBlbGVtZW50IHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llcyB3aXRoIFZpc3VhbEVsZW1lbnQuXG4gKi9cbmZ1bmN0aW9uIHVwZGF0ZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhlbGVtZW50LCBuZXh0LCBwcmV2KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gbmV4dCkge1xuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSBuZXh0W2tleV07XG4gICAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHByZXZba2V5XTtcbiAgICAgICAgaWYgKGlzTW90aW9uVmFsdWUobmV4dFZhbHVlKSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGlzIGEgbW90aW9uIHZhbHVlIGZvdW5kIGluIHByb3BzIG9yIHN0eWxlLCB3ZSB3YW50IHRvIGFkZCBpdFxuICAgICAgICAgICAgICogdG8gb3VyIHZpc3VhbCBlbGVtZW50J3MgbW90aW9uIHZhbHVlIG1hcC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZWxlbWVudC5hZGRWYWx1ZShrZXksIG5leHRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNNb3Rpb25WYWx1ZShwcmV2VmFsdWUpKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlJ3JlIHN3YXBwaW5nIGZyb20gYSBtb3Rpb24gdmFsdWUgdG8gYSBzdGF0aWMgdmFsdWUsXG4gICAgICAgICAgICAgKiBjcmVhdGUgYSBuZXcgbW90aW9uIHZhbHVlIGZyb20gdGhhdFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBlbGVtZW50LmFkZFZhbHVlKGtleSwgbW90aW9uVmFsdWUobmV4dFZhbHVlLCB7IG93bmVyOiBlbGVtZW50IH0pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwcmV2VmFsdWUgIT09IG5leHRWYWx1ZSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGlzIGEgZmxhdCB2YWx1ZSB0aGF0IGhhcyBjaGFuZ2VkLCB1cGRhdGUgdGhlIG1vdGlvbiB2YWx1ZVxuICAgICAgICAgICAgICogb3IgY3JlYXRlIG9uZSBpZiBpdCBkb2Vzbid0IGV4aXN0LiBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBpZiB3ZSdyZVxuICAgICAgICAgICAgICogbm90IGhhbmRsaW5nIHRoZSB2YWx1ZSB3aXRoIG91ciBhbmltYXRpb24gc3RhdGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChlbGVtZW50Lmhhc1ZhbHVlKGtleSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gZWxlbWVudC5nZXRWYWx1ZShrZXkpO1xuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1ZhbHVlLmxpdmVTdHlsZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICBleGlzdGluZ1ZhbHVlLmp1bXAobmV4dFZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoIWV4aXN0aW5nVmFsdWUuaGFzQW5pbWF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdWYWx1ZS5zZXQobmV4dFZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXRlc3RWYWx1ZSA9IGVsZW1lbnQuZ2V0U3RhdGljVmFsdWUoa2V5KTtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmFkZFZhbHVlKGtleSwgbW90aW9uVmFsdWUobGF0ZXN0VmFsdWUgIT09IHVuZGVmaW5lZCA/IGxhdGVzdFZhbHVlIDogbmV4dFZhbHVlLCB7IG93bmVyOiBlbGVtZW50IH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBIYW5kbGUgcmVtb3ZlZCB2YWx1ZXNcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwcmV2KSB7XG4gICAgICAgIGlmIChuZXh0W2tleV0gPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlVmFsdWUoa2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQ7XG59XG5cbmV4cG9ydCB7IHVwZGF0ZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bW90aW9uLXZhbHVlcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/motion-values.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasReducedMotionListener: () => (/* reexport safe */ _state_mjs__WEBPACK_IMPORTED_MODULE_0__.hasReducedMotionListener),\n/* harmony export */ initPrefersReducedMotion: () => (/* binding */ initPrefersReducedMotion),\n/* harmony export */ prefersReducedMotion: () => (/* reexport safe */ _state_mjs__WEBPACK_IMPORTED_MODULE_0__.prefersReducedMotion)\n/* harmony export */ });\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs\");\n\n\nconst isBrowser = typeof window !== \"undefined\";\nfunction initPrefersReducedMotion() {\n _state_mjs__WEBPACK_IMPORTED_MODULE_0__.hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (_state_mjs__WEBPACK_IMPORTED_MODULE_0__.prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addEventListener(\"change\", setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n _state_mjs__WEBPACK_IMPORTED_MODULE_0__.prefersReducedMotion.current = false;\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3JlZHVjZWQtbW90aW9uL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTZFOztBQUU3RTtBQUNBO0FBQ0EsSUFBSSxnRUFBd0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsNERBQW9CO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw0REFBb0I7QUFDNUI7QUFDQTs7QUFFb0Y7QUFDcEYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZWR1Y2VkLW1vdGlvbi9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFzUmVkdWNlZE1vdGlvbkxpc3RlbmVyLCBwcmVmZXJzUmVkdWNlZE1vdGlvbiB9IGZyb20gJy4vc3RhdGUubWpzJztcblxuY29uc3QgaXNCcm93c2VyID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIjtcbmZ1bmN0aW9uIGluaXRQcmVmZXJzUmVkdWNlZE1vdGlvbigpIHtcbiAgICBoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIuY3VycmVudCA9IHRydWU7XG4gICAgaWYgKCFpc0Jyb3dzZXIpXG4gICAgICAgIHJldHVybjtcbiAgICBpZiAod2luZG93Lm1hdGNoTWVkaWEpIHtcbiAgICAgICAgY29uc3QgbW90aW9uTWVkaWFRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKFwiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pXCIpO1xuICAgICAgICBjb25zdCBzZXRSZWR1Y2VkTW90aW9uUHJlZmVyZW5jZXMgPSAoKSA9PiAocHJlZmVyc1JlZHVjZWRNb3Rpb24uY3VycmVudCA9IG1vdGlvbk1lZGlhUXVlcnkubWF0Y2hlcyk7XG4gICAgICAgIG1vdGlvbk1lZGlhUXVlcnkuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLCBzZXRSZWR1Y2VkTW90aW9uUHJlZmVyZW5jZXMpO1xuICAgICAgICBzZXRSZWR1Y2VkTW90aW9uUHJlZmVyZW5jZXMoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHByZWZlcnNSZWR1Y2VkTW90aW9uLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IGhhc1JlZHVjZWRNb3Rpb25MaXN0ZW5lciwgaW5pdFByZWZlcnNSZWR1Y2VkTW90aW9uLCBwcmVmZXJzUmVkdWNlZE1vdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasReducedMotionListener: () => (/* binding */ hasReducedMotionListener),\n/* harmony export */ prefersReducedMotion: () => (/* binding */ prefersReducedMotion)\n/* harmony export */ });\n// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\n\n//# sourceMappingURL=state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3JlZHVjZWQtbW90aW9uL3N0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0EsK0JBQStCO0FBQy9CLG1DQUFtQzs7QUFFdUI7QUFDMUQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZWR1Y2VkLW1vdGlvbi9zdGF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRG9lcyB0aGlzIGRldmljZSBwcmVmZXIgcmVkdWNlZCBtb3Rpb24/IFJldHVybnMgYG51bGxgIHNlcnZlci1zaWRlLlxuY29uc3QgcHJlZmVyc1JlZHVjZWRNb3Rpb24gPSB7IGN1cnJlbnQ6IG51bGwgfTtcbmNvbnN0IGhhc1JlZHVjZWRNb3Rpb25MaXN0ZW5lciA9IHsgY3VycmVudDogZmFsc2UgfTtcblxuZXhwb3J0IHsgaGFzUmVkdWNlZE1vdGlvbkxpc3RlbmVyLCBwcmVmZXJzUmVkdWNlZE1vdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RhdGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveVariant: () => (/* binding */ resolveVariant)\n/* harmony export */ });\n/* harmony import */ var _resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resolve-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\");\n\n\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return (0,_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveVariantFromProps)(props, definition, custom !== undefined ? custom : props.custom, visualElement);\n}\n\n\n//# sourceMappingURL=resolve-dynamic-variants.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3Jlc29sdmUtZHluYW1pYy12YXJpYW50cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUU7O0FBRWpFO0FBQ0E7QUFDQSxXQUFXLDhFQUF1QjtBQUNsQzs7QUFFMEI7QUFDMUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZXNvbHZlLWR5bmFtaWMtdmFyaWFudHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmVWYXJpYW50RnJvbVByb3BzIH0gZnJvbSAnLi9yZXNvbHZlLXZhcmlhbnRzLm1qcyc7XG5cbmZ1bmN0aW9uIHJlc29sdmVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIGRlZmluaXRpb24sIGN1c3RvbSkge1xuICAgIGNvbnN0IHByb3BzID0gdmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO1xuICAgIHJldHVybiByZXNvbHZlVmFyaWFudEZyb21Qcm9wcyhwcm9wcywgZGVmaW5pdGlvbiwgY3VzdG9tICE9PSB1bmRlZmluZWQgPyBjdXN0b20gOiBwcm9wcy5jdXN0b20sIHZpc3VhbEVsZW1lbnQpO1xufVxuXG5leHBvcnQgeyByZXNvbHZlVmFyaWFudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1keW5hbWljLXZhcmlhbnRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveVariantFromProps: () => (/* binding */ resolveVariantFromProps)\n/* harmony export */ });\nfunction getValueState(visualElement) {\n const state = [{}, {}];\n visualElement?.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n\n\n//# sourceMappingURL=resolve-variants.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3Jlc29sdmUtdmFyaWFudHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLHFCQUFxQixJQUFJO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFbUM7QUFDbkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZXNvbHZlLXZhcmlhbnRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBnZXRWYWx1ZVN0YXRlKHZpc3VhbEVsZW1lbnQpIHtcbiAgICBjb25zdCBzdGF0ZSA9IFt7fSwge31dO1xuICAgIHZpc3VhbEVsZW1lbnQ/LnZhbHVlcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIHN0YXRlWzBdW2tleV0gPSB2YWx1ZS5nZXQoKTtcbiAgICAgICAgc3RhdGVbMV1ba2V5XSA9IHZhbHVlLmdldFZlbG9jaXR5KCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHN0YXRlO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMocHJvcHMsIGRlZmluaXRpb24sIGN1c3RvbSwgdmlzdWFsRWxlbWVudCkge1xuICAgIC8qKlxuICAgICAqIElmIHRoZSB2YXJpYW50IGRlZmluaXRpb24gaXMgYSBmdW5jdGlvbiwgcmVzb2x2ZS5cbiAgICAgKi9cbiAgICBpZiAodHlwZW9mIGRlZmluaXRpb24gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCBbY3VycmVudCwgdmVsb2NpdHldID0gZ2V0VmFsdWVTdGF0ZSh2aXN1YWxFbGVtZW50KTtcbiAgICAgICAgZGVmaW5pdGlvbiA9IGRlZmluaXRpb24oY3VzdG9tICE9PSB1bmRlZmluZWQgPyBjdXN0b20gOiBwcm9wcy5jdXN0b20sIGN1cnJlbnQsIHZlbG9jaXR5KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSWYgdGhlIHZhcmlhbnQgZGVmaW5pdGlvbiBpcyBhIHZhcmlhbnQgbGFiZWwsIG9yXG4gICAgICogdGhlIGZ1bmN0aW9uIHJldHVybmVkIGEgdmFyaWFudCBsYWJlbCwgcmVzb2x2ZS5cbiAgICAgKi9cbiAgICBpZiAodHlwZW9mIGRlZmluaXRpb24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgZGVmaW5pdGlvbiA9IHByb3BzLnZhcmlhbnRzICYmIHByb3BzLnZhcmlhbnRzW2RlZmluaXRpb25dO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBdCB0aGlzIHBvaW50IHdlJ3ZlIHJlc29sdmVkIGJvdGggZnVuY3Rpb25zIGFuZCB2YXJpYW50IGxhYmVscyxcbiAgICAgKiBidXQgdGhlIHJlc29sdmVkIHZhcmlhbnQgbGFiZWwgbWlnaHQgaXRzZWxmIGhhdmUgYmVlbiBhIGZ1bmN0aW9uLlxuICAgICAqIElmIHNvLCByZXNvbHZlLiBUaGlzIGNhbiBvbmx5IGhhdmUgcmV0dXJuZWQgYSB2YWxpZCB0YXJnZXQgb2JqZWN0LlxuICAgICAqL1xuICAgIGlmICh0eXBlb2YgZGVmaW5pdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IFtjdXJyZW50LCB2ZWxvY2l0eV0gPSBnZXRWYWx1ZVN0YXRlKHZpc3VhbEVsZW1lbnQpO1xuICAgICAgICBkZWZpbml0aW9uID0gZGVmaW5pdGlvbihjdXN0b20gIT09IHVuZGVmaW5lZCA/IGN1c3RvbSA6IHByb3BzLmN1c3RvbSwgY3VycmVudCwgdmVsb2NpdHkpO1xuICAgIH1cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbn1cblxuZXhwb3J0IHsgcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtdmFyaWFudHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/setters.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/setters.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setTarget: () => (/* binding */ setTarget)\n/* harmony export */ });\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-keyframes-target.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs\");\n\n\n\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_0__.motionValue)(value));\n }\n}\nfunction resolveFinalValueInKeyframes(v) {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return (0,_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_1__.isKeyframesTarget)(v) ? v[v.length - 1] || 0 : v;\n}\nfunction setTarget(visualElement, definition) {\n const resolved = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\n\n//# sourceMappingURL=setters.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3NldHRlcnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBb0Q7QUFDWTtBQUNGOztBQUU5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsNkRBQVc7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLDJFQUFpQjtBQUM1QjtBQUNBO0FBQ0EscUJBQXFCLDZFQUFjO0FBQ25DLFVBQVUsa0JBQWtCLGlCQUFpQixjQUFjO0FBQzNELGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVxQjtBQUNyQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3NldHRlcnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvaW5kZXgubWpzJztcbmltcG9ydCB7IHJlc29sdmVWYXJpYW50IH0gZnJvbSAnLi9yZXNvbHZlLWR5bmFtaWMtdmFyaWFudHMubWpzJztcbmltcG9ydCB7IGlzS2V5ZnJhbWVzVGFyZ2V0IH0gZnJvbSAnLi9pcy1rZXlmcmFtZXMtdGFyZ2V0Lm1qcyc7XG5cbi8qKlxuICogU2V0IFZpc3VhbEVsZW1lbnQncyBNb3Rpb25WYWx1ZSwgY3JlYXRpbmcgYSBuZXcgTW90aW9uVmFsdWUgZm9yIGl0IGlmXG4gKiBpdCBkb2Vzbid0IGV4aXN0LlxuICovXG5mdW5jdGlvbiBzZXRNb3Rpb25WYWx1ZSh2aXN1YWxFbGVtZW50LCBrZXksIHZhbHVlKSB7XG4gICAgaWYgKHZpc3VhbEVsZW1lbnQuaGFzVmFsdWUoa2V5KSkge1xuICAgICAgICB2aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSkuc2V0KHZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHZpc3VhbEVsZW1lbnQuYWRkVmFsdWUoa2V5LCBtb3Rpb25WYWx1ZSh2YWx1ZSkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHJlc29sdmVGaW5hbFZhbHVlSW5LZXlmcmFtZXModikge1xuICAgIC8vIFRPRE8gbWF5YmUgdGhyb3cgaWYgdi5sZW5ndGggLSAxIGlzIHBsYWNlaG9sZGVyIHRva2VuP1xuICAgIHJldHVybiBpc0tleWZyYW1lc1RhcmdldCh2KSA/IHZbdi5sZW5ndGggLSAxXSB8fCAwIDogdjtcbn1cbmZ1bmN0aW9uIHNldFRhcmdldCh2aXN1YWxFbGVtZW50LCBkZWZpbml0aW9uKSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlVmFyaWFudCh2aXN1YWxFbGVtZW50LCBkZWZpbml0aW9uKTtcbiAgICBsZXQgeyB0cmFuc2l0aW9uRW5kID0ge30sIHRyYW5zaXRpb24gPSB7fSwgLi4udGFyZ2V0IH0gPSByZXNvbHZlZCB8fCB7fTtcbiAgICB0YXJnZXQgPSB7IC4uLnRhcmdldCwgLi4udHJhbnNpdGlvbkVuZCB9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRhcmdldCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVGaW5hbFZhbHVlSW5LZXlmcmFtZXModGFyZ2V0W2tleV0pO1xuICAgICAgICBzZXRNb3Rpb25WYWx1ZSh2aXN1YWxFbGVtZW50LCBrZXksIHZhbHVlKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IHNldFRhcmdldCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2V0dGVycy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/setters.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ shallowCompare: () => (/* binding */ shallowCompare)\n/* harmony export */ });\nfunction shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\n\n//# sourceMappingURL=shallow-compare.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3NoYWxsb3ctY29tcGFyZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMEI7QUFDMUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9zaGFsbG93LWNvbXBhcmUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHNoYWxsb3dDb21wYXJlKG5leHQsIHByZXYpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocHJldikpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBwcmV2TGVuZ3RoID0gcHJldi5sZW5ndGg7XG4gICAgaWYgKHByZXZMZW5ndGggIT09IG5leHQubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcmV2TGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHByZXZbaV0gIT09IG5leHRbaV0pXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgeyBzaGFsbG93Q29tcGFyZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2hhbGxvdy1jb21wYXJlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ variantPriorityOrder: () => (/* binding */ variantPriorityOrder),\n/* harmony export */ variantProps: () => (/* binding */ variantProps)\n/* harmony export */ });\nconst variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\n\n//# sourceMappingURL=variant-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3ZhcmlhbnQtcHJvcHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRThDO0FBQzlDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvdmFyaWFudC1wcm9wcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdmFyaWFudFByaW9yaXR5T3JkZXIgPSBbXG4gICAgXCJhbmltYXRlXCIsXG4gICAgXCJ3aGlsZUluVmlld1wiLFxuICAgIFwid2hpbGVGb2N1c1wiLFxuICAgIFwid2hpbGVIb3ZlclwiLFxuICAgIFwid2hpbGVUYXBcIixcbiAgICBcIndoaWxlRHJhZ1wiLFxuICAgIFwiZXhpdFwiLFxuXTtcbmNvbnN0IHZhcmlhbnRQcm9wcyA9IFtcImluaXRpYWxcIiwgLi4udmFyaWFudFByaW9yaXR5T3JkZXJdO1xuXG5leHBvcnQgeyB2YXJpYW50UHJpb3JpdHlPcmRlciwgdmFyaWFudFByb3BzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD12YXJpYW50LXByb3BzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/resize/handle-element.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resizeElement: () => (/* binding */ resizeElement)\n/* harmony export */ });\n/* harmony import */ var _utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/is-svg-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n/* harmony import */ var _utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/resolve-elements.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\");\n\n\n\nconst resizeHandlers = new WeakMap();\nlet observer;\nconst getSize = (borderBoxAxis, svgAxis, htmlAxis) => (target, borderBoxSize) => {\n if (borderBoxSize && borderBoxSize[0]) {\n return borderBoxSize[0][(borderBoxAxis + \"Size\")];\n }\n else if ((0,_utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__.isSVGElement)(target) && \"getBBox\" in target) {\n return target.getBBox()[svgAxis];\n }\n else {\n return target[htmlAxis];\n }\n};\nconst getWidth = /*@__PURE__*/ getSize(\"inline\", \"width\", \"offsetWidth\");\nconst getHeight = /*@__PURE__*/ getSize(\"block\", \"height\", \"offsetHeight\");\nfunction notifyTarget({ target, borderBoxSize }) {\n resizeHandlers.get(target)?.forEach((handler) => {\n handler(target, {\n get width() {\n return getWidth(target, borderBoxSize);\n },\n get height() {\n return getHeight(target, borderBoxSize);\n },\n });\n });\n}\nfunction notifyAll(entries) {\n entries.forEach(notifyTarget);\n}\nfunction createResizeObserver() {\n if (typeof ResizeObserver === \"undefined\")\n return;\n observer = new ResizeObserver(notifyAll);\n}\nfunction resizeElement(target, handler) {\n if (!observer)\n createResizeObserver();\n const elements = (0,_utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_1__.resolveElements)(target);\n elements.forEach((element) => {\n let elementHandlers = resizeHandlers.get(element);\n if (!elementHandlers) {\n elementHandlers = new Set();\n resizeHandlers.set(element, elementHandlers);\n }\n elementHandlers.add(handler);\n observer?.observe(element);\n });\n return () => {\n elements.forEach((element) => {\n const elementHandlers = resizeHandlers.get(element);\n elementHandlers?.delete(handler);\n if (!elementHandlers?.size) {\n observer?.unobserve(element);\n }\n });\n };\n}\n\n\n//# sourceMappingURL=handle-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVzaXplL2hhbmRsZS1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMkQ7QUFDSzs7QUFFaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSx1RUFBWTtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHVCQUF1QjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLDRFQUFlO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Jlc2l6ZS9oYW5kbGUtZWxlbWVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTVkdFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvaXMtc3ZnLWVsZW1lbnQubWpzJztcbmltcG9ydCB7IHJlc29sdmVFbGVtZW50cyB9IGZyb20gJy4uL3V0aWxzL3Jlc29sdmUtZWxlbWVudHMubWpzJztcblxuY29uc3QgcmVzaXplSGFuZGxlcnMgPSBuZXcgV2Vha01hcCgpO1xubGV0IG9ic2VydmVyO1xuY29uc3QgZ2V0U2l6ZSA9IChib3JkZXJCb3hBeGlzLCBzdmdBeGlzLCBodG1sQXhpcykgPT4gKHRhcmdldCwgYm9yZGVyQm94U2l6ZSkgPT4ge1xuICAgIGlmIChib3JkZXJCb3hTaXplICYmIGJvcmRlckJveFNpemVbMF0pIHtcbiAgICAgICAgcmV0dXJuIGJvcmRlckJveFNpemVbMF1bKGJvcmRlckJveEF4aXMgKyBcIlNpemVcIildO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1NWR0VsZW1lbnQodGFyZ2V0KSAmJiBcImdldEJCb3hcIiBpbiB0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldC5nZXRCQm94KClbc3ZnQXhpc107XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gdGFyZ2V0W2h0bWxBeGlzXTtcbiAgICB9XG59O1xuY29uc3QgZ2V0V2lkdGggPSAvKkBfX1BVUkVfXyovIGdldFNpemUoXCJpbmxpbmVcIiwgXCJ3aWR0aFwiLCBcIm9mZnNldFdpZHRoXCIpO1xuY29uc3QgZ2V0SGVpZ2h0ID0gLypAX19QVVJFX18qLyBnZXRTaXplKFwiYmxvY2tcIiwgXCJoZWlnaHRcIiwgXCJvZmZzZXRIZWlnaHRcIik7XG5mdW5jdGlvbiBub3RpZnlUYXJnZXQoeyB0YXJnZXQsIGJvcmRlckJveFNpemUgfSkge1xuICAgIHJlc2l6ZUhhbmRsZXJzLmdldCh0YXJnZXQpPy5mb3JFYWNoKChoYW5kbGVyKSA9PiB7XG4gICAgICAgIGhhbmRsZXIodGFyZ2V0LCB7XG4gICAgICAgICAgICBnZXQgd2lkdGgoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldFdpZHRoKHRhcmdldCwgYm9yZGVyQm94U2l6ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IGhlaWdodCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0SGVpZ2h0KHRhcmdldCwgYm9yZGVyQm94U2l6ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIG5vdGlmeUFsbChlbnRyaWVzKSB7XG4gICAgZW50cmllcy5mb3JFYWNoKG5vdGlmeVRhcmdldCk7XG59XG5mdW5jdGlvbiBjcmVhdGVSZXNpemVPYnNlcnZlcigpIHtcbiAgICBpZiAodHlwZW9mIFJlc2l6ZU9ic2VydmVyID09PSBcInVuZGVmaW5lZFwiKVxuICAgICAgICByZXR1cm47XG4gICAgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIobm90aWZ5QWxsKTtcbn1cbmZ1bmN0aW9uIHJlc2l6ZUVsZW1lbnQodGFyZ2V0LCBoYW5kbGVyKSB7XG4gICAgaWYgKCFvYnNlcnZlcilcbiAgICAgICAgY3JlYXRlUmVzaXplT2JzZXJ2ZXIoKTtcbiAgICBjb25zdCBlbGVtZW50cyA9IHJlc29sdmVFbGVtZW50cyh0YXJnZXQpO1xuICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgbGV0IGVsZW1lbnRIYW5kbGVycyA9IHJlc2l6ZUhhbmRsZXJzLmdldChlbGVtZW50KTtcbiAgICAgICAgaWYgKCFlbGVtZW50SGFuZGxlcnMpIHtcbiAgICAgICAgICAgIGVsZW1lbnRIYW5kbGVycyA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIHJlc2l6ZUhhbmRsZXJzLnNldChlbGVtZW50LCBlbGVtZW50SGFuZGxlcnMpO1xuICAgICAgICB9XG4gICAgICAgIGVsZW1lbnRIYW5kbGVycy5hZGQoaGFuZGxlcik7XG4gICAgICAgIG9ic2VydmVyPy5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRIYW5kbGVycyA9IHJlc2l6ZUhhbmRsZXJzLmdldChlbGVtZW50KTtcbiAgICAgICAgICAgIGVsZW1lbnRIYW5kbGVycz8uZGVsZXRlKGhhbmRsZXIpO1xuICAgICAgICAgICAgaWYgKCFlbGVtZW50SGFuZGxlcnM/LnNpemUpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlcj8udW5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufVxuXG5leHBvcnQgeyByZXNpemVFbGVtZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oYW5kbGUtZWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/resize/handle-window.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resizeWindow: () => (/* binding */ resizeWindow)\n/* harmony export */ });\nconst windowCallbacks = new Set();\nlet windowResizeHandler;\nfunction createWindowResizeHandler() {\n windowResizeHandler = () => {\n const info = {\n get width() {\n return window.innerWidth;\n },\n get height() {\n return window.innerHeight;\n },\n };\n windowCallbacks.forEach((callback) => callback(info));\n };\n window.addEventListener(\"resize\", windowResizeHandler);\n}\nfunction resizeWindow(callback) {\n windowCallbacks.add(callback);\n if (!windowResizeHandler)\n createWindowResizeHandler();\n return () => {\n windowCallbacks.delete(callback);\n if (!windowCallbacks.size &&\n typeof windowResizeHandler === \"function\") {\n window.removeEventListener(\"resize\", windowResizeHandler);\n windowResizeHandler = undefined;\n }\n };\n}\n\n\n//# sourceMappingURL=handle-window.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVzaXplL2hhbmRsZS13aW5kb3cubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Jlc2l6ZS9oYW5kbGUtd2luZG93Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB3aW5kb3dDYWxsYmFja3MgPSBuZXcgU2V0KCk7XG5sZXQgd2luZG93UmVzaXplSGFuZGxlcjtcbmZ1bmN0aW9uIGNyZWF0ZVdpbmRvd1Jlc2l6ZUhhbmRsZXIoKSB7XG4gICAgd2luZG93UmVzaXplSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5mbyA9IHtcbiAgICAgICAgICAgIGdldCB3aWR0aCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IGhlaWdodCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93Q2FsbGJhY2tzLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjayhpbmZvKSk7XG4gICAgfTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB3aW5kb3dSZXNpemVIYW5kbGVyKTtcbn1cbmZ1bmN0aW9uIHJlc2l6ZVdpbmRvdyhjYWxsYmFjaykge1xuICAgIHdpbmRvd0NhbGxiYWNrcy5hZGQoY2FsbGJhY2spO1xuICAgIGlmICghd2luZG93UmVzaXplSGFuZGxlcilcbiAgICAgICAgY3JlYXRlV2luZG93UmVzaXplSGFuZGxlcigpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvd0NhbGxiYWNrcy5kZWxldGUoY2FsbGJhY2spO1xuICAgICAgICBpZiAoIXdpbmRvd0NhbGxiYWNrcy5zaXplICYmXG4gICAgICAgICAgICB0eXBlb2Ygd2luZG93UmVzaXplSGFuZGxlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB3aW5kb3dSZXNpemVIYW5kbGVyKTtcbiAgICAgICAgICAgIHdpbmRvd1Jlc2l6ZUhhbmRsZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5leHBvcnQgeyByZXNpemVXaW5kb3cgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhhbmRsZS13aW5kb3cubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/index.mjs": +/*!**********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/resize/index.mjs ***! + \**********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resize: () => (/* binding */ resize)\n/* harmony export */ });\n/* harmony import */ var _handle_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./handle-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs\");\n/* harmony import */ var _handle_window_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./handle-window.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs\");\n\n\n\nfunction resize(a, b) {\n return typeof a === \"function\" ? (0,_handle_window_mjs__WEBPACK_IMPORTED_MODULE_0__.resizeWindow)(a) : (0,_handle_element_mjs__WEBPACK_IMPORTED_MODULE_1__.resizeElement)(a, b);\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVzaXplL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBcUQ7QUFDRjs7QUFFbkQ7QUFDQSxxQ0FBcUMsZ0VBQVksTUFBTSxrRUFBYTtBQUNwRTs7QUFFa0I7QUFDbEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Jlc2l6ZS9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzaXplRWxlbWVudCB9IGZyb20gJy4vaGFuZGxlLWVsZW1lbnQubWpzJztcbmltcG9ydCB7IHJlc2l6ZVdpbmRvdyB9IGZyb20gJy4vaGFuZGxlLXdpbmRvdy5tanMnO1xuXG5mdW5jdGlvbiByZXNpemUoYSwgYikge1xuICAgIHJldHVybiB0eXBlb2YgYSA9PT0gXCJmdW5jdGlvblwiID8gcmVzaXplV2luZG93KGEpIDogcmVzaXplRWxlbWVudChhLCBiKTtcbn1cblxuZXhwb3J0IHsgcmVzaXplIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/stats/animation-count.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ activeAnimations: () => (/* binding */ activeAnimations)\n/* harmony export */ });\nconst activeAnimations = {\n layout: 0,\n mainThread: 0,\n waapi: 0,\n};\n\n\n//# sourceMappingURL=animation-count.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvc3RhdHMvYW5pbWF0aW9uLWNvdW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3N0YXRzL2FuaW1hdGlvbi1jb3VudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYWN0aXZlQW5pbWF0aW9ucyA9IHtcbiAgICBsYXlvdXQ6IDAsXG4gICAgbWFpblRocmVhZDogMCxcbiAgICB3YWFwaTogMCxcbn07XG5cbmV4cG9ydCB7IGFjdGl2ZUFuaW1hdGlvbnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFuaW1hdGlvbi1jb3VudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs": +/*!**********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/stats/buffer.mjs ***! + \**********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ statsBuffer: () => (/* binding */ statsBuffer)\n/* harmony export */ });\nconst statsBuffer = {\n value: null,\n addProjectionMetrics: null,\n};\n\n\n//# sourceMappingURL=buffer.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvc3RhdHMvYnVmZmVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9zdGF0cy9idWZmZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHN0YXRzQnVmZmVyID0ge1xuICAgIHZhbHVlOiBudWxsLFxuICAgIGFkZFByb2plY3Rpb25NZXRyaWNzOiBudWxsLFxufTtcblxuZXhwb3J0IHsgc3RhdHNCdWZmZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1ZmZlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/delay.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/delay.mjs ***! + \*********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ delay: () => (/* binding */ delay),\n/* harmony export */ delayInSeconds: () => (/* binding */ delayInSeconds)\n/* harmony export */ });\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.setup(checkElapsed, true);\n return () => (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(checkElapsed);\n}\nfunction delayInSeconds(callback, timeout) {\n return delay(callback, (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(timeout));\n}\n\n\n//# sourceMappingURL=delay.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvZGVsYXkubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWtEO0FBQ0c7QUFDTzs7QUFFNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsMERBQUk7QUFDdEIsNEJBQTRCLFdBQVc7QUFDdkM7QUFDQTtBQUNBLFlBQVksaUVBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0EsSUFBSSx1REFBSztBQUNULGlCQUFpQixpRUFBVztBQUM1QjtBQUNBO0FBQ0EsMkJBQTJCLG1FQUFxQjtBQUNoRDs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL2RlbGF5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0aW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL3N5bmMtdGltZS5tanMnO1xuaW1wb3J0IHsgc2Vjb25kc1RvTWlsbGlzZWNvbmRzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGZyYW1lLCBjYW5jZWxGcmFtZSB9IGZyb20gJy4uL2ZyYW1lbG9vcC9mcmFtZS5tanMnO1xuXG4vKipcbiAqIFRpbWVvdXQgZGVmaW5lZCBpbiBtc1xuICovXG5mdW5jdGlvbiBkZWxheShjYWxsYmFjaywgdGltZW91dCkge1xuICAgIGNvbnN0IHN0YXJ0ID0gdGltZS5ub3coKTtcbiAgICBjb25zdCBjaGVja0VsYXBzZWQgPSAoeyB0aW1lc3RhbXAgfSkgPT4ge1xuICAgICAgICBjb25zdCBlbGFwc2VkID0gdGltZXN0YW1wIC0gc3RhcnQ7XG4gICAgICAgIGlmIChlbGFwc2VkID49IHRpbWVvdXQpIHtcbiAgICAgICAgICAgIGNhbmNlbEZyYW1lKGNoZWNrRWxhcHNlZCk7XG4gICAgICAgICAgICBjYWxsYmFjayhlbGFwc2VkIC0gdGltZW91dCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZyYW1lLnNldHVwKGNoZWNrRWxhcHNlZCwgdHJ1ZSk7XG4gICAgcmV0dXJuICgpID0+IGNhbmNlbEZyYW1lKGNoZWNrRWxhcHNlZCk7XG59XG5mdW5jdGlvbiBkZWxheUluU2Vjb25kcyhjYWxsYmFjaywgdGltZW91dCkge1xuICAgIHJldHVybiBkZWxheShjYWxsYmFjaywgc2Vjb25kc1RvTWlsbGlzZWNvbmRzKHRpbWVvdXQpKTtcbn1cblxuZXhwb3J0IHsgZGVsYXksIGRlbGF5SW5TZWNvbmRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWxheS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/delay.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/interpolate.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ interpolate: () => (/* binding */ interpolate)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _mix_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mix/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\");\n\n\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || motion_utils__WEBPACK_IMPORTED_MODULE_0__.MotionGlobalConfig.mix || _mix_index_mjs__WEBPACK_IMPORTED_MODULE_1__.mix;\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || motion_utils__WEBPACK_IMPORTED_MODULE_2__.noop : ease;\n mixer = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.pipe)(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revisit this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.invariant)(inputLength === output.length, \"Both input and output ranges must be the same length\", \"range-length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && output[0] === output[1])\n return () => output[1];\n const isZeroDeltaRange = input[0] === input[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n if (isZeroDeltaRange && v < input[0])\n return output[0];\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.progress)(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator((0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.clamp)(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\n\n//# sourceMappingURL=interpolate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaW50ZXJwb2xhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQTBGO0FBQ3BEOztBQUV0QztBQUNBO0FBQ0Esd0NBQXdDLDREQUFrQixRQUFRLCtDQUFHO0FBQ3JFO0FBQ0Esb0JBQW9CLGVBQWU7QUFDbkM7QUFDQTtBQUNBLG9FQUFvRSw4Q0FBSTtBQUN4RSxvQkFBb0Isa0RBQUk7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLHFDQUFxQyxJQUFJO0FBQy9FO0FBQ0EsSUFBSSx1REFBUztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixzQkFBc0I7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msc0RBQVE7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLG1EQUFLO0FBQ25DO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9pbnRlcnBvbGF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW52YXJpYW50LCBjbGFtcCwgTW90aW9uR2xvYmFsQ29uZmlnLCBub29wLCBwaXBlLCBwcm9ncmVzcyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBtaXggfSBmcm9tICcuL21peC9pbmRleC5tanMnO1xuXG5mdW5jdGlvbiBjcmVhdGVNaXhlcnMob3V0cHV0LCBlYXNlLCBjdXN0b21NaXhlcikge1xuICAgIGNvbnN0IG1peGVycyA9IFtdO1xuICAgIGNvbnN0IG1peGVyRmFjdG9yeSA9IGN1c3RvbU1peGVyIHx8IE1vdGlvbkdsb2JhbENvbmZpZy5taXggfHwgbWl4O1xuICAgIGNvbnN0IG51bU1peGVycyA9IG91dHB1dC5sZW5ndGggLSAxO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtTWl4ZXJzOyBpKyspIHtcbiAgICAgICAgbGV0IG1peGVyID0gbWl4ZXJGYWN0b3J5KG91dHB1dFtpXSwgb3V0cHV0W2kgKyAxXSk7XG4gICAgICAgIGlmIChlYXNlKSB7XG4gICAgICAgICAgICBjb25zdCBlYXNpbmdGdW5jdGlvbiA9IEFycmF5LmlzQXJyYXkoZWFzZSkgPyBlYXNlW2ldIHx8IG5vb3AgOiBlYXNlO1xuICAgICAgICAgICAgbWl4ZXIgPSBwaXBlKGVhc2luZ0Z1bmN0aW9uLCBtaXhlcik7XG4gICAgICAgIH1cbiAgICAgICAgbWl4ZXJzLnB1c2gobWl4ZXIpO1xuICAgIH1cbiAgICByZXR1cm4gbWl4ZXJzO1xufVxuLyoqXG4gKiBDcmVhdGUgYSBmdW5jdGlvbiB0aGF0IG1hcHMgZnJvbSBhIG51bWVyaWNhbCBpbnB1dCBhcnJheSB0byBhIGdlbmVyaWMgb3V0cHV0IGFycmF5LlxuICpcbiAqIEFjY2VwdHM6XG4gKiAgIC0gTnVtYmVyc1xuICogICAtIENvbG9ycyAoaGV4LCBoc2wsIGhzbGEsIHJnYiwgcmdiYSlcbiAqICAgLSBDb21wbGV4IChjb21iaW5hdGlvbnMgb2Ygb25lIG9yIG1vcmUgbnVtYmVycyBvciBzdHJpbmdzKVxuICpcbiAqIGBgYGpzeFxuICogY29uc3QgbWl4Q29sb3IgPSBpbnRlcnBvbGF0ZShbMCwgMV0sIFsnI2ZmZicsICcjMDAwJ10pXG4gKlxuICogbWl4Q29sb3IoMC41KSAvLyAncmdiYSgxMjgsIDEyOCwgMTI4LCAxKSdcbiAqIGBgYFxuICpcbiAqIFRPRE8gUmV2aXNpdCB0aGlzIGFwcHJvYWNoIG9uY2Ugd2UndmUgbW92ZWQgdG8gZGF0YSBtb2RlbHMgZm9yIHZhbHVlcyxcbiAqIHByb2JhYmx5IG5vdCBuZWVkZWQgdG8gcHJlZ2VuZXJhdGUgbWl4ZXIgZnVuY3Rpb25zLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gaW50ZXJwb2xhdGUoaW5wdXQsIG91dHB1dCwgeyBjbGFtcDogaXNDbGFtcCA9IHRydWUsIGVhc2UsIG1peGVyIH0gPSB7fSkge1xuICAgIGNvbnN0IGlucHV0TGVuZ3RoID0gaW5wdXQubGVuZ3RoO1xuICAgIGludmFyaWFudChpbnB1dExlbmd0aCA9PT0gb3V0cHV0Lmxlbmd0aCwgXCJCb3RoIGlucHV0IGFuZCBvdXRwdXQgcmFuZ2VzIG11c3QgYmUgdGhlIHNhbWUgbGVuZ3RoXCIsIFwicmFuZ2UtbGVuZ3RoXCIpO1xuICAgIC8qKlxuICAgICAqIElmIHdlJ3JlIG9ubHkgcHJvdmlkZWQgYSBzaW5nbGUgaW5wdXQsIHdlIGNhbiBqdXN0IG1ha2UgYSBmdW5jdGlvblxuICAgICAqIHRoYXQgcmV0dXJucyB0aGUgb3V0cHV0LlxuICAgICAqL1xuICAgIGlmIChpbnB1dExlbmd0aCA9PT0gMSlcbiAgICAgICAgcmV0dXJuICgpID0+IG91dHB1dFswXTtcbiAgICBpZiAoaW5wdXRMZW5ndGggPT09IDIgJiYgb3V0cHV0WzBdID09PSBvdXRwdXRbMV0pXG4gICAgICAgIHJldHVybiAoKSA9PiBvdXRwdXRbMV07XG4gICAgY29uc3QgaXNaZXJvRGVsdGFSYW5nZSA9IGlucHV0WzBdID09PSBpbnB1dFsxXTtcbiAgICAvLyBJZiBpbnB1dCBydW5zIGhpZ2hlc3QgLT4gbG93ZXN0LCByZXZlcnNlIGJvdGggYXJyYXlzXG4gICAgaWYgKGlucHV0WzBdID4gaW5wdXRbaW5wdXRMZW5ndGggLSAxXSkge1xuICAgICAgICBpbnB1dCA9IFsuLi5pbnB1dF0ucmV2ZXJzZSgpO1xuICAgICAgICBvdXRwdXQgPSBbLi4ub3V0cHV0XS5yZXZlcnNlKCk7XG4gICAgfVxuICAgIGNvbnN0IG1peGVycyA9IGNyZWF0ZU1peGVycyhvdXRwdXQsIGVhc2UsIG1peGVyKTtcbiAgICBjb25zdCBudW1NaXhlcnMgPSBtaXhlcnMubGVuZ3RoO1xuICAgIGNvbnN0IGludGVycG9sYXRvciA9ICh2KSA9PiB7XG4gICAgICAgIGlmIChpc1plcm9EZWx0YVJhbmdlICYmIHYgPCBpbnB1dFswXSlcbiAgICAgICAgICAgIHJldHVybiBvdXRwdXRbMF07XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgaWYgKG51bU1peGVycyA+IDEpIHtcbiAgICAgICAgICAgIGZvciAoOyBpIDwgaW5wdXQubGVuZ3RoIC0gMjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHYgPCBpbnB1dFtpICsgMV0pXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb2dyZXNzSW5SYW5nZSA9IHByb2dyZXNzKGlucHV0W2ldLCBpbnB1dFtpICsgMV0sIHYpO1xuICAgICAgICByZXR1cm4gbWl4ZXJzW2ldKHByb2dyZXNzSW5SYW5nZSk7XG4gICAgfTtcbiAgICByZXR1cm4gaXNDbGFtcFxuICAgICAgICA/ICh2KSA9PiBpbnRlcnBvbGF0b3IoY2xhbXAoaW5wdXRbMF0sIGlucHV0W2lucHV0TGVuZ3RoIC0gMV0sIHYpKVxuICAgICAgICA6IGludGVycG9sYXRvcjtcbn1cblxuZXhwb3J0IHsgaW50ZXJwb2xhdGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVycG9sYXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/is-html-element.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs\");\n\n\n/**\n * Checks if an element is an HTML element in a way\n * that works across iframes\n */\nfunction isHTMLElement(element) {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isObject)(element) && \"offsetHeight\" in element;\n}\n\n\n//# sourceMappingURL=is-html-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaXMtaHRtbC1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF3Qzs7QUFFeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsc0RBQVE7QUFDbkI7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9pcy1odG1sLWVsZW1lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYW4gZWxlbWVudCBpcyBhbiBIVE1MIGVsZW1lbnQgaW4gYSB3YXlcbiAqIHRoYXQgd29ya3MgYWNyb3NzIGlmcmFtZXNcbiAqL1xuZnVuY3Rpb24gaXNIVE1MRWxlbWVudChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGlzT2JqZWN0KGVsZW1lbnQpICYmIFwib2Zmc2V0SGVpZ2h0XCIgaW4gZWxlbWVudDtcbn1cblxuZXhwb3J0IHsgaXNIVE1MRWxlbWVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtaHRtbC1lbGVtZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGElement: () => (/* binding */ isSVGElement)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs\");\n\n\n/**\n * Checks if an element is an SVG element in a way\n * that works across iframes\n */\nfunction isSVGElement(element) {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isObject)(element) && \"ownerSVGElement\" in element;\n}\n\n\n//# sourceMappingURL=is-svg-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaXMtc3ZnLWVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdDOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxzREFBUTtBQUNuQjs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL2lzLXN2Zy1lbGVtZW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGFuIGVsZW1lbnQgaXMgYW4gU1ZHIGVsZW1lbnQgaW4gYSB3YXlcbiAqIHRoYXQgd29ya3MgYWNyb3NzIGlmcmFtZXNcbiAqL1xuZnVuY3Rpb24gaXNTVkdFbGVtZW50KGVsZW1lbnQpIHtcbiAgICByZXR1cm4gaXNPYmplY3QoZWxlbWVudCkgJiYgXCJvd25lclNWR0VsZW1lbnRcIiBpbiBlbGVtZW50O1xufVxuXG5leHBvcnQgeyBpc1NWR0VsZW1lbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXN2Zy1lbGVtZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGSVGElement: () => (/* binding */ isSVGSVGElement)\n/* harmony export */ });\n/* harmony import */ var _is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-svg-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n\n\n/**\n * Checks if an element is specifically an SVGSVGElement (the root SVG element)\n * in a way that works across iframes\n */\nfunction isSVGSVGElement(element) {\n return (0,_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__.isSVGElement)(element) && element.tagName === \"svg\";\n}\n\n\n//# sourceMappingURL=is-svg-svg-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaXMtc3ZnLXN2Zy1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvRDs7QUFFcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsaUVBQVk7QUFDdkI7O0FBRTJCO0FBQzNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9pcy1zdmctc3ZnLWVsZW1lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU1ZHRWxlbWVudCB9IGZyb20gJy4vaXMtc3ZnLWVsZW1lbnQubWpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYW4gZWxlbWVudCBpcyBzcGVjaWZpY2FsbHkgYW4gU1ZHU1ZHRWxlbWVudCAodGhlIHJvb3QgU1ZHIGVsZW1lbnQpXG4gKiBpbiBhIHdheSB0aGF0IHdvcmtzIGFjcm9zcyBpZnJhbWVzXG4gKi9cbmZ1bmN0aW9uIGlzU1ZHU1ZHRWxlbWVudChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGlzU1ZHRWxlbWVudChlbGVtZW50KSAmJiBlbGVtZW50LnRhZ05hbWUgPT09IFwic3ZnXCI7XG59XG5cbmV4cG9ydCB7IGlzU1ZHU1ZHRWxlbWVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtc3ZnLXN2Zy1lbGVtZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/color.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixColor: () => (/* binding */ mixColor),\n/* harmony export */ mixLinearColor: () => (/* binding */ mixLinearColor)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _value_types_color_hex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/color/hex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\");\n/* harmony import */ var _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../value/types/color/hsla.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\");\n/* harmony import */ var _value_types_color_hsla_to_rgba_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../value/types/color/hsla-to-rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs\");\n/* harmony import */ var _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/types/color/rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n/* harmony import */ var _immediate_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./immediate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\n\n\n\n\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [_value_types_color_hex_mjs__WEBPACK_IMPORTED_MODULE_0__.hex, _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba, _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.warning)(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`, \"color-not-animatable\");\n if (!Boolean(type))\n return false;\n let model = type.parse(color);\n if (type === _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla) {\n // TODO Remove this cast - needed since Motion's stricter typing\n model = (0,_value_types_color_hsla_to_rgba_mjs__WEBPACK_IMPORTED_MODULE_4__.hslaToRgba)(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n if (!fromRGBA || !toRGBA) {\n return (0,_immediate_mjs__WEBPACK_IMPORTED_MODULE_5__.mixImmediate)(from, to);\n }\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = (0,_number_mjs__WEBPACK_IMPORTED_MODULE_6__.mixNumber)(fromRGBA.alpha, toRGBA.alpha, v);\n return _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba.transform(blended);\n };\n};\n\n\n//# sourceMappingURL=color.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2NvbG9yLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBdUM7QUFDZTtBQUNFO0FBQ2M7QUFDZDtBQUNUO0FBQ047O0FBRXpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMkRBQUcsRUFBRSw2REFBSSxFQUFFLDZEQUFJO0FBQ25DO0FBQ0E7QUFDQTtBQUNBLElBQUkscURBQU8sb0JBQW9CLE1BQU07QUFDckM7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDZEQUFJO0FBQ3JCO0FBQ0EsZ0JBQWdCLCtFQUFVO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSw0REFBWTtBQUMzQjtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixzREFBUztBQUNqQyxlQUFlLDZEQUFJO0FBQ25CO0FBQ0E7O0FBRW9DO0FBQ3BDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9taXgvY29sb3IubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm5pbmcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgaGV4IH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvY29sb3IvaGV4Lm1qcyc7XG5pbXBvcnQgeyBoc2xhIH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvY29sb3IvaHNsYS5tanMnO1xuaW1wb3J0IHsgaHNsYVRvUmdiYSB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbG9yL2hzbGEtdG8tcmdiYS5tanMnO1xuaW1wb3J0IHsgcmdiYSB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbG9yL3JnYmEubWpzJztcbmltcG9ydCB7IG1peEltbWVkaWF0ZSB9IGZyb20gJy4vaW1tZWRpYXRlLm1qcyc7XG5pbXBvcnQgeyBtaXhOdW1iZXIgfSBmcm9tICcuL251bWJlci5tanMnO1xuXG4vLyBMaW5lYXIgY29sb3Igc3BhY2UgYmxlbmRpbmdcbi8vIEV4cGxhaW5lZCBodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUxLbnFFQ2NnNkd3XG4vLyBEZW1vbnN0cmF0ZWQgaHR0cDovL2NvZGVwZW4uaW8vb3N1Ymxha2UvcGVuL3hHVlZhTlxuY29uc3QgbWl4TGluZWFyQ29sb3IgPSAoZnJvbSwgdG8sIHYpID0+IHtcbiAgICBjb25zdCBmcm9tRXhwbyA9IGZyb20gKiBmcm9tO1xuICAgIGNvbnN0IGV4cG8gPSB2ICogKHRvICogdG8gLSBmcm9tRXhwbykgKyBmcm9tRXhwbztcbiAgICByZXR1cm4gZXhwbyA8IDAgPyAwIDogTWF0aC5zcXJ0KGV4cG8pO1xufTtcbmNvbnN0IGNvbG9yVHlwZXMgPSBbaGV4LCByZ2JhLCBoc2xhXTtcbmNvbnN0IGdldENvbG9yVHlwZSA9ICh2KSA9PiBjb2xvclR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUudGVzdCh2KSk7XG5mdW5jdGlvbiBhc1JHQkEoY29sb3IpIHtcbiAgICBjb25zdCB0eXBlID0gZ2V0Q29sb3JUeXBlKGNvbG9yKTtcbiAgICB3YXJuaW5nKEJvb2xlYW4odHlwZSksIGAnJHtjb2xvcn0nIGlzIG5vdCBhbiBhbmltYXRhYmxlIGNvbG9yLiBVc2UgdGhlIGVxdWl2YWxlbnQgY29sb3IgY29kZSBpbnN0ZWFkLmAsIFwiY29sb3Itbm90LWFuaW1hdGFibGVcIik7XG4gICAgaWYgKCFCb29sZWFuKHR5cGUpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgbGV0IG1vZGVsID0gdHlwZS5wYXJzZShjb2xvcik7XG4gICAgaWYgKHR5cGUgPT09IGhzbGEpIHtcbiAgICAgICAgLy8gVE9ETyBSZW1vdmUgdGhpcyBjYXN0IC0gbmVlZGVkIHNpbmNlIE1vdGlvbidzIHN0cmljdGVyIHR5cGluZ1xuICAgICAgICBtb2RlbCA9IGhzbGFUb1JnYmEobW9kZWwpO1xuICAgIH1cbiAgICByZXR1cm4gbW9kZWw7XG59XG5jb25zdCBtaXhDb2xvciA9IChmcm9tLCB0bykgPT4ge1xuICAgIGNvbnN0IGZyb21SR0JBID0gYXNSR0JBKGZyb20pO1xuICAgIGNvbnN0IHRvUkdCQSA9IGFzUkdCQSh0byk7XG4gICAgaWYgKCFmcm9tUkdCQSB8fCAhdG9SR0JBKSB7XG4gICAgICAgIHJldHVybiBtaXhJbW1lZGlhdGUoZnJvbSwgdG8pO1xuICAgIH1cbiAgICBjb25zdCBibGVuZGVkID0geyAuLi5mcm9tUkdCQSB9O1xuICAgIHJldHVybiAodikgPT4ge1xuICAgICAgICBibGVuZGVkLnJlZCA9IG1peExpbmVhckNvbG9yKGZyb21SR0JBLnJlZCwgdG9SR0JBLnJlZCwgdik7XG4gICAgICAgIGJsZW5kZWQuZ3JlZW4gPSBtaXhMaW5lYXJDb2xvcihmcm9tUkdCQS5ncmVlbiwgdG9SR0JBLmdyZWVuLCB2KTtcbiAgICAgICAgYmxlbmRlZC5ibHVlID0gbWl4TGluZWFyQ29sb3IoZnJvbVJHQkEuYmx1ZSwgdG9SR0JBLmJsdWUsIHYpO1xuICAgICAgICBibGVuZGVkLmFscGhhID0gbWl4TnVtYmVyKGZyb21SR0JBLmFscGhhLCB0b1JHQkEuYWxwaGEsIHYpO1xuICAgICAgICByZXR1cm4gcmdiYS50cmFuc2Zvcm0oYmxlbmRlZCk7XG4gICAgfTtcbn07XG5cbmV4cG9ydCB7IG1peENvbG9yLCBtaXhMaW5lYXJDb2xvciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29sb3IubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/complex.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getMixer: () => (/* binding */ getMixer),\n/* harmony export */ mixArray: () => (/* binding */ mixArray),\n/* harmony export */ mixComplex: () => (/* binding */ mixComplex),\n/* harmony export */ mixObject: () => (/* binding */ mixObject)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../value/types/color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _color_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./color.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs\");\n/* harmony import */ var _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./immediate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _visibility_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs\");\n\n\n\n\n\n\n\n\n\nfunction mixNumber(a, b) {\n return (p) => (0,_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return (0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableToken)(a)\n ? _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate\n : _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__.color.test(a)\n ? _color_mjs__WEBPACK_IMPORTED_MODULE_4__.mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__.color.test(a) ? _color_mjs__WEBPACK_IMPORTED_MODULE_4__.mixColor : mixObject;\n }\n return _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n}\nfunction matchOrder(origin, target) {\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = origin.values[originIndex] ?? 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.complex.createTransformer(target);\n const originStats = (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.analyseComplexValue)(origin);\n const targetStats = (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.analyseComplexValue)(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n if ((_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.invisibleValues.has(origin) &&\n !targetStats.values.length) ||\n (_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.invisibleValues.has(target) &&\n !originStats.values.length)) {\n return (0,_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.mixVisibility)(origin, target);\n }\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_7__.pipe)(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\n }\n else {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_8__.warning)(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`, \"complex-values-different\");\n return (0,_immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate)(origin, target);\n }\n};\n\n\n//# sourceMappingURL=complex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2NvbXBsZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBNkM7QUFDa0M7QUFDckI7QUFDeUI7QUFDNUM7QUFDUTtBQUNTO0FBQ1U7O0FBRWxFO0FBQ0Esa0JBQWtCLHNEQUFXO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsd0ZBQWtCO0FBQ2pDLGNBQWMsd0RBQVk7QUFDMUIsY0FBYywrREFBSztBQUNuQixrQkFBa0IsZ0RBQVE7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSwrREFBSyxXQUFXLGdEQUFRO0FBQ3ZDO0FBQ0EsV0FBVyx3REFBWTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZUFBZTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCLG9CQUFvQiwwQkFBMEI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLG1FQUFPO0FBQzVCLHdCQUF3QixtRkFBbUI7QUFDM0Msd0JBQXdCLG1GQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsNERBQWU7QUFDNUI7QUFDQSxhQUFhLDREQUFlO0FBQzVCO0FBQ0EsbUJBQW1CLDhEQUFhO0FBQ2hDO0FBQ0EsZUFBZSxrREFBSTtBQUNuQjtBQUNBO0FBQ0EsUUFBUSxxREFBTywwQkFBMEIsT0FBTyxTQUFTLE9BQU87QUFDaEUsZUFBZSw0REFBWTtBQUMzQjtBQUNBOztBQUVxRDtBQUNyRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2NvbXBsZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBpcGUsIHdhcm5pbmcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgaXNDU1NWYXJpYWJsZVRva2VuIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL3V0aWxzL2lzLWNzcy12YXJpYWJsZS5tanMnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9jb2xvci9pbmRleC5tanMnO1xuaW1wb3J0IHsgY29tcGxleCwgYW5hbHlzZUNvbXBsZXhWYWx1ZSB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzJztcbmltcG9ydCB7IG1peENvbG9yIH0gZnJvbSAnLi9jb2xvci5tanMnO1xuaW1wb3J0IHsgbWl4SW1tZWRpYXRlIH0gZnJvbSAnLi9pbW1lZGlhdGUubWpzJztcbmltcG9ydCB7IG1peE51bWJlciBhcyBtaXhOdW1iZXIkMSB9IGZyb20gJy4vbnVtYmVyLm1qcyc7XG5pbXBvcnQgeyBpbnZpc2libGVWYWx1ZXMsIG1peFZpc2liaWxpdHkgfSBmcm9tICcuL3Zpc2liaWxpdHkubWpzJztcblxuZnVuY3Rpb24gbWl4TnVtYmVyKGEsIGIpIHtcbiAgICByZXR1cm4gKHApID0+IG1peE51bWJlciQxKGEsIGIsIHApO1xufVxuZnVuY3Rpb24gZ2V0TWl4ZXIoYSkge1xuICAgIGlmICh0eXBlb2YgYSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICByZXR1cm4gbWl4TnVtYmVyO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgYSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gaXNDU1NWYXJpYWJsZVRva2VuKGEpXG4gICAgICAgICAgICA/IG1peEltbWVkaWF0ZVxuICAgICAgICAgICAgOiBjb2xvci50ZXN0KGEpXG4gICAgICAgICAgICAgICAgPyBtaXhDb2xvclxuICAgICAgICAgICAgICAgIDogbWl4Q29tcGxleDtcbiAgICB9XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xuICAgICAgICByZXR1cm4gbWl4QXJyYXk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBhID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBjb2xvci50ZXN0KGEpID8gbWl4Q29sb3IgOiBtaXhPYmplY3Q7XG4gICAgfVxuICAgIHJldHVybiBtaXhJbW1lZGlhdGU7XG59XG5mdW5jdGlvbiBtaXhBcnJheShhLCBiKSB7XG4gICAgY29uc3Qgb3V0cHV0ID0gWy4uLmFdO1xuICAgIGNvbnN0IG51bVZhbHVlcyA9IG91dHB1dC5sZW5ndGg7XG4gICAgY29uc3QgYmxlbmRWYWx1ZSA9IGEubWFwKCh2LCBpKSA9PiBnZXRNaXhlcih2KSh2LCBiW2ldKSk7XG4gICAgcmV0dXJuIChwKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtVmFsdWVzOyBpKyspIHtcbiAgICAgICAgICAgIG91dHB1dFtpXSA9IGJsZW5kVmFsdWVbaV0ocCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9O1xufVxuZnVuY3Rpb24gbWl4T2JqZWN0KGEsIGIpIHtcbiAgICBjb25zdCBvdXRwdXQgPSB7IC4uLmEsIC4uLmIgfTtcbiAgICBjb25zdCBibGVuZFZhbHVlID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb3V0cHV0KSB7XG4gICAgICAgIGlmIChhW2tleV0gIT09IHVuZGVmaW5lZCAmJiBiW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYmxlbmRWYWx1ZVtrZXldID0gZ2V0TWl4ZXIoYVtrZXldKShhW2tleV0sIGJba2V5XSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICh2KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGJsZW5kVmFsdWUpIHtcbiAgICAgICAgICAgIG91dHB1dFtrZXldID0gYmxlbmRWYWx1ZVtrZXldKHYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIG1hdGNoT3JkZXIob3JpZ2luLCB0YXJnZXQpIHtcbiAgICBjb25zdCBvcmRlcmVkT3JpZ2luID0gW107XG4gICAgY29uc3QgcG9pbnRlcnMgPSB7IGNvbG9yOiAwLCB2YXI6IDAsIG51bWJlcjogMCB9O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0LnZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB0eXBlID0gdGFyZ2V0LnR5cGVzW2ldO1xuICAgICAgICBjb25zdCBvcmlnaW5JbmRleCA9IG9yaWdpbi5pbmRleGVzW3R5cGVdW3BvaW50ZXJzW3R5cGVdXTtcbiAgICAgICAgY29uc3Qgb3JpZ2luVmFsdWUgPSBvcmlnaW4udmFsdWVzW29yaWdpbkluZGV4XSA/PyAwO1xuICAgICAgICBvcmRlcmVkT3JpZ2luW2ldID0gb3JpZ2luVmFsdWU7XG4gICAgICAgIHBvaW50ZXJzW3R5cGVdKys7XG4gICAgfVxuICAgIHJldHVybiBvcmRlcmVkT3JpZ2luO1xufVxuY29uc3QgbWl4Q29tcGxleCA9IChvcmlnaW4sIHRhcmdldCkgPT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gY29tcGxleC5jcmVhdGVUcmFuc2Zvcm1lcih0YXJnZXQpO1xuICAgIGNvbnN0IG9yaWdpblN0YXRzID0gYW5hbHlzZUNvbXBsZXhWYWx1ZShvcmlnaW4pO1xuICAgIGNvbnN0IHRhcmdldFN0YXRzID0gYW5hbHlzZUNvbXBsZXhWYWx1ZSh0YXJnZXQpO1xuICAgIGNvbnN0IGNhbkludGVycG9sYXRlID0gb3JpZ2luU3RhdHMuaW5kZXhlcy52YXIubGVuZ3RoID09PSB0YXJnZXRTdGF0cy5pbmRleGVzLnZhci5sZW5ndGggJiZcbiAgICAgICAgb3JpZ2luU3RhdHMuaW5kZXhlcy5jb2xvci5sZW5ndGggPT09IHRhcmdldFN0YXRzLmluZGV4ZXMuY29sb3IubGVuZ3RoICYmXG4gICAgICAgIG9yaWdpblN0YXRzLmluZGV4ZXMubnVtYmVyLmxlbmd0aCA+PSB0YXJnZXRTdGF0cy5pbmRleGVzLm51bWJlci5sZW5ndGg7XG4gICAgaWYgKGNhbkludGVycG9sYXRlKSB7XG4gICAgICAgIGlmICgoaW52aXNpYmxlVmFsdWVzLmhhcyhvcmlnaW4pICYmXG4gICAgICAgICAgICAhdGFyZ2V0U3RhdHMudmFsdWVzLmxlbmd0aCkgfHxcbiAgICAgICAgICAgIChpbnZpc2libGVWYWx1ZXMuaGFzKHRhcmdldCkgJiZcbiAgICAgICAgICAgICAgICAhb3JpZ2luU3RhdHMudmFsdWVzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybiBtaXhWaXNpYmlsaXR5KG9yaWdpbiwgdGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGlwZShtaXhBcnJheShtYXRjaE9yZGVyKG9yaWdpblN0YXRzLCB0YXJnZXRTdGF0cyksIHRhcmdldFN0YXRzLnZhbHVlcyksIHRlbXBsYXRlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHdhcm5pbmcodHJ1ZSwgYENvbXBsZXggdmFsdWVzICcke29yaWdpbn0nIGFuZCAnJHt0YXJnZXR9JyB0b28gZGlmZmVyZW50IHRvIG1peC4gRW5zdXJlIGFsbCBjb2xvcnMgYXJlIG9mIHRoZSBzYW1lIHR5cGUsIGFuZCB0aGF0IGVhY2ggY29udGFpbnMgdGhlIHNhbWUgcXVhbnRpdHkgb2YgbnVtYmVyIGFuZCBjb2xvciB2YWx1ZXMuIEZhbGxpbmcgYmFjayB0byBpbnN0YW50IHRyYW5zaXRpb24uYCwgXCJjb21wbGV4LXZhbHVlcy1kaWZmZXJlbnRcIik7XG4gICAgICAgIHJldHVybiBtaXhJbW1lZGlhdGUob3JpZ2luLCB0YXJnZXQpO1xuICAgIH1cbn07XG5cbmV4cG9ydCB7IGdldE1peGVyLCBtaXhBcnJheSwgbWl4Q29tcGxleCwgbWl4T2JqZWN0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb21wbGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixImmediate: () => (/* binding */ mixImmediate)\n/* harmony export */ });\nfunction mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\n\n\n//# sourceMappingURL=immediate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2ltbWVkaWF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC9pbW1lZGlhdGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIG1peEltbWVkaWF0ZShhLCBiKSB7XG4gICAgcmV0dXJuIChwKSA9PiAocCA+IDAgPyBiIDogYSk7XG59XG5cbmV4cG9ydCB7IG1peEltbWVkaWF0ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1tZWRpYXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/index.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mix: () => (/* binding */ mix)\n/* harmony export */ });\n/* harmony import */ var _complex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./complex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return (0,_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(from, to, p);\n }\n const mixer = (0,_complex_mjs__WEBPACK_IMPORTED_MODULE_1__.getMixer)(from);\n return mixer(from, to);\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUM7QUFDQTs7QUFFekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHNEQUFTO0FBQ3hCO0FBQ0Esa0JBQWtCLHNEQUFRO0FBQzFCO0FBQ0E7O0FBRWU7QUFDZiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRNaXhlciB9IGZyb20gJy4vY29tcGxleC5tanMnO1xuaW1wb3J0IHsgbWl4TnVtYmVyIH0gZnJvbSAnLi9udW1iZXIubWpzJztcblxuZnVuY3Rpb24gbWl4KGZyb20sIHRvLCBwKSB7XG4gICAgaWYgKHR5cGVvZiBmcm9tID09PSBcIm51bWJlclwiICYmXG4gICAgICAgIHR5cGVvZiB0byA9PT0gXCJudW1iZXJcIiAmJlxuICAgICAgICB0eXBlb2YgcCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICByZXR1cm4gbWl4TnVtYmVyKGZyb20sIHRvLCBwKTtcbiAgICB9XG4gICAgY29uc3QgbWl4ZXIgPSBnZXRNaXhlcihmcm9tKTtcbiAgICByZXR1cm4gbWl4ZXIoZnJvbSwgdG8pO1xufVxuXG5leHBvcnQgeyBtaXggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/number.mjs ***! + \**************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixNumber: () => (/* binding */ mixNumber)\n/* harmony export */ });\n/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\n\n//# sourceMappingURL=number.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L251bWJlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVxQjtBQUNyQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L251bWJlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgVmFsdWUgaW4gcmFuZ2UgZnJvbSBwcm9ncmVzc1xuXG4gIEdpdmVuIGEgbG93ZXIgbGltaXQgYW5kIGFuIHVwcGVyIGxpbWl0LCB3ZSByZXR1cm4gdGhlIHZhbHVlIHdpdGhpblxuICB0aGF0IHJhbmdlIGFzIGV4cHJlc3NlZCBieSBwcm9ncmVzcyAodXN1YWxseSBhIG51bWJlciBmcm9tIDAgdG8gMSlcblxuICBTbyBwcm9ncmVzcyA9IDAuNSB3b3VsZCBjaGFuZ2VcblxuICBmcm9tIC0tLS0tLS0tIHRvXG5cbiAgdG9cblxuICBmcm9tIC0tLS0gdG9cblxuICBFLmcuIGZyb20gPSAxMCwgdG8gPSAyMCwgcHJvZ3Jlc3MgPSAwLjUgPT4gMTVcblxuICBAcGFyYW0gW251bWJlcl06IExvd2VyIGxpbWl0IG9mIHJhbmdlXG4gIEBwYXJhbSBbbnVtYmVyXTogVXBwZXIgbGltaXQgb2YgcmFuZ2VcbiAgQHBhcmFtIFtudW1iZXJdOiBUaGUgcHJvZ3Jlc3MgYmV0d2VlbiBsb3dlciBhbmQgdXBwZXIgbGltaXRzIGV4cHJlc3NlZCAwLTFcbiAgQHJldHVybiBbbnVtYmVyXTogVmFsdWUgYXMgY2FsY3VsYXRlZCBmcm9tIHByb2dyZXNzIHdpdGhpbiByYW5nZSAobm90IGxpbWl0ZWQgd2l0aGluIHJhbmdlKVxuKi9cbmNvbnN0IG1peE51bWJlciA9IChmcm9tLCB0bywgcHJvZ3Jlc3MpID0+IHtcbiAgICByZXR1cm4gZnJvbSArICh0byAtIGZyb20pICogcHJvZ3Jlc3M7XG59O1xuXG5leHBvcnQgeyBtaXhOdW1iZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW51bWJlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ invisibleValues: () => (/* binding */ invisibleValues),\n/* harmony export */ mixVisibility: () => (/* binding */ mixVisibility)\n/* harmony export */ });\nconst invisibleValues = new Set([\"none\", \"hidden\"]);\n/**\n * Returns a function that, when provided a progress value between 0 and 1,\n * will return the \"none\" or \"hidden\" string only when the progress is that of\n * the origin or target.\n */\nfunction mixVisibility(origin, target) {\n if (invisibleValues.has(origin)) {\n return (p) => (p <= 0 ? origin : target);\n }\n else {\n return (p) => (p >= 1 ? target : origin);\n }\n}\n\n\n//# sourceMappingURL=visibility.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L3Zpc2liaWxpdHkubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMEM7QUFDMUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC92aXNpYmlsaXR5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpbnZpc2libGVWYWx1ZXMgPSBuZXcgU2V0KFtcIm5vbmVcIiwgXCJoaWRkZW5cIl0pO1xuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCwgd2hlbiBwcm92aWRlZCBhIHByb2dyZXNzIHZhbHVlIGJldHdlZW4gMCBhbmQgMSxcbiAqIHdpbGwgcmV0dXJuIHRoZSBcIm5vbmVcIiBvciBcImhpZGRlblwiIHN0cmluZyBvbmx5IHdoZW4gdGhlIHByb2dyZXNzIGlzIHRoYXQgb2ZcbiAqIHRoZSBvcmlnaW4gb3IgdGFyZ2V0LlxuICovXG5mdW5jdGlvbiBtaXhWaXNpYmlsaXR5KG9yaWdpbiwgdGFyZ2V0KSB7XG4gICAgaWYgKGludmlzaWJsZVZhbHVlcy5oYXMob3JpZ2luKSkge1xuICAgICAgICByZXR1cm4gKHApID0+IChwIDw9IDAgPyBvcmlnaW4gOiB0YXJnZXQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIChwKSA9PiAocCA+PSAxID8gdGFyZ2V0IDogb3JpZ2luKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IGludmlzaWJsZVZhbHVlcywgbWl4VmlzaWJpbGl0eSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmlzaWJpbGl0eS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveElements: () => (/* binding */ resolveElements)\n/* harmony export */ });\nfunction resolveElements(elementOrSelector, scope, selectorCache) {\n if (elementOrSelector == null) {\n return [];\n }\n if (elementOrSelector instanceof EventTarget) {\n return [elementOrSelector];\n }\n else if (typeof elementOrSelector === \"string\") {\n let root = document;\n if (scope) {\n root = scope.current;\n }\n const elements = selectorCache?.[elementOrSelector] ??\n root.querySelectorAll(elementOrSelector);\n return elements ? Array.from(elements) : [];\n }\n return Array.from(elementOrSelector).filter((element) => element != null);\n}\n\n\n//# sourceMappingURL=resolve-elements.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvcmVzb2x2ZS1lbGVtZW50cy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMkI7QUFDM0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3Jlc29sdmUtZWxlbWVudHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHJlc29sdmVFbGVtZW50cyhlbGVtZW50T3JTZWxlY3Rvciwgc2NvcGUsIHNlbGVjdG9yQ2FjaGUpIHtcbiAgICBpZiAoZWxlbWVudE9yU2VsZWN0b3IgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGlmIChlbGVtZW50T3JTZWxlY3RvciBpbnN0YW5jZW9mIEV2ZW50VGFyZ2V0KSB7XG4gICAgICAgIHJldHVybiBbZWxlbWVudE9yU2VsZWN0b3JdO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZWxlbWVudE9yU2VsZWN0b3IgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgbGV0IHJvb3QgPSBkb2N1bWVudDtcbiAgICAgICAgaWYgKHNjb3BlKSB7XG4gICAgICAgICAgICByb290ID0gc2NvcGUuY3VycmVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbGVtZW50cyA9IHNlbGVjdG9yQ2FjaGU/LltlbGVtZW50T3JTZWxlY3Rvcl0gPz9cbiAgICAgICAgICAgIHJvb3QucXVlcnlTZWxlY3RvckFsbChlbGVtZW50T3JTZWxlY3Rvcik7XG4gICAgICAgIHJldHVybiBlbGVtZW50cyA/IEFycmF5LmZyb20oZWxlbWVudHMpIDogW107XG4gICAgfVxuICAgIHJldHVybiBBcnJheS5mcm9tKGVsZW1lbnRPclNlbGVjdG9yKS5maWx0ZXIoKGVsZW1lbnQpID0+IGVsZW1lbnQgIT0gbnVsbCk7XG59XG5cbmV4cG9ydCB7IHJlc29sdmVFbGVtZW50cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1lbGVtZW50cy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/flags.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsFlags: () => (/* binding */ supportsFlags)\n/* harmony export */ });\n/**\n * Add the ability for test suites to manually set support flags\n * to better test more environments.\n */\nconst supportsFlags = {};\n\n\n//# sourceMappingURL=flags.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvZmxhZ3MubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvZmxhZ3MubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWRkIHRoZSBhYmlsaXR5IGZvciB0ZXN0IHN1aXRlcyB0byBtYW51YWxseSBzZXQgc3VwcG9ydCBmbGFnc1xuICogdG8gYmV0dGVyIHRlc3QgbW9yZSBlbnZpcm9ubWVudHMuXG4gKi9cbmNvbnN0IHN1cHBvcnRzRmxhZ3MgPSB7fTtcblxuZXhwb3J0IHsgc3VwcG9ydHNGbGFncyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmxhZ3MubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsLinearEasing: () => (/* binding */ supportsLinearEasing)\n/* harmony export */ });\n/* harmony import */ var _memo_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./memo.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs\");\n\n\nconst supportsLinearEasing = /*@__PURE__*/ (0,_memo_mjs__WEBPACK_IMPORTED_MODULE_0__.memoSupports)(() => {\n try {\n document\n .createElement(\"div\")\n .animate({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n }\n catch (e) {\n return false;\n }\n return true;\n}, \"linearEasing\");\n\n\n//# sourceMappingURL=linear-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvbGluZWFyLWVhc2luZy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBMEM7O0FBRTFDLDJDQUEyQyx1REFBWTtBQUN2RDtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsWUFBWSxJQUFJLHdCQUF3QjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFK0I7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL2xpbmVhci1lYXNpbmcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW9TdXBwb3J0cyB9IGZyb20gJy4vbWVtby5tanMnO1xuXG5jb25zdCBzdXBwb3J0c0xpbmVhckVhc2luZyA9IC8qQF9fUFVSRV9fKi8gbWVtb1N1cHBvcnRzKCgpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIilcbiAgICAgICAgICAgIC5hbmltYXRlKHsgb3BhY2l0eTogMCB9LCB7IGVhc2luZzogXCJsaW5lYXIoMCwgMSlcIiB9KTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn0sIFwibGluZWFyRWFzaW5nXCIpO1xuXG5leHBvcnQgeyBzdXBwb3J0c0xpbmVhckVhc2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGluZWFyLWVhc2luZy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/memo.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ memoSupports: () => (/* binding */ memoSupports)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs\");\n/* harmony import */ var _flags_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flags.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs\");\n\n\n\nfunction memoSupports(callback, supportsFlag) {\n const memoized = (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.memo)(callback);\n return () => _flags_mjs__WEBPACK_IMPORTED_MODULE_1__.supportsFlags[supportsFlag] ?? memoized();\n}\n\n\n//# sourceMappingURL=memo.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvbWVtby5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9DO0FBQ1E7O0FBRTVDO0FBQ0EscUJBQXFCLGtEQUFJO0FBQ3pCLGlCQUFpQixxREFBYTtBQUM5Qjs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL21lbW8ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8gfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgc3VwcG9ydHNGbGFncyB9IGZyb20gJy4vZmxhZ3MubWpzJztcblxuZnVuY3Rpb24gbWVtb1N1cHBvcnRzKGNhbGxiYWNrLCBzdXBwb3J0c0ZsYWcpIHtcbiAgICBjb25zdCBtZW1vaXplZCA9IG1lbW8oY2FsbGJhY2spO1xuICAgIHJldHVybiAoKSA9PiBzdXBwb3J0c0ZsYWdzW3N1cHBvcnRzRmxhZ10gPz8gbWVtb2l6ZWQoKTtcbn1cblxuZXhwb3J0IHsgbWVtb1N1cHBvcnRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZW1vLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsScrollTimeline: () => (/* binding */ supportsScrollTimeline)\n/* harmony export */ });\n/* harmony import */ var _memo_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./memo.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs\");\n\n\nconst supportsScrollTimeline = /* @__PURE__ */ (0,_memo_mjs__WEBPACK_IMPORTED_MODULE_0__.memoSupports)(() => window.ScrollTimeline !== undefined, \"scrollTimeline\");\n\n\n//# sourceMappingURL=scroll-timeline.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvc2Nyb2xsLXRpbWVsaW5lLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEwQzs7QUFFMUMsK0NBQStDLHVEQUFZOztBQUV6QjtBQUNsQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvc2Nyb2xsLXRpbWVsaW5lLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZW1vU3VwcG9ydHMgfSBmcm9tICcuL21lbW8ubWpzJztcblxuY29uc3Qgc3VwcG9ydHNTY3JvbGxUaW1lbGluZSA9IC8qIEBfX1BVUkVfXyAqLyBtZW1vU3VwcG9ydHMoKCkgPT4gd2luZG93LlNjcm9sbFRpbWVsaW5lICE9PSB1bmRlZmluZWQsIFwic2Nyb2xsVGltZWxpbmVcIik7XG5cbmV4cG9ydCB7IHN1cHBvcnRzU2Nyb2xsVGltZWxpbmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjcm9sbC10aW1lbGluZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/index.mjs ***! + \*********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionValue: () => (/* binding */ MotionValue),\n/* harmony export */ collectMotionValues: () => (/* binding */ collectMotionValues),\n/* harmony export */ motionValue: () => (/* binding */ motionValue)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n */\n constructor(init, options = {}) {\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = null;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v) => {\n const currentTime = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n /**\n * If we're updating the value during another frame or eventloop\n * than the previous frame, then the we set the previous frame value\n * to current.\n */\n if (this.updatedAt !== currentTime) {\n this.setPrevFrameValue();\n }\n this.prev = this.current;\n this.setCurrent(v);\n // Update update subscribers\n if (this.current !== this.prev) {\n this.events.change?.notify(this.current);\n if (this.dependents) {\n for (const dependent of this.dependents) {\n dependent.dirty();\n }\n }\n }\n };\n this.hasAnimated = false;\n this.setCurrent(init);\n this.owner = options.owner;\n }\n setCurrent(current) {\n this.current = current;\n this.updatedAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n if (this.canTrackVelocity === null && current !== undefined) {\n this.canTrackVelocity = isFloat(this.current);\n }\n }\n setPrevFrameValue(prevFrameValue = this.current) {\n this.prevFrameValue = prevFrameValue;\n this.prevUpdatedAt = this.updatedAt;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return <motion.div style={{ x }} />\n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (true) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warnOnce)(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new motion_utils__WEBPACK_IMPORTED_MODULE_2__.SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__.frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v) {\n if (!this.passiveEffect) {\n this.updateAndNotify(v);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = undefined;\n this.prevFrameValue = prev;\n this.prevUpdatedAt = this.updatedAt - delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v, endAnimation = true) {\n this.updateAndNotify(v);\n this.prev = v;\n this.prevUpdatedAt = this.prevFrameValue = undefined;\n endAnimation && this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n dirty() {\n this.events.change?.notify(this.current);\n }\n addDependent(dependent) {\n if (!this.dependents) {\n this.dependents = new Set();\n }\n this.dependents.add(dependent);\n }\n removeDependent(dependent) {\n if (this.dependents) {\n this.dependents.delete(dependent);\n }\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n const currentTime = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n if (!this.canTrackVelocity ||\n this.prevFrameValue === undefined ||\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n return 0;\n }\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n // Casts because of parseFloat's poor typing\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.velocityPerSecond)(parseFloat(this.current) -\n parseFloat(this.prevFrameValue), delta);\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.dependents?.clear();\n this.events.destroy?.notify();\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQWdGO0FBQzlCO0FBQ0g7O0FBRS9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsMERBQUk7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QiwwREFBSTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLHFDQUFxQyxLQUFLO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksSUFBcUM7QUFDakQsWUFBWSxzREFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLDZEQUFtQjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQUs7QUFDckI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsMERBQUk7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLCtEQUFpQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFeUQ7QUFDekQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YXJuT25jZSwgU3Vic2NyaXB0aW9uTWFuYWdlciwgdmVsb2NpdHlQZXJTZWNvbmQgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgdGltZSB9IGZyb20gJy4uL2ZyYW1lbG9vcC9zeW5jLXRpbWUubWpzJztcbmltcG9ydCB7IGZyYW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL2ZyYW1lLm1qcyc7XG5cbi8qKlxuICogTWF4aW11bSB0aW1lIGJldHdlZW4gdGhlIHZhbHVlIG9mIHR3byBmcmFtZXMsIGJleW9uZCB3aGljaCB3ZVxuICogYXNzdW1lIHRoZSB2ZWxvY2l0eSBoYXMgc2luY2UgYmVlbiAwLlxuICovXG5jb25zdCBNQVhfVkVMT0NJVFlfREVMVEEgPSAzMDtcbmNvbnN0IGlzRmxvYXQgPSAodmFsdWUpID0+IHtcbiAgICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUpKTtcbn07XG5jb25zdCBjb2xsZWN0TW90aW9uVmFsdWVzID0ge1xuICAgIGN1cnJlbnQ6IHVuZGVmaW5lZCxcbn07XG4vKipcbiAqIGBNb3Rpb25WYWx1ZWAgaXMgdXNlZCB0byB0cmFjayB0aGUgc3RhdGUgYW5kIHZlbG9jaXR5IG9mIG1vdGlvbiB2YWx1ZXMuXG4gKlxuICogQHB1YmxpY1xuICovXG5jbGFzcyBNb3Rpb25WYWx1ZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGluaXQgLSBUaGUgaW5pdGlhdGluZyB2YWx1ZVxuICAgICAqIEBwYXJhbSBjb25maWcgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICAgKlxuICAgICAqIC0gIGB0cmFuc2Zvcm1lcmA6IEEgZnVuY3Rpb24gdG8gdHJhbnNmb3JtIGluY29taW5nIHZhbHVlcyB3aXRoLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGluaXQsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVHJhY2tzIHdoZXRoZXIgdGhpcyB2YWx1ZSBjYW4gb3V0cHV0IGEgdmVsb2NpdHkuIEN1cnJlbnRseSB0aGlzIGlzIG9ubHkgdHJ1ZVxuICAgICAgICAgKiBpZiB0aGUgdmFsdWUgaXMgbnVtZXJpY2FsLCBidXQgd2UgbWlnaHQgYmUgYWJsZSB0byB3aWRlbiB0aGUgc2NvcGUgaGVyZSBhbmQgc3VwcG9ydFxuICAgICAgICAgKiBvdGhlciB2YWx1ZSB0eXBlcy5cbiAgICAgICAgICpcbiAgICAgICAgICogQGludGVybmFsXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNhblRyYWNrVmVsb2NpdHkgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgYSBTdWJzY3JpcHRpb25NYW5hZ2VyIGZvciBlYWNoIGFjdGl2ZSBldmVudC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZXZlbnRzID0ge307XG4gICAgICAgIHRoaXMudXBkYXRlQW5kTm90aWZ5ID0gKHYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gdGltZS5ub3coKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UncmUgdXBkYXRpbmcgdGhlIHZhbHVlIGR1cmluZyBhbm90aGVyIGZyYW1lIG9yIGV2ZW50bG9vcFxuICAgICAgICAgICAgICogdGhhbiB0aGUgcHJldmlvdXMgZnJhbWUsIHRoZW4gdGhlIHdlIHNldCB0aGUgcHJldmlvdXMgZnJhbWUgdmFsdWVcbiAgICAgICAgICAgICAqIHRvIGN1cnJlbnQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLnVwZGF0ZWRBdCAhPT0gY3VycmVudFRpbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByZXZGcmFtZVZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnByZXYgPSB0aGlzLmN1cnJlbnQ7XG4gICAgICAgICAgICB0aGlzLnNldEN1cnJlbnQodik7XG4gICAgICAgICAgICAvLyBVcGRhdGUgdXBkYXRlIHN1YnNjcmliZXJzXG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50ICE9PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5jaGFuZ2U/Lm5vdGlmeSh0aGlzLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlcGVuZGVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBkZXBlbmRlbnQgb2YgdGhpcy5kZXBlbmRlbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbnQuZGlydHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5oYXNBbmltYXRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnQoaW5pdCk7XG4gICAgICAgIHRoaXMub3duZXIgPSBvcHRpb25zLm93bmVyO1xuICAgIH1cbiAgICBzZXRDdXJyZW50KGN1cnJlbnQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gY3VycmVudDtcbiAgICAgICAgdGhpcy51cGRhdGVkQXQgPSB0aW1lLm5vdygpO1xuICAgICAgICBpZiAodGhpcy5jYW5UcmFja1ZlbG9jaXR5ID09PSBudWxsICYmIGN1cnJlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jYW5UcmFja1ZlbG9jaXR5ID0gaXNGbG9hdCh0aGlzLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNldFByZXZGcmFtZVZhbHVlKHByZXZGcmFtZVZhbHVlID0gdGhpcy5jdXJyZW50KSB7XG4gICAgICAgIHRoaXMucHJldkZyYW1lVmFsdWUgPSBwcmV2RnJhbWVWYWx1ZTtcbiAgICAgICAgdGhpcy5wcmV2VXBkYXRlZEF0ID0gdGhpcy51cGRhdGVkQXQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgbm90aWZpZWQgd2hlbiB0aGUgYE1vdGlvblZhbHVlYCBpcyB1cGRhdGVkLlxuICAgICAqXG4gICAgICogSXQgcmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkLCB3aWxsIGNhbmNlbCB0aGUgc3Vic2NyaXB0aW9uLlxuICAgICAqXG4gICAgICogV2hlbiBjYWxsaW5nIGBvbkNoYW5nZWAgaW5zaWRlIGEgUmVhY3QgY29tcG9uZW50LCBpdCBzaG91bGQgYmUgd3JhcHBlZCB3aXRoIHRoZVxuICAgICAqIGB1c2VFZmZlY3RgIGhvb2suIEFzIGl0IHJldHVybnMgYW4gdW5zdWJzY3JpYmUgZnVuY3Rpb24sIHRoaXMgc2hvdWxkIGJlIHJldHVybmVkXG4gICAgICogZnJvbSB0aGUgYHVzZUVmZmVjdGAgZnVuY3Rpb24gdG8gZW5zdXJlIHlvdSBkb24ndCBhZGQgZHVwbGljYXRlIHN1YnNjcmliZXJzLi5cbiAgICAgKlxuICAgICAqIGBgYGpzeFxuICAgICAqIGV4cG9ydCBjb25zdCBNeUNvbXBvbmVudCA9ICgpID0+IHtcbiAgICAgKiAgIGNvbnN0IHggPSB1c2VNb3Rpb25WYWx1ZSgwKVxuICAgICAqICAgY29uc3QgeSA9IHVzZU1vdGlvblZhbHVlKDApXG4gICAgICogICBjb25zdCBvcGFjaXR5ID0gdXNlTW90aW9uVmFsdWUoMSlcbiAgICAgKlxuICAgICAqICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgKiAgICAgZnVuY3Rpb24gdXBkYXRlT3BhY2l0eSgpIHtcbiAgICAgKiAgICAgICBjb25zdCBtYXhYWSA9IE1hdGgubWF4KHguZ2V0KCksIHkuZ2V0KCkpXG4gICAgICogICAgICAgY29uc3QgbmV3T3BhY2l0eSA9IHRyYW5zZm9ybShtYXhYWSwgWzAsIDEwMF0sIFsxLCAwXSlcbiAgICAgKiAgICAgICBvcGFjaXR5LnNldChuZXdPcGFjaXR5KVxuICAgICAqICAgICB9XG4gICAgICpcbiAgICAgKiAgICAgY29uc3QgdW5zdWJzY3JpYmVYID0geC5vbihcImNoYW5nZVwiLCB1cGRhdGVPcGFjaXR5KVxuICAgICAqICAgICBjb25zdCB1bnN1YnNjcmliZVkgPSB5Lm9uKFwiY2hhbmdlXCIsIHVwZGF0ZU9wYWNpdHkpXG4gICAgICpcbiAgICAgKiAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgKiAgICAgICB1bnN1YnNjcmliZVgoKVxuICAgICAqICAgICAgIHVuc3Vic2NyaWJlWSgpXG4gICAgICogICAgIH1cbiAgICAgKiAgIH0sIFtdKVxuICAgICAqXG4gICAgICogICByZXR1cm4gPG1vdGlvbi5kaXYgc3R5bGU9e3sgeCB9fSAvPlxuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdWJzY3JpYmVyIC0gQSBmdW5jdGlvbiB0aGF0IHJlY2VpdmVzIHRoZSBsYXRlc3QgdmFsdWUuXG4gICAgICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0LCB3aGVuIGNhbGxlZCwgd2lsbCBjYW5jZWwgdGhpcyBzdWJzY3JpcHRpb24uXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIG9uQ2hhbmdlKHN1YnNjcmlwdGlvbikge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICB3YXJuT25jZShmYWxzZSwgYHZhbHVlLm9uQ2hhbmdlKGNhbGxiYWNrKSBpcyBkZXByZWNhdGVkLiBTd2l0Y2ggdG8gdmFsdWUub24oXCJjaGFuZ2VcIiwgY2FsbGJhY2spLmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm9uKFwiY2hhbmdlXCIsIHN1YnNjcmlwdGlvbik7XG4gICAgfVxuICAgIG9uKGV2ZW50TmFtZSwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCF0aGlzLmV2ZW50c1tldmVudE5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50c1tldmVudE5hbWVdID0gbmV3IFN1YnNjcmlwdGlvbk1hbmFnZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1bnN1YnNjcmliZSA9IHRoaXMuZXZlbnRzW2V2ZW50TmFtZV0uYWRkKGNhbGxiYWNrKTtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gXCJjaGFuZ2VcIikge1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHdlIGhhdmUgbm8gbW9yZSBjaGFuZ2UgbGlzdGVuZXJzIGJ5IHRoZSBzdGFydFxuICAgICAgICAgICAgICAgICAqIG9mIHRoZSBuZXh0IGZyYW1lLCBzdG9wIGFjdGl2ZSBhbmltYXRpb25zLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGZyYW1lLnJlYWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZXZlbnRzLmNoYW5nZS5nZXRTaXplKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bnN1YnNjcmliZTtcbiAgICB9XG4gICAgY2xlYXJMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGZvciAoY29uc3QgZXZlbnRNYW5hZ2VycyBpbiB0aGlzLmV2ZW50cykge1xuICAgICAgICAgICAgdGhpcy5ldmVudHNbZXZlbnRNYW5hZ2Vyc10uY2xlYXIoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBBdHRhY2hlcyBhIHBhc3NpdmUgZWZmZWN0IHRvIHRoZSBgTW90aW9uVmFsdWVgLlxuICAgICAqL1xuICAgIGF0dGFjaChwYXNzaXZlRWZmZWN0LCBzdG9wUGFzc2l2ZUVmZmVjdCkge1xuICAgICAgICB0aGlzLnBhc3NpdmVFZmZlY3QgPSBwYXNzaXZlRWZmZWN0O1xuICAgICAgICB0aGlzLnN0b3BQYXNzaXZlRWZmZWN0ID0gc3RvcFBhc3NpdmVFZmZlY3Q7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHN0YXRlIG9mIHRoZSBgTW90aW9uVmFsdWVgLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKlxuICAgICAqIGBgYGpzeFxuICAgICAqIGNvbnN0IHggPSB1c2VNb3Rpb25WYWx1ZSgwKVxuICAgICAqIHguc2V0KDEwKVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHBhcmFtIGxhdGVzdCAtIExhdGVzdCB2YWx1ZSB0byBzZXQuXG4gICAgICogQHBhcmFtIHJlbmRlciAtIFdoZXRoZXIgdG8gbm90aWZ5IHJlbmRlciBzdWJzY3JpYmVycy4gRGVmYXVsdHMgdG8gYHRydWVgXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgc2V0KHYpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhc3NpdmVFZmZlY3QpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQW5kTm90aWZ5KHYpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYXNzaXZlRWZmZWN0KHYsIHRoaXMudXBkYXRlQW5kTm90aWZ5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXRXaXRoVmVsb2NpdHkocHJldiwgY3VycmVudCwgZGVsdGEpIHtcbiAgICAgICAgdGhpcy5zZXQoY3VycmVudCk7XG4gICAgICAgIHRoaXMucHJldiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5wcmV2RnJhbWVWYWx1ZSA9IHByZXY7XG4gICAgICAgIHRoaXMucHJldlVwZGF0ZWRBdCA9IHRoaXMudXBkYXRlZEF0IC0gZGVsdGE7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgc3RhdGUgb2YgdGhlIGBNb3Rpb25WYWx1ZWAsIHN0b3BwaW5nIGFueSBhY3RpdmUgYW5pbWF0aW9ucyxcbiAgICAgKiBlZmZlY3RzLCBhbmQgcmVzZXRzIHZlbG9jaXR5IHRvIGAwYC5cbiAgICAgKi9cbiAgICBqdW1wKHYsIGVuZEFuaW1hdGlvbiA9IHRydWUpIHtcbiAgICAgICAgdGhpcy51cGRhdGVBbmROb3RpZnkodik7XG4gICAgICAgIHRoaXMucHJldiA9IHY7XG4gICAgICAgIHRoaXMucHJldlVwZGF0ZWRBdCA9IHRoaXMucHJldkZyYW1lVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGVuZEFuaW1hdGlvbiAmJiB0aGlzLnN0b3AoKTtcbiAgICAgICAgaWYgKHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QpXG4gICAgICAgICAgICB0aGlzLnN0b3BQYXNzaXZlRWZmZWN0KCk7XG4gICAgfVxuICAgIGRpcnR5KCkge1xuICAgICAgICB0aGlzLmV2ZW50cy5jaGFuZ2U/Lm5vdGlmeSh0aGlzLmN1cnJlbnQpO1xuICAgIH1cbiAgICBhZGREZXBlbmRlbnQoZGVwZW5kZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5kZXBlbmRlbnRzKSB7XG4gICAgICAgICAgICB0aGlzLmRlcGVuZGVudHMgPSBuZXcgU2V0KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZXBlbmRlbnRzLmFkZChkZXBlbmRlbnQpO1xuICAgIH1cbiAgICByZW1vdmVEZXBlbmRlbnQoZGVwZW5kZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmRlcGVuZGVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuZGVwZW5kZW50cy5kZWxldGUoZGVwZW5kZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBsYXRlc3Qgc3RhdGUgb2YgYE1vdGlvblZhbHVlYFxuICAgICAqXG4gICAgICogQHJldHVybnMgLSBUaGUgbGF0ZXN0IHN0YXRlIG9mIGBNb3Rpb25WYWx1ZWBcbiAgICAgKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBnZXQoKSB7XG4gICAgICAgIGlmIChjb2xsZWN0TW90aW9uVmFsdWVzLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbGxlY3RNb3Rpb25WYWx1ZXMuY3VycmVudC5wdXNoKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBnZXRQcmV2aW91cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJldjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbGF0ZXN0IHZlbG9jaXR5IG9mIGBNb3Rpb25WYWx1ZWBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIC0gVGhlIGxhdGVzdCB2ZWxvY2l0eSBvZiBgTW90aW9uVmFsdWVgLiBSZXR1cm5zIGAwYCBpZiB0aGUgc3RhdGUgaXMgbm9uLW51bWVyaWNhbC5cbiAgICAgKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBnZXRWZWxvY2l0eSgpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSB0aW1lLm5vdygpO1xuICAgICAgICBpZiAoIXRoaXMuY2FuVHJhY2tWZWxvY2l0eSB8fFxuICAgICAgICAgICAgdGhpcy5wcmV2RnJhbWVWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBjdXJyZW50VGltZSAtIHRoaXMudXBkYXRlZEF0ID4gTUFYX1ZFTE9DSVRZX0RFTFRBKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWx0YSA9IE1hdGgubWluKHRoaXMudXBkYXRlZEF0IC0gdGhpcy5wcmV2VXBkYXRlZEF0LCBNQVhfVkVMT0NJVFlfREVMVEEpO1xuICAgICAgICAvLyBDYXN0cyBiZWNhdXNlIG9mIHBhcnNlRmxvYXQncyBwb29yIHR5cGluZ1xuICAgICAgICByZXR1cm4gdmVsb2NpdHlQZXJTZWNvbmQocGFyc2VGbG9hdCh0aGlzLmN1cnJlbnQpIC1cbiAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5wcmV2RnJhbWVWYWx1ZSksIGRlbHRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgbmV3IGFuaW1hdGlvbiB0byBjb250cm9sIHRoaXMgYE1vdGlvblZhbHVlYC4gT25seSBvbmVcbiAgICAgKiBhbmltYXRpb24gY2FuIGRyaXZlIGEgYE1vdGlvblZhbHVlYCBhdCBvbmUgdGltZS5cbiAgICAgKlxuICAgICAqIGBgYGpzeFxuICAgICAqIHZhbHVlLnN0YXJ0KClcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBhbmltYXRpb24gLSBBIGZ1bmN0aW9uIHRoYXQgc3RhcnRzIHRoZSBwcm92aWRlZCBhbmltYXRpb25cbiAgICAgKi9cbiAgICBzdGFydChzdGFydEFuaW1hdGlvbikge1xuICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhc0FuaW1hdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uID0gc3RhcnRBbmltYXRpb24ocmVzb2x2ZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5ldmVudHMuYW5pbWF0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5hbmltYXRpb25TdGFydC5ub3RpZnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5ldmVudHMuYW5pbWF0aW9uQ29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5hbmltYXRpb25Db21wbGV0ZS5ub3RpZnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2xlYXJBbmltYXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN0b3AgdGhlIGN1cnJlbnRseSBhY3RpdmUgYW5pbWF0aW9uLlxuICAgICAqXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIHN0b3AoKSB7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uc3RvcCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZXZlbnRzLmFuaW1hdGlvbkNhbmNlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzLmFuaW1hdGlvbkNhbmNlbC5ub3RpZnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsZWFyQW5pbWF0aW9uKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYHRydWVgIGlmIHRoaXMgdmFsdWUgaXMgY3VycmVudGx5IGFuaW1hdGluZy5cbiAgICAgKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBpc0FuaW1hdGluZygpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5hbmltYXRpb247XG4gICAgfVxuICAgIGNsZWFyQW5pbWF0aW9uKCkge1xuICAgICAgICBkZWxldGUgdGhpcy5hbmltYXRpb247XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlc3Ryb3kgYW5kIGNsZWFuIHVwIHN1YnNjcmliZXJzIHRvIHRoaXMgYE1vdGlvblZhbHVlYC5cbiAgICAgKlxuICAgICAqIFRoZSBgTW90aW9uVmFsdWVgIGhvb2tzIGxpa2UgYHVzZU1vdGlvblZhbHVlYCBhbmQgYHVzZVRyYW5zZm9ybWAgYXV0b21hdGljYWxseVxuICAgICAqIGhhbmRsZSB0aGUgbGlmZWN5Y2xlIG9mIHRoZSByZXR1cm5lZCBgTW90aW9uVmFsdWVgLCBzbyB0aGlzIG1ldGhvZCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB5b3UndmUgbWFudWFsbHlcbiAgICAgKiBjcmVhdGVkIGEgYE1vdGlvblZhbHVlYCB2aWEgdGhlIGBtb3Rpb25WYWx1ZWAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXBlbmRlbnRzPy5jbGVhcigpO1xuICAgICAgICB0aGlzLmV2ZW50cy5kZXN0cm95Py5ub3RpZnkoKTtcbiAgICAgICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgaWYgKHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIG1vdGlvblZhbHVlKGluaXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IE1vdGlvblZhbHVlKGluaXQsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgeyBNb3Rpb25WYWx1ZSwgY29sbGVjdE1vdGlvblZhbHVlcywgbW90aW9uVmFsdWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/auto.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/auto.mjs ***! + \**************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ auto: () => (/* binding */ auto)\n/* harmony export */ });\n/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\n\n//# sourceMappingURL=auto.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvYXV0by5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVnQjtBQUNoQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvYXV0by5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWYWx1ZVR5cGUgZm9yIFwiYXV0b1wiXG4gKi9cbmNvbnN0IGF1dG8gPSB7XG4gICAgdGVzdDogKHYpID0+IHYgPT09IFwiYXV0b1wiLFxuICAgIHBhcnNlOiAodikgPT4gdixcbn07XG5cbmV4cG9ydCB7IGF1dG8gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWF1dG8ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/auto.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/hex.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hex: () => (/* binding */ hex)\n/* harmony export */ });\n/* harmony import */ var _rgba_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\n\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.isColorString)(\"#\"),\n parse: parseHex,\n transform: _rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba.transform,\n};\n\n\n//# sourceMappingURL=hex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0M7QUFDVTs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IseURBQWE7QUFDckM7QUFDQSxlQUFlLDJDQUFJO0FBQ25COztBQUVlO0FBQ2YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL2hleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmdiYSB9IGZyb20gJy4vcmdiYS5tanMnO1xuaW1wb3J0IHsgaXNDb2xvclN0cmluZyB9IGZyb20gJy4vdXRpbHMubWpzJztcblxuZnVuY3Rpb24gcGFyc2VIZXgodikge1xuICAgIGxldCByID0gXCJcIjtcbiAgICBsZXQgZyA9IFwiXCI7XG4gICAgbGV0IGIgPSBcIlwiO1xuICAgIGxldCBhID0gXCJcIjtcbiAgICAvLyBJZiB3ZSBoYXZlIDYgY2hhcmFjdGVycywgaWUgI0ZGMDAwMFxuICAgIGlmICh2Lmxlbmd0aCA+IDUpIHtcbiAgICAgICAgciA9IHYuc3Vic3RyaW5nKDEsIDMpO1xuICAgICAgICBnID0gdi5zdWJzdHJpbmcoMywgNSk7XG4gICAgICAgIGIgPSB2LnN1YnN0cmluZyg1LCA3KTtcbiAgICAgICAgYSA9IHYuc3Vic3RyaW5nKDcsIDkpO1xuICAgICAgICAvLyBPciB3ZSBoYXZlIDMgY2hhcmFjdGVycywgaWUgI0YwMFxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgciA9IHYuc3Vic3RyaW5nKDEsIDIpO1xuICAgICAgICBnID0gdi5zdWJzdHJpbmcoMiwgMyk7XG4gICAgICAgIGIgPSB2LnN1YnN0cmluZygzLCA0KTtcbiAgICAgICAgYSA9IHYuc3Vic3RyaW5nKDQsIDUpO1xuICAgICAgICByICs9IHI7XG4gICAgICAgIGcgKz0gZztcbiAgICAgICAgYiArPSBiO1xuICAgICAgICBhICs9IGE7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlZDogcGFyc2VJbnQociwgMTYpLFxuICAgICAgICBncmVlbjogcGFyc2VJbnQoZywgMTYpLFxuICAgICAgICBibHVlOiBwYXJzZUludChiLCAxNiksXG4gICAgICAgIGFscGhhOiBhID8gcGFyc2VJbnQoYSwgMTYpIC8gMjU1IDogMSxcbiAgICB9O1xufVxuY29uc3QgaGV4ID0ge1xuICAgIHRlc3Q6IC8qQF9fUFVSRV9fKi8gaXNDb2xvclN0cmluZyhcIiNcIiksXG4gICAgcGFyc2U6IHBhcnNlSGV4LFxuICAgIHRyYW5zZm9ybTogcmdiYS50cmFuc2Zvcm0sXG59O1xuXG5leHBvcnQgeyBoZXggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hslaToRgba: () => (/* binding */ hslaToRgba)\n/* harmony export */ });\n// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\n\n//# sourceMappingURL=hsla-to-rgba.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaHNsYS10by1yZ2JhLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtQ0FBbUM7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNCO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9jb2xvci9oc2xhLXRvLXJnYmEubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFkYXB0ZWQgZnJvbSBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tamFja3Nvbi81MzExMjU2XG5mdW5jdGlvbiBodWVUb1JnYihwLCBxLCB0KSB7XG4gICAgaWYgKHQgPCAwKVxuICAgICAgICB0ICs9IDE7XG4gICAgaWYgKHQgPiAxKVxuICAgICAgICB0IC09IDE7XG4gICAgaWYgKHQgPCAxIC8gNilcbiAgICAgICAgcmV0dXJuIHAgKyAocSAtIHApICogNiAqIHQ7XG4gICAgaWYgKHQgPCAxIC8gMilcbiAgICAgICAgcmV0dXJuIHE7XG4gICAgaWYgKHQgPCAyIC8gMylcbiAgICAgICAgcmV0dXJuIHAgKyAocSAtIHApICogKDIgLyAzIC0gdCkgKiA2O1xuICAgIHJldHVybiBwO1xufVxuZnVuY3Rpb24gaHNsYVRvUmdiYSh7IGh1ZSwgc2F0dXJhdGlvbiwgbGlnaHRuZXNzLCBhbHBoYSB9KSB7XG4gICAgaHVlIC89IDM2MDtcbiAgICBzYXR1cmF0aW9uIC89IDEwMDtcbiAgICBsaWdodG5lc3MgLz0gMTAwO1xuICAgIGxldCByZWQgPSAwO1xuICAgIGxldCBncmVlbiA9IDA7XG4gICAgbGV0IGJsdWUgPSAwO1xuICAgIGlmICghc2F0dXJhdGlvbikge1xuICAgICAgICByZWQgPSBncmVlbiA9IGJsdWUgPSBsaWdodG5lc3M7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBxID0gbGlnaHRuZXNzIDwgMC41XG4gICAgICAgICAgICA/IGxpZ2h0bmVzcyAqICgxICsgc2F0dXJhdGlvbilcbiAgICAgICAgICAgIDogbGlnaHRuZXNzICsgc2F0dXJhdGlvbiAtIGxpZ2h0bmVzcyAqIHNhdHVyYXRpb247XG4gICAgICAgIGNvbnN0IHAgPSAyICogbGlnaHRuZXNzIC0gcTtcbiAgICAgICAgcmVkID0gaHVlVG9SZ2IocCwgcSwgaHVlICsgMSAvIDMpO1xuICAgICAgICBncmVlbiA9IGh1ZVRvUmdiKHAsIHEsIGh1ZSk7XG4gICAgICAgIGJsdWUgPSBodWVUb1JnYihwLCBxLCBodWUgLSAxIC8gMyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlZDogTWF0aC5yb3VuZChyZWQgKiAyNTUpLFxuICAgICAgICBncmVlbjogTWF0aC5yb3VuZChncmVlbiAqIDI1NSksXG4gICAgICAgIGJsdWU6IE1hdGgucm91bmQoYmx1ZSAqIDI1NSksXG4gICAgICAgIGFscGhhLFxuICAgIH07XG59XG5cbmV4cG9ydCB7IGhzbGFUb1JnYmEgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhzbGEtdG8tcmdiYS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hsla: () => (/* binding */ hsla)\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\n\n\n\n\nconst hsla = {\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.isColorString)(\"hsl\", \"hue\"),\n parse: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.splitColor)(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent.transform((0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(saturation)) +\n \", \" +\n _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent.transform((0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(lightness)) +\n \", \" +\n (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\n\n//# sourceMappingURL=hsla.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaHNsYS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBNkM7QUFDRTtBQUNFO0FBQ087O0FBRXhEO0FBQ0Esd0JBQXdCLHlEQUFhO0FBQ3JDLHlCQUF5QixzREFBVTtBQUNuQyxrQkFBa0IsZ0RBQWdEO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBLFlBQVksdURBQU8sV0FBVyw2REFBUTtBQUN0QztBQUNBLFlBQVksdURBQU8sV0FBVyw2REFBUTtBQUN0QztBQUNBLFlBQVksNkRBQVEsQ0FBQyxxREFBSztBQUMxQjtBQUNBLEtBQUs7QUFDTDs7QUFFZ0I7QUFDaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL2hzbGEubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFscGhhIH0gZnJvbSAnLi4vbnVtYmVycy9pbmRleC5tanMnO1xuaW1wb3J0IHsgcGVyY2VudCB9IGZyb20gJy4uL251bWJlcnMvdW5pdHMubWpzJztcbmltcG9ydCB7IHNhbml0aXplIH0gZnJvbSAnLi4vdXRpbHMvc2FuaXRpemUubWpzJztcbmltcG9ydCB7IGlzQ29sb3JTdHJpbmcsIHNwbGl0Q29sb3IgfSBmcm9tICcuL3V0aWxzLm1qcyc7XG5cbmNvbnN0IGhzbGEgPSB7XG4gICAgdGVzdDogLypAX19QVVJFX18qLyBpc0NvbG9yU3RyaW5nKFwiaHNsXCIsIFwiaHVlXCIpLFxuICAgIHBhcnNlOiAvKkBfX1BVUkVfXyovIHNwbGl0Q29sb3IoXCJodWVcIiwgXCJzYXR1cmF0aW9uXCIsIFwibGlnaHRuZXNzXCIpLFxuICAgIHRyYW5zZm9ybTogKHsgaHVlLCBzYXR1cmF0aW9uLCBsaWdodG5lc3MsIGFscGhhOiBhbHBoYSQxID0gMSB9KSA9PiB7XG4gICAgICAgIHJldHVybiAoXCJoc2xhKFwiICtcbiAgICAgICAgICAgIE1hdGgucm91bmQoaHVlKSArXG4gICAgICAgICAgICBcIiwgXCIgK1xuICAgICAgICAgICAgcGVyY2VudC50cmFuc2Zvcm0oc2FuaXRpemUoc2F0dXJhdGlvbikpICtcbiAgICAgICAgICAgIFwiLCBcIiArXG4gICAgICAgICAgICBwZXJjZW50LnRyYW5zZm9ybShzYW5pdGl6ZShsaWdodG5lc3MpKSArXG4gICAgICAgICAgICBcIiwgXCIgK1xuICAgICAgICAgICAgc2FuaXRpemUoYWxwaGEudHJhbnNmb3JtKGFscGhhJDEpKSArXG4gICAgICAgICAgICBcIilcIik7XG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IGhzbGEgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhzbGEubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/index.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ color: () => (/* binding */ color)\n/* harmony export */ });\n/* harmony import */ var _hex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\");\n/* harmony import */ var _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hsla.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\");\n/* harmony import */ var _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n\n\n\n\nconst color = {\n test: (v) => _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.test(v) || _hex_mjs__WEBPACK_IMPORTED_MODULE_1__.hex.test(v) || _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.test(v),\n parse: (v) => {\n if (_rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.test(v)) {\n return _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.parse(v);\n }\n else if (_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.test(v)) {\n return _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.parse(v);\n }\n else {\n return _hex_mjs__WEBPACK_IMPORTED_MODULE_1__.hex.parse(v);\n }\n },\n transform: (v) => {\n return typeof v === \"string\"\n ? v\n : v.hasOwnProperty(\"red\")\n ? _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.transform(v)\n : _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.transform(v);\n },\n getAnimatableNone: (v) => {\n const parsed = color.parse(v);\n parsed.alpha = 0;\n return color.transform(parsed);\n },\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZ0M7QUFDRTtBQUNBOztBQUVsQztBQUNBLGlCQUFpQiwyQ0FBSSxZQUFZLHlDQUFHLFlBQVksMkNBQUk7QUFDcEQ7QUFDQSxZQUFZLDJDQUFJO0FBQ2hCLG1CQUFtQiwyQ0FBSTtBQUN2QjtBQUNBLGlCQUFpQiwyQ0FBSTtBQUNyQixtQkFBbUIsMkNBQUk7QUFDdkI7QUFDQTtBQUNBLG1CQUFtQix5Q0FBRztBQUN0QjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiwyQ0FBSTtBQUN0QixrQkFBa0IsMkNBQUk7QUFDdEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVpQjtBQUNqQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhleCB9IGZyb20gJy4vaGV4Lm1qcyc7XG5pbXBvcnQgeyBoc2xhIH0gZnJvbSAnLi9oc2xhLm1qcyc7XG5pbXBvcnQgeyByZ2JhIH0gZnJvbSAnLi9yZ2JhLm1qcyc7XG5cbmNvbnN0IGNvbG9yID0ge1xuICAgIHRlc3Q6ICh2KSA9PiByZ2JhLnRlc3QodikgfHwgaGV4LnRlc3QodikgfHwgaHNsYS50ZXN0KHYpLFxuICAgIHBhcnNlOiAodikgPT4ge1xuICAgICAgICBpZiAocmdiYS50ZXN0KHYpKSB7XG4gICAgICAgICAgICByZXR1cm4gcmdiYS5wYXJzZSh2KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChoc2xhLnRlc3QodikpIHtcbiAgICAgICAgICAgIHJldHVybiBoc2xhLnBhcnNlKHYpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGhleC5wYXJzZSh2KTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgdHJhbnNmb3JtOiAodikgPT4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gdlxuICAgICAgICAgICAgOiB2Lmhhc093blByb3BlcnR5KFwicmVkXCIpXG4gICAgICAgICAgICAgICAgPyByZ2JhLnRyYW5zZm9ybSh2KVxuICAgICAgICAgICAgICAgIDogaHNsYS50cmFuc2Zvcm0odik7XG4gICAgfSxcbiAgICBnZXRBbmltYXRhYmxlTm9uZTogKHYpID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gY29sb3IucGFyc2Uodik7XG4gICAgICAgIHBhcnNlZC5hbHBoYSA9IDA7XG4gICAgICAgIHJldHVybiBjb2xvci50cmFuc2Zvcm0ocGFyc2VkKTtcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgY29sb3IgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ rgbUnit: () => (/* binding */ rgbUnit),\n/* harmony export */ rgba: () => (/* binding */ rgba)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\n\n\n\n\nconst clampRgbUnit = (v) => (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(0, 255, v);\nconst rgbUnit = {\n ..._numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.isColorString)(\"rgb\", \"red\"),\n parse: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.splitColor)(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__.sanitize)(_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.alpha.transform(alpha$1)) +\n \")\",\n};\n\n\n//# sourceMappingURL=rgba.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvcmdiYS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXFDO0FBQ2dCO0FBQ0o7QUFDTzs7QUFFeEQsNEJBQTRCLG1EQUFLO0FBQ2pDO0FBQ0EsT0FBTyxzREFBTTtBQUNiO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qix5REFBYTtBQUNyQyx5QkFBeUIsc0RBQVU7QUFDbkMsa0JBQWtCLHNDQUFzQztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZEQUFRLENBQUMscURBQUs7QUFDdEI7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL3JnYmEubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsYW1wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IG51bWJlciwgYWxwaGEgfSBmcm9tICcuLi9udW1iZXJzL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBzYW5pdGl6ZSB9IGZyb20gJy4uL3V0aWxzL3Nhbml0aXplLm1qcyc7XG5pbXBvcnQgeyBpc0NvbG9yU3RyaW5nLCBzcGxpdENvbG9yIH0gZnJvbSAnLi91dGlscy5tanMnO1xuXG5jb25zdCBjbGFtcFJnYlVuaXQgPSAodikgPT4gY2xhbXAoMCwgMjU1LCB2KTtcbmNvbnN0IHJnYlVuaXQgPSB7XG4gICAgLi4ubnVtYmVyLFxuICAgIHRyYW5zZm9ybTogKHYpID0+IE1hdGgucm91bmQoY2xhbXBSZ2JVbml0KHYpKSxcbn07XG5jb25zdCByZ2JhID0ge1xuICAgIHRlc3Q6IC8qQF9fUFVSRV9fKi8gaXNDb2xvclN0cmluZyhcInJnYlwiLCBcInJlZFwiKSxcbiAgICBwYXJzZTogLypAX19QVVJFX18qLyBzcGxpdENvbG9yKFwicmVkXCIsIFwiZ3JlZW5cIiwgXCJibHVlXCIpLFxuICAgIHRyYW5zZm9ybTogKHsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE6IGFscGhhJDEgPSAxIH0pID0+IFwicmdiYShcIiArXG4gICAgICAgIHJnYlVuaXQudHJhbnNmb3JtKHJlZCkgK1xuICAgICAgICBcIiwgXCIgK1xuICAgICAgICByZ2JVbml0LnRyYW5zZm9ybShncmVlbikgK1xuICAgICAgICBcIiwgXCIgK1xuICAgICAgICByZ2JVbml0LnRyYW5zZm9ybShibHVlKSArXG4gICAgICAgIFwiLCBcIiArXG4gICAgICAgIHNhbml0aXplKGFscGhhLnRyYW5zZm9ybShhbHBoYSQxKSkgK1xuICAgICAgICBcIilcIixcbn07XG5cbmV4cG9ydCB7IHJnYlVuaXQsIHJnYmEgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJnYmEubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/utils.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isColorString: () => (/* binding */ isColorString),\n/* harmony export */ splitColor: () => (/* binding */ splitColor)\n/* harmony export */ });\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n/* harmony import */ var _utils_is_nullish_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/is-nullish.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs\");\n/* harmony import */ var _utils_single_color_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/single-color-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs\");\n\n\n\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((typeof v === \"string\" &&\n _utils_single_color_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.singleColorRegex.test(v) &&\n v.startsWith(type)) ||\n (testProp &&\n !(0,_utils_is_nullish_mjs__WEBPACK_IMPORTED_MODULE_1__.isNullish)(v) &&\n Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (typeof v !== \"string\")\n return v;\n const [a, b, c, alpha] = v.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_2__.floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvdXRpbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXNEO0FBQ0Y7QUFDZTs7QUFFbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwyRUFBZ0I7QUFDeEI7QUFDQTtBQUNBLGFBQWEsZ0VBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyw4REFBVTtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFcUM7QUFDckMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL3V0aWxzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmbG9hdFJlZ2V4IH0gZnJvbSAnLi4vdXRpbHMvZmxvYXQtcmVnZXgubWpzJztcbmltcG9ydCB7IGlzTnVsbGlzaCB9IGZyb20gJy4uL3V0aWxzL2lzLW51bGxpc2gubWpzJztcbmltcG9ydCB7IHNpbmdsZUNvbG9yUmVnZXggfSBmcm9tICcuLi91dGlscy9zaW5nbGUtY29sb3ItcmVnZXgubWpzJztcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIHN0cmluZyBpcyBhIGNvbG9yLCBpZSByZ2JhKDAsMCwwLDApIG9yICMwMDAsXG4gKiBidXQgZmFsc2UgaWYgYSBudW1iZXIgb3IgbXVsdGlwbGUgY29sb3JzXG4gKi9cbmNvbnN0IGlzQ29sb3JTdHJpbmcgPSAodHlwZSwgdGVzdFByb3ApID0+ICh2KSA9PiB7XG4gICAgcmV0dXJuIEJvb2xlYW4oKHR5cGVvZiB2ID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgIHNpbmdsZUNvbG9yUmVnZXgudGVzdCh2KSAmJlxuICAgICAgICB2LnN0YXJ0c1dpdGgodHlwZSkpIHx8XG4gICAgICAgICh0ZXN0UHJvcCAmJlxuICAgICAgICAgICAgIWlzTnVsbGlzaCh2KSAmJlxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHYsIHRlc3RQcm9wKSkpO1xufTtcbmNvbnN0IHNwbGl0Q29sb3IgPSAoYU5hbWUsIGJOYW1lLCBjTmFtZSkgPT4gKHYpID0+IHtcbiAgICBpZiAodHlwZW9mIHYgIT09IFwic3RyaW5nXCIpXG4gICAgICAgIHJldHVybiB2O1xuICAgIGNvbnN0IFthLCBiLCBjLCBhbHBoYV0gPSB2Lm1hdGNoKGZsb2F0UmVnZXgpO1xuICAgIHJldHVybiB7XG4gICAgICAgIFthTmFtZV06IHBhcnNlRmxvYXQoYSksXG4gICAgICAgIFtiTmFtZV06IHBhcnNlRmxvYXQoYiksXG4gICAgICAgIFtjTmFtZV06IHBhcnNlRmxvYXQoYyksXG4gICAgICAgIGFscGhhOiBhbHBoYSAhPT0gdW5kZWZpbmVkID8gcGFyc2VGbG9hdChhbHBoYSkgOiAxLFxuICAgIH07XG59O1xuXG5leHBvcnQgeyBpc0NvbG9yU3RyaW5nLCBzcGxpdENvbG9yIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ filter: () => (/* binding */ filter)\n/* harmony export */ });\n/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n\n\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n ..._index_mjs__WEBPACK_IMPORTED_MODULE_1__.complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\n\n//# sourceMappingURL=filter.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29tcGxleC9maWx0ZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFzQztBQUNnQjs7QUFFdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQyw4REFBVTtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sK0NBQU87QUFDZDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRWtCO0FBQ2xCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9jb21wbGV4L2ZpbHRlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGxleCB9IGZyb20gJy4vaW5kZXgubWpzJztcbmltcG9ydCB7IGZsb2F0UmVnZXggfSBmcm9tICcuLi91dGlscy9mbG9hdC1yZWdleC5tanMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhhdCBzaG91bGQgZGVmYXVsdCB0byAxIG9yIDEwMCVcbiAqL1xuY29uc3QgbWF4RGVmYXVsdHMgPSBuZXcgU2V0KFtcImJyaWdodG5lc3NcIiwgXCJjb250cmFzdFwiLCBcInNhdHVyYXRlXCIsIFwib3BhY2l0eVwiXSk7XG5mdW5jdGlvbiBhcHBseURlZmF1bHRGaWx0ZXIodikge1xuICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSB2LnNsaWNlKDAsIC0xKS5zcGxpdChcIihcIik7XG4gICAgaWYgKG5hbWUgPT09IFwiZHJvcC1zaGFkb3dcIilcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgY29uc3QgW251bWJlcl0gPSB2YWx1ZS5tYXRjaChmbG9hdFJlZ2V4KSB8fCBbXTtcbiAgICBpZiAoIW51bWJlcilcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgY29uc3QgdW5pdCA9IHZhbHVlLnJlcGxhY2UobnVtYmVyLCBcIlwiKTtcbiAgICBsZXQgZGVmYXVsdFZhbHVlID0gbWF4RGVmYXVsdHMuaGFzKG5hbWUpID8gMSA6IDA7XG4gICAgaWYgKG51bWJlciAhPT0gdmFsdWUpXG4gICAgICAgIGRlZmF1bHRWYWx1ZSAqPSAxMDA7XG4gICAgcmV0dXJuIG5hbWUgKyBcIihcIiArIGRlZmF1bHRWYWx1ZSArIHVuaXQgKyBcIilcIjtcbn1cbmNvbnN0IGZ1bmN0aW9uUmVnZXggPSAvXFxiKFthLXotXSopXFwoLio/XFwpL2d1O1xuY29uc3QgZmlsdGVyID0ge1xuICAgIC4uLmNvbXBsZXgsXG4gICAgZ2V0QW5pbWF0YWJsZU5vbmU6ICh2KSA9PiB7XG4gICAgICAgIGNvbnN0IGZ1bmN0aW9ucyA9IHYubWF0Y2goZnVuY3Rpb25SZWdleCk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbnMgPyBmdW5jdGlvbnMubWFwKGFwcGx5RGVmYXVsdEZpbHRlcikuam9pbihcIiBcIikgOiB2O1xuICAgIH0sXG59O1xuXG5leHBvcnQgeyBmaWx0ZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZpbHRlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/complex/index.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ analyseComplexValue: () => (/* binding */ analyseComplexValue),\n/* harmony export */ complex: () => (/* binding */ complex)\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _utils_color_regex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/color-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs\");\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n\n\n\n\n\nfunction test(v) {\n return (isNaN(v) &&\n typeof v === \"string\" &&\n (v.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.floatRegex)?.length || 0) +\n (v.match(_utils_color_regex_mjs__WEBPACK_IMPORTED_MODULE_1__.colorRegex)?.length || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (_color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(_color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__.sanitize)(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.test(v) ? _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.getAnimatableNone(v) : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29tcGxleC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTJDO0FBQ1c7QUFDQTtBQUNMOztBQUVqRDtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsOERBQVU7QUFDM0IscUJBQXFCLDhEQUFVO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBLHNIQUFzSCxJQUFJLHFDQUFxQyxFQUFFO0FBQ2pLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLG1EQUFLO0FBQ2pCO0FBQ0E7QUFDQSx3QkFBd0IsbURBQUs7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksZUFBZTtBQUMzQjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsaUJBQWlCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLDZEQUFRO0FBQ3RDO0FBQ0E7QUFDQSw4QkFBOEIsbURBQUs7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0VBQWdFLG1EQUFLLFdBQVcsbURBQUs7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFd0M7QUFDeEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbG9yIH0gZnJvbSAnLi4vY29sb3IvaW5kZXgubWpzJztcbmltcG9ydCB7IGNvbG9yUmVnZXggfSBmcm9tICcuLi91dGlscy9jb2xvci1yZWdleC5tanMnO1xuaW1wb3J0IHsgZmxvYXRSZWdleCB9IGZyb20gJy4uL3V0aWxzL2Zsb2F0LXJlZ2V4Lm1qcyc7XG5pbXBvcnQgeyBzYW5pdGl6ZSB9IGZyb20gJy4uL3V0aWxzL3Nhbml0aXplLm1qcyc7XG5cbmZ1bmN0aW9uIHRlc3Qodikge1xuICAgIHJldHVybiAoaXNOYU4odikgJiZcbiAgICAgICAgdHlwZW9mIHYgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgKHYubWF0Y2goZmxvYXRSZWdleCk/Lmxlbmd0aCB8fCAwKSArXG4gICAgICAgICAgICAodi5tYXRjaChjb2xvclJlZ2V4KT8ubGVuZ3RoIHx8IDApID5cbiAgICAgICAgICAgIDApO1xufVxuY29uc3QgTlVNQkVSX1RPS0VOID0gXCJudW1iZXJcIjtcbmNvbnN0IENPTE9SX1RPS0VOID0gXCJjb2xvclwiO1xuY29uc3QgVkFSX1RPS0VOID0gXCJ2YXJcIjtcbmNvbnN0IFZBUl9GVU5DVElPTl9UT0tFTiA9IFwidmFyKFwiO1xuY29uc3QgU1BMSVRfVE9LRU4gPSBcIiR7fVwiO1xuLy8gdGhpcyByZWdleCBjb25zaXN0cyBvZiB0aGUgYHNpbmdsZUNzc1ZhcmlhYmxlUmVnZXh8cmdiSFNMVmFsdWVSZWdleHxkaWdpdFJlZ2V4YFxuY29uc3QgY29tcGxleFJlZ2V4ID0gL3ZhclxccypcXChcXHMqLS0oPzpbXFx3LV0rXFxzKnxbXFx3LV0rXFxzKiwoPzpcXHMqW14pKFxcc118XFxzKlxcKCg/OlteKShdfFxcKFteKShdKlxcKSkqXFwpKStcXHMqKVxcKXwjW1xcZGEtZl17Myw4fXwoPzpyZ2J8aHNsKWE/XFwoKD86LT9bXFxkLl0rJT9bLFxcc10rKXsyfS0/W1xcZC5dKyU/XFxzKig/OlssL11cXHMqKT8oPzpcXGJcXGQrKD86XFwuXFxkKyk/fFxcLlxcZCspPyU/XFwpfC0/KD86XFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKS9naXU7XG5mdW5jdGlvbiBhbmFseXNlQ29tcGxleFZhbHVlKHZhbHVlKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgdmFsdWVzID0gW107XG4gICAgY29uc3QgaW5kZXhlcyA9IHtcbiAgICAgICAgY29sb3I6IFtdLFxuICAgICAgICBudW1iZXI6IFtdLFxuICAgICAgICB2YXI6IFtdLFxuICAgIH07XG4gICAgY29uc3QgdHlwZXMgPSBbXTtcbiAgICBsZXQgaSA9IDA7XG4gICAgY29uc3QgdG9rZW5pc2VkID0gb3JpZ2luYWxWYWx1ZS5yZXBsYWNlKGNvbXBsZXhSZWdleCwgKHBhcnNlZFZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChjb2xvci50ZXN0KHBhcnNlZFZhbHVlKSkge1xuICAgICAgICAgICAgaW5kZXhlcy5jb2xvci5wdXNoKGkpO1xuICAgICAgICAgICAgdHlwZXMucHVzaChDT0xPUl9UT0tFTik7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaChjb2xvci5wYXJzZShwYXJzZWRWYWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHBhcnNlZFZhbHVlLnN0YXJ0c1dpdGgoVkFSX0ZVTkNUSU9OX1RPS0VOKSkge1xuICAgICAgICAgICAgaW5kZXhlcy52YXIucHVzaChpKTtcbiAgICAgICAgICAgIHR5cGVzLnB1c2goVkFSX1RPS0VOKTtcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKHBhcnNlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGluZGV4ZXMubnVtYmVyLnB1c2goaSk7XG4gICAgICAgICAgICB0eXBlcy5wdXNoKE5VTUJFUl9UT0tFTik7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaChwYXJzZUZsb2F0KHBhcnNlZFZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgKytpO1xuICAgICAgICByZXR1cm4gU1BMSVRfVE9LRU47XG4gICAgfSk7XG4gICAgY29uc3Qgc3BsaXQgPSB0b2tlbmlzZWQuc3BsaXQoU1BMSVRfVE9LRU4pO1xuICAgIHJldHVybiB7IHZhbHVlcywgc3BsaXQsIGluZGV4ZXMsIHR5cGVzIH07XG59XG5mdW5jdGlvbiBwYXJzZUNvbXBsZXhWYWx1ZSh2KSB7XG4gICAgcmV0dXJuIGFuYWx5c2VDb21wbGV4VmFsdWUodikudmFsdWVzO1xufVxuZnVuY3Rpb24gY3JlYXRlVHJhbnNmb3JtZXIoc291cmNlKSB7XG4gICAgY29uc3QgeyBzcGxpdCwgdHlwZXMgfSA9IGFuYWx5c2VDb21wbGV4VmFsdWUoc291cmNlKTtcbiAgICBjb25zdCBudW1TZWN0aW9ucyA9IHNwbGl0Lmxlbmd0aDtcbiAgICByZXR1cm4gKHYpID0+IHtcbiAgICAgICAgbGV0IG91dHB1dCA9IFwiXCI7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtU2VjdGlvbnM7IGkrKykge1xuICAgICAgICAgICAgb3V0cHV0ICs9IHNwbGl0W2ldO1xuICAgICAgICAgICAgaWYgKHZbaV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0eXBlc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gTlVNQkVSX1RPS0VOKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSBzYW5pdGl6ZSh2W2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gQ09MT1JfVE9LRU4pIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IGNvbG9yLnRyYW5zZm9ybSh2W2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSB2W2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH07XG59XG5jb25zdCBjb252ZXJ0TnVtYmVyc1RvWmVybyA9ICh2KSA9PiB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiA/IDAgOiBjb2xvci50ZXN0KHYpID8gY29sb3IuZ2V0QW5pbWF0YWJsZU5vbmUodikgOiB2O1xuZnVuY3Rpb24gZ2V0QW5pbWF0YWJsZU5vbmUodikge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQ29tcGxleFZhbHVlKHYpO1xuICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gY3JlYXRlVHJhbnNmb3JtZXIodik7XG4gICAgcmV0dXJuIHRyYW5zZm9ybWVyKHBhcnNlZC5tYXAoY29udmVydE51bWJlcnNUb1plcm8pKTtcbn1cbmNvbnN0IGNvbXBsZXggPSB7XG4gICAgdGVzdCxcbiAgICBwYXJzZTogcGFyc2VDb21wbGV4VmFsdWUsXG4gICAgY3JlYXRlVHJhbnNmb3JtZXIsXG4gICAgZ2V0QW5pbWF0YWJsZU5vbmUsXG59O1xuXG5leHBvcnQgeyBhbmFseXNlQ29tcGxleFZhbHVlLCBjb21wbGV4IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mask: () => (/* binding */ mask)\n/* harmony export */ });\n/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n\n\nconst mask = {\n ..._index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex,\n getAnimatableNone: (v) => {\n const parsed = _index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.parse(v);\n const transformer = _index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.createTransformer(v);\n return transformer(parsed.map((v) => typeof v === \"number\" ? 0 : typeof v === \"object\" ? { ...v, alpha: 1 } : v));\n },\n};\n\n\n//# sourceMappingURL=mask.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29tcGxleC9tYXNrLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFzQzs7QUFFdEM7QUFDQSxPQUFPLCtDQUFPO0FBQ2Q7QUFDQSx1QkFBdUIsK0NBQU87QUFDOUIsNEJBQTRCLCtDQUFPO0FBQ25DLG1HQUFtRyxpQkFBaUI7QUFDcEgsS0FBSztBQUNMOztBQUVnQjtBQUNoQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29tcGxleC9tYXNrLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wbGV4IH0gZnJvbSAnLi9pbmRleC5tanMnO1xuXG5jb25zdCBtYXNrID0ge1xuICAgIC4uLmNvbXBsZXgsXG4gICAgZ2V0QW5pbWF0YWJsZU5vbmU6ICh2KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IGNvbXBsZXgucGFyc2Uodik7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gY29tcGxleC5jcmVhdGVUcmFuc2Zvcm1lcih2KTtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybWVyKHBhcnNlZC5tYXAoKHYpID0+IHR5cGVvZiB2ID09PSBcIm51bWJlclwiID8gMCA6IHR5cGVvZiB2ID09PSBcIm9iamVjdFwiID8geyAuLi52LCBhbHBoYTogMSB9IDogdikpO1xuICAgIH0sXG59O1xuXG5leHBvcnQgeyBtYXNrIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYXNrLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/dimensions.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dimensionValueTypes: () => (/* binding */ dimensionValueTypes),\n/* harmony export */ findDimensionValueType: () => (/* binding */ findDimensionValueType)\n/* harmony export */ });\n/* harmony import */ var _auto_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./auto.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/auto.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _test_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./test.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs\");\n\n\n\n\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.px, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.degrees, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.vw, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.vh, _auto_mjs__WEBPACK_IMPORTED_MODULE_2__.auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find((0,_test_mjs__WEBPACK_IMPORTED_MODULE_3__.testValueType)(v));\n\n\n//# sourceMappingURL=dimensions.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvZGltZW5zaW9ucy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWtDO0FBQ1c7QUFDc0I7QUFDeEI7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixzREFBTSxFQUFFLGtEQUFFLEVBQUUsdURBQU8sRUFBRSx1REFBTyxFQUFFLGtEQUFFLEVBQUUsa0RBQUUsRUFBRSwyQ0FBSTtBQUN2RTtBQUNBO0FBQ0E7QUFDQSwrREFBK0Qsd0RBQWE7O0FBRXJCO0FBQ3ZEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9kaW1lbnNpb25zLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhdXRvIH0gZnJvbSAnLi9hdXRvLm1qcyc7XG5pbXBvcnQgeyBudW1iZXIgfSBmcm9tICcuL251bWJlcnMvaW5kZXgubWpzJztcbmltcG9ydCB7IHB4LCBwZXJjZW50LCBkZWdyZWVzLCB2dywgdmggfSBmcm9tICcuL251bWJlcnMvdW5pdHMubWpzJztcbmltcG9ydCB7IHRlc3RWYWx1ZVR5cGUgfSBmcm9tICcuL3Rlc3QubWpzJztcblxuLyoqXG4gKiBBIGxpc3Qgb2YgdmFsdWUgdHlwZXMgY29tbW9ubHkgdXNlZCBmb3IgZGltZW5zaW9uc1xuICovXG5jb25zdCBkaW1lbnNpb25WYWx1ZVR5cGVzID0gW251bWJlciwgcHgsIHBlcmNlbnQsIGRlZ3JlZXMsIHZ3LCB2aCwgYXV0b107XG4vKipcbiAqIFRlc3RzIGEgZGltZW5zaW9uYWwgdmFsdWUgYWdhaW5zdCB0aGUgbGlzdCBvZiBkaW1lbnNpb24gVmFsdWVUeXBlc1xuICovXG5jb25zdCBmaW5kRGltZW5zaW9uVmFsdWVUeXBlID0gKHYpID0+IGRpbWVuc2lvblZhbHVlVHlwZXMuZmluZCh0ZXN0VmFsdWVUeXBlKHYpKTtcblxuZXhwb3J0IHsgZGltZW5zaW9uVmFsdWVUeXBlcywgZmluZERpbWVuc2lvblZhbHVlVHlwZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGltZW5zaW9ucy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/int.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/int.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ int: () => (/* binding */ int)\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n\n\nconst int = {\n ..._numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number,\n transform: Math.round,\n};\n\n\n//# sourceMappingURL=int.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvaW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2Qzs7QUFFN0M7QUFDQSxPQUFPLHNEQUFNO0FBQ2I7QUFDQTs7QUFFZTtBQUNmIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9pbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG51bWJlciB9IGZyb20gJy4vbnVtYmVycy9pbmRleC5tanMnO1xuXG5jb25zdCBpbnQgPSB7XG4gICAgLi4ubnVtYmVyLFxuICAgIHRyYW5zZm9ybTogTWF0aC5yb3VuZCxcbn07XG5cbmV4cG9ydCB7IGludCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/int.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultValueTypes: () => (/* binding */ defaultValueTypes),\n/* harmony export */ getDefaultValueType: () => (/* binding */ getDefaultValueType)\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../complex/filter.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\");\n/* harmony import */ var _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../complex/mask.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n\n\n\n\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ..._number_mjs__WEBPACK_IMPORTED_MODULE_0__.numberValueTypes,\n // Color props\n color: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n backgroundColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n outlineColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n fill: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n stroke: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n // Border props\n borderColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderTopColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderRightColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderBottomColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderLeftColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n filter: _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__.filter,\n WebkitFilter: _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__.filter,\n mask: _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_3__.mask,\n WebkitMask: _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_3__.mask,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\n\n//# sourceMappingURL=defaults.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy9kZWZhdWx0cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTJDO0FBQ0k7QUFDSjtBQUNLOztBQUVoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8seURBQWdCO0FBQ3ZCO0FBQ0EsU0FBUztBQUNULHFCQUFxQixtREFBSztBQUMxQixrQkFBa0IsbURBQUs7QUFDdkIsVUFBVSxtREFBSztBQUNmLFlBQVksbURBQUs7QUFDakI7QUFDQSxpQkFBaUIsbURBQUs7QUFDdEIsb0JBQW9CLG1EQUFLO0FBQ3pCLHNCQUFzQixtREFBSztBQUMzQix1QkFBdUIsbURBQUs7QUFDNUIscUJBQXFCLG1EQUFLO0FBQzFCLFVBQVU7QUFDVixrQkFBa0IsdURBQU07QUFDeEIsUUFBUTtBQUNSLGdCQUFnQixtREFBSTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVrRDtBQUNsRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy9kZWZhdWx0cy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29sb3IgfSBmcm9tICcuLi9jb2xvci9pbmRleC5tanMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAnLi4vY29tcGxleC9maWx0ZXIubWpzJztcbmltcG9ydCB7IG1hc2sgfSBmcm9tICcuLi9jb21wbGV4L21hc2subWpzJztcbmltcG9ydCB7IG51bWJlclZhbHVlVHlwZXMgfSBmcm9tICcuL251bWJlci5tanMnO1xuXG4vKipcbiAqIEEgbWFwIG9mIGRlZmF1bHQgdmFsdWUgdHlwZXMgZm9yIGNvbW1vbiB2YWx1ZXNcbiAqL1xuY29uc3QgZGVmYXVsdFZhbHVlVHlwZXMgPSB7XG4gICAgLi4ubnVtYmVyVmFsdWVUeXBlcyxcbiAgICAvLyBDb2xvciBwcm9wc1xuICAgIGNvbG9yLFxuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IsXG4gICAgb3V0bGluZUNvbG9yOiBjb2xvcixcbiAgICBmaWxsOiBjb2xvcixcbiAgICBzdHJva2U6IGNvbG9yLFxuICAgIC8vIEJvcmRlciBwcm9wc1xuICAgIGJvcmRlckNvbG9yOiBjb2xvcixcbiAgICBib3JkZXJUb3BDb2xvcjogY29sb3IsXG4gICAgYm9yZGVyUmlnaHRDb2xvcjogY29sb3IsXG4gICAgYm9yZGVyQm90dG9tQ29sb3I6IGNvbG9yLFxuICAgIGJvcmRlckxlZnRDb2xvcjogY29sb3IsXG4gICAgZmlsdGVyLFxuICAgIFdlYmtpdEZpbHRlcjogZmlsdGVyLFxuICAgIG1hc2ssXG4gICAgV2Via2l0TWFzazogbWFzayxcbn07XG4vKipcbiAqIEdldHMgdGhlIGRlZmF1bHQgVmFsdWVUeXBlIGZvciB0aGUgcHJvdmlkZWQgdmFsdWUga2V5XG4gKi9cbmNvbnN0IGdldERlZmF1bHRWYWx1ZVR5cGUgPSAoa2V5KSA9PiBkZWZhdWx0VmFsdWVUeXBlc1trZXldO1xuXG5leHBvcnQgeyBkZWZhdWx0VmFsdWVUeXBlcywgZ2V0RGVmYXVsdFZhbHVlVHlwZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVmYXVsdHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/maps/number.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ numberValueTypes: () => (/* binding */ numberValueTypes)\n/* harmony export */ });\n/* harmony import */ var _int_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../int.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/int.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _transform_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs\");\n\n\n\n\n\nconst numberValueTypes = {\n // Border props\n borderWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderTopWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderRightWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderBottomWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderLeftWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderTopLeftRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderTopRightRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderBottomRightRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderBottomLeftRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Positioning props\n width: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n maxWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n height: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n maxHeight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n top: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n right: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n bottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n left: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n inset: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetBlock: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetBlockStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetBlockEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetInline: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetInlineStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetInlineEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Spacing props\n padding: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingTop: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingRight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingLeft: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBlock: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBlockStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBlockEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingInline: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingInlineStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingInlineEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n margin: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginTop: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginRight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginLeft: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBlock: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBlockStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBlockEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginInline: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginInlineStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginInlineEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Typography\n fontSize: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Misc\n backgroundPositionX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n backgroundPositionY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n ..._transform_mjs__WEBPACK_IMPORTED_MODULE_1__.transformValueTypes,\n zIndex: _int_mjs__WEBPACK_IMPORTED_MODULE_2__.int,\n // SVG\n fillOpacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha,\n strokeOpacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha,\n numOctaves: _int_mjs__WEBPACK_IMPORTED_MODULE_2__.int,\n};\n\n\n//# sourceMappingURL=number.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy9udW1iZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWlDO0FBQ1k7QUFDSDtBQUNZOztBQUV0RDtBQUNBO0FBQ0EsaUJBQWlCLGtEQUFFO0FBQ25CLG9CQUFvQixrREFBRTtBQUN0QixzQkFBc0Isa0RBQUU7QUFDeEIsdUJBQXVCLGtEQUFFO0FBQ3pCLHFCQUFxQixrREFBRTtBQUN2QixrQkFBa0Isa0RBQUU7QUFDcEIseUJBQXlCLGtEQUFFO0FBQzNCLDBCQUEwQixrREFBRTtBQUM1Qiw2QkFBNkIsa0RBQUU7QUFDL0IsNEJBQTRCLGtEQUFFO0FBQzlCO0FBQ0EsV0FBVyxrREFBRTtBQUNiLGNBQWMsa0RBQUU7QUFDaEIsWUFBWSxrREFBRTtBQUNkLGVBQWUsa0RBQUU7QUFDakIsU0FBUyxrREFBRTtBQUNYLFdBQVcsa0RBQUU7QUFDYixZQUFZLGtEQUFFO0FBQ2QsVUFBVSxrREFBRTtBQUNaLFdBQVcsa0RBQUU7QUFDYixnQkFBZ0Isa0RBQUU7QUFDbEIscUJBQXFCLGtEQUFFO0FBQ3ZCLG1CQUFtQixrREFBRTtBQUNyQixpQkFBaUIsa0RBQUU7QUFDbkIsc0JBQXNCLGtEQUFFO0FBQ3hCLG9CQUFvQixrREFBRTtBQUN0QjtBQUNBLGFBQWEsa0RBQUU7QUFDZixnQkFBZ0Isa0RBQUU7QUFDbEIsa0JBQWtCLGtEQUFFO0FBQ3BCLG1CQUFtQixrREFBRTtBQUNyQixpQkFBaUIsa0RBQUU7QUFDbkIsa0JBQWtCLGtEQUFFO0FBQ3BCLHVCQUF1QixrREFBRTtBQUN6QixxQkFBcUIsa0RBQUU7QUFDdkIsbUJBQW1CLGtEQUFFO0FBQ3JCLHdCQUF3QixrREFBRTtBQUMxQixzQkFBc0Isa0RBQUU7QUFDeEIsWUFBWSxrREFBRTtBQUNkLGVBQWUsa0RBQUU7QUFDakIsaUJBQWlCLGtEQUFFO0FBQ25CLGtCQUFrQixrREFBRTtBQUNwQixnQkFBZ0Isa0RBQUU7QUFDbEIsaUJBQWlCLGtEQUFFO0FBQ25CLHNCQUFzQixrREFBRTtBQUN4QixvQkFBb0Isa0RBQUU7QUFDdEIsa0JBQWtCLGtEQUFFO0FBQ3BCLHVCQUF1QixrREFBRTtBQUN6QixxQkFBcUIsa0RBQUU7QUFDdkI7QUFDQSxjQUFjLGtEQUFFO0FBQ2hCO0FBQ0EseUJBQXlCLGtEQUFFO0FBQzNCLHlCQUF5QixrREFBRTtBQUMzQixPQUFPLCtEQUFtQjtBQUMxQixZQUFZLHlDQUFHO0FBQ2Y7QUFDQSxpQkFBaUIscURBQUs7QUFDdEIsbUJBQW1CLHFEQUFLO0FBQ3hCLGdCQUFnQix5Q0FBRztBQUNuQjs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL21hcHMvbnVtYmVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnQgfSBmcm9tICcuLi9pbnQubWpzJztcbmltcG9ydCB7IGFscGhhIH0gZnJvbSAnLi4vbnVtYmVycy9pbmRleC5tanMnO1xuaW1wb3J0IHsgcHggfSBmcm9tICcuLi9udW1iZXJzL3VuaXRzLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1WYWx1ZVR5cGVzIH0gZnJvbSAnLi90cmFuc2Zvcm0ubWpzJztcblxuY29uc3QgbnVtYmVyVmFsdWVUeXBlcyA9IHtcbiAgICAvLyBCb3JkZXIgcHJvcHNcbiAgICBib3JkZXJXaWR0aDogcHgsXG4gICAgYm9yZGVyVG9wV2lkdGg6IHB4LFxuICAgIGJvcmRlclJpZ2h0V2lkdGg6IHB4LFxuICAgIGJvcmRlckJvdHRvbVdpZHRoOiBweCxcbiAgICBib3JkZXJMZWZ0V2lkdGg6IHB4LFxuICAgIGJvcmRlclJhZGl1czogcHgsXG4gICAgYm9yZGVyVG9wTGVmdFJhZGl1czogcHgsXG4gICAgYm9yZGVyVG9wUmlnaHRSYWRpdXM6IHB4LFxuICAgIGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiBweCxcbiAgICBib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiBweCxcbiAgICAvLyBQb3NpdGlvbmluZyBwcm9wc1xuICAgIHdpZHRoOiBweCxcbiAgICBtYXhXaWR0aDogcHgsXG4gICAgaGVpZ2h0OiBweCxcbiAgICBtYXhIZWlnaHQ6IHB4LFxuICAgIHRvcDogcHgsXG4gICAgcmlnaHQ6IHB4LFxuICAgIGJvdHRvbTogcHgsXG4gICAgbGVmdDogcHgsXG4gICAgaW5zZXQ6IHB4LFxuICAgIGluc2V0QmxvY2s6IHB4LFxuICAgIGluc2V0QmxvY2tTdGFydDogcHgsXG4gICAgaW5zZXRCbG9ja0VuZDogcHgsXG4gICAgaW5zZXRJbmxpbmU6IHB4LFxuICAgIGluc2V0SW5saW5lU3RhcnQ6IHB4LFxuICAgIGluc2V0SW5saW5lRW5kOiBweCxcbiAgICAvLyBTcGFjaW5nIHByb3BzXG4gICAgcGFkZGluZzogcHgsXG4gICAgcGFkZGluZ1RvcDogcHgsXG4gICAgcGFkZGluZ1JpZ2h0OiBweCxcbiAgICBwYWRkaW5nQm90dG9tOiBweCxcbiAgICBwYWRkaW5nTGVmdDogcHgsXG4gICAgcGFkZGluZ0Jsb2NrOiBweCxcbiAgICBwYWRkaW5nQmxvY2tTdGFydDogcHgsXG4gICAgcGFkZGluZ0Jsb2NrRW5kOiBweCxcbiAgICBwYWRkaW5nSW5saW5lOiBweCxcbiAgICBwYWRkaW5nSW5saW5lU3RhcnQ6IHB4LFxuICAgIHBhZGRpbmdJbmxpbmVFbmQ6IHB4LFxuICAgIG1hcmdpbjogcHgsXG4gICAgbWFyZ2luVG9wOiBweCxcbiAgICBtYXJnaW5SaWdodDogcHgsXG4gICAgbWFyZ2luQm90dG9tOiBweCxcbiAgICBtYXJnaW5MZWZ0OiBweCxcbiAgICBtYXJnaW5CbG9jazogcHgsXG4gICAgbWFyZ2luQmxvY2tTdGFydDogcHgsXG4gICAgbWFyZ2luQmxvY2tFbmQ6IHB4LFxuICAgIG1hcmdpbklubGluZTogcHgsXG4gICAgbWFyZ2luSW5saW5lU3RhcnQ6IHB4LFxuICAgIG1hcmdpbklubGluZUVuZDogcHgsXG4gICAgLy8gVHlwb2dyYXBoeVxuICAgIGZvbnRTaXplOiBweCxcbiAgICAvLyBNaXNjXG4gICAgYmFja2dyb3VuZFBvc2l0aW9uWDogcHgsXG4gICAgYmFja2dyb3VuZFBvc2l0aW9uWTogcHgsXG4gICAgLi4udHJhbnNmb3JtVmFsdWVUeXBlcyxcbiAgICB6SW5kZXg6IGludCxcbiAgICAvLyBTVkdcbiAgICBmaWxsT3BhY2l0eTogYWxwaGEsXG4gICAgc3Ryb2tlT3BhY2l0eTogYWxwaGEsXG4gICAgbnVtT2N0YXZlczogaW50LFxufTtcblxuZXhwb3J0IHsgbnVtYmVyVmFsdWVUeXBlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bnVtYmVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ transformValueTypes: () => (/* binding */ transformValueTypes)\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\n\n\nconst transformValueTypes = {\n rotate: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n rotateX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n rotateY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n rotateZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n scale: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n scaleX: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n scaleY: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n scaleZ: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n skew: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n skewX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n skewY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n distance: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n translateX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n translateY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n translateZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n x: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n y: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n z: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n perspective: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n transformPerspective: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n opacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.alpha,\n originX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.progressPercentage,\n originY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.progressPercentage,\n originZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n};\n\n\n//# sourceMappingURL=transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy90cmFuc2Zvcm0ubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvRDtBQUNtQjs7QUFFdkU7QUFDQSxZQUFZLHVEQUFPO0FBQ25CLGFBQWEsdURBQU87QUFDcEIsYUFBYSx1REFBTztBQUNwQixhQUFhLHVEQUFPO0FBQ3BCLFNBQVM7QUFDVCxZQUFZLHFEQUFLO0FBQ2pCLFlBQVkscURBQUs7QUFDakIsWUFBWSxxREFBSztBQUNqQixVQUFVLHVEQUFPO0FBQ2pCLFdBQVcsdURBQU87QUFDbEIsV0FBVyx1REFBTztBQUNsQixjQUFjLGtEQUFFO0FBQ2hCLGdCQUFnQixrREFBRTtBQUNsQixnQkFBZ0Isa0RBQUU7QUFDbEIsZ0JBQWdCLGtEQUFFO0FBQ2xCLE9BQU8sa0RBQUU7QUFDVCxPQUFPLGtEQUFFO0FBQ1QsT0FBTyxrREFBRTtBQUNULGlCQUFpQixrREFBRTtBQUNuQiwwQkFBMEIsa0RBQUU7QUFDNUIsYUFBYSxxREFBSztBQUNsQixhQUFhLGtFQUFrQjtBQUMvQixhQUFhLGtFQUFrQjtBQUMvQixhQUFhLGtEQUFFO0FBQ2Y7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9tYXBzL3RyYW5zZm9ybS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2NhbGUsIGFscGhhIH0gZnJvbSAnLi4vbnVtYmVycy9pbmRleC5tanMnO1xuaW1wb3J0IHsgZGVncmVlcywgcHgsIHByb2dyZXNzUGVyY2VudGFnZSB9IGZyb20gJy4uL251bWJlcnMvdW5pdHMubWpzJztcblxuY29uc3QgdHJhbnNmb3JtVmFsdWVUeXBlcyA9IHtcbiAgICByb3RhdGU6IGRlZ3JlZXMsXG4gICAgcm90YXRlWDogZGVncmVlcyxcbiAgICByb3RhdGVZOiBkZWdyZWVzLFxuICAgIHJvdGF0ZVo6IGRlZ3JlZXMsXG4gICAgc2NhbGUsXG4gICAgc2NhbGVYOiBzY2FsZSxcbiAgICBzY2FsZVk6IHNjYWxlLFxuICAgIHNjYWxlWjogc2NhbGUsXG4gICAgc2tldzogZGVncmVlcyxcbiAgICBza2V3WDogZGVncmVlcyxcbiAgICBza2V3WTogZGVncmVlcyxcbiAgICBkaXN0YW5jZTogcHgsXG4gICAgdHJhbnNsYXRlWDogcHgsXG4gICAgdHJhbnNsYXRlWTogcHgsXG4gICAgdHJhbnNsYXRlWjogcHgsXG4gICAgeDogcHgsXG4gICAgeTogcHgsXG4gICAgejogcHgsXG4gICAgcGVyc3BlY3RpdmU6IHB4LFxuICAgIHRyYW5zZm9ybVBlcnNwZWN0aXZlOiBweCxcbiAgICBvcGFjaXR5OiBhbHBoYSxcbiAgICBvcmlnaW5YOiBwcm9ncmVzc1BlcmNlbnRhZ2UsXG4gICAgb3JpZ2luWTogcHJvZ3Jlc3NQZXJjZW50YWdlLFxuICAgIG9yaWdpblo6IHB4LFxufTtcblxuZXhwb3J0IHsgdHJhbnNmb3JtVmFsdWVUeXBlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHJhbnNmb3JtLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ alpha: () => (/* binding */ alpha),\n/* harmony export */ number: () => (/* binding */ number),\n/* harmony export */ scale: () => (/* binding */ scale)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbnVtYmVycy9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFxQzs7QUFFckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsbURBQUs7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL251bWJlcnMvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsYW1wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuY29uc3QgbnVtYmVyID0ge1xuICAgIHRlc3Q6ICh2KSA9PiB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIixcbiAgICBwYXJzZTogcGFyc2VGbG9hdCxcbiAgICB0cmFuc2Zvcm06ICh2KSA9PiB2LFxufTtcbmNvbnN0IGFscGhhID0ge1xuICAgIC4uLm51bWJlcixcbiAgICB0cmFuc2Zvcm06ICh2KSA9PiBjbGFtcCgwLCAxLCB2KSxcbn07XG5jb25zdCBzY2FsZSA9IHtcbiAgICAuLi5udW1iZXIsXG4gICAgZGVmYXVsdDogMSxcbn07XG5cbmV4cG9ydCB7IGFscGhhLCBudW1iZXIsIHNjYWxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ degrees: () => (/* binding */ degrees),\n/* harmony export */ percent: () => (/* binding */ percent),\n/* harmony export */ progressPercentage: () => (/* binding */ progressPercentage),\n/* harmony export */ px: () => (/* binding */ px),\n/* harmony export */ vh: () => (/* binding */ vh),\n/* harmony export */ vw: () => (/* binding */ vw)\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\nconst createUnitType = (unit) => ({\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\nconst px = /*@__PURE__*/ createUnitType(\"px\");\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\nconst progressPercentage = /*@__PURE__*/ (() => ({\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n}))();\n\n\n//# sourceMappingURL=units.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsRUFBRSxFQUFFLEtBQUs7QUFDbEMsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRTJEO0FBQzVEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9udW1iZXJzL3VuaXRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiNfX05PX1NJREVfRUZGRUNUU19fKi9cbmNvbnN0IGNyZWF0ZVVuaXRUeXBlID0gKHVuaXQpID0+ICh7XG4gICAgdGVzdDogKHYpID0+IHR5cGVvZiB2ID09PSBcInN0cmluZ1wiICYmIHYuZW5kc1dpdGgodW5pdCkgJiYgdi5zcGxpdChcIiBcIikubGVuZ3RoID09PSAxLFxuICAgIHBhcnNlOiBwYXJzZUZsb2F0LFxuICAgIHRyYW5zZm9ybTogKHYpID0+IGAke3Z9JHt1bml0fWAsXG59KTtcbmNvbnN0IGRlZ3JlZXMgPSAvKkBfX1BVUkVfXyovIGNyZWF0ZVVuaXRUeXBlKFwiZGVnXCIpO1xuY29uc3QgcGVyY2VudCA9IC8qQF9fUFVSRV9fKi8gY3JlYXRlVW5pdFR5cGUoXCIlXCIpO1xuY29uc3QgcHggPSAvKkBfX1BVUkVfXyovIGNyZWF0ZVVuaXRUeXBlKFwicHhcIik7XG5jb25zdCB2aCA9IC8qQF9fUFVSRV9fKi8gY3JlYXRlVW5pdFR5cGUoXCJ2aFwiKTtcbmNvbnN0IHZ3ID0gLypAX19QVVJFX18qLyBjcmVhdGVVbml0VHlwZShcInZ3XCIpO1xuY29uc3QgcHJvZ3Jlc3NQZXJjZW50YWdlID0gLypAX19QVVJFX18qLyAoKCkgPT4gKHtcbiAgICAuLi5wZXJjZW50LFxuICAgIHBhcnNlOiAodikgPT4gcGVyY2VudC5wYXJzZSh2KSAvIDEwMCxcbiAgICB0cmFuc2Zvcm06ICh2KSA9PiBwZXJjZW50LnRyYW5zZm9ybSh2ICogMTAwKSxcbn0pKSgpO1xuXG5leHBvcnQgeyBkZWdyZWVzLCBwZXJjZW50LCBwcm9ncmVzc1BlcmNlbnRhZ2UsIHB4LCB2aCwgdncgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVuaXRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/test.mjs ***! + \**************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ testValueType: () => (/* binding */ testValueType)\n/* harmony export */ });\n/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\n\n//# sourceMappingURL=test.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdGVzdC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdGVzdC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUZXN0cyBhIHByb3ZpZGVkIHZhbHVlIGFnYWluc3QgYSBWYWx1ZVR5cGVcbiAqL1xuY29uc3QgdGVzdFZhbHVlVHlwZSA9ICh2KSA9PiAodHlwZSkgPT4gdHlwZS50ZXN0KHYpO1xuXG5leHBvcnQgeyB0ZXN0VmFsdWVUeXBlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10ZXN0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getAnimatableNone: () => (/* binding */ getAnimatableNone)\n/* harmony export */ });\n/* harmony import */ var _complex_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../complex/filter.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\");\n/* harmony import */ var _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../complex/mask.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs\");\n/* harmony import */ var _maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../maps/defaults.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\");\n\n\n\n\n\nconst customTypes = /*@__PURE__*/ new Set([_complex_filter_mjs__WEBPACK_IMPORTED_MODULE_0__.filter, _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_1__.mask]);\nfunction getAnimatableNone(key, value) {\n let defaultValueType = (0,_maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_2__.getDefaultValueType)(key);\n if (!customTypes.has(defaultValueType))\n defaultValueType = _complex_index_mjs__WEBPACK_IMPORTED_MODULE_3__.complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\n\n//# sourceMappingURL=animatable-none.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvYW5pbWF0YWJsZS1ub25lLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUErQztBQUNBO0FBQ0o7QUFDZ0I7O0FBRTNELDJDQUEyQyx1REFBTSxFQUFFLG1EQUFJO0FBQ3ZEO0FBQ0EsMkJBQTJCLHVFQUFtQjtBQUM5QztBQUNBLDJCQUEyQix1REFBTztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvYW5pbWF0YWJsZS1ub25lLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wbGV4IH0gZnJvbSAnLi4vY29tcGxleC9pbmRleC5tanMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAnLi4vY29tcGxleC9maWx0ZXIubWpzJztcbmltcG9ydCB7IG1hc2sgfSBmcm9tICcuLi9jb21wbGV4L21hc2subWpzJztcbmltcG9ydCB7IGdldERlZmF1bHRWYWx1ZVR5cGUgfSBmcm9tICcuLi9tYXBzL2RlZmF1bHRzLm1qcyc7XG5cbmNvbnN0IGN1c3RvbVR5cGVzID0gLypAX19QVVJFX18qLyBuZXcgU2V0KFtmaWx0ZXIsIG1hc2tdKTtcbmZ1bmN0aW9uIGdldEFuaW1hdGFibGVOb25lKGtleSwgdmFsdWUpIHtcbiAgICBsZXQgZGVmYXVsdFZhbHVlVHlwZSA9IGdldERlZmF1bHRWYWx1ZVR5cGUoa2V5KTtcbiAgICBpZiAoIWN1c3RvbVR5cGVzLmhhcyhkZWZhdWx0VmFsdWVUeXBlKSlcbiAgICAgICAgZGVmYXVsdFZhbHVlVHlwZSA9IGNvbXBsZXg7XG4gICAgLy8gSWYgdmFsdWUgaXMgbm90IHJlY29nbmlzZWQgYXMgYW5pbWF0YWJsZSwgaWUgXCJub25lXCIsIGNyZWF0ZSBhbiBhbmltYXRhYmxlIHZlcnNpb24gb3JpZ2luIGJhc2VkIG9uIHRoZSB0YXJnZXRcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlVHlwZS5nZXRBbmltYXRhYmxlTm9uZVxuICAgICAgICA/IGRlZmF1bHRWYWx1ZVR5cGUuZ2V0QW5pbWF0YWJsZU5vbmUodmFsdWUpXG4gICAgICAgIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgeyBnZXRBbmltYXRhYmxlTm9uZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW5pbWF0YWJsZS1ub25lLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ colorRegex: () => (/* binding */ colorRegex)\n/* harmony export */ });\nconst colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\n\n\n//# sourceMappingURL=color-regex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvY29sb3ItcmVnZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxnQ0FBZ0MsSUFBSSxxQ0FBcUMsRUFBRTs7QUFFckQ7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2NvbG9yLXJlZ2V4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb2xvclJlZ2V4ID0gLyg/OiNbXFxkYS1mXXszLDh9fCg/OnJnYnxoc2wpYT9cXCgoPzotP1tcXGQuXSslP1ssXFxzXSspezJ9LT9bXFxkLl0rJT9cXHMqKD86WywvXVxccyopPyg/OlxcYlxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKyk/JT9cXCkpL2dpdTtcblxuZXhwb3J0IHsgY29sb3JSZWdleCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29sb3ItcmVnZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/find.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ findValueType: () => (/* binding */ findValueType)\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _dimensions_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dimensions.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\");\n/* harmony import */ var _test_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../test.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs\");\n\n\n\n\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [..._dimensions_mjs__WEBPACK_IMPORTED_MODULE_0__.dimensionValueTypes, _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color, _complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__.complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find((0,_test_mjs__WEBPACK_IMPORTED_MODULE_3__.testValueType)(v));\n\n\n//# sourceMappingURL=find.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZmluZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBMkM7QUFDSTtBQUNTO0FBQ1o7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixnRUFBbUIsRUFBRSxtREFBSyxFQUFFLHVEQUFPO0FBQzFEO0FBQ0E7QUFDQTtBQUNBLDZDQUE2Qyx3REFBYTs7QUFFakM7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2ZpbmQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbG9yIH0gZnJvbSAnLi4vY29sb3IvaW5kZXgubWpzJztcbmltcG9ydCB7IGNvbXBsZXggfSBmcm9tICcuLi9jb21wbGV4L2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBkaW1lbnNpb25WYWx1ZVR5cGVzIH0gZnJvbSAnLi4vZGltZW5zaW9ucy5tanMnO1xuaW1wb3J0IHsgdGVzdFZhbHVlVHlwZSB9IGZyb20gJy4uL3Rlc3QubWpzJztcblxuLyoqXG4gKiBBIGxpc3Qgb2YgYWxsIFZhbHVlVHlwZXNcbiAqL1xuY29uc3QgdmFsdWVUeXBlcyA9IFsuLi5kaW1lbnNpb25WYWx1ZVR5cGVzLCBjb2xvciwgY29tcGxleF07XG4vKipcbiAqIFRlc3RzIGEgdmFsdWUgYWdhaW5zdCB0aGUgbGlzdCBvZiBWYWx1ZVR5cGVzXG4gKi9cbmNvbnN0IGZpbmRWYWx1ZVR5cGUgPSAodikgPT4gdmFsdWVUeXBlcy5maW5kKHRlc3RWYWx1ZVR5cGUodikpO1xuXG5leHBvcnQgeyBmaW5kVmFsdWVUeXBlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1maW5kLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ floatRegex: () => (/* binding */ floatRegex)\n/* harmony export */ });\nconst floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n\n\n//# sourceMappingURL=float-regex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZmxvYXQtcmVnZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFFc0I7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2Zsb2F0LXJlZ2V4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBmbG9hdFJlZ2V4ID0gLy0/KD86XFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKS9ndTtcblxuZXhwb3J0IHsgZmxvYXRSZWdleCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmxvYXQtcmVnZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getValueAsType: () => (/* binding */ getValueAsType)\n/* harmony export */ });\n/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\n\n//# sourceMappingURL=get-as-type.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZ2V0LWFzLXR5cGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUwQjtBQUMxQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZ2V0LWFzLXR5cGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHJvdmlkZWQgYSB2YWx1ZSBhbmQgYSBWYWx1ZVR5cGUsIHJldHVybnMgdGhlIHZhbHVlIGFzIHRoYXQgdmFsdWUgdHlwZS5cbiAqL1xuY29uc3QgZ2V0VmFsdWVBc1R5cGUgPSAodmFsdWUsIHR5cGUpID0+IHtcbiAgICByZXR1cm4gdHlwZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCJcbiAgICAgICAgPyB0eXBlLnRyYW5zZm9ybSh2YWx1ZSlcbiAgICAgICAgOiB2YWx1ZTtcbn07XG5cbmV4cG9ydCB7IGdldFZhbHVlQXNUeXBlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtYXMtdHlwZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNullish: () => (/* binding */ isNullish)\n/* harmony export */ });\nfunction isNullish(v) {\n return v == null;\n}\n\n\n//# sourceMappingURL=is-nullish.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvaXMtbnVsbGlzaC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTs7QUFFcUI7QUFDckIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2lzLW51bGxpc2gubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGlzTnVsbGlzaCh2KSB7XG4gICAgcmV0dXJuIHYgPT0gbnVsbDtcbn1cblxuZXhwb3J0IHsgaXNOdWxsaXNoIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1udWxsaXNoLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ sanitize: () => (/* binding */ sanitize)\n/* harmony export */ });\n// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\n\n\n//# sourceMappingURL=sanitize.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvc2FuaXRpemUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy91dGlscy9zYW5pdGl6ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSWYgdGhpcyBudW1iZXIgaXMgYSBkZWNpbWFsLCBtYWtlIGl0IGp1c3QgZml2ZSBkZWNpbWFsIHBsYWNlc1xuLy8gdG8gYXZvaWQgZXhwb25lbnRzXG5jb25zdCBzYW5pdGl6ZSA9ICh2KSA9PiBNYXRoLnJvdW5kKHYgKiAxMDAwMDApIC8gMTAwMDAwO1xuXG5leHBvcnQgeyBzYW5pdGl6ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2FuaXRpemUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ singleColorRegex: () => (/* binding */ singleColorRegex)\n/* harmony export */ });\nconst singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n\n\n//# sourceMappingURL=single-color-regex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvc2luZ2xlLWNvbG9yLXJlZ2V4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsdUNBQXVDLElBQUkscUNBQXFDLEVBQUU7O0FBRXREO0FBQzVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy91dGlscy9zaW5nbGUtY29sb3ItcmVnZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHNpbmdsZUNvbG9yUmVnZXggPSAvXig/OiNbXFxkYS1mXXszLDh9fCg/OnJnYnxoc2wpYT9cXCgoPzotP1tcXGQuXSslP1ssXFxzXSspezJ9LT9bXFxkLl0rJT9cXHMqKD86WywvXVxccyopPyg/OlxcYlxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKyk/JT9cXCkpJC9pdTtcblxuZXhwb3J0IHsgc2luZ2xlQ29sb3JSZWdleCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2luZ2xlLWNvbG9yLXJlZ2V4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isMotionValue: () => (/* binding */ isMotionValue)\n/* harmony export */ });\nconst isMotionValue = (value) => Boolean(value && value.getVelocity);\n\n\n//# sourceMappingURL=is-motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS91dGlscy9pcy1tb3Rpb24tdmFsdWUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzTW90aW9uVmFsdWUgPSAodmFsdWUpID0+IEJvb2xlYW4odmFsdWUgJiYgdmFsdWUuZ2V0VmVsb2NpdHkpO1xuXG5leHBvcnQgeyBpc01vdGlvblZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1tb3Rpb24tdmFsdWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveMotionValue: () => (/* binding */ resolveMotionValue)\n/* harmony export */ });\n/* harmony import */ var _is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n */\nfunction resolveMotionValue(value) {\n return (0,_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) ? value.get() : value;\n}\n\n\n//# sourceMappingURL=resolve-motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdXRpbHMvcmVzb2x2ZS1tb3Rpb24tdmFsdWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXNEOztBQUV0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsbUVBQWE7QUFDeEI7O0FBRThCO0FBQzlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS91dGlscy9yZXNvbHZlLW1vdGlvbi12YWx1ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJy4vaXMtbW90aW9uLXZhbHVlLm1qcyc7XG5cbi8qKlxuICogSWYgdGhlIHByb3ZpZGVkIHZhbHVlIGlzIGEgTW90aW9uVmFsdWUsIHRoaXMgcmV0dXJucyB0aGUgYWN0dWFsIHZhbHVlLCBvdGhlcndpc2UganVzdCB0aGUgdmFsdWUgaXRzZWxmXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVNb3Rpb25WYWx1ZSh2YWx1ZSkge1xuICAgIHJldHVybiBpc01vdGlvblZhbHVlKHZhbHVlKSA/IHZhbHVlLmdldCgpIDogdmFsdWU7XG59XG5cbmV4cG9ydCB7IHJlc29sdmVNb3Rpb25WYWx1ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1tb3Rpb24tdmFsdWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addValueToWillChange: () => (/* binding */ addValueToWillChange)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _is_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/is.mjs\");\n\n\n\nfunction addValueToWillChange(visualElement, key) {\n const willChange = visualElement.getValue(\"willChange\");\n /**\n * It could be that a user has set willChange to a regular MotionValue,\n * in which case we can't add the value to it.\n */\n if ((0,_is_mjs__WEBPACK_IMPORTED_MODULE_0__.isWillChangeMotionValue)(willChange)) {\n return willChange.add(key);\n }\n else if (!willChange && motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.WillChange) {\n const newWillChange = new motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.WillChange(\"auto\");\n visualElement.addValue(\"willChange\", newWillChange);\n newWillChange.add(key);\n }\n}\n\n\n//# sourceMappingURL=add-will-change.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvd2lsbC1jaGFuZ2UvYWRkLXdpbGwtY2hhbmdlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0Q7QUFDQzs7QUFFbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxnRUFBdUI7QUFDL0I7QUFDQTtBQUNBLDRCQUE0Qiw0REFBa0I7QUFDOUMsa0NBQWtDLDREQUFrQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3dpbGwtY2hhbmdlL2FkZC13aWxsLWNoYW5nZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW90aW9uR2xvYmFsQ29uZmlnIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGlzV2lsbENoYW5nZU1vdGlvblZhbHVlIH0gZnJvbSAnLi9pcy5tanMnO1xuXG5mdW5jdGlvbiBhZGRWYWx1ZVRvV2lsbENoYW5nZSh2aXN1YWxFbGVtZW50LCBrZXkpIHtcbiAgICBjb25zdCB3aWxsQ2hhbmdlID0gdmlzdWFsRWxlbWVudC5nZXRWYWx1ZShcIndpbGxDaGFuZ2VcIik7XG4gICAgLyoqXG4gICAgICogSXQgY291bGQgYmUgdGhhdCBhIHVzZXIgaGFzIHNldCB3aWxsQ2hhbmdlIHRvIGEgcmVndWxhciBNb3Rpb25WYWx1ZSxcbiAgICAgKiBpbiB3aGljaCBjYXNlIHdlIGNhbid0IGFkZCB0aGUgdmFsdWUgdG8gaXQuXG4gICAgICovXG4gICAgaWYgKGlzV2lsbENoYW5nZU1vdGlvblZhbHVlKHdpbGxDaGFuZ2UpKSB7XG4gICAgICAgIHJldHVybiB3aWxsQ2hhbmdlLmFkZChrZXkpO1xuICAgIH1cbiAgICBlbHNlIGlmICghd2lsbENoYW5nZSAmJiBNb3Rpb25HbG9iYWxDb25maWcuV2lsbENoYW5nZSkge1xuICAgICAgICBjb25zdCBuZXdXaWxsQ2hhbmdlID0gbmV3IE1vdGlvbkdsb2JhbENvbmZpZy5XaWxsQ2hhbmdlKFwiYXV0b1wiKTtcbiAgICAgICAgdmlzdWFsRWxlbWVudC5hZGRWYWx1ZShcIndpbGxDaGFuZ2VcIiwgbmV3V2lsbENoYW5nZSk7XG4gICAgICAgIG5ld1dpbGxDaGFuZ2UuYWRkKGtleSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBhZGRWYWx1ZVRvV2lsbENoYW5nZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRkLXdpbGwtY2hhbmdlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/is.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/will-change/is.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isWillChangeMotionValue: () => (/* binding */ isWillChangeMotionValue)\n/* harmony export */ });\n/* harmony import */ var _utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\nfunction isWillChangeMotionValue(value) {\n return Boolean((0,_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) && value.add);\n}\n\n\n//# sourceMappingURL=is.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvd2lsbC1jaGFuZ2UvaXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTZEOztBQUU3RDtBQUNBLG1CQUFtQix5RUFBYTtBQUNoQzs7QUFFbUM7QUFDbkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3dpbGwtY2hhbmdlL2lzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc01vdGlvblZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyc7XG5cbmZ1bmN0aW9uIGlzV2lsbENoYW5nZU1vdGlvblZhbHVlKHZhbHVlKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4oaXNNb3Rpb25WYWx1ZSh2YWx1ZSkgJiYgdmFsdWUuYWRkKTtcbn1cblxuZXhwb3J0IHsgaXNXaWxsQ2hhbmdlTW90aW9uVmFsdWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/is.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs": +/*!*****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/array.mjs ***! + \*****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addUniqueItem: () => (/* binding */ addUniqueItem),\n/* harmony export */ moveItem: () => (/* binding */ moveItem),\n/* harmony export */ removeItem: () => (/* binding */ removeItem)\n/* harmony export */ });\nfunction addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\n\n//# sourceMappingURL=array.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9hcnJheS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRStDO0FBQy9DIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2FycmF5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhZGRVbmlxdWVJdGVtKGFyciwgaXRlbSkge1xuICAgIGlmIChhcnIuaW5kZXhPZihpdGVtKSA9PT0gLTEpXG4gICAgICAgIGFyci5wdXNoKGl0ZW0pO1xufVxuZnVuY3Rpb24gcmVtb3ZlSXRlbShhcnIsIGl0ZW0pIHtcbiAgICBjb25zdCBpbmRleCA9IGFyci5pbmRleE9mKGl0ZW0pO1xuICAgIGlmIChpbmRleCA+IC0xKVxuICAgICAgICBhcnIuc3BsaWNlKGluZGV4LCAxKTtcbn1cbi8vIEFkYXB0ZWQgZnJvbSBhcnJheS1tb3ZlXG5mdW5jdGlvbiBtb3ZlSXRlbShbLi4uYXJyXSwgZnJvbUluZGV4LCB0b0luZGV4KSB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IGZyb21JbmRleCA8IDAgPyBhcnIubGVuZ3RoICsgZnJvbUluZGV4IDogZnJvbUluZGV4O1xuICAgIGlmIChzdGFydEluZGV4ID49IDAgJiYgc3RhcnRJbmRleCA8IGFyci5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZW5kSW5kZXggPSB0b0luZGV4IDwgMCA/IGFyci5sZW5ndGggKyB0b0luZGV4IDogdG9JbmRleDtcbiAgICAgICAgY29uc3QgW2l0ZW1dID0gYXJyLnNwbGljZShmcm9tSW5kZXgsIDEpO1xuICAgICAgICBhcnIuc3BsaWNlKGVuZEluZGV4LCAwLCBpdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbn1cblxuZXhwb3J0IHsgYWRkVW5pcXVlSXRlbSwgbW92ZUl0ZW0sIHJlbW92ZUl0ZW0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFycmF5Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs": +/*!*****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/clamp.mjs ***! + \*****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clamp: () => (/* binding */ clamp)\n/* harmony export */ });\nconst clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\n\n//# sourceMappingURL=clamp.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9jbGFtcC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVpQjtBQUNqQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9jbGFtcC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY2xhbXAgPSAobWluLCBtYXgsIHYpID0+IHtcbiAgICBpZiAodiA+IG1heClcbiAgICAgICAgcmV0dXJuIG1heDtcbiAgICBpZiAodiA8IG1pbilcbiAgICAgICAgcmV0dXJuIG1pbjtcbiAgICByZXR1cm4gdjtcbn07XG5cbmV4cG9ydCB7IGNsYW1wIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jbGFtcC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/anticipate.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ anticipate: () => (/* binding */ anticipate)\n/* harmony export */ });\n/* harmony import */ var _back_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./back.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * (0,_back_mjs__WEBPACK_IMPORTED_MODULE_0__.backIn)(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\n\n//# sourceMappingURL=anticipate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvYW50aWNpcGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBb0M7O0FBRXBDLCtDQUErQyxpREFBTTs7QUFFL0I7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2FudGljaXBhdGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhY2tJbiB9IGZyb20gJy4vYmFjay5tanMnO1xuXG5jb25zdCBhbnRpY2lwYXRlID0gKHApID0+IChwICo9IDIpIDwgMSA/IDAuNSAqIGJhY2tJbihwKSA6IDAuNSAqICgyIC0gTWF0aC5wb3coMiwgLTEwICogKHAgLSAxKSkpO1xuXG5leHBvcnQgeyBhbnRpY2lwYXRlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbnRpY2lwYXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs": +/*!***********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/back.mjs ***! + \***********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ backIn: () => (/* binding */ backIn),\n/* harmony export */ backInOut: () => (/* binding */ backInOut),\n/* harmony export */ backOut: () => (/* binding */ backOut)\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n/* harmony import */ var _modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/mirror.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\");\n/* harmony import */ var _modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/reverse.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\");\n\n\n\n\nconst backOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.33, 1.53, 0.69, 0.99);\nconst backIn = /*@__PURE__*/ (0,_modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_1__.reverseEasing)(backOut);\nconst backInOut = /*@__PURE__*/ (0,_modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_2__.mirrorEasing)(backIn);\n\n\n//# sourceMappingURL=back.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvYmFjay5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWlEO0FBQ0s7QUFDRTs7QUFFeEQsOEJBQThCLDhEQUFXO0FBQ3pDLDZCQUE2QixxRUFBYTtBQUMxQyxnQ0FBZ0MsbUVBQVk7O0FBRU47QUFDdEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2JhY2subWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1YmljQmV6aWVyIH0gZnJvbSAnLi9jdWJpYy1iZXppZXIubWpzJztcbmltcG9ydCB7IG1pcnJvckVhc2luZyB9IGZyb20gJy4vbW9kaWZpZXJzL21pcnJvci5tanMnO1xuaW1wb3J0IHsgcmV2ZXJzZUVhc2luZyB9IGZyb20gJy4vbW9kaWZpZXJzL3JldmVyc2UubWpzJztcblxuY29uc3QgYmFja091dCA9IC8qQF9fUFVSRV9fKi8gY3ViaWNCZXppZXIoMC4zMywgMS41MywgMC42OSwgMC45OSk7XG5jb25zdCBiYWNrSW4gPSAvKkBfX1BVUkVfXyovIHJldmVyc2VFYXNpbmcoYmFja091dCk7XG5jb25zdCBiYWNrSW5PdXQgPSAvKkBfX1BVUkVfXyovIG1pcnJvckVhc2luZyhiYWNrSW4pO1xuXG5leHBvcnQgeyBiYWNrSW4sIGJhY2tJbk91dCwgYmFja091dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YmFjay5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs": +/*!***********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/circ.mjs ***! + \***********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ circIn: () => (/* binding */ circIn),\n/* harmony export */ circInOut: () => (/* binding */ circInOut),\n/* harmony export */ circOut: () => (/* binding */ circOut)\n/* harmony export */ });\n/* harmony import */ var _modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/mirror.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\");\n/* harmony import */ var _modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/reverse.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\");\n\n\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = (0,_modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_0__.reverseEasing)(circIn);\nconst circInOut = (0,_modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_1__.mirrorEasing)(circIn);\n\n\n//# sourceMappingURL=circ.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvY2lyYy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBc0Q7QUFDRTs7QUFFeEQ7QUFDQSxnQkFBZ0IscUVBQWE7QUFDN0Isa0JBQWtCLG1FQUFZOztBQUVRO0FBQ3RDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9jaXJjLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaXJyb3JFYXNpbmcgfSBmcm9tICcuL21vZGlmaWVycy9taXJyb3IubWpzJztcbmltcG9ydCB7IHJldmVyc2VFYXNpbmcgfSBmcm9tICcuL21vZGlmaWVycy9yZXZlcnNlLm1qcyc7XG5cbmNvbnN0IGNpcmNJbiA9IChwKSA9PiAxIC0gTWF0aC5zaW4oTWF0aC5hY29zKHApKTtcbmNvbnN0IGNpcmNPdXQgPSByZXZlcnNlRWFzaW5nKGNpcmNJbik7XG5jb25zdCBjaXJjSW5PdXQgPSBtaXJyb3JFYXNpbmcoY2lyY0luKTtcblxuZXhwb3J0IHsgY2lyY0luLCBjaXJjSW5PdXQsIGNpcmNPdXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNpcmMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cubicBezier: () => (/* binding */ cubicBezier)\n/* harmony export */ });\n/* harmony import */ var _noop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticeably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return _noop_mjs__WEBPACK_IMPORTED_MODULE_0__.noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\n\n//# sourceMappingURL=cubic-bezier.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvY3ViaWMtYmV6aWVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFtQzs7QUFFbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsMkNBQUk7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9jdWJpYy1iZXppZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi9ub29wLm1qcyc7XG5cbi8qXG4gIEJlemllciBmdW5jdGlvbiBnZW5lcmF0b3JcbiAgVGhpcyBoYXMgYmVlbiBtb2RpZmllZCBmcm9tIEdhw6t0YW4gUmVuYXVkZWF1J3MgQmV6aWVyRWFzaW5nXG4gIGh0dHBzOi8vZ2l0aHViLmNvbS9ncmUvYmV6aWVyLWVhc2luZy9ibG9iL21hc3Rlci9zcmMvaW5kZXguanNcbiAgaHR0cHM6Ly9naXRodWIuY29tL2dyZS9iZXppZXItZWFzaW5nL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAgXG4gIEkndmUgcmVtb3ZlZCB0aGUgbmV3dG9uUmFwaHNvbkl0ZXJhdGUgYWxnbyBiZWNhdXNlIGluIGJlbmNobWFya2luZyBpdFxuICB3YXNuJ3Qgbm90aWNlYWJseSBmYXN0ZXIgdGhhbiBiaW5hcnlTdWJkaXZpc2lvbiwgaW5kZWVkIHJlbW92aW5nIGl0XG4gIHVzdWFsbHkgaW1wcm92ZWQgdGltZXMsIGRlcGVuZGluZyBvbiB0aGUgY3VydmUuXG4gIEkgYWxzbyByZW1vdmVkIHRoZSBsb29rdXAgdGFibGUsIGFzIGZvciB0aGUgYWRkZWQgYnVuZGxlIHNpemUgYW5kIGxvb3Agd2UncmVcbiAgb25seSBjdXR0aW5nIH40IG9yIHNvIHN1YmRpdmlzaW9uIGl0ZXJhdGlvbnMuIEkgYnVtcGVkIHRoZSBtYXggaXRlcmF0aW9ucyB1cFxuICB0byAxMiB0byBjb21wZW5zYXRlIGFuZCB0aGlzIHN0aWxsIHRlbmRlZCB0byBiZSBmYXN0ZXIgZm9yIG5vIHBlcmNlaXZhYmxlXG4gIGxvc3MgaW4gYWNjdXJhY3kuXG4gIFVzYWdlXG4gICAgY29uc3QgZWFzZU91dCA9IGN1YmljQmV6aWVyKC4xNywuNjcsLjgzLC42Nyk7XG4gICAgY29uc3QgeCA9IGVhc2VPdXQoMC41KTsgLy8gcmV0dXJucyAwLjYyNy4uLlxuKi9cbi8vIFJldHVybnMgeCh0KSBnaXZlbiB0LCB4MSwgYW5kIHgyLCBvciB5KHQpIGdpdmVuIHQsIHkxLCBhbmQgeTIuXG5jb25zdCBjYWxjQmV6aWVyID0gKHQsIGExLCBhMikgPT4gKCgoMS4wIC0gMy4wICogYTIgKyAzLjAgKiBhMSkgKiB0ICsgKDMuMCAqIGEyIC0gNi4wICogYTEpKSAqIHQgKyAzLjAgKiBhMSkgKlxuICAgIHQ7XG5jb25zdCBzdWJkaXZpc2lvblByZWNpc2lvbiA9IDAuMDAwMDAwMTtcbmNvbnN0IHN1YmRpdmlzaW9uTWF4SXRlcmF0aW9ucyA9IDEyO1xuZnVuY3Rpb24gYmluYXJ5U3ViZGl2aWRlKHgsIGxvd2VyQm91bmQsIHVwcGVyQm91bmQsIG1YMSwgbVgyKSB7XG4gICAgbGV0IGN1cnJlbnRYO1xuICAgIGxldCBjdXJyZW50VDtcbiAgICBsZXQgaSA9IDA7XG4gICAgZG8ge1xuICAgICAgICBjdXJyZW50VCA9IGxvd2VyQm91bmQgKyAodXBwZXJCb3VuZCAtIGxvd2VyQm91bmQpIC8gMi4wO1xuICAgICAgICBjdXJyZW50WCA9IGNhbGNCZXppZXIoY3VycmVudFQsIG1YMSwgbVgyKSAtIHg7XG4gICAgICAgIGlmIChjdXJyZW50WCA+IDAuMCkge1xuICAgICAgICAgICAgdXBwZXJCb3VuZCA9IGN1cnJlbnRUO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbG93ZXJCb3VuZCA9IGN1cnJlbnRUO1xuICAgICAgICB9XG4gICAgfSB3aGlsZSAoTWF0aC5hYnMoY3VycmVudFgpID4gc3ViZGl2aXNpb25QcmVjaXNpb24gJiZcbiAgICAgICAgKytpIDwgc3ViZGl2aXNpb25NYXhJdGVyYXRpb25zKTtcbiAgICByZXR1cm4gY3VycmVudFQ7XG59XG5mdW5jdGlvbiBjdWJpY0JlemllcihtWDEsIG1ZMSwgbVgyLCBtWTIpIHtcbiAgICAvLyBJZiB0aGlzIGlzIGEgbGluZWFyIGdyYWRpZW50LCByZXR1cm4gbGluZWFyIGVhc2luZ1xuICAgIGlmIChtWDEgPT09IG1ZMSAmJiBtWDIgPT09IG1ZMilcbiAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgY29uc3QgZ2V0VEZvclggPSAoYVgpID0+IGJpbmFyeVN1YmRpdmlkZShhWCwgMCwgMSwgbVgxLCBtWDIpO1xuICAgIC8vIElmIGFuaW1hdGlvbiBpcyBhdCBzdGFydC9lbmQsIHJldHVybiB0IHdpdGhvdXQgZWFzaW5nXG4gICAgcmV0dXJuICh0KSA9PiB0ID09PSAwIHx8IHQgPT09IDEgPyB0IDogY2FsY0JlemllcihnZXRURm9yWCh0KSwgbVkxLCBtWTIpO1xufVxuXG5leHBvcnQgeyBjdWJpY0JlemllciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3ViaWMtYmV6aWVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs": +/*!***********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/ease.mjs ***! + \***********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ easeIn: () => (/* binding */ easeIn),\n/* harmony export */ easeInOut: () => (/* binding */ easeInOut),\n/* harmony export */ easeOut: () => (/* binding */ easeOut)\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n\n\nconst easeIn = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.42, 0, 1, 1);\nconst easeOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0, 0, 0.58, 1);\nconst easeInOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.42, 0, 0.58, 1);\n\n\n//# sourceMappingURL=ease.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvZWFzZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFpRDs7QUFFakQsNkJBQTZCLDhEQUFXO0FBQ3hDLDhCQUE4Qiw4REFBVztBQUN6QyxnQ0FBZ0MsOERBQVc7O0FBRUw7QUFDdEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2Vhc2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1YmljQmV6aWVyIH0gZnJvbSAnLi9jdWJpYy1iZXppZXIubWpzJztcblxuY29uc3QgZWFzZUluID0gLypAX19QVVJFX18qLyBjdWJpY0JlemllcigwLjQyLCAwLCAxLCAxKTtcbmNvbnN0IGVhc2VPdXQgPSAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyKDAsIDAsIDAuNTgsIDEpO1xuY29uc3QgZWFzZUluT3V0ID0gLypAX19QVVJFX18qLyBjdWJpY0JlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcblxuZXhwb3J0IHsgZWFzZUluLCBlYXNlSW5PdXQsIGVhc2VPdXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVhc2UubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mirrorEasing: () => (/* binding */ mirrorEasing)\n/* harmony export */ });\n// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\n\n//# sourceMappingURL=mirror.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvbW9kaWZpZXJzL21pcnJvci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL21vZGlmaWVycy9taXJyb3IubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFjY2VwdHMgYW4gZWFzaW5nIGZ1bmN0aW9uIGFuZCByZXR1cm5zIGEgbmV3IG9uZSB0aGF0IG91dHB1dHMgbWlycm9yZWQgdmFsdWVzIGZvclxuLy8gdGhlIHNlY29uZCBoYWxmIG9mIHRoZSBhbmltYXRpb24uIFR1cm5zIGVhc2VJbiBpbnRvIGVhc2VJbk91dC5cbmNvbnN0IG1pcnJvckVhc2luZyA9IChlYXNpbmcpID0+IChwKSA9PiBwIDw9IDAuNSA/IGVhc2luZygyICogcCkgLyAyIDogKDIgLSBlYXNpbmcoMiAqICgxIC0gcCkpKSAvIDI7XG5cbmV4cG9ydCB7IG1pcnJvckVhc2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWlycm9yLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ reverseEasing: () => (/* binding */ reverseEasing)\n/* harmony export */ });\n// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\n\n//# sourceMappingURL=reverse.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvbW9kaWZpZXJzL3JldmVyc2UubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9tb2RpZmllcnMvcmV2ZXJzZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQWNjZXB0cyBhbiBlYXNpbmcgZnVuY3Rpb24gYW5kIHJldHVybnMgYSBuZXcgb25lIHRoYXQgb3V0cHV0cyByZXZlcnNlZCB2YWx1ZXMuXG4vLyBUdXJucyBlYXNlSW4gaW50byBlYXNlT3V0LlxuY29uc3QgcmV2ZXJzZUVhc2luZyA9IChlYXNpbmcpID0+IChwKSA9PiAxIC0gZWFzaW5nKDEgLSBwKTtcblxuZXhwb3J0IHsgcmV2ZXJzZUVhc2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmV2ZXJzZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isBezierDefinition: () => (/* binding */ isBezierDefinition)\n/* harmony export */ });\nconst isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\n\n//# sourceMappingURL=is-bezier-definition.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvaXMtYmV6aWVyLWRlZmluaXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFFOEI7QUFDOUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL3V0aWxzL2lzLWJlemllci1kZWZpbml0aW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc0JlemllckRlZmluaXRpb24gPSAoZWFzaW5nKSA9PiBBcnJheS5pc0FycmF5KGVhc2luZykgJiYgdHlwZW9mIGVhc2luZ1swXSA9PT0gXCJudW1iZXJcIjtcblxuZXhwb3J0IHsgaXNCZXppZXJEZWZpbml0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1iZXppZXItZGVmaW5pdGlvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isEasingArray: () => (/* binding */ isEasingArray)\n/* harmony export */ });\nconst isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\n\n//# sourceMappingURL=is-easing-array.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvaXMtZWFzaW5nLWFycmF5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvaXMtZWFzaW5nLWFycmF5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc0Vhc2luZ0FycmF5ID0gKGVhc2UpID0+IHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShlYXNlKSAmJiB0eXBlb2YgZWFzZVswXSAhPT0gXCJudW1iZXJcIjtcbn07XG5cbmV4cG9ydCB7IGlzRWFzaW5nQXJyYXkgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWVhc2luZy1hcnJheS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs": +/*!****************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/utils/map.mjs ***! + \****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ easingDefinitionToFunction: () => (/* binding */ easingDefinitionToFunction)\n/* harmony export */ });\n/* harmony import */ var _errors_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../errors.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _noop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../noop.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _anticipate_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../anticipate.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\");\n/* harmony import */ var _back_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../back.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n/* harmony import */ var _circ_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../circ.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n/* harmony import */ var _ease_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ease.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs\");\n/* harmony import */ var _is_bezier_definition_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./is-bezier-definition.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\");\n\n\n\n\n\n\n\n\n\nconst easingLookup = {\n linear: _noop_mjs__WEBPACK_IMPORTED_MODULE_0__.noop,\n easeIn: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeIn,\n easeInOut: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeInOut,\n easeOut: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeOut,\n circIn: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circIn,\n circInOut: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circInOut,\n circOut: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circOut,\n backIn: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backIn,\n backInOut: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backInOut,\n backOut: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backOut,\n anticipate: _anticipate_mjs__WEBPACK_IMPORTED_MODULE_4__.anticipate,\n};\nconst isValidEasing = (easing) => {\n return typeof easing === \"string\";\n};\nconst easingDefinitionToFunction = (definition) => {\n if ((0,_is_bezier_definition_mjs__WEBPACK_IMPORTED_MODULE_5__.isBezierDefinition)(definition)) {\n // If cubic bezier definition, create bezier curve\n (0,_errors_mjs__WEBPACK_IMPORTED_MODULE_6__.invariant)(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`, \"cubic-bezier-length\");\n const [x1, y1, x2, y2] = definition;\n return (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_7__.cubicBezier)(x1, y1, x2, y2);\n }\n else if (isValidEasing(definition)) {\n // Else lookup from table\n (0,_errors_mjs__WEBPACK_IMPORTED_MODULE_6__.invariant)(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`, \"invalid-easing-type\");\n return easingLookup[definition];\n }\n return definition;\n};\n\n\n//# sourceMappingURL=map.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvbWFwLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBNkM7QUFDUDtBQUNTO0FBQ1U7QUFDQTtBQUNQO0FBQ087QUFDTzs7QUFFaEU7QUFDQSxZQUFZLDJDQUFJO0FBQ2hCLFVBQVU7QUFDVixhQUFhO0FBQ2IsV0FBVztBQUNYLFVBQVU7QUFDVixhQUFhO0FBQ2IsV0FBVztBQUNYLFVBQVU7QUFDVixhQUFhO0FBQ2IsV0FBVztBQUNYLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw2RUFBa0I7QUFDMUI7QUFDQSxRQUFRLHNEQUFTO0FBQ2pCO0FBQ0EsZUFBZSw4REFBVztBQUMxQjtBQUNBO0FBQ0E7QUFDQSxRQUFRLHNEQUFTLGlFQUFpRSxXQUFXO0FBQzdGO0FBQ0E7QUFDQTtBQUNBOztBQUVzQztBQUN0QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvbWFwLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnZhcmlhbnQgfSBmcm9tICcuLi8uLi9lcnJvcnMubWpzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9ub29wLm1qcyc7XG5pbXBvcnQgeyBhbnRpY2lwYXRlIH0gZnJvbSAnLi4vYW50aWNpcGF0ZS5tanMnO1xuaW1wb3J0IHsgYmFja0luLCBiYWNrSW5PdXQsIGJhY2tPdXQgfSBmcm9tICcuLi9iYWNrLm1qcyc7XG5pbXBvcnQgeyBjaXJjSW4sIGNpcmNJbk91dCwgY2lyY091dCB9IGZyb20gJy4uL2NpcmMubWpzJztcbmltcG9ydCB7IGN1YmljQmV6aWVyIH0gZnJvbSAnLi4vY3ViaWMtYmV6aWVyLm1qcyc7XG5pbXBvcnQgeyBlYXNlSW4sIGVhc2VJbk91dCwgZWFzZU91dCB9IGZyb20gJy4uL2Vhc2UubWpzJztcbmltcG9ydCB7IGlzQmV6aWVyRGVmaW5pdGlvbiB9IGZyb20gJy4vaXMtYmV6aWVyLWRlZmluaXRpb24ubWpzJztcblxuY29uc3QgZWFzaW5nTG9va3VwID0ge1xuICAgIGxpbmVhcjogbm9vcCxcbiAgICBlYXNlSW4sXG4gICAgZWFzZUluT3V0LFxuICAgIGVhc2VPdXQsXG4gICAgY2lyY0luLFxuICAgIGNpcmNJbk91dCxcbiAgICBjaXJjT3V0LFxuICAgIGJhY2tJbixcbiAgICBiYWNrSW5PdXQsXG4gICAgYmFja091dCxcbiAgICBhbnRpY2lwYXRlLFxufTtcbmNvbnN0IGlzVmFsaWRFYXNpbmcgPSAoZWFzaW5nKSA9PiB7XG4gICAgcmV0dXJuIHR5cGVvZiBlYXNpbmcgPT09IFwic3RyaW5nXCI7XG59O1xuY29uc3QgZWFzaW5nRGVmaW5pdGlvblRvRnVuY3Rpb24gPSAoZGVmaW5pdGlvbikgPT4ge1xuICAgIGlmIChpc0JlemllckRlZmluaXRpb24oZGVmaW5pdGlvbikpIHtcbiAgICAgICAgLy8gSWYgY3ViaWMgYmV6aWVyIGRlZmluaXRpb24sIGNyZWF0ZSBiZXppZXIgY3VydmVcbiAgICAgICAgaW52YXJpYW50KGRlZmluaXRpb24ubGVuZ3RoID09PSA0LCBgQ3ViaWMgYmV6aWVyIGFycmF5cyBtdXN0IGNvbnRhaW4gZm91ciBudW1lcmljYWwgdmFsdWVzLmAsIFwiY3ViaWMtYmV6aWVyLWxlbmd0aFwiKTtcbiAgICAgICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9IGRlZmluaXRpb247XG4gICAgICAgIHJldHVybiBjdWJpY0Jlemllcih4MSwgeTEsIHgyLCB5Mik7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzVmFsaWRFYXNpbmcoZGVmaW5pdGlvbikpIHtcbiAgICAgICAgLy8gRWxzZSBsb29rdXAgZnJvbSB0YWJsZVxuICAgICAgICBpbnZhcmlhbnQoZWFzaW5nTG9va3VwW2RlZmluaXRpb25dICE9PSB1bmRlZmluZWQsIGBJbnZhbGlkIGVhc2luZyB0eXBlICcke2RlZmluaXRpb259J2AsIFwiaW52YWxpZC1lYXNpbmctdHlwZVwiKTtcbiAgICAgICAgcmV0dXJuIGVhc2luZ0xvb2t1cFtkZWZpbml0aW9uXTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG59O1xuXG5leHBvcnQgeyBlYXNpbmdEZWZpbml0aW9uVG9GdW5jdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWFwLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs": +/*!******************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/errors.mjs ***! + \******************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ invariant: () => (/* binding */ invariant),\n/* harmony export */ warning: () => (/* binding */ warning)\n/* harmony export */ });\n/* harmony import */ var _format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./format-error-message.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs\");\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n\n\nlet warning = () => { };\nlet invariant = () => { };\nif (typeof process !== \"undefined\" &&\n \"development\" !== \"production\") {\n warning = (check, message, errorCode) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\n }\n };\n invariant = (check, message, errorCode) => {\n if (!check) {\n throw new Error((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\n }\n };\n}\n\n\n//# sourceMappingURL=errors.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lcnJvcnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZ0U7O0FBRWhFO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsSUFBSSxhQUFxQjtBQUN6QjtBQUNBO0FBQ0EseUJBQXlCLDZFQUFrQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0Qiw2RUFBa0I7QUFDOUM7QUFDQTtBQUNBOztBQUU4QjtBQUM5QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lcnJvcnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4vZm9ybWF0LWVycm9yLW1lc3NhZ2UubWpzJztcblxubGV0IHdhcm5pbmcgPSAoKSA9PiB7IH07XG5sZXQgaW52YXJpYW50ID0gKCkgPT4geyB9O1xuaWYgKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgcHJvY2Vzcy5lbnY/Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHdhcm5pbmcgPSAoY2hlY2ssIG1lc3NhZ2UsIGVycm9yQ29kZSkgPT4ge1xuICAgICAgICBpZiAoIWNoZWNrICYmIHR5cGVvZiBjb25zb2xlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oZm9ybWF0RXJyb3JNZXNzYWdlKG1lc3NhZ2UsIGVycm9yQ29kZSkpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBpbnZhcmlhbnQgPSAoY2hlY2ssIG1lc3NhZ2UsIGVycm9yQ29kZSkgPT4ge1xuICAgICAgICBpZiAoIWNoZWNrKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZm9ybWF0RXJyb3JNZXNzYWdlKG1lc3NhZ2UsIGVycm9yQ29kZSkpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuZXhwb3J0IHsgaW52YXJpYW50LCB3YXJuaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvcnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/format-error-message.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatErrorMessage: () => (/* binding */ formatErrorMessage)\n/* harmony export */ });\nfunction formatErrorMessage(message, errorCode) {\n return errorCode\n ? `${message}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${errorCode}`\n : message;\n}\n\n\n//# sourceMappingURL=format-error-message.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9mb3JtYXQtZXJyb3ItbWVzc2FnZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQSxhQUFhLFFBQVEseUZBQXlGLFVBQVU7QUFDeEg7QUFDQTs7QUFFOEI7QUFDOUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZm9ybWF0LWVycm9yLW1lc3NhZ2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGZvcm1hdEVycm9yTWVzc2FnZShtZXNzYWdlLCBlcnJvckNvZGUpIHtcbiAgICByZXR1cm4gZXJyb3JDb2RlXG4gICAgICAgID8gYCR7bWVzc2FnZX0uIEZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBzdGVwcyBmb3Igc29sdmluZywgdmlzaXQgaHR0cHM6Ly9tb3Rpb24uZGV2L3Ryb3VibGVzaG9vdGluZy8ke2Vycm9yQ29kZX1gXG4gICAgICAgIDogbWVzc2FnZTtcbn1cblxuZXhwb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXQtZXJyb3ItbWVzc2FnZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/global-config.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionGlobalConfig: () => (/* binding */ MotionGlobalConfig)\n/* harmony export */ });\nconst MotionGlobalConfig = {};\n\n\n//# sourceMappingURL=global-config.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9nbG9iYWwtY29uZmlnLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRThCO0FBQzlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2dsb2JhbC1jb25maWcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE1vdGlvbkdsb2JhbENvbmZpZyA9IHt9O1xuXG5leHBvcnQgeyBNb3Rpb25HbG9iYWxDb25maWcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdsb2JhbC1jb25maWcubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/is-numerical-string.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNumericalString: () => (/* binding */ isNumericalString)\n/* harmony export */ });\n/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\n\n\n//# sourceMappingURL=is-numerical-string.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy1udW1lcmljYWwtc3RyaW5nLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRTZCO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2lzLW51bWVyaWNhbC1zdHJpbmcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hlY2sgaWYgdmFsdWUgaXMgYSBudW1lcmljYWwgc3RyaW5nLCBpZSBhIHN0cmluZyB0aGF0IGlzIHB1cmVseSBhIG51bWJlciBlZyBcIjEwMFwiIG9yIFwiLTEwMC4xXCJcbiAqL1xuY29uc3QgaXNOdW1lcmljYWxTdHJpbmcgPSAodikgPT4gL14tPyg/OlxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKykkL3UudGVzdCh2KTtcblxuZXhwb3J0IHsgaXNOdW1lcmljYWxTdHJpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLW51bWVyaWNhbC1zdHJpbmcubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/is-object.mjs ***! + \*********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isObject: () => (/* binding */ isObject)\n/* harmony export */ });\nfunction isObject(value) {\n return typeof value === \"object\" && value !== null;\n}\n\n\n//# sourceMappingURL=is-object.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy1vYmplY3QubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2lzLW9iamVjdC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsO1xufVxuXG5leHBvcnQgeyBpc09iamVjdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtb2JqZWN0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/is-zero-value-string.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isZeroValueString: () => (/* binding */ isZeroValueString)\n/* harmony export */ });\n/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\n\n\n//# sourceMappingURL=is-zero-value-string.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy16ZXJvLXZhbHVlLXN0cmluZy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy16ZXJvLXZhbHVlLXN0cmluZy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSB6ZXJvIHZhbHVlIHN0cmluZyBsaWtlIFwiMHB4XCIgb3IgXCIwJVwiXG4gKi9cbmNvbnN0IGlzWmVyb1ZhbHVlU3RyaW5nID0gKHYpID0+IC9eMFteLlxcc10rJC91LnRlc3Qodik7XG5cbmV4cG9ydCB7IGlzWmVyb1ZhbHVlU3RyaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy16ZXJvLXZhbHVlLXN0cmluZy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs": +/*!****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/memo.mjs ***! + \****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ memo: () => (/* binding */ memo)\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\nfunction memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\n\n//# sourceMappingURL=memo.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9tZW1vLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVnQjtBQUNoQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9tZW1vLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiNfX05PX1NJREVfRUZGRUNUU19fKi9cbmZ1bmN0aW9uIG1lbW8oY2FsbGJhY2spIHtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJlc3VsdCA9IGNhbGxiYWNrKCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbn1cblxuZXhwb3J0IHsgbWVtbyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWVtby5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs": +/*!****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/noop.mjs ***! + \****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ noop: () => (/* binding */ noop)\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\nconst noop = (any) => any;\n\n\n//# sourceMappingURL=noop.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9ub29wLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTs7QUFFZ0I7QUFDaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvbm9vcC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyojX19OT19TSURFX0VGRkVDVFNfXyovXG5jb25zdCBub29wID0gKGFueSkgPT4gYW55O1xuXG5leHBvcnQgeyBub29wIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub29wLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs": +/*!****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/pipe.mjs ***! + \****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ pipe: () => (/* binding */ pipe)\n/* harmony export */ });\n/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\n\n//# sourceMappingURL=pipe.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9waXBlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGNBQWM7QUFDMUIsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFZ0I7QUFDaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvcGlwZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQaXBlXG4gKiBDb21wb3NlIG90aGVyIHRyYW5zZm9ybWVycyB0byBydW4gbGluZWFyaWx5XG4gKiBwaXBlKG1pbigyMCksIG1heCg0MCkpXG4gKiBAcGFyYW0gIHsuLi5mdW5jdGlvbnN9IHRyYW5zZm9ybWVyc1xuICogQHJldHVybiB7ZnVuY3Rpb259XG4gKi9cbmNvbnN0IGNvbWJpbmVGdW5jdGlvbnMgPSAoYSwgYikgPT4gKHYpID0+IGIoYSh2KSk7XG5jb25zdCBwaXBlID0gKC4uLnRyYW5zZm9ybWVycykgPT4gdHJhbnNmb3JtZXJzLnJlZHVjZShjb21iaW5lRnVuY3Rpb25zKTtcblxuZXhwb3J0IHsgcGlwZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGlwZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs": +/*!********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/progress.mjs ***! + \********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ progress: () => (/* binding */ progress)\n/* harmony export */ });\n/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\n/*#__NO_SIDE_EFFECTS__*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\n\n//# sourceMappingURL=progress.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9wcm9ncmVzcy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVvQjtBQUNwQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9wcm9ncmVzcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgUHJvZ3Jlc3Mgd2l0aGluIGdpdmVuIHJhbmdlXG5cbiAgR2l2ZW4gYSBsb3dlciBsaW1pdCBhbmQgYW4gdXBwZXIgbGltaXQsIHdlIHJldHVybiB0aGUgcHJvZ3Jlc3NcbiAgKGV4cHJlc3NlZCBhcyBhIG51bWJlciAwLTEpIHJlcHJlc2VudGVkIGJ5IHRoZSBnaXZlbiB2YWx1ZSwgYW5kXG4gIGxpbWl0IHRoYXQgcHJvZ3Jlc3MgdG8gd2l0aGluIDAtMS5cblxuICBAcGFyYW0gW251bWJlcl06IExvd2VyIGxpbWl0XG4gIEBwYXJhbSBbbnVtYmVyXTogVXBwZXIgbGltaXRcbiAgQHBhcmFtIFtudW1iZXJdOiBWYWx1ZSB0byBmaW5kIHByb2dyZXNzIHdpdGhpbiBnaXZlbiByYW5nZVxuICBAcmV0dXJuIFtudW1iZXJdOiBQcm9ncmVzcyBvZiB2YWx1ZSB3aXRoaW4gcmFuZ2UgYXMgZXhwcmVzc2VkIDAtMVxuKi9cbi8qI19fTk9fU0lERV9FRkZFQ1RTX18qL1xuY29uc3QgcHJvZ3Jlc3MgPSAoZnJvbSwgdG8sIHZhbHVlKSA9PiB7XG4gICAgY29uc3QgdG9Gcm9tRGlmZmVyZW5jZSA9IHRvIC0gZnJvbTtcbiAgICByZXR1cm4gdG9Gcm9tRGlmZmVyZW5jZSA9PT0gMCA/IDEgOiAodmFsdWUgLSBmcm9tKSAvIHRvRnJvbURpZmZlcmVuY2U7XG59O1xuXG5leHBvcnQgeyBwcm9ncmVzcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJvZ3Jlc3MubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/subscription-manager.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SubscriptionManager: () => (/* binding */ SubscriptionManager)\n/* harmony export */ });\n/* harmony import */ var _array_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\");\n\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n (0,_array_mjs__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.subscriptions, handler);\n return () => (0,_array_mjs__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\n\n//# sourceMappingURL=subscription-manager.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9zdWJzY3JpcHRpb24tbWFuYWdlci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0Q7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHlEQUFhO0FBQ3JCLHFCQUFxQixzREFBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsc0JBQXNCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUrQjtBQUMvQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9zdWJzY3JpcHRpb24tbWFuYWdlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkVW5pcXVlSXRlbSwgcmVtb3ZlSXRlbSB9IGZyb20gJy4vYXJyYXkubWpzJztcblxuY2xhc3MgU3Vic2NyaXB0aW9uTWFuYWdlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIH1cbiAgICBhZGQoaGFuZGxlcikge1xuICAgICAgICBhZGRVbmlxdWVJdGVtKHRoaXMuc3Vic2NyaXB0aW9ucywgaGFuZGxlcik7XG4gICAgICAgIHJldHVybiAoKSA9PiByZW1vdmVJdGVtKHRoaXMuc3Vic2NyaXB0aW9ucywgaGFuZGxlcik7XG4gICAgfVxuICAgIG5vdGlmeShhLCBiLCBjKSB7XG4gICAgICAgIGNvbnN0IG51bVN1YnNjcmlwdGlvbnMgPSB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoO1xuICAgICAgICBpZiAoIW51bVN1YnNjcmlwdGlvbnMpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChudW1TdWJzY3JpcHRpb25zID09PSAxKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoZXJlJ3Mgb25seSBhIHNpbmdsZSBoYW5kbGVyIHdlIGNhbiBqdXN0IGNhbGwgaXQgd2l0aG91dCBpbnZva2luZyBhIGxvb3AuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1swXShhLCBiLCBjKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtU3Vic2NyaXB0aW9uczsgaSsrKSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQ2hlY2sgd2hldGhlciB0aGUgaGFuZGxlciBleGlzdHMgYmVmb3JlIGZpcmluZyBhcyBpdCdzIHBvc3NpYmxlXG4gICAgICAgICAgICAgICAgICogdGhlIHN1YnNjcmlwdGlvbnMgd2VyZSBtb2RpZmllZCBkdXJpbmcgdGhpcyBsb29wIHJ1bm5pbmcuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuc3Vic2NyaXB0aW9uc1tpXTtcbiAgICAgICAgICAgICAgICBoYW5kbGVyICYmIGhhbmRsZXIoYSwgYiwgYyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0U2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGg7XG4gICAgfVxuICAgIGNsZWFyKCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoID0gMDtcbiAgICB9XG59XG5cbmV4cG9ydCB7IFN1YnNjcmlwdGlvbk1hbmFnZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN1YnNjcmlwdGlvbi1tYW5hZ2VyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/time-conversion.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ millisecondsToSeconds: () => (/* binding */ millisecondsToSeconds),\n/* harmony export */ secondsToMilliseconds: () => (/* binding */ secondsToMilliseconds)\n/* harmony export */ });\n/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\n/*#__NO_SIDE_EFFECTS__*/\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\n/*#__NO_SIDE_EFFECTS__*/\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\n\n//# sourceMappingURL=time-conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy90aW1lLWNvbnZlcnNpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXdEO0FBQ3hEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL3RpbWUtY29udmVyc2lvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb252ZXJ0cyBzZWNvbmRzIHRvIG1pbGxpc2Vjb25kc1xuICpcbiAqIEBwYXJhbSBzZWNvbmRzIC0gVGltZSBpbiBzZWNvbmRzLlxuICogQHJldHVybiBtaWxsaXNlY29uZHMgLSBDb252ZXJ0ZWQgdGltZSBpbiBtaWxsaXNlY29uZHMuXG4gKi9cbi8qI19fTk9fU0lERV9FRkZFQ1RTX18qL1xuY29uc3Qgc2Vjb25kc1RvTWlsbGlzZWNvbmRzID0gKHNlY29uZHMpID0+IHNlY29uZHMgKiAxMDAwO1xuLyojX19OT19TSURFX0VGRkVDVFNfXyovXG5jb25zdCBtaWxsaXNlY29uZHNUb1NlY29uZHMgPSAobWlsbGlzZWNvbmRzKSA9PiBtaWxsaXNlY29uZHMgLyAxMDAwO1xuXG5leHBvcnQgeyBtaWxsaXNlY29uZHNUb1NlY29uZHMsIHNlY29uZHNUb01pbGxpc2Vjb25kcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGltZS1jb252ZXJzaW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/velocity-per-second.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ velocityPerSecond: () => (/* binding */ velocityPerSecond)\n/* harmony export */ });\n/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\n\n//# sourceMappingURL=velocity-per-second.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy92ZWxvY2l0eS1wZXItc2Vjb25kLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTZCO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL3ZlbG9jaXR5LXBlci1zZWNvbmQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gIENvbnZlcnQgdmVsb2NpdHkgaW50byB2ZWxvY2l0eSBwZXIgc2Vjb25kXG5cbiAgQHBhcmFtIFtudW1iZXJdOiBVbml0IHBlciBmcmFtZVxuICBAcGFyYW0gW251bWJlcl06IEZyYW1lIGR1cmF0aW9uIGluIG1zXG4qL1xuZnVuY3Rpb24gdmVsb2NpdHlQZXJTZWNvbmQodmVsb2NpdHksIGZyYW1lRHVyYXRpb24pIHtcbiAgICByZXR1cm4gZnJhbWVEdXJhdGlvbiA/IHZlbG9jaXR5ICogKDEwMDAgLyBmcmFtZUR1cmF0aW9uKSA6IDA7XG59XG5cbmV4cG9ydCB7IHZlbG9jaXR5UGVyU2Vjb25kIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD12ZWxvY2l0eS1wZXItc2Vjb25kLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/warn-once.mjs ***! + \*********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasWarned: () => (/* binding */ hasWarned),\n/* harmony export */ warnOnce: () => (/* binding */ warnOnce)\n/* harmony export */ });\n/* harmony import */ var _format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./format-error-message.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs\");\n\n\nconst warned = new Set();\nfunction hasWarned(message) {\n return warned.has(message);\n}\nfunction warnOnce(condition, message, errorCode) {\n if (condition || warned.has(message))\n return;\n console.warn((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\n warned.add(message);\n}\n\n\n//# sourceMappingURL=warn-once.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy93YXJuLW9uY2UubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFnRTs7QUFFaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsNkVBQWtCO0FBQ25DO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL3dhcm4tb25jZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi9mb3JtYXQtZXJyb3ItbWVzc2FnZS5tanMnO1xuXG5jb25zdCB3YXJuZWQgPSBuZXcgU2V0KCk7XG5mdW5jdGlvbiBoYXNXYXJuZWQobWVzc2FnZSkge1xuICAgIHJldHVybiB3YXJuZWQuaGFzKG1lc3NhZ2UpO1xufVxuZnVuY3Rpb24gd2Fybk9uY2UoY29uZGl0aW9uLCBtZXNzYWdlLCBlcnJvckNvZGUpIHtcbiAgICBpZiAoY29uZGl0aW9uIHx8IHdhcm5lZC5oYXMobWVzc2FnZSkpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zb2xlLndhcm4oZm9ybWF0RXJyb3JNZXNzYWdlKG1lc3NhZ2UsIGVycm9yQ29kZSkpO1xuICAgIHdhcm5lZC5hZGQobWVzc2FnZSk7XG59XG5cbmV4cG9ydCB7IGhhc1dhcm5lZCwgd2Fybk9uY2UgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXdhcm4tb25jZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\n")); + +/***/ }) + +}, +/******/ __webpack_require__ => { // webpackRuntimeModules +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +/******/ __webpack_require__.O(0, ["main-app"], () => (__webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"))); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/fallback/main.js b/.next/static/chunks/fallback/main.js index b5c64111..6c021e77 100644 --- a/.next/static/chunks/fallback/main.js +++ b/.next/static/chunks/fallback/main.js @@ -949,7 +949,7 @@ eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ /***/ ((module, exports, __webpack_require__) => { "use strict"; -eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return PageLoader;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"./node_modules/next/dist/client/add-base-path.js\");\nconst _interpolateas = __webpack_require__(/*! ../shared/lib/router/utils/interpolate-as */ \"./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nconst _getassetpathfromroute = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"./node_modules/next/dist/client/add-locale.js\");\nconst _isdynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\nconst _parserelativeurl = __webpack_require__(/*! ../shared/lib/router/utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\nconst _removetrailingslash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _routeloader = __webpack_require__(/*! ./route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"./node_modules/next/dist/shared/lib/constants.js\");\nclass PageLoader {\n getPageList() {\n if (false) {} else {\n if (window.__DEV_PAGES_MANIFEST) {\n return window.__DEV_PAGES_MANIFEST.pages;\n } else {\n this.promisedDevPagesManifest || (this.promisedDevPagesManifest = fetch(this.assetPrefix + \"/_next/static/development/\" + _constants.DEV_CLIENT_PAGES_MANIFEST, {\n credentials: 'same-origin'\n }).then((res)=>res.json()).then((manifest)=>{\n window.__DEV_PAGES_MANIFEST = manifest;\n return manifest.pages;\n }).catch((err)=>{\n console.log(\"Failed to fetch devPagesManifest:\", err);\n throw new Error(\"Failed to fetch _devPagesManifest.json. Is something blocking that network request?\\n\" + 'Read more: https://nextjs.org/docs/messages/failed-to-fetch-devpagesmanifest');\n }));\n return this.promisedDevPagesManifest;\n }\n }\n }\n getMiddleware() {\n // Webpack production\n if (false) {} else if (false) {} else {\n if (window.__DEV_MIDDLEWARE_MATCHERS) {\n return window.__DEV_MIDDLEWARE_MATCHERS;\n } else {\n if (!this.promisedMiddlewareMatchers) {\n // TODO: Decide what should happen when fetching fails instead of asserting\n // @ts-ignore\n this.promisedMiddlewareMatchers = fetch(this.assetPrefix + \"/_next/static/\" + this.buildId + \"/\" + _constants.DEV_CLIENT_MIDDLEWARE_MANIFEST, {\n credentials: 'same-origin'\n }).then((res)=>res.json()).then((matchers)=>{\n window.__DEV_MIDDLEWARE_MATCHERS = matchers;\n return matchers;\n }).catch((err)=>{\n console.log(\"Failed to fetch _devMiddlewareManifest\", err);\n });\n }\n // TODO Remove this assertion as this could be undefined\n return this.promisedMiddlewareMatchers;\n }\n }\n }\n getDataHref(params) {\n const { asPath, href, locale } = params;\n const { pathname: hrefPathname, query, search } = (0, _parserelativeurl.parseRelativeUrl)(href);\n const { pathname: asPathname } = (0, _parserelativeurl.parseRelativeUrl)(asPath);\n const route = (0, _removetrailingslash.removeTrailingSlash)(hrefPathname);\n if (route[0] !== '/') {\n throw new Error('Route name should start with a \"/\", got \"' + route + '\"');\n }\n const getHrefForSlug = (path)=>{\n const dataRoute = (0, _getassetpathfromroute.default)((0, _removetrailingslash.removeTrailingSlash)((0, _addlocale.addLocale)(path, locale)), '.json');\n return (0, _addbasepath.addBasePath)(\"/_next/data/\" + this.buildId + dataRoute + search, true);\n };\n return getHrefForSlug(params.skipInterpolation ? asPathname : (0, _isdynamic.isDynamicRoute)(route) ? (0, _interpolateas.interpolateAs)(hrefPathname, asPathname, query).result : route);\n }\n _isSsg(/** the route (file-system path) */ route) {\n return this.promisedSsgManifest.then((manifest)=>manifest.has(route));\n }\n loadPage(route) {\n return this.routeLoader.loadRoute(route).then((res)=>{\n if ('component' in res) {\n return {\n page: res.component,\n mod: res.exports,\n styleSheets: res.styles.map((o)=>({\n href: o.href,\n text: o.content\n }))\n };\n }\n throw res.error;\n });\n }\n prefetch(route) {\n return this.routeLoader.prefetch(route);\n }\n constructor(buildId, assetPrefix){\n this.routeLoader = (0, _routeloader.createRouteLoader)(assetPrefix);\n this.buildId = buildId;\n this.assetPrefix = assetPrefix;\n this.promisedSsgManifest = new Promise((resolve)=>{\n if (window.__SSG_MANIFEST) {\n resolve(window.__SSG_MANIFEST);\n } else {\n window.__SSG_MANIFEST_CB = ()=>{\n resolve(window.__SSG_MANIFEST);\n };\n }\n });\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=page-loader.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wYWdlLWxvYWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O2VBaUNxQkE7Ozs7eUNBOUJPOzJDQUNFOzRGQUNJO3VDQUNSO3VDQUNLOzhDQUNFO2lEQUNHO3lDQUNzQjt1Q0FLbkQ7QUFrQlEsTUFBTUE7SUEwQm5CQyxjQUFjO1FBQ1osSUFsRHNELEtBa0Q5QixFQUFtQixFQUUxQyxNQUFNO1lBQ0wsSUFBSVEsT0FBT0Msb0JBQW9CLEVBQUU7Z0JBQy9CLE9BQU9ELE9BQU9DLG9CQUFvQixDQUFDQyxLQUFLO1lBQzFDLE9BQU87Z0JBQ0wsSUFBSSxDQUFDQyx3QkFBQUEsS0FBTCxJQUFJLENBQUNBLHdCQUFBQSxHQUE2QkMsTUFDN0IsSUFBSSxDQUFDQyxXQUFXLEdBQUMsK0JBQTRCQyxXQUFBQSx5QkFBeUIsRUFDekU7b0JBQUVDLGFBQWE7Z0JBQWMsR0FFNUJWLElBQUksQ0FBQyxDQUFDVyxNQUFRQSxJQUFJQyxJQUFJLElBQ3RCWixJQUFJLENBQUMsQ0FBQ0M7b0JBQ0xFLE9BQU9DLG9CQUFvQixHQUFHSDtvQkFDOUIsT0FBT0EsU0FBU0ksS0FBSztnQkFDdkIsR0FDQ1EsS0FBSyxDQUFDLENBQUNDO29CQUNOQyxRQUFRQyxHQUFHLENBQUUscUNBQW9DRjtvQkFDakQsTUFBTSxJQUFJRyxNQUNQLDBGQUNDO2dCQUVOO2dCQUNGLE9BQU8sSUFBSSxDQUFDWCx3QkFBd0I7WUFDdEM7UUFDRjtJQUNGO0lBRUFZLGdCQUFnQjtRQUNkLHFCQUFxQjtRQUNyQixJQUNFdEIsS0FDc0MsRUFDdEMsRUFPRCxNQUFNLElBQUlBLEtBQW9CLEVBQW1CLEVBd0JqRCxNQUFNO1lBQ0wsSUFBSU8sT0FBT3dCLHlCQUF5QixFQUFFO2dCQUNwQyxPQUFPeEIsT0FBT3dCLHlCQUF5QjtZQUN6QyxPQUFPO2dCQUNMLElBQUksQ0FBQyxJQUFJLENBQUNKLDBCQUEwQixFQUFFO29CQUNwQywyRUFBMkU7b0JBQzNFLGFBQWE7b0JBQ2IsSUFBSSxDQUFDQSwwQkFBMEIsR0FBR2hCLE1BQzdCLElBQUksQ0FBQ0MsV0FBVyxHQUFDLG1CQUFnQixJQUFJLENBQUNnQixPQUFPLEdBQUMsTUFBR0ksV0FBQUEsOEJBQThCLEVBQ2xGO3dCQUFFbEIsYUFBYTtvQkFBYyxHQUU1QlYsSUFBSSxDQUFDLENBQUNXLE1BQVFBLElBQUlDLElBQUksSUFDdEJaLElBQUksQ0FBQyxDQUFDMEI7d0JBQ0x2QixPQUFPd0IseUJBQXlCLEdBQUdEO3dCQUNuQyxPQUFPQTtvQkFDVCxHQUNDYixLQUFLLENBQUMsQ0FBQ0M7d0JBQ05DLFFBQVFDLEdBQUcsQ0FBRSwwQ0FBeUNGO29CQUN4RDtnQkFDSjtnQkFDQSx3REFBd0Q7Z0JBQ3hELE9BQU8sSUFBSSxDQUFDUywwQkFBMEI7WUFDeEM7UUFDRjtJQUNGO0lBRUFNLFlBQVlDLE1BS1gsRUFBVTtRQUNULE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLE1BQU0sRUFBRSxHQUFHSDtRQUNqQyxNQUFNLEVBQUVJLFVBQVVDLFlBQVksRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQk47UUFDbkUsTUFBTSxFQUFFRSxVQUFVSyxVQUFVLEVBQUUsR0FBR0QsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQlA7UUFDbEQsTUFBTVMsUUFBUUMsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQk47UUFDbEMsSUFBSUssS0FBSyxDQUFDLEVBQUUsS0FBSyxLQUFLO1lBQ3BCLE1BQU0sSUFBSXZCLE1BQU8sOENBQTJDdUIsUUFBTTtRQUNwRTtRQUVBLE1BQU1FLGlCQUFpQixDQUFDQztZQUN0QixNQUFNQyxZQUFZQyxDQUFBQSxHQUFBQSx1QkFBQUEsT0FBQUEsRUFDaEJKLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JLLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVILE1BQU1WLFVBQ3BDO1lBRUYsT0FBT2MsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBVyxFQUNmLGlCQUFjLElBQUksQ0FBQ3ZCLE9BQU8sR0FBR29CLFlBQVlQLFFBQzFDO1FBRUo7UUFFQSxPQUFPSyxlQUNMWixPQUFPa0IsaUJBQWlCLEdBQ3BCVCxhQUNBVSxDQUFBQSxHQUFBQSxXQUFBQSxjQUFBQSxFQUFlVCxTQUNiVSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjZixjQUFjSSxZQUFZSCxPQUFPZSxNQUFNLEdBQ3JEWDtJQUVWO0lBRUFZLE9BQ0UsaUNBQWlDLEdBQ2pDWixLQUFhLEVBQ0s7UUFDbEIsT0FBTyxJQUFJLENBQUNhLG1CQUFtQixDQUFDckQsSUFBSSxDQUFDLENBQUNDLFdBQWFBLFNBQVNxRCxHQUFHLENBQUNkO0lBQ2xFO0lBRUFlLFNBQVNmLEtBQWEsRUFBMEI7UUFDOUMsT0FBTyxJQUFJLENBQUNnQixXQUFXLENBQUNDLFNBQVMsQ0FBQ2pCLE9BQU94QyxJQUFJLENBQUMsQ0FBQ1c7WUFDN0MsSUFBSSxlQUFlQSxLQUFLO2dCQUN0QixPQUFPO29CQUNMK0MsTUFBTS9DLElBQUlnRCxTQUFTO29CQUNuQkMsS0FBS2pELElBQUlrRCxPQUFPO29CQUNoQkMsYUFBYW5ELElBQUlvRCxNQUFNLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxJQUFPOzRCQUNsQ2pDLE1BQU1pQyxFQUFFakMsSUFBSTs0QkFDWmtDLE1BQU1ELEVBQUVFLE9BQU87eUJBQ2pCO2dCQUNGO1lBQ0Y7WUFDQSxNQUFNeEQsSUFBSXlELEtBQUs7UUFDakI7SUFDRjtJQUVBQyxTQUFTN0IsS0FBYSxFQUFpQjtRQUNyQyxPQUFPLElBQUksQ0FBQ2dCLFdBQVcsQ0FBQ2EsUUFBUSxDQUFDN0I7SUFDbkM7SUF0S0E4QixZQUFZOUMsT0FBZSxFQUFFaEIsV0FBbUIsQ0FBRTtRQUNoRCxJQUFJLENBQUNnRCxXQUFXLEdBQUdlLENBQUFBLEdBQUFBLGFBQUFBLGlCQUFBQSxFQUFrQi9EO1FBRXJDLElBQUksQ0FBQ2dCLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNoQixXQUFXLEdBQUdBO1FBRW5CLElBQUksQ0FBQzZDLG1CQUFtQixHQUFHLElBQUltQixRQUFRLENBQUNDO1lBQ3RDLElBQUl0RSxPQUFPdUUsY0FBYyxFQUFFO2dCQUN6QkQsUUFBUXRFLE9BQU91RSxjQUFjO1lBQy9CLE9BQU87Z0JBQ0x2RSxPQUFPd0UsaUJBQWlCLEdBQUc7b0JBQ3pCRixRQUFRdEUsT0FBT3VFLGNBQWM7Z0JBQy9CO1lBQ0Y7UUFDRjtJQUNGO0FBd0pGIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvY2xpZW50L3BhZ2UtbG9hZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBSb3V0ZUxvYWRlciB9IGZyb20gJy4vcm91dGUtbG9hZGVyJ1xuaW1wb3J0IHR5cGUgeyBNaWRkbGV3YXJlTWF0Y2hlciB9IGZyb20gJy4uL2J1aWxkL2FuYWx5c2lzL2dldC1wYWdlLXN0YXRpYy1pbmZvJ1xuaW1wb3J0IHsgYWRkQmFzZVBhdGggfSBmcm9tICcuL2FkZC1iYXNlLXBhdGgnXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZUFzIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMnXG5pbXBvcnQgZ2V0QXNzZXRQYXRoRnJvbVJvdXRlIGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGUnXG5pbXBvcnQgeyBhZGRMb2NhbGUgfSBmcm9tICcuL2FkZC1sb2NhbGUnXG5pbXBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMnXG5pbXBvcnQgeyBwYXJzZVJlbGF0aXZlVXJsIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsJ1xuaW1wb3J0IHsgcmVtb3ZlVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaCdcbmltcG9ydCB7IGNyZWF0ZVJvdXRlTG9hZGVyLCBnZXRDbGllbnRCdWlsZE1hbmlmZXN0IH0gZnJvbSAnLi9yb3V0ZS1sb2FkZXInXG5pbXBvcnQge1xuICBERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNULFxuICBERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QsXG4gIFRVUkJPUEFDS19DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCxcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi9jb25zdGFudHMnXG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgX19ERVZfTUlERExFV0FSRV9NQVRDSEVSUz86IE1pZGRsZXdhcmVNYXRjaGVyW11cbiAgICBfX0RFVl9QQUdFU19NQU5JRkVTVD86IHsgcGFnZXM6IHN0cmluZ1tdIH1cbiAgICBfX1NTR19NQU5JRkVTVF9DQj86ICgpID0+IHZvaWRcbiAgICBfX1NTR19NQU5JRkVTVD86IFNldDxzdHJpbmc+XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgU3R5bGVTaGVldFR1cGxlID0geyBocmVmOiBzdHJpbmc7IHRleHQ6IHN0cmluZyB9XG5leHBvcnQgdHlwZSBHb29kUGFnZUNhY2hlID0ge1xuICBwYWdlOiBDb21wb25lbnRUeXBlXG4gIG1vZDogYW55XG4gIHN0eWxlU2hlZXRzOiBTdHlsZVNoZWV0VHVwbGVbXVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYWdlTG9hZGVyIHtcbiAgcHJpdmF0ZSBidWlsZElkOiBzdHJpbmdcbiAgcHJpdmF0ZSBhc3NldFByZWZpeDogc3RyaW5nXG4gIHByaXZhdGUgcHJvbWlzZWRTc2dNYW5pZmVzdDogUHJvbWlzZTxTZXQ8c3RyaW5nPj5cbiAgcHJpdmF0ZSBwcm9taXNlZERldlBhZ2VzTWFuaWZlc3Q/OiBQcm9taXNlPHN0cmluZ1tdPlxuICBwcml2YXRlIHByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzPzogUHJvbWlzZTxNaWRkbGV3YXJlTWF0Y2hlcltdPlxuXG4gIHB1YmxpYyByb3V0ZUxvYWRlcjogUm91dGVMb2FkZXJcblxuICBjb25zdHJ1Y3RvcihidWlsZElkOiBzdHJpbmcsIGFzc2V0UHJlZml4OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJvdXRlTG9hZGVyID0gY3JlYXRlUm91dGVMb2FkZXIoYXNzZXRQcmVmaXgpXG5cbiAgICB0aGlzLmJ1aWxkSWQgPSBidWlsZElkXG4gICAgdGhpcy5hc3NldFByZWZpeCA9IGFzc2V0UHJlZml4XG5cbiAgICB0aGlzLnByb21pc2VkU3NnTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKHdpbmRvdy5fX1NTR19NQU5JRkVTVCkge1xuICAgICAgICByZXNvbHZlKHdpbmRvdy5fX1NTR19NQU5JRkVTVClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5fX1NTR19NQU5JRkVTVF9DQiA9ICgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHdpbmRvdy5fX1NTR19NQU5JRkVTVCEpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ2V0UGFnZUxpc3QoKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHJldHVybiBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkudGhlbigobWFuaWZlc3QpID0+IG1hbmlmZXN0LnNvcnRlZFBhZ2VzKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAod2luZG93Ll9fREVWX1BBR0VTX01BTklGRVNUKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuX19ERVZfUEFHRVNfTUFOSUZFU1QucGFnZXNcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJvbWlzZWREZXZQYWdlc01hbmlmZXN0IHx8PSBmZXRjaChcbiAgICAgICAgICBgJHt0aGlzLmFzc2V0UHJlZml4fS9fbmV4dC9zdGF0aWMvZGV2ZWxvcG1lbnQvJHtERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUfWAsXG4gICAgICAgICAgeyBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyB9XG4gICAgICAgIClcbiAgICAgICAgICAudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuICAgICAgICAgIC50aGVuKChtYW5pZmVzdDogeyBwYWdlczogc3RyaW5nW10gfSkgPT4ge1xuICAgICAgICAgICAgd2luZG93Ll9fREVWX1BBR0VTX01BTklGRVNUID0gbWFuaWZlc3RcbiAgICAgICAgICAgIHJldHVybiBtYW5pZmVzdC5wYWdlc1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gZmV0Y2ggZGV2UGFnZXNNYW5pZmVzdDpgLCBlcnIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBGYWlsZWQgdG8gZmV0Y2ggX2RldlBhZ2VzTWFuaWZlc3QuanNvbi4gSXMgc29tZXRoaW5nIGJsb2NraW5nIHRoYXQgbmV0d29yayByZXF1ZXN0P1xcbmAgK1xuICAgICAgICAgICAgICAgICdSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ZhaWxlZC10by1mZXRjaC1kZXZwYWdlc21hbmlmZXN0J1xuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pXG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VkRGV2UGFnZXNNYW5pZmVzdFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldE1pZGRsZXdhcmUoKSB7XG4gICAgLy8gV2VicGFjayBwcm9kdWN0aW9uXG4gICAgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX01JRERMRVdBUkVfTUFUQ0hFUlNcbiAgICApIHtcbiAgICAgIGNvbnN0IG1pZGRsZXdhcmVNYXRjaGVycyA9IHByb2Nlc3MuZW52Ll9fTkVYVF9NSURETEVXQVJFX01BVENIRVJTXG4gICAgICB3aW5kb3cuX19NSURETEVXQVJFX01BVENIRVJTID0gbWlkZGxld2FyZU1hdGNoZXJzXG4gICAgICAgID8gKG1pZGRsZXdhcmVNYXRjaGVycyBhcyBhbnkgYXMgTWlkZGxld2FyZU1hdGNoZXJbXSlcbiAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIHJldHVybiB3aW5kb3cuX19NSURETEVXQVJFX01BVENIRVJTXG4gICAgICAvLyBUdXJib3BhY2sgcHJvZHVjdGlvblxuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHdpbmRvdy5fX01JRERMRVdBUkVfTUFUQ0hFUlMpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5fX01JRERMRVdBUkVfTUFUQ0hFUlNcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghdGhpcy5wcm9taXNlZE1pZGRsZXdhcmVNYXRjaGVycykge1xuICAgICAgICAgIC8vIFRPRE86IERlY2lkZSB3aGF0IHNob3VsZCBoYXBwZW4gd2hlbiBmZXRjaGluZyBmYWlscyBpbnN0ZWFkIG9mIGFzc2VydGluZ1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICB0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzID0gZmV0Y2goXG4gICAgICAgICAgICBgJHt0aGlzLmFzc2V0UHJlZml4fS9fbmV4dC9zdGF0aWMvJHt0aGlzLmJ1aWxkSWR9LyR7VFVSQk9QQUNLX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUfWAsXG4gICAgICAgICAgICB7IGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nIH1cbiAgICAgICAgICApXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuICAgICAgICAgICAgLnRoZW4oKG1hdGNoZXJzOiBNaWRkbGV3YXJlTWF0Y2hlcltdKSA9PiB7XG4gICAgICAgICAgICAgIHdpbmRvdy5fX01JRERMRVdBUkVfTUFUQ0hFUlMgPSBtYXRjaGVyc1xuICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlcnNcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGZldGNoIF9kZXZNaWRkbGV3YXJlTWFuaWZlc3RgLCBlcnIpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIC8vIFRPRE8gUmVtb3ZlIHRoaXMgYXNzZXJ0aW9uIGFzIHRoaXMgY291bGQgYmUgdW5kZWZpbmVkXG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzIVxuICAgICAgfVxuICAgICAgLy8gRGV2ZWxvcG1lbnQgYm90aCBUdXJib3BhY2sgYW5kIFdlYnBhY2tcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHdpbmRvdy5fX0RFVl9NSURETEVXQVJFX01BVENIRVJTKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuX19ERVZfTUlERExFV0FSRV9NQVRDSEVSU1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzKSB7XG4gICAgICAgICAgLy8gVE9ETzogRGVjaWRlIHdoYXQgc2hvdWxkIGhhcHBlbiB3aGVuIGZldGNoaW5nIGZhaWxzIGluc3RlYWQgb2YgYXNzZXJ0aW5nXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnMgPSBmZXRjaChcbiAgICAgICAgICAgIGAke3RoaXMuYXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy8ke3RoaXMuYnVpbGRJZH0vJHtERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1R9YCxcbiAgICAgICAgICAgIHsgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicgfVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG4gICAgICAgICAgICAudGhlbigobWF0Y2hlcnM6IE1pZGRsZXdhcmVNYXRjaGVyW10pID0+IHtcbiAgICAgICAgICAgICAgd2luZG93Ll9fREVWX01JRERMRVdBUkVfTUFUQ0hFUlMgPSBtYXRjaGVyc1xuICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlcnNcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGZldGNoIF9kZXZNaWRkbGV3YXJlTWFuaWZlc3RgLCBlcnIpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIC8vIFRPRE8gUmVtb3ZlIHRoaXMgYXNzZXJ0aW9uIGFzIHRoaXMgY291bGQgYmUgdW5kZWZpbmVkXG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzIVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldERhdGFIcmVmKHBhcmFtczoge1xuICAgIGFzUGF0aDogc3RyaW5nXG4gICAgaHJlZjogc3RyaW5nXG4gICAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2VcbiAgICBza2lwSW50ZXJwb2xhdGlvbj86IGJvb2xlYW5cbiAgfSk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBhc1BhdGgsIGhyZWYsIGxvY2FsZSB9ID0gcGFyYW1zXG4gICAgY29uc3QgeyBwYXRobmFtZTogaHJlZlBhdGhuYW1lLCBxdWVyeSwgc2VhcmNoIH0gPSBwYXJzZVJlbGF0aXZlVXJsKGhyZWYpXG4gICAgY29uc3QgeyBwYXRobmFtZTogYXNQYXRobmFtZSB9ID0gcGFyc2VSZWxhdGl2ZVVybChhc1BhdGgpXG4gICAgY29uc3Qgcm91dGUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKGhyZWZQYXRobmFtZSlcbiAgICBpZiAocm91dGVbMF0gIT09ICcvJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSb3V0ZSBuYW1lIHNob3VsZCBzdGFydCB3aXRoIGEgXCIvXCIsIGdvdCBcIiR7cm91dGV9XCJgKVxuICAgIH1cblxuICAgIGNvbnN0IGdldEhyZWZGb3JTbHVnID0gKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZGF0YVJvdXRlID0gZ2V0QXNzZXRQYXRoRnJvbVJvdXRlKFxuICAgICAgICByZW1vdmVUcmFpbGluZ1NsYXNoKGFkZExvY2FsZShwYXRoLCBsb2NhbGUpKSxcbiAgICAgICAgJy5qc29uJ1xuICAgICAgKVxuICAgICAgcmV0dXJuIGFkZEJhc2VQYXRoKFxuICAgICAgICBgL19uZXh0L2RhdGEvJHt0aGlzLmJ1aWxkSWR9JHtkYXRhUm91dGV9JHtzZWFyY2h9YCxcbiAgICAgICAgdHJ1ZVxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBnZXRIcmVmRm9yU2x1ZyhcbiAgICAgIHBhcmFtcy5za2lwSW50ZXJwb2xhdGlvblxuICAgICAgICA/IGFzUGF0aG5hbWVcbiAgICAgICAgOiBpc0R5bmFtaWNSb3V0ZShyb3V0ZSlcbiAgICAgICAgICA/IGludGVycG9sYXRlQXMoaHJlZlBhdGhuYW1lLCBhc1BhdGhuYW1lLCBxdWVyeSkucmVzdWx0XG4gICAgICAgICAgOiByb3V0ZVxuICAgIClcbiAgfVxuXG4gIF9pc1NzZyhcbiAgICAvKiogdGhlIHJvdXRlIChmaWxlLXN5c3RlbSBwYXRoKSAqL1xuICAgIHJvdXRlOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvbWlzZWRTc2dNYW5pZmVzdC50aGVuKChtYW5pZmVzdCkgPT4gbWFuaWZlc3QuaGFzKHJvdXRlKSlcbiAgfVxuXG4gIGxvYWRQYWdlKHJvdXRlOiBzdHJpbmcpOiBQcm9taXNlPEdvb2RQYWdlQ2FjaGU+IHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZUxvYWRlci5sb2FkUm91dGUocm91dGUpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgaWYgKCdjb21wb25lbnQnIGluIHJlcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBhZ2U6IHJlcy5jb21wb25lbnQsXG4gICAgICAgICAgbW9kOiByZXMuZXhwb3J0cyxcbiAgICAgICAgICBzdHlsZVNoZWV0czogcmVzLnN0eWxlcy5tYXAoKG8pID0+ICh7XG4gICAgICAgICAgICBocmVmOiBvLmhyZWYsXG4gICAgICAgICAgICB0ZXh0OiBvLmNvbnRlbnQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyByZXMuZXJyb3JcbiAgICB9KVxuICB9XG5cbiAgcHJlZmV0Y2gocm91dGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlTG9hZGVyLnByZWZldGNoKHJvdXRlKVxuICB9XG59XG4iXSwibmFtZXMiOlsiUGFnZUxvYWRlciIsImdldFBhZ2VMaXN0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCIsInRoZW4iLCJtYW5pZmVzdCIsInNvcnRlZFBhZ2VzIiwid2luZG93IiwiX19ERVZfUEFHRVNfTUFOSUZFU1QiLCJwYWdlcyIsInByb21pc2VkRGV2UGFnZXNNYW5pZmVzdCIsImZldGNoIiwiYXNzZXRQcmVmaXgiLCJERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUIiwiY3JlZGVudGlhbHMiLCJyZXMiLCJqc29uIiwiY2F0Y2giLCJlcnIiLCJjb25zb2xlIiwibG9nIiwiRXJyb3IiLCJnZXRNaWRkbGV3YXJlIiwiX19ORVhUX01JRERMRVdBUkVfTUFUQ0hFUlMiLCJtaWRkbGV3YXJlTWF0Y2hlcnMiLCJfX01JRERMRVdBUkVfTUFUQ0hFUlMiLCJ1bmRlZmluZWQiLCJwcm9taXNlZE1pZGRsZXdhcmVNYXRjaGVycyIsImJ1aWxkSWQiLCJUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QiLCJtYXRjaGVycyIsIl9fREVWX01JRERMRVdBUkVfTUFUQ0hFUlMiLCJERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QiLCJnZXREYXRhSHJlZiIsInBhcmFtcyIsImFzUGF0aCIsImhyZWYiLCJsb2NhbGUiLCJwYXRobmFtZSIsImhyZWZQYXRobmFtZSIsInF1ZXJ5Iiwic2VhcmNoIiwicGFyc2VSZWxhdGl2ZVVybCIsImFzUGF0aG5hbWUiLCJyb3V0ZSIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJnZXRIcmVmRm9yU2x1ZyIsInBhdGgiLCJkYXRhUm91dGUiLCJnZXRBc3NldFBhdGhGcm9tUm91dGUiLCJhZGRMb2NhbGUiLCJhZGRCYXNlUGF0aCIsInNraXBJbnRlcnBvbGF0aW9uIiwiaXNEeW5hbWljUm91dGUiLCJpbnRlcnBvbGF0ZUFzIiwicmVzdWx0IiwiX2lzU3NnIiwicHJvbWlzZWRTc2dNYW5pZmVzdCIsImhhcyIsImxvYWRQYWdlIiwicm91dGVMb2FkZXIiLCJsb2FkUm91dGUiLCJwYWdlIiwiY29tcG9uZW50IiwibW9kIiwiZXhwb3J0cyIsInN0eWxlU2hlZXRzIiwic3R5bGVzIiwibWFwIiwibyIsInRleHQiLCJjb250ZW50IiwiZXJyb3IiLCJwcmVmZXRjaCIsImNvbnN0cnVjdG9yIiwiY3JlYXRlUm91dGVMb2FkZXIiLCJQcm9taXNlIiwicmVzb2x2ZSIsIl9fU1NHX01BTklGRVNUIiwiX19TU0dfTUFOSUZFU1RfQ0IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/page-loader.js\n")); +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return PageLoader;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"./node_modules/next/dist/client/add-base-path.js\");\nconst _interpolateas = __webpack_require__(/*! ../shared/lib/router/utils/interpolate-as */ \"./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nconst _getassetpathfromroute = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"./node_modules/next/dist/client/add-locale.js\");\nconst _isdynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\nconst _parserelativeurl = __webpack_require__(/*! ../shared/lib/router/utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\nconst _removetrailingslash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _routeloader = __webpack_require__(/*! ./route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"./node_modules/next/dist/shared/lib/constants.js\");\nclass PageLoader {\n getPageList() {\n if (false) {} else {\n if (window.__DEV_PAGES_MANIFEST) {\n return window.__DEV_PAGES_MANIFEST.pages;\n } else {\n this.promisedDevPagesManifest || (this.promisedDevPagesManifest = fetch(this.assetPrefix + \"/_next/static/development/\" + _constants.DEV_CLIENT_PAGES_MANIFEST, {\n credentials: 'same-origin'\n }).then((res)=>res.json()).then((manifest)=>{\n window.__DEV_PAGES_MANIFEST = manifest;\n return manifest.pages;\n }).catch((err)=>{\n console.log(\"Failed to fetch devPagesManifest:\", err);\n throw new Error(\"Failed to fetch _devPagesManifest.json. Is something blocking that network request?\\n\" + 'Read more: https://nextjs.org/docs/messages/failed-to-fetch-devpagesmanifest');\n }));\n return this.promisedDevPagesManifest;\n }\n }\n }\n getMiddleware() {\n // Webpack production\n if (false) {} else if (false) {} else {\n if (window.__DEV_MIDDLEWARE_MATCHERS) {\n return window.__DEV_MIDDLEWARE_MATCHERS;\n } else {\n if (!this.promisedMiddlewareMatchers) {\n // TODO: Decide what should happen when fetching fails instead of asserting\n // @ts-ignore\n this.promisedMiddlewareMatchers = fetch(this.assetPrefix + \"/_next/static/\" + this.buildId + \"/\" + _constants.DEV_CLIENT_MIDDLEWARE_MANIFEST, {\n credentials: 'same-origin'\n }).then((res)=>res.json()).then((matchers)=>{\n window.__DEV_MIDDLEWARE_MATCHERS = matchers;\n return matchers;\n }).catch((err)=>{\n console.log(\"Failed to fetch _devMiddlewareManifest\", err);\n });\n }\n // TODO Remove this assertion as this could be undefined\n return this.promisedMiddlewareMatchers;\n }\n }\n }\n getDataHref(params) {\n const { asPath, href, locale } = params;\n const { pathname: hrefPathname, query, search } = (0, _parserelativeurl.parseRelativeUrl)(href);\n const { pathname: asPathname } = (0, _parserelativeurl.parseRelativeUrl)(asPath);\n const route = (0, _removetrailingslash.removeTrailingSlash)(hrefPathname);\n if (route[0] !== '/') {\n throw new Error('Route name should start with a \"/\", got \"' + route + '\"');\n }\n const getHrefForSlug = (path)=>{\n const dataRoute = (0, _getassetpathfromroute.default)((0, _removetrailingslash.removeTrailingSlash)((0, _addlocale.addLocale)(path, locale)), '.json');\n return (0, _addbasepath.addBasePath)(\"/_next/data/\" + this.buildId + dataRoute + search, true);\n };\n return getHrefForSlug(params.skipInterpolation ? asPathname : (0, _isdynamic.isDynamicRoute)(route) ? (0, _interpolateas.interpolateAs)(hrefPathname, asPathname, query).result : route);\n }\n _isSsg(/** the route (file-system path) */ route) {\n return this.promisedSsgManifest.then((manifest)=>manifest.has(route));\n }\n loadPage(route) {\n return this.routeLoader.loadRoute(route).then((res)=>{\n if ('component' in res) {\n return {\n page: res.component,\n mod: res.exports,\n styleSheets: res.styles.map((o)=>({\n href: o.href,\n text: o.content\n }))\n };\n }\n throw res.error;\n });\n }\n prefetch(route) {\n return this.routeLoader.prefetch(route);\n }\n constructor(buildId, assetPrefix){\n this.routeLoader = (0, _routeloader.createRouteLoader)(assetPrefix);\n this.buildId = buildId;\n this.assetPrefix = assetPrefix;\n this.promisedSsgManifest = new Promise((resolve)=>{\n if (window.__SSG_MANIFEST) {\n resolve(window.__SSG_MANIFEST);\n } else {\n window.__SSG_MANIFEST_CB = ()=>{\n resolve(window.__SSG_MANIFEST);\n };\n }\n });\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=page-loader.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wYWdlLWxvYWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O2VBaUNxQkE7Ozs7eUNBOUJPOzJDQUNFOzRGQUNJO3VDQUNSO3VDQUNLOzhDQUNFO2lEQUNHO3lDQUNzQjt1Q0FLbkQ7QUFrQlEsTUFBTUE7SUEwQm5CQyxjQUFjO1FBQ1osSUFJa0JTLEtBSk0sRUFBbUIsRUFFMUMsTUFBTTtZQUNMLElBQUlELE9BQU9DLG9CQUFvQixFQUFFO2dCQUMvQixPQUFPRCwyQkFBMkIsQ0FBQ0UsS0FBSztZQUMxQyxPQUFPO2dCQUNMLElBQUksQ0FBQ0Msd0JBQUFBLElBQUwsS0FBSSxDQUFDQSx3QkFBQUEsR0FBNkJDLE1BQzdCLElBQUksQ0FBQ0MsV0FBVyxHQUFDLCtCQUE0QkMsV0FBQUEseUJBQXlCLEVBQ3pFO29CQUFFQyxhQUFhO2dCQUFjLEdBRTVCVixJQUFJLENBQUMsQ0FBQ1csTUFBUUEsSUFBSUMsSUFBSSxJQUN0QlosSUFBSSxDQUFDLENBQUNDO29CQUNMRSxPQUFPQyxvQkFBb0IsR0FBR0g7b0JBQzlCLE9BQU9BLFNBQVNJLEtBQUs7Z0JBQ3ZCLEdBQ0NRLEtBQUssQ0FBQyxDQUFDQztvQkFDTkMsUUFBUUMsR0FBRyxDQUFFLHFDQUFvQ0Y7b0JBQ2pELE1BQU0sSUFBSUcsTUFDUCwwRkFDQztnQkFFTjtnQkFDRixPQUFPLElBQUksQ0FBQ1gsd0JBQXdCO1lBQ3RDO1FBQ0Y7SUFDRjtJQUVBWSxnQkFBZ0I7UUFDZCxxQkFBcUI7UUFDckIsSUFDRXRCLEtBQ3NDLEVBQ3RDLEVBT0QsTUFBTSxJQUFJQSxLQUFvQixFQUFtQixFQXdCakQsTUFBTTtZQUNMLElBQUlPLE9BQU93Qix5QkFBeUIsRUFBRTtnQkFDcEMsT0FBT3hCLE9BQU93Qix5QkFBeUI7WUFDekMsT0FBTztnQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDSiwwQkFBMEIsRUFBRTtvQkFDcEMsMkVBQTJFO29CQUMzRSxhQUFhO29CQUNiLElBQUksQ0FBQ0EsMEJBQTBCLEdBQUdoQixNQUM3QixJQUFJLENBQUNDLFdBQVcsR0FBQyxtQkFBZ0IsSUFBSSxDQUFDZ0IsT0FBTyxHQUFDLE1BQUdJLFdBQUFBLDhCQUE4QixFQUNsRjt3QkFBRWxCLGFBQWE7b0JBQWMsR0FFNUJWLElBQUksQ0FBQyxDQUFDVyxNQUFRQSxJQUFJQyxJQUFJLElBQ3RCWixJQUFJLENBQUMsQ0FBQzBCO3dCQUNMdkIsT0FBT3dCLHlCQUF5QixHQUFHRDt3QkFDbkMsT0FBT0E7b0JBQ1QsR0FDQ2IsS0FBSyxDQUFDLENBQUNDO3dCQUNOQyxRQUFRQyxHQUFHLENBQUUsMENBQXlDRjtvQkFDeEQ7Z0JBQ0o7Z0JBQ0Esd0RBQXdEO2dCQUN4RCxPQUFPLElBQUksQ0FBQ1MsMEJBQTBCO1lBQ3hDO1FBQ0Y7SUFDRjtJQUVBTSxZQUFZQyxNQUtYLEVBQVU7UUFDVCxNQUFNLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxNQUFNLEVBQUUsR0FBR0g7UUFDakMsTUFBTSxFQUFFSSxVQUFVQyxZQUFZLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLGtCQUFBQSxnQkFBQUEsRUFBaUJOO1FBQ25FLE1BQU0sRUFBRUUsVUFBVUssVUFBVSxFQUFFLEdBQUdELENBQUFBLEdBQUFBLGtCQUFBQSxnQkFBQUEsRUFBaUJQO1FBQ2xELE1BQU1TLFFBQVFDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JOO1FBQ2xDLElBQUlLLEtBQUssQ0FBQyxFQUFFLEtBQUssS0FBSztZQUNwQixNQUFNLElBQUl2QixNQUFPLDhDQUEyQ3VCLFFBQU07UUFDcEU7UUFFQSxNQUFNRSxpQkFBaUIsQ0FBQ0M7WUFDdEIsTUFBTUMsWUFBWUMsQ0FBQUEsR0FBQUEsdUJBQUFBLE9BQUFBLEVBQ2hCSixDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CSyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVSCxNQUFNVixVQUNwQztZQUVGLE9BQU9jLENBQUFBLEdBQUFBLGFBQUFBLFdBQUFBLEVBQ0osaUJBQWMsSUFBSSxDQUFDdkIsT0FBTyxHQUFHb0IsWUFBWVAsUUFDMUM7UUFFSjtRQUVBLE9BQU9LLGVBQ0xaLE9BQU9rQixpQkFBaUIsR0FDcEJULGFBQ0FVLENBQUFBLEdBQUFBLFdBQUFBLGNBQUFBLEVBQWVULFNBQ2JVLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNmLGNBQWNJLFlBQVlILE9BQU9lLE1BQU0sR0FDckRYO0lBRVY7SUFFQVksT0FDRSxpQ0FBaUMsR0FDakNaLEtBQWEsRUFDSztRQUNsQixPQUFPLElBQUksQ0FBQ2EsbUJBQW1CLENBQUNyRCxJQUFJLENBQUMsQ0FBQ0MsV0FBYUEsU0FBU3FELEdBQUcsQ0FBQ2Q7SUFDbEU7SUFFQWUsU0FBU2YsS0FBYSxFQUEwQjtRQUM5QyxPQUFPLElBQUksQ0FBQ2dCLFdBQVcsQ0FBQ0MsU0FBUyxDQUFDakIsT0FBT3hDLElBQUksQ0FBQyxDQUFDVztZQUM3QyxJQUFJLGVBQWVBLEtBQUs7Z0JBQ3RCLE9BQU87b0JBQ0wrQyxNQUFNL0MsSUFBSWdELFNBQVM7b0JBQ25CQyxLQUFLakQsSUFBSWtELE9BQU87b0JBQ2hCQyxhQUFhbkQsSUFBSW9ELE1BQU0sQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLElBQU87NEJBQ2xDakMsTUFBTWlDLEVBQUVqQyxJQUFJOzRCQUNaa0MsTUFBTUQsRUFBRUUsT0FBTzt5QkFDakI7Z0JBQ0Y7WUFDRjtZQUNBLE1BQU14RCxJQUFJeUQsS0FBSztRQUNqQjtJQUNGO0lBRUFDLFNBQVM3QixLQUFhLEVBQWlCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDZ0IsV0FBVyxDQUFDYSxRQUFRLENBQUM3QjtJQUNuQztJQXRLQThCLFlBQVk5QyxPQUFlLEVBQUVoQixXQUFtQixDQUFFO1FBQ2hELElBQUksQ0FBQ2dELFdBQVcsR0FBR2UsQ0FBQUEsR0FBQUEsYUFBQUEsaUJBQUFBLEVBQWtCL0Q7UUFFckMsSUFBSSxDQUFDZ0IsT0FBTyxHQUFHQTtRQUNmLElBQUksQ0FBQ2hCLFdBQVcsR0FBR0E7UUFFbkIsSUFBSSxDQUFDNkMsbUJBQW1CLEdBQUcsSUFBSW1CLFFBQVEsQ0FBQ0M7WUFDdEMsSUFBSXRFLE9BQU91RSxjQUFjLEVBQUU7Z0JBQ3pCRCxRQUFRdEUsT0FBT3VFLGNBQWM7WUFDL0IsT0FBTztnQkFDTHZFLE9BQU93RSxpQkFBaUIsR0FBRztvQkFDekJGLFFBQVF0RSxPQUFPdUUsY0FBYztnQkFDL0I7WUFDRjtRQUNGO0lBQ0Y7QUF3SkYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9jbGllbnQvcGFnZS1sb2FkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFJvdXRlTG9hZGVyIH0gZnJvbSAnLi9yb3V0ZS1sb2FkZXInXG5pbXBvcnQgdHlwZSB7IE1pZGRsZXdhcmVNYXRjaGVyIH0gZnJvbSAnLi4vYnVpbGQvYW5hbHlzaXMvZ2V0LXBhZ2Utc3RhdGljLWluZm8nXG5pbXBvcnQgeyBhZGRCYXNlUGF0aCB9IGZyb20gJy4vYWRkLWJhc2UtcGF0aCdcbmltcG9ydCB7IGludGVycG9sYXRlQXMgfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pbnRlcnBvbGF0ZS1hcydcbmltcG9ydCBnZXRBc3NldFBhdGhGcm9tUm91dGUgZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZSdcbmltcG9ydCB7IGFkZExvY2FsZSB9IGZyb20gJy4vYWRkLWxvY2FsZSdcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYydcbmltcG9ydCB7IHBhcnNlUmVsYXRpdmVVcmwgfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9wYXJzZS1yZWxhdGl2ZS11cmwnXG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHsgY3JlYXRlUm91dGVMb2FkZXIsIGdldENsaWVudEJ1aWxkTWFuaWZlc3QgfSBmcm9tICcuL3JvdXRlLWxvYWRlcidcbmltcG9ydCB7XG4gIERFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QsXG4gIERFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCxcbiAgVFVSQk9QQUNLX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNULFxufSBmcm9tICcuLi9zaGFyZWQvbGliL2NvbnN0YW50cydcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBfX0RFVl9NSURETEVXQVJFX01BVENIRVJTPzogTWlkZGxld2FyZU1hdGNoZXJbXVxuICAgIF9fREVWX1BBR0VTX01BTklGRVNUPzogeyBwYWdlczogc3RyaW5nW10gfVxuICAgIF9fU1NHX01BTklGRVNUX0NCPzogKCkgPT4gdm9pZFxuICAgIF9fU1NHX01BTklGRVNUPzogU2V0PHN0cmluZz5cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBTdHlsZVNoZWV0VHVwbGUgPSB7IGhyZWY6IHN0cmluZzsgdGV4dDogc3RyaW5nIH1cbmV4cG9ydCB0eXBlIEdvb2RQYWdlQ2FjaGUgPSB7XG4gIHBhZ2U6IENvbXBvbmVudFR5cGVcbiAgbW9kOiBhbnlcbiAgc3R5bGVTaGVldHM6IFN0eWxlU2hlZXRUdXBsZVtdXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhZ2VMb2FkZXIge1xuICBwcml2YXRlIGJ1aWxkSWQ6IHN0cmluZ1xuICBwcml2YXRlIGFzc2V0UHJlZml4OiBzdHJpbmdcbiAgcHJpdmF0ZSBwcm9taXNlZFNzZ01hbmlmZXN0OiBQcm9taXNlPFNldDxzdHJpbmc+PlxuICBwcml2YXRlIHByb21pc2VkRGV2UGFnZXNNYW5pZmVzdD86IFByb21pc2U8c3RyaW5nW10+XG4gIHByaXZhdGUgcHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnM/OiBQcm9taXNlPE1pZGRsZXdhcmVNYXRjaGVyW10+XG5cbiAgcHVibGljIHJvdXRlTG9hZGVyOiBSb3V0ZUxvYWRlclxuXG4gIGNvbnN0cnVjdG9yKGJ1aWxkSWQ6IHN0cmluZywgYXNzZXRQcmVmaXg6IHN0cmluZykge1xuICAgIHRoaXMucm91dGVMb2FkZXIgPSBjcmVhdGVSb3V0ZUxvYWRlcihhc3NldFByZWZpeClcblxuICAgIHRoaXMuYnVpbGRJZCA9IGJ1aWxkSWRcbiAgICB0aGlzLmFzc2V0UHJlZml4ID0gYXNzZXRQcmVmaXhcblxuICAgIHRoaXMucHJvbWlzZWRTc2dNYW5pZmVzdCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICBpZiAod2luZG93Ll9fU1NHX01BTklGRVNUKSB7XG4gICAgICAgIHJlc29sdmUod2luZG93Ll9fU1NHX01BTklGRVNUKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2luZG93Ll9fU1NHX01BTklGRVNUX0NCID0gKCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUod2luZG93Ll9fU1NHX01BTklGRVNUISlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBnZXRQYWdlTGlzdCgpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgcmV0dXJuIGdldENsaWVudEJ1aWxkTWFuaWZlc3QoKS50aGVuKChtYW5pZmVzdCkgPT4gbWFuaWZlc3Quc29ydGVkUGFnZXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh3aW5kb3cuX19ERVZfUEFHRVNfTUFOSUZFU1QpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5fX0RFVl9QQUdFU19NQU5JRkVTVC5wYWdlc1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wcm9taXNlZERldlBhZ2VzTWFuaWZlc3QgfHw9IGZldGNoKFxuICAgICAgICAgIGAke3RoaXMuYXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy9kZXZlbG9wbWVudC8ke0RFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1R9YCxcbiAgICAgICAgICB7IGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nIH1cbiAgICAgICAgKVxuICAgICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG4gICAgICAgICAgLnRoZW4oKG1hbmlmZXN0OiB7IHBhZ2VzOiBzdHJpbmdbXSB9KSA9PiB7XG4gICAgICAgICAgICB3aW5kb3cuX19ERVZfUEFHRVNfTUFOSUZFU1QgPSBtYW5pZmVzdFxuICAgICAgICAgICAgcmV0dXJuIG1hbmlmZXN0LnBhZ2VzXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBmZXRjaCBkZXZQYWdlc01hbmlmZXN0OmAsIGVycilcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYEZhaWxlZCB0byBmZXRjaCBfZGV2UGFnZXNNYW5pZmVzdC5qc29uLiBJcyBzb21ldGhpbmcgYmxvY2tpbmcgdGhhdCBuZXR3b3JrIHJlcXVlc3Q/XFxuYCArXG4gICAgICAgICAgICAgICAgJ1JlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZmFpbGVkLXRvLWZldGNoLWRldnBhZ2VzbWFuaWZlc3QnXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSlcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZWREZXZQYWdlc01hbmlmZXN0XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0TWlkZGxld2FyZSgpIHtcbiAgICAvLyBXZWJwYWNrIHByb2R1Y3Rpb25cbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICBwcm9jZXNzLmVudi5fX05FWFRfTUlERExFV0FSRV9NQVRDSEVSU1xuICAgICkge1xuICAgICAgY29uc3QgbWlkZGxld2FyZU1hdGNoZXJzID0gcHJvY2Vzcy5lbnYuX19ORVhUX01JRERMRVdBUkVfTUFUQ0hFUlNcbiAgICAgIHdpbmRvdy5fX01JRERMRVdBUkVfTUFUQ0hFUlMgPSBtaWRkbGV3YXJlTWF0Y2hlcnNcbiAgICAgICAgPyAobWlkZGxld2FyZU1hdGNoZXJzIGFzIGFueSBhcyBNaWRkbGV3YXJlTWF0Y2hlcltdKVxuICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgcmV0dXJuIHdpbmRvdy5fX01JRERMRVdBUkVfTUFUQ0hFUlNcbiAgICAgIC8vIFR1cmJvcGFjayBwcm9kdWN0aW9uXG4gICAgfSBlbHNlIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBpZiAod2luZG93Ll9fTUlERExFV0FSRV9NQVRDSEVSUykge1xuICAgICAgICByZXR1cm4gd2luZG93Ll9fTUlERExFV0FSRV9NQVRDSEVSU1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzKSB7XG4gICAgICAgICAgLy8gVE9ETzogRGVjaWRlIHdoYXQgc2hvdWxkIGhhcHBlbiB3aGVuIGZldGNoaW5nIGZhaWxzIGluc3RlYWQgb2YgYXNzZXJ0aW5nXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnMgPSBmZXRjaChcbiAgICAgICAgICAgIGAke3RoaXMuYXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy8ke3RoaXMuYnVpbGRJZH0vJHtUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1R9YCxcbiAgICAgICAgICAgIHsgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicgfVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG4gICAgICAgICAgICAudGhlbigobWF0Y2hlcnM6IE1pZGRsZXdhcmVNYXRjaGVyW10pID0+IHtcbiAgICAgICAgICAgICAgd2luZG93Ll9fTUlERExFV0FSRV9NQVRDSEVSUyA9IG1hdGNoZXJzXG4gICAgICAgICAgICAgIHJldHVybiBtYXRjaGVyc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gZmV0Y2ggX2Rldk1pZGRsZXdhcmVNYW5pZmVzdGAsIGVycilcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgLy8gVE9ETyBSZW1vdmUgdGhpcyBhc3NlcnRpb24gYXMgdGhpcyBjb3VsZCBiZSB1bmRlZmluZWRcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnMhXG4gICAgICB9XG4gICAgICAvLyBEZXZlbG9wbWVudCBib3RoIFR1cmJvcGFjayBhbmQgV2VicGFja1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAod2luZG93Ll9fREVWX01JRERMRVdBUkVfTUFUQ0hFUlMpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5fX0RFVl9NSURETEVXQVJFX01BVENIRVJTXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIXRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnMpIHtcbiAgICAgICAgICAvLyBUT0RPOiBEZWNpZGUgd2hhdCBzaG91bGQgaGFwcGVuIHdoZW4gZmV0Y2hpbmcgZmFpbHMgaW5zdGVhZCBvZiBhc3NlcnRpbmdcbiAgICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgICAgdGhpcy5wcm9taXNlZE1pZGRsZXdhcmVNYXRjaGVycyA9IGZldGNoKFxuICAgICAgICAgICAgYCR7dGhpcy5hc3NldFByZWZpeH0vX25leHQvc3RhdGljLyR7dGhpcy5idWlsZElkfS8ke0RFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVH1gLFxuICAgICAgICAgICAgeyBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyB9XG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcbiAgICAgICAgICAgIC50aGVuKChtYXRjaGVyczogTWlkZGxld2FyZU1hdGNoZXJbXSkgPT4ge1xuICAgICAgICAgICAgICB3aW5kb3cuX19ERVZfTUlERExFV0FSRV9NQVRDSEVSUyA9IG1hdGNoZXJzXG4gICAgICAgICAgICAgIHJldHVybiBtYXRjaGVyc1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gZmV0Y2ggX2Rldk1pZGRsZXdhcmVNYW5pZmVzdGAsIGVycilcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgLy8gVE9ETyBSZW1vdmUgdGhpcyBhc3NlcnRpb24gYXMgdGhpcyBjb3VsZCBiZSB1bmRlZmluZWRcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnMhXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0RGF0YUhyZWYocGFyYW1zOiB7XG4gICAgYXNQYXRoOiBzdHJpbmdcbiAgICBocmVmOiBzdHJpbmdcbiAgICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZVxuICAgIHNraXBJbnRlcnBvbGF0aW9uPzogYm9vbGVhblxuICB9KTogc3RyaW5nIHtcbiAgICBjb25zdCB7IGFzUGF0aCwgaHJlZiwgbG9jYWxlIH0gPSBwYXJhbXNcbiAgICBjb25zdCB7IHBhdGhuYW1lOiBocmVmUGF0aG5hbWUsIHF1ZXJ5LCBzZWFyY2ggfSA9IHBhcnNlUmVsYXRpdmVVcmwoaHJlZilcbiAgICBjb25zdCB7IHBhdGhuYW1lOiBhc1BhdGhuYW1lIH0gPSBwYXJzZVJlbGF0aXZlVXJsKGFzUGF0aClcbiAgICBjb25zdCByb3V0ZSA9IHJlbW92ZVRyYWlsaW5nU2xhc2goaHJlZlBhdGhuYW1lKVxuICAgIGlmIChyb3V0ZVswXSAhPT0gJy8nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJvdXRlIG5hbWUgc2hvdWxkIHN0YXJ0IHdpdGggYSBcIi9cIiwgZ290IFwiJHtyb3V0ZX1cImApXG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SHJlZkZvclNsdWcgPSAocGF0aDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBkYXRhUm91dGUgPSBnZXRBc3NldFBhdGhGcm9tUm91dGUoXG4gICAgICAgIHJlbW92ZVRyYWlsaW5nU2xhc2goYWRkTG9jYWxlKHBhdGgsIGxvY2FsZSkpLFxuICAgICAgICAnLmpzb24nXG4gICAgICApXG4gICAgICByZXR1cm4gYWRkQmFzZVBhdGgoXG4gICAgICAgIGAvX25leHQvZGF0YS8ke3RoaXMuYnVpbGRJZH0ke2RhdGFSb3V0ZX0ke3NlYXJjaH1gLFxuICAgICAgICB0cnVlXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIGdldEhyZWZGb3JTbHVnKFxuICAgICAgcGFyYW1zLnNraXBJbnRlcnBvbGF0aW9uXG4gICAgICAgID8gYXNQYXRobmFtZVxuICAgICAgICA6IGlzRHluYW1pY1JvdXRlKHJvdXRlKVxuICAgICAgICAgID8gaW50ZXJwb2xhdGVBcyhocmVmUGF0aG5hbWUsIGFzUGF0aG5hbWUsIHF1ZXJ5KS5yZXN1bHRcbiAgICAgICAgICA6IHJvdXRlXG4gICAgKVxuICB9XG5cbiAgX2lzU3NnKFxuICAgIC8qKiB0aGUgcm91dGUgKGZpbGUtc3lzdGVtIHBhdGgpICovXG4gICAgcm91dGU6IHN0cmluZ1xuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9taXNlZFNzZ01hbmlmZXN0LnRoZW4oKG1hbmlmZXN0KSA9PiBtYW5pZmVzdC5oYXMocm91dGUpKVxuICB9XG5cbiAgbG9hZFBhZ2Uocm91dGU6IHN0cmluZyk6IFByb21pc2U8R29vZFBhZ2VDYWNoZT4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlTG9hZGVyLmxvYWRSb3V0ZShyb3V0ZSkudGhlbigocmVzKSA9PiB7XG4gICAgICBpZiAoJ2NvbXBvbmVudCcgaW4gcmVzKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGFnZTogcmVzLmNvbXBvbmVudCxcbiAgICAgICAgICBtb2Q6IHJlcy5leHBvcnRzLFxuICAgICAgICAgIHN0eWxlU2hlZXRzOiByZXMuc3R5bGVzLm1hcCgobykgPT4gKHtcbiAgICAgICAgICAgIGhyZWY6IG8uaHJlZixcbiAgICAgICAgICAgIHRleHQ6IG8uY29udGVudCxcbiAgICAgICAgICB9KSksXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IHJlcy5lcnJvclxuICAgIH0pXG4gIH1cblxuICBwcmVmZXRjaChyb3V0ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVMb2FkZXIucHJlZmV0Y2gocm91dGUpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJQYWdlTG9hZGVyIiwiZ2V0UGFnZUxpc3QiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJnZXRDbGllbnRCdWlsZE1hbmlmZXN0IiwidGhlbiIsIm1hbmlmZXN0Iiwic29ydGVkUGFnZXMiLCJ3aW5kb3ciLCJfX0RFVl9QQUdFU19NQU5JRkVTVCIsInBhZ2VzIiwicHJvbWlzZWREZXZQYWdlc01hbmlmZXN0IiwiZmV0Y2giLCJhc3NldFByZWZpeCIsIkRFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QiLCJjcmVkZW50aWFscyIsInJlcyIsImpzb24iLCJjYXRjaCIsImVyciIsImNvbnNvbGUiLCJsb2ciLCJFcnJvciIsImdldE1pZGRsZXdhcmUiLCJfX05FWFRfTUlERExFV0FSRV9NQVRDSEVSUyIsIm1pZGRsZXdhcmVNYXRjaGVycyIsIl9fTUlERExFV0FSRV9NQVRDSEVSUyIsInVuZGVmaW5lZCIsInByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzIiwiYnVpbGRJZCIsIlRVUkJPUEFDS19DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIm1hdGNoZXJzIiwiX19ERVZfTUlERExFV0FSRV9NQVRDSEVSUyIsIkRFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsImdldERhdGFIcmVmIiwicGFyYW1zIiwiYXNQYXRoIiwiaHJlZiIsImxvY2FsZSIsInBhdGhuYW1lIiwiaHJlZlBhdGhuYW1lIiwicXVlcnkiLCJzZWFyY2giLCJwYXJzZVJlbGF0aXZlVXJsIiwiYXNQYXRobmFtZSIsInJvdXRlIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImdldEhyZWZGb3JTbHVnIiwicGF0aCIsImRhdGFSb3V0ZSIsImdldEFzc2V0UGF0aEZyb21Sb3V0ZSIsImFkZExvY2FsZSIsImFkZEJhc2VQYXRoIiwic2tpcEludGVycG9sYXRpb24iLCJpc0R5bmFtaWNSb3V0ZSIsImludGVycG9sYXRlQXMiLCJyZXN1bHQiLCJfaXNTc2ciLCJwcm9taXNlZFNzZ01hbmlmZXN0IiwiaGFzIiwibG9hZFBhZ2UiLCJyb3V0ZUxvYWRlciIsImxvYWRSb3V0ZSIsInBhZ2UiLCJjb21wb25lbnQiLCJtb2QiLCJleHBvcnRzIiwic3R5bGVTaGVldHMiLCJzdHlsZXMiLCJtYXAiLCJvIiwidGV4dCIsImNvbnRlbnQiLCJlcnJvciIsInByZWZldGNoIiwiY29uc3RydWN0b3IiLCJjcmVhdGVSb3V0ZUxvYWRlciIsIlByb21pc2UiLCJyZXNvbHZlIiwiX19TU0dfTUFOSUZFU1QiLCJfX1NTR19NQU5JRkVTVF9DQiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/page-loader.js\n")); /***/ }), @@ -982,7 +982,7 @@ eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ /***/ ((module, exports, __webpack_require__) => { "use strict"; -eval(__webpack_require__.ts("// This module can be shared between both pages router and app router\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"onRecoverableError\", ({\n enumerable: true,\n get: function() {\n return onRecoverableError;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _reportglobalerror = __webpack_require__(/*! ./report-global-error */ \"./node_modules/next/dist/client/react-client-callbacks/report-global-error.js\");\nconst _stitchederror = __webpack_require__(/*! ../components/react-dev-overlay/internal/helpers/stitched-error */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stitched-error.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nconst onRecoverableError = (error, errorInfo)=>{\n // x-ref: https://github.com/facebook/react/pull/28736\n const cause = (0, _iserror.default)(error) && 'cause' in error ? error.cause : error;\n const stitchedError = (0, _stitchederror.getReactStitchedError)(cause);\n // In development mode, pass along the component stack to the error\n if ( true && errorInfo.componentStack) {\n ;\n stitchedError._componentStack = errorInfo.componentStack;\n }\n // Skip certain custom errors which are not expected to be reported on client\n if ((0, _bailouttocsr.isBailoutToCSRError)(cause)) return;\n (0, _reportglobalerror.reportGlobalError)(stitchedError);\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=shared.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZWFjdC1jbGllbnQtY2FsbGJhY2tzL3NoYXJlZC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxxRUFBcUU7Ozs7O3NEQVF4REE7OztlQUFBQTs7OzswQ0FMdUI7K0NBQ0Y7MkNBQ0k7OEVBQ2xCO0FBRWIsTUFBTUEscUJBQTZELENBQ3hFQyxPQUNBQztJQUVBLHNEQUFzRDtJQUN0RCxNQUFNQyxRQUFRQyxDQUFBQSxHQUFBQSxTQUFBQSxPQUFBQSxFQUFRSCxVQUFVLFdBQVdBLGNBQWNFLEtBQUssR0FBR0Y7SUFDakUsTUFBTUksZ0JBQWdCQyxDQUFBQSxHQUFBQSxlQUFBQSxxQkFBQUEsRUFBc0JIO0lBQzVDLG1FQUFtRTtJQUNuRSxJQUFJSSxLQUFvQixJQUFzQkwsVUFBVVEsY0FBYyxFQUFFOztRQUNwRUwsY0FBc0JNLGVBQWUsR0FBR1QsVUFBVVEsY0FBYztJQUNwRTtJQUNBLDZFQUE2RTtJQUM3RSxJQUFJRSxDQUFBQSxHQUFBQSxjQUFBQSxtQkFBQUEsRUFBb0JULFFBQVE7SUFFaENVLENBQUFBLEdBQUFBLG1CQUFBQSxpQkFBQUEsRUFBa0JSO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvY2xpZW50L3JlYWN0LWNsaWVudC1jYWxsYmFja3Mvc2hhcmVkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgbW9kdWxlIGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBib3RoIHBhZ2VzIHJvdXRlciBhbmQgYXBwIHJvdXRlclxuXG5pbXBvcnQgdHlwZSB7IEh5ZHJhdGlvbk9wdGlvbnMgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50J1xuaW1wb3J0IHsgaXNCYWlsb3V0VG9DU1JFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyJ1xuaW1wb3J0IHsgcmVwb3J0R2xvYmFsRXJyb3IgfSBmcm9tICcuL3JlcG9ydC1nbG9iYWwtZXJyb3InXG5pbXBvcnQgeyBnZXRSZWFjdFN0aXRjaGVkRXJyb3IgfSBmcm9tICcuLi9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvc3RpdGNoZWQtZXJyb3InXG5pbXBvcnQgaXNFcnJvciBmcm9tICcuLi8uLi9saWIvaXMtZXJyb3InXG5cbmV4cG9ydCBjb25zdCBvblJlY292ZXJhYmxlRXJyb3I6IEh5ZHJhdGlvbk9wdGlvbnNbJ29uUmVjb3ZlcmFibGVFcnJvciddID0gKFxuICBlcnJvcixcbiAgZXJyb3JJbmZvXG4pID0+IHtcbiAgLy8geC1yZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzI4NzM2XG4gIGNvbnN0IGNhdXNlID0gaXNFcnJvcihlcnJvcikgJiYgJ2NhdXNlJyBpbiBlcnJvciA/IGVycm9yLmNhdXNlIDogZXJyb3JcbiAgY29uc3Qgc3RpdGNoZWRFcnJvciA9IGdldFJlYWN0U3RpdGNoZWRFcnJvcihjYXVzZSlcbiAgLy8gSW4gZGV2ZWxvcG1lbnQgbW9kZSwgcGFzcyBhbG9uZyB0aGUgY29tcG9uZW50IHN0YWNrIHRvIHRoZSBlcnJvclxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgZXJyb3JJbmZvLmNvbXBvbmVudFN0YWNrKSB7XG4gICAgOyhzdGl0Y2hlZEVycm9yIGFzIGFueSkuX2NvbXBvbmVudFN0YWNrID0gZXJyb3JJbmZvLmNvbXBvbmVudFN0YWNrXG4gIH1cbiAgLy8gU2tpcCBjZXJ0YWluIGN1c3RvbSBlcnJvcnMgd2hpY2ggYXJlIG5vdCBleHBlY3RlZCB0byBiZSByZXBvcnRlZCBvbiBjbGllbnRcbiAgaWYgKGlzQmFpbG91dFRvQ1NSRXJyb3IoY2F1c2UpKSByZXR1cm5cblxuICByZXBvcnRHbG9iYWxFcnJvcihzdGl0Y2hlZEVycm9yKVxufVxuIl0sIm5hbWVzIjpbIm9uUmVjb3ZlcmFibGVFcnJvciIsImVycm9yIiwiZXJyb3JJbmZvIiwiY2F1c2UiLCJpc0Vycm9yIiwic3RpdGNoZWRFcnJvciIsImdldFJlYWN0U3RpdGNoZWRFcnJvciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbXBvbmVudFN0YWNrIiwiX2NvbXBvbmVudFN0YWNrIiwiaXNCYWlsb3V0VG9DU1JFcnJvciIsInJlcG9ydEdsb2JhbEVycm9yIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/react-client-callbacks/shared.js\n")); +eval(__webpack_require__.ts("// This module can be shared between both pages router and app router\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"onRecoverableError\", ({\n enumerable: true,\n get: function() {\n return onRecoverableError;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _reportglobalerror = __webpack_require__(/*! ./report-global-error */ \"./node_modules/next/dist/client/react-client-callbacks/report-global-error.js\");\nconst _stitchederror = __webpack_require__(/*! ../components/react-dev-overlay/internal/helpers/stitched-error */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stitched-error.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nconst onRecoverableError = (error, errorInfo)=>{\n // x-ref: https://github.com/facebook/react/pull/28736\n const cause = (0, _iserror.default)(error) && 'cause' in error ? error.cause : error;\n const stitchedError = (0, _stitchederror.getReactStitchedError)(cause);\n // In development mode, pass along the component stack to the error\n if ( true && errorInfo.componentStack) {\n ;\n stitchedError._componentStack = errorInfo.componentStack;\n }\n // Skip certain custom errors which are not expected to be reported on client\n if ((0, _bailouttocsr.isBailoutToCSRError)(cause)) return;\n (0, _reportglobalerror.reportGlobalError)(stitchedError);\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=shared.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZWFjdC1jbGllbnQtY2FsbGJhY2tzL3NoYXJlZC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxxRUFBcUU7Ozs7O3NEQVF4REE7OztlQUFBQTs7OzswQ0FMdUI7K0NBQ0Y7MkNBQ0k7OEVBQ2xCO0FBRWIsTUFBTUEscUJBQTZELENBQ3hFQyxPQUNBQztJQUVBLHNEQUFzRDtJQUN0RCxNQUFNQyxRQUFRQyxDQUFBQSxHQUFBQSxTQUFBQSxPQUFBQSxFQUFRSCxVQUFVLFdBQVdBLFFBQVFBLE1BQU1FLEtBQUssR0FBR0Y7SUFDakUsTUFBTUksZ0JBQWdCQyxDQUFBQSxHQUFBQSxlQUFBQSxxQkFBQUEsRUFBc0JIO0lBQzVDLG1FQUFtRTtJQUNuRSxJQUFJSSxLQUFvQixJQUFzQkwsVUFBVVEsY0FBYyxFQUFFOztRQUNwRUwsY0FBc0JNLGVBQWUsR0FBR1QsVUFBVVEsY0FBYztJQUNwRTtJQUNBLDZFQUE2RTtJQUM3RSxJQUFJRSxDQUFBQSxHQUFBQSxjQUFBQSxtQkFBQUEsRUFBb0JULFFBQVE7SUFFaENVLENBQUFBLEdBQUFBLG1CQUFBQSxpQkFBQUEsRUFBa0JSO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvY2xpZW50L3JlYWN0LWNsaWVudC1jYWxsYmFja3Mvc2hhcmVkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgbW9kdWxlIGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBib3RoIHBhZ2VzIHJvdXRlciBhbmQgYXBwIHJvdXRlclxuXG5pbXBvcnQgdHlwZSB7IEh5ZHJhdGlvbk9wdGlvbnMgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50J1xuaW1wb3J0IHsgaXNCYWlsb3V0VG9DU1JFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyJ1xuaW1wb3J0IHsgcmVwb3J0R2xvYmFsRXJyb3IgfSBmcm9tICcuL3JlcG9ydC1nbG9iYWwtZXJyb3InXG5pbXBvcnQgeyBnZXRSZWFjdFN0aXRjaGVkRXJyb3IgfSBmcm9tICcuLi9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvc3RpdGNoZWQtZXJyb3InXG5pbXBvcnQgaXNFcnJvciBmcm9tICcuLi8uLi9saWIvaXMtZXJyb3InXG5cbmV4cG9ydCBjb25zdCBvblJlY292ZXJhYmxlRXJyb3I6IEh5ZHJhdGlvbk9wdGlvbnNbJ29uUmVjb3ZlcmFibGVFcnJvciddID0gKFxuICBlcnJvcixcbiAgZXJyb3JJbmZvXG4pID0+IHtcbiAgLy8geC1yZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzI4NzM2XG4gIGNvbnN0IGNhdXNlID0gaXNFcnJvcihlcnJvcikgJiYgJ2NhdXNlJyBpbiBlcnJvciA/IGVycm9yLmNhdXNlIDogZXJyb3JcbiAgY29uc3Qgc3RpdGNoZWRFcnJvciA9IGdldFJlYWN0U3RpdGNoZWRFcnJvcihjYXVzZSlcbiAgLy8gSW4gZGV2ZWxvcG1lbnQgbW9kZSwgcGFzcyBhbG9uZyB0aGUgY29tcG9uZW50IHN0YWNrIHRvIHRoZSBlcnJvclxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgZXJyb3JJbmZvLmNvbXBvbmVudFN0YWNrKSB7XG4gICAgOyhzdGl0Y2hlZEVycm9yIGFzIGFueSkuX2NvbXBvbmVudFN0YWNrID0gZXJyb3JJbmZvLmNvbXBvbmVudFN0YWNrXG4gIH1cbiAgLy8gU2tpcCBjZXJ0YWluIGN1c3RvbSBlcnJvcnMgd2hpY2ggYXJlIG5vdCBleHBlY3RlZCB0byBiZSByZXBvcnRlZCBvbiBjbGllbnRcbiAgaWYgKGlzQmFpbG91dFRvQ1NSRXJyb3IoY2F1c2UpKSByZXR1cm5cblxuICByZXBvcnRHbG9iYWxFcnJvcihzdGl0Y2hlZEVycm9yKVxufVxuIl0sIm5hbWVzIjpbIm9uUmVjb3ZlcmFibGVFcnJvciIsImVycm9yIiwiZXJyb3JJbmZvIiwiY2F1c2UiLCJpc0Vycm9yIiwic3RpdGNoZWRFcnJvciIsImdldFJlYWN0U3RpdGNoZWRFcnJvciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbXBvbmVudFN0YWNrIiwiX2NvbXBvbmVudFN0YWNrIiwiaXNCYWlsb3V0VG9DU1JFcnJvciIsInJlcG9ydEdsb2JhbEVycm9yIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/react-client-callbacks/shared.js\n")); /***/ }), @@ -1279,7 +1279,7 @@ eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({ /***/ ((module, exports, __webpack_require__) => { "use strict"; -eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n defaultHead: function() {\n return defaultHead;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _sideeffect = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\nconst _ampcontextsharedruntime = __webpack_require__(/*! ./amp-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js\");\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\");\nconst _ampmode = __webpack_require__(/*! ./amp-mode */ \"./node_modules/next/dist/shared/lib/amp-mode.js\");\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }, \"charset\")\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }, \"viewport\"));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === _react.default.Fragment) {\n return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n 'name',\n 'httpEquiv',\n 'charSet',\n 'itemProp'\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (false) {}\n if (true) {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? '<script> tag with src=\"' + c.props['src'] + '\"' : \"inline <script>\";\n (0, _warnonce.warnOnce)(\"Do not add <script> tags using next/head (see \" + srcMessage + \"). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component\");\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n (0, _warnonce.warnOnce)('Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"' + c.props['href'] + '\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');\n }\n }\n return /*#__PURE__*/ _react.default.cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head(param) {\n let { children } = param;\n const ampState = (0, _react.useContext)(_ampcontextsharedruntime.AmpStateContext);\n const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampmode.isInAmpMode)(ampState),\n children: children\n });\n}\n_c = Head;\nconst _default = Head;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head.js.map\nvar _c;\n$RefreshReg$(_c, \"Head\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUF1TUEsT0FBbUI7ZUFBbkI7O0lBMUxnQkEsV0FBVztlQUFYQTs7Ozs7OzZFQVg0QjtpRkFDekI7cURBQ2E7NkRBQ0c7cUNBQ1A7c0NBQ0g7QUFNbEIsU0FBU0EsWUFBWUMsU0FBaUI7SUFBakJBLElBQUFBLGNBQUFBLEtBQUFBLEdBQUFBLFlBQVk7SUFDdEMsTUFBTUMsT0FBTztzQkFBQyxxQkFBQ0MsUUFBQUE7WUFBS0MsU0FBUTtXQUFZO0tBQWE7SUFDckQsSUFBSSxDQUFDSCxXQUFXO1FBQ2RDLEtBQUtHLElBQUksZUFDUCxxQkFBQ0YsUUFBQUE7WUFBS0csTUFBSztZQUFXQyxTQUFRO1dBQXlCO0lBRTNEO0lBQ0EsT0FBT0w7QUFDVDtBQUVBLFNBQVNNLGlCQUNQQyxJQUFvQyxFQUNwQ0MsS0FBMkM7SUFFM0MsOEZBQThGO0lBQzlGLElBQUksT0FBT0EsVUFBVSxZQUFZLE9BQU9BLFVBQVUsVUFBVTtRQUMxRCxPQUFPRDtJQUNUO0lBQ0Esa0NBQWtDO0lBQ2xDLElBQUlDLE1BQU1DLElBQUksS0FBS0MsT0FBQUEsT0FBSyxDQUFDQyxRQUFRLEVBQUU7UUFDakMsT0FBT0osS0FBS0ssTUFBTSxDQUNoQixPQUNBRixPQUFLLENBQUNHLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDTixNQUFNTyxLQUFLLENBQUNDLFFBQVEsRUFBRUMsTUFBTSxDQUNqRCxDQUVFQyxjQUNBQztZQUVBLElBQ0UsT0FBT0Esa0JBQWtCLFlBQ3pCLE9BQU9BLGtCQUFrQixVQUN6QjtnQkFDQSxPQUFPRDtZQUNUO1lBQ0EsT0FBT0EsYUFBYU4sTUFBTSxDQUFDTztRQUM3QixHQUNBLEVBQUU7SUFHUjtJQUNBLE9BQU9aLEtBQUtLLE1BQU0sQ0FBQ0o7QUFDckI7QUFFQSxNQUFNWSxZQUFZO0lBQUM7SUFBUTtJQUFhO0lBQVc7Q0FBVztBQUU5RDs7OztBQUlBLEdBQ0EsU0FBU0M7SUFDUCxNQUFNQyxPQUFPLElBQUlDO0lBQ2pCLE1BQU1DLE9BQU8sSUFBSUQ7SUFDakIsTUFBTUUsWUFBWSxJQUFJRjtJQUN0QixNQUFNRyxpQkFBc0QsQ0FBQztJQUU3RCxPQUFPLENBQUNDO1FBQ04sSUFBSUMsV0FBVztRQUNmLElBQUlDLFNBQVM7UUFFYixJQUFJRixFQUFFRyxHQUFHLElBQUksT0FBT0gsRUFBRUcsR0FBRyxLQUFLLFlBQVlILEVBQUVHLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLE9BQU8sR0FBRztZQUNoRUYsU0FBUztZQUNULE1BQU1DLE1BQU1ILEVBQUVHLEdBQUcsQ0FBQ0UsS0FBSyxDQUFDTCxFQUFFRyxHQUFHLENBQUNDLE9BQU8sQ0FBQyxPQUFPO1lBQzdDLElBQUlULEtBQUtXLEdBQUcsQ0FBQ0gsTUFBTTtnQkFDakJGLFdBQVc7WUFDYixPQUFPO2dCQUNMTixLQUFLWSxHQUFHLENBQUNKO1lBQ1g7UUFDRjtRQUVBLHdDQUF3QztRQUN4QyxPQUFRSCxFQUFFbEIsSUFBSTtZQUNaLEtBQUs7WUFDTCxLQUFLO2dCQUNILElBQUllLEtBQUtTLEdBQUcsQ0FBQ04sRUFBRWxCLElBQUksR0FBRztvQkFDcEJtQixXQUFXO2dCQUNiLE9BQU87b0JBQ0xKLEtBQUtVLEdBQUcsQ0FBQ1AsRUFBRWxCLElBQUk7Z0JBQ2pCO2dCQUNBO1lBQ0YsS0FBSztnQkFDSCxJQUFLLElBQUkwQixJQUFJLEdBQUdDLE1BQU1oQixVQUFVaUIsTUFBTSxFQUFFRixJQUFJQyxLQUFLRCxJQUFLO29CQUNwRCxNQUFNRyxXQUFXbEIsU0FBUyxDQUFDZSxFQUFFO29CQUM3QixJQUFJLENBQUNSLEVBQUVaLEtBQUssQ0FBQ3dCLGNBQWMsQ0FBQ0QsV0FBVztvQkFFdkMsSUFBSUEsYUFBYSxXQUFXO3dCQUMxQixJQUFJYixVQUFVUSxHQUFHLENBQUNLLFdBQVc7NEJBQzNCVixXQUFXO3dCQUNiLE9BQU87NEJBQ0xILFVBQVVTLEdBQUcsQ0FBQ0k7d0JBQ2hCO29CQUNGLE9BQU87d0JBQ0wsTUFBTUUsV0FBV2IsRUFBRVosS0FBSyxDQUFDdUIsU0FBUzt3QkFDbEMsTUFBTUcsYUFBYWYsY0FBYyxDQUFDWSxTQUFTLElBQUksSUFBSWY7d0JBQ25ELElBQUtlLENBQUFBLGFBQWEsVUFBVSxDQUFDVCxNQUFBQSxDQUFLLElBQU1ZLFdBQVdSLEdBQUcsQ0FBQ08sV0FBVzs0QkFDaEVaLFdBQVc7d0JBQ2IsT0FBTzs0QkFDTGEsV0FBV1AsR0FBRyxDQUFDTTs0QkFDZmQsY0FBYyxDQUFDWSxTQUFTLEdBQUdHO3dCQUM3QjtvQkFDRjtnQkFDRjtnQkFDQTtRQUNKO1FBRUEsT0FBT2I7SUFDVDtBQUNGO0FBRUE7OztDQUdDLEdBQ0QsU0FBU2MsaUJBQ1BDLG9CQUFvRCxFQUNwRDVCLEtBQVE7SUFFUixNQUFNLEVBQUVoQixTQUFTLEVBQUUsR0FBR2dCO0lBQ3RCLE9BQU80QixxQkFDSjFCLE1BQU0sQ0FBQ1gsa0JBQWtCLEVBQUUsRUFDM0JzQyxPQUFPLEdBQ1BoQyxNQUFNLENBQUNkLFlBQVlDLFdBQVc2QyxPQUFPLElBQ3JDQyxNQUFNLENBQUN4QixVQUNQdUIsT0FBTyxHQUNQRSxHQUFHLENBQUMsQ0FBQ0MsR0FBNEJaO1FBQ2hDLE1BQU1MLE1BQU1pQixFQUFFakIsR0FBRyxJQUFJSztRQUNyQixJQUNFYSxLQUVVakQsRUFDVixFQWtCRDtRQUNELElBQUlpRCxJQUFvQixFQUFvQjtZQUMxQyx5REFBeUQ7WUFDekQsSUFBSUQsRUFBRXRDLElBQUksS0FBSyxZQUFZc0MsRUFBRWhDLEtBQUssQ0FBQyxPQUFPLEtBQUssdUJBQXVCO2dCQUNwRSxNQUFNMkMsYUFBYVgsRUFBRWhDLEtBQUssQ0FBQyxNQUFNLEdBQzVCLDRCQUF5QmdDLEVBQUVoQyxLQUFLLENBQUMsTUFBTSxHQUFDLE1BQ3hDO2dCQUNMNEMsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyxtREFBZ0RELGFBQVc7WUFFaEUsT0FBTyxJQUFJWCxFQUFFdEMsSUFBSSxLQUFLLFVBQVVzQyxFQUFFaEMsS0FBSyxDQUFDLE1BQU0sS0FBSyxjQUFjO2dCQUMvRDRDLENBQUFBLEdBQUFBLFVBQUFBLFFBQUFBLEVBQ0csd0ZBQXFGWixFQUFFaEMsS0FBSyxDQUFDLE9BQU8sR0FBQztZQUUxRztRQUNGO1FBQ0EscUJBQU9MLE9BQUFBLE9BQUssQ0FBQytDLFlBQVksQ0FBQ1YsR0FBRztZQUFFakI7UUFBSTtJQUNyQztBQUNKO0FBRUE7OztDQUdDLEdBQ0QsY0FBYyxLQUEyQztJQUEzQyxNQUFFZCxRQUFRLEVBQWlDLEdBQTNDO0lBQ1osTUFBTTZDLFdBQVdDLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdDLHlCQUFBQSxlQUFlO0lBQzNDLE1BQU1DLGNBQWNGLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdHLGlDQUFBQSxrQkFBa0I7SUFDakQscUJBQ0UscUJBQUNDLFlBQUFBLE9BQU07UUFDTEMseUJBQXlCekI7UUFDekJzQixhQUFhQTtRQUNiakUsV0FBV3FFLENBQUFBLEdBQUFBLFNBQUFBLFdBQUFBLEVBQVlQO2tCQUV0QjdDOztBQUdQO0tBWlM0QztNQWNULFdBQWVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvc2hhcmVkL2xpYi9oZWFkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgRWZmZWN0IGZyb20gJy4vc2lkZS1lZmZlY3QnXG5pbXBvcnQgeyBBbXBTdGF0ZUNvbnRleHQgfSBmcm9tICcuL2FtcC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgSGVhZE1hbmFnZXJDb250ZXh0IH0gZnJvbSAnLi9oZWFkLW1hbmFnZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGlzSW5BbXBNb2RlIH0gZnJvbSAnLi9hbXAtbW9kZSdcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi91dGlscy93YXJuLW9uY2UnXG5cbnR5cGUgV2l0aEluQW1wTW9kZSA9IHtcbiAgaW5BbXBNb2RlPzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdEhlYWQoaW5BbXBNb2RlID0gZmFsc2UpOiBKU1guRWxlbWVudFtdIHtcbiAgY29uc3QgaGVhZCA9IFs8bWV0YSBjaGFyU2V0PVwidXRmLThcIiBrZXk9XCJjaGFyc2V0XCIgLz5dXG4gIGlmICghaW5BbXBNb2RlKSB7XG4gICAgaGVhZC5wdXNoKFxuICAgICAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aFwiIGtleT1cInZpZXdwb3J0XCIgLz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIGhlYWRcbn1cblxuZnVuY3Rpb24gb25seVJlYWN0RWxlbWVudChcbiAgbGlzdDogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICBjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVtYmVyIHwgc3RyaW5nXG4pOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4ge1xuICAvLyBSZWFjdCBjaGlsZHJlbiBjYW4gYmUgXCJzdHJpbmdcIiBvciBcIm51bWJlclwiIGluIHRoaXMgY2FzZSB3ZSBpZ25vcmUgdGhlbSBmb3IgYmFja3dhcmRzIGNvbXBhdFxuICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGxpc3RcbiAgfVxuICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gIGlmIChjaGlsZC50eXBlID09PSBSZWFjdC5GcmFnbWVudCkge1xuICAgIHJldHVybiBsaXN0LmNvbmNhdChcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQHR5cGVzL3JlYWN0IGRvZXMgbm90IHJlbW92ZSBmcmFnbWVudHMgYnV0IHRoaXMgY291bGQgYWxzbyByZXR1cm4gUmVhY3RQb3J0YWxbXVxuICAgICAgUmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZC5wcm9wcy5jaGlsZHJlbikucmVkdWNlKFxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEB0eXBlcy9yZWFjdCBkb2VzIG5vdCByZW1vdmUgZnJhZ21lbnRzIGJ1dCB0aGlzIGNvdWxkIGFsc28gcmV0dXJuIFJlYWN0UG9ydGFsW11cbiAgICAgICAgKFxuICAgICAgICAgIGZyYWdtZW50TGlzdDogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICAgICAgICAgIGZyYWdtZW50Q2hpbGQ6IFJlYWN0LlJlYWN0RWxlbWVudCB8IG51bWJlciB8IHN0cmluZ1xuICAgICAgICApOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4gPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHR5cGVvZiBmcmFnbWVudENoaWxkID09PSAnc3RyaW5nJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdudW1iZXInXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJhZ21lbnRMaXN0XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpXG4gICAgICAgIH0sXG4gICAgICAgIFtdXG4gICAgICApXG4gICAgKVxuICB9XG4gIHJldHVybiBsaXN0LmNvbmNhdChjaGlsZClcbn1cblxuY29uc3QgTUVUQVRZUEVTID0gWyduYW1lJywgJ2h0dHBFcXVpdicsICdjaGFyU2V0JywgJ2l0ZW1Qcm9wJ11cblxuLypcbiByZXR1cm5zIGEgZnVuY3Rpb24gZm9yIGZpbHRlcmluZyBoZWFkIGNoaWxkIGVsZW1lbnRzXG4gd2hpY2ggc2hvdWxkbid0IGJlIGR1cGxpY2F0ZWQsIGxpa2UgPHRpdGxlLz5cbiBBbHNvIGFkZHMgc3VwcG9ydCBmb3IgZGVkdXBsaWNhdGVkIGBrZXlgIHByb3BlcnRpZXNcbiovXG5mdW5jdGlvbiB1bmlxdWUoKSB7XG4gIGNvbnN0IGtleXMgPSBuZXcgU2V0KClcbiAgY29uc3QgdGFncyA9IG5ldyBTZXQoKVxuICBjb25zdCBtZXRhVHlwZXMgPSBuZXcgU2V0KClcbiAgY29uc3QgbWV0YUNhdGVnb3JpZXM6IHsgW21ldGF0eXBlOiBzdHJpbmddOiBTZXQ8c3RyaW5nPiB9ID0ge31cblxuICByZXR1cm4gKGg6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+KSA9PiB7XG4gICAgbGV0IGlzVW5pcXVlID0gdHJ1ZVxuICAgIGxldCBoYXNLZXkgPSBmYWxzZVxuXG4gICAgaWYgKGgua2V5ICYmIHR5cGVvZiBoLmtleSAhPT0gJ251bWJlcicgJiYgaC5rZXkuaW5kZXhPZignJCcpID4gMCkge1xuICAgICAgaGFzS2V5ID0gdHJ1ZVxuICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZignJCcpICsgMSlcbiAgICAgIGlmIChrZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGtleXMuYWRkKGtleSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlXG4gICAgc3dpdGNoIChoLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICBpZiAodGFncy5oYXMoaC50eXBlKSkge1xuICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWdzLmFkZChoLnR5cGUpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ21ldGEnOlxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gTUVUQVRZUEVTLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgbWV0YXR5cGUgPSBNRVRBVFlQRVNbaV1cbiAgICAgICAgICBpZiAoIWgucHJvcHMuaGFzT3duUHJvcGVydHkobWV0YXR5cGUpKSBjb250aW51ZVxuXG4gICAgICAgICAgaWYgKG1ldGF0eXBlID09PSAnY2hhclNldCcpIHtcbiAgICAgICAgICAgIGlmIChtZXRhVHlwZXMuaGFzKG1ldGF0eXBlKSkge1xuICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBtZXRhVHlwZXMuYWRkKG1ldGF0eXBlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yeSA9IGgucHJvcHNbbWV0YXR5cGVdXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdIHx8IG5ldyBTZXQoKVxuICAgICAgICAgICAgaWYgKChtZXRhdHlwZSAhPT0gJ25hbWUnIHx8ICFoYXNLZXkpICYmIGNhdGVnb3JpZXMuaGFzKGNhdGVnb3J5KSkge1xuICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSlcbiAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cblxuICAgIHJldHVybiBpc1VuaXF1ZVxuICB9XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkQ2hpbGRyZW5FbGVtZW50cyBMaXN0IG9mIGNoaWxkcmVuIG9mIDxIZWFkPlxuICovXG5mdW5jdGlvbiByZWR1Y2VDb21wb25lbnRzPFQgZXh0ZW5kcyB7fSAmIFdpdGhJbkFtcE1vZGU+KFxuICBoZWFkQ2hpbGRyZW5FbGVtZW50czogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICBwcm9wczogVFxuKSB7XG4gIGNvbnN0IHsgaW5BbXBNb2RlIH0gPSBwcm9wc1xuICByZXR1cm4gaGVhZENoaWxkcmVuRWxlbWVudHNcbiAgICAucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsIFtdKVxuICAgIC5yZXZlcnNlKClcbiAgICAuY29uY2F0KGRlZmF1bHRIZWFkKGluQW1wTW9kZSkucmV2ZXJzZSgpKVxuICAgIC5maWx0ZXIodW5pcXVlKCkpXG4gICAgLnJldmVyc2UoKVxuICAgIC5tYXAoKGM6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+LCBpOiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGMua2V5IHx8IGlcbiAgICAgIGlmIChcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcgJiZcbiAgICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX09QVElNSVpFX0ZPTlRTICYmXG4gICAgICAgICFpbkFtcE1vZGVcbiAgICAgICkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgYy50eXBlID09PSAnbGluaycgJiZcbiAgICAgICAgICBjLnByb3BzWydocmVmJ10gJiZcbiAgICAgICAgICAvLyBUT0RPKHByYXRlZWtiaEApOiBSZXBsYWNlIHRoaXMgd2l0aCBjb25zdCBmcm9tIGBjb25zdGFudHNgIHdoZW4gdGhlIHRyZWUgc2hha2luZyB3b3Jrcy5cbiAgICAgICAgICBbJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzJywgJ2h0dHBzOi8vdXNlLnR5cGVraXQubmV0LyddLnNvbWUoXG4gICAgICAgICAgICAodXJsKSA9PiBjLnByb3BzWydocmVmJ10uc3RhcnRzV2l0aCh1cmwpXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBuZXdQcm9wcyA9IHsgLi4uKGMucHJvcHMgfHwge30pIH1cbiAgICAgICAgICBuZXdQcm9wc1snZGF0YS1ocmVmJ10gPSBuZXdQcm9wc1snaHJlZiddXG4gICAgICAgICAgbmV3UHJvcHNbJ2hyZWYnXSA9IHVuZGVmaW5lZFxuXG4gICAgICAgICAgLy8gQWRkIHRoaXMgYXR0cmlidXRlIHRvIG1ha2UgaXQgZWFzeSB0byBpZGVudGlmeSBvcHRpbWl6ZWQgdGFnc1xuICAgICAgICAgIG5ld1Byb3BzWydkYXRhLW9wdGltaXplZC1mb250cyddID0gdHJ1ZVxuXG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjLCBuZXdQcm9wcylcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIG9taXQgSlNPTi1MRCBzdHJ1Y3R1cmVkIGRhdGEgc25pcHBldHMgZnJvbSB0aGUgd2FybmluZ1xuICAgICAgICBpZiAoYy50eXBlID09PSAnc2NyaXB0JyAmJiBjLnByb3BzWyd0eXBlJ10gIT09ICdhcHBsaWNhdGlvbi9sZCtqc29uJykge1xuICAgICAgICAgIGNvbnN0IHNyY01lc3NhZ2UgPSBjLnByb3BzWydzcmMnXVxuICAgICAgICAgICAgPyBgPHNjcmlwdD4gdGFnIHdpdGggc3JjPVwiJHtjLnByb3BzWydzcmMnXX1cImBcbiAgICAgICAgICAgIDogYGlubGluZSA8c2NyaXB0PmBcbiAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgIGBEbyBub3QgYWRkIDxzY3JpcHQ+IHRhZ3MgdXNpbmcgbmV4dC9oZWFkIChzZWUgJHtzcmNNZXNzYWdlfSkuIFVzZSBuZXh0L3NjcmlwdCBpbnN0ZWFkLiBcXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLXNjcmlwdC10YWdzLWluLWhlYWQtY29tcG9uZW50YFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIGlmIChjLnR5cGUgPT09ICdsaW5rJyAmJiBjLnByb3BzWydyZWwnXSA9PT0gJ3N0eWxlc2hlZXQnKSB7XG4gICAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICBgRG8gbm90IGFkZCBzdHlsZXNoZWV0cyB1c2luZyBuZXh0L2hlYWQgKHNlZSA8bGluayByZWw9XCJzdHlsZXNoZWV0XCI+IHRhZyB3aXRoIGhyZWY9XCIke2MucHJvcHNbJ2hyZWYnXX1cIikuIFVzZSBEb2N1bWVudCBpbnN0ZWFkLiBcXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLXN0eWxlc2hlZXRzLWluLWhlYWQtY29tcG9uZW50YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjLCB7IGtleSB9KVxuICAgIH0pXG59XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgaW5qZWN0cyBlbGVtZW50cyB0byBgPGhlYWQ+YCBvZiB5b3VyIHBhZ2UuXG4gKiBUbyBhdm9pZCBkdXBsaWNhdGVkIGB0YWdzYCBpbiBgPGhlYWQ+YCB5b3UgY2FuIHVzZSB0aGUgYGtleWAgcHJvcGVydHksIHdoaWNoIHdpbGwgbWFrZSBzdXJlIGV2ZXJ5IHRhZyBpcyBvbmx5IHJlbmRlcmVkIG9uY2UuXG4gKi9cbmZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICBjb25zdCBhbXBTdGF0ZSA9IHVzZUNvbnRleHQoQW1wU3RhdGVDb250ZXh0KVxuICBjb25zdCBoZWFkTWFuYWdlciA9IHVzZUNvbnRleHQoSGVhZE1hbmFnZXJDb250ZXh0KVxuICByZXR1cm4gKFxuICAgIDxFZmZlY3RcbiAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlPXtyZWR1Y2VDb21wb25lbnRzfVxuICAgICAgaGVhZE1hbmFnZXI9e2hlYWRNYW5hZ2VyfVxuICAgICAgaW5BbXBNb2RlPXtpc0luQW1wTW9kZShhbXBTdGF0ZSl9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRWZmZWN0PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRcbiJdLCJuYW1lcyI6WyJkZWZhdWx0SGVhZCIsImluQW1wTW9kZSIsImhlYWQiLCJtZXRhIiwiY2hhclNldCIsInB1c2giLCJuYW1lIiwiY29udGVudCIsIm9ubHlSZWFjdEVsZW1lbnQiLCJsaXN0IiwiY2hpbGQiLCJ0eXBlIiwiUmVhY3QiLCJGcmFnbWVudCIsImNvbmNhdCIsIkNoaWxkcmVuIiwidG9BcnJheSIsInByb3BzIiwiY2hpbGRyZW4iLCJyZWR1Y2UiLCJmcmFnbWVudExpc3QiLCJmcmFnbWVudENoaWxkIiwiTUVUQVRZUEVTIiwidW5pcXVlIiwia2V5cyIsIlNldCIsInRhZ3MiLCJtZXRhVHlwZXMiLCJtZXRhQ2F0ZWdvcmllcyIsImgiLCJpc1VuaXF1ZSIsImhhc0tleSIsImtleSIsImluZGV4T2YiLCJzbGljZSIsImhhcyIsImFkZCIsImkiLCJsZW4iLCJsZW5ndGgiLCJtZXRhdHlwZSIsImhhc093blByb3BlcnR5IiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRDaGlsZHJlbkVsZW1lbnRzIiwicmV2ZXJzZSIsImZpbHRlciIsIm1hcCIsImMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJfX05FWFRfT1BUSU1JWkVfRk9OVFMiLCJzb21lIiwidXJsIiwic3RhcnRzV2l0aCIsIm5ld1Byb3BzIiwidW5kZWZpbmVkIiwiY2xvbmVFbGVtZW50Iiwic3JjTWVzc2FnZSIsIndhcm5PbmNlIiwiSGVhZCIsImFtcFN0YXRlIiwidXNlQ29udGV4dCIsIkFtcFN0YXRlQ29udGV4dCIsImhlYWRNYW5hZ2VyIiwiSGVhZE1hbmFnZXJDb250ZXh0IiwiRWZmZWN0IiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJpc0luQW1wTW9kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n")); +eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n defaultHead: function() {\n return defaultHead;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _sideeffect = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\nconst _ampcontextsharedruntime = __webpack_require__(/*! ./amp-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js\");\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\");\nconst _ampmode = __webpack_require__(/*! ./amp-mode */ \"./node_modules/next/dist/shared/lib/amp-mode.js\");\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }, \"charset\")\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }, \"viewport\"));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === _react.default.Fragment) {\n return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n 'name',\n 'httpEquiv',\n 'charSet',\n 'itemProp'\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (false) {}\n if (true) {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? '<script> tag with src=\"' + c.props['src'] + '\"' : \"inline <script>\";\n (0, _warnonce.warnOnce)(\"Do not add <script> tags using next/head (see \" + srcMessage + \"). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component\");\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n (0, _warnonce.warnOnce)('Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"' + c.props['href'] + '\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');\n }\n }\n return /*#__PURE__*/ _react.default.cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head(param) {\n let { children } = param;\n const ampState = (0, _react.useContext)(_ampcontextsharedruntime.AmpStateContext);\n const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampmode.isInAmpMode)(ampState),\n children: children\n });\n}\n_c = Head;\nconst _default = Head;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head.js.map\nvar _c;\n$RefreshReg$(_c, \"Head\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUF1TUEsT0FBbUI7ZUFBbkI7O0lBMUxnQkEsV0FBVztlQUFYQTs7Ozs7OzZFQVg0QjtpRkFDekI7cURBQ2E7NkRBQ0c7cUNBQ1A7c0NBQ0g7QUFNbEIsU0FBU0EsWUFBWUMsU0FBaUI7SUFBakJBLElBQUFBLGNBQUFBLEtBQUFBLEdBQUFBLFlBQVk7SUFDdEMsTUFBTUMsT0FBTztzQkFBQyxxQkFBQ0MsUUFBQUE7WUFBS0MsU0FBUTtXQUFZO0tBQWE7SUFDckQsSUFBSSxDQUFDSCxXQUFXO1FBQ2RDLEtBQUtHLElBQUksZUFDUCxxQkFBQ0YsUUFBQUE7WUFBS0csTUFBSztZQUFXQyxTQUFRO1dBQXlCO0lBRTNEO0lBQ0EsT0FBT0w7QUFDVDtBQUVBLFNBQVNNLGlCQUNQQyxJQUFvQyxFQUNwQ0MsS0FBMkM7SUFFM0MsOEZBQThGO0lBQzlGLElBQUksT0FBT0EsVUFBVSxZQUFZLE9BQU9BLFVBQVUsVUFBVTtRQUMxRCxPQUFPRDtJQUNUO0lBQ0Esa0NBQWtDO0lBQ2xDLElBQUlDLE1BQU1DLElBQUksS0FBS0MsT0FBQUEsT0FBSyxDQUFDQyxRQUFRLEVBQUU7UUFDakMsT0FBT0osS0FBS0ssTUFBTSxDQUNoQixPQUNBRixPQUFLLENBQUNHLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDTixNQUFNTyxLQUFLLENBQUNDLFFBQVEsRUFBRUMsTUFBTSxDQUNqRCxDQUVFQyxjQUNBQztZQUVBLElBQ0UsT0FBT0Esa0JBQWtCLFlBQ3pCLE9BQU9BLGtCQUFrQixVQUN6QjtnQkFDQSxPQUFPRDtZQUNUO1lBQ0EsT0FBT0EsYUFBYU4sTUFBTSxDQUFDTztRQUM3QixHQUNBLEVBQUU7SUFHUjtJQUNBLE9BQU9aLEtBQUtLLE1BQU0sQ0FBQ0o7QUFDckI7QUFFQSxNQUFNWSxZQUFZO0lBQUM7SUFBUTtJQUFhO0lBQVc7Q0FBVztBQUU5RDs7OztBQUlBLEdBQ0EsU0FBU0M7SUFDUCxNQUFNQyxPQUFPLElBQUlDO0lBQ2pCLE1BQU1DLE9BQU8sSUFBSUQ7SUFDakIsTUFBTUUsWUFBWSxJQUFJRjtJQUN0QixNQUFNRyxpQkFBc0QsQ0FBQztJQUU3RCxPQUFPLENBQUNDO1FBQ04sSUFBSUMsV0FBVztRQUNmLElBQUlDLFNBQVM7UUFFYixJQUFJRixFQUFFRyxHQUFHLElBQUksT0FBT0gsRUFBRUcsR0FBRyxLQUFLLFlBQVlILEVBQUVHLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLE9BQU8sR0FBRztZQUNoRUYsU0FBUztZQUNULE1BQU1DLE1BQU1ILEVBQUVHLEdBQUcsQ0FBQ0UsS0FBSyxDQUFDTCxFQUFFRyxHQUFHLENBQUNDLE9BQU8sQ0FBQyxPQUFPO1lBQzdDLElBQUlULEtBQUtXLEdBQUcsQ0FBQ0gsTUFBTTtnQkFDakJGLFdBQVc7WUFDYixPQUFPO2dCQUNMTixLQUFLWSxHQUFHLENBQUNKO1lBQ1g7UUFDRjtRQUVBLHdDQUF3QztRQUN4QyxPQUFRSCxFQUFFbEIsSUFBSTtZQUNaLEtBQUs7WUFDTCxLQUFLO2dCQUNILElBQUllLEtBQUtTLEdBQUcsQ0FBQ04sRUFBRWxCLElBQUksR0FBRztvQkFDcEJtQixXQUFXO2dCQUNiLE9BQU87b0JBQ0xKLEtBQUtVLEdBQUcsQ0FBQ1AsRUFBRWxCLElBQUk7Z0JBQ2pCO2dCQUNBO1lBQ0YsS0FBSztnQkFDSCxJQUFLLElBQUkwQixJQUFJLEdBQUdDLE1BQU1oQixVQUFVaUIsTUFBTSxFQUFFRixJQUFJQyxLQUFLRCxJQUFLO29CQUNwRCxNQUFNRyxXQUFXbEIsU0FBUyxDQUFDZSxFQUFFO29CQUM3QixJQUFJLENBQUNSLEVBQUVaLEtBQUssQ0FBQ3dCLGNBQWMsQ0FBQ0QsV0FBVztvQkFFdkMsSUFBSUEsYUFBYSxXQUFXO3dCQUMxQixJQUFJYixVQUFVUSxHQUFHLENBQUNLLFdBQVc7NEJBQzNCVixXQUFXO3dCQUNiLE9BQU87NEJBQ0xILFVBQVVTLEdBQUcsQ0FBQ0k7d0JBQ2hCO29CQUNGLE9BQU87d0JBQ0wsTUFBTUUsV0FBV2IsRUFBRVosS0FBSyxDQUFDdUIsU0FBUzt3QkFDbEMsTUFBTUcsYUFBYWYsY0FBYyxDQUFDWSxTQUFTLElBQUksSUFBSWY7d0JBQ25ELElBQUtlLENBQUFBLGFBQWEsVUFBVSxDQUFDVCxNQUFBQSxDQUFLLElBQU1ZLFdBQVdSLEdBQUcsQ0FBQ08sV0FBVzs0QkFDaEVaLFdBQVc7d0JBQ2IsT0FBTzs0QkFDTGEsV0FBV1AsR0FBRyxDQUFDTTs0QkFDZmQsY0FBYyxDQUFDWSxTQUFTLEdBQUdHO3dCQUM3QjtvQkFDRjtnQkFDRjtnQkFDQTtRQUNKO1FBRUEsT0FBT2I7SUFDVDtBQUNGO0FBRUE7OztDQUdDLEdBQ0QsU0FBU2MsaUJBQ1BDLG9CQUFvRCxFQUNwRDVCLEtBQVE7SUFFUixNQUFNLEVBQUVoQixTQUFTLEVBQUUsR0FBR2dCO0lBQ3RCLE9BQU80QixxQkFDSjFCLE1BQU0sQ0FBQ1gsa0JBQWtCLEVBQUUsRUFDM0JzQyxPQUFPLEdBQ1BoQyxNQUFNLENBQUNkLFlBQVlDLFdBQVc2QyxPQUFPLElBQ3JDQyxNQUFNLENBQUN4QixVQUNQdUIsT0FBTyxHQUNQRSxHQUFHLENBQUMsQ0FBQ0MsR0FBNEJaO1FBQ2hDLE1BQU1MLE1BQU1pQixFQUFFakIsR0FBRyxJQUFJSztRQUNyQixJQUNFYSxLQUVVakQsRUFDVixFQWtCRDtRQUNELElBQUlpRCxJQUFvQixFQUFvQjtZQUMxQyx5REFBeUQ7WUFDekQsSUFBSUQsRUFBRXRDLElBQUksS0FBSyxZQUFZc0MsRUFBRWhDLEtBQUssQ0FBQyxPQUFPLEtBQUssdUJBQXVCO2dCQUNwRSxNQUFNMkMsYUFBYVgsRUFBRWhDLEtBQUssQ0FBQyxNQUFNLEdBQzVCLDRCQUF5QmdDLEVBQUVoQyxLQUFLLENBQUMsTUFBTSxHQUFDLE1BQ3hDO2dCQUNMNEMsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyxtREFBZ0RELGFBQVc7WUFFaEUsT0FBTyxJQUFJWCxFQUFFdEMsSUFBSSxLQUFLLFVBQVVzQyxFQUFFaEMsS0FBSyxDQUFDLE1BQU0sS0FBSyxjQUFjO2dCQUMvRDRDLENBQUFBLEdBQUFBLFVBQUFBLFFBQVEsRUFDTCx3RkFBcUZaLEVBQUVoQyxLQUFLLENBQUMsT0FBTyxHQUFDO1lBRTFHO1FBQ0Y7UUFDQSxxQkFBT0wsT0FBQUEsT0FBSyxDQUFDK0MsWUFBWSxDQUFDVixHQUFHO1lBQUVqQjtRQUFJO0lBQ3JDO0FBQ0o7QUFFQTs7O0NBR0MsR0FDRCxjQUFjLEtBQTJDO0lBQTNDLE1BQUVkLFFBQVEsRUFBaUMsR0FBM0M7SUFDWixNQUFNNkMsV0FBV0MsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0MseUJBQUFBLGVBQWU7SUFDM0MsTUFBTUMsY0FBY0YsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFBV0csaUNBQUFBLGtCQUFrQjtJQUNqRCxxQkFDRSxxQkFBQ0MsWUFBQUEsT0FBTTtRQUNMQyx5QkFBeUJ6QjtRQUN6QnNCLGFBQWFBO1FBQ2JqRSxXQUFXcUUsQ0FBQUEsR0FBQUEsU0FBQUEsV0FBQUEsRUFBWVA7a0JBRXRCN0M7O0FBR1A7S0FaUzRDO01BY1QsV0FBZUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9zaGFyZWQvbGliL2hlYWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCBFZmZlY3QgZnJvbSAnLi9zaWRlLWVmZmVjdCdcbmltcG9ydCB7IEFtcFN0YXRlQ29udGV4dCB9IGZyb20gJy4vYW1wLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBIZWFkTWFuYWdlckNvbnRleHQgfSBmcm9tICcuL2hlYWQtbWFuYWdlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgaXNJbkFtcE1vZGUgfSBmcm9tICcuL2FtcC1tb2RlJ1xuaW1wb3J0IHsgd2Fybk9uY2UgfSBmcm9tICcuL3V0aWxzL3dhcm4tb25jZSdcblxudHlwZSBXaXRoSW5BbXBNb2RlID0ge1xuICBpbkFtcE1vZGU/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0SGVhZChpbkFtcE1vZGUgPSBmYWxzZSk6IEpTWC5FbGVtZW50W10ge1xuICBjb25zdCBoZWFkID0gWzxtZXRhIGNoYXJTZXQ9XCJ1dGYtOFwiIGtleT1cImNoYXJzZXRcIiAvPl1cbiAgaWYgKCFpbkFtcE1vZGUpIHtcbiAgICBoZWFkLnB1c2goXG4gICAgICA8bWV0YSBuYW1lPVwidmlld3BvcnRcIiBjb250ZW50PVwid2lkdGg9ZGV2aWNlLXdpZHRoXCIga2V5PVwidmlld3BvcnRcIiAvPlxuICAgIClcbiAgfVxuICByZXR1cm4gaGVhZFxufVxuXG5mdW5jdGlvbiBvbmx5UmVhY3RFbGVtZW50KFxuICBsaXN0OiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gIGNoaWxkOiBSZWFjdC5SZWFjdEVsZW1lbnQgfCBudW1iZXIgfCBzdHJpbmdcbik6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PiB7XG4gIC8vIFJlYWN0IGNoaWxkcmVuIGNhbiBiZSBcInN0cmluZ1wiIG9yIFwibnVtYmVyXCIgaW4gdGhpcyBjYXNlIHdlIGlnbm9yZSB0aGVtIGZvciBiYWNrd2FyZHMgY29tcGF0XG4gIGlmICh0eXBlb2YgY2hpbGQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBjaGlsZCA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbGlzdFxuICB9XG4gIC8vIEFkZHMgc3VwcG9ydCBmb3IgUmVhY3QuRnJhZ21lbnRcbiAgaWYgKGNoaWxkLnR5cGUgPT09IFJlYWN0LkZyYWdtZW50KSB7XG4gICAgcmV0dXJuIGxpc3QuY29uY2F0KFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBAdHlwZXMvcmVhY3QgZG9lcyBub3QgcmVtb3ZlIGZyYWdtZW50cyBidXQgdGhpcyBjb3VsZCBhbHNvIHJldHVybiBSZWFjdFBvcnRhbFtdXG4gICAgICBSZWFjdC5DaGlsZHJlbi50b0FycmF5KGNoaWxkLnByb3BzLmNoaWxkcmVuKS5yZWR1Y2UoXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQHR5cGVzL3JlYWN0IGRvZXMgbm90IHJlbW92ZSBmcmFnbWVudHMgYnV0IHRoaXMgY291bGQgYWxzbyByZXR1cm4gUmVhY3RQb3J0YWxbXVxuICAgICAgICAoXG4gICAgICAgICAgZnJhZ21lbnRMaXN0OiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gICAgICAgICAgZnJhZ21lbnRDaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVtYmVyIHwgc3RyaW5nXG4gICAgICAgICk6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PiA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICAgICB0eXBlb2YgZnJhZ21lbnRDaGlsZCA9PT0gJ251bWJlcidcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3RcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZyYWdtZW50TGlzdC5jb25jYXQoZnJhZ21lbnRDaGlsZClcbiAgICAgICAgfSxcbiAgICAgICAgW11cbiAgICAgIClcbiAgICApXG4gIH1cbiAgcmV0dXJuIGxpc3QuY29uY2F0KGNoaWxkKVxufVxuXG5jb25zdCBNRVRBVFlQRVMgPSBbJ25hbWUnLCAnaHR0cEVxdWl2JywgJ2NoYXJTZXQnLCAnaXRlbVByb3AnXVxuXG4vKlxuIHJldHVybnMgYSBmdW5jdGlvbiBmb3IgZmlsdGVyaW5nIGhlYWQgY2hpbGQgZWxlbWVudHNcbiB3aGljaCBzaG91bGRuJ3QgYmUgZHVwbGljYXRlZCwgbGlrZSA8dGl0bGUvPlxuIEFsc28gYWRkcyBzdXBwb3J0IGZvciBkZWR1cGxpY2F0ZWQgYGtleWAgcHJvcGVydGllc1xuKi9cbmZ1bmN0aW9uIHVuaXF1ZSgpIHtcbiAgY29uc3Qga2V5cyA9IG5ldyBTZXQoKVxuICBjb25zdCB0YWdzID0gbmV3IFNldCgpXG4gIGNvbnN0IG1ldGFUeXBlcyA9IG5ldyBTZXQoKVxuICBjb25zdCBtZXRhQ2F0ZWdvcmllczogeyBbbWV0YXR5cGU6IHN0cmluZ106IFNldDxzdHJpbmc+IH0gPSB7fVxuXG4gIHJldHVybiAoaDogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4pID0+IHtcbiAgICBsZXQgaXNVbmlxdWUgPSB0cnVlXG4gICAgbGV0IGhhc0tleSA9IGZhbHNlXG5cbiAgICBpZiAoaC5rZXkgJiYgdHlwZW9mIGgua2V5ICE9PSAnbnVtYmVyJyAmJiBoLmtleS5pbmRleE9mKCckJykgPiAwKSB7XG4gICAgICBoYXNLZXkgPSB0cnVlXG4gICAgICBjb25zdCBrZXkgPSBoLmtleS5zbGljZShoLmtleS5pbmRleE9mKCckJykgKyAxKVxuICAgICAgaWYgKGtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAga2V5cy5hZGQoa2V5KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkZWZhdWx0LWNhc2VcbiAgICBzd2l0Y2ggKGgudHlwZSkge1xuICAgICAgY2FzZSAndGl0bGUnOlxuICAgICAgY2FzZSAnYmFzZSc6XG4gICAgICAgIGlmICh0YWdzLmhhcyhoLnR5cGUpKSB7XG4gICAgICAgICAgaXNVbmlxdWUgPSBmYWxzZVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRhZ3MuYWRkKGgudHlwZSlcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAnbWV0YSc6XG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBNRVRBVFlQRVMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBtZXRhdHlwZSA9IE1FVEFUWVBFU1tpXVxuICAgICAgICAgIGlmICghaC5wcm9wcy5oYXNPd25Qcm9wZXJ0eShtZXRhdHlwZSkpIGNvbnRpbnVlXG5cbiAgICAgICAgICBpZiAobWV0YXR5cGUgPT09ICdjaGFyU2V0Jykge1xuICAgICAgICAgICAgaWYgKG1ldGFUeXBlcy5oYXMobWV0YXR5cGUpKSB7XG4gICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG1ldGFUeXBlcy5hZGQobWV0YXR5cGUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gaC5wcm9wc1ttZXRhdHlwZV1cbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3JpZXMgPSBtZXRhQ2F0ZWdvcmllc1ttZXRhdHlwZV0gfHwgbmV3IFNldCgpXG4gICAgICAgICAgICBpZiAoKG1ldGF0eXBlICE9PSAnbmFtZScgfHwgIWhhc0tleSkgJiYgY2F0ZWdvcmllcy5oYXMoY2F0ZWdvcnkpKSB7XG4gICAgICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNhdGVnb3JpZXMuYWRkKGNhdGVnb3J5KVxuICAgICAgICAgICAgICBtZXRhQ2F0ZWdvcmllc1ttZXRhdHlwZV0gPSBjYXRlZ29yaWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgcmV0dXJuIGlzVW5pcXVlXG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGhlYWRDaGlsZHJlbkVsZW1lbnRzIExpc3Qgb2YgY2hpbGRyZW4gb2YgPEhlYWQ+XG4gKi9cbmZ1bmN0aW9uIHJlZHVjZUNvbXBvbmVudHM8VCBleHRlbmRzIHt9ICYgV2l0aEluQW1wTW9kZT4oXG4gIGhlYWRDaGlsZHJlbkVsZW1lbnRzOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4sXG4gIHByb3BzOiBUXG4pIHtcbiAgY29uc3QgeyBpbkFtcE1vZGUgfSA9IHByb3BzXG4gIHJldHVybiBoZWFkQ2hpbGRyZW5FbGVtZW50c1xuICAgIC5yZWR1Y2Uob25seVJlYWN0RWxlbWVudCwgW10pXG4gICAgLnJldmVyc2UoKVxuICAgIC5jb25jYXQoZGVmYXVsdEhlYWQoaW5BbXBNb2RlKS5yZXZlcnNlKCkpXG4gICAgLmZpbHRlcih1bmlxdWUoKSlcbiAgICAucmV2ZXJzZSgpXG4gICAgLm1hcCgoYzogUmVhY3QuUmVhY3RFbGVtZW50PGFueT4sIGk6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gYy5rZXkgfHwgaVxuICAgICAgaWYgKFxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50JyAmJlxuICAgICAgICBwcm9jZXNzLmVudi5fX05FWFRfT1BUSU1JWkVfRk9OVFMgJiZcbiAgICAgICAgIWluQW1wTW9kZVxuICAgICAgKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjLnR5cGUgPT09ICdsaW5rJyAmJlxuICAgICAgICAgIGMucHJvcHNbJ2hyZWYnXSAmJlxuICAgICAgICAgIC8vIFRPRE8ocHJhdGVla2JoQCk6IFJlcGxhY2UgdGhpcyB3aXRoIGNvbnN0IGZyb20gYGNvbnN0YW50c2Agd2hlbiB0aGUgdHJlZSBzaGFraW5nIHdvcmtzLlxuICAgICAgICAgIFsnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MnLCAnaHR0cHM6Ly91c2UudHlwZWtpdC5uZXQvJ10uc29tZShcbiAgICAgICAgICAgICh1cmwpID0+IGMucHJvcHNbJ2hyZWYnXS5zdGFydHNXaXRoKHVybClcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IG5ld1Byb3BzID0geyAuLi4oYy5wcm9wcyB8fCB7fSkgfVxuICAgICAgICAgIG5ld1Byb3BzWydkYXRhLWhyZWYnXSA9IG5ld1Byb3BzWydocmVmJ11cbiAgICAgICAgICBuZXdQcm9wc1snaHJlZiddID0gdW5kZWZpbmVkXG5cbiAgICAgICAgICAvLyBBZGQgdGhpcyBhdHRyaWJ1dGUgdG8gbWFrZSBpdCBlYXN5IHRvIGlkZW50aWZ5IG9wdGltaXplZCB0YWdzXG4gICAgICAgICAgbmV3UHJvcHNbJ2RhdGEtb3B0aW1pemVkLWZvbnRzJ10gPSB0cnVlXG5cbiAgICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGMsIG5ld1Byb3BzKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgLy8gb21pdCBKU09OLUxEIHN0cnVjdHVyZWQgZGF0YSBzbmlwcGV0cyBmcm9tIHRoZSB3YXJuaW5nXG4gICAgICAgIGlmIChjLnR5cGUgPT09ICdzY3JpcHQnICYmIGMucHJvcHNbJ3R5cGUnXSAhPT0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nKSB7XG4gICAgICAgICAgY29uc3Qgc3JjTWVzc2FnZSA9IGMucHJvcHNbJ3NyYyddXG4gICAgICAgICAgICA/IGA8c2NyaXB0PiB0YWcgd2l0aCBzcmM9XCIke2MucHJvcHNbJ3NyYyddfVwiYFxuICAgICAgICAgICAgOiBgaW5saW5lIDxzY3JpcHQ+YFxuICAgICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgYERvIG5vdCBhZGQgPHNjcmlwdD4gdGFncyB1c2luZyBuZXh0L2hlYWQgKHNlZSAke3NyY01lc3NhZ2V9KS4gVXNlIG5leHQvc2NyaXB0IGluc3RlYWQuIFxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tc2NyaXB0LXRhZ3MtaW4taGVhZC1jb21wb25lbnRgXG4gICAgICAgICAgKVxuICAgICAgICB9IGVsc2UgaWYgKGMudHlwZSA9PT0gJ2xpbmsnICYmIGMucHJvcHNbJ3JlbCddID09PSAnc3R5bGVzaGVldCcpIHtcbiAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgIGBEbyBub3QgYWRkIHN0eWxlc2hlZXRzIHVzaW5nIG5leHQvaGVhZCAoc2VlIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIj4gdGFnIHdpdGggaHJlZj1cIiR7Yy5wcm9wc1snaHJlZiddfVwiKS4gVXNlIERvY3VtZW50IGluc3RlYWQuIFxcblNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbm8tc3R5bGVzaGVldHMtaW4taGVhZC1jb21wb25lbnRgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGMsIHsga2V5IH0pXG4gICAgfSlcbn1cblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpbmplY3RzIGVsZW1lbnRzIHRvIGA8aGVhZD5gIG9mIHlvdXIgcGFnZS5cbiAqIFRvIGF2b2lkIGR1cGxpY2F0ZWQgYHRhZ3NgIGluIGA8aGVhZD5gIHlvdSBjYW4gdXNlIHRoZSBga2V5YCBwcm9wZXJ0eSwgd2hpY2ggd2lsbCBtYWtlIHN1cmUgZXZlcnkgdGFnIGlzIG9ubHkgcmVuZGVyZWQgb25jZS5cbiAqL1xuZnVuY3Rpb24gSGVhZCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IGFtcFN0YXRlID0gdXNlQ29udGV4dChBbXBTdGF0ZUNvbnRleHQpXG4gIGNvbnN0IGhlYWRNYW5hZ2VyID0gdXNlQ29udGV4dChIZWFkTWFuYWdlckNvbnRleHQpXG4gIHJldHVybiAoXG4gICAgPEVmZmVjdFxuICAgICAgcmVkdWNlQ29tcG9uZW50c1RvU3RhdGU9e3JlZHVjZUNvbXBvbmVudHN9XG4gICAgICBoZWFkTWFuYWdlcj17aGVhZE1hbmFnZXJ9XG4gICAgICBpbkFtcE1vZGU9e2lzSW5BbXBNb2RlKGFtcFN0YXRlKX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9FZmZlY3Q+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgSGVhZFxuIl0sIm5hbWVzIjpbImRlZmF1bHRIZWFkIiwiaW5BbXBNb2RlIiwiaGVhZCIsIm1ldGEiLCJjaGFyU2V0IiwicHVzaCIsIm5hbWUiLCJjb250ZW50Iiwib25seVJlYWN0RWxlbWVudCIsImxpc3QiLCJjaGlsZCIsInR5cGUiLCJSZWFjdCIsIkZyYWdtZW50IiwiY29uY2F0IiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwicHJvcHMiLCJjaGlsZHJlbiIsInJlZHVjZSIsImZyYWdtZW50TGlzdCIsImZyYWdtZW50Q2hpbGQiLCJNRVRBVFlQRVMiLCJ1bmlxdWUiLCJrZXlzIiwiU2V0IiwidGFncyIsIm1ldGFUeXBlcyIsIm1ldGFDYXRlZ29yaWVzIiwiaCIsImlzVW5pcXVlIiwiaGFzS2V5Iiwia2V5IiwiaW5kZXhPZiIsInNsaWNlIiwiaGFzIiwiYWRkIiwiaSIsImxlbiIsImxlbmd0aCIsIm1ldGF0eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYXRlZ29yeSIsImNhdGVnb3JpZXMiLCJyZWR1Y2VDb21wb25lbnRzIiwiaGVhZENoaWxkcmVuRWxlbWVudHMiLCJyZXZlcnNlIiwiZmlsdGVyIiwibWFwIiwiYyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIl9fTkVYVF9PUFRJTUlaRV9GT05UUyIsInNvbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwibmV3UHJvcHMiLCJ1bmRlZmluZWQiLCJjbG9uZUVsZW1lbnQiLCJzcmNNZXNzYWdlIiwid2Fybk9uY2UiLCJIZWFkIiwiYW1wU3RhdGUiLCJ1c2VDb250ZXh0IiwiQW1wU3RhdGVDb250ZXh0IiwiaGVhZE1hbmFnZXIiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJFZmZlY3QiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImlzSW5BbXBNb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n")); /***/ }), diff --git a/.next/static/chunks/fallback/webpack.js b/.next/static/chunks/fallback/webpack.js index edad056e..4f807910 100644 --- a/.next/static/chunks/fallback/webpack.js +++ b/.next/static/chunks/fallback/webpack.js @@ -117,7 +117,7 @@ /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("423737f34be5c1f0") +/******/ __webpack_require__.h = () => ("04904af1bd77f32c") /******/ })(); /******/ /******/ /* webpack/runtime/global */ diff --git a/.next/static/chunks/main.js b/.next/static/chunks/main.js new file mode 100644 index 00000000..185077ff --- /dev/null +++ b/.next/static/chunks/main.js @@ -0,0 +1,2100 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["main"],{ + +/***/ "./node_modules/next/dist/build/deployment-id.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/build/deployment-id.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getDeploymentIdQueryOrEmptyString\", ({\n enumerable: true,\n get: function() {\n return getDeploymentIdQueryOrEmptyString;\n }\n}));\nfunction getDeploymentIdQueryOrEmptyString() {\n if (false) {}\n return '';\n}\n\n//# sourceMappingURL=deployment-id.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL2RlcGxveW1lbnQtaWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixxRUFBb0U7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBLFFBQVEsS0FBOEIsRUFBRSxFQUVuQztBQUNMO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL2RlcGxveW1lbnQtaWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJnZXREZXBsb3ltZW50SWRRdWVyeU9yRW1wdHlTdHJpbmdcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGdldERlcGxveW1lbnRJZFF1ZXJ5T3JFbXB0eVN0cmluZztcbiAgICB9XG59KTtcbmZ1bmN0aW9uIGdldERlcGxveW1lbnRJZFF1ZXJ5T3JFbXB0eVN0cmluZygpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTkVYVF9ERVBMT1lNRU5UX0lEKSB7XG4gICAgICAgIHJldHVybiBgP2RwbD0ke3Byb2Nlc3MuZW52Lk5FWFRfREVQTE9ZTUVOVF9JRH1gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlcGxveW1lbnQtaWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/deployment-id.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/build/polyfills/polyfill-module.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/build/polyfills/polyfill-module.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + +eval(__webpack_require__.ts("\"trimStart\"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),\"trimEnd\"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),\"description\"in Symbol.prototype||Object.defineProperty(Symbol.prototype,\"description\",{configurable:!0,get:function(){var t=/\\((.*)\\)/.exec(this.toString());return t?t[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(t,r){return r=this.concat.apply([],this),t>1&&r.some(Array.isArray)?r.flat(t-1):r},Array.prototype.flatMap=function(t,r){return this.map(t,r).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(t){if(\"function\"!=typeof t)return this.then(t,t);var r=this.constructor||Promise;return this.then(function(n){return r.resolve(t()).then(function(){return n})},function(n){return r.resolve(t()).then(function(){throw n})})}),Object.fromEntries||(Object.fromEntries=function(t){return Array.from(t).reduce(function(t,r){return t[r[0]]=r[1],t},{})}),Array.prototype.at||(Array.prototype.at=function(t){var r=Math.trunc(t)||0;if(r<0&&(r+=this.length),!(r<0||r>=this.length))return this[r]}),Object.hasOwn||(Object.hasOwn=function(t,r){if(null==t)throw new TypeError(\"Cannot convert undefined or null to object\");return Object.prototype.hasOwnProperty.call(Object(t),r)}),\"canParse\"in URL||(URL.canParse=function(t,r){try{return!!new URL(t,r)}catch(t){return!1}});\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9wb2x5ZmlsbC1tb2R1bGUuanMiLCJtYXBwaW5ncyI6IkFBQUEsbVFBQW1RLCtCQUErQix1Q0FBdUMsc0JBQXNCLDREQUE0RCw2RUFBNkUsdUNBQXVDLDRCQUE0QixvRUFBb0UsOENBQThDLGdDQUFnQyw2QkFBNkIsc0NBQXNDLFNBQVMsRUFBRSxhQUFhLHNDQUFzQyxRQUFRLEVBQUUsRUFBRSxzREFBc0QsMENBQTBDLHNCQUFzQixHQUFHLEVBQUUsc0RBQXNELHVCQUF1QiwrREFBK0QsOENBQThDLDZFQUE2RSx5REFBeUQsZ0RBQWdELElBQUkscUJBQXFCLFNBQVMsVUFBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvcG9seWZpbGxzL3BvbHlmaWxsLW1vZHVsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInRyaW1TdGFydFwiaW4gU3RyaW5nLnByb3RvdHlwZXx8KFN0cmluZy5wcm90b3R5cGUudHJpbVN0YXJ0PVN0cmluZy5wcm90b3R5cGUudHJpbUxlZnQpLFwidHJpbUVuZFwiaW4gU3RyaW5nLnByb3RvdHlwZXx8KFN0cmluZy5wcm90b3R5cGUudHJpbUVuZD1TdHJpbmcucHJvdG90eXBlLnRyaW1SaWdodCksXCJkZXNjcmlwdGlvblwiaW4gU3ltYm9sLnByb3RvdHlwZXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KFN5bWJvbC5wcm90b3R5cGUsXCJkZXNjcmlwdGlvblwiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9L1xcKCguKilcXCkvLmV4ZWModGhpcy50b1N0cmluZygpKTtyZXR1cm4gdD90WzFdOnZvaWQgMH19KSxBcnJheS5wcm90b3R5cGUuZmxhdHx8KEFycmF5LnByb3RvdHlwZS5mbGF0PWZ1bmN0aW9uKHQscil7cmV0dXJuIHI9dGhpcy5jb25jYXQuYXBwbHkoW10sdGhpcyksdD4xJiZyLnNvbWUoQXJyYXkuaXNBcnJheSk/ci5mbGF0KHQtMSk6cn0sQXJyYXkucHJvdG90eXBlLmZsYXRNYXA9ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5tYXAodCxyKS5mbGF0KCl9KSxQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5fHwoUHJvbWlzZS5wcm90b3R5cGUuZmluYWxseT1mdW5jdGlvbih0KXtpZihcImZ1bmN0aW9uXCIhPXR5cGVvZiB0KXJldHVybiB0aGlzLnRoZW4odCx0KTt2YXIgcj10aGlzLmNvbnN0cnVjdG9yfHxQcm9taXNlO3JldHVybiB0aGlzLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIHIucmVzb2x2ZSh0KCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbn0pfSxmdW5jdGlvbihuKXtyZXR1cm4gci5yZXNvbHZlKHQoKSkudGhlbihmdW5jdGlvbigpe3Rocm93IG59KX0pfSksT2JqZWN0LmZyb21FbnRyaWVzfHwoT2JqZWN0LmZyb21FbnRyaWVzPWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5mcm9tKHQpLnJlZHVjZShmdW5jdGlvbih0LHIpe3JldHVybiB0W3JbMF1dPXJbMV0sdH0se30pfSksQXJyYXkucHJvdG90eXBlLmF0fHwoQXJyYXkucHJvdG90eXBlLmF0PWZ1bmN0aW9uKHQpe3ZhciByPU1hdGgudHJ1bmModCl8fDA7aWYocjwwJiYocis9dGhpcy5sZW5ndGgpLCEocjwwfHxyPj10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXNbcl19KSxPYmplY3QuaGFzT3dufHwoT2JqZWN0Lmhhc093bj1mdW5jdGlvbih0LHIpe2lmKG51bGw9PXQpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjb252ZXJ0IHVuZGVmaW5lZCBvciBudWxsIHRvIG9iamVjdFwiKTtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE9iamVjdCh0KSxyKX0pLFwiY2FuUGFyc2VcImluIFVSTHx8KFVSTC5jYW5QYXJzZT1mdW5jdGlvbih0LHIpe3RyeXtyZXR1cm4hIW5ldyBVUkwodCxyKX1jYXRjaCh0KXtyZXR1cm4hMX19KTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/polyfills/polyfill-module.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/build/polyfills/process.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/build/polyfills/process.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _global_process, _global_process1;\nmodule.exports = ((_global_process = __webpack_require__.g.process) == null ? void 0 : _global_process.env) && typeof ((_global_process1 = __webpack_require__.g.process) == null ? void 0 : _global_process1.env) === 'object' ? __webpack_require__.g.process : __webpack_require__(/*! next/dist/compiled/process */ \"./node_modules/next/dist/compiled/process/browser.js\");\n\n//# sourceMappingURL=process.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3BvbHlmaWxscy9wcm9jZXNzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSxxQ0FBcUMscUJBQU0saUZBQWlGLHFCQUFNLGtFQUFrRSxxQkFBTSxXQUFXLG1CQUFPLENBQUMsd0ZBQTRCOztBQUV6UCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvcG9seWZpbGxzL3Byb2Nlc3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX2dsb2JhbF9wcm9jZXNzLCBfZ2xvYmFsX3Byb2Nlc3MxO1xubW9kdWxlLmV4cG9ydHMgPSAoKF9nbG9iYWxfcHJvY2VzcyA9IGdsb2JhbC5wcm9jZXNzKSA9PSBudWxsID8gdm9pZCAwIDogX2dsb2JhbF9wcm9jZXNzLmVudikgJiYgdHlwZW9mICgoX2dsb2JhbF9wcm9jZXNzMSA9IGdsb2JhbC5wcm9jZXNzKSA9PSBudWxsID8gdm9pZCAwIDogX2dsb2JhbF9wcm9jZXNzMS5lbnYpID09PSAnb2JqZWN0JyA/IGdsb2JhbC5wcm9jZXNzIDogcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL3Byb2Nlc3MnKTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJvY2Vzcy5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/polyfills/process.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/add-base-path.js": +/*!********************************************************!*\ + !*** ./node_modules/next/dist/client/add-base-path.js ***! + \********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addBasePath\", ({\n enumerable: true,\n get: function() {\n return addBasePath;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ../shared/lib/router/utils/add-path-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || '';\nfunction addBasePath(path, required) {\n return (0, _normalizetrailingslash.normalizePathTrailingSlash)( false ? 0 : (0, _addpathprefix.addPathPrefix)(path, basePath));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-base-path.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtYmFzZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBS2dCQTs7O2VBQUFBOzs7MkNBTGM7b0RBQ2E7QUFFM0MsTUFBTUMsV0FBWUMsTUFBa0MsSUFBZTtBQUU1RCxTQUFTRixZQUFZSyxJQUFZLEVBQUVDLFFBQWtCO0lBQzFELE9BQU9DLENBQUFBLEdBQUFBLHdCQUFBQSwwQkFBQUEsRUFDTEwsTUFBdURJLEdBQ25ERCxDQUFJQSxHQUNKSSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjSixNQUFNSjtBQUU1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvc3JjL2NsaWVudC9hZGQtYmFzZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtcGF0aC1wcmVmaXgnXG5pbXBvcnQgeyBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoJ1xuXG5jb25zdCBiYXNlUGF0aCA9IChwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIGFzIHN0cmluZykgfHwgJydcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEJhc2VQYXRoKHBhdGg6IHN0cmluZywgcmVxdWlyZWQ/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgcmV0dXJuIG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKFxuICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9NQU5VQUxfQ0xJRU5UX0JBU0VfUEFUSCAmJiAhcmVxdWlyZWRcbiAgICAgID8gcGF0aFxuICAgICAgOiBhZGRQYXRoUHJlZml4KHBhdGgsIGJhc2VQYXRoKVxuICApXG59XG4iXSwibmFtZXMiOlsiYWRkQmFzZVBhdGgiLCJiYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwicGF0aCIsInJlcXVpcmVkIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJfX05FWFRfTUFOVUFMX0NMSUVOVF9CQVNFX1BBVEgiLCJhZGRQYXRoUHJlZml4Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/add-base-path.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/add-locale.js": +/*!*****************************************************!*\ + !*** ./node_modules/next/dist/client/add-locale.js ***! + \*****************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst addLocale = function(path) {\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 if (false) {}\n return path;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-locale.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9hZGQtbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7NkNBR2FBOzs7ZUFBQUE7OztvREFGOEI7QUFFcEMsTUFBTUEsWUFBdUIsU0FBQ0MsSUFBQUE7cUNBQVNDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLElBQUFBLE9BQUFBLElBQUFBLElBQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO1FBQUFBLElBQUFBLENBQUFBLE9BQUFBLEVBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztJQUM1QyxJQUFJQyxLQUErQixFQUFFLEVBSXBDO0lBQ0QsT0FBT0Y7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvc3JjL2NsaWVudC9hZGQtbG9jYWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgYWRkTG9jYWxlIGFzIEZuIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLWxvY2FsZSdcbmltcG9ydCB7IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2gnXG5cbmV4cG9ydCBjb25zdCBhZGRMb2NhbGU6IHR5cGVvZiBGbiA9IChwYXRoLCAuLi5hcmdzKSA9PiB7XG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKFxuICAgICAgcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYWRkLWxvY2FsZScpLmFkZExvY2FsZShwYXRoLCAuLi5hcmdzKVxuICAgIClcbiAgfVxuICByZXR1cm4gcGF0aFxufVxuIl0sIm5hbWVzIjpbImFkZExvY2FsZSIsInBhdGgiLCJhcmdzIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsInJlcXVpcmUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/add-locale.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js ***! + \***********************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n HTTPAccessErrorStatus: function() {\n return HTTPAccessErrorStatus;\n },\n HTTP_ERROR_FALLBACK_ERROR_CODE: function() {\n return HTTP_ERROR_FALLBACK_ERROR_CODE;\n },\n getAccessFallbackErrorTypeByStatus: function() {\n return getAccessFallbackErrorTypeByStatus;\n },\n getAccessFallbackHTTPStatus: function() {\n return getAccessFallbackHTTPStatus;\n },\n isHTTPAccessFallbackError: function() {\n return isHTTPAccessFallbackError;\n }\n});\nconst HTTPAccessErrorStatus = {\n NOT_FOUND: 404,\n FORBIDDEN: 403,\n UNAUTHORIZED: 401\n};\nconst ALLOWED_CODES = new Set(Object.values(HTTPAccessErrorStatus));\nconst HTTP_ERROR_FALLBACK_ERROR_CODE = 'NEXT_HTTP_ERROR_FALLBACK';\nfunction isHTTPAccessFallbackError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const [prefix, httpStatus] = error.digest.split(';');\n return prefix === HTTP_ERROR_FALLBACK_ERROR_CODE && ALLOWED_CODES.has(Number(httpStatus));\n}\nfunction getAccessFallbackHTTPStatus(error) {\n const httpStatus = error.digest.split(';')[1];\n return Number(httpStatus);\n}\nfunction getAccessFallbackErrorTypeByStatus(status) {\n switch(status){\n case 401:\n return 'unauthorized';\n case 403:\n return 'forbidden';\n case 404:\n return 'not-found';\n default:\n return;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=http-access-fallback.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2h0dHAtYWNjZXNzLWZhbGxiYWNrL2h0dHAtYWNjZXNzLWZhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxxQkFBcUI7ZUFBckJBOztJQVFBQyw4QkFBOEI7ZUFBOUJBOztJQXVDR0Msa0NBQWtDO2VBQWxDQTs7SUFQQUMsMkJBQTJCO2VBQTNCQTs7SUFuQkFDLHlCQUF5QjtlQUF6QkE7OztBQXJCVCxNQUFNSix3QkFBd0I7SUFDbkNLLFdBQVc7SUFDWEMsV0FBVztJQUNYQyxjQUFjO0FBQ2hCO0FBRUEsTUFBTUMsZ0JBQWdCLElBQUlDLElBQUlDLE9BQU9DLE1BQU0sQ0FBQ1g7QUFFckMsTUFBTUMsaUNBQWlDO0FBYXZDLFNBQVNHLDBCQUNkUSxLQUFjO0lBRWQsSUFDRSxPQUFPQSxVQUFVLFlBQ2pCQSxVQUFVLFFBQ1YsQ0FBRSxhQUFZQSxLQUFBQSxDQUFJLElBQ2xCLE9BQU9BLE1BQU1DLE1BQU0sS0FBSyxVQUN4QjtRQUNBLE9BQU87SUFDVDtJQUNBLE1BQU0sQ0FBQ0MsUUFBUUMsV0FBVyxHQUFHSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUVoRCxPQUNFRixXQUFXYixrQ0FDWE8sY0FBY1MsR0FBRyxDQUFDQyxPQUFPSDtBQUU3QjtBQUVPLFNBQVNaLDRCQUNkUyxLQUE4QjtJQUU5QixNQUFNRyxhQUFhSCxNQUFNQyxNQUFNLENBQUNHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtJQUM3QyxPQUFPRSxPQUFPSDtBQUNoQjtBQUVPLFNBQVNiLG1DQUNkaUIsTUFBYztJQUVkLE9BQVFBO1FBQ04sS0FBSztZQUNILE9BQU87UUFDVCxLQUFLO1lBQ0gsT0FBTztRQUNULEtBQUs7WUFDSCxPQUFPO1FBQ1Q7WUFDRTtJQUNKO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSFRUUEFjY2Vzc0Vycm9yU3RhdHVzID0ge1xuICBOT1RfRk9VTkQ6IDQwNCxcbiAgRk9SQklEREVOOiA0MDMsXG4gIFVOQVVUSE9SSVpFRDogNDAxLFxufVxuXG5jb25zdCBBTExPV0VEX0NPREVTID0gbmV3IFNldChPYmplY3QudmFsdWVzKEhUVFBBY2Nlc3NFcnJvclN0YXR1cykpXG5cbmV4cG9ydCBjb25zdCBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUgPSAnTkVYVF9IVFRQX0VSUk9SX0ZBTExCQUNLJ1xuXG5leHBvcnQgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciA9IEVycm9yICYge1xuICBkaWdlc3Q6IGAke3R5cGVvZiBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREV9OyR7c3RyaW5nfWBcbn1cblxuLyoqXG4gKiBDaGVja3MgYW4gZXJyb3IgdG8gZGV0ZXJtaW5lIGlmIGl0J3MgYW4gZXJyb3IgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgSFRUUCBuYXZpZ2F0aW9uIEFQSXMgYG5vdEZvdW5kKClgLCBgZm9yYmlkZGVuKClgIG9yIGB1bmF1dGhvcml6ZWQoKWAuXG4gKlxuICogQHBhcmFtIGVycm9yIHRoZSBlcnJvciB0aGF0IG1heSByZWZlcmVuY2UgYSBIVFRQIGFjY2VzcyBlcnJvclxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgZXJyb3IgaXMgYSBIVFRQIGFjY2VzcyBlcnJvclxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihcbiAgZXJyb3I6IHVua25vd25cbik6IGVycm9yIGlzIEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgaWYgKFxuICAgIHR5cGVvZiBlcnJvciAhPT0gJ29iamVjdCcgfHxcbiAgICBlcnJvciA9PT0gbnVsbCB8fFxuICAgICEoJ2RpZ2VzdCcgaW4gZXJyb3IpIHx8XG4gICAgdHlwZW9mIGVycm9yLmRpZ2VzdCAhPT0gJ3N0cmluZydcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgY29uc3QgW3ByZWZpeCwgaHR0cFN0YXR1c10gPSBlcnJvci5kaWdlc3Quc3BsaXQoJzsnKVxuXG4gIHJldHVybiAoXG4gICAgcHJlZml4ID09PSBIVFRQX0VSUk9SX0ZBTExCQUNLX0VSUk9SX0NPREUgJiZcbiAgICBBTExPV0VEX0NPREVTLmhhcyhOdW1iZXIoaHR0cFN0YXR1cykpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyhcbiAgZXJyb3I6IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yXG4pOiBudW1iZXIge1xuICBjb25zdCBodHRwU3RhdHVzID0gZXJyb3IuZGlnZXN0LnNwbGl0KCc7JylbMV1cbiAgcmV0dXJuIE51bWJlcihodHRwU3RhdHVzKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyhcbiAgc3RhdHVzOiBudW1iZXJcbik6ICdub3QtZm91bmQnIHwgJ2ZvcmJpZGRlbicgfCAndW5hdXRob3JpemVkJyB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgY2FzZSA0MDE6XG4gICAgICByZXR1cm4gJ3VuYXV0aG9yaXplZCdcbiAgICBjYXNlIDQwMzpcbiAgICAgIHJldHVybiAnZm9yYmlkZGVuJ1xuICAgIGNhc2UgNDA0OlxuICAgICAgcmV0dXJuICdub3QtZm91bmQnXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVyblxuICB9XG59XG4iXSwibmFtZXMiOlsiSFRUUEFjY2Vzc0Vycm9yU3RhdHVzIiwiSFRUUF9FUlJPUl9GQUxMQkFDS19FUlJPUl9DT0RFIiwiZ2V0QWNjZXNzRmFsbGJhY2tFcnJvclR5cGVCeVN0YXR1cyIsImdldEFjY2Vzc0ZhbGxiYWNrSFRUUFN0YXR1cyIsImlzSFRUUEFjY2Vzc0ZhbGxiYWNrRXJyb3IiLCJOT1RfRk9VTkQiLCJGT1JCSURERU4iLCJVTkFVVEhPUklaRUQiLCJBTExPV0VEX0NPREVTIiwiU2V0IiwiT2JqZWN0IiwidmFsdWVzIiwiZXJyb3IiLCJkaWdlc3QiLCJwcmVmaXgiLCJodHRwU3RhdHVzIiwic3BsaXQiLCJoYXMiLCJOdW1iZXIiLCJzdGF0dXMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/is-hydration-error.js": +/*!************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/is-hydration-error.js ***! + \************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getDefaultHydrationErrorMessage: function() {\n return getDefaultHydrationErrorMessage;\n },\n getHydrationErrorStackInfo: function() {\n return getHydrationErrorStackInfo;\n },\n isHydrationError: function() {\n return isHydrationError;\n },\n isReactHydrationErrorMessage: function() {\n return isReactHydrationErrorMessage;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nconst hydrationErrorRegex = /hydration failed|while hydrating|content does not match|did not match|HTML didn't match/i;\nconst reactUnifiedMismatchWarning = \"Hydration failed because the server rendered HTML didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used\";\nconst reactHydrationStartMessages = [\n reactUnifiedMismatchWarning,\n \"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\"\n];\nconst reactHydrationErrorDocLink = 'https://react.dev/link/hydration-mismatch';\nconst getDefaultHydrationErrorMessage = ()=>{\n return reactUnifiedMismatchWarning;\n};\nfunction isHydrationError(error) {\n return (0, _iserror.default)(error) && hydrationErrorRegex.test(error.message);\n}\nfunction isReactHydrationErrorMessage(msg) {\n return reactHydrationStartMessages.some((prefix)=>msg.startsWith(prefix));\n}\nfunction getHydrationErrorStackInfo(rawMessage) {\n rawMessage = rawMessage.replace(/^Error: /, '');\n if (!isReactHydrationErrorMessage(rawMessage)) {\n return {\n message: null\n };\n }\n const firstLineBreak = rawMessage.indexOf('\\n');\n rawMessage = rawMessage.slice(firstLineBreak + 1).trim();\n const [message, trailing] = rawMessage.split(\"\" + reactHydrationErrorDocLink);\n const trimmedMessage = message.trim();\n // React built-in hydration diff starts with a newline, checking if length is > 1\n if (trailing && trailing.length > 1) {\n const stacks = [];\n const diffs = [];\n trailing.split('\\n').forEach((line)=>{\n if (line.trim() === '') return;\n if (line.trim().startsWith('at ')) {\n stacks.push(line);\n } else {\n diffs.push(line);\n }\n });\n return {\n message: trimmedMessage,\n link: reactHydrationErrorDocLink,\n diff: diffs.join('\\n'),\n stack: stacks.join('\\n')\n };\n } else {\n return {\n message: trimmedMessage,\n link: reactHydrationErrorDocLink,\n stack: trailing\n };\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=is-hydration-error.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLWh5ZHJhdGlvbi1lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFjYUEsK0JBQStCO2VBQS9CQTs7SUFZR0MsMEJBQTBCO2VBQTFCQTs7SUFSQUMsZ0JBQWdCO2VBQWhCQTs7SUFJQUMsNEJBQTRCO2VBQTVCQTs7Ozs4RUF0Qkk7QUFFcEIsTUFBTUMsc0JBQ0o7QUFFRixNQUFNQyw4QkFBK0I7QUFFckMsTUFBTUMsOEJBQThCO0lBQ2xDRDtJQUNDO0NBQ0Y7QUFFRCxNQUFNRSw2QkFBNkI7QUFFNUIsTUFBTVAsa0NBQWtDO0lBQzdDLE9BQU9LO0FBQ1Q7QUFFTyxTQUFTSCxpQkFBaUJNLEtBQWM7SUFDN0MsT0FBT0MsQ0FBQUEsR0FBQUEsU0FBQUEsT0FBQUEsRUFBUUQsVUFBVUosb0JBQW9CTSxJQUFJLENBQUNGLE1BQU1HLE9BQU87QUFDakU7QUFFTyxTQUFTUiw2QkFBNkJTLEdBQVc7SUFDdEQsT0FBT04sNEJBQTRCTyxJQUFJLENBQUMsQ0FBQ0MsU0FBV0YsSUFBSUcsVUFBVSxDQUFDRDtBQUNyRTtBQUVPLFNBQVNiLDJCQUEyQmUsVUFBa0I7SUFNM0RBLGFBQWFBLFdBQVdDLE9BQU8sQ0FBQyxZQUFZO0lBQzVDLElBQUksQ0FBQ2QsNkJBQTZCYSxhQUFhO1FBQzdDLE9BQU87WUFBRUwsU0FBUztRQUFLO0lBQ3pCO0lBQ0EsTUFBTU8saUJBQWlCRixXQUFXRyxPQUFPLENBQUM7SUFDMUNILGFBQWFBLFdBQVdJLEtBQUssQ0FBQ0YsaUJBQWlCLEdBQUdHLElBQUk7SUFFdEQsTUFBTSxDQUFDVixTQUFTVyxTQUFTLEdBQUdOLFdBQVdPLEtBQUssQ0FBRSxLQUFFaEI7SUFDaEQsTUFBTWlCLGlCQUFpQmIsUUFBUVUsSUFBSTtJQUNuQyxpRkFBaUY7SUFDakYsSUFBSUMsWUFBWUEsU0FBU0csTUFBTSxHQUFHLEdBQUc7UUFDbkMsTUFBTUMsU0FBbUIsRUFBRTtRQUMzQixNQUFNQyxRQUFrQixFQUFFO1FBQzFCTCxTQUFTQyxLQUFLLENBQUMsTUFBTUssT0FBTyxDQUFDLENBQUNDO1lBQzVCLElBQUlBLEtBQUtSLElBQUksT0FBTyxJQUFJO1lBQ3hCLElBQUlRLEtBQUtSLElBQUksR0FBR04sVUFBVSxDQUFDLFFBQVE7Z0JBQ2pDVyxPQUFPSSxJQUFJLENBQUNEO1lBQ2QsT0FBTztnQkFDTEYsTUFBTUcsSUFBSSxDQUFDRDtZQUNiO1FBQ0Y7UUFFQSxPQUFPO1lBQ0xsQixTQUFTYTtZQUNUTyxNQUFNeEI7WUFDTnlCLE1BQU1MLE1BQU1NLElBQUksQ0FBQztZQUNqQkMsT0FBT1IsT0FBT08sSUFBSSxDQUFDO1FBQ3JCO0lBQ0YsT0FBTztRQUNMLE9BQU87WUFDTHRCLFNBQVNhO1lBQ1RPLE1BQU14QjtZQUNOMkIsT0FBT1o7UUFDVDtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9jbGllbnQvY29tcG9uZW50cy9pcy1oeWRyYXRpb24tZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzRXJyb3IgZnJvbSAnLi4vLi4vbGliL2lzLWVycm9yJ1xuXG5jb25zdCBoeWRyYXRpb25FcnJvclJlZ2V4ID1cbiAgL2h5ZHJhdGlvbiBmYWlsZWR8d2hpbGUgaHlkcmF0aW5nfGNvbnRlbnQgZG9lcyBub3QgbWF0Y2h8ZGlkIG5vdCBtYXRjaHxIVE1MIGRpZG4ndCBtYXRjaC9pXG5cbmNvbnN0IHJlYWN0VW5pZmllZE1pc21hdGNoV2FybmluZyA9IGBIeWRyYXRpb24gZmFpbGVkIGJlY2F1c2UgdGhlIHNlcnZlciByZW5kZXJlZCBIVE1MIGRpZG4ndCBtYXRjaCB0aGUgY2xpZW50LiBBcyBhIHJlc3VsdCB0aGlzIHRyZWUgd2lsbCBiZSByZWdlbmVyYXRlZCBvbiB0aGUgY2xpZW50LiBUaGlzIGNhbiBoYXBwZW4gaWYgYSBTU1ItZWQgQ2xpZW50IENvbXBvbmVudCB1c2VkYFxuXG5jb25zdCByZWFjdEh5ZHJhdGlvblN0YXJ0TWVzc2FnZXMgPSBbXG4gIHJlYWN0VW5pZmllZE1pc21hdGNoV2FybmluZyxcbiAgYEEgdHJlZSBoeWRyYXRlZCBidXQgc29tZSBhdHRyaWJ1dGVzIG9mIHRoZSBzZXJ2ZXIgcmVuZGVyZWQgSFRNTCBkaWRuJ3QgbWF0Y2ggdGhlIGNsaWVudCBwcm9wZXJ0aWVzLiBUaGlzIHdvbid0IGJlIHBhdGNoZWQgdXAuIFRoaXMgY2FuIGhhcHBlbiBpZiBhIFNTUi1lZCBDbGllbnQgQ29tcG9uZW50IHVzZWQ6YCxcbl1cblxuY29uc3QgcmVhY3RIeWRyYXRpb25FcnJvckRvY0xpbmsgPSAnaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9oeWRyYXRpb24tbWlzbWF0Y2gnXG5cbmV4cG9ydCBjb25zdCBnZXREZWZhdWx0SHlkcmF0aW9uRXJyb3JNZXNzYWdlID0gKCkgPT4ge1xuICByZXR1cm4gcmVhY3RVbmlmaWVkTWlzbWF0Y2hXYXJuaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0h5ZHJhdGlvbkVycm9yKGVycm9yOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiBpc0Vycm9yKGVycm9yKSAmJiBoeWRyYXRpb25FcnJvclJlZ2V4LnRlc3QoZXJyb3IubWVzc2FnZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVhY3RIeWRyYXRpb25FcnJvck1lc3NhZ2UobXNnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHJlYWN0SHlkcmF0aW9uU3RhcnRNZXNzYWdlcy5zb21lKChwcmVmaXgpID0+IG1zZy5zdGFydHNXaXRoKHByZWZpeCkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIeWRyYXRpb25FcnJvclN0YWNrSW5mbyhyYXdNZXNzYWdlOiBzdHJpbmcpOiB7XG4gIG1lc3NhZ2U6IHN0cmluZyB8IG51bGxcbiAgbGluaz86IHN0cmluZ1xuICBzdGFjaz86IHN0cmluZ1xuICBkaWZmPzogc3RyaW5nXG59IHtcbiAgcmF3TWVzc2FnZSA9IHJhd01lc3NhZ2UucmVwbGFjZSgvXkVycm9yOiAvLCAnJylcbiAgaWYgKCFpc1JlYWN0SHlkcmF0aW9uRXJyb3JNZXNzYWdlKHJhd01lc3NhZ2UpKSB7XG4gICAgcmV0dXJuIHsgbWVzc2FnZTogbnVsbCB9XG4gIH1cbiAgY29uc3QgZmlyc3RMaW5lQnJlYWsgPSByYXdNZXNzYWdlLmluZGV4T2YoJ1xcbicpXG4gIHJhd01lc3NhZ2UgPSByYXdNZXNzYWdlLnNsaWNlKGZpcnN0TGluZUJyZWFrICsgMSkudHJpbSgpXG5cbiAgY29uc3QgW21lc3NhZ2UsIHRyYWlsaW5nXSA9IHJhd01lc3NhZ2Uuc3BsaXQoYCR7cmVhY3RIeWRyYXRpb25FcnJvckRvY0xpbmt9YClcbiAgY29uc3QgdHJpbW1lZE1lc3NhZ2UgPSBtZXNzYWdlLnRyaW0oKVxuICAvLyBSZWFjdCBidWlsdC1pbiBoeWRyYXRpb24gZGlmZiBzdGFydHMgd2l0aCBhIG5ld2xpbmUsIGNoZWNraW5nIGlmIGxlbmd0aCBpcyA+IDFcbiAgaWYgKHRyYWlsaW5nICYmIHRyYWlsaW5nLmxlbmd0aCA+IDEpIHtcbiAgICBjb25zdCBzdGFja3M6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBkaWZmczogc3RyaW5nW10gPSBbXVxuICAgIHRyYWlsaW5nLnNwbGl0KCdcXG4nKS5mb3JFYWNoKChsaW5lKSA9PiB7XG4gICAgICBpZiAobGluZS50cmltKCkgPT09ICcnKSByZXR1cm5cbiAgICAgIGlmIChsaW5lLnRyaW0oKS5zdGFydHNXaXRoKCdhdCAnKSkge1xuICAgICAgICBzdGFja3MucHVzaChsaW5lKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGlmZnMucHVzaChsaW5lKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICByZXR1cm4ge1xuICAgICAgbWVzc2FnZTogdHJpbW1lZE1lc3NhZ2UsXG4gICAgICBsaW5rOiByZWFjdEh5ZHJhdGlvbkVycm9yRG9jTGluayxcbiAgICAgIGRpZmY6IGRpZmZzLmpvaW4oJ1xcbicpLFxuICAgICAgc3RhY2s6IHN0YWNrcy5qb2luKCdcXG4nKSxcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2U6IHRyaW1tZWRNZXNzYWdlLFxuICAgICAgbGluazogcmVhY3RIeWRyYXRpb25FcnJvckRvY0xpbmssXG4gICAgICBzdGFjazogdHJhaWxpbmcsIC8vIHdpdGhvdXQgaHlkcmF0aW9uIGRpZmZcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJnZXREZWZhdWx0SHlkcmF0aW9uRXJyb3JNZXNzYWdlIiwiZ2V0SHlkcmF0aW9uRXJyb3JTdGFja0luZm8iLCJpc0h5ZHJhdGlvbkVycm9yIiwiaXNSZWFjdEh5ZHJhdGlvbkVycm9yTWVzc2FnZSIsImh5ZHJhdGlvbkVycm9yUmVnZXgiLCJyZWFjdFVuaWZpZWRNaXNtYXRjaFdhcm5pbmciLCJyZWFjdEh5ZHJhdGlvblN0YXJ0TWVzc2FnZXMiLCJyZWFjdEh5ZHJhdGlvbkVycm9yRG9jTGluayIsImVycm9yIiwiaXNFcnJvciIsInRlc3QiLCJtZXNzYWdlIiwibXNnIiwic29tZSIsInByZWZpeCIsInN0YXJ0c1dpdGgiLCJyYXdNZXNzYWdlIiwicmVwbGFjZSIsImZpcnN0TGluZUJyZWFrIiwiaW5kZXhPZiIsInNsaWNlIiwidHJpbSIsInRyYWlsaW5nIiwic3BsaXQiLCJ0cmltbWVkTWVzc2FnZSIsImxlbmd0aCIsInN0YWNrcyIsImRpZmZzIiwiZm9yRWFjaCIsImxpbmUiLCJwdXNoIiwibGluayIsImRpZmYiLCJqb2luIiwic3RhY2siXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/is-hydration-error.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/is-next-router-error.js": +/*!**************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/is-next-router-error.js ***! + \**************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isNextRouterError\", ({\n enumerable: true,\n get: function() {\n return isNextRouterError;\n }\n}));\nconst _httpaccessfallback = __webpack_require__(/*! ./http-access-fallback/http-access-fallback */ \"./node_modules/next/dist/client/components/http-access-fallback/http-access-fallback.js\");\nconst _redirecterror = __webpack_require__(/*! ./redirect-error */ \"./node_modules/next/dist/client/components/redirect-error.js\");\nfunction isNextRouterError(error) {\n return (0, _redirecterror.isRedirectError)(error) || (0, _httpaccessfallback.isHTTPAccessFallbackError)(error);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=is-next-router-error.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2lzLW5leHQtcm91dGVyLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7cURBV2dCQTs7O2VBQUFBOzs7Z0RBUlQ7MkNBQzZDO0FBTzdDLFNBQVNBLGtCQUNkQyxLQUFjO0lBRWQsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsZUFBQUEsRUFBZ0JELFVBQVVFLENBQUFBLEdBQUFBLG9CQUFBQSx5QkFBQUEsRUFBMEJGO0FBQzdEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvY2xpZW50L2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbiAgdHlwZSBIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcixcbn0gZnJvbSAnLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9odHRwLWFjY2Vzcy1mYWxsYmFjaydcbmltcG9ydCB7IGlzUmVkaXJlY3RFcnJvciwgdHlwZSBSZWRpcmVjdEVycm9yIH0gZnJvbSAnLi9yZWRpcmVjdC1lcnJvcidcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgbmF2aWdhdGlvbiBzaWduYWwgZXJyb3IuIFRoZXNlIGVycm9ycyBhcmVcbiAqIHRocm93biBieSB1c2VyIGNvZGUgdG8gcGVyZm9ybSBuYXZpZ2F0aW9uIG9wZXJhdGlvbnMgYW5kIGludGVycnVwdCB0aGUgUmVhY3RcbiAqIHJlbmRlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTmV4dFJvdXRlckVycm9yKFxuICBlcnJvcjogdW5rbm93blxuKTogZXJyb3IgaXMgUmVkaXJlY3RFcnJvciB8IEhUVFBBY2Nlc3NGYWxsYmFja0Vycm9yIHtcbiAgcmV0dXJuIGlzUmVkaXJlY3RFcnJvcihlcnJvcikgfHwgaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvcihlcnJvcilcbn1cbiJdLCJuYW1lcyI6WyJpc05leHRSb3V0ZXJFcnJvciIsImVycm9yIiwiaXNSZWRpcmVjdEVycm9yIiwiaXNIVFRQQWNjZXNzRmFsbGJhY2tFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/is-next-router-error.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js": +/*!***************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js ***! + \***************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CodeFrame\", ({\n enumerable: true,\n get: function() {\n return CodeFrame;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _anser = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/anser */ \"./node_modules/next/dist/compiled/anser/index.js\"));\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"./node_modules/next/dist/compiled/strip-ansi/index.js\"));\nconst _stackframe = __webpack_require__(/*! ../../helpers/stack-frame */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js\");\nconst _useopenineditor = __webpack_require__(/*! ../../helpers/use-open-in-editor */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\");\nconst _hotlinkedtext = __webpack_require__(/*! ../hot-linked-text */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\");\nconst CodeFrame = function CodeFrame(param) {\n _s();\n let { stackFrame, codeFrame } = param;\n // Strip leading spaces out of the code frame:\n const formattedFrame = _react.useMemo({\n \"CodeFrame.useMemo[formattedFrame]\": ()=>{\n const lines = codeFrame.split(/\\r?\\n/g);\n // Find the minimum length of leading spaces after `|` in the code frame\n const miniLeadingSpacesLength = lines.map({\n \"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\": (line)=>/^>? +\\d+ +\\| [ ]+/.exec((0, _stripansi.default)(line)) === null ? null : /^>? +\\d+ +\\| ( *)/.exec((0, _stripansi.default)(line))\n }[\"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\"]).filter(Boolean).map({\n \"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\": (v)=>v.pop()\n }[\"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\"]).reduce({\n \"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\": (c, n)=>isNaN(c) ? n.length : Math.min(c, n.length)\n }[\"CodeFrame.useMemo[formattedFrame].miniLeadingSpacesLength\"], NaN);\n // When the minimum length of leading spaces is greater than 1, remove them\n // from the code frame to help the indentation looks better when there's a lot leading spaces.\n if (miniLeadingSpacesLength > 1) {\n return lines.map({\n \"CodeFrame.useMemo[formattedFrame]\": (line, a)=>~(a = line.indexOf('|')) ? line.substring(0, a) + line.substring(a).replace(\"^\\\\ {\" + miniLeadingSpacesLength + \"}\", '') : line\n }[\"CodeFrame.useMemo[formattedFrame]\"]).join('\\n');\n }\n return lines.join('\\n');\n }\n }[\"CodeFrame.useMemo[formattedFrame]\"], [\n codeFrame\n ]);\n const decoded = _react.useMemo({\n \"CodeFrame.useMemo[decoded]\": ()=>{\n return _anser.default.ansiToJson(formattedFrame, {\n json: true,\n use_classes: true,\n remove_empty: true\n });\n }\n }[\"CodeFrame.useMemo[decoded]\"], [\n formattedFrame\n ]);\n const open = (0, _useopenineditor.useOpenInEditor)({\n file: stackFrame.file,\n lineNumber: stackFrame.lineNumber,\n column: stackFrame.column\n });\n // TODO: make the caret absolute\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-codeframe\": true,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"p\", {\n role: \"link\",\n onClick: open,\n tabIndex: 1,\n title: \"Click to open in your editor\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n (0, _stackframe.getFrameSource)(stackFrame),\n \" @\",\n ' ',\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_hotlinkedtext.HotlinkedText, {\n text: stackFrame.methodName\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"polyline\", {\n points: \"15 3 21 3 21 9\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"line\", {\n x1: \"10\",\n y1: \"14\",\n x2: \"21\",\n y2: \"3\"\n })\n ]\n })\n ]\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"pre\", {\n children: decoded.map((entry, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n style: {\n color: entry.fg ? \"var(--color-\" + entry.fg + \")\" : undefined,\n ...entry.decoration === 'bold' ? {\n fontWeight: 800\n } : entry.decoration === 'italic' ? {\n fontStyle: 'italic'\n } : undefined\n },\n children: entry.content\n }, \"frame-\" + index))\n })\n ]\n });\n};\n_s(CodeFrame, \"4Gt+UceGaRqMOFv99GzJu8D2nx8=\");\n_c = CodeFrame;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=CodeFrame.js.map\nvar _c;\n$RefreshReg$(_c, \"CodeFrame\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL0NvZGVGcmFtZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7NkNBVWFBOzs7ZUFBQUE7Ozs7Ozs0RUFWSzs2RUFDSztnRkFFRDt3Q0FDUzs2Q0FDQzsyQ0FDRjtBQUl2QixrQkFBNEMsU0FBU0EsVUFBVSxLQUdyRTs7SUFIcUUsTUFDcEVDLFVBQVUsRUFDVkMsU0FBUyxFQUNWLEdBSHFFO0lBSXBFLDhDQUE4QztJQUM5QyxNQUFNQyxpQkFBaUJDLE9BQU1DLE9BQU87NkNBQVM7WUFDM0MsTUFBTUMsUUFBUUosVUFBVUssS0FBSyxDQUFDO1lBRTlCLHdFQUF3RTtZQUN4RSxNQUFNQywwQkFBMEJGLE1BQzdCRyxHQUFHOzZFQUFDLENBQUNDLE9BQ0osb0JBQW9CQyxJQUFJLENBQUNDLENBQUFBLEdBQUFBLFdBQUFBLE9BQUFBLEVBQVVGLFdBQVcsT0FDMUMsT0FDQSxvQkFBb0JDLElBQUksQ0FBQ0MsQ0FBQUEsR0FBQUEsV0FBQUEsT0FBQUEsRUFBVUY7NEVBRXhDRyxNQUFNLENBQUNDLFNBQ1BMLEdBQUc7NkVBQUMsQ0FBQ00sSUFBTUEsRUFBR0MsR0FBRzs0RUFDakJDLE1BQU07NkVBQUMsQ0FBQ0MsR0FBR0MsSUFBT0MsTUFBTUYsS0FBS0MsRUFBRUUsTUFBTSxHQUFHQyxLQUFLQyxHQUFHLENBQUNMLEdBQUdDLEVBQUVFLE1BQU07NEVBQUlHO1lBRW5FLDJFQUEyRTtZQUMzRSw4RkFBOEY7WUFDOUYsSUFBSWhCLDBCQUEwQixHQUFHO2dCQUMvQixPQUFPRixNQUNKRyxHQUFHO3lEQUFDLENBQUNDLE1BQU1lLElBQ1YsQ0FBRUEsQ0FBQUEsSUFBSWYsS0FBS2dCLE9BQU8sQ0FBQyxLQUFHLEdBQ2xCaEIsS0FBS2lCLFNBQVMsQ0FBQyxHQUFHRixLQUNsQmYsS0FBS2lCLFNBQVMsQ0FBQ0YsR0FBR0csT0FBTyxDQUFFLFVBQU9wQiwwQkFBd0IsS0FBSSxNQUM5REU7d0RBRUxtQixJQUFJLENBQUM7WUFDVjtZQUNBLE9BQU92QixNQUFNdUIsSUFBSSxDQUFDO1FBQ3BCOzRDQUFHO1FBQUMzQjtLQUFVO0lBRWQsTUFBTTRCLFVBQVUxQixPQUFNQyxPQUFPO3NDQUFDO1lBQzVCLE9BQU8wQixPQUFBQSxPQUFLLENBQUNDLFVBQVUsQ0FBQzdCLGdCQUFnQjtnQkFDdEM4QixNQUFNO2dCQUNOQyxhQUFhO2dCQUNiQyxjQUFjO1lBQ2hCO1FBQ0Y7cUNBQUc7UUFBQ2hDO0tBQWU7SUFFbkIsTUFBTWlDLE9BQU9DLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUFnQjtRQUMzQkMsTUFBTXJDLFdBQVdxQyxJQUFJO1FBQ3JCQyxZQUFZdEMsV0FBV3NDLFVBQVU7UUFDakNDLFFBQVF2QyxXQUFXdUMsTUFBTTtJQUMzQjtJQUVBLGdDQUFnQztJQUNoQyxxQkFDRSxzQkFBQ0MsT0FBQUE7UUFBSUMsdUJBQXFCOzswQkFDeEIscUJBQUNELE9BQUFBOzBCQUNDLG9DQUFDRSxLQUFBQTtvQkFDQ0MsTUFBSztvQkFDTEMsU0FBU1Q7b0JBQ1RVLFVBQVU7b0JBQ1ZDLE9BQU07O3NDQUVOLHNCQUFDQyxRQUFBQTs7Z0NBQ0VDLENBQUFBLEdBQUFBLFlBQUFBLGNBQUFBLEVBQWVoRDtnQ0FBWTtnQ0FBRzs4Q0FDL0IscUJBQUNpRCxlQUFBQSxhQUFhO29DQUFDQyxNQUFNbEQsV0FBV21ELFVBQVU7Ozs7c0NBRTVDLHNCQUFDQyxPQUFBQTs0QkFDQ0MsT0FBTTs0QkFDTkMsU0FBUTs0QkFDUkMsTUFBSzs0QkFDTEMsUUFBTzs0QkFDUEMsYUFBWTs0QkFDWkMsZUFBYzs0QkFDZEMsZ0JBQWU7OzhDQUVmLHFCQUFDQyxRQUFBQTtvQ0FBS0MsR0FBRTs7OENBQ1IscUJBQUNDLFlBQUFBO29DQUFTQyxRQUFPOzs4Q0FDakIscUJBQUN0RCxRQUFBQTtvQ0FBS3VELElBQUc7b0NBQUtDLElBQUc7b0NBQUtDLElBQUc7b0NBQUtDLElBQUc7Ozs7Ozs7MEJBSXZDLHFCQUFDQyxPQUFBQTswQkFDRXZDLFFBQVFyQixHQUFHLENBQUMsQ0FBQzZELE9BQU9DLFFBQUFBLFdBQUFBLEdBQ25CLHFCQUFDdkIsUUFBQUE7d0JBRUN3QixPQUFPOzRCQUNMQyxPQUFPSCxNQUFNSSxFQUFFLEdBQUksaUJBQWNKLE1BQU1JLEVBQUUsR0FBQyxNQUFLQzs0QkFDL0MsR0FBSUwsTUFBTU0sVUFBVSxLQUFLLFNBQ3JCO2dDQUFFQyxZQUFZOzRCQUFJLElBQ2xCUCxNQUFNTSxVQUFVLEtBQUssV0FDbkI7Z0NBQUVFLFdBQVc7NEJBQVMsSUFDdEJILFNBQVM7d0JBQ2pCO2tDQUVDTCxNQUFNUyxPQUFPO3VCQVZSLFdBQVFSOzs7O0FBZ0IxQjs7S0FoR2F2RSIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL0NvZGVGcmFtZS9Db2RlRnJhbWUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBBbnNlciBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvYW5zZXInXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgU3RhY2tGcmFtZSB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlcidcbmltcG9ydCBzdHJpcEFuc2kgZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2knXG5pbXBvcnQgeyBnZXRGcmFtZVNvdXJjZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvc3RhY2stZnJhbWUnXG5pbXBvcnQgeyB1c2VPcGVuSW5FZGl0b3IgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3VzZS1vcGVuLWluLWVkaXRvcidcbmltcG9ydCB7IEhvdGxpbmtlZFRleHQgfSBmcm9tICcuLi9ob3QtbGlua2VkLXRleHQnXG5cbmV4cG9ydCB0eXBlIENvZGVGcmFtZVByb3BzID0geyBzdGFja0ZyYW1lOiBTdGFja0ZyYW1lOyBjb2RlRnJhbWU6IHN0cmluZyB9XG5cbmV4cG9ydCBjb25zdCBDb2RlRnJhbWU6IFJlYWN0LkZDPENvZGVGcmFtZVByb3BzPiA9IGZ1bmN0aW9uIENvZGVGcmFtZSh7XG4gIHN0YWNrRnJhbWUsXG4gIGNvZGVGcmFtZSxcbn0pIHtcbiAgLy8gU3RyaXAgbGVhZGluZyBzcGFjZXMgb3V0IG9mIHRoZSBjb2RlIGZyYW1lOlxuICBjb25zdCBmb3JtYXR0ZWRGcmFtZSA9IFJlYWN0LnVzZU1lbW88c3RyaW5nPigoKSA9PiB7XG4gICAgY29uc3QgbGluZXMgPSBjb2RlRnJhbWUuc3BsaXQoL1xccj9cXG4vZylcblxuICAgIC8vIEZpbmQgdGhlIG1pbmltdW0gbGVuZ3RoIG9mIGxlYWRpbmcgc3BhY2VzIGFmdGVyIGB8YCBpbiB0aGUgY29kZSBmcmFtZVxuICAgIGNvbnN0IG1pbmlMZWFkaW5nU3BhY2VzTGVuZ3RoID0gbGluZXNcbiAgICAgIC5tYXAoKGxpbmUpID0+XG4gICAgICAgIC9ePj8gK1xcZCsgK1xcfCBbIF0rLy5leGVjKHN0cmlwQW5zaShsaW5lKSkgPT09IG51bGxcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IC9ePj8gK1xcZCsgK1xcfCAoICopLy5leGVjKHN0cmlwQW5zaShsaW5lKSlcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5tYXAoKHYpID0+IHYhLnBvcCgpISlcbiAgICAgIC5yZWR1Y2UoKGMsIG4pID0+IChpc05hTihjKSA/IG4ubGVuZ3RoIDogTWF0aC5taW4oYywgbi5sZW5ndGgpKSwgTmFOKVxuXG4gICAgLy8gV2hlbiB0aGUgbWluaW11bSBsZW5ndGggb2YgbGVhZGluZyBzcGFjZXMgaXMgZ3JlYXRlciB0aGFuIDEsIHJlbW92ZSB0aGVtXG4gICAgLy8gZnJvbSB0aGUgY29kZSBmcmFtZSB0byBoZWxwIHRoZSBpbmRlbnRhdGlvbiBsb29rcyBiZXR0ZXIgd2hlbiB0aGVyZSdzIGEgbG90IGxlYWRpbmcgc3BhY2VzLlxuICAgIGlmIChtaW5pTGVhZGluZ1NwYWNlc0xlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiBsaW5lc1xuICAgICAgICAubWFwKChsaW5lLCBhKSA9PlxuICAgICAgICAgIH4oYSA9IGxpbmUuaW5kZXhPZignfCcpKVxuICAgICAgICAgICAgPyBsaW5lLnN1YnN0cmluZygwLCBhKSArXG4gICAgICAgICAgICAgIGxpbmUuc3Vic3RyaW5nKGEpLnJlcGxhY2UoYF5cXFxcIHske21pbmlMZWFkaW5nU3BhY2VzTGVuZ3RofX1gLCAnJylcbiAgICAgICAgICAgIDogbGluZVxuICAgICAgICApXG4gICAgICAgIC5qb2luKCdcXG4nKVxuICAgIH1cbiAgICByZXR1cm4gbGluZXMuam9pbignXFxuJylcbiAgfSwgW2NvZGVGcmFtZV0pXG5cbiAgY29uc3QgZGVjb2RlZCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBBbnNlci5hbnNpVG9Kc29uKGZvcm1hdHRlZEZyYW1lLCB7XG4gICAgICBqc29uOiB0cnVlLFxuICAgICAgdXNlX2NsYXNzZXM6IHRydWUsXG4gICAgICByZW1vdmVfZW1wdHk6IHRydWUsXG4gICAgfSlcbiAgfSwgW2Zvcm1hdHRlZEZyYW1lXSlcblxuICBjb25zdCBvcGVuID0gdXNlT3BlbkluRWRpdG9yKHtcbiAgICBmaWxlOiBzdGFja0ZyYW1lLmZpbGUsXG4gICAgbGluZU51bWJlcjogc3RhY2tGcmFtZS5saW5lTnVtYmVyLFxuICAgIGNvbHVtbjogc3RhY2tGcmFtZS5jb2x1bW4sXG4gIH0pXG5cbiAgLy8gVE9ETzogbWFrZSB0aGUgY2FyZXQgYWJzb2x1dGVcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGRhdGEtbmV4dGpzLWNvZGVmcmFtZT5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxwXG4gICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgIG9uQ2xpY2s9e29wZW59XG4gICAgICAgICAgdGFiSW5kZXg9ezF9XG4gICAgICAgICAgdGl0bGU9XCJDbGljayB0byBvcGVuIGluIHlvdXIgZWRpdG9yXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge2dldEZyYW1lU291cmNlKHN0YWNrRnJhbWUpfSBAeycgJ31cbiAgICAgICAgICAgIDxIb3RsaW5rZWRUZXh0IHRleHQ9e3N0YWNrRnJhbWUubWV0aG9kTmFtZX0gLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTggMTN2NmEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY4YTIgMiAwIDAgMSAyLTJoNlwiPjwvcGF0aD5cbiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCIxNSAzIDIxIDMgMjEgOVwiPjwvcG9seWxpbmU+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjEwXCIgeTE9XCIxNFwiIHgyPVwiMjFcIiB5Mj1cIjNcIj48L2xpbmU+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPHByZT5cbiAgICAgICAge2RlY29kZWQubWFwKChlbnRyeSwgaW5kZXgpID0+IChcbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAga2V5PXtgZnJhbWUtJHtpbmRleH1gfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgY29sb3I6IGVudHJ5LmZnID8gYHZhcigtLWNvbG9yLSR7ZW50cnkuZmd9KWAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIC4uLihlbnRyeS5kZWNvcmF0aW9uID09PSAnYm9sZCdcbiAgICAgICAgICAgICAgICA/IHsgZm9udFdlaWdodDogODAwIH1cbiAgICAgICAgICAgICAgICA6IGVudHJ5LmRlY29yYXRpb24gPT09ICdpdGFsaWMnXG4gICAgICAgICAgICAgICAgICA/IHsgZm9udFN0eWxlOiAnaXRhbGljJyB9XG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHtlbnRyeS5jb250ZW50fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgKSl9XG4gICAgICA8L3ByZT5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkNvZGVGcmFtZSIsInN0YWNrRnJhbWUiLCJjb2RlRnJhbWUiLCJmb3JtYXR0ZWRGcmFtZSIsIlJlYWN0IiwidXNlTWVtbyIsImxpbmVzIiwic3BsaXQiLCJtaW5pTGVhZGluZ1NwYWNlc0xlbmd0aCIsIm1hcCIsImxpbmUiLCJleGVjIiwic3RyaXBBbnNpIiwiZmlsdGVyIiwiQm9vbGVhbiIsInYiLCJwb3AiLCJyZWR1Y2UiLCJjIiwibiIsImlzTmFOIiwibGVuZ3RoIiwiTWF0aCIsIm1pbiIsIk5hTiIsImEiLCJpbmRleE9mIiwic3Vic3RyaW5nIiwicmVwbGFjZSIsImpvaW4iLCJkZWNvZGVkIiwiQW5zZXIiLCJhbnNpVG9Kc29uIiwianNvbiIsInVzZV9jbGFzc2VzIiwicmVtb3ZlX2VtcHR5Iiwib3BlbiIsInVzZU9wZW5JbkVkaXRvciIsImZpbGUiLCJsaW5lTnVtYmVyIiwiY29sdW1uIiwiZGl2IiwiZGF0YS1uZXh0anMtY29kZWZyYW1lIiwicCIsInJvbGUiLCJvbkNsaWNrIiwidGFiSW5kZXgiLCJ0aXRsZSIsInNwYW4iLCJnZXRGcmFtZVNvdXJjZSIsIkhvdGxpbmtlZFRleHQiLCJ0ZXh0IiwibWV0aG9kTmFtZSIsInN2ZyIsInhtbG5zIiwidmlld0JveCIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsInBhdGgiLCJkIiwicG9seWxpbmUiLCJwb2ludHMiLCJ4MSIsInkxIiwieDIiLCJ5MiIsInByZSIsImVudHJ5IiwiaW5kZXgiLCJzdHlsZSIsImNvbG9yIiwiZmciLCJ1bmRlZmluZWQiLCJkZWNvcmF0aW9uIiwiZm9udFdlaWdodCIsImZvbnRTdHlsZSIsImNvbnRlbnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js": +/*!***********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js ***! + \***********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CodeFrame\", ({\n enumerable: true,\n get: function() {\n return _CodeFrame.CodeFrame;\n }\n}));\nconst _CodeFrame = __webpack_require__(/*! ./CodeFrame */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js\");\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7NkNBQVNBOzs7ZUFBQUEsV0FBQUEsU0FBUzs7O3VDQUFRIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDb2RlRnJhbWUgfSBmcm9tICcuL0NvZGVGcmFtZSdcbiJdLCJuYW1lcyI6WyJDb2RlRnJhbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js": +/*!************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js ***! + \************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"styles\", ({\n enumerable: true,\n get: function() {\n return styles;\n }\n}));\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-codeframe] {\\n overflow: auto;\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n margin-bottom: var(--size-gap-double);\\n }\\n [data-nextjs-codeframe]::selection,\\n [data-nextjs-codeframe] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-codeframe] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n\\n [data-nextjs-codeframe] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n [data-nextjs-codeframe] > div {\\n display: inline-block;\\n width: auto;\\n min-width: 100%;\\n border-bottom: 1px solid var(--color-ansi-bright-black);\\n }\\n [data-nextjs-codeframe] > div > p {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n cursor: pointer;\\n margin: 0;\\n }\\n [data-nextjs-codeframe] > div > p:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-codeframe] div > p > svg {\\n width: auto;\\n height: 1em;\\n margin-left: 8px;\\n }\\n [data-nextjs-codeframe] div > pre {\\n overflow: hidden;\\n display: inline-block;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=styles.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvQ29kZUZyYW1lL3N0eWxlcy5qcyIsIm1hcHBpbmdzIjoiOzs7OzBDQW9EU0E7OztlQUFBQTs7OzswQ0FwRG1COzs7Ozs7Ozs7O0FBRTVCLE1BQU1BLFNBQUFBLENBQUFBLEdBQVNDLGNBQUFBLElBQUFBLEVBQUciLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9Db2RlRnJhbWUvc3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZSdcblxuY29uc3Qgc3R5bGVzID0gY3NzYFxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1iZyk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktZmcpO1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV06OnNlbGVjdGlvbixcbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gKjo6c2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXNlbGVjdGlvbik7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gKiB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtc3RhY2stbW9ub3NwYWNlKTtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdID4gKiB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXG4gICAgICBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvZGVmcmFtZV0gPiBkaXYge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogYXV0bztcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsYWNrKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+IGRpdiA+IHAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSA+IGRpdiA+IHA6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgfVxuICBbZGF0YS1uZXh0anMtY29kZWZyYW1lXSBkaXYgPiBwID4gc3ZnIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICBtYXJnaW4tbGVmdDogOHB4O1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb2RlZnJhbWVdIGRpdiA+IHByZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIH1cbmBcblxuZXhwb3J0IHsgc3R5bGVzIH1cbiJdLCJuYW1lcyI6WyJzdHlsZXMiLCJjc3MiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js": +/*!*********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js ***! + \*********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Dialog\", ({\n enumerable: true,\n get: function() {\n return Dialog;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _useonclickoutside = __webpack_require__(/*! ../../hooks/use-on-click-outside */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js\");\nconst Dialog = function Dialog(param) {\n _s();\n let { children, type, onClose, ...props } = param;\n const [dialog, setDialog] = _react.useState(null);\n const [role, setRole] = _react.useState(typeof document !== 'undefined' && document.hasFocus() ? 'dialog' : undefined);\n const onDialog = _react.useCallback({\n \"Dialog.useCallback[onDialog]\": (node)=>{\n setDialog(node);\n }\n }[\"Dialog.useCallback[onDialog]\"], []);\n (0, _useonclickoutside.useOnClickOutside)(dialog, (e)=>{\n e.preventDefault();\n return onClose == null ? void 0 : onClose();\n });\n // Make HTMLElements with `role=link` accessible to be triggered by the\n // keyboard, i.e. [Enter].\n _react.useEffect({\n \"Dialog.useEffect\": ()=>{\n if (dialog == null) {\n return;\n }\n const root = dialog.getRootNode();\n // Always true, but we do this for TypeScript:\n if (!(root instanceof ShadowRoot)) {\n return;\n }\n const shadowRoot = root;\n function handler(e) {\n const el = shadowRoot.activeElement;\n if (e.key === 'Enter' && el instanceof HTMLElement && el.getAttribute('role') === 'link') {\n e.preventDefault();\n e.stopPropagation();\n el.click();\n }\n }\n function handleFocus() {\n // safari will force itself as the active application when a background page triggers any sort of autofocus\n // this is a workaround to only set the dialog role if the document has focus\n setRole(document.hasFocus() ? 'dialog' : undefined);\n }\n shadowRoot.addEventListener('keydown', handler);\n window.addEventListener('focus', handleFocus);\n window.addEventListener('blur', handleFocus);\n return ({\n \"Dialog.useEffect\": ()=>{\n shadowRoot.removeEventListener('keydown', handler);\n window.removeEventListener('focus', handleFocus);\n window.removeEventListener('blur', handleFocus);\n }\n })[\"Dialog.useEffect\"];\n }\n }[\"Dialog.useEffect\"], [\n dialog\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n ref: onDialog,\n \"data-nextjs-dialog\": true,\n tabIndex: -1,\n role: role,\n \"aria-labelledby\": props['aria-labelledby'],\n \"aria-describedby\": props['aria-describedby'],\n \"aria-modal\": \"true\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-dialog-banner\": true,\n className: \"banner-\" + type\n }),\n children\n ]\n });\n};\n_s(Dialog, \"OR4ZWUAMdofA2mSDGA39vdYzrZ4=\");\n_c = Dialog;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=Dialog.js.map\nvar _c;\n$RefreshReg$(_c, \"Dialog\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7MENBMEZTQTs7O2VBQUFBOzs7Ozs2RUExRmM7K0NBQ1c7QUFVbEMsZUFBc0MsU0FBU0EsT0FBTyxLQUtyRDs7SUFMcUQsTUFDcERDLFFBQVEsRUFDUkMsSUFBSSxFQUNKQyxPQUFPLEVBQ1AsR0FBR0MsT0FDSixHQUxxRDtJQU1wRCxNQUFNLENBQUNDLFFBQVFDLFVBQVUsR0FBR0MsT0FBTUMsUUFBUSxDQUF3QjtJQUNsRSxNQUFNLENBQUNDLE1BQU1DLFFBQVEsR0FBR0gsT0FBTUMsUUFBUSxDQUNwQyxPQUFPRyxhQUFhLGVBQWVBLFNBQVNDLFFBQVEsS0FDaEQsV0FDQUM7SUFFTixNQUFNQyxXQUFXUCxPQUFNUSxXQUFXO3dDQUFDLENBQUNDO1lBQ2xDVixVQUFVVTtRQUNaO3VDQUFHLEVBQUU7SUFDTEMsQ0FBQUEsR0FBQUEsbUJBQUFBLGlCQUFBQSxFQUFrQlosUUFBUSxDQUFDYTtRQUN6QkEsRUFBRUMsY0FBYztRQUNoQixPQUFPaEIsV0FBQUEsT0FBQUEsS0FBQUEsSUFBQUE7SUFDVDtJQUVBLHVFQUF1RTtJQUN2RSwwQkFBMEI7SUFDMUJJLE9BQU1hLFNBQVM7NEJBQUM7WUFDZCxJQUFJZixVQUFVLE1BQU07Z0JBQ2xCO1lBQ0Y7WUFFQSxNQUFNZ0IsT0FBT2hCLE9BQU9pQixXQUFXO1lBQy9CLDhDQUE4QztZQUM5QyxJQUFJLENBQUVELENBQUFBLGdCQUFnQkUsVUFBQUEsQ0FBUyxFQUFJO2dCQUNqQztZQUNGO1lBQ0EsTUFBTUMsYUFBYUg7WUFDbkIsU0FBU0ksUUFBUVAsQ0FBZ0I7Z0JBQy9CLE1BQU1RLEtBQUtGLFdBQVdHLGFBQWE7Z0JBQ25DLElBQ0VULEVBQUVVLEdBQUcsS0FBSyxXQUNWRixjQUFjRyxlQUNkSCxHQUFHSSxZQUFZLENBQUMsWUFBWSxRQUM1QjtvQkFDQVosRUFBRUMsY0FBYztvQkFDaEJELEVBQUVhLGVBQWU7b0JBRWpCTCxHQUFHTSxLQUFLO2dCQUNWO1lBQ0Y7WUFFQSxTQUFTQztnQkFDUCwyR0FBMkc7Z0JBQzNHLDZFQUE2RTtnQkFDN0V2QixRQUFRQyxTQUFTQyxRQUFRLEtBQUssV0FBV0M7WUFDM0M7WUFFQVcsV0FBV1UsZ0JBQWdCLENBQUMsV0FBV1Q7WUFDdkNVLE9BQU9ELGdCQUFnQixDQUFDLFNBQVNEO1lBQ2pDRSxPQUFPRCxnQkFBZ0IsQ0FBQyxRQUFRRDtZQUNoQztvQ0FBTztvQkFDTFQsV0FBV1ksbUJBQW1CLENBQUMsV0FBV1g7b0JBQzFDVSxPQUFPQyxtQkFBbUIsQ0FBQyxTQUFTSDtvQkFDcENFLE9BQU9DLG1CQUFtQixDQUFDLFFBQVFIO2dCQUNyQzs7UUFDRjsyQkFBRztRQUFDNUI7S0FBTztJQUVYLHFCQUNFLHNCQUFDZ0MsT0FBQUE7UUFDQ0MsS0FBS3hCO1FBQ0x5QixvQkFBa0I7UUFDbEJDLFVBQVUsQ0FBQztRQUNYL0IsTUFBTUE7UUFDTmdDLG1CQUFpQnJDLEtBQUssQ0FBQyxrQkFBa0I7UUFDekNzQyxvQkFBa0J0QyxLQUFLLENBQUMsbUJBQW1CO1FBQzNDdUMsY0FBVzs7MEJBRVgscUJBQUNOLE9BQUFBO2dCQUFJTywyQkFBeUI7Z0JBQUNDLFdBQVksWUFBUzNDOztZQUNuREQ7OztBQUdQOztLQTdFTUQiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZU9uQ2xpY2tPdXRzaWRlIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlLW9uLWNsaWNrLW91dHNpZGUnXG5cbmV4cG9ydCB0eXBlIERpYWxvZ1Byb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxuICB0eXBlOiAnZXJyb3InIHwgJ3dhcm5pbmcnXG4gICdhcmlhLWxhYmVsbGVkYnknOiBzdHJpbmdcbiAgJ2FyaWEtZGVzY3JpYmVkYnknOiBzdHJpbmdcbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbn1cblxuY29uc3QgRGlhbG9nOiBSZWFjdC5GQzxEaWFsb2dQcm9wcz4gPSBmdW5jdGlvbiBEaWFsb2coe1xuICBjaGlsZHJlbixcbiAgdHlwZSxcbiAgb25DbG9zZSxcbiAgLi4ucHJvcHNcbn0pIHtcbiAgY29uc3QgW2RpYWxvZywgc2V0RGlhbG9nXSA9IFJlYWN0LnVzZVN0YXRlPEhUTUxEaXZFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgY29uc3QgW3JvbGUsIHNldFJvbGVdID0gUmVhY3QudXNlU3RhdGU8c3RyaW5nIHwgdW5kZWZpbmVkPihcbiAgICB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGRvY3VtZW50Lmhhc0ZvY3VzKClcbiAgICAgID8gJ2RpYWxvZydcbiAgICAgIDogdW5kZWZpbmVkXG4gIClcbiAgY29uc3Qgb25EaWFsb2cgPSBSZWFjdC51c2VDYWxsYmFjaygobm9kZTogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgc2V0RGlhbG9nKG5vZGUpXG4gIH0sIFtdKVxuICB1c2VPbkNsaWNrT3V0c2lkZShkaWFsb2csIChlKSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgcmV0dXJuIG9uQ2xvc2U/LigpXG4gIH0pXG5cbiAgLy8gTWFrZSBIVE1MRWxlbWVudHMgd2l0aCBgcm9sZT1saW5rYCBhY2Nlc3NpYmxlIHRvIGJlIHRyaWdnZXJlZCBieSB0aGVcbiAgLy8ga2V5Ym9hcmQsIGkuZS4gW0VudGVyXS5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZGlhbG9nID09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHJvb3QgPSBkaWFsb2cuZ2V0Um9vdE5vZGUoKVxuICAgIC8vIEFsd2F5cyB0cnVlLCBidXQgd2UgZG8gdGhpcyBmb3IgVHlwZVNjcmlwdDpcbiAgICBpZiAoIShyb290IGluc3RhbmNlb2YgU2hhZG93Um9vdCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBzaGFkb3dSb290ID0gcm9vdFxuICAgIGZ1bmN0aW9uIGhhbmRsZXIoZTogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgY29uc3QgZWwgPSBzaGFkb3dSb290LmFjdGl2ZUVsZW1lbnRcbiAgICAgIGlmIChcbiAgICAgICAgZS5rZXkgPT09ICdFbnRlcicgJiZcbiAgICAgICAgZWwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJlxuICAgICAgICBlbC5nZXRBdHRyaWJ1dGUoJ3JvbGUnKSA9PT0gJ2xpbmsnXG4gICAgICApIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcblxuICAgICAgICBlbC5jbGljaygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlRm9jdXMoKSB7XG4gICAgICAvLyBzYWZhcmkgd2lsbCBmb3JjZSBpdHNlbGYgYXMgdGhlIGFjdGl2ZSBhcHBsaWNhdGlvbiB3aGVuIGEgYmFja2dyb3VuZCBwYWdlIHRyaWdnZXJzIGFueSBzb3J0IG9mIGF1dG9mb2N1c1xuICAgICAgLy8gdGhpcyBpcyBhIHdvcmthcm91bmQgdG8gb25seSBzZXQgdGhlIGRpYWxvZyByb2xlIGlmIHRoZSBkb2N1bWVudCBoYXMgZm9jdXNcbiAgICAgIHNldFJvbGUoZG9jdW1lbnQuaGFzRm9jdXMoKSA/ICdkaWFsb2cnIDogdW5kZWZpbmVkKVxuICAgIH1cblxuICAgIHNoYWRvd1Jvb3QuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcilcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBoYW5kbGVGb2N1cylcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIGhhbmRsZUZvY3VzKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBzaGFkb3dSb290LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIpXG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBoYW5kbGVGb2N1cylcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdibHVyJywgaGFuZGxlRm9jdXMpXG4gICAgfVxuICB9LCBbZGlhbG9nXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17b25EaWFsb2d9XG4gICAgICBkYXRhLW5leHRqcy1kaWFsb2dcbiAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgIHJvbGU9e3JvbGV9XG4gICAgICBhcmlhLWxhYmVsbGVkYnk9e3Byb3BzWydhcmlhLWxhYmVsbGVkYnknXX1cbiAgICAgIGFyaWEtZGVzY3JpYmVkYnk9e3Byb3BzWydhcmlhLWRlc2NyaWJlZGJ5J119XG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPGRpdiBkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyIGNsYXNzTmFtZT17YGJhbm5lci0ke3R5cGV9YH0gLz5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgeyBEaWFsb2cgfVxuIl0sIm5hbWVzIjpbIkRpYWxvZyIsImNoaWxkcmVuIiwidHlwZSIsIm9uQ2xvc2UiLCJwcm9wcyIsImRpYWxvZyIsInNldERpYWxvZyIsIlJlYWN0IiwidXNlU3RhdGUiLCJyb2xlIiwic2V0Um9sZSIsImRvY3VtZW50IiwiaGFzRm9jdXMiLCJ1bmRlZmluZWQiLCJvbkRpYWxvZyIsInVzZUNhbGxiYWNrIiwibm9kZSIsInVzZU9uQ2xpY2tPdXRzaWRlIiwiZSIsInByZXZlbnREZWZhdWx0IiwidXNlRWZmZWN0Iiwicm9vdCIsImdldFJvb3ROb2RlIiwiU2hhZG93Um9vdCIsInNoYWRvd1Jvb3QiLCJoYW5kbGVyIiwiZWwiLCJhY3RpdmVFbGVtZW50Iiwia2V5IiwiSFRNTEVsZW1lbnQiLCJnZXRBdHRyaWJ1dGUiLCJzdG9wUHJvcGFnYXRpb24iLCJjbGljayIsImhhbmRsZUZvY3VzIiwiYWRkRXZlbnRMaXN0ZW5lciIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJkaXYiLCJyZWYiLCJkYXRhLW5leHRqcy1kaWFsb2ciLCJ0YWJJbmRleCIsImFyaWEtbGFiZWxsZWRieSIsImFyaWEtZGVzY3JpYmVkYnkiLCJhcmlhLW1vZGFsIiwiZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lciIsImNsYXNzTmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js ***! + \*************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DialogBody\", ({\n enumerable: true,\n get: function() {\n return DialogBody;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst DialogBody = function DialogBody(param) {\n let { children, className } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-dialog-body\": true,\n className: className,\n children: children\n });\n};\n_c = DialogBody;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=DialogBody.js.map\nvar _c;\n$RefreshReg$(_c, \"DialogBody\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0JvZHkuanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FrQlNBOzs7ZUFBQUE7Ozs7OzZFQWxCYztBQU92QixtQkFBOEMsU0FBU0EsV0FBVyxLQUdqRTtJQUhpRSxNQUNoRUMsUUFBUSxFQUNSQyxTQUFTLEVBQ1YsR0FIaUU7SUFJaEUscUJBQ0UscUJBQUNDLE9BQUFBO1FBQUlDLHlCQUF1QjtRQUFDRixXQUFXQTtrQkFDckNEOztBQUdQO0tBVE1EIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0JvZHkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgdHlwZSBEaWFsb2dCb2R5UHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5jb25zdCBEaWFsb2dCb2R5OiBSZWFjdC5GQzxEaWFsb2dCb2R5UHJvcHM+ID0gZnVuY3Rpb24gRGlhbG9nQm9keSh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG59KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBkYXRhLW5leHRqcy1kaWFsb2ctYm9keSBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IHsgRGlhbG9nQm9keSB9XG4iXSwibmFtZXMiOlsiRGlhbG9nQm9keSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGl2IiwiZGF0YS1uZXh0anMtZGlhbG9nLWJvZHkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js": +/*!****************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js ***! + \****************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DialogContent\", ({\n enumerable: true,\n get: function() {\n return DialogContent;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst DialogContent = function DialogContent(param) {\n let { children, className } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-dialog-content\": true,\n className: className,\n children: children\n });\n};\n_c = DialogContent;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=DialogContent.js.map\nvar _c;\n$RefreshReg$(_c, \"DialogContent\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMiLCJtYXBwaW5ncyI6Ijs7OztpREFrQlNBOzs7ZUFBQUE7Ozs7OzZFQWxCYztBQU92QixzQkFBb0QsU0FBU0EsY0FBYyxLQUcxRTtJQUgwRSxNQUN6RUMsUUFBUSxFQUNSQyxTQUFTLEVBQ1YsR0FIMEU7SUFJekUscUJBQ0UscUJBQUNDLE9BQUFBO1FBQUlDLDRCQUEwQjtRQUFDRixXQUFXQTtrQkFDeENEOztBQUdQO0tBVE1EIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgdHlwZSBEaWFsb2dDb250ZW50UHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5jb25zdCBEaWFsb2dDb250ZW50OiBSZWFjdC5GQzxEaWFsb2dDb250ZW50UHJvcHM+ID0gZnVuY3Rpb24gRGlhbG9nQ29udGVudCh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG59KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBkYXRhLW5leHRqcy1kaWFsb2ctY29udGVudCBjbGFzc05hbWU9e2NsYXNzTmFtZX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IHsgRGlhbG9nQ29udGVudCB9XG4iXSwibmFtZXMiOlsiRGlhbG9nQ29udGVudCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGl2IiwiZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js": +/*!***************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js ***! + \***************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"DialogHeader\", ({\n enumerable: true,\n get: function() {\n return DialogHeader;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst DialogHeader = function DialogHeader(param) {\n let { children, className } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-dialog-header\": true,\n className: className,\n children: children\n });\n};\n_c = DialogHeader;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=DialogHeader.js.map\nvar _c;\n$RefreshReg$(_c, \"DialogHeader\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0hlYWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7O2dEQWtCU0E7OztlQUFBQTs7Ozs7NkVBbEJjO0FBT3ZCLHFCQUFrRCxTQUFTQSxhQUFhLEtBR3ZFO0lBSHVFLE1BQ3RFQyxRQUFRLEVBQ1JDLFNBQVMsRUFDVixHQUh1RTtJQUl0RSxxQkFDRSxxQkFBQ0MsT0FBQUE7UUFBSUMsMkJBQXlCO1FBQUNGLFdBQVdBO2tCQUN2Q0Q7O0FBR1A7S0FUTUQiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nSGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IHR5cGUgRGlhbG9nSGVhZGVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5jb25zdCBEaWFsb2dIZWFkZXI6IFJlYWN0LkZDPERpYWxvZ0hlYWRlclByb3BzPiA9IGZ1bmN0aW9uIERpYWxvZ0hlYWRlcih7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG59KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyIGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgeyBEaWFsb2dIZWFkZXIgfVxuIl0sIm5hbWVzIjpbIkRpYWxvZ0hlYWRlciIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGl2IiwiZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js": +/*!********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js ***! + \********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Dialog: function() {\n return _Dialog.Dialog;\n },\n DialogBody: function() {\n return _DialogBody.DialogBody;\n },\n DialogContent: function() {\n return _DialogContent.DialogContent;\n },\n DialogHeader: function() {\n return _DialogHeader.DialogHeader;\n },\n styles: function() {\n return _styles.styles;\n }\n});\nconst _Dialog = __webpack_require__(/*! ./Dialog */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js\");\nconst _DialogBody = __webpack_require__(/*! ./DialogBody */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js\");\nconst _DialogContent = __webpack_require__(/*! ./DialogContent */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js\");\nconst _DialogHeader = __webpack_require__(/*! ./DialogHeader */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js\");\nconst _styles = __webpack_require__(/*! ./styles */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js\");\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFTQSxNQUFNO2VBQU5BLFFBQUFBLE1BQU07O0lBQ05DLFVBQVU7ZUFBVkEsWUFBQUEsVUFBVTs7SUFDVkMsYUFBYTtlQUFiQSxlQUFBQSxhQUFhOztJQUNiQyxZQUFZO2VBQVpBLGNBQUFBLFlBQVk7O0lBQ1pDLE1BQU07ZUFBTkEsUUFBQUEsTUFBTTs7O29DQUpRO3dDQUNJOzJDQUNHOzBDQUNEO29DQUNOIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IERpYWxvZyB9IGZyb20gJy4vRGlhbG9nJ1xuZXhwb3J0IHsgRGlhbG9nQm9keSB9IGZyb20gJy4vRGlhbG9nQm9keSdcbmV4cG9ydCB7IERpYWxvZ0NvbnRlbnQgfSBmcm9tICcuL0RpYWxvZ0NvbnRlbnQnXG5leHBvcnQgeyBEaWFsb2dIZWFkZXIgfSBmcm9tICcuL0RpYWxvZ0hlYWRlcidcbmV4cG9ydCB7IHN0eWxlcyB9IGZyb20gJy4vc3R5bGVzJ1xuIl0sIm5hbWVzIjpbIkRpYWxvZyIsIkRpYWxvZ0JvZHkiLCJEaWFsb2dDb250ZW50IiwiRGlhbG9nSGVhZGVyIiwic3R5bGVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js": +/*!*********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js ***! + \*********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"styles\", ({\n enumerable: true,\n get: function() {\n return styles;\n }\n}));\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-dialog] {\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n margin-right: auto;\\n margin-left: auto;\\n outline: none;\\n background: var(--color-background);\\n border-radius: var(--size-gap);\\n box-shadow: 0 var(--size-gap-half) var(--size-gap-double)\\n rgba(0, 0, 0, 0.25);\\n max-height: calc(100% - 56px);\\n overflow-y: hidden;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n max-height: calc(100% - 15px);\\n }\\n }\\n\\n @media (min-width: 576px) {\\n [data-nextjs-dialog] {\\n max-width: 540px;\\n box-shadow: 0 var(--size-gap) var(--size-gap-quad) rgba(0, 0, 0, 0.25);\\n }\\n }\\n\\n @media (min-width: 768px) {\\n [data-nextjs-dialog] {\\n max-width: 720px;\\n }\\n }\\n\\n @media (min-width: 992px) {\\n [data-nextjs-dialog] {\\n max-width: 960px;\\n }\\n }\\n\\n [data-nextjs-dialog-banner] {\\n position: relative;\\n }\\n [data-nextjs-dialog-banner].banner-warning {\\n border-color: var(--color-ansi-yellow);\\n }\\n [data-nextjs-dialog-banner].banner-error {\\n border-color: var(--color-ansi-red);\\n }\\n\\n [data-nextjs-dialog-banner]::after {\\n z-index: 2;\\n content: '';\\n position: absolute;\\n top: 0;\\n right: 0;\\n width: 100%;\\n /* banner width: */\\n border-top-width: var(--size-gap-half);\\n border-bottom-width: 0;\\n border-top-style: solid;\\n border-bottom-style: solid;\\n border-top-color: inherit;\\n border-bottom-color: transparent;\\n }\\n\\n [data-nextjs-dialog-content] {\\n overflow-y: auto;\\n border: none;\\n margin: 0;\\n /* calc(padding + banner width offset) */\\n padding: calc(var(--size-gap-double) + var(--size-gap-half))\\n var(--size-gap-double);\\n height: 100%;\\n display: flex;\\n flex-direction: column;\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-header] {\\n flex-shrink: 0;\\n margin-bottom: var(--size-gap-double);\\n }\\n [data-nextjs-dialog-content] > [data-nextjs-dialog-body] {\\n position: relative;\\n flex: 1 1 auto;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=styles.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvRGlhbG9nL3N0eWxlcy5qcyIsIm1hcHBpbmdzIjoiOzs7OzBDQTBGU0E7OztlQUFBQTs7OzswQ0ExRm1COzs7Ozs7Ozs7O0FBRTVCLE1BQU1BLFNBQUFBLENBQUFBLEdBQVNDLGNBQUFBLElBQUFBLEVBQUciLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9EaWFsb2cvc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlJ1xuXG5jb25zdCBzdHlsZXMgPSBjc3NgXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ddIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXApO1xuICAgIGJveC1zaGFkb3c6IDAgdmFyKC0tc2l6ZS1nYXAtaGFsZikgdmFyKC0tc2l6ZS1nYXAtZG91YmxlKVxuICAgICAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSA1NnB4KTtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gIH1cblxuICBAbWVkaWEgKG1heC1oZWlnaHQ6IDgxMnB4KSB7XG4gICAgW2RhdGEtbmV4dGpzLWRpYWxvZy1vdmVybGF5XSB7XG4gICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMCUgLSAxNXB4KTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogNTc2cHgpIHtcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XG4gICAgICBtYXgtd2lkdGg6IDU0MHB4O1xuICAgICAgYm94LXNoYWRvdzogMCB2YXIoLS1zaXplLWdhcCkgdmFyKC0tc2l6ZS1nYXAtcXVhZCkgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICB9XG4gIH1cblxuICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nXSB7XG4gICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgIH1cbiAgfVxuXG4gIEBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAgIFtkYXRhLW5leHRqcy1kaWFsb2ddIHtcbiAgICAgIG1heC13aWR0aDogOTYwcHg7XG4gICAgfVxuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYW5uZXJdLmJhbm5lci13YXJuaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFuc2kteWVsbG93KTtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWJhbm5lcl0uYmFubmVyLWVycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFubmVyXTo6YWZ0ZXIge1xuICAgIHotaW5kZXg6IDI7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICAvKiBiYW5uZXIgd2lkdGg6ICovXG4gICAgYm9yZGVyLXRvcC13aWR0aDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMDtcbiAgICBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlci1ib3R0b20tY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSB7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIC8qIGNhbGMocGFkZGluZyArIGJhbm5lciB3aWR0aCBvZmZzZXQpICovXG4gICAgcGFkZGluZzogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpXG4gICAgICB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1jb250ZW50XSA+IFtkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyXSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWNvbnRlbnRdID4gW2RhdGEtbmV4dGpzLWRpYWxvZy1ib2R5XSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGZsZXg6IDEgMSBhdXRvO1xuICB9XG5gXG5cbmV4cG9ydCB7IHN0eWxlcyB9XG4iXSwibmFtZXMiOlsic3R5bGVzIiwiY3NzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js": +/*!***************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js ***! + \***************************************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"LeftRightDialogHeader\", ({\n enumerable: true,\n get: function() {\n return LeftRightDialogHeader;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _CloseIcon = __webpack_require__(/*! ../../icons/CloseIcon */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js\");\nconst LeftRightDialogHeader = function LeftRightDialogHeader(param) {\n _s();\n let { children, className, previous, next, close } = param;\n const buttonLeft = _react.useRef(null);\n const buttonRight = _react.useRef(null);\n const buttonClose = _react.useRef(null);\n const [nav, setNav] = _react.useState(null);\n const onNav = _react.useCallback({\n \"LeftRightDialogHeader.useCallback[onNav]\": (el)=>{\n setNav(el);\n }\n }[\"LeftRightDialogHeader.useCallback[onNav]\"], []);\n _react.useEffect({\n \"LeftRightDialogHeader.useEffect\": ()=>{\n if (nav == null) {\n return;\n }\n const root = nav.getRootNode();\n const d = self.document;\n function handler(e) {\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n e.stopPropagation();\n if (buttonLeft.current) {\n buttonLeft.current.focus();\n }\n previous && previous();\n } else if (e.key === 'ArrowRight') {\n e.preventDefault();\n e.stopPropagation();\n if (buttonRight.current) {\n buttonRight.current.focus();\n }\n next && next();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n if (root instanceof ShadowRoot) {\n const a = root.activeElement;\n if (a && a !== buttonClose.current && a instanceof HTMLElement) {\n a.blur();\n return;\n }\n }\n close == null ? void 0 : close();\n }\n }\n root.addEventListener('keydown', handler);\n if (root !== d) {\n d.addEventListener('keydown', handler);\n }\n return ({\n \"LeftRightDialogHeader.useEffect\": function() {\n root.removeEventListener('keydown', handler);\n if (root !== d) {\n d.removeEventListener('keydown', handler);\n }\n }\n })[\"LeftRightDialogHeader.useEffect\"];\n }\n }[\"LeftRightDialogHeader.useEffect\"], [\n close,\n nav,\n next,\n previous\n ]);\n // Unlock focus for browsers like Firefox, that break all user focus if the\n // currently focused item becomes disabled.\n _react.useEffect({\n \"LeftRightDialogHeader.useEffect\": ()=>{\n if (nav == null) {\n return;\n }\n const root = nav.getRootNode();\n // Always true, but we do this for TypeScript:\n if (root instanceof ShadowRoot) {\n const a = root.activeElement;\n if (previous == null) {\n if (buttonLeft.current && a === buttonLeft.current) {\n buttonLeft.current.blur();\n }\n } else if (next == null) {\n if (buttonRight.current && a === buttonRight.current) {\n buttonRight.current.blur();\n }\n }\n }\n }\n }[\"LeftRightDialogHeader.useEffect\"], [\n nav,\n next,\n previous\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-dialog-left-right\": true,\n className: className,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"nav\", {\n ref: onNav,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n ref: buttonLeft,\n type: \"button\",\n disabled: previous == null ? true : undefined,\n \"aria-disabled\": previous == null ? true : undefined,\n onClick: previous != null ? previous : undefined,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: \"previous\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M6.99996 1.16666L1.16663 6.99999L6.99996 12.8333M12.8333 6.99999H1.99996H12.8333Z\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })\n ]\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n ref: buttonRight,\n type: \"button\",\n disabled: next == null ? true : undefined,\n \"aria-disabled\": next == null ? true : undefined,\n onClick: next != null ? next : undefined,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: \"next\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M6.99996 1.16666L12.8333 6.99999L6.99996 12.8333M1.16663 6.99999H12H1.16663Z\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })\n ]\n })\n }),\n children\n ]\n }),\n close ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n \"data-nextjs-errors-dialog-left-right-close-button\": true,\n ref: buttonClose,\n type: \"button\",\n onClick: close,\n \"aria-label\": \"Close\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"aria-hidden\": \"true\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_CloseIcon.CloseIcon, {})\n })\n }) : null\n ]\n });\n};\n_s(LeftRightDialogHeader, \"BTIclYWDjFVmQ0IbTZR6SGMkDDk=\");\n_c = LeftRightDialogHeader;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=LeftRightDialogHeader.js.map\nvar _c;\n$RefreshReg$(_c, \"LeftRightDialogHeader\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL0xlZnRSaWdodERpYWxvZ0hlYWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7eURBd0tTQTs7O2VBQUFBOzs7Ozs2RUF4S2M7dUNBQ0c7QUFVMUIsOEJBQ0UsU0FBU0Esc0JBQXNCLEtBTTlCOztJQU44QixNQUM3QkMsUUFBUSxFQUNSQyxTQUFTLEVBQ1RDLFFBQVEsRUFDUkMsSUFBSSxFQUNKQyxLQUFLLEVBQ04sR0FOOEI7SUFPN0IsTUFBTUMsYUFBYUMsT0FBTUMsTUFBTSxDQUEyQjtJQUMxRCxNQUFNQyxjQUFjRixPQUFNQyxNQUFNLENBQTJCO0lBQzNELE1BQU1FLGNBQWNILE9BQU1DLE1BQU0sQ0FBMkI7SUFFM0QsTUFBTSxDQUFDRyxLQUFLQyxPQUFPLEdBQUdMLE9BQU1NLFFBQVEsQ0FBcUI7SUFDekQsTUFBTUMsUUFBUVAsT0FBTVEsV0FBVztvREFBQyxDQUFDQztZQUMvQkosT0FBT0k7UUFDVDttREFBRyxFQUFFO0lBRUxULE9BQU1VLFNBQVM7MkNBQUM7WUFDZCxJQUFJTixPQUFPLE1BQU07Z0JBQ2Y7WUFDRjtZQUVBLE1BQU1PLE9BQU9QLElBQUlRLFdBQVc7WUFDNUIsTUFBTUMsSUFBSUMsS0FBS0MsUUFBUTtZQUV2QixTQUFTQyxRQUFRQyxDQUFnQjtnQkFDL0IsSUFBSUEsRUFBRUMsR0FBRyxLQUFLLGFBQWE7b0JBQ3pCRCxFQUFFRSxjQUFjO29CQUNoQkYsRUFBRUcsZUFBZTtvQkFDakIsSUFBSXJCLFdBQVdzQixPQUFPLEVBQUU7d0JBQ3RCdEIsV0FBV3NCLE9BQU8sQ0FBQ0MsS0FBSztvQkFDMUI7b0JBQ0ExQixZQUFZQTtnQkFDZCxPQUFPLElBQUlxQixFQUFFQyxHQUFHLEtBQUssY0FBYztvQkFDakNELEVBQUVFLGNBQWM7b0JBQ2hCRixFQUFFRyxlQUFlO29CQUNqQixJQUFJbEIsWUFBWW1CLE9BQU8sRUFBRTt3QkFDdkJuQixZQUFZbUIsT0FBTyxDQUFDQyxLQUFLO29CQUMzQjtvQkFDQXpCLFFBQVFBO2dCQUNWLE9BQU8sSUFBSW9CLEVBQUVDLEdBQUcsS0FBSyxVQUFVO29CQUM3QkQsRUFBRUUsY0FBYztvQkFDaEJGLEVBQUVHLGVBQWU7b0JBQ2pCLElBQUlULGdCQUFnQlksWUFBWTt3QkFDOUIsTUFBTUMsSUFBSWIsS0FBS2MsYUFBYTt3QkFDNUIsSUFBSUQsS0FBS0EsTUFBTXJCLFlBQVlrQixPQUFPLElBQUlHLGFBQWFFLGFBQWE7NEJBQzlERixFQUFFRyxJQUFJOzRCQUNOO3dCQUNGO29CQUNGO29CQUVBN0IsU0FBQUEsT0FBQUEsS0FBQUEsSUFBQUE7Z0JBQ0Y7WUFDRjtZQUVBYSxLQUFLaUIsZ0JBQWdCLENBQUMsV0FBV1o7WUFDakMsSUFBSUwsU0FBU0UsR0FBRztnQkFDZEEsRUFBRWUsZ0JBQWdCLENBQUMsV0FBV1o7WUFDaEM7WUFDQTttREFBTztvQkFDTEwsS0FBS2tCLG1CQUFtQixDQUFDLFdBQVdiO29CQUNwQyxJQUFJTCxTQUFTRSxHQUFHO3dCQUNkQSxFQUFFZ0IsbUJBQW1CLENBQUMsV0FBV2I7b0JBQ25DO2dCQUNGOztRQUNGOzBDQUFHO1FBQUNsQjtRQUFPTTtRQUFLUDtRQUFNRDtLQUFTO0lBRS9CLDJFQUEyRTtJQUMzRSwyQ0FBMkM7SUFDM0NJLE9BQU1VLFNBQVM7MkNBQUM7WUFDZCxJQUFJTixPQUFPLE1BQU07Z0JBQ2Y7WUFDRjtZQUVBLE1BQU1PLE9BQU9QLElBQUlRLFdBQVc7WUFDNUIsOENBQThDO1lBQzlDLElBQUlELGdCQUFnQlksWUFBWTtnQkFDOUIsTUFBTUMsSUFBSWIsS0FBS2MsYUFBYTtnQkFFNUIsSUFBSTdCLFlBQVksTUFBTTtvQkFDcEIsSUFBSUcsV0FBV3NCLE9BQU8sSUFBSUcsTUFBTXpCLFdBQVdzQixPQUFPLEVBQUU7d0JBQ2xEdEIsV0FBV3NCLE9BQU8sQ0FBQ00sSUFBSTtvQkFDekI7Z0JBQ0YsT0FBTyxJQUFJOUIsUUFBUSxNQUFNO29CQUN2QixJQUFJSyxZQUFZbUIsT0FBTyxJQUFJRyxNQUFNdEIsWUFBWW1CLE9BQU8sRUFBRTt3QkFDcERuQixZQUFZbUIsT0FBTyxDQUFDTSxJQUFJO29CQUMxQjtnQkFDRjtZQUNGO1FBQ0Y7MENBQUc7UUFBQ3ZCO1FBQUtQO1FBQU1EO0tBQVM7SUFFeEIsT0FDRSxXQURGLEdBQ0Usc0JBQUNrQyxPQUFBQTtRQUFJQywrQkFBNkI7UUFBQ3BDLFdBQVdBOzswQkFDNUMsc0JBQUNTLE9BQUFBO2dCQUFJNEIsS0FBS3pCOztrQ0FDUixxQkFBQzBCLFVBQUFBO3dCQUNDRCxLQUFLakM7d0JBQ0xtQyxNQUFLO3dCQUNMQyxVQUFVdkMsWUFBWSxPQUFPLE9BQU93Qzt3QkFDcENDLGlCQUFlekMsWUFBWSxPQUFPLE9BQU93Qzt3QkFDekNFLFNBQVMxQyxZQUFBQSxPQUFBQSxXQUFZd0M7a0NBRXJCLG9DQUFDRyxPQUFBQTs0QkFDQ0MsU0FBUTs0QkFDUkMsTUFBSzs0QkFDTEMsT0FBTTs7OENBRU4scUJBQUNDLFNBQUFBOzhDQUFNOzs4Q0FDUCxxQkFBQ0MsUUFBQUE7b0NBQ0MvQixHQUFFO29DQUNGZ0MsUUFBTztvQ0FDUEMsYUFBWTtvQ0FDWkMsZUFBYztvQ0FDZEMsZ0JBQWU7Ozs7O2tDQUlyQixxQkFBQ2YsVUFBQUE7d0JBQ0NELEtBQUs5Qjt3QkFDTGdDLE1BQUs7d0JBQ0xDLFVBQVV0QyxRQUFRLE9BQU8sT0FBT3VDO3dCQUNoQ0MsaUJBQWV4QyxRQUFRLE9BQU8sT0FBT3VDO3dCQUNyQ0UsU0FBU3pDLFFBQUFBLE9BQUFBLE9BQVF1QztrQ0FFakIsb0NBQUNHLE9BQUFBOzRCQUNDQyxTQUFROzRCQUNSQyxNQUFLOzRCQUNMQyxPQUFNOzs4Q0FFTixxQkFBQ0MsU0FBQUE7OENBQU07OzhDQUNQLHFCQUFDQyxRQUFBQTtvQ0FDQy9CLEdBQUU7b0NBQ0ZnQyxRQUFPO29DQUNQQyxhQUFZO29DQUNaQyxlQUFjO29DQUNkQyxnQkFBZTs7Ozs7b0JBSXBCdEQ7OztZQUVGSSxRQUNDLFdBRERBLEdBQ0MscUJBQUNtQyxVQUFBQTtnQkFDQ2dCLG1EQUFpRDtnQkFDakRqQixLQUFLN0I7Z0JBQ0wrQixNQUFLO2dCQUNMSSxTQUFTeEM7Z0JBQ1RvRCxjQUFXOzBCQUVYLG1DQUFDQyxRQUFBQTtvQkFBS0MsZUFBWTs4QkFDaEIsbUNBQUNDLFdBQUFBLFNBQVM7O2lCQUdaOzs7QUFHVjs7S0EzSkk1RCIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL0xlZnRSaWdodERpYWxvZ0hlYWRlci9MZWZ0UmlnaHREaWFsb2dIZWFkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ2xvc2VJY29uIH0gZnJvbSAnLi4vLi4vaWNvbnMvQ2xvc2VJY29uJ1xuXG5leHBvcnQgdHlwZSBMZWZ0UmlnaHREaWFsb2dIZWFkZXJQcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIHByZXZpb3VzOiAoKCkgPT4gdm9pZCkgfCBudWxsXG4gIG5leHQ6ICgoKSA9PiB2b2lkKSB8IG51bGxcbiAgY2xvc2U/OiAoKSA9PiB2b2lkXG59XG5cbmNvbnN0IExlZnRSaWdodERpYWxvZ0hlYWRlcjogUmVhY3QuRkM8TGVmdFJpZ2h0RGlhbG9nSGVhZGVyUHJvcHM+ID1cbiAgZnVuY3Rpb24gTGVmdFJpZ2h0RGlhbG9nSGVhZGVyKHtcbiAgICBjaGlsZHJlbixcbiAgICBjbGFzc05hbWUsXG4gICAgcHJldmlvdXMsXG4gICAgbmV4dCxcbiAgICBjbG9zZSxcbiAgfSkge1xuICAgIGNvbnN0IGJ1dHRvbkxlZnQgPSBSZWFjdC51c2VSZWY8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPihudWxsKVxuICAgIGNvbnN0IGJ1dHRvblJpZ2h0ID0gUmVhY3QudXNlUmVmPEhUTUxCdXR0b25FbGVtZW50IHwgbnVsbD4obnVsbClcbiAgICBjb25zdCBidXR0b25DbG9zZSA9IFJlYWN0LnVzZVJlZjxIVE1MQnV0dG9uRWxlbWVudCB8IG51bGw+KG51bGwpXG5cbiAgICBjb25zdCBbbmF2LCBzZXROYXZdID0gUmVhY3QudXNlU3RhdGU8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKVxuICAgIGNvbnN0IG9uTmF2ID0gUmVhY3QudXNlQ2FsbGJhY2soKGVsOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgc2V0TmF2KGVsKVxuICAgIH0sIFtdKVxuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChuYXYgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3Qgcm9vdCA9IG5hdi5nZXRSb290Tm9kZSgpXG4gICAgICBjb25zdCBkID0gc2VsZi5kb2N1bWVudFxuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVyKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGUua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBpZiAoYnV0dG9uTGVmdC5jdXJyZW50KSB7XG4gICAgICAgICAgICBidXR0b25MZWZ0LmN1cnJlbnQuZm9jdXMoKVxuICAgICAgICAgIH1cbiAgICAgICAgICBwcmV2aW91cyAmJiBwcmV2aW91cygpXG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdBcnJvd1JpZ2h0Jykge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICBpZiAoYnV0dG9uUmlnaHQuY3VycmVudCkge1xuICAgICAgICAgICAgYnV0dG9uUmlnaHQuY3VycmVudC5mb2N1cygpXG4gICAgICAgICAgfVxuICAgICAgICAgIG5leHQgJiYgbmV4dCgpXG4gICAgICAgIH0gZWxzZSBpZiAoZS5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGlmIChyb290IGluc3RhbmNlb2YgU2hhZG93Um9vdCkge1xuICAgICAgICAgICAgY29uc3QgYSA9IHJvb3QuYWN0aXZlRWxlbWVudFxuICAgICAgICAgICAgaWYgKGEgJiYgYSAhPT0gYnV0dG9uQ2xvc2UuY3VycmVudCAmJiBhIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgYS5ibHVyKClcbiAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2xvc2U/LigpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlciBhcyBFdmVudExpc3RlbmVyKVxuICAgICAgaWYgKHJvb3QgIT09IGQpIHtcbiAgICAgICAgZC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlcilcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZXIgYXMgRXZlbnRMaXN0ZW5lcilcbiAgICAgICAgaWYgKHJvb3QgIT09IGQpIHtcbiAgICAgICAgICBkLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVyKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgW2Nsb3NlLCBuYXYsIG5leHQsIHByZXZpb3VzXSlcblxuICAgIC8vIFVubG9jayBmb2N1cyBmb3IgYnJvd3NlcnMgbGlrZSBGaXJlZm94LCB0aGF0IGJyZWFrIGFsbCB1c2VyIGZvY3VzIGlmIHRoZVxuICAgIC8vIGN1cnJlbnRseSBmb2N1c2VkIGl0ZW0gYmVjb21lcyBkaXNhYmxlZC5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKG5hdiA9PSBudWxsKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCByb290ID0gbmF2LmdldFJvb3ROb2RlKClcbiAgICAgIC8vIEFsd2F5cyB0cnVlLCBidXQgd2UgZG8gdGhpcyBmb3IgVHlwZVNjcmlwdDpcbiAgICAgIGlmIChyb290IGluc3RhbmNlb2YgU2hhZG93Um9vdCkge1xuICAgICAgICBjb25zdCBhID0gcm9vdC5hY3RpdmVFbGVtZW50XG5cbiAgICAgICAgaWYgKHByZXZpb3VzID09IG51bGwpIHtcbiAgICAgICAgICBpZiAoYnV0dG9uTGVmdC5jdXJyZW50ICYmIGEgPT09IGJ1dHRvbkxlZnQuY3VycmVudCkge1xuICAgICAgICAgICAgYnV0dG9uTGVmdC5jdXJyZW50LmJsdXIoKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChuZXh0ID09IG51bGwpIHtcbiAgICAgICAgICBpZiAoYnV0dG9uUmlnaHQuY3VycmVudCAmJiBhID09PSBidXR0b25SaWdodC5jdXJyZW50KSB7XG4gICAgICAgICAgICBidXR0b25SaWdodC5jdXJyZW50LmJsdXIoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIFtuYXYsIG5leHQsIHByZXZpb3VzXSlcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGRhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgICAgPG5hdiByZWY9e29uTmF2fT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICByZWY9e2J1dHRvbkxlZnR9XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGRpc2FibGVkPXtwcmV2aW91cyA9PSBudWxsID8gdHJ1ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9e3ByZXZpb3VzID09IG51bGwgPyB0cnVlIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgb25DbGljaz17cHJldmlvdXMgPz8gdW5kZWZpbmVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNCAxNFwiXG4gICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDx0aXRsZT5wcmV2aW91czwvdGl0bGU+XG4gICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk02Ljk5OTk2IDEuMTY2NjZMMS4xNjY2MyA2Ljk5OTk5TDYuOTk5OTYgMTIuODMzM00xMi44MzMzIDYuOTk5OTlIMS45OTk5NkgxMi44MzMzWlwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICByZWY9e2J1dHRvblJpZ2h0fVxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBkaXNhYmxlZD17bmV4dCA9PSBudWxsID8gdHJ1ZSA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGFyaWEtZGlzYWJsZWQ9e25leHQgPT0gbnVsbCA/IHRydWUgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBvbkNsaWNrPXtuZXh0ID8/IHVuZGVmaW5lZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTQgMTRcIlxuICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dGl0bGU+bmV4dDwvdGl0bGU+XG4gICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgZD1cIk02Ljk5OTk2IDEuMTY2NjZMMTIuODMzMyA2Ljk5OTk5TDYuOTk5OTYgMTIuODMzM00xLjE2NjYzIDYuOTk5OTlIMTJIMS4xNjY2M1pcIlxuICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9XCIyXCJcbiAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L25hdj5cbiAgICAgICAge2Nsb3NlID8gKFxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGRhdGEtbmV4dGpzLWVycm9ycy1kaWFsb2ctbGVmdC1yaWdodC1jbG9zZS1idXR0b25cbiAgICAgICAgICAgIHJlZj17YnV0dG9uQ2xvc2V9XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e2Nsb3NlfVxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNsb3NlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPENsb3NlSWNvbiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG5leHBvcnQgeyBMZWZ0UmlnaHREaWFsb2dIZWFkZXIgfVxuIl0sIm5hbWVzIjpbIkxlZnRSaWdodERpYWxvZ0hlYWRlciIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwicHJldmlvdXMiLCJuZXh0IiwiY2xvc2UiLCJidXR0b25MZWZ0IiwiUmVhY3QiLCJ1c2VSZWYiLCJidXR0b25SaWdodCIsImJ1dHRvbkNsb3NlIiwibmF2Iiwic2V0TmF2IiwidXNlU3RhdGUiLCJvbk5hdiIsInVzZUNhbGxiYWNrIiwiZWwiLCJ1c2VFZmZlY3QiLCJyb290IiwiZ2V0Um9vdE5vZGUiLCJkIiwic2VsZiIsImRvY3VtZW50IiwiaGFuZGxlciIsImUiLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImN1cnJlbnQiLCJmb2N1cyIsIlNoYWRvd1Jvb3QiLCJhIiwiYWN0aXZlRWxlbWVudCIsIkhUTUxFbGVtZW50IiwiYmx1ciIsImFkZEV2ZW50TGlzdGVuZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZGl2IiwiZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHQiLCJyZWYiLCJidXR0b24iLCJ0eXBlIiwiZGlzYWJsZWQiLCJ1bmRlZmluZWQiLCJhcmlhLWRpc2FibGVkIiwib25DbGljayIsInN2ZyIsInZpZXdCb3giLCJmaWxsIiwieG1sbnMiLCJ0aXRsZSIsInBhdGgiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsImRhdGEtbmV4dGpzLWVycm9ycy1kaWFsb2ctbGVmdC1yaWdodC1jbG9zZS1idXR0b24iLCJhcmlhLWxhYmVsIiwic3BhbiIsImFyaWEtaGlkZGVuIiwiQ2xvc2VJY29uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js": +/*!***********************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js ***! + \***********************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n LeftRightDialogHeader: function() {\n return _LeftRightDialogHeader.LeftRightDialogHeader;\n },\n styles: function() {\n return _styles.styles;\n }\n});\nconst _LeftRightDialogHeader = __webpack_require__(/*! ./LeftRightDialogHeader */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js\");\nconst _styles = __webpack_require__(/*! ./styles */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js\");\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFTQSxxQkFBcUI7ZUFBckJBLHVCQUFBQSxxQkFBcUI7O0lBQ3JCQyxNQUFNO2VBQU5BLFFBQUFBLE1BQU07OzttREFEdUI7b0NBQ2YiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTGVmdFJpZ2h0RGlhbG9nSGVhZGVyIH0gZnJvbSAnLi9MZWZ0UmlnaHREaWFsb2dIZWFkZXInXG5leHBvcnQgeyBzdHlsZXMgfSBmcm9tICcuL3N0eWxlcydcbiJdLCJuYW1lcyI6WyJMZWZ0UmlnaHREaWFsb2dIZWFkZXIiLCJzdHlsZXMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js": +/*!************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js ***! + \************************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"styles\", ({\n enumerable: true,\n get: function() {\n return styles;\n }\n}));\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-dialog-left-right] {\\n display: flex;\\n flex-direction: row;\\n align-content: center;\\n align-items: center;\\n justify-content: space-between;\\n }\\n [data-nextjs-dialog-left-right] > nav {\\n flex: 1;\\n display: flex;\\n align-items: center;\\n margin-right: var(--size-gap);\\n }\\n [data-nextjs-dialog-left-right] > nav > button {\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n\\n width: calc(var(--size-gap-double) + var(--size-gap));\\n height: calc(var(--size-gap-double) + var(--size-gap));\\n font-size: 0;\\n border: none;\\n background-color: rgba(255, 85, 85, 0.1);\\n color: var(--color-ansi-red);\\n cursor: pointer;\\n transition: background-color 0.25s ease;\\n }\\n [data-nextjs-dialog-left-right] > nav > button > svg {\\n width: auto;\\n height: calc(var(--size-gap) + var(--size-gap-half));\\n }\\n [data-nextjs-dialog-left-right] > nav > button:hover {\\n background-color: rgba(255, 85, 85, 0.2);\\n }\\n [data-nextjs-dialog-left-right] > nav > button:disabled {\\n background-color: rgba(255, 85, 85, 0.1);\\n color: rgba(255, 85, 85, 0.4);\\n cursor: not-allowed;\\n }\\n\\n [data-nextjs-dialog-left-right] > nav > button:first-of-type {\\n border-radius: var(--size-gap-half) 0 0 var(--size-gap-half);\\n margin-right: 1px;\\n }\\n [data-nextjs-dialog-left-right] > nav > button:last-of-type {\\n border-radius: 0 var(--size-gap-half) var(--size-gap-half) 0;\\n }\\n\\n [data-nextjs-dialog-left-right] > button:last-of-type {\\n border: 0;\\n padding: 0;\\n\\n background-color: transparent;\\n appearance: none;\\n\\n opacity: 0.4;\\n transition: opacity 0.25s ease;\\n\\n color: var(--color-font);\\n }\\n [data-nextjs-dialog-left-right] > button:last-of-type:hover {\\n opacity: 0.7;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=styles.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL3N0eWxlcy5qcyIsIm1hcHBpbmdzIjoiOzs7OzBDQW9FU0E7OztlQUFBQTs7OzswQ0FwRW1COzs7Ozs7Ozs7O0FBRTVCLE1BQU1BLFNBQUFBLENBQUFBLEdBQVNDLGNBQUFBLElBQUFBLEVBQUciLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXIvc3R5bGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlJ1xuXG5jb25zdCBzdHlsZXMgPSBjc3NgXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zaXplLWdhcCk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgIHdpZHRoOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcCkpO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXApKTtcbiAgICBmb250LXNpemU6IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA4NSwgODUsIDAuMSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlO1xuICB9XG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctbGVmdC1yaWdodF0gPiBuYXYgPiBidXR0b24gPiBzdmcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogY2FsYyh2YXIoLS1zaXplLWdhcCkgKyB2YXIoLS1zaXplLWdhcC1oYWxmKSk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IG5hdiA+IGJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDg1LCA4NSwgMC4yKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjEpO1xuICAgIGNvbG9yOiByZ2JhKDI1NSwgODUsIDg1LCAwLjQpO1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmZpcnN0LW9mLXR5cGUge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLWhhbGYpIDAgMCB2YXIoLS1zaXplLWdhcC1oYWxmKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFweDtcbiAgfVxuICBbZGF0YS1uZXh0anMtZGlhbG9nLWxlZnQtcmlnaHRdID4gbmF2ID4gYnV0dG9uOmxhc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMCB2YXIoLS1zaXplLWdhcC1oYWxmKSB2YXIoLS1zaXplLWdhcC1oYWxmKSAwO1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IGJ1dHRvbjpsYXN0LW9mLXR5cGUge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcblxuICAgIG9wYWNpdHk6IDAuNDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG5cbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZm9udCk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1sZWZ0LXJpZ2h0XSA+IGJ1dHRvbjpsYXN0LW9mLXR5cGU6aG92ZXIge1xuICAgIG9wYWNpdHk6IDAuNztcbiAgfVxuYFxuXG5leHBvcnQgeyBzdHlsZXMgfVxuIl0sIm5hbWVzIjpbInN0eWxlcyIsImNzcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js": +/*!***********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js ***! + \***********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Overlay\", ({\n enumerable: true,\n get: function() {\n return Overlay;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _maintaintabfocus = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./maintain--tab-focus */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js\"));\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _bodylocker = __webpack_require__(/*! ./body-locker */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js\");\nconst Overlay = function Overlay(param) {\n _s();\n let { className, children, fixed } = param;\n _react.useEffect({\n \"Overlay.useEffect\": ()=>{\n (0, _bodylocker.lock)();\n return ({\n \"Overlay.useEffect\": ()=>{\n (0, _bodylocker.unlock)();\n }\n })[\"Overlay.useEffect\"];\n }\n }[\"Overlay.useEffect\"], []);\n const [overlay, setOverlay] = _react.useState(null);\n const onOverlay = _react.useCallback({\n \"Overlay.useCallback[onOverlay]\": (el)=>{\n setOverlay(el);\n }\n }[\"Overlay.useCallback[onOverlay]\"], []);\n _react.useEffect({\n \"Overlay.useEffect\": ()=>{\n if (overlay == null) {\n return;\n }\n const handle2 = (0, _maintaintabfocus.default)({\n context: overlay\n });\n return ({\n \"Overlay.useEffect\": ()=>{\n handle2.disengage();\n }\n })[\"Overlay.useEffect\"];\n }\n }[\"Overlay.useEffect\"], [\n overlay\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-dialog-overlay\": true,\n className: className,\n ref: onOverlay,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-dialog-backdrop\": true,\n \"data-nextjs-dialog-backdrop-fixed\": fixed ? true : undefined\n }),\n children\n ]\n });\n};\n_s(Overlay, \"7AKWSbA/gHapd2YTyFggUak94M8=\");\n_c = Overlay;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=Overlay.js.map\nvar _c;\n$RefreshReg$(_c, \"Overlay\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5LmpzIiwibWFwcGluZ3MiOiI7Ozs7OzsyQ0FpRFNBOzs7ZUFBQUE7Ozs7Ozt1RkFqRFk7NkVBQ0U7d0NBQ007QUFRN0IsZ0JBQXdDLFNBQVNBLFFBQVEsS0FJeEQ7O0lBSndELE1BQ3ZEQyxTQUFTLEVBQ1RDLFFBQVEsRUFDUkMsS0FBSyxFQUNOLEdBSndEO0lBS3ZEQyxPQUFNQyxTQUFTOzZCQUFDO1lBQ2RDLENBQUFBLEdBQUFBLFlBQUFBLElBQUFBO1lBQ0E7cUNBQU87b0JBQ0xDLENBQUFBLEdBQUFBLFlBQUFBLE1BQUFBO2dCQUNGOztRQUNGOzRCQUFHLEVBQUU7SUFFTCxNQUFNLENBQUNDLFNBQVNDLFdBQVcsR0FBR0wsT0FBTU0sUUFBUSxDQUF3QjtJQUNwRSxNQUFNQyxZQUFZUCxPQUFNUSxXQUFXOzBDQUFDLENBQUNDO1lBQ25DSixXQUFXSTtRQUNiO3lDQUFHLEVBQUU7SUFFTFQsT0FBTUMsU0FBUzs2QkFBQztZQUNkLElBQUlHLFdBQVcsTUFBTTtnQkFDbkI7WUFDRjtZQUVBLE1BQU1NLFVBQVVDLENBQUFBLEdBQUFBLGtCQUFBQSxPQUFBQSxFQUFTO2dCQUFFQyxTQUFTUjtZQUFRO1lBQzVDO3FDQUFPO29CQUNMTSxRQUFRRyxTQUFTO2dCQUNuQjs7UUFDRjs0QkFBRztRQUFDVDtLQUFRO0lBRVoscUJBQ0Usc0JBQUNVLE9BQUFBO1FBQUlDLDRCQUEwQjtRQUFDbEIsV0FBV0E7UUFBV21CLEtBQUtUOzswQkFDekQscUJBQUNPLE9BQUFBO2dCQUNDRyw2QkFBMkI7Z0JBQzNCQyxxQ0FBbUNuQixRQUFRLE9BQU9vQjs7WUFFbkRyQjs7O0FBR1A7O0tBckNNRiIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL092ZXJsYXkvT3ZlcmxheS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFsbHlUcmFwIGZyb20gJy4vbWFpbnRhaW4tLXRhYi1mb2N1cydcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgbG9jaywgdW5sb2NrIH0gZnJvbSAnLi9ib2R5LWxvY2tlcidcblxuZXhwb3J0IHR5cGUgT3ZlcmxheVByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgZml4ZWQ/OiBib29sZWFuXG59XG5cbmNvbnN0IE92ZXJsYXk6IFJlYWN0LkZDPE92ZXJsYXlQcm9wcz4gPSBmdW5jdGlvbiBPdmVybGF5KHtcbiAgY2xhc3NOYW1lLFxuICBjaGlsZHJlbixcbiAgZml4ZWQsXG59KSB7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbG9jaygpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHVubG9jaygpXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBbb3ZlcmxheSwgc2V0T3ZlcmxheV0gPSBSZWFjdC51c2VTdGF0ZTxIVE1MRGl2RWxlbWVudCB8IG51bGw+KG51bGwpXG4gIGNvbnN0IG9uT3ZlcmxheSA9IFJlYWN0LnVzZUNhbGxiYWNrKChlbDogSFRNTERpdkVsZW1lbnQpID0+IHtcbiAgICBzZXRPdmVybGF5KGVsKVxuICB9LCBbXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChvdmVybGF5ID09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZTIgPSBhbGx5VHJhcCh7IGNvbnRleHQ6IG92ZXJsYXkgfSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaGFuZGxlMi5kaXNlbmdhZ2UoKVxuICAgIH1cbiAgfSwgW292ZXJsYXldKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gcmVmPXtvbk92ZXJsYXl9PlxuICAgICAgPGRpdlxuICAgICAgICBkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3BcbiAgICAgICAgZGF0YS1uZXh0anMtZGlhbG9nLWJhY2tkcm9wLWZpeGVkPXtmaXhlZCA/IHRydWUgOiB1bmRlZmluZWR9XG4gICAgICAvPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCB7IE92ZXJsYXkgfVxuIl0sIm5hbWVzIjpbIk92ZXJsYXkiLCJjbGFzc05hbWUiLCJjaGlsZHJlbiIsImZpeGVkIiwiUmVhY3QiLCJ1c2VFZmZlY3QiLCJsb2NrIiwidW5sb2NrIiwib3ZlcmxheSIsInNldE92ZXJsYXkiLCJ1c2VTdGF0ZSIsIm9uT3ZlcmxheSIsInVzZUNhbGxiYWNrIiwiZWwiLCJoYW5kbGUyIiwiYWxseVRyYXAiLCJjb250ZXh0IiwiZGlzZW5nYWdlIiwiZGl2IiwiZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXkiLCJyZWYiLCJkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3AiLCJkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3AtZml4ZWQiLCJ1bmRlZmluZWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js": +/*!***************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js ***! + \***************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n lock: function() {\n return lock;\n },\n unlock: function() {\n return unlock;\n }\n});\nlet previousBodyPaddingRight;\nlet previousBodyOverflowSetting;\nlet activeLocks = 0;\nfunction lock() {\n setTimeout(()=>{\n if (activeLocks++ > 0) {\n return;\n }\n const scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n if (scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = \"\" + scrollBarGap + \"px\";\n }\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n });\n}\nfunction unlock() {\n setTimeout(()=>{\n if (activeLocks === 0 || --activeLocks !== 0) {\n return;\n }\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n previousBodyPaddingRight = undefined;\n }\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n previousBodyOverflowSetting = undefined;\n }\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=body-locker.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9ib2R5LWxvY2tlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFLZ0JBLElBQUk7ZUFBSkE7O0lBbUJBQyxNQUFNO2VBQU5BOzs7QUF4QmhCLElBQUlDO0FBQ0osSUFBSUM7QUFFSixJQUFJQyxjQUFjO0FBRVgsU0FBU0o7SUFDZEssV0FBVztRQUNULElBQUlELGdCQUFnQixHQUFHO1lBQ3JCO1FBQ0Y7UUFFQSxNQUFNRSxlQUNKQyxPQUFPQyxVQUFVLEdBQUdDLFNBQVNDLGVBQWUsQ0FBQ0MsV0FBVztRQUUxRCxJQUFJTCxlQUFlLEdBQUc7WUFDcEJKLDJCQUEyQk8sU0FBU0csSUFBSSxDQUFDQyxLQUFLLENBQUNDLFlBQVk7WUFDM0RMLFNBQVNHLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxZQUFZLEdBQUksS0FBRVIsZUFBYTtRQUNyRDtRQUVBSCw4QkFBOEJNLFNBQVNHLElBQUksQ0FBQ0MsS0FBSyxDQUFDRSxRQUFRO1FBQzFETixTQUFTRyxJQUFJLENBQUNDLEtBQUssQ0FBQ0UsUUFBUSxHQUFHO0lBQ2pDO0FBQ0Y7QUFFTyxTQUFTZDtJQUNkSSxXQUFXO1FBQ1QsSUFBSUQsZ0JBQWdCLEtBQUssRUFBRUEsZ0JBQWdCLEdBQUc7WUFDNUM7UUFDRjtRQUVBLElBQUlGLDZCQUE2QmMsV0FBVztZQUMxQ1AsU0FBU0csSUFBSSxDQUFDQyxLQUFLLENBQUNDLFlBQVksR0FBR1o7WUFDbkNBLDJCQUEyQmM7UUFDN0I7UUFFQSxJQUFJYixnQ0FBZ0NhLFdBQVc7WUFDN0NQLFNBQVNHLElBQUksQ0FBQ0MsS0FBSyxDQUFDRSxRQUFRLEdBQUdaO1lBQy9CQSw4QkFBOEJhO1FBQ2hDO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL092ZXJsYXkvYm9keS1sb2NrZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IHByZXZpb3VzQm9keVBhZGRpbmdSaWdodDogc3RyaW5nIHwgdW5kZWZpbmVkXG5sZXQgcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nOiBzdHJpbmcgfCB1bmRlZmluZWRcblxubGV0IGFjdGl2ZUxvY2tzID0gMFxuXG5leHBvcnQgZnVuY3Rpb24gbG9jaygpIHtcbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgaWYgKGFjdGl2ZUxvY2tzKysgPiAwKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBzY3JvbGxCYXJHYXAgPVxuICAgICAgd2luZG93LmlubmVyV2lkdGggLSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGhcblxuICAgIGlmIChzY3JvbGxCYXJHYXAgPiAwKSB7XG4gICAgICBwcmV2aW91c0JvZHlQYWRkaW5nUmlnaHQgPSBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodFxuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5wYWRkaW5nUmlnaHQgPSBgJHtzY3JvbGxCYXJHYXB9cHhgXG4gICAgfVxuXG4gICAgcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nID0gZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvd1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJ1xuICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5sb2NrKCkge1xuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICBpZiAoYWN0aXZlTG9ja3MgPT09IDAgfHwgLS1hY3RpdmVMb2NrcyAhPT0gMCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHByZXZpb3VzQm9keVBhZGRpbmdSaWdodCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9IHByZXZpb3VzQm9keVBhZGRpbmdSaWdodFxuICAgICAgcHJldmlvdXNCb2R5UGFkZGluZ1JpZ2h0ID0gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgaWYgKHByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gcHJldmlvdXNCb2R5T3ZlcmZsb3dTZXR0aW5nXG4gICAgICBwcmV2aW91c0JvZHlPdmVyZmxvd1NldHRpbmcgPSB1bmRlZmluZWRcbiAgICB9XG4gIH0pXG59XG4iXSwibmFtZXMiOlsibG9jayIsInVubG9jayIsInByZXZpb3VzQm9keVBhZGRpbmdSaWdodCIsInByZXZpb3VzQm9keU92ZXJmbG93U2V0dGluZyIsImFjdGl2ZUxvY2tzIiwic2V0VGltZW91dCIsInNjcm9sbEJhckdhcCIsIndpbmRvdyIsImlubmVyV2lkdGgiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsaWVudFdpZHRoIiwiYm9keSIsInN0eWxlIiwicGFkZGluZ1JpZ2h0Iiwib3ZlcmZsb3ciLCJ1bmRlZmluZWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js": +/*!*********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js ***! + \*********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Overlay\", ({\n enumerable: true,\n get: function() {\n return _Overlay.Overlay;\n }\n}));\nconst _Overlay = __webpack_require__(/*! ./Overlay */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js\");\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9pbmRleC5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQUFTQTs7O2VBQUFBLFNBQUFBLE9BQU87OztxQ0FBUSIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL092ZXJsYXkvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE92ZXJsYXkgfSBmcm9tICcuL092ZXJsYXknXG4iXSwibmFtZXMiOlsiT3ZlcmxheSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js": +/*!***********************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js ***! + \***********************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/* eslint-disable */ // @ts-nocheck\n// Copied from https://github.com/medialize/ally.js\n// License: MIT\n// Copyright (c) 2015 Rodney Rehm\n//\n// Entrypoint: ally.js/maintain/tab-focus\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _platform = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/platform */ \"./node_modules/next/dist/compiled/platform/platform.js\"));\nconst _cssescape = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/css.escape */ \"./node_modules/next/dist/compiled/css.escape/css.escape.js\"));\n// input may be undefined, selector-tring, Node, NodeList, HTMLCollection, array of Nodes\n// yes, to some extent this is a bad replica of jQuery's constructor function\nfunction nodeArray(input) {\n if (!input) {\n return [];\n }\n if (Array.isArray(input)) {\n return input;\n }\n // instanceof Node - does not work with iframes\n if (input.nodeType !== undefined) {\n return [\n input\n ];\n }\n if (typeof input === 'string') {\n input = document.querySelectorAll(input);\n }\n if (input.length !== undefined) {\n return [].slice.call(input, 0);\n }\n throw new TypeError('unexpected input ' + String(input));\n}\nfunction contextToElement(_ref) {\n var context = _ref.context, _ref$label = _ref.label, label = _ref$label === undefined ? 'context-to-element' : _ref$label, resolveDocument = _ref.resolveDocument, defaultToDocument = _ref.defaultToDocument;\n var element = nodeArray(context)[0];\n if (resolveDocument && element && element.nodeType === Node.DOCUMENT_NODE) {\n element = element.documentElement;\n }\n if (!element && defaultToDocument) {\n return document.documentElement;\n }\n if (!element) {\n throw new TypeError(label + ' requires valid options.context');\n }\n if (element.nodeType !== Node.ELEMENT_NODE && element.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n throw new TypeError(label + ' requires options.context to be an Element');\n }\n return element;\n}\nfunction getShadowHost() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context;\n var element = contextToElement({\n label: 'get/shadow-host',\n context: context\n });\n // walk up to the root\n var container = null;\n while(element){\n container = element;\n element = element.parentNode;\n }\n // https://developer.mozilla.org/docs/Web/API/Node.nodeType\n // NOTE: Firefox 34 does not expose ShadowRoot.host (but 37 does)\n if (container.nodeType === container.DOCUMENT_FRAGMENT_NODE && container.host) {\n // the root is attached to a fragment node that has a host\n return container.host;\n }\n return null;\n}\nfunction getDocument(node) {\n if (!node) {\n return document;\n }\n if (node.nodeType === Node.DOCUMENT_NODE) {\n return node;\n }\n return node.ownerDocument || document;\n}\nfunction isActiveElement(context) {\n var element = contextToElement({\n label: 'is/active-element',\n resolveDocument: true,\n context: context\n });\n var _document = getDocument(element);\n if (_document.activeElement === element) {\n return true;\n }\n var shadowHost = getShadowHost({\n context: element\n });\n if (shadowHost && shadowHost.shadowRoot.activeElement === element) {\n return true;\n }\n return false;\n}\n// [elem, elem.parent, elem.parent.parent, …, html]\n// will not contain the shadowRoot (DOCUMENT_FRAGMENT_NODE) and shadowHost\nfunction getParents() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context;\n var list = [];\n var element = contextToElement({\n label: 'get/parents',\n context: context\n });\n while(element){\n list.push(element);\n // IE does know support parentElement on SVGElement\n element = element.parentNode;\n if (element && element.nodeType !== Node.ELEMENT_NODE) {\n element = null;\n }\n }\n return list;\n}\n// Element.prototype.matches may be available at a different name\n// https://developer.mozilla.org/en/docs/Web/API/Element/matches\nvar names = [\n 'matches',\n 'webkitMatchesSelector',\n 'mozMatchesSelector',\n 'msMatchesSelector'\n];\nvar name = null;\nfunction findMethodName(element) {\n names.some(function(_name) {\n if (!element[_name]) {\n return false;\n }\n name = _name;\n return true;\n });\n}\nfunction elementMatches(element, selector) {\n if (!name) {\n findMethodName(element);\n }\n return element[name](selector);\n}\n// deep clone of original platform\nvar platform = JSON.parse(JSON.stringify(_platform.default));\n// operating system\nvar os = platform.os.family || '';\nvar ANDROID = os === 'Android';\nvar WINDOWS = os.slice(0, 7) === 'Windows';\nvar OSX = os === 'OS X';\nvar IOS = os === 'iOS';\n// layout\nvar BLINK = platform.layout === 'Blink';\nvar GECKO = platform.layout === 'Gecko';\nvar TRIDENT = platform.layout === 'Trident';\nvar EDGE = platform.layout === 'EdgeHTML';\nvar WEBKIT = platform.layout === 'WebKit';\n// browser version (not layout engine version!)\nvar version = parseFloat(platform.version);\nvar majorVersion = Math.floor(version);\nplatform.majorVersion = majorVersion;\nplatform.is = {\n // operating system\n ANDROID: ANDROID,\n WINDOWS: WINDOWS,\n OSX: OSX,\n IOS: IOS,\n // layout\n BLINK: BLINK,\n GECKO: GECKO,\n TRIDENT: TRIDENT,\n EDGE: EDGE,\n WEBKIT: WEBKIT,\n // INTERNET EXPLORERS\n IE9: TRIDENT && majorVersion === 9,\n IE10: TRIDENT && majorVersion === 10,\n IE11: TRIDENT && majorVersion === 11\n};\nfunction before() {\n var data = {\n // remember what had focus to restore after test\n activeElement: document.activeElement,\n // remember scroll positions to restore after test\n windowScrollTop: window.scrollTop,\n windowScrollLeft: window.scrollLeft,\n bodyScrollTop: document.body.scrollTop,\n bodyScrollLeft: document.body.scrollLeft\n };\n // wrap tests in an element hidden from screen readers to prevent them\n // from announcing focus, which can be quite irritating to the user\n var iframe = document.createElement('iframe');\n iframe.setAttribute('style', 'position:absolute; position:fixed; top:0; left:-2px; width:1px; height:1px; overflow:hidden;');\n iframe.setAttribute('aria-live', 'off');\n iframe.setAttribute('aria-busy', 'true');\n iframe.setAttribute('aria-hidden', 'true');\n document.body.appendChild(iframe);\n var _window = iframe.contentWindow;\n var _document = _window.document;\n _document.open();\n _document.close();\n var wrapper = _document.createElement('div');\n _document.body.appendChild(wrapper);\n data.iframe = iframe;\n data.wrapper = wrapper;\n data.window = _window;\n data.document = _document;\n return data;\n}\n// options.element:\n// {string} element name\n// {function} callback(wrapper, document) to generate an element\n// options.mutate: (optional)\n// {function} callback(element, wrapper, document) to manipulate element prior to focus-test.\n// Can return DOMElement to define focus target (default: element)\n// options.validate: (optional)\n// {function} callback(element, focusTarget, document) to manipulate test-result\nfunction test(data, options) {\n // make sure we operate on a clean slate\n data.wrapper.innerHTML = '';\n // create dummy element to test focusability of\n var element = typeof options.element === 'string' ? data.document.createElement(options.element) : options.element(data.wrapper, data.document);\n // allow callback to further specify dummy element\n // and optionally define element to focus\n var focus = options.mutate && options.mutate(element, data.wrapper, data.document);\n if (!focus && focus !== false) {\n focus = element;\n }\n // element needs to be part of the DOM to be focusable\n !element.parentNode && data.wrapper.appendChild(element);\n // test if the element with invalid tabindex can be focused\n focus && focus.focus && focus.focus();\n // validate test's result\n return options.validate ? options.validate(element, focus, data.document) : data.document.activeElement === focus;\n}\nfunction after(data) {\n // restore focus to what it was before test and cleanup\n if (data.activeElement === document.body) {\n document.activeElement && document.activeElement.blur && document.activeElement.blur();\n if (platform.is.IE10) {\n // IE10 does not redirect focus to <body> when the activeElement is removed\n document.body.focus();\n }\n } else {\n data.activeElement && data.activeElement.focus && data.activeElement.focus();\n }\n document.body.removeChild(data.iframe);\n // restore scroll position\n window.scrollTop = data.windowScrollTop;\n window.scrollLeft = data.windowScrollLeft;\n document.body.scrollTop = data.bodyScrollTop;\n document.body.scrollLeft = data.bodyScrollLeft;\n}\nfunction detectFocus(tests) {\n var data = before();\n var results = {};\n Object.keys(tests).map(function(key) {\n results[key] = test(data, tests[key]);\n });\n after(data);\n return results;\n}\n// this file is overwritten by `npm run build:pre`\nvar version$1 = '1.4.1';\n/*\n Facility to cache test results in localStorage.\n\n USAGE:\n cache.get('key');\n cache.set('key', 'value');\n */ function readLocalStorage(key) {\n // allow reading from storage to retrieve previous support results\n // even while the document does not have focus\n var data = void 0;\n try {\n data = window.localStorage && window.localStorage.getItem(key);\n data = data ? JSON.parse(data) : {};\n } catch (e) {\n data = {};\n }\n return data;\n}\nfunction writeLocalStorage(key, value) {\n if (!document.hasFocus()) {\n // if the document does not have focus when tests are executed, focus() may\n // not be handled properly and events may not be dispatched immediately.\n // This can happen when a document is reloaded while Developer Tools have focus.\n try {\n window.localStorage && window.localStorage.removeItem(key);\n } catch (e) {\n // ignore\n }\n return;\n }\n try {\n window.localStorage && window.localStorage.setItem(key, JSON.stringify(value));\n } catch (e) {\n // ignore\n }\n}\nvar userAgent = true && window.navigator.userAgent || '';\nvar cacheKey = 'ally-supports-cache';\nvar cache = readLocalStorage(cacheKey);\n// update the cache if ally or the user agent changed (newer version, etc)\nif (cache.userAgent !== userAgent || cache.version !== version$1) {\n cache = {};\n}\ncache.userAgent = userAgent;\ncache.version = version$1;\nvar cache$1 = {\n get: function get() {\n return cache;\n },\n set: function set(values) {\n Object.keys(values).forEach(function(key) {\n cache[key] = values[key];\n });\n cache.time = new Date().toISOString();\n writeLocalStorage(cacheKey, cache);\n }\n};\nfunction cssShadowPiercingDeepCombinator() {\n var combinator = void 0;\n // see https://dev.w3.org/csswg/css-scoping-1/#deep-combinator\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1117572\n // https://code.google.com/p/chromium/issues/detail?id=446051\n try {\n document.querySelector('html >>> :first-child');\n combinator = '>>>';\n } catch (noArrowArrowArrow) {\n try {\n // old syntax supported at least up to Chrome 41\n // https://code.google.com/p/chromium/issues/detail?id=446051\n document.querySelector('html /deep/ :first-child');\n combinator = '/deep/';\n } catch (noDeep) {\n combinator = '';\n }\n }\n return combinator;\n}\nvar gif = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaImgTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-tabindex-test\">' + '<area shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-tabindex-test\" tabindex=\"-1\" alt=\"\" src=\"' + gif + '\">';\n return element.querySelector('area');\n }\n};\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-tabindex-test\">' + '<area href=\"#void\" tabindex=\"-1\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-tabindex-test\" alt=\"\" src=\"' + gif + '\">';\n return false;\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n var focus = element.querySelector('area');\n focus.focus();\n return _document.activeElement === focus;\n }\n};\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusAreaWithoutHref = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-area-href-test\">' + '<area shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-area-href-test\" alt=\"\" src=\"' + gif + '\">';\n return element.querySelector('area');\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // fixes https://github.com/medialize/ally.js/issues/35\n // Firefox loads the DataURI asynchronously, causing a false-negative\n return true;\n }\n return _document.activeElement === focusTarget;\n }\n};\nvar focusAudioWithoutControls = {\n name: 'can-focus-audio-without-controls',\n element: 'audio',\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', gif);\n } catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n }\n};\nvar invalidGif = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ';\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusBrokenImageMap = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"broken-image-map-test\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#broken-image-map-test\" alt=\"\" src=\"' + invalidGif + '\">';\n return element.querySelector('area');\n }\n};\n// Children of focusable elements with display:flex are focusable in IE10-11\nvar focusChildrenOfFocusableFlexbox = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '-1');\n element.setAttribute('style', 'display: -webkit-flex; display: -ms-flexbox; display: flex;');\n element.innerHTML = '<span style=\"display: block;\">hello</span>';\n return element.querySelector('span');\n }\n};\n// fieldset[tabindex=0][disabled] should not be focusable, but Blink and WebKit disagree\n// @specification https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\n// @browser-issue Chromium https://crbug.com/453847\n// @browser-issue WebKit https://bugs.webkit.org/show_bug.cgi?id=141086\nvar focusFieldsetDisabled = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 0);\n element.setAttribute('disabled', 'disabled');\n }\n};\nvar focusFieldset = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.innerHTML = '<legend>legend</legend><p>content</p>';\n }\n};\n// elements with display:flex are focusable in IE10-11\nvar focusFlexboxContainer = {\n element: 'span',\n mutate: function mutate(element) {\n element.setAttribute('style', 'display: -webkit-flex; display: -ms-flexbox; display: flex;');\n element.innerHTML = '<span style=\"display: block;\">hello</span>';\n }\n};\n// form[tabindex=0][disabled] should be focusable as the\n// specification doesn't know the disabled attribute on the form element\n// @specification https://www.w3.org/TR/html5/forms.html#the-form-element\nvar focusFormDisabled = {\n element: 'form',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 0);\n element.setAttribute('disabled', 'disabled');\n }\n};\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// fixes https://github.com/medialize/ally.js/issues/20\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-ismap\nvar focusImgIsmap = {\n element: 'a',\n mutate: function mutate(element) {\n element.href = '#void';\n element.innerHTML = '<img ismap src=\"' + gif + '\" alt=\"\">';\n return element.querySelector('img');\n }\n};\n// NOTE: https://github.com/medialize/ally.js/issues/35\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\nvar focusImgUsemapTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"image-map-tabindex-test\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#image-map-tabindex-test\" tabindex=\"-1\" alt=\"\" ' + 'src=\"' + gif + '\">';\n return element.querySelector('img');\n }\n};\nvar focusInHiddenIframe = {\n element: function element(wrapper, _document) {\n var iframe = _document.createElement('iframe');\n // iframe must be part of the DOM before accessing the contentWindow is possible\n wrapper.appendChild(iframe);\n // create the iframe's default document (<html><head></head><body></body></html>)\n var iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.close();\n return iframe;\n },\n mutate: function mutate(iframe) {\n iframe.style.visibility = 'hidden';\n var iframeDocument = iframe.contentWindow.document;\n var input = iframeDocument.createElement('input');\n iframeDocument.body.appendChild(input);\n return input;\n },\n validate: function validate(iframe) {\n var iframeDocument = iframe.contentWindow.document;\n var focus = iframeDocument.querySelector('input');\n return iframeDocument.activeElement === focus;\n }\n};\nvar result = !platform.is.WEBKIT;\nfunction focusInZeroDimensionObject() {\n return result;\n}\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusInvalidTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', 'invalid-value');\n }\n};\nvar focusLabelTabindex = {\n element: 'label',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '-1');\n },\n validate: function validate(element, focusTarget, _document) {\n // force layout in Chrome 49, otherwise the element won't be focusable\n /* eslint-disable no-unused-vars */ var variableToPreventDeadCodeElimination = element.offsetHeight;\n /* eslint-enable no-unused-vars */ element.focus();\n return _document.activeElement === element;\n }\n};\nvar svg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtb' + 'G5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBpZD0ic3ZnIj48dGV4dCB4PSIxMCIgeT0iMjAiIGlkPSJ' + 'zdmctbGluay10ZXh0Ij50ZXh0PC90ZXh0Pjwvc3ZnPg==';\n// Note: IE10 on BrowserStack does not like this test\nvar focusObjectSvgHidden = {\n element: 'object',\n mutate: function mutate(element) {\n element.setAttribute('type', 'image/svg+xml');\n element.setAttribute('data', svg);\n element.setAttribute('width', '200');\n element.setAttribute('height', '50');\n element.style.visibility = 'hidden';\n }\n};\n// Note: IE10 on BrowserStack does not like this test\nvar focusObjectSvg = {\n name: 'can-focus-object-svg',\n element: 'object',\n mutate: function mutate(element) {\n element.setAttribute('type', 'image/svg+xml');\n element.setAttribute('data', svg);\n element.setAttribute('width', '200');\n element.setAttribute('height', '50');\n },\n validate: function validate(element, focusTarget, _document) {\n if (platform.is.GECKO) {\n // Firefox seems to be handling the object creation asynchronously and thereby produces a false negative test result.\n // Because we know Firefox is able to focus object elements referencing SVGs, we simply cheat by sniffing the user agent string\n return true;\n }\n return _document.activeElement === element;\n }\n};\n// Every Environment except IE9 considers SWF objects focusable\nvar result$1 = !platform.is.IE9;\nfunction focusObjectSwf() {\n return result$1;\n}\nvar focusRedirectImgUsemap = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = '<map name=\"focus-redirect-img-usemap\"><area href=\"#void\" shape=\"rect\" coords=\"63,19,144,45\"></map>' + '<img usemap=\"#focus-redirect-img-usemap\" alt=\"\" ' + 'src=\"' + gif + '\">';\n // focus the <img>, not the <div>\n return element.querySelector('img');\n },\n validate: function validate(element, focusTarget, _document) {\n var target = element.querySelector('area');\n return _document.activeElement === target;\n }\n};\n// see https://jsbin.com/nenirisage/edit?html,js,console,output\nvar focusRedirectLegend = {\n element: 'fieldset',\n mutate: function mutate(element) {\n element.innerHTML = '<legend>legend</legend><input tabindex=\"-1\"><input tabindex=\"0\">';\n // take care of focus in validate();\n return false;\n },\n validate: function validate(element, focusTarget, _document) {\n var focusable = element.querySelector('input[tabindex=\"-1\"]');\n var tabbable = element.querySelector('input[tabindex=\"0\"]');\n // Firefox requires this test to focus the <fieldset> first, while this is not necessary in\n // https://jsbin.com/nenirisage/edit?html,js,console,output\n element.focus();\n element.querySelector('legend').focus();\n return _document.activeElement === focusable && 'focusable' || _document.activeElement === tabbable && 'tabbable' || '';\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollBody = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;');\n element.innerHTML = '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n return element.querySelector('div');\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainerWithoutOverflow = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px;');\n element.innerHTML = '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n }\n};\n// https://github.com/medialize/ally.js/issues/21\nvar focusScrollContainer = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('style', 'width: 100px; height: 50px; overflow: auto;');\n element.innerHTML = '<div style=\"width: 500px; height: 40px;\">scrollable content</div>';\n }\n};\nvar focusSummary = {\n element: 'details',\n mutate: function mutate(element) {\n element.innerHTML = '<summary>foo</summary><p>content</p>';\n return element.firstElementChild;\n }\n};\nfunction makeFocusableForeignObject() {\n // Constructs <foreignObject width=\"30\" height=\"30\"><input type=\"text\"/></foreignObject>\n // without raising a Trusted Types violation\n var foreignObject = document.createElementNS('http://www.w3.org/2000/svg', 'foreignObject');\n foreignObject.width.baseVal.value = 30;\n foreignObject.height.baseVal.value = 30;\n foreignObject.appendChild(document.createElement('input'));\n foreignObject.lastChild.type = 'text';\n return foreignObject;\n}\nfunction focusSvgForeignObjectHack(element) {\n // Edge13, Edge14: foreignObject focus hack\n // https://jsbin.com/kunehinugi/edit?html,js,output\n // https://jsbin.com/fajagi/3/edit?html,js,output\n var isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg';\n if (!isSvgElement) {\n return false;\n }\n // inject and focus an <input> element into the SVG element to receive focus\n var foreignObject = makeFocusableForeignObject();\n element.appendChild(foreignObject);\n var input = foreignObject.querySelector('input');\n input.focus();\n // upon disabling the activeElement, IE and Edge\n // will not shift focus to <body> like all the other\n // browsers, but instead find the first focusable\n // ancestor and shift focus to that\n input.disabled = true;\n // clean up\n element.removeChild(foreignObject);\n return true;\n}\nfunction generate(element) {\n return '<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">' + element + '</svg>';\n}\nfunction focus(element) {\n if (element.focus) {\n return;\n }\n try {\n HTMLElement.prototype.focus.call(element);\n } catch (e) {\n focusSvgForeignObjectHack(element);\n }\n}\nfunction validate(element, focusTarget, _document) {\n focus(focusTarget);\n return _document.activeElement === focusTarget;\n}\nvar focusSvgFocusableAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text focusable=\"true\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgTabindexAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text tabindex=\"0\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgNegativeTabindexAttribute = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<text tabindex=\"-1\">a</text>');\n return element.querySelector('text');\n },\n validate: validate\n};\nvar focusSvgUseTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate([\n '<g id=\"ally-test-target\"><a xlink:href=\"#void\"><text>link</text></a></g>',\n '<use xlink:href=\"#ally-test-target\" x=\"0\" y=\"0\" tabindex=\"-1\" />'\n ].join(''));\n return element.querySelector('use');\n },\n validate: validate\n};\nvar focusSvgForeignobjectTabindex = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('<foreignObject tabindex=\"-1\"><input type=\"text\" /></foreignObject>');\n // Safari 8's querySelector() can't identify foreignObject, but getElementsByTagName() can\n return element.querySelector('foreignObject') || element.getElementsByTagName('foreignObject')[0];\n },\n validate: validate\n};\n// Firefox seems to be handling the SVG-document-in-iframe creation asynchronously\n// and thereby produces a false negative test result. Thus the test is pointless\n// and we resort to UA sniffing once again.\n// see http://jsbin.com/vunadohoko/1/edit?js,console,output\nvar result$2 = Boolean(platform.is.GECKO && typeof SVGElement !== 'undefined' && SVGElement.prototype.focus);\nfunction focusSvgInIframe() {\n return result$2;\n}\nvar focusSvg = {\n element: 'div',\n mutate: function mutate(element) {\n element.innerHTML = generate('');\n return element.firstChild;\n },\n validate: validate\n};\n// Firefox allows *any* value and treats invalid values like tabindex=\"-1\"\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\nvar focusTabindexTrailingCharacters = {\n element: 'div',\n mutate: function mutate(element) {\n element.setAttribute('tabindex', '3x');\n }\n};\nvar focusTable = {\n element: 'table',\n mutate: function mutate(element, wrapper, _document) {\n // IE9 has a problem replacing TBODY contents with innerHTML.\n // https://stackoverflow.com/a/8097055/515124\n // element.innerHTML = '<tr><td>cell</td></tr>';\n var fragment = _document.createDocumentFragment();\n fragment.innerHTML = '<tr><td>cell</td></tr>';\n element.appendChild(fragment);\n }\n};\nvar focusVideoWithoutControls = {\n element: 'video',\n mutate: function mutate(element) {\n try {\n // invalid media file can trigger warning in console, data-uri to prevent HTTP request\n element.setAttribute('src', gif);\n } catch (e) {\n // IE9 may throw \"Error: Not implemented\"\n }\n }\n};\n// https://jsbin.com/vafaba/3/edit?html,js,console,output\nvar result$3 = platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE;\nfunction tabsequenceAreaAtImgPosition() {\n return result$3;\n}\nvar testCallbacks = {\n cssShadowPiercingDeepCombinator: cssShadowPiercingDeepCombinator,\n focusInZeroDimensionObject: focusInZeroDimensionObject,\n focusObjectSwf: focusObjectSwf,\n focusSvgInIframe: focusSvgInIframe,\n tabsequenceAreaAtImgPosition: tabsequenceAreaAtImgPosition\n};\nvar testDescriptions = {\n focusAreaImgTabindex: focusAreaImgTabindex,\n focusAreaTabindex: focusAreaTabindex,\n focusAreaWithoutHref: focusAreaWithoutHref,\n focusAudioWithoutControls: focusAudioWithoutControls,\n focusBrokenImageMap: focusBrokenImageMap,\n focusChildrenOfFocusableFlexbox: focusChildrenOfFocusableFlexbox,\n focusFieldsetDisabled: focusFieldsetDisabled,\n focusFieldset: focusFieldset,\n focusFlexboxContainer: focusFlexboxContainer,\n focusFormDisabled: focusFormDisabled,\n focusImgIsmap: focusImgIsmap,\n focusImgUsemapTabindex: focusImgUsemapTabindex,\n focusInHiddenIframe: focusInHiddenIframe,\n focusInvalidTabindex: focusInvalidTabindex,\n focusLabelTabindex: focusLabelTabindex,\n focusObjectSvg: focusObjectSvg,\n focusObjectSvgHidden: focusObjectSvgHidden,\n focusRedirectImgUsemap: focusRedirectImgUsemap,\n focusRedirectLegend: focusRedirectLegend,\n focusScrollBody: focusScrollBody,\n focusScrollContainerWithoutOverflow: focusScrollContainerWithoutOverflow,\n focusScrollContainer: focusScrollContainer,\n focusSummary: focusSummary,\n focusSvgFocusableAttribute: focusSvgFocusableAttribute,\n focusSvgTabindexAttribute: focusSvgTabindexAttribute,\n focusSvgNegativeTabindexAttribute: focusSvgNegativeTabindexAttribute,\n focusSvgUseTabindex: focusSvgUseTabindex,\n focusSvgForeignobjectTabindex: focusSvgForeignobjectTabindex,\n focusSvg: focusSvg,\n focusTabindexTrailingCharacters: focusTabindexTrailingCharacters,\n focusTable: focusTable,\n focusVideoWithoutControls: focusVideoWithoutControls\n};\nfunction executeTests() {\n var results = detectFocus(testDescriptions);\n Object.keys(testCallbacks).forEach(function(key) {\n results[key] = testCallbacks[key]();\n });\n return results;\n}\nvar supportsCache = null;\nfunction _supports() {\n if (supportsCache) {\n return supportsCache;\n }\n supportsCache = cache$1.get();\n if (!supportsCache.time) {\n cache$1.set(executeTests());\n supportsCache = cache$1.get();\n }\n return supportsCache;\n}\nvar supports = void 0;\n// https://www.w3.org/TR/html5/infrastructure.html#rules-for-parsing-integers\n// NOTE: all browsers agree to allow trailing spaces as well\nvar validIntegerPatternNoTrailing = /^\\s*(-|\\+)?[0-9]+\\s*$/;\nvar validIntegerPatternWithTrailing = /^\\s*(-|\\+)?[0-9]+.*$/;\nfunction isValidTabindex(context) {\n if (!supports) {\n supports = _supports();\n }\n var validIntegerPattern = supports.focusTabindexTrailingCharacters ? validIntegerPatternWithTrailing : validIntegerPatternNoTrailing;\n var element = contextToElement({\n label: 'is/valid-tabindex',\n resolveDocument: true,\n context: context\n });\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute('tabindex');\n var hasTabIndex = element.hasAttribute('tabIndex');\n if (!hasTabindex && !hasTabIndex) {\n return false;\n }\n // older Firefox and Internet Explorer don't support tabindex on SVG elements\n var isSvgElement = element.ownerSVGElement || element.nodeName.toLowerCase() === 'svg';\n if (isSvgElement && !supports.focusSvgTabindexAttribute) {\n return false;\n }\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n if (supports.focusInvalidTabindex) {\n return true;\n }\n // an element matches the tabindex selector even if its value is invalid\n var tabindex = element.getAttribute(hasTabindex ? 'tabindex' : 'tabIndex');\n // IE11 parses tabindex=\"\" as the value \"-32768\"\n // @browser-issue Trident https://connect.microsoft.com/IE/feedback/details/1072965\n if (tabindex === '-32768') {\n return false;\n }\n return Boolean(tabindex && validIntegerPattern.test(tabindex));\n}\nfunction tabindexValue(element) {\n if (!isValidTabindex(element)) {\n return null;\n }\n // Edge 14 has a capitalization problem on SVG elements,\n // see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9282058/\n var hasTabindex = element.hasAttribute('tabindex');\n var attributeName = hasTabindex ? 'tabindex' : 'tabIndex';\n // @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n var tabindex = parseInt(element.getAttribute(attributeName), 10);\n return isNaN(tabindex) ? -1 : tabindex;\n}\n// this is a shared utility file for focus-relevant.js and tabbable.js\n// separate testing of this file's functions is not necessary,\n// as they're implicitly tested by way of the consumers\nfunction isUserModifyWritable(style) {\n // https://www.w3.org/TR/1999/WD-css3-userint-19990916#user-modify\n // https://github.com/medialize/ally.js/issues/17\n var userModify = style.webkitUserModify || '';\n return Boolean(userModify && userModify.indexOf('write') !== -1);\n}\nfunction hasCssOverflowScroll(style) {\n return [\n style.getPropertyValue('overflow'),\n style.getPropertyValue('overflow-x'),\n style.getPropertyValue('overflow-y')\n ].some(function(overflow) {\n return overflow === 'auto' || overflow === 'scroll';\n });\n}\nfunction hasCssDisplayFlex(style) {\n return style.display.indexOf('flex') > -1;\n}\nfunction isScrollableContainer(element, nodeName, parentNodeName, parentStyle) {\n if (nodeName !== 'div' && nodeName !== 'span') {\n // Internet Explorer advances scrollable containers and bodies to focusable\n // only if the scrollable container is <div> or <span> - this does *not*\n // happen for <section>, <article>, …\n return false;\n }\n if (parentNodeName && parentNodeName !== 'div' && parentNodeName !== 'span' && !hasCssOverflowScroll(parentStyle)) {\n return false;\n }\n return element.offsetHeight < element.scrollHeight || element.offsetWidth < element.scrollWidth;\n}\nvar supports$1 = void 0;\nfunction isFocusRelevantRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n flexbox: false,\n scrollable: false,\n shadow: false\n } : _ref$except;\n if (!supports$1) {\n supports$1 = _supports();\n }\n var element = contextToElement({\n label: 'is/focus-relevant',\n resolveDocument: true,\n context: context\n });\n if (!except.shadow && element.shadowRoot) {\n // a ShadowDOM host receives focus when the focus moves to its content\n return true;\n }\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'input' && element.type === 'hidden') {\n // input[type=\"hidden\"] supports.cannot be focused\n return false;\n }\n if (nodeName === 'input' || nodeName === 'select' || nodeName === 'button' || nodeName === 'textarea') {\n return true;\n }\n if (nodeName === 'legend' && supports$1.focusRedirectLegend) {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'label') {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'area') {\n // specifics filtered in is/focusable\n return true;\n }\n if (nodeName === 'a' && element.hasAttribute('href')) {\n return true;\n }\n if (nodeName === 'object' && element.hasAttribute('usemap')) {\n // object[usemap] is not focusable in any browser\n return false;\n }\n if (nodeName === 'object') {\n var svgType = element.getAttribute('type');\n if (!supports$1.focusObjectSvg && svgType === 'image/svg+xml') {\n // object[type=\"image/svg+xml\"] is not focusable in Internet Explorer\n return false;\n } else if (!supports$1.focusObjectSwf && svgType === 'application/x-shockwave-flash') {\n // object[type=\"application/x-shockwave-flash\"] is not focusable in Internet Explorer 9\n return false;\n }\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // browsing context containers\n return true;\n }\n if (nodeName === 'embed' || nodeName === 'keygen') {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true;\n }\n if (element.hasAttribute('contenteditable')) {\n // also see CSS property user-modify below\n return true;\n }\n if (nodeName === 'audio' && (supports$1.focusAudioWithoutControls || element.hasAttribute('controls'))) {\n return true;\n }\n if (nodeName === 'video' && (supports$1.focusVideoWithoutControls || element.hasAttribute('controls'))) {\n return true;\n }\n if (supports$1.focusSummary && nodeName === 'summary') {\n return true;\n }\n var validTabindex = isValidTabindex(element);\n if (nodeName === 'img' && element.hasAttribute('usemap')) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the <map>\n return validTabindex && supports$1.focusImgUsemapTabindex || supports$1.focusRedirectImgUsemap;\n }\n if (supports$1.focusTable && (nodeName === 'table' || nodeName === 'td')) {\n // IE10-11 supports.can focus <table> and <td>\n return true;\n }\n if (supports$1.focusFieldset && nodeName === 'fieldset') {\n // IE10-11 supports.can focus <fieldset>\n return true;\n }\n var isSvgElement = nodeName === 'svg';\n var isSvgContent = element.ownerSVGElement;\n var focusableAttribute = element.getAttribute('focusable');\n var tabindex = tabindexValue(element);\n if (nodeName === 'use' && tabindex !== null && !supports$1.focusSvgUseTabindex) {\n // <use> cannot be made focusable by adding a tabindex attribute anywhere but Blink and WebKit\n return false;\n }\n if (nodeName === 'foreignobject') {\n // <use> can only be made focusable in Blink and WebKit\n return tabindex !== null && supports$1.focusSvgForeignobjectTabindex;\n }\n if (elementMatches(element, 'svg a') && element.hasAttribute('xlink:href')) {\n return true;\n }\n if ((isSvgElement || isSvgContent) && element.focus && !supports$1.focusSvgNegativeTabindexAttribute && tabindex < 0) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return false;\n }\n if (isSvgElement) {\n return validTabindex || supports$1.focusSvg || supports$1.focusSvgInIframe || // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n Boolean(supports$1.focusSvgFocusableAttribute && focusableAttribute && focusableAttribute === 'true');\n }\n if (isSvgContent) {\n if (supports$1.focusSvgTabindexAttribute && validTabindex) {\n return true;\n }\n if (supports$1.focusSvgFocusableAttribute) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n return focusableAttribute === 'true';\n }\n }\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n if (validTabindex) {\n return true;\n }\n var style = window.getComputedStyle(element, null);\n if (isUserModifyWritable(style)) {\n return true;\n }\n if (supports$1.focusImgIsmap && nodeName === 'img' && element.hasAttribute('ismap')) {\n // IE10-11 considers the <img> in <a href><img ismap> focusable\n // https://github.com/medialize/ally.js/issues/20\n var hasLinkParent = getParents({\n context: element\n }).some(function(parent) {\n return parent.nodeName.toLowerCase() === 'a' && parent.hasAttribute('href');\n });\n if (hasLinkParent) {\n return true;\n }\n }\n // https://github.com/medialize/ally.js/issues/21\n if (!except.scrollable && supports$1.focusScrollContainer) {\n if (supports$1.focusScrollContainerWithoutOverflow) {\n // Internet Explorer does will consider the scrollable area focusable\n // if the element is a <div> or a <span> and it is in fact scrollable,\n // regardless of the CSS overflow property\n if (isScrollableContainer(element, nodeName)) {\n return true;\n }\n } else if (hasCssOverflowScroll(style)) {\n // Firefox requires proper overflow setting, IE does not necessarily\n // https://developer.mozilla.org/docs/Web/CSS/overflow\n return true;\n }\n }\n if (!except.flexbox && supports$1.focusFlexboxContainer && hasCssDisplayFlex(style)) {\n // elements with display:flex are focusable in IE10-11\n return true;\n }\n var parent = element.parentElement;\n if (!except.scrollable && parent) {\n var parentNodeName = parent.nodeName.toLowerCase();\n var parentStyle = window.getComputedStyle(parent, null);\n if (supports$1.focusScrollBody && isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)) {\n // scrollable bodies are focusable Internet Explorer\n // https://github.com/medialize/ally.js/issues/21\n return true;\n }\n // Children of focusable elements with display:flex are focusable in IE10-11\n if (supports$1.focusChildrenOfFocusableFlexbox) {\n if (hasCssDisplayFlex(parentStyle)) {\n return true;\n }\n }\n }\n // NOTE: elements marked as inert are not focusable,\n // but that property is not exposed to the DOM\n // https://www.w3.org/TR/html5/editing.html#inert\n return false;\n}\n// bind exceptions to an iterator callback\nisFocusRelevantRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isFocusRelevant = function isFocusRelevant(context) {\n return isFocusRelevantRules({\n context: context,\n except: except\n });\n };\n isFocusRelevant.rules = isFocusRelevantRules;\n return isFocusRelevant;\n};\n// provide isFocusRelevant(context) as default iterator callback\nvar isFocusRelevant = isFocusRelevantRules.except({});\nfunction findIndex(array, callback) {\n // attempt to use native or polyfilled Array#findIndex first\n if (array.findIndex) {\n return array.findIndex(callback);\n }\n var length = array.length;\n // shortcut if the array is empty\n if (length === 0) {\n return -1;\n }\n // otherwise loop over array\n for(var i = 0; i < length; i++){\n if (callback(array[i], i, array)) {\n return i;\n }\n }\n return -1;\n}\nfunction getContentDocument(node) {\n try {\n // works on <object> and <iframe>\n return node.contentDocument || // works on <object> and <iframe>\n node.contentWindow && node.contentWindow.document || // works on <object> and <iframe> that contain SVG\n node.getSVGDocument && node.getSVGDocument() || null;\n } catch (e) {\n // SecurityError: Failed to read the 'contentDocument' property from 'HTMLObjectElement'\n // also IE may throw member not found exception e.g. on <object type=\"image/png\">\n return null;\n }\n}\nfunction getWindow(node) {\n var _document = getDocument(node);\n return _document.defaultView || window;\n}\nvar shadowPrefix = void 0;\nfunction selectInShadows(selector) {\n if (typeof shadowPrefix !== 'string') {\n var operator = cssShadowPiercingDeepCombinator();\n if (operator) {\n shadowPrefix = ', html ' + operator + ' ';\n }\n }\n if (!shadowPrefix) {\n return selector;\n }\n return selector + shadowPrefix + selector.replace(/\\s*,\\s*/g, ',').split(',').join(shadowPrefix);\n}\nvar selector = void 0;\nfunction findDocumentHostElement(_window) {\n if (!selector) {\n selector = selectInShadows('object, iframe');\n }\n if (_window._frameElement !== undefined) {\n return _window._frameElement;\n }\n _window._frameElement = null;\n var potentialHosts = _window.parent.document.querySelectorAll(selector);\n [].some.call(potentialHosts, function(element) {\n var _document = getContentDocument(element);\n if (_document !== _window.document) {\n return false;\n }\n _window._frameElement = element;\n return true;\n });\n return _window._frameElement;\n}\nfunction getFrameElement(element) {\n var _window = getWindow(element);\n if (!_window.parent || _window.parent === _window) {\n // if there is no parent browsing context,\n // we're not going to get a frameElement either way\n return null;\n }\n try {\n // see https://developer.mozilla.org/docs/Web/API/Window/frameElement\n // does not work within <embed> anywhere, and not within in <object> in IE\n return _window.frameElement || findDocumentHostElement(_window);\n } catch (e) {\n return null;\n }\n}\n// https://www.w3.org/TR/html5/rendering.html#being-rendered\n// <area> is not rendered, but we *consider* it visible to simplfiy this function's usage\nvar notRenderedElementsPattern = /^(area)$/;\nfunction computedStyle(element, property) {\n return window.getComputedStyle(element, null).getPropertyValue(property);\n}\nfunction notDisplayed(_path) {\n return _path.some(function(element) {\n // display:none is not visible (optimized away at layout)\n return computedStyle(element, 'display') === 'none';\n });\n}\nfunction notVisible(_path) {\n // https://github.com/jquery/jquery-ui/blob/master/ui/core.js#L109-L114\n // NOTE: a nested element can reverse visibility:hidden|collapse by explicitly setting visibility:visible\n // NOTE: visibility can be [\"\", \"visible\", \"hidden\", \"collapse\"]\n var hidden = findIndex(_path, function(element) {\n var visibility = computedStyle(element, 'visibility');\n return visibility === 'hidden' || visibility === 'collapse';\n });\n if (hidden === -1) {\n // there is no hidden element\n return false;\n }\n var visible = findIndex(_path, function(element) {\n return computedStyle(element, 'visibility') === 'visible';\n });\n if (visible === -1) {\n // there is no visible element (but a hidden element)\n return true;\n }\n if (hidden < visible) {\n // there is a hidden element and it's closer than the first visible element\n return true;\n }\n // there may be a hidden element, but the closest element is visible\n return false;\n}\nfunction collapsedParent(_path) {\n var offset = 1;\n if (_path[0].nodeName.toLowerCase() === 'summary') {\n offset = 2;\n }\n return _path.slice(offset).some(function(element) {\n // \"content children\" of a closed details element are not visible\n return element.nodeName.toLowerCase() === 'details' && element.open === false;\n });\n}\nfunction isVisibleRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n notRendered: false,\n cssDisplay: false,\n cssVisibility: false,\n detailsElement: false,\n browsingContext: false\n } : _ref$except;\n var element = contextToElement({\n label: 'is/visible',\n resolveDocument: true,\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n if (!except.notRendered && notRenderedElementsPattern.test(nodeName)) {\n return true;\n }\n var _path = getParents({\n context: element\n });\n // in Internet Explorer <audio> has a default display: none, where others have display: inline\n // but IE allows focusing <audio style=\"display:none\">, but not <div display:none><audio>\n // this is irrelevant to other browsers, as the controls attribute is required to make <audio> focusable\n var isAudioWithoutControls = nodeName === 'audio' && !element.hasAttribute('controls');\n if (!except.cssDisplay && notDisplayed(isAudioWithoutControls ? _path.slice(1) : _path)) {\n return false;\n }\n if (!except.cssVisibility && notVisible(_path)) {\n return false;\n }\n if (!except.detailsElement && collapsedParent(_path)) {\n return false;\n }\n if (!except.browsingContext) {\n // elements within a browsing context are affected by the\n // browsing context host element's visibility and tabindex\n var frameElement = getFrameElement(element);\n var _isVisible = isVisibleRules.except(except);\n if (frameElement && !_isVisible(frameElement)) {\n return false;\n }\n }\n return true;\n}\n// bind exceptions to an iterator callback\nisVisibleRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isVisible = function isVisible(context) {\n return isVisibleRules({\n context: context,\n except: except\n });\n };\n isVisible.rules = isVisibleRules;\n return isVisible;\n};\n// provide isVisible(context) as default iterator callback\nvar isVisible = isVisibleRules.except({});\nfunction getMapByName(name, _document) {\n // apparently getElementsByName() also considers id attribute in IE & opera\n // https://developer.mozilla.org/docs/Web/API/Document/getElementsByName\n var map = _document.querySelector('map[name=\"' + (0, _cssescape.default)(name) + '\"]');\n return map || null;\n}\nfunction getImageOfArea(element) {\n var map = element.parentElement;\n if (!map.name || map.nodeName.toLowerCase() !== 'map') {\n return null;\n }\n // NOTE: image maps can also be applied to <object> with image content,\n // but no browser supports this at the moment\n // HTML5 specifies HTMLMapElement.images to be an HTMLCollection of all\n // <img> and <object> referencing the <map> element, but no browser implements this\n // https://www.w3.org/TR/html5/embedded-content-0.html#the-map-element\n // https://developer.mozilla.org/docs/Web/API/HTMLMapElement\n // the image must be valid and loaded for the map to take effect\n var _document = getDocument(element);\n return _document.querySelector('img[usemap=\"#' + (0, _cssescape.default)(map.name) + '\"]') || null;\n}\nvar supports$2 = void 0;\n// https://developer.mozilla.org/docs/Web/HTML/Element/map\n// https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\n// https://github.com/jquery/jquery-ui/blob/master/ui/core.js#L88-L107\nfunction isValidArea(context) {\n if (!supports$2) {\n supports$2 = _supports();\n }\n var element = contextToElement({\n label: 'is/valid-area',\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName !== 'area') {\n return false;\n }\n var hasTabindex = element.hasAttribute('tabindex');\n if (!supports$2.focusAreaTabindex && hasTabindex) {\n // Blink and WebKit do not consider <area tabindex=\"-1\" href=\"#void\"> focusable\n return false;\n }\n var img = getImageOfArea(element);\n if (!img || !isVisible(img)) {\n return false;\n }\n // Firefox only allows fully loaded images to reference image maps\n // https://stereochro.me/ideas/detecting-broken-images-js\n if (!supports$2.focusBrokenImageMap && (!img.complete || !img.naturalHeight || img.offsetWidth <= 0 || img.offsetHeight <= 0)) {\n return false;\n }\n // Firefox supports.can focus area elements even if they don't have an href attribute\n if (!supports$2.focusAreaWithoutHref && !element.href) {\n // Internet explorer supports.can focus area elements without href if either\n // the area element or the image element has a tabindex attribute\n return supports$2.focusAreaTabindex && hasTabindex || supports$2.focusAreaImgTabindex && img.hasAttribute('tabindex');\n }\n // https://developer.mozilla.org/docs/Web/HTML/Element/img#attr-usemap\n var childOfInteractive = getParents({\n context: img\n }).slice(1).some(function(_element) {\n var name = _element.nodeName.toLowerCase();\n return name === 'button' || name === 'a';\n });\n if (childOfInteractive) {\n return false;\n }\n return true;\n}\nvar supports$3 = void 0;\n// https://www.w3.org/TR/html5/disabled-elements.html#concept-element-disabled\nvar disabledElementsPattern = void 0;\nvar disabledElements = {\n input: true,\n select: true,\n textarea: true,\n button: true,\n fieldset: true,\n form: true\n};\nfunction isNativeDisabledSupported(context) {\n if (!supports$3) {\n supports$3 = _supports();\n if (supports$3.focusFieldsetDisabled) {\n delete disabledElements.fieldset;\n }\n if (supports$3.focusFormDisabled) {\n delete disabledElements.form;\n }\n disabledElementsPattern = new RegExp('^(' + Object.keys(disabledElements).join('|') + ')$');\n }\n var element = contextToElement({\n label: 'is/native-disabled-supported',\n context: context\n });\n var nodeName = element.nodeName.toLowerCase();\n return Boolean(disabledElementsPattern.test(nodeName));\n}\nvar supports$4 = void 0;\nfunction isDisabledFieldset(element) {\n var nodeName = element.nodeName.toLowerCase();\n return nodeName === 'fieldset' && element.disabled;\n}\nfunction isDisabledForm(element) {\n var nodeName = element.nodeName.toLowerCase();\n return nodeName === 'form' && element.disabled;\n}\nfunction isDisabled(context) {\n if (!supports$4) {\n supports$4 = _supports();\n }\n var element = contextToElement({\n label: 'is/disabled',\n context: context\n });\n if (element.hasAttribute('data-ally-disabled')) {\n // treat ally's element/disabled like the DOM native element.disabled\n return true;\n }\n if (!isNativeDisabledSupported(element)) {\n // non-form elements do not support the disabled attribute\n return false;\n }\n if (element.disabled) {\n // the element itself is disabled\n return true;\n }\n var parents = getParents({\n context: element\n });\n if (parents.some(isDisabledFieldset)) {\n // a parental <fieldset> is disabld and inherits the state onto this element\n return true;\n }\n if (!supports$4.focusFormDisabled && parents.some(isDisabledForm)) {\n // a parental <form> is disabld and inherits the state onto this element\n return true;\n }\n return false;\n}\nfunction isOnlyTabbableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n onlyFocusableBrowsingContext: false,\n visible: false\n } : _ref$except;\n var element = contextToElement({\n label: 'is/only-tabbable',\n resolveDocument: true,\n context: context\n });\n if (!except.visible && !isVisible(element)) {\n return false;\n }\n if (!except.onlyFocusableBrowsingContext && (platform.is.GECKO || platform.is.TRIDENT || platform.is.EDGE)) {\n var frameElement = getFrameElement(element);\n if (frameElement) {\n if (tabindexValue(frameElement) < 0) {\n // iframe[tabindex=\"-1\"] and object[tabindex=\"-1\"] inherit the\n // tabbable demotion onto elements of their browsing contexts\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n var tabindex = tabindexValue(element);\n if (nodeName === 'label' && platform.is.GECKO) {\n // Firefox cannot focus, but tab to: label[tabindex=0]\n return tabindex !== null && tabindex >= 0;\n }\n // SVG Elements were keyboard focusable but not script focusable before Firefox 51.\n // Firefox 51 added the focus management DOM API (.focus and .blur) to SVGElement,\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=778654\n if (platform.is.GECKO && element.ownerSVGElement && !element.focus) {\n if (nodeName === 'a' && element.hasAttribute('xlink:href')) {\n // any focusable child of <svg> cannot be focused, but tabbed to\n if (platform.is.GECKO) {\n return true;\n }\n }\n }\n return false;\n}\n// bind exceptions to an iterator callback\nisOnlyTabbableRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isOnlyTabbable = function isOnlyTabbable(context) {\n return isOnlyTabbableRules({\n context: context,\n except: except\n });\n };\n isOnlyTabbable.rules = isOnlyTabbableRules;\n return isOnlyTabbable;\n};\n// provide isOnlyTabbable(context) as default iterator callback\nvar isOnlyTabbable = isOnlyTabbableRules.except({});\nvar supports$5 = void 0;\nfunction isOnlyFocusRelevant(element) {\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'embed' || nodeName === 'keygen') {\n // embed is considered focus-relevant but not focusable\n // see https://github.com/medialize/ally.js/issues/82\n return true;\n }\n var _tabindex = tabindexValue(element);\n if (element.shadowRoot && _tabindex === null) {\n // ShadowDOM host elements *may* receive focus\n // even though they are not considered focuable\n return true;\n }\n if (nodeName === 'label') {\n // <label tabindex=\"0\"> is only tabbable in Firefox, not script-focusable\n // there's no way to make an element focusable other than by adding a tabindex,\n // and focus behavior of the label element seems hard-wired to ignore tabindex\n // in some browsers (like Gecko, Blink and WebKit)\n return !supports$5.focusLabelTabindex || _tabindex === null;\n }\n if (nodeName === 'legend') {\n return _tabindex === null;\n }\n if (supports$5.focusSvgFocusableAttribute && (element.ownerSVGElement || nodeName === 'svg')) {\n // Internet Explorer understands the focusable attribute introduced in SVG Tiny 1.2\n var focusableAttribute = element.getAttribute('focusable');\n return focusableAttribute && focusableAttribute === 'false';\n }\n if (nodeName === 'img' && element.hasAttribute('usemap')) {\n // Gecko, Trident and Edge do not allow an image with an image map and tabindex to be focused,\n // it appears the tabindex is overruled so focus is still forwarded to the <map>\n return _tabindex === null || !supports$5.focusImgUsemapTabindex;\n }\n if (nodeName === 'area') {\n // all <area>s are considered relevant,\n // but only the valid <area>s are focusable\n return !isValidArea(element);\n }\n return false;\n}\nfunction isFocusableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n disabled: false,\n visible: false,\n onlyTabbable: false\n } : _ref$except;\n if (!supports$5) {\n supports$5 = _supports();\n }\n var _isOnlyTabbable = isOnlyTabbable.rules.except({\n onlyFocusableBrowsingContext: true,\n visible: except.visible\n });\n var element = contextToElement({\n label: 'is/focusable',\n resolveDocument: true,\n context: context\n });\n var focusRelevant = isFocusRelevant.rules({\n context: element,\n except: except\n });\n if (!focusRelevant || isOnlyFocusRelevant(element)) {\n return false;\n }\n if (!except.disabled && isDisabled(element)) {\n return false;\n }\n if (!except.onlyTabbable && _isOnlyTabbable(element)) {\n // some elements may be keyboard focusable, but not script focusable\n return false;\n }\n // elements that are not rendered, cannot be focused\n if (!except.visible) {\n var visibilityOptions = {\n context: element,\n except: {}\n };\n if (supports$5.focusInHiddenIframe) {\n // WebKit and Blink can focus content in hidden <iframe> and <object>\n visibilityOptions.except.browsingContext = true;\n }\n if (supports$5.focusObjectSvgHidden) {\n // Blink allows focusing the object element, even if it has visibility: hidden;\n // @browser-issue Blink https://code.google.com/p/chromium/issues/detail?id=586191\n var _nodeName2 = element.nodeName.toLowerCase();\n if (_nodeName2 === 'object') {\n visibilityOptions.except.cssVisibility = true;\n }\n }\n if (!isVisible.rules(visibilityOptions)) {\n return false;\n }\n }\n var frameElement = getFrameElement(element);\n if (frameElement) {\n var _nodeName = frameElement.nodeName.toLowerCase();\n if (_nodeName === 'object' && !supports$5.focusInZeroDimensionObject) {\n if (!frameElement.offsetWidth || !frameElement.offsetHeight) {\n // WebKit can not focus content in <object> if it doesn't have dimensions\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName === 'svg' && supports$5.focusSvgInIframe && !frameElement && element.getAttribute('tabindex') === null) {\n return false;\n }\n return true;\n}\n// bind exceptions to an iterator callback\nisFocusableRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isFocusable = function isFocusable(context) {\n return isFocusableRules({\n context: context,\n except: except\n });\n };\n isFocusable.rules = isFocusableRules;\n return isFocusable;\n};\n// provide isFocusRelevant(context) as default iterator callback\nvar isFocusable = isFocusableRules.except({});\nfunction createFilter(condition) {\n // see https://developer.mozilla.org/docs/Web/API/NodeFilter\n var filter = function filter(node) {\n if (node.shadowRoot) {\n // return ShadowRoot elements regardless of them being focusable,\n // so they can be walked recursively later\n return NodeFilter.FILTER_ACCEPT;\n }\n if (condition(node)) {\n // finds elements that could have been found by document.querySelectorAll()\n return NodeFilter.FILTER_ACCEPT;\n }\n return NodeFilter.FILTER_SKIP;\n };\n // IE requires a function, Browsers require {acceptNode: function}\n // see http://www.bennadel.com/blog/2607-finding-html-comment-nodes-in-the-dom-using-treewalker.htm\n filter.acceptNode = filter;\n return filter;\n}\nvar PossiblyFocusableFilter = createFilter(isFocusRelevant);\nfunction queryFocusableStrict() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n if (!context) {\n context = document.documentElement;\n }\n var _isFocusable = isFocusable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n var _document = getDocument(context);\n // see https://developer.mozilla.org/docs/Web/API/Document/createTreeWalker\n var walker = _document.createTreeWalker(context, NodeFilter.SHOW_ELEMENT, strategy === 'all' ? PossiblyFocusableFilter : createFilter(_isFocusable), false);\n var list = [];\n while(walker.nextNode()){\n if (walker.currentNode.shadowRoot) {\n if (_isFocusable(walker.currentNode)) {\n list.push(walker.currentNode);\n }\n list = list.concat(queryFocusableStrict({\n context: walker.currentNode.shadowRoot,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n }));\n } else {\n list.push(walker.currentNode);\n }\n }\n // add context if requested and focusable\n if (includeContext) {\n if (strategy === 'all') {\n if (isFocusRelevant(context)) {\n list.unshift(context);\n }\n } else if (_isFocusable(context)) {\n list.unshift(context);\n }\n }\n return list;\n}\n// NOTE: this selector MUST *never* be used directly,\nvar supports$6 = void 0;\nvar selector$1 = void 0;\nfunction selector$2() {\n if (!supports$6) {\n supports$6 = _supports();\n }\n if (typeof selector$1 === 'string') {\n return selector$1;\n }\n // https://www.w3.org/TR/html5/editing.html#sequential-focus-navigation-and-the-tabindex-attribute\n selector$1 = '' + // IE11 supports.can focus <table> and <td>\n (supports$6.focusTable ? 'table, td,' : '') + // IE11 supports.can focus <fieldset>\n (supports$6.focusFieldset ? 'fieldset,' : '') + // Namespace problems of [xlink:href] explained in https://stackoverflow.com/a/23047888/515124\n // svg a[*|href] does not match in IE9, but since we're filtering\n // through is/focusable we can include all <a> from SVG\n 'svg a,' + // may behave as 'svg, svg *,' in chrome as *every* svg element with a focus event listener is focusable\n // navigational elements\n 'a[href],' + // validity determined by is/valid-area.js\n 'area[href],' + // validity determined by is/disabled.js\n 'input, select, textarea, button,' + // browsing context containers\n 'iframe, object, embed,' + // interactive content\n 'keygen,' + (supports$6.focusAudioWithoutControls ? 'audio,' : 'audio[controls],') + (supports$6.focusVideoWithoutControls ? 'video,' : 'video[controls],') + (supports$6.focusSummary ? 'summary,' : '') + // validity determined by is/valid-tabindex.js\n '[tabindex],' + // editing hosts\n '[contenteditable]';\n // where ShadowDOM is supported, we also want the shadowed focusable elements (via \">>>\" or \"/deep/\")\n selector$1 = selectInShadows(selector$1);\n return selector$1;\n}\nfunction queryFocusableQuick() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable;\n var _selector = selector$2();\n var elements = context.querySelectorAll(_selector);\n // the selector potentially matches more than really is focusable\n var _isFocusable = isFocusable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n var result = [].filter.call(elements, _isFocusable);\n // add context if requested and focusable\n if (includeContext && _isFocusable(context)) {\n result.unshift(context);\n }\n return result;\n}\nfunction queryFocusable() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, _ref$strategy = _ref.strategy, strategy = _ref$strategy === undefined ? 'quick' : _ref$strategy;\n var element = contextToElement({\n label: 'query/focusable',\n resolveDocument: true,\n defaultToDocument: true,\n context: context\n });\n var options = {\n context: element,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n };\n if (strategy === 'quick') {\n return queryFocusableQuick(options);\n } else if (strategy === 'strict' || strategy === 'all') {\n return queryFocusableStrict(options);\n }\n throw new TypeError('query/focusable requires option.strategy to be one of [\"quick\", \"strict\", \"all\"]');\n}\nvar supports$7 = void 0;\n// Internet Explorer 11 considers fieldset, table, td focusable, but not tabbable\n// Internet Explorer 11 considers body to have [tabindex=0], but does not allow tabbing to it\nvar focusableElementsPattern = /^(fieldset|table|td|body)$/;\nfunction isTabbableRules() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, _ref$except = _ref.except, except = _ref$except === undefined ? {\n flexbox: false,\n scrollable: false,\n shadow: false,\n visible: false,\n onlyTabbable: false\n } : _ref$except;\n if (!supports$7) {\n supports$7 = _supports();\n }\n var element = contextToElement({\n label: 'is/tabbable',\n resolveDocument: true,\n context: context\n });\n if (platform.is.BLINK && platform.is.ANDROID && platform.majorVersion > 42) {\n // External keyboard support worked fine in CHrome 42, but stopped working in Chrome 45.\n // The on-screen keyboard does not provide a way to focus the next input element (like iOS does).\n // That leaves us with no option to advance focus by keyboard, ergo nothing is tabbable (keyboard focusable).\n return false;\n }\n var frameElement = getFrameElement(element);\n if (frameElement) {\n if (platform.is.WEBKIT && platform.is.IOS) {\n // iOS only does not consider anything from another browsing context keyboard focusable\n return false;\n }\n // iframe[tabindex=\"-1\"] and object[tabindex=\"-1\"] inherit the\n // tabbable demotion onto elements of their browsing contexts\n if (tabindexValue(frameElement) < 0) {\n return false;\n }\n if (!except.visible && (platform.is.BLINK || platform.is.WEBKIT) && !isVisible(frameElement)) {\n // Blink and WebKit consider elements in hidden browsing contexts focusable, but not tabbable\n return false;\n }\n // Webkit and Blink don't consider anything in <object> tabbable\n // Blink fixed that fixed in Chrome 54, Opera 41\n var frameNodeName = frameElement.nodeName.toLowerCase();\n if (frameNodeName === 'object') {\n var isFixedBlink = platform.name === 'Chrome' && platform.majorVersion >= 54 || platform.name === 'Opera' && platform.majorVersion >= 41;\n if (platform.is.WEBKIT || platform.is.BLINK && !isFixedBlink) {\n return false;\n }\n }\n }\n var nodeName = element.nodeName.toLowerCase();\n var _tabindex = tabindexValue(element);\n var tabindex = _tabindex === null ? null : _tabindex >= 0;\n if (platform.is.EDGE && platform.majorVersion >= 14 && frameElement && element.ownerSVGElement && _tabindex < 0) {\n // Edge 14+ considers <a xlink:href=\"…\" tabindex=\"-1\"> keyboard focusable\n // if the element is in a nested browsing context\n return true;\n }\n var hasTabbableTabindexOrNone = tabindex !== false;\n var hasTabbableTabindex = _tabindex !== null && _tabindex >= 0;\n // NOTE: Firefox 31 considers [contenteditable] to have [tabindex=-1], but allows tabbing to it\n // fixed in Firefox 40 the latest - https://bugzilla.mozilla.org/show_bug.cgi?id=1185657\n if (element.hasAttribute('contenteditable')) {\n // tabbing can still be disabled by explicitly providing [tabindex=\"-1\"]\n return hasTabbableTabindexOrNone;\n }\n if (focusableElementsPattern.test(nodeName) && tabindex !== true) {\n return false;\n }\n if (platform.is.WEBKIT && platform.is.IOS) {\n // iOS only considers a hand full of elements tabbable (keyboard focusable)\n // this holds true even with external keyboards\n var potentiallyTabbable = nodeName === 'input' && element.type === 'text' || element.type === 'password' || nodeName === 'select' || nodeName === 'textarea' || element.hasAttribute('contenteditable');\n if (!potentiallyTabbable) {\n var style = window.getComputedStyle(element, null);\n potentiallyTabbable = isUserModifyWritable(style);\n }\n if (!potentiallyTabbable) {\n return false;\n }\n }\n if (nodeName === 'use' && _tabindex !== null) {\n if (platform.is.BLINK || platform.is.WEBKIT && platform.majorVersion === 9) {\n // In Chrome and Safari 9 the <use> element is keyboard focusable even for tabindex=\"-1\"\n return true;\n }\n }\n if (elementMatches(element, 'svg a') && element.hasAttribute('xlink:href')) {\n if (hasTabbableTabindexOrNone) {\n // in Trident and Gecko SVGElement does not handle the tabIndex property properly\n return true;\n }\n if (element.focus && !supports$7.focusSvgNegativeTabindexAttribute) {\n // Firefox 51 and 52 treat any natively tabbable SVG element with\n // tabindex=\"-1\" as tabbable and everything else as inert\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1302340\n return true;\n }\n }\n if (nodeName === 'svg' && supports$7.focusSvgInIframe && hasTabbableTabindexOrNone) {\n return true;\n }\n if (platform.is.TRIDENT || platform.is.EDGE) {\n if (nodeName === 'svg') {\n if (supports$7.focusSvg) {\n // older Internet Explorers consider <svg> keyboard focusable\n // unless they have focsable=\"false\", but then they wouldn't\n // be focusable and thus not even reach this filter\n return true;\n }\n // elements that have [focusable] are automatically keyboard focusable regardless of the attribute's value\n return element.hasAttribute('focusable') || hasTabbableTabindex;\n }\n if (element.ownerSVGElement) {\n if (supports$7.focusSvgTabindexAttribute && hasTabbableTabindex) {\n return true;\n }\n // elements that have [focusable] are automatically keyboard focusable regardless of the attribute's value\n return element.hasAttribute('focusable');\n }\n }\n if (element.tabIndex === undefined) {\n return Boolean(except.onlyTabbable);\n }\n if (nodeName === 'audio') {\n if (!element.hasAttribute('controls')) {\n // In Internet Explorer the <audio> element is focusable, but not tabbable, and tabIndex property is wrong\n return false;\n } else if (platform.is.BLINK) {\n // In Chrome <audio controls tabindex=\"-1\"> remains keyboard focusable\n return true;\n }\n }\n if (nodeName === 'video') {\n if (!element.hasAttribute('controls')) {\n if (platform.is.TRIDENT || platform.is.EDGE) {\n // In Internet Explorer and Edge the <video> element is focusable, but not tabbable, and tabIndex property is wrong\n return false;\n }\n } else if (platform.is.BLINK || platform.is.GECKO) {\n // In Chrome and Firefox <video controls tabindex=\"-1\"> remains keyboard focusable\n return true;\n }\n }\n if (nodeName === 'object') {\n if (platform.is.BLINK || platform.is.WEBKIT) {\n // In all Blink and WebKit based browsers <embed> and <object> are never keyboard focusable, even with tabindex=\"0\" set\n return false;\n }\n }\n if (nodeName === 'iframe') {\n // In Internet Explorer all iframes are only focusable\n // In WebKit, Blink and Gecko iframes may be tabbable depending on content.\n // Since we can't reliably investigate iframe documents because of the\n // SameOriginPolicy, we're declaring everything only focusable.\n return false;\n }\n if (!except.scrollable && platform.is.GECKO) {\n // Firefox considers scrollable containers keyboard focusable,\n // even though their tabIndex property is -1\n var _style = window.getComputedStyle(element, null);\n if (hasCssOverflowScroll(_style)) {\n return hasTabbableTabindexOrNone;\n }\n }\n if (platform.is.TRIDENT || platform.is.EDGE) {\n // IE and Edge degrade <area> to script focusable, if the image\n // using the <map> has been given tabindex=\"-1\"\n if (nodeName === 'area') {\n var img = getImageOfArea(element);\n if (img && tabindexValue(img) < 0) {\n return false;\n }\n }\n var _style2 = window.getComputedStyle(element, null);\n if (isUserModifyWritable(_style2)) {\n // prevent being swallowed by the overzealous isScrollableContainer() below\n return element.tabIndex >= 0;\n }\n if (!except.flexbox && hasCssDisplayFlex(_style2)) {\n if (_tabindex !== null) {\n return hasTabbableTabindex;\n }\n return isFocusRelevantWithoutFlexbox(element) && isTabbableWithoutFlexbox(element);\n }\n // IE considers scrollable containers script focusable only,\n // even though their tabIndex property is 0\n if (isScrollableContainer(element, nodeName)) {\n return false;\n }\n var parent = element.parentElement;\n if (parent) {\n var parentNodeName = parent.nodeName.toLowerCase();\n var parentStyle = window.getComputedStyle(parent, null);\n // IE considers scrollable bodies script focusable only,\n if (isScrollableContainer(parent, nodeName, parentNodeName, parentStyle)) {\n return false;\n }\n // Children of focusable elements with display:flex are focusable in IE10-11,\n // even though their tabIndex property suggests otherwise\n if (hasCssDisplayFlex(parentStyle)) {\n // value of tabindex takes precedence\n return hasTabbableTabindex;\n }\n }\n }\n // https://www.w3.org/WAI/PF/aria-practices/#focus_tabindex\n return element.tabIndex >= 0;\n}\n// bind exceptions to an iterator callback\nisTabbableRules.except = function() {\n var except = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var isTabbable = function isTabbable(context) {\n return isTabbableRules({\n context: context,\n except: except\n });\n };\n isTabbable.rules = isTabbableRules;\n return isTabbable;\n};\nvar isFocusRelevantWithoutFlexbox = isFocusRelevant.rules.except({\n flexbox: true\n});\nvar isTabbableWithoutFlexbox = isTabbableRules.except({\n flexbox: true\n});\n// provide isTabbable(context) as default iterator callback\nvar isTabbable = isTabbableRules.except({});\nfunction queryTabbable() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n var _isTabbable = isTabbable.rules.except({\n onlyTabbable: includeOnlyTabbable\n });\n return queryFocusable({\n context: context,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n }).filter(_isTabbable);\n}\n// sorts a list of elements according to their order in the DOM\nfunction compareDomPosition(a, b) {\n return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n}\nfunction sortDomOrder(elements) {\n return elements.sort(compareDomPosition);\n}\nfunction getFirstSuccessorOffset(list, target) {\n // find the first element that comes AFTER the target element\n return findIndex(list, function(element) {\n return target.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_FOLLOWING;\n });\n}\nfunction findInsertionOffsets(list, elements, resolveElement) {\n // instead of mutating the elements list directly, remember position and map\n // to inject later, when we can do this more efficiently\n var insertions = [];\n elements.forEach(function(element) {\n var replace = true;\n var offset = list.indexOf(element);\n if (offset === -1) {\n // element is not in target list\n offset = getFirstSuccessorOffset(list, element);\n replace = false;\n }\n if (offset === -1) {\n // there is no successor in the tabsequence,\n // meaning the image must be the last element\n offset = list.length;\n }\n // allow the consumer to replace the injected element\n var injections = nodeArray(resolveElement ? resolveElement(element) : element);\n if (!injections.length) {\n // we can't inject zero elements\n return;\n }\n insertions.push({\n offset: offset,\n replace: replace,\n elements: injections\n });\n });\n return insertions;\n}\nfunction insertElementsAtOffsets(list, insertions) {\n // remember the number of elements we have already injected\n // so we account for the caused index offset\n var inserted = 0;\n // make sure that we insert the elements in sequence,\n // otherwise the offset compensation won't work\n insertions.sort(function(a, b) {\n return a.offset - b.offset;\n });\n insertions.forEach(function(insertion) {\n // array.splice has an annoying function signature :(\n var remove = insertion.replace ? 1 : 0;\n var args = [\n insertion.offset + inserted,\n remove\n ].concat(insertion.elements);\n list.splice.apply(list, args);\n inserted += insertion.elements.length - remove;\n });\n}\nfunction mergeInDomOrder() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, list = _ref.list, elements = _ref.elements, resolveElement = _ref.resolveElement;\n // operate on a copy so we don't mutate the original array\n var _list = list.slice(0);\n // make sure the elements we're injecting are provided in DOM order\n var _elements = nodeArray(elements).slice(0);\n sortDomOrder(_elements);\n // find the offsets within the target array (list) at which to inject\n // each individual element (from elements)\n var insertions = findInsertionOffsets(_list, _elements, resolveElement);\n // actually inject the elements into the target array at the identified positions\n insertElementsAtOffsets(_list, insertions);\n return _list;\n}\nvar _createClass = function() {\n function defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Maps = function() {\n function Maps(context) {\n _classCallCheck(this, Maps);\n this._document = getDocument(context);\n this.maps = {};\n }\n _createClass(Maps, [\n {\n key: 'getAreasFor',\n value: function getAreasFor(name) {\n if (!this.maps[name]) {\n // the map is not defined within the context, so we\n // have to go find it elsewhere in the document\n this.addMapByName(name);\n }\n return this.maps[name];\n }\n },\n {\n key: 'addMapByName',\n value: function addMapByName(name) {\n var map = getMapByName(name, this._document);\n if (!map) {\n // if there is no map, the img[usemap] wasn't doing anything anyway\n return;\n }\n this.maps[map.name] = queryTabbable({\n context: map\n });\n }\n },\n {\n key: 'extractAreasFromList',\n value: function extractAreasFromList(elements) {\n // remove all <area> elements from the elements list,\n // but put them the map for later retrieval\n return elements.filter(function(element) {\n var nodeName = element.nodeName.toLowerCase();\n if (nodeName !== 'area') {\n return true;\n }\n var map = element.parentNode;\n if (!this.maps[map.name]) {\n this.maps[map.name] = [];\n }\n this.maps[map.name].push(element);\n return false;\n }, this);\n }\n }\n ]);\n return Maps;\n}();\nfunction sortArea(elements, context) {\n // images - unless they are focusable themselves, likely not\n // part of the elements list, so we'll have to find them and\n // sort them into the elements list manually\n var usemaps = context.querySelectorAll('img[usemap]');\n var maps = new Maps(context);\n // remove all <area> elements from the elements list,\n // but put them the map for later retrieval\n var _elements = maps.extractAreasFromList(elements);\n if (!usemaps.length) {\n // the context does not contain any <area>s so no need\n // to replace anything, just remove any maps\n return _elements;\n }\n return mergeInDomOrder({\n list: _elements,\n elements: usemaps,\n resolveElement: function resolveElement(image) {\n var name = image.getAttribute('usemap').slice(1);\n return maps.getAreasFor(name);\n }\n });\n}\nvar _createClass$1 = function() {\n function defineProperties(target, props) {\n for(var i = 0; i < props.length; i++){\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function(Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nfunction _classCallCheck$1(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n}\nvar Shadows = function() {\n function Shadows(context, sortElements) {\n _classCallCheck$1(this, Shadows);\n // document context we're working with\n this.context = context;\n // callback that sorts an array of elements\n this.sortElements = sortElements;\n // reference to create unique IDs for each ShadowHost\n this.hostCounter = 1;\n // reference map for child-ShadowHosts of a ShadowHost\n this.inHost = {};\n // reference map for child-ShadowHost of the document\n this.inDocument = [];\n // reference map for ShadowHosts\n this.hosts = {};\n // reference map for tabbable elements of a ShadowHost\n this.elements = {};\n }\n // remember which hosts we have to sort within later\n _createClass$1(Shadows, [\n {\n key: '_registerHost',\n value: function _registerHost(host) {\n if (host._sortingId) {\n return;\n }\n // make the ShadowHost identifiable (see cleanup() for undo)\n host._sortingId = 'shadow-' + this.hostCounter++;\n this.hosts[host._sortingId] = host;\n // hosts may contain other hosts\n var parentHost = getShadowHost({\n context: host\n });\n if (parentHost) {\n this._registerHost(parentHost);\n this._registerHostParent(host, parentHost);\n } else {\n this.inDocument.push(host);\n }\n }\n },\n {\n key: '_registerHostParent',\n value: function _registerHostParent(host, parent) {\n if (!this.inHost[parent._sortingId]) {\n this.inHost[parent._sortingId] = [];\n }\n this.inHost[parent._sortingId].push(host);\n }\n },\n {\n key: '_registerElement',\n value: function _registerElement(element, host) {\n if (!this.elements[host._sortingId]) {\n this.elements[host._sortingId] = [];\n }\n this.elements[host._sortingId].push(element);\n }\n },\n {\n key: 'extractElements',\n value: function extractElements(elements) {\n return elements.filter(function(element) {\n var host = getShadowHost({\n context: element\n });\n if (!host) {\n return true;\n }\n this._registerHost(host);\n this._registerElement(element, host);\n return false;\n }, this);\n }\n },\n {\n key: 'sort',\n value: function sort(elements) {\n var _elements = this._injectHosts(elements);\n _elements = this._replaceHosts(_elements);\n this._cleanup();\n return _elements;\n }\n },\n {\n key: '_injectHosts',\n value: function _injectHosts(elements) {\n Object.keys(this.hosts).forEach(function(_sortingId) {\n var _list = this.elements[_sortingId];\n var _elements = this.inHost[_sortingId];\n var _context = this.hosts[_sortingId].shadowRoot;\n this.elements[_sortingId] = this._merge(_list, _elements, _context);\n }, this);\n return this._merge(elements, this.inDocument, this.context);\n }\n },\n {\n key: '_merge',\n value: function _merge(list, elements, context) {\n var merged = mergeInDomOrder({\n list: list,\n elements: elements\n });\n return this.sortElements(merged, context);\n }\n },\n {\n key: '_replaceHosts',\n value: function _replaceHosts(elements) {\n return mergeInDomOrder({\n list: elements,\n elements: this.inDocument,\n resolveElement: this._resolveHostElement.bind(this)\n });\n }\n },\n {\n key: '_resolveHostElement',\n value: function _resolveHostElement(host) {\n var merged = mergeInDomOrder({\n list: this.elements[host._sortingId],\n elements: this.inHost[host._sortingId],\n resolveElement: this._resolveHostElement.bind(this)\n });\n var _tabindex = tabindexValue(host);\n if (_tabindex !== null && _tabindex > -1) {\n return [\n host\n ].concat(merged);\n }\n return merged;\n }\n },\n {\n key: '_cleanup',\n value: function _cleanup() {\n // remove those identifers we put on the ShadowHost to avoid using Map()\n Object.keys(this.hosts).forEach(function(key) {\n delete this.hosts[key]._sortingId;\n }, this);\n }\n }\n ]);\n return Shadows;\n}();\nfunction sortShadowed(elements, context, sortElements) {\n var shadows = new Shadows(context, sortElements);\n var _elements = shadows.extractElements(elements);\n if (_elements.length === elements.length) {\n // no shadowed content found, no need to continue\n return sortElements(elements);\n }\n return shadows.sort(_elements);\n}\nfunction sortTabindex(elements) {\n // https://developer.mozilla.org/docs/Web/API/HTMLElement.tabIndex\n // elements with tabIndex \"0\" (including tabbableElements without tabIndex) should be navigated in the order they appear.\n // elements with a positive tabIndex:\n // Elements that have identical tabIndexes should be navigated in the order they appear.\n // Navigation proceeds from the lowest tabIndex to the highest tabIndex.\n // NOTE: sort implementation may be unstable and thus mess up DOM order,\n // that's why we build a map that's being sorted instead. If we were able to rely\n // on a stable sorting algorithm, sortTabindex() could be as simple as\n // elements.sort(function(a, b) { return a.tabIndex - b.tabIndex; });\n // at this time Chrome does not use a stable sorting algorithm\n // see http://blog.rodneyrehm.de/archives/14-Sorting-Were-Doing-It-Wrong.html#stability\n // NOTE: compareDocumentPosition seemed like more overhead than just sorting this with buckets\n // https://developer.mozilla.org/docs/Web/API/Node.compareDocumentPosition\n var map = {};\n var indexes = [];\n var normal = elements.filter(function(element) {\n // in Trident and Gecko SVGElement does not know about the tabIndex property\n var tabIndex = element.tabIndex;\n if (tabIndex === undefined) {\n tabIndex = tabindexValue(element);\n }\n // extract elements that don't need sorting\n if (tabIndex <= 0 || tabIndex === null || tabIndex === undefined) {\n return true;\n }\n if (!map[tabIndex]) {\n // create sortable bucket for dom-order-preservation of elements with the same tabIndex\n map[tabIndex] = [];\n // maintain a list of unique tabIndexes\n indexes.push(tabIndex);\n }\n // sort element into the proper bucket\n map[tabIndex].push(element);\n // element moved to sorting map, so not \"normal\" anymore\n return false;\n });\n // sort the tabindex ascending,\n // then resolve them to their appropriate buckets,\n // then flatten the array of arrays to an array\n var _elements = indexes.sort().map(function(tabIndex) {\n return map[tabIndex];\n }).reduceRight(function(previous, current) {\n return current.concat(previous);\n }, normal);\n return _elements;\n}\nvar supports$8 = void 0;\nfunction moveContextToBeginning(elements, context) {\n var pos = elements.indexOf(context);\n if (pos > 0) {\n var tmp = elements.splice(pos, 1);\n return tmp.concat(elements);\n }\n return elements;\n}\nfunction sortElements(elements, _context) {\n if (supports$8.tabsequenceAreaAtImgPosition) {\n // Some browsers sort <area> in DOM order, some place the <area>s\n // where the <img> referecing them would've been in DOM order.\n // https://github.com/medialize/ally.js/issues/5\n elements = sortArea(elements, _context);\n }\n elements = sortTabindex(elements);\n return elements;\n}\nfunction queryTabsequence() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, context = _ref.context, includeContext = _ref.includeContext, includeOnlyTabbable = _ref.includeOnlyTabbable, strategy = _ref.strategy;\n if (!supports$8) {\n supports$8 = _supports();\n }\n var _context = nodeArray(context)[0] || document.documentElement;\n var elements = queryTabbable({\n context: _context,\n includeContext: includeContext,\n includeOnlyTabbable: includeOnlyTabbable,\n strategy: strategy\n });\n if (document.body.createShadowRoot && platform.is.BLINK) {\n // sort tabindex localized to shadow dom\n // see https://github.com/medialize/ally.js/issues/6\n elements = sortShadowed(elements, _context, sortElements);\n } else {\n elements = sortElements(elements, _context);\n }\n if (includeContext) {\n // if we include the context itself, it has to be the first\n // element of the sequence\n elements = moveContextToBeginning(elements, _context);\n }\n return elements;\n}\n// codes mostly cloned from https://github.com/keithamus/jwerty/blob/master/jwerty.js\n// deliberately not exposing characters like <,.-#* because they vary *wildly*\n// across keyboard layouts and may cause various problems\n// (e.g. \"*\" is \"Shift +\" on a German Mac keyboard)\n// (e.g. \"@\" is \"Alt L\" on a German Mac keyboard)\nvar keycode = {\n // Element Focus\n tab: 9,\n // Navigation\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n pageUp: 33,\n 'page-up': 33,\n pageDown: 34,\n 'page-down': 34,\n end: 35,\n home: 36,\n // Action\n enter: 13,\n escape: 27,\n space: 32,\n // Modifier\n shift: 16,\n capsLock: 20,\n 'caps-lock': 20,\n ctrl: 17,\n alt: 18,\n meta: 91,\n // in firefox: 224\n // on mac (chrome): meta-left=91, meta-right=93\n // on win (IE11): meta-left=91, meta-right=92\n pause: 19,\n // Content Manipulation\n insert: 45,\n delete: 46,\n backspace: 8,\n // the same logical key may be identified through different keyCodes\n _alias: {\n 91: [\n 92,\n 93,\n 224\n ]\n }\n};\n// Function keys (112 - 137)\n// NOTE: not every keyboard knows F13+\nfor(var n = 1; n < 26; n++){\n keycode['f' + n] = n + 111;\n}\n// Number keys (48-57, numpad 96-105)\n// NOTE: not every keyboard knows num-0+\nfor(var _n = 0; _n < 10; _n++){\n var code = _n + 48;\n var numCode = _n + 96;\n keycode[_n] = code;\n keycode['num-' + _n] = numCode;\n keycode._alias[code] = [\n numCode\n ];\n}\n// Latin characters (65 - 90)\nfor(var _n2 = 0; _n2 < 26; _n2++){\n var _code = _n2 + 65;\n var name$1 = String.fromCharCode(_code).toLowerCase();\n keycode[name$1] = _code;\n}\nvar modifier = {\n alt: 'altKey',\n ctrl: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey'\n};\nvar modifierSequence = Object.keys(modifier).map(function(name) {\n return modifier[name];\n});\nfunction createExpectedModifiers(ignoreModifiers) {\n var value = ignoreModifiers ? null : false;\n return {\n altKey: value,\n ctrlKey: value,\n metaKey: value,\n shiftKey: value\n };\n}\nfunction resolveModifiers(modifiers) {\n var ignoreModifiers = modifiers.indexOf('*') !== -1;\n var expected = createExpectedModifiers(ignoreModifiers);\n modifiers.forEach(function(token) {\n if (token === '*') {\n // we've already covered the all-in operator\n return;\n }\n // we want the modifier pressed\n var value = true;\n var operator = token.slice(0, 1);\n if (operator === '?') {\n // we don't care if the modifier is pressed\n value = null;\n } else if (operator === '!') {\n // we do not want the modifier pressed\n value = false;\n }\n if (value !== true) {\n // compensate for the modifier's operator\n token = token.slice(1);\n }\n var propertyName = modifier[token];\n if (!propertyName) {\n throw new TypeError('Unknown modifier \"' + token + '\"');\n }\n expected[propertyName] = value;\n });\n return expected;\n}\nfunction resolveKey(key) {\n var code = keycode[key] || parseInt(key, 10);\n if (!code || typeof code !== 'number' || isNaN(code)) {\n throw new TypeError('Unknown key \"' + key + '\"');\n }\n return [\n code\n ].concat(keycode._alias[code] || []);\n}\nfunction matchModifiers(expected, event) {\n // returns true on match\n return !modifierSequence.some(function(prop) {\n // returns true on mismatch\n return typeof expected[prop] === 'boolean' && Boolean(event[prop]) !== expected[prop];\n });\n}\nfunction keyBinding(text) {\n return text.split(/\\s+/).map(function(_text) {\n var tokens = _text.split('+');\n var _modifiers = resolveModifiers(tokens.slice(0, -1));\n var _keyCodes = resolveKey(tokens.slice(-1));\n return {\n keyCodes: _keyCodes,\n modifiers: _modifiers,\n matchModifiers: matchModifiers.bind(null, _modifiers)\n };\n });\n}\n// Node.compareDocumentPosition is available since IE9\n// see https://developer.mozilla.org/docs/Web/API/Node.compareDocumentPosition\n// callback returns true when element is contained by parent or is the parent suited for use with Array.some()\n/*\n USAGE:\n var isChildOf = getParentComparator({parent: someNode});\n listOfElements.some(isChildOf)\n*/ function getParentComparator() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, parent = _ref.parent, element = _ref.element, includeSelf = _ref.includeSelf;\n if (parent) {\n return function isChildOf(node) {\n return Boolean(includeSelf && node === parent || parent.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n } else if (element) {\n return function isParentOf(node) {\n return Boolean(includeSelf && element === node || node.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n }\n throw new TypeError('util/compare-position#getParentComparator required either options.parent or options.element');\n}\n// Bug 286933 - Key events in the autocomplete popup should be hidden from page scripts\n// @browser-issue Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=286933\nfunction whenKey() {\n var map = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var bindings = {};\n var context = nodeArray(map.context)[0] || document.documentElement;\n delete map.context;\n var filter = nodeArray(map.filter);\n delete map.filter;\n var mapKeys = Object.keys(map);\n if (!mapKeys.length) {\n throw new TypeError('when/key requires at least one option key');\n }\n var registerBinding = function registerBinding(event) {\n event.keyCodes.forEach(function(code) {\n if (!bindings[code]) {\n bindings[code] = [];\n }\n bindings[code].push(event);\n });\n };\n mapKeys.forEach(function(text) {\n if (typeof map[text] !== 'function') {\n throw new TypeError('when/key requires option[\"' + text + '\"] to be a function');\n }\n var addCallback = function addCallback(event) {\n event.callback = map[text];\n return event;\n };\n keyBinding(text).map(addCallback).forEach(registerBinding);\n });\n var handleKeyDown = function handleKeyDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n if (filter.length) {\n // ignore elements within the exempted sub-trees\n var isParentOfElement = getParentComparator({\n element: event.target,\n includeSelf: true\n });\n if (filter.some(isParentOfElement)) {\n return;\n }\n }\n var key = event.keyCode || event.which;\n if (!bindings[key]) {\n return;\n }\n bindings[key].forEach(function(_event) {\n if (!_event.matchModifiers(event)) {\n return;\n }\n _event.callback.call(context, event, disengage);\n });\n };\n context.addEventListener('keydown', handleKeyDown, false);\n var disengage = function disengage() {\n context.removeEventListener('keydown', handleKeyDown, false);\n };\n return {\n disengage: disengage\n };\n}\nfunction _default(param) {\n let { context } = param === void 0 ? {} : param;\n if (!context) {\n context = document.documentElement;\n }\n // Make sure the supports tests are run before intercepting the Tab key,\n // or IE10 and IE11 will fail to process the first Tab key event. Not\n // limiting this warm-up to IE because it may be a problem elsewhere, too.\n queryTabsequence();\n return whenKey({\n // Safari on OSX may require ALT+TAB to reach links,\n // see https://github.com/medialize/ally.js/issues/146\n '?alt+?shift+tab': function altShiftTab(event) {\n // we're completely taking over the Tab key handling\n event.preventDefault();\n var sequence = queryTabsequence({\n context: context\n });\n var backward = event.shiftKey;\n var first = sequence[0];\n var last = sequence[sequence.length - 1];\n // wrap around first to last, last to first\n var source = backward ? first : last;\n var target = backward ? last : first;\n if (isActiveElement(source)) {\n target.focus();\n return;\n }\n // find current position in tabsequence\n var currentIndex = void 0;\n var found = sequence.some(function(element, index) {\n if (!isActiveElement(element)) {\n return false;\n }\n currentIndex = index;\n return true;\n });\n if (!found) {\n // redirect to first as we're not in our tabsequence\n first.focus();\n return;\n }\n // shift focus to previous/next element in the sequence\n var offset = backward ? -1 : 1;\n sequence[currentIndex + offset].focus();\n }\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=maintain--tab-focus.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9tYWludGFpbi0tdGFiLWZvY3VzLmpzIiwibWFwcGluZ3MiOiJBQUFBLGtCQUFrQixHQUNsQixjQUFjO0FBQ2QsbURBQW1EO0FBQ25ELGVBQWU7QUFDZixpQ0FBaUM7QUFDakMsRUFBRTtBQUNGLHlDQUF5Qzs7Ozs7MkNBbTdHekM7OztlQUFBOzs7OytFQWo3R3NCO2dGQUNBO0FBRXRCLHlGQUF5RjtBQUN6Riw2RUFBNkU7QUFDN0UsU0FBU0EsVUFBVUMsS0FBSztJQUN0QixJQUFJLENBQUNBLE9BQU87UUFDVixPQUFPLEVBQUU7SUFDWDtJQUVBLElBQUlDLE1BQU1DLE9BQU8sQ0FBQ0YsUUFBUTtRQUN4QixPQUFPQTtJQUNUO0lBRUEsK0NBQStDO0lBQy9DLElBQUlBLE1BQU1HLFFBQVEsS0FBS0MsV0FBVztRQUNoQyxPQUFPO1lBQUNKO1NBQU07SUFDaEI7SUFFQSxJQUFJLE9BQU9BLFVBQVUsVUFBVTtRQUM3QkEsUUFBUUssU0FBU0MsZ0JBQWdCLENBQUNOO0lBQ3BDO0lBRUEsSUFBSUEsTUFBTU8sTUFBTSxLQUFLSCxXQUFXO1FBQzlCLE9BQU8sRUFBRSxDQUFDSSxLQUFLLENBQUNDLElBQUksQ0FBQ1QsT0FBTztJQUM5QjtJQUVBLE1BQU0sSUFBSVUsVUFBVSxzQkFBc0JDLE9BQU9YO0FBQ25EO0FBRUEsU0FBU1ksaUJBQWlCQyxJQUFJO0lBQzVCLElBQUlDLFVBQVVELEtBQUtDLE9BQU8sRUFDeEJDLGFBQWFGLEtBQUtHLEtBQUssRUFDdkJBLFFBQVFELGVBQWVYLFlBQVksdUJBQXVCVyxZQUMxREUsa0JBQWtCSixLQUFLSSxlQUFlLEVBQ3RDQyxvQkFBb0JMLEtBQUtLLGlCQUFpQjtJQUU1QyxJQUFJQyxVQUFVcEIsVUFBVWUsUUFBUSxDQUFDLEVBQUU7SUFFbkMsSUFBSUcsbUJBQW1CRSxXQUFXQSxRQUFRaEIsUUFBUSxLQUFLaUIsS0FBS0MsYUFBYSxFQUFFO1FBQ3pFRixVQUFVQSxRQUFRRyxlQUFlO0lBQ25DO0lBRUEsSUFBSSxDQUFDSCxXQUFXRCxtQkFBbUI7UUFDakMsT0FBT2IsU0FBU2lCLGVBQWU7SUFDakM7SUFFQSxJQUFJLENBQUNILFNBQVM7UUFDWixNQUFNLElBQUlULFVBQVVNLFFBQVE7SUFDOUI7SUFFQSxJQUNFRyxRQUFRaEIsUUFBUSxLQUFLaUIsS0FBS0csWUFBWSxJQUN0Q0osUUFBUWhCLFFBQVEsS0FBS2lCLEtBQUtJLHNCQUFzQixFQUNoRDtRQUNBLE1BQU0sSUFBSWQsVUFBVU0sUUFBUTtJQUM5QjtJQUVBLE9BQU9HO0FBQ1Q7QUFFQSxTQUFTTTtJQUNQLElBQUlaLE9BQ0FhLFVBQVVuQixNQUFNLEdBQUcsS0FBS21CLFNBQVMsQ0FBQyxFQUFFLEtBQUt0QixZQUFZc0IsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQ3ZFWixVQUFVRCxLQUFLQyxPQUFPO0lBRXhCLElBQUlLLFVBQVVQLGlCQUFpQjtRQUM3QkksT0FBTztRQUNQRixTQUFTQTtJQUNYO0lBRUEsc0JBQXNCO0lBQ3RCLElBQUlhLFlBQVk7SUFFaEIsTUFBT1IsUUFBUztRQUNkUSxZQUFZUjtRQUNaQSxVQUFVQSxRQUFRUyxVQUFVO0lBQzlCO0lBRUEsMkRBQTJEO0lBQzNELGlFQUFpRTtJQUNqRSxJQUNFRCxVQUFVeEIsUUFBUSxLQUFLd0IsVUFBVUgsc0JBQXNCLElBQ3ZERyxVQUFVRSxJQUFJLEVBQ2Q7UUFDQSwwREFBMEQ7UUFDMUQsT0FBT0YsVUFBVUUsSUFBSTtJQUN2QjtJQUVBLE9BQU87QUFDVDtBQUVBLFNBQVNDLFlBQVlDLElBQUk7SUFDdkIsSUFBSSxDQUFDQSxNQUFNO1FBQ1QsT0FBTzFCO0lBQ1Q7SUFFQSxJQUFJMEIsS0FBSzVCLFFBQVEsS0FBS2lCLEtBQUtDLGFBQWEsRUFBRTtRQUN4QyxPQUFPVTtJQUNUO0lBRUEsT0FBT0EsS0FBS0MsYUFBYSxJQUFJM0I7QUFDL0I7QUFFQSxTQUFTNEIsZ0JBQWdCbkIsT0FBTztJQUM5QixJQUFJSyxVQUFVUCxpQkFBaUI7UUFDN0JJLE9BQU87UUFDUEMsaUJBQWlCO1FBQ2pCSCxTQUFTQTtJQUNYO0lBRUEsSUFBSW9CLFlBQVlKLFlBQVlYO0lBQzVCLElBQUllLFVBQVVDLGFBQWEsS0FBS2hCLFNBQVM7UUFDdkMsT0FBTztJQUNUO0lBRUEsSUFBSWlCLGFBQWFYLGNBQWM7UUFBRVgsU0FBU0s7SUFBUTtJQUNsRCxJQUFJaUIsY0FBY0EsV0FBV0MsVUFBVSxDQUFDRixhQUFhLEtBQUtoQixTQUFTO1FBQ2pFLE9BQU87SUFDVDtJQUVBLE9BQU87QUFDVDtBQUVBLG1EQUFtRDtBQUNuRCwwRUFBMEU7QUFDMUUsU0FBU21CO0lBQ1AsSUFBSXpCLE9BQ0FhLFVBQVVuQixNQUFNLEdBQUcsS0FBS21CLFNBQVMsQ0FBQyxFQUFFLEtBQUt0QixZQUFZc0IsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQ3ZFWixVQUFVRCxLQUFLQyxPQUFPO0lBRXhCLElBQUl5QixPQUFPLEVBQUU7SUFDYixJQUFJcEIsVUFBVVAsaUJBQWlCO1FBQzdCSSxPQUFPO1FBQ1BGLFNBQVNBO0lBQ1g7SUFFQSxNQUFPSyxRQUFTO1FBQ2RvQixLQUFLQyxJQUFJLENBQUNyQjtRQUNWLG1EQUFtRDtRQUNuREEsVUFBVUEsUUFBUVMsVUFBVTtRQUM1QixJQUFJVCxXQUFXQSxRQUFRaEIsUUFBUSxLQUFLaUIsS0FBS0csWUFBWSxFQUFFO1lBQ3JESixVQUFVO1FBQ1o7SUFDRjtJQUVBLE9BQU9vQjtBQUNUO0FBRUEsaUVBQWlFO0FBQ2pFLGdFQUFnRTtBQUVoRSxJQUFJRSxRQUFRO0lBQ1Y7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUNELElBQUlDLE9BQU87QUFFWCxTQUFTQyxlQUFleEIsT0FBTztJQUM3QnNCLE1BQU1HLElBQUksQ0FBQyxTQUFVQyxLQUFLO1FBQ3hCLElBQUksQ0FBQzFCLE9BQU8sQ0FBQzBCLE1BQU0sRUFBRTtZQUNuQixPQUFPO1FBQ1Q7UUFFQUgsT0FBT0c7UUFDUCxPQUFPO0lBQ1Q7QUFDRjtBQUVBLFNBQVNDLGVBQWUzQixPQUFPLEVBQUU0QixRQUFRO0lBQ3ZDLElBQUksQ0FBQ0wsTUFBTTtRQUNUQyxlQUFleEI7SUFDakI7SUFFQSxPQUFPQSxPQUFPLENBQUN1QixLQUFLLENBQUNLO0FBQ3ZCO0FBRUEsa0NBQWtDO0FBQ2xDLElBQUlDLFdBQVdDLEtBQUtDLEtBQUssQ0FBQ0QsS0FBS0UsU0FBUyxDQUFDQyxVQUFBQSxPQUFTO0FBRWxELG1CQUFtQjtBQUNuQixJQUFJQyxLQUFLTCxTQUFTSyxFQUFFLENBQUNDLE1BQU0sSUFBSTtBQUMvQixJQUFJQyxVQUFVRixPQUFPO0FBQ3JCLElBQUlHLFVBQVVILEdBQUc3QyxLQUFLLENBQUMsR0FBRyxPQUFPO0FBQ2pDLElBQUlpRCxNQUFNSixPQUFPO0FBQ2pCLElBQUlLLE1BQU1MLE9BQU87QUFFakIsU0FBUztBQUNULElBQUlNLFFBQVFYLFNBQVNZLE1BQU0sS0FBSztBQUNoQyxJQUFJQyxRQUFRYixTQUFTWSxNQUFNLEtBQUs7QUFDaEMsSUFBSUUsVUFBVWQsU0FBU1ksTUFBTSxLQUFLO0FBQ2xDLElBQUlHLE9BQU9mLFNBQVNZLE1BQU0sS0FBSztBQUMvQixJQUFJSSxTQUFTaEIsU0FBU1ksTUFBTSxLQUFLO0FBRWpDLCtDQUErQztBQUMvQyxJQUFJSyxVQUFVQyxXQUFXbEIsU0FBU2lCLE9BQU87QUFDekMsSUFBSUUsZUFBZUMsS0FBS0MsS0FBSyxDQUFDSjtBQUM5QmpCLFNBQVNtQixZQUFZLEdBQUdBO0FBRXhCbkIsU0FBU3NCLEVBQUUsR0FBRztJQUNaLG1CQUFtQjtJQUNuQmYsU0FBU0E7SUFDVEMsU0FBU0E7SUFDVEMsS0FBS0E7SUFDTEMsS0FBS0E7SUFDTCxTQUFTO0lBQ1RDLE9BQU9BO0lBQ1BFLE9BQU9BO0lBQ1BDLFNBQVNBO0lBQ1RDLE1BQU1BO0lBQ05DLFFBQVFBO0lBQ1IscUJBQXFCO0lBQ3JCTyxLQUFLVCxXQUFXSyxpQkFBaUI7SUFDakNLLE1BQU1WLFdBQVdLLGlCQUFpQjtJQUNsQ00sTUFBTVgsV0FBV0ssaUJBQWlCO0FBQ3BDO0FBRUEsU0FBU087SUFDUCxJQUFJQyxPQUFPO1FBQ1QsZ0RBQWdEO1FBQ2hEeEMsZUFBZTlCLFNBQVM4QixhQUFhO1FBQ3JDLGtEQUFrRDtRQUNsRHlDLGlCQUFpQkMsT0FBT0MsU0FBUztRQUNqQ0Msa0JBQWtCRixPQUFPRyxVQUFVO1FBQ25DQyxlQUFlNUUsU0FBUzZFLElBQUksQ0FBQ0osU0FBUztRQUN0Q0ssZ0JBQWdCOUUsU0FBUzZFLElBQUksQ0FBQ0YsVUFBVTtJQUMxQztJQUVBLHNFQUFzRTtJQUN0RSxtRUFBbUU7SUFDbkUsSUFBSUksU0FBUy9FLFNBQVNnRixhQUFhLENBQUM7SUFDcENELE9BQU9FLFlBQVksQ0FDakIsU0FDQTtJQUVGRixPQUFPRSxZQUFZLENBQUMsYUFBYTtJQUNqQ0YsT0FBT0UsWUFBWSxDQUFDLGFBQWE7SUFDakNGLE9BQU9FLFlBQVksQ0FBQyxlQUFlO0lBQ25DakYsU0FBUzZFLElBQUksQ0FBQ0ssV0FBVyxDQUFDSDtJQUUxQixJQUFJSSxVQUFVSixPQUFPSyxhQUFhO0lBQ2xDLElBQUl2RCxZQUFZc0QsUUFBUW5GLFFBQVE7SUFFaEM2QixVQUFVd0QsSUFBSTtJQUNkeEQsVUFBVXlELEtBQUs7SUFDZixJQUFJQyxVQUFVMUQsVUFBVW1ELGFBQWEsQ0FBQztJQUN0Q25ELFVBQVVnRCxJQUFJLENBQUNLLFdBQVcsQ0FBQ0s7SUFFM0JqQixLQUFLUyxNQUFNLEdBQUdBO0lBQ2RULEtBQUtpQixPQUFPLEdBQUdBO0lBQ2ZqQixLQUFLRSxNQUFNLEdBQUdXO0lBQ2RiLEtBQUt0RSxRQUFRLEdBQUc2QjtJQUVoQixPQUFPeUM7QUFDVDtBQUVBLG1CQUFtQjtBQUNuQix5QkFBeUI7QUFDekIsaUVBQWlFO0FBQ2pFLDZCQUE2QjtBQUM3Qiw4RkFBOEY7QUFDOUYsOEVBQThFO0FBQzlFLCtCQUErQjtBQUMvQixpRkFBaUY7QUFDakYsU0FBU2tCLEtBQUtsQixJQUFJLEVBQUVtQixPQUFPO0lBQ3pCLHdDQUF3QztJQUN4Q25CLEtBQUtpQixPQUFPLENBQUNHLFNBQVMsR0FBRztJQUN6QiwrQ0FBK0M7SUFDL0MsSUFBSTVFLFVBQ0YsT0FBTzJFLFFBQVEzRSxPQUFPLEtBQUssV0FDdkJ3RCxLQUFLdEUsUUFBUSxDQUFDZ0YsYUFBYSxDQUFDUyxRQUFRM0UsT0FBTyxJQUMzQzJFLFFBQVEzRSxPQUFPLENBQUN3RCxLQUFLaUIsT0FBTyxFQUFFakIsS0FBS3RFLFFBQVE7SUFDakQsa0RBQWtEO0lBQ2xELHlDQUF5QztJQUN6QyxJQUFJMkYsUUFDRkYsUUFBUUcsTUFBTSxJQUFJSCxRQUFRRyxNQUFNLENBQUM5RSxTQUFTd0QsS0FBS2lCLE9BQU8sRUFBRWpCLEtBQUt0RSxRQUFRO0lBQ3ZFLElBQUksQ0FBQzJGLFNBQVNBLFVBQVUsT0FBTztRQUM3QkEsUUFBUTdFO0lBQ1Y7SUFDQSxzREFBc0Q7SUFDdEQsQ0FBQ0EsUUFBUVMsVUFBVSxJQUFJK0MsS0FBS2lCLE9BQU8sQ0FBQ0wsV0FBVyxDQUFDcEU7SUFDaEQsMkRBQTJEO0lBQzNENkUsU0FBU0EsTUFBTUEsS0FBSyxJQUFJQSxNQUFNQSxLQUFLO0lBQ25DLHlCQUF5QjtJQUN6QixPQUFPRixRQUFRSSxRQUFRLEdBQ25CSixRQUFRSSxRQUFRLENBQUMvRSxTQUFTNkUsT0FBT3JCLEtBQUt0RSxRQUFRLElBQzlDc0UsS0FBS3RFLFFBQVEsQ0FBQzhCLGFBQWEsS0FBSzZEO0FBQ3RDO0FBRUEsU0FBU0csTUFBTXhCLElBQUk7SUFDakIsdURBQXVEO0lBQ3ZELElBQUlBLEtBQUt4QyxhQUFhLEtBQUs5QixTQUFTNkUsSUFBSSxFQUFFO1FBQ3hDN0UsU0FBUzhCLGFBQWEsSUFDcEI5QixTQUFTOEIsYUFBYSxDQUFDaUUsSUFBSSxJQUMzQi9GLFNBQVM4QixhQUFhLENBQUNpRSxJQUFJO1FBQzdCLElBQUlwRCxTQUFTc0IsRUFBRSxDQUFDRSxJQUFJLEVBQUU7WUFDcEIsMkVBQTJFO1lBQzNFbkUsU0FBUzZFLElBQUksQ0FBQ2MsS0FBSztRQUNyQjtJQUNGLE9BQU87UUFDTHJCLEtBQUt4QyxhQUFhLElBQUl3QyxLQUFLeEMsYUFBYSxDQUFDNkQsS0FBSyxJQUFJckIsS0FBS3hDLGFBQWEsQ0FBQzZELEtBQUs7SUFDNUU7SUFFQTNGLFNBQVM2RSxJQUFJLENBQUNtQixXQUFXLENBQUMxQixLQUFLUyxNQUFNO0lBRXJDLDBCQUEwQjtJQUMxQlAsT0FBT0MsU0FBUyxHQUFHSCxLQUFLQyxlQUFlO0lBQ3ZDQyxPQUFPRyxVQUFVLEdBQUdMLEtBQUtJLGdCQUFnQjtJQUN6QzFFLFNBQVM2RSxJQUFJLENBQUNKLFNBQVMsR0FBR0gsS0FBS00sYUFBYTtJQUM1QzVFLFNBQVM2RSxJQUFJLENBQUNGLFVBQVUsR0FBR0wsS0FBS1EsY0FBYztBQUNoRDtBQUVBLFNBQVNtQixZQUFZQyxLQUFLO0lBQ3hCLElBQUk1QixPQUFPRDtJQUVYLElBQUk4QixVQUFVLENBQUM7SUFDZkMsT0FBT0MsSUFBSSxDQUFDSCxPQUFPSSxHQUFHLENBQUMsU0FBVUMsR0FBRztRQUNsQ0osT0FBTyxDQUFDSSxJQUFJLEdBQUdmLEtBQUtsQixNQUFNNEIsS0FBSyxDQUFDSyxJQUFJO0lBQ3RDO0lBRUFULE1BQU14QjtJQUNOLE9BQU82QjtBQUNUO0FBRUEsa0RBQWtEO0FBQ2xELElBQUlLLFlBQVk7QUFFaEI7Ozs7OztDQU1DLEdBRUQsU0FBU0MsaUJBQWlCRixHQUFHO0lBQzNCLGtFQUFrRTtJQUNsRSw4Q0FBOEM7SUFDOUMsSUFBSWpDLE9BQU8sS0FBSztJQUVoQixJQUFJO1FBQ0ZBLE9BQU9FLE9BQU9rQyxZQUFZLElBQUlsQyxPQUFPa0MsWUFBWSxDQUFDQyxPQUFPLENBQUNKO1FBQzFEakMsT0FBT0EsT0FBTzFCLEtBQUtDLEtBQUssQ0FBQ3lCLFFBQVEsQ0FBQztJQUNwQyxFQUFFLE9BQU9zQyxHQUFHO1FBQ1Z0QyxPQUFPLENBQUM7SUFDVjtJQUVBLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTdUMsa0JBQWtCTixHQUFHLEVBQUVPLEtBQUs7SUFDbkMsSUFBSSxDQUFDOUcsU0FBUytHLFFBQVEsSUFBSTtRQUN4QiwyRUFBMkU7UUFDM0Usd0VBQXdFO1FBQ3hFLGdGQUFnRjtRQUNoRixJQUFJO1lBQ0Z2QyxPQUFPa0MsWUFBWSxJQUFJbEMsT0FBT2tDLFlBQVksQ0FBQ00sVUFBVSxDQUFDVDtRQUN4RCxFQUFFLE9BQU9LLEdBQUc7UUFDVixTQUFTO1FBQ1g7UUFFQTtJQUNGO0lBRUEsSUFBSTtRQUNGcEMsT0FBT2tDLFlBQVksSUFDakJsQyxPQUFPa0MsWUFBWSxDQUFDTyxPQUFPLENBQUNWLEtBQUszRCxLQUFLRSxTQUFTLENBQUNnRTtJQUNwRCxFQUFFLE9BQU9GLEdBQUc7SUFDVixTQUFTO0lBQ1g7QUFDRjtBQUVBLElBQUlNLFlBQ0QsS0FBNkIsSUFBSTFDLE9BQU8yQyxTQUFTLENBQUNELFNBQVMsSUFBSztBQUNuRSxJQUFJRSxXQUFXO0FBQ2YsSUFBSUMsUUFBUVosaUJBQWlCVztBQUU3QiwwRUFBMEU7QUFDMUUsSUFBSUMsTUFBTUgsU0FBUyxLQUFLQSxhQUFhRyxNQUFNekQsT0FBTyxLQUFLNEMsV0FBVztJQUNoRWEsUUFBUSxDQUFDO0FBQ1g7QUFFQUEsTUFBTUgsU0FBUyxHQUFHQTtBQUNsQkcsTUFBTXpELE9BQU8sR0FBRzRDO0FBRWhCLElBQUljLFVBQVU7SUFDWkMsS0FBSyxTQUFTQTtRQUNaLE9BQU9GO0lBQ1Q7SUFDQUcsS0FBSyxTQUFTQSxJQUFJQyxNQUFNO1FBQ3RCckIsT0FBT0MsSUFBSSxDQUFDb0IsUUFBUUMsT0FBTyxDQUFDLFNBQVVuQixHQUFHO1lBQ3ZDYyxLQUFLLENBQUNkLElBQUksR0FBR2tCLE1BQU0sQ0FBQ2xCLElBQUk7UUFDMUI7UUFFQWMsTUFBTU0sSUFBSSxHQUFHLElBQUlDLE9BQU9DLFdBQVc7UUFDbkNoQixrQkFBa0JPLFVBQVVDO0lBQzlCO0FBQ0Y7QUFFQSxTQUFTUztJQUNQLElBQUlDLGFBQWEsS0FBSztJQUV0Qiw4REFBOEQ7SUFDOUQsdURBQXVEO0lBQ3ZELDZEQUE2RDtJQUM3RCxJQUFJO1FBQ0YvSCxTQUFTZ0ksYUFBYSxDQUFDO1FBQ3ZCRCxhQUFhO0lBQ2YsRUFBRSxPQUFPRSxtQkFBbUI7UUFDMUIsSUFBSTtZQUNGLGdEQUFnRDtZQUNoRCw2REFBNkQ7WUFDN0RqSSxTQUFTZ0ksYUFBYSxDQUFDO1lBQ3ZCRCxhQUFhO1FBQ2YsRUFBRSxPQUFPRyxRQUFRO1lBQ2ZILGFBQWE7UUFDZjtJQUNGO0lBRUEsT0FBT0E7QUFDVDtBQUVBLElBQUlJLE1BQ0Y7QUFFRixzRUFBc0U7QUFDdEUsSUFBSUMsdUJBQXVCO0lBQ3pCdEgsU0FBUztJQUNUOEUsUUFBUSxTQUFTQSxPQUFPOUUsT0FBTztRQUM3QkEsUUFBUTRFLFNBQVMsR0FDZix5Q0FDQSxvREFDQSxzRUFDQXlDLE1BQ0E7UUFFRixPQUFPckgsUUFBUWtILGFBQWEsQ0FBQztJQUMvQjtBQUNGO0FBRUEsc0VBQXNFO0FBQ3RFLElBQUlLLG9CQUFvQjtJQUN0QnZILFNBQVM7SUFDVDhFLFFBQVEsU0FBU0EsT0FBTzlFLE9BQU87UUFDN0JBLFFBQVE0RSxTQUFTLEdBQ2YseUNBQ0EsK0VBQ0Esd0RBQ0F5QyxNQUNBO1FBRUYsT0FBTztJQUNUO0lBQ0F0QyxVQUFVLFNBQVNBLFNBQVMvRSxPQUFPLEVBQUV3SCxXQUFXLEVBQUV6RyxTQUFTO1FBQ3pELElBQUljLFNBQVNzQixFQUFFLENBQUNULEtBQUssRUFBRTtZQUNyQix1REFBdUQ7WUFDdkQscUVBQXFFO1lBQ3JFLE9BQU87UUFDVDtRQUVBLElBQUltQyxRQUFRN0UsUUFBUWtILGFBQWEsQ0FBQztRQUNsQ3JDLE1BQU1BLEtBQUs7UUFDWCxPQUFPOUQsVUFBVUMsYUFBYSxLQUFLNkQ7SUFDckM7QUFDRjtBQUVBLHNFQUFzRTtBQUN0RSxJQUFJNEMsdUJBQXVCO0lBQ3pCekgsU0FBUztJQUNUOEUsUUFBUSxTQUFTQSxPQUFPOUUsT0FBTztRQUM3QkEsUUFBUTRFLFNBQVMsR0FDZiwwQ0FDQSxvREFDQSx5REFDQXlDLE1BQ0E7UUFFRixPQUFPckgsUUFBUWtILGFBQWEsQ0FBQztJQUMvQjtJQUNBbkMsVUFBVSxTQUFTQSxTQUFTL0UsT0FBTyxFQUFFd0gsV0FBVyxFQUFFekcsU0FBUztRQUN6RCxJQUFJYyxTQUFTc0IsRUFBRSxDQUFDVCxLQUFLLEVBQUU7WUFDckIsdURBQXVEO1lBQ3ZELHFFQUFxRTtZQUNyRSxPQUFPO1FBQ1Q7UUFFQSxPQUFPM0IsVUFBVUMsYUFBYSxLQUFLd0c7SUFDckM7QUFDRjtBQUVBLElBQUlFLDRCQUE0QjtJQUM5Qm5HLE1BQU07SUFDTnZCLFNBQVM7SUFDVDhFLFFBQVEsU0FBU0EsT0FBTzlFLE9BQU87UUFDN0IsSUFBSTtZQUNGLHNGQUFzRjtZQUN0RkEsUUFBUW1FLFlBQVksQ0FBQyxPQUFPa0Q7UUFDOUIsRUFBRSxPQUFPdkIsR0FBRztRQUNWLHlDQUF5QztRQUMzQztJQUNGO0FBQ0Y7QUFFQSxJQUFJNkIsYUFDRjtBQUVGLHVEQUF1RDtBQUN2RCxzRUFBc0U7QUFDdEUsSUFBSUMsc0JBQXNCO0lBQ3hCNUgsU0FBUztJQUNUOEUsUUFBUSxTQUFTQSxPQUFPOUUsT0FBTztRQUM3QkEsUUFBUTRFLFNBQVMsR0FDZixtR0FDQSxzREFDQStDLGFBQ0E7UUFFRixPQUFPM0gsUUFBUWtILGFBQWEsQ0FBQztJQUMvQjtBQUNGO0FBRUEsNEVBQTRFO0FBQzVFLElBQUlXLGtDQUFrQztJQUNwQzdILFNBQVM7SUFDVDhFLFFBQVEsU0FBU0EsT0FBTzlFLE9BQU87UUFDN0JBLFFBQVFtRSxZQUFZLENBQUMsWUFBWTtRQUNqQ25FLFFBQVFtRSxZQUFZLENBQ2xCLFNBQ0E7UUFFRm5FLFFBQVE0RSxTQUFTLEdBQUc7UUFDcEIsT0FBTzVFLFFBQVFrSCxhQUFhLENBQUM7SUFDL0I7QUFDRjtBQUVBLHdGQUF3RjtBQUN4Riw2RkFBNkY7QUFDN0YsbURBQW1EO0FBQ25ELHVFQUF1RTtBQUN2RSxJQUFJWSx3QkFBd0I7SUFDMUI5SCxTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPO1FBQzdCQSxRQUFRbUUsWUFBWSxDQUFDLFlBQVk7UUFDakNuRSxRQUFRbUUsWUFBWSxDQUFDLFlBQVk7SUFDbkM7QUFDRjtBQUVBLElBQUk0RCxnQkFBZ0I7SUFDbEIvSCxTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPO1FBQzdCQSxRQUFRNEUsU0FBUyxHQUFHO0lBQ3RCO0FBQ0Y7QUFFQSxzREFBc0Q7QUFDdEQsSUFBSW9ELHdCQUF3QjtJQUMxQmhJLFNBQVM7SUFDVDhFLFFBQVEsU0FBU0EsT0FBTzlFLE9BQU87UUFDN0JBLFFBQVFtRSxZQUFZLENBQ2xCLFNBQ0E7UUFFRm5FLFFBQVE0RSxTQUFTLEdBQUc7SUFDdEI7QUFDRjtBQUVBLHdEQUF3RDtBQUN4RCx3RUFBd0U7QUFDeEUseUVBQXlFO0FBQ3pFLElBQUlxRCxvQkFBb0I7SUFDdEJqSSxTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPO1FBQzdCQSxRQUFRbUUsWUFBWSxDQUFDLFlBQVk7UUFDakNuRSxRQUFRbUUsWUFBWSxDQUFDLFlBQVk7SUFDbkM7QUFDRjtBQUVBLHVEQUF1RDtBQUN2RCx1REFBdUQ7QUFDdkQscUVBQXFFO0FBQ3JFLElBQUkrRCxnQkFBZ0I7SUFDbEJsSSxTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPO1FBQzdCQSxRQUFRbUksSUFBSSxHQUFHO1FBQ2ZuSSxRQUFRNEUsU0FBUyxHQUFHLHFCQUFxQnlDLE1BQU07UUFDL0MsT0FBT3JILFFBQVFrSCxhQUFhLENBQUM7SUFDL0I7QUFDRjtBQUVBLHVEQUF1RDtBQUN2RCxzRUFBc0U7QUFDdEUsSUFBSWtCLHlCQUF5QjtJQUMzQnBJLFNBQVM7SUFDVDhFLFFBQVEsU0FBU0EsT0FBTzlFLE9BQU87UUFDN0JBLFFBQVE0RSxTQUFTLEdBQ2YscUdBQ0EsaUVBQ0EsVUFDQXlDLE1BQ0E7UUFFRixPQUFPckgsUUFBUWtILGFBQWEsQ0FBQztJQUMvQjtBQUNGO0FBRUEsSUFBSW1CLHNCQUFzQjtJQUN4QnJJLFNBQVMsU0FBU0EsUUFBUXlFLE9BQU8sRUFBRTFELFNBQVM7UUFDMUMsSUFBSWtELFNBQVNsRCxVQUFVbUQsYUFBYSxDQUFDO1FBRXJDLGdGQUFnRjtRQUNoRk8sUUFBUUwsV0FBVyxDQUFDSDtRQUVwQixpRkFBaUY7UUFDakYsSUFBSXFFLGlCQUFpQnJFLE9BQU9LLGFBQWEsQ0FBQ3BGLFFBQVE7UUFDbERvSixlQUFlL0QsSUFBSTtRQUNuQitELGVBQWU5RCxLQUFLO1FBQ3BCLE9BQU9QO0lBQ1Q7SUFDQWEsUUFBUSxTQUFTQSxPQUFPYixNQUFNO1FBQzVCQSxPQUFPc0UsS0FBSyxDQUFDQyxVQUFVLEdBQUc7UUFFMUIsSUFBSUYsaUJBQWlCckUsT0FBT0ssYUFBYSxDQUFDcEYsUUFBUTtRQUNsRCxJQUFJTCxRQUFReUosZUFBZXBFLGFBQWEsQ0FBQztRQUN6Q29FLGVBQWV2RSxJQUFJLENBQUNLLFdBQVcsQ0FBQ3ZGO1FBQ2hDLE9BQU9BO0lBQ1Q7SUFDQWtHLFVBQVUsU0FBU0EsU0FBU2QsTUFBTTtRQUNoQyxJQUFJcUUsaUJBQWlCckUsT0FBT0ssYUFBYSxDQUFDcEYsUUFBUTtRQUNsRCxJQUFJMkYsUUFBUXlELGVBQWVwQixhQUFhLENBQUM7UUFDekMsT0FBT29CLGVBQWV0SCxhQUFhLEtBQUs2RDtJQUMxQztBQUNGO0FBRUEsSUFBSTRELFNBQVMsQ0FBQzVHLFNBQVNzQixFQUFFLENBQUNOLE1BQU07QUFFaEMsU0FBUzZGO0lBQ1AsT0FBT0Q7QUFDVDtBQUVBLDBFQUEwRTtBQUMxRSw0RUFBNEU7QUFDNUUsSUFBSUUsdUJBQXVCO0lBQ3pCM0ksU0FBUztJQUNUOEUsUUFBUSxTQUFTQSxPQUFPOUUsT0FBTztRQUM3QkEsUUFBUW1FLFlBQVksQ0FBQyxZQUFZO0lBQ25DO0FBQ0Y7QUFFQSxJQUFJeUUscUJBQXFCO0lBQ3ZCNUksU0FBUztJQUNUOEUsUUFBUSxTQUFTQSxPQUFPOUUsT0FBTztRQUM3QkEsUUFBUW1FLFlBQVksQ0FBQyxZQUFZO0lBQ25DO0lBQ0FZLFVBQVUsU0FBU0EsU0FBUy9FLE9BQU8sRUFBRXdILFdBQVcsRUFBRXpHLFNBQVM7UUFDekQsc0VBQXNFO1FBQ3RFLGlDQUFpQyxHQUNqQyxJQUFJOEgsdUNBQXVDN0ksUUFBUThJLFlBQVk7UUFDL0QsZ0NBQWdDLEdBQ2hDOUksUUFBUTZFLEtBQUs7UUFDYixPQUFPOUQsVUFBVUMsYUFBYSxLQUFLaEI7SUFDckM7QUFDRjtBQUVBLElBQUkrSSxNQUNGLHdGQUNBLHVHQUNBO0FBRUYscURBQXFEO0FBRXJELElBQUlDLHVCQUF1QjtJQUN6QmhKLFNBQVM7SUFDVDhFLFFBQVEsU0FBU0EsT0FBTzlFLE9BQU87UUFDN0JBLFFBQVFtRSxZQUFZLENBQUMsUUFBUTtRQUM3Qm5FLFFBQVFtRSxZQUFZLENBQUMsUUFBUTRFO1FBQzdCL0ksUUFBUW1FLFlBQVksQ0FBQyxTQUFTO1FBQzlCbkUsUUFBUW1FLFlBQVksQ0FBQyxVQUFVO1FBQy9CbkUsUUFBUXVJLEtBQUssQ0FBQ0MsVUFBVSxHQUFHO0lBQzdCO0FBQ0Y7QUFFQSxxREFBcUQ7QUFFckQsSUFBSVMsaUJBQWlCO0lBQ25CMUgsTUFBTTtJQUNOdkIsU0FBUztJQUNUOEUsUUFBUSxTQUFTQSxPQUFPOUUsT0FBTztRQUM3QkEsUUFBUW1FLFlBQVksQ0FBQyxRQUFRO1FBQzdCbkUsUUFBUW1FLFlBQVksQ0FBQyxRQUFRNEU7UUFDN0IvSSxRQUFRbUUsWUFBWSxDQUFDLFNBQVM7UUFDOUJuRSxRQUFRbUUsWUFBWSxDQUFDLFVBQVU7SUFDakM7SUFDQVksVUFBVSxTQUFTQSxTQUFTL0UsT0FBTyxFQUFFd0gsV0FBVyxFQUFFekcsU0FBUztRQUN6RCxJQUFJYyxTQUFTc0IsRUFBRSxDQUFDVCxLQUFLLEVBQUU7WUFDckIscUhBQXFIO1lBQ3JILCtIQUErSDtZQUMvSCxPQUFPO1FBQ1Q7UUFFQSxPQUFPM0IsVUFBVUMsYUFBYSxLQUFLaEI7SUFDckM7QUFDRjtBQUVBLCtEQUErRDtBQUMvRCxJQUFJa0osV0FBVyxDQUFDckgsU0FBU3NCLEVBQUUsQ0FBQ0MsR0FBRztBQUUvQixTQUFTK0Y7SUFDUCxPQUFPRDtBQUNUO0FBRUEsSUFBSUUseUJBQXlCO0lBQzNCcEosU0FBUztJQUNUOEUsUUFBUSxTQUFTQSxPQUFPOUUsT0FBTztRQUM3QkEsUUFBUTRFLFNBQVMsR0FDZix1R0FDQSxxREFDQSxVQUNBeUMsTUFDQTtRQUVGLGlDQUFpQztRQUNqQyxPQUFPckgsUUFBUWtILGFBQWEsQ0FBQztJQUMvQjtJQUNBbkMsVUFBVSxTQUFTQSxTQUFTL0UsT0FBTyxFQUFFd0gsV0FBVyxFQUFFekcsU0FBUztRQUN6RCxJQUFJc0ksU0FBU3JKLFFBQVFrSCxhQUFhLENBQUM7UUFDbkMsT0FBT25HLFVBQVVDLGFBQWEsS0FBS3FJO0lBQ3JDO0FBQ0Y7QUFFQSwrREFBK0Q7QUFFL0QsSUFBSUMsc0JBQXNCO0lBQ3hCdEosU0FBUztJQUNUOEUsUUFBUSxTQUFTQSxPQUFPOUUsT0FBTztRQUM3QkEsUUFBUTRFLFNBQVMsR0FDZjtRQUNGLG9DQUFvQztRQUNwQyxPQUFPO0lBQ1Q7SUFDQUcsVUFBVSxTQUFTQSxTQUFTL0UsT0FBTyxFQUFFd0gsV0FBVyxFQUFFekcsU0FBUztRQUN6RCxJQUFJd0ksWUFBWXZKLFFBQVFrSCxhQUFhLENBQUM7UUFDdEMsSUFBSXNDLFdBQVd4SixRQUFRa0gsYUFBYSxDQUFDO1FBRXJDLDJGQUEyRjtRQUMzRiwyREFBMkQ7UUFDM0RsSCxRQUFRNkUsS0FBSztRQUViN0UsUUFBUWtILGFBQWEsQ0FBQyxVQUFVckMsS0FBSztRQUNyQyxPQUNHOUQsVUFBVUMsYUFBYSxLQUFLdUksYUFBYSxlQUN6Q3hJLFVBQVVDLGFBQWEsS0FBS3dJLFlBQVksY0FDekM7SUFFSjtBQUNGO0FBRUEsaURBQWlEO0FBQ2pELElBQUlDLGtCQUFrQjtJQUNwQnpKLFNBQVM7SUFDVDhFLFFBQVEsU0FBU0EsT0FBTzlFLE9BQU87UUFDN0JBLFFBQVFtRSxZQUFZLENBQUMsU0FBUztRQUM5Qm5FLFFBQVE0RSxTQUFTLEdBQ2Y7UUFDRixPQUFPNUUsUUFBUWtILGFBQWEsQ0FBQztJQUMvQjtBQUNGO0FBRUEsaURBQWlEO0FBQ2pELElBQUl3QyxzQ0FBc0M7SUFDeEMxSixTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPO1FBQzdCQSxRQUFRbUUsWUFBWSxDQUFDLFNBQVM7UUFDOUJuRSxRQUFRNEUsU0FBUyxHQUNmO0lBQ0o7QUFDRjtBQUVBLGlEQUFpRDtBQUNqRCxJQUFJK0UsdUJBQXVCO0lBQ3pCM0osU0FBUztJQUNUOEUsUUFBUSxTQUFTQSxPQUFPOUUsT0FBTztRQUM3QkEsUUFBUW1FLFlBQVksQ0FBQyxTQUFTO1FBQzlCbkUsUUFBUTRFLFNBQVMsR0FDZjtJQUNKO0FBQ0Y7QUFFQSxJQUFJZ0YsZUFBZTtJQUNqQjVKLFNBQVM7SUFDVDhFLFFBQVEsU0FBU0EsT0FBTzlFLE9BQU87UUFDN0JBLFFBQVE0RSxTQUFTLEdBQUc7UUFDcEIsT0FBTzVFLFFBQVE2SixpQkFBaUI7SUFDbEM7QUFDRjtBQUVBLFNBQVNDO0lBQ1Asd0ZBQXdGO0lBQ3hGLDRDQUE0QztJQUM1QyxJQUFJQyxnQkFBZ0I3SyxTQUFTOEssZUFBZSxDQUMxQyw4QkFDQTtJQUVGRCxjQUFjRSxLQUFLLENBQUNDLE9BQU8sQ0FBQ2xFLEtBQUssR0FBRztJQUNwQytELGNBQWNJLE1BQU0sQ0FBQ0QsT0FBTyxDQUFDbEUsS0FBSyxHQUFHO0lBQ3JDK0QsY0FBYzNGLFdBQVcsQ0FBQ2xGLFNBQVNnRixhQUFhLENBQUM7SUFDakQ2RixjQUFjSyxTQUFTLENBQUNDLElBQUksR0FBRztJQUUvQixPQUFPTjtBQUNUO0FBRUEsU0FBU08sMEJBQTBCdEssT0FBTztJQUN4QywyQ0FBMkM7SUFDM0MsbURBQW1EO0lBQ25ELGlEQUFpRDtJQUNqRCxJQUFJdUssZUFDRnZLLFFBQVF3SyxlQUFlLElBQUl4SyxRQUFReUssUUFBUSxDQUFDQyxXQUFXLE9BQU87SUFDaEUsSUFBSSxDQUFDSCxjQUFjO1FBQ2pCLE9BQU87SUFDVDtJQUVBLDRFQUE0RTtJQUM1RSxJQUFJUixnQkFBZ0JEO0lBQ3BCOUosUUFBUW9FLFdBQVcsQ0FBQzJGO0lBQ3BCLElBQUlsTCxRQUFRa0wsY0FBYzdDLGFBQWEsQ0FBQztJQUN4Q3JJLE1BQU1nRyxLQUFLO0lBRVgsZ0RBQWdEO0lBQ2hELG9EQUFvRDtJQUNwRCxpREFBaUQ7SUFDakQsbUNBQW1DO0lBQ25DaEcsTUFBTThMLFFBQVEsR0FBRztJQUVqQixXQUFXO0lBQ1gzSyxRQUFRa0YsV0FBVyxDQUFDNkU7SUFDcEIsT0FBTztBQUNUO0FBRUEsU0FBU2EsU0FBUzVLLE9BQU87SUFDdkIsT0FDRSx3RkFDQUEsVUFDQTtBQUVKO0FBRUEsU0FBUzZFLE1BQU03RSxPQUFPO0lBQ3BCLElBQUlBLFFBQVE2RSxLQUFLLEVBQUU7UUFDakI7SUFDRjtJQUVBLElBQUk7UUFDRmdHLFlBQVlDLFNBQVMsQ0FBQ2pHLEtBQUssQ0FBQ3ZGLElBQUksQ0FBQ1U7SUFDbkMsRUFBRSxPQUFPOEYsR0FBRztRQUNWd0UsMEJBQTBCdEs7SUFDNUI7QUFDRjtBQUVBLFNBQVMrRSxTQUFTL0UsT0FBTyxFQUFFd0gsV0FBVyxFQUFFekcsU0FBUztJQUMvQzhELE1BQU0yQztJQUNOLE9BQU96RyxVQUFVQyxhQUFhLEtBQUt3RztBQUNyQztBQUVBLElBQUl1RCw2QkFBNkI7SUFDL0IvSyxTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPO1FBQzdCQSxRQUFRNEUsU0FBUyxHQUFHZ0csU0FBUztRQUM3QixPQUFPNUssUUFBUWtILGFBQWEsQ0FBQztJQUMvQjtJQUNBbkMsVUFBVUE7QUFDWjtBQUVBLElBQUlpRyw0QkFBNEI7SUFDOUJoTCxTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPO1FBQzdCQSxRQUFRNEUsU0FBUyxHQUFHZ0csU0FBUztRQUM3QixPQUFPNUssUUFBUWtILGFBQWEsQ0FBQztJQUMvQjtJQUNBbkMsVUFBVUE7QUFDWjtBQUVBLElBQUlrRyxvQ0FBb0M7SUFDdENqTCxTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPO1FBQzdCQSxRQUFRNEUsU0FBUyxHQUFHZ0csU0FBUztRQUM3QixPQUFPNUssUUFBUWtILGFBQWEsQ0FBQztJQUMvQjtJQUNBbkMsVUFBVUE7QUFDWjtBQUVBLElBQUltRyxzQkFBc0I7SUFDeEJsTCxTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPO1FBQzdCQSxRQUFRNEUsU0FBUyxHQUFHZ0csU0FDbEI7WUFDRTtZQUNBO1NBQ0QsQ0FBQ08sSUFBSSxDQUFDO1FBR1QsT0FBT25MLFFBQVFrSCxhQUFhLENBQUM7SUFDL0I7SUFDQW5DLFVBQVVBO0FBQ1o7QUFFQSxJQUFJcUcsZ0NBQWdDO0lBQ2xDcEwsU0FBUztJQUNUOEUsUUFBUSxTQUFTQSxPQUFPOUUsT0FBTztRQUM3QkEsUUFBUTRFLFNBQVMsR0FBR2dHLFNBQ2xCO1FBRUYsMEZBQTBGO1FBQzFGLE9BQ0U1SyxRQUFRa0gsYUFBYSxDQUFDLG9CQUN0QmxILFFBQVFxTCxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO0lBRXBEO0lBQ0F0RyxVQUFVQTtBQUNaO0FBRUEsa0ZBQWtGO0FBQ2xGLGdGQUFnRjtBQUNoRiwyQ0FBMkM7QUFDM0MsMkRBQTJEO0FBRTNELElBQUl1RyxXQUFXQyxRQUNiMUosU0FBU3NCLEVBQUUsQ0FBQ1QsS0FBSyxJQUNmLE9BQU84SSxlQUFlLGVBQ3RCQSxXQUFXVixTQUFTLENBQUNqRyxLQUFLO0FBRzlCLFNBQVM0RztJQUNQLE9BQU9IO0FBQ1Q7QUFFQSxJQUFJSSxXQUFXO0lBQ2IxTCxTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPO1FBQzdCQSxRQUFRNEUsU0FBUyxHQUFHZ0csU0FBUztRQUM3QixPQUFPNUssUUFBUTJMLFVBQVU7SUFDM0I7SUFDQTVHLFVBQVVBO0FBQ1o7QUFFQSwwRUFBMEU7QUFDMUUsNEVBQTRFO0FBQzVFLElBQUk2RyxrQ0FBa0M7SUFDcEM1TCxTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPO1FBQzdCQSxRQUFRbUUsWUFBWSxDQUFDLFlBQVk7SUFDbkM7QUFDRjtBQUVBLElBQUkwSCxhQUFhO0lBQ2Y3TCxTQUFTO0lBQ1Q4RSxRQUFRLFNBQVNBLE9BQU85RSxPQUFPLEVBQUV5RSxPQUFPLEVBQUUxRCxTQUFTO1FBQ2pELDZEQUE2RDtRQUM3RCw2Q0FBNkM7UUFDN0MsZ0RBQWdEO1FBQ2hELElBQUkrSyxXQUFXL0ssVUFBVWdMLHNCQUFzQjtRQUMvQ0QsU0FBU2xILFNBQVMsR0FBRztRQUNyQjVFLFFBQVFvRSxXQUFXLENBQUMwSDtJQUN0QjtBQUNGO0FBRUEsSUFBSUUsNEJBQTRCO0lBQzlCaE0sU0FBUztJQUNUOEUsUUFBUSxTQUFTQSxPQUFPOUUsT0FBTztRQUM3QixJQUFJO1lBQ0Ysc0ZBQXNGO1lBQ3RGQSxRQUFRbUUsWUFBWSxDQUFDLE9BQU9rRDtRQUM5QixFQUFFLE9BQU92QixHQUFHO1FBQ1YseUNBQXlDO1FBQzNDO0lBQ0Y7QUFDRjtBQUVBLHlEQUF5RDtBQUN6RCxJQUFJbUcsV0FBV3BLLFNBQVNzQixFQUFFLENBQUNULEtBQUssSUFBSWIsU0FBU3NCLEVBQUUsQ0FBQ1IsT0FBTyxJQUFJZCxTQUFTc0IsRUFBRSxDQUFDUCxJQUFJO0FBRTNFLFNBQVNzSjtJQUNQLE9BQU9EO0FBQ1Q7QUFFQSxJQUFJRSxnQkFBZ0I7SUFDbEJuRixpQ0FBaUNBO0lBQ2pDMEIsNEJBQTRCQTtJQUM1QlMsZ0JBQWdCQTtJQUNoQnNDLGtCQUFrQkE7SUFDbEJTLDhCQUE4QkE7QUFDaEM7QUFFQSxJQUFJRSxtQkFBbUI7SUFDckI5RSxzQkFBc0JBO0lBQ3RCQyxtQkFBbUJBO0lBQ25CRSxzQkFBc0JBO0lBQ3RCQywyQkFBMkJBO0lBQzNCRSxxQkFBcUJBO0lBQ3JCQyxpQ0FBaUNBO0lBQ2pDQyx1QkFBdUJBO0lBQ3ZCQyxlQUFlQTtJQUNmQyx1QkFBdUJBO0lBQ3ZCQyxtQkFBbUJBO0lBQ25CQyxlQUFlQTtJQUNmRSx3QkFBd0JBO0lBQ3hCQyxxQkFBcUJBO0lBQ3JCTSxzQkFBc0JBO0lBQ3RCQyxvQkFBb0JBO0lBQ3BCSyxnQkFBZ0JBO0lBQ2hCRCxzQkFBc0JBO0lBQ3RCSSx3QkFBd0JBO0lBQ3hCRSxxQkFBcUJBO0lBQ3JCRyxpQkFBaUJBO0lBQ2pCQyxxQ0FBcUNBO0lBQ3JDQyxzQkFBc0JBO0lBQ3RCQyxjQUFjQTtJQUNkbUIsNEJBQTRCQTtJQUM1QkMsMkJBQTJCQTtJQUMzQkMsbUNBQW1DQTtJQUNuQ0MscUJBQXFCQTtJQUNyQkUsK0JBQStCQTtJQUMvQk0sVUFBVUE7SUFDVkUsaUNBQWlDQTtJQUNqQ0MsWUFBWUE7SUFDWkcsMkJBQTJCQTtBQUM3QjtBQUVBLFNBQVNLO0lBQ1AsSUFBSWhILFVBQVVGLFlBQVlpSDtJQUMxQjlHLE9BQU9DLElBQUksQ0FBQzRHLGVBQWV2RixPQUFPLENBQUMsU0FBVW5CLEdBQUc7UUFDOUNKLE9BQU8sQ0FBQ0ksSUFBSSxHQUFHMEcsYUFBYSxDQUFDMUcsSUFBSTtJQUNuQztJQUVBLE9BQU9KO0FBQ1Q7QUFFQSxJQUFJaUgsZ0JBQWdCO0FBRXBCLFNBQVNDO0lBQ1AsSUFBSUQsZUFBZTtRQUNqQixPQUFPQTtJQUNUO0lBRUFBLGdCQUFnQjlGLFFBQVFDLEdBQUc7SUFDM0IsSUFBSSxDQUFDNkYsY0FBY3pGLElBQUksRUFBRTtRQUN2QkwsUUFBUUUsR0FBRyxDQUFDMkY7UUFDWkMsZ0JBQWdCOUYsUUFBUUMsR0FBRztJQUM3QjtJQUVBLE9BQU82RjtBQUNUO0FBRUEsSUFBSUUsV0FBVyxLQUFLO0FBRXBCLDZFQUE2RTtBQUM3RSw0REFBNEQ7QUFDNUQsSUFBSUMsZ0NBQWdDO0FBQ3BDLElBQUlDLGtDQUFrQztBQUV0QyxTQUFTQyxnQkFBZ0JoTixPQUFPO0lBQzlCLElBQUksQ0FBQzZNLFVBQVU7UUFDYkEsV0FBV0Q7SUFDYjtJQUVBLElBQUlLLHNCQUFzQkosU0FBU1osK0JBQStCLEdBQzlEYyxrQ0FDQUQ7SUFFSixJQUFJek0sVUFBVVAsaUJBQWlCO1FBQzdCSSxPQUFPO1FBQ1BDLGlCQUFpQjtRQUNqQkgsU0FBU0E7SUFDWDtJQUVBLHdEQUF3RDtJQUN4RCxvRkFBb0Y7SUFDcEYsSUFBSWtOLGNBQWM3TSxRQUFROE0sWUFBWSxDQUFDO0lBQ3ZDLElBQUlDLGNBQWMvTSxRQUFROE0sWUFBWSxDQUFDO0lBRXZDLElBQUksQ0FBQ0QsZUFBZSxDQUFDRSxhQUFhO1FBQ2hDLE9BQU87SUFDVDtJQUVBLDZFQUE2RTtJQUM3RSxJQUFJeEMsZUFDRnZLLFFBQVF3SyxlQUFlLElBQUl4SyxRQUFReUssUUFBUSxDQUFDQyxXQUFXLE9BQU87SUFDaEUsSUFBSUgsZ0JBQWdCLENBQUNpQyxTQUFTeEIseUJBQXlCLEVBQUU7UUFDdkQsT0FBTztJQUNUO0lBRUEsNEVBQTRFO0lBQzVFLElBQUl3QixTQUFTN0Qsb0JBQW9CLEVBQUU7UUFDakMsT0FBTztJQUNUO0lBRUEsd0VBQXdFO0lBQ3hFLElBQUlxRSxXQUFXaE4sUUFBUWlOLFlBQVksQ0FBQ0osY0FBYyxhQUFhO0lBQy9ELGdEQUFnRDtJQUNoRCxtRkFBbUY7SUFDbkYsSUFBSUcsYUFBYSxVQUFVO1FBQ3pCLE9BQU87SUFDVDtJQUVBLE9BQU96QixRQUFReUIsWUFBWUosb0JBQW9CbEksSUFBSSxDQUFDc0k7QUFDdEQ7QUFFQSxTQUFTRSxjQUFjbE4sT0FBTztJQUM1QixJQUFJLENBQUMyTSxnQkFBZ0IzTSxVQUFVO1FBQzdCLE9BQU87SUFDVDtJQUVBLHdEQUF3RDtJQUN4RCxvRkFBb0Y7SUFDcEYsSUFBSTZNLGNBQWM3TSxRQUFROE0sWUFBWSxDQUFDO0lBQ3ZDLElBQUlLLGdCQUFnQk4sY0FBYyxhQUFhO0lBRS9DLDRFQUE0RTtJQUM1RSxJQUFJRyxXQUFXSSxTQUFTcE4sUUFBUWlOLFlBQVksQ0FBQ0UsZ0JBQWdCO0lBQzdELE9BQU9FLE1BQU1MLFlBQVksQ0FBQyxJQUFJQTtBQUNoQztBQUVBLHNFQUFzRTtBQUN0RSw4REFBOEQ7QUFDOUQsdURBQXVEO0FBRXZELFNBQVNNLHFCQUFxQi9FLEtBQUs7SUFDakMsa0VBQWtFO0lBQ2xFLGlEQUFpRDtJQUNqRCxJQUFJZ0YsYUFBYWhGLE1BQU1pRixnQkFBZ0IsSUFBSTtJQUMzQyxPQUFPakMsUUFBUWdDLGNBQWNBLFdBQVdFLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFDaEU7QUFFQSxTQUFTQyxxQkFBcUJuRixLQUFLO0lBQ2pDLE9BQU87UUFDTEEsTUFBTW9GLGdCQUFnQixDQUFDO1FBQ3ZCcEYsTUFBTW9GLGdCQUFnQixDQUFDO1FBQ3ZCcEYsTUFBTW9GLGdCQUFnQixDQUFDO0tBQ3hCLENBQUNsTSxJQUFJLENBQUMsU0FBVW1NLFFBQVE7UUFDdkIsT0FBT0EsYUFBYSxVQUFVQSxhQUFhO0lBQzdDO0FBQ0Y7QUFFQSxTQUFTQyxrQkFBa0J0RixLQUFLO0lBQzlCLE9BQU9BLE1BQU11RixPQUFPLENBQUNMLE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFDMUM7QUFFQSxTQUFTTSxzQkFBc0IvTixPQUFPLEVBQUV5SyxRQUFRLEVBQUV1RCxjQUFjLEVBQUVDLFdBQVc7SUFDM0UsSUFBSXhELGFBQWEsU0FBU0EsYUFBYSxRQUFRO1FBQzdDLDJFQUEyRTtRQUMzRSx3RUFBd0U7UUFDeEUscUNBQXFDO1FBQ3JDLE9BQU87SUFDVDtJQUVBLElBQ0V1RCxrQkFDQUEsbUJBQW1CLFNBQ25CQSxtQkFBbUIsVUFDbkIsQ0FBQ04scUJBQXFCTyxjQUN0QjtRQUNBLE9BQU87SUFDVDtJQUVBLE9BQ0VqTyxRQUFROEksWUFBWSxHQUFHOUksUUFBUWtPLFlBQVksSUFDM0NsTyxRQUFRbU8sV0FBVyxHQUFHbk8sUUFBUW9PLFdBQVc7QUFFN0M7QUFFQSxJQUFJQyxhQUFhLEtBQUs7QUFFdEIsU0FBU0M7SUFDUCxJQUFJNU8sT0FDQWEsVUFBVW5CLE1BQU0sR0FBRyxLQUFLbUIsU0FBUyxDQUFDLEVBQUUsS0FBS3RCLFlBQVlzQixTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsR0FDdkVaLFVBQVVELEtBQUtDLE9BQU8sRUFDdEI0TyxjQUFjN08sS0FBSzhPLE1BQU0sRUFDekJBLFNBQ0VELGdCQUFnQnRQLFlBQ1o7UUFDRXdQLFNBQVM7UUFDVEMsWUFBWTtRQUNaQyxRQUFRO0lBQ1YsSUFDQUo7SUFFUixJQUFJLENBQUNGLFlBQVk7UUFDZkEsYUFBYTlCO0lBQ2Y7SUFFQSxJQUFJdk0sVUFBVVAsaUJBQWlCO1FBQzdCSSxPQUFPO1FBQ1BDLGlCQUFpQjtRQUNqQkgsU0FBU0E7SUFDWDtJQUVBLElBQUksQ0FBQzZPLE9BQU9HLE1BQU0sSUFBSTNPLFFBQVFrQixVQUFVLEVBQUU7UUFDeEMsc0VBQXNFO1FBQ3RFLE9BQU87SUFDVDtJQUVBLElBQUl1SixXQUFXekssUUFBUXlLLFFBQVEsQ0FBQ0MsV0FBVztJQUUzQyxJQUFJRCxhQUFhLFdBQVd6SyxRQUFRcUssSUFBSSxLQUFLLFVBQVU7UUFDckQsa0RBQWtEO1FBQ2xELE9BQU87SUFDVDtJQUVBLElBQ0VJLGFBQWEsV0FDYkEsYUFBYSxZQUNiQSxhQUFhLFlBQ2JBLGFBQWEsWUFDYjtRQUNBLE9BQU87SUFDVDtJQUVBLElBQUlBLGFBQWEsWUFBWTRELFdBQVcvRSxtQkFBbUIsRUFBRTtRQUMzRCxxQ0FBcUM7UUFDckMsT0FBTztJQUNUO0lBRUEsSUFBSW1CLGFBQWEsU0FBUztRQUN4QixxQ0FBcUM7UUFDckMsT0FBTztJQUNUO0lBRUEsSUFBSUEsYUFBYSxRQUFRO1FBQ3ZCLHFDQUFxQztRQUNyQyxPQUFPO0lBQ1Q7SUFFQSxJQUFJQSxhQUFhLE9BQU96SyxRQUFROE0sWUFBWSxDQUFDLFNBQVM7UUFDcEQsT0FBTztJQUNUO0lBRUEsSUFBSXJDLGFBQWEsWUFBWXpLLFFBQVE4TSxZQUFZLENBQUMsV0FBVztRQUMzRCxpREFBaUQ7UUFDakQsT0FBTztJQUNUO0lBRUEsSUFBSXJDLGFBQWEsVUFBVTtRQUN6QixJQUFJbUUsVUFBVTVPLFFBQVFpTixZQUFZLENBQUM7UUFDbkMsSUFBSSxDQUFDb0IsV0FBV3BGLGNBQWMsSUFBSTJGLFlBQVksaUJBQWlCO1lBQzdELHFFQUFxRTtZQUNyRSxPQUFPO1FBQ1QsT0FBTyxJQUNMLENBQUNQLFdBQVdsRixjQUFjLElBQzFCeUYsWUFBWSxpQ0FDWjtZQUNBLHVGQUF1RjtZQUN2RixPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUluRSxhQUFhLFlBQVlBLGFBQWEsVUFBVTtRQUNsRCw4QkFBOEI7UUFDOUIsT0FBTztJQUNUO0lBRUEsSUFBSUEsYUFBYSxXQUFXQSxhQUFhLFVBQVU7UUFDakQsdURBQXVEO1FBQ3ZELHFEQUFxRDtRQUNyRCxPQUFPO0lBQ1Q7SUFFQSxJQUFJekssUUFBUThNLFlBQVksQ0FBQyxvQkFBb0I7UUFDM0MsMENBQTBDO1FBQzFDLE9BQU87SUFDVDtJQUVBLElBQ0VyQyxhQUFhLFdBQ1o0RCxDQUFBQSxXQUFXM0cseUJBQXlCLElBQUkxSCxRQUFROE0sWUFBWSxDQUFDLFlBQVUsRUFDeEU7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxJQUNFckMsYUFBYSxXQUNaNEQsWUFBV3JDLHlCQUF5QixJQUFJaE0sUUFBUThNLFlBQVksQ0FBQyxZQUFVLEVBQ3hFO1FBQ0EsT0FBTztJQUNUO0lBRUEsSUFBSXVCLFdBQVd6RSxZQUFZLElBQUlhLGFBQWEsV0FBVztRQUNyRCxPQUFPO0lBQ1Q7SUFFQSxJQUFJb0UsZ0JBQWdCbEMsZ0JBQWdCM007SUFFcEMsSUFBSXlLLGFBQWEsU0FBU3pLLFFBQVE4TSxZQUFZLENBQUMsV0FBVztRQUN4RCw4RkFBOEY7UUFDOUYsZ0ZBQWdGO1FBQ2hGLE9BQ0crQixpQkFBaUJSLFdBQVdqRyxzQkFBc0IsSUFDbkRpRyxXQUFXakYsc0JBQXNCO0lBRXJDO0lBRUEsSUFBSWlGLFdBQVd4QyxVQUFVLElBQUtwQixDQUFBQSxhQUFhLFdBQVdBLGFBQWEsS0FBRyxFQUFJO1FBQ3hFLDhDQUE4QztRQUM5QyxPQUFPO0lBQ1Q7SUFFQSxJQUFJNEQsV0FBV3RHLGFBQWEsSUFBSTBDLGFBQWEsWUFBWTtRQUN2RCx3Q0FBd0M7UUFDeEMsT0FBTztJQUNUO0lBRUEsSUFBSUYsZUFBZUUsYUFBYTtJQUNoQyxJQUFJcUUsZUFBZTlPLFFBQVF3SyxlQUFlO0lBQzFDLElBQUl1RSxxQkFBcUIvTyxRQUFRaU4sWUFBWSxDQUFDO0lBQzlDLElBQUlELFdBQVdFLGNBQWNsTjtJQUU3QixJQUNFeUssYUFBYSxTQUNidUMsYUFBYSxRQUNiLENBQUNxQixXQUFXbkQsbUJBQW1CLEVBQy9CO1FBQ0EsOEZBQThGO1FBQzlGLE9BQU87SUFDVDtJQUVBLElBQUlULGFBQWEsaUJBQWlCO1FBQ2hDLHVEQUF1RDtRQUN2RCxPQUFPdUMsYUFBYSxRQUFRcUIsV0FBV2pELDZCQUE2QjtJQUN0RTtJQUVBLElBQUl6SixlQUFlM0IsU0FBUyxZQUFZQSxRQUFROE0sWUFBWSxDQUFDLGVBQWU7UUFDMUUsT0FBTztJQUNUO0lBRUEsSUFDR3ZDLENBQUFBLGdCQUFnQnVFLFlBQUFBLENBQVcsSUFDNUI5TyxRQUFRNkUsS0FBSyxJQUNiLENBQUN3SixXQUFXcEQsaUNBQWlDLElBQzdDK0IsV0FBVyxHQUNYO1FBQ0EsaUVBQWlFO1FBQ2pFLHlEQUF5RDtRQUN6RCwyREFBMkQ7UUFDM0QsT0FBTztJQUNUO0lBRUEsSUFBSXpDLGNBQWM7UUFDaEIsT0FDRXNFLGlCQUNBUixXQUFXM0MsUUFBUSxJQUNuQjJDLFdBQVc1QyxnQkFBZ0IsSUFDM0IsbUZBQW1GO1FBQ25GRixRQUNFOEMsV0FBV3RELDBCQUEwQixJQUNuQ2dFLHNCQUNBQSx1QkFBdUI7SUFHL0I7SUFFQSxJQUFJRCxjQUFjO1FBQ2hCLElBQUlULFdBQVdyRCx5QkFBeUIsSUFBSTZELGVBQWU7WUFDekQsT0FBTztRQUNUO1FBRUEsSUFBSVIsV0FBV3RELDBCQUEwQixFQUFFO1lBQ3pDLG1GQUFtRjtZQUNuRixPQUFPZ0UsdUJBQXVCO1FBQ2hDO0lBQ0Y7SUFFQSxrR0FBa0c7SUFDbEcsSUFBSUYsZUFBZTtRQUNqQixPQUFPO0lBQ1Q7SUFFQSxJQUFJdEcsUUFBUTdFLE9BQU9zTCxnQkFBZ0IsQ0FBQ2hQLFNBQVM7SUFDN0MsSUFBSXNOLHFCQUFxQi9FLFFBQVE7UUFDL0IsT0FBTztJQUNUO0lBRUEsSUFDRThGLFdBQVduRyxhQUFhLElBQ3hCdUMsYUFBYSxTQUNiekssUUFBUThNLFlBQVksQ0FBQyxVQUNyQjtRQUNBLCtEQUErRDtRQUMvRCxpREFBaUQ7UUFDakQsSUFBSW1DLGdCQUFnQjlOLFdBQVc7WUFBRXhCLFNBQVNLO1FBQVEsR0FBR3lCLElBQUksQ0FDdkQsU0FBVXlOLE1BQU07WUFDZCxPQUNFQSxPQUFPekUsUUFBUSxDQUFDQyxXQUFXLE9BQU8sT0FBT3dFLE9BQU9wQyxZQUFZLENBQUM7UUFFakU7UUFHRixJQUFJbUMsZUFBZTtZQUNqQixPQUFPO1FBQ1Q7SUFDRjtJQUVBLGlEQUFpRDtJQUNqRCxJQUFJLENBQUNULE9BQU9FLFVBQVUsSUFBSUwsV0FBVzFFLG9CQUFvQixFQUFFO1FBQ3pELElBQUkwRSxXQUFXM0UsbUNBQW1DLEVBQUU7WUFDbEQscUVBQXFFO1lBQ3JFLHNFQUFzRTtZQUN0RSwwQ0FBMEM7WUFDMUMsSUFBSXFFLHNCQUFzQi9OLFNBQVN5SyxXQUFXO2dCQUM1QyxPQUFPO1lBQ1Q7UUFDRixPQUFPLElBQUlpRCxxQkFBcUJuRixRQUFRO1lBQ3RDLG9FQUFvRTtZQUNwRSxzREFBc0Q7WUFDdEQsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUNFLENBQUNpRyxPQUFPQyxPQUFPLElBQ2ZKLFdBQVdyRyxxQkFBcUIsSUFDaEM2RixrQkFBa0J0RixRQUNsQjtRQUNBLHNEQUFzRDtRQUN0RCxPQUFPO0lBQ1Q7SUFFQSxJQUFJMkcsU0FBU2xQLFFBQVFtUCxhQUFhO0lBQ2xDLElBQUksQ0FBQ1gsT0FBT0UsVUFBVSxJQUFJUSxRQUFRO1FBQ2hDLElBQUlsQixpQkFBaUJrQixPQUFPekUsUUFBUSxDQUFDQyxXQUFXO1FBQ2hELElBQUl1RCxjQUFjdkssT0FBT3NMLGdCQUFnQixDQUFDRSxRQUFRO1FBQ2xELElBQ0ViLFdBQVc1RSxlQUFlLElBQzFCc0Usc0JBQXNCbUIsUUFBUXpFLFVBQVV1RCxnQkFBZ0JDLGNBQ3hEO1lBQ0Esb0RBQW9EO1lBQ3BELGlEQUFpRDtZQUNqRCxPQUFPO1FBQ1Q7UUFFQSw0RUFBNEU7UUFDNUUsSUFBSUksV0FBV3hHLCtCQUErQixFQUFFO1lBQzlDLElBQUlnRyxrQkFBa0JJLGNBQWM7Z0JBQ2xDLE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxvREFBb0Q7SUFDcEQsOENBQThDO0lBQzlDLGlEQUFpRDtJQUVqRCxPQUFPO0FBQ1Q7QUFFQSwwQ0FBMEM7QUFDMUNLLHFCQUFxQkUsTUFBTSxHQUFHO0lBQzVCLElBQUlBLFNBQ0ZqTyxVQUFVbkIsTUFBTSxHQUFHLEtBQUttQixTQUFTLENBQUMsRUFBRSxLQUFLdEIsWUFBWXNCLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUV2RSxJQUFJNk8sa0JBQWtCLFNBQVNBLGdCQUFnQnpQLE9BQU87UUFDcEQsT0FBTzJPLHFCQUFxQjtZQUMxQjNPLFNBQVNBO1lBQ1Q2TyxRQUFRQTtRQUNWO0lBQ0Y7SUFFQVksZ0JBQWdCQyxLQUFLLEdBQUdmO0lBQ3hCLE9BQU9jO0FBQ1Q7QUFFQSxnRUFBZ0U7QUFDaEUsSUFBSUEsa0JBQWtCZCxxQkFBcUJFLE1BQU0sQ0FBQyxDQUFDO0FBRW5ELFNBQVNjLFVBQVVDLEtBQUssRUFBRUMsUUFBUTtJQUNoQyw0REFBNEQ7SUFDNUQsSUFBSUQsTUFBTUQsU0FBUyxFQUFFO1FBQ25CLE9BQU9DLE1BQU1ELFNBQVMsQ0FBQ0U7SUFDekI7SUFFQSxJQUFJcFEsU0FBU21RLE1BQU1uUSxNQUFNO0lBRXpCLGlDQUFpQztJQUNqQyxJQUFJQSxXQUFXLEdBQUc7UUFDaEIsT0FBTyxDQUFDO0lBQ1Y7SUFFQSw0QkFBNEI7SUFDNUIsSUFBSyxJQUFJcVEsSUFBSSxHQUFHQSxJQUFJclEsUUFBUXFRLElBQUs7UUFDL0IsSUFBSUQsU0FBU0QsS0FBSyxDQUFDRSxFQUFFLEVBQUVBLEdBQUdGLFFBQVE7WUFDaEMsT0FBT0U7UUFDVDtJQUNGO0lBRUEsT0FBTyxDQUFDO0FBQ1Y7QUFFQSxTQUFTQyxtQkFBbUI5TyxJQUFJO0lBQzlCLElBQUk7UUFDRixpQ0FBaUM7UUFDakMsT0FDRUEsS0FBSytPLGVBQWUsSUFDcEIsaUNBQWlDO1FBQ2hDL08sS0FBSzBELGFBQWEsSUFBSTFELEtBQUswRCxhQUFhLENBQUNwRixRQUFRLElBQ2xELGtEQUFrRDtRQUNqRDBCLEtBQUtnUCxjQUFjLElBQUloUCxLQUFLZ1AsY0FBYyxNQUMzQztJQUVKLEVBQUUsT0FBTzlKLEdBQUc7UUFDVix3RkFBd0Y7UUFDeEYsaUZBQWlGO1FBQ2pGLE9BQU87SUFDVDtBQUNGO0FBRUEsU0FBUytKLFVBQVVqUCxJQUFJO0lBQ3JCLElBQUlHLFlBQVlKLFlBQVlDO0lBQzVCLE9BQU9HLFVBQVUrTyxXQUFXLElBQUlwTTtBQUNsQztBQUVBLElBQUlxTSxlQUFlLEtBQUs7QUFFeEIsU0FBU0MsZ0JBQWdCcE8sUUFBUTtJQUMvQixJQUFJLE9BQU9tTyxpQkFBaUIsVUFBVTtRQUNwQyxJQUFJRSxXQUFXako7UUFDZixJQUFJaUosVUFBVTtZQUNaRixlQUFlLFlBQVlFLFdBQVc7UUFDeEM7SUFDRjtJQUVBLElBQUksQ0FBQ0YsY0FBYztRQUNqQixPQUFPbk87SUFDVDtJQUVBLE9BQ0VBLFdBQ0FtTyxlQUNBbk8sU0FDR3NPLE9BQU8sQ0FBQyxZQUFZLEtBQ3BCQyxLQUFLLENBQUMsS0FDTmhGLElBQUksQ0FBQzRFO0FBRVo7QUFFQSxJQUFJbk8sV0FBVyxLQUFLO0FBRXBCLFNBQVN3Tyx3QkFBd0IvTCxPQUFPO0lBQ3RDLElBQUksQ0FBQ3pDLFVBQVU7UUFDYkEsV0FBV29PLGdCQUFnQjtJQUM3QjtJQUVBLElBQUkzTCxRQUFRZ00sYUFBYSxLQUFLcFIsV0FBVztRQUN2QyxPQUFPb0YsUUFBUWdNLGFBQWE7SUFDOUI7SUFFQWhNLFFBQVFnTSxhQUFhLEdBQUc7SUFFeEIsSUFBSUMsaUJBQWlCak0sUUFBUTZLLE1BQU0sQ0FBQ2hRLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUN5QztJQUM3RCxFQUFFLENBQUNILElBQUksQ0FBQ25DLElBQUksQ0FBQ2dSLGdCQUFnQixTQUFVdFEsT0FBTztRQUM3QyxJQUFJZSxZQUFZMk8sbUJBQW1CMVA7UUFDbkMsSUFBSWUsY0FBY3NELFFBQVFuRixRQUFRLEVBQUU7WUFDbEMsT0FBTztRQUNUO1FBRUFtRixRQUFRZ00sYUFBYSxHQUFHclE7UUFDeEIsT0FBTztJQUNUO0lBRUEsT0FBT3FFLFFBQVFnTSxhQUFhO0FBQzlCO0FBRUEsU0FBU0UsZ0JBQWdCdlEsT0FBTztJQUM5QixJQUFJcUUsVUFBVXdMLFVBQVU3UDtJQUN4QixJQUFJLENBQUNxRSxRQUFRNkssTUFBTSxJQUFJN0ssUUFBUTZLLE1BQU0sS0FBSzdLLFNBQVM7UUFDakQsMENBQTBDO1FBQzFDLG1EQUFtRDtRQUNuRCxPQUFPO0lBQ1Q7SUFFQSxJQUFJO1FBQ0YscUVBQXFFO1FBQ3JFLDBFQUEwRTtRQUMxRSxPQUFPQSxRQUFRbU0sWUFBWSxJQUFJSix3QkFBd0IvTDtJQUN6RCxFQUFFLE9BQU95QixHQUFHO1FBQ1YsT0FBTztJQUNUO0FBQ0Y7QUFFQSw0REFBNEQ7QUFDNUQseUZBQXlGO0FBQ3pGLElBQUkySyw2QkFBNkI7QUFFakMsU0FBU0MsY0FBYzFRLE9BQU8sRUFBRTJRLFFBQVE7SUFDdEMsT0FBT2pOLE9BQU9zTCxnQkFBZ0IsQ0FBQ2hQLFNBQVMsTUFBTTJOLGdCQUFnQixDQUFDZ0Q7QUFDakU7QUFFQSxTQUFTQyxhQUFhQyxLQUFLO0lBQ3pCLE9BQU9BLE1BQU1wUCxJQUFJLENBQUMsU0FBVXpCLE9BQU87UUFDakMseURBQXlEO1FBQ3pELE9BQU8wUSxjQUFjMVEsU0FBUyxlQUFlO0lBQy9DO0FBQ0Y7QUFFQSxTQUFTOFEsV0FBV0QsS0FBSztJQUN2Qix1RUFBdUU7SUFDdkUseUdBQXlHO0lBQ3pHLGdFQUFnRTtJQUNoRSxJQUFJRSxTQUFTekIsVUFBVXVCLE9BQU8sU0FBVTdRLE9BQU87UUFDN0MsSUFBSXdJLGFBQWFrSSxjQUFjMVEsU0FBUztRQUN4QyxPQUFPd0ksZUFBZSxZQUFZQSxlQUFlO0lBQ25EO0lBRUEsSUFBSXVJLFdBQVcsQ0FBQyxHQUFHO1FBQ2pCLDZCQUE2QjtRQUM3QixPQUFPO0lBQ1Q7SUFFQSxJQUFJQyxVQUFVMUIsVUFBVXVCLE9BQU8sU0FBVTdRLE9BQU87UUFDOUMsT0FBTzBRLGNBQWMxUSxTQUFTLGtCQUFrQjtJQUNsRDtJQUVBLElBQUlnUixZQUFZLENBQUMsR0FBRztRQUNsQixxREFBcUQ7UUFDckQsT0FBTztJQUNUO0lBRUEsSUFBSUQsU0FBU0MsU0FBUztRQUNwQiwyRUFBMkU7UUFDM0UsT0FBTztJQUNUO0lBRUEsb0VBQW9FO0lBQ3BFLE9BQU87QUFDVDtBQUVBLFNBQVNDLGdCQUFnQkosS0FBSztJQUM1QixJQUFJSyxTQUFTO0lBQ2IsSUFBSUwsS0FBSyxDQUFDLEVBQUUsQ0FBQ3BHLFFBQVEsQ0FBQ0MsV0FBVyxPQUFPLFdBQVc7UUFDakR3RyxTQUFTO0lBQ1g7SUFFQSxPQUFPTCxNQUFNeFIsS0FBSyxDQUFDNlIsUUFBUXpQLElBQUksQ0FBQyxTQUFVekIsT0FBTztRQUMvQyxpRUFBaUU7UUFDakUsT0FDRUEsUUFBUXlLLFFBQVEsQ0FBQ0MsV0FBVyxPQUFPLGFBQWExSyxRQUFRdUUsSUFBSSxLQUFLO0lBRXJFO0FBQ0Y7QUFFQSxTQUFTNE07SUFDUCxJQUFJelIsT0FDQWEsVUFBVW5CLE1BQU0sR0FBRyxLQUFLbUIsU0FBUyxDQUFDLEVBQUUsS0FBS3RCLFlBQVlzQixTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsR0FDdkVaLFVBQVVELEtBQUtDLE9BQU8sRUFDdEI0TyxjQUFjN08sS0FBSzhPLE1BQU0sRUFDekJBLFNBQ0VELGdCQUFnQnRQLFlBQ1o7UUFDRW1TLGFBQWE7UUFDYkMsWUFBWTtRQUNaQyxlQUFlO1FBQ2ZDLGdCQUFnQjtRQUNoQkMsaUJBQWlCO0lBQ25CLElBQ0FqRDtJQUVSLElBQUl2TyxVQUFVUCxpQkFBaUI7UUFDN0JJLE9BQU87UUFDUEMsaUJBQWlCO1FBQ2pCSCxTQUFTQTtJQUNYO0lBRUEsSUFBSThLLFdBQVd6SyxRQUFReUssUUFBUSxDQUFDQyxXQUFXO0lBQzNDLElBQUksQ0FBQzhELE9BQU80QyxXQUFXLElBQUlYLDJCQUEyQi9MLElBQUksQ0FBQytGLFdBQVc7UUFDcEUsT0FBTztJQUNUO0lBRUEsSUFBSW9HLFFBQVExUCxXQUFXO1FBQUV4QixTQUFTSztJQUFRO0lBRTFDLDhGQUE4RjtJQUM5Rix5RkFBeUY7SUFDekYsd0dBQXdHO0lBQ3hHLElBQUl5Uix5QkFDRmhILGFBQWEsV0FBVyxDQUFDekssUUFBUThNLFlBQVksQ0FBQztJQUNoRCxJQUNFLENBQUMwQixPQUFPNkMsVUFBVSxJQUNsQlQsYUFBYWEseUJBQXlCWixNQUFNeFIsS0FBSyxDQUFDLEtBQUt3UixRQUN2RDtRQUNBLE9BQU87SUFDVDtJQUVBLElBQUksQ0FBQ3JDLE9BQU84QyxhQUFhLElBQUlSLFdBQVdELFFBQVE7UUFDOUMsT0FBTztJQUNUO0lBRUEsSUFBSSxDQUFDckMsT0FBTytDLGNBQWMsSUFBSU4sZ0JBQWdCSixRQUFRO1FBQ3BELE9BQU87SUFDVDtJQUVBLElBQUksQ0FBQ3JDLE9BQU9nRCxlQUFlLEVBQUU7UUFDM0IseURBQXlEO1FBQ3pELDBEQUEwRDtRQUMxRCxJQUFJaEIsZUFBZUQsZ0JBQWdCdlE7UUFDbkMsSUFBSTBSLGFBQWFQLGVBQWUzQyxNQUFNLENBQUNBO1FBQ3ZDLElBQUlnQyxnQkFBZ0IsQ0FBQ2tCLFdBQVdsQixlQUFlO1lBQzdDLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBTztBQUNUO0FBRUEsMENBQTBDO0FBQzFDVyxlQUFlM0MsTUFBTSxHQUFHO0lBQ3RCLElBQUlBLFNBQ0ZqTyxVQUFVbkIsTUFBTSxHQUFHLEtBQUttQixTQUFTLENBQUMsRUFBRSxLQUFLdEIsWUFBWXNCLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUV2RSxJQUFJb1IsWUFBWSxTQUFTQSxVQUFVaFMsT0FBTztRQUN4QyxPQUFPd1IsZUFBZTtZQUNwQnhSLFNBQVNBO1lBQ1Q2TyxRQUFRQTtRQUNWO0lBQ0Y7SUFFQW1ELFVBQVV0QyxLQUFLLEdBQUc4QjtJQUNsQixPQUFPUTtBQUNUO0FBRUEsMERBQTBEO0FBQzFELElBQUlBLFlBQVlSLGVBQWUzQyxNQUFNLENBQUMsQ0FBQztBQUV2QyxTQUFTb0QsYUFBYXJRLElBQUksRUFBRVIsU0FBUztJQUNuQywyRUFBMkU7SUFDM0Usd0VBQXdFO0lBQ3hFLElBQUl5RSxNQUFNekUsVUFBVW1HLGFBQWEsQ0FBQyxlQUFlMkssQ0FBQUEsR0FBQUEsV0FBQUEsT0FBQUEsRUFBVXRRLFFBQVE7SUFDbkUsT0FBT2lFLE9BQU87QUFDaEI7QUFFQSxTQUFTc00sZUFBZTlSLE9BQU87SUFDN0IsSUFBSXdGLE1BQU14RixRQUFRbVAsYUFBYTtJQUUvQixJQUFJLENBQUMzSixJQUFJakUsSUFBSSxJQUFJaUUsSUFBSWlGLFFBQVEsQ0FBQ0MsV0FBVyxPQUFPLE9BQU87UUFDckQsT0FBTztJQUNUO0lBRUEsdUVBQXVFO0lBQ3ZFLDZDQUE2QztJQUU3Qyx1RUFBdUU7SUFDdkUsbUZBQW1GO0lBQ25GLHdFQUF3RTtJQUN4RSw4REFBOEQ7SUFDOUQsZ0VBQWdFO0lBQ2hFLElBQUkzSixZQUFZSixZQUFZWDtJQUM1QixPQUNFZSxVQUFVbUcsYUFBYSxDQUFDLGtCQUFrQjJLLENBQUFBLEdBQUFBLFdBQUFBLE9BQVMsRUFBQ3JNLElBQUlqRSxJQUFJLElBQUksU0FDaEU7QUFFSjtBQUVBLElBQUl3USxhQUFhLEtBQUs7QUFFdEIsMERBQTBEO0FBQzFELHNFQUFzRTtBQUN0RSxzRUFBc0U7QUFDdEUsU0FBU0MsWUFBWXJTLE9BQU87SUFDMUIsSUFBSSxDQUFDb1MsWUFBWTtRQUNmQSxhQUFheEY7SUFDZjtJQUVBLElBQUl2TSxVQUFVUCxpQkFBaUI7UUFDN0JJLE9BQU87UUFDUEYsU0FBU0E7SUFDWDtJQUVBLElBQUk4SyxXQUFXekssUUFBUXlLLFFBQVEsQ0FBQ0MsV0FBVztJQUMzQyxJQUFJRCxhQUFhLFFBQVE7UUFDdkIsT0FBTztJQUNUO0lBRUEsSUFBSW9DLGNBQWM3TSxRQUFROE0sWUFBWSxDQUFDO0lBQ3ZDLElBQUksQ0FBQ2lGLFdBQVd4SyxpQkFBaUIsSUFBSXNGLGFBQWE7UUFDaEQsK0VBQStFO1FBQy9FLE9BQU87SUFDVDtJQUVBLElBQUlvRixNQUFNSCxlQUFlOVI7SUFDekIsSUFBSSxDQUFDaVMsT0FBTyxDQUFDTixVQUFVTSxNQUFNO1FBQzNCLE9BQU87SUFDVDtJQUVBLGtFQUFrRTtJQUNsRSx5REFBeUQ7SUFDekQsSUFDRSxDQUFDRixXQUFXbkssbUJBQW1CLElBQzlCLEVBQUNxSyxJQUFJQyxRQUFRLElBQ1osQ0FBQ0QsSUFBSUUsYUFBYSxJQUNsQkYsSUFBSTlELFdBQVcsSUFBSSxLQUNuQjhELElBQUluSixZQUFZLEtBQUksR0FDdEI7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxxRkFBcUY7SUFDckYsSUFBSSxDQUFDaUosV0FBV3RLLG9CQUFvQixJQUFJLENBQUN6SCxRQUFRbUksSUFBSSxFQUFFO1FBQ3JELDRFQUE0RTtRQUM1RSxpRUFBaUU7UUFDakUsT0FDRzRKLFdBQVd4SyxpQkFBaUIsSUFBSXNGLGVBQ2hDa0YsV0FBV3pLLG9CQUFvQixJQUFJMkssSUFBSW5GLFlBQVksQ0FBQztJQUV6RDtJQUVBLHNFQUFzRTtJQUN0RSxJQUFJc0YscUJBQXFCalIsV0FBVztRQUFFeEIsU0FBU3NTO0lBQUksR0FDaEQ1UyxLQUFLLENBQUMsR0FDTm9DLElBQUksQ0FBQyxTQUFVNFEsUUFBUTtRQUN0QixJQUFJOVEsT0FBTzhRLFNBQVM1SCxRQUFRLENBQUNDLFdBQVc7UUFDeEMsT0FBT25KLFNBQVMsWUFBWUEsU0FBUztJQUN2QztJQUVGLElBQUk2USxvQkFBb0I7UUFDdEIsT0FBTztJQUNUO0lBRUEsT0FBTztBQUNUO0FBRUEsSUFBSUUsYUFBYSxLQUFLO0FBRXRCLDhFQUE4RTtBQUM5RSxJQUFJQywwQkFBMEIsS0FBSztBQUNuQyxJQUFJQyxtQkFBbUI7SUFDckIzVCxPQUFPO0lBQ1A0VCxRQUFRO0lBQ1JDLFVBQVU7SUFDVkMsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLE1BQU07QUFDUjtBQUVBLFNBQVNDLDBCQUEwQm5ULE9BQU87SUFDeEMsSUFBSSxDQUFDMlMsWUFBWTtRQUNmQSxhQUFhL0Y7UUFFYixJQUFJK0YsV0FBV3hLLHFCQUFxQixFQUFFO1lBQ3BDLE9BQU8wSyxpQkFBaUJJLFFBQVE7UUFDbEM7UUFFQSxJQUFJTixXQUFXckssaUJBQWlCLEVBQUU7WUFDaEMsT0FBT3VLLGlCQUFpQkssSUFBSTtRQUM5QjtRQUVBTiwwQkFBMEIsSUFBSVEsT0FDNUIsT0FBT3pOLE9BQU9DLElBQUksQ0FBQ2lOLGtCQUFrQnJILElBQUksQ0FBQyxPQUFPO0lBRXJEO0lBRUEsSUFBSW5MLFVBQVVQLGlCQUFpQjtRQUM3QkksT0FBTztRQUNQRixTQUFTQTtJQUNYO0lBRUEsSUFBSThLLFdBQVd6SyxRQUFReUssUUFBUSxDQUFDQyxXQUFXO0lBQzNDLE9BQU9hLFFBQVFnSCx3QkFBd0I3TixJQUFJLENBQUMrRjtBQUM5QztBQUVBLElBQUl1SSxhQUFhLEtBQUs7QUFFdEIsU0FBU0MsbUJBQW1CalQsT0FBTztJQUNqQyxJQUFJeUssV0FBV3pLLFFBQVF5SyxRQUFRLENBQUNDLFdBQVc7SUFDM0MsT0FBT0QsYUFBYSxjQUFjekssUUFBUTJLLFFBQVE7QUFDcEQ7QUFFQSxTQUFTdUksZUFBZWxULE9BQU87SUFDN0IsSUFBSXlLLFdBQVd6SyxRQUFReUssUUFBUSxDQUFDQyxXQUFXO0lBQzNDLE9BQU9ELGFBQWEsVUFBVXpLLFFBQVEySyxRQUFRO0FBQ2hEO0FBRUEsU0FBU3dJLFdBQVd4VCxPQUFPO0lBQ3pCLElBQUksQ0FBQ3FULFlBQVk7UUFDZkEsYUFBYXpHO0lBQ2Y7SUFFQSxJQUFJdk0sVUFBVVAsaUJBQWlCO1FBQzdCSSxPQUFPO1FBQ1BGLFNBQVNBO0lBQ1g7SUFFQSxJQUFJSyxRQUFROE0sWUFBWSxDQUFDLHVCQUF1QjtRQUM5QyxxRUFBcUU7UUFDckUsT0FBTztJQUNUO0lBRUEsSUFBSSxDQUFDZ0csMEJBQTBCOVMsVUFBVTtRQUN2QywwREFBMEQ7UUFDMUQsT0FBTztJQUNUO0lBRUEsSUFBSUEsUUFBUTJLLFFBQVEsRUFBRTtRQUNwQixpQ0FBaUM7UUFDakMsT0FBTztJQUNUO0lBRUEsSUFBSXlJLFVBQVVqUyxXQUFXO1FBQUV4QixTQUFTSztJQUFRO0lBQzVDLElBQUlvVCxRQUFRM1IsSUFBSSxDQUFDd1IscUJBQXFCO1FBQ3BDLDRFQUE0RTtRQUM1RSxPQUFPO0lBQ1Q7SUFFQSxJQUFJLENBQUNELFdBQVcvSyxpQkFBaUIsSUFBSW1MLFFBQVEzUixJQUFJLENBQUN5UixpQkFBaUI7UUFDakUsd0VBQXdFO1FBQ3hFLE9BQU87SUFDVDtJQUVBLE9BQU87QUFDVDtBQUVBLFNBQVNHO0lBQ1AsSUFBSTNULE9BQ0FhLFVBQVVuQixNQUFNLEdBQUcsS0FBS21CLFNBQVMsQ0FBQyxFQUFFLEtBQUt0QixZQUFZc0IsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQ3ZFWixVQUFVRCxLQUFLQyxPQUFPLEVBQ3RCNE8sY0FBYzdPLEtBQUs4TyxNQUFNLEVBQ3pCQSxTQUNFRCxnQkFBZ0J0UCxZQUNaO1FBQ0VxVSw4QkFBOEI7UUFDOUJ0QyxTQUFTO0lBQ1gsSUFDQXpDO0lBRVIsSUFBSXZPLFVBQVVQLGlCQUFpQjtRQUM3QkksT0FBTztRQUNQQyxpQkFBaUI7UUFDakJILFNBQVNBO0lBQ1g7SUFFQSxJQUFJLENBQUM2TyxPQUFPd0MsT0FBTyxJQUFJLENBQUNXLFVBQVUzUixVQUFVO1FBQzFDLE9BQU87SUFDVDtJQUVBLElBQ0UsQ0FBQ3dPLE9BQU84RSw0QkFBNEIsSUFDbkN6UixDQUFBQSxTQUFTc0IsRUFBRSxDQUFDVCxLQUFLLElBQUliLFNBQVNzQixFQUFFLENBQUNSLE9BQU8sSUFBSWQsU0FBU3NCLEVBQUUsQ0FBQ1AsSUFBQUEsR0FDekQ7UUFDQSxJQUFJNE4sZUFBZUQsZ0JBQWdCdlE7UUFDbkMsSUFBSXdRLGNBQWM7WUFDaEIsSUFBSXRELGNBQWNzRCxnQkFBZ0IsR0FBRztnQkFDbkMsOERBQThEO2dCQUM5RCw2REFBNkQ7Z0JBQzdELE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxJQUFJL0YsV0FBV3pLLFFBQVF5SyxRQUFRLENBQUNDLFdBQVc7SUFDM0MsSUFBSXNDLFdBQVdFLGNBQWNsTjtJQUU3QixJQUFJeUssYUFBYSxXQUFXNUksU0FBU3NCLEVBQUUsQ0FBQ1QsS0FBSyxFQUFFO1FBQzdDLHNEQUFzRDtRQUN0RCxPQUFPc0ssYUFBYSxRQUFRQSxZQUFZO0lBQzFDO0lBRUEsbUZBQW1GO0lBQ25GLGtGQUFrRjtJQUNsRiwwREFBMEQ7SUFDMUQsSUFBSW5MLFNBQVNzQixFQUFFLENBQUNULEtBQUssSUFBSTFDLFFBQVF3SyxlQUFlLElBQUksQ0FBQ3hLLFFBQVE2RSxLQUFLLEVBQUU7UUFDbEUsSUFBSTRGLGFBQWEsT0FBT3pLLFFBQVE4TSxZQUFZLENBQUMsZUFBZTtZQUMxRCxnRUFBZ0U7WUFDaEUsSUFBSWpMLFNBQVNzQixFQUFFLENBQUNULEtBQUssRUFBRTtnQkFDckIsT0FBTztZQUNUO1FBQ0Y7SUFDRjtJQUVBLE9BQU87QUFDVDtBQUVBLDBDQUEwQztBQUMxQzJRLG9CQUFvQjdFLE1BQU0sR0FBRztJQUMzQixJQUFJQSxTQUNGak8sVUFBVW5CLE1BQU0sR0FBRyxLQUFLbUIsU0FBUyxDQUFDLEVBQUUsS0FBS3RCLFlBQVlzQixTQUFTLENBQUMsRUFBRSxHQUFHLENBQUM7SUFFdkUsSUFBSWdULGlCQUFpQixTQUFTQSxlQUFlNVQsT0FBTztRQUNsRCxPQUFPMFQsb0JBQW9CO1lBQ3pCMVQsU0FBU0E7WUFDVDZPLFFBQVFBO1FBQ1Y7SUFDRjtJQUVBK0UsZUFBZWxFLEtBQUssR0FBR2dFO0lBQ3ZCLE9BQU9FO0FBQ1Q7QUFFQSwrREFBK0Q7QUFDL0QsSUFBSUEsaUJBQWlCRixvQkFBb0I3RSxNQUFNLENBQUMsQ0FBQztBQUVqRCxJQUFJZ0YsYUFBYSxLQUFLO0FBRXRCLFNBQVNDLG9CQUFvQnpULE9BQU87SUFDbEMsSUFBSXlLLFdBQVd6SyxRQUFReUssUUFBUSxDQUFDQyxXQUFXO0lBQzNDLElBQUlELGFBQWEsV0FBV0EsYUFBYSxVQUFVO1FBQ2pELHVEQUF1RDtRQUN2RCxxREFBcUQ7UUFDckQsT0FBTztJQUNUO0lBRUEsSUFBSWlKLFlBQVl4RyxjQUFjbE47SUFDOUIsSUFBSUEsUUFBUWtCLFVBQVUsSUFBSXdTLGNBQWMsTUFBTTtRQUM1Qyw4Q0FBOEM7UUFDOUMsK0NBQStDO1FBQy9DLE9BQU87SUFDVDtJQUVBLElBQUlqSixhQUFhLFNBQVM7UUFDeEIseUVBQXlFO1FBQ3pFLCtFQUErRTtRQUMvRSw4RUFBOEU7UUFDOUUsa0RBQWtEO1FBQ2xELE9BQU8sQ0FBQytJLFdBQVc1SyxrQkFBa0IsSUFBSThLLGNBQWM7SUFDekQ7SUFFQSxJQUFJakosYUFBYSxVQUFVO1FBQ3pCLE9BQU9pSixjQUFjO0lBQ3ZCO0lBRUEsSUFDRUYsV0FBV3pJLDBCQUEwQixJQUNwQy9LLENBQUFBLFFBQVF3SyxlQUFlLElBQUlDLGFBQWEsTUFBSSxFQUM3QztRQUNBLG1GQUFtRjtRQUNuRixJQUFJc0UscUJBQXFCL08sUUFBUWlOLFlBQVksQ0FBQztRQUM5QyxPQUFPOEIsc0JBQXNCQSx1QkFBdUI7SUFDdEQ7SUFFQSxJQUFJdEUsYUFBYSxTQUFTekssUUFBUThNLFlBQVksQ0FBQyxXQUFXO1FBQ3hELDhGQUE4RjtRQUM5RixnRkFBZ0Y7UUFDaEYsT0FBTzRHLGNBQWMsUUFBUSxDQUFDRixXQUFXcEwsc0JBQXNCO0lBQ2pFO0lBRUEsSUFBSXFDLGFBQWEsUUFBUTtRQUN2Qix1Q0FBdUM7UUFDdkMsMkNBQTJDO1FBQzNDLE9BQU8sQ0FBQ3VILFlBQVloUztJQUN0QjtJQUVBLE9BQU87QUFDVDtBQUVBLFNBQVMyVDtJQUNQLElBQUlqVSxPQUNBYSxVQUFVbkIsTUFBTSxHQUFHLEtBQUttQixTQUFTLENBQUMsRUFBRSxLQUFLdEIsWUFBWXNCLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUN2RVosVUFBVUQsS0FBS0MsT0FBTyxFQUN0QjRPLGNBQWM3TyxLQUFLOE8sTUFBTSxFQUN6QkEsU0FDRUQsZ0JBQWdCdFAsWUFDWjtRQUNFMEwsVUFBVTtRQUNWcUcsU0FBUztRQUNUNEMsY0FBYztJQUNoQixJQUNBckY7SUFFUixJQUFJLENBQUNpRixZQUFZO1FBQ2ZBLGFBQWFqSDtJQUNmO0lBRUEsSUFBSXNILGtCQUFrQk4sZUFBZWxFLEtBQUssQ0FBQ2IsTUFBTSxDQUFDO1FBQ2hEOEUsOEJBQThCO1FBQzlCdEMsU0FBU3hDLE9BQU93QyxPQUFPO0lBQ3pCO0lBRUEsSUFBSWhSLFVBQVVQLGlCQUFpQjtRQUM3QkksT0FBTztRQUNQQyxpQkFBaUI7UUFDakJILFNBQVNBO0lBQ1g7SUFFQSxJQUFJbVUsZ0JBQWdCMUUsZ0JBQWdCQyxLQUFLLENBQUM7UUFDeEMxUCxTQUFTSztRQUNUd08sUUFBUUE7SUFDVjtJQUVBLElBQUksQ0FBQ3NGLGlCQUFpQkwsb0JBQW9CelQsVUFBVTtRQUNsRCxPQUFPO0lBQ1Q7SUFFQSxJQUFJLENBQUN3TyxPQUFPN0QsUUFBUSxJQUFJd0ksV0FBV25ULFVBQVU7UUFDM0MsT0FBTztJQUNUO0lBRUEsSUFBSSxDQUFDd08sT0FBT29GLFlBQVksSUFBSUMsZ0JBQWdCN1QsVUFBVTtRQUNwRCxvRUFBb0U7UUFDcEUsT0FBTztJQUNUO0lBRUEsb0RBQW9EO0lBQ3BELElBQUksQ0FBQ3dPLE9BQU93QyxPQUFPLEVBQUU7UUFDbkIsSUFBSStDLG9CQUFvQjtZQUN0QnBVLFNBQVNLO1lBQ1R3TyxRQUFRLENBQUM7UUFDWDtRQUVBLElBQUlnRixXQUFXbkwsbUJBQW1CLEVBQUU7WUFDbEMscUVBQXFFO1lBQ3JFMEwsa0JBQWtCdkYsTUFBTSxDQUFDZ0QsZUFBZSxHQUFHO1FBQzdDO1FBRUEsSUFBSWdDLFdBQVd4SyxvQkFBb0IsRUFBRTtZQUNuQywrRUFBK0U7WUFDL0Usa0ZBQWtGO1lBQ2xGLElBQUlnTCxhQUFhaFUsUUFBUXlLLFFBQVEsQ0FBQ0MsV0FBVztZQUM3QyxJQUFJc0osZUFBZSxVQUFVO2dCQUMzQkQsa0JBQWtCdkYsTUFBTSxDQUFDOEMsYUFBYSxHQUFHO1lBQzNDO1FBQ0Y7UUFFQSxJQUFJLENBQUNLLFVBQVV0QyxLQUFLLENBQUMwRSxvQkFBb0I7WUFDdkMsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJdkQsZUFBZUQsZ0JBQWdCdlE7SUFDbkMsSUFBSXdRLGNBQWM7UUFDaEIsSUFBSXlELFlBQVl6RCxhQUFhL0YsUUFBUSxDQUFDQyxXQUFXO1FBQ2pELElBQUl1SixjQUFjLFlBQVksQ0FBQ1QsV0FBVzlLLDBCQUEwQixFQUFFO1lBQ3BFLElBQUksQ0FBQzhILGFBQWFyQyxXQUFXLElBQUksQ0FBQ3FDLGFBQWExSCxZQUFZLEVBQUU7Z0JBQzNELHlFQUF5RTtnQkFDekUsT0FBTztZQUNUO1FBQ0Y7SUFDRjtJQUVBLElBQUkyQixXQUFXekssUUFBUXlLLFFBQVEsQ0FBQ0MsV0FBVztJQUMzQyxJQUNFRCxhQUFhLFNBQ2IrSSxXQUFXL0gsZ0JBQWdCLElBQzNCLENBQUMrRSxnQkFDRHhRLFFBQVFpTixZQUFZLENBQUMsZ0JBQWdCLE1BQ3JDO1FBQ0EsT0FBTztJQUNUO0lBRUEsT0FBTztBQUNUO0FBRUEsMENBQTBDO0FBQzFDMEcsaUJBQWlCbkYsTUFBTSxHQUFHO0lBQ3hCLElBQUlBLFNBQ0ZqTyxVQUFVbkIsTUFBTSxHQUFHLEtBQUttQixTQUFTLENBQUMsRUFBRSxLQUFLdEIsWUFBWXNCLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUV2RSxJQUFJMlQsY0FBYyxTQUFTQSxZQUFZdlUsT0FBTztRQUM1QyxPQUFPZ1UsaUJBQWlCO1lBQ3RCaFUsU0FBU0E7WUFDVDZPLFFBQVFBO1FBQ1Y7SUFDRjtJQUVBMEYsWUFBWTdFLEtBQUssR0FBR3NFO0lBQ3BCLE9BQU9PO0FBQ1Q7QUFFQSxnRUFBZ0U7QUFDaEUsSUFBSUEsY0FBY1AsaUJBQWlCbkYsTUFBTSxDQUFDLENBQUM7QUFFM0MsU0FBUzJGLGFBQWFDLFNBQVM7SUFDN0IsNERBQTREO0lBQzVELElBQUlDLFNBQVMsU0FBU0EsT0FBT3pULElBQUk7UUFDL0IsSUFBSUEsS0FBS00sVUFBVSxFQUFFO1lBQ25CLGlFQUFpRTtZQUNqRSwwQ0FBMEM7WUFDMUMsT0FBT29ULFdBQVdDLGFBQWE7UUFDakM7UUFFQSxJQUFJSCxVQUFVeFQsT0FBTztZQUNuQiwyRUFBMkU7WUFDM0UsT0FBTzBULFdBQVdDLGFBQWE7UUFDakM7UUFFQSxPQUFPRCxXQUFXRSxXQUFXO0lBQy9CO0lBQ0Esa0VBQWtFO0lBQ2xFLG1HQUFtRztJQUNuR0gsT0FBT0ksVUFBVSxHQUFHSjtJQUNwQixPQUFPQTtBQUNUO0FBRUEsSUFBSUssMEJBQTBCUCxhQUFhL0U7QUFFM0MsU0FBU3VGO0lBQ1AsSUFBSWpWLE9BQ0FhLFVBQVVuQixNQUFNLEdBQUcsS0FBS21CLFNBQVMsQ0FBQyxFQUFFLEtBQUt0QixZQUFZc0IsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQ3ZFWixVQUFVRCxLQUFLQyxPQUFPLEVBQ3RCaVYsaUJBQWlCbFYsS0FBS2tWLGNBQWMsRUFDcENDLHNCQUFzQm5WLEtBQUttVixtQkFBbUIsRUFDOUNDLFdBQVdwVixLQUFLb1YsUUFBUTtJQUUxQixJQUFJLENBQUNuVixTQUFTO1FBQ1pBLFVBQVVULFNBQVNpQixlQUFlO0lBQ3BDO0lBRUEsSUFBSTRVLGVBQWViLFlBQVk3RSxLQUFLLENBQUNiLE1BQU0sQ0FBQztRQUMxQ29GLGNBQWNpQjtJQUNoQjtJQUVBLElBQUk5VCxZQUFZSixZQUFZaEI7SUFDNUIsMkVBQTJFO0lBQzNFLElBQUlxVixTQUFTalUsVUFBVWtVLGdCQUFnQixDQUNyQyxTQUVBLFdBQ1dDLFdBRFcsQ0FDQyxFQUhXLGFBS3JCLFFBQVFSLE1BRE0sb0JBQ29CUCxhQUFhWSxlQUU1RDtJQUdGLElBQUkzVCxPQUFPLEVBQUU7SUFFYixNQUFPNFQsT0FBT0csUUFBUSxHQUFJO1FBQ3hCLElBQUlILE9BQU9JLFdBQVcsQ0FBQ2xVLFVBQVUsRUFBRTtZQUNqQyxJQUFJNlQsYUFBYUMsT0FBT0ksV0FBVyxHQUFHO2dCQUNwQ2hVLEtBQUtDLElBQUksQ0FBQzJULE9BQU9JLFdBQVc7WUFDOUI7WUFFQWhVLE9BQU9BLEtBQUtpVSxNQUFNLENBQ2hCVixxQkFBcUI7Z0JBQ25CaFYsU0FBU3FWLE9BQU9JLFdBQVcsQ0FBQ2xVLFVBQVU7Z0JBQ3RDMlQscUJBQXFCQTtnQkFDckJDLFVBQVVBO1lBQ1o7UUFFSixPQUFPO1lBQ0wxVCxLQUFLQyxJQUFJLENBQUMyVCxPQUFPSSxXQUFXO1FBQzlCO0lBQ0Y7SUFFQSx5Q0FBeUM7SUFDekMsSUFBSVIsZ0JBQWdCO1FBQ2xCLElBQUlFLGFBQWEsT0FBTztZQUN0QixJQUFJMUYsZ0JBQWdCelAsVUFBVTtnQkFDNUJ5QixLQUFLa1UsT0FBTyxDQUFDM1Y7WUFDZjtRQUNGLE9BQU8sSUFBSW9WLGFBQWFwVixVQUFVO1lBQ2hDeUIsS0FBS2tVLE9BQU8sQ0FBQzNWO1FBQ2Y7SUFDRjtJQUVBLE9BQU95QjtBQUNUO0FBRUEscURBQXFEO0FBQ3JELElBQUltVSxhQUFhLEtBQUs7QUFFdEIsSUFBSUMsYUFBYSxLQUFLO0FBRXRCLFNBQVNDO0lBQ1AsSUFBSSxDQUFDRixZQUFZO1FBQ2ZBLGFBQWFoSjtJQUNmO0lBRUEsSUFBSSxPQUFPaUosZUFBZSxVQUFVO1FBQ2xDLE9BQU9BO0lBQ1Q7SUFFQSxrR0FBa0c7SUFDbEdBLGFBQ0UsS0FDQSwyQ0FBMkM7S0FDMUNELFdBQVcxSixVQUFVLEdBQUcsZUFBZSxHQUFDLEdBQ3pDLHFDQUFxQztLQUNwQzBKLFdBQVd4TixhQUFhLEdBQUcsY0FBYyxHQUFDLEdBQzNDLDhGQUE4RjtJQUM5RixpRUFBaUU7SUFDakUsdURBQXVEO0lBQ3ZELFdBQ0Esd0dBQXdHO0lBQ3hHLHdCQUF3QjtJQUN4QixhQUNBLDBDQUEwQztJQUMxQyxnQkFDQSx3Q0FBd0M7SUFDeEMscUNBQ0EsOEJBQThCO0lBQzlCLDJCQUNBLHNCQUFzQjtJQUN0QixZQUNDd04sQ0FBQUEsV0FBVzdOLHlCQUF5QixHQUFHLFdBQVcsbUJBQWlCLElBQ25FNk4sV0FBV3ZKLHlCQUF5QixHQUFHLFdBQVcsbUJBQWlCLElBQ25FdUosV0FBVzNMLFlBQVksR0FBRyxhQUFhLEdBQUMsR0FDekMsOENBQThDO0lBQzlDLGdCQUNBLGdCQUFnQjtJQUNoQjtJQUVGLHFHQUFxRztJQUNyRzRMLGFBQWF4RixnQkFBZ0J3RjtJQUU3QixPQUFPQTtBQUNUO0FBRUEsU0FBU0U7SUFDUCxJQUFJaFcsT0FDQWEsVUFBVW5CLE1BQU0sR0FBRyxLQUFLbUIsU0FBUyxDQUFDLEVBQUUsS0FBS3RCLFlBQVlzQixTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsR0FDdkVaLFVBQVVELEtBQUtDLE9BQU8sRUFDdEJpVixpQkFBaUJsVixLQUFLa1YsY0FBYyxFQUNwQ0Msc0JBQXNCblYsS0FBS21WLG1CQUFtQjtJQUVoRCxJQUFJYyxZQUFZRjtJQUNoQixJQUFJRyxXQUFXalcsUUFBUVIsZ0JBQWdCLENBQUN3VztJQUN4QyxpRUFBaUU7SUFFakUsSUFBSVosZUFBZWIsWUFBWTdFLEtBQUssQ0FBQ2IsTUFBTSxDQUFDO1FBQzFDb0YsY0FBY2lCO0lBQ2hCO0lBRUEsSUFBSXBNLFNBQVMsRUFBRSxDQUFDNEwsTUFBTSxDQUFDL1UsSUFBSSxDQUFDc1csVUFBVWI7SUFFdEMseUNBQXlDO0lBQ3pDLElBQUlILGtCQUFrQkcsYUFBYXBWLFVBQVU7UUFDM0M4SSxPQUFPNk0sT0FBTyxDQUFDM1Y7SUFDakI7SUFFQSxPQUFPOEk7QUFDVDtBQUVBLFNBQVNvTjtJQUNQLElBQUluVyxPQUNBYSxVQUFVbkIsTUFBTSxHQUFHLEtBQUttQixTQUFTLENBQUMsRUFBRSxLQUFLdEIsWUFBWXNCLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUN2RVosVUFBVUQsS0FBS0MsT0FBTyxFQUN0QmlWLGlCQUFpQmxWLEtBQUtrVixjQUFjLEVBQ3BDQyxzQkFBc0JuVixLQUFLbVYsbUJBQW1CLEVBQzlDaUIsZ0JBQWdCcFcsS0FBS29WLFFBQVEsRUFDN0JBLFdBQVdnQixrQkFBa0I3VyxZQUFZLFVBQVU2VztJQUVyRCxJQUFJOVYsVUFBVVAsaUJBQWlCO1FBQzdCSSxPQUFPO1FBQ1BDLGlCQUFpQjtRQUNqQkMsbUJBQW1CO1FBQ25CSixTQUFTQTtJQUNYO0lBRUEsSUFBSWdGLFVBQVU7UUFDWmhGLFNBQVNLO1FBQ1Q0VSxnQkFBZ0JBO1FBQ2hCQyxxQkFBcUJBO1FBQ3JCQyxVQUFVQTtJQUNaO0lBRUEsSUFBSUEsYUFBYSxTQUFTO1FBQ3hCLE9BQU9ZLG9CQUFvQi9RO0lBQzdCLE9BQU8sSUFBSW1RLGFBQWEsWUFBWUEsYUFBYSxPQUFPO1FBQ3RELE9BQU9ILHFCQUFxQmhRO0lBQzlCO0lBRUEsTUFBTSxJQUFJcEYsVUFDUjtBQUVKO0FBRUEsSUFBSXdXLGFBQWEsS0FBSztBQUV0QixpRkFBaUY7QUFDakYsNkZBQTZGO0FBQzdGLElBQUlDLDJCQUEyQjtBQUUvQixTQUFTQztJQUNQLElBQUl2VyxPQUNBYSxVQUFVbkIsTUFBTSxHQUFHLEtBQUttQixTQUFTLENBQUMsRUFBRSxLQUFLdEIsWUFBWXNCLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUN2RVosVUFBVUQsS0FBS0MsT0FBTyxFQUN0QjRPLGNBQWM3TyxLQUFLOE8sTUFBTSxFQUN6QkEsU0FDRUQsZ0JBQWdCdFAsWUFDWjtRQUNFd1AsU0FBUztRQUNUQyxZQUFZO1FBQ1pDLFFBQVE7UUFDUnFDLFNBQVM7UUFDVDRDLGNBQWM7SUFDaEIsSUFDQXJGO0lBRVIsSUFBSSxDQUFDd0gsWUFBWTtRQUNmQSxhQUFheEo7SUFDZjtJQUVBLElBQUl2TSxVQUFVUCxpQkFBaUI7UUFDN0JJLE9BQU87UUFDUEMsaUJBQWlCO1FBQ2pCSCxTQUFTQTtJQUNYO0lBRUEsSUFBSWtDLFNBQVNzQixFQUFFLENBQUNYLEtBQUssSUFBSVgsU0FBU3NCLEVBQUUsQ0FBQ2YsT0FBTyxJQUFJUCxTQUFTbUIsWUFBWSxHQUFHLElBQUk7UUFDMUUsd0ZBQXdGO1FBQ3hGLGlHQUFpRztRQUNqRyw2R0FBNkc7UUFDN0csT0FBTztJQUNUO0lBRUEsSUFBSXdOLGVBQWVELGdCQUFnQnZRO0lBQ25DLElBQUl3USxjQUFjO1FBQ2hCLElBQUkzTyxTQUFTc0IsRUFBRSxDQUFDTixNQUFNLElBQUloQixTQUFTc0IsRUFBRSxDQUFDWixHQUFHLEVBQUU7WUFDekMsdUZBQXVGO1lBQ3ZGLE9BQU87UUFDVDtRQUVBLDhEQUE4RDtRQUM5RCw2REFBNkQ7UUFDN0QsSUFBSTJLLGNBQWNzRCxnQkFBZ0IsR0FBRztZQUNuQyxPQUFPO1FBQ1Q7UUFFQSxJQUNFLENBQUNoQyxPQUFPd0MsT0FBTyxJQUNkblAsQ0FBQUEsU0FBU3NCLEVBQUUsQ0FBQ1gsS0FBSyxJQUFJWCxTQUFTc0IsRUFBRSxDQUFDTixNQUFBQSxLQUNsQyxDQUFDOE8sVUFBVW5CLGVBQ1g7WUFDQSw2RkFBNkY7WUFDN0YsT0FBTztRQUNUO1FBRUEsZ0VBQWdFO1FBQ2hFLGdEQUFnRDtRQUNoRCxJQUFJMEYsZ0JBQWdCMUYsYUFBYS9GLFFBQVEsQ0FBQ0MsV0FBVztRQUNyRCxJQUFJd0wsa0JBQWtCLFVBQVU7WUFDOUIsSUFBSUMsZUFDRHRVLFNBQVNOLElBQUksS0FBSyxZQUFZTSxTQUFTbUIsWUFBWSxJQUFJLE1BQ3ZEbkIsU0FBU04sSUFBSSxLQUFLLFdBQVdNLFNBQVNtQixZQUFZLElBQUk7WUFFekQsSUFBSW5CLFNBQVNzQixFQUFFLENBQUNOLE1BQU0sSUFBS2hCLFNBQVNzQixFQUFFLENBQUNYLEtBQUssSUFBSSxDQUFDMlQsY0FBZTtnQkFDOUQsT0FBTztZQUNUO1FBQ0Y7SUFDRjtJQUVBLElBQUkxTCxXQUFXekssUUFBUXlLLFFBQVEsQ0FBQ0MsV0FBVztJQUMzQyxJQUFJZ0osWUFBWXhHLGNBQWNsTjtJQUM5QixJQUFJZ04sV0FBVzBHLGNBQWMsT0FBTyxPQUFPQSxhQUFhO0lBRXhELElBQ0U3UixTQUFTc0IsRUFBRSxDQUFDUCxJQUFJLElBQ2hCZixTQUFTbUIsWUFBWSxJQUFJLE1BQ3pCd04sZ0JBQ0F4USxRQUFRd0ssZUFBZSxJQUN2QmtKLFlBQVksR0FDWjtRQUNBLHlFQUF5RTtRQUN6RSxpREFBaUQ7UUFDakQsT0FBTztJQUNUO0lBRUEsSUFBSTBDLDRCQUE0QnBKLGFBQWE7SUFDN0MsSUFBSXFKLHNCQUFzQjNDLGNBQWMsUUFBUUEsYUFBYTtJQUU3RCwrRkFBK0Y7SUFDL0Ysd0ZBQXdGO0lBQ3hGLElBQUkxVCxRQUFROE0sWUFBWSxDQUFDLG9CQUFvQjtRQUMzQyx3RUFBd0U7UUFDeEUsT0FBT3NKO0lBQ1Q7SUFFQSxJQUFJSix5QkFBeUJ0UixJQUFJLENBQUMrRixhQUFhdUMsYUFBYSxNQUFNO1FBQ2hFLE9BQU87SUFDVDtJQUVBLElBQUluTCxTQUFTc0IsRUFBRSxDQUFDTixNQUFNLElBQUloQixTQUFTc0IsRUFBRSxDQUFDWixHQUFHLEVBQUU7UUFDekMsMkVBQTJFO1FBQzNFLCtDQUErQztRQUMvQyxJQUFJK1Qsc0JBQ0Q3TCxhQUFhLFdBQVd6SyxRQUFRcUssSUFBSSxLQUFLLFVBQzFDckssUUFBUXFLLElBQUksS0FBSyxjQUNqQkksYUFBYSxZQUNiQSxhQUFhLGNBQ2J6SyxRQUFROE0sWUFBWSxDQUFDO1FBRXZCLElBQUksQ0FBQ3dKLHFCQUFxQjtZQUN4QixJQUFJL04sUUFBUTdFLE9BQU9zTCxnQkFBZ0IsQ0FBQ2hQLFNBQVM7WUFDN0NzVyxzQkFBc0JoSixxQkFBcUIvRTtRQUM3QztRQUVBLElBQUksQ0FBQytOLHFCQUFxQjtZQUN4QixPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUk3TCxhQUFhLFNBQVNpSixjQUFjLE1BQU07UUFDNUMsSUFDRTdSLFNBQVNzQixFQUFFLENBQUNYLEtBQUssSUFDaEJYLFNBQVNzQixFQUFFLENBQUNOLE1BQU0sSUFBSWhCLFNBQVNtQixZQUFZLEtBQUssR0FDakQ7WUFDQSx3RkFBd0Y7WUFDeEYsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJckIsZUFBZTNCLFNBQVMsWUFBWUEsUUFBUThNLFlBQVksQ0FBQyxlQUFlO1FBQzFFLElBQUlzSiwyQkFBMkI7WUFDN0IsaUZBQWlGO1lBQ2pGLE9BQU87UUFDVDtRQUVBLElBQUlwVyxRQUFRNkUsS0FBSyxJQUFJLENBQUNrUixXQUFXOUssaUNBQWlDLEVBQUU7WUFDbEUsaUVBQWlFO1lBQ2pFLHlEQUF5RDtZQUN6RCwyREFBMkQ7WUFDM0QsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUNFUixhQUFhLFNBQ2JzTCxXQUFXdEssZ0JBQWdCLElBQzNCMkssMkJBQ0E7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxJQUFJdlUsU0FBU3NCLEVBQUUsQ0FBQ1IsT0FBTyxJQUFJZCxTQUFTc0IsRUFBRSxDQUFDUCxJQUFJLEVBQUU7UUFDM0MsSUFBSTZILGFBQWEsT0FBTztZQUN0QixJQUFJc0wsV0FBV3JLLFFBQVEsRUFBRTtnQkFDdkIsNkRBQTZEO2dCQUM3RCw0REFBNEQ7Z0JBQzVELG1EQUFtRDtnQkFDbkQsT0FBTztZQUNUO1lBRUEsMEdBQTBHO1lBQzFHLE9BQU8xTCxRQUFROE0sWUFBWSxDQUFDLGdCQUFnQnVKO1FBQzlDO1FBRUEsSUFBSXJXLFFBQVF3SyxlQUFlLEVBQUU7WUFDM0IsSUFBSXVMLFdBQVcvSyx5QkFBeUIsSUFBSXFMLHFCQUFxQjtnQkFDL0QsT0FBTztZQUNUO1lBRUEsMEdBQTBHO1lBQzFHLE9BQU9yVyxRQUFROE0sWUFBWSxDQUFDO1FBQzlCO0lBQ0Y7SUFDQSxJQUFJOU0sUUFBUXVXLFFBQVEsS0FBS3RYLFdBQVc7UUFDbEMsT0FBT3NNLFFBQVFpRCxPQUFPb0YsWUFBWTtJQUNwQztJQUVBLElBQUluSixhQUFhLFNBQVM7UUFDeEIsSUFBSSxDQUFDekssUUFBUThNLFlBQVksQ0FBQyxhQUFhO1lBQ3JDLDBHQUEwRztZQUMxRyxPQUFPO1FBQ1QsT0FBTyxJQUFJakwsU0FBU3NCLEVBQUUsQ0FBQ1gsS0FBSyxFQUFFO1lBQzVCLHNFQUFzRTtZQUN0RSxPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUlpSSxhQUFhLFNBQVM7UUFDeEIsSUFBSSxDQUFDekssUUFBUThNLFlBQVksQ0FBQyxhQUFhO1lBQ3JDLElBQUlqTCxTQUFTc0IsRUFBRSxDQUFDUixPQUFPLElBQUlkLFNBQVNzQixFQUFFLENBQUNQLElBQUksRUFBRTtnQkFDM0MsbUhBQW1IO2dCQUNuSCxPQUFPO1lBQ1Q7UUFDRixPQUFPLElBQUlmLFNBQVNzQixFQUFFLENBQUNYLEtBQUssSUFBSVgsU0FBU3NCLEVBQUUsQ0FBQ1QsS0FBSyxFQUFFO1lBQ2pELGtGQUFrRjtZQUNsRixPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUkrSCxhQUFhLFVBQVU7UUFDekIsSUFBSTVJLFNBQVNzQixFQUFFLENBQUNYLEtBQUssSUFBSVgsU0FBU3NCLEVBQUUsQ0FBQ04sTUFBTSxFQUFFO1lBQzNDLHVIQUF1SDtZQUN2SCxPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUk0SCxhQUFhLFVBQVU7UUFDekIsc0RBQXNEO1FBQ3RELDJFQUEyRTtRQUMzRSxzRUFBc0U7UUFDdEUsK0RBQStEO1FBQy9ELE9BQU87SUFDVDtJQUVBLElBQUksQ0FBQytELE9BQU9FLFVBQVUsSUFBSTdNLFNBQVNzQixFQUFFLENBQUNULEtBQUssRUFBRTtRQUMzQyw4REFBOEQ7UUFDOUQsNENBQTRDO1FBQzVDLElBQUk4VCxTQUFTOVMsT0FBT3NMLGdCQUFnQixDQUFDaFAsU0FBUztRQUM5QyxJQUFJME4scUJBQXFCOEksU0FBUztZQUNoQyxPQUFPSjtRQUNUO0lBQ0Y7SUFFQSxJQUFJdlUsU0FBU3NCLEVBQUUsQ0FBQ1IsT0FBTyxJQUFJZCxTQUFTc0IsRUFBRSxDQUFDUCxJQUFJLEVBQUU7UUFDM0MsK0RBQStEO1FBQy9ELCtDQUErQztRQUMvQyxJQUFJNkgsYUFBYSxRQUFRO1lBQ3ZCLElBQUl3SCxNQUFNSCxlQUFlOVI7WUFDekIsSUFBSWlTLE9BQU8vRSxjQUFjK0UsT0FBTyxHQUFHO2dCQUNqQyxPQUFPO1lBQ1Q7UUFDRjtRQUVBLElBQUl3RSxVQUFVL1MsT0FBT3NMLGdCQUFnQixDQUFDaFAsU0FBUztRQUMvQyxJQUFJc04scUJBQXFCbUosVUFBVTtZQUNqQywyRUFBMkU7WUFDM0UsT0FBT3pXLFFBQVF1VyxRQUFRLElBQUk7UUFDN0I7UUFFQSxJQUFJLENBQUMvSCxPQUFPQyxPQUFPLElBQUlaLGtCQUFrQjRJLFVBQVU7WUFDakQsSUFBSS9DLGNBQWMsTUFBTTtnQkFDdEIsT0FBTzJDO1lBQ1Q7WUFFQSxPQUNFSyw4QkFBOEIxVyxZQUM5QjJXLHlCQUF5QjNXO1FBRTdCO1FBRUEsNERBQTREO1FBQzVELDJDQUEyQztRQUMzQyxJQUFJK04sc0JBQXNCL04sU0FBU3lLLFdBQVc7WUFDNUMsT0FBTztRQUNUO1FBRUEsSUFBSXlFLFNBQVNsUCxRQUFRbVAsYUFBYTtRQUNsQyxJQUFJRCxRQUFRO1lBQ1YsSUFBSWxCLGlCQUFpQmtCLE9BQU96RSxRQUFRLENBQUNDLFdBQVc7WUFDaEQsSUFBSXVELGNBQWN2SyxPQUFPc0wsZ0JBQWdCLENBQUNFLFFBQVE7WUFDbEQsd0RBQXdEO1lBQ3hELElBQ0VuQixzQkFBc0JtQixRQUFRekUsVUFBVXVELGdCQUFnQkMsY0FDeEQ7Z0JBQ0EsT0FBTztZQUNUO1lBRUEsNkVBQTZFO1lBQzdFLHlEQUF5RDtZQUN6RCxJQUFJSixrQkFBa0JJLGNBQWM7Z0JBQ2xDLHFDQUFxQztnQkFDckMsT0FBT29JO1lBQ1Q7UUFDRjtJQUNGO0lBRUEsMkRBQTJEO0lBQzNELE9BQU9yVyxRQUFRdVcsUUFBUSxJQUFJO0FBQzdCO0FBRUEsMENBQTBDO0FBQzFDTixnQkFBZ0J6SCxNQUFNLEdBQUc7SUFDdkIsSUFBSUEsU0FDRmpPLFVBQVVuQixNQUFNLEdBQUcsS0FBS21CLFNBQVMsQ0FBQyxFQUFFLEtBQUt0QixZQUFZc0IsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDO0lBRXZFLElBQUlxVyxhQUFhLFNBQVNBLFdBQVdqWCxPQUFPO1FBQzFDLE9BQU9zVyxnQkFBZ0I7WUFDckJ0VyxTQUFTQTtZQUNUNk8sUUFBUUE7UUFDVjtJQUNGO0lBRUFvSSxXQUFXdkgsS0FBSyxHQUFHNEc7SUFDbkIsT0FBT1c7QUFDVDtBQUVBLElBQUlGLGdDQUFnQ3RILGdCQUFnQkMsS0FBSyxDQUFDYixNQUFNLENBQUM7SUFDL0RDLFNBQVM7QUFDWDtBQUNBLElBQUlrSSwyQkFBMkJWLGdCQUFnQnpILE1BQU0sQ0FBQztJQUFFQyxTQUFTO0FBQUs7QUFFdEUsMkRBQTJEO0FBQzNELElBQUltSSxhQUFhWCxnQkFBZ0J6SCxNQUFNLENBQUMsQ0FBQztBQUV6QyxTQUFTcUk7SUFDUCxJQUFJblgsT0FDQWEsVUFBVW5CLE1BQU0sR0FBRyxLQUFLbUIsU0FBUyxDQUFDLEVBQUUsS0FBS3RCLFlBQVlzQixTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsR0FDdkVaLFVBQVVELEtBQUtDLE9BQU8sRUFDdEJpVixpQkFBaUJsVixLQUFLa1YsY0FBYyxFQUNwQ0Msc0JBQXNCblYsS0FBS21WLG1CQUFtQixFQUM5Q0MsV0FBV3BWLEtBQUtvVixRQUFRO0lBRTFCLElBQUlnQyxjQUFjRixXQUFXdkgsS0FBSyxDQUFDYixNQUFNLENBQUM7UUFDeENvRixjQUFjaUI7SUFDaEI7SUFFQSxPQUFPZ0IsZUFBZTtRQUNwQmxXLFNBQVNBO1FBQ1RpVixnQkFBZ0JBO1FBQ2hCQyxxQkFBcUJBO1FBQ3JCQyxVQUFVQTtJQUNaLEdBQUdULE1BQU0sQ0FBQ3lDO0FBQ1o7QUFFQSwrREFBK0Q7QUFFL0QsU0FBU0MsbUJBQW1CQyxDQUFDLEVBQUVDLENBQUM7SUFDOUIsT0FBT0QsRUFBRUUsdUJBQXVCLENBQUNELEtBQUtoWCxLQUFLa1gsMkJBQTJCLEdBQ2xFLENBQUMsSUFDRDtBQUNOO0FBRUEsU0FBU0MsYUFBYXhCLFFBQVE7SUFDNUIsT0FBT0EsU0FBU3lCLElBQUksQ0FBQ047QUFDdkI7QUFFQSxTQUFTTyx3QkFBd0JsVyxJQUFJLEVBQUVpSSxNQUFNO0lBQzNDLDZEQUE2RDtJQUM3RCxPQUFPaUcsVUFBVWxPLE1BQU0sU0FBVXBCLE9BQU87UUFDdEMsT0FDRXFKLE9BQU82Tix1QkFBdUIsQ0FBQ2xYLFdBQVdDLEtBQUtrWCwyQkFBMkI7SUFFOUU7QUFDRjtBQUVBLFNBQVNJLHFCQUFxQm5XLElBQUksRUFBRXdVLFFBQVEsRUFBRTRCLGNBQWM7SUFDMUQsNEVBQTRFO0lBQzVFLHdEQUF3RDtJQUN4RCxJQUFJQyxhQUFhLEVBQUU7SUFDbkI3QixTQUFTaFAsT0FBTyxDQUFDLFNBQVU1RyxPQUFPO1FBQ2hDLElBQUlrUSxVQUFVO1FBQ2QsSUFBSWdCLFNBQVM5UCxLQUFLcU0sT0FBTyxDQUFDek47UUFFMUIsSUFBSWtSLFdBQVcsQ0FBQyxHQUFHO1lBQ2pCLGdDQUFnQztZQUNoQ0EsU0FBU29HLHdCQUF3QmxXLE1BQU1wQjtZQUN2Q2tRLFVBQVU7UUFDWjtRQUVBLElBQUlnQixXQUFXLENBQUMsR0FBRztZQUNqQiw0Q0FBNEM7WUFDNUMsNkNBQTZDO1lBQzdDQSxTQUFTOVAsS0FBS2hDLE1BQU07UUFDdEI7UUFFQSxxREFBcUQ7UUFDckQsSUFBSXNZLGFBQWE5WSxVQUNmNFksaUJBQWlCQSxlQUFleFgsV0FBV0E7UUFFN0MsSUFBSSxDQUFDMFgsV0FBV3RZLE1BQU0sRUFBRTtZQUN0QixnQ0FBZ0M7WUFDaEM7UUFDRjtRQUVBcVksV0FBV3BXLElBQUksQ0FBQztZQUNkNlAsUUFBUUE7WUFDUmhCLFNBQVNBO1lBQ1QwRixVQUFVOEI7UUFDWjtJQUNGO0lBRUEsT0FBT0Q7QUFDVDtBQUVBLFNBQVNFLHdCQUF3QnZXLElBQUksRUFBRXFXLFVBQVU7SUFDL0MsMkRBQTJEO0lBQzNELDRDQUE0QztJQUM1QyxJQUFJRyxXQUFXO0lBQ2YscURBQXFEO0lBQ3JELCtDQUErQztJQUMvQ0gsV0FBV0osSUFBSSxDQUFDLFNBQVVMLENBQUMsRUFBRUMsQ0FBQztRQUM1QixPQUFPRCxFQUFFOUYsTUFBTSxHQUFHK0YsRUFBRS9GLE1BQU07SUFDNUI7SUFDQXVHLFdBQVc3USxPQUFPLENBQUMsU0FBVWlSLFNBQVM7UUFDcEMscURBQXFEO1FBQ3JELElBQUlDLFNBQVNELFVBQVUzSCxPQUFPLEdBQUcsSUFBSTtRQUNyQyxJQUFJNkgsT0FBTztZQUFDRixVQUFVM0csTUFBTSxHQUFHMEc7WUFBVUU7U0FBTyxDQUFDekMsTUFBTSxDQUFDd0MsVUFBVWpDLFFBQVE7UUFDMUV4VSxLQUFLNFcsTUFBTSxDQUFDQyxLQUFLLENBQUM3VyxNQUFNMlc7UUFDeEJILFlBQVlDLFVBQVVqQyxRQUFRLENBQUN4VyxNQUFNLEdBQUcwWTtJQUMxQztBQUNGO0FBRUEsU0FBU0k7SUFDUCxJQUFJeFksT0FDQWEsVUFBVW5CLE1BQU0sR0FBRyxLQUFLbUIsU0FBUyxDQUFDLEVBQUUsS0FBS3RCLFlBQVlzQixTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsR0FDdkVhLE9BQU8xQixLQUFLMEIsSUFBSSxFQUNoQndVLFdBQVdsVyxLQUFLa1csUUFBUSxFQUN4QjRCLGlCQUFpQjlYLEtBQUs4WCxjQUFjO0lBRXRDLDBEQUEwRDtJQUMxRCxJQUFJVyxRQUFRL1csS0FBSy9CLEtBQUssQ0FBQztJQUN2QixtRUFBbUU7SUFDbkUsSUFBSStZLFlBQVl4WixVQUFVZ1gsVUFBVXZXLEtBQUssQ0FBQztJQUMxQytYLGFBQWFnQjtJQUNiLHFFQUFxRTtJQUNyRSwwQ0FBMEM7SUFDMUMsSUFBSVgsYUFBYUYscUJBQXFCWSxPQUFPQyxXQUFXWjtJQUN4RCxpRkFBaUY7SUFDakZHLHdCQUF3QlEsT0FBT1Y7SUFDL0IsT0FBT1U7QUFDVDtBQUVBLElBQUlFLGVBQWdCO0lBQ2xCLFNBQVNDLGlCQUFpQmpQLE1BQU0sRUFBRWtQLEtBQUs7UUFDckMsSUFBSyxJQUFJOUksSUFBSSxHQUFHQSxJQUFJOEksTUFBTW5aLE1BQU0sRUFBRXFRLElBQUs7WUFDckMsSUFBSStJLGFBQWFELEtBQUssQ0FBQzlJLEVBQUU7WUFDekIrSSxXQUFXQyxVQUFVLEdBQUdELFdBQVdDLFVBQVUsSUFBSTtZQUNqREQsV0FBV0UsWUFBWSxHQUFHO1lBQzFCLElBQUksV0FBV0YsWUFBWUEsV0FBV0csUUFBUSxHQUFHO1lBQ2pEclQsT0FBT3NULGNBQWMsQ0FBQ3ZQLFFBQVFtUCxXQUFXL1MsR0FBRyxFQUFFK1M7UUFDaEQ7SUFDRjtJQUNBLE9BQU8sU0FBVUssV0FBVyxFQUFFQyxVQUFVLEVBQUVDLFdBQVc7UUFDbkQsSUFBSUQsWUFBWVIsaUJBQWlCTyxZQUFZL04sU0FBUyxFQUFFZ087UUFDeEQsSUFBSUMsYUFBYVQsaUJBQWlCTyxhQUFhRTtRQUMvQyxPQUFPRjtJQUNUO0FBQ0Y7QUFFQSxTQUFTRyxnQkFBZ0JDLFFBQVEsRUFBRUosV0FBVztJQUM1QyxJQUFJLENBQUVJLENBQUFBLG9CQUFvQkosV0FBQUEsQ0FBVSxFQUFJO1FBQ3RDLE1BQU0sSUFBSXRaLFVBQVU7SUFDdEI7QUFDRjtBQUVBLElBQUkyWixPQUFRO0lBQ1YsU0FBU0EsS0FBS3ZaLE9BQU87UUFDbkJxWixnQkFBZ0IsSUFBSSxFQUFFRTtRQUV0QixJQUFJLENBQUNuWSxTQUFTLEdBQUdKLFlBQVloQjtRQUM3QixJQUFJLENBQUN3WixJQUFJLEdBQUcsQ0FBQztJQUNmO0lBRUFkLGFBQWFhLE1BQU07UUFDakI7WUFDRXpULEtBQUs7WUFDTE8sT0FBTyxTQUFTb1QsWUFBWTdYLElBQUk7Z0JBQzlCLElBQUksQ0FBQyxJQUFJLENBQUM0WCxJQUFJLENBQUM1WCxLQUFLLEVBQUU7b0JBQ3BCLG1EQUFtRDtvQkFDbkQsK0NBQStDO29CQUMvQyxJQUFJLENBQUM4WCxZQUFZLENBQUM5WDtnQkFDcEI7Z0JBRUEsT0FBTyxJQUFJLENBQUM0WCxJQUFJLENBQUM1WCxLQUFLO1lBQ3hCO1FBQ0Y7UUFDQTtZQUNFa0UsS0FBSztZQUNMTyxPQUFPLFNBQVNxVCxhQUFhOVgsSUFBSTtnQkFDL0IsSUFBSWlFLE1BQU1vTSxhQUFhclEsTUFBTSxJQUFJLENBQUNSLFNBQVM7Z0JBQzNDLElBQUksQ0FBQ3lFLEtBQUs7b0JBQ1IsbUVBQW1FO29CQUNuRTtnQkFDRjtnQkFFQSxJQUFJLENBQUMyVCxJQUFJLENBQUMzVCxJQUFJakUsSUFBSSxDQUFDLEdBQUdzVixjQUFjO29CQUFFbFgsU0FBUzZGO2dCQUFJO1lBQ3JEO1FBQ0Y7UUFDQTtZQUNFQyxLQUFLO1lBQ0xPLE9BQU8sU0FBU3NULHFCQUFxQjFELFFBQVE7Z0JBQzNDLHFEQUFxRDtnQkFDckQsMkNBQTJDO2dCQUMzQyxPQUFPQSxTQUFTdkIsTUFBTSxDQUFDLFNBQVVyVSxPQUFPO29CQUN0QyxJQUFJeUssV0FBV3pLLFFBQVF5SyxRQUFRLENBQUNDLFdBQVc7b0JBQzNDLElBQUlELGFBQWEsUUFBUTt3QkFDdkIsT0FBTztvQkFDVDtvQkFFQSxJQUFJakYsTUFBTXhGLFFBQVFTLFVBQVU7b0JBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMwWSxJQUFJLENBQUMzVCxJQUFJakUsSUFBSSxDQUFDLEVBQUU7d0JBQ3hCLElBQUksQ0FBQzRYLElBQUksQ0FBQzNULElBQUlqRSxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUMxQjtvQkFFQSxJQUFJLENBQUM0WCxJQUFJLENBQUMzVCxJQUFJakUsSUFBSSxDQUFDLENBQUNGLElBQUksQ0FBQ3JCO29CQUN6QixPQUFPO2dCQUNULEdBQUcsSUFBSTtZQUNUO1FBQ0Y7S0FDRDtJQUVELE9BQU9rWjtBQUNUO0FBRUEsU0FBU0ssU0FBUzNELFFBQVEsRUFBRWpXLE9BQU87SUFDakMsNERBQTREO0lBQzVELDREQUE0RDtJQUM1RCw0Q0FBNEM7SUFDNUMsSUFBSTZaLFVBQVU3WixRQUFRUixnQkFBZ0IsQ0FBQztJQUN2QyxJQUFJZ2EsT0FBTyxJQUFJRCxLQUFLdlo7SUFFcEIscURBQXFEO0lBQ3JELDJDQUEyQztJQUMzQyxJQUFJeVksWUFBWWUsS0FBS0csb0JBQW9CLENBQUMxRDtJQUUxQyxJQUFJLENBQUM0RCxRQUFRcGEsTUFBTSxFQUFFO1FBQ25CLHNEQUFzRDtRQUN0RCw0Q0FBNEM7UUFDNUMsT0FBT2daO0lBQ1Q7SUFFQSxPQUFPRixnQkFBZ0I7UUFDckI5VyxNQUFNZ1g7UUFDTnhDLFVBQVU0RDtRQUNWaEMsZ0JBQWdCLFNBQVNBLGVBQWVpQyxLQUFLO1lBQzNDLElBQUlsWSxPQUFPa1ksTUFBTXhNLFlBQVksQ0FBQyxVQUFVNU4sS0FBSyxDQUFDO1lBQzlDLE9BQU84WixLQUFLQyxXQUFXLENBQUM3WDtRQUMxQjtJQUNGO0FBQ0Y7QUFFQSxJQUFJbVksaUJBQWtCO0lBQ3BCLFNBQVNwQixpQkFBaUJqUCxNQUFNLEVBQUVrUCxLQUFLO1FBQ3JDLElBQUssSUFBSTlJLElBQUksR0FBR0EsSUFBSThJLE1BQU1uWixNQUFNLEVBQUVxUSxJQUFLO1lBQ3JDLElBQUkrSSxhQUFhRCxLQUFLLENBQUM5SSxFQUFFO1lBQ3pCK0ksV0FBV0MsVUFBVSxHQUFHRCxXQUFXQyxVQUFVLElBQUk7WUFDakRELFdBQVdFLFlBQVksR0FBRztZQUMxQixJQUFJLFdBQVdGLFlBQVlBLFdBQVdHLFFBQVEsR0FBRztZQUNqRHJULE9BQU9zVCxjQUFjLENBQUN2UCxRQUFRbVAsV0FBVy9TLEdBQUcsRUFBRStTO1FBQ2hEO0lBQ0Y7SUFDQSxPQUFPLFNBQVVLLFdBQVcsRUFBRUMsVUFBVSxFQUFFQyxXQUFXO1FBQ25ELElBQUlELFlBQVlSLGlCQUFpQk8sWUFBWS9OLFNBQVMsRUFBRWdPO1FBQ3hELElBQUlDLGFBQWFULGlCQUFpQk8sYUFBYUU7UUFDL0MsT0FBT0Y7SUFDVDtBQUNGO0FBRUEsU0FBU2Msa0JBQWtCVixRQUFRLEVBQUVKLFdBQVc7SUFDOUMsSUFBSSxDQUFFSSxDQUFBQSxvQkFBb0JKLFdBQUFBLENBQVUsRUFBSTtRQUN0QyxNQUFNLElBQUl0WixVQUFVO0lBQ3RCO0FBQ0Y7QUFFQSxJQUFJcWEsVUFBVztJQUNiLFNBQVNBLFFBQVFqYSxPQUFPLEVBQUVrYSxZQUFZO1FBQ3BDRixrQkFBa0IsSUFBSSxFQUFFQztRQUV4QixzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDamEsT0FBTyxHQUFHQTtRQUNmLDJDQUEyQztRQUMzQyxJQUFJLENBQUNrYSxZQUFZLEdBQUdBO1FBQ3BCLHFEQUFxRDtRQUNyRCxJQUFJLENBQUNDLFdBQVcsR0FBRztRQUNuQixzREFBc0Q7UUFDdEQsSUFBSSxDQUFDQyxNQUFNLEdBQUcsQ0FBQztRQUNmLHFEQUFxRDtRQUNyRCxJQUFJLENBQUNDLFVBQVUsR0FBRyxFQUFFO1FBQ3BCLGdDQUFnQztRQUNoQyxJQUFJLENBQUNDLEtBQUssR0FBRyxDQUFDO1FBQ2Qsc0RBQXNEO1FBQ3RELElBQUksQ0FBQ3JFLFFBQVEsR0FBRyxDQUFDO0lBQ25CO0lBRUEsb0RBQW9EO0lBRXBEOEQsZUFBZUUsU0FBUztRQUN0QjtZQUNFblUsS0FBSztZQUNMTyxPQUFPLFNBQVNrVSxjQUFjeFosSUFBSTtnQkFDaEMsSUFBSUEsS0FBS3laLFVBQVUsRUFBRTtvQkFDbkI7Z0JBQ0Y7Z0JBRUEsNERBQTREO2dCQUM1RHpaLEtBQUt5WixVQUFVLEdBQUcsWUFBWSxJQUFJLENBQUNMLFdBQVc7Z0JBQzlDLElBQUksQ0FBQ0csS0FBSyxDQUFDdlosS0FBS3laLFVBQVUsQ0FBQyxHQUFHelo7Z0JBRTlCLGdDQUFnQztnQkFDaEMsSUFBSTBaLGFBQWE5WixjQUFjO29CQUFFWCxTQUFTZTtnQkFBSztnQkFDL0MsSUFBSTBaLFlBQVk7b0JBQ2QsSUFBSSxDQUFDRixhQUFhLENBQUNFO29CQUNuQixJQUFJLENBQUNDLG1CQUFtQixDQUFDM1osTUFBTTBaO2dCQUNqQyxPQUFPO29CQUNMLElBQUksQ0FBQ0osVUFBVSxDQUFDM1ksSUFBSSxDQUFDWDtnQkFDdkI7WUFDRjtRQUdGO1FBQ0E7WUFDRStFLEtBQUs7WUFDTE8sT0FBTyxTQUFTcVUsb0JBQW9CM1osSUFBSSxFQUFFd08sTUFBTTtnQkFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQzZLLE1BQU0sQ0FBQzdLLE9BQU9pTCxVQUFVLENBQUMsRUFBRTtvQkFDbkMsSUFBSSxDQUFDSixNQUFNLENBQUM3SyxPQUFPaUwsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDckM7Z0JBRUEsSUFBSSxDQUFDSixNQUFNLENBQUM3SyxPQUFPaUwsVUFBVSxDQUFDLENBQUM5WSxJQUFJLENBQUNYO1lBQ3RDO1FBR0Y7UUFDQTtZQUNFK0UsS0FBSztZQUNMTyxPQUFPLFNBQVNzVSxpQkFBaUJ0YSxPQUFPLEVBQUVVLElBQUk7Z0JBQzVDLElBQUksQ0FBQyxJQUFJLENBQUNrVixRQUFRLENBQUNsVixLQUFLeVosVUFBVSxDQUFDLEVBQUU7b0JBQ25DLElBQUksQ0FBQ3ZFLFFBQVEsQ0FBQ2xWLEtBQUt5WixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNyQztnQkFFQSxJQUFJLENBQUN2RSxRQUFRLENBQUNsVixLQUFLeVosVUFBVSxDQUFDLENBQUM5WSxJQUFJLENBQUNyQjtZQUN0QztRQUtGO1FBQ0E7WUFDRXlGLEtBQUs7WUFDTE8sT0FBTyxTQUFTdVUsZ0JBQWdCM0UsUUFBUTtnQkFDdEMsT0FBT0EsU0FBU3ZCLE1BQU0sQ0FBQyxTQUFVclUsT0FBTztvQkFDdEMsSUFBSVUsT0FBT0osY0FBYzt3QkFBRVgsU0FBU0s7b0JBQVE7b0JBQzVDLElBQUksQ0FBQ1UsTUFBTTt3QkFDVCxPQUFPO29CQUNUO29CQUVBLElBQUksQ0FBQ3daLGFBQWEsQ0FBQ3haO29CQUNuQixJQUFJLENBQUM0WixnQkFBZ0IsQ0FBQ3RhLFNBQVNVO29CQUMvQixPQUFPO2dCQUNULEdBQUcsSUFBSTtZQUNUO1FBSUY7UUFDQTtZQUNFK0UsS0FBSztZQUNMTyxPQUFPLFNBQVNxUixLQUFLekIsUUFBUTtnQkFDM0IsSUFBSXdDLFlBQVksSUFBSSxDQUFDb0MsWUFBWSxDQUFDNUU7Z0JBQ2xDd0MsWUFBWSxJQUFJLENBQUNxQyxhQUFhLENBQUNyQztnQkFDL0IsSUFBSSxDQUFDc0MsUUFBUTtnQkFDYixPQUFPdEM7WUFDVDtRQUlGO1FBQ0E7WUFDRTNTLEtBQUs7WUFDTE8sT0FBTyxTQUFTd1UsYUFBYTVFLFFBQVE7Z0JBQ25DdFEsT0FBT0MsSUFBSSxDQUFDLElBQUksQ0FBQzBVLEtBQUssRUFBRXJULE9BQU8sQ0FBQyxTQUFVdVQsVUFBVTtvQkFDbEQsSUFBSWhDLFFBQVEsSUFBSSxDQUFDdkMsUUFBUSxDQUFDdUUsV0FBVztvQkFDckMsSUFBSS9CLFlBQVksSUFBSSxDQUFDMkIsTUFBTSxDQUFDSSxXQUFXO29CQUN2QyxJQUFJUSxXQUFXLElBQUksQ0FBQ1YsS0FBSyxDQUFDRSxXQUFXLENBQUNqWixVQUFVO29CQUNoRCxJQUFJLENBQUMwVSxRQUFRLENBQUN1RSxXQUFXLEdBQUcsSUFBSSxDQUFDUyxNQUFNLENBQUN6QyxPQUFPQyxXQUFXdUM7Z0JBQzVELEdBQUcsSUFBSTtnQkFFUCxPQUFPLElBQUksQ0FBQ0MsTUFBTSxDQUFDaEYsVUFBVSxJQUFJLENBQUNvRSxVQUFVLEVBQUUsSUFBSSxDQUFDcmEsT0FBTztZQUM1RDtRQUNGO1FBQ0E7WUFDRThGLEtBQUs7WUFDTE8sT0FBTyxTQUFTNFUsT0FBT3haLElBQUksRUFBRXdVLFFBQVEsRUFBRWpXLE9BQU87Z0JBQzVDLElBQUlrYixTQUFTM0MsZ0JBQWdCO29CQUMzQjlXLE1BQU1BO29CQUNOd1UsVUFBVUE7Z0JBQ1o7Z0JBRUEsT0FBTyxJQUFJLENBQUNpRSxZQUFZLENBQUNnQixRQUFRbGI7WUFDbkM7UUFDRjtRQUNBO1lBQ0U4RixLQUFLO1lBQ0xPLE9BQU8sU0FBU3lVLGNBQWM3RSxRQUFRO2dCQUNwQyxPQUFPc0MsZ0JBQWdCO29CQUNyQjlXLE1BQU13VTtvQkFDTkEsVUFBVSxJQUFJLENBQUNvRSxVQUFVO29CQUN6QnhDLGdCQUFnQixJQUFJLENBQUNzRCxtQkFBbUIsQ0FBQ0MsSUFBSSxDQUFDLElBQUk7Z0JBQ3BEO1lBQ0Y7UUFDRjtRQUNBO1lBQ0V0VixLQUFLO1lBQ0xPLE9BQU8sU0FBUzhVLG9CQUFvQnBhLElBQUk7Z0JBQ3RDLElBQUltYSxTQUFTM0MsZ0JBQWdCO29CQUMzQjlXLE1BQU0sSUFBSSxDQUFDd1UsUUFBUSxDQUFDbFYsS0FBS3laLFVBQVUsQ0FBQztvQkFDcEN2RSxVQUFVLElBQUksQ0FBQ21FLE1BQU0sQ0FBQ3JaLEtBQUt5WixVQUFVLENBQUM7b0JBQ3RDM0MsZ0JBQWdCLElBQUksQ0FBQ3NELG1CQUFtQixDQUFDQyxJQUFJLENBQUMsSUFBSTtnQkFDcEQ7Z0JBRUEsSUFBSXJILFlBQVl4RyxjQUFjeE07Z0JBQzlCLElBQUlnVCxjQUFjLFFBQVFBLFlBQVksQ0FBQyxHQUFHO29CQUN4QyxPQUFPO3dCQUFDaFQ7cUJBQUssQ0FBQzJVLE1BQU0sQ0FBQ3dGO2dCQUN2QjtnQkFFQSxPQUFPQTtZQUNUO1FBQ0Y7UUFDQTtZQUNFcFYsS0FBSztZQUNMTyxPQUFPLFNBQVMwVTtnQkFDZCx3RUFBd0U7Z0JBQ3hFcFYsT0FBT0MsSUFBSSxDQUFDLElBQUksQ0FBQzBVLEtBQUssRUFBRXJULE9BQU8sQ0FBQyxTQUFVbkIsR0FBRztvQkFDM0MsT0FBTyxJQUFJLENBQUN3VSxLQUFLLENBQUN4VSxJQUFJLENBQUMwVSxVQUFVO2dCQUNuQyxHQUFHLElBQUk7WUFDVDtRQUNGO0tBQ0Q7SUFFRCxPQUFPUDtBQUNUO0FBRUEsU0FBU29CLGFBQWFwRixRQUFRLEVBQUVqVyxPQUFPLEVBQUVrYSxZQUFZO0lBQ25ELElBQUlvQixVQUFVLElBQUlyQixRQUFRamEsU0FBU2thO0lBQ25DLElBQUl6QixZQUFZNkMsUUFBUVYsZUFBZSxDQUFDM0U7SUFFeEMsSUFBSXdDLFVBQVVoWixNQUFNLEtBQUt3VyxTQUFTeFcsTUFBTSxFQUFFO1FBQ3hDLGlEQUFpRDtRQUNqRCxPQUFPeWEsYUFBYWpFO0lBQ3RCO0lBRUEsT0FBT3FGLFFBQVE1RCxJQUFJLENBQUNlO0FBQ3RCO0FBRUEsU0FBUzhDLGFBQWF0RixRQUFRO0lBQzVCLGtFQUFrRTtJQUNsRSx5SEFBeUg7SUFDekgscUNBQXFDO0lBQ3JDLDBGQUEwRjtJQUMxRiwwRUFBMEU7SUFFMUUsd0VBQXdFO0lBQ3hFLGlGQUFpRjtJQUNqRixzRUFBc0U7SUFDdEUscUVBQXFFO0lBQ3JFLDhEQUE4RDtJQUM5RCx1RkFBdUY7SUFFdkYsOEZBQThGO0lBQzlGLDBFQUEwRTtJQUUxRSxJQUFJcFEsTUFBTSxDQUFDO0lBQ1gsSUFBSTJWLFVBQVUsRUFBRTtJQUNoQixJQUFJQyxTQUFTeEYsU0FBU3ZCLE1BQU0sQ0FBQyxTQUFVclUsT0FBTztRQUM1Qyw0RUFBNEU7UUFDNUUsSUFBSXVXLFdBQVd2VyxRQUFRdVcsUUFBUTtRQUMvQixJQUFJQSxhQUFhdFgsV0FBVztZQUMxQnNYLFdBQVdySixjQUFjbE47UUFDM0I7UUFFQSwyQ0FBMkM7UUFDM0MsSUFBSXVXLFlBQVksS0FBS0EsYUFBYSxRQUFRQSxhQUFhdFgsV0FBVztZQUNoRSxPQUFPO1FBQ1Q7UUFFQSxJQUFJLENBQUN1RyxHQUFHLENBQUMrUSxTQUFTLEVBQUU7WUFDbEIsdUZBQXVGO1lBQ3ZGL1EsR0FBRyxDQUFDK1EsU0FBUyxHQUFHLEVBQUU7WUFDbEIsdUNBQXVDO1lBQ3ZDNEUsUUFBUTlaLElBQUksQ0FBQ2tWO1FBQ2Y7UUFFQSxzQ0FBc0M7UUFDdEMvUSxHQUFHLENBQUMrUSxTQUFTLENBQUNsVixJQUFJLENBQUNyQjtRQUNuQix3REFBd0Q7UUFDeEQsT0FBTztJQUNUO0lBRUEsK0JBQStCO0lBQy9CLGtEQUFrRDtJQUNsRCwrQ0FBK0M7SUFDL0MsSUFBSW9ZLFlBQVkrQyxRQUNiOUQsSUFBSSxHQUNKN1IsR0FBRyxDQUFDLFNBQVUrUSxRQUFRO1FBQ3JCLE9BQU8vUSxHQUFHLENBQUMrUSxTQUFTO0lBQ3RCLEdBQ0M4RSxXQUFXLENBQUMsU0FBVUMsUUFBUSxFQUFFQyxPQUFPO1FBQ3RDLE9BQU9BLFFBQVFsRyxNQUFNLENBQUNpRztJQUN4QixHQUFHRjtJQUVMLE9BQU9oRDtBQUNUO0FBRUEsSUFBSW9ELGFBQWEsS0FBSztBQUV0QixTQUFTQyx1QkFBdUI3RixRQUFRLEVBQUVqVyxPQUFPO0lBQy9DLElBQUkrYixNQUFNOUYsU0FBU25JLE9BQU8sQ0FBQzlOO0lBQzNCLElBQUkrYixNQUFNLEdBQUc7UUFDWCxJQUFJQyxNQUFNL0YsU0FBU29DLE1BQU0sQ0FBQzBELEtBQUs7UUFDL0IsT0FBT0MsSUFBSXRHLE1BQU0sQ0FBQ087SUFDcEI7SUFFQSxPQUFPQTtBQUNUO0FBRUEsU0FBU2lFLGFBQWFqRSxRQUFRLEVBQUUrRSxRQUFRO0lBQ3RDLElBQUlhLFdBQVd0UCw0QkFBNEIsRUFBRTtRQUMzQyxpRUFBaUU7UUFDakUsOERBQThEO1FBQzlELGdEQUFnRDtRQUNoRDBKLFdBQVcyRCxTQUFTM0QsVUFBVStFO0lBQ2hDO0lBRUEvRSxXQUFXc0YsYUFBYXRGO0lBQ3hCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTZ0c7SUFDUCxJQUFJbGMsT0FDQWEsVUFBVW5CLE1BQU0sR0FBRyxLQUFLbUIsU0FBUyxDQUFDLEVBQUUsS0FBS3RCLFlBQVlzQixTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsR0FDdkVaLFVBQVVELEtBQUtDLE9BQU8sRUFDdEJpVixpQkFBaUJsVixLQUFLa1YsY0FBYyxFQUNwQ0Msc0JBQXNCblYsS0FBS21WLG1CQUFtQixFQUM5Q0MsV0FBV3BWLEtBQUtvVixRQUFRO0lBRTFCLElBQUksQ0FBQzBHLFlBQVk7UUFDZkEsYUFBYWpQO0lBQ2Y7SUFFQSxJQUFJb08sV0FBVy9iLFVBQVVlLFFBQVEsQ0FBQyxFQUFFLElBQUlULFNBQVNpQixlQUFlO0lBQ2hFLElBQUl5VixXQUFXaUIsY0FBYztRQUMzQmxYLFNBQVNnYjtRQUNUL0YsZ0JBQWdCQTtRQUNoQkMscUJBQXFCQTtRQUNyQkMsVUFBVUE7SUFDWjtJQUVBLElBQUk1VixTQUFTNkUsSUFBSSxDQUFDOFgsZ0JBQWdCLElBQUloYSxTQUFTc0IsRUFBRSxDQUFDWCxLQUFLLEVBQUU7UUFDdkQsd0NBQXdDO1FBQ3hDLG9EQUFvRDtRQUNwRG9ULFdBQVdvRixhQUFhcEYsVUFBVStFLFVBQVVkO0lBQzlDLE9BQU87UUFDTGpFLFdBQVdpRSxhQUFhakUsVUFBVStFO0lBQ3BDO0lBRUEsSUFBSS9GLGdCQUFnQjtRQUNsQiwyREFBMkQ7UUFDM0QsMEJBQTBCO1FBQzFCZ0IsV0FBVzZGLHVCQUF1QjdGLFVBQVUrRTtJQUM5QztJQUVBLE9BQU8vRTtBQUNUO0FBRUEscUZBQXFGO0FBQ3JGLDhFQUE4RTtBQUM5RSx5REFBeUQ7QUFDekQsbURBQW1EO0FBQ25ELGlEQUFpRDtBQUVqRCxJQUFJa0csVUFBVTtJQUNaLGdCQUFnQjtJQUNoQkMsS0FBSztJQUVMLGFBQWE7SUFDYkMsTUFBTTtJQUNOQyxJQUFJO0lBQ0pDLE9BQU87SUFDUEMsTUFBTTtJQUNOQyxRQUFRO0lBQ1IsV0FBVztJQUNYQyxVQUFVO0lBQ1YsYUFBYTtJQUNiQyxLQUFLO0lBQ0xDLE1BQU07SUFFTixTQUFTO0lBQ1RDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxPQUFPO0lBRVAsV0FBVztJQUNYQyxPQUFPO0lBQ1BDLFVBQVU7SUFDVixhQUFhO0lBQ2JDLE1BQU07SUFDTkMsS0FBSztJQUNMQyxNQUFNO0lBQ04sa0JBQWtCO0lBQ2xCLCtDQUErQztJQUMvQyw2Q0FBNkM7SUFDN0NDLE9BQU87SUFFUCx1QkFBdUI7SUFDdkJDLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxXQUFXO0lBRVgsb0VBQW9FO0lBQ3BFQyxRQUFRO1FBQ04sSUFBSTtZQUFDO1lBQUk7WUFBSTtTQUFJO0lBQ25CO0FBQ0Y7QUFFQSw0QkFBNEI7QUFDNUIsc0NBQXNDO0FBQ3RDLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJLElBQUlBLElBQUs7SUFDM0J2QixPQUFPLENBQUMsTUFBTXVCLEVBQUUsR0FBR0EsSUFBSTtBQUN6QjtBQUVBLHFDQUFxQztBQUNyQyx3Q0FBd0M7QUFDeEMsSUFBSyxJQUFJQyxLQUFLLEdBQUdBLEtBQUssSUFBSUEsS0FBTTtJQUM5QixJQUFJQyxPQUFPRCxLQUFLO0lBQ2hCLElBQUlFLFVBQVVGLEtBQUs7SUFDbkJ4QixPQUFPLENBQUN3QixHQUFHLEdBQUdDO0lBQ2R6QixPQUFPLENBQUMsU0FBU3dCLEdBQUcsR0FBR0U7SUFDdkIxQixRQUFRc0IsTUFBTSxDQUFDRyxLQUFLLEdBQUc7UUFBQ0M7S0FBUTtBQUNsQztBQUVBLDZCQUE2QjtBQUM3QixJQUFLLElBQUlDLE1BQU0sR0FBR0EsTUFBTSxJQUFJQSxNQUFPO0lBQ2pDLElBQUlDLFFBQVFELE1BQU07SUFDbEIsSUFBSUUsU0FBU25lLE9BQU9vZSxZQUFZLENBQUNGLE9BQU9oVCxXQUFXO0lBQ25Eb1IsT0FBTyxDQUFDNkIsT0FBTyxHQUFHRDtBQUNwQjtBQUVBLElBQUlHLFdBQVc7SUFDYmYsS0FBSztJQUNMRCxNQUFNO0lBQ05FLE1BQU07SUFDTkosT0FBTztBQUNUO0FBRUEsSUFBSW1CLG1CQUFtQnhZLE9BQU9DLElBQUksQ0FBQ3NZLFVBQVVyWSxHQUFHLENBQUMsU0FBVWpFLElBQUk7SUFDN0QsT0FBT3NjLFFBQVEsQ0FBQ3RjLEtBQUs7QUFDdkI7QUFFQSxTQUFTd2Msd0JBQXdCQyxlQUFlO0lBQzlDLElBQUloWSxRQUFRZ1ksa0JBQWtCLE9BQU87SUFDckMsT0FBTztRQUNMQyxRQUFRalk7UUFDUmtZLFNBQVNsWTtRQUNUbVksU0FBU25ZO1FBQ1RvWSxVQUFVcFk7SUFDWjtBQUNGO0FBRUEsU0FBU3FZLGlCQUFpQkMsU0FBUztJQUNqQyxJQUFJTixrQkFBa0JNLFVBQVU3USxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ2xELElBQUk4USxXQUFXUix3QkFBd0JDO0lBRXZDTSxVQUFVMVgsT0FBTyxDQUFDLFNBQVU0WCxLQUFLO1FBQy9CLElBQUlBLFVBQVUsS0FBSztZQUNqQiw0Q0FBNEM7WUFDNUM7UUFDRjtRQUVBLCtCQUErQjtRQUMvQixJQUFJeFksUUFBUTtRQUNaLElBQUlpSyxXQUFXdU8sTUFBTW5mLEtBQUssQ0FBQyxHQUFHO1FBQzlCLElBQUk0USxhQUFhLEtBQUs7WUFDcEIsMkNBQTJDO1lBQzNDakssUUFBUTtRQUNWLE9BQU8sSUFBSWlLLGFBQWEsS0FBSztZQUMzQixzQ0FBc0M7WUFDdENqSyxRQUFRO1FBQ1Y7UUFFQSxJQUFJQSxVQUFVLE1BQU07WUFDbEIseUNBQXlDO1lBQ3pDd1ksUUFBUUEsTUFBTW5mLEtBQUssQ0FBQztRQUN0QjtRQUVBLElBQUlvZixlQUFlWixRQUFRLENBQUNXLE1BQU07UUFDbEMsSUFBSSxDQUFDQyxjQUFjO1lBQ2pCLE1BQU0sSUFBSWxmLFVBQVUsdUJBQXVCaWYsUUFBUTtRQUNyRDtRQUVBRCxRQUFRLENBQUNFLGFBQWEsR0FBR3pZO0lBQzNCO0lBRUEsT0FBT3VZO0FBQ1Q7QUFFQSxTQUFTRyxXQUFXalosR0FBRztJQUNyQixJQUFJOFgsT0FBT3pCLE9BQU8sQ0FBQ3JXLElBQUksSUFBSTJILFNBQVMzSCxLQUFLO0lBQ3pDLElBQUksQ0FBQzhYLFFBQVEsT0FBT0EsU0FBUyxZQUFZbFEsTUFBTWtRLE9BQU87UUFDcEQsTUFBTSxJQUFJaGUsVUFBVSxrQkFBa0JrRyxNQUFNO0lBQzlDO0lBRUEsT0FBTztRQUFDOFg7S0FBSyxDQUFDbEksTUFBTSxDQUFDeUcsUUFBUXNCLE1BQU0sQ0FBQ0csS0FBSyxJQUFJLEVBQUU7QUFDakQ7QUFFQSxTQUFTb0IsZUFBZUosUUFBUSxFQUFFSyxLQUFLO0lBQ3JDLHdCQUF3QjtJQUN4QixPQUFPLENBQUNkLGlCQUFpQnJjLElBQUksQ0FBQyxTQUFVb2QsSUFBSTtRQUMxQywyQkFBMkI7UUFDM0IsT0FDRSxPQUFPTixRQUFRLENBQUNNLEtBQUssS0FBSyxhQUMxQnRULFFBQVFxVCxLQUFLLENBQUNDLEtBQUssTUFBTU4sUUFBUSxDQUFDTSxLQUFLO0lBRTNDO0FBQ0Y7QUFFQSxTQUFTQyxXQUFXQyxJQUFJO0lBQ3RCLE9BQU9BLEtBQUs1TyxLQUFLLENBQUMsT0FBTzNLLEdBQUcsQ0FBQyxTQUFVd1osS0FBSztRQUMxQyxJQUFJQyxTQUFTRCxNQUFNN08sS0FBSyxDQUFDO1FBQ3pCLElBQUkrTyxhQUFhYixpQkFBaUJZLE9BQU81ZixLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ25ELElBQUk4ZixZQUFZVCxXQUFXTyxPQUFPNWYsS0FBSyxDQUFDLENBQUM7UUFDekMsT0FBTztZQUNMK2YsVUFBVUQ7WUFDVmIsV0FBV1k7WUFDWFAsZ0JBQWdCQSxlQUFlNUQsSUFBSSxDQUFDLE1BQU1tRTtRQUM1QztJQUNGO0FBQ0Y7QUFFQSxzREFBc0Q7QUFDdEQsOEVBQThFO0FBRTlFLDhHQUE4RztBQUM5Rzs7OztBQUlBLEdBRUEsU0FBU0c7SUFDUCxJQUFJM2YsT0FDQWEsVUFBVW5CLE1BQU0sR0FBRyxLQUFLbUIsU0FBUyxDQUFDLEVBQUUsS0FBS3RCLFlBQVlzQixTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsR0FDdkUyTyxTQUFTeFAsS0FBS3dQLE1BQU0sRUFDcEJsUCxVQUFVTixLQUFLTSxPQUFPLEVBQ3RCc2YsY0FBYzVmLEtBQUs0ZixXQUFXO0lBRWhDLElBQUlwUSxRQUFRO1FBQ1YsT0FBTyxTQUFTcVEsVUFBVTNlLElBQUk7WUFDNUIsT0FBTzJLLFFBQ0orVCxlQUFlMWUsU0FBU3NPLFVBQ3ZCQSxPQUFPZ0ksdUJBQXVCLENBQUN0VyxRQUM3QlgsS0FBS3VmLDhCQUE4QjtRQUUzQztJQUNGLE9BQU8sSUFBSXhmLFNBQVM7UUFDbEIsT0FBTyxTQUFTeWYsV0FBVzdlLElBQUk7WUFDN0IsT0FBTzJLLFFBQ0orVCxlQUFldGYsWUFBWVksUUFDMUJBLEtBQUtzVyx1QkFBdUIsQ0FBQ2xYLFdBQzNCQyxLQUFLdWYsOEJBQThCO1FBRTNDO0lBQ0Y7SUFFQSxNQUFNLElBQUlqZ0IsVUFDUjtBQUVKO0FBRUEsdUZBQXVGO0FBQ3ZGLDJFQUEyRTtBQUUzRSxTQUFTbWdCO0lBQ1AsSUFBSWxhLE1BQ0ZqRixVQUFVbkIsTUFBTSxHQUFHLEtBQUttQixTQUFTLENBQUMsRUFBRSxLQUFLdEIsWUFBWXNCLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUV2RSxJQUFJb2YsV0FBVyxDQUFDO0lBRWhCLElBQUloZ0IsVUFBVWYsVUFBVTRHLElBQUk3RixPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUlULFNBQVNpQixlQUFlO0lBQ25FLE9BQU9xRixJQUFJN0YsT0FBTztJQUNsQixJQUFJMFUsU0FBU3pWLFVBQVU0RyxJQUFJNk8sTUFBTTtJQUNqQyxPQUFPN08sSUFBSTZPLE1BQU07SUFFakIsSUFBSXVMLFVBQVV0YSxPQUFPQyxJQUFJLENBQUNDO0lBQzFCLElBQUksQ0FBQ29hLFFBQVF4Z0IsTUFBTSxFQUFFO1FBQ25CLE1BQU0sSUFBSUcsVUFBVTtJQUN0QjtJQUVBLElBQUlzZ0Isa0JBQWtCLFNBQVNBLGdCQUFnQmpCLEtBQUs7UUFDbERBLE1BQU1RLFFBQVEsQ0FBQ3hZLE9BQU8sQ0FBQyxTQUFVMlcsSUFBSTtZQUNuQyxJQUFJLENBQUNvQyxRQUFRLENBQUNwQyxLQUFLLEVBQUU7Z0JBQ25Cb0MsUUFBUSxDQUFDcEMsS0FBSyxHQUFHLEVBQUU7WUFDckI7WUFFQW9DLFFBQVEsQ0FBQ3BDLEtBQUssQ0FBQ2xjLElBQUksQ0FBQ3VkO1FBQ3RCO0lBQ0Y7SUFFQWdCLFFBQVFoWixPQUFPLENBQUMsU0FBVW1ZLElBQUk7UUFDNUIsSUFBSSxPQUFPdlosR0FBRyxDQUFDdVosS0FBSyxLQUFLLFlBQVk7WUFDbkMsTUFBTSxJQUFJeGYsVUFDUiwrQkFBK0J3ZixPQUFPO1FBRTFDO1FBRUEsSUFBSWUsY0FBYyxTQUFTQSxZQUFZbEIsS0FBSztZQUMxQ0EsTUFBTXBQLFFBQVEsR0FBR2hLLEdBQUcsQ0FBQ3VaLEtBQUs7WUFDMUIsT0FBT0g7UUFDVDtRQUVBRSxXQUFXQyxNQUFNdlosR0FBRyxDQUFDc2EsYUFBYWxaLE9BQU8sQ0FBQ2laO0lBQzVDO0lBRUEsSUFBSUUsZ0JBQWdCLFNBQVNBLGNBQWNuQixLQUFLO1FBQzlDLElBQUlBLE1BQU1vQixnQkFBZ0IsRUFBRTtZQUMxQjtRQUNGO1FBRUEsSUFBSTNMLE9BQU9qVixNQUFNLEVBQUU7WUFDakIsZ0RBQWdEO1lBQ2hELElBQUk2Z0Isb0JBQW9CWixvQkFBb0I7Z0JBQzFDcmYsU0FBUzRlLE1BQU12VixNQUFNO2dCQUNyQmlXLGFBQWE7WUFDZjtZQUNBLElBQUlqTCxPQUFPNVMsSUFBSSxDQUFDd2Usb0JBQW9CO2dCQUNsQztZQUNGO1FBQ0Y7UUFFQSxJQUFJeGEsTUFBTW1aLE1BQU1zQixPQUFPLElBQUl0QixNQUFNdUIsS0FBSztRQUN0QyxJQUFJLENBQUNSLFFBQVEsQ0FBQ2xhLElBQUksRUFBRTtZQUNsQjtRQUNGO1FBRUFrYSxRQUFRLENBQUNsYSxJQUFJLENBQUNtQixPQUFPLENBQUMsU0FBVXdaLE1BQU07WUFDcEMsSUFBSSxDQUFDQSxPQUFPekIsY0FBYyxDQUFDQyxRQUFRO2dCQUNqQztZQUNGO1lBRUF3QixPQUFPNVEsUUFBUSxDQUFDbFEsSUFBSSxDQUFDSyxTQUFTaWYsT0FBT3lCO1FBQ3ZDO0lBQ0Y7SUFFQTFnQixRQUFRMmdCLGdCQUFnQixDQUFDLFdBQVdQLGVBQWU7SUFFbkQsSUFBSU0sWUFBWSxTQUFTQTtRQUN2QjFnQixRQUFRNGdCLG1CQUFtQixDQUFDLFdBQVdSLGVBQWU7SUFDeEQ7SUFFQSxPQUFPO1FBQUVNLFdBQVdBO0lBQVU7QUFDaEM7QUFFZSxTQUFmLFNBQXlCO0lBQUEsTUFBRTFnQixPQUFPLEVBQUUsR0FBWCxtQkFBYyxDQUFDLElBQWY7SUFDdkIsSUFBSSxDQUFDQSxTQUFTO1FBQ1pBLFVBQVVULFNBQVNpQixlQUFlO0lBQ3BDO0lBRUEsd0VBQXdFO0lBQ3hFLHFFQUFxRTtJQUNyRSwwRUFBMEU7SUFDMUV5YjtJQUVBLE9BQU84RCxRQUFRO1FBQ2Isb0RBQW9EO1FBQ3BELHNEQUFzRDtRQUN0RCxtQkFBbUIsU0FBU2MsWUFBWTVCLEtBQUs7WUFDM0Msb0RBQW9EO1lBQ3BEQSxNQUFNNkIsY0FBYztZQUVwQixJQUFJQyxXQUFXOUUsaUJBQWlCO2dCQUM5QmpjLFNBQVNBO1lBQ1g7WUFFQSxJQUFJZ2hCLFdBQVcvQixNQUFNUixRQUFRO1lBQzdCLElBQUl3QyxRQUFRRixRQUFRLENBQUMsRUFBRTtZQUN2QixJQUFJRyxPQUFPSCxRQUFRLENBQUNBLFNBQVN0aEIsTUFBTSxHQUFHLEVBQUU7WUFFeEMsMkNBQTJDO1lBQzNDLElBQUkwaEIsU0FBU0gsV0FBV0MsUUFBUUM7WUFDaEMsSUFBSXhYLFNBQVNzWCxXQUFXRSxPQUFPRDtZQUMvQixJQUFJOWYsZ0JBQWdCZ2dCLFNBQVM7Z0JBQzNCelgsT0FBT3hFLEtBQUs7Z0JBQ1o7WUFDRjtZQUVBLHVDQUF1QztZQUN2QyxJQUFJa2MsZUFBZSxLQUFLO1lBQ3hCLElBQUlDLFFBQVFOLFNBQVNqZixJQUFJLENBQUMsU0FBVXpCLE9BQU8sRUFBRWloQixLQUFLO2dCQUNoRCxJQUFJLENBQUNuZ0IsZ0JBQWdCZCxVQUFVO29CQUM3QixPQUFPO2dCQUNUO2dCQUVBK2dCLGVBQWVFO2dCQUNmLE9BQU87WUFDVDtZQUVBLElBQUksQ0FBQ0QsT0FBTztnQkFDVixvREFBb0Q7Z0JBQ3BESixNQUFNL2IsS0FBSztnQkFDWDtZQUNGO1lBRUEsdURBQXVEO1lBQ3ZELElBQUlxTSxTQUFTeVAsV0FBVyxDQUFDLElBQUk7WUFDN0JELFFBQVEsQ0FBQ0ssZUFBZTdQLE9BQU8sQ0FBQ3JNLEtBQUs7UUFDdkM7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9tYWludGFpbi0tdGFiLWZvY3VzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuLy8gQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzXG4vLyBMaWNlbnNlOiBNSVRcbi8vIENvcHlyaWdodCAoYykgMjAxNSBSb2RuZXkgUmVobVxuLy9cbi8vIEVudHJ5cG9pbnQ6IGFsbHkuanMvbWFpbnRhaW4vdGFiLWZvY3VzXG5cbmltcG9ydCBfcGxhdGZvcm0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3BsYXRmb3JtJ1xuaW1wb3J0IGNzc0VzY2FwZSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvY3NzLmVzY2FwZSdcblxuLy8gaW5wdXQgbWF5IGJlIHVuZGVmaW5lZCwgc2VsZWN0b3ItdHJpbmcsIE5vZGUsIE5vZGVMaXN0LCBIVE1MQ29sbGVjdGlvbiwgYXJyYXkgb2YgTm9kZXNcbi8vIHllcywgdG8gc29tZSBleHRlbnQgdGhpcyBpcyBhIGJhZCByZXBsaWNhIG9mIGpRdWVyeSdzIGNvbnN0cnVjdG9yIGZ1bmN0aW9uXG5mdW5jdGlvbiBub2RlQXJyYXkoaW5wdXQpIHtcbiAgaWYgKCFpbnB1dCkge1xuICAgIHJldHVybiBbXVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgcmV0dXJuIGlucHV0XG4gIH1cblxuICAvLyBpbnN0YW5jZW9mIE5vZGUgLSBkb2VzIG5vdCB3b3JrIHdpdGggaWZyYW1lc1xuICBpZiAoaW5wdXQubm9kZVR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBbaW5wdXRdXG4gIH1cblxuICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgIGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChpbnB1dClcbiAgfVxuXG4gIGlmIChpbnB1dC5sZW5ndGggIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBbXS5zbGljZS5jYWxsKGlucHV0LCAwKVxuICB9XG5cbiAgdGhyb3cgbmV3IFR5cGVFcnJvcigndW5leHBlY3RlZCBpbnB1dCAnICsgU3RyaW5nKGlucHV0KSlcbn1cblxuZnVuY3Rpb24gY29udGV4dFRvRWxlbWVudChfcmVmKSB7XG4gIHZhciBjb250ZXh0ID0gX3JlZi5jb250ZXh0LFxuICAgIF9yZWYkbGFiZWwgPSBfcmVmLmxhYmVsLFxuICAgIGxhYmVsID0gX3JlZiRsYWJlbCA9PT0gdW5kZWZpbmVkID8gJ2NvbnRleHQtdG8tZWxlbWVudCcgOiBfcmVmJGxhYmVsLFxuICAgIHJlc29sdmVEb2N1bWVudCA9IF9yZWYucmVzb2x2ZURvY3VtZW50LFxuICAgIGRlZmF1bHRUb0RvY3VtZW50ID0gX3JlZi5kZWZhdWx0VG9Eb2N1bWVudFxuXG4gIHZhciBlbGVtZW50ID0gbm9kZUFycmF5KGNvbnRleHQpWzBdXG5cbiAgaWYgKHJlc29sdmVEb2N1bWVudCAmJiBlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuRE9DVU1FTlRfTk9ERSkge1xuICAgIGVsZW1lbnQgPSBlbGVtZW50LmRvY3VtZW50RWxlbWVudFxuICB9XG5cbiAgaWYgKCFlbGVtZW50ICYmIGRlZmF1bHRUb0RvY3VtZW50KSB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICB9XG5cbiAgaWYgKCFlbGVtZW50KSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihsYWJlbCArICcgcmVxdWlyZXMgdmFsaWQgb3B0aW9ucy5jb250ZXh0JylcbiAgfVxuXG4gIGlmIChcbiAgICBlbGVtZW50Lm5vZGVUeXBlICE9PSBOb2RlLkVMRU1FTlRfTk9ERSAmJlxuICAgIGVsZW1lbnQubm9kZVR5cGUgIT09IE5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERVxuICApIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGxhYmVsICsgJyByZXF1aXJlcyBvcHRpb25zLmNvbnRleHQgdG8gYmUgYW4gRWxlbWVudCcpXG4gIH1cblxuICByZXR1cm4gZWxlbWVudFxufVxuXG5mdW5jdGlvbiBnZXRTaGFkb3dIb3N0KCkge1xuICB2YXIgX3JlZiA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LFxuICAgIGNvbnRleHQgPSBfcmVmLmNvbnRleHRcblxuICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgIGxhYmVsOiAnZ2V0L3NoYWRvdy1ob3N0JyxcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICB9KVxuXG4gIC8vIHdhbGsgdXAgdG8gdGhlIHJvb3RcbiAgdmFyIGNvbnRhaW5lciA9IG51bGxcblxuICB3aGlsZSAoZWxlbWVudCkge1xuICAgIGNvbnRhaW5lciA9IGVsZW1lbnRcbiAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2RlXG4gIH1cblxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvTm9kZS5ub2RlVHlwZVxuICAvLyBOT1RFOiBGaXJlZm94IDM0IGRvZXMgbm90IGV4cG9zZSBTaGFkb3dSb290Lmhvc3QgKGJ1dCAzNyBkb2VzKVxuICBpZiAoXG4gICAgY29udGFpbmVyLm5vZGVUeXBlID09PSBjb250YWluZXIuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSAmJlxuICAgIGNvbnRhaW5lci5ob3N0XG4gICkge1xuICAgIC8vIHRoZSByb290IGlzIGF0dGFjaGVkIHRvIGEgZnJhZ21lbnQgbm9kZSB0aGF0IGhhcyBhIGhvc3RcbiAgICByZXR1cm4gY29udGFpbmVyLmhvc3RcbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbmZ1bmN0aW9uIGdldERvY3VtZW50KG5vZGUpIHtcbiAgaWYgKCFub2RlKSB7XG4gICAgcmV0dXJuIGRvY3VtZW50XG4gIH1cblxuICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5ET0NVTUVOVF9OT0RFKSB7XG4gICAgcmV0dXJuIG5vZGVcbiAgfVxuXG4gIHJldHVybiBub2RlLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnRcbn1cblxuZnVuY3Rpb24gaXNBY3RpdmVFbGVtZW50KGNvbnRleHQpIHtcbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2lzL2FjdGl2ZS1lbGVtZW50JyxcbiAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgfSlcblxuICB2YXIgX2RvY3VtZW50ID0gZ2V0RG9jdW1lbnQoZWxlbWVudClcbiAgaWYgKF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBlbGVtZW50KSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHZhciBzaGFkb3dIb3N0ID0gZ2V0U2hhZG93SG9zdCh7IGNvbnRleHQ6IGVsZW1lbnQgfSlcbiAgaWYgKHNoYWRvd0hvc3QgJiYgc2hhZG93SG9zdC5zaGFkb3dSb290LmFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnQpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbi8vIFtlbGVtLCBlbGVtLnBhcmVudCwgZWxlbS5wYXJlbnQucGFyZW50LCDigKYsIGh0bWxdXG4vLyB3aWxsIG5vdCBjb250YWluIHRoZSBzaGFkb3dSb290IChET0NVTUVOVF9GUkFHTUVOVF9OT0RFKSBhbmQgc2hhZG93SG9zdFxuZnVuY3Rpb24gZ2V0UGFyZW50cygpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBjb250ZXh0ID0gX3JlZi5jb250ZXh0XG5cbiAgdmFyIGxpc3QgPSBbXVxuICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgIGxhYmVsOiAnZ2V0L3BhcmVudHMnLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gIH0pXG5cbiAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICBsaXN0LnB1c2goZWxlbWVudClcbiAgICAvLyBJRSBkb2VzIGtub3cgc3VwcG9ydCBwYXJlbnRFbGVtZW50IG9uIFNWR0VsZW1lbnRcbiAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnROb2RlXG4gICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5ub2RlVHlwZSAhPT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgIGVsZW1lbnQgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxpc3Rcbn1cblxuLy8gRWxlbWVudC5wcm90b3R5cGUubWF0Y2hlcyBtYXkgYmUgYXZhaWxhYmxlIGF0IGEgZGlmZmVyZW50IG5hbWVcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuL2RvY3MvV2ViL0FQSS9FbGVtZW50L21hdGNoZXNcblxudmFyIG5hbWVzID0gW1xuICAnbWF0Y2hlcycsXG4gICd3ZWJraXRNYXRjaGVzU2VsZWN0b3InLFxuICAnbW96TWF0Y2hlc1NlbGVjdG9yJyxcbiAgJ21zTWF0Y2hlc1NlbGVjdG9yJyxcbl1cbnZhciBuYW1lID0gbnVsbFxuXG5mdW5jdGlvbiBmaW5kTWV0aG9kTmFtZShlbGVtZW50KSB7XG4gIG5hbWVzLnNvbWUoZnVuY3Rpb24gKF9uYW1lKSB7XG4gICAgaWYgKCFlbGVtZW50W19uYW1lXSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgbmFtZSA9IF9uYW1lXG4gICAgcmV0dXJuIHRydWVcbiAgfSlcbn1cblxuZnVuY3Rpb24gZWxlbWVudE1hdGNoZXMoZWxlbWVudCwgc2VsZWN0b3IpIHtcbiAgaWYgKCFuYW1lKSB7XG4gICAgZmluZE1ldGhvZE5hbWUoZWxlbWVudClcbiAgfVxuXG4gIHJldHVybiBlbGVtZW50W25hbWVdKHNlbGVjdG9yKVxufVxuXG4vLyBkZWVwIGNsb25lIG9mIG9yaWdpbmFsIHBsYXRmb3JtXG52YXIgcGxhdGZvcm0gPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KF9wbGF0Zm9ybSkpXG5cbi8vIG9wZXJhdGluZyBzeXN0ZW1cbnZhciBvcyA9IHBsYXRmb3JtLm9zLmZhbWlseSB8fCAnJ1xudmFyIEFORFJPSUQgPSBvcyA9PT0gJ0FuZHJvaWQnXG52YXIgV0lORE9XUyA9IG9zLnNsaWNlKDAsIDcpID09PSAnV2luZG93cydcbnZhciBPU1ggPSBvcyA9PT0gJ09TIFgnXG52YXIgSU9TID0gb3MgPT09ICdpT1MnXG5cbi8vIGxheW91dFxudmFyIEJMSU5LID0gcGxhdGZvcm0ubGF5b3V0ID09PSAnQmxpbmsnXG52YXIgR0VDS08gPSBwbGF0Zm9ybS5sYXlvdXQgPT09ICdHZWNrbydcbnZhciBUUklERU5UID0gcGxhdGZvcm0ubGF5b3V0ID09PSAnVHJpZGVudCdcbnZhciBFREdFID0gcGxhdGZvcm0ubGF5b3V0ID09PSAnRWRnZUhUTUwnXG52YXIgV0VCS0lUID0gcGxhdGZvcm0ubGF5b3V0ID09PSAnV2ViS2l0J1xuXG4vLyBicm93c2VyIHZlcnNpb24gKG5vdCBsYXlvdXQgZW5naW5lIHZlcnNpb24hKVxudmFyIHZlcnNpb24gPSBwYXJzZUZsb2F0KHBsYXRmb3JtLnZlcnNpb24pXG52YXIgbWFqb3JWZXJzaW9uID0gTWF0aC5mbG9vcih2ZXJzaW9uKVxucGxhdGZvcm0ubWFqb3JWZXJzaW9uID0gbWFqb3JWZXJzaW9uXG5cbnBsYXRmb3JtLmlzID0ge1xuICAvLyBvcGVyYXRpbmcgc3lzdGVtXG4gIEFORFJPSUQ6IEFORFJPSUQsXG4gIFdJTkRPV1M6IFdJTkRPV1MsXG4gIE9TWDogT1NYLFxuICBJT1M6IElPUyxcbiAgLy8gbGF5b3V0XG4gIEJMSU5LOiBCTElOSywgLy8gXCJDaHJvbWVcIiwgXCJDaHJvbWUgTW9iaWxlXCIsIFwiT3BlcmFcIlxuICBHRUNLTzogR0VDS08sIC8vIFwiRmlyZWZveFwiXG4gIFRSSURFTlQ6IFRSSURFTlQsIC8vIFwiSW50ZXJuZXQgRXhwbG9yZXJcIlxuICBFREdFOiBFREdFLCAvLyBcIk1pY3Jvc29mdCBFZGdlXCJcbiAgV0VCS0lUOiBXRUJLSVQsIC8vIFwiU2FmYXJpXCJcbiAgLy8gSU5URVJORVQgRVhQTE9SRVJTXG4gIElFOTogVFJJREVOVCAmJiBtYWpvclZlcnNpb24gPT09IDksXG4gIElFMTA6IFRSSURFTlQgJiYgbWFqb3JWZXJzaW9uID09PSAxMCxcbiAgSUUxMTogVFJJREVOVCAmJiBtYWpvclZlcnNpb24gPT09IDExLFxufVxuXG5mdW5jdGlvbiBiZWZvcmUoKSB7XG4gIHZhciBkYXRhID0ge1xuICAgIC8vIHJlbWVtYmVyIHdoYXQgaGFkIGZvY3VzIHRvIHJlc3RvcmUgYWZ0ZXIgdGVzdFxuICAgIGFjdGl2ZUVsZW1lbnQ6IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsXG4gICAgLy8gcmVtZW1iZXIgc2Nyb2xsIHBvc2l0aW9ucyB0byByZXN0b3JlIGFmdGVyIHRlc3RcbiAgICB3aW5kb3dTY3JvbGxUb3A6IHdpbmRvdy5zY3JvbGxUb3AsXG4gICAgd2luZG93U2Nyb2xsTGVmdDogd2luZG93LnNjcm9sbExlZnQsXG4gICAgYm9keVNjcm9sbFRvcDogZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AsXG4gICAgYm9keVNjcm9sbExlZnQ6IGRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdCxcbiAgfVxuXG4gIC8vIHdyYXAgdGVzdHMgaW4gYW4gZWxlbWVudCBoaWRkZW4gZnJvbSBzY3JlZW4gcmVhZGVycyB0byBwcmV2ZW50IHRoZW1cbiAgLy8gZnJvbSBhbm5vdW5jaW5nIGZvY3VzLCB3aGljaCBjYW4gYmUgcXVpdGUgaXJyaXRhdGluZyB0byB0aGUgdXNlclxuICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJylcbiAgaWZyYW1lLnNldEF0dHJpYnV0ZShcbiAgICAnc3R5bGUnLFxuICAgICdwb3NpdGlvbjphYnNvbHV0ZTsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0Oi0ycHg7IHdpZHRoOjFweDsgaGVpZ2h0OjFweDsgb3ZlcmZsb3c6aGlkZGVuOydcbiAgKVxuICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhcmlhLWxpdmUnLCAnb2ZmJylcbiAgaWZyYW1lLnNldEF0dHJpYnV0ZSgnYXJpYS1idXN5JywgJ3RydWUnKVxuICBpZnJhbWUuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJylcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpXG5cbiAgdmFyIF93aW5kb3cgPSBpZnJhbWUuY29udGVudFdpbmRvd1xuICB2YXIgX2RvY3VtZW50ID0gX3dpbmRvdy5kb2N1bWVudFxuXG4gIF9kb2N1bWVudC5vcGVuKClcbiAgX2RvY3VtZW50LmNsb3NlKClcbiAgdmFyIHdyYXBwZXIgPSBfZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgX2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQod3JhcHBlcilcblxuICBkYXRhLmlmcmFtZSA9IGlmcmFtZVxuICBkYXRhLndyYXBwZXIgPSB3cmFwcGVyXG4gIGRhdGEud2luZG93ID0gX3dpbmRvd1xuICBkYXRhLmRvY3VtZW50ID0gX2RvY3VtZW50XG5cbiAgcmV0dXJuIGRhdGFcbn1cblxuLy8gb3B0aW9ucy5lbGVtZW50OlxuLy8gIHtzdHJpbmd9IGVsZW1lbnQgbmFtZVxuLy8gIHtmdW5jdGlvbn0gY2FsbGJhY2sod3JhcHBlciwgZG9jdW1lbnQpIHRvIGdlbmVyYXRlIGFuIGVsZW1lbnRcbi8vIG9wdGlvbnMubXV0YXRlOiAob3B0aW9uYWwpXG4vLyAge2Z1bmN0aW9ufSBjYWxsYmFjayhlbGVtZW50LCB3cmFwcGVyLCBkb2N1bWVudCkgdG8gbWFuaXB1bGF0ZSBlbGVtZW50IHByaW9yIHRvIGZvY3VzLXRlc3QuXG4vLyAgICAgICAgICAgICBDYW4gcmV0dXJuIERPTUVsZW1lbnQgdG8gZGVmaW5lIGZvY3VzIHRhcmdldCAoZGVmYXVsdDogZWxlbWVudClcbi8vIG9wdGlvbnMudmFsaWRhdGU6IChvcHRpb25hbClcbi8vICB7ZnVuY3Rpb259IGNhbGxiYWNrKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBkb2N1bWVudCkgdG8gbWFuaXB1bGF0ZSB0ZXN0LXJlc3VsdFxuZnVuY3Rpb24gdGVzdChkYXRhLCBvcHRpb25zKSB7XG4gIC8vIG1ha2Ugc3VyZSB3ZSBvcGVyYXRlIG9uIGEgY2xlYW4gc2xhdGVcbiAgZGF0YS53cmFwcGVyLmlubmVySFRNTCA9ICcnXG4gIC8vIGNyZWF0ZSBkdW1teSBlbGVtZW50IHRvIHRlc3QgZm9jdXNhYmlsaXR5IG9mXG4gIHZhciBlbGVtZW50ID1cbiAgICB0eXBlb2Ygb3B0aW9ucy5lbGVtZW50ID09PSAnc3RyaW5nJ1xuICAgICAgPyBkYXRhLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQob3B0aW9ucy5lbGVtZW50KVxuICAgICAgOiBvcHRpb25zLmVsZW1lbnQoZGF0YS53cmFwcGVyLCBkYXRhLmRvY3VtZW50KVxuICAvLyBhbGxvdyBjYWxsYmFjayB0byBmdXJ0aGVyIHNwZWNpZnkgZHVtbXkgZWxlbWVudFxuICAvLyBhbmQgb3B0aW9uYWxseSBkZWZpbmUgZWxlbWVudCB0byBmb2N1c1xuICB2YXIgZm9jdXMgPVxuICAgIG9wdGlvbnMubXV0YXRlICYmIG9wdGlvbnMubXV0YXRlKGVsZW1lbnQsIGRhdGEud3JhcHBlciwgZGF0YS5kb2N1bWVudClcbiAgaWYgKCFmb2N1cyAmJiBmb2N1cyAhPT0gZmFsc2UpIHtcbiAgICBmb2N1cyA9IGVsZW1lbnRcbiAgfVxuICAvLyBlbGVtZW50IG5lZWRzIHRvIGJlIHBhcnQgb2YgdGhlIERPTSB0byBiZSBmb2N1c2FibGVcbiAgIWVsZW1lbnQucGFyZW50Tm9kZSAmJiBkYXRhLndyYXBwZXIuYXBwZW5kQ2hpbGQoZWxlbWVudClcbiAgLy8gdGVzdCBpZiB0aGUgZWxlbWVudCB3aXRoIGludmFsaWQgdGFiaW5kZXggY2FuIGJlIGZvY3VzZWRcbiAgZm9jdXMgJiYgZm9jdXMuZm9jdXMgJiYgZm9jdXMuZm9jdXMoKVxuICAvLyB2YWxpZGF0ZSB0ZXN0J3MgcmVzdWx0XG4gIHJldHVybiBvcHRpb25zLnZhbGlkYXRlXG4gICAgPyBvcHRpb25zLnZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzLCBkYXRhLmRvY3VtZW50KVxuICAgIDogZGF0YS5kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmb2N1c1xufVxuXG5mdW5jdGlvbiBhZnRlcihkYXRhKSB7XG4gIC8vIHJlc3RvcmUgZm9jdXMgdG8gd2hhdCBpdCB3YXMgYmVmb3JlIHRlc3QgYW5kIGNsZWFudXBcbiAgaWYgKGRhdGEuYWN0aXZlRWxlbWVudCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiZcbiAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1ciAmJlxuICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudC5ibHVyKClcbiAgICBpZiAocGxhdGZvcm0uaXMuSUUxMCkge1xuICAgICAgLy8gSUUxMCBkb2VzIG5vdCByZWRpcmVjdCBmb2N1cyB0byA8Ym9keT4gd2hlbiB0aGUgYWN0aXZlRWxlbWVudCBpcyByZW1vdmVkXG4gICAgICBkb2N1bWVudC5ib2R5LmZvY3VzKClcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZGF0YS5hY3RpdmVFbGVtZW50ICYmIGRhdGEuYWN0aXZlRWxlbWVudC5mb2N1cyAmJiBkYXRhLmFjdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkYXRhLmlmcmFtZSlcblxuICAvLyByZXN0b3JlIHNjcm9sbCBwb3NpdGlvblxuICB3aW5kb3cuc2Nyb2xsVG9wID0gZGF0YS53aW5kb3dTY3JvbGxUb3BcbiAgd2luZG93LnNjcm9sbExlZnQgPSBkYXRhLndpbmRvd1Njcm9sbExlZnRcbiAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSBkYXRhLmJvZHlTY3JvbGxUb3BcbiAgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0ID0gZGF0YS5ib2R5U2Nyb2xsTGVmdFxufVxuXG5mdW5jdGlvbiBkZXRlY3RGb2N1cyh0ZXN0cykge1xuICB2YXIgZGF0YSA9IGJlZm9yZSgpXG5cbiAgdmFyIHJlc3VsdHMgPSB7fVxuICBPYmplY3Qua2V5cyh0ZXN0cykubWFwKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXN1bHRzW2tleV0gPSB0ZXN0KGRhdGEsIHRlc3RzW2tleV0pXG4gIH0pXG5cbiAgYWZ0ZXIoZGF0YSlcbiAgcmV0dXJuIHJlc3VsdHNcbn1cblxuLy8gdGhpcyBmaWxlIGlzIG92ZXJ3cml0dGVuIGJ5IGBucG0gcnVuIGJ1aWxkOnByZWBcbnZhciB2ZXJzaW9uJDEgPSAnMS40LjEnXG5cbi8qXG4gICAgRmFjaWxpdHkgdG8gY2FjaGUgdGVzdCByZXN1bHRzIGluIGxvY2FsU3RvcmFnZS5cblxuICAgIFVTQUdFOlxuICAgICAgY2FjaGUuZ2V0KCdrZXknKTtcbiAgICAgIGNhY2hlLnNldCgna2V5JywgJ3ZhbHVlJyk7XG4gKi9cblxuZnVuY3Rpb24gcmVhZExvY2FsU3RvcmFnZShrZXkpIHtcbiAgLy8gYWxsb3cgcmVhZGluZyBmcm9tIHN0b3JhZ2UgdG8gcmV0cmlldmUgcHJldmlvdXMgc3VwcG9ydCByZXN1bHRzXG4gIC8vIGV2ZW4gd2hpbGUgdGhlIGRvY3VtZW50IGRvZXMgbm90IGhhdmUgZm9jdXNcbiAgdmFyIGRhdGEgPSB2b2lkIDBcblxuICB0cnkge1xuICAgIGRhdGEgPSB3aW5kb3cubG9jYWxTdG9yYWdlICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpXG4gICAgZGF0YSA9IGRhdGEgPyBKU09OLnBhcnNlKGRhdGEpIDoge31cbiAgfSBjYXRjaCAoZSkge1xuICAgIGRhdGEgPSB7fVxuICB9XG5cbiAgcmV0dXJuIGRhdGFcbn1cblxuZnVuY3Rpb24gd3JpdGVMb2NhbFN0b3JhZ2Uoa2V5LCB2YWx1ZSkge1xuICBpZiAoIWRvY3VtZW50Lmhhc0ZvY3VzKCkpIHtcbiAgICAvLyBpZiB0aGUgZG9jdW1lbnQgZG9lcyBub3QgaGF2ZSBmb2N1cyB3aGVuIHRlc3RzIGFyZSBleGVjdXRlZCwgZm9jdXMoKSBtYXlcbiAgICAvLyBub3QgYmUgaGFuZGxlZCBwcm9wZXJseSBhbmQgZXZlbnRzIG1heSBub3QgYmUgZGlzcGF0Y2hlZCBpbW1lZGlhdGVseS5cbiAgICAvLyBUaGlzIGNhbiBoYXBwZW4gd2hlbiBhIGRvY3VtZW50IGlzIHJlbG9hZGVkIHdoaWxlIERldmVsb3BlciBUb29scyBoYXZlIGZvY3VzLlxuICAgIHRyeSB7XG4gICAgICB3aW5kb3cubG9jYWxTdG9yYWdlICYmIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gaWdub3JlXG4gICAgfVxuXG4gICAgcmV0dXJuXG4gIH1cblxuICB0cnkge1xuICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UgJiZcbiAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSlcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIGlnbm9yZVxuICB9XG59XG5cbnZhciB1c2VyQWdlbnQgPVxuICAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpIHx8ICcnXG52YXIgY2FjaGVLZXkgPSAnYWxseS1zdXBwb3J0cy1jYWNoZSdcbnZhciBjYWNoZSA9IHJlYWRMb2NhbFN0b3JhZ2UoY2FjaGVLZXkpXG5cbi8vIHVwZGF0ZSB0aGUgY2FjaGUgaWYgYWxseSBvciB0aGUgdXNlciBhZ2VudCBjaGFuZ2VkIChuZXdlciB2ZXJzaW9uLCBldGMpXG5pZiAoY2FjaGUudXNlckFnZW50ICE9PSB1c2VyQWdlbnQgfHwgY2FjaGUudmVyc2lvbiAhPT0gdmVyc2lvbiQxKSB7XG4gIGNhY2hlID0ge31cbn1cblxuY2FjaGUudXNlckFnZW50ID0gdXNlckFnZW50XG5jYWNoZS52ZXJzaW9uID0gdmVyc2lvbiQxXG5cbnZhciBjYWNoZSQxID0ge1xuICBnZXQ6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICByZXR1cm4gY2FjaGVcbiAgfSxcbiAgc2V0OiBmdW5jdGlvbiBzZXQodmFsdWVzKSB7XG4gICAgT2JqZWN0LmtleXModmFsdWVzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIGNhY2hlW2tleV0gPSB2YWx1ZXNba2V5XVxuICAgIH0pXG5cbiAgICBjYWNoZS50aW1lID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4gICAgd3JpdGVMb2NhbFN0b3JhZ2UoY2FjaGVLZXksIGNhY2hlKVxuICB9LFxufVxuXG5mdW5jdGlvbiBjc3NTaGFkb3dQaWVyY2luZ0RlZXBDb21iaW5hdG9yKCkge1xuICB2YXIgY29tYmluYXRvciA9IHZvaWQgMFxuXG4gIC8vIHNlZSBodHRwczovL2Rldi53My5vcmcvY3Nzd2cvY3NzLXNjb3BpbmctMS8jZGVlcC1jb21iaW5hdG9yXG4gIC8vIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMTc1NzJcbiAgLy8gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTQ0NjA1MVxuICB0cnkge1xuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2h0bWwgPj4+IDpmaXJzdC1jaGlsZCcpXG4gICAgY29tYmluYXRvciA9ICc+Pj4nXG4gIH0gY2F0Y2ggKG5vQXJyb3dBcnJvd0Fycm93KSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIG9sZCBzeW50YXggc3VwcG9ydGVkIGF0IGxlYXN0IHVwIHRvIENocm9tZSA0MVxuICAgICAgLy8gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTQ0NjA1MVxuICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaHRtbCAvZGVlcC8gOmZpcnN0LWNoaWxkJylcbiAgICAgIGNvbWJpbmF0b3IgPSAnL2RlZXAvJ1xuICAgIH0gY2F0Y2ggKG5vRGVlcCkge1xuICAgICAgY29tYmluYXRvciA9ICcnXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbWJpbmF0b3Jcbn1cblxudmFyIGdpZiA9XG4gICdkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUlBQUFBQUFBUC8vL3lINUJBRUFBQUFBTEFBQUFBQUJBQUVBQUFJQlJBQTcnXG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci11c2VtYXBcbnZhciBmb2N1c0FyZWFJbWdUYWJpbmRleCA9IHtcbiAgZWxlbWVudDogJ2RpdicsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAnPG1hcCBuYW1lPVwiaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIj4nICtcbiAgICAgICc8YXJlYSBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nICtcbiAgICAgICc8aW1nIHVzZW1hcD1cIiNpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiIHRhYmluZGV4PVwiLTFcIiBhbHQ9XCJcIiBzcmM9XCInICtcbiAgICAgIGdpZiArXG4gICAgICAnXCI+J1xuXG4gICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignYXJlYScpXG4gIH0sXG59XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci11c2VtYXBcbnZhciBmb2N1c0FyZWFUYWJpbmRleCA9IHtcbiAgZWxlbWVudDogJ2RpdicsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAnPG1hcCBuYW1lPVwiaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIj4nICtcbiAgICAgICc8YXJlYSBocmVmPVwiI3ZvaWRcIiB0YWJpbmRleD1cIi0xXCIgc2hhcGU9XCJyZWN0XCIgY29vcmRzPVwiNjMsMTksMTQ0LDQ1XCI+PC9tYXA+JyArXG4gICAgICAnPGltZyB1c2VtYXA9XCIjaW1hZ2UtbWFwLXRhYmluZGV4LXRlc3RcIiBhbHQ9XCJcIiBzcmM9XCInICtcbiAgICAgIGdpZiArXG4gICAgICAnXCI+J1xuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH0sXG4gIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gICAgaWYgKHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgICAvLyBmaXhlcyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzM1XG4gICAgICAvLyBGaXJlZm94IGxvYWRzIHRoZSBEYXRhVVJJIGFzeW5jaHJvbm91c2x5LCBjYXVzaW5nIGEgZmFsc2UtbmVnYXRpdmVcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgdmFyIGZvY3VzID0gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdhcmVhJylcbiAgICBmb2N1cy5mb2N1cygpXG4gICAgcmV0dXJuIF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmb2N1c1xuICB9LFxufVxuXG4vLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG52YXIgZm9jdXNBcmVhV2l0aG91dEhyZWYgPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgJzxtYXAgbmFtZT1cImltYWdlLW1hcC1hcmVhLWhyZWYtdGVzdFwiPicgK1xuICAgICAgJzxhcmVhIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicgK1xuICAgICAgJzxpbWcgdXNlbWFwPVwiI2ltYWdlLW1hcC1hcmVhLWhyZWYtdGVzdFwiIGFsdD1cIlwiIHNyYz1cIicgK1xuICAgICAgZ2lmICtcbiAgICAgICdcIj4nXG5cbiAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdhcmVhJylcbiAgfSxcbiAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICBpZiAocGxhdGZvcm0uaXMuR0VDS08pIHtcbiAgICAgIC8vIGZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMzVcbiAgICAgIC8vIEZpcmVmb3ggbG9hZHMgdGhlIERhdGFVUkkgYXN5bmNocm9ub3VzbHksIGNhdXNpbmcgYSBmYWxzZS1uZWdhdGl2ZVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzVGFyZ2V0XG4gIH0sXG59XG5cbnZhciBmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzID0ge1xuICBuYW1lOiAnY2FuLWZvY3VzLWF1ZGlvLXdpdGhvdXQtY29udHJvbHMnLFxuICBlbGVtZW50OiAnYXVkaW8nLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGludmFsaWQgbWVkaWEgZmlsZSBjYW4gdHJpZ2dlciB3YXJuaW5nIGluIGNvbnNvbGUsIGRhdGEtdXJpIHRvIHByZXZlbnQgSFRUUCByZXF1ZXN0XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnc3JjJywgZ2lmKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIElFOSBtYXkgdGhyb3cgXCJFcnJvcjogTm90IGltcGxlbWVudGVkXCJcbiAgICB9XG4gIH0sXG59XG5cbnZhciBpbnZhbGlkR2lmID1cbiAgJ2RhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQUFBQUFQLy8vWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWidcblxuLy8gTk9URTogaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8zNVxuLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2ltZyNhdHRyLXVzZW1hcFxudmFyIGZvY3VzQnJva2VuSW1hZ2VNYXAgPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgJzxtYXAgbmFtZT1cImJyb2tlbi1pbWFnZS1tYXAtdGVzdFwiPjxhcmVhIGhyZWY9XCIjdm9pZFwiIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicgK1xuICAgICAgJzxpbWcgdXNlbWFwPVwiI2Jyb2tlbi1pbWFnZS1tYXAtdGVzdFwiIGFsdD1cIlwiIHNyYz1cIicgK1xuICAgICAgaW52YWxpZEdpZiArXG4gICAgICAnXCI+J1xuXG4gICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcignYXJlYScpXG4gIH0sXG59XG5cbi8vIENoaWxkcmVuIG9mIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIGRpc3BsYXk6ZmxleCBhcmUgZm9jdXNhYmxlIGluIElFMTAtMTFcbnZhciBmb2N1c0NoaWxkcmVuT2ZGb2N1c2FibGVGbGV4Ym94ID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpXG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXG4gICAgICAnc3R5bGUnLFxuICAgICAgJ2Rpc3BsYXk6IC13ZWJraXQtZmxleDsgZGlzcGxheTogLW1zLWZsZXhib3g7IGRpc3BsYXk6IGZsZXg7J1xuICAgIClcbiAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPmhlbGxvPC9zcGFuPidcbiAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdzcGFuJylcbiAgfSxcbn1cblxuLy8gZmllbGRzZXRbdGFiaW5kZXg9MF1bZGlzYWJsZWRdIHNob3VsZCBub3QgYmUgZm9jdXNhYmxlLCBidXQgQmxpbmsgYW5kIFdlYktpdCBkaXNhZ3JlZVxuLy8gQHNwZWNpZmljYXRpb24gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2Rpc2FibGVkLWVsZW1lbnRzLmh0bWwjY29uY2VwdC1lbGVtZW50LWRpc2FibGVkXG4vLyBAYnJvd3Nlci1pc3N1ZSBDaHJvbWl1bSBodHRwczovL2NyYnVnLmNvbS80NTM4NDdcbi8vIEBicm93c2VyLWlzc3VlIFdlYktpdCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxMDg2XG52YXIgZm9jdXNGaWVsZHNldERpc2FibGVkID0ge1xuICBlbGVtZW50OiAnZmllbGRzZXQnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgMClcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCAnZGlzYWJsZWQnKVxuICB9LFxufVxuXG52YXIgZm9jdXNGaWVsZHNldCA9IHtcbiAgZWxlbWVudDogJ2ZpZWxkc2V0JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJzxsZWdlbmQ+bGVnZW5kPC9sZWdlbmQ+PHA+Y29udGVudDwvcD4nXG4gIH0sXG59XG5cbi8vIGVsZW1lbnRzIHdpdGggZGlzcGxheTpmbGV4IGFyZSBmb2N1c2FibGUgaW4gSUUxMC0xMVxudmFyIGZvY3VzRmxleGJveENvbnRhaW5lciA9IHtcbiAgZWxlbWVudDogJ3NwYW4nLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXG4gICAgICAnc3R5bGUnLFxuICAgICAgJ2Rpc3BsYXk6IC13ZWJraXQtZmxleDsgZGlzcGxheTogLW1zLWZsZXhib3g7IGRpc3BsYXk6IGZsZXg7J1xuICAgIClcbiAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPmhlbGxvPC9zcGFuPidcbiAgfSxcbn1cblxuLy8gZm9ybVt0YWJpbmRleD0wXVtkaXNhYmxlZF0gc2hvdWxkIGJlIGZvY3VzYWJsZSBhcyB0aGVcbi8vIHNwZWNpZmljYXRpb24gZG9lc24ndCBrbm93IHRoZSBkaXNhYmxlZCBhdHRyaWJ1dGUgb24gdGhlIGZvcm0gZWxlbWVudFxuLy8gQHNwZWNpZmljYXRpb24gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2Zvcm1zLmh0bWwjdGhlLWZvcm0tZWxlbWVudFxudmFyIGZvY3VzRm9ybURpc2FibGVkID0ge1xuICBlbGVtZW50OiAnZm9ybScsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAwKVxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsICdkaXNhYmxlZCcpXG4gIH0sXG59XG5cbi8vIE5PVEU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMzVcbi8vIGZpeGVzIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjBcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci1pc21hcFxudmFyIGZvY3VzSW1nSXNtYXAgPSB7XG4gIGVsZW1lbnQ6ICdhJyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaHJlZiA9ICcjdm9pZCdcbiAgICBlbGVtZW50LmlubmVySFRNTCA9ICc8aW1nIGlzbWFwIHNyYz1cIicgKyBnaWYgKyAnXCIgYWx0PVwiXCI+J1xuICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpXG4gIH0sXG59XG5cbi8vIE5PVEU6IGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMzVcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci11c2VtYXBcbnZhciBmb2N1c0ltZ1VzZW1hcFRhYmluZGV4ID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICc8bWFwIG5hbWU9XCJpbWFnZS1tYXAtdGFiaW5kZXgtdGVzdFwiPjxhcmVhIGhyZWY9XCIjdm9pZFwiIHNoYXBlPVwicmVjdFwiIGNvb3Jkcz1cIjYzLDE5LDE0NCw0NVwiPjwvbWFwPicgK1xuICAgICAgJzxpbWcgdXNlbWFwPVwiI2ltYWdlLW1hcC10YWJpbmRleC10ZXN0XCIgdGFiaW5kZXg9XCItMVwiIGFsdD1cIlwiICcgK1xuICAgICAgJ3NyYz1cIicgK1xuICAgICAgZ2lmICtcbiAgICAgICdcIj4nXG5cbiAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbWcnKVxuICB9LFxufVxuXG52YXIgZm9jdXNJbkhpZGRlbklmcmFtZSA9IHtcbiAgZWxlbWVudDogZnVuY3Rpb24gZWxlbWVudCh3cmFwcGVyLCBfZG9jdW1lbnQpIHtcbiAgICB2YXIgaWZyYW1lID0gX2RvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpXG5cbiAgICAvLyBpZnJhbWUgbXVzdCBiZSBwYXJ0IG9mIHRoZSBET00gYmVmb3JlIGFjY2Vzc2luZyB0aGUgY29udGVudFdpbmRvdyBpcyBwb3NzaWJsZVxuICAgIHdyYXBwZXIuYXBwZW5kQ2hpbGQoaWZyYW1lKVxuXG4gICAgLy8gY3JlYXRlIHRoZSBpZnJhbWUncyBkZWZhdWx0IGRvY3VtZW50ICg8aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4pXG4gICAgdmFyIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnRcbiAgICBpZnJhbWVEb2N1bWVudC5vcGVuKClcbiAgICBpZnJhbWVEb2N1bWVudC5jbG9zZSgpXG4gICAgcmV0dXJuIGlmcmFtZVxuICB9LFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShpZnJhbWUpIHtcbiAgICBpZnJhbWUuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nXG5cbiAgICB2YXIgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudFxuICAgIHZhciBpbnB1dCA9IGlmcmFtZURvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0JylcbiAgICBpZnJhbWVEb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlucHV0KVxuICAgIHJldHVybiBpbnB1dFxuICB9LFxuICB2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoaWZyYW1lKSB7XG4gICAgdmFyIGlmcmFtZURvY3VtZW50ID0gaWZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnRcbiAgICB2YXIgZm9jdXMgPSBpZnJhbWVEb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpXG4gICAgcmV0dXJuIGlmcmFtZURvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzXG4gIH0sXG59XG5cbnZhciByZXN1bHQgPSAhcGxhdGZvcm0uaXMuV0VCS0lUXG5cbmZ1bmN0aW9uIGZvY3VzSW5aZXJvRGltZW5zaW9uT2JqZWN0KCkge1xuICByZXR1cm4gcmVzdWx0XG59XG5cbi8vIEZpcmVmb3ggYWxsb3dzICphbnkqIHZhbHVlIGFuZCB0cmVhdHMgaW52YWxpZCB2YWx1ZXMgbGlrZSB0YWJpbmRleD1cIi0xXCJcbi8vIEBicm93c2VyLWlzc3VlIEdlY2tvIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMjgwNTRcbnZhciBmb2N1c0ludmFsaWRUYWJpbmRleCA9IHtcbiAgZWxlbWVudDogJ2RpdicsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnaW52YWxpZC12YWx1ZScpXG4gIH0sXG59XG5cbnZhciBmb2N1c0xhYmVsVGFiaW5kZXggPSB7XG4gIGVsZW1lbnQ6ICdsYWJlbCcsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnLTEnKVxuICB9LFxuICB2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoZWxlbWVudCwgZm9jdXNUYXJnZXQsIF9kb2N1bWVudCkge1xuICAgIC8vIGZvcmNlIGxheW91dCBpbiBDaHJvbWUgNDksIG90aGVyd2lzZSB0aGUgZWxlbWVudCB3b24ndCBiZSBmb2N1c2FibGVcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuICAgIHZhciB2YXJpYWJsZVRvUHJldmVudERlYWRDb2RlRWxpbWluYXRpb24gPSBlbGVtZW50Lm9mZnNldEhlaWdodFxuICAgIC8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi9cbiAgICBlbGVtZW50LmZvY3VzKClcbiAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnRcbiAgfSxcbn1cblxudmFyIHN2ZyA9XG4gICdkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0YicgK1xuICAnRzV6T25oc2FXNXJQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUwzaHNhVzVySWlCcFpEMGljM1puSWo0OGRHVjRkQ0I0UFNJeE1DSWdlVDBpTWpBaUlHbGtQU0onICtcbiAgJ3pkbWN0YkdsdWF5MTBaWGgwSWo1MFpYaDBQQzkwWlhoMFBqd3ZjM1puUGc9PSdcblxuLy8gTm90ZTogSUUxMCBvbiBCcm93c2VyU3RhY2sgZG9lcyBub3QgbGlrZSB0aGlzIHRlc3RcblxudmFyIGZvY3VzT2JqZWN0U3ZnSGlkZGVuID0ge1xuICBlbGVtZW50OiAnb2JqZWN0JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2ltYWdlL3N2Zyt4bWwnKVxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhJywgc3ZnKVxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCd3aWR0aCcsICcyMDAnKVxuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdoZWlnaHQnLCAnNTAnKVxuICAgIGVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nXG4gIH0sXG59XG5cbi8vIE5vdGU6IElFMTAgb24gQnJvd3NlclN0YWNrIGRvZXMgbm90IGxpa2UgdGhpcyB0ZXN0XG5cbnZhciBmb2N1c09iamVjdFN2ZyA9IHtcbiAgbmFtZTogJ2Nhbi1mb2N1cy1vYmplY3Qtc3ZnJyxcbiAgZWxlbWVudDogJ29iamVjdCcsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgndHlwZScsICdpbWFnZS9zdmcreG1sJylcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnZGF0YScsIHN2ZylcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnd2lkdGgnLCAnMjAwJylcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgJzUwJylcbiAgfSxcbiAgdmFsaWRhdGU6IGZ1bmN0aW9uIHZhbGlkYXRlKGVsZW1lbnQsIGZvY3VzVGFyZ2V0LCBfZG9jdW1lbnQpIHtcbiAgICBpZiAocGxhdGZvcm0uaXMuR0VDS08pIHtcbiAgICAgIC8vIEZpcmVmb3ggc2VlbXMgdG8gYmUgaGFuZGxpbmcgdGhlIG9iamVjdCBjcmVhdGlvbiBhc3luY2hyb25vdXNseSBhbmQgdGhlcmVieSBwcm9kdWNlcyBhIGZhbHNlIG5lZ2F0aXZlIHRlc3QgcmVzdWx0LlxuICAgICAgLy8gQmVjYXVzZSB3ZSBrbm93IEZpcmVmb3ggaXMgYWJsZSB0byBmb2N1cyBvYmplY3QgZWxlbWVudHMgcmVmZXJlbmNpbmcgU1ZHcywgd2Ugc2ltcGx5IGNoZWF0IGJ5IHNuaWZmaW5nIHRoZSB1c2VyIGFnZW50IHN0cmluZ1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGVsZW1lbnRcbiAgfSxcbn1cblxuLy8gRXZlcnkgRW52aXJvbm1lbnQgZXhjZXB0IElFOSBjb25zaWRlcnMgU1dGIG9iamVjdHMgZm9jdXNhYmxlXG52YXIgcmVzdWx0JDEgPSAhcGxhdGZvcm0uaXMuSUU5XG5cbmZ1bmN0aW9uIGZvY3VzT2JqZWN0U3dmKCkge1xuICByZXR1cm4gcmVzdWx0JDFcbn1cblxudmFyIGZvY3VzUmVkaXJlY3RJbWdVc2VtYXAgPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgJzxtYXAgbmFtZT1cImZvY3VzLXJlZGlyZWN0LWltZy11c2VtYXBcIj48YXJlYSBocmVmPVwiI3ZvaWRcIiBzaGFwZT1cInJlY3RcIiBjb29yZHM9XCI2MywxOSwxNDQsNDVcIj48L21hcD4nICtcbiAgICAgICc8aW1nIHVzZW1hcD1cIiNmb2N1cy1yZWRpcmVjdC1pbWctdXNlbWFwXCIgYWx0PVwiXCIgJyArXG4gICAgICAnc3JjPVwiJyArXG4gICAgICBnaWYgK1xuICAgICAgJ1wiPidcblxuICAgIC8vIGZvY3VzIHRoZSA8aW1nPiwgbm90IHRoZSA8ZGl2PlxuICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ltZycpXG4gIH0sXG4gIHZhbGlkYXRlOiBmdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gICAgdmFyIHRhcmdldCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignYXJlYScpXG4gICAgcmV0dXJuIF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0YXJnZXRcbiAgfSxcbn1cblxuLy8gc2VlIGh0dHBzOi8vanNiaW4uY29tL25lbmlyaXNhZ2UvZWRpdD9odG1sLGpzLGNvbnNvbGUsb3V0cHV0XG5cbnZhciBmb2N1c1JlZGlyZWN0TGVnZW5kID0ge1xuICBlbGVtZW50OiAnZmllbGRzZXQnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5pbm5lckhUTUwgPVxuICAgICAgJzxsZWdlbmQ+bGVnZW5kPC9sZWdlbmQ+PGlucHV0IHRhYmluZGV4PVwiLTFcIj48aW5wdXQgdGFiaW5kZXg9XCIwXCI+J1xuICAgIC8vIHRha2UgY2FyZSBvZiBmb2N1cyBpbiB2YWxpZGF0ZSgpO1xuICAgIHJldHVybiBmYWxzZVxuICB9LFxuICB2YWxpZGF0ZTogZnVuY3Rpb24gdmFsaWRhdGUoZWxlbWVudCwgZm9jdXNUYXJnZXQsIF9kb2N1bWVudCkge1xuICAgIHZhciBmb2N1c2FibGUgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W3RhYmluZGV4PVwiLTFcIl0nKVxuICAgIHZhciB0YWJiYWJsZSA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbdGFiaW5kZXg9XCIwXCJdJylcblxuICAgIC8vIEZpcmVmb3ggcmVxdWlyZXMgdGhpcyB0ZXN0IHRvIGZvY3VzIHRoZSA8ZmllbGRzZXQ+IGZpcnN0LCB3aGlsZSB0aGlzIGlzIG5vdCBuZWNlc3NhcnkgaW5cbiAgICAvLyBodHRwczovL2pzYmluLmNvbS9uZW5pcmlzYWdlL2VkaXQ/aHRtbCxqcyxjb25zb2xlLG91dHB1dFxuICAgIGVsZW1lbnQuZm9jdXMoKVxuXG4gICAgZWxlbWVudC5xdWVyeVNlbGVjdG9yKCdsZWdlbmQnKS5mb2N1cygpXG4gICAgcmV0dXJuIChcbiAgICAgIChfZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZm9jdXNhYmxlICYmICdmb2N1c2FibGUnKSB8fFxuICAgICAgKF9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0YWJiYWJsZSAmJiAndGFiYmFibGUnKSB8fFxuICAgICAgJydcbiAgICApXG4gIH0sXG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjFcbnZhciBmb2N1c1Njcm9sbEJvZHkgPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ3dpZHRoOiAxMDBweDsgaGVpZ2h0OiA1MHB4OyBvdmVyZmxvdzogYXV0bzsnKVxuICAgIGVsZW1lbnQuaW5uZXJIVE1MID1cbiAgICAgICc8ZGl2IHN0eWxlPVwid2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDQwcHg7XCI+c2Nyb2xsYWJsZSBjb250ZW50PC9kaXY+J1xuICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdicpXG4gIH0sXG59XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tZWRpYWxpemUvYWxseS5qcy9pc3N1ZXMvMjFcbnZhciBmb2N1c1Njcm9sbENvbnRhaW5lcldpdGhvdXRPdmVyZmxvdyA9IHtcbiAgZWxlbWVudDogJ2RpdicsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDUwcHg7JylcbiAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAnPGRpdiBzdHlsZT1cIndpZHRoOiA1MDBweDsgaGVpZ2h0OiA0MHB4O1wiPnNjcm9sbGFibGUgY29udGVudDwvZGl2PidcbiAgfSxcbn1cblxuLy8gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8yMVxudmFyIGZvY3VzU2Nyb2xsQ29udGFpbmVyID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICd3aWR0aDogMTAwcHg7IGhlaWdodDogNTBweDsgb3ZlcmZsb3c6IGF1dG87JylcbiAgICBlbGVtZW50LmlubmVySFRNTCA9XG4gICAgICAnPGRpdiBzdHlsZT1cIndpZHRoOiA1MDBweDsgaGVpZ2h0OiA0MHB4O1wiPnNjcm9sbGFibGUgY29udGVudDwvZGl2PidcbiAgfSxcbn1cblxudmFyIGZvY3VzU3VtbWFyeSA9IHtcbiAgZWxlbWVudDogJ2RldGFpbHMnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5pbm5lckhUTUwgPSAnPHN1bW1hcnk+Zm9vPC9zdW1tYXJ5PjxwPmNvbnRlbnQ8L3A+J1xuICAgIHJldHVybiBlbGVtZW50LmZpcnN0RWxlbWVudENoaWxkXG4gIH0sXG59XG5cbmZ1bmN0aW9uIG1ha2VGb2N1c2FibGVGb3JlaWduT2JqZWN0KCkge1xuICAvLyBDb25zdHJ1Y3RzIDxmb3JlaWduT2JqZWN0IHdpZHRoPVwiMzBcIiBoZWlnaHQ9XCIzMFwiPjxpbnB1dCB0eXBlPVwidGV4dFwiLz48L2ZvcmVpZ25PYmplY3Q+XG4gIC8vIHdpdGhvdXQgcmFpc2luZyBhIFRydXN0ZWQgVHlwZXMgdmlvbGF0aW9uXG4gIHZhciBmb3JlaWduT2JqZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFxuICAgICdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycsXG4gICAgJ2ZvcmVpZ25PYmplY3QnXG4gIClcbiAgZm9yZWlnbk9iamVjdC53aWR0aC5iYXNlVmFsLnZhbHVlID0gMzBcbiAgZm9yZWlnbk9iamVjdC5oZWlnaHQuYmFzZVZhbC52YWx1ZSA9IDMwXG4gIGZvcmVpZ25PYmplY3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSlcbiAgZm9yZWlnbk9iamVjdC5sYXN0Q2hpbGQudHlwZSA9ICd0ZXh0J1xuXG4gIHJldHVybiBmb3JlaWduT2JqZWN0XG59XG5cbmZ1bmN0aW9uIGZvY3VzU3ZnRm9yZWlnbk9iamVjdEhhY2soZWxlbWVudCkge1xuICAvLyBFZGdlMTMsIEVkZ2UxNDogZm9yZWlnbk9iamVjdCBmb2N1cyBoYWNrXG4gIC8vIGh0dHBzOi8vanNiaW4uY29tL2t1bmVoaW51Z2kvZWRpdD9odG1sLGpzLG91dHB1dFxuICAvLyBodHRwczovL2pzYmluLmNvbS9mYWphZ2kvMy9lZGl0P2h0bWwsanMsb3V0cHV0XG4gIHZhciBpc1N2Z0VsZW1lbnQgPVxuICAgIGVsZW1lbnQub3duZXJTVkdFbGVtZW50IHx8IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3N2ZydcbiAgaWYgKCFpc1N2Z0VsZW1lbnQpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8vIGluamVjdCBhbmQgZm9jdXMgYW4gPGlucHV0PiBlbGVtZW50IGludG8gdGhlIFNWRyBlbGVtZW50IHRvIHJlY2VpdmUgZm9jdXNcbiAgdmFyIGZvcmVpZ25PYmplY3QgPSBtYWtlRm9jdXNhYmxlRm9yZWlnbk9iamVjdCgpXG4gIGVsZW1lbnQuYXBwZW5kQ2hpbGQoZm9yZWlnbk9iamVjdClcbiAgdmFyIGlucHV0ID0gZm9yZWlnbk9iamVjdC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpXG4gIGlucHV0LmZvY3VzKClcblxuICAvLyB1cG9uIGRpc2FibGluZyB0aGUgYWN0aXZlRWxlbWVudCwgSUUgYW5kIEVkZ2VcbiAgLy8gd2lsbCBub3Qgc2hpZnQgZm9jdXMgdG8gPGJvZHk+IGxpa2UgYWxsIHRoZSBvdGhlclxuICAvLyBicm93c2VycywgYnV0IGluc3RlYWQgZmluZCB0aGUgZmlyc3QgZm9jdXNhYmxlXG4gIC8vIGFuY2VzdG9yIGFuZCBzaGlmdCBmb2N1cyB0byB0aGF0XG4gIGlucHV0LmRpc2FibGVkID0gdHJ1ZVxuXG4gIC8vIGNsZWFuIHVwXG4gIGVsZW1lbnQucmVtb3ZlQ2hpbGQoZm9yZWlnbk9iamVjdClcbiAgcmV0dXJuIHRydWVcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGUoZWxlbWVudCkge1xuICByZXR1cm4gKFxuICAgICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj4nICtcbiAgICBlbGVtZW50ICtcbiAgICAnPC9zdmc+J1xuICApXG59XG5cbmZ1bmN0aW9uIGZvY3VzKGVsZW1lbnQpIHtcbiAgaWYgKGVsZW1lbnQuZm9jdXMpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIHRyeSB7XG4gICAgSFRNTEVsZW1lbnQucHJvdG90eXBlLmZvY3VzLmNhbGwoZWxlbWVudClcbiAgfSBjYXRjaCAoZSkge1xuICAgIGZvY3VzU3ZnRm9yZWlnbk9iamVjdEhhY2soZWxlbWVudClcbiAgfVxufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZShlbGVtZW50LCBmb2N1c1RhcmdldCwgX2RvY3VtZW50KSB7XG4gIGZvY3VzKGZvY3VzVGFyZ2V0KVxuICByZXR1cm4gX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGZvY3VzVGFyZ2V0XG59XG5cbnZhciBmb2N1c1N2Z0ZvY3VzYWJsZUF0dHJpYnV0ZSA9IHtcbiAgZWxlbWVudDogJ2RpdicsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LmlubmVySFRNTCA9IGdlbmVyYXRlKCc8dGV4dCBmb2N1c2FibGU9XCJ0cnVlXCI+YTwvdGV4dD4nKVxuICAgIHJldHVybiBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHQnKVxuICB9LFxuICB2YWxpZGF0ZTogdmFsaWRhdGUsXG59XG5cbnZhciBmb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoJzx0ZXh0IHRhYmluZGV4PVwiMFwiPmE8L3RleHQ+JylcbiAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCd0ZXh0JylcbiAgfSxcbiAgdmFsaWRhdGU6IHZhbGlkYXRlLFxufVxuXG52YXIgZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlID0ge1xuICBlbGVtZW50OiAnZGl2JyxcbiAgbXV0YXRlOiBmdW5jdGlvbiBtdXRhdGUoZWxlbWVudCkge1xuICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gZ2VuZXJhdGUoJzx0ZXh0IHRhYmluZGV4PVwiLTFcIj5hPC90ZXh0PicpXG4gICAgcmV0dXJuIGVsZW1lbnQucXVlcnlTZWxlY3RvcigndGV4dCcpXG4gIH0sXG4gIHZhbGlkYXRlOiB2YWxpZGF0ZSxcbn1cblxudmFyIGZvY3VzU3ZnVXNlVGFiaW5kZXggPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZW5lcmF0ZShcbiAgICAgIFtcbiAgICAgICAgJzxnIGlkPVwiYWxseS10ZXN0LXRhcmdldFwiPjxhIHhsaW5rOmhyZWY9XCIjdm9pZFwiPjx0ZXh0Pmxpbms8L3RleHQ+PC9hPjwvZz4nLFxuICAgICAgICAnPHVzZSB4bGluazpocmVmPVwiI2FsbHktdGVzdC10YXJnZXRcIiB4PVwiMFwiIHk9XCIwXCIgdGFiaW5kZXg9XCItMVwiIC8+JyxcbiAgICAgIF0uam9pbignJylcbiAgICApXG5cbiAgICByZXR1cm4gZWxlbWVudC5xdWVyeVNlbGVjdG9yKCd1c2UnKVxuICB9LFxuICB2YWxpZGF0ZTogdmFsaWRhdGUsXG59XG5cbnZhciBmb2N1c1N2Z0ZvcmVpZ25vYmplY3RUYWJpbmRleCA9IHtcbiAgZWxlbWVudDogJ2RpdicsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICBlbGVtZW50LmlubmVySFRNTCA9IGdlbmVyYXRlKFxuICAgICAgJzxmb3JlaWduT2JqZWN0IHRhYmluZGV4PVwiLTFcIj48aW5wdXQgdHlwZT1cInRleHRcIiAvPjwvZm9yZWlnbk9iamVjdD4nXG4gICAgKVxuICAgIC8vIFNhZmFyaSA4J3MgcXVlcnlTZWxlY3RvcigpIGNhbid0IGlkZW50aWZ5IGZvcmVpZ25PYmplY3QsIGJ1dCBnZXRFbGVtZW50c0J5VGFnTmFtZSgpIGNhblxuICAgIHJldHVybiAoXG4gICAgICBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2ZvcmVpZ25PYmplY3QnKSB8fFxuICAgICAgZWxlbWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZm9yZWlnbk9iamVjdCcpWzBdXG4gICAgKVxuICB9LFxuICB2YWxpZGF0ZTogdmFsaWRhdGUsXG59XG5cbi8vIEZpcmVmb3ggc2VlbXMgdG8gYmUgaGFuZGxpbmcgdGhlIFNWRy1kb2N1bWVudC1pbi1pZnJhbWUgY3JlYXRpb24gYXN5bmNocm9ub3VzbHlcbi8vIGFuZCB0aGVyZWJ5IHByb2R1Y2VzIGEgZmFsc2UgbmVnYXRpdmUgdGVzdCByZXN1bHQuIFRodXMgdGhlIHRlc3QgaXMgcG9pbnRsZXNzXG4vLyBhbmQgd2UgcmVzb3J0IHRvIFVBIHNuaWZmaW5nIG9uY2UgYWdhaW4uXG4vLyBzZWUgaHR0cDovL2pzYmluLmNvbS92dW5hZG9ob2tvLzEvZWRpdD9qcyxjb25zb2xlLG91dHB1dFxuXG52YXIgcmVzdWx0JDIgPSBCb29sZWFuKFxuICBwbGF0Zm9ybS5pcy5HRUNLTyAmJlxuICAgIHR5cGVvZiBTVkdFbGVtZW50ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIFNWR0VsZW1lbnQucHJvdG90eXBlLmZvY3VzXG4pXG5cbmZ1bmN0aW9uIGZvY3VzU3ZnSW5JZnJhbWUoKSB7XG4gIHJldHVybiByZXN1bHQkMlxufVxuXG52YXIgZm9jdXNTdmcgPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5pbm5lckhUTUwgPSBnZW5lcmF0ZSgnJylcbiAgICByZXR1cm4gZWxlbWVudC5maXJzdENoaWxkXG4gIH0sXG4gIHZhbGlkYXRlOiB2YWxpZGF0ZSxcbn1cblxuLy8gRmlyZWZveCBhbGxvd3MgKmFueSogdmFsdWUgYW5kIHRyZWF0cyBpbnZhbGlkIHZhbHVlcyBsaWtlIHRhYmluZGV4PVwiLTFcIlxuLy8gQGJyb3dzZXItaXNzdWUgR2Vja28gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODA1NFxudmFyIGZvY3VzVGFiaW5kZXhUcmFpbGluZ0NoYXJhY3RlcnMgPSB7XG4gIGVsZW1lbnQ6ICdkaXYnLFxuICBtdXRhdGU6IGZ1bmN0aW9uIG11dGF0ZShlbGVtZW50KSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzN4JylcbiAgfSxcbn1cblxudmFyIGZvY3VzVGFibGUgPSB7XG4gIGVsZW1lbnQ6ICd0YWJsZScsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQsIHdyYXBwZXIsIF9kb2N1bWVudCkge1xuICAgIC8vIElFOSBoYXMgYSBwcm9ibGVtIHJlcGxhY2luZyBUQk9EWSBjb250ZW50cyB3aXRoIGlubmVySFRNTC5cbiAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvODA5NzA1NS81MTUxMjRcbiAgICAvLyBlbGVtZW50LmlubmVySFRNTCA9ICc8dHI+PHRkPmNlbGw8L3RkPjwvdHI+JztcbiAgICB2YXIgZnJhZ21lbnQgPSBfZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpXG4gICAgZnJhZ21lbnQuaW5uZXJIVE1MID0gJzx0cj48dGQ+Y2VsbDwvdGQ+PC90cj4nXG4gICAgZWxlbWVudC5hcHBlbmRDaGlsZChmcmFnbWVudClcbiAgfSxcbn1cblxudmFyIGZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHMgPSB7XG4gIGVsZW1lbnQ6ICd2aWRlbycsXG4gIG11dGF0ZTogZnVuY3Rpb24gbXV0YXRlKGVsZW1lbnQpIHtcbiAgICB0cnkge1xuICAgICAgLy8gaW52YWxpZCBtZWRpYSBmaWxlIGNhbiB0cmlnZ2VyIHdhcm5pbmcgaW4gY29uc29sZSwgZGF0YS11cmkgdG8gcHJldmVudCBIVFRQIHJlcXVlc3RcbiAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdzcmMnLCBnaWYpXG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gSUU5IG1heSB0aHJvdyBcIkVycm9yOiBOb3QgaW1wbGVtZW50ZWRcIlxuICAgIH1cbiAgfSxcbn1cblxuLy8gaHR0cHM6Ly9qc2Jpbi5jb20vdmFmYWJhLzMvZWRpdD9odG1sLGpzLGNvbnNvbGUsb3V0cHV0XG52YXIgcmVzdWx0JDMgPSBwbGF0Zm9ybS5pcy5HRUNLTyB8fCBwbGF0Zm9ybS5pcy5UUklERU5UIHx8IHBsYXRmb3JtLmlzLkVER0VcblxuZnVuY3Rpb24gdGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvbigpIHtcbiAgcmV0dXJuIHJlc3VsdCQzXG59XG5cbnZhciB0ZXN0Q2FsbGJhY2tzID0ge1xuICBjc3NTaGFkb3dQaWVyY2luZ0RlZXBDb21iaW5hdG9yOiBjc3NTaGFkb3dQaWVyY2luZ0RlZXBDb21iaW5hdG9yLFxuICBmb2N1c0luWmVyb0RpbWVuc2lvbk9iamVjdDogZm9jdXNJblplcm9EaW1lbnNpb25PYmplY3QsXG4gIGZvY3VzT2JqZWN0U3dmOiBmb2N1c09iamVjdFN3ZixcbiAgZm9jdXNTdmdJbklmcmFtZTogZm9jdXNTdmdJbklmcmFtZSxcbiAgdGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvbjogdGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvbixcbn1cblxudmFyIHRlc3REZXNjcmlwdGlvbnMgPSB7XG4gIGZvY3VzQXJlYUltZ1RhYmluZGV4OiBmb2N1c0FyZWFJbWdUYWJpbmRleCxcbiAgZm9jdXNBcmVhVGFiaW5kZXg6IGZvY3VzQXJlYVRhYmluZGV4LFxuICBmb2N1c0FyZWFXaXRob3V0SHJlZjogZm9jdXNBcmVhV2l0aG91dEhyZWYsXG4gIGZvY3VzQXVkaW9XaXRob3V0Q29udHJvbHM6IGZvY3VzQXVkaW9XaXRob3V0Q29udHJvbHMsXG4gIGZvY3VzQnJva2VuSW1hZ2VNYXA6IGZvY3VzQnJva2VuSW1hZ2VNYXAsXG4gIGZvY3VzQ2hpbGRyZW5PZkZvY3VzYWJsZUZsZXhib3g6IGZvY3VzQ2hpbGRyZW5PZkZvY3VzYWJsZUZsZXhib3gsXG4gIGZvY3VzRmllbGRzZXREaXNhYmxlZDogZm9jdXNGaWVsZHNldERpc2FibGVkLFxuICBmb2N1c0ZpZWxkc2V0OiBmb2N1c0ZpZWxkc2V0LFxuICBmb2N1c0ZsZXhib3hDb250YWluZXI6IGZvY3VzRmxleGJveENvbnRhaW5lcixcbiAgZm9jdXNGb3JtRGlzYWJsZWQ6IGZvY3VzRm9ybURpc2FibGVkLFxuICBmb2N1c0ltZ0lzbWFwOiBmb2N1c0ltZ0lzbWFwLFxuICBmb2N1c0ltZ1VzZW1hcFRhYmluZGV4OiBmb2N1c0ltZ1VzZW1hcFRhYmluZGV4LFxuICBmb2N1c0luSGlkZGVuSWZyYW1lOiBmb2N1c0luSGlkZGVuSWZyYW1lLFxuICBmb2N1c0ludmFsaWRUYWJpbmRleDogZm9jdXNJbnZhbGlkVGFiaW5kZXgsXG4gIGZvY3VzTGFiZWxUYWJpbmRleDogZm9jdXNMYWJlbFRhYmluZGV4LFxuICBmb2N1c09iamVjdFN2ZzogZm9jdXNPYmplY3RTdmcsXG4gIGZvY3VzT2JqZWN0U3ZnSGlkZGVuOiBmb2N1c09iamVjdFN2Z0hpZGRlbixcbiAgZm9jdXNSZWRpcmVjdEltZ1VzZW1hcDogZm9jdXNSZWRpcmVjdEltZ1VzZW1hcCxcbiAgZm9jdXNSZWRpcmVjdExlZ2VuZDogZm9jdXNSZWRpcmVjdExlZ2VuZCxcbiAgZm9jdXNTY3JvbGxCb2R5OiBmb2N1c1Njcm9sbEJvZHksXG4gIGZvY3VzU2Nyb2xsQ29udGFpbmVyV2l0aG91dE92ZXJmbG93OiBmb2N1c1Njcm9sbENvbnRhaW5lcldpdGhvdXRPdmVyZmxvdyxcbiAgZm9jdXNTY3JvbGxDb250YWluZXI6IGZvY3VzU2Nyb2xsQ29udGFpbmVyLFxuICBmb2N1c1N1bW1hcnk6IGZvY3VzU3VtbWFyeSxcbiAgZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGU6IGZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlLFxuICBmb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlOiBmb2N1c1N2Z1RhYmluZGV4QXR0cmlidXRlLFxuICBmb2N1c1N2Z05lZ2F0aXZlVGFiaW5kZXhBdHRyaWJ1dGU6IGZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZSxcbiAgZm9jdXNTdmdVc2VUYWJpbmRleDogZm9jdXNTdmdVc2VUYWJpbmRleCxcbiAgZm9jdXNTdmdGb3JlaWdub2JqZWN0VGFiaW5kZXg6IGZvY3VzU3ZnRm9yZWlnbm9iamVjdFRhYmluZGV4LFxuICBmb2N1c1N2ZzogZm9jdXNTdmcsXG4gIGZvY3VzVGFiaW5kZXhUcmFpbGluZ0NoYXJhY3RlcnM6IGZvY3VzVGFiaW5kZXhUcmFpbGluZ0NoYXJhY3RlcnMsXG4gIGZvY3VzVGFibGU6IGZvY3VzVGFibGUsXG4gIGZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHM6IGZvY3VzVmlkZW9XaXRob3V0Q29udHJvbHMsXG59XG5cbmZ1bmN0aW9uIGV4ZWN1dGVUZXN0cygpIHtcbiAgdmFyIHJlc3VsdHMgPSBkZXRlY3RGb2N1cyh0ZXN0RGVzY3JpcHRpb25zKVxuICBPYmplY3Qua2V5cyh0ZXN0Q2FsbGJhY2tzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICByZXN1bHRzW2tleV0gPSB0ZXN0Q2FsbGJhY2tzW2tleV0oKVxuICB9KVxuXG4gIHJldHVybiByZXN1bHRzXG59XG5cbnZhciBzdXBwb3J0c0NhY2hlID0gbnVsbFxuXG5mdW5jdGlvbiBfc3VwcG9ydHMoKSB7XG4gIGlmIChzdXBwb3J0c0NhY2hlKSB7XG4gICAgcmV0dXJuIHN1cHBvcnRzQ2FjaGVcbiAgfVxuXG4gIHN1cHBvcnRzQ2FjaGUgPSBjYWNoZSQxLmdldCgpXG4gIGlmICghc3VwcG9ydHNDYWNoZS50aW1lKSB7XG4gICAgY2FjaGUkMS5zZXQoZXhlY3V0ZVRlc3RzKCkpXG4gICAgc3VwcG9ydHNDYWNoZSA9IGNhY2hlJDEuZ2V0KClcbiAgfVxuXG4gIHJldHVybiBzdXBwb3J0c0NhY2hlXG59XG5cbnZhciBzdXBwb3J0cyA9IHZvaWQgMFxuXG4vLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvaW5mcmFzdHJ1Y3R1cmUuaHRtbCNydWxlcy1mb3ItcGFyc2luZy1pbnRlZ2Vyc1xuLy8gTk9URTogYWxsIGJyb3dzZXJzIGFncmVlIHRvIGFsbG93IHRyYWlsaW5nIHNwYWNlcyBhcyB3ZWxsXG52YXIgdmFsaWRJbnRlZ2VyUGF0dGVybk5vVHJhaWxpbmcgPSAvXlxccyooLXxcXCspP1swLTldK1xccyokL1xudmFyIHZhbGlkSW50ZWdlclBhdHRlcm5XaXRoVHJhaWxpbmcgPSAvXlxccyooLXxcXCspP1swLTldKy4qJC9cblxuZnVuY3Rpb24gaXNWYWxpZFRhYmluZGV4KGNvbnRleHQpIHtcbiAgaWYgKCFzdXBwb3J0cykge1xuICAgIHN1cHBvcnRzID0gX3N1cHBvcnRzKClcbiAgfVxuXG4gIHZhciB2YWxpZEludGVnZXJQYXR0ZXJuID0gc3VwcG9ydHMuZm9jdXNUYWJpbmRleFRyYWlsaW5nQ2hhcmFjdGVyc1xuICAgID8gdmFsaWRJbnRlZ2VyUGF0dGVybldpdGhUcmFpbGluZ1xuICAgIDogdmFsaWRJbnRlZ2VyUGF0dGVybk5vVHJhaWxpbmdcblxuICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgIGxhYmVsOiAnaXMvdmFsaWQtdGFiaW5kZXgnLFxuICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICB9KVxuXG4gIC8vIEVkZ2UgMTQgaGFzIGEgY2FwaXRhbGl6YXRpb24gcHJvYmxlbSBvbiBTVkcgZWxlbWVudHMsXG4gIC8vIHNlZSBodHRwczovL2RldmVsb3Blci5taWNyb3NvZnQuY29tL2VuLXVzL21pY3Jvc29mdC1lZGdlL3BsYXRmb3JtL2lzc3Vlcy85MjgyMDU4L1xuICB2YXIgaGFzVGFiaW5kZXggPSBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKVxuICB2YXIgaGFzVGFiSW5kZXggPSBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgndGFiSW5kZXgnKVxuXG4gIGlmICghaGFzVGFiaW5kZXggJiYgIWhhc1RhYkluZGV4KSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBvbGRlciBGaXJlZm94IGFuZCBJbnRlcm5ldCBFeHBsb3JlciBkb24ndCBzdXBwb3J0IHRhYmluZGV4IG9uIFNWRyBlbGVtZW50c1xuICB2YXIgaXNTdmdFbGVtZW50ID1cbiAgICBlbGVtZW50Lm93bmVyU1ZHRWxlbWVudCB8fCBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdzdmcnXG4gIGlmIChpc1N2Z0VsZW1lbnQgJiYgIXN1cHBvcnRzLmZvY3VzU3ZnVGFiaW5kZXhBdHRyaWJ1dGUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIC8vIEBicm93c2VyLWlzc3VlIEdlY2tvIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExMjgwNTRcbiAgaWYgKHN1cHBvcnRzLmZvY3VzSW52YWxpZFRhYmluZGV4KSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIGFuIGVsZW1lbnQgbWF0Y2hlcyB0aGUgdGFiaW5kZXggc2VsZWN0b3IgZXZlbiBpZiBpdHMgdmFsdWUgaXMgaW52YWxpZFxuICB2YXIgdGFiaW5kZXggPSBlbGVtZW50LmdldEF0dHJpYnV0ZShoYXNUYWJpbmRleCA/ICd0YWJpbmRleCcgOiAndGFiSW5kZXgnKVxuICAvLyBJRTExIHBhcnNlcyB0YWJpbmRleD1cIlwiIGFzIHRoZSB2YWx1ZSBcIi0zMjc2OFwiXG4gIC8vIEBicm93c2VyLWlzc3VlIFRyaWRlbnQgaHR0cHM6Ly9jb25uZWN0Lm1pY3Jvc29mdC5jb20vSUUvZmVlZGJhY2svZGV0YWlscy8xMDcyOTY1XG4gIGlmICh0YWJpbmRleCA9PT0gJy0zMjc2OCcpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBCb29sZWFuKHRhYmluZGV4ICYmIHZhbGlkSW50ZWdlclBhdHRlcm4udGVzdCh0YWJpbmRleCkpXG59XG5cbmZ1bmN0aW9uIHRhYmluZGV4VmFsdWUoZWxlbWVudCkge1xuICBpZiAoIWlzVmFsaWRUYWJpbmRleChlbGVtZW50KSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvLyBFZGdlIDE0IGhhcyBhIGNhcGl0YWxpemF0aW9uIHByb2JsZW0gb24gU1ZHIGVsZW1lbnRzLFxuICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubWljcm9zb2Z0LmNvbS9lbi11cy9taWNyb3NvZnQtZWRnZS9wbGF0Zm9ybS9pc3N1ZXMvOTI4MjA1OC9cbiAgdmFyIGhhc1RhYmluZGV4ID0gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3RhYmluZGV4JylcbiAgdmFyIGF0dHJpYnV0ZU5hbWUgPSBoYXNUYWJpbmRleCA/ICd0YWJpbmRleCcgOiAndGFiSW5kZXgnXG5cbiAgLy8gQGJyb3dzZXItaXNzdWUgR2Vja28gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEyODA1NFxuICB2YXIgdGFiaW5kZXggPSBwYXJzZUludChlbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKSwgMTApXG4gIHJldHVybiBpc05hTih0YWJpbmRleCkgPyAtMSA6IHRhYmluZGV4XG59XG5cbi8vIHRoaXMgaXMgYSBzaGFyZWQgdXRpbGl0eSBmaWxlIGZvciBmb2N1cy1yZWxldmFudC5qcyBhbmQgdGFiYmFibGUuanNcbi8vIHNlcGFyYXRlIHRlc3Rpbmcgb2YgdGhpcyBmaWxlJ3MgZnVuY3Rpb25zIGlzIG5vdCBuZWNlc3NhcnksXG4vLyBhcyB0aGV5J3JlIGltcGxpY2l0bHkgdGVzdGVkIGJ5IHdheSBvZiB0aGUgY29uc3VtZXJzXG5cbmZ1bmN0aW9uIGlzVXNlck1vZGlmeVdyaXRhYmxlKHN0eWxlKSB7XG4gIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi8xOTk5L1dELWNzczMtdXNlcmludC0xOTk5MDkxNiN1c2VyLW1vZGlmeVxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzE3XG4gIHZhciB1c2VyTW9kaWZ5ID0gc3R5bGUud2Via2l0VXNlck1vZGlmeSB8fCAnJ1xuICByZXR1cm4gQm9vbGVhbih1c2VyTW9kaWZ5ICYmIHVzZXJNb2RpZnkuaW5kZXhPZignd3JpdGUnKSAhPT0gLTEpXG59XG5cbmZ1bmN0aW9uIGhhc0Nzc092ZXJmbG93U2Nyb2xsKHN0eWxlKSB7XG4gIHJldHVybiBbXG4gICAgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnb3ZlcmZsb3cnKSxcbiAgICBzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdvdmVyZmxvdy14JyksXG4gICAgc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnb3ZlcmZsb3cteScpLFxuICBdLnNvbWUoZnVuY3Rpb24gKG92ZXJmbG93KSB7XG4gICAgcmV0dXJuIG92ZXJmbG93ID09PSAnYXV0bycgfHwgb3ZlcmZsb3cgPT09ICdzY3JvbGwnXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGhhc0Nzc0Rpc3BsYXlGbGV4KHN0eWxlKSB7XG4gIHJldHVybiBzdHlsZS5kaXNwbGF5LmluZGV4T2YoJ2ZsZXgnKSA+IC0xXG59XG5cbmZ1bmN0aW9uIGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihlbGVtZW50LCBub2RlTmFtZSwgcGFyZW50Tm9kZU5hbWUsIHBhcmVudFN0eWxlKSB7XG4gIGlmIChub2RlTmFtZSAhPT0gJ2RpdicgJiYgbm9kZU5hbWUgIT09ICdzcGFuJykge1xuICAgIC8vIEludGVybmV0IEV4cGxvcmVyIGFkdmFuY2VzIHNjcm9sbGFibGUgY29udGFpbmVycyBhbmQgYm9kaWVzIHRvIGZvY3VzYWJsZVxuICAgIC8vIG9ubHkgaWYgdGhlIHNjcm9sbGFibGUgY29udGFpbmVyIGlzIDxkaXY+IG9yIDxzcGFuPiAtIHRoaXMgZG9lcyAqbm90KlxuICAgIC8vIGhhcHBlbiBmb3IgPHNlY3Rpb24+LCA8YXJ0aWNsZT4sIOKAplxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKFxuICAgIHBhcmVudE5vZGVOYW1lICYmXG4gICAgcGFyZW50Tm9kZU5hbWUgIT09ICdkaXYnICYmXG4gICAgcGFyZW50Tm9kZU5hbWUgIT09ICdzcGFuJyAmJlxuICAgICFoYXNDc3NPdmVyZmxvd1Njcm9sbChwYXJlbnRTdHlsZSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gKFxuICAgIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IDwgZWxlbWVudC5zY3JvbGxIZWlnaHQgfHxcbiAgICBlbGVtZW50Lm9mZnNldFdpZHRoIDwgZWxlbWVudC5zY3JvbGxXaWR0aFxuICApXG59XG5cbnZhciBzdXBwb3J0cyQxID0gdm9pZCAwXG5cbmZ1bmN0aW9uIGlzRm9jdXNSZWxldmFudFJ1bGVzKCkge1xuICB2YXIgX3JlZiA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LFxuICAgIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsXG4gICAgX3JlZiRleGNlcHQgPSBfcmVmLmV4Y2VwdCxcbiAgICBleGNlcHQgPVxuICAgICAgX3JlZiRleGNlcHQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGZsZXhib3g6IGZhbHNlLFxuICAgICAgICAgICAgc2Nyb2xsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBzaGFkb3c6IGZhbHNlLFxuICAgICAgICAgIH1cbiAgICAgICAgOiBfcmVmJGV4Y2VwdFxuXG4gIGlmICghc3VwcG9ydHMkMSkge1xuICAgIHN1cHBvcnRzJDEgPSBfc3VwcG9ydHMoKVxuICB9XG5cbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2lzL2ZvY3VzLXJlbGV2YW50JyxcbiAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgfSlcblxuICBpZiAoIWV4Y2VwdC5zaGFkb3cgJiYgZWxlbWVudC5zaGFkb3dSb290KSB7XG4gICAgLy8gYSBTaGFkb3dET00gaG9zdCByZWNlaXZlcyBmb2N1cyB3aGVuIHRoZSBmb2N1cyBtb3ZlcyB0byBpdHMgY29udGVudFxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcblxuICBpZiAobm9kZU5hbWUgPT09ICdpbnB1dCcgJiYgZWxlbWVudC50eXBlID09PSAnaGlkZGVuJykge1xuICAgIC8vIGlucHV0W3R5cGU9XCJoaWRkZW5cIl0gc3VwcG9ydHMuY2Fubm90IGJlIGZvY3VzZWRcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChcbiAgICBub2RlTmFtZSA9PT0gJ2lucHV0JyB8fFxuICAgIG5vZGVOYW1lID09PSAnc2VsZWN0JyB8fFxuICAgIG5vZGVOYW1lID09PSAnYnV0dG9uJyB8fFxuICAgIG5vZGVOYW1lID09PSAndGV4dGFyZWEnXG4gICkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAobm9kZU5hbWUgPT09ICdsZWdlbmQnICYmIHN1cHBvcnRzJDEuZm9jdXNSZWRpcmVjdExlZ2VuZCkge1xuICAgIC8vIHNwZWNpZmljcyBmaWx0ZXJlZCBpbiBpcy9mb2N1c2FibGVcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnbGFiZWwnKSB7XG4gICAgLy8gc3BlY2lmaWNzIGZpbHRlcmVkIGluIGlzL2ZvY3VzYWJsZVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAobm9kZU5hbWUgPT09ICdhcmVhJykge1xuICAgIC8vIHNwZWNpZmljcyBmaWx0ZXJlZCBpbiBpcy9mb2N1c2FibGVcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnYScgJiYgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2hyZWYnKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAobm9kZU5hbWUgPT09ICdvYmplY3QnICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCd1c2VtYXAnKSkge1xuICAgIC8vIG9iamVjdFt1c2VtYXBdIGlzIG5vdCBmb2N1c2FibGUgaW4gYW55IGJyb3dzZXJcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ29iamVjdCcpIHtcbiAgICB2YXIgc3ZnVHlwZSA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0eXBlJylcbiAgICBpZiAoIXN1cHBvcnRzJDEuZm9jdXNPYmplY3RTdmcgJiYgc3ZnVHlwZSA9PT0gJ2ltYWdlL3N2Zyt4bWwnKSB7XG4gICAgICAvLyBvYmplY3RbdHlwZT1cImltYWdlL3N2Zyt4bWxcIl0gaXMgbm90IGZvY3VzYWJsZSBpbiBJbnRlcm5ldCBFeHBsb3JlclxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfSBlbHNlIGlmIChcbiAgICAgICFzdXBwb3J0cyQxLmZvY3VzT2JqZWN0U3dmICYmXG4gICAgICBzdmdUeXBlID09PSAnYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2gnXG4gICAgKSB7XG4gICAgICAvLyBvYmplY3RbdHlwZT1cImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoXCJdIGlzIG5vdCBmb2N1c2FibGUgaW4gSW50ZXJuZXQgRXhwbG9yZXIgOVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnaWZyYW1lJyB8fCBub2RlTmFtZSA9PT0gJ29iamVjdCcpIHtcbiAgICAvLyBicm93c2luZyBjb250ZXh0IGNvbnRhaW5lcnNcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnZW1iZWQnIHx8IG5vZGVOYW1lID09PSAna2V5Z2VuJykge1xuICAgIC8vIGVtYmVkIGlzIGNvbnNpZGVyZWQgZm9jdXMtcmVsZXZhbnQgYnV0IG5vdCBmb2N1c2FibGVcbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy84MlxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScpKSB7XG4gICAgLy8gYWxzbyBzZWUgQ1NTIHByb3BlcnR5IHVzZXItbW9kaWZ5IGJlbG93XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChcbiAgICBub2RlTmFtZSA9PT0gJ2F1ZGlvJyAmJlxuICAgIChzdXBwb3J0cyQxLmZvY3VzQXVkaW9XaXRob3V0Q29udHJvbHMgfHwgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRyb2xzJykpXG4gICkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoXG4gICAgbm9kZU5hbWUgPT09ICd2aWRlbycgJiZcbiAgICAoc3VwcG9ydHMkMS5mb2N1c1ZpZGVvV2l0aG91dENvbnRyb2xzIHx8IGVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250cm9scycpKVxuICApIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKHN1cHBvcnRzJDEuZm9jdXNTdW1tYXJ5ICYmIG5vZGVOYW1lID09PSAnc3VtbWFyeScpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgdmFyIHZhbGlkVGFiaW5kZXggPSBpc1ZhbGlkVGFiaW5kZXgoZWxlbWVudClcblxuICBpZiAobm9kZU5hbWUgPT09ICdpbWcnICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCd1c2VtYXAnKSkge1xuICAgIC8vIEdlY2tvLCBUcmlkZW50IGFuZCBFZGdlIGRvIG5vdCBhbGxvdyBhbiBpbWFnZSB3aXRoIGFuIGltYWdlIG1hcCBhbmQgdGFiaW5kZXggdG8gYmUgZm9jdXNlZCxcbiAgICAvLyBpdCBhcHBlYXJzIHRoZSB0YWJpbmRleCBpcyBvdmVycnVsZWQgc28gZm9jdXMgaXMgc3RpbGwgZm9yd2FyZGVkIHRvIHRoZSA8bWFwPlxuICAgIHJldHVybiAoXG4gICAgICAodmFsaWRUYWJpbmRleCAmJiBzdXBwb3J0cyQxLmZvY3VzSW1nVXNlbWFwVGFiaW5kZXgpIHx8XG4gICAgICBzdXBwb3J0cyQxLmZvY3VzUmVkaXJlY3RJbWdVc2VtYXBcbiAgICApXG4gIH1cblxuICBpZiAoc3VwcG9ydHMkMS5mb2N1c1RhYmxlICYmIChub2RlTmFtZSA9PT0gJ3RhYmxlJyB8fCBub2RlTmFtZSA9PT0gJ3RkJykpIHtcbiAgICAvLyBJRTEwLTExIHN1cHBvcnRzLmNhbiBmb2N1cyA8dGFibGU+IGFuZCA8dGQ+XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChzdXBwb3J0cyQxLmZvY3VzRmllbGRzZXQgJiYgbm9kZU5hbWUgPT09ICdmaWVsZHNldCcpIHtcbiAgICAvLyBJRTEwLTExIHN1cHBvcnRzLmNhbiBmb2N1cyA8ZmllbGRzZXQ+XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHZhciBpc1N2Z0VsZW1lbnQgPSBub2RlTmFtZSA9PT0gJ3N2ZydcbiAgdmFyIGlzU3ZnQ29udGVudCA9IGVsZW1lbnQub3duZXJTVkdFbGVtZW50XG4gIHZhciBmb2N1c2FibGVBdHRyaWJ1dGUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnZm9jdXNhYmxlJylcbiAgdmFyIHRhYmluZGV4ID0gdGFiaW5kZXhWYWx1ZShlbGVtZW50KVxuXG4gIGlmIChcbiAgICBub2RlTmFtZSA9PT0gJ3VzZScgJiZcbiAgICB0YWJpbmRleCAhPT0gbnVsbCAmJlxuICAgICFzdXBwb3J0cyQxLmZvY3VzU3ZnVXNlVGFiaW5kZXhcbiAgKSB7XG4gICAgLy8gPHVzZT4gY2Fubm90IGJlIG1hZGUgZm9jdXNhYmxlIGJ5IGFkZGluZyBhIHRhYmluZGV4IGF0dHJpYnV0ZSBhbnl3aGVyZSBidXQgQmxpbmsgYW5kIFdlYktpdFxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnZm9yZWlnbm9iamVjdCcpIHtcbiAgICAvLyA8dXNlPiBjYW4gb25seSBiZSBtYWRlIGZvY3VzYWJsZSBpbiBCbGluayBhbmQgV2ViS2l0XG4gICAgcmV0dXJuIHRhYmluZGV4ICE9PSBudWxsICYmIHN1cHBvcnRzJDEuZm9jdXNTdmdGb3JlaWdub2JqZWN0VGFiaW5kZXhcbiAgfVxuXG4gIGlmIChlbGVtZW50TWF0Y2hlcyhlbGVtZW50LCAnc3ZnIGEnKSAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgneGxpbms6aHJlZicpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChcbiAgICAoaXNTdmdFbGVtZW50IHx8IGlzU3ZnQ29udGVudCkgJiZcbiAgICBlbGVtZW50LmZvY3VzICYmXG4gICAgIXN1cHBvcnRzJDEuZm9jdXNTdmdOZWdhdGl2ZVRhYmluZGV4QXR0cmlidXRlICYmXG4gICAgdGFiaW5kZXggPCAwXG4gICkge1xuICAgIC8vIEZpcmVmb3ggNTEgYW5kIDUyIHRyZWF0IGFueSBuYXRpdmVseSB0YWJiYWJsZSBTVkcgZWxlbWVudCB3aXRoXG4gICAgLy8gdGFiaW5kZXg9XCItMVwiIGFzIHRhYmJhYmxlIGFuZCBldmVyeXRoaW5nIGVsc2UgYXMgaW5lcnRcbiAgICAvLyBzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjM0MFxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKGlzU3ZnRWxlbWVudCkge1xuICAgIHJldHVybiAoXG4gICAgICB2YWxpZFRhYmluZGV4IHx8XG4gICAgICBzdXBwb3J0cyQxLmZvY3VzU3ZnIHx8XG4gICAgICBzdXBwb3J0cyQxLmZvY3VzU3ZnSW5JZnJhbWUgfHxcbiAgICAgIC8vIEludGVybmV0IEV4cGxvcmVyIHVuZGVyc3RhbmRzIHRoZSBmb2N1c2FibGUgYXR0cmlidXRlIGludHJvZHVjZWQgaW4gU1ZHIFRpbnkgMS4yXG4gICAgICBCb29sZWFuKFxuICAgICAgICBzdXBwb3J0cyQxLmZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlICYmXG4gICAgICAgICAgZm9jdXNhYmxlQXR0cmlidXRlICYmXG4gICAgICAgICAgZm9jdXNhYmxlQXR0cmlidXRlID09PSAndHJ1ZSdcbiAgICAgIClcbiAgICApXG4gIH1cblxuICBpZiAoaXNTdmdDb250ZW50KSB7XG4gICAgaWYgKHN1cHBvcnRzJDEuZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZSAmJiB2YWxpZFRhYmluZGV4KSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChzdXBwb3J0cyQxLmZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlKSB7XG4gICAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciB1bmRlcnN0YW5kcyB0aGUgZm9jdXNhYmxlIGF0dHJpYnV0ZSBpbnRyb2R1Y2VkIGluIFNWRyBUaW55IDEuMlxuICAgICAgcmV0dXJuIGZvY3VzYWJsZUF0dHJpYnV0ZSA9PT0gJ3RydWUnXG4gICAgfVxuICB9XG5cbiAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VkaXRpbmcuaHRtbCNzZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRpb24tYW5kLXRoZS10YWJpbmRleC1hdHRyaWJ1dGVcbiAgaWYgKHZhbGlkVGFiaW5kZXgpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgdmFyIHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbClcbiAgaWYgKGlzVXNlck1vZGlmeVdyaXRhYmxlKHN0eWxlKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoXG4gICAgc3VwcG9ydHMkMS5mb2N1c0ltZ0lzbWFwICYmXG4gICAgbm9kZU5hbWUgPT09ICdpbWcnICYmXG4gICAgZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2lzbWFwJylcbiAgKSB7XG4gICAgLy8gSUUxMC0xMSBjb25zaWRlcnMgdGhlIDxpbWc+IGluIDxhIGhyZWY+PGltZyBpc21hcD4gZm9jdXNhYmxlXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8yMFxuICAgIHZhciBoYXNMaW5rUGFyZW50ID0gZ2V0UGFyZW50cyh7IGNvbnRleHQ6IGVsZW1lbnQgfSkuc29tZShcbiAgICAgIGZ1bmN0aW9uIChwYXJlbnQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBwYXJlbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2EnICYmIHBhcmVudC5oYXNBdHRyaWJ1dGUoJ2hyZWYnKVxuICAgICAgICApXG4gICAgICB9XG4gICAgKVxuXG4gICAgaWYgKGhhc0xpbmtQYXJlbnQpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy8yMVxuICBpZiAoIWV4Y2VwdC5zY3JvbGxhYmxlICYmIHN1cHBvcnRzJDEuZm9jdXNTY3JvbGxDb250YWluZXIpIHtcbiAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c1Njcm9sbENvbnRhaW5lcldpdGhvdXRPdmVyZmxvdykge1xuICAgICAgLy8gSW50ZXJuZXQgRXhwbG9yZXIgZG9lcyB3aWxsIGNvbnNpZGVyIHRoZSBzY3JvbGxhYmxlIGFyZWEgZm9jdXNhYmxlXG4gICAgICAvLyBpZiB0aGUgZWxlbWVudCBpcyBhIDxkaXY+IG9yIGEgPHNwYW4+IGFuZCBpdCBpcyBpbiBmYWN0IHNjcm9sbGFibGUsXG4gICAgICAvLyByZWdhcmRsZXNzIG9mIHRoZSBDU1Mgb3ZlcmZsb3cgcHJvcGVydHlcbiAgICAgIGlmIChpc1Njcm9sbGFibGVDb250YWluZXIoZWxlbWVudCwgbm9kZU5hbWUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChoYXNDc3NPdmVyZmxvd1Njcm9sbChzdHlsZSkpIHtcbiAgICAgIC8vIEZpcmVmb3ggcmVxdWlyZXMgcHJvcGVyIG92ZXJmbG93IHNldHRpbmcsIElFIGRvZXMgbm90IG5lY2Vzc2FyaWx5XG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9DU1Mvb3ZlcmZsb3dcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgaWYgKFxuICAgICFleGNlcHQuZmxleGJveCAmJlxuICAgIHN1cHBvcnRzJDEuZm9jdXNGbGV4Ym94Q29udGFpbmVyICYmXG4gICAgaGFzQ3NzRGlzcGxheUZsZXgoc3R5bGUpXG4gICkge1xuICAgIC8vIGVsZW1lbnRzIHdpdGggZGlzcGxheTpmbGV4IGFyZSBmb2N1c2FibGUgaW4gSUUxMC0xMVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICB2YXIgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50XG4gIGlmICghZXhjZXB0LnNjcm9sbGFibGUgJiYgcGFyZW50KSB7XG4gICAgdmFyIHBhcmVudE5vZGVOYW1lID0gcGFyZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgICB2YXIgcGFyZW50U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwYXJlbnQsIG51bGwpXG4gICAgaWYgKFxuICAgICAgc3VwcG9ydHMkMS5mb2N1c1Njcm9sbEJvZHkgJiZcbiAgICAgIGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihwYXJlbnQsIG5vZGVOYW1lLCBwYXJlbnROb2RlTmFtZSwgcGFyZW50U3R5bGUpXG4gICAgKSB7XG4gICAgICAvLyBzY3JvbGxhYmxlIGJvZGllcyBhcmUgZm9jdXNhYmxlIEludGVybmV0IEV4cGxvcmVyXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzIxXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIC8vIENoaWxkcmVuIG9mIGZvY3VzYWJsZSBlbGVtZW50cyB3aXRoIGRpc3BsYXk6ZmxleCBhcmUgZm9jdXNhYmxlIGluIElFMTAtMTFcbiAgICBpZiAoc3VwcG9ydHMkMS5mb2N1c0NoaWxkcmVuT2ZGb2N1c2FibGVGbGV4Ym94KSB7XG4gICAgICBpZiAoaGFzQ3NzRGlzcGxheUZsZXgocGFyZW50U3R5bGUpKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gTk9URTogZWxlbWVudHMgbWFya2VkIGFzIGluZXJ0IGFyZSBub3QgZm9jdXNhYmxlLFxuICAvLyBidXQgdGhhdCBwcm9wZXJ0eSBpcyBub3QgZXhwb3NlZCB0byB0aGUgRE9NXG4gIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9lZGl0aW5nLmh0bWwjaW5lcnRcblxuICByZXR1cm4gZmFsc2Vcbn1cblxuLy8gYmluZCBleGNlcHRpb25zIHRvIGFuIGl0ZXJhdG9yIGNhbGxiYWNrXG5pc0ZvY3VzUmVsZXZhbnRSdWxlcy5leGNlcHQgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBleGNlcHQgPVxuICAgIGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge31cblxuICB2YXIgaXNGb2N1c1JlbGV2YW50ID0gZnVuY3Rpb24gaXNGb2N1c1JlbGV2YW50KGNvbnRleHQpIHtcbiAgICByZXR1cm4gaXNGb2N1c1JlbGV2YW50UnVsZXMoe1xuICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgIGV4Y2VwdDogZXhjZXB0LFxuICAgIH0pXG4gIH1cblxuICBpc0ZvY3VzUmVsZXZhbnQucnVsZXMgPSBpc0ZvY3VzUmVsZXZhbnRSdWxlc1xuICByZXR1cm4gaXNGb2N1c1JlbGV2YW50XG59XG5cbi8vIHByb3ZpZGUgaXNGb2N1c1JlbGV2YW50KGNvbnRleHQpIGFzIGRlZmF1bHQgaXRlcmF0b3IgY2FsbGJhY2tcbnZhciBpc0ZvY3VzUmVsZXZhbnQgPSBpc0ZvY3VzUmVsZXZhbnRSdWxlcy5leGNlcHQoe30pXG5cbmZ1bmN0aW9uIGZpbmRJbmRleChhcnJheSwgY2FsbGJhY2spIHtcbiAgLy8gYXR0ZW1wdCB0byB1c2UgbmF0aXZlIG9yIHBvbHlmaWxsZWQgQXJyYXkjZmluZEluZGV4IGZpcnN0XG4gIGlmIChhcnJheS5maW5kSW5kZXgpIHtcbiAgICByZXR1cm4gYXJyYXkuZmluZEluZGV4KGNhbGxiYWNrKVxuICB9XG5cbiAgdmFyIGxlbmd0aCA9IGFycmF5Lmxlbmd0aFxuXG4gIC8vIHNob3J0Y3V0IGlmIHRoZSBhcnJheSBpcyBlbXB0eVxuICBpZiAobGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIC0xXG4gIH1cblxuICAvLyBvdGhlcndpc2UgbG9vcCBvdmVyIGFycmF5XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoY2FsbGJhY2soYXJyYXlbaV0sIGksIGFycmF5KSkge1xuICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gLTFcbn1cblxuZnVuY3Rpb24gZ2V0Q29udGVudERvY3VtZW50KG5vZGUpIHtcbiAgdHJ5IHtcbiAgICAvLyB3b3JrcyBvbiA8b2JqZWN0PiBhbmQgPGlmcmFtZT5cbiAgICByZXR1cm4gKFxuICAgICAgbm9kZS5jb250ZW50RG9jdW1lbnQgfHxcbiAgICAgIC8vIHdvcmtzIG9uIDxvYmplY3Q+IGFuZCA8aWZyYW1lPlxuICAgICAgKG5vZGUuY29udGVudFdpbmRvdyAmJiBub2RlLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpIHx8XG4gICAgICAvLyB3b3JrcyBvbiA8b2JqZWN0PiBhbmQgPGlmcmFtZT4gdGhhdCBjb250YWluIFNWR1xuICAgICAgKG5vZGUuZ2V0U1ZHRG9jdW1lbnQgJiYgbm9kZS5nZXRTVkdEb2N1bWVudCgpKSB8fFxuICAgICAgbnVsbFxuICAgIClcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIFNlY3VyaXR5RXJyb3I6IEZhaWxlZCB0byByZWFkIHRoZSAnY29udGVudERvY3VtZW50JyBwcm9wZXJ0eSBmcm9tICdIVE1MT2JqZWN0RWxlbWVudCdcbiAgICAvLyBhbHNvIElFIG1heSB0aHJvdyBtZW1iZXIgbm90IGZvdW5kIGV4Y2VwdGlvbiBlLmcuIG9uIDxvYmplY3QgdHlwZT1cImltYWdlL3BuZ1wiPlxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0V2luZG93KG5vZGUpIHtcbiAgdmFyIF9kb2N1bWVudCA9IGdldERvY3VtZW50KG5vZGUpXG4gIHJldHVybiBfZG9jdW1lbnQuZGVmYXVsdFZpZXcgfHwgd2luZG93XG59XG5cbnZhciBzaGFkb3dQcmVmaXggPSB2b2lkIDBcblxuZnVuY3Rpb24gc2VsZWN0SW5TaGFkb3dzKHNlbGVjdG9yKSB7XG4gIGlmICh0eXBlb2Ygc2hhZG93UHJlZml4ICE9PSAnc3RyaW5nJykge1xuICAgIHZhciBvcGVyYXRvciA9IGNzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3IoKVxuICAgIGlmIChvcGVyYXRvcikge1xuICAgICAgc2hhZG93UHJlZml4ID0gJywgaHRtbCAnICsgb3BlcmF0b3IgKyAnICdcbiAgICB9XG4gIH1cblxuICBpZiAoIXNoYWRvd1ByZWZpeCkge1xuICAgIHJldHVybiBzZWxlY3RvclxuICB9XG5cbiAgcmV0dXJuIChcbiAgICBzZWxlY3RvciArXG4gICAgc2hhZG93UHJlZml4ICtcbiAgICBzZWxlY3RvclxuICAgICAgLnJlcGxhY2UoL1xccyosXFxzKi9nLCAnLCcpXG4gICAgICAuc3BsaXQoJywnKVxuICAgICAgLmpvaW4oc2hhZG93UHJlZml4KVxuICApXG59XG5cbnZhciBzZWxlY3RvciA9IHZvaWQgMFxuXG5mdW5jdGlvbiBmaW5kRG9jdW1lbnRIb3N0RWxlbWVudChfd2luZG93KSB7XG4gIGlmICghc2VsZWN0b3IpIHtcbiAgICBzZWxlY3RvciA9IHNlbGVjdEluU2hhZG93cygnb2JqZWN0LCBpZnJhbWUnKVxuICB9XG5cbiAgaWYgKF93aW5kb3cuX2ZyYW1lRWxlbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIF93aW5kb3cuX2ZyYW1lRWxlbWVudFxuICB9XG5cbiAgX3dpbmRvdy5fZnJhbWVFbGVtZW50ID0gbnVsbFxuXG4gIHZhciBwb3RlbnRpYWxIb3N0cyA9IF93aW5kb3cucGFyZW50LmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpXG4gIDtbXS5zb21lLmNhbGwocG90ZW50aWFsSG9zdHMsIGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgdmFyIF9kb2N1bWVudCA9IGdldENvbnRlbnREb2N1bWVudChlbGVtZW50KVxuICAgIGlmIChfZG9jdW1lbnQgIT09IF93aW5kb3cuZG9jdW1lbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIF93aW5kb3cuX2ZyYW1lRWxlbWVudCA9IGVsZW1lbnRcbiAgICByZXR1cm4gdHJ1ZVxuICB9KVxuXG4gIHJldHVybiBfd2luZG93Ll9mcmFtZUVsZW1lbnRcbn1cblxuZnVuY3Rpb24gZ2V0RnJhbWVFbGVtZW50KGVsZW1lbnQpIHtcbiAgdmFyIF93aW5kb3cgPSBnZXRXaW5kb3coZWxlbWVudClcbiAgaWYgKCFfd2luZG93LnBhcmVudCB8fCBfd2luZG93LnBhcmVudCA9PT0gX3dpbmRvdykge1xuICAgIC8vIGlmIHRoZXJlIGlzIG5vIHBhcmVudCBicm93c2luZyBjb250ZXh0LFxuICAgIC8vIHdlJ3JlIG5vdCBnb2luZyB0byBnZXQgYSBmcmFtZUVsZW1lbnQgZWl0aGVyIHdheVxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICB0cnkge1xuICAgIC8vIHNlZSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvV2luZG93L2ZyYW1lRWxlbWVudFxuICAgIC8vIGRvZXMgbm90IHdvcmsgd2l0aGluIDxlbWJlZD4gYW55d2hlcmUsIGFuZCBub3Qgd2l0aGluIGluIDxvYmplY3Q+IGluIElFXG4gICAgcmV0dXJuIF93aW5kb3cuZnJhbWVFbGVtZW50IHx8IGZpbmREb2N1bWVudEhvc3RFbGVtZW50KF93aW5kb3cpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9yZW5kZXJpbmcuaHRtbCNiZWluZy1yZW5kZXJlZFxuLy8gPGFyZWE+IGlzIG5vdCByZW5kZXJlZCwgYnV0IHdlICpjb25zaWRlciogaXQgdmlzaWJsZSB0byBzaW1wbGZpeSB0aGlzIGZ1bmN0aW9uJ3MgdXNhZ2VcbnZhciBub3RSZW5kZXJlZEVsZW1lbnRzUGF0dGVybiA9IC9eKGFyZWEpJC9cblxuZnVuY3Rpb24gY29tcHV0ZWRTdHlsZShlbGVtZW50LCBwcm9wZXJ0eSkge1xuICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSlcbn1cblxuZnVuY3Rpb24gbm90RGlzcGxheWVkKF9wYXRoKSB7XG4gIHJldHVybiBfcGF0aC5zb21lKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgLy8gZGlzcGxheTpub25lIGlzIG5vdCB2aXNpYmxlIChvcHRpbWl6ZWQgYXdheSBhdCBsYXlvdXQpXG4gICAgcmV0dXJuIGNvbXB1dGVkU3R5bGUoZWxlbWVudCwgJ2Rpc3BsYXknKSA9PT0gJ25vbmUnXG4gIH0pXG59XG5cbmZ1bmN0aW9uIG5vdFZpc2libGUoX3BhdGgpIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnktdWkvYmxvYi9tYXN0ZXIvdWkvY29yZS5qcyNMMTA5LUwxMTRcbiAgLy8gTk9URTogYSBuZXN0ZWQgZWxlbWVudCBjYW4gcmV2ZXJzZSB2aXNpYmlsaXR5OmhpZGRlbnxjb2xsYXBzZSBieSBleHBsaWNpdGx5IHNldHRpbmcgdmlzaWJpbGl0eTp2aXNpYmxlXG4gIC8vIE5PVEU6IHZpc2liaWxpdHkgY2FuIGJlIFtcIlwiLCBcInZpc2libGVcIiwgXCJoaWRkZW5cIiwgXCJjb2xsYXBzZVwiXVxuICB2YXIgaGlkZGVuID0gZmluZEluZGV4KF9wYXRoLCBmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIHZhciB2aXNpYmlsaXR5ID0gY29tcHV0ZWRTdHlsZShlbGVtZW50LCAndmlzaWJpbGl0eScpXG4gICAgcmV0dXJuIHZpc2liaWxpdHkgPT09ICdoaWRkZW4nIHx8IHZpc2liaWxpdHkgPT09ICdjb2xsYXBzZSdcbiAgfSlcblxuICBpZiAoaGlkZGVuID09PSAtMSkge1xuICAgIC8vIHRoZXJlIGlzIG5vIGhpZGRlbiBlbGVtZW50XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICB2YXIgdmlzaWJsZSA9IGZpbmRJbmRleChfcGF0aCwgZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICByZXR1cm4gY29tcHV0ZWRTdHlsZShlbGVtZW50LCAndmlzaWJpbGl0eScpID09PSAndmlzaWJsZSdcbiAgfSlcblxuICBpZiAodmlzaWJsZSA9PT0gLTEpIHtcbiAgICAvLyB0aGVyZSBpcyBubyB2aXNpYmxlIGVsZW1lbnQgKGJ1dCBhIGhpZGRlbiBlbGVtZW50KVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoaGlkZGVuIDwgdmlzaWJsZSkge1xuICAgIC8vIHRoZXJlIGlzIGEgaGlkZGVuIGVsZW1lbnQgYW5kIGl0J3MgY2xvc2VyIHRoYW4gdGhlIGZpcnN0IHZpc2libGUgZWxlbWVudFxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyB0aGVyZSBtYXkgYmUgYSBoaWRkZW4gZWxlbWVudCwgYnV0IHRoZSBjbG9zZXN0IGVsZW1lbnQgaXMgdmlzaWJsZVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gY29sbGFwc2VkUGFyZW50KF9wYXRoKSB7XG4gIHZhciBvZmZzZXQgPSAxXG4gIGlmIChfcGF0aFswXS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnc3VtbWFyeScpIHtcbiAgICBvZmZzZXQgPSAyXG4gIH1cblxuICByZXR1cm4gX3BhdGguc2xpY2Uob2Zmc2V0KS5zb21lKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgLy8gXCJjb250ZW50IGNoaWxkcmVuXCIgb2YgYSBjbG9zZWQgZGV0YWlscyBlbGVtZW50IGFyZSBub3QgdmlzaWJsZVxuICAgIHJldHVybiAoXG4gICAgICBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdkZXRhaWxzJyAmJiBlbGVtZW50Lm9wZW4gPT09IGZhbHNlXG4gICAgKVxuICB9KVxufVxuXG5mdW5jdGlvbiBpc1Zpc2libGVSdWxlcygpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBjb250ZXh0ID0gX3JlZi5jb250ZXh0LFxuICAgIF9yZWYkZXhjZXB0ID0gX3JlZi5leGNlcHQsXG4gICAgZXhjZXB0ID1cbiAgICAgIF9yZWYkZXhjZXB0ID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBub3RSZW5kZXJlZDogZmFsc2UsXG4gICAgICAgICAgICBjc3NEaXNwbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIGNzc1Zpc2liaWxpdHk6IGZhbHNlLFxuICAgICAgICAgICAgZGV0YWlsc0VsZW1lbnQ6IGZhbHNlLFxuICAgICAgICAgICAgYnJvd3NpbmdDb250ZXh0OiBmYWxzZSxcbiAgICAgICAgICB9XG4gICAgICAgIDogX3JlZiRleGNlcHRcblxuICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgIGxhYmVsOiAnaXMvdmlzaWJsZScsXG4gICAgcmVzb2x2ZURvY3VtZW50OiB0cnVlLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gIH0pXG5cbiAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG4gIGlmICghZXhjZXB0Lm5vdFJlbmRlcmVkICYmIG5vdFJlbmRlcmVkRWxlbWVudHNQYXR0ZXJuLnRlc3Qobm9kZU5hbWUpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHZhciBfcGF0aCA9IGdldFBhcmVudHMoeyBjb250ZXh0OiBlbGVtZW50IH0pXG5cbiAgLy8gaW4gSW50ZXJuZXQgRXhwbG9yZXIgPGF1ZGlvPiBoYXMgYSBkZWZhdWx0IGRpc3BsYXk6IG5vbmUsIHdoZXJlIG90aGVycyBoYXZlIGRpc3BsYXk6IGlubGluZVxuICAvLyBidXQgSUUgYWxsb3dzIGZvY3VzaW5nIDxhdWRpbyBzdHlsZT1cImRpc3BsYXk6bm9uZVwiPiwgYnV0IG5vdCA8ZGl2IGRpc3BsYXk6bm9uZT48YXVkaW8+XG4gIC8vIHRoaXMgaXMgaXJyZWxldmFudCB0byBvdGhlciBicm93c2VycywgYXMgdGhlIGNvbnRyb2xzIGF0dHJpYnV0ZSBpcyByZXF1aXJlZCB0byBtYWtlIDxhdWRpbz4gZm9jdXNhYmxlXG4gIHZhciBpc0F1ZGlvV2l0aG91dENvbnRyb2xzID1cbiAgICBub2RlTmFtZSA9PT0gJ2F1ZGlvJyAmJiAhZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2NvbnRyb2xzJylcbiAgaWYgKFxuICAgICFleGNlcHQuY3NzRGlzcGxheSAmJlxuICAgIG5vdERpc3BsYXllZChpc0F1ZGlvV2l0aG91dENvbnRyb2xzID8gX3BhdGguc2xpY2UoMSkgOiBfcGF0aClcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoIWV4Y2VwdC5jc3NWaXNpYmlsaXR5ICYmIG5vdFZpc2libGUoX3BhdGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoIWV4Y2VwdC5kZXRhaWxzRWxlbWVudCAmJiBjb2xsYXBzZWRQYXJlbnQoX3BhdGgpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoIWV4Y2VwdC5icm93c2luZ0NvbnRleHQpIHtcbiAgICAvLyBlbGVtZW50cyB3aXRoaW4gYSBicm93c2luZyBjb250ZXh0IGFyZSBhZmZlY3RlZCBieSB0aGVcbiAgICAvLyBicm93c2luZyBjb250ZXh0IGhvc3QgZWxlbWVudCdzIHZpc2liaWxpdHkgYW5kIHRhYmluZGV4XG4gICAgdmFyIGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudChlbGVtZW50KVxuICAgIHZhciBfaXNWaXNpYmxlID0gaXNWaXNpYmxlUnVsZXMuZXhjZXB0KGV4Y2VwdClcbiAgICBpZiAoZnJhbWVFbGVtZW50ICYmICFfaXNWaXNpYmxlKGZyYW1lRWxlbWVudCkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbi8vIGJpbmQgZXhjZXB0aW9ucyB0byBhbiBpdGVyYXRvciBjYWxsYmFja1xuaXNWaXNpYmxlUnVsZXMuZXhjZXB0ID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZXhjZXB0ID1cbiAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9XG5cbiAgdmFyIGlzVmlzaWJsZSA9IGZ1bmN0aW9uIGlzVmlzaWJsZShjb250ZXh0KSB7XG4gICAgcmV0dXJuIGlzVmlzaWJsZVJ1bGVzKHtcbiAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICBleGNlcHQ6IGV4Y2VwdCxcbiAgICB9KVxuICB9XG5cbiAgaXNWaXNpYmxlLnJ1bGVzID0gaXNWaXNpYmxlUnVsZXNcbiAgcmV0dXJuIGlzVmlzaWJsZVxufVxuXG4vLyBwcm92aWRlIGlzVmlzaWJsZShjb250ZXh0KSBhcyBkZWZhdWx0IGl0ZXJhdG9yIGNhbGxiYWNrXG52YXIgaXNWaXNpYmxlID0gaXNWaXNpYmxlUnVsZXMuZXhjZXB0KHt9KVxuXG5mdW5jdGlvbiBnZXRNYXBCeU5hbWUobmFtZSwgX2RvY3VtZW50KSB7XG4gIC8vIGFwcGFyZW50bHkgZ2V0RWxlbWVudHNCeU5hbWUoKSBhbHNvIGNvbnNpZGVycyBpZCBhdHRyaWJ1dGUgaW4gSUUgJiBvcGVyYVxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvRG9jdW1lbnQvZ2V0RWxlbWVudHNCeU5hbWVcbiAgdmFyIG1hcCA9IF9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdtYXBbbmFtZT1cIicgKyBjc3NFc2NhcGUobmFtZSkgKyAnXCJdJylcbiAgcmV0dXJuIG1hcCB8fCBudWxsXG59XG5cbmZ1bmN0aW9uIGdldEltYWdlT2ZBcmVhKGVsZW1lbnQpIHtcbiAgdmFyIG1hcCA9IGVsZW1lbnQucGFyZW50RWxlbWVudFxuXG4gIGlmICghbWFwLm5hbWUgfHwgbWFwLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdtYXAnKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8vIE5PVEU6IGltYWdlIG1hcHMgY2FuIGFsc28gYmUgYXBwbGllZCB0byA8b2JqZWN0PiB3aXRoIGltYWdlIGNvbnRlbnQsXG4gIC8vIGJ1dCBubyBicm93c2VyIHN1cHBvcnRzIHRoaXMgYXQgdGhlIG1vbWVudFxuXG4gIC8vIEhUTUw1IHNwZWNpZmllcyBIVE1MTWFwRWxlbWVudC5pbWFnZXMgdG8gYmUgYW4gSFRNTENvbGxlY3Rpb24gb2YgYWxsXG4gIC8vIDxpbWc+IGFuZCA8b2JqZWN0PiByZWZlcmVuY2luZyB0aGUgPG1hcD4gZWxlbWVudCwgYnV0IG5vIGJyb3dzZXIgaW1wbGVtZW50cyB0aGlzXG4gIC8vICAgaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWw1L2VtYmVkZGVkLWNvbnRlbnQtMC5odG1sI3RoZS1tYXAtZWxlbWVudFxuICAvLyAgIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9IVE1MTWFwRWxlbWVudFxuICAvLyB0aGUgaW1hZ2UgbXVzdCBiZSB2YWxpZCBhbmQgbG9hZGVkIGZvciB0aGUgbWFwIHRvIHRha2UgZWZmZWN0XG4gIHZhciBfZG9jdW1lbnQgPSBnZXREb2N1bWVudChlbGVtZW50KVxuICByZXR1cm4gKFxuICAgIF9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbWdbdXNlbWFwPVwiIycgKyBjc3NFc2NhcGUobWFwLm5hbWUpICsgJ1wiXScpIHx8XG4gICAgbnVsbFxuICApXG59XG5cbnZhciBzdXBwb3J0cyQyID0gdm9pZCAwXG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9tYXBcbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUTUwvRWxlbWVudC9pbWcjYXR0ci11c2VtYXBcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5LXVpL2Jsb2IvbWFzdGVyL3VpL2NvcmUuanMjTDg4LUwxMDdcbmZ1bmN0aW9uIGlzVmFsaWRBcmVhKGNvbnRleHQpIHtcbiAgaWYgKCFzdXBwb3J0cyQyKSB7XG4gICAgc3VwcG9ydHMkMiA9IF9zdXBwb3J0cygpXG4gIH1cblxuICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgIGxhYmVsOiAnaXMvdmFsaWQtYXJlYScsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgfSlcblxuICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgaWYgKG5vZGVOYW1lICE9PSAnYXJlYScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHZhciBoYXNUYWJpbmRleCA9IGVsZW1lbnQuaGFzQXR0cmlidXRlKCd0YWJpbmRleCcpXG4gIGlmICghc3VwcG9ydHMkMi5mb2N1c0FyZWFUYWJpbmRleCAmJiBoYXNUYWJpbmRleCkge1xuICAgIC8vIEJsaW5rIGFuZCBXZWJLaXQgZG8gbm90IGNvbnNpZGVyIDxhcmVhIHRhYmluZGV4PVwiLTFcIiBocmVmPVwiI3ZvaWRcIj4gZm9jdXNhYmxlXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICB2YXIgaW1nID0gZ2V0SW1hZ2VPZkFyZWEoZWxlbWVudClcbiAgaWYgKCFpbWcgfHwgIWlzVmlzaWJsZShpbWcpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBGaXJlZm94IG9ubHkgYWxsb3dzIGZ1bGx5IGxvYWRlZCBpbWFnZXMgdG8gcmVmZXJlbmNlIGltYWdlIG1hcHNcbiAgLy8gaHR0cHM6Ly9zdGVyZW9jaHJvLm1lL2lkZWFzL2RldGVjdGluZy1icm9rZW4taW1hZ2VzLWpzXG4gIGlmIChcbiAgICAhc3VwcG9ydHMkMi5mb2N1c0Jyb2tlbkltYWdlTWFwICYmXG4gICAgKCFpbWcuY29tcGxldGUgfHxcbiAgICAgICFpbWcubmF0dXJhbEhlaWdodCB8fFxuICAgICAgaW1nLm9mZnNldFdpZHRoIDw9IDAgfHxcbiAgICAgIGltZy5vZmZzZXRIZWlnaHQgPD0gMClcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBGaXJlZm94IHN1cHBvcnRzLmNhbiBmb2N1cyBhcmVhIGVsZW1lbnRzIGV2ZW4gaWYgdGhleSBkb24ndCBoYXZlIGFuIGhyZWYgYXR0cmlidXRlXG4gIGlmICghc3VwcG9ydHMkMi5mb2N1c0FyZWFXaXRob3V0SHJlZiAmJiAhZWxlbWVudC5ocmVmKSB7XG4gICAgLy8gSW50ZXJuZXQgZXhwbG9yZXIgc3VwcG9ydHMuY2FuIGZvY3VzIGFyZWEgZWxlbWVudHMgd2l0aG91dCBocmVmIGlmIGVpdGhlclxuICAgIC8vIHRoZSBhcmVhIGVsZW1lbnQgb3IgdGhlIGltYWdlIGVsZW1lbnQgaGFzIGEgdGFiaW5kZXggYXR0cmlidXRlXG4gICAgcmV0dXJuIChcbiAgICAgIChzdXBwb3J0cyQyLmZvY3VzQXJlYVRhYmluZGV4ICYmIGhhc1RhYmluZGV4KSB8fFxuICAgICAgKHN1cHBvcnRzJDIuZm9jdXNBcmVhSW1nVGFiaW5kZXggJiYgaW1nLmhhc0F0dHJpYnV0ZSgndGFiaW5kZXgnKSlcbiAgICApXG4gIH1cblxuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9IVE1ML0VsZW1lbnQvaW1nI2F0dHItdXNlbWFwXG4gIHZhciBjaGlsZE9mSW50ZXJhY3RpdmUgPSBnZXRQYXJlbnRzKHsgY29udGV4dDogaW1nIH0pXG4gICAgLnNsaWNlKDEpXG4gICAgLnNvbWUoZnVuY3Rpb24gKF9lbGVtZW50KSB7XG4gICAgICB2YXIgbmFtZSA9IF9lbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgIHJldHVybiBuYW1lID09PSAnYnV0dG9uJyB8fCBuYW1lID09PSAnYSdcbiAgICB9KVxuXG4gIGlmIChjaGlsZE9mSW50ZXJhY3RpdmUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbnZhciBzdXBwb3J0cyQzID0gdm9pZCAwXG5cbi8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9kaXNhYmxlZC1lbGVtZW50cy5odG1sI2NvbmNlcHQtZWxlbWVudC1kaXNhYmxlZFxudmFyIGRpc2FibGVkRWxlbWVudHNQYXR0ZXJuID0gdm9pZCAwXG52YXIgZGlzYWJsZWRFbGVtZW50cyA9IHtcbiAgaW5wdXQ6IHRydWUsXG4gIHNlbGVjdDogdHJ1ZSxcbiAgdGV4dGFyZWE6IHRydWUsXG4gIGJ1dHRvbjogdHJ1ZSxcbiAgZmllbGRzZXQ6IHRydWUsXG4gIGZvcm06IHRydWUsXG59XG5cbmZ1bmN0aW9uIGlzTmF0aXZlRGlzYWJsZWRTdXBwb3J0ZWQoY29udGV4dCkge1xuICBpZiAoIXN1cHBvcnRzJDMpIHtcbiAgICBzdXBwb3J0cyQzID0gX3N1cHBvcnRzKClcblxuICAgIGlmIChzdXBwb3J0cyQzLmZvY3VzRmllbGRzZXREaXNhYmxlZCkge1xuICAgICAgZGVsZXRlIGRpc2FibGVkRWxlbWVudHMuZmllbGRzZXRcbiAgICB9XG5cbiAgICBpZiAoc3VwcG9ydHMkMy5mb2N1c0Zvcm1EaXNhYmxlZCkge1xuICAgICAgZGVsZXRlIGRpc2FibGVkRWxlbWVudHMuZm9ybVxuICAgIH1cblxuICAgIGRpc2FibGVkRWxlbWVudHNQYXR0ZXJuID0gbmV3IFJlZ0V4cChcbiAgICAgICdeKCcgKyBPYmplY3Qua2V5cyhkaXNhYmxlZEVsZW1lbnRzKS5qb2luKCd8JykgKyAnKSQnXG4gICAgKVxuICB9XG5cbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2lzL25hdGl2ZS1kaXNhYmxlZC1zdXBwb3J0ZWQnLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gIH0pXG5cbiAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG4gIHJldHVybiBCb29sZWFuKGRpc2FibGVkRWxlbWVudHNQYXR0ZXJuLnRlc3Qobm9kZU5hbWUpKVxufVxuXG52YXIgc3VwcG9ydHMkNCA9IHZvaWQgMFxuXG5mdW5jdGlvbiBpc0Rpc2FibGVkRmllbGRzZXQoZWxlbWVudCkge1xuICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgcmV0dXJuIG5vZGVOYW1lID09PSAnZmllbGRzZXQnICYmIGVsZW1lbnQuZGlzYWJsZWRcbn1cblxuZnVuY3Rpb24gaXNEaXNhYmxlZEZvcm0oZWxlbWVudCkge1xuICB2YXIgbm9kZU5hbWUgPSBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgcmV0dXJuIG5vZGVOYW1lID09PSAnZm9ybScgJiYgZWxlbWVudC5kaXNhYmxlZFxufVxuXG5mdW5jdGlvbiBpc0Rpc2FibGVkKGNvbnRleHQpIHtcbiAgaWYgKCFzdXBwb3J0cyQ0KSB7XG4gICAgc3VwcG9ydHMkNCA9IF9zdXBwb3J0cygpXG4gIH1cblxuICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgIGxhYmVsOiAnaXMvZGlzYWJsZWQnLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gIH0pXG5cbiAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdkYXRhLWFsbHktZGlzYWJsZWQnKSkge1xuICAgIC8vIHRyZWF0IGFsbHkncyBlbGVtZW50L2Rpc2FibGVkIGxpa2UgdGhlIERPTSBuYXRpdmUgZWxlbWVudC5kaXNhYmxlZFxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAoIWlzTmF0aXZlRGlzYWJsZWRTdXBwb3J0ZWQoZWxlbWVudCkpIHtcbiAgICAvLyBub24tZm9ybSBlbGVtZW50cyBkbyBub3Qgc3VwcG9ydCB0aGUgZGlzYWJsZWQgYXR0cmlidXRlXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoZWxlbWVudC5kaXNhYmxlZCkge1xuICAgIC8vIHRoZSBlbGVtZW50IGl0c2VsZiBpcyBkaXNhYmxlZFxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICB2YXIgcGFyZW50cyA9IGdldFBhcmVudHMoeyBjb250ZXh0OiBlbGVtZW50IH0pXG4gIGlmIChwYXJlbnRzLnNvbWUoaXNEaXNhYmxlZEZpZWxkc2V0KSkge1xuICAgIC8vIGEgcGFyZW50YWwgPGZpZWxkc2V0PiBpcyBkaXNhYmxkIGFuZCBpbmhlcml0cyB0aGUgc3RhdGUgb250byB0aGlzIGVsZW1lbnRcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKCFzdXBwb3J0cyQ0LmZvY3VzRm9ybURpc2FibGVkICYmIHBhcmVudHMuc29tZShpc0Rpc2FibGVkRm9ybSkpIHtcbiAgICAvLyBhIHBhcmVudGFsIDxmb3JtPiBpcyBkaXNhYmxkIGFuZCBpbmhlcml0cyB0aGUgc3RhdGUgb250byB0aGlzIGVsZW1lbnRcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIGlzT25seVRhYmJhYmxlUnVsZXMoKSB7XG4gIHZhciBfcmVmID1cbiAgICAgIGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sXG4gICAgY29udGV4dCA9IF9yZWYuY29udGV4dCxcbiAgICBfcmVmJGV4Y2VwdCA9IF9yZWYuZXhjZXB0LFxuICAgIGV4Y2VwdCA9XG4gICAgICBfcmVmJGV4Y2VwdCA9PT0gdW5kZWZpbmVkXG4gICAgICAgID8ge1xuICAgICAgICAgICAgb25seUZvY3VzYWJsZUJyb3dzaW5nQ29udGV4dDogZmFsc2UsXG4gICAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICB9XG4gICAgICAgIDogX3JlZiRleGNlcHRcblxuICB2YXIgZWxlbWVudCA9IGNvbnRleHRUb0VsZW1lbnQoe1xuICAgIGxhYmVsOiAnaXMvb25seS10YWJiYWJsZScsXG4gICAgcmVzb2x2ZURvY3VtZW50OiB0cnVlLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gIH0pXG5cbiAgaWYgKCFleGNlcHQudmlzaWJsZSAmJiAhaXNWaXNpYmxlKGVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAoXG4gICAgIWV4Y2VwdC5vbmx5Rm9jdXNhYmxlQnJvd3NpbmdDb250ZXh0ICYmXG4gICAgKHBsYXRmb3JtLmlzLkdFQ0tPIHx8IHBsYXRmb3JtLmlzLlRSSURFTlQgfHwgcGxhdGZvcm0uaXMuRURHRSlcbiAgKSB7XG4gICAgdmFyIGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudChlbGVtZW50KVxuICAgIGlmIChmcmFtZUVsZW1lbnQpIHtcbiAgICAgIGlmICh0YWJpbmRleFZhbHVlKGZyYW1lRWxlbWVudCkgPCAwKSB7XG4gICAgICAgIC8vIGlmcmFtZVt0YWJpbmRleD1cIi0xXCJdIGFuZCBvYmplY3RbdGFiaW5kZXg9XCItMVwiXSBpbmhlcml0IHRoZVxuICAgICAgICAvLyB0YWJiYWJsZSBkZW1vdGlvbiBvbnRvIGVsZW1lbnRzIG9mIHRoZWlyIGJyb3dzaW5nIGNvbnRleHRzXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuICB2YXIgdGFiaW5kZXggPSB0YWJpbmRleFZhbHVlKGVsZW1lbnQpXG5cbiAgaWYgKG5vZGVOYW1lID09PSAnbGFiZWwnICYmIHBsYXRmb3JtLmlzLkdFQ0tPKSB7XG4gICAgLy8gRmlyZWZveCBjYW5ub3QgZm9jdXMsIGJ1dCB0YWIgdG86IGxhYmVsW3RhYmluZGV4PTBdXG4gICAgcmV0dXJuIHRhYmluZGV4ICE9PSBudWxsICYmIHRhYmluZGV4ID49IDBcbiAgfVxuXG4gIC8vIFNWRyBFbGVtZW50cyB3ZXJlIGtleWJvYXJkIGZvY3VzYWJsZSBidXQgbm90IHNjcmlwdCBmb2N1c2FibGUgYmVmb3JlIEZpcmVmb3ggNTEuXG4gIC8vIEZpcmVmb3ggNTEgYWRkZWQgdGhlIGZvY3VzIG1hbmFnZW1lbnQgRE9NIEFQSSAoLmZvY3VzIGFuZCAuYmx1cikgdG8gU1ZHRWxlbWVudCxcbiAgLy8gc2VlIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTc3ODY1NFxuICBpZiAocGxhdGZvcm0uaXMuR0VDS08gJiYgZWxlbWVudC5vd25lclNWR0VsZW1lbnQgJiYgIWVsZW1lbnQuZm9jdXMpIHtcbiAgICBpZiAobm9kZU5hbWUgPT09ICdhJyAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgneGxpbms6aHJlZicpKSB7XG4gICAgICAvLyBhbnkgZm9jdXNhYmxlIGNoaWxkIG9mIDxzdmc+IGNhbm5vdCBiZSBmb2N1c2VkLCBidXQgdGFiYmVkIHRvXG4gICAgICBpZiAocGxhdGZvcm0uaXMuR0VDS08pIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuLy8gYmluZCBleGNlcHRpb25zIHRvIGFuIGl0ZXJhdG9yIGNhbGxiYWNrXG5pc09ubHlUYWJiYWJsZVJ1bGVzLmV4Y2VwdCA9IGZ1bmN0aW9uICgpIHtcbiAgdmFyIGV4Y2VwdCA9XG4gICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fVxuXG4gIHZhciBpc09ubHlUYWJiYWJsZSA9IGZ1bmN0aW9uIGlzT25seVRhYmJhYmxlKGNvbnRleHQpIHtcbiAgICByZXR1cm4gaXNPbmx5VGFiYmFibGVSdWxlcyh7XG4gICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgZXhjZXB0OiBleGNlcHQsXG4gICAgfSlcbiAgfVxuXG4gIGlzT25seVRhYmJhYmxlLnJ1bGVzID0gaXNPbmx5VGFiYmFibGVSdWxlc1xuICByZXR1cm4gaXNPbmx5VGFiYmFibGVcbn1cblxuLy8gcHJvdmlkZSBpc09ubHlUYWJiYWJsZShjb250ZXh0KSBhcyBkZWZhdWx0IGl0ZXJhdG9yIGNhbGxiYWNrXG52YXIgaXNPbmx5VGFiYmFibGUgPSBpc09ubHlUYWJiYWJsZVJ1bGVzLmV4Y2VwdCh7fSlcblxudmFyIHN1cHBvcnRzJDUgPSB2b2lkIDBcblxuZnVuY3Rpb24gaXNPbmx5Rm9jdXNSZWxldmFudChlbGVtZW50KSB7XG4gIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuICBpZiAobm9kZU5hbWUgPT09ICdlbWJlZCcgfHwgbm9kZU5hbWUgPT09ICdrZXlnZW4nKSB7XG4gICAgLy8gZW1iZWQgaXMgY29uc2lkZXJlZCBmb2N1cy1yZWxldmFudCBidXQgbm90IGZvY3VzYWJsZVxuICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzgyXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHZhciBfdGFiaW5kZXggPSB0YWJpbmRleFZhbHVlKGVsZW1lbnQpXG4gIGlmIChlbGVtZW50LnNoYWRvd1Jvb3QgJiYgX3RhYmluZGV4ID09PSBudWxsKSB7XG4gICAgLy8gU2hhZG93RE9NIGhvc3QgZWxlbWVudHMgKm1heSogcmVjZWl2ZSBmb2N1c1xuICAgIC8vIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIG5vdCBjb25zaWRlcmVkIGZvY3VhYmxlXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2xhYmVsJykge1xuICAgIC8vIDxsYWJlbCB0YWJpbmRleD1cIjBcIj4gaXMgb25seSB0YWJiYWJsZSBpbiBGaXJlZm94LCBub3Qgc2NyaXB0LWZvY3VzYWJsZVxuICAgIC8vIHRoZXJlJ3Mgbm8gd2F5IHRvIG1ha2UgYW4gZWxlbWVudCBmb2N1c2FibGUgb3RoZXIgdGhhbiBieSBhZGRpbmcgYSB0YWJpbmRleCxcbiAgICAvLyBhbmQgZm9jdXMgYmVoYXZpb3Igb2YgdGhlIGxhYmVsIGVsZW1lbnQgc2VlbXMgaGFyZC13aXJlZCB0byBpZ25vcmUgdGFiaW5kZXhcbiAgICAvLyBpbiBzb21lIGJyb3dzZXJzIChsaWtlIEdlY2tvLCBCbGluayBhbmQgV2ViS2l0KVxuICAgIHJldHVybiAhc3VwcG9ydHMkNS5mb2N1c0xhYmVsVGFiaW5kZXggfHwgX3RhYmluZGV4ID09PSBudWxsXG4gIH1cblxuICBpZiAobm9kZU5hbWUgPT09ICdsZWdlbmQnKSB7XG4gICAgcmV0dXJuIF90YWJpbmRleCA9PT0gbnVsbFxuICB9XG5cbiAgaWYgKFxuICAgIHN1cHBvcnRzJDUuZm9jdXNTdmdGb2N1c2FibGVBdHRyaWJ1dGUgJiZcbiAgICAoZWxlbWVudC5vd25lclNWR0VsZW1lbnQgfHwgbm9kZU5hbWUgPT09ICdzdmcnKVxuICApIHtcbiAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciB1bmRlcnN0YW5kcyB0aGUgZm9jdXNhYmxlIGF0dHJpYnV0ZSBpbnRyb2R1Y2VkIGluIFNWRyBUaW55IDEuMlxuICAgIHZhciBmb2N1c2FibGVBdHRyaWJ1dGUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnZm9jdXNhYmxlJylcbiAgICByZXR1cm4gZm9jdXNhYmxlQXR0cmlidXRlICYmIGZvY3VzYWJsZUF0dHJpYnV0ZSA9PT0gJ2ZhbHNlJ1xuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnaW1nJyAmJiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgndXNlbWFwJykpIHtcbiAgICAvLyBHZWNrbywgVHJpZGVudCBhbmQgRWRnZSBkbyBub3QgYWxsb3cgYW4gaW1hZ2Ugd2l0aCBhbiBpbWFnZSBtYXAgYW5kIHRhYmluZGV4IHRvIGJlIGZvY3VzZWQsXG4gICAgLy8gaXQgYXBwZWFycyB0aGUgdGFiaW5kZXggaXMgb3ZlcnJ1bGVkIHNvIGZvY3VzIGlzIHN0aWxsIGZvcndhcmRlZCB0byB0aGUgPG1hcD5cbiAgICByZXR1cm4gX3RhYmluZGV4ID09PSBudWxsIHx8ICFzdXBwb3J0cyQ1LmZvY3VzSW1nVXNlbWFwVGFiaW5kZXhcbiAgfVxuXG4gIGlmIChub2RlTmFtZSA9PT0gJ2FyZWEnKSB7XG4gICAgLy8gYWxsIDxhcmVhPnMgYXJlIGNvbnNpZGVyZWQgcmVsZXZhbnQsXG4gICAgLy8gYnV0IG9ubHkgdGhlIHZhbGlkIDxhcmVhPnMgYXJlIGZvY3VzYWJsZVxuICAgIHJldHVybiAhaXNWYWxpZEFyZWEoZWxlbWVudClcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBpc0ZvY3VzYWJsZVJ1bGVzKCkge1xuICB2YXIgX3JlZiA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LFxuICAgIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsXG4gICAgX3JlZiRleGNlcHQgPSBfcmVmLmV4Y2VwdCxcbiAgICBleGNlcHQgPVxuICAgICAgX3JlZiRleGNlcHQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICAgICAgb25seVRhYmJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB9XG4gICAgICAgIDogX3JlZiRleGNlcHRcblxuICBpZiAoIXN1cHBvcnRzJDUpIHtcbiAgICBzdXBwb3J0cyQ1ID0gX3N1cHBvcnRzKClcbiAgfVxuXG4gIHZhciBfaXNPbmx5VGFiYmFibGUgPSBpc09ubHlUYWJiYWJsZS5ydWxlcy5leGNlcHQoe1xuICAgIG9ubHlGb2N1c2FibGVCcm93c2luZ0NvbnRleHQ6IHRydWUsXG4gICAgdmlzaWJsZTogZXhjZXB0LnZpc2libGUsXG4gIH0pXG5cbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2lzL2ZvY3VzYWJsZScsXG4gICAgcmVzb2x2ZURvY3VtZW50OiB0cnVlLFxuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gIH0pXG5cbiAgdmFyIGZvY3VzUmVsZXZhbnQgPSBpc0ZvY3VzUmVsZXZhbnQucnVsZXMoe1xuICAgIGNvbnRleHQ6IGVsZW1lbnQsXG4gICAgZXhjZXB0OiBleGNlcHQsXG4gIH0pXG5cbiAgaWYgKCFmb2N1c1JlbGV2YW50IHx8IGlzT25seUZvY3VzUmVsZXZhbnQoZWxlbWVudCkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmICghZXhjZXB0LmRpc2FibGVkICYmIGlzRGlzYWJsZWQoZWxlbWVudCkpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmICghZXhjZXB0Lm9ubHlUYWJiYWJsZSAmJiBfaXNPbmx5VGFiYmFibGUoZWxlbWVudCkpIHtcbiAgICAvLyBzb21lIGVsZW1lbnRzIG1heSBiZSBrZXlib2FyZCBmb2N1c2FibGUsIGJ1dCBub3Qgc2NyaXB0IGZvY3VzYWJsZVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLy8gZWxlbWVudHMgdGhhdCBhcmUgbm90IHJlbmRlcmVkLCBjYW5ub3QgYmUgZm9jdXNlZFxuICBpZiAoIWV4Y2VwdC52aXNpYmxlKSB7XG4gICAgdmFyIHZpc2liaWxpdHlPcHRpb25zID0ge1xuICAgICAgY29udGV4dDogZWxlbWVudCxcbiAgICAgIGV4Y2VwdDoge30sXG4gICAgfVxuXG4gICAgaWYgKHN1cHBvcnRzJDUuZm9jdXNJbkhpZGRlbklmcmFtZSkge1xuICAgICAgLy8gV2ViS2l0IGFuZCBCbGluayBjYW4gZm9jdXMgY29udGVudCBpbiBoaWRkZW4gPGlmcmFtZT4gYW5kIDxvYmplY3Q+XG4gICAgICB2aXNpYmlsaXR5T3B0aW9ucy5leGNlcHQuYnJvd3NpbmdDb250ZXh0ID0gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChzdXBwb3J0cyQ1LmZvY3VzT2JqZWN0U3ZnSGlkZGVuKSB7XG4gICAgICAvLyBCbGluayBhbGxvd3MgZm9jdXNpbmcgdGhlIG9iamVjdCBlbGVtZW50LCBldmVuIGlmIGl0IGhhcyB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAvLyBAYnJvd3Nlci1pc3N1ZSBCbGluayBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NTg2MTkxXG4gICAgICB2YXIgX25vZGVOYW1lMiA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgaWYgKF9ub2RlTmFtZTIgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIHZpc2liaWxpdHlPcHRpb25zLmV4Y2VwdC5jc3NWaXNpYmlsaXR5ID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaXNWaXNpYmxlLnJ1bGVzKHZpc2liaWxpdHlPcHRpb25zKSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgdmFyIGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudChlbGVtZW50KVxuICBpZiAoZnJhbWVFbGVtZW50KSB7XG4gICAgdmFyIF9ub2RlTmFtZSA9IGZyYW1lRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgaWYgKF9ub2RlTmFtZSA9PT0gJ29iamVjdCcgJiYgIXN1cHBvcnRzJDUuZm9jdXNJblplcm9EaW1lbnNpb25PYmplY3QpIHtcbiAgICAgIGlmICghZnJhbWVFbGVtZW50Lm9mZnNldFdpZHRoIHx8ICFmcmFtZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSB7XG4gICAgICAgIC8vIFdlYktpdCBjYW4gbm90IGZvY3VzIGNvbnRlbnQgaW4gPG9iamVjdD4gaWYgaXQgZG9lc24ndCBoYXZlIGRpbWVuc2lvbnNcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG4gIGlmIChcbiAgICBub2RlTmFtZSA9PT0gJ3N2ZycgJiZcbiAgICBzdXBwb3J0cyQ1LmZvY3VzU3ZnSW5JZnJhbWUgJiZcbiAgICAhZnJhbWVFbGVtZW50ICYmXG4gICAgZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JykgPT09IG51bGxcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG4vLyBiaW5kIGV4Y2VwdGlvbnMgdG8gYW4gaXRlcmF0b3IgY2FsbGJhY2tcbmlzRm9jdXNhYmxlUnVsZXMuZXhjZXB0ID0gZnVuY3Rpb24gKCkge1xuICB2YXIgZXhjZXB0ID1cbiAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9XG5cbiAgdmFyIGlzRm9jdXNhYmxlID0gZnVuY3Rpb24gaXNGb2N1c2FibGUoY29udGV4dCkge1xuICAgIHJldHVybiBpc0ZvY3VzYWJsZVJ1bGVzKHtcbiAgICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgICBleGNlcHQ6IGV4Y2VwdCxcbiAgICB9KVxuICB9XG5cbiAgaXNGb2N1c2FibGUucnVsZXMgPSBpc0ZvY3VzYWJsZVJ1bGVzXG4gIHJldHVybiBpc0ZvY3VzYWJsZVxufVxuXG4vLyBwcm92aWRlIGlzRm9jdXNSZWxldmFudChjb250ZXh0KSBhcyBkZWZhdWx0IGl0ZXJhdG9yIGNhbGxiYWNrXG52YXIgaXNGb2N1c2FibGUgPSBpc0ZvY3VzYWJsZVJ1bGVzLmV4Y2VwdCh7fSlcblxuZnVuY3Rpb24gY3JlYXRlRmlsdGVyKGNvbmRpdGlvbikge1xuICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL05vZGVGaWx0ZXJcbiAgdmFyIGZpbHRlciA9IGZ1bmN0aW9uIGZpbHRlcihub2RlKSB7XG4gICAgaWYgKG5vZGUuc2hhZG93Um9vdCkge1xuICAgICAgLy8gcmV0dXJuIFNoYWRvd1Jvb3QgZWxlbWVudHMgcmVnYXJkbGVzcyBvZiB0aGVtIGJlaW5nIGZvY3VzYWJsZSxcbiAgICAgIC8vIHNvIHRoZXkgY2FuIGJlIHdhbGtlZCByZWN1cnNpdmVseSBsYXRlclxuICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVFxuICAgIH1cblxuICAgIGlmIChjb25kaXRpb24obm9kZSkpIHtcbiAgICAgIC8vIGZpbmRzIGVsZW1lbnRzIHRoYXQgY291bGQgaGF2ZSBiZWVuIGZvdW5kIGJ5IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoKVxuICAgICAgcmV0dXJuIE5vZGVGaWx0ZXIuRklMVEVSX0FDQ0VQVFxuICAgIH1cblxuICAgIHJldHVybiBOb2RlRmlsdGVyLkZJTFRFUl9TS0lQXG4gIH1cbiAgLy8gSUUgcmVxdWlyZXMgYSBmdW5jdGlvbiwgQnJvd3NlcnMgcmVxdWlyZSB7YWNjZXB0Tm9kZTogZnVuY3Rpb259XG4gIC8vIHNlZSBodHRwOi8vd3d3LmJlbm5hZGVsLmNvbS9ibG9nLzI2MDctZmluZGluZy1odG1sLWNvbW1lbnQtbm9kZXMtaW4tdGhlLWRvbS11c2luZy10cmVld2Fsa2VyLmh0bVxuICBmaWx0ZXIuYWNjZXB0Tm9kZSA9IGZpbHRlclxuICByZXR1cm4gZmlsdGVyXG59XG5cbnZhciBQb3NzaWJseUZvY3VzYWJsZUZpbHRlciA9IGNyZWF0ZUZpbHRlcihpc0ZvY3VzUmVsZXZhbnQpXG5cbmZ1bmN0aW9uIHF1ZXJ5Rm9jdXNhYmxlU3RyaWN0KCkge1xuICB2YXIgX3JlZiA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LFxuICAgIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsXG4gICAgaW5jbHVkZUNvbnRleHQgPSBfcmVmLmluY2x1ZGVDb250ZXh0LFxuICAgIGluY2x1ZGVPbmx5VGFiYmFibGUgPSBfcmVmLmluY2x1ZGVPbmx5VGFiYmFibGUsXG4gICAgc3RyYXRlZ3kgPSBfcmVmLnN0cmF0ZWd5XG5cbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgY29udGV4dCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICB9XG5cbiAgdmFyIF9pc0ZvY3VzYWJsZSA9IGlzRm9jdXNhYmxlLnJ1bGVzLmV4Y2VwdCh7XG4gICAgb25seVRhYmJhYmxlOiBpbmNsdWRlT25seVRhYmJhYmxlLFxuICB9KVxuXG4gIHZhciBfZG9jdW1lbnQgPSBnZXREb2N1bWVudChjb250ZXh0KVxuICAvLyBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0RvY3VtZW50L2NyZWF0ZVRyZWVXYWxrZXJcbiAgdmFyIHdhbGtlciA9IF9kb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKFxuICAgIC8vIHJvb3QgZWxlbWVudCB0byBzdGFydCBzZWFyY2ggaW5cbiAgICBjb250ZXh0LFxuICAgIC8vIGVsZW1lbnQgdHlwZSBmaWx0ZXJcbiAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCxcbiAgICAvLyBjdXN0b20gTm9kZUZpbHRlciBmaWx0ZXJcbiAgICBzdHJhdGVneSA9PT0gJ2FsbCcgPyBQb3NzaWJseUZvY3VzYWJsZUZpbHRlciA6IGNyZWF0ZUZpbHRlcihfaXNGb2N1c2FibGUpLFxuICAgIC8vIGRlcHJlY2F0ZWQsIGJ1dCBJRSByZXF1aXJlcyBpdFxuICAgIGZhbHNlXG4gIClcblxuICB2YXIgbGlzdCA9IFtdXG5cbiAgd2hpbGUgKHdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgaWYgKHdhbGtlci5jdXJyZW50Tm9kZS5zaGFkb3dSb290KSB7XG4gICAgICBpZiAoX2lzRm9jdXNhYmxlKHdhbGtlci5jdXJyZW50Tm9kZSkpIHtcbiAgICAgICAgbGlzdC5wdXNoKHdhbGtlci5jdXJyZW50Tm9kZSlcbiAgICAgIH1cblxuICAgICAgbGlzdCA9IGxpc3QuY29uY2F0KFxuICAgICAgICBxdWVyeUZvY3VzYWJsZVN0cmljdCh7XG4gICAgICAgICAgY29udGV4dDogd2Fsa2VyLmN1cnJlbnROb2RlLnNoYWRvd1Jvb3QsXG4gICAgICAgICAgaW5jbHVkZU9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgICAgICAgICBzdHJhdGVneTogc3RyYXRlZ3ksXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIGxpc3QucHVzaCh3YWxrZXIuY3VycmVudE5vZGUpXG4gICAgfVxuICB9XG5cbiAgLy8gYWRkIGNvbnRleHQgaWYgcmVxdWVzdGVkIGFuZCBmb2N1c2FibGVcbiAgaWYgKGluY2x1ZGVDb250ZXh0KSB7XG4gICAgaWYgKHN0cmF0ZWd5ID09PSAnYWxsJykge1xuICAgICAgaWYgKGlzRm9jdXNSZWxldmFudChjb250ZXh0KSkge1xuICAgICAgICBsaXN0LnVuc2hpZnQoY29udGV4dClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKF9pc0ZvY3VzYWJsZShjb250ZXh0KSkge1xuICAgICAgbGlzdC51bnNoaWZ0KGNvbnRleHQpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxpc3Rcbn1cblxuLy8gTk9URTogdGhpcyBzZWxlY3RvciBNVVNUICpuZXZlciogYmUgdXNlZCBkaXJlY3RseSxcbnZhciBzdXBwb3J0cyQ2ID0gdm9pZCAwXG5cbnZhciBzZWxlY3RvciQxID0gdm9pZCAwXG5cbmZ1bmN0aW9uIHNlbGVjdG9yJDIoKSB7XG4gIGlmICghc3VwcG9ydHMkNikge1xuICAgIHN1cHBvcnRzJDYgPSBfc3VwcG9ydHMoKVxuICB9XG5cbiAgaWYgKHR5cGVvZiBzZWxlY3RvciQxID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBzZWxlY3RvciQxXG4gIH1cblxuICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZWRpdGluZy5odG1sI3NlcXVlbnRpYWwtZm9jdXMtbmF2aWdhdGlvbi1hbmQtdGhlLXRhYmluZGV4LWF0dHJpYnV0ZVxuICBzZWxlY3RvciQxID1cbiAgICAnJyArXG4gICAgLy8gSUUxMSBzdXBwb3J0cy5jYW4gZm9jdXMgPHRhYmxlPiBhbmQgPHRkPlxuICAgIChzdXBwb3J0cyQ2LmZvY3VzVGFibGUgPyAndGFibGUsIHRkLCcgOiAnJykgK1xuICAgIC8vIElFMTEgc3VwcG9ydHMuY2FuIGZvY3VzIDxmaWVsZHNldD5cbiAgICAoc3VwcG9ydHMkNi5mb2N1c0ZpZWxkc2V0ID8gJ2ZpZWxkc2V0LCcgOiAnJykgK1xuICAgIC8vIE5hbWVzcGFjZSBwcm9ibGVtcyBvZiBbeGxpbms6aHJlZl0gZXhwbGFpbmVkIGluIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8yMzA0Nzg4OC81MTUxMjRcbiAgICAvLyBzdmcgYVsqfGhyZWZdIGRvZXMgbm90IG1hdGNoIGluIElFOSwgYnV0IHNpbmNlIHdlJ3JlIGZpbHRlcmluZ1xuICAgIC8vIHRocm91Z2ggaXMvZm9jdXNhYmxlIHdlIGNhbiBpbmNsdWRlIGFsbCA8YT4gZnJvbSBTVkdcbiAgICAnc3ZnIGEsJyArXG4gICAgLy8gbWF5IGJlaGF2ZSBhcyAnc3ZnLCBzdmcgKiwnIGluIGNocm9tZSBhcyAqZXZlcnkqIHN2ZyBlbGVtZW50IHdpdGggYSBmb2N1cyBldmVudCBsaXN0ZW5lciBpcyBmb2N1c2FibGVcbiAgICAvLyBuYXZpZ2F0aW9uYWwgZWxlbWVudHNcbiAgICAnYVtocmVmXSwnICtcbiAgICAvLyB2YWxpZGl0eSBkZXRlcm1pbmVkIGJ5IGlzL3ZhbGlkLWFyZWEuanNcbiAgICAnYXJlYVtocmVmXSwnICtcbiAgICAvLyB2YWxpZGl0eSBkZXRlcm1pbmVkIGJ5IGlzL2Rpc2FibGVkLmpzXG4gICAgJ2lucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBidXR0b24sJyArXG4gICAgLy8gYnJvd3NpbmcgY29udGV4dCBjb250YWluZXJzXG4gICAgJ2lmcmFtZSwgb2JqZWN0LCBlbWJlZCwnICtcbiAgICAvLyBpbnRlcmFjdGl2ZSBjb250ZW50XG4gICAgJ2tleWdlbiwnICtcbiAgICAoc3VwcG9ydHMkNi5mb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzID8gJ2F1ZGlvLCcgOiAnYXVkaW9bY29udHJvbHNdLCcpICtcbiAgICAoc3VwcG9ydHMkNi5mb2N1c1ZpZGVvV2l0aG91dENvbnRyb2xzID8gJ3ZpZGVvLCcgOiAndmlkZW9bY29udHJvbHNdLCcpICtcbiAgICAoc3VwcG9ydHMkNi5mb2N1c1N1bW1hcnkgPyAnc3VtbWFyeSwnIDogJycpICtcbiAgICAvLyB2YWxpZGl0eSBkZXRlcm1pbmVkIGJ5IGlzL3ZhbGlkLXRhYmluZGV4LmpzXG4gICAgJ1t0YWJpbmRleF0sJyArXG4gICAgLy8gZWRpdGluZyBob3N0c1xuICAgICdbY29udGVudGVkaXRhYmxlXSdcblxuICAvLyB3aGVyZSBTaGFkb3dET00gaXMgc3VwcG9ydGVkLCB3ZSBhbHNvIHdhbnQgdGhlIHNoYWRvd2VkIGZvY3VzYWJsZSBlbGVtZW50cyAodmlhIFwiPj4+XCIgb3IgXCIvZGVlcC9cIilcbiAgc2VsZWN0b3IkMSA9IHNlbGVjdEluU2hhZG93cyhzZWxlY3RvciQxKVxuXG4gIHJldHVybiBzZWxlY3RvciQxXG59XG5cbmZ1bmN0aW9uIHF1ZXJ5Rm9jdXNhYmxlUXVpY2soKSB7XG4gIHZhciBfcmVmID1cbiAgICAgIGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge30sXG4gICAgY29udGV4dCA9IF9yZWYuY29udGV4dCxcbiAgICBpbmNsdWRlQ29udGV4dCA9IF9yZWYuaW5jbHVkZUNvbnRleHQsXG4gICAgaW5jbHVkZU9ubHlUYWJiYWJsZSA9IF9yZWYuaW5jbHVkZU9ubHlUYWJiYWJsZVxuXG4gIHZhciBfc2VsZWN0b3IgPSBzZWxlY3RvciQyKClcbiAgdmFyIGVsZW1lbnRzID0gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKF9zZWxlY3RvcilcbiAgLy8gdGhlIHNlbGVjdG9yIHBvdGVudGlhbGx5IG1hdGNoZXMgbW9yZSB0aGFuIHJlYWxseSBpcyBmb2N1c2FibGVcblxuICB2YXIgX2lzRm9jdXNhYmxlID0gaXNGb2N1c2FibGUucnVsZXMuZXhjZXB0KHtcbiAgICBvbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGUsXG4gIH0pXG5cbiAgdmFyIHJlc3VsdCA9IFtdLmZpbHRlci5jYWxsKGVsZW1lbnRzLCBfaXNGb2N1c2FibGUpXG5cbiAgLy8gYWRkIGNvbnRleHQgaWYgcmVxdWVzdGVkIGFuZCBmb2N1c2FibGVcbiAgaWYgKGluY2x1ZGVDb250ZXh0ICYmIF9pc0ZvY3VzYWJsZShjb250ZXh0KSkge1xuICAgIHJlc3VsdC51bnNoaWZ0KGNvbnRleHQpXG4gIH1cblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmZ1bmN0aW9uIHF1ZXJ5Rm9jdXNhYmxlKCkge1xuICB2YXIgX3JlZiA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LFxuICAgIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsXG4gICAgaW5jbHVkZUNvbnRleHQgPSBfcmVmLmluY2x1ZGVDb250ZXh0LFxuICAgIGluY2x1ZGVPbmx5VGFiYmFibGUgPSBfcmVmLmluY2x1ZGVPbmx5VGFiYmFibGUsXG4gICAgX3JlZiRzdHJhdGVneSA9IF9yZWYuc3RyYXRlZ3ksXG4gICAgc3RyYXRlZ3kgPSBfcmVmJHN0cmF0ZWd5ID09PSB1bmRlZmluZWQgPyAncXVpY2snIDogX3JlZiRzdHJhdGVneVxuXG4gIHZhciBlbGVtZW50ID0gY29udGV4dFRvRWxlbWVudCh7XG4gICAgbGFiZWw6ICdxdWVyeS9mb2N1c2FibGUnLFxuICAgIHJlc29sdmVEb2N1bWVudDogdHJ1ZSxcbiAgICBkZWZhdWx0VG9Eb2N1bWVudDogdHJ1ZSxcbiAgICBjb250ZXh0OiBjb250ZXh0LFxuICB9KVxuXG4gIHZhciBvcHRpb25zID0ge1xuICAgIGNvbnRleHQ6IGVsZW1lbnQsXG4gICAgaW5jbHVkZUNvbnRleHQ6IGluY2x1ZGVDb250ZXh0LFxuICAgIGluY2x1ZGVPbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGUsXG4gICAgc3RyYXRlZ3k6IHN0cmF0ZWd5LFxuICB9XG5cbiAgaWYgKHN0cmF0ZWd5ID09PSAncXVpY2snKSB7XG4gICAgcmV0dXJuIHF1ZXJ5Rm9jdXNhYmxlUXVpY2sob3B0aW9ucylcbiAgfSBlbHNlIGlmIChzdHJhdGVneSA9PT0gJ3N0cmljdCcgfHwgc3RyYXRlZ3kgPT09ICdhbGwnKSB7XG4gICAgcmV0dXJuIHF1ZXJ5Rm9jdXNhYmxlU3RyaWN0KG9wdGlvbnMpXG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICdxdWVyeS9mb2N1c2FibGUgcmVxdWlyZXMgb3B0aW9uLnN0cmF0ZWd5IHRvIGJlIG9uZSBvZiBbXCJxdWlja1wiLCBcInN0cmljdFwiLCBcImFsbFwiXSdcbiAgKVxufVxuXG52YXIgc3VwcG9ydHMkNyA9IHZvaWQgMFxuXG4vLyBJbnRlcm5ldCBFeHBsb3JlciAxMSBjb25zaWRlcnMgZmllbGRzZXQsIHRhYmxlLCB0ZCBmb2N1c2FibGUsIGJ1dCBub3QgdGFiYmFibGVcbi8vIEludGVybmV0IEV4cGxvcmVyIDExIGNvbnNpZGVycyBib2R5IHRvIGhhdmUgW3RhYmluZGV4PTBdLCBidXQgZG9lcyBub3QgYWxsb3cgdGFiYmluZyB0byBpdFxudmFyIGZvY3VzYWJsZUVsZW1lbnRzUGF0dGVybiA9IC9eKGZpZWxkc2V0fHRhYmxlfHRkfGJvZHkpJC9cblxuZnVuY3Rpb24gaXNUYWJiYWJsZVJ1bGVzKCkge1xuICB2YXIgX3JlZiA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LFxuICAgIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsXG4gICAgX3JlZiRleGNlcHQgPSBfcmVmLmV4Y2VwdCxcbiAgICBleGNlcHQgPVxuICAgICAgX3JlZiRleGNlcHQgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIGZsZXhib3g6IGZhbHNlLFxuICAgICAgICAgICAgc2Nyb2xsYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBzaGFkb3c6IGZhbHNlLFxuICAgICAgICAgICAgdmlzaWJsZTogZmFsc2UsXG4gICAgICAgICAgICBvbmx5VGFiYmFibGU6IGZhbHNlLFxuICAgICAgICAgIH1cbiAgICAgICAgOiBfcmVmJGV4Y2VwdFxuXG4gIGlmICghc3VwcG9ydHMkNykge1xuICAgIHN1cHBvcnRzJDcgPSBfc3VwcG9ydHMoKVxuICB9XG5cbiAgdmFyIGVsZW1lbnQgPSBjb250ZXh0VG9FbGVtZW50KHtcbiAgICBsYWJlbDogJ2lzL3RhYmJhYmxlJyxcbiAgICByZXNvbHZlRG9jdW1lbnQ6IHRydWUsXG4gICAgY29udGV4dDogY29udGV4dCxcbiAgfSlcblxuICBpZiAocGxhdGZvcm0uaXMuQkxJTksgJiYgcGxhdGZvcm0uaXMuQU5EUk9JRCAmJiBwbGF0Zm9ybS5tYWpvclZlcnNpb24gPiA0Mikge1xuICAgIC8vIEV4dGVybmFsIGtleWJvYXJkIHN1cHBvcnQgd29ya2VkIGZpbmUgaW4gQ0hyb21lIDQyLCBidXQgc3RvcHBlZCB3b3JraW5nIGluIENocm9tZSA0NS5cbiAgICAvLyBUaGUgb24tc2NyZWVuIGtleWJvYXJkIGRvZXMgbm90IHByb3ZpZGUgYSB3YXkgdG8gZm9jdXMgdGhlIG5leHQgaW5wdXQgZWxlbWVudCAobGlrZSBpT1MgZG9lcykuXG4gICAgLy8gVGhhdCBsZWF2ZXMgdXMgd2l0aCBubyBvcHRpb24gdG8gYWR2YW5jZSBmb2N1cyBieSBrZXlib2FyZCwgZXJnbyBub3RoaW5nIGlzIHRhYmJhYmxlIChrZXlib2FyZCBmb2N1c2FibGUpLlxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgdmFyIGZyYW1lRWxlbWVudCA9IGdldEZyYW1lRWxlbWVudChlbGVtZW50KVxuICBpZiAoZnJhbWVFbGVtZW50KSB7XG4gICAgaWYgKHBsYXRmb3JtLmlzLldFQktJVCAmJiBwbGF0Zm9ybS5pcy5JT1MpIHtcbiAgICAgIC8vIGlPUyBvbmx5IGRvZXMgbm90IGNvbnNpZGVyIGFueXRoaW5nIGZyb20gYW5vdGhlciBicm93c2luZyBjb250ZXh0IGtleWJvYXJkIGZvY3VzYWJsZVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgLy8gaWZyYW1lW3RhYmluZGV4PVwiLTFcIl0gYW5kIG9iamVjdFt0YWJpbmRleD1cIi0xXCJdIGluaGVyaXQgdGhlXG4gICAgLy8gdGFiYmFibGUgZGVtb3Rpb24gb250byBlbGVtZW50cyBvZiB0aGVpciBicm93c2luZyBjb250ZXh0c1xuICAgIGlmICh0YWJpbmRleFZhbHVlKGZyYW1lRWxlbWVudCkgPCAwKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAhZXhjZXB0LnZpc2libGUgJiZcbiAgICAgIChwbGF0Zm9ybS5pcy5CTElOSyB8fCBwbGF0Zm9ybS5pcy5XRUJLSVQpICYmXG4gICAgICAhaXNWaXNpYmxlKGZyYW1lRWxlbWVudClcbiAgICApIHtcbiAgICAgIC8vIEJsaW5rIGFuZCBXZWJLaXQgY29uc2lkZXIgZWxlbWVudHMgaW4gaGlkZGVuIGJyb3dzaW5nIGNvbnRleHRzIGZvY3VzYWJsZSwgYnV0IG5vdCB0YWJiYWJsZVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgLy8gV2Via2l0IGFuZCBCbGluayBkb24ndCBjb25zaWRlciBhbnl0aGluZyBpbiA8b2JqZWN0PiB0YWJiYWJsZVxuICAgIC8vIEJsaW5rIGZpeGVkIHRoYXQgZml4ZWQgaW4gQ2hyb21lIDU0LCBPcGVyYSA0MVxuICAgIHZhciBmcmFtZU5vZGVOYW1lID0gZnJhbWVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKClcbiAgICBpZiAoZnJhbWVOb2RlTmFtZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhciBpc0ZpeGVkQmxpbmsgPVxuICAgICAgICAocGxhdGZvcm0ubmFtZSA9PT0gJ0Nocm9tZScgJiYgcGxhdGZvcm0ubWFqb3JWZXJzaW9uID49IDU0KSB8fFxuICAgICAgICAocGxhdGZvcm0ubmFtZSA9PT0gJ09wZXJhJyAmJiBwbGF0Zm9ybS5tYWpvclZlcnNpb24gPj0gNDEpXG5cbiAgICAgIGlmIChwbGF0Zm9ybS5pcy5XRUJLSVQgfHwgKHBsYXRmb3JtLmlzLkJMSU5LICYmICFpc0ZpeGVkQmxpbmspKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuICB2YXIgX3RhYmluZGV4ID0gdGFiaW5kZXhWYWx1ZShlbGVtZW50KVxuICB2YXIgdGFiaW5kZXggPSBfdGFiaW5kZXggPT09IG51bGwgPyBudWxsIDogX3RhYmluZGV4ID49IDBcblxuICBpZiAoXG4gICAgcGxhdGZvcm0uaXMuRURHRSAmJlxuICAgIHBsYXRmb3JtLm1ham9yVmVyc2lvbiA+PSAxNCAmJlxuICAgIGZyYW1lRWxlbWVudCAmJlxuICAgIGVsZW1lbnQub3duZXJTVkdFbGVtZW50ICYmXG4gICAgX3RhYmluZGV4IDwgMFxuICApIHtcbiAgICAvLyBFZGdlIDE0KyBjb25zaWRlcnMgPGEgeGxpbms6aHJlZj1cIuKAplwiIHRhYmluZGV4PVwiLTFcIj4ga2V5Ym9hcmQgZm9jdXNhYmxlXG4gICAgLy8gaWYgdGhlIGVsZW1lbnQgaXMgaW4gYSBuZXN0ZWQgYnJvd3NpbmcgY29udGV4dFxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICB2YXIgaGFzVGFiYmFibGVUYWJpbmRleE9yTm9uZSA9IHRhYmluZGV4ICE9PSBmYWxzZVxuICB2YXIgaGFzVGFiYmFibGVUYWJpbmRleCA9IF90YWJpbmRleCAhPT0gbnVsbCAmJiBfdGFiaW5kZXggPj0gMFxuXG4gIC8vIE5PVEU6IEZpcmVmb3ggMzEgY29uc2lkZXJzIFtjb250ZW50ZWRpdGFibGVdIHRvIGhhdmUgW3RhYmluZGV4PS0xXSwgYnV0IGFsbG93cyB0YWJiaW5nIHRvIGl0XG4gIC8vIGZpeGVkIGluIEZpcmVmb3ggNDAgdGhlIGxhdGVzdCAtIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTExODU2NTdcbiAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKSkge1xuICAgIC8vIHRhYmJpbmcgY2FuIHN0aWxsIGJlIGRpc2FibGVkIGJ5IGV4cGxpY2l0bHkgcHJvdmlkaW5nIFt0YWJpbmRleD1cIi0xXCJdXG4gICAgcmV0dXJuIGhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmVcbiAgfVxuXG4gIGlmIChmb2N1c2FibGVFbGVtZW50c1BhdHRlcm4udGVzdChub2RlTmFtZSkgJiYgdGFiaW5kZXggIT09IHRydWUpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmIChwbGF0Zm9ybS5pcy5XRUJLSVQgJiYgcGxhdGZvcm0uaXMuSU9TKSB7XG4gICAgLy8gaU9TIG9ubHkgY29uc2lkZXJzIGEgaGFuZCBmdWxsIG9mIGVsZW1lbnRzIHRhYmJhYmxlIChrZXlib2FyZCBmb2N1c2FibGUpXG4gICAgLy8gdGhpcyBob2xkcyB0cnVlIGV2ZW4gd2l0aCBleHRlcm5hbCBrZXlib2FyZHNcbiAgICB2YXIgcG90ZW50aWFsbHlUYWJiYWJsZSA9XG4gICAgICAobm9kZU5hbWUgPT09ICdpbnB1dCcgJiYgZWxlbWVudC50eXBlID09PSAndGV4dCcpIHx8XG4gICAgICBlbGVtZW50LnR5cGUgPT09ICdwYXNzd29yZCcgfHxcbiAgICAgIG5vZGVOYW1lID09PSAnc2VsZWN0JyB8fFxuICAgICAgbm9kZU5hbWUgPT09ICd0ZXh0YXJlYScgfHxcbiAgICAgIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnKVxuXG4gICAgaWYgKCFwb3RlbnRpYWxseVRhYmJhYmxlKSB7XG4gICAgICB2YXIgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKVxuICAgICAgcG90ZW50aWFsbHlUYWJiYWJsZSA9IGlzVXNlck1vZGlmeVdyaXRhYmxlKHN0eWxlKVxuICAgIH1cblxuICAgIGlmICghcG90ZW50aWFsbHlUYWJiYWJsZSkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAndXNlJyAmJiBfdGFiaW5kZXggIT09IG51bGwpIHtcbiAgICBpZiAoXG4gICAgICBwbGF0Zm9ybS5pcy5CTElOSyB8fFxuICAgICAgKHBsYXRmb3JtLmlzLldFQktJVCAmJiBwbGF0Zm9ybS5tYWpvclZlcnNpb24gPT09IDkpXG4gICAgKSB7XG4gICAgICAvLyBJbiBDaHJvbWUgYW5kIFNhZmFyaSA5IHRoZSA8dXNlPiBlbGVtZW50IGlzIGtleWJvYXJkIGZvY3VzYWJsZSBldmVuIGZvciB0YWJpbmRleD1cIi0xXCJcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgaWYgKGVsZW1lbnRNYXRjaGVzKGVsZW1lbnQsICdzdmcgYScpICYmIGVsZW1lbnQuaGFzQXR0cmlidXRlKCd4bGluazpocmVmJykpIHtcbiAgICBpZiAoaGFzVGFiYmFibGVUYWJpbmRleE9yTm9uZSkge1xuICAgICAgLy8gaW4gVHJpZGVudCBhbmQgR2Vja28gU1ZHRWxlbWVudCBkb2VzIG5vdCBoYW5kbGUgdGhlIHRhYkluZGV4IHByb3BlcnR5IHByb3Blcmx5XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChlbGVtZW50LmZvY3VzICYmICFzdXBwb3J0cyQ3LmZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZSkge1xuICAgICAgLy8gRmlyZWZveCA1MSBhbmQgNTIgdHJlYXQgYW55IG5hdGl2ZWx5IHRhYmJhYmxlIFNWRyBlbGVtZW50IHdpdGhcbiAgICAgIC8vIHRhYmluZGV4PVwiLTFcIiBhcyB0YWJiYWJsZSBhbmQgZXZlcnl0aGluZyBlbHNlIGFzIGluZXJ0XG4gICAgICAvLyBzZWUgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjM0MFxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICBpZiAoXG4gICAgbm9kZU5hbWUgPT09ICdzdmcnICYmXG4gICAgc3VwcG9ydHMkNy5mb2N1c1N2Z0luSWZyYW1lICYmXG4gICAgaGFzVGFiYmFibGVUYWJpbmRleE9yTm9uZVxuICApIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKHBsYXRmb3JtLmlzLlRSSURFTlQgfHwgcGxhdGZvcm0uaXMuRURHRSkge1xuICAgIGlmIChub2RlTmFtZSA9PT0gJ3N2ZycpIHtcbiAgICAgIGlmIChzdXBwb3J0cyQ3LmZvY3VzU3ZnKSB7XG4gICAgICAgIC8vIG9sZGVyIEludGVybmV0IEV4cGxvcmVycyBjb25zaWRlciA8c3ZnPiBrZXlib2FyZCBmb2N1c2FibGVcbiAgICAgICAgLy8gdW5sZXNzIHRoZXkgaGF2ZSBmb2NzYWJsZT1cImZhbHNlXCIsIGJ1dCB0aGVuIHRoZXkgd291bGRuJ3RcbiAgICAgICAgLy8gYmUgZm9jdXNhYmxlIGFuZCB0aHVzIG5vdCBldmVuIHJlYWNoIHRoaXMgZmlsdGVyXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIC8vIGVsZW1lbnRzIHRoYXQgaGF2ZSBbZm9jdXNhYmxlXSBhcmUgYXV0b21hdGljYWxseSBrZXlib2FyZCBmb2N1c2FibGUgcmVnYXJkbGVzcyBvZiB0aGUgYXR0cmlidXRlJ3MgdmFsdWVcbiAgICAgIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZm9jdXNhYmxlJykgfHwgaGFzVGFiYmFibGVUYWJpbmRleFxuICAgIH1cblxuICAgIGlmIChlbGVtZW50Lm93bmVyU1ZHRWxlbWVudCkge1xuICAgICAgaWYgKHN1cHBvcnRzJDcuZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZSAmJiBoYXNUYWJiYWJsZVRhYmluZGV4KSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIC8vIGVsZW1lbnRzIHRoYXQgaGF2ZSBbZm9jdXNhYmxlXSBhcmUgYXV0b21hdGljYWxseSBrZXlib2FyZCBmb2N1c2FibGUgcmVnYXJkbGVzcyBvZiB0aGUgYXR0cmlidXRlJ3MgdmFsdWVcbiAgICAgIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZm9jdXNhYmxlJylcbiAgICB9XG4gIH1cbiAgaWYgKGVsZW1lbnQudGFiSW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBCb29sZWFuKGV4Y2VwdC5vbmx5VGFiYmFibGUpXG4gIH1cblxuICBpZiAobm9kZU5hbWUgPT09ICdhdWRpbycpIHtcbiAgICBpZiAoIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdjb250cm9scycpKSB7XG4gICAgICAvLyBJbiBJbnRlcm5ldCBFeHBsb3JlciB0aGUgPGF1ZGlvPiBlbGVtZW50IGlzIGZvY3VzYWJsZSwgYnV0IG5vdCB0YWJiYWJsZSwgYW5kIHRhYkluZGV4IHByb3BlcnR5IGlzIHdyb25nXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9IGVsc2UgaWYgKHBsYXRmb3JtLmlzLkJMSU5LKSB7XG4gICAgICAvLyBJbiBDaHJvbWUgPGF1ZGlvIGNvbnRyb2xzIHRhYmluZGV4PVwiLTFcIj4gcmVtYWlucyBrZXlib2FyZCBmb2N1c2FibGVcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAndmlkZW8nKSB7XG4gICAgaWYgKCFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnY29udHJvbHMnKSkge1xuICAgICAgaWYgKHBsYXRmb3JtLmlzLlRSSURFTlQgfHwgcGxhdGZvcm0uaXMuRURHRSkge1xuICAgICAgICAvLyBJbiBJbnRlcm5ldCBFeHBsb3JlciBhbmQgRWRnZSB0aGUgPHZpZGVvPiBlbGVtZW50IGlzIGZvY3VzYWJsZSwgYnV0IG5vdCB0YWJiYWJsZSwgYW5kIHRhYkluZGV4IHByb3BlcnR5IGlzIHdyb25nXG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocGxhdGZvcm0uaXMuQkxJTksgfHwgcGxhdGZvcm0uaXMuR0VDS08pIHtcbiAgICAgIC8vIEluIENocm9tZSBhbmQgRmlyZWZveCA8dmlkZW8gY29udHJvbHMgdGFiaW5kZXg9XCItMVwiPiByZW1haW5zIGtleWJvYXJkIGZvY3VzYWJsZVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICBpZiAobm9kZU5hbWUgPT09ICdvYmplY3QnKSB7XG4gICAgaWYgKHBsYXRmb3JtLmlzLkJMSU5LIHx8IHBsYXRmb3JtLmlzLldFQktJVCkge1xuICAgICAgLy8gSW4gYWxsIEJsaW5rIGFuZCBXZWJLaXQgYmFzZWQgYnJvd3NlcnMgPGVtYmVkPiBhbmQgPG9iamVjdD4gYXJlIG5ldmVyIGtleWJvYXJkIGZvY3VzYWJsZSwgZXZlbiB3aXRoIHRhYmluZGV4PVwiMFwiIHNldFxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnaWZyYW1lJykge1xuICAgIC8vIEluIEludGVybmV0IEV4cGxvcmVyIGFsbCBpZnJhbWVzIGFyZSBvbmx5IGZvY3VzYWJsZVxuICAgIC8vIEluIFdlYktpdCwgQmxpbmsgYW5kIEdlY2tvIGlmcmFtZXMgbWF5IGJlIHRhYmJhYmxlIGRlcGVuZGluZyBvbiBjb250ZW50LlxuICAgIC8vIFNpbmNlIHdlIGNhbid0IHJlbGlhYmx5IGludmVzdGlnYXRlIGlmcmFtZSBkb2N1bWVudHMgYmVjYXVzZSBvZiB0aGVcbiAgICAvLyBTYW1lT3JpZ2luUG9saWN5LCB3ZSdyZSBkZWNsYXJpbmcgZXZlcnl0aGluZyBvbmx5IGZvY3VzYWJsZS5cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGlmICghZXhjZXB0LnNjcm9sbGFibGUgJiYgcGxhdGZvcm0uaXMuR0VDS08pIHtcbiAgICAvLyBGaXJlZm94IGNvbnNpZGVycyBzY3JvbGxhYmxlIGNvbnRhaW5lcnMga2V5Ym9hcmQgZm9jdXNhYmxlLFxuICAgIC8vIGV2ZW4gdGhvdWdoIHRoZWlyIHRhYkluZGV4IHByb3BlcnR5IGlzIC0xXG4gICAgdmFyIF9zdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIG51bGwpXG4gICAgaWYgKGhhc0Nzc092ZXJmbG93U2Nyb2xsKF9zdHlsZSkpIHtcbiAgICAgIHJldHVybiBoYXNUYWJiYWJsZVRhYmluZGV4T3JOb25lXG4gICAgfVxuICB9XG5cbiAgaWYgKHBsYXRmb3JtLmlzLlRSSURFTlQgfHwgcGxhdGZvcm0uaXMuRURHRSkge1xuICAgIC8vIElFIGFuZCBFZGdlIGRlZ3JhZGUgPGFyZWE+IHRvIHNjcmlwdCBmb2N1c2FibGUsIGlmIHRoZSBpbWFnZVxuICAgIC8vIHVzaW5nIHRoZSA8bWFwPiBoYXMgYmVlbiBnaXZlbiB0YWJpbmRleD1cIi0xXCJcbiAgICBpZiAobm9kZU5hbWUgPT09ICdhcmVhJykge1xuICAgICAgdmFyIGltZyA9IGdldEltYWdlT2ZBcmVhKGVsZW1lbnQpXG4gICAgICBpZiAoaW1nICYmIHRhYmluZGV4VmFsdWUoaW1nKSA8IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIF9zdHlsZTIgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKVxuICAgIGlmIChpc1VzZXJNb2RpZnlXcml0YWJsZShfc3R5bGUyKSkge1xuICAgICAgLy8gcHJldmVudCBiZWluZyBzd2FsbG93ZWQgYnkgdGhlIG92ZXJ6ZWFsb3VzIGlzU2Nyb2xsYWJsZUNvbnRhaW5lcigpIGJlbG93XG4gICAgICByZXR1cm4gZWxlbWVudC50YWJJbmRleCA+PSAwXG4gICAgfVxuXG4gICAgaWYgKCFleGNlcHQuZmxleGJveCAmJiBoYXNDc3NEaXNwbGF5RmxleChfc3R5bGUyKSkge1xuICAgICAgaWYgKF90YWJpbmRleCAhPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gaGFzVGFiYmFibGVUYWJpbmRleFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKFxuICAgICAgICBpc0ZvY3VzUmVsZXZhbnRXaXRob3V0RmxleGJveChlbGVtZW50KSAmJlxuICAgICAgICBpc1RhYmJhYmxlV2l0aG91dEZsZXhib3goZWxlbWVudClcbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBJRSBjb25zaWRlcnMgc2Nyb2xsYWJsZSBjb250YWluZXJzIHNjcmlwdCBmb2N1c2FibGUgb25seSxcbiAgICAvLyBldmVuIHRob3VnaCB0aGVpciB0YWJJbmRleCBwcm9wZXJ0eSBpcyAwXG4gICAgaWYgKGlzU2Nyb2xsYWJsZUNvbnRhaW5lcihlbGVtZW50LCBub2RlTmFtZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIHZhciBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnRcbiAgICBpZiAocGFyZW50KSB7XG4gICAgICB2YXIgcGFyZW50Tm9kZU5hbWUgPSBwYXJlbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgdmFyIHBhcmVudFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUocGFyZW50LCBudWxsKVxuICAgICAgLy8gSUUgY29uc2lkZXJzIHNjcm9sbGFibGUgYm9kaWVzIHNjcmlwdCBmb2N1c2FibGUgb25seSxcbiAgICAgIGlmIChcbiAgICAgICAgaXNTY3JvbGxhYmxlQ29udGFpbmVyKHBhcmVudCwgbm9kZU5hbWUsIHBhcmVudE5vZGVOYW1lLCBwYXJlbnRTdHlsZSlcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cblxuICAgICAgLy8gQ2hpbGRyZW4gb2YgZm9jdXNhYmxlIGVsZW1lbnRzIHdpdGggZGlzcGxheTpmbGV4IGFyZSBmb2N1c2FibGUgaW4gSUUxMC0xMSxcbiAgICAgIC8vIGV2ZW4gdGhvdWdoIHRoZWlyIHRhYkluZGV4IHByb3BlcnR5IHN1Z2dlc3RzIG90aGVyd2lzZVxuICAgICAgaWYgKGhhc0Nzc0Rpc3BsYXlGbGV4KHBhcmVudFN0eWxlKSkge1xuICAgICAgICAvLyB2YWx1ZSBvZiB0YWJpbmRleCB0YWtlcyBwcmVjZWRlbmNlXG4gICAgICAgIHJldHVybiBoYXNUYWJiYWJsZVRhYmluZGV4XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1dBSS9QRi9hcmlhLXByYWN0aWNlcy8jZm9jdXNfdGFiaW5kZXhcbiAgcmV0dXJuIGVsZW1lbnQudGFiSW5kZXggPj0gMFxufVxuXG4vLyBiaW5kIGV4Y2VwdGlvbnMgdG8gYW4gaXRlcmF0b3IgY2FsbGJhY2tcbmlzVGFiYmFibGVSdWxlcy5leGNlcHQgPSBmdW5jdGlvbiAoKSB7XG4gIHZhciBleGNlcHQgPVxuICAgIGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge31cblxuICB2YXIgaXNUYWJiYWJsZSA9IGZ1bmN0aW9uIGlzVGFiYmFibGUoY29udGV4dCkge1xuICAgIHJldHVybiBpc1RhYmJhYmxlUnVsZXMoe1xuICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgIGV4Y2VwdDogZXhjZXB0LFxuICAgIH0pXG4gIH1cblxuICBpc1RhYmJhYmxlLnJ1bGVzID0gaXNUYWJiYWJsZVJ1bGVzXG4gIHJldHVybiBpc1RhYmJhYmxlXG59XG5cbnZhciBpc0ZvY3VzUmVsZXZhbnRXaXRob3V0RmxleGJveCA9IGlzRm9jdXNSZWxldmFudC5ydWxlcy5leGNlcHQoe1xuICBmbGV4Ym94OiB0cnVlLFxufSlcbnZhciBpc1RhYmJhYmxlV2l0aG91dEZsZXhib3ggPSBpc1RhYmJhYmxlUnVsZXMuZXhjZXB0KHsgZmxleGJveDogdHJ1ZSB9KVxuXG4vLyBwcm92aWRlIGlzVGFiYmFibGUoY29udGV4dCkgYXMgZGVmYXVsdCBpdGVyYXRvciBjYWxsYmFja1xudmFyIGlzVGFiYmFibGUgPSBpc1RhYmJhYmxlUnVsZXMuZXhjZXB0KHt9KVxuXG5mdW5jdGlvbiBxdWVyeVRhYmJhYmxlKCkge1xuICB2YXIgX3JlZiA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LFxuICAgIGNvbnRleHQgPSBfcmVmLmNvbnRleHQsXG4gICAgaW5jbHVkZUNvbnRleHQgPSBfcmVmLmluY2x1ZGVDb250ZXh0LFxuICAgIGluY2x1ZGVPbmx5VGFiYmFibGUgPSBfcmVmLmluY2x1ZGVPbmx5VGFiYmFibGUsXG4gICAgc3RyYXRlZ3kgPSBfcmVmLnN0cmF0ZWd5XG5cbiAgdmFyIF9pc1RhYmJhYmxlID0gaXNUYWJiYWJsZS5ydWxlcy5leGNlcHQoe1xuICAgIG9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgfSlcblxuICByZXR1cm4gcXVlcnlGb2N1c2FibGUoe1xuICAgIGNvbnRleHQ6IGNvbnRleHQsXG4gICAgaW5jbHVkZUNvbnRleHQ6IGluY2x1ZGVDb250ZXh0LFxuICAgIGluY2x1ZGVPbmx5VGFiYmFibGU6IGluY2x1ZGVPbmx5VGFiYmFibGUsXG4gICAgc3RyYXRlZ3k6IHN0cmF0ZWd5LFxuICB9KS5maWx0ZXIoX2lzVGFiYmFibGUpXG59XG5cbi8vIHNvcnRzIGEgbGlzdCBvZiBlbGVtZW50cyBhY2NvcmRpbmcgdG8gdGhlaXIgb3JkZXIgaW4gdGhlIERPTVxuXG5mdW5jdGlvbiBjb21wYXJlRG9tUG9zaXRpb24oYSwgYikge1xuICByZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HXG4gICAgPyAtMVxuICAgIDogMVxufVxuXG5mdW5jdGlvbiBzb3J0RG9tT3JkZXIoZWxlbWVudHMpIHtcbiAgcmV0dXJuIGVsZW1lbnRzLnNvcnQoY29tcGFyZURvbVBvc2l0aW9uKVxufVxuXG5mdW5jdGlvbiBnZXRGaXJzdFN1Y2Nlc3Nvck9mZnNldChsaXN0LCB0YXJnZXQpIHtcbiAgLy8gZmluZCB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IGNvbWVzIEFGVEVSIHRoZSB0YXJnZXQgZWxlbWVudFxuICByZXR1cm4gZmluZEluZGV4KGxpc3QsIGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRhcmdldC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihlbGVtZW50KSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HXG4gICAgKVxuICB9KVxufVxuXG5mdW5jdGlvbiBmaW5kSW5zZXJ0aW9uT2Zmc2V0cyhsaXN0LCBlbGVtZW50cywgcmVzb2x2ZUVsZW1lbnQpIHtcbiAgLy8gaW5zdGVhZCBvZiBtdXRhdGluZyB0aGUgZWxlbWVudHMgbGlzdCBkaXJlY3RseSwgcmVtZW1iZXIgcG9zaXRpb24gYW5kIG1hcFxuICAvLyB0byBpbmplY3QgbGF0ZXIsIHdoZW4gd2UgY2FuIGRvIHRoaXMgbW9yZSBlZmZpY2llbnRseVxuICB2YXIgaW5zZXJ0aW9ucyA9IFtdXG4gIGVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICB2YXIgcmVwbGFjZSA9IHRydWVcbiAgICB2YXIgb2Zmc2V0ID0gbGlzdC5pbmRleE9mKGVsZW1lbnQpXG5cbiAgICBpZiAob2Zmc2V0ID09PSAtMSkge1xuICAgICAgLy8gZWxlbWVudCBpcyBub3QgaW4gdGFyZ2V0IGxpc3RcbiAgICAgIG9mZnNldCA9IGdldEZpcnN0U3VjY2Vzc29yT2Zmc2V0KGxpc3QsIGVsZW1lbnQpXG4gICAgICByZXBsYWNlID0gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAob2Zmc2V0ID09PSAtMSkge1xuICAgICAgLy8gdGhlcmUgaXMgbm8gc3VjY2Vzc29yIGluIHRoZSB0YWJzZXF1ZW5jZSxcbiAgICAgIC8vIG1lYW5pbmcgdGhlIGltYWdlIG11c3QgYmUgdGhlIGxhc3QgZWxlbWVudFxuICAgICAgb2Zmc2V0ID0gbGlzdC5sZW5ndGhcbiAgICB9XG5cbiAgICAvLyBhbGxvdyB0aGUgY29uc3VtZXIgdG8gcmVwbGFjZSB0aGUgaW5qZWN0ZWQgZWxlbWVudFxuICAgIHZhciBpbmplY3Rpb25zID0gbm9kZUFycmF5KFxuICAgICAgcmVzb2x2ZUVsZW1lbnQgPyByZXNvbHZlRWxlbWVudChlbGVtZW50KSA6IGVsZW1lbnRcbiAgICApXG4gICAgaWYgKCFpbmplY3Rpb25zLmxlbmd0aCkge1xuICAgICAgLy8gd2UgY2FuJ3QgaW5qZWN0IHplcm8gZWxlbWVudHNcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGluc2VydGlvbnMucHVzaCh7XG4gICAgICBvZmZzZXQ6IG9mZnNldCxcbiAgICAgIHJlcGxhY2U6IHJlcGxhY2UsXG4gICAgICBlbGVtZW50czogaW5qZWN0aW9ucyxcbiAgICB9KVxuICB9KVxuXG4gIHJldHVybiBpbnNlcnRpb25zXG59XG5cbmZ1bmN0aW9uIGluc2VydEVsZW1lbnRzQXRPZmZzZXRzKGxpc3QsIGluc2VydGlvbnMpIHtcbiAgLy8gcmVtZW1iZXIgdGhlIG51bWJlciBvZiBlbGVtZW50cyB3ZSBoYXZlIGFscmVhZHkgaW5qZWN0ZWRcbiAgLy8gc28gd2UgYWNjb3VudCBmb3IgdGhlIGNhdXNlZCBpbmRleCBvZmZzZXRcbiAgdmFyIGluc2VydGVkID0gMFxuICAvLyBtYWtlIHN1cmUgdGhhdCB3ZSBpbnNlcnQgdGhlIGVsZW1lbnRzIGluIHNlcXVlbmNlLFxuICAvLyBvdGhlcndpc2UgdGhlIG9mZnNldCBjb21wZW5zYXRpb24gd29uJ3Qgd29ya1xuICBpbnNlcnRpb25zLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICByZXR1cm4gYS5vZmZzZXQgLSBiLm9mZnNldFxuICB9KVxuICBpbnNlcnRpb25zLmZvckVhY2goZnVuY3Rpb24gKGluc2VydGlvbikge1xuICAgIC8vIGFycmF5LnNwbGljZSBoYXMgYW4gYW5ub3lpbmcgZnVuY3Rpb24gc2lnbmF0dXJlIDooXG4gICAgdmFyIHJlbW92ZSA9IGluc2VydGlvbi5yZXBsYWNlID8gMSA6IDBcbiAgICB2YXIgYXJncyA9IFtpbnNlcnRpb24ub2Zmc2V0ICsgaW5zZXJ0ZWQsIHJlbW92ZV0uY29uY2F0KGluc2VydGlvbi5lbGVtZW50cylcbiAgICBsaXN0LnNwbGljZS5hcHBseShsaXN0LCBhcmdzKVxuICAgIGluc2VydGVkICs9IGluc2VydGlvbi5lbGVtZW50cy5sZW5ndGggLSByZW1vdmVcbiAgfSlcbn1cblxuZnVuY3Rpb24gbWVyZ2VJbkRvbU9yZGVyKCkge1xuICB2YXIgX3JlZiA9XG4gICAgICBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IHt9LFxuICAgIGxpc3QgPSBfcmVmLmxpc3QsXG4gICAgZWxlbWVudHMgPSBfcmVmLmVsZW1lbnRzLFxuICAgIHJlc29sdmVFbGVtZW50ID0gX3JlZi5yZXNvbHZlRWxlbWVudFxuXG4gIC8vIG9wZXJhdGUgb24gYSBjb3B5IHNvIHdlIGRvbid0IG11dGF0ZSB0aGUgb3JpZ2luYWwgYXJyYXlcbiAgdmFyIF9saXN0ID0gbGlzdC5zbGljZSgwKVxuICAvLyBtYWtlIHN1cmUgdGhlIGVsZW1lbnRzIHdlJ3JlIGluamVjdGluZyBhcmUgcHJvdmlkZWQgaW4gRE9NIG9yZGVyXG4gIHZhciBfZWxlbWVudHMgPSBub2RlQXJyYXkoZWxlbWVudHMpLnNsaWNlKDApXG4gIHNvcnREb21PcmRlcihfZWxlbWVudHMpXG4gIC8vIGZpbmQgdGhlIG9mZnNldHMgd2l0aGluIHRoZSB0YXJnZXQgYXJyYXkgKGxpc3QpIGF0IHdoaWNoIHRvIGluamVjdFxuICAvLyBlYWNoIGluZGl2aWR1YWwgZWxlbWVudCAoZnJvbSBlbGVtZW50cylcbiAgdmFyIGluc2VydGlvbnMgPSBmaW5kSW5zZXJ0aW9uT2Zmc2V0cyhfbGlzdCwgX2VsZW1lbnRzLCByZXNvbHZlRWxlbWVudClcbiAgLy8gYWN0dWFsbHkgaW5qZWN0IHRoZSBlbGVtZW50cyBpbnRvIHRoZSB0YXJnZXQgYXJyYXkgYXQgdGhlIGlkZW50aWZpZWQgcG9zaXRpb25zXG4gIGluc2VydEVsZW1lbnRzQXRPZmZzZXRzKF9saXN0LCBpbnNlcnRpb25zKVxuICByZXR1cm4gX2xpc3Rcbn1cblxudmFyIF9jcmVhdGVDbGFzcyA9IChmdW5jdGlvbiAoKSB7XG4gIGZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXModGFyZ2V0LCBwcm9wcykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBkZXNjcmlwdG9yID0gcHJvcHNbaV1cbiAgICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSB8fCBmYWxzZVxuICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlXG4gICAgICBpZiAoJ3ZhbHVlJyBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZVxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgZGVzY3JpcHRvci5rZXksIGRlc2NyaXB0b3IpXG4gICAgfVxuICB9XG4gIHJldHVybiBmdW5jdGlvbiAoQ29uc3RydWN0b3IsIHByb3RvUHJvcHMsIHN0YXRpY1Byb3BzKSB7XG4gICAgaWYgKHByb3RvUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IucHJvdG90eXBlLCBwcm90b1Byb3BzKVxuICAgIGlmIChzdGF0aWNQcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvciwgc3RhdGljUHJvcHMpXG4gICAgcmV0dXJuIENvbnN0cnVjdG9yXG4gIH1cbn0pKClcblxuZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3Rvcikge1xuICBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0Nhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbicpXG4gIH1cbn1cblxudmFyIE1hcHMgPSAoZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBNYXBzKGNvbnRleHQpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgTWFwcylcblxuICAgIHRoaXMuX2RvY3VtZW50ID0gZ2V0RG9jdW1lbnQoY29udGV4dClcbiAgICB0aGlzLm1hcHMgPSB7fVxuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKE1hcHMsIFtcbiAgICB7XG4gICAgICBrZXk6ICdnZXRBcmVhc0ZvcicsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0QXJlYXNGb3IobmFtZSkge1xuICAgICAgICBpZiAoIXRoaXMubWFwc1tuYW1lXSkge1xuICAgICAgICAgIC8vIHRoZSBtYXAgaXMgbm90IGRlZmluZWQgd2l0aGluIHRoZSBjb250ZXh0LCBzbyB3ZVxuICAgICAgICAgIC8vIGhhdmUgdG8gZ28gZmluZCBpdCBlbHNld2hlcmUgaW4gdGhlIGRvY3VtZW50XG4gICAgICAgICAgdGhpcy5hZGRNYXBCeU5hbWUobmFtZSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1hcHNbbmFtZV1cbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdhZGRNYXBCeU5hbWUnLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGFkZE1hcEJ5TmFtZShuYW1lKSB7XG4gICAgICAgIHZhciBtYXAgPSBnZXRNYXBCeU5hbWUobmFtZSwgdGhpcy5fZG9jdW1lbnQpXG4gICAgICAgIGlmICghbWFwKSB7XG4gICAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gbWFwLCB0aGUgaW1nW3VzZW1hcF0gd2Fzbid0IGRvaW5nIGFueXRoaW5nIGFueXdheVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tYXBzW21hcC5uYW1lXSA9IHF1ZXJ5VGFiYmFibGUoeyBjb250ZXh0OiBtYXAgfSlcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdleHRyYWN0QXJlYXNGcm9tTGlzdCcsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gZXh0cmFjdEFyZWFzRnJvbUxpc3QoZWxlbWVudHMpIHtcbiAgICAgICAgLy8gcmVtb3ZlIGFsbCA8YXJlYT4gZWxlbWVudHMgZnJvbSB0aGUgZWxlbWVudHMgbGlzdCxcbiAgICAgICAgLy8gYnV0IHB1dCB0aGVtIHRoZSBtYXAgZm9yIGxhdGVyIHJldHJpZXZhbFxuICAgICAgICByZXR1cm4gZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uIChlbGVtZW50KSB7XG4gICAgICAgICAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgaWYgKG5vZGVOYW1lICE9PSAnYXJlYScpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdmFyIG1hcCA9IGVsZW1lbnQucGFyZW50Tm9kZVxuICAgICAgICAgIGlmICghdGhpcy5tYXBzW21hcC5uYW1lXSkge1xuICAgICAgICAgICAgdGhpcy5tYXBzW21hcC5uYW1lXSA9IFtdXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5tYXBzW21hcC5uYW1lXS5wdXNoKGVsZW1lbnQpXG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH0sIHRoaXMpXG4gICAgICB9LFxuICAgIH0sXG4gIF0pXG5cbiAgcmV0dXJuIE1hcHNcbn0pKClcblxuZnVuY3Rpb24gc29ydEFyZWEoZWxlbWVudHMsIGNvbnRleHQpIHtcbiAgLy8gaW1hZ2VzIC0gdW5sZXNzIHRoZXkgYXJlIGZvY3VzYWJsZSB0aGVtc2VsdmVzLCBsaWtlbHkgbm90XG4gIC8vIHBhcnQgb2YgdGhlIGVsZW1lbnRzIGxpc3QsIHNvIHdlJ2xsIGhhdmUgdG8gZmluZCB0aGVtIGFuZFxuICAvLyBzb3J0IHRoZW0gaW50byB0aGUgZWxlbWVudHMgbGlzdCBtYW51YWxseVxuICB2YXIgdXNlbWFwcyA9IGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCgnaW1nW3VzZW1hcF0nKVxuICB2YXIgbWFwcyA9IG5ldyBNYXBzKGNvbnRleHQpXG5cbiAgLy8gcmVtb3ZlIGFsbCA8YXJlYT4gZWxlbWVudHMgZnJvbSB0aGUgZWxlbWVudHMgbGlzdCxcbiAgLy8gYnV0IHB1dCB0aGVtIHRoZSBtYXAgZm9yIGxhdGVyIHJldHJpZXZhbFxuICB2YXIgX2VsZW1lbnRzID0gbWFwcy5leHRyYWN0QXJlYXNGcm9tTGlzdChlbGVtZW50cylcblxuICBpZiAoIXVzZW1hcHMubGVuZ3RoKSB7XG4gICAgLy8gdGhlIGNvbnRleHQgZG9lcyBub3QgY29udGFpbiBhbnkgPGFyZWE+cyBzbyBubyBuZWVkXG4gICAgLy8gdG8gcmVwbGFjZSBhbnl0aGluZywganVzdCByZW1vdmUgYW55IG1hcHNcbiAgICByZXR1cm4gX2VsZW1lbnRzXG4gIH1cblxuICByZXR1cm4gbWVyZ2VJbkRvbU9yZGVyKHtcbiAgICBsaXN0OiBfZWxlbWVudHMsXG4gICAgZWxlbWVudHM6IHVzZW1hcHMsXG4gICAgcmVzb2x2ZUVsZW1lbnQ6IGZ1bmN0aW9uIHJlc29sdmVFbGVtZW50KGltYWdlKSB7XG4gICAgICB2YXIgbmFtZSA9IGltYWdlLmdldEF0dHJpYnV0ZSgndXNlbWFwJykuc2xpY2UoMSlcbiAgICAgIHJldHVybiBtYXBzLmdldEFyZWFzRm9yKG5hbWUpXG4gICAgfSxcbiAgfSlcbn1cblxudmFyIF9jcmVhdGVDbGFzcyQxID0gKGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wcy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXVxuICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlXG4gICAgICBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWVcbiAgICAgIGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcilcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZ1bmN0aW9uIChDb25zdHJ1Y3RvciwgcHJvdG9Qcm9wcywgc3RhdGljUHJvcHMpIHtcbiAgICBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpXG4gICAgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcylcbiAgICByZXR1cm4gQ29uc3RydWN0b3JcbiAgfVxufSkoKVxuXG5mdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2skMShpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24nKVxuICB9XG59XG5cbnZhciBTaGFkb3dzID0gKGZ1bmN0aW9uICgpIHtcbiAgZnVuY3Rpb24gU2hhZG93cyhjb250ZXh0LCBzb3J0RWxlbWVudHMpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2skMSh0aGlzLCBTaGFkb3dzKVxuXG4gICAgLy8gZG9jdW1lbnQgY29udGV4dCB3ZSdyZSB3b3JraW5nIHdpdGhcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0XG4gICAgLy8gY2FsbGJhY2sgdGhhdCBzb3J0cyBhbiBhcnJheSBvZiBlbGVtZW50c1xuICAgIHRoaXMuc29ydEVsZW1lbnRzID0gc29ydEVsZW1lbnRzXG4gICAgLy8gcmVmZXJlbmNlIHRvIGNyZWF0ZSB1bmlxdWUgSURzIGZvciBlYWNoIFNoYWRvd0hvc3RcbiAgICB0aGlzLmhvc3RDb3VudGVyID0gMVxuICAgIC8vIHJlZmVyZW5jZSBtYXAgZm9yIGNoaWxkLVNoYWRvd0hvc3RzIG9mIGEgU2hhZG93SG9zdFxuICAgIHRoaXMuaW5Ib3N0ID0ge31cbiAgICAvLyByZWZlcmVuY2UgbWFwIGZvciBjaGlsZC1TaGFkb3dIb3N0IG9mIHRoZSBkb2N1bWVudFxuICAgIHRoaXMuaW5Eb2N1bWVudCA9IFtdXG4gICAgLy8gcmVmZXJlbmNlIG1hcCBmb3IgU2hhZG93SG9zdHNcbiAgICB0aGlzLmhvc3RzID0ge31cbiAgICAvLyByZWZlcmVuY2UgbWFwIGZvciB0YWJiYWJsZSBlbGVtZW50cyBvZiBhIFNoYWRvd0hvc3RcbiAgICB0aGlzLmVsZW1lbnRzID0ge31cbiAgfVxuXG4gIC8vIHJlbWVtYmVyIHdoaWNoIGhvc3RzIHdlIGhhdmUgdG8gc29ydCB3aXRoaW4gbGF0ZXJcblxuICBfY3JlYXRlQ2xhc3MkMShTaGFkb3dzLCBbXG4gICAge1xuICAgICAga2V5OiAnX3JlZ2lzdGVySG9zdCcsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gX3JlZ2lzdGVySG9zdChob3N0KSB7XG4gICAgICAgIGlmIChob3N0Ll9zb3J0aW5nSWQpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIG1ha2UgdGhlIFNoYWRvd0hvc3QgaWRlbnRpZmlhYmxlIChzZWUgY2xlYW51cCgpIGZvciB1bmRvKVxuICAgICAgICBob3N0Ll9zb3J0aW5nSWQgPSAnc2hhZG93LScgKyB0aGlzLmhvc3RDb3VudGVyKytcbiAgICAgICAgdGhpcy5ob3N0c1tob3N0Ll9zb3J0aW5nSWRdID0gaG9zdFxuXG4gICAgICAgIC8vIGhvc3RzIG1heSBjb250YWluIG90aGVyIGhvc3RzXG4gICAgICAgIHZhciBwYXJlbnRIb3N0ID0gZ2V0U2hhZG93SG9zdCh7IGNvbnRleHQ6IGhvc3QgfSlcbiAgICAgICAgaWYgKHBhcmVudEhvc3QpIHtcbiAgICAgICAgICB0aGlzLl9yZWdpc3Rlckhvc3QocGFyZW50SG9zdClcbiAgICAgICAgICB0aGlzLl9yZWdpc3Rlckhvc3RQYXJlbnQoaG9zdCwgcGFyZW50SG9zdClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmluRG9jdW1lbnQucHVzaChob3N0KVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAvLyByZW1lbWJlciB3aGljaCBob3N0IGlzIHRoZSBjaGlsZCBvZiB3aGljaCBvdGhlciBob3N0XG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdfcmVnaXN0ZXJIb3N0UGFyZW50JyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVnaXN0ZXJIb3N0UGFyZW50KGhvc3QsIHBhcmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5Ib3N0W3BhcmVudC5fc29ydGluZ0lkXSkge1xuICAgICAgICAgIHRoaXMuaW5Ib3N0W3BhcmVudC5fc29ydGluZ0lkXSA9IFtdXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluSG9zdFtwYXJlbnQuX3NvcnRpbmdJZF0ucHVzaChob3N0KVxuICAgICAgfSxcblxuICAgICAgLy8gcmVtZW1iZXIgd2hpY2ggZWxlbWVudHMgYSBob3N0IGNvbnRhaW5zXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdfcmVnaXN0ZXJFbGVtZW50JyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVnaXN0ZXJFbGVtZW50KGVsZW1lbnQsIGhvc3QpIHtcbiAgICAgICAgaWYgKCF0aGlzLmVsZW1lbnRzW2hvc3QuX3NvcnRpbmdJZF0pIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRzW2hvc3QuX3NvcnRpbmdJZF0gPSBbXVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbGVtZW50c1tob3N0Ll9zb3J0aW5nSWRdLnB1c2goZWxlbWVudClcbiAgICAgIH0sXG5cbiAgICAgIC8vIHJlbW92ZSBzaGFkb3dlZCBlbGVtZW50cyBmcm9tIHRoZSBzZXF1ZW5jZSBhbmQgcmVnaXN0ZXJcbiAgICAgIC8vIHRoZSBTaGFkb3dIb3N0cyB0aGV5IGJlbG9uZyB0byBzbyB3ZSBrbm93IHdoYXQgdG8gc29ydFxuICAgICAgLy8gbGF0ZXIgb25cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2V4dHJhY3RFbGVtZW50cycsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gZXh0cmFjdEVsZW1lbnRzKGVsZW1lbnRzKSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50cy5maWx0ZXIoZnVuY3Rpb24gKGVsZW1lbnQpIHtcbiAgICAgICAgICB2YXIgaG9zdCA9IGdldFNoYWRvd0hvc3QoeyBjb250ZXh0OiBlbGVtZW50IH0pXG4gICAgICAgICAgaWYgKCFob3N0KSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuX3JlZ2lzdGVySG9zdChob3N0KVxuICAgICAgICAgIHRoaXMuX3JlZ2lzdGVyRWxlbWVudChlbGVtZW50LCBob3N0KVxuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9LCB0aGlzKVxuICAgICAgfSxcblxuICAgICAgLy8gaW5qZWN0IGhvc3RzIGludG8gdGhlIHNlcXVlbmNlLCBzb3J0IGV2ZXJ5dGhpbmcsXG4gICAgICAvLyBhbmQgcmVjb3Vyc2l2ZWx5IHJlcGxhY2UgaG9zdHMgYnkgaXRzIGRlc2NlbmRhbnRzXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdzb3J0JyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBzb3J0KGVsZW1lbnRzKSB7XG4gICAgICAgIHZhciBfZWxlbWVudHMgPSB0aGlzLl9pbmplY3RIb3N0cyhlbGVtZW50cylcbiAgICAgICAgX2VsZW1lbnRzID0gdGhpcy5fcmVwbGFjZUhvc3RzKF9lbGVtZW50cylcbiAgICAgICAgdGhpcy5fY2xlYW51cCgpXG4gICAgICAgIHJldHVybiBfZWxlbWVudHNcbiAgICAgIH0sXG5cbiAgICAgIC8vIG1lcmdlIFNoYWRvd0hvc3RzIGludG8gdGhlIGVsZW1lbnQgbGlzdHMgb2Ygb3RoZXIgU2hhZG93SG9zdHNcbiAgICAgIC8vIG9yIHRoZSBkb2N1bWVudCwgdGhlbiBzb3J0IHRoZSBpbmRpdmlkdWFsIGxpc3RzXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdfaW5qZWN0SG9zdHMnLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIF9pbmplY3RIb3N0cyhlbGVtZW50cykge1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmhvc3RzKS5mb3JFYWNoKGZ1bmN0aW9uIChfc29ydGluZ0lkKSB7XG4gICAgICAgICAgdmFyIF9saXN0ID0gdGhpcy5lbGVtZW50c1tfc29ydGluZ0lkXVxuICAgICAgICAgIHZhciBfZWxlbWVudHMgPSB0aGlzLmluSG9zdFtfc29ydGluZ0lkXVxuICAgICAgICAgIHZhciBfY29udGV4dCA9IHRoaXMuaG9zdHNbX3NvcnRpbmdJZF0uc2hhZG93Um9vdFxuICAgICAgICAgIHRoaXMuZWxlbWVudHNbX3NvcnRpbmdJZF0gPSB0aGlzLl9tZXJnZShfbGlzdCwgX2VsZW1lbnRzLCBfY29udGV4dClcbiAgICAgICAgfSwgdGhpcylcblxuICAgICAgICByZXR1cm4gdGhpcy5fbWVyZ2UoZWxlbWVudHMsIHRoaXMuaW5Eb2N1bWVudCwgdGhpcy5jb250ZXh0KVxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ19tZXJnZScsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gX21lcmdlKGxpc3QsIGVsZW1lbnRzLCBjb250ZXh0KSB7XG4gICAgICAgIHZhciBtZXJnZWQgPSBtZXJnZUluRG9tT3JkZXIoe1xuICAgICAgICAgIGxpc3Q6IGxpc3QsXG4gICAgICAgICAgZWxlbWVudHM6IGVsZW1lbnRzLFxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRFbGVtZW50cyhtZXJnZWQsIGNvbnRleHQpXG4gICAgICB9LFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnX3JlcGxhY2VIb3N0cycsXG4gICAgICB2YWx1ZTogZnVuY3Rpb24gX3JlcGxhY2VIb3N0cyhlbGVtZW50cykge1xuICAgICAgICByZXR1cm4gbWVyZ2VJbkRvbU9yZGVyKHtcbiAgICAgICAgICBsaXN0OiBlbGVtZW50cyxcbiAgICAgICAgICBlbGVtZW50czogdGhpcy5pbkRvY3VtZW50LFxuICAgICAgICAgIHJlc29sdmVFbGVtZW50OiB0aGlzLl9yZXNvbHZlSG9zdEVsZW1lbnQuYmluZCh0aGlzKSxcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdfcmVzb2x2ZUhvc3RFbGVtZW50JyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBfcmVzb2x2ZUhvc3RFbGVtZW50KGhvc3QpIHtcbiAgICAgICAgdmFyIG1lcmdlZCA9IG1lcmdlSW5Eb21PcmRlcih7XG4gICAgICAgICAgbGlzdDogdGhpcy5lbGVtZW50c1tob3N0Ll9zb3J0aW5nSWRdLFxuICAgICAgICAgIGVsZW1lbnRzOiB0aGlzLmluSG9zdFtob3N0Ll9zb3J0aW5nSWRdLFxuICAgICAgICAgIHJlc29sdmVFbGVtZW50OiB0aGlzLl9yZXNvbHZlSG9zdEVsZW1lbnQuYmluZCh0aGlzKSxcbiAgICAgICAgfSlcblxuICAgICAgICB2YXIgX3RhYmluZGV4ID0gdGFiaW5kZXhWYWx1ZShob3N0KVxuICAgICAgICBpZiAoX3RhYmluZGV4ICE9PSBudWxsICYmIF90YWJpbmRleCA+IC0xKSB7XG4gICAgICAgICAgcmV0dXJuIFtob3N0XS5jb25jYXQobWVyZ2VkKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1lcmdlZFxuICAgICAgfSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ19jbGVhbnVwJyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBfY2xlYW51cCgpIHtcbiAgICAgICAgLy8gcmVtb3ZlIHRob3NlIGlkZW50aWZlcnMgd2UgcHV0IG9uIHRoZSBTaGFkb3dIb3N0IHRvIGF2b2lkIHVzaW5nIE1hcCgpXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuaG9zdHMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmhvc3RzW2tleV0uX3NvcnRpbmdJZFxuICAgICAgICB9LCB0aGlzKVxuICAgICAgfSxcbiAgICB9LFxuICBdKVxuXG4gIHJldHVybiBTaGFkb3dzXG59KSgpXG5cbmZ1bmN0aW9uIHNvcnRTaGFkb3dlZChlbGVtZW50cywgY29udGV4dCwgc29ydEVsZW1lbnRzKSB7XG4gIHZhciBzaGFkb3dzID0gbmV3IFNoYWRvd3MoY29udGV4dCwgc29ydEVsZW1lbnRzKVxuICB2YXIgX2VsZW1lbnRzID0gc2hhZG93cy5leHRyYWN0RWxlbWVudHMoZWxlbWVudHMpXG5cbiAgaWYgKF9lbGVtZW50cy5sZW5ndGggPT09IGVsZW1lbnRzLmxlbmd0aCkge1xuICAgIC8vIG5vIHNoYWRvd2VkIGNvbnRlbnQgZm91bmQsIG5vIG5lZWQgdG8gY29udGludWVcbiAgICByZXR1cm4gc29ydEVsZW1lbnRzKGVsZW1lbnRzKVxuICB9XG5cbiAgcmV0dXJuIHNoYWRvd3Muc29ydChfZWxlbWVudHMpXG59XG5cbmZ1bmN0aW9uIHNvcnRUYWJpbmRleChlbGVtZW50cykge1xuICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvSFRNTEVsZW1lbnQudGFiSW5kZXhcbiAgLy8gZWxlbWVudHMgd2l0aCB0YWJJbmRleCBcIjBcIiAoaW5jbHVkaW5nIHRhYmJhYmxlRWxlbWVudHMgd2l0aG91dCB0YWJJbmRleCkgc2hvdWxkIGJlIG5hdmlnYXRlZCBpbiB0aGUgb3JkZXIgdGhleSBhcHBlYXIuXG4gIC8vIGVsZW1lbnRzIHdpdGggYSBwb3NpdGl2ZSB0YWJJbmRleDpcbiAgLy8gICBFbGVtZW50cyB0aGF0IGhhdmUgaWRlbnRpY2FsIHRhYkluZGV4ZXMgc2hvdWxkIGJlIG5hdmlnYXRlZCBpbiB0aGUgb3JkZXIgdGhleSBhcHBlYXIuXG4gIC8vICAgTmF2aWdhdGlvbiBwcm9jZWVkcyBmcm9tIHRoZSBsb3dlc3QgdGFiSW5kZXggdG8gdGhlIGhpZ2hlc3QgdGFiSW5kZXguXG5cbiAgLy8gTk9URTogc29ydCBpbXBsZW1lbnRhdGlvbiBtYXkgYmUgdW5zdGFibGUgYW5kIHRodXMgbWVzcyB1cCBET00gb3JkZXIsXG4gIC8vIHRoYXQncyB3aHkgd2UgYnVpbGQgYSBtYXAgdGhhdCdzIGJlaW5nIHNvcnRlZCBpbnN0ZWFkLiBJZiB3ZSB3ZXJlIGFibGUgdG8gcmVseVxuICAvLyBvbiBhIHN0YWJsZSBzb3J0aW5nIGFsZ29yaXRobSwgc29ydFRhYmluZGV4KCkgY291bGQgYmUgYXMgc2ltcGxlIGFzXG4gIC8vIGVsZW1lbnRzLnNvcnQoZnVuY3Rpb24oYSwgYikgeyByZXR1cm4gYS50YWJJbmRleCAtIGIudGFiSW5kZXg7IH0pO1xuICAvLyBhdCB0aGlzIHRpbWUgQ2hyb21lIGRvZXMgbm90IHVzZSBhIHN0YWJsZSBzb3J0aW5nIGFsZ29yaXRobVxuICAvLyBzZWUgaHR0cDovL2Jsb2cucm9kbmV5cmVobS5kZS9hcmNoaXZlcy8xNC1Tb3J0aW5nLVdlcmUtRG9pbmctSXQtV3JvbmcuaHRtbCNzdGFiaWxpdHlcblxuICAvLyBOT1RFOiBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiBzZWVtZWQgbGlrZSBtb3JlIG92ZXJoZWFkIHRoYW4ganVzdCBzb3J0aW5nIHRoaXMgd2l0aCBidWNrZXRzXG4gIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9Ob2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uXG5cbiAgdmFyIG1hcCA9IHt9XG4gIHZhciBpbmRleGVzID0gW11cbiAgdmFyIG5vcm1hbCA9IGVsZW1lbnRzLmZpbHRlcihmdW5jdGlvbiAoZWxlbWVudCkge1xuICAgIC8vIGluIFRyaWRlbnQgYW5kIEdlY2tvIFNWR0VsZW1lbnQgZG9lcyBub3Qga25vdyBhYm91dCB0aGUgdGFiSW5kZXggcHJvcGVydHlcbiAgICB2YXIgdGFiSW5kZXggPSBlbGVtZW50LnRhYkluZGV4XG4gICAgaWYgKHRhYkluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRhYkluZGV4ID0gdGFiaW5kZXhWYWx1ZShlbGVtZW50KVxuICAgIH1cblxuICAgIC8vIGV4dHJhY3QgZWxlbWVudHMgdGhhdCBkb24ndCBuZWVkIHNvcnRpbmdcbiAgICBpZiAodGFiSW5kZXggPD0gMCB8fCB0YWJJbmRleCA9PT0gbnVsbCB8fCB0YWJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGlmICghbWFwW3RhYkluZGV4XSkge1xuICAgICAgLy8gY3JlYXRlIHNvcnRhYmxlIGJ1Y2tldCBmb3IgZG9tLW9yZGVyLXByZXNlcnZhdGlvbiBvZiBlbGVtZW50cyB3aXRoIHRoZSBzYW1lIHRhYkluZGV4XG4gICAgICBtYXBbdGFiSW5kZXhdID0gW11cbiAgICAgIC8vIG1haW50YWluIGEgbGlzdCBvZiB1bmlxdWUgdGFiSW5kZXhlc1xuICAgICAgaW5kZXhlcy5wdXNoKHRhYkluZGV4KVxuICAgIH1cblxuICAgIC8vIHNvcnQgZWxlbWVudCBpbnRvIHRoZSBwcm9wZXIgYnVja2V0XG4gICAgbWFwW3RhYkluZGV4XS5wdXNoKGVsZW1lbnQpXG4gICAgLy8gZWxlbWVudCBtb3ZlZCB0byBzb3J0aW5nIG1hcCwgc28gbm90IFwibm9ybWFsXCIgYW55bW9yZVxuICAgIHJldHVybiBmYWxzZVxuICB9KVxuXG4gIC8vIHNvcnQgdGhlIHRhYmluZGV4IGFzY2VuZGluZyxcbiAgLy8gdGhlbiByZXNvbHZlIHRoZW0gdG8gdGhlaXIgYXBwcm9wcmlhdGUgYnVja2V0cyxcbiAgLy8gdGhlbiBmbGF0dGVuIHRoZSBhcnJheSBvZiBhcnJheXMgdG8gYW4gYXJyYXlcbiAgdmFyIF9lbGVtZW50cyA9IGluZGV4ZXNcbiAgICAuc29ydCgpXG4gICAgLm1hcChmdW5jdGlvbiAodGFiSW5kZXgpIHtcbiAgICAgIHJldHVybiBtYXBbdGFiSW5kZXhdXG4gICAgfSlcbiAgICAucmVkdWNlUmlnaHQoZnVuY3Rpb24gKHByZXZpb3VzLCBjdXJyZW50KSB7XG4gICAgICByZXR1cm4gY3VycmVudC5jb25jYXQocHJldmlvdXMpXG4gICAgfSwgbm9ybWFsKVxuXG4gIHJldHVybiBfZWxlbWVudHNcbn1cblxudmFyIHN1cHBvcnRzJDggPSB2b2lkIDBcblxuZnVuY3Rpb24gbW92ZUNvbnRleHRUb0JlZ2lubmluZyhlbGVtZW50cywgY29udGV4dCkge1xuICB2YXIgcG9zID0gZWxlbWVudHMuaW5kZXhPZihjb250ZXh0KVxuICBpZiAocG9zID4gMCkge1xuICAgIHZhciB0bXAgPSBlbGVtZW50cy5zcGxpY2UocG9zLCAxKVxuICAgIHJldHVybiB0bXAuY29uY2F0KGVsZW1lbnRzKVxuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRzXG59XG5cbmZ1bmN0aW9uIHNvcnRFbGVtZW50cyhlbGVtZW50cywgX2NvbnRleHQpIHtcbiAgaWYgKHN1cHBvcnRzJDgudGFic2VxdWVuY2VBcmVhQXRJbWdQb3NpdGlvbikge1xuICAgIC8vIFNvbWUgYnJvd3NlcnMgc29ydCA8YXJlYT4gaW4gRE9NIG9yZGVyLCBzb21lIHBsYWNlIHRoZSA8YXJlYT5zXG4gICAgLy8gd2hlcmUgdGhlIDxpbWc+IHJlZmVyZWNpbmcgdGhlbSB3b3VsZCd2ZSBiZWVuIGluIERPTSBvcmRlci5cbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzVcbiAgICBlbGVtZW50cyA9IHNvcnRBcmVhKGVsZW1lbnRzLCBfY29udGV4dClcbiAgfVxuXG4gIGVsZW1lbnRzID0gc29ydFRhYmluZGV4KGVsZW1lbnRzKVxuICByZXR1cm4gZWxlbWVudHNcbn1cblxuZnVuY3Rpb24gcXVlcnlUYWJzZXF1ZW5jZSgpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBjb250ZXh0ID0gX3JlZi5jb250ZXh0LFxuICAgIGluY2x1ZGVDb250ZXh0ID0gX3JlZi5pbmNsdWRlQ29udGV4dCxcbiAgICBpbmNsdWRlT25seVRhYmJhYmxlID0gX3JlZi5pbmNsdWRlT25seVRhYmJhYmxlLFxuICAgIHN0cmF0ZWd5ID0gX3JlZi5zdHJhdGVneVxuXG4gIGlmICghc3VwcG9ydHMkOCkge1xuICAgIHN1cHBvcnRzJDggPSBfc3VwcG9ydHMoKVxuICB9XG5cbiAgdmFyIF9jb250ZXh0ID0gbm9kZUFycmF5KGNvbnRleHQpWzBdIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICB2YXIgZWxlbWVudHMgPSBxdWVyeVRhYmJhYmxlKHtcbiAgICBjb250ZXh0OiBfY29udGV4dCxcbiAgICBpbmNsdWRlQ29udGV4dDogaW5jbHVkZUNvbnRleHQsXG4gICAgaW5jbHVkZU9ubHlUYWJiYWJsZTogaW5jbHVkZU9ubHlUYWJiYWJsZSxcbiAgICBzdHJhdGVneTogc3RyYXRlZ3ksXG4gIH0pXG5cbiAgaWYgKGRvY3VtZW50LmJvZHkuY3JlYXRlU2hhZG93Um9vdCAmJiBwbGF0Zm9ybS5pcy5CTElOSykge1xuICAgIC8vIHNvcnQgdGFiaW5kZXggbG9jYWxpemVkIHRvIHNoYWRvdyBkb21cbiAgICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21lZGlhbGl6ZS9hbGx5LmpzL2lzc3Vlcy82XG4gICAgZWxlbWVudHMgPSBzb3J0U2hhZG93ZWQoZWxlbWVudHMsIF9jb250ZXh0LCBzb3J0RWxlbWVudHMpXG4gIH0gZWxzZSB7XG4gICAgZWxlbWVudHMgPSBzb3J0RWxlbWVudHMoZWxlbWVudHMsIF9jb250ZXh0KVxuICB9XG5cbiAgaWYgKGluY2x1ZGVDb250ZXh0KSB7XG4gICAgLy8gaWYgd2UgaW5jbHVkZSB0aGUgY29udGV4dCBpdHNlbGYsIGl0IGhhcyB0byBiZSB0aGUgZmlyc3RcbiAgICAvLyBlbGVtZW50IG9mIHRoZSBzZXF1ZW5jZVxuICAgIGVsZW1lbnRzID0gbW92ZUNvbnRleHRUb0JlZ2lubmluZyhlbGVtZW50cywgX2NvbnRleHQpXG4gIH1cblxuICByZXR1cm4gZWxlbWVudHNcbn1cblxuLy8gY29kZXMgbW9zdGx5IGNsb25lZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9rZWl0aGFtdXMvandlcnR5L2Jsb2IvbWFzdGVyL2p3ZXJ0eS5qc1xuLy8gZGVsaWJlcmF0ZWx5IG5vdCBleHBvc2luZyBjaGFyYWN0ZXJzIGxpa2UgPCwuLSMqIGJlY2F1c2UgdGhleSB2YXJ5ICp3aWxkbHkqXG4vLyBhY3Jvc3Mga2V5Ym9hcmQgbGF5b3V0cyBhbmQgbWF5IGNhdXNlIHZhcmlvdXMgcHJvYmxlbXNcbi8vIChlLmcuIFwiKlwiIGlzIFwiU2hpZnQgK1wiIG9uIGEgR2VybWFuIE1hYyBrZXlib2FyZClcbi8vIChlLmcuIFwiQFwiIGlzIFwiQWx0IExcIiBvbiBhIEdlcm1hbiBNYWMga2V5Ym9hcmQpXG5cbnZhciBrZXljb2RlID0ge1xuICAvLyBFbGVtZW50IEZvY3VzXG4gIHRhYjogOSxcblxuICAvLyBOYXZpZ2F0aW9uXG4gIGxlZnQ6IDM3LFxuICB1cDogMzgsXG4gIHJpZ2h0OiAzOSxcbiAgZG93bjogNDAsXG4gIHBhZ2VVcDogMzMsXG4gICdwYWdlLXVwJzogMzMsXG4gIHBhZ2VEb3duOiAzNCxcbiAgJ3BhZ2UtZG93bic6IDM0LFxuICBlbmQ6IDM1LFxuICBob21lOiAzNixcblxuICAvLyBBY3Rpb25cbiAgZW50ZXI6IDEzLFxuICBlc2NhcGU6IDI3LFxuICBzcGFjZTogMzIsXG5cbiAgLy8gTW9kaWZpZXJcbiAgc2hpZnQ6IDE2LFxuICBjYXBzTG9jazogMjAsXG4gICdjYXBzLWxvY2snOiAyMCxcbiAgY3RybDogMTcsXG4gIGFsdDogMTgsXG4gIG1ldGE6IDkxLFxuICAvLyBpbiBmaXJlZm94OiAyMjRcbiAgLy8gb24gbWFjIChjaHJvbWUpOiBtZXRhLWxlZnQ9OTEsIG1ldGEtcmlnaHQ9OTNcbiAgLy8gb24gd2luIChJRTExKTogbWV0YS1sZWZ0PTkxLCBtZXRhLXJpZ2h0PTkyXG4gIHBhdXNlOiAxOSxcblxuICAvLyBDb250ZW50IE1hbmlwdWxhdGlvblxuICBpbnNlcnQ6IDQ1LFxuICBkZWxldGU6IDQ2LFxuICBiYWNrc3BhY2U6IDgsXG5cbiAgLy8gdGhlIHNhbWUgbG9naWNhbCBrZXkgbWF5IGJlIGlkZW50aWZpZWQgdGhyb3VnaCBkaWZmZXJlbnQga2V5Q29kZXNcbiAgX2FsaWFzOiB7XG4gICAgOTE6IFs5MiwgOTMsIDIyNF0sXG4gIH0sXG59XG5cbi8vIEZ1bmN0aW9uIGtleXMgKDExMiAtIDEzNylcbi8vIE5PVEU6IG5vdCBldmVyeSBrZXlib2FyZCBrbm93cyBGMTMrXG5mb3IgKHZhciBuID0gMTsgbiA8IDI2OyBuKyspIHtcbiAga2V5Y29kZVsnZicgKyBuXSA9IG4gKyAxMTFcbn1cblxuLy8gTnVtYmVyIGtleXMgKDQ4LTU3LCBudW1wYWQgOTYtMTA1KVxuLy8gTk9URTogbm90IGV2ZXJ5IGtleWJvYXJkIGtub3dzIG51bS0wK1xuZm9yICh2YXIgX24gPSAwOyBfbiA8IDEwOyBfbisrKSB7XG4gIHZhciBjb2RlID0gX24gKyA0OFxuICB2YXIgbnVtQ29kZSA9IF9uICsgOTZcbiAga2V5Y29kZVtfbl0gPSBjb2RlXG4gIGtleWNvZGVbJ251bS0nICsgX25dID0gbnVtQ29kZVxuICBrZXljb2RlLl9hbGlhc1tjb2RlXSA9IFtudW1Db2RlXVxufVxuXG4vLyBMYXRpbiBjaGFyYWN0ZXJzICg2NSAtIDkwKVxuZm9yICh2YXIgX24yID0gMDsgX24yIDwgMjY7IF9uMisrKSB7XG4gIHZhciBfY29kZSA9IF9uMiArIDY1XG4gIHZhciBuYW1lJDEgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKF9jb2RlKS50b0xvd2VyQ2FzZSgpXG4gIGtleWNvZGVbbmFtZSQxXSA9IF9jb2RlXG59XG5cbnZhciBtb2RpZmllciA9IHtcbiAgYWx0OiAnYWx0S2V5JyxcbiAgY3RybDogJ2N0cmxLZXknLFxuICBtZXRhOiAnbWV0YUtleScsXG4gIHNoaWZ0OiAnc2hpZnRLZXknLFxufVxuXG52YXIgbW9kaWZpZXJTZXF1ZW5jZSA9IE9iamVjdC5rZXlzKG1vZGlmaWVyKS5tYXAoZnVuY3Rpb24gKG5hbWUpIHtcbiAgcmV0dXJuIG1vZGlmaWVyW25hbWVdXG59KVxuXG5mdW5jdGlvbiBjcmVhdGVFeHBlY3RlZE1vZGlmaWVycyhpZ25vcmVNb2RpZmllcnMpIHtcbiAgdmFyIHZhbHVlID0gaWdub3JlTW9kaWZpZXJzID8gbnVsbCA6IGZhbHNlXG4gIHJldHVybiB7XG4gICAgYWx0S2V5OiB2YWx1ZSxcbiAgICBjdHJsS2V5OiB2YWx1ZSxcbiAgICBtZXRhS2V5OiB2YWx1ZSxcbiAgICBzaGlmdEtleTogdmFsdWUsXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZU1vZGlmaWVycyhtb2RpZmllcnMpIHtcbiAgdmFyIGlnbm9yZU1vZGlmaWVycyA9IG1vZGlmaWVycy5pbmRleE9mKCcqJykgIT09IC0xXG4gIHZhciBleHBlY3RlZCA9IGNyZWF0ZUV4cGVjdGVkTW9kaWZpZXJzKGlnbm9yZU1vZGlmaWVycylcblxuICBtb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAodG9rZW4pIHtcbiAgICBpZiAodG9rZW4gPT09ICcqJykge1xuICAgICAgLy8gd2UndmUgYWxyZWFkeSBjb3ZlcmVkIHRoZSBhbGwtaW4gb3BlcmF0b3JcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIHdlIHdhbnQgdGhlIG1vZGlmaWVyIHByZXNzZWRcbiAgICB2YXIgdmFsdWUgPSB0cnVlXG4gICAgdmFyIG9wZXJhdG9yID0gdG9rZW4uc2xpY2UoMCwgMSlcbiAgICBpZiAob3BlcmF0b3IgPT09ICc/Jykge1xuICAgICAgLy8gd2UgZG9uJ3QgY2FyZSBpZiB0aGUgbW9kaWZpZXIgaXMgcHJlc3NlZFxuICAgICAgdmFsdWUgPSBudWxsXG4gICAgfSBlbHNlIGlmIChvcGVyYXRvciA9PT0gJyEnKSB7XG4gICAgICAvLyB3ZSBkbyBub3Qgd2FudCB0aGUgbW9kaWZpZXIgcHJlc3NlZFxuICAgICAgdmFsdWUgPSBmYWxzZVxuICAgIH1cblxuICAgIGlmICh2YWx1ZSAhPT0gdHJ1ZSkge1xuICAgICAgLy8gY29tcGVuc2F0ZSBmb3IgdGhlIG1vZGlmaWVyJ3Mgb3BlcmF0b3JcbiAgICAgIHRva2VuID0gdG9rZW4uc2xpY2UoMSlcbiAgICB9XG5cbiAgICB2YXIgcHJvcGVydHlOYW1lID0gbW9kaWZpZXJbdG9rZW5dXG4gICAgaWYgKCFwcm9wZXJ0eU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Vua25vd24gbW9kaWZpZXIgXCInICsgdG9rZW4gKyAnXCInKVxuICAgIH1cblxuICAgIGV4cGVjdGVkW3Byb3BlcnR5TmFtZV0gPSB2YWx1ZVxuICB9KVxuXG4gIHJldHVybiBleHBlY3RlZFxufVxuXG5mdW5jdGlvbiByZXNvbHZlS2V5KGtleSkge1xuICB2YXIgY29kZSA9IGtleWNvZGVba2V5XSB8fCBwYXJzZUludChrZXksIDEwKVxuICBpZiAoIWNvZGUgfHwgdHlwZW9mIGNvZGUgIT09ICdudW1iZXInIHx8IGlzTmFOKGNvZGUpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVW5rbm93biBrZXkgXCInICsga2V5ICsgJ1wiJylcbiAgfVxuXG4gIHJldHVybiBbY29kZV0uY29uY2F0KGtleWNvZGUuX2FsaWFzW2NvZGVdIHx8IFtdKVxufVxuXG5mdW5jdGlvbiBtYXRjaE1vZGlmaWVycyhleHBlY3RlZCwgZXZlbnQpIHtcbiAgLy8gcmV0dXJucyB0cnVlIG9uIG1hdGNoXG4gIHJldHVybiAhbW9kaWZpZXJTZXF1ZW5jZS5zb21lKGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgLy8gcmV0dXJucyB0cnVlIG9uIG1pc21hdGNoXG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiBleHBlY3RlZFtwcm9wXSA9PT0gJ2Jvb2xlYW4nICYmXG4gICAgICBCb29sZWFuKGV2ZW50W3Byb3BdKSAhPT0gZXhwZWN0ZWRbcHJvcF1cbiAgICApXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGtleUJpbmRpbmcodGV4dCkge1xuICByZXR1cm4gdGV4dC5zcGxpdCgvXFxzKy8pLm1hcChmdW5jdGlvbiAoX3RleHQpIHtcbiAgICB2YXIgdG9rZW5zID0gX3RleHQuc3BsaXQoJysnKVxuICAgIHZhciBfbW9kaWZpZXJzID0gcmVzb2x2ZU1vZGlmaWVycyh0b2tlbnMuc2xpY2UoMCwgLTEpKVxuICAgIHZhciBfa2V5Q29kZXMgPSByZXNvbHZlS2V5KHRva2Vucy5zbGljZSgtMSkpXG4gICAgcmV0dXJuIHtcbiAgICAgIGtleUNvZGVzOiBfa2V5Q29kZXMsXG4gICAgICBtb2RpZmllcnM6IF9tb2RpZmllcnMsXG4gICAgICBtYXRjaE1vZGlmaWVyczogbWF0Y2hNb2RpZmllcnMuYmluZChudWxsLCBfbW9kaWZpZXJzKSxcbiAgICB9XG4gIH0pXG59XG5cbi8vIE5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24gaXMgYXZhaWxhYmxlIHNpbmNlIElFOVxuLy8gc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9Ob2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uXG5cbi8vIGNhbGxiYWNrIHJldHVybnMgdHJ1ZSB3aGVuIGVsZW1lbnQgaXMgY29udGFpbmVkIGJ5IHBhcmVudCBvciBpcyB0aGUgcGFyZW50IHN1aXRlZCBmb3IgdXNlIHdpdGggQXJyYXkuc29tZSgpXG4vKlxuICBVU0FHRTpcbiAgICB2YXIgaXNDaGlsZE9mID0gZ2V0UGFyZW50Q29tcGFyYXRvcih7cGFyZW50OiBzb21lTm9kZX0pO1xuICAgIGxpc3RPZkVsZW1lbnRzLnNvbWUoaXNDaGlsZE9mKVxuKi9cblxuZnVuY3Rpb24gZ2V0UGFyZW50Q29tcGFyYXRvcigpIHtcbiAgdmFyIF9yZWYgPVxuICAgICAgYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fSxcbiAgICBwYXJlbnQgPSBfcmVmLnBhcmVudCxcbiAgICBlbGVtZW50ID0gX3JlZi5lbGVtZW50LFxuICAgIGluY2x1ZGVTZWxmID0gX3JlZi5pbmNsdWRlU2VsZlxuXG4gIGlmIChwYXJlbnQpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24gaXNDaGlsZE9mKG5vZGUpIHtcbiAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICAoaW5jbHVkZVNlbGYgJiYgbm9kZSA9PT0gcGFyZW50KSB8fFxuICAgICAgICAgIHBhcmVudC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihub2RlKSAmXG4gICAgICAgICAgICBOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWVxuICAgICAgKVxuICAgIH1cbiAgfSBlbHNlIGlmIChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIGlzUGFyZW50T2Yobm9kZSkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIChpbmNsdWRlU2VsZiAmJiBlbGVtZW50ID09PSBub2RlKSB8fFxuICAgICAgICAgIG5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oZWxlbWVudCkgJlxuICAgICAgICAgICAgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQllcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgVHlwZUVycm9yKFxuICAgICd1dGlsL2NvbXBhcmUtcG9zaXRpb24jZ2V0UGFyZW50Q29tcGFyYXRvciByZXF1aXJlZCBlaXRoZXIgb3B0aW9ucy5wYXJlbnQgb3Igb3B0aW9ucy5lbGVtZW50J1xuICApXG59XG5cbi8vIEJ1ZyAyODY5MzMgLSBLZXkgZXZlbnRzIGluIHRoZSBhdXRvY29tcGxldGUgcG9wdXAgc2hvdWxkIGJlIGhpZGRlbiBmcm9tIHBhZ2Ugc2NyaXB0c1xuLy8gQGJyb3dzZXItaXNzdWUgR2Vja28gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjg2OTMzXG5cbmZ1bmN0aW9uIHdoZW5LZXkoKSB7XG4gIHZhciBtYXAgPVxuICAgIGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDoge31cblxuICB2YXIgYmluZGluZ3MgPSB7fVxuXG4gIHZhciBjb250ZXh0ID0gbm9kZUFycmF5KG1hcC5jb250ZXh0KVswXSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgZGVsZXRlIG1hcC5jb250ZXh0XG4gIHZhciBmaWx0ZXIgPSBub2RlQXJyYXkobWFwLmZpbHRlcilcbiAgZGVsZXRlIG1hcC5maWx0ZXJcblxuICB2YXIgbWFwS2V5cyA9IE9iamVjdC5rZXlzKG1hcClcbiAgaWYgKCFtYXBLZXlzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ3doZW4va2V5IHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBvcHRpb24ga2V5JylcbiAgfVxuXG4gIHZhciByZWdpc3RlckJpbmRpbmcgPSBmdW5jdGlvbiByZWdpc3RlckJpbmRpbmcoZXZlbnQpIHtcbiAgICBldmVudC5rZXlDb2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChjb2RlKSB7XG4gICAgICBpZiAoIWJpbmRpbmdzW2NvZGVdKSB7XG4gICAgICAgIGJpbmRpbmdzW2NvZGVdID0gW11cbiAgICAgIH1cblxuICAgICAgYmluZGluZ3NbY29kZV0ucHVzaChldmVudClcbiAgICB9KVxuICB9XG5cbiAgbWFwS2V5cy5mb3JFYWNoKGZ1bmN0aW9uICh0ZXh0KSB7XG4gICAgaWYgKHR5cGVvZiBtYXBbdGV4dF0gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXG4gICAgICAgICd3aGVuL2tleSByZXF1aXJlcyBvcHRpb25bXCInICsgdGV4dCArICdcIl0gdG8gYmUgYSBmdW5jdGlvbidcbiAgICAgIClcbiAgICB9XG5cbiAgICB2YXIgYWRkQ2FsbGJhY2sgPSBmdW5jdGlvbiBhZGRDYWxsYmFjayhldmVudCkge1xuICAgICAgZXZlbnQuY2FsbGJhY2sgPSBtYXBbdGV4dF1cbiAgICAgIHJldHVybiBldmVudFxuICAgIH1cblxuICAgIGtleUJpbmRpbmcodGV4dCkubWFwKGFkZENhbGxiYWNrKS5mb3JFYWNoKHJlZ2lzdGVyQmluZGluZylcbiAgfSlcblxuICB2YXIgaGFuZGxlS2V5RG93biA9IGZ1bmN0aW9uIGhhbmRsZUtleURvd24oZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGZpbHRlci5sZW5ndGgpIHtcbiAgICAgIC8vIGlnbm9yZSBlbGVtZW50cyB3aXRoaW4gdGhlIGV4ZW1wdGVkIHN1Yi10cmVlc1xuICAgICAgdmFyIGlzUGFyZW50T2ZFbGVtZW50ID0gZ2V0UGFyZW50Q29tcGFyYXRvcih7XG4gICAgICAgIGVsZW1lbnQ6IGV2ZW50LnRhcmdldCxcbiAgICAgICAgaW5jbHVkZVNlbGY6IHRydWUsXG4gICAgICB9KVxuICAgICAgaWYgKGZpbHRlci5zb21lKGlzUGFyZW50T2ZFbGVtZW50KSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIga2V5ID0gZXZlbnQua2V5Q29kZSB8fCBldmVudC53aGljaFxuICAgIGlmICghYmluZGluZ3Nba2V5XSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYmluZGluZ3Nba2V5XS5mb3JFYWNoKGZ1bmN0aW9uIChfZXZlbnQpIHtcbiAgICAgIGlmICghX2V2ZW50Lm1hdGNoTW9kaWZpZXJzKGV2ZW50KSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgX2V2ZW50LmNhbGxiYWNrLmNhbGwoY29udGV4dCwgZXZlbnQsIGRpc2VuZ2FnZSlcbiAgICB9KVxuICB9XG5cbiAgY29udGV4dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93biwgZmFsc2UpXG5cbiAgdmFyIGRpc2VuZ2FnZSA9IGZ1bmN0aW9uIGRpc2VuZ2FnZSgpIHtcbiAgICBjb250ZXh0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBoYW5kbGVLZXlEb3duLCBmYWxzZSlcbiAgfVxuXG4gIHJldHVybiB7IGRpc2VuZ2FnZTogZGlzZW5nYWdlIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gKHsgY29udGV4dCB9ID0ge30pIHtcbiAgaWYgKCFjb250ZXh0KSB7XG4gICAgY29udGV4dCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICB9XG5cbiAgLy8gTWFrZSBzdXJlIHRoZSBzdXBwb3J0cyB0ZXN0cyBhcmUgcnVuIGJlZm9yZSBpbnRlcmNlcHRpbmcgdGhlIFRhYiBrZXksXG4gIC8vIG9yIElFMTAgYW5kIElFMTEgd2lsbCBmYWlsIHRvIHByb2Nlc3MgdGhlIGZpcnN0IFRhYiBrZXkgZXZlbnQuIE5vdFxuICAvLyBsaW1pdGluZyB0aGlzIHdhcm0tdXAgdG8gSUUgYmVjYXVzZSBpdCBtYXkgYmUgYSBwcm9ibGVtIGVsc2V3aGVyZSwgdG9vLlxuICBxdWVyeVRhYnNlcXVlbmNlKClcblxuICByZXR1cm4gd2hlbktleSh7XG4gICAgLy8gU2FmYXJpIG9uIE9TWCBtYXkgcmVxdWlyZSBBTFQrVEFCIHRvIHJlYWNoIGxpbmtzLFxuICAgIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbWVkaWFsaXplL2FsbHkuanMvaXNzdWVzLzE0NlxuICAgICc/YWx0Kz9zaGlmdCt0YWInOiBmdW5jdGlvbiBhbHRTaGlmdFRhYihldmVudCkge1xuICAgICAgLy8gd2UncmUgY29tcGxldGVseSB0YWtpbmcgb3ZlciB0aGUgVGFiIGtleSBoYW5kbGluZ1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuXG4gICAgICB2YXIgc2VxdWVuY2UgPSBxdWVyeVRhYnNlcXVlbmNlKHtcbiAgICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgIH0pXG5cbiAgICAgIHZhciBiYWNrd2FyZCA9IGV2ZW50LnNoaWZ0S2V5XG4gICAgICB2YXIgZmlyc3QgPSBzZXF1ZW5jZVswXVxuICAgICAgdmFyIGxhc3QgPSBzZXF1ZW5jZVtzZXF1ZW5jZS5sZW5ndGggLSAxXVxuXG4gICAgICAvLyB3cmFwIGFyb3VuZCBmaXJzdCB0byBsYXN0LCBsYXN0IHRvIGZpcnN0XG4gICAgICB2YXIgc291cmNlID0gYmFja3dhcmQgPyBmaXJzdCA6IGxhc3RcbiAgICAgIHZhciB0YXJnZXQgPSBiYWNrd2FyZCA/IGxhc3QgOiBmaXJzdFxuICAgICAgaWYgKGlzQWN0aXZlRWxlbWVudChzb3VyY2UpKSB7XG4gICAgICAgIHRhcmdldC5mb2N1cygpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICAvLyBmaW5kIGN1cnJlbnQgcG9zaXRpb24gaW4gdGFic2VxdWVuY2VcbiAgICAgIHZhciBjdXJyZW50SW5kZXggPSB2b2lkIDBcbiAgICAgIHZhciBmb3VuZCA9IHNlcXVlbmNlLnNvbWUoZnVuY3Rpb24gKGVsZW1lbnQsIGluZGV4KSB7XG4gICAgICAgIGlmICghaXNBY3RpdmVFbGVtZW50KGVsZW1lbnQpKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50SW5kZXggPSBpbmRleFxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfSlcblxuICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICAvLyByZWRpcmVjdCB0byBmaXJzdCBhcyB3ZSdyZSBub3QgaW4gb3VyIHRhYnNlcXVlbmNlXG4gICAgICAgIGZpcnN0LmZvY3VzKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIHNoaWZ0IGZvY3VzIHRvIHByZXZpb3VzL25leHQgZWxlbWVudCBpbiB0aGUgc2VxdWVuY2VcbiAgICAgIHZhciBvZmZzZXQgPSBiYWNrd2FyZCA/IC0xIDogMVxuICAgICAgc2VxdWVuY2VbY3VycmVudEluZGV4ICsgb2Zmc2V0XS5mb2N1cygpXG4gICAgfSxcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJub2RlQXJyYXkiLCJpbnB1dCIsIkFycmF5IiwiaXNBcnJheSIsIm5vZGVUeXBlIiwidW5kZWZpbmVkIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwic2xpY2UiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiY29udGV4dFRvRWxlbWVudCIsIl9yZWYiLCJjb250ZXh0IiwiX3JlZiRsYWJlbCIsImxhYmVsIiwicmVzb2x2ZURvY3VtZW50IiwiZGVmYXVsdFRvRG9jdW1lbnQiLCJlbGVtZW50IiwiTm9kZSIsIkRPQ1VNRU5UX05PREUiLCJkb2N1bWVudEVsZW1lbnQiLCJFTEVNRU5UX05PREUiLCJET0NVTUVOVF9GUkFHTUVOVF9OT0RFIiwiZ2V0U2hhZG93SG9zdCIsImFyZ3VtZW50cyIsImNvbnRhaW5lciIsInBhcmVudE5vZGUiLCJob3N0IiwiZ2V0RG9jdW1lbnQiLCJub2RlIiwib3duZXJEb2N1bWVudCIsImlzQWN0aXZlRWxlbWVudCIsIl9kb2N1bWVudCIsImFjdGl2ZUVsZW1lbnQiLCJzaGFkb3dIb3N0Iiwic2hhZG93Um9vdCIsImdldFBhcmVudHMiLCJsaXN0IiwicHVzaCIsIm5hbWVzIiwibmFtZSIsImZpbmRNZXRob2ROYW1lIiwic29tZSIsIl9uYW1lIiwiZWxlbWVudE1hdGNoZXMiLCJzZWxlY3RvciIsInBsYXRmb3JtIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiX3BsYXRmb3JtIiwib3MiLCJmYW1pbHkiLCJBTkRST0lEIiwiV0lORE9XUyIsIk9TWCIsIklPUyIsIkJMSU5LIiwibGF5b3V0IiwiR0VDS08iLCJUUklERU5UIiwiRURHRSIsIldFQktJVCIsInZlcnNpb24iLCJwYXJzZUZsb2F0IiwibWFqb3JWZXJzaW9uIiwiTWF0aCIsImZsb29yIiwiaXMiLCJJRTkiLCJJRTEwIiwiSUUxMSIsImJlZm9yZSIsImRhdGEiLCJ3aW5kb3dTY3JvbGxUb3AiLCJ3aW5kb3ciLCJzY3JvbGxUb3AiLCJ3aW5kb3dTY3JvbGxMZWZ0Iiwic2Nyb2xsTGVmdCIsImJvZHlTY3JvbGxUb3AiLCJib2R5IiwiYm9keVNjcm9sbExlZnQiLCJpZnJhbWUiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiYXBwZW5kQ2hpbGQiLCJfd2luZG93IiwiY29udGVudFdpbmRvdyIsIm9wZW4iLCJjbG9zZSIsIndyYXBwZXIiLCJ0ZXN0Iiwib3B0aW9ucyIsImlubmVySFRNTCIsImZvY3VzIiwibXV0YXRlIiwidmFsaWRhdGUiLCJhZnRlciIsImJsdXIiLCJyZW1vdmVDaGlsZCIsImRldGVjdEZvY3VzIiwidGVzdHMiLCJyZXN1bHRzIiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsImtleSIsInZlcnNpb24kMSIsInJlYWRMb2NhbFN0b3JhZ2UiLCJsb2NhbFN0b3JhZ2UiLCJnZXRJdGVtIiwiZSIsIndyaXRlTG9jYWxTdG9yYWdlIiwidmFsdWUiLCJoYXNGb2N1cyIsInJlbW92ZUl0ZW0iLCJzZXRJdGVtIiwidXNlckFnZW50IiwibmF2aWdhdG9yIiwiY2FjaGVLZXkiLCJjYWNoZSIsImNhY2hlJDEiLCJnZXQiLCJzZXQiLCJ2YWx1ZXMiLCJmb3JFYWNoIiwidGltZSIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsImNzc1NoYWRvd1BpZXJjaW5nRGVlcENvbWJpbmF0b3IiLCJjb21iaW5hdG9yIiwicXVlcnlTZWxlY3RvciIsIm5vQXJyb3dBcnJvd0Fycm93Iiwibm9EZWVwIiwiZ2lmIiwiZm9jdXNBcmVhSW1nVGFiaW5kZXgiLCJmb2N1c0FyZWFUYWJpbmRleCIsImZvY3VzVGFyZ2V0IiwiZm9jdXNBcmVhV2l0aG91dEhyZWYiLCJmb2N1c0F1ZGlvV2l0aG91dENvbnRyb2xzIiwiaW52YWxpZEdpZiIsImZvY3VzQnJva2VuSW1hZ2VNYXAiLCJmb2N1c0NoaWxkcmVuT2ZGb2N1c2FibGVGbGV4Ym94IiwiZm9jdXNGaWVsZHNldERpc2FibGVkIiwiZm9jdXNGaWVsZHNldCIsImZvY3VzRmxleGJveENvbnRhaW5lciIsImZvY3VzRm9ybURpc2FibGVkIiwiZm9jdXNJbWdJc21hcCIsImhyZWYiLCJmb2N1c0ltZ1VzZW1hcFRhYmluZGV4IiwiZm9jdXNJbkhpZGRlbklmcmFtZSIsImlmcmFtZURvY3VtZW50Iiwic3R5bGUiLCJ2aXNpYmlsaXR5IiwicmVzdWx0IiwiZm9jdXNJblplcm9EaW1lbnNpb25PYmplY3QiLCJmb2N1c0ludmFsaWRUYWJpbmRleCIsImZvY3VzTGFiZWxUYWJpbmRleCIsInZhcmlhYmxlVG9QcmV2ZW50RGVhZENvZGVFbGltaW5hdGlvbiIsIm9mZnNldEhlaWdodCIsInN2ZyIsImZvY3VzT2JqZWN0U3ZnSGlkZGVuIiwiZm9jdXNPYmplY3RTdmciLCJyZXN1bHQkMSIsImZvY3VzT2JqZWN0U3dmIiwiZm9jdXNSZWRpcmVjdEltZ1VzZW1hcCIsInRhcmdldCIsImZvY3VzUmVkaXJlY3RMZWdlbmQiLCJmb2N1c2FibGUiLCJ0YWJiYWJsZSIsImZvY3VzU2Nyb2xsQm9keSIsImZvY3VzU2Nyb2xsQ29udGFpbmVyV2l0aG91dE92ZXJmbG93IiwiZm9jdXNTY3JvbGxDb250YWluZXIiLCJmb2N1c1N1bW1hcnkiLCJmaXJzdEVsZW1lbnRDaGlsZCIsIm1ha2VGb2N1c2FibGVGb3JlaWduT2JqZWN0IiwiZm9yZWlnbk9iamVjdCIsImNyZWF0ZUVsZW1lbnROUyIsIndpZHRoIiwiYmFzZVZhbCIsImhlaWdodCIsImxhc3RDaGlsZCIsInR5cGUiLCJmb2N1c1N2Z0ZvcmVpZ25PYmplY3RIYWNrIiwiaXNTdmdFbGVtZW50Iiwib3duZXJTVkdFbGVtZW50Iiwibm9kZU5hbWUiLCJ0b0xvd2VyQ2FzZSIsImRpc2FibGVkIiwiZ2VuZXJhdGUiLCJIVE1MRWxlbWVudCIsInByb3RvdHlwZSIsImZvY3VzU3ZnRm9jdXNhYmxlQXR0cmlidXRlIiwiZm9jdXNTdmdUYWJpbmRleEF0dHJpYnV0ZSIsImZvY3VzU3ZnTmVnYXRpdmVUYWJpbmRleEF0dHJpYnV0ZSIsImZvY3VzU3ZnVXNlVGFiaW5kZXgiLCJqb2luIiwiZm9jdXNTdmdGb3JlaWdub2JqZWN0VGFiaW5kZXgiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInJlc3VsdCQyIiwiQm9vbGVhbiIsIlNWR0VsZW1lbnQiLCJmb2N1c1N2Z0luSWZyYW1lIiwiZm9jdXNTdmciLCJmaXJzdENoaWxkIiwiZm9jdXNUYWJpbmRleFRyYWlsaW5nQ2hhcmFjdGVycyIsImZvY3VzVGFibGUiLCJmcmFnbWVudCIsImNyZWF0ZURvY3VtZW50RnJhZ21lbnQiLCJmb2N1c1ZpZGVvV2l0aG91dENvbnRyb2xzIiwicmVzdWx0JDMiLCJ0YWJzZXF1ZW5jZUFyZWFBdEltZ1Bvc2l0aW9uIiwidGVzdENhbGxiYWNrcyIsInRlc3REZXNjcmlwdGlvbnMiLCJleGVjdXRlVGVzdHMiLCJzdXBwb3J0c0NhY2hlIiwiX3N1cHBvcnRzIiwic3VwcG9ydHMiLCJ2YWxpZEludGVnZXJQYXR0ZXJuTm9UcmFpbGluZyIsInZhbGlkSW50ZWdlclBhdHRlcm5XaXRoVHJhaWxpbmciLCJpc1ZhbGlkVGFiaW5kZXgiLCJ2YWxpZEludGVnZXJQYXR0ZXJuIiwiaGFzVGFiaW5kZXgiLCJoYXNBdHRyaWJ1dGUiLCJoYXNUYWJJbmRleCIsInRhYmluZGV4IiwiZ2V0QXR0cmlidXRlIiwidGFiaW5kZXhWYWx1ZSIsImF0dHJpYnV0ZU5hbWUiLCJwYXJzZUludCIsImlzTmFOIiwiaXNVc2VyTW9kaWZ5V3JpdGFibGUiLCJ1c2VyTW9kaWZ5Iiwid2Via2l0VXNlck1vZGlmeSIsImluZGV4T2YiLCJoYXNDc3NPdmVyZmxvd1Njcm9sbCIsImdldFByb3BlcnR5VmFsdWUiLCJvdmVyZmxvdyIsImhhc0Nzc0Rpc3BsYXlGbGV4IiwiZGlzcGxheSIsImlzU2Nyb2xsYWJsZUNvbnRhaW5lciIsInBhcmVudE5vZGVOYW1lIiwicGFyZW50U3R5bGUiLCJzY3JvbGxIZWlnaHQiLCJvZmZzZXRXaWR0aCIsInNjcm9sbFdpZHRoIiwic3VwcG9ydHMkMSIsImlzRm9jdXNSZWxldmFudFJ1bGVzIiwiX3JlZiRleGNlcHQiLCJleGNlcHQiLCJmbGV4Ym94Iiwic2Nyb2xsYWJsZSIsInNoYWRvdyIsInN2Z1R5cGUiLCJ2YWxpZFRhYmluZGV4IiwiaXNTdmdDb250ZW50IiwiZm9jdXNhYmxlQXR0cmlidXRlIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImhhc0xpbmtQYXJlbnQiLCJwYXJlbnQiLCJwYXJlbnRFbGVtZW50IiwiaXNGb2N1c1JlbGV2YW50IiwicnVsZXMiLCJmaW5kSW5kZXgiLCJhcnJheSIsImNhbGxiYWNrIiwiaSIsImdldENvbnRlbnREb2N1bWVudCIsImNvbnRlbnREb2N1bWVudCIsImdldFNWR0RvY3VtZW50IiwiZ2V0V2luZG93IiwiZGVmYXVsdFZpZXciLCJzaGFkb3dQcmVmaXgiLCJzZWxlY3RJblNoYWRvd3MiLCJvcGVyYXRvciIsInJlcGxhY2UiLCJzcGxpdCIsImZpbmREb2N1bWVudEhvc3RFbGVtZW50IiwiX2ZyYW1lRWxlbWVudCIsInBvdGVudGlhbEhvc3RzIiwiZ2V0RnJhbWVFbGVtZW50IiwiZnJhbWVFbGVtZW50Iiwibm90UmVuZGVyZWRFbGVtZW50c1BhdHRlcm4iLCJjb21wdXRlZFN0eWxlIiwicHJvcGVydHkiLCJub3REaXNwbGF5ZWQiLCJfcGF0aCIsIm5vdFZpc2libGUiLCJoaWRkZW4iLCJ2aXNpYmxlIiwiY29sbGFwc2VkUGFyZW50Iiwib2Zmc2V0IiwiaXNWaXNpYmxlUnVsZXMiLCJub3RSZW5kZXJlZCIsImNzc0Rpc3BsYXkiLCJjc3NWaXNpYmlsaXR5IiwiZGV0YWlsc0VsZW1lbnQiLCJicm93c2luZ0NvbnRleHQiLCJpc0F1ZGlvV2l0aG91dENvbnRyb2xzIiwiX2lzVmlzaWJsZSIsImlzVmlzaWJsZSIsImdldE1hcEJ5TmFtZSIsImNzc0VzY2FwZSIsImdldEltYWdlT2ZBcmVhIiwic3VwcG9ydHMkMiIsImlzVmFsaWRBcmVhIiwiaW1nIiwiY29tcGxldGUiLCJuYXR1cmFsSGVpZ2h0IiwiY2hpbGRPZkludGVyYWN0aXZlIiwiX2VsZW1lbnQiLCJzdXBwb3J0cyQzIiwiZGlzYWJsZWRFbGVtZW50c1BhdHRlcm4iLCJkaXNhYmxlZEVsZW1lbnRzIiwic2VsZWN0IiwidGV4dGFyZWEiLCJidXR0b24iLCJmaWVsZHNldCIsImZvcm0iLCJpc05hdGl2ZURpc2FibGVkU3VwcG9ydGVkIiwiUmVnRXhwIiwic3VwcG9ydHMkNCIsImlzRGlzYWJsZWRGaWVsZHNldCIsImlzRGlzYWJsZWRGb3JtIiwiaXNEaXNhYmxlZCIsInBhcmVudHMiLCJpc09ubHlUYWJiYWJsZVJ1bGVzIiwib25seUZvY3VzYWJsZUJyb3dzaW5nQ29udGV4dCIsImlzT25seVRhYmJhYmxlIiwic3VwcG9ydHMkNSIsImlzT25seUZvY3VzUmVsZXZhbnQiLCJfdGFiaW5kZXgiLCJpc0ZvY3VzYWJsZVJ1bGVzIiwib25seVRhYmJhYmxlIiwiX2lzT25seVRhYmJhYmxlIiwiZm9jdXNSZWxldmFudCIsInZpc2liaWxpdHlPcHRpb25zIiwiX25vZGVOYW1lMiIsIl9ub2RlTmFtZSIsImlzRm9jdXNhYmxlIiwiY3JlYXRlRmlsdGVyIiwiY29uZGl0aW9uIiwiZmlsdGVyIiwiTm9kZUZpbHRlciIsIkZJTFRFUl9BQ0NFUFQiLCJGSUxURVJfU0tJUCIsImFjY2VwdE5vZGUiLCJQb3NzaWJseUZvY3VzYWJsZUZpbHRlciIsInF1ZXJ5Rm9jdXNhYmxlU3RyaWN0IiwiaW5jbHVkZUNvbnRleHQiLCJpbmNsdWRlT25seVRhYmJhYmxlIiwic3RyYXRlZ3kiLCJfaXNGb2N1c2FibGUiLCJ3YWxrZXIiLCJjcmVhdGVUcmVlV2Fsa2VyIiwiU0hPV19FTEVNRU5UIiwibmV4dE5vZGUiLCJjdXJyZW50Tm9kZSIsImNvbmNhdCIsInVuc2hpZnQiLCJzdXBwb3J0cyQ2Iiwic2VsZWN0b3IkMSIsInNlbGVjdG9yJDIiLCJxdWVyeUZvY3VzYWJsZVF1aWNrIiwiX3NlbGVjdG9yIiwiZWxlbWVudHMiLCJxdWVyeUZvY3VzYWJsZSIsIl9yZWYkc3RyYXRlZ3kiLCJzdXBwb3J0cyQ3IiwiZm9jdXNhYmxlRWxlbWVudHNQYXR0ZXJuIiwiaXNUYWJiYWJsZVJ1bGVzIiwiZnJhbWVOb2RlTmFtZSIsImlzRml4ZWRCbGluayIsImhhc1RhYmJhYmxlVGFiaW5kZXhPck5vbmUiLCJoYXNUYWJiYWJsZVRhYmluZGV4IiwicG90ZW50aWFsbHlUYWJiYWJsZSIsInRhYkluZGV4IiwiX3N0eWxlIiwiX3N0eWxlMiIsImlzRm9jdXNSZWxldmFudFdpdGhvdXRGbGV4Ym94IiwiaXNUYWJiYWJsZVdpdGhvdXRGbGV4Ym94IiwiaXNUYWJiYWJsZSIsInF1ZXJ5VGFiYmFibGUiLCJfaXNUYWJiYWJsZSIsImNvbXBhcmVEb21Qb3NpdGlvbiIsImEiLCJiIiwiY29tcGFyZURvY3VtZW50UG9zaXRpb24iLCJET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkciLCJzb3J0RG9tT3JkZXIiLCJzb3J0IiwiZ2V0Rmlyc3RTdWNjZXNzb3JPZmZzZXQiLCJmaW5kSW5zZXJ0aW9uT2Zmc2V0cyIsInJlc29sdmVFbGVtZW50IiwiaW5zZXJ0aW9ucyIsImluamVjdGlvbnMiLCJpbnNlcnRFbGVtZW50c0F0T2Zmc2V0cyIsImluc2VydGVkIiwiaW5zZXJ0aW9uIiwicmVtb3ZlIiwiYXJncyIsInNwbGljZSIsImFwcGx5IiwibWVyZ2VJbkRvbU9yZGVyIiwiX2xpc3QiLCJfZWxlbWVudHMiLCJfY3JlYXRlQ2xhc3MiLCJkZWZpbmVQcm9wZXJ0aWVzIiwicHJvcHMiLCJkZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiZGVmaW5lUHJvcGVydHkiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiTWFwcyIsIm1hcHMiLCJnZXRBcmVhc0ZvciIsImFkZE1hcEJ5TmFtZSIsImV4dHJhY3RBcmVhc0Zyb21MaXN0Iiwic29ydEFyZWEiLCJ1c2VtYXBzIiwiaW1hZ2UiLCJfY3JlYXRlQ2xhc3MkMSIsIl9jbGFzc0NhbGxDaGVjayQxIiwiU2hhZG93cyIsInNvcnRFbGVtZW50cyIsImhvc3RDb3VudGVyIiwiaW5Ib3N0IiwiaW5Eb2N1bWVudCIsImhvc3RzIiwiX3JlZ2lzdGVySG9zdCIsIl9zb3J0aW5nSWQiLCJwYXJlbnRIb3N0IiwiX3JlZ2lzdGVySG9zdFBhcmVudCIsIl9yZWdpc3RlckVsZW1lbnQiLCJleHRyYWN0RWxlbWVudHMiLCJfaW5qZWN0SG9zdHMiLCJfcmVwbGFjZUhvc3RzIiwiX2NsZWFudXAiLCJfY29udGV4dCIsIl9tZXJnZSIsIm1lcmdlZCIsIl9yZXNvbHZlSG9zdEVsZW1lbnQiLCJiaW5kIiwic29ydFNoYWRvd2VkIiwic2hhZG93cyIsInNvcnRUYWJpbmRleCIsImluZGV4ZXMiLCJub3JtYWwiLCJyZWR1Y2VSaWdodCIsInByZXZpb3VzIiwiY3VycmVudCIsInN1cHBvcnRzJDgiLCJtb3ZlQ29udGV4dFRvQmVnaW5uaW5nIiwicG9zIiwidG1wIiwicXVlcnlUYWJzZXF1ZW5jZSIsImNyZWF0ZVNoYWRvd1Jvb3QiLCJrZXljb2RlIiwidGFiIiwibGVmdCIsInVwIiwicmlnaHQiLCJkb3duIiwicGFnZVVwIiwicGFnZURvd24iLCJlbmQiLCJob21lIiwiZW50ZXIiLCJlc2NhcGUiLCJzcGFjZSIsInNoaWZ0IiwiY2Fwc0xvY2siLCJjdHJsIiwiYWx0IiwibWV0YSIsInBhdXNlIiwiaW5zZXJ0IiwiZGVsZXRlIiwiYmFja3NwYWNlIiwiX2FsaWFzIiwibiIsIl9uIiwiY29kZSIsIm51bUNvZGUiLCJfbjIiLCJfY29kZSIsIm5hbWUkMSIsImZyb21DaGFyQ29kZSIsIm1vZGlmaWVyIiwibW9kaWZpZXJTZXF1ZW5jZSIsImNyZWF0ZUV4cGVjdGVkTW9kaWZpZXJzIiwiaWdub3JlTW9kaWZpZXJzIiwiYWx0S2V5IiwiY3RybEtleSIsIm1ldGFLZXkiLCJzaGlmdEtleSIsInJlc29sdmVNb2RpZmllcnMiLCJtb2RpZmllcnMiLCJleHBlY3RlZCIsInRva2VuIiwicHJvcGVydHlOYW1lIiwicmVzb2x2ZUtleSIsIm1hdGNoTW9kaWZpZXJzIiwiZXZlbnQiLCJwcm9wIiwia2V5QmluZGluZyIsInRleHQiLCJfdGV4dCIsInRva2VucyIsIl9tb2RpZmllcnMiLCJfa2V5Q29kZXMiLCJrZXlDb2RlcyIsImdldFBhcmVudENvbXBhcmF0b3IiLCJpbmNsdWRlU2VsZiIsImlzQ2hpbGRPZiIsIkRPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5FRF9CWSIsImlzUGFyZW50T2YiLCJ3aGVuS2V5IiwiYmluZGluZ3MiLCJtYXBLZXlzIiwicmVnaXN0ZXJCaW5kaW5nIiwiYWRkQ2FsbGJhY2siLCJoYW5kbGVLZXlEb3duIiwiZGVmYXVsdFByZXZlbnRlZCIsImlzUGFyZW50T2ZFbGVtZW50Iiwia2V5Q29kZSIsIndoaWNoIiwiX2V2ZW50IiwiZGlzZW5nYWdlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhbHRTaGlmdFRhYiIsInByZXZlbnREZWZhdWx0Iiwic2VxdWVuY2UiLCJiYWNrd2FyZCIsImZpcnN0IiwibGFzdCIsInNvdXJjZSIsImN1cnJlbnRJbmRleCIsImZvdW5kIiwiaW5kZXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/styles.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/styles.js ***! + \**********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"styles\", ({\n enumerable: true,\n get: function() {\n return styles;\n }\n}));\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-dialog-overlay] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n overflow: auto;\\n z-index: 9000;\\n\\n display: flex;\\n align-content: center;\\n align-items: center;\\n flex-direction: column;\\n padding: 10vh 15px 0;\\n }\\n\\n @media (max-height: 812px) {\\n [data-nextjs-dialog-overlay] {\\n padding: 15px 15px 0;\\n }\\n }\\n\\n [data-nextjs-dialog-backdrop] {\\n position: fixed;\\n top: 0;\\n right: 0;\\n bottom: 0;\\n left: 0;\\n background-color: var(--color-backdrop);\\n pointer-events: all;\\n z-index: -1;\\n }\\n\\n [data-nextjs-dialog-backdrop-fixed] {\\n cursor: not-allowed;\\n -webkit-backdrop-filter: blur(8px);\\n backdrop-filter: blur(8px);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=styles.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9zdHlsZXMuanMiLCJtYXBwaW5ncyI6Ijs7OzswQ0EyQ1NBOzs7ZUFBQUE7Ozs7MENBM0NtQjs7Ozs7Ozs7OztBQUU1QixNQUFNQSxTQUFBQSxDQUFBQSxHQUFTQyxjQUFBQSxJQUFBQSxFQUFHIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvT3ZlcmxheS9zdHlsZXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlJ1xuXG5jb25zdCBzdHlsZXMgPSBjc3NgXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctb3ZlcmxheV0ge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgei1pbmRleDogOTAwMDtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24tY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAxMHZoIDE1cHggMDtcbiAgfVxuXG4gIEBtZWRpYSAobWF4LWhlaWdodDogODEycHgpIHtcbiAgICBbZGF0YS1uZXh0anMtZGlhbG9nLW92ZXJsYXldIHtcbiAgICAgIHBhZGRpbmc6IDE1cHggMTVweCAwO1xuICAgIH1cbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1kaWFsb2ctYmFja2Ryb3BdIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJhY2tkcm9wKTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIHotaW5kZXg6IC0xO1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWRpYWxvZy1iYWNrZHJvcC1maXhlZF0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcbiAgfVxuYFxuXG5leHBvcnQgeyBzdHlsZXMgfVxuIl0sIm5hbWVzIjpbInN0eWxlcyIsImNzcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/styles.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js": +/*!********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js ***! + \********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ShadowPortal\", ({\n enumerable: true,\n get: function() {\n return ShadowPortal;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _reactdom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\nfunction ShadowPortal(param) {\n _s();\n let { children } = param;\n let portalNode = _react.useRef(null);\n let shadowNode = _react.useRef(null);\n let [, forceUpdate] = _react.useState();\n _react.useLayoutEffect({\n \"ShadowPortal.useLayoutEffect\": ()=>{\n const ownerDocument = document;\n portalNode.current = ownerDocument.createElement('nextjs-portal');\n shadowNode.current = portalNode.current.attachShadow({\n mode: 'open'\n });\n ownerDocument.body.appendChild(portalNode.current);\n forceUpdate({});\n return ({\n \"ShadowPortal.useLayoutEffect\": ()=>{\n if (portalNode.current && portalNode.current.ownerDocument) {\n portalNode.current.ownerDocument.body.removeChild(portalNode.current);\n }\n }\n })[\"ShadowPortal.useLayoutEffect\"];\n }\n }[\"ShadowPortal.useLayoutEffect\"], []);\n return shadowNode.current ? /*#__PURE__*/ (0, _reactdom.createPortal)(children, shadowNode.current) : null;\n}\n_s(ShadowPortal, \"P7YL0rn/sjH62F7+OsEXN5GMw3U=\");\n_c = ShadowPortal;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=ShadowPortal.js.map\nvar _c;\n$RefreshReg$(_c, \"ShadowPortal\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvU2hhZG93UG9ydGFsLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztnREFHZ0JBOzs7ZUFBQUE7Ozs7NkVBSE87c0NBQ007QUFFdEIsc0JBQXNCLEtBQTJDOztJQUEzQyxNQUFFQyxRQUFRLEVBQWlDLEdBQTNDO0lBQzNCLElBQUlDLGFBQWFDLE9BQU1DLE1BQU0sQ0FBcUI7SUFDbEQsSUFBSUMsYUFBYUYsT0FBTUMsTUFBTSxDQUFvQjtJQUNqRCxJQUFJLEdBQUdFLFlBQVksR0FBR0gsT0FBTUksUUFBUTtJQUVwQ0osT0FBTUssZUFBZTt3Q0FBQztZQUNwQixNQUFNQyxnQkFBZ0JDO1lBQ3RCUixXQUFXUyxPQUFPLEdBQUdGLGNBQWNHLGFBQWEsQ0FBQztZQUNqRFAsV0FBV00sT0FBTyxHQUFHVCxXQUFXUyxPQUFPLENBQUNFLFlBQVksQ0FBQztnQkFBRUMsTUFBTTtZQUFPO1lBQ3BFTCxjQUFjTSxJQUFJLENBQUNDLFdBQVcsQ0FBQ2QsV0FBV1MsT0FBTztZQUNqREwsWUFBWSxDQUFDO1lBQ2I7Z0RBQU87b0JBQ0wsSUFBSUosV0FBV1MsT0FBTyxJQUFJVCxXQUFXUyxPQUFPLENBQUNGLGFBQWEsRUFBRTt3QkFDMURQLFdBQVdTLE9BQU8sQ0FBQ0YsYUFBYSxDQUFDTSxJQUFJLENBQUNFLFdBQVcsQ0FBQ2YsV0FBV1MsT0FBTztvQkFDdEU7Z0JBQ0Y7O1FBQ0Y7dUNBQUcsRUFBRTtJQUVMLE9BQU9OLFdBQVdNLE9BQU8saUJBQ3JCTyxDQUFBQSxHQUFBQSxVQUFBQSxZQUFBQSxFQUFhakIsVUFBVUksV0FBV00sT0FBTyxJQUN6QztBQUNOOztLQXJCZ0JYIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvU2hhZG93UG9ydGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxuZXhwb3J0IGZ1bmN0aW9uIFNoYWRvd1BvcnRhbCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9KSB7XG4gIGxldCBwb3J0YWxOb2RlID0gUmVhY3QudXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbClcbiAgbGV0IHNoYWRvd05vZGUgPSBSZWFjdC51c2VSZWY8U2hhZG93Um9vdCB8IG51bGw+KG51bGwpXG4gIGxldCBbLCBmb3JjZVVwZGF0ZV0gPSBSZWFjdC51c2VTdGF0ZTx7fSB8IHVuZGVmaW5lZD4oKVxuXG4gIFJlYWN0LnVzZUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb3duZXJEb2N1bWVudCA9IGRvY3VtZW50XG4gICAgcG9ydGFsTm9kZS5jdXJyZW50ID0gb3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCduZXh0anMtcG9ydGFsJylcbiAgICBzaGFkb3dOb2RlLmN1cnJlbnQgPSBwb3J0YWxOb2RlLmN1cnJlbnQuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pXG4gICAgb3duZXJEb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHBvcnRhbE5vZGUuY3VycmVudClcbiAgICBmb3JjZVVwZGF0ZSh7fSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHBvcnRhbE5vZGUuY3VycmVudCAmJiBwb3J0YWxOb2RlLmN1cnJlbnQub3duZXJEb2N1bWVudCkge1xuICAgICAgICBwb3J0YWxOb2RlLmN1cnJlbnQub3duZXJEb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBvcnRhbE5vZGUuY3VycmVudClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtdKVxuXG4gIHJldHVybiBzaGFkb3dOb2RlLmN1cnJlbnRcbiAgICA/IGNyZWF0ZVBvcnRhbChjaGlsZHJlbiwgc2hhZG93Tm9kZS5jdXJyZW50IGFzIGFueSlcbiAgICA6IG51bGxcbn1cbiJdLCJuYW1lcyI6WyJTaGFkb3dQb3J0YWwiLCJjaGlsZHJlbiIsInBvcnRhbE5vZGUiLCJSZWFjdCIsInVzZVJlZiIsInNoYWRvd05vZGUiLCJmb3JjZVVwZGF0ZSIsInVzZVN0YXRlIiwidXNlTGF5b3V0RWZmZWN0Iiwib3duZXJEb2N1bWVudCIsImRvY3VtZW50IiwiY3VycmVudCIsImNyZWF0ZUVsZW1lbnQiLCJhdHRhY2hTaGFkb3ciLCJtb2RlIiwiYm9keSIsImFwcGVuZENoaWxkIiwicmVtb3ZlQ2hpbGQiLCJjcmVhdGVQb3J0YWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js": +/*!***************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js ***! + \***************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"EditorLink\", ({\n enumerable: true,\n get: function() {\n return EditorLink;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _useopenineditor = __webpack_require__(/*! ../../helpers/use-open-in-editor */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\");\nfunction EditorLink(param) {\n let { file, isSourceFile, location } = param;\n var _location_line, _location_column;\n const open = (0, _useopenineditor.useOpenInEditor)({\n file,\n lineNumber: (_location_line = location == null ? void 0 : location.line) != null ? _location_line : 1,\n column: (_location_column = location == null ? void 0 : location.column) != null ? _location_column : 0\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-with-open-in-editor-link\": true,\n \"data-with-open-in-editor-link-source-file\": isSourceFile ? true : undefined,\n \"data-with-open-in-editor-link-import-trace\": isSourceFile ? undefined : true,\n tabIndex: 10,\n role: 'link',\n onClick: open,\n title: 'Click to open in your editor',\n children: [\n file,\n location ? \":\" + location.line + \":\" + location.column : null,\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"polyline\", {\n points: \"15 3 21 3 21 9\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"line\", {\n x1: \"10\",\n y1: \"14\",\n x2: \"21\",\n y2: \"3\"\n })\n ]\n })\n ]\n });\n}\n_c = EditorLink;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=EditorLink.js.map\nvar _c;\n$RefreshReg$(_c, \"EditorLink\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvRWRpdG9yTGluay5qcyIsIm1hcHBpbmdzIjoiOzs7OzhDQVdnQkE7OztlQUFBQTs7Ozs7NEVBWEU7NkNBQ2M7QUFVekIsb0JBQW9CLEtBQWlEO0lBQWpELE1BQUVDLElBQUksRUFBRUMsWUFBWSxFQUFFQyxRQUFRLEVBQW1CLEdBQWpEO1FBR1hBLGdCQUNKQTtJQUhWLE1BQU1DLE9BQU9DLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUFnQjtRQUMzQko7UUFDQUssWUFBWUgsQ0FBQUEsaUJBQUFBLFlBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFNBQVVJLElBQUFBLEtBQUksT0FBZEosaUJBQWtCO1FBQzlCSyxRQUFRTCxDQUFBQSxtQkFBQUEsWUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsU0FBVUssTUFBQUEsS0FBTSxPQUFoQkwsbUJBQW9CO0lBQzlCO0lBRUEscUJBQ0Usc0JBQUNNLE9BQUFBO1FBQ0NDLCtCQUE2QjtRQUM3QkMsNkNBQ0VULGVBQWUsT0FBT1U7UUFFeEJDLDhDQUNFWCxlQUFlVSxZQUFZO1FBRTdCRSxVQUFVO1FBQ1ZDLE1BQU07UUFDTkMsU0FBU1o7UUFDVGEsT0FBTzs7WUFFTmhCO1lBQ0FFLFdBQVksTUFBR0EsU0FBU0ksSUFBSSxHQUFDLE1BQUdKLFNBQVNLLE1BQU0sR0FBSzswQkFDckQsc0JBQUNVLE9BQUFBO2dCQUNDQyxPQUFNO2dCQUNOQyxTQUFRO2dCQUNSQyxNQUFLO2dCQUNMQyxRQUFPO2dCQUNQQyxhQUFZO2dCQUNaQyxlQUFjO2dCQUNkQyxnQkFBZTs7a0NBRWYscUJBQUNDLFFBQUFBO3dCQUFLQyxHQUFFOztrQ0FDUixxQkFBQ0MsWUFBQUE7d0JBQVNDLFFBQU87O2tDQUNqQixxQkFBQ3RCLFFBQUFBO3dCQUFLdUIsSUFBRzt3QkFBS0MsSUFBRzt3QkFBS0MsSUFBRzt3QkFBS0MsSUFBRzs7Ozs7O0FBSXpDO0tBdENnQmpDIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvRWRpdG9yTGluay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlT3BlbkluRWRpdG9yIH0gZnJvbSAnLi4vLi4vaGVscGVycy91c2Utb3Blbi1pbi1lZGl0b3InXG5cbnR5cGUgRWRpdG9yTGlua1Byb3BzID0ge1xuICBmaWxlOiBzdHJpbmdcbiAgaXNTb3VyY2VGaWxlOiBib29sZWFuXG4gIGxvY2F0aW9uPzoge1xuICAgIGxpbmU6IG51bWJlclxuICAgIGNvbHVtbjogbnVtYmVyXG4gIH1cbn1cbmV4cG9ydCBmdW5jdGlvbiBFZGl0b3JMaW5rKHsgZmlsZSwgaXNTb3VyY2VGaWxlLCBsb2NhdGlvbiB9OiBFZGl0b3JMaW5rUHJvcHMpIHtcbiAgY29uc3Qgb3BlbiA9IHVzZU9wZW5JbkVkaXRvcih7XG4gICAgZmlsZSxcbiAgICBsaW5lTnVtYmVyOiBsb2NhdGlvbj8ubGluZSA/PyAxLFxuICAgIGNvbHVtbjogbG9jYXRpb24/LmNvbHVtbiA/PyAwLFxuICB9KVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtcbiAgICAgIGRhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLXNvdXJjZS1maWxlPXtcbiAgICAgICAgaXNTb3VyY2VGaWxlID8gdHJ1ZSA6IHVuZGVmaW5lZFxuICAgICAgfVxuICAgICAgZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstaW1wb3J0LXRyYWNlPXtcbiAgICAgICAgaXNTb3VyY2VGaWxlID8gdW5kZWZpbmVkIDogdHJ1ZVxuICAgICAgfVxuICAgICAgdGFiSW5kZXg9ezEwfVxuICAgICAgcm9sZT17J2xpbmsnfVxuICAgICAgb25DbGljaz17b3Blbn1cbiAgICAgIHRpdGxlPXsnQ2xpY2sgdG8gb3BlbiBpbiB5b3VyIGVkaXRvcid9XG4gICAgPlxuICAgICAge2ZpbGV9XG4gICAgICB7bG9jYXRpb24gPyBgOiR7bG9jYXRpb24ubGluZX06JHtsb2NhdGlvbi5jb2x1bW59YCA6IG51bGx9XG4gICAgICA8c3ZnXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgID5cbiAgICAgICAgPHBhdGggZD1cIk0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2XCI+PC9wYXRoPlxuICAgICAgICA8cG9seWxpbmUgcG9pbnRzPVwiMTUgMyAyMSAzIDIxIDlcIj48L3BvbHlsaW5lPlxuICAgICAgICA8bGluZSB4MT1cIjEwXCIgeTE9XCIxNFwiIHgyPVwiMjFcIiB5Mj1cIjNcIj48L2xpbmU+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkVkaXRvckxpbmsiLCJmaWxlIiwiaXNTb3VyY2VGaWxlIiwibG9jYXRpb24iLCJvcGVuIiwidXNlT3BlbkluRWRpdG9yIiwibGluZU51bWJlciIsImxpbmUiLCJjb2x1bW4iLCJkaXYiLCJkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGluayIsImRhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLXNvdXJjZS1maWxlIiwidW5kZWZpbmVkIiwiZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmstaW1wb3J0LXRyYWNlIiwidGFiSW5kZXgiLCJyb2xlIiwib25DbGljayIsInRpdGxlIiwic3ZnIiwieG1sbnMiLCJ2aWV3Qm94IiwiZmlsbCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwicGF0aCIsImQiLCJwb2x5bGluZSIsInBvaW50cyIsIngxIiwieTEiLCJ4MiIsInkyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js ***! + \*************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Terminal\", ({\n enumerable: true,\n get: function() {\n return Terminal;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _anser = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/anser */ \"./node_modules/next/dist/compiled/anser/index.js\"));\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _hotlinkedtext = __webpack_require__(/*! ../hot-linked-text */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\");\nconst _EditorLink = __webpack_require__(/*! ./EditorLink */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js\");\nfunction getFile(lines) {\n const contentFileName = lines.shift();\n if (!contentFileName) return null;\n const [fileName, line, column] = contentFileName.split(':', 3);\n const parsedLine = Number(line);\n const parsedColumn = Number(column);\n const hasLocation = !Number.isNaN(parsedLine) && !Number.isNaN(parsedColumn);\n return {\n fileName: hasLocation ? fileName : contentFileName,\n location: hasLocation ? {\n line: parsedLine,\n column: parsedColumn\n } : undefined\n };\n}\nfunction getImportTraceFiles(lines) {\n if (lines.some((line)=>/ReactServerComponentsError:/.test(line)) || lines.some((line)=>/Import trace for requested module:/.test(line))) {\n // Grab the lines at the end containing the files\n const files = [];\n while(/.+\\..+/.test(lines[lines.length - 1]) && !lines[lines.length - 1].includes(':')){\n const file = lines.pop().trim();\n files.unshift(file);\n }\n return files;\n }\n return [];\n}\nfunction getEditorLinks(content) {\n const lines = content.split('\\n');\n const file = getFile(lines);\n const importTraceFiles = getImportTraceFiles(lines);\n return {\n file,\n source: lines.join('\\n'),\n importTraceFiles\n };\n}\nconst Terminal = function Terminal(param) {\n _s();\n let { content } = param;\n const { file, source, importTraceFiles } = _react.useMemo({\n \"Terminal.useMemo\": ()=>getEditorLinks(content)\n }[\"Terminal.useMemo\"], [\n content\n ]);\n const decoded = _react.useMemo({\n \"Terminal.useMemo[decoded]\": ()=>{\n return _anser.default.ansiToJson(source, {\n json: true,\n use_classes: true,\n remove_empty: true\n });\n }\n }[\"Terminal.useMemo[decoded]\"], [\n source\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-terminal\": true,\n children: [\n file && /*#__PURE__*/ (0, _jsxruntime.jsx)(_EditorLink.EditorLink, {\n isSourceFile: true,\n file: file.fileName,\n location: file.location\n }, file.fileName),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"pre\", {\n children: [\n decoded.map((entry, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n style: {\n color: entry.fg ? \"var(--color-\" + entry.fg + \")\" : undefined,\n ...entry.decoration === 'bold' ? {\n fontWeight: 800\n } : entry.decoration === 'italic' ? {\n fontStyle: 'italic'\n } : undefined\n },\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hotlinkedtext.HotlinkedText, {\n text: entry.content\n })\n }, \"terminal-entry-\" + index)),\n importTraceFiles.map((importTraceFile)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_EditorLink.EditorLink, {\n isSourceFile: false,\n file: importTraceFile\n }, importTraceFile))\n ]\n })\n ]\n });\n};\n_s(Terminal, \"nkmao/TIox3Jie/+6JvWO3hTKPQ=\");\n_c = Terminal;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=Terminal.js.map\nvar _c;\n$RefreshReg$(_c, \"Terminal\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvVGVybWluYWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OzRDQXdEYUE7OztlQUFBQTs7Ozs7OzRFQXhESzs2RUFDSzsyQ0FDTzt3Q0FDSDtBQUkzQixTQUFTQyxRQUFRQyxLQUFlO0lBQzlCLE1BQU1DLGtCQUFrQkQsTUFBTUUsS0FBSztJQUNuQyxJQUFJLENBQUNELGlCQUFpQixPQUFPO0lBQzdCLE1BQU0sQ0FBQ0UsVUFBVUMsTUFBTUMsT0FBTyxHQUFHSixnQkFBZ0JLLEtBQUssQ0FBQyxLQUFLO0lBRTVELE1BQU1DLGFBQWFDLE9BQU9KO0lBQzFCLE1BQU1LLGVBQWVELE9BQU9IO0lBQzVCLE1BQU1LLGNBQWMsQ0FBQ0YsT0FBT0csS0FBSyxDQUFDSixlQUFlLENBQUNDLE9BQU9HLEtBQUssQ0FBQ0Y7SUFFL0QsT0FBTztRQUNMTixVQUFVTyxjQUFjUCxXQUFXRjtRQUNuQ1csVUFBVUYsY0FDTjtZQUNFTixNQUFNRztZQUNORixRQUFRSTtRQUNWLElBQ0FJO0lBQ047QUFDRjtBQUVBLFNBQVNDLG9CQUFvQmQsS0FBZTtJQUMxQyxJQUNFQSxNQUFNZSxJQUFJLENBQUMsQ0FBQ1gsT0FBUyw4QkFBOEJZLElBQUksQ0FBQ1osVUFDeERKLE1BQU1lLElBQUksQ0FBQyxDQUFDWCxPQUFTLHFDQUFxQ1ksSUFBSSxDQUFDWixRQUMvRDtRQUNBLGlEQUFpRDtRQUNqRCxNQUFNYSxRQUFRLEVBQUU7UUFDaEIsTUFDRSxTQUFTRCxJQUFJLENBQUNoQixLQUFLLENBQUNBLE1BQU1rQixNQUFNLEdBQUcsRUFBRSxLQUNyQyxDQUFDbEIsS0FBSyxDQUFDQSxNQUFNa0IsTUFBTSxHQUFHLEVBQUUsQ0FBQ0MsUUFBUSxDQUFDLEtBQ2xDO1lBQ0EsTUFBTUMsT0FBT3BCLE1BQU1xQixHQUFHLEdBQUlDLElBQUk7WUFDOUJMLE1BQU1NLE9BQU8sQ0FBQ0g7UUFDaEI7UUFFQSxPQUFPSDtJQUNUO0lBRUEsT0FBTyxFQUFFO0FBQ1g7QUFFQSxTQUFTTyxlQUFlQyxPQUFlO0lBQ3JDLE1BQU16QixRQUFReUIsUUFBUW5CLEtBQUssQ0FBQztJQUM1QixNQUFNYyxPQUFPckIsUUFBUUM7SUFDckIsTUFBTTBCLG1CQUFtQlosb0JBQW9CZDtJQUU3QyxPQUFPO1FBQUVvQjtRQUFNTyxRQUFRM0IsTUFBTTRCLElBQUksQ0FBQztRQUFPRjtJQUFpQjtBQUM1RDtBQUVPLGlCQUEwQyxTQUFTNUIsU0FBUyxLQUVsRTs7SUFGa0UsTUFDakUyQixPQUFPLEVBQ1IsR0FGa0U7SUFHakUsTUFBTSxFQUFFTCxJQUFJLEVBQUVPLE1BQU0sRUFBRUQsZ0JBQWdCLEVBQUUsR0FBR0csT0FBTUMsT0FBTzs0QkFDdEQsSUFBTU4sZUFBZUM7MkJBQ3JCO1FBQUNBO0tBQVE7SUFHWCxNQUFNTSxVQUFVRixPQUFNQyxPQUFPO3FDQUFDO1lBQzVCLE9BQU9FLE9BQUFBLE9BQUssQ0FBQ0MsVUFBVSxDQUFDTixRQUFRO2dCQUM5Qk8sTUFBTTtnQkFDTkMsYUFBYTtnQkFDYkMsY0FBYztZQUNoQjtRQUNGO29DQUFHO1FBQUNUO0tBQU87SUFFWCxxQkFDRSxzQkFBQ1UsT0FBQUE7UUFBSUMsc0JBQW9COztZQUN0QmxCLFFBQUFBLFdBQUFBLEdBQ0MscUJBQUNtQixZQUFBQSxVQUFVO2dCQUNUQyxZQUFZO2dCQUVacEIsTUFBTUEsS0FBS2pCLFFBQVE7Z0JBQ25CUyxVQUFVUSxLQUFLUixRQUFRO2VBRmxCUSxLQUFLakIsUUFBUTswQkFLdEIsc0JBQUNzQyxPQUFBQTs7b0JBQ0VWLFFBQVFXLEdBQUcsQ0FBQyxDQUFDQyxPQUFPQyxRQUFBQSxXQUFBQSxHQUNuQixxQkFBQ0MsUUFBQUE7NEJBRUNDLE9BQU87Z0NBQ0xDLE9BQU9KLE1BQU1LLEVBQUUsR0FBSSxpQkFBY0wsTUFBTUssRUFBRSxHQUFDLE1BQUtuQztnQ0FDL0MsR0FBSThCLE1BQU1NLFVBQVUsS0FBSyxTQUNyQjtvQ0FBRUMsWUFBWTtnQ0FBSSxJQUNsQlAsTUFBTU0sVUFBVSxLQUFLLFdBQ25CO29DQUFFRSxXQUFXO2dDQUFTLElBQ3RCdEMsU0FBUzs0QkFDakI7c0NBRUEsbUNBQUN1QyxlQUFBQSxhQUFhO2dDQUFDQyxNQUFNVixNQUFNbEIsT0FBTzs7MkJBVjVCLG9CQUFpQm1CO29CQWExQmxCLGlCQUFpQmdCLEdBQUcsQ0FBQyxDQUFDWSxrQkFBQUEsV0FBQUEsR0FDckIscUJBQUNmLFlBQUFBLFVBQVU7NEJBQ1RDLGNBQWM7NEJBRWRwQixNQUFNa0M7MkJBRERBOzs7OztBQU9qQjs7S0FwRGF4RCIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL1Rlcm1pbmFsL1Rlcm1pbmFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQW5zZXIgZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL2Fuc2VyJ1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBIb3RsaW5rZWRUZXh0IH0gZnJvbSAnLi4vaG90LWxpbmtlZC10ZXh0J1xuaW1wb3J0IHsgRWRpdG9yTGluayB9IGZyb20gJy4vRWRpdG9yTGluaydcblxuZXhwb3J0IHR5cGUgVGVybWluYWxQcm9wcyA9IHsgY29udGVudDogc3RyaW5nIH1cblxuZnVuY3Rpb24gZ2V0RmlsZShsaW5lczogc3RyaW5nW10pIHtcbiAgY29uc3QgY29udGVudEZpbGVOYW1lID0gbGluZXMuc2hpZnQoKVxuICBpZiAoIWNvbnRlbnRGaWxlTmFtZSkgcmV0dXJuIG51bGxcbiAgY29uc3QgW2ZpbGVOYW1lLCBsaW5lLCBjb2x1bW5dID0gY29udGVudEZpbGVOYW1lLnNwbGl0KCc6JywgMylcblxuICBjb25zdCBwYXJzZWRMaW5lID0gTnVtYmVyKGxpbmUpXG4gIGNvbnN0IHBhcnNlZENvbHVtbiA9IE51bWJlcihjb2x1bW4pXG4gIGNvbnN0IGhhc0xvY2F0aW9uID0gIU51bWJlci5pc05hTihwYXJzZWRMaW5lKSAmJiAhTnVtYmVyLmlzTmFOKHBhcnNlZENvbHVtbilcblxuICByZXR1cm4ge1xuICAgIGZpbGVOYW1lOiBoYXNMb2NhdGlvbiA/IGZpbGVOYW1lIDogY29udGVudEZpbGVOYW1lLFxuICAgIGxvY2F0aW9uOiBoYXNMb2NhdGlvblxuICAgICAgPyB7XG4gICAgICAgICAgbGluZTogcGFyc2VkTGluZSxcbiAgICAgICAgICBjb2x1bW46IHBhcnNlZENvbHVtbixcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQsXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0SW1wb3J0VHJhY2VGaWxlcyhsaW5lczogc3RyaW5nW10pIHtcbiAgaWYgKFxuICAgIGxpbmVzLnNvbWUoKGxpbmUpID0+IC9SZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvcjovLnRlc3QobGluZSkpIHx8XG4gICAgbGluZXMuc29tZSgobGluZSkgPT4gL0ltcG9ydCB0cmFjZSBmb3IgcmVxdWVzdGVkIG1vZHVsZTovLnRlc3QobGluZSkpXG4gICkge1xuICAgIC8vIEdyYWIgdGhlIGxpbmVzIGF0IHRoZSBlbmQgY29udGFpbmluZyB0aGUgZmlsZXNcbiAgICBjb25zdCBmaWxlcyA9IFtdXG4gICAgd2hpbGUgKFxuICAgICAgLy4rXFwuLisvLnRlc3QobGluZXNbbGluZXMubGVuZ3RoIC0gMV0pICYmXG4gICAgICAhbGluZXNbbGluZXMubGVuZ3RoIC0gMV0uaW5jbHVkZXMoJzonKVxuICAgICkge1xuICAgICAgY29uc3QgZmlsZSA9IGxpbmVzLnBvcCgpIS50cmltKClcbiAgICAgIGZpbGVzLnVuc2hpZnQoZmlsZSlcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsZXNcbiAgfVxuXG4gIHJldHVybiBbXVxufVxuXG5mdW5jdGlvbiBnZXRFZGl0b3JMaW5rcyhjb250ZW50OiBzdHJpbmcpIHtcbiAgY29uc3QgbGluZXMgPSBjb250ZW50LnNwbGl0KCdcXG4nKVxuICBjb25zdCBmaWxlID0gZ2V0RmlsZShsaW5lcylcbiAgY29uc3QgaW1wb3J0VHJhY2VGaWxlcyA9IGdldEltcG9ydFRyYWNlRmlsZXMobGluZXMpXG5cbiAgcmV0dXJuIHsgZmlsZSwgc291cmNlOiBsaW5lcy5qb2luKCdcXG4nKSwgaW1wb3J0VHJhY2VGaWxlcyB9XG59XG5cbmV4cG9ydCBjb25zdCBUZXJtaW5hbDogUmVhY3QuRkM8VGVybWluYWxQcm9wcz4gPSBmdW5jdGlvbiBUZXJtaW5hbCh7XG4gIGNvbnRlbnQsXG59KSB7XG4gIGNvbnN0IHsgZmlsZSwgc291cmNlLCBpbXBvcnRUcmFjZUZpbGVzIH0gPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IGdldEVkaXRvckxpbmtzKGNvbnRlbnQpLFxuICAgIFtjb250ZW50XVxuICApXG5cbiAgY29uc3QgZGVjb2RlZCA9IFJlYWN0LnVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBBbnNlci5hbnNpVG9Kc29uKHNvdXJjZSwge1xuICAgICAganNvbjogdHJ1ZSxcbiAgICAgIHVzZV9jbGFzc2VzOiB0cnVlLFxuICAgICAgcmVtb3ZlX2VtcHR5OiB0cnVlLFxuICAgIH0pXG4gIH0sIFtzb3VyY2VdKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBkYXRhLW5leHRqcy10ZXJtaW5hbD5cbiAgICAgIHtmaWxlICYmIChcbiAgICAgICAgPEVkaXRvckxpbmtcbiAgICAgICAgICBpc1NvdXJjZUZpbGVcbiAgICAgICAgICBrZXk9e2ZpbGUuZmlsZU5hbWV9XG4gICAgICAgICAgZmlsZT17ZmlsZS5maWxlTmFtZX1cbiAgICAgICAgICBsb2NhdGlvbj17ZmlsZS5sb2NhdGlvbn1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICA8cHJlPlxuICAgICAgICB7ZGVjb2RlZC5tYXAoKGVudHJ5LCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBrZXk9e2B0ZXJtaW5hbC1lbnRyeS0ke2luZGV4fWB9XG4gICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICBjb2xvcjogZW50cnkuZmcgPyBgdmFyKC0tY29sb3ItJHtlbnRyeS5mZ30pYCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgLi4uKGVudHJ5LmRlY29yYXRpb24gPT09ICdib2xkJ1xuICAgICAgICAgICAgICAgID8geyBmb250V2VpZ2h0OiA4MDAgfVxuICAgICAgICAgICAgICAgIDogZW50cnkuZGVjb3JhdGlvbiA9PT0gJ2l0YWxpYydcbiAgICAgICAgICAgICAgICAgID8geyBmb250U3R5bGU6ICdpdGFsaWMnIH1cbiAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkKSxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEhvdGxpbmtlZFRleHQgdGV4dD17ZW50cnkuY29udGVudH0gLz5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICkpfVxuICAgICAgICB7aW1wb3J0VHJhY2VGaWxlcy5tYXAoKGltcG9ydFRyYWNlRmlsZSkgPT4gKFxuICAgICAgICAgIDxFZGl0b3JMaW5rXG4gICAgICAgICAgICBpc1NvdXJjZUZpbGU9e2ZhbHNlfVxuICAgICAgICAgICAga2V5PXtpbXBvcnRUcmFjZUZpbGV9XG4gICAgICAgICAgICBmaWxlPXtpbXBvcnRUcmFjZUZpbGV9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICA8L3ByZT5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlRlcm1pbmFsIiwiZ2V0RmlsZSIsImxpbmVzIiwiY29udGVudEZpbGVOYW1lIiwic2hpZnQiLCJmaWxlTmFtZSIsImxpbmUiLCJjb2x1bW4iLCJzcGxpdCIsInBhcnNlZExpbmUiLCJOdW1iZXIiLCJwYXJzZWRDb2x1bW4iLCJoYXNMb2NhdGlvbiIsImlzTmFOIiwibG9jYXRpb24iLCJ1bmRlZmluZWQiLCJnZXRJbXBvcnRUcmFjZUZpbGVzIiwic29tZSIsInRlc3QiLCJmaWxlcyIsImxlbmd0aCIsImluY2x1ZGVzIiwiZmlsZSIsInBvcCIsInRyaW0iLCJ1bnNoaWZ0IiwiZ2V0RWRpdG9yTGlua3MiLCJjb250ZW50IiwiaW1wb3J0VHJhY2VGaWxlcyIsInNvdXJjZSIsImpvaW4iLCJSZWFjdCIsInVzZU1lbW8iLCJkZWNvZGVkIiwiQW5zZXIiLCJhbnNpVG9Kc29uIiwianNvbiIsInVzZV9jbGFzc2VzIiwicmVtb3ZlX2VtcHR5IiwiZGl2IiwiZGF0YS1uZXh0anMtdGVybWluYWwiLCJFZGl0b3JMaW5rIiwiaXNTb3VyY2VGaWxlIiwicHJlIiwibWFwIiwiZW50cnkiLCJpbmRleCIsInNwYW4iLCJzdHlsZSIsImNvbG9yIiwiZmciLCJkZWNvcmF0aW9uIiwiZm9udFdlaWdodCIsImZvbnRTdHlsZSIsIkhvdGxpbmtlZFRleHQiLCJ0ZXh0IiwiaW1wb3J0VHJhY2VGaWxlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/index.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/index.js ***! + \**********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Terminal\", ({\n enumerable: true,\n get: function() {\n return _Terminal.Terminal;\n }\n}));\nconst _Terminal = __webpack_require__(/*! ./Terminal */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js\");\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs0Q0FBU0E7OztlQUFBQSxVQUFBQSxRQUFROzs7c0NBQVEiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9UZXJtaW5hbC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVGVybWluYWwgfSBmcm9tICcuL1Rlcm1pbmFsJ1xuIl0sIm5hbWVzIjpbIlRlcm1pbmFsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/styles.js": +/*!***********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/styles.js ***! + \***********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"styles\", ({\n enumerable: true,\n get: function() {\n return styles;\n }\n}));\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-terminal] {\\n border-radius: var(--size-gap-half);\\n background-color: var(--color-ansi-bg);\\n color: var(--color-ansi-fg);\\n }\\n [data-nextjs-terminal]::selection,\\n [data-nextjs-terminal] *::selection {\\n background-color: var(--color-ansi-selection);\\n }\\n [data-nextjs-terminal] * {\\n color: inherit;\\n background-color: transparent;\\n font-family: var(--font-stack-monospace);\\n }\\n [data-nextjs-terminal] > * {\\n margin: 0;\\n padding: calc(var(--size-gap) + var(--size-gap-half))\\n calc(var(--size-gap-double) + var(--size-gap-half));\\n }\\n\\n [data-nextjs-terminal] pre {\\n white-space: pre-wrap;\\n word-break: break-word;\\n }\\n\\n [data-with-open-in-editor-link] svg {\\n width: auto;\\n height: var(--size-font-small);\\n margin-left: var(--size-gap);\\n }\\n [data-with-open-in-editor-link] {\\n cursor: pointer;\\n }\\n [data-with-open-in-editor-link]:hover {\\n text-decoration: underline dotted;\\n }\\n [data-with-open-in-editor-link-source-file] {\\n border-bottom: 1px solid var(--color-ansi-bright-black);\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n line-break: anywhere;\\n }\\n [data-with-open-in-editor-link-import-trace] {\\n margin-left: var(--size-gap-double);\\n }\\n [data-nextjs-terminal] a {\\n color: inherit;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=styles.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVGVybWluYWwvc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MENBc0RTQTs7O2VBQUFBOzs7OzBDQXREbUI7Ozs7Ozs7Ozs7QUFFNUIsTUFBTUEsU0FBQUEsQ0FBQUEsR0FBU0MsY0FBQUEsSUFBQUEsRUFBRyIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL1Rlcm1pbmFsL3N0eWxlcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tICcuLi8uLi9oZWxwZXJzL25vb3AtdGVtcGxhdGUnXG5cbmNvbnN0IHN0eWxlcyA9IGNzc2BcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYW5zaS1iZyk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktZmcpO1xuICB9XG4gIFtkYXRhLW5leHRqcy10ZXJtaW5hbF06OnNlbGVjdGlvbixcbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSAqOjpzZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktc2VsZWN0aW9uKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdICoge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSA+ICoge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigtLXNpemUtZ2FwKSArIHZhcigtLXNpemUtZ2FwLWhhbGYpKVxuICAgICAgY2FsYyh2YXIoLS1zaXplLWdhcC1kb3VibGUpICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLXRlcm1pbmFsXSBwcmUge1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICB9XG5cbiAgW2RhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rXSBzdmcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2l6ZS1nYXApO1xuICB9XG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGlua10ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBbZGF0YS13aXRoLW9wZW4taW4tZWRpdG9yLWxpbmtdOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIH1cbiAgW2RhdGEtd2l0aC1vcGVuLWluLWVkaXRvci1saW5rLXNvdXJjZS1maWxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsYWNrKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGxpbmUtYnJlYWs6IGFueXdoZXJlO1xuICB9XG4gIFtkYXRhLXdpdGgtb3Blbi1pbi1lZGl0b3ItbGluay1pbXBvcnQtdHJhY2VdIHtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtdGVybWluYWxdIGEge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG5gXG5cbmV4cG9ydCB7IHN0eWxlcyB9XG4iXSwibmFtZXMiOlsic3R5bGVzIiwiY3NzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/styles.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/Toast.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/Toast.js ***! + \*******************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Toast\", ({\n enumerable: true,\n get: function() {\n return Toast;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst Toast = function Toast(param) {\n let { onClick, children, className, ...props } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n ...props,\n onClick: (e)=>{\n e.preventDefault();\n return onClick == null ? void 0 : onClick();\n },\n className: \"nextjs-toast\" + (className ? ' ' + className : ''),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n \"data-nextjs-toast-wrapper\": true,\n children: children\n })\n });\n};\n_c = Toast;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=Toast.js.map\nvar _c;\n$RefreshReg$(_c, \"Toast\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozt5Q0FRYUE7OztlQUFBQTs7Ozs7NkVBUlU7QUFRaEIsY0FBb0MsU0FBU0EsTUFBTSxLQUt6RDtJQUx5RCxNQUN4REMsT0FBTyxFQUNQQyxRQUFRLEVBQ1JDLFNBQVMsRUFDVCxHQUFHQyxPQUNKLEdBTHlEO0lBTXhELHFCQUNFLHFCQUFDQyxPQUFBQTtRQUNFLEdBQUdELEtBQUs7UUFDVEgsU0FBUyxDQUFDSztZQUNSQSxFQUFFQyxjQUFjO1lBQ2hCLE9BQU9OLFdBQUFBLE9BQUFBLEtBQUFBLElBQUFBO1FBQ1Q7UUFDQUUsV0FBWSxpQkFBY0EsQ0FBQUEsWUFBWSxNQUFNQSxZQUFZLEdBQUM7a0JBRXpELG1DQUFDRSxPQUFBQTtZQUFJRywyQkFBeUI7c0JBQUVOOzs7QUFHdEM7S0FsQmFGIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgdHlwZSBUb2FzdFByb3BzID0gUmVhY3QuSFRNTFByb3BzPEhUTUxEaXZFbGVtZW50PiAmIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgb25DbGljaz86ICgpID0+IHZvaWRcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCBUb2FzdDogUmVhY3QuRkM8VG9hc3RQcm9wcz4gPSBmdW5jdGlvbiBUb2FzdCh7XG4gIG9uQ2xpY2ssXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIC4uLnByb3BzXG59KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgey4uLnByb3BzfVxuICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIHJldHVybiBvbkNsaWNrPy4oKVxuICAgICAgfX1cbiAgICAgIGNsYXNzTmFtZT17YG5leHRqcy10b2FzdCR7Y2xhc3NOYW1lID8gJyAnICsgY2xhc3NOYW1lIDogJyd9YH1cbiAgICA+XG4gICAgICA8ZGl2IGRhdGEtbmV4dGpzLXRvYXN0LXdyYXBwZXI+e2NoaWxkcmVufTwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiVG9hc3QiLCJvbkNsaWNrIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJwcm9wcyIsImRpdiIsImUiLCJwcmV2ZW50RGVmYXVsdCIsImRhdGEtbmV4dGpzLXRvYXN0LXdyYXBwZXIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/Toast.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js ***! + \*******************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Toast: function() {\n return _Toast.Toast;\n },\n styles: function() {\n return _styles.styles;\n }\n});\nconst _styles = __webpack_require__(/*! ./styles */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/styles.js\");\nconst _Toast = __webpack_require__(/*! ./Toast */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/Toast.js\");\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3QvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQ1NBLEtBQUs7ZUFBTEEsT0FBQUEsS0FBSzs7SUFETEMsTUFBTTtlQUFOQSxRQUFBQSxNQUFNOzs7b0NBQVE7bUNBQ0QiLCJzb3VyY2VzIjpbIi9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvY29tcG9uZW50cy9Ub2FzdC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgc3R5bGVzIH0gZnJvbSAnLi9zdHlsZXMnXG5leHBvcnQgeyBUb2FzdCB9IGZyb20gJy4vVG9hc3QnXG4iXSwibmFtZXMiOlsiVG9hc3QiLCJzdHlsZXMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/styles.js": +/*!********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/styles.js ***! + \********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"styles\", ({\n enumerable: true,\n get: function() {\n return styles;\n }\n}));\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n .nextjs-toast {\\n position: fixed;\\n bottom: var(--size-gap-double);\\n left: var(--size-gap-double);\\n max-width: 420px;\\n z-index: 9000;\\n box-shadow: 0px var(--size-gap-double) var(--size-gap-quad)\\n rgba(0, 0, 0, 0.25);\\n }\\n\\n @media (max-width: 440px) {\\n .nextjs-toast {\\n max-width: 90vw;\\n left: 5vw;\\n }\\n }\\n\\n .nextjs-toast-errors-parent {\\n padding: 16px;\\n border-radius: var(--size-gap-quad);\\n font-weight: 500;\\n color: var(--color-ansi-bright-white);\\n background-color: var(--color-ansi-red);\\n }\\n\\n .nextjs-static-indicator-toast-wrapper {\\n width: 30px;\\n height: 30px;\\n overflow: hidden;\\n border: 0;\\n border-radius: var(--size-gap-triple);\\n background: var(--color-background);\\n color: var(--color-font);\\n transition: all 0.3s ease-in-out;\\n box-shadow:\\n inset 0 0 0 1px var(--color-border-shadow),\\n 0 11px 40px 0 rgba(0, 0, 0, 0.25),\\n 0 2px 10px 0 rgba(0, 0, 0, 0.12);\\n }\\n\\n .nextjs-static-indicator-toast-wrapper:hover {\\n width: 140px;\\n }\\n\\n .nextjs-static-indicator-toast-icon {\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 30px;\\n height: 30px;\\n }\\n\\n .nextjs-static-indicator-toast-text {\\n font-size: 14px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n opacity: 0;\\n white-space: nowrap;\\n transition: opacity 0.3s ease-in-out;\\n line-height: 30px;\\n position: absolute;\\n left: 30px;\\n top: 0;\\n }\\n\\n .nextjs-static-indicator-toast-wrapper:hover\\n .nextjs-static-indicator-toast-text {\\n opacity: 1;\\n }\\n\\n .nextjs-static-indicator-toast-wrapper button {\\n color: var(--color-font);\\n opacity: 0.8;\\n background: none;\\n border: none;\\n margin-left: 6px;\\n margin-top: -2px;\\n outline: 0;\\n }\\n\\n .nextjs-static-indicator-toast-wrapper button:focus {\\n opacity: 1;\\n }\\n\\n .nextjs-static-indicator-toast-wrapper button > svg {\\n width: 16px;\\n height: 16px;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=styles.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVG9hc3Qvc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MENBOEZTQTs7O2VBQUFBOzs7OzBDQTlGbUI7Ozs7Ozs7Ozs7QUFFNUIsTUFBTUEsU0FBQUEsQ0FBQUEsR0FBU0MsY0FBQUEsSUFBQUEsRUFBRyIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL1RvYXN0L3N0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZSdcblxuY29uc3Qgc3R5bGVzID0gY3NzYFxuICAubmV4dGpzLXRvYXN0IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiB2YXIoLS1zaXplLWdhcC1kb3VibGUpO1xuICAgIGxlZnQ6IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gICAgbWF4LXdpZHRoOiA0MjBweDtcbiAgICB6LWluZGV4OiA5MDAwO1xuICAgIGJveC1zaGFkb3c6IDBweCB2YXIoLS1zaXplLWdhcC1kb3VibGUpIHZhcigtLXNpemUtZ2FwLXF1YWQpXG4gICAgICByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICB9XG5cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ0MHB4KSB7XG4gICAgLm5leHRqcy10b2FzdCB7XG4gICAgICBtYXgtd2lkdGg6IDkwdnc7XG4gICAgICBsZWZ0OiA1dnc7XG4gICAgfVxuICB9XG5cbiAgLm5leHRqcy10b2FzdC1lcnJvcnMtcGFyZW50IHtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLXF1YWQpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XG4gIH1cblxuICAubmV4dGpzLXN0YXRpYy1pbmRpY2F0b3ItdG9hc3Qtd3JhcHBlciB7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNpemUtZ2FwLXRyaXBsZSk7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYmFja2dyb3VuZCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWZvbnQpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UtaW4tb3V0O1xuICAgIGJveC1zaGFkb3c6XG4gICAgICBpbnNldCAwIDAgMCAxcHggdmFyKC0tY29sb3ItYm9yZGVyLXNoYWRvdyksXG4gICAgICAwIDExcHggNDBweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSksXG4gICAgICAwIDJweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjEyKTtcbiAgfVxuXG4gIC5uZXh0anMtc3RhdGljLWluZGljYXRvci10b2FzdC13cmFwcGVyOmhvdmVyIHtcbiAgICB3aWR0aDogMTQwcHg7XG4gIH1cblxuICAubmV4dGpzLXN0YXRpYy1pbmRpY2F0b3ItdG9hc3QtaWNvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMzBweDtcbiAgfVxuXG4gIC5uZXh0anMtc3RhdGljLWluZGljYXRvci10b2FzdC10ZXh0IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDMwcHg7XG4gICAgdG9wOiAwO1xuICB9XG5cbiAgLm5leHRqcy1zdGF0aWMtaW5kaWNhdG9yLXRvYXN0LXdyYXBwZXI6aG92ZXJcbiAgICAubmV4dGpzLXN0YXRpYy1pbmRpY2F0b3ItdG9hc3QtdGV4dCB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC5uZXh0anMtc3RhdGljLWluZGljYXRvci10b2FzdC13cmFwcGVyIGJ1dHRvbiB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWZvbnQpO1xuICAgIG9wYWNpdHk6IDAuODtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgb3V0bGluZTogMDtcbiAgfVxuXG4gIC5uZXh0anMtc3RhdGljLWluZGljYXRvci10b2FzdC13cmFwcGVyIGJ1dHRvbjpmb2N1cyB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuXG4gIC5uZXh0anMtc3RhdGljLWluZGljYXRvci10b2FzdC13cmFwcGVyIGJ1dHRvbiA+IHN2ZyB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICB9XG5gXG5cbmV4cG9ydCB7IHN0eWxlcyB9XG4iXSwibmFtZXMiOlsic3R5bGVzIiwiY3NzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/styles.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js": +/*!*************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js ***! + \*************************************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n VersionStalenessInfo: function() {\n return VersionStalenessInfo;\n },\n getStaleness: function() {\n return getStaleness;\n }\n});\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nfunction VersionStalenessInfo(param) {\n let { versionInfo } = param;\n if (!versionInfo) return null;\n const { staleness } = versionInfo;\n let { text, indicatorClass, title } = getStaleness(versionInfo);\n if (!text) return null;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n className: \"nextjs-container-build-error-version-status\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n className: indicatorClass\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"small\", {\n \"data-nextjs-version-checker\": true,\n title: title,\n children: text\n }),\n ' ',\n staleness === 'fresh' || staleness === 'newer-than-npm' || staleness === 'unknown' ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n href: \"https://nextjs.org/docs/messages/version-staleness\",\n children: \"(learn more)\"\n }),\n false ? 0 : ''\n ]\n });\n}\n_c = VersionStalenessInfo;\nfunction getStaleness(param) {\n let { installed, staleness, expected } = param;\n let text = '';\n let title = '';\n let indicatorClass = '';\n const versionLabel = \"Next.js (\" + installed + \")\";\n switch(staleness){\n case 'newer-than-npm':\n case 'fresh':\n text = versionLabel;\n title = \"Latest available version is detected (\" + installed + \").\";\n indicatorClass = 'fresh';\n break;\n case 'stale-patch':\n case 'stale-minor':\n text = \"\" + versionLabel + \" out of date\";\n title = \"There is a newer version (\" + expected + \") available, upgrade recommended! \";\n indicatorClass = 'stale';\n break;\n case 'stale-major':\n {\n text = \"\" + versionLabel + \" is outdated\";\n title = \"An outdated version detected (latest is \" + expected + \"), upgrade is highly recommended!\";\n indicatorClass = 'outdated';\n break;\n }\n case 'stale-prerelease':\n {\n text = \"\" + versionLabel + \" is outdated\";\n title = \"There is a newer canary version (\" + expected + \") available, please upgrade! \";\n indicatorClass = 'stale';\n break;\n }\n case 'unknown':\n break;\n default:\n break;\n }\n return {\n text,\n indicatorClass,\n title\n };\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=VersionStalenessInfo.js.map\nvar _c;\n$RefreshReg$(_c, \"VersionStalenessInfo\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVmVyc2lvblN0YWxlbmVzc0luZm8vVmVyc2lvblN0YWxlbmVzc0luZm8uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWdCQSxvQkFBb0I7ZUFBcEJBOztJQWlDQUMsWUFBWTtlQUFaQTs7OztBQWpDVCw4QkFBOEIsS0FJcEM7SUFKb0MsTUFDbkNDLFdBQVcsRUFHWixHQUpvQztJQUtuQyxJQUFJLENBQUNBLGFBQWEsT0FBTztJQUN6QixNQUFNLEVBQUVDLFNBQVMsRUFBRSxHQUFHRDtJQUN0QixJQUFJLEVBQUVFLElBQUksRUFBRUMsY0FBYyxFQUFFQyxLQUFLLEVBQUUsR0FBR0wsYUFBYUM7SUFFbkQsSUFBSSxDQUFDRSxNQUFNLE9BQU87SUFFbEIscUJBQ0Usc0JBQUNHLFFBQUFBO1FBQUtDLFdBQVU7OzBCQUNkLHFCQUFDRCxRQUFBQTtnQkFBS0MsV0FBV0g7OzBCQUNqQixxQkFBQ0ksU0FBQUE7Z0JBQU1DLDZCQUEyQjtnQkFBQ0osT0FBT0E7MEJBQ3ZDRjs7WUFDTTtZQUNSRCxjQUFjLFdBQ2ZBLGNBQWMsb0JBQ2RBLGNBQWMsWUFBWSxxQkFDeEIscUJBQUNRLEtBQUFBO2dCQUNDQyxRQUFPO2dCQUNQQyxLQUFJO2dCQUNKQyxNQUFLOzBCQUNOOztZQUlGQyxNQUFxQixHQUFHLENBQWMsR0FBRzs7O0FBR2hEO0tBL0JnQmY7QUFpQ1QsU0FBU0MsYUFBYSxLQUErQztJQUEvQyxNQUFFaUIsU0FBUyxFQUFFZixTQUFTLEVBQUVnQixRQUFRLEVBQWUsR0FBL0M7SUFDM0IsSUFBSWYsT0FBTztJQUNYLElBQUlFLFFBQVE7SUFDWixJQUFJRCxpQkFBaUI7SUFDckIsTUFBTWUsZUFBZ0IsY0FBV0YsWUFBVTtJQUMzQyxPQUFRZjtRQUNOLEtBQUs7UUFDTCxLQUFLO1lBQ0hDLE9BQU9nQjtZQUNQZCxRQUFTLDJDQUF3Q1ksWUFBVTtZQUMzRGIsaUJBQWlCO1lBQ2pCO1FBQ0YsS0FBSztRQUNMLEtBQUs7WUFDSEQsT0FBUSxLQUFFZ0IsZUFBYTtZQUN2QmQsUUFBUywrQkFBNEJhLFdBQVM7WUFDOUNkLGlCQUFpQjtZQUNqQjtRQUNGLEtBQUs7WUFBZTtnQkFDbEJELE9BQVEsS0FBRWdCLGVBQWE7Z0JBQ3ZCZCxRQUFTLDZDQUEwQ2EsV0FBUztnQkFDNURkLGlCQUFpQjtnQkFDakI7WUFDRjtRQUNBLEtBQUs7WUFBb0I7Z0JBQ3ZCRCxPQUFRLEtBQUVnQixlQUFhO2dCQUN2QmQsUUFBUyxzQ0FBbUNhLFdBQVM7Z0JBQ3JEZCxpQkFBaUI7Z0JBQ2pCO1lBQ0Y7UUFDQSxLQUFLO1lBQ0g7UUFDRjtZQUNFO0lBQ0o7SUFDQSxPQUFPO1FBQUVEO1FBQU1DO1FBQWdCQztJQUFNO0FBQ3ZDIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVmVyc2lvblN0YWxlbmVzc0luZm8vVmVyc2lvblN0YWxlbmVzc0luZm8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVmVyc2lvbkluZm8gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2ZXIvZGV2L3BhcnNlLXZlcnNpb24taW5mbydcblxuZXhwb3J0IGZ1bmN0aW9uIFZlcnNpb25TdGFsZW5lc3NJbmZvKHtcbiAgdmVyc2lvbkluZm8sXG59OiB7XG4gIHZlcnNpb25JbmZvOiBWZXJzaW9uSW5mbyB8IHVuZGVmaW5lZFxufSkge1xuICBpZiAoIXZlcnNpb25JbmZvKSByZXR1cm4gbnVsbFxuICBjb25zdCB7IHN0YWxlbmVzcyB9ID0gdmVyc2lvbkluZm9cbiAgbGV0IHsgdGV4dCwgaW5kaWNhdG9yQ2xhc3MsIHRpdGxlIH0gPSBnZXRTdGFsZW5lc3ModmVyc2lvbkluZm8pXG5cbiAgaWYgKCF0ZXh0KSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPHNwYW4gY2xhc3NOYW1lPVwibmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1c1wiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPXtpbmRpY2F0b3JDbGFzc30gLz5cbiAgICAgIDxzbWFsbCBkYXRhLW5leHRqcy12ZXJzaW9uLWNoZWNrZXIgdGl0bGU9e3RpdGxlfT5cbiAgICAgICAge3RleHR9XG4gICAgICA8L3NtYWxsPnsnICd9XG4gICAgICB7c3RhbGVuZXNzID09PSAnZnJlc2gnIHx8XG4gICAgICBzdGFsZW5lc3MgPT09ICduZXdlci10aGFuLW5wbScgfHxcbiAgICAgIHN0YWxlbmVzcyA9PT0gJ3Vua25vd24nID8gbnVsbCA6IChcbiAgICAgICAgPGFcbiAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgIGhyZWY9XCJodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy92ZXJzaW9uLXN0YWxlbmVzc1wiXG4gICAgICAgID5cbiAgICAgICAgICAobGVhcm4gbW9yZSlcbiAgICAgICAgPC9hPlxuICAgICAgKX1cbiAgICAgIHtwcm9jZXNzLmVudi5UVVJCT1BBQ0sgPyAnIChUdXJib3BhY2spJyA6ICcnfVxuICAgIDwvc3Bhbj5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhbGVuZXNzKHsgaW5zdGFsbGVkLCBzdGFsZW5lc3MsIGV4cGVjdGVkIH06IFZlcnNpb25JbmZvKSB7XG4gIGxldCB0ZXh0ID0gJydcbiAgbGV0IHRpdGxlID0gJydcbiAgbGV0IGluZGljYXRvckNsYXNzID0gJydcbiAgY29uc3QgdmVyc2lvbkxhYmVsID0gYE5leHQuanMgKCR7aW5zdGFsbGVkfSlgXG4gIHN3aXRjaCAoc3RhbGVuZXNzKSB7XG4gICAgY2FzZSAnbmV3ZXItdGhhbi1ucG0nOlxuICAgIGNhc2UgJ2ZyZXNoJzpcbiAgICAgIHRleHQgPSB2ZXJzaW9uTGFiZWxcbiAgICAgIHRpdGxlID0gYExhdGVzdCBhdmFpbGFibGUgdmVyc2lvbiBpcyBkZXRlY3RlZCAoJHtpbnN0YWxsZWR9KS5gXG4gICAgICBpbmRpY2F0b3JDbGFzcyA9ICdmcmVzaCdcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnc3RhbGUtcGF0Y2gnOlxuICAgIGNhc2UgJ3N0YWxlLW1pbm9yJzpcbiAgICAgIHRleHQgPSBgJHt2ZXJzaW9uTGFiZWx9IG91dCBvZiBkYXRlYFxuICAgICAgdGl0bGUgPSBgVGhlcmUgaXMgYSBuZXdlciB2ZXJzaW9uICgke2V4cGVjdGVkfSkgYXZhaWxhYmxlLCB1cGdyYWRlIHJlY29tbWVuZGVkISBgXG4gICAgICBpbmRpY2F0b3JDbGFzcyA9ICdzdGFsZSdcbiAgICAgIGJyZWFrXG4gICAgY2FzZSAnc3RhbGUtbWFqb3InOiB7XG4gICAgICB0ZXh0ID0gYCR7dmVyc2lvbkxhYmVsfSBpcyBvdXRkYXRlZGBcbiAgICAgIHRpdGxlID0gYEFuIG91dGRhdGVkIHZlcnNpb24gZGV0ZWN0ZWQgKGxhdGVzdCBpcyAke2V4cGVjdGVkfSksIHVwZ3JhZGUgaXMgaGlnaGx5IHJlY29tbWVuZGVkIWBcbiAgICAgIGluZGljYXRvckNsYXNzID0gJ291dGRhdGVkJ1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSAnc3RhbGUtcHJlcmVsZWFzZSc6IHtcbiAgICAgIHRleHQgPSBgJHt2ZXJzaW9uTGFiZWx9IGlzIG91dGRhdGVkYFxuICAgICAgdGl0bGUgPSBgVGhlcmUgaXMgYSBuZXdlciBjYW5hcnkgdmVyc2lvbiAoJHtleHBlY3RlZH0pIGF2YWlsYWJsZSwgcGxlYXNlIHVwZ3JhZGUhIGBcbiAgICAgIGluZGljYXRvckNsYXNzID0gJ3N0YWxlJ1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgY2FzZSAndW5rbm93bic6XG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICBicmVha1xuICB9XG4gIHJldHVybiB7IHRleHQsIGluZGljYXRvckNsYXNzLCB0aXRsZSB9XG59XG4iXSwibmFtZXMiOlsiVmVyc2lvblN0YWxlbmVzc0luZm8iLCJnZXRTdGFsZW5lc3MiLCJ2ZXJzaW9uSW5mbyIsInN0YWxlbmVzcyIsInRleHQiLCJpbmRpY2F0b3JDbGFzcyIsInRpdGxlIiwic3BhbiIsImNsYXNzTmFtZSIsInNtYWxsIiwiZGF0YS1uZXh0anMtdmVyc2lvbi1jaGVja2VyIiwiYSIsInRhcmdldCIsInJlbCIsImhyZWYiLCJwcm9jZXNzIiwiZW52IiwiVFVSQk9QQUNLIiwiaW5zdGFsbGVkIiwiZXhwZWN0ZWQiLCJ2ZXJzaW9uTGFiZWwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js": +/*!**********************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js ***! + \**********************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n VersionStalenessInfo: function() {\n return _VersionStalenessInfo.VersionStalenessInfo;\n },\n styles: function() {\n return _styles.styles;\n }\n});\nconst _styles = __webpack_require__(/*! ./styles */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js\");\nconst _VersionStalenessInfo = __webpack_require__(/*! ./VersionStalenessInfo */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js\");\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVmVyc2lvblN0YWxlbmVzc0luZm8vaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQ1NBLG9CQUFvQjtlQUFwQkEsc0JBQUFBLG9CQUFvQjs7SUFEcEJDLE1BQU07ZUFBTkEsUUFBQUEsTUFBTTs7O29DQUFRO2tEQUNjIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVmVyc2lvblN0YWxlbmVzc0luZm8vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IHN0eWxlcyB9IGZyb20gJy4vc3R5bGVzJ1xuZXhwb3J0IHsgVmVyc2lvblN0YWxlbmVzc0luZm8gfSBmcm9tICcuL1ZlcnNpb25TdGFsZW5lc3NJbmZvJ1xuIl0sIm5hbWVzIjpbIlZlcnNpb25TdGFsZW5lc3NJbmZvIiwic3R5bGVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js": +/*!***********************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js ***! + \***********************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"styles\", ({\n enumerable: true,\n get: function() {\n return styles;\n }\n}));\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n .nextjs-container-build-error-version-status {\\n flex: 1;\\n text-align: right;\\n font-size: var(--size-font-small);\\n }\\n .nextjs-container-build-error-version-status span {\\n display: inline-block;\\n width: 10px;\\n height: 10px;\\n border-radius: 5px;\\n background: var(--color-ansi-bright-black);\\n }\\n .nextjs-container-build-error-version-status span.fresh {\\n background: var(--color-ansi-green);\\n }\\n .nextjs-container-build-error-version-status span.stale {\\n background: var(--color-ansi-yellow);\\n }\\n .nextjs-container-build-error-version-status span.outdated {\\n background: var(--color-ansi-red);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst styles = (0, _nooptemplate.noop)(_templateObject());\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=styles.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvVmVyc2lvblN0YWxlbmVzc0luZm8vc3R5bGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MENBMEJTQTs7O2VBQUFBOzs7OzBDQTFCbUI7Ozs7Ozs7Ozs7QUFFNUIsTUFBTUEsU0FBQUEsQ0FBQUEsR0FBU0MsY0FBQUEsSUFBQUEsRUFBRyIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL1ZlcnNpb25TdGFsZW5lc3NJbmZvL3N0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZSdcblxuY29uc3Qgc3R5bGVzID0gY3NzYFxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1cyB7XG4gICAgZmxleDogMTtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItYW5zaS1icmlnaHQtYmxhY2spO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIHNwYW4uZnJlc2gge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFuc2ktZ3JlZW4pO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWJ1aWxkLWVycm9yLXZlcnNpb24tc3RhdHVzIHNwYW4uc3RhbGUge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFuc2kteWVsbG93KTtcbiAgfVxuICAubmV4dGpzLWNvbnRhaW5lci1idWlsZC1lcnJvci12ZXJzaW9uLXN0YXR1cyBzcGFuLm91dGRhdGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1hbnNpLXJlZCk7XG4gIH1cbmBcblxuZXhwb3J0IHsgc3R5bGVzIH1cbiJdLCJuYW1lcyI6WyJzdHlsZXMiLCJjc3MiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/copy-button/index.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/copy-button/index.js ***! + \*************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CopyButton\", ({\n enumerable: true,\n get: function() {\n return CopyButton;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nfunction useCopyLegacy(content) {\n _s();\n // This would be simpler with useActionState but we need to support React 18 here.\n // React 18 also doesn't have async transitions.\n const [copyState, dispatch] = _react.useReducer({\n \"useCopyLegacy.useReducer\": (state, action)=>{\n if (action.type === 'reset') {\n return {\n state: 'initial'\n };\n }\n if (action.type === 'copied') {\n return {\n state: 'success'\n };\n }\n if (action.type === 'copying') {\n return {\n state: 'pending'\n };\n }\n if (action.type === 'error') {\n return {\n state: 'error',\n error: action.error\n };\n }\n return state;\n }\n }[\"useCopyLegacy.useReducer\"], {\n state: 'initial'\n });\n function copy() {\n if (isPending) {\n return;\n }\n if (!navigator.clipboard) {\n dispatch({\n type: 'error',\n error: new Error('Copy to clipboard is not supported in this browser')\n });\n } else {\n dispatch({\n type: 'copying'\n });\n navigator.clipboard.writeText(content).then(()=>{\n dispatch({\n type: 'copied'\n });\n }, (error)=>{\n dispatch({\n type: 'error',\n error\n });\n });\n }\n }\n const reset = _react.useCallback({\n \"useCopyLegacy.useCallback[reset]\": ()=>{\n dispatch({\n type: 'reset'\n });\n }\n }[\"useCopyLegacy.useCallback[reset]\"], []);\n const isPending = copyState.state === 'pending';\n return [\n copyState,\n copy,\n reset,\n isPending\n ];\n}\n_s(useCopyLegacy, \"hTZjSt/cdkW7Y9WuPQJ5lxBOPCc=\");\nfunction useCopyModern(content) {\n _s1();\n const [copyState, dispatch, isPending] = _react.useActionState({\n \"useCopyModern.useActionState\": (state, action)=>{\n if (action === 'reset') {\n return {\n state: 'initial'\n };\n }\n if (action === 'copy') {\n if (!navigator.clipboard) {\n return {\n state: 'error',\n error: new Error('Copy to clipboard is not supported in this browser')\n };\n }\n return navigator.clipboard.writeText(content).then({\n \"useCopyModern.useActionState\": ()=>{\n return {\n state: 'success'\n };\n }\n }[\"useCopyModern.useActionState\"], {\n \"useCopyModern.useActionState\": (error)=>{\n return {\n state: 'error',\n error\n };\n }\n }[\"useCopyModern.useActionState\"]);\n }\n return state;\n }\n }[\"useCopyModern.useActionState\"], {\n state: 'initial'\n });\n function copy() {\n _react.startTransition(()=>{\n dispatch('copy');\n });\n }\n const reset = _react.useCallback({\n \"useCopyModern.useCallback[reset]\": ()=>{\n dispatch('reset');\n }\n }[\"useCopyModern.useCallback[reset]\"], [\n // TODO: `dispatch` from `useActionState` is not reactive.\n // Remove from dependencies once https://github.com/facebook/react/pull/29665 is released.\n dispatch\n ]);\n return [\n copyState,\n copy,\n reset,\n isPending\n ];\n}\n_s1(useCopyModern, \"bm8EPZwjhKG1elXk5Q3PR5uIKA8=\", false, function() {\n return [\n _react.useActionState\n ];\n});\nconst useCopy = typeof _react.useActionState === 'function' ? useCopyModern : useCopyLegacy;\nfunction CopyButton(param) {\n _s2();\n let { actionLabel, successLabel, content, icon, disabled, ...props } = param;\n const [copyState, copy, reset, isPending] = useCopy(content);\n const error = copyState.state === 'error' ? copyState.error : null;\n _react.useEffect({\n \"CopyButton.useEffect\": ()=>{\n if (error !== null) {\n // Additional console.error to get the stack.\n console.error(error);\n }\n }\n }[\"CopyButton.useEffect\"], [\n error\n ]);\n _react.useEffect({\n \"CopyButton.useEffect\": ()=>{\n if (copyState.state === 'success') {\n const timeoutId = setTimeout({\n \"CopyButton.useEffect.timeoutId\": ()=>{\n reset();\n }\n }[\"CopyButton.useEffect.timeoutId\"], 2000);\n return ({\n \"CopyButton.useEffect\": ()=>{\n clearTimeout(timeoutId);\n }\n })[\"CopyButton.useEffect\"];\n }\n }\n }[\"CopyButton.useEffect\"], [\n isPending,\n copyState.state,\n reset\n ]);\n const isDisabled = isPending || disabled;\n const label = copyState.state === 'success' ? successLabel : actionLabel;\n // Assign default icon\n const renderedIcon = copyState.state === 'success' ? /*#__PURE__*/ (0, _jsxruntime.jsx)(CopySuccessIcon, {}) : icon || /*#__PURE__*/ (0, _jsxruntime.jsx)(CopyIcon, {});\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"button\", {\n ...props,\n type: \"button\",\n title: label,\n \"aria-label\": label,\n \"aria-disabled\": isDisabled,\n \"data-nextjs-data-runtime-error-copy-button\": true,\n className: \"nextjs-data-runtime-error-copy-button nextjs-data-runtime-error-copy-button--\" + copyState.state,\n onClick: ()=>{\n if (!isDisabled) {\n copy();\n }\n },\n children: [\n renderedIcon,\n copyState.state === 'error' ? \" \" + copyState.error : null\n ]\n });\n}\n_s2(CopyButton, \"IQyXV+jf8IbwtkGNcvjxwQuiFSU=\", false, function() {\n return [\n useCopy\n ];\n});\n_c = CopyButton;\nfunction CopyIcon() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 24 24\",\n fill: \"transparent\",\n stroke: \"currentColor\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"rect\", {\n width: \"14\",\n height: \"14\",\n x: \"8\",\n y: \"8\",\n rx: \"2\",\n ry: \"2\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\n })\n ]\n });\n}\n_c1 = CopyIcon;\nfunction CopySuccessIcon() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"svg\", {\n height: \"16\",\n xlinkTitle: \"copied\",\n viewBox: \"0 0 16 16\",\n width: \"16\",\n stroke: \"currentColor\",\n fill: \"currentColor\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"\n })\n });\n}\n_c2 = CopySuccessIcon;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\nvar _c, _c1, _c2;\n$RefreshReg$(_c, \"CopyButton\");\n$RefreshReg$(_c1, \"CopyIcon\");\n$RefreshReg$(_c2, \"CopySuccessIcon\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvY29weS1idXR0b24vaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OzhDQXdJZ0JBOzs7ZUFBQUE7Ozs7OzZFQXhJTztBQUV2Qix1QkFBdUJFLE9BQWU7O0lBWXBDLGtGQUFrRjtJQUNsRixnREFBZ0Q7SUFDaEQsTUFBTSxDQUFDQyxXQUFXQyxTQUFTLEdBQUdDLE9BQU1DLFVBQVU7b0NBQzVDLENBQ0VDLE9BQ0FDO1lBSUEsSUFBSUEsT0FBT0MsSUFBSSxLQUFLLFNBQVM7Z0JBQzNCLE9BQU87b0JBQUVGLE9BQU87Z0JBQVU7WUFDNUI7WUFDQSxJQUFJQyxPQUFPQyxJQUFJLEtBQUssVUFBVTtnQkFDNUIsT0FBTztvQkFBRUYsT0FBTztnQkFBVTtZQUM1QjtZQUNBLElBQUlDLE9BQU9DLElBQUksS0FBSyxXQUFXO2dCQUM3QixPQUFPO29CQUFFRixPQUFPO2dCQUFVO1lBQzVCO1lBQ0EsSUFBSUMsT0FBT0MsSUFBSSxLQUFLLFNBQVM7Z0JBQzNCLE9BQU87b0JBQUVGLE9BQU87b0JBQVNHLE9BQU9GLE9BQU9FLEtBQUs7Z0JBQUM7WUFDL0M7WUFDQSxPQUFPSDtRQUNUO21DQUNBO1FBQ0VBLE9BQU87SUFDVDtJQUVGLFNBQVNJO1FBQ1AsSUFBSUMsV0FBVztZQUNiO1FBQ0Y7UUFFQSxJQUFJLENBQUNDLFVBQVVDLFNBQVMsRUFBRTtZQUN4QlYsU0FBUztnQkFDUEssTUFBTTtnQkFDTkMsT0FBTyxJQUFJSyxNQUFNO1lBQ25CO1FBQ0YsT0FBTztZQUNMWCxTQUFTO2dCQUFFSyxNQUFNO1lBQVU7WUFDM0JJLFVBQVVDLFNBQVMsQ0FBQ0UsU0FBUyxDQUFDZCxTQUFTZSxJQUFJLENBQ3pDO2dCQUNFYixTQUFTO29CQUFFSyxNQUFNO2dCQUFTO1lBQzVCLEdBQ0EsQ0FBQ0M7Z0JBQ0NOLFNBQVM7b0JBQUVLLE1BQU07b0JBQVNDO2dCQUFNO1lBQ2xDO1FBRUo7SUFDRjtJQUNBLE1BQU1RLFFBQVFiLE9BQU1jLFdBQVc7NENBQUM7WUFDOUJmLFNBQVM7Z0JBQUVLLE1BQU07WUFBUTtRQUMzQjsyQ0FBRyxFQUFFO0lBRUwsTUFBTUcsWUFBWVQsVUFBVUksS0FBSyxLQUFLO0lBRXRDLE9BQU87UUFBQ0o7UUFBV1E7UUFBTU87UUFBT047S0FBVTtBQUM1QztHQXBFU1g7QUFzRVQsdUJBQXVCQyxPQUFlOztJQVdwQyxNQUFNLENBQUNDLFdBQVdDLFVBQVVRLFVBQVUsd0JBQXVCO3dDQUMzRCxDQUNFTCxPQUNBQztZQUVBLElBQUlBLFdBQVcsU0FBUztnQkFDdEIsT0FBTztvQkFBRUQsT0FBTztnQkFBVTtZQUM1QjtZQUNBLElBQUlDLFdBQVcsUUFBUTtnQkFDckIsSUFBSSxDQUFDSyxVQUFVQyxTQUFTLEVBQUU7b0JBQ3hCLE9BQU87d0JBQ0xQLE9BQU87d0JBQ1BHLE9BQU8sSUFBSUssTUFDVDtvQkFFSjtnQkFDRjtnQkFDQSxPQUFPRixVQUFVQyxTQUFTLENBQUNFLFNBQVMsQ0FBQ2QsU0FBU2UsSUFBSTtvREFDaEQ7d0JBQ0UsT0FBTzs0QkFBRVYsT0FBTzt3QkFBVTtvQkFDNUI7O29EQUNBLENBQUNHO3dCQUNDLE9BQU87NEJBQUVILE9BQU87NEJBQVNHO3dCQUFNO29CQUNqQzs7WUFFSjtZQUNBLE9BQU9IO1FBQ1Q7dUNBQ0E7UUFDRUEsT0FBTztJQUNUO0lBR0YsU0FBU0k7UUFDUE4sT0FBTWlCLGVBQWUsQ0FBQztZQUNwQmxCLFNBQVM7UUFDWDtJQUNGO0lBRUEsTUFBTWMsUUFBUWIsT0FBTWMsV0FBVzs0Q0FBQztZQUM5QmYsU0FBUztRQUNYOzJDQUFHO1FBQ0QsMERBQTBEO1FBQzFELDBGQUEwRjtRQUMxRkE7S0FDRDtJQUVELE9BQU87UUFBQ0Q7UUFBV1E7UUFBTU87UUFBT047S0FBVTtBQUM1QztJQTNEU1E7O1FBV2tDZixPQUFNZ0I7OztBQWtEakQsTUFBTUUsVUFDSixPQUFPbEIsT0FBTWdCLGNBQWMsS0FBSyxhQUFhRCxnQkFBZ0JuQjtBQUV4RCxvQkFBb0IsS0FZMUI7O0lBWjBCLE1BQ3pCdUIsV0FBVyxFQUNYQyxZQUFZLEVBQ1p2QixPQUFPLEVBQ1B3QixJQUFJLEVBQ0pDLFFBQVEsRUFDUixHQUFHQyxPQU1KLEdBWjBCO0lBYXpCLE1BQU0sQ0FBQ3pCLFdBQVdRLE1BQU1PLE9BQU9OLFVBQVUsV0FBV1Y7SUFFcEQsTUFBTVEsUUFBUVAsVUFBVUksS0FBSyxLQUFLLFVBQVVKLFVBQVVPLEtBQUssR0FBRztJQUM5REwsT0FBTXdCLFNBQVM7Z0NBQUM7WUFDZCxJQUFJbkIsVUFBVSxNQUFNO2dCQUNsQiw2Q0FBNkM7Z0JBQzdDb0IsUUFBUXBCLEtBQUssQ0FBQ0E7WUFDaEI7UUFDRjsrQkFBRztRQUFDQTtLQUFNO0lBQ1ZMLE9BQU13QixTQUFTO2dDQUFDO1lBQ2QsSUFBSTFCLFVBQVVJLEtBQUssS0FBSyxXQUFXO2dCQUNqQyxNQUFNd0IsWUFBWUM7c0RBQVc7d0JBQzNCZDtvQkFDRjtxREFBRztnQkFFSDs0Q0FBTzt3QkFDTGUsYUFBYUY7b0JBQ2Y7O1lBQ0Y7UUFDRjsrQkFBRztRQUFDbkI7UUFBV1QsVUFBVUksS0FBSztRQUFFVztLQUFNO0lBQ3RDLE1BQU1nQixhQUFhdEIsYUFBYWU7SUFDaEMsTUFBTVEsUUFBUWhDLFVBQVVJLEtBQUssS0FBSyxZQUFZa0IsZUFBZUQ7SUFFN0Qsc0JBQXNCO0lBQ3RCLE1BQU1ZLGVBQ0pqQyxVQUFVSSxLQUFLLEtBQUssMEJBQVkscUJBQUM4QixpQkFBQUEsQ0FBQUEsS0FBcUJYLFFBQUFBLFdBQUFBLEdBQVEscUJBQUNZLFVBQUFBLENBQUFBO0lBRWpFLHFCQUNFLHNCQUFDQyxVQUFBQTtRQUNFLEdBQUdYLEtBQUs7UUFDVG5CLE1BQUs7UUFDTCtCLE9BQU9MO1FBQ1BNLGNBQVlOO1FBQ1pPLGlCQUFlUjtRQUNmUyw0Q0FBMEM7UUFDMUNDLFdBQVksa0ZBQStFekMsVUFBVUksS0FBSztRQUMxR3NDLFNBQVM7WUFDUCxJQUFJLENBQUNYLFlBQVk7Z0JBQ2Z2QjtZQUNGO1FBQ0Y7O1lBRUN5QjtZQUNBakMsVUFBVUksS0FBSyxLQUFLLFVBQVcsTUFBR0osVUFBVU8sS0FBSyxHQUFLOzs7QUFHN0Q7OztRQTlDOENhOzs7S0FiOUJ2QjtBQTZEaEI7SUFDRSxxQkFDRSxzQkFBQzhDLE9BQUFBO1FBQ0NDLE9BQU07UUFDTkMsUUFBTztRQUNQQyxTQUFRO1FBQ1JDLE1BQUs7UUFDTEMsUUFBTztRQUNQQyxhQUFZO1FBQ1pDLGVBQWM7UUFDZEMsZ0JBQWU7OzBCQUVmLHFCQUFDQyxRQUFBQTtnQkFBS1IsT0FBTTtnQkFBS0MsUUFBTztnQkFBS1EsR0FBRTtnQkFBSUMsR0FBRTtnQkFBSUMsSUFBRztnQkFBSUMsSUFBRzs7MEJBQ25ELHFCQUFDQyxRQUFBQTtnQkFBS0MsR0FBRTs7OztBQUdkO01BaEJTdkI7QUFrQlQ7SUFDRSxxQkFDRSxxQkFBQ1EsT0FBQUE7UUFDQ0UsUUFBTztRQUNQYyxZQUFXO1FBQ1hiLFNBQVE7UUFDUkYsT0FBTTtRQUNOSSxRQUFPO1FBQ1BELE1BQUs7a0JBRUwsbUNBQUNVLFFBQUFBO1lBQUtDLEdBQUU7OztBQUdkO01BYlN4QiIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL2NvcHktYnV0dG9uL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcblxuZnVuY3Rpb24gdXNlQ29weUxlZ2FjeShjb250ZW50OiBzdHJpbmcpIHtcbiAgdHlwZSBDb3B5U3RhdGUgPVxuICAgIHwge1xuICAgICAgICBzdGF0ZTogJ2luaXRpYWwnXG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHN0YXRlOiAnZXJyb3InXG4gICAgICAgIGVycm9yOiB1bmtub3duXG4gICAgICB9XG4gICAgfCB7IHN0YXRlOiAnc3VjY2VzcycgfVxuICAgIHwgeyBzdGF0ZTogJ3BlbmRpbmcnIH1cblxuICAvLyBUaGlzIHdvdWxkIGJlIHNpbXBsZXIgd2l0aCB1c2VBY3Rpb25TdGF0ZSBidXQgd2UgbmVlZCB0byBzdXBwb3J0IFJlYWN0IDE4IGhlcmUuXG4gIC8vIFJlYWN0IDE4IGFsc28gZG9lc24ndCBoYXZlIGFzeW5jIHRyYW5zaXRpb25zLlxuICBjb25zdCBbY29weVN0YXRlLCBkaXNwYXRjaF0gPSBSZWFjdC51c2VSZWR1Y2VyKFxuICAgIChcbiAgICAgIHN0YXRlOiBDb3B5U3RhdGUsXG4gICAgICBhY3Rpb246XG4gICAgICAgIHwgeyB0eXBlOiAncmVzZXQnIHwgJ2NvcGllZCcgfCAnY29weWluZycgfVxuICAgICAgICB8IHsgdHlwZTogJ2Vycm9yJzsgZXJyb3I6IHVua25vd24gfVxuICAgICk6IENvcHlTdGF0ZSA9PiB7XG4gICAgICBpZiAoYWN0aW9uLnR5cGUgPT09ICdyZXNldCcpIHtcbiAgICAgICAgcmV0dXJuIHsgc3RhdGU6ICdpbml0aWFsJyB9XG4gICAgICB9XG4gICAgICBpZiAoYWN0aW9uLnR5cGUgPT09ICdjb3BpZWQnKSB7XG4gICAgICAgIHJldHVybiB7IHN0YXRlOiAnc3VjY2VzcycgfVxuICAgICAgfVxuICAgICAgaWYgKGFjdGlvbi50eXBlID09PSAnY29weWluZycpIHtcbiAgICAgICAgcmV0dXJuIHsgc3RhdGU6ICdwZW5kaW5nJyB9XG4gICAgICB9XG4gICAgICBpZiAoYWN0aW9uLnR5cGUgPT09ICdlcnJvcicpIHtcbiAgICAgICAgcmV0dXJuIHsgc3RhdGU6ICdlcnJvcicsIGVycm9yOiBhY3Rpb24uZXJyb3IgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfSxcbiAgICB7XG4gICAgICBzdGF0ZTogJ2luaXRpYWwnLFxuICAgIH1cbiAgKVxuICBmdW5jdGlvbiBjb3B5KCkge1xuICAgIGlmIChpc1BlbmRpbmcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghbmF2aWdhdG9yLmNsaXBib2FyZCkge1xuICAgICAgZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiAnZXJyb3InLFxuICAgICAgICBlcnJvcjogbmV3IEVycm9yKCdDb3B5IHRvIGNsaXBib2FyZCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlcicpLFxuICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2goeyB0eXBlOiAnY29weWluZycgfSlcbiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGNvbnRlbnQpLnRoZW4oXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBkaXNwYXRjaCh7IHR5cGU6ICdjb3BpZWQnIH0pXG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgIGRpc3BhdGNoKHsgdHlwZTogJ2Vycm9yJywgZXJyb3IgfSlcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgfVxuICBjb25zdCByZXNldCA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBkaXNwYXRjaCh7IHR5cGU6ICdyZXNldCcgfSlcbiAgfSwgW10pXG5cbiAgY29uc3QgaXNQZW5kaW5nID0gY29weVN0YXRlLnN0YXRlID09PSAncGVuZGluZydcblxuICByZXR1cm4gW2NvcHlTdGF0ZSwgY29weSwgcmVzZXQsIGlzUGVuZGluZ10gYXMgY29uc3Rcbn1cblxuZnVuY3Rpb24gdXNlQ29weU1vZGVybihjb250ZW50OiBzdHJpbmcpIHtcbiAgdHlwZSBDb3B5U3RhdGUgPVxuICAgIHwge1xuICAgICAgICBzdGF0ZTogJ2luaXRpYWwnXG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIHN0YXRlOiAnZXJyb3InXG4gICAgICAgIGVycm9yOiB1bmtub3duXG4gICAgICB9XG4gICAgfCB7IHN0YXRlOiAnc3VjY2VzcycgfVxuXG4gIGNvbnN0IFtjb3B5U3RhdGUsIGRpc3BhdGNoLCBpc1BlbmRpbmddID0gUmVhY3QudXNlQWN0aW9uU3RhdGUoXG4gICAgKFxuICAgICAgc3RhdGU6IENvcHlTdGF0ZSxcbiAgICAgIGFjdGlvbjogJ3Jlc2V0JyB8ICdjb3B5J1xuICAgICk6IENvcHlTdGF0ZSB8IFByb21pc2U8Q29weVN0YXRlPiA9PiB7XG4gICAgICBpZiAoYWN0aW9uID09PSAncmVzZXQnKSB7XG4gICAgICAgIHJldHVybiB7IHN0YXRlOiAnaW5pdGlhbCcgfVxuICAgICAgfVxuICAgICAgaWYgKGFjdGlvbiA9PT0gJ2NvcHknKSB7XG4gICAgICAgIGlmICghbmF2aWdhdG9yLmNsaXBib2FyZCkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0ZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIGVycm9yOiBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICdDb3B5IHRvIGNsaXBib2FyZCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlcidcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChjb250ZW50KS50aGVuKFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IHN0YXRlOiAnc3VjY2VzcycgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBzdGF0ZTogJ2Vycm9yJywgZXJyb3IgfVxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfSxcbiAgICB7XG4gICAgICBzdGF0ZTogJ2luaXRpYWwnLFxuICAgIH1cbiAgKVxuXG4gIGZ1bmN0aW9uIGNvcHkoKSB7XG4gICAgUmVhY3Quc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgIGRpc3BhdGNoKCdjb3B5JylcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgcmVzZXQgPSBSZWFjdC51c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgZGlzcGF0Y2goJ3Jlc2V0JylcbiAgfSwgW1xuICAgIC8vIFRPRE86IGBkaXNwYXRjaGAgZnJvbSBgdXNlQWN0aW9uU3RhdGVgIGlzIG5vdCByZWFjdGl2ZS5cbiAgICAvLyBSZW1vdmUgZnJvbSBkZXBlbmRlbmNpZXMgb25jZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yOTY2NSBpcyByZWxlYXNlZC5cbiAgICBkaXNwYXRjaCxcbiAgXSlcblxuICByZXR1cm4gW2NvcHlTdGF0ZSwgY29weSwgcmVzZXQsIGlzUGVuZGluZ10gYXMgY29uc3Rcbn1cblxuY29uc3QgdXNlQ29weSA9XG4gIHR5cGVvZiBSZWFjdC51c2VBY3Rpb25TdGF0ZSA9PT0gJ2Z1bmN0aW9uJyA/IHVzZUNvcHlNb2Rlcm4gOiB1c2VDb3B5TGVnYWN5XG5cbmV4cG9ydCBmdW5jdGlvbiBDb3B5QnV0dG9uKHtcbiAgYWN0aW9uTGFiZWwsXG4gIHN1Y2Nlc3NMYWJlbCxcbiAgY29udGVudCxcbiAgaWNvbixcbiAgZGlzYWJsZWQsXG4gIC4uLnByb3BzXG59OiBSZWFjdC5IVE1MUHJvcHM8SFRNTEJ1dHRvbkVsZW1lbnQ+ICYge1xuICBhY3Rpb25MYWJlbDogc3RyaW5nXG4gIHN1Y2Nlc3NMYWJlbDogc3RyaW5nXG4gIGNvbnRlbnQ6IHN0cmluZ1xuICBpY29uPzogUmVhY3QuUmVhY3ROb2RlXG59KSB7XG4gIGNvbnN0IFtjb3B5U3RhdGUsIGNvcHksIHJlc2V0LCBpc1BlbmRpbmddID0gdXNlQ29weShjb250ZW50KVxuXG4gIGNvbnN0IGVycm9yID0gY29weVN0YXRlLnN0YXRlID09PSAnZXJyb3InID8gY29weVN0YXRlLmVycm9yIDogbnVsbFxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlcnJvciAhPT0gbnVsbCkge1xuICAgICAgLy8gQWRkaXRpb25hbCBjb25zb2xlLmVycm9yIHRvIGdldCB0aGUgc3RhY2suXG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKVxuICAgIH1cbiAgfSwgW2Vycm9yXSlcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY29weVN0YXRlLnN0YXRlID09PSAnc3VjY2VzcycpIHtcbiAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICByZXNldCgpXG4gICAgICB9LCAyMDAwKVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW2lzUGVuZGluZywgY29weVN0YXRlLnN0YXRlLCByZXNldF0pXG4gIGNvbnN0IGlzRGlzYWJsZWQgPSBpc1BlbmRpbmcgfHwgZGlzYWJsZWRcbiAgY29uc3QgbGFiZWwgPSBjb3B5U3RhdGUuc3RhdGUgPT09ICdzdWNjZXNzJyA/IHN1Y2Nlc3NMYWJlbCA6IGFjdGlvbkxhYmVsXG5cbiAgLy8gQXNzaWduIGRlZmF1bHQgaWNvblxuICBjb25zdCByZW5kZXJlZEljb24gPVxuICAgIGNvcHlTdGF0ZS5zdGF0ZSA9PT0gJ3N1Y2Nlc3MnID8gPENvcHlTdWNjZXNzSWNvbiAvPiA6IGljb24gfHwgPENvcHlJY29uIC8+XG5cbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICB7Li4ucHJvcHN9XG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIHRpdGxlPXtsYWJlbH1cbiAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgYXJpYS1kaXNhYmxlZD17aXNEaXNhYmxlZH1cbiAgICAgIGRhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWJ1dHRvblxuICAgICAgY2xhc3NOYW1lPXtgbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWJ1dHRvbiBuZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktYnV0dG9uLS0ke2NvcHlTdGF0ZS5zdGF0ZX1gfVxuICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICBpZiAoIWlzRGlzYWJsZWQpIHtcbiAgICAgICAgICBjb3B5KClcbiAgICAgICAgfVxuICAgICAgfX1cbiAgICA+XG4gICAgICB7cmVuZGVyZWRJY29ufVxuICAgICAge2NvcHlTdGF0ZS5zdGF0ZSA9PT0gJ2Vycm9yJyA/IGAgJHtjb3B5U3RhdGUuZXJyb3J9YCA6IG51bGx9XG4gICAgPC9idXR0b24+XG4gIClcbn1cblxuZnVuY3Rpb24gQ29weUljb24oKSB7XG4gIHJldHVybiAoXG4gICAgPHN2Z1xuICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIGZpbGw9XCJ0cmFuc3BhcmVudFwiXG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgc3Ryb2tlV2lkdGg9XCIxLjVcIlxuICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgID5cbiAgICAgIDxyZWN0IHdpZHRoPVwiMTRcIiBoZWlnaHQ9XCIxNFwiIHg9XCI4XCIgeT1cIjhcIiByeD1cIjJcIiByeT1cIjJcIiAvPlxuICAgICAgPHBhdGggZD1cIk00IDE2Yy0xLjEgMC0yLS45LTItMlY0YzAtMS4xLjktMiAyLTJoMTBjMS4xIDAgMiAuOSAyIDJcIiAvPlxuICAgIDwvc3ZnPlxuICApXG59XG5cbmZ1bmN0aW9uIENvcHlTdWNjZXNzSWNvbigpIHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICB4bGlua1RpdGxlPVwiY29waWVkXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMTYgMTZcIlxuICAgICAgd2lkdGg9XCIxNlwiXG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgPlxuICAgICAgPHBhdGggZD1cIk0xMy43OCA0LjIyYS43NS43NSAwIDAgMSAwIDEuMDZsLTcuMjUgNy4yNWEuNzUuNzUgMCAwIDEtMS4wNiAwTDIuMjIgOS4yOGEuNzUxLjc1MSAwIDAgMSAuMDE4LTEuMDQyLjc1MS43NTEgMCAwIDEgMS4wNDItLjAxOEw2IDEwLjk0bDYuNzItNi43MmEuNzUuNzUgMCAwIDEgMS4wNiAwWlwiIC8+XG4gICAgPC9zdmc+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJDb3B5QnV0dG9uIiwidXNlQ29weUxlZ2FjeSIsImNvbnRlbnQiLCJjb3B5U3RhdGUiLCJkaXNwYXRjaCIsIlJlYWN0IiwidXNlUmVkdWNlciIsInN0YXRlIiwiYWN0aW9uIiwidHlwZSIsImVycm9yIiwiY29weSIsImlzUGVuZGluZyIsIm5hdmlnYXRvciIsImNsaXBib2FyZCIsIkVycm9yIiwid3JpdGVUZXh0IiwidGhlbiIsInJlc2V0IiwidXNlQ2FsbGJhY2siLCJ1c2VDb3B5TW9kZXJuIiwidXNlQWN0aW9uU3RhdGUiLCJzdGFydFRyYW5zaXRpb24iLCJ1c2VDb3B5IiwiYWN0aW9uTGFiZWwiLCJzdWNjZXNzTGFiZWwiLCJpY29uIiwiZGlzYWJsZWQiLCJwcm9wcyIsInVzZUVmZmVjdCIsImNvbnNvbGUiLCJ0aW1lb3V0SWQiLCJzZXRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0IiwiaXNEaXNhYmxlZCIsImxhYmVsIiwicmVuZGVyZWRJY29uIiwiQ29weVN1Y2Nlc3NJY29uIiwiQ29weUljb24iLCJidXR0b24iLCJ0aXRsZSIsImFyaWEtbGFiZWwiLCJhcmlhLWRpc2FibGVkIiwiZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktYnV0dG9uIiwiY2xhc3NOYW1lIiwib25DbGljayIsInN2ZyIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsInJlY3QiLCJ4IiwieSIsInJ4IiwicnkiLCJwYXRoIiwiZCIsInhsaW5rVGl0bGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/copy-button/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js": +/*!*****************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js ***! + \*****************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HotlinkedText\", ({\n enumerable: true,\n get: function() {\n return HotlinkedText;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _magicidentifier = __webpack_require__(/*! ../../../../../../shared/lib/magic-identifier */ \"./node_modules/next/dist/shared/lib/magic-identifier.js\");\nconst linkRegex = /https?:\\/\\/[^\\s/$.?#].[^\\s)'\"]*/i;\nconst splitRegexp = new RegExp(\"(\" + _magicidentifier.MAGIC_IDENTIFIER_REGEX.source + \"|\\\\s+)\");\nconst HotlinkedText = function HotlinkedText(props) {\n const { text, matcher } = props;\n const wordsAndWhitespaces = text.split(splitRegexp);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: wordsAndWhitespaces.map((word, index)=>{\n if (linkRegex.test(word)) {\n const link = linkRegex.exec(word);\n const href = link[0];\n // If link matcher is present but the link doesn't match, don't turn it into a link\n if (typeof matcher === 'function' && !matcher(href)) {\n return word;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.default.Fragment, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n href: href,\n target: \"_blank\",\n rel: \"noreferrer noopener\",\n children: word\n })\n }, \"link-\" + index);\n }\n try {\n const decodedWord = (0, _magicidentifier.decodeMagicIdentifier)(word);\n if (decodedWord !== word) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"i\", {\n children: [\n '{',\n decodedWord,\n '}'\n ]\n }, \"ident-\" + index);\n }\n } catch (e) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"i\", {\n children: [\n '{',\n word,\n \" (decoding failed: \",\n '' + e,\n \")\",\n '}'\n ]\n }, \"ident-\" + index);\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.default.Fragment, {\n children: word\n }, \"text-\" + index);\n })\n });\n};\n_c = HotlinkedText;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\nvar _c;\n$RefreshReg$(_c, \"HotlinkedText\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvaG90LWxpbmtlZC10ZXh0L2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBVWFBOzs7ZUFBQUE7Ozs7OzRFQVZLOzZDQUlYO0FBRVAsTUFBTUMsWUFBWTtBQUVsQixNQUFNQyxjQUFjLElBQUlDLE9BQVEsTUFBR0MsaUJBQUFBLHNCQUFzQixDQUFDQyxNQUFNLEdBQUM7QUFFMUQsc0JBR0YsU0FBU0wsY0FBY00sS0FBSztJQUMvQixNQUFNLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFLEdBQUdGO0lBRTFCLE1BQU1HLHNCQUFzQkYsS0FBS0csS0FBSyxDQUFDUjtJQUV2QyxxQkFDRTtrQkFDR08sb0JBQW9CRSxHQUFHLENBQUMsQ0FBQ0MsTUFBTUM7WUFDOUIsSUFBSVosVUFBVWEsSUFBSSxDQUFDRixPQUFPO2dCQUN4QixNQUFNRyxPQUFPZCxVQUFVZSxJQUFJLENBQUNKO2dCQUM1QixNQUFNSyxPQUFPRixJQUFJLENBQUMsRUFBRTtnQkFDcEIsbUZBQW1GO2dCQUNuRixJQUFJLE9BQU9QLFlBQVksY0FBYyxDQUFDQSxRQUFRUyxPQUFPO29CQUNuRCxPQUFPTDtnQkFDVDtnQkFDQSxxQkFDRSxxQkFBQ00sT0FBQUEsT0FBSyxDQUFDQyxRQUFROzhCQUNiLG1DQUFDQyxLQUFBQTt3QkFBRUgsTUFBTUE7d0JBQU1JLFFBQU87d0JBQVNDLEtBQUk7a0NBQ2hDVjs7bUJBRmlCLFVBQU9DO1lBTWpDO1lBQ0EsSUFBSTtnQkFDRixNQUFNVSxjQUFjQyxDQUFBQSxHQUFBQSxpQkFBQUEscUJBQXFCLEVBQUNaO2dCQUMxQyxJQUFJVyxnQkFBZ0JYLE1BQU07b0JBQ3hCLHFCQUNFLHNCQUFDYSxLQUFBQTs7NEJBQ0U7NEJBQ0FGOzRCQUNBOzt1QkFITSxXQUFRVjtnQkFNckI7WUFDRixFQUFFLE9BQU9hLEdBQUc7Z0JBQ1YscUJBQ0Usc0JBQUNELEtBQUFBOzt3QkFDRTt3QkFDQWI7d0JBQUs7d0JBQW9CLEtBQUtjO3dCQUFFO3dCQUFFOzttQkFGNUIsV0FBUWI7WUFLckI7WUFDQSxxQkFBTyxxQkFBQ0ssT0FBQUEsT0FBSyxDQUFDQyxRQUFROzBCQUF3QlA7ZUFBakIsVUFBT0M7UUFDdEM7O0FBR047S0FqRGFiIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvaG90LWxpbmtlZC10ZXh0L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBkZWNvZGVNYWdpY0lkZW50aWZpZXIsXG4gIE1BR0lDX0lERU5USUZJRVJfUkVHRVgsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvbWFnaWMtaWRlbnRpZmllcidcblxuY29uc3QgbGlua1JlZ2V4ID0gL2h0dHBzPzpcXC9cXC9bXlxccy8kLj8jXS5bXlxccyknXCJdKi9pXG5cbmNvbnN0IHNwbGl0UmVnZXhwID0gbmV3IFJlZ0V4cChgKCR7TUFHSUNfSURFTlRJRklFUl9SRUdFWC5zb3VyY2V9fFxcXFxzKylgKVxuXG5leHBvcnQgY29uc3QgSG90bGlua2VkVGV4dDogUmVhY3QuRkM8e1xuICB0ZXh0OiBzdHJpbmdcbiAgbWF0Y2hlcj86ICh0ZXh0OiBzdHJpbmcpID0+IGJvb2xlYW5cbn0+ID0gZnVuY3Rpb24gSG90bGlua2VkVGV4dChwcm9wcykge1xuICBjb25zdCB7IHRleHQsIG1hdGNoZXIgfSA9IHByb3BzXG5cbiAgY29uc3Qgd29yZHNBbmRXaGl0ZXNwYWNlcyA9IHRleHQuc3BsaXQoc3BsaXRSZWdleHApXG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge3dvcmRzQW5kV2hpdGVzcGFjZXMubWFwKCh3b3JkLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAobGlua1JlZ2V4LnRlc3Qod29yZCkpIHtcbiAgICAgICAgICBjb25zdCBsaW5rID0gbGlua1JlZ2V4LmV4ZWMod29yZCkhXG4gICAgICAgICAgY29uc3QgaHJlZiA9IGxpbmtbMF1cbiAgICAgICAgICAvLyBJZiBsaW5rIG1hdGNoZXIgaXMgcHJlc2VudCBidXQgdGhlIGxpbmsgZG9lc24ndCBtYXRjaCwgZG9uJ3QgdHVybiBpdCBpbnRvIGEgbGlua1xuICAgICAgICAgIGlmICh0eXBlb2YgbWF0Y2hlciA9PT0gJ2Z1bmN0aW9uJyAmJiAhbWF0Y2hlcihocmVmKSkge1xuICAgICAgICAgICAgcmV0dXJuIHdvcmRcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxSZWFjdC5GcmFnbWVudCBrZXk9e2BsaW5rLSR7aW5kZXh9YH0+XG4gICAgICAgICAgICAgIDxhIGhyZWY9e2hyZWZ9IHRhcmdldD1cIl9ibGFua1wiIHJlbD1cIm5vcmVmZXJyZXIgbm9vcGVuZXJcIj5cbiAgICAgICAgICAgICAgICB7d29yZH1cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBkZWNvZGVkV29yZCA9IGRlY29kZU1hZ2ljSWRlbnRpZmllcih3b3JkKVxuICAgICAgICAgIGlmIChkZWNvZGVkV29yZCAhPT0gd29yZCkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPGkga2V5PXtgaWRlbnQtJHtpbmRleH1gfT5cbiAgICAgICAgICAgICAgICB7J3snfVxuICAgICAgICAgICAgICAgIHtkZWNvZGVkV29yZH1cbiAgICAgICAgICAgICAgICB7J30nfVxuICAgICAgICAgICAgICA8L2k+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxpIGtleT17YGlkZW50LSR7aW5kZXh9YH0+XG4gICAgICAgICAgICAgIHsneyd9XG4gICAgICAgICAgICAgIHt3b3JkfSAoZGVjb2RpbmcgZmFpbGVkOiB7JycgKyBlfSl7J30nfVxuICAgICAgICAgICAgPC9pPlxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gPFJlYWN0LkZyYWdtZW50IGtleT17YHRleHQtJHtpbmRleH1gfT57d29yZH08L1JlYWN0LkZyYWdtZW50PlxuICAgICAgfSl9XG4gICAgPC8+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJIb3RsaW5rZWRUZXh0IiwibGlua1JlZ2V4Iiwic3BsaXRSZWdleHAiLCJSZWdFeHAiLCJNQUdJQ19JREVOVElGSUVSX1JFR0VYIiwic291cmNlIiwicHJvcHMiLCJ0ZXh0IiwibWF0Y2hlciIsIndvcmRzQW5kV2hpdGVzcGFjZXMiLCJzcGxpdCIsIm1hcCIsIndvcmQiLCJpbmRleCIsInRlc3QiLCJsaW5rIiwiZXhlYyIsImhyZWYiLCJSZWFjdCIsIkZyYWdtZW50IiwiYSIsInRhcmdldCIsInJlbCIsImRlY29kZWRXb3JkIiwiZGVjb2RlTWFnaWNJZGVudGlmaWVyIiwiaSIsImUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/components/nodejs-inspector.js": +/*!************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/components/nodejs-inspector.js ***! + \************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NodejsInspectorCopyButton\", ({\n enumerable: true,\n get: function() {\n return NodejsInspectorCopyButton;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _copybutton = __webpack_require__(/*! ./copy-button */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/copy-button/index.js\");\n// Inline this helper to avoid widely used across the codebase,\n// as for this feature the Chrome detector doesn't need to be super accurate.\nfunction isChrome() {\n if (false) {}\n const isChromium = 'chrome' in window && window.chrome;\n const vendorName = window.navigator.vendor;\n return isChromium !== null && isChromium !== undefined && vendorName === 'Google Inc.';\n}\nconst isChromeBrowser = isChrome();\nfunction NodeJsIcon(props) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n width: \"44\",\n height: \"44\",\n viewBox: \"0 0 44 44\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ...props,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"g\", {\n clipPath: \"url(#clip0_1546_2)\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M22 0L41.0526 11V33L22 44L2.94744 33V11L22 0Z\",\n fill: \"#71BD55\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M41.0493 11.0001L41.0493 33L22 1.5583e-07L41.0493 11.0001Z\",\n fill: \"#A1DF83\"\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"defs\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"clipPath\", {\n id: \"clip0_1546_2\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"rect\", {\n width: \"44\",\n height: \"44\",\n fill: \"white\"\n })\n })\n })\n ]\n });\n}\n_c = NodeJsIcon;\nfunction NodeJsDisabledIcon(props) {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n width: \"44\",\n height: \"44\",\n viewBox: \"0 0 44 44\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ...props,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M4.44744 11.866L22 1.73205L39.5526 11.866V32.134L22 42.2679L4.44744 32.134V11.866Z\",\n stroke: \"currentColor\",\n fill: \"transparent\",\n strokeWidth: \"3\",\n strokeLinejoin: \"round\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M22 2L39 32\",\n stroke: \"currentColor\",\n strokeWidth: \"3\",\n strokeLinecap: \"round\"\n })\n ]\n });\n}\n_c1 = NodeJsDisabledIcon;\nconst label = 'Learn more about enabling Node.js inspector for server code with Chrome DevTools';\nfunction NodejsInspectorCopyButton(param) {\n let { devtoolsFrontendUrl } = param;\n const content = devtoolsFrontendUrl || '';\n const disabled = !content || !isChromeBrowser;\n if (disabled) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n title: label,\n \"aria-label\": label,\n className: \"nextjs-data-runtime-error-inspect-link\",\n href: \"https://nextjs.org/docs/app/building-your-application/configuring/debugging#server-side-code\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(NodeJsDisabledIcon, {\n width: 16,\n height: 16\n })\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_copybutton.CopyButton, {\n \"data-nextjs-data-runtime-error-copy-devtools-url\": true,\n actionLabel: 'Copy Chrome DevTools URL',\n successLabel: \"Copied\",\n content: content,\n icon: /*#__PURE__*/ (0, _jsxruntime.jsx)(NodeJsIcon, {\n width: 16,\n height: 16\n })\n });\n}\n_c2 = NodejsInspectorCopyButton;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=nodejs-inspector.js.map\nvar _c, _c1, _c2;\n$RefreshReg$(_c, \"NodeJsIcon\");\n$RefreshReg$(_c1, \"NodeJsDisabledIcon\");\n$RefreshReg$(_c2, \"NodejsInspectorCopyButton\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbXBvbmVudHMvbm9kZWpzLWluc3BlY3Rvci5qcyIsIm1hcHBpbmdzIjoiOzs7OzZEQTZFZ0JBOzs7ZUFBQUE7Ozs7d0NBN0VXO0FBRTNCLCtEQUErRDtBQUMvRCw2RUFBNkU7QUFDN0UsU0FBU0M7SUFDUCxJQUFJLEtBQTZCLEVBQUUsRUFBTztJQUMxQyxNQUFNRSxhQUFhLFlBQVlELFVBQVVBLE9BQU9FLE1BQU07SUFDdEQsTUFBTUMsYUFBYUgsT0FBT0ksU0FBUyxDQUFDQyxNQUFNO0lBRTFDLE9BQ0VKLGVBQWUsUUFDZkEsZUFBZUssYUFDZkgsZUFBZTtBQUVuQjtBQUVBLE1BQU1JLGtCQUFrQlI7QUFFeEIsb0JBQW9CVSxLQUFVO0lBQzVCLHFCQUNFLHNCQUFDQyxPQUFBQTtRQUNDQyxPQUFNO1FBQ05DLFFBQU87UUFDUEMsU0FBUTtRQUNSQyxNQUFLO1FBQ0xDLE9BQU07UUFDTCxHQUFHTixLQUFLOzswQkFFVCxzQkFBQ08sS0FBQUE7Z0JBQUVDLFVBQVM7O2tDQUNWLHFCQUFDQyxRQUFBQTt3QkFDQ0MsR0FBRTt3QkFDRkwsTUFBSzs7a0NBRVAscUJBQUNJLFFBQUFBO3dCQUNDQyxHQUFFO3dCQUNGTCxNQUFLOzs7OzBCQUdULHFCQUFDTSxRQUFBQTswQkFDQyxtQ0FBQ0gsWUFBQUE7b0JBQVNJLElBQUc7OEJBQ1gsbUNBQUNDLFFBQUFBO3dCQUFLWCxPQUFNO3dCQUFLQyxRQUFPO3dCQUFLRSxNQUFLOzs7Ozs7QUFLNUM7S0EzQlNOO0FBNkJULDRCQUE0QkMsS0FBVTtJQUNwQyxxQkFDRSxzQkFBQ0MsT0FBQUE7UUFDQ0MsT0FBTTtRQUNOQyxRQUFPO1FBQ1BDLFNBQVE7UUFDUkMsTUFBSztRQUNMQyxPQUFNO1FBQ0wsR0FBR04sS0FBSzs7MEJBRVQscUJBQUNTLFFBQUFBO2dCQUNDQyxHQUFFO2dCQUNGSyxRQUFPO2dCQUNQVixNQUFLO2dCQUNMVyxhQUFZO2dCQUNaQyxnQkFBZTs7MEJBRWpCLHFCQUFDUixRQUFBQTtnQkFDQ0MsR0FBRTtnQkFDRkssUUFBTztnQkFDUEMsYUFBWTtnQkFDWkUsZUFBYzs7OztBQUl0QjtNQXpCU0o7QUEyQlQsTUFBTUssUUFDSjtBQUVLLG1DQUFtQyxLQUl6QztJQUp5QyxNQUN4Q0MsbUJBQW1CLEVBR3BCLEdBSnlDO0lBS3hDLE1BQU1DLFVBQVVELHVCQUF1QjtJQUN2QyxNQUFNRSxXQUFXLENBQUNELFdBQVcsQ0FBQ3ZCO0lBQzlCLElBQUl3QixVQUFVO1FBQ1oscUJBQ0UscUJBQUNDLEtBQUFBO1lBQ0NDLE9BQU9MO1lBQ1BNLGNBQVlOO1lBQ1pPLFdBQVU7WUFDVkMsTUFBTztZQUNQQyxRQUFPO1lBQ1BDLEtBQUk7c0JBRUosbUNBQUNmLG9CQUFBQTtnQkFBbUJaLE9BQU87Z0JBQUlDLFFBQVE7OztJQUc3QztJQUNBLHFCQUNFLHFCQUFDMkIsWUFBQUEsVUFBVTtRQUNUQyxrREFBZ0Q7UUFDaERDLGFBQWE7UUFDYkMsY0FBYTtRQUNiWixTQUFTQTtRQUNUYSxNQUFBQSxXQUFBQSxHQUFNLHFCQUFDbkMsWUFBQUE7WUFBV0csT0FBTztZQUFJQyxRQUFROzs7QUFHM0M7TUE5QmdCZCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb21wb25lbnRzL25vZGVqcy1pbnNwZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcHlCdXR0b24gfSBmcm9tICcuL2NvcHktYnV0dG9uJ1xuXG4vLyBJbmxpbmUgdGhpcyBoZWxwZXIgdG8gYXZvaWQgd2lkZWx5IHVzZWQgYWNyb3NzIHRoZSBjb2RlYmFzZSxcbi8vIGFzIGZvciB0aGlzIGZlYXR1cmUgdGhlIENocm9tZSBkZXRlY3RvciBkb2Vzbid0IG5lZWQgdG8gYmUgc3VwZXIgYWNjdXJhdGUuXG5mdW5jdGlvbiBpc0Nocm9tZSgpIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gZmFsc2VcbiAgY29uc3QgaXNDaHJvbWl1bSA9ICdjaHJvbWUnIGluIHdpbmRvdyAmJiB3aW5kb3cuY2hyb21lXG4gIGNvbnN0IHZlbmRvck5hbWUgPSB3aW5kb3cubmF2aWdhdG9yLnZlbmRvclxuXG4gIHJldHVybiAoXG4gICAgaXNDaHJvbWl1bSAhPT0gbnVsbCAmJlxuICAgIGlzQ2hyb21pdW0gIT09IHVuZGVmaW5lZCAmJlxuICAgIHZlbmRvck5hbWUgPT09ICdHb29nbGUgSW5jLidcbiAgKVxufVxuXG5jb25zdCBpc0Nocm9tZUJyb3dzZXIgPSBpc0Nocm9tZSgpXG5cbmZ1bmN0aW9uIE5vZGVKc0ljb24ocHJvcHM6IGFueSkge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHdpZHRoPVwiNDRcIlxuICAgICAgaGVpZ2h0PVwiNDRcIlxuICAgICAgdmlld0JveD1cIjAgMCA0NCA0NFwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICA8ZyBjbGlwUGF0aD1cInVybCgjY2xpcDBfMTU0Nl8yKVwiPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMjIgMEw0MS4wNTI2IDExVjMzTDIyIDQ0TDIuOTQ3NDQgMzNWMTFMMjIgMFpcIlxuICAgICAgICAgIGZpbGw9XCIjNzFCRDU1XCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTQxLjA0OTMgMTEuMDAwMUw0MS4wNDkzIDMzTDIyIDEuNTU4M2UtMDdMNDEuMDQ5MyAxMS4wMDAxWlwiXG4gICAgICAgICAgZmlsbD1cIiNBMURGODNcIlxuICAgICAgICAvPlxuICAgICAgPC9nPlxuICAgICAgPGRlZnM+XG4gICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE1NDZfMlwiPlxuICAgICAgICAgIDxyZWN0IHdpZHRoPVwiNDRcIiBoZWlnaHQ9XCI0NFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XG4gICAgICAgIDwvY2xpcFBhdGg+XG4gICAgICA8L2RlZnM+XG4gICAgPC9zdmc+XG4gIClcbn1cblxuZnVuY3Rpb24gTm9kZUpzRGlzYWJsZWRJY29uKHByb3BzOiBhbnkpIHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICB3aWR0aD1cIjQ0XCJcbiAgICAgIGhlaWdodD1cIjQ0XCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgNDQgNDRcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk00LjQ0NzQ0IDExLjg2NkwyMiAxLjczMjA1TDM5LjU1MjYgMTEuODY2VjMyLjEzNEwyMiA0Mi4yNjc5TDQuNDQ3NDQgMzIuMTM0VjExLjg2NlpcIlxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBmaWxsPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBzdHJva2VXaWR0aD1cIjNcIlxuICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTIyIDJMMzkgMzJcIlxuICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICBzdHJva2VXaWR0aD1cIjNcIlxuICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKVxufVxuXG5jb25zdCBsYWJlbCA9XG4gICdMZWFybiBtb3JlIGFib3V0IGVuYWJsaW5nIE5vZGUuanMgaW5zcGVjdG9yIGZvciBzZXJ2ZXIgY29kZSB3aXRoIENocm9tZSBEZXZUb29scydcblxuZXhwb3J0IGZ1bmN0aW9uIE5vZGVqc0luc3BlY3RvckNvcHlCdXR0b24oe1xuICBkZXZ0b29sc0Zyb250ZW5kVXJsLFxufToge1xuICBkZXZ0b29sc0Zyb250ZW5kVXJsOiBzdHJpbmcgfCB1bmRlZmluZWRcbn0pIHtcbiAgY29uc3QgY29udGVudCA9IGRldnRvb2xzRnJvbnRlbmRVcmwgfHwgJydcbiAgY29uc3QgZGlzYWJsZWQgPSAhY29udGVudCB8fCAhaXNDaHJvbWVCcm93c2VyXG4gIGlmIChkaXNhYmxlZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8YVxuICAgICAgICB0aXRsZT17bGFiZWx9XG4gICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgICAgICBjbGFzc05hbWU9XCJuZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWluc3BlY3QtbGlua1wiXG4gICAgICAgIGhyZWY9e2BodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9jb25maWd1cmluZy9kZWJ1Z2dpbmcjc2VydmVyLXNpZGUtY29kZWB9XG4gICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgPlxuICAgICAgICA8Tm9kZUpzRGlzYWJsZWRJY29uIHdpZHRoPXsxNn0gaGVpZ2h0PXsxNn0gLz5cbiAgICAgIDwvYT5cbiAgICApXG4gIH1cbiAgcmV0dXJuIChcbiAgICA8Q29weUJ1dHRvblxuICAgICAgZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktZGV2dG9vbHMtdXJsXG4gICAgICBhY3Rpb25MYWJlbD17J0NvcHkgQ2hyb21lIERldlRvb2xzIFVSTCd9XG4gICAgICBzdWNjZXNzTGFiZWw9XCJDb3BpZWRcIlxuICAgICAgY29udGVudD17Y29udGVudH1cbiAgICAgIGljb249ezxOb2RlSnNJY29uIHdpZHRoPXsxNn0gaGVpZ2h0PXsxNn0gLz59XG4gICAgLz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIk5vZGVqc0luc3BlY3RvckNvcHlCdXR0b24iLCJpc0Nocm9tZSIsIndpbmRvdyIsImlzQ2hyb21pdW0iLCJjaHJvbWUiLCJ2ZW5kb3JOYW1lIiwibmF2aWdhdG9yIiwidmVuZG9yIiwidW5kZWZpbmVkIiwiaXNDaHJvbWVCcm93c2VyIiwiTm9kZUpzSWNvbiIsInByb3BzIiwic3ZnIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsInhtbG5zIiwiZyIsImNsaXBQYXRoIiwicGF0aCIsImQiLCJkZWZzIiwiaWQiLCJyZWN0IiwiTm9kZUpzRGlzYWJsZWRJY29uIiwic3Ryb2tlIiwic3Ryb2tlV2lkdGgiLCJzdHJva2VMaW5lam9pbiIsInN0cm9rZUxpbmVjYXAiLCJsYWJlbCIsImRldnRvb2xzRnJvbnRlbmRVcmwiLCJjb250ZW50IiwiZGlzYWJsZWQiLCJhIiwidGl0bGUiLCJhcmlhLWxhYmVsIiwiY2xhc3NOYW1lIiwiaHJlZiIsInRhcmdldCIsInJlbCIsIkNvcHlCdXR0b24iLCJkYXRhLW5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1kZXZ0b29scy11cmwiLCJhY3Rpb25MYWJlbCIsInN1Y2Nlc3NMYWJlbCIsImljb24iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/components/nodejs-inspector.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js ***! + \*****************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BuildError: function() {\n return BuildError;\n },\n styles: function() {\n return styles;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _Dialog = __webpack_require__(/*! ../components/Dialog */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js\");\nconst _Overlay = __webpack_require__(/*! ../components/Overlay */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js\");\nconst _Terminal = __webpack_require__(/*! ../components/Terminal */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/index.js\");\nconst _VersionStalenessInfo = __webpack_require__(/*! ../components/VersionStalenessInfo */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\");\nconst _nooptemplate = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n h1.nextjs__container_errors_label {\\n font-size: var(--size-font-big);\\n line-height: var(--size-font-bigger);\\n font-weight: bold;\\n margin: var(--size-gap-double) 0;\\n }\\n .nextjs-container-errors-header p {\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-big);\\n white-space: pre-wrap;\\n }\\n .nextjs-container-errors-body footer {\\n margin-top: var(--size-gap);\\n }\\n .nextjs-container-errors-body footer p {\\n margin: 0;\\n }\\n\\n .nextjs-container-errors-body small {\\n color: var(--color-font);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nconst BuildError = function BuildError(param) {\n _s();\n let { message, versionInfo } = param;\n const noop = _react.useCallback({\n \"BuildError.useCallback[noop]\": ()=>{}\n }[\"BuildError.useCallback[noop]\"], []);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Overlay.Overlay, {\n fixed: true,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Dialog.Dialog, {\n type: \"error\",\n \"aria-labelledby\": \"nextjs__container_error_label\",\n \"aria-describedby\": \"nextjs__container_error_desc\",\n onClose: noop,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Dialog.DialogContent, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Dialog.DialogHeader, {\n className: \"nextjs-container-errors-header\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n id: \"nextjs__container_errors_label\",\n className: \"nextjs__container_errors_label\",\n children: 'Build Error'\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_VersionStalenessInfo.VersionStalenessInfo, {\n versionInfo: versionInfo\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n id: \"nextjs__container_errors_desc\",\n className: \"nextjs__container_errors_desc\",\n children: \"Failed to compile\"\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Dialog.DialogBody, {\n className: \"nextjs-container-errors-body\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_Terminal.Terminal, {\n content: message\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"footer\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n id: \"nextjs__container_build_error_desc\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"small\", {\n children: \"This error occurred during the build process and can only be dismissed by fixing the error.\"\n })\n })\n })\n ]\n })\n ]\n })\n })\n });\n};\n_s(BuildError, \"hHp3im7kVRcdOeKmK0+3cSEjzLI=\");\n_c = BuildError;\nconst styles = (0, _nooptemplate.noop)(_templateObject());\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=BuildError.js.map\nvar _c;\n$RefreshReg$(_c, \"BuildError\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9CdWlsZEVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0lBZWFBLFVBQVU7ZUFBVkE7O0lBOENBQyxNQUFNO2VBQU5BOzs7Ozs7NkVBN0RVO29DQU9oQjtxQ0FDaUI7c0NBQ0M7a0RBQ1k7MENBQ1Q7Ozs7Ozs7Ozs7QUFJckIsbUJBQThDLFNBQVNELFdBQVcsS0FHeEU7O0lBSHdFLE1BQ3ZFRSxPQUFPLEVBQ1BDLFdBQVcsRUFDWixHQUh3RTtJQUl2RSxNQUFNQyxPQUFPQyxPQUFNQyxXQUFXO3dDQUFDLEtBQU87dUNBQUcsRUFBRTtJQUMzQyxxQkFDRSxxQkFBQ0MsU0FBQUEsT0FBTztRQUFDQyxLQUFLO2tCQUNaLG1DQUFDQyxRQUFBQSxNQUFNO1lBQ0xDLE1BQUs7WUFDTEMsbUJBQWdCO1lBQ2hCQyxvQkFBaUI7WUFDakJDLFNBQVNUO3NCQUVULG9DQUFDVSxRQUFBQSxhQUFhOztrQ0FDWixzQkFBQ0MsUUFBQUEsWUFBWTt3QkFBQ0MsV0FBVTs7MENBQ3RCLHFCQUFDQyxNQUFBQTtnQ0FDQ0MsSUFBRztnQ0FDSEYsV0FBVTswQ0FFVDs7MENBRUgscUJBQUNHLHNCQUFBQSxvQkFBb0I7Z0NBQUNoQixhQUFhQTs7MENBQ25DLHFCQUFDaUIsS0FBQUE7Z0NBQ0NGLElBQUc7Z0NBQ0hGLFdBQVU7MENBQ1g7Ozs7a0NBSUgsc0JBQUNLLFFBQUFBLFVBQVU7d0JBQUNMLFdBQVU7OzBDQUNwQixxQkFBQ00sVUFBQUEsUUFBUTtnQ0FBQ0MsU0FBU3JCOzswQ0FDbkIscUJBQUNzQixVQUFBQTswQ0FDQyxtQ0FBQ0osS0FBQUE7b0NBQUVGLElBQUc7OENBQ0osbUNBQUNPLFNBQUFBO2tEQUFNOzs7Ozs7Ozs7O0FBV3ZCOztLQTVDYXpCO0FBOENOLE1BQU1DLFNBQUFBLENBQUFBLEdBQVN5QixjQUFBQSxJQUFBQSxFQUFHIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9CdWlsZEVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgVmVyc2lvbkluZm8gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2ZXIvZGV2L3BhcnNlLXZlcnNpb24taW5mbydcbmltcG9ydCB7XG4gIERpYWxvZyxcbiAgRGlhbG9nQm9keSxcbiAgRGlhbG9nQ29udGVudCxcbiAgRGlhbG9nSGVhZGVyLFxufSBmcm9tICcuLi9jb21wb25lbnRzL0RpYWxvZydcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICcuLi9jb21wb25lbnRzL092ZXJsYXknXG5pbXBvcnQgeyBUZXJtaW5hbCB9IGZyb20gJy4uL2NvbXBvbmVudHMvVGVybWluYWwnXG5pbXBvcnQgeyBWZXJzaW9uU3RhbGVuZXNzSW5mbyB9IGZyb20gJy4uL2NvbXBvbmVudHMvVmVyc2lvblN0YWxlbmVzc0luZm8nXG5pbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gJy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZSdcblxuZXhwb3J0IHR5cGUgQnVpbGRFcnJvclByb3BzID0geyBtZXNzYWdlOiBzdHJpbmc7IHZlcnNpb25JbmZvPzogVmVyc2lvbkluZm8gfVxuXG5leHBvcnQgY29uc3QgQnVpbGRFcnJvcjogUmVhY3QuRkM8QnVpbGRFcnJvclByb3BzPiA9IGZ1bmN0aW9uIEJ1aWxkRXJyb3Ioe1xuICBtZXNzYWdlLFxuICB2ZXJzaW9uSW5mbyxcbn0pIHtcbiAgY29uc3Qgbm9vcCA9IFJlYWN0LnVzZUNhbGxiYWNrKCgpID0+IHt9LCBbXSlcbiAgcmV0dXJuIChcbiAgICA8T3ZlcmxheSBmaXhlZD5cbiAgICAgIDxEaWFsb2dcbiAgICAgICAgdHlwZT1cImVycm9yXCJcbiAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwibmV4dGpzX19jb250YWluZXJfZXJyb3JfbGFiZWxcIlxuICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwibmV4dGpzX19jb250YWluZXJfZXJyb3JfZGVzY1wiXG4gICAgICAgIG9uQ2xvc2U9e25vb3B9XG4gICAgICA+XG4gICAgICAgIDxEaWFsb2dDb250ZW50PlxuICAgICAgICAgIDxEaWFsb2dIZWFkZXIgY2xhc3NOYW1lPVwibmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyXCI+XG4gICAgICAgICAgICA8aDFcbiAgICAgICAgICAgICAgaWQ9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWxcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfbGFiZWxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7J0J1aWxkIEVycm9yJ31cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICA8VmVyc2lvblN0YWxlbmVzc0luZm8gdmVyc2lvbkluZm89e3ZlcnNpb25JbmZvfSAvPlxuICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgaWQ9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgRmFpbGVkIHRvIGNvbXBpbGVcbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L0RpYWxvZ0hlYWRlcj5cbiAgICAgICAgICA8RGlhbG9nQm9keSBjbGFzc05hbWU9XCJuZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5XCI+XG4gICAgICAgICAgICA8VGVybWluYWwgY29udGVudD17bWVzc2FnZX0gLz5cbiAgICAgICAgICAgIDxmb290ZXI+XG4gICAgICAgICAgICAgIDxwIGlkPVwibmV4dGpzX19jb250YWluZXJfYnVpbGRfZXJyb3JfZGVzY1wiPlxuICAgICAgICAgICAgICAgIDxzbWFsbD5cbiAgICAgICAgICAgICAgICAgIFRoaXMgZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRoZSBidWlsZCBwcm9jZXNzIGFuZCBjYW4gb25seSBiZVxuICAgICAgICAgICAgICAgICAgZGlzbWlzc2VkIGJ5IGZpeGluZyB0aGUgZXJyb3IuXG4gICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9mb290ZXI+XG4gICAgICAgICAgPC9EaWFsb2dCb2R5PlxuICAgICAgICA8L0RpYWxvZ0NvbnRlbnQ+XG4gICAgICA8L0RpYWxvZz5cbiAgICA8L092ZXJsYXk+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IGNzc2BcbiAgaDEubmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsIHtcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1iaWcpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtYmlnZ2VyKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBtYXJnaW46IHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgMDtcbiAgfVxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHAge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS1mb250LWJpZyk7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5IGZvb3RlciB7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1nYXApO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5IGZvb3RlciBwIHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keSBzbWFsbCB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWZvbnQpO1xuICB9XG5gXG4iXSwibmFtZXMiOlsiQnVpbGRFcnJvciIsInN0eWxlcyIsIm1lc3NhZ2UiLCJ2ZXJzaW9uSW5mbyIsIm5vb3AiLCJSZWFjdCIsInVzZUNhbGxiYWNrIiwiT3ZlcmxheSIsImZpeGVkIiwiRGlhbG9nIiwidHlwZSIsImFyaWEtbGFiZWxsZWRieSIsImFyaWEtZGVzY3JpYmVkYnkiLCJvbkNsb3NlIiwiRGlhbG9nQ29udGVudCIsIkRpYWxvZ0hlYWRlciIsImNsYXNzTmFtZSIsImgxIiwiaWQiLCJWZXJzaW9uU3RhbGVuZXNzSW5mbyIsInAiLCJEaWFsb2dCb2R5IiwiVGVybWluYWwiLCJjb250ZW50IiwiZm9vdGVyIiwic21hbGwiLCJjc3MiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js ***! + \*************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Errors: function() {\n return Errors;\n },\n styles: function() {\n return styles;\n }\n});\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nconst _shared = __webpack_require__(/*! ../../shared */ \"./node_modules/next/dist/client/components/react-dev-overlay/shared.js\");\nconst _Dialog = __webpack_require__(/*! ../components/Dialog */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js\");\nconst _LeftRightDialogHeader = __webpack_require__(/*! ../components/LeftRightDialogHeader */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js\");\nconst _Overlay = __webpack_require__(/*! ../components/Overlay */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js\");\nconst _Toast = __webpack_require__(/*! ../components/Toast */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js\");\nconst _geterrorbytype = __webpack_require__(/*! ../helpers/get-error-by-type */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-error-by-type.js\");\nconst _nooptemplate = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nconst _CloseIcon = __webpack_require__(/*! ../icons/CloseIcon */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js\");\nconst _RuntimeError = __webpack_require__(/*! ./RuntimeError */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js\");\nconst _VersionStalenessInfo = __webpack_require__(/*! ../components/VersionStalenessInfo */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\");\nconst _errorsource = __webpack_require__(/*! ../../../../../shared/lib/error-source */ \"./node_modules/next/dist/shared/lib/error-source.js\");\nconst _hotlinkedtext = __webpack_require__(/*! ../components/hot-linked-text */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\");\nconst _componentstackpseudohtml = __webpack_require__(/*! ./RuntimeError/component-stack-pseudo-html */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/component-stack-pseudo-html.js\");\nconst _hydrationerrorinfo = __webpack_require__(/*! ../helpers/hydration-error-info */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js\");\nconst _nodejsinspector = __webpack_require__(/*! ../components/nodejs-inspector */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/nodejs-inspector.js\");\nconst _copybutton = __webpack_require__(/*! ../components/copy-button */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/copy-button/index.js\");\nconst _consoleerror = __webpack_require__(/*! ../helpers/console-error */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/console-error.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n .nextjs-error-with-static {\\n bottom: calc(var(--size-gap-double) * 4.5);\\n }\\n .nextjs-container-errors-header {\\n position: relative;\\n }\\n .nextjs-container-errors-header > h1 {\\n font-size: var(--size-font-big);\\n line-height: var(--size-font-bigger);\\n font-weight: bold;\\n margin: calc(var(--size-gap-double) * 1.5) 0;\\n color: var(--color-title-h1);\\n }\\n .nextjs-container-errors-header small {\\n font-size: var(--size-font-small);\\n color: var(--color-accents-1);\\n margin-left: var(--size-gap-double);\\n }\\n .nextjs-container-errors-header small > span {\\n font-family: var(--font-stack-monospace);\\n }\\n .nextjs-container-errors-header p {\\n font-size: var(--size-font-small);\\n line-height: var(--size-font-big);\\n white-space: pre-wrap;\\n }\\n .nextjs__container_errors_desc {\\n font-family: var(--font-stack-monospace);\\n padding: var(--size-gap) var(--size-gap-double);\\n border-left: 2px solid var(--color-text-color-red-1);\\n margin-top: var(--size-gap);\\n font-weight: bold;\\n color: var(--color-text-color-red-1);\\n background-color: var(--color-text-background-red-1);\\n }\\n p.nextjs__container_errors__link {\\n margin: var(--size-gap-double) auto;\\n color: var(--color-text-color-red-1);\\n font-weight: 600;\\n font-size: 15px;\\n }\\n p.nextjs__container_errors__notes {\\n margin: var(--size-gap-double) auto;\\n color: var(--color-stack-notes);\\n font-weight: 600;\\n font-size: 15px;\\n }\\n .nextjs-container-errors-header > div > small {\\n margin: 0;\\n margin-top: var(--size-gap-half);\\n }\\n .nextjs-container-errors-header > p > a {\\n color: inherit;\\n font-weight: bold;\\n }\\n .nextjs-container-errors-body > h2:not(:first-child) {\\n margin-top: calc(var(--size-gap-double) + var(--size-gap));\\n }\\n .nextjs-container-errors-body > h2 {\\n color: var(--color-title-color);\\n margin-bottom: var(--size-gap);\\n font-size: var(--size-font-big);\\n }\\n .nextjs__container_errors__component-stack {\\n padding: 12px 32px;\\n color: var(--color-ansi-fg);\\n background: var(--color-ansi-bg);\\n }\\n .nextjs-toast-errors-parent {\\n cursor: pointer;\\n transition: transform 0.2s ease;\\n }\\n .nextjs-toast-errors-parent:hover {\\n transform: scale(1.1);\\n }\\n .nextjs-toast-errors {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n }\\n .nextjs-toast-errors > svg {\\n margin-right: var(--size-gap);\\n }\\n .nextjs-toast-hide-button {\\n margin-left: var(--size-gap-triple);\\n border: none;\\n background: none;\\n color: var(--color-ansi-bright-white);\\n padding: 0;\\n transition: opacity 0.25s ease;\\n opacity: 0.7;\\n }\\n .nextjs-toast-hide-button:hover {\\n opacity: 1;\\n }\\n .nextjs-container-errors-header\\n > .nextjs-container-build-error-version-status {\\n position: absolute;\\n top: 0;\\n right: 0;\\n }\\n .nextjs__container_errors_inspect_copy_button {\\n cursor: pointer;\\n background: none;\\n border: none;\\n color: var(--color-ansi-bright-white);\\n font-size: 1.5rem;\\n padding: 0;\\n margin: 0;\\n margin-left: var(--size-gap);\\n transition: opacity 0.25s ease;\\n }\\n .nextjs__container_errors__error_title {\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n }\\n .nextjs-data-runtime-error-inspect-link,\\n .nextjs-data-runtime-error-inspect-link:hover {\\n margin: 0 8px;\\n color: inherit;\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nfunction isNextjsLink(text) {\n return text.startsWith('https://nextjs.org');\n}\nfunction ErrorDescription(param) {\n let { error, hydrationWarning } = param;\n const isUnhandledOrReplayError = (0, _consoleerror.isUnhandledConsoleOrRejection)(error);\n const unhandledErrorType = isUnhandledOrReplayError ? (0, _consoleerror.getUnhandledErrorType)(error) : null;\n const isConsoleErrorStringMessage = unhandledErrorType === 'string';\n // If the error is:\n // - hydration warning\n // - captured console error or unhandled rejection\n // skip displaying the error name\n const title = isUnhandledOrReplayError && isConsoleErrorStringMessage || hydrationWarning ? '' : error.name + ': ';\n // If it's replayed error, display the environment name\n const environmentName = 'environmentName' in error ? error['environmentName'] : '';\n const envPrefix = environmentName ? \"[ \" + environmentName + \" ] \" : '';\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n envPrefix,\n title,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_hotlinkedtext.HotlinkedText, {\n text: hydrationWarning || error.message,\n matcher: isNextjsLink\n })\n ]\n });\n}\n_c = ErrorDescription;\nfunction getErrorSignature(ev) {\n const { event } = ev;\n switch(event.type){\n case _shared.ACTION_UNHANDLED_ERROR:\n case _shared.ACTION_UNHANDLED_REJECTION:\n {\n return event.reason.name + \"::\" + event.reason.message + \"::\" + event.reason.stack;\n }\n default:\n {}\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = event;\n return '';\n}\nfunction Errors(param) {\n let { isAppDir, errors, initialDisplayState, versionInfo, hasStaticIndicator, debugInfo } = param;\n var _activeError_componentStackFrames;\n const [lookups, setLookups] = (0, _react.useState)({});\n const [readyErrors, nextError] = (0, _react.useMemo)(()=>{\n let ready = [];\n let next = null;\n // Ensure errors are displayed in the order they occurred in:\n for(let idx = 0; idx < errors.length; ++idx){\n const e = errors[idx];\n const { id } = e;\n if (id in lookups) {\n ready.push(lookups[id]);\n continue;\n }\n // Check for duplicate errors\n if (idx > 0) {\n const prev = errors[idx - 1];\n if (getErrorSignature(prev) === getErrorSignature(e)) {\n continue;\n }\n }\n next = e;\n break;\n }\n return [\n ready,\n next\n ];\n }, [\n errors,\n lookups\n ]);\n const isLoading = (0, _react.useMemo)(()=>{\n return readyErrors.length < 1 && Boolean(errors.length);\n }, [\n errors.length,\n readyErrors.length\n ]);\n (0, _react.useEffect)(()=>{\n if (nextError == null) {\n return;\n }\n let mounted = true;\n (0, _geterrorbytype.getErrorByType)(nextError, isAppDir).then((resolved)=>{\n // We don't care if the desired error changed while we were resolving,\n // thus we're not tracking it using a ref. Once the work has been done,\n // we'll store it.\n if (mounted) {\n setLookups((m)=>({\n ...m,\n [resolved.id]: resolved\n }));\n }\n }, ()=>{\n // TODO: handle this, though an edge case\n });\n return ()=>{\n mounted = false;\n };\n }, [\n nextError,\n isAppDir\n ]);\n const [displayState, setDisplayState] = (0, _react.useState)(initialDisplayState);\n const [activeIdx, setActiveIndex] = (0, _react.useState)(0);\n const previous = (0, _react.useCallback)(()=>setActiveIndex((v)=>Math.max(0, v - 1)), []);\n const next = (0, _react.useCallback)(()=>setActiveIndex((v)=>Math.max(0, Math.min(readyErrors.length - 1, v + 1))), [\n readyErrors.length\n ]);\n const activeError = (0, _react.useMemo)(()=>{\n var _readyErrors_activeIdx;\n return (_readyErrors_activeIdx = readyErrors[activeIdx]) != null ? _readyErrors_activeIdx : null;\n }, [\n activeIdx,\n readyErrors\n ]);\n // Reset component state when there are no errors to be displayed.\n // This should never happen, but lets handle it.\n (0, _react.useEffect)(()=>{\n if (errors.length < 1) {\n setLookups({});\n setDisplayState('hidden');\n setActiveIndex(0);\n }\n }, [\n errors.length\n ]);\n const minimize = (0, _react.useCallback)(()=>setDisplayState('minimized'), []);\n const hide = (0, _react.useCallback)(()=>setDisplayState('hidden'), []);\n const fullscreen = (0, _react.useCallback)(()=>setDisplayState('fullscreen'), []);\n // This component shouldn't be rendered with no errors, but if it is, let's\n // handle it gracefully by rendering nothing.\n if (errors.length < 1 || activeError == null) {\n return null;\n }\n if (isLoading) {\n // TODO: better loading state\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Overlay.Overlay, {});\n }\n if (displayState === 'hidden') {\n return null;\n }\n if (displayState === 'minimized') {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Toast.Toast, {\n \"data-nextjs-toast\": true,\n className: \"nextjs-toast-errors-parent\" + (hasStaticIndicator ? ' nextjs-error-with-static' : ''),\n onClick: fullscreen,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n className: \"nextjs-toast-errors\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"circle\", {\n cx: \"12\",\n cy: \"12\",\n r: \"10\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"line\", {\n x1: \"12\",\n y1: \"8\",\n x2: \"12\",\n y2: \"12\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"line\", {\n x1: \"12\",\n y1: \"16\",\n x2: \"12.01\",\n y2: \"16\"\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n readyErrors.length,\n \" error\",\n readyErrors.length > 1 ? 's' : ''\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n \"data-nextjs-toast-errors-hide-button\": true,\n className: \"nextjs-toast-hide-button\",\n type: \"button\",\n onClick: (e)=>{\n e.stopPropagation();\n hide();\n },\n \"aria-label\": \"Hide Errors\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_CloseIcon.CloseIcon, {})\n })\n ]\n })\n });\n }\n const error = activeError.error;\n const isServerError = [\n 'server',\n 'edge-server'\n ].includes((0, _errorsource.getErrorSource)(error) || '');\n const isUnhandledError = (0, _consoleerror.isUnhandledConsoleOrRejection)(error);\n const errorDetails = error.details || {};\n const notes = errorDetails.notes || '';\n const [warningTemplate, serverContent, clientContent] = errorDetails.warning || [\n null,\n '',\n ''\n ];\n const hydrationErrorType = (0, _hydrationerrorinfo.getHydrationWarningType)(warningTemplate);\n const hydrationWarning = warningTemplate ? warningTemplate.replace('%s', serverContent).replace('%s', clientContent).replace('%s', '') // remove the %s for stack\n .replace(/%s$/, '') // If there's still a %s at the end, remove it\n .replace(/^Warning: /, '').replace(/^Error: /, '') : null;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_Overlay.Overlay, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_Dialog.Dialog, {\n type: \"error\",\n \"aria-labelledby\": \"nextjs__container_errors_label\",\n \"aria-describedby\": \"nextjs__container_errors_desc\",\n onClose: isServerError ? undefined : minimize,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Dialog.DialogContent, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(_Dialog.DialogHeader, {\n className: \"nextjs-container-errors-header\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(_LeftRightDialogHeader.LeftRightDialogHeader, {\n previous: activeIdx > 0 ? previous : null,\n next: activeIdx < readyErrors.length - 1 ? next : null,\n close: isServerError ? undefined : minimize,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"small\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n children: activeIdx + 1\n }),\n \" of\",\n ' ',\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-dialog-header-total-count\": true,\n children: readyErrors.length\n }),\n ' error',\n readyErrors.length < 2 ? '' : 's'\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_VersionStalenessInfo.VersionStalenessInfo, {\n versionInfo: versionInfo\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n className: \"nextjs__container_errors__error_title\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n id: \"nextjs__container_errors_label\",\n className: \"nextjs__container_errors_label\",\n children: isServerError ? 'Server Error' : isUnhandledError ? 'Console Error' : 'Unhandled Runtime Error'\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_copybutton.CopyButton, {\n \"data-nextjs-data-runtime-error-copy-stack\": true,\n actionLabel: \"Copy error stack\",\n successLabel: \"Copied\",\n content: error.stack || '',\n disabled: !error.stack\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_nodejsinspector.NodejsInspectorCopyButton, {\n devtoolsFrontendUrl: debugInfo == null ? void 0 : debugInfo.devtoolsFrontendUrl\n })\n ]\n })\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n id: \"nextjs__container_errors_desc\",\n className: \"nextjs__container_errors_desc\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorDescription, {\n error: error,\n hydrationWarning: hydrationWarning\n })\n }),\n notes ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n id: \"nextjs__container_errors__notes\",\n className: \"nextjs__container_errors__notes\",\n children: notes\n })\n }) : null,\n hydrationWarning ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n id: \"nextjs__container_errors__link\",\n className: \"nextjs__container_errors__link\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hotlinkedtext.HotlinkedText, {\n text: \"See more info here: https://nextjs.org/docs/messages/react-hydration-error\"\n })\n }) : null,\n hydrationWarning && (((_activeError_componentStackFrames = activeError.componentStackFrames) == null ? void 0 : _activeError_componentStackFrames.length) || !!errorDetails.reactOutputComponentDiff) ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_componentstackpseudohtml.PseudoHtmlDiff, {\n className: \"nextjs__container_errors__component-stack\",\n hydrationMismatchType: hydrationErrorType,\n componentStackFrames: activeError.componentStackFrames || [],\n firstContent: serverContent,\n secondContent: clientContent,\n reactOutputComponentDiff: errorDetails.reactOutputComponentDiff\n }) : null,\n isServerError ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"small\", {\n children: \"This error happened while generating the page. Any console logs will be displayed in the terminal window.\"\n })\n }) : undefined\n ]\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_Dialog.DialogBody, {\n className: \"nextjs-container-errors-body\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_RuntimeError.RuntimeError, {\n error: activeError\n }, activeError.id.toString())\n })\n ]\n })\n })\n });\n}\n_c1 = Errors;\nconst styles = (0, _nooptemplate.noop)(_templateObject());\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=Errors.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"ErrorDescription\");\n$RefreshReg$(_c1, \"Errors\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9FcnJvcnMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBaUhnQkEsTUFBTTtlQUFOQTs7SUFxU0hDLE1BQU07ZUFBTkE7Ozs7O21DQXRaNkM7b0NBTW5EO29DQU9BO21EQUMrQjtxQ0FDZDttQ0FDRjs0Q0FDUzswQ0FFSDt1Q0FDRjswQ0FDRztrREFDUTt5Q0FFTjsyQ0FDRDtzREFDQztnREFJeEI7NkNBQ21DO3dDQUNmOzBDQUlwQjs7Ozs7Ozs7OztBQW1CUCxTQUFTQyxhQUFhQyxJQUFZO0lBQ2hDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQztBQUN6QjtBQUVBLFNBQVNDLGlCQUFpQixLQU16QjtJQU55QixNQUN4QkMsS0FBSyxFQUNMQyxnQkFBZ0IsRUFJakIsR0FOeUI7SUFPeEIsTUFBTUMsMkJBQTJCQyxDQUFBQSxHQUFBQSxjQUFBQSw2QkFBQUEsRUFBOEJIO0lBQy9ELE1BQU1JLHFCQUFxQkYsMkJBQ3ZCRyxDQUFBQSxHQUFBQSxjQUFBQSxxQkFBQUEsRUFBc0JMLFNBQ3RCO0lBQ0osTUFBTU0sOEJBQThCRix1QkFBdUI7SUFDM0QsbUJBQW1CO0lBQ25CLHNCQUFzQjtJQUN0QixrREFBa0Q7SUFDbEQsaUNBQWlDO0lBQ2pDLE1BQU1HLFFBQ0hMLDRCQUE0QkksK0JBQzdCTCxtQkFDSSxLQUNBRCxNQUFNUSxJQUFJLEdBQUc7SUFFbkIsdURBQXVEO0lBQ3ZELE1BQU1DLGtCQUNKLHFCQUFxQlQsUUFBUUEsS0FBSyxDQUFDLGtCQUFrQixHQUFHO0lBQzFELE1BQU1VLFlBQVlELGtCQUFtQixPQUFJQSxrQkFBZ0IsUUFBTztJQUNoRSxxQkFDRTs7WUFDR0M7WUFDQUg7MEJBQ0QscUJBQUNJLGVBQUFBLGFBQWE7Z0JBQ1pkLE1BQU1JLG9CQUFvQkQsTUFBTVksT0FBTztnQkFDdkNDLFNBQVNqQjs7OztBQUlqQjs7QUFFQSxTQUFTa0Isa0JBQWtCQyxFQUF1QjtJQUNoRCxNQUFNLEVBQUVDLEtBQUssRUFBRSxHQUFHRDtJQUNsQixPQUFRQyxNQUFNQyxJQUFJO1FBQ2hCLEtBQUtDLFFBQUFBLHNCQUFzQjtRQUMzQixLQUFLQyxRQUFBQSwwQkFBMEI7WUFBRTtnQkFDL0IsT0FBVUgsTUFBTUksTUFBTSxDQUFDWixJQUFJLEdBQUMsT0FBSVEsTUFBTUksTUFBTSxDQUFDUixPQUFPLEdBQUMsT0FBSUksTUFBTUksTUFBTSxDQUFDQyxLQUFLO1lBQzdFO1FBQ0E7WUFBUyxDQUNUO0lBQ0Y7SUFFQSw2REFBNkQ7SUFDN0QsTUFBTUMsSUFBV047SUFDakIsT0FBTztBQUNUO0FBRU8sZ0JBQWdCLEtBT1Q7SUFQUyxNQUNyQk8sUUFBUSxFQUNSQyxNQUFNLEVBQ05DLG1CQUFtQixFQUNuQkMsV0FBVyxFQUNYQyxrQkFBa0IsRUFDbEJDLFNBQVMsRUFDRyxHQVBTO1FBd1FWQztJQWhRWCxNQUFNLENBQUNDLFNBQVNDLFdBQVcsR0FBR0MsQ0FBQUEsR0FBQUEsT0FBQUEsUUFBQUEsRUFDNUIsQ0FBQztJQUdILE1BQU0sQ0FBQ0MsYUFBYUMsVUFBVSxHQUFHQyxDQUFBQSxHQUFBQSxPQUFBQSxPQUFBQSxFQUUvQjtRQUNBLElBQUlDLFFBQTJCLEVBQUU7UUFDakMsSUFBSUMsT0FBbUM7UUFFdkMsNkRBQTZEO1FBQzdELElBQUssSUFBSUMsTUFBTSxHQUFHQSxNQUFNZCxPQUFPZSxNQUFNLEVBQUUsRUFBRUQsSUFBSztZQUM1QyxNQUFNRSxJQUFJaEIsTUFBTSxDQUFDYyxJQUFJO1lBQ3JCLE1BQU0sRUFBRUcsRUFBRSxFQUFFLEdBQUdEO1lBQ2YsSUFBSUMsTUFBTVgsU0FBUztnQkFDakJNLE1BQU1NLElBQUksQ0FBQ1osT0FBTyxDQUFDVyxHQUFHO2dCQUN0QjtZQUNGO1lBRUEsNkJBQTZCO1lBQzdCLElBQUlILE1BQU0sR0FBRztnQkFDWCxNQUFNSyxPQUFPbkIsTUFBTSxDQUFDYyxNQUFNLEVBQUU7Z0JBQzVCLElBQUl4QixrQkFBa0I2QixVQUFVN0Isa0JBQWtCMEIsSUFBSTtvQkFDcEQ7Z0JBQ0Y7WUFDRjtZQUVBSCxPQUFPRztZQUNQO1FBQ0Y7UUFFQSxPQUFPO1lBQUNKO1lBQU9DO1NBQUs7SUFDdEIsR0FBRztRQUFDYjtRQUFRTTtLQUFRO0lBRXBCLE1BQU1jLFlBQVlULENBQUFBLEdBQUFBLE9BQUFBLE9BQUFBLEVBQWlCO1FBQ2pDLE9BQU9GLFlBQVlNLE1BQU0sR0FBRyxLQUFLTSxRQUFRckIsT0FBT2UsTUFBTTtJQUN4RCxHQUFHO1FBQUNmLE9BQU9lLE1BQU07UUFBRU4sWUFBWU0sTUFBTTtLQUFDO0lBRXRDTyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1IsSUFBSVosYUFBYSxNQUFNO1lBQ3JCO1FBQ0Y7UUFDQSxJQUFJYSxVQUFVO1FBRWRDLENBQUFBLEdBQUFBLGdCQUFBQSxjQUFBQSxFQUFlZCxXQUFXWCxVQUFVMEIsSUFBSSxDQUN0QyxDQUFDQztZQUNDLHNFQUFzRTtZQUN0RSx1RUFBdUU7WUFDdkUsa0JBQWtCO1lBQ2xCLElBQUlILFNBQVM7Z0JBQ1hoQixXQUFXLENBQUNvQixJQUFPO3dCQUFFLEdBQUdBLENBQUM7d0JBQUUsQ0FBQ0QsU0FBU1QsRUFBRSxDQUFDLEVBQUVTO3FCQUFTO1lBQ3JEO1FBQ0YsR0FDQTtRQUNFLHlDQUF5QztRQUMzQztRQUdGLE9BQU87WUFDTEgsVUFBVTtRQUNaO0lBQ0YsR0FBRztRQUFDYjtRQUFXWDtLQUFTO0lBRXhCLE1BQU0sQ0FBQzZCLGNBQWNDLGdCQUFnQixHQUNuQ3JCLENBQUFBLEdBQUFBLE9BQUFBLFFBQUFBLEVBQXVCUDtJQUN6QixNQUFNLENBQUM2QixXQUFXQyxlQUFlLEdBQUd2QixDQUFBQSxHQUFBQSxPQUFBQSxRQUFBQSxFQUFpQjtJQUNyRCxNQUFNd0IsV0FBV0MsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBQUEsRUFDZixJQUFNRixlQUFlLENBQUNHLElBQU1DLEtBQUtDLEdBQUcsQ0FBQyxHQUFHRixJQUFJLEtBQzVDLEVBQUU7SUFFSixNQUFNckIsT0FBT29CLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQ1gsSUFDRUYsZUFBZSxDQUFDRyxJQUNkQyxLQUFLQyxHQUFHLENBQUMsR0FBR0QsS0FBS0UsR0FBRyxDQUFDNUIsWUFBWU0sTUFBTSxHQUFHLEdBQUdtQixJQUFJLE1BRXJEO1FBQUN6QixZQUFZTSxNQUFNO0tBQUM7SUFHdEIsTUFBTVYsY0FBY00sQ0FBQUEsR0FBQUEsT0FBQUEsT0FBQUEsRUFDbEI7WUFBTUY7ZUFBQUEsQ0FBQUEseUJBQUFBLFdBQVcsQ0FBQ3FCLFVBQUFBLEtBQVUsT0FBdEJyQix5QkFBMEI7T0FDaEM7UUFBQ3FCO1FBQVdyQjtLQUFZO0lBRzFCLGtFQUFrRTtJQUNsRSxnREFBZ0Q7SUFDaERhLENBQUFBLEdBQUFBLE9BQUFBLFNBQUFBLEVBQVU7UUFDUixJQUFJdEIsT0FBT2UsTUFBTSxHQUFHLEdBQUc7WUFDckJSLFdBQVcsQ0FBQztZQUNac0IsZ0JBQWdCO1lBQ2hCRSxlQUFlO1FBQ2pCO0lBQ0YsR0FBRztRQUFDL0IsT0FBT2UsTUFBTTtLQUFDO0lBRWxCLE1BQU11QixXQUFXTCxDQUFBQSxHQUFBQSxPQUFBQSxXQUFBQSxFQUFZLElBQU1KLGdCQUFnQixjQUFjLEVBQUU7SUFDbkUsTUFBTVUsT0FBT04sQ0FBQUEsR0FBQUEsT0FBQUEsV0FBQUEsRUFBWSxJQUFNSixnQkFBZ0IsV0FBVyxFQUFFO0lBQzVELE1BQU1XLGFBQWFQLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQVksSUFBTUosZ0JBQWdCLGVBQWUsRUFBRTtJQUV0RSwyRUFBMkU7SUFDM0UsNkNBQTZDO0lBQzdDLElBQUk3QixPQUFPZSxNQUFNLEdBQUcsS0FBS1YsZUFBZSxNQUFNO1FBQzVDLE9BQU87SUFDVDtJQUVBLElBQUllLFdBQVc7UUFDYiw2QkFBNkI7UUFDN0IscUJBQU8scUJBQUNxQixTQUFBQSxPQUFPO0lBQ2pCO0lBRUEsSUFBSWIsaUJBQWlCLFVBQVU7UUFDN0IsT0FBTztJQUNUO0lBRUEsSUFBSUEsaUJBQWlCLGFBQWE7UUFDaEMscUJBQ0UscUJBQUNjLE9BQUFBLEtBQUs7WUFDSkMsbUJBQWlCO1lBQ2pCQyxXQUFZLCtCQUE0QnpDLENBQUFBLHFCQUFxQiw4QkFBOEIsR0FBQztZQUM1RjBDLFNBQVNMO3NCQUVULG9DQUFDTSxPQUFBQTtnQkFBSUYsV0FBVTs7a0NBQ2Isc0JBQUNHLE9BQUFBO3dCQUNDQyxPQUFNO3dCQUNOQyxPQUFNO3dCQUNOQyxRQUFPO3dCQUNQQyxTQUFRO3dCQUNSQyxNQUFLO3dCQUNMQyxRQUFPO3dCQUNQQyxhQUFZO3dCQUNaQyxlQUFjO3dCQUNkQyxnQkFBZTs7MENBRWYscUJBQUNDLFVBQUFBO2dDQUFPQyxJQUFHO2dDQUFLQyxJQUFHO2dDQUFLQyxHQUFFOzswQ0FDMUIscUJBQUNDLFFBQUFBO2dDQUFLQyxJQUFHO2dDQUFLQyxJQUFHO2dDQUFJQyxJQUFHO2dDQUFLQyxJQUFHOzswQ0FDaEMscUJBQUNKLFFBQUFBO2dDQUFLQyxJQUFHO2dDQUFLQyxJQUFHO2dDQUFLQyxJQUFHO2dDQUFRQyxJQUFHOzs7O2tDQUV0QyxzQkFBQ0MsUUFBQUE7OzRCQUNFekQsWUFBWU0sTUFBTTs0QkFBQzs0QkFBT04sWUFBWU0sTUFBTSxHQUFHLElBQUksTUFBTTs7O2tDQUU1RCxxQkFBQ29ELFVBQUFBO3dCQUNDQyxzQ0FBb0M7d0JBQ3BDeEIsV0FBVTt3QkFDVm5ELE1BQUs7d0JBQ0xvRCxTQUFTLENBQUM3Qjs0QkFDUkEsRUFBRXFELGVBQWU7NEJBQ2pCOUI7d0JBQ0Y7d0JBQ0ErQixjQUFXO2tDQUVYLG1DQUFDQyxXQUFBQSxTQUFTOzs7OztJQUtwQjtJQUVBLE1BQU0vRixRQUFRNkIsWUFBWTdCLEtBQUs7SUFDL0IsTUFBTWdHLGdCQUFnQjtRQUFDO1FBQVU7S0FBYyxDQUFDQyxRQUFRLENBQ3REQyxDQUFBQSxHQUFBQSxhQUFBQSxjQUFBQSxFQUFlbEcsVUFBVTtJQUUzQixNQUFNbUcsbUJBQW1CaEcsQ0FBQUEsR0FBQUEsY0FBQUEsNkJBQTZCLEVBQUNIO0lBQ3ZELE1BQU1vRyxlQUFxQ3BHLE1BQWNxRyxPQUFPLElBQUksQ0FBQztJQUNyRSxNQUFNQyxRQUFRRixhQUFhRSxLQUFLLElBQUk7SUFDcEMsTUFBTSxDQUFDQyxpQkFBaUJDLGVBQWVDLGNBQWMsR0FDbkRMLGFBQWFNLE9BQU8sSUFBSTtRQUFDO1FBQU07UUFBSTtLQUFHO0lBRXhDLE1BQU1DLHFCQUFxQkMsQ0FBQUEsR0FBQUEsb0JBQUFBLHVCQUFBQSxFQUF3Qkw7SUFDbkQsTUFBTXRHLG1CQUFtQnNHLGtCQUNyQkEsZ0JBQ0dNLE9BQU8sQ0FBQyxNQUFNTCxlQUNkSyxPQUFPLENBQUMsTUFBTUosZUFDZEksT0FBTyxDQUFDLE1BQU0sSUFBSSwwQkFBMEI7S0FDNUNBLE9BQU8sQ0FBQyxPQUFPLElBQUksOENBQThDO0tBQ2pFQSxPQUFPLENBQUMsY0FBYyxJQUN0QkEsT0FBTyxDQUFDLFlBQVksTUFDdkI7SUFFSixxQkFDRSxxQkFBQzVDLFNBQUFBLE9BQU87a0JBQ04sbUNBQUM2QyxRQUFBQSxNQUFNO1lBQ0w3RixNQUFLO1lBQ0w4RixtQkFBZ0I7WUFDaEJDLG9CQUFpQjtZQUNqQkMsU0FBU2pCLGdCQUFnQmtCLFlBQVlwRDtzQkFFckMsb0NBQUNxRCxRQUFBQSxhQUFhOztrQ0FDWixzQkFBQ0MsUUFBQUEsWUFBWTt3QkFBQ2hELFdBQVU7OzBDQUN0QixzQkFBQ2lELHVCQUFBQSxxQkFBcUI7Z0NBQ3BCN0QsVUFBVUYsWUFBWSxJQUFJRSxXQUFXO2dDQUNyQ25CLE1BQU1pQixZQUFZckIsWUFBWU0sTUFBTSxHQUFHLElBQUlGLE9BQU87Z0NBQ2xEaUYsT0FBT3RCLGdCQUFnQmtCLFlBQVlwRDs7a0RBRW5DLHNCQUFDeUQsU0FBQUE7OzBEQUNDLHFCQUFDN0IsUUFBQUE7MERBQU1wQyxZQUFZOzs0Q0FBUzs0Q0FBSTswREFDaEMscUJBQUNvQyxRQUFBQTtnREFBSzhCLHVDQUFxQzswREFDeEN2RixZQUFZTSxNQUFNOzs0Q0FFcEI7NENBQ0FOLFlBQVlNLE1BQU0sR0FBRyxJQUFJLEtBQUs7OztrREFFakMscUJBQUNrRixzQkFBQUEsb0JBQW9CO3dDQUFDL0YsYUFBYUE7Ozs7MENBR3JDLHNCQUFDNEMsT0FBQUE7Z0NBQUlGLFdBQVU7O2tEQUNiLHFCQUFDc0QsTUFBQUE7d0NBQ0NqRixJQUFHO3dDQUNIMkIsV0FBVTtrREFFVDRCLGdCQUNHLGlCQUNBRyxtQkFDRSxrQkFDQTs7a0RBRVIsc0JBQUNULFFBQUFBOzswREFDQyxxQkFBQ2lDLFlBQUFBLFVBQVU7Z0RBQ1RDLDJDQUF5QztnREFDekNDLGFBQVk7Z0RBQ1pDLGNBQWE7Z0RBQ2JDLFNBQVMvSCxNQUFNcUIsS0FBSyxJQUFJO2dEQUN4QjJHLFVBQVUsQ0FBQ2hJLE1BQU1xQixLQUFLOzswREFHeEIscUJBQUM0RyxpQkFBQUEseUJBQXlCO2dEQUN4QkMsbUJBQW1CLEVBQUV0RyxhQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxVQUFXc0csbUJBQW1COzs7Ozs7MENBSXpELHFCQUFDQyxLQUFBQTtnQ0FDQzFGLElBQUc7Z0NBQ0gyQixXQUFVOzBDQUVWLG1DQUFDckUsa0JBQUFBO29DQUNDQyxPQUFPQTtvQ0FDUEMsa0JBQWtCQTs7OzRCQUdyQnFHLFFBQUFBLFdBQUFBLEdBQ0M7MENBQ0UsbUNBQUM2QixLQUFBQTtvQ0FDQzFGLElBQUc7b0NBQ0gyQixXQUFVOzhDQUVUa0M7O2lDQUdIOzRCQUNIckcsbUJBQUFBLFdBQUFBLEdBQ0MscUJBQUNrSSxLQUFBQTtnQ0FDQzFGLElBQUc7Z0NBQ0gyQixXQUFVOzBDQUVWLG1DQUFDekQsZUFBQUEsYUFBYTtvQ0FBQ2QsTUFBSzs7aUNBRXBCOzRCQUVISSxvQkFDQTRCLENBQUFBLENBQUFBLENBQUFBLG9DQUFBQSxZQUFZdUcsb0JBQUFBLEtBQW9CLGdCQUFoQ3ZHLGtDQUFrQ1UsTUFBQUEsS0FDakMsQ0FBQyxDQUFDNkQsYUFBYWlDLHdCQUFBQSxJQUF1QixjQUN0QyxxQkFBQ0MsMEJBQUFBLGNBQWM7Z0NBQ2JsRSxXQUFVO2dDQUNWbUUsdUJBQXVCNUI7Z0NBQ3ZCeUIsc0JBQXNCdkcsWUFBWXVHLG9CQUFvQixJQUFJLEVBQUU7Z0NBQzVESSxjQUFjaEM7Z0NBQ2RpQyxlQUFlaEM7Z0NBQ2Y0QiwwQkFBMEJqQyxhQUFhaUMsd0JBQXdCO2lDQUUvRDs0QkFDSHJDLGdCQUFBQSxXQUFBQSxHQUNDLHFCQUFDMUIsT0FBQUE7MENBQ0MsbUNBQUNpRCxTQUFBQTs4Q0FBTTs7aUNBS1BMOzs7a0NBRU4scUJBQUN3QixRQUFBQSxVQUFVO3dCQUFDdEUsV0FBVTtrQ0FDcEIsbUNBQUN1RSxjQUFBQSxZQUFZOzRCQUFpQzNJLE9BQU82QjsyQkFBbENBLFlBQVlZLEVBQUUsQ0FBQ21HLFFBQVE7Ozs7OztBQU10RDtNQW5TZ0JsSjtBQXFTVCxNQUFNQyxTQUFBQSxDQUFBQSxHQUFTa0osY0FBQUEsSUFBQUEsRUFBRyIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb250YWluZXIvRXJyb3JzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VDYWxsYmFjayB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHtcbiAgQUNUSU9OX1VOSEFORExFRF9FUlJPUixcbiAgQUNUSU9OX1VOSEFORExFRF9SRUpFQ1RJT04sXG4gIHR5cGUgVW5oYW5kbGVkRXJyb3JBY3Rpb24sXG4gIHR5cGUgVW5oYW5kbGVkUmVqZWN0aW9uQWN0aW9uLFxufSBmcm9tICcuLi8uLi9zaGFyZWQnXG5pbXBvcnQgdHlwZSB7IERlYnVnSW5mbyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHtcbiAgRGlhbG9nLFxuICBEaWFsb2dCb2R5LFxuICBEaWFsb2dDb250ZW50LFxuICBEaWFsb2dIZWFkZXIsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvRGlhbG9nJ1xuaW1wb3J0IHsgTGVmdFJpZ2h0RGlhbG9nSGVhZGVyIH0gZnJvbSAnLi4vY29tcG9uZW50cy9MZWZ0UmlnaHREaWFsb2dIZWFkZXInXG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnLi4vY29tcG9uZW50cy9PdmVybGF5J1xuaW1wb3J0IHsgVG9hc3QgfSBmcm9tICcuLi9jb21wb25lbnRzL1RvYXN0J1xuaW1wb3J0IHsgZ2V0RXJyb3JCeVR5cGUgfSBmcm9tICcuLi9oZWxwZXJzL2dldC1lcnJvci1ieS10eXBlJ1xuaW1wb3J0IHR5cGUgeyBSZWFkeVJ1bnRpbWVFcnJvciB9IGZyb20gJy4uL2hlbHBlcnMvZ2V0LWVycm9yLWJ5LXR5cGUnXG5pbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gJy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZSdcbmltcG9ydCB7IENsb3NlSWNvbiB9IGZyb20gJy4uL2ljb25zL0Nsb3NlSWNvbidcbmltcG9ydCB7IFJ1bnRpbWVFcnJvciB9IGZyb20gJy4vUnVudGltZUVycm9yJ1xuaW1wb3J0IHsgVmVyc2lvblN0YWxlbmVzc0luZm8gfSBmcm9tICcuLi9jb21wb25lbnRzL1ZlcnNpb25TdGFsZW5lc3NJbmZvJ1xuaW1wb3J0IHR5cGUgeyBWZXJzaW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZlci9kZXYvcGFyc2UtdmVyc2lvbi1pbmZvJ1xuaW1wb3J0IHsgZ2V0RXJyb3JTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQvbGliL2Vycm9yLXNvdXJjZSdcbmltcG9ydCB7IEhvdGxpbmtlZFRleHQgfSBmcm9tICcuLi9jb21wb25lbnRzL2hvdC1saW5rZWQtdGV4dCdcbmltcG9ydCB7IFBzZXVkb0h0bWxEaWZmIH0gZnJvbSAnLi9SdW50aW1lRXJyb3IvY29tcG9uZW50LXN0YWNrLXBzZXVkby1odG1sJ1xuaW1wb3J0IHtcbiAgdHlwZSBIeWRyYXRpb25FcnJvclN0YXRlLFxuICBnZXRIeWRyYXRpb25XYXJuaW5nVHlwZSxcbn0gZnJvbSAnLi4vaGVscGVycy9oeWRyYXRpb24tZXJyb3ItaW5mbydcbmltcG9ydCB7IE5vZGVqc0luc3BlY3RvckNvcHlCdXR0b24gfSBmcm9tICcuLi9jb21wb25lbnRzL25vZGVqcy1pbnNwZWN0b3InXG5pbXBvcnQgeyBDb3B5QnV0dG9uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb3B5LWJ1dHRvbidcbmltcG9ydCB7XG4gIGdldFVuaGFuZGxlZEVycm9yVHlwZSxcbiAgaXNVbmhhbmRsZWRDb25zb2xlT3JSZWplY3Rpb24sXG59IGZyb20gJy4uL2hlbHBlcnMvY29uc29sZS1lcnJvcidcblxuZXhwb3J0IHR5cGUgU3VwcG9ydGVkRXJyb3JFdmVudCA9IHtcbiAgaWQ6IG51bWJlclxuICBldmVudDogVW5oYW5kbGVkRXJyb3JBY3Rpb24gfCBVbmhhbmRsZWRSZWplY3Rpb25BY3Rpb25cbn1cbmV4cG9ydCB0eXBlIEVycm9yc1Byb3BzID0ge1xuICBpc0FwcERpcjogYm9vbGVhblxuICBlcnJvcnM6IFN1cHBvcnRlZEVycm9yRXZlbnRbXVxuICBpbml0aWFsRGlzcGxheVN0YXRlOiBEaXNwbGF5U3RhdGVcbiAgdmVyc2lvbkluZm8/OiBWZXJzaW9uSW5mb1xuICBoYXNTdGF0aWNJbmRpY2F0b3I/OiBib29sZWFuXG4gIGRlYnVnSW5mbz86IERlYnVnSW5mb1xufVxuXG50eXBlIFJlYWR5RXJyb3JFdmVudCA9IFJlYWR5UnVudGltZUVycm9yXG5cbnR5cGUgRGlzcGxheVN0YXRlID0gJ21pbmltaXplZCcgfCAnZnVsbHNjcmVlbicgfCAnaGlkZGVuJ1xuXG5mdW5jdGlvbiBpc05leHRqc0xpbmsodGV4dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiB0ZXh0LnN0YXJ0c1dpdGgoJ2h0dHBzOi8vbmV4dGpzLm9yZycpXG59XG5cbmZ1bmN0aW9uIEVycm9yRGVzY3JpcHRpb24oe1xuICBlcnJvcixcbiAgaHlkcmF0aW9uV2FybmluZyxcbn06IHtcbiAgZXJyb3I6IEVycm9yXG4gIGh5ZHJhdGlvbldhcm5pbmc6IHN0cmluZyB8IG51bGxcbn0pIHtcbiAgY29uc3QgaXNVbmhhbmRsZWRPclJlcGxheUVycm9yID0gaXNVbmhhbmRsZWRDb25zb2xlT3JSZWplY3Rpb24oZXJyb3IpXG4gIGNvbnN0IHVuaGFuZGxlZEVycm9yVHlwZSA9IGlzVW5oYW5kbGVkT3JSZXBsYXlFcnJvclxuICAgID8gZ2V0VW5oYW5kbGVkRXJyb3JUeXBlKGVycm9yKVxuICAgIDogbnVsbFxuICBjb25zdCBpc0NvbnNvbGVFcnJvclN0cmluZ01lc3NhZ2UgPSB1bmhhbmRsZWRFcnJvclR5cGUgPT09ICdzdHJpbmcnXG4gIC8vIElmIHRoZSBlcnJvciBpczpcbiAgLy8gLSBoeWRyYXRpb24gd2FybmluZ1xuICAvLyAtIGNhcHR1cmVkIGNvbnNvbGUgZXJyb3Igb3IgdW5oYW5kbGVkIHJlamVjdGlvblxuICAvLyBza2lwIGRpc3BsYXlpbmcgdGhlIGVycm9yIG5hbWVcbiAgY29uc3QgdGl0bGUgPVxuICAgIChpc1VuaGFuZGxlZE9yUmVwbGF5RXJyb3IgJiYgaXNDb25zb2xlRXJyb3JTdHJpbmdNZXNzYWdlKSB8fFxuICAgIGh5ZHJhdGlvbldhcm5pbmdcbiAgICAgID8gJydcbiAgICAgIDogZXJyb3IubmFtZSArICc6ICdcblxuICAvLyBJZiBpdCdzIHJlcGxheWVkIGVycm9yLCBkaXNwbGF5IHRoZSBlbnZpcm9ubWVudCBuYW1lXG4gIGNvbnN0IGVudmlyb25tZW50TmFtZSA9XG4gICAgJ2Vudmlyb25tZW50TmFtZScgaW4gZXJyb3IgPyBlcnJvclsnZW52aXJvbm1lbnROYW1lJ10gOiAnJ1xuICBjb25zdCBlbnZQcmVmaXggPSBlbnZpcm9ubWVudE5hbWUgPyBgWyAke2Vudmlyb25tZW50TmFtZX0gXSBgIDogJydcbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2VudlByZWZpeH1cbiAgICAgIHt0aXRsZX1cbiAgICAgIDxIb3RsaW5rZWRUZXh0XG4gICAgICAgIHRleHQ9e2h5ZHJhdGlvbldhcm5pbmcgfHwgZXJyb3IubWVzc2FnZX1cbiAgICAgICAgbWF0Y2hlcj17aXNOZXh0anNMaW5rfVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKVxufVxuXG5mdW5jdGlvbiBnZXRFcnJvclNpZ25hdHVyZShldjogU3VwcG9ydGVkRXJyb3JFdmVudCk6IHN0cmluZyB7XG4gIGNvbnN0IHsgZXZlbnQgfSA9IGV2XG4gIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgIGNhc2UgQUNUSU9OX1VOSEFORExFRF9FUlJPUjpcbiAgICBjYXNlIEFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OOiB7XG4gICAgICByZXR1cm4gYCR7ZXZlbnQucmVhc29uLm5hbWV9Ojoke2V2ZW50LnJlYXNvbi5tZXNzYWdlfTo6JHtldmVudC5yZWFzb24uc3RhY2t9YFxuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICBjb25zdCBfOiBuZXZlciA9IGV2ZW50XG4gIHJldHVybiAnJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRXJyb3JzKHtcbiAgaXNBcHBEaXIsXG4gIGVycm9ycyxcbiAgaW5pdGlhbERpc3BsYXlTdGF0ZSxcbiAgdmVyc2lvbkluZm8sXG4gIGhhc1N0YXRpY0luZGljYXRvcixcbiAgZGVidWdJbmZvLFxufTogRXJyb3JzUHJvcHMpIHtcbiAgY29uc3QgW2xvb2t1cHMsIHNldExvb2t1cHNdID0gdXNlU3RhdGUoXG4gICAge30gYXMgeyBbZXZlbnRJZDogc3RyaW5nXTogUmVhZHlFcnJvckV2ZW50IH1cbiAgKVxuXG4gIGNvbnN0IFtyZWFkeUVycm9ycywgbmV4dEVycm9yXSA9IHVzZU1lbW88XG4gICAgW1JlYWR5RXJyb3JFdmVudFtdLCBTdXBwb3J0ZWRFcnJvckV2ZW50IHwgbnVsbF1cbiAgPigoKSA9PiB7XG4gICAgbGV0IHJlYWR5OiBSZWFkeUVycm9yRXZlbnRbXSA9IFtdXG4gICAgbGV0IG5leHQ6IFN1cHBvcnRlZEVycm9yRXZlbnQgfCBudWxsID0gbnVsbFxuXG4gICAgLy8gRW5zdXJlIGVycm9ycyBhcmUgZGlzcGxheWVkIGluIHRoZSBvcmRlciB0aGV5IG9jY3VycmVkIGluOlxuICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGVycm9ycy5sZW5ndGg7ICsraWR4KSB7XG4gICAgICBjb25zdCBlID0gZXJyb3JzW2lkeF1cbiAgICAgIGNvbnN0IHsgaWQgfSA9IGVcbiAgICAgIGlmIChpZCBpbiBsb29rdXBzKSB7XG4gICAgICAgIHJlYWR5LnB1c2gobG9va3Vwc1tpZF0pXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGZvciBkdXBsaWNhdGUgZXJyb3JzXG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICBjb25zdCBwcmV2ID0gZXJyb3JzW2lkeCAtIDFdXG4gICAgICAgIGlmIChnZXRFcnJvclNpZ25hdHVyZShwcmV2KSA9PT0gZ2V0RXJyb3JTaWduYXR1cmUoZSkpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQgPSBlXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIHJldHVybiBbcmVhZHksIG5leHRdXG4gIH0sIFtlcnJvcnMsIGxvb2t1cHNdKVxuXG4gIGNvbnN0IGlzTG9hZGluZyA9IHVzZU1lbW88Ym9vbGVhbj4oKCkgPT4ge1xuICAgIHJldHVybiByZWFkeUVycm9ycy5sZW5ndGggPCAxICYmIEJvb2xlYW4oZXJyb3JzLmxlbmd0aClcbiAgfSwgW2Vycm9ycy5sZW5ndGgsIHJlYWR5RXJyb3JzLmxlbmd0aF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobmV4dEVycm9yID09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBsZXQgbW91bnRlZCA9IHRydWVcblxuICAgIGdldEVycm9yQnlUeXBlKG5leHRFcnJvciwgaXNBcHBEaXIpLnRoZW4oXG4gICAgICAocmVzb2x2ZWQpID0+IHtcbiAgICAgICAgLy8gV2UgZG9uJ3QgY2FyZSBpZiB0aGUgZGVzaXJlZCBlcnJvciBjaGFuZ2VkIHdoaWxlIHdlIHdlcmUgcmVzb2x2aW5nLFxuICAgICAgICAvLyB0aHVzIHdlJ3JlIG5vdCB0cmFja2luZyBpdCB1c2luZyBhIHJlZi4gT25jZSB0aGUgd29yayBoYXMgYmVlbiBkb25lLFxuICAgICAgICAvLyB3ZSdsbCBzdG9yZSBpdC5cbiAgICAgICAgaWYgKG1vdW50ZWQpIHtcbiAgICAgICAgICBzZXRMb29rdXBzKChtKSA9PiAoeyAuLi5tLCBbcmVzb2x2ZWQuaWRdOiByZXNvbHZlZCB9KSlcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgLy8gVE9ETzogaGFuZGxlIHRoaXMsIHRob3VnaCBhbiBlZGdlIGNhc2VcbiAgICAgIH1cbiAgICApXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbW91bnRlZCA9IGZhbHNlXG4gICAgfVxuICB9LCBbbmV4dEVycm9yLCBpc0FwcERpcl0pXG5cbiAgY29uc3QgW2Rpc3BsYXlTdGF0ZSwgc2V0RGlzcGxheVN0YXRlXSA9XG4gICAgdXNlU3RhdGU8RGlzcGxheVN0YXRlPihpbml0aWFsRGlzcGxheVN0YXRlKVxuICBjb25zdCBbYWN0aXZlSWR4LCBzZXRBY3RpdmVJbmRleF0gPSB1c2VTdGF0ZTxudW1iZXI+KDApXG4gIGNvbnN0IHByZXZpb3VzID0gdXNlQ2FsbGJhY2soXG4gICAgKCkgPT4gc2V0QWN0aXZlSW5kZXgoKHYpID0+IE1hdGgubWF4KDAsIHYgLSAxKSksXG4gICAgW11cbiAgKVxuICBjb25zdCBuZXh0ID0gdXNlQ2FsbGJhY2soXG4gICAgKCkgPT5cbiAgICAgIHNldEFjdGl2ZUluZGV4KCh2KSA9PlxuICAgICAgICBNYXRoLm1heCgwLCBNYXRoLm1pbihyZWFkeUVycm9ycy5sZW5ndGggLSAxLCB2ICsgMSkpXG4gICAgICApLFxuICAgIFtyZWFkeUVycm9ycy5sZW5ndGhdXG4gIClcblxuICBjb25zdCBhY3RpdmVFcnJvciA9IHVzZU1lbW88UmVhZHlFcnJvckV2ZW50IHwgbnVsbD4oXG4gICAgKCkgPT4gcmVhZHlFcnJvcnNbYWN0aXZlSWR4XSA/PyBudWxsLFxuICAgIFthY3RpdmVJZHgsIHJlYWR5RXJyb3JzXVxuICApXG5cbiAgLy8gUmVzZXQgY29tcG9uZW50IHN0YXRlIHdoZW4gdGhlcmUgYXJlIG5vIGVycm9ycyB0byBiZSBkaXNwbGF5ZWQuXG4gIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiwgYnV0IGxldHMgaGFuZGxlIGl0LlxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChlcnJvcnMubGVuZ3RoIDwgMSkge1xuICAgICAgc2V0TG9va3Vwcyh7fSlcbiAgICAgIHNldERpc3BsYXlTdGF0ZSgnaGlkZGVuJylcbiAgICAgIHNldEFjdGl2ZUluZGV4KDApXG4gICAgfVxuICB9LCBbZXJyb3JzLmxlbmd0aF0pXG5cbiAgY29uc3QgbWluaW1pemUgPSB1c2VDYWxsYmFjaygoKSA9PiBzZXREaXNwbGF5U3RhdGUoJ21pbmltaXplZCcpLCBbXSlcbiAgY29uc3QgaGlkZSA9IHVzZUNhbGxiYWNrKCgpID0+IHNldERpc3BsYXlTdGF0ZSgnaGlkZGVuJyksIFtdKVxuICBjb25zdCBmdWxsc2NyZWVuID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0RGlzcGxheVN0YXRlKCdmdWxsc2NyZWVuJyksIFtdKVxuXG4gIC8vIFRoaXMgY29tcG9uZW50IHNob3VsZG4ndCBiZSByZW5kZXJlZCB3aXRoIG5vIGVycm9ycywgYnV0IGlmIGl0IGlzLCBsZXQnc1xuICAvLyBoYW5kbGUgaXQgZ3JhY2VmdWxseSBieSByZW5kZXJpbmcgbm90aGluZy5cbiAgaWYgKGVycm9ycy5sZW5ndGggPCAxIHx8IGFjdGl2ZUVycm9yID09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgaWYgKGlzTG9hZGluZykge1xuICAgIC8vIFRPRE86IGJldHRlciBsb2FkaW5nIHN0YXRlXG4gICAgcmV0dXJuIDxPdmVybGF5IC8+XG4gIH1cblxuICBpZiAoZGlzcGxheVN0YXRlID09PSAnaGlkZGVuJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBpZiAoZGlzcGxheVN0YXRlID09PSAnbWluaW1pemVkJykge1xuICAgIHJldHVybiAoXG4gICAgICA8VG9hc3RcbiAgICAgICAgZGF0YS1uZXh0anMtdG9hc3RcbiAgICAgICAgY2xhc3NOYW1lPXtgbmV4dGpzLXRvYXN0LWVycm9ycy1wYXJlbnQke2hhc1N0YXRpY0luZGljYXRvciA/ICcgbmV4dGpzLWVycm9yLXdpdGgtc3RhdGljJyA6ICcnfWB9XG4gICAgICAgIG9uQ2xpY2s9e2Z1bGxzY3JlZW59XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibmV4dGpzLXRvYXN0LWVycm9yc1wiPlxuICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgd2lkdGg9XCIyNFwiXG4gICAgICAgICAgICBoZWlnaHQ9XCIyNFwiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICBzdHJva2VXaWR0aD1cIjJcIlxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMlwiIGN5PVwiMTJcIiByPVwiMTBcIj48L2NpcmNsZT5cbiAgICAgICAgICAgIDxsaW5lIHgxPVwiMTJcIiB5MT1cIjhcIiB4Mj1cIjEyXCIgeTI9XCIxMlwiPjwvbGluZT5cbiAgICAgICAgICAgIDxsaW5lIHgxPVwiMTJcIiB5MT1cIjE2XCIgeDI9XCIxMi4wMVwiIHkyPVwiMTZcIj48L2xpbmU+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICB7cmVhZHlFcnJvcnMubGVuZ3RofSBlcnJvcntyZWFkeUVycm9ycy5sZW5ndGggPiAxID8gJ3MnIDogJyd9XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGRhdGEtbmV4dGpzLXRvYXN0LWVycm9ycy1oaWRlLWJ1dHRvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibmV4dGpzLXRvYXN0LWhpZGUtYnV0dG9uXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgICAgICBoaWRlKClcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiSGlkZSBFcnJvcnNcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDbG9zZUljb24gLz5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1RvYXN0PlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGVycm9yID0gYWN0aXZlRXJyb3IuZXJyb3JcbiAgY29uc3QgaXNTZXJ2ZXJFcnJvciA9IFsnc2VydmVyJywgJ2VkZ2Utc2VydmVyJ10uaW5jbHVkZXMoXG4gICAgZ2V0RXJyb3JTb3VyY2UoZXJyb3IpIHx8ICcnXG4gIClcbiAgY29uc3QgaXNVbmhhbmRsZWRFcnJvciA9IGlzVW5oYW5kbGVkQ29uc29sZU9yUmVqZWN0aW9uKGVycm9yKVxuICBjb25zdCBlcnJvckRldGFpbHM6IEh5ZHJhdGlvbkVycm9yU3RhdGUgPSAoZXJyb3IgYXMgYW55KS5kZXRhaWxzIHx8IHt9XG4gIGNvbnN0IG5vdGVzID0gZXJyb3JEZXRhaWxzLm5vdGVzIHx8ICcnXG4gIGNvbnN0IFt3YXJuaW5nVGVtcGxhdGUsIHNlcnZlckNvbnRlbnQsIGNsaWVudENvbnRlbnRdID1cbiAgICBlcnJvckRldGFpbHMud2FybmluZyB8fCBbbnVsbCwgJycsICcnXVxuXG4gIGNvbnN0IGh5ZHJhdGlvbkVycm9yVHlwZSA9IGdldEh5ZHJhdGlvbldhcm5pbmdUeXBlKHdhcm5pbmdUZW1wbGF0ZSlcbiAgY29uc3QgaHlkcmF0aW9uV2FybmluZyA9IHdhcm5pbmdUZW1wbGF0ZVxuICAgID8gd2FybmluZ1RlbXBsYXRlXG4gICAgICAgIC5yZXBsYWNlKCclcycsIHNlcnZlckNvbnRlbnQpXG4gICAgICAgIC5yZXBsYWNlKCclcycsIGNsaWVudENvbnRlbnQpXG4gICAgICAgIC5yZXBsYWNlKCclcycsICcnKSAvLyByZW1vdmUgdGhlICVzIGZvciBzdGFja1xuICAgICAgICAucmVwbGFjZSgvJXMkLywgJycpIC8vIElmIHRoZXJlJ3Mgc3RpbGwgYSAlcyBhdCB0aGUgZW5kLCByZW1vdmUgaXRcbiAgICAgICAgLnJlcGxhY2UoL15XYXJuaW5nOiAvLCAnJylcbiAgICAgICAgLnJlcGxhY2UoL15FcnJvcjogLywgJycpXG4gICAgOiBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8T3ZlcmxheT5cbiAgICAgIDxEaWFsb2dcbiAgICAgICAgdHlwZT1cImVycm9yXCJcbiAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCJcbiAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjXCJcbiAgICAgICAgb25DbG9zZT17aXNTZXJ2ZXJFcnJvciA/IHVuZGVmaW5lZCA6IG1pbmltaXplfVxuICAgICAgPlxuICAgICAgICA8RGlhbG9nQ29udGVudD5cbiAgICAgICAgICA8RGlhbG9nSGVhZGVyIGNsYXNzTmFtZT1cIm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlclwiPlxuICAgICAgICAgICAgPExlZnRSaWdodERpYWxvZ0hlYWRlclxuICAgICAgICAgICAgICBwcmV2aW91cz17YWN0aXZlSWR4ID4gMCA/IHByZXZpb3VzIDogbnVsbH1cbiAgICAgICAgICAgICAgbmV4dD17YWN0aXZlSWR4IDwgcmVhZHlFcnJvcnMubGVuZ3RoIC0gMSA/IG5leHQgOiBudWxsfVxuICAgICAgICAgICAgICBjbG9zZT17aXNTZXJ2ZXJFcnJvciA/IHVuZGVmaW5lZCA6IG1pbmltaXplfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c21hbGw+XG4gICAgICAgICAgICAgICAgPHNwYW4+e2FjdGl2ZUlkeCArIDF9PC9zcGFuPiBvZnsnICd9XG4gICAgICAgICAgICAgICAgPHNwYW4gZGF0YS1uZXh0anMtZGlhbG9nLWhlYWRlci10b3RhbC1jb3VudD5cbiAgICAgICAgICAgICAgICAgIHtyZWFkeUVycm9ycy5sZW5ndGh9XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIHsnIGVycm9yJ31cbiAgICAgICAgICAgICAgICB7cmVhZHlFcnJvcnMubGVuZ3RoIDwgMiA/ICcnIDogJ3MnfVxuICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICA8VmVyc2lvblN0YWxlbmVzc0luZm8gdmVyc2lvbkluZm89e3ZlcnNpb25JbmZvfSAvPlxuICAgICAgICAgICAgPC9MZWZ0UmlnaHREaWFsb2dIZWFkZXI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19lcnJvcl90aXRsZVwiPlxuICAgICAgICAgICAgICA8aDFcbiAgICAgICAgICAgICAgICBpZD1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19sYWJlbFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX2xhYmVsXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtpc1NlcnZlckVycm9yXG4gICAgICAgICAgICAgICAgICA/ICdTZXJ2ZXIgRXJyb3InXG4gICAgICAgICAgICAgICAgICA6IGlzVW5oYW5kbGVkRXJyb3JcbiAgICAgICAgICAgICAgICAgICAgPyAnQ29uc29sZSBFcnJvcidcbiAgICAgICAgICAgICAgICAgICAgOiAnVW5oYW5kbGVkIFJ1bnRpbWUgRXJyb3InfVxuICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICA8Q29weUJ1dHRvblxuICAgICAgICAgICAgICAgICAgZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktc3RhY2tcbiAgICAgICAgICAgICAgICAgIGFjdGlvbkxhYmVsPVwiQ29weSBlcnJvciBzdGFja1wiXG4gICAgICAgICAgICAgICAgICBzdWNjZXNzTGFiZWw9XCJDb3BpZWRcIlxuICAgICAgICAgICAgICAgICAgY29udGVudD17ZXJyb3Iuc3RhY2sgfHwgJyd9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IWVycm9yLnN0YWNrfVxuICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICA8Tm9kZWpzSW5zcGVjdG9yQ29weUJ1dHRvblxuICAgICAgICAgICAgICAgICAgZGV2dG9vbHNGcm9udGVuZFVybD17ZGVidWdJbmZvPy5kZXZ0b29sc0Zyb250ZW5kVXJsfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgaWQ9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfZGVzY1wiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19kZXNjXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEVycm9yRGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICBlcnJvcj17ZXJyb3J9XG4gICAgICAgICAgICAgICAgaHlkcmF0aW9uV2FybmluZz17aHlkcmF0aW9uV2FybmluZ31cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIHtub3RlcyA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8cFxuICAgICAgICAgICAgICAgICAgaWQ9XCJuZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX25vdGVzXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbm90ZXNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHtub3Rlc31cbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICB7aHlkcmF0aW9uV2FybmluZyA/IChcbiAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICBpZD1cIm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbGlua1wiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19saW5rXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxIb3RsaW5rZWRUZXh0IHRleHQ9XCJTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3JlYWN0LWh5ZHJhdGlvbi1lcnJvclwiIC8+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgICB7aHlkcmF0aW9uV2FybmluZyAmJlxuICAgICAgICAgICAgKGFjdGl2ZUVycm9yLmNvbXBvbmVudFN0YWNrRnJhbWVzPy5sZW5ndGggfHxcbiAgICAgICAgICAgICAgISFlcnJvckRldGFpbHMucmVhY3RPdXRwdXRDb21wb25lbnREaWZmKSA/IChcbiAgICAgICAgICAgICAgPFBzZXVkb0h0bWxEaWZmXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibmV4dGpzX19jb250YWluZXJfZXJyb3JzX19jb21wb25lbnQtc3RhY2tcIlxuICAgICAgICAgICAgICAgIGh5ZHJhdGlvbk1pc21hdGNoVHlwZT17aHlkcmF0aW9uRXJyb3JUeXBlfVxuICAgICAgICAgICAgICAgIGNvbXBvbmVudFN0YWNrRnJhbWVzPXthY3RpdmVFcnJvci5jb21wb25lbnRTdGFja0ZyYW1lcyB8fCBbXX1cbiAgICAgICAgICAgICAgICBmaXJzdENvbnRlbnQ9e3NlcnZlckNvbnRlbnR9XG4gICAgICAgICAgICAgICAgc2Vjb25kQ29udGVudD17Y2xpZW50Q29udGVudH1cbiAgICAgICAgICAgICAgICByZWFjdE91dHB1dENvbXBvbmVudERpZmY9e2Vycm9yRGV0YWlscy5yZWFjdE91dHB1dENvbXBvbmVudERpZmZ9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtpc1NlcnZlckVycm9yID8gKFxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxzbWFsbD5cbiAgICAgICAgICAgICAgICAgIFRoaXMgZXJyb3IgaGFwcGVuZWQgd2hpbGUgZ2VuZXJhdGluZyB0aGUgcGFnZS4gQW55IGNvbnNvbGVcbiAgICAgICAgICAgICAgICAgIGxvZ3Mgd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHRlcm1pbmFsIHdpbmRvdy5cbiAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiB1bmRlZmluZWR9XG4gICAgICAgICAgPC9EaWFsb2dIZWFkZXI+XG4gICAgICAgICAgPERpYWxvZ0JvZHkgY2xhc3NOYW1lPVwibmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keVwiPlxuICAgICAgICAgICAgPFJ1bnRpbWVFcnJvciBrZXk9e2FjdGl2ZUVycm9yLmlkLnRvU3RyaW5nKCl9IGVycm9yPXthY3RpdmVFcnJvcn0gLz5cbiAgICAgICAgICA8L0RpYWxvZ0JvZHk+XG4gICAgICAgIDwvRGlhbG9nQ29udGVudD5cbiAgICAgIDwvRGlhbG9nPlxuICAgIDwvT3ZlcmxheT5cbiAgKVxufVxuXG5leHBvcnQgY29uc3Qgc3R5bGVzID0gY3NzYFxuICAubmV4dGpzLWVycm9yLXdpdGgtc3RhdGljIHtcbiAgICBib3R0b206IGNhbGModmFyKC0tc2l6ZS1nYXAtZG91YmxlKSAqIDQuNSk7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1oZWFkZXIgPiBoMSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1zaXplLWZvbnQtYmlnKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tc2l6ZS1mb250LWJpZ2dlcik7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbWFyZ2luOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKiAxLjUpIDA7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRpdGxlLWgxKTtcbiAgfVxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtaGVhZGVyIHNtYWxsIHtcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMSk7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBzbWFsbCA+IHNwYW4ge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciBwIHtcbiAgICBmb250LXNpemU6IHZhcigtLXNpemUtZm9udC1zbWFsbCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLXNpemUtZm9udC1iaWcpO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgfVxuICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX2Rlc2Mge1xuICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXN0YWNrLW1vbm9zcGFjZSk7XG4gICAgcGFkZGluZzogdmFyKC0tc2l6ZS1nYXApIHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gICAgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCB2YXIoLS1jb2xvci10ZXh0LWNvbG9yLXJlZC0xKTtcbiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zaXplLWdhcCk7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRleHQtY29sb3ItcmVkLTEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXRleHQtYmFja2dyb3VuZC1yZWQtMSk7XG4gIH1cbiAgcC5uZXh0anNfX2NvbnRhaW5lcl9lcnJvcnNfX2xpbmsge1xuICAgIG1hcmdpbjogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKSBhdXRvO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWNvbG9yLXJlZC0xKTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgfVxuICBwLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fbm90ZXMge1xuICAgIG1hcmdpbjogdmFyKC0tc2l6ZS1nYXAtZG91YmxlKSBhdXRvO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1zdGFjay1ub3Rlcyk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IGRpdiA+IHNtYWxsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLXRvcDogdmFyKC0tc2l6ZS1nYXAtaGFsZik7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlciA+IHAgPiBhIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICAubmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtYm9keSA+IGgyOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKHZhcigtLXNpemUtZ2FwLWRvdWJsZSkgKyB2YXIoLS1zaXplLWdhcCkpO1xuICB9XG4gIC5uZXh0anMtY29udGFpbmVyLWVycm9ycy1ib2R5ID4gaDIge1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10aXRsZS1jb2xvcik7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXApO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LWJpZyk7XG4gIH1cbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19fY29tcG9uZW50LXN0YWNrIHtcbiAgICBwYWRkaW5nOiAxMnB4IDMycHg7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktZmcpO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWFuc2ktYmcpO1xuICB9XG4gIC5uZXh0anMtdG9hc3QtZXJyb3JzLXBhcmVudCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gIH1cbiAgLm5leHRqcy10b2FzdC1lcnJvcnMtcGFyZW50OmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG4gIH1cbiAgLm5leHRqcy10b2FzdC1lcnJvcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cbiAgLm5leHRqcy10b2FzdC1lcnJvcnMgPiBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc2l6ZS1nYXApO1xuICB9XG4gIC5uZXh0anMtdG9hc3QtaGlkZS1idXR0b24ge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaXplLWdhcC10cmlwbGUpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZSk7XG4gICAgcGFkZGluZzogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMjVzIGVhc2U7XG4gICAgb3BhY2l0eTogMC43O1xuICB9XG4gIC5uZXh0anMtdG9hc3QtaGlkZS1idXR0b246aG92ZXIge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbiAgLm5leHRqcy1jb250YWluZXItZXJyb3JzLWhlYWRlclxuICAgID4gLm5leHRqcy1jb250YWluZXItYnVpbGQtZXJyb3ItdmVyc2lvbi1zdGF0dXMge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gIH1cbiAgLm5leHRqc19fY29udGFpbmVyX2Vycm9yc19pbnNwZWN0X2NvcHlfYnV0dG9uIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktYnJpZ2h0LXdoaXRlKTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc2l6ZS1nYXApO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4yNXMgZWFzZTtcbiAgfVxuICAubmV4dGpzX19jb250YWluZXJfZXJyb3JzX19lcnJvcl90aXRsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgfVxuICAubmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1pbnNwZWN0LWxpbmssXG4gIC5uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWluc3BlY3QtbGluazpob3ZlciB7XG4gICAgbWFyZ2luOiAwIDhweDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgfVxuYFxuIl0sIm5hbWVzIjpbIkVycm9ycyIsInN0eWxlcyIsImlzTmV4dGpzTGluayIsInRleHQiLCJzdGFydHNXaXRoIiwiRXJyb3JEZXNjcmlwdGlvbiIsImVycm9yIiwiaHlkcmF0aW9uV2FybmluZyIsImlzVW5oYW5kbGVkT3JSZXBsYXlFcnJvciIsImlzVW5oYW5kbGVkQ29uc29sZU9yUmVqZWN0aW9uIiwidW5oYW5kbGVkRXJyb3JUeXBlIiwiZ2V0VW5oYW5kbGVkRXJyb3JUeXBlIiwiaXNDb25zb2xlRXJyb3JTdHJpbmdNZXNzYWdlIiwidGl0bGUiLCJuYW1lIiwiZW52aXJvbm1lbnROYW1lIiwiZW52UHJlZml4IiwiSG90bGlua2VkVGV4dCIsIm1lc3NhZ2UiLCJtYXRjaGVyIiwiZ2V0RXJyb3JTaWduYXR1cmUiLCJldiIsImV2ZW50IiwidHlwZSIsIkFDVElPTl9VTkhBTkRMRURfRVJST1IiLCJBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTiIsInJlYXNvbiIsInN0YWNrIiwiXyIsImlzQXBwRGlyIiwiZXJyb3JzIiwiaW5pdGlhbERpc3BsYXlTdGF0ZSIsInZlcnNpb25JbmZvIiwiaGFzU3RhdGljSW5kaWNhdG9yIiwiZGVidWdJbmZvIiwiYWN0aXZlRXJyb3IiLCJsb29rdXBzIiwic2V0TG9va3VwcyIsInVzZVN0YXRlIiwicmVhZHlFcnJvcnMiLCJuZXh0RXJyb3IiLCJ1c2VNZW1vIiwicmVhZHkiLCJuZXh0IiwiaWR4IiwibGVuZ3RoIiwiZSIsImlkIiwicHVzaCIsInByZXYiLCJpc0xvYWRpbmciLCJCb29sZWFuIiwidXNlRWZmZWN0IiwibW91bnRlZCIsImdldEVycm9yQnlUeXBlIiwidGhlbiIsInJlc29sdmVkIiwibSIsImRpc3BsYXlTdGF0ZSIsInNldERpc3BsYXlTdGF0ZSIsImFjdGl2ZUlkeCIsInNldEFjdGl2ZUluZGV4IiwicHJldmlvdXMiLCJ1c2VDYWxsYmFjayIsInYiLCJNYXRoIiwibWF4IiwibWluIiwibWluaW1pemUiLCJoaWRlIiwiZnVsbHNjcmVlbiIsIk92ZXJsYXkiLCJUb2FzdCIsImRhdGEtbmV4dGpzLXRvYXN0IiwiY2xhc3NOYW1lIiwib25DbGljayIsImRpdiIsInN2ZyIsInhtbG5zIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsInN0cm9rZSIsInN0cm9rZVdpZHRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwiY2lyY2xlIiwiY3giLCJjeSIsInIiLCJsaW5lIiwieDEiLCJ5MSIsIngyIiwieTIiLCJzcGFuIiwiYnV0dG9uIiwiZGF0YS1uZXh0anMtdG9hc3QtZXJyb3JzLWhpZGUtYnV0dG9uIiwic3RvcFByb3BhZ2F0aW9uIiwiYXJpYS1sYWJlbCIsIkNsb3NlSWNvbiIsImlzU2VydmVyRXJyb3IiLCJpbmNsdWRlcyIsImdldEVycm9yU291cmNlIiwiaXNVbmhhbmRsZWRFcnJvciIsImVycm9yRGV0YWlscyIsImRldGFpbHMiLCJub3RlcyIsIndhcm5pbmdUZW1wbGF0ZSIsInNlcnZlckNvbnRlbnQiLCJjbGllbnRDb250ZW50Iiwid2FybmluZyIsImh5ZHJhdGlvbkVycm9yVHlwZSIsImdldEh5ZHJhdGlvbldhcm5pbmdUeXBlIiwicmVwbGFjZSIsIkRpYWxvZyIsImFyaWEtbGFiZWxsZWRieSIsImFyaWEtZGVzY3JpYmVkYnkiLCJvbkNsb3NlIiwidW5kZWZpbmVkIiwiRGlhbG9nQ29udGVudCIsIkRpYWxvZ0hlYWRlciIsIkxlZnRSaWdodERpYWxvZ0hlYWRlciIsImNsb3NlIiwic21hbGwiLCJkYXRhLW5leHRqcy1kaWFsb2ctaGVhZGVyLXRvdGFsLWNvdW50IiwiVmVyc2lvblN0YWxlbmVzc0luZm8iLCJoMSIsIkNvcHlCdXR0b24iLCJkYXRhLW5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1zdGFjayIsImFjdGlvbkxhYmVsIiwic3VjY2Vzc0xhYmVsIiwiY29udGVudCIsImRpc2FibGVkIiwiTm9kZWpzSW5zcGVjdG9yQ29weUJ1dHRvbiIsImRldnRvb2xzRnJvbnRlbmRVcmwiLCJwIiwiY29tcG9uZW50U3RhY2tGcmFtZXMiLCJyZWFjdE91dHB1dENvbXBvbmVudERpZmYiLCJQc2V1ZG9IdG1sRGlmZiIsImh5ZHJhdGlvbk1pc21hdGNoVHlwZSIsImZpcnN0Q29udGVudCIsInNlY29uZENvbnRlbnQiLCJEaWFsb2dCb2R5IiwiUnVudGltZUVycm9yIiwidG9TdHJpbmciLCJjc3MiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js": +/*!**********************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js ***! + \**********************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CallStackFrame\", ({\n enumerable: true,\n get: function() {\n return CallStackFrame;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _stackframe = __webpack_require__(/*! ../../helpers/stack-frame */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js\");\nconst _useopenineditor = __webpack_require__(/*! ../../helpers/use-open-in-editor */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\");\nconst _hotlinkedtext = __webpack_require__(/*! ../../components/hot-linked-text */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js\");\nconst CallStackFrame = function CallStackFrame(param) {\n let { frame } = param;\n var _frame_originalStackFrame;\n // TODO: ability to expand resolved frames\n // TODO: render error or external indicator\n const f = (_frame_originalStackFrame = frame.originalStackFrame) != null ? _frame_originalStackFrame : frame.sourceStackFrame;\n const hasSource = Boolean(frame.originalCodeFrame);\n const open = (0, _useopenineditor.useOpenInEditor)(hasSource ? {\n file: f.file,\n lineNumber: f.lineNumber,\n column: f.column\n } : undefined);\n // Format method to strip out the webpack layer prefix.\n // e.g. (app-pages-browser)/./app/page.tsx -> ./app/page.tsx\n const formattedMethod = f.methodName.replace(/^\\([\\w-]+\\)\\//, '');\n // Formatted file source could be empty. e.g. <anonymous> will be formatted to empty string,\n // we'll skip rendering the frame in this case.\n const fileSource = (0, _stackframe.getFrameSource)(f);\n if (!fileSource) {\n return null;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-call-stack-frame\": true,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h3\", {\n \"data-nextjs-frame-expanded\": !frame.ignored,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hotlinkedtext.HotlinkedText, {\n text: formattedMethod\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-has-source\": hasSource ? 'true' : undefined,\n \"data-no-source\": hasSource ? undefined : 'true',\n tabIndex: hasSource ? 10 : undefined,\n role: hasSource ? 'link' : undefined,\n onClick: open,\n title: hasSource ? 'Click to open in your editor' : undefined,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n children: fileSource\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"polyline\", {\n points: \"15 3 21 3 21 9\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"line\", {\n x1: \"10\",\n y1: \"14\",\n x2: \"21\",\n y2: \"3\"\n })\n ]\n })\n ]\n })\n ]\n });\n};\n_c = CallStackFrame;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=CallStackFrame.js.map\nvar _c;\n$RefreshReg$(_c, \"CallStackFrame\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9SdW50aW1lRXJyb3IvQ2FsbFN0YWNrRnJhbWUuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFRYUE7OztlQUFBQTs7Ozt3Q0FKTjs2Q0FDeUI7MkNBQ0Y7QUFFdkIsdUJBRUYsU0FBU0EsZUFBZSxLQUFTO0lBQVQsTUFBRUMsS0FBSyxFQUFFLEdBQVQ7UUFJTEE7SUFIdEIsMENBQTBDO0lBQzFDLDJDQUEyQztJQUUzQyxNQUFNQyxJQUFnQkQsNkJBQUFBLE1BQU1FLGtCQUFBQSxLQUFrQixPQUF4QkYsNEJBQTRCQSxNQUFNRyxnQkFBZ0I7SUFDeEUsTUFBTUMsWUFBWUMsUUFBUUwsTUFBTU0saUJBQWlCO0lBQ2pELE1BQU1DLE9BQU9DLENBQUFBLEdBQUFBLGlCQUFBQSxlQUFBQSxFQUNYSixZQUNJO1FBQ0VLLE1BQU1SLEVBQUVRLElBQUk7UUFDWkMsWUFBWVQsRUFBRVMsVUFBVTtRQUN4QkMsUUFBUVYsRUFBRVUsTUFBTTtJQUNsQixJQUNBQztJQUdOLHVEQUF1RDtJQUN2RCw0REFBNEQ7SUFDNUQsTUFBTUMsa0JBQWtCWixFQUFFYSxVQUFVLENBQUNDLE9BQU8sQ0FBQyxpQkFBaUI7SUFFOUQsNEZBQTRGO0lBQzVGLCtDQUErQztJQUMvQyxNQUFNQyxhQUFhQyxDQUFBQSxHQUFBQSxZQUFBQSxjQUFBQSxFQUFlaEI7SUFDbEMsSUFBSSxDQUFDZSxZQUFZO1FBQ2YsT0FBTztJQUNUO0lBRUEsT0FDRSxXQURGLEdBQ0Usc0JBQUNFLE9BQUFBO1FBQUlDLDhCQUE0Qjs7MEJBQy9CLHFCQUFDQyxNQUFBQTtnQkFBR0MsOEJBQTRCLENBQUNyQixNQUFNc0IsT0FBTzswQkFDNUMsbUNBQUNDLGVBQUFBLGFBQWE7b0JBQUNDLE1BQU1YOzs7MEJBRXZCLHNCQUFDSyxPQUFBQTtnQkFDQ08sbUJBQWlCckIsWUFBWSxTQUFTUTtnQkFDdENjLGtCQUFnQnRCLFlBQVlRLFlBQVk7Z0JBQ3hDZSxVQUFVdkIsWUFBWSxLQUFLUTtnQkFDM0JnQixNQUFNeEIsWUFBWSxTQUFTUTtnQkFDM0JpQixTQUFTdEI7Z0JBQ1R1QixPQUFPMUIsWUFBWSxpQ0FBaUNROztrQ0FFcEQscUJBQUNtQixRQUFBQTtrQ0FBTWY7O2tDQUNQLHNCQUFDZ0IsT0FBQUE7d0JBQ0NDLE9BQU07d0JBQ05DLFNBQVE7d0JBQ1JDLE1BQUs7d0JBQ0xDLFFBQU87d0JBQ1BDLGFBQVk7d0JBQ1pDLGVBQWM7d0JBQ2RDLGdCQUFlOzswQ0FFZixxQkFBQ0MsUUFBQUE7Z0NBQUtDLEdBQUU7OzBDQUNSLHFCQUFDQyxZQUFBQTtnQ0FBU0MsUUFBTzs7MENBQ2pCLHFCQUFDQyxRQUFBQTtnQ0FBS0MsSUFBRztnQ0FBS0MsSUFBRztnQ0FBS0MsSUFBRztnQ0FBS0MsSUFBRzs7Ozs7Ozs7QUFLM0M7S0EzRGFqRCIsInNvdXJjZXMiOlsiL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9jb250YWluZXIvUnVudGltZUVycm9yL0NhbGxTdGFja0ZyYW1lLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFN0YWNrRnJhbWUgfSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvc3RhY2t0cmFjZS1wYXJzZXInXG5pbXBvcnQge1xuICBnZXRGcmFtZVNvdXJjZSxcbiAgdHlwZSBPcmlnaW5hbFN0YWNrRnJhbWUsXG59IGZyb20gJy4uLy4uL2hlbHBlcnMvc3RhY2stZnJhbWUnXG5pbXBvcnQgeyB1c2VPcGVuSW5FZGl0b3IgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3VzZS1vcGVuLWluLWVkaXRvcidcbmltcG9ydCB7IEhvdGxpbmtlZFRleHQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2hvdC1saW5rZWQtdGV4dCdcblxuZXhwb3J0IGNvbnN0IENhbGxTdGFja0ZyYW1lOiBSZWFjdC5GQzx7XG4gIGZyYW1lOiBPcmlnaW5hbFN0YWNrRnJhbWVcbn0+ID0gZnVuY3Rpb24gQ2FsbFN0YWNrRnJhbWUoeyBmcmFtZSB9KSB7XG4gIC8vIFRPRE86IGFiaWxpdHkgdG8gZXhwYW5kIHJlc29sdmVkIGZyYW1lc1xuICAvLyBUT0RPOiByZW5kZXIgZXJyb3Igb3IgZXh0ZXJuYWwgaW5kaWNhdG9yXG5cbiAgY29uc3QgZjogU3RhY2tGcmFtZSA9IGZyYW1lLm9yaWdpbmFsU3RhY2tGcmFtZSA/PyBmcmFtZS5zb3VyY2VTdGFja0ZyYW1lXG4gIGNvbnN0IGhhc1NvdXJjZSA9IEJvb2xlYW4oZnJhbWUub3JpZ2luYWxDb2RlRnJhbWUpXG4gIGNvbnN0IG9wZW4gPSB1c2VPcGVuSW5FZGl0b3IoXG4gICAgaGFzU291cmNlXG4gICAgICA/IHtcbiAgICAgICAgICBmaWxlOiBmLmZpbGUsXG4gICAgICAgICAgbGluZU51bWJlcjogZi5saW5lTnVtYmVyLFxuICAgICAgICAgIGNvbHVtbjogZi5jb2x1bW4sXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkXG4gIClcblxuICAvLyBGb3JtYXQgbWV0aG9kIHRvIHN0cmlwIG91dCB0aGUgd2VicGFjayBsYXllciBwcmVmaXguXG4gIC8vIGUuZy4gKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9wYWdlLnRzeCAtPiAuL2FwcC9wYWdlLnRzeFxuICBjb25zdCBmb3JtYXR0ZWRNZXRob2QgPSBmLm1ldGhvZE5hbWUucmVwbGFjZSgvXlxcKFtcXHctXStcXClcXC8vLCAnJylcblxuICAvLyBGb3JtYXR0ZWQgZmlsZSBzb3VyY2UgY291bGQgYmUgZW1wdHkuIGUuZy4gPGFub255bW91cz4gd2lsbCBiZSBmb3JtYXR0ZWQgdG8gZW1wdHkgc3RyaW5nLFxuICAvLyB3ZSdsbCBza2lwIHJlbmRlcmluZyB0aGUgZnJhbWUgaW4gdGhpcyBjYXNlLlxuICBjb25zdCBmaWxlU291cmNlID0gZ2V0RnJhbWVTb3VyY2UoZilcbiAgaWYgKCFmaWxlU291cmNlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lPlxuICAgICAgPGgzIGRhdGEtbmV4dGpzLWZyYW1lLWV4cGFuZGVkPXshZnJhbWUuaWdub3JlZH0+XG4gICAgICAgIDxIb3RsaW5rZWRUZXh0IHRleHQ9e2Zvcm1hdHRlZE1ldGhvZH0gLz5cbiAgICAgIDwvaDM+XG4gICAgICA8ZGl2XG4gICAgICAgIGRhdGEtaGFzLXNvdXJjZT17aGFzU291cmNlID8gJ3RydWUnIDogdW5kZWZpbmVkfVxuICAgICAgICBkYXRhLW5vLXNvdXJjZT17aGFzU291cmNlID8gdW5kZWZpbmVkIDogJ3RydWUnfVxuICAgICAgICB0YWJJbmRleD17aGFzU291cmNlID8gMTAgOiB1bmRlZmluZWR9XG4gICAgICAgIHJvbGU9e2hhc1NvdXJjZSA/ICdsaW5rJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgb25DbGljaz17b3Blbn1cbiAgICAgICAgdGl0bGU9e2hhc1NvdXJjZSA/ICdDbGljayB0byBvcGVuIGluIHlvdXIgZWRpdG9yJyA6IHVuZGVmaW5lZH1cbiAgICAgID5cbiAgICAgICAgPHNwYW4+e2ZpbGVTb3VyY2V9PC9zcGFuPlxuICAgICAgICA8c3ZnXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgc3Ryb2tlV2lkdGg9XCIyXCJcbiAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHBhdGggZD1cIk0xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2XCI+PC9wYXRoPlxuICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCIxNSAzIDIxIDMgMjEgOVwiPjwvcG9seWxpbmU+XG4gICAgICAgICAgPGxpbmUgeDE9XCIxMFwiIHkxPVwiMTRcIiB4Mj1cIjIxXCIgeTI9XCIzXCI+PC9saW5lPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG4iXSwibmFtZXMiOlsiQ2FsbFN0YWNrRnJhbWUiLCJmcmFtZSIsImYiLCJvcmlnaW5hbFN0YWNrRnJhbWUiLCJzb3VyY2VTdGFja0ZyYW1lIiwiaGFzU291cmNlIiwiQm9vbGVhbiIsIm9yaWdpbmFsQ29kZUZyYW1lIiwib3BlbiIsInVzZU9wZW5JbkVkaXRvciIsImZpbGUiLCJsaW5lTnVtYmVyIiwiY29sdW1uIiwidW5kZWZpbmVkIiwiZm9ybWF0dGVkTWV0aG9kIiwibWV0aG9kTmFtZSIsInJlcGxhY2UiLCJmaWxlU291cmNlIiwiZ2V0RnJhbWVTb3VyY2UiLCJkaXYiLCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lIiwiaDMiLCJkYXRhLW5leHRqcy1mcmFtZS1leHBhbmRlZCIsImlnbm9yZWQiLCJIb3RsaW5rZWRUZXh0IiwidGV4dCIsImRhdGEtaGFzLXNvdXJjZSIsImRhdGEtbm8tc291cmNlIiwidGFiSW5kZXgiLCJyb2xlIiwib25DbGljayIsInRpdGxlIiwic3BhbiIsInN2ZyIsInhtbG5zIiwidmlld0JveCIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsInBhdGgiLCJkIiwicG9seWxpbmUiLCJwb2ludHMiLCJsaW5lIiwieDEiLCJ5MSIsIngyIiwieTIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/component-stack-pseudo-html.js": +/*!***********************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/component-stack-pseudo-html.js ***! + \***********************************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"PseudoHtmlDiff\", ({\n enumerable: true,\n get: function() {\n return PseudoHtmlDiff;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nconst _CollapseIcon = __webpack_require__(/*! ../../icons/CollapseIcon */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js\");\nfunction getAdjacentProps(isAdj) {\n return {\n 'data-nextjs-container-errors-pseudo-html--tag-adjacent': isAdj\n };\n}\nfunction PseudoHtmlDiff(param) {\n let { componentStackFrames, firstContent, secondContent, hydrationMismatchType, reactOutputComponentDiff, ...props } = param;\n const isHtmlTagsWarning = hydrationMismatchType === 'tag';\n const isReactHydrationDiff = !!reactOutputComponentDiff;\n // For text mismatch, mismatched text will take 2 rows, so we display 4 rows of component stack\n const MAX_NON_COLLAPSED_FRAMES = isHtmlTagsWarning ? 6 : 4;\n const [isHtmlCollapsed, toggleCollapseHtml] = (0, _react.useState)(true);\n const htmlComponents = (0, _react.useMemo)(()=>{\n const componentStacks = [];\n // React 19 unified mismatch\n if (isReactHydrationDiff) {\n let currentComponentIndex = componentStackFrames.length - 1;\n const reactComponentDiffLines = reactOutputComponentDiff.split('\\n');\n const diffHtmlStack = [];\n reactComponentDiffLines.forEach((line, index)=>{\n let trimmedLine = line.trim();\n const isDiffLine = trimmedLine[0] === '+' || trimmedLine[0] === '-';\n const spaces = ' '.repeat(Math.max(componentStacks.length * 2, 1));\n if (isDiffLine) {\n const sign = trimmedLine[0];\n trimmedLine = trimmedLine.slice(1).trim() // trim spaces after sign\n ;\n diffHtmlStack.push(/*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--diff\": sign === '+' ? 'add' : 'remove',\n children: [\n sign,\n spaces,\n trimmedLine,\n '\\n'\n ]\n }, 'comp-diff' + index));\n } else if (currentComponentIndex >= 0) {\n const isUserLandComponent = trimmedLine.startsWith('<' + componentStackFrames[currentComponentIndex].component);\n // If it's matched userland component or it's ... we will keep the component stack in diff\n if (isUserLandComponent || trimmedLine === '...') {\n currentComponentIndex--;\n componentStacks.push(/*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n spaces,\n trimmedLine,\n '\\n'\n ]\n }, 'comp-diff' + index));\n } else if (!isHtmlCollapsed) {\n componentStacks.push(/*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n spaces,\n trimmedLine,\n '\\n'\n ]\n }, 'comp-diff' + index));\n }\n } else if (!isHtmlCollapsed) {\n // In general, if it's not collapsed, show the whole diff\n componentStacks.push(/*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n spaces,\n trimmedLine,\n '\\n'\n ]\n }, 'comp-diff' + index));\n }\n });\n return componentStacks.concat(diffHtmlStack);\n }\n const nestedHtmlStack = [];\n const tagNames = isHtmlTagsWarning ? [\n firstContent.replace(/<|>/g, ''),\n secondContent.replace(/<|>/g, '')\n ] : [];\n let lastText = '';\n const componentStack = componentStackFrames.map((frame)=>frame.component).reverse();\n // [child index, parent index]\n const matchedIndex = [\n -1,\n -1\n ];\n if (isHtmlTagsWarning) {\n // Reverse search for the child tag\n for(let i = componentStack.length - 1; i >= 0; i--){\n if (componentStack[i] === tagNames[0]) {\n matchedIndex[0] = i;\n break;\n }\n }\n // Start searching parent tag from child tag above\n for(let i = matchedIndex[0] - 1; i >= 0; i--){\n if (componentStack[i] === tagNames[1]) {\n matchedIndex[1] = i;\n break;\n }\n }\n }\n componentStack.forEach((component, index, componentList)=>{\n const spaces = ' '.repeat(nestedHtmlStack.length * 2);\n // When component is the server or client tag name, highlight it\n const isHighlightedTag = isHtmlTagsWarning ? index === matchedIndex[0] || index === matchedIndex[1] : tagNames.includes(component);\n const isAdjacentTag = isHighlightedTag || Math.abs(index - matchedIndex[0]) <= 1 || Math.abs(index - matchedIndex[1]) <= 1;\n const isLastFewFrames = !isHtmlTagsWarning && index >= componentList.length - 6;\n const adjProps = getAdjacentProps(isAdjacentTag);\n if (isHtmlTagsWarning && isAdjacentTag || isLastFewFrames) {\n const codeLine = /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"span\", {\n children: [\n spaces,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n ...adjProps,\n ...isHighlightedTag ? {\n 'data-nextjs-container-errors-pseudo-html--tag-error': true\n } : undefined,\n children: \"<\" + component + \">\\n\"\n })\n ]\n });\n lastText = component;\n const wrappedCodeLine = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.Fragment, {\n children: [\n codeLine,\n isHighlightedTag && /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--hint\": true,\n children: spaces + '^'.repeat(component.length + 2) + '\\n'\n })\n ]\n }, nestedHtmlStack.length);\n nestedHtmlStack.push(wrappedCodeLine);\n } else {\n if (nestedHtmlStack.length >= MAX_NON_COLLAPSED_FRAMES && isHtmlCollapsed) {\n return;\n }\n if (!isHtmlCollapsed || isLastFewFrames) {\n nestedHtmlStack.push(/*#__PURE__*/ (0, _react.createElement)(\"span\", {\n ...adjProps,\n key: nestedHtmlStack.length,\n children: [\n spaces,\n '<' + component + '>\\n'\n ]\n }));\n } else if (isHtmlCollapsed && lastText !== '...') {\n lastText = '...';\n nestedHtmlStack.push(/*#__PURE__*/ (0, _react.createElement)(\"span\", {\n ...adjProps,\n key: nestedHtmlStack.length,\n children: [\n spaces,\n '...\\n'\n ]\n }));\n }\n }\n });\n // Hydration mismatch: text or text-tag\n if (!isHtmlTagsWarning) {\n const spaces = ' '.repeat(nestedHtmlStack.length * 2);\n let wrappedCodeLine;\n if (hydrationMismatchType === 'text') {\n // hydration type is \"text\", represent [server content, client content]\n wrappedCodeLine = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--diff\": \"remove\",\n children: spaces + ('\"' + firstContent + '\"\\n')\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--diff\": \"add\",\n children: spaces + ('\"' + secondContent + '\"\\n')\n })\n ]\n }, nestedHtmlStack.length);\n } else if (hydrationMismatchType === 'text-in-tag') {\n // hydration type is \"text-in-tag\", represent [parent tag, mismatch content]\n wrappedCodeLine = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--tag-adjacent\": true,\n children: spaces + (\"<\" + secondContent + \">\\n\")\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"span\", {\n \"data-nextjs-container-errors-pseudo-html--diff\": \"remove\",\n children: spaces + (' \"' + firstContent + '\"\\n')\n })\n ]\n }, nestedHtmlStack.length);\n }\n nestedHtmlStack.push(wrappedCodeLine);\n }\n return nestedHtmlStack;\n }, [\n componentStackFrames,\n isHtmlCollapsed,\n firstContent,\n secondContent,\n isHtmlTagsWarning,\n hydrationMismatchType,\n MAX_NON_COLLAPSED_FRAMES,\n isReactHydrationDiff,\n reactOutputComponentDiff\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n \"data-nextjs-container-errors-pseudo-html\": true,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n tabIndex: 10,\n \"data-nextjs-container-errors-pseudo-html-collapse\": true,\n onClick: ()=>toggleCollapseHtml(!isHtmlCollapsed),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_CollapseIcon.CollapseIcon, {\n collapsed: isHtmlCollapsed\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"pre\", {\n ...props,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"code\", {\n children: htmlComponents\n })\n })\n ]\n });\n}\n_c = PseudoHtmlDiff;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=component-stack-pseudo-html.js.map\nvar _c;\n$RefreshReg$(_c, \"PseudoHtmlDiff\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9SdW50aW1lRXJyb3IvY29tcG9uZW50LXN0YWNrLXBzZXVkby1odG1sLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBd0RnQkE7OztlQUFBQTs7OzttQ0F4RDRCOzBDQUVmO0FBRTdCLFNBQVNDLGlCQUFpQkMsS0FBYztJQUN0QyxPQUFPO1FBQUUsMERBQTBEQTtJQUFNO0FBQzNFO0FBa0RPLHdCQUF3QixLQWFTO0lBYlQsTUFDN0JDLG9CQUFvQixFQUNwQkMsWUFBWSxFQUNaQyxhQUFhLEVBQ2JDLHFCQUFxQixFQUNyQkMsd0JBQXdCLEVBQ3hCLEdBQUdDLE9BT21DLEdBYlQ7SUFjN0IsTUFBTUMsb0JBQW9CSCwwQkFBMEI7SUFDcEQsTUFBTUksdUJBQXVCLENBQUMsQ0FBQ0g7SUFFL0IsK0ZBQStGO0lBQy9GLE1BQU1JLDJCQUEyQkYsb0JBQW9CLElBQUk7SUFDekQsTUFBTSxDQUFDRyxpQkFBaUJDLG1CQUFtQixHQUFHQyxDQUFBQSxHQUFBQSxPQUFBQSxRQUFBQSxFQUFTO0lBRXZELE1BQU1DLGlCQUFpQkMsQ0FBQUEsR0FBQUEsT0FBQUEsT0FBQUEsRUFBUTtRQUM3QixNQUFNQyxrQkFBcUMsRUFBRTtRQUM3Qyw0QkFBNEI7UUFDNUIsSUFBSVAsc0JBQXNCO1lBQ3hCLElBQUlRLHdCQUF3QmYscUJBQXFCZ0IsTUFBTSxHQUFHO1lBQzFELE1BQU1DLDBCQUEwQmIseUJBQXlCYyxLQUFLLENBQUM7WUFDL0QsTUFBTUMsZ0JBQW1DLEVBQUU7WUFDM0NGLHdCQUF3QkcsT0FBTyxDQUFDLENBQUNDLE1BQU1DO2dCQUNyQyxJQUFJQyxjQUFjRixLQUFLRyxJQUFJO2dCQUMzQixNQUFNQyxhQUFhRixXQUFXLENBQUMsRUFBRSxLQUFLLE9BQU9BLFdBQVcsQ0FBQyxFQUFFLEtBQUs7Z0JBQ2hFLE1BQU1HLFNBQVMsSUFBSUMsTUFBTSxDQUFDQyxLQUFLQyxHQUFHLENBQUNmLGdCQUFnQkUsTUFBTSxHQUFHLEdBQUc7Z0JBRS9ELElBQUlTLFlBQVk7b0JBQ2QsTUFBTUssT0FBT1AsV0FBVyxDQUFDLEVBQUU7b0JBQzNCQSxjQUFjQSxZQUFZUSxLQUFLLENBQUMsR0FBR1AsSUFBSSxHQUFHLHlCQUF5Qjs7b0JBQ25FTCxjQUFjYSxJQUFJLGVBQ2hCLHNCQUFDQyxRQUFBQTt3QkFFQ0Msa0RBQ0VKLFNBQVMsTUFBTSxRQUFROzs0QkFHeEJBOzRCQUNBSjs0QkFDQUg7NEJBQ0E7O3VCQVJJLGNBQWNEO2dCQVd6QixPQUFPLElBQUlQLHlCQUF5QixHQUFHO29CQUNyQyxNQUFNb0Isc0JBQXNCWixZQUFZYSxVQUFVLENBQ2hELE1BQU1wQyxvQkFBb0IsQ0FBQ2Usc0JBQXNCLENBQUNzQixTQUFTO29CQUU3RCwwRkFBMEY7b0JBQzFGLElBQUlGLHVCQUF1QlosZ0JBQWdCLE9BQU87d0JBQ2hEUjt3QkFDQUQsZ0JBQWdCa0IsSUFBSSxlQUNsQixzQkFBQ0MsUUFBQUE7O2dDQUNFUDtnQ0FDQUg7Z0NBQ0E7OzJCQUhRLGNBQWNEO29CQU03QixPQUFPLElBQUksQ0FBQ2IsaUJBQWlCO3dCQUMzQkssZ0JBQWdCa0IsSUFBSSxlQUNsQixzQkFBQ0MsUUFBQUE7O2dDQUNFUDtnQ0FDQUg7Z0NBQ0E7OzJCQUhRLGNBQWNEO29CQU03QjtnQkFDRixPQUFPLElBQUksQ0FBQ2IsaUJBQWlCO29CQUMzQix5REFBeUQ7b0JBQ3pESyxnQkFBZ0JrQixJQUFJLGVBQ2xCLHNCQUFDQyxRQUFBQTs7NEJBQ0VQOzRCQUNBSDs0QkFDQTs7dUJBSFEsY0FBY0Q7Z0JBTTdCO1lBQ0Y7WUFDQSxPQUFPUixnQkFBZ0J3QixNQUFNLENBQUNuQjtRQUNoQztRQUVBLE1BQU1vQixrQkFBcUMsRUFBRTtRQUM3QyxNQUFNQyxXQUFXbEMsb0JBRWI7WUFBQ0wsYUFBYXdDLE9BQU8sQ0FBQyxRQUFRO1lBQUt2QyxjQUFjdUMsT0FBTyxDQUFDLFFBQVE7U0FBSSxHQUNyRSxFQUFFO1FBRU4sSUFBSUMsV0FBVztRQUVmLE1BQU1DLGlCQUFpQjNDLHFCQUNwQjRDLEdBQUcsQ0FBQyxDQUFDQyxRQUFVQSxNQUFNUixTQUFTLEVBQzlCUyxPQUFPO1FBRVYsOEJBQThCO1FBQzlCLE1BQU1DLGVBQWU7WUFBQyxDQUFDO1lBQUcsQ0FBQztTQUFFO1FBQzdCLElBQUl6QyxtQkFBbUI7WUFDckIsbUNBQW1DO1lBQ25DLElBQUssSUFBSTBDLElBQUlMLGVBQWUzQixNQUFNLEdBQUcsR0FBR2dDLEtBQUssR0FBR0EsSUFBSztnQkFDbkQsSUFBSUwsY0FBYyxDQUFDSyxFQUFFLEtBQUtSLFFBQVEsQ0FBQyxFQUFFLEVBQUU7b0JBQ3JDTyxZQUFZLENBQUMsRUFBRSxHQUFHQztvQkFDbEI7Z0JBQ0Y7WUFDRjtZQUNBLGtEQUFrRDtZQUNsRCxJQUFLLElBQUlBLElBQUlELFlBQVksQ0FBQyxFQUFFLEdBQUcsR0FBR0MsS0FBSyxHQUFHQSxJQUFLO2dCQUM3QyxJQUFJTCxjQUFjLENBQUNLLEVBQUUsS0FBS1IsUUFBUSxDQUFDLEVBQUUsRUFBRTtvQkFDckNPLFlBQVksQ0FBQyxFQUFFLEdBQUdDO29CQUNsQjtnQkFDRjtZQUNGO1FBQ0Y7UUFFQUwsZUFBZXZCLE9BQU8sQ0FBQyxDQUFDaUIsV0FBV2YsT0FBTzJCO1lBQ3hDLE1BQU12QixTQUFTLElBQUlDLE1BQU0sQ0FBQ1ksZ0JBQWdCdkIsTUFBTSxHQUFHO1lBRW5ELGdFQUFnRTtZQUNoRSxNQUFNa0MsbUJBQW1CNUMsb0JBQ3JCZ0IsVUFBVXlCLFlBQVksQ0FBQyxFQUFFLElBQUl6QixVQUFVeUIsWUFBWSxDQUFDLEVBQUUsR0FDdERQLFNBQVNXLFFBQVEsQ0FBQ2Q7WUFDdEIsTUFBTWUsZ0JBQ0pGLG9CQUNBdEIsS0FBS3lCLEdBQUcsQ0FBQy9CLFFBQVF5QixZQUFZLENBQUMsRUFBRSxLQUFLLEtBQ3JDbkIsS0FBS3lCLEdBQUcsQ0FBQy9CLFFBQVF5QixZQUFZLENBQUMsRUFBRSxLQUFLO1lBRXZDLE1BQU1PLGtCQUNKLENBQUNoRCxxQkFBcUJnQixTQUFTMkIsY0FBY2pDLE1BQU0sR0FBRztZQUV4RCxNQUFNdUMsV0FBV3pELGlCQUFpQnNEO1lBRWxDLElBQUs5QyxxQkFBcUI4QyxpQkFBa0JFLGlCQUFpQjtnQkFDM0QsTUFBTUUsV0FBQUEsV0FBQUEsR0FDSixzQkFBQ3ZCLFFBQUFBOzt3QkFDRVA7c0NBQ0QscUJBQUNPLFFBQUFBOzRCQUNFLEdBQUdzQixRQUFROzRCQUVWLEdBQUlMLG1CQUNBO2dDQUNFLHVEQUNFOzRCQUNKLElBQ0FPLFNBQVM7c0NBR2IsTUFBR3BCLFlBQVU7Ozs7Z0JBSXJCSyxXQUFXTDtnQkFFWCxNQUFNcUIsa0JBQUFBLFdBQUFBLEdBQ0osc0JBQUNDLE9BQUFBLFFBQVE7O3dCQUNOSDt3QkFFQU4sb0JBQUFBLFdBQUFBLEdBQ0MscUJBQUNqQixRQUFBQTs0QkFBSzJCLGdEQUE4QztzQ0FDakRsQyxTQUFTLElBQUlDLE1BQU0sQ0FBQ1UsVUFBVXJCLE1BQU0sR0FBRyxLQUFLOzs7bUJBTHBDdUIsZ0JBQWdCdkIsTUFBTTtnQkFVdkN1QixnQkFBZ0JQLElBQUksQ0FBQzBCO1lBQ3ZCLE9BQU87Z0JBQ0wsSUFDRW5CLGdCQUFnQnZCLE1BQU0sSUFBSVIsNEJBQzFCQyxpQkFDQTtvQkFDQTtnQkFDRjtnQkFFQSxJQUFJLENBQUNBLG1CQUFtQjZDLGlCQUFpQjtvQkFDdkNmLGdCQUFnQlAsSUFBSSxDQUNsQixXQURrQixHQUNsQiwwQkFBQ0MsUUFBQUE7d0JBQU0sR0FBR3NCLFFBQVE7d0JBQUVNLEtBQUt0QixnQkFBZ0J2QixNQUFNOzs0QkFDNUNVOzRCQUNBLE1BQU1XLFlBQVk7OztnQkFHekIsT0FBTyxJQUFJNUIsbUJBQW1CaUMsYUFBYSxPQUFPO29CQUNoREEsV0FBVztvQkFDWEgsZ0JBQWdCUCxJQUFJLGVBQ2xCLDBCQUFDQyxRQUFBQTt3QkFBTSxHQUFHc0IsUUFBUTt3QkFBRU0sS0FBS3RCLGdCQUFnQnZCLE1BQU07OzRCQUM1Q1U7NEJBQ0E7OztnQkFHUDtZQUNGO1FBQ0Y7UUFDQSx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDcEIsbUJBQW1CO1lBQ3RCLE1BQU1vQixTQUFTLElBQUlDLE1BQU0sQ0FBQ1ksZ0JBQWdCdkIsTUFBTSxHQUFHO1lBQ25ELElBQUkwQztZQUNKLElBQUl2RCwwQkFBMEIsUUFBUTtnQkFDcEMsdUVBQXVFO2dCQUN2RXVELGtCQUFBQSxXQUFBQSxHQUNFLHNCQUFDQyxPQUFBQSxRQUFROztzQ0FDUCxxQkFBQzFCLFFBQUFBOzRCQUFLQyxrREFBK0M7c0NBQ2xEUixTQUFTLENBQUMsTUFBR3pCLGVBQWEsTUFBRzs7c0NBRWhDLHFCQUFDZ0MsUUFBQUE7NEJBQUtDLGtEQUErQztzQ0FDbERSLFNBQVMsQ0FBQyxNQUFHeEIsZ0JBQWMsTUFBRzs7O21CQUxwQnFDLGdCQUFnQnZCLE1BQU07WUFTekMsT0FBTyxJQUFJYiwwQkFBMEIsZUFBZTtnQkFDbEQsNEVBQTRFO2dCQUM1RXVELGtCQUFBQSxXQUFBQSxHQUNFLHNCQUFDQyxPQUFBQSxRQUFROztzQ0FDUCxxQkFBQzFCLFFBQUFBOzRCQUFLNkIsd0RBQXNEO3NDQUN6RHBDLFNBQVMsQ0FBQyxNQUFHeEIsZ0JBQWMsTUFBRzs7c0NBRWpDLHFCQUFDK0IsUUFBQUE7NEJBQUtDLGtEQUErQztzQ0FDbERSLFNBQVMsQ0FBQyxRQUFLekIsZUFBYSxNQUFHOzs7bUJBTHJCc0MsZ0JBQWdCdkIsTUFBTTtZQVN6QztZQUNBdUIsZ0JBQWdCUCxJQUFJLENBQUMwQjtRQUN2QjtRQUVBLE9BQU9uQjtJQUNULEdBQUc7UUFDRHZDO1FBQ0FTO1FBQ0FSO1FBQ0FDO1FBQ0FJO1FBQ0FIO1FBQ0FLO1FBQ0FEO1FBQ0FIO0tBQ0Q7SUFFRCxxQkFDRSxzQkFBQzJELE9BQUFBO1FBQUlDLDBDQUF3Qzs7MEJBQzNDLHFCQUFDQyxVQUFBQTtnQkFDQ0MsVUFBVTtnQkFDVkMsbURBQWlEO2dCQUNqREMsU0FBUyxJQUFNMUQsbUJBQW1CLENBQUNEOzBCQUVuQyxtQ0FBQzRELGNBQUFBLFlBQVk7b0JBQUNDLFdBQVc3RDs7OzBCQUUzQixxQkFBQzhELE9BQUFBO2dCQUFLLEdBQUdsRSxLQUFLOzBCQUNaLG1DQUFDbUUsUUFBQUE7OEJBQU01RDs7Ozs7QUFJZjtLQTVQZ0JmIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9SdW50aW1lRXJyb3IvY29tcG9uZW50LXN0YWNrLXBzZXVkby1odG1sLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VNZW1vLCBGcmFnbWVudCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50U3RhY2tGcmFtZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvcGFyc2UtY29tcG9uZW50LXN0YWNrJ1xuaW1wb3J0IHsgQ29sbGFwc2VJY29uIH0gZnJvbSAnLi4vLi4vaWNvbnMvQ29sbGFwc2VJY29uJ1xuXG5mdW5jdGlvbiBnZXRBZGphY2VudFByb3BzKGlzQWRqOiBib29sZWFuKSB7XG4gIHJldHVybiB7ICdkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS10YWctYWRqYWNlbnQnOiBpc0FkaiB9XG59XG5cbi8qKlxuICpcbiAqIEZvcm1hdCBjb21wb25lbnQgc3RhY2sgaW50byBwc2V1ZG8gSFRNTFxuICogY29tcG9uZW50IHN0YWNrIGlzIGFuIGFycmF5IG9mIHN0cmluZ3MsIGUuZy46IFsncCcsICdwJywgJ1BhZ2UnLCAuLi5dXG4gKlxuICogRm9yIGh0bWwgdGFncyBtaXNtYXRjaCwgaXQgd2lsbCByZW5kZXIgaXQgZm9yIHRoZSBjb2RlIGJsb2NrXG4gKlxuICogYGBgXG4gKiA8cHJlPlxuICogIDxjb2RlPntgXG4gKiAgICA8UGFnZT5cbiAqICAgICAgIDxwIHJlZD5cbiAqICAgICAgICAgPHAgcmVkPlxuICogIGB9PC9jb2RlPlxuICogPC9wcmU+XG4gKiBgYGBcbiAqXG4gKiBGb3IgdGV4dCBtaXNtYXRjaCwgaXQgd2lsbCByZW5kZXIgaXQgZm9yIHRoZSBjb2RlIGJsb2NrXG4gKlxuICogYGBgXG4gKiA8cHJlPlxuICogPGNvZGU+e2BcbiAqICAgPFBhZ2U+XG4gKiAgICAgPHA+XG4gKiAgICAgICBcIlNlcnZlciBUZXh0XCIgKGdyZWVuKVxuICogICAgICAgXCJDbGllbnQgVGV4dFwiIChyZWQpXG4gKiAgICAgPC9wPlxuICogICA8L1BhZ2U+XG4gKiBgfTwvY29kZT5cbiAqIGBgYFxuICpcbiAqIEZvciBiYWQgdGV4dCB1bmRlciBhIHRhZyBpdCB3aWxsIHJlbmRlciBpdCBmb3IgdGhlIGNvZGUgYmxvY2ssXG4gKiBlLmcuIFwiTWlzbWF0Y2hlZCBUZXh0XCIgdW5kZXIgPHA+XG4gKlxuICogYGBgXG4gKiA8cHJlPlxuICogPGNvZGU+e2BcbiAqICAgPFBhZ2U+XG4gKiAgICAgPGRpdj5cbiAqICAgICAgIDxwPlxuICogICAgICAgICBcIk1pc21hdGNoZWQgVGV4dFwiIChyZWQpXG4gKiAgICAgIDwvcD5cbiAqICAgICA8L2Rpdj5cbiAqICAgPC9QYWdlPlxuICogYH08L2NvZGU+XG4gKiBgYGBcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBQc2V1ZG9IdG1sRGlmZih7XG4gIGNvbXBvbmVudFN0YWNrRnJhbWVzLFxuICBmaXJzdENvbnRlbnQsXG4gIHNlY29uZENvbnRlbnQsXG4gIGh5ZHJhdGlvbk1pc21hdGNoVHlwZSxcbiAgcmVhY3RPdXRwdXRDb21wb25lbnREaWZmLFxuICAuLi5wcm9wc1xufToge1xuICBjb21wb25lbnRTdGFja0ZyYW1lczogQ29tcG9uZW50U3RhY2tGcmFtZVtdXG4gIGZpcnN0Q29udGVudDogc3RyaW5nXG4gIHNlY29uZENvbnRlbnQ6IHN0cmluZ1xuICByZWFjdE91dHB1dENvbXBvbmVudERpZmY6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBoeWRyYXRpb25NaXNtYXRjaFR5cGU6ICd0YWcnIHwgJ3RleHQnIHwgJ3RleHQtaW4tdGFnJ1xufSAmIFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxQcmVFbGVtZW50Pikge1xuICBjb25zdCBpc0h0bWxUYWdzV2FybmluZyA9IGh5ZHJhdGlvbk1pc21hdGNoVHlwZSA9PT0gJ3RhZydcbiAgY29uc3QgaXNSZWFjdEh5ZHJhdGlvbkRpZmYgPSAhIXJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZlxuXG4gIC8vIEZvciB0ZXh0IG1pc21hdGNoLCBtaXNtYXRjaGVkIHRleHQgd2lsbCB0YWtlIDIgcm93cywgc28gd2UgZGlzcGxheSA0IHJvd3Mgb2YgY29tcG9uZW50IHN0YWNrXG4gIGNvbnN0IE1BWF9OT05fQ09MTEFQU0VEX0ZSQU1FUyA9IGlzSHRtbFRhZ3NXYXJuaW5nID8gNiA6IDRcbiAgY29uc3QgW2lzSHRtbENvbGxhcHNlZCwgdG9nZ2xlQ29sbGFwc2VIdG1sXSA9IHVzZVN0YXRlKHRydWUpXG5cbiAgY29uc3QgaHRtbENvbXBvbmVudHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBjb21wb25lbnRTdGFja3M6IFJlYWN0LlJlYWN0Tm9kZVtdID0gW11cbiAgICAvLyBSZWFjdCAxOSB1bmlmaWVkIG1pc21hdGNoXG4gICAgaWYgKGlzUmVhY3RIeWRyYXRpb25EaWZmKSB7XG4gICAgICBsZXQgY3VycmVudENvbXBvbmVudEluZGV4ID0gY29tcG9uZW50U3RhY2tGcmFtZXMubGVuZ3RoIC0gMVxuICAgICAgY29uc3QgcmVhY3RDb21wb25lbnREaWZmTGluZXMgPSByZWFjdE91dHB1dENvbXBvbmVudERpZmYuc3BsaXQoJ1xcbicpXG4gICAgICBjb25zdCBkaWZmSHRtbFN0YWNrOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdXG4gICAgICByZWFjdENvbXBvbmVudERpZmZMaW5lcy5mb3JFYWNoKChsaW5lLCBpbmRleCkgPT4ge1xuICAgICAgICBsZXQgdHJpbW1lZExpbmUgPSBsaW5lLnRyaW0oKVxuICAgICAgICBjb25zdCBpc0RpZmZMaW5lID0gdHJpbW1lZExpbmVbMF0gPT09ICcrJyB8fCB0cmltbWVkTGluZVswXSA9PT0gJy0nXG4gICAgICAgIGNvbnN0IHNwYWNlcyA9ICcgJy5yZXBlYXQoTWF0aC5tYXgoY29tcG9uZW50U3RhY2tzLmxlbmd0aCAqIDIsIDEpKVxuXG4gICAgICAgIGlmIChpc0RpZmZMaW5lKSB7XG4gICAgICAgICAgY29uc3Qgc2lnbiA9IHRyaW1tZWRMaW5lWzBdXG4gICAgICAgICAgdHJpbW1lZExpbmUgPSB0cmltbWVkTGluZS5zbGljZSgxKS50cmltKCkgLy8gdHJpbSBzcGFjZXMgYWZ0ZXIgc2lnblxuICAgICAgICAgIGRpZmZIdG1sU3RhY2sucHVzaChcbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGtleT17J2NvbXAtZGlmZicgKyBpbmRleH1cbiAgICAgICAgICAgICAgZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj17XG4gICAgICAgICAgICAgICAgc2lnbiA9PT0gJysnID8gJ2FkZCcgOiAncmVtb3ZlJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtzaWdufVxuICAgICAgICAgICAgICB7c3BhY2VzfVxuICAgICAgICAgICAgICB7dHJpbW1lZExpbmV9XG4gICAgICAgICAgICAgIHsnXFxuJ31cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudENvbXBvbmVudEluZGV4ID49IDApIHtcbiAgICAgICAgICBjb25zdCBpc1VzZXJMYW5kQ29tcG9uZW50ID0gdHJpbW1lZExpbmUuc3RhcnRzV2l0aChcbiAgICAgICAgICAgICc8JyArIGNvbXBvbmVudFN0YWNrRnJhbWVzW2N1cnJlbnRDb21wb25lbnRJbmRleF0uY29tcG9uZW50XG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIElmIGl0J3MgbWF0Y2hlZCB1c2VybGFuZCBjb21wb25lbnQgb3IgaXQncyAuLi4gd2Ugd2lsbCBrZWVwIHRoZSBjb21wb25lbnQgc3RhY2sgaW4gZGlmZlxuICAgICAgICAgIGlmIChpc1VzZXJMYW5kQ29tcG9uZW50IHx8IHRyaW1tZWRMaW5lID09PSAnLi4uJykge1xuICAgICAgICAgICAgY3VycmVudENvbXBvbmVudEluZGV4LS1cbiAgICAgICAgICAgIGNvbXBvbmVudFN0YWNrcy5wdXNoKFxuICAgICAgICAgICAgICA8c3BhbiBrZXk9eydjb21wLWRpZmYnICsgaW5kZXh9PlxuICAgICAgICAgICAgICAgIHtzcGFjZXN9XG4gICAgICAgICAgICAgICAge3RyaW1tZWRMaW5lfVxuICAgICAgICAgICAgICAgIHsnXFxuJ31cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0gZWxzZSBpZiAoIWlzSHRtbENvbGxhcHNlZCkge1xuICAgICAgICAgICAgY29tcG9uZW50U3RhY2tzLnB1c2goXG4gICAgICAgICAgICAgIDxzcGFuIGtleT17J2NvbXAtZGlmZicgKyBpbmRleH0+XG4gICAgICAgICAgICAgICAge3NwYWNlc31cbiAgICAgICAgICAgICAgICB7dHJpbW1lZExpbmV9XG4gICAgICAgICAgICAgICAgeydcXG4nfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFpc0h0bWxDb2xsYXBzZWQpIHtcbiAgICAgICAgICAvLyBJbiBnZW5lcmFsLCBpZiBpdCdzIG5vdCBjb2xsYXBzZWQsIHNob3cgdGhlIHdob2xlIGRpZmZcbiAgICAgICAgICBjb21wb25lbnRTdGFja3MucHVzaChcbiAgICAgICAgICAgIDxzcGFuIGtleT17J2NvbXAtZGlmZicgKyBpbmRleH0+XG4gICAgICAgICAgICAgIHtzcGFjZXN9XG4gICAgICAgICAgICAgIHt0cmltbWVkTGluZX1cbiAgICAgICAgICAgICAgeydcXG4nfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJldHVybiBjb21wb25lbnRTdGFja3MuY29uY2F0KGRpZmZIdG1sU3RhY2spXG4gICAgfVxuXG4gICAgY29uc3QgbmVzdGVkSHRtbFN0YWNrOiBSZWFjdC5SZWFjdE5vZGVbXSA9IFtdXG4gICAgY29uc3QgdGFnTmFtZXMgPSBpc0h0bWxUYWdzV2FybmluZ1xuICAgICAgPyAvLyB0YWdzIGNvdWxkIGhhdmUgPCBvciA+IGluIHRoZSBuYW1lLCBzbyB3ZSBhbHdheXMgcmVtb3ZlIHRoZW0gdG8gbWF0Y2hcbiAgICAgICAgW2ZpcnN0Q29udGVudC5yZXBsYWNlKC88fD4vZywgJycpLCBzZWNvbmRDb250ZW50LnJlcGxhY2UoLzx8Pi9nLCAnJyldXG4gICAgICA6IFtdXG5cbiAgICBsZXQgbGFzdFRleHQgPSAnJ1xuXG4gICAgY29uc3QgY29tcG9uZW50U3RhY2sgPSBjb21wb25lbnRTdGFja0ZyYW1lc1xuICAgICAgLm1hcCgoZnJhbWUpID0+IGZyYW1lLmNvbXBvbmVudClcbiAgICAgIC5yZXZlcnNlKClcblxuICAgIC8vIFtjaGlsZCBpbmRleCwgcGFyZW50IGluZGV4XVxuICAgIGNvbnN0IG1hdGNoZWRJbmRleCA9IFstMSwgLTFdXG4gICAgaWYgKGlzSHRtbFRhZ3NXYXJuaW5nKSB7XG4gICAgICAvLyBSZXZlcnNlIHNlYXJjaCBmb3IgdGhlIGNoaWxkIHRhZ1xuICAgICAgZm9yIChsZXQgaSA9IGNvbXBvbmVudFN0YWNrLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgIGlmIChjb21wb25lbnRTdGFja1tpXSA9PT0gdGFnTmFtZXNbMF0pIHtcbiAgICAgICAgICBtYXRjaGVkSW5kZXhbMF0gPSBpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gU3RhcnQgc2VhcmNoaW5nIHBhcmVudCB0YWcgZnJvbSBjaGlsZCB0YWcgYWJvdmVcbiAgICAgIGZvciAobGV0IGkgPSBtYXRjaGVkSW5kZXhbMF0gLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICBpZiAoY29tcG9uZW50U3RhY2tbaV0gPT09IHRhZ05hbWVzWzFdKSB7XG4gICAgICAgICAgbWF0Y2hlZEluZGV4WzFdID0gaVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRTdGFjay5mb3JFYWNoKChjb21wb25lbnQsIGluZGV4LCBjb21wb25lbnRMaXN0KSA9PiB7XG4gICAgICBjb25zdCBzcGFjZXMgPSAnICcucmVwZWF0KG5lc3RlZEh0bWxTdGFjay5sZW5ndGggKiAyKVxuXG4gICAgICAvLyBXaGVuIGNvbXBvbmVudCBpcyB0aGUgc2VydmVyIG9yIGNsaWVudCB0YWcgbmFtZSwgaGlnaGxpZ2h0IGl0XG4gICAgICBjb25zdCBpc0hpZ2hsaWdodGVkVGFnID0gaXNIdG1sVGFnc1dhcm5pbmdcbiAgICAgICAgPyBpbmRleCA9PT0gbWF0Y2hlZEluZGV4WzBdIHx8IGluZGV4ID09PSBtYXRjaGVkSW5kZXhbMV1cbiAgICAgICAgOiB0YWdOYW1lcy5pbmNsdWRlcyhjb21wb25lbnQpXG4gICAgICBjb25zdCBpc0FkamFjZW50VGFnID1cbiAgICAgICAgaXNIaWdobGlnaHRlZFRhZyB8fFxuICAgICAgICBNYXRoLmFicyhpbmRleCAtIG1hdGNoZWRJbmRleFswXSkgPD0gMSB8fFxuICAgICAgICBNYXRoLmFicyhpbmRleCAtIG1hdGNoZWRJbmRleFsxXSkgPD0gMVxuXG4gICAgICBjb25zdCBpc0xhc3RGZXdGcmFtZXMgPVxuICAgICAgICAhaXNIdG1sVGFnc1dhcm5pbmcgJiYgaW5kZXggPj0gY29tcG9uZW50TGlzdC5sZW5ndGggLSA2XG5cbiAgICAgIGNvbnN0IGFkalByb3BzID0gZ2V0QWRqYWNlbnRQcm9wcyhpc0FkamFjZW50VGFnKVxuXG4gICAgICBpZiAoKGlzSHRtbFRhZ3NXYXJuaW5nICYmIGlzQWRqYWNlbnRUYWcpIHx8IGlzTGFzdEZld0ZyYW1lcykge1xuICAgICAgICBjb25zdCBjb2RlTGluZSA9IChcbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIHtzcGFjZXN9XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICB7Li4uYWRqUHJvcHN9XG4gICAgICAgICAgICAgIHsuLi57XG4gICAgICAgICAgICAgICAgLi4uKGlzSGlnaGxpZ2h0ZWRUYWdcbiAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICdkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS10YWctZXJyb3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7YDwke2NvbXBvbmVudH0+XFxuYH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIClcbiAgICAgICAgbGFzdFRleHQgPSBjb21wb25lbnRcblxuICAgICAgICBjb25zdCB3cmFwcGVkQ29kZUxpbmUgPSAoXG4gICAgICAgICAgPEZyYWdtZW50IGtleT17bmVzdGVkSHRtbFN0YWNrLmxlbmd0aH0+XG4gICAgICAgICAgICB7Y29kZUxpbmV9XG4gICAgICAgICAgICB7LyogQWRkIF5eXl4gdG8gdGhlIHRhcmdldCB0YWdzIHVzZWQgZm9yIHNuYXBzaG90cyBidXQgbm90IGRpc3BsYXllZCBmb3IgdXNlcnMgKi99XG4gICAgICAgICAgICB7aXNIaWdobGlnaHRlZFRhZyAmJiAoXG4gICAgICAgICAgICAgIDxzcGFuIGRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWhpbnQ+XG4gICAgICAgICAgICAgICAge3NwYWNlcyArICdeJy5yZXBlYXQoY29tcG9uZW50Lmxlbmd0aCArIDIpICsgJ1xcbid9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgKVxuICAgICAgICBuZXN0ZWRIdG1sU3RhY2sucHVzaCh3cmFwcGVkQ29kZUxpbmUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgbmVzdGVkSHRtbFN0YWNrLmxlbmd0aCA+PSBNQVhfTk9OX0NPTExBUFNFRF9GUkFNRVMgJiZcbiAgICAgICAgICBpc0h0bWxDb2xsYXBzZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzSHRtbENvbGxhcHNlZCB8fCBpc0xhc3RGZXdGcmFtZXMpIHtcbiAgICAgICAgICBuZXN0ZWRIdG1sU3RhY2sucHVzaChcbiAgICAgICAgICAgIDxzcGFuIHsuLi5hZGpQcm9wc30ga2V5PXtuZXN0ZWRIdG1sU3RhY2subGVuZ3RofT5cbiAgICAgICAgICAgICAge3NwYWNlc31cbiAgICAgICAgICAgICAgeyc8JyArIGNvbXBvbmVudCArICc+XFxuJ31cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSBpZiAoaXNIdG1sQ29sbGFwc2VkICYmIGxhc3RUZXh0ICE9PSAnLi4uJykge1xuICAgICAgICAgIGxhc3RUZXh0ID0gJy4uLidcbiAgICAgICAgICBuZXN0ZWRIdG1sU3RhY2sucHVzaChcbiAgICAgICAgICAgIDxzcGFuIHsuLi5hZGpQcm9wc30ga2V5PXtuZXN0ZWRIdG1sU3RhY2subGVuZ3RofT5cbiAgICAgICAgICAgICAge3NwYWNlc31cbiAgICAgICAgICAgICAgeycuLi5cXG4nfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgLy8gSHlkcmF0aW9uIG1pc21hdGNoOiB0ZXh0IG9yIHRleHQtdGFnXG4gICAgaWYgKCFpc0h0bWxUYWdzV2FybmluZykge1xuICAgICAgY29uc3Qgc3BhY2VzID0gJyAnLnJlcGVhdChuZXN0ZWRIdG1sU3RhY2subGVuZ3RoICogMilcbiAgICAgIGxldCB3cmFwcGVkQ29kZUxpbmVcbiAgICAgIGlmIChoeWRyYXRpb25NaXNtYXRjaFR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICAvLyBoeWRyYXRpb24gdHlwZSBpcyBcInRleHRcIiwgcmVwcmVzZW50IFtzZXJ2ZXIgY29udGVudCwgY2xpZW50IGNvbnRlbnRdXG4gICAgICAgIHdyYXBwZWRDb2RlTGluZSA9IChcbiAgICAgICAgICA8RnJhZ21lbnQga2V5PXtuZXN0ZWRIdG1sU3RhY2subGVuZ3RofT5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmY9XCJyZW1vdmVcIj5cbiAgICAgICAgICAgICAge3NwYWNlcyArIGBcIiR7Zmlyc3RDb250ZW50fVwiXFxuYH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmY9XCJhZGRcIj5cbiAgICAgICAgICAgICAge3NwYWNlcyArIGBcIiR7c2Vjb25kQ29udGVudH1cIlxcbmB9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgKVxuICAgICAgfSBlbHNlIGlmIChoeWRyYXRpb25NaXNtYXRjaFR5cGUgPT09ICd0ZXh0LWluLXRhZycpIHtcbiAgICAgICAgLy8gaHlkcmF0aW9uIHR5cGUgaXMgXCJ0ZXh0LWluLXRhZ1wiLCByZXByZXNlbnQgW3BhcmVudCB0YWcsIG1pc21hdGNoIGNvbnRlbnRdXG4gICAgICAgIHdyYXBwZWRDb2RlTGluZSA9IChcbiAgICAgICAgICA8RnJhZ21lbnQga2V5PXtuZXN0ZWRIdG1sU3RhY2subGVuZ3RofT5cbiAgICAgICAgICAgIDxzcGFuIGRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLXRhZy1hZGphY2VudD5cbiAgICAgICAgICAgICAge3NwYWNlcyArIGA8JHtzZWNvbmRDb250ZW50fT5cXG5gfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tZGlmZj1cInJlbW92ZVwiPlxuICAgICAgICAgICAgICB7c3BhY2VzICsgYCAgXCIke2ZpcnN0Q29udGVudH1cIlxcbmB9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9GcmFnbWVudD5cbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgbmVzdGVkSHRtbFN0YWNrLnB1c2god3JhcHBlZENvZGVMaW5lKVxuICAgIH1cblxuICAgIHJldHVybiBuZXN0ZWRIdG1sU3RhY2tcbiAgfSwgW1xuICAgIGNvbXBvbmVudFN0YWNrRnJhbWVzLFxuICAgIGlzSHRtbENvbGxhcHNlZCxcbiAgICBmaXJzdENvbnRlbnQsXG4gICAgc2Vjb25kQ29udGVudCxcbiAgICBpc0h0bWxUYWdzV2FybmluZyxcbiAgICBoeWRyYXRpb25NaXNtYXRjaFR5cGUsXG4gICAgTUFYX05PTl9DT0xMQVBTRURfRlJBTUVTLFxuICAgIGlzUmVhY3RIeWRyYXRpb25EaWZmLFxuICAgIHJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZixcbiAgXSlcblxuICByZXR1cm4gKFxuICAgIDxkaXYgZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbD5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdGFiSW5kZXg9ezEwfSAvLyBtYXRjaCBDYWxsU3RhY2tGcmFtZVxuICAgICAgICBkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLWNvbGxhcHNlXG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHRvZ2dsZUNvbGxhcHNlSHRtbCghaXNIdG1sQ29sbGFwc2VkKX1cbiAgICAgID5cbiAgICAgICAgPENvbGxhcHNlSWNvbiBjb2xsYXBzZWQ9e2lzSHRtbENvbGxhcHNlZH0gLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPHByZSB7Li4ucHJvcHN9PlxuICAgICAgICA8Y29kZT57aHRtbENvbXBvbmVudHN9PC9jb2RlPlxuICAgICAgPC9wcmU+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJQc2V1ZG9IdG1sRGlmZiIsImdldEFkamFjZW50UHJvcHMiLCJpc0FkaiIsImNvbXBvbmVudFN0YWNrRnJhbWVzIiwiZmlyc3RDb250ZW50Iiwic2Vjb25kQ29udGVudCIsImh5ZHJhdGlvbk1pc21hdGNoVHlwZSIsInJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZiIsInByb3BzIiwiaXNIdG1sVGFnc1dhcm5pbmciLCJpc1JlYWN0SHlkcmF0aW9uRGlmZiIsIk1BWF9OT05fQ09MTEFQU0VEX0ZSQU1FUyIsImlzSHRtbENvbGxhcHNlZCIsInRvZ2dsZUNvbGxhcHNlSHRtbCIsInVzZVN0YXRlIiwiaHRtbENvbXBvbmVudHMiLCJ1c2VNZW1vIiwiY29tcG9uZW50U3RhY2tzIiwiY3VycmVudENvbXBvbmVudEluZGV4IiwibGVuZ3RoIiwicmVhY3RDb21wb25lbnREaWZmTGluZXMiLCJzcGxpdCIsImRpZmZIdG1sU3RhY2siLCJmb3JFYWNoIiwibGluZSIsImluZGV4IiwidHJpbW1lZExpbmUiLCJ0cmltIiwiaXNEaWZmTGluZSIsInNwYWNlcyIsInJlcGVhdCIsIk1hdGgiLCJtYXgiLCJzaWduIiwic2xpY2UiLCJwdXNoIiwic3BhbiIsImRhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLWRpZmYiLCJpc1VzZXJMYW5kQ29tcG9uZW50Iiwic3RhcnRzV2l0aCIsImNvbXBvbmVudCIsImNvbmNhdCIsIm5lc3RlZEh0bWxTdGFjayIsInRhZ05hbWVzIiwicmVwbGFjZSIsImxhc3RUZXh0IiwiY29tcG9uZW50U3RhY2siLCJtYXAiLCJmcmFtZSIsInJldmVyc2UiLCJtYXRjaGVkSW5kZXgiLCJpIiwiY29tcG9uZW50TGlzdCIsImlzSGlnaGxpZ2h0ZWRUYWciLCJpbmNsdWRlcyIsImlzQWRqYWNlbnRUYWciLCJhYnMiLCJpc0xhc3RGZXdGcmFtZXMiLCJhZGpQcm9wcyIsImNvZGVMaW5lIiwidW5kZWZpbmVkIiwid3JhcHBlZENvZGVMaW5lIiwiRnJhZ21lbnQiLCJkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1oaW50Iiwia2V5IiwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tdGFnLWFkamFjZW50IiwiZGl2IiwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbCIsImJ1dHRvbiIsInRhYkluZGV4IiwiZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1jb2xsYXBzZSIsIm9uQ2xpY2siLCJDb2xsYXBzZUljb24iLCJjb2xsYXBzZWQiLCJwcmUiLCJjb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/component-stack-pseudo-html.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js ***! + \*************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RuntimeError: function() {\n return RuntimeError;\n },\n styles: function() {\n return styles;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _CodeFrame = __webpack_require__(/*! ../../components/CodeFrame */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js\");\nconst _nooptemplate = __webpack_require__(/*! ../../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nconst _CallStackFrame = __webpack_require__(/*! ./CallStackFrame */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n [data-nextjs-call-stack-frame]:not(:last-child),\\n [data-nextjs-component-stack-frame]:not(:last-child) {\\n margin-bottom: var(--size-gap-double);\\n }\\n\\n [data-expand-ignore-button]:focus:not(:focus-visible),\\n [data-expand-ignore-button] {\\n background: none;\\n border: none;\\n color: var(--color-font);\\n cursor: pointer;\\n font-size: var(--size-font);\\n margin: var(--size-gap) 0;\\n padding: 0;\\n text-decoration: underline;\\n outline: none;\\n }\\n\\n [data-nextjs-data-runtime-error-copy-button],\\n [data-nextjs-data-runtime-error-copy-button]:focus:not(:focus-visible) {\\n position: relative;\\n margin-left: var(--size-gap);\\n padding: 0;\\n border: none;\\n background: none;\\n outline: none;\\n }\\n [data-nextjs-data-runtime-error-copy-button] > svg {\\n vertical-align: middle;\\n }\\n .nextjs-data-runtime-error-copy-button {\\n color: inherit;\\n }\\n .nextjs-data-runtime-error-copy-button--initial:hover {\\n cursor: pointer;\\n }\\n .nextjs-data-runtime-error-copy-button[aria-disabled='true'] {\\n opacity: 0.3;\\n cursor: not-allowed;\\n }\\n .nextjs-data-runtime-error-copy-button--error,\\n .nextjs-data-runtime-error-copy-button--error:hover {\\n color: var(--color-ansi-red);\\n }\\n .nextjs-data-runtime-error-copy-button--success {\\n color: var(--color-ansi-green);\\n }\\n\\n [data-nextjs-call-stack-frame] > h3,\\n [data-nextjs-component-stack-frame] > h3 {\\n margin-top: 0;\\n margin-bottom: 0;\\n font-family: var(--font-stack-monospace);\\n font-size: var(--size-font);\\n }\\n [data-nextjs-call-stack-frame] > h3[data-nextjs-frame-expanded='false'] {\\n color: #666;\\n display: inline-block;\\n }\\n [data-nextjs-call-stack-frame] > div,\\n [data-nextjs-component-stack-frame] > div {\\n display: flex;\\n align-items: center;\\n padding-left: calc(var(--size-gap) + var(--size-gap-half));\\n font-size: var(--size-font-small);\\n color: #999;\\n }\\n [data-nextjs-call-stack-frame] > div > svg,\\n [data-nextjs-component-stack-frame] > [role='link'] > svg {\\n width: auto;\\n height: var(--size-font-small);\\n margin-left: var(--size-gap);\\n flex-shrink: 0;\\n display: none;\\n }\\n\\n [data-nextjs-call-stack-frame] > div[data-has-source],\\n [data-nextjs-component-stack-frame] > [role='link'] {\\n cursor: pointer;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source]:hover,\\n [data-nextjs-component-stack-frame] > [role='link']:hover {\\n text-decoration: underline dotted;\\n }\\n [data-nextjs-call-stack-frame] > div[data-has-source] > svg,\\n [data-nextjs-component-stack-frame] > [role='link'] > svg {\\n display: unset;\\n }\\n\\n [data-nextjs-call-stack-framework-icon] {\\n margin-right: var(--size-gap);\\n }\\n [data-nextjs-call-stack-framework-icon='next'] > mask {\\n mask-type: alpha;\\n }\\n [data-nextjs-call-stack-framework-icon='react'] {\\n color: rgb(20, 158, 202);\\n }\\n [data-nextjs-collapsed-call-stack-details][open]\\n [data-nextjs-call-stack-chevron-icon] {\\n transform: rotate(90deg);\\n }\\n [data-nextjs-collapsed-call-stack-details] summary {\\n display: flex;\\n align-items: center;\\n margin-bottom: var(--size-gap);\\n list-style: none;\\n }\\n [data-nextjs-collapsed-call-stack-details] summary::-webkit-details-marker {\\n display: none;\\n }\\n\\n [data-nextjs-collapsed-call-stack-details] h3 {\\n color: #666;\\n }\\n [data-nextjs-collapsed-call-stack-details] [data-nextjs-call-stack-frame] {\\n margin-bottom: var(--size-gap-double);\\n }\\n\\n [data-nextjs-container-errors-pseudo-html] {\\n position: relative;\\n }\\n [data-nextjs-container-errors-pseudo-html-collapse] {\\n position: absolute;\\n left: 10px;\\n top: 10px;\\n color: inherit;\\n background: none;\\n border: none;\\n padding: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='add'] {\\n color: var(--color-ansi-green);\\n }\\n [data-nextjs-container-errors-pseudo-html--diff='remove'] {\\n color: var(--color-ansi-red);\\n }\\n [data-nextjs-container-errors-pseudo-html--tag-error] {\\n color: var(--color-ansi-red);\\n font-weight: bold;\\n }\\n /* hide but text are still accessible in DOM */\\n [data-nextjs-container-errors-pseudo-html--hint] {\\n display: inline-block;\\n font-size: 0;\\n }\\n [data-nextjs-container-errors-pseudo-html--tag-adjacent='false'] {\\n color: var(--color-accents-1);\\n }\\n\"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nfunction RuntimeError(param) {\n _s();\n let { error } = param;\n const [isIgnoredExpanded, setIsIgnoredExpanded] = _react.useState(false);\n const { firstFrame, allLeadingFrames, trailingCallStackFrames, displayedFramesCount } = _react.useMemo({\n \"RuntimeError.useMemo\": ()=>{\n const filteredFrames = error.frames.filter({\n \"RuntimeError.useMemo.filteredFrames\": (frame)=>isIgnoredExpanded ? true : !frame.ignored\n }[\"RuntimeError.useMemo.filteredFrames\"]);\n const firstFirstPartyFrameIndex = filteredFrames.findIndex({\n \"RuntimeError.useMemo.firstFirstPartyFrameIndex\": (entry)=>!entry.ignored && Boolean(entry.originalCodeFrame) && Boolean(entry.originalStackFrame)\n }[\"RuntimeError.useMemo.firstFirstPartyFrameIndex\"]);\n var _filteredFrames_firstFirstPartyFrameIndex;\n return {\n displayedFramesCount: filteredFrames.length,\n firstFrame: (_filteredFrames_firstFirstPartyFrameIndex = filteredFrames[firstFirstPartyFrameIndex]) != null ? _filteredFrames_firstFirstPartyFrameIndex : null,\n allLeadingFrames: firstFirstPartyFrameIndex < 0 ? [] : filteredFrames.slice(0, firstFirstPartyFrameIndex),\n trailingCallStackFrames: filteredFrames.slice(firstFirstPartyFrameIndex + 1)\n };\n }\n }[\"RuntimeError.useMemo\"], [\n error.frames,\n isIgnoredExpanded\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_react.Fragment, {\n children: [\n firstFrame ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h2\", {\n children: \"Source\"\n }),\n allLeadingFrames.map((frame, frameIndex)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_CallStackFrame.CallStackFrame, {\n frame: frame\n }, \"call-stack-leading-\" + frameIndex)),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_CodeFrame.CodeFrame, {\n stackFrame: firstFrame.originalStackFrame,\n codeFrame: firstFrame.originalCodeFrame\n })\n ]\n }) : undefined,\n trailingCallStackFrames.map((frame, frameIndex)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_CallStackFrame.CallStackFrame, {\n frame: frame\n }, \"call-stack-leading-\" + frameIndex)),\n // if the default displayed ignored frames count is equal equal to the total frames count, hide the button\n displayedFramesCount === error.frames.length && !isIgnoredExpanded ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"button\", {\n \"data-expand-ignore-button\": isIgnoredExpanded,\n onClick: ()=>setIsIgnoredExpanded(!isIgnoredExpanded),\n children: \"\" + (isIgnoredExpanded ? 'Hide' : 'Show') + \" ignored frames\"\n })\n ]\n });\n}\n_s(RuntimeError, \"r5F/rjzrcBIGFrQWByfOMnGUCTc=\");\n_c = RuntimeError;\nconst styles = (0, _nooptemplate.noop)(_templateObject());\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\nvar _c;\n$RefreshReg$(_c, \"RuntimeError\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9SdW50aW1lRXJyb3IvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUFRZ0JBLFlBQVk7ZUFBWkE7O0lBd0VIQyxNQUFNO2VBQU5BOzs7Ozs7NkVBaEZVO3VDQUNHOzBDQUVFOzRDQUNHOzs7Ozs7Ozs7O0FBSXhCLHNCQUFzQixLQUE0Qjs7SUFBNUIsTUFBRUMsS0FBSyxFQUFxQixHQUE1QjtJQUMzQixNQUFNLENBQUNDLG1CQUFtQkMscUJBQXFCLEdBQUdDLE9BQU1DLFFBQVEsQ0FBQztJQUNqRSxNQUFNLEVBQ0pDLFVBQVUsRUFDVkMsZ0JBQWdCLEVBQ2hCQyx1QkFBdUIsRUFDdkJDLG9CQUFvQixFQUNyQixHQUFHTCxPQUFNTSxPQUFPO2dDQUFDO1lBQ2hCLE1BQU1DLGlCQUFpQlYsTUFBTVcsTUFBTSxDQUFDQyxNQUFNO3VEQUFDLENBQUNDLFFBQzFDWixvQkFBb0IsT0FBTyxDQUFDWSxNQUFNQyxPQUFPOztZQUczQyxNQUFNQyw0QkFBNEJMLGVBQWVNLFNBQVM7a0VBQ3hELENBQUNDLFFBQ0MsQ0FBQ0EsTUFBTUgsT0FBTyxJQUNkSSxRQUFRRCxNQUFNRSxpQkFBaUIsS0FDL0JELFFBQVFELE1BQU1HLGtCQUFrQjs7Z0JBS3RCVjtZQUZkLE9BQU87Z0JBQ0xGLHNCQUFzQkUsZUFBZVcsTUFBTTtnQkFDM0NoQixZQUFZSyxDQUFBQSw0Q0FBQUEsY0FBYyxDQUFDSywwQkFBQUEsS0FBMEIsT0FBekNMLDRDQUE2QztnQkFDekRKLGtCQUNFUyw0QkFBNEIsSUFDeEIsRUFBRSxHQUNGTCxlQUFlWSxLQUFLLENBQUMsR0FBR1A7Z0JBQzlCUix5QkFBeUJHLGVBQWVZLEtBQUssQ0FDM0NQLDRCQUE0QjtZQUVoQztRQUNGOytCQUFHO1FBQUNmLE1BQU1XLE1BQU07UUFBRVY7S0FBa0I7SUFFcEMscUJBQ0Usc0JBQUNFLE9BQU1vQixRQUFROztZQUNabEIsYUFBQUEsV0FBQUEsR0FDQzs7a0NBQ0UscUJBQUNtQixNQUFBQTtrQ0FBRzs7b0JBQ0hsQixpQkFBaUJtQixHQUFHLENBQUMsQ0FBQ1osT0FBT2EsYUFBQUEsV0FBQUEsR0FDNUIscUJBQUNDLGdCQUFBQSxjQUFjOzRCQUViZCxPQUFPQTsyQkFERCx3QkFBcUJhO2tDQUkvQixxQkFBQ0UsV0FBQUEsU0FBUzt3QkFDUkMsWUFBWXhCLFdBQVdlLGtCQUFrQjt3QkFDekNVLFdBQVd6QixXQUFXYyxpQkFBaUI7OztpQkFHekNZO1lBRUh4Qix3QkFBd0JrQixHQUFHLENBQUMsQ0FBQ1osT0FBT2EsYUFBQUEsV0FBQUEsR0FDbkMscUJBQUNDLGdCQUFBQSxjQUFjO29CQUViZCxPQUFPQTttQkFERCx3QkFBcUJhO1lBSzdCLDBHQUEwRztZQUMxR2xCLHlCQUF5QlIsTUFBTVcsTUFBTSxDQUFDVSxNQUFNLElBQzVDLENBQUNwQixvQkFBb0IscUJBQ25CLHFCQUFDK0IsVUFBQUE7Z0JBQ0NDLDZCQUEyQmhDO2dCQUMzQmlDLFNBQVMsSUFBTWhDLHFCQUFxQixDQUFDRDswQkFFbkMsS0FBRUEsQ0FBQUEsb0JBQW9CLFNBQVMsT0FBSyxHQUFFOzs7O0FBTXBEOztLQXRFZ0JIO0FBd0VULE1BQU1DLFNBQUFBLENBQUFBLEdBQVNvQyxjQUFBQSxJQUFBQSxFQUFHIiwic291cmNlcyI6WyIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2NvbnRhaW5lci9SdW50aW1lRXJyb3IvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQ29kZUZyYW1lIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9Db2RlRnJhbWUnXG5pbXBvcnQgdHlwZSB7IFJlYWR5UnVudGltZUVycm9yIH0gZnJvbSAnLi4vLi4vaGVscGVycy9nZXQtZXJyb3ItYnktdHlwZSdcbmltcG9ydCB7IG5vb3AgYXMgY3NzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9ub29wLXRlbXBsYXRlJ1xuaW1wb3J0IHsgQ2FsbFN0YWNrRnJhbWUgfSBmcm9tICcuL0NhbGxTdGFja0ZyYW1lJ1xuXG5leHBvcnQgdHlwZSBSdW50aW1lRXJyb3JQcm9wcyA9IHsgZXJyb3I6IFJlYWR5UnVudGltZUVycm9yIH1cblxuZXhwb3J0IGZ1bmN0aW9uIFJ1bnRpbWVFcnJvcih7IGVycm9yIH06IFJ1bnRpbWVFcnJvclByb3BzKSB7XG4gIGNvbnN0IFtpc0lnbm9yZWRFeHBhbmRlZCwgc2V0SXNJZ25vcmVkRXhwYW5kZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHtcbiAgICBmaXJzdEZyYW1lLFxuICAgIGFsbExlYWRpbmdGcmFtZXMsXG4gICAgdHJhaWxpbmdDYWxsU3RhY2tGcmFtZXMsXG4gICAgZGlzcGxheWVkRnJhbWVzQ291bnQsXG4gIH0gPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBmaWx0ZXJlZEZyYW1lcyA9IGVycm9yLmZyYW1lcy5maWx0ZXIoKGZyYW1lKSA9PlxuICAgICAgaXNJZ25vcmVkRXhwYW5kZWQgPyB0cnVlIDogIWZyYW1lLmlnbm9yZWRcbiAgICApXG5cbiAgICBjb25zdCBmaXJzdEZpcnN0UGFydHlGcmFtZUluZGV4ID0gZmlsdGVyZWRGcmFtZXMuZmluZEluZGV4KFxuICAgICAgKGVudHJ5KSA9PlxuICAgICAgICAhZW50cnkuaWdub3JlZCAmJlxuICAgICAgICBCb29sZWFuKGVudHJ5Lm9yaWdpbmFsQ29kZUZyYW1lKSAmJlxuICAgICAgICBCb29sZWFuKGVudHJ5Lm9yaWdpbmFsU3RhY2tGcmFtZSlcbiAgICApXG5cbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheWVkRnJhbWVzQ291bnQ6IGZpbHRlcmVkRnJhbWVzLmxlbmd0aCxcbiAgICAgIGZpcnN0RnJhbWU6IGZpbHRlcmVkRnJhbWVzW2ZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXhdID8/IG51bGwsXG4gICAgICBhbGxMZWFkaW5nRnJhbWVzOlxuICAgICAgICBmaXJzdEZpcnN0UGFydHlGcmFtZUluZGV4IDwgMFxuICAgICAgICAgID8gW11cbiAgICAgICAgICA6IGZpbHRlcmVkRnJhbWVzLnNsaWNlKDAsIGZpcnN0Rmlyc3RQYXJ0eUZyYW1lSW5kZXgpLFxuICAgICAgdHJhaWxpbmdDYWxsU3RhY2tGcmFtZXM6IGZpbHRlcmVkRnJhbWVzLnNsaWNlKFxuICAgICAgICBmaXJzdEZpcnN0UGFydHlGcmFtZUluZGV4ICsgMVxuICAgICAgKSxcbiAgICB9XG4gIH0sIFtlcnJvci5mcmFtZXMsIGlzSWdub3JlZEV4cGFuZGVkXSlcblxuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIHtmaXJzdEZyYW1lID8gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxoMj5Tb3VyY2U8L2gyPlxuICAgICAgICAgIHthbGxMZWFkaW5nRnJhbWVzLm1hcCgoZnJhbWUsIGZyYW1lSW5kZXgpID0+IChcbiAgICAgICAgICAgIDxDYWxsU3RhY2tGcmFtZVxuICAgICAgICAgICAgICBrZXk9e2BjYWxsLXN0YWNrLWxlYWRpbmctJHtmcmFtZUluZGV4fWB9XG4gICAgICAgICAgICAgIGZyYW1lPXtmcmFtZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSl9XG4gICAgICAgICAgPENvZGVGcmFtZVxuICAgICAgICAgICAgc3RhY2tGcmFtZT17Zmlyc3RGcmFtZS5vcmlnaW5hbFN0YWNrRnJhbWUhfVxuICAgICAgICAgICAgY29kZUZyYW1lPXtmaXJzdEZyYW1lLm9yaWdpbmFsQ29kZUZyYW1lIX1cbiAgICAgICAgICAvPlxuICAgICAgICA8Lz5cbiAgICAgICkgOiB1bmRlZmluZWR9XG5cbiAgICAgIHt0cmFpbGluZ0NhbGxTdGFja0ZyYW1lcy5tYXAoKGZyYW1lLCBmcmFtZUluZGV4KSA9PiAoXG4gICAgICAgIDxDYWxsU3RhY2tGcmFtZVxuICAgICAgICAgIGtleT17YGNhbGwtc3RhY2stbGVhZGluZy0ke2ZyYW1lSW5kZXh9YH1cbiAgICAgICAgICBmcmFtZT17ZnJhbWV9XG4gICAgICAgIC8+XG4gICAgICApKX1cbiAgICAgIHtcbiAgICAgICAgLy8gaWYgdGhlIGRlZmF1bHQgZGlzcGxheWVkIGlnbm9yZWQgZnJhbWVzIGNvdW50IGlzIGVxdWFsIGVxdWFsIHRvIHRoZSB0b3RhbCBmcmFtZXMgY291bnQsIGhpZGUgdGhlIGJ1dHRvblxuICAgICAgICBkaXNwbGF5ZWRGcmFtZXNDb3VudCA9PT0gZXJyb3IuZnJhbWVzLmxlbmd0aCAmJlxuICAgICAgICAhaXNJZ25vcmVkRXhwYW5kZWQgPyBudWxsIDogKFxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGRhdGEtZXhwYW5kLWlnbm9yZS1idXR0b249e2lzSWdub3JlZEV4cGFuZGVkfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0SXNJZ25vcmVkRXhwYW5kZWQoIWlzSWdub3JlZEV4cGFuZGVkKX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7YCR7aXNJZ25vcmVkRXhwYW5kZWQgPyAnSGlkZScgOiAnU2hvdyd9IGlnbm9yZWQgZnJhbWVzYH1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgKVxuICAgICAgfVxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IHN0eWxlcyA9IGNzc2BcbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdOm5vdCg6bGFzdC1jaGlsZCksXG4gIFtkYXRhLW5leHRqcy1jb21wb25lbnQtc3RhY2stZnJhbWVdOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gIH1cblxuICBbZGF0YS1leHBhbmQtaWdub3JlLWJ1dHRvbl06Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSxcbiAgW2RhdGEtZXhwYW5kLWlnbm9yZS1idXR0b25dIHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItZm9udCk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250KTtcbiAgICBtYXJnaW46IHZhcigtLXNpemUtZ2FwKSAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1idXR0b25dLFxuICBbZGF0YS1uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktYnV0dG9uXTpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigtLXNpemUtZ2FwKTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWJ1dHRvbl0gPiBzdmcge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIH1cbiAgLm5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1idXR0b24ge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICB9XG4gIC5uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktYnV0dG9uLS1pbml0aWFsOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbiAgLm5leHRqcy1kYXRhLXJ1bnRpbWUtZXJyb3ItY29weS1idXR0b25bYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICBvcGFjaXR5OiAwLjM7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgfVxuICAubmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWJ1dHRvbi0tZXJyb3IsXG4gIC5uZXh0anMtZGF0YS1ydW50aW1lLWVycm9yLWNvcHktYnV0dG9uLS1lcnJvcjpob3ZlciB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcbiAgfVxuICAubmV4dGpzLWRhdGEtcnVudGltZS1lcnJvci1jb3B5LWJ1dHRvbi0tc3VjY2VzcyB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktZ3JlZW4pO1xuICB9XG5cbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gaDMsXG4gIFtkYXRhLW5leHRqcy1jb21wb25lbnQtc3RhY2stZnJhbWVdID4gaDMge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250KTtcbiAgfVxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBoM1tkYXRhLW5leHRqcy1mcmFtZS1leHBhbmRlZD0nZmFsc2UnXSB7XG4gICAgY29sb3I6ICM2NjY7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdixcbiAgW2RhdGEtbmV4dGpzLWNvbXBvbmVudC1zdGFjay1mcmFtZV0gPiBkaXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tc2l6ZS1nYXApICsgdmFyKC0tc2l6ZS1nYXAtaGFsZikpO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tc2l6ZS1mb250LXNtYWxsKTtcbiAgICBjb2xvcjogIzk5OTtcbiAgfVxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXYgPiBzdmcsXG4gIFtkYXRhLW5leHRqcy1jb21wb25lbnQtc3RhY2stZnJhbWVdID4gW3JvbGU9J2xpbmsnXSA+IHN2ZyB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiB2YXIoLS1zaXplLWZvbnQtc21hbGwpO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS1zaXplLWdhcCk7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1lXSA+IGRpdltkYXRhLWhhcy1zb3VyY2VdLFxuICBbZGF0YS1uZXh0anMtY29tcG9uZW50LXN0YWNrLWZyYW1lXSA+IFtyb2xlPSdsaW5rJ10ge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0gPiBkaXZbZGF0YS1oYXMtc291cmNlXTpob3ZlcixcbiAgW2RhdGEtbmV4dGpzLWNvbXBvbmVudC1zdGFjay1mcmFtZV0gPiBbcm9sZT0nbGluayddOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stZnJhbWVdID4gZGl2W2RhdGEtaGFzLXNvdXJjZV0gPiBzdmcsXG4gIFtkYXRhLW5leHRqcy1jb21wb25lbnQtc3RhY2stZnJhbWVdID4gW3JvbGU9J2xpbmsnXSA+IHN2ZyB7XG4gICAgZGlzcGxheTogdW5zZXQ7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZXdvcmstaWNvbl0ge1xuICAgIG1hcmdpbi1yaWdodDogdmFyKC0tc2l6ZS1nYXApO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1ld29yay1pY29uPSduZXh0J10gPiBtYXNrIHtcbiAgICBtYXNrLXR5cGU6IGFscGhhO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWZyYW1ld29yay1pY29uPSdyZWFjdCddIHtcbiAgICBjb2xvcjogcmdiKDIwLCAxNTgsIDIwMik7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvbGxhcHNlZC1jYWxsLXN0YWNrLWRldGFpbHNdW29wZW5dXG4gICAgW2RhdGEtbmV4dGpzLWNhbGwtc3RhY2stY2hldnJvbi1pY29uXSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb2xsYXBzZWQtY2FsbC1zdGFjay1kZXRhaWxzXSBzdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXApO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvbGxhcHNlZC1jYWxsLXN0YWNrLWRldGFpbHNdIHN1bW1hcnk6Oi13ZWJraXQtZGV0YWlscy1tYXJrZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtY29sbGFwc2VkLWNhbGwtc3RhY2stZGV0YWlsc10gaDMge1xuICAgIGNvbG9yOiAjNjY2O1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb2xsYXBzZWQtY2FsbC1zdGFjay1kZXRhaWxzXSBbZGF0YS1uZXh0anMtY2FsbC1zdGFjay1mcmFtZV0ge1xuICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNpemUtZ2FwLWRvdWJsZSk7XG4gIH1cblxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbF0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC1jb2xsYXBzZV0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAxMHB4O1xuICAgIHRvcDogMTBweDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1kaWZmPSdhZGQnXSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktZ3JlZW4pO1xuICB9XG4gIFtkYXRhLW5leHRqcy1jb250YWluZXItZXJyb3JzLXBzZXVkby1odG1sLS1kaWZmPSdyZW1vdmUnXSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcbiAgfVxuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0tdGFnLWVycm9yXSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFuc2ktcmVkKTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuICAvKiBoaWRlIGJ1dCB0ZXh0IGFyZSBzdGlsbCBhY2Nlc3NpYmxlIGluIERPTSAqL1xuICBbZGF0YS1uZXh0anMtY29udGFpbmVyLWVycm9ycy1wc2V1ZG8taHRtbC0taGludF0ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDA7XG4gIH1cbiAgW2RhdGEtbmV4dGpzLWNvbnRhaW5lci1lcnJvcnMtcHNldWRvLWh0bWwtLXRhZy1hZGphY2VudD0nZmFsc2UnXSB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudHMtMSk7XG4gIH1cbmBcbiJdLCJuYW1lcyI6WyJSdW50aW1lRXJyb3IiLCJzdHlsZXMiLCJlcnJvciIsImlzSWdub3JlZEV4cGFuZGVkIiwic2V0SXNJZ25vcmVkRXhwYW5kZWQiLCJSZWFjdCIsInVzZVN0YXRlIiwiZmlyc3RGcmFtZSIsImFsbExlYWRpbmdGcmFtZXMiLCJ0cmFpbGluZ0NhbGxTdGFja0ZyYW1lcyIsImRpc3BsYXllZEZyYW1lc0NvdW50IiwidXNlTWVtbyIsImZpbHRlcmVkRnJhbWVzIiwiZnJhbWVzIiwiZmlsdGVyIiwiZnJhbWUiLCJpZ25vcmVkIiwiZmlyc3RGaXJzdFBhcnR5RnJhbWVJbmRleCIsImZpbmRJbmRleCIsImVudHJ5IiwiQm9vbGVhbiIsIm9yaWdpbmFsQ29kZUZyYW1lIiwib3JpZ2luYWxTdGFja0ZyYW1lIiwibGVuZ3RoIiwic2xpY2UiLCJGcmFnbWVudCIsImgyIiwibWFwIiwiZnJhbWVJbmRleCIsIkNhbGxTdGFja0ZyYW1lIiwiQ29kZUZyYW1lIiwic3RhY2tGcmFtZSIsImNvZGVGcmFtZSIsInVuZGVmaW5lZCIsImJ1dHRvbiIsImRhdGEtZXhwYW5kLWlnbm9yZS1idXR0b24iLCJvbkNsaWNrIiwiY3NzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/attach-hydration-error-state.js": +/*!*********************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/attach-hydration-error-state.js ***! + \*********************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"attachHydrationErrorState\", ({\n enumerable: true,\n get: function() {\n return attachHydrationErrorState;\n }\n}));\nconst _ishydrationerror = __webpack_require__(/*! ../../../is-hydration-error */ \"./node_modules/next/dist/client/components/is-hydration-error.js\");\nconst _hydrationerrorinfo = __webpack_require__(/*! ./hydration-error-info */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js\");\nfunction attachHydrationErrorState(error) {\n if ((0, _ishydrationerror.isHydrationError)(error) && !error.message.includes('https://nextjs.org/docs/messages/react-hydration-error')) {\n const reactHydrationDiffSegments = (0, _hydrationerrorinfo.getReactHydrationDiffSegments)(error.message);\n let parsedHydrationErrorState = {};\n if (reactHydrationDiffSegments) {\n parsedHydrationErrorState = {\n ...error.details,\n ..._hydrationerrorinfo.hydrationErrorState,\n warning: _hydrationerrorinfo.hydrationErrorState.warning || [\n (0, _ishydrationerror.getDefaultHydrationErrorMessage)()\n ],\n notes: reactHydrationDiffSegments[0],\n reactOutputComponentDiff: reactHydrationDiffSegments[1]\n };\n } else {\n // If there's any extra information in the error message to display,\n // append it to the error message details property\n if (_hydrationerrorinfo.hydrationErrorState.warning) {\n // The patched console.error found hydration errors logged by React\n // Append the logged warning to the error message\n parsedHydrationErrorState = {\n ...error.details,\n // It contains the warning, component stack, server and client tag names\n ..._hydrationerrorinfo.hydrationErrorState\n };\n }\n }\n ;\n error.details = parsedHydrationErrorState;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=attach-hydration-error-state.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvYXR0YWNoLWh5ZHJhdGlvbi1lcnJvci1zdGF0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7OzZEQVNnQkE7OztlQUFBQTs7OzhDQU5UO2dEQUlBO0FBRUEsU0FBU0EsMEJBQTBCQyxLQUFZO0lBQ3BELElBQ0VDLENBQUFBLEdBQUFBLGtCQUFBQSxnQkFBQUEsRUFBaUJELFVBQ2pCLENBQUNBLE1BQU1FLE9BQU8sQ0FBQ0MsUUFBUSxDQUNyQiwyREFFRjtRQUNBLE1BQU1DLDZCQUE2QkMsQ0FBQUEsR0FBQUEsb0JBQUFBLDZCQUFBQSxFQUNqQ0wsTUFBTUUsT0FBTztRQUVmLElBQUlJLDRCQUF3RCxDQUFDO1FBQzdELElBQUlGLDRCQUE0QjtZQUM5QkUsNEJBQTRCO2dCQUMxQixHQUFJTixNQUFjTyxPQUFPO2dCQUN6QixHQUFHQyxvQkFBQUEsbUJBQW1CO2dCQUN0QkMsU0FBU0Qsb0JBQUFBLG1CQUFtQixDQUFDQyxPQUFPLElBQUk7b0JBQ3RDQyxDQUFBQSxHQUFBQSxrQkFBQUEsK0JBQUFBO2lCQUNEO2dCQUNEQyxPQUFPUCwwQkFBMEIsQ0FBQyxFQUFFO2dCQUNwQ1EsMEJBQTBCUiwwQkFBMEIsQ0FBQyxFQUFFO1lBQ3pEO1FBQ0YsT0FBTztZQUNMLG9FQUFvRTtZQUNwRSxrREFBa0Q7WUFDbEQsSUFBSUksb0JBQUFBLG1CQUFtQixDQUFDQyxPQUFPLEVBQUU7Z0JBQy9CLG1FQUFtRTtnQkFDbkUsaURBQWlEO2dCQUNqREgsNEJBQTRCO29CQUMxQixHQUFJTixNQUFjTyxPQUFPO29CQUN6Qix3RUFBd0U7b0JBQ3hFLEdBQUdDLG9CQUFBQSxtQkFBbUI7Z0JBQ3hCO1lBQ0Y7UUFDRjs7UUFDRVIsTUFBY08sT0FBTyxHQUFHRDtJQUM1QjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvYXR0YWNoLWh5ZHJhdGlvbi1lcnJvci1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpc0h5ZHJhdGlvbkVycm9yLFxuICBnZXREZWZhdWx0SHlkcmF0aW9uRXJyb3JNZXNzYWdlLFxufSBmcm9tICcuLi8uLi8uLi9pcy1oeWRyYXRpb24tZXJyb3InXG5pbXBvcnQge1xuICBoeWRyYXRpb25FcnJvclN0YXRlLFxuICBnZXRSZWFjdEh5ZHJhdGlvbkRpZmZTZWdtZW50cyxcbn0gZnJvbSAnLi9oeWRyYXRpb24tZXJyb3ItaW5mbydcblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGFjaEh5ZHJhdGlvbkVycm9yU3RhdGUoZXJyb3I6IEVycm9yKSB7XG4gIGlmIChcbiAgICBpc0h5ZHJhdGlvbkVycm9yKGVycm9yKSAmJlxuICAgICFlcnJvci5tZXNzYWdlLmluY2x1ZGVzKFxuICAgICAgJ2h0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3JlYWN0LWh5ZHJhdGlvbi1lcnJvcidcbiAgICApXG4gICkge1xuICAgIGNvbnN0IHJlYWN0SHlkcmF0aW9uRGlmZlNlZ21lbnRzID0gZ2V0UmVhY3RIeWRyYXRpb25EaWZmU2VnbWVudHMoXG4gICAgICBlcnJvci5tZXNzYWdlXG4gICAgKVxuICAgIGxldCBwYXJzZWRIeWRyYXRpb25FcnJvclN0YXRlOiB0eXBlb2YgaHlkcmF0aW9uRXJyb3JTdGF0ZSA9IHt9XG4gICAgaWYgKHJlYWN0SHlkcmF0aW9uRGlmZlNlZ21lbnRzKSB7XG4gICAgICBwYXJzZWRIeWRyYXRpb25FcnJvclN0YXRlID0ge1xuICAgICAgICAuLi4oZXJyb3IgYXMgYW55KS5kZXRhaWxzLFxuICAgICAgICAuLi5oeWRyYXRpb25FcnJvclN0YXRlLFxuICAgICAgICB3YXJuaW5nOiBoeWRyYXRpb25FcnJvclN0YXRlLndhcm5pbmcgfHwgW1xuICAgICAgICAgIGdldERlZmF1bHRIeWRyYXRpb25FcnJvck1lc3NhZ2UoKSxcbiAgICAgICAgXSxcbiAgICAgICAgbm90ZXM6IHJlYWN0SHlkcmF0aW9uRGlmZlNlZ21lbnRzWzBdLFxuICAgICAgICByZWFjdE91dHB1dENvbXBvbmVudERpZmY6IHJlYWN0SHlkcmF0aW9uRGlmZlNlZ21lbnRzWzFdLFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiB0aGVyZSdzIGFueSBleHRyYSBpbmZvcm1hdGlvbiBpbiB0aGUgZXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5LFxuICAgICAgLy8gYXBwZW5kIGl0IHRvIHRoZSBlcnJvciBtZXNzYWdlIGRldGFpbHMgcHJvcGVydHlcbiAgICAgIGlmIChoeWRyYXRpb25FcnJvclN0YXRlLndhcm5pbmcpIHtcbiAgICAgICAgLy8gVGhlIHBhdGNoZWQgY29uc29sZS5lcnJvciBmb3VuZCBoeWRyYXRpb24gZXJyb3JzIGxvZ2dlZCBieSBSZWFjdFxuICAgICAgICAvLyBBcHBlbmQgdGhlIGxvZ2dlZCB3YXJuaW5nIHRvIHRoZSBlcnJvciBtZXNzYWdlXG4gICAgICAgIHBhcnNlZEh5ZHJhdGlvbkVycm9yU3RhdGUgPSB7XG4gICAgICAgICAgLi4uKGVycm9yIGFzIGFueSkuZGV0YWlscyxcbiAgICAgICAgICAvLyBJdCBjb250YWlucyB0aGUgd2FybmluZywgY29tcG9uZW50IHN0YWNrLCBzZXJ2ZXIgYW5kIGNsaWVudCB0YWcgbmFtZXNcbiAgICAgICAgICAuLi5oeWRyYXRpb25FcnJvclN0YXRlLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIDsoZXJyb3IgYXMgYW55KS5kZXRhaWxzID0gcGFyc2VkSHlkcmF0aW9uRXJyb3JTdGF0ZVxuICB9XG59XG4iXSwibmFtZXMiOlsiYXR0YWNoSHlkcmF0aW9uRXJyb3JTdGF0ZSIsImVycm9yIiwiaXNIeWRyYXRpb25FcnJvciIsIm1lc3NhZ2UiLCJpbmNsdWRlcyIsInJlYWN0SHlkcmF0aW9uRGlmZlNlZ21lbnRzIiwiZ2V0UmVhY3RIeWRyYXRpb25EaWZmU2VnbWVudHMiLCJwYXJzZWRIeWRyYXRpb25FcnJvclN0YXRlIiwiZGV0YWlscyIsImh5ZHJhdGlvbkVycm9yU3RhdGUiLCJ3YXJuaW5nIiwiZ2V0RGVmYXVsdEh5ZHJhdGlvbkVycm9yTWVzc2FnZSIsIm5vdGVzIiwicmVhY3RPdXRwdXRDb21wb25lbnREaWZmIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/attach-hydration-error-state.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/console-error.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/console-error.js ***! + \******************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// To distinguish from React error.digest, we use a different symbol here to determine if the error is from console.error or unhandled promise rejection.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createUnhandledError: function() {\n return createUnhandledError;\n },\n getUnhandledErrorType: function() {\n return getUnhandledErrorType;\n },\n isUnhandledConsoleOrRejection: function() {\n return isUnhandledConsoleOrRejection;\n }\n});\nconst digestSym = Symbol.for('next.console.error.digest');\nconst consoleTypeSym = Symbol.for('next.console.error.type');\nfunction createUnhandledError(message) {\n const error = typeof message === 'string' ? new Error(message) : message;\n error[digestSym] = 'NEXT_UNHANDLED_ERROR';\n error[consoleTypeSym] = typeof message === 'string' ? 'string' : 'error';\n return error;\n}\nconst isUnhandledConsoleOrRejection = (error)=>{\n return error && error[digestSym] === 'NEXT_UNHANDLED_ERROR';\n};\nconst getUnhandledErrorType = (error)=>{\n return error[consoleTypeSym];\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=console-error.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvY29uc29sZS1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBQSx5SkFBeUo7Ozs7Ozs7Ozs7Ozs7SUFXeklBLG9CQUFvQjtlQUFwQkE7O0lBZUhDLHFCQUFxQjtlQUFyQkE7O0lBTkFDLDZCQUE2QjtlQUE3QkE7OztBQW5CYixNQUFNQyxZQUFZQyxPQUFPQyxHQUFHLENBQUM7QUFDN0IsTUFBTUMsaUJBQWlCRixPQUFPQyxHQUFHLENBQUM7QUFTM0IsU0FBU0wscUJBQXFCTyxPQUF1QjtJQUMxRCxNQUFNQyxRQUNKLE9BQU9ELFlBQVksV0FBVyxJQUFJRSxNQUFNRixXQUFXQTtJQUVyREMsS0FBSyxDQUFDTCxVQUFVLEdBQUc7SUFDbkJLLEtBQUssQ0FBQ0YsZUFBZSxHQUFHLE9BQU9DLFlBQVksV0FBVyxXQUFXO0lBQ2pFLE9BQU9DO0FBQ1Q7QUFFTyxNQUFNTixnQ0FBZ0MsQ0FDM0NNO0lBRUEsT0FBT0EsU0FBU0EsS0FBSyxDQUFDTCxVQUFVLEtBQUs7QUFDdkM7QUFFTyxNQUFNRix3QkFBd0IsQ0FBQ087SUFDcEMsT0FBT0EsS0FBSyxDQUFDRixlQUFlO0FBQzlCIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvY29uc29sZS1lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUbyBkaXN0aW5ndWlzaCBmcm9tIFJlYWN0IGVycm9yLmRpZ2VzdCwgd2UgdXNlIGEgZGlmZmVyZW50IHN5bWJvbCBoZXJlIHRvIGRldGVybWluZSBpZiB0aGUgZXJyb3IgaXMgZnJvbSBjb25zb2xlLmVycm9yIG9yIHVuaGFuZGxlZCBwcm9taXNlIHJlamVjdGlvbi5cbmNvbnN0IGRpZ2VzdFN5bSA9IFN5bWJvbC5mb3IoJ25leHQuY29uc29sZS5lcnJvci5kaWdlc3QnKVxuY29uc3QgY29uc29sZVR5cGVTeW0gPSBTeW1ib2wuZm9yKCduZXh0LmNvbnNvbGUuZXJyb3IudHlwZScpXG5cbi8vIFJlcHJlc2VudCBub24gRXJyb3Igc2hhcGUgdW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9ucyBvciBjb25zb2xlLmVycm9yIGVycm9ycy5cbi8vIFRob3NlIGVycm9ycyB3aWxsIGJlIGNhcHR1cmVkIGFuZCBkaXNwbGF5ZWQgaW4gRXJyb3IgT3ZlcmxheS5cbnR5cGUgVW5oYW5kbGVkRXJyb3IgPSBFcnJvciAmIHtcbiAgW2RpZ2VzdFN5bV06ICdORVhUX1VOSEFORExFRF9FUlJPUidcbiAgW2NvbnNvbGVUeXBlU3ltXTogJ3N0cmluZycgfCAnZXJyb3InXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVbmhhbmRsZWRFcnJvcihtZXNzYWdlOiBzdHJpbmcgfCBFcnJvcik6IFVuaGFuZGxlZEVycm9yIHtcbiAgY29uc3QgZXJyb3IgPSAoXG4gICAgdHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnID8gbmV3IEVycm9yKG1lc3NhZ2UpIDogbWVzc2FnZVxuICApIGFzIFVuaGFuZGxlZEVycm9yXG4gIGVycm9yW2RpZ2VzdFN5bV0gPSAnTkVYVF9VTkhBTkRMRURfRVJST1InXG4gIGVycm9yW2NvbnNvbGVUeXBlU3ltXSA9IHR5cGVvZiBtZXNzYWdlID09PSAnc3RyaW5nJyA/ICdzdHJpbmcnIDogJ2Vycm9yJ1xuICByZXR1cm4gZXJyb3Jcbn1cblxuZXhwb3J0IGNvbnN0IGlzVW5oYW5kbGVkQ29uc29sZU9yUmVqZWN0aW9uID0gKFxuICBlcnJvcjogYW55XG4pOiBlcnJvciBpcyBVbmhhbmRsZWRFcnJvciA9PiB7XG4gIHJldHVybiBlcnJvciAmJiBlcnJvcltkaWdlc3RTeW1dID09PSAnTkVYVF9VTkhBTkRMRURfRVJST1InXG59XG5cbmV4cG9ydCBjb25zdCBnZXRVbmhhbmRsZWRFcnJvclR5cGUgPSAoZXJyb3I6IFVuaGFuZGxlZEVycm9yKSA9PiB7XG4gIHJldHVybiBlcnJvcltjb25zb2xlVHlwZVN5bV1cbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVVbmhhbmRsZWRFcnJvciIsImdldFVuaGFuZGxlZEVycm9yVHlwZSIsImlzVW5oYW5kbGVkQ29uc29sZU9yUmVqZWN0aW9uIiwiZGlnZXN0U3ltIiwiU3ltYm9sIiwiZm9yIiwiY29uc29sZVR5cGVTeW0iLCJtZXNzYWdlIiwiZXJyb3IiLCJFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/console-error.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/format-webpack-messages.js": +/*!****************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/format-webpack-messages.js ***! + \****************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\nMIT License\n\nCopyright (c) 2015-present, Facebook, Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return formatWebpackMessages;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"./node_modules/next/dist/compiled/strip-ansi/index.js\"));\n// This file is based on https://github.com/facebook/create-react-app/blob/7b1a32be6ec9f99a6c9a3c66813f3ac09c4736b9/packages/react-dev-utils/formatWebpackMessages.js\n// It's been edited to remove chalk and CRA-specific logic\nconst friendlySyntaxErrorLabel = 'Syntax error:';\nconst WEBPACK_BREAKING_CHANGE_POLYFILLS = '\\n\\nBREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.';\nfunction isLikelyASyntaxError(message) {\n return (0, _stripansi.default)(message).includes(friendlySyntaxErrorLabel);\n}\nlet hadMissingSassError = false;\n// Cleans up webpack error messages.\nfunction formatMessage(message, verbose, importTraceNote) {\n // TODO: Replace this once webpack 5 is stable\n if (typeof message === 'object' && message.message) {\n const filteredModuleTrace = message.moduleTrace && message.moduleTrace.filter((trace)=>!/next-(middleware|client-pages|route|edge-function)-loader\\.js/.test(trace.originName));\n let body = message.message;\n const breakingChangeIndex = body.indexOf(WEBPACK_BREAKING_CHANGE_POLYFILLS);\n if (breakingChangeIndex >= 0) {\n body = body.slice(0, breakingChangeIndex);\n }\n message = (message.moduleName ? (0, _stripansi.default)(message.moduleName) + '\\n' : '') + (message.file ? (0, _stripansi.default)(message.file) + '\\n' : '') + body + (message.details && verbose ? '\\n' + message.details : '') + (filteredModuleTrace && filteredModuleTrace.length ? (importTraceNote || '\\n\\nImport trace for requested module:') + filteredModuleTrace.map((trace)=>\"\\n\" + trace.moduleName).join('') : '') + (message.stack && verbose ? '\\n' + message.stack : '');\n }\n let lines = message.split('\\n');\n // Strip Webpack-added headers off errors/warnings\n // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js\n lines = lines.filter((line)=>!/Module [A-z ]+\\(from/.test(line));\n // Transform parsing error into syntax error\n // TODO: move this to our ESLint formatter?\n lines = lines.map((line)=>{\n const parsingError = /Line (\\d+):(?:(\\d+):)?\\s*Parsing error: (.+)$/.exec(line);\n if (!parsingError) {\n return line;\n }\n const [, errorLine, errorColumn, errorMessage] = parsingError;\n return friendlySyntaxErrorLabel + \" \" + errorMessage + \" (\" + errorLine + \":\" + errorColumn + \")\";\n });\n message = lines.join('\\n');\n // Smoosh syntax errors (commonly found in CSS)\n message = message.replace(/SyntaxError\\s+\\((\\d+):(\\d+)\\)\\s*(.+?)\\n/g, \"\" + friendlySyntaxErrorLabel + \" $3 ($1:$2)\\n\");\n // Clean up export errors\n message = message.replace(/^.*export '(.+?)' was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$2'.\");\n message = message.replace(/^.*export 'default' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$2' does not contain a default export (imported as '$1').\");\n message = message.replace(/^.*export '(.+?)' \\(imported as '(.+?)'\\) was not found in '(.+?)'.*$/gm, \"Attempted import error: '$1' is not exported from '$3' (imported as '$2').\");\n lines = message.split('\\n');\n // Remove leading newline\n if (lines.length > 2 && lines[1].trim() === '') {\n lines.splice(1, 1);\n }\n // Cleans up verbose \"module not found\" messages for files and packages.\n if (lines[1] && lines[1].startsWith('Module not found: ')) {\n lines = [\n lines[0],\n lines[1].replace('Error: ', '').replace('Module not found: Cannot find file:', 'Cannot find file:'),\n ...lines.slice(2)\n ];\n }\n // Add helpful message for users trying to use Sass for the first time\n if (lines[1] && lines[1].match(/Cannot find module.+sass/)) {\n // ./file.module.scss (<<loader info>>) => ./file.module.scss\n const firstLine = lines[0].split('!');\n lines[0] = firstLine[firstLine.length - 1];\n lines[1] = \"To use Next.js' built-in Sass support, you first need to install `sass`.\\n\";\n lines[1] += 'Run `npm i sass` or `yarn add sass` inside your workspace.\\n';\n lines[1] += '\\nLearn more: https://nextjs.org/docs/messages/install-sass';\n // dispose of unhelpful stack trace\n lines = lines.slice(0, 2);\n hadMissingSassError = true;\n } else if (hadMissingSassError && message.match(/(sass-loader|resolve-url-loader: CSS error)/)) {\n // dispose of unhelpful stack trace following missing sass module\n lines = [];\n }\n if (!verbose) {\n message = lines.join('\\n');\n // Internal stacks are generally useless so we strip them... with the\n // exception of stacks containing `webpack:` because they're normally\n // from user code generated by Webpack. For more information see\n // https://github.com/facebook/create-react-app/pull/1050\n message = message.replace(/^\\s*at\\s((?!webpack:).)*:\\d+:\\d+[\\s)]*(\\n|$)/gm, '') // at ... ...:x:y\n ;\n message = message.replace(/^\\s*at\\s<anonymous>(\\n|$)/gm, '') // at <anonymous>\n ;\n message = message.replace(/File was processed with these loaders:\\n(.+[\\\\/](next[\\\\/]dist[\\\\/].+|@next[\\\\/]react-refresh-utils[\\\\/]loader)\\.js\\n)*You may need an additional loader to handle the result of these loaders.\\n/g, '');\n lines = message.split('\\n');\n }\n // Remove duplicated newlines\n lines = lines.filter((line, index, arr)=>index === 0 || line.trim() !== '' || line.trim() !== arr[index - 1].trim());\n // Reassemble the message\n message = lines.join('\\n');\n return message.trim();\n}\nfunction formatWebpackMessages(json, verbose) {\n const formattedErrors = json.errors.map((message)=>{\n const isUnknownNextFontError = message.message.includes('An error occurred in `next/font`.');\n return formatMessage(message, isUnknownNextFontError || verbose);\n });\n const formattedWarnings = json.warnings.map((message)=>{\n return formatMessage(message, verbose);\n });\n // Reorder errors to put the most relevant ones first.\n let reactServerComponentsError = -1;\n for(let i = 0; i < formattedErrors.length; i++){\n const error = formattedErrors[i];\n if (error.includes('ReactServerComponentsError')) {\n reactServerComponentsError = i;\n break;\n }\n }\n // Move the reactServerComponentsError to the top if it exists\n if (reactServerComponentsError !== -1) {\n const error = formattedErrors.splice(reactServerComponentsError, 1);\n formattedErrors.unshift(error[0]);\n }\n const result = {\n ...json,\n errors: formattedErrors,\n warnings: formattedWarnings\n };\n if (!verbose && result.errors.some(isLikelyASyntaxError)) {\n // If there are any syntax errors, show just them.\n result.errors = result.errors.filter(isLikelyASyntaxError);\n result.warnings = [];\n }\n return result;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=format-webpack-messages.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvZm9ybWF0LXdlYnBhY2stbWVzc2FnZXMuanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzQkE7Ozs7MkNBaUtBOzs7ZUFBd0JBOzs7O2dGQWhLRjtBQUN0QixxS0FBcUs7QUFDckssMERBQTBEO0FBRTFELE1BQU1DLDJCQUEyQjtBQUVqQyxNQUFNQyxvQ0FDSjtBQUVGLFNBQVNDLHFCQUFxQkMsT0FBZTtJQUMzQyxPQUFPQyxDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxTQUFTRSxRQUFRLENBQUNMO0FBQ3JDO0FBRUEsSUFBSU0sc0JBQXNCO0FBRTFCLG9DQUFvQztBQUNwQyxTQUFTQyxjQUNQSixPQUFZLEVBQ1pLLE9BQWlCLEVBQ2pCQyxlQUF5QjtJQUV6Qiw4Q0FBOEM7SUFDOUMsSUFBSSxPQUFPTixZQUFZLFlBQVlBLFFBQVFBLE9BQU8sRUFBRTtRQUNsRCxNQUFNTyxzQkFDSlAsUUFBUVEsV0FBVyxJQUNuQlIsUUFBUVEsV0FBVyxDQUFDQyxNQUFNLENBQ3hCLENBQUNDLFFBQ0MsQ0FBQyxnRUFBZ0VDLElBQUksQ0FDbkVELE1BQU1FLFVBQVU7UUFJeEIsSUFBSUMsT0FBT2IsUUFBUUEsT0FBTztRQUMxQixNQUFNYyxzQkFBc0JELEtBQUtFLE9BQU8sQ0FBQ2pCO1FBQ3pDLElBQUlnQix1QkFBdUIsR0FBRztZQUM1QkQsT0FBT0EsS0FBS0csS0FBSyxDQUFDLEdBQUdGO1FBQ3ZCO1FBRUFkLFVBQ0dBLENBQUFBLFFBQVFpQixVQUFVLEdBQUdoQixDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxRQUFRaUIsVUFBVSxJQUFJLE9BQU8sR0FBQyxJQUM3RGpCLFFBQVFrQixJQUFJLEdBQUdqQixDQUFBQSxHQUFBQSxXQUFBQSxPQUFBQSxFQUFVRCxRQUFRa0IsSUFBSSxJQUFJLE9BQU8sR0FBQyxHQUNsREwsT0FDQ2IsQ0FBQUEsUUFBUW1CLE9BQU8sSUFBSWQsVUFBVSxPQUFPTCxRQUFRbUIsT0FBTyxHQUFHLEdBQUMsSUFDdkRaLHVCQUF1QkEsb0JBQW9CYSxNQUFNLEdBQzdDZCxvQkFBbUIseUNBQXVDLEdBQzNEQyxvQkFDR2MsR0FBRyxDQUFDLENBQUNYLFFBQWdCLE9BQUlBLE1BQU1PLFVBQVUsRUFDekNLLElBQUksQ0FBQyxNQUNSLEdBQUMsSUFDSnRCLFFBQVF1QixLQUFLLElBQUlsQixVQUFVLE9BQU9MLFFBQVF1QixLQUFLLEdBQUcsR0FBQztJQUN4RDtJQUNBLElBQUlDLFFBQVF4QixRQUFReUIsS0FBSyxDQUFDO0lBRTFCLGtEQUFrRDtJQUNsRCxvRUFBb0U7SUFDcEVELFFBQVFBLE1BQU1mLE1BQU0sQ0FBQyxDQUFDaUIsT0FBaUIsQ0FBQyx1QkFBdUJmLElBQUksQ0FBQ2U7SUFFcEUsNENBQTRDO0lBQzVDLDJDQUEyQztJQUMzQ0YsUUFBUUEsTUFBTUgsR0FBRyxDQUFDLENBQUNLO1FBQ2pCLE1BQU1DLGVBQWUsZ0RBQWdEQyxJQUFJLENBQ3ZFRjtRQUVGLElBQUksQ0FBQ0MsY0FBYztZQUNqQixPQUFPRDtRQUNUO1FBQ0EsTUFBTSxHQUFHRyxXQUFXQyxhQUFhQyxhQUFhLEdBQUdKO1FBQ2pELE9BQVU5QiwyQkFBeUIsTUFBR2tDLGVBQWEsT0FBSUYsWUFBVSxNQUFHQyxjQUFZO0lBQ2xGO0lBRUE5QixVQUFVd0IsTUFBTUYsSUFBSSxDQUFDO0lBQ3JCLCtDQUErQztJQUMvQ3RCLFVBQVVBLFFBQVFnQyxPQUFPLENBQ3ZCLDRDQUNDLEtBQUVuQywyQkFBeUI7SUFFOUIseUJBQXlCO0lBQ3pCRyxVQUFVQSxRQUFRZ0MsT0FBTyxDQUN2QixtREFDQztJQUVIaEMsVUFBVUEsUUFBUWdDLE9BQU8sQ0FDdkIsNkVBQ0M7SUFFSGhDLFVBQVVBLFFBQVFnQyxPQUFPLENBQ3ZCLDJFQUNDO0lBRUhSLFFBQVF4QixRQUFReUIsS0FBSyxDQUFDO0lBRXRCLHlCQUF5QjtJQUN6QixJQUFJRCxNQUFNSixNQUFNLEdBQUcsS0FBS0ksS0FBSyxDQUFDLEVBQUUsQ0FBQ1MsSUFBSSxPQUFPLElBQUk7UUFDOUNULE1BQU1VLE1BQU0sQ0FBQyxHQUFHO0lBQ2xCO0lBRUEsd0VBQXdFO0lBQ3hFLElBQUlWLEtBQUssQ0FBQyxFQUFFLElBQUlBLEtBQUssQ0FBQyxFQUFFLENBQUNXLFVBQVUsQ0FBQyx1QkFBdUI7UUFDekRYLFFBQVE7WUFDTkEsS0FBSyxDQUFDLEVBQUU7WUFDUkEsS0FBSyxDQUFDLEVBQUUsQ0FDTFEsT0FBTyxDQUFDLFdBQVcsSUFDbkJBLE9BQU8sQ0FBQyx1Q0FBdUM7ZUFDL0NSLE1BQU1SLEtBQUssQ0FBQztTQUNoQjtJQUNIO0lBRUEsc0VBQXNFO0lBQ3RFLElBQUlRLEtBQUssQ0FBQyxFQUFFLElBQUlBLEtBQUssQ0FBQyxFQUFFLENBQUNZLEtBQUssQ0FBQyw2QkFBNkI7UUFDMUQsNkRBQTZEO1FBQzdELE1BQU1DLFlBQVliLEtBQUssQ0FBQyxFQUFFLENBQUNDLEtBQUssQ0FBQztRQUNqQ0QsS0FBSyxDQUFDLEVBQUUsR0FBR2EsU0FBUyxDQUFDQSxVQUFVakIsTUFBTSxHQUFHLEVBQUU7UUFFMUNJLEtBQUssQ0FBQyxFQUFFLEdBQ047UUFDRkEsS0FBSyxDQUFDLEVBQUUsSUFBSTtRQUNaQSxLQUFLLENBQUMsRUFBRSxJQUFJO1FBRVosbUNBQW1DO1FBQ25DQSxRQUFRQSxNQUFNUixLQUFLLENBQUMsR0FBRztRQUN2QmIsc0JBQXNCO0lBQ3hCLE9BQU8sSUFDTEEsdUJBQ0FILFFBQVFvQyxLQUFLLENBQUMsZ0RBQ2Q7UUFDQSxpRUFBaUU7UUFDakVaLFFBQVEsRUFBRTtJQUNaO0lBRUEsSUFBSSxDQUFDbkIsU0FBUztRQUNaTCxVQUFVd0IsTUFBTUYsSUFBSSxDQUFDO1FBQ3JCLHFFQUFxRTtRQUNyRSxxRUFBcUU7UUFDckUsZ0VBQWdFO1FBQ2hFLHlEQUF5RDtRQUN6RHRCLFVBQVVBLFFBQVFnQyxPQUFPLENBQ3ZCLGtEQUNBLElBQ0EsaUJBQWlCOztRQUNuQmhDLFVBQVVBLFFBQVFnQyxPQUFPLENBQUMsK0JBQStCLElBQUksaUJBQWlCOztRQUU5RWhDLFVBQVVBLFFBQVFnQyxPQUFPLENBQ3ZCLHNNQUNBO1FBR0ZSLFFBQVF4QixRQUFReUIsS0FBSyxDQUFDO0lBQ3hCO0lBRUEsNkJBQTZCO0lBQzdCRCxRQUFTQSxNQUFtQmYsTUFBTSxDQUNoQyxDQUFDaUIsTUFBTVksT0FBT0MsTUFDWkQsVUFBVSxLQUFLWixLQUFLTyxJQUFJLE9BQU8sTUFBTVAsS0FBS08sSUFBSSxPQUFPTSxHQUFHLENBQUNELFFBQVEsRUFBRSxDQUFDTCxJQUFJO0lBRzVFLHlCQUF5QjtJQUN6QmpDLFVBQVV3QixNQUFNRixJQUFJLENBQUM7SUFDckIsT0FBT3RCLFFBQVFpQyxJQUFJO0FBQ3JCO0FBRWUsU0FBU3JDLHNCQUFzQjRDLElBQVMsRUFBRW5DLE9BQWlCO0lBQ3hFLE1BQU1vQyxrQkFBa0JELEtBQUtFLE1BQU0sQ0FBQ3JCLEdBQUcsQ0FBQyxDQUFDckI7UUFDdkMsTUFBTTJDLHlCQUF5QjNDLFFBQVFBLE9BQU8sQ0FBQ0UsUUFBUSxDQUNyRDtRQUVGLE9BQU9FLGNBQWNKLFNBQVMyQywwQkFBMEJ0QztJQUMxRDtJQUNBLE1BQU11QyxvQkFBb0JKLEtBQUtLLFFBQVEsQ0FBQ3hCLEdBQUcsQ0FBQyxDQUFDckI7UUFDM0MsT0FBT0ksY0FBY0osU0FBU0s7SUFDaEM7SUFFQSxzREFBc0Q7SUFDdEQsSUFBSXlDLDZCQUE2QixDQUFDO0lBRWxDLElBQUssSUFBSUMsSUFBSSxHQUFHQSxJQUFJTixnQkFBZ0JyQixNQUFNLEVBQUUyQixJQUFLO1FBQy9DLE1BQU1DLFFBQVFQLGVBQWUsQ0FBQ00sRUFBRTtRQUNoQyxJQUFJQyxNQUFNOUMsUUFBUSxDQUFDLCtCQUErQjtZQUNoRDRDLDZCQUE2QkM7WUFDN0I7UUFDRjtJQUNGO0lBRUEsOERBQThEO0lBQzlELElBQUlELCtCQUErQixDQUFDLEdBQUc7UUFDckMsTUFBTUUsUUFBUVAsZ0JBQWdCUCxNQUFNLENBQUNZLDRCQUE0QjtRQUNqRUwsZ0JBQWdCUSxPQUFPLENBQUNELEtBQUssQ0FBQyxFQUFFO0lBQ2xDO0lBRUEsTUFBTUUsU0FBUztRQUNiLEdBQUdWLElBQUk7UUFDUEUsUUFBUUQ7UUFDUkksVUFBVUQ7SUFDWjtJQUNBLElBQUksQ0FBQ3ZDLFdBQVc2QyxPQUFPUixNQUFNLENBQUNTLElBQUksQ0FBQ3BELHVCQUF1QjtRQUN4RCxrREFBa0Q7UUFDbERtRCxPQUFPUixNQUFNLEdBQUdRLE9BQU9SLE1BQU0sQ0FBQ2pDLE1BQU0sQ0FBQ1Y7UUFDckNtRCxPQUFPTCxRQUFRLEdBQUcsRUFBRTtJQUN0QjtJQUNBLE9BQU9LO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9mb3JtYXQtd2VicGFjay1tZXNzYWdlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbk1JVCBMaWNlbnNlXG5cbkNvcHlyaWdodCAoYykgMjAxNS1wcmVzZW50LCBGYWNlYm9vaywgSW5jLlxuXG5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG5vZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG5pbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG50byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG5jb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG5GSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG5PVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuU09GVFdBUkUuXG4qL1xuaW1wb3J0IHN0cmlwQW5zaSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvc3RyaXAtYW5zaSdcbi8vIFRoaXMgZmlsZSBpcyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svY3JlYXRlLXJlYWN0LWFwcC9ibG9iLzdiMWEzMmJlNmVjOWY5OWE2YzlhM2M2NjgxM2YzYWMwOWM0NzM2YjkvcGFja2FnZXMvcmVhY3QtZGV2LXV0aWxzL2Zvcm1hdFdlYnBhY2tNZXNzYWdlcy5qc1xuLy8gSXQncyBiZWVuIGVkaXRlZCB0byByZW1vdmUgY2hhbGsgYW5kIENSQS1zcGVjaWZpYyBsb2dpY1xuXG5jb25zdCBmcmllbmRseVN5bnRheEVycm9yTGFiZWwgPSAnU3ludGF4IGVycm9yOidcblxuY29uc3QgV0VCUEFDS19CUkVBS0lOR19DSEFOR0VfUE9MWUZJTExTID1cbiAgJ1xcblxcbkJSRUFLSU5HIENIQU5HRTogd2VicGFjayA8IDUgdXNlZCB0byBpbmNsdWRlIHBvbHlmaWxscyBmb3Igbm9kZS5qcyBjb3JlIG1vZHVsZXMgYnkgZGVmYXVsdC4nXG5cbmZ1bmN0aW9uIGlzTGlrZWx5QVN5bnRheEVycm9yKG1lc3NhZ2U6IHN0cmluZykge1xuICByZXR1cm4gc3RyaXBBbnNpKG1lc3NhZ2UpLmluY2x1ZGVzKGZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbClcbn1cblxubGV0IGhhZE1pc3NpbmdTYXNzRXJyb3IgPSBmYWxzZVxuXG4vLyBDbGVhbnMgdXAgd2VicGFjayBlcnJvciBtZXNzYWdlcy5cbmZ1bmN0aW9uIGZvcm1hdE1lc3NhZ2UoXG4gIG1lc3NhZ2U6IGFueSxcbiAgdmVyYm9zZT86IGJvb2xlYW4sXG4gIGltcG9ydFRyYWNlTm90ZT86IGJvb2xlYW5cbikge1xuICAvLyBUT0RPOiBSZXBsYWNlIHRoaXMgb25jZSB3ZWJwYWNrIDUgaXMgc3RhYmxlXG4gIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ29iamVjdCcgJiYgbWVzc2FnZS5tZXNzYWdlKSB7XG4gICAgY29uc3QgZmlsdGVyZWRNb2R1bGVUcmFjZSA9XG4gICAgICBtZXNzYWdlLm1vZHVsZVRyYWNlICYmXG4gICAgICBtZXNzYWdlLm1vZHVsZVRyYWNlLmZpbHRlcihcbiAgICAgICAgKHRyYWNlOiBhbnkpID0+XG4gICAgICAgICAgIS9uZXh0LShtaWRkbGV3YXJlfGNsaWVudC1wYWdlc3xyb3V0ZXxlZGdlLWZ1bmN0aW9uKS1sb2FkZXJcXC5qcy8udGVzdChcbiAgICAgICAgICAgIHRyYWNlLm9yaWdpbk5hbWVcbiAgICAgICAgICApXG4gICAgICApXG5cbiAgICBsZXQgYm9keSA9IG1lc3NhZ2UubWVzc2FnZVxuICAgIGNvbnN0IGJyZWFraW5nQ2hhbmdlSW5kZXggPSBib2R5LmluZGV4T2YoV0VCUEFDS19CUkVBS0lOR19DSEFOR0VfUE9MWUZJTExTKVxuICAgIGlmIChicmVha2luZ0NoYW5nZUluZGV4ID49IDApIHtcbiAgICAgIGJvZHkgPSBib2R5LnNsaWNlKDAsIGJyZWFraW5nQ2hhbmdlSW5kZXgpXG4gICAgfVxuXG4gICAgbWVzc2FnZSA9XG4gICAgICAobWVzc2FnZS5tb2R1bGVOYW1lID8gc3RyaXBBbnNpKG1lc3NhZ2UubW9kdWxlTmFtZSkgKyAnXFxuJyA6ICcnKSArXG4gICAgICAobWVzc2FnZS5maWxlID8gc3RyaXBBbnNpKG1lc3NhZ2UuZmlsZSkgKyAnXFxuJyA6ICcnKSArXG4gICAgICBib2R5ICtcbiAgICAgIChtZXNzYWdlLmRldGFpbHMgJiYgdmVyYm9zZSA/ICdcXG4nICsgbWVzc2FnZS5kZXRhaWxzIDogJycpICtcbiAgICAgIChmaWx0ZXJlZE1vZHVsZVRyYWNlICYmIGZpbHRlcmVkTW9kdWxlVHJhY2UubGVuZ3RoXG4gICAgICAgID8gKGltcG9ydFRyYWNlTm90ZSB8fCAnXFxuXFxuSW1wb3J0IHRyYWNlIGZvciByZXF1ZXN0ZWQgbW9kdWxlOicpICtcbiAgICAgICAgICBmaWx0ZXJlZE1vZHVsZVRyYWNlXG4gICAgICAgICAgICAubWFwKCh0cmFjZTogYW55KSA9PiBgXFxuJHt0cmFjZS5tb2R1bGVOYW1lfWApXG4gICAgICAgICAgICAuam9pbignJylcbiAgICAgICAgOiAnJykgK1xuICAgICAgKG1lc3NhZ2Uuc3RhY2sgJiYgdmVyYm9zZSA/ICdcXG4nICsgbWVzc2FnZS5zdGFjayA6ICcnKVxuICB9XG4gIGxldCBsaW5lcyA9IG1lc3NhZ2Uuc3BsaXQoJ1xcbicpXG5cbiAgLy8gU3RyaXAgV2VicGFjay1hZGRlZCBoZWFkZXJzIG9mZiBlcnJvcnMvd2FybmluZ3NcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3dlYnBhY2svd2VicGFjay9ibG9iL21hc3Rlci9saWIvTW9kdWxlRXJyb3IuanNcbiAgbGluZXMgPSBsaW5lcy5maWx0ZXIoKGxpbmU6IHN0cmluZykgPT4gIS9Nb2R1bGUgW0EteiBdK1xcKGZyb20vLnRlc3QobGluZSkpXG5cbiAgLy8gVHJhbnNmb3JtIHBhcnNpbmcgZXJyb3IgaW50byBzeW50YXggZXJyb3JcbiAgLy8gVE9ETzogbW92ZSB0aGlzIHRvIG91ciBFU0xpbnQgZm9ybWF0dGVyP1xuICBsaW5lcyA9IGxpbmVzLm1hcCgobGluZTogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgcGFyc2luZ0Vycm9yID0gL0xpbmUgKFxcZCspOig/OihcXGQrKTopP1xccypQYXJzaW5nIGVycm9yOiAoLispJC8uZXhlYyhcbiAgICAgIGxpbmVcbiAgICApXG4gICAgaWYgKCFwYXJzaW5nRXJyb3IpIHtcbiAgICAgIHJldHVybiBsaW5lXG4gICAgfVxuICAgIGNvbnN0IFssIGVycm9yTGluZSwgZXJyb3JDb2x1bW4sIGVycm9yTWVzc2FnZV0gPSBwYXJzaW5nRXJyb3JcbiAgICByZXR1cm4gYCR7ZnJpZW5kbHlTeW50YXhFcnJvckxhYmVsfSAke2Vycm9yTWVzc2FnZX0gKCR7ZXJyb3JMaW5lfToke2Vycm9yQ29sdW1ufSlgXG4gIH0pXG5cbiAgbWVzc2FnZSA9IGxpbmVzLmpvaW4oJ1xcbicpXG4gIC8vIFNtb29zaCBzeW50YXggZXJyb3JzIChjb21tb25seSBmb3VuZCBpbiBDU1MpXG4gIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgL1N5bnRheEVycm9yXFxzK1xcKChcXGQrKTooXFxkKylcXClcXHMqKC4rPylcXG4vZyxcbiAgICBgJHtmcmllbmRseVN5bnRheEVycm9yTGFiZWx9ICQzICgkMTokMilcXG5gXG4gIClcbiAgLy8gQ2xlYW4gdXAgZXhwb3J0IGVycm9yc1xuICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgIC9eLipleHBvcnQgJyguKz8pJyB3YXMgbm90IGZvdW5kIGluICcoLis/KScuKiQvZ20sXG4gICAgYEF0dGVtcHRlZCBpbXBvcnQgZXJyb3I6ICckMScgaXMgbm90IGV4cG9ydGVkIGZyb20gJyQyJy5gXG4gIClcbiAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShcbiAgICAvXi4qZXhwb3J0ICdkZWZhdWx0JyBcXChpbXBvcnRlZCBhcyAnKC4rPyknXFwpIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSxcbiAgICBgQXR0ZW1wdGVkIGltcG9ydCBlcnJvcjogJyQyJyBkb2VzIG5vdCBjb250YWluIGEgZGVmYXVsdCBleHBvcnQgKGltcG9ydGVkIGFzICckMScpLmBcbiAgKVxuICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKFxuICAgIC9eLipleHBvcnQgJyguKz8pJyBcXChpbXBvcnRlZCBhcyAnKC4rPyknXFwpIHdhcyBub3QgZm91bmQgaW4gJyguKz8pJy4qJC9nbSxcbiAgICBgQXR0ZW1wdGVkIGltcG9ydCBlcnJvcjogJyQxJyBpcyBub3QgZXhwb3J0ZWQgZnJvbSAnJDMnIChpbXBvcnRlZCBhcyAnJDInKS5gXG4gIClcbiAgbGluZXMgPSBtZXNzYWdlLnNwbGl0KCdcXG4nKVxuXG4gIC8vIFJlbW92ZSBsZWFkaW5nIG5ld2xpbmVcbiAgaWYgKGxpbmVzLmxlbmd0aCA+IDIgJiYgbGluZXNbMV0udHJpbSgpID09PSAnJykge1xuICAgIGxpbmVzLnNwbGljZSgxLCAxKVxuICB9XG5cbiAgLy8gQ2xlYW5zIHVwIHZlcmJvc2UgXCJtb2R1bGUgbm90IGZvdW5kXCIgbWVzc2FnZXMgZm9yIGZpbGVzIGFuZCBwYWNrYWdlcy5cbiAgaWYgKGxpbmVzWzFdICYmIGxpbmVzWzFdLnN0YXJ0c1dpdGgoJ01vZHVsZSBub3QgZm91bmQ6ICcpKSB7XG4gICAgbGluZXMgPSBbXG4gICAgICBsaW5lc1swXSxcbiAgICAgIGxpbmVzWzFdXG4gICAgICAgIC5yZXBsYWNlKCdFcnJvcjogJywgJycpXG4gICAgICAgIC5yZXBsYWNlKCdNb2R1bGUgbm90IGZvdW5kOiBDYW5ub3QgZmluZCBmaWxlOicsICdDYW5ub3QgZmluZCBmaWxlOicpLFxuICAgICAgLi4ubGluZXMuc2xpY2UoMiksXG4gICAgXVxuICB9XG5cbiAgLy8gQWRkIGhlbHBmdWwgbWVzc2FnZSBmb3IgdXNlcnMgdHJ5aW5nIHRvIHVzZSBTYXNzIGZvciB0aGUgZmlyc3QgdGltZVxuICBpZiAobGluZXNbMV0gJiYgbGluZXNbMV0ubWF0Y2goL0Nhbm5vdCBmaW5kIG1vZHVsZS4rc2Fzcy8pKSB7XG4gICAgLy8gLi9maWxlLm1vZHVsZS5zY3NzICg8PGxvYWRlciBpbmZvPj4pID0+IC4vZmlsZS5tb2R1bGUuc2Nzc1xuICAgIGNvbnN0IGZpcnN0TGluZSA9IGxpbmVzWzBdLnNwbGl0KCchJylcbiAgICBsaW5lc1swXSA9IGZpcnN0TGluZVtmaXJzdExpbmUubGVuZ3RoIC0gMV1cblxuICAgIGxpbmVzWzFdID1cbiAgICAgIFwiVG8gdXNlIE5leHQuanMnIGJ1aWx0LWluIFNhc3Mgc3VwcG9ydCwgeW91IGZpcnN0IG5lZWQgdG8gaW5zdGFsbCBgc2Fzc2AuXFxuXCJcbiAgICBsaW5lc1sxXSArPSAnUnVuIGBucG0gaSBzYXNzYCBvciBgeWFybiBhZGQgc2Fzc2AgaW5zaWRlIHlvdXIgd29ya3NwYWNlLlxcbidcbiAgICBsaW5lc1sxXSArPSAnXFxuTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvaW5zdGFsbC1zYXNzJ1xuXG4gICAgLy8gZGlzcG9zZSBvZiB1bmhlbHBmdWwgc3RhY2sgdHJhY2VcbiAgICBsaW5lcyA9IGxpbmVzLnNsaWNlKDAsIDIpXG4gICAgaGFkTWlzc2luZ1Nhc3NFcnJvciA9IHRydWVcbiAgfSBlbHNlIGlmIChcbiAgICBoYWRNaXNzaW5nU2Fzc0Vycm9yICYmXG4gICAgbWVzc2FnZS5tYXRjaCgvKHNhc3MtbG9hZGVyfHJlc29sdmUtdXJsLWxvYWRlcjogQ1NTIGVycm9yKS8pXG4gICkge1xuICAgIC8vIGRpc3Bvc2Ugb2YgdW5oZWxwZnVsIHN0YWNrIHRyYWNlIGZvbGxvd2luZyBtaXNzaW5nIHNhc3MgbW9kdWxlXG4gICAgbGluZXMgPSBbXVxuICB9XG5cbiAgaWYgKCF2ZXJib3NlKSB7XG4gICAgbWVzc2FnZSA9IGxpbmVzLmpvaW4oJ1xcbicpXG4gICAgLy8gSW50ZXJuYWwgc3RhY2tzIGFyZSBnZW5lcmFsbHkgdXNlbGVzcyBzbyB3ZSBzdHJpcCB0aGVtLi4uIHdpdGggdGhlXG4gICAgLy8gZXhjZXB0aW9uIG9mIHN0YWNrcyBjb250YWluaW5nIGB3ZWJwYWNrOmAgYmVjYXVzZSB0aGV5J3JlIG5vcm1hbGx5XG4gICAgLy8gZnJvbSB1c2VyIGNvZGUgZ2VuZXJhdGVkIGJ5IFdlYnBhY2suIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9jcmVhdGUtcmVhY3QtYXBwL3B1bGwvMTA1MFxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgICAvXlxccyphdFxccygoPyF3ZWJwYWNrOikuKSo6XFxkKzpcXGQrW1xccyldKihcXG58JCkvZ20sXG4gICAgICAnJ1xuICAgICkgLy8gYXQgLi4uIC4uLjp4OnlcbiAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9eXFxzKmF0XFxzPGFub255bW91cz4oXFxufCQpL2dtLCAnJykgLy8gYXQgPGFub255bW91cz5cblxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoXG4gICAgICAvRmlsZSB3YXMgcHJvY2Vzc2VkIHdpdGggdGhlc2UgbG9hZGVyczpcXG4oLitbXFxcXC9dKG5leHRbXFxcXC9dZGlzdFtcXFxcL10uK3xAbmV4dFtcXFxcL11yZWFjdC1yZWZyZXNoLXV0aWxzW1xcXFwvXWxvYWRlcilcXC5qc1xcbikqWW91IG1heSBuZWVkIGFuIGFkZGl0aW9uYWwgbG9hZGVyIHRvIGhhbmRsZSB0aGUgcmVzdWx0IG9mIHRoZXNlIGxvYWRlcnMuXFxuL2csXG4gICAgICAnJ1xuICAgIClcblxuICAgIGxpbmVzID0gbWVzc2FnZS5zcGxpdCgnXFxuJylcbiAgfVxuXG4gIC8vIFJlbW92ZSBkdXBsaWNhdGVkIG5ld2xpbmVzXG4gIGxpbmVzID0gKGxpbmVzIGFzIHN0cmluZ1tdKS5maWx0ZXIoXG4gICAgKGxpbmUsIGluZGV4LCBhcnIpID0+XG4gICAgICBpbmRleCA9PT0gMCB8fCBsaW5lLnRyaW0oKSAhPT0gJycgfHwgbGluZS50cmltKCkgIT09IGFycltpbmRleCAtIDFdLnRyaW0oKVxuICApXG5cbiAgLy8gUmVhc3NlbWJsZSB0aGUgbWVzc2FnZVxuICBtZXNzYWdlID0gbGluZXMuam9pbignXFxuJylcbiAgcmV0dXJuIG1lc3NhZ2UudHJpbSgpXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGZvcm1hdFdlYnBhY2tNZXNzYWdlcyhqc29uOiBhbnksIHZlcmJvc2U/OiBib29sZWFuKSB7XG4gIGNvbnN0IGZvcm1hdHRlZEVycm9ycyA9IGpzb24uZXJyb3JzLm1hcCgobWVzc2FnZTogYW55KSA9PiB7XG4gICAgY29uc3QgaXNVbmtub3duTmV4dEZvbnRFcnJvciA9IG1lc3NhZ2UubWVzc2FnZS5pbmNsdWRlcyhcbiAgICAgICdBbiBlcnJvciBvY2N1cnJlZCBpbiBgbmV4dC9mb250YC4nXG4gICAgKVxuICAgIHJldHVybiBmb3JtYXRNZXNzYWdlKG1lc3NhZ2UsIGlzVW5rbm93bk5leHRGb250RXJyb3IgfHwgdmVyYm9zZSlcbiAgfSlcbiAgY29uc3QgZm9ybWF0dGVkV2FybmluZ3MgPSBqc29uLndhcm5pbmdzLm1hcCgobWVzc2FnZTogYW55KSA9PiB7XG4gICAgcmV0dXJuIGZvcm1hdE1lc3NhZ2UobWVzc2FnZSwgdmVyYm9zZSlcbiAgfSlcblxuICAvLyBSZW9yZGVyIGVycm9ycyB0byBwdXQgdGhlIG1vc3QgcmVsZXZhbnQgb25lcyBmaXJzdC5cbiAgbGV0IHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yID0gLTFcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGZvcm1hdHRlZEVycm9ycy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGVycm9yID0gZm9ybWF0dGVkRXJyb3JzW2ldXG4gICAgaWYgKGVycm9yLmluY2x1ZGVzKCdSZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvcicpKSB7XG4gICAgICByZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciA9IGlcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgLy8gTW92ZSB0aGUgcmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IgdG8gdGhlIHRvcCBpZiBpdCBleGlzdHNcbiAgaWYgKHJlYWN0U2VydmVyQ29tcG9uZW50c0Vycm9yICE9PSAtMSkge1xuICAgIGNvbnN0IGVycm9yID0gZm9ybWF0dGVkRXJyb3JzLnNwbGljZShyZWFjdFNlcnZlckNvbXBvbmVudHNFcnJvciwgMSlcbiAgICBmb3JtYXR0ZWRFcnJvcnMudW5zaGlmdChlcnJvclswXSlcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAuLi5qc29uLFxuICAgIGVycm9yczogZm9ybWF0dGVkRXJyb3JzLFxuICAgIHdhcm5pbmdzOiBmb3JtYXR0ZWRXYXJuaW5ncyxcbiAgfVxuICBpZiAoIXZlcmJvc2UgJiYgcmVzdWx0LmVycm9ycy5zb21lKGlzTGlrZWx5QVN5bnRheEVycm9yKSkge1xuICAgIC8vIElmIHRoZXJlIGFyZSBhbnkgc3ludGF4IGVycm9ycywgc2hvdyBqdXN0IHRoZW0uXG4gICAgcmVzdWx0LmVycm9ycyA9IHJlc3VsdC5lcnJvcnMuZmlsdGVyKGlzTGlrZWx5QVN5bnRheEVycm9yKVxuICAgIHJlc3VsdC53YXJuaW5ncyA9IFtdXG4gIH1cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sIm5hbWVzIjpbImZvcm1hdFdlYnBhY2tNZXNzYWdlcyIsImZyaWVuZGx5U3ludGF4RXJyb3JMYWJlbCIsIldFQlBBQ0tfQlJFQUtJTkdfQ0hBTkdFX1BPTFlGSUxMUyIsImlzTGlrZWx5QVN5bnRheEVycm9yIiwibWVzc2FnZSIsInN0cmlwQW5zaSIsImluY2x1ZGVzIiwiaGFkTWlzc2luZ1Nhc3NFcnJvciIsImZvcm1hdE1lc3NhZ2UiLCJ2ZXJib3NlIiwiaW1wb3J0VHJhY2VOb3RlIiwiZmlsdGVyZWRNb2R1bGVUcmFjZSIsIm1vZHVsZVRyYWNlIiwiZmlsdGVyIiwidHJhY2UiLCJ0ZXN0Iiwib3JpZ2luTmFtZSIsImJvZHkiLCJicmVha2luZ0NoYW5nZUluZGV4IiwiaW5kZXhPZiIsInNsaWNlIiwibW9kdWxlTmFtZSIsImZpbGUiLCJkZXRhaWxzIiwibGVuZ3RoIiwibWFwIiwiam9pbiIsInN0YWNrIiwibGluZXMiLCJzcGxpdCIsImxpbmUiLCJwYXJzaW5nRXJyb3IiLCJleGVjIiwiZXJyb3JMaW5lIiwiZXJyb3JDb2x1bW4iLCJlcnJvck1lc3NhZ2UiLCJyZXBsYWNlIiwidHJpbSIsInNwbGljZSIsInN0YXJ0c1dpdGgiLCJtYXRjaCIsImZpcnN0TGluZSIsImluZGV4IiwiYXJyIiwianNvbiIsImZvcm1hdHRlZEVycm9ycyIsImVycm9ycyIsImlzVW5rbm93bk5leHRGb250RXJyb3IiLCJmb3JtYXR0ZWRXYXJuaW5ncyIsIndhcm5pbmdzIiwicmVhY3RTZXJ2ZXJDb21wb25lbnRzRXJyb3IiLCJpIiwiZXJyb3IiLCJ1bnNoaWZ0IiwicmVzdWx0Iiwic29tZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/format-webpack-messages.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-error-by-type.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-error-by-type.js ***! + \**********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getErrorByType\", ({\n enumerable: true,\n get: function() {\n return getErrorByType;\n }\n}));\nconst _shared = __webpack_require__(/*! ../../shared */ \"./node_modules/next/dist/client/components/react-dev-overlay/shared.js\");\nconst _stackframe = __webpack_require__(/*! ./stack-frame */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js\");\nconst _errorsource = __webpack_require__(/*! ../../../../../shared/lib/error-source */ \"./node_modules/next/dist/shared/lib/error-source.js\");\nasync function getErrorByType(ev, isAppDir) {\n const { id, event } = ev;\n switch(event.type){\n case _shared.ACTION_UNHANDLED_ERROR:\n case _shared.ACTION_UNHANDLED_REJECTION:\n {\n const readyRuntimeError = {\n id,\n runtime: true,\n error: event.reason,\n frames: await (0, _stackframe.getOriginalStackFrames)(event.frames, (0, _errorsource.getErrorSource)(event.reason), isAppDir, event.reason.toString())\n };\n if (event.type === _shared.ACTION_UNHANDLED_ERROR) {\n readyRuntimeError.componentStackFrames = event.componentStackFrames;\n }\n return readyRuntimeError;\n }\n default:\n {\n break;\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = event;\n throw new Error('type system invariant violation');\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-error-by-type.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvZ2V0LWVycm9yLWJ5LXR5cGUuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFrQnNCQTs7O2VBQUFBOzs7b0NBZmY7d0NBRWdDO3lDQUdSO0FBVXhCLGVBQWVBLGVBQ3BCQyxFQUF1QixFQUN2QkMsUUFBaUI7SUFFakIsTUFBTSxFQUFFQyxFQUFFLEVBQUVDLEtBQUssRUFBRSxHQUFHSDtJQUN0QixPQUFRRyxNQUFNQyxJQUFJO1FBQ2hCLEtBQUtDLFFBQUFBLHNCQUFzQjtRQUMzQixLQUFLQyxRQUFBQSwwQkFBMEI7WUFBRTtnQkFDL0IsTUFBTUMsb0JBQXVDO29CQUMzQ0w7b0JBQ0FNLFNBQVM7b0JBQ1RDLE9BQU9OLE1BQU1PLE1BQU07b0JBQ25CQyxRQUFRLE1BQU1DLENBQUFBLEdBQUFBLFlBQUFBLHNCQUFBQSxFQUNaVCxNQUFNUSxNQUFNLEVBQ1pFLENBQUFBLEdBQUFBLGFBQUFBLGNBQUFBLEVBQWVWLE1BQU1PLE1BQU0sR0FDM0JULFVBQ0FFLE1BQU1PLE1BQU0sQ0FBQ0ksUUFBUTtnQkFFekI7Z0JBQ0EsSUFBSVgsTUFBTUMsSUFBSSxLQUFLQyxRQUFBQSxzQkFBc0IsRUFBRTtvQkFDekNFLGtCQUFrQlEsb0JBQW9CLEdBQUdaLE1BQU1ZLG9CQUFvQjtnQkFDckU7Z0JBQ0EsT0FBT1I7WUFDVDtRQUNBO1lBQVM7Z0JBQ1A7WUFDRjtJQUNGO0lBQ0EsNkRBQTZEO0lBQzdELE1BQU1TLElBQVdiO0lBQ2pCLE1BQU0sSUFBSWMsTUFBTTtBQUNsQiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9oZWxwZXJzL2dldC1lcnJvci1ieS10eXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFDVElPTl9VTkhBTkRMRURfRVJST1IsXG4gIEFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OLFxufSBmcm9tICcuLi8uLi9zaGFyZWQnXG5pbXBvcnQgdHlwZSB7IFN1cHBvcnRlZEVycm9yRXZlbnQgfSBmcm9tICcuLi9jb250YWluZXIvRXJyb3JzJ1xuaW1wb3J0IHsgZ2V0T3JpZ2luYWxTdGFja0ZyYW1lcyB9IGZyb20gJy4vc3RhY2stZnJhbWUnXG5pbXBvcnQgdHlwZSB7IE9yaWdpbmFsU3RhY2tGcmFtZSB9IGZyb20gJy4vc3RhY2stZnJhbWUnXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudFN0YWNrRnJhbWUgfSBmcm9tICcuL3BhcnNlLWNvbXBvbmVudC1zdGFjaydcbmltcG9ydCB7IGdldEVycm9yU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2xpYi9lcnJvci1zb3VyY2UnXG5cbmV4cG9ydCB0eXBlIFJlYWR5UnVudGltZUVycm9yID0ge1xuICBpZDogbnVtYmVyXG4gIHJ1bnRpbWU6IHRydWVcbiAgZXJyb3I6IEVycm9yXG4gIGZyYW1lczogT3JpZ2luYWxTdGFja0ZyYW1lW11cbiAgY29tcG9uZW50U3RhY2tGcmFtZXM/OiBDb21wb25lbnRTdGFja0ZyYW1lW11cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVycm9yQnlUeXBlKFxuICBldjogU3VwcG9ydGVkRXJyb3JFdmVudCxcbiAgaXNBcHBEaXI6IGJvb2xlYW5cbik6IFByb21pc2U8UmVhZHlSdW50aW1lRXJyb3I+IHtcbiAgY29uc3QgeyBpZCwgZXZlbnQgfSA9IGV2XG4gIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgIGNhc2UgQUNUSU9OX1VOSEFORExFRF9FUlJPUjpcbiAgICBjYXNlIEFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OOiB7XG4gICAgICBjb25zdCByZWFkeVJ1bnRpbWVFcnJvcjogUmVhZHlSdW50aW1lRXJyb3IgPSB7XG4gICAgICAgIGlkLFxuICAgICAgICBydW50aW1lOiB0cnVlLFxuICAgICAgICBlcnJvcjogZXZlbnQucmVhc29uLFxuICAgICAgICBmcmFtZXM6IGF3YWl0IGdldE9yaWdpbmFsU3RhY2tGcmFtZXMoXG4gICAgICAgICAgZXZlbnQuZnJhbWVzLFxuICAgICAgICAgIGdldEVycm9yU291cmNlKGV2ZW50LnJlYXNvbiksXG4gICAgICAgICAgaXNBcHBEaXIsXG4gICAgICAgICAgZXZlbnQucmVhc29uLnRvU3RyaW5nKClcbiAgICAgICAgKSxcbiAgICAgIH1cbiAgICAgIGlmIChldmVudC50eXBlID09PSBBQ1RJT05fVU5IQU5ETEVEX0VSUk9SKSB7XG4gICAgICAgIHJlYWR5UnVudGltZUVycm9yLmNvbXBvbmVudFN0YWNrRnJhbWVzID0gZXZlbnQuY29tcG9uZW50U3RhY2tGcmFtZXNcbiAgICAgIH1cbiAgICAgIHJldHVybiByZWFkeVJ1bnRpbWVFcnJvclxuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIGNvbnN0IF86IG5ldmVyID0gZXZlbnRcbiAgdGhyb3cgbmV3IEVycm9yKCd0eXBlIHN5c3RlbSBpbnZhcmlhbnQgdmlvbGF0aW9uJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRFcnJvckJ5VHlwZSIsImV2IiwiaXNBcHBEaXIiLCJpZCIsImV2ZW50IiwidHlwZSIsIkFDVElPTl9VTkhBTkRMRURfRVJST1IiLCJBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTiIsInJlYWR5UnVudGltZUVycm9yIiwicnVudGltZSIsImVycm9yIiwicmVhc29uIiwiZnJhbWVzIiwiZ2V0T3JpZ2luYWxTdGFja0ZyYW1lcyIsImdldEVycm9yU291cmNlIiwidG9TdHJpbmciLCJjb21wb25lbnRTdGFja0ZyYW1lcyIsIl8iLCJFcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-error-by-type.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-socket-url.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-socket-url.js ***! + \*******************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSocketUrl\", ({\n enumerable: true,\n get: function() {\n return getSocketUrl;\n }\n}));\nconst _normalizedassetprefix = __webpack_require__(/*! ../../../../../shared/lib/normalized-asset-prefix */ \"./node_modules/next/dist/shared/lib/normalized-asset-prefix.js\");\nfunction getSocketProtocol(assetPrefix) {\n let protocol = window.location.protocol;\n try {\n // assetPrefix is a url\n protocol = new URL(assetPrefix).protocol;\n } catch (e) {}\n return protocol === 'http:' ? 'ws:' : 'wss:';\n}\nfunction getSocketUrl(assetPrefix) {\n const prefix = (0, _normalizedassetprefix.normalizedAssetPrefix)(assetPrefix);\n const protocol = getSocketProtocol(assetPrefix || '');\n if (URL.canParse(prefix)) {\n // since normalized asset prefix is ensured to be a URL format,\n // we can safely replace the protocol\n return prefix.replace(/^http/, 'ws');\n }\n const { hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? \":\" + port : '') + prefix;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-socket-url.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvZ2V0LXNvY2tldC11cmwuanMiLCJtYXBwaW5ncyI6Ijs7OztnREFhZ0JBOzs7ZUFBQUE7OzttREFic0I7QUFFdEMsU0FBU0Msa0JBQWtCQyxXQUFtQjtJQUM1QyxJQUFJQyxXQUFXQyxPQUFPQyxRQUFRLENBQUNGLFFBQVE7SUFFdkMsSUFBSTtRQUNGLHVCQUF1QjtRQUN2QkEsV0FBVyxJQUFJRyxJQUFJSixhQUFhQyxRQUFRO0lBQzFDLEVBQUUsVUFBTSxDQUFDO0lBRVQsT0FBT0EsYUFBYSxVQUFVLFFBQVE7QUFDeEM7QUFFTyxTQUFTSCxhQUFhRSxXQUErQjtJQUMxRCxNQUFNSyxTQUFTQyxDQUFBQSxHQUFBQSx1QkFBQUEscUJBQUFBLEVBQXNCTjtJQUNyQyxNQUFNQyxXQUFXRixrQkFBa0JDLGVBQWU7SUFFbEQsSUFBSUksSUFBSUcsUUFBUSxDQUFDRixTQUFTO1FBQ3hCLCtEQUErRDtRQUMvRCxxQ0FBcUM7UUFDckMsT0FBT0EsT0FBT0csT0FBTyxDQUFDLFNBQVM7SUFDakM7SUFFQSxNQUFNLEVBQUVDLFFBQVEsRUFBRUMsSUFBSSxFQUFFLEdBQUdSLE9BQU9DLFFBQVE7SUFDMUMsT0FBVUYsV0FBUyxPQUFJUSxXQUFXQyxDQUFBQSxPQUFRLE1BQUdBLE9BQVMsR0FBQyxHQUFJTDtBQUM3RCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9oZWxwZXJzL2dldC1zb2NrZXQtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZWRBc3NldFByZWZpeCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvbm9ybWFsaXplZC1hc3NldC1wcmVmaXgnXG5cbmZ1bmN0aW9uIGdldFNvY2tldFByb3RvY29sKGFzc2V0UHJlZml4OiBzdHJpbmcpOiBzdHJpbmcge1xuICBsZXQgcHJvdG9jb2wgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2xcblxuICB0cnkge1xuICAgIC8vIGFzc2V0UHJlZml4IGlzIGEgdXJsXG4gICAgcHJvdG9jb2wgPSBuZXcgVVJMKGFzc2V0UHJlZml4KS5wcm90b2NvbFxuICB9IGNhdGNoIHt9XG5cbiAgcmV0dXJuIHByb3RvY29sID09PSAnaHR0cDonID8gJ3dzOicgOiAnd3NzOidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNvY2tldFVybChhc3NldFByZWZpeDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgY29uc3QgcHJlZml4ID0gbm9ybWFsaXplZEFzc2V0UHJlZml4KGFzc2V0UHJlZml4KVxuICBjb25zdCBwcm90b2NvbCA9IGdldFNvY2tldFByb3RvY29sKGFzc2V0UHJlZml4IHx8ICcnKVxuXG4gIGlmIChVUkwuY2FuUGFyc2UocHJlZml4KSkge1xuICAgIC8vIHNpbmNlIG5vcm1hbGl6ZWQgYXNzZXQgcHJlZml4IGlzIGVuc3VyZWQgdG8gYmUgYSBVUkwgZm9ybWF0LFxuICAgIC8vIHdlIGNhbiBzYWZlbHkgcmVwbGFjZSB0aGUgcHJvdG9jb2xcbiAgICByZXR1cm4gcHJlZml4LnJlcGxhY2UoL15odHRwLywgJ3dzJylcbiAgfVxuXG4gIGNvbnN0IHsgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/IGA6JHtwb3J0fWAgOiAnJ30ke3ByZWZpeH1gXG59XG4iXSwibmFtZXMiOlsiZ2V0U29ja2V0VXJsIiwiZ2V0U29ja2V0UHJvdG9jb2wiLCJhc3NldFByZWZpeCIsInByb3RvY29sIiwid2luZG93IiwibG9jYXRpb24iLCJVUkwiLCJwcmVmaXgiLCJub3JtYWxpemVkQXNzZXRQcmVmaXgiLCJjYW5QYXJzZSIsInJlcGxhY2UiLCJob3N0bmFtZSIsInBvcnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-socket-url.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js ***! + \*************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getHydrationWarningType: function() {\n return getHydrationWarningType;\n },\n getReactHydrationDiffSegments: function() {\n return getReactHydrationDiffSegments;\n },\n hydrationErrorState: function() {\n return hydrationErrorState;\n },\n storeHydrationErrorStateFromConsoleArgs: function() {\n return storeHydrationErrorStateFromConsoleArgs;\n }\n});\nconst _ishydrationerror = __webpack_require__(/*! ../../../is-hydration-error */ \"./node_modules/next/dist/client/components/is-hydration-error.js\");\nconst hydrationErrorState = {};\n// https://github.com/facebook/react/blob/main/packages/react-dom/src/__tests__/ReactDOMHydrationDiff-test.js used as a reference\nconst htmlTagsWarnings = new Set([\n 'Warning: In HTML, %s cannot be a child of <%s>.%s\\nThis will cause a hydration error.%s',\n 'Warning: In HTML, %s cannot be a descendant of <%s>.\\nThis will cause a hydration error.%s',\n 'Warning: In HTML, text nodes cannot be a child of <%s>.\\nThis will cause a hydration error.',\n \"Warning: In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\\nThis will cause a hydration error.\",\n 'Warning: Expected server HTML to contain a matching <%s> in <%s>.%s',\n 'Warning: Did not expect server HTML to contain a <%s> in <%s>.%s'\n]);\nconst textAndTagsMismatchWarnings = new Set([\n 'Warning: Expected server HTML to contain a matching text node for \"%s\" in <%s>.%s',\n 'Warning: Did not expect server HTML to contain the text node \"%s\" in <%s>.%s'\n]);\nconst textMismatchWarning = 'Warning: Text content did not match. Server: \"%s\" Client: \"%s\"%s';\nconst getHydrationWarningType = (message)=>{\n if (typeof message !== 'string') {\n // TODO: Doesn't make sense to treat no message as a hydration error message.\n // We should bail out somewhere earlier.\n return 'text';\n }\n const normalizedMessage = message.startsWith('Warning: ') ? message : \"Warning: \" + message;\n if (isHtmlTagsWarning(normalizedMessage)) return 'tag';\n if (isTextInTagsMismatchWarning(normalizedMessage)) return 'text-in-tag';\n return 'text';\n};\nconst isHtmlTagsWarning = (message)=>htmlTagsWarnings.has(message);\nconst isTextMismatchWarning = (message)=>textMismatchWarning === message;\nconst isTextInTagsMismatchWarning = (msg)=>textAndTagsMismatchWarnings.has(msg);\nconst isKnownHydrationWarning = (message)=>{\n if (typeof message !== 'string') {\n return false;\n }\n // React 18 has the `Warning: ` prefix.\n // React 19 does not.\n const normalizedMessage = message.startsWith('Warning: ') ? message : \"Warning: \" + message;\n return isHtmlTagsWarning(normalizedMessage) || isTextInTagsMismatchWarning(normalizedMessage) || isTextMismatchWarning(normalizedMessage);\n};\nconst getReactHydrationDiffSegments = (msg)=>{\n if (msg) {\n const { message, diff } = (0, _ishydrationerror.getHydrationErrorStackInfo)(msg);\n if (message) return [\n message,\n diff\n ];\n }\n return undefined;\n};\nfunction storeHydrationErrorStateFromConsoleArgs() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const [msg, serverContent, clientContent, componentStack] = args;\n if (isKnownHydrationWarning(msg)) {\n hydrationErrorState.warning = [\n // remove the last %s from the message\n msg,\n serverContent,\n clientContent\n ];\n hydrationErrorState.componentStack = componentStack;\n hydrationErrorState.serverContent = serverContent;\n hydrationErrorState.clientContent = clientContent;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hydration-error-info.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvaHlkcmF0aW9uLWVycm9yLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBaUNhQSx1QkFBdUI7ZUFBdkJBOztJQTJDQUMsNkJBQTZCO2VBQTdCQTs7SUE3REFDLG1CQUFtQjtlQUFuQkE7O0lBNEVHQyx1Q0FBdUM7ZUFBdkNBOzs7OENBM0YyQjtBQWVwQyxNQUFNRCxzQkFBMkMsQ0FBQztBQUV6RCxpSUFBaUk7QUFDakksTUFBTUUsbUJBQW1CLElBQUlDLElBQUk7SUFDL0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFDRCxNQUFNQyw4QkFBOEIsSUFBSUQsSUFBSTtJQUMxQztJQUNBO0NBQ0Q7QUFDRCxNQUFNRSxzQkFDSjtBQUVLLE1BQU1QLDBCQUEwQixDQUNyQ1E7SUFFQSxJQUFJLE9BQU9BLFlBQVksVUFBVTtRQUMvQiw2RUFBNkU7UUFDN0Usd0NBQXdDO1FBQ3hDLE9BQU87SUFDVDtJQUVBLE1BQU1DLG9CQUFvQkQsUUFBUUUsVUFBVSxDQUFDLGVBQ3pDRixVQUNDLGNBQVdBO0lBRWhCLElBQUlHLGtCQUFrQkYsb0JBQW9CLE9BQU87SUFDakQsSUFBSUcsNEJBQTRCSCxvQkFBb0IsT0FBTztJQUUzRCxPQUFPO0FBQ1Q7QUFFQSxNQUFNRSxvQkFBb0IsQ0FBQ0gsVUFBb0JKLGlCQUFpQlMsR0FBRyxDQUFDTDtBQUVwRSxNQUFNTSx3QkFBd0IsQ0FBQ04sVUFDN0JELHdCQUF3QkM7QUFDMUIsTUFBTUksOEJBQThCLENBQUNHLE1BQ25DVCw0QkFBNEJPLEdBQUcsQ0FBQ0U7QUFFbEMsTUFBTUMsMEJBQTBCLENBQUNSO0lBQy9CLElBQUksT0FBT0EsWUFBWSxVQUFVO1FBQy9CLE9BQU87SUFDVDtJQUNBLHVDQUF1QztJQUN2QyxxQkFBcUI7SUFDckIsTUFBTUMsb0JBQW9CRCxRQUFRRSxVQUFVLENBQUMsZUFDekNGLFVBQ0MsY0FBV0E7SUFFaEIsT0FDRUcsa0JBQWtCRixzQkFDbEJHLDRCQUE0Qkgsc0JBQzVCSyxzQkFBc0JMO0FBRTFCO0FBRU8sTUFBTVIsZ0NBQWdDLENBQUNjO0lBQzVDLElBQUlBLEtBQUs7UUFDUCxNQUFNLEVBQUVQLE9BQU8sRUFBRVMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLGtCQUFBQSwwQkFBQUEsRUFBMkJIO1FBQ3JELElBQUlQLFNBQVMsT0FBTztZQUFDQTtZQUFTUztTQUFLO0lBQ3JDO0lBQ0EsT0FBT0U7QUFDVDtBQVNPLFNBQVNoQjtJQUF3QyxpQ0FBR2lCLE9BQUg7UUFBR0EsSUFBQUEsQ0FBSCx1QkFBYzs7SUFDcEUsTUFBTSxDQUFDTCxLQUFLTSxlQUFlQyxlQUFlQyxlQUFlLEdBQUdIO0lBQzVELElBQUlKLHdCQUF3QkQsTUFBTTtRQUNoQ2Isb0JBQW9Cc0IsT0FBTyxHQUFHO1lBQzVCLHNDQUFzQztZQUN0Q1Q7WUFDQU07WUFDQUM7U0FDRDtRQUNEcEIsb0JBQW9CcUIsY0FBYyxHQUFHQTtRQUNyQ3JCLG9CQUFvQm1CLGFBQWEsR0FBR0E7UUFDcENuQixvQkFBb0JvQixhQUFhLEdBQUdBO0lBQ3RDO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9oeWRyYXRpb24tZXJyb3ItaW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRIeWRyYXRpb25FcnJvclN0YWNrSW5mbyB9IGZyb20gJy4uLy4uLy4uL2lzLWh5ZHJhdGlvbi1lcnJvcidcblxuZXhwb3J0IHR5cGUgSHlkcmF0aW9uRXJyb3JTdGF0ZSA9IHtcbiAgLy8gSHlkcmF0aW9uIHdhcm5pbmcgdGVtcGxhdGUgZm9ybWF0OiA8bWVzc2FnZT4gPHNlcnZlckNvbnRlbnQ+IDxjbGllbnRDb250ZW50PlxuICB3YXJuaW5nPzogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddXG4gIGNvbXBvbmVudFN0YWNrPzogc3RyaW5nXG4gIHNlcnZlckNvbnRlbnQ/OiBzdHJpbmdcbiAgY2xpZW50Q29udGVudD86IHN0cmluZ1xuICAvLyBSZWFjdCAxOSBoeWRyYXRpb24gZGlmZiBmb3JtYXQ6IDxub3Rlcz4gPGxpbms+IDxjb21wb25lbnQgZGlmZj8+XG4gIG5vdGVzPzogc3RyaW5nXG4gIHJlYWN0T3V0cHV0Q29tcG9uZW50RGlmZj86IHN0cmluZ1xufVxuXG50eXBlIE51bGxhYmxlVGV4dCA9IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWRcblxuZXhwb3J0IGNvbnN0IGh5ZHJhdGlvbkVycm9yU3RhdGU6IEh5ZHJhdGlvbkVycm9yU3RhdGUgPSB7fVxuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9tYWluL3BhY2thZ2VzL3JlYWN0LWRvbS9zcmMvX190ZXN0c19fL1JlYWN0RE9NSHlkcmF0aW9uRGlmZi10ZXN0LmpzIHVzZWQgYXMgYSByZWZlcmVuY2VcbmNvbnN0IGh0bWxUYWdzV2FybmluZ3MgPSBuZXcgU2V0KFtcbiAgJ1dhcm5pbmc6IEluIEhUTUwsICVzIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwlcz4uJXNcXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3IuJXMnLFxuICAnV2FybmluZzogSW4gSFRNTCwgJXMgY2Fubm90IGJlIGEgZGVzY2VuZGFudCBvZiA8JXM+LlxcblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvci4lcycsXG4gICdXYXJuaW5nOiBJbiBIVE1MLCB0ZXh0IG5vZGVzIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwlcz4uXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yLicsXG4gIFwiV2FybmluZzogSW4gSFRNTCwgd2hpdGVzcGFjZSB0ZXh0IG5vZGVzIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwlcz4uIE1ha2Ugc3VyZSB5b3UgZG9uJ3QgaGF2ZSBhbnkgZXh0cmEgd2hpdGVzcGFjZSBiZXR3ZWVuIHRhZ3Mgb24gZWFjaCBsaW5lIG9mIHlvdXIgc291cmNlIGNvZGUuXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yLlwiLFxuICAnV2FybmluZzogRXhwZWN0ZWQgc2VydmVyIEhUTUwgdG8gY29udGFpbiBhIG1hdGNoaW5nIDwlcz4gaW4gPCVzPi4lcycsXG4gICdXYXJuaW5nOiBEaWQgbm90IGV4cGVjdCBzZXJ2ZXIgSFRNTCB0byBjb250YWluIGEgPCVzPiBpbiA8JXM+LiVzJyxcbl0pXG5jb25zdCB0ZXh0QW5kVGFnc01pc21hdGNoV2FybmluZ3MgPSBuZXcgU2V0KFtcbiAgJ1dhcm5pbmc6IEV4cGVjdGVkIHNlcnZlciBIVE1MIHRvIGNvbnRhaW4gYSBtYXRjaGluZyB0ZXh0IG5vZGUgZm9yIFwiJXNcIiBpbiA8JXM+LiVzJyxcbiAgJ1dhcm5pbmc6IERpZCBub3QgZXhwZWN0IHNlcnZlciBIVE1MIHRvIGNvbnRhaW4gdGhlIHRleHQgbm9kZSBcIiVzXCIgaW4gPCVzPi4lcycsXG5dKVxuY29uc3QgdGV4dE1pc21hdGNoV2FybmluZyA9XG4gICdXYXJuaW5nOiBUZXh0IGNvbnRlbnQgZGlkIG5vdCBtYXRjaC4gU2VydmVyOiBcIiVzXCIgQ2xpZW50OiBcIiVzXCIlcydcblxuZXhwb3J0IGNvbnN0IGdldEh5ZHJhdGlvbldhcm5pbmdUeXBlID0gKFxuICBtZXNzYWdlOiBOdWxsYWJsZVRleHRcbik6ICd0YWcnIHwgJ3RleHQnIHwgJ3RleHQtaW4tdGFnJyA9PiB7XG4gIGlmICh0eXBlb2YgbWVzc2FnZSAhPT0gJ3N0cmluZycpIHtcbiAgICAvLyBUT0RPOiBEb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gdHJlYXQgbm8gbWVzc2FnZSBhcyBhIGh5ZHJhdGlvbiBlcnJvciBtZXNzYWdlLlxuICAgIC8vIFdlIHNob3VsZCBiYWlsIG91dCBzb21ld2hlcmUgZWFybGllci5cbiAgICByZXR1cm4gJ3RleHQnXG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkTWVzc2FnZSA9IG1lc3NhZ2Uuc3RhcnRzV2l0aCgnV2FybmluZzogJylcbiAgICA/IG1lc3NhZ2VcbiAgICA6IGBXYXJuaW5nOiAke21lc3NhZ2V9YFxuXG4gIGlmIChpc0h0bWxUYWdzV2FybmluZyhub3JtYWxpemVkTWVzc2FnZSkpIHJldHVybiAndGFnJ1xuICBpZiAoaXNUZXh0SW5UYWdzTWlzbWF0Y2hXYXJuaW5nKG5vcm1hbGl6ZWRNZXNzYWdlKSkgcmV0dXJuICd0ZXh0LWluLXRhZydcblxuICByZXR1cm4gJ3RleHQnXG59XG5cbmNvbnN0IGlzSHRtbFRhZ3NXYXJuaW5nID0gKG1lc3NhZ2U6IHN0cmluZykgPT4gaHRtbFRhZ3NXYXJuaW5ncy5oYXMobWVzc2FnZSlcblxuY29uc3QgaXNUZXh0TWlzbWF0Y2hXYXJuaW5nID0gKG1lc3NhZ2U6IHN0cmluZykgPT5cbiAgdGV4dE1pc21hdGNoV2FybmluZyA9PT0gbWVzc2FnZVxuY29uc3QgaXNUZXh0SW5UYWdzTWlzbWF0Y2hXYXJuaW5nID0gKG1zZzogc3RyaW5nKSA9PlxuICB0ZXh0QW5kVGFnc01pc21hdGNoV2FybmluZ3MuaGFzKG1zZylcblxuY29uc3QgaXNLbm93bkh5ZHJhdGlvbldhcm5pbmcgPSAobWVzc2FnZTogTnVsbGFibGVUZXh0KSA9PiB7XG4gIGlmICh0eXBlb2YgbWVzc2FnZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICAvLyBSZWFjdCAxOCBoYXMgdGhlIGBXYXJuaW5nOiBgIHByZWZpeC5cbiAgLy8gUmVhY3QgMTkgZG9lcyBub3QuXG4gIGNvbnN0IG5vcm1hbGl6ZWRNZXNzYWdlID0gbWVzc2FnZS5zdGFydHNXaXRoKCdXYXJuaW5nOiAnKVxuICAgID8gbWVzc2FnZVxuICAgIDogYFdhcm5pbmc6ICR7bWVzc2FnZX1gXG5cbiAgcmV0dXJuIChcbiAgICBpc0h0bWxUYWdzV2FybmluZyhub3JtYWxpemVkTWVzc2FnZSkgfHxcbiAgICBpc1RleHRJblRhZ3NNaXNtYXRjaFdhcm5pbmcobm9ybWFsaXplZE1lc3NhZ2UpIHx8XG4gICAgaXNUZXh0TWlzbWF0Y2hXYXJuaW5nKG5vcm1hbGl6ZWRNZXNzYWdlKVxuICApXG59XG5cbmV4cG9ydCBjb25zdCBnZXRSZWFjdEh5ZHJhdGlvbkRpZmZTZWdtZW50cyA9IChtc2c6IE51bGxhYmxlVGV4dCkgPT4ge1xuICBpZiAobXNnKSB7XG4gICAgY29uc3QgeyBtZXNzYWdlLCBkaWZmIH0gPSBnZXRIeWRyYXRpb25FcnJvclN0YWNrSW5mbyhtc2cpXG4gICAgaWYgKG1lc3NhZ2UpIHJldHVybiBbbWVzc2FnZSwgZGlmZl1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogUGF0Y2ggY29uc29sZS5lcnJvciB0byBjYXB0dXJlIGh5ZHJhdGlvbiBlcnJvcnMuXG4gKiBJZiBhbnkgb2YgdGhlIGtub3duSHlkcmF0aW9uV2FybmluZ3MgYXJlIGxvZ2dlZCwgc3RvcmUgdGhlIG1lc3NhZ2UgYW5kIGNvbXBvbmVudCBzdGFjay5cbiAqIFdoZW4gdGhlIGh5ZHJhdGlvbiBydW50aW1lIGVycm9yIGlzIHRocm93biwgdGhlIG1lc3NhZ2UgYW5kIGNvbXBvbmVudCBzdGFjayBhcmUgYWRkZWQgdG8gdGhlIGVycm9yLlxuICogVGhpcyByZXN1bHRzIGluIGEgbW9yZSBoZWxwZnVsIGVycm9yIG1lc3NhZ2UgaW4gdGhlIGVycm9yIG92ZXJsYXkuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIHN0b3JlSHlkcmF0aW9uRXJyb3JTdGF0ZUZyb21Db25zb2xlQXJncyguLi5hcmdzOiBhbnlbXSkge1xuICBjb25zdCBbbXNnLCBzZXJ2ZXJDb250ZW50LCBjbGllbnRDb250ZW50LCBjb21wb25lbnRTdGFja10gPSBhcmdzXG4gIGlmIChpc0tub3duSHlkcmF0aW9uV2FybmluZyhtc2cpKSB7XG4gICAgaHlkcmF0aW9uRXJyb3JTdGF0ZS53YXJuaW5nID0gW1xuICAgICAgLy8gcmVtb3ZlIHRoZSBsYXN0ICVzIGZyb20gdGhlIG1lc3NhZ2VcbiAgICAgIG1zZyxcbiAgICAgIHNlcnZlckNvbnRlbnQsXG4gICAgICBjbGllbnRDb250ZW50LFxuICAgIF1cbiAgICBoeWRyYXRpb25FcnJvclN0YXRlLmNvbXBvbmVudFN0YWNrID0gY29tcG9uZW50U3RhY2tcbiAgICBoeWRyYXRpb25FcnJvclN0YXRlLnNlcnZlckNvbnRlbnQgPSBzZXJ2ZXJDb250ZW50XG4gICAgaHlkcmF0aW9uRXJyb3JTdGF0ZS5jbGllbnRDb250ZW50ID0gY2xpZW50Q29udGVudFxuICB9XG59XG4iXSwibmFtZXMiOlsiZ2V0SHlkcmF0aW9uV2FybmluZ1R5cGUiLCJnZXRSZWFjdEh5ZHJhdGlvbkRpZmZTZWdtZW50cyIsImh5ZHJhdGlvbkVycm9yU3RhdGUiLCJzdG9yZUh5ZHJhdGlvbkVycm9yU3RhdGVGcm9tQ29uc29sZUFyZ3MiLCJodG1sVGFnc1dhcm5pbmdzIiwiU2V0IiwidGV4dEFuZFRhZ3NNaXNtYXRjaFdhcm5pbmdzIiwidGV4dE1pc21hdGNoV2FybmluZyIsIm1lc3NhZ2UiLCJub3JtYWxpemVkTWVzc2FnZSIsInN0YXJ0c1dpdGgiLCJpc0h0bWxUYWdzV2FybmluZyIsImlzVGV4dEluVGFnc01pc21hdGNoV2FybmluZyIsImhhcyIsImlzVGV4dE1pc21hdGNoV2FybmluZyIsIm1zZyIsImlzS25vd25IeWRyYXRpb25XYXJuaW5nIiwiZGlmZiIsImdldEh5ZHJhdGlvbkVycm9yU3RhY2tJbmZvIiwidW5kZWZpbmVkIiwiYXJncyIsInNlcnZlckNvbnRlbnQiLCJjbGllbnRDb250ZW50IiwiY29tcG9uZW50U3RhY2siLCJ3YXJuaW5nIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/node-stack-frames.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/node-stack-frames.js ***! + \**********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getFilesystemFrame: function() {\n return getFilesystemFrame;\n },\n getServerError: function() {\n return getServerError;\n }\n});\nconst _stacktraceparser = __webpack_require__(/*! next/dist/compiled/stacktrace-parser */ \"./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\");\nconst _errorsource = __webpack_require__(/*! ../../../../../shared/lib/error-source */ \"./node_modules/next/dist/shared/lib/error-source.js\");\nfunction getFilesystemFrame(frame) {\n const f = {\n ...frame\n };\n if (typeof f.file === 'string') {\n if (f.file.startsWith('/') || // Win32:\n /^[a-z]:\\\\/i.test(f.file) || // Win32 UNC:\n f.file.startsWith('\\\\\\\\')) {\n f.file = \"file://\" + f.file;\n }\n }\n return f;\n}\nfunction getServerError(error, type) {\n if (error.name === 'TurbopackInternalError') {\n // If this is an internal Turbopack error we shouldn't show internal details\n // to the user. These are written to a log file instead.\n const turbopackInternalError = new Error('An unexpected Turbopack error occurred. Please see the output of `next dev` for more details.');\n (0, _errorsource.decorateServerError)(turbopackInternalError, type);\n return turbopackInternalError;\n }\n let n;\n try {\n throw new Error(error.message);\n } catch (e) {\n n = e;\n }\n n.name = error.name;\n try {\n n.stack = n.toString() + \"\\n\" + (0, _stacktraceparser.parse)(error.stack).map(getFilesystemFrame).map((f)=>{\n let str = \" at \" + f.methodName;\n if (f.file) {\n let loc = f.file;\n if (f.lineNumber) {\n loc += \":\" + f.lineNumber;\n if (f.column) {\n loc += \":\" + f.column;\n }\n }\n str += \" (\" + loc + \")\";\n }\n return str;\n }).join('\\n');\n } catch (e) {\n n.stack = error.stack;\n }\n (0, _errorsource.decorateServerError)(n, type);\n return n;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=node-stack-frames.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvbm9kZS1zdGFjay1mcmFtZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBT2dCQSxrQkFBa0I7ZUFBbEJBOztJQW1CQUMsY0FBYztlQUFkQTs7OzhDQTFCTTt5Q0FLZjtBQUVBLFNBQVNELG1CQUFtQkUsS0FBaUI7SUFDbEQsTUFBTUMsSUFBZ0I7UUFBRSxHQUFHRCxLQUFLO0lBQUM7SUFFakMsSUFBSSxPQUFPQyxFQUFFQyxJQUFJLEtBQUssVUFBVTtRQUM5QixJQUNFLEVBQ0VBLElBQUksQ0FBQ0MsRUFERSxRQUNRLENBQUMsUUFDbEIsU0FBUztRQUNULGFBQWFDLElBQUksQ0FBQ0gsRUFBRUMsSUFBSSxLQUN4QixhQUFhO1FBQ2JELEVBQUVDLElBQUksQ0FBQ0MsVUFBVSxDQUFDLFNBQ2xCO1lBQ0FGLEVBQUVDLElBQUksR0FBSSxZQUFTRCxFQUFFQyxJQUFJO1FBQzNCO0lBQ0Y7SUFFQSxPQUFPRDtBQUNUO0FBRU8sU0FBU0YsZUFBZU0sS0FBWSxFQUFFQyxJQUFxQjtJQUNoRSxJQUFJRCxNQUFNRSxJQUFJLEtBQUssMEJBQTBCO1FBQzNDLDRFQUE0RTtRQUM1RSx3REFBd0Q7UUFDeEQsTUFBTUMseUJBQXlCLElBQUlDLE1BQ2pDO1FBRUZDLENBQUFBLEdBQUFBLGFBQUFBLG1CQUFBQSxFQUFvQkYsd0JBQXdCRjtRQUM1QyxPQUFPRTtJQUNUO0lBRUEsSUFBSUc7SUFDSixJQUFJO1FBQ0YsTUFBTSxJQUFJRixNQUFNSixNQUFNTyxPQUFPO0lBQy9CLEVBQUUsT0FBT0MsR0FBRztRQUNWRixJQUFJRTtJQUNOO0lBRUFGLEVBQUVKLElBQUksR0FBR0YsTUFBTUUsSUFBSTtJQUNuQixJQUFJO1FBQ0ZJLEVBQUVHLEtBQUssR0FBTUgsRUFBRUksUUFBUSxLQUFHLE9BQUlDLENBQUFBLEdBQUFBLGtCQUFBQSxLQUFBQSxFQUFNWCxNQUFNUyxLQUFLLEVBQzVDRyxHQUFHLENBQUNuQixvQkFDSm1CLEdBQUcsQ0FBQyxDQUFDaEI7WUFDSixJQUFJaUIsTUFBTyxZQUFTakIsRUFBRWtCLFVBQVU7WUFDaEMsSUFBSWxCLEVBQUVDLElBQUksRUFBRTtnQkFDVixJQUFJa0IsTUFBTW5CLEVBQUVDLElBQUk7Z0JBQ2hCLElBQUlELEVBQUVvQixVQUFVLEVBQUU7b0JBQ2hCRCxPQUFRLE1BQUduQixFQUFFb0IsVUFBVTtvQkFDdkIsSUFBSXBCLEVBQUVxQixNQUFNLEVBQUU7d0JBQ1pGLE9BQVEsTUFBR25CLEVBQUVxQixNQUFNO29CQUNyQjtnQkFDRjtnQkFDQUosT0FBUSxPQUFJRSxNQUFJO1lBQ2xCO1lBQ0EsT0FBT0Y7UUFDVCxHQUNDSyxJQUFJLENBQUM7SUFDVixFQUFFLFVBQU07UUFDTlosRUFBRUcsS0FBSyxHQUFHVCxNQUFNUyxLQUFLO0lBQ3ZCO0lBRUFKLENBQUFBLEdBQUFBLGFBQUFBLG1CQUFBQSxFQUFvQkMsR0FBR0w7SUFDdkIsT0FBT0s7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9oZWxwZXJzL25vZGUtc3RhY2stZnJhbWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhcnNlIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3N0YWNrdHJhY2UtcGFyc2VyJ1xuaW1wb3J0IHR5cGUgeyBTdGFja0ZyYW1lIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3N0YWNrdHJhY2UtcGFyc2VyJ1xuaW1wb3J0IHtcbiAgZGVjb3JhdGVTZXJ2ZXJFcnJvcixcbiAgdHlwZSBFcnJvclNvdXJjZVR5cGUsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9saWIvZXJyb3Itc291cmNlJ1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZXN5c3RlbUZyYW1lKGZyYW1lOiBTdGFja0ZyYW1lKTogU3RhY2tGcmFtZSB7XG4gIGNvbnN0IGY6IFN0YWNrRnJhbWUgPSB7IC4uLmZyYW1lIH1cblxuICBpZiAodHlwZW9mIGYuZmlsZSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoXG4gICAgICAvLyBQb3NpeDpcbiAgICAgIGYuZmlsZS5zdGFydHNXaXRoKCcvJykgfHxcbiAgICAgIC8vIFdpbjMyOlxuICAgICAgL15bYS16XTpcXFxcL2kudGVzdChmLmZpbGUpIHx8XG4gICAgICAvLyBXaW4zMiBVTkM6XG4gICAgICBmLmZpbGUuc3RhcnRzV2l0aCgnXFxcXFxcXFwnKVxuICAgICkge1xuICAgICAgZi5maWxlID0gYGZpbGU6Ly8ke2YuZmlsZX1gXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlcnZlckVycm9yKGVycm9yOiBFcnJvciwgdHlwZTogRXJyb3JTb3VyY2VUeXBlKTogRXJyb3Ige1xuICBpZiAoZXJyb3IubmFtZSA9PT0gJ1R1cmJvcGFja0ludGVybmFsRXJyb3InKSB7XG4gICAgLy8gSWYgdGhpcyBpcyBhbiBpbnRlcm5hbCBUdXJib3BhY2sgZXJyb3Igd2Ugc2hvdWxkbid0IHNob3cgaW50ZXJuYWwgZGV0YWlsc1xuICAgIC8vIHRvIHRoZSB1c2VyLiBUaGVzZSBhcmUgd3JpdHRlbiB0byBhIGxvZyBmaWxlIGluc3RlYWQuXG4gICAgY29uc3QgdHVyYm9wYWNrSW50ZXJuYWxFcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICdBbiB1bmV4cGVjdGVkIFR1cmJvcGFjayBlcnJvciBvY2N1cnJlZC4gUGxlYXNlIHNlZSB0aGUgb3V0cHV0IG9mIGBuZXh0IGRldmAgZm9yIG1vcmUgZGV0YWlscy4nXG4gICAgKVxuICAgIGRlY29yYXRlU2VydmVyRXJyb3IodHVyYm9wYWNrSW50ZXJuYWxFcnJvciwgdHlwZSlcbiAgICByZXR1cm4gdHVyYm9wYWNrSW50ZXJuYWxFcnJvclxuICB9XG5cbiAgbGV0IG46IEVycm9yXG4gIHRyeSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGVycm9yLm1lc3NhZ2UpXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBuID0gZSBhcyBFcnJvclxuICB9XG5cbiAgbi5uYW1lID0gZXJyb3IubmFtZVxuICB0cnkge1xuICAgIG4uc3RhY2sgPSBgJHtuLnRvU3RyaW5nKCl9XFxuJHtwYXJzZShlcnJvci5zdGFjayEpXG4gICAgICAubWFwKGdldEZpbGVzeXN0ZW1GcmFtZSlcbiAgICAgIC5tYXAoKGYpID0+IHtcbiAgICAgICAgbGV0IHN0ciA9IGAgICAgYXQgJHtmLm1ldGhvZE5hbWV9YFxuICAgICAgICBpZiAoZi5maWxlKSB7XG4gICAgICAgICAgbGV0IGxvYyA9IGYuZmlsZVxuICAgICAgICAgIGlmIChmLmxpbmVOdW1iZXIpIHtcbiAgICAgICAgICAgIGxvYyArPSBgOiR7Zi5saW5lTnVtYmVyfWBcbiAgICAgICAgICAgIGlmIChmLmNvbHVtbikge1xuICAgICAgICAgICAgICBsb2MgKz0gYDoke2YuY29sdW1ufWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgc3RyICs9IGAgKCR7bG9jfSlgXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0clxuICAgICAgfSlcbiAgICAgIC5qb2luKCdcXG4nKX1gXG4gIH0gY2F0Y2gge1xuICAgIG4uc3RhY2sgPSBlcnJvci5zdGFja1xuICB9XG5cbiAgZGVjb3JhdGVTZXJ2ZXJFcnJvcihuLCB0eXBlKVxuICByZXR1cm4gblxufVxuIl0sIm5hbWVzIjpbImdldEZpbGVzeXN0ZW1GcmFtZSIsImdldFNlcnZlckVycm9yIiwiZnJhbWUiLCJmIiwiZmlsZSIsInN0YXJ0c1dpdGgiLCJ0ZXN0IiwiZXJyb3IiLCJ0eXBlIiwibmFtZSIsInR1cmJvcGFja0ludGVybmFsRXJyb3IiLCJFcnJvciIsImRlY29yYXRlU2VydmVyRXJyb3IiLCJuIiwibWVzc2FnZSIsImUiLCJzdGFjayIsInRvU3RyaW5nIiwicGFyc2UiLCJtYXAiLCJzdHIiLCJtZXRob2ROYW1lIiwibG9jIiwibGluZU51bWJlciIsImNvbHVtbiIsImpvaW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/node-stack-frames.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js ***! + \******************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"noop\", ({\n enumerable: true,\n get: function() {\n return noop;\n }\n}));\nfunction noop(strings) {\n for(var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n keys[_key - 1] = arguments[_key];\n }\n const lastIndex = strings.length - 1;\n return strings.slice(0, lastIndex).reduce((p, s, i)=>p + s + keys[i], '') + strings[lastIndex];\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=noop-template.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZS5qcyIsIm1hcHBpbmdzIjoiOzs7O3dDQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsS0FDZEMsT0FBNkI7SUFDN0IsaUNBQUdDLE9BQUg7UUFBR0EsSUFBQUEsQ0FBSCwyQkFBMEI7O0lBRTFCLE1BQU1DLFlBQVlGLFFBQVFHLE1BQU0sR0FBRztJQUNuQyxPQUNFSCxRQUFRSSxLQUFLLENBQUMsR0FBR0YsV0FBV0csTUFBTSxDQUFDLENBQUNDLEdBQUdDLEdBQUdDLElBQU1GLElBQUlDLElBQUlOLElBQUksQ0FBQ08sRUFBRSxFQUFFLE1BQ2pFUixPQUFPLENBQUNFLFVBQVU7QUFFdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9ub29wLXRlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBub29wKFxuICBzdHJpbmdzOiBUZW1wbGF0ZVN0cmluZ3NBcnJheSxcbiAgLi4ua2V5czogcmVhZG9ubHkgc3RyaW5nW11cbikge1xuICBjb25zdCBsYXN0SW5kZXggPSBzdHJpbmdzLmxlbmd0aCAtIDFcbiAgcmV0dXJuIChcbiAgICBzdHJpbmdzLnNsaWNlKDAsIGxhc3RJbmRleCkucmVkdWNlKChwLCBzLCBpKSA9PiBwICsgcyArIGtleXNbaV0sICcnKSArXG4gICAgc3RyaW5nc1tsYXN0SW5kZXhdXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJub29wIiwic3RyaW5ncyIsImtleXMiLCJsYXN0SW5kZXgiLCJsZW5ndGgiLCJzbGljZSIsInJlZHVjZSIsInAiLCJzIiwiaSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js": +/*!**************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js ***! + \**************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseComponentStack\", ({\n enumerable: true,\n get: function() {\n return parseComponentStack;\n }\n}));\nvar LocationType = /*#__PURE__*/ function(LocationType) {\n LocationType[\"FILE\"] = \"file\";\n LocationType[\"WEBPACK_INTERNAL\"] = \"webpack-internal\";\n LocationType[\"HTTP\"] = \"http\";\n LocationType[\"PROTOCOL_RELATIVE\"] = \"protocol-relative\";\n LocationType[\"UNKNOWN\"] = \"unknown\";\n return LocationType;\n}(LocationType || {});\n/**\n * Get the type of frame line based on the location\n */ function getLocationType(location) {\n if (location.startsWith('file://')) {\n return \"file\";\n }\n if (location.includes('webpack-internal://')) {\n return \"webpack-internal\";\n }\n if (location.startsWith('http://') || location.startsWith('https://')) {\n return \"http\";\n }\n if (location.startsWith('//')) {\n return \"protocol-relative\";\n }\n return \"unknown\";\n}\nfunction parseStackFrameLocation(location) {\n const locationType = getLocationType(location);\n const modulePath = location == null ? void 0 : location.replace(/^(webpack-internal:\\/\\/\\/|file:\\/\\/)(\\(.*\\)\\/)?/, '');\n var _modulePath_match;\n const [, file, lineNumber, column] = (_modulePath_match = modulePath == null ? void 0 : modulePath.match(/^(.+):(\\d+):(\\d+)/)) != null ? _modulePath_match : [];\n switch(locationType){\n case \"file\":\n case \"webpack-internal\":\n return {\n canOpenInEditor: true,\n file,\n lineNumber: lineNumber ? Number(lineNumber) : undefined,\n column: column ? Number(column) : undefined\n };\n // When the location is a URL we only show the file\n // TODO: Resolve http(s) URLs through sourcemaps\n case \"http\":\n case \"protocol-relative\":\n case \"unknown\":\n default:\n {\n return {\n canOpenInEditor: false\n };\n }\n }\n}\nfunction parseComponentStack(componentStack) {\n const componentStackFrames = [];\n for (const line of componentStack.trim().split('\\n')){\n // TODO: support safari stack trace\n // Get component and file from the component stack line\n const match = /at ([^ ]+)( \\((.*)\\))?/.exec(line);\n if (match == null ? void 0 : match[1]) {\n const component = match[1];\n const location = match[3];\n if (!location) {\n componentStackFrames.push({\n canOpenInEditor: false,\n component\n });\n continue;\n }\n // Stop parsing the component stack if we reach a Next.js component\n if (location == null ? void 0 : location.includes('next/dist')) {\n break;\n }\n const frameLocation = parseStackFrameLocation(location);\n componentStackFrames.push({\n component,\n ...frameLocation\n });\n }\n }\n return componentStackFrames;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=parse-component-stack.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvcGFyc2UtY29tcG9uZW50LXN0YWNrLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBcUVnQkE7OztlQUFBQTs7O0FBN0RoQixJQUFLQyxlQUFBQSxXQUFBQSxHQUFBQSxTQUFBQSxZQUFBQTs7Ozs7O1dBQUFBO0VBQUFBLGdCQUFBQSxDQUFBQTtBQVFMOztDQUVDLEdBQ0QsU0FBU0MsZ0JBQWdCQyxRQUFnQjtJQUN2QyxJQUFJQSxTQUFTQyxVQUFVLENBQUMsWUFBWTtRQUNsQztJQUNGO0lBQ0EsSUFBSUQsU0FBU0UsUUFBUSxDQUFDLHdCQUF3QjtRQUM1QztJQUNGO0lBQ0EsSUFBSUYsU0FBU0MsVUFBVSxDQUFDLGNBQWNELFNBQVNDLFVBQVUsQ0FBQyxhQUFhO1FBQ3JFO0lBQ0Y7SUFDQSxJQUFJRCxTQUFTQyxVQUFVLENBQUMsT0FBTztRQUM3QjtJQUNGO0lBQ0E7QUFDRjtBQUVBLFNBQVNFLHdCQUNQSCxRQUFnQjtJQUVoQixNQUFNSSxlQUFlTCxnQkFBZ0JDO0lBRXJDLE1BQU1LLGFBQWFMLFlBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFNBQVVNLE9BQU8sQ0FDbEMsbURBQ0E7UUFHQUQ7SUFERixNQUFNLEdBQUdFLE1BQU1DLFlBQVlDLE9BQU8sR0FDaENKLENBQUFBLG9CQUFBQSxjQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxXQUFZSyxLQUFLLENBQUMsZ0NBQWxCTCxvQkFBMEMsRUFBRTtJQUU5QyxPQUFRRDtRQUNOO1FBQ0E7WUFDRSxPQUFPO2dCQUNMTyxpQkFBaUI7Z0JBQ2pCSjtnQkFDQUMsWUFBWUEsYUFBYUksT0FBT0osY0FBY0s7Z0JBQzlDSixRQUFRQSxTQUFTRyxPQUFPSCxVQUFVSTtZQUNwQztRQUNGLG1EQUFtRDtRQUNuRCxnREFBZ0Q7UUFDaEQ7UUFDQTtRQUNBO1FBQ0E7WUFBUztnQkFDUCxPQUFPO29CQUNMRixpQkFBaUI7Z0JBQ25CO1lBQ0Y7SUFDRjtBQUNGO0FBRU8sU0FBU2Qsb0JBQ2RpQixjQUFzQjtJQUV0QixNQUFNQyx1QkFBOEMsRUFBRTtJQUN0RCxLQUFLLE1BQU1DLFFBQVFGLGVBQWVHLElBQUksR0FBR0MsS0FBSyxDQUFDLE1BQU87UUFDcEQsbUNBQW1DO1FBQ25DLHVEQUF1RDtRQUN2RCxNQUFNUixRQUFRLHlCQUF5QlMsSUFBSSxDQUFDSDtRQUM1QyxJQUFJTixTQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxLQUFPLENBQUMsRUFBRSxFQUFFO1lBQ2QsTUFBTVUsWUFBWVYsS0FBSyxDQUFDLEVBQUU7WUFDMUIsTUFBTVYsV0FBV1UsS0FBSyxDQUFDLEVBQUU7WUFFekIsSUFBSSxDQUFDVixVQUFVO2dCQUNiZSxxQkFBcUJNLElBQUksQ0FBQztvQkFDeEJWLGlCQUFpQjtvQkFDakJTO2dCQUNGO2dCQUNBO1lBQ0Y7WUFFQSxtRUFBbUU7WUFDbkUsSUFBSXBCLFlBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFNBQVVFLFFBQVEsQ0FBQyxjQUFjO2dCQUNuQztZQUNGO1lBRUEsTUFBTW9CLGdCQUFnQm5CLHdCQUF3Qkg7WUFDOUNlLHFCQUFxQk0sSUFBSSxDQUFDO2dCQUN4QkQ7Z0JBQ0EsR0FBR0UsYUFBYTtZQUNsQjtRQUNGO0lBQ0Y7SUFFQSxPQUFPUDtBQUNUIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvcGFyc2UtY29tcG9uZW50LXN0YWNrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIENvbXBvbmVudFN0YWNrRnJhbWUgPSB7XG4gIGNhbk9wZW5JbkVkaXRvcjogYm9vbGVhblxuICBjb21wb25lbnQ6IHN0cmluZ1xuICBmaWxlPzogc3RyaW5nXG4gIGxpbmVOdW1iZXI/OiBudW1iZXJcbiAgY29sdW1uPzogbnVtYmVyXG59XG5cbmVudW0gTG9jYXRpb25UeXBlIHtcbiAgRklMRSA9ICdmaWxlJyxcbiAgV0VCUEFDS19JTlRFUk5BTCA9ICd3ZWJwYWNrLWludGVybmFsJyxcbiAgSFRUUCA9ICdodHRwJyxcbiAgUFJPVE9DT0xfUkVMQVRJVkUgPSAncHJvdG9jb2wtcmVsYXRpdmUnLFxuICBVTktOT1dOID0gJ3Vua25vd24nLFxufVxuXG4vKipcbiAqIEdldCB0aGUgdHlwZSBvZiBmcmFtZSBsaW5lIGJhc2VkIG9uIHRoZSBsb2NhdGlvblxuICovXG5mdW5jdGlvbiBnZXRMb2NhdGlvblR5cGUobG9jYXRpb246IHN0cmluZyk6IExvY2F0aW9uVHlwZSB7XG4gIGlmIChsb2NhdGlvbi5zdGFydHNXaXRoKCdmaWxlOi8vJykpIHtcbiAgICByZXR1cm4gTG9jYXRpb25UeXBlLkZJTEVcbiAgfVxuICBpZiAobG9jYXRpb24uaW5jbHVkZXMoJ3dlYnBhY2staW50ZXJuYWw6Ly8nKSkge1xuICAgIHJldHVybiBMb2NhdGlvblR5cGUuV0VCUEFDS19JTlRFUk5BTFxuICB9XG4gIGlmIChsb2NhdGlvbi5zdGFydHNXaXRoKCdodHRwOi8vJykgfHwgbG9jYXRpb24uc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSkge1xuICAgIHJldHVybiBMb2NhdGlvblR5cGUuSFRUUFxuICB9XG4gIGlmIChsb2NhdGlvbi5zdGFydHNXaXRoKCcvLycpKSB7XG4gICAgcmV0dXJuIExvY2F0aW9uVHlwZS5QUk9UT0NPTF9SRUxBVElWRVxuICB9XG4gIHJldHVybiBMb2NhdGlvblR5cGUuVU5LTk9XTlxufVxuXG5mdW5jdGlvbiBwYXJzZVN0YWNrRnJhbWVMb2NhdGlvbihcbiAgbG9jYXRpb246IHN0cmluZ1xuKTogT21pdDxDb21wb25lbnRTdGFja0ZyYW1lLCAnY29tcG9uZW50Jz4ge1xuICBjb25zdCBsb2NhdGlvblR5cGUgPSBnZXRMb2NhdGlvblR5cGUobG9jYXRpb24pXG5cbiAgY29uc3QgbW9kdWxlUGF0aCA9IGxvY2F0aW9uPy5yZXBsYWNlKFxuICAgIC9eKHdlYnBhY2staW50ZXJuYWw6XFwvXFwvXFwvfGZpbGU6XFwvXFwvKShcXCguKlxcKVxcLyk/LyxcbiAgICAnJ1xuICApXG4gIGNvbnN0IFssIGZpbGUsIGxpbmVOdW1iZXIsIGNvbHVtbl0gPVxuICAgIG1vZHVsZVBhdGg/Lm1hdGNoKC9eKC4rKTooXFxkKyk6KFxcZCspLykgPz8gW11cblxuICBzd2l0Y2ggKGxvY2F0aW9uVHlwZSkge1xuICAgIGNhc2UgTG9jYXRpb25UeXBlLkZJTEU6XG4gICAgY2FzZSBMb2NhdGlvblR5cGUuV0VCUEFDS19JTlRFUk5BTDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNhbk9wZW5JbkVkaXRvcjogdHJ1ZSxcbiAgICAgICAgZmlsZSxcbiAgICAgICAgbGluZU51bWJlcjogbGluZU51bWJlciA/IE51bWJlcihsaW5lTnVtYmVyKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgY29sdW1uOiBjb2x1bW4gPyBOdW1iZXIoY29sdW1uKSA6IHVuZGVmaW5lZCxcbiAgICAgIH1cbiAgICAvLyBXaGVuIHRoZSBsb2NhdGlvbiBpcyBhIFVSTCB3ZSBvbmx5IHNob3cgdGhlIGZpbGVcbiAgICAvLyBUT0RPOiBSZXNvbHZlIGh0dHAocykgVVJMcyB0aHJvdWdoIHNvdXJjZW1hcHNcbiAgICBjYXNlIExvY2F0aW9uVHlwZS5IVFRQOlxuICAgIGNhc2UgTG9jYXRpb25UeXBlLlBST1RPQ09MX1JFTEFUSVZFOlxuICAgIGNhc2UgTG9jYXRpb25UeXBlLlVOS05PV046XG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY2FuT3BlbkluRWRpdG9yOiBmYWxzZSxcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29tcG9uZW50U3RhY2soXG4gIGNvbXBvbmVudFN0YWNrOiBzdHJpbmdcbik6IENvbXBvbmVudFN0YWNrRnJhbWVbXSB7XG4gIGNvbnN0IGNvbXBvbmVudFN0YWNrRnJhbWVzOiBDb21wb25lbnRTdGFja0ZyYW1lW10gPSBbXVxuICBmb3IgKGNvbnN0IGxpbmUgb2YgY29tcG9uZW50U3RhY2sudHJpbSgpLnNwbGl0KCdcXG4nKSkge1xuICAgIC8vIFRPRE86IHN1cHBvcnQgc2FmYXJpIHN0YWNrIHRyYWNlXG4gICAgLy8gR2V0IGNvbXBvbmVudCBhbmQgZmlsZSBmcm9tIHRoZSBjb21wb25lbnQgc3RhY2sgbGluZVxuICAgIGNvbnN0IG1hdGNoID0gL2F0IChbXiBdKykoIFxcKCguKilcXCkpPy8uZXhlYyhsaW5lKVxuICAgIGlmIChtYXRjaD8uWzFdKSB7XG4gICAgICBjb25zdCBjb21wb25lbnQgPSBtYXRjaFsxXVxuICAgICAgY29uc3QgbG9jYXRpb24gPSBtYXRjaFszXVxuXG4gICAgICBpZiAoIWxvY2F0aW9uKSB7XG4gICAgICAgIGNvbXBvbmVudFN0YWNrRnJhbWVzLnB1c2goe1xuICAgICAgICAgIGNhbk9wZW5JbkVkaXRvcjogZmFsc2UsXG4gICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICB9KVxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyBTdG9wIHBhcnNpbmcgdGhlIGNvbXBvbmVudCBzdGFjayBpZiB3ZSByZWFjaCBhIE5leHQuanMgY29tcG9uZW50XG4gICAgICBpZiAobG9jYXRpb24/LmluY2x1ZGVzKCduZXh0L2Rpc3QnKSkge1xuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmcmFtZUxvY2F0aW9uID0gcGFyc2VTdGFja0ZyYW1lTG9jYXRpb24obG9jYXRpb24pXG4gICAgICBjb21wb25lbnRTdGFja0ZyYW1lcy5wdXNoKHtcbiAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAuLi5mcmFtZUxvY2F0aW9uLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50U3RhY2tGcmFtZXNcbn1cbiJdLCJuYW1lcyI6WyJwYXJzZUNvbXBvbmVudFN0YWNrIiwiTG9jYXRpb25UeXBlIiwiZ2V0TG9jYXRpb25UeXBlIiwibG9jYXRpb24iLCJzdGFydHNXaXRoIiwiaW5jbHVkZXMiLCJwYXJzZVN0YWNrRnJhbWVMb2NhdGlvbiIsImxvY2F0aW9uVHlwZSIsIm1vZHVsZVBhdGgiLCJyZXBsYWNlIiwiZmlsZSIsImxpbmVOdW1iZXIiLCJjb2x1bW4iLCJtYXRjaCIsImNhbk9wZW5JbkVkaXRvciIsIk51bWJlciIsInVuZGVmaW5lZCIsImNvbXBvbmVudFN0YWNrIiwiY29tcG9uZW50U3RhY2tGcmFtZXMiLCJsaW5lIiwidHJpbSIsInNwbGl0IiwiZXhlYyIsImNvbXBvbmVudCIsInB1c2giLCJmcmFtZUxvY2F0aW9uIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-stack.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-stack.js ***! + \****************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseStack\", ({\n enumerable: true,\n get: function() {\n return parseStack;\n }\n}));\nconst _stacktraceparser = __webpack_require__(/*! next/dist/compiled/stacktrace-parser */ \"./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\");\nconst _ishydrationerror = __webpack_require__(/*! ../../../is-hydration-error */ \"./node_modules/next/dist/client/components/is-hydration-error.js\");\nconst regexNextStatic = /\\/_next(\\/static\\/.+)/;\nfunction parseStack(stack) {\n if (!stack) return [];\n const messageAndStack = stack.replace(/^Error: /, '');\n if ((0, _ishydrationerror.isReactHydrationErrorMessage)(messageAndStack)) {\n const { stack: parsedStack } = (0, _ishydrationerror.getHydrationErrorStackInfo)(messageAndStack);\n if (parsedStack) {\n stack = parsedStack;\n }\n }\n // throw away eval information that stacktrace-parser doesn't support\n // adapted from https://github.com/stacktracejs/error-stack-parser/blob/9f33c224b5d7b607755eb277f9d51fcdb7287e24/error-stack-parser.js#L59C33-L59C62\n stack = stack.split('\\n').map((line)=>{\n if (line.includes('(eval ')) {\n line = line.replace(/eval code/g, 'eval').replace(/\\(eval at [^()]* \\(/, '(file://').replace(/\\),.*$/g, ')');\n }\n return line;\n }).join('\\n');\n const frames = (0, _stacktraceparser.parse)(stack);\n return frames.map((frame)=>{\n try {\n const url = new URL(frame.file);\n const res = regexNextStatic.exec(url.pathname);\n if (res) {\n var _process_env___NEXT_DIST_DIR_replace, _process_env___NEXT_DIST_DIR;\n const distDir = (_process_env___NEXT_DIST_DIR = \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/.next\") == null ? void 0 : (_process_env___NEXT_DIST_DIR_replace = _process_env___NEXT_DIST_DIR.replace(/\\\\/g, '/')) == null ? void 0 : _process_env___NEXT_DIST_DIR_replace.replace(/\\/$/, '');\n if (distDir) {\n frame.file = 'file://' + distDir.concat(res.pop()) + url.search;\n }\n }\n } catch (e) {}\n return frame;\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=parse-stack.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvcGFyc2Utc3RhY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FTZ0JBOzs7ZUFBQUE7Ozs4Q0FUTTs4Q0FLZjtBQUVQLE1BQU1DLGtCQUFrQjtBQUVqQixTQUFTRCxXQUFXRSxLQUF5QjtJQUNsRCxJQUFJLENBQUNBLE9BQU8sT0FBTyxFQUFFO0lBQ3JCLE1BQU1DLGtCQUFrQkQsTUFBTUUsT0FBTyxDQUFDLFlBQVk7SUFDbEQsSUFBSUMsQ0FBQUEsR0FBQUEsa0JBQUFBLDRCQUFBQSxFQUE2QkYsa0JBQWtCO1FBQ2pELE1BQU0sRUFBRUQsT0FBT0ksV0FBVyxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLGtCQUFBQSwwQkFBQUEsRUFBMkJKO1FBQzFELElBQUlHLGFBQWE7WUFDZkosUUFBUUk7UUFDVjtJQUNGO0lBRUEscUVBQXFFO0lBQ3JFLG9KQUFvSjtJQUNwSkosUUFBUUEsTUFDTE0sS0FBSyxDQUFDLE1BQ05DLEdBQUcsQ0FBQyxDQUFDQztRQUNKLElBQUlBLEtBQUtDLFFBQVEsQ0FBQyxXQUFXO1lBQzNCRCxPQUFPQSxLQUNKTixPQUFPLENBQUMsY0FBYyxRQUN0QkEsT0FBTyxDQUFDLHVCQUF1QixZQUMvQkEsT0FBTyxDQUFDLFdBQVc7UUFDeEI7UUFFQSxPQUFPTTtJQUNULEdBQ0NFLElBQUksQ0FBQztJQUVSLE1BQU1DLFNBQVNDLENBQUFBLEdBQUFBLGtCQUFBQSxLQUFBQSxFQUFNWjtJQUNyQixPQUFPVyxPQUFPSixHQUFHLENBQUMsQ0FBQ007UUFDakIsSUFBSTtZQUNGLE1BQU1DLE1BQU0sSUFBSUMsSUFBSUYsTUFBTUcsSUFBSTtZQUM5QixNQUFNQyxNQUFNbEIsZ0JBQWdCbUIsSUFBSSxDQUFDSixJQUFJSyxRQUFRO1lBQzdDLElBQUlGLEtBQUs7b0JBQ1NHLHNDQUFBQTtnQkFBaEIsTUFBTUMsVUFBQUEsQ0FBVUQsK0JBQUFBLDBFQUFZRyxLQUFlLGlCQUEzQkgsdUNBQUFBLDZCQUNabEIsT0FBTyxDQUFDLE9BQU8seUJBREhrQixxQ0FFWmxCLE9BQU8sQ0FBQyxPQUFPO2dCQUNuQixJQUFJbUIsU0FBUztvQkFDWFIsTUFBTUcsSUFBSSxHQUFHLFlBQVlLLFFBQVFHLE1BQU0sQ0FBQ1AsSUFBSVEsR0FBRyxNQUFPWCxJQUFJWSxNQUFNO2dCQUNsRTtZQUNGO1FBQ0YsRUFBRSxVQUFNLENBQUM7UUFDVCxPQUFPYjtJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9wYXJzZS1zdGFjay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZSB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlcidcbmltcG9ydCB0eXBlIHsgU3RhY2tGcmFtZSB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlcidcbmltcG9ydCB7XG4gIGdldEh5ZHJhdGlvbkVycm9yU3RhY2tJbmZvLFxuICBpc1JlYWN0SHlkcmF0aW9uRXJyb3JNZXNzYWdlLFxufSBmcm9tICcuLi8uLi8uLi9pcy1oeWRyYXRpb24tZXJyb3InXG5cbmNvbnN0IHJlZ2V4TmV4dFN0YXRpYyA9IC9cXC9fbmV4dChcXC9zdGF0aWNcXC8uKykvXG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0YWNrKHN0YWNrOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBTdGFja0ZyYW1lW10ge1xuICBpZiAoIXN0YWNrKSByZXR1cm4gW11cbiAgY29uc3QgbWVzc2FnZUFuZFN0YWNrID0gc3RhY2sucmVwbGFjZSgvXkVycm9yOiAvLCAnJylcbiAgaWYgKGlzUmVhY3RIeWRyYXRpb25FcnJvck1lc3NhZ2UobWVzc2FnZUFuZFN0YWNrKSkge1xuICAgIGNvbnN0IHsgc3RhY2s6IHBhcnNlZFN0YWNrIH0gPSBnZXRIeWRyYXRpb25FcnJvclN0YWNrSW5mbyhtZXNzYWdlQW5kU3RhY2spXG4gICAgaWYgKHBhcnNlZFN0YWNrKSB7XG4gICAgICBzdGFjayA9IHBhcnNlZFN0YWNrXG4gICAgfVxuICB9XG5cbiAgLy8gdGhyb3cgYXdheSBldmFsIGluZm9ybWF0aW9uIHRoYXQgc3RhY2t0cmFjZS1wYXJzZXIgZG9lc24ndCBzdXBwb3J0XG4gIC8vIGFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vc3RhY2t0cmFjZWpzL2Vycm9yLXN0YWNrLXBhcnNlci9ibG9iLzlmMzNjMjI0YjVkN2I2MDc3NTVlYjI3N2Y5ZDUxZmNkYjcyODdlMjQvZXJyb3Itc3RhY2stcGFyc2VyLmpzI0w1OUMzMy1MNTlDNjJcbiAgc3RhY2sgPSBzdGFja1xuICAgIC5zcGxpdCgnXFxuJylcbiAgICAubWFwKChsaW5lKSA9PiB7XG4gICAgICBpZiAobGluZS5pbmNsdWRlcygnKGV2YWwgJykpIHtcbiAgICAgICAgbGluZSA9IGxpbmVcbiAgICAgICAgICAucmVwbGFjZSgvZXZhbCBjb2RlL2csICdldmFsJylcbiAgICAgICAgICAucmVwbGFjZSgvXFwoZXZhbCBhdCBbXigpXSogXFwoLywgJyhmaWxlOi8vJylcbiAgICAgICAgICAucmVwbGFjZSgvXFwpLC4qJC9nLCAnKScpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBsaW5lXG4gICAgfSlcbiAgICAuam9pbignXFxuJylcblxuICBjb25zdCBmcmFtZXMgPSBwYXJzZShzdGFjaylcbiAgcmV0dXJuIGZyYW1lcy5tYXAoKGZyYW1lKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoZnJhbWUuZmlsZSEpXG4gICAgICBjb25zdCByZXMgPSByZWdleE5leHRTdGF0aWMuZXhlYyh1cmwucGF0aG5hbWUpXG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIGNvbnN0IGRpc3REaXIgPSBwcm9jZXNzLmVudi5fX05FWFRfRElTVF9ESVJcbiAgICAgICAgICA/LnJlcGxhY2UoL1xcXFwvZywgJy8nKVxuICAgICAgICAgID8ucmVwbGFjZSgvXFwvJC8sICcnKVxuICAgICAgICBpZiAoZGlzdERpcikge1xuICAgICAgICAgIGZyYW1lLmZpbGUgPSAnZmlsZTovLycgKyBkaXN0RGlyLmNvbmNhdChyZXMucG9wKCkhKSArIHVybC5zZWFyY2hcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gY2F0Y2gge31cbiAgICByZXR1cm4gZnJhbWVcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJwYXJzZVN0YWNrIiwicmVnZXhOZXh0U3RhdGljIiwic3RhY2siLCJtZXNzYWdlQW5kU3RhY2siLCJyZXBsYWNlIiwiaXNSZWFjdEh5ZHJhdGlvbkVycm9yTWVzc2FnZSIsInBhcnNlZFN0YWNrIiwiZ2V0SHlkcmF0aW9uRXJyb3JTdGFja0luZm8iLCJzcGxpdCIsIm1hcCIsImxpbmUiLCJpbmNsdWRlcyIsImpvaW4iLCJmcmFtZXMiLCJwYXJzZSIsImZyYW1lIiwidXJsIiwiVVJMIiwiZmlsZSIsInJlcyIsImV4ZWMiLCJwYXRobmFtZSIsInByb2Nlc3MiLCJkaXN0RGlyIiwiZW52IiwiX19ORVhUX0RJU1RfRElSIiwiY29uY2F0IiwicG9wIiwic2VhcmNoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-stack.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/runtime-error-handler.js": +/*!**************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/runtime-error-handler.js ***! + \**************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RuntimeErrorHandler\", ({\n enumerable: true,\n get: function() {\n return RuntimeErrorHandler;\n }\n}));\nconst RuntimeErrorHandler = {\n hadRuntimeError: false\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=runtime-error-handler.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvcnVudGltZS1lcnJvci1oYW5kbGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHNCQUFzQjtJQUNqQ0MsaUJBQWlCO0FBQ25CIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvcnVudGltZS1lcnJvci1oYW5kbGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBSdW50aW1lRXJyb3JIYW5kbGVyID0ge1xuICBoYWRSdW50aW1lRXJyb3I6IGZhbHNlLFxufVxuIl0sIm5hbWVzIjpbIlJ1bnRpbWVFcnJvckhhbmRsZXIiLCJoYWRSdW50aW1lRXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/runtime-error-handler.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js ***! + \****************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getFrameSource: function() {\n return getFrameSource;\n },\n getOriginalStackFrames: function() {\n return getOriginalStackFrames;\n }\n});\nconst _webpackmodulepath = __webpack_require__(/*! ./webpack-module-path */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/webpack-module-path.js\");\nfunction getOriginalStackFrame(source, type, isAppDir, errorMessage) {\n var _source_file, _source_file1;\n async function _getOriginalStackFrame() {\n var _body_originalStackFrame;\n const params = new URLSearchParams();\n params.append('isServer', String(type === 'server'));\n params.append('isEdgeServer', String(type === 'edge-server'));\n params.append('isAppDirectory', String(isAppDir));\n params.append('errorMessage', errorMessage);\n for(const key in source){\n var _source_key;\n params.append(key, ((_source_key = source[key]) != null ? _source_key : '').toString());\n }\n const controller = new AbortController();\n const tm = setTimeout(()=>controller.abort(), 3000);\n const res = await self.fetch(( false || '') + \"/__nextjs_original-stack-frame?\" + params.toString(), {\n signal: controller.signal\n }).finally(()=>{\n clearTimeout(tm);\n });\n if (!res.ok || res.status === 204) {\n return Promise.reject(new Error(await res.text()));\n }\n const body = await res.json();\n return {\n error: false,\n reason: null,\n external: false,\n sourceStackFrame: source,\n originalStackFrame: body.originalStackFrame,\n originalCodeFrame: body.originalCodeFrame || null,\n sourcePackage: body.sourcePackage,\n ignored: ((_body_originalStackFrame = body.originalStackFrame) == null ? void 0 : _body_originalStackFrame.ignored) || false\n };\n }\n // TODO: merge this section into ignoredList handling\n if (source.file === 'file://' || ((_source_file = source.file) == null ? void 0 : _source_file.match(/^node:/)) || ((_source_file1 = source.file) == null ? void 0 : _source_file1.match(/https?:\\/\\//))) {\n return Promise.resolve({\n error: false,\n reason: null,\n external: true,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null,\n sourcePackage: null,\n ignored: true\n });\n }\n return _getOriginalStackFrame().catch((err)=>{\n var _err_message, _ref;\n return {\n error: true,\n reason: (_ref = (_err_message = err == null ? void 0 : err.message) != null ? _err_message : err == null ? void 0 : err.toString()) != null ? _ref : 'Unknown Error',\n external: false,\n sourceStackFrame: source,\n originalStackFrame: null,\n originalCodeFrame: null,\n sourcePackage: null,\n ignored: false\n };\n });\n}\nfunction getOriginalStackFrames(frames, type, isAppDir, errorMessage) {\n return Promise.all(frames.map((frame)=>getOriginalStackFrame(frame, type, isAppDir, errorMessage)));\n}\nfunction getFrameSource(frame) {\n if (!frame.file) return '';\n const isWebpackFrame = (0, _webpackmodulepath.isWebpackInternalResource)(frame.file);\n let str = '';\n // Skip URL parsing for webpack internal file paths.\n if (isWebpackFrame) {\n str = (0, _webpackmodulepath.formatFrameSourceFile)(frame.file);\n } else {\n try {\n var _globalThis_location;\n const u = new URL(frame.file);\n let parsedPath = '';\n // Strip the origin for same-origin scripts.\n if (((_globalThis_location = globalThis.location) == null ? void 0 : _globalThis_location.origin) !== u.origin) {\n // URLs can be valid without an `origin`, so long as they have a\n // `protocol`. However, `origin` is preferred.\n if (u.origin === 'null') {\n parsedPath += u.protocol;\n } else {\n parsedPath += u.origin;\n }\n }\n // Strip query string information as it's typically too verbose to be\n // meaningful.\n parsedPath += u.pathname;\n str = (0, _webpackmodulepath.formatFrameSourceFile)(parsedPath);\n } catch (e) {\n str = (0, _webpackmodulepath.formatFrameSourceFile)(frame.file);\n }\n }\n if (!(0, _webpackmodulepath.isWebpackInternalResource)(frame.file) && frame.lineNumber != null) {\n if (str) {\n if (frame.column != null) {\n str += \" (\" + frame.lineNumber + \":\" + frame.column + \")\";\n } else {\n str += \" (\" + frame.lineNumber + \")\";\n }\n }\n }\n return str;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=stack-frame.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvc3RhY2stZnJhbWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBc0dnQkEsY0FBYztlQUFkQTs7SUFiQUMsc0JBQXNCO2VBQXRCQTs7OytDQXBGVDtBQVNQLFNBQVNDLHNCQUNQQyxNQUFrQixFQUNsQkMsSUFBcUMsRUFDckNDLFFBQWlCLEVBQ2pCQyxZQUFvQjtRQTRDbEJILGNBQ0FBO0lBM0NGLGVBQWVJO1lBbUNGQztRQWxDWCxNQUFNQyxTQUFTLElBQUlDO1FBQ25CRCxPQUFPRSxNQUFNLENBQUMsWUFBWUMsT0FBT1IsU0FBUztRQUMxQ0ssT0FBT0UsTUFBTSxDQUFDLGdCQUFnQkMsT0FBT1IsU0FBUztRQUM5Q0ssT0FBT0UsTUFBTSxDQUFDLGtCQUFrQkMsT0FBT1A7UUFDdkNJLE9BQU9FLE1BQU0sQ0FBQyxnQkFBZ0JMO1FBQzlCLElBQUssTUFBTU8sT0FBT1YsT0FBUTtnQkFDSjtZQUFwQk0sT0FBT0UsTUFBTSxDQUFDRSxLQUFNLGdCQUFDVixNQUFjLENBQUNVLElBQUFBLEtBQUksT0FBcEIsY0FBd0IsR0FBQyxDQUFHQyxRQUFRO1FBQzFEO1FBRUEsTUFBTUMsYUFBYSxJQUFJQztRQUN2QixNQUFNQyxLQUFLQyxXQUFXLElBQU1ILFdBQVdJLEtBQUssSUFBSTtRQUNoRCxNQUFNQyxNQUFNLE1BQU1DLEtBQ2ZDLEtBQUssQ0FFRkMsQ0FBQUEsTUFBa0MsSUFBSSxHQUFDLEdBQ3hDLG9DQUFpQ2QsT0FBT0ssUUFBUSxJQUNqRDtZQUFFWSxRQUFRWCxXQUFXVyxNQUFNO1FBQUMsR0FFN0JDLE9BQU8sQ0FBQztZQUNQQyxhQUFhWDtRQUNmO1FBQ0YsSUFBSSxDQUFDRyxJQUFJUyxFQUFFLElBQUlULElBQUlVLE1BQU0sS0FBSyxLQUFLO1lBQ2pDLE9BQU9DLFFBQVFDLE1BQU0sQ0FBQyxJQUFJQyxNQUFNLE1BQU1iLElBQUljLElBQUk7UUFDaEQ7UUFFQSxNQUFNMUIsT0FBbUMsTUFBTVksSUFBSWUsSUFBSTtRQUN2RCxPQUFPO1lBQ0xDLE9BQU87WUFDUEMsUUFBUTtZQUNSQyxVQUFVO1lBQ1ZDLGtCQUFrQnBDO1lBQ2xCcUMsb0JBQW9CaEMsS0FBS2dDLGtCQUFrQjtZQUMzQ0MsbUJBQW1CakMsS0FBS2lDLGlCQUFpQixJQUFJO1lBQzdDQyxlQUFlbEMsS0FBS2tDLGFBQWE7WUFDakNDLFNBQVNuQyxDQUFBQSxDQUFBQSwyQkFBQUEsS0FBS2dDLGtCQUFBQSxLQUFrQixnQkFBdkJoQyx5QkFBeUJtQyxPQUFBQSxLQUFXO1FBQy9DO0lBQ0Y7SUFFQSxxREFBcUQ7SUFDckQsSUFDRXhDLE9BQU95QyxJQUFJLEtBQUssZUFDaEJ6QyxlQUFBQSxPQUFPeUMsSUFBQUEsS0FBSSxnQkFBWHpDLGFBQWEwQyxLQUFLLENBQUMsZ0JBQ25CMUMsZ0JBQUFBLE9BQU95QyxJQUFBQSxLQUFJLGdCQUFYekMsY0FBYTBDLEtBQUssQ0FBQyxpQkFDbkI7UUFDQSxPQUFPZCxRQUFRZSxPQUFPLENBQUM7WUFDckJWLE9BQU87WUFDUEMsUUFBUTtZQUNSQyxVQUFVO1lBQ1ZDLGtCQUFrQnBDO1lBQ2xCcUMsb0JBQW9CO1lBQ3BCQyxtQkFBbUI7WUFDbkJDLGVBQWU7WUFDZkMsU0FBUztRQUNYO0lBQ0Y7SUFFQSxPQUFPcEMseUJBQXlCd0MsS0FBSyxDQUFDLENBQUNDO1lBRTdCQSxjQUFBQTtlQUY2QztZQUNyRFosT0FBTztZQUNQQyxRQUFRVyxDQUFBQSxPQUFBQSxDQUFBQSxlQUFBQSxPQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxJQUFLQyxPQUFBQSxLQUFPLE9BQVpELGVBQWdCQSxPQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxJQUFLbEMsUUFBUSxjQUE3QmtDLE9BQW1DO1lBQzNDVixVQUFVO1lBQ1ZDLGtCQUFrQnBDO1lBQ2xCcUMsb0JBQW9CO1lBQ3BCQyxtQkFBbUI7WUFDbkJDLGVBQWU7WUFDZkMsU0FBUztRQUNYOztBQUNGO0FBRU8sU0FBUzFDLHVCQUNkaUQsTUFBb0IsRUFDcEI5QyxJQUFxQyxFQUNyQ0MsUUFBaUIsRUFDakJDLFlBQW9CO0lBRXBCLE9BQU95QixRQUFRb0IsR0FBRyxDQUNoQkQsT0FBT0UsR0FBRyxDQUFDLENBQUNDLFFBQ1ZuRCxzQkFBc0JtRCxPQUFPakQsTUFBTUMsVUFBVUM7QUFHbkQ7QUFFTyxTQUFTTixlQUFlcUQsS0FBaUI7SUFDOUMsSUFBSSxDQUFDQSxNQUFNVCxJQUFJLEVBQUUsT0FBTztJQUV4QixNQUFNVSxpQkFBaUJDLENBQUFBLEdBQUFBLG1CQUFBQSx5QkFBQUEsRUFBMEJGLE1BQU1ULElBQUk7SUFFM0QsSUFBSVksTUFBTTtJQUNWLG9EQUFvRDtJQUNwRCxJQUFJRixnQkFBZ0I7UUFDbEJFLE1BQU1DLENBQUFBLEdBQUFBLG1CQUFBQSxxQkFBQUEsRUFBc0JKLE1BQU1ULElBQUk7SUFDeEMsT0FBTztRQUNMLElBQUk7Z0JBS0VjO1lBSkosTUFBTUMsSUFBSSxJQUFJQyxJQUFJUCxNQUFNVCxJQUFJO1lBRTVCLElBQUlpQixhQUFhO1lBQ2pCLDRDQUE0QztZQUM1QyxJQUFJSCxDQUFBQSx3QkFBQUEsV0FBV0ksUUFBQUEsS0FBUSxnQkFBbkJKLHFCQUFxQkssTUFBQUEsTUFBV0osRUFBRUksTUFBTSxFQUFFO2dCQUM1QyxnRUFBZ0U7Z0JBQ2hFLDhDQUE4QztnQkFDOUMsSUFBSUosRUFBRUksTUFBTSxLQUFLLFFBQVE7b0JBQ3ZCRixjQUFjRixFQUFFSyxRQUFRO2dCQUMxQixPQUFPO29CQUNMSCxjQUFjRixFQUFFSSxNQUFNO2dCQUN4QjtZQUNGO1lBRUEscUVBQXFFO1lBQ3JFLGNBQWM7WUFDZEYsY0FBY0YsRUFBRU0sUUFBUTtZQUN4QlQsTUFBTUMsQ0FBQUEsR0FBQUEsbUJBQUFBLHFCQUFBQSxFQUFzQkk7UUFDOUIsRUFBRSxVQUFNO1lBQ05MLE1BQU1DLENBQUFBLEdBQUFBLG1CQUFBQSxxQkFBQUEsRUFBc0JKLE1BQU1ULElBQUk7UUFDeEM7SUFDRjtJQUVBLElBQUksQ0FBQ1csQ0FBQUEsR0FBQUEsbUJBQUFBLHlCQUFBQSxFQUEwQkYsTUFBTVQsSUFBSSxLQUFLUyxNQUFNYSxVQUFVLElBQUksTUFBTTtRQUN0RSxJQUFJVixLQUFLO1lBQ1AsSUFBSUgsTUFBTWMsTUFBTSxJQUFJLE1BQU07Z0JBQ3hCWCxPQUFRLE9BQUlILE1BQU1hLFVBQVUsR0FBQyxNQUFHYixNQUFNYyxNQUFNLEdBQUM7WUFDL0MsT0FBTztnQkFDTFgsT0FBUSxPQUFJSCxNQUFNYSxVQUFVLEdBQUM7WUFDL0I7UUFDRjtJQUNGO0lBQ0EsT0FBT1Y7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9oZWxwZXJzL3N0YWNrLWZyYW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tGcmFtZSB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlcidcbmltcG9ydCB0eXBlIHsgT3JpZ2luYWxTdGFja0ZyYW1lUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvc2hhcmVkJ1xuaW1wb3J0IHtcbiAgaXNXZWJwYWNrSW50ZXJuYWxSZXNvdXJjZSxcbiAgZm9ybWF0RnJhbWVTb3VyY2VGaWxlLFxufSBmcm9tICcuL3dlYnBhY2stbW9kdWxlLXBhdGgnXG5leHBvcnQgaW50ZXJmYWNlIE9yaWdpbmFsU3RhY2tGcmFtZSBleHRlbmRzIE9yaWdpbmFsU3RhY2tGcmFtZVJlc3BvbnNlIHtcbiAgZXJyb3I6IGJvb2xlYW5cbiAgcmVhc29uOiBzdHJpbmcgfCBudWxsXG4gIGV4dGVybmFsOiBib29sZWFuXG4gIGlnbm9yZWQ6IGJvb2xlYW5cbiAgc291cmNlU3RhY2tGcmFtZTogU3RhY2tGcmFtZVxufVxuXG5mdW5jdGlvbiBnZXRPcmlnaW5hbFN0YWNrRnJhbWUoXG4gIHNvdXJjZTogU3RhY2tGcmFtZSxcbiAgdHlwZTogJ3NlcnZlcicgfCAnZWRnZS1zZXJ2ZXInIHwgbnVsbCxcbiAgaXNBcHBEaXI6IGJvb2xlYW4sXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nXG4pOiBQcm9taXNlPE9yaWdpbmFsU3RhY2tGcmFtZT4ge1xuICBhc3luYyBmdW5jdGlvbiBfZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKCk6IFByb21pc2U8T3JpZ2luYWxTdGFja0ZyYW1lPiB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gICAgcGFyYW1zLmFwcGVuZCgnaXNTZXJ2ZXInLCBTdHJpbmcodHlwZSA9PT0gJ3NlcnZlcicpKVxuICAgIHBhcmFtcy5hcHBlbmQoJ2lzRWRnZVNlcnZlcicsIFN0cmluZyh0eXBlID09PSAnZWRnZS1zZXJ2ZXInKSlcbiAgICBwYXJhbXMuYXBwZW5kKCdpc0FwcERpcmVjdG9yeScsIFN0cmluZyhpc0FwcERpcikpXG4gICAgcGFyYW1zLmFwcGVuZCgnZXJyb3JNZXNzYWdlJywgZXJyb3JNZXNzYWdlKVxuICAgIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZSkge1xuICAgICAgcGFyYW1zLmFwcGVuZChrZXksICgoc291cmNlIGFzIGFueSlba2V5XSA/PyAnJykudG9TdHJpbmcoKSlcbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpXG4gICAgY29uc3QgdG0gPSBzZXRUaW1lb3V0KCgpID0+IGNvbnRyb2xsZXIuYWJvcnQoKSwgMzAwMClcbiAgICBjb25zdCByZXMgPSBhd2FpdCBzZWxmXG4gICAgICAuZmV0Y2goXG4gICAgICAgIGAke1xuICAgICAgICAgIHByb2Nlc3MuZW52Ll9fTkVYVF9ST1VURVJfQkFTRVBBVEggfHwgJydcbiAgICAgICAgfS9fX25leHRqc19vcmlnaW5hbC1zdGFjay1mcmFtZT8ke3BhcmFtcy50b1N0cmluZygpfWAsXG4gICAgICAgIHsgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCB9XG4gICAgICApXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIGNsZWFyVGltZW91dCh0bSlcbiAgICAgIH0pXG4gICAgaWYgKCFyZXMub2sgfHwgcmVzLnN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKGF3YWl0IHJlcy50ZXh0KCkpKVxuICAgIH1cblxuICAgIGNvbnN0IGJvZHk6IE9yaWdpbmFsU3RhY2tGcmFtZVJlc3BvbnNlID0gYXdhaXQgcmVzLmpzb24oKVxuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjogZmFsc2UsXG4gICAgICByZWFzb246IG51bGwsXG4gICAgICBleHRlcm5hbDogZmFsc2UsXG4gICAgICBzb3VyY2VTdGFja0ZyYW1lOiBzb3VyY2UsXG4gICAgICBvcmlnaW5hbFN0YWNrRnJhbWU6IGJvZHkub3JpZ2luYWxTdGFja0ZyYW1lLFxuICAgICAgb3JpZ2luYWxDb2RlRnJhbWU6IGJvZHkub3JpZ2luYWxDb2RlRnJhbWUgfHwgbnVsbCxcbiAgICAgIHNvdXJjZVBhY2thZ2U6IGJvZHkuc291cmNlUGFja2FnZSxcbiAgICAgIGlnbm9yZWQ6IGJvZHkub3JpZ2luYWxTdGFja0ZyYW1lPy5pZ25vcmVkIHx8IGZhbHNlLFxuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IG1lcmdlIHRoaXMgc2VjdGlvbiBpbnRvIGlnbm9yZWRMaXN0IGhhbmRsaW5nXG4gIGlmIChcbiAgICBzb3VyY2UuZmlsZSA9PT0gJ2ZpbGU6Ly8nIHx8XG4gICAgc291cmNlLmZpbGU/Lm1hdGNoKC9ebm9kZTovKSB8fFxuICAgIHNvdXJjZS5maWxlPy5tYXRjaCgvaHR0cHM/OlxcL1xcLy8pXG4gICkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgZXJyb3I6IGZhbHNlLFxuICAgICAgcmVhc29uOiBudWxsLFxuICAgICAgZXh0ZXJuYWw6IHRydWUsXG4gICAgICBzb3VyY2VTdGFja0ZyYW1lOiBzb3VyY2UsXG4gICAgICBvcmlnaW5hbFN0YWNrRnJhbWU6IG51bGwsXG4gICAgICBvcmlnaW5hbENvZGVGcmFtZTogbnVsbCxcbiAgICAgIHNvdXJjZVBhY2thZ2U6IG51bGwsXG4gICAgICBpZ25vcmVkOiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gX2dldE9yaWdpbmFsU3RhY2tGcmFtZSgpLmNhdGNoKChlcnI6IEVycm9yKSA9PiAoe1xuICAgIGVycm9yOiB0cnVlLFxuICAgIHJlYXNvbjogZXJyPy5tZXNzYWdlID8/IGVycj8udG9TdHJpbmcoKSA/PyAnVW5rbm93biBFcnJvcicsXG4gICAgZXh0ZXJuYWw6IGZhbHNlLFxuICAgIHNvdXJjZVN0YWNrRnJhbWU6IHNvdXJjZSxcbiAgICBvcmlnaW5hbFN0YWNrRnJhbWU6IG51bGwsXG4gICAgb3JpZ2luYWxDb2RlRnJhbWU6IG51bGwsXG4gICAgc291cmNlUGFja2FnZTogbnVsbCxcbiAgICBpZ25vcmVkOiBmYWxzZSxcbiAgfSkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcmlnaW5hbFN0YWNrRnJhbWVzKFxuICBmcmFtZXM6IFN0YWNrRnJhbWVbXSxcbiAgdHlwZTogJ3NlcnZlcicgfCAnZWRnZS1zZXJ2ZXInIHwgbnVsbCxcbiAgaXNBcHBEaXI6IGJvb2xlYW4sXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nXG4pIHtcbiAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgIGZyYW1lcy5tYXAoKGZyYW1lKSA9PlxuICAgICAgZ2V0T3JpZ2luYWxTdGFja0ZyYW1lKGZyYW1lLCB0eXBlLCBpc0FwcERpciwgZXJyb3JNZXNzYWdlKVxuICAgIClcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RnJhbWVTb3VyY2UoZnJhbWU6IFN0YWNrRnJhbWUpOiBzdHJpbmcge1xuICBpZiAoIWZyYW1lLmZpbGUpIHJldHVybiAnJ1xuXG4gIGNvbnN0IGlzV2VicGFja0ZyYW1lID0gaXNXZWJwYWNrSW50ZXJuYWxSZXNvdXJjZShmcmFtZS5maWxlKVxuXG4gIGxldCBzdHIgPSAnJ1xuICAvLyBTa2lwIFVSTCBwYXJzaW5nIGZvciB3ZWJwYWNrIGludGVybmFsIGZpbGUgcGF0aHMuXG4gIGlmIChpc1dlYnBhY2tGcmFtZSkge1xuICAgIHN0ciA9IGZvcm1hdEZyYW1lU291cmNlRmlsZShmcmFtZS5maWxlKVxuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB1ID0gbmV3IFVSTChmcmFtZS5maWxlKVxuXG4gICAgICBsZXQgcGFyc2VkUGF0aCA9ICcnXG4gICAgICAvLyBTdHJpcCB0aGUgb3JpZ2luIGZvciBzYW1lLW9yaWdpbiBzY3JpcHRzLlxuICAgICAgaWYgKGdsb2JhbFRoaXMubG9jYXRpb24/Lm9yaWdpbiAhPT0gdS5vcmlnaW4pIHtcbiAgICAgICAgLy8gVVJMcyBjYW4gYmUgdmFsaWQgd2l0aG91dCBhbiBgb3JpZ2luYCwgc28gbG9uZyBhcyB0aGV5IGhhdmUgYVxuICAgICAgICAvLyBgcHJvdG9jb2xgLiBIb3dldmVyLCBgb3JpZ2luYCBpcyBwcmVmZXJyZWQuXG4gICAgICAgIGlmICh1Lm9yaWdpbiA9PT0gJ251bGwnKSB7XG4gICAgICAgICAgcGFyc2VkUGF0aCArPSB1LnByb3RvY29sXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGFyc2VkUGF0aCArPSB1Lm9yaWdpblxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFN0cmlwIHF1ZXJ5IHN0cmluZyBpbmZvcm1hdGlvbiBhcyBpdCdzIHR5cGljYWxseSB0b28gdmVyYm9zZSB0byBiZVxuICAgICAgLy8gbWVhbmluZ2Z1bC5cbiAgICAgIHBhcnNlZFBhdGggKz0gdS5wYXRobmFtZVxuICAgICAgc3RyID0gZm9ybWF0RnJhbWVTb3VyY2VGaWxlKHBhcnNlZFBhdGgpXG4gICAgfSBjYXRjaCB7XG4gICAgICBzdHIgPSBmb3JtYXRGcmFtZVNvdXJjZUZpbGUoZnJhbWUuZmlsZSlcbiAgICB9XG4gIH1cblxuICBpZiAoIWlzV2VicGFja0ludGVybmFsUmVzb3VyY2UoZnJhbWUuZmlsZSkgJiYgZnJhbWUubGluZU51bWJlciAhPSBudWxsKSB7XG4gICAgaWYgKHN0cikge1xuICAgICAgaWYgKGZyYW1lLmNvbHVtbiAhPSBudWxsKSB7XG4gICAgICAgIHN0ciArPSBgICgke2ZyYW1lLmxpbmVOdW1iZXJ9OiR7ZnJhbWUuY29sdW1ufSlgXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdHIgKz0gYCAoJHtmcmFtZS5saW5lTnVtYmVyfSlgXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBzdHJcbn1cbiJdLCJuYW1lcyI6WyJnZXRGcmFtZVNvdXJjZSIsImdldE9yaWdpbmFsU3RhY2tGcmFtZXMiLCJnZXRPcmlnaW5hbFN0YWNrRnJhbWUiLCJzb3VyY2UiLCJ0eXBlIiwiaXNBcHBEaXIiLCJlcnJvck1lc3NhZ2UiLCJfZ2V0T3JpZ2luYWxTdGFja0ZyYW1lIiwiYm9keSIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImFwcGVuZCIsIlN0cmluZyIsImtleSIsInRvU3RyaW5nIiwiY29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsInRtIiwic2V0VGltZW91dCIsImFib3J0IiwicmVzIiwic2VsZiIsImZldGNoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJzaWduYWwiLCJmaW5hbGx5IiwiY2xlYXJUaW1lb3V0Iiwib2siLCJzdGF0dXMiLCJQcm9taXNlIiwicmVqZWN0IiwiRXJyb3IiLCJ0ZXh0IiwianNvbiIsImVycm9yIiwicmVhc29uIiwiZXh0ZXJuYWwiLCJzb3VyY2VTdGFja0ZyYW1lIiwib3JpZ2luYWxTdGFja0ZyYW1lIiwib3JpZ2luYWxDb2RlRnJhbWUiLCJzb3VyY2VQYWNrYWdlIiwiaWdub3JlZCIsImZpbGUiLCJtYXRjaCIsInJlc29sdmUiLCJjYXRjaCIsImVyciIsIm1lc3NhZ2UiLCJmcmFtZXMiLCJhbGwiLCJtYXAiLCJmcmFtZSIsImlzV2VicGFja0ZyYW1lIiwiaXNXZWJwYWNrSW50ZXJuYWxSZXNvdXJjZSIsInN0ciIsImZvcm1hdEZyYW1lU291cmNlRmlsZSIsImdsb2JhbFRoaXMiLCJ1IiwiVVJMIiwicGFyc2VkUGF0aCIsImxvY2F0aW9uIiwib3JpZ2luIiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImxpbmVOdW1iZXIiLCJjb2x1bW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stitched-error.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stitched-error.js ***! + \*******************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getReactStitchedError\", ({\n enumerable: true,\n get: function() {\n return getReactStitchedError;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../../../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nconst REACT_ERROR_STACK_BOTTOM_FRAME = 'react-stack-bottom-frame';\nconst REACT_ERROR_STACK_BOTTOM_FRAME_REGEX = new RegExp(\"(at \" + REACT_ERROR_STACK_BOTTOM_FRAME + \" )|(\" + REACT_ERROR_STACK_BOTTOM_FRAME + \"\\\\@)\");\nconst captureOwnerStack = _react.default.captureOwnerStack ? _react.default.captureOwnerStack : ()=>'';\nfunction getReactStitchedError(err) {\n if (typeof _react.default.captureOwnerStack !== 'function') {\n return err;\n }\n const isErrorInstance = (0, _iserror.default)(err);\n const originStack = isErrorInstance ? err.stack || '' : '';\n const originMessage = isErrorInstance ? err.message : '';\n const stackLines = originStack.split('\\n');\n const indexOfSplit = stackLines.findIndex((line)=>REACT_ERROR_STACK_BOTTOM_FRAME_REGEX.test(line));\n const isOriginalReactError = indexOfSplit >= 0 // has the react-stack-bottom-frame\n ;\n let newStack = isOriginalReactError ? stackLines.slice(0, indexOfSplit).join('\\n') : originStack;\n const newError = new Error(originMessage);\n // Copy all enumerable properties, e.g. digest\n Object.assign(newError, err);\n newError.stack = newStack;\n // Avoid duplicate overriding stack frames\n appendOwnerStack(newError);\n return newError;\n}\nfunction appendOwnerStack(error) {\n let stack = error.stack || '';\n // Avoid duplicate overriding stack frames\n const ownerStack = captureOwnerStack();\n if (ownerStack && stack.endsWith(ownerStack) === false) {\n stack += ownerStack;\n // Override stack\n error.stack = stack;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=stitched-error.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvc3RpdGNoZWQtZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7Ozt5REFZZ0JBOzs7ZUFBQUE7Ozs7NEVBWkU7OEVBQ0U7QUFFcEIsTUFBTUMsaUNBQWlDO0FBQ3ZDLE1BQU1DLHVDQUF1QyxJQUFJQyxPQUM5QyxTQUFNRixpQ0FBK0IsU0FBTUEsaUNBQStCO0FBRzdFLE1BQU1HLG9CQUFxQkMsT0FBQUEsT0FBSyxDQUFTRCxpQkFBaUIsR0FDckRDLE9BQUFBLE9BQUssQ0FBU0QsaUJBQWlCLEdBQ2hDLElBQU07QUFFSCxTQUFTSixzQkFBbUNNLEdBQU07SUFDdkQsSUFBSSxPQUFRRCxPQUFBQSxPQUFLLENBQVNELGlCQUFpQixLQUFLLFlBQVk7UUFDMUQsT0FBT0U7SUFDVDtJQUNBLE1BQU1DLGtCQUFrQkMsQ0FBQUEsR0FBQUEsU0FBQUEsT0FBQUEsRUFBUUY7SUFDaEMsTUFBTUcsY0FBY0Ysa0JBQWtCRCxJQUFJSSxLQUFLLElBQUksS0FBSztJQUN4RCxNQUFNQyxnQkFBZ0JKLGtCQUFrQkQsSUFBSU0sT0FBTyxHQUFHO0lBQ3RELE1BQU1DLGFBQWFKLFlBQVlLLEtBQUssQ0FBQztJQUNyQyxNQUFNQyxlQUFlRixXQUFXRyxTQUFTLENBQUMsQ0FBQ0MsT0FDekNmLHFDQUFxQ2dCLElBQUksQ0FBQ0Q7SUFFNUMsTUFBTUUsdUJBQXVCSixnQkFBZ0IsRUFBRSxtQ0FBbUM7O0lBQ2xGLElBQUlLLFdBQVdELHVCQUNYTixXQUFXUSxLQUFLLENBQUMsR0FBR04sY0FBY08sSUFBSSxDQUFDLFFBQ3ZDYjtJQUVKLE1BQU1jLFdBQVcsSUFBSUMsTUFBTWI7SUFDM0IsOENBQThDO0lBQzlDYyxPQUFPQyxNQUFNLENBQUNILFVBQVVqQjtJQUN4QmlCLFNBQVNiLEtBQUssR0FBR1U7SUFFakIsMENBQTBDO0lBQzFDTyxpQkFBaUJKO0lBRWpCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTSSxpQkFBaUJDLEtBQVk7SUFDcEMsSUFBSWxCLFFBQVFrQixNQUFNbEIsS0FBSyxJQUFJO0lBQzNCLDBDQUEwQztJQUMxQyxNQUFNbUIsYUFBYXpCO0lBQ25CLElBQUl5QixjQUFjbkIsTUFBTW9CLFFBQVEsQ0FBQ0QsZ0JBQWdCLE9BQU87UUFDdERuQixTQUFTbUI7UUFDVCxpQkFBaUI7UUFDakJELE1BQU1sQixLQUFLLEdBQUdBO0lBQ2hCO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy9zdGl0Y2hlZC1lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgaXNFcnJvciBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWIvaXMtZXJyb3InXG5cbmNvbnN0IFJFQUNUX0VSUk9SX1NUQUNLX0JPVFRPTV9GUkFNRSA9ICdyZWFjdC1zdGFjay1ib3R0b20tZnJhbWUnXG5jb25zdCBSRUFDVF9FUlJPUl9TVEFDS19CT1RUT01fRlJBTUVfUkVHRVggPSBuZXcgUmVnRXhwKFxuICBgKGF0ICR7UkVBQ1RfRVJST1JfU1RBQ0tfQk9UVE9NX0ZSQU1FfSApfCgke1JFQUNUX0VSUk9SX1NUQUNLX0JPVFRPTV9GUkFNRX1cXFxcQClgXG4pXG5cbmNvbnN0IGNhcHR1cmVPd25lclN0YWNrID0gKFJlYWN0IGFzIGFueSkuY2FwdHVyZU93bmVyU3RhY2tcbiAgPyAoUmVhY3QgYXMgYW55KS5jYXB0dXJlT3duZXJTdGFja1xuICA6ICgpID0+ICcnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWFjdFN0aXRjaGVkRXJyb3I8VCA9IHVua25vd24+KGVycjogVCk6IEVycm9yIHwgVCB7XG4gIGlmICh0eXBlb2YgKFJlYWN0IGFzIGFueSkuY2FwdHVyZU93bmVyU3RhY2sgIT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gZXJyXG4gIH1cbiAgY29uc3QgaXNFcnJvckluc3RhbmNlID0gaXNFcnJvcihlcnIpXG4gIGNvbnN0IG9yaWdpblN0YWNrID0gaXNFcnJvckluc3RhbmNlID8gZXJyLnN0YWNrIHx8ICcnIDogJydcbiAgY29uc3Qgb3JpZ2luTWVzc2FnZSA9IGlzRXJyb3JJbnN0YW5jZSA/IGVyci5tZXNzYWdlIDogJydcbiAgY29uc3Qgc3RhY2tMaW5lcyA9IG9yaWdpblN0YWNrLnNwbGl0KCdcXG4nKVxuICBjb25zdCBpbmRleE9mU3BsaXQgPSBzdGFja0xpbmVzLmZpbmRJbmRleCgobGluZSkgPT5cbiAgICBSRUFDVF9FUlJPUl9TVEFDS19CT1RUT01fRlJBTUVfUkVHRVgudGVzdChsaW5lKVxuICApXG4gIGNvbnN0IGlzT3JpZ2luYWxSZWFjdEVycm9yID0gaW5kZXhPZlNwbGl0ID49IDAgLy8gaGFzIHRoZSByZWFjdC1zdGFjay1ib3R0b20tZnJhbWVcbiAgbGV0IG5ld1N0YWNrID0gaXNPcmlnaW5hbFJlYWN0RXJyb3JcbiAgICA/IHN0YWNrTGluZXMuc2xpY2UoMCwgaW5kZXhPZlNwbGl0KS5qb2luKCdcXG4nKVxuICAgIDogb3JpZ2luU3RhY2tcblxuICBjb25zdCBuZXdFcnJvciA9IG5ldyBFcnJvcihvcmlnaW5NZXNzYWdlKVxuICAvLyBDb3B5IGFsbCBlbnVtZXJhYmxlIHByb3BlcnRpZXMsIGUuZy4gZGlnZXN0XG4gIE9iamVjdC5hc3NpZ24obmV3RXJyb3IsIGVycilcbiAgbmV3RXJyb3Iuc3RhY2sgPSBuZXdTdGFja1xuXG4gIC8vIEF2b2lkIGR1cGxpY2F0ZSBvdmVycmlkaW5nIHN0YWNrIGZyYW1lc1xuICBhcHBlbmRPd25lclN0YWNrKG5ld0Vycm9yKVxuXG4gIHJldHVybiBuZXdFcnJvclxufVxuXG5mdW5jdGlvbiBhcHBlbmRPd25lclN0YWNrKGVycm9yOiBFcnJvcikge1xuICBsZXQgc3RhY2sgPSBlcnJvci5zdGFjayB8fCAnJ1xuICAvLyBBdm9pZCBkdXBsaWNhdGUgb3ZlcnJpZGluZyBzdGFjayBmcmFtZXNcbiAgY29uc3Qgb3duZXJTdGFjayA9IGNhcHR1cmVPd25lclN0YWNrKClcbiAgaWYgKG93bmVyU3RhY2sgJiYgc3RhY2suZW5kc1dpdGgob3duZXJTdGFjaykgPT09IGZhbHNlKSB7XG4gICAgc3RhY2sgKz0gb3duZXJTdGFja1xuICAgIC8vIE92ZXJyaWRlIHN0YWNrXG4gICAgZXJyb3Iuc3RhY2sgPSBzdGFja1xuICB9XG59XG4iXSwibmFtZXMiOlsiZ2V0UmVhY3RTdGl0Y2hlZEVycm9yIiwiUkVBQ1RfRVJST1JfU1RBQ0tfQk9UVE9NX0ZSQU1FIiwiUkVBQ1RfRVJST1JfU1RBQ0tfQk9UVE9NX0ZSQU1FX1JFR0VYIiwiUmVnRXhwIiwiY2FwdHVyZU93bmVyU3RhY2siLCJSZWFjdCIsImVyciIsImlzRXJyb3JJbnN0YW5jZSIsImlzRXJyb3IiLCJvcmlnaW5TdGFjayIsInN0YWNrIiwib3JpZ2luTWVzc2FnZSIsIm1lc3NhZ2UiLCJzdGFja0xpbmVzIiwic3BsaXQiLCJpbmRleE9mU3BsaXQiLCJmaW5kSW5kZXgiLCJsaW5lIiwidGVzdCIsImlzT3JpZ2luYWxSZWFjdEVycm9yIiwibmV3U3RhY2siLCJzbGljZSIsImpvaW4iLCJuZXdFcnJvciIsIkVycm9yIiwiT2JqZWN0IiwiYXNzaWduIiwiYXBwZW5kT3duZXJTdGFjayIsImVycm9yIiwib3duZXJTdGFjayIsImVuZHNXaXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stitched-error.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js": +/*!***********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js ***! + \***********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useOpenInEditor\", ({\n enumerable: true,\n get: function() {\n return useOpenInEditor;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nfunction useOpenInEditor(param) {\n let { file, lineNumber, column } = param === void 0 ? {} : param;\n const openInEditor = (0, _react.useCallback)(()=>{\n if (file == null || lineNumber == null || column == null) return;\n const params = new URLSearchParams();\n params.append('file', file);\n params.append('lineNumber', String(lineNumber));\n params.append('column', String(column));\n self.fetch(( false || '') + \"/__nextjs_launch-editor?\" + params.toString()).then(()=>{}, ()=>{\n console.error('There was an issue opening this code in your editor.');\n });\n }, [\n file,\n lineNumber,\n column\n ]);\n return openInEditor;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-open-in-editor.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvdXNlLW9wZW4taW4tZWRpdG9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBRWdCQTs7O2VBQUFBOzs7bUNBRlk7QUFFckIsU0FBU0EsZ0JBQWdCO0lBQUEsTUFDOUJDLElBQUksRUFDSkMsVUFBVSxFQUNWQyxNQUFNLEVBS1AsR0FSK0IsbUJBUTVCLENBQUMsSUFSMkI7SUFTOUIsTUFBTUMsZUFBZUMsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBQUEsRUFBWTtRQUMvQixJQUFJSixRQUFRLFFBQVFDLGNBQWMsUUFBUUMsVUFBVSxNQUFNO1FBRTFELE1BQU1HLFNBQVMsSUFBSUM7UUFDbkJELE9BQU9FLE1BQU0sQ0FBQyxRQUFRUDtRQUN0QkssT0FBT0UsTUFBTSxDQUFDLGNBQWNDLE9BQU9QO1FBQ25DSSxPQUFPRSxNQUFNLENBQUMsVUFBVUMsT0FBT047UUFFL0JPLEtBQ0dDLEtBQUssQ0FFRkMsQ0FBQUEsTUFBa0MsSUFBSSxHQUFDLEdBQ3hDLDZCQUEwQk4sT0FBT1MsUUFBUSxJQUUzQ0MsSUFBSSxDQUNILEtBQU8sR0FDUDtZQUNFQyxRQUFRQyxLQUFLLENBQUM7UUFDaEI7SUFFTixHQUFHO1FBQUNqQjtRQUFNQztRQUFZQztLQUFPO0lBRTdCLE9BQU9DO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaGVscGVycy91c2Utb3Blbi1pbi1lZGl0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlQ2FsbGJhY2sgfSBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9wZW5JbkVkaXRvcih7XG4gIGZpbGUsXG4gIGxpbmVOdW1iZXIsXG4gIGNvbHVtbixcbn06IHtcbiAgZmlsZT86IHN0cmluZyB8IG51bGxcbiAgbGluZU51bWJlcj86IG51bWJlciB8IG51bGxcbiAgY29sdW1uPzogbnVtYmVyIHwgbnVsbFxufSA9IHt9KSB7XG4gIGNvbnN0IG9wZW5JbkVkaXRvciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAoZmlsZSA9PSBudWxsIHx8IGxpbmVOdW1iZXIgPT0gbnVsbCB8fCBjb2x1bW4gPT0gbnVsbCkgcmV0dXJuXG5cbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgICBwYXJhbXMuYXBwZW5kKCdmaWxlJywgZmlsZSlcbiAgICBwYXJhbXMuYXBwZW5kKCdsaW5lTnVtYmVyJywgU3RyaW5nKGxpbmVOdW1iZXIpKVxuICAgIHBhcmFtcy5hcHBlbmQoJ2NvbHVtbicsIFN0cmluZyhjb2x1bW4pKVxuXG4gICAgc2VsZlxuICAgICAgLmZldGNoKFxuICAgICAgICBgJHtcbiAgICAgICAgICBwcm9jZXNzLmVudi5fX05FWFRfUk9VVEVSX0JBU0VQQVRIIHx8ICcnXG4gICAgICAgIH0vX19uZXh0anNfbGF1bmNoLWVkaXRvcj8ke3BhcmFtcy50b1N0cmluZygpfWBcbiAgICAgIClcbiAgICAgIC50aGVuKFxuICAgICAgICAoKSA9PiB7fSxcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIHdhcyBhbiBpc3N1ZSBvcGVuaW5nIHRoaXMgY29kZSBpbiB5b3VyIGVkaXRvci4nKVxuICAgICAgICB9XG4gICAgICApXG4gIH0sIFtmaWxlLCBsaW5lTnVtYmVyLCBjb2x1bW5dKVxuXG4gIHJldHVybiBvcGVuSW5FZGl0b3Jcbn1cbiJdLCJuYW1lcyI6WyJ1c2VPcGVuSW5FZGl0b3IiLCJmaWxlIiwibGluZU51bWJlciIsImNvbHVtbiIsIm9wZW5JbkVkaXRvciIsInVzZUNhbGxiYWNrIiwicGFyYW1zIiwiVVJMU2VhcmNoUGFyYW1zIiwiYXBwZW5kIiwiU3RyaW5nIiwic2VsZiIsImZldGNoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJ0b1N0cmluZyIsInRoZW4iLCJjb25zb2xlIiwiZXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/webpack-module-path.js": +/*!************************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/webpack-module-path.js ***! + \************************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatFrameSourceFile: function() {\n return formatFrameSourceFile;\n },\n isWebpackInternalResource: function() {\n return isWebpackInternalResource;\n }\n});\nconst replacementRegExes = [\n /^(rsc:\\/\\/React\\/[^/]+\\/)/,\n /^webpack-internal:\\/\\/\\/(\\([\\w-]+\\)\\/)?/,\n /^(webpack:\\/\\/\\/|webpack:\\/\\/(_N_E\\/)?)(\\([\\w-]+\\)\\/)?/,\n /\\?\\w+(\\?\\d+)?$/,\n /\\?\\d+$/\n];\nfunction isWebpackInternalResource(file) {\n for (const regex of replacementRegExes){\n if (regex.test(file)) return true;\n file = file.replace(regex, '');\n }\n return false;\n}\nfunction formatFrameSourceFile(file) {\n for (const regex of replacementRegExes){\n file = file.replace(regex, '');\n }\n return file;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=webpack-module-path.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvd2VicGFjay1tb2R1bGUtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmdCQSxxQkFBcUI7ZUFBckJBOztJQXBCQUMseUJBQXlCO2VBQXpCQTs7O0FBUmhCLE1BQU1DLHFCQUFxQjtJQUN6QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRCwwQkFBMEJFLElBQVk7SUFDcEQsS0FBSyxNQUFNQyxTQUFTRixtQkFBb0I7UUFDdEMsSUFBSUUsTUFBTUMsSUFBSSxDQUFDRixPQUFPLE9BQU87UUFFN0JBLE9BQU9BLEtBQUtHLE9BQU8sQ0FBQ0YsT0FBTztJQUM3QjtJQUVBLE9BQU87QUFDVDtBQVlPLFNBQVNKLHNCQUFzQkcsSUFBWTtJQUNoRCxLQUFLLE1BQU1DLFNBQVNGLG1CQUFvQjtRQUN0Q0MsT0FBT0EsS0FBS0csT0FBTyxDQUFDRixPQUFPO0lBQzdCO0lBRUEsT0FBT0Q7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9oZWxwZXJzL3dlYnBhY2stbW9kdWxlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcmVwbGFjZW1lbnRSZWdFeGVzID0gW1xuICAvXihyc2M6XFwvXFwvUmVhY3RcXC9bXi9dK1xcLykvLFxuICAvXndlYnBhY2staW50ZXJuYWw6XFwvXFwvXFwvKFxcKFtcXHctXStcXClcXC8pPy8sXG4gIC9eKHdlYnBhY2s6XFwvXFwvXFwvfHdlYnBhY2s6XFwvXFwvKF9OX0VcXC8pPykoXFwoW1xcdy1dK1xcKVxcLyk/LyxcbiAgL1xcP1xcdysoXFw/XFxkKyk/JC8sIC8vIFJlYWN0IHJlcGxheSBlcnJvciBxdWVyeSBwYXJhbSwgLmUuZy4gP2M2OWQ/MCwgP2M2OWRcbiAgL1xcP1xcZCskLywgLy8gUmVhY3QncyBmYWtlRnVuY3Rpb25JZHggcXVlcnkgcGFyYW1cbl1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzV2VicGFja0ludGVybmFsUmVzb3VyY2UoZmlsZTogc3RyaW5nKSB7XG4gIGZvciAoY29uc3QgcmVnZXggb2YgcmVwbGFjZW1lbnRSZWdFeGVzKSB7XG4gICAgaWYgKHJlZ2V4LnRlc3QoZmlsZSkpIHJldHVybiB0cnVlXG5cbiAgICBmaWxlID0gZmlsZS5yZXBsYWNlKHJlZ2V4LCAnJylcbiAgfVxuXG4gIHJldHVybiBmYWxzZVxufVxuXG4vKipcbiAqIEZvcm1hdCB0aGUgd2VicGFjayBpbnRlcm5hbCBpZCB0byBvcmlnaW5hbCBmaWxlIHBhdGhcbiAqXG4gKiB3ZWJwYWNrLWludGVybmFsOi8vLy4vc3JjL2hlbGxvLnRzeCA9PiAuL3NyYy9oZWxsby50c3hcbiAqIHJzYzovL1JlYWN0L1NlcnZlci93ZWJwYWNrLWludGVybmFsOi8vLyhyc2MpLy4vc3JjL2hlbGxvLnRzeD80MiA9PiAuL3NyYy9oZWxsby50c3hcbiAqIHJzYzovL1JlYWN0L1NlcnZlci93ZWJwYWNrOi8vL2FwcC9pbmRpcmVjdGlvbi50c3g/MTRjYj8wID0+IGFwcC9pbmRpcmVjdGlvbi50c3hcbiAqIHdlYnBhY2s6Ly9fTl9FLy4vc3JjL2hlbGxvLnRzeCA9PiAuL3NyYy9oZWxsby50c3hcbiAqIHdlYnBhY2s6Ly8uL3NyYy9oZWxsby50c3ggPT4gLi9zcmMvaGVsbG8udHN4XG4gKiB3ZWJwYWNrOi8vLy4vc3JjL2hlbGxvLnRzeCA9PiAuL3NyYy9oZWxsby50c3hcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEZyYW1lU291cmNlRmlsZShmaWxlOiBzdHJpbmcpIHtcbiAgZm9yIChjb25zdCByZWdleCBvZiByZXBsYWNlbWVudFJlZ0V4ZXMpIHtcbiAgICBmaWxlID0gZmlsZS5yZXBsYWNlKHJlZ2V4LCAnJylcbiAgfVxuXG4gIHJldHVybiBmaWxlXG59XG4iXSwibmFtZXMiOlsiZm9ybWF0RnJhbWVTb3VyY2VGaWxlIiwiaXNXZWJwYWNrSW50ZXJuYWxSZXNvdXJjZSIsInJlcGxhY2VtZW50UmVnRXhlcyIsImZpbGUiLCJyZWdleCIsInRlc3QiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/webpack-module-path.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js": +/*!***********************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js ***! + \***********************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useOnClickOutside\", ({\n enumerable: true,\n get: function() {\n return useOnClickOutside;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nfunction useOnClickOutside(el, handler) {\n _s();\n _react.useEffect({\n \"useOnClickOutside.useEffect\": ()=>{\n if (el == null || handler == null) {\n return;\n }\n const listener = {\n \"useOnClickOutside.useEffect.listener\": (e)=>{\n // Do nothing if clicking ref's element or descendent elements\n if (!el || el.contains(e.target)) {\n return;\n }\n handler(e);\n }\n }[\"useOnClickOutside.useEffect.listener\"];\n const root = el.getRootNode();\n root.addEventListener('mousedown', listener);\n root.addEventListener('touchstart', listener, {\n passive: false\n });\n return ({\n \"useOnClickOutside.useEffect\": function() {\n root.removeEventListener('mousedown', listener);\n root.removeEventListener('touchstart', listener);\n }\n })[\"useOnClickOutside.useEffect\"];\n }\n }[\"useOnClickOutside.useEffect\"], [\n handler,\n el\n ]);\n}\n_s(useOnClickOutside, \"OD7bBpZva5O2jO+Puf00hKivP7c=\");\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-on-click-outside.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hvb2tzL3VzZS1vbi1jbGljay1vdXRzaWRlLmpzIiwibWFwcGluZ3MiOiI7Ozs7OztxREFFZ0JBOzs7ZUFBQUE7Ozs7NkVBRk87QUFFaEIsMkJBQ0xDLEVBQWUsRUFDZkMsT0FBMkQ7O0lBRTNEQyxPQUFNQyxTQUFTO3VDQUFDO1lBQ2QsSUFBSUgsTUFBTSxRQUFRQyxXQUFXLE1BQU07Z0JBQ2pDO1lBQ0Y7WUFFQSxNQUFNRzt3REFBVyxDQUFDQztvQkFDaEIsOERBQThEO29CQUM5RCxJQUFJLENBQUNMLE1BQU1BLEdBQUdNLFFBQVEsQ0FBQ0QsRUFBRUUsTUFBTSxHQUFjO3dCQUMzQztvQkFDRjtvQkFFQU4sUUFBUUk7Z0JBQ1Y7O1lBRUEsTUFBTUcsT0FBT1IsR0FBR1MsV0FBVztZQUMzQkQsS0FBS0UsZ0JBQWdCLENBQUMsYUFBYU47WUFDbkNJLEtBQUtFLGdCQUFnQixDQUFDLGNBQWNOLFVBQTJCO2dCQUM3RE8sU0FBUztZQUNYO1lBQ0E7K0NBQU87b0JBQ0xILEtBQUtJLG1CQUFtQixDQUFDLGFBQWFSO29CQUN0Q0ksS0FBS0ksbUJBQW1CLENBQUMsY0FBY1I7Z0JBQ3pDOztRQUNGO3NDQUFHO1FBQUNIO1FBQVNEO0tBQUc7QUFDbEI7R0E1QmdCRCIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9ob29rcy91c2Utb24tY2xpY2stb3V0c2lkZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU9uQ2xpY2tPdXRzaWRlKFxuICBlbDogTm9kZSB8IG51bGwsXG4gIGhhbmRsZXI6ICgoZTogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQpIHwgdW5kZWZpbmVkXG4pIHtcbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZWwgPT0gbnVsbCB8fCBoYW5kbGVyID09IG51bGwpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGxpc3RlbmVyID0gKGU6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICAvLyBEbyBub3RoaW5nIGlmIGNsaWNraW5nIHJlZidzIGVsZW1lbnQgb3IgZGVzY2VuZGVudCBlbGVtZW50c1xuICAgICAgaWYgKCFlbCB8fCBlbC5jb250YWlucyhlLnRhcmdldCBhcyBFbGVtZW50KSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaGFuZGxlcihlKVxuICAgIH1cblxuICAgIGNvbnN0IHJvb3QgPSBlbC5nZXRSb290Tm9kZSgpXG4gICAgcm9vdC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyKVxuICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGxpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXIsIHtcbiAgICAgIHBhc3NpdmU6IGZhbHNlLFxuICAgIH0pXG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgbGlzdGVuZXIgYXMgRXZlbnRMaXN0ZW5lcilcbiAgICAgIHJvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGxpc3RlbmVyIGFzIEV2ZW50TGlzdGVuZXIpXG4gICAgfVxuICB9LCBbaGFuZGxlciwgZWxdKVxufVxuIl0sIm5hbWVzIjpbInVzZU9uQ2xpY2tPdXRzaWRlIiwiZWwiLCJoYW5kbGVyIiwiUmVhY3QiLCJ1c2VFZmZlY3QiLCJsaXN0ZW5lciIsImUiLCJjb250YWlucyIsInRhcmdldCIsInJvb3QiLCJnZXRSb290Tm9kZSIsImFkZEV2ZW50TGlzdGVuZXIiLCJwYXNzaXZlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js ***! + \************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CloseIcon\", ({\n enumerable: true,\n get: function() {\n return CloseIcon;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst CloseIcon = ()=>{\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"svg\", {\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M18 6L6 18\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M6 6L18 18\",\n stroke: \"currentColor\",\n strokeWidth: \"2\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })\n ]\n });\n};\n_c = CloseIcon;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=CloseIcon.js.map\nvar _c;\n$RefreshReg$(_c, \"CloseIcon\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2ljb25zL0Nsb3NlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7OzZDQTZCU0E7OztlQUFBQTs7Ozs7NkVBN0JjO0FBRXZCLGtCQUFrQjtJQUNoQixxQkFDRSxzQkFBQ0MsT0FBQUE7UUFDQ0MsT0FBTTtRQUNOQyxRQUFPO1FBQ1BDLFNBQVE7UUFDUkMsTUFBSztRQUNMQyxPQUFNOzswQkFFTixxQkFBQ0MsUUFBQUE7Z0JBQ0NDLEdBQUU7Z0JBQ0ZDLFFBQU87Z0JBQ1BDLGFBQVk7Z0JBQ1pDLGVBQWM7Z0JBQ2RDLGdCQUFlOzswQkFFakIscUJBQUNMLFFBQUFBO2dCQUNDQyxHQUFFO2dCQUNGQyxRQUFPO2dCQUNQQyxhQUFZO2dCQUNaQyxlQUFjO2dCQUNkQyxnQkFBZTs7OztBQUl2QjtLQXpCTVoiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvaWNvbnMvQ2xvc2VJY29uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcblxuY29uc3QgQ2xvc2VJY29uID0gKCkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHdpZHRoPVwiMjRcIlxuICAgICAgaGVpZ2h0PVwiMjRcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICA+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTE4IDZMNiAxOFwiXG4gICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICAgIHN0cm9rZUxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNNiA2TDE4IDE4XCJcbiAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgc3Ryb2tlV2lkdGg9XCIyXCJcbiAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICApXG59XG5cbmV4cG9ydCB7IENsb3NlSWNvbiB9XG4iXSwibmFtZXMiOlsiQ2xvc2VJY29uIiwic3ZnIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiZmlsbCIsInhtbG5zIiwicGF0aCIsImQiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js ***! + \***************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CollapseIcon\", ({\n enumerable: true,\n get: function() {\n return CollapseIcon;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nfunction CollapseIcon(param) {\n let { collapsed } = param === void 0 ? {} : param;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"svg\", {\n \"data-nextjs-call-stack-chevron-icon\": true,\n \"data-collapsed\": collapsed,\n fill: \"none\",\n height: \"20\",\n width: \"20\",\n shapeRendering: \"geometricPrecision\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: \"2\",\n viewBox: \"0 0 24 24\",\n ...typeof collapsed === 'boolean' ? {\n style: {\n transform: collapsed ? undefined : 'rotate(90deg)'\n }\n } : {},\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"path\", {\n d: \"M9 18l6-6-6-6\"\n })\n });\n}\n_c = CollapseIcon;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=CollapseIcon.js.map\nvar _c;\n$RefreshReg$(_c, \"CollapseIcon\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2ljb25zL0NvbGxhcHNlSWNvbi5qcyIsIm1hcHBpbmdzIjoiOzs7O2dEQUFnQkE7OztlQUFBQTs7OztBQUFULHNCQUFzQjtJQUFBLE1BQUVDLFNBQVMsRUFBMkIsR0FBdEMsbUJBQXlDLENBQUMsSUFBMUM7SUFDM0IscUJBQ0UscUJBQUNDLE9BQUFBO1FBQ0NDLHFDQUFtQztRQUNuQ0Msa0JBQWdCSDtRQUNoQkksTUFBSztRQUNMQyxRQUFPO1FBQ1BDLE9BQU07UUFDTkMsZ0JBQWU7UUFDZkMsUUFBTztRQUNQQyxlQUFjO1FBQ2RDLGdCQUFlO1FBQ2ZDLGFBQVk7UUFDWkMsU0FBUTtRQUdQLEdBQUksT0FBT1osY0FBYyxZQUN0QjtZQUFFYSxPQUFPO2dCQUFFQyxXQUFXZCxZQUFZZSxZQUFZO1lBQWdCO1FBQUUsSUFDaEUsQ0FBQyxDQUFDO2tCQUVOLG1DQUFDQyxRQUFBQTtZQUFLQyxHQUFFOzs7QUFHZDtLQXZCZ0JsQiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9pY29ucy9Db2xsYXBzZUljb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBDb2xsYXBzZUljb24oeyBjb2xsYXBzZWQgfTogeyBjb2xsYXBzZWQ/OiBib29sZWFuIH0gPSB7fSkge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIGRhdGEtbmV4dGpzLWNhbGwtc3RhY2stY2hldnJvbi1pY29uXG4gICAgICBkYXRhLWNvbGxhcHNlZD17Y29sbGFwc2VkfVxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgaGVpZ2h0PVwiMjBcIlxuICAgICAgd2lkdGg9XCIyMFwiXG4gICAgICBzaGFwZVJlbmRlcmluZz1cImdlb21ldHJpY1ByZWNpc2lvblwiXG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgc3Ryb2tlV2lkdGg9XCIyXCJcbiAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgLy8gcm90YXRlIDkwIGRlZ3JlZXMgaWYgbm90IGNvbGxhcHNlZC5cbiAgICAgIC8vIElmIGNvbGxhcHNlZCBpc24ndCBwcmVzZW50LCB0aGUgcm90YXRpb24gaXMgYXBwbGllZCB2aWEgdGhlIGBkYXRhLW5leHRqcy1jb2xsYXBzZWQtY2FsbC1zdGFjay1kZXRhaWxzYCBlbGVtZW50J3MgYG9wZW5gIGF0dHJpYnV0ZVxuICAgICAgey4uLih0eXBlb2YgY29sbGFwc2VkID09PSAnYm9vbGVhbidcbiAgICAgICAgPyB7IHN0eWxlOiB7IHRyYW5zZm9ybTogY29sbGFwc2VkID8gdW5kZWZpbmVkIDogJ3JvdGF0ZSg5MGRlZyknIH0gfVxuICAgICAgICA6IHt9KX1cbiAgICA+XG4gICAgICA8cGF0aCBkPVwiTTkgMThsNi02LTYtNlwiIC8+XG4gICAgPC9zdmc+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJDb2xsYXBzZUljb24iLCJjb2xsYXBzZWQiLCJzdmciLCJkYXRhLW5leHRqcy1jYWxsLXN0YWNrLWNoZXZyb24taWNvbiIsImRhdGEtY29sbGFwc2VkIiwiZmlsbCIsImhlaWdodCIsIndpZHRoIiwic2hhcGVSZW5kZXJpbmciLCJzdHJva2UiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJzdHJva2VXaWR0aCIsInZpZXdCb3giLCJzdHlsZSIsInRyYW5zZm9ybSIsInVuZGVmaW5lZCIsInBhdGgiLCJkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js ***! + \********************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Base\", ({\n enumerable: true,\n get: function() {\n return Base;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _nooptemplate = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n :host {\\n --size-gap-half: 4px;\\n --size-gap: 8px;\\n --size-gap-double: 16px;\\n --size-gap-triple: 24px;\\n --size-gap-quad: 32px;\\n\\n --size-font-small: 14px;\\n --size-font: 16px;\\n --size-font-big: 20px;\\n --size-font-bigger: 24px;\\n\\n --color-background: white;\\n --color-font: #757575;\\n --color-backdrop: rgba(17, 17, 17, 0.2);\\n --color-border-shadow: rgba(0, 0, 0, 0.145);\\n\\n --color-title-color: #1f1f1f;\\n --color-stack-h6: #222;\\n --color-stack-headline: #666;\\n --color-stack-subline: #999;\\n --color-stack-notes: #777;\\n\\n --color-accents-1: #808080;\\n --color-accents-2: #222222;\\n --color-accents-3: #404040;\\n\\n --color-text-color-red-1: #ff5555;\\n --color-text-background-red-1: #fff9f9;\\n\\n --font-stack-monospace: 'SFMono-Regular', Consolas, 'Liberation Mono',\\n Menlo, Courier, monospace;\\n --font-stack-sans: -apple-system, 'Source Sans Pro', sans-serif;\\n\\n --color-ansi-selection: rgba(95, 126, 151, 0.48);\\n --color-ansi-bg: #111111;\\n --color-ansi-fg: #cccccc;\\n\\n --color-ansi-white: #777777;\\n --color-ansi-black: #141414;\\n --color-ansi-blue: #00aaff;\\n --color-ansi-cyan: #88ddff;\\n --color-ansi-green: #98ec65;\\n --color-ansi-magenta: #aa88ff;\\n --color-ansi-red: #ff5555;\\n --color-ansi-yellow: #ffcc33;\\n --color-ansi-bright-white: #ffffff;\\n --color-ansi-bright-black: #777777;\\n --color-ansi-bright-blue: #33bbff;\\n --color-ansi-bright-cyan: #bbecff;\\n --color-ansi-bright-green: #b6f292;\\n --color-ansi-bright-magenta: #cebbff;\\n --color-ansi-bright-red: #ff8888;\\n --color-ansi-bright-yellow: #ffd966;\\n }\\n\\n @media (prefers-color-scheme: dark) {\\n :host {\\n --color-background: rgb(28, 28, 30);\\n --color-font: white;\\n --color-backdrop: rgb(44, 44, 46);\\n --color-border-shadow: rgba(255, 255, 255, 0.145);\\n\\n --color-title-color: #fafafa;\\n --color-stack-h6: rgb(200, 200, 204);\\n --color-stack-headline: rgb(99, 99, 102);\\n --color-stack-notes: #a9a9a9;\\n --color-stack-subline: rgb(121, 121, 121);\\n\\n --color-accents-3: rgb(118, 118, 118);\\n\\n --color-text-background-red-1: #2a1e1e;\\n }\\n }\\n\\n .mono {\\n font-family: var(--font-stack-monospace);\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-bottom: var(--size-gap);\\n font-weight: 500;\\n line-height: 1.5;\\n }\\n \"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nfunction Base() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n children: (0, _nooptemplate.noop)(_templateObject())\n });\n}\n_c = Base;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=Base.js.map\nvar _c;\n$RefreshReg$(_c, \"Base\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL3N0eWxlcy9CYXNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7d0NBR2dCQTs7O2VBQUFBOzs7Ozs7NkVBSE87MENBQ0s7Ozs7Ozs7Ozs7QUFFckI7SUFDTCxxQkFDRSxxQkFBQ0MsU0FBQUE7c0JBQ0VDLGNBQUFBLElBQUFBLEVBQUc7O0FBNkZWO0tBaEdnQkYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvaW50ZXJuYWwvc3R5bGVzL0Jhc2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgbm9vcCBhcyBjc3MgfSBmcm9tICcuLi9oZWxwZXJzL25vb3AtdGVtcGxhdGUnXG5cbmV4cG9ydCBmdW5jdGlvbiBCYXNlKCkge1xuICByZXR1cm4gKFxuICAgIDxzdHlsZT5cbiAgICAgIHtjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAtLXNpemUtZ2FwLWhhbGY6IDRweDtcbiAgICAgICAgICAtLXNpemUtZ2FwOiA4cHg7XG4gICAgICAgICAgLS1zaXplLWdhcC1kb3VibGU6IDE2cHg7XG4gICAgICAgICAgLS1zaXplLWdhcC10cmlwbGU6IDI0cHg7XG4gICAgICAgICAgLS1zaXplLWdhcC1xdWFkOiAzMnB4O1xuXG4gICAgICAgICAgLS1zaXplLWZvbnQtc21hbGw6IDE0cHg7XG4gICAgICAgICAgLS1zaXplLWZvbnQ6IDE2cHg7XG4gICAgICAgICAgLS1zaXplLWZvbnQtYmlnOiAyMHB4O1xuICAgICAgICAgIC0tc2l6ZS1mb250LWJpZ2dlcjogMjRweDtcblxuICAgICAgICAgIC0tY29sb3ItYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgICAgLS1jb2xvci1mb250OiAjNzU3NTc1O1xuICAgICAgICAgIC0tY29sb3ItYmFja2Ryb3A6IHJnYmEoMTcsIDE3LCAxNywgMC4yKTtcbiAgICAgICAgICAtLWNvbG9yLWJvcmRlci1zaGFkb3c6IHJnYmEoMCwgMCwgMCwgMC4xNDUpO1xuXG4gICAgICAgICAgLS1jb2xvci10aXRsZS1jb2xvcjogIzFmMWYxZjtcbiAgICAgICAgICAtLWNvbG9yLXN0YWNrLWg2OiAjMjIyO1xuICAgICAgICAgIC0tY29sb3Itc3RhY2staGVhZGxpbmU6ICM2NjY7XG4gICAgICAgICAgLS1jb2xvci1zdGFjay1zdWJsaW5lOiAjOTk5O1xuICAgICAgICAgIC0tY29sb3Itc3RhY2stbm90ZXM6ICM3Nzc7XG5cbiAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMTogIzgwODA4MDtcbiAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMjogIzIyMjIyMjtcbiAgICAgICAgICAtLWNvbG9yLWFjY2VudHMtMzogIzQwNDA0MDtcblxuICAgICAgICAgIC0tY29sb3ItdGV4dC1jb2xvci1yZWQtMTogI2ZmNTU1NTtcbiAgICAgICAgICAtLWNvbG9yLXRleHQtYmFja2dyb3VuZC1yZWQtMTogI2ZmZjlmOTtcblxuICAgICAgICAgIC0tZm9udC1zdGFjay1tb25vc3BhY2U6ICdTRk1vbm8tUmVndWxhcicsIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJyxcbiAgICAgICAgICAgIE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gICAgICAgICAgLS1mb250LXN0YWNrLXNhbnM6IC1hcHBsZS1zeXN0ZW0sICdTb3VyY2UgU2FucyBQcm8nLCBzYW5zLXNlcmlmO1xuXG4gICAgICAgICAgLS1jb2xvci1hbnNpLXNlbGVjdGlvbjogcmdiYSg5NSwgMTI2LCAxNTEsIDAuNDgpO1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1iZzogIzExMTExMTtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktZmc6ICNjY2NjY2M7XG5cbiAgICAgICAgICAtLWNvbG9yLWFuc2ktd2hpdGU6ICM3Nzc3Nzc7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJsYWNrOiAjMTQxNDE0O1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1ibHVlOiAjMDBhYWZmO1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1jeWFuOiAjODhkZGZmO1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1ncmVlbjogIzk4ZWM2NTtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktbWFnZW50YTogI2FhODhmZjtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktcmVkOiAjZmY1NTU1O1xuICAgICAgICAgIC0tY29sb3ItYW5zaS15ZWxsb3c6ICNmZmNjMzM7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC13aGl0ZTogI2ZmZmZmZjtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWJsYWNrOiAjNzc3Nzc3O1xuICAgICAgICAgIC0tY29sb3ItYW5zaS1icmlnaHQtYmx1ZTogIzMzYmJmZjtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LWN5YW46ICNiYmVjZmY7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1ncmVlbjogI2I2ZjI5MjtcbiAgICAgICAgICAtLWNvbG9yLWFuc2ktYnJpZ2h0LW1hZ2VudGE6ICNjZWJiZmY7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC1yZWQ6ICNmZjg4ODg7XG4gICAgICAgICAgLS1jb2xvci1hbnNpLWJyaWdodC15ZWxsb3c6ICNmZmQ5NjY7XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgLS1jb2xvci1iYWNrZ3JvdW5kOiByZ2IoMjgsIDI4LCAzMCk7XG4gICAgICAgICAgICAtLWNvbG9yLWZvbnQ6IHdoaXRlO1xuICAgICAgICAgICAgLS1jb2xvci1iYWNrZHJvcDogcmdiKDQ0LCA0NCwgNDYpO1xuICAgICAgICAgICAgLS1jb2xvci1ib3JkZXItc2hhZG93OiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTQ1KTtcblxuICAgICAgICAgICAgLS1jb2xvci10aXRsZS1jb2xvcjogI2ZhZmFmYTtcbiAgICAgICAgICAgIC0tY29sb3Itc3RhY2staDY6IHJnYigyMDAsIDIwMCwgMjA0KTtcbiAgICAgICAgICAgIC0tY29sb3Itc3RhY2staGVhZGxpbmU6IHJnYig5OSwgOTksIDEwMik7XG4gICAgICAgICAgICAtLWNvbG9yLXN0YWNrLW5vdGVzOiAjYTlhOWE5O1xuICAgICAgICAgICAgLS1jb2xvci1zdGFjay1zdWJsaW5lOiByZ2IoMTIxLCAxMjEsIDEyMSk7XG5cbiAgICAgICAgICAgIC0tY29sb3ItYWNjZW50cy0zOiByZ2IoMTE4LCAxMTgsIDExOCk7XG5cbiAgICAgICAgICAgIC0tY29sb3ItdGV4dC1iYWNrZ3JvdW5kLXJlZC0xOiAjMmExZTFlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tb25vIHtcbiAgICAgICAgICBmb250LWZhbWlseTogdmFyKC0tZm9udC1zdGFjay1tb25vc3BhY2UpO1xuICAgICAgICB9XG5cbiAgICAgICAgaDEsXG4gICAgICAgIGgyLFxuICAgICAgICBoMyxcbiAgICAgICAgaDQsXG4gICAgICAgIGg1LFxuICAgICAgICBoNiB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc2l6ZS1nYXApO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgICA8L3N0eWxlPlxuICApXG59XG4iXSwibmFtZXMiOlsiQmFzZSIsInN0eWxlIiwiY3NzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js ***! + \*******************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ComponentStyles\", ({\n enumerable: true,\n get: function() {\n return ComponentStyles;\n }\n}));\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _styles = __webpack_require__(/*! ../components/CodeFrame/styles */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js\");\nconst _Dialog = __webpack_require__(/*! ../components/Dialog */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js\");\nconst _styles1 = __webpack_require__(/*! ../components/LeftRightDialogHeader/styles */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js\");\nconst _styles2 = __webpack_require__(/*! ../components/Overlay/styles */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/styles.js\");\nconst _styles3 = __webpack_require__(/*! ../components/Terminal/styles */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/styles.js\");\nconst _Toast = __webpack_require__(/*! ../components/Toast */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js\");\nconst _VersionStalenessInfo = __webpack_require__(/*! ../components/VersionStalenessInfo */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js\");\nconst _BuildError = __webpack_require__(/*! ../container/BuildError */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js\");\nconst _Errors = __webpack_require__(/*! ../container/Errors */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js\");\nconst _RuntimeError = __webpack_require__(/*! ../container/RuntimeError */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js\");\nconst _nooptemplate = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \",\n \"\\n \"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nfunction ComponentStyles() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n children: (0, _nooptemplate.noop)(_templateObject(), _styles2.styles, _Toast.styles, _Dialog.styles, _styles1.styles, _styles.styles, _styles3.styles, _BuildError.styles, _Errors.styles, _RuntimeError.styles, _VersionStalenessInfo.styles)\n });\n}\n_c = ComponentStyles;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=ComponentStyles.js.map\nvar _c;\n$RefreshReg$(_c, \"ComponentStyles\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL3N0eWxlcy9Db21wb25lbnRTdHlsZXMuanMiLCJtYXBwaW5ncyI6Ijs7OzttREFZZ0JBOzs7ZUFBQUE7Ozs7O29DQVpvQjtvQ0FDSDtxQ0FDZTtxQ0FDZDtxQ0FDQzttQ0FDSDtrREFDVzt3Q0FDQTtvQ0FDSTswQ0FDTzswQ0FDMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJCO0lBQ0wscUJBQ0UscUJBQUNDLFNBQUFBO3NCQUNFQyxjQUFBQSxJQUFBQSxFQUFHLG1CQUNBQyxTQUFBQSxNQUFPLEVBQ1BDLE9BQUFBLE1BQUssRUFDTEMsUUFBQUEsTUFBTSxFQUNOQyxTQUFBQSxNQUFxQixFQUNyQkMsUUFBQUEsTUFBUyxFQUNUQyxTQUFBQSxNQUFRLEVBQ1JDLFlBQUFBLE1BQWdCLEVBQ2hCQyxRQUFBQSxNQUFvQixFQUNwQkMsY0FBQUEsTUFBMkIsRUFDM0JDLHNCQUFBQSxNQUFnQjs7QUFJMUI7S0FqQmdCWiIsInNvdXJjZXMiOlsiL1VzZXJzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9pbnRlcm5hbC9zdHlsZXMvQ29tcG9uZW50U3R5bGVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdHlsZXMgYXMgY29kZUZyYW1lIH0gZnJvbSAnLi4vY29tcG9uZW50cy9Db2RlRnJhbWUvc3R5bGVzJ1xuaW1wb3J0IHsgc3R5bGVzIGFzIGRpYWxvZyB9IGZyb20gJy4uL2NvbXBvbmVudHMvRGlhbG9nJ1xuaW1wb3J0IHsgc3R5bGVzIGFzIGxlZnRSaWdodERpYWxvZ0hlYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudHMvTGVmdFJpZ2h0RGlhbG9nSGVhZGVyL3N0eWxlcydcbmltcG9ydCB7IHN0eWxlcyBhcyBvdmVybGF5IH0gZnJvbSAnLi4vY29tcG9uZW50cy9PdmVybGF5L3N0eWxlcydcbmltcG9ydCB7IHN0eWxlcyBhcyB0ZXJtaW5hbCB9IGZyb20gJy4uL2NvbXBvbmVudHMvVGVybWluYWwvc3R5bGVzJ1xuaW1wb3J0IHsgc3R5bGVzIGFzIHRvYXN0IH0gZnJvbSAnLi4vY29tcG9uZW50cy9Ub2FzdCdcbmltcG9ydCB7IHN0eWxlcyBhcyB2ZXJzaW9uU3RhbGVuZXNzIH0gZnJvbSAnLi4vY29tcG9uZW50cy9WZXJzaW9uU3RhbGVuZXNzSW5mbydcbmltcG9ydCB7IHN0eWxlcyBhcyBidWlsZEVycm9yU3R5bGVzIH0gZnJvbSAnLi4vY29udGFpbmVyL0J1aWxkRXJyb3InXG5pbXBvcnQgeyBzdHlsZXMgYXMgY29udGFpbmVyRXJyb3JTdHlsZXMgfSBmcm9tICcuLi9jb250YWluZXIvRXJyb3JzJ1xuaW1wb3J0IHsgc3R5bGVzIGFzIGNvbnRhaW5lclJ1bnRpbWVFcnJvclN0eWxlcyB9IGZyb20gJy4uL2NvbnRhaW5lci9SdW50aW1lRXJyb3InXG5pbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gJy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZSdcblxuZXhwb3J0IGZ1bmN0aW9uIENvbXBvbmVudFN0eWxlcygpIHtcbiAgcmV0dXJuIChcbiAgICA8c3R5bGU+XG4gICAgICB7Y3NzYFxuICAgICAgICAke292ZXJsYXl9XG4gICAgICAgICR7dG9hc3R9XG4gICAgICAgICR7ZGlhbG9nfVxuICAgICAgICAke2xlZnRSaWdodERpYWxvZ0hlYWRlcn1cbiAgICAgICAgJHtjb2RlRnJhbWV9XG4gICAgICAgICR7dGVybWluYWx9XG4gICAgICAgICR7YnVpbGRFcnJvclN0eWxlc31cbiAgICAgICAgJHtjb250YWluZXJFcnJvclN0eWxlc31cbiAgICAgICAgJHtjb250YWluZXJSdW50aW1lRXJyb3JTdHlsZXN9XG4gICAgICAgICR7dmVyc2lvblN0YWxlbmVzc31cbiAgICAgIGB9XG4gICAgPC9zdHlsZT5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkNvbXBvbmVudFN0eWxlcyIsInN0eWxlIiwiY3NzIiwib3ZlcmxheSIsInRvYXN0IiwiZGlhbG9nIiwibGVmdFJpZ2h0RGlhbG9nSGVhZGVyIiwiY29kZUZyYW1lIiwidGVybWluYWwiLCJidWlsZEVycm9yU3R5bGVzIiwiY29udGFpbmVyRXJyb3JTdHlsZXMiLCJjb250YWluZXJSdW50aW1lRXJyb3JTdHlsZXMiLCJ2ZXJzaW9uU3RhbGVuZXNzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js ***! + \************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"CssReset\", ({\n enumerable: true,\n get: function() {\n return CssReset;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _tagged_template_literal_loose = __webpack_require__(/*! @swc/helpers/_/_tagged_template_literal_loose */ \"./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _nooptemplate = __webpack_require__(/*! ../helpers/noop-template */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js\");\nfunction _templateObject() {\n const data = _tagged_template_literal_loose._([\n \"\\n :host {\\n all: initial;\\n\\n /* the direction property is not reset by 'all' */\\n direction: ltr;\\n }\\n\\n /*!\\n * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)\\n * Copyright 2011-2019 The Bootstrap Authors\\n * Copyright 2011-2019 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\\n */\\n *,\\n *::before,\\n *::after {\\n box-sizing: border-box;\\n }\\n\\n :host {\\n font-family: sans-serif;\\n line-height: 1.15;\\n -webkit-text-size-adjust: 100%;\\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\\n }\\n\\n article,\\n aside,\\n figcaption,\\n figure,\\n footer,\\n header,\\n hgroup,\\n main,\\n nav,\\n section {\\n display: block;\\n }\\n\\n :host {\\n margin: 0;\\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\\n 'Helvetica Neue', Arial, 'Noto Sans', sans-serif,\\n 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',\\n 'Noto Color Emoji';\\n font-size: 16px;\\n font-weight: 400;\\n line-height: 1.5;\\n color: var(--color-font);\\n text-align: left;\\n background-color: #fff;\\n }\\n\\n [tabindex='-1']:focus:not(:focus-visible) {\\n outline: 0 !important;\\n }\\n\\n hr {\\n box-sizing: content-box;\\n height: 0;\\n overflow: visible;\\n }\\n\\n h1,\\n h2,\\n h3,\\n h4,\\n h5,\\n h6 {\\n margin-top: 0;\\n margin-bottom: 8px;\\n }\\n\\n p {\\n margin-top: 0;\\n margin-bottom: 16px;\\n }\\n\\n abbr[title],\\n abbr[data-original-title] {\\n text-decoration: underline;\\n -webkit-text-decoration: underline dotted;\\n text-decoration: underline dotted;\\n cursor: help;\\n border-bottom: 0;\\n -webkit-text-decoration-skip-ink: none;\\n text-decoration-skip-ink: none;\\n }\\n\\n address {\\n margin-bottom: 16px;\\n font-style: normal;\\n line-height: inherit;\\n }\\n\\n ol,\\n ul,\\n dl {\\n margin-top: 0;\\n margin-bottom: 16px;\\n }\\n\\n ol ol,\\n ul ul,\\n ol ul,\\n ul ol {\\n margin-bottom: 0;\\n }\\n\\n dt {\\n font-weight: 700;\\n }\\n\\n dd {\\n margin-bottom: 8px;\\n margin-left: 0;\\n }\\n\\n blockquote {\\n margin: 0 0 16px;\\n }\\n\\n b,\\n strong {\\n font-weight: bolder;\\n }\\n\\n small {\\n font-size: 80%;\\n }\\n\\n sub,\\n sup {\\n position: relative;\\n font-size: 75%;\\n line-height: 0;\\n vertical-align: baseline;\\n }\\n\\n sub {\\n bottom: -0.25em;\\n }\\n\\n sup {\\n top: -0.5em;\\n }\\n\\n a {\\n color: #007bff;\\n text-decoration: none;\\n background-color: transparent;\\n }\\n\\n a:hover {\\n color: #0056b3;\\n text-decoration: underline;\\n }\\n\\n a:not([href]) {\\n color: inherit;\\n text-decoration: none;\\n }\\n\\n a:not([href]):hover {\\n color: inherit;\\n text-decoration: none;\\n }\\n\\n pre,\\n code,\\n kbd,\\n samp {\\n font-family: SFMono-Regular, Menlo, Monaco, Consolas,\\n 'Liberation Mono', 'Courier New', monospace;\\n font-size: 1em;\\n }\\n\\n pre {\\n margin-top: 0;\\n margin-bottom: 16px;\\n overflow: auto;\\n }\\n\\n figure {\\n margin: 0 0 16px;\\n }\\n\\n img {\\n vertical-align: middle;\\n border-style: none;\\n }\\n\\n svg {\\n overflow: hidden;\\n vertical-align: middle;\\n }\\n\\n table {\\n border-collapse: collapse;\\n }\\n\\n caption {\\n padding-top: 12px;\\n padding-bottom: 12px;\\n color: #6c757d;\\n text-align: left;\\n caption-side: bottom;\\n }\\n\\n th {\\n text-align: inherit;\\n }\\n\\n label {\\n display: inline-block;\\n margin-bottom: 8px;\\n }\\n\\n button {\\n border-radius: 0;\\n }\\n\\n button:focus {\\n outline: 1px dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n }\\n\\n input,\\n button,\\n select,\\n optgroup,\\n textarea {\\n margin: 0;\\n font-family: inherit;\\n font-size: inherit;\\n line-height: inherit;\\n }\\n\\n button,\\n input {\\n overflow: visible;\\n }\\n\\n button,\\n select {\\n text-transform: none;\\n }\\n\\n select {\\n word-wrap: normal;\\n }\\n\\n button,\\n [type='button'],\\n [type='reset'],\\n [type='submit'] {\\n -webkit-appearance: button;\\n }\\n\\n button:not(:disabled),\\n [type='button']:not(:disabled),\\n [type='reset']:not(:disabled),\\n [type='submit']:not(:disabled) {\\n cursor: pointer;\\n }\\n\\n button::-moz-focus-inner,\\n [type='button']::-moz-focus-inner,\\n [type='reset']::-moz-focus-inner,\\n [type='submit']::-moz-focus-inner {\\n padding: 0;\\n border-style: none;\\n }\\n\\n input[type='radio'],\\n input[type='checkbox'] {\\n box-sizing: border-box;\\n padding: 0;\\n }\\n\\n input[type='date'],\\n input[type='time'],\\n input[type='datetime-local'],\\n input[type='month'] {\\n -webkit-appearance: listbox;\\n }\\n\\n textarea {\\n overflow: auto;\\n resize: vertical;\\n }\\n\\n fieldset {\\n min-width: 0;\\n padding: 0;\\n margin: 0;\\n border: 0;\\n }\\n\\n legend {\\n display: block;\\n width: 100%;\\n max-width: 100%;\\n padding: 0;\\n margin-bottom: 8px;\\n font-size: 24px;\\n line-height: inherit;\\n color: inherit;\\n white-space: normal;\\n }\\n\\n progress {\\n vertical-align: baseline;\\n }\\n\\n [type='number']::-webkit-inner-spin-button,\\n [type='number']::-webkit-outer-spin-button {\\n height: auto;\\n }\\n\\n [type='search'] {\\n outline-offset: -2px;\\n -webkit-appearance: none;\\n }\\n\\n [type='search']::-webkit-search-decoration {\\n -webkit-appearance: none;\\n }\\n\\n ::-webkit-file-upload-button {\\n font: inherit;\\n -webkit-appearance: button;\\n }\\n\\n output {\\n display: inline-block;\\n }\\n\\n summary {\\n display: list-item;\\n cursor: pointer;\\n }\\n\\n template {\\n display: none;\\n }\\n\\n [hidden] {\\n display: none !important;\\n }\\n \"\n ]);\n _templateObject = function() {\n return data;\n };\n return data;\n}\nfunction CssReset() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n children: (0, _nooptemplate.noop)(_templateObject())\n });\n}\n_c = CssReset;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=CssReset.js.map\nvar _c;\n$RefreshReg$(_c, \"CssReset\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL3N0eWxlcy9Dc3NSZXNldC5qcyIsIm1hcHBpbmdzIjoiOzs7OzRDQUdnQkE7OztlQUFBQTs7Ozs7OzZFQUhPOzBDQUNLOzs7Ozs7Ozs7O0FBRXJCO0lBQ0wscUJBQ0UscUJBQUNDLFNBQUFBO3NCQUNFQyxjQUFBQSxJQUFBQSxFQUFHOztBQW1XVjtLQXRXZ0JGIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL3N0eWxlcy9Dc3NSZXNldC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBub29wIGFzIGNzcyB9IGZyb20gJy4uL2hlbHBlcnMvbm9vcC10ZW1wbGF0ZSdcblxuZXhwb3J0IGZ1bmN0aW9uIENzc1Jlc2V0KCkge1xuICByZXR1cm4gKFxuICAgIDxzdHlsZT5cbiAgICAgIHtjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBhbGw6IGluaXRpYWw7XG5cbiAgICAgICAgICAvKiB0aGUgZGlyZWN0aW9uIHByb3BlcnR5IGlzIG5vdCByZXNldCBieSAnYWxsJyAqL1xuICAgICAgICAgIGRpcmVjdGlvbjogbHRyO1xuICAgICAgICB9XG5cbiAgICAgICAgLyohXG4gICAgICAgICAqIEJvb3RzdHJhcCBSZWJvb3QgdjQuNC4xIChodHRwczovL2dldGJvb3RzdHJhcC5jb20vKVxuICAgICAgICAgKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFRoZSBCb290c3RyYXAgQXV0aG9yc1xuICAgICAgICAgKiBDb3B5cmlnaHQgMjAxMS0yMDE5IFR3aXR0ZXIsIEluYy5cbiAgICAgICAgICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSlcbiAgICAgICAgICogRm9ya2VkIGZyb20gTm9ybWFsaXplLmNzcywgbGljZW5zZWQgTUlUIChodHRwczovL2dpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQpXG4gICAgICAgICAqL1xuICAgICAgICAqLFxuICAgICAgICAqOjpiZWZvcmUsXG4gICAgICAgICo6OmFmdGVyIHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAgICAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgICAgICAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICBhcnRpY2xlLFxuICAgICAgICBhc2lkZSxcbiAgICAgICAgZmlnY2FwdGlvbixcbiAgICAgICAgZmlndXJlLFxuICAgICAgICBmb290ZXIsXG4gICAgICAgIGhlYWRlcixcbiAgICAgICAgaGdyb3VwLFxuICAgICAgICBtYWluLFxuICAgICAgICBuYXYsXG4gICAgICAgIHNlY3Rpb24ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAnU2Vnb2UgVUknLCBSb2JvdG8sXG4gICAgICAgICAgICAnSGVsdmV0aWNhIE5ldWUnLCBBcmlhbCwgJ05vdG8gU2FucycsIHNhbnMtc2VyaWYsXG4gICAgICAgICAgICAnQXBwbGUgQ29sb3IgRW1vamknLCAnU2Vnb2UgVUkgRW1vamknLCAnU2Vnb2UgVUkgU3ltYm9sJyxcbiAgICAgICAgICAgICdOb3RvIENvbG9yIEVtb2ppJztcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41O1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1mb250KTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgIH1cblxuICAgICAgICBbdGFiaW5kZXg9Jy0xJ106Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgb3V0bGluZTogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaHIge1xuICAgICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGgxLFxuICAgICAgICBoMixcbiAgICAgICAgaDMsXG4gICAgICAgIGg0LFxuICAgICAgICBoNSxcbiAgICAgICAgaDYge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgYWJiclt0aXRsZV0sXG4gICAgICAgIGFiYnJbZGF0YS1vcmlnaW5hbC10aXRsZV0ge1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkO1xuICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgICAgICAgICBjdXJzb3I6IGhlbHA7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwLWluazogbm9uZTtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb24tc2tpcC1pbms6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBhZGRyZXNzIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgICAgIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgfVxuXG4gICAgICAgIG9sLFxuICAgICAgICB1bCxcbiAgICAgICAgZGwge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgfVxuXG4gICAgICAgIG9sIG9sLFxuICAgICAgICB1bCB1bCxcbiAgICAgICAgb2wgdWwsXG4gICAgICAgIHVsIG9sIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgZHQge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIH1cblxuICAgICAgICBkZCB7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgYmxvY2txdW90ZSB7XG4gICAgICAgICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGIsXG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNtYWxsIHtcbiAgICAgICAgICBmb250LXNpemU6IDgwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1YixcbiAgICAgICAgc3VwIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgICB9XG5cbiAgICAgICAgc3ViIHtcbiAgICAgICAgICBib3R0b206IC0wLjI1ZW07XG4gICAgICAgIH1cblxuICAgICAgICBzdXAge1xuICAgICAgICAgIHRvcDogLTAuNWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgY29sb3I6ICMwMDdiZmY7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgYTpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICMwMDU2YjM7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBhOm5vdChbaHJlZl0pIHtcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBhOm5vdChbaHJlZl0pOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBwcmUsXG4gICAgICAgIGNvZGUsXG4gICAgICAgIGtiZCxcbiAgICAgICAgc2FtcCB7XG4gICAgICAgICAgZm9udC1mYW1pbHk6IFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcyxcbiAgICAgICAgICAgICdMaWJlcmF0aW9uIE1vbm8nLCAnQ291cmllciBOZXcnLCBtb25vc3BhY2U7XG4gICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgIH1cblxuICAgICAgICBwcmUge1xuICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIGZpZ3VyZSB7XG4gICAgICAgICAgbWFyZ2luOiAwIDAgMTZweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRhYmxlIHtcbiAgICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FwdGlvbiB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgICAgICAgY29sb3I6ICM2Yzc1N2Q7XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICBjYXB0aW9uLXNpZGU6IGJvdHRvbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoIHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b24ge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b246Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IDFweCBkb3R0ZWQ7XG4gICAgICAgICAgb3V0bGluZTogNXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQsXG4gICAgICAgIGJ1dHRvbixcbiAgICAgICAgc2VsZWN0LFxuICAgICAgICBvcHRncm91cCxcbiAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b24sXG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbixcbiAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdCB7XG4gICAgICAgICAgd29yZC13cmFwOiBub3JtYWw7XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b24sXG4gICAgICAgIFt0eXBlPSdidXR0b24nXSxcbiAgICAgICAgW3R5cGU9J3Jlc2V0J10sXG4gICAgICAgIFt0eXBlPSdzdWJtaXQnXSB7XG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b246bm90KDpkaXNhYmxlZCksXG4gICAgICAgIFt0eXBlPSdidXR0b24nXTpub3QoOmRpc2FibGVkKSxcbiAgICAgICAgW3R5cGU9J3Jlc2V0J106bm90KDpkaXNhYmxlZCksXG4gICAgICAgIFt0eXBlPSdzdWJtaXQnXTpub3QoOmRpc2FibGVkKSB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICAgICAgICBbdHlwZT0nYnV0dG9uJ106Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgICAgIFt0eXBlPSdyZXNldCddOjotbW96LWZvY3VzLWlubmVyLFxuICAgICAgICBbdHlwZT0nc3VibWl0J106Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXRbdHlwZT0ncmFkaW8nXSxcbiAgICAgICAgaW5wdXRbdHlwZT0nY2hlY2tib3gnXSB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXRbdHlwZT0nZGF0ZSddLFxuICAgICAgICBpbnB1dFt0eXBlPSd0aW1lJ10sXG4gICAgICAgIGlucHV0W3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sXG4gICAgICAgIGlucHV0W3R5cGU9J21vbnRoJ10ge1xuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbGlzdGJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgICAgICB9XG5cbiAgICAgICAgZmllbGRzZXQge1xuICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBsZWdlbmQge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDhweDtcbiAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb2dyZXNzIHtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgICAgIFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgW3R5cGU9J3NlYXJjaCddIHtcbiAgICAgICAgICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgICAgICAgIGZvbnQ6IGluaGVyaXQ7XG4gICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gICAgICAgIH1cblxuICAgICAgICBvdXRwdXQge1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIHN1bW1hcnkge1xuICAgICAgICAgIGRpc3BsYXk6IGxpc3QtaXRlbTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICB0ZW1wbGF0ZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIFtoaWRkZW5dIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gICAgPC9zdHlsZT5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkNzc1Jlc2V0Iiwic3R5bGUiLCJjc3MiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/pages/ErrorBoundary.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/pages/ErrorBoundary.js ***! + \*******************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ErrorBoundary\", ({\n enumerable: true,\n get: function() {\n return ErrorBoundary;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nclass ErrorBoundary extends _react.PureComponent {\n static getDerivedStateFromError(error) {\n return {\n error\n };\n }\n componentDidCatch(error, // accidentally excluded in some versions.\n errorInfo) {\n this.props.onError(error, (errorInfo == null ? void 0 : errorInfo.componentStack) || null);\n if (!this.props.globalOverlay) {\n this.setState({\n error\n });\n }\n }\n // Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version.\n render() {\n // The component has to be unmounted or else it would continue to error\n return this.state.error || this.props.globalOverlay && this.props.isMounted ? // we have to render the html shell otherwise the shadow root will not be able to attach\n this.props.globalOverlay ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"html\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"head\", {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"body\", {})\n ]\n }) : null : this.props.children;\n }\n constructor(...args){\n super(...args), this.state = {\n error: null\n };\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=ErrorBoundary.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL0Vycm9yQm91bmRhcnkuanMiLCJtYXBwaW5ncyI6Ijs7OztpREFVYUE7OztlQUFBQTs7Ozs7NkVBVlU7QUFVaEIsTUFBTUEsc0JBQXNCQyxPQUFNQyxhQUFhO0lBTXBELE9BQU9DLHlCQUF5QkMsS0FBWSxFQUFFO1FBQzVDLE9BQU87WUFBRUE7UUFBTTtJQUNqQjtJQUVBQyxrQkFDRUQsS0FBWSxFQUNaLDBDQUMwQztJQUMxQ0UsU0FBOEMsRUFDOUM7UUFDQSxJQUFJLENBQUNDLEtBQUssQ0FBQ0MsT0FBTyxDQUFDSixPQUFPRSxDQUFBQSxhQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxVQUFXRyxjQUFBQSxLQUFrQjtRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDRixLQUFLLENBQUNHLGFBQWEsRUFBRTtZQUM3QixJQUFJLENBQUNDLFFBQVEsQ0FBQztnQkFBRVA7WUFBTTtRQUN4QjtJQUNGO0lBRUEseUlBQXlJO0lBQ3pJUSxTQUEwQjtRQUN4Qix1RUFBdUU7UUFDdkUsT0FBTyxJQUFJLENBQUNDLEtBQUssQ0FBQ1QsS0FBSyxJQUNwQixJQUFJLENBQUNHLEtBQUssQ0FBQ0csYUFBYSxJQUFJLElBQUksQ0FBQ0gsS0FBSyxDQUFDTyxTQUFTLEdBQ2pELHdGQUN3RjtRQUN4RixJQUFJLENBQUNQLEtBQUssQ0FBQ0csYUFBYSxHQUN0QixXQURzQixHQUN0QixzQkFBQ0ssUUFBQUE7OzhCQUNDLHFCQUFDQyxRQUFBQSxDQUFBQTs4QkFDRCxxQkFBQ0MsUUFBQUEsQ0FBQUE7O2FBRUQsT0FFSixJQUFJLENBQUNWLEtBQUssQ0FBQ1csUUFBUTtJQUV2Qjs7UUF0Q0sscUJBSUxMLEtBQUFBLEdBQVE7WUFBRVQsT0FBTztRQUFLOztBQW1DeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL0Vycm9yQm91bmRhcnkudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG50eXBlIEVycm9yQm91bmRhcnlQcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgb25FcnJvcjogKGVycm9yOiBFcnJvciwgY29tcG9uZW50U3RhY2s6IHN0cmluZyB8IG51bGwpID0+IHZvaWRcbiAgZ2xvYmFsT3ZlcmxheT86IGJvb2xlYW5cbiAgaXNNb3VudGVkPzogYm9vbGVhblxufVxudHlwZSBFcnJvckJvdW5kYXJ5U3RhdGUgPSB7IGVycm9yOiBFcnJvciB8IG51bGwgfVxuXG5leHBvcnQgY2xhc3MgRXJyb3JCb3VuZGFyeSBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8XG4gIEVycm9yQm91bmRhcnlQcm9wcyxcbiAgRXJyb3JCb3VuZGFyeVN0YXRlXG4+IHtcbiAgc3RhdGUgPSB7IGVycm9yOiBudWxsIH1cblxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKGVycm9yOiBFcnJvcikge1xuICAgIHJldHVybiB7IGVycm9yIH1cbiAgfVxuXG4gIGNvbXBvbmVudERpZENhdGNoKFxuICAgIGVycm9yOiBFcnJvcixcbiAgICAvLyBMb29zZWx5IHR5cGVkIGJlY2F1c2UgaXQgZGVwZW5kcyBvbiB0aGUgUmVhY3QgdmVyc2lvbiBhbmQgd2FzXG4gICAgLy8gYWNjaWRlbnRhbGx5IGV4Y2x1ZGVkIGluIHNvbWUgdmVyc2lvbnMuXG4gICAgZXJyb3JJbmZvPzogeyBjb21wb25lbnRTdGFjaz86IHN0cmluZyB8IG51bGwgfVxuICApIHtcbiAgICB0aGlzLnByb3BzLm9uRXJyb3IoZXJyb3IsIGVycm9ySW5mbz8uY29tcG9uZW50U3RhY2sgfHwgbnVsbClcbiAgICBpZiAoIXRoaXMucHJvcHMuZ2xvYmFsT3ZlcmxheSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVycm9yIH0pXG4gICAgfVxuICB9XG5cbiAgLy8gRXhwbGljaXQgdHlwZSBpcyBuZWVkZWQgdG8gYXZvaWQgdGhlIGdlbmVyYXRlZCBgLmQudHNgIGhhdmluZyBhIHdpZGUgcmV0dXJuIHR5cGUgdGhhdCBjb3VsZCBiZSBzcGVjaWZpYyB0byB0aGUgYEB0eXBlcy9yZWFjdGAgdmVyc2lvbi5cbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gICAgLy8gVGhlIGNvbXBvbmVudCBoYXMgdG8gYmUgdW5tb3VudGVkIG9yIGVsc2UgaXQgd291bGQgY29udGludWUgdG8gZXJyb3JcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5lcnJvciB8fFxuICAgICAgKHRoaXMucHJvcHMuZ2xvYmFsT3ZlcmxheSAmJiB0aGlzLnByb3BzLmlzTW91bnRlZCkgPyAoXG4gICAgICAvLyBXaGVuIHRoZSBvdmVybGF5IGlzIGdsb2JhbCBmb3IgdGhlIGFwcGxpY2F0aW9uIGFuZCBpdCB3cmFwcyBhIGNvbXBvbmVudCByZW5kZXJpbmcgYDxodG1sPmBcbiAgICAgIC8vIHdlIGhhdmUgdG8gcmVuZGVyIHRoZSBodG1sIHNoZWxsIG90aGVyd2lzZSB0aGUgc2hhZG93IHJvb3Qgd2lsbCBub3QgYmUgYWJsZSB0byBhdHRhY2hcbiAgICAgIHRoaXMucHJvcHMuZ2xvYmFsT3ZlcmxheSA/IChcbiAgICAgICAgPGh0bWw+XG4gICAgICAgICAgPGhlYWQ+PC9oZWFkPlxuICAgICAgICAgIDxib2R5PjwvYm9keT5cbiAgICAgICAgPC9odG1sPlxuICAgICAgKSA6IG51bGxcbiAgICApIDogKFxuICAgICAgdGhpcy5wcm9wcy5jaGlsZHJlblxuICAgIClcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkVycm9yQm91bmRhcnkiLCJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IiLCJlcnJvciIsImNvbXBvbmVudERpZENhdGNoIiwiZXJyb3JJbmZvIiwicHJvcHMiLCJvbkVycm9yIiwiY29tcG9uZW50U3RhY2siLCJnbG9iYWxPdmVybGF5Iiwic2V0U3RhdGUiLCJyZW5kZXIiLCJzdGF0ZSIsImlzTW91bnRlZCIsImh0bWwiLCJoZWFkIiwiYm9keSIsImNoaWxkcmVuIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/pages/ErrorBoundary.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/pages/ReactDevOverlay.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/pages/ReactDevOverlay.js ***! + \*********************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return ReactDevOverlay;\n }\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _bus = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./bus */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/bus.js\"));\nconst _ShadowPortal = __webpack_require__(/*! ../internal/components/ShadowPortal */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js\");\nconst _BuildError = __webpack_require__(/*! ../internal/container/BuildError */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js\");\nconst _Errors = __webpack_require__(/*! ../internal/container/Errors */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js\");\nconst _ErrorBoundary = __webpack_require__(/*! ./ErrorBoundary */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/ErrorBoundary.js\");\nconst _Base = __webpack_require__(/*! ../internal/styles/Base */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js\");\nconst _ComponentStyles = __webpack_require__(/*! ../internal/styles/ComponentStyles */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js\");\nconst _CssReset = __webpack_require__(/*! ../internal/styles/CssReset */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js\");\nconst _shared = __webpack_require__(/*! ../shared */ \"./node_modules/next/dist/client/components/react-dev-overlay/shared.js\");\nconst shouldPreventDisplay = (errorType, preventType)=>{\n if (!preventType || !errorType) {\n return false;\n }\n return preventType.includes(errorType);\n};\nfunction ReactDevOverlay(param) {\n _s();\n let { children, preventDisplay, globalOverlay } = param;\n const [state, dispatch] = (0, _shared.useErrorOverlayReducer)();\n _react.useEffect({\n \"ReactDevOverlay.useEffect\": ()=>{\n _bus.on(dispatch);\n return ({\n \"ReactDevOverlay.useEffect\": function() {\n _bus.off(dispatch);\n }\n })[\"ReactDevOverlay.useEffect\"];\n }\n }[\"ReactDevOverlay.useEffect\"], [\n dispatch\n ]);\n const onComponentError = _react.useCallback({\n \"ReactDevOverlay.useCallback[onComponentError]\": (_error, _componentStack)=>{\n // TODO: special handling\n }\n }[\"ReactDevOverlay.useCallback[onComponentError]\"], []);\n const hasBuildError = state.buildError != null;\n const hasRuntimeErrors = Boolean(state.errors.length);\n const errorType = hasBuildError ? 'build' : hasRuntimeErrors ? 'runtime' : null;\n const isMounted = errorType !== null;\n const displayPrevented = shouldPreventDisplay(errorType, preventDisplay);\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_ErrorBoundary.ErrorBoundary, {\n globalOverlay: globalOverlay,\n isMounted: isMounted,\n onError: onComponentError,\n children: children != null ? children : null\n }),\n isMounted ? /*#__PURE__*/ (0, _jsxruntime.jsxs)(_ShadowPortal.ShadowPortal, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_CssReset.CssReset, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_Base.Base, {}),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_ComponentStyles.ComponentStyles, {}),\n displayPrevented ? null : hasBuildError ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_BuildError.BuildError, {\n message: state.buildError,\n versionInfo: state.versionInfo\n }) : hasRuntimeErrors ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_Errors.Errors, {\n isAppDir: false,\n errors: state.errors,\n versionInfo: state.versionInfo,\n initialDisplayState: 'fullscreen'\n }) : undefined\n ]\n }) : undefined\n ]\n });\n}\n_s(ReactDevOverlay, \"yiU6D4sMPUxEaIlbYMKpxnTQY+U=\");\n_c = ReactDevOverlay;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=ReactDevOverlay.js.map\nvar _c;\n$RefreshReg$(_c, \"ReactDevOverlay\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL1JlYWN0RGV2T3ZlcmxheS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7MkNBOEJBOzs7ZUFBd0JBOzs7Ozs2RUE5QkQ7MkVBRUY7MENBQ1E7d0NBQ0Y7b0NBQ0o7MkNBQ087a0NBQ1Q7NkNBQ1c7c0NBQ1A7b0NBQ2M7QUFJdkMsTUFBTUMsdUJBQXVCLENBQzNCQyxXQUNBQztJQUVBLElBQUksQ0FBQ0EsZUFBZSxDQUFDRCxXQUFXO1FBQzlCLE9BQU87SUFDVDtJQUNBLE9BQU9DLFlBQVlDLFFBQVEsQ0FBQ0Y7QUFDOUI7QUFRZSx5QkFBeUIsS0FJakI7O0lBSmlCLE1BQ3RDRyxRQUFRLEVBQ1JDLGNBQWMsRUFDZEMsYUFBYSxFQUNRLEdBSmlCO0lBS3RDLE1BQU0sQ0FBQ0MsT0FBT0MsU0FBUyxHQUFHQyxDQUFBQSxHQUFBQSxRQUFBQSxzQkFBQUE7SUFFMUJDLE9BQU1DLFNBQVM7cUNBQUM7WUFDZEMsS0FBSUMsRUFBRSxDQUFDTDtZQUNQOzZDQUFPO29CQUNMSSxLQUFJRSxHQUFHLENBQUNOO2dCQUNWOztRQUNGO29DQUFHO1FBQUNBO0tBQVM7SUFFYixNQUFNTyxtQkFBbUJMLE9BQU1NLFdBQVc7eURBQ3hDLENBQUNDLFFBQWVDO1FBQ2QseUJBQXlCO1FBQzNCO3dEQUNBLEVBQUU7SUFHSixNQUFNQyxnQkFBZ0JaLE1BQU1hLFVBQVUsSUFBSTtJQUMxQyxNQUFNQyxtQkFBbUJDLFFBQVFmLE1BQU1nQixNQUFNLENBQUNDLE1BQU07SUFDcEQsTUFBTXZCLFlBQVlrQixnQkFDZCxVQUNBRSxtQkFDRSxZQUNBO0lBQ04sTUFBTUksWUFBWXhCLGNBQWM7SUFFaEMsTUFBTXlCLG1CQUFtQjFCLHFCQUFxQkMsV0FBV0k7SUFFekQscUJBQ0U7OzBCQUNFLHFCQUFDc0IsZUFBQUEsYUFBYTtnQkFDWnJCLGVBQWVBO2dCQUNmbUIsV0FBV0E7Z0JBQ1hHLFNBQVNiOzBCQUVSWCxZQUFBQSxPQUFBQSxXQUFZOztZQUVkcUIsWUFBQUEsV0FBQUEsR0FDQyxzQkFBQ0ksY0FBQUEsWUFBWTs7a0NBQ1gscUJBQUNDLFVBQUFBLFFBQVE7a0NBQ1QscUJBQUNDLE1BQUFBLElBQUk7a0NBQ0wscUJBQUNDLGlCQUFBQSxlQUFlO29CQUVmTixtQkFBbUIsT0FBT1AsZ0JBQUFBLFdBQUFBLEdBQ3pCLHFCQUFDYyxZQUFBQSxVQUFVO3dCQUNUQyxTQUFTM0IsTUFBTWEsVUFBVTt3QkFDekJlLGFBQWE1QixNQUFNNEIsV0FBVzt5QkFFOUJkLG1CQUFBQSxXQUFBQSxHQUNGLHFCQUFDZSxRQUFBQSxNQUFNO3dCQUNMQyxVQUFVO3dCQUNWZCxRQUFRaEIsTUFBTWdCLE1BQU07d0JBQ3BCWSxhQUFhNUIsTUFBTTRCLFdBQVc7d0JBQzlCRyxxQkFBcUI7eUJBRXJCQzs7aUJBRUpBOzs7QUFHVjs7S0FoRXdCeEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL1JlYWN0RGV2T3ZlcmxheS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmltcG9ydCAqIGFzIEJ1cyBmcm9tICcuL2J1cydcbmltcG9ydCB7IFNoYWRvd1BvcnRhbCB9IGZyb20gJy4uL2ludGVybmFsL2NvbXBvbmVudHMvU2hhZG93UG9ydGFsJ1xuaW1wb3J0IHsgQnVpbGRFcnJvciB9IGZyb20gJy4uL2ludGVybmFsL2NvbnRhaW5lci9CdWlsZEVycm9yJ1xuaW1wb3J0IHsgRXJyb3JzIH0gZnJvbSAnLi4vaW50ZXJuYWwvY29udGFpbmVyL0Vycm9ycydcbmltcG9ydCB7IEVycm9yQm91bmRhcnkgfSBmcm9tICcuL0Vycm9yQm91bmRhcnknXG5pbXBvcnQgeyBCYXNlIH0gZnJvbSAnLi4vaW50ZXJuYWwvc3R5bGVzL0Jhc2UnXG5pbXBvcnQgeyBDb21wb25lbnRTdHlsZXMgfSBmcm9tICcuLi9pbnRlcm5hbC9zdHlsZXMvQ29tcG9uZW50U3R5bGVzJ1xuaW1wb3J0IHsgQ3NzUmVzZXQgfSBmcm9tICcuLi9pbnRlcm5hbC9zdHlsZXMvQ3NzUmVzZXQnXG5pbXBvcnQgeyB1c2VFcnJvck92ZXJsYXlSZWR1Y2VyIH0gZnJvbSAnLi4vc2hhcmVkJ1xuXG50eXBlIEVycm9yVHlwZSA9ICdydW50aW1lJyB8ICdidWlsZCdcblxuY29uc3Qgc2hvdWxkUHJldmVudERpc3BsYXkgPSAoXG4gIGVycm9yVHlwZT86IEVycm9yVHlwZSB8IG51bGwsXG4gIHByZXZlbnRUeXBlPzogRXJyb3JUeXBlW10gfCBudWxsXG4pID0+IHtcbiAgaWYgKCFwcmV2ZW50VHlwZSB8fCAhZXJyb3JUeXBlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbiAgcmV0dXJuIHByZXZlbnRUeXBlLmluY2x1ZGVzKGVycm9yVHlwZSlcbn1cblxuaW50ZXJmYWNlIFJlYWN0RGV2T3ZlcmxheVByb3BzIHtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgcHJldmVudERpc3BsYXk/OiBFcnJvclR5cGVbXVxuICBnbG9iYWxPdmVybGF5PzogYm9vbGVhblxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSZWFjdERldk92ZXJsYXkoe1xuICBjaGlsZHJlbixcbiAgcHJldmVudERpc3BsYXksXG4gIGdsb2JhbE92ZXJsYXksXG59OiBSZWFjdERldk92ZXJsYXlQcm9wcykge1xuICBjb25zdCBbc3RhdGUsIGRpc3BhdGNoXSA9IHVzZUVycm9yT3ZlcmxheVJlZHVjZXIoKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgQnVzLm9uKGRpc3BhdGNoKVxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICBCdXMub2ZmKGRpc3BhdGNoKVxuICAgIH1cbiAgfSwgW2Rpc3BhdGNoXSlcblxuICBjb25zdCBvbkNvbXBvbmVudEVycm9yID0gUmVhY3QudXNlQ2FsbGJhY2soXG4gICAgKF9lcnJvcjogRXJyb3IsIF9jb21wb25lbnRTdGFjazogc3RyaW5nIHwgbnVsbCkgPT4ge1xuICAgICAgLy8gVE9ETzogc3BlY2lhbCBoYW5kbGluZ1xuICAgIH0sXG4gICAgW11cbiAgKVxuXG4gIGNvbnN0IGhhc0J1aWxkRXJyb3IgPSBzdGF0ZS5idWlsZEVycm9yICE9IG51bGxcbiAgY29uc3QgaGFzUnVudGltZUVycm9ycyA9IEJvb2xlYW4oc3RhdGUuZXJyb3JzLmxlbmd0aClcbiAgY29uc3QgZXJyb3JUeXBlID0gaGFzQnVpbGRFcnJvclxuICAgID8gJ2J1aWxkJ1xuICAgIDogaGFzUnVudGltZUVycm9yc1xuICAgICAgPyAncnVudGltZSdcbiAgICAgIDogbnVsbFxuICBjb25zdCBpc01vdW50ZWQgPSBlcnJvclR5cGUgIT09IG51bGxcblxuICBjb25zdCBkaXNwbGF5UHJldmVudGVkID0gc2hvdWxkUHJldmVudERpc3BsYXkoZXJyb3JUeXBlLCBwcmV2ZW50RGlzcGxheSlcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8RXJyb3JCb3VuZGFyeVxuICAgICAgICBnbG9iYWxPdmVybGF5PXtnbG9iYWxPdmVybGF5fVxuICAgICAgICBpc01vdW50ZWQ9e2lzTW91bnRlZH1cbiAgICAgICAgb25FcnJvcj17b25Db21wb25lbnRFcnJvcn1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVuID8/IG51bGx9XG4gICAgICA8L0Vycm9yQm91bmRhcnk+XG4gICAgICB7aXNNb3VudGVkID8gKFxuICAgICAgICA8U2hhZG93UG9ydGFsPlxuICAgICAgICAgIDxDc3NSZXNldCAvPlxuICAgICAgICAgIDxCYXNlIC8+XG4gICAgICAgICAgPENvbXBvbmVudFN0eWxlcyAvPlxuXG4gICAgICAgICAge2Rpc3BsYXlQcmV2ZW50ZWQgPyBudWxsIDogaGFzQnVpbGRFcnJvciA/IChcbiAgICAgICAgICAgIDxCdWlsZEVycm9yXG4gICAgICAgICAgICAgIG1lc3NhZ2U9e3N0YXRlLmJ1aWxkRXJyb3IhfVxuICAgICAgICAgICAgICB2ZXJzaW9uSW5mbz17c3RhdGUudmVyc2lvbkluZm99XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBoYXNSdW50aW1lRXJyb3JzID8gKFxuICAgICAgICAgICAgPEVycm9yc1xuICAgICAgICAgICAgICBpc0FwcERpcj17ZmFsc2V9XG4gICAgICAgICAgICAgIGVycm9ycz17c3RhdGUuZXJyb3JzfVxuICAgICAgICAgICAgICB2ZXJzaW9uSW5mbz17c3RhdGUudmVyc2lvbkluZm99XG4gICAgICAgICAgICAgIGluaXRpYWxEaXNwbGF5U3RhdGU9eydmdWxsc2NyZWVuJ31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IHVuZGVmaW5lZH1cbiAgICAgICAgPC9TaGFkb3dQb3J0YWw+XG4gICAgICApIDogdW5kZWZpbmVkfVxuICAgIDwvPlxuICApXG59XG4iXSwibmFtZXMiOlsiUmVhY3REZXZPdmVybGF5Iiwic2hvdWxkUHJldmVudERpc3BsYXkiLCJlcnJvclR5cGUiLCJwcmV2ZW50VHlwZSIsImluY2x1ZGVzIiwiY2hpbGRyZW4iLCJwcmV2ZW50RGlzcGxheSIsImdsb2JhbE92ZXJsYXkiLCJzdGF0ZSIsImRpc3BhdGNoIiwidXNlRXJyb3JPdmVybGF5UmVkdWNlciIsIlJlYWN0IiwidXNlRWZmZWN0IiwiQnVzIiwib24iLCJvZmYiLCJvbkNvbXBvbmVudEVycm9yIiwidXNlQ2FsbGJhY2siLCJfZXJyb3IiLCJfY29tcG9uZW50U3RhY2siLCJoYXNCdWlsZEVycm9yIiwiYnVpbGRFcnJvciIsImhhc1J1bnRpbWVFcnJvcnMiLCJCb29sZWFuIiwiZXJyb3JzIiwibGVuZ3RoIiwiaXNNb3VudGVkIiwiZGlzcGxheVByZXZlbnRlZCIsIkVycm9yQm91bmRhcnkiLCJvbkVycm9yIiwiU2hhZG93UG9ydGFsIiwiQ3NzUmVzZXQiLCJCYXNlIiwiQ29tcG9uZW50U3R5bGVzIiwiQnVpbGRFcnJvciIsIm1lc3NhZ2UiLCJ2ZXJzaW9uSW5mbyIsIkVycm9ycyIsImlzQXBwRGlyIiwiaW5pdGlhbERpc3BsYXlTdGF0ZSIsInVuZGVmaW5lZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/pages/ReactDevOverlay.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/pages/bus.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/pages/bus.js ***! + \*********************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n emit: function() {\n return emit;\n },\n off: function() {\n return off;\n },\n on: function() {\n return on;\n }\n});\nlet handlers = new Set();\nlet queue = [];\nfunction drain() {\n // Draining should never happen synchronously in case multiple handlers are\n // registered.\n setTimeout(function() {\n while(Boolean(queue.length) && // Or, if all handlers removed themselves as a result of handling the\n // event(s)\n Boolean(handlers.size)){\n const ev = queue.shift();\n handlers.forEach((handler)=>handler(ev));\n }\n }, 1);\n}\nfunction emit(ev) {\n queue.push(Object.freeze({\n ...ev\n }));\n drain();\n}\nfunction on(fn) {\n if (handlers.has(fn)) {\n return false;\n }\n handlers.add(fn);\n drain();\n return true;\n}\nfunction off(fn) {\n if (handlers.has(fn)) {\n handlers.delete(fn);\n return true;\n }\n return false;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=bus.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL2J1cy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUF3QmdCQSxJQUFJO2VBQUpBOztJQWVBQyxHQUFHO2VBQUhBOztJQVZBQyxFQUFFO2VBQUZBOzs7QUF6QmhCLElBQUlDLFdBQWlDLElBQUlDO0FBQ3pDLElBQUlDLFFBQW9CLEVBQUU7QUFFMUIsU0FBU0M7SUFDUCwyRUFBMkU7SUFDM0UsY0FBYztJQUNkQyxXQUFXO1FBQ1QsTUFDRSxRQUNRRixNQUFNSSxNQUFNLEtBQ3BCLEtBRjhCLGdFQUV1QztRQUNyRSxXQUFXO1FBQ1hELFFBQVFMLFNBQVNPLElBQUksRUFDckI7WUFDQSxNQUFNQyxLQUFLTixNQUFNTyxLQUFLO1lBQ3RCVCxTQUFTVSxPQUFPLENBQUMsQ0FBQ0MsVUFBWUEsUUFBUUg7UUFDeEM7SUFDRixHQUFHO0FBQ0w7QUFFTyxTQUFTWCxLQUFLVyxFQUFZO0lBQy9CTixNQUFNVSxJQUFJLENBQUNDLE9BQU9DLE1BQU0sQ0FBQztRQUFFLEdBQUdOLEVBQUU7SUFBQztJQUNqQ0w7QUFDRjtBQUVPLFNBQVNKLEdBQUdnQixFQUFtQjtJQUNwQyxJQUFJZixTQUFTZ0IsR0FBRyxDQUFDRCxLQUFLO1FBQ3BCLE9BQU87SUFDVDtJQUVBZixTQUFTaUIsR0FBRyxDQUFDRjtJQUNiWjtJQUNBLE9BQU87QUFDVDtBQUVPLFNBQVNMLElBQUlpQixFQUFtQjtJQUNyQyxJQUFJZixTQUFTZ0IsR0FBRyxDQUFDRCxLQUFLO1FBQ3BCZixTQUFTa0IsTUFBTSxDQUFDSDtRQUNoQixPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL2J1cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJ1c0V2ZW50IH0gZnJvbSAnLi4vc2hhcmVkJ1xuXG5leHBvcnQgdHlwZSBCdXNFdmVudEhhbmRsZXIgPSAoZXY6IEJ1c0V2ZW50KSA9PiB2b2lkXG5cbmxldCBoYW5kbGVyczogU2V0PEJ1c0V2ZW50SGFuZGxlcj4gPSBuZXcgU2V0KClcbmxldCBxdWV1ZTogQnVzRXZlbnRbXSA9IFtdXG5cbmZ1bmN0aW9uIGRyYWluKCkge1xuICAvLyBEcmFpbmluZyBzaG91bGQgbmV2ZXIgaGFwcGVuIHN5bmNocm9ub3VzbHkgaW4gY2FzZSBtdWx0aXBsZSBoYW5kbGVycyBhcmVcbiAgLy8gcmVnaXN0ZXJlZC5cbiAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgd2hpbGUgKFxuICAgICAgLy8gVW50aWwgd2UgYXJlIG91dCBvZiBldmVudHM6XG4gICAgICBCb29sZWFuKHF1ZXVlLmxlbmd0aCkgJiZcbiAgICAgIC8vIE9yLCBpZiBhbGwgaGFuZGxlcnMgcmVtb3ZlZCB0aGVtc2VsdmVzIGFzIGEgcmVzdWx0IG9mIGhhbmRsaW5nIHRoZVxuICAgICAgLy8gZXZlbnQocylcbiAgICAgIEJvb2xlYW4oaGFuZGxlcnMuc2l6ZSlcbiAgICApIHtcbiAgICAgIGNvbnN0IGV2ID0gcXVldWUuc2hpZnQoKSFcbiAgICAgIGhhbmRsZXJzLmZvckVhY2goKGhhbmRsZXIpID0+IGhhbmRsZXIoZXYpKVxuICAgIH1cbiAgfSwgMSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVtaXQoZXY6IEJ1c0V2ZW50KTogdm9pZCB7XG4gIHF1ZXVlLnB1c2goT2JqZWN0LmZyZWV6ZSh7IC4uLmV2IH0pKVxuICBkcmFpbigpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbihmbjogQnVzRXZlbnRIYW5kbGVyKTogYm9vbGVhbiB7XG4gIGlmIChoYW5kbGVycy5oYXMoZm4pKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBoYW5kbGVycy5hZGQoZm4pXG4gIGRyYWluKClcbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9mZihmbjogQnVzRXZlbnRIYW5kbGVyKTogYm9vbGVhbiB7XG4gIGlmIChoYW5kbGVycy5oYXMoZm4pKSB7XG4gICAgaGFuZGxlcnMuZGVsZXRlKGZuKVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cbiJdLCJuYW1lcyI6WyJlbWl0Iiwib2ZmIiwib24iLCJoYW5kbGVycyIsIlNldCIsInF1ZXVlIiwiZHJhaW4iLCJzZXRUaW1lb3V0IiwiQm9vbGVhbiIsImxlbmd0aCIsInNpemUiLCJldiIsInNoaWZ0IiwiZm9yRWFjaCIsImhhbmRsZXIiLCJwdXNoIiwiT2JqZWN0IiwiZnJlZXplIiwiZm4iLCJoYXMiLCJhZGQiLCJkZWxldGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/pages/bus.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/pages/client.js": +/*!************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/pages/client.js ***! + \************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ReactDevOverlay: function() {\n return _ReactDevOverlay.default;\n },\n getErrorByType: function() {\n return _geterrorbytype.getErrorByType;\n },\n getServerError: function() {\n return _nodestackframes.getServerError;\n },\n onBeforeRefresh: function() {\n return onBeforeRefresh;\n },\n onBuildError: function() {\n return onBuildError;\n },\n onBuildOk: function() {\n return onBuildOk;\n },\n onRefresh: function() {\n return onRefresh;\n },\n onVersionInfo: function() {\n return onVersionInfo;\n },\n register: function() {\n return register;\n },\n unregister: function() {\n return unregister;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _bus = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./bus */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/bus.js\"));\nconst _parsestack = __webpack_require__(/*! ../internal/helpers/parse-stack */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-stack.js\");\nconst _parsecomponentstack = __webpack_require__(/*! ../internal/helpers/parse-component-stack */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js\");\nconst _hydrationerrorinfo = __webpack_require__(/*! ../internal/helpers/hydration-error-info */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js\");\nconst _shared = __webpack_require__(/*! ../shared */ \"./node_modules/next/dist/client/components/react-dev-overlay/shared.js\");\nconst _attachhydrationerrorstate = __webpack_require__(/*! ../internal/helpers/attach-hydration-error-state */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/attach-hydration-error-state.js\");\nconst _geterrorbytype = __webpack_require__(/*! ../internal/helpers/get-error-by-type */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-error-by-type.js\");\nconst _nodestackframes = __webpack_require__(/*! ../internal/helpers/node-stack-frames */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/node-stack-frames.js\");\nconst _ReactDevOverlay = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./ReactDevOverlay */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/ReactDevOverlay.js\"));\nlet isRegistered = false;\nlet stackTraceLimit = undefined;\nfunction handleError(error) {\n if (!error || !(error instanceof Error) || typeof error.stack !== 'string') {\n // A non-error was thrown, we don't have anything to show. :-(\n return;\n }\n (0, _attachhydrationerrorstate.attachHydrationErrorState)(error);\n const componentStackTrace = error._componentStack || _hydrationerrorinfo.hydrationErrorState.componentStack;\n const componentStackFrames = typeof componentStackTrace === 'string' ? (0, _parsecomponentstack.parseComponentStack)(componentStackTrace) : undefined;\n // Skip ModuleBuildError and ModuleNotFoundError, as it will be sent through onBuildError callback.\n // This is to avoid same error as different type showing up on client to cause flashing.\n if (error.name !== 'ModuleBuildError' && error.name !== 'ModuleNotFoundError') {\n _bus.emit({\n type: _shared.ACTION_UNHANDLED_ERROR,\n reason: error,\n frames: (0, _parsestack.parseStack)(error.stack),\n componentStackFrames\n });\n }\n}\nlet origConsoleError = console.error;\nfunction nextJsHandleConsoleError() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n // See https://github.com/facebook/react/blob/d50323eb845c5fde0d720cae888bf35dedd05506/packages/react-reconciler/src/ReactFiberErrorLogger.js#L78\n const error = true ? args[1] : 0;\n (0, _hydrationerrorinfo.storeHydrationErrorStateFromConsoleArgs)(...args);\n handleError(error);\n origConsoleError.apply(window.console, args);\n}\nfunction onUnhandledError(event) {\n const error = event == null ? void 0 : event.error;\n handleError(error);\n}\nfunction onUnhandledRejection(ev) {\n const reason = ev == null ? void 0 : ev.reason;\n if (!reason || !(reason instanceof Error) || typeof reason.stack !== 'string') {\n // A non-error was thrown, we don't have anything to show. :-(\n return;\n }\n const e = reason;\n _bus.emit({\n type: _shared.ACTION_UNHANDLED_REJECTION,\n reason: reason,\n frames: (0, _parsestack.parseStack)(e.stack)\n });\n}\nfunction register() {\n if (isRegistered) {\n return;\n }\n isRegistered = true;\n try {\n const limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 50;\n stackTraceLimit = limit;\n } catch (e) {}\n window.addEventListener('error', onUnhandledError);\n window.addEventListener('unhandledrejection', onUnhandledRejection);\n window.console.error = nextJsHandleConsoleError;\n}\nfunction unregister() {\n if (!isRegistered) {\n return;\n }\n isRegistered = false;\n if (stackTraceLimit !== undefined) {\n try {\n Error.stackTraceLimit = stackTraceLimit;\n } catch (e) {}\n stackTraceLimit = undefined;\n }\n window.removeEventListener('error', onUnhandledError);\n window.removeEventListener('unhandledrejection', onUnhandledRejection);\n window.console.error = origConsoleError;\n}\nfunction onBuildOk() {\n _bus.emit({\n type: _shared.ACTION_BUILD_OK\n });\n}\nfunction onBuildError(message) {\n _bus.emit({\n type: _shared.ACTION_BUILD_ERROR,\n message\n });\n}\nfunction onRefresh() {\n _bus.emit({\n type: _shared.ACTION_REFRESH\n });\n}\nfunction onBeforeRefresh() {\n _bus.emit({\n type: _shared.ACTION_BEFORE_REFRESH\n });\n}\nfunction onVersionInfo(versionInfo) {\n _bus.emit({\n type: _shared.ACTION_VERSION_INFO,\n versionInfo\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=client.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL2NsaWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE4SW9CQSxlQUFlO2VBQWZBLGlCQUFBQSxPQUFlOztJQUYxQkMsY0FBYztlQUFkQSxnQkFBQUEsY0FBYzs7SUFDZEMsY0FBYztlQUFkQSxpQkFBQUEsY0FBYzs7SUFUUEMsZUFBZTtlQUFmQTs7SUFSQUMsWUFBWTtlQUFaQTs7SUFKQUMsU0FBUztlQUFUQTs7SUFRQUMsU0FBUztlQUFUQTs7SUFRQUMsYUFBYTtlQUFiQTs7SUFuREFDLFFBQVE7ZUFBUkE7O0lBaUJBQyxVQUFVO2VBQVZBOzs7OzsyRUF0R0s7d0NBQ007aURBQ1M7Z0RBSTdCO29DQVNBO3VEQUVtQzs0Q0EySFg7NkNBQ0E7c0ZBQ1k7QUEzSDNDLElBQUlDLGVBQWU7QUFDbkIsSUFBSUMsa0JBQXNDQztBQUUxQyxTQUFTQyxZQUFZQyxLQUFjO0lBQ2pDLElBQUksQ0FBQ0EsU0FBUyxDQUFFQSxDQUFBQSxpQkFBaUJDLEtBQUFBLENBQUksSUFBTSxPQUFPRCxNQUFNRSxLQUFLLEtBQUssVUFBVTtRQUMxRSw4REFBOEQ7UUFDOUQ7SUFDRjtJQUVBQyxDQUFBQSxHQUFBQSwyQkFBQUEseUJBQUFBLEVBQTBCSDtJQUUxQixNQUFNSSxzQkFDSEosTUFBY0ssZUFBZSxJQUFJQyxvQkFBQUEsbUJBQW1CLENBQUNDLGNBQWM7SUFDdEUsTUFBTUMsdUJBQ0osT0FBT0osd0JBQXdCLFdBQzNCSyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQW1CLEVBQUNMLHVCQUNwQk47SUFFTixtR0FBbUc7SUFDbkcsd0ZBQXdGO0lBQ3hGLElBQ0VFLE1BQU1VLElBQUksS0FBSyxzQkFDZlYsTUFBTVUsSUFBSSxLQUFLLHVCQUNmO1FBQ0FDLEtBQUlDLElBQUksQ0FBQztZQUNQQyxNQUFNQyxRQUFBQSxzQkFBc0I7WUFDNUJDLFFBQVFmO1lBQ1JnQixRQUFRQyxDQUFBQSxHQUFBQSxZQUFBQSxVQUFBQSxFQUFXakIsTUFBTUUsS0FBSztZQUM5Qk07UUFDRjtJQUNGO0FBQ0Y7QUFFQSxJQUFJVSxtQkFBbUJDLFFBQVFuQixLQUFLO0FBQ3BDLFNBQVNvQjtJQUF5QixpQ0FBR0MsT0FBSDtRQUFHQSxJQUFBQSxDQUFILHVCQUFjOztJQUM5QyxpSkFBaUo7SUFDakosTUFBTXJCLFFBQVFzQixLQUFvQixHQUFvQkQsSUFBSSxDQUFDLEVBQUUsR0FBR0EsQ0FBTztJQUN2RUksQ0FBQUEsR0FBQUEsb0JBQUFBLHVDQUFBQSxLQUEyQ0o7SUFDM0N0QixZQUFZQztJQUNaa0IsaUJBQWlCUSxLQUFLLENBQUNDLE9BQU9SLE9BQU8sRUFBRUU7QUFDekM7QUFFQSxTQUFTTyxpQkFBaUJDLEtBQWlCO0lBQ3pDLE1BQU03QixRQUFRNkIsU0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsTUFBTzdCLEtBQUs7SUFDMUJELFlBQVlDO0FBQ2Q7QUFFQSxTQUFTOEIscUJBQXFCQyxFQUF5QjtJQUNyRCxNQUFNaEIsU0FBU2dCLE1BQUFBLE9BQUFBLEtBQUFBLElBQUFBLEdBQUloQixNQUFNO0lBQ3pCLElBQ0UsQ0FBQ0EsVUFDRCxDQUFFQSxDQUFBQSxrQkFBa0JkLEtBQUFBLENBQUksSUFDeEIsT0FBT2MsT0FBT2IsS0FBSyxLQUFLLFVBQ3hCO1FBQ0EsOERBQThEO1FBQzlEO0lBQ0Y7SUFFQSxNQUFNOEIsSUFBSWpCO0lBQ1ZKLEtBQUlDLElBQUksQ0FBQztRQUNQQyxNQUFNb0IsUUFBQUEsMEJBQTBCO1FBQ2hDbEIsUUFBUUE7UUFDUkMsUUFBUUMsQ0FBQUEsR0FBQUEsWUFBQUEsVUFBQUEsRUFBV2UsRUFBRTlCLEtBQUs7SUFDNUI7QUFDRjtBQUVPLFNBQVNSO0lBQ2QsSUFBSUUsY0FBYztRQUNoQjtJQUNGO0lBQ0FBLGVBQWU7SUFFZixJQUFJO1FBQ0YsTUFBTXNDLFFBQVFqQyxNQUFNSixlQUFlO1FBQ25DSSxNQUFNSixlQUFlLEdBQUc7UUFDeEJBLGtCQUFrQnFDO0lBQ3BCLEVBQUUsVUFBTSxDQUFDO0lBRVRQLE9BQU9RLGdCQUFnQixDQUFDLFNBQVNQO0lBQ2pDRCxPQUFPUSxnQkFBZ0IsQ0FBQyxzQkFBc0JMO0lBQzlDSCxPQUFPUixPQUFPLENBQUNuQixLQUFLLEdBQUdvQjtBQUN6QjtBQUVPLFNBQVN6QjtJQUNkLElBQUksQ0FBQ0MsY0FBYztRQUNqQjtJQUNGO0lBQ0FBLGVBQWU7SUFFZixJQUFJQyxvQkFBb0JDLFdBQVc7UUFDakMsSUFBSTtZQUNGRyxNQUFNSixlQUFlLEdBQUdBO1FBQzFCLEVBQUUsVUFBTSxDQUFDO1FBQ1RBLGtCQUFrQkM7SUFDcEI7SUFFQTZCLE9BQU9TLG1CQUFtQixDQUFDLFNBQVNSO0lBQ3BDRCxPQUFPUyxtQkFBbUIsQ0FBQyxzQkFBc0JOO0lBQ2pESCxPQUFPUixPQUFPLENBQUNuQixLQUFLLEdBQUdrQjtBQUN6QjtBQUVPLFNBQVMzQjtJQUNkb0IsS0FBSUMsSUFBSSxDQUFDO1FBQUVDLE1BQU13QixRQUFBQSxlQUFlO0lBQUM7QUFDbkM7QUFFTyxTQUFTL0MsYUFBYWdELE9BQWU7SUFDMUMzQixLQUFJQyxJQUFJLENBQUM7UUFBRUMsTUFBTTBCLFFBQUFBLGtCQUFrQjtRQUFFRDtJQUFRO0FBQy9DO0FBRU8sU0FBUzlDO0lBQ2RtQixLQUFJQyxJQUFJLENBQUM7UUFBRUMsTUFBTTJCLFFBQUFBLGNBQWM7SUFBQztBQUNsQztBQUVPLFNBQVNuRDtJQUNkc0IsS0FBSUMsSUFBSSxDQUFDO1FBQUVDLE1BQU00QixRQUFBQSxxQkFBcUI7SUFBQztBQUN6QztBQUVPLFNBQVNoRCxjQUFjaUQsV0FBd0I7SUFDcEQvQixLQUFJQyxJQUFJLENBQUM7UUFBRUMsTUFBTThCLFFBQUFBLG1CQUFtQjtRQUFFRDtJQUFZO0FBQ3BEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9wYWdlcy9jbGllbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgQnVzIGZyb20gJy4vYnVzJ1xuaW1wb3J0IHsgcGFyc2VTdGFjayB9IGZyb20gJy4uL2ludGVybmFsL2hlbHBlcnMvcGFyc2Utc3RhY2snXG5pbXBvcnQgeyBwYXJzZUNvbXBvbmVudFN0YWNrIH0gZnJvbSAnLi4vaW50ZXJuYWwvaGVscGVycy9wYXJzZS1jb21wb25lbnQtc3RhY2snXG5pbXBvcnQge1xuICBoeWRyYXRpb25FcnJvclN0YXRlLFxuICBzdG9yZUh5ZHJhdGlvbkVycm9yU3RhdGVGcm9tQ29uc29sZUFyZ3MsXG59IGZyb20gJy4uL2ludGVybmFsL2hlbHBlcnMvaHlkcmF0aW9uLWVycm9yLWluZm8nXG5pbXBvcnQge1xuICBBQ1RJT05fQkVGT1JFX1JFRlJFU0gsXG4gIEFDVElPTl9CVUlMRF9FUlJPUixcbiAgQUNUSU9OX0JVSUxEX09LLFxuICBBQ1RJT05fUkVGUkVTSCxcbiAgQUNUSU9OX1VOSEFORExFRF9FUlJPUixcbiAgQUNUSU9OX1VOSEFORExFRF9SRUpFQ1RJT04sXG4gIEFDVElPTl9WRVJTSU9OX0lORk8sXG59IGZyb20gJy4uL3NoYXJlZCdcbmltcG9ydCB0eXBlIHsgVmVyc2lvbkluZm8gfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvZGV2L3BhcnNlLXZlcnNpb24taW5mbydcbmltcG9ydCB7IGF0dGFjaEh5ZHJhdGlvbkVycm9yU3RhdGUgfSBmcm9tICcuLi9pbnRlcm5hbC9oZWxwZXJzL2F0dGFjaC1oeWRyYXRpb24tZXJyb3Itc3RhdGUnXG5cbmxldCBpc1JlZ2lzdGVyZWQgPSBmYWxzZVxubGV0IHN0YWNrVHJhY2VMaW1pdDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG5cbmZ1bmN0aW9uIGhhbmRsZUVycm9yKGVycm9yOiB1bmtub3duKSB7XG4gIGlmICghZXJyb3IgfHwgIShlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB8fCB0eXBlb2YgZXJyb3Iuc3RhY2sgIT09ICdzdHJpbmcnKSB7XG4gICAgLy8gQSBub24tZXJyb3Igd2FzIHRocm93biwgd2UgZG9uJ3QgaGF2ZSBhbnl0aGluZyB0byBzaG93LiA6LShcbiAgICByZXR1cm5cbiAgfVxuXG4gIGF0dGFjaEh5ZHJhdGlvbkVycm9yU3RhdGUoZXJyb3IpXG5cbiAgY29uc3QgY29tcG9uZW50U3RhY2tUcmFjZSA9XG4gICAgKGVycm9yIGFzIGFueSkuX2NvbXBvbmVudFN0YWNrIHx8IGh5ZHJhdGlvbkVycm9yU3RhdGUuY29tcG9uZW50U3RhY2tcbiAgY29uc3QgY29tcG9uZW50U3RhY2tGcmFtZXMgPVxuICAgIHR5cGVvZiBjb21wb25lbnRTdGFja1RyYWNlID09PSAnc3RyaW5nJ1xuICAgICAgPyBwYXJzZUNvbXBvbmVudFN0YWNrKGNvbXBvbmVudFN0YWNrVHJhY2UpXG4gICAgICA6IHVuZGVmaW5lZFxuXG4gIC8vIFNraXAgTW9kdWxlQnVpbGRFcnJvciBhbmQgTW9kdWxlTm90Rm91bmRFcnJvciwgYXMgaXQgd2lsbCBiZSBzZW50IHRocm91Z2ggb25CdWlsZEVycm9yIGNhbGxiYWNrLlxuICAvLyBUaGlzIGlzIHRvIGF2b2lkIHNhbWUgZXJyb3IgYXMgZGlmZmVyZW50IHR5cGUgc2hvd2luZyB1cCBvbiBjbGllbnQgdG8gY2F1c2UgZmxhc2hpbmcuXG4gIGlmIChcbiAgICBlcnJvci5uYW1lICE9PSAnTW9kdWxlQnVpbGRFcnJvcicgJiZcbiAgICBlcnJvci5uYW1lICE9PSAnTW9kdWxlTm90Rm91bmRFcnJvcidcbiAgKSB7XG4gICAgQnVzLmVtaXQoe1xuICAgICAgdHlwZTogQUNUSU9OX1VOSEFORExFRF9FUlJPUixcbiAgICAgIHJlYXNvbjogZXJyb3IsXG4gICAgICBmcmFtZXM6IHBhcnNlU3RhY2soZXJyb3Iuc3RhY2spLFxuICAgICAgY29tcG9uZW50U3RhY2tGcmFtZXMsXG4gICAgfSlcbiAgfVxufVxuXG5sZXQgb3JpZ0NvbnNvbGVFcnJvciA9IGNvbnNvbGUuZXJyb3JcbmZ1bmN0aW9uIG5leHRKc0hhbmRsZUNvbnNvbGVFcnJvciguLi5hcmdzOiBhbnlbXSkge1xuICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2Jsb2IvZDUwMzIzZWI4NDVjNWZkZTBkNzIwY2FlODg4YmYzNWRlZGQwNTUwNi9wYWNrYWdlcy9yZWFjdC1yZWNvbmNpbGVyL3NyYy9SZWFjdEZpYmVyRXJyb3JMb2dnZXIuanMjTDc4XG4gIGNvbnN0IGVycm9yID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGFyZ3NbMV0gOiBhcmdzWzBdXG4gIHN0b3JlSHlkcmF0aW9uRXJyb3JTdGF0ZUZyb21Db25zb2xlQXJncyguLi5hcmdzKVxuICBoYW5kbGVFcnJvcihlcnJvcilcbiAgb3JpZ0NvbnNvbGVFcnJvci5hcHBseSh3aW5kb3cuY29uc29sZSwgYXJncylcbn1cblxuZnVuY3Rpb24gb25VbmhhbmRsZWRFcnJvcihldmVudDogRXJyb3JFdmVudCkge1xuICBjb25zdCBlcnJvciA9IGV2ZW50Py5lcnJvclxuICBoYW5kbGVFcnJvcihlcnJvcilcbn1cblxuZnVuY3Rpb24gb25VbmhhbmRsZWRSZWplY3Rpb24oZXY6IFByb21pc2VSZWplY3Rpb25FdmVudCkge1xuICBjb25zdCByZWFzb24gPSBldj8ucmVhc29uXG4gIGlmIChcbiAgICAhcmVhc29uIHx8XG4gICAgIShyZWFzb24gaW5zdGFuY2VvZiBFcnJvcikgfHxcbiAgICB0eXBlb2YgcmVhc29uLnN0YWNrICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICAvLyBBIG5vbi1lcnJvciB3YXMgdGhyb3duLCB3ZSBkb24ndCBoYXZlIGFueXRoaW5nIHRvIHNob3cuIDotKFxuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgZSA9IHJlYXNvblxuICBCdXMuZW1pdCh7XG4gICAgdHlwZTogQUNUSU9OX1VOSEFORExFRF9SRUpFQ1RJT04sXG4gICAgcmVhc29uOiByZWFzb24sXG4gICAgZnJhbWVzOiBwYXJzZVN0YWNrKGUuc3RhY2shKSxcbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyKCkge1xuICBpZiAoaXNSZWdpc3RlcmVkKSB7XG4gICAgcmV0dXJuXG4gIH1cbiAgaXNSZWdpc3RlcmVkID0gdHJ1ZVxuXG4gIHRyeSB7XG4gICAgY29uc3QgbGltaXQgPSBFcnJvci5zdGFja1RyYWNlTGltaXRcbiAgICBFcnJvci5zdGFja1RyYWNlTGltaXQgPSA1MFxuICAgIHN0YWNrVHJhY2VMaW1pdCA9IGxpbWl0XG4gIH0gY2F0Y2gge31cblxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBvblVuaGFuZGxlZEVycm9yKVxuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigndW5oYW5kbGVkcmVqZWN0aW9uJywgb25VbmhhbmRsZWRSZWplY3Rpb24pXG4gIHdpbmRvdy5jb25zb2xlLmVycm9yID0gbmV4dEpzSGFuZGxlQ29uc29sZUVycm9yXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnJlZ2lzdGVyKCkge1xuICBpZiAoIWlzUmVnaXN0ZXJlZCkge1xuICAgIHJldHVyblxuICB9XG4gIGlzUmVnaXN0ZXJlZCA9IGZhbHNlXG5cbiAgaWYgKHN0YWNrVHJhY2VMaW1pdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgdHJ5IHtcbiAgICAgIEVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IHN0YWNrVHJhY2VMaW1pdFxuICAgIH0gY2F0Y2gge31cbiAgICBzdGFja1RyYWNlTGltaXQgPSB1bmRlZmluZWRcbiAgfVxuXG4gIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdlcnJvcicsIG9uVW5oYW5kbGVkRXJyb3IpXG4gIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCd1bmhhbmRsZWRyZWplY3Rpb24nLCBvblVuaGFuZGxlZFJlamVjdGlvbilcbiAgd2luZG93LmNvbnNvbGUuZXJyb3IgPSBvcmlnQ29uc29sZUVycm9yXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbkJ1aWxkT2soKSB7XG4gIEJ1cy5lbWl0KHsgdHlwZTogQUNUSU9OX0JVSUxEX09LIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvbkJ1aWxkRXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gIEJ1cy5lbWl0KHsgdHlwZTogQUNUSU9OX0JVSUxEX0VSUk9SLCBtZXNzYWdlIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvblJlZnJlc2goKSB7XG4gIEJ1cy5lbWl0KHsgdHlwZTogQUNUSU9OX1JFRlJFU0ggfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9uQmVmb3JlUmVmcmVzaCgpIHtcbiAgQnVzLmVtaXQoeyB0eXBlOiBBQ1RJT05fQkVGT1JFX1JFRlJFU0ggfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9uVmVyc2lvbkluZm8odmVyc2lvbkluZm86IFZlcnNpb25JbmZvKSB7XG4gIEJ1cy5lbWl0KHsgdHlwZTogQUNUSU9OX1ZFUlNJT05fSU5GTywgdmVyc2lvbkluZm8gfSlcbn1cblxuZXhwb3J0IHsgZ2V0RXJyb3JCeVR5cGUgfSBmcm9tICcuLi9pbnRlcm5hbC9oZWxwZXJzL2dldC1lcnJvci1ieS10eXBlJ1xuZXhwb3J0IHsgZ2V0U2VydmVyRXJyb3IgfSBmcm9tICcuLi9pbnRlcm5hbC9oZWxwZXJzL25vZGUtc3RhY2stZnJhbWVzJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWFjdERldk92ZXJsYXkgfSBmcm9tICcuL1JlYWN0RGV2T3ZlcmxheSdcbiJdLCJuYW1lcyI6WyJSZWFjdERldk92ZXJsYXkiLCJnZXRFcnJvckJ5VHlwZSIsImdldFNlcnZlckVycm9yIiwib25CZWZvcmVSZWZyZXNoIiwib25CdWlsZEVycm9yIiwib25CdWlsZE9rIiwib25SZWZyZXNoIiwib25WZXJzaW9uSW5mbyIsInJlZ2lzdGVyIiwidW5yZWdpc3RlciIsImlzUmVnaXN0ZXJlZCIsInN0YWNrVHJhY2VMaW1pdCIsInVuZGVmaW5lZCIsImhhbmRsZUVycm9yIiwiZXJyb3IiLCJFcnJvciIsInN0YWNrIiwiYXR0YWNoSHlkcmF0aW9uRXJyb3JTdGF0ZSIsImNvbXBvbmVudFN0YWNrVHJhY2UiLCJfY29tcG9uZW50U3RhY2siLCJoeWRyYXRpb25FcnJvclN0YXRlIiwiY29tcG9uZW50U3RhY2siLCJjb21wb25lbnRTdGFja0ZyYW1lcyIsInBhcnNlQ29tcG9uZW50U3RhY2siLCJuYW1lIiwiQnVzIiwiZW1pdCIsInR5cGUiLCJBQ1RJT05fVU5IQU5ETEVEX0VSUk9SIiwicmVhc29uIiwiZnJhbWVzIiwicGFyc2VTdGFjayIsIm9yaWdDb25zb2xlRXJyb3IiLCJjb25zb2xlIiwibmV4dEpzSGFuZGxlQ29uc29sZUVycm9yIiwiYXJncyIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInN0b3JlSHlkcmF0aW9uRXJyb3JTdGF0ZUZyb21Db25zb2xlQXJncyIsImFwcGx5Iiwid2luZG93Iiwib25VbmhhbmRsZWRFcnJvciIsImV2ZW50Iiwib25VbmhhbmRsZWRSZWplY3Rpb24iLCJldiIsImUiLCJBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTiIsImxpbWl0IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJBQ1RJT05fQlVJTERfT0siLCJtZXNzYWdlIiwiQUNUSU9OX0JVSUxEX0VSUk9SIiwiQUNUSU9OX1JFRlJFU0giLCJBQ1RJT05fQkVGT1JFX1JFRlJFU0giLCJ2ZXJzaW9uSW5mbyIsIkFDVElPTl9WRVJTSU9OX0lORk8iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/pages/client.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/pages/hot-reloader-client.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/pages/hot-reloader-client.js ***! + \*************************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// TODO: Remove use of `any` type. Fix no-use-before-define violations.\n/* eslint-disable @typescript-eslint/no-use-before-define */ /**\n * MIT License\n *\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */ // This file is a modified version of the Create React App HMR dev client that\n// can be found here:\n// https://github.com/facebook/create-react-app/blob/v3.4.1/packages/react-dev-utils/webpackHotDevClient.js\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return connect;\n },\n performFullReload: function() {\n return performFullReload;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _client = __webpack_require__(/*! ./client */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/client.js\");\nconst _stripansi = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/compiled/strip-ansi */ \"./node_modules/next/dist/compiled/strip-ansi/index.js\"));\nconst _websocket = __webpack_require__(/*! ./websocket */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/websocket.js\");\nconst _formatwebpackmessages = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../internal/helpers/format-webpack-messages */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/format-webpack-messages.js\"));\nconst _hotreloadertypes = __webpack_require__(/*! ../../../../server/dev/hot-reloader-types */ \"./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nconst _extractmodulesfromturbopackmessage = __webpack_require__(/*! ../../../../server/dev/extract-modules-from-turbopack-message */ \"./node_modules/next/dist/server/dev/extract-modules-from-turbopack-message.js\");\nconst _shared = __webpack_require__(/*! ../shared */ \"./node_modules/next/dist/client/components/react-dev-overlay/shared.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ../internal/helpers/runtime-error-handler */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/runtime-error-handler.js\");\nwindow.__nextDevClientId = Math.round(Math.random() * 100 + Date.now());\nlet customHmrEventHandler;\nlet turbopackMessageListeners = [];\nlet MODE = 'webpack';\nfunction connect(mode) {\n MODE = mode;\n (0, _client.register)();\n (0, _websocket.addMessageListener)((payload)=>{\n if (!('action' in payload)) {\n return;\n }\n try {\n processMessage(payload);\n } catch (err) {\n var _err_stack;\n console.warn('[HMR] Invalid message: ' + JSON.stringify(payload) + '\\n' + ((_err_stack = err == null ? void 0 : err.stack) != null ? _err_stack : ''));\n }\n });\n return {\n subscribeToHmrEvent (handler) {\n customHmrEventHandler = handler;\n },\n onUnrecoverableError () {\n _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError = true;\n },\n addTurbopackMessageListener (cb) {\n turbopackMessageListeners.push(cb);\n },\n sendTurbopackMessage (msg) {\n (0, _websocket.sendMessage)(msg);\n },\n handleUpdateError (err) {\n performFullReload(err);\n }\n };\n}\n// Remember some state related to hot module replacement.\nvar isFirstCompilation = true;\nvar mostRecentCompilationHash = null;\nvar hasCompileErrors = false;\nfunction clearOutdatedErrors() {\n // Clean up outdated compile errors, if any.\n if (typeof console !== 'undefined' && typeof console.clear === 'function') {\n if (hasCompileErrors) {\n console.clear();\n }\n }\n}\n// Successful compilation.\nfunction handleSuccess() {\n clearOutdatedErrors();\n if (MODE === 'webpack') {\n const isHotUpdate = !isFirstCompilation || window.__NEXT_DATA__.page !== '/_error' && isUpdateAvailable();\n isFirstCompilation = false;\n hasCompileErrors = false;\n // Attempt to apply hot updates or reload.\n if (isHotUpdate) {\n tryApplyUpdates(onBeforeFastRefresh, onFastRefresh);\n }\n } else {\n (0, _client.onBuildOk)();\n }\n}\n// Compilation with warnings (e.g. ESLint).\nfunction handleWarnings(warnings) {\n clearOutdatedErrors();\n const isHotUpdate = !isFirstCompilation;\n isFirstCompilation = false;\n hasCompileErrors = false;\n function printWarnings() {\n // Print warnings to the console.\n const formatted = (0, _formatwebpackmessages.default)({\n warnings: warnings,\n errors: []\n });\n if (typeof console !== 'undefined' && typeof console.warn === 'function') {\n var _formatted_warnings;\n for(let i = 0; i < ((_formatted_warnings = formatted.warnings) == null ? void 0 : _formatted_warnings.length); i++){\n if (i === 5) {\n console.warn('There were more warnings in other files.\\n' + 'You can find a complete log in the terminal.');\n break;\n }\n console.warn((0, _stripansi.default)(formatted.warnings[i]));\n }\n }\n }\n printWarnings();\n // Attempt to apply hot updates or reload.\n if (isHotUpdate) {\n tryApplyUpdates(onBeforeFastRefresh, onFastRefresh);\n }\n}\n// Compilation with errors (e.g. syntax error or missing modules).\nfunction handleErrors(errors) {\n clearOutdatedErrors();\n isFirstCompilation = false;\n hasCompileErrors = true;\n // \"Massage\" webpack messages.\n var formatted = (0, _formatwebpackmessages.default)({\n errors: errors,\n warnings: []\n });\n // Only show the first error.\n (0, _client.onBuildError)(formatted.errors[0]);\n // Also log them to the console.\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n for(var i = 0; i < formatted.errors.length; i++){\n console.error((0, _stripansi.default)(formatted.errors[i]));\n }\n }\n // Do not attempt to reload now.\n // We will reload on next success instead.\n if (false) {}\n}\nlet startLatency = undefined;\nfunction onBeforeFastRefresh(updatedModules) {\n if (updatedModules.length > 0) {\n // Only trigger a pending state if we have updates to apply\n // (cf. onFastRefresh)\n (0, _client.onBeforeRefresh)();\n }\n}\nfunction onFastRefresh(updatedModules) {\n if (updatedModules === void 0) updatedModules = [];\n (0, _client.onBuildOk)();\n if (updatedModules.length === 0) {\n return;\n }\n (0, _client.onRefresh)();\n reportHmrLatency();\n}\nfunction reportHmrLatency(updatedModules) {\n if (updatedModules === void 0) updatedModules = [];\n if (startLatency) {\n const endLatency = Date.now();\n const latency = endLatency - startLatency;\n console.log(\"[Fast Refresh] done in \" + latency + \"ms\");\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-hmr-latency',\n id: window.__nextDevClientId,\n startTime: startLatency,\n endTime: endLatency,\n page: window.location.pathname,\n updatedModules,\n // Whether the page (tab) was hidden at the time the event occurred.\n // This can impact the accuracy of the event's timing.\n isPageHidden: document.visibilityState === 'hidden'\n }));\n if (self.__NEXT_HMR_LATENCY_CB) {\n self.__NEXT_HMR_LATENCY_CB(latency);\n }\n }\n}\n// There is a newer version of the code available.\nfunction handleAvailableHash(hash) {\n // Update last known compilation hash.\n mostRecentCompilationHash = hash;\n}\n/** Handles messages from the sevrer for the Pages Router. */ function processMessage(obj) {\n if (!('action' in obj)) {\n return;\n }\n // Use turbopack message for analytics, (still need built for webpack)\n switch(obj.action){\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILDING:\n {\n startLatency = Date.now();\n console.log('[Fast Refresh] rebuilding');\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILT:\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SYNC:\n {\n if (obj.hash) handleAvailableHash(obj.hash);\n const { errors, warnings } = obj;\n // Is undefined when it's a 'built' event\n if ('versionInfo' in obj) (0, _client.onVersionInfo)(obj.versionInfo);\n const hasErrors = Boolean(errors && errors.length);\n if (hasErrors) {\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-error',\n errorCount: errors.length,\n clientId: window.__nextDevClientId\n }));\n return handleErrors(errors);\n }\n const hasWarnings = Boolean(warnings && warnings.length);\n if (hasWarnings) {\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-warning',\n warningCount: warnings.length,\n clientId: window.__nextDevClientId\n }));\n return handleWarnings(warnings);\n }\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-success',\n clientId: window.__nextDevClientId\n }));\n return handleSuccess();\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES:\n {\n if (hasCompileErrors || _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n window.location.reload();\n }\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ERROR:\n {\n const { errorJSON } = obj;\n if (errorJSON) {\n const { message, stack } = JSON.parse(errorJSON);\n const error = new Error(message);\n error.stack = stack;\n handleErrors([\n error\n ]);\n }\n return;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED:\n {\n for (const listener of turbopackMessageListeners){\n listener({\n type: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED,\n data: obj.data\n });\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE:\n {\n const updatedModules = (0, _extractmodulesfromturbopackmessage.extractModulesFromTurbopackMessage)(obj.data);\n onBeforeFastRefresh(updatedModules);\n for (const listener of turbopackMessageListeners){\n listener({\n type: _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_MESSAGE,\n data: obj.data\n });\n }\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n performFullReload(null);\n }\n (0, _client.onRefresh)();\n reportHmrLatency(updatedModules);\n break;\n }\n default:\n {\n if (customHmrEventHandler) {\n customHmrEventHandler(obj);\n break;\n }\n break;\n }\n }\n}\n// Is there a newer version of this code available?\nfunction isUpdateAvailable() {\n /* globals __webpack_hash__ */ // __webpack_hash__ is the hash of the current compilation.\n // It's a global variable injected by Webpack.\n return mostRecentCompilationHash !== __webpack_require__.h();\n}\n// Webpack disallows updates in other states.\nfunction canApplyUpdates() {\n // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\n return module.hot.status() === 'idle';\n}\nfunction afterApplyUpdates(fn) {\n if (canApplyUpdates()) {\n fn();\n } else {\n function handler(status) {\n if (status === 'idle') {\n // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\n module.hot.removeStatusHandler(handler);\n fn();\n }\n }\n // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\n module.hot.addStatusHandler(handler);\n }\n}\n// Attempt to update code on the fly, fall back to a hard reload.\nfunction tryApplyUpdates(onBeforeHotUpdate, onHotUpdateSuccess) {\n // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\n if (false) {}\n if (!isUpdateAvailable() || !canApplyUpdates()) {\n (0, _client.onBuildOk)();\n return;\n }\n function handleApplyUpdates(err, updatedModules) {\n if (err || _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError || !updatedModules) {\n if (err) {\n console.warn('[Fast Refresh] performing full reload\\n\\n' + \"Fast Refresh will perform a full reload when you edit a file that's imported by modules outside of the React rendering tree.\\n\" + 'You might have a file which exports a React component but also exports a value that is imported by a non-React component file.\\n' + 'Consider migrating the non-React component export to a separate file and importing it into both files.\\n\\n' + 'It is also possible the parent component of the component you edited is a class component, which disables Fast Refresh.\\n' + 'Fast Refresh requires at least one parent function component in your React tree.');\n } else if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn('[Fast Refresh] performing full reload because your application had an unrecoverable error');\n }\n performFullReload(err);\n return;\n }\n if (typeof onHotUpdateSuccess === 'function') {\n // Maybe we want to do something.\n onHotUpdateSuccess(updatedModules);\n }\n if (isUpdateAvailable()) {\n // While we were updating, there was a new update! Do it again.\n // However, this time, don't trigger a pending refresh state.\n tryApplyUpdates(updatedModules.length > 0 ? undefined : onBeforeHotUpdate, updatedModules.length > 0 ? _client.onBuildOk : onHotUpdateSuccess);\n } else {\n (0, _client.onBuildOk)();\n if (false) {}\n }\n }\n // https://webpack.js.org/api/hot-module-replacement/#check\n // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\n module.hot.check(/* autoApply */ false).then((updatedModules)=>{\n if (!updatedModules) {\n return null;\n }\n if (typeof onBeforeHotUpdate === 'function') {\n onBeforeHotUpdate(updatedModules);\n }\n // @ts-expect-error TODO: module.hot exists but type needs to be added. Can't use `as any` here as webpack parses for `module.hot` calls.\n return module.hot.apply();\n }).then((updatedModules)=>{\n handleApplyUpdates(null, updatedModules);\n }, (err)=>{\n handleApplyUpdates(err, null);\n });\n}\nfunction performFullReload(err) {\n const stackTrace = err && (err.stack && err.stack.split('\\n').slice(0, 5).join('\\n') || err.message || err + '');\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-full-reload',\n stackTrace,\n hadRuntimeError: !!_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError,\n dependencyChain: err ? err.dependencyChain : undefined\n }));\n window.location.reload();\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hot-reloader-client.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL2hvdC1yZWxvYWRlci1jbGllbnQuanMiLCJtYXBwaW5ncyI6IkFBQUEsdUVBQXVFO0FBQ3ZFLDBEQUEwRCxHQUMxRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCQyxHQUVELDhFQUE4RTtBQUM5RSxxQkFBcUI7QUFDckIsMkdBQTJHOzs7Ozs7Ozs7Ozs7O0lBMkMzRyxPQXNDQztlQXRDdUJBOztJQWthUkMsaUJBQWlCO2VBQWpCQTs7OztvQ0FwY1Q7Z0ZBQ2U7dUNBQzBCOzRGQUNkOzhDQUNVO2dFQUtPO29DQUNFO2lEQUNqQjtBQWtCcENDLE9BQU9DLGlCQUFpQixHQUFHQyxLQUFLQyxLQUFLLENBQUNELEtBQUtFLE1BQU0sS0FBSyxNQUFNQyxLQUFLQyxHQUFHO0FBRXBFLElBQUlDO0FBQ0osSUFBSUMsNEJBQXNFLEVBQUU7QUFDNUUsSUFBSUMsT0FBZ0M7QUFDckIsU0FBU1gsUUFBUVksSUFBNkI7SUFDM0RELE9BQU9DO0lBQ1BDLENBQUFBLEdBQUFBLFFBQUFBLFFBQUFBO0lBRUFDLENBQUFBLEdBQUFBLFdBQUFBLGtCQUFBQSxFQUFtQixDQUFDQztRQUNsQixJQUFJLENBQUUsYUFBWUEsT0FBQUEsQ0FBTSxFQUFJO1lBQzFCO1FBQ0Y7UUFFQSxJQUFJO1lBQ0ZDLGVBQWVEO1FBQ2pCLEVBQUUsT0FBT0UsS0FBVTtnQkFLWkE7WUFKTEMsUUFBUUMsSUFBSSxDQUNWLDRCQUNFQyxLQUFLQyxTQUFTLENBQUNOLFdBQ2YsT0FDQ0UsQ0FBQUEsQ0FBQUEsYUFBQUEsT0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsSUFBS0ssS0FBQUEsS0FBSyxPQUFWTCxhQUFjLEdBQUM7UUFFdEI7SUFDRjtJQUVBLE9BQU87UUFDTE0scUJBQW9CQyxPQUFZO1lBQzlCZix3QkFBd0JlO1FBQzFCO1FBQ0FDO1lBQ0VDLHFCQUFBQSxtQkFBbUIsQ0FBQ0MsZUFBZSxHQUFHO1FBQ3hDO1FBQ0FDLDZCQUE0QkMsRUFBd0M7WUFDbEVuQiwwQkFBMEJvQixJQUFJLENBQUNEO1FBQ2pDO1FBQ0FFLHNCQUFxQkMsR0FBVztZQUM5QkMsQ0FBQUEsR0FBQUEsV0FBQUEsV0FBQUEsRUFBWUQ7UUFDZDtRQUNBRSxtQkFBa0JqQixHQUFZO1lBQzVCaEIsa0JBQWtCZ0I7UUFDcEI7SUFDRjtBQUNGO0FBRUEseURBQXlEO0FBQ3pELElBQUlrQixxQkFBcUI7QUFDekIsSUFBSUMsNEJBQTJDO0FBQy9DLElBQUlDLG1CQUFtQjtBQUV2QixTQUFTQztJQUNQLDRDQUE0QztJQUM1QyxJQUFJLE9BQU9wQixZQUFZLGVBQWUsT0FBT0EsUUFBUXFCLEtBQUssS0FBSyxZQUFZO1FBQ3pFLElBQUlGLGtCQUFrQjtZQUNwQm5CLFFBQVFxQixLQUFLO1FBQ2Y7SUFDRjtBQUNGO0FBRUEsMEJBQTBCO0FBQzFCLFNBQVNDO0lBQ1BGO0lBRUEsSUFBSTNCLFNBQVMsV0FBVztRQUN0QixNQUFNOEIsY0FDSixDQUFDTixzQkFDQWpDLE9BQU93QyxhQUFhLENBQUNDLElBQUksS0FBSyxhQUFhQztRQUM5Q1QscUJBQXFCO1FBQ3JCRSxtQkFBbUI7UUFFbkIsMENBQTBDO1FBQzFDLElBQUlJLGFBQWE7WUFDZkksZ0JBQWdCQyxxQkFBcUJDO1FBQ3ZDO0lBQ0YsT0FBTztRQUNMQyxDQUFBQSxHQUFBQSxRQUFBQSxTQUFTO0lBQ1g7QUFDRjtBQUVBLDJDQUEyQztBQUMzQyxTQUFTQyxlQUFlQyxRQUFhO0lBQ25DWjtJQUVBLE1BQU1HLGNBQWMsQ0FBQ047SUFDckJBLHFCQUFxQjtJQUNyQkUsbUJBQW1CO0lBRW5CLFNBQVNjO1FBQ1AsaUNBQWlDO1FBQ2pDLE1BQU1DLFlBQVlDLENBQUFBLEdBQUFBLHVCQUFBQSxPQUFBQSxFQUFzQjtZQUN0Q0gsVUFBVUE7WUFDVkksUUFBUSxFQUFFO1FBQ1o7UUFFQSxJQUFJLE9BQU9wQyxZQUFZLGVBQWUsT0FBT0EsUUFBUUMsSUFBSSxLQUFLLFlBQVk7Z0JBQ3BEaUM7WUFBcEIsSUFBSyxJQUFJRyxJQUFJLEdBQUdBLElBQUFBLENBQUFBLENBQUlILHNCQUFBQSxVQUFVRixRQUFBQSxLQUFRLGdCQUFsQkUsb0JBQW9CSSxNQUFBQSxHQUFRRCxJQUFLO2dCQUNuRCxJQUFJQSxNQUFNLEdBQUc7b0JBQ1hyQyxRQUFRQyxJQUFJLENBQ1YsK0NBQ0U7b0JBRUo7Z0JBQ0Y7Z0JBQ0FELFFBQVFDLElBQUksQ0FBQ3NDLENBQUFBLEdBQUFBLFdBQUFBLE9BQUFBLEVBQVVMLFVBQVVGLFFBQVEsQ0FBQ0ssRUFBRTtZQUM5QztRQUNGO0lBQ0Y7SUFFQUo7SUFFQSwwQ0FBMEM7SUFDMUMsSUFBSVYsYUFBYTtRQUNmSSxnQkFBZ0JDLHFCQUFxQkM7SUFDdkM7QUFDRjtBQUVBLGtFQUFrRTtBQUNsRSxTQUFTVyxhQUFhSixNQUFXO0lBQy9CaEI7SUFFQUgscUJBQXFCO0lBQ3JCRSxtQkFBbUI7SUFFbkIsOEJBQThCO0lBQzlCLElBQUllLFlBQVlDLENBQUFBLEdBQUFBLHVCQUFBQSxPQUFBQSxFQUFzQjtRQUNwQ0MsUUFBUUE7UUFDUkosVUFBVSxFQUFFO0lBQ2Q7SUFFQSw2QkFBNkI7SUFDN0JTLENBQUFBLEdBQUFBLFFBQUFBLFlBQVksRUFBQ1AsVUFBVUUsTUFBTSxDQUFDLEVBQUU7SUFFaEMsZ0NBQWdDO0lBQ2hDLElBQUksT0FBT3BDLFlBQVksZUFBZSxPQUFPQSxRQUFRMEMsS0FBSyxLQUFLLFlBQVk7UUFDekUsSUFBSyxJQUFJTCxJQUFJLEdBQUdBLElBQUlILFVBQVVFLE1BQU0sQ0FBQ0UsTUFBTSxFQUFFRCxJQUFLO1lBQ2hEckMsUUFBUTBDLEtBQUssQ0FBQ0gsQ0FBQUEsR0FBQUEsV0FBQUEsT0FBUyxFQUFDTCxVQUFVRSxNQUFNLENBQUNDLEVBQUU7UUFDN0M7SUFDRjtJQUVBLGdDQUFnQztJQUNoQywwQ0FBMEM7SUFDMUMsSUFBSU0sS0FBNEIsRUFBRSxFQUtqQztBQUNIO0FBRUEsSUFBSUssZUFBbUNDO0FBRXZDLFNBQVNyQixvQkFBb0JzQixjQUF3QjtJQUNuRCxJQUFJQSxlQUFlWixNQUFNLEdBQUcsR0FBRztRQUM3QiwyREFBMkQ7UUFDM0Qsc0JBQXNCO1FBQ3RCYSxDQUFBQSxHQUFBQSxRQUFBQSxlQUFBQTtJQUNGO0FBQ0Y7QUFFQSxTQUFTdEIsY0FBY3FCLGNBQTBDO0lBQTFDQSxJQUFBQSxtQkFBQUEsS0FBQUEsR0FBQUEsaUJBQXdDLEVBQUU7SUFDL0RwQixDQUFBQSxHQUFBQSxRQUFBQSxTQUFBQTtJQUNBLElBQUlvQixlQUFlWixNQUFNLEtBQUssR0FBRztRQUMvQjtJQUNGO0lBRUFjLENBQUFBLEdBQUFBLFFBQUFBLFNBQVM7SUFFVEM7QUFDRjtBQUVBLFNBQVNBLGlCQUFpQkgsY0FBMEM7SUFBMUNBLElBQUFBLG1CQUFBQSxLQUFBQSxHQUFBQSxpQkFBd0MsRUFBRTtJQUNsRSxJQUFJRixjQUFjO1FBQ2hCLE1BQU1NLGFBQWFqRSxLQUFLQyxHQUFHO1FBQzNCLE1BQU1pRSxVQUFVRCxhQUFhTjtRQUM3QmhELFFBQVF3RCxHQUFHLENBQUUsNEJBQXlCRCxVQUFRO1FBQzlDeEMsQ0FBQUEsR0FBQUEsV0FBQUEsV0FBQUEsRUFDRWIsS0FBS0MsU0FBUyxDQUFDO1lBQ2JzRCxPQUFPO1lBQ1BDLElBQUkxRSxPQUFPQyxpQkFBaUI7WUFDNUIwRSxXQUFXWDtZQUNYWSxTQUFTTjtZQUNUN0IsTUFBTXpDLE9BQU82RSxRQUFRLENBQUNDLFFBQVE7WUFDOUJaO1lBQ0Esb0VBQW9FO1lBQ3BFLHNEQUFzRDtZQUN0RGEsY0FBY0MsU0FBU0MsZUFBZSxLQUFLO1FBQzdDO1FBRUYsSUFBSW5CLEtBQUtvQixxQkFBcUIsRUFBRTtZQUM5QnBCLEtBQUtvQixxQkFBcUIsQ0FBQ1g7UUFDN0I7SUFDRjtBQUNGO0FBRUEsa0RBQWtEO0FBQ2xELFNBQVNZLG9CQUFvQkMsSUFBWTtJQUN2QyxzQ0FBc0M7SUFDdENsRCw0QkFBNEJrRDtBQUM5QjtBQUVBLDJEQUEyRCxHQUMzRCxTQUFTdEUsZUFBZXVFLEdBQXFCO0lBQzNDLElBQUksQ0FBRSxhQUFZQSxHQUFBQSxDQUFFLEVBQUk7UUFDdEI7SUFDRjtJQUVBLHNFQUFzRTtJQUN0RSxPQUFRQSxJQUFJQyxNQUFNO1FBQ2hCLEtBQUtDLGtCQUFBQSwyQkFBMkIsQ0FBQ0MsUUFBUTtZQUFFO2dCQUN6Q3hCLGVBQWUzRCxLQUFLQyxHQUFHO2dCQUN2QlUsUUFBUXdELEdBQUcsQ0FBQztnQkFDWjtZQUNGO1FBQ0EsS0FBS2Usa0JBQUFBLDJCQUEyQixDQUFDRSxLQUFLO1FBQ3RDLEtBQUtGLGtCQUFBQSwyQkFBMkIsQ0FBQ0csSUFBSTtZQUFFO2dCQUNyQyxJQUFJTCxJQUFJRCxJQUFJLEVBQUVELG9CQUFvQkUsSUFBSUQsSUFBSTtnQkFFMUMsTUFBTSxFQUFFaEMsTUFBTSxFQUFFSixRQUFRLEVBQUUsR0FBR3FDO2dCQUU3Qix5Q0FBeUM7Z0JBQ3pDLElBQUksaUJBQWlCQSxLQUFLTSxDQUFBQSxHQUFBQSxRQUFBQSxhQUFBQSxFQUFjTixJQUFJTyxXQUFXO2dCQUV2RCxNQUFNQyxZQUFZQyxRQUFRMUMsVUFBVUEsT0FBT0UsTUFBTTtnQkFDakQsSUFBSXVDLFdBQVc7b0JBQ2I5RCxDQUFBQSxHQUFBQSxXQUFBQSxXQUFBQSxFQUNFYixLQUFLQyxTQUFTLENBQUM7d0JBQ2JzRCxPQUFPO3dCQUNQc0IsWUFBWTNDLE9BQU9FLE1BQU07d0JBQ3pCMEMsVUFBVWhHLE9BQU9DLGlCQUFpQjtvQkFDcEM7b0JBRUYsT0FBT3VELGFBQWFKO2dCQUN0QjtnQkFFQSxNQUFNNkMsY0FBY0gsUUFBUTlDLFlBQVlBLFNBQVNNLE1BQU07Z0JBQ3ZELElBQUkyQyxhQUFhO29CQUNmbEUsQ0FBQUEsR0FBQUEsV0FBQUEsV0FBVyxFQUNUYixLQUFLQyxTQUFTLENBQUM7d0JBQ2JzRCxPQUFPO3dCQUNQeUIsY0FBY2xELFNBQVNNLE1BQU07d0JBQzdCMEMsVUFBVWhHLE9BQU9DLGlCQUFpQjtvQkFDcEM7b0JBRUYsT0FBTzhDLGVBQWVDO2dCQUN4QjtnQkFFQWpCLENBQUFBLEdBQUFBLFdBQUFBLFdBQUFBLEVBQ0ViLEtBQUtDLFNBQVMsQ0FBQztvQkFDYnNELE9BQU87b0JBQ1B1QixVQUFVaEcsT0FBT0MsaUJBQWlCO2dCQUNwQztnQkFFRixPQUFPcUM7WUFDVDtRQUNBLEtBQUtpRCxrQkFBQUEsMkJBQTJCLENBQUNZLHdCQUF3QjtZQUFFO2dCQUN6RCxJQUFJaEUsb0JBQW9CWCxxQkFBQUEsbUJBQW1CLENBQUNDLGVBQWUsRUFBRTtvQkFDM0R6QixPQUFPNkUsUUFBUSxDQUFDdUIsTUFBTTtnQkFDeEI7Z0JBQ0E7WUFDRjtRQUNBLEtBQUtiLGtCQUFBQSwyQkFBMkIsQ0FBQ2MsWUFBWTtZQUFFO2dCQUM3QyxNQUFNLEVBQUVDLFNBQVMsRUFBRSxHQUFHakI7Z0JBQ3RCLElBQUlpQixXQUFXO29CQUNiLE1BQU0sRUFBRUMsT0FBTyxFQUFFbkYsS0FBSyxFQUFFLEdBQUdGLEtBQUtzRixLQUFLLENBQUNGO29CQUN0QyxNQUFNNUMsUUFBUSxJQUFJK0MsTUFBTUY7b0JBQ3hCN0MsTUFBTXRDLEtBQUssR0FBR0E7b0JBQ2RvQyxhQUFhO3dCQUFDRTtxQkFBTTtnQkFDdEI7Z0JBQ0E7WUFDRjtRQUNBLEtBQUs2QixrQkFBQUEsMkJBQTJCLENBQUNtQixtQkFBbUI7WUFBRTtnQkFDcEQsS0FBSyxNQUFNQyxZQUFZbkcsMEJBQTJCO29CQUNoRG1HLFNBQVM7d0JBQ1BDLE1BQU1yQixrQkFBQUEsMkJBQTJCLENBQUNtQixtQkFBbUI7d0JBQ3JERyxNQUFNeEIsSUFBSXdCLElBQUk7b0JBQ2hCO2dCQUNGO2dCQUNBO1lBQ0Y7UUFDQSxLQUFLdEIsa0JBQUFBLDJCQUEyQixDQUFDdUIsaUJBQWlCO1lBQUU7Z0JBQ2xELE1BQU01QyxpQkFBaUI2QyxDQUFBQSxHQUFBQSxvQ0FBQUEsa0NBQUFBLEVBQW1DMUIsSUFBSXdCLElBQUk7Z0JBQ2xFakUsb0JBQW9Cc0I7Z0JBQ3BCLEtBQUssTUFBTXlDLFlBQVluRywwQkFBMkI7b0JBQ2hEbUcsU0FBUzt3QkFDUEMsTUFBTXJCLGtCQUFBQSwyQkFBMkIsQ0FBQ3VCLGlCQUFpQjt3QkFDbkRELE1BQU14QixJQUFJd0IsSUFBSTtvQkFDaEI7Z0JBQ0Y7Z0JBQ0EsSUFBSXJGLHFCQUFBQSxtQkFBbUIsQ0FBQ0MsZUFBZSxFQUFFO29CQUN2Q1QsUUFBUUMsSUFBSSxDQUFDK0YsUUFBQUEsb0NBQW9DO29CQUNqRGpILGtCQUFrQjtnQkFDcEI7Z0JBQ0FxRSxDQUFBQSxHQUFBQSxRQUFBQSxTQUFBQTtnQkFDQUMsaUJBQWlCSDtnQkFDakI7WUFDRjtRQUNBO1lBQVM7Z0JBQ1AsSUFBSTNELHVCQUF1QjtvQkFDekJBLHNCQUFzQjhFO29CQUN0QjtnQkFDRjtnQkFDQTtZQUNGO0lBQ0Y7QUFDRjtBQUVBLG1EQUFtRDtBQUNuRCxTQUFTM0M7SUFDUCw0QkFBNEIsR0FDNUIsMkRBQTJEO0lBQzNELDhDQUE4QztJQUM5QyxPQUFPUiw4QkFBOEIrRSx1QkFBZ0JBO0FBQ3ZEO0FBRUEsNkNBQTZDO0FBQzdDLFNBQVNDO0lBQ1AseUlBQXlJO0lBQ3pJLE9BQU9DLFVBQVUsQ0FBQ0UsTUFBTSxPQUFPO0FBQ2pDO0FBQ0EsU0FBU0Msa0JBQWtCQyxFQUFjO0lBQ3ZDLElBQUlMLG1CQUFtQjtRQUNyQks7SUFDRixPQUFPO1FBQ0wsU0FBU2pHLFFBQVErRixNQUFjO1lBQzdCLElBQUlBLFdBQVcsUUFBUTtnQkFDckIseUlBQXlJO2dCQUN6SUYsVUFBVSxDQUFDSyxtQkFBbUIsQ0FBQ2xHO2dCQUMvQmlHO1lBQ0Y7UUFDRjtRQUNBLHlJQUF5STtRQUN6SUosVUFBVSxDQUFDTSxnQkFBZ0IsQ0FBQ25HO0lBQzlCO0FBQ0Y7QUFFQSxpRUFBaUU7QUFDakUsU0FBU3FCLGdCQUNQK0UsaUJBQXNFLEVBQ3RFQyxrQkFBeUQ7SUFFekQseUlBQXlJO0lBQ3pJLElBQUksS0FBVyxFQUFFLEVBS2hCO0lBRUQsSUFBSSxDQUFDakYsdUJBQXVCLENBQUN3RSxtQkFBbUI7UUFDOUNwRSxDQUFBQSxHQUFBQSxRQUFBQSxTQUFBQTtRQUNBO0lBQ0Y7SUFFQSxTQUFTOEUsbUJBQW1CN0csR0FBUSxFQUFFbUQsY0FBK0I7UUFDbkUsSUFBSW5ELE9BQU9TLHFCQUFBQSxtQkFBbUIsQ0FBQ0MsZUFBZSxJQUFJLENBQUN5QyxnQkFBZ0I7WUFDakUsSUFBSW5ELEtBQUs7Z0JBQ1BDLFFBQVFDLElBQUksQ0FDViw4Q0FDRSxtSUFDQSxxSUFDQSwrR0FDQSw4SEFDQTtZQUVOLE9BQU8sSUFBSU8scUJBQUFBLG1CQUFtQixDQUFDQyxlQUFlLEVBQUU7Z0JBQzlDVCxRQUFRQyxJQUFJLENBQ1Y7WUFFSjtZQUNBbEIsa0JBQWtCZ0I7WUFDbEI7UUFDRjtRQUVBLElBQUksT0FBTzRHLHVCQUF1QixZQUFZO1lBQzVDLGlDQUFpQztZQUNqQ0EsbUJBQW1CekQ7UUFDckI7UUFFQSxJQUFJeEIscUJBQXFCO1lBQ3ZCLCtEQUErRDtZQUMvRCw2REFBNkQ7WUFDN0RDLGdCQUNFdUIsZUFBZVosTUFBTSxHQUFHLElBQUlXLFlBQVl5RCxtQkFDeEN4RCxlQUFlWixNQUFNLEdBQUcsSUFBSVIsUUFBQUEsU0FBUyxHQUFHNkU7UUFFNUMsT0FBTztZQUNMN0UsQ0FBQUEsR0FBQUEsUUFBQUEsU0FBQUE7WUFDQSxJQUFJYSxLQUE0QixFQUFFLEVBT2pDO1FBQ0g7SUFDRjtJQUVBLDJEQUEyRDtJQUMzRCx5SUFBeUk7SUFDekl3RCxVQUFVLENBQ1BVLEtBQUssQ0FBQyxhQUFhLEdBQUcsT0FDdEJDLElBQUksQ0FBQyxDQUFDNUQ7UUFDTCxJQUFJLENBQUNBLGdCQUFnQjtZQUNuQixPQUFPO1FBQ1Q7UUFFQSxJQUFJLE9BQU93RCxzQkFBc0IsWUFBWTtZQUMzQ0Esa0JBQWtCeEQ7UUFDcEI7UUFDQSx5SUFBeUk7UUFDekksT0FBT2lELFVBQVUsQ0FBQ1ksS0FBSztJQUN6QixHQUNDRCxJQUFJLENBQ0gsQ0FBQzVEO1FBQ0MwRCxtQkFBbUIsTUFBTTFEO0lBQzNCLEdBQ0EsQ0FBQ25EO1FBQ0M2RyxtQkFBbUI3RyxLQUFLO0lBQzFCO0FBRU47QUFFTyxTQUFTaEIsa0JBQWtCZ0IsR0FBUTtJQUN4QyxNQUFNaUgsYUFDSmpILE9BQ0MsQ0FBQ0EsSUFBSUssS0FBSyxJQUFJTCxJQUFJSyxLQUFLLENBQUM2RyxLQUFLLENBQUMsTUFBTUMsS0FBSyxDQUFDLEdBQUcsR0FBR0MsSUFBSSxDQUFDLFNBQ3BEcEgsSUFBSXdGLE9BQU8sSUFDWHhGLE1BQU0sR0FBQztJQUVYZ0IsQ0FBQUEsR0FBQUEsV0FBQUEsV0FBQUEsRUFDRWIsS0FBS0MsU0FBUyxDQUFDO1FBQ2JzRCxPQUFPO1FBQ1B1RDtRQUNBdkcsaUJBQWlCLENBQUMsQ0FBQ0QscUJBQUFBLG1CQUFtQixDQUFDQyxlQUFlO1FBQ3REMkcsaUJBQWlCckgsTUFBTUEsSUFBSXFILGVBQWUsR0FBR25FO0lBQy9DO0lBR0ZqRSxPQUFPNkUsUUFBUSxDQUFDdUIsTUFBTTtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvcGFnZXMvaG90LXJlbG9hZGVyLWNsaWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBSZW1vdmUgdXNlIG9mIGBhbnlgIHR5cGUuIEZpeCBuby11c2UtYmVmb3JlLWRlZmluZSB2aW9sYXRpb25zLlxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG4vKipcbiAqIE1JVCBMaWNlbnNlXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuICogY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gKiBTT0ZUV0FSRS5cbiAqL1xuXG4vLyBUaGlzIGZpbGUgaXMgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBDcmVhdGUgUmVhY3QgQXBwIEhNUiBkZXYgY2xpZW50IHRoYXRcbi8vIGNhbiBiZSBmb3VuZCBoZXJlOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL2NyZWF0ZS1yZWFjdC1hcHAvYmxvYi92My40LjEvcGFja2FnZXMvcmVhY3QtZGV2LXV0aWxzL3dlYnBhY2tIb3REZXZDbGllbnQuanNcblxuaW1wb3J0IHtcbiAgcmVnaXN0ZXIsXG4gIG9uQnVpbGRFcnJvcixcbiAgb25CdWlsZE9rLFxuICBvbkJlZm9yZVJlZnJlc2gsXG4gIG9uUmVmcmVzaCxcbiAgb25WZXJzaW9uSW5mbyxcbn0gZnJvbSAnLi9jbGllbnQnXG5pbXBvcnQgc3RyaXBBbnNpIGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpJ1xuaW1wb3J0IHsgYWRkTWVzc2FnZUxpc3RlbmVyLCBzZW5kTWVzc2FnZSB9IGZyb20gJy4vd2Vic29ja2V0J1xuaW1wb3J0IGZvcm1hdFdlYnBhY2tNZXNzYWdlcyBmcm9tICcuLi9pbnRlcm5hbC9oZWxwZXJzL2Zvcm1hdC13ZWJwYWNrLW1lc3NhZ2VzJ1xuaW1wb3J0IHsgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5pbXBvcnQgdHlwZSB7XG4gIEhNUl9BQ1RJT05fVFlQRVMsXG4gIFR1cmJvcGFja01zZ1RvQnJvd3Nlcixcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5pbXBvcnQgeyBleHRyYWN0TW9kdWxlc0Zyb21UdXJib3BhY2tNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2Rldi9leHRyYWN0LW1vZHVsZXMtZnJvbS10dXJib3BhY2stbWVzc2FnZSdcbmltcG9ydCB7IFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUiB9IGZyb20gJy4uL3NoYXJlZCdcbmltcG9ydCB7IFJ1bnRpbWVFcnJvckhhbmRsZXIgfSBmcm9tICcuLi9pbnRlcm5hbC9oZWxwZXJzL3J1bnRpbWUtZXJyb3ItaGFuZGxlcidcbi8vIFRoaXMgYWx0ZXJuYXRpdmUgV2VicGFja0RldlNlcnZlciBjb21iaW5lcyB0aGUgZnVuY3Rpb25hbGl0eSBvZjpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrL3dlYnBhY2stZGV2LXNlcnZlci9ibG9iL3dlYnBhY2stMS9jbGllbnQvaW5kZXguanNcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJwYWNrL3dlYnBhY2svYmxvYi93ZWJwYWNrLTEvaG90L2Rldi1zZXJ2ZXIuanNcblxuLy8gSXQgb25seSBzdXBwb3J0cyB0aGVpciBzaW1wbGVzdCBjb25maWd1cmF0aW9uIChob3QgdXBkYXRlcyBvbiBzYW1lIHNlcnZlcikuXG4vLyBJdCBtYWtlcyBzb21lIG9waW5pb25hdGVkIGNob2ljZXMgb24gdG9wLCBsaWtlIGFkZGluZyBhIHN5bnRheCBlcnJvciBvdmVybGF5XG4vLyB0aGF0IGxvb2tzIHNpbWlsYXIgdG8gb3VyIGNvbnNvbGUgb3V0cHV0LiBUaGUgZXJyb3Igb3ZlcmxheSBpcyBpbnNwaXJlZCBieTpcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9nbGVuamFtaW4vd2VicGFjay1ob3QtbWlkZGxld2FyZVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGNvbnN0IF9fd2VicGFja19oYXNoX186IHN0cmluZ1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBfX25leHREZXZDbGllbnRJZDogbnVtYmVyXG4gICAgX19ORVhUX0hNUl9MQVRFTkNZX0NCOiBhbnlcbiAgfVxufVxuXG53aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQgPSBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxMDAgKyBEYXRlLm5vdygpKVxuXG5sZXQgY3VzdG9tSG1yRXZlbnRIYW5kbGVyOiBhbnlcbmxldCB0dXJib3BhY2tNZXNzYWdlTGlzdGVuZXJzOiAoKG1zZzogVHVyYm9wYWNrTXNnVG9Ccm93c2VyKSA9PiB2b2lkKVtdID0gW11cbmxldCBNT0RFOiAnd2VicGFjaycgfCAndHVyYm9wYWNrJyA9ICd3ZWJwYWNrJ1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY29ubmVjdChtb2RlOiAnd2VicGFjaycgfCAndHVyYm9wYWNrJykge1xuICBNT0RFID0gbW9kZVxuICByZWdpc3RlcigpXG5cbiAgYWRkTWVzc2FnZUxpc3RlbmVyKChwYXlsb2FkKSA9PiB7XG4gICAgaWYgKCEoJ2FjdGlvbicgaW4gcGF5bG9hZCkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBwcm9jZXNzTWVzc2FnZShwYXlsb2FkKVxuICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdbSE1SXSBJbnZhbGlkIG1lc3NhZ2U6ICcgK1xuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHBheWxvYWQpICtcbiAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgKGVycj8uc3RhY2sgPz8gJycpXG4gICAgICApXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiB7XG4gICAgc3Vic2NyaWJlVG9IbXJFdmVudChoYW5kbGVyOiBhbnkpIHtcbiAgICAgIGN1c3RvbUhtckV2ZW50SGFuZGxlciA9IGhhbmRsZXJcbiAgICB9LFxuICAgIG9uVW5yZWNvdmVyYWJsZUVycm9yKCkge1xuICAgICAgUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IgPSB0cnVlXG4gICAgfSxcbiAgICBhZGRUdXJib3BhY2tNZXNzYWdlTGlzdGVuZXIoY2I6IChtc2c6IFR1cmJvcGFja01zZ1RvQnJvd3NlcikgPT4gdm9pZCkge1xuICAgICAgdHVyYm9wYWNrTWVzc2FnZUxpc3RlbmVycy5wdXNoKGNiKVxuICAgIH0sXG4gICAgc2VuZFR1cmJvcGFja01lc3NhZ2UobXNnOiBzdHJpbmcpIHtcbiAgICAgIHNlbmRNZXNzYWdlKG1zZylcbiAgICB9LFxuICAgIGhhbmRsZVVwZGF0ZUVycm9yKGVycjogdW5rbm93bikge1xuICAgICAgcGVyZm9ybUZ1bGxSZWxvYWQoZXJyKVxuICAgIH0sXG4gIH1cbn1cblxuLy8gUmVtZW1iZXIgc29tZSBzdGF0ZSByZWxhdGVkIHRvIGhvdCBtb2R1bGUgcmVwbGFjZW1lbnQuXG52YXIgaXNGaXJzdENvbXBpbGF0aW9uID0gdHJ1ZVxudmFyIG1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2g6IHN0cmluZyB8IG51bGwgPSBudWxsXG52YXIgaGFzQ29tcGlsZUVycm9ycyA9IGZhbHNlXG5cbmZ1bmN0aW9uIGNsZWFyT3V0ZGF0ZWRFcnJvcnMoKSB7XG4gIC8vIENsZWFuIHVwIG91dGRhdGVkIGNvbXBpbGUgZXJyb3JzLCBpZiBhbnkuXG4gIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGNvbnNvbGUuY2xlYXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoaGFzQ29tcGlsZUVycm9ycykge1xuICAgICAgY29uc29sZS5jbGVhcigpXG4gICAgfVxuICB9XG59XG5cbi8vIFN1Y2Nlc3NmdWwgY29tcGlsYXRpb24uXG5mdW5jdGlvbiBoYW5kbGVTdWNjZXNzKCkge1xuICBjbGVhck91dGRhdGVkRXJyb3JzKClcblxuICBpZiAoTU9ERSA9PT0gJ3dlYnBhY2snKSB7XG4gICAgY29uc3QgaXNIb3RVcGRhdGUgPVxuICAgICAgIWlzRmlyc3RDb21waWxhdGlvbiB8fFxuICAgICAgKHdpbmRvdy5fX05FWFRfREFUQV9fLnBhZ2UgIT09ICcvX2Vycm9yJyAmJiBpc1VwZGF0ZUF2YWlsYWJsZSgpKVxuICAgIGlzRmlyc3RDb21waWxhdGlvbiA9IGZhbHNlXG4gICAgaGFzQ29tcGlsZUVycm9ycyA9IGZhbHNlXG5cbiAgICAvLyBBdHRlbXB0IHRvIGFwcGx5IGhvdCB1cGRhdGVzIG9yIHJlbG9hZC5cbiAgICBpZiAoaXNIb3RVcGRhdGUpIHtcbiAgICAgIHRyeUFwcGx5VXBkYXRlcyhvbkJlZm9yZUZhc3RSZWZyZXNoLCBvbkZhc3RSZWZyZXNoKVxuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBvbkJ1aWxkT2soKVxuICB9XG59XG5cbi8vIENvbXBpbGF0aW9uIHdpdGggd2FybmluZ3MgKGUuZy4gRVNMaW50KS5cbmZ1bmN0aW9uIGhhbmRsZVdhcm5pbmdzKHdhcm5pbmdzOiBhbnkpIHtcbiAgY2xlYXJPdXRkYXRlZEVycm9ycygpXG5cbiAgY29uc3QgaXNIb3RVcGRhdGUgPSAhaXNGaXJzdENvbXBpbGF0aW9uXG4gIGlzRmlyc3RDb21waWxhdGlvbiA9IGZhbHNlXG4gIGhhc0NvbXBpbGVFcnJvcnMgPSBmYWxzZVxuXG4gIGZ1bmN0aW9uIHByaW50V2FybmluZ3MoKSB7XG4gICAgLy8gUHJpbnQgd2FybmluZ3MgdG8gdGhlIGNvbnNvbGUuXG4gICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0V2VicGFja01lc3NhZ2VzKHtcbiAgICAgIHdhcm5pbmdzOiB3YXJuaW5ncyxcbiAgICAgIGVycm9yczogW10sXG4gICAgfSlcblxuICAgIGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGNvbnNvbGUud2FybiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmb3JtYXR0ZWQud2FybmluZ3M/Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpID09PSA1KSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgJ1RoZXJlIHdlcmUgbW9yZSB3YXJuaW5ncyBpbiBvdGhlciBmaWxlcy5cXG4nICtcbiAgICAgICAgICAgICAgJ1lvdSBjYW4gZmluZCBhIGNvbXBsZXRlIGxvZyBpbiB0aGUgdGVybWluYWwuJ1xuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUud2FybihzdHJpcEFuc2koZm9ybWF0dGVkLndhcm5pbmdzW2ldKSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcmludFdhcm5pbmdzKClcblxuICAvLyBBdHRlbXB0IHRvIGFwcGx5IGhvdCB1cGRhdGVzIG9yIHJlbG9hZC5cbiAgaWYgKGlzSG90VXBkYXRlKSB7XG4gICAgdHJ5QXBwbHlVcGRhdGVzKG9uQmVmb3JlRmFzdFJlZnJlc2gsIG9uRmFzdFJlZnJlc2gpXG4gIH1cbn1cblxuLy8gQ29tcGlsYXRpb24gd2l0aCBlcnJvcnMgKGUuZy4gc3ludGF4IGVycm9yIG9yIG1pc3NpbmcgbW9kdWxlcykuXG5mdW5jdGlvbiBoYW5kbGVFcnJvcnMoZXJyb3JzOiBhbnkpIHtcbiAgY2xlYXJPdXRkYXRlZEVycm9ycygpXG5cbiAgaXNGaXJzdENvbXBpbGF0aW9uID0gZmFsc2VcbiAgaGFzQ29tcGlsZUVycm9ycyA9IHRydWVcblxuICAvLyBcIk1hc3NhZ2VcIiB3ZWJwYWNrIG1lc3NhZ2VzLlxuICB2YXIgZm9ybWF0dGVkID0gZm9ybWF0V2VicGFja01lc3NhZ2VzKHtcbiAgICBlcnJvcnM6IGVycm9ycyxcbiAgICB3YXJuaW5nczogW10sXG4gIH0pXG5cbiAgLy8gT25seSBzaG93IHRoZSBmaXJzdCBlcnJvci5cbiAgb25CdWlsZEVycm9yKGZvcm1hdHRlZC5lcnJvcnNbMF0pXG5cbiAgLy8gQWxzbyBsb2cgdGhlbSB0byB0aGUgY29uc29sZS5cbiAgaWYgKHR5cGVvZiBjb25zb2xlICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY29uc29sZS5lcnJvciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZm9ybWF0dGVkLmVycm9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc29sZS5lcnJvcihzdHJpcEFuc2koZm9ybWF0dGVkLmVycm9yc1tpXSkpXG4gICAgfVxuICB9XG5cbiAgLy8gRG8gbm90IGF0dGVtcHQgdG8gcmVsb2FkIG5vdy5cbiAgLy8gV2Ugd2lsbCByZWxvYWQgb24gbmV4dCBzdWNjZXNzIGluc3RlYWQuXG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVEVTVF9NT0RFKSB7XG4gICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKGZvcm1hdHRlZC5lcnJvcnNbMF0pXG4gICAgICBzZWxmLl9fTkVYVF9ITVJfQ0IgPSBudWxsXG4gICAgfVxuICB9XG59XG5cbmxldCBzdGFydExhdGVuY3k6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuXG5mdW5jdGlvbiBvbkJlZm9yZUZhc3RSZWZyZXNoKHVwZGF0ZWRNb2R1bGVzOiBzdHJpbmdbXSkge1xuICBpZiAodXBkYXRlZE1vZHVsZXMubGVuZ3RoID4gMCkge1xuICAgIC8vIE9ubHkgdHJpZ2dlciBhIHBlbmRpbmcgc3RhdGUgaWYgd2UgaGF2ZSB1cGRhdGVzIHRvIGFwcGx5XG4gICAgLy8gKGNmLiBvbkZhc3RSZWZyZXNoKVxuICAgIG9uQmVmb3JlUmVmcmVzaCgpXG4gIH1cbn1cblxuZnVuY3Rpb24gb25GYXN0UmVmcmVzaCh1cGRhdGVkTW9kdWxlczogUmVhZG9ubHlBcnJheTxzdHJpbmc+ID0gW10pIHtcbiAgb25CdWlsZE9rKClcbiAgaWYgKHVwZGF0ZWRNb2R1bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVyblxuICB9XG5cbiAgb25SZWZyZXNoKClcblxuICByZXBvcnRIbXJMYXRlbmN5KClcbn1cblxuZnVuY3Rpb24gcmVwb3J0SG1yTGF0ZW5jeSh1cGRhdGVkTW9kdWxlczogUmVhZG9ubHlBcnJheTxzdHJpbmc+ID0gW10pIHtcbiAgaWYgKHN0YXJ0TGF0ZW5jeSkge1xuICAgIGNvbnN0IGVuZExhdGVuY3kgPSBEYXRlLm5vdygpXG4gICAgY29uc3QgbGF0ZW5jeSA9IGVuZExhdGVuY3kgLSBzdGFydExhdGVuY3lcbiAgICBjb25zb2xlLmxvZyhgW0Zhc3QgUmVmcmVzaF0gZG9uZSBpbiAke2xhdGVuY3l9bXNgKVxuICAgIHNlbmRNZXNzYWdlKFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBldmVudDogJ2NsaWVudC1obXItbGF0ZW5jeScsXG4gICAgICAgIGlkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgIHN0YXJ0VGltZTogc3RhcnRMYXRlbmN5LFxuICAgICAgICBlbmRUaW1lOiBlbmRMYXRlbmN5LFxuICAgICAgICBwYWdlOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICAgIHVwZGF0ZWRNb2R1bGVzLFxuICAgICAgICAvLyBXaGV0aGVyIHRoZSBwYWdlICh0YWIpIHdhcyBoaWRkZW4gYXQgdGhlIHRpbWUgdGhlIGV2ZW50IG9jY3VycmVkLlxuICAgICAgICAvLyBUaGlzIGNhbiBpbXBhY3QgdGhlIGFjY3VyYWN5IG9mIHRoZSBldmVudCdzIHRpbWluZy5cbiAgICAgICAgaXNQYWdlSGlkZGVuOiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09ICdoaWRkZW4nLFxuICAgICAgfSlcbiAgICApXG4gICAgaWYgKHNlbGYuX19ORVhUX0hNUl9MQVRFTkNZX0NCKSB7XG4gICAgICBzZWxmLl9fTkVYVF9ITVJfTEFURU5DWV9DQihsYXRlbmN5KVxuICAgIH1cbiAgfVxufVxuXG4vLyBUaGVyZSBpcyBhIG5ld2VyIHZlcnNpb24gb2YgdGhlIGNvZGUgYXZhaWxhYmxlLlxuZnVuY3Rpb24gaGFuZGxlQXZhaWxhYmxlSGFzaChoYXNoOiBzdHJpbmcpIHtcbiAgLy8gVXBkYXRlIGxhc3Qga25vd24gY29tcGlsYXRpb24gaGFzaC5cbiAgbW9zdFJlY2VudENvbXBpbGF0aW9uSGFzaCA9IGhhc2hcbn1cblxuLyoqIEhhbmRsZXMgbWVzc2FnZXMgZnJvbSB0aGUgc2V2cmVyIGZvciB0aGUgUGFnZXMgUm91dGVyLiAqL1xuZnVuY3Rpb24gcHJvY2Vzc01lc3NhZ2Uob2JqOiBITVJfQUNUSU9OX1RZUEVTKSB7XG4gIGlmICghKCdhY3Rpb24nIGluIG9iaikpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIFVzZSB0dXJib3BhY2sgbWVzc2FnZSBmb3IgYW5hbHl0aWNzLCAoc3RpbGwgbmVlZCBidWlsdCBmb3Igd2VicGFjaylcbiAgc3dpdGNoIChvYmouYWN0aW9uKSB7XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuQlVJTERJTkc6IHtcbiAgICAgIHN0YXJ0TGF0ZW5jeSA9IERhdGUubm93KClcbiAgICAgIGNvbnNvbGUubG9nKCdbRmFzdCBSZWZyZXNoXSByZWJ1aWxkaW5nJylcbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkJVSUxUOlxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNZTkM6IHtcbiAgICAgIGlmIChvYmouaGFzaCkgaGFuZGxlQXZhaWxhYmxlSGFzaChvYmouaGFzaClcblxuICAgICAgY29uc3QgeyBlcnJvcnMsIHdhcm5pbmdzIH0gPSBvYmpcblxuICAgICAgLy8gSXMgdW5kZWZpbmVkIHdoZW4gaXQncyBhICdidWlsdCcgZXZlbnRcbiAgICAgIGlmICgndmVyc2lvbkluZm8nIGluIG9iaikgb25WZXJzaW9uSW5mbyhvYmoudmVyc2lvbkluZm8pXG5cbiAgICAgIGNvbnN0IGhhc0Vycm9ycyA9IEJvb2xlYW4oZXJyb3JzICYmIGVycm9ycy5sZW5ndGgpXG4gICAgICBpZiAoaGFzRXJyb3JzKSB7XG4gICAgICAgIHNlbmRNZXNzYWdlKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGV2ZW50OiAnY2xpZW50LWVycm9yJyxcbiAgICAgICAgICAgIGVycm9yQ291bnQ6IGVycm9ycy5sZW5ndGgsXG4gICAgICAgICAgICBjbGllbnRJZDogd2luZG93Ll9fbmV4dERldkNsaWVudElkLFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgcmV0dXJuIGhhbmRsZUVycm9ycyhlcnJvcnMpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhc1dhcm5pbmdzID0gQm9vbGVhbih3YXJuaW5ncyAmJiB3YXJuaW5ncy5sZW5ndGgpXG4gICAgICBpZiAoaGFzV2FybmluZ3MpIHtcbiAgICAgICAgc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtd2FybmluZycsXG4gICAgICAgICAgICB3YXJuaW5nQ291bnQ6IHdhcm5pbmdzLmxlbmd0aCxcbiAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gaGFuZGxlV2FybmluZ3Mod2FybmluZ3MpXG4gICAgICB9XG5cbiAgICAgIHNlbmRNZXNzYWdlKFxuICAgICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgZXZlbnQ6ICdjbGllbnQtc3VjY2VzcycsXG4gICAgICAgICAgY2xpZW50SWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIHJldHVybiBoYW5kbGVTdWNjZXNzKClcbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuU0VSVkVSX0NPTVBPTkVOVF9DSEFOR0VTOiB7XG4gICAgICBpZiAoaGFzQ29tcGlsZUVycm9ycyB8fCBSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TRVJWRVJfRVJST1I6IHtcbiAgICAgIGNvbnN0IHsgZXJyb3JKU09OIH0gPSBvYmpcbiAgICAgIGlmIChlcnJvckpTT04pIHtcbiAgICAgICAgY29uc3QgeyBtZXNzYWdlLCBzdGFjayB9ID0gSlNPTi5wYXJzZShlcnJvckpTT04pXG4gICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpXG4gICAgICAgIGVycm9yLnN0YWNrID0gc3RhY2tcbiAgICAgICAgaGFuZGxlRXJyb3JzKFtlcnJvcl0pXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX0NPTk5FQ1RFRDoge1xuICAgICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiB0dXJib3BhY2tNZXNzYWdlTGlzdGVuZXJzKSB7XG4gICAgICAgIGxpc3RlbmVyKHtcbiAgICAgICAgICB0eXBlOiBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX0NPTk5FQ1RFRCxcbiAgICAgICAgICBkYXRhOiBvYmouZGF0YSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlRVUkJPUEFDS19NRVNTQUdFOiB7XG4gICAgICBjb25zdCB1cGRhdGVkTW9kdWxlcyA9IGV4dHJhY3RNb2R1bGVzRnJvbVR1cmJvcGFja01lc3NhZ2Uob2JqLmRhdGEpXG4gICAgICBvbkJlZm9yZUZhc3RSZWZyZXNoKHVwZGF0ZWRNb2R1bGVzKVxuICAgICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiB0dXJib3BhY2tNZXNzYWdlTGlzdGVuZXJzKSB7XG4gICAgICAgIGxpc3RlbmVyKHtcbiAgICAgICAgICB0eXBlOiBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX01FU1NBR0UsXG4gICAgICAgICAgZGF0YTogb2JqLmRhdGEsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBpZiAoUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFJFQUNUX1JFRlJFU0hfRlVMTF9SRUxPQURfRlJPTV9FUlJPUilcbiAgICAgICAgcGVyZm9ybUZ1bGxSZWxvYWQobnVsbClcbiAgICAgIH1cbiAgICAgIG9uUmVmcmVzaCgpXG4gICAgICByZXBvcnRIbXJMYXRlbmN5KHVwZGF0ZWRNb2R1bGVzKVxuICAgICAgYnJlYWtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgaWYgKGN1c3RvbUhtckV2ZW50SGFuZGxlcikge1xuICAgICAgICBjdXN0b21IbXJFdmVudEhhbmRsZXIob2JqKVxuICAgICAgICBicmVha1xuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cblxuLy8gSXMgdGhlcmUgYSBuZXdlciB2ZXJzaW9uIG9mIHRoaXMgY29kZSBhdmFpbGFibGU/XG5mdW5jdGlvbiBpc1VwZGF0ZUF2YWlsYWJsZSgpIHtcbiAgLyogZ2xvYmFscyBfX3dlYnBhY2tfaGFzaF9fICovXG4gIC8vIF9fd2VicGFja19oYXNoX18gaXMgdGhlIGhhc2ggb2YgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24uXG4gIC8vIEl0J3MgYSBnbG9iYWwgdmFyaWFibGUgaW5qZWN0ZWQgYnkgV2VicGFjay5cbiAgcmV0dXJuIG1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2ggIT09IF9fd2VicGFja19oYXNoX19cbn1cblxuLy8gV2VicGFjayBkaXNhbGxvd3MgdXBkYXRlcyBpbiBvdGhlciBzdGF0ZXMuXG5mdW5jdGlvbiBjYW5BcHBseVVwZGF0ZXMoKSB7XG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogbW9kdWxlLmhvdCBleGlzdHMgYnV0IHR5cGUgbmVlZHMgdG8gYmUgYWRkZWQuIENhbid0IHVzZSBgYXMgYW55YCBoZXJlIGFzIHdlYnBhY2sgcGFyc2VzIGZvciBgbW9kdWxlLmhvdGAgY2FsbHMuXG4gIHJldHVybiBtb2R1bGUuaG90LnN0YXR1cygpID09PSAnaWRsZSdcbn1cbmZ1bmN0aW9uIGFmdGVyQXBwbHlVcGRhdGVzKGZuOiAoKSA9PiB2b2lkKSB7XG4gIGlmIChjYW5BcHBseVVwZGF0ZXMoKSkge1xuICAgIGZuKClcbiAgfSBlbHNlIHtcbiAgICBmdW5jdGlvbiBoYW5kbGVyKHN0YXR1czogc3RyaW5nKSB7XG4gICAgICBpZiAoc3RhdHVzID09PSAnaWRsZScpIHtcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBtb2R1bGUuaG90IGV4aXN0cyBidXQgdHlwZSBuZWVkcyB0byBiZSBhZGRlZC4gQ2FuJ3QgdXNlIGBhcyBhbnlgIGhlcmUgYXMgd2VicGFjayBwYXJzZXMgZm9yIGBtb2R1bGUuaG90YCBjYWxscy5cbiAgICAgICAgbW9kdWxlLmhvdC5yZW1vdmVTdGF0dXNIYW5kbGVyKGhhbmRsZXIpXG4gICAgICAgIGZuKClcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBtb2R1bGUuaG90IGV4aXN0cyBidXQgdHlwZSBuZWVkcyB0byBiZSBhZGRlZC4gQ2FuJ3QgdXNlIGBhcyBhbnlgIGhlcmUgYXMgd2VicGFjayBwYXJzZXMgZm9yIGBtb2R1bGUuaG90YCBjYWxscy5cbiAgICBtb2R1bGUuaG90LmFkZFN0YXR1c0hhbmRsZXIoaGFuZGxlcilcbiAgfVxufVxuXG4vLyBBdHRlbXB0IHRvIHVwZGF0ZSBjb2RlIG9uIHRoZSBmbHksIGZhbGwgYmFjayB0byBhIGhhcmQgcmVsb2FkLlxuZnVuY3Rpb24gdHJ5QXBwbHlVcGRhdGVzKFxuICBvbkJlZm9yZUhvdFVwZGF0ZTogKCh1cGRhdGVkTW9kdWxlczogc3RyaW5nW10pID0+IHVua25vd24pIHwgdW5kZWZpbmVkLFxuICBvbkhvdFVwZGF0ZVN1Y2Nlc3M6ICh1cGRhdGVkTW9kdWxlczogc3RyaW5nW10pID0+IHVua25vd25cbikge1xuICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IG1vZHVsZS5ob3QgZXhpc3RzIGJ1dCB0eXBlIG5lZWRzIHRvIGJlIGFkZGVkLiBDYW4ndCB1c2UgYGFzIGFueWAgaGVyZSBhcyB3ZWJwYWNrIHBhcnNlcyBmb3IgYG1vZHVsZS5ob3RgIGNhbGxzLlxuICBpZiAoIW1vZHVsZS5ob3QpIHtcbiAgICAvLyBIb3RNb2R1bGVSZXBsYWNlbWVudFBsdWdpbiBpcyBub3QgaW4gV2VicGFjayBjb25maWd1cmF0aW9uLlxuICAgIGNvbnNvbGUuZXJyb3IoJ0hvdE1vZHVsZVJlcGxhY2VtZW50UGx1Z2luIGlzIG5vdCBpbiBXZWJwYWNrIGNvbmZpZ3VyYXRpb24uJylcbiAgICAvLyB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgcmV0dXJuXG4gIH1cblxuICBpZiAoIWlzVXBkYXRlQXZhaWxhYmxlKCkgfHwgIWNhbkFwcGx5VXBkYXRlcygpKSB7XG4gICAgb25CdWlsZE9rKClcbiAgICByZXR1cm5cbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUFwcGx5VXBkYXRlcyhlcnI6IGFueSwgdXBkYXRlZE1vZHVsZXM6IHN0cmluZ1tdIHwgbnVsbCkge1xuICAgIGlmIChlcnIgfHwgUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IgfHwgIXVwZGF0ZWRNb2R1bGVzKSB7XG4gICAgICBpZiAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnW0Zhc3QgUmVmcmVzaF0gcGVyZm9ybWluZyBmdWxsIHJlbG9hZFxcblxcbicgK1xuICAgICAgICAgICAgXCJGYXN0IFJlZnJlc2ggd2lsbCBwZXJmb3JtIGEgZnVsbCByZWxvYWQgd2hlbiB5b3UgZWRpdCBhIGZpbGUgdGhhdCdzIGltcG9ydGVkIGJ5IG1vZHVsZXMgb3V0c2lkZSBvZiB0aGUgUmVhY3QgcmVuZGVyaW5nIHRyZWUuXFxuXCIgK1xuICAgICAgICAgICAgJ1lvdSBtaWdodCBoYXZlIGEgZmlsZSB3aGljaCBleHBvcnRzIGEgUmVhY3QgY29tcG9uZW50IGJ1dCBhbHNvIGV4cG9ydHMgYSB2YWx1ZSB0aGF0IGlzIGltcG9ydGVkIGJ5IGEgbm9uLVJlYWN0IGNvbXBvbmVudCBmaWxlLlxcbicgK1xuICAgICAgICAgICAgJ0NvbnNpZGVyIG1pZ3JhdGluZyB0aGUgbm9uLVJlYWN0IGNvbXBvbmVudCBleHBvcnQgdG8gYSBzZXBhcmF0ZSBmaWxlIGFuZCBpbXBvcnRpbmcgaXQgaW50byBib3RoIGZpbGVzLlxcblxcbicgK1xuICAgICAgICAgICAgJ0l0IGlzIGFsc28gcG9zc2libGUgdGhlIHBhcmVudCBjb21wb25lbnQgb2YgdGhlIGNvbXBvbmVudCB5b3UgZWRpdGVkIGlzIGEgY2xhc3MgY29tcG9uZW50LCB3aGljaCBkaXNhYmxlcyBGYXN0IFJlZnJlc2guXFxuJyArXG4gICAgICAgICAgICAnRmFzdCBSZWZyZXNoIHJlcXVpcmVzIGF0IGxlYXN0IG9uZSBwYXJlbnQgZnVuY3Rpb24gY29tcG9uZW50IGluIHlvdXIgUmVhY3QgdHJlZS4nXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSBpZiAoUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdbRmFzdCBSZWZyZXNoXSBwZXJmb3JtaW5nIGZ1bGwgcmVsb2FkIGJlY2F1c2UgeW91ciBhcHBsaWNhdGlvbiBoYWQgYW4gdW5yZWNvdmVyYWJsZSBlcnJvcidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcGVyZm9ybUZ1bGxSZWxvYWQoZXJyKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBvbkhvdFVwZGF0ZVN1Y2Nlc3MgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIC8vIE1heWJlIHdlIHdhbnQgdG8gZG8gc29tZXRoaW5nLlxuICAgICAgb25Ib3RVcGRhdGVTdWNjZXNzKHVwZGF0ZWRNb2R1bGVzKVxuICAgIH1cblxuICAgIGlmIChpc1VwZGF0ZUF2YWlsYWJsZSgpKSB7XG4gICAgICAvLyBXaGlsZSB3ZSB3ZXJlIHVwZGF0aW5nLCB0aGVyZSB3YXMgYSBuZXcgdXBkYXRlISBEbyBpdCBhZ2Fpbi5cbiAgICAgIC8vIEhvd2V2ZXIsIHRoaXMgdGltZSwgZG9uJ3QgdHJpZ2dlciBhIHBlbmRpbmcgcmVmcmVzaCBzdGF0ZS5cbiAgICAgIHRyeUFwcGx5VXBkYXRlcyhcbiAgICAgICAgdXBkYXRlZE1vZHVsZXMubGVuZ3RoID4gMCA/IHVuZGVmaW5lZCA6IG9uQmVmb3JlSG90VXBkYXRlLFxuICAgICAgICB1cGRhdGVkTW9kdWxlcy5sZW5ndGggPiAwID8gb25CdWlsZE9rIDogb25Ib3RVcGRhdGVTdWNjZXNzXG4gICAgICApXG4gICAgfSBlbHNlIHtcbiAgICAgIG9uQnVpbGRPaygpXG4gICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1RFU1RfTU9ERSkge1xuICAgICAgICBhZnRlckFwcGx5VXBkYXRlcygoKSA9PiB7XG4gICAgICAgICAgaWYgKHNlbGYuX19ORVhUX0hNUl9DQikge1xuICAgICAgICAgICAgc2VsZi5fX05FWFRfSE1SX0NCKClcbiAgICAgICAgICAgIHNlbGYuX19ORVhUX0hNUl9DQiA9IG51bGxcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gaHR0cHM6Ly93ZWJwYWNrLmpzLm9yZy9hcGkvaG90LW1vZHVsZS1yZXBsYWNlbWVudC8jY2hlY2tcbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBtb2R1bGUuaG90IGV4aXN0cyBidXQgdHlwZSBuZWVkcyB0byBiZSBhZGRlZC4gQ2FuJ3QgdXNlIGBhcyBhbnlgIGhlcmUgYXMgd2VicGFjayBwYXJzZXMgZm9yIGBtb2R1bGUuaG90YCBjYWxscy5cbiAgbW9kdWxlLmhvdFxuICAgIC5jaGVjaygvKiBhdXRvQXBwbHkgKi8gZmFsc2UpXG4gICAgLnRoZW4oKHVwZGF0ZWRNb2R1bGVzOiBhbnkpID0+IHtcbiAgICAgIGlmICghdXBkYXRlZE1vZHVsZXMpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBvbkJlZm9yZUhvdFVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbkJlZm9yZUhvdFVwZGF0ZSh1cGRhdGVkTW9kdWxlcylcbiAgICAgIH1cbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogbW9kdWxlLmhvdCBleGlzdHMgYnV0IHR5cGUgbmVlZHMgdG8gYmUgYWRkZWQuIENhbid0IHVzZSBgYXMgYW55YCBoZXJlIGFzIHdlYnBhY2sgcGFyc2VzIGZvciBgbW9kdWxlLmhvdGAgY2FsbHMuXG4gICAgICByZXR1cm4gbW9kdWxlLmhvdC5hcHBseSgpXG4gICAgfSlcbiAgICAudGhlbihcbiAgICAgICh1cGRhdGVkTW9kdWxlczogYW55KSA9PiB7XG4gICAgICAgIGhhbmRsZUFwcGx5VXBkYXRlcyhudWxsLCB1cGRhdGVkTW9kdWxlcylcbiAgICAgIH0sXG4gICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgaGFuZGxlQXBwbHlVcGRhdGVzKGVyciwgbnVsbClcbiAgICAgIH1cbiAgICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwZXJmb3JtRnVsbFJlbG9hZChlcnI6IGFueSkge1xuICBjb25zdCBzdGFja1RyYWNlID1cbiAgICBlcnIgJiZcbiAgICAoKGVyci5zdGFjayAmJiBlcnIuc3RhY2suc3BsaXQoJ1xcbicpLnNsaWNlKDAsIDUpLmpvaW4oJ1xcbicpKSB8fFxuICAgICAgZXJyLm1lc3NhZ2UgfHxcbiAgICAgIGVyciArICcnKVxuXG4gIHNlbmRNZXNzYWdlKFxuICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGV2ZW50OiAnY2xpZW50LWZ1bGwtcmVsb2FkJyxcbiAgICAgIHN0YWNrVHJhY2UsXG4gICAgICBoYWRSdW50aW1lRXJyb3I6ICEhUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IsXG4gICAgICBkZXBlbmRlbmN5Q2hhaW46IGVyciA/IGVyci5kZXBlbmRlbmN5Q2hhaW4gOiB1bmRlZmluZWQsXG4gICAgfSlcbiAgKVxuXG4gIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxufVxuIl0sIm5hbWVzIjpbImNvbm5lY3QiLCJwZXJmb3JtRnVsbFJlbG9hZCIsIndpbmRvdyIsIl9fbmV4dERldkNsaWVudElkIiwiTWF0aCIsInJvdW5kIiwicmFuZG9tIiwiRGF0ZSIsIm5vdyIsImN1c3RvbUhtckV2ZW50SGFuZGxlciIsInR1cmJvcGFja01lc3NhZ2VMaXN0ZW5lcnMiLCJNT0RFIiwibW9kZSIsInJlZ2lzdGVyIiwiYWRkTWVzc2FnZUxpc3RlbmVyIiwicGF5bG9hZCIsInByb2Nlc3NNZXNzYWdlIiwiZXJyIiwiY29uc29sZSIsIndhcm4iLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhY2siLCJzdWJzY3JpYmVUb0htckV2ZW50IiwiaGFuZGxlciIsIm9uVW5yZWNvdmVyYWJsZUVycm9yIiwiUnVudGltZUVycm9ySGFuZGxlciIsImhhZFJ1bnRpbWVFcnJvciIsImFkZFR1cmJvcGFja01lc3NhZ2VMaXN0ZW5lciIsImNiIiwicHVzaCIsInNlbmRUdXJib3BhY2tNZXNzYWdlIiwibXNnIiwic2VuZE1lc3NhZ2UiLCJoYW5kbGVVcGRhdGVFcnJvciIsImlzRmlyc3RDb21waWxhdGlvbiIsIm1vc3RSZWNlbnRDb21waWxhdGlvbkhhc2giLCJoYXNDb21waWxlRXJyb3JzIiwiY2xlYXJPdXRkYXRlZEVycm9ycyIsImNsZWFyIiwiaGFuZGxlU3VjY2VzcyIsImlzSG90VXBkYXRlIiwiX19ORVhUX0RBVEFfXyIsInBhZ2UiLCJpc1VwZGF0ZUF2YWlsYWJsZSIsInRyeUFwcGx5VXBkYXRlcyIsIm9uQmVmb3JlRmFzdFJlZnJlc2giLCJvbkZhc3RSZWZyZXNoIiwib25CdWlsZE9rIiwiaGFuZGxlV2FybmluZ3MiLCJ3YXJuaW5ncyIsInByaW50V2FybmluZ3MiLCJmb3JtYXR0ZWQiLCJmb3JtYXRXZWJwYWNrTWVzc2FnZXMiLCJlcnJvcnMiLCJpIiwibGVuZ3RoIiwic3RyaXBBbnNpIiwiaGFuZGxlRXJyb3JzIiwib25CdWlsZEVycm9yIiwiZXJyb3IiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1RFU1RfTU9ERSIsInNlbGYiLCJfX05FWFRfSE1SX0NCIiwic3RhcnRMYXRlbmN5IiwidW5kZWZpbmVkIiwidXBkYXRlZE1vZHVsZXMiLCJvbkJlZm9yZVJlZnJlc2giLCJvblJlZnJlc2giLCJyZXBvcnRIbXJMYXRlbmN5IiwiZW5kTGF0ZW5jeSIsImxhdGVuY3kiLCJsb2ciLCJldmVudCIsImlkIiwic3RhcnRUaW1lIiwiZW5kVGltZSIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJpc1BhZ2VIaWRkZW4iLCJkb2N1bWVudCIsInZpc2liaWxpdHlTdGF0ZSIsIl9fTkVYVF9ITVJfTEFURU5DWV9DQiIsImhhbmRsZUF2YWlsYWJsZUhhc2giLCJoYXNoIiwib2JqIiwiYWN0aW9uIiwiSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSIiwiQlVJTERJTkciLCJCVUlMVCIsIlNZTkMiLCJvblZlcnNpb25JbmZvIiwidmVyc2lvbkluZm8iLCJoYXNFcnJvcnMiLCJCb29sZWFuIiwiZXJyb3JDb3VudCIsImNsaWVudElkIiwiaGFzV2FybmluZ3MiLCJ3YXJuaW5nQ291bnQiLCJTRVJWRVJfQ09NUE9ORU5UX0NIQU5HRVMiLCJyZWxvYWQiLCJTRVJWRVJfRVJST1IiLCJlcnJvckpTT04iLCJtZXNzYWdlIiwicGFyc2UiLCJFcnJvciIsIlRVUkJPUEFDS19DT05ORUNURUQiLCJsaXN0ZW5lciIsInR5cGUiLCJkYXRhIiwiVFVSQk9QQUNLX01FU1NBR0UiLCJleHRyYWN0TW9kdWxlc0Zyb21UdXJib3BhY2tNZXNzYWdlIiwiUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SIiwiX193ZWJwYWNrX2hhc2hfXyIsImNhbkFwcGx5VXBkYXRlcyIsIm1vZHVsZSIsImhvdCIsInN0YXR1cyIsImFmdGVyQXBwbHlVcGRhdGVzIiwiZm4iLCJyZW1vdmVTdGF0dXNIYW5kbGVyIiwiYWRkU3RhdHVzSGFuZGxlciIsIm9uQmVmb3JlSG90VXBkYXRlIiwib25Ib3RVcGRhdGVTdWNjZXNzIiwiaGFuZGxlQXBwbHlVcGRhdGVzIiwiY2hlY2siLCJ0aGVuIiwiYXBwbHkiLCJzdGFja1RyYWNlIiwic3BsaXQiLCJzbGljZSIsImpvaW4iLCJkZXBlbmRlbmN5Q2hhaW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/pages/hot-reloader-client.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/pages/websocket.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/pages/websocket.js ***! + \***************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n addMessageListener: function() {\n return addMessageListener;\n },\n connectHMR: function() {\n return connectHMR;\n },\n sendMessage: function() {\n return sendMessage;\n }\n});\nconst _hotreloadertypes = __webpack_require__(/*! ../../../../server/dev/hot-reloader-types */ \"./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nconst _getsocketurl = __webpack_require__(/*! ../internal/helpers/get-socket-url */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-socket-url.js\");\nlet source;\nconst eventCallbacks = [];\nfunction addMessageListener(callback) {\n eventCallbacks.push(callback);\n}\nfunction sendMessage(data) {\n if (!source || source.readyState !== source.OPEN) return;\n return source.send(data);\n}\nlet reconnections = 0;\nlet reloading = false;\nlet serverSessionId = null;\nfunction connectHMR(options) {\n function init() {\n if (source) source.close();\n function handleOnline() {\n reconnections = 0;\n window.console.log('[HMR] connected');\n }\n function handleMessage(event) {\n // While the page is reloading, don't respond to any more messages.\n // On reconnect, the server may send an empty list of changes if it was restarted.\n if (reloading) {\n return;\n }\n // Coerce into HMR_ACTION_TYPES as that is the format.\n const msg = JSON.parse(event.data);\n if ('action' in msg && msg.action === _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED) {\n if (serverSessionId !== null && serverSessionId !== msg.data.sessionId) {\n // Either the server's session id has changed and it's a new server, or\n // it's been too long since we disconnected and we should reload the page.\n // There could be 1) unhandled server errors and/or 2) stale content.\n // Perform a hard reload of the page.\n window.location.reload();\n reloading = true;\n return;\n }\n serverSessionId = msg.data.sessionId;\n }\n for (const eventCallback of eventCallbacks){\n eventCallback(msg);\n }\n }\n let timer;\n function handleDisconnect() {\n source.onerror = null;\n source.onclose = null;\n source.close();\n reconnections++;\n // After 25 reconnects we'll want to reload the page as it indicates the dev server is no longer running.\n if (reconnections > 25) {\n reloading = true;\n window.location.reload();\n return;\n }\n clearTimeout(timer);\n // Try again after 5 seconds\n timer = setTimeout(init, reconnections > 5 ? 5000 : 1000);\n }\n const url = (0, _getsocketurl.getSocketUrl)(options.assetPrefix);\n source = new window.WebSocket(\"\" + url + options.path);\n source.onopen = handleOnline;\n source.onerror = handleDisconnect;\n source.onclose = handleDisconnect;\n source.onmessage = handleMessage;\n }\n init();\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=websocket.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL3dlYnNvY2tldC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFZZ0JBLGtCQUFrQjtlQUFsQkE7O0lBYUFDLFVBQVU7ZUFBVkE7O0lBVEFDLFdBQVc7ZUFBWEE7Ozs4Q0FiVDswQ0FDc0I7QUFFN0IsSUFBSUM7QUFJSixNQUFNQyxpQkFBd0MsRUFBRTtBQUV6QyxTQUFTSixtQkFBbUJLLFFBQXdCO0lBQ3pERCxlQUFlRSxJQUFJLENBQUNEO0FBQ3RCO0FBRU8sU0FBU0gsWUFBWUssSUFBWTtJQUN0QyxJQUFJLENBQUNKLFVBQVVBLE9BQU9LLFVBQVUsS0FBS0wsT0FBT00sSUFBSSxFQUFFO0lBQ2xELE9BQU9OLE9BQU9PLElBQUksQ0FBQ0g7QUFDckI7QUFFQSxJQUFJSSxnQkFBZ0I7QUFDcEIsSUFBSUMsWUFBWTtBQUNoQixJQUFJQyxrQkFBaUM7QUFFOUIsU0FBU1osV0FBV2EsT0FBOEM7SUFDdkUsU0FBU0M7UUFDUCxJQUFJWixRQUFRQSxPQUFPYSxLQUFLO1FBRXhCLFNBQVNDO1lBQ1BOLGdCQUFnQjtZQUNoQk8sT0FBT0MsT0FBTyxDQUFDQyxHQUFHLENBQUM7UUFDckI7UUFFQSxTQUFTQyxjQUFjQyxLQUEyQjtZQUNoRCxtRUFBbUU7WUFDbkUsa0ZBQWtGO1lBQ2xGLElBQUlWLFdBQVc7Z0JBQ2I7WUFDRjtZQUVBLHNEQUFzRDtZQUN0RCxNQUFNVyxNQUF3QkMsS0FBS0MsS0FBSyxDQUFDSCxNQUFNZixJQUFJO1lBRW5ELElBQ0UsWUFBWWdCLE9BQ1pBLElBQUlHLE1BQU0sS0FBS0Msa0JBQUFBLDJCQUEyQixDQUFDQyxtQkFBbUIsRUFDOUQ7Z0JBQ0EsSUFDRWYsb0JBQW9CLFFBQ3BCQSxvQkFBb0JVLElBQUloQixJQUFJLENBQUNzQixTQUFTLEVBQ3RDO29CQUNBLHVFQUF1RTtvQkFDdkUsMEVBQTBFO29CQUMxRSxxRUFBcUU7b0JBQ3JFLHFDQUFxQztvQkFDckNYLE9BQU9ZLFFBQVEsQ0FBQ0MsTUFBTTtvQkFFdEJuQixZQUFZO29CQUNaO2dCQUNGO2dCQUVBQyxrQkFBa0JVLElBQUloQixJQUFJLENBQUNzQixTQUFTO1lBQ3RDO1lBRUEsS0FBSyxNQUFNRyxpQkFBaUI1QixlQUFnQjtnQkFDMUM0QixjQUFjVDtZQUNoQjtRQUNGO1FBRUEsSUFBSVU7UUFDSixTQUFTQztZQUNQL0IsT0FBT2dDLE9BQU8sR0FBRztZQUNqQmhDLE9BQU9pQyxPQUFPLEdBQUc7WUFDakJqQyxPQUFPYSxLQUFLO1lBQ1pMO1lBQ0EseUdBQXlHO1lBQ3pHLElBQUlBLGdCQUFnQixJQUFJO2dCQUN0QkMsWUFBWTtnQkFDWk0sT0FBT1ksUUFBUSxDQUFDQyxNQUFNO2dCQUN0QjtZQUNGO1lBRUFNLGFBQWFKO1lBQ2IsNEJBQTRCO1lBQzVCQSxRQUFRSyxXQUFXdkIsTUFBTUosZ0JBQWdCLElBQUksT0FBTztRQUN0RDtRQUVBLE1BQU00QixNQUFNQyxDQUFBQSxHQUFBQSxjQUFBQSxZQUFBQSxFQUFhMUIsUUFBUTJCLFdBQVc7UUFFNUN0QyxTQUFTLElBQUllLE9BQU93QixTQUFTLENBQUUsS0FBRUgsTUFBTXpCLFFBQVE2QixJQUFJO1FBQ25EeEMsT0FBT3lDLE1BQU0sR0FBRzNCO1FBQ2hCZCxPQUFPZ0MsT0FBTyxHQUFHRDtRQUNqQi9CLE9BQU9pQyxPQUFPLEdBQUdGO1FBQ2pCL0IsT0FBTzBDLFNBQVMsR0FBR3hCO0lBQ3JCO0lBRUFOO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL3dlYnNvY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIsXG4gIHR5cGUgSE1SX0FDVElPTl9UWVBFUyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5pbXBvcnQgeyBnZXRTb2NrZXRVcmwgfSBmcm9tICcuLi9pbnRlcm5hbC9oZWxwZXJzL2dldC1zb2NrZXQtdXJsJ1xuXG5sZXQgc291cmNlOiBXZWJTb2NrZXRcblxudHlwZSBBY3Rpb25DYWxsYmFjayA9IChhY3Rpb246IEhNUl9BQ1RJT05fVFlQRVMpID0+IHZvaWRcblxuY29uc3QgZXZlbnRDYWxsYmFja3M6IEFycmF5PEFjdGlvbkNhbGxiYWNrPiA9IFtdXG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRNZXNzYWdlTGlzdGVuZXIoY2FsbGJhY2s6IEFjdGlvbkNhbGxiYWNrKSB7XG4gIGV2ZW50Q2FsbGJhY2tzLnB1c2goY2FsbGJhY2spXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZW5kTWVzc2FnZShkYXRhOiBzdHJpbmcpIHtcbiAgaWYgKCFzb3VyY2UgfHwgc291cmNlLnJlYWR5U3RhdGUgIT09IHNvdXJjZS5PUEVOKSByZXR1cm5cbiAgcmV0dXJuIHNvdXJjZS5zZW5kKGRhdGEpXG59XG5cbmxldCByZWNvbm5lY3Rpb25zID0gMFxubGV0IHJlbG9hZGluZyA9IGZhbHNlXG5sZXQgc2VydmVyU2Vzc2lvbklkOiBudW1iZXIgfCBudWxsID0gbnVsbFxuXG5leHBvcnQgZnVuY3Rpb24gY29ubmVjdEhNUihvcHRpb25zOiB7IHBhdGg6IHN0cmluZzsgYXNzZXRQcmVmaXg6IHN0cmluZyB9KSB7XG4gIGZ1bmN0aW9uIGluaXQoKSB7XG4gICAgaWYgKHNvdXJjZSkgc291cmNlLmNsb3NlKClcblxuICAgIGZ1bmN0aW9uIGhhbmRsZU9ubGluZSgpIHtcbiAgICAgIHJlY29ubmVjdGlvbnMgPSAwXG4gICAgICB3aW5kb3cuY29uc29sZS5sb2coJ1tITVJdIGNvbm5lY3RlZCcpXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFuZGxlTWVzc2FnZShldmVudDogTWVzc2FnZUV2ZW50PHN0cmluZz4pIHtcbiAgICAgIC8vIFdoaWxlIHRoZSBwYWdlIGlzIHJlbG9hZGluZywgZG9uJ3QgcmVzcG9uZCB0byBhbnkgbW9yZSBtZXNzYWdlcy5cbiAgICAgIC8vIE9uIHJlY29ubmVjdCwgdGhlIHNlcnZlciBtYXkgc2VuZCBhbiBlbXB0eSBsaXN0IG9mIGNoYW5nZXMgaWYgaXQgd2FzIHJlc3RhcnRlZC5cbiAgICAgIGlmIChyZWxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIENvZXJjZSBpbnRvIEhNUl9BQ1RJT05fVFlQRVMgYXMgdGhhdCBpcyB0aGUgZm9ybWF0LlxuICAgICAgY29uc3QgbXNnOiBITVJfQUNUSU9OX1RZUEVTID0gSlNPTi5wYXJzZShldmVudC5kYXRhKVxuXG4gICAgICBpZiAoXG4gICAgICAgICdhY3Rpb24nIGluIG1zZyAmJlxuICAgICAgICBtc2cuYWN0aW9uID09PSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuVFVSQk9QQUNLX0NPTk5FQ1RFRFxuICAgICAgKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBzZXJ2ZXJTZXNzaW9uSWQgIT09IG51bGwgJiZcbiAgICAgICAgICBzZXJ2ZXJTZXNzaW9uSWQgIT09IG1zZy5kYXRhLnNlc3Npb25JZFxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBFaXRoZXIgdGhlIHNlcnZlcidzIHNlc3Npb24gaWQgaGFzIGNoYW5nZWQgYW5kIGl0J3MgYSBuZXcgc2VydmVyLCBvclxuICAgICAgICAgIC8vIGl0J3MgYmVlbiB0b28gbG9uZyBzaW5jZSB3ZSBkaXNjb25uZWN0ZWQgYW5kIHdlIHNob3VsZCByZWxvYWQgdGhlIHBhZ2UuXG4gICAgICAgICAgLy8gVGhlcmUgY291bGQgYmUgMSkgdW5oYW5kbGVkIHNlcnZlciBlcnJvcnMgYW5kL29yIDIpIHN0YWxlIGNvbnRlbnQuXG4gICAgICAgICAgLy8gUGVyZm9ybSBhIGhhcmQgcmVsb2FkIG9mIHRoZSBwYWdlLlxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuXG4gICAgICAgICAgcmVsb2FkaW5nID0gdHJ1ZVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgc2VydmVyU2Vzc2lvbklkID0gbXNnLmRhdGEuc2Vzc2lvbklkXG4gICAgICB9XG5cbiAgICAgIGZvciAoY29uc3QgZXZlbnRDYWxsYmFjayBvZiBldmVudENhbGxiYWNrcykge1xuICAgICAgICBldmVudENhbGxiYWNrKG1zZylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgdGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+XG4gICAgZnVuY3Rpb24gaGFuZGxlRGlzY29ubmVjdCgpIHtcbiAgICAgIHNvdXJjZS5vbmVycm9yID0gbnVsbFxuICAgICAgc291cmNlLm9uY2xvc2UgPSBudWxsXG4gICAgICBzb3VyY2UuY2xvc2UoKVxuICAgICAgcmVjb25uZWN0aW9ucysrXG4gICAgICAvLyBBZnRlciAyNSByZWNvbm5lY3RzIHdlJ2xsIHdhbnQgdG8gcmVsb2FkIHRoZSBwYWdlIGFzIGl0IGluZGljYXRlcyB0aGUgZGV2IHNlcnZlciBpcyBubyBsb25nZXIgcnVubmluZy5cbiAgICAgIGlmIChyZWNvbm5lY3Rpb25zID4gMjUpIHtcbiAgICAgICAgcmVsb2FkaW5nID0gdHJ1ZVxuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGNsZWFyVGltZW91dCh0aW1lcilcbiAgICAgIC8vIFRyeSBhZ2FpbiBhZnRlciA1IHNlY29uZHNcbiAgICAgIHRpbWVyID0gc2V0VGltZW91dChpbml0LCByZWNvbm5lY3Rpb25zID4gNSA/IDUwMDAgOiAxMDAwKVxuICAgIH1cblxuICAgIGNvbnN0IHVybCA9IGdldFNvY2tldFVybChvcHRpb25zLmFzc2V0UHJlZml4KVxuXG4gICAgc291cmNlID0gbmV3IHdpbmRvdy5XZWJTb2NrZXQoYCR7dXJsfSR7b3B0aW9ucy5wYXRofWApXG4gICAgc291cmNlLm9ub3BlbiA9IGhhbmRsZU9ubGluZVxuICAgIHNvdXJjZS5vbmVycm9yID0gaGFuZGxlRGlzY29ubmVjdFxuICAgIHNvdXJjZS5vbmNsb3NlID0gaGFuZGxlRGlzY29ubmVjdFxuICAgIHNvdXJjZS5vbm1lc3NhZ2UgPSBoYW5kbGVNZXNzYWdlXG4gIH1cblxuICBpbml0KClcbn1cbiJdLCJuYW1lcyI6WyJhZGRNZXNzYWdlTGlzdGVuZXIiLCJjb25uZWN0SE1SIiwic2VuZE1lc3NhZ2UiLCJzb3VyY2UiLCJldmVudENhbGxiYWNrcyIsImNhbGxiYWNrIiwicHVzaCIsImRhdGEiLCJyZWFkeVN0YXRlIiwiT1BFTiIsInNlbmQiLCJyZWNvbm5lY3Rpb25zIiwicmVsb2FkaW5nIiwic2VydmVyU2Vzc2lvbklkIiwib3B0aW9ucyIsImluaXQiLCJjbG9zZSIsImhhbmRsZU9ubGluZSIsIndpbmRvdyIsImNvbnNvbGUiLCJsb2ciLCJoYW5kbGVNZXNzYWdlIiwiZXZlbnQiLCJtc2ciLCJKU09OIiwicGFyc2UiLCJhY3Rpb24iLCJITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIiLCJUVVJCT1BBQ0tfQ09OTkVDVEVEIiwic2Vzc2lvbklkIiwibG9jYXRpb24iLCJyZWxvYWQiLCJldmVudENhbGxiYWNrIiwidGltZXIiLCJoYW5kbGVEaXNjb25uZWN0Iiwib25lcnJvciIsIm9uY2xvc2UiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwidXJsIiwiZ2V0U29ja2V0VXJsIiwiYXNzZXRQcmVmaXgiLCJXZWJTb2NrZXQiLCJwYXRoIiwib25vcGVuIiwib25tZXNzYWdlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/pages/websocket.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/react-dev-overlay/shared.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/react-dev-overlay/shared.js ***! + \******************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_BEFORE_REFRESH: function() {\n return ACTION_BEFORE_REFRESH;\n },\n ACTION_BUILD_ERROR: function() {\n return ACTION_BUILD_ERROR;\n },\n ACTION_BUILD_OK: function() {\n return ACTION_BUILD_OK;\n },\n ACTION_DEBUG_INFO: function() {\n return ACTION_DEBUG_INFO;\n },\n ACTION_REFRESH: function() {\n return ACTION_REFRESH;\n },\n ACTION_STATIC_INDICATOR: function() {\n return ACTION_STATIC_INDICATOR;\n },\n ACTION_UNHANDLED_ERROR: function() {\n return ACTION_UNHANDLED_ERROR;\n },\n ACTION_UNHANDLED_REJECTION: function() {\n return ACTION_UNHANDLED_REJECTION;\n },\n ACTION_VERSION_INFO: function() {\n return ACTION_VERSION_INFO;\n },\n INITIAL_OVERLAY_STATE: function() {\n return INITIAL_OVERLAY_STATE;\n },\n REACT_REFRESH_FULL_RELOAD_FROM_ERROR: function() {\n return REACT_REFRESH_FULL_RELOAD_FROM_ERROR;\n },\n useErrorOverlayReducer: function() {\n return useErrorOverlayReducer;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nconst ACTION_STATIC_INDICATOR = 'static-indicator';\nconst ACTION_BUILD_OK = 'build-ok';\nconst ACTION_BUILD_ERROR = 'build-error';\nconst ACTION_BEFORE_REFRESH = 'before-fast-refresh';\nconst ACTION_REFRESH = 'fast-refresh';\nconst ACTION_VERSION_INFO = 'version-info';\nconst ACTION_UNHANDLED_ERROR = 'unhandled-error';\nconst ACTION_UNHANDLED_REJECTION = 'unhandled-rejection';\nconst ACTION_DEBUG_INFO = 'debug-info';\nfunction pushErrorFilterDuplicates(errors, err) {\n return [\n ...errors.filter((e)=>{\n // Filter out duplicate errors\n return e.event.reason !== err.event.reason;\n }),\n err\n ];\n}\nconst INITIAL_OVERLAY_STATE = {\n nextId: 1,\n buildError: null,\n errors: [],\n notFound: false,\n staticIndicator: false,\n refreshState: {\n type: 'idle'\n },\n rootLayoutMissingTags: [],\n versionInfo: {\n installed: '0.0.0',\n staleness: 'unknown'\n },\n debugInfo: undefined\n};\nfunction useErrorOverlayReducer() {\n return (0, _react.useReducer)((_state, action)=>{\n switch(action.type){\n case ACTION_DEBUG_INFO:\n {\n return {\n ..._state,\n debugInfo: action.debugInfo\n };\n }\n case ACTION_STATIC_INDICATOR:\n {\n return {\n ..._state,\n staticIndicator: action.staticIndicator\n };\n }\n case ACTION_BUILD_OK:\n {\n return {\n ..._state,\n buildError: null\n };\n }\n case ACTION_BUILD_ERROR:\n {\n return {\n ..._state,\n buildError: action.message\n };\n }\n case ACTION_BEFORE_REFRESH:\n {\n return {\n ..._state,\n refreshState: {\n type: 'pending',\n errors: []\n }\n };\n }\n case ACTION_REFRESH:\n {\n return {\n ..._state,\n buildError: null,\n errors: // and UNHANDLED_REJECTION events might be dispatched between the\n // BEFORE_REFRESH and the REFRESH event. We want to keep those errors\n // around until the next refresh. Otherwise we run into a race\n // condition where those errors would be cleared on refresh completion\n // before they can be displayed.\n _state.refreshState.type === 'pending' ? _state.refreshState.errors : [],\n refreshState: {\n type: 'idle'\n }\n };\n }\n case ACTION_UNHANDLED_ERROR:\n case ACTION_UNHANDLED_REJECTION:\n {\n switch(_state.refreshState.type){\n case 'idle':\n {\n return {\n ..._state,\n nextId: _state.nextId + 1,\n errors: pushErrorFilterDuplicates(_state.errors, {\n id: _state.nextId,\n event: action\n })\n };\n }\n case 'pending':\n {\n return {\n ..._state,\n nextId: _state.nextId + 1,\n refreshState: {\n ..._state.refreshState,\n errors: pushErrorFilterDuplicates(_state.refreshState.errors, {\n id: _state.nextId,\n event: action\n })\n }\n };\n }\n default:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = _state.refreshState;\n return _state;\n }\n }\n case ACTION_VERSION_INFO:\n {\n return {\n ..._state,\n versionInfo: action.versionInfo\n };\n }\n default:\n {\n return _state;\n }\n }\n }, INITIAL_OVERLAY_STATE);\n}\nconst REACT_REFRESH_FULL_RELOAD_FROM_ERROR = '[Fast Refresh] performing full reload because your application had an unrecoverable error';\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=shared.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3NoYXJlZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE2QmFBLHFCQUFxQjtlQUFyQkE7O0lBREFDLGtCQUFrQjtlQUFsQkE7O0lBREFDLGVBQWU7ZUFBZkE7O0lBT0FDLGlCQUFpQjtlQUFqQkE7O0lBSkFDLGNBQWM7ZUFBZEE7O0lBSkFDLHVCQUF1QjtlQUF2QkE7O0lBTUFDLHNCQUFzQjtlQUF0QkE7O0lBQ0FDLDBCQUEwQjtlQUExQkE7O0lBRkFDLG1CQUFtQjtlQUFuQkE7O0lBdUVBQyxxQkFBcUI7ZUFBckJBOztJQXlGQUMsb0NBQW9DO2VBQXBDQTs7SUE3RUdDLHNCQUFzQjtlQUF0QkE7OzttQ0FsSFc7QUEwQnBCLE1BQU1OLDBCQUEwQjtBQUNoQyxNQUFNSCxrQkFBa0I7QUFDeEIsTUFBTUQscUJBQXFCO0FBQzNCLE1BQU1ELHdCQUF3QjtBQUM5QixNQUFNSSxpQkFBaUI7QUFDdkIsTUFBTUksc0JBQXNCO0FBQzVCLE1BQU1GLHlCQUF5QjtBQUMvQixNQUFNQyw2QkFBNkI7QUFDbkMsTUFBTUosb0JBQW9CO0FBdURqQyxTQUFTUywwQkFDUEMsTUFBNkIsRUFDN0JDLEdBQXdCO0lBRXhCLE9BQU87V0FDRkQsT0FBT0UsTUFBTSxDQUFDLENBQUNDO1lBQ2hCLDhCQUE4QjtZQUM5QixPQUFPQSxFQUFFQyxLQUFLLENBQUNDLE1BQU0sS0FBS0osSUFBSUcsS0FBSyxDQUFDQyxNQUFNO1FBQzVDO1FBQ0FKO0tBQ0Q7QUFDSDtBQUVPLE1BQU1MLHdCQUFzQztJQUNqRFUsUUFBUTtJQUNSQyxZQUFZO0lBQ1pQLFFBQVEsRUFBRTtJQUNWUSxVQUFVO0lBQ1ZDLGlCQUFpQjtJQUNqQkMsY0FBYztRQUFFQyxNQUFNO0lBQU87SUFDN0JDLHVCQUF1QixFQUFFO0lBQ3pCQyxhQUFhO1FBQUVDLFdBQVc7UUFBU0MsV0FBVztJQUFVO0lBQ3hEQyxXQUFXQztBQUNiO0FBRU8sU0FBU25CO0lBQ2QsT0FBT29CLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVcsQ0FBQ0MsUUFBc0JDO1FBQ3ZDLE9BQVFBLE9BQU9ULElBQUk7WUFDakIsS0FBS3JCO2dCQUFtQjtvQkFDdEIsT0FBTzt3QkFBRSxHQUFHNkIsTUFBTTt3QkFBRUgsV0FBV0ksT0FBT0osU0FBUztvQkFBQztnQkFDbEQ7WUFDQSxLQUFLeEI7Z0JBQXlCO29CQUM1QixPQUFPO3dCQUFFLEdBQUcyQixNQUFNO3dCQUFFVixpQkFBaUJXLE9BQU9YLGVBQWU7b0JBQUM7Z0JBQzlEO1lBQ0EsS0FBS3BCO2dCQUFpQjtvQkFDcEIsT0FBTzt3QkFBRSxHQUFHOEIsTUFBTTt3QkFBRVosWUFBWTtvQkFBSztnQkFDdkM7WUFDQSxLQUFLbkI7Z0JBQW9CO29CQUN2QixPQUFPO3dCQUFFLEdBQUcrQixNQUFNO3dCQUFFWixZQUFZYSxPQUFPQyxPQUFPO29CQUFDO2dCQUNqRDtZQUNBLEtBQUtsQztnQkFBdUI7b0JBQzFCLE9BQU87d0JBQUUsR0FBR2dDLE1BQU07d0JBQUVULGNBQWM7NEJBQUVDLE1BQU07NEJBQVdYLFFBQVEsRUFBRTt3QkFBQztvQkFBRTtnQkFDcEU7WUFDQSxLQUFLVDtnQkFBZ0I7b0JBQ25CLE9BQU87d0JBQ0wsR0FBRzRCLE1BQU07d0JBQ1RaLFlBQVk7d0JBQ1pQLFFBQ0UsaUVBQ2lFO3dCQUNqRSxxRUFBcUU7d0JBQ3JFLDhEQUE4RDt3QkFDOUQsc0VBQXNFO3dCQUN0RSxnQ0FBZ0M7d0JBQ2hDbUIsT0FBT1QsWUFBWSxDQUFDQyxJQUFJLEtBQUssWUFDekJRLE9BQU9ULFlBQVksQ0FBQ1YsTUFBTSxHQUMxQixFQUFFO3dCQUNSVSxjQUFjOzRCQUFFQyxNQUFNO3dCQUFPO29CQUMvQjtnQkFDRjtZQUNBLEtBQUtsQjtZQUNMLEtBQUtDO2dCQUE0QjtvQkFDL0IsT0FBUXlCLE9BQU9ULFlBQVksQ0FBQ0MsSUFBSTt3QkFDOUIsS0FBSzs0QkFBUTtnQ0FDWCxPQUFPO29DQUNMLEdBQUdRLE1BQU07b0NBQ1RiLFFBQVFhLE9BQU9iLE1BQU0sR0FBRztvQ0FDeEJOLFFBQVFELDBCQUEwQm9CLE9BQU9uQixNQUFNLEVBQUU7d0NBQy9Dc0IsSUFBSUgsT0FBT2IsTUFBTTt3Q0FDakJGLE9BQU9nQjtvQ0FDVDtnQ0FDRjs0QkFDRjt3QkFDQSxLQUFLOzRCQUFXO2dDQUNkLE9BQU87b0NBQ0wsR0FBR0QsTUFBTTtvQ0FDVGIsUUFBUWEsT0FBT2IsTUFBTSxHQUFHO29DQUN4QkksY0FBYzt3Q0FDWixHQUFHUyxPQUFPVCxZQUFZO3dDQUN0QlYsUUFBUUQsMEJBQTBCb0IsT0FBT1QsWUFBWSxDQUFDVixNQUFNLEVBQUU7NENBQzVEc0IsSUFBSUgsT0FBT2IsTUFBTTs0Q0FDakJGLE9BQU9nQjt3Q0FDVDtvQ0FDRjtnQ0FDRjs0QkFDRjt3QkFDQTs0QkFDRSw2REFBNkQ7NEJBQzdELE1BQU1HLElBQVdKLE9BQU9ULFlBQVk7NEJBQ3BDLE9BQU9TO29CQUNYO2dCQUNGO1lBQ0EsS0FBS3hCO2dCQUFxQjtvQkFDeEIsT0FBTzt3QkFBRSxHQUFHd0IsTUFBTTt3QkFBRU4sYUFBYU8sT0FBT1AsV0FBVztvQkFBQztnQkFDdEQ7WUFDQTtnQkFBUztvQkFDUCxPQUFPTTtnQkFDVDtRQUNGO0lBQ0YsR0FBR3ZCO0FBQ0w7QUFFTyxNQUFNQyx1Q0FDWCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3NoYXJlZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VSZWR1Y2VyIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgU3RhY2tGcmFtZSB9IGZyb20gJ25leHQvZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlcidcbmltcG9ydCB0eXBlIHsgVmVyc2lvbkluZm8gfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvZGV2L3BhcnNlLXZlcnNpb24taW5mbydcbmltcG9ydCB0eXBlIHsgU3VwcG9ydGVkRXJyb3JFdmVudCB9IGZyb20gJy4vaW50ZXJuYWwvY29udGFpbmVyL0Vycm9ycydcbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50U3RhY2tGcmFtZSB9IGZyb20gJy4vaW50ZXJuYWwvaGVscGVycy9wYXJzZS1jb21wb25lbnQtc3RhY2snXG5pbXBvcnQgdHlwZSB7IERlYnVnSW5mbyB9IGZyb20gJy4vdHlwZXMnXG5cbnR5cGUgRmFzdFJlZnJlc2hTdGF0ZSA9XG4gIC8qKiBObyByZWZyZXNoIGluIHByb2dyZXNzLiAqL1xuICB8IHsgdHlwZTogJ2lkbGUnIH1cbiAgLyoqIFRoZSByZWZyZXNoIHByb2Nlc3MgaGFzIGJlZW4gdHJpZ2dlcmVkLCBidXQgdGhlIG5ldyBjb2RlIGhhcyBub3QgYmVlbiBleGVjdXRlZCB5ZXQuICovXG4gIHwgeyB0eXBlOiAncGVuZGluZyc7IGVycm9yczogU3VwcG9ydGVkRXJyb3JFdmVudFtdIH1cblxuZXhwb3J0IGludGVyZmFjZSBPdmVybGF5U3RhdGUge1xuICBuZXh0SWQ6IG51bWJlclxuICBidWlsZEVycm9yOiBzdHJpbmcgfCBudWxsXG4gIGVycm9yczogU3VwcG9ydGVkRXJyb3JFdmVudFtdXG4gIHJlZnJlc2hTdGF0ZTogRmFzdFJlZnJlc2hTdGF0ZVxuICByb290TGF5b3V0TWlzc2luZ1RhZ3M6IHR5cGVvZiB3aW5kb3cuX19uZXh0X3Jvb3RfbGF5b3V0X21pc3NpbmdfdGFnc1xuICB2ZXJzaW9uSW5mbzogVmVyc2lvbkluZm9cbiAgbm90Rm91bmQ6IGJvb2xlYW5cbiAgc3RhdGljSW5kaWNhdG9yOiBib29sZWFuXG4gIGRlYnVnSW5mbzogRGVidWdJbmZvIHwgdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBjb25zdCBBQ1RJT05fU1RBVElDX0lORElDQVRPUiA9ICdzdGF0aWMtaW5kaWNhdG9yJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9CVUlMRF9PSyA9ICdidWlsZC1vaydcbmV4cG9ydCBjb25zdCBBQ1RJT05fQlVJTERfRVJST1IgPSAnYnVpbGQtZXJyb3InXG5leHBvcnQgY29uc3QgQUNUSU9OX0JFRk9SRV9SRUZSRVNIID0gJ2JlZm9yZS1mYXN0LXJlZnJlc2gnXG5leHBvcnQgY29uc3QgQUNUSU9OX1JFRlJFU0ggPSAnZmFzdC1yZWZyZXNoJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9WRVJTSU9OX0lORk8gPSAndmVyc2lvbi1pbmZvJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9VTkhBTkRMRURfRVJST1IgPSAndW5oYW5kbGVkLWVycm9yJ1xuZXhwb3J0IGNvbnN0IEFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OID0gJ3VuaGFuZGxlZC1yZWplY3Rpb24nXG5leHBvcnQgY29uc3QgQUNUSU9OX0RFQlVHX0lORk8gPSAnZGVidWctaW5mbydcblxuaW50ZXJmYWNlIFN0YXRpY0luZGljYXRvckFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fU1RBVElDX0lORElDQVRPUlxuICBzdGF0aWNJbmRpY2F0b3I6IGJvb2xlYW5cbn1cblxuaW50ZXJmYWNlIEJ1aWxkT2tBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX0JVSUxEX09LXG59XG5pbnRlcmZhY2UgQnVpbGRFcnJvckFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fQlVJTERfRVJST1JcbiAgbWVzc2FnZTogc3RyaW5nXG59XG5pbnRlcmZhY2UgQmVmb3JlRmFzdFJlZnJlc2hBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX0JFRk9SRV9SRUZSRVNIXG59XG5pbnRlcmZhY2UgRmFzdFJlZnJlc2hBY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX1JFRlJFU0hcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVbmhhbmRsZWRFcnJvckFjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fVU5IQU5ETEVEX0VSUk9SXG4gIHJlYXNvbjogRXJyb3JcbiAgZnJhbWVzOiBTdGFja0ZyYW1lW11cbiAgY29tcG9uZW50U3RhY2tGcmFtZXM/OiBDb21wb25lbnRTdGFja0ZyYW1lW11cbiAgd2FybmluZz86IFtzdHJpbmcsIHN0cmluZywgc3RyaW5nXVxufVxuZXhwb3J0IGludGVyZmFjZSBVbmhhbmRsZWRSZWplY3Rpb25BY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX1VOSEFORExFRF9SRUpFQ1RJT05cbiAgcmVhc29uOiBFcnJvclxuICBmcmFtZXM6IFN0YWNrRnJhbWVbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlYnVnSW5mb0FjdGlvbiB7XG4gIHR5cGU6IHR5cGVvZiBBQ1RJT05fREVCVUdfSU5GT1xuICBkZWJ1Z0luZm86IGFueVxufVxuXG5pbnRlcmZhY2UgVmVyc2lvbkluZm9BY3Rpb24ge1xuICB0eXBlOiB0eXBlb2YgQUNUSU9OX1ZFUlNJT05fSU5GT1xuICB2ZXJzaW9uSW5mbzogVmVyc2lvbkluZm9cbn1cblxuZXhwb3J0IHR5cGUgQnVzRXZlbnQgPVxuICB8IEJ1aWxkT2tBY3Rpb25cbiAgfCBCdWlsZEVycm9yQWN0aW9uXG4gIHwgQmVmb3JlRmFzdFJlZnJlc2hBY3Rpb25cbiAgfCBGYXN0UmVmcmVzaEFjdGlvblxuICB8IFVuaGFuZGxlZEVycm9yQWN0aW9uXG4gIHwgVW5oYW5kbGVkUmVqZWN0aW9uQWN0aW9uXG4gIHwgVmVyc2lvbkluZm9BY3Rpb25cbiAgfCBTdGF0aWNJbmRpY2F0b3JBY3Rpb25cbiAgfCBEZWJ1Z0luZm9BY3Rpb25cblxuZnVuY3Rpb24gcHVzaEVycm9yRmlsdGVyRHVwbGljYXRlcyhcbiAgZXJyb3JzOiBTdXBwb3J0ZWRFcnJvckV2ZW50W10sXG4gIGVycjogU3VwcG9ydGVkRXJyb3JFdmVudFxuKTogU3VwcG9ydGVkRXJyb3JFdmVudFtdIHtcbiAgcmV0dXJuIFtcbiAgICAuLi5lcnJvcnMuZmlsdGVyKChlKSA9PiB7XG4gICAgICAvLyBGaWx0ZXIgb3V0IGR1cGxpY2F0ZSBlcnJvcnNcbiAgICAgIHJldHVybiBlLmV2ZW50LnJlYXNvbiAhPT0gZXJyLmV2ZW50LnJlYXNvblxuICAgIH0pLFxuICAgIGVycixcbiAgXVxufVxuXG5leHBvcnQgY29uc3QgSU5JVElBTF9PVkVSTEFZX1NUQVRFOiBPdmVybGF5U3RhdGUgPSB7XG4gIG5leHRJZDogMSxcbiAgYnVpbGRFcnJvcjogbnVsbCxcbiAgZXJyb3JzOiBbXSxcbiAgbm90Rm91bmQ6IGZhbHNlLFxuICBzdGF0aWNJbmRpY2F0b3I6IGZhbHNlLFxuICByZWZyZXNoU3RhdGU6IHsgdHlwZTogJ2lkbGUnIH0sXG4gIHJvb3RMYXlvdXRNaXNzaW5nVGFnczogW10sXG4gIHZlcnNpb25JbmZvOiB7IGluc3RhbGxlZDogJzAuMC4wJywgc3RhbGVuZXNzOiAndW5rbm93bicgfSxcbiAgZGVidWdJbmZvOiB1bmRlZmluZWQsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VFcnJvck92ZXJsYXlSZWR1Y2VyKCkge1xuICByZXR1cm4gdXNlUmVkdWNlcigoX3N0YXRlOiBPdmVybGF5U3RhdGUsIGFjdGlvbjogQnVzRXZlbnQpOiBPdmVybGF5U3RhdGUgPT4ge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgQUNUSU9OX0RFQlVHX0lORk86IHtcbiAgICAgICAgcmV0dXJuIHsgLi4uX3N0YXRlLCBkZWJ1Z0luZm86IGFjdGlvbi5kZWJ1Z0luZm8gfVxuICAgICAgfVxuICAgICAgY2FzZSBBQ1RJT05fU1RBVElDX0lORElDQVRPUjoge1xuICAgICAgICByZXR1cm4geyAuLi5fc3RhdGUsIHN0YXRpY0luZGljYXRvcjogYWN0aW9uLnN0YXRpY0luZGljYXRvciB9XG4gICAgICB9XG4gICAgICBjYXNlIEFDVElPTl9CVUlMRF9PSzoge1xuICAgICAgICByZXR1cm4geyAuLi5fc3RhdGUsIGJ1aWxkRXJyb3I6IG51bGwgfVxuICAgICAgfVxuICAgICAgY2FzZSBBQ1RJT05fQlVJTERfRVJST1I6IHtcbiAgICAgICAgcmV0dXJuIHsgLi4uX3N0YXRlLCBidWlsZEVycm9yOiBhY3Rpb24ubWVzc2FnZSB9XG4gICAgICB9XG4gICAgICBjYXNlIEFDVElPTl9CRUZPUkVfUkVGUkVTSDoge1xuICAgICAgICByZXR1cm4geyAuLi5fc3RhdGUsIHJlZnJlc2hTdGF0ZTogeyB0eXBlOiAncGVuZGluZycsIGVycm9yczogW10gfSB9XG4gICAgICB9XG4gICAgICBjYXNlIEFDVElPTl9SRUZSRVNIOiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uX3N0YXRlLFxuICAgICAgICAgIGJ1aWxkRXJyb3I6IG51bGwsXG4gICAgICAgICAgZXJyb3JzOlxuICAgICAgICAgICAgLy8gRXJyb3JzIGNhbiBjb21lIGluIGR1cmluZyB1cGRhdGVzLiBJbiB0aGlzIGNhc2UsIFVOSEFORExFRF9FUlJPUlxuICAgICAgICAgICAgLy8gYW5kIFVOSEFORExFRF9SRUpFQ1RJT04gZXZlbnRzIG1pZ2h0IGJlIGRpc3BhdGNoZWQgYmV0d2VlbiB0aGVcbiAgICAgICAgICAgIC8vIEJFRk9SRV9SRUZSRVNIIGFuZCB0aGUgUkVGUkVTSCBldmVudC4gV2Ugd2FudCB0byBrZWVwIHRob3NlIGVycm9yc1xuICAgICAgICAgICAgLy8gYXJvdW5kIHVudGlsIHRoZSBuZXh0IHJlZnJlc2guIE90aGVyd2lzZSB3ZSBydW4gaW50byBhIHJhY2VcbiAgICAgICAgICAgIC8vIGNvbmRpdGlvbiB3aGVyZSB0aG9zZSBlcnJvcnMgd291bGQgYmUgY2xlYXJlZCBvbiByZWZyZXNoIGNvbXBsZXRpb25cbiAgICAgICAgICAgIC8vIGJlZm9yZSB0aGV5IGNhbiBiZSBkaXNwbGF5ZWQuXG4gICAgICAgICAgICBfc3RhdGUucmVmcmVzaFN0YXRlLnR5cGUgPT09ICdwZW5kaW5nJ1xuICAgICAgICAgICAgICA/IF9zdGF0ZS5yZWZyZXNoU3RhdGUuZXJyb3JzXG4gICAgICAgICAgICAgIDogW10sXG4gICAgICAgICAgcmVmcmVzaFN0YXRlOiB7IHR5cGU6ICdpZGxlJyB9LFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjYXNlIEFDVElPTl9VTkhBTkRMRURfRVJST1I6XG4gICAgICBjYXNlIEFDVElPTl9VTkhBTkRMRURfUkVKRUNUSU9OOiB7XG4gICAgICAgIHN3aXRjaCAoX3N0YXRlLnJlZnJlc2hTdGF0ZS50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnaWRsZSc6IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLl9zdGF0ZSxcbiAgICAgICAgICAgICAgbmV4dElkOiBfc3RhdGUubmV4dElkICsgMSxcbiAgICAgICAgICAgICAgZXJyb3JzOiBwdXNoRXJyb3JGaWx0ZXJEdXBsaWNhdGVzKF9zdGF0ZS5lcnJvcnMsIHtcbiAgICAgICAgICAgICAgICBpZDogX3N0YXRlLm5leHRJZCxcbiAgICAgICAgICAgICAgICBldmVudDogYWN0aW9uLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSAncGVuZGluZyc6IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLl9zdGF0ZSxcbiAgICAgICAgICAgICAgbmV4dElkOiBfc3RhdGUubmV4dElkICsgMSxcbiAgICAgICAgICAgICAgcmVmcmVzaFN0YXRlOiB7XG4gICAgICAgICAgICAgICAgLi4uX3N0YXRlLnJlZnJlc2hTdGF0ZSxcbiAgICAgICAgICAgICAgICBlcnJvcnM6IHB1c2hFcnJvckZpbHRlckR1cGxpY2F0ZXMoX3N0YXRlLnJlZnJlc2hTdGF0ZS5lcnJvcnMsIHtcbiAgICAgICAgICAgICAgICAgIGlkOiBfc3RhdGUubmV4dElkLFxuICAgICAgICAgICAgICAgICAgZXZlbnQ6IGFjdGlvbixcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgICAgIGNvbnN0IF86IG5ldmVyID0gX3N0YXRlLnJlZnJlc2hTdGF0ZVxuICAgICAgICAgICAgcmV0dXJuIF9zdGF0ZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjYXNlIEFDVElPTl9WRVJTSU9OX0lORk86IHtcbiAgICAgICAgcmV0dXJuIHsgLi4uX3N0YXRlLCB2ZXJzaW9uSW5mbzogYWN0aW9uLnZlcnNpb25JbmZvIH1cbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgcmV0dXJuIF9zdGF0ZVxuICAgICAgfVxuICAgIH1cbiAgfSwgSU5JVElBTF9PVkVSTEFZX1NUQVRFKVxufVxuXG5leHBvcnQgY29uc3QgUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SID1cbiAgJ1tGYXN0IFJlZnJlc2hdIHBlcmZvcm1pbmcgZnVsbCByZWxvYWQgYmVjYXVzZSB5b3VyIGFwcGxpY2F0aW9uIGhhZCBhbiB1bnJlY292ZXJhYmxlIGVycm9yJ1xuIl0sIm5hbWVzIjpbIkFDVElPTl9CRUZPUkVfUkVGUkVTSCIsIkFDVElPTl9CVUlMRF9FUlJPUiIsIkFDVElPTl9CVUlMRF9PSyIsIkFDVElPTl9ERUJVR19JTkZPIiwiQUNUSU9OX1JFRlJFU0giLCJBQ1RJT05fU1RBVElDX0lORElDQVRPUiIsIkFDVElPTl9VTkhBTkRMRURfRVJST1IiLCJBQ1RJT05fVU5IQU5ETEVEX1JFSkVDVElPTiIsIkFDVElPTl9WRVJTSU9OX0lORk8iLCJJTklUSUFMX09WRVJMQVlfU1RBVEUiLCJSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IiLCJ1c2VFcnJvck92ZXJsYXlSZWR1Y2VyIiwicHVzaEVycm9yRmlsdGVyRHVwbGljYXRlcyIsImVycm9ycyIsImVyciIsImZpbHRlciIsImUiLCJldmVudCIsInJlYXNvbiIsIm5leHRJZCIsImJ1aWxkRXJyb3IiLCJub3RGb3VuZCIsInN0YXRpY0luZGljYXRvciIsInJlZnJlc2hTdGF0ZSIsInR5cGUiLCJyb290TGF5b3V0TWlzc2luZ1RhZ3MiLCJ2ZXJzaW9uSW5mbyIsImluc3RhbGxlZCIsInN0YWxlbmVzcyIsImRlYnVnSW5mbyIsInVuZGVmaW5lZCIsInVzZVJlZHVjZXIiLCJfc3RhdGUiLCJhY3Rpb24iLCJtZXNzYWdlIiwiaWQiLCJfIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/react-dev-overlay/shared.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/redirect-error.js": +/*!********************************************************************!*\ + !*** ./node_modules/next/dist/client/components/redirect-error.js ***! + \********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n REDIRECT_ERROR_CODE: function() {\n return REDIRECT_ERROR_CODE;\n },\n RedirectType: function() {\n return RedirectType;\n },\n isRedirectError: function() {\n return isRedirectError;\n }\n});\nconst _redirectstatuscode = __webpack_require__(/*! ./redirect-status-code */ \"./node_modules/next/dist/client/components/redirect-status-code.js\");\nconst REDIRECT_ERROR_CODE = 'NEXT_REDIRECT';\nvar RedirectType = /*#__PURE__*/ function(RedirectType) {\n RedirectType[\"push\"] = \"push\";\n RedirectType[\"replace\"] = \"replace\";\n return RedirectType;\n}({});\nfunction isRedirectError(error) {\n if (typeof error !== 'object' || error === null || !('digest' in error) || typeof error.digest !== 'string') {\n return false;\n }\n const digest = error.digest.split(';');\n const [errorCode, type] = digest;\n const destination = digest.slice(2, -2).join(';');\n const status = digest.at(-2);\n const statusCode = Number(status);\n return errorCode === REDIRECT_ERROR_CODE && (type === 'replace' || type === 'push') && typeof destination === 'string' && !isNaN(statusCode) && statusCode in _redirectstatuscode.RedirectStatusCode;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-error.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUVhQSxtQkFBbUI7ZUFBbkJBOztJQUVEQyxZQUFZO2VBQVpBOztJQWdCSUMsZUFBZTtlQUFmQTs7O2dEQXBCbUI7QUFFNUIsTUFBTUYsc0JBQXNCO0FBRTVCLElBQUtDLGVBQUFBLFdBQUFBLEdBQUFBLFNBQUFBLFlBQUFBOzs7V0FBQUE7O0FBZ0JMLFNBQVNDLGdCQUFnQkMsS0FBYztJQUM1QyxJQUNFLE9BQU9BLFVBQVUsWUFDakJBLFVBQVUsUUFDVixDQUFFLGFBQVlBLEtBQUFBLENBQUksSUFDbEIsT0FBT0EsTUFBTUMsTUFBTSxLQUFLLFVBQ3hCO1FBQ0EsT0FBTztJQUNUO0lBRUEsTUFBTUEsU0FBU0QsTUFBTUMsTUFBTSxDQUFDQyxLQUFLLENBQUM7SUFDbEMsTUFBTSxDQUFDQyxXQUFXQyxLQUFLLEdBQUdIO0lBQzFCLE1BQU1JLGNBQWNKLE9BQU9LLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBR0MsSUFBSSxDQUFDO0lBQzdDLE1BQU1DLFNBQVNQLE9BQU9RLEVBQUUsQ0FBQyxDQUFDO0lBRTFCLE1BQU1DLGFBQWFDLE9BQU9IO0lBRTFCLE9BQ0VMLGNBQWNOLHVCQUNiTyxDQUFBQSxTQUFTLGFBQWFBLFNBQVMsT0FBSyxJQUNyQyxPQUFPQyxnQkFBZ0IsWUFDdkIsQ0FBQ08sTUFBTUYsZUFDUEEsY0FBY0csb0JBQUFBLGtCQUFrQjtBQUVwQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LWVycm9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlZGlyZWN0U3RhdHVzQ29kZSB9IGZyb20gJy4vcmVkaXJlY3Qtc3RhdHVzLWNvZGUnXG5cbmV4cG9ydCBjb25zdCBSRURJUkVDVF9FUlJPUl9DT0RFID0gJ05FWFRfUkVESVJFQ1QnXG5cbmV4cG9ydCBlbnVtIFJlZGlyZWN0VHlwZSB7XG4gIHB1c2ggPSAncHVzaCcsXG4gIHJlcGxhY2UgPSAncmVwbGFjZScsXG59XG5cbmV4cG9ydCB0eXBlIFJlZGlyZWN0RXJyb3IgPSBFcnJvciAmIHtcbiAgZGlnZXN0OiBgJHt0eXBlb2YgUkVESVJFQ1RfRVJST1JfQ09ERX07JHtSZWRpcmVjdFR5cGV9OyR7c3RyaW5nfTske1JlZGlyZWN0U3RhdHVzQ29kZX07YFxufVxuXG4vKipcbiAqIENoZWNrcyBhbiBlcnJvciB0byBkZXRlcm1pbmUgaWYgaXQncyBhbiBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlXG4gKiBgcmVkaXJlY3QodXJsKWAgaGVscGVyLlxuICpcbiAqIEBwYXJhbSBlcnJvciB0aGUgZXJyb3IgdGhhdCBtYXkgcmVmZXJlbmNlIGEgcmVkaXJlY3QgZXJyb3JcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGVycm9yIGlzIGEgcmVkaXJlY3QgZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUmVkaXJlY3RFcnJvcihlcnJvcjogdW5rbm93bik6IGVycm9yIGlzIFJlZGlyZWN0RXJyb3Ige1xuICBpZiAoXG4gICAgdHlwZW9mIGVycm9yICE9PSAnb2JqZWN0JyB8fFxuICAgIGVycm9yID09PSBudWxsIHx8XG4gICAgISgnZGlnZXN0JyBpbiBlcnJvcikgfHxcbiAgICB0eXBlb2YgZXJyb3IuZGlnZXN0ICE9PSAnc3RyaW5nJ1xuICApIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGRpZ2VzdCA9IGVycm9yLmRpZ2VzdC5zcGxpdCgnOycpXG4gIGNvbnN0IFtlcnJvckNvZGUsIHR5cGVdID0gZGlnZXN0XG4gIGNvbnN0IGRlc3RpbmF0aW9uID0gZGlnZXN0LnNsaWNlKDIsIC0yKS5qb2luKCc7JylcbiAgY29uc3Qgc3RhdHVzID0gZGlnZXN0LmF0KC0yKVxuXG4gIGNvbnN0IHN0YXR1c0NvZGUgPSBOdW1iZXIoc3RhdHVzKVxuXG4gIHJldHVybiAoXG4gICAgZXJyb3JDb2RlID09PSBSRURJUkVDVF9FUlJPUl9DT0RFICYmXG4gICAgKHR5cGUgPT09ICdyZXBsYWNlJyB8fCB0eXBlID09PSAncHVzaCcpICYmXG4gICAgdHlwZW9mIGRlc3RpbmF0aW9uID09PSAnc3RyaW5nJyAmJlxuICAgICFpc05hTihzdGF0dXNDb2RlKSAmJlxuICAgIHN0YXR1c0NvZGUgaW4gUmVkaXJlY3RTdGF0dXNDb2RlXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJSRURJUkVDVF9FUlJPUl9DT0RFIiwiUmVkaXJlY3RUeXBlIiwiaXNSZWRpcmVjdEVycm9yIiwiZXJyb3IiLCJkaWdlc3QiLCJzcGxpdCIsImVycm9yQ29kZSIsInR5cGUiLCJkZXN0aW5hdGlvbiIsInNsaWNlIiwiam9pbiIsInN0YXR1cyIsImF0Iiwic3RhdHVzQ29kZSIsIk51bWJlciIsImlzTmFOIiwiUmVkaXJlY3RTdGF0dXNDb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/redirect-error.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/components/redirect-status-code.js": +/*!**************************************************************************!*\ + !*** ./node_modules/next/dist/client/components/redirect-status-code.js ***! + \**************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RedirectStatusCode\", ({\n enumerable: true,\n get: function() {\n return RedirectStatusCode;\n }\n}));\nvar RedirectStatusCode = /*#__PURE__*/ function(RedirectStatusCode) {\n RedirectStatusCode[RedirectStatusCode[\"SeeOther\"] = 303] = \"SeeOther\";\n RedirectStatusCode[RedirectStatusCode[\"TemporaryRedirect\"] = 307] = \"TemporaryRedirect\";\n RedirectStatusCode[RedirectStatusCode[\"PermanentRedirect\"] = 308] = \"PermanentRedirect\";\n return RedirectStatusCode;\n}({});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=redirect-status-code.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0RBQVlBOzs7ZUFBQUE7OztBQUFMLElBQUtBLHFCQUFBQSxXQUFBQSxHQUFBQSxTQUFBQSxrQkFBQUE7Ozs7V0FBQUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSZWRpcmVjdFN0YXR1c0NvZGUge1xuICBTZWVPdGhlciA9IDMwMyxcbiAgVGVtcG9yYXJ5UmVkaXJlY3QgPSAzMDcsXG4gIFBlcm1hbmVudFJlZGlyZWN0ID0gMzA4LFxufVxuIl0sIm5hbWVzIjpbIlJlZGlyZWN0U3RhdHVzQ29kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/components/redirect-status-code.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/detect-domain-locale.js": +/*!***************************************************************!*\ + !*** ./node_modules/next/dist/client/detect-domain-locale.js ***! + \***************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"detectDomainLocale\", ({\n enumerable: true,\n get: function() {\n return detectDomainLocale;\n }\n}));\nconst detectDomainLocale = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (false) {}\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=detect-domain-locale.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXRlY3QtZG9tYWluLWxvY2FsZS5qcyIsIm1hcHBpbmdzIjoiOzs7O3NEQUVhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxxQkFBZ0M7cUNBQUlDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO1FBQUFBLElBQUFBLENBQUFBLEtBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztJQUMvQyxJQUFJQyxLQUErQixFQUFFLEVBSXBDO0FBQ0giLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9jbGllbnQvZGV0ZWN0LWRvbWFpbi1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBkZXRlY3REb21haW5Mb2NhbGUgYXMgRm4gfSBmcm9tICcuLi9zaGFyZWQvbGliL2kxOG4vZGV0ZWN0LWRvbWFpbi1sb2NhbGUnXG5cbmV4cG9ydCBjb25zdCBkZXRlY3REb21haW5Mb2NhbGU6IHR5cGVvZiBGbiA9ICguLi5hcmdzKSA9PiB7XG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgcmV0dXJuIHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvaTE4bi9kZXRlY3QtZG9tYWluLWxvY2FsZScpLmRldGVjdERvbWFpbkxvY2FsZShcbiAgICAgIC4uLmFyZ3NcbiAgICApXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJkZXRlY3REb21haW5Mb2NhbGUiLCJhcmdzIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JMThOX1NVUFBPUlQiLCJyZXF1aXJlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/detect-domain-locale.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/dev-build-watcher.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/dev-build-watcher.js ***! + \****************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/* eslint-disable @typescript-eslint/no-use-before-define */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return initializeBuildWatcher;\n }\n}));\nconst _hotreloadertypes = __webpack_require__(/*! ../../server/dev/hot-reloader-types */ \"./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nconst _websocket = __webpack_require__(/*! ../components/react-dev-overlay/pages/websocket */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/websocket.js\");\nfunction initializeBuildWatcher(toggleCallback, position) {\n if (position === void 0) position = 'bottom-right';\n const shadowHost = document.createElement('div');\n const [verticalProperty, horizontalProperty] = position.split('-', 2);\n shadowHost.id = '__next-build-watcher';\n // Make sure container is fixed and on a high zIndex so it shows\n shadowHost.style.position = 'fixed';\n // Ensure container's position to be top or bottom (default)\n shadowHost.style[verticalProperty] = '10px';\n // Ensure container's position to be left or right (default)\n shadowHost.style[horizontalProperty] = '20px';\n shadowHost.style.width = '0';\n shadowHost.style.height = '0';\n shadowHost.style.zIndex = '99999';\n document.body.appendChild(shadowHost);\n let shadowRoot;\n let prefix = '';\n if (shadowHost.attachShadow) {\n shadowRoot = shadowHost.attachShadow({\n mode: 'open'\n });\n } else {\n // If attachShadow is undefined then the browser does not support\n // the Shadow DOM, we need to prefix all the names so there\n // will be no conflicts\n shadowRoot = shadowHost;\n prefix = '__next-build-watcher-';\n }\n // Container\n const container = createContainer(prefix);\n shadowRoot.appendChild(container);\n // CSS\n const css = createCss(prefix, {\n horizontalProperty,\n verticalProperty\n });\n shadowRoot.appendChild(css);\n // State\n let isVisible = false;\n let isBuilding = false;\n let timeoutId = null;\n // Handle events\n (0, _websocket.addMessageListener)((obj)=>{\n try {\n handleMessage(obj);\n } catch (e) {}\n });\n function show() {\n timeoutId && clearTimeout(timeoutId);\n isVisible = true;\n isBuilding = true;\n updateContainer();\n }\n function hide() {\n isBuilding = false;\n // Wait for the fade out transition to complete\n timeoutId = setTimeout(()=>{\n isVisible = false;\n updateContainer();\n }, 100);\n updateContainer();\n }\n function handleMessage(obj) {\n if (!('action' in obj)) {\n return;\n }\n // eslint-disable-next-line default-case\n switch(obj.action){\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILDING:\n show();\n break;\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.BUILT:\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SYNC:\n hide();\n break;\n }\n }\n toggleCallback({\n show,\n hide\n });\n function updateContainer() {\n if (isBuilding) {\n container.classList.add(\"\" + prefix + \"building\");\n } else {\n container.classList.remove(\"\" + prefix + \"building\");\n }\n if (isVisible) {\n container.classList.add(\"\" + prefix + \"visible\");\n } else {\n container.classList.remove(\"\" + prefix + \"visible\");\n }\n }\n}\nfunction createContainer(prefix) {\n const container = document.createElement('div');\n container.id = \"\" + prefix + \"container\";\n container.innerHTML = '\\n <div id=\"' + prefix + 'icon-wrapper\">\\n <svg viewBox=\"0 0 226 200\">\\n <defs>\\n <linearGradient\\n x1=\"114.720775%\"\\n y1=\"181.283245%\"\\n x2=\"39.5399306%\"\\n y2=\"100%\"\\n id=\"' + prefix + 'linear-gradient\"\\n >\\n <stop stop-color=\"#000000\" offset=\"0%\" />\\n <stop stop-color=\"#FFFFFF\" offset=\"100%\" />\\n </linearGradient>\\n </defs>\\n <g id=\"' + prefix + 'icon-group\" fill=\"none\" stroke=\"url(#' + prefix + 'linear-gradient)\" stroke-width=\"18\">\\n <path d=\"M113,5.08219117 L4.28393801,197.5 L221.716062,197.5 L113,5.08219117 Z\" />\\n </g>\\n </svg>\\n </div>\\n ';\n return container;\n}\nfunction createCss(prefix, param) {\n let { horizontalProperty, verticalProperty } = param;\n const css = document.createElement('style');\n css.textContent = \"\\n #\" + prefix + \"container {\\n position: absolute;\\n \" + verticalProperty + \": 10px;\\n \" + horizontalProperty + \": 30px;\\n\\n border-radius: 3px;\\n background: #000;\\n color: #fff;\\n font: initial;\\n cursor: initial;\\n letter-spacing: initial;\\n text-shadow: initial;\\n text-transform: initial;\\n visibility: initial;\\n\\n padding: 7px 10px 8px 10px;\\n align-items: center;\\n box-shadow: 0 11px 40px 0 rgba(0, 0, 0, 0.25), 0 2px 10px 0 rgba(0, 0, 0, 0.12);\\n\\n display: none;\\n opacity: 0;\\n transition: opacity 0.1s ease, \" + verticalProperty + \" 0.1s ease;\\n animation: \" + prefix + \"fade-in 0.1s ease-in-out;\\n }\\n\\n #\" + prefix + \"container.\" + prefix + \"visible {\\n display: flex;\\n }\\n\\n #\" + prefix + \"container.\" + prefix + \"building {\\n \" + verticalProperty + \": 20px;\\n opacity: 1;\\n }\\n\\n #\" + prefix + \"icon-wrapper {\\n width: 16px;\\n height: 16px;\\n }\\n\\n #\" + prefix + \"icon-wrapper > svg {\\n width: 100%;\\n height: 100%;\\n }\\n\\n #\" + prefix + \"icon-group {\\n animation: \" + prefix + \"strokedash 1s ease-in-out both infinite;\\n }\\n\\n @keyframes \" + prefix + \"fade-in {\\n from {\\n \" + verticalProperty + \": 10px;\\n opacity: 0;\\n }\\n to {\\n \" + verticalProperty + \": 20px;\\n opacity: 1;\\n }\\n }\\n\\n @keyframes \" + prefix + \"strokedash {\\n 0% {\\n stroke-dasharray: 0 226;\\n }\\n 80%,\\n 100% {\\n stroke-dasharray: 659 226;\\n }\\n }\\n \";\n return css;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=dev-build-watcher.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZGV2LWJ1aWxkLXdhdGNoZXIuanMiLCJtYXBwaW5ncyI6IkFBQUEsMERBQTBEOzs7OzJDQWExRDs7O2VBQXdCQTs7OzhDQVpvQjt1Q0FFVDtBQVVwQixTQUFTQSx1QkFDdEJDLGNBQW1ELEVBQ25EQyxRQUF5QjtJQUF6QkEsSUFBQUEsYUFBQUEsS0FBQUEsR0FBQUEsV0FBVztJQUVYLE1BQU1DLGFBQWFDLFNBQVNDLGFBQWEsQ0FBQztJQUMxQyxNQUFNLENBQUNDLGtCQUFrQkMsbUJBQW1CLEdBQUdMLFNBQVNNLEtBQUssQ0FBQyxLQUFLO0lBSW5FTCxXQUFXTSxFQUFFLEdBQUc7SUFDaEIsZ0VBQWdFO0lBQ2hFTixXQUFXTyxLQUFLLENBQUNSLFFBQVEsR0FBRztJQUM1Qiw0REFBNEQ7SUFDNURDLFdBQVdPLEtBQUssQ0FBQ0osaUJBQWlCLEdBQUc7SUFDckMsNERBQTREO0lBQzVESCxXQUFXTyxLQUFLLENBQUNILG1CQUFtQixHQUFHO0lBQ3ZDSixXQUFXTyxLQUFLLENBQUNDLEtBQUssR0FBRztJQUN6QlIsV0FBV08sS0FBSyxDQUFDRSxNQUFNLEdBQUc7SUFDMUJULFdBQVdPLEtBQUssQ0FBQ0csTUFBTSxHQUFHO0lBQzFCVCxTQUFTVSxJQUFJLENBQUNDLFdBQVcsQ0FBQ1o7SUFFMUIsSUFBSWE7SUFDSixJQUFJQyxTQUFTO0lBRWIsSUFBSWQsV0FBV2UsWUFBWSxFQUFFO1FBQzNCRixhQUFhYixXQUFXZSxZQUFZLENBQUM7WUFBRUMsTUFBTTtRQUFPO0lBQ3RELE9BQU87UUFDTCxpRUFBaUU7UUFDakUsMkRBQTJEO1FBQzNELHVCQUF1QjtRQUN2QkgsYUFBYWI7UUFDYmMsU0FBUztJQUNYO0lBRUEsWUFBWTtJQUNaLE1BQU1HLFlBQVlDLGdCQUFnQko7SUFDbENELFdBQVdELFdBQVcsQ0FBQ0s7SUFFdkIsTUFBTTtJQUNOLE1BQU1FLE1BQU1DLFVBQVVOLFFBQVE7UUFBRVY7UUFBb0JEO0lBQWlCO0lBQ3JFVSxXQUFXRCxXQUFXLENBQUNPO0lBRXZCLFFBQVE7SUFDUixJQUFJRSxZQUFZO0lBQ2hCLElBQUlDLGFBQWE7SUFDakIsSUFBSUMsWUFBa0Q7SUFFdEQsZ0JBQWdCO0lBRWhCQyxDQUFBQSxHQUFBQSxXQUFBQSxrQkFBQUEsRUFBbUIsQ0FBQ0M7UUFDbEIsSUFBSTtZQUNGQyxjQUFjRDtRQUNoQixFQUFFLFVBQU0sQ0FBQztJQUNYO0lBRUEsU0FBU0U7UUFDUEosYUFBYUssYUFBYUw7UUFDMUJGLFlBQVk7UUFDWkMsYUFBYTtRQUNiTztJQUNGO0lBRUEsU0FBU0M7UUFDUFIsYUFBYTtRQUNiLCtDQUErQztRQUMvQ0MsWUFBWVEsV0FBVztZQUNyQlYsWUFBWTtZQUNaUTtRQUNGLEdBQUc7UUFDSEE7SUFDRjtJQUVBLFNBQVNILGNBQWNELEdBQXFCO1FBQzFDLElBQUksQ0FBRSxhQUFZQSxHQUFBQSxDQUFFLEVBQUk7WUFDdEI7UUFDRjtRQUVBLHdDQUF3QztRQUN4QyxPQUFRQSxJQUFJTyxNQUFNO1lBQ2hCLEtBQUtDLGtCQUFBQSwyQkFBMkIsQ0FBQ0MsUUFBUTtnQkFDdkNQO2dCQUNBO1lBQ0YsS0FBS00sa0JBQUFBLDJCQUEyQixDQUFDRSxLQUFLO1lBQ3RDLEtBQUtGLGtCQUFBQSwyQkFBMkIsQ0FBQ0csSUFBSTtnQkFDbkNOO2dCQUNBO1FBQ0o7SUFDRjtJQUVBaEMsZUFBZTtRQUNiNkI7UUFDQUc7SUFDRjtJQUVBLFNBQVNEO1FBQ1AsSUFBSVAsWUFBWTtZQUNkTCxVQUFVb0IsU0FBUyxDQUFDQyxHQUFHLENBQUUsS0FBRXhCLFNBQU87UUFDcEMsT0FBTztZQUNMRyxVQUFVb0IsU0FBUyxDQUFDRSxNQUFNLENBQUUsS0FBRXpCLFNBQU87UUFDdkM7UUFFQSxJQUFJTyxXQUFXO1lBQ2JKLFVBQVVvQixTQUFTLENBQUNDLEdBQUcsQ0FBRSxLQUFFeEIsU0FBTztRQUNwQyxPQUFPO1lBQ0xHLFVBQVVvQixTQUFTLENBQUNFLE1BQU0sQ0FBRSxLQUFFekIsU0FBTztRQUN2QztJQUNGO0FBQ0Y7QUFFQSxTQUFTSSxnQkFBZ0JKLE1BQWM7SUFDckMsTUFBTUcsWUFBWWhCLFNBQVNDLGFBQWEsQ0FBQztJQUN6Q2UsVUFBVVgsRUFBRSxHQUFJLEtBQUVRLFNBQU87SUFDekJHLFVBQVV1QixTQUFTLEdBQUksb0JBQ1YxQixTQUFPLG9PQVFKQSxTQUFPLGlOQU1SQSxTQUFPLDBDQUF1Q0EsU0FBTztJQU9wRSxPQUFPRztBQUNUO0FBRUEsU0FBU0csVUFDUE4sTUFBYyxFQUNkLEtBRzJEO0lBSDNELE1BQ0VWLGtCQUFrQixFQUNsQkQsZ0JBQWdCLEVBQ3lDLEdBSDNEO0lBS0EsTUFBTWdCLE1BQU1sQixTQUFTQyxhQUFhLENBQUM7SUFDbkNpQixJQUFJc0IsV0FBVyxHQUFJLFlBQ2QzQixTQUFPLG1EQUVOWCxtQkFBaUIsb0JBQ2pCQyxxQkFBbUIsd2VBa0JZRCxtQkFBaUIsbUNBQ3JDVyxTQUFPLDhDQUduQkEsU0FBTyxlQUFZQSxTQUFPLG9EQUkxQkEsU0FBTyxlQUFZQSxTQUFPLHVCQUN6QlgsbUJBQWlCLCtDQUlsQlcsU0FBTyw0RUFLUEEsU0FBTyxrRkFLUEEsU0FBTyxvQ0FDS0EsU0FBTyx1RUFHVEEsU0FBTyxzQ0FFZFgsbUJBQWlCLGdFQUlqQkEsbUJBQWlCLG9FQUtWVyxTQUFPO0lBV3RCLE9BQU9LO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9jbGllbnQvZGV2L2Rldi1idWlsZC13YXRjaGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZSAqL1xuaW1wb3J0IHsgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSIH0gZnJvbSAnLi4vLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEhNUl9BQ1RJT05fVFlQRVMgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvZGV2L2hvdC1yZWxvYWRlci10eXBlcydcbmltcG9ydCB7IGFkZE1lc3NhZ2VMaXN0ZW5lciB9IGZyb20gJy4uL2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvcGFnZXMvd2Vic29ja2V0J1xuXG50eXBlIFZlcnRpY2FsUG9zaXRpb24gPSAndG9wJyB8ICdib3R0b20nXG50eXBlIEhvcml6b25hbFBvc2l0aW9uID0gJ2xlZnQnIHwgJ3JpZ2h0J1xuXG5leHBvcnQgaW50ZXJmYWNlIFNob3dIaWRlSGFuZGxlciB7XG4gIHNob3c6ICgpID0+IHZvaWRcbiAgaGlkZTogKCkgPT4gdm9pZFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBpbml0aWFsaXplQnVpbGRXYXRjaGVyKFxuICB0b2dnbGVDYWxsYmFjazogKGhhbmRsZXJzOiBTaG93SGlkZUhhbmRsZXIpID0+IHZvaWQsXG4gIHBvc2l0aW9uID0gJ2JvdHRvbS1yaWdodCdcbikge1xuICBjb25zdCBzaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgY29uc3QgW3ZlcnRpY2FsUHJvcGVydHksIGhvcml6b250YWxQcm9wZXJ0eV0gPSBwb3NpdGlvbi5zcGxpdCgnLScsIDIpIGFzIFtcbiAgICBWZXJ0aWNhbFBvc2l0aW9uLFxuICAgIEhvcml6b25hbFBvc2l0aW9uLFxuICBdXG4gIHNoYWRvd0hvc3QuaWQgPSAnX19uZXh0LWJ1aWxkLXdhdGNoZXInXG4gIC8vIE1ha2Ugc3VyZSBjb250YWluZXIgaXMgZml4ZWQgYW5kIG9uIGEgaGlnaCB6SW5kZXggc28gaXQgc2hvd3NcbiAgc2hhZG93SG9zdC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCdcbiAgLy8gRW5zdXJlIGNvbnRhaW5lcidzIHBvc2l0aW9uIHRvIGJlIHRvcCBvciBib3R0b20gKGRlZmF1bHQpXG4gIHNoYWRvd0hvc3Quc3R5bGVbdmVydGljYWxQcm9wZXJ0eV0gPSAnMTBweCdcbiAgLy8gRW5zdXJlIGNvbnRhaW5lcidzIHBvc2l0aW9uIHRvIGJlIGxlZnQgb3IgcmlnaHQgKGRlZmF1bHQpXG4gIHNoYWRvd0hvc3Quc3R5bGVbaG9yaXpvbnRhbFByb3BlcnR5XSA9ICcyMHB4J1xuICBzaGFkb3dIb3N0LnN0eWxlLndpZHRoID0gJzAnXG4gIHNoYWRvd0hvc3Quc3R5bGUuaGVpZ2h0ID0gJzAnXG4gIHNoYWRvd0hvc3Quc3R5bGUuekluZGV4ID0gJzk5OTk5J1xuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNoYWRvd0hvc3QpXG5cbiAgbGV0IHNoYWRvd1Jvb3RcbiAgbGV0IHByZWZpeCA9ICcnXG5cbiAgaWYgKHNoYWRvd0hvc3QuYXR0YWNoU2hhZG93KSB7XG4gICAgc2hhZG93Um9vdCA9IHNoYWRvd0hvc3QuYXR0YWNoU2hhZG93KHsgbW9kZTogJ29wZW4nIH0pXG4gIH0gZWxzZSB7XG4gICAgLy8gSWYgYXR0YWNoU2hhZG93IGlzIHVuZGVmaW5lZCB0aGVuIHRoZSBicm93c2VyIGRvZXMgbm90IHN1cHBvcnRcbiAgICAvLyB0aGUgU2hhZG93IERPTSwgd2UgbmVlZCB0byBwcmVmaXggYWxsIHRoZSBuYW1lcyBzbyB0aGVyZVxuICAgIC8vIHdpbGwgYmUgbm8gY29uZmxpY3RzXG4gICAgc2hhZG93Um9vdCA9IHNoYWRvd0hvc3RcbiAgICBwcmVmaXggPSAnX19uZXh0LWJ1aWxkLXdhdGNoZXItJ1xuICB9XG5cbiAgLy8gQ29udGFpbmVyXG4gIGNvbnN0IGNvbnRhaW5lciA9IGNyZWF0ZUNvbnRhaW5lcihwcmVmaXgpXG4gIHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoY29udGFpbmVyKVxuXG4gIC8vIENTU1xuICBjb25zdCBjc3MgPSBjcmVhdGVDc3MocHJlZml4LCB7IGhvcml6b250YWxQcm9wZXJ0eSwgdmVydGljYWxQcm9wZXJ0eSB9KVxuICBzaGFkb3dSb290LmFwcGVuZENoaWxkKGNzcylcblxuICAvLyBTdGF0ZVxuICBsZXQgaXNWaXNpYmxlID0gZmFsc2VcbiAgbGV0IGlzQnVpbGRpbmcgPSBmYWxzZVxuICBsZXQgdGltZW91dElkOiBudWxsIHwgUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gPSBudWxsXG5cbiAgLy8gSGFuZGxlIGV2ZW50c1xuXG4gIGFkZE1lc3NhZ2VMaXN0ZW5lcigob2JqKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGhhbmRsZU1lc3NhZ2Uob2JqKVxuICAgIH0gY2F0Y2gge31cbiAgfSlcblxuICBmdW5jdGlvbiBzaG93KCkge1xuICAgIHRpbWVvdXRJZCAmJiBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgIGlzVmlzaWJsZSA9IHRydWVcbiAgICBpc0J1aWxkaW5nID0gdHJ1ZVxuICAgIHVwZGF0ZUNvbnRhaW5lcigpXG4gIH1cblxuICBmdW5jdGlvbiBoaWRlKCkge1xuICAgIGlzQnVpbGRpbmcgPSBmYWxzZVxuICAgIC8vIFdhaXQgZm9yIHRoZSBmYWRlIG91dCB0cmFuc2l0aW9uIHRvIGNvbXBsZXRlXG4gICAgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpc1Zpc2libGUgPSBmYWxzZVxuICAgICAgdXBkYXRlQ29udGFpbmVyKClcbiAgICB9LCAxMDApXG4gICAgdXBkYXRlQ29udGFpbmVyKClcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZU1lc3NhZ2Uob2JqOiBITVJfQUNUSU9OX1RZUEVTKSB7XG4gICAgaWYgKCEoJ2FjdGlvbicgaW4gb2JqKSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlZmF1bHQtY2FzZVxuICAgIHN3aXRjaCAob2JqLmFjdGlvbikge1xuICAgICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuQlVJTERJTkc6XG4gICAgICAgIHNob3coKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuQlVJTFQ6XG4gICAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5TWU5DOlxuICAgICAgICBoaWRlKClcbiAgICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVDYWxsYmFjayh7XG4gICAgc2hvdyxcbiAgICBoaWRlLFxuICB9KVxuXG4gIGZ1bmN0aW9uIHVwZGF0ZUNvbnRhaW5lcigpIHtcbiAgICBpZiAoaXNCdWlsZGluZykge1xuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoYCR7cHJlZml4fWJ1aWxkaW5nYClcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoYCR7cHJlZml4fWJ1aWxkaW5nYClcbiAgICB9XG5cbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICBjb250YWluZXIuY2xhc3NMaXN0LmFkZChgJHtwcmVmaXh9dmlzaWJsZWApXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKGAke3ByZWZpeH12aXNpYmxlYClcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlQ29udGFpbmVyKHByZWZpeDogc3RyaW5nKSB7XG4gIGNvbnN0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIGNvbnRhaW5lci5pZCA9IGAke3ByZWZpeH1jb250YWluZXJgXG4gIGNvbnRhaW5lci5pbm5lckhUTUwgPSBgXG4gICAgPGRpdiBpZD1cIiR7cHJlZml4fWljb24td3JhcHBlclwiPlxuICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDIyNiAyMDBcIj5cbiAgICAgICAgPGRlZnM+XG4gICAgICAgICAgPGxpbmVhckdyYWRpZW50XG4gICAgICAgICAgICB4MT1cIjExNC43MjA3NzUlXCJcbiAgICAgICAgICAgIHkxPVwiMTgxLjI4MzI0NSVcIlxuICAgICAgICAgICAgeDI9XCIzOS41Mzk5MzA2JVwiXG4gICAgICAgICAgICB5Mj1cIjEwMCVcIlxuICAgICAgICAgICAgaWQ9XCIke3ByZWZpeH1saW5lYXItZ3JhZGllbnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9XCIjMDAwMDAwXCIgb2Zmc2V0PVwiMCVcIiAvPlxuICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj1cIiNGRkZGRkZcIiBvZmZzZXQ9XCIxMDAlXCIgLz5cbiAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgICA8L2RlZnM+XG4gICAgICAgIDxnIGlkPVwiJHtwcmVmaXh9aWNvbi1ncm91cFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwidXJsKCMke3ByZWZpeH1saW5lYXItZ3JhZGllbnQpXCIgc3Ryb2tlLXdpZHRoPVwiMThcIj5cbiAgICAgICAgICA8cGF0aCBkPVwiTTExMyw1LjA4MjE5MTE3IEw0LjI4MzkzODAxLDE5Ny41IEwyMjEuNzE2MDYyLDE5Ny41IEwxMTMsNS4wODIxOTExNyBaXCIgLz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gIGBcblxuICByZXR1cm4gY29udGFpbmVyXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUNzcyhcbiAgcHJlZml4OiBzdHJpbmcsXG4gIHtcbiAgICBob3Jpem9udGFsUHJvcGVydHksXG4gICAgdmVydGljYWxQcm9wZXJ0eSxcbiAgfTogeyBob3Jpem9udGFsUHJvcGVydHk6IHN0cmluZzsgdmVydGljYWxQcm9wZXJ0eTogc3RyaW5nIH1cbikge1xuICBjb25zdCBjc3MgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpXG4gIGNzcy50ZXh0Q29udGVudCA9IGBcbiAgICAjJHtwcmVmaXh9Y29udGFpbmVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICR7dmVydGljYWxQcm9wZXJ0eX06IDEwcHg7XG4gICAgICAke2hvcml6b250YWxQcm9wZXJ0eX06IDMwcHg7XG5cbiAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQ6IGluaXRpYWw7XG4gICAgICBjdXJzb3I6IGluaXRpYWw7XG4gICAgICBsZXR0ZXItc3BhY2luZzogaW5pdGlhbDtcbiAgICAgIHRleHQtc2hhZG93OiBpbml0aWFsO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IGluaXRpYWw7XG4gICAgICB2aXNpYmlsaXR5OiBpbml0aWFsO1xuXG4gICAgICBwYWRkaW5nOiA3cHggMTBweCA4cHggMTBweDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBib3gtc2hhZG93OiAwIDExcHggNDBweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSksIDAgMnB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuXG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xcyBlYXNlLCAke3ZlcnRpY2FsUHJvcGVydHl9IDAuMXMgZWFzZTtcbiAgICAgIGFuaW1hdGlvbjogJHtwcmVmaXh9ZmFkZS1pbiAwLjFzIGVhc2UtaW4tb3V0O1xuICAgIH1cblxuICAgICMke3ByZWZpeH1jb250YWluZXIuJHtwcmVmaXh9dmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgICMke3ByZWZpeH1jb250YWluZXIuJHtwcmVmaXh9YnVpbGRpbmcge1xuICAgICAgJHt2ZXJ0aWNhbFByb3BlcnR5fTogMjBweDtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgIyR7cHJlZml4fWljb24td3JhcHBlciB7XG4gICAgICB3aWR0aDogMTZweDtcbiAgICAgIGhlaWdodDogMTZweDtcbiAgICB9XG5cbiAgICAjJHtwcmVmaXh9aWNvbi13cmFwcGVyID4gc3ZnIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICMke3ByZWZpeH1pY29uLWdyb3VwIHtcbiAgICAgIGFuaW1hdGlvbjogJHtwcmVmaXh9c3Ryb2tlZGFzaCAxcyBlYXNlLWluLW91dCBib3RoIGluZmluaXRlO1xuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgJHtwcmVmaXh9ZmFkZS1pbiB7XG4gICAgICBmcm9tIHtcbiAgICAgICAgJHt2ZXJ0aWNhbFByb3BlcnR5fTogMTBweDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cbiAgICAgIHRvIHtcbiAgICAgICAgJHt2ZXJ0aWNhbFByb3BlcnR5fTogMjBweDtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzICR7cHJlZml4fXN0cm9rZWRhc2gge1xuICAgICAgMCUge1xuICAgICAgICBzdHJva2UtZGFzaGFycmF5OiAwIDIyNjtcbiAgICAgIH1cbiAgICAgIDgwJSxcbiAgICAgIDEwMCUge1xuICAgICAgICBzdHJva2UtZGFzaGFycmF5OiA2NTkgMjI2O1xuICAgICAgfVxuICAgIH1cbiAgYFxuXG4gIHJldHVybiBjc3Ncbn1cbiJdLCJuYW1lcyI6WyJpbml0aWFsaXplQnVpbGRXYXRjaGVyIiwidG9nZ2xlQ2FsbGJhY2siLCJwb3NpdGlvbiIsInNoYWRvd0hvc3QiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJ2ZXJ0aWNhbFByb3BlcnR5IiwiaG9yaXpvbnRhbFByb3BlcnR5Iiwic3BsaXQiLCJpZCIsInN0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJ6SW5kZXgiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJzaGFkb3dSb290IiwicHJlZml4IiwiYXR0YWNoU2hhZG93IiwibW9kZSIsImNvbnRhaW5lciIsImNyZWF0ZUNvbnRhaW5lciIsImNzcyIsImNyZWF0ZUNzcyIsImlzVmlzaWJsZSIsImlzQnVpbGRpbmciLCJ0aW1lb3V0SWQiLCJhZGRNZXNzYWdlTGlzdGVuZXIiLCJvYmoiLCJoYW5kbGVNZXNzYWdlIiwic2hvdyIsImNsZWFyVGltZW91dCIsInVwZGF0ZUNvbnRhaW5lciIsImhpZGUiLCJzZXRUaW1lb3V0IiwiYWN0aW9uIiwiSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSIiwiQlVJTERJTkciLCJCVUlMVCIsIlNZTkMiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmUiLCJpbm5lckhUTUwiLCJ0ZXh0Q29udGVudCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/dev-build-watcher.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/fouc.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/client/dev/fouc.js ***! + \***************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// This wrapper function is used to safely select the best available function\n// to schedule removal of the no-FOUC styles workaround. requestAnimationFrame\n// is the ideal choice, but when used in iframes, there are no guarantees that\n// the callback will actually be called, which could stall the promise returned\n// from displayContent.\n//\n// See: https://www.vector-logic.com/blog/posts/on-request-animation-frame-and-embedded-iframes\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"displayContent\", ({\n enumerable: true,\n get: function() {\n return displayContent;\n }\n}));\nconst safeCallbackQueue = (callback)=>{\n if (window.requestAnimationFrame && window.self === window.top) {\n window.requestAnimationFrame(callback);\n } else {\n window.setTimeout(callback);\n }\n};\nfunction displayContent() {\n return new Promise((resolve)=>{\n safeCallbackQueue(function() {\n for(var x = document.querySelectorAll('[data-next-hide-fouc]'), i = x.length; i--;){\n x[i].parentNode.removeChild(x[i]);\n }\n resolve();\n });\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=fouc.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvZm91Yy5qcyIsIm1hcHBpbmdzIjoiQUFBQSw2RUFBNkU7QUFDN0UsOEVBQThFO0FBQzlFLDhFQUE4RTtBQUM5RSwrRUFBK0U7QUFDL0UsdUJBQXVCO0FBQ3ZCLEVBQUU7QUFDRiwrRkFBK0Y7Ozs7O2tEQVkvRUE7OztlQUFBQTs7O0FBWGhCLE1BQU1DLG9CQUFvQixDQUFDQztJQUN6QixJQUFJQyxPQUFPQyxxQkFBcUIsSUFBSUQsT0FBT0UsSUFBSSxLQUFLRixPQUFPRyxHQUFHLEVBQUU7UUFDOURILE9BQU9DLHFCQUFxQixDQUFDRjtJQUMvQixPQUFPO1FBQ0xDLE9BQU9JLFVBQVUsQ0FBQ0w7SUFDcEI7QUFDRjtBQUtPLFNBQVNGO0lBQ2QsT0FBTyxJQUFJUSxRQUFRLENBQUNDO1FBQ2xCUixrQkFBa0I7WUFDaEIsSUFDRSxJQUFJUyxJQUFJQyxTQUFTQyxnQkFBZ0IsQ0FBQywwQkFDaENDLElBQUlILEVBQUVJLE1BQU0sRUFDZEQsS0FFQTtnQkFDQUgsQ0FBQyxDQUFDRyxFQUFFLENBQUNFLFVBQVUsQ0FBRUMsV0FBVyxDQUFDTixDQUFDLENBQUNHLEVBQUU7WUFDbkM7WUFDQUo7UUFDRjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9jbGllbnQvZGV2L2ZvdWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyB3cmFwcGVyIGZ1bmN0aW9uIGlzIHVzZWQgdG8gc2FmZWx5IHNlbGVjdCB0aGUgYmVzdCBhdmFpbGFibGUgZnVuY3Rpb25cbi8vIHRvIHNjaGVkdWxlIHJlbW92YWwgb2YgdGhlIG5vLUZPVUMgc3R5bGVzIHdvcmthcm91bmQuIHJlcXVlc3RBbmltYXRpb25GcmFtZVxuLy8gaXMgdGhlIGlkZWFsIGNob2ljZSwgYnV0IHdoZW4gdXNlZCBpbiBpZnJhbWVzLCB0aGVyZSBhcmUgbm8gZ3VhcmFudGVlcyB0aGF0XG4vLyB0aGUgY2FsbGJhY2sgd2lsbCBhY3R1YWxseSBiZSBjYWxsZWQsIHdoaWNoIGNvdWxkIHN0YWxsIHRoZSBwcm9taXNlIHJldHVybmVkXG4vLyBmcm9tIGRpc3BsYXlDb250ZW50LlxuLy9cbi8vIFNlZTogaHR0cHM6Ly93d3cudmVjdG9yLWxvZ2ljLmNvbS9ibG9nL3Bvc3RzL29uLXJlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWFuZC1lbWJlZGRlZC1pZnJhbWVzXG5jb25zdCBzYWZlQ2FsbGJhY2tRdWV1ZSA9IChjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xuICBpZiAod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSAmJiB3aW5kb3cuc2VsZiA9PT0gd2luZG93LnRvcCkge1xuICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2FsbGJhY2spXG4gIH0gZWxzZSB7XG4gICAgd2luZG93LnNldFRpbWVvdXQoY2FsbGJhY2spXG4gIH1cbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJlbW92ZSBOZXh0LmpzJyBuby1GT1VDIHN0eWxlcyB3b3JrYXJvdW5kIGZvciB1c2luZ1xuLy8gYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQuIEl0IG11c3QgYmUgY2FsbGVkIGJlZm9yZSBoeWRyYXRpb24sIG9yIGVsc2Vcbi8vIHJlbmRlcmluZyB3b24ndCBoYXZlIHRoZSBjb3JyZWN0IGNvbXB1dGVkIHZhbHVlcyBpbiBlZmZlY3RzLlxuZXhwb3J0IGZ1bmN0aW9uIGRpc3BsYXlDb250ZW50KCk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICBzYWZlQ2FsbGJhY2tRdWV1ZShmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgeCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLW5leHQtaGlkZS1mb3VjXScpLFxuICAgICAgICAgIGkgPSB4Lmxlbmd0aDtcbiAgICAgICAgaS0tO1xuXG4gICAgICApIHtcbiAgICAgICAgeFtpXS5wYXJlbnROb2RlIS5yZW1vdmVDaGlsZCh4W2ldKVxuICAgICAgfVxuICAgICAgcmVzb2x2ZSgpXG4gICAgfSlcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJkaXNwbGF5Q29udGVudCIsInNhZmVDYWxsYmFja1F1ZXVlIiwiY2FsbGJhY2siLCJ3aW5kb3ciLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJzZWxmIiwidG9wIiwic2V0VGltZW91dCIsIlByb21pc2UiLCJyZXNvbHZlIiwieCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImkiLCJsZW5ndGgiLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/fouc.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/hot-middleware-client.js": +/*!********************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/hot-middleware-client.js ***! + \********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _hotreloaderclient = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../components/react-dev-overlay/pages/hot-reloader-client */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/hot-reloader-client.js\"));\nconst _websocket = __webpack_require__(/*! ../components/react-dev-overlay/pages/websocket */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/websocket.js\");\nlet reloading = false;\nconst _default = (mode)=>{\n const devClient = (0, _hotreloaderclient.default)(mode);\n devClient.subscribeToHmrEvent((obj)=>{\n if (reloading) return;\n // if we're on an error/404 page, we can't reliably tell if the newly added/removed page\n // matches the current path. In that case, assume any added/removed entries should trigger a reload of the current page\n const isOnErrorPage = window.next.router.pathname === '/404' || window.next.router.pathname === '/_error';\n switch(obj.action){\n case 'reloadPage':\n {\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-reload-page',\n clientId: window.__nextDevClientId\n }));\n reloading = true;\n return window.location.reload();\n }\n case 'removedPage':\n {\n const [page] = obj.data;\n if (page === window.next.router.pathname || isOnErrorPage) {\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-removed-page',\n clientId: window.__nextDevClientId,\n page\n }));\n return window.location.reload();\n }\n return;\n }\n case 'addedPage':\n {\n const [page] = obj.data;\n if (page === window.next.router.pathname && typeof window.next.router.components[page] === 'undefined' || isOnErrorPage) {\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'client-added-page',\n clientId: window.__nextDevClientId,\n page\n }));\n return window.location.reload();\n }\n return;\n }\n case 'serverError':\n case 'devPagesManifestUpdate':\n case 'appIsrManifest':\n case 'building':\n case 'finishBuilding':\n {\n return;\n }\n default:\n {\n throw new Error('Unexpected action ' + obj.action);\n }\n }\n });\n return devClient;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=hot-middleware-client.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvaG90LW1pZGRsZXdhcmUtY2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBS0E7OztlQUFBOzs7O3dGQUxvQjt1Q0FDUTtBQUU1QixJQUFJQSxZQUFZO01BRWhCLFdBQWUsQ0FBQ0M7SUFDZCxNQUFNQyxZQUFZQyxDQUFBQSxHQUFBQSxtQkFBQUEsT0FBTyxFQUFDRjtJQUUxQkMsVUFBVUUsbUJBQW1CLENBQUMsQ0FBQ0M7UUFDN0IsSUFBSUwsV0FBVztRQUNmLHdGQUF3RjtRQUN4Rix1SEFBdUg7UUFDdkgsTUFBTU0sZ0JBQ0pDLE9BQU9DLElBQUksQ0FBQ0MsTUFBTSxDQUFDQyxRQUFRLEtBQUssVUFDaENILE9BQU9DLElBQUksQ0FBQ0MsTUFBTSxDQUFDQyxRQUFRLEtBQUs7UUFFbEMsT0FBUUwsSUFBSU0sTUFBTTtZQUNoQixLQUFLO2dCQUFjO29CQUNqQkMsQ0FBQUEsR0FBQUEsV0FBQUEsV0FBQUEsRUFDRUMsS0FBS0MsU0FBUyxDQUFDO3dCQUNiQyxPQUFPO3dCQUNQQyxVQUFVVCxPQUFPVSxpQkFBaUI7b0JBQ3BDO29CQUVGakIsWUFBWTtvQkFDWixPQUFPTyxPQUFPVyxRQUFRLENBQUNDLE1BQU07Z0JBQy9CO1lBQ0EsS0FBSztnQkFBZTtvQkFDbEIsTUFBTSxDQUFDQyxLQUFLLEdBQUdmLElBQUlnQixJQUFJO29CQUN2QixJQUFJRCxTQUFTYixPQUFPQyxJQUFJLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxJQUFJSixlQUFlO3dCQUN6RE0sQ0FBQUEsR0FBQUEsV0FBQUEsV0FBQUEsRUFDRUMsS0FBS0MsU0FBUyxDQUFDOzRCQUNiQyxPQUFPOzRCQUNQQyxVQUFVVCxPQUFPVSxpQkFBaUI7NEJBQ2xDRzt3QkFDRjt3QkFFRixPQUFPYixPQUFPVyxRQUFRLENBQUNDLE1BQU07b0JBQy9CO29CQUNBO2dCQUNGO1lBQ0EsS0FBSztnQkFBYTtvQkFDaEIsTUFBTSxDQUFDQyxLQUFLLEdBQUdmLElBQUlnQixJQUFJO29CQUN2QixJQUNHRCxTQUFTYixPQUFPQyxJQUFJLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxJQUNuQyxPQUFPSCxPQUFPQyxJQUFJLENBQUNDLE1BQU0sQ0FBQ2EsVUFBVSxDQUFDRixLQUFLLEtBQUssZUFDakRkLGVBQ0E7d0JBQ0FNLENBQUFBLEdBQUFBLFdBQUFBLFdBQUFBLEVBQ0VDLEtBQUtDLFNBQVMsQ0FBQzs0QkFDYkMsT0FBTzs0QkFDUEMsVUFBVVQsT0FBT1UsaUJBQWlCOzRCQUNsQ0c7d0JBQ0Y7d0JBRUYsT0FBT2IsT0FBT1csUUFBUSxDQUFDQyxNQUFNO29CQUMvQjtvQkFDQTtnQkFDRjtZQUNBLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO2dCQUFrQjtvQkFDckI7Z0JBQ0Y7WUFDQTtnQkFBUztvQkFDUCxNQUFNLElBQUlJLE1BQU0sdUJBQXVCbEIsSUFBSU0sTUFBTTtnQkFDbkQ7UUFDRjtJQUNGO0lBRUEsT0FBT1Q7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2NsaWVudC9kZXYvaG90LW1pZGRsZXdhcmUtY2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb25uZWN0IGZyb20gJy4uL2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvcGFnZXMvaG90LXJlbG9hZGVyLWNsaWVudCdcbmltcG9ydCB7IHNlbmRNZXNzYWdlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9wYWdlcy93ZWJzb2NrZXQnXG5cbmxldCByZWxvYWRpbmcgPSBmYWxzZVxuXG5leHBvcnQgZGVmYXVsdCAobW9kZTogJ3dlYnBhY2snIHwgJ3R1cmJvcGFjaycpID0+IHtcbiAgY29uc3QgZGV2Q2xpZW50ID0gY29ubmVjdChtb2RlKVxuXG4gIGRldkNsaWVudC5zdWJzY3JpYmVUb0htckV2ZW50KChvYmo6IGFueSkgPT4ge1xuICAgIGlmIChyZWxvYWRpbmcpIHJldHVyblxuICAgIC8vIGlmIHdlJ3JlIG9uIGFuIGVycm9yLzQwNCBwYWdlLCB3ZSBjYW4ndCByZWxpYWJseSB0ZWxsIGlmIHRoZSBuZXdseSBhZGRlZC9yZW1vdmVkIHBhZ2VcbiAgICAvLyBtYXRjaGVzIHRoZSBjdXJyZW50IHBhdGguIEluIHRoYXQgY2FzZSwgYXNzdW1lIGFueSBhZGRlZC9yZW1vdmVkIGVudHJpZXMgc2hvdWxkIHRyaWdnZXIgYSByZWxvYWQgb2YgdGhlIGN1cnJlbnQgcGFnZVxuICAgIGNvbnN0IGlzT25FcnJvclBhZ2UgPVxuICAgICAgd2luZG93Lm5leHQucm91dGVyLnBhdGhuYW1lID09PSAnLzQwNCcgfHxcbiAgICAgIHdpbmRvdy5uZXh0LnJvdXRlci5wYXRobmFtZSA9PT0gJy9fZXJyb3InXG5cbiAgICBzd2l0Y2ggKG9iai5hY3Rpb24pIHtcbiAgICAgIGNhc2UgJ3JlbG9hZFBhZ2UnOiB7XG4gICAgICAgIHNlbmRNZXNzYWdlKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGV2ZW50OiAnY2xpZW50LXJlbG9hZC1wYWdlJyxcbiAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICByZWxvYWRpbmcgPSB0cnVlXG4gICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3JlbW92ZWRQYWdlJzoge1xuICAgICAgICBjb25zdCBbcGFnZV0gPSBvYmouZGF0YVxuICAgICAgICBpZiAocGFnZSA9PT0gd2luZG93Lm5leHQucm91dGVyLnBhdGhuYW1lIHx8IGlzT25FcnJvclBhZ2UpIHtcbiAgICAgICAgICBzZW5kTWVzc2FnZShcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtcmVtb3ZlZC1wYWdlJyxcbiAgICAgICAgICAgICAgY2xpZW50SWQ6IHdpbmRvdy5fX25leHREZXZDbGllbnRJZCxcbiAgICAgICAgICAgICAgcGFnZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGNhc2UgJ2FkZGVkUGFnZSc6IHtcbiAgICAgICAgY29uc3QgW3BhZ2VdID0gb2JqLmRhdGFcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChwYWdlID09PSB3aW5kb3cubmV4dC5yb3V0ZXIucGF0aG5hbWUgJiZcbiAgICAgICAgICAgIHR5cGVvZiB3aW5kb3cubmV4dC5yb3V0ZXIuY29tcG9uZW50c1twYWdlXSA9PT0gJ3VuZGVmaW5lZCcpIHx8XG4gICAgICAgICAgaXNPbkVycm9yUGFnZVxuICAgICAgICApIHtcbiAgICAgICAgICBzZW5kTWVzc2FnZShcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgZXZlbnQ6ICdjbGllbnQtYWRkZWQtcGFnZScsXG4gICAgICAgICAgICAgIGNsaWVudElkOiB3aW5kb3cuX19uZXh0RGV2Q2xpZW50SWQsXG4gICAgICAgICAgICAgIHBhZ2UsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjYXNlICdzZXJ2ZXJFcnJvcic6XG4gICAgICBjYXNlICdkZXZQYWdlc01hbmlmZXN0VXBkYXRlJzpcbiAgICAgIGNhc2UgJ2FwcElzck1hbmlmZXN0JzpcbiAgICAgIGNhc2UgJ2J1aWxkaW5nJzpcbiAgICAgIGNhc2UgJ2ZpbmlzaEJ1aWxkaW5nJzoge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmV4cGVjdGVkIGFjdGlvbiAnICsgb2JqLmFjdGlvbilcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIGRldkNsaWVudFxufVxuIl0sIm5hbWVzIjpbInJlbG9hZGluZyIsIm1vZGUiLCJkZXZDbGllbnQiLCJjb25uZWN0Iiwic3Vic2NyaWJlVG9IbXJFdmVudCIsIm9iaiIsImlzT25FcnJvclBhZ2UiLCJ3aW5kb3ciLCJuZXh0Iiwicm91dGVyIiwicGF0aG5hbWUiLCJhY3Rpb24iLCJzZW5kTWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJldmVudCIsImNsaWVudElkIiwiX19uZXh0RGV2Q2xpZW50SWQiLCJsb2NhdGlvbiIsInJlbG9hZCIsInBhZ2UiLCJkYXRhIiwiY29tcG9uZW50cyIsIkVycm9yIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/hot-middleware-client.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/dev/on-demand-entries-client.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/client/dev/on-demand-entries-client.js ***! + \***********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _router = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../router */ \"./node_modules/next/dist/client/router.js\"));\nconst _websocket = __webpack_require__(/*! ../components/react-dev-overlay/pages/websocket */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/websocket.js\");\nconst _default = async (page)=>{\n if (page) {\n // in AMP the router isn't initialized on the client and\n // client-transitions don't occur so ping initial page\n setInterval(()=>{\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'ping',\n page\n }));\n }, 2500);\n } else {\n _router.default.ready(()=>{\n setInterval(()=>{\n // when notFound: true is returned we should use the notFoundPage\n // as the Router.pathname will point to the 404 page but we want\n // to ping the source page that returned notFound: true instead\n const notFoundSrcPage = self.__NEXT_DATA__.notFoundSrcPage;\n const pathname = (_router.default.pathname === '/404' || _router.default.pathname === '/_error') && notFoundSrcPage ? notFoundSrcPage : _router.default.pathname;\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'ping',\n page: pathname\n }));\n }, 2500);\n });\n }\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=on-demand-entries-client.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBR0E7OztlQUFBOzs7OzZFQUhtQjt1Q0FDUztNQUU1QixXQUFlLE9BQU9BO0lBQ3BCLElBQUlBLE1BQU07UUFDUix3REFBd0Q7UUFDeEQsc0RBQXNEO1FBQ3REQyxZQUFZO1lBQ1ZDLENBQUFBLEdBQUFBLFdBQUFBLFdBQUFBLEVBQVlDLEtBQUtDLFNBQVMsQ0FBQztnQkFBRUMsT0FBTztnQkFBUUw7WUFBSztRQUNuRCxHQUFHO0lBQ0wsT0FBTztRQUNMTSxRQUFBQSxPQUFNLENBQUNDLEtBQUssQ0FBQztZQUNYTixZQUFZO2dCQUNWLGlFQUFpRTtnQkFDakUsZ0VBQWdFO2dCQUNoRSwrREFBK0Q7Z0JBQy9ELE1BQU1PLGtCQUFrQkMsS0FBS0MsYUFBYSxDQUFDRixlQUFlO2dCQUMxRCxNQUFNRyxXQUNITCxDQUFBQSxRQUFBQSxPQUFNLENBQUNLLFFBQVEsS0FBSyxVQUFVTCxRQUFBQSxPQUFNLENBQUNLLFFBQVEsS0FBSyxVQUFRLElBQzNESCxrQkFDSUEsa0JBQ0FGLFFBQUFBLE9BQU0sQ0FBQ0ssUUFBUTtnQkFFckJULENBQUFBLEdBQUFBLFdBQUFBLFdBQUFBLEVBQVlDLEtBQUtDLFNBQVMsQ0FBQztvQkFBRUMsT0FBTztvQkFBUUwsTUFBTVc7Z0JBQVM7WUFDN0QsR0FBRztRQUNMO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2NsaWVudC9kZXYvb24tZGVtYW5kLWVudHJpZXMtY2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSb3V0ZXIgZnJvbSAnLi4vcm91dGVyJ1xuaW1wb3J0IHsgc2VuZE1lc3NhZ2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL3dlYnNvY2tldCdcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgKHBhZ2U/OiBzdHJpbmcpID0+IHtcbiAgaWYgKHBhZ2UpIHtcbiAgICAvLyBpbiBBTVAgdGhlIHJvdXRlciBpc24ndCBpbml0aWFsaXplZCBvbiB0aGUgY2xpZW50IGFuZFxuICAgIC8vIGNsaWVudC10cmFuc2l0aW9ucyBkb24ndCBvY2N1ciBzbyBwaW5nIGluaXRpYWwgcGFnZVxuICAgIHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHNlbmRNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHsgZXZlbnQ6ICdwaW5nJywgcGFnZSB9KSlcbiAgICB9LCAyNTAwKVxuICB9IGVsc2Uge1xuICAgIFJvdXRlci5yZWFkeSgoKSA9PiB7XG4gICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIC8vIHdoZW4gbm90Rm91bmQ6IHRydWUgaXMgcmV0dXJuZWQgd2Ugc2hvdWxkIHVzZSB0aGUgbm90Rm91bmRQYWdlXG4gICAgICAgIC8vIGFzIHRoZSBSb3V0ZXIucGF0aG5hbWUgd2lsbCBwb2ludCB0byB0aGUgNDA0IHBhZ2UgYnV0IHdlIHdhbnRcbiAgICAgICAgLy8gdG8gcGluZyB0aGUgc291cmNlIHBhZ2UgdGhhdCByZXR1cm5lZCBub3RGb3VuZDogdHJ1ZSBpbnN0ZWFkXG4gICAgICAgIGNvbnN0IG5vdEZvdW5kU3JjUGFnZSA9IHNlbGYuX19ORVhUX0RBVEFfXy5ub3RGb3VuZFNyY1BhZ2VcbiAgICAgICAgY29uc3QgcGF0aG5hbWUgPVxuICAgICAgICAgIChSb3V0ZXIucGF0aG5hbWUgPT09ICcvNDA0JyB8fCBSb3V0ZXIucGF0aG5hbWUgPT09ICcvX2Vycm9yJykgJiZcbiAgICAgICAgICBub3RGb3VuZFNyY1BhZ2VcbiAgICAgICAgICAgID8gbm90Rm91bmRTcmNQYWdlXG4gICAgICAgICAgICA6IFJvdXRlci5wYXRobmFtZVxuXG4gICAgICAgIHNlbmRNZXNzYWdlKEpTT04uc3RyaW5naWZ5KHsgZXZlbnQ6ICdwaW5nJywgcGFnZTogcGF0aG5hbWUgfSkpXG4gICAgICB9LCAyNTAwKVxuICAgIH0pXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJwYWdlIiwic2V0SW50ZXJ2YWwiLCJzZW5kTWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJldmVudCIsIlJvdXRlciIsInJlYWR5Iiwibm90Rm91bmRTcmNQYWdlIiwic2VsZiIsIl9fTkVYVF9EQVRBX18iLCJwYXRobmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/dev/on-demand-entries-client.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/has-base-path.js": +/*!********************************************************!*\ + !*** ./node_modules/next/dist/client/has-base-path.js ***! + \********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"hasBasePath\", ({\n enumerable: true,\n get: function() {\n return hasBasePath;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ../shared/lib/router/utils/path-has-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nconst basePath = false || '';\nfunction hasBasePath(path) {\n return (0, _pathhasprefix.pathHasPrefix)(path, basePath);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=has-base-path.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9oYXMtYmFzZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7K0NBSWdCQTs7O2VBQUFBOzs7MkNBSmM7QUFFOUIsTUFBTUMsV0FBWUMsTUFBa0MsSUFBZTtBQUU1RCxTQUFTRixZQUFZSyxJQUFZO0lBQ3RDLE9BQU9DLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNELE1BQU1KO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvY2xpZW50L2hhcy1iYXNlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeCdcblxuY29uc3QgYmFzZVBhdGggPSAocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCBhcyBzdHJpbmcpIHx8ICcnXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNCYXNlUGF0aChwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBhdGhIYXNQcmVmaXgocGF0aCwgYmFzZVBhdGgpXG59XG4iXSwibmFtZXMiOlsiaGFzQmFzZVBhdGgiLCJiYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwicGF0aCIsInBhdGhIYXNQcmVmaXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/has-base-path.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/head-manager.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/head-manager.js ***! + \*******************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return initHeadManager;\n },\n isEqualNode: function() {\n return isEqualNode;\n }\n});\nconst _setattributesfromprops = __webpack_require__(/*! ./set-attributes-from-props */ \"./node_modules/next/dist/client/set-attributes-from-props.js\");\nfunction reactElementToDOM(param) {\n let { type, props } = param;\n const el = document.createElement(type);\n (0, _setattributesfromprops.setAttributesFromProps)(el, props);\n const { children, dangerouslySetInnerHTML } = props;\n if (dangerouslySetInnerHTML) {\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n return el;\n}\nfunction isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute('nonce');\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute('nonce')) {\n const cloneTag = newTag.cloneNode(true);\n cloneTag.setAttribute('nonce', '');\n cloneTag.nonce = nonce;\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag);\n }\n }\n return oldTag.isEqualNode(newTag);\n}\nlet updateElements;\nif (true) {\n updateElements = (type, components)=>{\n const headEl = document.querySelector('head');\n if (!headEl) return;\n const oldTags = new Set(headEl.querySelectorAll(\"\" + type + \"[data-next-head]\"));\n if (type === 'meta') {\n const metaCharset = headEl.querySelector('meta[charset]');\n if (metaCharset !== null) {\n oldTags.add(metaCharset);\n }\n }\n const newTags = [];\n for(let i = 0; i < components.length; i++){\n const component = components[i];\n const newTag = reactElementToDOM(component);\n newTag.setAttribute('data-next-head', '');\n let isNew = true;\n for (const oldTag of oldTags){\n if (isEqualNode(oldTag, newTag)) {\n oldTags.delete(oldTag);\n isNew = false;\n break;\n }\n }\n if (isNew) {\n newTags.push(newTag);\n }\n }\n for (const oldTag of oldTags){\n var _oldTag_parentNode;\n (_oldTag_parentNode = oldTag.parentNode) == null ? void 0 : _oldTag_parentNode.removeChild(oldTag);\n }\n for (const newTag of newTags){\n // meta[charset] must be first element so special case\n if (newTag.tagName.toLowerCase() === 'meta' && newTag.getAttribute('charset') !== null) {\n headEl.prepend(newTag);\n }\n headEl.appendChild(newTag);\n }\n };\n} else {}\nfunction initHeadManager() {\n return {\n mountedInstances: new Set(),\n updateHead: (head)=>{\n const tags = {};\n head.forEach((h)=>{\n if (// it won't be inlined. In this case revert to the original behavior\n h.type === 'link' && h.props['data-optimized-fonts']) {\n if (document.querySelector('style[data-href=\"' + h.props['data-href'] + '\"]')) {\n return;\n } else {\n h.props.href = h.props['data-href'];\n h.props['data-href'] = undefined;\n }\n }\n const components = tags[h.type] || [];\n components.push(h);\n tags[h.type] = components;\n });\n const titleComponent = tags.title ? tags.title[0] : null;\n let title = '';\n if (titleComponent) {\n const { children } = titleComponent.props;\n title = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n }\n if (title !== document.title) document.title = title;\n [\n 'meta',\n 'base',\n 'link',\n 'style',\n 'script'\n ].forEach((type)=>{\n updateElements(type, tags[type] || []);\n });\n }\n };\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head-manager.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9oZWFkLW1hbmFnZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBeUpBLE9BZ0RDO2VBaER1QkE7O0lBckhSQyxXQUFXO2VBQVhBOzs7b0RBcEN1QjtBQUl2QyxTQUFTQyxrQkFBa0IsS0FBNEI7SUFBNUIsTUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQWUsR0FBNUI7SUFDekIsTUFBTUMsS0FBa0JDLFNBQVNDLGFBQWEsQ0FBQ0o7SUFDL0NLLENBQUFBLEdBQUFBLHdCQUFBQSxzQkFBc0IsRUFBQ0gsSUFBSUQ7SUFFM0IsTUFBTSxFQUFFSyxRQUFRLEVBQUVDLHVCQUF1QixFQUFFLEdBQUdOO0lBQzlDLElBQUlNLHlCQUF5QjtRQUMzQkwsR0FBR00sU0FBUyxHQUFHRCx3QkFBd0JFLE1BQU0sSUFBSTtJQUNuRCxPQUFPLElBQUlILFVBQVU7UUFDbkJKLEdBQUdRLFdBQVcsR0FDWixPQUFPSixhQUFhLFdBQ2hCQSxXQUNBSyxNQUFNQyxPQUFPLENBQUNOLFlBQ1pBLFNBQVNPLElBQUksQ0FBQyxNQUNkO0lBQ1Y7SUFDQSxPQUFPWDtBQUNUO0FBZ0JPLFNBQVNKLFlBQVlnQixNQUFlLEVBQUVDLE1BQWU7SUFDMUQsSUFBSUQsa0JBQWtCRSxlQUFlRCxrQkFBa0JDLGFBQWE7UUFDbEUsTUFBTUMsUUFBUUYsT0FBT0csWUFBWSxDQUFDO1FBQ2xDLDhGQUE4RjtRQUM5Riw0RkFBNEY7UUFDNUYsSUFBSUQsU0FBUyxDQUFDSCxPQUFPSSxZQUFZLENBQUMsVUFBVTtZQUMxQyxNQUFNQyxXQUFXSixPQUFPSyxTQUFTLENBQUM7WUFDbENELFNBQVNFLFlBQVksQ0FBQyxTQUFTO1lBQy9CRixTQUFTRixLQUFLLEdBQUdBO1lBQ2pCLE9BQU9BLFVBQVVILE9BQU9HLEtBQUssSUFBSUgsT0FBT2hCLFdBQVcsQ0FBQ3FCO1FBQ3REO0lBQ0Y7SUFFQSxPQUFPTCxPQUFPaEIsV0FBVyxDQUFDaUI7QUFDNUI7QUFFQSxJQUFJTztBQUVKLElBQUlDLElBQW1DLEVBQUU7SUFDdkNELGlCQUFpQixDQUFDdEIsTUFBTTBCO1FBQ3RCLE1BQU1DLFNBQVN4QixTQUFTeUIsYUFBYSxDQUFDO1FBQ3RDLElBQUksQ0FBQ0QsUUFBUTtRQUViLE1BQU1FLFVBQVUsSUFBSUMsSUFBSUgsT0FBT0ksZ0JBQWdCLENBQUUsS0FBRS9CLE9BQUs7UUFFeEQsSUFBSUEsU0FBUyxRQUFRO1lBQ25CLE1BQU1nQyxjQUFjTCxPQUFPQyxhQUFhLENBQUM7WUFDekMsSUFBSUksZ0JBQWdCLE1BQU07Z0JBQ3hCSCxRQUFRSSxHQUFHLENBQUNEO1lBQ2Q7UUFDRjtRQUVBLE1BQU1FLFVBQXFCLEVBQUU7UUFDN0IsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlULFdBQVdVLE1BQU0sRUFBRUQsSUFBSztZQUMxQyxNQUFNRSxZQUFZWCxVQUFVLENBQUNTLEVBQUU7WUFDL0IsTUFBTXBCLFNBQVNoQixrQkFBa0JzQztZQUNqQ3RCLE9BQU9NLFlBQVksQ0FBQyxrQkFBa0I7WUFFdEMsSUFBSWlCLFFBQVE7WUFDWixLQUFLLE1BQU14QixVQUFVZSxRQUFTO2dCQUM1QixJQUFJL0IsWUFBWWdCLFFBQVFDLFNBQVM7b0JBQy9CYyxRQUFRVSxNQUFNLENBQUN6QjtvQkFDZndCLFFBQVE7b0JBQ1I7Z0JBQ0Y7WUFDRjtZQUVBLElBQUlBLE9BQU87Z0JBQ1RKLFFBQVFNLElBQUksQ0FBQ3pCO1lBQ2Y7UUFDRjtRQUVBLEtBQUssTUFBTUQsVUFBVWUsUUFBUztnQkFDNUJmO2FBQUFBLHFCQUFBQSxPQUFPMkIsVUFBQUEsS0FBVSxnQkFBakIzQixtQkFBbUI0QixXQUFXLENBQUM1QjtRQUNqQztRQUVBLEtBQUssTUFBTUMsVUFBVW1CLFFBQVM7WUFDNUIsc0RBQXNEO1lBQ3RELElBQ0VuQixPQUFPNEIsT0FBTyxDQUFDQyxXQUFXLE9BQU8sVUFDakM3QixPQUFPRyxZQUFZLENBQUMsZUFBZSxNQUNuQztnQkFDQVMsT0FBT2tCLE9BQU8sQ0FBQzlCO1lBQ2pCO1lBQ0FZLE9BQU9tQixXQUFXLENBQUMvQjtRQUNyQjtJQUNGO0FBQ0YsT0FBTyxFQWdETjtBQUVjLFNBQVNsQjtJQUl0QixPQUFPO1FBQ0xxRSxrQkFBa0IsSUFBSXBDO1FBQ3RCcUMsWUFBWSxDQUFDQztZQUNYLE1BQU1DLE9BQXNDLENBQUM7WUFFN0NELEtBQUtOLE9BQU8sQ0FBQyxDQUFDUTtnQkFDWixJQUNFLHNEQUFzRCxjQUNjO2dCQUNwRUEsRUFBRXRFLElBQUksS0FBSyxVQUNYc0UsRUFBRXJFLEtBQUssQ0FBQyx1QkFBdUIsRUFDL0I7b0JBQ0EsSUFDRUUsU0FBU3lCLGFBQWEsQ0FBRSxzQkFBbUIwQyxFQUFFckUsS0FBSyxDQUFDLFlBQVksR0FBQyxPQUNoRTt3QkFDQTtvQkFDRixPQUFPO3dCQUNMcUUsRUFBRXJFLEtBQUssQ0FBQ3NFLElBQUksR0FBR0QsRUFBRXJFLEtBQUssQ0FBQyxZQUFZO3dCQUNuQ3FFLEVBQUVyRSxLQUFLLENBQUMsWUFBWSxHQUFHdUU7b0JBQ3pCO2dCQUNGO2dCQUVBLE1BQU05QyxhQUFhMkMsSUFBSSxDQUFDQyxFQUFFdEUsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDckMwQixXQUFXYyxJQUFJLENBQUM4QjtnQkFDaEJELElBQUksQ0FBQ0MsRUFBRXRFLElBQUksQ0FBQyxHQUFHMEI7WUFDakI7WUFFQSxNQUFNK0MsaUJBQWlCSixLQUFLSyxLQUFLLEdBQUdMLEtBQUtLLEtBQUssQ0FBQyxFQUFFLEdBQUc7WUFDcEQsSUFBSUEsUUFBUTtZQUNaLElBQUlELGdCQUFnQjtnQkFDbEIsTUFBTSxFQUFFbkUsUUFBUSxFQUFFLEdBQUdtRSxlQUFleEUsS0FBSztnQkFDekN5RSxRQUNFLE9BQU9wRSxhQUFhLFdBQ2hCQSxXQUNBSyxNQUFNQyxPQUFPLENBQUNOLFlBQ1pBLFNBQVNPLElBQUksQ0FBQyxNQUNkO1lBQ1Y7WUFDQSxJQUFJNkQsVUFBVXZFLFNBQVN1RSxLQUFLLEVBQUV2RSxTQUFTdUUsS0FBSyxHQUFHQTtZQUM5QztnQkFBQztnQkFBUTtnQkFBUTtnQkFBUTtnQkFBUzthQUFTLENBQUNaLE9BQU8sQ0FBQyxDQUFDOUQ7Z0JBQ3BEc0IsZUFBZXRCLE1BQU1xRSxJQUFJLENBQUNyRSxLQUFLLElBQUksRUFBRTtZQUN2QztRQUNGO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvc3JjL2NsaWVudC9oZWFkLW1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2V0QXR0cmlidXRlc0Zyb21Qcm9wcyB9IGZyb20gJy4vc2V0LWF0dHJpYnV0ZXMtZnJvbS1wcm9wcydcblxuaW1wb3J0IHR5cGUgeyBKU1ggfSBmcm9tICdyZWFjdCdcblxuZnVuY3Rpb24gcmVhY3RFbGVtZW50VG9ET00oeyB0eXBlLCBwcm9wcyB9OiBKU1guRWxlbWVudCk6IEhUTUxFbGVtZW50IHtcbiAgY29uc3QgZWw6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0eXBlKVxuICBzZXRBdHRyaWJ1dGVzRnJvbVByb3BzKGVsLCBwcm9wcylcblxuICBjb25zdCB7IGNoaWxkcmVuLCBkYW5nZXJvdXNseVNldElubmVySFRNTCB9ID0gcHJvcHNcbiAgaWYgKGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSB7XG4gICAgZWwuaW5uZXJIVE1MID0gZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sIHx8ICcnXG4gIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcbiAgICBlbC50ZXh0Q29udGVudCA9XG4gICAgICB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnXG4gICAgICAgID8gY2hpbGRyZW5cbiAgICAgICAgOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKVxuICAgICAgICAgID8gY2hpbGRyZW4uam9pbignJylcbiAgICAgICAgICA6ICcnXG4gIH1cbiAgcmV0dXJuIGVsXG59XG5cbi8qKlxuICogV2hlbiBhIGBub25jZWAgaXMgcHJlc2VudCBvbiBhbiBlbGVtZW50LCBicm93c2VycyBzdWNoIGFzIENocm9tZSBhbmQgRmlyZWZveCBzdHJpcCBpdCBvdXQgb2YgdGhlXG4gKiBhY3R1YWwgSFRNTCBhdHRyaWJ1dGVzIGZvciBzZWN1cml0eSByZWFzb25zICp3aGVuIHRoZSBlbGVtZW50IGlzIGFkZGVkIHRvIHRoZSBkb2N1bWVudCouIFRodXMsXG4gKiBnaXZlbiB0d28gZXF1aXZhbGVudCBlbGVtZW50cyB0aGF0IGhhdmUgbm9uY2VzLCBgRWxlbWVudCxpc0VxdWFsTm9kZSgpYCB3aWxsIHJldHVybiBmYWxzZSBpZiBvbmVcbiAqIG9mIHRob3NlIGVsZW1lbnRzIGdldHMgYWRkZWQgdG8gdGhlIGRvY3VtZW50LiBBbHRob3VnaCB0aGUgYGVsZW1lbnQubm9uY2VgIHByb3BlcnR5IHdpbGwgYmUgdGhlXG4gKiBzYW1lIGZvciBib3RoIGVsZW1lbnRzLCB0aGUgb25lIHRoYXQgd2FzIGFkZGVkIHRvIHRoZSBkb2N1bWVudCB3aWxsIHJldHVybiBhbiBlbXB0eSBzdHJpbmcgZm9yXG4gKiBpdHMgbm9uY2UgSFRNTCBhdHRyaWJ1dGUgdmFsdWUuXG4gKlxuICogVGhpcyBjdXN0b20gYGlzRXF1YWxOb2RlKClgIGZ1bmN0aW9uIHRoZXJlZm9yZSByZW1vdmVzIHRoZSBub25jZSB2YWx1ZSBmcm9tIHRoZSBgbmV3VGFnYCBiZWZvcmVcbiAqIGNvbXBhcmluZyBpdCB0byBgb2xkVGFnYCwgcmVzdG9yaW5nIGl0IGFmdGVyd2FyZHMuXG4gKlxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZTpcbiAqIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTEyMTE0NzEjYzEyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VxdWFsTm9kZShvbGRUYWc6IEVsZW1lbnQsIG5ld1RhZzogRWxlbWVudCkge1xuICBpZiAob2xkVGFnIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgbmV3VGFnIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICBjb25zdCBub25jZSA9IG5ld1RhZy5nZXRBdHRyaWJ1dGUoJ25vbmNlJylcbiAgICAvLyBPbmx5IHN0cmlwIHRoZSBub25jZSBpZiBgb2xkVGFnYCBoYXMgaGFkIGl0IHN0cmlwcGVkLiBBbiBlbGVtZW50J3Mgbm9uY2UgYXR0cmlidXRlIHdpbGwgbm90XG4gICAgLy8gYmUgc3RyaXBwZWQgaWYgdGhlcmUgaXMgbm8gY29udGVudCBzZWN1cml0eSBwb2xpY3kgcmVzcG9uc2UgaGVhZGVyIHRoYXQgaW5jbHVkZXMgYSBub25jZS5cbiAgICBpZiAobm9uY2UgJiYgIW9sZFRhZy5nZXRBdHRyaWJ1dGUoJ25vbmNlJykpIHtcbiAgICAgIGNvbnN0IGNsb25lVGFnID0gbmV3VGFnLmNsb25lTm9kZSh0cnVlKSBhcyB0eXBlb2YgbmV3VGFnXG4gICAgICBjbG9uZVRhZy5zZXRBdHRyaWJ1dGUoJ25vbmNlJywgJycpXG4gICAgICBjbG9uZVRhZy5ub25jZSA9IG5vbmNlXG4gICAgICByZXR1cm4gbm9uY2UgPT09IG9sZFRhZy5ub25jZSAmJiBvbGRUYWcuaXNFcXVhbE5vZGUoY2xvbmVUYWcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG9sZFRhZy5pc0VxdWFsTm9kZShuZXdUYWcpXG59XG5cbmxldCB1cGRhdGVFbGVtZW50czogKHR5cGU6IHN0cmluZywgY29tcG9uZW50czogSlNYLkVsZW1lbnRbXSkgPT4gdm9pZFxuXG5pZiAocHJvY2Vzcy5lbnYuX19ORVhUX1NUUklDVF9ORVhUX0hFQUQpIHtcbiAgdXBkYXRlRWxlbWVudHMgPSAodHlwZSwgY29tcG9uZW50cykgPT4ge1xuICAgIGNvbnN0IGhlYWRFbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKVxuICAgIGlmICghaGVhZEVsKSByZXR1cm5cblxuICAgIGNvbnN0IG9sZFRhZ3MgPSBuZXcgU2V0KGhlYWRFbC5xdWVyeVNlbGVjdG9yQWxsKGAke3R5cGV9W2RhdGEtbmV4dC1oZWFkXWApKVxuXG4gICAgaWYgKHR5cGUgPT09ICdtZXRhJykge1xuICAgICAgY29uc3QgbWV0YUNoYXJzZXQgPSBoZWFkRWwucXVlcnlTZWxlY3RvcignbWV0YVtjaGFyc2V0XScpXG4gICAgICBpZiAobWV0YUNoYXJzZXQgIT09IG51bGwpIHtcbiAgICAgICAgb2xkVGFncy5hZGQobWV0YUNoYXJzZXQpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbmV3VGFnczogRWxlbWVudFtdID0gW11cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbXBvbmVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGNvbXBvbmVudHNbaV1cbiAgICAgIGNvbnN0IG5ld1RhZyA9IHJlYWN0RWxlbWVudFRvRE9NKGNvbXBvbmVudClcbiAgICAgIG5ld1RhZy5zZXRBdHRyaWJ1dGUoJ2RhdGEtbmV4dC1oZWFkJywgJycpXG5cbiAgICAgIGxldCBpc05ldyA9IHRydWVcbiAgICAgIGZvciAoY29uc3Qgb2xkVGFnIG9mIG9sZFRhZ3MpIHtcbiAgICAgICAgaWYgKGlzRXF1YWxOb2RlKG9sZFRhZywgbmV3VGFnKSkge1xuICAgICAgICAgIG9sZFRhZ3MuZGVsZXRlKG9sZFRhZylcbiAgICAgICAgICBpc05ldyA9IGZhbHNlXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaXNOZXcpIHtcbiAgICAgICAgbmV3VGFncy5wdXNoKG5ld1RhZylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IG9sZFRhZyBvZiBvbGRUYWdzKSB7XG4gICAgICBvbGRUYWcucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQob2xkVGFnKVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgbmV3VGFnIG9mIG5ld1RhZ3MpIHtcbiAgICAgIC8vIG1ldGFbY2hhcnNldF0gbXVzdCBiZSBmaXJzdCBlbGVtZW50IHNvIHNwZWNpYWwgY2FzZVxuICAgICAgaWYgKFxuICAgICAgICBuZXdUYWcudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnbWV0YScgJiZcbiAgICAgICAgbmV3VGFnLmdldEF0dHJpYnV0ZSgnY2hhcnNldCcpICE9PSBudWxsXG4gICAgICApIHtcbiAgICAgICAgaGVhZEVsLnByZXBlbmQobmV3VGFnKVxuICAgICAgfVxuICAgICAgaGVhZEVsLmFwcGVuZENoaWxkKG5ld1RhZylcbiAgICB9XG4gIH1cbn0gZWxzZSB7XG4gIHVwZGF0ZUVsZW1lbnRzID0gKHR5cGUsIGNvbXBvbmVudHMpID0+IHtcbiAgICBjb25zdCBoZWFkRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdXG4gICAgY29uc3QgaGVhZENvdW50RWw6IEhUTUxNZXRhRWxlbWVudCA9IGhlYWRFbC5xdWVyeVNlbGVjdG9yKFxuICAgICAgJ21ldGFbbmFtZT1uZXh0LWhlYWQtY291bnRdJ1xuICAgICkgYXMgSFRNTE1ldGFFbGVtZW50XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGlmICghaGVhZENvdW50RWwpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnV2FybmluZzogbmV4dC1oZWFkLWNvdW50IGlzIG1pc3NpbmcuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaGVhZC1jb3VudC1taXNzaW5nJ1xuICAgICAgICApXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGhlYWRDb3VudCA9IE51bWJlcihoZWFkQ291bnRFbC5jb250ZW50KVxuICAgIGNvbnN0IG9sZFRhZ3M6IEVsZW1lbnRbXSA9IFtdXG5cbiAgICBmb3IgKFxuICAgICAgbGV0IGkgPSAwLCBqID0gaGVhZENvdW50RWwucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgICAgIGkgPCBoZWFkQ291bnQ7XG4gICAgICBpKyssIGogPSBqPy5wcmV2aW91c0VsZW1lbnRTaWJsaW5nIHx8IG51bGxcbiAgICApIHtcbiAgICAgIGlmIChqPy50YWdOYW1lPy50b0xvd2VyQ2FzZSgpID09PSB0eXBlKSB7XG4gICAgICAgIG9sZFRhZ3MucHVzaChqKVxuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBuZXdUYWdzID0gKGNvbXBvbmVudHMubWFwKHJlYWN0RWxlbWVudFRvRE9NKSBhcyBIVE1MRWxlbWVudFtdKS5maWx0ZXIoXG4gICAgICAobmV3VGFnKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGsgPSAwLCBsZW4gPSBvbGRUYWdzLmxlbmd0aDsgayA8IGxlbjsgaysrKSB7XG4gICAgICAgICAgY29uc3Qgb2xkVGFnID0gb2xkVGFnc1trXVxuICAgICAgICAgIGlmIChpc0VxdWFsTm9kZShvbGRUYWcsIG5ld1RhZykpIHtcbiAgICAgICAgICAgIG9sZFRhZ3Muc3BsaWNlKGssIDEpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICApXG5cbiAgICBvbGRUYWdzLmZvckVhY2goKHQpID0+IHQucGFyZW50Tm9kZT8ucmVtb3ZlQ2hpbGQodCkpXG4gICAgbmV3VGFncy5mb3JFYWNoKCh0KSA9PiBoZWFkRWwuaW5zZXJ0QmVmb3JlKHQsIGhlYWRDb3VudEVsKSlcbiAgICBoZWFkQ291bnRFbC5jb250ZW50ID0gKFxuICAgICAgaGVhZENvdW50IC1cbiAgICAgIG9sZFRhZ3MubGVuZ3RoICtcbiAgICAgIG5ld1RhZ3MubGVuZ3RoXG4gICAgKS50b1N0cmluZygpXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaW5pdEhlYWRNYW5hZ2VyKCk6IHtcbiAgbW91bnRlZEluc3RhbmNlczogU2V0PHVua25vd24+XG4gIHVwZGF0ZUhlYWQ6IChoZWFkOiBKU1guRWxlbWVudFtdKSA9PiB2b2lkXG59IHtcbiAgcmV0dXJuIHtcbiAgICBtb3VudGVkSW5zdGFuY2VzOiBuZXcgU2V0KCksXG4gICAgdXBkYXRlSGVhZDogKGhlYWQ6IEpTWC5FbGVtZW50W10pID0+IHtcbiAgICAgIGNvbnN0IHRhZ3M6IFJlY29yZDxzdHJpbmcsIEpTWC5FbGVtZW50W10+ID0ge31cblxuICAgICAgaGVhZC5mb3JFYWNoKChoKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAvLyBJZiB0aGUgZm9udCB0YWcgaXMgbG9hZGVkIG9ubHkgb24gY2xpZW50IG5hdmlnYXRpb25cbiAgICAgICAgICAvLyBpdCB3b24ndCBiZSBpbmxpbmVkLiBJbiB0aGlzIGNhc2UgcmV2ZXJ0IHRvIHRoZSBvcmlnaW5hbCBiZWhhdmlvclxuICAgICAgICAgIGgudHlwZSA9PT0gJ2xpbmsnICYmXG4gICAgICAgICAgaC5wcm9wc1snZGF0YS1vcHRpbWl6ZWQtZm9udHMnXVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzdHlsZVtkYXRhLWhyZWY9XCIke2gucHJvcHNbJ2RhdGEtaHJlZiddfVwiXWApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaC5wcm9wcy5ocmVmID0gaC5wcm9wc1snZGF0YS1ocmVmJ11cbiAgICAgICAgICAgIGgucHJvcHNbJ2RhdGEtaHJlZiddID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IHRhZ3NbaC50eXBlXSB8fCBbXVxuICAgICAgICBjb21wb25lbnRzLnB1c2goaClcbiAgICAgICAgdGFnc1toLnR5cGVdID0gY29tcG9uZW50c1xuICAgICAgfSlcblxuICAgICAgY29uc3QgdGl0bGVDb21wb25lbnQgPSB0YWdzLnRpdGxlID8gdGFncy50aXRsZVswXSA6IG51bGxcbiAgICAgIGxldCB0aXRsZSA9ICcnXG4gICAgICBpZiAodGl0bGVDb21wb25lbnQpIHtcbiAgICAgICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gdGl0bGVDb21wb25lbnQucHJvcHNcbiAgICAgICAgdGl0bGUgPVxuICAgICAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgID8gY2hpbGRyZW5cbiAgICAgICAgICAgIDogQXJyYXkuaXNBcnJheShjaGlsZHJlbilcbiAgICAgICAgICAgICAgPyBjaGlsZHJlbi5qb2luKCcnKVxuICAgICAgICAgICAgICA6ICcnXG4gICAgICB9XG4gICAgICBpZiAodGl0bGUgIT09IGRvY3VtZW50LnRpdGxlKSBkb2N1bWVudC50aXRsZSA9IHRpdGxlXG4gICAgICA7WydtZXRhJywgJ2Jhc2UnLCAnbGluaycsICdzdHlsZScsICdzY3JpcHQnXS5mb3JFYWNoKCh0eXBlKSA9PiB7XG4gICAgICAgIHVwZGF0ZUVsZW1lbnRzKHR5cGUsIHRhZ3NbdHlwZV0gfHwgW10pXG4gICAgICB9KVxuICAgIH0sXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpbml0SGVhZE1hbmFnZXIiLCJpc0VxdWFsTm9kZSIsInJlYWN0RWxlbWVudFRvRE9NIiwidHlwZSIsInByb3BzIiwiZWwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGVzRnJvbVByb3BzIiwiY2hpbGRyZW4iLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsImlubmVySFRNTCIsIl9faHRtbCIsInRleHRDb250ZW50IiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsIm9sZFRhZyIsIm5ld1RhZyIsIkhUTUxFbGVtZW50Iiwibm9uY2UiLCJnZXRBdHRyaWJ1dGUiLCJjbG9uZVRhZyIsImNsb25lTm9kZSIsInNldEF0dHJpYnV0ZSIsInVwZGF0ZUVsZW1lbnRzIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9TVFJJQ1RfTkVYVF9IRUFEIiwiY29tcG9uZW50cyIsImhlYWRFbCIsInF1ZXJ5U2VsZWN0b3IiLCJvbGRUYWdzIiwiU2V0IiwicXVlcnlTZWxlY3RvckFsbCIsIm1ldGFDaGFyc2V0IiwiYWRkIiwibmV3VGFncyIsImkiLCJsZW5ndGgiLCJjb21wb25lbnQiLCJpc05ldyIsImRlbGV0ZSIsInB1c2giLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJ0YWdOYW1lIiwidG9Mb3dlckNhc2UiLCJwcmVwZW5kIiwiYXBwZW5kQ2hpbGQiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsImhlYWRDb3VudEVsIiwiTk9ERV9FTlYiLCJjb25zb2xlIiwiZXJyb3IiLCJoZWFkQ291bnQiLCJOdW1iZXIiLCJjb250ZW50IiwiaiIsInByZXZpb3VzRWxlbWVudFNpYmxpbmciLCJtYXAiLCJmaWx0ZXIiLCJrIiwibGVuIiwic3BsaWNlIiwiZm9yRWFjaCIsInQiLCJpbnNlcnRCZWZvcmUiLCJ0b1N0cmluZyIsIm1vdW50ZWRJbnN0YW5jZXMiLCJ1cGRhdGVIZWFkIiwiaGVhZCIsInRhZ3MiLCJoIiwiaHJlZiIsInVuZGVmaW5lZCIsInRpdGxlQ29tcG9uZW50IiwidGl0bGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/head-manager.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/index.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/client/index.js ***! + \************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/* global location */ // imports polyfill from `@next/polyfill-module` after build.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nvar _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n emitter: function() {\n return emitter;\n },\n hydrate: function() {\n return hydrate;\n },\n initialize: function() {\n return initialize;\n },\n router: function() {\n return router;\n },\n version: function() {\n return version;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\n__webpack_require__(/*! ../build/polyfills/polyfill-module */ \"./node_modules/next/dist/build/polyfills/polyfill-module.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _client = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom/client */ \"./node_modules/react-dom/client.js\"));\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ../shared/lib/head-manager-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\");\nconst _mitt = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/mitt */ \"./node_modules/next/dist/shared/lib/mitt.js\"));\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\");\nconst _handlesmoothscroll = __webpack_require__(/*! ../shared/lib/router/utils/handle-smooth-scroll */ \"./node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.js\");\nconst _isdynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\nconst _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _runtimeconfigexternal = __webpack_require__(/*! ../shared/lib/runtime-config.external */ \"./node_modules/next/dist/shared/lib/runtime-config.external.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nconst _portal = __webpack_require__(/*! ./portal */ \"./node_modules/next/dist/client/portal/index.js\");\nconst _headmanager = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./head-manager */ \"./node_modules/next/dist/client/head-manager.js\"));\nconst _pageloader = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./page-loader */ \"./node_modules/next/dist/client/page-loader.js\"));\nconst _routeannouncer = __webpack_require__(/*! ./route-announcer */ \"./node_modules/next/dist/client/route-announcer.js\");\nconst _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\nconst _iserror = __webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\");\nconst _imageconfigcontextsharedruntime = __webpack_require__(/*! ../shared/lib/image-config-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js\");\nconst _removebasepath = __webpack_require__(/*! ./remove-base-path */ \"./node_modules/next/dist/client/remove-base-path.js\");\nconst _hasbasepath = __webpack_require__(/*! ./has-base-path */ \"./node_modules/next/dist/client/has-base-path.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../shared/lib/app-router-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js\");\nconst _adapters = __webpack_require__(/*! ../shared/lib/router/adapters */ \"./node_modules/next/dist/shared/lib/router/adapters.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../shared/lib/hooks-client-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js\");\nconst _shared = __webpack_require__(/*! ./react-client-callbacks/shared */ \"./node_modules/next/dist/client/react-client-callbacks/shared.js\");\nconst _tracer = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./tracing/tracer */ \"./node_modules/next/dist/client/tracing/tracer.js\"));\nconst _reporttosocket = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./tracing/report-to-socket */ \"./node_modules/next/dist/client/tracing/report-to-socket.js\"));\nconst _isnextroutererror = __webpack_require__(/*! ./components/is-next-router-error */ \"./node_modules/next/dist/client/components/is-next-router-error.js\");\nconst version = \"15.1.6\";\nlet router;\nconst emitter = (0, _mitt.default)();\nconst looseToArray = (input)=>[].slice.call(input);\nlet initialData;\nlet defaultLocale = undefined;\nlet asPath;\nlet pageLoader;\nlet appElement;\nlet headManager;\nlet initialMatchesMiddleware = false;\nlet lastAppProps;\nlet lastRenderReject;\nlet devClient;\nlet CachedApp, onPerfEntry;\nlet CachedComponent;\nclass Container extends _react.default.Component {\n componentDidCatch(componentErr, info) {\n this.props.fn(componentErr, info);\n }\n componentDidMount() {\n this.scrollToHash();\n // We need to replace the router state if:\n // - the page was (auto) exported and has a query string or search (hash)\n // - it was auto exported and is a dynamic route (to provide params)\n // - if it is a client-side skeleton (fallback render)\n // - if middleware matches the current page (may have rewrite params)\n // - if rewrites in next.config.js match (may have rewrite params)\n if (router.isSsr && (initialData.isFallback || initialData.nextExport && ((0, _isdynamic.isDynamicRoute)(router.pathname) || location.search || false || initialMatchesMiddleware) || initialData.props && initialData.props.__N_SSG && (location.search || false || initialMatchesMiddleware))) {\n // update query on mount for exported pages\n router.replace(router.pathname + '?' + String((0, _querystring.assign)((0, _querystring.urlQueryToSearchParams)(router.query), new URLSearchParams(location.search))), asPath, {\n // @ts-ignore\n // WARNING: `_h` is an internal option for handing Next.js\n // client-side hydration. Your app should _never_ use this property.\n // It may change at any time without notice.\n _h: 1,\n // Fallback pages must trigger the data fetch, so the transition is\n // not shallow.\n // Other pages (strictly updating query) happens shallowly, as data\n // requirements would already be present.\n shallow: !initialData.isFallback && !initialMatchesMiddleware\n }).catch((err)=>{\n if (!err.cancelled) throw err;\n });\n }\n }\n componentDidUpdate() {\n this.scrollToHash();\n }\n scrollToHash() {\n let { hash } = location;\n hash = hash && hash.substring(1);\n if (!hash) return;\n const el = document.getElementById(hash);\n if (!el) return;\n // If we call scrollIntoView() in here without a setTimeout\n // it won't scroll properly.\n setTimeout(()=>el.scrollIntoView(), 0);\n }\n render() {\n if (false) {} else {\n const ReactDevOverlay = (__webpack_require__(/*! ./components/react-dev-overlay/pages/client */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/client.js\").ReactDevOverlay);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(ReactDevOverlay, {\n children: this.props.children\n });\n }\n }\n}\nasync function initialize(opts) {\n if (opts === void 0) opts = {};\n _tracer.default.onSpanEnd(_reporttosocket.default);\n // This makes sure this specific lines are removed in production\n if (true) {\n devClient = opts.devClient;\n }\n initialData = JSON.parse(document.getElementById('__NEXT_DATA__').textContent);\n window.__NEXT_DATA__ = initialData;\n defaultLocale = initialData.defaultLocale;\n const prefix = initialData.assetPrefix || '';\n self.__next_set_public_path__(\"\" + prefix + \"/_next/\") //eslint-disable-line\n ;\n // Initialize next/config with the environment configuration\n (0, _runtimeconfigexternal.setConfig)({\n serverRuntimeConfig: {},\n publicRuntimeConfig: initialData.runtimeConfig || {}\n });\n asPath = (0, _utils.getURL)();\n // make sure not to attempt stripping basePath for 404s\n if ((0, _hasbasepath.hasBasePath)(asPath)) {\n asPath = (0, _removebasepath.removeBasePath)(asPath);\n }\n if (false) {}\n if (initialData.scriptLoader) {\n const { initScriptLoader } = __webpack_require__(/*! ./script */ \"./node_modules/next/dist/client/script.js\");\n initScriptLoader(initialData.scriptLoader);\n }\n pageLoader = new _pageloader.default(initialData.buildId, prefix);\n const register = (param)=>{\n let [r, f] = param;\n return pageLoader.routeLoader.onEntrypoint(r, f);\n };\n if (window.__NEXT_P) {\n // Defer page registration for another tick. This will increase the overall\n // latency in hydrating the page, but reduce the total blocking time.\n window.__NEXT_P.map((p)=>setTimeout(()=>register(p), 0));\n }\n window.__NEXT_P = [];\n window.__NEXT_P.push = register;\n headManager = (0, _headmanager.default)();\n headManager.getIsSsr = ()=>{\n return router.isSsr;\n };\n appElement = document.getElementById('__next');\n return {\n assetPrefix: prefix\n };\n}\nfunction renderApp(App, appProps) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(App, {\n ...appProps\n });\n}\nfunction AppContainer(param) {\n _s();\n let { children } = param;\n // Create a memoized value for next/navigation router context.\n const adaptedForAppRouter = _react.default.useMemo({\n \"AppContainer.useMemo[adaptedForAppRouter]\": ()=>{\n return (0, _adapters.adaptForAppRouterInstance)(router);\n }\n }[\"AppContainer.useMemo[adaptedForAppRouter]\"], []);\n var _self___NEXT_DATA___autoExport;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Container, {\n fn: (error)=>// eslint-disable-next-line @typescript-eslint/no-use-before-define\n renderError({\n App: CachedApp,\n err: error\n }).catch((err)=>console.error('Error rendering page: ', err)),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.AppRouterContext.Provider, {\n value: adaptedForAppRouter,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.SearchParamsContext.Provider, {\n value: (0, _adapters.adaptForSearchParams)(router),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_adapters.PathnameContextProviderAdapter, {\n router: router,\n isAutoExport: (_self___NEXT_DATA___autoExport = self.__NEXT_DATA__.autoExport) != null ? _self___NEXT_DATA___autoExport : false,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathParamsContext.Provider, {\n value: (0, _adapters.adaptForPathParams)(router),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_routercontextsharedruntime.RouterContext.Provider, {\n value: (0, _router.makePublicRouterInstance)(router),\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_headmanagercontextsharedruntime.HeadManagerContext.Provider, {\n value: headManager,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_imageconfigcontextsharedruntime.ImageConfigContext.Provider, {\n value: {\"deviceSizes\":[640,750,828,1080,1200,1920,2048,3840],\"imageSizes\":[16,32,48,64,96,128,256,384],\"path\":\"/_next/image\",\"loader\":\"default\",\"dangerouslyAllowSVG\":false,\"unoptimized\":false,\"domains\":[],\"remotePatterns\":[]},\n children: children\n })\n })\n })\n })\n })\n })\n })\n });\n}\n_s(AppContainer, \"F6BSfrFQNeqenuPnUMVY/6gI8uE=\");\n_c = AppContainer;\nconst wrapApp = (App)=>(wrappedAppProps)=>{\n const appProps = {\n ...wrappedAppProps,\n Component: CachedComponent,\n err: initialData.err,\n router\n };\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(AppContainer, {\n children: renderApp(App, appProps)\n });\n };\n// This method handles all runtime and debug errors.\n// 404 and 500 errors are special kind of errors\n// and they are still handle via the main render method.\nfunction renderError(renderErrorProps) {\n let { App, err } = renderErrorProps;\n // In development runtime errors are caught by our overlay\n // In production we catch runtime errors using componentDidCatch which will trigger renderError\n if (true) {\n // A Next.js rendering runtime error is always unrecoverable\n // FIXME: let's make this recoverable (error in GIP client-transition)\n devClient.onUnrecoverableError();\n // We need to render an empty <App> so that the `<ReactDevOverlay>` can\n // render itself.\n // TODO: Fix disabled eslint rule\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return doRender({\n App: ()=>null,\n props: {},\n Component: ()=>null,\n styleSheets: []\n });\n }\n // Make sure we log the error to the console, otherwise users can't track down issues.\n console.error(err);\n console.error(\"A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred\");\n return pageLoader.loadPage('/_error').then((param)=>{\n let { page: ErrorComponent, styleSheets } = param;\n return (lastAppProps == null ? void 0 : lastAppProps.Component) === ErrorComponent ? Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ../pages/_error */ \"./node_modules/next/dist/pages/_error.js\"))).then((errorModule)=>{\n return Promise.resolve().then(()=>/*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ../pages/_app */ \"./node_modules/next/dist/pages/_app.js\"))).then((appModule)=>{\n App = appModule.default;\n renderErrorProps.App = App;\n return errorModule;\n });\n }).then((m)=>({\n ErrorComponent: m.default,\n styleSheets: []\n })) : {\n ErrorComponent,\n styleSheets\n };\n }).then((param)=>{\n let { ErrorComponent, styleSheets } = param;\n var _renderErrorProps_props;\n // In production we do a normal render with the `ErrorComponent` as component.\n // If we've gotten here upon initial render, we can use the props from the server.\n // Otherwise, we need to call `getInitialProps` on `App` before mounting.\n const AppTree = wrapApp(App);\n const appCtx = {\n Component: ErrorComponent,\n AppTree,\n router,\n ctx: {\n err,\n pathname: initialData.page,\n query: initialData.query,\n asPath,\n AppTree\n }\n };\n return Promise.resolve(((_renderErrorProps_props = renderErrorProps.props) == null ? void 0 : _renderErrorProps_props.err) ? renderErrorProps.props : (0, _utils.loadGetInitialProps)(App, appCtx)).then((initProps)=>// eslint-disable-next-line @typescript-eslint/no-use-before-define\n doRender({\n ...renderErrorProps,\n err,\n Component: ErrorComponent,\n styleSheets,\n props: initProps\n }));\n });\n}\n// Dummy component that we render as a child of Root so that we can\n// toggle the correct styles before the page is rendered.\nfunction Head(param) {\n _s1();\n let { callback } = param;\n // We use `useLayoutEffect` to guarantee the callback is executed\n // as soon as React flushes the update.\n _react.default.useLayoutEffect({\n \"Head.useLayoutEffect\": ()=>callback()\n }[\"Head.useLayoutEffect\"], [\n callback\n ]);\n return null;\n}\n_s1(Head, \"n7/vCynhJvM+pLkyL2DMQUF0odM=\");\n_c1 = Head;\nconst performanceMarks = {\n navigationStart: 'navigationStart',\n beforeRender: 'beforeRender',\n afterRender: 'afterRender',\n afterHydrate: 'afterHydrate',\n routeChange: 'routeChange'\n};\nconst performanceMeasures = {\n hydration: 'Next.js-hydration',\n beforeHydration: 'Next.js-before-hydration',\n routeChangeToRender: 'Next.js-route-change-to-render',\n render: 'Next.js-render'\n};\nlet reactRoot = null;\n// On initial render a hydrate should always happen\nlet shouldHydrate = true;\nfunction clearMarks() {\n ;\n [\n performanceMarks.beforeRender,\n performanceMarks.afterHydrate,\n performanceMarks.afterRender,\n performanceMarks.routeChange\n ].forEach((mark)=>performance.clearMarks(mark));\n}\nfunction markHydrateComplete() {\n if (!_utils.ST) return;\n performance.mark(performanceMarks.afterHydrate) // mark end of hydration\n ;\n const hasBeforeRenderMark = performance.getEntriesByName(performanceMarks.beforeRender, 'mark').length;\n if (hasBeforeRenderMark) {\n const beforeHydrationMeasure = performance.measure(performanceMeasures.beforeHydration, performanceMarks.navigationStart, performanceMarks.beforeRender);\n const hydrationMeasure = performance.measure(performanceMeasures.hydration, performanceMarks.beforeRender, performanceMarks.afterHydrate);\n if ( true && // Old versions of Safari don't return `PerformanceMeasure`s from `performance.measure()`\n beforeHydrationMeasure && hydrationMeasure) {\n _tracer.default.startSpan('navigation-to-hydration', {\n startTime: performance.timeOrigin + beforeHydrationMeasure.startTime,\n attributes: {\n pathname: location.pathname,\n query: location.search\n }\n }).end(performance.timeOrigin + hydrationMeasure.startTime + hydrationMeasure.duration);\n }\n }\n if (onPerfEntry) {\n performance.getEntriesByName(performanceMeasures.hydration).forEach(onPerfEntry);\n }\n clearMarks();\n}\nfunction markRenderComplete() {\n if (!_utils.ST) return;\n performance.mark(performanceMarks.afterRender) // mark end of render\n ;\n const navStartEntries = performance.getEntriesByName(performanceMarks.routeChange, 'mark');\n if (!navStartEntries.length) return;\n const hasBeforeRenderMark = performance.getEntriesByName(performanceMarks.beforeRender, 'mark').length;\n if (hasBeforeRenderMark) {\n performance.measure(performanceMeasures.routeChangeToRender, navStartEntries[0].name, performanceMarks.beforeRender);\n performance.measure(performanceMeasures.render, performanceMarks.beforeRender, performanceMarks.afterRender);\n if (onPerfEntry) {\n performance.getEntriesByName(performanceMeasures.render).forEach(onPerfEntry);\n performance.getEntriesByName(performanceMeasures.routeChangeToRender).forEach(onPerfEntry);\n }\n }\n clearMarks();\n [\n performanceMeasures.routeChangeToRender,\n performanceMeasures.render\n ].forEach((measure)=>performance.clearMeasures(measure));\n}\nfunction renderReactElement(domEl, fn) {\n // mark start of hydrate/render\n if (_utils.ST) {\n performance.mark(performanceMarks.beforeRender);\n }\n const reactEl = fn(shouldHydrate ? markHydrateComplete : markRenderComplete);\n if (!reactRoot) {\n // Unlike with createRoot, you don't need a separate root.render() call here\n reactRoot = _client.default.hydrateRoot(domEl, reactEl, {\n onRecoverableError: _shared.onRecoverableError\n });\n // TODO: Remove shouldHydrate variable when React 18 is stable as it can depend on `reactRoot` existing\n shouldHydrate = false;\n } else {\n const startTransition = _react.default.startTransition;\n startTransition(()=>{\n reactRoot.render(reactEl);\n });\n }\n}\nfunction Root(param) {\n _s2();\n let { callbacks, children } = param;\n // We use `useLayoutEffect` to guarantee the callbacks are executed\n // as soon as React flushes the update\n _react.default.useLayoutEffect({\n \"Root.useLayoutEffect\": ()=>callbacks.forEach({\n \"Root.useLayoutEffect\": (callback)=>callback()\n }[\"Root.useLayoutEffect\"])\n }[\"Root.useLayoutEffect\"], [\n callbacks\n ]);\n if (false) {}\n return children;\n}\n_s2(Root, \"n7/vCynhJvM+pLkyL2DMQUF0odM=\");\n_c2 = Root;\nfunction doRender(input) {\n let { App, Component, props, err } = input;\n let styleSheets = 'initial' in input ? undefined : input.styleSheets;\n Component = Component || lastAppProps.Component;\n props = props || lastAppProps.props;\n const appProps = {\n ...props,\n Component,\n err,\n router\n };\n // lastAppProps has to be set before ReactDom.render to account for ReactDom throwing an error.\n lastAppProps = appProps;\n let canceled = false;\n let resolvePromise;\n const renderPromise = new Promise((resolve, reject)=>{\n if (lastRenderReject) {\n lastRenderReject();\n }\n resolvePromise = ()=>{\n lastRenderReject = null;\n resolve();\n };\n lastRenderReject = ()=>{\n canceled = true;\n lastRenderReject = null;\n const error = new Error('Cancel rendering route');\n error.cancelled = true;\n reject(error);\n };\n });\n // This function has a return type to ensure it doesn't start returning a\n // Promise. It should remain synchronous.\n function onStart() {\n if (!styleSheets || // We use `style-loader` in development, so we don't need to do anything\n // unless we're in production:\n \"development\" !== 'production') {\n return false;\n }\n const currentStyleTags = looseToArray(document.querySelectorAll('style[data-n-href]'));\n const currentHrefs = new Set(currentStyleTags.map((tag)=>tag.getAttribute('data-n-href')));\n const noscript = document.querySelector('noscript[data-n-css]');\n const nonce = noscript == null ? void 0 : noscript.getAttribute('data-n-css');\n styleSheets.forEach((param)=>{\n let { href, text } = param;\n if (!currentHrefs.has(href)) {\n const styleTag = document.createElement('style');\n styleTag.setAttribute('data-n-href', href);\n styleTag.setAttribute('media', 'x');\n if (nonce) {\n styleTag.setAttribute('nonce', nonce);\n }\n document.head.appendChild(styleTag);\n styleTag.appendChild(document.createTextNode(text));\n }\n });\n return true;\n }\n function onHeadCommit() {\n if (false) {}\n if (input.scroll) {\n const { x, y } = input.scroll;\n (0, _handlesmoothscroll.handleSmoothScroll)(()=>{\n window.scrollTo(x, y);\n });\n }\n }\n function onRootCommit() {\n resolvePromise();\n }\n onStart();\n const elem = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(Head, {\n callback: onHeadCommit\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(AppContainer, {\n children: [\n renderApp(App, appProps),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_portal.Portal, {\n type: \"next-route-announcer\",\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_routeannouncer.RouteAnnouncer, {})\n })\n ]\n })\n ]\n });\n // We catch runtime errors using componentDidCatch which will trigger renderError\n renderReactElement(appElement, (callback)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(Root, {\n callbacks: [\n callback,\n onRootCommit\n ],\n children: false ? /*#__PURE__*/ 0 : elem\n }));\n return renderPromise;\n}\nasync function render(renderingProps) {\n // if an error occurs in a server-side page (e.g. in getInitialProps),\n // skip re-rendering the error page client-side as data-fetching operations\n // will already have been done on the server and NEXT_DATA contains the correct\n // data for straight-forward hydration of the error page\n if (renderingProps.err && // renderingProps.Component might be undefined if there is a top/module-level error\n (typeof renderingProps.Component === 'undefined' || !renderingProps.isHydratePass)) {\n await renderError(renderingProps);\n return;\n }\n try {\n await doRender(renderingProps);\n } catch (err) {\n const renderErr = (0, _iserror.getProperError)(err);\n // bubble up cancelation errors\n if (renderErr.cancelled) {\n throw renderErr;\n }\n if (true) {\n // Ensure this error is displayed in the overlay in development\n setTimeout(()=>{\n throw renderErr;\n });\n }\n await renderError({\n ...renderingProps,\n err: renderErr\n });\n }\n}\nasync function hydrate(opts) {\n let initialErr = initialData.err;\n try {\n const appEntrypoint = await pageLoader.routeLoader.whenEntrypoint('/_app');\n if ('error' in appEntrypoint) {\n throw appEntrypoint.error;\n }\n const { component: app, exports: mod } = appEntrypoint;\n CachedApp = app;\n if (mod && mod.reportWebVitals) {\n onPerfEntry = (param)=>{\n let { id, name, startTime, value, duration, entryType, entries, attribution } = param;\n // Combines timestamp with random number for unique ID\n const uniqueID = Date.now() + \"-\" + (Math.floor(Math.random() * (9e12 - 1)) + 1e12);\n let perfStartEntry;\n if (entries && entries.length) {\n perfStartEntry = entries[0].startTime;\n }\n const webVitals = {\n id: id || uniqueID,\n name,\n startTime: startTime || perfStartEntry,\n value: value == null ? duration : value,\n label: entryType === 'mark' || entryType === 'measure' ? 'custom' : 'web-vital'\n };\n if (attribution) {\n webVitals.attribution = attribution;\n }\n mod.reportWebVitals(webVitals);\n };\n }\n const pageEntrypoint = // error, so we need to skip waiting for the entrypoint.\n true && initialData.err ? {\n error: initialData.err\n } : await pageLoader.routeLoader.whenEntrypoint(initialData.page);\n if ('error' in pageEntrypoint) {\n throw pageEntrypoint.error;\n }\n CachedComponent = pageEntrypoint.component;\n if (true) {\n const { isValidElementType } = __webpack_require__(/*! next/dist/compiled/react-is */ \"./node_modules/next/dist/compiled/react-is/index.js\");\n if (!isValidElementType(CachedComponent)) {\n throw new Error('The default export is not a React Component in page: \"' + initialData.page + '\"');\n }\n }\n } catch (error) {\n // This catches errors like throwing in the top level of a module\n initialErr = (0, _iserror.getProperError)(error);\n }\n if (true) {\n const getServerError = (__webpack_require__(/*! ./components/react-dev-overlay/pages/client */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/client.js\").getServerError);\n // Server-side runtime errors need to be re-thrown on the client-side so\n // that the overlay is rendered.\n if (initialErr) {\n if (initialErr === initialData.err) {\n setTimeout(()=>{\n let error;\n try {\n // Generate a new error object. We `throw` it because some browsers\n // will set the `stack` when thrown, and we want to ensure ours is\n // not overridden when we re-throw it below.\n throw new Error(initialErr.message);\n } catch (e) {\n error = e;\n }\n error.name = initialErr.name;\n error.stack = initialErr.stack;\n const errSource = initialErr.source;\n // In development, error the navigation API usage in runtime,\n // since it's not allowed to be used in pages router as it doesn't contain error boundary like app router.\n if ((0, _isnextroutererror.isNextRouterError)(initialErr)) {\n error.message = 'Next.js navigation API is not allowed to be used in Pages Router.';\n }\n throw getServerError(error, errSource);\n });\n } else {\n setTimeout(()=>{\n throw initialErr;\n });\n }\n }\n }\n if (window.__NEXT_PRELOADREADY) {\n await window.__NEXT_PRELOADREADY(initialData.dynamicIds);\n }\n router = (0, _router.createRouter)(initialData.page, initialData.query, asPath, {\n initialProps: initialData.props,\n pageLoader,\n App: CachedApp,\n Component: CachedComponent,\n wrapApp,\n err: initialErr,\n isFallback: Boolean(initialData.isFallback),\n subscription: (info, App, scroll)=>render(Object.assign({}, info, {\n App,\n scroll\n })),\n locale: initialData.locale,\n locales: initialData.locales,\n defaultLocale,\n domainLocales: initialData.domainLocales,\n isPreview: initialData.isPreview\n });\n initialMatchesMiddleware = await router._initialMatchesMiddlewarePromise;\n const renderCtx = {\n App: CachedApp,\n initial: true,\n Component: CachedComponent,\n props: initialData.props,\n err: initialErr,\n isHydratePass: true\n };\n if (opts == null ? void 0 : opts.beforeRender) {\n await opts.beforeRender();\n }\n render(renderCtx);\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\nvar _c, _c1, _c2;\n$RefreshReg$(_c, \"AppContainer\");\n$RefreshReg$(_c1, \"Head\");\n$RefreshReg$(_c2, \"Root\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxtQkFBbUIsR0FDbkIsNkRBQTZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBMEVoREEsT0FBTztlQUFQQTs7SUEwdkJTQyxPQUFPO2VBQVBBOztJQXpvQkFDLFVBQVU7ZUFBVkE7O0lBbEhYQyxNQUFNO2VBQU5BOztJQURFQyxPQUFPO2VBQVBBOzs7OztvQkF2RU47NEVBUXlCOzZFQUNYOzZEQUNjOzJFQUNsQjt3REFFYTtnREFDSzt1Q0FDSjt5Q0FJeEI7bURBQ21CO21DQUNzQjtvQ0FFekI7a0ZBQ0s7aUZBQ0w7NENBRVE7b0NBQ3dCO3FDQUN4Qjs2REFDSTs0Q0FFSjt5Q0FDSDsyREFDSztzQ0FNMUI7NkRBSUE7b0NBQzRCOzZFQUNoQjtxRkFDUTsrQ0FDTztBQXVCM0IsTUFBTUEsVUFBVUMsUUFBUUM7QUFDeEIsSUFBSUg7QUFDSixNQUFNSCxVQUErQlEsQ0FBQUEsR0FBQUEsTUFBQUEsT0FBQUE7QUFFNUMsTUFBTUMsZUFBZSxDQUFlQyxRQUFvQixFQUFFLENBQUNDLEtBQUssQ0FBQ0MsSUFBSSxDQUFDRjtBQUV0RSxJQUFJRztBQUNKLElBQUlDLGdCQUFvQ0M7QUFDeEMsSUFBSUM7QUFDSixJQUFJQztBQUNKLElBQUlDO0FBQ0osSUFBSUM7QUFLSixJQUFJQywyQkFBMkI7QUFDL0IsSUFBSUM7QUFFSixJQUFJQztBQUNKLElBQUlDO0FBRUosSUFBSUMsV0FBeUJDO0FBQzdCLElBQUlDO0FBRUosTUFBTUMsa0JBQWtCQyxPQUFBQSxPQUFLLENBQUNDLFNBQVM7SUFJckNDLGtCQUFrQkMsWUFBbUIsRUFBRUMsSUFBUyxFQUFFO1FBQ2hELElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxFQUFFLENBQUNILGNBQWNDO0lBQzlCO0lBRUFHLG9CQUFvQjtRQUNsQixJQUFJLENBQUNDLFlBQVk7UUFFakIsMENBQTBDO1FBQzFDLHlFQUF5RTtRQUN6RSxvRUFBb0U7UUFDcEUsc0RBQXNEO1FBQ3RELHFFQUFxRTtRQUNyRSxrRUFBa0U7UUFDbEUsSUFDRWpDLE9BQU9rQyxLQUFLLElBQ1h4QixDQUFBQSxZQUFZeUIsVUFBVSxJQUNwQnpCLFlBQVkwQixVQUFVLElBQ3BCQyxDQUFBQSxDQUFBQSxHQUFBQSxXQUFBQSxjQUFBQSxFQUFlckMsT0FBT3NDLFFBQVEsS0FDN0JDLFNBQVNDLE1BQU0sSUFDZnRDLEtBQStCLElBQy9CZSx3QkFBQUEsQ0FBdUIsSUFDMUJQLFlBQVlvQixLQUFLLElBQ2hCcEIsWUFBWW9CLEtBQUssQ0FBQ1ksT0FBTyxJQUN4QkgsQ0FBQUEsU0FBU0MsTUFBTSxJQUNkdEMsS0FBK0IsSUFDL0JlLHdCQUFBQSxDQUF1QixDQUFFLEVBQy9CO1lBQ0EsMkNBQTJDO1lBQzNDakIsT0FDRzJDLE9BQU8sQ0FDTjNDLE9BQU9zQyxRQUFRLEdBQ2IsTUFDQU0sT0FDRUMsQ0FBQUEsR0FBQUEsYUFBQUEsTUFBQUEsRUFDRUMsQ0FBQUEsR0FBQUEsYUFBQUEsc0JBQXNCLEVBQUM5QyxPQUFPK0MsS0FBSyxHQUNuQyxJQUFJQyxnQkFBZ0JULFNBQVNDLE1BQU0sS0FHekMzQixRQUNBO2dCQUNFLGFBQWE7Z0JBQ2IsMERBQTBEO2dCQUMxRCxvRUFBb0U7Z0JBQ3BFLDRDQUE0QztnQkFDNUNvQyxJQUFJO2dCQUNKLG1FQUFtRTtnQkFDbkUsZUFBZTtnQkFDZixtRUFBbUU7Z0JBQ25FLHlDQUF5QztnQkFDekNDLFNBQVMsQ0FBQ3hDLFlBQVl5QixVQUFVLElBQUksQ0FBQ2xCO1lBQ3ZDLEdBRURrQyxLQUFLLENBQUMsQ0FBQ0M7Z0JBQ04sSUFBSSxDQUFDQSxJQUFJQyxTQUFTLEVBQUUsTUFBTUQ7WUFDNUI7UUFDSjtJQUNGO0lBRUFFLHFCQUFxQjtRQUNuQixJQUFJLENBQUNyQixZQUFZO0lBQ25CO0lBRUFBLGVBQWU7UUFDYixJQUFJLEVBQUVzQixJQUFJLEVBQUUsR0FBR2hCO1FBQ2ZnQixPQUFPQSxRQUFRQSxLQUFLQyxTQUFTLENBQUM7UUFDOUIsSUFBSSxDQUFDRCxNQUFNO1FBRVgsTUFBTUUsS0FBeUJDLFNBQVNDLGNBQWMsQ0FBQ0o7UUFDdkQsSUFBSSxDQUFDRSxJQUFJO1FBRVQsMkRBQTJEO1FBQzNELDRCQUE0QjtRQUM1QkcsV0FBVyxJQUFNSCxHQUFHSSxjQUFjLElBQUk7SUFDeEM7SUFFQUMsU0FBUztRQUNQLElBQUk1RCxLQUFvQixFQUFtQixFQUUxQyxNQUFNO1lBQ0wsTUFBTStELGtCQUNKQyx3S0FBc0U7WUFDeEUscUJBQU8scUJBQUNELGlCQUFBQTswQkFBaUIsSUFBSSxDQUFDbkMsS0FBSyxDQUFDa0MsUUFBUTs7UUFDOUM7SUFDRjtBQUNGO0FBRU8sZUFBZWpFLFdBQVdvRSxJQUE4QjtJQUE5QkEsSUFBQUEsU0FBQUEsS0FBQUEsR0FBQUEsT0FBNEIsQ0FBQztJQUc1REMsUUFBQUEsT0FBTSxDQUFDQyxTQUFTLENBQUNDLGdCQUFBQSxPQUFjO0lBRS9CLGdFQUFnRTtJQUNoRSxJQUFJcEUsSUFBb0IsRUFBb0I7UUFDMUNrQixZQUFZK0MsS0FBSy9DLFNBQVM7SUFDNUI7SUFFQVYsY0FBYzZELEtBQUtDLEtBQUssQ0FDdEJkLFNBQVNDLGNBQWMsQ0FBQyxpQkFBa0JjLFdBQVc7SUFFdkRDLE9BQU9DLGFBQWEsR0FBR2pFO0lBRXZCQyxnQkFBZ0JELFlBQVlDLGFBQWE7SUFDekMsTUFBTWlFLFNBQWlCbEUsWUFBWW1FLFdBQVcsSUFBSTtJQUdoREMsS0FBYUMsd0JBQXdCLENBQUUsS0FBRUgsU0FBTyxXQUFVLHFCQUFxQjs7SUFFakYsNERBQTREO0lBQzVESSxDQUFBQSxHQUFBQSx1QkFBQUEsU0FBQUEsRUFBVTtRQUNSQyxxQkFBcUIsQ0FBQztRQUN0QkMscUJBQXFCeEUsWUFBWXlFLGFBQWEsSUFBSSxDQUFDO0lBQ3JEO0lBRUF0RSxTQUFTdUUsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUE7SUFFVCx1REFBdUQ7SUFDdkQsSUFBSUMsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWXhFLFNBQVM7UUFDdkJBLFNBQVN5RSxDQUFBQSxHQUFBQSxnQkFBQUEsY0FBQUEsRUFBZXpFO0lBQzFCO0lBRUEsSUFBSVgsS0FBK0IsRUFBRSxFQTBDcEM7SUFFRCxJQUFJUSxZQUFZMEYsWUFBWSxFQUFFO1FBQzVCLE1BQU0sRUFBRUMsZ0JBQWdCLEVBQUUsR0FBR25DLG1CQUFPQSxDQUFDLDJEQUFVO1FBQy9DbUMsaUJBQWlCM0YsWUFBWTBGLFlBQVk7SUFDM0M7SUFFQXRGLGFBQWEsSUFBSXdGLFlBQUFBLE9BQVUsQ0FBQzVGLFlBQVk2RixPQUFPLEVBQUUzQjtJQUVqRCxNQUFNNEIsV0FBdUI7WUFBQyxDQUFDQyxHQUFHQyxFQUFFO2VBQ2xDNUYsV0FBVzZGLFdBQVcsQ0FBQ0MsWUFBWSxDQUFDSCxHQUFHQzs7SUFDekMsSUFBSWhDLE9BQU9tQyxRQUFRLEVBQUU7UUFDbkIsMkVBQTJFO1FBQzNFLHFFQUFxRTtRQUNyRW5DLE9BQU9tQyxRQUFRLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxJQUFNbkQsV0FBVyxJQUFNNEMsU0FBU08sSUFBSTtJQUMzRDtJQUNBckMsT0FBT21DLFFBQVEsR0FBRyxFQUFFO0lBQ2xCbkMsT0FBT21DLFFBQVEsQ0FBU0csSUFBSSxHQUFHUjtJQUVqQ3hGLGNBQWNpRyxDQUFBQSxHQUFBQSxhQUFBQSxPQUFlO0lBQzdCakcsWUFBWWtHLFFBQVEsR0FBRztRQUNyQixPQUFPbEgsT0FBT2tDLEtBQUs7SUFDckI7SUFFQW5CLGFBQWEyQyxTQUFTQyxjQUFjLENBQUM7SUFDckMsT0FBTztRQUFFa0IsYUFBYUQ7SUFBTztBQUMvQjtBQUVBLFNBQVN1QyxVQUFVQyxHQUFpQixFQUFFQyxRQUFrQjtJQUN0RCxxQkFBTyxxQkFBQ0QsS0FBQUE7UUFBSyxHQUFHQyxRQUFROztBQUMxQjtBQUVBLHNCQUFzQixLQUVROztJQUZSLE1BQ3BCckQsUUFBUSxFQUNvQixHQUZSO0lBR3BCLDhEQUE4RDtJQUM5RCxNQUFNdUQsc0JBQXNCOUYsT0FBQUEsT0FBSyxDQUFDK0YsT0FBTztxREFBQztZQUN4QyxPQUFPQyxDQUFBQSxHQUFBQSxVQUFBQSx5QkFBQUEsRUFBMEJ6SDtRQUNuQztvREFBRyxFQUFFO1FBZW1COEU7SUFkeEIsT0FDRSxXQURGLEdBQ0UscUJBQUN0RCxXQUFBQTtRQUNDTyxJQUFJLENBQUMyRixRQUNILGlDQUFpQyxrQ0FDa0M7WUFDbkVDLFlBQVk7Z0JBQUVQLEtBQUsvRjtnQkFBVytCLEtBQUtzRTtZQUFNLEdBQUd2RSxLQUFLLENBQUMsQ0FBQ0MsTUFDakR3RSxRQUFRRixLQUFLLENBQUMsMEJBQTBCdEU7a0JBSTVDLG1DQUFDeUUsK0JBQUFBLGdCQUFnQixDQUFDQyxRQUFRO1lBQUNDLE9BQU9SO3NCQUNoQyxtQ0FBQ1MsaUNBQUFBLG1CQUFtQixDQUFDRixRQUFRO2dCQUFDQyxPQUFPRSxDQUFBQSxHQUFBQSxVQUFBQSxvQkFBQUEsRUFBcUJqSTswQkFDeEQsbUNBQUNrSSxVQUFBQSw4QkFBOEI7b0JBQzdCbEksUUFBUUE7b0JBQ1JtSSxjQUFjckQsQ0FBQUEsaUNBQUFBLEtBQUtILGFBQWEsQ0FBQ3lELFVBQUFBLEtBQVUsT0FBN0J0RCxpQ0FBaUM7OEJBRS9DLG1DQUFDdUQsaUNBQUFBLGlCQUFpQixDQUFDUCxRQUFRO3dCQUFDQyxPQUFPTyxDQUFBQSxHQUFBQSxVQUFBQSxrQkFBQUEsRUFBbUJ0STtrQ0FDcEQsbUNBQUN1SSw0QkFBQUEsYUFBYSxDQUFDVCxRQUFROzRCQUFDQyxPQUFPUyxDQUFBQSxHQUFBQSxRQUFBQSx3QkFBd0IsRUFBQ3hJO3NDQUN0RCxtQ0FBQ3lJLGlDQUFBQSxrQkFBa0IsQ0FBQ1gsUUFBUTtnQ0FBQ0MsT0FBTy9HOzBDQUNsQyxtQ0FBQzBILGlDQUFBQSxrQkFBa0IsQ0FBQ1osUUFBUTtvQ0FDMUJDLE9BQ0U3SCwwTkFDb0I7OENBR3JCOEQ7Ozs7Ozs7OztBQVVyQjs7S0ExQ1NzRDtBQTRDVCxNQUFNc0IsVUFDSixDQUFDeEIsTUFDRCxDQUFDeUI7UUFDQyxNQUFNeEIsV0FBcUI7WUFDekIsR0FBR3dCLGVBQWU7WUFDbEJuSCxXQUFXSDtZQUNYNkIsS0FBSzFDLFlBQVkwQyxHQUFHO1lBQ3BCcEQ7UUFDRjtRQUNBLHFCQUFPLHFCQUFDc0gsY0FBQUE7c0JBQWNILFVBQVVDLEtBQUtDOztJQUN2QztBQUVGLG9EQUFvRDtBQUNwRCxnREFBZ0Q7QUFDaEQsd0RBQXdEO0FBQ3hELFNBQVNNLFlBQVltQixnQkFBa0M7SUFDckQsSUFBSSxFQUFFMUIsR0FBRyxFQUFFaEUsR0FBRyxFQUFFLEdBQUcwRjtJQUVuQiwwREFBMEQ7SUFDMUQsK0ZBQStGO0lBQy9GLElBQUk1SSxJQUFvQixFQUFtQjtRQUN6Qyw0REFBNEQ7UUFDNUQsc0VBQXNFO1FBQ3RFa0IsVUFBVTJILG9CQUFvQjtRQUU5Qix1RUFBdUU7UUFDdkUsaUJBQWlCO1FBQ2pCLGlDQUFpQztRQUNqQyxtRUFBbUU7UUFDbkUsT0FBT0MsU0FBUztZQUNkNUIsS0FBSyxJQUFNO1lBQ1h0RixPQUFPLENBQUM7WUFDUkosV0FBVyxJQUFNO1lBQ2pCdUgsYUFBYSxFQUFFO1FBQ2pCO0lBQ0Y7SUFFQSxzRkFBc0Y7SUFDdEZyQixRQUFRRixLQUFLLENBQUN0RTtJQUNkd0UsUUFBUUYsS0FBSyxDQUNWO0lBR0gsT0FBTzVHLFdBQ0pvSSxRQUFRLENBQUMsV0FDVEMsSUFBSSxDQUFDO1lBQUMsRUFBRUMsTUFBTUMsY0FBYyxFQUFFSixXQUFXLEVBQUU7UUFDMUMsT0FBTy9ILENBQUFBLGdCQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxhQUFjUSxTQUFTLE1BQUsySCxzRkFDL0IsbUJBQU0sQ0FBQyxxRUFDSkYsSUFBSSxDQUFDLENBQUNHO1lBQ0wsNEVBQU8sbUJBQU0sQ0FBQyxpRUFBaUJILElBQUksQ0FBQyxDQUFDSTtnQkFDbkNuQyxNQUFNbUMsVUFBVUMsT0FBTztnQkFDdkJWLGlCQUFpQjFCLEdBQUcsR0FBR0E7Z0JBQ3ZCLE9BQU9rQztZQUNUO1FBQ0YsR0FDQ0gsSUFBSSxDQUFDLENBQUNNLElBQU87Z0JBQ1pKLGdCQUFnQkksRUFBRUQsT0FBTztnQkFDekJQLGFBQWEsRUFBRTthQUNqQixLQUNGO1lBQUVJO1lBQWdCSjtRQUFZO0lBQ3BDLEdBQ0NFLElBQUksQ0FBQztZQUFDLEVBQUVFLGNBQWMsRUFBRUosV0FBVyxFQUFFO1lBa0JsQ0g7UUFqQkYsOEVBQThFO1FBQzlFLGtGQUFrRjtRQUNsRix5RUFBeUU7UUFDekUsTUFBTVksVUFBVWQsUUFBUXhCO1FBQ3hCLE1BQU11QyxTQUFTO1lBQ2JqSSxXQUFXMkg7WUFDWEs7WUFDQTFKO1lBQ0E0SixLQUFLO2dCQUNIeEc7Z0JBQ0FkLFVBQVU1QixZQUFZMEksSUFBSTtnQkFDMUJyRyxPQUFPckMsWUFBWXFDLEtBQUs7Z0JBQ3hCbEM7Z0JBQ0E2STtZQUNGO1FBQ0Y7UUFDQSxPQUFPRyxRQUFRQyxPQUFPLENBQ3BCaEIsQ0FBQUEsQ0FBQUEsMEJBQUFBLGlCQUFpQmhILEtBQUFBLEtBQUssZ0JBQXRCZ0gsd0JBQXdCMUYsR0FBQUEsSUFDcEIwRixpQkFBaUJoSCxLQUFLLEdBQ3RCaUksQ0FBQUEsR0FBQUEsT0FBQUEsbUJBQUFBLEVBQW9CM0MsS0FBS3VDLFNBQzdCUixJQUFJLENBQUMsQ0FBQ2EsWUFDTixpQ0FBaUMsa0NBQ2tDO1lBQ25FaEIsU0FBUztnQkFDUCxHQUFHRixnQkFBZ0I7Z0JBQ25CMUY7Z0JBQ0ExQixXQUFXMkg7Z0JBQ1hKO2dCQUNBbkgsT0FBT2tJO1lBQ1Q7SUFFSjtBQUNKO0FBRUEsbUVBQW1FO0FBQ25FLHlEQUF5RDtBQUN6RCxTQUFTQyxLQUFLLEtBQXNDOztJQUF0QyxNQUFFQyxRQUFRLEVBQTRCLEdBQXRDO0lBQ1osaUVBQWlFO0lBQ2pFLHVDQUF1QztJQUN2Q3pJLE9BQUFBLE9BQUssQ0FBQzBJLGVBQWU7Z0NBQUMsSUFBTUQ7K0JBQVk7UUFBQ0E7S0FBUztJQUNsRCxPQUFPO0FBQ1Q7OztBQUVBLE1BQU1FLG1CQUFtQjtJQUN2QkMsaUJBQWlCO0lBQ2pCQyxjQUFjO0lBQ2RDLGFBQWE7SUFDYkMsY0FBYztJQUNkQyxhQUFhO0FBQ2Y7QUFFQSxNQUFNQyxzQkFBc0I7SUFDMUJDLFdBQVc7SUFDWEMsaUJBQWlCO0lBQ2pCQyxxQkFBcUI7SUFDckIvRyxRQUFRO0FBQ1Y7QUFFQSxJQUFJZ0gsWUFBaUI7QUFDckIsbURBQW1EO0FBQ25ELElBQUlDLGdCQUF5QjtBQUU3QixTQUFTQzs7SUFDTjtRQUNDWixpQkFBaUJFLFlBQVk7UUFDN0JGLGlCQUFpQkksWUFBWTtRQUM3QkosaUJBQWlCRyxXQUFXO1FBQzVCSCxpQkFBaUJLLFdBQVc7S0FDN0IsQ0FBQ1EsT0FBTyxDQUFDLENBQUNDLE9BQVNDLFlBQVlILFVBQVUsQ0FBQ0U7QUFDN0M7QUFFQSxTQUFTRTtJQUNQLElBQUksQ0FBQ0MsT0FBQUEsRUFBRSxFQUFFO0lBRVRGLFlBQVlELElBQUksQ0FBQ2QsaUJBQWlCSSxZQUFZLEVBQUUsd0JBQXdCOztJQUV4RSxNQUFNYyxzQkFBc0JILFlBQVlJLGdCQUFnQixDQUN0RG5CLGlCQUFpQkUsWUFBWSxFQUM3QixRQUNBa0IsTUFBTTtJQUNSLElBQUlGLHFCQUFxQjtRQUN2QixNQUFNRyx5QkFBeUJOLFlBQVlPLE9BQU8sQ0FDaERoQixvQkFBb0JFLGVBQWUsRUFDbkNSLGlCQUFpQkMsZUFBZSxFQUNoQ0QsaUJBQWlCRSxZQUFZO1FBRy9CLE1BQU1xQixtQkFBbUJSLFlBQVlPLE9BQU8sQ0FDMUNoQixvQkFBb0JDLFNBQVMsRUFDN0JQLGlCQUFpQkUsWUFBWSxFQUM3QkYsaUJBQWlCSSxZQUFZO1FBRy9CLElBQ0V0SyxLQUFvQixJQUNwQix5RkFBeUY7UUFDekZ1TCwwQkFDQUUsa0JBQ0E7WUFDQXZILFFBQUFBLE9BQU0sQ0FDSHdILFNBQVMsQ0FBQywyQkFBMkI7Z0JBQ3BDQyxXQUFXVixZQUFZVyxVQUFVLEdBQUdMLHVCQUF1QkksU0FBUztnQkFDcEVFLFlBQVk7b0JBQ1Z6SixVQUFVQyxTQUFTRCxRQUFRO29CQUMzQlMsT0FBT1IsU0FBU0MsTUFBTTtnQkFDeEI7WUFDRixHQUNDd0osR0FBRyxDQUNGYixZQUFZVyxVQUFVLEdBQ3BCSCxpQkFBaUJFLFNBQVMsR0FDMUJGLGlCQUFpQk0sUUFBUTtRQUVqQztJQUNGO0lBRUEsSUFBSTNLLGFBQWE7UUFDZjZKLFlBQ0dJLGdCQUFnQixDQUFDYixvQkFBb0JDLFNBQVMsRUFDOUNNLE9BQU8sQ0FBQzNKO0lBQ2I7SUFDQTBKO0FBQ0Y7QUFFQSxTQUFTa0I7SUFDUCxJQUFJLENBQUNiLE9BQUFBLEVBQUUsRUFBRTtJQUVURixZQUFZRCxJQUFJLENBQUNkLGlCQUFpQkcsV0FBVyxFQUFFLHFCQUFxQjs7SUFDcEUsTUFBTTRCLGtCQUF3Q2hCLFlBQVlJLGdCQUFnQixDQUN4RW5CLGlCQUFpQkssV0FBVyxFQUM1QjtJQUdGLElBQUksQ0FBQzBCLGdCQUFnQlgsTUFBTSxFQUFFO0lBRTdCLE1BQU1GLHNCQUFzQkgsWUFBWUksZ0JBQWdCLENBQ3REbkIsaUJBQWlCRSxZQUFZLEVBQzdCLFFBQ0FrQixNQUFNO0lBRVIsSUFBSUYscUJBQXFCO1FBQ3ZCSCxZQUFZTyxPQUFPLENBQ2pCaEIsb0JBQW9CRyxtQkFBbUIsRUFDdkNzQixlQUFlLENBQUMsRUFBRSxDQUFDQyxJQUFJLEVBQ3ZCaEMsaUJBQWlCRSxZQUFZO1FBRS9CYSxZQUFZTyxPQUFPLENBQ2pCaEIsb0JBQW9CNUcsTUFBTSxFQUMxQnNHLGlCQUFpQkUsWUFBWSxFQUM3QkYsaUJBQWlCRyxXQUFXO1FBRTlCLElBQUlqSixhQUFhO1lBQ2Y2SixZQUNHSSxnQkFBZ0IsQ0FBQ2Isb0JBQW9CNUcsTUFBTSxFQUMzQ21ILE9BQU8sQ0FBQzNKO1lBQ1g2SixZQUNHSSxnQkFBZ0IsQ0FBQ2Isb0JBQW9CRyxtQkFBbUIsRUFDeERJLE9BQU8sQ0FBQzNKO1FBQ2I7SUFDRjtJQUVBMEo7SUFDQztRQUNDTixvQkFBb0JHLG1CQUFtQjtRQUN2Q0gsb0JBQW9CNUcsTUFBTTtLQUMzQixDQUFDbUgsT0FBTyxDQUFDLENBQUNTLFVBQVlQLFlBQVlrQixhQUFhLENBQUNYO0FBQ25EO0FBRUEsU0FBU1ksbUJBQ1BDLEtBQWtCLEVBQ2xCeEssRUFBbUM7SUFFbkMsK0JBQStCO0lBQy9CLElBQUlzSixPQUFBQSxFQUFFLEVBQUU7UUFDTkYsWUFBWUQsSUFBSSxDQUFDZCxpQkFBaUJFLFlBQVk7SUFDaEQ7SUFFQSxNQUFNa0MsVUFBVXpLLEdBQUdnSixnQkFBZ0JLLHNCQUFzQmM7SUFDekQsSUFBSSxDQUFDcEIsV0FBVztRQUNkLDRFQUE0RTtRQUM1RUEsWUFBWTJCLFFBQUFBLE9BQVEsQ0FBQ0MsV0FBVyxDQUFDSCxPQUFPQyxTQUFTO1lBQy9DRyxvQkFBQUEsUUFBQUEsa0JBQWtCO1FBQ3BCO1FBQ0EsdUdBQXVHO1FBQ3ZHNUIsZ0JBQWdCO0lBQ2xCLE9BQU87UUFDTCxNQUFNNkIsa0JBQW1CbkwsT0FBQUEsT0FBSyxDQUFTbUwsZUFBZTtRQUN0REEsZ0JBQWdCO1lBQ2Q5QixVQUFVaEgsTUFBTSxDQUFDMEk7UUFDbkI7SUFDRjtBQUNGO0FBRUEsY0FBYyxLQUtaOztJQUxZLE1BQ1pNLFNBQVMsRUFDVDlJLFFBQVEsRUFHUixHQUxZO0lBTVosbUVBQW1FO0lBQ25FLHNDQUFzQztJQUN0Q3ZDLE9BQUFBLE9BQUssQ0FBQzBJLGVBQWU7Z0NBQ25CLElBQU0yQyxVQUFVN0IsT0FBTzt3Q0FBQyxDQUFDZixXQUFhQTs7K0JBQ3RDO1FBQUM0QztLQUFVO0lBR2IsSUFBSTVNLEtBQTRCLEVBQUUsRUFTakM7SUFFRCxPQUFPOEQ7QUFDVDtJQXpCUzZJOztBQTJCVCxTQUFTN0QsU0FBU3pJLEtBQXNCO0lBQ3RDLElBQUksRUFBRTZHLEdBQUcsRUFBRTFGLFNBQVMsRUFBRUksS0FBSyxFQUFFc0IsR0FBRyxFQUFFLEdBQW9CN0M7SUFDdEQsSUFBSTBJLGNBQ0YsYUFBYTFJLFFBQVFLLFlBQVlMLE1BQU0wSSxXQUFXO0lBQ3BEdkgsWUFBWUEsYUFBYVIsYUFBYVEsU0FBUztJQUMvQ0ksUUFBUUEsU0FBU1osYUFBYVksS0FBSztJQUVuQyxNQUFNdUYsV0FBcUI7UUFDekIsR0FBR3ZGLEtBQUs7UUFDUko7UUFDQTBCO1FBQ0FwRDtJQUNGO0lBQ0EsK0ZBQStGO0lBQy9Ga0IsZUFBZW1HO0lBRWYsSUFBSThGLFdBQW9CO0lBQ3hCLElBQUlDO0lBQ0osTUFBTUMsZ0JBQWdCLElBQUl4RCxRQUFjLENBQUNDLFNBQVN3RDtRQUNoRCxJQUFJbk0sa0JBQWtCO1lBQ3BCQTtRQUNGO1FBQ0FpTSxpQkFBaUI7WUFDZmpNLG1CQUFtQjtZQUNuQjJJO1FBQ0Y7UUFDQTNJLG1CQUFtQjtZQUNqQmdNLFdBQVc7WUFDWGhNLG1CQUFtQjtZQUVuQixNQUFNdUcsUUFBYSxJQUFJNkYsTUFBTTtZQUM3QjdGLE1BQU1yRSxTQUFTLEdBQUc7WUFDbEJpSyxPQUFPNUY7UUFDVDtJQUNGO0lBRUEseUVBQXlFO0lBQ3pFLHlDQUF5QztJQUN6QyxTQUFTOEY7UUFDUCxJQUNFLENBQUN2RSxlQUNELHdFQUF3RTtRQUN4RSw4QkFBOEI7MEJBQ0wsY0FDekI7WUFDQSxPQUFPO1FBQ1Q7UUFFQSxNQUFNd0UsbUJBQXVDbk4sYUFDM0NvRCxTQUFTZ0ssZ0JBQWdCLENBQUM7UUFFNUIsTUFBTUMsZUFBbUMsSUFBSUMsSUFDM0NILGlCQUFpQjNHLEdBQUcsQ0FBQyxDQUFDK0csTUFBUUEsSUFBSUMsWUFBWSxDQUFDO1FBR2pELE1BQU1DLFdBQTJCckssU0FBU3NLLGFBQWEsQ0FDckQ7UUFFRixNQUFNQyxRQUNKRixZQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxTQUFVRCxZQUFZLENBQUM7UUFFekI3RSxZQUFZZ0MsT0FBTyxDQUFDO2dCQUFDLEVBQUVpRCxJQUFJLEVBQUVDLElBQUksRUFBK0I7WUFDOUQsSUFBSSxDQUFDUixhQUFhUyxHQUFHLENBQUNGLE9BQU87Z0JBQzNCLE1BQU1HLFdBQVczSyxTQUFTNEssYUFBYSxDQUFDO2dCQUN4Q0QsU0FBU0UsWUFBWSxDQUFDLGVBQWVMO2dCQUNyQ0csU0FBU0UsWUFBWSxDQUFDLFNBQVM7Z0JBRS9CLElBQUlOLE9BQU87b0JBQ1RJLFNBQVNFLFlBQVksQ0FBQyxTQUFTTjtnQkFDakM7Z0JBRUF2SyxTQUFTOEssSUFBSSxDQUFDQyxXQUFXLENBQUNKO2dCQUMxQkEsU0FBU0ksV0FBVyxDQUFDL0ssU0FBU2dMLGNBQWMsQ0FBQ1A7WUFDL0M7UUFDRjtRQUNBLE9BQU87SUFDVDtJQUVBLFNBQVNRO1FBQ1AsSUFDRSxLQVNTeEIsRUFDVCxFQWtERDtRQUVELElBQUk1TSxNQUFNZ1AsTUFBTSxFQUFFO1lBQ2hCLE1BQU0sRUFBRUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUUsR0FBR2xQLE1BQU1nUCxNQUFNO1lBQzdCRyxDQUFBQSxHQUFBQSxvQkFBQUEsa0JBQUFBLEVBQW1CO2dCQUNqQmhMLE9BQU9pTCxRQUFRLENBQUNILEdBQUdDO1lBQ3JCO1FBQ0Y7SUFDRjtJQUVBLFNBQVNHO1FBQ1B4QztJQUNGO0lBRUFJO0lBRUEsTUFBTXFDLE9BQUFBLFdBQUFBLEdBQ0o7OzBCQUNFLHFCQUFDNUYsTUFBQUE7Z0JBQUtDLFVBQVV5RTs7MEJBQ2hCLHNCQUFDckgsY0FBQUE7O29CQUNFSCxVQUFVQyxLQUFLQztrQ0FDaEIscUJBQUN5SSxRQUFBQSxNQUFNO3dCQUFDQyxNQUFLO2tDQUNYLG1DQUFDQyxnQkFBQUEsY0FBYzs7Ozs7O0lBTXZCLGlGQUFpRjtJQUNqRjFELG1CQUFtQnZMLFlBQWEsQ0FBQ21KLFdBQUFBLFdBQUFBLEdBQy9CLHFCQUFDMkMsTUFBQUE7WUFBS0MsV0FBVztnQkFBQzVDO2dCQUFVMEY7YUFBYTtzQkFDdEMxUCxNQUE4QixpQkFDN0IsQyxHQUVBMlA7O0lBS04sT0FBT3hDO0FBQ1Q7QUFFQSxlQUFldkosT0FBT3FNLGNBQStCO0lBQ25ELHNFQUFzRTtJQUN0RSwyRUFBMkU7SUFDM0UsK0VBQStFO0lBQy9FLHdEQUF3RDtJQUN4RCxJQUNFQSxlQUFlL00sR0FBRyxJQUNsQixtRkFBbUY7S0FDbEYsT0FBTytNLGVBQWV6TyxTQUFTLEtBQUssZUFDbkMsQ0FBQ3lPLGVBQWVDLGFBQUFBLEdBQ2xCO1FBQ0EsTUFBTXpJLFlBQVl3STtRQUNsQjtJQUNGO0lBRUEsSUFBSTtRQUNGLE1BQU1uSCxTQUFTbUg7SUFDakIsRUFBRSxPQUFPL00sS0FBSztRQUNaLE1BQU1pTixZQUFZQyxDQUFBQSxHQUFBQSxTQUFBQSxjQUFBQSxFQUFlbE47UUFDakMsK0JBQStCO1FBQy9CLElBQUtpTixVQUE4Q2hOLFNBQVMsRUFBRTtZQUM1RCxNQUFNZ047UUFDUjtRQUVBLElBQUluUSxJQUFvQixFQUFvQjtZQUMxQywrREFBK0Q7WUFDL0QwRCxXQUFXO2dCQUNULE1BQU15TTtZQUNSO1FBQ0Y7UUFDQSxNQUFNMUksWUFBWTtZQUFFLEdBQUd3SSxjQUFjO1lBQUUvTSxLQUFLaU47UUFBVTtJQUN4RDtBQUNGO0FBRU8sZUFBZXZRLFFBQVFxRSxJQUE2QztJQUN6RSxJQUFJb00sYUFBYTdQLFlBQVkwQyxHQUFHO0lBRWhDLElBQUk7UUFDRixNQUFNb04sZ0JBQWdCLE1BQU0xUCxXQUFXNkYsV0FBVyxDQUFDOEosY0FBYyxDQUFDO1FBQ2xFLElBQUksV0FBV0QsZUFBZTtZQUM1QixNQUFNQSxjQUFjOUksS0FBSztRQUMzQjtRQUVBLE1BQU0sRUFBRWdKLFdBQVdDLEdBQUcsRUFBRUMsU0FBU0MsR0FBRyxFQUFFLEdBQUdMO1FBQ3pDblAsWUFBWXNQO1FBQ1osSUFBSUUsT0FBT0EsSUFBSUMsZUFBZSxFQUFFO1lBQzlCeFAsY0FBYztvQkFBQyxFQUNieVAsRUFBRSxFQUNGM0UsSUFBSSxFQUNKUCxTQUFTLEVBQ1Q5RCxLQUFLLEVBQ0xrRSxRQUFRLEVBQ1IrRSxTQUFTLEVBQ1RDLE9BQU8sRUFDUEMsV0FBVyxFQUNQO2dCQUNKLHNEQUFzRDtnQkFDdEQsTUFBTUMsV0FBc0JDLEtBQUtDLEdBQUcsS0FBRyxNQUNyQ0MsQ0FBQUEsS0FBS0MsS0FBSyxDQUFDRCxLQUFLRSxNQUFNLEtBQU0sU0FBTyxLQUFNLEtBQUc7Z0JBRTlDLElBQUlDO2dCQUVKLElBQUlSLFdBQVdBLFFBQVF6RixNQUFNLEVBQUU7b0JBQzdCaUcsaUJBQWlCUixPQUFPLENBQUMsRUFBRSxDQUFDcEYsU0FBUztnQkFDdkM7Z0JBRUEsTUFBTTZGLFlBQWlDO29CQUNyQ1gsSUFBSUEsTUFBTUk7b0JBQ1YvRTtvQkFDQVAsV0FBV0EsYUFBYTRGO29CQUN4QjFKLE9BQU9BLFNBQVMsT0FBT2tFLFdBQVdsRTtvQkFDbEM0SixPQUNFWCxjQUFjLFVBQVVBLGNBQWMsWUFDbEMsV0FDQTtnQkFDUjtnQkFDQSxJQUFJRSxhQUFhO29CQUNmUSxVQUFVUixXQUFXLEdBQUdBO2dCQUMxQjtnQkFDQUwsSUFBSUMsZUFBZSxDQUFDWTtZQUN0QjtRQUNGO1FBRUEsTUFBTUUsaUJBQ0osd0RBQ3dEO2FBQ2xCLElBQUlsUixZQUFZMEMsR0FBRyxHQUNyRDtZQUFFc0UsT0FBT2hILFlBQVkwQyxHQUFHO1FBQUMsSUFDekIsTUFBTXRDLFdBQVc2RixXQUFXLENBQUM4SixjQUFjLENBQUMvUCxZQUFZMEksSUFBSTtRQUNsRSxJQUFJLFdBQVd3SSxnQkFBZ0I7WUFDN0IsTUFBTUEsZUFBZWxLLEtBQUs7UUFDNUI7UUFDQW5HLGtCQUFrQnFRLGVBQWVsQixTQUFTO1FBRTFDLElBQUl4USxJQUFvQixFQUFtQjtZQUN6QyxNQUFNLEVBQUUyUixrQkFBa0IsRUFBRSxHQUFHM04sbUJBQU9BLENBQUMsd0ZBQTZCO1lBQ3BFLElBQUksQ0FBQzJOLG1CQUFtQnRRLGtCQUFrQjtnQkFDeEMsTUFBTSxJQUFJZ00sTUFDUCwyREFBd0Q3TSxZQUFZMEksSUFBSSxHQUFDO1lBRTlFO1FBQ0Y7SUFDRixFQUFFLE9BQU8xQixPQUFPO1FBQ2QsaUVBQWlFO1FBQ2pFNkksYUFBYUQsQ0FBQUEsR0FBQUEsU0FBQUEsY0FBQUEsRUFBZTVJO0lBQzlCO0lBRUEsSUFBSXhILElBQW9CLEVBQW9CO1FBQzFDLE1BQU00UixpQkFDSjVOLHVLQUFxRTtRQUN2RSx3RUFBd0U7UUFDeEUsZ0NBQWdDO1FBQ2hDLElBQUlxTSxZQUFZO1lBQ2QsSUFBSUEsZUFBZTdQLFlBQVkwQyxHQUFHLEVBQUU7Z0JBQ2xDUSxXQUFXO29CQUNULElBQUk4RDtvQkFDSixJQUFJO3dCQUNGLG1FQUFtRTt3QkFDbkUsa0VBQWtFO3dCQUNsRSw0Q0FBNEM7d0JBQzVDLE1BQU0sSUFBSTZGLE1BQU1nRCxXQUFZd0IsT0FBTztvQkFDckMsRUFBRSxPQUFPQyxHQUFHO3dCQUNWdEssUUFBUXNLO29CQUNWO29CQUVBdEssTUFBTTBFLElBQUksR0FBR21FLFdBQVluRSxJQUFJO29CQUM3QjFFLE1BQU11SyxLQUFLLEdBQUcxQixXQUFZMEIsS0FBSztvQkFDL0IsTUFBTUMsWUFBWTNCLFdBQVc0QixNQUFNO29CQUVuQyw2REFBNkQ7b0JBQzdELDBHQUEwRztvQkFDMUcsSUFBSUMsQ0FBQUEsR0FBQUEsbUJBQUFBLGlCQUFBQSxFQUFrQjdCLGFBQWE7d0JBQ2pDN0ksTUFBTXFLLE9BQU8sR0FDWDtvQkFDSjtvQkFFQSxNQUFNRCxlQUFlcEssT0FBT3dLO2dCQUM5QjtZQUNGLE9BR0s7Z0JBQ0h0TyxXQUFXO29CQUNULE1BQU0yTTtnQkFDUjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLElBQUk3TCxPQUFPMk4sbUJBQW1CLEVBQUU7UUFDOUIsTUFBTTNOLE9BQU8yTixtQkFBbUIsQ0FBQzNSLFlBQVk0UixVQUFVO0lBQ3pEO0lBRUF0UyxTQUFTdVMsQ0FBQUEsR0FBQUEsUUFBQUEsWUFBQUEsRUFBYTdSLFlBQVkwSSxJQUFJLEVBQUUxSSxZQUFZcUMsS0FBSyxFQUFFbEMsUUFBUTtRQUNqRTJSLGNBQWM5UixZQUFZb0IsS0FBSztRQUMvQmhCO1FBQ0FzRyxLQUFLL0Y7UUFDTEssV0FBV0g7UUFDWHFIO1FBQ0F4RixLQUFLbU47UUFDTHBPLFlBQVlzUSxRQUFRL1IsWUFBWXlCLFVBQVU7UUFDMUN1USxjQUFjLENBQUM3USxNQUFNdUYsS0FBS21JLFNBQ3hCekwsT0FDRTZPLE9BQU85UCxNQUFNLENBSVgsQ0FBQyxHQUFHaEIsTUFBTTtnQkFDVnVGO2dCQUNBbUk7WUFDRjtRQUVKdkosUUFBUXRGLFlBQVlzRixNQUFNO1FBQzFCSixTQUFTbEYsWUFBWWtGLE9BQU87UUFDNUJqRjtRQUNBaVMsZUFBZWxTLFlBQVlrUyxhQUFhO1FBQ3hDQyxXQUFXblMsWUFBWW1TLFNBQVM7SUFDbEM7SUFFQTVSLDJCQUEyQixNQUFNakIsT0FBTzhTLGdDQUFnQztJQUV4RSxNQUFNQyxZQUE2QjtRQUNqQzNMLEtBQUsvRjtRQUNMMlIsU0FBUztRQUNUdFIsV0FBV0g7UUFDWE8sT0FBT3BCLFlBQVlvQixLQUFLO1FBQ3hCc0IsS0FBS21OO1FBQ0xILGVBQWU7SUFDakI7SUFFQSxJQUFJak0sUUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsS0FBTW1HLFlBQVksRUFBRTtRQUN0QixNQUFNbkcsS0FBS21HLFlBQVk7SUFDekI7SUFFQXhHLE9BQU9pUDtBQUNUIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvY2xpZW50L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgbG9jYXRpb24gKi9cbi8vIGltcG9ydHMgcG9seWZpbGwgZnJvbSBgQG5leHQvcG9seWZpbGwtbW9kdWxlYCBhZnRlciBidWlsZC5cbmltcG9ydCAnLi4vYnVpbGQvcG9seWZpbGxzL3BvbHlmaWxsLW1vZHVsZSdcbmltcG9ydCB0eXBlIFJvdXRlciBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXInXG5pbXBvcnQgdHlwZSB7XG4gIEFwcENvbXBvbmVudCxcbiAgQXBwUHJvcHMsXG4gIFByaXZhdGVSb3V0ZUluZm8sXG59IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3JvdXRlcidcblxuaW1wb3J0IFJlYWN0LCB7IHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tL2NsaWVudCdcbmltcG9ydCB7IEhlYWRNYW5hZ2VyQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgbWl0dCBmcm9tICcuLi9zaGFyZWQvbGliL21pdHQnXG5pbXBvcnQgdHlwZSB7IE1pdHRFbWl0dGVyIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9taXR0J1xuaW1wb3J0IHsgUm91dGVyQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBoYW5kbGVTbW9vdGhTY3JvbGwgfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9oYW5kbGUtc21vb3RoLXNjcm9sbCdcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYydcbmltcG9ydCB7XG4gIHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMsXG4gIGFzc2lnbixcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcnXG5pbXBvcnQgeyBzZXRDb25maWcgfSBmcm9tICcuLi9zaGFyZWQvbGliL3J1bnRpbWUtY29uZmlnLmV4dGVybmFsJ1xuaW1wb3J0IHsgZ2V0VVJMLCBsb2FkR2V0SW5pdGlhbFByb3BzLCBTVCB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5pbXBvcnQgdHlwZSB7IE5leHRXZWJWaXRhbHNNZXRyaWMsIE5FWFRfREFUQSB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5pbXBvcnQgeyBQb3J0YWwgfSBmcm9tICcuL3BvcnRhbCdcbmltcG9ydCBpbml0SGVhZE1hbmFnZXIgZnJvbSAnLi9oZWFkLW1hbmFnZXInXG5pbXBvcnQgUGFnZUxvYWRlciBmcm9tICcuL3BhZ2UtbG9hZGVyJ1xuaW1wb3J0IHR5cGUgeyBTdHlsZVNoZWV0VHVwbGUgfSBmcm9tICcuL3BhZ2UtbG9hZGVyJ1xuaW1wb3J0IHsgUm91dGVBbm5vdW5jZXIgfSBmcm9tICcuL3JvdXRlLWFubm91bmNlcidcbmltcG9ydCB7IGNyZWF0ZVJvdXRlciwgbWFrZVB1YmxpY1JvdXRlckluc3RhbmNlIH0gZnJvbSAnLi9yb3V0ZXInXG5pbXBvcnQgeyBnZXRQcm9wZXJFcnJvciB9IGZyb20gJy4uL2xpYi9pcy1lcnJvcidcbmltcG9ydCB7IEltYWdlQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgdHlwZSB7IEltYWdlQ29uZmlnQ29tcGxldGUgfSBmcm9tICcuLi9zaGFyZWQvbGliL2ltYWdlLWNvbmZpZydcbmltcG9ydCB7IHJlbW92ZUJhc2VQYXRoIH0gZnJvbSAnLi9yZW1vdmUtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgaGFzQmFzZVBhdGggfSBmcm9tICcuL2hhcy1iYXNlLXBhdGgnXG5pbXBvcnQgeyBBcHBSb3V0ZXJDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQge1xuICBhZGFwdEZvckFwcFJvdXRlckluc3RhbmNlLFxuICBhZGFwdEZvclBhdGhQYXJhbXMsXG4gIGFkYXB0Rm9yU2VhcmNoUGFyYW1zLFxuICBQYXRobmFtZUNvbnRleHRQcm92aWRlckFkYXB0ZXIsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL2FkYXB0ZXJzJ1xuaW1wb3J0IHtcbiAgU2VhcmNoUGFyYW1zQ29udGV4dCxcbiAgUGF0aFBhcmFtc0NvbnRleHQsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvaG9va3MtY2xpZW50LWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBvblJlY292ZXJhYmxlRXJyb3IgfSBmcm9tICcuL3JlYWN0LWNsaWVudC1jYWxsYmFja3Mvc2hhcmVkJ1xuaW1wb3J0IHRyYWNlciBmcm9tICcuL3RyYWNpbmcvdHJhY2VyJ1xuaW1wb3J0IHJlcG9ydFRvU29ja2V0IGZyb20gJy4vdHJhY2luZy9yZXBvcnQtdG8tc29ja2V0J1xuaW1wb3J0IHsgaXNOZXh0Um91dGVyRXJyb3IgfSBmcm9tICcuL2NvbXBvbmVudHMvaXMtbmV4dC1yb3V0ZXItZXJyb3InXG5cbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwicmVhY3QtZG9tL2V4cGVyaW1lbnRhbFwiIC8+XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgLyogdGVzdCBmbnMgKi9cbiAgICBfX05FWFRfSFlEUkFURUQ/OiBib29sZWFuXG4gICAgX19ORVhUX0hZRFJBVEVEX0NCPzogKCkgPT4gdm9pZFxuXG4gICAgLyogcHJvZCAqL1xuICAgIF9fTkVYVF9EQVRBX186IE5FWFRfREFUQVxuICAgIF9fTkVYVF9QOiBhbnlbXVxuICB9XG59XG50eXBlIFJlbmRlclJvdXRlSW5mbyA9IFByaXZhdGVSb3V0ZUluZm8gJiB7XG4gIEFwcDogQXBwQ29tcG9uZW50XG4gIHNjcm9sbD86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB8IG51bGxcbiAgaXNIeWRyYXRlUGFzcz86IGJvb2xlYW5cbn1cbnR5cGUgUmVuZGVyRXJyb3JQcm9wcyA9IE9taXQ8UmVuZGVyUm91dGVJbmZvLCAnQ29tcG9uZW50JyB8ICdzdHlsZVNoZWV0cyc+XG50eXBlIFJlZ2lzdGVyRm4gPSAoaW5wdXQ6IFtzdHJpbmcsICgpID0+IHZvaWRdKSA9PiB2b2lkXG5cbmV4cG9ydCBjb25zdCB2ZXJzaW9uID0gcHJvY2Vzcy5lbnYuX19ORVhUX1ZFUlNJT05cbmV4cG9ydCBsZXQgcm91dGVyOiBSb3V0ZXJcbmV4cG9ydCBjb25zdCBlbWl0dGVyOiBNaXR0RW1pdHRlcjxzdHJpbmc+ID0gbWl0dCgpXG5cbmNvbnN0IGxvb3NlVG9BcnJheSA9IDxUIGV4dGVuZHMge30+KGlucHV0OiBhbnkpOiBUW10gPT4gW10uc2xpY2UuY2FsbChpbnB1dClcblxubGV0IGluaXRpYWxEYXRhOiBORVhUX0RBVEFcbmxldCBkZWZhdWx0TG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbmxldCBhc1BhdGg6IHN0cmluZ1xubGV0IHBhZ2VMb2FkZXI6IFBhZ2VMb2FkZXJcbmxldCBhcHBFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGxcbmxldCBoZWFkTWFuYWdlcjoge1xuICBtb3VudGVkSW5zdGFuY2VzOiBTZXQ8dW5rbm93bj5cbiAgdXBkYXRlSGVhZDogKGhlYWQ6IEpTWC5FbGVtZW50W10pID0+IHZvaWRcbiAgZ2V0SXNTc3I/OiAoKSA9PiBib29sZWFuXG59XG5sZXQgaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlID0gZmFsc2VcbmxldCBsYXN0QXBwUHJvcHM6IEFwcFByb3BzXG5cbmxldCBsYXN0UmVuZGVyUmVqZWN0OiAoKCkgPT4gdm9pZCkgfCBudWxsXG5sZXQgZGV2Q2xpZW50OiBhbnlcblxubGV0IENhY2hlZEFwcDogQXBwQ29tcG9uZW50LCBvblBlcmZFbnRyeTogKG1ldHJpYzogYW55KSA9PiB2b2lkXG5sZXQgQ2FjaGVkQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlXG5cbmNsYXNzIENvbnRhaW5lciBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDx7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIGZuOiAoZXJyOiBFcnJvciwgaW5mbz86IGFueSkgPT4gdm9pZFxufT4ge1xuICBjb21wb25lbnREaWRDYXRjaChjb21wb25lbnRFcnI6IEVycm9yLCBpbmZvOiBhbnkpIHtcbiAgICB0aGlzLnByb3BzLmZuKGNvbXBvbmVudEVyciwgaW5mbylcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuc2Nyb2xsVG9IYXNoKClcblxuICAgIC8vIFdlIG5lZWQgdG8gcmVwbGFjZSB0aGUgcm91dGVyIHN0YXRlIGlmOlxuICAgIC8vIC0gdGhlIHBhZ2Ugd2FzIChhdXRvKSBleHBvcnRlZCBhbmQgaGFzIGEgcXVlcnkgc3RyaW5nIG9yIHNlYXJjaCAoaGFzaClcbiAgICAvLyAtIGl0IHdhcyBhdXRvIGV4cG9ydGVkIGFuZCBpcyBhIGR5bmFtaWMgcm91dGUgKHRvIHByb3ZpZGUgcGFyYW1zKVxuICAgIC8vIC0gaWYgaXQgaXMgYSBjbGllbnQtc2lkZSBza2VsZXRvbiAoZmFsbGJhY2sgcmVuZGVyKVxuICAgIC8vIC0gaWYgbWlkZGxld2FyZSBtYXRjaGVzIHRoZSBjdXJyZW50IHBhZ2UgKG1heSBoYXZlIHJld3JpdGUgcGFyYW1zKVxuICAgIC8vIC0gaWYgcmV3cml0ZXMgaW4gbmV4dC5jb25maWcuanMgbWF0Y2ggKG1heSBoYXZlIHJld3JpdGUgcGFyYW1zKVxuICAgIGlmIChcbiAgICAgIHJvdXRlci5pc1NzciAmJlxuICAgICAgKGluaXRpYWxEYXRhLmlzRmFsbGJhY2sgfHxcbiAgICAgICAgKGluaXRpYWxEYXRhLm5leHRFeHBvcnQgJiZcbiAgICAgICAgICAoaXNEeW5hbWljUm91dGUocm91dGVyLnBhdGhuYW1lKSB8fFxuICAgICAgICAgICAgbG9jYXRpb24uc2VhcmNoIHx8XG4gICAgICAgICAgICBwcm9jZXNzLmVudi5fX05FWFRfSEFTX1JFV1JJVEVTIHx8XG4gICAgICAgICAgICBpbml0aWFsTWF0Y2hlc01pZGRsZXdhcmUpKSB8fFxuICAgICAgICAoaW5pdGlhbERhdGEucHJvcHMgJiZcbiAgICAgICAgICBpbml0aWFsRGF0YS5wcm9wcy5fX05fU1NHICYmXG4gICAgICAgICAgKGxvY2F0aW9uLnNlYXJjaCB8fFxuICAgICAgICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX0hBU19SRVdSSVRFUyB8fFxuICAgICAgICAgICAgaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlKSkpXG4gICAgKSB7XG4gICAgICAvLyB1cGRhdGUgcXVlcnkgb24gbW91bnQgZm9yIGV4cG9ydGVkIHBhZ2VzXG4gICAgICByb3V0ZXJcbiAgICAgICAgLnJlcGxhY2UoXG4gICAgICAgICAgcm91dGVyLnBhdGhuYW1lICtcbiAgICAgICAgICAgICc/JyArXG4gICAgICAgICAgICBTdHJpbmcoXG4gICAgICAgICAgICAgIGFzc2lnbihcbiAgICAgICAgICAgICAgICB1cmxRdWVyeVRvU2VhcmNoUGFyYW1zKHJvdXRlci5xdWVyeSksXG4gICAgICAgICAgICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyhsb2NhdGlvbi5zZWFyY2gpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgYXNQYXRoLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIC8vIFdBUk5JTkc6IGBfaGAgaXMgYW4gaW50ZXJuYWwgb3B0aW9uIGZvciBoYW5kaW5nIE5leHQuanNcbiAgICAgICAgICAgIC8vIGNsaWVudC1zaWRlIGh5ZHJhdGlvbi4gWW91ciBhcHAgc2hvdWxkIF9uZXZlcl8gdXNlIHRoaXMgcHJvcGVydHkuXG4gICAgICAgICAgICAvLyBJdCBtYXkgY2hhbmdlIGF0IGFueSB0aW1lIHdpdGhvdXQgbm90aWNlLlxuICAgICAgICAgICAgX2g6IDEsXG4gICAgICAgICAgICAvLyBGYWxsYmFjayBwYWdlcyBtdXN0IHRyaWdnZXIgdGhlIGRhdGEgZmV0Y2gsIHNvIHRoZSB0cmFuc2l0aW9uIGlzXG4gICAgICAgICAgICAvLyBub3Qgc2hhbGxvdy5cbiAgICAgICAgICAgIC8vIE90aGVyIHBhZ2VzIChzdHJpY3RseSB1cGRhdGluZyBxdWVyeSkgaGFwcGVucyBzaGFsbG93bHksIGFzIGRhdGFcbiAgICAgICAgICAgIC8vIHJlcXVpcmVtZW50cyB3b3VsZCBhbHJlYWR5IGJlIHByZXNlbnQuXG4gICAgICAgICAgICBzaGFsbG93OiAhaW5pdGlhbERhdGEuaXNGYWxsYmFjayAmJiAhaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlLFxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgIGlmICghZXJyLmNhbmNlbGxlZCkgdGhyb3cgZXJyXG4gICAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIHRoaXMuc2Nyb2xsVG9IYXNoKClcbiAgfVxuXG4gIHNjcm9sbFRvSGFzaCgpIHtcbiAgICBsZXQgeyBoYXNoIH0gPSBsb2NhdGlvblxuICAgIGhhc2ggPSBoYXNoICYmIGhhc2guc3Vic3RyaW5nKDEpXG4gICAgaWYgKCFoYXNoKSByZXR1cm5cblxuICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChoYXNoKVxuICAgIGlmICghZWwpIHJldHVyblxuXG4gICAgLy8gSWYgd2UgY2FsbCBzY3JvbGxJbnRvVmlldygpIGluIGhlcmUgd2l0aG91dCBhIHNldFRpbWVvdXRcbiAgICAvLyBpdCB3b24ndCBzY3JvbGwgcHJvcGVybHkuXG4gICAgc2V0VGltZW91dCgoKSA9PiBlbC5zY3JvbGxJbnRvVmlldygpLCAwKVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5jaGlsZHJlblxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBSZWFjdERldk92ZXJsYXk6IHR5cGVvZiBpbXBvcnQoJy4vY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9wYWdlcy9jbGllbnQnKS5SZWFjdERldk92ZXJsYXkgPVxuICAgICAgICByZXF1aXJlKCcuL2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvcGFnZXMvY2xpZW50JykuUmVhY3REZXZPdmVybGF5XG4gICAgICByZXR1cm4gPFJlYWN0RGV2T3ZlcmxheT57dGhpcy5wcm9wcy5jaGlsZHJlbn08L1JlYWN0RGV2T3ZlcmxheT5cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXRpYWxpemUob3B0czogeyBkZXZDbGllbnQ/OiBhbnkgfSA9IHt9KTogUHJvbWlzZTx7XG4gIGFzc2V0UHJlZml4OiBzdHJpbmdcbn0+IHtcbiAgdHJhY2VyLm9uU3BhbkVuZChyZXBvcnRUb1NvY2tldClcblxuICAvLyBUaGlzIG1ha2VzIHN1cmUgdGhpcyBzcGVjaWZpYyBsaW5lcyBhcmUgcmVtb3ZlZCBpbiBwcm9kdWN0aW9uXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGRldkNsaWVudCA9IG9wdHMuZGV2Q2xpZW50XG4gIH1cblxuICBpbml0aWFsRGF0YSA9IEpTT04ucGFyc2UoXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19fTkVYVF9EQVRBX18nKSEudGV4dENvbnRlbnQhXG4gIClcbiAgd2luZG93Ll9fTkVYVF9EQVRBX18gPSBpbml0aWFsRGF0YVxuXG4gIGRlZmF1bHRMb2NhbGUgPSBpbml0aWFsRGF0YS5kZWZhdWx0TG9jYWxlXG4gIGNvbnN0IHByZWZpeDogc3RyaW5nID0gaW5pdGlhbERhdGEuYXNzZXRQcmVmaXggfHwgJydcbiAgLy8gV2l0aCBkeW5hbWljIGFzc2V0UHJlZml4IGl0J3Mgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIHNldCBhc3NldFByZWZpeCBhdCB0aGUgYnVpbGQgdGltZVxuICAvLyBTbywgdGhpcyBpcyBob3cgd2UgZG8gaXQgaW4gdGhlIGNsaWVudCBzaWRlIGF0IHJ1bnRpbWVcbiAgOyhzZWxmIGFzIGFueSkuX19uZXh0X3NldF9wdWJsaWNfcGF0aF9fKGAke3ByZWZpeH0vX25leHQvYCkgLy9lc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgLy8gSW5pdGlhbGl6ZSBuZXh0L2NvbmZpZyB3aXRoIHRoZSBlbnZpcm9ubWVudCBjb25maWd1cmF0aW9uXG4gIHNldENvbmZpZyh7XG4gICAgc2VydmVyUnVudGltZUNvbmZpZzoge30sXG4gICAgcHVibGljUnVudGltZUNvbmZpZzogaW5pdGlhbERhdGEucnVudGltZUNvbmZpZyB8fCB7fSxcbiAgfSlcblxuICBhc1BhdGggPSBnZXRVUkwoKVxuXG4gIC8vIG1ha2Ugc3VyZSBub3QgdG8gYXR0ZW1wdCBzdHJpcHBpbmcgYmFzZVBhdGggZm9yIDQwNHNcbiAgaWYgKGhhc0Jhc2VQYXRoKGFzUGF0aCkpIHtcbiAgICBhc1BhdGggPSByZW1vdmVCYXNlUGF0aChhc1BhdGgpXG4gIH1cblxuICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgIGNvbnN0IHsgbm9ybWFsaXplTG9jYWxlUGF0aCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9zaGFyZWQvbGliL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoJylcblxuICAgIGNvbnN0IHsgZGV0ZWN0RG9tYWluTG9jYWxlIH0gPVxuICAgICAgcmVxdWlyZSgnLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vc2hhcmVkL2xpYi9pMThuL2RldGVjdC1kb21haW4tbG9jYWxlJylcblxuICAgIGNvbnN0IHsgcGFyc2VSZWxhdGl2ZVVybCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybCcpIGFzIHR5cGVvZiBpbXBvcnQoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybCcpXG5cbiAgICBjb25zdCB7IGZvcm1hdFVybCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9mb3JtYXQtdXJsJylcblxuICAgIGlmIChpbml0aWFsRGF0YS5sb2NhbGVzKSB7XG4gICAgICBjb25zdCBwYXJzZWRBcyA9IHBhcnNlUmVsYXRpdmVVcmwoYXNQYXRoKVxuICAgICAgY29uc3QgbG9jYWxlUGF0aFJlc3VsdCA9IG5vcm1hbGl6ZUxvY2FsZVBhdGgoXG4gICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lLFxuICAgICAgICBpbml0aWFsRGF0YS5sb2NhbGVzXG4gICAgICApXG5cbiAgICAgIGlmIChsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gbG9jYWxlUGF0aFJlc3VsdC5wYXRobmFtZVxuICAgICAgICBhc1BhdGggPSBmb3JtYXRVcmwocGFyc2VkQXMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBkZXJpdmUgdGhlIGRlZmF1bHQgbG9jYWxlIGlmIGl0IHdhc24ndCBkZXRlY3RlZCBpbiB0aGUgYXNQYXRoXG4gICAgICAgIC8vIHNpbmNlIHdlIGRvbid0IHByZXJlbmRlciBzdGF0aWMgcGFnZXMgd2l0aCBhbGwgcG9zc2libGUgZGVmYXVsdFxuICAgICAgICAvLyBsb2NhbGVzXG4gICAgICAgIGRlZmF1bHRMb2NhbGUgPSBpbml0aWFsRGF0YS5sb2NhbGVcbiAgICAgIH1cblxuICAgICAgLy8gYXR0ZW1wdCBkZXRlY3RpbmcgZGVmYXVsdCBsb2NhbGUgYmFzZWQgb24gaG9zdG5hbWVcbiAgICAgIGNvbnN0IGRldGVjdGVkRG9tYWluID0gZGV0ZWN0RG9tYWluTG9jYWxlKFxuICAgICAgICBwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9ET01BSU5TIGFzIGFueSxcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lXG4gICAgICApXG5cbiAgICAgIC8vIFRPRE86IGludmVzdGlnYXRlIGlmIGRlZmF1bHRMb2NhbGUgbmVlZHMgdG8gYmUgcG9wdWxhdGVkIGFmdGVyXG4gICAgICAvLyBoeWRyYXRpb24gdG8gcHJldmVudCBtaXNtYXRjaGVkIHJlbmRlcnNcbiAgICAgIGlmIChkZXRlY3RlZERvbWFpbikge1xuICAgICAgICBkZWZhdWx0TG9jYWxlID0gZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlmIChpbml0aWFsRGF0YS5zY3JpcHRMb2FkZXIpIHtcbiAgICBjb25zdCB7IGluaXRTY3JpcHRMb2FkZXIgfSA9IHJlcXVpcmUoJy4vc2NyaXB0JylcbiAgICBpbml0U2NyaXB0TG9hZGVyKGluaXRpYWxEYXRhLnNjcmlwdExvYWRlcilcbiAgfVxuXG4gIHBhZ2VMb2FkZXIgPSBuZXcgUGFnZUxvYWRlcihpbml0aWFsRGF0YS5idWlsZElkLCBwcmVmaXgpXG5cbiAgY29uc3QgcmVnaXN0ZXI6IFJlZ2lzdGVyRm4gPSAoW3IsIGZdKSA9PlxuICAgIHBhZ2VMb2FkZXIucm91dGVMb2FkZXIub25FbnRyeXBvaW50KHIsIGYpXG4gIGlmICh3aW5kb3cuX19ORVhUX1ApIHtcbiAgICAvLyBEZWZlciBwYWdlIHJlZ2lzdHJhdGlvbiBmb3IgYW5vdGhlciB0aWNrLiBUaGlzIHdpbGwgaW5jcmVhc2UgdGhlIG92ZXJhbGxcbiAgICAvLyBsYXRlbmN5IGluIGh5ZHJhdGluZyB0aGUgcGFnZSwgYnV0IHJlZHVjZSB0aGUgdG90YWwgYmxvY2tpbmcgdGltZS5cbiAgICB3aW5kb3cuX19ORVhUX1AubWFwKChwKSA9PiBzZXRUaW1lb3V0KCgpID0+IHJlZ2lzdGVyKHApLCAwKSlcbiAgfVxuICB3aW5kb3cuX19ORVhUX1AgPSBbXVxuICA7KHdpbmRvdy5fX05FWFRfUCBhcyBhbnkpLnB1c2ggPSByZWdpc3RlclxuXG4gIGhlYWRNYW5hZ2VyID0gaW5pdEhlYWRNYW5hZ2VyKClcbiAgaGVhZE1hbmFnZXIuZ2V0SXNTc3IgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHJvdXRlci5pc1NzclxuICB9XG5cbiAgYXBwRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfX25leHQnKVxuICByZXR1cm4geyBhc3NldFByZWZpeDogcHJlZml4IH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyQXBwKEFwcDogQXBwQ29tcG9uZW50LCBhcHBQcm9wczogQXBwUHJvcHMpIHtcbiAgcmV0dXJuIDxBcHAgey4uLmFwcFByb3BzfSAvPlxufVxuXG5mdW5jdGlvbiBBcHBDb250YWluZXIoe1xuICBjaGlsZHJlbixcbn06IFJlYWN0LlByb3BzV2l0aENoaWxkcmVuPHt9Pik6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIC8vIENyZWF0ZSBhIG1lbW9pemVkIHZhbHVlIGZvciBuZXh0L25hdmlnYXRpb24gcm91dGVyIGNvbnRleHQuXG4gIGNvbnN0IGFkYXB0ZWRGb3JBcHBSb3V0ZXIgPSBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gYWRhcHRGb3JBcHBSb3V0ZXJJbnN0YW5jZShyb3V0ZXIpXG4gIH0sIFtdKVxuICByZXR1cm4gKFxuICAgIDxDb250YWluZXJcbiAgICAgIGZuPXsoZXJyb3IpID0+XG4gICAgICAgIC8vIFRPRE86IEZpeCBkaXNhYmxlZCBlc2xpbnQgcnVsZVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICAgIHJlbmRlckVycm9yKHsgQXBwOiBDYWNoZWRBcHAsIGVycjogZXJyb3IgfSkuY2F0Y2goKGVycikgPT5cbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciByZW5kZXJpbmcgcGFnZTogJywgZXJyKVxuICAgICAgICApXG4gICAgICB9XG4gICAgPlxuICAgICAgPEFwcFJvdXRlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2FkYXB0ZWRGb3JBcHBSb3V0ZXJ9PlxuICAgICAgICA8U2VhcmNoUGFyYW1zQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17YWRhcHRGb3JTZWFyY2hQYXJhbXMocm91dGVyKX0+XG4gICAgICAgICAgPFBhdGhuYW1lQ29udGV4dFByb3ZpZGVyQWRhcHRlclxuICAgICAgICAgICAgcm91dGVyPXtyb3V0ZXJ9XG4gICAgICAgICAgICBpc0F1dG9FeHBvcnQ9e3NlbGYuX19ORVhUX0RBVEFfXy5hdXRvRXhwb3J0ID8/IGZhbHNlfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxQYXRoUGFyYW1zQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17YWRhcHRGb3JQYXRoUGFyYW1zKHJvdXRlcil9PlxuICAgICAgICAgICAgICA8Um91dGVyQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bWFrZVB1YmxpY1JvdXRlckluc3RhbmNlKHJvdXRlcil9PlxuICAgICAgICAgICAgICAgIDxIZWFkTWFuYWdlckNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2hlYWRNYW5hZ2VyfT5cbiAgICAgICAgICAgICAgICAgIDxJbWFnZUNvbmZpZ0NvbnRleHQuUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e1xuICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZW52XG4gICAgICAgICAgICAgICAgICAgICAgICAuX19ORVhUX0lNQUdFX09QVFMgYXMgYW55IGFzIEltYWdlQ29uZmlnQ29tcGxldGVcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICA8L0ltYWdlQ29uZmlnQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0hlYWRNYW5hZ2VyQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICAgICAgPC9Sb3V0ZXJDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgPC9QYXRoUGFyYW1zQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICA8L1BhdGhuYW1lQ29udGV4dFByb3ZpZGVyQWRhcHRlcj5cbiAgICAgICAgPC9TZWFyY2hQYXJhbXNDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9BcHBSb3V0ZXJDb250ZXh0LlByb3ZpZGVyPlxuICAgIDwvQ29udGFpbmVyPlxuICApXG59XG5cbmNvbnN0IHdyYXBBcHAgPVxuICAoQXBwOiBBcHBDb21wb25lbnQpID0+XG4gICh3cmFwcGVkQXBwUHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBKU1guRWxlbWVudCA9PiB7XG4gICAgY29uc3QgYXBwUHJvcHM6IEFwcFByb3BzID0ge1xuICAgICAgLi4ud3JhcHBlZEFwcFByb3BzLFxuICAgICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgICBlcnI6IGluaXRpYWxEYXRhLmVycixcbiAgICAgIHJvdXRlcixcbiAgICB9XG4gICAgcmV0dXJuIDxBcHBDb250YWluZXI+e3JlbmRlckFwcChBcHAsIGFwcFByb3BzKX08L0FwcENvbnRhaW5lcj5cbiAgfVxuXG4vLyBUaGlzIG1ldGhvZCBoYW5kbGVzIGFsbCBydW50aW1lIGFuZCBkZWJ1ZyBlcnJvcnMuXG4vLyA0MDQgYW5kIDUwMCBlcnJvcnMgYXJlIHNwZWNpYWwga2luZCBvZiBlcnJvcnNcbi8vIGFuZCB0aGV5IGFyZSBzdGlsbCBoYW5kbGUgdmlhIHRoZSBtYWluIHJlbmRlciBtZXRob2QuXG5mdW5jdGlvbiByZW5kZXJFcnJvcihyZW5kZXJFcnJvclByb3BzOiBSZW5kZXJFcnJvclByb3BzKTogUHJvbWlzZTxhbnk+IHtcbiAgbGV0IHsgQXBwLCBlcnIgfSA9IHJlbmRlckVycm9yUHJvcHNcblxuICAvLyBJbiBkZXZlbG9wbWVudCBydW50aW1lIGVycm9ycyBhcmUgY2F1Z2h0IGJ5IG91ciBvdmVybGF5XG4gIC8vIEluIHByb2R1Y3Rpb24gd2UgY2F0Y2ggcnVudGltZSBlcnJvcnMgdXNpbmcgY29tcG9uZW50RGlkQ2F0Y2ggd2hpY2ggd2lsbCB0cmlnZ2VyIHJlbmRlckVycm9yXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gQSBOZXh0LmpzIHJlbmRlcmluZyBydW50aW1lIGVycm9yIGlzIGFsd2F5cyB1bnJlY292ZXJhYmxlXG4gICAgLy8gRklYTUU6IGxldCdzIG1ha2UgdGhpcyByZWNvdmVyYWJsZSAoZXJyb3IgaW4gR0lQIGNsaWVudC10cmFuc2l0aW9uKVxuICAgIGRldkNsaWVudC5vblVucmVjb3ZlcmFibGVFcnJvcigpXG5cbiAgICAvLyBXZSBuZWVkIHRvIHJlbmRlciBhbiBlbXB0eSA8QXBwPiBzbyB0aGF0IHRoZSBgPFJlYWN0RGV2T3ZlcmxheT5gIGNhblxuICAgIC8vIHJlbmRlciBpdHNlbGYuXG4gICAgLy8gVE9ETzogRml4IGRpc2FibGVkIGVzbGludCBydWxlXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2UtYmVmb3JlLWRlZmluZVxuICAgIHJldHVybiBkb1JlbmRlcih7XG4gICAgICBBcHA6ICgpID0+IG51bGwsXG4gICAgICBwcm9wczoge30sXG4gICAgICBDb21wb25lbnQ6ICgpID0+IG51bGwsXG4gICAgICBzdHlsZVNoZWV0czogW10sXG4gICAgfSlcbiAgfVxuXG4gIC8vIE1ha2Ugc3VyZSB3ZSBsb2cgdGhlIGVycm9yIHRvIHRoZSBjb25zb2xlLCBvdGhlcndpc2UgdXNlcnMgY2FuJ3QgdHJhY2sgZG93biBpc3N1ZXMuXG4gIGNvbnNvbGUuZXJyb3IoZXJyKVxuICBjb25zb2xlLmVycm9yKFxuICAgIGBBIGNsaWVudC1zaWRlIGV4Y2VwdGlvbiBoYXMgb2NjdXJyZWQsIHNlZSBoZXJlIGZvciBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2NsaWVudC1zaWRlLWV4Y2VwdGlvbi1vY2N1cnJlZGBcbiAgKVxuXG4gIHJldHVybiBwYWdlTG9hZGVyXG4gICAgLmxvYWRQYWdlKCcvX2Vycm9yJylcbiAgICAudGhlbigoeyBwYWdlOiBFcnJvckNvbXBvbmVudCwgc3R5bGVTaGVldHMgfSkgPT4ge1xuICAgICAgcmV0dXJuIGxhc3RBcHBQcm9wcz8uQ29tcG9uZW50ID09PSBFcnJvckNvbXBvbmVudFxuICAgICAgICA/IGltcG9ydCgnLi4vcGFnZXMvX2Vycm9yJylcbiAgICAgICAgICAgIC50aGVuKChlcnJvck1vZHVsZSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gaW1wb3J0KCcuLi9wYWdlcy9fYXBwJykudGhlbigoYXBwTW9kdWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgQXBwID0gYXBwTW9kdWxlLmRlZmF1bHQgYXMgYW55IGFzIEFwcENvbXBvbmVudFxuICAgICAgICAgICAgICAgIHJlbmRlckVycm9yUHJvcHMuQXBwID0gQXBwXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yTW9kdWxlXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oKG0pID0+ICh7XG4gICAgICAgICAgICAgIEVycm9yQ29tcG9uZW50OiBtLmRlZmF1bHQgYXMgUmVhY3QuQ29tcG9uZW50VHlwZTx7fT4sXG4gICAgICAgICAgICAgIHN0eWxlU2hlZXRzOiBbXSxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICA6IHsgRXJyb3JDb21wb25lbnQsIHN0eWxlU2hlZXRzIH1cbiAgICB9KVxuICAgIC50aGVuKCh7IEVycm9yQ29tcG9uZW50LCBzdHlsZVNoZWV0cyB9KSA9PiB7XG4gICAgICAvLyBJbiBwcm9kdWN0aW9uIHdlIGRvIGEgbm9ybWFsIHJlbmRlciB3aXRoIHRoZSBgRXJyb3JDb21wb25lbnRgIGFzIGNvbXBvbmVudC5cbiAgICAgIC8vIElmIHdlJ3ZlIGdvdHRlbiBoZXJlIHVwb24gaW5pdGlhbCByZW5kZXIsIHdlIGNhbiB1c2UgdGhlIHByb3BzIGZyb20gdGhlIHNlcnZlci5cbiAgICAgIC8vIE90aGVyd2lzZSwgd2UgbmVlZCB0byBjYWxsIGBnZXRJbml0aWFsUHJvcHNgIG9uIGBBcHBgIGJlZm9yZSBtb3VudGluZy5cbiAgICAgIGNvbnN0IEFwcFRyZWUgPSB3cmFwQXBwKEFwcClcbiAgICAgIGNvbnN0IGFwcEN0eCA9IHtcbiAgICAgICAgQ29tcG9uZW50OiBFcnJvckNvbXBvbmVudCxcbiAgICAgICAgQXBwVHJlZSxcbiAgICAgICAgcm91dGVyLFxuICAgICAgICBjdHg6IHtcbiAgICAgICAgICBlcnIsXG4gICAgICAgICAgcGF0aG5hbWU6IGluaXRpYWxEYXRhLnBhZ2UsXG4gICAgICAgICAgcXVlcnk6IGluaXRpYWxEYXRhLnF1ZXJ5LFxuICAgICAgICAgIGFzUGF0aCxcbiAgICAgICAgICBBcHBUcmVlLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShcbiAgICAgICAgcmVuZGVyRXJyb3JQcm9wcy5wcm9wcz8uZXJyXG4gICAgICAgICAgPyByZW5kZXJFcnJvclByb3BzLnByb3BzXG4gICAgICAgICAgOiBsb2FkR2V0SW5pdGlhbFByb3BzKEFwcCwgYXBwQ3R4KVxuICAgICAgKS50aGVuKChpbml0UHJvcHMpID0+XG4gICAgICAgIC8vIFRPRE86IEZpeCBkaXNhYmxlZCBlc2xpbnQgcnVsZVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lXG4gICAgICAgIGRvUmVuZGVyKHtcbiAgICAgICAgICAuLi5yZW5kZXJFcnJvclByb3BzLFxuICAgICAgICAgIGVycixcbiAgICAgICAgICBDb21wb25lbnQ6IEVycm9yQ29tcG9uZW50LFxuICAgICAgICAgIHN0eWxlU2hlZXRzLFxuICAgICAgICAgIHByb3BzOiBpbml0UHJvcHMsXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgfSlcbn1cblxuLy8gRHVtbXkgY29tcG9uZW50IHRoYXQgd2UgcmVuZGVyIGFzIGEgY2hpbGQgb2YgUm9vdCBzbyB0aGF0IHdlIGNhblxuLy8gdG9nZ2xlIHRoZSBjb3JyZWN0IHN0eWxlcyBiZWZvcmUgdGhlIHBhZ2UgaXMgcmVuZGVyZWQuXG5mdW5jdGlvbiBIZWFkKHsgY2FsbGJhY2sgfTogeyBjYWxsYmFjazogKCkgPT4gdm9pZCB9KTogbnVsbCB7XG4gIC8vIFdlIHVzZSBgdXNlTGF5b3V0RWZmZWN0YCB0byBndWFyYW50ZWUgdGhlIGNhbGxiYWNrIGlzIGV4ZWN1dGVkXG4gIC8vIGFzIHNvb24gYXMgUmVhY3QgZmx1c2hlcyB0aGUgdXBkYXRlLlxuICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoKCkgPT4gY2FsbGJhY2soKSwgW2NhbGxiYWNrXSlcbiAgcmV0dXJuIG51bGxcbn1cblxuY29uc3QgcGVyZm9ybWFuY2VNYXJrcyA9IHtcbiAgbmF2aWdhdGlvblN0YXJ0OiAnbmF2aWdhdGlvblN0YXJ0JyxcbiAgYmVmb3JlUmVuZGVyOiAnYmVmb3JlUmVuZGVyJyxcbiAgYWZ0ZXJSZW5kZXI6ICdhZnRlclJlbmRlcicsXG4gIGFmdGVySHlkcmF0ZTogJ2FmdGVySHlkcmF0ZScsXG4gIHJvdXRlQ2hhbmdlOiAncm91dGVDaGFuZ2UnLFxufSBhcyBjb25zdFxuXG5jb25zdCBwZXJmb3JtYW5jZU1lYXN1cmVzID0ge1xuICBoeWRyYXRpb246ICdOZXh0LmpzLWh5ZHJhdGlvbicsXG4gIGJlZm9yZUh5ZHJhdGlvbjogJ05leHQuanMtYmVmb3JlLWh5ZHJhdGlvbicsXG4gIHJvdXRlQ2hhbmdlVG9SZW5kZXI6ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInLFxuICByZW5kZXI6ICdOZXh0LmpzLXJlbmRlcicsXG59IGFzIGNvbnN0XG5cbmxldCByZWFjdFJvb3Q6IGFueSA9IG51bGxcbi8vIE9uIGluaXRpYWwgcmVuZGVyIGEgaHlkcmF0ZSBzaG91bGQgYWx3YXlzIGhhcHBlblxubGV0IHNob3VsZEh5ZHJhdGU6IGJvb2xlYW4gPSB0cnVlXG5cbmZ1bmN0aW9uIGNsZWFyTWFya3MoKTogdm9pZCB7XG4gIDtbXG4gICAgcGVyZm9ybWFuY2VNYXJrcy5iZWZvcmVSZW5kZXIsXG4gICAgcGVyZm9ybWFuY2VNYXJrcy5hZnRlckh5ZHJhdGUsXG4gICAgcGVyZm9ybWFuY2VNYXJrcy5hZnRlclJlbmRlcixcbiAgICBwZXJmb3JtYW5jZU1hcmtzLnJvdXRlQ2hhbmdlLFxuICBdLmZvckVhY2goKG1hcmspID0+IHBlcmZvcm1hbmNlLmNsZWFyTWFya3MobWFyaykpXG59XG5cbmZ1bmN0aW9uIG1hcmtIeWRyYXRlQ29tcGxldGUoKTogdm9pZCB7XG4gIGlmICghU1QpIHJldHVyblxuXG4gIHBlcmZvcm1hbmNlLm1hcmsocGVyZm9ybWFuY2VNYXJrcy5hZnRlckh5ZHJhdGUpIC8vIG1hcmsgZW5kIG9mIGh5ZHJhdGlvblxuXG4gIGNvbnN0IGhhc0JlZm9yZVJlbmRlck1hcmsgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlOYW1lKFxuICAgIHBlcmZvcm1hbmNlTWFya3MuYmVmb3JlUmVuZGVyLFxuICAgICdtYXJrJ1xuICApLmxlbmd0aFxuICBpZiAoaGFzQmVmb3JlUmVuZGVyTWFyaykge1xuICAgIGNvbnN0IGJlZm9yZUh5ZHJhdGlvbk1lYXN1cmUgPSBwZXJmb3JtYW5jZS5tZWFzdXJlKFxuICAgICAgcGVyZm9ybWFuY2VNZWFzdXJlcy5iZWZvcmVIeWRyYXRpb24sXG4gICAgICBwZXJmb3JtYW5jZU1hcmtzLm5hdmlnYXRpb25TdGFydCxcbiAgICAgIHBlcmZvcm1hbmNlTWFya3MuYmVmb3JlUmVuZGVyXG4gICAgKVxuXG4gICAgY29uc3QgaHlkcmF0aW9uTWVhc3VyZSA9IHBlcmZvcm1hbmNlLm1lYXN1cmUoXG4gICAgICBwZXJmb3JtYW5jZU1lYXN1cmVzLmh5ZHJhdGlvbixcbiAgICAgIHBlcmZvcm1hbmNlTWFya3MuYmVmb3JlUmVuZGVyLFxuICAgICAgcGVyZm9ybWFuY2VNYXJrcy5hZnRlckh5ZHJhdGVcbiAgICApXG5cbiAgICBpZiAoXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJlxuICAgICAgLy8gT2xkIHZlcnNpb25zIG9mIFNhZmFyaSBkb24ndCByZXR1cm4gYFBlcmZvcm1hbmNlTWVhc3VyZWBzIGZyb20gYHBlcmZvcm1hbmNlLm1lYXN1cmUoKWBcbiAgICAgIGJlZm9yZUh5ZHJhdGlvbk1lYXN1cmUgJiZcbiAgICAgIGh5ZHJhdGlvbk1lYXN1cmVcbiAgICApIHtcbiAgICAgIHRyYWNlclxuICAgICAgICAuc3RhcnRTcGFuKCduYXZpZ2F0aW9uLXRvLWh5ZHJhdGlvbicsIHtcbiAgICAgICAgICBzdGFydFRpbWU6IHBlcmZvcm1hbmNlLnRpbWVPcmlnaW4gKyBiZWZvcmVIeWRyYXRpb25NZWFzdXJlLnN0YXJ0VGltZSxcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICBwYXRobmFtZTogbG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICAgICAgICBxdWVyeTogbG9jYXRpb24uc2VhcmNoLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIC5lbmQoXG4gICAgICAgICAgcGVyZm9ybWFuY2UudGltZU9yaWdpbiArXG4gICAgICAgICAgICBoeWRyYXRpb25NZWFzdXJlLnN0YXJ0VGltZSArXG4gICAgICAgICAgICBoeWRyYXRpb25NZWFzdXJlLmR1cmF0aW9uXG4gICAgICAgIClcbiAgICB9XG4gIH1cblxuICBpZiAob25QZXJmRW50cnkpIHtcbiAgICBwZXJmb3JtYW5jZVxuICAgICAgLmdldEVudHJpZXNCeU5hbWUocGVyZm9ybWFuY2VNZWFzdXJlcy5oeWRyYXRpb24pXG4gICAgICAuZm9yRWFjaChvblBlcmZFbnRyeSlcbiAgfVxuICBjbGVhck1hcmtzKClcbn1cblxuZnVuY3Rpb24gbWFya1JlbmRlckNvbXBsZXRlKCk6IHZvaWQge1xuICBpZiAoIVNUKSByZXR1cm5cblxuICBwZXJmb3JtYW5jZS5tYXJrKHBlcmZvcm1hbmNlTWFya3MuYWZ0ZXJSZW5kZXIpIC8vIG1hcmsgZW5kIG9mIHJlbmRlclxuICBjb25zdCBuYXZTdGFydEVudHJpZXM6IFBlcmZvcm1hbmNlRW50cnlMaXN0ID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZShcbiAgICBwZXJmb3JtYW5jZU1hcmtzLnJvdXRlQ2hhbmdlLFxuICAgICdtYXJrJ1xuICApXG5cbiAgaWYgKCFuYXZTdGFydEVudHJpZXMubGVuZ3RoKSByZXR1cm5cblxuICBjb25zdCBoYXNCZWZvcmVSZW5kZXJNYXJrID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5TmFtZShcbiAgICBwZXJmb3JtYW5jZU1hcmtzLmJlZm9yZVJlbmRlcixcbiAgICAnbWFyaydcbiAgKS5sZW5ndGhcblxuICBpZiAoaGFzQmVmb3JlUmVuZGVyTWFyaykge1xuICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoXG4gICAgICBwZXJmb3JtYW5jZU1lYXN1cmVzLnJvdXRlQ2hhbmdlVG9SZW5kZXIsXG4gICAgICBuYXZTdGFydEVudHJpZXNbMF0ubmFtZSxcbiAgICAgIHBlcmZvcm1hbmNlTWFya3MuYmVmb3JlUmVuZGVyXG4gICAgKVxuICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUoXG4gICAgICBwZXJmb3JtYW5jZU1lYXN1cmVzLnJlbmRlcixcbiAgICAgIHBlcmZvcm1hbmNlTWFya3MuYmVmb3JlUmVuZGVyLFxuICAgICAgcGVyZm9ybWFuY2VNYXJrcy5hZnRlclJlbmRlclxuICAgIClcbiAgICBpZiAob25QZXJmRW50cnkpIHtcbiAgICAgIHBlcmZvcm1hbmNlXG4gICAgICAgIC5nZXRFbnRyaWVzQnlOYW1lKHBlcmZvcm1hbmNlTWVhc3VyZXMucmVuZGVyKVxuICAgICAgICAuZm9yRWFjaChvblBlcmZFbnRyeSlcbiAgICAgIHBlcmZvcm1hbmNlXG4gICAgICAgIC5nZXRFbnRyaWVzQnlOYW1lKHBlcmZvcm1hbmNlTWVhc3VyZXMucm91dGVDaGFuZ2VUb1JlbmRlcilcbiAgICAgICAgLmZvckVhY2gob25QZXJmRW50cnkpXG4gICAgfVxuICB9XG5cbiAgY2xlYXJNYXJrcygpXG4gIDtbXG4gICAgcGVyZm9ybWFuY2VNZWFzdXJlcy5yb3V0ZUNoYW5nZVRvUmVuZGVyLFxuICAgIHBlcmZvcm1hbmNlTWVhc3VyZXMucmVuZGVyLFxuICBdLmZvckVhY2goKG1lYXN1cmUpID0+IHBlcmZvcm1hbmNlLmNsZWFyTWVhc3VyZXMobWVhc3VyZSkpXG59XG5cbmZ1bmN0aW9uIHJlbmRlclJlYWN0RWxlbWVudChcbiAgZG9tRWw6IEhUTUxFbGVtZW50LFxuICBmbjogKGNiOiAoKSA9PiB2b2lkKSA9PiBKU1guRWxlbWVudFxuKTogdm9pZCB7XG4gIC8vIG1hcmsgc3RhcnQgb2YgaHlkcmF0ZS9yZW5kZXJcbiAgaWYgKFNUKSB7XG4gICAgcGVyZm9ybWFuY2UubWFyayhwZXJmb3JtYW5jZU1hcmtzLmJlZm9yZVJlbmRlcilcbiAgfVxuXG4gIGNvbnN0IHJlYWN0RWwgPSBmbihzaG91bGRIeWRyYXRlID8gbWFya0h5ZHJhdGVDb21wbGV0ZSA6IG1hcmtSZW5kZXJDb21wbGV0ZSlcbiAgaWYgKCFyZWFjdFJvb3QpIHtcbiAgICAvLyBVbmxpa2Ugd2l0aCBjcmVhdGVSb290LCB5b3UgZG9uJ3QgbmVlZCBhIHNlcGFyYXRlIHJvb3QucmVuZGVyKCkgY2FsbCBoZXJlXG4gICAgcmVhY3RSb290ID0gUmVhY3RET00uaHlkcmF0ZVJvb3QoZG9tRWwsIHJlYWN0RWwsIHtcbiAgICAgIG9uUmVjb3ZlcmFibGVFcnJvcixcbiAgICB9KVxuICAgIC8vIFRPRE86IFJlbW92ZSBzaG91bGRIeWRyYXRlIHZhcmlhYmxlIHdoZW4gUmVhY3QgMTggaXMgc3RhYmxlIGFzIGl0IGNhbiBkZXBlbmQgb24gYHJlYWN0Um9vdGAgZXhpc3RpbmdcbiAgICBzaG91bGRIeWRyYXRlID0gZmFsc2VcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBzdGFydFRyYW5zaXRpb24gPSAoUmVhY3QgYXMgYW55KS5zdGFydFRyYW5zaXRpb25cbiAgICBzdGFydFRyYW5zaXRpb24oKCkgPT4ge1xuICAgICAgcmVhY3RSb290LnJlbmRlcihyZWFjdEVsKVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gUm9vdCh7XG4gIGNhbGxiYWNrcyxcbiAgY2hpbGRyZW4sXG59OiBSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGNhbGxiYWNrczogQXJyYXk8KCkgPT4gdm9pZD5cbn0+KTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgLy8gV2UgdXNlIGB1c2VMYXlvdXRFZmZlY3RgIHRvIGd1YXJhbnRlZSB0aGUgY2FsbGJhY2tzIGFyZSBleGVjdXRlZFxuICAvLyBhcyBzb29uIGFzIFJlYWN0IGZsdXNoZXMgdGhlIHVwZGF0ZVxuICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoXG4gICAgKCkgPT4gY2FsbGJhY2tzLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjaygpKSxcbiAgICBbY2FsbGJhY2tzXVxuICApXG5cbiAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9URVNUX01PREUpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaG9va3MvcnVsZXMtb2YtaG9va3NcbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgd2luZG93Ll9fTkVYVF9IWURSQVRFRCA9IHRydWVcblxuICAgICAgaWYgKHdpbmRvdy5fX05FWFRfSFlEUkFURURfQ0IpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9IWURSQVRFRF9DQigpXG4gICAgICB9XG4gICAgfSwgW10pXG4gIH1cblxuICByZXR1cm4gY2hpbGRyZW4gYXMgUmVhY3QuUmVhY3RFbGVtZW50XG59XG5cbmZ1bmN0aW9uIGRvUmVuZGVyKGlucHV0OiBSZW5kZXJSb3V0ZUluZm8pOiBQcm9taXNlPGFueT4ge1xuICBsZXQgeyBBcHAsIENvbXBvbmVudCwgcHJvcHMsIGVyciB9OiBSZW5kZXJSb3V0ZUluZm8gPSBpbnB1dFxuICBsZXQgc3R5bGVTaGVldHM6IFN0eWxlU2hlZXRUdXBsZVtdIHwgdW5kZWZpbmVkID1cbiAgICAnaW5pdGlhbCcgaW4gaW5wdXQgPyB1bmRlZmluZWQgOiBpbnB1dC5zdHlsZVNoZWV0c1xuICBDb21wb25lbnQgPSBDb21wb25lbnQgfHwgbGFzdEFwcFByb3BzLkNvbXBvbmVudFxuICBwcm9wcyA9IHByb3BzIHx8IGxhc3RBcHBQcm9wcy5wcm9wc1xuXG4gIGNvbnN0IGFwcFByb3BzOiBBcHBQcm9wcyA9IHtcbiAgICAuLi5wcm9wcyxcbiAgICBDb21wb25lbnQsXG4gICAgZXJyLFxuICAgIHJvdXRlcixcbiAgfVxuICAvLyBsYXN0QXBwUHJvcHMgaGFzIHRvIGJlIHNldCBiZWZvcmUgUmVhY3REb20ucmVuZGVyIHRvIGFjY291bnQgZm9yIFJlYWN0RG9tIHRocm93aW5nIGFuIGVycm9yLlxuICBsYXN0QXBwUHJvcHMgPSBhcHBQcm9wc1xuXG4gIGxldCBjYW5jZWxlZDogYm9vbGVhbiA9IGZhbHNlXG4gIGxldCByZXNvbHZlUHJvbWlzZTogKCkgPT4gdm9pZFxuICBjb25zdCByZW5kZXJQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGlmIChsYXN0UmVuZGVyUmVqZWN0KSB7XG4gICAgICBsYXN0UmVuZGVyUmVqZWN0KClcbiAgICB9XG4gICAgcmVzb2x2ZVByb21pc2UgPSAoKSA9PiB7XG4gICAgICBsYXN0UmVuZGVyUmVqZWN0ID0gbnVsbFxuICAgICAgcmVzb2x2ZSgpXG4gICAgfVxuICAgIGxhc3RSZW5kZXJSZWplY3QgPSAoKSA9PiB7XG4gICAgICBjYW5jZWxlZCA9IHRydWVcbiAgICAgIGxhc3RSZW5kZXJSZWplY3QgPSBudWxsXG5cbiAgICAgIGNvbnN0IGVycm9yOiBhbnkgPSBuZXcgRXJyb3IoJ0NhbmNlbCByZW5kZXJpbmcgcm91dGUnKVxuICAgICAgZXJyb3IuY2FuY2VsbGVkID0gdHJ1ZVxuICAgICAgcmVqZWN0KGVycm9yKVxuICAgIH1cbiAgfSlcblxuICAvLyBUaGlzIGZ1bmN0aW9uIGhhcyBhIHJldHVybiB0eXBlIHRvIGVuc3VyZSBpdCBkb2Vzbid0IHN0YXJ0IHJldHVybmluZyBhXG4gIC8vIFByb21pc2UuIEl0IHNob3VsZCByZW1haW4gc3luY2hyb25vdXMuXG4gIGZ1bmN0aW9uIG9uU3RhcnQoKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgIXN0eWxlU2hlZXRzIHx8XG4gICAgICAvLyBXZSB1c2UgYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQsIHNvIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmdcbiAgICAgIC8vIHVubGVzcyB3ZSdyZSBpbiBwcm9kdWN0aW9uOlxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJ1xuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3QgY3VycmVudFN0eWxlVGFnczogSFRNTFN0eWxlRWxlbWVudFtdID0gbG9vc2VUb0FycmF5PEhUTUxTdHlsZUVsZW1lbnQ+KFxuICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3R5bGVbZGF0YS1uLWhyZWZdJylcbiAgICApXG4gICAgY29uc3QgY3VycmVudEhyZWZzOiBTZXQ8c3RyaW5nIHwgbnVsbD4gPSBuZXcgU2V0KFxuICAgICAgY3VycmVudFN0eWxlVGFncy5tYXAoKHRhZykgPT4gdGFnLmdldEF0dHJpYnV0ZSgnZGF0YS1uLWhyZWYnKSlcbiAgICApXG5cbiAgICBjb25zdCBub3NjcmlwdDogRWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgJ25vc2NyaXB0W2RhdGEtbi1jc3NdJ1xuICAgIClcbiAgICBjb25zdCBub25jZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCA9XG4gICAgICBub3NjcmlwdD8uZ2V0QXR0cmlidXRlKCdkYXRhLW4tY3NzJylcblxuICAgIHN0eWxlU2hlZXRzLmZvckVhY2goKHsgaHJlZiwgdGV4dCB9OiB7IGhyZWY6IHN0cmluZzsgdGV4dDogYW55IH0pID0+IHtcbiAgICAgIGlmICghY3VycmVudEhyZWZzLmhhcyhocmVmKSkge1xuICAgICAgICBjb25zdCBzdHlsZVRhZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJylcbiAgICAgICAgc3R5bGVUYWcuc2V0QXR0cmlidXRlKCdkYXRhLW4taHJlZicsIGhyZWYpXG4gICAgICAgIHN0eWxlVGFnLnNldEF0dHJpYnV0ZSgnbWVkaWEnLCAneCcpXG5cbiAgICAgICAgaWYgKG5vbmNlKSB7XG4gICAgICAgICAgc3R5bGVUYWcuc2V0QXR0cmlidXRlKCdub25jZScsIG5vbmNlKVxuICAgICAgICB9XG5cbiAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZVRhZylcbiAgICAgICAgc3R5bGVUYWcuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgZnVuY3Rpb24gb25IZWFkQ29tbWl0KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIC8vIFR1cmJvcGFjayBoYXMgaXQncyBvd24gY3NzIGluamVjdGlvbiBoYW5kbGluZywgdGhpcyBjb2RlIGVuZHMgdXAgcmVtb3ZpbmcgdGhlIENTUy5cbiAgICAgICFwcm9jZXNzLmVudi5UVVJCT1BBQ0sgJiZcbiAgICAgIC8vIFdlIHVzZSBgc3R5bGUtbG9hZGVyYCBpbiBkZXZlbG9wbWVudCwgc28gd2UgZG9uJ3QgbmVlZCB0byBkbyBhbnl0aGluZ1xuICAgICAgLy8gdW5sZXNzIHdlJ3JlIGluIHByb2R1Y3Rpb246XG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nICYmXG4gICAgICAvLyBXZSBjYW4gc2tpcCB0aGlzIGR1cmluZyBoeWRyYXRpb24uIFJ1bm5pbmcgaXQgd29udCBjYXVzZSBhbnkgaGFybSwgYnV0XG4gICAgICAvLyB3ZSBtYXkgYXMgd2VsbCBzYXZlIHRoZSBDUFUgY3ljbGVzOlxuICAgICAgc3R5bGVTaGVldHMgJiZcbiAgICAgIC8vIEVuc3VyZSB0aGlzIHJlbmRlciB3YXMgbm90IGNhbmNlbGVkXG4gICAgICAhY2FuY2VsZWRcbiAgICApIHtcbiAgICAgIGNvbnN0IGRlc2lyZWRIcmVmczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KHN0eWxlU2hlZXRzLm1hcCgocykgPT4gcy5ocmVmKSlcbiAgICAgIGNvbnN0IGN1cnJlbnRTdHlsZVRhZ3M6IEhUTUxTdHlsZUVsZW1lbnRbXSA9XG4gICAgICAgIGxvb3NlVG9BcnJheTxIVE1MU3R5bGVFbGVtZW50PihcbiAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzdHlsZVtkYXRhLW4taHJlZl0nKVxuICAgICAgICApXG4gICAgICBjb25zdCBjdXJyZW50SHJlZnM6IHN0cmluZ1tdID0gY3VycmVudFN0eWxlVGFncy5tYXAoXG4gICAgICAgICh0YWcpID0+IHRhZy5nZXRBdHRyaWJ1dGUoJ2RhdGEtbi1ocmVmJykhXG4gICAgICApXG5cbiAgICAgIC8vIFRvZ2dsZSBgPHN0eWxlPmAgdGFncyBvbiBvciBvZmYgZGVwZW5kaW5nIG9uIGlmIHRoZXkncmUgbmVlZGVkOlxuICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgY3VycmVudEhyZWZzLmxlbmd0aDsgKytpZHgpIHtcbiAgICAgICAgaWYgKGRlc2lyZWRIcmVmcy5oYXMoY3VycmVudEhyZWZzW2lkeF0pKSB7XG4gICAgICAgICAgY3VycmVudFN0eWxlVGFnc1tpZHhdLnJlbW92ZUF0dHJpYnV0ZSgnbWVkaWEnKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnRTdHlsZVRhZ3NbaWR4XS5zZXRBdHRyaWJ1dGUoJ21lZGlhJywgJ3gnKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFJlb3JkZXIgc3R5bGVzIGludG8gaW50ZW5kZWQgb3JkZXI6XG4gICAgICBsZXQgcmVmZXJlbmNlTm9kZTogRWxlbWVudCB8IG51bGwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnbm9zY3JpcHRbZGF0YS1uLWNzc10nXG4gICAgICApXG4gICAgICBpZiAoXG4gICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIGFuIGludmFyaWFudDpcbiAgICAgICAgcmVmZXJlbmNlTm9kZVxuICAgICAgKSB7XG4gICAgICAgIHN0eWxlU2hlZXRzLmZvckVhY2goKHsgaHJlZiB9OiB7IGhyZWY6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0VGFnOiBFbGVtZW50IHwgbnVsbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICBgc3R5bGVbZGF0YS1uLWhyZWY9XCIke2hyZWZ9XCJdYFxuICAgICAgICAgIClcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBiZSBhbiBpbnZhcmlhbnQ6XG4gICAgICAgICAgICB0YXJnZXRUYWdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJlZmVyZW5jZU5vZGUhLnBhcmVudE5vZGUhLmluc2VydEJlZm9yZShcbiAgICAgICAgICAgICAgdGFyZ2V0VGFnLFxuICAgICAgICAgICAgICByZWZlcmVuY2VOb2RlIS5uZXh0U2libGluZ1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgcmVmZXJlbmNlTm9kZSA9IHRhcmdldFRhZ1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gRmluYWxseSwgY2xlYW4gdXAgc2VydmVyIHJlbmRlcmVkIHN0eWxlc2hlZXRzOlxuICAgICAgbG9vc2VUb0FycmF5PEhUTUxMaW5rRWxlbWVudD4oXG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbZGF0YS1uLXBdJylcbiAgICAgICkuZm9yRWFjaCgoZWwpID0+IHtcbiAgICAgICAgZWwucGFyZW50Tm9kZSEucmVtb3ZlQ2hpbGQoZWwpXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChpbnB1dC5zY3JvbGwpIHtcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gaW5wdXQuc2Nyb2xsXG4gICAgICBoYW5kbGVTbW9vdGhTY3JvbGwoKCkgPT4ge1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeCwgeSlcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gb25Sb290Q29tbWl0KCk6IHZvaWQge1xuICAgIHJlc29sdmVQcm9taXNlKClcbiAgfVxuXG4gIG9uU3RhcnQoKVxuXG4gIGNvbnN0IGVsZW06IEpTWC5FbGVtZW50ID0gKFxuICAgIDw+XG4gICAgICA8SGVhZCBjYWxsYmFjaz17b25IZWFkQ29tbWl0fSAvPlxuICAgICAgPEFwcENvbnRhaW5lcj5cbiAgICAgICAge3JlbmRlckFwcChBcHAsIGFwcFByb3BzKX1cbiAgICAgICAgPFBvcnRhbCB0eXBlPVwibmV4dC1yb3V0ZS1hbm5vdW5jZXJcIj5cbiAgICAgICAgICA8Um91dGVBbm5vdW5jZXIgLz5cbiAgICAgICAgPC9Qb3J0YWw+XG4gICAgICA8L0FwcENvbnRhaW5lcj5cbiAgICA8Lz5cbiAgKVxuXG4gIC8vIFdlIGNhdGNoIHJ1bnRpbWUgZXJyb3JzIHVzaW5nIGNvbXBvbmVudERpZENhdGNoIHdoaWNoIHdpbGwgdHJpZ2dlciByZW5kZXJFcnJvclxuICByZW5kZXJSZWFjdEVsZW1lbnQoYXBwRWxlbWVudCEsIChjYWxsYmFjaykgPT4gKFxuICAgIDxSb290IGNhbGxiYWNrcz17W2NhbGxiYWNrLCBvblJvb3RDb21taXRdfT5cbiAgICAgIHtwcm9jZXNzLmVudi5fX05FWFRfU1RSSUNUX01PREUgPyAoXG4gICAgICAgIDxSZWFjdC5TdHJpY3RNb2RlPntlbGVtfTwvUmVhY3QuU3RyaWN0TW9kZT5cbiAgICAgICkgOiAoXG4gICAgICAgIGVsZW1cbiAgICAgICl9XG4gICAgPC9Sb290PlxuICApKVxuXG4gIHJldHVybiByZW5kZXJQcm9taXNlXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlbmRlcihyZW5kZXJpbmdQcm9wczogUmVuZGVyUm91dGVJbmZvKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIGlmIGFuIGVycm9yIG9jY3VycyBpbiBhIHNlcnZlci1zaWRlIHBhZ2UgKGUuZy4gaW4gZ2V0SW5pdGlhbFByb3BzKSxcbiAgLy8gc2tpcCByZS1yZW5kZXJpbmcgdGhlIGVycm9yIHBhZ2UgY2xpZW50LXNpZGUgYXMgZGF0YS1mZXRjaGluZyBvcGVyYXRpb25zXG4gIC8vIHdpbGwgYWxyZWFkeSBoYXZlIGJlZW4gZG9uZSBvbiB0aGUgc2VydmVyIGFuZCBORVhUX0RBVEEgY29udGFpbnMgdGhlIGNvcnJlY3RcbiAgLy8gZGF0YSBmb3Igc3RyYWlnaHQtZm9yd2FyZCBoeWRyYXRpb24gb2YgdGhlIGVycm9yIHBhZ2VcbiAgaWYgKFxuICAgIHJlbmRlcmluZ1Byb3BzLmVyciAmJlxuICAgIC8vIHJlbmRlcmluZ1Byb3BzLkNvbXBvbmVudCBtaWdodCBiZSB1bmRlZmluZWQgaWYgdGhlcmUgaXMgYSB0b3AvbW9kdWxlLWxldmVsIGVycm9yXG4gICAgKHR5cGVvZiByZW5kZXJpbmdQcm9wcy5Db21wb25lbnQgPT09ICd1bmRlZmluZWQnIHx8XG4gICAgICAhcmVuZGVyaW5nUHJvcHMuaXNIeWRyYXRlUGFzcylcbiAgKSB7XG4gICAgYXdhaXQgcmVuZGVyRXJyb3IocmVuZGVyaW5nUHJvcHMpXG4gICAgcmV0dXJuXG4gIH1cblxuICB0cnkge1xuICAgIGF3YWl0IGRvUmVuZGVyKHJlbmRlcmluZ1Byb3BzKVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zdCByZW5kZXJFcnIgPSBnZXRQcm9wZXJFcnJvcihlcnIpXG4gICAgLy8gYnViYmxlIHVwIGNhbmNlbGF0aW9uIGVycm9yc1xuICAgIGlmICgocmVuZGVyRXJyIGFzIEVycm9yICYgeyBjYW5jZWxsZWQ/OiBib29sZWFuIH0pLmNhbmNlbGxlZCkge1xuICAgICAgdGhyb3cgcmVuZGVyRXJyXG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAvLyBFbnN1cmUgdGhpcyBlcnJvciBpcyBkaXNwbGF5ZWQgaW4gdGhlIG92ZXJsYXkgaW4gZGV2ZWxvcG1lbnRcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aHJvdyByZW5kZXJFcnJcbiAgICAgIH0pXG4gICAgfVxuICAgIGF3YWl0IHJlbmRlckVycm9yKHsgLi4ucmVuZGVyaW5nUHJvcHMsIGVycjogcmVuZGVyRXJyIH0pXG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGh5ZHJhdGUob3B0cz86IHsgYmVmb3JlUmVuZGVyPzogKCkgPT4gUHJvbWlzZTx2b2lkPiB9KSB7XG4gIGxldCBpbml0aWFsRXJyID0gaW5pdGlhbERhdGEuZXJyXG5cbiAgdHJ5IHtcbiAgICBjb25zdCBhcHBFbnRyeXBvaW50ID0gYXdhaXQgcGFnZUxvYWRlci5yb3V0ZUxvYWRlci53aGVuRW50cnlwb2ludCgnL19hcHAnKVxuICAgIGlmICgnZXJyb3InIGluIGFwcEVudHJ5cG9pbnQpIHtcbiAgICAgIHRocm93IGFwcEVudHJ5cG9pbnQuZXJyb3JcbiAgICB9XG5cbiAgICBjb25zdCB7IGNvbXBvbmVudDogYXBwLCBleHBvcnRzOiBtb2QgfSA9IGFwcEVudHJ5cG9pbnRcbiAgICBDYWNoZWRBcHAgPSBhcHAgYXMgQXBwQ29tcG9uZW50XG4gICAgaWYgKG1vZCAmJiBtb2QucmVwb3J0V2ViVml0YWxzKSB7XG4gICAgICBvblBlcmZFbnRyeSA9ICh7XG4gICAgICAgIGlkLFxuICAgICAgICBuYW1lLFxuICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgZW50cnlUeXBlLFxuICAgICAgICBlbnRyaWVzLFxuICAgICAgICBhdHRyaWJ1dGlvbixcbiAgICAgIH06IGFueSk6IHZvaWQgPT4ge1xuICAgICAgICAvLyBDb21iaW5lcyB0aW1lc3RhbXAgd2l0aCByYW5kb20gbnVtYmVyIGZvciB1bmlxdWUgSURcbiAgICAgICAgY29uc3QgdW5pcXVlSUQ6IHN0cmluZyA9IGAke0RhdGUubm93KCl9LSR7XG4gICAgICAgICAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDllMTIgLSAxKSkgKyAxZTEyXG4gICAgICAgIH1gXG4gICAgICAgIGxldCBwZXJmU3RhcnRFbnRyeTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgICAgICAgaWYgKGVudHJpZXMgJiYgZW50cmllcy5sZW5ndGgpIHtcbiAgICAgICAgICBwZXJmU3RhcnRFbnRyeSA9IGVudHJpZXNbMF0uc3RhcnRUaW1lXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB3ZWJWaXRhbHM6IE5leHRXZWJWaXRhbHNNZXRyaWMgPSB7XG4gICAgICAgICAgaWQ6IGlkIHx8IHVuaXF1ZUlELFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgc3RhcnRUaW1lOiBzdGFydFRpbWUgfHwgcGVyZlN0YXJ0RW50cnksXG4gICAgICAgICAgdmFsdWU6IHZhbHVlID09IG51bGwgPyBkdXJhdGlvbiA6IHZhbHVlLFxuICAgICAgICAgIGxhYmVsOlxuICAgICAgICAgICAgZW50cnlUeXBlID09PSAnbWFyaycgfHwgZW50cnlUeXBlID09PSAnbWVhc3VyZSdcbiAgICAgICAgICAgICAgPyAnY3VzdG9tJ1xuICAgICAgICAgICAgICA6ICd3ZWItdml0YWwnLFxuICAgICAgICB9XG4gICAgICAgIGlmIChhdHRyaWJ1dGlvbikge1xuICAgICAgICAgIHdlYlZpdGFscy5hdHRyaWJ1dGlvbiA9IGF0dHJpYnV0aW9uXG4gICAgICAgIH1cbiAgICAgICAgbW9kLnJlcG9ydFdlYlZpdGFscyh3ZWJWaXRhbHMpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcGFnZUVudHJ5cG9pbnQgPVxuICAgICAgLy8gVGhlIGRldiBzZXJ2ZXIgZmFpbHMgdG8gc2VydmUgc2NyaXB0IGFzc2V0cyB3aGVuIHRoZXJlJ3MgYSBoeWRyYXRpb25cbiAgICAgIC8vIGVycm9yLCBzbyB3ZSBuZWVkIHRvIHNraXAgd2FpdGluZyBmb3IgdGhlIGVudHJ5cG9pbnQuXG4gICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiBpbml0aWFsRGF0YS5lcnJcbiAgICAgICAgPyB7IGVycm9yOiBpbml0aWFsRGF0YS5lcnIgfVxuICAgICAgICA6IGF3YWl0IHBhZ2VMb2FkZXIucm91dGVMb2FkZXIud2hlbkVudHJ5cG9pbnQoaW5pdGlhbERhdGEucGFnZSlcbiAgICBpZiAoJ2Vycm9yJyBpbiBwYWdlRW50cnlwb2ludCkge1xuICAgICAgdGhyb3cgcGFnZUVudHJ5cG9pbnQuZXJyb3JcbiAgICB9XG4gICAgQ2FjaGVkQ29tcG9uZW50ID0gcGFnZUVudHJ5cG9pbnQuY29tcG9uZW50XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc3QgeyBpc1ZhbGlkRWxlbWVudFR5cGUgfSA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1pcycpXG4gICAgICBpZiAoIWlzVmFsaWRFbGVtZW50VHlwZShDYWNoZWRDb21wb25lbnQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGhlIGRlZmF1bHQgZXhwb3J0IGlzIG5vdCBhIFJlYWN0IENvbXBvbmVudCBpbiBwYWdlOiBcIiR7aW5pdGlhbERhdGEucGFnZX1cImBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyBUaGlzIGNhdGNoZXMgZXJyb3JzIGxpa2UgdGhyb3dpbmcgaW4gdGhlIHRvcCBsZXZlbCBvZiBhIG1vZHVsZVxuICAgIGluaXRpYWxFcnIgPSBnZXRQcm9wZXJFcnJvcihlcnJvcilcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGNvbnN0IGdldFNlcnZlckVycm9yOiB0eXBlb2YgaW1wb3J0KCcuL2NvbXBvbmVudHMvcmVhY3QtZGV2LW92ZXJsYXkvcGFnZXMvY2xpZW50JykuZ2V0U2VydmVyRXJyb3IgPVxuICAgICAgcmVxdWlyZSgnLi9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL2NsaWVudCcpLmdldFNlcnZlckVycm9yXG4gICAgLy8gU2VydmVyLXNpZGUgcnVudGltZSBlcnJvcnMgbmVlZCB0byBiZSByZS10aHJvd24gb24gdGhlIGNsaWVudC1zaWRlIHNvXG4gICAgLy8gdGhhdCB0aGUgb3ZlcmxheSBpcyByZW5kZXJlZC5cbiAgICBpZiAoaW5pdGlhbEVycikge1xuICAgICAgaWYgKGluaXRpYWxFcnIgPT09IGluaXRpYWxEYXRhLmVycikge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBsZXQgZXJyb3JcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gR2VuZXJhdGUgYSBuZXcgZXJyb3Igb2JqZWN0LiBXZSBgdGhyb3dgIGl0IGJlY2F1c2Ugc29tZSBicm93c2Vyc1xuICAgICAgICAgICAgLy8gd2lsbCBzZXQgdGhlIGBzdGFja2Agd2hlbiB0aHJvd24sIGFuZCB3ZSB3YW50IHRvIGVuc3VyZSBvdXJzIGlzXG4gICAgICAgICAgICAvLyBub3Qgb3ZlcnJpZGRlbiB3aGVuIHdlIHJlLXRocm93IGl0IGJlbG93LlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGluaXRpYWxFcnIhLm1lc3NhZ2UpXG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgZXJyb3IgPSBlIGFzIEVycm9yXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXJyb3IubmFtZSA9IGluaXRpYWxFcnIhLm5hbWVcbiAgICAgICAgICBlcnJvci5zdGFjayA9IGluaXRpYWxFcnIhLnN0YWNrXG4gICAgICAgICAgY29uc3QgZXJyU291cmNlID0gaW5pdGlhbEVyci5zb3VyY2UhXG5cbiAgICAgICAgICAvLyBJbiBkZXZlbG9wbWVudCwgZXJyb3IgdGhlIG5hdmlnYXRpb24gQVBJIHVzYWdlIGluIHJ1bnRpbWUsXG4gICAgICAgICAgLy8gc2luY2UgaXQncyBub3QgYWxsb3dlZCB0byBiZSB1c2VkIGluIHBhZ2VzIHJvdXRlciBhcyBpdCBkb2Vzbid0IGNvbnRhaW4gZXJyb3IgYm91bmRhcnkgbGlrZSBhcHAgcm91dGVyLlxuICAgICAgICAgIGlmIChpc05leHRSb3V0ZXJFcnJvcihpbml0aWFsRXJyKSkge1xuICAgICAgICAgICAgZXJyb3IubWVzc2FnZSA9XG4gICAgICAgICAgICAgICdOZXh0LmpzIG5hdmlnYXRpb24gQVBJIGlzIG5vdCBhbGxvd2VkIHRvIGJlIHVzZWQgaW4gUGFnZXMgUm91dGVyLidcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aHJvdyBnZXRTZXJ2ZXJFcnJvcihlcnJvciwgZXJyU291cmNlKVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgLy8gV2UgcmVwbGFjZWQgdGhlIHNlcnZlci1zaWRlIGVycm9yIHdpdGggYSBjbGllbnQtc2lkZSBlcnJvciwgYW5kIHNob3VsZFxuICAgICAgLy8gbm8gbG9uZ2VyIHJld3JpdGUgdGhlIHN0YWNrIHRyYWNlIHRvIGEgTm9kZSBlcnJvci5cbiAgICAgIGVsc2Uge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aHJvdyBpbml0aWFsRXJyXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHdpbmRvdy5fX05FWFRfUFJFTE9BRFJFQURZKSB7XG4gICAgYXdhaXQgd2luZG93Ll9fTkVYVF9QUkVMT0FEUkVBRFkoaW5pdGlhbERhdGEuZHluYW1pY0lkcylcbiAgfVxuXG4gIHJvdXRlciA9IGNyZWF0ZVJvdXRlcihpbml0aWFsRGF0YS5wYWdlLCBpbml0aWFsRGF0YS5xdWVyeSwgYXNQYXRoLCB7XG4gICAgaW5pdGlhbFByb3BzOiBpbml0aWFsRGF0YS5wcm9wcyxcbiAgICBwYWdlTG9hZGVyLFxuICAgIEFwcDogQ2FjaGVkQXBwLFxuICAgIENvbXBvbmVudDogQ2FjaGVkQ29tcG9uZW50LFxuICAgIHdyYXBBcHAsXG4gICAgZXJyOiBpbml0aWFsRXJyLFxuICAgIGlzRmFsbGJhY2s6IEJvb2xlYW4oaW5pdGlhbERhdGEuaXNGYWxsYmFjayksXG4gICAgc3Vic2NyaXB0aW9uOiAoaW5mbywgQXBwLCBzY3JvbGwpID0+XG4gICAgICByZW5kZXIoXG4gICAgICAgIE9iamVjdC5hc3NpZ248XG4gICAgICAgICAge30sXG4gICAgICAgICAgT21pdDxSZW5kZXJSb3V0ZUluZm8sICdBcHAnIHwgJ3Njcm9sbCc+LFxuICAgICAgICAgIFBpY2s8UmVuZGVyUm91dGVJbmZvLCAnQXBwJyB8ICdzY3JvbGwnPlxuICAgICAgICA+KHt9LCBpbmZvLCB7XG4gICAgICAgICAgQXBwLFxuICAgICAgICAgIHNjcm9sbCxcbiAgICAgICAgfSkgYXMgUmVuZGVyUm91dGVJbmZvXG4gICAgICApLFxuICAgIGxvY2FsZTogaW5pdGlhbERhdGEubG9jYWxlLFxuICAgIGxvY2FsZXM6IGluaXRpYWxEYXRhLmxvY2FsZXMsXG4gICAgZGVmYXVsdExvY2FsZSxcbiAgICBkb21haW5Mb2NhbGVzOiBpbml0aWFsRGF0YS5kb21haW5Mb2NhbGVzLFxuICAgIGlzUHJldmlldzogaW5pdGlhbERhdGEuaXNQcmV2aWV3LFxuICB9KVxuXG4gIGluaXRpYWxNYXRjaGVzTWlkZGxld2FyZSA9IGF3YWl0IHJvdXRlci5faW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlUHJvbWlzZVxuXG4gIGNvbnN0IHJlbmRlckN0eDogUmVuZGVyUm91dGVJbmZvID0ge1xuICAgIEFwcDogQ2FjaGVkQXBwLFxuICAgIGluaXRpYWw6IHRydWUsXG4gICAgQ29tcG9uZW50OiBDYWNoZWRDb21wb25lbnQsXG4gICAgcHJvcHM6IGluaXRpYWxEYXRhLnByb3BzLFxuICAgIGVycjogaW5pdGlhbEVycixcbiAgICBpc0h5ZHJhdGVQYXNzOiB0cnVlLFxuICB9XG5cbiAgaWYgKG9wdHM/LmJlZm9yZVJlbmRlcikge1xuICAgIGF3YWl0IG9wdHMuYmVmb3JlUmVuZGVyKClcbiAgfVxuXG4gIHJlbmRlcihyZW5kZXJDdHgpXG59XG4iXSwibmFtZXMiOlsiZW1pdHRlciIsImh5ZHJhdGUiLCJpbml0aWFsaXplIiwicm91dGVyIiwidmVyc2lvbiIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfVkVSU0lPTiIsIm1pdHQiLCJsb29zZVRvQXJyYXkiLCJpbnB1dCIsInNsaWNlIiwiY2FsbCIsImluaXRpYWxEYXRhIiwiZGVmYXVsdExvY2FsZSIsInVuZGVmaW5lZCIsImFzUGF0aCIsInBhZ2VMb2FkZXIiLCJhcHBFbGVtZW50IiwiaGVhZE1hbmFnZXIiLCJpbml0aWFsTWF0Y2hlc01pZGRsZXdhcmUiLCJsYXN0QXBwUHJvcHMiLCJsYXN0UmVuZGVyUmVqZWN0IiwiZGV2Q2xpZW50IiwiQ2FjaGVkQXBwIiwib25QZXJmRW50cnkiLCJDYWNoZWRDb21wb25lbnQiLCJDb250YWluZXIiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbXBvbmVudERpZENhdGNoIiwiY29tcG9uZW50RXJyIiwiaW5mbyIsInByb3BzIiwiZm4iLCJjb21wb25lbnREaWRNb3VudCIsInNjcm9sbFRvSGFzaCIsImlzU3NyIiwiaXNGYWxsYmFjayIsIm5leHRFeHBvcnQiLCJpc0R5bmFtaWNSb3V0ZSIsInBhdGhuYW1lIiwibG9jYXRpb24iLCJzZWFyY2giLCJfX05FWFRfSEFTX1JFV1JJVEVTIiwiX19OX1NTRyIsInJlcGxhY2UiLCJTdHJpbmciLCJhc3NpZ24iLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwicXVlcnkiLCJVUkxTZWFyY2hQYXJhbXMiLCJfaCIsInNoYWxsb3ciLCJjYXRjaCIsImVyciIsImNhbmNlbGxlZCIsImNvbXBvbmVudERpZFVwZGF0ZSIsImhhc2giLCJzdWJzdHJpbmciLCJlbCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJzZXRUaW1lb3V0Iiwic2Nyb2xsSW50b1ZpZXciLCJyZW5kZXIiLCJOT0RFX0VOViIsImNoaWxkcmVuIiwiUmVhY3REZXZPdmVybGF5IiwicmVxdWlyZSIsIm9wdHMiLCJ0cmFjZXIiLCJvblNwYW5FbmQiLCJyZXBvcnRUb1NvY2tldCIsIkpTT04iLCJwYXJzZSIsInRleHRDb250ZW50Iiwid2luZG93IiwiX19ORVhUX0RBVEFfXyIsInByZWZpeCIsImFzc2V0UHJlZml4Iiwic2VsZiIsIl9fbmV4dF9zZXRfcHVibGljX3BhdGhfXyIsInNldENvbmZpZyIsInNlcnZlclJ1bnRpbWVDb25maWciLCJwdWJsaWNSdW50aW1lQ29uZmlnIiwicnVudGltZUNvbmZpZyIsImdldFVSTCIsImhhc0Jhc2VQYXRoIiwicmVtb3ZlQmFzZVBhdGgiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibm9ybWFsaXplTG9jYWxlUGF0aCIsImRldGVjdERvbWFpbkxvY2FsZSIsInBhcnNlUmVsYXRpdmVVcmwiLCJmb3JtYXRVcmwiLCJsb2NhbGVzIiwicGFyc2VkQXMiLCJsb2NhbGVQYXRoUmVzdWx0IiwiZGV0ZWN0ZWRMb2NhbGUiLCJsb2NhbGUiLCJkZXRlY3RlZERvbWFpbiIsIl9fTkVYVF9JMThOX0RPTUFJTlMiLCJob3N0bmFtZSIsInNjcmlwdExvYWRlciIsImluaXRTY3JpcHRMb2FkZXIiLCJQYWdlTG9hZGVyIiwiYnVpbGRJZCIsInJlZ2lzdGVyIiwiciIsImYiLCJyb3V0ZUxvYWRlciIsIm9uRW50cnlwb2ludCIsIl9fTkVYVF9QIiwibWFwIiwicCIsInB1c2giLCJpbml0SGVhZE1hbmFnZXIiLCJnZXRJc1NzciIsInJlbmRlckFwcCIsIkFwcCIsImFwcFByb3BzIiwiQXBwQ29udGFpbmVyIiwiYWRhcHRlZEZvckFwcFJvdXRlciIsInVzZU1lbW8iLCJhZGFwdEZvckFwcFJvdXRlckluc3RhbmNlIiwiZXJyb3IiLCJyZW5kZXJFcnJvciIsImNvbnNvbGUiLCJBcHBSb3V0ZXJDb250ZXh0IiwiUHJvdmlkZXIiLCJ2YWx1ZSIsIlNlYXJjaFBhcmFtc0NvbnRleHQiLCJhZGFwdEZvclNlYXJjaFBhcmFtcyIsIlBhdGhuYW1lQ29udGV4dFByb3ZpZGVyQWRhcHRlciIsImlzQXV0b0V4cG9ydCIsImF1dG9FeHBvcnQiLCJQYXRoUGFyYW1zQ29udGV4dCIsImFkYXB0Rm9yUGF0aFBhcmFtcyIsIlJvdXRlckNvbnRleHQiLCJtYWtlUHVibGljUm91dGVySW5zdGFuY2UiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJJbWFnZUNvbmZpZ0NvbnRleHQiLCJfX05FWFRfSU1BR0VfT1BUUyIsIndyYXBBcHAiLCJ3cmFwcGVkQXBwUHJvcHMiLCJyZW5kZXJFcnJvclByb3BzIiwib25VbnJlY292ZXJhYmxlRXJyb3IiLCJkb1JlbmRlciIsInN0eWxlU2hlZXRzIiwibG9hZFBhZ2UiLCJ0aGVuIiwicGFnZSIsIkVycm9yQ29tcG9uZW50IiwiZXJyb3JNb2R1bGUiLCJhcHBNb2R1bGUiLCJkZWZhdWx0IiwibSIsIkFwcFRyZWUiLCJhcHBDdHgiLCJjdHgiLCJQcm9taXNlIiwicmVzb2x2ZSIsImxvYWRHZXRJbml0aWFsUHJvcHMiLCJpbml0UHJvcHMiLCJIZWFkIiwiY2FsbGJhY2siLCJ1c2VMYXlvdXRFZmZlY3QiLCJwZXJmb3JtYW5jZU1hcmtzIiwibmF2aWdhdGlvblN0YXJ0IiwiYmVmb3JlUmVuZGVyIiwiYWZ0ZXJSZW5kZXIiLCJhZnRlckh5ZHJhdGUiLCJyb3V0ZUNoYW5nZSIsInBlcmZvcm1hbmNlTWVhc3VyZXMiLCJoeWRyYXRpb24iLCJiZWZvcmVIeWRyYXRpb24iLCJyb3V0ZUNoYW5nZVRvUmVuZGVyIiwicmVhY3RSb290Iiwic2hvdWxkSHlkcmF0ZSIsImNsZWFyTWFya3MiLCJmb3JFYWNoIiwibWFyayIsInBlcmZvcm1hbmNlIiwibWFya0h5ZHJhdGVDb21wbGV0ZSIsIlNUIiwiaGFzQmVmb3JlUmVuZGVyTWFyayIsImdldEVudHJpZXNCeU5hbWUiLCJsZW5ndGgiLCJiZWZvcmVIeWRyYXRpb25NZWFzdXJlIiwibWVhc3VyZSIsImh5ZHJhdGlvbk1lYXN1cmUiLCJzdGFydFNwYW4iLCJzdGFydFRpbWUiLCJ0aW1lT3JpZ2luIiwiYXR0cmlidXRlcyIsImVuZCIsImR1cmF0aW9uIiwibWFya1JlbmRlckNvbXBsZXRlIiwibmF2U3RhcnRFbnRyaWVzIiwibmFtZSIsImNsZWFyTWVhc3VyZXMiLCJyZW5kZXJSZWFjdEVsZW1lbnQiLCJkb21FbCIsInJlYWN0RWwiLCJSZWFjdERPTSIsImh5ZHJhdGVSb290Iiwib25SZWNvdmVyYWJsZUVycm9yIiwic3RhcnRUcmFuc2l0aW9uIiwiUm9vdCIsImNhbGxiYWNrcyIsIl9fTkVYVF9URVNUX01PREUiLCJ1c2VFZmZlY3QiLCJfX05FWFRfSFlEUkFURUQiLCJfX05FWFRfSFlEUkFURURfQ0IiLCJjYW5jZWxlZCIsInJlc29sdmVQcm9taXNlIiwicmVuZGVyUHJvbWlzZSIsInJlamVjdCIsIkVycm9yIiwib25TdGFydCIsImN1cnJlbnRTdHlsZVRhZ3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwiY3VycmVudEhyZWZzIiwiU2V0IiwidGFnIiwiZ2V0QXR0cmlidXRlIiwibm9zY3JpcHQiLCJxdWVyeVNlbGVjdG9yIiwibm9uY2UiLCJocmVmIiwidGV4dCIsImhhcyIsInN0eWxlVGFnIiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsImhlYWQiLCJhcHBlbmRDaGlsZCIsImNyZWF0ZVRleHROb2RlIiwib25IZWFkQ29tbWl0IiwiVFVSQk9QQUNLIiwiZGVzaXJlZEhyZWZzIiwicyIsImlkeCIsInJlbW92ZUF0dHJpYnV0ZSIsInJlZmVyZW5jZU5vZGUiLCJ0YXJnZXRUYWciLCJwYXJlbnROb2RlIiwiaW5zZXJ0QmVmb3JlIiwibmV4dFNpYmxpbmciLCJyZW1vdmVDaGlsZCIsInNjcm9sbCIsIngiLCJ5IiwiaGFuZGxlU21vb3RoU2Nyb2xsIiwic2Nyb2xsVG8iLCJvblJvb3RDb21taXQiLCJlbGVtIiwiUG9ydGFsIiwidHlwZSIsIlJvdXRlQW5ub3VuY2VyIiwiX19ORVhUX1NUUklDVF9NT0RFIiwiU3RyaWN0TW9kZSIsInJlbmRlcmluZ1Byb3BzIiwiaXNIeWRyYXRlUGFzcyIsInJlbmRlckVyciIsImdldFByb3BlckVycm9yIiwiaW5pdGlhbEVyciIsImFwcEVudHJ5cG9pbnQiLCJ3aGVuRW50cnlwb2ludCIsImNvbXBvbmVudCIsImFwcCIsImV4cG9ydHMiLCJtb2QiLCJyZXBvcnRXZWJWaXRhbHMiLCJpZCIsImVudHJ5VHlwZSIsImVudHJpZXMiLCJhdHRyaWJ1dGlvbiIsInVuaXF1ZUlEIiwiRGF0ZSIsIm5vdyIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsInBlcmZTdGFydEVudHJ5Iiwid2ViVml0YWxzIiwibGFiZWwiLCJwYWdlRW50cnlwb2ludCIsImlzVmFsaWRFbGVtZW50VHlwZSIsImdldFNlcnZlckVycm9yIiwibWVzc2FnZSIsImUiLCJzdGFjayIsImVyclNvdXJjZSIsInNvdXJjZSIsImlzTmV4dFJvdXRlckVycm9yIiwiX19ORVhUX1BSRUxPQURSRUFEWSIsImR5bmFtaWNJZHMiLCJjcmVhdGVSb3V0ZXIiLCJpbml0aWFsUHJvcHMiLCJCb29sZWFuIiwic3Vic2NyaXB0aW9uIiwiT2JqZWN0IiwiZG9tYWluTG9jYWxlcyIsImlzUHJldmlldyIsIl9pbml0aWFsTWF0Y2hlc01pZGRsZXdhcmVQcm9taXNlIiwicmVuZGVyQ3R4IiwiaW5pdGlhbCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/next-dev.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/client/next-dev.js ***! + \***************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// TODO: Remove use of `any` type.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\n__webpack_require__(/*! ./webpack */ \"./node_modules/next/dist/client/webpack.js\");\nconst _ = __webpack_require__(/*! ./ */ \"./node_modules/next/dist/client/index.js\");\nconst _hotmiddlewareclient = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./dev/hot-middleware-client */ \"./node_modules/next/dist/client/dev/hot-middleware-client.js\"));\nconst _pagebootstrap = __webpack_require__(/*! ./page-bootstrap */ \"./node_modules/next/dist/client/page-bootstrap.js\");\nwindow.next = {\n version: _.version,\n // router is initialized later so it has to be live-binded\n get router () {\n return _.router;\n },\n emitter: _.emitter\n};\nconst devClient = (0, _hotmiddlewareclient.default)('webpack');\n(0, _.initialize)({\n devClient\n}).then((param)=>{\n let { assetPrefix } = param;\n return (0, _pagebootstrap.pageBootstrap)(assetPrefix);\n}).catch((err)=>{\n console.error('Error was not caught', err);\n});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=next-dev.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9uZXh0LWRldi5qcyIsIm1hcHBpbmdzIjoiQUFBQSxrQ0FBa0M7Ozs7OztvQkFDM0I7OEJBQzhDOzBGQUNqQzsyQ0FDVTtBQUU5QkEsT0FBT0MsSUFBSSxHQUFHO0lBQ1pDLFNBQUFBLEVBQUFBLE9BQU87SUFDUCwwREFBMEQ7SUFDMUQsSUFBSUMsVUFBUztRQUNYLE9BQU9BLEVBQUFBLE1BQU07SUFDZjtJQUNBQyxTQUFBQSxFQUFBQSxPQUFPO0FBQ1Q7QUFFQSxNQUFNQyxZQUFZQyxDQUFBQSxHQUFBQSxxQkFBQUEsT0FBQUEsRUFBUTtBQUMxQkMsQ0FBQUEsR0FBQUEsRUFBQUEsVUFBQUEsRUFBVztJQUFFRjtBQUFVLEdBQ3BCRyxJQUFJLENBQUM7UUFBQyxFQUFFQyxXQUFXLEVBQUU7SUFDcEIsT0FBT0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY0Q7QUFDdkIsR0FDQ0UsS0FBSyxDQUFDLENBQUNDO0lBQ05DLFFBQVFDLEtBQUssQ0FBQyx3QkFBd0JGO0FBQ3hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvY2xpZW50L25leHQtZGV2LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRPRE86IFJlbW92ZSB1c2Ugb2YgYGFueWAgdHlwZS5cbmltcG9ydCAnLi93ZWJwYWNrJ1xuaW1wb3J0IHsgaW5pdGlhbGl6ZSwgdmVyc2lvbiwgcm91dGVyLCBlbWl0dGVyIH0gZnJvbSAnLi8nXG5pbXBvcnQgaW5pdEhNUiBmcm9tICcuL2Rldi9ob3QtbWlkZGxld2FyZS1jbGllbnQnXG5pbXBvcnQgeyBwYWdlQm9vdHN0cmFwIH0gZnJvbSAnLi9wYWdlLWJvb3RzdHJhcCdcblxud2luZG93Lm5leHQgPSB7XG4gIHZlcnNpb24sXG4gIC8vIHJvdXRlciBpcyBpbml0aWFsaXplZCBsYXRlciBzbyBpdCBoYXMgdG8gYmUgbGl2ZS1iaW5kZWRcbiAgZ2V0IHJvdXRlcigpIHtcbiAgICByZXR1cm4gcm91dGVyXG4gIH0sXG4gIGVtaXR0ZXIsXG59XG5cbmNvbnN0IGRldkNsaWVudCA9IGluaXRITVIoJ3dlYnBhY2snKVxuaW5pdGlhbGl6ZSh7IGRldkNsaWVudCB9KVxuICAudGhlbigoeyBhc3NldFByZWZpeCB9KSA9PiB7XG4gICAgcmV0dXJuIHBhZ2VCb290c3RyYXAoYXNzZXRQcmVmaXgpXG4gIH0pXG4gIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3Igd2FzIG5vdCBjYXVnaHQnLCBlcnIpXG4gIH0pXG4iXSwibmFtZXMiOlsid2luZG93IiwibmV4dCIsInZlcnNpb24iLCJyb3V0ZXIiLCJlbWl0dGVyIiwiZGV2Q2xpZW50IiwiaW5pdEhNUiIsImluaXRpYWxpemUiLCJ0aGVuIiwiYXNzZXRQcmVmaXgiLCJwYWdlQm9vdHN0cmFwIiwiY2F0Y2giLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/next-dev.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/normalize-trailing-slash.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/client/normalize-trailing-slash.js ***! + \*******************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return normalizePathTrailingSlash;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _parsepath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nconst normalizePathTrailingSlash = (path)=>{\n if (!path.startsWith('/') || undefined) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n if (false) {}\n return \"\" + (0, _removetrailingslash.removeTrailingSlash)(pathname) + query + hash;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=normalize-trailing-slash.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9ub3JtYWxpemUtdHJhaWxpbmctc2xhc2guanMiLCJtYXBwaW5ncyI6Ijs7Ozs4REFPYUE7OztlQUFBQTs7O2lEQVB1Qjt1Q0FDVjtBQU1uQixNQUFNQSw2QkFBNkIsQ0FBQ0M7SUFDekMsSUFBSSxDQUFDQSxLQUFLQyxVQUFVLENBQUMsUUFBUUMsU0FBd0MsRUFBRTtRQUNyRSxPQUFPRjtJQUNUO0lBRUEsTUFBTSxFQUFFSyxRQUFRLEVBQUVDLEtBQUssRUFBRUMsSUFBSSxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVSO0lBQzVDLElBQUlFLEtBQWlDLEVBQUUsRUFRdEM7SUFFRCxPQUFRLEtBQUVTLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JOLFlBQVlDLFFBQVFDO0FBQ3BEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvY2xpZW50L25vcm1hbGl6ZS10cmFpbGluZy1zbGFzaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcmVtb3ZlLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aCdcblxuLyoqXG4gKiBOb3JtYWxpemVzIHRoZSB0cmFpbGluZyBzbGFzaCBvZiBhIHBhdGggYWNjb3JkaW5nIHRvIHRoZSBgdHJhaWxpbmdTbGFzaGAgb3B0aW9uXG4gKiBpbiBgbmV4dC5jb25maWcuanNgLlxuICovXG5leHBvcnQgY29uc3Qgbm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2ggPSAocGF0aDogc3RyaW5nKSA9PiB7XG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykgfHwgcHJvY2Vzcy5lbnYuX19ORVhUX01BTlVBTF9UUkFJTElOR19TTEFTSCkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIGlmIChwcm9jZXNzLmVudi5fX05FWFRfVFJBSUxJTkdfU0xBU0gpIHtcbiAgICBpZiAoL1xcLlteL10rXFwvPyQvLnRlc3QocGF0aG5hbWUpKSB7XG4gICAgICByZXR1cm4gYCR7cmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSl9JHtxdWVyeX0ke2hhc2h9YFxuICAgIH0gZWxzZSBpZiAocGF0aG5hbWUuZW5kc1dpdGgoJy8nKSkge1xuICAgICAgcmV0dXJuIGAke3BhdGhuYW1lfSR7cXVlcnl9JHtoYXNofWBcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGAke3BhdGhuYW1lfS8ke3F1ZXJ5fSR7aGFzaH1gXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGAke3JlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpfSR7cXVlcnl9JHtoYXNofWBcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCIsInBhdGgiLCJzdGFydHNXaXRoIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9NQU5VQUxfVFJBSUxJTkdfU0xBU0giLCJwYXRobmFtZSIsInF1ZXJ5IiwiaGFzaCIsInBhcnNlUGF0aCIsIl9fTkVYVF9UUkFJTElOR19TTEFTSCIsInRlc3QiLCJyZW1vdmVUcmFpbGluZ1NsYXNoIiwiZW5kc1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/normalize-trailing-slash.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/page-bootstrap.js": +/*!*********************************************************!*\ + !*** ./node_modules/next/dist/client/page-bootstrap.js ***! + \*********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pageBootstrap\", ({\n enumerable: true,\n get: function() {\n return pageBootstrap;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _ = __webpack_require__(/*! ./ */ \"./node_modules/next/dist/client/index.js\");\nconst _ondemandentriesclient = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./dev/on-demand-entries-client */ \"./node_modules/next/dist/client/dev/on-demand-entries-client.js\"));\nconst _devbuildwatcher = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./dev/dev-build-watcher */ \"./node_modules/next/dist/client/dev/dev-build-watcher.js\"));\nconst _fouc = __webpack_require__(/*! ./dev/fouc */ \"./node_modules/next/dist/client/dev/fouc.js\");\nconst _websocket = __webpack_require__(/*! ./components/react-dev-overlay/pages/websocket */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/websocket.js\");\nconst _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _hotreloadertypes = __webpack_require__(/*! ../server/dev/hot-reloader-types */ \"./node_modules/next/dist/server/dev/hot-reloader-types.js\");\nconst _runtimeerrorhandler = __webpack_require__(/*! ./components/react-dev-overlay/internal/helpers/runtime-error-handler */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/runtime-error-handler.js\");\nconst _shared = __webpack_require__(/*! ./components/react-dev-overlay/shared */ \"./node_modules/next/dist/client/components/react-dev-overlay/shared.js\");\nconst _hotreloaderclient = __webpack_require__(/*! ./components/react-dev-overlay/pages/hot-reloader-client */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/hot-reloader-client.js\");\nfunction pageBootstrap(assetPrefix) {\n (0, _websocket.connectHMR)({\n assetPrefix,\n path: '/_next/webpack-hmr'\n });\n return (0, _.hydrate)({\n beforeRender: _fouc.displayContent\n }).then(()=>{\n (0, _ondemandentriesclient.default)();\n let buildIndicatorHandler;\n if (true) {\n (0, _devbuildwatcher.default)((handler)=>{\n buildIndicatorHandler = handler;\n }, \"bottom-right\");\n }\n let reloading = false;\n (0, _websocket.addMessageListener)((payload)=>{\n if (reloading) return;\n if ('action' in payload) {\n switch(payload.action){\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ERROR:\n {\n const { stack, message } = JSON.parse(payload.errorJSON);\n const error = new Error(message);\n error.stack = stack;\n throw error;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.RELOAD_PAGE:\n {\n reloading = true;\n window.location.reload();\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE:\n {\n fetch(\"\" + assetPrefix + \"/_next/static/development/_devPagesManifest.json\").then((res)=>res.json()).then((manifest)=>{\n window.__DEV_PAGES_MANIFEST = manifest;\n }).catch((err)=>{\n console.log(\"Failed to fetch devPagesManifest\", err);\n });\n break;\n }\n default:\n break;\n }\n } else if ('event' in payload) {\n switch(payload.event){\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.MIDDLEWARE_CHANGES:\n {\n return window.location.reload();\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.CLIENT_CHANGES:\n {\n // This is used in `../server/dev/turbopack-utils.ts`.\n const isOnErrorPage = window.next.router.pathname === '/_error';\n // On the error page we want to reload the page when a page was changed\n if (isOnErrorPage) {\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n }\n reloading = true;\n (0, _hotreloaderclient.performFullReload)(null);\n }\n break;\n }\n case _hotreloadertypes.HMR_ACTIONS_SENT_TO_BROWSER.SERVER_ONLY_CHANGES:\n {\n if (_runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError) {\n console.warn(_shared.REACT_REFRESH_FULL_RELOAD_FROM_ERROR);\n (0, _hotreloaderclient.performFullReload)(null);\n }\n const { pages } = payload;\n // Make sure to reload when the dev-overlay is showing for an\n // API route\n // TODO: Fix `__NEXT_PAGE` type\n if (pages.includes(_.router.query.__NEXT_PAGE)) {\n return window.location.reload();\n }\n if (!_.router.clc && pages.includes(_.router.pathname)) {\n console.log('Refreshing page data due to server-side change');\n buildIndicatorHandler == null ? void 0 : buildIndicatorHandler.show();\n const clearIndicator = ()=>buildIndicatorHandler == null ? void 0 : buildIndicatorHandler.hide();\n _.router.replace(_.router.pathname + '?' + String((0, _querystring.assign)((0, _querystring.urlQueryToSearchParams)(_.router.query), new URLSearchParams(location.search))), _.router.asPath, {\n scroll: false\n }).catch(()=>{\n // trigger hard reload when failing to refresh data\n // to show error overlay properly\n location.reload();\n }).finally(clearIndicator);\n }\n break;\n }\n default:\n break;\n }\n }\n });\n });\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=page-bootstrap.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wYWdlLWJvb3RzdHJhcC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQWtCZ0JBOzs7ZUFBQUE7Ozs7OEJBbEJnQjs0RkFDQTtzRkFDRztrQ0FFSjt1Q0FJeEI7eUNBSUE7OENBQ3FDO2lEQUNSO29DQUNpQjsrQ0FDbkI7QUFFM0IsU0FBU0EsY0FBY0MsV0FBbUI7SUFDL0NDLENBQUFBLEdBQUFBLFdBQUFBLFVBQUFBLEVBQVc7UUFBRUQ7UUFBYUUsTUFBTTtJQUFxQjtJQUVyRCxPQUFPQyxDQUFBQSxHQUFBQSxFQUFBQSxPQUFBQSxFQUFRO1FBQUVDLGNBQWNDLE1BQUFBLGNBQWM7SUFBQyxHQUFHQyxJQUFJLENBQUM7UUFDcERDLENBQUFBLEdBQUFBLHVCQUFBQSxPQUFBQTtRQUVBLElBQUlDO1FBRUosSUFBSUMsSUFBa0MsRUFBRTtZQUN0Q0csQ0FBQUEsR0FBQUEsaUJBQUFBLE9BQUFBLEVBQXVCLENBQUNDO2dCQUN0Qkwsd0JBQXdCSztZQUMxQixHQUFHSixjQUEyQztRQUNoRDtRQUVBLElBQUlNLFlBQVk7UUFFaEJDLENBQUFBLEdBQUFBLFdBQUFBLGtCQUFBQSxFQUFtQixDQUFDQztZQUNsQixJQUFJRixXQUFXO1lBQ2YsSUFBSSxZQUFZRSxTQUFTO2dCQUN2QixPQUFRQSxRQUFRQyxNQUFNO29CQUNwQixLQUFLQyxrQkFBQUEsMkJBQTJCLENBQUNDLFlBQVk7d0JBQUU7NEJBQzdDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxPQUFPLEVBQUUsR0FBR0MsS0FBS0MsS0FBSyxDQUFDUCxRQUFRUSxTQUFTOzRCQUN2RCxNQUFNQyxRQUFRLElBQUlDLE1BQU1MOzRCQUN4QkksTUFBTUwsS0FBSyxHQUFHQTs0QkFDZCxNQUFNSzt3QkFDUjtvQkFDQSxLQUFLUCxrQkFBQUEsMkJBQTJCLENBQUNTLFdBQVc7d0JBQUU7NEJBQzVDYixZQUFZOzRCQUNaYyxPQUFPQyxRQUFRLENBQUNDLE1BQU07NEJBQ3RCO3dCQUNGO29CQUNBLEtBQUtaLGtCQUFBQSwyQkFBMkIsQ0FBQ2EseUJBQXlCO3dCQUFFOzRCQUMxREMsTUFDRyxLQUFFakMsY0FBWSxvREFFZE0sSUFBSSxDQUFDLENBQUM0QixNQUFRQSxJQUFJQyxJQUFJLElBQ3RCN0IsSUFBSSxDQUFDLENBQUM4QjtnQ0FDTFAsT0FBT1Esb0JBQW9CLEdBQUdEOzRCQUNoQyxHQUNDRSxLQUFLLENBQUMsQ0FBQ0M7Z0NBQ05DLFFBQVFDLEdBQUcsQ0FBRSxvQ0FBbUNGOzRCQUNsRDs0QkFDRjt3QkFDRjtvQkFDQTt3QkFDRTtnQkFDSjtZQUNGLE9BQU8sSUFBSSxXQUFXdEIsU0FBUztnQkFDN0IsT0FBUUEsUUFBUXlCLEtBQUs7b0JBQ25CLEtBQUt2QixrQkFBQUEsMkJBQTJCLENBQUN3QixrQkFBa0I7d0JBQUU7NEJBQ25ELE9BQU9kLE9BQU9DLFFBQVEsQ0FBQ0MsTUFBTTt3QkFDL0I7b0JBQ0EsS0FBS1osa0JBQUFBLDJCQUEyQixDQUFDeUIsY0FBYzt3QkFBRTs0QkFDL0Msc0RBQXNEOzRCQUN0RCxNQUFNQyxnQkFBZ0JoQixPQUFPaUIsSUFBSSxDQUFDQyxNQUFNLENBQUNDLFFBQVEsS0FBSzs0QkFDdEQsdUVBQXVFOzRCQUN2RSxJQUFJSCxlQUFlO2dDQUNqQixJQUFJSSxxQkFBQUEsbUJBQW1CLENBQUNDLGVBQWUsRUFBRTtvQ0FDdkNWLFFBQVFXLElBQUksQ0FBQ0MsUUFBQUEsb0NBQW9DO2dDQUNuRDtnQ0FDQXJDLFlBQVk7Z0NBQ1pzQyxDQUFBQSxHQUFBQSxtQkFBQUEsaUJBQUFBLEVBQWtCOzRCQUNwQjs0QkFDQTt3QkFDRjtvQkFDQSxLQUFLbEMsa0JBQUFBLDJCQUEyQixDQUFDbUMsbUJBQW1CO3dCQUFFOzRCQUNwRCxJQUFJTCxxQkFBQUEsbUJBQW1CLENBQUNDLGVBQWUsRUFBRTtnQ0FDdkNWLFFBQVFXLElBQUksQ0FBQ0MsUUFBQUEsb0NBQW9DO2dDQUNqREMsQ0FBQUEsR0FBQUEsbUJBQUFBLGlCQUFBQSxFQUFrQjs0QkFDcEI7NEJBRUEsTUFBTSxFQUFFRSxLQUFLLEVBQUUsR0FBR3RDOzRCQUVsQiw2REFBNkQ7NEJBQzdELFlBQVk7NEJBQ1osK0JBQStCOzRCQUMvQixJQUFJc0MsTUFBTUMsUUFBUSxDQUFDVCxFQUFBQSxNQUFNLENBQUNVLEtBQUssQ0FBQ0MsV0FBVyxHQUFhO2dDQUN0RCxPQUFPN0IsT0FBT0MsUUFBUSxDQUFDQyxNQUFNOzRCQUMvQjs0QkFFQSxJQUFJLENBQUNnQixFQUFBQSxNQUFNLENBQUNZLEdBQUcsSUFBSUosTUFBTUMsUUFBUSxDQUFDVCxFQUFBQSxNQUFNLENBQUNDLFFBQVEsR0FBRztnQ0FDbERSLFFBQVFDLEdBQUcsQ0FBQztnQ0FFWmpDLHlCQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxzQkFBdUJvRCxJQUFJO2dDQUUzQixNQUFNQyxpQkFBaUIsSUFBTXJELHlCQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxzQkFBdUJzRCxJQUFJO2dDQUV4RGYsRUFBQUEsTUFBTSxDQUNIZ0IsT0FBTyxDQUNOaEIsRUFBQUEsTUFBTSxDQUFDQyxRQUFRLEdBQ2IsTUFDQWdCLE9BQ0VDLENBQUFBLEdBQUFBLGFBQUFBLE1BQUFBLEVBQ0VDLENBQUFBLEdBQUFBLGFBQUFBLHNCQUFBQSxFQUF1Qm5CLEVBQUFBLE1BQU0sQ0FBQ1UsS0FBSyxHQUNuQyxJQUFJVSxnQkFBZ0JyQyxTQUFTc0MsTUFBTSxLQUd6Q3JCLEVBQUFBLE1BQU0sQ0FBQ3NCLE1BQU0sRUFDYjtvQ0FBRUMsUUFBUTtnQ0FBTSxHQUVqQmhDLEtBQUssQ0FBQztvQ0FDTCxtREFBbUQ7b0NBQ25ELGlDQUFpQztvQ0FDakNSLFNBQVNDLE1BQU07Z0NBQ2pCLEdBQ0N3QyxPQUFPLENBQUNWOzRCQUNiOzRCQUNBO3dCQUNGO29CQUNBO3dCQUNFO2dCQUNKO1lBQ0Y7UUFDRjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9jbGllbnQvcGFnZS1ib290c3RyYXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaHlkcmF0ZSwgcm91dGVyIH0gZnJvbSAnLi8nXG5pbXBvcnQgaW5pdE9uRGVtYW5kRW50cmllcyBmcm9tICcuL2Rldi9vbi1kZW1hbmQtZW50cmllcy1jbGllbnQnXG5pbXBvcnQgaW5pdGlhbGl6ZUJ1aWxkV2F0Y2hlciBmcm9tICcuL2Rldi9kZXYtYnVpbGQtd2F0Y2hlcidcbmltcG9ydCB0eXBlIHsgU2hvd0hpZGVIYW5kbGVyIH0gZnJvbSAnLi9kZXYvZGV2LWJ1aWxkLXdhdGNoZXInXG5pbXBvcnQgeyBkaXNwbGF5Q29udGVudCB9IGZyb20gJy4vZGV2L2ZvdWMnXG5pbXBvcnQge1xuICBjb25uZWN0SE1SLFxuICBhZGRNZXNzYWdlTGlzdGVuZXIsXG59IGZyb20gJy4vY29tcG9uZW50cy9yZWFjdC1kZXYtb3ZlcmxheS9wYWdlcy93ZWJzb2NrZXQnXG5pbXBvcnQge1xuICBhc3NpZ24sXG4gIHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nJ1xuaW1wb3J0IHsgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSIH0gZnJvbSAnLi4vc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMnXG5pbXBvcnQgeyBSdW50aW1lRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvcnVudGltZS1lcnJvci1oYW5kbGVyJ1xuaW1wb3J0IHsgUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SIH0gZnJvbSAnLi9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3NoYXJlZCdcbmltcG9ydCB7IHBlcmZvcm1GdWxsUmVsb2FkIH0gZnJvbSAnLi9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL2hvdC1yZWxvYWRlci1jbGllbnQnXG5cbmV4cG9ydCBmdW5jdGlvbiBwYWdlQm9vdHN0cmFwKGFzc2V0UHJlZml4OiBzdHJpbmcpIHtcbiAgY29ubmVjdEhNUih7IGFzc2V0UHJlZml4LCBwYXRoOiAnL19uZXh0L3dlYnBhY2staG1yJyB9KVxuXG4gIHJldHVybiBoeWRyYXRlKHsgYmVmb3JlUmVuZGVyOiBkaXNwbGF5Q29udGVudCB9KS50aGVuKCgpID0+IHtcbiAgICBpbml0T25EZW1hbmRFbnRyaWVzKClcblxuICAgIGxldCBidWlsZEluZGljYXRvckhhbmRsZXI6IFNob3dIaWRlSGFuZGxlciB8IHVuZGVmaW5lZFxuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9CVUlMRF9JTkRJQ0FUT1IpIHtcbiAgICAgIGluaXRpYWxpemVCdWlsZFdhdGNoZXIoKGhhbmRsZXIpID0+IHtcbiAgICAgICAgYnVpbGRJbmRpY2F0b3JIYW5kbGVyID0gaGFuZGxlclxuICAgICAgfSwgcHJvY2Vzcy5lbnYuX19ORVhUX0JVSUxEX0lORElDQVRPUl9QT1NJVElPTilcbiAgICB9XG5cbiAgICBsZXQgcmVsb2FkaW5nID0gZmFsc2VcblxuICAgIGFkZE1lc3NhZ2VMaXN0ZW5lcigocGF5bG9hZCkgPT4ge1xuICAgICAgaWYgKHJlbG9hZGluZykgcmV0dXJuXG4gICAgICBpZiAoJ2FjdGlvbicgaW4gcGF5bG9hZCkge1xuICAgICAgICBzd2l0Y2ggKHBheWxvYWQuYWN0aW9uKSB7XG4gICAgICAgICAgY2FzZSBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIuU0VSVkVSX0VSUk9SOiB7XG4gICAgICAgICAgICBjb25zdCB7IHN0YWNrLCBtZXNzYWdlIH0gPSBKU09OLnBhcnNlKHBheWxvYWQuZXJyb3JKU09OKVxuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICAgICAgICAgIGVycm9yLnN0YWNrID0gc3RhY2tcbiAgICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlJFTE9BRF9QQUdFOiB7XG4gICAgICAgICAgICByZWxvYWRpbmcgPSB0cnVlXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLkRFVl9QQUdFU19NQU5JRkVTVF9VUERBVEU6IHtcbiAgICAgICAgICAgIGZldGNoKFxuICAgICAgICAgICAgICBgJHthc3NldFByZWZpeH0vX25leHQvc3RhdGljL2RldmVsb3BtZW50L19kZXZQYWdlc01hbmlmZXN0Lmpzb25gXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG4gICAgICAgICAgICAgIC50aGVuKChtYW5pZmVzdCkgPT4ge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5fX0RFVl9QQUdFU19NQU5JRkVTVCA9IG1hbmlmZXN0XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYEZhaWxlZCB0byBmZXRjaCBkZXZQYWdlc01hbmlmZXN0YCwgZXJyKVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoJ2V2ZW50JyBpbiBwYXlsb2FkKSB7XG4gICAgICAgIHN3aXRjaCAocGF5bG9hZC5ldmVudCkge1xuICAgICAgICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLk1JRERMRVdBUkVfQ0hBTkdFUzoge1xuICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUi5DTElFTlRfQ0hBTkdFUzoge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyB1c2VkIGluIGAuLi9zZXJ2ZXIvZGV2L3R1cmJvcGFjay11dGlscy50c2AuXG4gICAgICAgICAgICBjb25zdCBpc09uRXJyb3JQYWdlID0gd2luZG93Lm5leHQucm91dGVyLnBhdGhuYW1lID09PSAnL19lcnJvcidcbiAgICAgICAgICAgIC8vIE9uIHRoZSBlcnJvciBwYWdlIHdlIHdhbnQgdG8gcmVsb2FkIHRoZSBwYWdlIHdoZW4gYSBwYWdlIHdhcyBjaGFuZ2VkXG4gICAgICAgICAgICBpZiAoaXNPbkVycm9yUGFnZSkge1xuICAgICAgICAgICAgICBpZiAoUnVudGltZUVycm9ySGFuZGxlci5oYWRSdW50aW1lRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlbG9hZGluZyA9IHRydWVcbiAgICAgICAgICAgICAgcGVyZm9ybUZ1bGxSZWxvYWQobnVsbClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSLlNFUlZFUl9PTkxZX0NIQU5HRVM6IHtcbiAgICAgICAgICAgIGlmIChSdW50aW1lRXJyb3JIYW5kbGVyLmhhZFJ1bnRpbWVFcnJvcikge1xuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oUkVBQ1RfUkVGUkVTSF9GVUxMX1JFTE9BRF9GUk9NX0VSUk9SKVxuICAgICAgICAgICAgICBwZXJmb3JtRnVsbFJlbG9hZChudWxsKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB7IHBhZ2VzIH0gPSBwYXlsb2FkXG5cbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0byByZWxvYWQgd2hlbiB0aGUgZGV2LW92ZXJsYXkgaXMgc2hvd2luZyBmb3IgYW5cbiAgICAgICAgICAgIC8vIEFQSSByb3V0ZVxuICAgICAgICAgICAgLy8gVE9ETzogRml4IGBfX05FWFRfUEFHRWAgdHlwZVxuICAgICAgICAgICAgaWYgKHBhZ2VzLmluY2x1ZGVzKHJvdXRlci5xdWVyeS5fX05FWFRfUEFHRSBhcyBzdHJpbmcpKSB7XG4gICAgICAgICAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFyb3V0ZXIuY2xjICYmIHBhZ2VzLmluY2x1ZGVzKHJvdXRlci5wYXRobmFtZSkpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1JlZnJlc2hpbmcgcGFnZSBkYXRhIGR1ZSB0byBzZXJ2ZXItc2lkZSBjaGFuZ2UnKVxuXG4gICAgICAgICAgICAgIGJ1aWxkSW5kaWNhdG9ySGFuZGxlcj8uc2hvdygpXG5cbiAgICAgICAgICAgICAgY29uc3QgY2xlYXJJbmRpY2F0b3IgPSAoKSA9PiBidWlsZEluZGljYXRvckhhbmRsZXI/LmhpZGUoKVxuXG4gICAgICAgICAgICAgIHJvdXRlclxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgcm91dGVyLnBhdGhuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgJz8nICtcbiAgICAgICAgICAgICAgICAgICAgU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMocm91dGVyLnF1ZXJ5KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBVUkxTZWFyY2hQYXJhbXMobG9jYXRpb24uc2VhcmNoKVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHJvdXRlci5hc1BhdGgsXG4gICAgICAgICAgICAgICAgICB7IHNjcm9sbDogZmFsc2UgfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gdHJpZ2dlciBoYXJkIHJlbG9hZCB3aGVuIGZhaWxpbmcgdG8gcmVmcmVzaCBkYXRhXG4gICAgICAgICAgICAgICAgICAvLyB0byBzaG93IGVycm9yIG92ZXJsYXkgcHJvcGVybHlcbiAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmluYWxseShjbGVhckluZGljYXRvcilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJwYWdlQm9vdHN0cmFwIiwiYXNzZXRQcmVmaXgiLCJjb25uZWN0SE1SIiwicGF0aCIsImh5ZHJhdGUiLCJiZWZvcmVSZW5kZXIiLCJkaXNwbGF5Q29udGVudCIsInRoZW4iLCJpbml0T25EZW1hbmRFbnRyaWVzIiwiYnVpbGRJbmRpY2F0b3JIYW5kbGVyIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9CVUlMRF9JTkRJQ0FUT1IiLCJpbml0aWFsaXplQnVpbGRXYXRjaGVyIiwiaGFuZGxlciIsIl9fTkVYVF9CVUlMRF9JTkRJQ0FUT1JfUE9TSVRJT04iLCJyZWxvYWRpbmciLCJhZGRNZXNzYWdlTGlzdGVuZXIiLCJwYXlsb2FkIiwiYWN0aW9uIiwiSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSIiwiU0VSVkVSX0VSUk9SIiwic3RhY2siLCJtZXNzYWdlIiwiSlNPTiIsInBhcnNlIiwiZXJyb3JKU09OIiwiZXJyb3IiLCJFcnJvciIsIlJFTE9BRF9QQUdFIiwid2luZG93IiwibG9jYXRpb24iLCJyZWxvYWQiLCJERVZfUEFHRVNfTUFOSUZFU1RfVVBEQVRFIiwiZmV0Y2giLCJyZXMiLCJqc29uIiwibWFuaWZlc3QiLCJfX0RFVl9QQUdFU19NQU5JRkVTVCIsImNhdGNoIiwiZXJyIiwiY29uc29sZSIsImxvZyIsImV2ZW50IiwiTUlERExFV0FSRV9DSEFOR0VTIiwiQ0xJRU5UX0NIQU5HRVMiLCJpc09uRXJyb3JQYWdlIiwibmV4dCIsInJvdXRlciIsInBhdGhuYW1lIiwiUnVudGltZUVycm9ySGFuZGxlciIsImhhZFJ1bnRpbWVFcnJvciIsIndhcm4iLCJSRUFDVF9SRUZSRVNIX0ZVTExfUkVMT0FEX0ZST01fRVJST1IiLCJwZXJmb3JtRnVsbFJlbG9hZCIsIlNFUlZFUl9PTkxZX0NIQU5HRVMiLCJwYWdlcyIsImluY2x1ZGVzIiwicXVlcnkiLCJfX05FWFRfUEFHRSIsImNsYyIsInNob3ciLCJjbGVhckluZGljYXRvciIsImhpZGUiLCJyZXBsYWNlIiwiU3RyaW5nIiwiYXNzaWduIiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsInNlYXJjaCIsImFzUGF0aCIsInNjcm9sbCIsImZpbmFsbHkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/page-bootstrap.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/page-loader.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/page-loader.js ***! + \******************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return PageLoader;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"./node_modules/next/dist/client/add-base-path.js\");\nconst _interpolateas = __webpack_require__(/*! ../shared/lib/router/utils/interpolate-as */ \"./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nconst _getassetpathfromroute = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"./node_modules/next/dist/client/add-locale.js\");\nconst _isdynamic = __webpack_require__(/*! ../shared/lib/router/utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\nconst _parserelativeurl = __webpack_require__(/*! ../shared/lib/router/utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\nconst _removetrailingslash = __webpack_require__(/*! ../shared/lib/router/utils/remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _routeloader = __webpack_require__(/*! ./route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\nconst _constants = __webpack_require__(/*! ../shared/lib/constants */ \"./node_modules/next/dist/shared/lib/constants.js\");\nclass PageLoader {\n getPageList() {\n if (false) {} else {\n if (window.__DEV_PAGES_MANIFEST) {\n return window.__DEV_PAGES_MANIFEST.pages;\n } else {\n this.promisedDevPagesManifest || (this.promisedDevPagesManifest = fetch(this.assetPrefix + \"/_next/static/development/\" + _constants.DEV_CLIENT_PAGES_MANIFEST, {\n credentials: 'same-origin'\n }).then((res)=>res.json()).then((manifest)=>{\n window.__DEV_PAGES_MANIFEST = manifest;\n return manifest.pages;\n }).catch((err)=>{\n console.log(\"Failed to fetch devPagesManifest:\", err);\n throw new Error(\"Failed to fetch _devPagesManifest.json. Is something blocking that network request?\\n\" + 'Read more: https://nextjs.org/docs/messages/failed-to-fetch-devpagesmanifest');\n }));\n return this.promisedDevPagesManifest;\n }\n }\n }\n getMiddleware() {\n // Webpack production\n if (false) {} else if (false) {} else {\n if (window.__DEV_MIDDLEWARE_MATCHERS) {\n return window.__DEV_MIDDLEWARE_MATCHERS;\n } else {\n if (!this.promisedMiddlewareMatchers) {\n // TODO: Decide what should happen when fetching fails instead of asserting\n // @ts-ignore\n this.promisedMiddlewareMatchers = fetch(this.assetPrefix + \"/_next/static/\" + this.buildId + \"/\" + _constants.DEV_CLIENT_MIDDLEWARE_MANIFEST, {\n credentials: 'same-origin'\n }).then((res)=>res.json()).then((matchers)=>{\n window.__DEV_MIDDLEWARE_MATCHERS = matchers;\n return matchers;\n }).catch((err)=>{\n console.log(\"Failed to fetch _devMiddlewareManifest\", err);\n });\n }\n // TODO Remove this assertion as this could be undefined\n return this.promisedMiddlewareMatchers;\n }\n }\n }\n getDataHref(params) {\n const { asPath, href, locale } = params;\n const { pathname: hrefPathname, query, search } = (0, _parserelativeurl.parseRelativeUrl)(href);\n const { pathname: asPathname } = (0, _parserelativeurl.parseRelativeUrl)(asPath);\n const route = (0, _removetrailingslash.removeTrailingSlash)(hrefPathname);\n if (route[0] !== '/') {\n throw new Error('Route name should start with a \"/\", got \"' + route + '\"');\n }\n const getHrefForSlug = (path)=>{\n const dataRoute = (0, _getassetpathfromroute.default)((0, _removetrailingslash.removeTrailingSlash)((0, _addlocale.addLocale)(path, locale)), '.json');\n return (0, _addbasepath.addBasePath)(\"/_next/data/\" + this.buildId + dataRoute + search, true);\n };\n return getHrefForSlug(params.skipInterpolation ? asPathname : (0, _isdynamic.isDynamicRoute)(route) ? (0, _interpolateas.interpolateAs)(hrefPathname, asPathname, query).result : route);\n }\n _isSsg(/** the route (file-system path) */ route) {\n return this.promisedSsgManifest.then((manifest)=>manifest.has(route));\n }\n loadPage(route) {\n return this.routeLoader.loadRoute(route).then((res)=>{\n if ('component' in res) {\n return {\n page: res.component,\n mod: res.exports,\n styleSheets: res.styles.map((o)=>({\n href: o.href,\n text: o.content\n }))\n };\n }\n throw res.error;\n });\n }\n prefetch(route) {\n return this.routeLoader.prefetch(route);\n }\n constructor(buildId, assetPrefix){\n this.routeLoader = (0, _routeloader.createRouteLoader)(assetPrefix);\n this.buildId = buildId;\n this.assetPrefix = assetPrefix;\n this.promisedSsgManifest = new Promise((resolve)=>{\n if (window.__SSG_MANIFEST) {\n resolve(window.__SSG_MANIFEST);\n } else {\n window.__SSG_MANIFEST_CB = ()=>{\n resolve(window.__SSG_MANIFEST);\n };\n }\n });\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=page-loader.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wYWdlLWxvYWRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O2VBaUNxQkE7Ozs7eUNBOUJPOzJDQUNFOzRGQUNJO3VDQUNSO3VDQUNLOzhDQUNFO2lEQUNHO3lDQUNzQjt1Q0FLbkQ7QUFrQlEsTUFBTUE7SUEwQm5CQyxjQUFjO1FBQ1osSUFsRHNELEtBa0Q5QixFQUFtQixFQUUxQyxNQUFNO1lBQ0wsSUFBSVEsT0FBT0Msb0JBQW9CLEVBQUU7Z0JBQy9CLE9BQU9ELE9BQU9DLG9CQUFvQixDQUFDQyxLQUFLO1lBQzFDLE9BQU87Z0JBQ0wsSUFBSSxDQUFDQyx3QkFBQUEsS0FBTCxJQUFJLENBQUNBLHdCQUFBQSxHQUE2QkMsTUFDN0IsSUFBSSxDQUFDQyxXQUFXLEdBQUMsK0JBQTRCQyxXQUFBQSx5QkFBeUIsRUFDekU7b0JBQUVDLGFBQWE7Z0JBQWMsR0FFNUJWLElBQUksQ0FBQyxDQUFDVyxNQUFRQSxJQUFJQyxJQUFJLElBQ3RCWixJQUFJLENBQUMsQ0FBQ0M7b0JBQ0xFLE9BQU9DLG9CQUFvQixHQUFHSDtvQkFDOUIsT0FBT0EsU0FBU0ksS0FBSztnQkFDdkIsR0FDQ1EsS0FBSyxDQUFDLENBQUNDO29CQUNOQyxRQUFRQyxHQUFHLENBQUUscUNBQW9DRjtvQkFDakQsTUFBTSxJQUFJRyxNQUNQLDBGQUNDO2dCQUVOO2dCQUNGLE9BQU8sSUFBSSxDQUFDWCx3QkFBd0I7WUFDdEM7UUFDRjtJQUNGO0lBRUFZLGdCQUFnQjtRQUNkLHFCQUFxQjtRQUNyQixJQUNFdEIsS0FDc0MsRUFDdEMsRUFPRCxNQUFNLElBQUlBLEtBQW9CLEVBQW1CLEVBd0JqRCxNQUFNO1lBQ0wsSUFBSU8sT0FBT3dCLHlCQUF5QixFQUFFO2dCQUNwQyxPQUFPeEIsT0FBT3dCLHlCQUF5QjtZQUN6QyxPQUFPO2dCQUNMLElBQUksQ0FBQyxJQUFJLENBQUNKLDBCQUEwQixFQUFFO29CQUNwQywyRUFBMkU7b0JBQzNFLGFBQWE7b0JBQ2IsSUFBSSxDQUFDQSwwQkFBMEIsR0FBR2hCLE1BQzdCLElBQUksQ0FBQ0MsV0FBVyxHQUFDLG1CQUFnQixJQUFJLENBQUNnQixPQUFPLEdBQUMsTUFBR0ksV0FBQUEsOEJBQThCLEVBQ2xGO3dCQUFFbEIsYUFBYTtvQkFBYyxHQUU1QlYsSUFBSSxDQUFDLENBQUNXLE1BQVFBLElBQUlDLElBQUksSUFDdEJaLElBQUksQ0FBQyxDQUFDMEI7d0JBQ0x2QixPQUFPd0IseUJBQXlCLEdBQUdEO3dCQUNuQyxPQUFPQTtvQkFDVCxHQUNDYixLQUFLLENBQUMsQ0FBQ0M7d0JBQ05DLFFBQVFDLEdBQUcsQ0FBRSwwQ0FBeUNGO29CQUN4RDtnQkFDSjtnQkFDQSx3REFBd0Q7Z0JBQ3hELE9BQU8sSUFBSSxDQUFDUywwQkFBMEI7WUFDeEM7UUFDRjtJQUNGO0lBRUFNLFlBQVlDLE1BS1gsRUFBVTtRQUNULE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLE1BQU0sRUFBRSxHQUFHSDtRQUNqQyxNQUFNLEVBQUVJLFVBQVVDLFlBQVksRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQk47UUFDbkUsTUFBTSxFQUFFRSxVQUFVSyxVQUFVLEVBQUUsR0FBR0QsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQlA7UUFDbEQsTUFBTVMsUUFBUUMsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQk47UUFDbEMsSUFBSUssS0FBSyxDQUFDLEVBQUUsS0FBSyxLQUFLO1lBQ3BCLE1BQU0sSUFBSXZCLE1BQU8sOENBQTJDdUIsUUFBTTtRQUNwRTtRQUVBLE1BQU1FLGlCQUFpQixDQUFDQztZQUN0QixNQUFNQyxZQUFZQyxDQUFBQSxHQUFBQSx1QkFBQUEsT0FBQUEsRUFDaEJKLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JLLENBQUFBLEdBQUFBLFdBQUFBLFNBQUFBLEVBQVVILE1BQU1WLFVBQ3BDO1lBRUYsT0FBT2MsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBVyxFQUNmLGlCQUFjLElBQUksQ0FBQ3ZCLE9BQU8sR0FBR29CLFlBQVlQLFFBQzFDO1FBRUo7UUFFQSxPQUFPSyxlQUNMWixPQUFPa0IsaUJBQWlCLEdBQ3BCVCxhQUNBVSxDQUFBQSxHQUFBQSxXQUFBQSxjQUFBQSxFQUFlVCxTQUNiVSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjZixjQUFjSSxZQUFZSCxPQUFPZSxNQUFNLEdBQ3JEWDtJQUVWO0lBRUFZLE9BQ0UsaUNBQWlDLEdBQ2pDWixLQUFhLEVBQ0s7UUFDbEIsT0FBTyxJQUFJLENBQUNhLG1CQUFtQixDQUFDckQsSUFBSSxDQUFDLENBQUNDLFdBQWFBLFNBQVNxRCxHQUFHLENBQUNkO0lBQ2xFO0lBRUFlLFNBQVNmLEtBQWEsRUFBMEI7UUFDOUMsT0FBTyxJQUFJLENBQUNnQixXQUFXLENBQUNDLFNBQVMsQ0FBQ2pCLE9BQU94QyxJQUFJLENBQUMsQ0FBQ1c7WUFDN0MsSUFBSSxlQUFlQSxLQUFLO2dCQUN0QixPQUFPO29CQUNMK0MsTUFBTS9DLElBQUlnRCxTQUFTO29CQUNuQkMsS0FBS2pELElBQUlrRCxPQUFPO29CQUNoQkMsYUFBYW5ELElBQUlvRCxNQUFNLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxJQUFPOzRCQUNsQ2pDLE1BQU1pQyxFQUFFakMsSUFBSTs0QkFDWmtDLE1BQU1ELEVBQUVFLE9BQU87eUJBQ2pCO2dCQUNGO1lBQ0Y7WUFDQSxNQUFNeEQsSUFBSXlELEtBQUs7UUFDakI7SUFDRjtJQUVBQyxTQUFTN0IsS0FBYSxFQUFpQjtRQUNyQyxPQUFPLElBQUksQ0FBQ2dCLFdBQVcsQ0FBQ2EsUUFBUSxDQUFDN0I7SUFDbkM7SUF0S0E4QixZQUFZOUMsT0FBZSxFQUFFaEIsV0FBbUIsQ0FBRTtRQUNoRCxJQUFJLENBQUNnRCxXQUFXLEdBQUdlLENBQUFBLEdBQUFBLGFBQUFBLGlCQUFBQSxFQUFrQi9EO1FBRXJDLElBQUksQ0FBQ2dCLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNoQixXQUFXLEdBQUdBO1FBRW5CLElBQUksQ0FBQzZDLG1CQUFtQixHQUFHLElBQUltQixRQUFRLENBQUNDO1lBQ3RDLElBQUl0RSxPQUFPdUUsY0FBYyxFQUFFO2dCQUN6QkQsUUFBUXRFLE9BQU91RSxjQUFjO1lBQy9CLE9BQU87Z0JBQ0x2RSxPQUFPd0UsaUJBQWlCLEdBQUc7b0JBQ3pCRixRQUFRdEUsT0FBT3VFLGNBQWM7Z0JBQy9CO1lBQ0Y7UUFDRjtJQUNGO0FBd0pGIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvY2xpZW50L3BhZ2UtbG9hZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBSb3V0ZUxvYWRlciB9IGZyb20gJy4vcm91dGUtbG9hZGVyJ1xuaW1wb3J0IHR5cGUgeyBNaWRkbGV3YXJlTWF0Y2hlciB9IGZyb20gJy4uL2J1aWxkL2FuYWx5c2lzL2dldC1wYWdlLXN0YXRpYy1pbmZvJ1xuaW1wb3J0IHsgYWRkQmFzZVBhdGggfSBmcm9tICcuL2FkZC1iYXNlLXBhdGgnXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZUFzIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMnXG5pbXBvcnQgZ2V0QXNzZXRQYXRoRnJvbVJvdXRlIGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGUnXG5pbXBvcnQgeyBhZGRMb2NhbGUgfSBmcm9tICcuL2FkZC1sb2NhbGUnXG5pbXBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMnXG5pbXBvcnQgeyBwYXJzZVJlbGF0aXZlVXJsIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsJ1xuaW1wb3J0IHsgcmVtb3ZlVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaCdcbmltcG9ydCB7IGNyZWF0ZVJvdXRlTG9hZGVyLCBnZXRDbGllbnRCdWlsZE1hbmlmZXN0IH0gZnJvbSAnLi9yb3V0ZS1sb2FkZXInXG5pbXBvcnQge1xuICBERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNULFxuICBERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QsXG4gIFRVUkJPUEFDS19DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCxcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi9jb25zdGFudHMnXG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgX19ERVZfTUlERExFV0FSRV9NQVRDSEVSUz86IE1pZGRsZXdhcmVNYXRjaGVyW11cbiAgICBfX0RFVl9QQUdFU19NQU5JRkVTVD86IHsgcGFnZXM6IHN0cmluZ1tdIH1cbiAgICBfX1NTR19NQU5JRkVTVF9DQj86ICgpID0+IHZvaWRcbiAgICBfX1NTR19NQU5JRkVTVD86IFNldDxzdHJpbmc+XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgU3R5bGVTaGVldFR1cGxlID0geyBocmVmOiBzdHJpbmc7IHRleHQ6IHN0cmluZyB9XG5leHBvcnQgdHlwZSBHb29kUGFnZUNhY2hlID0ge1xuICBwYWdlOiBDb21wb25lbnRUeXBlXG4gIG1vZDogYW55XG4gIHN0eWxlU2hlZXRzOiBTdHlsZVNoZWV0VHVwbGVbXVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYWdlTG9hZGVyIHtcbiAgcHJpdmF0ZSBidWlsZElkOiBzdHJpbmdcbiAgcHJpdmF0ZSBhc3NldFByZWZpeDogc3RyaW5nXG4gIHByaXZhdGUgcHJvbWlzZWRTc2dNYW5pZmVzdDogUHJvbWlzZTxTZXQ8c3RyaW5nPj5cbiAgcHJpdmF0ZSBwcm9taXNlZERldlBhZ2VzTWFuaWZlc3Q/OiBQcm9taXNlPHN0cmluZ1tdPlxuICBwcml2YXRlIHByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzPzogUHJvbWlzZTxNaWRkbGV3YXJlTWF0Y2hlcltdPlxuXG4gIHB1YmxpYyByb3V0ZUxvYWRlcjogUm91dGVMb2FkZXJcblxuICBjb25zdHJ1Y3RvcihidWlsZElkOiBzdHJpbmcsIGFzc2V0UHJlZml4OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJvdXRlTG9hZGVyID0gY3JlYXRlUm91dGVMb2FkZXIoYXNzZXRQcmVmaXgpXG5cbiAgICB0aGlzLmJ1aWxkSWQgPSBidWlsZElkXG4gICAgdGhpcy5hc3NldFByZWZpeCA9IGFzc2V0UHJlZml4XG5cbiAgICB0aGlzLnByb21pc2VkU3NnTWFuaWZlc3QgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKHdpbmRvdy5fX1NTR19NQU5JRkVTVCkge1xuICAgICAgICByZXNvbHZlKHdpbmRvdy5fX1NTR19NQU5JRkVTVClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHdpbmRvdy5fX1NTR19NQU5JRkVTVF9DQiA9ICgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHdpbmRvdy5fX1NTR19NQU5JRkVTVCEpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgZ2V0UGFnZUxpc3QoKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIHJldHVybiBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkudGhlbigobWFuaWZlc3QpID0+IG1hbmlmZXN0LnNvcnRlZFBhZ2VzKVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAod2luZG93Ll9fREVWX1BBR0VTX01BTklGRVNUKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuX19ERVZfUEFHRVNfTUFOSUZFU1QucGFnZXNcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJvbWlzZWREZXZQYWdlc01hbmlmZXN0IHx8PSBmZXRjaChcbiAgICAgICAgICBgJHt0aGlzLmFzc2V0UHJlZml4fS9fbmV4dC9zdGF0aWMvZGV2ZWxvcG1lbnQvJHtERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUfWAsXG4gICAgICAgICAgeyBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyB9XG4gICAgICAgIClcbiAgICAgICAgICAudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuICAgICAgICAgIC50aGVuKChtYW5pZmVzdDogeyBwYWdlczogc3RyaW5nW10gfSkgPT4ge1xuICAgICAgICAgICAgd2luZG93Ll9fREVWX1BBR0VTX01BTklGRVNUID0gbWFuaWZlc3RcbiAgICAgICAgICAgIHJldHVybiBtYW5pZmVzdC5wYWdlc1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gZmV0Y2ggZGV2UGFnZXNNYW5pZmVzdDpgLCBlcnIpXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgIGBGYWlsZWQgdG8gZmV0Y2ggX2RldlBhZ2VzTWFuaWZlc3QuanNvbi4gSXMgc29tZXRoaW5nIGJsb2NraW5nIHRoYXQgbmV0d29yayByZXF1ZXN0P1xcbmAgK1xuICAgICAgICAgICAgICAgICdSZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ZhaWxlZC10by1mZXRjaC1kZXZwYWdlc21hbmlmZXN0J1xuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pXG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VkRGV2UGFnZXNNYW5pZmVzdFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldE1pZGRsZXdhcmUoKSB7XG4gICAgLy8gV2VicGFjayBwcm9kdWN0aW9uXG4gICAgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyAmJlxuICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX01JRERMRVdBUkVfTUFUQ0hFUlNcbiAgICApIHtcbiAgICAgIGNvbnN0IG1pZGRsZXdhcmVNYXRjaGVycyA9IHByb2Nlc3MuZW52Ll9fTkVYVF9NSURETEVXQVJFX01BVENIRVJTXG4gICAgICB3aW5kb3cuX19NSURETEVXQVJFX01BVENIRVJTID0gbWlkZGxld2FyZU1hdGNoZXJzXG4gICAgICAgID8gKG1pZGRsZXdhcmVNYXRjaGVycyBhcyBhbnkgYXMgTWlkZGxld2FyZU1hdGNoZXJbXSlcbiAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgIHJldHVybiB3aW5kb3cuX19NSURETEVXQVJFX01BVENIRVJTXG4gICAgICAvLyBUdXJib3BhY2sgcHJvZHVjdGlvblxuICAgIH0gZWxzZSBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHdpbmRvdy5fX01JRERMRVdBUkVfTUFUQ0hFUlMpIHtcbiAgICAgICAgcmV0dXJuIHdpbmRvdy5fX01JRERMRVdBUkVfTUFUQ0hFUlNcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghdGhpcy5wcm9taXNlZE1pZGRsZXdhcmVNYXRjaGVycykge1xuICAgICAgICAgIC8vIFRPRE86IERlY2lkZSB3aGF0IHNob3VsZCBoYXBwZW4gd2hlbiBmZXRjaGluZyBmYWlscyBpbnN0ZWFkIG9mIGFzc2VydGluZ1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICB0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzID0gZmV0Y2goXG4gICAgICAgICAgICBgJHt0aGlzLmFzc2V0UHJlZml4fS9fbmV4dC9zdGF0aWMvJHt0aGlzLmJ1aWxkSWR9LyR7VFVSQk9QQUNLX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUfWAsXG4gICAgICAgICAgICB7IGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nIH1cbiAgICAgICAgICApXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuICAgICAgICAgICAgLnRoZW4oKG1hdGNoZXJzOiBNaWRkbGV3YXJlTWF0Y2hlcltdKSA9PiB7XG4gICAgICAgICAgICAgIHdpbmRvdy5fX01JRERMRVdBUkVfTUFUQ0hFUlMgPSBtYXRjaGVyc1xuICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlcnNcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGZldGNoIF9kZXZNaWRkbGV3YXJlTWFuaWZlc3RgLCBlcnIpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIC8vIFRPRE8gUmVtb3ZlIHRoaXMgYXNzZXJ0aW9uIGFzIHRoaXMgY291bGQgYmUgdW5kZWZpbmVkXG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzIVxuICAgICAgfVxuICAgICAgLy8gRGV2ZWxvcG1lbnQgYm90aCBUdXJib3BhY2sgYW5kIFdlYnBhY2tcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHdpbmRvdy5fX0RFVl9NSURETEVXQVJFX01BVENIRVJTKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuX19ERVZfTUlERExFV0FSRV9NQVRDSEVSU1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzKSB7XG4gICAgICAgICAgLy8gVE9ETzogRGVjaWRlIHdoYXQgc2hvdWxkIGhhcHBlbiB3aGVuIGZldGNoaW5nIGZhaWxzIGluc3RlYWQgb2YgYXNzZXJ0aW5nXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHRoaXMucHJvbWlzZWRNaWRkbGV3YXJlTWF0Y2hlcnMgPSBmZXRjaChcbiAgICAgICAgICAgIGAke3RoaXMuYXNzZXRQcmVmaXh9L19uZXh0L3N0YXRpYy8ke3RoaXMuYnVpbGRJZH0vJHtERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1R9YCxcbiAgICAgICAgICAgIHsgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbicgfVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG4gICAgICAgICAgICAudGhlbigobWF0Y2hlcnM6IE1pZGRsZXdhcmVNYXRjaGVyW10pID0+IHtcbiAgICAgICAgICAgICAgd2luZG93Ll9fREVWX01JRERMRVdBUkVfTUFUQ0hFUlMgPSBtYXRjaGVyc1xuICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlcnNcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIGZldGNoIF9kZXZNaWRkbGV3YXJlTWFuaWZlc3RgLCBlcnIpXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIC8vIFRPRE8gUmVtb3ZlIHRoaXMgYXNzZXJ0aW9uIGFzIHRoaXMgY291bGQgYmUgdW5kZWZpbmVkXG4gICAgICAgIHJldHVybiB0aGlzLnByb21pc2VkTWlkZGxld2FyZU1hdGNoZXJzIVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldERhdGFIcmVmKHBhcmFtczoge1xuICAgIGFzUGF0aDogc3RyaW5nXG4gICAgaHJlZjogc3RyaW5nXG4gICAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2VcbiAgICBza2lwSW50ZXJwb2xhdGlvbj86IGJvb2xlYW5cbiAgfSk6IHN0cmluZyB7XG4gICAgY29uc3QgeyBhc1BhdGgsIGhyZWYsIGxvY2FsZSB9ID0gcGFyYW1zXG4gICAgY29uc3QgeyBwYXRobmFtZTogaHJlZlBhdGhuYW1lLCBxdWVyeSwgc2VhcmNoIH0gPSBwYXJzZVJlbGF0aXZlVXJsKGhyZWYpXG4gICAgY29uc3QgeyBwYXRobmFtZTogYXNQYXRobmFtZSB9ID0gcGFyc2VSZWxhdGl2ZVVybChhc1BhdGgpXG4gICAgY29uc3Qgcm91dGUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKGhyZWZQYXRobmFtZSlcbiAgICBpZiAocm91dGVbMF0gIT09ICcvJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSb3V0ZSBuYW1lIHNob3VsZCBzdGFydCB3aXRoIGEgXCIvXCIsIGdvdCBcIiR7cm91dGV9XCJgKVxuICAgIH1cblxuICAgIGNvbnN0IGdldEhyZWZGb3JTbHVnID0gKHBhdGg6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZGF0YVJvdXRlID0gZ2V0QXNzZXRQYXRoRnJvbVJvdXRlKFxuICAgICAgICByZW1vdmVUcmFpbGluZ1NsYXNoKGFkZExvY2FsZShwYXRoLCBsb2NhbGUpKSxcbiAgICAgICAgJy5qc29uJ1xuICAgICAgKVxuICAgICAgcmV0dXJuIGFkZEJhc2VQYXRoKFxuICAgICAgICBgL19uZXh0L2RhdGEvJHt0aGlzLmJ1aWxkSWR9JHtkYXRhUm91dGV9JHtzZWFyY2h9YCxcbiAgICAgICAgdHJ1ZVxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBnZXRIcmVmRm9yU2x1ZyhcbiAgICAgIHBhcmFtcy5za2lwSW50ZXJwb2xhdGlvblxuICAgICAgICA/IGFzUGF0aG5hbWVcbiAgICAgICAgOiBpc0R5bmFtaWNSb3V0ZShyb3V0ZSlcbiAgICAgICAgICA/IGludGVycG9sYXRlQXMoaHJlZlBhdGhuYW1lLCBhc1BhdGhuYW1lLCBxdWVyeSkucmVzdWx0XG4gICAgICAgICAgOiByb3V0ZVxuICAgIClcbiAgfVxuXG4gIF9pc1NzZyhcbiAgICAvKiogdGhlIHJvdXRlIChmaWxlLXN5c3RlbSBwYXRoKSAqL1xuICAgIHJvdXRlOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvbWlzZWRTc2dNYW5pZmVzdC50aGVuKChtYW5pZmVzdCkgPT4gbWFuaWZlc3QuaGFzKHJvdXRlKSlcbiAgfVxuXG4gIGxvYWRQYWdlKHJvdXRlOiBzdHJpbmcpOiBQcm9taXNlPEdvb2RQYWdlQ2FjaGU+IHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZUxvYWRlci5sb2FkUm91dGUocm91dGUpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgaWYgKCdjb21wb25lbnQnIGluIHJlcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBhZ2U6IHJlcy5jb21wb25lbnQsXG4gICAgICAgICAgbW9kOiByZXMuZXhwb3J0cyxcbiAgICAgICAgICBzdHlsZVNoZWV0czogcmVzLnN0eWxlcy5tYXAoKG8pID0+ICh7XG4gICAgICAgICAgICBocmVmOiBvLmhyZWYsXG4gICAgICAgICAgICB0ZXh0OiBvLmNvbnRlbnQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyByZXMuZXJyb3JcbiAgICB9KVxuICB9XG5cbiAgcHJlZmV0Y2gocm91dGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlTG9hZGVyLnByZWZldGNoKHJvdXRlKVxuICB9XG59XG4iXSwibmFtZXMiOlsiUGFnZUxvYWRlciIsImdldFBhZ2VMaXN0IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCIsInRoZW4iLCJtYW5pZmVzdCIsInNvcnRlZFBhZ2VzIiwid2luZG93IiwiX19ERVZfUEFHRVNfTUFOSUZFU1QiLCJwYWdlcyIsInByb21pc2VkRGV2UGFnZXNNYW5pZmVzdCIsImZldGNoIiwiYXNzZXRQcmVmaXgiLCJERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUIiwiY3JlZGVudGlhbHMiLCJyZXMiLCJqc29uIiwiY2F0Y2giLCJlcnIiLCJjb25zb2xlIiwibG9nIiwiRXJyb3IiLCJnZXRNaWRkbGV3YXJlIiwiX19ORVhUX01JRERMRVdBUkVfTUFUQ0hFUlMiLCJtaWRkbGV3YXJlTWF0Y2hlcnMiLCJfX01JRERMRVdBUkVfTUFUQ0hFUlMiLCJ1bmRlZmluZWQiLCJwcm9taXNlZE1pZGRsZXdhcmVNYXRjaGVycyIsImJ1aWxkSWQiLCJUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QiLCJtYXRjaGVycyIsIl9fREVWX01JRERMRVdBUkVfTUFUQ0hFUlMiLCJERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QiLCJnZXREYXRhSHJlZiIsInBhcmFtcyIsImFzUGF0aCIsImhyZWYiLCJsb2NhbGUiLCJwYXRobmFtZSIsImhyZWZQYXRobmFtZSIsInF1ZXJ5Iiwic2VhcmNoIiwicGFyc2VSZWxhdGl2ZVVybCIsImFzUGF0aG5hbWUiLCJyb3V0ZSIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJnZXRIcmVmRm9yU2x1ZyIsInBhdGgiLCJkYXRhUm91dGUiLCJnZXRBc3NldFBhdGhGcm9tUm91dGUiLCJhZGRMb2NhbGUiLCJhZGRCYXNlUGF0aCIsInNraXBJbnRlcnBvbGF0aW9uIiwiaXNEeW5hbWljUm91dGUiLCJpbnRlcnBvbGF0ZUFzIiwicmVzdWx0IiwiX2lzU3NnIiwicHJvbWlzZWRTc2dNYW5pZmVzdCIsImhhcyIsImxvYWRQYWdlIiwicm91dGVMb2FkZXIiLCJsb2FkUm91dGUiLCJwYWdlIiwiY29tcG9uZW50IiwibW9kIiwiZXhwb3J0cyIsInN0eWxlU2hlZXRzIiwic3R5bGVzIiwibWFwIiwibyIsInRleHQiLCJjb250ZW50IiwiZXJyb3IiLCJwcmVmZXRjaCIsImNvbnN0cnVjdG9yIiwiY3JlYXRlUm91dGVMb2FkZXIiLCJQcm9taXNlIiwicmVzb2x2ZSIsIl9fU1NHX01BTklGRVNUIiwiX19TU0dfTUFOSUZFU1RfQ0IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/page-loader.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/portal/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/portal/index.js ***! + \*******************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Portal\", ({\n enumerable: true,\n get: function() {\n return Portal;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nconst _reactdom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\nconst Portal = (param)=>{\n let { children, type } = param;\n const [portalNode, setPortalNode] = (0, _react.useState)(null);\n (0, _react.useEffect)(()=>{\n const element = document.createElement(type);\n document.body.appendChild(element);\n setPortalNode(element);\n return ()=>{\n document.body.removeChild(element);\n };\n }, [\n type\n ]);\n return portalNode ? /*#__PURE__*/ (0, _reactdom.createPortal)(children, portalNode) : null;\n};\n_c = Portal;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=index.js.map\nvar _c;\n$RefreshReg$(_c, \"Portal\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9wb3J0YWwvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7OzswQ0FRYUE7OztlQUFBQTs7O21DQVJ1QjtzQ0FDUDtBQU90QixlQUFlO1FBQUMsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQWU7SUFDcEQsTUFBTSxDQUFDQyxZQUFZQyxjQUFjLEdBQUdDLENBQUFBLEdBQUFBLE9BQUFBLFFBQUFBLEVBQTZCO0lBRWpFQyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1IsTUFBTUMsVUFBVUMsU0FBU0MsYUFBYSxDQUFDUDtRQUN2Q00sU0FBU0UsSUFBSSxDQUFDQyxXQUFXLENBQUNKO1FBQzFCSCxjQUFjRztRQUNkLE9BQU87WUFDTEMsU0FBU0UsSUFBSSxDQUFDRSxXQUFXLENBQUNMO1FBQzVCO0lBQ0YsR0FBRztRQUFDTDtLQUFLO0lBRVQsT0FBT0MsYUFBQUEsV0FBQUEsR0FBYVUsQ0FBQUEsR0FBQUEsVUFBQUEsWUFBQUEsRUFBYVosVUFBVUUsY0FBYztBQUMzRDtLQWJhSCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2NsaWVudC9wb3J0YWwvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxudHlwZSBQb3J0YWxQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxuICB0eXBlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGNvbnN0IFBvcnRhbCA9ICh7IGNoaWxkcmVuLCB0eXBlIH06IFBvcnRhbFByb3BzKSA9PiB7XG4gIGNvbnN0IFtwb3J0YWxOb2RlLCBzZXRQb3J0YWxOb2RlXSA9IHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHR5cGUpXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KVxuICAgIHNldFBvcnRhbE5vZGUoZWxlbWVudClcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50KVxuICAgIH1cbiAgfSwgW3R5cGVdKVxuXG4gIHJldHVybiBwb3J0YWxOb2RlID8gY3JlYXRlUG9ydGFsKGNoaWxkcmVuLCBwb3J0YWxOb2RlKSA6IG51bGxcbn1cbiJdLCJuYW1lcyI6WyJQb3J0YWwiLCJjaGlsZHJlbiIsInR5cGUiLCJwb3J0YWxOb2RlIiwic2V0UG9ydGFsTm9kZSIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiZWxlbWVudCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsImJvZHkiLCJhcHBlbmRDaGlsZCIsInJlbW92ZUNoaWxkIiwiY3JlYXRlUG9ydGFsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/portal/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/react-client-callbacks/report-global-error.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/next/dist/client/react-client-callbacks/report-global-error.js ***! + \*************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"reportGlobalError\", ({\n enumerable: true,\n get: function() {\n return reportGlobalError;\n }\n}));\nconst reportGlobalError = typeof reportError === 'function' ? reportError : (error)=>{\n window.console.error(error);\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=report-global-error.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZWFjdC1jbGllbnQtY2FsbGJhY2tzL3JlcG9ydC1nbG9iYWwtZXJyb3IuanMiLCJtYXBwaW5ncyI6Ijs7OztxREFBYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsb0JBQ1gsT0FBT0MsZ0JBQWdCLGFBRW5CLGNBRUEsQ0FBQ0M7SUFDQ0MsT0FBT0MsT0FBTyxDQUFDRixLQUFLLENBQUNBO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvY2xpZW50L3JlYWN0LWNsaWVudC1jYWxsYmFja3MvcmVwb3J0LWdsb2JhbC1lcnJvci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcmVwb3J0R2xvYmFsRXJyb3IgPVxuICB0eXBlb2YgcmVwb3J0RXJyb3IgPT09ICdmdW5jdGlvbidcbiAgICA/IC8vIEluIG1vZGVybiBicm93c2VycywgcmVwb3J0RXJyb3Igd2lsbCBkaXNwYXRjaCBhbiBlcnJvciBldmVudCxcbiAgICAgIC8vIGVtdWxhdGluZyBhbiB1bmNhdWdodCBKYXZhU2NyaXB0IGVycm9yLlxuICAgICAgcmVwb3J0RXJyb3JcbiAgICA6IChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICB3aW5kb3cuY29uc29sZS5lcnJvcihlcnJvcilcbiAgICAgIH1cbiJdLCJuYW1lcyI6WyJyZXBvcnRHbG9iYWxFcnJvciIsInJlcG9ydEVycm9yIiwiZXJyb3IiLCJ3aW5kb3ciLCJjb25zb2xlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/react-client-callbacks/report-global-error.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/react-client-callbacks/shared.js": +/*!************************************************************************!*\ + !*** ./node_modules/next/dist/client/react-client-callbacks/shared.js ***! + \************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// This module can be shared between both pages router and app router\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"onRecoverableError\", ({\n enumerable: true,\n get: function() {\n return onRecoverableError;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _bailouttocsr = __webpack_require__(/*! ../../shared/lib/lazy-dynamic/bailout-to-csr */ \"./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\");\nconst _reportglobalerror = __webpack_require__(/*! ./report-global-error */ \"./node_modules/next/dist/client/react-client-callbacks/report-global-error.js\");\nconst _stitchederror = __webpack_require__(/*! ../components/react-dev-overlay/internal/helpers/stitched-error */ \"./node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stitched-error.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nconst onRecoverableError = (error, errorInfo)=>{\n // x-ref: https://github.com/facebook/react/pull/28736\n const cause = (0, _iserror.default)(error) && 'cause' in error ? error.cause : error;\n const stitchedError = (0, _stitchederror.getReactStitchedError)(cause);\n // In development mode, pass along the component stack to the error\n if ( true && errorInfo.componentStack) {\n ;\n stitchedError._componentStack = errorInfo.componentStack;\n }\n // Skip certain custom errors which are not expected to be reported on client\n if ((0, _bailouttocsr.isBailoutToCSRError)(cause)) return;\n (0, _reportglobalerror.reportGlobalError)(stitchedError);\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=shared.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZWFjdC1jbGllbnQtY2FsbGJhY2tzL3NoYXJlZC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxxRUFBcUU7Ozs7O3NEQVF4REE7OztlQUFBQTs7OzswQ0FMdUI7K0NBQ0Y7MkNBQ0k7OEVBQ2xCO0FBRWIsTUFBTUEscUJBQTZELENBQ3hFQyxPQUNBQztJQUVBLHNEQUFzRDtJQUN0RCxNQUFNQyxRQUFRQyxDQUFBQSxHQUFBQSxTQUFBQSxPQUFBQSxFQUFRSCxVQUFVLFdBQVdBLGNBQWNFLEtBQUssR0FBR0Y7SUFDakUsTUFBTUksZ0JBQWdCQyxDQUFBQSxHQUFBQSxlQUFBQSxxQkFBQUEsRUFBc0JIO0lBQzVDLG1FQUFtRTtJQUNuRSxJQUFJSSxLQUFvQixJQUFzQkwsVUFBVVEsY0FBYyxFQUFFOztRQUNwRUwsY0FBc0JNLGVBQWUsR0FBR1QsVUFBVVEsY0FBYztJQUNwRTtJQUNBLDZFQUE2RTtJQUM3RSxJQUFJRSxDQUFBQSxHQUFBQSxjQUFBQSxtQkFBQUEsRUFBb0JULFFBQVE7SUFFaENVLENBQUFBLEdBQUFBLG1CQUFBQSxpQkFBQUEsRUFBa0JSO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvY2xpZW50L3JlYWN0LWNsaWVudC1jYWxsYmFja3Mvc2hhcmVkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgbW9kdWxlIGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBib3RoIHBhZ2VzIHJvdXRlciBhbmQgYXBwIHJvdXRlclxuXG5pbXBvcnQgdHlwZSB7IEh5ZHJhdGlvbk9wdGlvbnMgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50J1xuaW1wb3J0IHsgaXNCYWlsb3V0VG9DU1JFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyJ1xuaW1wb3J0IHsgcmVwb3J0R2xvYmFsRXJyb3IgfSBmcm9tICcuL3JlcG9ydC1nbG9iYWwtZXJyb3InXG5pbXBvcnQgeyBnZXRSZWFjdFN0aXRjaGVkRXJyb3IgfSBmcm9tICcuLi9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L2ludGVybmFsL2hlbHBlcnMvc3RpdGNoZWQtZXJyb3InXG5pbXBvcnQgaXNFcnJvciBmcm9tICcuLi8uLi9saWIvaXMtZXJyb3InXG5cbmV4cG9ydCBjb25zdCBvblJlY292ZXJhYmxlRXJyb3I6IEh5ZHJhdGlvbk9wdGlvbnNbJ29uUmVjb3ZlcmFibGVFcnJvciddID0gKFxuICBlcnJvcixcbiAgZXJyb3JJbmZvXG4pID0+IHtcbiAgLy8geC1yZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9wdWxsLzI4NzM2XG4gIGNvbnN0IGNhdXNlID0gaXNFcnJvcihlcnJvcikgJiYgJ2NhdXNlJyBpbiBlcnJvciA/IGVycm9yLmNhdXNlIDogZXJyb3JcbiAgY29uc3Qgc3RpdGNoZWRFcnJvciA9IGdldFJlYWN0U3RpdGNoZWRFcnJvcihjYXVzZSlcbiAgLy8gSW4gZGV2ZWxvcG1lbnQgbW9kZSwgcGFzcyBhbG9uZyB0aGUgY29tcG9uZW50IHN0YWNrIHRvIHRoZSBlcnJvclxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgZXJyb3JJbmZvLmNvbXBvbmVudFN0YWNrKSB7XG4gICAgOyhzdGl0Y2hlZEVycm9yIGFzIGFueSkuX2NvbXBvbmVudFN0YWNrID0gZXJyb3JJbmZvLmNvbXBvbmVudFN0YWNrXG4gIH1cbiAgLy8gU2tpcCBjZXJ0YWluIGN1c3RvbSBlcnJvcnMgd2hpY2ggYXJlIG5vdCBleHBlY3RlZCB0byBiZSByZXBvcnRlZCBvbiBjbGllbnRcbiAgaWYgKGlzQmFpbG91dFRvQ1NSRXJyb3IoY2F1c2UpKSByZXR1cm5cblxuICByZXBvcnRHbG9iYWxFcnJvcihzdGl0Y2hlZEVycm9yKVxufVxuIl0sIm5hbWVzIjpbIm9uUmVjb3ZlcmFibGVFcnJvciIsImVycm9yIiwiZXJyb3JJbmZvIiwiY2F1c2UiLCJpc0Vycm9yIiwic3RpdGNoZWRFcnJvciIsImdldFJlYWN0U3RpdGNoZWRFcnJvciIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImNvbXBvbmVudFN0YWNrIiwiX2NvbXBvbmVudFN0YWNrIiwiaXNCYWlsb3V0VG9DU1JFcnJvciIsInJlcG9ydEdsb2JhbEVycm9yIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/react-client-callbacks/shared.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/remove-base-path.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/client/remove-base-path.js ***! + \***********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeBasePath\", ({\n enumerable: true,\n get: function() {\n return removeBasePath;\n }\n}));\nconst _hasbasepath = __webpack_require__(/*! ./has-base-path */ \"./node_modules/next/dist/client/has-base-path.js\");\nconst basePath = false || '';\nfunction removeBasePath(path) {\n if (false) {}\n // Can't trim the basePath if it has zero length!\n if (basePath.length === 0) return path;\n path = path.slice(basePath.length);\n if (!path.startsWith('/')) path = \"/\" + path;\n return path;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=remove-base-path.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZW1vdmUtYmFzZS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7a0RBSWdCQTs7O2VBQUFBOzs7eUNBSlk7QUFFNUIsTUFBTUMsV0FBWUMsTUFBa0MsSUFBZTtBQUU1RCxTQUFTRixlQUFlSyxJQUFZO0lBQ3pDLElBQUlILEtBQTBDLEVBQUUsRUFJL0M7SUFFRCxpREFBaUQ7SUFDakQsSUFBSUQsU0FBU08sTUFBTSxLQUFLLEdBQUcsT0FBT0g7SUFFbENBLE9BQU9BLEtBQUtJLEtBQUssQ0FBQ1IsU0FBU08sTUFBTTtJQUNqQyxJQUFJLENBQUNILEtBQUtLLFVBQVUsQ0FBQyxNQUFNTCxPQUFRLE1BQUdBO0lBQ3RDLE9BQU9BO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9jbGllbnQvcmVtb3ZlLWJhc2UtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoYXNCYXNlUGF0aCB9IGZyb20gJy4vaGFzLWJhc2UtcGF0aCdcblxuY29uc3QgYmFzZVBhdGggPSAocHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCBhcyBzdHJpbmcpIHx8ICcnXG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVCYXNlUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX01BTlVBTF9DTElFTlRfQkFTRV9QQVRIKSB7XG4gICAgaWYgKCFoYXNCYXNlUGF0aChwYXRoKSkge1xuICAgICAgcmV0dXJuIHBhdGhcbiAgICB9XG4gIH1cblxuICAvLyBDYW4ndCB0cmltIHRoZSBiYXNlUGF0aCBpZiBpdCBoYXMgemVybyBsZW5ndGghXG4gIGlmIChiYXNlUGF0aC5sZW5ndGggPT09IDApIHJldHVybiBwYXRoXG5cbiAgcGF0aCA9IHBhdGguc2xpY2UoYmFzZVBhdGgubGVuZ3RoKVxuICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpKSBwYXRoID0gYC8ke3BhdGh9YFxuICByZXR1cm4gcGF0aFxufVxuIl0sIm5hbWVzIjpbInJlbW92ZUJhc2VQYXRoIiwiYmFzZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX1JPVVRFUl9CQVNFUEFUSCIsInBhdGgiLCJfX05FWFRfTUFOVUFMX0NMSUVOVF9CQVNFX1BBVEgiLCJoYXNCYXNlUGF0aCIsImxlbmd0aCIsInNsaWNlIiwic3RhcnRzV2l0aCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/remove-base-path.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/remove-locale.js": +/*!********************************************************!*\ + !*** ./node_modules/next/dist/client/remove-locale.js ***! + \********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeLocale\", ({\n enumerable: true,\n get: function() {\n return removeLocale;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ../shared/lib/router/utils/parse-path */ \"./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction removeLocale(path, locale) {\n if (false) {}\n return path;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=remove-locale.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZW1vdmUtbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0RBRWdCQTs7O2VBQUFBOzs7dUNBRlU7QUFFbkIsU0FBU0EsYUFBYUMsSUFBWSxFQUFFQyxNQUFlO0lBQ3hELElBQUlDLEtBQStCLEVBQUUsRUFZcEM7SUFDRCxPQUFPRjtBQUNUIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvY2xpZW50L3JlbW92ZS1sb2NhbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcGF0aCdcblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUxvY2FsZShwYXRoOiBzdHJpbmcsIGxvY2FsZT86IHN0cmluZykge1xuICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgIGNvbnN0IHsgcGF0aG5hbWUgfSA9IHBhcnNlUGF0aChwYXRoKVxuICAgIGNvbnN0IHBhdGhMb3dlciA9IHBhdGhuYW1lLnRvTG93ZXJDYXNlKClcbiAgICBjb25zdCBsb2NhbGVMb3dlciA9IGxvY2FsZT8udG9Mb3dlckNhc2UoKVxuXG4gICAgcmV0dXJuIGxvY2FsZSAmJlxuICAgICAgKHBhdGhMb3dlci5zdGFydHNXaXRoKGAvJHtsb2NhbGVMb3dlcn0vYCkgfHxcbiAgICAgICAgcGF0aExvd2VyID09PSBgLyR7bG9jYWxlTG93ZXJ9YClcbiAgICAgID8gYCR7cGF0aG5hbWUubGVuZ3RoID09PSBsb2NhbGUubGVuZ3RoICsgMSA/IGAvYCA6IGBgfSR7cGF0aC5zbGljZShcbiAgICAgICAgICBsb2NhbGUubGVuZ3RoICsgMVxuICAgICAgICApfWBcbiAgICAgIDogcGF0aFxuICB9XG4gIHJldHVybiBwYXRoXG59XG4iXSwibmFtZXMiOlsicmVtb3ZlTG9jYWxlIiwicGF0aCIsImxvY2FsZSIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwicGF0aG5hbWUiLCJwYXJzZVBhdGgiLCJwYXRoTG93ZXIiLCJ0b0xvd2VyQ2FzZSIsImxvY2FsZUxvd2VyIiwic3RhcnRzV2l0aCIsImxlbmd0aCIsInNsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/remove-locale.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/request-idle-callback.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/client/request-idle-callback.js ***! + \****************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n cancelIdleCallback: function() {\n return cancelIdleCallback;\n },\n requestIdleCallback: function() {\n return requestIdleCallback;\n }\n});\nconst requestIdleCallback = typeof self !== 'undefined' && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) {\n let start = Date.now();\n return self.setTimeout(function() {\n cb({\n didTimeout: false,\n timeRemaining: function() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nconst cancelIdleCallback = typeof self !== 'undefined' && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) {\n return clearTimeout(id);\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=request-idle-callback.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXF1ZXN0LWlkbGUtY2FsbGJhY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBZ0JhQSxrQkFBa0I7ZUFBbEJBOztJQWhCQUMsbUJBQW1CO2VBQW5CQTs7O0FBQU4sTUFBTUEsc0JBQ1YsT0FBT0MsU0FBUyxlQUNmQSxLQUFLRCxtQkFBbUIsSUFDeEJDLEtBQUtELG1CQUFtQixDQUFDRSxJQUFJLENBQUNDLFdBQ2hDLFNBQVVDLEVBQXVCO0lBQy9CLElBQUlDLFFBQVFDLEtBQUtDLEdBQUc7SUFDcEIsT0FBT04sS0FBS08sVUFBVSxDQUFDO1FBQ3JCSixHQUFHO1lBQ0RLLFlBQVk7WUFDWkMsZUFBZTtnQkFDYixPQUFPQyxLQUFLQyxHQUFHLENBQUMsR0FBRyxLQUFNTixDQUFBQSxLQUFLQyxHQUFHLEtBQUtGLEtBQUFBLENBQUk7WUFDNUM7UUFDRjtJQUNGLEdBQUc7QUFDTDtBQUVLLE1BQU1OLHFCQUNWLE9BQU9FLFNBQVMsZUFDZkEsS0FBS0Ysa0JBQWtCLElBQ3ZCRSxLQUFLRixrQkFBa0IsQ0FBQ0csSUFBSSxDQUFDQyxXQUMvQixTQUFVVSxFQUFVO0lBQ2xCLE9BQU9DLGFBQWFEO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcmVxdWVzdElkbGVDYWxsYmFjayA9XG4gICh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICBzZWxmLnJlcXVlc3RJZGxlQ2FsbGJhY2sgJiZcbiAgICBzZWxmLnJlcXVlc3RJZGxlQ2FsbGJhY2suYmluZCh3aW5kb3cpKSB8fFxuICBmdW5jdGlvbiAoY2I6IElkbGVSZXF1ZXN0Q2FsbGJhY2spOiBudW1iZXIge1xuICAgIGxldCBzdGFydCA9IERhdGUubm93KClcbiAgICByZXR1cm4gc2VsZi5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgIGNiKHtcbiAgICAgICAgZGlkVGltZW91dDogZmFsc2UsXG4gICAgICAgIHRpbWVSZW1haW5pbmc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMCwgNTAgLSAoRGF0ZS5ub3coKSAtIHN0YXJ0KSlcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfSwgMSlcbiAgfVxuXG5leHBvcnQgY29uc3QgY2FuY2VsSWRsZUNhbGxiYWNrID1cbiAgKHR5cGVvZiBzZWxmICE9PSAndW5kZWZpbmVkJyAmJlxuICAgIHNlbGYuY2FuY2VsSWRsZUNhbGxiYWNrICYmXG4gICAgc2VsZi5jYW5jZWxJZGxlQ2FsbGJhY2suYmluZCh3aW5kb3cpKSB8fFxuICBmdW5jdGlvbiAoaWQ6IG51bWJlcikge1xuICAgIHJldHVybiBjbGVhclRpbWVvdXQoaWQpXG4gIH1cbiJdLCJuYW1lcyI6WyJjYW5jZWxJZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwic2VsZiIsImJpbmQiLCJ3aW5kb3ciLCJjYiIsInN0YXJ0IiwiRGF0ZSIsIm5vdyIsInNldFRpbWVvdXQiLCJkaWRUaW1lb3V0IiwidGltZVJlbWFpbmluZyIsIk1hdGgiLCJtYXgiLCJpZCIsImNsZWFyVGltZW91dCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/request-idle-callback.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/resolve-href.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/resolve-href.js ***! + \*******************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"resolveHref\", ({\n enumerable: true,\n get: function() {\n return resolveHref;\n }\n}));\nconst _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _omit = __webpack_require__(/*! ../shared/lib/router/utils/omit */ \"./node_modules/next/dist/shared/lib/router/utils/omit.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _utils1 = __webpack_require__(/*! ../shared/lib/router/utils */ \"./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _interpolateas = __webpack_require__(/*! ../shared/lib/router/utils/interpolate-as */ \"./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n let base;\n let urlAsString = typeof href === 'string' ? href : (0, _formaturl.formatWithValidation)(href);\n // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n const urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n const urlAsStringNoProto = urlProtoMatch ? urlAsString.slice(urlProtoMatch[0].length) : urlAsString;\n const urlParts = urlAsStringNoProto.split('?', 1);\n if ((urlParts[0] || '').match(/(\\/\\/|\\\\)/)) {\n console.error(\"Invalid href '\" + urlAsString + \"' passed to next/router in page: '\" + router.pathname + \"'. Repeated forward-slashes (//) or backslashes \\\\ are not valid in the href.\");\n const normalizedUrl = (0, _utils.normalizeRepeatedSlashes)(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : '') + normalizedUrl;\n }\n // Return because it cannot be routed by the Next.js router\n if (!(0, _islocalurl.isLocalURL)(urlAsString)) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n try {\n base = new URL(urlAsString.startsWith('#') ? router.asPath : router.pathname, 'http://n');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL('/', 'http://n');\n }\n try {\n const finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizetrailingslash.normalizePathTrailingSlash)(finalUrl.pathname);\n let interpolatedAs = '';\n if ((0, _utils1.isDynamicRoute)(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n const query = (0, _querystring.searchParamsToUrlQuery)(finalUrl.searchParams);\n const { result, params } = (0, _interpolateas.interpolateAs)(finalUrl.pathname, finalUrl.pathname, query);\n if (result) {\n interpolatedAs = (0, _formaturl.formatWithValidation)({\n pathname: result,\n hash: finalUrl.hash,\n query: (0, _omit.omit)(query, params)\n });\n }\n }\n // if the origin didn't change, it means we received a relative href\n const resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [\n resolvedHref,\n interpolatedAs || resolvedHref\n ] : resolvedHref;\n } catch (_) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=resolve-href.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yZXNvbHZlLWhyZWYuanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0F5QmdCQTs7O2VBQUFBOzs7eUNBdkJ1Qjt1Q0FDRjtrQ0FDaEI7bUNBQ29CO29EQUNFO3dDQUNoQjtvQ0FDSTsyQ0FDRDtBQWdCdkIsU0FBU0EsWUFDZEMsTUFBa0IsRUFDbEJDLElBQVMsRUFDVEMsU0FBbUI7SUFFbkIsNENBQTRDO0lBQzVDLElBQUlDO0lBQ0osSUFBSUMsY0FBYyxPQUFPSCxTQUFTLFdBQVdBLE9BQU9JLENBQUFBLEdBQUFBLFdBQUFBLG9CQUFBQSxFQUFxQko7SUFFekUsNkRBQTZEO0lBQzdELG1EQUFtRDtJQUNuRCxNQUFNSyxnQkFBZ0JGLFlBQVlHLEtBQUssQ0FBQztJQUN4QyxNQUFNQyxxQkFBcUJGLGdCQUN2QkYsWUFBWUssS0FBSyxDQUFDSCxhQUFhLENBQUMsRUFBRSxDQUFDSSxNQUFNLElBQ3pDTjtJQUVKLE1BQU1PLFdBQVdILG1CQUFtQkksS0FBSyxDQUFDLEtBQUs7SUFFL0MsSUFBS0QsQ0FBQUEsUUFBUSxDQUFDLEVBQUUsSUFBSSxHQUFDLENBQUdKLEtBQUssQ0FBQyxjQUFjO1FBQzFDTSxRQUFRQyxLQUFLLENBQ1YsbUJBQWdCVixjQUFZLHVDQUFvQ0osT0FBT2UsUUFBUSxHQUFDO1FBRW5GLE1BQU1DLGdCQUFnQkMsQ0FBQUEsR0FBQUEsT0FBQUEsd0JBQUFBLEVBQXlCVDtRQUMvQ0osY0FBZUUsQ0FBQUEsZ0JBQWdCQSxhQUFhLENBQUMsRUFBRSxHQUFHLEdBQUMsR0FBS1U7SUFDMUQ7SUFFQSwyREFBMkQ7SUFDM0QsSUFBSSxDQUFDRSxDQUFBQSxHQUFBQSxZQUFBQSxVQUFBQSxFQUFXZCxjQUFjO1FBQzVCLE9BQVFGLFlBQVk7WUFBQ0U7U0FBWSxHQUFHQTtJQUN0QztJQUVBLElBQUk7UUFDRkQsT0FBTyxJQUFJZ0IsSUFDVGYsWUFBWWdCLFVBQVUsQ0FBQyxPQUFPcEIsT0FBT3FCLE1BQU0sR0FBR3JCLE9BQU9lLFFBQVEsRUFDN0Q7SUFFSixFQUFFLE9BQU9PLEdBQUc7UUFDVixrREFBa0Q7UUFDbERuQixPQUFPLElBQUlnQixJQUFJLEtBQUs7SUFDdEI7SUFFQSxJQUFJO1FBQ0YsTUFBTUksV0FBVyxJQUFJSixJQUFJZixhQUFhRDtRQUN0Q29CLFNBQVNSLFFBQVEsR0FBR1MsQ0FBQUEsR0FBQUEsd0JBQUFBLDBCQUFBQSxFQUEyQkQsU0FBU1IsUUFBUTtRQUNoRSxJQUFJVSxpQkFBaUI7UUFFckIsSUFDRUMsQ0FBQUEsR0FBQUEsUUFBQUEsY0FBQUEsRUFBZUgsU0FBU1IsUUFBUSxLQUNoQ1EsU0FBU0ksWUFBWSxJQUNyQnpCLFdBQ0E7WUFDQSxNQUFNMEIsUUFBUUMsQ0FBQUEsR0FBQUEsYUFBQUEsc0JBQUFBLEVBQXVCTixTQUFTSSxZQUFZO1lBRTFELE1BQU0sRUFBRUcsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFDekJULFNBQVNSLFFBQVEsRUFDakJRLFNBQVNSLFFBQVEsRUFDakJhO1lBR0YsSUFBSUUsUUFBUTtnQkFDVkwsaUJBQWlCcEIsQ0FBQUEsR0FBQUEsV0FBQUEsb0JBQUFBLEVBQXFCO29CQUNwQ1UsVUFBVWU7b0JBQ1ZHLE1BQU1WLFNBQVNVLElBQUk7b0JBQ25CTCxPQUFPTSxDQUFBQSxHQUFBQSxNQUFBQSxJQUFBQSxFQUFLTixPQUFPRztnQkFDckI7WUFDRjtRQUNGO1FBRUEsb0VBQW9FO1FBQ3BFLE1BQU1JLGVBQ0paLFNBQVNhLE1BQU0sS0FBS2pDLEtBQUtpQyxNQUFNLEdBQzNCYixTQUFTdEIsSUFBSSxDQUFDUSxLQUFLLENBQUNjLFNBQVNhLE1BQU0sQ0FBQzFCLE1BQU0sSUFDMUNhLFNBQVN0QixJQUFJO1FBRW5CLE9BQU9DLFlBQ0g7WUFBQ2lDO1lBQWNWLGtCQUFrQlU7U0FBYSxHQUM5Q0E7SUFDTixFQUFFLE9BQU9iLEdBQUc7UUFDVixPQUFPcEIsWUFBWTtZQUFDRTtTQUFZLEdBQUdBO0lBQ3JDO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9jbGllbnQvcmVzb2x2ZS1ocmVmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciwgVXJsIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvcm91dGVyJ1xuXG5pbXBvcnQgeyBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcnXG5pbXBvcnQgeyBmb3JtYXRXaXRoVmFsaWRhdGlvbiB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwnXG5pbXBvcnQgeyBvbWl0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvb21pdCdcbmltcG9ydCB7IG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5pbXBvcnQgeyBub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCB9IGZyb20gJy4vbm9ybWFsaXplLXRyYWlsaW5nLXNsYXNoJ1xuaW1wb3J0IHsgaXNMb2NhbFVSTCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWxvY2FsLXVybCdcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMnXG5pbXBvcnQgeyBpbnRlcnBvbGF0ZUFzIH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMnXG5cbi8qKlxuICogUmVzb2x2ZXMgYSBnaXZlbiBoeXBlcmxpbmsgd2l0aCBhIGNlcnRhaW4gcm91dGVyIHN0YXRlIChiYXNlUGF0aCBub3QgaW5jbHVkZWQpLlxuICogUHJlc2VydmVzIGFic29sdXRlIHVybHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSHJlZihcbiAgcm91dGVyOiBOZXh0Um91dGVyLFxuICBocmVmOiBVcmwsXG4gIHJlc29sdmVBczogdHJ1ZVxuKTogW3N0cmluZywgc3RyaW5nXSB8IFtzdHJpbmddXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhyZWYoXG4gIHJvdXRlcjogTmV4dFJvdXRlcixcbiAgaHJlZjogVXJsLFxuICByZXNvbHZlQXM/OiBmYWxzZVxuKTogc3RyaW5nXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUhyZWYoXG4gIHJvdXRlcjogTmV4dFJvdXRlcixcbiAgaHJlZjogVXJsLFxuICByZXNvbHZlQXM/OiBib29sZWFuXG4pOiBbc3RyaW5nLCBzdHJpbmddIHwgW3N0cmluZ10gfCBzdHJpbmcge1xuICAvLyB3ZSB1c2UgYSBkdW1teSBiYXNlIHVybCBmb3IgcmVsYXRpdmUgdXJsc1xuICBsZXQgYmFzZTogVVJMXG4gIGxldCB1cmxBc1N0cmluZyA9IHR5cGVvZiBocmVmID09PSAnc3RyaW5nJyA/IGhyZWYgOiBmb3JtYXRXaXRoVmFsaWRhdGlvbihocmVmKVxuXG4gIC8vIHJlcGVhdGVkIHNsYXNoZXMgYW5kIGJhY2tzbGFzaGVzIGluIHRoZSBVUkwgYXJlIGNvbnNpZGVyZWRcbiAgLy8gaW52YWxpZCBhbmQgd2lsbCBuZXZlciBtYXRjaCBhIE5leHQuanMgcGFnZS9maWxlXG4gIGNvbnN0IHVybFByb3RvTWF0Y2ggPSB1cmxBc1N0cmluZy5tYXRjaCgvXlthLXpBLVpdezEsfTpcXC9cXC8vKVxuICBjb25zdCB1cmxBc1N0cmluZ05vUHJvdG8gPSB1cmxQcm90b01hdGNoXG4gICAgPyB1cmxBc1N0cmluZy5zbGljZSh1cmxQcm90b01hdGNoWzBdLmxlbmd0aClcbiAgICA6IHVybEFzU3RyaW5nXG5cbiAgY29uc3QgdXJsUGFydHMgPSB1cmxBc1N0cmluZ05vUHJvdG8uc3BsaXQoJz8nLCAxKVxuXG4gIGlmICgodXJsUGFydHNbMF0gfHwgJycpLm1hdGNoKC8oXFwvXFwvfFxcXFwpLykpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgYEludmFsaWQgaHJlZiAnJHt1cmxBc1N0cmluZ30nIHBhc3NlZCB0byBuZXh0L3JvdXRlciBpbiBwYWdlOiAnJHtyb3V0ZXIucGF0aG5hbWV9Jy4gUmVwZWF0ZWQgZm9yd2FyZC1zbGFzaGVzICgvLykgb3IgYmFja3NsYXNoZXMgXFxcXCBhcmUgbm90IHZhbGlkIGluIHRoZSBocmVmLmBcbiAgICApXG4gICAgY29uc3Qgbm9ybWFsaXplZFVybCA9IG5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyh1cmxBc1N0cmluZ05vUHJvdG8pXG4gICAgdXJsQXNTdHJpbmcgPSAodXJsUHJvdG9NYXRjaCA/IHVybFByb3RvTWF0Y2hbMF0gOiAnJykgKyBub3JtYWxpemVkVXJsXG4gIH1cblxuICAvLyBSZXR1cm4gYmVjYXVzZSBpdCBjYW5ub3QgYmUgcm91dGVkIGJ5IHRoZSBOZXh0LmpzIHJvdXRlclxuICBpZiAoIWlzTG9jYWxVUkwodXJsQXNTdHJpbmcpKSB7XG4gICAgcmV0dXJuIChyZXNvbHZlQXMgPyBbdXJsQXNTdHJpbmddIDogdXJsQXNTdHJpbmcpIGFzIHN0cmluZ1xuICB9XG5cbiAgdHJ5IHtcbiAgICBiYXNlID0gbmV3IFVSTChcbiAgICAgIHVybEFzU3RyaW5nLnN0YXJ0c1dpdGgoJyMnKSA/IHJvdXRlci5hc1BhdGggOiByb3V0ZXIucGF0aG5hbWUsXG4gICAgICAnaHR0cDovL24nXG4gICAgKVxuICB9IGNhdGNoIChfKSB7XG4gICAgLy8gZmFsbGJhY2sgdG8gLyBmb3IgaW52YWxpZCBhc1BhdGggdmFsdWVzIGUuZy4gLy9cbiAgICBiYXNlID0gbmV3IFVSTCgnLycsICdodHRwOi8vbicpXG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IGZpbmFsVXJsID0gbmV3IFVSTCh1cmxBc1N0cmluZywgYmFzZSlcbiAgICBmaW5hbFVybC5wYXRobmFtZSA9IG5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoKGZpbmFsVXJsLnBhdGhuYW1lKVxuICAgIGxldCBpbnRlcnBvbGF0ZWRBcyA9ICcnXG5cbiAgICBpZiAoXG4gICAgICBpc0R5bmFtaWNSb3V0ZShmaW5hbFVybC5wYXRobmFtZSkgJiZcbiAgICAgIGZpbmFsVXJsLnNlYXJjaFBhcmFtcyAmJlxuICAgICAgcmVzb2x2ZUFzXG4gICAgKSB7XG4gICAgICBjb25zdCBxdWVyeSA9IHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoZmluYWxVcmwuc2VhcmNoUGFyYW1zKVxuXG4gICAgICBjb25zdCB7IHJlc3VsdCwgcGFyYW1zIH0gPSBpbnRlcnBvbGF0ZUFzKFxuICAgICAgICBmaW5hbFVybC5wYXRobmFtZSxcbiAgICAgICAgZmluYWxVcmwucGF0aG5hbWUsXG4gICAgICAgIHF1ZXJ5XG4gICAgICApXG5cbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgaW50ZXJwb2xhdGVkQXMgPSBmb3JtYXRXaXRoVmFsaWRhdGlvbih7XG4gICAgICAgICAgcGF0aG5hbWU6IHJlc3VsdCxcbiAgICAgICAgICBoYXNoOiBmaW5hbFVybC5oYXNoLFxuICAgICAgICAgIHF1ZXJ5OiBvbWl0KHF1ZXJ5LCBwYXJhbXMpLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGlmIHRoZSBvcmlnaW4gZGlkbid0IGNoYW5nZSwgaXQgbWVhbnMgd2UgcmVjZWl2ZWQgYSByZWxhdGl2ZSBocmVmXG4gICAgY29uc3QgcmVzb2x2ZWRIcmVmID1cbiAgICAgIGZpbmFsVXJsLm9yaWdpbiA9PT0gYmFzZS5vcmlnaW5cbiAgICAgICAgPyBmaW5hbFVybC5ocmVmLnNsaWNlKGZpbmFsVXJsLm9yaWdpbi5sZW5ndGgpXG4gICAgICAgIDogZmluYWxVcmwuaHJlZlxuXG4gICAgcmV0dXJuIHJlc29sdmVBc1xuICAgICAgPyBbcmVzb2x2ZWRIcmVmLCBpbnRlcnBvbGF0ZWRBcyB8fCByZXNvbHZlZEhyZWZdXG4gICAgICA6IHJlc29sdmVkSHJlZlxuICB9IGNhdGNoIChfKSB7XG4gICAgcmV0dXJuIHJlc29sdmVBcyA/IFt1cmxBc1N0cmluZ10gOiB1cmxBc1N0cmluZ1xuICB9XG59XG4iXSwibmFtZXMiOlsicmVzb2x2ZUhyZWYiLCJyb3V0ZXIiLCJocmVmIiwicmVzb2x2ZUFzIiwiYmFzZSIsInVybEFzU3RyaW5nIiwiZm9ybWF0V2l0aFZhbGlkYXRpb24iLCJ1cmxQcm90b01hdGNoIiwibWF0Y2giLCJ1cmxBc1N0cmluZ05vUHJvdG8iLCJzbGljZSIsImxlbmd0aCIsInVybFBhcnRzIiwic3BsaXQiLCJjb25zb2xlIiwiZXJyb3IiLCJwYXRobmFtZSIsIm5vcm1hbGl6ZWRVcmwiLCJub3JtYWxpemVSZXBlYXRlZFNsYXNoZXMiLCJpc0xvY2FsVVJMIiwiVVJMIiwic3RhcnRzV2l0aCIsImFzUGF0aCIsIl8iLCJmaW5hbFVybCIsIm5vcm1hbGl6ZVBhdGhUcmFpbGluZ1NsYXNoIiwiaW50ZXJwb2xhdGVkQXMiLCJpc0R5bmFtaWNSb3V0ZSIsInNlYXJjaFBhcmFtcyIsInF1ZXJ5Iiwic2VhcmNoUGFyYW1zVG9VcmxRdWVyeSIsInJlc3VsdCIsInBhcmFtcyIsImludGVycG9sYXRlQXMiLCJoYXNoIiwib21pdCIsInJlc29sdmVkSHJlZiIsIm9yaWdpbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/resolve-href.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/route-announcer.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/client/route-announcer.js ***! + \**********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n RouteAnnouncer: function() {\n return RouteAnnouncer;\n },\n default: function() {\n return _default;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\nconst nextjsRouteAnnouncerStyles = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 0,\n width: '1px',\n // https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n};\nconst RouteAnnouncer = ()=>{\n _s();\n const { asPath } = (0, _router.useRouter)();\n const [routeAnnouncement, setRouteAnnouncement] = _react.default.useState('');\n // Only announce the path change, but not for the first load because screen\n // reader will do that automatically.\n const previouslyLoadedPath = _react.default.useRef(asPath);\n // Every time the path changes, announce the new page’s title following this\n // priority: first the document title (from head), otherwise the first h1, or\n // if none of these exist, then the pathname from the URL. This methodology is\n // inspired by Marcy Sutton’s accessible client routing user testing. More\n // information can be found here:\n // https://www.gatsbyjs.com/blog/2019-07-11-user-testing-accessible-client-routing/\n _react.default.useEffect({\n \"RouteAnnouncer.useEffect\": ()=>{\n // If the path hasn't change, we do nothing.\n if (previouslyLoadedPath.current === asPath) return;\n previouslyLoadedPath.current = asPath;\n if (document.title) {\n setRouteAnnouncement(document.title);\n } else {\n const pageHeader = document.querySelector('h1');\n var _pageHeader_innerText;\n const content = (_pageHeader_innerText = pageHeader == null ? void 0 : pageHeader.innerText) != null ? _pageHeader_innerText : pageHeader == null ? void 0 : pageHeader.textContent;\n setRouteAnnouncement(content || asPath);\n }\n }\n }[\"RouteAnnouncer.useEffect\"], [\n asPath\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"p\", {\n \"aria-live\": \"assertive\" // Make the announcement immediately.\n ,\n id: \"__next-route-announcer__\",\n role: \"alert\",\n style: nextjsRouteAnnouncerStyles,\n children: routeAnnouncement\n });\n};\n_s(RouteAnnouncer, \"/W0p/lKvDcDf5qahTtmgH0KR5eY=\");\n_c = RouteAnnouncer;\nconst _default = RouteAnnouncer;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=route-announcer.js.map\nvar _c;\n$RefreshReg$(_c, \"RouteAnnouncer\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1hbm5vdW5jZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7SUFtQmFBLGNBQWM7ZUFBZEE7O0lBNkNiLE9BQTZCO2VBQTdCOzs7Ozs0RUFoRWtCO29DQUNRO0FBRTFCLE1BQU1DLDZCQUFrRDtJQUN0REMsUUFBUTtJQUNSQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLFNBQVM7SUFDVEMsVUFBVTtJQUNWQyxLQUFLO0lBQ0xDLE9BQU87SUFFUCx3RkFBd0Y7SUFDeEZDLFlBQVk7SUFDWkMsVUFBVTtBQUNaO0FBRU8sdUJBQXVCOztJQUM1QixNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxRQUFBQSxTQUFTO0lBQzVCLE1BQU0sQ0FBQ0MsbUJBQW1CQyxxQkFBcUIsR0FBR0MsT0FBQUEsT0FBSyxDQUFDQyxRQUFRLENBQUM7SUFFakUsMkVBQTJFO0lBQzNFLHFDQUFxQztJQUNyQyxNQUFNQyx1QkFBdUJGLE9BQUFBLE9BQUssQ0FBQ0csTUFBTSxDQUFDUDtJQUUxQyw0RUFBNEU7SUFDNUUsNkVBQTZFO0lBQzdFLDhFQUE4RTtJQUM5RSwwRUFBMEU7SUFDMUUsaUNBQWlDO0lBQ2pDLG1GQUFtRjtJQUNuRkksT0FBQUEsT0FBSyxDQUFDSSxTQUFTO29DQUNiO1lBQ0UsNENBQTRDO1lBQzVDLElBQUlGLHFCQUFxQkcsT0FBTyxLQUFLVCxRQUFRO1lBQzdDTSxxQkFBcUJHLE9BQU8sR0FBR1Q7WUFFL0IsSUFBSVUsU0FBU0MsS0FBSyxFQUFFO2dCQUNsQlIscUJBQXFCTyxTQUFTQyxLQUFLO1lBQ3JDLE9BQU87Z0JBQ0wsTUFBTUMsYUFBYUYsU0FBU0csYUFBYSxDQUFDO29CQUMxQkQ7Z0JBQWhCLE1BQU1FLFVBQVVGLENBQUFBLHdCQUFBQSxjQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxXQUFZRyxTQUFBQSxLQUFTLE9BQXJCSCx3QkFBeUJBLGNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFdBQVlJLFdBQVc7Z0JBRWhFYixxQkFBcUJXLFdBQVdkO1lBQ2xDO1FBQ0Y7bUNBRUE7UUFBQ0E7S0FBTztJQUdWLHFCQUNFLHFCQUFDaUIsS0FBQUE7UUFDQ0MsYUFBVSxZQUFZLHFDQUFxQzs7UUFDM0RDLElBQUc7UUFDSEMsTUFBSztRQUNMQyxPQUFPakM7a0JBRU5jOztBQUdQOztLQTNDYWY7TUE2Q2IsV0FBZUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9jbGllbnQvcm91dGUtYW5ub3VuY2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tICcuL3JvdXRlcidcblxuY29uc3QgbmV4dGpzUm91dGVBbm5vdW5jZXJTdHlsZXM6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7XG4gIGJvcmRlcjogMCxcbiAgY2xpcDogJ3JlY3QoMCAwIDAgMCknLFxuICBoZWlnaHQ6ICcxcHgnLFxuICBtYXJnaW46ICctMXB4JyxcbiAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICBwYWRkaW5nOiAwLFxuICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgdG9wOiAwLFxuICB3aWR0aDogJzFweCcsXG5cbiAgLy8gaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICB3aGl0ZVNwYWNlOiAnbm93cmFwJyxcbiAgd29yZFdyYXA6ICdub3JtYWwnLFxufVxuXG5leHBvcnQgY29uc3QgUm91dGVBbm5vdW5jZXIgPSAoKSA9PiB7XG4gIGNvbnN0IHsgYXNQYXRoIH0gPSB1c2VSb3V0ZXIoKVxuICBjb25zdCBbcm91dGVBbm5vdW5jZW1lbnQsIHNldFJvdXRlQW5ub3VuY2VtZW50XSA9IFJlYWN0LnVzZVN0YXRlKCcnKVxuXG4gIC8vIE9ubHkgYW5ub3VuY2UgdGhlIHBhdGggY2hhbmdlLCBidXQgbm90IGZvciB0aGUgZmlyc3QgbG9hZCBiZWNhdXNlIHNjcmVlblxuICAvLyByZWFkZXIgd2lsbCBkbyB0aGF0IGF1dG9tYXRpY2FsbHkuXG4gIGNvbnN0IHByZXZpb3VzbHlMb2FkZWRQYXRoID0gUmVhY3QudXNlUmVmKGFzUGF0aClcblxuICAvLyBFdmVyeSB0aW1lIHRoZSBwYXRoIGNoYW5nZXMsIGFubm91bmNlIHRoZSBuZXcgcGFnZeKAmXMgdGl0bGUgZm9sbG93aW5nIHRoaXNcbiAgLy8gcHJpb3JpdHk6IGZpcnN0IHRoZSBkb2N1bWVudCB0aXRsZSAoZnJvbSBoZWFkKSwgb3RoZXJ3aXNlIHRoZSBmaXJzdCBoMSwgb3JcbiAgLy8gaWYgbm9uZSBvZiB0aGVzZSBleGlzdCwgdGhlbiB0aGUgcGF0aG5hbWUgZnJvbSB0aGUgVVJMLiBUaGlzIG1ldGhvZG9sb2d5IGlzXG4gIC8vIGluc3BpcmVkIGJ5IE1hcmN5IFN1dHRvbuKAmXMgYWNjZXNzaWJsZSBjbGllbnQgcm91dGluZyB1c2VyIHRlc3RpbmcuIE1vcmVcbiAgLy8gaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGhlcmU6XG4gIC8vIGh0dHBzOi8vd3d3LmdhdHNieWpzLmNvbS9ibG9nLzIwMTktMDctMTEtdXNlci10ZXN0aW5nLWFjY2Vzc2libGUtY2xpZW50LXJvdXRpbmcvXG4gIFJlYWN0LnVzZUVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICAvLyBJZiB0aGUgcGF0aCBoYXNuJ3QgY2hhbmdlLCB3ZSBkbyBub3RoaW5nLlxuICAgICAgaWYgKHByZXZpb3VzbHlMb2FkZWRQYXRoLmN1cnJlbnQgPT09IGFzUGF0aCkgcmV0dXJuXG4gICAgICBwcmV2aW91c2x5TG9hZGVkUGF0aC5jdXJyZW50ID0gYXNQYXRoXG5cbiAgICAgIGlmIChkb2N1bWVudC50aXRsZSkge1xuICAgICAgICBzZXRSb3V0ZUFubm91bmNlbWVudChkb2N1bWVudC50aXRsZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHBhZ2VIZWFkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoMScpXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBwYWdlSGVhZGVyPy5pbm5lclRleHQgPz8gcGFnZUhlYWRlcj8udGV4dENvbnRlbnRcblxuICAgICAgICBzZXRSb3V0ZUFubm91bmNlbWVudChjb250ZW50IHx8IGFzUGF0aClcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIFRPRE86IHN3aXRjaCB0byBwYXRobmFtZSArIHF1ZXJ5IG9iamVjdCBvZiBkeW5hbWljIHJvdXRlIHJlcXVpcmVtZW50c1xuICAgIFthc1BhdGhdXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxwXG4gICAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIiAvLyBNYWtlIHRoZSBhbm5vdW5jZW1lbnQgaW1tZWRpYXRlbHkuXG4gICAgICBpZD1cIl9fbmV4dC1yb3V0ZS1hbm5vdW5jZXJfX1wiXG4gICAgICByb2xlPVwiYWxlcnRcIlxuICAgICAgc3R5bGU9e25leHRqc1JvdXRlQW5ub3VuY2VyU3R5bGVzfVxuICAgID5cbiAgICAgIHtyb3V0ZUFubm91bmNlbWVudH1cbiAgICA8L3A+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgUm91dGVBbm5vdW5jZXJcbiJdLCJuYW1lcyI6WyJSb3V0ZUFubm91bmNlciIsIm5leHRqc1JvdXRlQW5ub3VuY2VyU3R5bGVzIiwiYm9yZGVyIiwiY2xpcCIsImhlaWdodCIsIm1hcmdpbiIsIm92ZXJmbG93IiwicGFkZGluZyIsInBvc2l0aW9uIiwidG9wIiwid2lkdGgiLCJ3aGl0ZVNwYWNlIiwid29yZFdyYXAiLCJhc1BhdGgiLCJ1c2VSb3V0ZXIiLCJyb3V0ZUFubm91bmNlbWVudCIsInNldFJvdXRlQW5ub3VuY2VtZW50IiwiUmVhY3QiLCJ1c2VTdGF0ZSIsInByZXZpb3VzbHlMb2FkZWRQYXRoIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImRvY3VtZW50IiwidGl0bGUiLCJwYWdlSGVhZGVyIiwicXVlcnlTZWxlY3RvciIsImNvbnRlbnQiLCJpbm5lclRleHQiLCJ0ZXh0Q29udGVudCIsInAiLCJhcmlhLWxpdmUiLCJpZCIsInJvbGUiLCJzdHlsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-announcer.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/route-loader.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/client/route-loader.js ***! + \*******************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createRouteLoader: function() {\n return createRouteLoader;\n },\n getClientBuildManifest: function() {\n return getClientBuildManifest;\n },\n isAssetError: function() {\n return isAssetError;\n },\n markAssetError: function() {\n return markAssetError;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _getassetpathfromroute = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/router/utils/get-asset-path-from-route */ \"./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\"));\nconst _trustedtypes = __webpack_require__(/*! ./trusted-types */ \"./node_modules/next/dist/client/trusted-types.js\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\nconst _deploymentid = __webpack_require__(/*! ../build/deployment-id */ \"./node_modules/next/dist/build/deployment-id.js\");\nconst _encodeuripath = __webpack_require__(/*! ../shared/lib/encode-uri-path */ \"./node_modules/next/dist/shared/lib/encode-uri-path.js\");\n// 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\nconst MS_MAX_IDLE_DELAY = 3800;\nfunction withFuture(key, map, generator) {\n let entry = map.get(key);\n if (entry) {\n if ('future' in entry) {\n return entry.future;\n }\n return Promise.resolve(entry);\n }\n let resolver;\n const prom = new Promise((resolve)=>{\n resolver = resolve;\n });\n map.set(key, {\n resolve: resolver,\n future: prom\n });\n return generator ? generator().then((value)=>{\n resolver(value);\n return value;\n }).catch((err)=>{\n map.delete(key);\n throw err;\n }) : prom;\n}\nconst ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR');\nfunction markAssetError(err) {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {});\n}\nfunction isAssetError(err) {\n return err && ASSET_LOAD_ERROR in err;\n}\nfunction hasPrefetch(link) {\n try {\n link = document.createElement('link');\n return(// with relList.support\n !!window.MSInputMethodContext && !!document.documentMode || link.relList.supports('prefetch'));\n } catch (e) {\n return false;\n }\n}\nconst canPrefetch = hasPrefetch();\nconst getAssetQueryString = ()=>{\n return (0, _deploymentid.getDeploymentIdQueryOrEmptyString)();\n};\nfunction prefetchViaDom(href, as, link) {\n return new Promise((resolve, reject)=>{\n const selector = '\\n link[rel=\"prefetch\"][href^=\"' + href + '\"],\\n link[rel=\"preload\"][href^=\"' + href + '\"],\\n script[src^=\"' + href + '\"]';\n if (document.querySelector(selector)) {\n return resolve();\n }\n link = document.createElement('link');\n // The order of property assignment here is intentional:\n if (as) link.as = as;\n link.rel = \"prefetch\";\n link.crossOrigin = undefined;\n link.onload = resolve;\n link.onerror = ()=>reject(markAssetError(new Error(\"Failed to prefetch: \" + href)));\n // `href` should always be last:\n link.href = href;\n document.head.appendChild(link);\n });\n}\nfunction appendScript(src, script) {\n return new Promise((resolve, reject)=>{\n script = document.createElement('script');\n // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n script.onload = resolve;\n script.onerror = ()=>reject(markAssetError(new Error(\"Failed to load script: \" + src)));\n // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n script.crossOrigin = undefined;\n // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n script.src = src;\n document.body.appendChild(script);\n });\n}\n// We wait for pages to be built in dev before we start the route transition\n// timeout to prevent an un-necessary hard navigation in development.\nlet devBuildPromise;\n// Resolve a promise that times out after given amount of milliseconds.\nfunction resolvePromiseWithTimeout(p, ms, err) {\n return new Promise((resolve, reject)=>{\n let cancelled = false;\n p.then((r)=>{\n // Resolved, cancel the timeout\n cancelled = true;\n resolve(r);\n }).catch(reject);\n // We wrap these checks separately for better dead-code elimination in\n // production bundles.\n if (true) {\n ;\n (devBuildPromise || Promise.resolve()).then(()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>setTimeout(()=>{\n if (!cancelled) {\n reject(err);\n }\n }, ms));\n });\n }\n if (false) {}\n });\n}\nfunction getClientBuildManifest() {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST);\n }\n const onBuildManifest = new Promise((resolve)=>{\n // Mandatory because this is not concurrent safe:\n const cb = self.__BUILD_MANIFEST_CB;\n self.__BUILD_MANIFEST_CB = ()=>{\n resolve(self.__BUILD_MANIFEST);\n cb && cb();\n };\n });\n return resolvePromiseWithTimeout(onBuildManifest, MS_MAX_IDLE_DELAY, markAssetError(new Error('Failed to load client build manifest')));\n}\nfunction getFilesForRoute(assetPrefix, route) {\n if (true) {\n const scriptUrl = assetPrefix + '/_next/static/chunks/pages' + (0, _encodeuripath.encodeURIPath)((0, _getassetpathfromroute.default)(route, '.js')) + getAssetQueryString();\n return Promise.resolve({\n scripts: [\n (0, _trustedtypes.__unsafeCreateTrustedScriptURL)(scriptUrl)\n ],\n // Styles are handled by `style-loader` in development:\n css: []\n });\n }\n return getClientBuildManifest().then((manifest)=>{\n if (!(route in manifest)) {\n throw markAssetError(new Error(\"Failed to lookup route: \" + route));\n }\n const allFiles = manifest[route].map((entry)=>assetPrefix + '/_next/' + (0, _encodeuripath.encodeURIPath)(entry));\n return {\n scripts: allFiles.filter((v)=>v.endsWith('.js')).map((v)=>(0, _trustedtypes.__unsafeCreateTrustedScriptURL)(v) + getAssetQueryString()),\n css: allFiles.filter((v)=>v.endsWith('.css')).map((v)=>v + getAssetQueryString())\n };\n });\n}\nfunction createRouteLoader(assetPrefix) {\n const entrypoints = new Map();\n const loadedScripts = new Map();\n const styleSheets = new Map();\n const routes = new Map();\n function maybeExecuteScript(src) {\n // With HMR we might need to \"reload\" scripts when they are\n // disposed and readded. Executing scripts twice has no functional\n // differences\n if (false) {} else {\n return appendScript(src);\n }\n }\n function fetchStyleSheet(href) {\n let prom = styleSheets.get(href);\n if (prom) {\n return prom;\n }\n styleSheets.set(href, prom = fetch(href, {\n credentials: 'same-origin'\n }).then((res)=>{\n if (!res.ok) {\n throw new Error(\"Failed to load stylesheet: \" + href);\n }\n return res.text().then((text)=>({\n href: href,\n content: text\n }));\n }).catch((err)=>{\n throw markAssetError(err);\n }));\n return prom;\n }\n return {\n whenEntrypoint (route) {\n return withFuture(route, entrypoints);\n },\n onEntrypoint (route, execute) {\n ;\n (execute ? Promise.resolve().then(()=>execute()).then((exports1)=>({\n component: exports1 && exports1.default || exports1,\n exports: exports1\n }), (err)=>({\n error: err\n })) : Promise.resolve(undefined)).then((input)=>{\n const old = entrypoints.get(route);\n if (old && 'resolve' in old) {\n if (input) {\n entrypoints.set(route, input);\n old.resolve(input);\n }\n } else {\n if (input) {\n entrypoints.set(route, input);\n } else {\n entrypoints.delete(route);\n }\n // when this entrypoint has been resolved before\n // the route is outdated and we want to invalidate\n // this cache entry\n routes.delete(route);\n }\n });\n },\n loadRoute (route, prefetch) {\n return withFuture(route, routes, ()=>{\n let devBuildPromiseResolve;\n if (true) {\n devBuildPromise = new Promise((resolve)=>{\n devBuildPromiseResolve = resolve;\n });\n }\n return resolvePromiseWithTimeout(getFilesForRoute(assetPrefix, route).then((param)=>{\n let { scripts, css } = param;\n return Promise.all([\n entrypoints.has(route) ? [] : Promise.all(scripts.map(maybeExecuteScript)),\n Promise.all(css.map(fetchStyleSheet))\n ]);\n }).then((res)=>{\n return this.whenEntrypoint(route).then((entrypoint)=>({\n entrypoint,\n styles: res[1]\n }));\n }), MS_MAX_IDLE_DELAY, markAssetError(new Error(\"Route did not complete loading: \" + route))).then((param)=>{\n let { entrypoint, styles } = param;\n const res = Object.assign({\n styles: styles\n }, entrypoint);\n return 'error' in entrypoint ? entrypoint : res;\n }).catch((err)=>{\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err;\n }\n return {\n error: err\n };\n }).finally(()=>devBuildPromiseResolve == null ? void 0 : devBuildPromiseResolve());\n });\n },\n prefetch (route) {\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n let cn;\n if (cn = navigator.connection) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve();\n }\n return getFilesForRoute(assetPrefix, route).then((output)=>Promise.all(canPrefetch ? output.scripts.map((script)=>prefetchViaDom(script.toString(), 'script')) : [])).then(()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>this.loadRoute(route, true).catch(()=>{}));\n }).catch(()=>{});\n }\n };\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=route-loader.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZS1sb2FkZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBaVNnQkEsaUJBQWlCO2VBQWpCQTs7SUEzREFDLHNCQUFzQjtlQUF0QkE7O0lBbklBQyxZQUFZO2VBQVpBOztJQUpBQyxjQUFjO2VBQWRBOzs7OzRGQTdGa0I7MENBQ2E7aURBQ1g7MENBQ2M7MkNBQ3BCO0FBRTlCLHVFQUF1RTtBQUN2RSx5RUFBeUU7QUFDekUsMkVBQTJFO0FBQzNFLG9DQUFvQztBQUNwQyxNQUFNQyxvQkFBb0I7QUE0QzFCLFNBQVNDLFdBQ1BDLEdBQVcsRUFDWEMsR0FBK0IsRUFDL0JDLFNBQTRCO0lBRTVCLElBQUlDLFFBQVFGLElBQUlHLEdBQUcsQ0FBQ0o7SUFDcEIsSUFBSUcsT0FBTztRQUNULElBQUksWUFBWUEsT0FBTztZQUNyQixPQUFPQSxNQUFNRSxNQUFNO1FBQ3JCO1FBQ0EsT0FBT0MsUUFBUUMsT0FBTyxDQUFDSjtJQUN6QjtJQUNBLElBQUlLO0lBQ0osTUFBTUMsT0FBbUIsSUFBSUgsUUFBVyxDQUFDQztRQUN2Q0MsV0FBV0Q7SUFDYjtJQUNBTixJQUFJUyxHQUFHLENBQUNWLEtBQUs7UUFBRU8sU0FBU0M7UUFBV0gsUUFBUUk7SUFBSztJQUNoRCxPQUFPUCxZQUNIQSxZQUNHUyxJQUFJLENBQUMsQ0FBQ0M7UUFDTEosU0FBU0k7UUFDVCxPQUFPQTtJQUNULEdBQ0NDLEtBQUssQ0FBQyxDQUFDQztRQUNOYixJQUFJYyxNQUFNLENBQUNmO1FBQ1gsTUFBTWM7SUFDUixLQUNGTDtBQUNOO0FBU0EsTUFBTU8sbUJBQW1CQyxPQUFPO0FBRXpCLFNBQVNwQixlQUFlaUIsR0FBVTtJQUN2QyxPQUFPSSxPQUFPQyxjQUFjLENBQUNMLEtBQUtFLGtCQUFrQixDQUFDO0FBQ3ZEO0FBRU8sU0FBU3BCLGFBQWFrQixHQUFXO0lBQ3RDLE9BQU9BLE9BQU9FLG9CQUFvQkY7QUFDcEM7QUFFQSxTQUFTTSxZQUFZQyxJQUFzQjtJQUN6QyxJQUFJO1FBQ0ZBLE9BQU9DLFNBQVNDLGFBQWEsQ0FBQztRQUM5QixPQUNFLHVCQUN1QjtRQUN0QixDQUFDLENBQUNDLE9BQU9DLG9CQUFvQixJQUFJLENBQUMsQ0FBRUgsU0FBaUJJLFlBQVksSUFDbEVMLEtBQUtNLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDO0lBRTFCLEVBQUUsVUFBTTtRQUNOLE9BQU87SUFDVDtBQUNGO0FBRUEsTUFBTUMsY0FBdUJUO0FBRTdCLE1BQU1VLHNCQUFzQjtJQUMxQixPQUFPQyxDQUFBQSxHQUFBQSxjQUFBQSxpQ0FBQUE7QUFDVDtBQUVBLFNBQVNDLGVBQ1BDLElBQVksRUFDWkMsRUFBVSxFQUNWYixJQUFzQjtJQUV0QixPQUFPLElBQUlmLFFBQWMsQ0FBQ0MsU0FBUzRCO1FBQ2pDLE1BQU1DLFdBQVkseUNBQ2NILE9BQUssMkNBQ05BLE9BQUssNkJBQ25CQSxPQUFLO1FBQ3RCLElBQUlYLFNBQVNlLGFBQWEsQ0FBQ0QsV0FBVztZQUNwQyxPQUFPN0I7UUFDVDtRQUVBYyxPQUFPQyxTQUFTQyxhQUFhLENBQUM7UUFFOUIsd0RBQXdEO1FBQ3hELElBQUlXLElBQUliLEtBQU1hLEVBQUUsR0FBR0E7UUFDbkJiLEtBQU1pQixHQUFHLEdBQUk7UUFDYmpCLEtBQU1rQixXQUFXLEdBQUdDLFNBQStCO1FBQ25EbkIsS0FBTXNCLE1BQU0sR0FBR3BDO1FBQ2ZjLEtBQU11QixPQUFPLEdBQUcsSUFDZFQsT0FBT3RDLGVBQWUsSUFBSWdELE1BQU8seUJBQXNCWjtRQUV6RCxnQ0FBZ0M7UUFDaENaLEtBQU1ZLElBQUksR0FBR0E7UUFFYlgsU0FBU3dCLElBQUksQ0FBQ0MsV0FBVyxDQUFDMUI7SUFDNUI7QUFDRjtBQUVBLFNBQVMyQixhQUNQQyxHQUE4QixFQUM5QkMsTUFBMEI7SUFFMUIsT0FBTyxJQUFJNUMsUUFBUSxDQUFDQyxTQUFTNEI7UUFDM0JlLFNBQVM1QixTQUFTQyxhQUFhLENBQUM7UUFFaEMsd0RBQXdEO1FBQ3hELG1FQUFtRTtRQUNuRSxpQ0FBaUM7UUFDakMyQixPQUFPUCxNQUFNLEdBQUdwQztRQUNoQjJDLE9BQU9OLE9BQU8sR0FBRyxJQUNmVCxPQUFPdEMsZUFBZSxJQUFJZ0QsTUFBTyw0QkFBeUJJO1FBRTVELDJFQUEyRTtRQUMzRSw4QkFBOEI7UUFDOUJDLE9BQU9YLFdBQVcsR0FBR0MsU0FBK0I7UUFFcEQsdUVBQXVFO1FBQ3ZFLDZDQUE2QztRQUM3Q1UsT0FBT0QsR0FBRyxHQUFHQTtRQUNiM0IsU0FBUzZCLElBQUksQ0FBQ0osV0FBVyxDQUFDRztJQUM1QjtBQUNGO0FBRUEsNEVBQTRFO0FBQzVFLHFFQUFxRTtBQUNyRSxJQUFJRTtBQUVKLHVFQUF1RTtBQUN2RSxTQUFTQywwQkFDUEMsQ0FBYSxFQUNiQyxFQUFVLEVBQ1Z6QyxHQUFVO0lBRVYsT0FBTyxJQUFJUixRQUFRLENBQUNDLFNBQVM0QjtRQUMzQixJQUFJcUIsWUFBWTtRQUVoQkYsRUFBRTNDLElBQUksQ0FBQyxDQUFDOEM7WUFDTiwrQkFBK0I7WUFDL0JELFlBQVk7WUFDWmpELFFBQVFrRDtRQUNWLEdBQUc1QyxLQUFLLENBQUNzQjtRQUVULHNFQUFzRTtRQUN0RSxzQkFBc0I7UUFDdEIsSUFBSUssSUFBb0IsRUFBb0I7O2FBQ3hDWSxtQkFBbUI5QyxRQUFRQyxPQUFPLEdBQUMsQ0FBR0ksSUFBSSxDQUFDO2dCQUMzQ2dELENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0IsSUFDbEJDLFdBQVc7d0JBQ1QsSUFBSSxDQUFDSixXQUFXOzRCQUNkckIsT0FBT3JCO3dCQUNUO29CQUNGLEdBQUd5QztZQUVQO1FBQ0Y7UUFFQSxJQUFJZixLQUFvQixFQUFvQixFQVEzQztJQUNIO0FBQ0Y7QUFRTyxTQUFTN0M7SUFDZCxJQUFJa0UsS0FBS0MsZ0JBQWdCLEVBQUU7UUFDekIsT0FBT3hELFFBQVFDLE9BQU8sQ0FBQ3NELEtBQUtDLGdCQUFnQjtJQUM5QztJQUVBLE1BQU1DLGtCQUFrQixJQUFJekQsUUFBa0MsQ0FBQ0M7UUFDN0QsaURBQWlEO1FBQ2pELE1BQU15RCxLQUFLSCxLQUFLSSxtQkFBbUI7UUFDbkNKLEtBQUtJLG1CQUFtQixHQUFHO1lBQ3pCMUQsUUFBUXNELEtBQUtDLGdCQUFnQjtZQUM3QkUsTUFBTUE7UUFDUjtJQUNGO0lBRUEsT0FBT1gsMEJBQ0xVLGlCQUNBakUsbUJBQ0FELGVBQWUsSUFBSWdELE1BQU07QUFFN0I7QUFNQSxTQUFTcUIsaUJBQ1BDLFdBQW1CLEVBQ25CQyxLQUFhO0lBRWIsSUFBSTVCLElBQW9CLEVBQW9CO1FBQzFDLE1BQU02QixZQUNKRixjQUNBLCtCQUNBRyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFhLEVBQUNDLENBQUFBLEdBQUFBLHVCQUFBQSxPQUFBQSxFQUFzQkgsT0FBTyxVQUMzQ3RDO1FBQ0YsT0FBT3hCLFFBQVFDLE9BQU8sQ0FBQztZQUNyQmlFLFNBQVM7Z0JBQUNDLENBQUFBLEdBQUFBLGNBQUFBLDhCQUE4QixFQUFDSjthQUFXO1lBQ3BELHVEQUF1RDtZQUN2REssS0FBSyxFQUFFO1FBQ1Q7SUFDRjtJQUNBLE9BQU8vRSx5QkFBeUJnQixJQUFJLENBQUMsQ0FBQ2dFO1FBQ3BDLElBQUksQ0FBRVAsQ0FBQUEsU0FBU08sUUFBQUEsQ0FBTyxFQUFJO1lBQ3hCLE1BQU05RSxlQUFlLElBQUlnRCxNQUFPLDZCQUEwQnVCO1FBQzVEO1FBQ0EsTUFBTVEsV0FBV0QsUUFBUSxDQUFDUCxNQUFNLENBQUNuRSxHQUFHLENBQ2xDLENBQUNFLFFBQVVnRSxjQUFjLFlBQVlHLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNuRTtRQUVyRCxPQUFPO1lBQ0xxRSxTQUFTSSxTQUNOQyxNQUFNLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsUUFBUSxDQUFDLFFBQ3pCOUUsR0FBRyxDQUFDLENBQUM2RSxJQUFNTCxDQUFBQSxHQUFBQSxjQUFBQSw4QkFBQUEsRUFBK0JLLEtBQUtoRDtZQUNsRDRDLEtBQUtFLFNBQ0ZDLE1BQU0sQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxRQUFRLENBQUMsU0FDekI5RSxHQUFHLENBQUMsQ0FBQzZFLElBQU1BLElBQUloRDtRQUNwQjtJQUNGO0FBQ0Y7QUFFTyxTQUFTcEMsa0JBQWtCeUUsV0FBbUI7SUFDbkQsTUFBTWEsY0FDSixJQUFJQztJQUNOLE1BQU1DLGdCQUErQyxJQUFJRDtJQUN6RCxNQUFNRSxjQUFxRCxJQUFJRjtJQUMvRCxNQUFNRyxTQUNKLElBQUlIO0lBRU4sU0FBU0ksbUJBQ1BwQyxHQUE4QjtRQUU5QiwyREFBMkQ7UUFDM0Qsa0VBQWtFO1FBQ2xFLGNBQWM7UUFDZCxJQUFJVCxLQUFvQixFQUFvQixFQWEzQyxNQUFNO1lBQ0wsT0FBT1EsYUFBYUM7UUFDdEI7SUFDRjtJQUVBLFNBQVNzQyxnQkFBZ0J0RCxJQUFZO1FBQ25DLElBQUl4QixPQUE2QzBFLFlBQVkvRSxHQUFHLENBQUM2QjtRQUNqRSxJQUFJeEIsTUFBTTtZQUNSLE9BQU9BO1FBQ1Q7UUFFQTBFLFlBQVl6RSxHQUFHLENBQ2J1QixNQUNDeEIsT0FBTytFLE1BQU12RCxNQUFNO1lBQUV3RCxhQUFhO1FBQWMsR0FDOUM5RSxJQUFJLENBQUMsQ0FBQytFO1lBQ0wsSUFBSSxDQUFDQSxJQUFJQyxFQUFFLEVBQUU7Z0JBQ1gsTUFBTSxJQUFJOUMsTUFBTyxnQ0FBNkJaO1lBQ2hEO1lBQ0EsT0FBT3lELElBQUlFLElBQUksR0FBR2pGLElBQUksQ0FBQyxDQUFDaUYsT0FBVTtvQkFBRTNELE1BQU1BO29CQUFNNEQsU0FBU0Q7aUJBQUs7UUFDaEUsR0FDQy9FLEtBQUssQ0FBQyxDQUFDQztZQUNOLE1BQU1qQixlQUFlaUI7UUFDdkI7UUFFSixPQUFPTDtJQUNUO0lBRUEsT0FBTztRQUNMcUYsZ0JBQWUxQixLQUFhO1lBQzFCLE9BQU9yRSxXQUFXcUUsT0FBT1k7UUFDM0I7UUFDQWUsY0FBYTNCLEtBQWEsRUFBRTRCLE9BQW9DOzthQUM1REEsVUFDRTFGLFFBQVFDLE9BQU8sR0FDWkksSUFBSSxDQUFDLElBQU1xRixXQUNYckYsSUFBSSxDQUNILENBQUNzRixXQUFrQjtvQkFDakJDLFdBQVlELFlBQVdBLFNBQVFFLE9BQU8sSUFBS0Y7b0JBQzNDQSxTQUFTQTtpQkFDWCxHQUNBLENBQUNuRixNQUFTO29CQUFFc0YsT0FBT3RGO2lCQUFJLEtBRTNCUixRQUFRQyxPQUFPLENBQUM4RixVQUFBQSxDQUFTLENBQzNCMUYsSUFBSSxDQUFDLENBQUMyRjtnQkFDTixNQUFNQyxNQUFNdkIsWUFBWTVFLEdBQUcsQ0FBQ2dFO2dCQUM1QixJQUFJbUMsT0FBTyxhQUFhQSxLQUFLO29CQUMzQixJQUFJRCxPQUFPO3dCQUNUdEIsWUFBWXRFLEdBQUcsQ0FBQzBELE9BQU9rQzt3QkFDdkJDLElBQUloRyxPQUFPLENBQUMrRjtvQkFDZDtnQkFDRixPQUFPO29CQUNMLElBQUlBLE9BQU87d0JBQ1R0QixZQUFZdEUsR0FBRyxDQUFDMEQsT0FBT2tDO29CQUN6QixPQUFPO3dCQUNMdEIsWUFBWWpFLE1BQU0sQ0FBQ3FEO29CQUNyQjtvQkFDQSxnREFBZ0Q7b0JBQ2hELGtEQUFrRDtvQkFDbEQsbUJBQW1CO29CQUNuQmdCLE9BQU9yRSxNQUFNLENBQUNxRDtnQkFDaEI7WUFDRjtRQUNGO1FBQ0FvQyxXQUFVcEMsS0FBYSxFQUFFcUMsUUFBa0I7WUFDekMsT0FBTzFHLFdBQTZCcUUsT0FBT2dCLFFBQVE7Z0JBQ2pELElBQUlzQjtnQkFFSixJQUFJbEUsSUFBb0IsRUFBb0I7b0JBQzFDWSxrQkFBa0IsSUFBSTlDLFFBQWMsQ0FBQ0M7d0JBQ25DbUcseUJBQXlCbkc7b0JBQzNCO2dCQUNGO2dCQUVBLE9BQU84QywwQkFDTGEsaUJBQWlCQyxhQUFhQyxPQUMzQnpELElBQUksQ0FBQzt3QkFBQyxFQUFFNkQsT0FBTyxFQUFFRSxHQUFHLEVBQUU7b0JBQ3JCLE9BQU9wRSxRQUFRcUcsR0FBRyxDQUFDO3dCQUNqQjNCLFlBQVk0QixHQUFHLENBQUN4QyxTQUNaLEVBQUUsR0FDRjlELFFBQVFxRyxHQUFHLENBQUNuQyxRQUFRdkUsR0FBRyxDQUFDb0Y7d0JBQzVCL0UsUUFBUXFHLEdBQUcsQ0FBQ2pDLElBQUl6RSxHQUFHLENBQUNzRjtxQkFDckI7Z0JBQ0gsR0FDQzVFLElBQUksQ0FBQyxDQUFDK0U7b0JBQ0wsT0FBTyxJQUFJLENBQUNJLGNBQWMsQ0FBQzFCLE9BQU96RCxJQUFJLENBQUMsQ0FBQ2tHLGFBQWdCOzRCQUN0REE7NEJBQ0FDLFFBQVFwQixHQUFHLENBQUMsRUFBRTt5QkFDaEI7Z0JBQ0YsSUFDRjVGLG1CQUNBRCxlQUFlLElBQUlnRCxNQUFPLHFDQUFrQ3VCLFNBRTNEekQsSUFBSSxDQUFDO3dCQUFDLEVBQUVrRyxVQUFVLEVBQUVDLE1BQU0sRUFBRTtvQkFDM0IsTUFBTXBCLE1BQXdCeEUsT0FBTzZGLE1BQU0sQ0FHekM7d0JBQUVELFFBQVFBO29CQUFRLEdBQUdEO29CQUN2QixPQUFPLFdBQVdBLGFBQWFBLGFBQWFuQjtnQkFDOUMsR0FDQzdFLEtBQUssQ0FBQyxDQUFDQztvQkFDTixJQUFJMkYsVUFBVTt3QkFDWixnREFBZ0Q7d0JBQ2hELE1BQU0zRjtvQkFDUjtvQkFDQSxPQUFPO3dCQUFFc0YsT0FBT3RGO29CQUFJO2dCQUN0QixHQUNDa0csT0FBTyxDQUFDLElBQU1OLDBCQUFBQSxPQUFBQSxLQUFBQSxJQUFBQTtZQUNuQjtRQUNGO1FBQ0FELFVBQVNyQyxLQUFhO1lBQ3BCLHNIQUFzSDtZQUN0SCxzQkFBc0I7WUFDdEIsSUFBSTZDO1lBQ0osSUFBS0EsS0FBTUMsVUFBa0JDLFVBQVUsRUFBRztnQkFDeEMseURBQXlEO2dCQUN6RCxJQUFJRixHQUFHRyxRQUFRLElBQUksS0FBS0MsSUFBSSxDQUFDSixHQUFHSyxhQUFhLEdBQUcsT0FBT2hILFFBQVFDLE9BQU87WUFDeEU7WUFDQSxPQUFPMkQsaUJBQWlCQyxhQUFhQyxPQUNsQ3pELElBQUksQ0FBQyxDQUFDNEcsU0FDTGpILFFBQVFxRyxHQUFHLENBQ1Q5RSxjQUNJMEYsT0FBTy9DLE9BQU8sQ0FBQ3ZFLEdBQUcsQ0FBQyxDQUFDaUQsU0FDbEJsQixlQUFla0IsT0FBT29DLFFBQVEsSUFBSSxhQUVwQyxFQUFFLEdBR1QzRSxJQUFJLENBQUM7Z0JBQ0pnRCxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CLElBQU0sSUFBSSxDQUFDNkMsU0FBUyxDQUFDcEMsT0FBTyxNQUFNdkQsS0FBSyxDQUFDLEtBQU87WUFDckUsR0FDQ0EsS0FBSyxDQUNKLEtBQ087UUFFYjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9jbGllbnQvcm91dGUtbG9hZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBNaWRkbGV3YXJlTWF0Y2hlciB9IGZyb20gJy4uL2J1aWxkL2FuYWx5c2lzL2dldC1wYWdlLXN0YXRpYy1pbmZvJ1xuaW1wb3J0IGdldEFzc2V0UGF0aEZyb21Sb3V0ZSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci91dGlscy9nZXQtYXNzZXQtcGF0aC1mcm9tLXJvdXRlJ1xuaW1wb3J0IHsgX191bnNhZmVDcmVhdGVUcnVzdGVkU2NyaXB0VVJMIH0gZnJvbSAnLi90cnVzdGVkLXR5cGVzJ1xuaW1wb3J0IHsgcmVxdWVzdElkbGVDYWxsYmFjayB9IGZyb20gJy4vcmVxdWVzdC1pZGxlLWNhbGxiYWNrJ1xuaW1wb3J0IHsgZ2V0RGVwbG95bWVudElkUXVlcnlPckVtcHR5U3RyaW5nIH0gZnJvbSAnLi4vYnVpbGQvZGVwbG95bWVudC1pZCdcbmltcG9ydCB7IGVuY29kZVVSSVBhdGggfSBmcm9tICcuLi9zaGFyZWQvbGliL2VuY29kZS11cmktcGF0aCdcblxuLy8gMy44cyB3YXMgYXJiaXRyYXJpbHkgY2hvc2VuIGFzIGl0J3Mgd2hhdCBodHRwczovL3dlYi5kZXYvaW50ZXJhY3RpdmVcbi8vIGNvbnNpZGVycyBhcyBcIkdvb2RcIiB0aW1lLXRvLWludGVyYWN0aXZlLiBXZSBtdXN0IGFzc3VtZSBzb21ldGhpbmcgd2VudFxuLy8gd3JvbmcgYmV5b25kIHRoaXMgcG9pbnQsIGFuZCB0aGVuIGZhbGwtYmFjayB0byBhIGZ1bGwgcGFnZSB0cmFuc2l0aW9uIHRvXG4vLyBzaG93IHRoZSB1c2VyIHNvbWV0aGluZyBvZiB2YWx1ZS5cbmNvbnN0IE1TX01BWF9JRExFX0RFTEFZID0gMzgwMFxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIF9fQlVJTERfTUFOSUZFU1Q/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT5cbiAgICBfX0JVSUxEX01BTklGRVNUX0NCPzogRnVuY3Rpb25cbiAgICBfX01JRERMRVdBUkVfTUFUQ0hFUlM/OiBNaWRkbGV3YXJlTWF0Y2hlcltdXG4gICAgX19NSURETEVXQVJFX01BTklGRVNUX0NCPzogRnVuY3Rpb25cbiAgICBfX1JFQUNUX0xPQURBQkxFX01BTklGRVNUPzogYW55XG4gICAgX19EWU5BTUlDX0NTU19NQU5JRkVTVD86IGFueVxuICAgIF9fUlNDX01BTklGRVNUPzogYW55XG4gICAgX19SU0NfU0VSVkVSX01BTklGRVNUPzogYW55XG4gICAgX19ORVhUX0ZPTlRfTUFOSUZFU1Q/OiBhbnlcbiAgICBfX1NVQlJFU09VUkNFX0lOVEVHUklUWV9NQU5JRkVTVD86IHN0cmluZ1xuICAgIF9fSU5URVJDRVBUSU9OX1JPVVRFX1JFV1JJVEVfTUFOSUZFU1Q/OiBzdHJpbmdcbiAgfVxufVxuXG5pbnRlcmZhY2UgTG9hZGVkRW50cnlwb2ludFN1Y2Nlc3Mge1xuICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGVcbiAgZXhwb3J0czogYW55XG59XG5pbnRlcmZhY2UgTG9hZGVkRW50cnlwb2ludEZhaWx1cmUge1xuICBlcnJvcjogdW5rbm93blxufVxudHlwZSBSb3V0ZUVudHJ5cG9pbnQgPSBMb2FkZWRFbnRyeXBvaW50U3VjY2VzcyB8IExvYWRlZEVudHJ5cG9pbnRGYWlsdXJlXG5cbmludGVyZmFjZSBSb3V0ZVN0eWxlU2hlZXQge1xuICBocmVmOiBzdHJpbmdcbiAgY29udGVudDogc3RyaW5nXG59XG5cbmludGVyZmFjZSBMb2FkZWRSb3V0ZVN1Y2Nlc3MgZXh0ZW5kcyBMb2FkZWRFbnRyeXBvaW50U3VjY2VzcyB7XG4gIHN0eWxlczogUm91dGVTdHlsZVNoZWV0W11cbn1cbmludGVyZmFjZSBMb2FkZWRSb3V0ZUZhaWx1cmUge1xuICBlcnJvcjogdW5rbm93blxufVxudHlwZSBSb3V0ZUxvYWRlckVudHJ5ID0gTG9hZGVkUm91dGVTdWNjZXNzIHwgTG9hZGVkUm91dGVGYWlsdXJlXG5cbmludGVyZmFjZSBGdXR1cmU8Vj4ge1xuICByZXNvbHZlOiAoZW50cnlwb2ludDogVikgPT4gdm9pZFxuICBmdXR1cmU6IFByb21pc2U8Vj5cbn1cbmZ1bmN0aW9uIHdpdGhGdXR1cmU8VCBleHRlbmRzIG9iamVjdD4oXG4gIGtleTogc3RyaW5nLFxuICBtYXA6IE1hcDxzdHJpbmcsIEZ1dHVyZTxUPiB8IFQ+LFxuICBnZW5lcmF0b3I/OiAoKSA9PiBQcm9taXNlPFQ+XG4pOiBQcm9taXNlPFQ+IHtcbiAgbGV0IGVudHJ5ID0gbWFwLmdldChrZXkpXG4gIGlmIChlbnRyeSkge1xuICAgIGlmICgnZnV0dXJlJyBpbiBlbnRyeSkge1xuICAgICAgcmV0dXJuIGVudHJ5LmZ1dHVyZVxuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGVudHJ5KVxuICB9XG4gIGxldCByZXNvbHZlcjogKGVudHJ5cG9pbnQ6IFQpID0+IHZvaWRcbiAgY29uc3QgcHJvbTogUHJvbWlzZTxUPiA9IG5ldyBQcm9taXNlPFQ+KChyZXNvbHZlKSA9PiB7XG4gICAgcmVzb2x2ZXIgPSByZXNvbHZlXG4gIH0pXG4gIG1hcC5zZXQoa2V5LCB7IHJlc29sdmU6IHJlc29sdmVyISwgZnV0dXJlOiBwcm9tIH0pXG4gIHJldHVybiBnZW5lcmF0b3JcbiAgICA/IGdlbmVyYXRvcigpXG4gICAgICAgIC50aGVuKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIHJlc29sdmVyKHZhbHVlKVxuICAgICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgIG1hcC5kZWxldGUoa2V5KVxuICAgICAgICAgIHRocm93IGVyclxuICAgICAgICB9KVxuICAgIDogcHJvbVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlTG9hZGVyIHtcbiAgd2hlbkVudHJ5cG9pbnQocm91dGU6IHN0cmluZyk6IFByb21pc2U8Um91dGVFbnRyeXBvaW50PlxuICBvbkVudHJ5cG9pbnQocm91dGU6IHN0cmluZywgZXhlY3V0ZTogKCkgPT4gdW5rbm93bik6IHZvaWRcbiAgbG9hZFJvdXRlKHJvdXRlOiBzdHJpbmcsIHByZWZldGNoPzogYm9vbGVhbik6IFByb21pc2U8Um91dGVMb2FkZXJFbnRyeT5cbiAgcHJlZmV0Y2gocm91dGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD5cbn1cblxuY29uc3QgQVNTRVRfTE9BRF9FUlJPUiA9IFN5bWJvbCgnQVNTRVRfTE9BRF9FUlJPUicpXG4vLyBUT0RPOiB1bmV4cG9ydFxuZXhwb3J0IGZ1bmN0aW9uIG1hcmtBc3NldEVycm9yKGVycjogRXJyb3IpOiBFcnJvciB7XG4gIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXJyLCBBU1NFVF9MT0FEX0VSUk9SLCB7fSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXNzZXRFcnJvcihlcnI/OiBFcnJvcik6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZXJyICYmIEFTU0VUX0xPQURfRVJST1IgaW4gZXJyXG59XG5cbmZ1bmN0aW9uIGhhc1ByZWZldGNoKGxpbms/OiBIVE1MTGlua0VsZW1lbnQpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpXG4gICAgcmV0dXJuIChcbiAgICAgIC8vIGRldGVjdCBJRTExIHNpbmNlIGl0IHN1cHBvcnRzIHByZWZldGNoIGJ1dCBpc24ndCBkZXRlY3RlZFxuICAgICAgLy8gd2l0aCByZWxMaXN0LnN1cHBvcnRcbiAgICAgICghIXdpbmRvdy5NU0lucHV0TWV0aG9kQ29udGV4dCAmJiAhIShkb2N1bWVudCBhcyBhbnkpLmRvY3VtZW50TW9kZSkgfHxcbiAgICAgIGxpbmsucmVsTGlzdC5zdXBwb3J0cygncHJlZmV0Y2gnKVxuICAgIClcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cbn1cblxuY29uc3QgY2FuUHJlZmV0Y2g6IGJvb2xlYW4gPSBoYXNQcmVmZXRjaCgpXG5cbmNvbnN0IGdldEFzc2V0UXVlcnlTdHJpbmcgPSAoKSA9PiB7XG4gIHJldHVybiBnZXREZXBsb3ltZW50SWRRdWVyeU9yRW1wdHlTdHJpbmcoKVxufVxuXG5mdW5jdGlvbiBwcmVmZXRjaFZpYURvbShcbiAgaHJlZjogc3RyaW5nLFxuICBhczogc3RyaW5nLFxuICBsaW5rPzogSFRNTExpbmtFbGVtZW50XG4pOiBQcm9taXNlPGFueT4ge1xuICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdG9yID0gYFxuICAgICAgbGlua1tyZWw9XCJwcmVmZXRjaFwiXVtocmVmXj1cIiR7aHJlZn1cIl0sXG4gICAgICBsaW5rW3JlbD1cInByZWxvYWRcIl1baHJlZl49XCIke2hyZWZ9XCJdLFxuICAgICAgc2NyaXB0W3NyY149XCIke2hyZWZ9XCJdYFxuICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKSkge1xuICAgICAgcmV0dXJuIHJlc29sdmUoKVxuICAgIH1cblxuICAgIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJylcblxuICAgIC8vIFRoZSBvcmRlciBvZiBwcm9wZXJ0eSBhc3NpZ25tZW50IGhlcmUgaXMgaW50ZW50aW9uYWw6XG4gICAgaWYgKGFzKSBsaW5rIS5hcyA9IGFzXG4gICAgbGluayEucmVsID0gYHByZWZldGNoYFxuICAgIGxpbmshLmNyb3NzT3JpZ2luID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTiFcbiAgICBsaW5rIS5vbmxvYWQgPSByZXNvbHZlIGFzIGFueVxuICAgIGxpbmshLm9uZXJyb3IgPSAoKSA9PlxuICAgICAgcmVqZWN0KG1hcmtBc3NldEVycm9yKG5ldyBFcnJvcihgRmFpbGVkIHRvIHByZWZldGNoOiAke2hyZWZ9YCkpKVxuXG4gICAgLy8gYGhyZWZgIHNob3VsZCBhbHdheXMgYmUgbGFzdDpcbiAgICBsaW5rIS5ocmVmID0gaHJlZlxuXG4gICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKVxuICB9KVxufVxuXG5mdW5jdGlvbiBhcHBlbmRTY3JpcHQoXG4gIHNyYzogVHJ1c3RlZFNjcmlwdFVSTCB8IHN0cmluZyxcbiAgc2NyaXB0PzogSFRNTFNjcmlwdEVsZW1lbnRcbik6IFByb21pc2U8dW5rbm93bj4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpXG5cbiAgICAvLyBUaGUgb3JkZXIgb2YgcHJvcGVydHkgYXNzaWdubWVudCBoZXJlIGlzIGludGVudGlvbmFsLlxuICAgIC8vIDEuIFNldHVwIHN1Y2Nlc3MvZmFpbHVyZSBob29rcyBpbiBjYXNlIHRoZSBicm93c2VyIHN5bmNocm9ub3VzbHlcbiAgICAvLyAgICBleGVjdXRlcyB3aGVuIGBzcmNgIGlzIHNldC5cbiAgICBzY3JpcHQub25sb2FkID0gcmVzb2x2ZVxuICAgIHNjcmlwdC5vbmVycm9yID0gKCkgPT5cbiAgICAgIHJlamVjdChtYXJrQXNzZXRFcnJvcihuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkIHNjcmlwdDogJHtzcmN9YCkpKVxuXG4gICAgLy8gMi4gQ29uZmlndXJlIHRoZSBjcm9zcy1vcmlnaW4gYXR0cmlidXRlIGJlZm9yZSBzZXR0aW5nIGBzcmNgIGluIGNhc2UgdGhlXG4gICAgLy8gICAgYnJvd3NlciBiZWdpbnMgdG8gZmV0Y2guXG4gICAgc2NyaXB0LmNyb3NzT3JpZ2luID0gcHJvY2Vzcy5lbnYuX19ORVhUX0NST1NTX09SSUdJTiFcblxuICAgIC8vIDMuIEZpbmFsbHksIHNldCB0aGUgc291cmNlIGFuZCBpbmplY3QgaW50byB0aGUgRE9NIGluIGNhc2UgdGhlIGNoaWxkXG4gICAgLy8gICAgbXVzdCBiZSBhcHBlbmRlZCBmb3IgZmV0Y2hpbmcgdG8gc3RhcnQuXG4gICAgc2NyaXB0LnNyYyA9IHNyYyBhcyBzdHJpbmdcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdClcbiAgfSlcbn1cblxuLy8gV2Ugd2FpdCBmb3IgcGFnZXMgdG8gYmUgYnVpbHQgaW4gZGV2IGJlZm9yZSB3ZSBzdGFydCB0aGUgcm91dGUgdHJhbnNpdGlvblxuLy8gdGltZW91dCB0byBwcmV2ZW50IGFuIHVuLW5lY2Vzc2FyeSBoYXJkIG5hdmlnYXRpb24gaW4gZGV2ZWxvcG1lbnQuXG5sZXQgZGV2QnVpbGRQcm9taXNlOiBQcm9taXNlPHZvaWQ+IHwgdW5kZWZpbmVkXG5cbi8vIFJlc29sdmUgYSBwcm9taXNlIHRoYXQgdGltZXMgb3V0IGFmdGVyIGdpdmVuIGFtb3VudCBvZiBtaWxsaXNlY29uZHMuXG5mdW5jdGlvbiByZXNvbHZlUHJvbWlzZVdpdGhUaW1lb3V0PFQ+KFxuICBwOiBQcm9taXNlPFQ+LFxuICBtczogbnVtYmVyLFxuICBlcnI6IEVycm9yXG4pOiBQcm9taXNlPFQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2VcblxuICAgIHAudGhlbigocikgPT4ge1xuICAgICAgLy8gUmVzb2x2ZWQsIGNhbmNlbCB0aGUgdGltZW91dFxuICAgICAgY2FuY2VsbGVkID0gdHJ1ZVxuICAgICAgcmVzb2x2ZShyKVxuICAgIH0pLmNhdGNoKHJlamVjdClcblxuICAgIC8vIFdlIHdyYXAgdGhlc2UgY2hlY2tzIHNlcGFyYXRlbHkgZm9yIGJldHRlciBkZWFkLWNvZGUgZWxpbWluYXRpb24gaW5cbiAgICAvLyBwcm9kdWN0aW9uIGJ1bmRsZXMuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICA7KGRldkJ1aWxkUHJvbWlzZSB8fCBQcm9taXNlLnJlc29sdmUoKSkudGhlbigoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT5cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICAgIHJlamVjdChlcnIpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgbXMpXG4gICAgICAgIClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICByZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIGlmICghY2FuY2VsbGVkKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyKVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgbXMpXG4gICAgICApXG4gICAgfVxuICB9KVxufVxuXG4vLyBUT0RPOiBzdG9wIGV4cG9ydGluZyBvciBjYWNoZSB0aGUgZmFpbHVyZVxuLy8gSXQnZCBiZSBiZXN0IHRvIHN0b3AgZXhwb3J0aW5nIHRoaXMuIEl0J3MgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLiBXZSdyZVxuLy8gb25seSBleHBvcnRpbmcgaXQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGBwYWdlLWxvYWRlcmAuXG4vLyBPbmx5IGNhY2hlIHRoaXMgcmVzcG9uc2UgYXMgYSBsYXN0IHJlc29ydCBpZiB3ZSBjYW5ub3QgZWxpbWluYXRlIGFsbCBvdGhlclxuLy8gY29kZSBicmFuY2hlcyB0aGF0IHVzZSB0aGUgQnVpbGQgTWFuaWZlc3QgQ2FsbGJhY2sgYW5kIHB1c2ggdGhlbSB0aHJvdWdoXG4vLyB0aGUgUm91dGUgTG9hZGVyIGludGVyZmFjZS5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGllbnRCdWlsZE1hbmlmZXN0KCkge1xuICBpZiAoc2VsZi5fX0JVSUxEX01BTklGRVNUKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzZWxmLl9fQlVJTERfTUFOSUZFU1QpXG4gIH1cblxuICBjb25zdCBvbkJ1aWxkTWFuaWZlc3QgPSBuZXcgUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+KChyZXNvbHZlKSA9PiB7XG4gICAgLy8gTWFuZGF0b3J5IGJlY2F1c2UgdGhpcyBpcyBub3QgY29uY3VycmVudCBzYWZlOlxuICAgIGNvbnN0IGNiID0gc2VsZi5fX0JVSUxEX01BTklGRVNUX0NCXG4gICAgc2VsZi5fX0JVSUxEX01BTklGRVNUX0NCID0gKCkgPT4ge1xuICAgICAgcmVzb2x2ZShzZWxmLl9fQlVJTERfTUFOSUZFU1QhKVxuICAgICAgY2IgJiYgY2IoKVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gcmVzb2x2ZVByb21pc2VXaXRoVGltZW91dChcbiAgICBvbkJ1aWxkTWFuaWZlc3QsXG4gICAgTVNfTUFYX0lETEVfREVMQVksXG4gICAgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBjbGllbnQgYnVpbGQgbWFuaWZlc3QnKSlcbiAgKVxufVxuXG5pbnRlcmZhY2UgUm91dGVGaWxlcyB7XG4gIHNjcmlwdHM6IChUcnVzdGVkU2NyaXB0VVJMIHwgc3RyaW5nKVtdXG4gIGNzczogc3RyaW5nW11cbn1cbmZ1bmN0aW9uIGdldEZpbGVzRm9yUm91dGUoXG4gIGFzc2V0UHJlZml4OiBzdHJpbmcsXG4gIHJvdXRlOiBzdHJpbmdcbik6IFByb21pc2U8Um91dGVGaWxlcz4ge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICBjb25zdCBzY3JpcHRVcmwgPVxuICAgICAgYXNzZXRQcmVmaXggK1xuICAgICAgJy9fbmV4dC9zdGF0aWMvY2h1bmtzL3BhZ2VzJyArXG4gICAgICBlbmNvZGVVUklQYXRoKGdldEFzc2V0UGF0aEZyb21Sb3V0ZShyb3V0ZSwgJy5qcycpKSArXG4gICAgICBnZXRBc3NldFF1ZXJ5U3RyaW5nKClcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgIHNjcmlwdHM6IFtfX3Vuc2FmZUNyZWF0ZVRydXN0ZWRTY3JpcHRVUkwoc2NyaXB0VXJsKV0sXG4gICAgICAvLyBTdHlsZXMgYXJlIGhhbmRsZWQgYnkgYHN0eWxlLWxvYWRlcmAgaW4gZGV2ZWxvcG1lbnQ6XG4gICAgICBjc3M6IFtdLFxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIGdldENsaWVudEJ1aWxkTWFuaWZlc3QoKS50aGVuKChtYW5pZmVzdCkgPT4ge1xuICAgIGlmICghKHJvdXRlIGluIG1hbmlmZXN0KSkge1xuICAgICAgdGhyb3cgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9va3VwIHJvdXRlOiAke3JvdXRlfWApKVxuICAgIH1cbiAgICBjb25zdCBhbGxGaWxlcyA9IG1hbmlmZXN0W3JvdXRlXS5tYXAoXG4gICAgICAoZW50cnkpID0+IGFzc2V0UHJlZml4ICsgJy9fbmV4dC8nICsgZW5jb2RlVVJJUGF0aChlbnRyeSlcbiAgICApXG4gICAgcmV0dXJuIHtcbiAgICAgIHNjcmlwdHM6IGFsbEZpbGVzXG4gICAgICAgIC5maWx0ZXIoKHYpID0+IHYuZW5kc1dpdGgoJy5qcycpKVxuICAgICAgICAubWFwKCh2KSA9PiBfX3Vuc2FmZUNyZWF0ZVRydXN0ZWRTY3JpcHRVUkwodikgKyBnZXRBc3NldFF1ZXJ5U3RyaW5nKCkpLFxuICAgICAgY3NzOiBhbGxGaWxlc1xuICAgICAgICAuZmlsdGVyKCh2KSA9PiB2LmVuZHNXaXRoKCcuY3NzJykpXG4gICAgICAgIC5tYXAoKHYpID0+IHYgKyBnZXRBc3NldFF1ZXJ5U3RyaW5nKCkpLFxuICAgIH1cbiAgfSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJvdXRlTG9hZGVyKGFzc2V0UHJlZml4OiBzdHJpbmcpOiBSb3V0ZUxvYWRlciB7XG4gIGNvbnN0IGVudHJ5cG9pbnRzOiBNYXA8c3RyaW5nLCBGdXR1cmU8Um91dGVFbnRyeXBvaW50PiB8IFJvdXRlRW50cnlwb2ludD4gPVxuICAgIG5ldyBNYXAoKVxuICBjb25zdCBsb2FkZWRTY3JpcHRzOiBNYXA8c3RyaW5nLCBQcm9taXNlPHVua25vd24+PiA9IG5ldyBNYXAoKVxuICBjb25zdCBzdHlsZVNoZWV0czogTWFwPHN0cmluZywgUHJvbWlzZTxSb3V0ZVN0eWxlU2hlZXQ+PiA9IG5ldyBNYXAoKVxuICBjb25zdCByb3V0ZXM6IE1hcDxzdHJpbmcsIEZ1dHVyZTxSb3V0ZUxvYWRlckVudHJ5PiB8IFJvdXRlTG9hZGVyRW50cnk+ID1cbiAgICBuZXcgTWFwKClcblxuICBmdW5jdGlvbiBtYXliZUV4ZWN1dGVTY3JpcHQoXG4gICAgc3JjOiBUcnVzdGVkU2NyaXB0VVJMIHwgc3RyaW5nXG4gICk6IFByb21pc2U8dW5rbm93bj4ge1xuICAgIC8vIFdpdGggSE1SIHdlIG1pZ2h0IG5lZWQgdG8gXCJyZWxvYWRcIiBzY3JpcHRzIHdoZW4gdGhleSBhcmVcbiAgICAvLyBkaXNwb3NlZCBhbmQgcmVhZGRlZC4gRXhlY3V0aW5nIHNjcmlwdHMgdHdpY2UgaGFzIG5vIGZ1bmN0aW9uYWxcbiAgICAvLyBkaWZmZXJlbmNlc1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgbGV0IHByb206IFByb21pc2U8dW5rbm93bj4gfCB1bmRlZmluZWQgPSBsb2FkZWRTY3JpcHRzLmdldChzcmMudG9TdHJpbmcoKSlcbiAgICAgIGlmIChwcm9tKSB7XG4gICAgICAgIHJldHVybiBwcm9tXG4gICAgICB9XG5cbiAgICAgIC8vIFNraXAgZXhlY3V0aW5nIHNjcmlwdCBpZiBpdCdzIGFscmVhZHkgaW4gdGhlIERPTTpcbiAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBzY3JpcHRbc3JjXj1cIiR7c3JjfVwiXWApKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgfVxuXG4gICAgICBsb2FkZWRTY3JpcHRzLnNldChzcmMudG9TdHJpbmcoKSwgKHByb20gPSBhcHBlbmRTY3JpcHQoc3JjKSkpXG4gICAgICByZXR1cm4gcHJvbVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYXBwZW5kU2NyaXB0KHNyYylcbiAgICB9XG4gIH1cblxuICBmdW5jdGlvbiBmZXRjaFN0eWxlU2hlZXQoaHJlZjogc3RyaW5nKTogUHJvbWlzZTxSb3V0ZVN0eWxlU2hlZXQ+IHtcbiAgICBsZXQgcHJvbTogUHJvbWlzZTxSb3V0ZVN0eWxlU2hlZXQ+IHwgdW5kZWZpbmVkID0gc3R5bGVTaGVldHMuZ2V0KGhyZWYpXG4gICAgaWYgKHByb20pIHtcbiAgICAgIHJldHVybiBwcm9tXG4gICAgfVxuXG4gICAgc3R5bGVTaGVldHMuc2V0KFxuICAgICAgaHJlZixcbiAgICAgIChwcm9tID0gZmV0Y2goaHJlZiwgeyBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJyB9KVxuICAgICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgaWYgKCFyZXMub2spIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIGxvYWQgc3R5bGVzaGVldDogJHtocmVmfWApXG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXMudGV4dCgpLnRoZW4oKHRleHQpID0+ICh7IGhyZWY6IGhyZWYsIGNvbnRlbnQ6IHRleHQgfSkpXG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgdGhyb3cgbWFya0Fzc2V0RXJyb3IoZXJyKVxuICAgICAgICB9KSlcbiAgICApXG4gICAgcmV0dXJuIHByb21cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgd2hlbkVudHJ5cG9pbnQocm91dGU6IHN0cmluZykge1xuICAgICAgcmV0dXJuIHdpdGhGdXR1cmUocm91dGUsIGVudHJ5cG9pbnRzKVxuICAgIH0sXG4gICAgb25FbnRyeXBvaW50KHJvdXRlOiBzdHJpbmcsIGV4ZWN1dGU6IHVuZGVmaW5lZCB8ICgoKSA9PiB1bmtub3duKSkge1xuICAgICAgOyhleGVjdXRlXG4gICAgICAgID8gUHJvbWlzZS5yZXNvbHZlKClcbiAgICAgICAgICAgIC50aGVuKCgpID0+IGV4ZWN1dGUoKSlcbiAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAoZXhwb3J0czogYW55KSA9PiAoe1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogKGV4cG9ydHMgJiYgZXhwb3J0cy5kZWZhdWx0KSB8fCBleHBvcnRzLFxuICAgICAgICAgICAgICAgIGV4cG9ydHM6IGV4cG9ydHMsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAoZXJyKSA9PiAoeyBlcnJvcjogZXJyIH0pXG4gICAgICAgICAgICApXG4gICAgICAgIDogUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZClcbiAgICAgICkudGhlbigoaW5wdXQ6IFJvdXRlRW50cnlwb2ludCB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICBjb25zdCBvbGQgPSBlbnRyeXBvaW50cy5nZXQocm91dGUpXG4gICAgICAgIGlmIChvbGQgJiYgJ3Jlc29sdmUnIGluIG9sZCkge1xuICAgICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgZW50cnlwb2ludHMuc2V0KHJvdXRlLCBpbnB1dClcbiAgICAgICAgICAgIG9sZC5yZXNvbHZlKGlucHV0KVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgIGVudHJ5cG9pbnRzLnNldChyb3V0ZSwgaW5wdXQpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVudHJ5cG9pbnRzLmRlbGV0ZShyb3V0ZSlcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gd2hlbiB0aGlzIGVudHJ5cG9pbnQgaGFzIGJlZW4gcmVzb2x2ZWQgYmVmb3JlXG4gICAgICAgICAgLy8gdGhlIHJvdXRlIGlzIG91dGRhdGVkIGFuZCB3ZSB3YW50IHRvIGludmFsaWRhdGVcbiAgICAgICAgICAvLyB0aGlzIGNhY2hlIGVudHJ5XG4gICAgICAgICAgcm91dGVzLmRlbGV0ZShyb3V0ZSlcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9LFxuICAgIGxvYWRSb3V0ZShyb3V0ZTogc3RyaW5nLCBwcmVmZXRjaD86IGJvb2xlYW4pIHtcbiAgICAgIHJldHVybiB3aXRoRnV0dXJlPFJvdXRlTG9hZGVyRW50cnk+KHJvdXRlLCByb3V0ZXMsICgpID0+IHtcbiAgICAgICAgbGV0IGRldkJ1aWxkUHJvbWlzZVJlc29sdmU6ICgpID0+IHZvaWRcblxuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICBkZXZCdWlsZFByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgZGV2QnVpbGRQcm9taXNlUmVzb2x2ZSA9IHJlc29sdmVcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQoXG4gICAgICAgICAgZ2V0RmlsZXNGb3JSb3V0ZShhc3NldFByZWZpeCwgcm91dGUpXG4gICAgICAgICAgICAudGhlbigoeyBzY3JpcHRzLCBjc3MgfSkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzLmhhcyhyb3V0ZSlcbiAgICAgICAgICAgICAgICAgID8gW11cbiAgICAgICAgICAgICAgICAgIDogUHJvbWlzZS5hbGwoc2NyaXB0cy5tYXAobWF5YmVFeGVjdXRlU2NyaXB0KSksXG4gICAgICAgICAgICAgICAgUHJvbWlzZS5hbGwoY3NzLm1hcChmZXRjaFN0eWxlU2hlZXQpKSxcbiAgICAgICAgICAgICAgXSBhcyBjb25zdClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLndoZW5FbnRyeXBvaW50KHJvdXRlKS50aGVuKChlbnRyeXBvaW50KSA9PiAoe1xuICAgICAgICAgICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgICAgICAgICAgc3R5bGVzOiByZXNbMV0sXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgTVNfTUFYX0lETEVfREVMQVksXG4gICAgICAgICAgbWFya0Fzc2V0RXJyb3IobmV3IEVycm9yKGBSb3V0ZSBkaWQgbm90IGNvbXBsZXRlIGxvYWRpbmc6ICR7cm91dGV9YCkpXG4gICAgICAgIClcbiAgICAgICAgICAudGhlbigoeyBlbnRyeXBvaW50LCBzdHlsZXMgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzOiBSb3V0ZUxvYWRlckVudHJ5ID0gT2JqZWN0LmFzc2lnbjxcbiAgICAgICAgICAgICAgeyBzdHlsZXM6IFJvdXRlU3R5bGVTaGVldFtdIH0sXG4gICAgICAgICAgICAgIFJvdXRlRW50cnlwb2ludFxuICAgICAgICAgICAgPih7IHN0eWxlczogc3R5bGVzISB9LCBlbnRyeXBvaW50KVxuICAgICAgICAgICAgcmV0dXJuICdlcnJvcicgaW4gZW50cnlwb2ludCA/IGVudHJ5cG9pbnQgOiByZXNcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICBpZiAocHJlZmV0Y2gpIHtcbiAgICAgICAgICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byBjYWNoZSBlcnJvcnMgZHVyaW5nIHByZWZldGNoXG4gICAgICAgICAgICAgIHRocm93IGVyclxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3I6IGVyciB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZmluYWxseSgoKSA9PiBkZXZCdWlsZFByb21pc2VSZXNvbHZlPy4oKSlcbiAgICAgIH0pXG4gICAgfSxcbiAgICBwcmVmZXRjaChyb3V0ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vR29vZ2xlQ2hyb21lTGFicy9xdWlja2xpbmsvYmxvYi80NTNhNjYxZmExZmE5NDBlMmQyZTA0NDQ1MjM5OGUzOGM2N2E5OGZiL3NyYy9pbmRleC5tanMjTDExNS1MMTE4XG4gICAgICAvLyBMaWNlbnNlOiBBcGFjaGUgMi4wXG4gICAgICBsZXQgY25cbiAgICAgIGlmICgoY24gPSAobmF2aWdhdG9yIGFzIGFueSkuY29ubmVjdGlvbikpIHtcbiAgICAgICAgLy8gRG9uJ3QgcHJlZmV0Y2ggaWYgdXNpbmcgMkcgb3IgaWYgU2F2ZS1EYXRhIGlzIGVuYWJsZWQuXG4gICAgICAgIGlmIChjbi5zYXZlRGF0YSB8fCAvMmcvLnRlc3QoY24uZWZmZWN0aXZlVHlwZSkpIHJldHVybiBQcm9taXNlLnJlc29sdmUoKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGdldEZpbGVzRm9yUm91dGUoYXNzZXRQcmVmaXgsIHJvdXRlKVxuICAgICAgICAudGhlbigob3V0cHV0KSA9PlxuICAgICAgICAgIFByb21pc2UuYWxsKFxuICAgICAgICAgICAgY2FuUHJlZmV0Y2hcbiAgICAgICAgICAgICAgPyBvdXRwdXQuc2NyaXB0cy5tYXAoKHNjcmlwdCkgPT5cbiAgICAgICAgICAgICAgICAgIHByZWZldGNoVmlhRG9tKHNjcmlwdC50b1N0cmluZygpLCAnc2NyaXB0JylcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogW11cbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4gdGhpcy5sb2FkUm91dGUocm91dGUsIHRydWUpLmNhdGNoKCgpID0+IHt9KSlcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKFxuICAgICAgICAgIC8vIHN3YWxsb3cgcHJlZmV0Y2ggZXJyb3JzXG4gICAgICAgICAgKCkgPT4ge31cbiAgICAgICAgKVxuICAgIH0sXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVSb3V0ZUxvYWRlciIsImdldENsaWVudEJ1aWxkTWFuaWZlc3QiLCJpc0Fzc2V0RXJyb3IiLCJtYXJrQXNzZXRFcnJvciIsIk1TX01BWF9JRExFX0RFTEFZIiwid2l0aEZ1dHVyZSIsImtleSIsIm1hcCIsImdlbmVyYXRvciIsImVudHJ5IiwiZ2V0IiwiZnV0dXJlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZXNvbHZlciIsInByb20iLCJzZXQiLCJ0aGVuIiwidmFsdWUiLCJjYXRjaCIsImVyciIsImRlbGV0ZSIsIkFTU0VUX0xPQURfRVJST1IiLCJTeW1ib2wiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImhhc1ByZWZldGNoIiwibGluayIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIndpbmRvdyIsIk1TSW5wdXRNZXRob2RDb250ZXh0IiwiZG9jdW1lbnRNb2RlIiwicmVsTGlzdCIsInN1cHBvcnRzIiwiY2FuUHJlZmV0Y2giLCJnZXRBc3NldFF1ZXJ5U3RyaW5nIiwiZ2V0RGVwbG95bWVudElkUXVlcnlPckVtcHR5U3RyaW5nIiwicHJlZmV0Y2hWaWFEb20iLCJocmVmIiwiYXMiLCJyZWplY3QiLCJzZWxlY3RvciIsInF1ZXJ5U2VsZWN0b3IiLCJyZWwiLCJjcm9zc09yaWdpbiIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfQ1JPU1NfT1JJR0lOIiwib25sb2FkIiwib25lcnJvciIsIkVycm9yIiwiaGVhZCIsImFwcGVuZENoaWxkIiwiYXBwZW5kU2NyaXB0Iiwic3JjIiwic2NyaXB0IiwiYm9keSIsImRldkJ1aWxkUHJvbWlzZSIsInJlc29sdmVQcm9taXNlV2l0aFRpbWVvdXQiLCJwIiwibXMiLCJjYW5jZWxsZWQiLCJyIiwiTk9ERV9FTlYiLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwic2V0VGltZW91dCIsInNlbGYiLCJfX0JVSUxEX01BTklGRVNUIiwib25CdWlsZE1hbmlmZXN0IiwiY2IiLCJfX0JVSUxEX01BTklGRVNUX0NCIiwiZ2V0RmlsZXNGb3JSb3V0ZSIsImFzc2V0UHJlZml4Iiwicm91dGUiLCJzY3JpcHRVcmwiLCJlbmNvZGVVUklQYXRoIiwiZ2V0QXNzZXRQYXRoRnJvbVJvdXRlIiwic2NyaXB0cyIsIl9fdW5zYWZlQ3JlYXRlVHJ1c3RlZFNjcmlwdFVSTCIsImNzcyIsIm1hbmlmZXN0IiwiYWxsRmlsZXMiLCJmaWx0ZXIiLCJ2IiwiZW5kc1dpdGgiLCJlbnRyeXBvaW50cyIsIk1hcCIsImxvYWRlZFNjcmlwdHMiLCJzdHlsZVNoZWV0cyIsInJvdXRlcyIsIm1heWJlRXhlY3V0ZVNjcmlwdCIsInRvU3RyaW5nIiwiZmV0Y2hTdHlsZVNoZWV0IiwiZmV0Y2giLCJjcmVkZW50aWFscyIsInJlcyIsIm9rIiwidGV4dCIsImNvbnRlbnQiLCJ3aGVuRW50cnlwb2ludCIsIm9uRW50cnlwb2ludCIsImV4ZWN1dGUiLCJleHBvcnRzIiwiY29tcG9uZW50IiwiZGVmYXVsdCIsImVycm9yIiwidW5kZWZpbmVkIiwiaW5wdXQiLCJvbGQiLCJsb2FkUm91dGUiLCJwcmVmZXRjaCIsImRldkJ1aWxkUHJvbWlzZVJlc29sdmUiLCJhbGwiLCJoYXMiLCJlbnRyeXBvaW50Iiwic3R5bGVzIiwiYXNzaWduIiwiZmluYWxseSIsImNuIiwibmF2aWdhdG9yIiwiY29ubmVjdGlvbiIsInNhdmVEYXRhIiwidGVzdCIsImVmZmVjdGl2ZVR5cGUiLCJvdXRwdXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/route-loader.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/router.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/router.js ***! + \*************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/* global window */ \nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n Router: function() {\n return _router.default;\n },\n createRouter: function() {\n return createRouter;\n },\n // Export the singletonRouter and this is the public API.\n default: function() {\n return _default;\n },\n makePublicRouterInstance: function() {\n return makePublicRouterInstance;\n },\n useRouter: function() {\n return useRouter;\n },\n withRouter: function() {\n return _withrouter.default;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _router = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/router/router */ \"./node_modules/next/dist/shared/lib/router/router.js\"));\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nconst _withrouter = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./with-router */ \"./node_modules/next/dist/client/with-router.js\"));\nconst singletonRouter = {\n router: null,\n readyCallbacks: [],\n ready (callback) {\n if (this.router) return callback();\n if (true) {\n this.readyCallbacks.push(callback);\n }\n }\n};\n// Create public properties and methods of the router in the singletonRouter\nconst urlPropertyFields = [\n 'pathname',\n 'route',\n 'query',\n 'asPath',\n 'components',\n 'isFallback',\n 'basePath',\n 'locale',\n 'locales',\n 'defaultLocale',\n 'isReady',\n 'isPreview',\n 'isLocaleDomain',\n 'domainLocales'\n];\nconst routerEvents = [\n 'routeChangeStart',\n 'beforeHistoryChange',\n 'routeChangeComplete',\n 'routeChangeError',\n 'hashChangeStart',\n 'hashChangeComplete'\n];\nconst coreMethodFields = [\n 'push',\n 'replace',\n 'reload',\n 'back',\n 'prefetch',\n 'beforePopState'\n];\n// Events is a static property on the router, the router doesn't have to be initialized to use it\nObject.defineProperty(singletonRouter, 'events', {\n get () {\n return _router.default.events;\n }\n});\nfunction getRouter() {\n if (!singletonRouter.router) {\n const message = 'No router instance found.\\n' + 'You should only use \"next/router\" on the client side of your app.\\n';\n throw new Error(message);\n }\n return singletonRouter.router;\n}\nurlPropertyFields.forEach((field)=>{\n // Here we need to use Object.defineProperty because we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get () {\n const router = getRouter();\n return router[field];\n }\n });\n});\ncoreMethodFields.forEach((field)=>{\n // We don't really know the types here, so we add them later instead\n ;\n singletonRouter[field] = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const router = getRouter();\n return router[field](...args);\n };\n});\nrouterEvents.forEach((event)=>{\n singletonRouter.ready(()=>{\n _router.default.events.on(event, function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n const eventField = \"on\" + event.charAt(0).toUpperCase() + event.substring(1);\n const _singletonRouter = singletonRouter;\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField](...args);\n } catch (err) {\n console.error(\"Error when running the Router event: \" + eventField);\n console.error((0, _iserror.default)(err) ? err.message + \"\\n\" + err.stack : err + '');\n }\n }\n });\n });\n});\nconst _default = singletonRouter;\nfunction useRouter() {\n _s();\n const router = _react.default.useContext(_routercontextsharedruntime.RouterContext);\n if (!router) {\n throw new Error('NextRouter was not mounted. https://nextjs.org/docs/messages/next-router-not-mounted');\n }\n return router;\n}\n_s(useRouter, \"rbAhEc3dLGnVlsHWaSDsgP4MZS0=\");\nfunction createRouter() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n singletonRouter.router = new _router.default(...args);\n singletonRouter.readyCallbacks.forEach((cb)=>cb());\n singletonRouter.readyCallbacks = [];\n return singletonRouter.router;\n}\nfunction makePublicRouterInstance(router) {\n const scopedRouter = router;\n const instance = {};\n for (const property of urlPropertyFields){\n if (typeof scopedRouter[property] === 'object') {\n instance[property] = Object.assign(Array.isArray(scopedRouter[property]) ? [] : {}, scopedRouter[property]) // makes sure query is not stateful\n ;\n continue;\n }\n instance[property] = scopedRouter[property];\n }\n // Events is a static property on the router, the router doesn't have to be initialized to use it\n instance.events = _router.default.events;\n coreMethodFields.forEach((field)=>{\n instance[field] = function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n return scopedRouter[field](...args);\n };\n });\n return instance;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=router.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9yb3V0ZXIuanMiLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCOztBQUFBOzs7Ozs7Ozs7Ozs7SUFhUkEsTUFBTTtlQUFOQSxRQUFBQSxPQUFNOztJQTZJQ0MsWUFBWTtlQUFaQTs7SUE3QmhCLHlEQUF5RDtJQUN6RCxPQUFpRDtlQUFqRDs7SUEwQ2dCQyx3QkFBd0I7ZUFBeEJBOztJQS9CQUMsU0FBUztlQUFUQTs7SUFSSUMsVUFBVTtlQUFWQSxZQUFBQSxPQUFVOzs7OzRFQWhJWjs2RUFDQzt3REFFVzs4RUFDVjtpRkE0SGtCO0FBOUd0QyxNQUFNQyxrQkFBdUM7SUFDM0NDLFFBQVE7SUFDUkMsZ0JBQWdCLEVBQUU7SUFDbEJDLE9BQU1DLFFBQW9CO1FBQ3hCLElBQUksSUFBSSxDQUFDSCxNQUFNLEVBQUUsT0FBT0c7UUFDeEIsSUFBSSxJQUE2QixFQUFFO1lBQ2pDLElBQUksQ0FBQ0YsY0FBYyxDQUFDSSxJQUFJLENBQUNGO1FBQzNCO0lBQ0Y7QUFDRjtBQUVBLDRFQUE0RTtBQUM1RSxNQUFNRyxvQkFBb0I7SUFDeEI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBQ0QsTUFBTUMsZUFBZTtJQUNuQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUdELE1BQU1DLG1CQUFtQjtJQUN2QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVELGlHQUFpRztBQUNqR0MsT0FBT0MsY0FBYyxDQUFDWCxpQkFBaUIsVUFBVTtJQUMvQ1k7UUFDRSxPQUFPakIsUUFBQUEsT0FBTSxDQUFDa0IsTUFBTTtJQUN0QjtBQUNGO0FBRUEsU0FBU0M7SUFDUCxJQUFJLENBQUNkLGdCQUFnQkMsTUFBTSxFQUFFO1FBQzNCLE1BQU1jLFVBQ0osZ0NBQ0E7UUFDRixNQUFNLElBQUlDLE1BQU1EO0lBQ2xCO0lBQ0EsT0FBT2YsZ0JBQWdCQyxNQUFNO0FBQy9CO0FBRUFNLGtCQUFrQlUsT0FBTyxDQUFDLENBQUNDO0lBQ3pCLHNFQUFzRTtJQUN0RSw2Q0FBNkM7SUFDN0Msa0VBQWtFO0lBQ2xFLDBCQUEwQjtJQUMxQlIsT0FBT0MsY0FBYyxDQUFDWCxpQkFBaUJrQixPQUFPO1FBQzVDTjtZQUNFLE1BQU1YLFNBQVNhO1lBQ2YsT0FBT2IsTUFBTSxDQUFDaUIsTUFBTTtRQUN0QjtJQUNGO0FBQ0Y7QUFFQVQsaUJBQWlCUSxPQUFPLENBQUMsQ0FBQ0M7SUFDeEIsb0VBQW9FOztJQUNsRWxCLGVBQXVCLENBQUNrQixNQUFNLEdBQUc7eUNBQUlDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO1lBQUFBLElBQUFBLENBQUFBLEtBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztRQUNyQyxNQUFNbEIsU0FBU2E7UUFDZixPQUFPYixNQUFNLENBQUNpQixNQUFNLElBQUlDO0lBQzFCO0FBQ0Y7QUFFQVgsYUFBYVMsT0FBTyxDQUFDLENBQUNHO0lBQ3BCcEIsZ0JBQWdCRyxLQUFLLENBQUM7UUFDcEJSLFFBQUFBLE9BQU0sQ0FBQ2tCLE1BQU0sQ0FBQ1EsRUFBRSxDQUFDRCxPQUFPOzZDQUFJRCxPQUFBQSxJQUFBQSxNQUFBQSxPQUFBQSxPQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxPQUFBQTtnQkFBQUEsSUFBQUEsQ0FBQUEsS0FBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O1lBQzFCLE1BQU1HLGFBQWMsT0FBSUYsTUFBTUcsTUFBTSxDQUFDLEdBQUdDLFdBQVcsS0FBS0osTUFBTUssU0FBUyxDQUNyRTtZQUVGLE1BQU1DLG1CQUFtQjFCO1lBQ3pCLElBQUkwQixnQkFBZ0IsQ0FBQ0osV0FBVyxFQUFFO2dCQUNoQyxJQUFJO29CQUNGSSxnQkFBZ0IsQ0FBQ0osV0FBVyxJQUFJSDtnQkFDbEMsRUFBRSxPQUFPUSxLQUFLO29CQUNaQyxRQUFRQyxLQUFLLENBQUUsMENBQXVDUDtvQkFDdERNLFFBQVFDLEtBQUssQ0FDWEMsQ0FBQUEsR0FBQUEsU0FBQUEsT0FBQUEsRUFBUUgsT0FBVUEsSUFBSVosT0FBTyxHQUFDLE9BQUlZLElBQUlJLEtBQUssR0FBS0osTUFBTTtnQkFFMUQ7WUFDRjtRQUNGO0lBQ0Y7QUFDRjtNQUdBLFdBQWUzQjtBQVdSOztJQUNMLE1BQU1DLFNBQVMrQixPQUFBQSxPQUFLLENBQUNDLFVBQVUsQ0FBQ0MsNEJBQUFBLGFBQWE7SUFDN0MsSUFBSSxDQUFDakMsUUFBUTtRQUNYLE1BQU0sSUFBSWUsTUFDUjtJQUVKO0lBRUEsT0FBT2Y7QUFDVDtHQVRnQkg7QUFpQlQsU0FBU0Y7SUFDZCxpQ0FBR3VCLE9BQUg7UUFBR0EsSUFBQUEsQ0FBSCx1QkFBNkM7O0lBRTdDbkIsZ0JBQWdCQyxNQUFNLEdBQUcsSUFBSU4sUUFBQUEsT0FBTSxJQUFJd0I7SUFDdkNuQixnQkFBZ0JFLGNBQWMsQ0FBQ2UsT0FBTyxDQUFDLENBQUNrQixLQUFPQTtJQUMvQ25DLGdCQUFnQkUsY0FBYyxHQUFHLEVBQUU7SUFFbkMsT0FBT0YsZ0JBQWdCQyxNQUFNO0FBQy9CO0FBTU8sU0FBU0oseUJBQXlCSSxNQUFjO0lBQ3JELE1BQU1tQyxlQUFlbkM7SUFDckIsTUFBTW9DLFdBQVcsQ0FBQztJQUVsQixLQUFLLE1BQU1DLFlBQVkvQixrQkFBbUI7UUFDeEMsSUFBSSxPQUFPNkIsWUFBWSxDQUFDRSxTQUFTLEtBQUssVUFBVTtZQUM5Q0QsUUFBUSxDQUFDQyxTQUFTLEdBQUc1QixPQUFPNkIsTUFBTSxDQUNoQ0MsTUFBTUMsT0FBTyxDQUFDTCxZQUFZLENBQUNFLFNBQVMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUM5Q0YsWUFBWSxDQUFDRSxTQUFTLEVBQ3RCLG1DQUFtQzs7WUFDckM7UUFDRjtRQUVBRCxRQUFRLENBQUNDLFNBQVMsR0FBR0YsWUFBWSxDQUFDRSxTQUFTO0lBQzdDO0lBRUEsaUdBQWlHO0lBQ2pHRCxTQUFTeEIsTUFBTSxHQUFHbEIsUUFBQUEsT0FBTSxDQUFDa0IsTUFBTTtJQUUvQkosaUJBQWlCUSxPQUFPLENBQUMsQ0FBQ0M7UUFDeEJtQixRQUFRLENBQUNuQixNQUFNLEdBQUc7NkNBQUlDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO2dCQUFBQSxJQUFBQSxDQUFBQSxLQUFBQSxHQUFBQSxTQUFBQSxDQUFBQSxLQUFBQTs7WUFDcEIsT0FBT2lCLFlBQVksQ0FBQ2xCLE1BQU0sSUFBSUM7UUFDaEM7SUFDRjtJQUVBLE9BQU9rQjtBQUNUIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvY2xpZW50L3JvdXRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBnbG9iYWwgd2luZG93ICovXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgUm91dGVyIGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyL3JvdXRlcidcbmltcG9ydCB7IFJvdXRlckNvbnRleHQgfSBmcm9tICcuLi9zaGFyZWQvbGliL3JvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IGlzRXJyb3IgZnJvbSAnLi4vbGliL2lzLWVycm9yJ1xuXG50eXBlIFNpbmdsZXRvblJvdXRlckJhc2UgPSB7XG4gIHJvdXRlcjogUm91dGVyIHwgbnVsbFxuICByZWFkeUNhbGxiYWNrczogQXJyYXk8KCkgPT4gYW55PlxuICByZWFkeShjYjogKCkgPT4gYW55KTogdm9pZFxufVxuXG5leHBvcnQgeyBSb3V0ZXIgfVxuXG5leHBvcnQgdHlwZSB7IE5leHRSb3V0ZXIgfVxuXG5leHBvcnQgdHlwZSBTaW5nbGV0b25Sb3V0ZXIgPSBTaW5nbGV0b25Sb3V0ZXJCYXNlICYgTmV4dFJvdXRlclxuXG5jb25zdCBzaW5nbGV0b25Sb3V0ZXI6IFNpbmdsZXRvblJvdXRlckJhc2UgPSB7XG4gIHJvdXRlcjogbnVsbCwgLy8gaG9sZHMgdGhlIGFjdHVhbCByb3V0ZXIgaW5zdGFuY2VcbiAgcmVhZHlDYWxsYmFja3M6IFtdLFxuICByZWFkeShjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICAgIGlmICh0aGlzLnJvdXRlcikgcmV0dXJuIGNhbGxiYWNrKClcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMucmVhZHlDYWxsYmFja3MucHVzaChjYWxsYmFjaylcbiAgICB9XG4gIH0sXG59XG5cbi8vIENyZWF0ZSBwdWJsaWMgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBvZiB0aGUgcm91dGVyIGluIHRoZSBzaW5nbGV0b25Sb3V0ZXJcbmNvbnN0IHVybFByb3BlcnR5RmllbGRzID0gW1xuICAncGF0aG5hbWUnLFxuICAncm91dGUnLFxuICAncXVlcnknLFxuICAnYXNQYXRoJyxcbiAgJ2NvbXBvbmVudHMnLFxuICAnaXNGYWxsYmFjaycsXG4gICdiYXNlUGF0aCcsXG4gICdsb2NhbGUnLFxuICAnbG9jYWxlcycsXG4gICdkZWZhdWx0TG9jYWxlJyxcbiAgJ2lzUmVhZHknLFxuICAnaXNQcmV2aWV3JyxcbiAgJ2lzTG9jYWxlRG9tYWluJyxcbiAgJ2RvbWFpbkxvY2FsZXMnLFxuXSBhcyBjb25zdFxuY29uc3Qgcm91dGVyRXZlbnRzID0gW1xuICAncm91dGVDaGFuZ2VTdGFydCcsXG4gICdiZWZvcmVIaXN0b3J5Q2hhbmdlJyxcbiAgJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLFxuICAncm91dGVDaGFuZ2VFcnJvcicsXG4gICdoYXNoQ2hhbmdlU3RhcnQnLFxuICAnaGFzaENoYW5nZUNvbXBsZXRlJyxcbl0gYXMgY29uc3RcbmV4cG9ydCB0eXBlIFJvdXRlckV2ZW50ID0gKHR5cGVvZiByb3V0ZXJFdmVudHMpW251bWJlcl1cblxuY29uc3QgY29yZU1ldGhvZEZpZWxkcyA9IFtcbiAgJ3B1c2gnLFxuICAncmVwbGFjZScsXG4gICdyZWxvYWQnLFxuICAnYmFjaycsXG4gICdwcmVmZXRjaCcsXG4gICdiZWZvcmVQb3BTdGF0ZScsXG5dIGFzIGNvbnN0XG5cbi8vIEV2ZW50cyBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBvbiB0aGUgcm91dGVyLCB0aGUgcm91dGVyIGRvZXNuJ3QgaGF2ZSB0byBiZSBpbml0aWFsaXplZCB0byB1c2UgaXRcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShzaW5nbGV0b25Sb3V0ZXIsICdldmVudHMnLCB7XG4gIGdldCgpIHtcbiAgICByZXR1cm4gUm91dGVyLmV2ZW50c1xuICB9LFxufSlcblxuZnVuY3Rpb24gZ2V0Um91dGVyKCk6IFJvdXRlciB7XG4gIGlmICghc2luZ2xldG9uUm91dGVyLnJvdXRlcikge1xuICAgIGNvbnN0IG1lc3NhZ2UgPVxuICAgICAgJ05vIHJvdXRlciBpbnN0YW5jZSBmb3VuZC5cXG4nICtcbiAgICAgICdZb3Ugc2hvdWxkIG9ubHkgdXNlIFwibmV4dC9yb3V0ZXJcIiBvbiB0aGUgY2xpZW50IHNpZGUgb2YgeW91ciBhcHAuXFxuJ1xuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG4gIHJldHVybiBzaW5nbGV0b25Sb3V0ZXIucm91dGVyXG59XG5cbnVybFByb3BlcnR5RmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gIC8vIEhlcmUgd2UgbmVlZCB0byB1c2UgT2JqZWN0LmRlZmluZVByb3BlcnR5IGJlY2F1c2Ugd2UgbmVlZCB0byByZXR1cm5cbiAgLy8gdGhlIHByb3BlcnR5IGFzc2lnbmVkIHRvIHRoZSBhY3R1YWwgcm91dGVyXG4gIC8vIFRoZSB2YWx1ZSBtaWdodCBnZXQgY2hhbmdlZCBhcyB3ZSBjaGFuZ2Ugcm91dGVzIGFuZCB0aGlzIGlzIHRoZVxuICAvLyBwcm9wZXIgd2F5IHRvIGFjY2VzcyBpdFxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc2luZ2xldG9uUm91dGVyLCBmaWVsZCwge1xuICAgIGdldCgpIHtcbiAgICAgIGNvbnN0IHJvdXRlciA9IGdldFJvdXRlcigpXG4gICAgICByZXR1cm4gcm91dGVyW2ZpZWxkXSBhcyBzdHJpbmdcbiAgICB9LFxuICB9KVxufSlcblxuY29yZU1ldGhvZEZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAvLyBXZSBkb24ndCByZWFsbHkga25vdyB0aGUgdHlwZXMgaGVyZSwgc28gd2UgYWRkIHRoZW0gbGF0ZXIgaW5zdGVhZFxuICA7KHNpbmdsZXRvblJvdXRlciBhcyBhbnkpW2ZpZWxkXSA9ICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGNvbnN0IHJvdXRlciA9IGdldFJvdXRlcigpIGFzIGFueVxuICAgIHJldHVybiByb3V0ZXJbZmllbGRdKC4uLmFyZ3MpXG4gIH1cbn0pXG5cbnJvdXRlckV2ZW50cy5mb3JFYWNoKChldmVudCkgPT4ge1xuICBzaW5nbGV0b25Sb3V0ZXIucmVhZHkoKCkgPT4ge1xuICAgIFJvdXRlci5ldmVudHMub24oZXZlbnQsICguLi5hcmdzKSA9PiB7XG4gICAgICBjb25zdCBldmVudEZpZWxkID0gYG9uJHtldmVudC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke2V2ZW50LnN1YnN0cmluZyhcbiAgICAgICAgMVxuICAgICAgKX1gXG4gICAgICBjb25zdCBfc2luZ2xldG9uUm91dGVyID0gc2luZ2xldG9uUm91dGVyIGFzIGFueVxuICAgICAgaWYgKF9zaW5nbGV0b25Sb3V0ZXJbZXZlbnRGaWVsZF0pIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBfc2luZ2xldG9uUm91dGVyW2V2ZW50RmllbGRdKC4uLmFyZ3MpXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIHdoZW4gcnVubmluZyB0aGUgUm91dGVyIGV2ZW50OiAke2V2ZW50RmllbGR9YClcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgaXNFcnJvcihlcnIpID8gYCR7ZXJyLm1lc3NhZ2V9XFxuJHtlcnIuc3RhY2t9YCA6IGVyciArICcnXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfSlcbn0pXG5cbi8vIEV4cG9ydCB0aGUgc2luZ2xldG9uUm91dGVyIGFuZCB0aGlzIGlzIHRoZSBwdWJsaWMgQVBJLlxuZXhwb3J0IGRlZmF1bHQgc2luZ2xldG9uUm91dGVyIGFzIFNpbmdsZXRvblJvdXRlclxuXG4vLyBSZWV4cG9ydCB0aGUgd2l0aFJvdXRlciBIT0NcbmV4cG9ydCB7IGRlZmF1bHQgYXMgd2l0aFJvdXRlciB9IGZyb20gJy4vd2l0aC1yb3V0ZXInXG5cbi8qKlxuICogVGhpcyBob29rIGdpdmVzIGFjY2VzcyB0aGUgW3JvdXRlciBvYmplY3RdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL3BhZ2VzL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3VzZS1yb3V0ZXIjcm91dGVyLW9iamVjdClcbiAqIGluc2lkZSB0aGUgW1BhZ2VzIFJvdXRlcl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvcGFnZXMvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbikuXG4gKlxuICogUmVhZCBtb3JlOiBbTmV4dC5qcyBEb2NzOiBgdXNlUm91dGVyYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvcGFnZXMvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdXNlLXJvdXRlcilcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVJvdXRlcigpOiBOZXh0Um91dGVyIHtcbiAgY29uc3Qgcm91dGVyID0gUmVhY3QudXNlQ29udGV4dChSb3V0ZXJDb250ZXh0KVxuICBpZiAoIXJvdXRlcikge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdOZXh0Um91dGVyIHdhcyBub3QgbW91bnRlZC4gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1yb3V0ZXItbm90LW1vdW50ZWQnXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIHJvdXRlclxufVxuXG4vKipcbiAqIENyZWF0ZSBhIHJvdXRlciBhbmQgYXNzaWduIGl0IGFzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2UuXG4gKiBUaGlzIGlzIHVzZWQgaW4gY2xpZW50IHNpZGUgd2hlbiB3ZSBhcmUgaW5pdGlhbGl6aW5nIHRoZSBhcHAuXG4gKiBUaGlzIHNob3VsZCAqKm5vdCoqIGJlIHVzZWQgaW5zaWRlIHRoZSBzZXJ2ZXIuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJvdXRlcihcbiAgLi4uYXJnczogQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBSb3V0ZXI+XG4pOiBSb3V0ZXIge1xuICBzaW5nbGV0b25Sb3V0ZXIucm91dGVyID0gbmV3IFJvdXRlciguLi5hcmdzKVxuICBzaW5nbGV0b25Sb3V0ZXIucmVhZHlDYWxsYmFja3MuZm9yRWFjaCgoY2IpID0+IGNiKCkpXG4gIHNpbmdsZXRvblJvdXRlci5yZWFkeUNhbGxiYWNrcyA9IFtdXG5cbiAgcmV0dXJuIHNpbmdsZXRvblJvdXRlci5yb3V0ZXJcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY3JlYXRlIHRoZSBgd2l0aFJvdXRlcmAgcm91dGVyIGluc3RhbmNlXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZShyb3V0ZXI6IFJvdXRlcik6IE5leHRSb3V0ZXIge1xuICBjb25zdCBzY29wZWRSb3V0ZXIgPSByb3V0ZXIgYXMgYW55XG4gIGNvbnN0IGluc3RhbmNlID0ge30gYXMgYW55XG5cbiAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiB1cmxQcm9wZXJ0eUZpZWxkcykge1xuICAgIGlmICh0eXBlb2Ygc2NvcGVkUm91dGVyW3Byb3BlcnR5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGluc3RhbmNlW3Byb3BlcnR5XSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgIEFycmF5LmlzQXJyYXkoc2NvcGVkUm91dGVyW3Byb3BlcnR5XSkgPyBbXSA6IHt9LFxuICAgICAgICBzY29wZWRSb3V0ZXJbcHJvcGVydHldXG4gICAgICApIC8vIG1ha2VzIHN1cmUgcXVlcnkgaXMgbm90IHN0YXRlZnVsXG4gICAgICBjb250aW51ZVxuICAgIH1cblxuICAgIGluc3RhbmNlW3Byb3BlcnR5XSA9IHNjb3BlZFJvdXRlcltwcm9wZXJ0eV1cbiAgfVxuXG4gIC8vIEV2ZW50cyBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBvbiB0aGUgcm91dGVyLCB0aGUgcm91dGVyIGRvZXNuJ3QgaGF2ZSB0byBiZSBpbml0aWFsaXplZCB0byB1c2UgaXRcbiAgaW5zdGFuY2UuZXZlbnRzID0gUm91dGVyLmV2ZW50c1xuXG4gIGNvcmVNZXRob2RGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICBpbnN0YW5jZVtmaWVsZF0gPSAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgIHJldHVybiBzY29wZWRSb3V0ZXJbZmllbGRdKC4uLmFyZ3MpXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBpbnN0YW5jZVxufVxuIl0sIm5hbWVzIjpbIlJvdXRlciIsImNyZWF0ZVJvdXRlciIsIm1ha2VQdWJsaWNSb3V0ZXJJbnN0YW5jZSIsInVzZVJvdXRlciIsIndpdGhSb3V0ZXIiLCJzaW5nbGV0b25Sb3V0ZXIiLCJyb3V0ZXIiLCJyZWFkeUNhbGxiYWNrcyIsInJlYWR5IiwiY2FsbGJhY2siLCJ3aW5kb3ciLCJwdXNoIiwidXJsUHJvcGVydHlGaWVsZHMiLCJyb3V0ZXJFdmVudHMiLCJjb3JlTWV0aG9kRmllbGRzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXQiLCJldmVudHMiLCJnZXRSb3V0ZXIiLCJtZXNzYWdlIiwiRXJyb3IiLCJmb3JFYWNoIiwiZmllbGQiLCJhcmdzIiwiZXZlbnQiLCJvbiIsImV2ZW50RmllbGQiLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInN1YnN0cmluZyIsIl9zaW5nbGV0b25Sb3V0ZXIiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJpc0Vycm9yIiwic3RhY2siLCJSZWFjdCIsInVzZUNvbnRleHQiLCJSb3V0ZXJDb250ZXh0IiwiY2IiLCJzY29wZWRSb3V0ZXIiLCJpbnN0YW5jZSIsInByb3BlcnR5IiwiYXNzaWduIiwiQXJyYXkiLCJpc0FycmF5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/router.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/script.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/client/script.js ***! + \*************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n handleClientScriptLoad: function() {\n return handleClientScriptLoad;\n },\n initScriptLoader: function() {\n return initScriptLoader;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"));\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ../shared/lib/head-manager-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\");\nconst _setattributesfromprops = __webpack_require__(/*! ./set-attributes-from-props */ \"./node_modules/next/dist/client/set-attributes-from-props.js\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"./node_modules/next/dist/client/request-idle-callback.js\");\nconst ScriptCache = new Map();\nconst LoadCache = new Set();\nconst insertStylesheets = (stylesheets)=>{\n // Case 1: Styles for afterInteractive/lazyOnload with appDir injected via handleClientScriptLoad\n //\n // Using ReactDOM.preinit to feature detect appDir and inject styles\n // Stylesheets might have already been loaded if initialized with Script component\n // Re-inject styles here to handle scripts loaded via handleClientScriptLoad\n // ReactDOM.preinit handles dedup and ensures the styles are loaded only once\n if (_reactdom.default.preinit) {\n stylesheets.forEach((stylesheet)=>{\n _reactdom.default.preinit(stylesheet, {\n as: 'style'\n });\n });\n return;\n }\n // Case 2: Styles for afterInteractive/lazyOnload with pages injected via handleClientScriptLoad\n //\n // We use this function to load styles when appdir is not detected\n // TODO: Use React float APIs to load styles once available for pages dir\n if (true) {\n let head = document.head;\n stylesheets.forEach((stylesheet)=>{\n let link = document.createElement('link');\n link.type = 'text/css';\n link.rel = 'stylesheet';\n link.href = stylesheet;\n head.appendChild(link);\n });\n }\n};\nconst loadScript = (props)=>{\n const { src, id, onLoad = ()=>{}, onReady = null, dangerouslySetInnerHTML, children = '', strategy = 'afterInteractive', onError, stylesheets } = props;\n const cacheKey = id || src;\n // Script has already loaded\n if (cacheKey && LoadCache.has(cacheKey)) {\n return;\n }\n // Contents of this script are already loading/loaded\n if (ScriptCache.has(src)) {\n LoadCache.add(cacheKey);\n // It is possible that multiple `next/script` components all have same \"src\", but has different \"onLoad\"\n // This is to make sure the same remote script will only load once, but \"onLoad\" are executed in order\n ScriptCache.get(src).then(onLoad, onError);\n return;\n }\n /** Execute after the script first loaded */ const afterLoad = ()=>{\n // Run onReady for the first time after load event\n if (onReady) {\n onReady();\n }\n // add cacheKey to LoadCache when load successfully\n LoadCache.add(cacheKey);\n };\n const el = document.createElement('script');\n const loadPromise = new Promise((resolve, reject)=>{\n el.addEventListener('load', function(e) {\n resolve();\n if (onLoad) {\n onLoad.call(this, e);\n }\n afterLoad();\n });\n el.addEventListener('error', function(e) {\n reject(e);\n });\n }).catch(function(e) {\n if (onError) {\n onError(e);\n }\n });\n if (dangerouslySetInnerHTML) {\n // Casting since lib.dom.d.ts doesn't have TrustedHTML yet.\n el.innerHTML = dangerouslySetInnerHTML.__html || '';\n afterLoad();\n } else if (children) {\n el.textContent = typeof children === 'string' ? children : Array.isArray(children) ? children.join('') : '';\n afterLoad();\n } else if (src) {\n el.src = src;\n // do not add cacheKey into LoadCache for remote script here\n // cacheKey will be added to LoadCache when it is actually loaded (see loadPromise above)\n ScriptCache.set(src, loadPromise);\n }\n (0, _setattributesfromprops.setAttributesFromProps)(el, props);\n if (strategy === 'worker') {\n el.setAttribute('type', 'text/partytown');\n }\n el.setAttribute('data-nscript', strategy);\n // Load styles associated with this script\n if (stylesheets) {\n insertStylesheets(stylesheets);\n }\n document.body.appendChild(el);\n};\nfunction handleClientScriptLoad(props) {\n const { strategy = 'afterInteractive' } = props;\n if (strategy === 'lazyOnload') {\n window.addEventListener('load', ()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n });\n } else {\n loadScript(props);\n }\n}\nfunction loadLazyScript(props) {\n if (document.readyState === 'complete') {\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n } else {\n window.addEventListener('load', ()=>{\n (0, _requestidlecallback.requestIdleCallback)(()=>loadScript(props));\n });\n }\n}\nfunction addBeforeInteractiveToCache() {\n const scripts = [\n ...document.querySelectorAll('[data-nscript=\"beforeInteractive\"]'),\n ...document.querySelectorAll('[data-nscript=\"beforePageRender\"]')\n ];\n scripts.forEach((script)=>{\n const cacheKey = script.id || script.getAttribute('src');\n LoadCache.add(cacheKey);\n });\n}\nfunction initScriptLoader(scriptLoaderItems) {\n scriptLoaderItems.forEach(handleClientScriptLoad);\n addBeforeInteractiveToCache();\n}\n/**\n * Load a third-party scripts in an optimized way.\n *\n * Read more: [Next.js Docs: `next/script`](https://nextjs.org/docs/app/api-reference/components/script)\n */ function Script(props) {\n const { id, src = '', onLoad = ()=>{}, onReady = null, strategy = 'afterInteractive', onError, stylesheets, ...restProps } = props;\n // Context is available only during SSR\n const { updateScripts, scripts, getIsSsr, appDir, nonce } = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n /**\n * - First mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script hasn't loaded yet (not in LoadCache)\n * onReady is skipped, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. hasLoadScriptEffectCalled.current is false, loadScript executes\n * Once the script is loaded, the onLoad and onReady will be called by then\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n *\n * - Second mount:\n * 1. The useEffect for onReady executes\n * 2. hasOnReadyEffectCalled.current is false, but the script has already loaded (found in LoadCache)\n * onReady is called, set hasOnReadyEffectCalled.current to true\n * 3. The useEffect for loadScript executes\n * 4. The script is already loaded, loadScript bails out\n * [If strict mode is enabled / is wrapped in <OffScreen /> component]\n * 5. The useEffect for onReady executes again\n * 6. hasOnReadyEffectCalled.current is true, so entire effect is skipped\n * 7. The useEffect for loadScript executes again\n * 8. hasLoadScriptEffectCalled.current is true, so entire effect is skipped\n */ const hasOnReadyEffectCalled = (0, _react.useRef)(false);\n (0, _react.useEffect)(()=>{\n const cacheKey = id || src;\n if (!hasOnReadyEffectCalled.current) {\n // Run onReady if script has loaded before but component is re-mounted\n if (onReady && cacheKey && LoadCache.has(cacheKey)) {\n onReady();\n }\n hasOnReadyEffectCalled.current = true;\n }\n }, [\n onReady,\n id,\n src\n ]);\n const hasLoadScriptEffectCalled = (0, _react.useRef)(false);\n (0, _react.useEffect)(()=>{\n if (!hasLoadScriptEffectCalled.current) {\n if (strategy === 'afterInteractive') {\n loadScript(props);\n } else if (strategy === 'lazyOnload') {\n loadLazyScript(props);\n }\n hasLoadScriptEffectCalled.current = true;\n }\n }, [\n props,\n strategy\n ]);\n if (strategy === 'beforeInteractive' || strategy === 'worker') {\n if (updateScripts) {\n scripts[strategy] = (scripts[strategy] || []).concat([\n {\n id,\n src,\n onLoad,\n onReady,\n onError,\n ...restProps\n }\n ]);\n updateScripts(scripts);\n } else if (getIsSsr && getIsSsr()) {\n // Script has already loaded during SSR\n LoadCache.add(id || src);\n } else if (getIsSsr && !getIsSsr()) {\n loadScript(props);\n }\n }\n // For the app directory, we need React Float to preload these scripts.\n if (appDir) {\n // Injecting stylesheets here handles beforeInteractive and worker scripts correctly\n // For other strategies injecting here ensures correct stylesheet order\n // ReactDOM.preinit handles loading the styles in the correct order,\n // also ensures the stylesheet is loaded only once and in a consistent manner\n //\n // Case 1: Styles for beforeInteractive/worker with appDir - handled here\n // Case 2: Styles for beforeInteractive/worker with pages dir - Not handled yet\n // Case 3: Styles for afterInteractive/lazyOnload with appDir - handled here\n // Case 4: Styles for afterInteractive/lazyOnload with pages dir - handled in insertStylesheets function\n if (stylesheets) {\n stylesheets.forEach((styleSrc)=>{\n _reactdom.default.preinit(styleSrc, {\n as: 'style'\n });\n });\n }\n // Before interactive scripts need to be loaded by Next.js' runtime instead\n // of native <script> tags, because they no longer have `defer`.\n if (strategy === 'beforeInteractive') {\n if (!src) {\n // For inlined scripts, we put the content in `children`.\n if (restProps.dangerouslySetInnerHTML) {\n // Casting since lib.dom.d.ts doesn't have TrustedHTML yet.\n restProps.children = restProps.dangerouslySetInnerHTML.__html;\n delete restProps.dangerouslySetInnerHTML;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n nonce: nonce,\n dangerouslySetInnerHTML: {\n __html: \"(self.__next_s=self.__next_s||[]).push(\" + JSON.stringify([\n 0,\n {\n ...restProps,\n id\n }\n ]) + \")\"\n }\n });\n } else {\n // @ts-ignore\n _reactdom.default.preload(src, restProps.integrity ? {\n as: 'script',\n integrity: restProps.integrity,\n nonce,\n crossOrigin: restProps.crossOrigin\n } : {\n as: 'script',\n nonce,\n crossOrigin: restProps.crossOrigin\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"script\", {\n nonce: nonce,\n dangerouslySetInnerHTML: {\n __html: \"(self.__next_s=self.__next_s||[]).push(\" + JSON.stringify([\n src,\n {\n ...restProps,\n id\n }\n ]) + \")\"\n }\n });\n }\n } else if (strategy === 'afterInteractive') {\n if (src) {\n // @ts-ignore\n _reactdom.default.preload(src, restProps.integrity ? {\n as: 'script',\n integrity: restProps.integrity,\n nonce,\n crossOrigin: restProps.crossOrigin\n } : {\n as: 'script',\n nonce,\n crossOrigin: restProps.crossOrigin\n });\n }\n }\n }\n return null;\n}\n_c = Script;\nObject.defineProperty(Script, '__nextScript', {\n value: true\n});\nconst _default = Script;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=script.js.map\nvar _c;\n$RefreshReg$(_c, \"Script\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9zY3JpcHQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBeVhBLE9BQXFCO2VBQXJCOztJQTdOZ0JBLHNCQUFzQjtlQUF0QkE7O0lBZ0NBQyxnQkFBZ0I7ZUFBaEJBOzs7Ozs7K0VBMUxLOzZFQUMwQzs2REFFNUI7b0RBQ0k7aURBQ0g7QUFFcEMsTUFBTUMsY0FBYyxJQUFJQztBQUN4QixNQUFNQyxZQUFZLElBQUlDO0FBaUJ0QixNQUFNQyxvQkFBb0IsQ0FBQ0M7SUFDekIsaUdBQWlHO0lBQ2pHLEVBQUU7SUFDRixvRUFBb0U7SUFDcEUsa0ZBQWtGO0lBQ2xGLDRFQUE0RTtJQUM1RSw2RUFBNkU7SUFDN0UsSUFBSUMsVUFBQUEsT0FBUSxDQUFDQyxPQUFPLEVBQUU7UUFDcEJGLFlBQVlHLE9BQU8sQ0FBQyxDQUFDQztZQUNuQkgsVUFBQUEsT0FBUSxDQUFDQyxPQUFPLENBQUNFLFlBQVk7Z0JBQUVDLElBQUk7WUFBUTtRQUM3QztRQUVBO0lBQ0Y7SUFFQSxnR0FBZ0c7SUFDaEcsRUFBRTtJQUNGLGtFQUFrRTtJQUNsRSx5RUFBeUU7SUFDekUsSUFBSSxJQUE2QixFQUFFO1FBQ2pDLElBQUlFLE9BQU9DLFNBQVNELElBQUk7UUFDeEJQLFlBQVlHLE9BQU8sQ0FBQyxDQUFDQztZQUNuQixJQUFJSyxPQUFPRCxTQUFTRSxhQUFhLENBQUM7WUFFbENELEtBQUtFLElBQUksR0FBRztZQUNaRixLQUFLRyxHQUFHLEdBQUc7WUFDWEgsS0FBS0ksSUFBSSxHQUFHVDtZQUVaRyxLQUFLTyxXQUFXLENBQUNMO1FBQ25CO0lBQ0Y7QUFDRjtBQUVBLE1BQU1NLGFBQWEsQ0FBQ0M7SUFDbEIsTUFBTSxFQUNKQyxHQUFHLEVBQ0hDLEVBQUUsRUFDRkMsU0FBUyxLQUFPLENBQUMsRUFDakJDLFVBQVUsSUFBSSxFQUNkQyx1QkFBdUIsRUFDdkJDLFdBQVcsRUFBRSxFQUNiQyxXQUFXLGtCQUFrQixFQUM3QkMsT0FBTyxFQUNQeEIsV0FBVyxFQUNaLEdBQUdnQjtJQUVKLE1BQU1TLFdBQVdQLE1BQU1EO0lBRXZCLDRCQUE0QjtJQUM1QixJQUFJUSxZQUFZNUIsVUFBVTZCLEdBQUcsQ0FBQ0QsV0FBVztRQUN2QztJQUNGO0lBRUEscURBQXFEO0lBQ3JELElBQUk5QixZQUFZK0IsR0FBRyxDQUFDVCxNQUFNO1FBQ3hCcEIsVUFBVThCLEdBQUcsQ0FBQ0Y7UUFDZCx3R0FBd0c7UUFDeEcsc0dBQXNHO1FBQ3RHOUIsWUFBWWlDLEdBQUcsQ0FBQ1gsS0FBS1ksSUFBSSxDQUFDVixRQUFRSztRQUNsQztJQUNGO0lBRUEsMENBQTBDLEdBQzFDLE1BQU1NLFlBQVk7UUFDaEIsa0RBQWtEO1FBQ2xELElBQUlWLFNBQVM7WUFDWEE7UUFDRjtRQUNBLG1EQUFtRDtRQUNuRHZCLFVBQVU4QixHQUFHLENBQUNGO0lBQ2hCO0lBRUEsTUFBTU0sS0FBS3ZCLFNBQVNFLGFBQWEsQ0FBQztJQUVsQyxNQUFNc0IsY0FBYyxJQUFJQyxRQUFjLENBQUNDLFNBQVNDO1FBQzlDSixHQUFHSyxnQkFBZ0IsQ0FBQyxRQUFRLFNBQVVDLENBQUM7WUFDckNIO1lBQ0EsSUFBSWYsUUFBUTtnQkFDVkEsT0FBT21CLElBQUksQ0FBQyxJQUFJLEVBQUVEO1lBQ3BCO1lBQ0FQO1FBQ0Y7UUFDQUMsR0FBR0ssZ0JBQWdCLENBQUMsU0FBUyxTQUFVQyxDQUFDO1lBQ3RDRixPQUFPRTtRQUNUO0lBQ0YsR0FBR0UsS0FBSyxDQUFDLFNBQVVGLENBQUM7UUFDbEIsSUFBSWIsU0FBUztZQUNYQSxRQUFRYTtRQUNWO0lBQ0Y7SUFFQSxJQUFJaEIseUJBQXlCO1FBQzNCLDJEQUEyRDtRQUMzRFUsR0FBR1MsU0FBUyxHQUFJbkIsd0JBQXdCb0IsTUFBTSxJQUFlO1FBRTdEWDtJQUNGLE9BQU8sSUFBSVIsVUFBVTtRQUNuQlMsR0FBR1csV0FBVyxHQUNaLE9BQU9wQixhQUFhLFdBQ2hCQSxXQUNBcUIsTUFBTUMsT0FBTyxDQUFDdEIsWUFDWkEsU0FBU3VCLElBQUksQ0FBQyxNQUNkO1FBRVJmO0lBQ0YsT0FBTyxJQUFJYixLQUFLO1FBQ2RjLEdBQUdkLEdBQUcsR0FBR0E7UUFDVCw0REFBNEQ7UUFDNUQseUZBQXlGO1FBRXpGdEIsWUFBWW1ELEdBQUcsQ0FBQzdCLEtBQUtlO0lBQ3ZCO0lBRUFlLENBQUFBLEdBQUFBLHdCQUFBQSxzQkFBQUEsRUFBdUJoQixJQUFJZjtJQUUzQixJQUFJTyxhQUFhLFVBQVU7UUFDekJRLEdBQUdpQixZQUFZLENBQUMsUUFBUTtJQUMxQjtJQUVBakIsR0FBR2lCLFlBQVksQ0FBQyxnQkFBZ0J6QjtJQUVoQywwQ0FBMEM7SUFDMUMsSUFBSXZCLGFBQWE7UUFDZkQsa0JBQWtCQztJQUNwQjtJQUVBUSxTQUFTeUMsSUFBSSxDQUFDbkMsV0FBVyxDQUFDaUI7QUFDNUI7QUFFTyxTQUFTdEMsdUJBQXVCdUIsS0FBa0I7SUFDdkQsTUFBTSxFQUFFTyxXQUFXLGtCQUFrQixFQUFFLEdBQUdQO0lBQzFDLElBQUlPLGFBQWEsY0FBYztRQUM3QmpCLE9BQU84QixnQkFBZ0IsQ0FBQyxRQUFRO1lBQzlCYyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CLElBQU1uQyxXQUFXQztRQUN2QztJQUNGLE9BQU87UUFDTEQsV0FBV0M7SUFDYjtBQUNGO0FBRUEsU0FBU21DLGVBQWVuQyxLQUFrQjtJQUN4QyxJQUFJUixTQUFTNEMsVUFBVSxLQUFLLFlBQVk7UUFDdENGLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0IsSUFBTW5DLFdBQVdDO0lBQ3ZDLE9BQU87UUFDTFYsT0FBTzhCLGdCQUFnQixDQUFDLFFBQVE7WUFDOUJjLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBbUIsRUFBQyxJQUFNbkMsV0FBV0M7UUFDdkM7SUFDRjtBQUNGO0FBRUEsU0FBU3FDO0lBQ1AsTUFBTUMsVUFBVTtXQUNYOUMsU0FBUytDLGdCQUFnQixDQUFDO1dBQzFCL0MsU0FBUytDLGdCQUFnQixDQUFDO0tBQzlCO0lBQ0RELFFBQVFuRCxPQUFPLENBQUMsQ0FBQ3FEO1FBQ2YsTUFBTS9CLFdBQVcrQixPQUFPdEMsRUFBRSxJQUFJc0MsT0FBT0MsWUFBWSxDQUFDO1FBQ2xENUQsVUFBVThCLEdBQUcsQ0FBQ0Y7SUFDaEI7QUFDRjtBQUVPLFNBQVMvQixpQkFBaUJnRSxpQkFBZ0M7SUFDL0RBLGtCQUFrQnZELE9BQU8sQ0FBQ1Y7SUFDMUI0RDtBQUNGO0FBRUE7Ozs7Q0FJQyxHQUNELGdCQUFnQnJDLEtBQWtCO0lBQ2hDLE1BQU0sRUFDSkUsRUFBRSxFQUNGRCxNQUFNLEVBQUUsRUFDUkUsU0FBUyxLQUFPLENBQUMsRUFDakJDLFVBQVUsSUFBSSxFQUNkRyxXQUFXLGtCQUFrQixFQUM3QkMsT0FBTyxFQUNQeEIsV0FBVyxFQUNYLEdBQUc0RCxXQUNKLEdBQUc1QztJQUVKLHVDQUF1QztJQUN2QyxNQUFNLEVBQUU2QyxhQUFhLEVBQUVQLE9BQU8sRUFBRVEsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBRSxHQUN2REMsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBVSxFQUFDQyxpQ0FBQUEsa0JBQWtCO0lBRS9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJDLEdBQ0QsTUFBTUMseUJBQXlCQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxFQUFPO0lBRXRDQyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1IsTUFBTTVDLFdBQVdQLE1BQU1EO1FBQ3ZCLElBQUksQ0FBQ2tELHVCQUF1QkcsT0FBTyxFQUFFO1lBQ25DLHNFQUFzRTtZQUN0RSxJQUFJbEQsV0FBV0ssWUFBWTVCLFVBQVU2QixHQUFHLENBQUNELFdBQVc7Z0JBQ2xETDtZQUNGO1lBRUErQyx1QkFBdUJHLE9BQU8sR0FBRztRQUNuQztJQUNGLEdBQUc7UUFBQ2xEO1FBQVNGO1FBQUlEO0tBQUk7SUFFckIsTUFBTXNELDRCQUE0QkgsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBTSxFQUFDO0lBRXpDQyxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1IsSUFBSSxDQUFDRSwwQkFBMEJELE9BQU8sRUFBRTtZQUN0QyxJQUFJL0MsYUFBYSxvQkFBb0I7Z0JBQ25DUixXQUFXQztZQUNiLE9BQU8sSUFBSU8sYUFBYSxjQUFjO2dCQUNwQzRCLGVBQWVuQztZQUNqQjtZQUVBdUQsMEJBQTBCRCxPQUFPLEdBQUc7UUFDdEM7SUFDRixHQUFHO1FBQUN0RDtRQUFPTztLQUFTO0lBRXBCLElBQUlBLGFBQWEsdUJBQXVCQSxhQUFhLFVBQVU7UUFDN0QsSUFBSXNDLGVBQWU7WUFDakJQLE9BQU8sQ0FBQy9CLFNBQVMsR0FBSStCLENBQUFBLE9BQU8sQ0FBQy9CLFNBQVMsSUFBSSxJQUFJaUQsTUFBTSxDQUFDO2dCQUNuRDtvQkFDRXREO29CQUNBRDtvQkFDQUU7b0JBQ0FDO29CQUNBSTtvQkFDQSxHQUFHb0MsU0FBUztnQkFDZDthQUNEO1lBQ0RDLGNBQWNQO1FBQ2hCLE9BQU8sSUFBSVEsWUFBWUEsWUFBWTtZQUNqQyx1Q0FBdUM7WUFDdkNqRSxVQUFVOEIsR0FBRyxDQUFDVCxNQUFNRDtRQUN0QixPQUFPLElBQUk2QyxZQUFZLENBQUNBLFlBQVk7WUFDbEMvQyxXQUFXQztRQUNiO0lBQ0Y7SUFFQSx1RUFBdUU7SUFDdkUsSUFBSStDLFFBQVE7UUFDVixvRkFBb0Y7UUFDcEYsdUVBQXVFO1FBQ3ZFLG9FQUFvRTtRQUNwRSw2RUFBNkU7UUFDN0UsRUFBRTtRQUNGLHlFQUF5RTtRQUN6RSwrRUFBK0U7UUFDL0UsNEVBQTRFO1FBQzVFLHdHQUF3RztRQUN4RyxJQUFJL0QsYUFBYTtZQUNmQSxZQUFZRyxPQUFPLENBQUMsQ0FBQ3NFO2dCQUNuQnhFLFVBQUFBLE9BQVEsQ0FBQ0MsT0FBTyxDQUFDdUUsVUFBVTtvQkFBRXBFLElBQUk7Z0JBQVE7WUFDM0M7UUFDRjtRQUVBLDJFQUEyRTtRQUMzRSxnRUFBZ0U7UUFDaEUsSUFBSWtCLGFBQWEscUJBQXFCO1lBQ3BDLElBQUksQ0FBQ04sS0FBSztnQkFDUix5REFBeUQ7Z0JBQ3pELElBQUkyQyxVQUFVdkMsdUJBQXVCLEVBQUU7b0JBQ3JDLDJEQUEyRDtvQkFDM0R1QyxVQUFVdEMsUUFBUSxHQUFHc0MsVUFBVXZDLHVCQUF1QixDQUNuRG9CLE1BQU07b0JBQ1QsT0FBT21CLFVBQVV2Qyx1QkFBdUI7Z0JBQzFDO2dCQUVBLHFCQUNFLHFCQUFDbUMsVUFBQUE7b0JBQ0NRLE9BQU9BO29CQUNQM0MseUJBQXlCO3dCQUN2Qm9CLFFBQVMsNENBQXlDaUMsS0FBS0MsU0FBUyxDQUFDOzRCQUMvRDs0QkFDQTtnQ0FBRSxHQUFHZixTQUFTO2dDQUFFMUM7NEJBQUc7eUJBQ3BCLElBQUU7b0JBQ0w7O1lBR04sT0FBTztnQkFDTCxhQUFhO2dCQUNiakIsVUFBQUEsT0FBUSxDQUFDMkUsT0FBTyxDQUNkM0QsS0FDQTJDLFVBQVVpQixTQUFTLEdBQ2Y7b0JBQ0V4RSxJQUFJO29CQUNKd0UsV0FBV2pCLFVBQVVpQixTQUFTO29CQUM5QmI7b0JBQ0FjLGFBQWFsQixVQUFVa0IsV0FBVztnQkFDcEMsSUFDQTtvQkFBRXpFLElBQUk7b0JBQVUyRDtvQkFBT2MsYUFBYWxCLFVBQVVrQixXQUFXO2dCQUFDO2dCQUVoRSxxQkFDRSxxQkFBQ3RCLFVBQUFBO29CQUNDUSxPQUFPQTtvQkFDUDNDLHlCQUF5Qjt3QkFDdkJvQixRQUFTLDRDQUF5Q2lDLEtBQUtDLFNBQVMsQ0FBQzs0QkFDL0QxRDs0QkFDQTtnQ0FBRSxHQUFHMkMsU0FBUztnQ0FBRTFDOzRCQUFHO3lCQUNwQixJQUFFO29CQUNMOztZQUdOO1FBQ0YsT0FBTyxJQUFJSyxhQUFhLG9CQUFvQjtZQUMxQyxJQUFJTixLQUFLO2dCQUNQLGFBQWE7Z0JBQ2JoQixVQUFBQSxPQUFRLENBQUMyRSxPQUFPLENBQ2QzRCxLQUNBMkMsVUFBVWlCLFNBQVMsR0FDZjtvQkFDRXhFLElBQUk7b0JBQ0p3RSxXQUFXakIsVUFBVWlCLFNBQVM7b0JBQzlCYjtvQkFDQWMsYUFBYWxCLFVBQVVrQixXQUFXO2dCQUNwQyxJQUNBO29CQUFFekUsSUFBSTtvQkFBVTJEO29CQUFPYyxhQUFhbEIsVUFBVWtCLFdBQVc7Z0JBQUM7WUFFbEU7UUFDRjtJQUNGO0lBRUEsT0FBTztBQUNUO0tBL0tTbkI7QUFpTFRvQixPQUFPQyxjQUFjLENBQUNyQixRQUFRLGdCQUFnQjtJQUFFc0IsT0FBTztBQUFLO01BRTVELFdBQWV0QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvc3JjL2NsaWVudC9zY3JpcHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlQ29udGV4dCwgdXNlUmVmLCB0eXBlIEpTWCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBTY3JpcHRIVE1MQXR0cmlidXRlcyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgSGVhZE1hbmFnZXJDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi9oZWFkLW1hbmFnZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IHNldEF0dHJpYnV0ZXNGcm9tUHJvcHMgfSBmcm9tICcuL3NldC1hdHRyaWJ1dGVzLWZyb20tcHJvcHMnXG5pbXBvcnQgeyByZXF1ZXN0SWRsZUNhbGxiYWNrIH0gZnJvbSAnLi9yZXF1ZXN0LWlkbGUtY2FsbGJhY2snXG5cbmNvbnN0IFNjcmlwdENhY2hlID0gbmV3IE1hcCgpXG5jb25zdCBMb2FkQ2FjaGUgPSBuZXcgU2V0KClcblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHRQcm9wcyBleHRlbmRzIFNjcmlwdEhUTUxBdHRyaWJ1dGVzPEhUTUxTY3JpcHRFbGVtZW50PiB7XG4gIHN0cmF0ZWd5PzogJ2FmdGVySW50ZXJhY3RpdmUnIHwgJ2xhenlPbmxvYWQnIHwgJ2JlZm9yZUludGVyYWN0aXZlJyB8ICd3b3JrZXInXG4gIGlkPzogc3RyaW5nXG4gIG9uTG9hZD86IChlOiBhbnkpID0+IHZvaWRcbiAgb25SZWFkeT86ICgpID0+IHZvaWQgfCBudWxsXG4gIG9uRXJyb3I/OiAoZTogYW55KSA9PiB2b2lkXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG4gIHN0eWxlc2hlZXRzPzogc3RyaW5nW11cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYFNjcmlwdFByb3BzYCBpbnN0ZWFkLlxuICovXG5leHBvcnQgdHlwZSBQcm9wcyA9IFNjcmlwdFByb3BzXG5cbmNvbnN0IGluc2VydFN0eWxlc2hlZXRzID0gKHN0eWxlc2hlZXRzOiBzdHJpbmdbXSkgPT4ge1xuICAvLyBDYXNlIDE6IFN0eWxlcyBmb3IgYWZ0ZXJJbnRlcmFjdGl2ZS9sYXp5T25sb2FkIHdpdGggYXBwRGlyIGluamVjdGVkIHZpYSBoYW5kbGVDbGllbnRTY3JpcHRMb2FkXG4gIC8vXG4gIC8vIFVzaW5nIFJlYWN0RE9NLnByZWluaXQgdG8gZmVhdHVyZSBkZXRlY3QgYXBwRGlyIGFuZCBpbmplY3Qgc3R5bGVzXG4gIC8vIFN0eWxlc2hlZXRzIG1pZ2h0IGhhdmUgYWxyZWFkeSBiZWVuIGxvYWRlZCBpZiBpbml0aWFsaXplZCB3aXRoIFNjcmlwdCBjb21wb25lbnRcbiAgLy8gUmUtaW5qZWN0IHN0eWxlcyBoZXJlIHRvIGhhbmRsZSBzY3JpcHRzIGxvYWRlZCB2aWEgaGFuZGxlQ2xpZW50U2NyaXB0TG9hZFxuICAvLyBSZWFjdERPTS5wcmVpbml0IGhhbmRsZXMgZGVkdXAgYW5kIGVuc3VyZXMgdGhlIHN0eWxlcyBhcmUgbG9hZGVkIG9ubHkgb25jZVxuICBpZiAoUmVhY3RET00ucHJlaW5pdCkge1xuICAgIHN0eWxlc2hlZXRzLmZvckVhY2goKHN0eWxlc2hlZXQ6IHN0cmluZykgPT4ge1xuICAgICAgUmVhY3RET00ucHJlaW5pdChzdHlsZXNoZWV0LCB7IGFzOiAnc3R5bGUnIH0pXG4gICAgfSlcblxuICAgIHJldHVyblxuICB9XG5cbiAgLy8gQ2FzZSAyOiBTdHlsZXMgZm9yIGFmdGVySW50ZXJhY3RpdmUvbGF6eU9ubG9hZCB3aXRoIHBhZ2VzIGluamVjdGVkIHZpYSBoYW5kbGVDbGllbnRTY3JpcHRMb2FkXG4gIC8vXG4gIC8vIFdlIHVzZSB0aGlzIGZ1bmN0aW9uIHRvIGxvYWQgc3R5bGVzIHdoZW4gYXBwZGlyIGlzIG5vdCBkZXRlY3RlZFxuICAvLyBUT0RPOiBVc2UgUmVhY3QgZmxvYXQgQVBJcyB0byBsb2FkIHN0eWxlcyBvbmNlIGF2YWlsYWJsZSBmb3IgcGFnZXMgZGlyXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIGxldCBoZWFkID0gZG9jdW1lbnQuaGVhZFxuICAgIHN0eWxlc2hlZXRzLmZvckVhY2goKHN0eWxlc2hlZXQ6IHN0cmluZykgPT4ge1xuICAgICAgbGV0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJylcblxuICAgICAgbGluay50eXBlID0gJ3RleHQvY3NzJ1xuICAgICAgbGluay5yZWwgPSAnc3R5bGVzaGVldCdcbiAgICAgIGxpbmsuaHJlZiA9IHN0eWxlc2hlZXRcblxuICAgICAgaGVhZC5hcHBlbmRDaGlsZChsaW5rKVxuICAgIH0pXG4gIH1cbn1cblxuY29uc3QgbG9hZFNjcmlwdCA9IChwcm9wczogU2NyaXB0UHJvcHMpOiB2b2lkID0+IHtcbiAgY29uc3Qge1xuICAgIHNyYyxcbiAgICBpZCxcbiAgICBvbkxvYWQgPSAoKSA9PiB7fSxcbiAgICBvblJlYWR5ID0gbnVsbCxcbiAgICBkYW5nZXJvdXNseVNldElubmVySFRNTCxcbiAgICBjaGlsZHJlbiA9ICcnLFxuICAgIHN0cmF0ZWd5ID0gJ2FmdGVySW50ZXJhY3RpdmUnLFxuICAgIG9uRXJyb3IsXG4gICAgc3R5bGVzaGVldHMsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IGNhY2hlS2V5ID0gaWQgfHwgc3JjXG5cbiAgLy8gU2NyaXB0IGhhcyBhbHJlYWR5IGxvYWRlZFxuICBpZiAoY2FjaGVLZXkgJiYgTG9hZENhY2hlLmhhcyhjYWNoZUtleSkpIHtcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8vIENvbnRlbnRzIG9mIHRoaXMgc2NyaXB0IGFyZSBhbHJlYWR5IGxvYWRpbmcvbG9hZGVkXG4gIGlmIChTY3JpcHRDYWNoZS5oYXMoc3JjKSkge1xuICAgIExvYWRDYWNoZS5hZGQoY2FjaGVLZXkpXG4gICAgLy8gSXQgaXMgcG9zc2libGUgdGhhdCBtdWx0aXBsZSBgbmV4dC9zY3JpcHRgIGNvbXBvbmVudHMgYWxsIGhhdmUgc2FtZSBcInNyY1wiLCBidXQgaGFzIGRpZmZlcmVudCBcIm9uTG9hZFwiXG4gICAgLy8gVGhpcyBpcyB0byBtYWtlIHN1cmUgdGhlIHNhbWUgcmVtb3RlIHNjcmlwdCB3aWxsIG9ubHkgbG9hZCBvbmNlLCBidXQgXCJvbkxvYWRcIiBhcmUgZXhlY3V0ZWQgaW4gb3JkZXJcbiAgICBTY3JpcHRDYWNoZS5nZXQoc3JjKS50aGVuKG9uTG9hZCwgb25FcnJvcilcbiAgICByZXR1cm5cbiAgfVxuXG4gIC8qKiBFeGVjdXRlIGFmdGVyIHRoZSBzY3JpcHQgZmlyc3QgbG9hZGVkICovXG4gIGNvbnN0IGFmdGVyTG9hZCA9ICgpID0+IHtcbiAgICAvLyBSdW4gb25SZWFkeSBmb3IgdGhlIGZpcnN0IHRpbWUgYWZ0ZXIgbG9hZCBldmVudFxuICAgIGlmIChvblJlYWR5KSB7XG4gICAgICBvblJlYWR5KClcbiAgICB9XG4gICAgLy8gYWRkIGNhY2hlS2V5IHRvIExvYWRDYWNoZSB3aGVuIGxvYWQgc3VjY2Vzc2Z1bGx5XG4gICAgTG9hZENhY2hlLmFkZChjYWNoZUtleSlcbiAgfVxuXG4gIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JylcblxuICBjb25zdCBsb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBlbC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIHJlc29sdmUoKVxuICAgICAgaWYgKG9uTG9hZCkge1xuICAgICAgICBvbkxvYWQuY2FsbCh0aGlzLCBlKVxuICAgICAgfVxuICAgICAgYWZ0ZXJMb2FkKClcbiAgICB9KVxuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIHJlamVjdChlKVxuICAgIH0pXG4gIH0pLmNhdGNoKGZ1bmN0aW9uIChlKSB7XG4gICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgIG9uRXJyb3IoZSlcbiAgICB9XG4gIH0pXG5cbiAgaWYgKGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSB7XG4gICAgLy8gQ2FzdGluZyBzaW5jZSBsaWIuZG9tLmQudHMgZG9lc24ndCBoYXZlIFRydXN0ZWRIVE1MIHlldC5cbiAgICBlbC5pbm5lckhUTUwgPSAoZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sIGFzIHN0cmluZykgfHwgJydcblxuICAgIGFmdGVyTG9hZCgpXG4gIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcbiAgICBlbC50ZXh0Q29udGVudCA9XG4gICAgICB0eXBlb2YgY2hpbGRyZW4gPT09ICdzdHJpbmcnXG4gICAgICAgID8gY2hpbGRyZW5cbiAgICAgICAgOiBBcnJheS5pc0FycmF5KGNoaWxkcmVuKVxuICAgICAgICAgID8gY2hpbGRyZW4uam9pbignJylcbiAgICAgICAgICA6ICcnXG5cbiAgICBhZnRlckxvYWQoKVxuICB9IGVsc2UgaWYgKHNyYykge1xuICAgIGVsLnNyYyA9IHNyY1xuICAgIC8vIGRvIG5vdCBhZGQgY2FjaGVLZXkgaW50byBMb2FkQ2FjaGUgZm9yIHJlbW90ZSBzY3JpcHQgaGVyZVxuICAgIC8vIGNhY2hlS2V5IHdpbGwgYmUgYWRkZWQgdG8gTG9hZENhY2hlIHdoZW4gaXQgaXMgYWN0dWFsbHkgbG9hZGVkIChzZWUgbG9hZFByb21pc2UgYWJvdmUpXG5cbiAgICBTY3JpcHRDYWNoZS5zZXQoc3JjLCBsb2FkUHJvbWlzZSlcbiAgfVxuXG4gIHNldEF0dHJpYnV0ZXNGcm9tUHJvcHMoZWwsIHByb3BzKVxuXG4gIGlmIChzdHJhdGVneSA9PT0gJ3dvcmtlcicpIHtcbiAgICBlbC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAndGV4dC9wYXJ0eXRvd24nKVxuICB9XG5cbiAgZWwuc2V0QXR0cmlidXRlKCdkYXRhLW5zY3JpcHQnLCBzdHJhdGVneSlcblxuICAvLyBMb2FkIHN0eWxlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBzY3JpcHRcbiAgaWYgKHN0eWxlc2hlZXRzKSB7XG4gICAgaW5zZXJ0U3R5bGVzaGVldHMoc3R5bGVzaGVldHMpXG4gIH1cblxuICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlQ2xpZW50U2NyaXB0TG9hZChwcm9wczogU2NyaXB0UHJvcHMpIHtcbiAgY29uc3QgeyBzdHJhdGVneSA9ICdhZnRlckludGVyYWN0aXZlJyB9ID0gcHJvcHNcbiAgaWYgKHN0cmF0ZWd5ID09PSAnbGF6eU9ubG9hZCcpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcbiAgICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4gbG9hZFNjcmlwdChwcm9wcykpXG4gICAgfSlcbiAgfSBlbHNlIHtcbiAgICBsb2FkU2NyaXB0KHByb3BzKVxuICB9XG59XG5cbmZ1bmN0aW9uIGxvYWRMYXp5U2NyaXB0KHByb3BzOiBTY3JpcHRQcm9wcykge1xuICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgIHJlcXVlc3RJZGxlQ2FsbGJhY2soKCkgPT4gbG9hZFNjcmlwdChwcm9wcykpXG4gIH0gZWxzZSB7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCAoKSA9PiB7XG4gICAgICByZXF1ZXN0SWRsZUNhbGxiYWNrKCgpID0+IGxvYWRTY3JpcHQocHJvcHMpKVxuICAgIH0pXG4gIH1cbn1cblxuZnVuY3Rpb24gYWRkQmVmb3JlSW50ZXJhY3RpdmVUb0NhY2hlKCkge1xuICBjb25zdCBzY3JpcHRzID0gW1xuICAgIC4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLW5zY3JpcHQ9XCJiZWZvcmVJbnRlcmFjdGl2ZVwiXScpLFxuICAgIC4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLW5zY3JpcHQ9XCJiZWZvcmVQYWdlUmVuZGVyXCJdJyksXG4gIF1cbiAgc2NyaXB0cy5mb3JFYWNoKChzY3JpcHQpID0+IHtcbiAgICBjb25zdCBjYWNoZUtleSA9IHNjcmlwdC5pZCB8fCBzY3JpcHQuZ2V0QXR0cmlidXRlKCdzcmMnKVxuICAgIExvYWRDYWNoZS5hZGQoY2FjaGVLZXkpXG4gIH0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0U2NyaXB0TG9hZGVyKHNjcmlwdExvYWRlckl0ZW1zOiBTY3JpcHRQcm9wc1tdKSB7XG4gIHNjcmlwdExvYWRlckl0ZW1zLmZvckVhY2goaGFuZGxlQ2xpZW50U2NyaXB0TG9hZClcbiAgYWRkQmVmb3JlSW50ZXJhY3RpdmVUb0NhY2hlKClcbn1cblxuLyoqXG4gKiBMb2FkIGEgdGhpcmQtcGFydHkgc2NyaXB0cyBpbiBhbiBvcHRpbWl6ZWQgd2F5LlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYG5leHQvc2NyaXB0YF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvY29tcG9uZW50cy9zY3JpcHQpXG4gKi9cbmZ1bmN0aW9uIFNjcmlwdChwcm9wczogU2NyaXB0UHJvcHMpOiBKU1guRWxlbWVudCB8IG51bGwge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgc3JjID0gJycsXG4gICAgb25Mb2FkID0gKCkgPT4ge30sXG4gICAgb25SZWFkeSA9IG51bGwsXG4gICAgc3RyYXRlZ3kgPSAnYWZ0ZXJJbnRlcmFjdGl2ZScsXG4gICAgb25FcnJvcixcbiAgICBzdHlsZXNoZWV0cyxcbiAgICAuLi5yZXN0UHJvcHNcbiAgfSA9IHByb3BzXG5cbiAgLy8gQ29udGV4dCBpcyBhdmFpbGFibGUgb25seSBkdXJpbmcgU1NSXG4gIGNvbnN0IHsgdXBkYXRlU2NyaXB0cywgc2NyaXB0cywgZ2V0SXNTc3IsIGFwcERpciwgbm9uY2UgfSA9XG4gICAgdXNlQ29udGV4dChIZWFkTWFuYWdlckNvbnRleHQpXG5cbiAgLyoqXG4gICAqIC0gRmlyc3QgbW91bnQ6XG4gICAqICAgMS4gVGhlIHVzZUVmZmVjdCBmb3Igb25SZWFkeSBleGVjdXRlc1xuICAgKiAgIDIuIGhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCBpcyBmYWxzZSwgYnV0IHRoZSBzY3JpcHQgaGFzbid0IGxvYWRlZCB5ZXQgKG5vdCBpbiBMb2FkQ2FjaGUpXG4gICAqICAgICAgb25SZWFkeSBpcyBza2lwcGVkLCBzZXQgaGFzT25SZWFkeUVmZmVjdENhbGxlZC5jdXJyZW50IHRvIHRydWVcbiAgICogICAzLiBUaGUgdXNlRWZmZWN0IGZvciBsb2FkU2NyaXB0IGV4ZWN1dGVzXG4gICAqICAgNC4gaGFzTG9hZFNjcmlwdEVmZmVjdENhbGxlZC5jdXJyZW50IGlzIGZhbHNlLCBsb2FkU2NyaXB0IGV4ZWN1dGVzXG4gICAqICAgICAgT25jZSB0aGUgc2NyaXB0IGlzIGxvYWRlZCwgdGhlIG9uTG9hZCBhbmQgb25SZWFkeSB3aWxsIGJlIGNhbGxlZCBieSB0aGVuXG4gICAqICAgW0lmIHN0cmljdCBtb2RlIGlzIGVuYWJsZWQgLyBpcyB3cmFwcGVkIGluIDxPZmZTY3JlZW4gLz4gY29tcG9uZW50XVxuICAgKiAgIDUuIFRoZSB1c2VFZmZlY3QgZm9yIG9uUmVhZHkgZXhlY3V0ZXMgYWdhaW5cbiAgICogICA2LiBoYXNPblJlYWR5RWZmZWN0Q2FsbGVkLmN1cnJlbnQgaXMgdHJ1ZSwgc28gZW50aXJlIGVmZmVjdCBpcyBza2lwcGVkXG4gICAqICAgNy4gVGhlIHVzZUVmZmVjdCBmb3IgbG9hZFNjcmlwdCBleGVjdXRlcyBhZ2FpblxuICAgKiAgIDguIGhhc0xvYWRTY3JpcHRFZmZlY3RDYWxsZWQuY3VycmVudCBpcyB0cnVlLCBzbyBlbnRpcmUgZWZmZWN0IGlzIHNraXBwZWRcbiAgICpcbiAgICogLSBTZWNvbmQgbW91bnQ6XG4gICAqICAgMS4gVGhlIHVzZUVmZmVjdCBmb3Igb25SZWFkeSBleGVjdXRlc1xuICAgKiAgIDIuIGhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCBpcyBmYWxzZSwgYnV0IHRoZSBzY3JpcHQgaGFzIGFscmVhZHkgbG9hZGVkIChmb3VuZCBpbiBMb2FkQ2FjaGUpXG4gICAqICAgICAgb25SZWFkeSBpcyBjYWxsZWQsIHNldCBoYXNPblJlYWR5RWZmZWN0Q2FsbGVkLmN1cnJlbnQgdG8gdHJ1ZVxuICAgKiAgIDMuIFRoZSB1c2VFZmZlY3QgZm9yIGxvYWRTY3JpcHQgZXhlY3V0ZXNcbiAgICogICA0LiBUaGUgc2NyaXB0IGlzIGFscmVhZHkgbG9hZGVkLCBsb2FkU2NyaXB0IGJhaWxzIG91dFxuICAgKiAgIFtJZiBzdHJpY3QgbW9kZSBpcyBlbmFibGVkIC8gaXMgd3JhcHBlZCBpbiA8T2ZmU2NyZWVuIC8+IGNvbXBvbmVudF1cbiAgICogICA1LiBUaGUgdXNlRWZmZWN0IGZvciBvblJlYWR5IGV4ZWN1dGVzIGFnYWluXG4gICAqICAgNi4gaGFzT25SZWFkeUVmZmVjdENhbGxlZC5jdXJyZW50IGlzIHRydWUsIHNvIGVudGlyZSBlZmZlY3QgaXMgc2tpcHBlZFxuICAgKiAgIDcuIFRoZSB1c2VFZmZlY3QgZm9yIGxvYWRTY3JpcHQgZXhlY3V0ZXMgYWdhaW5cbiAgICogICA4LiBoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkLmN1cnJlbnQgaXMgdHJ1ZSwgc28gZW50aXJlIGVmZmVjdCBpcyBza2lwcGVkXG4gICAqL1xuICBjb25zdCBoYXNPblJlYWR5RWZmZWN0Q2FsbGVkID0gdXNlUmVmKGZhbHNlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgY2FjaGVLZXkgPSBpZCB8fCBzcmNcbiAgICBpZiAoIWhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCkge1xuICAgICAgLy8gUnVuIG9uUmVhZHkgaWYgc2NyaXB0IGhhcyBsb2FkZWQgYmVmb3JlIGJ1dCBjb21wb25lbnQgaXMgcmUtbW91bnRlZFxuICAgICAgaWYgKG9uUmVhZHkgJiYgY2FjaGVLZXkgJiYgTG9hZENhY2hlLmhhcyhjYWNoZUtleSkpIHtcbiAgICAgICAgb25SZWFkeSgpXG4gICAgICB9XG5cbiAgICAgIGhhc09uUmVhZHlFZmZlY3RDYWxsZWQuY3VycmVudCA9IHRydWVcbiAgICB9XG4gIH0sIFtvblJlYWR5LCBpZCwgc3JjXSlcblxuICBjb25zdCBoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkID0gdXNlUmVmKGZhbHNlKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFoYXNMb2FkU2NyaXB0RWZmZWN0Q2FsbGVkLmN1cnJlbnQpIHtcbiAgICAgIGlmIChzdHJhdGVneSA9PT0gJ2FmdGVySW50ZXJhY3RpdmUnKSB7XG4gICAgICAgIGxvYWRTY3JpcHQocHJvcHMpXG4gICAgICB9IGVsc2UgaWYgKHN0cmF0ZWd5ID09PSAnbGF6eU9ubG9hZCcpIHtcbiAgICAgICAgbG9hZExhenlTY3JpcHQocHJvcHMpXG4gICAgICB9XG5cbiAgICAgIGhhc0xvYWRTY3JpcHRFZmZlY3RDYWxsZWQuY3VycmVudCA9IHRydWVcbiAgICB9XG4gIH0sIFtwcm9wcywgc3RyYXRlZ3ldKVxuXG4gIGlmIChzdHJhdGVneSA9PT0gJ2JlZm9yZUludGVyYWN0aXZlJyB8fCBzdHJhdGVneSA9PT0gJ3dvcmtlcicpIHtcbiAgICBpZiAodXBkYXRlU2NyaXB0cykge1xuICAgICAgc2NyaXB0c1tzdHJhdGVneV0gPSAoc2NyaXB0c1tzdHJhdGVneV0gfHwgW10pLmNvbmNhdChbXG4gICAgICAgIHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBzcmMsXG4gICAgICAgICAgb25Mb2FkLFxuICAgICAgICAgIG9uUmVhZHksXG4gICAgICAgICAgb25FcnJvcixcbiAgICAgICAgICAuLi5yZXN0UHJvcHMsXG4gICAgICAgIH0sXG4gICAgICBdKVxuICAgICAgdXBkYXRlU2NyaXB0cyhzY3JpcHRzKVxuICAgIH0gZWxzZSBpZiAoZ2V0SXNTc3IgJiYgZ2V0SXNTc3IoKSkge1xuICAgICAgLy8gU2NyaXB0IGhhcyBhbHJlYWR5IGxvYWRlZCBkdXJpbmcgU1NSXG4gICAgICBMb2FkQ2FjaGUuYWRkKGlkIHx8IHNyYylcbiAgICB9IGVsc2UgaWYgKGdldElzU3NyICYmICFnZXRJc1NzcigpKSB7XG4gICAgICBsb2FkU2NyaXB0KHByb3BzKVxuICAgIH1cbiAgfVxuXG4gIC8vIEZvciB0aGUgYXBwIGRpcmVjdG9yeSwgd2UgbmVlZCBSZWFjdCBGbG9hdCB0byBwcmVsb2FkIHRoZXNlIHNjcmlwdHMuXG4gIGlmIChhcHBEaXIpIHtcbiAgICAvLyBJbmplY3Rpbmcgc3R5bGVzaGVldHMgaGVyZSBoYW5kbGVzIGJlZm9yZUludGVyYWN0aXZlIGFuZCB3b3JrZXIgc2NyaXB0cyBjb3JyZWN0bHlcbiAgICAvLyBGb3Igb3RoZXIgc3RyYXRlZ2llcyBpbmplY3RpbmcgaGVyZSBlbnN1cmVzIGNvcnJlY3Qgc3R5bGVzaGVldCBvcmRlclxuICAgIC8vIFJlYWN0RE9NLnByZWluaXQgaGFuZGxlcyBsb2FkaW5nIHRoZSBzdHlsZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIsXG4gICAgLy8gYWxzbyBlbnN1cmVzIHRoZSBzdHlsZXNoZWV0IGlzIGxvYWRlZCBvbmx5IG9uY2UgYW5kIGluIGEgY29uc2lzdGVudCBtYW5uZXJcbiAgICAvL1xuICAgIC8vIENhc2UgMTogU3R5bGVzIGZvciBiZWZvcmVJbnRlcmFjdGl2ZS93b3JrZXIgd2l0aCBhcHBEaXIgLSBoYW5kbGVkIGhlcmVcbiAgICAvLyBDYXNlIDI6IFN0eWxlcyBmb3IgYmVmb3JlSW50ZXJhY3RpdmUvd29ya2VyIHdpdGggcGFnZXMgZGlyIC0gTm90IGhhbmRsZWQgeWV0XG4gICAgLy8gQ2FzZSAzOiBTdHlsZXMgZm9yIGFmdGVySW50ZXJhY3RpdmUvbGF6eU9ubG9hZCB3aXRoIGFwcERpciAtIGhhbmRsZWQgaGVyZVxuICAgIC8vIENhc2UgNDogU3R5bGVzIGZvciBhZnRlckludGVyYWN0aXZlL2xhenlPbmxvYWQgd2l0aCBwYWdlcyBkaXIgLSBoYW5kbGVkIGluIGluc2VydFN0eWxlc2hlZXRzIGZ1bmN0aW9uXG4gICAgaWYgKHN0eWxlc2hlZXRzKSB7XG4gICAgICBzdHlsZXNoZWV0cy5mb3JFYWNoKChzdHlsZVNyYykgPT4ge1xuICAgICAgICBSZWFjdERPTS5wcmVpbml0KHN0eWxlU3JjLCB7IGFzOiAnc3R5bGUnIH0pXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIEJlZm9yZSBpbnRlcmFjdGl2ZSBzY3JpcHRzIG5lZWQgdG8gYmUgbG9hZGVkIGJ5IE5leHQuanMnIHJ1bnRpbWUgaW5zdGVhZFxuICAgIC8vIG9mIG5hdGl2ZSA8c2NyaXB0PiB0YWdzLCBiZWNhdXNlIHRoZXkgbm8gbG9uZ2VyIGhhdmUgYGRlZmVyYC5cbiAgICBpZiAoc3RyYXRlZ3kgPT09ICdiZWZvcmVJbnRlcmFjdGl2ZScpIHtcbiAgICAgIGlmICghc3JjKSB7XG4gICAgICAgIC8vIEZvciBpbmxpbmVkIHNjcmlwdHMsIHdlIHB1dCB0aGUgY29udGVudCBpbiBgY2hpbGRyZW5gLlxuICAgICAgICBpZiAocmVzdFByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MKSB7XG4gICAgICAgICAgLy8gQ2FzdGluZyBzaW5jZSBsaWIuZG9tLmQudHMgZG9lc24ndCBoYXZlIFRydXN0ZWRIVE1MIHlldC5cbiAgICAgICAgICByZXN0UHJvcHMuY2hpbGRyZW4gPSByZXN0UHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcbiAgICAgICAgICAgIC5fX2h0bWwgYXMgc3RyaW5nXG4gICAgICAgICAgZGVsZXRlIHJlc3RQcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgICBub25jZT17bm9uY2V9XG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICBfX2h0bWw6IGAoc2VsZi5fX25leHRfcz1zZWxmLl9fbmV4dF9zfHxbXSkucHVzaCgke0pTT04uc3RyaW5naWZ5KFtcbiAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgIHsgLi4ucmVzdFByb3BzLCBpZCB9LFxuICAgICAgICAgICAgICBdKX0pYCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBSZWFjdERPTS5wcmVsb2FkKFxuICAgICAgICAgIHNyYyxcbiAgICAgICAgICByZXN0UHJvcHMuaW50ZWdyaXR5XG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBhczogJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgaW50ZWdyaXR5OiByZXN0UHJvcHMuaW50ZWdyaXR5LFxuICAgICAgICAgICAgICAgIG5vbmNlLFxuICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiByZXN0UHJvcHMuY3Jvc3NPcmlnaW4sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogeyBhczogJ3NjcmlwdCcsIG5vbmNlLCBjcm9zc09yaWdpbjogcmVzdFByb3BzLmNyb3NzT3JpZ2luIH1cbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgIG5vbmNlPXtub25jZX1cbiAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgIF9faHRtbDogYChzZWxmLl9fbmV4dF9zPXNlbGYuX19uZXh0X3N8fFtdKS5wdXNoKCR7SlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgIHNyYyxcbiAgICAgICAgICAgICAgICB7IC4uLnJlc3RQcm9wcywgaWQgfSxcbiAgICAgICAgICAgICAgXSl9KWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHN0cmF0ZWd5ID09PSAnYWZ0ZXJJbnRlcmFjdGl2ZScpIHtcbiAgICAgIGlmIChzcmMpIHtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBSZWFjdERPTS5wcmVsb2FkKFxuICAgICAgICAgIHNyYyxcbiAgICAgICAgICByZXN0UHJvcHMuaW50ZWdyaXR5XG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBhczogJ3NjcmlwdCcsXG4gICAgICAgICAgICAgICAgaW50ZWdyaXR5OiByZXN0UHJvcHMuaW50ZWdyaXR5LFxuICAgICAgICAgICAgICAgIG5vbmNlLFxuICAgICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiByZXN0UHJvcHMuY3Jvc3NPcmlnaW4sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogeyBhczogJ3NjcmlwdCcsIG5vbmNlLCBjcm9zc09yaWdpbjogcmVzdFByb3BzLmNyb3NzT3JpZ2luIH1cbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsXG59XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShTY3JpcHQsICdfX25leHRTY3JpcHQnLCB7IHZhbHVlOiB0cnVlIH0pXG5cbmV4cG9ydCBkZWZhdWx0IFNjcmlwdFxuIl0sIm5hbWVzIjpbImhhbmRsZUNsaWVudFNjcmlwdExvYWQiLCJpbml0U2NyaXB0TG9hZGVyIiwiU2NyaXB0Q2FjaGUiLCJNYXAiLCJMb2FkQ2FjaGUiLCJTZXQiLCJpbnNlcnRTdHlsZXNoZWV0cyIsInN0eWxlc2hlZXRzIiwiUmVhY3RET00iLCJwcmVpbml0IiwiZm9yRWFjaCIsInN0eWxlc2hlZXQiLCJhcyIsIndpbmRvdyIsImhlYWQiLCJkb2N1bWVudCIsImxpbmsiLCJjcmVhdGVFbGVtZW50IiwidHlwZSIsInJlbCIsImhyZWYiLCJhcHBlbmRDaGlsZCIsImxvYWRTY3JpcHQiLCJwcm9wcyIsInNyYyIsImlkIiwib25Mb2FkIiwib25SZWFkeSIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiY2hpbGRyZW4iLCJzdHJhdGVneSIsIm9uRXJyb3IiLCJjYWNoZUtleSIsImhhcyIsImFkZCIsImdldCIsInRoZW4iLCJhZnRlckxvYWQiLCJlbCIsImxvYWRQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJhZGRFdmVudExpc3RlbmVyIiwiZSIsImNhbGwiLCJjYXRjaCIsImlubmVySFRNTCIsIl9faHRtbCIsInRleHRDb250ZW50IiwiQXJyYXkiLCJpc0FycmF5Iiwiam9pbiIsInNldCIsInNldEF0dHJpYnV0ZXNGcm9tUHJvcHMiLCJzZXRBdHRyaWJ1dGUiLCJib2R5IiwicmVxdWVzdElkbGVDYWxsYmFjayIsImxvYWRMYXp5U2NyaXB0IiwicmVhZHlTdGF0ZSIsImFkZEJlZm9yZUludGVyYWN0aXZlVG9DYWNoZSIsInNjcmlwdHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwic2NyaXB0IiwiZ2V0QXR0cmlidXRlIiwic2NyaXB0TG9hZGVySXRlbXMiLCJTY3JpcHQiLCJyZXN0UHJvcHMiLCJ1cGRhdGVTY3JpcHRzIiwiZ2V0SXNTc3IiLCJhcHBEaXIiLCJub25jZSIsInVzZUNvbnRleHQiLCJIZWFkTWFuYWdlckNvbnRleHQiLCJoYXNPblJlYWR5RWZmZWN0Q2FsbGVkIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImhhc0xvYWRTY3JpcHRFZmZlY3RDYWxsZWQiLCJjb25jYXQiLCJzdHlsZVNyYyIsIkpTT04iLCJzdHJpbmdpZnkiLCJwcmVsb2FkIiwiaW50ZWdyaXR5IiwiY3Jvc3NPcmlnaW4iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/script.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/set-attributes-from-props.js": +/*!********************************************************************!*\ + !*** ./node_modules/next/dist/client/set-attributes-from-props.js ***! + \********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"setAttributesFromProps\", ({\n enumerable: true,\n get: function() {\n return setAttributesFromProps;\n }\n}));\nconst DOMAttributeNames = {\n acceptCharset: 'accept-charset',\n className: 'class',\n htmlFor: 'for',\n httpEquiv: 'http-equiv',\n noModule: 'noModule'\n};\nconst ignoreProps = [\n 'onLoad',\n 'onReady',\n 'dangerouslySetInnerHTML',\n 'children',\n 'onError',\n 'strategy',\n 'stylesheets'\n];\nfunction isBooleanScriptAttribute(attr) {\n return [\n 'async',\n 'defer',\n 'noModule'\n ].includes(attr);\n}\nfunction setAttributesFromProps(el, props) {\n for (const [p, value] of Object.entries(props)){\n if (!props.hasOwnProperty(p)) continue;\n if (ignoreProps.includes(p)) continue;\n // we don't render undefined props to the DOM\n if (value === undefined) {\n continue;\n }\n const attr = DOMAttributeNames[p] || p.toLowerCase();\n if (el.tagName === 'SCRIPT' && isBooleanScriptAttribute(attr)) {\n // Correctly assign boolean script attributes\n // https://github.com/vercel/next.js/pull/20748\n ;\n el[attr] = !!value;\n } else {\n el.setAttribute(attr, String(value));\n }\n // Remove falsy non-zero boolean attributes so they are correctly interpreted\n // (e.g. if we set them to false, this coerces to the string \"false\", which the browser interprets as true)\n if (value === false || el.tagName === 'SCRIPT' && isBooleanScriptAttribute(attr) && (!value || value === 'false')) {\n // Call setAttribute before, as we need to set and unset the attribute to override force async:\n // https://html.spec.whatwg.org/multipage/scripting.html#script-force-async\n el.setAttribute(attr, '');\n el.removeAttribute(attr);\n }\n }\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=set-attributes-from-props.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9zZXQtYXR0cmlidXRlcy1mcm9tLXByb3BzLmpzIiwibWFwcGluZ3MiOiI7Ozs7MERBd0JnQkE7OztlQUFBQTs7O0FBeEJoQixNQUFNQyxvQkFBNEM7SUFDaERDLGVBQWU7SUFDZkMsV0FBVztJQUNYQyxTQUFTO0lBQ1RDLFdBQVc7SUFDWEMsVUFBVTtBQUNaO0FBRUEsTUFBTUMsY0FBYztJQUNsQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRUQsU0FBU0MseUJBQ1BDLElBQVk7SUFFWixPQUFPO1FBQUM7UUFBUztRQUFTO0tBQVcsQ0FBQ0MsUUFBUSxDQUFDRDtBQUNqRDtBQUVPLFNBQVNULHVCQUF1QlcsRUFBZSxFQUFFQyxLQUFhO0lBQ25FLEtBQUssTUFBTSxDQUFDQyxHQUFHQyxNQUFNLElBQUlDLE9BQU9DLE9BQU8sQ0FBQ0osT0FBUTtRQUM5QyxJQUFJLENBQUNBLE1BQU1LLGNBQWMsQ0FBQ0osSUFBSTtRQUM5QixJQUFJTixZQUFZRyxRQUFRLENBQUNHLElBQUk7UUFFN0IsNkNBQTZDO1FBQzdDLElBQUlDLFVBQVVJLFdBQVc7WUFDdkI7UUFDRjtRQUVBLE1BQU1ULE9BQU9SLGlCQUFpQixDQUFDWSxFQUFFLElBQUlBLEVBQUVNLFdBQVc7UUFFbEQsSUFBSVIsR0FBR1MsT0FBTyxLQUFLLFlBQVlaLHlCQUF5QkMsT0FBTztZQUM3RCw2Q0FBNkM7WUFDN0MsK0NBQStDOztZQUM3Q0UsRUFBd0IsQ0FBQ0YsS0FBSyxHQUFHLENBQUMsQ0FBQ0s7UUFDdkMsT0FBTztZQUNMSCxHQUFHVSxZQUFZLENBQUNaLE1BQU1hLE9BQU9SO1FBQy9CO1FBRUEsNkVBQTZFO1FBQzdFLDJHQUEyRztRQUMzRyxJQUNFQSxVQUFVLFNBQ1RILEdBQUdTLE9BQU8sS0FBSyxZQUNkWix5QkFBeUJDLFNBQ3hCLEVBQUNLLFNBQVNBLFVBQVUsUUFBTSxFQUM3QjtZQUNBLCtGQUErRjtZQUMvRiwyRUFBMkU7WUFDM0VILEdBQUdVLFlBQVksQ0FBQ1osTUFBTTtZQUN0QkUsR0FBR1ksZUFBZSxDQUFDZDtRQUNyQjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9jbGllbnQvc2V0LWF0dHJpYnV0ZXMtZnJvbS1wcm9wcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBET01BdHRyaWJ1dGVOYW1lczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgYWNjZXB0Q2hhcnNldDogJ2FjY2VwdC1jaGFyc2V0JyxcbiAgY2xhc3NOYW1lOiAnY2xhc3MnLFxuICBodG1sRm9yOiAnZm9yJyxcbiAgaHR0cEVxdWl2OiAnaHR0cC1lcXVpdicsXG4gIG5vTW9kdWxlOiAnbm9Nb2R1bGUnLFxufVxuXG5jb25zdCBpZ25vcmVQcm9wcyA9IFtcbiAgJ29uTG9hZCcsXG4gICdvblJlYWR5JyxcbiAgJ2Rhbmdlcm91c2x5U2V0SW5uZXJIVE1MJyxcbiAgJ2NoaWxkcmVuJyxcbiAgJ29uRXJyb3InLFxuICAnc3RyYXRlZ3knLFxuICAnc3R5bGVzaGVldHMnLFxuXVxuXG5mdW5jdGlvbiBpc0Jvb2xlYW5TY3JpcHRBdHRyaWJ1dGUoXG4gIGF0dHI6IHN0cmluZ1xuKTogYXR0ciBpcyAnYXN5bmMnIHwgJ2RlZmVyJyB8ICdub01vZHVsZScge1xuICByZXR1cm4gWydhc3luYycsICdkZWZlcicsICdub01vZHVsZSddLmluY2x1ZGVzKGF0dHIpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRBdHRyaWJ1dGVzRnJvbVByb3BzKGVsOiBIVE1MRWxlbWVudCwgcHJvcHM6IG9iamVjdCkge1xuICBmb3IgKGNvbnN0IFtwLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocHJvcHMpKSB7XG4gICAgaWYgKCFwcm9wcy5oYXNPd25Qcm9wZXJ0eShwKSkgY29udGludWVcbiAgICBpZiAoaWdub3JlUHJvcHMuaW5jbHVkZXMocCkpIGNvbnRpbnVlXG5cbiAgICAvLyB3ZSBkb24ndCByZW5kZXIgdW5kZWZpbmVkIHByb3BzIHRvIHRoZSBET01cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29udGludWVcbiAgICB9XG5cbiAgICBjb25zdCBhdHRyID0gRE9NQXR0cmlidXRlTmFtZXNbcF0gfHwgcC50b0xvd2VyQ2FzZSgpXG5cbiAgICBpZiAoZWwudGFnTmFtZSA9PT0gJ1NDUklQVCcgJiYgaXNCb29sZWFuU2NyaXB0QXR0cmlidXRlKGF0dHIpKSB7XG4gICAgICAvLyBDb3JyZWN0bHkgYXNzaWduIGJvb2xlYW4gc2NyaXB0IGF0dHJpYnV0ZXNcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9wdWxsLzIwNzQ4XG4gICAgICA7KGVsIGFzIEhUTUxTY3JpcHRFbGVtZW50KVthdHRyXSA9ICEhdmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgZWwuc2V0QXR0cmlidXRlKGF0dHIsIFN0cmluZyh2YWx1ZSkpXG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIGZhbHN5IG5vbi16ZXJvIGJvb2xlYW4gYXR0cmlidXRlcyBzbyB0aGV5IGFyZSBjb3JyZWN0bHkgaW50ZXJwcmV0ZWRcbiAgICAvLyAoZS5nLiBpZiB3ZSBzZXQgdGhlbSB0byBmYWxzZSwgdGhpcyBjb2VyY2VzIHRvIHRoZSBzdHJpbmcgXCJmYWxzZVwiLCB3aGljaCB0aGUgYnJvd3NlciBpbnRlcnByZXRzIGFzIHRydWUpXG4gICAgaWYgKFxuICAgICAgdmFsdWUgPT09IGZhbHNlIHx8XG4gICAgICAoZWwudGFnTmFtZSA9PT0gJ1NDUklQVCcgJiZcbiAgICAgICAgaXNCb29sZWFuU2NyaXB0QXR0cmlidXRlKGF0dHIpICYmXG4gICAgICAgICghdmFsdWUgfHwgdmFsdWUgPT09ICdmYWxzZScpKVxuICAgICkge1xuICAgICAgLy8gQ2FsbCBzZXRBdHRyaWJ1dGUgYmVmb3JlLCBhcyB3ZSBuZWVkIHRvIHNldCBhbmQgdW5zZXQgdGhlIGF0dHJpYnV0ZSB0byBvdmVycmlkZSBmb3JjZSBhc3luYzpcbiAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NjcmlwdGluZy5odG1sI3NjcmlwdC1mb3JjZS1hc3luY1xuICAgICAgZWwuc2V0QXR0cmlidXRlKGF0dHIsICcnKVxuICAgICAgZWwucmVtb3ZlQXR0cmlidXRlKGF0dHIpXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsic2V0QXR0cmlidXRlc0Zyb21Qcm9wcyIsIkRPTUF0dHJpYnV0ZU5hbWVzIiwiYWNjZXB0Q2hhcnNldCIsImNsYXNzTmFtZSIsImh0bWxGb3IiLCJodHRwRXF1aXYiLCJub01vZHVsZSIsImlnbm9yZVByb3BzIiwiaXNCb29sZWFuU2NyaXB0QXR0cmlidXRlIiwiYXR0ciIsImluY2x1ZGVzIiwiZWwiLCJwcm9wcyIsInAiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJoYXNPd25Qcm9wZXJ0eSIsInVuZGVmaW5lZCIsInRvTG93ZXJDYXNlIiwidGFnTmFtZSIsInNldEF0dHJpYnV0ZSIsIlN0cmluZyIsInJlbW92ZUF0dHJpYnV0ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/set-attributes-from-props.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/tracing/report-to-socket.js": +/*!*******************************************************************!*\ + !*** ./node_modules/next/dist/client/tracing/report-to-socket.js ***! + \*******************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return reportToSocket;\n }\n}));\nconst _websocket = __webpack_require__(/*! ../components/react-dev-overlay/pages/websocket */ \"./node_modules/next/dist/client/components/react-dev-overlay/pages/websocket.js\");\nfunction reportToSocket(span) {\n if (span.state.state !== 'ended') {\n throw new Error('Expected span to be ended');\n }\n (0, _websocket.sendMessage)(JSON.stringify({\n event: 'span-end',\n startTime: span.startTime,\n endTime: span.state.endTime,\n spanName: span.name,\n attributes: span.attributes\n }));\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=report-to-socket.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC90cmFjaW5nL3JlcG9ydC10by1zb2NrZXQuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FHQTs7O2VBQXdCQTs7O3VDQUhJO0FBR2IsU0FBU0EsZUFBZUMsSUFBVTtJQUMvQyxJQUFJQSxLQUFLQyxLQUFLLENBQUNBLEtBQUssS0FBSyxTQUFTO1FBQ2hDLE1BQU0sSUFBSUMsTUFBTTtJQUNsQjtJQUVBQyxDQUFBQSxHQUFBQSxXQUFBQSxXQUFBQSxFQUNFQyxLQUFLQyxTQUFTLENBQUM7UUFDYkMsT0FBTztRQUNQQyxXQUFXUCxLQUFLTyxTQUFTO1FBQ3pCQyxTQUFTUixLQUFLQyxLQUFLLENBQUNPLE9BQU87UUFDM0JDLFVBQVVULEtBQUtVLElBQUk7UUFDbkJDLFlBQVlYLEtBQUtXLFVBQVU7SUFDN0I7QUFFSiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2NsaWVudC90cmFjaW5nL3JlcG9ydC10by1zb2NrZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2VuZE1lc3NhZ2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3JlYWN0LWRldi1vdmVybGF5L3BhZ2VzL3dlYnNvY2tldCdcbmltcG9ydCB0eXBlIHsgU3BhbiB9IGZyb20gJy4vdHJhY2VyJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZXBvcnRUb1NvY2tldChzcGFuOiBTcGFuKSB7XG4gIGlmIChzcGFuLnN0YXRlLnN0YXRlICE9PSAnZW5kZWQnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBzcGFuIHRvIGJlIGVuZGVkJylcbiAgfVxuXG4gIHNlbmRNZXNzYWdlKFxuICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGV2ZW50OiAnc3Bhbi1lbmQnLFxuICAgICAgc3RhcnRUaW1lOiBzcGFuLnN0YXJ0VGltZSxcbiAgICAgIGVuZFRpbWU6IHNwYW4uc3RhdGUuZW5kVGltZSxcbiAgICAgIHNwYW5OYW1lOiBzcGFuLm5hbWUsXG4gICAgICBhdHRyaWJ1dGVzOiBzcGFuLmF0dHJpYnV0ZXMsXG4gICAgfSlcbiAgKVxufVxuIl0sIm5hbWVzIjpbInJlcG9ydFRvU29ja2V0Iiwic3BhbiIsInN0YXRlIiwiRXJyb3IiLCJzZW5kTWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJldmVudCIsInN0YXJ0VGltZSIsImVuZFRpbWUiLCJzcGFuTmFtZSIsIm5hbWUiLCJhdHRyaWJ1dGVzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/tracing/report-to-socket.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/tracing/tracer.js": +/*!*********************************************************!*\ + !*** ./node_modules/next/dist/client/tracing/tracer.js ***! + \*********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _mitt = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../../shared/lib/mitt */ \"./node_modules/next/dist/shared/lib/mitt.js\"));\nclass Span {\n end(endTime) {\n if (this.state.state === 'ended') {\n throw new Error('Span has already ended');\n }\n this.state = {\n state: 'ended',\n endTime: endTime != null ? endTime : Date.now()\n };\n this.onSpanEnd(this);\n }\n constructor(name, options, onSpanEnd){\n this.name = name;\n var _options_attributes;\n this.attributes = (_options_attributes = options.attributes) != null ? _options_attributes : {};\n var _options_startTime;\n this.startTime = (_options_startTime = options.startTime) != null ? _options_startTime : Date.now();\n this.onSpanEnd = onSpanEnd;\n this.state = {\n state: 'inprogress'\n };\n }\n}\nclass Tracer {\n startSpan(name, options) {\n return new Span(name, options, this.handleSpanEnd);\n }\n onSpanEnd(cb) {\n this._emitter.on('spanend', cb);\n return ()=>{\n this._emitter.off('spanend', cb);\n };\n }\n constructor(){\n this._emitter = (0, _mitt.default)();\n this.handleSpanEnd = (span)=>{\n this._emitter.emit('spanend', span);\n };\n }\n}\nconst _default = new Tracer();\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=tracer.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC90cmFjaW5nL3RyYWNlci5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQThFQTs7O2VBQUE7Ozs7MkVBOUVpQjtBQXlCakIsTUFBTUE7SUFtQkpDLElBQUlDLE9BQWdCLEVBQUU7UUFDcEIsSUFBSSxJQUFJLENBQUNDLEtBQUssQ0FBQ0EsS0FBSyxLQUFLLFNBQVM7WUFDaEMsTUFBTSxJQUFJQyxNQUFNO1FBQ2xCO1FBRUEsSUFBSSxDQUFDRCxLQUFLLEdBQUc7WUFDWEEsT0FBTztZQUNQRCxTQUFTQSxXQUFBQSxPQUFBQSxVQUFXRyxLQUFLQyxHQUFHO1FBQzlCO1FBRUEsSUFBSSxDQUFDQyxTQUFTLENBQUMsSUFBSTtJQUNyQjtJQXZCQUMsWUFDRUMsSUFBWSxFQUNaQyxPQUFvQixFQUNwQkgsU0FBK0IsQ0FDL0I7UUFDQSxJQUFJLENBQUNFLElBQUksR0FBR0E7WUFDTUM7UUFBbEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdELHVCQUFBQSxRQUFRQyxVQUFBQSxLQUFVLE9BQWxCRCxzQkFBc0IsQ0FBQztZQUN4QkE7UUFBakIsSUFBSSxDQUFDRSxTQUFTLEdBQUdGLENBQUFBLHFCQUFBQSxRQUFRRSxTQUFBQSxLQUFTLE9BQWpCRixxQkFBcUJMLEtBQUtDLEdBQUc7UUFDOUMsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0osS0FBSyxHQUFHO1lBQUVBLE9BQU87UUFBYTtJQUNyQztBQWNGO0FBRUEsTUFBTVU7SUFPSkMsVUFBVUwsSUFBWSxFQUFFQyxPQUFvQixFQUFFO1FBQzVDLE9BQU8sSUFBSVYsS0FBS1MsTUFBTUMsU0FBUyxJQUFJLENBQUNLLGFBQWE7SUFDbkQ7SUFFQVIsVUFBVVMsRUFBeUIsRUFBYztRQUMvQyxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsRUFBRSxDQUFDLFdBQVdGO1FBQzVCLE9BQU87WUFDTCxJQUFJLENBQUNDLFFBQVEsQ0FBQ0UsR0FBRyxDQUFDLFdBQVdIO1FBQy9CO0lBQ0Y7O2FBZkFDLFFBQUFBLEdBQWdDRyxDQUFBQSxHQUFBQSxNQUFBQSxPQUFBQTthQUV4QkwsYUFBQUEsR0FBZ0IsQ0FBQ007WUFDdkIsSUFBSSxDQUFDSixRQUFRLENBQUNLLElBQUksQ0FBQyxXQUFXRDtRQUNoQzs7QUFZRjtNQUdBLFdBQWUsSUFBSVIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9jbGllbnQvdHJhY2luZy90cmFjZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1pdHQgZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9taXR0J1xuaW1wb3J0IHR5cGUgeyBNaXR0RW1pdHRlciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvbWl0dCdcblxuZXhwb3J0IHR5cGUgU3Bhbk9wdGlvbnMgPSB7XG4gIHN0YXJ0VGltZT86IG51bWJlclxuICBhdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuZXhwb3J0IHR5cGUgU3BhblN0YXRlID1cbiAgfCB7XG4gICAgICBzdGF0ZTogJ2lucHJvZ3Jlc3MnXG4gICAgfVxuICB8IHtcbiAgICAgIHN0YXRlOiAnZW5kZWQnXG4gICAgICBlbmRUaW1lOiBudW1iZXJcbiAgICB9XG5cbmludGVyZmFjZSBJU3BhbiB7XG4gIG5hbWU6IHN0cmluZ1xuICBzdGFydFRpbWU6IG51bWJlclxuICBhdHRyaWJ1dGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBzdGF0ZTogU3BhblN0YXRlXG4gIGVuZChlbmRUaW1lPzogbnVtYmVyKTogdm9pZFxufVxuXG5jbGFzcyBTcGFuIGltcGxlbWVudHMgSVNwYW4ge1xuICBuYW1lOiBzdHJpbmdcbiAgc3RhcnRUaW1lOiBudW1iZXJcbiAgb25TcGFuRW5kOiAoc3BhbjogU3BhbikgPT4gdm9pZFxuICBzdGF0ZTogU3BhblN0YXRlXG4gIGF0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cbiAgY29uc3RydWN0b3IoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IFNwYW5PcHRpb25zLFxuICAgIG9uU3BhbkVuZDogKHNwYW46IFNwYW4pID0+IHZvaWRcbiAgKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZVxuICAgIHRoaXMuYXR0cmlidXRlcyA9IG9wdGlvbnMuYXR0cmlidXRlcyA/PyB7fVxuICAgIHRoaXMuc3RhcnRUaW1lID0gb3B0aW9ucy5zdGFydFRpbWUgPz8gRGF0ZS5ub3coKVxuICAgIHRoaXMub25TcGFuRW5kID0gb25TcGFuRW5kXG4gICAgdGhpcy5zdGF0ZSA9IHsgc3RhdGU6ICdpbnByb2dyZXNzJyB9XG4gIH1cblxuICBlbmQoZW5kVGltZT86IG51bWJlcikge1xuICAgIGlmICh0aGlzLnN0YXRlLnN0YXRlID09PSAnZW5kZWQnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NwYW4gaGFzIGFscmVhZHkgZW5kZWQnKVxuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBzdGF0ZTogJ2VuZGVkJyxcbiAgICAgIGVuZFRpbWU6IGVuZFRpbWUgPz8gRGF0ZS5ub3coKSxcbiAgICB9XG5cbiAgICB0aGlzLm9uU3BhbkVuZCh0aGlzKVxuICB9XG59XG5cbmNsYXNzIFRyYWNlciB7XG4gIF9lbWl0dGVyOiBNaXR0RW1pdHRlcjxzdHJpbmc+ID0gbWl0dCgpXG5cbiAgcHJpdmF0ZSBoYW5kbGVTcGFuRW5kID0gKHNwYW46IFNwYW4pID0+IHtcbiAgICB0aGlzLl9lbWl0dGVyLmVtaXQoJ3NwYW5lbmQnLCBzcGFuKVxuICB9XG5cbiAgc3RhcnRTcGFuKG5hbWU6IHN0cmluZywgb3B0aW9uczogU3Bhbk9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IFNwYW4obmFtZSwgb3B0aW9ucywgdGhpcy5oYW5kbGVTcGFuRW5kKVxuICB9XG5cbiAgb25TcGFuRW5kKGNiOiAoc3BhbjogSVNwYW4pID0+IHZvaWQpOiAoKSA9PiB2b2lkIHtcbiAgICB0aGlzLl9lbWl0dGVyLm9uKCdzcGFuZW5kJywgY2IpXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHRoaXMuX2VtaXR0ZXIub2ZmKCdzcGFuZW5kJywgY2IpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB0eXBlIHsgSVNwYW4gYXMgU3BhbiB9XG5leHBvcnQgZGVmYXVsdCBuZXcgVHJhY2VyKClcbiJdLCJuYW1lcyI6WyJTcGFuIiwiZW5kIiwiZW5kVGltZSIsInN0YXRlIiwiRXJyb3IiLCJEYXRlIiwibm93Iiwib25TcGFuRW5kIiwiY29uc3RydWN0b3IiLCJuYW1lIiwib3B0aW9ucyIsImF0dHJpYnV0ZXMiLCJzdGFydFRpbWUiLCJUcmFjZXIiLCJzdGFydFNwYW4iLCJoYW5kbGVTcGFuRW5kIiwiY2IiLCJfZW1pdHRlciIsIm9uIiwib2ZmIiwibWl0dCIsInNwYW4iLCJlbWl0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/tracing/tracer.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/trusted-types.js": +/*!********************************************************!*\ + !*** ./node_modules/next/dist/client/trusted-types.js ***! + \********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * Stores the Trusted Types Policy. Starts as undefined and can be set to null\n * if Trusted Types is not supported in the browser.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"__unsafeCreateTrustedScriptURL\", ({\n enumerable: true,\n get: function() {\n return __unsafeCreateTrustedScriptURL;\n }\n}));\nlet policy;\n/**\n * Getter for the Trusted Types Policy. If it is undefined, it is instantiated\n * here or set to null if Trusted Types is not supported in the browser.\n */ function getPolicy() {\n if (typeof policy === 'undefined' && \"object\" !== 'undefined') {\n var _window_trustedTypes;\n policy = ((_window_trustedTypes = window.trustedTypes) == null ? void 0 : _window_trustedTypes.createPolicy('nextjs', {\n createHTML: (input)=>input,\n createScript: (input)=>input,\n createScriptURL: (input)=>input\n })) || null;\n }\n return policy;\n}\nfunction __unsafeCreateTrustedScriptURL(url) {\n var _getPolicy;\n return ((_getPolicy = getPolicy()) == null ? void 0 : _getPolicy.createScriptURL(url)) || url;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=trusted-types.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC90cnVzdGVkLXR5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztrRUE2QmVBOzs7ZUFBQUE7OztBQTVCaEIsSUFBSUM7QUFFSjs7O0NBR0MsR0FDRCxTQUFTQztJQUNQLElBQUksT0FBT0QsV0FBVyxlQUFlLE9BQU9FLE1BQVcsYUFBYTtZQUVoRUE7UUFERkYsU0FDRUUsQ0FBQUEsQ0FBQUEsdUJBQUFBLE9BQU9DLFlBQUFBLEtBQVksZ0JBQW5CRCxxQkFBcUJFLFlBQVksQ0FBQyxVQUFVO1lBQzFDQyxZQUFZLENBQUNDLFFBQVVBO1lBQ3ZCQyxjQUFjLENBQUNELFFBQVVBO1lBQ3pCRSxpQkFBaUIsQ0FBQ0YsUUFBVUE7UUFDOUIsT0FBTTtJQUNWO0lBRUEsT0FBT047QUFDVDtBQVdPLFNBQVNELCtCQUNkVSxHQUFXO1FBRUpSO0lBQVAsT0FBT0EsQ0FBQUEsQ0FBQUEsYUFBQUEsV0FBQUEsS0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsV0FBYU8sZUFBZSxDQUFDQyxJQUFBQSxLQUFRQTtBQUM5QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvc3JjL2NsaWVudC90cnVzdGVkLXR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RvcmVzIHRoZSBUcnVzdGVkIFR5cGVzIFBvbGljeS4gU3RhcnRzIGFzIHVuZGVmaW5lZCBhbmQgY2FuIGJlIHNldCB0byBudWxsXG4gKiBpZiBUcnVzdGVkIFR5cGVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIuXG4gKi9cbmxldCBwb2xpY3k6IFRydXN0ZWRUeXBlUG9saWN5IHwgbnVsbCB8IHVuZGVmaW5lZFxuXG4vKipcbiAqIEdldHRlciBmb3IgdGhlIFRydXN0ZWQgVHlwZXMgUG9saWN5LiBJZiBpdCBpcyB1bmRlZmluZWQsIGl0IGlzIGluc3RhbnRpYXRlZFxuICogaGVyZSBvciBzZXQgdG8gbnVsbCBpZiBUcnVzdGVkIFR5cGVzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIuXG4gKi9cbmZ1bmN0aW9uIGdldFBvbGljeSgpIHtcbiAgaWYgKHR5cGVvZiBwb2xpY3kgPT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgcG9saWN5ID1cbiAgICAgIHdpbmRvdy50cnVzdGVkVHlwZXM/LmNyZWF0ZVBvbGljeSgnbmV4dGpzJywge1xuICAgICAgICBjcmVhdGVIVE1MOiAoaW5wdXQpID0+IGlucHV0LFxuICAgICAgICBjcmVhdGVTY3JpcHQ6IChpbnB1dCkgPT4gaW5wdXQsXG4gICAgICAgIGNyZWF0ZVNjcmlwdFVSTDogKGlucHV0KSA9PiBpbnB1dCxcbiAgICAgIH0pIHx8IG51bGxcbiAgfVxuXG4gIHJldHVybiBwb2xpY3lcbn1cblxuLyoqXG4gKiBVbnNhZmVseSBwcm9tb3RlIGEgc3RyaW5nIHRvIGEgVHJ1c3RlZFNjcmlwdFVSTCwgZmFsbGluZyBiYWNrIHRvIHN0cmluZ3NcbiAqIHdoZW4gVHJ1c3RlZCBUeXBlcyBhcmUgbm90IGF2YWlsYWJsZS5cbiAqIFRoaXMgaXMgYSBzZWN1cml0eS1zZW5zaXRpdmUgZnVuY3Rpb247IGFueSB1c2Ugb2YgdGhpcyBmdW5jdGlvblxuICogbXVzdCBnbyB0aHJvdWdoIHNlY3VyaXR5IHJldmlldy4gSW4gcGFydGljdWxhciwgaXQgbXVzdCBiZSBhc3N1cmVkIHRoYXQgdGhlXG4gKiBwcm92aWRlZCBzdHJpbmcgd2lsbCBuZXZlciBjYXVzZSBhbiBYU1MgdnVsbmVyYWJpbGl0eSBpZiB1c2VkIGluIGEgY29udGV4dFxuICogdGhhdCB3aWxsIGNhdXNlIGEgYnJvd3NlciB0byBsb2FkIGFuZCBleGVjdXRlIGEgcmVzb3VyY2UsIGUuZy4gd2hlblxuICogYXNzaWduaW5nIHRvIHNjcmlwdC5zcmMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBfX3Vuc2FmZUNyZWF0ZVRydXN0ZWRTY3JpcHRVUkwoXG4gIHVybDogc3RyaW5nXG4pOiBUcnVzdGVkU2NyaXB0VVJMIHwgc3RyaW5nIHtcbiAgcmV0dXJuIGdldFBvbGljeSgpPy5jcmVhdGVTY3JpcHRVUkwodXJsKSB8fCB1cmxcbn1cbiJdLCJuYW1lcyI6WyJfX3Vuc2FmZUNyZWF0ZVRydXN0ZWRTY3JpcHRVUkwiLCJwb2xpY3kiLCJnZXRQb2xpY3kiLCJ3aW5kb3ciLCJ0cnVzdGVkVHlwZXMiLCJjcmVhdGVQb2xpY3kiLCJjcmVhdGVIVE1MIiwiaW5wdXQiLCJjcmVhdGVTY3JpcHQiLCJjcmVhdGVTY3JpcHRVUkwiLCJ1cmwiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/trusted-types.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/webpack.js": +/*!**************************************************!*\ + !*** ./node_modules/next/dist/client/webpack.js ***! + \**************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nconst _deploymentid = __webpack_require__(/*! ../build/deployment-id */ \"./node_modules/next/dist/build/deployment-id.js\");\n// If we have a deployment ID, we need to append it to the webpack chunk names\n// I am keeping the process check explicit so this can be statically optimized\nif (false) {}\nself.__next_set_public_path__ = (path)=>{\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n __webpack_require__.p = path;\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=webpack.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93ZWJwYWNrLmpzIiwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDs7Ozs7MENBS1g7QUFFbEQsOEVBQThFO0FBQzlFLDhFQUE4RTtBQUM5RSxJQUFJQSxLQUE4QixFQUFFLEVBcUJuQztBQUdDYSxLQUFhQyx3QkFBd0IsR0FBRyxDQUFDQztJQUN6Qyw2REFBNkQ7SUFDN0RDLHFCQUF1QkEsR0FBR0Q7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9jbGllbnQvd2VicGFjay50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5kZWNsYXJlIGNvbnN0IF9fd2VicGFja19yZXF1aXJlX186IGFueVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuZGVjbGFyZSBsZXQgX193ZWJwYWNrX3B1YmxpY19wYXRoX186IHN0cmluZ1xuXG5pbXBvcnQgeyBnZXREZXBsb3ltZW50SWRRdWVyeU9yRW1wdHlTdHJpbmcgfSBmcm9tICcuLi9idWlsZC9kZXBsb3ltZW50LWlkJ1xuXG4vLyBJZiB3ZSBoYXZlIGEgZGVwbG95bWVudCBJRCwgd2UgbmVlZCB0byBhcHBlbmQgaXQgdG8gdGhlIHdlYnBhY2sgY2h1bmsgbmFtZXNcbi8vIEkgYW0ga2VlcGluZyB0aGUgcHJvY2VzcyBjaGVjayBleHBsaWNpdCBzbyB0aGlzIGNhbiBiZSBzdGF0aWNhbGx5IG9wdGltaXplZFxuaWYgKHByb2Nlc3MuZW52Lk5FWFRfREVQTE9ZTUVOVF9JRCkge1xuICBjb25zdCBzdWZmaXggPSBnZXREZXBsb3ltZW50SWRRdWVyeU9yRW1wdHlTdHJpbmcoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgY29uc3QgZ2V0Q2h1bmtTY3JpcHRGaWxlbmFtZSA9IF9fd2VicGFja19yZXF1aXJlX18udVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5kZWZcbiAgX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKC4uLmFyZ3M6IGFueVtdKSA9PlxuICAgIC8vIFdlIGVub2RlIHRoZSBjaHVuayBmaWxlbmFtZSBiZWNhdXNlIG91ciBzdGF0aWMgc2VydmVyIG1hdGNoZXMgYWdhaW5zdCBhbmQgZW5jb2RlZFxuICAgIC8vIGZpbGVuYW1lIHBhdGguXG4gICAgZ2V0Q2h1bmtTY3JpcHRGaWxlbmFtZSguLi5hcmdzKSArIHN1ZmZpeFxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICBjb25zdCBnZXRDaHVua0Nzc0ZpbGVuYW1lID0gX193ZWJwYWNrX3JlcXVpcmVfXy5rXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICBfX3dlYnBhY2tfcmVxdWlyZV9fLmsgPSAoLi4uYXJnczogYW55W10pID0+XG4gICAgZ2V0Q2h1bmtDc3NGaWxlbmFtZSguLi5hcmdzKSArIHN1ZmZpeFxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICBjb25zdCBnZXRNaW5pQ3NzRmlsZW5hbWUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm1pbmlDc3NGXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICBfX3dlYnBhY2tfcmVxdWlyZV9fLm1pbmlDc3NGID0gKC4uLmFyZ3M6IGFueVtdKSA9PlxuICAgIGdldE1pbmlDc3NGaWxlbmFtZSguLi5hcmdzKSArIHN1ZmZpeFxufVxuXG4vLyBJZ25vcmUgdGhlIG1vZHVsZSBJRCB0cmFuc2Zvcm0gaW4gY2xpZW50LlxuOyhzZWxmIGFzIGFueSkuX19uZXh0X3NldF9wdWJsaWNfcGF0aF9fID0gKHBhdGg6IHN0cmluZykgPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gIF9fd2VicGFja19wdWJsaWNfcGF0aF9fID0gcGF0aFxufVxuXG5leHBvcnQge31cbiJdLCJuYW1lcyI6WyJwcm9jZXNzIiwiZW52IiwiTkVYVF9ERVBMT1lNRU5UX0lEIiwic3VmZml4IiwiZ2V0RGVwbG95bWVudElkUXVlcnlPckVtcHR5U3RyaW5nIiwiZ2V0Q2h1bmtTY3JpcHRGaWxlbmFtZSIsIl9fd2VicGFja19yZXF1aXJlX18iLCJ1IiwiYXJncyIsImdldENodW5rQ3NzRmlsZW5hbWUiLCJrIiwiZ2V0TWluaUNzc0ZpbGVuYW1lIiwibWluaUNzc0YiLCJzZWxmIiwiX19uZXh0X3NldF9wdWJsaWNfcGF0aF9fIiwicGF0aCIsIl9fd2VicGFja19wdWJsaWNfcGF0aF9fIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/webpack.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/client/with-router.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/client/with-router.js ***! + \******************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return withRouter;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _router = __webpack_require__(/*! ./router */ \"./node_modules/next/dist/client/router.js\");\nfunction withRouter(ComposedComponent) {\n function WithRouterWrapper(props) {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(ComposedComponent, {\n router: (0, _router.useRouter)(),\n ...props\n });\n }\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps;\n WithRouterWrapper.origGetInitialProps = ComposedComponent.origGetInitialProps;\n if (true) {\n const name = ComposedComponent.displayName || ComposedComponent.name || 'Unknown';\n WithRouterWrapper.displayName = \"withRouter(\" + name + \")\";\n }\n return WithRouterWrapper;\n}\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=with-router.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC93aXRoLXJvdXRlci5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQWtCQTs7O2VBQXdCQTs7Ozs7NEVBbEJRO29DQU9OO0FBV1gsU0FBU0EsV0FJdEJDLGlCQUErQztJQUUvQyxTQUFTQyxrQkFBa0JDLEtBQVU7UUFDbkMscUJBQU8scUJBQUNGLG1CQUFBQTtZQUFrQkcsUUFBUUMsQ0FBQUEsR0FBQUEsUUFBQUEsU0FBQUE7WUFBYyxHQUFHRixLQUFLOztJQUMxRDtJQUVBRCxrQkFBa0JJLGVBQWUsR0FBR0wsa0JBQWtCSyxlQUFlO0lBRW5FSixrQkFBMEJLLG1CQUFtQixHQUM3Q04sa0JBQ0FNLG1CQUFtQjtJQUNyQixJQUFJQyxJQUFvQixFQUFtQjtRQUN6QyxNQUFNRyxPQUNKVixrQkFBa0JXLFdBQVcsSUFBSVgsa0JBQWtCVSxJQUFJLElBQUk7UUFDN0RULGtCQUFrQlUsV0FBVyxHQUFJLGdCQUFhRCxPQUFLO0lBQ3JEO0lBRUEsT0FBT1Q7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvc3JjL2NsaWVudC93aXRoLXJvdXRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7XG4gIEJhc2VDb250ZXh0LFxuICBOZXh0Q29tcG9uZW50VHlwZSxcbiAgTmV4dFBhZ2VDb250ZXh0LFxufSBmcm9tICcuLi9zaGFyZWQvbGliL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBOZXh0Um91dGVyIH0gZnJvbSAnLi9yb3V0ZXInXG5pbXBvcnQgeyB1c2VSb3V0ZXIgfSBmcm9tICcuL3JvdXRlcidcblxuZXhwb3J0IHR5cGUgV2l0aFJvdXRlclByb3BzID0ge1xuICByb3V0ZXI6IE5leHRSb3V0ZXJcbn1cblxuZXhwb3J0IHR5cGUgRXhjbHVkZVJvdXRlclByb3BzPFA+ID0gUGljazxcbiAgUCxcbiAgRXhjbHVkZTxrZXlvZiBQLCBrZXlvZiBXaXRoUm91dGVyUHJvcHM+XG4+XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHdpdGhSb3V0ZXI8XG4gIFAgZXh0ZW5kcyBXaXRoUm91dGVyUHJvcHMsXG4gIEMgZXh0ZW5kcyBCYXNlQ29udGV4dCA9IE5leHRQYWdlQ29udGV4dCxcbj4oXG4gIENvbXBvc2VkQ29tcG9uZW50OiBOZXh0Q29tcG9uZW50VHlwZTxDLCBhbnksIFA+XG4pOiBSZWFjdC5Db21wb25lbnRUeXBlPEV4Y2x1ZGVSb3V0ZXJQcm9wczxQPj4ge1xuICBmdW5jdGlvbiBXaXRoUm91dGVyV3JhcHBlcihwcm9wczogYW55KTogSlNYLkVsZW1lbnQge1xuICAgIHJldHVybiA8Q29tcG9zZWRDb21wb25lbnQgcm91dGVyPXt1c2VSb3V0ZXIoKX0gey4uLnByb3BzfSAvPlxuICB9XG5cbiAgV2l0aFJvdXRlcldyYXBwZXIuZ2V0SW5pdGlhbFByb3BzID0gQ29tcG9zZWRDb21wb25lbnQuZ2V0SW5pdGlhbFByb3BzXG4gIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGFsbG93IGNoZWNraW5nIGZvciBjdXN0b20gZ2V0SW5pdGlhbFByb3BzIGluIF9hcHBcbiAgOyhXaXRoUm91dGVyV3JhcHBlciBhcyBhbnkpLm9yaWdHZXRJbml0aWFsUHJvcHMgPSAoXG4gICAgQ29tcG9zZWRDb21wb25lbnQgYXMgYW55XG4gICkub3JpZ0dldEluaXRpYWxQcm9wc1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNvbnN0IG5hbWUgPVxuICAgICAgQ29tcG9zZWRDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9zZWRDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbiAgICBXaXRoUm91dGVyV3JhcHBlci5kaXNwbGF5TmFtZSA9IGB3aXRoUm91dGVyKCR7bmFtZX0pYFxuICB9XG5cbiAgcmV0dXJuIFdpdGhSb3V0ZXJXcmFwcGVyXG59XG4iXSwibmFtZXMiOlsid2l0aFJvdXRlciIsIkNvbXBvc2VkQ29tcG9uZW50IiwiV2l0aFJvdXRlcldyYXBwZXIiLCJwcm9wcyIsInJvdXRlciIsInVzZVJvdXRlciIsImdldEluaXRpYWxQcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJuYW1lIiwiZGlzcGxheU5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/client/with-router.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/strip-ansi/index.js": +/*!*************************************************************!*\ + !*** ./node_modules/next/dist/compiled/strip-ansi/index.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("var __dirname = \"/\";\n\n(()=>{\n \"use strict\";\n var e = {\n 511: (e)=>{\n e.exports = function() {\n let { onlyFirst: e = false } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};\n const r = [\n \"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\n \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))\"\n ].join(\"|\");\n return new RegExp(r, e ? undefined : \"g\");\n };\n },\n 532: (e, r, _)=>{\n const t = _(511);\n e.exports = (e)=>typeof e === \"string\" ? e.replace(t(), \"\") : e;\n }\n };\n var r = {};\n function __nccwpck_require__(_) {\n var t = r[_];\n if (t !== undefined) {\n return t.exports;\n }\n var a = r[_] = {\n exports: {}\n };\n var n = true;\n try {\n e[_](a, a.exports, __nccwpck_require__);\n n = false;\n } finally{\n if (n) delete r[_];\n }\n return a.exports;\n }\n if (typeof __nccwpck_require__ !== \"undefined\") __nccwpck_require__.ab = __dirname + \"/\";\n var _ = __nccwpck_require__(532);\n module.exports = _;\n})();\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0cmlwLWFuc2kvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7QUFBQztJQUFLO0lBQWEsSUFBSUEsSUFBRTtRQUFDLEtBQUlBLENBQUFBO1lBQUlBLEVBQUVDLE9BQU8sR0FBQztvQkFBQyxFQUFDQyxXQUFVRixJQUFFLEtBQUssRUFBQyxvRUFBQyxDQUFDO2dCQUFLLE1BQU1HLElBQUU7b0JBQUM7b0JBQStIO2lCQUEyRCxDQUFDQyxJQUFJLENBQUM7Z0JBQUssT0FBTyxJQUFJQyxPQUFPRixHQUFFSCxJQUFFTSxZQUFVO1lBQUk7UUFBQztRQUFFLEtBQUksQ0FBQ04sR0FBRUcsR0FBRUk7WUFBSyxNQUFNQyxJQUFFRCxFQUFFO1lBQUtQLEVBQUVDLE9BQU8sR0FBQ0QsQ0FBQUEsSUFBRyxPQUFPQSxNQUFJLFdBQVNBLEVBQUVTLE9BQU8sQ0FBQ0QsS0FBSSxNQUFJUjtRQUFDO0lBQUM7SUFBRSxJQUFJRyxJQUFFLENBQUM7SUFBRSxTQUFTTyxvQkFBb0JILENBQUM7UUFBRSxJQUFJQyxJQUFFTCxDQUFDLENBQUNJLEVBQUU7UUFBQyxJQUFHQyxNQUFJRixXQUFVO1lBQUMsT0FBT0UsRUFBRVAsT0FBTztRQUFBO1FBQUMsSUFBSVUsSUFBRVIsQ0FBQyxDQUFDSSxFQUFFLEdBQUM7WUFBQ04sU0FBUSxDQUFDO1FBQUM7UUFBRSxJQUFJVyxJQUFFO1FBQUssSUFBRztZQUFDWixDQUFDLENBQUNPLEVBQUUsQ0FBQ0ksR0FBRUEsRUFBRVYsT0FBTyxFQUFDUztZQUFxQkUsSUFBRTtRQUFLLFNBQVE7WUFBQyxJQUFHQSxHQUFFLE9BQU9ULENBQUMsQ0FBQ0ksRUFBRTtRQUFBO1FBQUMsT0FBT0ksRUFBRVYsT0FBTztJQUFBO0lBQUMsSUFBRyxPQUFPUyx3QkFBc0IsYUFBWUEsb0JBQW9CRyxFQUFFLEdBQUNDLFNBQVNBLEdBQUM7SUFBSSxJQUFJUCxJQUFFRyxvQkFBb0I7SUFBS0ssT0FBT2QsT0FBTyxHQUFDTTtBQUFDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdHJpcC1hbnNpL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO3ZhciBlPXs1MTE6ZT0+e2UuZXhwb3J0cz0oe29ubHlGaXJzdDplPWZhbHNlfT17fSk9Pntjb25zdCByPVtcIltcXFxcdTAwMUJcXFxcdTAwOUJdW1tcXFxcXSgpIzs/XSooPzooPzooPzooPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10rKSp8W2EtekEtWlxcXFxkXSsoPzo7Wy1hLXpBLVpcXFxcZFxcXFwvIyYuOj0/JUB+X10qKSopP1xcXFx1MDAwNylcIixcIig/Oig/OlxcXFxkezEsNH0oPzo7XFxcXGR7MCw0fSkqKT9bXFxcXGRBLVBSLVRaY2YtbnRxcnk9Pjx+XSkpXCJdLmpvaW4oXCJ8XCIpO3JldHVybiBuZXcgUmVnRXhwKHIsZT91bmRlZmluZWQ6XCJnXCIpfX0sNTMyOihlLHIsXyk9Pntjb25zdCB0PV8oNTExKTtlLmV4cG9ydHM9ZT0+dHlwZW9mIGU9PT1cInN0cmluZ1wiP2UucmVwbGFjZSh0KCksXCJcIik6ZX19O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18oXyl7dmFyIHQ9cltfXTtpZih0IT09dW5kZWZpbmVkKXtyZXR1cm4gdC5leHBvcnRzfXZhciBhPXJbX109e2V4cG9ydHM6e319O3ZhciBuPXRydWU7dHJ5e2VbX10oYSxhLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7bj1mYWxzZX1maW5hbGx5e2lmKG4pZGVsZXRlIHJbX119cmV0dXJuIGEuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIF89X19uY2N3cGNrX3JlcXVpcmVfXyg1MzIpO21vZHVsZS5leHBvcnRzPV99KSgpOyJdLCJuYW1lcyI6WyJlIiwiZXhwb3J0cyIsIm9ubHlGaXJzdCIsInIiLCJqb2luIiwiUmVnRXhwIiwidW5kZWZpbmVkIiwiXyIsInQiLCJyZXBsYWNlIiwiX19uY2N3cGNrX3JlcXVpcmVfXyIsImEiLCJuIiwiYWIiLCJfX2Rpcm5hbWUiLCJtb2R1bGUiXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/strip-ansi/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/pages/_app.js": +/*!**********************************************!*\ + !*** ./node_modules/next/dist/pages/_app.js ***! + \**********************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return App;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\n/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */ async function appGetInitialProps(param) {\n let { Component, ctx } = param;\n const pageProps = await (0, _utils.loadGetInitialProps)(Component, ctx);\n return {\n pageProps\n };\n}\nclass App extends _react.default.Component {\n render() {\n const { Component, pageProps } = this.props;\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n ...pageProps\n });\n }\n}\nApp.origGetInitialProps = appGetInitialProps;\nApp.getInitialProps = appGetInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_app.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19hcHAuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztlQWlDcUJBOzs7Ozs0RUFqQ0g7bUNBV2tCO0FBVXBDOzs7Q0FHQyxHQUNELGVBQWVDLG1CQUFtQixLQUdyQjtJQUhxQixNQUNoQ0MsU0FBUyxFQUNUQyxHQUFHLEVBQ1EsR0FIcUI7SUFJaEMsTUFBTUMsWUFBWSxNQUFNQyxDQUFBQSxHQUFBQSxPQUFBQSxtQkFBQUEsRUFBb0JILFdBQVdDO0lBQ3ZELE9BQU87UUFBRUM7SUFBVTtBQUNyQjtBQUVlLE1BQU1KLFlBQXNDTSxPQUFBQSxPQUFLLENBQUNKLFNBQVM7SUFPeEVLLFNBQVM7UUFDUCxNQUFNLEVBQUVMLFNBQVMsRUFBRUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDSSxLQUFLO1FBRTNDLE9BQU8sV0FBUCxHQUFPLHFCQUFDTixXQUFBQTtZQUFXLEdBQUdFLFNBQVM7O0lBQ2pDO0FBQ0Y7QUFacUJKLElBSVpTLG1CQUFBQSxHQUFzQlI7QUFKVkQsSUFLWlUsZUFBQUEsR0FBa0JUIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9zcmMvcGFnZXMvX2FwcC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFwcENvbnRleHRUeXBlLFxuICBBcHBJbml0aWFsUHJvcHMsXG4gIEFwcFByb3BzVHlwZSxcbiAgTmV4dFdlYlZpdGFsc01ldHJpYyxcbiAgQXBwVHlwZSxcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi91dGlscydcbmltcG9ydCB0eXBlIHsgUm91dGVyIH0gZnJvbSAnLi4vY2xpZW50L3JvdXRlcidcblxuaW1wb3J0IHsgbG9hZEdldEluaXRpYWxQcm9wcyB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMnXG5cbmV4cG9ydCB0eXBlIHsgQXBwSW5pdGlhbFByb3BzLCBBcHBUeXBlIH1cblxuZXhwb3J0IHR5cGUgeyBOZXh0V2ViVml0YWxzTWV0cmljIH1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dCA9IEFwcENvbnRleHRUeXBlPFJvdXRlcj5cblxuZXhwb3J0IHR5cGUgQXBwUHJvcHM8UCA9IGFueT4gPSBBcHBQcm9wc1R5cGU8Um91dGVyLCBQPlxuXG4vKipcbiAqIGBBcHBgIGNvbXBvbmVudCBpcyB1c2VkIGZvciBpbml0aWFsaXplIG9mIHBhZ2VzLiBJdCBhbGxvd3MgZm9yIG92ZXJ3cml0aW5nIGFuZCBmdWxsIGNvbnRyb2wgb2YgdGhlIGBwYWdlYCBpbml0aWFsaXphdGlvbi5cbiAqIFRoaXMgYWxsb3dzIGZvciBrZWVwaW5nIHN0YXRlIGJldHdlZW4gbmF2aWdhdGlvbiwgY3VzdG9tIGVycm9yIGhhbmRsaW5nLCBpbmplY3RpbmcgYWRkaXRpb25hbCBkYXRhLlxuICovXG5hc3luYyBmdW5jdGlvbiBhcHBHZXRJbml0aWFsUHJvcHMoe1xuICBDb21wb25lbnQsXG4gIGN0eCxcbn06IEFwcENvbnRleHQpOiBQcm9taXNlPEFwcEluaXRpYWxQcm9wcz4ge1xuICBjb25zdCBwYWdlUHJvcHMgPSBhd2FpdCBsb2FkR2V0SW5pdGlhbFByb3BzKENvbXBvbmVudCwgY3R4KVxuICByZXR1cm4geyBwYWdlUHJvcHMgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcHA8UCA9IGFueSwgQ1AgPSB7fSwgUyA9IHt9PiBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxcbiAgUCAmIEFwcFByb3BzPENQPixcbiAgU1xuPiB7XG4gIHN0YXRpYyBvcmlnR2V0SW5pdGlhbFByb3BzID0gYXBwR2V0SW5pdGlhbFByb3BzXG4gIHN0YXRpYyBnZXRJbml0aWFsUHJvcHMgPSBhcHBHZXRJbml0aWFsUHJvcHNcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBDb21wb25lbnQsIHBhZ2VQcm9wcyB9ID0gdGhpcy5wcm9wcyBhcyBBcHBQcm9wczxDUD5cblxuICAgIHJldHVybiA8Q29tcG9uZW50IHsuLi5wYWdlUHJvcHN9IC8+XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJBcHAiLCJhcHBHZXRJbml0aWFsUHJvcHMiLCJDb21wb25lbnQiLCJjdHgiLCJwYWdlUHJvcHMiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwiUmVhY3QiLCJyZW5kZXIiLCJwcm9wcyIsIm9yaWdHZXRJbml0aWFsUHJvcHMiLCJnZXRJbml0aWFsUHJvcHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_app.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/pages/_error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/pages/_error.js ***! + \************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return Error;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"./node_modules/next/dist/shared/lib/head.js\"));\nconst statusCodes = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error'\n};\nfunction _getInitialProps(param) {\n let { res, err } = param;\n const statusCode = res && res.statusCode ? res.statusCode : err ? err.statusCode : 404;\n return {\n statusCode\n };\n}\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n desc: {\n lineHeight: '48px'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px'\n },\n wrap: {\n display: 'inline-block'\n }\n};\nclass Error extends _react.default.Component {\n render() {\n const { statusCode, withDarkMode = true } = this.props;\n const title = this.props.title || statusCodes[statusCode] || 'An unexpected error has occurred';\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.error,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: statusCode ? statusCode + \": \" + title : 'Application error: a client-side exception has occurred'\n })\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n style: styles.desc,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* CSS minified from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n ${\n withDarkMode\n ? `@media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }`\n : ''\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\" + (withDarkMode ? '@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}' : '')\n }\n }),\n statusCode ? /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: styles.h1,\n children: statusCode\n }) : null,\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.wrap,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"h2\", {\n style: styles.h2,\n children: [\n this.props.title || statusCode ? title : /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: \"Application error: a client-side exception has occurred (see the browser console for more information)\"\n }),\n \".\"\n ]\n })\n })\n ]\n })\n ]\n });\n }\n}\nError.displayName = 'ErrorPage';\nError.getInitialProps = _getInitialProps;\nError.origGetInitialProps = _getInitialProps;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=_error.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3BhZ2VzL19lcnJvci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O2VBOERxQkE7Ozs7OzRFQTlESDsyRUFDRDtBQUdqQixNQUFNQyxjQUEwQztJQUM5QyxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0FBQ1A7QUFRQSxTQUFTQyxpQkFBaUIsS0FHUjtJQUhRLE1BQ3hCQyxHQUFHLEVBQ0hDLEdBQUcsRUFDYSxHQUhRO0lBSXhCLE1BQU1DLGFBQ0pGLE9BQU9BLElBQUlFLFVBQVUsR0FBR0YsSUFBSUUsVUFBVSxHQUFHRCxNQUFNQSxJQUFJQyxVQUFVLEdBQUk7SUFDbkUsT0FBTztRQUFFQTtJQUFXO0FBQ3RCO0FBRUEsTUFBTUMsU0FBOEM7SUFDbERDLE9BQU87UUFDTCwwRkFBMEY7UUFDMUZDLFlBQ0U7UUFDRkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsZUFBZTtRQUNmQyxZQUFZO1FBQ1pDLGdCQUFnQjtJQUNsQjtJQUNBQyxNQUFNO1FBQ0pDLFlBQVk7SUFDZDtJQUNBQyxJQUFJO1FBQ0ZOLFNBQVM7UUFDVE8sUUFBUTtRQUNSQyxjQUFjO1FBQ2RDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxlQUFlO0lBQ2pCO0lBQ0FDLElBQUk7UUFDRkgsVUFBVTtRQUNWQyxZQUFZO1FBQ1pMLFlBQVk7SUFDZDtJQUNBUSxNQUFNO1FBQ0piLFNBQVM7SUFDWDtBQUNGO0FBS2UsTUFBTVgsY0FBc0J5QixPQUFBQSxPQUFLLENBQUNDLFNBQVM7SUFNeERDLFNBQVM7UUFDUCxNQUFNLEVBQUV0QixVQUFVLEVBQUV1QixlQUFlLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQ0MsS0FBSztRQUN0RCxNQUFNQyxRQUNKLElBQUksQ0FBQ0QsS0FBSyxDQUFDQyxLQUFLLElBQ2hCN0IsV0FBVyxDQUFDSSxXQUFXLElBQ3ZCO1FBRUYscUJBQ0Usc0JBQUMwQixPQUFBQTtZQUFJQyxPQUFPMUIsT0FBT0MsS0FBSzs7OEJBQ3RCLHFCQUFDMEIsTUFBQUEsT0FBSTs4QkFDSCxtQ0FBQ0gsU0FBQUE7a0NBQ0V6QixhQUNNQSxhQUFXLE9BQUl5QixRQUNsQjs7OzhCQUdSLHNCQUFDQyxPQUFBQTtvQkFBSUMsT0FBTzFCLE9BQU9TLElBQUk7O3NDQUNyQixxQkFBQ2lCLFNBQUFBOzRCQUNDRSx5QkFBeUI7Z0NBQ3ZCOzs7Ozs7Ozs7Ozs7Ozs7O2VBZ0JDLEdBQ0RDLFFBQVMsbUdBQ1BQLENBQUFBLGVBQ0ksb0lBQ0EsR0FBQzs0QkFFVDs7d0JBR0R2QixhQUFBQSxXQUFBQSxHQUNDLHFCQUFDWSxNQUFBQTs0QkFBR21CLFdBQVU7NEJBQWdCSixPQUFPMUIsT0FBT1csRUFBRTtzQ0FDM0NaOzZCQUVEO3NDQUNKLHFCQUFDMEIsT0FBQUE7NEJBQUlDLE9BQU8xQixPQUFPa0IsSUFBSTtzQ0FDckIsb0NBQUNELE1BQUFBO2dDQUFHUyxPQUFPMUIsT0FBT2lCLEVBQUU7O29DQUNqQixJQUFJLENBQUNNLEtBQUssQ0FBQ0MsS0FBSyxJQUFJekIsYUFDbkJ5QixRQUFBQSxXQUFBQSxHQUVBO2tEQUFFOztvQ0FJRjs7Ozs7Ozs7SUFPZDtBQUNGO0FBeEVxQjlCLE1BQ1pxQyxXQUFBQSxHQUFjO0FBREZyQyxNQUdac0MsZUFBQUEsR0FBa0JwQztBQUhORixNQUladUMsbUJBQUFBLEdBQXNCckMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L3NyYy9wYWdlcy9fZXJyb3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCBIZWFkIGZyb20gJy4uL3NoYXJlZC9saWIvaGVhZCdcbmltcG9ydCB0eXBlIHsgTmV4dFBhZ2VDb250ZXh0IH0gZnJvbSAnLi4vc2hhcmVkL2xpYi91dGlscydcblxuY29uc3Qgc3RhdHVzQ29kZXM6IHsgW2NvZGU6IG51bWJlcl06IHN0cmluZyB9ID0ge1xuICA0MDA6ICdCYWQgUmVxdWVzdCcsXG4gIDQwNDogJ1RoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQnLFxuICA0MDU6ICdNZXRob2QgTm90IEFsbG93ZWQnLFxuICA1MDA6ICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InLFxufVxuXG5leHBvcnQgdHlwZSBFcnJvclByb3BzID0ge1xuICBzdGF0dXNDb2RlOiBudW1iZXJcbiAgdGl0bGU/OiBzdHJpbmdcbiAgd2l0aERhcmtNb2RlPzogYm9vbGVhblxufVxuXG5mdW5jdGlvbiBfZ2V0SW5pdGlhbFByb3BzKHtcbiAgcmVzLFxuICBlcnIsXG59OiBOZXh0UGFnZUNvbnRleHQpOiBQcm9taXNlPEVycm9yUHJvcHM+IHwgRXJyb3JQcm9wcyB7XG4gIGNvbnN0IHN0YXR1c0NvZGUgPVxuICAgIHJlcyAmJiByZXMuc3RhdHVzQ29kZSA/IHJlcy5zdGF0dXNDb2RlIDogZXJyID8gZXJyLnN0YXR1c0NvZGUhIDogNDA0XG4gIHJldHVybiB7IHN0YXR1c0NvZGUgfVxufVxuXG5jb25zdCBzdHlsZXM6IFJlY29yZDxzdHJpbmcsIFJlYWN0LkNTU1Byb3BlcnRpZXM+ID0ge1xuICBlcnJvcjoge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvbW9kZXJuLW5vcm1hbGl6ZS9ibG9iL21haW4vbW9kZXJuLW5vcm1hbGl6ZS5jc3MjTDM4LUw1MlxuICAgIGZvbnRGYW1pbHk6XG4gICAgICAnc3lzdGVtLXVpLFwiU2Vnb2UgVUlcIixSb2JvdG8sSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWYsXCJBcHBsZSBDb2xvciBFbW9qaVwiLFwiU2Vnb2UgVUkgRW1vamlcIicsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIGp1c3RpZnlDb250ZW50OiAnY2VudGVyJyxcbiAgfSxcbiAgZGVzYzoge1xuICAgIGxpbmVIZWlnaHQ6ICc0OHB4JyxcbiAgfSxcbiAgaDE6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICBtYXJnaW46ICcwIDIwcHggMCAwJyxcbiAgICBwYWRkaW5nUmlnaHQ6IDIzLFxuICAgIGZvbnRTaXplOiAyNCxcbiAgICBmb250V2VpZ2h0OiA1MDAsXG4gICAgdmVydGljYWxBbGlnbjogJ3RvcCcsXG4gIH0sXG4gIGgyOiB7XG4gICAgZm9udFNpemU6IDE0LFxuICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICBsaW5lSGVpZ2h0OiAnMjhweCcsXG4gIH0sXG4gIHdyYXA6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgfSxcbn1cblxuLyoqXG4gKiBgRXJyb3JgIGNvbXBvbmVudCB1c2VkIGZvciBoYW5kbGluZyBlcnJvcnMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVycm9yPFAgPSB7fT4gZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8UCAmIEVycm9yUHJvcHM+IHtcbiAgc3RhdGljIGRpc3BsYXlOYW1lID0gJ0Vycm9yUGFnZSdcblxuICBzdGF0aWMgZ2V0SW5pdGlhbFByb3BzID0gX2dldEluaXRpYWxQcm9wc1xuICBzdGF0aWMgb3JpZ0dldEluaXRpYWxQcm9wcyA9IF9nZXRJbml0aWFsUHJvcHNcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyBzdGF0dXNDb2RlLCB3aXRoRGFya01vZGUgPSB0cnVlIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgdGl0bGUgPVxuICAgICAgdGhpcy5wcm9wcy50aXRsZSB8fFxuICAgICAgc3RhdHVzQ29kZXNbc3RhdHVzQ29kZV0gfHxcbiAgICAgICdBbiB1bmV4cGVjdGVkIGVycm9yIGhhcyBvY2N1cnJlZCdcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZXJyb3J9PlxuICAgICAgICA8SGVhZD5cbiAgICAgICAgICA8dGl0bGU+XG4gICAgICAgICAgICB7c3RhdHVzQ29kZVxuICAgICAgICAgICAgICA/IGAke3N0YXR1c0NvZGV9OiAke3RpdGxlfWBcbiAgICAgICAgICAgICAgOiAnQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCd9XG4gICAgICAgICAgPC90aXRsZT5cbiAgICAgICAgPC9IZWFkPlxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMuZGVzY30+XG4gICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAvKiBDU1MgbWluaWZpZWQgZnJvbVxuICAgICAgICAgICAgICAgIGJvZHkgeyBtYXJnaW46IDA7IGNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAgICAgICAgICAgLm5leHQtZXJyb3ItaDEge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJHtcbiAgICAgICAgICAgICAgICAgIHdpdGhEYXJrTW9kZVxuICAgICAgICAgICAgICAgICAgICA/IGBAbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgICAgICAgICAgICAgICBib2R5IHsgY29sb3I6ICNmZmY7IGJhY2tncm91bmQ6ICMwMDA7IH1cbiAgICAgICAgICAgICAgICAgIC5uZXh0LWVycm9yLWgxIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAuMyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfWBcbiAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIF9faHRtbDogYGJvZHl7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kOiNmZmY7bWFyZ2luOjB9Lm5leHQtZXJyb3ItaDF7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDAsMCwwLC4zKX0ke1xuICAgICAgICAgICAgICAgIHdpdGhEYXJrTW9kZVxuICAgICAgICAgICAgICAgICAgPyAnQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtib2R5e2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMDAwfS5uZXh0LWVycm9yLWgxe2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMyl9fSdcbiAgICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICB7c3RhdHVzQ29kZSA/IChcbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJuZXh0LWVycm9yLWgxXCIgc3R5bGU9e3N0eWxlcy5oMX0+XG4gICAgICAgICAgICAgIHtzdGF0dXNDb2RlfVxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZXMud3JhcH0+XG4gICAgICAgICAgICA8aDIgc3R5bGU9e3N0eWxlcy5oMn0+XG4gICAgICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlIHx8IHN0YXR1c0NvZGUgPyAoXG4gICAgICAgICAgICAgICAgdGl0bGVcbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgQXBwbGljYXRpb24gZXJyb3I6IGEgY2xpZW50LXNpZGUgZXhjZXB0aW9uIGhhcyBvY2N1cnJlZCAoc2VlXG4gICAgICAgICAgICAgICAgICB0aGUgYnJvd3NlciBjb25zb2xlIGZvciBtb3JlIGluZm9ybWF0aW9uKVxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAuXG4gICAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkVycm9yIiwic3RhdHVzQ29kZXMiLCJfZ2V0SW5pdGlhbFByb3BzIiwicmVzIiwiZXJyIiwic3RhdHVzQ29kZSIsInN0eWxlcyIsImVycm9yIiwiZm9udEZhbWlseSIsImhlaWdodCIsInRleHRBbGlnbiIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZGVzYyIsImxpbmVIZWlnaHQiLCJoMSIsIm1hcmdpbiIsInBhZGRpbmdSaWdodCIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsInZlcnRpY2FsQWxpZ24iLCJoMiIsIndyYXAiLCJSZWFjdCIsIkNvbXBvbmVudCIsInJlbmRlciIsIndpdGhEYXJrTW9kZSIsInByb3BzIiwidGl0bGUiLCJkaXYiLCJzdHlsZSIsIkhlYWQiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImNsYXNzTmFtZSIsImRpc3BsYXlOYW1lIiwiZ2V0SW5pdGlhbFByb3BzIiwib3JpZ0dldEluaXRpYWxQcm9wcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/pages/_error.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js ***! + \*************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AmpStateContext\", ({\n enumerable: true,\n get: function() {\n return AmpStateContext;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst AmpStateContext = _react.default.createContext({});\nif (true) {\n AmpStateContext.displayName = 'AmpStateContext';\n} //# sourceMappingURL=amp-context.shared-runtime.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6Ijs7OzttREFFYUE7OztlQUFBQTs7Ozs0RUFGSztBQUVYLE1BQU1BLGtCQUFzQ0MsT0FBQUEsT0FBSyxDQUFDQyxhQUFhLENBQUMsQ0FBQztBQUV4RSxJQUFJQyxJQUFvQixFQUFtQjtJQUN6Q0gsZ0JBQWdCTSxXQUFXLEdBQUc7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9zaGFyZWQvbGliL2FtcC1jb250ZXh0LnNoYXJlZC1ydW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGNvbnN0IEFtcFN0YXRlQ29udGV4dDogUmVhY3QuQ29udGV4dDxhbnk+ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7fSlcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgQW1wU3RhdGVDb250ZXh0LmRpc3BsYXlOYW1lID0gJ0FtcFN0YXRlQ29udGV4dCdcbn1cbiJdLCJuYW1lcyI6WyJBbXBTdGF0ZUNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/amp-mode.js": +/*!*******************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/amp-mode.js ***! + \*******************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isInAmpMode\", ({\n enumerable: true,\n get: function() {\n return isInAmpMode;\n }\n}));\nfunction isInAmpMode(param) {\n let { ampFirst = false, hybrid = false, hasQuery = false } = param === void 0 ? {} : param;\n return ampFirst || hybrid && hasQuery;\n} //# sourceMappingURL=amp-mode.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYW1wLW1vZGUuanMiLCJtYXBwaW5ncyI6Ijs7OzsrQ0FBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLFlBQVk7SUFBQSxNQUMxQkMsV0FBVyxLQUFLLEVBQ2hCQyxTQUFTLEtBQUssRUFDZEMsV0FBVyxLQUFLLEVBQ2pCLEdBSjJCLG1CQUl4QixDQUFDLElBSnVCO0lBSzFCLE9BQU9GLFlBQWFDLFVBQVVDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvc2hhcmVkL2xpYi9hbXAtbW9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNJbkFtcE1vZGUoe1xuICBhbXBGaXJzdCA9IGZhbHNlLFxuICBoeWJyaWQgPSBmYWxzZSxcbiAgaGFzUXVlcnkgPSBmYWxzZSxcbn0gPSB7fSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYW1wRmlyc3QgfHwgKGh5YnJpZCAmJiBoYXNRdWVyeSlcbn1cbiJdLCJuYW1lcyI6WyJpc0luQW1wTW9kZSIsImFtcEZpcnN0IiwiaHlicmlkIiwiaGFzUXVlcnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/amp-mode.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js": +/*!********************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js ***! + \********************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n AppRouterContext: function() {\n return AppRouterContext;\n },\n GlobalLayoutRouterContext: function() {\n return GlobalLayoutRouterContext;\n },\n LayoutRouterContext: function() {\n return LayoutRouterContext;\n },\n MissingSlotContext: function() {\n return MissingSlotContext;\n },\n TemplateContext: function() {\n return TemplateContext;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst AppRouterContext = _react.default.createContext(null);\nconst LayoutRouterContext = _react.default.createContext(null);\nconst GlobalLayoutRouterContext = _react.default.createContext(null);\nconst TemplateContext = _react.default.createContext(null);\nif (true) {\n AppRouterContext.displayName = 'AppRouterContext';\n LayoutRouterContext.displayName = 'LayoutRouterContext';\n GlobalLayoutRouterContext.displayName = 'GlobalLayoutRouterContext';\n TemplateContext.displayName = 'TemplateContext';\n}\nconst MissingSlotContext = _react.default.createContext(new Set()); //# sourceMappingURL=app-router-context.shared-runtime.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQWdKYUEsZ0JBQWdCO2VBQWhCQTs7SUFVQUMseUJBQXlCO2VBQXpCQTs7SUFQQUMsbUJBQW1CO2VBQW5CQTs7SUF1QkFDLGtCQUFrQjtlQUFsQkE7O0lBVEFDLGVBQWU7ZUFBZkE7Ozs7NEVBeEpLO0FBdUlYLE1BQU1KLG1CQUFtQkssT0FBQUEsT0FBSyxDQUFDQyxhQUFhLENBQ2pEO0FBRUssTUFBTUosc0JBQXNCRyxPQUFBQSxPQUFLLENBQUNDLGFBQWEsQ0FLNUM7QUFFSCxNQUFNTCw0QkFBNEJJLE9BQUFBLE9BQUssQ0FBQ0MsYUFBYSxDQUt6RDtBQUVJLE1BQU1GLGtCQUFrQkMsT0FBQUEsT0FBSyxDQUFDQyxhQUFhLENBQWtCO0FBRXBFLElBQUlDLElBQW9CLEVBQW1CO0lBQ3pDUCxpQkFBaUJVLFdBQVcsR0FBRztJQUMvQlIsb0JBQW9CUSxXQUFXLEdBQUc7SUFDbENULDBCQUEwQlMsV0FBVyxHQUFHO0lBQ3hDTixnQkFBZ0JNLFdBQVcsR0FBRztBQUNoQztBQUVPLE1BQU1QLHFCQUFxQkUsT0FBQUEsT0FBSyxDQUFDQyxhQUFhLENBQWMsSUFBSUsiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0IH0gZnJvbSAnLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvcm91dGVyLXJlZHVjZXIvZmV0Y2gtc2VydmVyLXJlc3BvbnNlJ1xuaW1wb3J0IHR5cGUge1xuICBGb2N1c0FuZFNjcm9sbFJlZixcbiAgUHJlZmV0Y2hLaW5kLFxuICBSb3V0ZXJDaGFuZ2VCeVNlcnZlclJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9jbGllbnQvY29tcG9uZW50cy9yb3V0ZXItcmVkdWNlci9yb3V0ZXItcmVkdWNlci10eXBlcydcbmltcG9ydCB0eXBlIHsgRmxpZ2h0Um91dGVyU3RhdGUgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvYXBwLXJlbmRlci90eXBlcydcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuZXhwb3J0IHR5cGUgQ2hpbGRTZWdtZW50TWFwID0gTWFwPHN0cmluZywgQ2FjaGVOb2RlPlxuXG4vKipcbiAqIENhY2hlIG5vZGUgdXNlZCBpbiBhcHAtcm91dGVyIC8gbGF5b3V0LXJvdXRlci5cbiAqL1xuZXhwb3J0IHR5cGUgQ2FjaGVOb2RlID0gUmVhZHlDYWNoZU5vZGUgfCBMYXp5Q2FjaGVOb2RlXG5cbmV4cG9ydCB0eXBlIExvYWRpbmdNb2R1bGVEYXRhID1cbiAgfCBbUmVhY3QuSlNYLkVsZW1lbnQsIFJlYWN0LlJlYWN0Tm9kZSwgUmVhY3QuUmVhY3ROb2RlXVxuICB8IG51bGxcblxuZXhwb3J0IHR5cGUgTGF6eUNhY2hlTm9kZSA9IHtcbiAgLyoqXG4gICAqIFdoZW4gcnNjIGlzIG51bGwsIHRoaXMgaXMgYSBsYXppbHktaW5pdGlhbGl6ZWQgY2FjaGUgbm9kZS5cbiAgICpcbiAgICogSWYgdGhlIGFwcCBhdHRlbXB0cyB0byByZW5kZXIgaXQsIGl0IHRyaWdnZXJzIGEgbGF6eSBkYXRhIGZldGNoLFxuICAgKiBwb3N0cG9uZXMgdGhlIHJlbmRlciwgYW5kIHNjaGVkdWxlcyBhbiB1cGRhdGUgdG8gYSBuZXcgdHJlZS5cbiAgICpcbiAgICogVE9ETzogVGhpcyBtZWNoYW5pc20gc2hvdWxkIG5vdCBiZSB1c2VkIHdoZW4gUFBSIGlzIGVuYWJsZWQsIHRob3VnaCBpdFxuICAgKiBjdXJyZW50bHkgaXMgaW4gc29tZSBjYXNlcyB1bnRpbCB3ZSd2ZSBpbXBsZW1lbnRlZCBwYXJ0aWFsXG4gICAqIHNlZ21lbnQgZmV0Y2hpbmcuXG4gICAqL1xuICByc2M6IG51bGxcblxuICAvKipcbiAgICogQSBwcmVmZXRjaGVkIHZlcnNpb24gb2YgdGhlIHNlZ21lbnQgZGF0YS4gU2VlIGV4cGxhbmF0aW9uIGluIGNvcnJlc3BvbmRpbmdcbiAgICogZmllbGQgb2YgUmVhZHlDYWNoZU5vZGUgKGJlbG93KS5cbiAgICpcbiAgICogU2luY2UgTGF6eUNhY2hlTm9kZSBtb3N0bHkgb25seSBleGlzdHMgaW4gdGhlIG5vbi1QUFIgaW1wbGVtZW50YXRpb24sIHRoaXNcbiAgICogd2lsbCB1c3VhbGx5IGJlIG51bGwsIGJ1dCBpdCBjb3VsZCBoYXZlIGJlZW4gY2xvbmVkIGZyb20gYSBwcmV2aW91c1xuICAgKiBDYWNoZU5vZGUgdGhhdCB3YXMgY3JlYXRlZCBieSB0aGUgUFBSIGltcGxlbWVudGF0aW9uLiBFdmVudHVhbGx5IHdlIHdhbnRcbiAgICogdG8gbWlncmF0ZSBldmVyeXRoaW5nIGF3YXkgZnJvbSBMYXp5Q2FjaGVOb2RlIGVudGlyZWx5LlxuICAgKi9cbiAgcHJlZmV0Y2hSc2M6IFJlYWN0LlJlYWN0Tm9kZVxuXG4gIC8qKlxuICAgKiBBIHBlbmRpbmcgcmVzcG9uc2UgZm9yIHRoZSBsYXp5IGRhdGEgZmV0Y2guIElmIHRoaXMgaXMgbm90IHByZXNlbnRcbiAgICogZHVyaW5nIHJlbmRlciwgaXQgaXMgbGF6aWx5IGNyZWF0ZWQuXG4gICAqL1xuICBsYXp5RGF0YTogUHJvbWlzZTxGZXRjaFNlcnZlclJlc3BvbnNlUmVzdWx0PiB8IG51bGxcblxuICBwcmVmZXRjaEhlYWQ6IFJlYWN0LlJlYWN0Tm9kZVxuICBoZWFkOiBSZWFjdC5SZWFjdE5vZGVcblxuICBsb2FkaW5nOiBMb2FkaW5nTW9kdWxlRGF0YSB8IFByb21pc2U8TG9hZGluZ01vZHVsZURhdGE+XG5cbiAgLyoqXG4gICAqIENoaWxkIHBhcmFsbGVsIHJvdXRlcy5cbiAgICovXG4gIHBhcmFsbGVsUm91dGVzOiBNYXA8c3RyaW5nLCBDaGlsZFNlZ21lbnRNYXA+XG59XG5cbmV4cG9ydCB0eXBlIFJlYWR5Q2FjaGVOb2RlID0ge1xuICAvKipcbiAgICogV2hlbiByc2MgaXMgbm90IG51bGwsIGl0IHJlcHJlc2VudHMgdGhlIFJTQyBkYXRhIGZvciB0aGVcbiAgICogY29ycmVzcG9uZGluZyBzZWdtZW50LlxuICAgKlxuICAgKiBgbnVsbGAgaXMgYSB2YWxpZCBSZWFjdCBOb2RlIGJ1dCBiZWNhdXNlIHNlZ21lbnQgZGF0YSBpcyBhbHdheXMgYVxuICAgKiA8TGF5b3V0Um91dGVyPiBjb21wb25lbnQsIHdlIGNhbiB1c2UgYG51bGxgIHRvIHJlcHJlc2VudCBlbXB0eS5cbiAgICpcbiAgICogVE9ETzogRm9yIGFkZGl0aW9uYWwgdHlwZSBzYWZldHksIHVwZGF0ZSB0aGlzIHR5cGUgdG9cbiAgICogRXhjbHVkZTxSZWFjdC5SZWFjdE5vZGUsIG51bGw+LiBOZWVkIHRvIHVwZGF0ZSBjcmVhdGVFbXB0eUNhY2hlTm9kZSB0b1xuICAgKiBhY2NlcHQgcnNjIGFzIGFuIGFyZ3VtZW50LCBvciBqdXN0IGlubGluZSB0aGUgY2FsbGVycy5cbiAgICovXG4gIHJzYzogUmVhY3QuUmVhY3ROb2RlXG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYSBzdGF0aWMgdmVyc2lvbiBvZiB0aGUgc2VnbWVudCB0aGF0IGNhbiBiZSBzaG93biBpbW1lZGlhdGVseSxcbiAgICogYW5kIG1heSBvciBtYXkgbm90IGNvbnRhaW4gZHluYW1pYyBob2xlcy4gSXQncyBwcmVmZXRjaGVkIGJlZm9yZSBhXG4gICAqIG5hdmlnYXRpb24gb2NjdXJzLlxuICAgKlxuICAgKiBEdXJpbmcgcmVuZGVyaW5nLCB3ZSB3aWxsIGNob29zZSB3aGV0aGVyIHRvIHJlbmRlciBgcnNjYCBvciBgcHJlZmV0Y2hSc2NgXG4gICAqIHdpdGggYHVzZURlZmVycmVkVmFsdWVgLiBBcyB3aXRoIHRoZSBgcnNjYCBmaWVsZCwgYSB2YWx1ZSBvZiBgbnVsbGAgbWVhbnNcbiAgICogbm8gdmFsdWUgd2FzIHByb3ZpZGVkLiBJbiB0aGlzIGNhc2UsIHRoZSBMYXlvdXRSb3V0ZXIgd2lsbCBnbyBzdHJhaWdodCB0b1xuICAgKiByZW5kZXJpbmcgdGhlIGByc2NgIHZhbHVlOyBpZiB0aGF0IG9uZSBpcyBhbHNvIG1pc3NpbmcsIGl0IHdpbGwgc3VzcGVuZCBhbmRcbiAgICogdHJpZ2dlciBhIGxhenkgZmV0Y2guXG4gICAqL1xuICBwcmVmZXRjaFJzYzogUmVhY3QuUmVhY3ROb2RlXG5cbiAgLyoqXG4gICAqIFRoZXJlIHNob3VsZCBuZXZlciBiZSBhIGxhenkgZGF0YSByZXF1ZXN0IGluIHRoaXMgY2FzZS5cbiAgICovXG4gIGxhenlEYXRhOiBudWxsXG4gIHByZWZldGNoSGVhZDogUmVhY3QuUmVhY3ROb2RlXG4gIGhlYWQ6IFJlYWN0LlJlYWN0Tm9kZVxuXG4gIGxvYWRpbmc6IExvYWRpbmdNb2R1bGVEYXRhIHwgUHJvbWlzZTxMb2FkaW5nTW9kdWxlRGF0YT5cblxuICBwYXJhbGxlbFJvdXRlczogTWFwPHN0cmluZywgQ2hpbGRTZWdtZW50TWFwPlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5hdmlnYXRlT3B0aW9ucyB7XG4gIHNjcm9sbD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmVmZXRjaE9wdGlvbnMge1xuICBraW5kOiBQcmVmZXRjaEtpbmRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBSb3V0ZXJJbnN0YW5jZSB7XG4gIC8qKlxuICAgKiBOYXZpZ2F0ZSB0byB0aGUgcHJldmlvdXMgaGlzdG9yeSBlbnRyeS5cbiAgICovXG4gIGJhY2soKTogdm9pZFxuICAvKipcbiAgICogTmF2aWdhdGUgdG8gdGhlIG5leHQgaGlzdG9yeSBlbnRyeS5cbiAgICovXG4gIGZvcndhcmQoKTogdm9pZFxuICAvKipcbiAgICogUmVmcmVzaCB0aGUgY3VycmVudCBwYWdlLlxuICAgKi9cbiAgcmVmcmVzaCgpOiB2b2lkXG4gIC8qKlxuICAgKiBSZWZyZXNoIHRoZSBjdXJyZW50IHBhZ2UuIFVzZSBpbiBkZXZlbG9wbWVudCBvbmx5LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGhtclJlZnJlc2goKTogdm9pZFxuICAvKipcbiAgICogTmF2aWdhdGUgdG8gdGhlIHByb3ZpZGVkIGhyZWYuXG4gICAqIFB1c2hlcyBhIG5ldyBoaXN0b3J5IGVudHJ5LlxuICAgKi9cbiAgcHVzaChocmVmOiBzdHJpbmcsIG9wdGlvbnM/OiBOYXZpZ2F0ZU9wdGlvbnMpOiB2b2lkXG4gIC8qKlxuICAgKiBOYXZpZ2F0ZSB0byB0aGUgcHJvdmlkZWQgaHJlZi5cbiAgICogUmVwbGFjZXMgdGhlIGN1cnJlbnQgaGlzdG9yeSBlbnRyeS5cbiAgICovXG4gIHJlcGxhY2UoaHJlZjogc3RyaW5nLCBvcHRpb25zPzogTmF2aWdhdGVPcHRpb25zKTogdm9pZFxuICAvKipcbiAgICogUHJlZmV0Y2ggdGhlIHByb3ZpZGVkIGhyZWYuXG4gICAqL1xuICBwcmVmZXRjaChocmVmOiBzdHJpbmcsIG9wdGlvbnM/OiBQcmVmZXRjaE9wdGlvbnMpOiB2b2lkXG59XG5cbmV4cG9ydCBjb25zdCBBcHBSb3V0ZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDxBcHBSb3V0ZXJJbnN0YW5jZSB8IG51bGw+KFxuICBudWxsXG4pXG5leHBvcnQgY29uc3QgTGF5b3V0Um91dGVyQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQ8e1xuICBjaGlsZE5vZGVzOiBDYWNoZU5vZGVbJ3BhcmFsbGVsUm91dGVzJ11cbiAgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGVcbiAgdXJsOiBzdHJpbmdcbiAgbG9hZGluZzogTG9hZGluZ01vZHVsZURhdGEgfCBQcm9taXNlPExvYWRpbmdNb2R1bGVEYXRhPlxufSB8IG51bGw+KG51bGwpXG5cbmV4cG9ydCBjb25zdCBHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDx7XG4gIHRyZWU6IEZsaWdodFJvdXRlclN0YXRlXG4gIGNoYW5nZUJ5U2VydmVyUmVzcG9uc2U6IFJvdXRlckNoYW5nZUJ5U2VydmVyUmVzcG9uc2VcbiAgZm9jdXNBbmRTY3JvbGxSZWY6IEZvY3VzQW5kU2Nyb2xsUmVmXG4gIG5leHRVcmw6IHN0cmluZyB8IG51bGxcbn0+KG51bGwgYXMgYW55KVxuXG5leHBvcnQgY29uc3QgVGVtcGxhdGVDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDxSZWFjdC5SZWFjdE5vZGU+KG51bGwgYXMgYW55KVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBBcHBSb3V0ZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gJ0FwcFJvdXRlckNvbnRleHQnXG4gIExheW91dFJvdXRlckNvbnRleHQuZGlzcGxheU5hbWUgPSAnTGF5b3V0Um91dGVyQ29udGV4dCdcbiAgR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0J1xuICBUZW1wbGF0ZUNvbnRleHQuZGlzcGxheU5hbWUgPSAnVGVtcGxhdGVDb250ZXh0J1xufVxuXG5leHBvcnQgY29uc3QgTWlzc2luZ1Nsb3RDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dDxTZXQ8c3RyaW5nPj4obmV3IFNldCgpKVxuIl0sIm5hbWVzIjpbIkFwcFJvdXRlckNvbnRleHQiLCJHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0IiwiTGF5b3V0Um91dGVyQ29udGV4dCIsIk1pc3NpbmdTbG90Q29udGV4dCIsIlRlbXBsYXRlQ29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRpc3BsYXlOYW1lIiwiU2V0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/bloom-filter.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/bloom-filter.js ***! + \***********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// minimal implementation MurmurHash2 hash function\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"BloomFilter\", ({\n enumerable: true,\n get: function() {\n return BloomFilter;\n }\n}));\nfunction murmurhash2(str) {\n let h = 0;\n for(let i = 0; i < str.length; i++){\n const c = str.charCodeAt(i);\n h = Math.imul(h ^ c, 0x5bd1e995);\n h ^= h >>> 13;\n h = Math.imul(h, 0x5bd1e995);\n }\n return h >>> 0;\n}\n// default to 0.01% error rate as the filter compresses very well\nconst DEFAULT_ERROR_RATE = 0.0001;\nclass BloomFilter {\n static from(items, errorRate) {\n if (errorRate === void 0) errorRate = DEFAULT_ERROR_RATE;\n const filter = new BloomFilter(items.length, errorRate);\n for (const item of items){\n filter.add(item);\n }\n return filter;\n }\n export() {\n const data = {\n numItems: this.numItems,\n errorRate: this.errorRate,\n numBits: this.numBits,\n numHashes: this.numHashes,\n bitArray: this.bitArray\n };\n if (false) {}\n return data;\n }\n import(data) {\n this.numItems = data.numItems;\n this.errorRate = data.errorRate;\n this.numBits = data.numBits;\n this.numHashes = data.numHashes;\n this.bitArray = data.bitArray;\n }\n add(item) {\n const hashValues = this.getHashValues(item);\n hashValues.forEach((hash)=>{\n this.bitArray[hash] = 1;\n });\n }\n contains(item) {\n const hashValues = this.getHashValues(item);\n return hashValues.every((hash)=>this.bitArray[hash]);\n }\n getHashValues(item) {\n const hashValues = [];\n for(let i = 1; i <= this.numHashes; i++){\n const hash = murmurhash2(\"\" + item + i) % this.numBits;\n hashValues.push(hash);\n }\n return hashValues;\n }\n constructor(numItems, errorRate = DEFAULT_ERROR_RATE){\n this.numItems = numItems;\n this.errorRate = errorRate;\n this.numBits = Math.ceil(-(numItems * Math.log(errorRate)) / (Math.log(2) * Math.log(2)));\n this.numHashes = Math.ceil(this.numBits / numItems * Math.log(2));\n this.bitArray = new Array(this.numBits).fill(0);\n }\n} //# sourceMappingURL=bloom-filter.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvYmxvb20tZmlsdGVyLmpzIiwibWFwcGluZ3MiOiJBQUFBLG1EQUFtRDs7Ozs7K0NBZXRDQTs7O2VBQUFBOzs7QUFkYixTQUFTQyxZQUFZQyxHQUFXO0lBQzlCLElBQUlDLElBQUk7SUFDUixJQUFLLElBQUlDLElBQUksR0FBR0EsSUFBSUYsSUFBSUcsTUFBTSxFQUFFRCxJQUFLO1FBQ25DLE1BQU1FLElBQUlKLElBQUlLLFVBQVUsQ0FBQ0g7UUFDekJELElBQUlLLEtBQUtDLElBQUksQ0FBQ04sSUFBSUcsR0FBRztRQUNyQkgsS0FBS0EsTUFBTTtRQUNYQSxJQUFJSyxLQUFLQyxJQUFJLENBQUNOLEdBQUc7SUFDbkI7SUFDQSxPQUFPQSxNQUFNO0FBQ2Y7QUFFQSxpRUFBaUU7QUFDakUsTUFBTU8scUJBQXFCO0FBRXBCLE1BQU1WO0lBaUJYLE9BQU9XLEtBQUtDLEtBQWUsRUFBRUMsU0FBOEIsRUFBRTtRQUFoQ0EsSUFBQUEsY0FBQUEsS0FBQUEsR0FBQUEsWUFBWUg7UUFDdkMsTUFBTUksU0FBUyxJQUFJZCxZQUFZWSxNQUFNUCxNQUFNLEVBQUVRO1FBRTdDLEtBQUssTUFBTUUsUUFBUUgsTUFBTztZQUN4QkUsT0FBT0UsR0FBRyxDQUFDRDtRQUNiO1FBQ0EsT0FBT0Q7SUFDVDtJQUVBRyxTQUFTO1FBQ1AsTUFBTUMsT0FBTztZQUNYQyxVQUFVLElBQUksQ0FBQ0EsUUFBUTtZQUN2Qk4sV0FBVyxJQUFJLENBQUNBLFNBQVM7WUFDekJPLFNBQVMsSUFBSSxDQUFDQSxPQUFPO1lBQ3JCQyxXQUFXLElBQUksQ0FBQ0EsU0FBUztZQUN6QkMsVUFBVSxJQUFJLENBQUNBLFFBQVE7UUFDekI7UUFFQSxJQUFJQyxLQUFxQyxFQUFFLEVBYTFDO1FBRUQsT0FBT0w7SUFDVDtJQUVBZ0IsT0FBT2hCLElBQXlDLEVBQUU7UUFDaEQsSUFBSSxDQUFDQyxRQUFRLEdBQUdELEtBQUtDLFFBQVE7UUFDN0IsSUFBSSxDQUFDTixTQUFTLEdBQUdLLEtBQUtMLFNBQVM7UUFDL0IsSUFBSSxDQUFDTyxPQUFPLEdBQUdGLEtBQUtFLE9BQU87UUFDM0IsSUFBSSxDQUFDQyxTQUFTLEdBQUdILEtBQUtHLFNBQVM7UUFDL0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdKLEtBQUtJLFFBQVE7SUFDL0I7SUFFQU4sSUFBSUQsSUFBWSxFQUFFO1FBQ2hCLE1BQU1vQixhQUFhLElBQUksQ0FBQ0MsYUFBYSxDQUFDckI7UUFDdENvQixXQUFXRSxPQUFPLENBQUMsQ0FBQ0M7WUFDbEIsSUFBSSxDQUFDaEIsUUFBUSxDQUFDZ0IsS0FBSyxHQUFHO1FBQ3hCO0lBQ0Y7SUFFQUMsU0FBU3hCLElBQVksRUFBRTtRQUNyQixNQUFNb0IsYUFBYSxJQUFJLENBQUNDLGFBQWEsQ0FBQ3JCO1FBQ3RDLE9BQU9vQixXQUFXSyxLQUFLLENBQUMsQ0FBQ0YsT0FBUyxJQUFJLENBQUNoQixRQUFRLENBQUNnQixLQUFLO0lBQ3ZEO0lBRUFGLGNBQWNyQixJQUFZLEVBQUU7UUFDMUIsTUFBTW9CLGFBQWEsRUFBRTtRQUNyQixJQUFLLElBQUkvQixJQUFJLEdBQUdBLEtBQUssSUFBSSxDQUFDaUIsU0FBUyxFQUFFakIsSUFBSztZQUN4QyxNQUFNa0MsT0FBT3JDLFlBQWEsS0FBRWMsT0FBT1gsS0FBTyxJQUFJLENBQUNnQixPQUFPO1lBQ3REZSxXQUFXTSxJQUFJLENBQUNIO1FBQ2xCO1FBQ0EsT0FBT0g7SUFDVDtJQXpFQU8sWUFBWXZCLFFBQWdCLEVBQUVOLFlBQW9CSCxrQkFBa0IsQ0FBRTtRQUNwRSxJQUFJLENBQUNTLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDTixTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ08sT0FBTyxHQUFHWixLQUFLbUMsSUFBSSxDQUN0QixDQUFFeEIsQ0FBQUEsV0FBV1gsS0FBS29DLEdBQUcsQ0FBQy9CLFVBQUFBLENBQVMsSUFBTUwsS0FBS29DLEdBQUcsQ0FBQyxLQUFLcEMsS0FBS29DLEdBQUcsQ0FBQyxHQUFDO1FBRS9ELElBQUksQ0FBQ3ZCLFNBQVMsR0FBR2IsS0FBS21DLElBQUksQ0FBRSxJQUFJLENBQUN2QixPQUFPLEdBQUdELFdBQVlYLEtBQUtvQyxHQUFHLENBQUM7UUFDaEUsSUFBSSxDQUFDdEIsUUFBUSxHQUFHLElBQUl1QixNQUFNLElBQUksQ0FBQ3pCLE9BQU8sRUFBRTBCLElBQUksQ0FBQztJQUMvQztBQWtFRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvYmxvb20tZmlsdGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIG1pbmltYWwgaW1wbGVtZW50YXRpb24gTXVybXVySGFzaDIgaGFzaCBmdW5jdGlvblxuZnVuY3Rpb24gbXVybXVyaGFzaDIoc3RyOiBzdHJpbmcpIHtcbiAgbGV0IGggPSAwXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYyA9IHN0ci5jaGFyQ29kZUF0KGkpXG4gICAgaCA9IE1hdGguaW11bChoIF4gYywgMHg1YmQxZTk5NSlcbiAgICBoIF49IGggPj4+IDEzXG4gICAgaCA9IE1hdGguaW11bChoLCAweDViZDFlOTk1KVxuICB9XG4gIHJldHVybiBoID4+PiAwXG59XG5cbi8vIGRlZmF1bHQgdG8gMC4wMSUgZXJyb3IgcmF0ZSBhcyB0aGUgZmlsdGVyIGNvbXByZXNzZXMgdmVyeSB3ZWxsXG5jb25zdCBERUZBVUxUX0VSUk9SX1JBVEUgPSAwLjAwMDFcblxuZXhwb3J0IGNsYXNzIEJsb29tRmlsdGVyIHtcbiAgbnVtSXRlbXM6IG51bWJlclxuICBlcnJvclJhdGU6IG51bWJlclxuICBudW1CaXRzOiBudW1iZXJcbiAgbnVtSGFzaGVzOiBudW1iZXJcbiAgYml0QXJyYXk6IG51bWJlcltdXG5cbiAgY29uc3RydWN0b3IobnVtSXRlbXM6IG51bWJlciwgZXJyb3JSYXRlOiBudW1iZXIgPSBERUZBVUxUX0VSUk9SX1JBVEUpIHtcbiAgICB0aGlzLm51bUl0ZW1zID0gbnVtSXRlbXNcbiAgICB0aGlzLmVycm9yUmF0ZSA9IGVycm9yUmF0ZVxuICAgIHRoaXMubnVtQml0cyA9IE1hdGguY2VpbChcbiAgICAgIC0obnVtSXRlbXMgKiBNYXRoLmxvZyhlcnJvclJhdGUpKSAvIChNYXRoLmxvZygyKSAqIE1hdGgubG9nKDIpKVxuICAgIClcbiAgICB0aGlzLm51bUhhc2hlcyA9IE1hdGguY2VpbCgodGhpcy5udW1CaXRzIC8gbnVtSXRlbXMpICogTWF0aC5sb2coMikpXG4gICAgdGhpcy5iaXRBcnJheSA9IG5ldyBBcnJheSh0aGlzLm51bUJpdHMpLmZpbGwoMClcbiAgfVxuXG4gIHN0YXRpYyBmcm9tKGl0ZW1zOiBzdHJpbmdbXSwgZXJyb3JSYXRlID0gREVGQVVMVF9FUlJPUl9SQVRFKSB7XG4gICAgY29uc3QgZmlsdGVyID0gbmV3IEJsb29tRmlsdGVyKGl0ZW1zLmxlbmd0aCwgZXJyb3JSYXRlKVxuXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBmaWx0ZXIuYWRkKGl0ZW0pXG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXJcbiAgfVxuXG4gIGV4cG9ydCgpIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgbnVtSXRlbXM6IHRoaXMubnVtSXRlbXMsXG4gICAgICBlcnJvclJhdGU6IHRoaXMuZXJyb3JSYXRlLFxuICAgICAgbnVtQml0czogdGhpcy5udW1CaXRzLFxuICAgICAgbnVtSGFzaGVzOiB0aGlzLm51bUhhc2hlcyxcbiAgICAgIGJpdEFycmF5OiB0aGlzLmJpdEFycmF5LFxuICAgIH1cblxuICAgIGlmIChwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgPT09ICdub2RlanMnKSB7XG4gICAgICBpZiAodGhpcy5lcnJvclJhdGUgPCBERUZBVUxUX0VSUk9SX1JBVEUpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyRGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpXG4gICAgICAgIGNvbnN0IGd6aXBTaXplID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL2d6aXAtc2l6ZScpLnN5bmMoXG4gICAgICAgICAgZmlsdGVyRGF0YVxuICAgICAgICApXG5cbiAgICAgICAgaWYgKGd6aXBTaXplID4gMTAyNCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBDcmVhdGluZyBmaWx0ZXIgd2l0aCBlcnJvciByYXRlIGxlc3MgdGhhbiAwLjElICgwLjAwMSkgY2FuIGluY3JlYXNlIHRoZSBzaXplIGRyYW1hdGljYWxseSBwcm9jZWVkIHdpdGggY2F1dGlvbi4gUmVjZWl2ZWQgZXJyb3IgcmF0ZSAke3RoaXMuZXJyb3JSYXRlfSByZXN1bHRlZCBpbiBzaXplICR7ZmlsdGVyRGF0YS5sZW5ndGh9IGJ5dGVzLCAke2d6aXBTaXplfSBieXRlcyAoZ3ppcClgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGFcbiAgfVxuXG4gIGltcG9ydChkYXRhOiBSZXR1cm5UeXBlPCh0eXBlb2YgdGhpcylbJ2V4cG9ydCddPikge1xuICAgIHRoaXMubnVtSXRlbXMgPSBkYXRhLm51bUl0ZW1zXG4gICAgdGhpcy5lcnJvclJhdGUgPSBkYXRhLmVycm9yUmF0ZVxuICAgIHRoaXMubnVtQml0cyA9IGRhdGEubnVtQml0c1xuICAgIHRoaXMubnVtSGFzaGVzID0gZGF0YS5udW1IYXNoZXNcbiAgICB0aGlzLmJpdEFycmF5ID0gZGF0YS5iaXRBcnJheVxuICB9XG5cbiAgYWRkKGl0ZW06IHN0cmluZykge1xuICAgIGNvbnN0IGhhc2hWYWx1ZXMgPSB0aGlzLmdldEhhc2hWYWx1ZXMoaXRlbSlcbiAgICBoYXNoVmFsdWVzLmZvckVhY2goKGhhc2gpID0+IHtcbiAgICAgIHRoaXMuYml0QXJyYXlbaGFzaF0gPSAxXG4gICAgfSlcbiAgfVxuXG4gIGNvbnRhaW5zKGl0ZW06IHN0cmluZykge1xuICAgIGNvbnN0IGhhc2hWYWx1ZXMgPSB0aGlzLmdldEhhc2hWYWx1ZXMoaXRlbSlcbiAgICByZXR1cm4gaGFzaFZhbHVlcy5ldmVyeSgoaGFzaCkgPT4gdGhpcy5iaXRBcnJheVtoYXNoXSlcbiAgfVxuXG4gIGdldEhhc2hWYWx1ZXMoaXRlbTogc3RyaW5nKSB7XG4gICAgY29uc3QgaGFzaFZhbHVlcyA9IFtdXG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdGhpcy5udW1IYXNoZXM7IGkrKykge1xuICAgICAgY29uc3QgaGFzaCA9IG11cm11cmhhc2gyKGAke2l0ZW19JHtpfWApICUgdGhpcy5udW1CaXRzXG4gICAgICBoYXNoVmFsdWVzLnB1c2goaGFzaClcbiAgICB9XG4gICAgcmV0dXJuIGhhc2hWYWx1ZXNcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkJsb29tRmlsdGVyIiwibXVybXVyaGFzaDIiLCJzdHIiLCJoIiwiaSIsImxlbmd0aCIsImMiLCJjaGFyQ29kZUF0IiwiTWF0aCIsImltdWwiLCJERUZBVUxUX0VSUk9SX1JBVEUiLCJmcm9tIiwiaXRlbXMiLCJlcnJvclJhdGUiLCJmaWx0ZXIiLCJpdGVtIiwiYWRkIiwiZXhwb3J0IiwiZGF0YSIsIm51bUl0ZW1zIiwibnVtQml0cyIsIm51bUhhc2hlcyIsImJpdEFycmF5IiwicHJvY2VzcyIsImVudiIsIk5FWFRfUlVOVElNRSIsImZpbHRlckRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwiZ3ppcFNpemUiLCJyZXF1aXJlIiwic3luYyIsImNvbnNvbGUiLCJ3YXJuIiwiaW1wb3J0IiwiaGFzaFZhbHVlcyIsImdldEhhc2hWYWx1ZXMiLCJmb3JFYWNoIiwiaGFzaCIsImNvbnRhaW5zIiwiZXZlcnkiLCJwdXNoIiwiY29uc3RydWN0b3IiLCJjZWlsIiwibG9nIiwiQXJyYXkiLCJmaWxsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/bloom-filter.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/constants.js": +/*!********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/constants.js ***! + \********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n APP_BUILD_MANIFEST: function() {\n return APP_BUILD_MANIFEST;\n },\n APP_CLIENT_INTERNALS: function() {\n return APP_CLIENT_INTERNALS;\n },\n APP_PATHS_MANIFEST: function() {\n return APP_PATHS_MANIFEST;\n },\n APP_PATH_ROUTES_MANIFEST: function() {\n return APP_PATH_ROUTES_MANIFEST;\n },\n BARREL_OPTIMIZATION_PREFIX: function() {\n return BARREL_OPTIMIZATION_PREFIX;\n },\n BLOCKED_PAGES: function() {\n return BLOCKED_PAGES;\n },\n BUILD_ID_FILE: function() {\n return BUILD_ID_FILE;\n },\n BUILD_MANIFEST: function() {\n return BUILD_MANIFEST;\n },\n CLIENT_PUBLIC_FILES_PATH: function() {\n return CLIENT_PUBLIC_FILES_PATH;\n },\n CLIENT_REFERENCE_MANIFEST: function() {\n return CLIENT_REFERENCE_MANIFEST;\n },\n CLIENT_STATIC_FILES_PATH: function() {\n return CLIENT_STATIC_FILES_PATH;\n },\n CLIENT_STATIC_FILES_RUNTIME_AMP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_AMP;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN;\n },\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: function() {\n return CLIENT_STATIC_FILES_RUNTIME_MAIN_APP;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS;\n },\n CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: function() {\n return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\n },\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: function() {\n return CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH;\n },\n CLIENT_STATIC_FILES_RUNTIME_WEBPACK: function() {\n return CLIENT_STATIC_FILES_RUNTIME_WEBPACK;\n },\n COMPILER_INDEXES: function() {\n return COMPILER_INDEXES;\n },\n COMPILER_NAMES: function() {\n return COMPILER_NAMES;\n },\n CONFIG_FILES: function() {\n return CONFIG_FILES;\n },\n DEFAULT_RUNTIME_WEBPACK: function() {\n return DEFAULT_RUNTIME_WEBPACK;\n },\n DEFAULT_SANS_SERIF_FONT: function() {\n return DEFAULT_SANS_SERIF_FONT;\n },\n DEFAULT_SERIF_FONT: function() {\n return DEFAULT_SERIF_FONT;\n },\n DEV_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return DEV_CLIENT_MIDDLEWARE_MANIFEST;\n },\n DEV_CLIENT_PAGES_MANIFEST: function() {\n return DEV_CLIENT_PAGES_MANIFEST;\n },\n DYNAMIC_CSS_MANIFEST: function() {\n return DYNAMIC_CSS_MANIFEST;\n },\n EDGE_RUNTIME_WEBPACK: function() {\n return EDGE_RUNTIME_WEBPACK;\n },\n EDGE_UNSUPPORTED_NODE_APIS: function() {\n return EDGE_UNSUPPORTED_NODE_APIS;\n },\n EXPORT_DETAIL: function() {\n return EXPORT_DETAIL;\n },\n EXPORT_MARKER: function() {\n return EXPORT_MARKER;\n },\n FUNCTIONS_CONFIG_MANIFEST: function() {\n return FUNCTIONS_CONFIG_MANIFEST;\n },\n IMAGES_MANIFEST: function() {\n return IMAGES_MANIFEST;\n },\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: function() {\n return INTERCEPTION_ROUTE_REWRITE_MANIFEST;\n },\n MIDDLEWARE_BUILD_MANIFEST: function() {\n return MIDDLEWARE_BUILD_MANIFEST;\n },\n MIDDLEWARE_MANIFEST: function() {\n return MIDDLEWARE_MANIFEST;\n },\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: function() {\n return MIDDLEWARE_REACT_LOADABLE_MANIFEST;\n },\n MODERN_BROWSERSLIST_TARGET: function() {\n return _modernbrowserslisttarget.default;\n },\n NEXT_BUILTIN_DOCUMENT: function() {\n return NEXT_BUILTIN_DOCUMENT;\n },\n NEXT_FONT_MANIFEST: function() {\n return NEXT_FONT_MANIFEST;\n },\n PAGES_MANIFEST: function() {\n return PAGES_MANIFEST;\n },\n PHASE_DEVELOPMENT_SERVER: function() {\n return PHASE_DEVELOPMENT_SERVER;\n },\n PHASE_EXPORT: function() {\n return PHASE_EXPORT;\n },\n PHASE_INFO: function() {\n return PHASE_INFO;\n },\n PHASE_PRODUCTION_BUILD: function() {\n return PHASE_PRODUCTION_BUILD;\n },\n PHASE_PRODUCTION_SERVER: function() {\n return PHASE_PRODUCTION_SERVER;\n },\n PHASE_TEST: function() {\n return PHASE_TEST;\n },\n PRERENDER_MANIFEST: function() {\n return PRERENDER_MANIFEST;\n },\n REACT_LOADABLE_MANIFEST: function() {\n return REACT_LOADABLE_MANIFEST;\n },\n ROUTES_MANIFEST: function() {\n return ROUTES_MANIFEST;\n },\n RSC_MODULE_TYPES: function() {\n return RSC_MODULE_TYPES;\n },\n SERVER_DIRECTORY: function() {\n return SERVER_DIRECTORY;\n },\n SERVER_FILES_MANIFEST: function() {\n return SERVER_FILES_MANIFEST;\n },\n SERVER_PROPS_ID: function() {\n return SERVER_PROPS_ID;\n },\n SERVER_REFERENCE_MANIFEST: function() {\n return SERVER_REFERENCE_MANIFEST;\n },\n STATIC_PROPS_ID: function() {\n return STATIC_PROPS_ID;\n },\n STATIC_STATUS_PAGES: function() {\n return STATIC_STATUS_PAGES;\n },\n STRING_LITERAL_DROP_BUNDLE: function() {\n return STRING_LITERAL_DROP_BUNDLE;\n },\n SUBRESOURCE_INTEGRITY_MANIFEST: function() {\n return SUBRESOURCE_INTEGRITY_MANIFEST;\n },\n SYSTEM_ENTRYPOINTS: function() {\n return SYSTEM_ENTRYPOINTS;\n },\n TRACE_OUTPUT_VERSION: function() {\n return TRACE_OUTPUT_VERSION;\n },\n TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: function() {\n return TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST;\n },\n TURBO_TRACE_DEFAULT_MEMORY_LIMIT: function() {\n return TURBO_TRACE_DEFAULT_MEMORY_LIMIT;\n },\n UNDERSCORE_NOT_FOUND_ROUTE: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE;\n },\n UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() {\n return UNDERSCORE_NOT_FOUND_ROUTE_ENTRY;\n },\n WEBPACK_STATS: function() {\n return WEBPACK_STATS;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./modern-browserslist-target */ \"./node_modules/next/dist/shared/lib/modern-browserslist-target.js\"));\nconst COMPILER_NAMES = {\n client: 'client',\n server: 'server',\n edgeServer: 'edge-server'\n};\nconst COMPILER_INDEXES = {\n [COMPILER_NAMES.client]: 0,\n [COMPILER_NAMES.server]: 1,\n [COMPILER_NAMES.edgeServer]: 2\n};\nconst UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found';\nconst UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = \"\" + UNDERSCORE_NOT_FOUND_ROUTE + \"/page\";\nconst PHASE_EXPORT = 'phase-export';\nconst PHASE_PRODUCTION_BUILD = 'phase-production-build';\nconst PHASE_PRODUCTION_SERVER = 'phase-production-server';\nconst PHASE_DEVELOPMENT_SERVER = 'phase-development-server';\nconst PHASE_TEST = 'phase-test';\nconst PHASE_INFO = 'phase-info';\nconst PAGES_MANIFEST = 'pages-manifest.json';\nconst WEBPACK_STATS = 'webpack-stats.json';\nconst APP_PATHS_MANIFEST = 'app-paths-manifest.json';\nconst APP_PATH_ROUTES_MANIFEST = 'app-path-routes-manifest.json';\nconst BUILD_MANIFEST = 'build-manifest.json';\nconst APP_BUILD_MANIFEST = 'app-build-manifest.json';\nconst FUNCTIONS_CONFIG_MANIFEST = 'functions-config-manifest.json';\nconst SUBRESOURCE_INTEGRITY_MANIFEST = 'subresource-integrity-manifest';\nconst NEXT_FONT_MANIFEST = 'next-font-manifest';\nconst EXPORT_MARKER = 'export-marker.json';\nconst EXPORT_DETAIL = 'export-detail.json';\nconst PRERENDER_MANIFEST = 'prerender-manifest.json';\nconst ROUTES_MANIFEST = 'routes-manifest.json';\nconst IMAGES_MANIFEST = 'images-manifest.json';\nconst SERVER_FILES_MANIFEST = 'required-server-files.json';\nconst DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json';\nconst MIDDLEWARE_MANIFEST = 'middleware-manifest.json';\nconst TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST = '_clientMiddlewareManifest.json';\nconst DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json';\nconst REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json';\nconst SERVER_DIRECTORY = 'server';\nconst CONFIG_FILES = [\n 'next.config.js',\n 'next.config.mjs',\n 'next.config.ts'\n];\nconst BUILD_ID_FILE = 'BUILD_ID';\nconst BLOCKED_PAGES = [\n '/_document',\n '/_app',\n '/_error'\n];\nconst CLIENT_PUBLIC_FILES_PATH = 'public';\nconst CLIENT_STATIC_FILES_PATH = 'static';\nconst STRING_LITERAL_DROP_BUNDLE = '__NEXT_DROP_CLIENT_FILE__';\nconst NEXT_BUILTIN_DOCUMENT = '__NEXT_BUILTIN_DOCUMENT__';\nconst BARREL_OPTIMIZATION_PREFIX = '__barrel_optimize__';\nconst CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest';\nconst SERVER_REFERENCE_MANIFEST = 'server-reference-manifest';\nconst MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest';\nconst MIDDLEWARE_REACT_LOADABLE_MANIFEST = 'middleware-react-loadable-manifest';\nconst INTERCEPTION_ROUTE_REWRITE_MANIFEST = 'interception-route-rewrite-manifest';\nconst DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest';\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN = \"main\";\nconst CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = \"\" + CLIENT_STATIC_FILES_RUNTIME_MAIN + \"-app\";\nconst APP_CLIENT_INTERNALS = 'app-pages-internals';\nconst CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = \"react-refresh\";\nconst CLIENT_STATIC_FILES_RUNTIME_AMP = \"amp\";\nconst CLIENT_STATIC_FILES_RUNTIME_WEBPACK = \"webpack\";\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills';\nconst CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS);\n_c = CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL;\nconst DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime';\nconst EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack';\nconst STATIC_PROPS_ID = '__N_SSG';\nconst SERVER_PROPS_ID = '__N_SSP';\nconst DEFAULT_SERIF_FONT = {\n name: 'Times New Roman',\n xAvgCharWidth: 821,\n azAvgWidth: 854.3953488372093,\n unitsPerEm: 2048\n};\nconst DEFAULT_SANS_SERIF_FONT = {\n name: 'Arial',\n xAvgCharWidth: 904,\n azAvgWidth: 934.5116279069767,\n unitsPerEm: 2048\n};\nconst STATIC_STATUS_PAGES = [\n '/500'\n];\nconst TRACE_OUTPUT_VERSION = 1;\nconst TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000;\nconst RSC_MODULE_TYPES = {\n client: 'client',\n server: 'server'\n};\nconst EDGE_UNSUPPORTED_NODE_APIS = [\n 'clearImmediate',\n 'setImmediate',\n 'BroadcastChannel',\n 'ByteLengthQueuingStrategy',\n 'CompressionStream',\n 'CountQueuingStrategy',\n 'DecompressionStream',\n 'DomException',\n 'MessageChannel',\n 'MessageEvent',\n 'MessagePort',\n 'ReadableByteStreamController',\n 'ReadableStreamBYOBRequest',\n 'ReadableStreamDefaultController',\n 'TransformStreamDefaultController',\n 'WritableStreamDefaultController'\n];\nconst SYSTEM_ENTRYPOINTS = new Set([\n CLIENT_STATIC_FILES_RUNTIME_MAIN,\n CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n CLIENT_STATIC_FILES_RUNTIME_AMP,\n CLIENT_STATIC_FILES_RUNTIME_MAIN_APP\n]);\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=constants.js.map\nvar _c;\n$RefreshReg$(_c, \"CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvY29uc3RhbnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW1DYUEsa0JBQWtCO2VBQWxCQTs7SUFpREFDLG9CQUFvQjtlQUFwQkE7O0lBcERBQyxrQkFBa0I7ZUFBbEJBOztJQUNBQyx3QkFBd0I7ZUFBeEJBOztJQThCQUMsMEJBQTBCO2VBQTFCQTs7SUFMQUMsYUFBYTtlQUFiQTs7SUFEQUMsYUFBYTtlQUFiQTs7SUF2QkFDLGNBQWM7ZUFBZEE7O0lBeUJBQyx3QkFBd0I7ZUFBeEJBOztJQU9BQyx5QkFBeUI7ZUFBekJBOztJQU5BQyx3QkFBd0I7ZUFBeEJBOztJQTRCQUMsK0JBQStCO2VBQS9CQTs7SUFQQUMsZ0NBQWdDO2VBQWhDQTs7SUFDQUMsb0NBQW9DO2VBQXBDQTs7SUFVQUMscUNBQXFDO2VBQXJDQTs7SUFDQUMsNENBQTRDO2VBQTVDQTs7SUFQQUMseUNBQXlDO2VBQXpDQTs7SUFJQUMsbUNBQW1DO2VBQW5DQTs7SUE1RUFDLGdCQUFnQjtlQUFoQkE7O0lBUkFDLGNBQWM7ZUFBZEE7O0lBOENBQyxZQUFZO2VBQVpBOztJQTRDQUMsdUJBQXVCO2VBQXZCQTs7SUFVQUMsdUJBQXVCO2VBQXZCQTs7SUFOQUMsa0JBQWtCO2VBQWxCQTs7SUFuREFDLDhCQUE4QjtlQUE5QkE7O0lBSkFDLHlCQUF5QjtlQUF6QkE7O0lBaUNBQyxvQkFBb0I7ZUFBcEJBOztJQW1CQUMsb0JBQW9CO2VBQXBCQTs7SUE2QkFDLDBCQUEwQjtlQUExQkE7O0lBdEZBQyxhQUFhO2VBQWJBOztJQURBQyxhQUFhO2VBQWJBOztJQUhBQyx5QkFBeUI7ZUFBekJBOztJQU9BQyxlQUFlO2VBQWZBOztJQWdDQUMsbUNBQW1DO2VBQW5DQTs7SUFMQUMseUJBQXlCO2VBQXpCQTs7SUF4QkFDLG1CQUFtQjtlQUFuQkE7O0lBMEJBQyxrQ0FBa0M7ZUFBbENBOztJQXRFSkMsMEJBQTBCO2VBQTFCQSwwQkFBQUEsT0FBMEI7O0lBNER0QkMscUJBQXFCO2VBQXJCQTs7SUF4QkFDLGtCQUFrQjtlQUFsQkE7O0lBUkFDLGNBQWM7ZUFBZEE7O0lBSEFDLHdCQUF3QjtlQUF4QkE7O0lBSEFDLFlBQVk7ZUFBWkE7O0lBS0FDLFVBQVU7ZUFBVkE7O0lBSkFDLHNCQUFzQjtlQUF0QkE7O0lBQ0FDLHVCQUF1QjtlQUF2QkE7O0lBRUFDLFVBQVU7ZUFBVkE7O0lBYUFDLGtCQUFrQjtlQUFsQkE7O0lBU0FDLHVCQUF1QjtlQUF2QkE7O0lBUkFDLGVBQWU7ZUFBZkE7O0lBMkVBQyxnQkFBZ0I7ZUFBaEJBOztJQWxFQUMsZ0JBQWdCO2VBQWhCQTs7SUFQQUMscUJBQXFCO2VBQXJCQTs7SUF1REFDLGVBQWU7ZUFBZkE7O0lBL0JBQyx5QkFBeUI7ZUFBekJBOztJQThCQUMsZUFBZTtlQUFmQTs7SUFjQUMsbUJBQW1CO2VBQW5CQTs7SUFuREFDLDBCQUEwQjtlQUExQkE7O0lBeEJBQyw4QkFBOEI7ZUFBOUJBOztJQTRHQUMsa0JBQWtCO2VBQWxCQTs7SUFoQ0FDLG9CQUFvQjtlQUFwQkE7O0lBbEVBQyxvQ0FBb0M7ZUFBcENBOztJQW9FQUMsZ0NBQWdDO2VBQWhDQTs7SUE3RkFDLDBCQUEwQjtlQUExQkE7O0lBQ0FDLGdDQUFnQztlQUFoQ0E7O0lBUUFDLGFBQWE7ZUFBYkE7Ozs7K0ZBL0IwQjtBQU1oQyxNQUFNOUMsaUJBQWlCO0lBQzVCK0MsUUFBUTtJQUNSQyxRQUFRO0lBQ1JDLFlBQVk7QUFDZDtBQUlPLE1BQU1sRCxtQkFFVDtJQUNGLENBQUNDLGVBQWUrQyxNQUFNLENBQUMsRUFBRTtJQUN6QixDQUFDL0MsZUFBZWdELE1BQU0sQ0FBQyxFQUFFO0lBQ3pCLENBQUNoRCxlQUFlaUQsVUFBVSxDQUFDLEVBQUU7QUFDL0I7QUFFTyxNQUFNTCw2QkFBNkI7QUFDbkMsTUFBTUMsbUNBQW9DLEtBQUVELDZCQUEyQjtBQUN2RSxNQUFNckIsZUFBZTtBQUNyQixNQUFNRSx5QkFBeUI7QUFDL0IsTUFBTUMsMEJBQTBCO0FBQ2hDLE1BQU1KLDJCQUEyQjtBQUNqQyxNQUFNSyxhQUFhO0FBQ25CLE1BQU1ILGFBQWE7QUFDbkIsTUFBTUgsaUJBQWlCO0FBQ3ZCLE1BQU15QixnQkFBZ0I7QUFDdEIsTUFBTS9ELHFCQUFxQjtBQUMzQixNQUFNQywyQkFBMkI7QUFDakMsTUFBTUksaUJBQWlCO0FBQ3ZCLE1BQU1QLHFCQUFxQjtBQUMzQixNQUFNK0IsNEJBQTRCO0FBQ2xDLE1BQU0yQixpQ0FBaUM7QUFDdkMsTUFBTW5CLHFCQUFxQjtBQUMzQixNQUFNVCxnQkFBZ0I7QUFDdEIsTUFBTUQsZ0JBQWdCO0FBQ3RCLE1BQU1rQixxQkFBcUI7QUFDM0IsTUFBTUUsa0JBQWtCO0FBQ3hCLE1BQU1qQixrQkFBa0I7QUFDeEIsTUFBTW9CLHdCQUF3QjtBQUM5QixNQUFNM0IsNEJBQTRCO0FBQ2xDLE1BQU1VLHNCQUFzQjtBQUM1QixNQUFNMEIsdUNBQ1g7QUFDSyxNQUFNckMsaUNBQWlDO0FBQ3ZDLE1BQU13QiwwQkFBMEI7QUFDaEMsTUFBTUcsbUJBQW1CO0FBQ3pCLE1BQU0vQixlQUFlO0lBQzFCO0lBQ0E7SUFDQTtDQUNEO0FBQ00sTUFBTWQsZ0JBQWdCO0FBQ3RCLE1BQU1ELGdCQUFnQjtJQUFDO0lBQWM7SUFBUztDQUFVO0FBQ3hELE1BQU1HLDJCQUEyQjtBQUNqQyxNQUFNRSwyQkFBMkI7QUFDakMsTUFBTStDLDZCQUE2QjtBQUNuQyxNQUFNbkIsd0JBQXdCO0FBQzlCLE1BQU1sQyw2QkFBNkI7QUFHbkMsTUFBTUssNEJBQTRCO0FBRWxDLE1BQU02Qyw0QkFBNEI7QUFFbEMsTUFBTXBCLDRCQUE0QjtBQUVsQyxNQUFNRSxxQ0FDWDtBQUVLLE1BQU1ILHNDQUNYO0FBRUssTUFBTVAsdUJBQXVCO0FBRzdCLE1BQU1kLG1DQUFvQztBQUMxQyxNQUFNQyx1Q0FBd0MsS0FBRUQsbUNBQWlDO0FBRWpGLE1BQU1YLHVCQUF1QjtBQUU3QixNQUFNZSw0Q0FBNkM7QUFFbkQsTUFBTUwsa0NBQW1DO0FBRXpDLE1BQU1NLHNDQUF1QztBQUU3QyxNQUFNSCx3Q0FBd0M7QUFDOUMsTUFBTUMsK0NBQStDc0QsT0FDMUR2RDs7QUFFSyxNQUFNTywwQkFBMEI7QUFDaEMsTUFBTU0sdUJBQXVCO0FBQzdCLE1BQU00QixrQkFBa0I7QUFDeEIsTUFBTUYsa0JBQWtCO0FBQ3hCLE1BQU05QixxQkFBcUI7SUFDaEMrQyxNQUFNO0lBQ05DLGVBQWU7SUFDZkMsWUFBWTtJQUNaQyxZQUFZO0FBQ2Q7QUFDTyxNQUFNbkQsMEJBQTBCO0lBQ3JDZ0QsTUFBTTtJQUNOQyxlQUFlO0lBQ2ZDLFlBQVk7SUFDWkMsWUFBWTtBQUNkO0FBQ08sTUFBTWpCLHNCQUFzQjtJQUFDO0NBQU87QUFDcEMsTUFBTUksdUJBQXVCO0FBRTdCLE1BQU1FLG1DQUFtQztBQUV6QyxNQUFNWixtQkFBbUI7SUFDOUJnQixRQUFRO0lBQ1JDLFFBQVE7QUFDVjtBQU1PLE1BQU12Qyw2QkFBNkI7SUFDeEM7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7Q0FDRDtBQUVNLE1BQU0rQixxQkFBcUIsSUFBSWUsSUFBWTtJQUNoRDlEO0lBQ0FJO0lBQ0FMO0lBQ0FFO0NBQ0QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9zaGFyZWQvbGliL2NvbnN0YW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgZnJvbSAnLi9tb2Rlcm4tYnJvd3NlcnNsaXN0LXRhcmdldCdcblxuZXhwb3J0IHsgTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQgfVxuXG5leHBvcnQgdHlwZSBWYWx1ZU9mPFQ+ID0gUmVxdWlyZWQ8VD5ba2V5b2YgVF1cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX05BTUVTID0ge1xuICBjbGllbnQ6ICdjbGllbnQnLFxuICBzZXJ2ZXI6ICdzZXJ2ZXInLFxuICBlZGdlU2VydmVyOiAnZWRnZS1zZXJ2ZXInLFxufSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBDb21waWxlck5hbWVWYWx1ZXMgPSBWYWx1ZU9mPHR5cGVvZiBDT01QSUxFUl9OQU1FUz5cblxuZXhwb3J0IGNvbnN0IENPTVBJTEVSX0lOREVYRVM6IHtcbiAgW2NvbXBpbGVyS2V5IGluIENvbXBpbGVyTmFtZVZhbHVlc106IG51bWJlclxufSA9IHtcbiAgW0NPTVBJTEVSX05BTUVTLmNsaWVudF06IDAsXG4gIFtDT01QSUxFUl9OQU1FUy5zZXJ2ZXJdOiAxLFxuICBbQ09NUElMRVJfTkFNRVMuZWRnZVNlcnZlcl06IDIsXG59IGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURSA9ICcvX25vdC1mb3VuZCdcbmV4cG9ydCBjb25zdCBVTkRFUlNDT1JFX05PVF9GT1VORF9ST1VURV9FTlRSWSA9IGAke1VOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFfS9wYWdlYFxuZXhwb3J0IGNvbnN0IFBIQVNFX0VYUE9SVCA9ICdwaGFzZS1leHBvcnQnXG5leHBvcnQgY29uc3QgUEhBU0VfUFJPRFVDVElPTl9CVUlMRCA9ICdwaGFzZS1wcm9kdWN0aW9uLWJ1aWxkJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX1BST0RVQ1RJT05fU0VSVkVSID0gJ3BoYXNlLXByb2R1Y3Rpb24tc2VydmVyJ1xuZXhwb3J0IGNvbnN0IFBIQVNFX0RFVkVMT1BNRU5UX1NFUlZFUiA9ICdwaGFzZS1kZXZlbG9wbWVudC1zZXJ2ZXInXG5leHBvcnQgY29uc3QgUEhBU0VfVEVTVCA9ICdwaGFzZS10ZXN0J1xuZXhwb3J0IGNvbnN0IFBIQVNFX0lORk8gPSAncGhhc2UtaW5mbydcbmV4cG9ydCBjb25zdCBQQUdFU19NQU5JRkVTVCA9ICdwYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFdFQlBBQ0tfU1RBVFMgPSAnd2VicGFjay1zdGF0cy5qc29uJ1xuZXhwb3J0IGNvbnN0IEFQUF9QQVRIU19NQU5JRkVTVCA9ICdhcHAtcGF0aHMtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfUEFUSF9ST1VURVNfTUFOSUZFU1QgPSAnYXBwLXBhdGgtcm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgQlVJTERfTUFOSUZFU1QgPSAnYnVpbGQtbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBBUFBfQlVJTERfTUFOSUZFU1QgPSAnYXBwLWJ1aWxkLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgRlVOQ1RJT05TX0NPTkZJR19NQU5JRkVTVCA9ICdmdW5jdGlvbnMtY29uZmlnLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUID0gJ3N1YnJlc291cmNlLWludGVncml0eS1tYW5pZmVzdCdcbmV4cG9ydCBjb25zdCBORVhUX0ZPTlRfTUFOSUZFU1QgPSAnbmV4dC1mb250LW1hbmlmZXN0J1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9NQVJLRVIgPSAnZXhwb3J0LW1hcmtlci5qc29uJ1xuZXhwb3J0IGNvbnN0IEVYUE9SVF9ERVRBSUwgPSAnZXhwb3J0LWRldGFpbC5qc29uJ1xuZXhwb3J0IGNvbnN0IFBSRVJFTkRFUl9NQU5JRkVTVCA9ICdwcmVyZW5kZXItbWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBST1VURVNfTUFOSUZFU1QgPSAncm91dGVzLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgSU1BR0VTX01BTklGRVNUID0gJ2ltYWdlcy1tYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFNFUlZFUl9GSUxFU19NQU5JRkVTVCA9ICdyZXF1aXJlZC1zZXJ2ZXItZmlsZXMuanNvbidcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX1BBR0VTX01BTklGRVNUID0gJ19kZXZQYWdlc01hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9NQU5JRkVTVCA9ICdtaWRkbGV3YXJlLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgVFVSQk9QQUNLX0NMSUVOVF9NSURETEVXQVJFX01BTklGRVNUID1cbiAgJ19jbGllbnRNaWRkbGV3YXJlTWFuaWZlc3QuanNvbidcbmV4cG9ydCBjb25zdCBERVZfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QgPSAnX2Rldk1pZGRsZXdhcmVNYW5pZmVzdC5qc29uJ1xuZXhwb3J0IGNvbnN0IFJFQUNUX0xPQURBQkxFX01BTklGRVNUID0gJ3JlYWN0LWxvYWRhYmxlLW1hbmlmZXN0Lmpzb24nXG5leHBvcnQgY29uc3QgU0VSVkVSX0RJUkVDVE9SWSA9ICdzZXJ2ZXInXG5leHBvcnQgY29uc3QgQ09ORklHX0ZJTEVTID0gW1xuICAnbmV4dC5jb25maWcuanMnLFxuICAnbmV4dC5jb25maWcubWpzJyxcbiAgJ25leHQuY29uZmlnLnRzJyxcbl1cbmV4cG9ydCBjb25zdCBCVUlMRF9JRF9GSUxFID0gJ0JVSUxEX0lEJ1xuZXhwb3J0IGNvbnN0IEJMT0NLRURfUEFHRVMgPSBbJy9fZG9jdW1lbnQnLCAnL19hcHAnLCAnL19lcnJvciddXG5leHBvcnQgY29uc3QgQ0xJRU5UX1BVQkxJQ19GSUxFU19QQVRIID0gJ3B1YmxpYydcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1BBVEggPSAnc3RhdGljJ1xuZXhwb3J0IGNvbnN0IFNUUklOR19MSVRFUkFMX0RST1BfQlVORExFID0gJ19fTkVYVF9EUk9QX0NMSUVOVF9GSUxFX18nXG5leHBvcnQgY29uc3QgTkVYVF9CVUlMVElOX0RPQ1VNRU5UID0gJ19fTkVYVF9CVUlMVElOX0RPQ1VNRU5UX18nXG5leHBvcnQgY29uc3QgQkFSUkVMX09QVElNSVpBVElPTl9QUkVGSVggPSAnX19iYXJyZWxfb3B0aW1pemVfXydcblxuLy8gc2VydmVyL1tlbnRyeV0vcGFnZV9jbGllbnQtcmVmZXJlbmNlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1JFRkVSRU5DRV9NQU5JRkVTVCA9ICdjbGllbnQtcmVmZXJlbmNlLW1hbmlmZXN0J1xuLy8gc2VydmVyL3NlcnZlci1yZWZlcmVuY2UtbWFuaWZlc3RcbmV4cG9ydCBjb25zdCBTRVJWRVJfUkVGRVJFTkNFX01BTklGRVNUID0gJ3NlcnZlci1yZWZlcmVuY2UtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvbWlkZGxld2FyZS1idWlsZC1tYW5pZmVzdC5qc1xuZXhwb3J0IGNvbnN0IE1JRERMRVdBUkVfQlVJTERfTUFOSUZFU1QgPSAnbWlkZGxld2FyZS1idWlsZC1tYW5pZmVzdCdcbi8vIHNlcnZlci9taWRkbGV3YXJlLXJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgTUlERExFV0FSRV9SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCA9XG4gICdtaWRkbGV3YXJlLXJlYWN0LWxvYWRhYmxlLW1hbmlmZXN0J1xuLy8gc2VydmVyL2ludGVyY2VwdGlvbi1yb3V0ZS1yZXdyaXRlLW1hbmlmZXN0LmpzXG5leHBvcnQgY29uc3QgSU5URVJDRVBUSU9OX1JPVVRFX1JFV1JJVEVfTUFOSUZFU1QgPVxuICAnaW50ZXJjZXB0aW9uLXJvdXRlLXJld3JpdGUtbWFuaWZlc3QnXG4vLyBzZXJ2ZXIvZHluYW1pYy1jc3MtbWFuaWZlc3QuanNcbmV4cG9ydCBjb25zdCBEWU5BTUlDX0NTU19NQU5JRkVTVCA9ICdkeW5hbWljLWNzcy1tYW5pZmVzdCdcblxuLy8gc3RhdGljL3J1bnRpbWUvbWFpbi5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOID0gYG1haW5gXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQID0gYCR7Q0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU59LWFwcGBcbi8vIG5leHQgaW50ZXJuYWwgY2xpZW50IGNvbXBvbmVudHMgY2h1bmsgZm9yIGxheW91dHNcbmV4cG9ydCBjb25zdCBBUFBfQ0xJRU5UX0lOVEVSTkFMUyA9ICdhcHAtcGFnZXMtaW50ZXJuYWxzJ1xuLy8gc3RhdGljL3J1bnRpbWUvcmVhY3QtcmVmcmVzaC5qc1xuZXhwb3J0IGNvbnN0IENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9SRUFDVF9SRUZSRVNIID0gYHJlYWN0LXJlZnJlc2hgXG4vLyBzdGF0aWMvcnVudGltZS9hbXAuanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QID0gYGFtcGBcbi8vIHN0YXRpYy9ydW50aW1lL3dlYnBhY2suanNcbmV4cG9ydCBjb25zdCBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfV0VCUEFDSyA9IGB3ZWJwYWNrYFxuLy8gc3RhdGljL3J1bnRpbWUvcG9seWZpbGxzLmpzXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMUyA9ICdwb2x5ZmlsbHMnXG5leHBvcnQgY29uc3QgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU19TWU1CT0wgPSBTeW1ib2woXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9QT0xZRklMTFNcbilcbmV4cG9ydCBjb25zdCBERUZBVUxUX1JVTlRJTUVfV0VCUEFDSyA9ICd3ZWJwYWNrLXJ1bnRpbWUnXG5leHBvcnQgY29uc3QgRURHRV9SVU5USU1FX1dFQlBBQ0sgPSAnZWRnZS1ydW50aW1lLXdlYnBhY2snXG5leHBvcnQgY29uc3QgU1RBVElDX1BST1BTX0lEID0gJ19fTl9TU0cnXG5leHBvcnQgY29uc3QgU0VSVkVSX1BST1BTX0lEID0gJ19fTl9TU1AnXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRVJJRl9GT05UID0ge1xuICBuYW1lOiAnVGltZXMgTmV3IFJvbWFuJyxcbiAgeEF2Z0NoYXJXaWR0aDogODIxLFxuICBhekF2Z1dpZHRoOiA4NTQuMzk1MzQ4ODM3MjA5MyxcbiAgdW5pdHNQZXJFbTogMjA0OCxcbn1cbmV4cG9ydCBjb25zdCBERUZBVUxUX1NBTlNfU0VSSUZfRk9OVCA9IHtcbiAgbmFtZTogJ0FyaWFsJyxcbiAgeEF2Z0NoYXJXaWR0aDogOTA0LFxuICBhekF2Z1dpZHRoOiA5MzQuNTExNjI3OTA2OTc2NyxcbiAgdW5pdHNQZXJFbTogMjA0OCxcbn1cbmV4cG9ydCBjb25zdCBTVEFUSUNfU1RBVFVTX1BBR0VTID0gWycvNTAwJ11cbmV4cG9ydCBjb25zdCBUUkFDRV9PVVRQVVRfVkVSU0lPTiA9IDFcbi8vIGluIGBNQmBcbmV4cG9ydCBjb25zdCBUVVJCT19UUkFDRV9ERUZBVUxUX01FTU9SWV9MSU1JVCA9IDYwMDBcblxuZXhwb3J0IGNvbnN0IFJTQ19NT0RVTEVfVFlQRVMgPSB7XG4gIGNsaWVudDogJ2NsaWVudCcsXG4gIHNlcnZlcjogJ3NlcnZlcicsXG59IGFzIGNvbnN0XG5cbi8vIGNvbXBhcmluZ1xuLy8gaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9lZGdlLXJ1bnRpbWVcbi8vIHdpdGhcbi8vIGh0dHBzOi8vbm9kZWpzLm9yZy9kb2NzL2xhdGVzdC9hcGkvZ2xvYmFscy5odG1sXG5leHBvcnQgY29uc3QgRURHRV9VTlNVUFBPUlRFRF9OT0RFX0FQSVMgPSBbXG4gICdjbGVhckltbWVkaWF0ZScsXG4gICdzZXRJbW1lZGlhdGUnLFxuICAnQnJvYWRjYXN0Q2hhbm5lbCcsXG4gICdCeXRlTGVuZ3RoUXVldWluZ1N0cmF0ZWd5JyxcbiAgJ0NvbXByZXNzaW9uU3RyZWFtJyxcbiAgJ0NvdW50UXVldWluZ1N0cmF0ZWd5JyxcbiAgJ0RlY29tcHJlc3Npb25TdHJlYW0nLFxuICAnRG9tRXhjZXB0aW9uJyxcbiAgJ01lc3NhZ2VDaGFubmVsJyxcbiAgJ01lc3NhZ2VFdmVudCcsXG4gICdNZXNzYWdlUG9ydCcsXG4gICdSZWFkYWJsZUJ5dGVTdHJlYW1Db250cm9sbGVyJyxcbiAgJ1JlYWRhYmxlU3RyZWFtQllPQlJlcXVlc3QnLFxuICAnUmVhZGFibGVTdHJlYW1EZWZhdWx0Q29udHJvbGxlcicsXG4gICdUcmFuc2Zvcm1TdHJlYW1EZWZhdWx0Q29udHJvbGxlcicsXG4gICdXcml0YWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyJyxcbl1cblxuZXhwb3J0IGNvbnN0IFNZU1RFTV9FTlRSWVBPSU5UUyA9IG5ldyBTZXQ8c3RyaW5nPihbXG4gIENMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9NQUlOLFxuICBDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCxcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX0FNUCxcbiAgQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU5fQVBQLFxuXSlcbiJdLCJuYW1lcyI6WyJBUFBfQlVJTERfTUFOSUZFU1QiLCJBUFBfQ0xJRU5UX0lOVEVSTkFMUyIsIkFQUF9QQVRIU19NQU5JRkVTVCIsIkFQUF9QQVRIX1JPVVRFU19NQU5JRkVTVCIsIkJBUlJFTF9PUFRJTUlaQVRJT05fUFJFRklYIiwiQkxPQ0tFRF9QQUdFUyIsIkJVSUxEX0lEX0ZJTEUiLCJCVUlMRF9NQU5JRkVTVCIsIkNMSUVOVF9QVUJMSUNfRklMRVNfUEFUSCIsIkNMSUVOVF9SRUZFUkVOQ0VfTUFOSUZFU1QiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1BBVEgiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfQU1QIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX01BSU4iLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfTUFJTl9BUFAiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUE9MWUZJTExTIiwiQ0xJRU5UX1NUQVRJQ19GSUxFU19SVU5USU1FX1BPTFlGSUxMU19TWU1CT0wiLCJDTElFTlRfU1RBVElDX0ZJTEVTX1JVTlRJTUVfUkVBQ1RfUkVGUkVTSCIsIkNMSUVOVF9TVEFUSUNfRklMRVNfUlVOVElNRV9XRUJQQUNLIiwiQ09NUElMRVJfSU5ERVhFUyIsIkNPTVBJTEVSX05BTUVTIiwiQ09ORklHX0ZJTEVTIiwiREVGQVVMVF9SVU5USU1FX1dFQlBBQ0siLCJERUZBVUxUX1NBTlNfU0VSSUZfRk9OVCIsIkRFRkFVTFRfU0VSSUZfRk9OVCIsIkRFVl9DTElFTlRfTUlERExFV0FSRV9NQU5JRkVTVCIsIkRFVl9DTElFTlRfUEFHRVNfTUFOSUZFU1QiLCJEWU5BTUlDX0NTU19NQU5JRkVTVCIsIkVER0VfUlVOVElNRV9XRUJQQUNLIiwiRURHRV9VTlNVUFBPUlRFRF9OT0RFX0FQSVMiLCJFWFBPUlRfREVUQUlMIiwiRVhQT1JUX01BUktFUiIsIkZVTkNUSU9OU19DT05GSUdfTUFOSUZFU1QiLCJJTUFHRVNfTUFOSUZFU1QiLCJJTlRFUkNFUFRJT05fUk9VVEVfUkVXUklURV9NQU5JRkVTVCIsIk1JRERMRVdBUkVfQlVJTERfTUFOSUZFU1QiLCJNSURETEVXQVJFX01BTklGRVNUIiwiTUlERExFV0FSRV9SRUFDVF9MT0FEQUJMRV9NQU5JRkVTVCIsIk1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUIiwiTkVYVF9CVUlMVElOX0RPQ1VNRU5UIiwiTkVYVF9GT05UX01BTklGRVNUIiwiUEFHRVNfTUFOSUZFU1QiLCJQSEFTRV9ERVZFTE9QTUVOVF9TRVJWRVIiLCJQSEFTRV9FWFBPUlQiLCJQSEFTRV9JTkZPIiwiUEhBU0VfUFJPRFVDVElPTl9CVUlMRCIsIlBIQVNFX1BST0RVQ1RJT05fU0VSVkVSIiwiUEhBU0VfVEVTVCIsIlBSRVJFTkRFUl9NQU5JRkVTVCIsIlJFQUNUX0xPQURBQkxFX01BTklGRVNUIiwiUk9VVEVTX01BTklGRVNUIiwiUlNDX01PRFVMRV9UWVBFUyIsIlNFUlZFUl9ESVJFQ1RPUlkiLCJTRVJWRVJfRklMRVNfTUFOSUZFU1QiLCJTRVJWRVJfUFJPUFNfSUQiLCJTRVJWRVJfUkVGRVJFTkNFX01BTklGRVNUIiwiU1RBVElDX1BST1BTX0lEIiwiU1RBVElDX1NUQVRVU19QQUdFUyIsIlNUUklOR19MSVRFUkFMX0RST1BfQlVORExFIiwiU1VCUkVTT1VSQ0VfSU5URUdSSVRZX01BTklGRVNUIiwiU1lTVEVNX0VOVFJZUE9JTlRTIiwiVFJBQ0VfT1VUUFVUX1ZFUlNJT04iLCJUVVJCT1BBQ0tfQ0xJRU5UX01JRERMRVdBUkVfTUFOSUZFU1QiLCJUVVJCT19UUkFDRV9ERUZBVUxUX01FTU9SWV9MSU1JVCIsIlVOREVSU0NPUkVfTk9UX0ZPVU5EX1JPVVRFIiwiVU5ERVJTQ09SRV9OT1RfRk9VTkRfUk9VVEVfRU5UUlkiLCJXRUJQQUNLX1NUQVRTIiwiY2xpZW50Iiwic2VydmVyIiwiZWRnZVNlcnZlciIsIlN5bWJvbCIsIm5hbWUiLCJ4QXZnQ2hhcldpZHRoIiwiYXpBdmdXaWR0aCIsInVuaXRzUGVyRW0iLCJTZXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/constants.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/encode-uri-path.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/encode-uri-path.js ***! + \**************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"encodeURIPath\", ({\n enumerable: true,\n get: function() {\n return encodeURIPath;\n }\n}));\nfunction encodeURIPath(file) {\n return file.split('/').map((p)=>encodeURIComponent(p)).join('/');\n} //# sourceMappingURL=encode-uri-path.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZW5jb2RlLXVyaS1wYXRoLmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBQWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxjQUFjQyxJQUFZO0lBQ3hDLE9BQU9BLEtBQ0pDLEtBQUssQ0FBQyxLQUNOQyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUMsbUJBQW1CRCxJQUM5QkUsSUFBSSxDQUFDO0FBQ1YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9zaGFyZWQvbGliL2VuY29kZS11cmktcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZW5jb2RlVVJJUGF0aChmaWxlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGZpbGVcbiAgICAuc3BsaXQoJy8nKVxuICAgIC5tYXAoKHApID0+IGVuY29kZVVSSUNvbXBvbmVudChwKSlcbiAgICAuam9pbignLycpXG59XG4iXSwibmFtZXMiOlsiZW5jb2RlVVJJUGF0aCIsImZpbGUiLCJzcGxpdCIsIm1hcCIsInAiLCJlbmNvZGVVUklDb21wb25lbnQiLCJqb2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/encode-uri-path.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/error-source.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/error-source.js ***! + \***********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n decorateServerError: function() {\n return decorateServerError;\n },\n getErrorSource: function() {\n return getErrorSource;\n }\n});\nconst symbolError = Symbol.for('NextjsError');\nfunction getErrorSource(error) {\n return error[symbolError] || null;\n}\nfunction decorateServerError(error, type) {\n Object.defineProperty(error, symbolError, {\n writable: false,\n enumerable: false,\n configurable: false,\n value: type\n });\n} //# sourceMappingURL=error-source.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXJyb3Itc291cmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQVFnQkEsbUJBQW1CO2VBQW5CQTs7SUFOQUMsY0FBYztlQUFkQTs7O0FBRmhCLE1BQU1DLGNBQWNDLE9BQU9DLEdBQUcsQ0FBQztBQUV4QixTQUFTSCxlQUFlSSxLQUFZO0lBQ3pDLE9BQVFBLEtBQWEsQ0FBQ0gsWUFBWSxJQUFJO0FBQ3hDO0FBSU8sU0FBU0Ysb0JBQW9CSyxLQUFZLEVBQUVDLElBQXFCO0lBQ3JFQyxPQUFPQyxjQUFjLENBQUNILE9BQU9ILGFBQWE7UUFDeENPLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxjQUFjO1FBQ2RDLE9BQU9OO0lBQ1Q7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvZXJyb3Itc291cmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHN5bWJvbEVycm9yID0gU3ltYm9sLmZvcignTmV4dGpzRXJyb3InKVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JTb3VyY2UoZXJyb3I6IEVycm9yKTogJ3NlcnZlcicgfCAnZWRnZS1zZXJ2ZXInIHwgbnVsbCB7XG4gIHJldHVybiAoZXJyb3IgYXMgYW55KVtzeW1ib2xFcnJvcl0gfHwgbnVsbFxufVxuXG5leHBvcnQgdHlwZSBFcnJvclNvdXJjZVR5cGUgPSAnZWRnZS1zZXJ2ZXInIHwgJ3NlcnZlcidcblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29yYXRlU2VydmVyRXJyb3IoZXJyb3I6IEVycm9yLCB0eXBlOiBFcnJvclNvdXJjZVR5cGUpIHtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGVycm9yLCBzeW1ib2xFcnJvciwge1xuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiB0eXBlLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImRlY29yYXRlU2VydmVyRXJyb3IiLCJnZXRFcnJvclNvdXJjZSIsInN5bWJvbEVycm9yIiwiU3ltYm9sIiwiZm9yIiwiZXJyb3IiLCJ0eXBlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJ3cml0YWJsZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ2YWx1ZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/error-source.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/escape-regexp.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/escape-regexp.js ***! + \************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// regexp is based on https://github.com/sindresorhus/escape-string-regexp\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"escapeStringRegexp\", ({\n enumerable: true,\n get: function() {\n return escapeStringRegexp;\n }\n}));\nconst reHasRegExp = /[|\\\\{}()[\\]^$+*?.-]/;\nconst reReplaceRegExp = /[|\\\\{}()[\\]^$+*?.-]/g;\nfunction escapeStringRegexp(str) {\n // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23\n if (reHasRegExp.test(str)) {\n return str.replace(reReplaceRegExp, '\\\\$&');\n }\n return str;\n} //# sourceMappingURL=escape-regexp.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZXNjYXBlLXJlZ2V4cC5qcyIsIm1hcHBpbmdzIjoiQUFBQSwwRUFBMEU7Ozs7O3NEQUkxREE7OztlQUFBQTs7O0FBSGhCLE1BQU1DLGNBQWM7QUFDcEIsTUFBTUMsa0JBQWtCO0FBRWpCLFNBQVNGLG1CQUFtQkcsR0FBVztJQUM1QywrR0FBK0c7SUFDL0csSUFBSUYsWUFBWUcsSUFBSSxDQUFDRCxNQUFNO1FBQ3pCLE9BQU9BLElBQUlFLE9BQU8sQ0FBQ0gsaUJBQWlCO0lBQ3RDO0lBQ0EsT0FBT0M7QUFDVCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvZXNjYXBlLXJlZ2V4cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWdleHAgaXMgYmFzZWQgb24gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9lc2NhcGUtc3RyaW5nLXJlZ2V4cFxuY29uc3QgcmVIYXNSZWdFeHAgPSAvW3xcXFxce30oKVtcXF1eJCsqPy4tXS9cbmNvbnN0IHJlUmVwbGFjZVJlZ0V4cCA9IC9bfFxcXFx7fSgpW1xcXV4kKyo/Li1dL2dcblxuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVN0cmluZ1JlZ2V4cChzdHI6IHN0cmluZykge1xuICAvLyBzZWUgYWxzbzogaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi8yZGEwMjRjM2I0Zjk5NDdhNDg1MTc2MzlkZTc1NjA0NTdjZDRlYzZjL2VzY2FwZVJlZ0V4cC5qcyNMMjNcbiAgaWYgKHJlSGFzUmVnRXhwLnRlc3Qoc3RyKSkge1xuICAgIHJldHVybiBzdHIucmVwbGFjZShyZVJlcGxhY2VSZWdFeHAsICdcXFxcJCYnKVxuICB9XG4gIHJldHVybiBzdHJcbn1cbiJdLCJuYW1lcyI6WyJlc2NhcGVTdHJpbmdSZWdleHAiLCJyZUhhc1JlZ0V4cCIsInJlUmVwbGFjZVJlZ0V4cCIsInN0ciIsInRlc3QiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/escape-regexp.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js ***! + \**********************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HeadManagerContext\", ({\n enumerable: true,\n get: function() {\n return HeadManagerContext;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst HeadManagerContext = _react.default.createContext({});\nif (true) {\n HeadManagerContext.displayName = 'HeadManagerContext';\n} //# sourceMappingURL=head-manager-context.shared-runtime.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6Ijs7OztzREFFYUE7OztlQUFBQTs7Ozs0RUFGSztBQUVYLE1BQU1BLHFCQVVSQyxPQUFBQSxPQUFLLENBQUNDLGFBQWEsQ0FBQyxDQUFDO0FBRTFCLElBQUlDLElBQW9CLEVBQW1CO0lBQ3pDSCxtQkFBbUJNLFdBQVcsR0FBRztBQUNuQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvaGVhZC1tYW5hZ2VyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgY29uc3QgSGVhZE1hbmFnZXJDb250ZXh0OiBSZWFjdC5Db250ZXh0PHtcbiAgdXBkYXRlSGVhZD86IChzdGF0ZTogYW55KSA9PiB2b2lkXG4gIG1vdW50ZWRJbnN0YW5jZXM/OiBhbnlcbiAgdXBkYXRlU2NyaXB0cz86IChzdGF0ZTogYW55KSA9PiB2b2lkXG4gIHNjcmlwdHM/OiBhbnlcbiAgZ2V0SXNTc3I/OiAoKSA9PiBib29sZWFuXG5cbiAgLy8gVXNlZCBpbiBhcHAgZGlyZWN0b3J5LCB0byByZW5kZXIgc2NyaXB0IHRhZ3MgYXMgc2VydmVyIGNvbXBvbmVudHMuXG4gIGFwcERpcj86IGJvb2xlYW5cbiAgbm9uY2U/OiBzdHJpbmdcbn0+ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7fSlcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgSGVhZE1hbmFnZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gJ0hlYWRNYW5hZ2VyQ29udGV4dCdcbn1cbiJdLCJuYW1lcyI6WyJIZWFkTWFuYWdlckNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/head.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/head.js ***! + \***************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n defaultHead: function() {\n return defaultHead;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _sideeffect = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./side-effect */ \"./node_modules/next/dist/shared/lib/side-effect.js\"));\nconst _ampcontextsharedruntime = __webpack_require__(/*! ./amp-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/amp-context.shared-runtime.js\");\nconst _headmanagercontextsharedruntime = __webpack_require__(/*! ./head-manager-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js\");\nconst _ampmode = __webpack_require__(/*! ./amp-mode */ \"./node_modules/next/dist/shared/lib/amp-mode.js\");\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction defaultHead(inAmpMode) {\n if (inAmpMode === void 0) inAmpMode = false;\n const head = [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n charSet: \"utf-8\"\n }, \"charset\")\n ];\n if (!inAmpMode) {\n head.push(/*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"viewport\",\n content: \"width=device-width\"\n }, \"viewport\"));\n }\n return head;\n}\nfunction onlyReactElement(list, child) {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list;\n }\n // Adds support for React.Fragment\n if (child.type === _react.default.Fragment) {\n return list.concat(_react.default.Children.toArray(child.props.children).reduce((fragmentList, fragmentChild)=>{\n if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') {\n return fragmentList;\n }\n return fragmentList.concat(fragmentChild);\n }, []));\n }\n return list.concat(child);\n}\nconst METATYPES = [\n 'name',\n 'httpEquiv',\n 'charSet',\n 'itemProp'\n];\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/ function unique() {\n const keys = new Set();\n const tags = new Set();\n const metaTypes = new Set();\n const metaCategories = {};\n return (h)=>{\n let isUnique = true;\n let hasKey = false;\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true;\n const key = h.key.slice(h.key.indexOf('$') + 1);\n if (keys.has(key)) {\n isUnique = false;\n } else {\n keys.add(key);\n }\n }\n // eslint-disable-next-line default-case\n switch(h.type){\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false;\n } else {\n tags.add(h.type);\n }\n break;\n case 'meta':\n for(let i = 0, len = METATYPES.length; i < len; i++){\n const metatype = METATYPES[i];\n if (!h.props.hasOwnProperty(metatype)) continue;\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false;\n } else {\n metaTypes.add(metatype);\n }\n } else {\n const category = h.props[metatype];\n const categories = metaCategories[metatype] || new Set();\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false;\n } else {\n categories.add(category);\n metaCategories[metatype] = categories;\n }\n }\n }\n break;\n }\n return isUnique;\n };\n}\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */ function reduceComponents(headChildrenElements, props) {\n const { inAmpMode } = props;\n return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i)=>{\n const key = c.key || i;\n if (false) {}\n if (true) {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src'] ? '<script> tag with src=\"' + c.props['src'] + '\"' : \"inline <script>\";\n (0, _warnonce.warnOnce)(\"Do not add <script> tags using next/head (see \" + srcMessage + \"). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component\");\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n (0, _warnonce.warnOnce)('Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"' + c.props['href'] + '\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');\n }\n }\n return /*#__PURE__*/ _react.default.cloneElement(c, {\n key\n });\n });\n}\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */ function Head(param) {\n let { children } = param;\n const ampState = (0, _react.useContext)(_ampcontextsharedruntime.AmpStateContext);\n const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, {\n reduceComponentsToState: reduceComponents,\n headManager: headManager,\n inAmpMode: (0, _ampmode.isInAmpMode)(ampState),\n children: children\n });\n}\n_c = Head;\nconst _default = Head;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=head.js.map\nvar _c;\n$RefreshReg$(_c, \"Head\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaGVhZC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUF1TUEsT0FBbUI7ZUFBbkI7O0lBMUxnQkEsV0FBVztlQUFYQTs7Ozs7OzZFQVg0QjtpRkFDekI7cURBQ2E7NkRBQ0c7cUNBQ1A7c0NBQ0g7QUFNbEIsU0FBU0EsWUFBWUMsU0FBaUI7SUFBakJBLElBQUFBLGNBQUFBLEtBQUFBLEdBQUFBLFlBQVk7SUFDdEMsTUFBTUMsT0FBTztzQkFBQyxxQkFBQ0MsUUFBQUE7WUFBS0MsU0FBUTtXQUFZO0tBQWE7SUFDckQsSUFBSSxDQUFDSCxXQUFXO1FBQ2RDLEtBQUtHLElBQUksZUFDUCxxQkFBQ0YsUUFBQUE7WUFBS0csTUFBSztZQUFXQyxTQUFRO1dBQXlCO0lBRTNEO0lBQ0EsT0FBT0w7QUFDVDtBQUVBLFNBQVNNLGlCQUNQQyxJQUFvQyxFQUNwQ0MsS0FBMkM7SUFFM0MsOEZBQThGO0lBQzlGLElBQUksT0FBT0EsVUFBVSxZQUFZLE9BQU9BLFVBQVUsVUFBVTtRQUMxRCxPQUFPRDtJQUNUO0lBQ0Esa0NBQWtDO0lBQ2xDLElBQUlDLE1BQU1DLElBQUksS0FBS0MsT0FBQUEsT0FBSyxDQUFDQyxRQUFRLEVBQUU7UUFDakMsT0FBT0osS0FBS0ssTUFBTSxDQUNoQixPQUNBRixPQUFLLENBQUNHLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDTixNQUFNTyxLQUFLLENBQUNDLFFBQVEsRUFBRUMsTUFBTSxDQUNqRCxDQUVFQyxjQUNBQztZQUVBLElBQ0UsT0FBT0Esa0JBQWtCLFlBQ3pCLE9BQU9BLGtCQUFrQixVQUN6QjtnQkFDQSxPQUFPRDtZQUNUO1lBQ0EsT0FBT0EsYUFBYU4sTUFBTSxDQUFDTztRQUM3QixHQUNBLEVBQUU7SUFHUjtJQUNBLE9BQU9aLEtBQUtLLE1BQU0sQ0FBQ0o7QUFDckI7QUFFQSxNQUFNWSxZQUFZO0lBQUM7SUFBUTtJQUFhO0lBQVc7Q0FBVztBQUU5RDs7OztBQUlBLEdBQ0EsU0FBU0M7SUFDUCxNQUFNQyxPQUFPLElBQUlDO0lBQ2pCLE1BQU1DLE9BQU8sSUFBSUQ7SUFDakIsTUFBTUUsWUFBWSxJQUFJRjtJQUN0QixNQUFNRyxpQkFBc0QsQ0FBQztJQUU3RCxPQUFPLENBQUNDO1FBQ04sSUFBSUMsV0FBVztRQUNmLElBQUlDLFNBQVM7UUFFYixJQUFJRixFQUFFRyxHQUFHLElBQUksT0FBT0gsRUFBRUcsR0FBRyxLQUFLLFlBQVlILEVBQUVHLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLE9BQU8sR0FBRztZQUNoRUYsU0FBUztZQUNULE1BQU1DLE1BQU1ILEVBQUVHLEdBQUcsQ0FBQ0UsS0FBSyxDQUFDTCxFQUFFRyxHQUFHLENBQUNDLE9BQU8sQ0FBQyxPQUFPO1lBQzdDLElBQUlULEtBQUtXLEdBQUcsQ0FBQ0gsTUFBTTtnQkFDakJGLFdBQVc7WUFDYixPQUFPO2dCQUNMTixLQUFLWSxHQUFHLENBQUNKO1lBQ1g7UUFDRjtRQUVBLHdDQUF3QztRQUN4QyxPQUFRSCxFQUFFbEIsSUFBSTtZQUNaLEtBQUs7WUFDTCxLQUFLO2dCQUNILElBQUllLEtBQUtTLEdBQUcsQ0FBQ04sRUFBRWxCLElBQUksR0FBRztvQkFDcEJtQixXQUFXO2dCQUNiLE9BQU87b0JBQ0xKLEtBQUtVLEdBQUcsQ0FBQ1AsRUFBRWxCLElBQUk7Z0JBQ2pCO2dCQUNBO1lBQ0YsS0FBSztnQkFDSCxJQUFLLElBQUkwQixJQUFJLEdBQUdDLE1BQU1oQixVQUFVaUIsTUFBTSxFQUFFRixJQUFJQyxLQUFLRCxJQUFLO29CQUNwRCxNQUFNRyxXQUFXbEIsU0FBUyxDQUFDZSxFQUFFO29CQUM3QixJQUFJLENBQUNSLEVBQUVaLEtBQUssQ0FBQ3dCLGNBQWMsQ0FBQ0QsV0FBVztvQkFFdkMsSUFBSUEsYUFBYSxXQUFXO3dCQUMxQixJQUFJYixVQUFVUSxHQUFHLENBQUNLLFdBQVc7NEJBQzNCVixXQUFXO3dCQUNiLE9BQU87NEJBQ0xILFVBQVVTLEdBQUcsQ0FBQ0k7d0JBQ2hCO29CQUNGLE9BQU87d0JBQ0wsTUFBTUUsV0FBV2IsRUFBRVosS0FBSyxDQUFDdUIsU0FBUzt3QkFDbEMsTUFBTUcsYUFBYWYsY0FBYyxDQUFDWSxTQUFTLElBQUksSUFBSWY7d0JBQ25ELElBQUtlLENBQUFBLGFBQWEsVUFBVSxDQUFDVCxNQUFBQSxDQUFLLElBQU1ZLFdBQVdSLEdBQUcsQ0FBQ08sV0FBVzs0QkFDaEVaLFdBQVc7d0JBQ2IsT0FBTzs0QkFDTGEsV0FBV1AsR0FBRyxDQUFDTTs0QkFDZmQsY0FBYyxDQUFDWSxTQUFTLEdBQUdHO3dCQUM3QjtvQkFDRjtnQkFDRjtnQkFDQTtRQUNKO1FBRUEsT0FBT2I7SUFDVDtBQUNGO0FBRUE7OztDQUdDLEdBQ0QsU0FBU2MsaUJBQ1BDLG9CQUFvRCxFQUNwRDVCLEtBQVE7SUFFUixNQUFNLEVBQUVoQixTQUFTLEVBQUUsR0FBR2dCO0lBQ3RCLE9BQU80QixxQkFDSjFCLE1BQU0sQ0FBQ1gsa0JBQWtCLEVBQUUsRUFDM0JzQyxPQUFPLEdBQ1BoQyxNQUFNLENBQUNkLFlBQVlDLFdBQVc2QyxPQUFPLElBQ3JDQyxNQUFNLENBQUN4QixVQUNQdUIsT0FBTyxHQUNQRSxHQUFHLENBQUMsQ0FBQ0MsR0FBNEJaO1FBQ2hDLE1BQU1MLE1BQU1pQixFQUFFakIsR0FBRyxJQUFJSztRQUNyQixJQUNFYSxLQUVVakQsRUFDVixFQWtCRDtRQUNELElBQUlpRCxJQUFvQixFQUFvQjtZQUMxQyx5REFBeUQ7WUFDekQsSUFBSUQsRUFBRXRDLElBQUksS0FBSyxZQUFZc0MsRUFBRWhDLEtBQUssQ0FBQyxPQUFPLEtBQUssdUJBQXVCO2dCQUNwRSxNQUFNMkMsYUFBYVgsRUFBRWhDLEtBQUssQ0FBQyxNQUFNLEdBQzVCLDRCQUF5QmdDLEVBQUVoQyxLQUFLLENBQUMsTUFBTSxHQUFDLE1BQ3hDO2dCQUNMNEMsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyxtREFBZ0RELGFBQVc7WUFFaEUsT0FBTyxJQUFJWCxFQUFFdEMsSUFBSSxLQUFLLFVBQVVzQyxFQUFFaEMsS0FBSyxDQUFDLE1BQU0sS0FBSyxjQUFjO2dCQUMvRDRDLENBQUFBLEdBQUFBLFVBQUFBLFFBQUFBLEVBQ0csd0ZBQXFGWixFQUFFaEMsS0FBSyxDQUFDLE9BQU8sR0FBQztZQUUxRztRQUNGO1FBQ0EscUJBQU9MLE9BQUFBLE9BQUssQ0FBQytDLFlBQVksQ0FBQ1YsR0FBRztZQUFFakI7UUFBSTtJQUNyQztBQUNKO0FBRUE7OztDQUdDLEdBQ0QsY0FBYyxLQUEyQztJQUEzQyxNQUFFZCxRQUFRLEVBQWlDLEdBQTNDO0lBQ1osTUFBTTZDLFdBQVdDLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdDLHlCQUFBQSxlQUFlO0lBQzNDLE1BQU1DLGNBQWNGLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdHLGlDQUFBQSxrQkFBa0I7SUFDakQscUJBQ0UscUJBQUNDLFlBQUFBLE9BQU07UUFDTEMseUJBQXlCekI7UUFDekJzQixhQUFhQTtRQUNiakUsV0FBV3FFLENBQUFBLEdBQUFBLFNBQUFBLFdBQUFBLEVBQVlQO2tCQUV0QjdDOztBQUdQO0tBWlM0QztNQWNULFdBQWVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvc2hhcmVkL2xpYi9oZWFkLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0LCB7IHVzZUNvbnRleHQsIHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgRWZmZWN0IGZyb20gJy4vc2lkZS1lZmZlY3QnXG5pbXBvcnQgeyBBbXBTdGF0ZUNvbnRleHQgfSBmcm9tICcuL2FtcC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgSGVhZE1hbmFnZXJDb250ZXh0IH0gZnJvbSAnLi9oZWFkLW1hbmFnZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IGlzSW5BbXBNb2RlIH0gZnJvbSAnLi9hbXAtbW9kZSdcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi91dGlscy93YXJuLW9uY2UnXG5cbnR5cGUgV2l0aEluQW1wTW9kZSA9IHtcbiAgaW5BbXBNb2RlPzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdEhlYWQoaW5BbXBNb2RlID0gZmFsc2UpOiBKU1guRWxlbWVudFtdIHtcbiAgY29uc3QgaGVhZCA9IFs8bWV0YSBjaGFyU2V0PVwidXRmLThcIiBrZXk9XCJjaGFyc2V0XCIgLz5dXG4gIGlmICghaW5BbXBNb2RlKSB7XG4gICAgaGVhZC5wdXNoKFxuICAgICAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aFwiIGtleT1cInZpZXdwb3J0XCIgLz5cbiAgICApXG4gIH1cbiAgcmV0dXJuIGhlYWRcbn1cblxuZnVuY3Rpb24gb25seVJlYWN0RWxlbWVudChcbiAgbGlzdDogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICBjaGlsZDogUmVhY3QuUmVhY3RFbGVtZW50IHwgbnVtYmVyIHwgc3RyaW5nXG4pOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4ge1xuICAvLyBSZWFjdCBjaGlsZHJlbiBjYW4gYmUgXCJzdHJpbmdcIiBvciBcIm51bWJlclwiIGluIHRoaXMgY2FzZSB3ZSBpZ25vcmUgdGhlbSBmb3IgYmFja3dhcmRzIGNvbXBhdFxuICBpZiAodHlwZW9mIGNoaWxkID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgY2hpbGQgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIGxpc3RcbiAgfVxuICAvLyBBZGRzIHN1cHBvcnQgZm9yIFJlYWN0LkZyYWdtZW50XG4gIGlmIChjaGlsZC50eXBlID09PSBSZWFjdC5GcmFnbWVudCkge1xuICAgIHJldHVybiBsaXN0LmNvbmNhdChcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQHR5cGVzL3JlYWN0IGRvZXMgbm90IHJlbW92ZSBmcmFnbWVudHMgYnV0IHRoaXMgY291bGQgYWxzbyByZXR1cm4gUmVhY3RQb3J0YWxbXVxuICAgICAgUmVhY3QuQ2hpbGRyZW4udG9BcnJheShjaGlsZC5wcm9wcy5jaGlsZHJlbikucmVkdWNlKFxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIEB0eXBlcy9yZWFjdCBkb2VzIG5vdCByZW1vdmUgZnJhZ21lbnRzIGJ1dCB0aGlzIGNvdWxkIGFsc28gcmV0dXJuIFJlYWN0UG9ydGFsW11cbiAgICAgICAgKFxuICAgICAgICAgIGZyYWdtZW50TGlzdDogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICAgICAgICAgIGZyYWdtZW50Q2hpbGQ6IFJlYWN0LlJlYWN0RWxlbWVudCB8IG51bWJlciB8IHN0cmluZ1xuICAgICAgICApOiBBcnJheTxSZWFjdC5SZWFjdEVsZW1lbnQ8YW55Pj4gPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHR5cGVvZiBmcmFnbWVudENoaWxkID09PSAnc3RyaW5nJyB8fFxuICAgICAgICAgICAgdHlwZW9mIGZyYWdtZW50Q2hpbGQgPT09ICdudW1iZXInXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gZnJhZ21lbnRMaXN0XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBmcmFnbWVudExpc3QuY29uY2F0KGZyYWdtZW50Q2hpbGQpXG4gICAgICAgIH0sXG4gICAgICAgIFtdXG4gICAgICApXG4gICAgKVxuICB9XG4gIHJldHVybiBsaXN0LmNvbmNhdChjaGlsZClcbn1cblxuY29uc3QgTUVUQVRZUEVTID0gWyduYW1lJywgJ2h0dHBFcXVpdicsICdjaGFyU2V0JywgJ2l0ZW1Qcm9wJ11cblxuLypcbiByZXR1cm5zIGEgZnVuY3Rpb24gZm9yIGZpbHRlcmluZyBoZWFkIGNoaWxkIGVsZW1lbnRzXG4gd2hpY2ggc2hvdWxkbid0IGJlIGR1cGxpY2F0ZWQsIGxpa2UgPHRpdGxlLz5cbiBBbHNvIGFkZHMgc3VwcG9ydCBmb3IgZGVkdXBsaWNhdGVkIGBrZXlgIHByb3BlcnRpZXNcbiovXG5mdW5jdGlvbiB1bmlxdWUoKSB7XG4gIGNvbnN0IGtleXMgPSBuZXcgU2V0KClcbiAgY29uc3QgdGFncyA9IG5ldyBTZXQoKVxuICBjb25zdCBtZXRhVHlwZXMgPSBuZXcgU2V0KClcbiAgY29uc3QgbWV0YUNhdGVnb3JpZXM6IHsgW21ldGF0eXBlOiBzdHJpbmddOiBTZXQ8c3RyaW5nPiB9ID0ge31cblxuICByZXR1cm4gKGg6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+KSA9PiB7XG4gICAgbGV0IGlzVW5pcXVlID0gdHJ1ZVxuICAgIGxldCBoYXNLZXkgPSBmYWxzZVxuXG4gICAgaWYgKGgua2V5ICYmIHR5cGVvZiBoLmtleSAhPT0gJ251bWJlcicgJiYgaC5rZXkuaW5kZXhPZignJCcpID4gMCkge1xuICAgICAgaGFzS2V5ID0gdHJ1ZVxuICAgICAgY29uc3Qga2V5ID0gaC5rZXkuc2xpY2UoaC5rZXkuaW5kZXhPZignJCcpICsgMSlcbiAgICAgIGlmIChrZXlzLmhhcyhrZXkpKSB7XG4gICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGtleXMuYWRkKGtleSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlXG4gICAgc3dpdGNoIChoLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RpdGxlJzpcbiAgICAgIGNhc2UgJ2Jhc2UnOlxuICAgICAgICBpZiAodGFncy5oYXMoaC50eXBlKSkge1xuICAgICAgICAgIGlzVW5pcXVlID0gZmFsc2VcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0YWdzLmFkZChoLnR5cGUpXG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIGNhc2UgJ21ldGEnOlxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gTUVUQVRZUEVTLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgbWV0YXR5cGUgPSBNRVRBVFlQRVNbaV1cbiAgICAgICAgICBpZiAoIWgucHJvcHMuaGFzT3duUHJvcGVydHkobWV0YXR5cGUpKSBjb250aW51ZVxuXG4gICAgICAgICAgaWYgKG1ldGF0eXBlID09PSAnY2hhclNldCcpIHtcbiAgICAgICAgICAgIGlmIChtZXRhVHlwZXMuaGFzKG1ldGF0eXBlKSkge1xuICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBtZXRhVHlwZXMuYWRkKG1ldGF0eXBlKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yeSA9IGgucHJvcHNbbWV0YXR5cGVdXG4gICAgICAgICAgICBjb25zdCBjYXRlZ29yaWVzID0gbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdIHx8IG5ldyBTZXQoKVxuICAgICAgICAgICAgaWYgKChtZXRhdHlwZSAhPT0gJ25hbWUnIHx8ICFoYXNLZXkpICYmIGNhdGVnb3JpZXMuaGFzKGNhdGVnb3J5KSkge1xuICAgICAgICAgICAgICBpc1VuaXF1ZSA9IGZhbHNlXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjYXRlZ29yaWVzLmFkZChjYXRlZ29yeSlcbiAgICAgICAgICAgICAgbWV0YUNhdGVnb3JpZXNbbWV0YXR5cGVdID0gY2F0ZWdvcmllc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cblxuICAgIHJldHVybiBpc1VuaXF1ZVxuICB9XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBoZWFkQ2hpbGRyZW5FbGVtZW50cyBMaXN0IG9mIGNoaWxkcmVuIG9mIDxIZWFkPlxuICovXG5mdW5jdGlvbiByZWR1Y2VDb21wb25lbnRzPFQgZXh0ZW5kcyB7fSAmIFdpdGhJbkFtcE1vZGU+KFxuICBoZWFkQ2hpbGRyZW5FbGVtZW50czogQXJyYXk8UmVhY3QuUmVhY3RFbGVtZW50PGFueT4+LFxuICBwcm9wczogVFxuKSB7XG4gIGNvbnN0IHsgaW5BbXBNb2RlIH0gPSBwcm9wc1xuICByZXR1cm4gaGVhZENoaWxkcmVuRWxlbWVudHNcbiAgICAucmVkdWNlKG9ubHlSZWFjdEVsZW1lbnQsIFtdKVxuICAgIC5yZXZlcnNlKClcbiAgICAuY29uY2F0KGRlZmF1bHRIZWFkKGluQW1wTW9kZSkucmV2ZXJzZSgpKVxuICAgIC5maWx0ZXIodW5pcXVlKCkpXG4gICAgLnJldmVyc2UoKVxuICAgIC5tYXAoKGM6IFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+LCBpOiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IGMua2V5IHx8IGlcbiAgICAgIGlmIChcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcgJiZcbiAgICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX09QVElNSVpFX0ZPTlRTICYmXG4gICAgICAgICFpbkFtcE1vZGVcbiAgICAgICkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgYy50eXBlID09PSAnbGluaycgJiZcbiAgICAgICAgICBjLnByb3BzWydocmVmJ10gJiZcbiAgICAgICAgICAvLyBUT0RPKHByYXRlZWtiaEApOiBSZXBsYWNlIHRoaXMgd2l0aCBjb25zdCBmcm9tIGBjb25zdGFudHNgIHdoZW4gdGhlIHRyZWUgc2hha2luZyB3b3Jrcy5cbiAgICAgICAgICBbJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzJywgJ2h0dHBzOi8vdXNlLnR5cGVraXQubmV0LyddLnNvbWUoXG4gICAgICAgICAgICAodXJsKSA9PiBjLnByb3BzWydocmVmJ10uc3RhcnRzV2l0aCh1cmwpXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBuZXdQcm9wcyA9IHsgLi4uKGMucHJvcHMgfHwge30pIH1cbiAgICAgICAgICBuZXdQcm9wc1snZGF0YS1ocmVmJ10gPSBuZXdQcm9wc1snaHJlZiddXG4gICAgICAgICAgbmV3UHJvcHNbJ2hyZWYnXSA9IHVuZGVmaW5lZFxuXG4gICAgICAgICAgLy8gQWRkIHRoaXMgYXR0cmlidXRlIHRvIG1ha2UgaXQgZWFzeSB0byBpZGVudGlmeSBvcHRpbWl6ZWQgdGFnc1xuICAgICAgICAgIG5ld1Byb3BzWydkYXRhLW9wdGltaXplZC1mb250cyddID0gdHJ1ZVxuXG4gICAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjLCBuZXdQcm9wcylcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgIC8vIG9taXQgSlNPTi1MRCBzdHJ1Y3R1cmVkIGRhdGEgc25pcHBldHMgZnJvbSB0aGUgd2FybmluZ1xuICAgICAgICBpZiAoYy50eXBlID09PSAnc2NyaXB0JyAmJiBjLnByb3BzWyd0eXBlJ10gIT09ICdhcHBsaWNhdGlvbi9sZCtqc29uJykge1xuICAgICAgICAgIGNvbnN0IHNyY01lc3NhZ2UgPSBjLnByb3BzWydzcmMnXVxuICAgICAgICAgICAgPyBgPHNjcmlwdD4gdGFnIHdpdGggc3JjPVwiJHtjLnByb3BzWydzcmMnXX1cImBcbiAgICAgICAgICAgIDogYGlubGluZSA8c2NyaXB0PmBcbiAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgIGBEbyBub3QgYWRkIDxzY3JpcHQ+IHRhZ3MgdXNpbmcgbmV4dC9oZWFkIChzZWUgJHtzcmNNZXNzYWdlfSkuIFVzZSBuZXh0L3NjcmlwdCBpbnN0ZWFkLiBcXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLXNjcmlwdC10YWdzLWluLWhlYWQtY29tcG9uZW50YFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIGlmIChjLnR5cGUgPT09ICdsaW5rJyAmJiBjLnByb3BzWydyZWwnXSA9PT0gJ3N0eWxlc2hlZXQnKSB7XG4gICAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICBgRG8gbm90IGFkZCBzdHlsZXNoZWV0cyB1c2luZyBuZXh0L2hlYWQgKHNlZSA8bGluayByZWw9XCJzdHlsZXNoZWV0XCI+IHRhZyB3aXRoIGhyZWY9XCIke2MucHJvcHNbJ2hyZWYnXX1cIikuIFVzZSBEb2N1bWVudCBpbnN0ZWFkLiBcXG5TZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25vLXN0eWxlc2hlZXRzLWluLWhlYWQtY29tcG9uZW50YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjLCB7IGtleSB9KVxuICAgIH0pXG59XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgaW5qZWN0cyBlbGVtZW50cyB0byBgPGhlYWQ+YCBvZiB5b3VyIHBhZ2UuXG4gKiBUbyBhdm9pZCBkdXBsaWNhdGVkIGB0YWdzYCBpbiBgPGhlYWQ+YCB5b3UgY2FuIHVzZSB0aGUgYGtleWAgcHJvcGVydHksIHdoaWNoIHdpbGwgbWFrZSBzdXJlIGV2ZXJ5IHRhZyBpcyBvbmx5IHJlbmRlcmVkIG9uY2UuXG4gKi9cbmZ1bmN0aW9uIEhlYWQoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICBjb25zdCBhbXBTdGF0ZSA9IHVzZUNvbnRleHQoQW1wU3RhdGVDb250ZXh0KVxuICBjb25zdCBoZWFkTWFuYWdlciA9IHVzZUNvbnRleHQoSGVhZE1hbmFnZXJDb250ZXh0KVxuICByZXR1cm4gKFxuICAgIDxFZmZlY3RcbiAgICAgIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlPXtyZWR1Y2VDb21wb25lbnRzfVxuICAgICAgaGVhZE1hbmFnZXI9e2hlYWRNYW5hZ2VyfVxuICAgICAgaW5BbXBNb2RlPXtpc0luQW1wTW9kZShhbXBTdGF0ZSl9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvRWZmZWN0PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IEhlYWRcbiJdLCJuYW1lcyI6WyJkZWZhdWx0SGVhZCIsImluQW1wTW9kZSIsImhlYWQiLCJtZXRhIiwiY2hhclNldCIsInB1c2giLCJuYW1lIiwiY29udGVudCIsIm9ubHlSZWFjdEVsZW1lbnQiLCJsaXN0IiwiY2hpbGQiLCJ0eXBlIiwiUmVhY3QiLCJGcmFnbWVudCIsImNvbmNhdCIsIkNoaWxkcmVuIiwidG9BcnJheSIsInByb3BzIiwiY2hpbGRyZW4iLCJyZWR1Y2UiLCJmcmFnbWVudExpc3QiLCJmcmFnbWVudENoaWxkIiwiTUVUQVRZUEVTIiwidW5pcXVlIiwia2V5cyIsIlNldCIsInRhZ3MiLCJtZXRhVHlwZXMiLCJtZXRhQ2F0ZWdvcmllcyIsImgiLCJpc1VuaXF1ZSIsImhhc0tleSIsImtleSIsImluZGV4T2YiLCJzbGljZSIsImhhcyIsImFkZCIsImkiLCJsZW4iLCJsZW5ndGgiLCJtZXRhdHlwZSIsImhhc093blByb3BlcnR5IiwiY2F0ZWdvcnkiLCJjYXRlZ29yaWVzIiwicmVkdWNlQ29tcG9uZW50cyIsImhlYWRDaGlsZHJlbkVsZW1lbnRzIiwicmV2ZXJzZSIsImZpbHRlciIsIm1hcCIsImMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJfX05FWFRfT1BUSU1JWkVfRk9OVFMiLCJzb21lIiwidXJsIiwic3RhcnRzV2l0aCIsIm5ld1Byb3BzIiwidW5kZWZpbmVkIiwiY2xvbmVFbGVtZW50Iiwic3JjTWVzc2FnZSIsIndhcm5PbmNlIiwiSGVhZCIsImFtcFN0YXRlIiwidXNlQ29udGV4dCIsIkFtcFN0YXRlQ29udGV4dCIsImhlYWRNYW5hZ2VyIiwiSGVhZE1hbmFnZXJDb250ZXh0IiwiRWZmZWN0IiwicmVkdWNlQ29tcG9uZW50c1RvU3RhdGUiLCJpc0luQW1wTW9kZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/head.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js ***! + \**********************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PathParamsContext: function() {\n return PathParamsContext;\n },\n PathnameContext: function() {\n return PathnameContext;\n },\n SearchParamsContext: function() {\n return SearchParamsContext;\n }\n});\nconst _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nconst SearchParamsContext = (0, _react.createContext)(null);\nconst PathnameContext = (0, _react.createContext)(null);\nconst PathParamsContext = (0, _react.createContext)(null);\nif (true) {\n SearchParamsContext.displayName = 'SearchParamsContext';\n PathnameContext.displayName = 'PathnameContext';\n PathParamsContext.displayName = 'PathParamsContext';\n} //# sourceMappingURL=hooks-client-context.shared-runtime.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaG9va3MtY2xpZW50LWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBT2FBLGlCQUFpQjtlQUFqQkE7O0lBREFDLGVBQWU7ZUFBZkE7O0lBREFDLG1CQUFtQjtlQUFuQkE7OzttQ0FIaUI7QUFHdkIsTUFBTUEsc0JBQXNCQyxDQUFBQSxHQUFBQSxPQUFBQSxhQUFBQSxFQUFzQztBQUNsRSxNQUFNRixrQkFBa0JFLENBQUFBLEdBQUFBLE9BQUFBLGFBQUFBLEVBQTZCO0FBQ3JELE1BQU1ILG9CQUFvQkcsQ0FBQUEsR0FBQUEsT0FBQUEsYUFBQUEsRUFBNkI7QUFFOUQsSUFBSUMsSUFBb0IsRUFBbUI7SUFDekNGLG9CQUFvQkssV0FBVyxHQUFHO0lBQ2xDTixnQkFBZ0JNLFdBQVcsR0FBRztJQUM5QlAsa0JBQWtCTyxXQUFXLEdBQUc7QUFDbEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcblxuZXhwb3J0IGNvbnN0IFNlYXJjaFBhcmFtc0NvbnRleHQgPSBjcmVhdGVDb250ZXh0PFVSTFNlYXJjaFBhcmFtcyB8IG51bGw+KG51bGwpXG5leHBvcnQgY29uc3QgUGF0aG5hbWVDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxzdHJpbmcgfCBudWxsPihudWxsKVxuZXhwb3J0IGNvbnN0IFBhdGhQYXJhbXNDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxQYXJhbXMgfCBudWxsPihudWxsKVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBTZWFyY2hQYXJhbXNDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1NlYXJjaFBhcmFtc0NvbnRleHQnXG4gIFBhdGhuYW1lQ29udGV4dC5kaXNwbGF5TmFtZSA9ICdQYXRobmFtZUNvbnRleHQnXG4gIFBhdGhQYXJhbXNDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1BhdGhQYXJhbXNDb250ZXh0J1xufVxuIl0sIm5hbWVzIjpbIlBhdGhQYXJhbXNDb250ZXh0IiwiUGF0aG5hbWVDb250ZXh0IiwiU2VhcmNoUGFyYW1zQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJkaXNwbGF5TmFtZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js ***! + \*************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizeLocalePath\", ({\n enumerable: true,\n get: function() {\n return normalizeLocalePath;\n }\n}));\nfunction normalizeLocalePath(pathname, locales) {\n let detectedLocale;\n // first item will be empty string from splitting at first char\n const pathnameParts = pathname.split('/');\n (locales || []).some((locale)=>{\n if (pathnameParts[1] && pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale;\n pathnameParts.splice(1, 1);\n pathname = pathnameParts.join('/') || '/';\n return true;\n }\n return false;\n });\n return {\n pathname,\n detectedLocale\n };\n} //# sourceMappingURL=normalize-locale-path.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGguanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFjZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUNkQyxRQUFnQixFQUNoQkMsT0FBa0I7SUFFbEIsSUFBSUM7SUFDSiwrREFBK0Q7SUFDL0QsTUFBTUMsZ0JBQWdCSCxTQUFTSSxLQUFLLENBQUM7S0FFbkNILFdBQVcsSUFBSUksSUFBSSxDQUFDLENBQUNDO1FBQ3JCLElBQ0VILGFBQWEsQ0FBQyxFQUFFLElBQ2hCQSxhQUFhLENBQUMsRUFBRSxDQUFDSSxXQUFXLE9BQU9ELE9BQU9DLFdBQVcsSUFDckQ7WUFDQUwsaUJBQWlCSTtZQUNqQkgsY0FBY0ssTUFBTSxDQUFDLEdBQUc7WUFDeEJSLFdBQVdHLGNBQWNNLElBQUksQ0FBQyxRQUFRO1lBQ3RDLE9BQU87UUFDVDtRQUNBLE9BQU87SUFDVDtJQUVBLE9BQU87UUFDTFQ7UUFDQUU7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvc2hhcmVkL2xpYi9pMThuL25vcm1hbGl6ZS1sb2NhbGUtcGF0aC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFBhdGhMb2NhbGUge1xuICBkZXRlY3RlZExvY2FsZT86IHN0cmluZ1xuICBwYXRobmFtZTogc3RyaW5nXG59XG5cbi8qKlxuICogRm9yIGEgcGF0aG5hbWUgdGhhdCBtYXkgaW5jbHVkZSBhIGxvY2FsZSBmcm9tIGEgbGlzdCBvZiBsb2NhbGVzLCBpdFxuICogcmVtb3ZlcyB0aGUgbG9jYWxlIGZyb20gdGhlIHBhdGhuYW1lIHJldHVybmluZyBpdCBhbG9uZ3NpZGUgd2l0aCB0aGVcbiAqIGRldGVjdGVkIGxvY2FsZS5cbiAqXG4gKiBAcGFyYW0gcGF0aG5hbWUgQSBwYXRobmFtZSB0aGF0IG1heSBpbmNsdWRlIGEgbG9jYWxlLlxuICogQHBhcmFtIGxvY2FsZXMgQSBsaXN0IG9mIGxvY2FsZXMuXG4gKiBAcmV0dXJucyBUaGUgZGV0ZWN0ZWQgbG9jYWxlIGFuZCBwYXRobmFtZSB3aXRob3V0IGxvY2FsZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTG9jYWxlUGF0aChcbiAgcGF0aG5hbWU6IHN0cmluZyxcbiAgbG9jYWxlcz86IHN0cmluZ1tdXG4pOiBQYXRoTG9jYWxlIHtcbiAgbGV0IGRldGVjdGVkTG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgLy8gZmlyc3QgaXRlbSB3aWxsIGJlIGVtcHR5IHN0cmluZyBmcm9tIHNwbGl0dGluZyBhdCBmaXJzdCBjaGFyXG4gIGNvbnN0IHBhdGhuYW1lUGFydHMgPSBwYXRobmFtZS5zcGxpdCgnLycpXG5cbiAgOyhsb2NhbGVzIHx8IFtdKS5zb21lKChsb2NhbGUpID0+IHtcbiAgICBpZiAoXG4gICAgICBwYXRobmFtZVBhcnRzWzFdICYmXG4gICAgICBwYXRobmFtZVBhcnRzWzFdLnRvTG93ZXJDYXNlKCkgPT09IGxvY2FsZS50b0xvd2VyQ2FzZSgpXG4gICAgKSB7XG4gICAgICBkZXRlY3RlZExvY2FsZSA9IGxvY2FsZVxuICAgICAgcGF0aG5hbWVQYXJ0cy5zcGxpY2UoMSwgMSlcbiAgICAgIHBhdGhuYW1lID0gcGF0aG5hbWVQYXJ0cy5qb2luKCcvJykgfHwgJy8nXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIHBhdGhuYW1lLFxuICAgIGRldGVjdGVkTG9jYWxlLFxuICB9XG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplTG9jYWxlUGF0aCIsInBhdGhuYW1lIiwibG9jYWxlcyIsImRldGVjdGVkTG9jYWxlIiwicGF0aG5hbWVQYXJ0cyIsInNwbGl0Iiwic29tZSIsImxvY2FsZSIsInRvTG93ZXJDYXNlIiwic3BsaWNlIiwiam9pbiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js ***! + \**********************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ImageConfigContext\", ({\n enumerable: true,\n get: function() {\n return ImageConfigContext;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _imageconfig = __webpack_require__(/*! ./image-config */ \"./node_modules/next/dist/shared/lib/image-config.js\");\nconst ImageConfigContext = _react.default.createContext(_imageconfig.imageConfigDefault);\nif (true) {\n ImageConfigContext.displayName = 'ImageConfigContext';\n} //# sourceMappingURL=image-config-context.shared-runtime.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6Ijs7OztzREFJYUE7OztlQUFBQTs7Ozs0RUFKSzt5Q0FFaUI7QUFFNUIsTUFBTUEscUJBQ1hDLE9BQUFBLE9BQUssQ0FBQ0MsYUFBYSxDQUFzQkMsYUFBQUEsa0JBQWtCO0FBRTdELElBQUlDLElBQW9CLEVBQW1CO0lBQ3pDSixtQkFBbUJPLFdBQVcsR0FBRztBQUNuQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBJbWFnZUNvbmZpZ0NvbXBsZXRlIH0gZnJvbSAnLi9pbWFnZS1jb25maWcnXG5pbXBvcnQgeyBpbWFnZUNvbmZpZ0RlZmF1bHQgfSBmcm9tICcuL2ltYWdlLWNvbmZpZydcblxuZXhwb3J0IGNvbnN0IEltYWdlQ29uZmlnQ29udGV4dCA9XG4gIFJlYWN0LmNyZWF0ZUNvbnRleHQ8SW1hZ2VDb25maWdDb21wbGV0ZT4oaW1hZ2VDb25maWdEZWZhdWx0KVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBJbWFnZUNvbmZpZ0NvbnRleHQuZGlzcGxheU5hbWUgPSAnSW1hZ2VDb25maWdDb250ZXh0J1xufVxuIl0sIm5hbWVzIjpbIkltYWdlQ29uZmlnQ29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsImltYWdlQ29uZmlnRGVmYXVsdCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/image-config.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/image-config.js ***! + \***********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n VALID_LOADERS: function() {\n return VALID_LOADERS;\n },\n imageConfigDefault: function() {\n return imageConfigDefault;\n }\n});\nconst VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom'\n];\nconst imageConfigDefault = {\n deviceSizes: [\n 640,\n 750,\n 828,\n 1080,\n 1200,\n 1920,\n 2048,\n 3840\n ],\n imageSizes: [\n 16,\n 32,\n 48,\n 64,\n 96,\n 128,\n 256,\n 384\n ],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 60,\n formats: [\n 'image/webp'\n ],\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: \"script-src 'none'; frame-src 'none'; sandbox;\",\n contentDispositionType: 'attachment',\n localPatterns: undefined,\n remotePatterns: [],\n qualities: undefined,\n unoptimized: false\n}; //# sourceMappingURL=image-config.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxhQUFhO2VBQWJBOztJQWlJQUMsa0JBQWtCO2VBQWxCQTs7O0FBaklOLE1BQU1ELGdCQUFnQjtJQUMzQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUEySE0sTUFBTUMscUJBQTBDO0lBQ3JEQyxhQUFhO1FBQUM7UUFBSztRQUFLO1FBQUs7UUFBTTtRQUFNO1FBQU07UUFBTTtLQUFLO0lBQzFEQyxZQUFZO1FBQUM7UUFBSTtRQUFJO1FBQUk7UUFBSTtRQUFJO1FBQUs7UUFBSztLQUFJO0lBQy9DQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsWUFBWTtJQUNaQyxTQUFTLEVBQUU7SUFDWEMscUJBQXFCO0lBQ3JCQyxpQkFBaUI7SUFDakJDLFNBQVM7UUFBQztLQUFhO0lBQ3ZCQyxxQkFBcUI7SUFDckJDLHVCQUF3QjtJQUN4QkMsd0JBQXdCO0lBQ3hCQyxlQUFlQztJQUNmQyxnQkFBZ0IsRUFBRTtJQUNsQkMsV0FBV0Y7SUFDWEcsYUFBYTtBQUNmIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvc2hhcmVkL2xpYi9pbWFnZS1jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZBTElEX0xPQURFUlMgPSBbXG4gICdkZWZhdWx0JyxcbiAgJ2ltZ2l4JyxcbiAgJ2Nsb3VkaW5hcnknLFxuICAnYWthbWFpJyxcbiAgJ2N1c3RvbScsXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIExvYWRlclZhbHVlID0gKHR5cGVvZiBWQUxJRF9MT0FERVJTKVtudW1iZXJdXG5cbmV4cG9ydCB0eXBlIEltYWdlTG9hZGVyUHJvcHMgPSB7XG4gIHNyYzogc3RyaW5nXG4gIHdpZHRoOiBudW1iZXJcbiAgcXVhbGl0eT86IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBJbWFnZUxvYWRlclByb3BzV2l0aENvbmZpZyA9IEltYWdlTG9hZGVyUHJvcHMgJiB7XG4gIGNvbmZpZzogUmVhZG9ubHk8SW1hZ2VDb25maWc+XG59XG5cbmV4cG9ydCB0eXBlIExvY2FsUGF0dGVybiA9IHtcbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIG9yIHdpbGRjYXJkLlxuICAgKiBTaW5nbGUgYCpgIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LlxuICAgKiBEb3VibGUgYCoqYCBtYXRjaGVzIGFueSBudW1iZXIgb2YgcGF0aCBzZWdtZW50cy5cbiAgICovXG4gIHBhdGhuYW1lPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIHF1ZXJ5IHN0cmluZyBzdWNoIGFzIGA/dj0xYCBvclxuICAgKiBlbXB0eSBzdHJpbmcgbWVhbmluZyBubyBxdWVyeSBzdHJpbmcuXG4gICAqL1xuICBzZWFyY2g/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgUmVtb3RlUGF0dGVybiA9IHtcbiAgLyoqXG4gICAqIE11c3QgYmUgYGh0dHBgIG9yIGBodHRwc2AuXG4gICAqL1xuICBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcydcblxuICAvKipcbiAgICogQ2FuIGJlIGxpdGVyYWwgb3Igd2lsZGNhcmQuXG4gICAqIFNpbmdsZSBgKmAgbWF0Y2hlcyBhIHNpbmdsZSBzdWJkb21haW4uXG4gICAqIERvdWJsZSBgKipgIG1hdGNoZXMgYW55IG51bWJlciBvZiBzdWJkb21haW5zLlxuICAgKi9cbiAgaG9zdG5hbWU6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgbGl0ZXJhbCBwb3J0IHN1Y2ggYXMgYDgwODBgIG9yIGVtcHR5IHN0cmluZ1xuICAgKiBtZWFuaW5nIG5vIHBvcnQuXG4gICAqL1xuICBwb3J0Pzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIG9yIHdpbGRjYXJkLlxuICAgKiBTaW5nbGUgYCpgIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LlxuICAgKiBEb3VibGUgYCoqYCBtYXRjaGVzIGFueSBudW1iZXIgb2YgcGF0aCBzZWdtZW50cy5cbiAgICovXG4gIHBhdGhuYW1lPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIHF1ZXJ5IHN0cmluZyBzdWNoIGFzIGA/dj0xYCBvclxuICAgKiBlbXB0eSBzdHJpbmcgbWVhbmluZyBubyBxdWVyeSBzdHJpbmcuXG4gICAqL1xuICBzZWFyY2g/OiBzdHJpbmdcbn1cblxudHlwZSBJbWFnZUZvcm1hdCA9ICdpbWFnZS9hdmlmJyB8ICdpbWFnZS93ZWJwJ1xuXG4vKipcbiAqIEltYWdlIGNvbmZpZ3VyYXRpb25zXG4gKlxuICogQHNlZSBbSW1hZ2UgY29uZmlndXJhdGlvbiBvcHRpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjY29uZmlndXJhdGlvbi1vcHRpb25zKVxuICovXG5leHBvcnQgdHlwZSBJbWFnZUNvbmZpZ0NvbXBsZXRlID0ge1xuICAvKiogQHNlZSBbRGV2aWNlIHNpemVzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNkZXZpY2Utc2l6ZXMpICovXG4gIGRldmljZVNpemVzOiBudW1iZXJbXVxuXG4gIC8qKiBAc2VlIFtJbWFnZSBzaXppbmcgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vb3B0aW1pemluZy9pbWFnZXMjaW1hZ2Utc2l6aW5nKSAqL1xuICBpbWFnZVNpemVzOiBudW1iZXJbXVxuXG4gIC8qKiBAc2VlIFtJbWFnZSBsb2FkZXJzIGNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9sZWdhY3kvaW1hZ2UjbG9hZGVyKSAqL1xuICBsb2FkZXI6IExvYWRlclZhbHVlXG5cbiAgLyoqIEBzZWUgW0ltYWdlIGxvYWRlciBjb25maWd1cmF0aW9uXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvbGVnYWN5L2ltYWdlI2xvYWRlci1jb25maWd1cmF0aW9uKSAqL1xuICBwYXRoOiBzdHJpbmdcblxuICAvKiogQHNlZSBbSW1hZ2UgbG9hZGVyIGNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNsb2FkZXItY29uZmlndXJhdGlvbikgKi9cbiAgbG9hZGVyRmlsZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcmVtb3RlUGF0dGVybnNgIGluc3RlYWQuXG4gICAqL1xuICBkb21haW5zOiBzdHJpbmdbXVxuXG4gIC8qKiBAc2VlIFtEaXNhYmxlIHN0YXRpYyBpbWFnZSBpbXBvcnQgY29uZmlndXJhdGlvbl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2ltYWdlI2Rpc2FibGUtc3RhdGljLWltcG9ydHMpICovXG4gIGRpc2FibGVTdGF0aWNJbWFnZXM6IGJvb2xlYW5cblxuICAvKiogQHNlZSBbQ2FjaGUgYmVoYXZpb3JdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNjYWNoaW5nLWJlaGF2aW9yKSAqL1xuICBtaW5pbXVtQ2FjaGVUVEw6IG51bWJlclxuXG4gIC8qKiBAc2VlIFtBY2NlcHRhYmxlIGZvcm1hdHNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNhY2NlcHRhYmxlLWZvcm1hdHMpICovXG4gIGZvcm1hdHM6IEltYWdlRm9ybWF0W11cblxuICAvKiogQHNlZSBbRGFuZ2Vyb3VzbHkgQWxsb3cgU1ZHXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjZGFuZ2Vyb3VzbHktYWxsb3ctc3ZnKSAqL1xuICBkYW5nZXJvdXNseUFsbG93U1ZHOiBib29sZWFuXG5cbiAgLyoqIEBzZWUgW0Rhbmdlcm91c2x5IEFsbG93IFNWR10oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2ltYWdlI2Rhbmdlcm91c2x5LWFsbG93LXN2ZykgKi9cbiAgY29udGVudFNlY3VyaXR5UG9saWN5OiBzdHJpbmdcblxuICAvKiogQHNlZSBbRGFuZ2Vyb3VzbHkgQWxsb3cgU1ZHXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjZGFuZ2Vyb3VzbHktYWxsb3ctc3ZnKSAqL1xuICBjb250ZW50RGlzcG9zaXRpb25UeXBlOiAnaW5saW5lJyB8ICdhdHRhY2htZW50J1xuXG4gIC8qKiBAc2VlIFtSZW1vdGUgUGF0dGVybnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNyZW1vdGVwYXR0ZXJucykgKi9cbiAgcmVtb3RlUGF0dGVybnM6IFJlbW90ZVBhdHRlcm5bXVxuXG4gIC8qKiBAc2VlIFtSZW1vdGUgUGF0dGVybnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNsb2NhbFBhdHRlcm5zKSAqL1xuICBsb2NhbFBhdHRlcm5zOiBMb2NhbFBhdHRlcm5bXSB8IHVuZGVmaW5lZFxuXG4gIC8qKiBAc2VlIFtRdWFsaXRpZXNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNxdWFsaXRpZXMpICovXG4gIHF1YWxpdGllczogbnVtYmVyW10gfCB1bmRlZmluZWRcblxuICAvKiogQHNlZSBbVW5vcHRpbWl6ZWRdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSN1bm9wdGltaXplZCkgKi9cbiAgdW5vcHRpbWl6ZWQ6IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgSW1hZ2VDb25maWcgPSBQYXJ0aWFsPEltYWdlQ29uZmlnQ29tcGxldGU+XG5cbmV4cG9ydCBjb25zdCBpbWFnZUNvbmZpZ0RlZmF1bHQ6IEltYWdlQ29uZmlnQ29tcGxldGUgPSB7XG4gIGRldmljZVNpemVzOiBbNjQwLCA3NTAsIDgyOCwgMTA4MCwgMTIwMCwgMTkyMCwgMjA0OCwgMzg0MF0sXG4gIGltYWdlU2l6ZXM6IFsxNiwgMzIsIDQ4LCA2NCwgOTYsIDEyOCwgMjU2LCAzODRdLFxuICBwYXRoOiAnL19uZXh0L2ltYWdlJyxcbiAgbG9hZGVyOiAnZGVmYXVsdCcsXG4gIGxvYWRlckZpbGU6ICcnLFxuICBkb21haW5zOiBbXSxcbiAgZGlzYWJsZVN0YXRpY0ltYWdlczogZmFsc2UsXG4gIG1pbmltdW1DYWNoZVRUTDogNjAsXG4gIGZvcm1hdHM6IFsnaW1hZ2Uvd2VicCddLFxuICBkYW5nZXJvdXNseUFsbG93U1ZHOiBmYWxzZSxcbiAgY29udGVudFNlY3VyaXR5UG9saWN5OiBgc2NyaXB0LXNyYyAnbm9uZSc7IGZyYW1lLXNyYyAnbm9uZSc7IHNhbmRib3g7YCxcbiAgY29udGVudERpc3Bvc2l0aW9uVHlwZTogJ2F0dGFjaG1lbnQnLFxuICBsb2NhbFBhdHRlcm5zOiB1bmRlZmluZWQsIC8vIGRlZmF1bHQ6IGFsbG93IGFsbCBsb2NhbCBpbWFnZXNcbiAgcmVtb3RlUGF0dGVybnM6IFtdLCAvLyBkZWZhdWx0OiBhbGxvdyBubyByZW1vdGUgaW1hZ2VzXG4gIHF1YWxpdGllczogdW5kZWZpbmVkLCAvLyBkZWZhdWx0OiBhbGxvdyBhbGwgcXVhbGl0aWVzXG4gIHVub3B0aW1pemVkOiBmYWxzZSxcbn1cbiJdLCJuYW1lcyI6WyJWQUxJRF9MT0FERVJTIiwiaW1hZ2VDb25maWdEZWZhdWx0IiwiZGV2aWNlU2l6ZXMiLCJpbWFnZVNpemVzIiwicGF0aCIsImxvYWRlciIsImxvYWRlckZpbGUiLCJkb21haW5zIiwiZGlzYWJsZVN0YXRpY0ltYWdlcyIsIm1pbmltdW1DYWNoZVRUTCIsImZvcm1hdHMiLCJkYW5nZXJvdXNseUFsbG93U1ZHIiwiY29udGVudFNlY3VyaXR5UG9saWN5IiwiY29udGVudERpc3Bvc2l0aW9uVHlwZSIsImxvY2FsUGF0dGVybnMiLCJ1bmRlZmluZWQiLCJyZW1vdGVQYXR0ZXJucyIsInF1YWxpdGllcyIsInVub3B0aW1pemVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/image-config.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/is-plain-object.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/is-plain-object.js ***! + \**************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getObjectClassLabel: function() {\n return getObjectClassLabel;\n },\n isPlainObject: function() {\n return isPlainObject;\n }\n});\nfunction getObjectClassLabel(value) {\n return Object.prototype.toString.call(value);\n}\nfunction isPlainObject(value) {\n if (getObjectClassLabel(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n /**\n * this used to be previously:\n *\n * `return prototype === null || prototype === Object.prototype`\n *\n * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail.\n *\n * It was changed to the current implementation since it's resilient to serialization.\n */ return prototype === null || prototype.hasOwnProperty('isPrototypeOf');\n} //# sourceMappingURL=is-plain-object.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFnQkEsbUJBQW1CO2VBQW5CQTs7SUFJQUMsYUFBYTtlQUFiQTs7O0FBSlQsU0FBU0Qsb0JBQW9CRSxLQUFVO0lBQzVDLE9BQU9DLE9BQU9DLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUNKO0FBQ3hDO0FBRU8sU0FBU0QsY0FBY0MsS0FBVTtJQUN0QyxJQUFJRixvQkFBb0JFLFdBQVcsbUJBQW1CO1FBQ3BELE9BQU87SUFDVDtJQUVBLE1BQU1FLFlBQVlELE9BQU9JLGNBQWMsQ0FBQ0w7SUFFeEM7Ozs7Ozs7O0dBUUMsR0FDRCxPQUFPRSxjQUFjLFFBQVFBLFVBQVVJLGNBQWMsQ0FBQztBQUN4RCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIGlmIChnZXRPYmplY3RDbGFzc0xhYmVsKHZhbHVlKSAhPT0gJ1tvYmplY3QgT2JqZWN0XScpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IHByb3RvdHlwZSA9IE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZSlcblxuICAvKipcbiAgICogdGhpcyB1c2VkIHRvIGJlIHByZXZpb3VzbHk6XG4gICAqXG4gICAqIGByZXR1cm4gcHJvdG90eXBlID09PSBudWxsIHx8IHByb3RvdHlwZSA9PT0gT2JqZWN0LnByb3RvdHlwZWBcbiAgICpcbiAgICogYnV0IEVkZ2UgUnVudGltZSBleHBvc2UgT2JqZWN0IGZyb20gdm0sIGJlaW5nIHRoYXQga2luZCBvZiB0eXBlLWNoZWNraW5nIHdyb25nbHkgZmFpbC5cbiAgICpcbiAgICogSXQgd2FzIGNoYW5nZWQgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gc2luY2UgaXQncyByZXNpbGllbnQgdG8gc2VyaWFsaXphdGlvbi5cbiAgICovXG4gIHJldHVybiBwcm90b3R5cGUgPT09IG51bGwgfHwgcHJvdG90eXBlLmhhc093blByb3BlcnR5KCdpc1Byb3RvdHlwZU9mJylcbn1cbiJdLCJuYW1lcyI6WyJnZXRPYmplY3RDbGFzc0xhYmVsIiwiaXNQbGFpbk9iamVjdCIsInZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiZ2V0UHJvdG90eXBlT2YiLCJoYXNPd25Qcm9wZXJ0eSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/is-plain-object.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js": +/*!**************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js ***! + \**************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// This has to be a shared module which is shared between client component error boundary and dynamic component\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n BailoutToCSRError: function() {\n return BailoutToCSRError;\n },\n isBailoutToCSRError: function() {\n return isBailoutToCSRError;\n }\n});\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING';\nclass BailoutToCSRError extends Error {\n constructor(reason){\n super(\"Bail out to client-side rendering: \" + reason), this.reason = reason, this.digest = BAILOUT_TO_CSR;\n }\n}\nfunction isBailoutToCSRError(err) {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false;\n }\n return err.digest === BAILOUT_TO_CSR;\n} //# sourceMappingURL=bailout-to-csr.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLmpzIiwibWFwcGluZ3MiOiJBQUFBLCtHQUErRzs7Ozs7Ozs7Ozs7OztJQUlsR0EsaUJBQWlCO2VBQWpCQTs7SUFTR0MsbUJBQW1CO2VBQW5CQTs7O0FBWmhCLE1BQU1DLGlCQUFpQjtBQUdoQixNQUFNRiwwQkFBMEJHO0lBR3JDQyxZQUE0QkMsTUFBYyxDQUFFO1FBQzFDLEtBQUssQ0FBRSx3Q0FBcUNBLFNBQUFBLElBQUFBLENBRGxCQSxNQUFBQSxHQUFBQSxRQUFBQSxJQUFBQSxDQUZaQyxNQUFBQSxHQUFTSjtJQUl6QjtBQUNGO0FBR08sU0FBU0Qsb0JBQW9CTSxHQUFZO0lBQzlDLElBQUksT0FBT0EsUUFBUSxZQUFZQSxRQUFRLFFBQVEsQ0FBRSxhQUFZQSxHQUFBQSxDQUFFLEVBQUk7UUFDakUsT0FBTztJQUNUO0lBRUEsT0FBT0EsSUFBSUQsTUFBTSxLQUFLSjtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL3NoYXJlZC9saWIvbGF6eS1keW5hbWljL2JhaWxvdXQtdG8tY3NyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgaGFzIHRvIGJlIGEgc2hhcmVkIG1vZHVsZSB3aGljaCBpcyBzaGFyZWQgYmV0d2VlbiBjbGllbnQgY29tcG9uZW50IGVycm9yIGJvdW5kYXJ5IGFuZCBkeW5hbWljIGNvbXBvbmVudFxuY29uc3QgQkFJTE9VVF9UT19DU1IgPSAnQkFJTE9VVF9UT19DTElFTlRfU0lERV9SRU5ERVJJTkcnXG5cbi8qKiBBbiBlcnJvciB0aGF0IHNob3VsZCBiZSB0aHJvd24gd2hlbiB3ZSB3YW50IHRvIGJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZy4gKi9cbmV4cG9ydCBjbGFzcyBCYWlsb3V0VG9DU1JFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIHJlYWRvbmx5IGRpZ2VzdCA9IEJBSUxPVVRfVE9fQ1NSXG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJlYXNvbjogc3RyaW5nKSB7XG4gICAgc3VwZXIoYEJhaWwgb3V0IHRvIGNsaWVudC1zaWRlIHJlbmRlcmluZzogJHtyZWFzb259YClcbiAgfVxufVxuXG4vKiogQ2hlY2tzIGlmIGEgcGFzc2VkIGFyZ3VtZW50IGlzIGFuIGVycm9yIHRoYXQgaXMgdGhyb3duIGlmIHdlIHdhbnQgdG8gYmFpbCBvdXQgdG8gY2xpZW50LXNpZGUgcmVuZGVyaW5nLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQmFpbG91dFRvQ1NSRXJyb3IoZXJyOiB1bmtub3duKTogZXJyIGlzIEJhaWxvdXRUb0NTUkVycm9yIHtcbiAgaWYgKHR5cGVvZiBlcnIgIT09ICdvYmplY3QnIHx8IGVyciA9PT0gbnVsbCB8fCAhKCdkaWdlc3QnIGluIGVycikpIHtcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuXG4gIHJldHVybiBlcnIuZGlnZXN0ID09PSBCQUlMT1VUX1RPX0NTUlxufVxuIl0sIm5hbWVzIjpbIkJhaWxvdXRUb0NTUkVycm9yIiwiaXNCYWlsb3V0VG9DU1JFcnJvciIsIkJBSUxPVVRfVE9fQ1NSIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsInJlYXNvbiIsImRpZ2VzdCIsImVyciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/magic-identifier.js": +/*!***************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/magic-identifier.js ***! + \***************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n MAGIC_IDENTIFIER_REGEX: function() {\n return MAGIC_IDENTIFIER_REGEX;\n },\n decodeMagicIdentifier: function() {\n return decodeMagicIdentifier;\n }\n});\nfunction decodeHex(hexStr) {\n if (hexStr.trim() === '') {\n throw new Error(\"can't decode empty hex\");\n }\n const num = parseInt(hexStr, 16);\n if (isNaN(num)) {\n throw new Error(\"invalid hex: `\" + hexStr + \"`\");\n }\n return String.fromCodePoint(num);\n}\nconst DECODE_REGEX = /^__TURBOPACK__([a-zA-Z0-9_$]+)__$/;\nfunction decodeMagicIdentifier(identifier) {\n const matches = identifier.match(DECODE_REGEX);\n if (!matches) {\n return identifier;\n }\n const inner = matches[1];\n let output = '';\n let mode = 0;\n let buffer = '';\n for(let i = 0; i < inner.length; i++){\n const char = inner[i];\n if (mode === 0) {\n if (char === '_') {\n mode = 1;\n } else if (char === '$') {\n mode = 2;\n } else {\n output += char;\n }\n } else if (mode === 1) {\n if (char === '_') {\n output += ' ';\n mode = 0;\n } else if (char === '$') {\n output += '_';\n mode = 2;\n } else {\n output += char;\n mode = 0;\n }\n } else if (mode === 2) {\n if (buffer.length === 2) {\n output += decodeHex(buffer);\n buffer = '';\n }\n if (char === '_') {\n if (buffer !== '') {\n throw new Error(\"invalid hex: `\" + buffer + \"`\");\n }\n mode = 3;\n } else if (char === '$') {\n if (buffer !== '') {\n throw new Error(\"invalid hex: `\" + buffer + \"`\");\n }\n mode = 0;\n } else {\n buffer += char;\n }\n } else if (mode === 3) {\n if (char === '_') {\n throw new Error(\"invalid hex: `\" + (buffer + char) + \"`\");\n } else if (char === '$') {\n output += decodeHex(buffer);\n buffer = '';\n mode = 0;\n } else {\n buffer += char;\n }\n }\n }\n return output;\n}\nconst MAGIC_IDENTIFIER_REGEX = /__TURBOPACK__[a-zA-Z0-9_$]+__/g; //# sourceMappingURL=magic-identifier.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWFnaWMtaWRlbnRpZmllci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE4RmFBLHNCQUFzQjtlQUF0QkE7O0lBeEVHQyxxQkFBcUI7ZUFBckJBOzs7QUF0QmhCLFNBQVNDLFVBQVVDLE1BQWM7SUFDL0IsSUFBSUEsT0FBT0MsSUFBSSxPQUFPLElBQUk7UUFDeEIsTUFBTSxJQUFJQyxNQUFNO0lBQ2xCO0lBRUEsTUFBTUMsTUFBTUMsU0FBU0osUUFBUTtJQUM3QixJQUFJSyxNQUFNRixNQUFNO1FBQ2QsTUFBTSxJQUFJRCxNQUFPLG1CQUFpQkYsU0FBTztJQUMzQztJQUVBLE9BQU9NLE9BQU9DLGFBQWEsQ0FBQ0o7QUFDOUI7QUFTQSxNQUFNSyxlQUFlO0FBRWQsU0FBU1Ysc0JBQXNCVyxVQUFrQjtJQUN0RCxNQUFNQyxVQUFVRCxXQUFXRSxLQUFLLENBQUNIO0lBQ2pDLElBQUksQ0FBQ0UsU0FBUztRQUNaLE9BQU9EO0lBQ1Q7SUFFQSxNQUFNRyxRQUFRRixPQUFPLENBQUMsRUFBRTtJQUV4QixJQUFJRyxTQUFTO0lBRWIsSUFBSUMsT0FBQUE7SUFDSixJQUFJQyxTQUFTO0lBQ2IsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlKLE1BQU1LLE1BQU0sRUFBRUQsSUFBSztRQUNyQyxNQUFNRSxPQUFPTixLQUFLLENBQUNJLEVBQUU7UUFFckIsSUFBSUYsU0FBQUEsR0FBb0I7WUFDdEIsSUFBSUksU0FBUyxLQUFLO2dCQUNoQkosT0FBQUE7WUFDRixPQUFPLElBQUlJLFNBQVMsS0FBSztnQkFDdkJKLE9BQUFBO1lBQ0YsT0FBTztnQkFDTEQsVUFBVUs7WUFDWjtRQUNGLE9BQU8sSUFBSUosU0FBQUEsR0FBMEI7WUFDbkMsSUFBSUksU0FBUyxLQUFLO2dCQUNoQkwsVUFBVTtnQkFDVkMsT0FBQUE7WUFDRixPQUFPLElBQUlJLFNBQVMsS0FBSztnQkFDdkJMLFVBQVU7Z0JBQ1ZDLE9BQUFBO1lBQ0YsT0FBTztnQkFDTEQsVUFBVUs7Z0JBQ1ZKLE9BQUFBO1lBQ0Y7UUFDRixPQUFPLElBQUlBLFNBQUFBLEdBQW1CO1lBQzVCLElBQUlDLE9BQU9FLE1BQU0sS0FBSyxHQUFHO2dCQUN2QkosVUFBVWQsVUFBVWdCO2dCQUNwQkEsU0FBUztZQUNYO1lBRUEsSUFBSUcsU0FBUyxLQUFLO2dCQUNoQixJQUFJSCxXQUFXLElBQUk7b0JBQ2pCLE1BQU0sSUFBSWIsTUFBTyxtQkFBaUJhLFNBQU87Z0JBQzNDO2dCQUVBRCxPQUFBQTtZQUNGLE9BQU8sSUFBSUksU0FBUyxLQUFLO2dCQUN2QixJQUFJSCxXQUFXLElBQUk7b0JBQ2pCLE1BQU0sSUFBSWIsTUFBTyxtQkFBaUJhLFNBQU87Z0JBQzNDO2dCQUVBRCxPQUFBQTtZQUNGLE9BQU87Z0JBQ0xDLFVBQVVHO1lBQ1o7UUFDRixPQUFPLElBQUlKLFNBQUFBLEdBQXVCO1lBQ2hDLElBQUlJLFNBQVMsS0FBSztnQkFDaEIsTUFBTSxJQUFJaEIsTUFBTyxtQkFBaUJhLENBQUFBLFNBQVNHLElBQUFBLENBQUcsR0FBRTtZQUNsRCxPQUFPLElBQUlBLFNBQVMsS0FBSztnQkFDdkJMLFVBQVVkLFVBQVVnQjtnQkFDcEJBLFNBQVM7Z0JBRVRELE9BQUFBO1lBQ0YsT0FBTztnQkFDTEMsVUFBVUc7WUFDWjtRQUNGO0lBQ0Y7SUFFQSxPQUFPTDtBQUNUO0FBRU8sTUFBTWhCLHlCQUF5QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvbWFnaWMtaWRlbnRpZmllci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBkZWNvZGVIZXgoaGV4U3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoaGV4U3RyLnRyaW0oKSA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJjYW4ndCBkZWNvZGUgZW1wdHkgaGV4XCIpXG4gIH1cblxuICBjb25zdCBudW0gPSBwYXJzZUludChoZXhTdHIsIDE2KVxuICBpZiAoaXNOYU4obnVtKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBoZXg6IFxcYCR7aGV4U3RyfVxcYGApXG4gIH1cblxuICByZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQobnVtKVxufVxuXG5jb25zdCBlbnVtIE1vZGUge1xuICBUZXh0LFxuICBVbmRlcnNjb3JlLFxuICBIZXgsXG4gIExvbmdIZXgsXG59XG5cbmNvbnN0IERFQ09ERV9SRUdFWCA9IC9eX19UVVJCT1BBQ0tfXyhbYS16QS1aMC05XyRdKylfXyQvXG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVNYWdpY0lkZW50aWZpZXIoaWRlbnRpZmllcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2hlcyA9IGlkZW50aWZpZXIubWF0Y2goREVDT0RFX1JFR0VYKVxuICBpZiAoIW1hdGNoZXMpIHtcbiAgICByZXR1cm4gaWRlbnRpZmllclxuICB9XG5cbiAgY29uc3QgaW5uZXIgPSBtYXRjaGVzWzFdXG5cbiAgbGV0IG91dHB1dCA9ICcnXG5cbiAgbGV0IG1vZGU6IE1vZGUgPSBNb2RlLlRleHRcbiAgbGV0IGJ1ZmZlciA9ICcnXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgaW5uZXIubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGFyID0gaW5uZXJbaV1cblxuICAgIGlmIChtb2RlID09PSBNb2RlLlRleHQpIHtcbiAgICAgIGlmIChjaGFyID09PSAnXycpIHtcbiAgICAgICAgbW9kZSA9IE1vZGUuVW5kZXJzY29yZVxuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSAnJCcpIHtcbiAgICAgICAgbW9kZSA9IE1vZGUuSGV4XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdXRwdXQgKz0gY2hhclxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobW9kZSA9PT0gTW9kZS5VbmRlcnNjb3JlKSB7XG4gICAgICBpZiAoY2hhciA9PT0gJ18nKSB7XG4gICAgICAgIG91dHB1dCArPSAnICdcbiAgICAgICAgbW9kZSA9IE1vZGUuVGV4dFxuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSAnJCcpIHtcbiAgICAgICAgb3V0cHV0ICs9ICdfJ1xuICAgICAgICBtb2RlID0gTW9kZS5IZXhcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG91dHB1dCArPSBjaGFyXG4gICAgICAgIG1vZGUgPSBNb2RlLlRleHRcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG1vZGUgPT09IE1vZGUuSGV4KSB7XG4gICAgICBpZiAoYnVmZmVyLmxlbmd0aCA9PT0gMikge1xuICAgICAgICBvdXRwdXQgKz0gZGVjb2RlSGV4KGJ1ZmZlcilcbiAgICAgICAgYnVmZmVyID0gJydcbiAgICAgIH1cblxuICAgICAgaWYgKGNoYXIgPT09ICdfJykge1xuICAgICAgICBpZiAoYnVmZmVyICE9PSAnJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBoZXg6IFxcYCR7YnVmZmVyfVxcYGApXG4gICAgICAgIH1cblxuICAgICAgICBtb2RlID0gTW9kZS5Mb25nSGV4XG4gICAgICB9IGVsc2UgaWYgKGNoYXIgPT09ICckJykge1xuICAgICAgICBpZiAoYnVmZmVyICE9PSAnJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBoZXg6IFxcYCR7YnVmZmVyfVxcYGApXG4gICAgICAgIH1cblxuICAgICAgICBtb2RlID0gTW9kZS5UZXh0XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBidWZmZXIgKz0gY2hhclxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobW9kZSA9PT0gTW9kZS5Mb25nSGV4KSB7XG4gICAgICBpZiAoY2hhciA9PT0gJ18nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBoZXg6IFxcYCR7YnVmZmVyICsgY2hhcn1cXGBgKVxuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSAnJCcpIHtcbiAgICAgICAgb3V0cHV0ICs9IGRlY29kZUhleChidWZmZXIpXG4gICAgICAgIGJ1ZmZlciA9ICcnXG5cbiAgICAgICAgbW9kZSA9IE1vZGUuVGV4dFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnVmZmVyICs9IGNoYXJcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gb3V0cHV0XG59XG5cbmV4cG9ydCBjb25zdCBNQUdJQ19JREVOVElGSUVSX1JFR0VYID0gL19fVFVSQk9QQUNLX19bYS16QS1aMC05XyRdK19fL2dcbiJdLCJuYW1lcyI6WyJNQUdJQ19JREVOVElGSUVSX1JFR0VYIiwiZGVjb2RlTWFnaWNJZGVudGlmaWVyIiwiZGVjb2RlSGV4IiwiaGV4U3RyIiwidHJpbSIsIkVycm9yIiwibnVtIiwicGFyc2VJbnQiLCJpc05hTiIsIlN0cmluZyIsImZyb21Db2RlUG9pbnQiLCJERUNPREVfUkVHRVgiLCJpZGVudGlmaWVyIiwibWF0Y2hlcyIsIm1hdGNoIiwiaW5uZXIiLCJvdXRwdXQiLCJtb2RlIiwiYnVmZmVyIiwiaSIsImxlbmd0aCIsImNoYXIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/magic-identifier.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/mitt.js": +/*!***************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/mitt.js ***! + \***************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/*\nMIT License\n\nCopyright (c) Jason Miller (https://jasonformat.com/)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/ // This file is based on https://github.com/developit/mitt/blob/v1.1.3/src/index.js\n// It's been edited for the needs of this script\n// See the LICENSE at the top of the file\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return mitt;\n }\n}));\nfunction mitt() {\n const all = Object.create(null);\n return {\n on (type, handler) {\n ;\n (all[type] || (all[type] = [])).push(handler);\n },\n off (type, handler) {\n if (all[type]) {\n all[type].splice(all[type].indexOf(handler) >>> 0, 1);\n }\n },\n emit (type) {\n for(var _len = arguments.length, evts = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n evts[_key - 1] = arguments[_key];\n }\n // eslint-disable-next-line array-callback-return\n ;\n (all[type] || []).slice().map((handler)=>{\n handler(...evts);\n });\n }\n };\n} //# sourceMappingURL=mitt.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWl0dC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7OztBQVVBLEdBRUEsbUZBQW1GO0FBQ25GLGdEQUFnRDtBQUNoRCx5Q0FBeUM7Ozs7OzJDQVV6Qzs7O2VBQXdCQTs7O0FBQVQsU0FBU0E7SUFDdEIsTUFBTUMsTUFBa0NDLE9BQU9DLE1BQU0sQ0FBQztJQUV0RCxPQUFPO1FBQ0xDLElBQUdDLElBQVksRUFBRUMsT0FBZ0I7O1lBQzdCTCxJQUFHLENBQUNJLEtBQUssSUFBS0osQ0FBQUEsR0FBRyxDQUFDSSxLQUFLLEdBQUcsR0FBQyxDQUFDLENBQUdFLElBQUksQ0FBQ0Q7UUFDeEM7UUFFQUUsS0FBSUgsSUFBWSxFQUFFQyxPQUFnQjtZQUNoQyxJQUFJTCxHQUFHLENBQUNJLEtBQUssRUFBRTtnQkFDYkosR0FBRyxDQUFDSSxLQUFLLENBQUNJLE1BQU0sQ0FBQ1IsR0FBRyxDQUFDSSxLQUFLLENBQUNLLE9BQU8sQ0FBQ0osYUFBYSxHQUFHO1lBQ3JEO1FBQ0Y7UUFFQUssTUFBS04sSUFBWTtZQUFFLGlDQUFHTyxPQUFIO2dCQUFHQSxJQUFBQSxDQUFILDJCQUFjOztZQUMvQixpREFBaUQ7O2FBQy9DWCxHQUFHLENBQUNJLEtBQUssSUFBSSxJQUFJUSxLQUFLLEdBQUdDLEdBQUcsQ0FBQyxDQUFDUjtnQkFDOUJBLFdBQVdNO1lBQ2I7UUFDRjtJQUNGO0FBQ0YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9zaGFyZWQvbGliL21pdHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbk1JVCBMaWNlbnNlXG5cbkNvcHlyaWdodCAoYykgSmFzb24gTWlsbGVyIChodHRwczovL2phc29uZm9ybWF0LmNvbS8pXG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiovXG5cbi8vIFRoaXMgZmlsZSBpcyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZGV2ZWxvcGl0L21pdHQvYmxvYi92MS4xLjMvc3JjL2luZGV4LmpzXG4vLyBJdCdzIGJlZW4gZWRpdGVkIGZvciB0aGUgbmVlZHMgb2YgdGhpcyBzY3JpcHRcbi8vIFNlZSB0aGUgTElDRU5TRSBhdCB0aGUgdG9wIG9mIHRoZSBmaWxlXG5cbnR5cGUgSGFuZGxlciA9ICguLi5ldnRzOiBhbnlbXSkgPT4gdm9pZFxuXG5leHBvcnQgdHlwZSBNaXR0RW1pdHRlcjxUPiA9IHtcbiAgb24odHlwZTogVCwgaGFuZGxlcjogSGFuZGxlcik6IHZvaWRcbiAgb2ZmKHR5cGU6IFQsIGhhbmRsZXI6IEhhbmRsZXIpOiB2b2lkXG4gIGVtaXQodHlwZTogVCwgLi4uZXZ0czogYW55W10pOiB2b2lkXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIG1pdHQoKTogTWl0dEVtaXR0ZXI8c3RyaW5nPiB7XG4gIGNvbnN0IGFsbDogeyBbczogc3RyaW5nXTogSGFuZGxlcltdIH0gPSBPYmplY3QuY3JlYXRlKG51bGwpXG5cbiAgcmV0dXJuIHtcbiAgICBvbih0eXBlOiBzdHJpbmcsIGhhbmRsZXI6IEhhbmRsZXIpIHtcbiAgICAgIDsoYWxsW3R5cGVdIHx8IChhbGxbdHlwZV0gPSBbXSkpLnB1c2goaGFuZGxlcilcbiAgICB9LFxuXG4gICAgb2ZmKHR5cGU6IHN0cmluZywgaGFuZGxlcjogSGFuZGxlcikge1xuICAgICAgaWYgKGFsbFt0eXBlXSkge1xuICAgICAgICBhbGxbdHlwZV0uc3BsaWNlKGFsbFt0eXBlXS5pbmRleE9mKGhhbmRsZXIpID4+PiAwLCAxKVxuICAgICAgfVxuICAgIH0sXG5cbiAgICBlbWl0KHR5cGU6IHN0cmluZywgLi4uZXZ0czogYW55W10pIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBhcnJheS1jYWxsYmFjay1yZXR1cm5cbiAgICAgIDsoYWxsW3R5cGVdIHx8IFtdKS5zbGljZSgpLm1hcCgoaGFuZGxlcjogSGFuZGxlcikgPT4ge1xuICAgICAgICBoYW5kbGVyKC4uLmV2dHMpXG4gICAgICB9KVxuICAgIH0sXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJtaXR0IiwiYWxsIiwiT2JqZWN0IiwiY3JlYXRlIiwib24iLCJ0eXBlIiwiaGFuZGxlciIsInB1c2giLCJvZmYiLCJzcGxpY2UiLCJpbmRleE9mIiwiZW1pdCIsImV2dHMiLCJzbGljZSIsIm1hcCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/mitt.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/modern-browserslist-target.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/modern-browserslist-target.js ***! + \*************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS.\n// Keep file changes in sync with the corresponding `.d.ts` files.\n/**\n * These are the browser versions that support all of the following:\n * static import: https://caniuse.com/es6-module\n * dynamic import: https://caniuse.com/es6-module-dynamic-import\n * import.meta: https://caniuse.com/mdn-javascript_operators_import_meta\n */ \nconst MODERN_BROWSERSLIST_TARGET = [\n 'chrome 64',\n 'edge 79',\n 'firefox 67',\n 'opera 51',\n 'safari 12'\n];\nmodule.exports = MODERN_BROWSERSLIST_TARGET; //# sourceMappingURL=modern-browserslist-target.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiLCJtYXBwaW5ncyI6IkFBQUEsb0ZBQW9GO0FBQ3BGLGtFQUFrRTtBQUNsRTs7Ozs7Q0FLQztBQUNELE1BQU1BLDZCQUE2QjtJQUNqQztJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFREMsT0FBT0MsT0FBTyxHQUFHRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvbW9kZXJuLWJyb3dzZXJzbGlzdC10YXJnZXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gTm90ZTogVGhpcyBmaWxlIGlzIEpTIGJlY2F1c2UgaXQncyB1c2VkIGJ5IHRoZSB0YXNrZmlsZS1zd2MuanMgZmlsZSwgd2hpY2ggaXMgSlMuXG4vLyBLZWVwIGZpbGUgY2hhbmdlcyBpbiBzeW5jIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgYC5kLnRzYCBmaWxlcy5cbi8qKlxuICogVGhlc2UgYXJlIHRoZSBicm93c2VyIHZlcnNpb25zIHRoYXQgc3VwcG9ydCBhbGwgb2YgdGhlIGZvbGxvd2luZzpcbiAqIHN0YXRpYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZVxuICogZHluYW1pYyBpbXBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vZXM2LW1vZHVsZS1keW5hbWljLWltcG9ydFxuICogaW1wb3J0Lm1ldGE6IGh0dHBzOi8vY2FuaXVzZS5jb20vbWRuLWphdmFzY3JpcHRfb3BlcmF0b3JzX2ltcG9ydF9tZXRhXG4gKi9cbmNvbnN0IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUID0gW1xuICAnY2hyb21lIDY0JyxcbiAgJ2VkZ2UgNzknLFxuICAnZmlyZWZveCA2NycsXG4gICdvcGVyYSA1MScsXG4gICdzYWZhcmkgMTInLFxuXVxuXG5tb2R1bGUuZXhwb3J0cyA9IE1PREVSTl9CUk9XU0VSU0xJU1RfVEFSR0VUXG4iXSwibmFtZXMiOlsiTU9ERVJOX0JST1dTRVJTTElTVF9UQVJHRVQiLCJtb2R1bGUiLCJleHBvcnRzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/modern-browserslist-target.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/normalized-asset-prefix.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/normalized-asset-prefix.js ***! + \**********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizedAssetPrefix\", ({\n enumerable: true,\n get: function() {\n return normalizedAssetPrefix;\n }\n}));\nfunction normalizedAssetPrefix(assetPrefix) {\n // remove all leading slashes and trailing slashes\n const escapedAssetPrefix = (assetPrefix == null ? void 0 : assetPrefix.replace(/^\\/+|\\/+$/g, '')) || false;\n // if an assetPrefix was '/', we return empty string\n // because it could be an unnecessary trailing slash\n if (!escapedAssetPrefix) {\n return '';\n }\n if (URL.canParse(escapedAssetPrefix)) {\n const url = new URL(escapedAssetPrefix).toString();\n return url.endsWith('/') ? url.slice(0, -1) : url;\n }\n // assuming assetPrefix here is a pathname-style,\n // restore the leading slash\n return \"/\" + escapedAssetPrefix;\n} //# sourceMappingURL=normalized-asset-prefix.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbm9ybWFsaXplZC1hc3NldC1wcmVmaXguanMiLCJtYXBwaW5ncyI6Ijs7Ozt5REFBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLHNCQUFzQkMsV0FBK0I7SUFDbkUsa0RBQWtEO0lBQ2xELE1BQU1DLHFCQUFxQkQsQ0FBQUEsZUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsWUFBYUUsT0FBTyxDQUFDLGNBQWMsUUFBTztJQUVyRSxvREFBb0Q7SUFDcEQsb0RBQW9EO0lBQ3BELElBQUksQ0FBQ0Qsb0JBQW9CO1FBQ3ZCLE9BQU87SUFDVDtJQUVBLElBQUlFLElBQUlDLFFBQVEsQ0FBQ0gscUJBQXFCO1FBQ3BDLE1BQU1JLE1BQU0sSUFBSUYsSUFBSUYsb0JBQW9CSyxRQUFRO1FBQ2hELE9BQU9ELElBQUlFLFFBQVEsQ0FBQyxPQUFPRixJQUFJRyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUtIO0lBQ2hEO0lBRUEsaURBQWlEO0lBQ2pELDRCQUE0QjtJQUM1QixPQUFRLE1BQUdKO0FBQ2IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9zaGFyZWQvbGliL25vcm1hbGl6ZWQtYXNzZXQtcHJlZml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVkQXNzZXRQcmVmaXgoYXNzZXRQcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIC8vIHJlbW92ZSBhbGwgbGVhZGluZyBzbGFzaGVzIGFuZCB0cmFpbGluZyBzbGFzaGVzXG4gIGNvbnN0IGVzY2FwZWRBc3NldFByZWZpeCA9IGFzc2V0UHJlZml4Py5yZXBsYWNlKC9eXFwvK3xcXC8rJC9nLCAnJykgfHwgZmFsc2VcblxuICAvLyBpZiBhbiBhc3NldFByZWZpeCB3YXMgJy8nLCB3ZSByZXR1cm4gZW1wdHkgc3RyaW5nXG4gIC8vIGJlY2F1c2UgaXQgY291bGQgYmUgYW4gdW5uZWNlc3NhcnkgdHJhaWxpbmcgc2xhc2hcbiAgaWYgKCFlc2NhcGVkQXNzZXRQcmVmaXgpIHtcbiAgICByZXR1cm4gJydcbiAgfVxuXG4gIGlmIChVUkwuY2FuUGFyc2UoZXNjYXBlZEFzc2V0UHJlZml4KSkge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwoZXNjYXBlZEFzc2V0UHJlZml4KS50b1N0cmluZygpXG4gICAgcmV0dXJuIHVybC5lbmRzV2l0aCgnLycpID8gdXJsLnNsaWNlKDAsIC0xKSA6IHVybFxuICB9XG5cbiAgLy8gYXNzdW1pbmcgYXNzZXRQcmVmaXggaGVyZSBpcyBhIHBhdGhuYW1lLXN0eWxlLFxuICAvLyByZXN0b3JlIHRoZSBsZWFkaW5nIHNsYXNoXG4gIHJldHVybiBgLyR7ZXNjYXBlZEFzc2V0UHJlZml4fWBcbn1cbiJdLCJuYW1lcyI6WyJub3JtYWxpemVkQXNzZXRQcmVmaXgiLCJhc3NldFByZWZpeCIsImVzY2FwZWRBc3NldFByZWZpeCIsInJlcGxhY2UiLCJVUkwiLCJjYW5QYXJzZSIsInVybCIsInRvU3RyaW5nIiwiZW5kc1dpdGgiLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/normalized-asset-prefix.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js ***! + \******************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"denormalizePagePath\", ({\n enumerable: true,\n get: function() {\n return denormalizePagePath;\n }\n}));\nconst _utils = __webpack_require__(/*! ../router/utils */ \"./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _normalizepathsep = __webpack_require__(/*! ./normalize-path-sep */ \"./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\");\nfunction denormalizePagePath(page) {\n let _page = (0, _normalizepathsep.normalizePathSep)(page);\n return _page.startsWith('/index/') && !(0, _utils.isDynamicRoute)(_page) ? _page.slice(6) : _page !== '/index' ? _page : '/';\n} //# sourceMappingURL=denormalize-page-path.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Rlbm9ybWFsaXplLXBhZ2UtcGF0aC5qcyIsIm1hcHBpbmdzIjoiOzs7O3VEQVdnQkE7OztlQUFBQTs7O21DQVhlOzhDQUNFO0FBVTFCLFNBQVNBLG9CQUFvQkMsSUFBWTtJQUM5QyxJQUFJQyxRQUFRQyxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCRjtJQUM3QixPQUFPQyxNQUFNRSxVQUFVLENBQUMsY0FBYyxDQUFDQyxDQUFBQSxHQUFBQSxPQUFBQSxjQUFBQSxFQUFlSCxTQUNsREEsTUFBTUksS0FBSyxDQUFDLEtBQ1pKLFVBQVUsV0FDUkEsUUFDQTtBQUNSIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZGVub3JtYWxpemUtcGFnZS1wYXRoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi4vcm91dGVyL3V0aWxzJ1xuaW1wb3J0IHsgbm9ybWFsaXplUGF0aFNlcCB9IGZyb20gJy4vbm9ybWFsaXplLXBhdGgtc2VwJ1xuXG4vKipcbiAqIFBlcmZvcm1zIHRoZSBvcHBvc2l0ZSB0cmFuc2Zvcm1hdGlvbiBvZiBgbm9ybWFsaXplUGFnZVBhdGhgLiBOb3RlIHRoYXRcbiAqIHRoaXMgZnVuY3Rpb24gaXMgbm90IGlkZW1wb3RlbnQgZWl0aGVyIGluIGNhc2VzIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZVxuICogbGVhZGluZyBgL2luZGV4YCBmb3IgdGhlIHBhZ2UuIEV4YW1wbGVzOlxuICogIC0gYC9pbmRleGAgLT4gYC9gXG4gKiAgLSBgL2luZGV4L2Zvb2AgLT4gYC9mb29gXG4gKiAgLSBgL2luZGV4L2luZGV4YCAtPiBgL2luZGV4YFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVub3JtYWxpemVQYWdlUGF0aChwYWdlOiBzdHJpbmcpIHtcbiAgbGV0IF9wYWdlID0gbm9ybWFsaXplUGF0aFNlcChwYWdlKVxuICByZXR1cm4gX3BhZ2Uuc3RhcnRzV2l0aCgnL2luZGV4LycpICYmICFpc0R5bmFtaWNSb3V0ZShfcGFnZSlcbiAgICA/IF9wYWdlLnNsaWNlKDYpXG4gICAgOiBfcGFnZSAhPT0gJy9pbmRleCdcbiAgICAgID8gX3BhZ2VcbiAgICAgIDogJy8nXG59XG4iXSwibmFtZXMiOlsiZGVub3JtYWxpemVQYWdlUGF0aCIsInBhZ2UiLCJfcGFnZSIsIm5vcm1hbGl6ZVBhdGhTZXAiLCJzdGFydHNXaXRoIiwiaXNEeW5hbWljUm91dGUiLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js ***! + \*****************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ensureLeadingSlash\", ({\n enumerable: true,\n get: function() {\n return ensureLeadingSlash;\n }\n}));\nfunction ensureLeadingSlash(path) {\n return path.startsWith('/') ? path : \"/\" + path;\n} //# sourceMappingURL=ensure-leading-slash.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL2Vuc3VyZS1sZWFkaW5nLXNsYXNoLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQW1CQyxJQUFZO0lBQzdDLE9BQU9BLEtBQUtDLFVBQVUsQ0FBQyxPQUFPRCxPQUFRLE1BQUdBO0FBQzNDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvc2hhcmVkL2xpYi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIGEgbGVhZGluZyBzbGFzaC5cbiAqIElmIHRoZXJlIGlzIG5vdCBhIGxlYWRpbmcgc2xhc2gsIG9uZSBpcyBhZGRlZCwgb3RoZXJ3aXNlIGl0IGlzIG5vb3AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVMZWFkaW5nU2xhc2gocGF0aDogc3RyaW5nKSB7XG4gIHJldHVybiBwYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IHBhdGggOiBgLyR7cGF0aH1gXG59XG4iXSwibmFtZXMiOlsiZW5zdXJlTGVhZGluZ1NsYXNoIiwicGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js": +/*!***************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js ***! + \***************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * For a given page path, this function ensures that there is no backslash\n * escaping slashes in the path. Example:\n * - `foo\\/bar\\/baz` -> `foo/bar/baz`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"normalizePathSep\", ({\n enumerable: true,\n get: function() {\n return normalizePathSep;\n }\n}));\nfunction normalizePathSep(path) {\n return path.replace(/\\\\/g, '/');\n} //# sourceMappingURL=normalize-path-sep.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcGFnZS1wYXRoL25vcm1hbGl6ZS1wYXRoLXNlcC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7OztDQUlDOzs7O29EQUNlQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxpQkFBaUJDLElBQVk7SUFDM0MsT0FBT0EsS0FBS0MsT0FBTyxDQUFDLE9BQU87QUFDN0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9zaGFyZWQvbGliL3BhZ2UtcGF0aC9ub3JtYWxpemUtcGF0aC1zZXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3IgYSBnaXZlbiBwYWdlIHBhdGgsIHRoaXMgZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHRoZXJlIGlzIG5vIGJhY2tzbGFzaFxuICogZXNjYXBpbmcgc2xhc2hlcyBpbiB0aGUgcGF0aC4gRXhhbXBsZTpcbiAqICAtIGBmb29cXC9iYXJcXC9iYXpgIC0+IGBmb28vYmFyL2JhemBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGhTZXAocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplUGF0aFNlcCIsInBhdGgiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router-context.shared-runtime.js": +/*!****************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router-context.shared-runtime.js ***! + \****************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouterContext\", ({\n enumerable: true,\n get: function() {\n return RouterContext;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst RouterContext = _react.default.createContext(null);\nif (true) {\n RouterContext.displayName = 'RouterContext';\n} //# sourceMappingURL=router-context.shared-runtime.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6Ijs7OztpREFHYUE7OztlQUFBQTs7Ozs0RUFISztBQUdYLE1BQU1BLGdCQUFnQkMsT0FBQUEsT0FBSyxDQUFDQyxhQUFhLENBQW9CO0FBRXBFLElBQUlDLElBQW9CLEVBQW1CO0lBQ3pDSCxjQUFjTSxXQUFXLEdBQUc7QUFDOUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9zaGFyZWQvbGliL3JvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcblxuZXhwb3J0IGNvbnN0IFJvdXRlckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0PE5leHRSb3V0ZXIgfCBudWxsPihudWxsKVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBSb3V0ZXJDb250ZXh0LmRpc3BsYXlOYW1lID0gJ1JvdXRlckNvbnRleHQnXG59XG4iXSwibmFtZXMiOlsiUm91dGVyQ29udGV4dCIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsImRpc3BsYXlOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/adapters.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/adapters.js ***! + \**************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n PathnameContextProviderAdapter: function() {\n return PathnameContextProviderAdapter;\n },\n adaptForAppRouterInstance: function() {\n return adaptForAppRouterInstance;\n },\n adaptForPathParams: function() {\n return adaptForPathParams;\n },\n adaptForSearchParams: function() {\n return adaptForSearchParams;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"./node_modules/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"./node_modules/react/index.js\"));\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../hooks-client-context.shared-runtime */ \"./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _aspathtosearchparams = __webpack_require__(/*! ./utils/as-path-to-search-params */ \"./node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js\");\nconst _routeregex = __webpack_require__(/*! ./utils/route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nfunction adaptForAppRouterInstance(pagesRouter) {\n return {\n back () {\n pagesRouter.back();\n },\n forward () {\n pagesRouter.forward();\n },\n refresh () {\n pagesRouter.reload();\n },\n hmrRefresh () {},\n push (href, param) {\n let { scroll } = param === void 0 ? {} : param;\n void pagesRouter.push(href, undefined, {\n scroll\n });\n },\n replace (href, param) {\n let { scroll } = param === void 0 ? {} : param;\n void pagesRouter.replace(href, undefined, {\n scroll\n });\n },\n prefetch (href) {\n void pagesRouter.prefetch(href);\n }\n };\n}\nfunction adaptForSearchParams(router) {\n if (!router.isReady || !router.query) {\n return new URLSearchParams();\n }\n return (0, _aspathtosearchparams.asPathToSearchParams)(router.asPath);\n}\nfunction adaptForPathParams(router) {\n if (!router.isReady || !router.query) {\n return null;\n }\n const pathParams = {};\n const routeRegex = (0, _routeregex.getRouteRegex)(router.pathname);\n const keys = Object.keys(routeRegex.groups);\n for (const key of keys){\n pathParams[key] = router.query[key];\n }\n return pathParams;\n}\nfunction PathnameContextProviderAdapter(param) {\n let { children, router, ...props } = param;\n const ref = (0, _react.useRef)(props.isAutoExport);\n const value = (0, _react.useMemo)(()=>{\n // isAutoExport is only ever `true` on the first render from the server,\n // so reset it to `false` after we read it for the first time as `true`. If\n // we don't use the value, then we don't need it.\n const isAutoExport = ref.current;\n if (isAutoExport) {\n ref.current = false;\n }\n // When the route is a dynamic route, we need to do more processing to\n // determine if we need to stop showing the pathname.\n if ((0, _utils.isDynamicRoute)(router.pathname)) {\n // When the router is rendering the fallback page, it can't possibly know\n // the path, so return `null` here. Read more about fallback pages over\n // at:\n // https://nextjs.org/docs/api-reference/data-fetching/get-static-paths#fallback-pages\n if (router.isFallback) {\n return null;\n }\n // When `isAutoExport` is true, meaning this is a page page has been\n // automatically statically optimized, and the router is not ready, then\n // we can't know the pathname yet. Read more about automatic static\n // optimization at:\n // https://nextjs.org/docs/advanced-features/automatic-static-optimization\n if (isAutoExport && !router.isReady) {\n return null;\n }\n }\n // The `router.asPath` contains the pathname seen by the browser (including\n // any query strings), so it should have that stripped. Read more about the\n // `asPath` option over at:\n // https://nextjs.org/docs/api-reference/next/router#router-object\n let url;\n try {\n url = new URL(router.asPath, 'http://f');\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n return '/';\n }\n return url.pathname;\n }, [\n router.asPath,\n router.isFallback,\n router.isReady,\n router.pathname\n ]);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathnameContext.Provider, {\n value: value,\n children: children\n });\n} //# sourceMappingURL=adapters.js.map\n_c = PathnameContextProviderAdapter;\nvar _c;\n$RefreshReg$(_c, \"PathnameContextProviderAdapter\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL2FkYXB0ZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW9FZ0JBLDhCQUE4QjtlQUE5QkE7O0lBekRBQyx5QkFBeUI7ZUFBekJBOztJQTBDQUMsa0JBQWtCO2VBQWxCQTs7SUFWQUMsb0JBQW9CO2VBQXBCQTs7Ozs7NkVBdkN1Qjs2REFDUDttQ0FDRDtrREFDTTt3Q0FDUDtBQUd2QixTQUFTRiwwQkFDZEcsV0FBdUI7SUFFdkIsT0FBTztRQUNMQztZQUNFRCxZQUFZQyxJQUFJO1FBQ2xCO1FBQ0FDO1lBQ0VGLFlBQVlFLE9BQU87UUFDckI7UUFDQUM7WUFDRUgsWUFBWUksTUFBTTtRQUNwQjtRQUNBQyxlQUFjO1FBQ2RDLE1BQUtDLElBQUksRUFBRTtZQUFBLE1BQUVDLE1BQU0sRUFBRSxHQUFWLG1CQUFhLENBQUMsSUFBZDtZQUNULEtBQUtSLFlBQVlNLElBQUksQ0FBQ0MsTUFBTUUsV0FBVztnQkFBRUQ7WUFBTztRQUNsRDtRQUNBRSxTQUFRSCxJQUFJLEVBQUU7WUFBQSxNQUFFQyxNQUFNLEVBQUUsR0FBVixtQkFBYSxDQUFDLElBQWQ7WUFDWixLQUFLUixZQUFZVSxPQUFPLENBQUNILE1BQU1FLFdBQVc7Z0JBQUVEO1lBQU87UUFDckQ7UUFDQUcsVUFBU0osSUFBSTtZQUNYLEtBQUtQLFlBQVlXLFFBQVEsQ0FBQ0o7UUFDNUI7SUFDRjtBQUNGO0FBUU8sU0FBU1IscUJBQ2RhLE1BQXdEO0lBRXhELElBQUksQ0FBQ0EsT0FBT0MsT0FBTyxJQUFJLENBQUNELE9BQU9FLEtBQUssRUFBRTtRQUNwQyxPQUFPLElBQUlDO0lBQ2I7SUFFQSxPQUFPQyxDQUFBQSxHQUFBQSxzQkFBQUEsb0JBQUFBLEVBQXFCSixPQUFPSyxNQUFNO0FBQzNDO0FBRU8sU0FBU25CLG1CQUNkYyxNQUFxRTtJQUVyRSxJQUFJLENBQUNBLE9BQU9DLE9BQU8sSUFBSSxDQUFDRCxPQUFPRSxLQUFLLEVBQUU7UUFDcEMsT0FBTztJQUNUO0lBQ0EsTUFBTUksYUFBcUIsQ0FBQztJQUM1QixNQUFNQyxhQUFhQyxDQUFBQSxHQUFBQSxZQUFBQSxhQUFhLEVBQUNSLE9BQU9TLFFBQVE7SUFDaEQsTUFBTUMsT0FBT0MsT0FBT0QsSUFBSSxDQUFDSCxXQUFXSyxNQUFNO0lBQzFDLEtBQUssTUFBTUMsT0FBT0gsS0FBTTtRQUN0QkosVUFBVSxDQUFDTyxJQUFJLEdBQUdiLE9BQU9FLEtBQUssQ0FBQ1csSUFBSTtJQUNyQztJQUNBLE9BQU9QO0FBQ1Q7QUFFTyx3Q0FBd0MsS0FPN0M7SUFQNkMsTUFDN0NRLFFBQVEsRUFDUmQsTUFBTSxFQUNOLEdBQUdlLE9BSUgsR0FQNkM7SUFRN0MsTUFBTUMsTUFBTUMsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFBT0YsTUFBTUcsWUFBWTtJQUNyQyxNQUFNQyxRQUFRQyxDQUFBQSxHQUFBQSxPQUFBQSxPQUFBQSxFQUFRO1FBQ3BCLHdFQUF3RTtRQUN4RSwyRUFBMkU7UUFDM0UsaURBQWlEO1FBQ2pELE1BQU1GLGVBQWVGLElBQUlLLE9BQU87UUFDaEMsSUFBSUgsY0FBYztZQUNoQkYsSUFBSUssT0FBTyxHQUFHO1FBQ2hCO1FBRUEsc0VBQXNFO1FBQ3RFLHFEQUFxRDtRQUNyRCxJQUFJQyxDQUFBQSxHQUFBQSxPQUFBQSxjQUFBQSxFQUFldEIsT0FBT1MsUUFBUSxHQUFHO1lBQ25DLHlFQUF5RTtZQUN6RSx1RUFBdUU7WUFDdkUsTUFBTTtZQUNOLHNGQUFzRjtZQUN0RixJQUFJVCxPQUFPdUIsVUFBVSxFQUFFO2dCQUNyQixPQUFPO1lBQ1Q7WUFFQSxvRUFBb0U7WUFDcEUsd0VBQXdFO1lBQ3hFLG1FQUFtRTtZQUNuRSxtQkFBbUI7WUFDbkIsMEVBQTBFO1lBQzFFLElBQUlMLGdCQUFnQixDQUFDbEIsT0FBT0MsT0FBTyxFQUFFO2dCQUNuQyxPQUFPO1lBQ1Q7UUFDRjtRQUVBLDJFQUEyRTtRQUMzRSwyRUFBMkU7UUFDM0UsMkJBQTJCO1FBQzNCLGtFQUFrRTtRQUNsRSxJQUFJdUI7UUFDSixJQUFJO1lBQ0ZBLE1BQU0sSUFBSUMsSUFBSXpCLE9BQU9LLE1BQU0sRUFBRTtRQUMvQixFQUFFLE9BQU9xQixHQUFHO1lBQ1Ysa0RBQWtEO1lBQ2xELE9BQU87UUFDVDtRQUVBLE9BQU9GLElBQUlmLFFBQVE7SUFDckIsR0FBRztRQUFDVCxPQUFPSyxNQUFNO1FBQUVMLE9BQU91QixVQUFVO1FBQUV2QixPQUFPQyxPQUFPO1FBQUVELE9BQU9TLFFBQVE7S0FBQztJQUV0RSxxQkFDRSxxQkFBQ2tCLGlDQUFBQSxlQUFlLENBQUNDLFFBQVE7UUFBQ1QsT0FBT0E7a0JBQzlCTDs7QUFHUDtLQTNEZ0I5QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL3NoYXJlZC9saWIvcm91dGVyL2FkYXB0ZXJzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFwcFJvdXRlckluc3RhbmNlIH0gZnJvbSAnLi4vYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5pbXBvcnQgdHlwZSB7IE5leHRSb3V0ZXIgfSBmcm9tICcuL3JvdXRlcidcblxuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgUGF0aG5hbWVDb250ZXh0IH0gZnJvbSAnLi4vaG9va3MtY2xpZW50LWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBpc0R5bmFtaWNSb3V0ZSB9IGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgeyBhc1BhdGhUb1NlYXJjaFBhcmFtcyB9IGZyb20gJy4vdXRpbHMvYXMtcGF0aC10by1zZWFyY2gtcGFyYW1zJ1xuaW1wb3J0IHsgZ2V0Um91dGVSZWdleCB9IGZyb20gJy4vdXRpbHMvcm91dGUtcmVnZXgnXG5cbi8qKiBJdCBhZGFwdHMgYSBQYWdlcyBSb3V0ZXIgKGBOZXh0Um91dGVyYCkgdG8gdGhlIEFwcCBSb3V0ZXIgSW5zdGFuY2UuICovXG5leHBvcnQgZnVuY3Rpb24gYWRhcHRGb3JBcHBSb3V0ZXJJbnN0YW5jZShcbiAgcGFnZXNSb3V0ZXI6IE5leHRSb3V0ZXJcbik6IEFwcFJvdXRlckluc3RhbmNlIHtcbiAgcmV0dXJuIHtcbiAgICBiYWNrKCkge1xuICAgICAgcGFnZXNSb3V0ZXIuYmFjaygpXG4gICAgfSxcbiAgICBmb3J3YXJkKCkge1xuICAgICAgcGFnZXNSb3V0ZXIuZm9yd2FyZCgpXG4gICAgfSxcbiAgICByZWZyZXNoKCkge1xuICAgICAgcGFnZXNSb3V0ZXIucmVsb2FkKClcbiAgICB9LFxuICAgIGhtclJlZnJlc2goKSB7fSxcbiAgICBwdXNoKGhyZWYsIHsgc2Nyb2xsIH0gPSB7fSkge1xuICAgICAgdm9pZCBwYWdlc1JvdXRlci5wdXNoKGhyZWYsIHVuZGVmaW5lZCwgeyBzY3JvbGwgfSlcbiAgICB9LFxuICAgIHJlcGxhY2UoaHJlZiwgeyBzY3JvbGwgfSA9IHt9KSB7XG4gICAgICB2b2lkIHBhZ2VzUm91dGVyLnJlcGxhY2UoaHJlZiwgdW5kZWZpbmVkLCB7IHNjcm9sbCB9KVxuICAgIH0sXG4gICAgcHJlZmV0Y2goaHJlZikge1xuICAgICAgdm9pZCBwYWdlc1JvdXRlci5wcmVmZXRjaChocmVmKVxuICAgIH0sXG4gIH1cbn1cblxuLyoqXG4gKiBhZGFwdEZvclNlYXJjaFBhcmFtcyB0cmFuc2Zvcm1zIHRoZSBQYXJzZWRVUkxRdWVyeSBpbnRvIFVSTFNlYXJjaFBhcmFtcy5cbiAqXG4gKiBAcGFyYW0gcm91dGVyIHRoZSByb3V0ZXIgdGhhdCBjb250YWlucyB0aGUgcXVlcnkuXG4gKiBAcmV0dXJucyB0aGUgc2VhcmNoIHBhcmFtcyBpbiB0aGUgVVJMU2VhcmNoUGFyYW1zIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRhcHRGb3JTZWFyY2hQYXJhbXMoXG4gIHJvdXRlcjogUGljazxOZXh0Um91dGVyLCAnaXNSZWFkeScgfCAncXVlcnknIHwgJ2FzUGF0aCc+XG4pOiBVUkxTZWFyY2hQYXJhbXMge1xuICBpZiAoIXJvdXRlci5pc1JlYWR5IHx8ICFyb3V0ZXIucXVlcnkpIHtcbiAgICByZXR1cm4gbmV3IFVSTFNlYXJjaFBhcmFtcygpXG4gIH1cblxuICByZXR1cm4gYXNQYXRoVG9TZWFyY2hQYXJhbXMocm91dGVyLmFzUGF0aClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0Rm9yUGF0aFBhcmFtcyhcbiAgcm91dGVyOiBQaWNrPE5leHRSb3V0ZXIsICdpc1JlYWR5JyB8ICdwYXRobmFtZScgfCAncXVlcnknIHwgJ2FzUGF0aCc+XG4pOiBQYXJhbXMgfCBudWxsIHtcbiAgaWYgKCFyb3V0ZXIuaXNSZWFkeSB8fCAhcm91dGVyLnF1ZXJ5KSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICBjb25zdCBwYXRoUGFyYW1zOiBQYXJhbXMgPSB7fVxuICBjb25zdCByb3V0ZVJlZ2V4ID0gZ2V0Um91dGVSZWdleChyb3V0ZXIucGF0aG5hbWUpXG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhyb3V0ZVJlZ2V4Lmdyb3VwcylcbiAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgIHBhdGhQYXJhbXNba2V5XSA9IHJvdXRlci5xdWVyeVtrZXldIVxuICB9XG4gIHJldHVybiBwYXRoUGFyYW1zXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQYXRobmFtZUNvbnRleHRQcm92aWRlckFkYXB0ZXIoe1xuICBjaGlsZHJlbixcbiAgcm91dGVyLFxuICAuLi5wcm9wc1xufTogUmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW48e1xuICByb3V0ZXI6IFBpY2s8TmV4dFJvdXRlciwgJ3BhdGhuYW1lJyB8ICdhc1BhdGgnIHwgJ2lzUmVhZHknIHwgJ2lzRmFsbGJhY2snPlxuICBpc0F1dG9FeHBvcnQ6IGJvb2xlYW5cbn0+KSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZihwcm9wcy5pc0F1dG9FeHBvcnQpXG4gIGNvbnN0IHZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgLy8gaXNBdXRvRXhwb3J0IGlzIG9ubHkgZXZlciBgdHJ1ZWAgb24gdGhlIGZpcnN0IHJlbmRlciBmcm9tIHRoZSBzZXJ2ZXIsXG4gICAgLy8gc28gcmVzZXQgaXQgdG8gYGZhbHNlYCBhZnRlciB3ZSByZWFkIGl0IGZvciB0aGUgZmlyc3QgdGltZSBhcyBgdHJ1ZWAuIElmXG4gICAgLy8gd2UgZG9uJ3QgdXNlIHRoZSB2YWx1ZSwgdGhlbiB3ZSBkb24ndCBuZWVkIGl0LlxuICAgIGNvbnN0IGlzQXV0b0V4cG9ydCA9IHJlZi5jdXJyZW50XG4gICAgaWYgKGlzQXV0b0V4cG9ydCkge1xuICAgICAgcmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgIH1cblxuICAgIC8vIFdoZW4gdGhlIHJvdXRlIGlzIGEgZHluYW1pYyByb3V0ZSwgd2UgbmVlZCB0byBkbyBtb3JlIHByb2Nlc3NpbmcgdG9cbiAgICAvLyBkZXRlcm1pbmUgaWYgd2UgbmVlZCB0byBzdG9wIHNob3dpbmcgdGhlIHBhdGhuYW1lLlxuICAgIGlmIChpc0R5bmFtaWNSb3V0ZShyb3V0ZXIucGF0aG5hbWUpKSB7XG4gICAgICAvLyBXaGVuIHRoZSByb3V0ZXIgaXMgcmVuZGVyaW5nIHRoZSBmYWxsYmFjayBwYWdlLCBpdCBjYW4ndCBwb3NzaWJseSBrbm93XG4gICAgICAvLyB0aGUgcGF0aCwgc28gcmV0dXJuIGBudWxsYCBoZXJlLiBSZWFkIG1vcmUgYWJvdXQgZmFsbGJhY2sgcGFnZXMgb3ZlclxuICAgICAgLy8gYXQ6XG4gICAgICAvLyBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL2RhdGEtZmV0Y2hpbmcvZ2V0LXN0YXRpYy1wYXRocyNmYWxsYmFjay1wYWdlc1xuICAgICAgaWYgKHJvdXRlci5pc0ZhbGxiYWNrKSB7XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdoZW4gYGlzQXV0b0V4cG9ydGAgaXMgdHJ1ZSwgbWVhbmluZyB0aGlzIGlzIGEgcGFnZSBwYWdlIGhhcyBiZWVuXG4gICAgICAvLyBhdXRvbWF0aWNhbGx5IHN0YXRpY2FsbHkgb3B0aW1pemVkLCBhbmQgdGhlIHJvdXRlciBpcyBub3QgcmVhZHksIHRoZW5cbiAgICAgIC8vIHdlIGNhbid0IGtub3cgdGhlIHBhdGhuYW1lIHlldC4gUmVhZCBtb3JlIGFib3V0IGF1dG9tYXRpYyBzdGF0aWNcbiAgICAgIC8vIG9wdGltaXphdGlvbiBhdDpcbiAgICAgIC8vIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FkdmFuY2VkLWZlYXR1cmVzL2F1dG9tYXRpYy1zdGF0aWMtb3B0aW1pemF0aW9uXG4gICAgICBpZiAoaXNBdXRvRXhwb3J0ICYmICFyb3V0ZXIuaXNSZWFkeSkge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBgcm91dGVyLmFzUGF0aGAgY29udGFpbnMgdGhlIHBhdGhuYW1lIHNlZW4gYnkgdGhlIGJyb3dzZXIgKGluY2x1ZGluZ1xuICAgIC8vIGFueSBxdWVyeSBzdHJpbmdzKSwgc28gaXQgc2hvdWxkIGhhdmUgdGhhdCBzdHJpcHBlZC4gUmVhZCBtb3JlIGFib3V0IHRoZVxuICAgIC8vIGBhc1BhdGhgIG9wdGlvbiBvdmVyIGF0OlxuICAgIC8vIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9yb3V0ZXIjcm91dGVyLW9iamVjdFxuICAgIGxldCB1cmw6IFVSTFxuICAgIHRyeSB7XG4gICAgICB1cmwgPSBuZXcgVVJMKHJvdXRlci5hc1BhdGgsICdodHRwOi8vZicpXG4gICAgfSBjYXRjaCAoXykge1xuICAgICAgLy8gZmFsbGJhY2sgdG8gLyBmb3IgaW52YWxpZCBhc1BhdGggdmFsdWVzIGUuZy4gLy9cbiAgICAgIHJldHVybiAnLydcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsLnBhdGhuYW1lXG4gIH0sIFtyb3V0ZXIuYXNQYXRoLCByb3V0ZXIuaXNGYWxsYmFjaywgcm91dGVyLmlzUmVhZHksIHJvdXRlci5wYXRobmFtZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8UGF0aG5hbWVDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt2YWx1ZX0+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9QYXRobmFtZUNvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJQYXRobmFtZUNvbnRleHRQcm92aWRlckFkYXB0ZXIiLCJhZGFwdEZvckFwcFJvdXRlckluc3RhbmNlIiwiYWRhcHRGb3JQYXRoUGFyYW1zIiwiYWRhcHRGb3JTZWFyY2hQYXJhbXMiLCJwYWdlc1JvdXRlciIsImJhY2siLCJmb3J3YXJkIiwicmVmcmVzaCIsInJlbG9hZCIsImhtclJlZnJlc2giLCJwdXNoIiwiaHJlZiIsInNjcm9sbCIsInVuZGVmaW5lZCIsInJlcGxhY2UiLCJwcmVmZXRjaCIsInJvdXRlciIsImlzUmVhZHkiLCJxdWVyeSIsIlVSTFNlYXJjaFBhcmFtcyIsImFzUGF0aFRvU2VhcmNoUGFyYW1zIiwiYXNQYXRoIiwicGF0aFBhcmFtcyIsInJvdXRlUmVnZXgiLCJnZXRSb3V0ZVJlZ2V4IiwicGF0aG5hbWUiLCJrZXlzIiwiT2JqZWN0IiwiZ3JvdXBzIiwia2V5IiwiY2hpbGRyZW4iLCJwcm9wcyIsInJlZiIsInVzZVJlZiIsImlzQXV0b0V4cG9ydCIsInZhbHVlIiwidXNlTWVtbyIsImN1cnJlbnQiLCJpc0R5bmFtaWNSb3V0ZSIsImlzRmFsbGJhY2siLCJ1cmwiLCJVUkwiLCJfIiwiUGF0aG5hbWVDb250ZXh0IiwiUHJvdmlkZXIiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/adapters.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/router.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/router.js ***! + \************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// tslint:disable:no-console\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n createKey: function() {\n return createKey;\n },\n default: function() {\n return Router;\n },\n matchesMiddleware: function() {\n return matchesMiddleware;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./utils/remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _routeloader = __webpack_require__(/*! ../../../client/route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\nconst _script = __webpack_require__(/*! ../../../client/script */ \"./node_modules/next/dist/client/script.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ../../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nconst _denormalizepagepath = __webpack_require__(/*! ../page-path/denormalize-page-path */ \"./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\");\nconst _normalizelocalepath = __webpack_require__(/*! ../i18n/normalize-locale-path */ \"./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _mitt = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../mitt */ \"./node_modules/next/dist/shared/lib/mitt.js\"));\nconst _utils = __webpack_require__(/*! ../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nconst _isdynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\nconst _parserelativeurl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\nconst _resolverewrites = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./utils/resolve-rewrites */ \"?506d\"));\nconst _routematcher = __webpack_require__(/*! ./utils/route-matcher */ \"./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ./utils/route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nconst _formaturl = __webpack_require__(/*! ./utils/format-url */ \"./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _detectdomainlocale = __webpack_require__(/*! ../../../client/detect-domain-locale */ \"./node_modules/next/dist/client/detect-domain-locale.js\");\nconst _parsepath = __webpack_require__(/*! ./utils/parse-path */ \"./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nconst _addlocale = __webpack_require__(/*! ../../../client/add-locale */ \"./node_modules/next/dist/client/add-locale.js\");\nconst _removelocale = __webpack_require__(/*! ../../../client/remove-locale */ \"./node_modules/next/dist/client/remove-locale.js\");\nconst _removebasepath = __webpack_require__(/*! ../../../client/remove-base-path */ \"./node_modules/next/dist/client/remove-base-path.js\");\nconst _addbasepath = __webpack_require__(/*! ../../../client/add-base-path */ \"./node_modules/next/dist/client/add-base-path.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../client/has-base-path */ \"./node_modules/next/dist/client/has-base-path.js\");\nconst _resolvehref = __webpack_require__(/*! ../../../client/resolve-href */ \"./node_modules/next/dist/client/resolve-href.js\");\nconst _isapiroute = __webpack_require__(/*! ../../../lib/is-api-route */ \"./node_modules/next/dist/lib/is-api-route.js\");\nconst _getnextpathnameinfo = __webpack_require__(/*! ./utils/get-next-pathname-info */ \"./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\");\nconst _formatnextpathnameinfo = __webpack_require__(/*! ./utils/format-next-pathname-info */ \"./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\");\nconst _comparestates = __webpack_require__(/*! ./utils/compare-states */ \"./node_modules/next/dist/shared/lib/router/utils/compare-states.js\");\nconst _islocalurl = __webpack_require__(/*! ./utils/is-local-url */ \"./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _isbot = __webpack_require__(/*! ./utils/is-bot */ \"./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst _omit = __webpack_require__(/*! ./utils/omit */ \"./node_modules/next/dist/shared/lib/router/utils/omit.js\");\nconst _interpolateas = __webpack_require__(/*! ./utils/interpolate-as */ \"./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nconst _handlesmoothscroll = __webpack_require__(/*! ./utils/handle-smooth-scroll */ \"./node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.js\");\nconst _constants = __webpack_require__(/*! ../../../lib/constants */ \"./node_modules/next/dist/lib/constants.js\");\nfunction buildCancellationError() {\n return Object.assign(new Error('Route Cancelled'), {\n cancelled: true\n });\n}\nasync function matchesMiddleware(options) {\n const matchers = await Promise.resolve(options.router.pageLoader.getMiddleware());\n if (!matchers) return false;\n const { pathname: asPathname } = (0, _parsepath.parsePath)(options.asPath);\n // remove basePath first since path prefix has to be in the order of `/${basePath}/${locale}`\n const cleanedAs = (0, _hasbasepath.hasBasePath)(asPathname) ? (0, _removebasepath.removeBasePath)(asPathname) : asPathname;\n const asWithBasePathAndLocale = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(cleanedAs, options.locale));\n // Check only path match on client. Matching \"has\" should be done on server\n // where we can access more info such as headers, HttpOnly cookie, etc.\n return matchers.some((m)=>new RegExp(m.regexp).test(asWithBasePathAndLocale));\n}\nfunction stripOrigin(url) {\n const origin = (0, _utils.getLocationOrigin)();\n return url.startsWith(origin) ? url.substring(origin.length) : url;\n}\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n let [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(router, url, true);\n const origin = (0, _utils.getLocationOrigin)();\n const hrefWasAbsolute = resolvedHref.startsWith(origin);\n const asWasAbsolute = resolvedAs && resolvedAs.startsWith(origin);\n resolvedHref = stripOrigin(resolvedHref);\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs;\n const preparedUrl = hrefWasAbsolute ? resolvedHref : (0, _addbasepath.addBasePath)(resolvedHref);\n const preparedAs = as ? stripOrigin((0, _resolvehref.resolveHref)(router, as)) : resolvedAs || resolvedHref;\n return {\n url: preparedUrl,\n as: asWasAbsolute ? preparedAs : (0, _addbasepath.addBasePath)(preparedAs)\n };\n}\nfunction resolveDynamicRoute(pathname, pages) {\n const cleanPathname = (0, _removetrailingslash.removeTrailingSlash)((0, _denormalizepagepath.denormalizePagePath)(pathname));\n if (cleanPathname === '/404' || cleanPathname === '/_error') {\n return pathname;\n }\n // handle resolving href for dynamic routes\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some((page)=>{\n if ((0, _isdynamic.isDynamicRoute)(page) && (0, _routeregex.getRouteRegex)(page).re.test(cleanPathname)) {\n pathname = page;\n return true;\n }\n });\n }\n return (0, _removetrailingslash.removeTrailingSlash)(pathname);\n}\nfunction getMiddlewareData(source, response, options) {\n const nextConfig = {\n basePath: options.router.basePath,\n i18n: {\n locales: options.router.locales\n },\n trailingSlash: Boolean(false)\n };\n const rewriteHeader = response.headers.get('x-nextjs-rewrite');\n let rewriteTarget = rewriteHeader || response.headers.get('x-nextjs-matched-path');\n const matchedPath = response.headers.get(_constants.MATCHED_PATH_HEADER);\n if (matchedPath && !rewriteTarget && !matchedPath.includes('__next_data_catchall') && !matchedPath.includes('/_error') && !matchedPath.includes('/404')) {\n // leverage x-matched-path to detect next.config.js rewrites\n rewriteTarget = matchedPath;\n }\n if (rewriteTarget) {\n if (rewriteTarget.startsWith('/') || false) {\n const parsedRewriteTarget = (0, _parserelativeurl.parseRelativeUrl)(rewriteTarget);\n const pathnameInfo = (0, _getnextpathnameinfo.getNextPathnameInfo)(parsedRewriteTarget.pathname, {\n nextConfig,\n parseData: true\n });\n let fsPathname = (0, _removetrailingslash.removeTrailingSlash)(pathnameInfo.pathname);\n return Promise.all([\n options.router.pageLoader.getPageList(),\n (0, _routeloader.getClientBuildManifest)()\n ]).then((param)=>{\n let [pages, { __rewrites: rewrites }] = param;\n let as = (0, _addlocale.addLocale)(pathnameInfo.pathname, pathnameInfo.locale);\n if ((0, _isdynamic.isDynamicRoute)(as) || !rewriteHeader && pages.includes((0, _normalizelocalepath.normalizeLocalePath)((0, _removebasepath.removeBasePath)(as), options.router.locales).pathname)) {\n const parsedSource = (0, _getnextpathnameinfo.getNextPathnameInfo)((0, _parserelativeurl.parseRelativeUrl)(source).pathname, {\n nextConfig: false ? 0 : nextConfig,\n parseData: true\n });\n as = (0, _addbasepath.addBasePath)(parsedSource.pathname);\n parsedRewriteTarget.pathname = as;\n }\n if (false) {} else if (!pages.includes(fsPathname)) {\n const resolvedPathname = resolveDynamicRoute(fsPathname, pages);\n if (resolvedPathname !== fsPathname) {\n fsPathname = resolvedPathname;\n }\n }\n const resolvedHref = !pages.includes(fsPathname) ? resolveDynamicRoute((0, _normalizelocalepath.normalizeLocalePath)((0, _removebasepath.removeBasePath)(parsedRewriteTarget.pathname), options.router.locales).pathname, pages) : fsPathname;\n if ((0, _isdynamic.isDynamicRoute)(resolvedHref)) {\n const matches = (0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(resolvedHref))(as);\n Object.assign(parsedRewriteTarget.query, matches || {});\n }\n return {\n type: 'rewrite',\n parsedAs: parsedRewriteTarget,\n resolvedHref\n };\n });\n }\n const src = (0, _parsepath.parsePath)(source);\n const pathname = (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n ...(0, _getnextpathnameinfo.getNextPathnameInfo)(src.pathname, {\n nextConfig,\n parseData: true\n }),\n defaultLocale: options.router.defaultLocale,\n buildId: ''\n });\n return Promise.resolve({\n type: 'redirect-external',\n destination: \"\" + pathname + src.query + src.hash\n });\n }\n const redirectTarget = response.headers.get('x-nextjs-redirect');\n if (redirectTarget) {\n if (redirectTarget.startsWith('/')) {\n const src = (0, _parsepath.parsePath)(redirectTarget);\n const pathname = (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n ...(0, _getnextpathnameinfo.getNextPathnameInfo)(src.pathname, {\n nextConfig,\n parseData: true\n }),\n defaultLocale: options.router.defaultLocale,\n buildId: ''\n });\n return Promise.resolve({\n type: 'redirect-internal',\n newAs: \"\" + pathname + src.query + src.hash,\n newUrl: \"\" + pathname + src.query + src.hash\n });\n }\n return Promise.resolve({\n type: 'redirect-external',\n destination: redirectTarget\n });\n }\n return Promise.resolve({\n type: 'next'\n });\n}\nasync function withMiddlewareEffects(options) {\n const matches = await matchesMiddleware(options);\n if (!matches || !options.fetchData) {\n return null;\n }\n const data = await options.fetchData();\n const effect = await getMiddlewareData(data.dataHref, data.response, options);\n return {\n dataHref: data.dataHref,\n json: data.json,\n response: data.response,\n text: data.text,\n cacheKey: data.cacheKey,\n effect\n };\n}\nconst manualScrollRestoration = false && 0;\nconst SSG_DATA_NOT_FOUND = Symbol('SSG_DATA_NOT_FOUND');\nfunction fetchRetry(url, attempts, options) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: 'same-origin',\n method: options.method || 'GET',\n headers: Object.assign({}, options.headers, {\n 'x-nextjs-data': '1'\n })\n }).then((response)=>{\n return !response.ok && attempts > 1 && response.status >= 500 ? fetchRetry(url, attempts - 1, options) : response;\n });\n}\nfunction tryToParseAsJSON(text) {\n try {\n return JSON.parse(text);\n } catch (error) {\n return null;\n }\n}\nfunction fetchNextData(param) {\n let { dataHref, inflightCache, isPrefetch, hasMiddleware, isServerRender, parseJSON, persistCache, isBackground, unstable_skipClientCache } = param;\n const { href: cacheKey } = new URL(dataHref, window.location.href);\n const getData = (params)=>{\n var _params_method;\n return fetchRetry(dataHref, isServerRender ? 3 : 1, {\n headers: Object.assign({}, isPrefetch ? {\n purpose: 'prefetch'\n } : {}, isPrefetch && hasMiddleware ? {\n 'x-middleware-prefetch': '1'\n } : {}),\n method: (_params_method = params == null ? void 0 : params.method) != null ? _params_method : 'GET'\n }).then((response)=>{\n if (response.ok && (params == null ? void 0 : params.method) === 'HEAD') {\n return {\n dataHref,\n response,\n text: '',\n json: {},\n cacheKey\n };\n }\n return response.text().then((text)=>{\n if (!response.ok) {\n /**\n * When the data response is a redirect because of a middleware\n * we do not consider it an error. The headers must bring the\n * mapped location.\n * TODO: Change the status code in the handler.\n */ if (hasMiddleware && [\n 301,\n 302,\n 307,\n 308\n ].includes(response.status)) {\n return {\n dataHref,\n response,\n text,\n json: {},\n cacheKey\n };\n }\n if (response.status === 404) {\n var _tryToParseAsJSON;\n if ((_tryToParseAsJSON = tryToParseAsJSON(text)) == null ? void 0 : _tryToParseAsJSON.notFound) {\n return {\n dataHref,\n json: {\n notFound: SSG_DATA_NOT_FOUND\n },\n response,\n text,\n cacheKey\n };\n }\n }\n const error = new Error(\"Failed to load static props\");\n /**\n * We should only trigger a server-side transition if this was\n * caused on a client-side transition. Otherwise, we'd get into\n * an infinite loop.\n */ if (!isServerRender) {\n (0, _routeloader.markAssetError)(error);\n }\n throw error;\n }\n return {\n dataHref,\n json: parseJSON ? tryToParseAsJSON(text) : null,\n response,\n text,\n cacheKey\n };\n });\n }).then((data)=>{\n if (!persistCache || \"development\" !== 'production' || 0) {\n delete inflightCache[cacheKey];\n }\n return data;\n }).catch((err)=>{\n if (!unstable_skipClientCache) {\n delete inflightCache[cacheKey];\n }\n if (err.message === 'Failed to fetch' || // firefox\n err.message === 'NetworkError when attempting to fetch resource.' || // safari\n err.message === 'Load failed') {\n (0, _routeloader.markAssetError)(err);\n }\n throw err;\n });\n };\n // when skipping client cache we wait to update\n // inflight cache until successful data response\n // this allows racing click event with fetching newer data\n // without blocking navigation when stale data is available\n if (unstable_skipClientCache && persistCache) {\n return getData({}).then((data)=>{\n if (data.response.headers.get('x-middleware-cache') !== 'no-cache') {\n // only update cache if not marked as no-cache\n inflightCache[cacheKey] = Promise.resolve(data);\n }\n return data;\n });\n }\n if (inflightCache[cacheKey] !== undefined) {\n return inflightCache[cacheKey];\n }\n return inflightCache[cacheKey] = getData(isBackground ? {\n method: 'HEAD'\n } : {});\n}\nfunction createKey() {\n return Math.random().toString(36).slice(2, 10);\n}\nfunction handleHardNavigation(param) {\n let { url, router } = param;\n // ensure we don't trigger a hard navigation to the same\n // URL as this can end up with an infinite refresh\n if (url === (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(router.asPath, router.locale))) {\n throw new Error(\"Invariant: attempted to hard navigate to the same URL \" + url + \" \" + location.href);\n }\n window.location.href = url;\n}\nconst getCancelledHandler = (param)=>{\n let { route, router } = param;\n let cancelled = false;\n const cancel = router.clc = ()=>{\n cancelled = true;\n };\n const handleCancelled = ()=>{\n if (cancelled) {\n const error = new Error('Abort fetching component for route: \"' + route + '\"');\n error.cancelled = true;\n throw error;\n }\n if (cancel === router.clc) {\n router.clc = null;\n }\n };\n return handleCancelled;\n};\nclass Router {\n reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */ back() {\n window.history.back();\n }\n /**\n * Go forward in history\n */ forward() {\n window.history.forward();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */ push(url, as, options) {\n if (options === void 0) options = {};\n if (false) {}\n ;\n ({ url, as } = prepareUrlAs(this, url, as));\n return this.change('pushState', url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */ replace(url, as, options) {\n if (options === void 0) options = {};\n ;\n ({ url, as } = prepareUrlAs(this, url, as));\n return this.change('replaceState', url, as, options);\n }\n async _bfl(as, resolvedAs, locale, skipNavigate) {\n if (true) {\n if (!this._bfl_s && !this._bfl_d) {\n const { BloomFilter } = __webpack_require__(/*! ../../lib/bloom-filter */ \"./node_modules/next/dist/shared/lib/bloom-filter.js\");\n let staticFilterData;\n let dynamicFilterData;\n try {\n ;\n ({ __routerFilterStatic: staticFilterData, __routerFilterDynamic: dynamicFilterData } = await (0, _routeloader.getClientBuildManifest)());\n } catch (err) {\n // failed to load build manifest hard navigate\n // to be safe\n console.error(err);\n if (skipNavigate) {\n return true;\n }\n handleHardNavigation({\n url: (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, locale || this.locale, this.defaultLocale)),\n router: this\n });\n return new Promise(()=>{});\n }\n const routerFilterSValue = {\"numItems\":2,\"errorRate\":0.0001,\"numBits\":39,\"numHashes\":14,\"bitArray\":[1,1,0,0,1,1,0,1,0,1,0,1,1,1,0,0,1,1,1,0,1,0,1,0,0,0,0,1,1,1,0,0,0,1,1,1,1,0,0]};\n if (!staticFilterData && routerFilterSValue) {\n staticFilterData = routerFilterSValue ? routerFilterSValue : undefined;\n }\n const routerFilterDValue = {\"numItems\":0,\"errorRate\":0.0001,\"numBits\":0,\"numHashes\":null,\"bitArray\":[]};\n if (!dynamicFilterData && routerFilterDValue) {\n dynamicFilterData = routerFilterDValue ? routerFilterDValue : undefined;\n }\n if (staticFilterData == null ? void 0 : staticFilterData.numHashes) {\n this._bfl_s = new BloomFilter(staticFilterData.numItems, staticFilterData.errorRate);\n this._bfl_s.import(staticFilterData);\n }\n if (dynamicFilterData == null ? void 0 : dynamicFilterData.numHashes) {\n this._bfl_d = new BloomFilter(dynamicFilterData.numItems, dynamicFilterData.errorRate);\n this._bfl_d.import(dynamicFilterData);\n }\n }\n let matchesBflStatic = false;\n let matchesBflDynamic = false;\n const pathsToCheck = [\n {\n as\n },\n {\n as: resolvedAs\n }\n ];\n for (const { as: curAs, allowMatchCurrent } of pathsToCheck){\n if (curAs) {\n const asNoSlash = (0, _removetrailingslash.removeTrailingSlash)(new URL(curAs, 'http://n').pathname);\n const asNoSlashLocale = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(asNoSlash, locale || this.locale));\n if (allowMatchCurrent || asNoSlash !== (0, _removetrailingslash.removeTrailingSlash)(new URL(this.asPath, 'http://n').pathname)) {\n var _this__bfl_s, _this__bfl_s1;\n matchesBflStatic = matchesBflStatic || !!((_this__bfl_s = this._bfl_s) == null ? void 0 : _this__bfl_s.contains(asNoSlash)) || !!((_this__bfl_s1 = this._bfl_s) == null ? void 0 : _this__bfl_s1.contains(asNoSlashLocale));\n for (const normalizedAS of [\n asNoSlash,\n asNoSlashLocale\n ]){\n // if any sub-path of as matches a dynamic filter path\n // it should be hard navigated\n const curAsParts = normalizedAS.split('/');\n for(let i = 0; !matchesBflDynamic && i < curAsParts.length + 1; i++){\n var _this__bfl_d;\n const currentPart = curAsParts.slice(0, i).join('/');\n if (currentPart && ((_this__bfl_d = this._bfl_d) == null ? void 0 : _this__bfl_d.contains(currentPart))) {\n matchesBflDynamic = true;\n break;\n }\n }\n }\n // if the client router filter is matched then we trigger\n // a hard navigation\n if (matchesBflStatic || matchesBflDynamic) {\n if (skipNavigate) {\n return true;\n }\n handleHardNavigation({\n url: (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, locale || this.locale, this.defaultLocale)),\n router: this\n });\n return new Promise(()=>{});\n }\n }\n }\n }\n }\n return false;\n }\n async change(method, url, as, options, forcedScroll) {\n var _this_components_pathname;\n if (!(0, _islocalurl.isLocalURL)(url)) {\n handleHardNavigation({\n url,\n router: this\n });\n return false;\n }\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n const isQueryUpdating = options._h === 1;\n if (!isQueryUpdating && !options.shallow) {\n await this._bfl(as, undefined, options.locale);\n }\n let shouldResolveHref = isQueryUpdating || options._shouldResolveHref || (0, _parsepath.parsePath)(url).pathname === (0, _parsepath.parsePath)(as).pathname;\n const nextState = {\n ...this.state\n };\n // for static pages with query params in the URL we delay\n // marking the router ready until after the query is updated\n // or a navigation has occurred\n const readyStateChange = this.isReady !== true;\n this.isReady = true;\n const isSsr = this.isSsr;\n if (!isQueryUpdating) {\n this.isSsr = false;\n }\n // if a route transition is already in progress before\n // the query updating is triggered ignore query updating\n if (isQueryUpdating && this.clc) {\n return false;\n }\n const prevLocale = nextState.locale;\n if (false) { var _this_locales; }\n // marking route changes as a navigation start entry\n if (_utils.ST) {\n performance.mark('routeChange');\n }\n const { shallow = false, scroll = true } = options;\n const routeProps = {\n shallow\n };\n if (this._inFlightRoute && this.clc) {\n if (!isSsr) {\n Router.events.emit('routeChangeError', buildCancellationError(), this._inFlightRoute, routeProps);\n }\n this.clc();\n this.clc = null;\n }\n as = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)((0, _hasbasepath.hasBasePath)(as) ? (0, _removebasepath.removeBasePath)(as) : as, options.locale, this.defaultLocale));\n const cleanedAs = (0, _removelocale.removeLocale)((0, _hasbasepath.hasBasePath)(as) ? (0, _removebasepath.removeBasePath)(as) : as, nextState.locale);\n this._inFlightRoute = as;\n const localeChange = prevLocale !== nextState.locale;\n // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n if (!isQueryUpdating && this.onlyAHashChange(cleanedAs) && !localeChange) {\n nextState.asPath = cleanedAs;\n Router.events.emit('hashChangeStart', as, routeProps);\n // TODO: do we need the resolved href when only a hash change?\n this.changeState(method, url, as, {\n ...options,\n scroll: false\n });\n if (scroll) {\n this.scrollToHash(cleanedAs);\n }\n try {\n await this.set(nextState, this.components[nextState.route], null);\n } catch (err) {\n if ((0, _iserror.default)(err) && err.cancelled) {\n Router.events.emit('routeChangeError', err, cleanedAs, routeProps);\n }\n throw err;\n }\n Router.events.emit('hashChangeComplete', as, routeProps);\n return true;\n }\n let parsed = (0, _parserelativeurl.parseRelativeUrl)(url);\n let { pathname, query } = parsed;\n // The build manifest needs to be loaded before auto-static dynamic pages\n // get their query parameters to allow ensuring they can be parsed properly\n // when rewritten to\n let pages, rewrites;\n try {\n ;\n [pages, { __rewrites: rewrites }] = await Promise.all([\n this.pageLoader.getPageList(),\n (0, _routeloader.getClientBuildManifest)(),\n this.pageLoader.getMiddleware()\n ]);\n } catch (err) {\n // If we fail to resolve the page list or client-build manifest, we must\n // do a server-side transition:\n handleHardNavigation({\n url: as,\n router: this\n });\n return false;\n }\n // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n if (!this.urlIsNew(cleanedAs) && !localeChange) {\n method = 'replaceState';\n }\n // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n let resolvedAs = as;\n // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n pathname = pathname ? (0, _removetrailingslash.removeTrailingSlash)((0, _removebasepath.removeBasePath)(pathname)) : pathname;\n let route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n const parsedAsPathname = as.startsWith('/') && (0, _parserelativeurl.parseRelativeUrl)(as).pathname;\n // if we detected the path as app route during prefetching\n // trigger hard navigation\n if ((_this_components_pathname = this.components[pathname]) == null ? void 0 : _this_components_pathname.__appRouter) {\n handleHardNavigation({\n url: as,\n router: this\n });\n return new Promise(()=>{});\n }\n const isMiddlewareRewrite = !!(parsedAsPathname && route !== parsedAsPathname && (!(0, _isdynamic.isDynamicRoute)(route) || !(0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(route))(parsedAsPathname)));\n // we don't attempt resolve asPath when we need to execute\n // middleware as the resolving will occur server-side\n const isMiddlewareMatch = !options.shallow && await matchesMiddleware({\n asPath: as,\n locale: nextState.locale,\n router: this\n });\n if (isQueryUpdating && isMiddlewareMatch) {\n shouldResolveHref = false;\n }\n if (shouldResolveHref && pathname !== '/_error') {\n ;\n options._shouldResolveHref = true;\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(pathname, pages);\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = (0, _addbasepath.addBasePath)(pathname);\n if (!isMiddlewareMatch) {\n url = (0, _formaturl.formatWithValidation)(parsed);\n }\n }\n }\n }\n if (!(0, _islocalurl.isLocalURL)(as)) {\n if (true) {\n throw new Error('Invalid href: \"' + url + '\" and as: \"' + as + '\", received relative href and external as' + \"\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as\");\n }\n handleHardNavigation({\n url: as,\n router: this\n });\n return false;\n }\n resolvedAs = (0, _removelocale.removeLocale)((0, _removebasepath.removeBasePath)(resolvedAs), nextState.locale);\n route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n let routeMatch = false;\n if ((0, _isdynamic.isDynamicRoute)(route)) {\n const parsedAs = (0, _parserelativeurl.parseRelativeUrl)(resolvedAs);\n const asPathname = parsedAs.pathname;\n const routeRegex = (0, _routeregex.getRouteRegex)(route);\n routeMatch = (0, _routematcher.getRouteMatcher)(routeRegex)(asPathname);\n const shouldInterpolate = route === asPathname;\n const interpolatedAs = shouldInterpolate ? (0, _interpolateas.interpolateAs)(route, asPathname, query) : {};\n if (!routeMatch || shouldInterpolate && !interpolatedAs.result) {\n const missingParams = Object.keys(routeRegex.groups).filter((param)=>!query[param] && !routeRegex.groups[param].optional);\n if (missingParams.length > 0 && !isMiddlewareMatch) {\n if (true) {\n console.warn(\"\" + (shouldInterpolate ? \"Interpolating href\" : \"Mismatching `as` and `href`\") + \" failed to manually provide \" + (\"the params: \" + missingParams.join(', ') + \" in the `href`'s `query`\"));\n }\n throw new Error((shouldInterpolate ? \"The provided `href` (\" + url + \") value is missing query values (\" + missingParams.join(', ') + \") to be interpolated properly. \" : \"The provided `as` value (\" + asPathname + \") is incompatible with the `href` value (\" + route + \"). \") + (\"Read more: https://nextjs.org/docs/messages/\" + (shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as')));\n }\n } else if (shouldInterpolate) {\n as = (0, _formaturl.formatWithValidation)(Object.assign({}, parsedAs, {\n pathname: interpolatedAs.result,\n query: (0, _omit.omit)(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n }\n if (!isQueryUpdating) {\n Router.events.emit('routeChangeStart', as, routeProps);\n }\n const isErrorRoute = this.pathname === '/404' || this.pathname === '/_error';\n try {\n var _self___NEXT_DATA___props_pageProps, _self___NEXT_DATA___props, _routeInfo_props;\n let routeInfo = await this.getRouteInfo({\n route,\n pathname,\n query,\n as,\n resolvedAs,\n routeProps,\n locale: nextState.locale,\n isPreview: nextState.isPreview,\n hasMiddleware: isMiddlewareMatch,\n unstable_skipClientCache: options.unstable_skipClientCache,\n isQueryUpdating: isQueryUpdating && !this.isFallback,\n isMiddlewareRewrite\n });\n if (!isQueryUpdating && !options.shallow) {\n await this._bfl(as, 'resolvedAs' in routeInfo ? routeInfo.resolvedAs : undefined, nextState.locale);\n }\n if ('route' in routeInfo && isMiddlewareMatch) {\n pathname = routeInfo.route || route;\n route = pathname;\n if (!routeProps.shallow) {\n query = Object.assign({}, routeInfo.query || {}, query);\n }\n const cleanedParsedPathname = (0, _hasbasepath.hasBasePath)(parsed.pathname) ? (0, _removebasepath.removeBasePath)(parsed.pathname) : parsed.pathname;\n if (routeMatch && pathname !== cleanedParsedPathname) {\n Object.keys(routeMatch).forEach((key)=>{\n if (routeMatch && query[key] === routeMatch[key]) {\n delete query[key];\n }\n });\n }\n if ((0, _isdynamic.isDynamicRoute)(pathname)) {\n const prefixedAs = !routeProps.shallow && routeInfo.resolvedAs ? routeInfo.resolvedAs : (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(new URL(as, location.href).pathname, nextState.locale), true);\n let rewriteAs = prefixedAs;\n if ((0, _hasbasepath.hasBasePath)(rewriteAs)) {\n rewriteAs = (0, _removebasepath.removeBasePath)(rewriteAs);\n }\n if (false) {}\n const routeRegex = (0, _routeregex.getRouteRegex)(pathname);\n const curRouteMatch = (0, _routematcher.getRouteMatcher)(routeRegex)(new URL(rewriteAs, location.href).pathname);\n if (curRouteMatch) {\n Object.assign(query, curRouteMatch);\n }\n }\n }\n // If the routeInfo brings a redirect we simply apply it.\n if ('type' in routeInfo) {\n if (routeInfo.type === 'redirect-internal') {\n return this.change(method, routeInfo.newUrl, routeInfo.newAs, options);\n } else {\n handleHardNavigation({\n url: routeInfo.destination,\n router: this\n });\n return new Promise(()=>{});\n }\n }\n const component = routeInfo.Component;\n if (component && component.unstable_scriptLoader) {\n const scripts = [].concat(component.unstable_scriptLoader());\n scripts.forEach((script)=>{\n (0, _script.handleClientScriptLoad)(script.props);\n });\n }\n // handle redirect on client-transition\n if ((routeInfo.__N_SSG || routeInfo.__N_SSP) && routeInfo.props) {\n if (routeInfo.props.pageProps && routeInfo.props.pageProps.__N_REDIRECT) {\n // Use the destination from redirect without adding locale\n options.locale = false;\n const destination = routeInfo.props.pageProps.__N_REDIRECT;\n // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n if (destination.startsWith('/') && routeInfo.props.pageProps.__N_REDIRECT_BASE_PATH !== false) {\n const parsedHref = (0, _parserelativeurl.parseRelativeUrl)(destination);\n parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages);\n const { url: newUrl, as: newAs } = prepareUrlAs(this, destination, destination);\n return this.change(method, newUrl, newAs, options);\n }\n handleHardNavigation({\n url: destination,\n router: this\n });\n return new Promise(()=>{});\n }\n nextState.isPreview = !!routeInfo.props.__N_PREVIEW;\n // handle SSG data 404\n if (routeInfo.props.notFound === SSG_DATA_NOT_FOUND) {\n let notFoundRoute;\n try {\n await this.fetchComponent('/404');\n notFoundRoute = '/404';\n } catch (_) {\n notFoundRoute = '/_error';\n }\n routeInfo = await this.getRouteInfo({\n route: notFoundRoute,\n pathname: notFoundRoute,\n query,\n as,\n resolvedAs,\n routeProps: {\n shallow: false\n },\n locale: nextState.locale,\n isPreview: nextState.isPreview,\n isNotFound: true\n });\n if ('type' in routeInfo) {\n throw new Error(\"Unexpected middleware effect on /404\");\n }\n }\n }\n if (isQueryUpdating && this.pathname === '/_error' && ((_self___NEXT_DATA___props = self.__NEXT_DATA__.props) == null ? void 0 : (_self___NEXT_DATA___props_pageProps = _self___NEXT_DATA___props.pageProps) == null ? void 0 : _self___NEXT_DATA___props_pageProps.statusCode) === 500 && ((_routeInfo_props = routeInfo.props) == null ? void 0 : _routeInfo_props.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n routeInfo.props.pageProps.statusCode = 500;\n }\n var _routeInfo_route;\n // shallow routing is only allowed for same page URL changes.\n const isValidShallowRoute = options.shallow && nextState.route === ((_routeInfo_route = routeInfo.route) != null ? _routeInfo_route : route);\n var _options_scroll;\n const shouldScroll = (_options_scroll = options.scroll) != null ? _options_scroll : !isQueryUpdating && !isValidShallowRoute;\n const resetScroll = shouldScroll ? {\n x: 0,\n y: 0\n } : null;\n const upcomingScrollState = forcedScroll != null ? forcedScroll : resetScroll;\n // the new state that the router gonna set\n const upcomingRouterState = {\n ...nextState,\n route,\n pathname,\n query,\n asPath: cleanedAs,\n isFallback: false\n };\n // When the page being rendered is the 404 page, we should only update the\n // query parameters. Route changes here might add the basePath when it\n // wasn't originally present. This is also why this block is before the\n // below `changeState` call which updates the browser's history (changing\n // the URL).\n if (isQueryUpdating && isErrorRoute) {\n var _self___NEXT_DATA___props_pageProps1, _self___NEXT_DATA___props1, _routeInfo_props1;\n routeInfo = await this.getRouteInfo({\n route: this.pathname,\n pathname: this.pathname,\n query,\n as,\n resolvedAs,\n routeProps: {\n shallow: false\n },\n locale: nextState.locale,\n isPreview: nextState.isPreview,\n isQueryUpdating: isQueryUpdating && !this.isFallback\n });\n if ('type' in routeInfo) {\n throw new Error(\"Unexpected middleware effect on \" + this.pathname);\n }\n if (this.pathname === '/_error' && ((_self___NEXT_DATA___props1 = self.__NEXT_DATA__.props) == null ? void 0 : (_self___NEXT_DATA___props_pageProps1 = _self___NEXT_DATA___props1.pageProps) == null ? void 0 : _self___NEXT_DATA___props_pageProps1.statusCode) === 500 && ((_routeInfo_props1 = routeInfo.props) == null ? void 0 : _routeInfo_props1.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n routeInfo.props.pageProps.statusCode = 500;\n }\n try {\n await this.set(upcomingRouterState, routeInfo, upcomingScrollState);\n } catch (err) {\n if ((0, _iserror.default)(err) && err.cancelled) {\n Router.events.emit('routeChangeError', err, cleanedAs, routeProps);\n }\n throw err;\n }\n return true;\n }\n Router.events.emit('beforeHistoryChange', as, routeProps);\n this.changeState(method, url, as, options);\n // for query updates we can skip it if the state is unchanged and we don't\n // need to scroll\n // https://github.com/vercel/next.js/issues/37139\n const canSkipUpdating = isQueryUpdating && !upcomingScrollState && !readyStateChange && !localeChange && (0, _comparestates.compareRouterStates)(upcomingRouterState, this.state);\n if (!canSkipUpdating) {\n try {\n await this.set(upcomingRouterState, routeInfo, upcomingScrollState);\n } catch (e) {\n if (e.cancelled) routeInfo.error = routeInfo.error || e;\n else throw e;\n }\n if (routeInfo.error) {\n if (!isQueryUpdating) {\n Router.events.emit('routeChangeError', routeInfo.error, cleanedAs, routeProps);\n }\n throw routeInfo.error;\n }\n if (false) {}\n if (!isQueryUpdating) {\n Router.events.emit('routeChangeComplete', as, routeProps);\n }\n // A hash mark # is the optional last part of a URL\n const hashRegex = /#.+$/;\n if (shouldScroll && hashRegex.test(as)) {\n this.scrollToHash(as);\n }\n }\n return true;\n } catch (err) {\n if ((0, _iserror.default)(err) && err.cancelled) {\n return false;\n }\n throw err;\n }\n }\n changeState(method, url, as, options) {\n if (options === void 0) options = {};\n if (true) {\n if (typeof window.history === 'undefined') {\n console.error(\"Warning: window.history is not available.\");\n return;\n }\n if (typeof window.history[method] === 'undefined') {\n console.error(\"Warning: window.history.\" + method + \" is not available\");\n return;\n }\n }\n if (method !== 'pushState' || (0, _utils.getURL)() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url,\n as,\n options,\n __N: true,\n key: this._key = method !== 'pushState' ? this._key : createKey()\n }, // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/docs/Web/API/History/replaceState\n '', as);\n }\n }\n async handleRouteInfoError(err, pathname, query, as, routeProps, loadErrorFail) {\n if (err.cancelled) {\n // bubble up cancellation errors\n throw err;\n }\n if ((0, _routeloader.isAssetError)(err) || loadErrorFail) {\n Router.events.emit('routeChangeError', err, as, routeProps);\n // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n handleHardNavigation({\n url: as,\n router: this\n });\n // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n throw buildCancellationError();\n }\n console.error(err);\n try {\n let props;\n const { page: Component, styleSheets } = await this.fetchComponent('/_error');\n const routeInfo = {\n props,\n Component,\n styleSheets,\n err,\n error: err\n };\n if (!routeInfo.props) {\n try {\n routeInfo.props = await this.getInitialProps(Component, {\n err,\n pathname,\n query\n });\n } catch (gipErr) {\n console.error('Error in error page `getInitialProps`: ', gipErr);\n routeInfo.props = {};\n }\n }\n return routeInfo;\n } catch (routeInfoErr) {\n return this.handleRouteInfoError((0, _iserror.default)(routeInfoErr) ? routeInfoErr : new Error(routeInfoErr + ''), pathname, query, as, routeProps, true);\n }\n }\n async getRouteInfo(param) {\n let { route: requestedRoute, pathname, query, as, resolvedAs, routeProps, locale, hasMiddleware, isPreview, unstable_skipClientCache, isQueryUpdating, isMiddlewareRewrite, isNotFound } = param;\n /**\n * This `route` binding can change if there's a rewrite\n * so we keep a reference to the original requested route\n * so we can store the cache for it and avoid re-requesting every time\n * for shallow routing purposes.\n */ let route = requestedRoute;\n try {\n var _data_effect, _data_effect1, _data_effect2, _data_response;\n let existingInfo = this.components[route];\n if (routeProps.shallow && existingInfo && this.route === route) {\n return existingInfo;\n }\n const handleCancelled = getCancelledHandler({\n route,\n router: this\n });\n if (hasMiddleware) {\n existingInfo = undefined;\n }\n let cachedRouteInfo = existingInfo && !('initial' in existingInfo) && \"development\" !== 'development' ? 0 : undefined;\n const isBackground = isQueryUpdating;\n const fetchNextDataParams = {\n dataHref: this.pageLoader.getDataHref({\n href: (0, _formaturl.formatWithValidation)({\n pathname,\n query\n }),\n skipInterpolation: true,\n asPath: isNotFound ? '/404' : resolvedAs,\n locale\n }),\n hasMiddleware: true,\n isServerRender: this.isSsr,\n parseJSON: true,\n inflightCache: isBackground ? this.sbc : this.sdc,\n persistCache: !isPreview,\n isPrefetch: false,\n unstable_skipClientCache,\n isBackground\n };\n let data = isQueryUpdating && !isMiddlewareRewrite ? null : await withMiddlewareEffects({\n fetchData: ()=>fetchNextData(fetchNextDataParams),\n asPath: isNotFound ? '/404' : resolvedAs,\n locale: locale,\n router: this\n }).catch((err)=>{\n // we don't hard error during query updating\n // as it's un-necessary and doesn't need to be fatal\n // unless it is a fallback route and the props can't\n // be loaded\n if (isQueryUpdating) {\n return null;\n }\n throw err;\n });\n // when rendering error routes we don't apply middleware\n // effects\n if (data && (pathname === '/_error' || pathname === '/404')) {\n data.effect = undefined;\n }\n if (isQueryUpdating) {\n if (!data) {\n data = {\n json: self.__NEXT_DATA__.props\n };\n } else {\n data.json = self.__NEXT_DATA__.props;\n }\n }\n handleCancelled();\n if ((data == null ? void 0 : (_data_effect = data.effect) == null ? void 0 : _data_effect.type) === 'redirect-internal' || (data == null ? void 0 : (_data_effect1 = data.effect) == null ? void 0 : _data_effect1.type) === 'redirect-external') {\n return data.effect;\n }\n if ((data == null ? void 0 : (_data_effect2 = data.effect) == null ? void 0 : _data_effect2.type) === 'rewrite') {\n const resolvedRoute = (0, _removetrailingslash.removeTrailingSlash)(data.effect.resolvedHref);\n const pages = await this.pageLoader.getPageList();\n // during query updating the page must match although during\n // client-transition a redirect that doesn't match a page\n // can be returned and this should trigger a hard navigation\n // which is valid for incremental migration\n if (!isQueryUpdating || pages.includes(resolvedRoute)) {\n route = resolvedRoute;\n pathname = data.effect.resolvedHref;\n query = {\n ...query,\n ...data.effect.parsedAs.query\n };\n resolvedAs = (0, _removebasepath.removeBasePath)((0, _normalizelocalepath.normalizeLocalePath)(data.effect.parsedAs.pathname, this.locales).pathname);\n // Check again the cache with the new destination.\n existingInfo = this.components[route];\n if (routeProps.shallow && existingInfo && this.route === route && !hasMiddleware) {\n // If we have a match with the current route due to rewrite,\n // we can copy the existing information to the rewritten one.\n // Then, we return the information along with the matched route.\n return {\n ...existingInfo,\n route\n };\n }\n }\n }\n if ((0, _isapiroute.isAPIRoute)(route)) {\n handleHardNavigation({\n url: as,\n router: this\n });\n return new Promise(()=>{});\n }\n const routeInfo = cachedRouteInfo || await this.fetchComponent(route).then((res)=>({\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP\n }));\n if (true) {\n const { isValidElementType } = __webpack_require__(/*! next/dist/compiled/react-is */ \"./node_modules/next/dist/compiled/react-is/index.js\");\n if (!isValidElementType(routeInfo.Component)) {\n throw new Error('The default export is not a React Component in page: \"' + pathname + '\"');\n }\n }\n const wasBailedPrefetch = data == null ? void 0 : (_data_response = data.response) == null ? void 0 : _data_response.headers.get('x-middleware-skip');\n const shouldFetchData = routeInfo.__N_SSG || routeInfo.__N_SSP;\n // For non-SSG prefetches that bailed before sending data\n // we clear the cache to fetch full response\n if (wasBailedPrefetch && (data == null ? void 0 : data.dataHref)) {\n delete this.sdc[data.dataHref];\n }\n const { props, cacheKey } = await this._getData(async ()=>{\n if (shouldFetchData) {\n if ((data == null ? void 0 : data.json) && !wasBailedPrefetch) {\n return {\n cacheKey: data.cacheKey,\n props: data.json\n };\n }\n const dataHref = (data == null ? void 0 : data.dataHref) ? data.dataHref : this.pageLoader.getDataHref({\n href: (0, _formaturl.formatWithValidation)({\n pathname,\n query\n }),\n asPath: resolvedAs,\n locale\n });\n const fetched = await fetchNextData({\n dataHref,\n isServerRender: this.isSsr,\n parseJSON: true,\n inflightCache: wasBailedPrefetch ? {} : this.sdc,\n persistCache: !isPreview,\n isPrefetch: false,\n unstable_skipClientCache\n });\n return {\n cacheKey: fetched.cacheKey,\n props: fetched.json || {}\n };\n }\n return {\n headers: {},\n props: await this.getInitialProps(routeInfo.Component, {\n pathname,\n query,\n asPath: as,\n locale,\n locales: this.locales,\n defaultLocale: this.defaultLocale\n })\n };\n });\n // Only bust the data cache for SSP routes although\n // middleware can skip cache per request with\n // x-middleware-cache: no-cache as well\n if (routeInfo.__N_SSP && fetchNextDataParams.dataHref && cacheKey) {\n delete this.sdc[cacheKey];\n }\n // we kick off a HEAD request in the background\n // when a non-prefetch request is made to signal revalidation\n if (!this.isPreview && routeInfo.__N_SSG && \"development\" !== 'development' && 0) {}\n props.pageProps = Object.assign({}, props.pageProps);\n routeInfo.props = props;\n routeInfo.route = route;\n routeInfo.query = query;\n routeInfo.resolvedAs = resolvedAs;\n this.components[route] = routeInfo;\n return routeInfo;\n } catch (err) {\n return this.handleRouteInfoError((0, _iserror.getProperError)(err), pathname, query, as, routeProps);\n }\n }\n set(state, data, resetScroll) {\n this.state = state;\n return this.sub(data, this.components['/_app'].Component, resetScroll);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */ beforePopState(cb) {\n this._bps = cb;\n }\n onlyAHashChange(as) {\n if (!this.asPath) return false;\n const [oldUrlNoHash, oldHash] = this.asPath.split('#', 2);\n const [newUrlNoHash, newHash] = as.split('#', 2);\n // Makes sure we scroll to the provided hash if the url/hash are the same\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n }\n // If the urls are change, there's more than a hash change\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n }\n // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n return oldHash !== newHash;\n }\n scrollToHash(as) {\n const [, hash = ''] = as.split('#', 2);\n (0, _handlesmoothscroll.handleSmoothScroll)(()=>{\n // Scroll to top if the hash is just `#` with no value or `#top`\n // To mirror browsers\n if (hash === '' || hash === 'top') {\n window.scrollTo(0, 0);\n return;\n }\n // Decode hash to make non-latin anchor works.\n const rawHash = decodeURIComponent(hash);\n // First we check if the element by id is found\n const idEl = document.getElementById(rawHash);\n if (idEl) {\n idEl.scrollIntoView();\n return;\n }\n // If there's no element with the id, we check the `name` property\n // To mirror browsers\n const nameEl = document.getElementsByName(rawHash)[0];\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }, {\n onlyHashChange: this.onlyAHashChange(as)\n });\n }\n urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */ async prefetch(url, asPath, options) {\n if (asPath === void 0) asPath = url;\n if (options === void 0) options = {};\n // Prefetch is not supported in development mode because it would trigger on-demand-entries\n if (true) {\n return;\n }\n if ( true && (0, _isbot.isBot)(window.navigator.userAgent)) {\n // No prefetches for bots that render the link since they are typically navigating\n // links via the equivalent of a hard navigation and hence never utilize these\n // prefetches.\n return;\n }\n let parsed = (0, _parserelativeurl.parseRelativeUrl)(url);\n const urlPathname = parsed.pathname;\n let { pathname, query } = parsed;\n const originalPathname = pathname;\n if (false) {}\n const pages = await this.pageLoader.getPageList();\n let resolvedAs = asPath;\n const locale = typeof options.locale !== 'undefined' ? options.locale || undefined : this.locale;\n const isMiddlewareMatch = await matchesMiddleware({\n asPath: asPath,\n locale: locale,\n router: this\n });\n if (false) {}\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages);\n if ((0, _isdynamic.isDynamicRoute)(parsed.pathname)) {\n pathname = parsed.pathname;\n parsed.pathname = pathname;\n Object.assign(query, (0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(parsed.pathname))((0, _parsepath.parsePath)(asPath).pathname) || {});\n if (!isMiddlewareMatch) {\n url = (0, _formaturl.formatWithValidation)(parsed);\n }\n }\n const data = false ? 0 : await withMiddlewareEffects({\n fetchData: ()=>fetchNextData({\n dataHref: this.pageLoader.getDataHref({\n href: (0, _formaturl.formatWithValidation)({\n pathname: originalPathname,\n query\n }),\n skipInterpolation: true,\n asPath: resolvedAs,\n locale\n }),\n hasMiddleware: true,\n isServerRender: false,\n parseJSON: true,\n inflightCache: this.sdc,\n persistCache: !this.isPreview,\n isPrefetch: true\n }),\n asPath: asPath,\n locale: locale,\n router: this\n });\n /**\n * If there was a rewrite we apply the effects of the rewrite on the\n * current parameters for the prefetch.\n */ if ((data == null ? void 0 : data.effect.type) === 'rewrite') {\n parsed.pathname = data.effect.resolvedHref;\n pathname = data.effect.resolvedHref;\n query = {\n ...query,\n ...data.effect.parsedAs.query\n };\n resolvedAs = data.effect.parsedAs.pathname;\n url = (0, _formaturl.formatWithValidation)(parsed);\n }\n /**\n * If there is a redirect to an external destination then we don't have\n * to prefetch content as it will be unused.\n */ if ((data == null ? void 0 : data.effect.type) === 'redirect-external') {\n return;\n }\n const route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n if (await this._bfl(asPath, resolvedAs, options.locale, true)) {\n this.components[urlPathname] = {\n __appRouter: true\n };\n }\n await Promise.all([\n this.pageLoader._isSsg(route).then((isSsg)=>{\n return isSsg ? fetchNextData({\n dataHref: (data == null ? void 0 : data.json) ? data == null ? void 0 : data.dataHref : this.pageLoader.getDataHref({\n href: url,\n asPath: resolvedAs,\n locale: locale\n }),\n isServerRender: false,\n parseJSON: true,\n inflightCache: this.sdc,\n persistCache: !this.isPreview,\n isPrefetch: true,\n unstable_skipClientCache: options.unstable_skipClientCache || options.priority && !!true\n }).then(()=>false).catch(()=>false) : false;\n }),\n this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route)\n ]);\n }\n async fetchComponent(route) {\n const handleCancelled = getCancelledHandler({\n route,\n router: this\n });\n try {\n const componentResult = await this.pageLoader.loadPage(route);\n handleCancelled();\n return componentResult;\n } catch (err) {\n handleCancelled();\n throw err;\n }\n }\n _getData(fn) {\n let cancelled = false;\n const cancel = ()=>{\n cancelled = true;\n };\n this.clc = cancel;\n return fn().then((data)=>{\n if (cancel === this.clc) {\n this.clc = null;\n }\n if (cancelled) {\n const err = new Error('Loading initial props cancelled');\n err.cancelled = true;\n throw err;\n }\n return data;\n });\n }\n getInitialProps(Component, ctx) {\n const { Component: App } = this.components['/_app'];\n const AppTree = this._wrapApp(App);\n ctx.AppTree = AppTree;\n return (0, _utils.loadGetInitialProps)(App, {\n AppTree,\n Component,\n router: this,\n ctx\n });\n }\n get route() {\n return this.state.route;\n }\n get pathname() {\n return this.state.pathname;\n }\n get query() {\n return this.state.query;\n }\n get asPath() {\n return this.state.asPath;\n }\n get locale() {\n return this.state.locale;\n }\n get isFallback() {\n return this.state.isFallback;\n }\n get isPreview() {\n return this.state.isPreview;\n }\n constructor(pathname, query, as, { initialProps, pageLoader, App, wrapApp, Component, err, subscription, isFallback, locale, locales, defaultLocale, domainLocales, isPreview }){\n // Server Data Cache (full data requests)\n this.sdc = {};\n // Server Background Cache (HEAD requests)\n this.sbc = {};\n this.isFirstPopStateEvent = true;\n this._key = createKey();\n this.onPopState = (e)=>{\n const { isFirstPopStateEvent } = this;\n this.isFirstPopStateEvent = false;\n const state = e.state;\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n const { pathname, query } = this;\n this.changeState('replaceState', (0, _formaturl.formatWithValidation)({\n pathname: (0, _addbasepath.addBasePath)(pathname),\n query\n }), (0, _utils.getURL)());\n return;\n }\n // __NA is used to identify if the history entry can be handled by the app-router.\n if (state.__NA) {\n window.location.reload();\n return;\n }\n if (!state.__N) {\n return;\n }\n // Safari fires popstateevent when reopening the browser.\n if (isFirstPopStateEvent && this.locale === state.options.locale && state.as === this.asPath) {\n return;\n }\n let forcedScroll;\n const { url, as, options, key } = state;\n if (false) {}\n this._key = key;\n const { pathname } = (0, _parserelativeurl.parseRelativeUrl)(url);\n // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n if (this.isSsr && as === (0, _addbasepath.addBasePath)(this.asPath) && pathname === (0, _addbasepath.addBasePath)(this.pathname)) {\n return;\n }\n // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n if (this._bps && !this._bps(state)) {\n return;\n }\n this.change('replaceState', url, as, Object.assign({}, options, {\n shallow: options.shallow && this._shallow,\n locale: options.locale || this.defaultLocale,\n // @ts-ignore internal value not exposed on types\n _h: 0\n }), forcedScroll);\n };\n // represents the current component key\n const route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n // set up the component cache (by route keys)\n this.components = {};\n // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n if (pathname !== '/_error') {\n this.components[route] = {\n Component,\n initial: true,\n props: initialProps,\n err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP\n };\n }\n this.components['/_app'] = {\n Component: App,\n styleSheets: []\n };\n // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n this.events = Router.events;\n this.pageLoader = pageLoader;\n // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n const autoExportDynamic = (0, _isdynamic.isDynamicRoute)(pathname) && self.__NEXT_DATA__.autoExport;\n this.basePath = false || '';\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp;\n // make sure to ignore extra popState in safari on navigating\n // back from external site\n this.isSsr = true;\n this.isLocaleDomain = false;\n this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.isExperimentalCompile || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !false);\n if (false) {}\n this.state = {\n route,\n pathname,\n query,\n asPath: autoExportDynamic ? pathname : as,\n isPreview: !!isPreview,\n locale: false ? 0 : undefined,\n isFallback\n };\n this._initialMatchesMiddlewarePromise = Promise.resolve(false);\n if (true) {\n // make sure \"as\" doesn't start with double slashes or else it can\n // throw an error as it's considered invalid\n if (!as.startsWith('//')) {\n // in order for `e.state` to work on the `onpopstate` event\n // we have to register the initial route upon initialization\n const options = {\n locale\n };\n const asPath = (0, _utils.getURL)();\n this._initialMatchesMiddlewarePromise = matchesMiddleware({\n router: this,\n locale,\n asPath\n }).then((matches)=>{\n // if middleware matches we leave resolving to the change function\n // as the server needs to resolve for correct priority\n ;\n options._shouldResolveHref = as !== pathname;\n this.changeState('replaceState', matches ? asPath : (0, _formaturl.formatWithValidation)({\n pathname: (0, _addbasepath.addBasePath)(pathname),\n query\n }), asPath, options);\n return matches;\n });\n }\n window.addEventListener('popstate', this.onPopState);\n // enable custom scroll restoration handling when available\n // otherwise fallback to browser's default handling\n if (false) {}\n }\n }\n}\nRouter.events = (0, _mitt.default)(); //# sourceMappingURL=router.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3JvdXRlci5qcyIsIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7Ozs7Ozs7Ozs7Ozs7SUFxbUJaQSxTQUFTO2VBQVRBOzs7ZUFpREtDOztJQTNqQkNDLGlCQUFpQjtlQUFqQkE7Ozs7O2lEQWpGYzt5Q0FLN0I7b0NBQ2dDOytFQUNDO2lEQUNKO2lEQUNBOzJFQUNuQjttQ0FDa0Q7dUNBQ3BDOzhDQUNFO3NGQUNMOzBDQUNJO3dDQUNGO3VDQUNPO2dEQUNGO3VDQUNUO3VDQUNBOzBDQUNHOzRDQUNFO3lDQUNIO3lDQUNBO3lDQUNBO3dDQUNEO2lEQUNTO29EQUNHOzJDQUNIO3dDQUNUO21DQUNMO2tDQUNEOzJDQUNTO2dEQUNLO3VDQUVDO0FBZ0NwQyxTQUFTQztJQUNQLE9BQU9DLE9BQU9DLE1BQU0sQ0FBQyxJQUFJQyxNQUFNLG9CQUFvQjtRQUNqREMsV0FBVztJQUNiO0FBQ0Y7QUFTTyxlQUFlTCxrQkFDcEJNLE9BQWtDO0lBRWxDLE1BQU1DLFdBQVcsTUFBTUMsUUFBUUMsT0FBTyxDQUNwQ0gsUUFBUUksTUFBTSxDQUFDQyxVQUFVLENBQUNDLGFBQWE7SUFFekMsSUFBSSxDQUFDTCxVQUFVLE9BQU87SUFFdEIsTUFBTSxFQUFFTSxVQUFVQyxVQUFVLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBUyxFQUFDVCxRQUFRVSxNQUFNO0lBQ3pELDZGQUE2RjtJQUM3RixNQUFNQyxZQUFZQyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZSixjQUMxQkssQ0FBQUEsR0FBQUEsZ0JBQUFBLGNBQUFBLEVBQWVMLGNBQ2ZBO0lBQ0osTUFBTU0sMEJBQTBCQyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUM5QkMsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBQUEsRUFBVUwsV0FBV1gsUUFBUWlCLE1BQU07SUFHckMsMkVBQTJFO0lBQzNFLHVFQUF1RTtJQUN2RSxPQUFPaEIsU0FBU2lCLElBQUksQ0FBQyxDQUFDQyxJQUNwQixJQUFJQyxPQUFPRCxFQUFFRSxNQUFNLEVBQUVDLElBQUksQ0FBQ1I7QUFFOUI7QUFFQSxTQUFTUyxZQUFZQyxHQUFXO0lBQzlCLE1BQU1DLFNBQVNDLENBQUFBLEdBQUFBLE9BQUFBLGlCQUFBQTtJQUVmLE9BQU9GLElBQUlHLFVBQVUsQ0FBQ0YsVUFBVUQsSUFBSUksU0FBUyxDQUFDSCxPQUFPSSxNQUFNLElBQUlMO0FBQ2pFO0FBRUEsU0FBU00sYUFBYTFCLE1BQWtCLEVBQUVvQixHQUFRLEVBQUVPLEVBQVE7SUFDMUQsc0RBQXNEO0lBQ3RELGtEQUFrRDtJQUNsRCxJQUFJLENBQUNDLGNBQWNDLFdBQVcsR0FBR0MsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWTlCLFFBQVFvQixLQUFLO0lBQzFELE1BQU1DLFNBQVNDLENBQUFBLEdBQUFBLE9BQUFBLGlCQUFBQTtJQUNmLE1BQU1TLGtCQUFrQkgsYUFBYUwsVUFBVSxDQUFDRjtJQUNoRCxNQUFNVyxnQkFBZ0JILGNBQWNBLFdBQVdOLFVBQVUsQ0FBQ0Y7SUFFMURPLGVBQWVULFlBQVlTO0lBQzNCQyxhQUFhQSxhQUFhVixZQUFZVSxjQUFjQTtJQUVwRCxNQUFNSSxjQUFjRixrQkFBa0JILGVBQWVqQixDQUFBQSxHQUFBQSxhQUFBQSxXQUFXLEVBQUNpQjtJQUNqRSxNQUFNTSxhQUFhUCxLQUNmUixZQUFZVyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZOUIsUUFBUTJCLE9BQ2hDRSxjQUFjRDtJQUVsQixPQUFPO1FBQ0xSLEtBQUthO1FBQ0xOLElBQUlLLGdCQUFnQkUsYUFBYXZCLENBQUFBLEdBQUFBLGFBQUFBLFdBQVcsRUFBQ3VCO0lBQy9DO0FBQ0Y7QUFFQSxTQUFTQyxvQkFBb0JoQyxRQUFnQixFQUFFaUMsS0FBZTtJQUM1RCxNQUFNQyxnQkFBZ0JDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JwQztJQUM5RCxJQUFJa0Msa0JBQWtCLFVBQVVBLGtCQUFrQixXQUFXO1FBQzNELE9BQU9sQztJQUNUO0lBRUEsMkNBQTJDO0lBQzNDLElBQUksQ0FBQ2lDLE1BQU1JLFFBQVEsQ0FBQ0gsZ0JBQWdCO1FBQ2xDLGlEQUFpRDtRQUNqREQsTUFBTXRCLElBQUksQ0FBQyxDQUFDMkI7WUFDVixJQUFJQyxDQUFBQSxHQUFBQSxXQUFBQSxjQUFBQSxFQUFlRCxTQUFTRSxDQUFBQSxHQUFBQSxZQUFBQSxhQUFBQSxFQUFjRixNQUFNRyxFQUFFLENBQUMxQixJQUFJLENBQUNtQixnQkFBZ0I7Z0JBQ3RFbEMsV0FBV3NDO2dCQUNYLE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFDQSxPQUFPSCxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQW1CLEVBQUNuQztBQUM3QjtBQUVBLFNBQVMwQyxrQkFDUEMsTUFBYyxFQUNkQyxRQUFrQixFQUNsQm5ELE9BQWtDO0lBRWxDLE1BQU1vRCxhQUFhO1FBQ2pCQyxVQUFVckQsUUFBUUksTUFBTSxDQUFDaUQsUUFBUTtRQUNqQ0MsTUFBTTtZQUFFQyxTQUFTdkQsUUFBUUksTUFBTSxDQUFDbUQsT0FBTztRQUFDO1FBQ3hDQyxlQUFlQyxRQUFRQyxLQUFpQztJQUMxRDtJQUNBLE1BQU1HLGdCQUFnQlYsU0FBU1csT0FBTyxDQUFDQyxHQUFHLENBQUM7SUFFM0MsSUFBSUMsZ0JBQ0ZILGlCQUFpQlYsU0FBU1csT0FBTyxDQUFDQyxHQUFHLENBQUM7SUFFeEMsTUFBTUUsY0FBY2QsU0FBU1csT0FBTyxDQUFDQyxHQUFHLENBQUNHLFdBQUFBLG1CQUFtQjtJQUU1RCxJQUNFRCxlQUNBLENBQUNELGlCQUNELENBQUNDLFlBQVlyQixRQUFRLENBQUMsMkJBQ3RCLENBQUNxQixZQUFZckIsUUFBUSxDQUFDLGNBQ3RCLENBQUNxQixZQUFZckIsUUFBUSxDQUFDLFNBQ3RCO1FBQ0EsNERBQTREO1FBQzVEb0IsZ0JBQWdCQztJQUNsQjtJQUVBLElBQUlELGVBQWU7UUFDakIsSUFDRUEsY0FBY3JDLFVBQVUsQ0FBQyxRQUN6QitCLEtBQXNELEVBQ3REO1lBQ0EsTUFBTVUsc0JBQXNCQyxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCTDtZQUM3QyxNQUFNTSxlQUFlQyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQW1CLEVBQUNILG9CQUFvQjdELFFBQVEsRUFBRTtnQkFDckU2QztnQkFDQW9CLFdBQVc7WUFDYjtZQUVBLElBQUlDLGFBQWEvQixDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CNEIsYUFBYS9ELFFBQVE7WUFDMUQsT0FBT0wsUUFBUXdFLEdBQUcsQ0FBQztnQkFDakIxRSxRQUFRSSxNQUFNLENBQUNDLFVBQVUsQ0FBQ3NFLFdBQVc7Z0JBQ3JDQyxDQUFBQSxHQUFBQSxhQUFBQSxzQkFBQUE7YUFDRCxFQUFFQyxJQUFJLENBQUM7b0JBQUMsQ0FBQ3JDLE9BQU8sRUFBRXNDLFlBQVlDLFFBQVEsRUFBRSxDQUFNO2dCQUM3QyxJQUFJaEQsS0FBS2YsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBQUEsRUFBVXNELGFBQWEvRCxRQUFRLEVBQUUrRCxhQUFhckQsTUFBTTtnQkFFN0QsSUFDRTZCLENBQUFBLEdBQUFBLFdBQUFBLGNBQUFBLEVBQWVmLE9BQ2QsQ0FBQzhCLGlCQUNBckIsTUFBTUksUUFBUSxDQUNab0MsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQm5FLENBQUFBLEdBQUFBLGdCQUFBQSxjQUFBQSxFQUFla0IsS0FBSy9CLFFBQVFJLE1BQU0sQ0FBQ21ELE9BQU8sRUFDM0RoRCxRQUFRLEdBRWY7b0JBQ0EsTUFBTTBFLGVBQWVWLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBbUIsRUFDdENGLENBQUFBLEdBQUFBLGtCQUFBQSxnQkFBQUEsRUFBaUJuQixRQUFRM0MsUUFBUSxFQUNqQzt3QkFDRTZDLFlBQVlNLE1BQStCLEdBQ3ZDeUIsQ0FBU0EsR0FDVC9CO3dCQUNKb0IsV0FBVztvQkFDYjtvQkFHRnpDLEtBQUtoQixDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZa0UsYUFBYTFFLFFBQVE7b0JBQ3RDNkQsb0JBQW9CN0QsUUFBUSxHQUFHd0I7Z0JBQ2pDO2dCQUVBLElBQUkyQixLQUErQixFQUFFLEVBZXBDLE1BQU0sSUFBSSxDQUFDbEIsTUFBTUksUUFBUSxDQUFDNkIsYUFBYTtvQkFDdEMsTUFBTWlCLG1CQUFtQm5ELG9CQUFvQmtDLFlBQVlqQztvQkFFekQsSUFBSWtELHFCQUFxQmpCLFlBQVk7d0JBQ25DQSxhQUFhaUI7b0JBQ2Y7Z0JBQ0Y7Z0JBRUEsTUFBTTFELGVBQWUsQ0FBQ1EsTUFBTUksUUFBUSxDQUFDNkIsY0FDakNsQyxvQkFDRXlDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFDRW5FLENBQUFBLEdBQUFBLGdCQUFBQSxjQUFBQSxFQUFldUQsb0JBQW9CN0QsUUFBUSxHQUMzQ1AsUUFBUUksTUFBTSxDQUFDbUQsT0FBTyxFQUN0QmhELFFBQVEsRUFDVmlDLFNBRUZpQztnQkFFSixJQUFJM0IsQ0FBQUEsR0FBQUEsV0FBQUEsY0FBYyxFQUFDZCxlQUFlO29CQUNoQyxNQUFNMkQsVUFBVUMsQ0FBQUEsR0FBQUEsY0FBQUEsZUFBZSxFQUFDN0MsQ0FBQUEsR0FBQUEsWUFBQUEsYUFBQUEsRUFBY2YsZUFBZUQ7b0JBQzdEbkMsT0FBT0MsTUFBTSxDQUFDdUUsb0JBQW9Ca0IsS0FBSyxFQUFFSyxXQUFXLENBQUM7Z0JBQ3ZEO2dCQUVBLE9BQU87b0JBQ0xFLE1BQU07b0JBQ05KLFVBQVVyQjtvQkFDVnBDO2dCQUNGO1lBQ0Y7UUFDRjtRQUNBLE1BQU04RCxNQUFNckYsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBQUEsRUFBVXlDO1FBQ3RCLE1BQU0zQyxXQUFXd0YsQ0FBQUEsR0FBQUEsd0JBQUFBLHNCQUFBQSxFQUF1QjtZQUN0QyxHQUFHeEIsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQnVCLElBQUl2RixRQUFRLEVBQUU7Z0JBQUU2QztnQkFBWW9CLFdBQVc7WUFBSyxFQUFFO1lBQ3JFd0IsZUFBZWhHLFFBQVFJLE1BQU0sQ0FBQzRGLGFBQWE7WUFDM0NDLFNBQVM7UUFDWDtRQUVBLE9BQU8vRixRQUFRQyxPQUFPLENBQUM7WUFDckIwRixNQUFNO1lBQ05LLGFBQWMsS0FBRTNGLFdBQVd1RixJQUFJUixLQUFLLEdBQUdRLElBQUlLLElBQUk7UUFDakQ7SUFDRjtJQUVBLE1BQU1DLGlCQUFpQmpELFNBQVNXLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDO0lBRTVDLElBQUlxQyxnQkFBZ0I7UUFDbEIsSUFBSUEsZUFBZXpFLFVBQVUsQ0FBQyxNQUFNO1lBQ2xDLE1BQU1tRSxNQUFNckYsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBQUEsRUFBVTJGO1lBQ3RCLE1BQU03RixXQUFXd0YsQ0FBQUEsR0FBQUEsd0JBQUFBLHNCQUFBQSxFQUF1QjtnQkFDdEMsR0FBR3hCLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0J1QixJQUFJdkYsUUFBUSxFQUFFO29CQUFFNkM7b0JBQVlvQixXQUFXO2dCQUFLLEVBQUU7Z0JBQ3JFd0IsZUFBZWhHLFFBQVFJLE1BQU0sQ0FBQzRGLGFBQWE7Z0JBQzNDQyxTQUFTO1lBQ1g7WUFFQSxPQUFPL0YsUUFBUUMsT0FBTyxDQUFDO2dCQUNyQjBGLE1BQU07Z0JBQ05RLE9BQVEsS0FBRTlGLFdBQVd1RixJQUFJUixLQUFLLEdBQUdRLElBQUlLLElBQUk7Z0JBQ3pDRyxRQUFTLEtBQUUvRixXQUFXdUYsSUFBSVIsS0FBSyxHQUFHUSxJQUFJSyxJQUFJO1lBQzVDO1FBQ0Y7UUFFQSxPQUFPakcsUUFBUUMsT0FBTyxDQUFDO1lBQ3JCMEYsTUFBTTtZQUNOSyxhQUFhRTtRQUNmO0lBQ0Y7SUFFQSxPQUFPbEcsUUFBUUMsT0FBTyxDQUFDO1FBQUUwRixNQUFNO0lBQWdCO0FBQ2pEO0FBTUEsZUFBZVUsc0JBQ2J2RyxPQUFrQztJQUVsQyxNQUFNMkYsVUFBVSxNQUFNakcsa0JBQWtCTTtJQUN4QyxJQUFJLENBQUMyRixXQUFXLENBQUMzRixRQUFRd0csU0FBUyxFQUFFO1FBQ2xDLE9BQU87SUFDVDtJQUVBLE1BQU1DLE9BQU8sTUFBTXpHLFFBQVF3RyxTQUFTO0lBRXBDLE1BQU1FLFNBQVMsTUFBTXpELGtCQUFrQndELEtBQUtFLFFBQVEsRUFBRUYsS0FBS3RELFFBQVEsRUFBRW5EO0lBRXJFLE9BQU87UUFDTDJHLFVBQVVGLEtBQUtFLFFBQVE7UUFDdkJDLE1BQU1ILEtBQUtHLElBQUk7UUFDZnpELFVBQVVzRCxLQUFLdEQsUUFBUTtRQUN2QjBELE1BQU1KLEtBQUtJLElBQUk7UUFDZkMsVUFBVUwsS0FBS0ssUUFBUTtRQUN2Qko7SUFDRjtBQUNGO0FBeUVBLE1BQU1LLDBCQUNKckQsTUFFcUMsSUFDckMsQ0FNQTtBQUVGLE1BQU04RCxxQkFBcUJDLE9BQU87QUFFbEMsU0FBU0MsV0FDUGxHLEdBQVcsRUFDWG1HLFFBQWdCLEVBQ2hCM0gsT0FBZ0Q7SUFFaEQsT0FBTzRILE1BQU1wRyxLQUFLO1FBQ2hCLHNFQUFzRTtRQUN0RSx5REFBeUQ7UUFDekQsRUFBRTtRQUNGLG9FQUFvRTtRQUNwRSxZQUFZO1FBQ1osbUVBQW1FO1FBQ25FLEVBQUU7UUFDRixpRUFBaUU7UUFDakUsc0VBQXNFO1FBQ3RFLDhDQUE4QztRQUM5QywwQ0FBMEM7UUFDMUNxRyxhQUFhO1FBQ2JDLFFBQVE5SCxRQUFROEgsTUFBTSxJQUFJO1FBQzFCaEUsU0FBU2xFLE9BQU9DLE1BQU0sQ0FBQyxDQUFDLEdBQUdHLFFBQVE4RCxPQUFPLEVBQUU7WUFDMUMsaUJBQWlCO1FBQ25CO0lBQ0YsR0FBR2UsSUFBSSxDQUFDLENBQUMxQjtRQUNQLE9BQU8sQ0FBQ0EsU0FBUzRFLEVBQUUsSUFBSUosV0FBVyxLQUFLeEUsU0FBUzZFLE1BQU0sSUFBSSxNQUN0RE4sV0FBV2xHLEtBQUttRyxXQUFXLEdBQUczSCxXQUM5Qm1EO0lBQ047QUFDRjtBQXNCQSxTQUFTOEUsaUJBQWlCcEIsSUFBWTtJQUNwQyxJQUFJO1FBQ0YsT0FBT3FCLEtBQUtDLEtBQUssQ0FBQ3RCO0lBQ3BCLEVBQUUsT0FBT3VCLE9BQU87UUFDZCxPQUFPO0lBQ1Q7QUFDRjtBQUVBLFNBQVNDLGNBQWMsS0FVRDtJQVZDLE1BQ3JCMUIsUUFBUSxFQUNSMkIsYUFBYSxFQUNiQyxVQUFVLEVBQ1ZDLGFBQWEsRUFDYkMsY0FBYyxFQUNkQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsWUFBWSxFQUNaQyx3QkFBd0IsRUFDSixHQVZDO0lBV3JCLE1BQU0sRUFBRUMsTUFBTWhDLFFBQVEsRUFBRSxHQUFHLElBQUlpQyxJQUFJcEMsVUFBVU0sT0FBTytCLFFBQVEsQ0FBQ0YsSUFBSTtJQUNqRSxNQUFNRyxVQUFVLENBQUNDO1lBT0xBO2VBTlZ4QixXQUFXZixVQUFVOEIsaUJBQWlCLElBQUksR0FBRztZQUMzQzNFLFNBQVNsRSxPQUFPQyxNQUFNLENBQ3BCLENBQUMsR0FDRDBJLGFBQWE7Z0JBQUVZLFNBQVM7WUFBVyxJQUFJLENBQUMsR0FDeENaLGNBQWNDLGdCQUFnQjtnQkFBRSx5QkFBeUI7WUFBSSxJQUFJLENBQUM7WUFFcEVWLFFBQVFvQixrQkFBQUEsVUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsT0FBUXBCLE1BQUFBLEtBQU0sT0FBZG9CLGlCQUFrQjtRQUM1QixHQUNHckUsSUFBSSxDQUFDLENBQUMxQjtZQUNMLElBQUlBLFNBQVM0RSxFQUFFLElBQUltQixDQUFBQSxVQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxPQUFRcEIsTUFBQUEsTUFBVyxRQUFRO2dCQUM1QyxPQUFPO29CQUFFbkI7b0JBQVV4RDtvQkFBVTBELE1BQU07b0JBQUlELE1BQU0sQ0FBQztvQkFBR0U7Z0JBQVM7WUFDNUQ7WUFFQSxPQUFPM0QsU0FBUzBELElBQUksR0FBR2hDLElBQUksQ0FBQyxDQUFDZ0M7Z0JBQzNCLElBQUksQ0FBQzFELFNBQVM0RSxFQUFFLEVBQUU7b0JBQ2hCOzs7OzthQUtDLEdBQ0QsSUFDRVMsaUJBQ0E7d0JBQUM7d0JBQUs7d0JBQUs7d0JBQUs7cUJBQUksQ0FBQzVGLFFBQVEsQ0FBQ08sU0FBUzZFLE1BQU0sR0FDN0M7d0JBQ0EsT0FBTzs0QkFBRXJCOzRCQUFVeEQ7NEJBQVUwRDs0QkFBTUQsTUFBTSxDQUFDOzRCQUFHRTt3QkFBUztvQkFDeEQ7b0JBRUEsSUFBSTNELFNBQVM2RSxNQUFNLEtBQUssS0FBSzs0QkFDdkJDO3dCQUFKLHlCQUFJQSxpQkFBaUJwQixLQUFBQSxLQUFBQSxPQUFBQSxLQUFBQSxJQUFqQm9CLGtCQUF3Qm1CLFFBQVEsRUFBRTs0QkFDcEMsT0FBTztnQ0FDTHpDO2dDQUNBQyxNQUFNO29DQUFFd0MsVUFBVTVCO2dDQUFtQjtnQ0FDckNyRTtnQ0FDQTBEO2dDQUNBQzs0QkFDRjt3QkFDRjtvQkFDRjtvQkFFQSxNQUFNc0IsUUFBUSxJQUFJdEksTUFBTztvQkFFekI7Ozs7YUFJQyxHQUNELElBQUksQ0FBQzJJLGdCQUFnQjt3QkFDbkJZLENBQUFBLEdBQUFBLGFBQUFBLGNBQUFBLEVBQWVqQjtvQkFDakI7b0JBRUEsTUFBTUE7Z0JBQ1I7Z0JBRUEsT0FBTztvQkFDTHpCO29CQUNBQyxNQUFNOEIsWUFBWVQsaUJBQWlCcEIsUUFBUTtvQkFDM0MxRDtvQkFDQTBEO29CQUNBQztnQkFDRjtZQUNGO1FBQ0YsR0FDQ2pDLElBQUksQ0FBQyxDQUFDNEI7WUFDTCxJQUNFLENBQUNrQyxnQkFDRGpGLFFBQVFDLEdBQUcsQ0FBQzJGLE1BQWEsRUFBTCxjQUNwQjdDLENBQThELEVBQzlEO2dCQUNBLE9BQU82QixhQUFhLENBQUN4QixTQUFTO1lBQ2hDO1lBQ0EsT0FBT0w7UUFDVCxHQUNDOEMsS0FBSyxDQUFDLENBQUNDO1lBQ04sSUFBSSxDQUFDWCwwQkFBMEI7Z0JBQzdCLE9BQU9QLGFBQWEsQ0FBQ3hCLFNBQVM7WUFDaEM7WUFDQSxJQUNFLElBQ0kyQyxLQURLLEVBQ0UsS0FBSyxxQkFDaEIsVUFBVTtZQUNWRCxJQUFJQyxPQUFPLEtBQUsscURBQ2hCLFNBQVM7WUFDVEQsSUFBSUMsT0FBTyxLQUFLLGVBQ2hCO2dCQUNBSixDQUFBQSxHQUFBQSxhQUFBQSxjQUFjLEVBQUNHO1lBQ2pCO1lBQ0EsTUFBTUE7UUFDUjs7SUFFSiwrQ0FBK0M7SUFDL0MsZ0RBQWdEO0lBQ2hELDBEQUEwRDtJQUMxRCwyREFBMkQ7SUFDM0QsSUFBSVgsNEJBQTRCRixjQUFjO1FBQzVDLE9BQU9NLFFBQVEsQ0FBQyxHQUFHcEUsSUFBSSxDQUFDLENBQUM0QjtZQUN2QixJQUFJQSxLQUFLdEQsUUFBUSxDQUFDVyxPQUFPLENBQUNDLEdBQUcsQ0FBQywwQkFBMEIsWUFBWTtnQkFDbEUsOENBQThDO2dCQUM5Q3VFLGFBQWEsQ0FBQ3hCLFNBQVMsR0FBRzVHLFFBQVFDLE9BQU8sQ0FBQ3NHO1lBQzVDO1lBRUEsT0FBT0E7UUFDVDtJQUNGO0lBRUEsSUFBSTZCLGFBQWEsQ0FBQ3hCLFNBQVMsS0FBSzNCLFdBQVc7UUFDekMsT0FBT21ELGFBQWEsQ0FBQ3hCLFNBQVM7SUFDaEM7SUFDQSxPQUFRd0IsYUFBYSxDQUFDeEIsU0FBUyxHQUFHbUMsUUFDaENMLGVBQWU7UUFBRWQsUUFBUTtJQUFPLElBQUksQ0FBQztBQUV6QztBQU1PLFNBQVN0STtJQUNkLE9BQU9rSyxLQUFLQyxNQUFNLEdBQUdDLFFBQVEsQ0FBQyxJQUFJQyxLQUFLLENBQUMsR0FBRztBQUM3QztBQUVBLFNBQVNDLHFCQUFxQixLQU03QjtJQU42QixNQUM1QnRJLEdBQUcsRUFDSHBCLE1BQU0sRUFJUCxHQU42QjtJQU81Qix3REFBd0Q7SUFDeEQsa0RBQWtEO0lBQ2xELElBQUlvQixRQUFRVCxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVWixPQUFPTSxNQUFNLEVBQUVOLE9BQU9hLE1BQU0sSUFBSTtRQUNoRSxNQUFNLElBQUluQixNQUNQLDJEQUF3RDBCLE1BQUksTUFBR3dILFNBQVNGLElBQUk7SUFFakY7SUFDQTdCLE9BQU8rQixRQUFRLENBQUNGLElBQUksR0FBR3RIO0FBQ3pCO0FBRUEsTUFBTXVJLHNCQUFzQjtRQUFDLEVBQzNCQyxLQUFLLEVBQ0w1SixNQUFNLEVBSVA7SUFDQyxJQUFJTCxZQUFZO0lBQ2hCLE1BQU1rSyxTQUFVN0osT0FBTzhKLEdBQUcsR0FBRztRQUMzQm5LLFlBQVk7SUFDZDtJQUVBLE1BQU1vSyxrQkFBa0I7UUFDdEIsSUFBSXBLLFdBQVc7WUFDYixNQUFNcUksUUFBYSxJQUFJdEksTUFDcEIsMENBQXVDa0ssUUFBTTtZQUVoRDVCLE1BQU1ySSxTQUFTLEdBQUc7WUFDbEIsTUFBTXFJO1FBQ1I7UUFFQSxJQUFJNkIsV0FBVzdKLE9BQU84SixHQUFHLEVBQUU7WUFDekI5SixPQUFPOEosR0FBRyxHQUFHO1FBQ2Y7SUFDRjtJQUNBLE9BQU9DO0FBQ1Q7QUFFZSxNQUFNMUs7SUErU25CMkssU0FBZTtRQUNibkQsT0FBTytCLFFBQVEsQ0FBQ29CLE1BQU07SUFDeEI7SUFFQTs7R0FFQyxHQUNEQyxPQUFPO1FBQ0xwRCxPQUFPQyxPQUFPLENBQUNtRCxJQUFJO0lBQ3JCO0lBRUE7O0dBRUMsR0FDREMsVUFBVTtRQUNSckQsT0FBT0MsT0FBTyxDQUFDb0QsT0FBTztJQUN4QjtJQUVBOzs7OztHQUtDLEdBQ0RDLEtBQUsvSSxHQUFRLEVBQUVPLEVBQVEsRUFBRS9CLE9BQStCLEVBQUU7UUFBakNBLElBQUFBLFlBQUFBLEtBQUFBLEdBQUFBLFVBQTZCLENBQUM7UUFDckQsSUFBSTBELEtBQXFDLEVBQUUsRUFZMUM7O1NBQ0MsRUFBRWxDLEdBQUcsRUFBRU8sRUFBRSxFQUFFLEdBQUdELGFBQWEsSUFBSSxFQUFFTixLQUFLTyxHQUFBQSxDQUFFO1FBQzFDLE9BQU8sSUFBSSxDQUFDZ0osTUFBTSxDQUFDLGFBQWF2SixLQUFLTyxJQUFJL0I7SUFDM0M7SUFFQTs7Ozs7R0FLQyxHQUNEZ0wsUUFBUXhKLEdBQVEsRUFBRU8sRUFBUSxFQUFFL0IsT0FBK0IsRUFBRTtRQUFqQ0EsSUFBQUEsWUFBQUEsS0FBQUEsR0FBQUEsVUFBNkIsQ0FBQzs7U0FDdEQsRUFBRXdCLEdBQUcsRUFBRU8sRUFBRSxFQUFFLEdBQUdELGFBQWEsSUFBSSxFQUFFTixLQUFLTyxHQUFBQSxDQUFFO1FBQzFDLE9BQU8sSUFBSSxDQUFDZ0osTUFBTSxDQUFDLGdCQUFnQnZKLEtBQUtPLElBQUkvQjtJQUM5QztJQUVBLE1BQU1pTCxLQUNKbEosRUFBVSxFQUNWRSxVQUFtQixFQUNuQmhCLE1BQXVCLEVBQ3ZCaUssWUFBc0IsRUFDdEI7UUFDQSxJQUFJeEgsSUFBK0MsRUFBRTtZQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDMEgsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDQyxNQUFNLEVBQUU7Z0JBQ2hDLE1BQU0sRUFBRUMsV0FBVyxFQUFFLEdBQ25CQyxtQkFBT0EsQ0FBQyxtRkFBd0I7Z0JBS2xDLElBQUlDO2dCQUNKLElBQUlDO2dCQUVKLElBQUk7O3FCQUNBLEVBQ0FDLHNCQUFzQkYsZ0JBQWdCLEVBQ3RDRyx1QkFBdUJGLGlCQUFpQixFQUN6QyxHQUFJLE1BQU03RyxDQUFBQSxHQUFBQSxhQUFBQSxzQkFBQUEsR0FBc0IsQ0FHakM7Z0JBQ0YsRUFBRSxPQUFPNEUsS0FBSztvQkFDWiw4Q0FBOEM7b0JBQzlDLGFBQWE7b0JBQ2JvQyxRQUFReEQsS0FBSyxDQUFDb0I7b0JBQ2QsSUFBSTBCLGNBQWM7d0JBQ2hCLE9BQU87b0JBQ1Q7b0JBQ0FwQixxQkFBcUI7d0JBQ25CdEksS0FBS1QsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBVyxFQUNkQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVZSxJQUFJZCxVQUFVLElBQUksQ0FBQ0EsTUFBTSxFQUFFLElBQUksQ0FBQytFLGFBQWE7d0JBRXpENUYsUUFBUSxJQUFJO29CQUNkO29CQUNBLE9BQU8sSUFBSUYsUUFBUSxLQUFPO2dCQUM1QjtnQkFFQSxNQUFNMkwscUJBQXFDbkksd0pBQ1g7Z0JBRWhDLElBQUksQ0FBQzhILG9CQUFvQkssb0JBQW9CO29CQUMzQ0wsbUJBQW1CSyxxQkFBcUJBLHFCQUFxQjFHO2dCQUMvRDtnQkFFQSxNQUFNNEcscUJBQXFDckksNEVBQ1g7Z0JBRWhDLElBQUksQ0FBQytILHFCQUFxQk0sb0JBQW9CO29CQUM1Q04sb0JBQW9CTSxxQkFDaEJBLHFCQUNBNUc7Z0JBQ047Z0JBRUEsSUFBSXFHLG9CQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxpQkFBa0JTLFNBQVMsRUFBRTtvQkFDL0IsSUFBSSxDQUFDYixNQUFNLEdBQUcsSUFBSUUsWUFDaEJFLGlCQUFpQlUsUUFBUSxFQUN6QlYsaUJBQWlCVyxTQUFTO29CQUU1QixJQUFJLENBQUNmLE1BQU0sQ0FBQ2dCLE1BQU0sQ0FBQ1o7Z0JBQ3JCO2dCQUVBLElBQUlDLHFCQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxrQkFBbUJRLFNBQVMsRUFBRTtvQkFDaEMsSUFBSSxDQUFDWixNQUFNLEdBQUcsSUFBSUMsWUFDaEJHLGtCQUFrQlMsUUFBUSxFQUMxQlQsa0JBQWtCVSxTQUFTO29CQUU3QixJQUFJLENBQUNkLE1BQU0sQ0FBQ2UsTUFBTSxDQUFDWDtnQkFDckI7WUFDRjtZQUVBLElBQUlZLG1CQUFtQjtZQUN2QixJQUFJQyxvQkFBb0I7WUFDeEIsTUFBTUMsZUFDSjtnQkFBQztvQkFBRXhLO2dCQUFHO2dCQUFHO29CQUFFQSxJQUFJRTtnQkFBVzthQUFFO1lBRTlCLEtBQUssTUFBTSxFQUFFRixJQUFJeUssS0FBSyxFQUFFQyxpQkFBaUIsRUFBRSxJQUFJRixhQUFjO2dCQUMzRCxJQUFJQyxPQUFPO29CQUNULE1BQU1FLFlBQVloSyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQ2hCLElBQUlxRyxJQUFJeUQsT0FBTyxZQUFZak0sUUFBUTtvQkFFckMsTUFBTW9NLGtCQUFrQjVMLENBQUFBLEdBQUFBLGFBQUFBLFdBQUFBLEVBQ3RCQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVMEwsV0FBV3pMLFVBQVUsSUFBSSxDQUFDQSxNQUFNO29CQUc1QyxJQUNFd0wscUJBQ0FDLGNBQ0VoSyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CLElBQUlxRyxJQUFJLElBQUksQ0FBQ3JJLE1BQU0sRUFBRSxZQUFZSCxRQUFRLEdBQy9EOzRCQUdJLGNBQ0E7d0JBSEo4TCxtQkFDRUEsb0JBQ0EsQ0FBQyxHQUFDLG1CQUFJLENBQUNqQixNQUFBQSxLQUFNLGdCQUFYLGFBQWF3QixRQUFRLENBQUNGLFVBQUFBLEtBQ3hCLENBQUMsbUJBQUMsSUFBSSxDQUFDdEIsTUFBQUEsS0FBTSxnQkFBWCxjQUFhd0IsUUFBUSxDQUFDRCxnQkFBQUE7d0JBRTFCLEtBQUssTUFBTUUsZ0JBQWdCOzRCQUFDSDs0QkFBV0M7eUJBQWdCLENBQUU7NEJBQ3ZELHNEQUFzRDs0QkFDdEQsOEJBQThCOzRCQUM5QixNQUFNRyxhQUFhRCxhQUFhRSxLQUFLLENBQUM7NEJBQ3RDLElBQ0UsSUFBSUMsSUFBSSxHQUNSLENBQUNWLHFCQUFxQlUsSUFBSUYsV0FBV2pMLE1BQU0sR0FBRyxHQUM5Q21MLElBQ0E7b0NBRW1CO2dDQURuQixNQUFNQyxjQUFjSCxXQUFXakQsS0FBSyxDQUFDLEdBQUdtRCxHQUFHRSxJQUFJLENBQUM7Z0NBQ2hELElBQUlELGVBQUFBLENBQUFBLENBQWUsbUJBQUksQ0FBQzVCLE1BQUFBLEtBQU0sZ0JBQVgsYUFBYXVCLFFBQVEsQ0FBQ0ssWUFBQUEsR0FBYztvQ0FDckRYLG9CQUFvQjtvQ0FDcEI7Z0NBQ0Y7NEJBQ0Y7d0JBQ0Y7d0JBRUEseURBQXlEO3dCQUN6RCxvQkFBb0I7d0JBQ3BCLElBQUlELG9CQUFvQkMsbUJBQW1COzRCQUN6QyxJQUFJcEIsY0FBYztnQ0FDaEIsT0FBTzs0QkFDVDs0QkFDQXBCLHFCQUFxQjtnQ0FDbkJ0SSxLQUFLVCxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUNIQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVZSxJQUFJZCxVQUFVLElBQUksQ0FBQ0EsTUFBTSxFQUFFLElBQUksQ0FBQytFLGFBQWE7Z0NBRXpENUYsUUFBUSxJQUFJOzRCQUNkOzRCQUNBLE9BQU8sSUFBSUYsUUFBUSxLQUFPO3dCQUM1QjtvQkFDRjtnQkFDRjtZQUNGO1FBQ0Y7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxNQUFjNkssT0FDWmpELE1BQXFCLEVBQ3JCdEcsR0FBVyxFQUNYTyxFQUFVLEVBQ1YvQixPQUEwQixFQUMxQm1OLFlBQXVDLEVBQ3JCO1lBOE9iO1FBN09MLElBQUksQ0FBQ0MsQ0FBQUEsR0FBQUEsWUFBQUEsVUFBVSxFQUFDNUwsTUFBTTtZQUNwQnNJLHFCQUFxQjtnQkFBRXRJO2dCQUFLcEIsUUFBUSxJQUFJO1lBQUM7WUFDekMsT0FBTztRQUNUO1FBQ0Esc0VBQXNFO1FBQ3RFLHlFQUF5RTtRQUN6RSwyQkFBMkI7UUFDM0IsTUFBTWlOLGtCQUFtQnJOLFFBQWdCc04sRUFBRSxLQUFLO1FBRWhELElBQUksQ0FBQ0QsbUJBQW1CLENBQUNyTixRQUFRdU4sT0FBTyxFQUFFO1lBQ3hDLE1BQU0sSUFBSSxDQUFDdEMsSUFBSSxDQUFDbEosSUFBSW9ELFdBQVduRixRQUFRaUIsTUFBTTtRQUMvQztRQUVBLElBQUl1TSxvQkFDRkgsbUJBQ0NyTixRQUFnQnlOLGtCQUFrQixJQUNuQ2hOLENBQUFBLEdBQUFBLFdBQUFBLFNBQVMsRUFBQ2UsS0FBS2pCLFFBQVEsS0FBS0UsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBQUEsRUFBVXNCLElBQUl4QixRQUFRO1FBRXBELE1BQU1tTixZQUFZO1lBQ2hCLEdBQUcsSUFBSSxDQUFDQyxLQUFLO1FBQ2Y7UUFFQSx5REFBeUQ7UUFDekQsNERBQTREO1FBQzVELCtCQUErQjtRQUMvQixNQUFNQyxtQkFBbUIsSUFBSSxDQUFDQyxPQUFPLEtBQUs7UUFDMUMsSUFBSSxDQUFDQSxPQUFPLEdBQUc7UUFDZixNQUFNQyxRQUFRLElBQUksQ0FBQ0EsS0FBSztRQUV4QixJQUFJLENBQUNULGlCQUFpQjtZQUNwQixJQUFJLENBQUNTLEtBQUssR0FBRztRQUNmO1FBRUEsc0RBQXNEO1FBQ3RELHdEQUF3RDtRQUN4RCxJQUFJVCxtQkFBbUIsSUFBSSxDQUFDbkQsR0FBRyxFQUFFO1lBQy9CLE9BQU87UUFDVDtRQUVBLE1BQU02RCxhQUFhTCxVQUFVek0sTUFBTTtRQUVuQyxJQUFJeUMsS0FBK0IsRUFBRSxzQkFzRnBDO1FBRUQsb0RBQW9EO1FBQ3BELElBQUltTCxPQUFBQSxFQUFFLEVBQUU7WUFDTkMsWUFBWUMsSUFBSSxDQUFDO1FBQ25CO1FBRUEsTUFBTSxFQUFFeEIsVUFBVSxLQUFLLEVBQUV5QixTQUFTLElBQUksRUFBRSxHQUFHaFA7UUFDM0MsTUFBTWlQLGFBQWE7WUFBRTFCO1FBQVE7UUFFN0IsSUFBSSxJQUFJLENBQUMyQixjQUFjLElBQUksSUFBSSxDQUFDaEYsR0FBRyxFQUFFO1lBQ25DLElBQUksQ0FBQzRELE9BQU87Z0JBQ1ZyTyxPQUFPMFAsTUFBTSxDQUFDQyxJQUFJLENBQ2hCLG9CQUNBelAsMEJBQ0EsSUFBSSxDQUFDdVAsY0FBYyxFQUNuQkQ7WUFFSjtZQUNBLElBQUksQ0FBQy9FLEdBQUc7WUFDUixJQUFJLENBQUNBLEdBQUcsR0FBRztRQUNiO1FBRUFuSSxLQUFLaEIsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFDSEMsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBQUEsRUFDRUosQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWW1CLE1BQU1sQixDQUFBQSxHQUFBQSxnQkFBQUEsY0FBQUEsRUFBZWtCLE1BQU1BLElBQ3ZDL0IsUUFBUWlCLE1BQU0sRUFDZCxJQUFJLENBQUMrRSxhQUFhO1FBR3RCLE1BQU1yRixZQUFZME8sQ0FBQUEsR0FBQUEsY0FBQUEsWUFBQUEsRUFDaEJ6TyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZbUIsTUFBTWxCLENBQUFBLEdBQUFBLGdCQUFBQSxjQUFBQSxFQUFla0IsTUFBTUEsSUFDdkMyTCxVQUFVek0sTUFBTTtRQUVsQixJQUFJLENBQUNpTyxjQUFjLEdBQUduTjtRQUV0QixNQUFNdU4sZUFBZXZCLGVBQWVMLFVBQVV6TSxNQUFNO1FBRXBELHFEQUFxRDtRQUNyRCwwREFBMEQ7UUFFMUQsSUFBSSxDQUFDb00sbUJBQW1CLElBQUksQ0FBQ2tDLGVBQWUsQ0FBQzVPLGNBQWMsQ0FBQzJPLGNBQWM7WUFDeEU1QixVQUFVaE4sTUFBTSxHQUFHQztZQUNuQmxCLE9BQU8wUCxNQUFNLENBQUNDLElBQUksQ0FBQyxtQkFBbUJyTixJQUFJa047WUFDMUMsOERBQThEO1lBQzlELElBQUksQ0FBQ08sV0FBVyxDQUFDMUgsUUFBUXRHLEtBQUtPLElBQUk7Z0JBQ2hDLEdBQUcvQixPQUFPO2dCQUNWZ1AsUUFBUTtZQUNWO1lBQ0EsSUFBSUEsUUFBUTtnQkFDVixJQUFJLENBQUNTLFlBQVksQ0FBQzlPO1lBQ3BCO1lBQ0EsSUFBSTtnQkFDRixNQUFNLElBQUksQ0FBQytPLEdBQUcsQ0FBQ2hDLFdBQVcsSUFBSSxDQUFDaUMsVUFBVSxDQUFDakMsVUFBVTFELEtBQUssQ0FBQyxFQUFFO1lBQzlELEVBQUUsT0FBT1IsS0FBSztnQkFDWixJQUFJb0csQ0FBQUEsR0FBQUEsU0FBQUEsT0FBTyxFQUFDcEcsUUFBUUEsSUFBSXpKLFNBQVMsRUFBRTtvQkFDakNOLE9BQU8wUCxNQUFNLENBQUNDLElBQUksQ0FBQyxvQkFBb0I1RixLQUFLN0ksV0FBV3NPO2dCQUN6RDtnQkFDQSxNQUFNekY7WUFDUjtZQUVBL0osT0FBTzBQLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLHNCQUFzQnJOLElBQUlrTjtZQUM3QyxPQUFPO1FBQ1Q7UUFFQSxJQUFJWSxTQUFTeEwsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQjdDO1FBQzlCLElBQUksRUFBRWpCLFFBQVEsRUFBRStFLEtBQUssRUFBRSxHQUFHdUs7UUFFMUIseUVBQXlFO1FBQ3pFLDJFQUEyRTtRQUMzRSxvQkFBb0I7UUFDcEIsSUFBSXJOLE9BQWlCdUM7UUFDckIsSUFBSTs7WUFDRCxDQUFDdkMsT0FBTyxFQUFFc0MsWUFBWUMsUUFBUSxFQUFFLENBQUMsR0FBRyxNQUFNN0UsUUFBUXdFLEdBQUcsQ0FBQztnQkFDckQsSUFBSSxDQUFDckUsVUFBVSxDQUFDc0UsV0FBVztnQkFDM0JDLENBQUFBLEdBQUFBLGFBQUFBLHNCQUFBQTtnQkFDQSxJQUFJLENBQUN2RSxVQUFVLENBQUNDLGFBQWE7YUFDOUI7UUFDSCxFQUFFLE9BQU9rSixLQUFLO1lBQ1osd0VBQXdFO1lBQ3hFLCtCQUErQjtZQUMvQk0scUJBQXFCO2dCQUFFdEksS0FBS087Z0JBQUkzQixRQUFRLElBQUk7WUFBQztZQUM3QyxPQUFPO1FBQ1Q7UUFFQSx1RUFBdUU7UUFDdkUsOEVBQThFO1FBQzlFLHVEQUF1RDtRQUN2RCxvRUFBb0U7UUFDcEUsc0VBQXNFO1FBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMwUCxRQUFRLENBQUNuUCxjQUFjLENBQUMyTyxjQUFjO1lBQzlDeEgsU0FBUztRQUNYO1FBRUEsaUVBQWlFO1FBQ2pFLGlEQUFpRDtRQUNqRCxJQUFJN0YsYUFBYUY7UUFFakIsNkRBQTZEO1FBQzdELGdFQUFnRTtRQUNoRSwyREFBMkQ7UUFDM0R4QixXQUFXQSxXQUNQbUMsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQjdCLENBQUFBLEdBQUFBLGdCQUFBQSxjQUFBQSxFQUFlTixhQUNuQ0E7UUFFSixJQUFJeUosUUFBUXRILENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JuQztRQUNoQyxNQUFNd1AsbUJBQW1CaE8sR0FBR0osVUFBVSxDQUFDLFFBQVEwQyxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQWdCLEVBQUN0QyxJQUFJeEIsUUFBUTtRQUU1RSwwREFBMEQ7UUFDMUQsMEJBQTBCO1FBQzFCLGlDQUFLLElBQUksQ0FBQ29QLFVBQVUsQ0FBQ3BQLFNBQUFBLEtBQVMsZ0JBQXpCLDBCQUFtQ3lQLFdBQVcsRUFBRTtZQUNuRGxHLHFCQUFxQjtnQkFBRXRJLEtBQUtPO2dCQUFJM0IsUUFBUSxJQUFJO1lBQUM7WUFDN0MsT0FBTyxJQUFJRixRQUFRLEtBQU87UUFDNUI7UUFFQSxNQUFNK1Asc0JBQXNCLENBQUMsQ0FDM0JGLENBQUFBLG9CQUNBL0YsVUFBVStGLG9CQUNULEVBQUNqTixDQUFBQSxHQUFBQSxXQUFBQSxjQUFjLEVBQUNrSCxVQUNmLENBQUNwRSxDQUFBQSxHQUFBQSxjQUFBQSxlQUFBQSxFQUFnQjdDLENBQUFBLEdBQUFBLFlBQUFBLGFBQWEsRUFBQ2lILFFBQVErRixpQkFBQUEsQ0FBZ0IsQ0FBQztRQUc1RCwwREFBMEQ7UUFDMUQscURBQXFEO1FBQ3JELE1BQU1HLG9CQUNKLENBQUNsUSxRQUFRdU4sT0FBTyxJQUNmLE1BQU03TixrQkFBa0I7WUFDdkJnQixRQUFRcUI7WUFDUmQsUUFBUXlNLFVBQVV6TSxNQUFNO1lBQ3hCYixRQUFRLElBQUk7UUFDZDtRQUVGLElBQUlpTixtQkFBbUI2QyxtQkFBbUI7WUFDeEMxQyxvQkFBb0I7UUFDdEI7UUFFQSxJQUFJQSxxQkFBcUJqTixhQUFhLFdBQVc7O1lBQzdDUCxRQUFnQnlOLGtCQUFrQixHQUFHO1lBRXZDLElBQUkvSixLQUFxRCxFQUFFLEVBNEIxRCxNQUFNO2dCQUNMbU0sT0FBT3RQLFFBQVEsR0FBR2dDLG9CQUFvQmhDLFVBQVVpQztnQkFFaEQsSUFBSXFOLE9BQU90UCxRQUFRLEtBQUtBLFVBQVU7b0JBQ2hDQSxXQUFXc1AsT0FBT3RQLFFBQVE7b0JBQzFCc1AsT0FBT3RQLFFBQVEsR0FBR1EsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWVI7b0JBRTlCLElBQUksQ0FBQzJQLG1CQUFtQjt3QkFDdEIxTyxNQUFNMk0sQ0FBQUEsR0FBQUEsV0FBQUEsb0JBQUFBLEVBQXFCMEI7b0JBQzdCO2dCQUNGO1lBQ0Y7UUFDRjtRQUVBLElBQUksQ0FBQ3pDLENBQUFBLEdBQUFBLFlBQUFBLFVBQUFBLEVBQVdyTCxLQUFLO1lBQ25CLElBQUkyQixJQUFvQixFQUFtQjtnQkFDekMsTUFBTSxJQUFJNUQsTUFDUCxvQkFBaUIwQixNQUFJLGdCQUFhTyxLQUFHLDhDQUNuQztZQUVQO1lBQ0ErSCxxQkFBcUI7Z0JBQUV0SSxLQUFLTztnQkFBSTNCLFFBQVEsSUFBSTtZQUFDO1lBQzdDLE9BQU87UUFDVDtRQUVBNkIsYUFBYW9OLENBQUFBLEdBQUFBLGNBQUFBLFlBQUFBLEVBQWF4TyxDQUFBQSxHQUFBQSxnQkFBQUEsY0FBYyxFQUFDb0IsYUFBYXlMLFVBQVV6TSxNQUFNO1FBRXRFK0ksUUFBUXRILENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JuQztRQUM1QixJQUFJK1AsYUFBNkI7UUFFakMsSUFBSXhOLENBQUFBLEdBQUFBLFdBQUFBLGNBQWMsRUFBQ2tILFFBQVE7WUFDekIsTUFBTXZFLFdBQVdwQixDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCcEM7WUFDbEMsTUFBTXpCLGFBQWFpRixTQUFTbEYsUUFBUTtZQUVwQyxNQUFNZ1EsYUFBYXhOLENBQUFBLEdBQUFBLFlBQUFBLGFBQUFBLEVBQWNpSDtZQUNqQ3NHLGFBQWExSyxDQUFBQSxHQUFBQSxjQUFBQSxlQUFBQSxFQUFnQjJLLFlBQVkvUDtZQUN6QyxNQUFNZ1Esb0JBQW9CeEcsVUFBVXhKO1lBQ3BDLE1BQU1pUSxpQkFBaUJELG9CQUNuQkUsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBYzFHLE9BQU94SixZQUFZOEUsU0FDaEMsQ0FBQztZQUVOLElBQUksQ0FBQ2dMLGNBQWVFLHFCQUFxQixDQUFDQyxlQUFlckwsTUFBTSxFQUFHO2dCQUNoRSxNQUFNdUwsZ0JBQWdCL1EsT0FBT2dSLElBQUksQ0FBQ0wsV0FBV00sTUFBTSxFQUFFQyxNQUFNLENBQ3pELENBQUNDLFFBQVUsQ0FBQ3pMLEtBQUssQ0FBQ3lMLE1BQU0sSUFBSSxDQUFDUixXQUFXTSxNQUFNLENBQUNFLE1BQU0sQ0FBQ0MsUUFBUTtnQkFHaEUsSUFBSUwsY0FBYzlPLE1BQU0sR0FBRyxLQUFLLENBQUNxTyxtQkFBbUI7b0JBQ2xELElBQUl4TSxJQUFvQixFQUFtQjt3QkFDekNrSSxRQUFRcUYsSUFBSSxDQUNULEtBQ0NULENBQUFBLG9CQUNLLHVCQUNBLDhCQUErQixHQUNyQyxpQ0FDQyxrQkFBZUcsY0FBY3pELElBQUksQ0FDL0IsUUFDQSwyQkFBNEI7b0JBRXBDO29CQUVBLE1BQU0sSUFBSXBOLE1BQ1AwUSxDQUFBQSxvQkFDSSwwQkFBeUJoUCxNQUFJLHNDQUFtQ21QLGNBQWN6RCxJQUFJLENBQ2pGLFFBQ0Esb0NBQ0QsOEJBQTZCMU0sYUFBVyw4Q0FBNkN3SixRQUFNLE1BQUcsSUFDakcsaURBQ0V3RyxDQUFBQSxvQkFDSSw4QkFDQSx1QkFBcUIsQ0FDMUI7Z0JBRVA7WUFDRixPQUFPLElBQUlBLG1CQUFtQjtnQkFDNUJ6TyxLQUFLb00sQ0FBQUEsR0FBQUEsV0FBQUEsb0JBQUFBLEVBQ0h2TyxPQUFPQyxNQUFNLENBQUMsQ0FBQyxHQUFHNEYsVUFBVTtvQkFDMUJsRixVQUFVa1EsZUFBZXJMLE1BQU07b0JBQy9CRSxPQUFPNEwsQ0FBQUEsR0FBQUEsTUFBQUEsSUFBQUEsRUFBSzVMLE9BQU9tTCxlQUFldkgsTUFBTTtnQkFDMUM7WUFFSixPQUFPO2dCQUNMLGlFQUFpRTtnQkFDakV0SixPQUFPQyxNQUFNLENBQUN5RixPQUFPZ0w7WUFDdkI7UUFDRjtRQUVBLElBQUksQ0FBQ2pELGlCQUFpQjtZQUNwQjVOLE9BQU8wUCxNQUFNLENBQUNDLElBQUksQ0FBQyxvQkFBb0JyTixJQUFJa047UUFDN0M7UUFFQSxNQUFNa0MsZUFBZSxJQUFJLENBQUM1USxRQUFRLEtBQUssVUFBVSxJQUFJLENBQUNBLFFBQVEsS0FBSztRQUVuRSxJQUFJO2dCQXNLQW9LLHFDQUFBQSwyQkFDQXlHO1lBdEtGLElBQUlBLFlBQVksTUFBTSxJQUFJLENBQUNDLFlBQVksQ0FBQztnQkFDdENySDtnQkFDQXpKO2dCQUNBK0U7Z0JBQ0F2RDtnQkFDQUU7Z0JBQ0FnTjtnQkFDQWhPLFFBQVF5TSxVQUFVek0sTUFBTTtnQkFDeEJxUSxXQUFXNUQsVUFBVTRELFNBQVM7Z0JBQzlCOUksZUFBZTBIO2dCQUNmckgsMEJBQTBCN0ksUUFBUTZJLHdCQUF3QjtnQkFDMUR3RSxpQkFBaUJBLG1CQUFtQixDQUFDLElBQUksQ0FBQ2tFLFVBQVU7Z0JBQ3BEdEI7WUFDRjtZQUVBLElBQUksQ0FBQzVDLG1CQUFtQixDQUFDck4sUUFBUXVOLE9BQU8sRUFBRTtnQkFDeEMsTUFBTSxJQUFJLENBQUN0QyxJQUFJLENBQ2JsSixJQUNBLGdCQUFnQnFQLFlBQVlBLFVBQVVuUCxVQUFVLEdBQUdrRCxXQUNuRHVJLFVBQVV6TSxNQUFNO1lBRXBCO1lBRUEsSUFBSSxXQUFXbVEsYUFBYWxCLG1CQUFtQjtnQkFDN0MzUCxXQUFXNlEsVUFBVXBILEtBQUssSUFBSUE7Z0JBQzlCQSxRQUFReko7Z0JBRVIsSUFBSSxDQUFDME8sV0FBVzFCLE9BQU8sRUFBRTtvQkFDdkJqSSxRQUFRMUYsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBR3VSLFVBQVU5TCxLQUFLLElBQUksQ0FBQyxHQUFHQTtnQkFDbkQ7Z0JBRUEsTUFBTWtNLHdCQUF3QjVRLENBQUFBLEdBQUFBLGFBQUFBLFdBQUFBLEVBQVlpUCxPQUFPdFAsUUFBUSxJQUNyRE0sQ0FBQUEsR0FBQUEsZ0JBQUFBLGNBQUFBLEVBQWVnUCxPQUFPdFAsUUFBUSxJQUM5QnNQLE9BQU90UCxRQUFRO2dCQUVuQixJQUFJK1AsY0FBYy9QLGFBQWFpUix1QkFBdUI7b0JBQ3BENVIsT0FBT2dSLElBQUksQ0FBQ04sWUFBWW1CLE9BQU8sQ0FBQyxDQUFDQzt3QkFDL0IsSUFBSXBCLGNBQWNoTCxLQUFLLENBQUNvTSxJQUFJLEtBQUtwQixVQUFVLENBQUNvQixJQUFJLEVBQUU7NEJBQ2hELE9BQU9wTSxLQUFLLENBQUNvTSxJQUFJO3dCQUNuQjtvQkFDRjtnQkFDRjtnQkFFQSxJQUFJNU8sQ0FBQUEsR0FBQUEsV0FBQUEsY0FBYyxFQUFDdkMsV0FBVztvQkFDNUIsTUFBTW9SLGFBQ0osQ0FBQzFDLFdBQVcxQixPQUFPLElBQUk2RCxVQUFVblAsVUFBVSxHQUN2Q21QLFVBQVVuUCxVQUFVLEdBQ3BCbEIsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFDRUMsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBQUEsRUFDRSxJQUFJK0gsSUFBSWhILElBQUlpSCxTQUFTRixJQUFJLEVBQUV2SSxRQUFRLEVBQ25DbU4sVUFBVXpNLE1BQU0sR0FFbEI7b0JBR1IsSUFBSTJRLFlBQVlEO29CQUVoQixJQUFJL1EsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWWdSLFlBQVk7d0JBQzFCQSxZQUFZL1EsQ0FBQUEsR0FBQUEsZ0JBQUFBLGNBQWMsRUFBQytRO29CQUM3QjtvQkFFQSxJQUFJbE8sS0FBK0IsRUFBRSxFQUlwQztvQkFDRCxNQUFNNk0sYUFBYXhOLENBQUFBLEdBQUFBLFlBQUFBLGFBQUFBLEVBQWN4QztvQkFDakMsTUFBTXVSLGdCQUFnQmxNLENBQUFBLEdBQUFBLGNBQUFBLGVBQUFBLEVBQWdCMkssWUFDcEMsSUFBSXhILElBQUk2SSxXQUFXNUksU0FBU0YsSUFBSSxFQUFFdkksUUFBUTtvQkFHNUMsSUFBSXVSLGVBQWU7d0JBQ2pCbFMsT0FBT0MsTUFBTSxDQUFDeUYsT0FBT3dNO29CQUN2QjtnQkFDRjtZQUNGO1lBRUEseURBQXlEO1lBQ3pELElBQUksVUFBVVYsV0FBVztnQkFDdkIsSUFBSUEsVUFBVXZMLElBQUksS0FBSyxxQkFBcUI7b0JBQzFDLE9BQU8sSUFBSSxDQUFDa0YsTUFBTSxDQUFDakQsUUFBUXNKLFVBQVU5SyxNQUFNLEVBQUU4SyxVQUFVL0ssS0FBSyxFQUFFckc7Z0JBQ2hFLE9BQU87b0JBQ0w4SixxQkFBcUI7d0JBQUV0SSxLQUFLNFAsVUFBVWxMLFdBQVc7d0JBQUU5RixRQUFRLElBQUk7b0JBQUM7b0JBQ2hFLE9BQU8sSUFBSUYsUUFBUSxLQUFPO2dCQUM1QjtZQUNGO1lBRUEsTUFBTTZSLFlBQWlCWCxVQUFVWSxTQUFTO1lBQzFDLElBQUlELGFBQWFBLFVBQVVFLHFCQUFxQixFQUFFO2dCQUNoRCxNQUFNQyxVQUFVLEVBQUUsQ0FBQ0MsTUFBTSxDQUFDSixVQUFVRSxxQkFBcUI7Z0JBRXpEQyxRQUFRVCxPQUFPLENBQUMsQ0FBQ1c7b0JBQ2ZDLENBQUFBLEdBQUFBLFFBQUFBLHNCQUFzQixFQUFDRCxPQUFPRSxLQUFLO2dCQUNyQztZQUNGO1lBRUEsdUNBQXVDO1lBQ3ZDLElBQUtsQixDQUFBQSxVQUFVbUIsT0FBTyxJQUFJbkIsVUFBVW9CLE9BQUFBLEtBQVlwQixVQUFVa0IsS0FBSyxFQUFFO2dCQUMvRCxJQUNFbEIsVUFBVWtCLEtBQUssQ0FBQ0csU0FBUyxJQUN6QnJCLFVBQVVrQixLQUFLLENBQUNHLFNBQVMsQ0FBQ0MsWUFBWSxFQUN0QztvQkFDQSwwREFBMEQ7b0JBQzFEMVMsUUFBUWlCLE1BQU0sR0FBRztvQkFFakIsTUFBTWlGLGNBQWNrTCxVQUFVa0IsS0FBSyxDQUFDRyxTQUFTLENBQUNDLFlBQVk7b0JBRTFELG9FQUFvRTtvQkFDcEUsZ0VBQWdFO29CQUNoRSxXQUFXO29CQUNYLElBQ0V4TSxZQUFZdkUsVUFBVSxDQUFDLFFBQ3ZCeVAsVUFBVWtCLEtBQUssQ0FBQ0csU0FBUyxDQUFDRSxzQkFBc0IsS0FBSyxPQUNyRDt3QkFDQSxNQUFNQyxhQUFhdk8sQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQjZCO3dCQUNwQzBNLFdBQVdyUyxRQUFRLEdBQUdnQyxvQkFDcEJxUSxXQUFXclMsUUFBUSxFQUNuQmlDO3dCQUdGLE1BQU0sRUFBRWhCLEtBQUs4RSxNQUFNLEVBQUV2RSxJQUFJc0UsS0FBSyxFQUFFLEdBQUd2RSxhQUNqQyxJQUFJLEVBQ0pvRSxhQUNBQTt3QkFFRixPQUFPLElBQUksQ0FBQzZFLE1BQU0sQ0FBQ2pELFFBQVF4QixRQUFRRCxPQUFPckc7b0JBQzVDO29CQUNBOEoscUJBQXFCO3dCQUFFdEksS0FBSzBFO3dCQUFhOUYsUUFBUSxJQUFJO29CQUFDO29CQUN0RCxPQUFPLElBQUlGLFFBQVEsS0FBTztnQkFDNUI7Z0JBRUF3TixVQUFVNEQsU0FBUyxHQUFHLENBQUMsQ0FBQ0YsVUFBVWtCLEtBQUssQ0FBQ08sV0FBVztnQkFFbkQsc0JBQXNCO2dCQUN0QixJQUFJekIsVUFBVWtCLEtBQUssQ0FBQ2xKLFFBQVEsS0FBSzVCLG9CQUFvQjtvQkFDbkQsSUFBSXNMO29CQUVKLElBQUk7d0JBQ0YsTUFBTSxJQUFJLENBQUNDLGNBQWMsQ0FBQzt3QkFDMUJELGdCQUFnQjtvQkFDbEIsRUFBRSxPQUFPRSxHQUFHO3dCQUNWRixnQkFBZ0I7b0JBQ2xCO29CQUVBMUIsWUFBWSxNQUFNLElBQUksQ0FBQ0MsWUFBWSxDQUFDO3dCQUNsQ3JILE9BQU84STt3QkFDUHZTLFVBQVV1Uzt3QkFDVnhOO3dCQUNBdkQ7d0JBQ0FFO3dCQUNBZ04sWUFBWTs0QkFBRTFCLFNBQVM7d0JBQU07d0JBQzdCdE0sUUFBUXlNLFVBQVV6TSxNQUFNO3dCQUN4QnFRLFdBQVc1RCxVQUFVNEQsU0FBUzt3QkFDOUIyQixZQUFZO29CQUNkO29CQUVBLElBQUksVUFBVTdCLFdBQVc7d0JBQ3ZCLE1BQU0sSUFBSXRSLE1BQU87b0JBQ25CO2dCQUNGO1lBQ0Y7WUFFQSxJQUNFdU4sbUJBQ0EsSUFBSSxDQUFDOU0sUUFBUSxLQUFLLGFBQ2xCb0ssQ0FBQUEsQ0FBQUEsNEJBQUFBLEtBQUt1SSxhQUFhLENBQUNaLEtBQUFBLEtBQUssdURBQXhCM0gsMEJBQTBCOEgsU0FBQUEsS0FBUyxnQkFBbkM5SCxvQ0FBcUN3SSxVQUFBQSxNQUFlLFNBQ3BEL0IsbUJBQUFBLFVBQVVrQixLQUFBQSxLQUFLLGdCQUFmbEIsaUJBQWlCcUIsU0FBUyxHQUMxQjtnQkFDQSx5REFBeUQ7Z0JBQ3pELGtDQUFrQztnQkFDbENyQixVQUFVa0IsS0FBSyxDQUFDRyxTQUFTLENBQUNVLFVBQVUsR0FBRztZQUN6QztnQkFJMEMvQjtZQUYxQyw2REFBNkQ7WUFDN0QsTUFBTWdDLHNCQUNKcFQsUUFBUXVOLE9BQU8sSUFBSUcsVUFBVTFELEtBQUssS0FBTW9ILENBQUFBLENBQUFBLG1CQUFBQSxVQUFVcEgsS0FBQUEsS0FBSyxPQUFmb0gsbUJBQW1CcEgsS0FBQUEsQ0FBSTtnQkFHL0RoSztZQURGLE1BQU1xVCxlQUNKclQsbUJBQUFBLFFBQVFnUCxNQUFBQSxLQUFNLE9BQWRoUCxrQkFBbUIsQ0FBQ3FOLG1CQUFtQixDQUFDK0Y7WUFDMUMsTUFBTUUsY0FBY0QsZUFBZTtnQkFBRTNJLEdBQUc7Z0JBQUdHLEdBQUc7WUFBRSxJQUFJO1lBQ3BELE1BQU0wSSxzQkFBc0JwRyxnQkFBQUEsT0FBQUEsZUFBZ0JtRztZQUU1QywwQ0FBMEM7WUFDMUMsTUFBTUUsc0JBQXNCO2dCQUMxQixHQUFHOUYsU0FBUztnQkFDWjFEO2dCQUNBeko7Z0JBQ0ErRTtnQkFDQTVFLFFBQVFDO2dCQUNSNFEsWUFBWTtZQUNkO1lBRUEsMEVBQTBFO1lBQzFFLHNFQUFzRTtZQUN0RSx1RUFBdUU7WUFDdkUseUVBQXlFO1lBQ3pFLFlBQVk7WUFDWixJQUFJbEUsbUJBQW1COEQsY0FBYztvQkFtQmpDeEcsc0NBQUFBLDRCQUNBeUc7Z0JBbkJGQSxZQUFZLE1BQU0sSUFBSSxDQUFDQyxZQUFZLENBQUM7b0JBQ2xDckgsT0FBTyxJQUFJLENBQUN6SixRQUFRO29CQUNwQkEsVUFBVSxJQUFJLENBQUNBLFFBQVE7b0JBQ3ZCK0U7b0JBQ0F2RDtvQkFDQUU7b0JBQ0FnTixZQUFZO3dCQUFFMUIsU0FBUztvQkFBTTtvQkFDN0J0TSxRQUFReU0sVUFBVXpNLE1BQU07b0JBQ3hCcVEsV0FBVzVELFVBQVU0RCxTQUFTO29CQUM5QmpFLGlCQUFpQkEsbUJBQW1CLENBQUMsSUFBSSxDQUFDa0UsVUFBVTtnQkFDdEQ7Z0JBRUEsSUFBSSxVQUFVSCxXQUFXO29CQUN2QixNQUFNLElBQUl0UixNQUFPLHFDQUFrQyxJQUFJLENBQUNTLFFBQVE7Z0JBQ2xFO2dCQUVBLElBQ0UsSUFBSSxDQUFDQSxRQUFRLEtBQUssYUFDbEJvSyxDQUFBQSxDQUFBQSw2QkFBQUEsS0FBS3VJLGFBQWEsQ0FBQ1osS0FBQUEsS0FBSyxpQkFBeEIzSCx1Q0FBQUEsMkJBQTBCOEgsU0FBQUEsS0FBUyxnQkFBbkM5SCxxQ0FBcUN3SSxVQUFBQSxNQUFlLFNBQ3BEL0Isb0JBQUFBLFVBQVVrQixLQUFBQSxLQUFLLGdCQUFmbEIsa0JBQWlCcUIsU0FBQUEsR0FDakI7b0JBQ0EseURBQXlEO29CQUN6RCxrQ0FBa0M7b0JBQ2xDckIsVUFBVWtCLEtBQUssQ0FBQ0csU0FBUyxDQUFDVSxVQUFVLEdBQUc7Z0JBQ3pDO2dCQUVBLElBQUk7b0JBQ0YsTUFBTSxJQUFJLENBQUN6RCxHQUFHLENBQUM4RCxxQkFBcUJwQyxXQUFXbUM7Z0JBQ2pELEVBQUUsT0FBTy9KLEtBQUs7b0JBQ1osSUFBSW9HLENBQUFBLEdBQUFBLFNBQUFBLE9BQUFBLEVBQVFwRyxRQUFRQSxJQUFJekosU0FBUyxFQUFFO3dCQUNqQ04sT0FBTzBQLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLG9CQUFvQjVGLEtBQUs3SSxXQUFXc087b0JBQ3pEO29CQUNBLE1BQU16RjtnQkFDUjtnQkFFQSxPQUFPO1lBQ1Q7WUFFQS9KLE9BQU8wUCxNQUFNLENBQUNDLElBQUksQ0FBQyx1QkFBdUJyTixJQUFJa047WUFDOUMsSUFBSSxDQUFDTyxXQUFXLENBQUMxSCxRQUFRdEcsS0FBS08sSUFBSS9CO1lBRWxDLDBFQUEwRTtZQUMxRSxpQkFBaUI7WUFDakIsaURBQWlEO1lBQ2pELE1BQU15VCxrQkFDSnBHLG1CQUNBLENBQUNrRyx1QkFDRCxDQUFDM0Ysb0JBQ0QsQ0FBQzBCLGdCQUNEb0UsQ0FBQUEsR0FBQUEsZUFBQUEsbUJBQUFBLEVBQW9CRixxQkFBcUIsSUFBSSxDQUFDN0YsS0FBSztZQUVyRCxJQUFJLENBQUM4RixpQkFBaUI7Z0JBQ3BCLElBQUk7b0JBQ0YsTUFBTSxJQUFJLENBQUMvRCxHQUFHLENBQUM4RCxxQkFBcUJwQyxXQUFXbUM7Z0JBQ2pELEVBQUUsT0FBT0ksR0FBUTtvQkFDZixJQUFJQSxFQUFFNVQsU0FBUyxFQUFFcVIsVUFBVWhKLEtBQUssR0FBR2dKLFVBQVVoSixLQUFLLElBQUl1TDt5QkFDakQsTUFBTUE7Z0JBQ2I7Z0JBRUEsSUFBSXZDLFVBQVVoSixLQUFLLEVBQUU7b0JBQ25CLElBQUksQ0FBQ2lGLGlCQUFpQjt3QkFDcEI1TixPQUFPMFAsTUFBTSxDQUFDQyxJQUFJLENBQ2hCLG9CQUNBZ0MsVUFBVWhKLEtBQUssRUFDZnpILFdBQ0FzTztvQkFFSjtvQkFFQSxNQUFNbUMsVUFBVWhKLEtBQUs7Z0JBQ3ZCO2dCQUVBLElBQUkxRSxLQUErQixFQUFFLEVBSXBDO2dCQUVELElBQUksQ0FBQzJKLGlCQUFpQjtvQkFDcEI1TixPQUFPMFAsTUFBTSxDQUFDQyxJQUFJLENBQUMsdUJBQXVCck4sSUFBSWtOO2dCQUNoRDtnQkFFQSxtREFBbUQ7Z0JBQ25ELE1BQU04RSxZQUFZO2dCQUNsQixJQUFJVixnQkFBZ0JVLFVBQVV6UyxJQUFJLENBQUNTLEtBQUs7b0JBQ3RDLElBQUksQ0FBQzBOLFlBQVksQ0FBQzFOO2dCQUNwQjtZQUNGO1lBRUEsT0FBTztRQUNULEVBQUUsT0FBT3lILEtBQUs7WUFDWixJQUFJb0csQ0FBQUEsR0FBQUEsU0FBQUEsT0FBTyxFQUFDcEcsUUFBUUEsSUFBSXpKLFNBQVMsRUFBRTtnQkFDakMsT0FBTztZQUNUO1lBQ0EsTUFBTXlKO1FBQ1I7SUFDRjtJQUVBZ0csWUFDRTFILE1BQXFCLEVBQ3JCdEcsR0FBVyxFQUNYTyxFQUFVLEVBQ1YvQixPQUErQixFQUN6QjtRQUROQSxJQUFBQSxZQUFBQSxLQUFBQSxHQUFBQSxVQUE2QixDQUFDO1FBRTlCLElBQUkwRCxJQUFvQixFQUFtQjtZQUN6QyxJQUFJLE9BQU91RCxPQUFPQyxPQUFPLEtBQUssYUFBYTtnQkFDekMwRSxRQUFReEQsS0FBSyxDQUFFO2dCQUNmO1lBQ0Y7WUFFQSxJQUFJLE9BQU9uQixPQUFPQyxPQUFPLENBQUNZLE9BQU8sS0FBSyxhQUFhO2dCQUNqRDhELFFBQVF4RCxLQUFLLENBQUUsNkJBQTBCTixTQUFPO2dCQUNoRDtZQUNGO1FBQ0Y7UUFFQSxJQUFJQSxXQUFXLGVBQWVrTSxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQSxRQUFhalMsSUFBSTtZQUM3QyxJQUFJLENBQUNrUyxRQUFRLEdBQUdqVSxRQUFRdU4sT0FBTztZQUMvQnRHLE9BQU9DLE9BQU8sQ0FBQ1ksT0FBTyxDQUNwQjtnQkFDRXRHO2dCQUNBTztnQkFDQS9CO2dCQUNBa1UsS0FBSztnQkFDTHhDLEtBQU0sSUFBSSxDQUFDbEgsSUFBSSxHQUFHMUMsV0FBVyxjQUFjLElBQUksQ0FBQzBDLElBQUksR0FBR2hMO1lBQ3pELEdBRUEscUZBQXFGO1lBQ3JGLGtFQUFrRTtZQUNsRSxJQUNBdUM7UUFFSjtJQUNGO0lBRUEsTUFBTW9TLHFCQUNKM0ssR0FBZ0QsRUFDaERqSixRQUFnQixFQUNoQitFLEtBQXFCLEVBQ3JCdkQsRUFBVSxFQUNWa04sVUFBMkIsRUFDM0JtRixhQUF1QixFQUNZO1FBQ25DLElBQUk1SyxJQUFJekosU0FBUyxFQUFFO1lBQ2pCLGdDQUFnQztZQUNoQyxNQUFNeUo7UUFDUjtRQUVBLElBQUk2SyxDQUFBQSxHQUFBQSxhQUFBQSxZQUFBQSxFQUFhN0ssUUFBUTRLLGVBQWU7WUFDdEMzVSxPQUFPMFAsTUFBTSxDQUFDQyxJQUFJLENBQUMsb0JBQW9CNUYsS0FBS3pILElBQUlrTjtZQUVoRCxpRUFBaUU7WUFDakUsMEJBQTBCO1lBQzFCLDBDQUEwQztZQUMxQyw0Q0FBNEM7WUFFNUMsK0RBQStEO1lBQy9EbkYscUJBQXFCO2dCQUNuQnRJLEtBQUtPO2dCQUNMM0IsUUFBUSxJQUFJO1lBQ2Q7WUFFQSxrRUFBa0U7WUFDbEUsOERBQThEO1lBQzlELE1BQU1UO1FBQ1I7UUFFQWlNLFFBQVF4RCxLQUFLLENBQUNvQjtRQUVkLElBQUk7WUFDRixJQUFJOEk7WUFDSixNQUFNLEVBQUV6UCxNQUFNbVAsU0FBUyxFQUFFc0MsV0FBVyxFQUFFLEdBQ3BDLE1BQU0sSUFBSSxDQUFDdkIsY0FBYyxDQUFDO1lBRTVCLE1BQU0zQixZQUFzQztnQkFDMUNrQjtnQkFDQU47Z0JBQ0FzQztnQkFDQTlLO2dCQUNBcEIsT0FBT29CO1lBQ1Q7WUFFQSxJQUFJLENBQUM0SCxVQUFVa0IsS0FBSyxFQUFFO2dCQUNwQixJQUFJO29CQUNGbEIsVUFBVWtCLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQ2lDLGVBQWUsQ0FBQ3ZDLFdBQVc7d0JBQ3REeEk7d0JBQ0FqSjt3QkFDQStFO29CQUNGO2dCQUNGLEVBQUUsT0FBT2tQLFFBQVE7b0JBQ2Y1SSxRQUFReEQsS0FBSyxDQUFDLDJDQUEyQ29NO29CQUN6RHBELFVBQVVrQixLQUFLLEdBQUcsQ0FBQztnQkFDckI7WUFDRjtZQUVBLE9BQU9sQjtRQUNULEVBQUUsT0FBT3FELGNBQWM7WUFDckIsT0FBTyxJQUFJLENBQUNOLG9CQUFvQixDQUM5QnZFLENBQUFBLEdBQUFBLFNBQUFBLE9BQUFBLEVBQVE2RSxnQkFBZ0JBLGVBQWUsSUFBSTNVLE1BQU0yVSxlQUFlLEtBQ2hFbFUsVUFDQStFLE9BQ0F2RCxJQUNBa04sWUFDQTtRQUVKO0lBQ0Y7SUFFQSxNQUFNb0MsYUFBYSxLQTRCbEIsRUFBRTtRQTVCZ0IsTUFDakJySCxPQUFPMEssY0FBYyxFQUNyQm5VLFFBQVEsRUFDUitFLEtBQUssRUFDTHZELEVBQUUsRUFDRkUsVUFBVSxFQUNWZ04sVUFBVSxFQUNWaE8sTUFBTSxFQUNOdUgsYUFBYSxFQUNiOEksU0FBUyxFQUNUekksd0JBQXdCLEVBQ3hCd0UsZUFBZSxFQUNmNEMsbUJBQW1CLEVBQ25CZ0QsVUFBVSxFQWVYLEdBNUJrQjtRQTZCakI7Ozs7O0tBS0MsR0FDRCxJQUFJakosUUFBUTBLO1FBRVosSUFBSTtnQkE2RUFqTyxjQUNBQSxlQUtFQSxlQXlEc0JBO1lBM0kxQixJQUFJa08sZUFBNkMsSUFBSSxDQUFDaEYsVUFBVSxDQUFDM0YsTUFBTTtZQUN2RSxJQUFJaUYsV0FBVzFCLE9BQU8sSUFBSW9ILGdCQUFnQixJQUFJLENBQUMzSyxLQUFLLEtBQUtBLE9BQU87Z0JBQzlELE9BQU8ySztZQUNUO1lBRUEsTUFBTXhLLGtCQUFrQkosb0JBQW9CO2dCQUFFQztnQkFBTzVKLFFBQVEsSUFBSTtZQUFDO1lBRWxFLElBQUlvSSxlQUFlO2dCQUNqQm1NLGVBQWV4UDtZQUNqQjtZQUVBLElBQUl5UCxrQkFDRkQsZ0JBQ0EsQ0FBRSxjQUFhQSxZQUFBQSxDQUFXLElBQzFCalIsUUFBUUMsR0FBRyxDQUFDMkYsTUFBYSxFQUFMLGNBQ2hCcUwsQ0FBWUEsR0FDWnhQO1lBRU4sTUFBTXlELGVBQWV5RTtZQUNyQixNQUFNd0gsc0JBQTJDO2dCQUMvQ2xPLFVBQVUsSUFBSSxDQUFDdEcsVUFBVSxDQUFDeVUsV0FBVyxDQUFDO29CQUNwQ2hNLE1BQU1xRixDQUFBQSxHQUFBQSxXQUFBQSxvQkFBQUEsRUFBcUI7d0JBQUU1Tjt3QkFBVStFO29CQUFNO29CQUM3Q3lQLG1CQUFtQjtvQkFDbkJyVSxRQUFRdVMsYUFBYSxTQUFTaFI7b0JBQzlCaEI7Z0JBQ0Y7Z0JBQ0F1SCxlQUFlO2dCQUNmQyxnQkFBZ0IsSUFBSSxDQUFDcUYsS0FBSztnQkFDMUJwRixXQUFXO2dCQUNYSixlQUFlTSxlQUFlLElBQUksQ0FBQ29NLEdBQUcsR0FBRyxJQUFJLENBQUNDLEdBQUc7Z0JBQ2pEdE0sY0FBYyxDQUFDMkk7Z0JBQ2YvSSxZQUFZO2dCQUNaTTtnQkFDQUQ7WUFDRjtZQUVBLElBQUluQyxPQUtGNEcsbUJBQW1CLENBQUM0QyxzQkFDaEIsT0FDQSxNQUFNMUosc0JBQXNCO2dCQUMxQkMsV0FBVyxJQUFNNkIsY0FBY3dNO2dCQUMvQm5VLFFBQVF1UyxhQUFhLFNBQVNoUjtnQkFDOUJoQixRQUFRQTtnQkFDUmIsUUFBUSxJQUFJO1lBQ2QsR0FBR21KLEtBQUssQ0FBQyxDQUFDQztnQkFDUiw0Q0FBNEM7Z0JBQzVDLG9EQUFvRDtnQkFDcEQsb0RBQW9EO2dCQUNwRCxZQUFZO2dCQUNaLElBQUk2RCxpQkFBaUI7b0JBQ25CLE9BQU87Z0JBQ1Q7Z0JBQ0EsTUFBTTdEO1lBQ1I7WUFFTix3REFBd0Q7WUFDeEQsVUFBVTtZQUNWLElBQUkvQyxRQUFTbEcsQ0FBQUEsYUFBYSxhQUFhQSxhQUFhLE9BQUssRUFBSTtnQkFDM0RrRyxLQUFLQyxNQUFNLEdBQUd2QjtZQUNoQjtZQUVBLElBQUlrSSxpQkFBaUI7Z0JBQ25CLElBQUksQ0FBQzVHLE1BQU07b0JBQ1RBLE9BQU87d0JBQUVHLE1BQU0rRCxLQUFLdUksYUFBYSxDQUFDWixLQUFLO29CQUFDO2dCQUMxQyxPQUFPO29CQUNMN0wsS0FBS0csSUFBSSxHQUFHK0QsS0FBS3VJLGFBQWEsQ0FBQ1osS0FBSztnQkFDdEM7WUFDRjtZQUVBbkk7WUFFQSxJQUNFMUQsQ0FBQUEsUUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsQ0FBQUEsZUFBQUEsS0FBTUMsTUFBQUEsS0FBTSxnQkFBWkQsYUFBY1osSUFBQUEsTUFBUyx1QkFDdkJZLENBQUFBLFFBQUFBLE9BQUFBLEtBQUFBLElBQUFBLENBQUFBLGdCQUFBQSxLQUFNQyxNQUFBQSxLQUFNLGdCQUFaRCxjQUFjWixJQUFJLE1BQUsscUJBQ3ZCO2dCQUNBLE9BQU9ZLEtBQUtDLE1BQU07WUFDcEI7WUFFQSxJQUFJRCxDQUFBQSxRQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxpQkFBQUEsS0FBTUMsTUFBQUEsS0FBTSxnQkFBWkQsY0FBY1osSUFBQUEsTUFBUyxXQUFXO2dCQUNwQyxNQUFNcVAsZ0JBQWdCeFMsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQitELEtBQUtDLE1BQU0sQ0FBQzFFLFlBQVk7Z0JBQ2xFLE1BQU1RLFFBQVEsTUFBTSxJQUFJLENBQUNuQyxVQUFVLENBQUNzRSxXQUFXO2dCQUUvQyw0REFBNEQ7Z0JBQzVELHlEQUF5RDtnQkFDekQsNERBQTREO2dCQUM1RCwyQ0FBMkM7Z0JBQzNDLElBQUksQ0FBQzBJLG1CQUFtQjdLLE1BQU1JLFFBQVEsQ0FBQ3NTLGdCQUFnQjtvQkFDckRsTCxRQUFRa0w7b0JBQ1IzVSxXQUFXa0csS0FBS0MsTUFBTSxDQUFDMUUsWUFBWTtvQkFDbkNzRCxRQUFRO3dCQUFFLEdBQUdBLEtBQUs7d0JBQUUsR0FBR21CLEtBQUtDLE1BQU0sQ0FBQ2pCLFFBQVEsQ0FBQ0gsS0FBSztvQkFBQztvQkFDbERyRCxhQUFhcEIsQ0FBQUEsR0FBQUEsZ0JBQUFBLGNBQUFBLEVBQ1htRSxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CeUIsS0FBS0MsTUFBTSxDQUFDakIsUUFBUSxDQUFDbEYsUUFBUSxFQUFFLElBQUksQ0FBQ2dELE9BQU8sRUFDNURoRCxRQUFRO29CQUdiLGtEQUFrRDtvQkFDbERvVSxlQUFlLElBQUksQ0FBQ2hGLFVBQVUsQ0FBQzNGLE1BQU07b0JBQ3JDLElBQ0VpRixXQUFXMUIsT0FBTyxJQUNsQm9ILGdCQUNBLElBQUksQ0FBQzNLLEtBQUssS0FBS0EsU0FDZixDQUFDeEIsZUFDRDt3QkFDQSw0REFBNEQ7d0JBQzVELDZEQUE2RDt3QkFDN0QsZ0VBQWdFO3dCQUNoRSxPQUFPOzRCQUFFLEdBQUdtTSxZQUFZOzRCQUFFM0s7d0JBQU07b0JBQ2xDO2dCQUNGO1lBQ0Y7WUFFQSxJQUFJbUwsQ0FBQUEsR0FBQUEsWUFBQUEsVUFBQUEsRUFBV25MLFFBQVE7Z0JBQ3JCRixxQkFBcUI7b0JBQUV0SSxLQUFLTztvQkFBSTNCLFFBQVEsSUFBSTtnQkFBQztnQkFDN0MsT0FBTyxJQUFJRixRQUFlLEtBQU87WUFDbkM7WUFFQSxNQUFNa1IsWUFDSndELG1CQUNDLE1BQU0sSUFBSSxDQUFDN0IsY0FBYyxDQUFDL0ksT0FBT25GLElBQUksQ0FDcEMsQ0FBQ3VRLE1BQVM7b0JBQ1JwRCxXQUFXb0QsSUFBSXZTLElBQUk7b0JBQ25CeVIsYUFBYWMsSUFBSWQsV0FBVztvQkFDNUIvQixTQUFTNkMsSUFBSUMsR0FBRyxDQUFDOUMsT0FBTztvQkFDeEJDLFNBQVM0QyxJQUFJQyxHQUFHLENBQUM3QyxPQUFPO2lCQUMxQjtZQUdKLElBQUk5TyxJQUFvQixFQUFtQjtnQkFDekMsTUFBTSxFQUFFNFIsa0JBQWtCLEVBQUUsR0FBRy9KLG1CQUFPQSxDQUFDLHdGQUE2QjtnQkFDcEUsSUFBSSxDQUFDK0osbUJBQW1CbEUsVUFBVVksU0FBUyxHQUFHO29CQUM1QyxNQUFNLElBQUlsUyxNQUNQLDJEQUF3RFMsV0FBUztnQkFFdEU7WUFDRjtZQUNBLE1BQU1nVixvQkFBb0I5TyxRQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxpQkFBQUEsS0FBTXRELFFBQUFBLEtBQVEsZ0JBQWRzRCxlQUFnQjNDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDO1lBRXRELE1BQU15UixrQkFBa0JwRSxVQUFVbUIsT0FBTyxJQUFJbkIsVUFBVW9CLE9BQU87WUFFOUQseURBQXlEO1lBQ3pELDRDQUE0QztZQUM1QyxJQUFJK0Msc0JBQXFCOU8sUUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsS0FBTUUsUUFBUSxHQUFFO2dCQUN2QyxPQUFPLElBQUksQ0FBQ3NPLEdBQUcsQ0FBQ3hPLEtBQUtFLFFBQVEsQ0FBQztZQUNoQztZQUVBLE1BQU0sRUFBRTJMLEtBQUssRUFBRXhMLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDMk8sUUFBUSxDQUFDO2dCQUM5QyxJQUFJRCxpQkFBaUI7b0JBQ25CLElBQUkvTyxDQUFBQSxRQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxLQUFNRyxJQUFBQSxLQUFRLENBQUMyTyxtQkFBbUI7d0JBQ3BDLE9BQU87NEJBQUV6TyxVQUFVTCxLQUFLSyxRQUFROzRCQUFFd0wsT0FBTzdMLEtBQUtHLElBQUk7d0JBQUM7b0JBQ3JEO29CQUVBLE1BQU1ELFdBQVdGLENBQUFBLFFBQUFBLE9BQUFBLEtBQUFBLElBQUFBLEtBQU1FLFFBQUFBLElBQ25CRixLQUFLRSxRQUFRLEdBQ2IsSUFBSSxDQUFDdEcsVUFBVSxDQUFDeVUsV0FBVyxDQUFDO3dCQUMxQmhNLE1BQU1xRixDQUFBQSxHQUFBQSxXQUFBQSxvQkFBQUEsRUFBcUI7NEJBQUU1Tjs0QkFBVStFO3dCQUFNO3dCQUM3QzVFLFFBQVF1Qjt3QkFDUmhCO29CQUNGO29CQUVKLE1BQU15VSxVQUFVLE1BQU1yTixjQUFjO3dCQUNsQzFCO3dCQUNBOEIsZ0JBQWdCLElBQUksQ0FBQ3FGLEtBQUs7d0JBQzFCcEYsV0FBVzt3QkFDWEosZUFBZWlOLG9CQUFvQixDQUFDLElBQUksSUFBSSxDQUFDTixHQUFHO3dCQUNoRHRNLGNBQWMsQ0FBQzJJO3dCQUNmL0ksWUFBWTt3QkFDWk07b0JBQ0Y7b0JBRUEsT0FBTzt3QkFDTC9CLFVBQVU0TyxRQUFRNU8sUUFBUTt3QkFDMUJ3TCxPQUFPb0QsUUFBUTlPLElBQUksSUFBSSxDQUFDO29CQUMxQjtnQkFDRjtnQkFFQSxPQUFPO29CQUNMOUMsU0FBUyxDQUFDO29CQUNWd08sT0FBTyxNQUFNLElBQUksQ0FBQ2lDLGVBQWUsQ0FDL0JuRCxVQUFVWSxTQUFTLEVBQ25CO3dCQUVFelI7d0JBQ0ErRTt3QkFDQTVFLFFBQVFxQjt3QkFDUmQ7d0JBQ0FzQyxTQUFTLElBQUksQ0FBQ0EsT0FBTzt3QkFDckJ5QyxlQUFlLElBQUksQ0FBQ0EsYUFBYTtvQkFDbkM7Z0JBRUo7WUFDRjtZQUVBLG1EQUFtRDtZQUNuRCw2Q0FBNkM7WUFDN0MsdUNBQXVDO1lBQ3ZDLElBQUlvTCxVQUFVb0IsT0FBTyxJQUFJcUMsb0JBQW9CbE8sUUFBUSxJQUFJRyxVQUFVO2dCQUNqRSxPQUFPLElBQUksQ0FBQ21PLEdBQUcsQ0FBQ25PLFNBQVM7WUFDM0I7WUFFQSwrQ0FBK0M7WUFDL0MsNkRBQTZEO1lBQzdELElBQ0UsQ0FBQyxJQUFJLENBQUN3SyxTQUFTLElBQ2ZGLFVBQVVtQixPQUFPLElBQ2pCN08sUUFBUUMsR0FBRyxDQUFDMkYsTUFBYSxFQUFMLGVBQ3BCLENBQWdCK0QsRUFDaEIsRUFRRDtZQUVEaUYsTUFBTUcsU0FBUyxHQUFHN1MsT0FBT0MsTUFBTSxDQUFDLENBQUMsR0FBR3lTLE1BQU1HLFNBQVM7WUFDbkRyQixVQUFVa0IsS0FBSyxHQUFHQTtZQUNsQmxCLFVBQVVwSCxLQUFLLEdBQUdBO1lBQ2xCb0gsVUFBVTlMLEtBQUssR0FBR0E7WUFDbEI4TCxVQUFVblAsVUFBVSxHQUFHQTtZQUN2QixJQUFJLENBQUMwTixVQUFVLENBQUMzRixNQUFNLEdBQUdvSDtZQUV6QixPQUFPQTtRQUNULEVBQUUsT0FBTzVILEtBQUs7WUFDWixPQUFPLElBQUksQ0FBQzJLLG9CQUFvQixDQUM5QndCLENBQUFBLEdBQUFBLFNBQUFBLGNBQUFBLEVBQWVuTSxNQUNmakosVUFDQStFLE9BQ0F2RCxJQUNBa047UUFFSjtJQUNGO0lBRVFTLElBQ04vQixLQUF3QixFQUN4QmxILElBQXNCLEVBQ3RCNk0sV0FBNEMsRUFDN0I7UUFDZixJQUFJLENBQUMzRixLQUFLLEdBQUdBO1FBRWIsT0FBTyxJQUFJLENBQUNpSSxHQUFHLENBQ2JuUCxNQUNBLElBQUksQ0FBQ2tKLFVBQVUsQ0FBQyxRQUFRLENBQUNxQyxTQUFTLEVBQ2xDc0I7SUFFSjtJQUVBOzs7R0FHQyxHQUNEdUMsZUFBZUMsRUFBMEIsRUFBRTtRQUN6QyxJQUFJLENBQUNDLElBQUksR0FBR0Q7SUFDZDtJQUVBdkcsZ0JBQWdCeE4sRUFBVSxFQUFXO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUNyQixNQUFNLEVBQUUsT0FBTztRQUN6QixNQUFNLENBQUNzVixjQUFjQyxRQUFRLEdBQUcsSUFBSSxDQUFDdlYsTUFBTSxDQUFDcU0sS0FBSyxDQUFDLEtBQUs7UUFDdkQsTUFBTSxDQUFDbUosY0FBY0MsUUFBUSxHQUFHcFUsR0FBR2dMLEtBQUssQ0FBQyxLQUFLO1FBRTlDLHlFQUF5RTtRQUN6RSxJQUFJb0osV0FBV0gsaUJBQWlCRSxnQkFBZ0JELFlBQVlFLFNBQVM7WUFDbkUsT0FBTztRQUNUO1FBRUEsMERBQTBEO1FBQzFELElBQUlILGlCQUFpQkUsY0FBYztZQUNqQyxPQUFPO1FBQ1Q7UUFFQSx5REFBeUQ7UUFDekQsdURBQXVEO1FBQ3ZELDJEQUEyRDtRQUMzRCxtQ0FBbUM7UUFDbkMsT0FBT0QsWUFBWUU7SUFDckI7SUFFQTFHLGFBQWExTixFQUFVLEVBQVE7UUFDN0IsTUFBTSxHQUFHb0UsT0FBTyxFQUFFLENBQUMsR0FBR3BFLEdBQUdnTCxLQUFLLENBQUMsS0FBSztRQUVwQ3FKLENBQUFBLEdBQUFBLG9CQUFBQSxrQkFBQUEsRUFDRTtZQUNFLGdFQUFnRTtZQUNoRSxxQkFBcUI7WUFDckIsSUFBSWpRLFNBQVMsTUFBTUEsU0FBUyxPQUFPO2dCQUNqQ2MsT0FBT29QLFFBQVEsQ0FBQyxHQUFHO2dCQUNuQjtZQUNGO1lBRUEsOENBQThDO1lBQzlDLE1BQU1DLFVBQVVDLG1CQUFtQnBRO1lBQ25DLCtDQUErQztZQUMvQyxNQUFNcVEsT0FBTzVDLFNBQVM2QyxjQUFjLENBQUNIO1lBQ3JDLElBQUlFLE1BQU07Z0JBQ1JBLEtBQUtFLGNBQWM7Z0JBQ25CO1lBQ0Y7WUFDQSxrRUFBa0U7WUFDbEUscUJBQXFCO1lBQ3JCLE1BQU1DLFNBQVMvQyxTQUFTZ0QsaUJBQWlCLENBQUNOLFFBQVEsQ0FBQyxFQUFFO1lBQ3JELElBQUlLLFFBQVE7Z0JBQ1ZBLE9BQU9ELGNBQWM7WUFDdkI7UUFDRixHQUNBO1lBQ0VHLGdCQUFnQixJQUFJLENBQUN0SCxlQUFlLENBQUN4TjtRQUN2QztJQUVKO0lBRUErTixTQUFTcFAsTUFBYyxFQUFXO1FBQ2hDLE9BQU8sSUFBSSxDQUFDQSxNQUFNLEtBQUtBO0lBQ3pCO0lBRUE7Ozs7O0dBS0MsR0FDRCxNQUFNb1csU0FDSnRWLEdBQVcsRUFDWGQsTUFBb0IsRUFDcEJWLE9BQTZCLEVBQ2Q7UUFGZlUsSUFBQUEsV0FBQUEsS0FBQUEsR0FBQUEsU0FBaUJjO1FBQ2pCeEIsSUFBQUEsWUFBQUEsS0FBQUEsR0FBQUEsVUFBMkIsQ0FBQztRQUU1QiwyRkFBMkY7UUFDM0YsSUFBSTBELElBQW9CLEVBQW1CO1lBQ3pDO1FBQ0Y7UUFFQSxJQUFJLEtBQTZCLElBQUlxVCxDQUFBQSxHQUFBQSxPQUFBQSxLQUFBQSxFQUFNOVAsT0FBTytQLFNBQVMsQ0FBQ0MsU0FBUyxHQUFHO1lBQ3RFLGtGQUFrRjtZQUNsRiw4RUFBOEU7WUFDOUUsY0FBYztZQUNkO1FBQ0Y7UUFDQSxJQUFJcEgsU0FBU3hMLENBQUFBLEdBQUFBLGtCQUFBQSxnQkFBZ0IsRUFBQzdDO1FBQzlCLE1BQU0wVixjQUFjckgsT0FBT3RQLFFBQVE7UUFFbkMsSUFBSSxFQUFFQSxRQUFRLEVBQUUrRSxLQUFLLEVBQUUsR0FBR3VLO1FBQzFCLE1BQU1zSCxtQkFBbUI1VztRQUV6QixJQUFJbUQsS0FBK0IsRUFBRSxFQWVwQztRQUVELE1BQU1sQixRQUFRLE1BQU0sSUFBSSxDQUFDbkMsVUFBVSxDQUFDc0UsV0FBVztRQUMvQyxJQUFJMUMsYUFBYXZCO1FBRWpCLE1BQU1PLFNBQ0osT0FBT2pCLFFBQVFpQixNQUFNLEtBQUssY0FDdEJqQixRQUFRaUIsTUFBTSxJQUFJa0UsWUFDbEIsSUFBSSxDQUFDbEUsTUFBTTtRQUVqQixNQUFNaVAsb0JBQW9CLE1BQU14USxrQkFBa0I7WUFDaERnQixRQUFRQTtZQUNSTyxRQUFRQTtZQUNSYixRQUFRLElBQUk7UUFDZDtRQUVBLElBQUlzRCxLQUF5RCxFQUFFLEVBa0M5RDtRQUNEbU0sT0FBT3RQLFFBQVEsR0FBR2dDLG9CQUFvQnNOLE9BQU90UCxRQUFRLEVBQUVpQztRQUV2RCxJQUFJTSxDQUFBQSxHQUFBQSxXQUFBQSxjQUFBQSxFQUFlK00sT0FBT3RQLFFBQVEsR0FBRztZQUNuQ0EsV0FBV3NQLE9BQU90UCxRQUFRO1lBQzFCc1AsT0FBT3RQLFFBQVEsR0FBR0E7WUFDbEJYLE9BQU9DLE1BQU0sQ0FDWHlGLE9BQ0FNLENBQUFBLEdBQUFBLGNBQUFBLGVBQUFBLEVBQWdCN0MsQ0FBQUEsR0FBQUEsWUFBQUEsYUFBQUEsRUFBYzhNLE9BQU90UCxRQUFRLEdBQzNDRSxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVQyxRQUFRSCxRQUFRLEtBQ3ZCLENBQUM7WUFHUixJQUFJLENBQUMyUCxtQkFBbUI7Z0JBQ3RCMU8sTUFBTTJNLENBQUFBLEdBQUFBLFdBQUFBLG9CQUFBQSxFQUFxQjBCO1lBQzdCO1FBQ0Y7UUFFQSxNQUFNcEosT0FDSi9DLE1BQW1ELEdBQy9DLENBQUksR0FDSixNQUFNNkMsc0JBQXNCO1lBQzFCQyxXQUFXLElBQ1Q2QixjQUFjO29CQUNaMUIsVUFBVSxJQUFJLENBQUN0RyxVQUFVLENBQUN5VSxXQUFXLENBQUM7d0JBQ3BDaE0sTUFBTXFGLENBQUFBLEdBQUFBLFdBQUFBLG9CQUFvQixFQUFDOzRCQUN6QjVOLFVBQVU0Vzs0QkFDVjdSO3dCQUNGO3dCQUNBeVAsbUJBQW1CO3dCQUNuQnJVLFFBQVF1Qjt3QkFDUmhCO29CQUNGO29CQUNBdUgsZUFBZTtvQkFDZkMsZ0JBQWdCO29CQUNoQkMsV0FBVztvQkFDWEosZUFBZSxJQUFJLENBQUMyTSxHQUFHO29CQUN2QnRNLGNBQWMsQ0FBQyxJQUFJLENBQUMySSxTQUFTO29CQUM3Qi9JLFlBQVk7Z0JBQ2Q7WUFDRjdILFFBQVFBO1lBQ1JPLFFBQVFBO1lBQ1JiLFFBQVEsSUFBSTtRQUNkO1FBRU47OztLQUdDLEdBQ0QsSUFBSXFHLENBQUFBLFFBQUFBLE9BQUFBLEtBQUFBLElBQUFBLEtBQU1DLE1BQU0sQ0FBQ2IsSUFBQUEsTUFBUyxXQUFXO1lBQ25DZ0ssT0FBT3RQLFFBQVEsR0FBR2tHLEtBQUtDLE1BQU0sQ0FBQzFFLFlBQVk7WUFDMUN6QixXQUFXa0csS0FBS0MsTUFBTSxDQUFDMUUsWUFBWTtZQUNuQ3NELFFBQVE7Z0JBQUUsR0FBR0EsS0FBSztnQkFBRSxHQUFHbUIsS0FBS0MsTUFBTSxDQUFDakIsUUFBUSxDQUFDSCxLQUFLO1lBQUM7WUFDbERyRCxhQUFhd0UsS0FBS0MsTUFBTSxDQUFDakIsUUFBUSxDQUFDbEYsUUFBUTtZQUMxQ2lCLE1BQU0yTSxDQUFBQSxHQUFBQSxXQUFBQSxvQkFBQUEsRUFBcUIwQjtRQUM3QjtRQUVBOzs7S0FHQyxHQUNELElBQUlwSixDQUFBQSxRQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxLQUFNQyxNQUFNLENBQUNiLElBQUksTUFBSyxxQkFBcUI7WUFDN0M7UUFDRjtRQUVBLE1BQU1tRSxRQUFRdEgsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQm5DO1FBRWxDLElBQUksTUFBTSxJQUFJLENBQUMwSyxJQUFJLENBQUN2SyxRQUFRdUIsWUFBWWpDLFFBQVFpQixNQUFNLEVBQUUsT0FBTztZQUM3RCxJQUFJLENBQUMwTyxVQUFVLENBQUN1SCxZQUFZLEdBQUc7Z0JBQUVsSCxhQUFhO1lBQUs7UUFDckQ7UUFFQSxNQUFNOVAsUUFBUXdFLEdBQUcsQ0FBQztZQUNoQixJQUFJLENBQUNyRSxVQUFVLENBQUNnWCxNQUFNLENBQUNyTixPQUFPbkYsSUFBSSxDQUFDLENBQUN5UztnQkFDbEMsT0FBT0EsUUFDSGpQLGNBQWM7b0JBQ1oxQixVQUFVRixDQUFBQSxRQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxLQUFNRyxJQUFBQSxJQUNaSCxRQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxLQUFNRSxRQUFRLEdBQ2QsSUFBSSxDQUFDdEcsVUFBVSxDQUFDeVUsV0FBVyxDQUFDO3dCQUMxQmhNLE1BQU10SDt3QkFDTmQsUUFBUXVCO3dCQUNSaEIsUUFBUUE7b0JBQ1Y7b0JBQ0p3SCxnQkFBZ0I7b0JBQ2hCQyxXQUFXO29CQUNYSixlQUFlLElBQUksQ0FBQzJNLEdBQUc7b0JBQ3ZCdE0sY0FBYyxDQUFDLElBQUksQ0FBQzJJLFNBQVM7b0JBQzdCL0ksWUFBWTtvQkFDWk0sMEJBQ0U3SSxRQUFRNkksd0JBQXdCLElBQy9CN0ksUUFBUXVYLFFBQVEsSUFDZixDQUFDLENBQUM3VCxJQUEwQztnQkFDbEQsR0FDR21CLElBQUksQ0FBQyxJQUFNLE9BQ1gwRSxLQUFLLENBQUMsSUFBTSxTQUNmO1lBQ047WUFDQSxJQUFJLENBQUNsSixVQUFVLENBQUNMLFFBQVF1WCxRQUFRLEdBQUcsYUFBYSxXQUFXLENBQUN2TjtTQUM3RDtJQUNIO0lBRUEsTUFBTStJLGVBQWUvSSxLQUFhLEVBQUU7UUFDbEMsTUFBTUcsa0JBQWtCSixvQkFBb0I7WUFBRUM7WUFBTzVKLFFBQVEsSUFBSTtRQUFDO1FBRWxFLElBQUk7WUFDRixNQUFNcVgsa0JBQWtCLE1BQU0sSUFBSSxDQUFDcFgsVUFBVSxDQUFDcVgsUUFBUSxDQUFDMU47WUFDdkRHO1lBRUEsT0FBT3NOO1FBQ1QsRUFBRSxPQUFPak8sS0FBSztZQUNaVztZQUNBLE1BQU1YO1FBQ1I7SUFDRjtJQUVBaU0sU0FBWWtDLEVBQW9CLEVBQWM7UUFDNUMsSUFBSTVYLFlBQVk7UUFDaEIsTUFBTWtLLFNBQVM7WUFDYmxLLFlBQVk7UUFDZDtRQUNBLElBQUksQ0FBQ21LLEdBQUcsR0FBR0Q7UUFDWCxPQUFPME4sS0FBSzlTLElBQUksQ0FBQyxDQUFDNEI7WUFDaEIsSUFBSXdELFdBQVcsSUFBSSxDQUFDQyxHQUFHLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQ0EsR0FBRyxHQUFHO1lBQ2I7WUFFQSxJQUFJbkssV0FBVztnQkFDYixNQUFNeUosTUFBVyxJQUFJMUosTUFBTTtnQkFDM0IwSixJQUFJekosU0FBUyxHQUFHO2dCQUNoQixNQUFNeUo7WUFDUjtZQUVBLE9BQU8vQztRQUNUO0lBQ0Y7SUFFQThOLGdCQUNFdkMsU0FBd0IsRUFDeEI0RixHQUFvQixFQUNVO1FBQzlCLE1BQU0sRUFBRTVGLFdBQVc2RixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUNsSSxVQUFVLENBQUMsUUFBUTtRQUNuRCxNQUFNbUksVUFBVSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0Y7UUFDOUJELElBQUlFLE9BQU8sR0FBR0E7UUFDZCxPQUFPRSxDQUFBQSxHQUFBQSxPQUFBQSxtQkFBQUEsRUFBNENILEtBQUs7WUFDdERDO1lBQ0E5RjtZQUNBNVIsUUFBUSxJQUFJO1lBQ1p3WDtRQUNGO0lBQ0Y7SUFFQSxJQUFJNU4sUUFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMyRCxLQUFLLENBQUMzRCxLQUFLO0lBQ3pCO0lBRUEsSUFBSXpKLFdBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDb04sS0FBSyxDQUFDcE4sUUFBUTtJQUM1QjtJQUVBLElBQUkrRSxRQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQ3FJLEtBQUssQ0FBQ3JJLEtBQUs7SUFDekI7SUFFQSxJQUFJNUUsU0FBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUNpTixLQUFLLENBQUNqTixNQUFNO0lBQzFCO0lBRUEsSUFBSU8sU0FBNkI7UUFDL0IsT0FBTyxJQUFJLENBQUMwTSxLQUFLLENBQUMxTSxNQUFNO0lBQzFCO0lBRUEsSUFBSXNRLGFBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDNUQsS0FBSyxDQUFDNEQsVUFBVTtJQUM5QjtJQUVBLElBQUlELFlBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDM0QsS0FBSyxDQUFDMkQsU0FBUztJQUM3QjtJQWgxREEyRyxZQUNFMVgsUUFBZ0IsRUFDaEIrRSxLQUFxQixFQUNyQnZELEVBQVUsRUFDVixFQUNFbVcsWUFBWSxFQUNaN1gsVUFBVSxFQUNWd1gsR0FBRyxFQUNITSxPQUFPLEVBQ1BuRyxTQUFTLEVBQ1R4SSxHQUFHLEVBQ0g0TyxZQUFZLEVBQ1o3RyxVQUFVLEVBQ1Z0USxNQUFNLEVBQ05zQyxPQUFPLEVBQ1B5QyxhQUFhLEVBQ2J1SSxhQUFhLEVBQ2IrQyxTQUFTLEVBZVYsQ0FDRDtRQXpFRix5Q0FBeUM7YUFDekMyRCxHQUFBQSxHQUFxQixDQUFDO1FBQ3RCLDBDQUEwQzthQUMxQ0QsR0FBQUEsR0FBcUIsQ0FBQzthQWdCdEJxRCxvQkFBQUEsR0FBdUI7YUFpQmY3TixJQUFBQSxHQUFlaEw7YUErSnZCOFksVUFBQUEsR0FBYSxDQUFDM0U7WUFDWixNQUFNLEVBQUUwRSxvQkFBb0IsRUFBRSxHQUFHLElBQUk7WUFDckMsSUFBSSxDQUFDQSxvQkFBb0IsR0FBRztZQUU1QixNQUFNMUssUUFBUWdHLEVBQUVoRyxLQUFLO1lBRXJCLElBQUksQ0FBQ0EsT0FBTztnQkFDViw2Q0FBNkM7Z0JBQzdDLHNEQUFzRDtnQkFDdEQsa0NBQWtDO2dCQUNsQyxFQUFFO2dCQUNGLG9FQUFvRTtnQkFDcEUsNEJBQTRCO2dCQUM1Qiw0REFBNEQ7Z0JBQzVELGtGQUFrRjtnQkFDbEYsZ0RBQWdEO2dCQUNoRCxNQUFNLEVBQUVwTixRQUFRLEVBQUUrRSxLQUFLLEVBQUUsR0FBRyxJQUFJO2dCQUNoQyxJQUFJLENBQUNrSyxXQUFXLENBQ2QsZ0JBQ0FyQixDQUFBQSxHQUFBQSxXQUFBQSxvQkFBQUEsRUFBcUI7b0JBQUU1TixVQUFVUSxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZUjtvQkFBVytFO2dCQUFNLElBQzlEME8sQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUE7Z0JBRUY7WUFDRjtZQUVBLGtGQUFrRjtZQUNsRixJQUFJckcsTUFBTTRLLElBQUksRUFBRTtnQkFDZHRSLE9BQU8rQixRQUFRLENBQUNvQixNQUFNO2dCQUN0QjtZQUNGO1lBRUEsSUFBSSxDQUFDdUQsTUFBTXVHLEdBQUcsRUFBRTtnQkFDZDtZQUNGO1lBRUEseURBQXlEO1lBQ3pELElBQ0VtRSx3QkFDQSxJQUFJLENBQUNwWCxNQUFNLEtBQUswTSxNQUFNM04sT0FBTyxDQUFDaUIsTUFBTSxJQUNwQzBNLE1BQU01TCxFQUFFLEtBQUssSUFBSSxDQUFDckIsTUFBTSxFQUN4QjtnQkFDQTtZQUNGO1lBRUEsSUFBSXlNO1lBQ0osTUFBTSxFQUFFM0wsR0FBRyxFQUFFTyxFQUFFLEVBQUUvQixPQUFPLEVBQUUwUixHQUFHLEVBQUUsR0FBRy9EO1lBQ2xDLElBQUlqSyxLQUFxQyxFQUFFLEVBb0IxQztZQUNELElBQUksQ0FBQzhHLElBQUksR0FBR2tIO1lBRVosTUFBTSxFQUFFblIsUUFBUSxFQUFFLEdBQUc4RCxDQUFBQSxHQUFBQSxrQkFBQUEsZ0JBQUFBLEVBQWlCN0M7WUFFdEMsZ0RBQWdEO1lBQ2hELHlEQUF5RDtZQUN6RCxJQUNFLElBQUksQ0FBQ3NNLEtBQUssSUFDVi9MLE9BQU9oQixDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZLElBQUksQ0FBQ0wsTUFBTSxLQUM5QkgsYUFBYVEsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWSxJQUFJLENBQUNSLFFBQVEsR0FDdEM7Z0JBQ0E7WUFDRjtZQUVBLHVEQUF1RDtZQUN2RCx3REFBd0Q7WUFDeEQsSUFBSSxJQUFJLENBQUN3VixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUNBLElBQUksQ0FBQ3BJLFFBQVE7Z0JBQ2xDO1lBQ0Y7WUFFQSxJQUFJLENBQUM1QyxNQUFNLENBQ1QsZ0JBQ0F2SixLQUNBTyxJQUNBbkMsT0FBT0MsTUFBTSxDQUEyQyxDQUFDLEdBQUdHLFNBQVM7Z0JBQ25FdU4sU0FBU3ZOLFFBQVF1TixPQUFPLElBQUksSUFBSSxDQUFDMEcsUUFBUTtnQkFDekNoVCxRQUFRakIsUUFBUWlCLE1BQU0sSUFBSSxJQUFJLENBQUMrRSxhQUFhO2dCQUM1QyxpREFBaUQ7Z0JBQ2pEc0gsSUFBSTtZQUNOLElBQ0FIO1FBRUo7UUE1TkUsdUNBQXVDO1FBQ3ZDLE1BQU1uRCxRQUFRdEgsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQm5DO1FBRWxDLDZDQUE2QztRQUM3QyxJQUFJLENBQUNvUCxVQUFVLEdBQUcsQ0FBQztRQUNuQixvREFBb0Q7UUFDcEQsd0RBQXdEO1FBQ3hELGtDQUFrQztRQUNsQyxJQUFJcFAsYUFBYSxXQUFXO1lBQzFCLElBQUksQ0FBQ29QLFVBQVUsQ0FBQzNGLE1BQU0sR0FBRztnQkFDdkJnSTtnQkFDQXlHLFNBQVM7Z0JBQ1RuRyxPQUFPNEY7Z0JBQ1AxTztnQkFDQStJLFNBQVMyRixnQkFBZ0JBLGFBQWEzRixPQUFPO2dCQUM3Q0MsU0FBUzBGLGdCQUFnQkEsYUFBYTFGLE9BQU87WUFDL0M7UUFDRjtRQUVBLElBQUksQ0FBQzdDLFVBQVUsQ0FBQyxRQUFRLEdBQUc7WUFDekJxQyxXQUFXNkY7WUFDWHZELGFBQWEsRUFFWjtRQUNIO1FBRUEsNENBQTRDO1FBQzVDLGdGQUFnRjtRQUNoRixJQUFJLENBQUNuRixNQUFNLEdBQUcxUCxPQUFPMFAsTUFBTTtRQUUzQixJQUFJLENBQUM5TyxVQUFVLEdBQUdBO1FBQ2xCLDhEQUE4RDtRQUM5RCxrREFBa0Q7UUFDbEQsTUFBTXFZLG9CQUNKNVYsQ0FBQUEsR0FBQUEsV0FBQUEsY0FBQUEsRUFBZXZDLGFBQWFvSyxLQUFLdUksYUFBYSxDQUFDeUYsVUFBVTtRQUUzRCxJQUFJLENBQUN0VixRQUFRLEdBQUdLLE1BQWtDLElBQUk7UUFDdEQsSUFBSSxDQUFDa1MsR0FBRyxHQUFHd0M7UUFDWCxJQUFJLENBQUNsTyxHQUFHLEdBQUc7UUFDWCxJQUFJLENBQUM2TixRQUFRLEdBQUdJO1FBQ2hCLDZEQUE2RDtRQUM3RCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDckssS0FBSyxHQUFHO1FBQ2IsSUFBSSxDQUFDVSxjQUFjLEdBQUc7UUFDdEIsSUFBSSxDQUFDWCxPQUFPLEdBQUcsQ0FBQyxDQUNkbEQsQ0FBQUEsS0FBS3VJLGFBQWEsQ0FBQzJGLElBQUksSUFDdkJsTyxLQUFLdUksYUFBYSxDQUFDNEYsR0FBRyxJQUN0Qm5PLEtBQUt1SSxhQUFhLENBQUM2RixxQkFBcUIsSUFDdkNwTyxLQUFLdUksYUFBYSxDQUFDOEYsTUFBTSxJQUFJLENBQUNyTyxLQUFLdUksYUFBYSxDQUFDK0YsR0FBRyxJQUNwRCxDQUFDUCxxQkFDQSxDQUFDL04sS0FBSzNCLFFBQVEsQ0FBQ2tRLE1BQU0sSUFDckIsQ0FBQ3hWLEtBQStCO1FBR3BDLElBQUlBLEtBQStCLEVBQUUsRUFRcEM7UUFFRCxJQUFJLENBQUNpSyxLQUFLLEdBQUc7WUFDWDNEO1lBQ0F6SjtZQUNBK0U7WUFDQTVFLFFBQVFnWSxvQkFBb0JuWSxXQUFXd0I7WUFDdkN1UCxXQUFXLENBQUMsQ0FBQ0E7WUFDYnJRLFFBQVF5QyxNQUErQixHQUFHekMsQ0FBTUEsR0FBR2tFO1lBQ25Eb007UUFDRjtRQUVBLElBQUksQ0FBQzRILGdDQUFnQyxHQUFHalosUUFBUUMsT0FBTyxDQUFDO1FBRXhELElBQUksSUFBNkIsRUFBRTtZQUNqQyxrRUFBa0U7WUFDbEUsNENBQTRDO1lBQzVDLElBQUksQ0FBQzRCLEdBQUdKLFVBQVUsQ0FBQyxPQUFPO2dCQUN4QiwyREFBMkQ7Z0JBQzNELDREQUE0RDtnQkFDNUQsTUFBTTNCLFVBQTZCO29CQUFFaUI7Z0JBQU87Z0JBQzVDLE1BQU1QLFNBQVNzVCxDQUFBQSxHQUFBQSxPQUFBQSxNQUFBQTtnQkFFZixJQUFJLENBQUNtRixnQ0FBZ0MsR0FBR3paLGtCQUFrQjtvQkFDeERVLFFBQVEsSUFBSTtvQkFDWmE7b0JBQ0FQO2dCQUNGLEdBQUdtRSxJQUFJLENBQUMsQ0FBQ2M7b0JBQ1Asa0VBQWtFO29CQUNsRSxzREFBc0Q7O29CQUNwRDNGLFFBQWdCeU4sa0JBQWtCLEdBQUcxTCxPQUFPeEI7b0JBRTlDLElBQUksQ0FBQ2lQLFdBQVcsQ0FDZCxnQkFDQTdKLFVBQ0lqRixTQUNBeU4sQ0FBQUEsR0FBQUEsV0FBQUEsb0JBQUFBLEVBQXFCO3dCQUNuQjVOLFVBQVVRLENBQUFBLEdBQUFBLGFBQUFBLFdBQUFBLEVBQVlSO3dCQUN0QitFO29CQUNGLElBQ0o1RSxRQUNBVjtvQkFFRixPQUFPMkY7Z0JBQ1Q7WUFDRjtZQUVBc0IsT0FBT21TLGdCQUFnQixDQUFDLFlBQVksSUFBSSxDQUFDZCxVQUFVO1lBRW5ELDJEQUEyRDtZQUMzRCxtREFBbUQ7WUFDbkQsSUFBSTVVLEtBQXFDLEVBQUUsRUFJMUM7UUFDSDtJQUNGO0FBd3JERjtBQWg0RHFCakUsT0E2Q1owUCxNQUFBQSxHQUFtQ21LLENBQUFBLEdBQUFBLE1BQUFBLE9BQUkiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9zaGFyZWQvbGliL3JvdXRlci9yb3V0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6bm8tY29uc29sZVxuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IERvbWFpbkxvY2FsZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZlci9jb25maWcnXG5pbXBvcnQgdHlwZSB7IE1pdHRFbWl0dGVyIH0gZnJvbSAnLi4vbWl0dCdcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB0eXBlIHsgUm91dGVyRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvcm91dGVyJ1xuaW1wb3J0IHR5cGUgeyBTdHlsZVNoZWV0VHVwbGUgfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvcGFnZS1sb2FkZXInXG5pbXBvcnQgdHlwZSB7IFVybE9iamVjdCB9IGZyb20gJ3VybCdcbmltcG9ydCB0eXBlIFBhZ2VMb2FkZXIgZnJvbSAnLi4vLi4vLi4vY2xpZW50L3BhZ2UtbG9hZGVyJ1xuaW1wb3J0IHR5cGUgeyBBcHBDb250ZXh0VHlwZSwgTmV4dFBhZ2VDb250ZXh0LCBORVhUX0RBVEEgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tICcuL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaCdcbmltcG9ydCB7XG4gIGdldENsaWVudEJ1aWxkTWFuaWZlc3QsXG4gIGlzQXNzZXRFcnJvcixcbiAgbWFya0Fzc2V0RXJyb3IsXG59IGZyb20gJy4uLy4uLy4uL2NsaWVudC9yb3V0ZS1sb2FkZXInXG5pbXBvcnQgeyBoYW5kbGVDbGllbnRTY3JpcHRMb2FkIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L3NjcmlwdCdcbmltcG9ydCBpc0Vycm9yLCB7IGdldFByb3BlckVycm9yIH0gZnJvbSAnLi4vLi4vLi4vbGliL2lzLWVycm9yJ1xuaW1wb3J0IHsgZGVub3JtYWxpemVQYWdlUGF0aCB9IGZyb20gJy4uL3BhZ2UtcGF0aC9kZW5vcm1hbGl6ZS1wYWdlLXBhdGgnXG5pbXBvcnQgeyBub3JtYWxpemVMb2NhbGVQYXRoIH0gZnJvbSAnLi4vaTE4bi9ub3JtYWxpemUtbG9jYWxlLXBhdGgnXG5pbXBvcnQgbWl0dCBmcm9tICcuLi9taXR0J1xuaW1wb3J0IHsgZ2V0TG9jYXRpb25PcmlnaW4sIGdldFVSTCwgbG9hZEdldEluaXRpYWxQcm9wcywgU1QgfSBmcm9tICcuLi91dGlscydcbmltcG9ydCB7IGlzRHluYW1pY1JvdXRlIH0gZnJvbSAnLi91dGlscy9pcy1keW5hbWljJ1xuaW1wb3J0IHsgcGFyc2VSZWxhdGl2ZVVybCB9IGZyb20gJy4vdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsJ1xuaW1wb3J0IHJlc29sdmVSZXdyaXRlcyBmcm9tICcuL3V0aWxzL3Jlc29sdmUtcmV3cml0ZXMnXG5pbXBvcnQgeyBnZXRSb3V0ZU1hdGNoZXIgfSBmcm9tICcuL3V0aWxzL3JvdXRlLW1hdGNoZXInXG5pbXBvcnQgeyBnZXRSb3V0ZVJlZ2V4IH0gZnJvbSAnLi91dGlscy9yb3V0ZS1yZWdleCdcbmltcG9ydCB7IGZvcm1hdFdpdGhWYWxpZGF0aW9uIH0gZnJvbSAnLi91dGlscy9mb3JtYXQtdXJsJ1xuaW1wb3J0IHsgZGV0ZWN0RG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L2RldGVjdC1kb21haW4tbG9jYWxlJ1xuaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi91dGlscy9wYXJzZS1wYXRoJ1xuaW1wb3J0IHsgYWRkTG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L2FkZC1sb2NhbGUnXG5pbXBvcnQgeyByZW1vdmVMb2NhbGUgfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvcmVtb3ZlLWxvY2FsZSdcbmltcG9ydCB7IHJlbW92ZUJhc2VQYXRoIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L3JlbW92ZS1iYXNlLXBhdGgnXG5pbXBvcnQgeyBhZGRCYXNlUGF0aCB9IGZyb20gJy4uLy4uLy4uL2NsaWVudC9hZGQtYmFzZS1wYXRoJ1xuaW1wb3J0IHsgaGFzQmFzZVBhdGggfSBmcm9tICcuLi8uLi8uLi9jbGllbnQvaGFzLWJhc2UtcGF0aCdcbmltcG9ydCB7IHJlc29sdmVIcmVmIH0gZnJvbSAnLi4vLi4vLi4vY2xpZW50L3Jlc29sdmUtaHJlZidcbmltcG9ydCB7IGlzQVBJUm91dGUgfSBmcm9tICcuLi8uLi8uLi9saWIvaXMtYXBpLXJvdXRlJ1xuaW1wb3J0IHsgZ2V0TmV4dFBhdGhuYW1lSW5mbyB9IGZyb20gJy4vdXRpbHMvZ2V0LW5leHQtcGF0aG5hbWUtaW5mbydcbmltcG9ydCB7IGZvcm1hdE5leHRQYXRobmFtZUluZm8gfSBmcm9tICcuL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8nXG5pbXBvcnQgeyBjb21wYXJlUm91dGVyU3RhdGVzIH0gZnJvbSAnLi91dGlscy9jb21wYXJlLXN0YXRlcydcbmltcG9ydCB7IGlzTG9jYWxVUkwgfSBmcm9tICcuL3V0aWxzL2lzLWxvY2FsLXVybCdcbmltcG9ydCB7IGlzQm90IH0gZnJvbSAnLi91dGlscy9pcy1ib3QnXG5pbXBvcnQgeyBvbWl0IH0gZnJvbSAnLi91dGlscy9vbWl0J1xuaW1wb3J0IHsgaW50ZXJwb2xhdGVBcyB9IGZyb20gJy4vdXRpbHMvaW50ZXJwb2xhdGUtYXMnXG5pbXBvcnQgeyBoYW5kbGVTbW9vdGhTY3JvbGwgfSBmcm9tICcuL3V0aWxzL2hhbmRsZS1zbW9vdGgtc2Nyb2xsJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5pbXBvcnQgeyBNQVRDSEVEX1BBVEhfSEVBREVSIH0gZnJvbSAnLi4vLi4vLi4vbGliL2NvbnN0YW50cydcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAvKiBwcm9kICovXG4gICAgX19ORVhUX0RBVEFfXzogTkVYVF9EQVRBXG4gIH1cbn1cblxuaW50ZXJmYWNlIFJvdXRlUHJvcGVydGllcyB7XG4gIHNoYWxsb3c6IGJvb2xlYW5cbn1cblxuaW50ZXJmYWNlIFRyYW5zaXRpb25PcHRpb25zIHtcbiAgc2hhbGxvdz86IGJvb2xlYW5cbiAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2VcbiAgc2Nyb2xsPzogYm9vbGVhblxuICB1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGU/OiBib29sZWFuXG59XG5cbmludGVyZmFjZSBOZXh0SGlzdG9yeVN0YXRlIHtcbiAgdXJsOiBzdHJpbmdcbiAgYXM6IHN0cmluZ1xuICBvcHRpb25zOiBUcmFuc2l0aW9uT3B0aW9uc1xufVxuXG5leHBvcnQgdHlwZSBIaXN0b3J5U3RhdGUgPVxuICB8IG51bGxcbiAgfCB7IF9fTkE6IHRydWU7IF9fTj86IGZhbHNlIH1cbiAgfCB7IF9fTjogZmFsc2U7IF9fTkE/OiBmYWxzZSB9XG4gIHwgKHsgX19OQT86IGZhbHNlOyBfX046IHRydWU7IGtleTogc3RyaW5nIH0gJiBOZXh0SGlzdG9yeVN0YXRlKVxuXG5mdW5jdGlvbiBidWlsZENhbmNlbGxhdGlvbkVycm9yKCkge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgRXJyb3IoJ1JvdXRlIENhbmNlbGxlZCcpLCB7XG4gICAgY2FuY2VsbGVkOiB0cnVlLFxuICB9KVxufVxuXG5pbnRlcmZhY2UgTWlkZGxld2FyZUVmZmVjdFBhcmFtczxUIGV4dGVuZHMgRmV0Y2hEYXRhT3V0cHV0PiB7XG4gIGZldGNoRGF0YT86ICgpID0+IFByb21pc2U8VD5cbiAgbG9jYWxlPzogc3RyaW5nXG4gIGFzUGF0aDogc3RyaW5nXG4gIHJvdXRlcjogUm91dGVyXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYXRjaGVzTWlkZGxld2FyZTxUIGV4dGVuZHMgRmV0Y2hEYXRhT3V0cHV0PihcbiAgb3B0aW9uczogTWlkZGxld2FyZUVmZmVjdFBhcmFtczxUPlxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IG1hdGNoZXJzID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKFxuICAgIG9wdGlvbnMucm91dGVyLnBhZ2VMb2FkZXIuZ2V0TWlkZGxld2FyZSgpXG4gIClcbiAgaWYgKCFtYXRjaGVycykgcmV0dXJuIGZhbHNlXG5cbiAgY29uc3QgeyBwYXRobmFtZTogYXNQYXRobmFtZSB9ID0gcGFyc2VQYXRoKG9wdGlvbnMuYXNQYXRoKVxuICAvLyByZW1vdmUgYmFzZVBhdGggZmlyc3Qgc2luY2UgcGF0aCBwcmVmaXggaGFzIHRvIGJlIGluIHRoZSBvcmRlciBvZiBgLyR7YmFzZVBhdGh9LyR7bG9jYWxlfWBcbiAgY29uc3QgY2xlYW5lZEFzID0gaGFzQmFzZVBhdGgoYXNQYXRobmFtZSlcbiAgICA/IHJlbW92ZUJhc2VQYXRoKGFzUGF0aG5hbWUpXG4gICAgOiBhc1BhdGhuYW1lXG4gIGNvbnN0IGFzV2l0aEJhc2VQYXRoQW5kTG9jYWxlID0gYWRkQmFzZVBhdGgoXG4gICAgYWRkTG9jYWxlKGNsZWFuZWRBcywgb3B0aW9ucy5sb2NhbGUpXG4gIClcblxuICAvLyBDaGVjayBvbmx5IHBhdGggbWF0Y2ggb24gY2xpZW50LiBNYXRjaGluZyBcImhhc1wiIHNob3VsZCBiZSBkb25lIG9uIHNlcnZlclxuICAvLyB3aGVyZSB3ZSBjYW4gYWNjZXNzIG1vcmUgaW5mbyBzdWNoIGFzIGhlYWRlcnMsIEh0dHBPbmx5IGNvb2tpZSwgZXRjLlxuICByZXR1cm4gbWF0Y2hlcnMuc29tZSgobSkgPT5cbiAgICBuZXcgUmVnRXhwKG0ucmVnZXhwKS50ZXN0KGFzV2l0aEJhc2VQYXRoQW5kTG9jYWxlKVxuICApXG59XG5cbmZ1bmN0aW9uIHN0cmlwT3JpZ2luKHVybDogc3RyaW5nKSB7XG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcblxuICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgob3JpZ2luKSA/IHVybC5zdWJzdHJpbmcob3JpZ2luLmxlbmd0aCkgOiB1cmxcbn1cblxuZnVuY3Rpb24gcHJlcGFyZVVybEFzKHJvdXRlcjogTmV4dFJvdXRlciwgdXJsOiBVcmwsIGFzPzogVXJsKSB7XG4gIC8vIElmIHVybCBhbmQgYXMgcHJvdmlkZWQgYXMgYW4gb2JqZWN0IHJlcHJlc2VudGF0aW9uLFxuICAvLyB3ZSdsbCBmb3JtYXQgdGhlbSBpbnRvIHRoZSBzdHJpbmcgdmVyc2lvbiBoZXJlLlxuICBsZXQgW3Jlc29sdmVkSHJlZiwgcmVzb2x2ZWRBc10gPSByZXNvbHZlSHJlZihyb3V0ZXIsIHVybCwgdHJ1ZSlcbiAgY29uc3Qgb3JpZ2luID0gZ2V0TG9jYXRpb25PcmlnaW4oKVxuICBjb25zdCBocmVmV2FzQWJzb2x1dGUgPSByZXNvbHZlZEhyZWYuc3RhcnRzV2l0aChvcmlnaW4pXG4gIGNvbnN0IGFzV2FzQWJzb2x1dGUgPSByZXNvbHZlZEFzICYmIHJlc29sdmVkQXMuc3RhcnRzV2l0aChvcmlnaW4pXG5cbiAgcmVzb2x2ZWRIcmVmID0gc3RyaXBPcmlnaW4ocmVzb2x2ZWRIcmVmKVxuICByZXNvbHZlZEFzID0gcmVzb2x2ZWRBcyA/IHN0cmlwT3JpZ2luKHJlc29sdmVkQXMpIDogcmVzb2x2ZWRBc1xuXG4gIGNvbnN0IHByZXBhcmVkVXJsID0gaHJlZldhc0Fic29sdXRlID8gcmVzb2x2ZWRIcmVmIDogYWRkQmFzZVBhdGgocmVzb2x2ZWRIcmVmKVxuICBjb25zdCBwcmVwYXJlZEFzID0gYXNcbiAgICA/IHN0cmlwT3JpZ2luKHJlc29sdmVIcmVmKHJvdXRlciwgYXMpKVxuICAgIDogcmVzb2x2ZWRBcyB8fCByZXNvbHZlZEhyZWZcblxuICByZXR1cm4ge1xuICAgIHVybDogcHJlcGFyZWRVcmwsXG4gICAgYXM6IGFzV2FzQWJzb2x1dGUgPyBwcmVwYXJlZEFzIDogYWRkQmFzZVBhdGgocHJlcGFyZWRBcyksXG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZUR5bmFtaWNSb3V0ZShwYXRobmFtZTogc3RyaW5nLCBwYWdlczogc3RyaW5nW10pIHtcbiAgY29uc3QgY2xlYW5QYXRobmFtZSA9IHJlbW92ZVRyYWlsaW5nU2xhc2goZGVub3JtYWxpemVQYWdlUGF0aChwYXRobmFtZSkpXG4gIGlmIChjbGVhblBhdGhuYW1lID09PSAnLzQwNCcgfHwgY2xlYW5QYXRobmFtZSA9PT0gJy9fZXJyb3InKSB7XG4gICAgcmV0dXJuIHBhdGhuYW1lXG4gIH1cblxuICAvLyBoYW5kbGUgcmVzb2x2aW5nIGhyZWYgZm9yIGR5bmFtaWMgcm91dGVzXG4gIGlmICghcGFnZXMuaW5jbHVkZXMoY2xlYW5QYXRobmFtZSkpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgYXJyYXktY2FsbGJhY2stcmV0dXJuXG4gICAgcGFnZXMuc29tZSgocGFnZSkgPT4ge1xuICAgICAgaWYgKGlzRHluYW1pY1JvdXRlKHBhZ2UpICYmIGdldFJvdXRlUmVnZXgocGFnZSkucmUudGVzdChjbGVhblBhdGhuYW1lKSkge1xuICAgICAgICBwYXRobmFtZSA9IHBhZ2VcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIHJldHVybiByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxufVxuXG5mdW5jdGlvbiBnZXRNaWRkbGV3YXJlRGF0YTxUIGV4dGVuZHMgRmV0Y2hEYXRhT3V0cHV0PihcbiAgc291cmNlOiBzdHJpbmcsXG4gIHJlc3BvbnNlOiBSZXNwb25zZSxcbiAgb3B0aW9uczogTWlkZGxld2FyZUVmZmVjdFBhcmFtczxUPlxuKSB7XG4gIGNvbnN0IG5leHRDb25maWcgPSB7XG4gICAgYmFzZVBhdGg6IG9wdGlvbnMucm91dGVyLmJhc2VQYXRoLFxuICAgIGkxOG46IHsgbG9jYWxlczogb3B0aW9ucy5yb3V0ZXIubG9jYWxlcyB9LFxuICAgIHRyYWlsaW5nU2xhc2g6IEJvb2xlYW4ocHJvY2Vzcy5lbnYuX19ORVhUX1RSQUlMSU5HX1NMQVNIKSxcbiAgfVxuICBjb25zdCByZXdyaXRlSGVhZGVyID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ3gtbmV4dGpzLXJld3JpdGUnKVxuXG4gIGxldCByZXdyaXRlVGFyZ2V0ID1cbiAgICByZXdyaXRlSGVhZGVyIHx8IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCd4LW5leHRqcy1tYXRjaGVkLXBhdGgnKVxuXG4gIGNvbnN0IG1hdGNoZWRQYXRoID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoTUFUQ0hFRF9QQVRIX0hFQURFUilcblxuICBpZiAoXG4gICAgbWF0Y2hlZFBhdGggJiZcbiAgICAhcmV3cml0ZVRhcmdldCAmJlxuICAgICFtYXRjaGVkUGF0aC5pbmNsdWRlcygnX19uZXh0X2RhdGFfY2F0Y2hhbGwnKSAmJlxuICAgICFtYXRjaGVkUGF0aC5pbmNsdWRlcygnL19lcnJvcicpICYmXG4gICAgIW1hdGNoZWRQYXRoLmluY2x1ZGVzKCcvNDA0JylcbiAgKSB7XG4gICAgLy8gbGV2ZXJhZ2UgeC1tYXRjaGVkLXBhdGggdG8gZGV0ZWN0IG5leHQuY29uZmlnLmpzIHJld3JpdGVzXG4gICAgcmV3cml0ZVRhcmdldCA9IG1hdGNoZWRQYXRoXG4gIH1cblxuICBpZiAocmV3cml0ZVRhcmdldCkge1xuICAgIGlmIChcbiAgICAgIHJld3JpdGVUYXJnZXQuc3RhcnRzV2l0aCgnLycpIHx8XG4gICAgICBwcm9jZXNzLmVudi5fX05FWFRfRVhURVJOQUxfTUlERExFV0FSRV9SRVdSSVRFX1JFU09MVkVcbiAgICApIHtcbiAgICAgIGNvbnN0IHBhcnNlZFJld3JpdGVUYXJnZXQgPSBwYXJzZVJlbGF0aXZlVXJsKHJld3JpdGVUYXJnZXQpXG4gICAgICBjb25zdCBwYXRobmFtZUluZm8gPSBnZXROZXh0UGF0aG5hbWVJbmZvKHBhcnNlZFJld3JpdGVUYXJnZXQucGF0aG5hbWUsIHtcbiAgICAgICAgbmV4dENvbmZpZyxcbiAgICAgICAgcGFyc2VEYXRhOiB0cnVlLFxuICAgICAgfSlcblxuICAgICAgbGV0IGZzUGF0aG5hbWUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lSW5mby5wYXRobmFtZSlcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChbXG4gICAgICAgIG9wdGlvbnMucm91dGVyLnBhZ2VMb2FkZXIuZ2V0UGFnZUxpc3QoKSxcbiAgICAgICAgZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpLFxuICAgICAgXSkudGhlbigoW3BhZ2VzLCB7IF9fcmV3cml0ZXM6IHJld3JpdGVzIH1dOiBhbnkpID0+IHtcbiAgICAgICAgbGV0IGFzID0gYWRkTG9jYWxlKHBhdGhuYW1lSW5mby5wYXRobmFtZSwgcGF0aG5hbWVJbmZvLmxvY2FsZSlcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgaXNEeW5hbWljUm91dGUoYXMpIHx8XG4gICAgICAgICAgKCFyZXdyaXRlSGVhZGVyICYmXG4gICAgICAgICAgICBwYWdlcy5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgbm9ybWFsaXplTG9jYWxlUGF0aChyZW1vdmVCYXNlUGF0aChhcyksIG9wdGlvbnMucm91dGVyLmxvY2FsZXMpXG4gICAgICAgICAgICAgICAgLnBhdGhuYW1lXG4gICAgICAgICAgICApKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBwYXJzZWRTb3VyY2UgPSBnZXROZXh0UGF0aG5hbWVJbmZvKFxuICAgICAgICAgICAgcGFyc2VSZWxhdGl2ZVVybChzb3VyY2UpLnBhdGhuYW1lLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuZXh0Q29uZmlnOiBwcm9jZXNzLmVudi5fX05FWFRfSEFTX1JFV1JJVEVTXG4gICAgICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA6IG5leHRDb25maWcsXG4gICAgICAgICAgICAgIHBhcnNlRGF0YTogdHJ1ZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApXG5cbiAgICAgICAgICBhcyA9IGFkZEJhc2VQYXRoKHBhcnNlZFNvdXJjZS5wYXRobmFtZSlcbiAgICAgICAgICBwYXJzZWRSZXdyaXRlVGFyZ2V0LnBhdGhuYW1lID0gYXNcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSEFTX1JFV1JJVEVTKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVzb2x2ZVJld3JpdGVzKFxuICAgICAgICAgICAgYXMsXG4gICAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICAgIHJld3JpdGVzLFxuICAgICAgICAgICAgcGFyc2VkUmV3cml0ZVRhcmdldC5xdWVyeSxcbiAgICAgICAgICAgIChwYXRoOiBzdHJpbmcpID0+IHJlc29sdmVEeW5hbWljUm91dGUocGF0aCwgcGFnZXMpLFxuICAgICAgICAgICAgb3B0aW9ucy5yb3V0ZXIubG9jYWxlc1xuICAgICAgICAgIClcblxuICAgICAgICAgIGlmIChyZXN1bHQubWF0Y2hlZFBhZ2UpIHtcbiAgICAgICAgICAgIHBhcnNlZFJld3JpdGVUYXJnZXQucGF0aG5hbWUgPSByZXN1bHQucGFyc2VkQXMucGF0aG5hbWVcbiAgICAgICAgICAgIGFzID0gcGFyc2VkUmV3cml0ZVRhcmdldC5wYXRobmFtZVxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJzZWRSZXdyaXRlVGFyZ2V0LnF1ZXJ5LCByZXN1bHQucGFyc2VkQXMucXVlcnkpXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKCFwYWdlcy5pbmNsdWRlcyhmc1BhdGhuYW1lKSkge1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVkUGF0aG5hbWUgPSByZXNvbHZlRHluYW1pY1JvdXRlKGZzUGF0aG5hbWUsIHBhZ2VzKVxuXG4gICAgICAgICAgaWYgKHJlc29sdmVkUGF0aG5hbWUgIT09IGZzUGF0aG5hbWUpIHtcbiAgICAgICAgICAgIGZzUGF0aG5hbWUgPSByZXNvbHZlZFBhdGhuYW1lXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzb2x2ZWRIcmVmID0gIXBhZ2VzLmluY2x1ZGVzKGZzUGF0aG5hbWUpXG4gICAgICAgICAgPyByZXNvbHZlRHluYW1pY1JvdXRlKFxuICAgICAgICAgICAgICBub3JtYWxpemVMb2NhbGVQYXRoKFxuICAgICAgICAgICAgICAgIHJlbW92ZUJhc2VQYXRoKHBhcnNlZFJld3JpdGVUYXJnZXQucGF0aG5hbWUpLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMucm91dGVyLmxvY2FsZXNcbiAgICAgICAgICAgICAgKS5wYXRobmFtZSxcbiAgICAgICAgICAgICAgcGFnZXNcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGZzUGF0aG5hbWVcblxuICAgICAgICBpZiAoaXNEeW5hbWljUm91dGUocmVzb2x2ZWRIcmVmKSkge1xuICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSBnZXRSb3V0ZU1hdGNoZXIoZ2V0Um91dGVSZWdleChyZXNvbHZlZEhyZWYpKShhcylcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcnNlZFJld3JpdGVUYXJnZXQucXVlcnksIG1hdGNoZXMgfHwge30pXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHR5cGU6ICdyZXdyaXRlJyBhcyBjb25zdCxcbiAgICAgICAgICBwYXJzZWRBczogcGFyc2VkUmV3cml0ZVRhcmdldCxcbiAgICAgICAgICByZXNvbHZlZEhyZWYsXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICAgIGNvbnN0IHNyYyA9IHBhcnNlUGF0aChzb3VyY2UpXG4gICAgY29uc3QgcGF0aG5hbWUgPSBmb3JtYXROZXh0UGF0aG5hbWVJbmZvKHtcbiAgICAgIC4uLmdldE5leHRQYXRobmFtZUluZm8oc3JjLnBhdGhuYW1lLCB7IG5leHRDb25maWcsIHBhcnNlRGF0YTogdHJ1ZSB9KSxcbiAgICAgIGRlZmF1bHRMb2NhbGU6IG9wdGlvbnMucm91dGVyLmRlZmF1bHRMb2NhbGUsXG4gICAgICBidWlsZElkOiAnJyxcbiAgICB9KVxuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICB0eXBlOiAncmVkaXJlY3QtZXh0ZXJuYWwnIGFzIGNvbnN0LFxuICAgICAgZGVzdGluYXRpb246IGAke3BhdGhuYW1lfSR7c3JjLnF1ZXJ5fSR7c3JjLmhhc2h9YCxcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgcmVkaXJlY3RUYXJnZXQgPSByZXNwb25zZS5oZWFkZXJzLmdldCgneC1uZXh0anMtcmVkaXJlY3QnKVxuXG4gIGlmIChyZWRpcmVjdFRhcmdldCkge1xuICAgIGlmIChyZWRpcmVjdFRhcmdldC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgIGNvbnN0IHNyYyA9IHBhcnNlUGF0aChyZWRpcmVjdFRhcmdldClcbiAgICAgIGNvbnN0IHBhdGhuYW1lID0gZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyh7XG4gICAgICAgIC4uLmdldE5leHRQYXRobmFtZUluZm8oc3JjLnBhdGhuYW1lLCB7IG5leHRDb25maWcsIHBhcnNlRGF0YTogdHJ1ZSB9KSxcbiAgICAgICAgZGVmYXVsdExvY2FsZTogb3B0aW9ucy5yb3V0ZXIuZGVmYXVsdExvY2FsZSxcbiAgICAgICAgYnVpbGRJZDogJycsXG4gICAgICB9KVxuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgdHlwZTogJ3JlZGlyZWN0LWludGVybmFsJyBhcyBjb25zdCxcbiAgICAgICAgbmV3QXM6IGAke3BhdGhuYW1lfSR7c3JjLnF1ZXJ5fSR7c3JjLmhhc2h9YCxcbiAgICAgICAgbmV3VXJsOiBgJHtwYXRobmFtZX0ke3NyYy5xdWVyeX0ke3NyYy5oYXNofWAsXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgdHlwZTogJ3JlZGlyZWN0LWV4dGVybmFsJyBhcyBjb25zdCxcbiAgICAgIGRlc3RpbmF0aW9uOiByZWRpcmVjdFRhcmdldCxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHR5cGU6ICduZXh0JyBhcyBjb25zdCB9KVxufVxuXG5pbnRlcmZhY2UgV2l0aE1pZGRsZXdhcmVFZmZlY3RzT3V0cHV0IGV4dGVuZHMgRmV0Y2hEYXRhT3V0cHV0IHtcbiAgZWZmZWN0OiBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIGdldE1pZGRsZXdhcmVEYXRhPj5cbn1cblxuYXN5bmMgZnVuY3Rpb24gd2l0aE1pZGRsZXdhcmVFZmZlY3RzPFQgZXh0ZW5kcyBGZXRjaERhdGFPdXRwdXQ+KFxuICBvcHRpb25zOiBNaWRkbGV3YXJlRWZmZWN0UGFyYW1zPFQ+XG4pOiBQcm9taXNlPFdpdGhNaWRkbGV3YXJlRWZmZWN0c091dHB1dCB8IG51bGw+IHtcbiAgY29uc3QgbWF0Y2hlcyA9IGF3YWl0IG1hdGNoZXNNaWRkbGV3YXJlKG9wdGlvbnMpXG4gIGlmICghbWF0Y2hlcyB8fCAhb3B0aW9ucy5mZXRjaERhdGEpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgZGF0YSA9IGF3YWl0IG9wdGlvbnMuZmV0Y2hEYXRhKClcblxuICBjb25zdCBlZmZlY3QgPSBhd2FpdCBnZXRNaWRkbGV3YXJlRGF0YShkYXRhLmRhdGFIcmVmLCBkYXRhLnJlc3BvbnNlLCBvcHRpb25zKVxuXG4gIHJldHVybiB7XG4gICAgZGF0YUhyZWY6IGRhdGEuZGF0YUhyZWYsXG4gICAganNvbjogZGF0YS5qc29uLFxuICAgIHJlc3BvbnNlOiBkYXRhLnJlc3BvbnNlLFxuICAgIHRleHQ6IGRhdGEudGV4dCxcbiAgICBjYWNoZUtleTogZGF0YS5jYWNoZUtleSxcbiAgICBlZmZlY3QsXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgVXJsID0gVXJsT2JqZWN0IHwgc3RyaW5nXG5cbmV4cG9ydCB0eXBlIEJhc2VSb3V0ZXIgPSB7XG4gIHJvdXRlOiBzdHJpbmdcbiAgcGF0aG5hbWU6IHN0cmluZ1xuICBxdWVyeTogUGFyc2VkVXJsUXVlcnlcbiAgYXNQYXRoOiBzdHJpbmdcbiAgYmFzZVBhdGg6IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgbG9jYWxlcz86IHN0cmluZ1tdIHwgdW5kZWZpbmVkXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgZG9tYWluTG9jYWxlcz86IERvbWFpbkxvY2FsZVtdIHwgdW5kZWZpbmVkXG4gIGlzTG9jYWxlRG9tYWluOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIE5leHRSb3V0ZXIgPSBCYXNlUm91dGVyICZcbiAgUGljazxcbiAgICBSb3V0ZXIsXG4gICAgfCAncHVzaCdcbiAgICB8ICdyZXBsYWNlJ1xuICAgIHwgJ3JlbG9hZCdcbiAgICB8ICdiYWNrJ1xuICAgIHwgJ2ZvcndhcmQnXG4gICAgfCAncHJlZmV0Y2gnXG4gICAgfCAnYmVmb3JlUG9wU3RhdGUnXG4gICAgfCAnZXZlbnRzJ1xuICAgIHwgJ2lzRmFsbGJhY2snXG4gICAgfCAnaXNSZWFkeSdcbiAgICB8ICdpc1ByZXZpZXcnXG4gID5cblxuZXhwb3J0IHR5cGUgUHJlZmV0Y2hPcHRpb25zID0ge1xuICBwcmlvcml0eT86IGJvb2xlYW5cbiAgbG9jYWxlPzogc3RyaW5nIHwgZmFsc2VcbiAgdW5zdGFibGVfc2tpcENsaWVudENhY2hlPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBQcml2YXRlUm91dGVJbmZvID1cbiAgfCAoT21pdDxDb21wbGV0ZVByaXZhdGVSb3V0ZUluZm8sICdzdHlsZVNoZWV0cyc+ICYgeyBpbml0aWFsOiB0cnVlIH0pXG4gIHwgQ29tcGxldGVQcml2YXRlUm91dGVJbmZvXG5cbmV4cG9ydCB0eXBlIENvbXBsZXRlUHJpdmF0ZVJvdXRlSW5mbyA9IHtcbiAgQ29tcG9uZW50OiBDb21wb25lbnRUeXBlXG4gIHN0eWxlU2hlZXRzOiBTdHlsZVNoZWV0VHVwbGVbXVxuICBfX05fU1NHPzogYm9vbGVhblxuICBfX05fU1NQPzogYm9vbGVhblxuICBwcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgZXJyPzogRXJyb3JcbiAgZXJyb3I/OiBhbnlcbiAgcm91dGU/OiBzdHJpbmdcbiAgcmVzb2x2ZWRBcz86IHN0cmluZ1xuICBxdWVyeT86IFBhcnNlZFVybFF1ZXJ5XG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzID0gUGljazxDb21wbGV0ZVByaXZhdGVSb3V0ZUluZm8sICdDb21wb25lbnQnIHwgJ2Vycic+ICYge1xuICByb3V0ZXI6IFJvdXRlclxufSAmIFJlY29yZDxzdHJpbmcsIGFueT5cbmV4cG9ydCB0eXBlIEFwcENvbXBvbmVudCA9IENvbXBvbmVudFR5cGU8QXBwUHJvcHM+XG5cbnR5cGUgU3Vic2NyaXB0aW9uID0gKFxuICBkYXRhOiBQcml2YXRlUm91dGVJbmZvLFxuICBBcHA6IEFwcENvbXBvbmVudCxcbiAgcmVzZXRTY3JvbGw6IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfSB8IG51bGxcbikgPT4gUHJvbWlzZTx2b2lkPlxuXG50eXBlIEJlZm9yZVBvcFN0YXRlQ2FsbGJhY2sgPSAoc3RhdGU6IE5leHRIaXN0b3J5U3RhdGUpID0+IGJvb2xlYW5cblxudHlwZSBDb21wb25lbnRMb2FkQ2FuY2VsID0gKCgpID0+IHZvaWQpIHwgbnVsbFxuXG50eXBlIEhpc3RvcnlNZXRob2QgPSAncmVwbGFjZVN0YXRlJyB8ICdwdXNoU3RhdGUnXG5cbmNvbnN0IG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uID1cbiAgcHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTiAmJlxuICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAnc2Nyb2xsUmVzdG9yYXRpb24nIGluIHdpbmRvdy5oaXN0b3J5ICYmXG4gICEhKGZ1bmN0aW9uICgpIHtcbiAgICB0cnkge1xuICAgICAgbGV0IHYgPSAnX19uZXh0J1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlcXVlbmNlc1xuICAgICAgcmV0dXJuIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odiwgdiksIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odiksIHRydWVcbiAgICB9IGNhdGNoIChuKSB7fVxuICB9KSgpXG5cbmNvbnN0IFNTR19EQVRBX05PVF9GT1VORCA9IFN5bWJvbCgnU1NHX0RBVEFfTk9UX0ZPVU5EJylcblxuZnVuY3Rpb24gZmV0Y2hSZXRyeShcbiAgdXJsOiBzdHJpbmcsXG4gIGF0dGVtcHRzOiBudW1iZXIsXG4gIG9wdGlvbnM6IFBpY2s8UmVxdWVzdEluaXQsICdtZXRob2QnIHwgJ2hlYWRlcnMnPlxuKTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICByZXR1cm4gZmV0Y2godXJsLCB7XG4gICAgLy8gQ29va2llcyBhcmUgcmVxdWlyZWQgdG8gYmUgcHJlc2VudCBmb3IgTmV4dC5qcycgU1NHIFwiUHJldmlldyBNb2RlXCIuXG4gICAgLy8gQ29va2llcyBtYXkgYWxzbyBiZSByZXF1aXJlZCBmb3IgYGdldFNlcnZlclNpZGVQcm9wc2AuXG4gICAgLy9cbiAgICAvLyA+IGBmZXRjaGAgd29u4oCZdCBzZW5kIGNvb2tpZXMsIHVubGVzcyB5b3Ugc2V0IHRoZSBjcmVkZW50aWFscyBpbml0XG4gICAgLy8gPiBvcHRpb24uXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0ZldGNoX0FQSS9Vc2luZ19GZXRjaFxuICAgIC8vXG4gICAgLy8gPiBGb3IgbWF4aW11bSBicm93c2VyIGNvbXBhdGliaWxpdHkgd2hlbiBpdCBjb21lcyB0byBzZW5kaW5nICZcbiAgICAvLyA+IHJlY2VpdmluZyBjb29raWVzLCBhbHdheXMgc3VwcGx5IHRoZSBgY3JlZGVudGlhbHM6ICdzYW1lLW9yaWdpbidgXG4gICAgLy8gPiBvcHRpb24gaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBkZWZhdWx0LlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWIvZmV0Y2gjY2F2ZWF0c1xuICAgIGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuICAgIG1ldGhvZDogb3B0aW9ucy5tZXRob2QgfHwgJ0dFVCcsXG4gICAgaGVhZGVyczogT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucy5oZWFkZXJzLCB7XG4gICAgICAneC1uZXh0anMtZGF0YSc6ICcxJyxcbiAgICB9KSxcbiAgfSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICByZXR1cm4gIXJlc3BvbnNlLm9rICYmIGF0dGVtcHRzID4gMSAmJiByZXNwb25zZS5zdGF0dXMgPj0gNTAwXG4gICAgICA/IGZldGNoUmV0cnkodXJsLCBhdHRlbXB0cyAtIDEsIG9wdGlvbnMpXG4gICAgICA6IHJlc3BvbnNlXG4gIH0pXG59XG5cbmludGVyZmFjZSBGZXRjaERhdGFPdXRwdXQge1xuICBkYXRhSHJlZjogc3RyaW5nXG4gIGpzb246IFJlY29yZDxzdHJpbmcsIGFueT4gfCBudWxsXG4gIHJlc3BvbnNlOiBSZXNwb25zZVxuICB0ZXh0OiBzdHJpbmdcbiAgY2FjaGVLZXk6IHN0cmluZ1xufVxuXG5pbnRlcmZhY2UgRmV0Y2hOZXh0RGF0YVBhcmFtcyB7XG4gIGRhdGFIcmVmOiBzdHJpbmdcbiAgaXNTZXJ2ZXJSZW5kZXI6IGJvb2xlYW5cbiAgcGFyc2VKU09OOiBib29sZWFuIHwgdW5kZWZpbmVkXG4gIGhhc01pZGRsZXdhcmU/OiBib29sZWFuXG4gIGluZmxpZ2h0Q2FjaGU6IE5leHREYXRhQ2FjaGVcbiAgcGVyc2lzdENhY2hlOiBib29sZWFuXG4gIGlzUHJlZmV0Y2g6IGJvb2xlYW5cbiAgaXNCYWNrZ3JvdW5kPzogYm9vbGVhblxuICB1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGU/OiBib29sZWFuXG59XG5cbmZ1bmN0aW9uIHRyeVRvUGFyc2VBc0pTT04odGV4dDogc3RyaW5nKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UodGV4dClcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG5cbmZ1bmN0aW9uIGZldGNoTmV4dERhdGEoe1xuICBkYXRhSHJlZixcbiAgaW5mbGlnaHRDYWNoZSxcbiAgaXNQcmVmZXRjaCxcbiAgaGFzTWlkZGxld2FyZSxcbiAgaXNTZXJ2ZXJSZW5kZXIsXG4gIHBhcnNlSlNPTixcbiAgcGVyc2lzdENhY2hlLFxuICBpc0JhY2tncm91bmQsXG4gIHVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSxcbn06IEZldGNoTmV4dERhdGFQYXJhbXMpOiBQcm9taXNlPEZldGNoRGF0YU91dHB1dD4ge1xuICBjb25zdCB7IGhyZWY6IGNhY2hlS2V5IH0gPSBuZXcgVVJMKGRhdGFIcmVmLCB3aW5kb3cubG9jYXRpb24uaHJlZilcbiAgY29uc3QgZ2V0RGF0YSA9IChwYXJhbXM/OiB7IG1ldGhvZD86ICdIRUFEJyB8ICdHRVQnIH0pID0+XG4gICAgZmV0Y2hSZXRyeShkYXRhSHJlZiwgaXNTZXJ2ZXJSZW5kZXIgPyAzIDogMSwge1xuICAgICAgaGVhZGVyczogT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30gYXMgSGVhZGVyc0luaXQsXG4gICAgICAgIGlzUHJlZmV0Y2ggPyB7IHB1cnBvc2U6ICdwcmVmZXRjaCcgfSA6IHt9LFxuICAgICAgICBpc1ByZWZldGNoICYmIGhhc01pZGRsZXdhcmUgPyB7ICd4LW1pZGRsZXdhcmUtcHJlZmV0Y2gnOiAnMScgfSA6IHt9XG4gICAgICApLFxuICAgICAgbWV0aG9kOiBwYXJhbXM/Lm1ldGhvZCA/PyAnR0VUJyxcbiAgICB9KVxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZS5vayAmJiBwYXJhbXM/Lm1ldGhvZCA9PT0gJ0hFQUQnKSB7XG4gICAgICAgICAgcmV0dXJuIHsgZGF0YUhyZWYsIHJlc3BvbnNlLCB0ZXh0OiAnJywganNvbjoge30sIGNhY2hlS2V5IH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkudGhlbigodGV4dCkgPT4ge1xuICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2hlbiB0aGUgZGF0YSByZXNwb25zZSBpcyBhIHJlZGlyZWN0IGJlY2F1c2Ugb2YgYSBtaWRkbGV3YXJlXG4gICAgICAgICAgICAgKiB3ZSBkbyBub3QgY29uc2lkZXIgaXQgYW4gZXJyb3IuIFRoZSBoZWFkZXJzIG11c3QgYnJpbmcgdGhlXG4gICAgICAgICAgICAgKiBtYXBwZWQgbG9jYXRpb24uXG4gICAgICAgICAgICAgKiBUT0RPOiBDaGFuZ2UgdGhlIHN0YXR1cyBjb2RlIGluIHRoZSBoYW5kbGVyLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGhhc01pZGRsZXdhcmUgJiZcbiAgICAgICAgICAgICAgWzMwMSwgMzAyLCAzMDcsIDMwOF0uaW5jbHVkZXMocmVzcG9uc2Uuc3RhdHVzKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IGRhdGFIcmVmLCByZXNwb25zZSwgdGV4dCwganNvbjoge30sIGNhY2hlS2V5IH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICAgICAgICAgIGlmICh0cnlUb1BhcnNlQXNKU09OKHRleHQpPy5ub3RGb3VuZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICBkYXRhSHJlZixcbiAgICAgICAgICAgICAgICAgIGpzb246IHsgbm90Rm91bmQ6IFNTR19EQVRBX05PVF9GT1VORCB9LFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICB0ZXh0LFxuICAgICAgICAgICAgICAgICAgY2FjaGVLZXksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCBzdGF0aWMgcHJvcHNgKVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFdlIHNob3VsZCBvbmx5IHRyaWdnZXIgYSBzZXJ2ZXItc2lkZSB0cmFuc2l0aW9uIGlmIHRoaXMgd2FzXG4gICAgICAgICAgICAgKiBjYXVzZWQgb24gYSBjbGllbnQtc2lkZSB0cmFuc2l0aW9uLiBPdGhlcndpc2UsIHdlJ2QgZ2V0IGludG9cbiAgICAgICAgICAgICAqIGFuIGluZmluaXRlIGxvb3AuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICghaXNTZXJ2ZXJSZW5kZXIpIHtcbiAgICAgICAgICAgICAgbWFya0Fzc2V0RXJyb3IoZXJyb3IpXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGFIcmVmLFxuICAgICAgICAgICAganNvbjogcGFyc2VKU09OID8gdHJ5VG9QYXJzZUFzSlNPTih0ZXh0KSA6IG51bGwsXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICBjYWNoZUtleSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFwZXJzaXN0Q2FjaGUgfHxcbiAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nIHx8XG4gICAgICAgICAgZGF0YS5yZXNwb25zZS5oZWFkZXJzLmdldCgneC1taWRkbGV3YXJlLWNhY2hlJykgPT09ICduby1jYWNoZSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgZGVsZXRlIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGFcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICBpZiAoIXVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSkge1xuICAgICAgICAgIGRlbGV0ZSBpbmZsaWdodENhY2hlW2NhY2hlS2V5XVxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAvLyBjaHJvbWVcbiAgICAgICAgICBlcnIubWVzc2FnZSA9PT0gJ0ZhaWxlZCB0byBmZXRjaCcgfHxcbiAgICAgICAgICAvLyBmaXJlZm94XG4gICAgICAgICAgZXJyLm1lc3NhZ2UgPT09ICdOZXR3b3JrRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIGZldGNoIHJlc291cmNlLicgfHxcbiAgICAgICAgICAvLyBzYWZhcmlcbiAgICAgICAgICBlcnIubWVzc2FnZSA9PT0gJ0xvYWQgZmFpbGVkJ1xuICAgICAgICApIHtcbiAgICAgICAgICBtYXJrQXNzZXRFcnJvcihlcnIpXG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyXG4gICAgICB9KVxuXG4gIC8vIHdoZW4gc2tpcHBpbmcgY2xpZW50IGNhY2hlIHdlIHdhaXQgdG8gdXBkYXRlXG4gIC8vIGluZmxpZ2h0IGNhY2hlIHVudGlsIHN1Y2Nlc3NmdWwgZGF0YSByZXNwb25zZVxuICAvLyB0aGlzIGFsbG93cyByYWNpbmcgY2xpY2sgZXZlbnQgd2l0aCBmZXRjaGluZyBuZXdlciBkYXRhXG4gIC8vIHdpdGhvdXQgYmxvY2tpbmcgbmF2aWdhdGlvbiB3aGVuIHN0YWxlIGRhdGEgaXMgYXZhaWxhYmxlXG4gIGlmICh1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGUgJiYgcGVyc2lzdENhY2hlKSB7XG4gICAgcmV0dXJuIGdldERhdGEoe30pLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIGlmIChkYXRhLnJlc3BvbnNlLmhlYWRlcnMuZ2V0KCd4LW1pZGRsZXdhcmUtY2FjaGUnKSAhPT0gJ25vLWNhY2hlJykge1xuICAgICAgICAvLyBvbmx5IHVwZGF0ZSBjYWNoZSBpZiBub3QgbWFya2VkIGFzIG5vLWNhY2hlXG4gICAgICAgIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldID0gUHJvbWlzZS5yZXNvbHZlKGRhdGEpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXRhXG4gICAgfSlcbiAgfVxuXG4gIGlmIChpbmZsaWdodENhY2hlW2NhY2hlS2V5XSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGluZmxpZ2h0Q2FjaGVbY2FjaGVLZXldXG4gIH1cbiAgcmV0dXJuIChpbmZsaWdodENhY2hlW2NhY2hlS2V5XSA9IGdldERhdGEoXG4gICAgaXNCYWNrZ3JvdW5kID8geyBtZXRob2Q6ICdIRUFEJyB9IDoge31cbiAgKSlcbn1cblxuaW50ZXJmYWNlIE5leHREYXRhQ2FjaGUge1xuICBbYXNQYXRoOiBzdHJpbmddOiBQcm9taXNlPEZldGNoRGF0YU91dHB1dD5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUtleSgpIHtcbiAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDEwKVxufVxuXG5mdW5jdGlvbiBoYW5kbGVIYXJkTmF2aWdhdGlvbih7XG4gIHVybCxcbiAgcm91dGVyLFxufToge1xuICB1cmw6IHN0cmluZ1xuICByb3V0ZXI6IFJvdXRlclxufSkge1xuICAvLyBlbnN1cmUgd2UgZG9uJ3QgdHJpZ2dlciBhIGhhcmQgbmF2aWdhdGlvbiB0byB0aGUgc2FtZVxuICAvLyBVUkwgYXMgdGhpcyBjYW4gZW5kIHVwIHdpdGggYW4gaW5maW5pdGUgcmVmcmVzaFxuICBpZiAodXJsID09PSBhZGRCYXNlUGF0aChhZGRMb2NhbGUocm91dGVyLmFzUGF0aCwgcm91dGVyLmxvY2FsZSkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFyaWFudDogYXR0ZW1wdGVkIHRvIGhhcmQgbmF2aWdhdGUgdG8gdGhlIHNhbWUgVVJMICR7dXJsfSAke2xvY2F0aW9uLmhyZWZ9YFxuICAgIClcbiAgfVxuICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybFxufVxuXG5jb25zdCBnZXRDYW5jZWxsZWRIYW5kbGVyID0gKHtcbiAgcm91dGUsXG4gIHJvdXRlcixcbn06IHtcbiAgcm91dGU6IHN0cmluZ1xuICByb3V0ZXI6IFJvdXRlclxufSkgPT4ge1xuICBsZXQgY2FuY2VsbGVkID0gZmFsc2VcbiAgY29uc3QgY2FuY2VsID0gKHJvdXRlci5jbGMgPSAoKSA9PiB7XG4gICAgY2FuY2VsbGVkID0gdHJ1ZVxuICB9KVxuXG4gIGNvbnN0IGhhbmRsZUNhbmNlbGxlZCA9ICgpID0+IHtcbiAgICBpZiAoY2FuY2VsbGVkKSB7XG4gICAgICBjb25zdCBlcnJvcjogYW55ID0gbmV3IEVycm9yKFxuICAgICAgICBgQWJvcnQgZmV0Y2hpbmcgY29tcG9uZW50IGZvciByb3V0ZTogXCIke3JvdXRlfVwiYFxuICAgICAgKVxuICAgICAgZXJyb3IuY2FuY2VsbGVkID0gdHJ1ZVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG5cbiAgICBpZiAoY2FuY2VsID09PSByb3V0ZXIuY2xjKSB7XG4gICAgICByb3V0ZXIuY2xjID0gbnVsbFxuICAgIH1cbiAgfVxuICByZXR1cm4gaGFuZGxlQ2FuY2VsbGVkXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvdXRlciBpbXBsZW1lbnRzIEJhc2VSb3V0ZXIge1xuICBiYXNlUGF0aDogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE1hcCBvZiBhbGwgY29tcG9uZW50cyBsb2FkZWQgaW4gYFJvdXRlcmBcbiAgICovXG4gIGNvbXBvbmVudHM6IHsgW3BhdGhuYW1lOiBzdHJpbmddOiBQcml2YXRlUm91dGVJbmZvIH1cbiAgLy8gU2VydmVyIERhdGEgQ2FjaGUgKGZ1bGwgZGF0YSByZXF1ZXN0cylcbiAgc2RjOiBOZXh0RGF0YUNhY2hlID0ge31cbiAgLy8gU2VydmVyIEJhY2tncm91bmQgQ2FjaGUgKEhFQUQgcmVxdWVzdHMpXG4gIHNiYzogTmV4dERhdGFDYWNoZSA9IHt9XG5cbiAgc3ViOiBTdWJzY3JpcHRpb25cbiAgY2xjOiBDb21wb25lbnRMb2FkQ2FuY2VsXG4gIHBhZ2VMb2FkZXI6IFBhZ2VMb2FkZXJcbiAgX2JwczogQmVmb3JlUG9wU3RhdGVDYWxsYmFjayB8IHVuZGVmaW5lZFxuICBldmVudHM6IE1pdHRFbWl0dGVyPFJvdXRlckV2ZW50PlxuICBfd3JhcEFwcDogKEFwcDogQXBwQ29tcG9uZW50KSA9PiBhbnlcbiAgaXNTc3I6IGJvb2xlYW5cbiAgX2luRmxpZ2h0Um91dGU/OiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgX3NoYWxsb3c/OiBib29sZWFuIHwgdW5kZWZpbmVkXG4gIGxvY2FsZXM/OiBzdHJpbmdbXSB8IHVuZGVmaW5lZFxuICBkZWZhdWx0TG9jYWxlPzogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIGRvbWFpbkxvY2FsZXM/OiBEb21haW5Mb2NhbGVbXSB8IHVuZGVmaW5lZFxuICBpc1JlYWR5OiBib29sZWFuXG4gIGlzTG9jYWxlRG9tYWluOiBib29sZWFuXG4gIGlzRmlyc3RQb3BTdGF0ZUV2ZW50ID0gdHJ1ZVxuICBfaW5pdGlhbE1hdGNoZXNNaWRkbGV3YXJlUHJvbWlzZTogUHJvbWlzZTxib29sZWFuPlxuICAvLyBzdGF0aWMgZW50cmllcyBmaWx0ZXJcbiAgX2JmbF9zPzogaW1wb3J0KCcuLi8uLi9saWIvYmxvb20tZmlsdGVyJykuQmxvb21GaWx0ZXJcbiAgLy8gZHluYW1pYyBlbnRpcmVzIGZpbHRlclxuICBfYmZsX2Q/OiBpbXBvcnQoJy4uLy4uL2xpYi9ibG9vbS1maWx0ZXInKS5CbG9vbUZpbHRlclxuXG4gIHByaXZhdGUgc3RhdGU6IFJlYWRvbmx5PHtcbiAgICByb3V0ZTogc3RyaW5nXG4gICAgcGF0aG5hbWU6IHN0cmluZ1xuICAgIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICAgIGFzUGF0aDogc3RyaW5nXG4gICAgbG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgICBpc0ZhbGxiYWNrOiBib29sZWFuXG4gICAgaXNQcmV2aWV3OiBib29sZWFuXG4gIH0+XG5cbiAgcHJpdmF0ZSBfa2V5OiBzdHJpbmcgPSBjcmVhdGVLZXkoKVxuXG4gIHN0YXRpYyBldmVudHM6IE1pdHRFbWl0dGVyPFJvdXRlckV2ZW50PiA9IG1pdHQoKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHBhdGhuYW1lOiBzdHJpbmcsXG4gICAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5LFxuICAgIGFzOiBzdHJpbmcsXG4gICAge1xuICAgICAgaW5pdGlhbFByb3BzLFxuICAgICAgcGFnZUxvYWRlcixcbiAgICAgIEFwcCxcbiAgICAgIHdyYXBBcHAsXG4gICAgICBDb21wb25lbnQsXG4gICAgICBlcnIsXG4gICAgICBzdWJzY3JpcHRpb24sXG4gICAgICBpc0ZhbGxiYWNrLFxuICAgICAgbG9jYWxlLFxuICAgICAgbG9jYWxlcyxcbiAgICAgIGRlZmF1bHRMb2NhbGUsXG4gICAgICBkb21haW5Mb2NhbGVzLFxuICAgICAgaXNQcmV2aWV3LFxuICAgIH06IHtcbiAgICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uXG4gICAgICBpbml0aWFsUHJvcHM6IGFueVxuICAgICAgcGFnZUxvYWRlcjogYW55XG4gICAgICBDb21wb25lbnQ6IENvbXBvbmVudFR5cGVcbiAgICAgIEFwcDogQXBwQ29tcG9uZW50XG4gICAgICB3cmFwQXBwOiAoV3JhcEFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50KSA9PiBhbnlcbiAgICAgIGVycj86IEVycm9yXG4gICAgICBpc0ZhbGxiYWNrOiBib29sZWFuXG4gICAgICBsb2NhbGU/OiBzdHJpbmdcbiAgICAgIGxvY2FsZXM/OiBzdHJpbmdbXVxuICAgICAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAgICAgZG9tYWluTG9jYWxlcz86IERvbWFpbkxvY2FsZVtdXG4gICAgICBpc1ByZXZpZXc/OiBib29sZWFuXG4gICAgfVxuICApIHtcbiAgICAvLyByZXByZXNlbnRzIHRoZSBjdXJyZW50IGNvbXBvbmVudCBrZXlcbiAgICBjb25zdCByb3V0ZSA9IHJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpXG5cbiAgICAvLyBzZXQgdXAgdGhlIGNvbXBvbmVudCBjYWNoZSAoYnkgcm91dGUga2V5cylcbiAgICB0aGlzLmNvbXBvbmVudHMgPSB7fVxuICAgIC8vIFdlIHNob3VsZCBub3Qga2VlcCB0aGUgY2FjaGUsIGlmIHRoZXJlJ3MgYW4gZXJyb3JcbiAgICAvLyBPdGhlcndpc2UsIHRoaXMgY2F1c2UgaXNzdWVzIHdoZW4gd2hlbiBnb2luZyBiYWNrIGFuZFxuICAgIC8vIGNvbWUgYWdhaW4gdG8gdGhlIGVycm9yZWQgcGFnZS5cbiAgICBpZiAocGF0aG5hbWUgIT09ICcvX2Vycm9yJykge1xuICAgICAgdGhpcy5jb21wb25lbnRzW3JvdXRlXSA9IHtcbiAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICBpbml0aWFsOiB0cnVlLFxuICAgICAgICBwcm9wczogaW5pdGlhbFByb3BzLFxuICAgICAgICBlcnIsXG4gICAgICAgIF9fTl9TU0c6IGluaXRpYWxQcm9wcyAmJiBpbml0aWFsUHJvcHMuX19OX1NTRyxcbiAgICAgICAgX19OX1NTUDogaW5pdGlhbFByb3BzICYmIGluaXRpYWxQcm9wcy5fX05fU1NQLFxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY29tcG9uZW50c1snL19hcHAnXSA9IHtcbiAgICAgIENvbXBvbmVudDogQXBwIGFzIENvbXBvbmVudFR5cGUsXG4gICAgICBzdHlsZVNoZWV0czogW1xuICAgICAgICAvKiAvX2FwcCBkb2VzIG5vdCBuZWVkIGl0cyBzdHlsZXNoZWV0cyBtYW5hZ2VkICovXG4gICAgICBdLFxuICAgIH1cblxuICAgIC8vIEJhY2t3YXJkcyBjb21wYXQgZm9yIFJvdXRlci5yb3V0ZXIuZXZlbnRzXG4gICAgLy8gVE9ETzogU2hvdWxkIGJlIHJlbW92ZSB0aGUgZm9sbG93aW5nIG1ham9yIHZlcnNpb24gYXMgaXQgd2FzIG5ldmVyIGRvY3VtZW50ZWRcbiAgICB0aGlzLmV2ZW50cyA9IFJvdXRlci5ldmVudHNcblxuICAgIHRoaXMucGFnZUxvYWRlciA9IHBhZ2VMb2FkZXJcbiAgICAvLyBpZiBhdXRvIHByZXJlbmRlcmVkIGFuZCBkeW5hbWljIHJvdXRlIHdhaXQgdG8gdXBkYXRlIGFzUGF0aFxuICAgIC8vIHVudGlsIGFmdGVyIG1vdW50IHRvIHByZXZlbnQgaHlkcmF0aW9uIG1pc21hdGNoXG4gICAgY29uc3QgYXV0b0V4cG9ydER5bmFtaWMgPVxuICAgICAgaXNEeW5hbWljUm91dGUocGF0aG5hbWUpICYmIHNlbGYuX19ORVhUX0RBVEFfXy5hdXRvRXhwb3J0XG5cbiAgICB0aGlzLmJhc2VQYXRoID0gcHJvY2Vzcy5lbnYuX19ORVhUX1JPVVRFUl9CQVNFUEFUSCB8fCAnJ1xuICAgIHRoaXMuc3ViID0gc3Vic2NyaXB0aW9uXG4gICAgdGhpcy5jbGMgPSBudWxsXG4gICAgdGhpcy5fd3JhcEFwcCA9IHdyYXBBcHBcbiAgICAvLyBtYWtlIHN1cmUgdG8gaWdub3JlIGV4dHJhIHBvcFN0YXRlIGluIHNhZmFyaSBvbiBuYXZpZ2F0aW5nXG4gICAgLy8gYmFjayBmcm9tIGV4dGVybmFsIHNpdGVcbiAgICB0aGlzLmlzU3NyID0gdHJ1ZVxuICAgIHRoaXMuaXNMb2NhbGVEb21haW4gPSBmYWxzZVxuICAgIHRoaXMuaXNSZWFkeSA9ICEhKFxuICAgICAgc2VsZi5fX05FWFRfREFUQV9fLmdzc3AgfHxcbiAgICAgIHNlbGYuX19ORVhUX0RBVEFfXy5naXAgfHxcbiAgICAgIHNlbGYuX19ORVhUX0RBVEFfXy5pc0V4cGVyaW1lbnRhbENvbXBpbGUgfHxcbiAgICAgIChzZWxmLl9fTkVYVF9EQVRBX18uYXBwR2lwICYmICFzZWxmLl9fTkVYVF9EQVRBX18uZ3NwKSB8fFxuICAgICAgKCFhdXRvRXhwb3J0RHluYW1pYyAmJlxuICAgICAgICAhc2VsZi5sb2NhdGlvbi5zZWFyY2ggJiZcbiAgICAgICAgIXByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMpXG4gICAgKVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgIHRoaXMubG9jYWxlcyA9IGxvY2FsZXNcbiAgICAgIHRoaXMuZGVmYXVsdExvY2FsZSA9IGRlZmF1bHRMb2NhbGVcbiAgICAgIHRoaXMuZG9tYWluTG9jYWxlcyA9IGRvbWFpbkxvY2FsZXNcbiAgICAgIHRoaXMuaXNMb2NhbGVEb21haW4gPSAhIWRldGVjdERvbWFpbkxvY2FsZShcbiAgICAgICAgZG9tYWluTG9jYWxlcyxcbiAgICAgICAgc2VsZi5sb2NhdGlvbi5ob3N0bmFtZVxuICAgICAgKVxuICAgIH1cblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICByb3V0ZSxcbiAgICAgIHBhdGhuYW1lLFxuICAgICAgcXVlcnksXG4gICAgICBhc1BhdGg6IGF1dG9FeHBvcnREeW5hbWljID8gcGF0aG5hbWUgOiBhcyxcbiAgICAgIGlzUHJldmlldzogISFpc1ByZXZpZXcsXG4gICAgICBsb2NhbGU6IHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQgPyBsb2NhbGUgOiB1bmRlZmluZWQsXG4gICAgICBpc0ZhbGxiYWNrLFxuICAgIH1cblxuICAgIHRoaXMuX2luaXRpYWxNYXRjaGVzTWlkZGxld2FyZVByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoZmFsc2UpXG5cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIG1ha2Ugc3VyZSBcImFzXCIgZG9lc24ndCBzdGFydCB3aXRoIGRvdWJsZSBzbGFzaGVzIG9yIGVsc2UgaXQgY2FuXG4gICAgICAvLyB0aHJvdyBhbiBlcnJvciBhcyBpdCdzIGNvbnNpZGVyZWQgaW52YWxpZFxuICAgICAgaWYgKCFhcy5zdGFydHNXaXRoKCcvLycpKSB7XG4gICAgICAgIC8vIGluIG9yZGVyIGZvciBgZS5zdGF0ZWAgdG8gd29yayBvbiB0aGUgYG9ucG9wc3RhdGVgIGV2ZW50XG4gICAgICAgIC8vIHdlIGhhdmUgdG8gcmVnaXN0ZXIgdGhlIGluaXRpYWwgcm91dGUgdXBvbiBpbml0aWFsaXphdGlvblxuICAgICAgICBjb25zdCBvcHRpb25zOiBUcmFuc2l0aW9uT3B0aW9ucyA9IHsgbG9jYWxlIH1cbiAgICAgICAgY29uc3QgYXNQYXRoID0gZ2V0VVJMKClcblxuICAgICAgICB0aGlzLl9pbml0aWFsTWF0Y2hlc01pZGRsZXdhcmVQcm9taXNlID0gbWF0Y2hlc01pZGRsZXdhcmUoe1xuICAgICAgICAgIHJvdXRlcjogdGhpcyxcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgYXNQYXRoLFxuICAgICAgICB9KS50aGVuKChtYXRjaGVzKSA9PiB7XG4gICAgICAgICAgLy8gaWYgbWlkZGxld2FyZSBtYXRjaGVzIHdlIGxlYXZlIHJlc29sdmluZyB0byB0aGUgY2hhbmdlIGZ1bmN0aW9uXG4gICAgICAgICAgLy8gYXMgdGhlIHNlcnZlciBuZWVkcyB0byByZXNvbHZlIGZvciBjb3JyZWN0IHByaW9yaXR5XG4gICAgICAgICAgOyhvcHRpb25zIGFzIGFueSkuX3Nob3VsZFJlc29sdmVIcmVmID0gYXMgIT09IHBhdGhuYW1lXG5cbiAgICAgICAgICB0aGlzLmNoYW5nZVN0YXRlKFxuICAgICAgICAgICAgJ3JlcGxhY2VTdGF0ZScsXG4gICAgICAgICAgICBtYXRjaGVzXG4gICAgICAgICAgICAgID8gYXNQYXRoXG4gICAgICAgICAgICAgIDogZm9ybWF0V2l0aFZhbGlkYXRpb24oe1xuICAgICAgICAgICAgICAgICAgcGF0aG5hbWU6IGFkZEJhc2VQYXRoKHBhdGhuYW1lKSxcbiAgICAgICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgYXNQYXRoLFxuICAgICAgICAgICAgb3B0aW9uc1xuICAgICAgICAgIClcbiAgICAgICAgICByZXR1cm4gbWF0Y2hlc1xuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncG9wc3RhdGUnLCB0aGlzLm9uUG9wU3RhdGUpXG5cbiAgICAgIC8vIGVuYWJsZSBjdXN0b20gc2Nyb2xsIHJlc3RvcmF0aW9uIGhhbmRsaW5nIHdoZW4gYXZhaWxhYmxlXG4gICAgICAvLyBvdGhlcndpc2UgZmFsbGJhY2sgdG8gYnJvd3NlcidzIGRlZmF1bHQgaGFuZGxpbmdcbiAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OKSB7XG4gICAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICAgIHdpbmRvdy5oaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gJ21hbnVhbCdcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uUG9wU3RhdGUgPSAoZTogUG9wU3RhdGVFdmVudCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHsgaXNGaXJzdFBvcFN0YXRlRXZlbnQgfSA9IHRoaXNcbiAgICB0aGlzLmlzRmlyc3RQb3BTdGF0ZUV2ZW50ID0gZmFsc2VcblxuICAgIGNvbnN0IHN0YXRlID0gZS5zdGF0ZSBhcyBIaXN0b3J5U3RhdGVcblxuICAgIGlmICghc3RhdGUpIHtcbiAgICAgIC8vIFdlIGdldCBzdGF0ZSBhcyB1bmRlZmluZWQgZm9yIHR3byByZWFzb25zLlxuICAgICAgLy8gIDEuIFdpdGggb2xkZXIgc2FmYXJpICg8IDgpIGFuZCBvbGRlciBjaHJvbWUgKDwgMzQpXG4gICAgICAvLyAgMi4gV2hlbiB0aGUgVVJMIGNoYW5nZWQgd2l0aCAjXG4gICAgICAvL1xuICAgICAgLy8gSW4gdGhlIGJvdGggY2FzZXMsIHdlIGRvbid0IG5lZWQgdG8gcHJvY2VlZCBhbmQgY2hhbmdlIHRoZSByb3V0ZS5cbiAgICAgIC8vIChhcyBpdCdzIGFscmVhZHkgY2hhbmdlZClcbiAgICAgIC8vIEJ1dCB3ZSBjYW4gc2ltcGx5IHJlcGxhY2UgdGhlIHN0YXRlIHdpdGggdGhlIG5ldyBjaGFuZ2VzLlxuICAgICAgLy8gQWN0dWFsbHksIGZvciAoMSkgd2UgZG9uJ3QgbmVlZCB0byBub3RoaW5nLiBCdXQgaXQncyBoYXJkIHRvIGRldGVjdCB0aGF0IGV2ZW50LlxuICAgICAgLy8gU28sIGRvaW5nIHRoZSBmb2xsb3dpbmcgZm9yICgxKSBkb2VzIG5vIGhhcm0uXG4gICAgICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSB9ID0gdGhpc1xuICAgICAgdGhpcy5jaGFuZ2VTdGF0ZShcbiAgICAgICAgJ3JlcGxhY2VTdGF0ZScsXG4gICAgICAgIGZvcm1hdFdpdGhWYWxpZGF0aW9uKHsgcGF0aG5hbWU6IGFkZEJhc2VQYXRoKHBhdGhuYW1lKSwgcXVlcnkgfSksXG4gICAgICAgIGdldFVSTCgpXG4gICAgICApXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICAvLyBfX05BIGlzIHVzZWQgdG8gaWRlbnRpZnkgaWYgdGhlIGhpc3RvcnkgZW50cnkgY2FuIGJlIGhhbmRsZWQgYnkgdGhlIGFwcC1yb3V0ZXIuXG4gICAgaWYgKHN0YXRlLl9fTkEpIHtcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKCFzdGF0ZS5fX04pIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIFNhZmFyaSBmaXJlcyBwb3BzdGF0ZWV2ZW50IHdoZW4gcmVvcGVuaW5nIHRoZSBicm93c2VyLlxuICAgIGlmIChcbiAgICAgIGlzRmlyc3RQb3BTdGF0ZUV2ZW50ICYmXG4gICAgICB0aGlzLmxvY2FsZSA9PT0gc3RhdGUub3B0aW9ucy5sb2NhbGUgJiZcbiAgICAgIHN0YXRlLmFzID09PSB0aGlzLmFzUGF0aFxuICAgICkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgbGV0IGZvcmNlZFNjcm9sbDogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9IHwgdW5kZWZpbmVkXG4gICAgY29uc3QgeyB1cmwsIGFzLCBvcHRpb25zLCBrZXkgfSA9IHN0YXRlXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04pIHtcbiAgICAgIGlmIChtYW51YWxTY3JvbGxSZXN0b3JhdGlvbikge1xuICAgICAgICBpZiAodGhpcy5fa2V5ICE9PSBrZXkpIHtcbiAgICAgICAgICAvLyBTbmFwc2hvdCBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbjpcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgICAgICAgJ19fbmV4dF9zY3JvbGxfJyArIHRoaXMuX2tleSxcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyB4OiBzZWxmLnBhZ2VYT2Zmc2V0LCB5OiBzZWxmLnBhZ2VZT2Zmc2V0IH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSBjYXRjaCB7fVxuXG4gICAgICAgICAgLy8gUmVzdG9yZSBvbGQgc2Nyb2xsIHBvc2l0aW9uOlxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB2ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnX19uZXh0X3Njcm9sbF8nICsga2V5KVxuICAgICAgICAgICAgZm9yY2VkU2Nyb2xsID0gSlNPTi5wYXJzZSh2ISlcbiAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGZvcmNlZFNjcm9sbCA9IHsgeDogMCwgeTogMCB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2tleSA9IGtleVxuXG4gICAgY29uc3QgeyBwYXRobmFtZSB9ID0gcGFyc2VSZWxhdGl2ZVVybCh1cmwpXG5cbiAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgcmUtcmVuZGVyIG9uIGluaXRpYWwgbG9hZCxcbiAgICAvLyBjYW4gYmUgY2F1c2VkIGJ5IG5hdmlnYXRpbmcgYmFjayBmcm9tIGFuIGV4dGVybmFsIHNpdGVcbiAgICBpZiAoXG4gICAgICB0aGlzLmlzU3NyICYmXG4gICAgICBhcyA9PT0gYWRkQmFzZVBhdGgodGhpcy5hc1BhdGgpICYmXG4gICAgICBwYXRobmFtZSA9PT0gYWRkQmFzZVBhdGgodGhpcy5wYXRobmFtZSlcbiAgICApIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIC8vIElmIHRoZSBkb3duc3RyZWFtIGFwcGxpY2F0aW9uIHJldHVybnMgZmFsc3ksIHJldHVybi5cbiAgICAvLyBUaGV5IHdpbGwgdGhlbiBiZSByZXNwb25zaWJsZSBmb3IgaGFuZGxpbmcgdGhlIGV2ZW50LlxuICAgIGlmICh0aGlzLl9icHMgJiYgIXRoaXMuX2JwcyhzdGF0ZSkpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlKFxuICAgICAgJ3JlcGxhY2VTdGF0ZScsXG4gICAgICB1cmwsXG4gICAgICBhcyxcbiAgICAgIE9iamVjdC5hc3NpZ248e30sIFRyYW5zaXRpb25PcHRpb25zLCBUcmFuc2l0aW9uT3B0aW9ucz4oe30sIG9wdGlvbnMsIHtcbiAgICAgICAgc2hhbGxvdzogb3B0aW9ucy5zaGFsbG93ICYmIHRoaXMuX3NoYWxsb3csXG4gICAgICAgIGxvY2FsZTogb3B0aW9ucy5sb2NhbGUgfHwgdGhpcy5kZWZhdWx0TG9jYWxlLFxuICAgICAgICAvLyBAdHMtaWdub3JlIGludGVybmFsIHZhbHVlIG5vdCBleHBvc2VkIG9uIHR5cGVzXG4gICAgICAgIF9oOiAwLFxuICAgICAgfSksXG4gICAgICBmb3JjZWRTY3JvbGxcbiAgICApXG4gIH1cblxuICByZWxvYWQoKTogdm9pZCB7XG4gICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpXG4gIH1cblxuICAvKipcbiAgICogR28gYmFjayBpbiBoaXN0b3J5XG4gICAqL1xuICBiYWNrKCkge1xuICAgIHdpbmRvdy5oaXN0b3J5LmJhY2soKVxuICB9XG5cbiAgLyoqXG4gICAqIEdvIGZvcndhcmQgaW4gaGlzdG9yeVxuICAgKi9cbiAgZm9yd2FyZCgpIHtcbiAgICB3aW5kb3cuaGlzdG9yeS5mb3J3YXJkKClcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIGBwdXNoU3RhdGVgIHdpdGggYXJndW1lbnRzXG4gICAqIEBwYXJhbSB1cmwgb2YgdGhlIHJvdXRlXG4gICAqIEBwYXJhbSBhcyBtYXNrcyBgdXJsYCBmb3IgdGhlIGJyb3dzZXJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2JqZWN0IHlvdSBjYW4gZGVmaW5lIGBzaGFsbG93YCBhbmQgb3RoZXIgb3B0aW9uc1xuICAgKi9cbiAgcHVzaCh1cmw6IFVybCwgYXM/OiBVcmwsIG9wdGlvbnM6IFRyYW5zaXRpb25PcHRpb25zID0ge30pIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX1NDUk9MTF9SRVNUT1JBVElPTikge1xuICAgICAgLy8gVE9ETzogcmVtb3ZlIGluIHRoZSBmdXR1cmUgd2hlbiB3ZSB1cGRhdGUgaGlzdG9yeSBiZWZvcmUgcm91dGUgY2hhbmdlXG4gICAgICAvLyBpcyBjb21wbGV0ZSwgYXMgdGhlIHBvcHN0YXRlIGV2ZW50IHNob3VsZCBoYW5kbGUgdGhpcyBjYXB0dXJlLlxuICAgICAgaWYgKG1hbnVhbFNjcm9sbFJlc3RvcmF0aW9uKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gU25hcHNob3Qgc2Nyb2xsIHBvc2l0aW9uIHJpZ2h0IGJlZm9yZSBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2U6XG4gICAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgICAgICdfX25leHRfc2Nyb2xsXycgKyB0aGlzLl9rZXksXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh7IHg6IHNlbGYucGFnZVhPZmZzZXQsIHk6IHNlbGYucGFnZVlPZmZzZXQgfSlcbiAgICAgICAgICApXG4gICAgICAgIH0gY2F0Y2gge31cbiAgICAgIH1cbiAgICB9XG4gICAgOyh7IHVybCwgYXMgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCB1cmwsIGFzKSlcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2UoJ3B1c2hTdGF0ZScsIHVybCwgYXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgYSBgcmVwbGFjZVN0YXRlYCB3aXRoIGFyZ3VtZW50c1xuICAgKiBAcGFyYW0gdXJsIG9mIHRoZSByb3V0ZVxuICAgKiBAcGFyYW0gYXMgbWFza3MgYHVybGAgZm9yIHRoZSBicm93c2VyXG4gICAqIEBwYXJhbSBvcHRpb25zIG9iamVjdCB5b3UgY2FuIGRlZmluZSBgc2hhbGxvd2AgYW5kIG90aGVyIG9wdGlvbnNcbiAgICovXG4gIHJlcGxhY2UodXJsOiBVcmwsIGFzPzogVXJsLCBvcHRpb25zOiBUcmFuc2l0aW9uT3B0aW9ucyA9IHt9KSB7XG4gICAgOyh7IHVybCwgYXMgfSA9IHByZXBhcmVVcmxBcyh0aGlzLCB1cmwsIGFzKSlcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2UoJ3JlcGxhY2VTdGF0ZScsIHVybCwgYXMsIG9wdGlvbnMpXG4gIH1cblxuICBhc3luYyBfYmZsKFxuICAgIGFzOiBzdHJpbmcsXG4gICAgcmVzb2x2ZWRBcz86IHN0cmluZyxcbiAgICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZSxcbiAgICBza2lwTmF2aWdhdGU/OiBib29sZWFuXG4gICkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfQ0xJRU5UX1JPVVRFUl9GSUxURVJfRU5BQkxFRCkge1xuICAgICAgaWYgKCF0aGlzLl9iZmxfcyAmJiAhdGhpcy5fYmZsX2QpIHtcbiAgICAgICAgY29uc3QgeyBCbG9vbUZpbHRlciB9ID1cbiAgICAgICAgICByZXF1aXJlKCcuLi8uLi9saWIvYmxvb20tZmlsdGVyJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vbGliL2Jsb29tLWZpbHRlcicpXG5cbiAgICAgICAgdHlwZSBGaWx0ZXIgPSBSZXR1cm5UeXBlPFxuICAgICAgICAgIGltcG9ydCgnLi4vLi4vbGliL2Jsb29tLWZpbHRlcicpLkJsb29tRmlsdGVyWydleHBvcnQnXVxuICAgICAgICA+XG4gICAgICAgIGxldCBzdGF0aWNGaWx0ZXJEYXRhOiBGaWx0ZXIgfCB1bmRlZmluZWRcbiAgICAgICAgbGV0IGR5bmFtaWNGaWx0ZXJEYXRhOiBGaWx0ZXIgfCB1bmRlZmluZWRcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIDsoe1xuICAgICAgICAgICAgX19yb3V0ZXJGaWx0ZXJTdGF0aWM6IHN0YXRpY0ZpbHRlckRhdGEsXG4gICAgICAgICAgICBfX3JvdXRlckZpbHRlckR5bmFtaWM6IGR5bmFtaWNGaWx0ZXJEYXRhLFxuICAgICAgICAgIH0gPSAoYXdhaXQgZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpKSBhcyBhbnkgYXMge1xuICAgICAgICAgICAgX19yb3V0ZXJGaWx0ZXJTdGF0aWM/OiBGaWx0ZXJcbiAgICAgICAgICAgIF9fcm91dGVyRmlsdGVyRHluYW1pYz86IEZpbHRlclxuICAgICAgICAgIH0pXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIC8vIGZhaWxlZCB0byBsb2FkIGJ1aWxkIG1hbmlmZXN0IGhhcmQgbmF2aWdhdGVcbiAgICAgICAgICAvLyB0byBiZSBzYWZlXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICAgICAgaWYgKHNraXBOYXZpZ2F0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgICAgaGFuZGxlSGFyZE5hdmlnYXRpb24oe1xuICAgICAgICAgICAgdXJsOiBhZGRCYXNlUGF0aChcbiAgICAgICAgICAgICAgYWRkTG9jYWxlKGFzLCBsb2NhbGUgfHwgdGhpcy5sb2NhbGUsIHRoaXMuZGVmYXVsdExvY2FsZSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICAgICAgfSlcbiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByb3V0ZXJGaWx0ZXJTVmFsdWU6IEZpbHRlciB8IGZhbHNlID0gcHJvY2Vzcy5lbnZcbiAgICAgICAgICAuX19ORVhUX0NMSUVOVF9ST1VURVJfU19GSUxURVIgYXMgYW55XG5cbiAgICAgICAgaWYgKCFzdGF0aWNGaWx0ZXJEYXRhICYmIHJvdXRlckZpbHRlclNWYWx1ZSkge1xuICAgICAgICAgIHN0YXRpY0ZpbHRlckRhdGEgPSByb3V0ZXJGaWx0ZXJTVmFsdWUgPyByb3V0ZXJGaWx0ZXJTVmFsdWUgOiB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvdXRlckZpbHRlckRWYWx1ZTogRmlsdGVyIHwgZmFsc2UgPSBwcm9jZXNzLmVudlxuICAgICAgICAgIC5fX05FWFRfQ0xJRU5UX1JPVVRFUl9EX0ZJTFRFUiBhcyBhbnlcblxuICAgICAgICBpZiAoIWR5bmFtaWNGaWx0ZXJEYXRhICYmIHJvdXRlckZpbHRlckRWYWx1ZSkge1xuICAgICAgICAgIGR5bmFtaWNGaWx0ZXJEYXRhID0gcm91dGVyRmlsdGVyRFZhbHVlXG4gICAgICAgICAgICA/IHJvdXRlckZpbHRlckRWYWx1ZVxuICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGF0aWNGaWx0ZXJEYXRhPy5udW1IYXNoZXMpIHtcbiAgICAgICAgICB0aGlzLl9iZmxfcyA9IG5ldyBCbG9vbUZpbHRlcihcbiAgICAgICAgICAgIHN0YXRpY0ZpbHRlckRhdGEubnVtSXRlbXMsXG4gICAgICAgICAgICBzdGF0aWNGaWx0ZXJEYXRhLmVycm9yUmF0ZVxuICAgICAgICAgIClcbiAgICAgICAgICB0aGlzLl9iZmxfcy5pbXBvcnQoc3RhdGljRmlsdGVyRGF0YSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChkeW5hbWljRmlsdGVyRGF0YT8ubnVtSGFzaGVzKSB7XG4gICAgICAgICAgdGhpcy5fYmZsX2QgPSBuZXcgQmxvb21GaWx0ZXIoXG4gICAgICAgICAgICBkeW5hbWljRmlsdGVyRGF0YS5udW1JdGVtcyxcbiAgICAgICAgICAgIGR5bmFtaWNGaWx0ZXJEYXRhLmVycm9yUmF0ZVxuICAgICAgICAgIClcbiAgICAgICAgICB0aGlzLl9iZmxfZC5pbXBvcnQoZHluYW1pY0ZpbHRlckRhdGEpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGV0IG1hdGNoZXNCZmxTdGF0aWMgPSBmYWxzZVxuICAgICAgbGV0IG1hdGNoZXNCZmxEeW5hbWljID0gZmFsc2VcbiAgICAgIGNvbnN0IHBhdGhzVG9DaGVjazogQXJyYXk8eyBhcz86IHN0cmluZzsgYWxsb3dNYXRjaEN1cnJlbnQ/OiBib29sZWFuIH0+ID1cbiAgICAgICAgW3sgYXMgfSwgeyBhczogcmVzb2x2ZWRBcyB9XVxuXG4gICAgICBmb3IgKGNvbnN0IHsgYXM6IGN1ckFzLCBhbGxvd01hdGNoQ3VycmVudCB9IG9mIHBhdGhzVG9DaGVjaykge1xuICAgICAgICBpZiAoY3VyQXMpIHtcbiAgICAgICAgICBjb25zdCBhc05vU2xhc2ggPSByZW1vdmVUcmFpbGluZ1NsYXNoKFxuICAgICAgICAgICAgbmV3IFVSTChjdXJBcywgJ2h0dHA6Ly9uJykucGF0aG5hbWVcbiAgICAgICAgICApXG4gICAgICAgICAgY29uc3QgYXNOb1NsYXNoTG9jYWxlID0gYWRkQmFzZVBhdGgoXG4gICAgICAgICAgICBhZGRMb2NhbGUoYXNOb1NsYXNoLCBsb2NhbGUgfHwgdGhpcy5sb2NhbGUpXG4gICAgICAgICAgKVxuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgYWxsb3dNYXRjaEN1cnJlbnQgfHxcbiAgICAgICAgICAgIGFzTm9TbGFzaCAhPT1cbiAgICAgICAgICAgICAgcmVtb3ZlVHJhaWxpbmdTbGFzaChuZXcgVVJMKHRoaXMuYXNQYXRoLCAnaHR0cDovL24nKS5wYXRobmFtZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIG1hdGNoZXNCZmxTdGF0aWMgPVxuICAgICAgICAgICAgICBtYXRjaGVzQmZsU3RhdGljIHx8XG4gICAgICAgICAgICAgICEhdGhpcy5fYmZsX3M/LmNvbnRhaW5zKGFzTm9TbGFzaCkgfHxcbiAgICAgICAgICAgICAgISF0aGlzLl9iZmxfcz8uY29udGFpbnMoYXNOb1NsYXNoTG9jYWxlKVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG5vcm1hbGl6ZWRBUyBvZiBbYXNOb1NsYXNoLCBhc05vU2xhc2hMb2NhbGVdKSB7XG4gICAgICAgICAgICAgIC8vIGlmIGFueSBzdWItcGF0aCBvZiBhcyBtYXRjaGVzIGEgZHluYW1pYyBmaWx0ZXIgcGF0aFxuICAgICAgICAgICAgICAvLyBpdCBzaG91bGQgYmUgaGFyZCBuYXZpZ2F0ZWRcbiAgICAgICAgICAgICAgY29uc3QgY3VyQXNQYXJ0cyA9IG5vcm1hbGl6ZWRBUy5zcGxpdCgnLycpXG4gICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICAgICAgICAgICFtYXRjaGVzQmZsRHluYW1pYyAmJiBpIDwgY3VyQXNQYXJ0cy5sZW5ndGggKyAxO1xuICAgICAgICAgICAgICAgIGkrK1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50UGFydCA9IGN1ckFzUGFydHMuc2xpY2UoMCwgaSkuam9pbignLycpXG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRQYXJ0ICYmIHRoaXMuX2JmbF9kPy5jb250YWlucyhjdXJyZW50UGFydCkpIHtcbiAgICAgICAgICAgICAgICAgIG1hdGNoZXNCZmxEeW5hbWljID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaWYgdGhlIGNsaWVudCByb3V0ZXIgZmlsdGVyIGlzIG1hdGNoZWQgdGhlbiB3ZSB0cmlnZ2VyXG4gICAgICAgICAgICAvLyBhIGhhcmQgbmF2aWdhdGlvblxuICAgICAgICAgICAgaWYgKG1hdGNoZXNCZmxTdGF0aWMgfHwgbWF0Y2hlc0JmbER5bmFtaWMpIHtcbiAgICAgICAgICAgICAgaWYgKHNraXBOYXZpZ2F0ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaGFuZGxlSGFyZE5hdmlnYXRpb24oe1xuICAgICAgICAgICAgICAgIHVybDogYWRkQmFzZVBhdGgoXG4gICAgICAgICAgICAgICAgICBhZGRMb2NhbGUoYXMsIGxvY2FsZSB8fCB0aGlzLmxvY2FsZSwgdGhpcy5kZWZhdWx0TG9jYWxlKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgcm91dGVyOiB0aGlzLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjaGFuZ2UoXG4gICAgbWV0aG9kOiBIaXN0b3J5TWV0aG9kLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGFzOiBzdHJpbmcsXG4gICAgb3B0aW9uczogVHJhbnNpdGlvbk9wdGlvbnMsXG4gICAgZm9yY2VkU2Nyb2xsPzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9XG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghaXNMb2NhbFVSTCh1cmwpKSB7XG4gICAgICBoYW5kbGVIYXJkTmF2aWdhdGlvbih7IHVybCwgcm91dGVyOiB0aGlzIH0pXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgLy8gV0FSTklORzogYF9oYCBpcyBhbiBpbnRlcm5hbCBvcHRpb24gZm9yIGhhbmRpbmcgTmV4dC5qcyBjbGllbnQtc2lkZVxuICAgIC8vIGh5ZHJhdGlvbi4gWW91ciBhcHAgc2hvdWxkIF9uZXZlcl8gdXNlIHRoaXMgcHJvcGVydHkuIEl0IG1heSBjaGFuZ2UgYXRcbiAgICAvLyBhbnkgdGltZSB3aXRob3V0IG5vdGljZS5cbiAgICBjb25zdCBpc1F1ZXJ5VXBkYXRpbmcgPSAob3B0aW9ucyBhcyBhbnkpLl9oID09PSAxXG5cbiAgICBpZiAoIWlzUXVlcnlVcGRhdGluZyAmJiAhb3B0aW9ucy5zaGFsbG93KSB7XG4gICAgICBhd2FpdCB0aGlzLl9iZmwoYXMsIHVuZGVmaW5lZCwgb3B0aW9ucy5sb2NhbGUpXG4gICAgfVxuXG4gICAgbGV0IHNob3VsZFJlc29sdmVIcmVmID1cbiAgICAgIGlzUXVlcnlVcGRhdGluZyB8fFxuICAgICAgKG9wdGlvbnMgYXMgYW55KS5fc2hvdWxkUmVzb2x2ZUhyZWYgfHxcbiAgICAgIHBhcnNlUGF0aCh1cmwpLnBhdGhuYW1lID09PSBwYXJzZVBhdGgoYXMpLnBhdGhuYW1lXG5cbiAgICBjb25zdCBuZXh0U3RhdGUgPSB7XG4gICAgICAuLi50aGlzLnN0YXRlLFxuICAgIH1cblxuICAgIC8vIGZvciBzdGF0aWMgcGFnZXMgd2l0aCBxdWVyeSBwYXJhbXMgaW4gdGhlIFVSTCB3ZSBkZWxheVxuICAgIC8vIG1hcmtpbmcgdGhlIHJvdXRlciByZWFkeSB1bnRpbCBhZnRlciB0aGUgcXVlcnkgaXMgdXBkYXRlZFxuICAgIC8vIG9yIGEgbmF2aWdhdGlvbiBoYXMgb2NjdXJyZWRcbiAgICBjb25zdCByZWFkeVN0YXRlQ2hhbmdlID0gdGhpcy5pc1JlYWR5ICE9PSB0cnVlXG4gICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZVxuICAgIGNvbnN0IGlzU3NyID0gdGhpcy5pc1NzclxuXG4gICAgaWYgKCFpc1F1ZXJ5VXBkYXRpbmcpIHtcbiAgICAgIHRoaXMuaXNTc3IgPSBmYWxzZVxuICAgIH1cblxuICAgIC8vIGlmIGEgcm91dGUgdHJhbnNpdGlvbiBpcyBhbHJlYWR5IGluIHByb2dyZXNzIGJlZm9yZVxuICAgIC8vIHRoZSBxdWVyeSB1cGRhdGluZyBpcyB0cmlnZ2VyZWQgaWdub3JlIHF1ZXJ5IHVwZGF0aW5nXG4gICAgaWYgKGlzUXVlcnlVcGRhdGluZyAmJiB0aGlzLmNsYykge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3QgcHJldkxvY2FsZSA9IG5leHRTdGF0ZS5sb2NhbGVcblxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICBuZXh0U3RhdGUubG9jYWxlID1cbiAgICAgICAgb3B0aW9ucy5sb2NhbGUgPT09IGZhbHNlXG4gICAgICAgICAgPyB0aGlzLmRlZmF1bHRMb2NhbGVcbiAgICAgICAgICA6IG9wdGlvbnMubG9jYWxlIHx8IG5leHRTdGF0ZS5sb2NhbGVcblxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmxvY2FsZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgb3B0aW9ucy5sb2NhbGUgPSBuZXh0U3RhdGUubG9jYWxlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhcnNlZEFzID0gcGFyc2VSZWxhdGl2ZVVybChcbiAgICAgICAgaGFzQmFzZVBhdGgoYXMpID8gcmVtb3ZlQmFzZVBhdGgoYXMpIDogYXNcbiAgICAgIClcbiAgICAgIGNvbnN0IGxvY2FsZVBhdGhSZXN1bHQgPSBub3JtYWxpemVMb2NhbGVQYXRoKFxuICAgICAgICBwYXJzZWRBcy5wYXRobmFtZSxcbiAgICAgICAgdGhpcy5sb2NhbGVzXG4gICAgICApXG5cbiAgICAgIGlmIChsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgIG5leHRTdGF0ZS5sb2NhbGUgPSBsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlXG4gICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gYWRkQmFzZVBhdGgocGFyc2VkQXMucGF0aG5hbWUpXG4gICAgICAgIGFzID0gZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkQXMpXG4gICAgICAgIHVybCA9IGFkZEJhc2VQYXRoKFxuICAgICAgICAgIG5vcm1hbGl6ZUxvY2FsZVBhdGgoXG4gICAgICAgICAgICBoYXNCYXNlUGF0aCh1cmwpID8gcmVtb3ZlQmFzZVBhdGgodXJsKSA6IHVybCxcbiAgICAgICAgICAgIHRoaXMubG9jYWxlc1xuICAgICAgICAgICkucGF0aG5hbWVcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgbGV0IGRpZE5hdmlnYXRlID0gZmFsc2VcblxuICAgICAgLy8gd2UgbmVlZCB0byB3cmFwIHRoaXMgaW4gdGhlIGVudiBjaGVjayBhZ2FpbiBzaW5jZSByZWdlbmVyYXRvciBydW50aW1lXG4gICAgICAvLyBtb3ZlcyB0aGlzIG9uIGl0cyBvd24gZHVlIHRvIHRoZSByZXR1cm5cbiAgICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfSTE4Tl9TVVBQT1JUKSB7XG4gICAgICAgIC8vIGlmIHRoZSBsb2NhbGUgaXNuJ3QgY29uZmlndXJlZCBoYXJkIG5hdmlnYXRlIHRvIHNob3cgNDA0IHBhZ2VcbiAgICAgICAgaWYgKCF0aGlzLmxvY2FsZXM/LmluY2x1ZGVzKG5leHRTdGF0ZS5sb2NhbGUhKSkge1xuICAgICAgICAgIHBhcnNlZEFzLnBhdGhuYW1lID0gYWRkTG9jYWxlKHBhcnNlZEFzLnBhdGhuYW1lLCBuZXh0U3RhdGUubG9jYWxlKVxuICAgICAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHtcbiAgICAgICAgICAgIHVybDogZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkQXMpLFxuICAgICAgICAgICAgcm91dGVyOiB0aGlzLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLy8gdGhpcyB3YXMgcHJldmlvdXNseSBhIHJldHVybiBidXQgd2FzIHJlbW92ZWQgaW4gZmF2b3JcbiAgICAgICAgICAvLyBvZiBiZXR0ZXIgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdpdGggcmVnZW5lcmF0b3IgcnVudGltZVxuICAgICAgICAgIGRpZE5hdmlnYXRlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRldGVjdGVkRG9tYWluID0gZGV0ZWN0RG9tYWluTG9jYWxlKFxuICAgICAgICB0aGlzLmRvbWFpbkxvY2FsZXMsXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgbmV4dFN0YXRlLmxvY2FsZVxuICAgICAgKVxuXG4gICAgICAvLyB3ZSBuZWVkIHRvIHdyYXAgdGhpcyBpbiB0aGUgZW52IGNoZWNrIGFnYWluIHNpbmNlIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgIC8vIG1vdmVzIHRoaXMgb24gaXRzIG93biBkdWUgdG8gdGhlIHJldHVyblxuICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgLy8gaWYgd2UgYXJlIG5hdmlnYXRpbmcgdG8gYSBkb21haW4gbG9jYWxlIGVuc3VyZSB3ZSByZWRpcmVjdCB0byB0aGVcbiAgICAgICAgLy8gY29ycmVjdCBkb21haW5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICFkaWROYXZpZ2F0ZSAmJlxuICAgICAgICAgIGRldGVjdGVkRG9tYWluICYmXG4gICAgICAgICAgdGhpcy5pc0xvY2FsZURvbWFpbiAmJlxuICAgICAgICAgIHNlbGYubG9jYXRpb24uaG9zdG5hbWUgIT09IGRldGVjdGVkRG9tYWluLmRvbWFpblxuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBhc05vQmFzZVBhdGggPSByZW1vdmVCYXNlUGF0aChhcylcbiAgICAgICAgICBoYW5kbGVIYXJkTmF2aWdhdGlvbih7XG4gICAgICAgICAgICB1cmw6IGBodHRwJHtkZXRlY3RlZERvbWFpbi5odHRwID8gJycgOiAncyd9Oi8vJHtcbiAgICAgICAgICAgICAgZGV0ZWN0ZWREb21haW4uZG9tYWluXG4gICAgICAgICAgICB9JHthZGRCYXNlUGF0aChcbiAgICAgICAgICAgICAgYCR7XG4gICAgICAgICAgICAgICAgbmV4dFN0YXRlLmxvY2FsZSA9PT0gZGV0ZWN0ZWREb21haW4uZGVmYXVsdExvY2FsZVxuICAgICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgICAgOiBgLyR7bmV4dFN0YXRlLmxvY2FsZX1gXG4gICAgICAgICAgICAgIH0ke2FzTm9CYXNlUGF0aCA9PT0gJy8nID8gJycgOiBhc05vQmFzZVBhdGh9YCB8fCAnLydcbiAgICAgICAgICAgICl9YCxcbiAgICAgICAgICAgIHJvdXRlcjogdGhpcyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC8vIHRoaXMgd2FzIHByZXZpb3VzbHkgYSByZXR1cm4gYnV0IHdhcyByZW1vdmVkIGluIGZhdm9yXG4gICAgICAgICAgLy8gb2YgYmV0dGVyIGRlYWQgY29kZSBlbGltaW5hdGlvbiB3aXRoIHJlZ2VuZXJhdG9yIHJ1bnRpbWVcbiAgICAgICAgICBkaWROYXZpZ2F0ZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZGlkTmF2aWdhdGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIG1hcmtpbmcgcm91dGUgY2hhbmdlcyBhcyBhIG5hdmlnYXRpb24gc3RhcnQgZW50cnlcbiAgICBpZiAoU1QpIHtcbiAgICAgIHBlcmZvcm1hbmNlLm1hcmsoJ3JvdXRlQ2hhbmdlJylcbiAgICB9XG5cbiAgICBjb25zdCB7IHNoYWxsb3cgPSBmYWxzZSwgc2Nyb2xsID0gdHJ1ZSB9ID0gb3B0aW9uc1xuICAgIGNvbnN0IHJvdXRlUHJvcHMgPSB7IHNoYWxsb3cgfVxuXG4gICAgaWYgKHRoaXMuX2luRmxpZ2h0Um91dGUgJiYgdGhpcy5jbGMpIHtcbiAgICAgIGlmICghaXNTc3IpIHtcbiAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KFxuICAgICAgICAgICdyb3V0ZUNoYW5nZUVycm9yJyxcbiAgICAgICAgICBidWlsZENhbmNlbGxhdGlvbkVycm9yKCksXG4gICAgICAgICAgdGhpcy5faW5GbGlnaHRSb3V0ZSxcbiAgICAgICAgICByb3V0ZVByb3BzXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHRoaXMuY2xjKClcbiAgICAgIHRoaXMuY2xjID0gbnVsbFxuICAgIH1cblxuICAgIGFzID0gYWRkQmFzZVBhdGgoXG4gICAgICBhZGRMb2NhbGUoXG4gICAgICAgIGhhc0Jhc2VQYXRoKGFzKSA/IHJlbW92ZUJhc2VQYXRoKGFzKSA6IGFzLFxuICAgICAgICBvcHRpb25zLmxvY2FsZSxcbiAgICAgICAgdGhpcy5kZWZhdWx0TG9jYWxlXG4gICAgICApXG4gICAgKVxuICAgIGNvbnN0IGNsZWFuZWRBcyA9IHJlbW92ZUxvY2FsZShcbiAgICAgIGhhc0Jhc2VQYXRoKGFzKSA/IHJlbW92ZUJhc2VQYXRoKGFzKSA6IGFzLFxuICAgICAgbmV4dFN0YXRlLmxvY2FsZVxuICAgIClcbiAgICB0aGlzLl9pbkZsaWdodFJvdXRlID0gYXNcblxuICAgIGNvbnN0IGxvY2FsZUNoYW5nZSA9IHByZXZMb2NhbGUgIT09IG5leHRTdGF0ZS5sb2NhbGVcblxuICAgIC8vIElmIHRoZSB1cmwgY2hhbmdlIGlzIG9ubHkgcmVsYXRlZCB0byBhIGhhc2ggY2hhbmdlXG4gICAgLy8gV2Ugc2hvdWxkIG5vdCBwcm9jZWVkLiBXZSBzaG91bGQgb25seSBjaGFuZ2UgdGhlIHN0YXRlLlxuXG4gICAgaWYgKCFpc1F1ZXJ5VXBkYXRpbmcgJiYgdGhpcy5vbmx5QUhhc2hDaGFuZ2UoY2xlYW5lZEFzKSAmJiAhbG9jYWxlQ2hhbmdlKSB7XG4gICAgICBuZXh0U3RhdGUuYXNQYXRoID0gY2xlYW5lZEFzXG4gICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2hhc2hDaGFuZ2VTdGFydCcsIGFzLCByb3V0ZVByb3BzKVxuICAgICAgLy8gVE9ETzogZG8gd2UgbmVlZCB0aGUgcmVzb2x2ZWQgaHJlZiB3aGVuIG9ubHkgYSBoYXNoIGNoYW5nZT9cbiAgICAgIHRoaXMuY2hhbmdlU3RhdGUobWV0aG9kLCB1cmwsIGFzLCB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHNjcm9sbDogZmFsc2UsXG4gICAgICB9KVxuICAgICAgaWYgKHNjcm9sbCkge1xuICAgICAgICB0aGlzLnNjcm9sbFRvSGFzaChjbGVhbmVkQXMpXG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnNldChuZXh0U3RhdGUsIHRoaXMuY29tcG9uZW50c1tuZXh0U3RhdGUucm91dGVdLCBudWxsKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChpc0Vycm9yKGVycikgJiYgZXJyLmNhbmNlbGxlZCkge1xuICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVyciwgY2xlYW5lZEFzLCByb3V0ZVByb3BzKVxuICAgICAgICB9XG4gICAgICAgIHRocm93IGVyclxuICAgICAgfVxuXG4gICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ2hhc2hDaGFuZ2VDb21wbGV0ZScsIGFzLCByb3V0ZVByb3BzKVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBsZXQgcGFyc2VkID0gcGFyc2VSZWxhdGl2ZVVybCh1cmwpXG4gICAgbGV0IHsgcGF0aG5hbWUsIHF1ZXJ5IH0gPSBwYXJzZWRcblxuICAgIC8vIFRoZSBidWlsZCBtYW5pZmVzdCBuZWVkcyB0byBiZSBsb2FkZWQgYmVmb3JlIGF1dG8tc3RhdGljIGR5bmFtaWMgcGFnZXNcbiAgICAvLyBnZXQgdGhlaXIgcXVlcnkgcGFyYW1ldGVycyB0byBhbGxvdyBlbnN1cmluZyB0aGV5IGNhbiBiZSBwYXJzZWQgcHJvcGVybHlcbiAgICAvLyB3aGVuIHJld3JpdHRlbiB0b1xuICAgIGxldCBwYWdlczogc3RyaW5nW10sIHJld3JpdGVzOiBhbnlcbiAgICB0cnkge1xuICAgICAgO1twYWdlcywgeyBfX3Jld3JpdGVzOiByZXdyaXRlcyB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgICAgdGhpcy5wYWdlTG9hZGVyLmdldFBhZ2VMaXN0KCksXG4gICAgICAgIGdldENsaWVudEJ1aWxkTWFuaWZlc3QoKSxcbiAgICAgICAgdGhpcy5wYWdlTG9hZGVyLmdldE1pZGRsZXdhcmUoKSxcbiAgICAgIF0pXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAvLyBJZiB3ZSBmYWlsIHRvIHJlc29sdmUgdGhlIHBhZ2UgbGlzdCBvciBjbGllbnQtYnVpbGQgbWFuaWZlc3QsIHdlIG11c3RcbiAgICAgIC8vIGRvIGEgc2VydmVyLXNpZGUgdHJhbnNpdGlvbjpcbiAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHsgdXJsOiBhcywgcm91dGVyOiB0aGlzIH0pXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICAvLyBJZiBhc2tlZCB0byBjaGFuZ2UgdGhlIGN1cnJlbnQgVVJMIHdlIHNob3VsZCByZWxvYWQgdGhlIGN1cnJlbnQgcGFnZVxuICAgIC8vIChub3QgbG9jYXRpb24ucmVsb2FkKCkgYnV0IHJlbG9hZCBnZXRJbml0aWFsUHJvcHMgYW5kIG90aGVyIE5leHQuanMgc3R1ZmZzKVxuICAgIC8vIFdlIGFsc28gbmVlZCB0byBzZXQgdGhlIG1ldGhvZCA9IHJlcGxhY2VTdGF0ZSBhbHdheXNcbiAgICAvLyBhcyB0aGlzIHNob3VsZCBub3QgZ28gaW50byB0aGUgaGlzdG9yeSAoVGhhdCdzIGhvdyBicm93c2VycyB3b3JrKVxuICAgIC8vIFdlIHNob3VsZCBjb21wYXJlIHRoZSBuZXcgYXNQYXRoIHRvIHRoZSBjdXJyZW50IGFzUGF0aCwgbm90IHRoZSB1cmxcbiAgICBpZiAoIXRoaXMudXJsSXNOZXcoY2xlYW5lZEFzKSAmJiAhbG9jYWxlQ2hhbmdlKSB7XG4gICAgICBtZXRob2QgPSAncmVwbGFjZVN0YXRlJ1xuICAgIH1cblxuICAgIC8vIHdlIG5lZWQgdG8gcmVzb2x2ZSB0aGUgYXMgdmFsdWUgdXNpbmcgcmV3cml0ZXMgZm9yIGR5bmFtaWMgU1NHXG4gICAgLy8gcGFnZXMgdG8gYWxsb3cgYnVpbGRpbmcgdGhlIGRhdGEgVVJMIGNvcnJlY3RseVxuICAgIGxldCByZXNvbHZlZEFzID0gYXNcblxuICAgIC8vIHVybCBhbmQgYXMgc2hvdWxkIGFsd2F5cyBiZSBwcmVmaXhlZCB3aXRoIGJhc2VQYXRoIGJ5IHRoaXNcbiAgICAvLyBwb2ludCBieSBlaXRoZXIgbmV4dC9saW5rIG9yIHJvdXRlci5wdXNoL3JlcGxhY2Ugc28gc3RyaXAgdGhlXG4gICAgLy8gYmFzZVBhdGggZnJvbSB0aGUgcGF0aG5hbWUgdG8gbWF0Y2ggdGhlIHBhZ2VzIGRpciAxLXRvLTFcbiAgICBwYXRobmFtZSA9IHBhdGhuYW1lXG4gICAgICA/IHJlbW92ZVRyYWlsaW5nU2xhc2gocmVtb3ZlQmFzZVBhdGgocGF0aG5hbWUpKVxuICAgICAgOiBwYXRobmFtZVxuXG4gICAgbGV0IHJvdXRlID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbiAgICBjb25zdCBwYXJzZWRBc1BhdGhuYW1lID0gYXMuc3RhcnRzV2l0aCgnLycpICYmIHBhcnNlUmVsYXRpdmVVcmwoYXMpLnBhdGhuYW1lXG5cbiAgICAvLyBpZiB3ZSBkZXRlY3RlZCB0aGUgcGF0aCBhcyBhcHAgcm91dGUgZHVyaW5nIHByZWZldGNoaW5nXG4gICAgLy8gdHJpZ2dlciBoYXJkIG5hdmlnYXRpb25cbiAgICBpZiAoKHRoaXMuY29tcG9uZW50c1twYXRobmFtZV0gYXMgYW55KT8uX19hcHBSb3V0ZXIpIHtcbiAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHsgdXJsOiBhcywgcm91dGVyOiB0aGlzIH0pXG4gICAgICByZXR1cm4gbmV3IFByb21pc2UoKCkgPT4ge30pXG4gICAgfVxuXG4gICAgY29uc3QgaXNNaWRkbGV3YXJlUmV3cml0ZSA9ICEhKFxuICAgICAgcGFyc2VkQXNQYXRobmFtZSAmJlxuICAgICAgcm91dGUgIT09IHBhcnNlZEFzUGF0aG5hbWUgJiZcbiAgICAgICghaXNEeW5hbWljUm91dGUocm91dGUpIHx8XG4gICAgICAgICFnZXRSb3V0ZU1hdGNoZXIoZ2V0Um91dGVSZWdleChyb3V0ZSkpKHBhcnNlZEFzUGF0aG5hbWUpKVxuICAgIClcblxuICAgIC8vIHdlIGRvbid0IGF0dGVtcHQgcmVzb2x2ZSBhc1BhdGggd2hlbiB3ZSBuZWVkIHRvIGV4ZWN1dGVcbiAgICAvLyBtaWRkbGV3YXJlIGFzIHRoZSByZXNvbHZpbmcgd2lsbCBvY2N1ciBzZXJ2ZXItc2lkZVxuICAgIGNvbnN0IGlzTWlkZGxld2FyZU1hdGNoID1cbiAgICAgICFvcHRpb25zLnNoYWxsb3cgJiZcbiAgICAgIChhd2FpdCBtYXRjaGVzTWlkZGxld2FyZSh7XG4gICAgICAgIGFzUGF0aDogYXMsXG4gICAgICAgIGxvY2FsZTogbmV4dFN0YXRlLmxvY2FsZSxcbiAgICAgICAgcm91dGVyOiB0aGlzLFxuICAgICAgfSkpXG5cbiAgICBpZiAoaXNRdWVyeVVwZGF0aW5nICYmIGlzTWlkZGxld2FyZU1hdGNoKSB7XG4gICAgICBzaG91bGRSZXNvbHZlSHJlZiA9IGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKHNob3VsZFJlc29sdmVIcmVmICYmIHBhdGhuYW1lICE9PSAnL19lcnJvcicpIHtcbiAgICAgIDsob3B0aW9ucyBhcyBhbnkpLl9zaG91bGRSZXNvbHZlSHJlZiA9IHRydWVcblxuICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgJiYgYXMuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIGNvbnN0IHJld3JpdGVzUmVzdWx0ID0gcmVzb2x2ZVJld3JpdGVzKFxuICAgICAgICAgIGFkZEJhc2VQYXRoKGFkZExvY2FsZShjbGVhbmVkQXMsIG5leHRTdGF0ZS5sb2NhbGUpLCB0cnVlKSxcbiAgICAgICAgICBwYWdlcyxcbiAgICAgICAgICByZXdyaXRlcyxcbiAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAocDogc3RyaW5nKSA9PiByZXNvbHZlRHluYW1pY1JvdXRlKHAsIHBhZ2VzKSxcbiAgICAgICAgICB0aGlzLmxvY2FsZXNcbiAgICAgICAgKVxuXG4gICAgICAgIGlmIChyZXdyaXRlc1Jlc3VsdC5leHRlcm5hbERlc3QpIHtcbiAgICAgICAgICBoYW5kbGVIYXJkTmF2aWdhdGlvbih7IHVybDogYXMsIHJvdXRlcjogdGhpcyB9KVxuICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc01pZGRsZXdhcmVNYXRjaCkge1xuICAgICAgICAgIHJlc29sdmVkQXMgPSByZXdyaXRlc1Jlc3VsdC5hc1BhdGhcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXdyaXRlc1Jlc3VsdC5tYXRjaGVkUGFnZSAmJiByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWYpIHtcbiAgICAgICAgICAvLyBpZiB0aGlzIGRpcmVjdGx5IG1hdGNoZXMgYSBwYWdlIHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBocmVmIHRvXG4gICAgICAgICAgLy8gYWxsb3cgdGhlIGNvcnJlY3QgcGFnZSBjaHVuayB0byBiZSBsb2FkZWRcbiAgICAgICAgICBwYXRobmFtZSA9IHJld3JpdGVzUmVzdWx0LnJlc29sdmVkSHJlZlxuICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGFkZEJhc2VQYXRoKHBhdGhuYW1lKVxuXG4gICAgICAgICAgaWYgKCFpc01pZGRsZXdhcmVNYXRjaCkge1xuICAgICAgICAgICAgdXJsID0gZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcmVzb2x2ZUR5bmFtaWNSb3V0ZShwYXRobmFtZSwgcGFnZXMpXG5cbiAgICAgICAgaWYgKHBhcnNlZC5wYXRobmFtZSAhPT0gcGF0aG5hbWUpIHtcbiAgICAgICAgICBwYXRobmFtZSA9IHBhcnNlZC5wYXRobmFtZVxuICAgICAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGFkZEJhc2VQYXRoKHBhdGhuYW1lKVxuXG4gICAgICAgICAgaWYgKCFpc01pZGRsZXdhcmVNYXRjaCkge1xuICAgICAgICAgICAgdXJsID0gZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaXNMb2NhbFVSTChhcykpIHtcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBocmVmOiBcIiR7dXJsfVwiIGFuZCBhczogXCIke2FzfVwiLCByZWNlaXZlZCByZWxhdGl2ZSBocmVmIGFuZCBleHRlcm5hbCBhc2AgK1xuICAgICAgICAgICAgYFxcblNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2ludmFsaWQtcmVsYXRpdmUtdXJsLWV4dGVybmFsLWFzYFxuICAgICAgICApXG4gICAgICB9XG4gICAgICBoYW5kbGVIYXJkTmF2aWdhdGlvbih7IHVybDogYXMsIHJvdXRlcjogdGhpcyB9KVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgcmVzb2x2ZWRBcyA9IHJlbW92ZUxvY2FsZShyZW1vdmVCYXNlUGF0aChyZXNvbHZlZEFzKSwgbmV4dFN0YXRlLmxvY2FsZSlcblxuICAgIHJvdXRlID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbiAgICBsZXQgcm91dGVNYXRjaDogUGFyYW1zIHwgZmFsc2UgPSBmYWxzZVxuXG4gICAgaWYgKGlzRHluYW1pY1JvdXRlKHJvdXRlKSkge1xuICAgICAgY29uc3QgcGFyc2VkQXMgPSBwYXJzZVJlbGF0aXZlVXJsKHJlc29sdmVkQXMpXG4gICAgICBjb25zdCBhc1BhdGhuYW1lID0gcGFyc2VkQXMucGF0aG5hbWVcblxuICAgICAgY29uc3Qgcm91dGVSZWdleCA9IGdldFJvdXRlUmVnZXgocm91dGUpXG4gICAgICByb3V0ZU1hdGNoID0gZ2V0Um91dGVNYXRjaGVyKHJvdXRlUmVnZXgpKGFzUGF0aG5hbWUpXG4gICAgICBjb25zdCBzaG91bGRJbnRlcnBvbGF0ZSA9IHJvdXRlID09PSBhc1BhdGhuYW1lXG4gICAgICBjb25zdCBpbnRlcnBvbGF0ZWRBcyA9IHNob3VsZEludGVycG9sYXRlXG4gICAgICAgID8gaW50ZXJwb2xhdGVBcyhyb3V0ZSwgYXNQYXRobmFtZSwgcXVlcnkpXG4gICAgICAgIDogKHt9IGFzIHsgcmVzdWx0OiB1bmRlZmluZWQ7IHBhcmFtczogdW5kZWZpbmVkIH0pXG5cbiAgICAgIGlmICghcm91dGVNYXRjaCB8fCAoc2hvdWxkSW50ZXJwb2xhdGUgJiYgIWludGVycG9sYXRlZEFzLnJlc3VsdCkpIHtcbiAgICAgICAgY29uc3QgbWlzc2luZ1BhcmFtcyA9IE9iamVjdC5rZXlzKHJvdXRlUmVnZXguZ3JvdXBzKS5maWx0ZXIoXG4gICAgICAgICAgKHBhcmFtKSA9PiAhcXVlcnlbcGFyYW1dICYmICFyb3V0ZVJlZ2V4Lmdyb3Vwc1twYXJhbV0ub3B0aW9uYWxcbiAgICAgICAgKVxuXG4gICAgICAgIGlmIChtaXNzaW5nUGFyYW1zLmxlbmd0aCA+IDAgJiYgIWlzTWlkZGxld2FyZU1hdGNoKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgYCR7XG4gICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJwb2xhdGVcbiAgICAgICAgICAgICAgICAgID8gYEludGVycG9sYXRpbmcgaHJlZmBcbiAgICAgICAgICAgICAgICAgIDogYE1pc21hdGNoaW5nIFxcYGFzXFxgIGFuZCBcXGBocmVmXFxgYFxuICAgICAgICAgICAgICB9IGZhaWxlZCB0byBtYW51YWxseSBwcm92aWRlIGAgK1xuICAgICAgICAgICAgICAgIGB0aGUgcGFyYW1zOiAke21pc3NpbmdQYXJhbXMuam9pbihcbiAgICAgICAgICAgICAgICAgICcsICdcbiAgICAgICAgICAgICAgICApfSBpbiB0aGUgXFxgaHJlZlxcYCdzIFxcYHF1ZXJ5XFxgYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIChzaG91bGRJbnRlcnBvbGF0ZVxuICAgICAgICAgICAgICA/IGBUaGUgcHJvdmlkZWQgXFxgaHJlZlxcYCAoJHt1cmx9KSB2YWx1ZSBpcyBtaXNzaW5nIHF1ZXJ5IHZhbHVlcyAoJHttaXNzaW5nUGFyYW1zLmpvaW4oXG4gICAgICAgICAgICAgICAgICAnLCAnXG4gICAgICAgICAgICAgICAgKX0pIHRvIGJlIGludGVycG9sYXRlZCBwcm9wZXJseS4gYFxuICAgICAgICAgICAgICA6IGBUaGUgcHJvdmlkZWQgXFxgYXNcXGAgdmFsdWUgKCR7YXNQYXRobmFtZX0pIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBcXGBocmVmXFxgIHZhbHVlICgke3JvdXRlfSkuIGApICtcbiAgICAgICAgICAgICAgYFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvJHtcbiAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnBvbGF0ZVxuICAgICAgICAgICAgICAgICAgPyAnaHJlZi1pbnRlcnBvbGF0aW9uLWZhaWxlZCdcbiAgICAgICAgICAgICAgICAgIDogJ2luY29tcGF0aWJsZS1ocmVmLWFzJ1xuICAgICAgICAgICAgICB9YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChzaG91bGRJbnRlcnBvbGF0ZSkge1xuICAgICAgICBhcyA9IGZvcm1hdFdpdGhWYWxpZGF0aW9uKFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oe30sIHBhcnNlZEFzLCB7XG4gICAgICAgICAgICBwYXRobmFtZTogaW50ZXJwb2xhdGVkQXMucmVzdWx0LFxuICAgICAgICAgICAgcXVlcnk6IG9taXQocXVlcnksIGludGVycG9sYXRlZEFzLnBhcmFtcyEpLFxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE1lcmdlIHBhcmFtcyBpbnRvIGBxdWVyeWAsIG92ZXJ3cml0aW5nIGFueSBzcGVjaWZpZWQgaW4gc2VhcmNoXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocXVlcnksIHJvdXRlTWF0Y2gpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFpc1F1ZXJ5VXBkYXRpbmcpIHtcbiAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VTdGFydCcsIGFzLCByb3V0ZVByb3BzKVxuICAgIH1cblxuICAgIGNvbnN0IGlzRXJyb3JSb3V0ZSA9IHRoaXMucGF0aG5hbWUgPT09ICcvNDA0JyB8fCB0aGlzLnBhdGhuYW1lID09PSAnL19lcnJvcidcblxuICAgIHRyeSB7XG4gICAgICBsZXQgcm91dGVJbmZvID0gYXdhaXQgdGhpcy5nZXRSb3V0ZUluZm8oe1xuICAgICAgICByb3V0ZSxcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIHF1ZXJ5LFxuICAgICAgICBhcyxcbiAgICAgICAgcmVzb2x2ZWRBcyxcbiAgICAgICAgcm91dGVQcm9wcyxcbiAgICAgICAgbG9jYWxlOiBuZXh0U3RhdGUubG9jYWxlLFxuICAgICAgICBpc1ByZXZpZXc6IG5leHRTdGF0ZS5pc1ByZXZpZXcsXG4gICAgICAgIGhhc01pZGRsZXdhcmU6IGlzTWlkZGxld2FyZU1hdGNoLFxuICAgICAgICB1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGU6IG9wdGlvbnMudW5zdGFibGVfc2tpcENsaWVudENhY2hlLFxuICAgICAgICBpc1F1ZXJ5VXBkYXRpbmc6IGlzUXVlcnlVcGRhdGluZyAmJiAhdGhpcy5pc0ZhbGxiYWNrLFxuICAgICAgICBpc01pZGRsZXdhcmVSZXdyaXRlLFxuICAgICAgfSlcblxuICAgICAgaWYgKCFpc1F1ZXJ5VXBkYXRpbmcgJiYgIW9wdGlvbnMuc2hhbGxvdykge1xuICAgICAgICBhd2FpdCB0aGlzLl9iZmwoXG4gICAgICAgICAgYXMsXG4gICAgICAgICAgJ3Jlc29sdmVkQXMnIGluIHJvdXRlSW5mbyA/IHJvdXRlSW5mby5yZXNvbHZlZEFzIDogdW5kZWZpbmVkLFxuICAgICAgICAgIG5leHRTdGF0ZS5sb2NhbGVcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoJ3JvdXRlJyBpbiByb3V0ZUluZm8gJiYgaXNNaWRkbGV3YXJlTWF0Y2gpIHtcbiAgICAgICAgcGF0aG5hbWUgPSByb3V0ZUluZm8ucm91dGUgfHwgcm91dGVcbiAgICAgICAgcm91dGUgPSBwYXRobmFtZVxuXG4gICAgICAgIGlmICghcm91dGVQcm9wcy5zaGFsbG93KSB7XG4gICAgICAgICAgcXVlcnkgPSBPYmplY3QuYXNzaWduKHt9LCByb3V0ZUluZm8ucXVlcnkgfHwge30sIHF1ZXJ5KVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2xlYW5lZFBhcnNlZFBhdGhuYW1lID0gaGFzQmFzZVBhdGgocGFyc2VkLnBhdGhuYW1lKVxuICAgICAgICAgID8gcmVtb3ZlQmFzZVBhdGgocGFyc2VkLnBhdGhuYW1lKVxuICAgICAgICAgIDogcGFyc2VkLnBhdGhuYW1lXG5cbiAgICAgICAgaWYgKHJvdXRlTWF0Y2ggJiYgcGF0aG5hbWUgIT09IGNsZWFuZWRQYXJzZWRQYXRobmFtZSkge1xuICAgICAgICAgIE9iamVjdC5rZXlzKHJvdXRlTWF0Y2gpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJvdXRlTWF0Y2ggJiYgcXVlcnlba2V5XSA9PT0gcm91dGVNYXRjaFtrZXldKSB7XG4gICAgICAgICAgICAgIGRlbGV0ZSBxdWVyeVtrZXldXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc0R5bmFtaWNSb3V0ZShwYXRobmFtZSkpIHtcbiAgICAgICAgICBjb25zdCBwcmVmaXhlZEFzID1cbiAgICAgICAgICAgICFyb3V0ZVByb3BzLnNoYWxsb3cgJiYgcm91dGVJbmZvLnJlc29sdmVkQXNcbiAgICAgICAgICAgICAgPyByb3V0ZUluZm8ucmVzb2x2ZWRBc1xuICAgICAgICAgICAgICA6IGFkZEJhc2VQYXRoKFxuICAgICAgICAgICAgICAgICAgYWRkTG9jYWxlKFxuICAgICAgICAgICAgICAgICAgICBuZXcgVVJMKGFzLCBsb2NhdGlvbi5ocmVmKS5wYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgbmV4dFN0YXRlLmxvY2FsZVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHRydWVcbiAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICBsZXQgcmV3cml0ZUFzID0gcHJlZml4ZWRBc1xuXG4gICAgICAgICAgaWYgKGhhc0Jhc2VQYXRoKHJld3JpdGVBcykpIHtcbiAgICAgICAgICAgIHJld3JpdGVBcyA9IHJlbW92ZUJhc2VQYXRoKHJld3JpdGVBcylcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0kxOE5fU1VQUE9SVCkge1xuICAgICAgICAgICAgY29uc3QgbG9jYWxlUmVzdWx0ID0gbm9ybWFsaXplTG9jYWxlUGF0aChyZXdyaXRlQXMsIHRoaXMubG9jYWxlcylcbiAgICAgICAgICAgIG5leHRTdGF0ZS5sb2NhbGUgPSBsb2NhbGVSZXN1bHQuZGV0ZWN0ZWRMb2NhbGUgfHwgbmV4dFN0YXRlLmxvY2FsZVxuICAgICAgICAgICAgcmV3cml0ZUFzID0gbG9jYWxlUmVzdWx0LnBhdGhuYW1lXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHJvdXRlUmVnZXggPSBnZXRSb3V0ZVJlZ2V4KHBhdGhuYW1lKVxuICAgICAgICAgIGNvbnN0IGN1clJvdXRlTWF0Y2ggPSBnZXRSb3V0ZU1hdGNoZXIocm91dGVSZWdleCkoXG4gICAgICAgICAgICBuZXcgVVJMKHJld3JpdGVBcywgbG9jYXRpb24uaHJlZikucGF0aG5hbWVcbiAgICAgICAgICApXG5cbiAgICAgICAgICBpZiAoY3VyUm91dGVNYXRjaCkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihxdWVyeSwgY3VyUm91dGVNYXRjaClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSWYgdGhlIHJvdXRlSW5mbyBicmluZ3MgYSByZWRpcmVjdCB3ZSBzaW1wbHkgYXBwbHkgaXQuXG4gICAgICBpZiAoJ3R5cGUnIGluIHJvdXRlSW5mbykge1xuICAgICAgICBpZiAocm91dGVJbmZvLnR5cGUgPT09ICdyZWRpcmVjdC1pbnRlcm5hbCcpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2UobWV0aG9kLCByb3V0ZUluZm8ubmV3VXJsLCByb3V0ZUluZm8ubmV3QXMsIG9wdGlvbnMpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaGFuZGxlSGFyZE5hdmlnYXRpb24oeyB1cmw6IHJvdXRlSW5mby5kZXN0aW5hdGlvbiwgcm91dGVyOiB0aGlzIH0pXG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbXBvbmVudDogYW55ID0gcm91dGVJbmZvLkNvbXBvbmVudFxuICAgICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQudW5zdGFibGVfc2NyaXB0TG9hZGVyKSB7XG4gICAgICAgIGNvbnN0IHNjcmlwdHMgPSBbXS5jb25jYXQoY29tcG9uZW50LnVuc3RhYmxlX3NjcmlwdExvYWRlcigpKVxuXG4gICAgICAgIHNjcmlwdHMuZm9yRWFjaCgoc2NyaXB0OiBhbnkpID0+IHtcbiAgICAgICAgICBoYW5kbGVDbGllbnRTY3JpcHRMb2FkKHNjcmlwdC5wcm9wcylcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgLy8gaGFuZGxlIHJlZGlyZWN0IG9uIGNsaWVudC10cmFuc2l0aW9uXG4gICAgICBpZiAoKHJvdXRlSW5mby5fX05fU1NHIHx8IHJvdXRlSW5mby5fX05fU1NQKSAmJiByb3V0ZUluZm8ucHJvcHMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHJvdXRlSW5mby5wcm9wcy5wYWdlUHJvcHMgJiZcbiAgICAgICAgICByb3V0ZUluZm8ucHJvcHMucGFnZVByb3BzLl9fTl9SRURJUkVDVFxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBVc2UgdGhlIGRlc3RpbmF0aW9uIGZyb20gcmVkaXJlY3Qgd2l0aG91dCBhZGRpbmcgbG9jYWxlXG4gICAgICAgICAgb3B0aW9ucy5sb2NhbGUgPSBmYWxzZVxuXG4gICAgICAgICAgY29uc3QgZGVzdGluYXRpb24gPSByb3V0ZUluZm8ucHJvcHMucGFnZVByb3BzLl9fTl9SRURJUkVDVFxuXG4gICAgICAgICAgLy8gY2hlY2sgaWYgZGVzdGluYXRpb24gaXMgaW50ZXJuYWwgKHJlc29sdmVzIHRvIGEgcGFnZSkgYW5kIGF0dGVtcHRcbiAgICAgICAgICAvLyBjbGllbnQtbmF2aWdhdGlvbiBpZiBpdCBpcyBmYWxsaW5nIGJhY2sgdG8gaGFyZCBuYXZpZ2F0aW9uIGlmXG4gICAgICAgICAgLy8gaXQncyBub3RcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkZXN0aW5hdGlvbi5zdGFydHNXaXRoKCcvJykgJiZcbiAgICAgICAgICAgIHJvdXRlSW5mby5wcm9wcy5wYWdlUHJvcHMuX19OX1JFRElSRUNUX0JBU0VfUEFUSCAhPT0gZmFsc2VcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZEhyZWYgPSBwYXJzZVJlbGF0aXZlVXJsKGRlc3RpbmF0aW9uKVxuICAgICAgICAgICAgcGFyc2VkSHJlZi5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUoXG4gICAgICAgICAgICAgIHBhcnNlZEhyZWYucGF0aG5hbWUsXG4gICAgICAgICAgICAgIHBhZ2VzXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGNvbnN0IHsgdXJsOiBuZXdVcmwsIGFzOiBuZXdBcyB9ID0gcHJlcGFyZVVybEFzKFxuICAgICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgICBkZXN0aW5hdGlvbixcbiAgICAgICAgICAgICAgZGVzdGluYXRpb25cbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoYW5nZShtZXRob2QsIG5ld1VybCwgbmV3QXMsIG9wdGlvbnMpXG4gICAgICAgICAgfVxuICAgICAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHsgdXJsOiBkZXN0aW5hdGlvbiwgcm91dGVyOiB0aGlzIH0pXG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKCgpID0+IHt9KVxuICAgICAgICB9XG5cbiAgICAgICAgbmV4dFN0YXRlLmlzUHJldmlldyA9ICEhcm91dGVJbmZvLnByb3BzLl9fTl9QUkVWSUVXXG5cbiAgICAgICAgLy8gaGFuZGxlIFNTRyBkYXRhIDQwNFxuICAgICAgICBpZiAocm91dGVJbmZvLnByb3BzLm5vdEZvdW5kID09PSBTU0dfREFUQV9OT1RfRk9VTkQpIHtcbiAgICAgICAgICBsZXQgbm90Rm91bmRSb3V0ZVxuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hDb21wb25lbnQoJy80MDQnKVxuICAgICAgICAgICAgbm90Rm91bmRSb3V0ZSA9ICcvNDA0J1xuICAgICAgICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgICAgICAgIG5vdEZvdW5kUm91dGUgPSAnL19lcnJvcidcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByb3V0ZUluZm8gPSBhd2FpdCB0aGlzLmdldFJvdXRlSW5mbyh7XG4gICAgICAgICAgICByb3V0ZTogbm90Rm91bmRSb3V0ZSxcbiAgICAgICAgICAgIHBhdGhuYW1lOiBub3RGb3VuZFJvdXRlLFxuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICBhcyxcbiAgICAgICAgICAgIHJlc29sdmVkQXMsXG4gICAgICAgICAgICByb3V0ZVByb3BzOiB7IHNoYWxsb3c6IGZhbHNlIH0sXG4gICAgICAgICAgICBsb2NhbGU6IG5leHRTdGF0ZS5sb2NhbGUsXG4gICAgICAgICAgICBpc1ByZXZpZXc6IG5leHRTdGF0ZS5pc1ByZXZpZXcsXG4gICAgICAgICAgICBpc05vdEZvdW5kOiB0cnVlLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBpZiAoJ3R5cGUnIGluIHJvdXRlSW5mbykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIG1pZGRsZXdhcmUgZWZmZWN0IG9uIC80MDRgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGlzUXVlcnlVcGRhdGluZyAmJlxuICAgICAgICB0aGlzLnBhdGhuYW1lID09PSAnL19lcnJvcicgJiZcbiAgICAgICAgc2VsZi5fX05FWFRfREFUQV9fLnByb3BzPy5wYWdlUHJvcHM/LnN0YXR1c0NvZGUgPT09IDUwMCAmJlxuICAgICAgICByb3V0ZUluZm8ucHJvcHM/LnBhZ2VQcm9wc1xuICAgICAgKSB7XG4gICAgICAgIC8vIGVuc3VyZSBzdGF0dXNDb2RlIGlzIHN0aWxsIGNvcnJlY3QgZm9yIHN0YXRpYyA1MDAgcGFnZVxuICAgICAgICAvLyB3aGVuIHVwZGF0aW5nIHF1ZXJ5IGluZm9ybWF0aW9uXG4gICAgICAgIHJvdXRlSW5mby5wcm9wcy5wYWdlUHJvcHMuc3RhdHVzQ29kZSA9IDUwMFxuICAgICAgfVxuXG4gICAgICAvLyBzaGFsbG93IHJvdXRpbmcgaXMgb25seSBhbGxvd2VkIGZvciBzYW1lIHBhZ2UgVVJMIGNoYW5nZXMuXG4gICAgICBjb25zdCBpc1ZhbGlkU2hhbGxvd1JvdXRlID1cbiAgICAgICAgb3B0aW9ucy5zaGFsbG93ICYmIG5leHRTdGF0ZS5yb3V0ZSA9PT0gKHJvdXRlSW5mby5yb3V0ZSA/PyByb3V0ZSlcblxuICAgICAgY29uc3Qgc2hvdWxkU2Nyb2xsID1cbiAgICAgICAgb3B0aW9ucy5zY3JvbGwgPz8gKCFpc1F1ZXJ5VXBkYXRpbmcgJiYgIWlzVmFsaWRTaGFsbG93Um91dGUpXG4gICAgICBjb25zdCByZXNldFNjcm9sbCA9IHNob3VsZFNjcm9sbCA/IHsgeDogMCwgeTogMCB9IDogbnVsbFxuICAgICAgY29uc3QgdXBjb21pbmdTY3JvbGxTdGF0ZSA9IGZvcmNlZFNjcm9sbCA/PyByZXNldFNjcm9sbFxuXG4gICAgICAvLyB0aGUgbmV3IHN0YXRlIHRoYXQgdGhlIHJvdXRlciBnb25uYSBzZXRcbiAgICAgIGNvbnN0IHVwY29taW5nUm91dGVyU3RhdGUgPSB7XG4gICAgICAgIC4uLm5leHRTdGF0ZSxcbiAgICAgICAgcm91dGUsXG4gICAgICAgIHBhdGhuYW1lLFxuICAgICAgICBxdWVyeSxcbiAgICAgICAgYXNQYXRoOiBjbGVhbmVkQXMsXG4gICAgICAgIGlzRmFsbGJhY2s6IGZhbHNlLFxuICAgICAgfVxuXG4gICAgICAvLyBXaGVuIHRoZSBwYWdlIGJlaW5nIHJlbmRlcmVkIGlzIHRoZSA0MDQgcGFnZSwgd2Ugc2hvdWxkIG9ubHkgdXBkYXRlIHRoZVxuICAgICAgLy8gcXVlcnkgcGFyYW1ldGVycy4gUm91dGUgY2hhbmdlcyBoZXJlIG1pZ2h0IGFkZCB0aGUgYmFzZVBhdGggd2hlbiBpdFxuICAgICAgLy8gd2Fzbid0IG9yaWdpbmFsbHkgcHJlc2VudC4gVGhpcyBpcyBhbHNvIHdoeSB0aGlzIGJsb2NrIGlzIGJlZm9yZSB0aGVcbiAgICAgIC8vIGJlbG93IGBjaGFuZ2VTdGF0ZWAgY2FsbCB3aGljaCB1cGRhdGVzIHRoZSBicm93c2VyJ3MgaGlzdG9yeSAoY2hhbmdpbmdcbiAgICAgIC8vIHRoZSBVUkwpLlxuICAgICAgaWYgKGlzUXVlcnlVcGRhdGluZyAmJiBpc0Vycm9yUm91dGUpIHtcbiAgICAgICAgcm91dGVJbmZvID0gYXdhaXQgdGhpcy5nZXRSb3V0ZUluZm8oe1xuICAgICAgICAgIHJvdXRlOiB0aGlzLnBhdGhuYW1lLFxuICAgICAgICAgIHBhdGhuYW1lOiB0aGlzLnBhdGhuYW1lLFxuICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgIGFzLFxuICAgICAgICAgIHJlc29sdmVkQXMsXG4gICAgICAgICAgcm91dGVQcm9wczogeyBzaGFsbG93OiBmYWxzZSB9LFxuICAgICAgICAgIGxvY2FsZTogbmV4dFN0YXRlLmxvY2FsZSxcbiAgICAgICAgICBpc1ByZXZpZXc6IG5leHRTdGF0ZS5pc1ByZXZpZXcsXG4gICAgICAgICAgaXNRdWVyeVVwZGF0aW5nOiBpc1F1ZXJ5VXBkYXRpbmcgJiYgIXRoaXMuaXNGYWxsYmFjayxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoJ3R5cGUnIGluIHJvdXRlSW5mbykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBtaWRkbGV3YXJlIGVmZmVjdCBvbiAke3RoaXMucGF0aG5hbWV9YClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnBhdGhuYW1lID09PSAnL19lcnJvcicgJiZcbiAgICAgICAgICBzZWxmLl9fTkVYVF9EQVRBX18ucHJvcHM/LnBhZ2VQcm9wcz8uc3RhdHVzQ29kZSA9PT0gNTAwICYmXG4gICAgICAgICAgcm91dGVJbmZvLnByb3BzPy5wYWdlUHJvcHNcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gZW5zdXJlIHN0YXR1c0NvZGUgaXMgc3RpbGwgY29ycmVjdCBmb3Igc3RhdGljIDUwMCBwYWdlXG4gICAgICAgICAgLy8gd2hlbiB1cGRhdGluZyBxdWVyeSBpbmZvcm1hdGlvblxuICAgICAgICAgIHJvdXRlSW5mby5wcm9wcy5wYWdlUHJvcHMuc3RhdHVzQ29kZSA9IDUwMFxuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnNldCh1cGNvbWluZ1JvdXRlclN0YXRlLCByb3V0ZUluZm8sIHVwY29taW5nU2Nyb2xsU3RhdGUpXG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmIChpc0Vycm9yKGVycikgJiYgZXJyLmNhbmNlbGxlZCkge1xuICAgICAgICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdyb3V0ZUNoYW5nZUVycm9yJywgZXJyLCBjbGVhbmVkQXMsIHJvdXRlUHJvcHMpXG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGVyclxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cblxuICAgICAgUm91dGVyLmV2ZW50cy5lbWl0KCdiZWZvcmVIaXN0b3J5Q2hhbmdlJywgYXMsIHJvdXRlUHJvcHMpXG4gICAgICB0aGlzLmNoYW5nZVN0YXRlKG1ldGhvZCwgdXJsLCBhcywgb3B0aW9ucylcblxuICAgICAgLy8gZm9yIHF1ZXJ5IHVwZGF0ZXMgd2UgY2FuIHNraXAgaXQgaWYgdGhlIHN0YXRlIGlzIHVuY2hhbmdlZCBhbmQgd2UgZG9uJ3RcbiAgICAgIC8vIG5lZWQgdG8gc2Nyb2xsXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvaXNzdWVzLzM3MTM5XG4gICAgICBjb25zdCBjYW5Ta2lwVXBkYXRpbmcgPVxuICAgICAgICBpc1F1ZXJ5VXBkYXRpbmcgJiZcbiAgICAgICAgIXVwY29taW5nU2Nyb2xsU3RhdGUgJiZcbiAgICAgICAgIXJlYWR5U3RhdGVDaGFuZ2UgJiZcbiAgICAgICAgIWxvY2FsZUNoYW5nZSAmJlxuICAgICAgICBjb21wYXJlUm91dGVyU3RhdGVzKHVwY29taW5nUm91dGVyU3RhdGUsIHRoaXMuc3RhdGUpXG5cbiAgICAgIGlmICghY2FuU2tpcFVwZGF0aW5nKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5zZXQodXBjb21pbmdSb3V0ZXJTdGF0ZSwgcm91dGVJbmZvLCB1cGNvbWluZ1Njcm9sbFN0YXRlKVxuICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICBpZiAoZS5jYW5jZWxsZWQpIHJvdXRlSW5mby5lcnJvciA9IHJvdXRlSW5mby5lcnJvciB8fCBlXG4gICAgICAgICAgZWxzZSB0aHJvdyBlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocm91dGVJbmZvLmVycm9yKSB7XG4gICAgICAgICAgaWYgKCFpc1F1ZXJ5VXBkYXRpbmcpIHtcbiAgICAgICAgICAgIFJvdXRlci5ldmVudHMuZW1pdChcbiAgICAgICAgICAgICAgJ3JvdXRlQ2hhbmdlRXJyb3InLFxuICAgICAgICAgICAgICByb3V0ZUluZm8uZXJyb3IsXG4gICAgICAgICAgICAgIGNsZWFuZWRBcyxcbiAgICAgICAgICAgICAgcm91dGVQcm9wc1xuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IHJvdXRlSW5mby5lcnJvclxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgICAgICBpZiAobmV4dFN0YXRlLmxvY2FsZSkge1xuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSBuZXh0U3RhdGUubG9jYWxlXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFpc1F1ZXJ5VXBkYXRpbmcpIHtcbiAgICAgICAgICBSb3V0ZXIuZXZlbnRzLmVtaXQoJ3JvdXRlQ2hhbmdlQ29tcGxldGUnLCBhcywgcm91dGVQcm9wcylcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEEgaGFzaCBtYXJrICMgaXMgdGhlIG9wdGlvbmFsIGxhc3QgcGFydCBvZiBhIFVSTFxuICAgICAgICBjb25zdCBoYXNoUmVnZXggPSAvIy4rJC9cbiAgICAgICAgaWYgKHNob3VsZFNjcm9sbCAmJiBoYXNoUmVnZXgudGVzdChhcykpIHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvSGFzaChhcylcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaWYgKGlzRXJyb3IoZXJyKSAmJiBlcnIuY2FuY2VsbGVkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG5cbiAgY2hhbmdlU3RhdGUoXG4gICAgbWV0aG9kOiBIaXN0b3J5TWV0aG9kLFxuICAgIHVybDogc3RyaW5nLFxuICAgIGFzOiBzdHJpbmcsXG4gICAgb3B0aW9uczogVHJhbnNpdGlvbk9wdGlvbnMgPSB7fVxuICApOiB2b2lkIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuaGlzdG9yeSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgV2FybmluZzogd2luZG93Lmhpc3RvcnkgaXMgbm90IGF2YWlsYWJsZS5gKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cuaGlzdG9yeVttZXRob2RdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBXYXJuaW5nOiB3aW5kb3cuaGlzdG9yeS4ke21ldGhvZH0gaXMgbm90IGF2YWlsYWJsZWApXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChtZXRob2QgIT09ICdwdXNoU3RhdGUnIHx8IGdldFVSTCgpICE9PSBhcykge1xuICAgICAgdGhpcy5fc2hhbGxvdyA9IG9wdGlvbnMuc2hhbGxvd1xuICAgICAgd2luZG93Lmhpc3RvcnlbbWV0aG9kXShcbiAgICAgICAge1xuICAgICAgICAgIHVybCxcbiAgICAgICAgICBhcyxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIF9fTjogdHJ1ZSxcbiAgICAgICAgICBrZXk6ICh0aGlzLl9rZXkgPSBtZXRob2QgIT09ICdwdXNoU3RhdGUnID8gdGhpcy5fa2V5IDogY3JlYXRlS2V5KCkpLFxuICAgICAgICB9IGFzIEhpc3RvcnlTdGF0ZSxcbiAgICAgICAgLy8gTW9zdCBicm93c2VycyBjdXJyZW50bHkgaWdub3JlcyB0aGlzIHBhcmFtZXRlciwgYWx0aG91Z2ggdGhleSBtYXkgdXNlIGl0IGluIHRoZSBmdXR1cmUuXG4gICAgICAgIC8vIFBhc3NpbmcgdGhlIGVtcHR5IHN0cmluZyBoZXJlIHNob3VsZCBiZSBzYWZlIGFnYWluc3QgZnV0dXJlIGNoYW5nZXMgdG8gdGhlIG1ldGhvZC5cbiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0hpc3RvcnkvcmVwbGFjZVN0YXRlXG4gICAgICAgICcnLFxuICAgICAgICBhc1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVJvdXRlSW5mb0Vycm9yKFxuICAgIGVycjogRXJyb3IgJiB7IGNvZGU/OiBhbnk7IGNhbmNlbGxlZD86IGJvb2xlYW4gfSxcbiAgICBwYXRobmFtZTogc3RyaW5nLFxuICAgIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeSxcbiAgICBhczogc3RyaW5nLFxuICAgIHJvdXRlUHJvcHM6IFJvdXRlUHJvcGVydGllcyxcbiAgICBsb2FkRXJyb3JGYWlsPzogYm9vbGVhblxuICApOiBQcm9taXNlPENvbXBsZXRlUHJpdmF0ZVJvdXRlSW5mbz4ge1xuICAgIGlmIChlcnIuY2FuY2VsbGVkKSB7XG4gICAgICAvLyBidWJibGUgdXAgY2FuY2VsbGF0aW9uIGVycm9yc1xuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuXG4gICAgaWYgKGlzQXNzZXRFcnJvcihlcnIpIHx8IGxvYWRFcnJvckZhaWwpIHtcbiAgICAgIFJvdXRlci5ldmVudHMuZW1pdCgncm91dGVDaGFuZ2VFcnJvcicsIGVyciwgYXMsIHJvdXRlUHJvcHMpXG5cbiAgICAgIC8vIElmIHdlIGNhbid0IGxvYWQgdGhlIHBhZ2UgaXQgY291bGQgYmUgb25lIG9mIGZvbGxvd2luZyByZWFzb25zXG4gICAgICAvLyAgMS4gUGFnZSBkb2Vzbid0IGV4aXN0c1xuICAgICAgLy8gIDIuIFBhZ2UgZG9lcyBleGlzdCBpbiBhIGRpZmZlcmVudCB6b25lXG4gICAgICAvLyAgMy4gSW50ZXJuYWwgZXJyb3Igd2hpbGUgbG9hZGluZyB0aGUgcGFnZVxuXG4gICAgICAvLyBTbywgZG9pbmcgYSBoYXJkIHJlbG9hZCBpcyB0aGUgcHJvcGVyIHdheSB0byBkZWFsIHdpdGggdGhpcy5cbiAgICAgIGhhbmRsZUhhcmROYXZpZ2F0aW9uKHtcbiAgICAgICAgdXJsOiBhcyxcbiAgICAgICAgcm91dGVyOiB0aGlzLFxuICAgICAgfSlcblxuICAgICAgLy8gQ2hhbmdpbmcgdGhlIFVSTCBkb2Vzbid0IGJsb2NrIGV4ZWN1dGluZyB0aGUgY3VycmVudCBjb2RlIHBhdGguXG4gICAgICAvLyBTbyBsZXQncyB0aHJvdyBhIGNhbmNlbGxhdGlvbiBlcnJvciBzdG9wIHRoZSByb3V0aW5nIGxvZ2ljLlxuICAgICAgdGhyb3cgYnVpbGRDYW5jZWxsYXRpb25FcnJvcigpXG4gICAgfVxuXG4gICAgY29uc29sZS5lcnJvcihlcnIpXG5cbiAgICB0cnkge1xuICAgICAgbGV0IHByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkXG4gICAgICBjb25zdCB7IHBhZ2U6IENvbXBvbmVudCwgc3R5bGVTaGVldHMgfSA9XG4gICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hDb21wb25lbnQoJy9fZXJyb3InKVxuXG4gICAgICBjb25zdCByb3V0ZUluZm86IENvbXBsZXRlUHJpdmF0ZVJvdXRlSW5mbyA9IHtcbiAgICAgICAgcHJvcHMsXG4gICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgc3R5bGVTaGVldHMsXG4gICAgICAgIGVycixcbiAgICAgICAgZXJyb3I6IGVycixcbiAgICAgIH1cblxuICAgICAgaWYgKCFyb3V0ZUluZm8ucHJvcHMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByb3V0ZUluZm8ucHJvcHMgPSBhd2FpdCB0aGlzLmdldEluaXRpYWxQcm9wcyhDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGVycixcbiAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgfSBhcyBhbnkpXG4gICAgICAgIH0gY2F0Y2ggKGdpcEVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGVycm9yIHBhZ2UgYGdldEluaXRpYWxQcm9wc2A6ICcsIGdpcEVycilcbiAgICAgICAgICByb3V0ZUluZm8ucHJvcHMgPSB7fVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByb3V0ZUluZm9cbiAgICB9IGNhdGNoIChyb3V0ZUluZm9FcnIpIHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJvdXRlSW5mb0Vycm9yKFxuICAgICAgICBpc0Vycm9yKHJvdXRlSW5mb0VycikgPyByb3V0ZUluZm9FcnIgOiBuZXcgRXJyb3Iocm91dGVJbmZvRXJyICsgJycpLFxuICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgcXVlcnksXG4gICAgICAgIGFzLFxuICAgICAgICByb3V0ZVByb3BzLFxuICAgICAgICB0cnVlXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0Um91dGVJbmZvKHtcbiAgICByb3V0ZTogcmVxdWVzdGVkUm91dGUsXG4gICAgcGF0aG5hbWUsXG4gICAgcXVlcnksXG4gICAgYXMsXG4gICAgcmVzb2x2ZWRBcyxcbiAgICByb3V0ZVByb3BzLFxuICAgIGxvY2FsZSxcbiAgICBoYXNNaWRkbGV3YXJlLFxuICAgIGlzUHJldmlldyxcbiAgICB1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGUsXG4gICAgaXNRdWVyeVVwZGF0aW5nLFxuICAgIGlzTWlkZGxld2FyZVJld3JpdGUsXG4gICAgaXNOb3RGb3VuZCxcbiAgfToge1xuICAgIHJvdXRlOiBzdHJpbmdcbiAgICBwYXRobmFtZTogc3RyaW5nXG4gICAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gICAgYXM6IHN0cmluZ1xuICAgIHJlc29sdmVkQXM6IHN0cmluZ1xuICAgIGhhc01pZGRsZXdhcmU/OiBib29sZWFuXG4gICAgcm91dGVQcm9wczogUm91dGVQcm9wZXJ0aWVzXG4gICAgbG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgICBpc1ByZXZpZXc6IGJvb2xlYW5cbiAgICB1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGU/OiBib29sZWFuXG4gICAgaXNRdWVyeVVwZGF0aW5nPzogYm9vbGVhblxuICAgIGlzTWlkZGxld2FyZVJld3JpdGU/OiBib29sZWFuXG4gICAgaXNOb3RGb3VuZD86IGJvb2xlYW5cbiAgfSkge1xuICAgIC8qKlxuICAgICAqIFRoaXMgYHJvdXRlYCBiaW5kaW5nIGNhbiBjaGFuZ2UgaWYgdGhlcmUncyBhIHJld3JpdGVcbiAgICAgKiBzbyB3ZSBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hbCByZXF1ZXN0ZWQgcm91dGVcbiAgICAgKiBzbyB3ZSBjYW4gc3RvcmUgdGhlIGNhY2hlIGZvciBpdCBhbmQgYXZvaWQgcmUtcmVxdWVzdGluZyBldmVyeSB0aW1lXG4gICAgICogZm9yIHNoYWxsb3cgcm91dGluZyBwdXJwb3Nlcy5cbiAgICAgKi9cbiAgICBsZXQgcm91dGUgPSByZXF1ZXN0ZWRSb3V0ZVxuXG4gICAgdHJ5IHtcbiAgICAgIGxldCBleGlzdGluZ0luZm86IFByaXZhdGVSb3V0ZUluZm8gfCB1bmRlZmluZWQgPSB0aGlzLmNvbXBvbmVudHNbcm91dGVdXG4gICAgICBpZiAocm91dGVQcm9wcy5zaGFsbG93ICYmIGV4aXN0aW5nSW5mbyAmJiB0aGlzLnJvdXRlID09PSByb3V0ZSkge1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdJbmZvXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZUNhbmNlbGxlZCA9IGdldENhbmNlbGxlZEhhbmRsZXIoeyByb3V0ZSwgcm91dGVyOiB0aGlzIH0pXG5cbiAgICAgIGlmIChoYXNNaWRkbGV3YXJlKSB7XG4gICAgICAgIGV4aXN0aW5nSW5mbyA9IHVuZGVmaW5lZFxuICAgICAgfVxuXG4gICAgICBsZXQgY2FjaGVkUm91dGVJbmZvID1cbiAgICAgICAgZXhpc3RpbmdJbmZvICYmXG4gICAgICAgICEoJ2luaXRpYWwnIGluIGV4aXN0aW5nSW5mbykgJiZcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCdcbiAgICAgICAgICA/IGV4aXN0aW5nSW5mb1xuICAgICAgICAgIDogdW5kZWZpbmVkXG5cbiAgICAgIGNvbnN0IGlzQmFja2dyb3VuZCA9IGlzUXVlcnlVcGRhdGluZ1xuICAgICAgY29uc3QgZmV0Y2hOZXh0RGF0YVBhcmFtczogRmV0Y2hOZXh0RGF0YVBhcmFtcyA9IHtcbiAgICAgICAgZGF0YUhyZWY6IHRoaXMucGFnZUxvYWRlci5nZXREYXRhSHJlZih7XG4gICAgICAgICAgaHJlZjogZm9ybWF0V2l0aFZhbGlkYXRpb24oeyBwYXRobmFtZSwgcXVlcnkgfSksXG4gICAgICAgICAgc2tpcEludGVycG9sYXRpb246IHRydWUsXG4gICAgICAgICAgYXNQYXRoOiBpc05vdEZvdW5kID8gJy80MDQnIDogcmVzb2x2ZWRBcyxcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgIH0pLFxuICAgICAgICBoYXNNaWRkbGV3YXJlOiB0cnVlLFxuICAgICAgICBpc1NlcnZlclJlbmRlcjogdGhpcy5pc1NzcixcbiAgICAgICAgcGFyc2VKU09OOiB0cnVlLFxuICAgICAgICBpbmZsaWdodENhY2hlOiBpc0JhY2tncm91bmQgPyB0aGlzLnNiYyA6IHRoaXMuc2RjLFxuICAgICAgICBwZXJzaXN0Q2FjaGU6ICFpc1ByZXZpZXcsXG4gICAgICAgIGlzUHJlZmV0Y2g6IGZhbHNlLFxuICAgICAgICB1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGUsXG4gICAgICAgIGlzQmFja2dyb3VuZCxcbiAgICAgIH1cblxuICAgICAgbGV0IGRhdGE6XG4gICAgICAgIHwgV2l0aE1pZGRsZXdhcmVFZmZlY3RzT3V0cHV0XG4gICAgICAgIHwgKFBpY2s8V2l0aE1pZGRsZXdhcmVFZmZlY3RzT3V0cHV0LCAnanNvbic+ICZcbiAgICAgICAgICAgIE9taXQ8UGFydGlhbDxXaXRoTWlkZGxld2FyZUVmZmVjdHNPdXRwdXQ+LCAnanNvbic+KVxuICAgICAgICB8IG51bGwgPVxuICAgICAgICBpc1F1ZXJ5VXBkYXRpbmcgJiYgIWlzTWlkZGxld2FyZVJld3JpdGVcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IGF3YWl0IHdpdGhNaWRkbGV3YXJlRWZmZWN0cyh7XG4gICAgICAgICAgICAgIGZldGNoRGF0YTogKCkgPT4gZmV0Y2hOZXh0RGF0YShmZXRjaE5leHREYXRhUGFyYW1zKSxcbiAgICAgICAgICAgICAgYXNQYXRoOiBpc05vdEZvdW5kID8gJy80MDQnIDogcmVzb2x2ZWRBcyxcbiAgICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGUsXG4gICAgICAgICAgICAgIHJvdXRlcjogdGhpcyxcbiAgICAgICAgICAgIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgLy8gd2UgZG9uJ3QgaGFyZCBlcnJvciBkdXJpbmcgcXVlcnkgdXBkYXRpbmdcbiAgICAgICAgICAgICAgLy8gYXMgaXQncyB1bi1uZWNlc3NhcnkgYW5kIGRvZXNuJ3QgbmVlZCB0byBiZSBmYXRhbFxuICAgICAgICAgICAgICAvLyB1bmxlc3MgaXQgaXMgYSBmYWxsYmFjayByb3V0ZSBhbmQgdGhlIHByb3BzIGNhbid0XG4gICAgICAgICAgICAgIC8vIGJlIGxvYWRlZFxuICAgICAgICAgICAgICBpZiAoaXNRdWVyeVVwZGF0aW5nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB0aHJvdyBlcnJcbiAgICAgICAgICAgIH0pXG5cbiAgICAgIC8vIHdoZW4gcmVuZGVyaW5nIGVycm9yIHJvdXRlcyB3ZSBkb24ndCBhcHBseSBtaWRkbGV3YXJlXG4gICAgICAvLyBlZmZlY3RzXG4gICAgICBpZiAoZGF0YSAmJiAocGF0aG5hbWUgPT09ICcvX2Vycm9yJyB8fCBwYXRobmFtZSA9PT0gJy80MDQnKSkge1xuICAgICAgICBkYXRhLmVmZmVjdCA9IHVuZGVmaW5lZFxuICAgICAgfVxuXG4gICAgICBpZiAoaXNRdWVyeVVwZGF0aW5nKSB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgIGRhdGEgPSB7IGpzb246IHNlbGYuX19ORVhUX0RBVEFfXy5wcm9wcyB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGF0YS5qc29uID0gc2VsZi5fX05FWFRfREFUQV9fLnByb3BzXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaGFuZGxlQ2FuY2VsbGVkKClcblxuICAgICAgaWYgKFxuICAgICAgICBkYXRhPy5lZmZlY3Q/LnR5cGUgPT09ICdyZWRpcmVjdC1pbnRlcm5hbCcgfHxcbiAgICAgICAgZGF0YT8uZWZmZWN0Py50eXBlID09PSAncmVkaXJlY3QtZXh0ZXJuYWwnXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGRhdGEuZWZmZWN0XG4gICAgICB9XG5cbiAgICAgIGlmIChkYXRhPy5lZmZlY3Q/LnR5cGUgPT09ICdyZXdyaXRlJykge1xuICAgICAgICBjb25zdCByZXNvbHZlZFJvdXRlID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChkYXRhLmVmZmVjdC5yZXNvbHZlZEhyZWYpXG4gICAgICAgIGNvbnN0IHBhZ2VzID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmdldFBhZ2VMaXN0KClcblxuICAgICAgICAvLyBkdXJpbmcgcXVlcnkgdXBkYXRpbmcgdGhlIHBhZ2UgbXVzdCBtYXRjaCBhbHRob3VnaCBkdXJpbmdcbiAgICAgICAgLy8gY2xpZW50LXRyYW5zaXRpb24gYSByZWRpcmVjdCB0aGF0IGRvZXNuJ3QgbWF0Y2ggYSBwYWdlXG4gICAgICAgIC8vIGNhbiBiZSByZXR1cm5lZCBhbmQgdGhpcyBzaG91bGQgdHJpZ2dlciBhIGhhcmQgbmF2aWdhdGlvblxuICAgICAgICAvLyB3aGljaCBpcyB2YWxpZCBmb3IgaW5jcmVtZW50YWwgbWlncmF0aW9uXG4gICAgICAgIGlmICghaXNRdWVyeVVwZGF0aW5nIHx8IHBhZ2VzLmluY2x1ZGVzKHJlc29sdmVkUm91dGUpKSB7XG4gICAgICAgICAgcm91dGUgPSByZXNvbHZlZFJvdXRlXG4gICAgICAgICAgcGF0aG5hbWUgPSBkYXRhLmVmZmVjdC5yZXNvbHZlZEhyZWZcbiAgICAgICAgICBxdWVyeSA9IHsgLi4ucXVlcnksIC4uLmRhdGEuZWZmZWN0LnBhcnNlZEFzLnF1ZXJ5IH1cbiAgICAgICAgICByZXNvbHZlZEFzID0gcmVtb3ZlQmFzZVBhdGgoXG4gICAgICAgICAgICBub3JtYWxpemVMb2NhbGVQYXRoKGRhdGEuZWZmZWN0LnBhcnNlZEFzLnBhdGhuYW1lLCB0aGlzLmxvY2FsZXMpXG4gICAgICAgICAgICAgIC5wYXRobmFtZVxuICAgICAgICAgIClcblxuICAgICAgICAgIC8vIENoZWNrIGFnYWluIHRoZSBjYWNoZSB3aXRoIHRoZSBuZXcgZGVzdGluYXRpb24uXG4gICAgICAgICAgZXhpc3RpbmdJbmZvID0gdGhpcy5jb21wb25lbnRzW3JvdXRlXVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHJvdXRlUHJvcHMuc2hhbGxvdyAmJlxuICAgICAgICAgICAgZXhpc3RpbmdJbmZvICYmXG4gICAgICAgICAgICB0aGlzLnJvdXRlID09PSByb3V0ZSAmJlxuICAgICAgICAgICAgIWhhc01pZGRsZXdhcmVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBtYXRjaCB3aXRoIHRoZSBjdXJyZW50IHJvdXRlIGR1ZSB0byByZXdyaXRlLFxuICAgICAgICAgICAgLy8gd2UgY2FuIGNvcHkgdGhlIGV4aXN0aW5nIGluZm9ybWF0aW9uIHRvIHRoZSByZXdyaXR0ZW4gb25lLlxuICAgICAgICAgICAgLy8gVGhlbiwgd2UgcmV0dXJuIHRoZSBpbmZvcm1hdGlvbiBhbG9uZyB3aXRoIHRoZSBtYXRjaGVkIHJvdXRlLlxuICAgICAgICAgICAgcmV0dXJuIHsgLi4uZXhpc3RpbmdJbmZvLCByb3V0ZSB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0FQSVJvdXRlKHJvdXRlKSkge1xuICAgICAgICBoYW5kbGVIYXJkTmF2aWdhdGlvbih7IHVybDogYXMsIHJvdXRlcjogdGhpcyB9KVxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8bmV2ZXI+KCgpID0+IHt9KVxuICAgICAgfVxuXG4gICAgICBjb25zdCByb3V0ZUluZm8gPVxuICAgICAgICBjYWNoZWRSb3V0ZUluZm8gfHxcbiAgICAgICAgKGF3YWl0IHRoaXMuZmV0Y2hDb21wb25lbnQocm91dGUpLnRoZW48Q29tcGxldGVQcml2YXRlUm91dGVJbmZvPihcbiAgICAgICAgICAocmVzKSA9PiAoe1xuICAgICAgICAgICAgQ29tcG9uZW50OiByZXMucGFnZSxcbiAgICAgICAgICAgIHN0eWxlU2hlZXRzOiByZXMuc3R5bGVTaGVldHMsXG4gICAgICAgICAgICBfX05fU1NHOiByZXMubW9kLl9fTl9TU0csXG4gICAgICAgICAgICBfX05fU1NQOiByZXMubW9kLl9fTl9TU1AsXG4gICAgICAgICAgfSlcbiAgICAgICAgKSlcblxuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgY29uc3QgeyBpc1ZhbGlkRWxlbWVudFR5cGUgfSA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1pcycpXG4gICAgICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKHJvdXRlSW5mby5Db21wb25lbnQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFRoZSBkZWZhdWx0IGV4cG9ydCBpcyBub3QgYSBSZWFjdCBDb21wb25lbnQgaW4gcGFnZTogXCIke3BhdGhuYW1lfVwiYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3Qgd2FzQmFpbGVkUHJlZmV0Y2ggPSBkYXRhPy5yZXNwb25zZT8uaGVhZGVycy5nZXQoJ3gtbWlkZGxld2FyZS1za2lwJylcblxuICAgICAgY29uc3Qgc2hvdWxkRmV0Y2hEYXRhID0gcm91dGVJbmZvLl9fTl9TU0cgfHwgcm91dGVJbmZvLl9fTl9TU1BcblxuICAgICAgLy8gRm9yIG5vbi1TU0cgcHJlZmV0Y2hlcyB0aGF0IGJhaWxlZCBiZWZvcmUgc2VuZGluZyBkYXRhXG4gICAgICAvLyB3ZSBjbGVhciB0aGUgY2FjaGUgdG8gZmV0Y2ggZnVsbCByZXNwb25zZVxuICAgICAgaWYgKHdhc0JhaWxlZFByZWZldGNoICYmIGRhdGE/LmRhdGFIcmVmKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnNkY1tkYXRhLmRhdGFIcmVmXVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHByb3BzLCBjYWNoZUtleSB9ID0gYXdhaXQgdGhpcy5fZ2V0RGF0YShhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChzaG91bGRGZXRjaERhdGEpIHtcbiAgICAgICAgICBpZiAoZGF0YT8uanNvbiAmJiAhd2FzQmFpbGVkUHJlZmV0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGNhY2hlS2V5OiBkYXRhLmNhY2hlS2V5LCBwcm9wczogZGF0YS5qc29uIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBkYXRhSHJlZiA9IGRhdGE/LmRhdGFIcmVmXG4gICAgICAgICAgICA/IGRhdGEuZGF0YUhyZWZcbiAgICAgICAgICAgIDogdGhpcy5wYWdlTG9hZGVyLmdldERhdGFIcmVmKHtcbiAgICAgICAgICAgICAgICBocmVmOiBmb3JtYXRXaXRoVmFsaWRhdGlvbih7IHBhdGhuYW1lLCBxdWVyeSB9KSxcbiAgICAgICAgICAgICAgICBhc1BhdGg6IHJlc29sdmVkQXMsXG4gICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgY29uc3QgZmV0Y2hlZCA9IGF3YWl0IGZldGNoTmV4dERhdGEoe1xuICAgICAgICAgICAgZGF0YUhyZWYsXG4gICAgICAgICAgICBpc1NlcnZlclJlbmRlcjogdGhpcy5pc1NzcixcbiAgICAgICAgICAgIHBhcnNlSlNPTjogdHJ1ZSxcbiAgICAgICAgICAgIGluZmxpZ2h0Q2FjaGU6IHdhc0JhaWxlZFByZWZldGNoID8ge30gOiB0aGlzLnNkYyxcbiAgICAgICAgICAgIHBlcnNpc3RDYWNoZTogIWlzUHJldmlldyxcbiAgICAgICAgICAgIGlzUHJlZmV0Y2g6IGZhbHNlLFxuICAgICAgICAgICAgdW5zdGFibGVfc2tpcENsaWVudENhY2hlLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2FjaGVLZXk6IGZldGNoZWQuY2FjaGVLZXksXG4gICAgICAgICAgICBwcm9wczogZmV0Y2hlZC5qc29uIHx8IHt9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaGVhZGVyczoge30sXG4gICAgICAgICAgcHJvcHM6IGF3YWl0IHRoaXMuZ2V0SW5pdGlhbFByb3BzKFxuICAgICAgICAgICAgcm91dGVJbmZvLkNvbXBvbmVudCxcbiAgICAgICAgICAgIC8vIHdlIHByb3ZpZGUgQXBwVHJlZSBsYXRlciBzbyB0aGlzIG5lZWRzIHRvIGJlIGBhbnlgXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdGhuYW1lLFxuICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgYXNQYXRoOiBhcyxcbiAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICBsb2NhbGVzOiB0aGlzLmxvY2FsZXMsXG4gICAgICAgICAgICAgIGRlZmF1bHRMb2NhbGU6IHRoaXMuZGVmYXVsdExvY2FsZSxcbiAgICAgICAgICAgIH0gYXMgYW55XG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8gT25seSBidXN0IHRoZSBkYXRhIGNhY2hlIGZvciBTU1Agcm91dGVzIGFsdGhvdWdoXG4gICAgICAvLyBtaWRkbGV3YXJlIGNhbiBza2lwIGNhY2hlIHBlciByZXF1ZXN0IHdpdGhcbiAgICAgIC8vIHgtbWlkZGxld2FyZS1jYWNoZTogbm8tY2FjaGUgYXMgd2VsbFxuICAgICAgaWYgKHJvdXRlSW5mby5fX05fU1NQICYmIGZldGNoTmV4dERhdGFQYXJhbXMuZGF0YUhyZWYgJiYgY2FjaGVLZXkpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMuc2RjW2NhY2hlS2V5XVxuICAgICAgfVxuXG4gICAgICAvLyB3ZSBraWNrIG9mZiBhIEhFQUQgcmVxdWVzdCBpbiB0aGUgYmFja2dyb3VuZFxuICAgICAgLy8gd2hlbiBhIG5vbi1wcmVmZXRjaCByZXF1ZXN0IGlzIG1hZGUgdG8gc2lnbmFsIHJldmFsaWRhdGlvblxuICAgICAgaWYgKFxuICAgICAgICAhdGhpcy5pc1ByZXZpZXcgJiZcbiAgICAgICAgcm91dGVJbmZvLl9fTl9TU0cgJiZcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdkZXZlbG9wbWVudCcgJiZcbiAgICAgICAgIWlzUXVlcnlVcGRhdGluZ1xuICAgICAgKSB7XG4gICAgICAgIGZldGNoTmV4dERhdGEoXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgZmV0Y2hOZXh0RGF0YVBhcmFtcywge1xuICAgICAgICAgICAgaXNCYWNrZ3JvdW5kOiB0cnVlLFxuICAgICAgICAgICAgcGVyc2lzdENhY2hlOiBmYWxzZSxcbiAgICAgICAgICAgIGluZmxpZ2h0Q2FjaGU6IHRoaXMuc2JjLFxuICAgICAgICAgIH0pXG4gICAgICAgICkuY2F0Y2goKCkgPT4ge30pXG4gICAgICB9XG5cbiAgICAgIHByb3BzLnBhZ2VQcm9wcyA9IE9iamVjdC5hc3NpZ24oe30sIHByb3BzLnBhZ2VQcm9wcylcbiAgICAgIHJvdXRlSW5mby5wcm9wcyA9IHByb3BzXG4gICAgICByb3V0ZUluZm8ucm91dGUgPSByb3V0ZVxuICAgICAgcm91dGVJbmZvLnF1ZXJ5ID0gcXVlcnlcbiAgICAgIHJvdXRlSW5mby5yZXNvbHZlZEFzID0gcmVzb2x2ZWRBc1xuICAgICAgdGhpcy5jb21wb25lbnRzW3JvdXRlXSA9IHJvdXRlSW5mb1xuXG4gICAgICByZXR1cm4gcm91dGVJbmZvXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVSb3V0ZUluZm9FcnJvcihcbiAgICAgICAgZ2V0UHJvcGVyRXJyb3IoZXJyKSxcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIHF1ZXJ5LFxuICAgICAgICBhcyxcbiAgICAgICAgcm91dGVQcm9wc1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0KFxuICAgIHN0YXRlOiB0eXBlb2YgdGhpcy5zdGF0ZSxcbiAgICBkYXRhOiBQcml2YXRlUm91dGVJbmZvLFxuICAgIHJlc2V0U2Nyb2xsOiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0gfCBudWxsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc3RhdGUgPSBzdGF0ZVxuXG4gICAgcmV0dXJuIHRoaXMuc3ViKFxuICAgICAgZGF0YSxcbiAgICAgIHRoaXMuY29tcG9uZW50c1snL19hcHAnXS5Db21wb25lbnQgYXMgQXBwQ29tcG9uZW50LFxuICAgICAgcmVzZXRTY3JvbGxcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogQ2FsbGJhY2sgdG8gZXhlY3V0ZSBiZWZvcmUgcmVwbGFjaW5nIHJvdXRlciBzdGF0ZVxuICAgKiBAcGFyYW0gY2IgY2FsbGJhY2sgdG8gYmUgZXhlY3V0ZWRcbiAgICovXG4gIGJlZm9yZVBvcFN0YXRlKGNiOiBCZWZvcmVQb3BTdGF0ZUNhbGxiYWNrKSB7XG4gICAgdGhpcy5fYnBzID0gY2JcbiAgfVxuXG4gIG9ubHlBSGFzaENoYW5nZShhczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmFzUGF0aCkgcmV0dXJuIGZhbHNlXG4gICAgY29uc3QgW29sZFVybE5vSGFzaCwgb2xkSGFzaF0gPSB0aGlzLmFzUGF0aC5zcGxpdCgnIycsIDIpXG4gICAgY29uc3QgW25ld1VybE5vSGFzaCwgbmV3SGFzaF0gPSBhcy5zcGxpdCgnIycsIDIpXG5cbiAgICAvLyBNYWtlcyBzdXJlIHdlIHNjcm9sbCB0byB0aGUgcHJvdmlkZWQgaGFzaCBpZiB0aGUgdXJsL2hhc2ggYXJlIHRoZSBzYW1lXG4gICAgaWYgKG5ld0hhc2ggJiYgb2xkVXJsTm9IYXNoID09PSBuZXdVcmxOb0hhc2ggJiYgb2xkSGFzaCA9PT0gbmV3SGFzaCkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgdXJscyBhcmUgY2hhbmdlLCB0aGVyZSdzIG1vcmUgdGhhbiBhIGhhc2ggY2hhbmdlXG4gICAgaWYgKG9sZFVybE5vSGFzaCAhPT0gbmV3VXJsTm9IYXNoKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgaGFzaCBoYXMgY2hhbmdlZCwgdGhlbiBpdCdzIGEgaGFzaCBvbmx5IGNoYW5nZS5cbiAgICAvLyBUaGlzIGNoZWNrIGlzIG5lY2Vzc2FyeSB0byBoYW5kbGUgYm90aCB0aGUgZW50ZXIgYW5kXG4gICAgLy8gbGVhdmUgaGFzaCA9PT0gJycgY2FzZXMuIFRoZSBpZGVudGl0eSBjYXNlIGZhbGxzIHRocm91Z2hcbiAgICAvLyBhbmQgaXMgdHJlYXRlZCBhcyBhIG5leHQgcmVsb2FkLlxuICAgIHJldHVybiBvbGRIYXNoICE9PSBuZXdIYXNoXG4gIH1cblxuICBzY3JvbGxUb0hhc2goYXM6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IFssIGhhc2ggPSAnJ10gPSBhcy5zcGxpdCgnIycsIDIpXG5cbiAgICBoYW5kbGVTbW9vdGhTY3JvbGwoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIC8vIFNjcm9sbCB0byB0b3AgaWYgdGhlIGhhc2ggaXMganVzdCBgI2Agd2l0aCBubyB2YWx1ZSBvciBgI3RvcGBcbiAgICAgICAgLy8gVG8gbWlycm9yIGJyb3dzZXJzXG4gICAgICAgIGlmIChoYXNoID09PSAnJyB8fCBoYXNoID09PSAndG9wJykge1xuICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVjb2RlIGhhc2ggdG8gbWFrZSBub24tbGF0aW4gYW5jaG9yIHdvcmtzLlxuICAgICAgICBjb25zdCByYXdIYXNoID0gZGVjb2RlVVJJQ29tcG9uZW50KGhhc2gpXG4gICAgICAgIC8vIEZpcnN0IHdlIGNoZWNrIGlmIHRoZSBlbGVtZW50IGJ5IGlkIGlzIGZvdW5kXG4gICAgICAgIGNvbnN0IGlkRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyYXdIYXNoKVxuICAgICAgICBpZiAoaWRFbCkge1xuICAgICAgICAgIGlkRWwuc2Nyb2xsSW50b1ZpZXcoKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIC8vIElmIHRoZXJlJ3Mgbm8gZWxlbWVudCB3aXRoIHRoZSBpZCwgd2UgY2hlY2sgdGhlIGBuYW1lYCBwcm9wZXJ0eVxuICAgICAgICAvLyBUbyBtaXJyb3IgYnJvd3NlcnNcbiAgICAgICAgY29uc3QgbmFtZUVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUocmF3SGFzaClbMF1cbiAgICAgICAgaWYgKG5hbWVFbCkge1xuICAgICAgICAgIG5hbWVFbC5zY3JvbGxJbnRvVmlldygpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9ubHlIYXNoQ2hhbmdlOiB0aGlzLm9ubHlBSGFzaENoYW5nZShhcyksXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgdXJsSXNOZXcoYXNQYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hc1BhdGggIT09IGFzUGF0aFxuICB9XG5cbiAgLyoqXG4gICAqIFByZWZldGNoIHBhZ2UgY29kZSwgeW91IG1heSB3YWl0IGZvciB0aGUgZGF0YSBkdXJpbmcgcGFnZSByZW5kZXJpbmcuXG4gICAqIFRoaXMgZmVhdHVyZSBvbmx5IHdvcmtzIGluIHByb2R1Y3Rpb24hXG4gICAqIEBwYXJhbSB1cmwgdGhlIGhyZWYgb2YgcHJlZmV0Y2hlZCBwYWdlXG4gICAqIEBwYXJhbSBhc1BhdGggdGhlIGFzIHBhdGggb2YgdGhlIHByZWZldGNoZWQgcGFnZVxuICAgKi9cbiAgYXN5bmMgcHJlZmV0Y2goXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgYXNQYXRoOiBzdHJpbmcgPSB1cmwsXG4gICAgb3B0aW9uczogUHJlZmV0Y2hPcHRpb25zID0ge31cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gUHJlZmV0Y2ggaXMgbm90IHN1cHBvcnRlZCBpbiBkZXZlbG9wbWVudCBtb2RlIGJlY2F1c2UgaXQgd291bGQgdHJpZ2dlciBvbi1kZW1hbmQtZW50cmllc1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiYgaXNCb3Qod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpKSB7XG4gICAgICAvLyBObyBwcmVmZXRjaGVzIGZvciBib3RzIHRoYXQgcmVuZGVyIHRoZSBsaW5rIHNpbmNlIHRoZXkgYXJlIHR5cGljYWxseSBuYXZpZ2F0aW5nXG4gICAgICAvLyBsaW5rcyB2aWEgdGhlIGVxdWl2YWxlbnQgb2YgYSBoYXJkIG5hdmlnYXRpb24gYW5kIGhlbmNlIG5ldmVyIHV0aWxpemUgdGhlc2VcbiAgICAgIC8vIHByZWZldGNoZXMuXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgbGV0IHBhcnNlZCA9IHBhcnNlUmVsYXRpdmVVcmwodXJsKVxuICAgIGNvbnN0IHVybFBhdGhuYW1lID0gcGFyc2VkLnBhdGhuYW1lXG5cbiAgICBsZXQgeyBwYXRobmFtZSwgcXVlcnkgfSA9IHBhcnNlZFxuICAgIGNvbnN0IG9yaWdpbmFsUGF0aG5hbWUgPSBwYXRobmFtZVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9JMThOX1NVUFBPUlQpIHtcbiAgICAgIGlmIChvcHRpb25zLmxvY2FsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcGF0aG5hbWUgPSBub3JtYWxpemVMb2NhbGVQYXRoIShwYXRobmFtZSwgdGhpcy5sb2NhbGVzKS5wYXRobmFtZVxuICAgICAgICBwYXJzZWQucGF0aG5hbWUgPSBwYXRobmFtZVxuICAgICAgICB1cmwgPSBmb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpXG5cbiAgICAgICAgbGV0IHBhcnNlZEFzID0gcGFyc2VSZWxhdGl2ZVVybChhc1BhdGgpXG4gICAgICAgIGNvbnN0IGxvY2FsZVBhdGhSZXN1bHQgPSBub3JtYWxpemVMb2NhbGVQYXRoIShcbiAgICAgICAgICBwYXJzZWRBcy5wYXRobmFtZSxcbiAgICAgICAgICB0aGlzLmxvY2FsZXNcbiAgICAgICAgKVxuICAgICAgICBwYXJzZWRBcy5wYXRobmFtZSA9IGxvY2FsZVBhdGhSZXN1bHQucGF0aG5hbWVcbiAgICAgICAgb3B0aW9ucy5sb2NhbGUgPSBsb2NhbGVQYXRoUmVzdWx0LmRldGVjdGVkTG9jYWxlIHx8IHRoaXMuZGVmYXVsdExvY2FsZVxuICAgICAgICBhc1BhdGggPSBmb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWRBcylcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwYWdlcyA9IGF3YWl0IHRoaXMucGFnZUxvYWRlci5nZXRQYWdlTGlzdCgpXG4gICAgbGV0IHJlc29sdmVkQXMgPSBhc1BhdGhcblxuICAgIGNvbnN0IGxvY2FsZSA9XG4gICAgICB0eXBlb2Ygb3B0aW9ucy5sb2NhbGUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgID8gb3B0aW9ucy5sb2NhbGUgfHwgdW5kZWZpbmVkXG4gICAgICAgIDogdGhpcy5sb2NhbGVcblxuICAgIGNvbnN0IGlzTWlkZGxld2FyZU1hdGNoID0gYXdhaXQgbWF0Y2hlc01pZGRsZXdhcmUoe1xuICAgICAgYXNQYXRoOiBhc1BhdGgsXG4gICAgICBsb2NhbGU6IGxvY2FsZSxcbiAgICAgIHJvdXRlcjogdGhpcyxcbiAgICB9KVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9IQVNfUkVXUklURVMgJiYgYXNQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgbGV0IHJld3JpdGVzOiBhbnlcbiAgICAgIDsoeyBfX3Jld3JpdGVzOiByZXdyaXRlcyB9ID0gYXdhaXQgZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCgpKVxuXG4gICAgICBjb25zdCByZXdyaXRlc1Jlc3VsdCA9IHJlc29sdmVSZXdyaXRlcyhcbiAgICAgICAgYWRkQmFzZVBhdGgoYWRkTG9jYWxlKGFzUGF0aCwgdGhpcy5sb2NhbGUpLCB0cnVlKSxcbiAgICAgICAgcGFnZXMsXG4gICAgICAgIHJld3JpdGVzLFxuICAgICAgICBwYXJzZWQucXVlcnksXG4gICAgICAgIChwOiBzdHJpbmcpID0+IHJlc29sdmVEeW5hbWljUm91dGUocCwgcGFnZXMpLFxuICAgICAgICB0aGlzLmxvY2FsZXNcbiAgICAgIClcblxuICAgICAgaWYgKHJld3JpdGVzUmVzdWx0LmV4dGVybmFsRGVzdCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKCFpc01pZGRsZXdhcmVNYXRjaCkge1xuICAgICAgICByZXNvbHZlZEFzID0gcmVtb3ZlTG9jYWxlKFxuICAgICAgICAgIHJlbW92ZUJhc2VQYXRoKHJld3JpdGVzUmVzdWx0LmFzUGF0aCksXG4gICAgICAgICAgdGhpcy5sb2NhbGVcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAocmV3cml0ZXNSZXN1bHQubWF0Y2hlZFBhZ2UgJiYgcmV3cml0ZXNSZXN1bHQucmVzb2x2ZWRIcmVmKSB7XG4gICAgICAgIC8vIGlmIHRoaXMgZGlyZWN0bHkgbWF0Y2hlcyBhIHBhZ2Ugd2UgbmVlZCB0byB1cGRhdGUgdGhlIGhyZWYgdG9cbiAgICAgICAgLy8gYWxsb3cgdGhlIGNvcnJlY3QgcGFnZSBjaHVuayB0byBiZSBsb2FkZWRcbiAgICAgICAgcGF0aG5hbWUgPSByZXdyaXRlc1Jlc3VsdC5yZXNvbHZlZEhyZWZcbiAgICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWVcblxuICAgICAgICBpZiAoIWlzTWlkZGxld2FyZU1hdGNoKSB7XG4gICAgICAgICAgdXJsID0gZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHBhcnNlZC5wYXRobmFtZSA9IHJlc29sdmVEeW5hbWljUm91dGUocGFyc2VkLnBhdGhuYW1lLCBwYWdlcylcblxuICAgIGlmIChpc0R5bmFtaWNSb3V0ZShwYXJzZWQucGF0aG5hbWUpKSB7XG4gICAgICBwYXRobmFtZSA9IHBhcnNlZC5wYXRobmFtZVxuICAgICAgcGFyc2VkLnBhdGhuYW1lID0gcGF0aG5hbWVcbiAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgIHF1ZXJ5LFxuICAgICAgICBnZXRSb3V0ZU1hdGNoZXIoZ2V0Um91dGVSZWdleChwYXJzZWQucGF0aG5hbWUpKShcbiAgICAgICAgICBwYXJzZVBhdGgoYXNQYXRoKS5wYXRobmFtZVxuICAgICAgICApIHx8IHt9XG4gICAgICApXG5cbiAgICAgIGlmICghaXNNaWRkbGV3YXJlTWF0Y2gpIHtcbiAgICAgICAgdXJsID0gZm9ybWF0V2l0aFZhbGlkYXRpb24ocGFyc2VkKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPVxuICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX01JRERMRVdBUkVfUFJFRkVUQ0ggPT09ICdzdHJpY3QnXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IGF3YWl0IHdpdGhNaWRkbGV3YXJlRWZmZWN0cyh7XG4gICAgICAgICAgICBmZXRjaERhdGE6ICgpID0+XG4gICAgICAgICAgICAgIGZldGNoTmV4dERhdGEoe1xuICAgICAgICAgICAgICAgIGRhdGFIcmVmOiB0aGlzLnBhZ2VMb2FkZXIuZ2V0RGF0YUhyZWYoe1xuICAgICAgICAgICAgICAgICAgaHJlZjogZm9ybWF0V2l0aFZhbGlkYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICBwYXRobmFtZTogb3JpZ2luYWxQYXRobmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcXVlcnksXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIHNraXBJbnRlcnBvbGF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgYXNQYXRoOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGhhc01pZGRsZXdhcmU6IHRydWUsXG4gICAgICAgICAgICAgICAgaXNTZXJ2ZXJSZW5kZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHBhcnNlSlNPTjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpbmZsaWdodENhY2hlOiB0aGlzLnNkYyxcbiAgICAgICAgICAgICAgICBwZXJzaXN0Q2FjaGU6ICF0aGlzLmlzUHJldmlldyxcbiAgICAgICAgICAgICAgICBpc1ByZWZldGNoOiB0cnVlLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGFzUGF0aDogYXNQYXRoLFxuICAgICAgICAgICAgbG9jYWxlOiBsb2NhbGUsXG4gICAgICAgICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICAgICAgfSlcblxuICAgIC8qKlxuICAgICAqIElmIHRoZXJlIHdhcyBhIHJld3JpdGUgd2UgYXBwbHkgdGhlIGVmZmVjdHMgb2YgdGhlIHJld3JpdGUgb24gdGhlXG4gICAgICogY3VycmVudCBwYXJhbWV0ZXJzIGZvciB0aGUgcHJlZmV0Y2guXG4gICAgICovXG4gICAgaWYgKGRhdGE/LmVmZmVjdC50eXBlID09PSAncmV3cml0ZScpIHtcbiAgICAgIHBhcnNlZC5wYXRobmFtZSA9IGRhdGEuZWZmZWN0LnJlc29sdmVkSHJlZlxuICAgICAgcGF0aG5hbWUgPSBkYXRhLmVmZmVjdC5yZXNvbHZlZEhyZWZcbiAgICAgIHF1ZXJ5ID0geyAuLi5xdWVyeSwgLi4uZGF0YS5lZmZlY3QucGFyc2VkQXMucXVlcnkgfVxuICAgICAgcmVzb2x2ZWRBcyA9IGRhdGEuZWZmZWN0LnBhcnNlZEFzLnBhdGhuYW1lXG4gICAgICB1cmwgPSBmb3JtYXRXaXRoVmFsaWRhdGlvbihwYXJzZWQpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSWYgdGhlcmUgaXMgYSByZWRpcmVjdCB0byBhbiBleHRlcm5hbCBkZXN0aW5hdGlvbiB0aGVuIHdlIGRvbid0IGhhdmVcbiAgICAgKiB0byBwcmVmZXRjaCBjb250ZW50IGFzIGl0IHdpbGwgYmUgdW51c2VkLlxuICAgICAqL1xuICAgIGlmIChkYXRhPy5lZmZlY3QudHlwZSA9PT0gJ3JlZGlyZWN0LWV4dGVybmFsJykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgcm91dGUgPSByZW1vdmVUcmFpbGluZ1NsYXNoKHBhdGhuYW1lKVxuXG4gICAgaWYgKGF3YWl0IHRoaXMuX2JmbChhc1BhdGgsIHJlc29sdmVkQXMsIG9wdGlvbnMubG9jYWxlLCB0cnVlKSkge1xuICAgICAgdGhpcy5jb21wb25lbnRzW3VybFBhdGhuYW1lXSA9IHsgX19hcHBSb3V0ZXI6IHRydWUgfSBhcyBhbnlcbiAgICB9XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICB0aGlzLnBhZ2VMb2FkZXIuX2lzU3NnKHJvdXRlKS50aGVuKChpc1NzZykgPT4ge1xuICAgICAgICByZXR1cm4gaXNTc2dcbiAgICAgICAgICA/IGZldGNoTmV4dERhdGEoe1xuICAgICAgICAgICAgICBkYXRhSHJlZjogZGF0YT8uanNvblxuICAgICAgICAgICAgICAgID8gZGF0YT8uZGF0YUhyZWZcbiAgICAgICAgICAgICAgICA6IHRoaXMucGFnZUxvYWRlci5nZXREYXRhSHJlZih7XG4gICAgICAgICAgICAgICAgICAgIGhyZWY6IHVybCxcbiAgICAgICAgICAgICAgICAgICAgYXNQYXRoOiByZXNvbHZlZEFzLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGU6IGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBpc1NlcnZlclJlbmRlcjogZmFsc2UsXG4gICAgICAgICAgICAgIHBhcnNlSlNPTjogdHJ1ZSxcbiAgICAgICAgICAgICAgaW5mbGlnaHRDYWNoZTogdGhpcy5zZGMsXG4gICAgICAgICAgICAgIHBlcnNpc3RDYWNoZTogIXRoaXMuaXNQcmV2aWV3LFxuICAgICAgICAgICAgICBpc1ByZWZldGNoOiB0cnVlLFxuICAgICAgICAgICAgICB1bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGU6XG4gICAgICAgICAgICAgICAgb3B0aW9ucy51bnN0YWJsZV9za2lwQ2xpZW50Q2FjaGUgfHxcbiAgICAgICAgICAgICAgICAob3B0aW9ucy5wcmlvcml0eSAmJlxuICAgICAgICAgICAgICAgICAgISFwcm9jZXNzLmVudi5fX05FWFRfT1BUSU1JU1RJQ19DTElFTlRfQ0FDSEUpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLnRoZW4oKCkgPT4gZmFsc2UpXG4gICAgICAgICAgICAgIC5jYXRjaCgoKSA9PiBmYWxzZSlcbiAgICAgICAgICA6IGZhbHNlXG4gICAgICB9KSxcbiAgICAgIHRoaXMucGFnZUxvYWRlcltvcHRpb25zLnByaW9yaXR5ID8gJ2xvYWRQYWdlJyA6ICdwcmVmZXRjaCddKHJvdXRlKSxcbiAgICBdKVxuICB9XG5cbiAgYXN5bmMgZmV0Y2hDb21wb25lbnQocm91dGU6IHN0cmluZykge1xuICAgIGNvbnN0IGhhbmRsZUNhbmNlbGxlZCA9IGdldENhbmNlbGxlZEhhbmRsZXIoeyByb3V0ZSwgcm91dGVyOiB0aGlzIH0pXG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgY29tcG9uZW50UmVzdWx0ID0gYXdhaXQgdGhpcy5wYWdlTG9hZGVyLmxvYWRQYWdlKHJvdXRlKVxuICAgICAgaGFuZGxlQ2FuY2VsbGVkKClcblxuICAgICAgcmV0dXJuIGNvbXBvbmVudFJlc3VsdFxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgaGFuZGxlQ2FuY2VsbGVkKClcbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfVxuXG4gIF9nZXREYXRhPFQ+KGZuOiAoKSA9PiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlXG4gICAgY29uc3QgY2FuY2VsID0gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZVxuICAgIH1cbiAgICB0aGlzLmNsYyA9IGNhbmNlbFxuICAgIHJldHVybiBmbigpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgIGlmIChjYW5jZWwgPT09IHRoaXMuY2xjKSB7XG4gICAgICAgIHRoaXMuY2xjID0gbnVsbFxuICAgICAgfVxuXG4gICAgICBpZiAoY2FuY2VsbGVkKSB7XG4gICAgICAgIGNvbnN0IGVycjogYW55ID0gbmV3IEVycm9yKCdMb2FkaW5nIGluaXRpYWwgcHJvcHMgY2FuY2VsbGVkJylcbiAgICAgICAgZXJyLmNhbmNlbGxlZCA9IHRydWVcbiAgICAgICAgdGhyb3cgZXJyXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXRhXG4gICAgfSlcbiAgfVxuXG4gIGdldEluaXRpYWxQcm9wcyhcbiAgICBDb21wb25lbnQ6IENvbXBvbmVudFR5cGUsXG4gICAgY3R4OiBOZXh0UGFnZUNvbnRleHRcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gICAgY29uc3QgeyBDb21wb25lbnQ6IEFwcCB9ID0gdGhpcy5jb21wb25lbnRzWycvX2FwcCddXG4gICAgY29uc3QgQXBwVHJlZSA9IHRoaXMuX3dyYXBBcHAoQXBwIGFzIEFwcENvbXBvbmVudClcbiAgICBjdHguQXBwVHJlZSA9IEFwcFRyZWVcbiAgICByZXR1cm4gbG9hZEdldEluaXRpYWxQcm9wczxBcHBDb250ZXh0VHlwZTxSb3V0ZXI+PihBcHAsIHtcbiAgICAgIEFwcFRyZWUsXG4gICAgICBDb21wb25lbnQsXG4gICAgICByb3V0ZXI6IHRoaXMsXG4gICAgICBjdHgsXG4gICAgfSlcbiAgfVxuXG4gIGdldCByb3V0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnJvdXRlXG4gIH1cblxuICBnZXQgcGF0aG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5wYXRobmFtZVxuICB9XG5cbiAgZ2V0IHF1ZXJ5KCk6IFBhcnNlZFVybFF1ZXJ5IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5xdWVyeVxuICB9XG5cbiAgZ2V0IGFzUGF0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmFzUGF0aFxuICB9XG5cbiAgZ2V0IGxvY2FsZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmxvY2FsZVxuICB9XG5cbiAgZ2V0IGlzRmFsbGJhY2soKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuaXNGYWxsYmFja1xuICB9XG5cbiAgZ2V0IGlzUHJldmlldygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5pc1ByZXZpZXdcbiAgfVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUtleSIsIlJvdXRlciIsIm1hdGNoZXNNaWRkbGV3YXJlIiwiYnVpbGRDYW5jZWxsYXRpb25FcnJvciIsIk9iamVjdCIsImFzc2lnbiIsIkVycm9yIiwiY2FuY2VsbGVkIiwib3B0aW9ucyIsIm1hdGNoZXJzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyb3V0ZXIiLCJwYWdlTG9hZGVyIiwiZ2V0TWlkZGxld2FyZSIsInBhdGhuYW1lIiwiYXNQYXRobmFtZSIsInBhcnNlUGF0aCIsImFzUGF0aCIsImNsZWFuZWRBcyIsImhhc0Jhc2VQYXRoIiwicmVtb3ZlQmFzZVBhdGgiLCJhc1dpdGhCYXNlUGF0aEFuZExvY2FsZSIsImFkZEJhc2VQYXRoIiwiYWRkTG9jYWxlIiwibG9jYWxlIiwic29tZSIsIm0iLCJSZWdFeHAiLCJyZWdleHAiLCJ0ZXN0Iiwic3RyaXBPcmlnaW4iLCJ1cmwiLCJvcmlnaW4iLCJnZXRMb2NhdGlvbk9yaWdpbiIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJwcmVwYXJlVXJsQXMiLCJhcyIsInJlc29sdmVkSHJlZiIsInJlc29sdmVkQXMiLCJyZXNvbHZlSHJlZiIsImhyZWZXYXNBYnNvbHV0ZSIsImFzV2FzQWJzb2x1dGUiLCJwcmVwYXJlZFVybCIsInByZXBhcmVkQXMiLCJyZXNvbHZlRHluYW1pY1JvdXRlIiwicGFnZXMiLCJjbGVhblBhdGhuYW1lIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImRlbm9ybWFsaXplUGFnZVBhdGgiLCJpbmNsdWRlcyIsInBhZ2UiLCJpc0R5bmFtaWNSb3V0ZSIsImdldFJvdXRlUmVnZXgiLCJyZSIsImdldE1pZGRsZXdhcmVEYXRhIiwic291cmNlIiwicmVzcG9uc2UiLCJuZXh0Q29uZmlnIiwiYmFzZVBhdGgiLCJpMThuIiwibG9jYWxlcyIsInRyYWlsaW5nU2xhc2giLCJCb29sZWFuIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9UUkFJTElOR19TTEFTSCIsInJld3JpdGVIZWFkZXIiLCJoZWFkZXJzIiwiZ2V0IiwicmV3cml0ZVRhcmdldCIsIm1hdGNoZWRQYXRoIiwiTUFUQ0hFRF9QQVRIX0hFQURFUiIsIl9fTkVYVF9FWFRFUk5BTF9NSURETEVXQVJFX1JFV1JJVEVfUkVTT0xWRSIsInBhcnNlZFJld3JpdGVUYXJnZXQiLCJwYXJzZVJlbGF0aXZlVXJsIiwicGF0aG5hbWVJbmZvIiwiZ2V0TmV4dFBhdGhuYW1lSW5mbyIsInBhcnNlRGF0YSIsImZzUGF0aG5hbWUiLCJhbGwiLCJnZXRQYWdlTGlzdCIsImdldENsaWVudEJ1aWxkTWFuaWZlc3QiLCJ0aGVuIiwiX19yZXdyaXRlcyIsInJld3JpdGVzIiwibm9ybWFsaXplTG9jYWxlUGF0aCIsInBhcnNlZFNvdXJjZSIsIl9fTkVYVF9IQVNfUkVXUklURVMiLCJ1bmRlZmluZWQiLCJyZXN1bHQiLCJyZXNvbHZlUmV3cml0ZXMiLCJxdWVyeSIsInBhdGgiLCJtYXRjaGVkUGFnZSIsInBhcnNlZEFzIiwicmVzb2x2ZWRQYXRobmFtZSIsIm1hdGNoZXMiLCJnZXRSb3V0ZU1hdGNoZXIiLCJ0eXBlIiwic3JjIiwiZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyIsImRlZmF1bHRMb2NhbGUiLCJidWlsZElkIiwiZGVzdGluYXRpb24iLCJoYXNoIiwicmVkaXJlY3RUYXJnZXQiLCJuZXdBcyIsIm5ld1VybCIsIndpdGhNaWRkbGV3YXJlRWZmZWN0cyIsImZldGNoRGF0YSIsImRhdGEiLCJlZmZlY3QiLCJkYXRhSHJlZiIsImpzb24iLCJ0ZXh0IiwiY2FjaGVLZXkiLCJtYW51YWxTY3JvbGxSZXN0b3JhdGlvbiIsIl9fTkVYVF9TQ1JPTExfUkVTVE9SQVRJT04iLCJ3aW5kb3ciLCJoaXN0b3J5IiwidiIsInNlc3Npb25TdG9yYWdlIiwic2V0SXRlbSIsInJlbW92ZUl0ZW0iLCJuIiwiU1NHX0RBVEFfTk9UX0ZPVU5EIiwiU3ltYm9sIiwiZmV0Y2hSZXRyeSIsImF0dGVtcHRzIiwiZmV0Y2giLCJjcmVkZW50aWFscyIsIm1ldGhvZCIsIm9rIiwic3RhdHVzIiwidHJ5VG9QYXJzZUFzSlNPTiIsIkpTT04iLCJwYXJzZSIsImVycm9yIiwiZmV0Y2hOZXh0RGF0YSIsImluZmxpZ2h0Q2FjaGUiLCJpc1ByZWZldGNoIiwiaGFzTWlkZGxld2FyZSIsImlzU2VydmVyUmVuZGVyIiwicGFyc2VKU09OIiwicGVyc2lzdENhY2hlIiwiaXNCYWNrZ3JvdW5kIiwidW5zdGFibGVfc2tpcENsaWVudENhY2hlIiwiaHJlZiIsIlVSTCIsImxvY2F0aW9uIiwiZ2V0RGF0YSIsInBhcmFtcyIsInB1cnBvc2UiLCJub3RGb3VuZCIsIm1hcmtBc3NldEVycm9yIiwiTk9ERV9FTlYiLCJjYXRjaCIsImVyciIsIm1lc3NhZ2UiLCJNYXRoIiwicmFuZG9tIiwidG9TdHJpbmciLCJzbGljZSIsImhhbmRsZUhhcmROYXZpZ2F0aW9uIiwiZ2V0Q2FuY2VsbGVkSGFuZGxlciIsInJvdXRlIiwiY2FuY2VsIiwiY2xjIiwiaGFuZGxlQ2FuY2VsbGVkIiwicmVsb2FkIiwiYmFjayIsImZvcndhcmQiLCJwdXNoIiwiX2tleSIsInN0cmluZ2lmeSIsIngiLCJzZWxmIiwicGFnZVhPZmZzZXQiLCJ5IiwicGFnZVlPZmZzZXQiLCJjaGFuZ2UiLCJyZXBsYWNlIiwiX2JmbCIsInNraXBOYXZpZ2F0ZSIsIl9fTkVYVF9DTElFTlRfUk9VVEVSX0ZJTFRFUl9FTkFCTEVEIiwiX2JmbF9zIiwiX2JmbF9kIiwiQmxvb21GaWx0ZXIiLCJyZXF1aXJlIiwic3RhdGljRmlsdGVyRGF0YSIsImR5bmFtaWNGaWx0ZXJEYXRhIiwiX19yb3V0ZXJGaWx0ZXJTdGF0aWMiLCJfX3JvdXRlckZpbHRlckR5bmFtaWMiLCJjb25zb2xlIiwicm91dGVyRmlsdGVyU1ZhbHVlIiwiX19ORVhUX0NMSUVOVF9ST1VURVJfU19GSUxURVIiLCJyb3V0ZXJGaWx0ZXJEVmFsdWUiLCJfX05FWFRfQ0xJRU5UX1JPVVRFUl9EX0ZJTFRFUiIsIm51bUhhc2hlcyIsIm51bUl0ZW1zIiwiZXJyb3JSYXRlIiwiaW1wb3J0IiwibWF0Y2hlc0JmbFN0YXRpYyIsIm1hdGNoZXNCZmxEeW5hbWljIiwicGF0aHNUb0NoZWNrIiwiY3VyQXMiLCJhbGxvd01hdGNoQ3VycmVudCIsImFzTm9TbGFzaCIsImFzTm9TbGFzaExvY2FsZSIsImNvbnRhaW5zIiwibm9ybWFsaXplZEFTIiwiY3VyQXNQYXJ0cyIsInNwbGl0IiwiaSIsImN1cnJlbnRQYXJ0Iiwiam9pbiIsImZvcmNlZFNjcm9sbCIsImlzTG9jYWxVUkwiLCJpc1F1ZXJ5VXBkYXRpbmciLCJfaCIsInNoYWxsb3ciLCJzaG91bGRSZXNvbHZlSHJlZiIsIl9zaG91bGRSZXNvbHZlSHJlZiIsIm5leHRTdGF0ZSIsInN0YXRlIiwicmVhZHlTdGF0ZUNoYW5nZSIsImlzUmVhZHkiLCJpc1NzciIsInByZXZMb2NhbGUiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibG9jYWxlUGF0aFJlc3VsdCIsImRldGVjdGVkTG9jYWxlIiwiZm9ybWF0V2l0aFZhbGlkYXRpb24iLCJkaWROYXZpZ2F0ZSIsImRldGVjdGVkRG9tYWluIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwiZG9tYWluTG9jYWxlcyIsImlzTG9jYWxlRG9tYWluIiwiaG9zdG5hbWUiLCJkb21haW4iLCJhc05vQmFzZVBhdGgiLCJodHRwIiwiU1QiLCJwZXJmb3JtYW5jZSIsIm1hcmsiLCJzY3JvbGwiLCJyb3V0ZVByb3BzIiwiX2luRmxpZ2h0Um91dGUiLCJldmVudHMiLCJlbWl0IiwicmVtb3ZlTG9jYWxlIiwibG9jYWxlQ2hhbmdlIiwib25seUFIYXNoQ2hhbmdlIiwiY2hhbmdlU3RhdGUiLCJzY3JvbGxUb0hhc2giLCJzZXQiLCJjb21wb25lbnRzIiwiaXNFcnJvciIsInBhcnNlZCIsInVybElzTmV3IiwicGFyc2VkQXNQYXRobmFtZSIsIl9fYXBwUm91dGVyIiwiaXNNaWRkbGV3YXJlUmV3cml0ZSIsImlzTWlkZGxld2FyZU1hdGNoIiwicmV3cml0ZXNSZXN1bHQiLCJwIiwiZXh0ZXJuYWxEZXN0Iiwicm91dGVNYXRjaCIsInJvdXRlUmVnZXgiLCJzaG91bGRJbnRlcnBvbGF0ZSIsImludGVycG9sYXRlZEFzIiwiaW50ZXJwb2xhdGVBcyIsIm1pc3NpbmdQYXJhbXMiLCJrZXlzIiwiZ3JvdXBzIiwiZmlsdGVyIiwicGFyYW0iLCJvcHRpb25hbCIsIndhcm4iLCJvbWl0IiwiaXNFcnJvclJvdXRlIiwicm91dGVJbmZvIiwiZ2V0Um91dGVJbmZvIiwiaXNQcmV2aWV3IiwiaXNGYWxsYmFjayIsImNsZWFuZWRQYXJzZWRQYXRobmFtZSIsImZvckVhY2giLCJrZXkiLCJwcmVmaXhlZEFzIiwicmV3cml0ZUFzIiwibG9jYWxlUmVzdWx0IiwiY3VyUm91dGVNYXRjaCIsImNvbXBvbmVudCIsIkNvbXBvbmVudCIsInVuc3RhYmxlX3NjcmlwdExvYWRlciIsInNjcmlwdHMiLCJjb25jYXQiLCJzY3JpcHQiLCJoYW5kbGVDbGllbnRTY3JpcHRMb2FkIiwicHJvcHMiLCJfX05fU1NHIiwiX19OX1NTUCIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9CQVNFX1BBVEgiLCJwYXJzZWRIcmVmIiwiX19OX1BSRVZJRVciLCJub3RGb3VuZFJvdXRlIiwiZmV0Y2hDb21wb25lbnQiLCJfIiwiaXNOb3RGb3VuZCIsIl9fTkVYVF9EQVRBX18iLCJzdGF0dXNDb2RlIiwiaXNWYWxpZFNoYWxsb3dSb3V0ZSIsInNob3VsZFNjcm9sbCIsInJlc2V0U2Nyb2xsIiwidXBjb21pbmdTY3JvbGxTdGF0ZSIsInVwY29taW5nUm91dGVyU3RhdGUiLCJjYW5Ta2lwVXBkYXRpbmciLCJjb21wYXJlUm91dGVyU3RhdGVzIiwiZSIsImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwibGFuZyIsImhhc2hSZWdleCIsImdldFVSTCIsIl9zaGFsbG93IiwiX19OIiwiaGFuZGxlUm91dGVJbmZvRXJyb3IiLCJsb2FkRXJyb3JGYWlsIiwiaXNBc3NldEVycm9yIiwic3R5bGVTaGVldHMiLCJnZXRJbml0aWFsUHJvcHMiLCJnaXBFcnIiLCJyb3V0ZUluZm9FcnIiLCJyZXF1ZXN0ZWRSb3V0ZSIsImV4aXN0aW5nSW5mbyIsImNhY2hlZFJvdXRlSW5mbyIsImZldGNoTmV4dERhdGFQYXJhbXMiLCJnZXREYXRhSHJlZiIsInNraXBJbnRlcnBvbGF0aW9uIiwic2JjIiwic2RjIiwicmVzb2x2ZWRSb3V0ZSIsImlzQVBJUm91dGUiLCJyZXMiLCJtb2QiLCJpc1ZhbGlkRWxlbWVudFR5cGUiLCJ3YXNCYWlsZWRQcmVmZXRjaCIsInNob3VsZEZldGNoRGF0YSIsIl9nZXREYXRhIiwiZmV0Y2hlZCIsImdldFByb3BlckVycm9yIiwic3ViIiwiYmVmb3JlUG9wU3RhdGUiLCJjYiIsIl9icHMiLCJvbGRVcmxOb0hhc2giLCJvbGRIYXNoIiwibmV3VXJsTm9IYXNoIiwibmV3SGFzaCIsImhhbmRsZVNtb290aFNjcm9sbCIsInNjcm9sbFRvIiwicmF3SGFzaCIsImRlY29kZVVSSUNvbXBvbmVudCIsImlkRWwiLCJnZXRFbGVtZW50QnlJZCIsInNjcm9sbEludG9WaWV3IiwibmFtZUVsIiwiZ2V0RWxlbWVudHNCeU5hbWUiLCJvbmx5SGFzaENoYW5nZSIsInByZWZldGNoIiwiaXNCb3QiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJ1cmxQYXRobmFtZSIsIm9yaWdpbmFsUGF0aG5hbWUiLCJfX05FWFRfTUlERExFV0FSRV9QUkVGRVRDSCIsIl9pc1NzZyIsImlzU3NnIiwicHJpb3JpdHkiLCJfX05FWFRfT1BUSU1JU1RJQ19DTElFTlRfQ0FDSEUiLCJjb21wb25lbnRSZXN1bHQiLCJsb2FkUGFnZSIsImZuIiwiY3R4IiwiQXBwIiwiQXBwVHJlZSIsIl93cmFwQXBwIiwibG9hZEdldEluaXRpYWxQcm9wcyIsImNvbnN0cnVjdG9yIiwiaW5pdGlhbFByb3BzIiwid3JhcEFwcCIsInN1YnNjcmlwdGlvbiIsImlzRmlyc3RQb3BTdGF0ZUV2ZW50Iiwib25Qb3BTdGF0ZSIsIl9fTkEiLCJnZXRJdGVtIiwiaW5pdGlhbCIsImF1dG9FeHBvcnREeW5hbWljIiwiYXV0b0V4cG9ydCIsIl9fTkVYVF9ST1VURVJfQkFTRVBBVEgiLCJnc3NwIiwiZ2lwIiwiaXNFeHBlcmltZW50YWxDb21waWxlIiwiYXBwR2lwIiwiZ3NwIiwic2VhcmNoIiwiX2luaXRpYWxNYXRjaGVzTWlkZGxld2FyZVByb21pc2UiLCJhZGRFdmVudExpc3RlbmVyIiwic2Nyb2xsUmVzdG9yYXRpb24iLCJtaXR0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/router.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/add-locale.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/add-locale.js ***! + \**********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction addLocale(path, locale, defaultLocale, ignorePrefix) {\n // If no locale was given or the locale is the default locale, we don't need\n // to prefix the path.\n if (!locale || locale === defaultLocale) return path;\n const lower = path.toLowerCase();\n // If the path is an API path or the path already has the locale prefix, we\n // don't need to prefix the path.\n if (!ignorePrefix) {\n if ((0, _pathhasprefix.pathHasPrefix)(lower, '/api')) return path;\n if ((0, _pathhasprefix.pathHasPrefix)(lower, \"/\" + locale.toLowerCase())) return path;\n }\n // Add the locale prefix to the path.\n return (0, _addpathprefix.addPathPrefix)(path, \"/\" + locale);\n} //# sourceMappingURL=add-locale.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1sb2NhbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs2Q0FRZ0JBOzs7ZUFBQUE7OzsyQ0FSYzsyQ0FDQTtBQU92QixTQUFTQSxVQUNkQyxJQUFZLEVBQ1pDLE1BQXVCLEVBQ3ZCQyxhQUFzQixFQUN0QkMsWUFBc0I7SUFFdEIsNEVBQTRFO0lBQzVFLHNCQUFzQjtJQUN0QixJQUFJLENBQUNGLFVBQVVBLFdBQVdDLGVBQWUsT0FBT0Y7SUFFaEQsTUFBTUksUUFBUUosS0FBS0ssV0FBVztJQUU5QiwyRUFBMkU7SUFDM0UsaUNBQWlDO0lBQ2pDLElBQUksQ0FBQ0YsY0FBYztRQUNqQixJQUFJRyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFhLEVBQUNGLE9BQU8sU0FBUyxPQUFPSjtRQUN6QyxJQUFJTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixPQUFRLE1BQUdILE9BQU9JLFdBQVcsS0FBTyxPQUFPTDtJQUMvRDtJQUVBLHFDQUFxQztJQUNyQyxPQUFPTyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjUCxNQUFPLE1BQUdDO0FBQ2pDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtbG9jYWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFBhdGhQcmVmaXggfSBmcm9tICcuL2FkZC1wYXRoLXByZWZpeCdcbmltcG9ydCB7IHBhdGhIYXNQcmVmaXggfSBmcm9tICcuL3BhdGgtaGFzLXByZWZpeCdcblxuLyoqXG4gKiBGb3IgYSBnaXZlbiBwYXRoIGFuZCBhIGxvY2FsZSwgaWYgdGhlIGxvY2FsZSBpcyBnaXZlbiwgaXQgd2lsbCBwcmVmaXggdGhlXG4gKiBsb2NhbGUuIFRoZSBwYXRoIHNob3VsZG4ndCBiZSBhbiBBUEkgcGF0aC4gSWYgYSBkZWZhdWx0IGxvY2FsZSBpcyBnaXZlbiB0aGVcbiAqIHByZWZpeCB3aWxsIGJlIG9taXR0ZWQgaWYgdGhlIGxvY2FsZSBpcyBhbHJlYWR5IHRoZSBkZWZhdWx0IGxvY2FsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZExvY2FsZShcbiAgcGF0aDogc3RyaW5nLFxuICBsb2NhbGU/OiBzdHJpbmcgfCBmYWxzZSxcbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZyxcbiAgaWdub3JlUHJlZml4PzogYm9vbGVhblxuKSB7XG4gIC8vIElmIG5vIGxvY2FsZSB3YXMgZ2l2ZW4gb3IgdGhlIGxvY2FsZSBpcyB0aGUgZGVmYXVsdCBsb2NhbGUsIHdlIGRvbid0IG5lZWRcbiAgLy8gdG8gcHJlZml4IHRoZSBwYXRoLlxuICBpZiAoIWxvY2FsZSB8fCBsb2NhbGUgPT09IGRlZmF1bHRMb2NhbGUpIHJldHVybiBwYXRoXG5cbiAgY29uc3QgbG93ZXIgPSBwYXRoLnRvTG93ZXJDYXNlKClcblxuICAvLyBJZiB0aGUgcGF0aCBpcyBhbiBBUEkgcGF0aCBvciB0aGUgcGF0aCBhbHJlYWR5IGhhcyB0aGUgbG9jYWxlIHByZWZpeCwgd2VcbiAgLy8gZG9uJ3QgbmVlZCB0byBwcmVmaXggdGhlIHBhdGguXG4gIGlmICghaWdub3JlUHJlZml4KSB7XG4gICAgaWYgKHBhdGhIYXNQcmVmaXgobG93ZXIsICcvYXBpJykpIHJldHVybiBwYXRoXG4gICAgaWYgKHBhdGhIYXNQcmVmaXgobG93ZXIsIGAvJHtsb2NhbGUudG9Mb3dlckNhc2UoKX1gKSkgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIC8vIEFkZCB0aGUgbG9jYWxlIHByZWZpeCB0byB0aGUgcGF0aC5cbiAgcmV0dXJuIGFkZFBhdGhQcmVmaXgocGF0aCwgYC8ke2xvY2FsZX1gKVxufVxuIl0sIm5hbWVzIjpbImFkZExvY2FsZSIsInBhdGgiLCJsb2NhbGUiLCJkZWZhdWx0TG9jYWxlIiwiaWdub3JlUHJlZml4IiwibG93ZXIiLCJ0b0xvd2VyQ2FzZSIsInBhdGhIYXNQcmVmaXgiLCJhZGRQYXRoUHJlZml4Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/add-locale.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js": +/*!***************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js ***! + \***************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathPrefix\", ({\n enumerable: true,\n get: function() {\n return addPathPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathPrefix(path, prefix) {\n if (!path.startsWith('/') || !prefix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + prefix + pathname + query + hash;\n} //# sourceMappingURL=add-path-prefix.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU1nQkE7OztlQUFBQTs7O3VDQU5VO0FBTW5CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVDLFNBQVNFLFdBQVdDLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtcGF0aC1wcmVmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIEFkZHMgdGhlIHByb3ZpZGVkIHByZWZpeCB0byB0aGUgZ2l2ZW4gcGF0aC4gSXQgZmlyc3QgZW5zdXJlcyB0aGF0IHRoZSBwYXRoXG4gKiBpcyBpbmRlZWQgc3RhcnRpbmcgd2l0aCBhIHNsYXNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkUGF0aFByZWZpeChwYXRoOiBzdHJpbmcsIHByZWZpeD86IHN0cmluZykge1xuICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLycpIHx8ICFwcmVmaXgpIHtcbiAgICByZXR1cm4gcGF0aFxuICB9XG5cbiAgY29uc3QgeyBwYXRobmFtZSwgcXVlcnksIGhhc2ggfSA9IHBhcnNlUGF0aChwYXRoKVxuICByZXR1cm4gYCR7cHJlZml4fSR7cGF0aG5hbWV9JHtxdWVyeX0ke2hhc2h9YFxufVxuIl0sIm5hbWVzIjpbImFkZFBhdGhQcmVmaXgiLCJwYXRoIiwicHJlZml4Iiwic3RhcnRzV2l0aCIsInBhdGhuYW1lIiwicXVlcnkiLCJoYXNoIiwicGFyc2VQYXRoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js": +/*!***************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js ***! + \***************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addPathSuffix\", ({\n enumerable: true,\n get: function() {\n return addPathSuffix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction addPathSuffix(path, suffix) {\n if (!path.startsWith('/') || !suffix) {\n return path;\n }\n const { pathname, query, hash } = (0, _parsepath.parsePath)(path);\n return \"\" + pathname + suffix + query + hash;\n} //# sourceMappingURL=add-path-suffix.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FkZC1wYXRoLXN1ZmZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQU9nQkE7OztlQUFBQTs7O3VDQVBVO0FBT25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBZTtJQUN6RCxJQUFJLENBQUNELEtBQUtFLFVBQVUsQ0FBQyxRQUFRLENBQUNELFFBQVE7UUFDcEMsT0FBT0Q7SUFDVDtJQUVBLE1BQU0sRUFBRUcsUUFBUSxFQUFFQyxLQUFLLEVBQUVDLElBQUksRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVTjtJQUM1QyxPQUFRLEtBQUVHLFdBQVdGLFNBQVNHLFFBQVFDO0FBQ3hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9hZGQtcGF0aC1zdWZmaXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFyc2VQYXRoIH0gZnJvbSAnLi9wYXJzZS1wYXRoJ1xuXG4vKipcbiAqIFNpbWlsYXJseSB0byBgYWRkUGF0aFByZWZpeGAsIHRoaXMgZnVuY3Rpb24gYWRkcyBhIHN1ZmZpeCBhdCB0aGUgZW5kIG9uIHRoZVxuICogcHJvdmlkZWQgcGF0aC4gSXQgYWxzbyB3b3JrcyBvbmx5IGZvciBwYXRocyBlbnN1cmluZyB0aGUgYXJndW1lbnQgc3RhcnRzXG4gKiB3aXRoIGEgc2xhc2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRQYXRoU3VmZml4KHBhdGg6IHN0cmluZywgc3VmZml4Pzogc3RyaW5nKSB7XG4gIGlmICghcGF0aC5zdGFydHNXaXRoKCcvJykgfHwgIXN1ZmZpeCkge1xuICAgIHJldHVybiBwYXRoXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lLCBxdWVyeSwgaGFzaCB9ID0gcGFyc2VQYXRoKHBhdGgpXG4gIHJldHVybiBgJHtwYXRobmFtZX0ke3N1ZmZpeH0ke3F1ZXJ5fSR7aGFzaH1gXG59XG4iXSwibmFtZXMiOlsiYWRkUGF0aFN1ZmZpeCIsInBhdGgiLCJzdWZmaXgiLCJzdGFydHNXaXRoIiwicGF0aG5hbWUiLCJxdWVyeSIsImhhc2giLCJwYXJzZVBhdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/app-paths.js": +/*!*********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/app-paths.js ***! + \*********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n normalizeAppPath: function() {\n return normalizeAppPath;\n },\n normalizeRscURL: function() {\n return normalizeRscURL;\n }\n});\nconst _ensureleadingslash = __webpack_require__(/*! ../../page-path/ensure-leading-slash */ \"./node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js\");\nconst _segment = __webpack_require__(/*! ../../segment */ \"./node_modules/next/dist/shared/lib/segment.js\");\nfunction normalizeAppPath(route) {\n return (0, _ensureleadingslash.ensureLeadingSlash)(route.split('/').reduce((pathname, segment, index, segments)=>{\n // Empty segments are ignored.\n if (!segment) {\n return pathname;\n }\n // Groups are ignored.\n if ((0, _segment.isGroupSegment)(segment)) {\n return pathname;\n }\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname;\n }\n // The last segment (if it's a leaf) should be ignored.\n if ((segment === 'page' || segment === 'route') && index === segments.length - 1) {\n return pathname;\n }\n return pathname + \"/\" + segment;\n }, ''));\n}\nfunction normalizeRscURL(url) {\n return url.replace(/\\.rsc($|\\?)/, '$1');\n} //# sourceMappingURL=app-paths.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFzQmdCQSxnQkFBZ0I7ZUFBaEJBOztJQW1DQUMsZUFBZTtlQUFmQTs7O2dEQXpEbUI7cUNBQ0o7QUFxQnhCLFNBQVNELGlCQUFpQkUsS0FBYTtJQUM1QyxPQUFPQyxDQUFBQSxHQUFBQSxvQkFBQUEsa0JBQUFBLEVBQ0xELE1BQU1FLEtBQUssQ0FBQyxLQUFLQyxNQUFNLENBQUMsQ0FBQ0MsVUFBVUMsU0FBU0MsT0FBT0M7UUFDakQsOEJBQThCO1FBQzlCLElBQUksQ0FBQ0YsU0FBUztZQUNaLE9BQU9EO1FBQ1Q7UUFFQSxzQkFBc0I7UUFDdEIsSUFBSUksQ0FBQUEsR0FBQUEsU0FBQUEsY0FBQUEsRUFBZUgsVUFBVTtZQUMzQixPQUFPRDtRQUNUO1FBRUEsaUNBQWlDO1FBQ2pDLElBQUlDLE9BQU8sQ0FBQyxFQUFFLEtBQUssS0FBSztZQUN0QixPQUFPRDtRQUNUO1FBRUEsdURBQXVEO1FBQ3ZELElBQ0dDLENBQUFBLFlBQVksVUFBVUEsWUFBWSxRQUFNLElBQ3pDQyxVQUFVQyxTQUFTRSxNQUFNLEdBQUcsR0FDNUI7WUFDQSxPQUFPTDtRQUNUO1FBRUEsT0FBVUEsV0FBUyxNQUFHQztJQUN4QixHQUFHO0FBRVA7QUFNTyxTQUFTTixnQkFBZ0JXLEdBQVc7SUFDekMsT0FBT0EsSUFBSUMsT0FBTyxDQUNoQixlQUNBO0FBR0oiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRocy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnN1cmVMZWFkaW5nU2xhc2ggfSBmcm9tICcuLi8uLi9wYWdlLXBhdGgvZW5zdXJlLWxlYWRpbmctc2xhc2gnXG5pbXBvcnQgeyBpc0dyb3VwU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlZ21lbnQnXG5cbi8qKlxuICogTm9ybWFsaXplcyBhbiBhcHAgcm91dGUgc28gaXQgcmVwcmVzZW50cyB0aGUgYWN0dWFsIHJlcXVlc3QgcGF0aC4gRXNzZW50aWFsbHlcbiAqIHBlcmZvcm1pbmcgdGhlIGZvbGxvd2luZyB0cmFuc2Zvcm1hdGlvbnM6XG4gKlxuICogLSBgLyhkYXNoYm9hcmQpL3VzZXIvW2lkXS9wYWdlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC8oZGFzaGJvYXJkKS9hY2NvdW50L3BhZ2VgIHRvIGAvYWNjb3VudGBcbiAqIC0gYC91c2VyL1tpZF0vcGFnZWAgdG8gYC91c2VyL1tpZF1gXG4gKiAtIGAvYWNjb3VudC9wYWdlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvcGFnZWAgdG8gYC9gXG4gKiAtIGAvKGRhc2hib2FyZCkvdXNlci9baWRdL3JvdXRlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC8oZGFzaGJvYXJkKS9hY2NvdW50L3JvdXRlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvdXNlci9baWRdL3JvdXRlYCB0byBgL3VzZXIvW2lkXWBcbiAqIC0gYC9hY2NvdW50L3JvdXRlYCB0byBgL2FjY291bnRgXG4gKiAtIGAvcm91dGVgIHRvIGAvYFxuICogLSBgL2AgdG8gYC9gXG4gKlxuICogQHBhcmFtIHJvdXRlIHRoZSBhcHAgcm91dGUgdG8gbm9ybWFsaXplXG4gKiBAcmV0dXJucyB0aGUgbm9ybWFsaXplZCBwYXRobmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQXBwUGF0aChyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiBlbnN1cmVMZWFkaW5nU2xhc2goXG4gICAgcm91dGUuc3BsaXQoJy8nKS5yZWR1Y2UoKHBhdGhuYW1lLCBzZWdtZW50LCBpbmRleCwgc2VnbWVudHMpID0+IHtcbiAgICAgIC8vIEVtcHR5IHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgaWYgKCFzZWdtZW50KSB7XG4gICAgICAgIHJldHVybiBwYXRobmFtZVxuICAgICAgfVxuXG4gICAgICAvLyBHcm91cHMgYXJlIGlnbm9yZWQuXG4gICAgICBpZiAoaXNHcm91cFNlZ21lbnQoc2VnbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIC8vIFBhcmFsbGVsIHNlZ21lbnRzIGFyZSBpZ25vcmVkLlxuICAgICAgaWYgKHNlZ21lbnRbMF0gPT09ICdAJykge1xuICAgICAgICByZXR1cm4gcGF0aG5hbWVcbiAgICAgIH1cblxuICAgICAgLy8gVGhlIGxhc3Qgc2VnbWVudCAoaWYgaXQncyBhIGxlYWYpIHNob3VsZCBiZSBpZ25vcmVkLlxuICAgICAgaWYgKFxuICAgICAgICAoc2VnbWVudCA9PT0gJ3BhZ2UnIHx8IHNlZ21lbnQgPT09ICdyb3V0ZScpICYmXG4gICAgICAgIGluZGV4ID09PSBzZWdtZW50cy5sZW5ndGggLSAxXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHBhdGhuYW1lXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBgJHtwYXRobmFtZX0vJHtzZWdtZW50fWBcbiAgICB9LCAnJylcbiAgKVxufVxuXG4vKipcbiAqIFN0cmlwcyB0aGUgYC5yc2NgIGV4dGVuc2lvbiBpZiBpdCdzIGluIHRoZSBwYXRobmFtZS5cbiAqIFNpbmNlIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBvbiBmdWxsIHVybHMgaXQgY2hlY2tzIGA/YCBmb3Igc2VhcmNoUGFyYW1zIGhhbmRsaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUnNjVVJMKHVybDogc3RyaW5nKSB7XG4gIHJldHVybiB1cmwucmVwbGFjZShcbiAgICAvXFwucnNjKCR8XFw/KS8sXG4gICAgLy8gJDEgZW5zdXJlcyBgP2AgaXMgcHJlc2VydmVkXG4gICAgJyQxJ1xuICApXG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplQXBwUGF0aCIsIm5vcm1hbGl6ZVJzY1VSTCIsInJvdXRlIiwiZW5zdXJlTGVhZGluZ1NsYXNoIiwic3BsaXQiLCJyZWR1Y2UiLCJwYXRobmFtZSIsInNlZ21lbnQiLCJpbmRleCIsInNlZ21lbnRzIiwiaXNHcm91cFNlZ21lbnQiLCJsZW5ndGgiLCJ1cmwiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/app-paths.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js": +/*!************************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js ***! + \************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// Convert router.asPath to a URLSearchParams object\n// example: /dynamic/[slug]?foo=bar -> { foo: 'bar' }\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"asPathToSearchParams\", ({\n enumerable: true,\n get: function() {\n return asPathToSearchParams;\n }\n}));\nfunction asPathToSearchParams(asPath) {\n return new URL(asPath, 'http://n').searchParams;\n} //# sourceMappingURL=as-path-to-search-params.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FzLXBhdGgtdG8tc2VhcmNoLXBhcmFtcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxvREFBb0Q7QUFDcEQscURBQXFEOzs7Ozt3REFDckNBOzs7ZUFBQUE7OztBQUFULFNBQVNBLHFCQUFxQkMsTUFBYztJQUNqRCxPQUFPLElBQUlDLElBQUlELFFBQVEsWUFBWUUsWUFBWTtBQUNqRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXMtcGF0aC10by1zZWFyY2gtcGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvbnZlcnQgcm91dGVyLmFzUGF0aCB0byBhIFVSTFNlYXJjaFBhcmFtcyBvYmplY3Rcbi8vIGV4YW1wbGU6IC9keW5hbWljL1tzbHVnXT9mb289YmFyIC0+IHsgZm9vOiAnYmFyJyB9XG5leHBvcnQgZnVuY3Rpb24gYXNQYXRoVG9TZWFyY2hQYXJhbXMoYXNQYXRoOiBzdHJpbmcpOiBVUkxTZWFyY2hQYXJhbXMge1xuICByZXR1cm4gbmV3IFVSTChhc1BhdGgsICdodHRwOi8vbicpLnNlYXJjaFBhcmFtc1xufVxuIl0sIm5hbWVzIjpbImFzUGF0aFRvU2VhcmNoUGFyYW1zIiwiYXNQYXRoIiwiVVJMIiwic2VhcmNoUGFyYW1zIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/compare-states.js": +/*!**************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/compare-states.js ***! + \**************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"compareRouterStates\", ({\n enumerable: true,\n get: function() {\n return compareRouterStates;\n }\n}));\nfunction compareRouterStates(a, b) {\n const stateKeys = Object.keys(a);\n if (stateKeys.length !== Object.keys(b).length) return false;\n for(let i = stateKeys.length; i--;){\n const key = stateKeys[i];\n if (key === 'query') {\n const queryKeys = Object.keys(a.query);\n if (queryKeys.length !== Object.keys(b.query).length) {\n return false;\n }\n for(let j = queryKeys.length; j--;){\n const queryKey = queryKeys[j];\n if (!b.query.hasOwnProperty(queryKey) || a.query[queryKey] !== b.query[queryKey]) {\n return false;\n }\n }\n } else if (!b.hasOwnProperty(key) || a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n} //# sourceMappingURL=compare-states.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2NvbXBhcmUtc3RhdGVzLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBRWdCQTs7O2VBQUFBOzs7QUFBVCxTQUFTQSxvQkFBb0JDLENBQWtCLEVBQUVDLENBQWtCO0lBQ3hFLE1BQU1DLFlBQVlDLE9BQU9DLElBQUksQ0FBQ0o7SUFDOUIsSUFBSUUsVUFBVUcsTUFBTSxLQUFLRixPQUFPQyxJQUFJLENBQUNILEdBQUdJLE1BQU0sRUFBRSxPQUFPO0lBRXZELElBQUssSUFBSUMsSUFBSUosVUFBVUcsTUFBTSxFQUFFQyxLQUFPO1FBQ3BDLE1BQU1DLE1BQU1MLFNBQVMsQ0FBQ0ksRUFBRTtRQUN4QixJQUFJQyxRQUFRLFNBQVM7WUFDbkIsTUFBTUMsWUFBWUwsT0FBT0MsSUFBSSxDQUFDSixFQUFFUyxLQUFLO1lBQ3JDLElBQUlELFVBQVVILE1BQU0sS0FBS0YsT0FBT0MsSUFBSSxDQUFDSCxFQUFFUSxLQUFLLEVBQUVKLE1BQU0sRUFBRTtnQkFDcEQsT0FBTztZQUNUO1lBQ0EsSUFBSyxJQUFJSyxJQUFJRixVQUFVSCxNQUFNLEVBQUVLLEtBQU87Z0JBQ3BDLE1BQU1DLFdBQVdILFNBQVMsQ0FBQ0UsRUFBRTtnQkFDN0IsSUFDRSxDQUFDVCxFQUFFUSxLQUFLLENBQUNHLGNBQWMsQ0FBQ0QsYUFDeEJYLEVBQUVTLEtBQUssQ0FBQ0UsU0FBUyxLQUFLVixFQUFFUSxLQUFLLENBQUNFLFNBQVMsRUFDdkM7b0JBQ0EsT0FBTztnQkFDVDtZQUNGO1FBQ0YsT0FBTyxJQUNMLENBQUNWLEVBQUVXLGNBQWMsQ0FBQ0wsUUFDbEJQLENBQUMsQ0FBQ08sSUFBNkIsS0FBS04sQ0FBQyxDQUFDTSxJQUE2QixFQUNuRTtZQUNBLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBTztBQUNUIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9jb21wYXJlLXN0YXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgUm91dGVyIH0gZnJvbSAnLi4vcm91dGVyJ1xuXG5leHBvcnQgZnVuY3Rpb24gY29tcGFyZVJvdXRlclN0YXRlcyhhOiBSb3V0ZXJbJ3N0YXRlJ10sIGI6IFJvdXRlclsnc3RhdGUnXSkge1xuICBjb25zdCBzdGF0ZUtleXMgPSBPYmplY3Qua2V5cyhhKVxuICBpZiAoc3RhdGVLZXlzLmxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSByZXR1cm4gZmFsc2VcblxuICBmb3IgKGxldCBpID0gc3RhdGVLZXlzLmxlbmd0aDsgaS0tOyApIHtcbiAgICBjb25zdCBrZXkgPSBzdGF0ZUtleXNbaV1cbiAgICBpZiAoa2V5ID09PSAncXVlcnknKSB7XG4gICAgICBjb25zdCBxdWVyeUtleXMgPSBPYmplY3Qua2V5cyhhLnF1ZXJ5KVxuICAgICAgaWYgKHF1ZXJ5S2V5cy5sZW5ndGggIT09IE9iamVjdC5rZXlzKGIucXVlcnkpLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGogPSBxdWVyeUtleXMubGVuZ3RoOyBqLS07ICkge1xuICAgICAgICBjb25zdCBxdWVyeUtleSA9IHF1ZXJ5S2V5c1tqXVxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWIucXVlcnkuaGFzT3duUHJvcGVydHkocXVlcnlLZXkpIHx8XG4gICAgICAgICAgYS5xdWVyeVtxdWVyeUtleV0gIT09IGIucXVlcnlbcXVlcnlLZXldXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICFiLmhhc093blByb3BlcnR5KGtleSkgfHxcbiAgICAgIGFba2V5IGFzIGtleW9mIFJvdXRlclsnc3RhdGUnXV0gIT09IGJba2V5IGFzIGtleW9mIFJvdXRlclsnc3RhdGUnXV1cbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG4iXSwibmFtZXMiOlsiY29tcGFyZVJvdXRlclN0YXRlcyIsImEiLCJiIiwic3RhdGVLZXlzIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImkiLCJrZXkiLCJxdWVyeUtleXMiLCJxdWVyeSIsImoiLCJxdWVyeUtleSIsImhhc093blByb3BlcnR5Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/compare-states.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js ***! + \*************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"formatNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return formatNextPathnameInfo;\n }\n}));\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _addpathprefix = __webpack_require__(/*! ./add-path-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js\");\nconst _addpathsuffix = __webpack_require__(/*! ./add-path-suffix */ \"./node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"./node_modules/next/dist/shared/lib/router/utils/add-locale.js\");\nfunction formatNextPathnameInfo(info) {\n let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix);\n if (info.buildId || !info.trailingSlash) {\n pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n }\n if (info.buildId) {\n pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, \"/_next/data/\" + info.buildId), info.pathname === '/' ? 'index.json' : '.json');\n }\n pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath);\n return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, _addpathsuffix.addPathSuffix)(pathname, '/') : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname);\n} //# sourceMappingURL=format-next-pathname-info.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7OzswREFXZ0JBOzs7ZUFBQUE7OztpREFWb0I7MkNBQ047MkNBQ0E7dUNBQ0o7QUFPbkIsU0FBU0EsdUJBQXVCQyxJQUFrQjtJQUN2RCxJQUFJQyxXQUFXQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUNiRixLQUFLQyxRQUFRLEVBQ2JELEtBQUtHLE1BQU0sRUFDWEgsS0FBS0ksT0FBTyxHQUFHQyxZQUFZTCxLQUFLTSxhQUFhLEVBQzdDTixLQUFLTyxZQUFZO0lBR25CLElBQUlQLEtBQUtJLE9BQU8sSUFBSSxDQUFDSixLQUFLUSxhQUFhLEVBQUU7UUFDdkNQLFdBQVdRLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JSO0lBQ2pDO0lBRUEsSUFBSUQsS0FBS0ksT0FBTyxFQUFFO1FBQ2hCSCxXQUFXUyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUNUQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVixVQUFXLGlCQUFjRCxLQUFLSSxPQUFPLEdBQ25ESixLQUFLQyxRQUFRLEtBQUssTUFBTSxlQUFlO0lBRTNDO0lBRUFBLFdBQVdVLENBQUFBLEdBQUFBLGVBQUFBLGFBQUFBLEVBQWNWLFVBQVVELEtBQUtZLFFBQVE7SUFDaEQsT0FBTyxDQUFDWixLQUFLSSxPQUFPLElBQUlKLEtBQUtRLGFBQWEsR0FDdEMsQ0FBQ1AsU0FBU1ksUUFBUSxDQUFDLE9BQ2pCSCxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjVCxVQUFVLE9BQ3hCQSxXQUNGUSxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CUjtBQUMxQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LW5leHQtcGF0aG5hbWUtaW5mby50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5leHRQYXRobmFtZUluZm8gfSBmcm9tICcuL2dldC1uZXh0LXBhdGhuYW1lLWluZm8nXG5pbXBvcnQgeyByZW1vdmVUcmFpbGluZ1NsYXNoIH0gZnJvbSAnLi9yZW1vdmUtdHJhaWxpbmctc2xhc2gnXG5pbXBvcnQgeyBhZGRQYXRoUHJlZml4IH0gZnJvbSAnLi9hZGQtcGF0aC1wcmVmaXgnXG5pbXBvcnQgeyBhZGRQYXRoU3VmZml4IH0gZnJvbSAnLi9hZGQtcGF0aC1zdWZmaXgnXG5pbXBvcnQgeyBhZGRMb2NhbGUgfSBmcm9tICcuL2FkZC1sb2NhbGUnXG5cbmludGVyZmFjZSBFeHRlbmRlZEluZm8gZXh0ZW5kcyBOZXh0UGF0aG5hbWVJbmZvIHtcbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICBpZ25vcmVQcmVmaXg/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROZXh0UGF0aG5hbWVJbmZvKGluZm86IEV4dGVuZGVkSW5mbykge1xuICBsZXQgcGF0aG5hbWUgPSBhZGRMb2NhbGUoXG4gICAgaW5mby5wYXRobmFtZSxcbiAgICBpbmZvLmxvY2FsZSxcbiAgICBpbmZvLmJ1aWxkSWQgPyB1bmRlZmluZWQgOiBpbmZvLmRlZmF1bHRMb2NhbGUsXG4gICAgaW5mby5pZ25vcmVQcmVmaXhcbiAgKVxuXG4gIGlmIChpbmZvLmJ1aWxkSWQgfHwgIWluZm8udHJhaWxpbmdTbGFzaCkge1xuICAgIHBhdGhuYW1lID0gcmVtb3ZlVHJhaWxpbmdTbGFzaChwYXRobmFtZSlcbiAgfVxuXG4gIGlmIChpbmZvLmJ1aWxkSWQpIHtcbiAgICBwYXRobmFtZSA9IGFkZFBhdGhTdWZmaXgoXG4gICAgICBhZGRQYXRoUHJlZml4KHBhdGhuYW1lLCBgL19uZXh0L2RhdGEvJHtpbmZvLmJ1aWxkSWR9YCksXG4gICAgICBpbmZvLnBhdGhuYW1lID09PSAnLycgPyAnaW5kZXguanNvbicgOiAnLmpzb24nXG4gICAgKVxuICB9XG5cbiAgcGF0aG5hbWUgPSBhZGRQYXRoUHJlZml4KHBhdGhuYW1lLCBpbmZvLmJhc2VQYXRoKVxuICByZXR1cm4gIWluZm8uYnVpbGRJZCAmJiBpbmZvLnRyYWlsaW5nU2xhc2hcbiAgICA/ICFwYXRobmFtZS5lbmRzV2l0aCgnLycpXG4gICAgICA/IGFkZFBhdGhTdWZmaXgocGF0aG5hbWUsICcvJylcbiAgICAgIDogcGF0aG5hbWVcbiAgICA6IHJlbW92ZVRyYWlsaW5nU2xhc2gocGF0aG5hbWUpXG59XG4iXSwibmFtZXMiOlsiZm9ybWF0TmV4dFBhdGhuYW1lSW5mbyIsImluZm8iLCJwYXRobmFtZSIsImFkZExvY2FsZSIsImxvY2FsZSIsImJ1aWxkSWQiLCJ1bmRlZmluZWQiLCJkZWZhdWx0TG9jYWxlIiwiaWdub3JlUHJlZml4IiwidHJhaWxpbmdTbGFzaCIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJhZGRQYXRoU3VmZml4IiwiYWRkUGF0aFByZWZpeCIsImJhc2VQYXRoIiwiZW5kc1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/format-url.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***! + \**********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || '';\n let pathname = urlObj.pathname || '';\n let hash = urlObj.hash || '';\n let query = urlObj.query || '';\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : '';\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += ':' + urlObj.port;\n }\n }\n if (query && typeof query === 'object') {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || '';\n if (protocol && !protocol.endsWith(':')) protocol += ':';\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n if (hash && hash[0] !== '#') hash = '#' + hash;\n if (search && search[0] !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace('#', '%23');\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes'\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwuanMiLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBQ3ZDLHNEQUFzRDtBQUN0RCxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLGdFQUFnRTtBQUNoRSxzRUFBc0U7QUFDdEUsc0VBQXNFO0FBQ3RFLDRFQUE0RTtBQUM1RSxxRUFBcUU7QUFDckUsd0JBQXdCO0FBQ3hCLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsNkRBQTZEO0FBQzdELDRFQUE0RTtBQUM1RSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUM1RSx5Q0FBeUM7Ozs7Ozs7Ozs7Ozs7SUFRekJBLFNBQVM7ZUFBVEE7O0lBNkRBQyxvQkFBb0I7ZUFBcEJBOztJQWZIQyxhQUFhO2VBQWJBOzs7O21GQWxEZ0I7QUFFN0IsTUFBTUMsbUJBQW1CO0FBRWxCLFNBQVNILFVBQVVJLE1BQWlCO0lBQ3pDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxRQUFRLEVBQUUsR0FBR0Y7SUFDekIsSUFBSUcsV0FBV0gsT0FBT0csUUFBUSxJQUFJO0lBQ2xDLElBQUlDLFdBQVdKLE9BQU9JLFFBQVEsSUFBSTtJQUNsQyxJQUFJQyxPQUFPTCxPQUFPSyxJQUFJLElBQUk7SUFDMUIsSUFBSUMsUUFBUU4sT0FBT00sS0FBSyxJQUFJO0lBQzVCLElBQUlDLE9BQXVCO0lBRTNCTixPQUFPQSxPQUFPTyxtQkFBbUJQLE1BQU1RLE9BQU8sQ0FBQyxRQUFRLE9BQU8sTUFBTTtJQUVwRSxJQUFJVCxPQUFPTyxJQUFJLEVBQUU7UUFDZkEsT0FBT04sT0FBT0QsT0FBT08sSUFBSTtJQUMzQixPQUFPLElBQUlMLFVBQVU7UUFDbkJLLE9BQU9OLE9BQVEsRUFBQ0MsU0FBU1EsT0FBTyxDQUFDLE9BQVEsTUFBR1IsV0FBUyxNQUFLQSxRQUFBQSxDQUFPO1FBQ2pFLElBQUlGLE9BQU9XLElBQUksRUFBRTtZQUNmSixRQUFRLE1BQU1QLE9BQU9XLElBQUk7UUFDM0I7SUFDRjtJQUVBLElBQUlMLFNBQVMsT0FBT0EsVUFBVSxVQUFVO1FBQ3RDQSxRQUFRTSxPQUFPQyxhQUFZQyxzQkFBc0IsQ0FBQ1I7SUFDcEQ7SUFFQSxJQUFJUyxTQUFTZixPQUFPZSxNQUFNLElBQUtULFNBQVUsTUFBR0EsU0FBWTtJQUV4RCxJQUFJSCxZQUFZLENBQUNBLFNBQVNhLFFBQVEsQ0FBQyxNQUFNYixZQUFZO0lBRXJELElBQ0VILE9BQU9pQixPQUFPLElBQ1osRUFBQ2QsWUFBWUosaUJBQWlCbUIsSUFBSSxDQUFDZixTQUFBQSxDQUFRLElBQU1JLFNBQVMsT0FDNUQ7UUFDQUEsT0FBTyxPQUFRQSxDQUFBQSxRQUFRLEdBQUM7UUFDeEIsSUFBSUgsWUFBWUEsUUFBUSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxXQUFXLE1BQU1BO0lBQ3hELE9BQU8sSUFBSSxDQUFDRyxNQUFNO1FBQ2hCQSxPQUFPO0lBQ1Q7SUFFQSxJQUFJRixRQUFRQSxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUtBLE9BQU8sTUFBTUE7SUFDMUMsSUFBSVUsVUFBVUEsTUFBTSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxTQUFTLE1BQU1BO0lBRWhEWCxXQUFXQSxTQUFTSyxPQUFPLENBQUMsU0FBU0Q7SUFDckNPLFNBQVNBLE9BQU9OLE9BQU8sQ0FBQyxLQUFLO0lBRTdCLE9BQVEsS0FBRU4sV0FBV0ksT0FBT0gsV0FBV1csU0FBU1Y7QUFDbEQ7QUFFTyxNQUFNUCxnQkFBZ0I7SUFDM0I7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFTSxTQUFTRCxxQkFBcUJzQixHQUFjO0lBQ2pELElBQUlDLElBQW9CLEVBQW9CO1FBQzFDLElBQUlELFFBQVEsUUFBUSxPQUFPQSxRQUFRLFVBQVU7WUFDM0NJLE9BQU9DLElBQUksQ0FBQ0wsS0FBS00sT0FBTyxDQUFDLENBQUNDO2dCQUN4QixJQUFJLENBQUM1QixjQUFjNkIsUUFBUSxDQUFDRCxNQUFNO29CQUNoQ0UsUUFBUUMsSUFBSSxDQUNULHVEQUFvREg7Z0JBRXpEO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBTzlCLFVBQVV1QjtBQUNuQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGb3JtYXQgZnVuY3Rpb24gbW9kaWZpZWQgZnJvbSBub2RlanNcbi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgdHlwZSB7IFVybE9iamVjdCB9IGZyb20gJ3VybCdcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCAqIGFzIHF1ZXJ5c3RyaW5nIGZyb20gJy4vcXVlcnlzdHJpbmcnXG5cbmNvbnN0IHNsYXNoZWRQcm90b2NvbHMgPSAvaHR0cHM/fGZ0cHxnb3BoZXJ8ZmlsZS9cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFVybCh1cmxPYmo6IFVybE9iamVjdCkge1xuICBsZXQgeyBhdXRoLCBob3N0bmFtZSB9ID0gdXJsT2JqXG4gIGxldCBwcm90b2NvbCA9IHVybE9iai5wcm90b2NvbCB8fCAnJ1xuICBsZXQgcGF0aG5hbWUgPSB1cmxPYmoucGF0aG5hbWUgfHwgJydcbiAgbGV0IGhhc2ggPSB1cmxPYmouaGFzaCB8fCAnJ1xuICBsZXQgcXVlcnkgPSB1cmxPYmoucXVlcnkgfHwgJydcbiAgbGV0IGhvc3Q6IHN0cmluZyB8IGZhbHNlID0gZmFsc2VcblxuICBhdXRoID0gYXV0aCA/IGVuY29kZVVSSUNvbXBvbmVudChhdXRoKS5yZXBsYWNlKC8lM0EvaSwgJzonKSArICdAJyA6ICcnXG5cbiAgaWYgKHVybE9iai5ob3N0KSB7XG4gICAgaG9zdCA9IGF1dGggKyB1cmxPYmouaG9zdFxuICB9IGVsc2UgaWYgKGhvc3RuYW1lKSB7XG4gICAgaG9zdCA9IGF1dGggKyAofmhvc3RuYW1lLmluZGV4T2YoJzonKSA/IGBbJHtob3N0bmFtZX1dYCA6IGhvc3RuYW1lKVxuICAgIGlmICh1cmxPYmoucG9ydCkge1xuICAgICAgaG9zdCArPSAnOicgKyB1cmxPYmoucG9ydFxuICAgIH1cbiAgfVxuXG4gIGlmIChxdWVyeSAmJiB0eXBlb2YgcXVlcnkgPT09ICdvYmplY3QnKSB7XG4gICAgcXVlcnkgPSBTdHJpbmcocXVlcnlzdHJpbmcudXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhxdWVyeSBhcyBQYXJzZWRVcmxRdWVyeSkpXG4gIH1cblxuICBsZXQgc2VhcmNoID0gdXJsT2JqLnNlYXJjaCB8fCAocXVlcnkgJiYgYD8ke3F1ZXJ5fWApIHx8ICcnXG5cbiAgaWYgKHByb3RvY29sICYmICFwcm90b2NvbC5lbmRzV2l0aCgnOicpKSBwcm90b2NvbCArPSAnOidcblxuICBpZiAoXG4gICAgdXJsT2JqLnNsYXNoZXMgfHxcbiAgICAoKCFwcm90b2NvbCB8fCBzbGFzaGVkUHJvdG9jb2xzLnRlc3QocHJvdG9jb2wpKSAmJiBob3N0ICE9PSBmYWxzZSlcbiAgKSB7XG4gICAgaG9zdCA9ICcvLycgKyAoaG9zdCB8fCAnJylcbiAgICBpZiAocGF0aG5hbWUgJiYgcGF0aG5hbWVbMF0gIT09ICcvJykgcGF0aG5hbWUgPSAnLycgKyBwYXRobmFtZVxuICB9IGVsc2UgaWYgKCFob3N0KSB7XG4gICAgaG9zdCA9ICcnXG4gIH1cblxuICBpZiAoaGFzaCAmJiBoYXNoWzBdICE9PSAnIycpIGhhc2ggPSAnIycgKyBoYXNoXG4gIGlmIChzZWFyY2ggJiYgc2VhcmNoWzBdICE9PSAnPycpIHNlYXJjaCA9ICc/JyArIHNlYXJjaFxuXG4gIHBhdGhuYW1lID0gcGF0aG5hbWUucmVwbGFjZSgvWz8jXS9nLCBlbmNvZGVVUklDb21wb25lbnQpXG4gIHNlYXJjaCA9IHNlYXJjaC5yZXBsYWNlKCcjJywgJyUyMycpXG5cbiAgcmV0dXJuIGAke3Byb3RvY29sfSR7aG9zdH0ke3BhdGhuYW1lfSR7c2VhcmNofSR7aGFzaH1gXG59XG5cbmV4cG9ydCBjb25zdCB1cmxPYmplY3RLZXlzID0gW1xuICAnYXV0aCcsXG4gICdoYXNoJyxcbiAgJ2hvc3QnLFxuICAnaG9zdG5hbWUnLFxuICAnaHJlZicsXG4gICdwYXRoJyxcbiAgJ3BhdGhuYW1lJyxcbiAgJ3BvcnQnLFxuICAncHJvdG9jb2wnLFxuICAncXVlcnknLFxuICAnc2VhcmNoJyxcbiAgJ3NsYXNoZXMnLFxuXVxuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0V2l0aFZhbGlkYXRpb24odXJsOiBVcmxPYmplY3QpOiBzdHJpbmcge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICBpZiAodXJsICE9PSBudWxsICYmIHR5cGVvZiB1cmwgPT09ICdvYmplY3QnKSB7XG4gICAgICBPYmplY3Qua2V5cyh1cmwpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBpZiAoIXVybE9iamVjdEtleXMuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBVbmtub3duIGtleSBwYXNzZWQgdmlhIHVybE9iamVjdCBpbnRvIHVybC5mb3JtYXQ6ICR7a2V5fWBcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZvcm1hdFVybCh1cmwpXG59XG4iXSwibmFtZXMiOlsiZm9ybWF0VXJsIiwiZm9ybWF0V2l0aFZhbGlkYXRpb24iLCJ1cmxPYmplY3RLZXlzIiwic2xhc2hlZFByb3RvY29scyIsInVybE9iaiIsImF1dGgiLCJob3N0bmFtZSIsInByb3RvY29sIiwicGF0aG5hbWUiLCJoYXNoIiwicXVlcnkiLCJob3N0IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVwbGFjZSIsImluZGV4T2YiLCJwb3J0IiwiU3RyaW5nIiwicXVlcnlzdHJpbmciLCJ1cmxRdWVyeVRvU2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiZW5kc1dpdGgiLCJzbGFzaGVzIiwidGVzdCIsInVybCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwiaW5jbHVkZXMiLCJjb25zb2xlIiwid2FybiJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/format-url.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js ***! + \*************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("// Translates a logical route into its pages asset path (relative from a common prefix)\n// \"asset path\" being its javascript file, data file, prerendered html,...\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return getAssetPathFromRoute;\n }\n}));\nfunction getAssetPathFromRoute(route, ext) {\n if (ext === void 0) ext = '';\n const path = route === '/' ? '/index' : /^\\/index(\\/|$)/.test(route) ? \"/index\" + route : route;\n return path + ext;\n} //# sourceMappingURL=get-asset-path-from-route.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1hc3NldC1wYXRoLWZyb20tcm91dGUuanMiLCJtYXBwaW5ncyI6IkFBQUEsdUZBQXVGO0FBQ3ZGLDBFQUEwRTs7Ozs7MkNBQzFFOzs7ZUFBd0JBOzs7QUFBVCxTQUFTQSxzQkFDdEJDLEtBQWEsRUFDYkMsR0FBZ0I7SUFBaEJBLElBQUFBLFFBQUFBLEtBQUFBLEdBQUFBLE1BQWM7SUFFZCxNQUFNQyxPQUNKRixVQUFVLE1BQ04sV0FDQSxpQkFBaUJHLElBQUksQ0FBQ0gsU0FDbkIsV0FBUUEsUUFDVEE7SUFDUixPQUFPRSxPQUFPRDtBQUNoQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZ2V0LWFzc2V0LXBhdGgtZnJvbS1yb3V0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUcmFuc2xhdGVzIGEgbG9naWNhbCByb3V0ZSBpbnRvIGl0cyBwYWdlcyBhc3NldCBwYXRoIChyZWxhdGl2ZSBmcm9tIGEgY29tbW9uIHByZWZpeClcbi8vIFwiYXNzZXQgcGF0aFwiIGJlaW5nIGl0cyBqYXZhc2NyaXB0IGZpbGUsIGRhdGEgZmlsZSwgcHJlcmVuZGVyZWQgaHRtbCwuLi5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldEFzc2V0UGF0aEZyb21Sb3V0ZShcbiAgcm91dGU6IHN0cmluZyxcbiAgZXh0OiBzdHJpbmcgPSAnJ1xuKTogc3RyaW5nIHtcbiAgY29uc3QgcGF0aCA9XG4gICAgcm91dGUgPT09ICcvJ1xuICAgICAgPyAnL2luZGV4J1xuICAgICAgOiAvXlxcL2luZGV4KFxcL3wkKS8udGVzdChyb3V0ZSlcbiAgICAgICAgPyBgL2luZGV4JHtyb3V0ZX1gXG4gICAgICAgIDogcm91dGVcbiAgcmV0dXJuIHBhdGggKyBleHRcbn1cbiJdLCJuYW1lcyI6WyJnZXRBc3NldFBhdGhGcm9tUm91dGUiLCJyb3V0ZSIsImV4dCIsInBhdGgiLCJ0ZXN0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js ***! + \**********************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getNextPathnameInfo\", ({\n enumerable: true,\n get: function() {\n return getNextPathnameInfo;\n }\n}));\nconst _normalizelocalepath = __webpack_require__(/*! ../../i18n/normalize-locale-path */ \"./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _removepathprefix = __webpack_require__(/*! ./remove-path-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\");\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction getNextPathnameInfo(pathname, options) {\n var _options_nextConfig;\n const { basePath, i18n, trailingSlash } = (_options_nextConfig = options.nextConfig) != null ? _options_nextConfig : {};\n const info = {\n pathname,\n trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash\n };\n if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) {\n info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath);\n info.basePath = basePath;\n }\n let pathnameNoDataPrefix = info.pathname;\n if (info.pathname.startsWith('/_next/data/') && info.pathname.endsWith('.json')) {\n const paths = info.pathname.replace(/^\\/_next\\/data\\//, '').replace(/\\.json$/, '').split('/');\n const buildId = paths[0];\n info.buildId = buildId;\n pathnameNoDataPrefix = paths[1] !== 'index' ? \"/\" + paths.slice(1).join('/') : '/';\n // update pathname with normalized if enabled although\n // we use normalized to populate locale info still\n if (options.parseData === true) {\n info.pathname = pathnameNoDataPrefix;\n }\n }\n // If provided, use the locale route normalizer to detect the locale instead\n // of the function below.\n if (i18n) {\n let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales);\n info.locale = result.detectedLocale;\n var _result_pathname;\n info.pathname = (_result_pathname = result.pathname) != null ? _result_pathname : info.pathname;\n if (!result.detectedLocale && info.buildId) {\n result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales);\n if (result.detectedLocale) {\n info.locale = result.detectedLocale;\n }\n }\n }\n return info;\n} //# sourceMappingURL=get-next-pathname-info.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1uZXh0LXBhdGhuYW1lLWluZm8uanMiLCJtYXBwaW5ncyI6Ijs7Ozt1REFvRGdCQTs7O2VBQUFBOzs7aURBcERvQjs4Q0FDSDsyQ0FDSDtBQWtEdkIsU0FBU0Esb0JBQ2RDLFFBQWdCLEVBQ2hCQyxPQUFnQjtRQUUwQkE7SUFBMUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsYUFBYSxFQUFFLEdBQUdILENBQUFBLHNCQUFBQSxRQUFRSSxVQUFBQSxLQUFVLE9BQWxCSixzQkFBc0IsQ0FBQztJQUNqRSxNQUFNSyxPQUF5QjtRQUM3Qk47UUFDQUksZUFBZUosYUFBYSxNQUFNQSxTQUFTTyxRQUFRLENBQUMsT0FBT0g7SUFDN0Q7SUFFQSxJQUFJRixZQUFZTSxDQUFBQSxHQUFBQSxlQUFBQSxhQUFBQSxFQUFjRixLQUFLTixRQUFRLEVBQUVFLFdBQVc7UUFDdERJLEtBQUtOLFFBQVEsR0FBR1MsQ0FBQUEsR0FBQUEsa0JBQUFBLGdCQUFBQSxFQUFpQkgsS0FBS04sUUFBUSxFQUFFRTtRQUNoREksS0FBS0osUUFBUSxHQUFHQTtJQUNsQjtJQUNBLElBQUlRLHVCQUF1QkosS0FBS04sUUFBUTtJQUV4QyxJQUNFTSxLQUFLTixRQUFRLENBQUNXLFVBQVUsQ0FBQyxtQkFDekJMLEtBQUtOLFFBQVEsQ0FBQ08sUUFBUSxDQUFDLFVBQ3ZCO1FBQ0EsTUFBTUssUUFBUU4sS0FBS04sUUFBUSxDQUN4QmEsT0FBTyxDQUFDLG9CQUFvQixJQUM1QkEsT0FBTyxDQUFDLFdBQVcsSUFDbkJDLEtBQUssQ0FBQztRQUVULE1BQU1DLFVBQVVILEtBQUssQ0FBQyxFQUFFO1FBQ3hCTixLQUFLUyxPQUFPLEdBQUdBO1FBQ2ZMLHVCQUNFRSxLQUFLLENBQUMsRUFBRSxLQUFLLFVBQVcsTUFBR0EsTUFBTUksS0FBSyxDQUFDLEdBQUdDLElBQUksQ0FBQyxPQUFTO1FBRTFELHNEQUFzRDtRQUN0RCxrREFBa0Q7UUFDbEQsSUFBSWhCLFFBQVFpQixTQUFTLEtBQUssTUFBTTtZQUM5QlosS0FBS04sUUFBUSxHQUFHVTtRQUNsQjtJQUNGO0lBRUEsNEVBQTRFO0lBQzVFLHlCQUF5QjtJQUN6QixJQUFJUCxNQUFNO1FBQ1IsSUFBSWdCLFNBQVNsQixRQUFRbUIsWUFBWSxHQUM3Qm5CLFFBQVFtQixZQUFZLENBQUNDLE9BQU8sQ0FBQ2YsS0FBS04sUUFBUSxJQUMxQ3NCLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JoQixLQUFLTixRQUFRLEVBQUVHLEtBQUtvQixPQUFPO1FBRW5EakIsS0FBS2tCLE1BQU0sR0FBR0wsT0FBT00sY0FBYztZQUNuQk47UUFBaEJiLEtBQUtOLFFBQVEsR0FBR21CLENBQUFBLG1CQUFBQSxPQUFPbkIsUUFBQUEsS0FBUSxPQUFmbUIsbUJBQW1CYixLQUFLTixRQUFRO1FBRWhELElBQUksQ0FBQ21CLE9BQU9NLGNBQWMsSUFBSW5CLEtBQUtTLE9BQU8sRUFBRTtZQUMxQ0ksU0FBU2xCLFFBQVFtQixZQUFZLEdBQ3pCbkIsUUFBUW1CLFlBQVksQ0FBQ0MsT0FBTyxDQUFDWCx3QkFDN0JZLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBQUEsRUFBb0JaLHNCQUFzQlAsS0FBS29CLE9BQU87WUFFMUQsSUFBSUosT0FBT00sY0FBYyxFQUFFO2dCQUN6Qm5CLEtBQUtrQixNQUFNLEdBQUdMLE9BQU9NLGNBQWM7WUFDckM7UUFDRjtJQUNGO0lBQ0EsT0FBT25CO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2dldC1uZXh0LXBhdGhuYW1lLWluZm8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplTG9jYWxlUGF0aCB9IGZyb20gJy4uLy4uL2kxOG4vbm9ybWFsaXplLWxvY2FsZS1wYXRoJ1xuaW1wb3J0IHsgcmVtb3ZlUGF0aFByZWZpeCB9IGZyb20gJy4vcmVtb3ZlLXBhdGgtcHJlZml4J1xuaW1wb3J0IHsgcGF0aEhhc1ByZWZpeCB9IGZyb20gJy4vcGF0aC1oYXMtcHJlZml4J1xuaW1wb3J0IHR5cGUgeyBJMThOUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2ZXIvbGliL2kxOG4tcHJvdmlkZXInXG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV4dFBhdGhuYW1lSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSBwYXRoIGluIGNhc2UgdGhlIHBhdGhuYW1lIGluY2x1ZGVkIGl0LlxuICAgKi9cbiAgYmFzZVBhdGg/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBidWlsZElkIGZvciB3aGVuIHRoZSBwYXJzZWQgVVJMIGlzIGEgZGF0YSBVUkwuIFBhcnNpbmcgaXQgY2FuIGJlXG4gICAqIGRpc2FibGVkIHdpdGggdGhlIGBwYXJzZURhdGFgIG9wdGlvbi5cbiAgICovXG4gIGJ1aWxkSWQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIElmIHRoZXJlIHdhcyBhIGxvY2FsZSBpbiB0aGUgcGF0aG5hbWUsIHRoaXMgd2lsbCBob2xkIGl0cyB2YWx1ZS5cbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogVGhlIHByb2Nlc3NlZCBwYXRobmFtZSB3aXRob3V0IGEgYmFzZSBwYXRoLCBsb2NhbGUsIG9yIGRhdGEgVVJMIGVsZW1lbnRzXG4gICAqIHdoZW4gcGFyc2luZyBpdCBpcyBlbmFibGVkLlxuICAgKi9cbiAgcGF0aG5hbWU6IHN0cmluZ1xuICAvKipcbiAgICogQSBib29sZWFuIHRlbGxpbmcgaWYgdGhlIHBhdGhuYW1lIGhhZCBhIHRyYWlsaW5nU2xhc2guIFRoaXMgY2FuIGJlIG9ubHlcbiAgICogdHJ1ZSBpZiB0cmFpbGluZ1NsYXNoIGlzIGVuYWJsZWQuXG4gICAqL1xuICB0cmFpbGluZ1NsYXNoPzogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGVuIHBhc3NlZCB0byB0cnVlLCB0aGlzIGZ1bmN0aW9uIHdpbGwgYWxzbyBwYXJzZSBOZXh0anMgZGF0YSBVUkxzLlxuICAgKi9cbiAgcGFyc2VEYXRhPzogYm9vbGVhblxuICAvKipcbiAgICogQSBwYXJ0aWFsIG9mIHRoZSBOZXh0LmpzIGNvbmZpZ3VyYXRpb24gdG8gcGFyc2UgdGhlIFVSTC5cbiAgICovXG4gIG5leHRDb25maWc/OiB7XG4gICAgYmFzZVBhdGg/OiBzdHJpbmdcbiAgICBpMThuPzogeyBsb2NhbGVzPzogc3RyaW5nW10gfSB8IG51bGxcbiAgICB0cmFpbGluZ1NsYXNoPzogYm9vbGVhblxuICB9XG5cbiAgLyoqXG4gICAqIElmIHByb3ZpZGVkLCB0aGlzIG5vcm1hbGl6ZXIgd2lsbCBiZSB1c2VkIHRvIGRldGVjdCB0aGUgbG9jYWxlIGluc3RlYWQgb2ZcbiAgICogdGhlIGRlZmF1bHQgbG9jYWxlIGRldGVjdGlvbi5cbiAgICovXG4gIGkxOG5Qcm92aWRlcj86IEkxOE5Qcm92aWRlclxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV4dFBhdGhuYW1lSW5mbyhcbiAgcGF0aG5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogT3B0aW9uc1xuKTogTmV4dFBhdGhuYW1lSW5mbyB7XG4gIGNvbnN0IHsgYmFzZVBhdGgsIGkxOG4sIHRyYWlsaW5nU2xhc2ggfSA9IG9wdGlvbnMubmV4dENvbmZpZyA/PyB7fVxuICBjb25zdCBpbmZvOiBOZXh0UGF0aG5hbWVJbmZvID0ge1xuICAgIHBhdGhuYW1lLFxuICAgIHRyYWlsaW5nU2xhc2g6IHBhdGhuYW1lICE9PSAnLycgPyBwYXRobmFtZS5lbmRzV2l0aCgnLycpIDogdHJhaWxpbmdTbGFzaCxcbiAgfVxuXG4gIGlmIChiYXNlUGF0aCAmJiBwYXRoSGFzUHJlZml4KGluZm8ucGF0aG5hbWUsIGJhc2VQYXRoKSkge1xuICAgIGluZm8ucGF0aG5hbWUgPSByZW1vdmVQYXRoUHJlZml4KGluZm8ucGF0aG5hbWUsIGJhc2VQYXRoKVxuICAgIGluZm8uYmFzZVBhdGggPSBiYXNlUGF0aFxuICB9XG4gIGxldCBwYXRobmFtZU5vRGF0YVByZWZpeCA9IGluZm8ucGF0aG5hbWVcblxuICBpZiAoXG4gICAgaW5mby5wYXRobmFtZS5zdGFydHNXaXRoKCcvX25leHQvZGF0YS8nKSAmJlxuICAgIGluZm8ucGF0aG5hbWUuZW5kc1dpdGgoJy5qc29uJylcbiAgKSB7XG4gICAgY29uc3QgcGF0aHMgPSBpbmZvLnBhdGhuYW1lXG4gICAgICAucmVwbGFjZSgvXlxcL19uZXh0XFwvZGF0YVxcLy8sICcnKVxuICAgICAgLnJlcGxhY2UoL1xcLmpzb24kLywgJycpXG4gICAgICAuc3BsaXQoJy8nKVxuXG4gICAgY29uc3QgYnVpbGRJZCA9IHBhdGhzWzBdXG4gICAgaW5mby5idWlsZElkID0gYnVpbGRJZFxuICAgIHBhdGhuYW1lTm9EYXRhUHJlZml4ID1cbiAgICAgIHBhdGhzWzFdICE9PSAnaW5kZXgnID8gYC8ke3BhdGhzLnNsaWNlKDEpLmpvaW4oJy8nKX1gIDogJy8nXG5cbiAgICAvLyB1cGRhdGUgcGF0aG5hbWUgd2l0aCBub3JtYWxpemVkIGlmIGVuYWJsZWQgYWx0aG91Z2hcbiAgICAvLyB3ZSB1c2Ugbm9ybWFsaXplZCB0byBwb3B1bGF0ZSBsb2NhbGUgaW5mbyBzdGlsbFxuICAgIGlmIChvcHRpb25zLnBhcnNlRGF0YSA9PT0gdHJ1ZSkge1xuICAgICAgaW5mby5wYXRobmFtZSA9IHBhdGhuYW1lTm9EYXRhUHJlZml4XG4gICAgfVxuICB9XG5cbiAgLy8gSWYgcHJvdmlkZWQsIHVzZSB0aGUgbG9jYWxlIHJvdXRlIG5vcm1hbGl6ZXIgdG8gZGV0ZWN0IHRoZSBsb2NhbGUgaW5zdGVhZFxuICAvLyBvZiB0aGUgZnVuY3Rpb24gYmVsb3cuXG4gIGlmIChpMThuKSB7XG4gICAgbGV0IHJlc3VsdCA9IG9wdGlvbnMuaTE4blByb3ZpZGVyXG4gICAgICA/IG9wdGlvbnMuaTE4blByb3ZpZGVyLmFuYWx5emUoaW5mby5wYXRobmFtZSlcbiAgICAgIDogbm9ybWFsaXplTG9jYWxlUGF0aChpbmZvLnBhdGhuYW1lLCBpMThuLmxvY2FsZXMpXG5cbiAgICBpbmZvLmxvY2FsZSA9IHJlc3VsdC5kZXRlY3RlZExvY2FsZVxuICAgIGluZm8ucGF0aG5hbWUgPSByZXN1bHQucGF0aG5hbWUgPz8gaW5mby5wYXRobmFtZVxuXG4gICAgaWYgKCFyZXN1bHQuZGV0ZWN0ZWRMb2NhbGUgJiYgaW5mby5idWlsZElkKSB7XG4gICAgICByZXN1bHQgPSBvcHRpb25zLmkxOG5Qcm92aWRlclxuICAgICAgICA/IG9wdGlvbnMuaTE4blByb3ZpZGVyLmFuYWx5emUocGF0aG5hbWVOb0RhdGFQcmVmaXgpXG4gICAgICAgIDogbm9ybWFsaXplTG9jYWxlUGF0aChwYXRobmFtZU5vRGF0YVByZWZpeCwgaTE4bi5sb2NhbGVzKVxuXG4gICAgICBpZiAocmVzdWx0LmRldGVjdGVkTG9jYWxlKSB7XG4gICAgICAgIGluZm8ubG9jYWxlID0gcmVzdWx0LmRldGVjdGVkTG9jYWxlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBpbmZvXG59XG4iXSwibmFtZXMiOlsiZ2V0TmV4dFBhdGhuYW1lSW5mbyIsInBhdGhuYW1lIiwib3B0aW9ucyIsImJhc2VQYXRoIiwiaTE4biIsInRyYWlsaW5nU2xhc2giLCJuZXh0Q29uZmlnIiwiaW5mbyIsImVuZHNXaXRoIiwicGF0aEhhc1ByZWZpeCIsInJlbW92ZVBhdGhQcmVmaXgiLCJwYXRobmFtZU5vRGF0YVByZWZpeCIsInN0YXJ0c1dpdGgiLCJwYXRocyIsInJlcGxhY2UiLCJzcGxpdCIsImJ1aWxkSWQiLCJzbGljZSIsImpvaW4iLCJwYXJzZURhdGEiLCJyZXN1bHQiLCJpMThuUHJvdmlkZXIiLCJhbmFseXplIiwibm9ybWFsaXplTG9jYWxlUGF0aCIsImxvY2FsZXMiLCJsb2NhbGUiLCJkZXRlY3RlZExvY2FsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.js": +/*!********************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.js ***! + \********************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * Run function with `scroll-behavior: auto` applied to `<html/>`.\n * This css change will be reverted after the function finishes.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"handleSmoothScroll\", ({\n enumerable: true,\n get: function() {\n return handleSmoothScroll;\n }\n}));\nfunction handleSmoothScroll(fn, options) {\n if (options === void 0) options = {};\n // if only the hash is changed, we don't need to disable smooth scrolling\n // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX\n if (options.onlyHashChange) {\n fn();\n return;\n }\n const htmlElement = document.documentElement;\n const existing = htmlElement.style.scrollBehavior;\n htmlElement.style.scrollBehavior = 'auto';\n if (!options.dontForceLayout) {\n // In Chrome-based browsers we need to force reflow before calling `scrollTo`.\n // Otherwise it will not pickup the change in scrollBehavior\n // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042\n htmlElement.getClientRects();\n }\n fn();\n htmlElement.style.scrollBehavior = existing;\n} //# sourceMappingURL=handle-smooth-scroll.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2hhbmRsZS1zbW9vdGgtc2Nyb2xsLmpzIiwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQzs7OztzREFDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsbUJBQ2RDLEVBQWMsRUFDZEMsT0FBcUU7SUFBckVBLElBQUFBLFlBQUFBLEtBQUFBLEdBQUFBLFVBQW1FLENBQUM7SUFFcEUseUVBQXlFO0lBQ3pFLDZGQUE2RjtJQUM3RixJQUFJQSxRQUFRQyxjQUFjLEVBQUU7UUFDMUJGO1FBQ0E7SUFDRjtJQUNBLE1BQU1HLGNBQWNDLFNBQVNDLGVBQWU7SUFDNUMsTUFBTUMsV0FBV0gsWUFBWUksS0FBSyxDQUFDQyxjQUFjO0lBQ2pETCxZQUFZSSxLQUFLLENBQUNDLGNBQWMsR0FBRztJQUNuQyxJQUFJLENBQUNQLFFBQVFRLGVBQWUsRUFBRTtRQUM1Qiw4RUFBOEU7UUFDOUUsNERBQTREO1FBQzVELHlGQUF5RjtRQUN6Rk4sWUFBWU8sY0FBYztJQUM1QjtJQUNBVjtJQUNBRyxZQUFZSSxLQUFLLENBQUNDLGNBQWMsR0FBR0Y7QUFDckMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2hhbmRsZS1zbW9vdGgtc2Nyb2xsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUnVuIGZ1bmN0aW9uIHdpdGggYHNjcm9sbC1iZWhhdmlvcjogYXV0b2AgYXBwbGllZCB0byBgPGh0bWwvPmAuXG4gKiBUaGlzIGNzcyBjaGFuZ2Ugd2lsbCBiZSByZXZlcnRlZCBhZnRlciB0aGUgZnVuY3Rpb24gZmluaXNoZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTbW9vdGhTY3JvbGwoXG4gIGZuOiAoKSA9PiB2b2lkLFxuICBvcHRpb25zOiB7IGRvbnRGb3JjZUxheW91dD86IGJvb2xlYW47IG9ubHlIYXNoQ2hhbmdlPzogYm9vbGVhbiB9ID0ge31cbikge1xuICAvLyBpZiBvbmx5IHRoZSBoYXNoIGlzIGNoYW5nZWQsIHdlIGRvbid0IG5lZWQgdG8gZGlzYWJsZSBzbW9vdGggc2Nyb2xsaW5nXG4gIC8vIHdlIG9ubHkgY2FyZSB0byBwcmV2ZW50IHNtb290aCBzY3JvbGxpbmcgd2hlbiBuYXZpZ2F0aW5nIHRvIGEgbmV3IHBhZ2UgdG8gYXZvaWQgamFycmluZyBVWFxuICBpZiAob3B0aW9ucy5vbmx5SGFzaENoYW5nZSkge1xuICAgIGZuKClcbiAgICByZXR1cm5cbiAgfVxuICBjb25zdCBodG1sRWxlbWVudCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICBjb25zdCBleGlzdGluZyA9IGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yXG4gIGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nXG4gIGlmICghb3B0aW9ucy5kb250Rm9yY2VMYXlvdXQpIHtcbiAgICAvLyBJbiBDaHJvbWUtYmFzZWQgYnJvd3NlcnMgd2UgbmVlZCB0byBmb3JjZSByZWZsb3cgYmVmb3JlIGNhbGxpbmcgYHNjcm9sbFRvYC5cbiAgICAvLyBPdGhlcndpc2UgaXQgd2lsbCBub3QgcGlja3VwIHRoZSBjaGFuZ2UgaW4gc2Nyb2xsQmVoYXZpb3JcbiAgICAvLyBNb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL3ZlcmNlbC9uZXh0LmpzL2lzc3Vlcy80MDcxOSNpc3N1ZWNvbW1lbnQtMTMzNjI0ODA0MlxuICAgIGh0bWxFbGVtZW50LmdldENsaWVudFJlY3RzKClcbiAgfVxuICBmbigpXG4gIGh0bWxFbGVtZW50LnN0eWxlLnNjcm9sbEJlaGF2aW9yID0gZXhpc3Rpbmdcbn1cbiJdLCJuYW1lcyI6WyJoYW5kbGVTbW9vdGhTY3JvbGwiLCJmbiIsIm9wdGlvbnMiLCJvbmx5SGFzaENoYW5nZSIsImh0bWxFbGVtZW50IiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJleGlzdGluZyIsInN0eWxlIiwic2Nyb2xsQmVoYXZpb3IiLCJkb250Rm9yY2VMYXlvdXQiLCJnZXRDbGllbnRSZWN0cyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/index.js": +/*!*****************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/index.js ***! + \*****************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return _sortedroutes.getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return _sortedroutes.getSortedRoutes;\n },\n isDynamicRoute: function() {\n return _isdynamic.isDynamicRoute;\n }\n});\nconst _sortedroutes = __webpack_require__(/*! ./sorted-routes */ \"./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\");\nconst _isdynamic = __webpack_require__(/*! ./is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\"); //# sourceMappingURL=index.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUEwQkEscUJBQXFCO2VBQXJCQSxjQUFBQSxxQkFBcUI7O0lBQXRDQyxlQUFlO2VBQWZBLGNBQUFBLGVBQWU7O0lBQ2ZDLGNBQWM7ZUFBZEEsV0FBQUEsY0FBYzs7OzBDQURnQzt1Q0FDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGdldFNvcnRlZFJvdXRlcywgZ2V0U29ydGVkUm91dGVPYmplY3RzIH0gZnJvbSAnLi9zb3J0ZWQtcm91dGVzJ1xuZXhwb3J0IHsgaXNEeW5hbWljUm91dGUgfSBmcm9tICcuL2lzLWR5bmFtaWMnXG4iXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVPYmplY3RzIiwiZ2V0U29ydGVkUm91dGVzIiwiaXNEeW5hbWljUm91dGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js": +/*!**************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js ***! + \**************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interpolateAs\", ({\n enumerable: true,\n get: function() {\n return interpolateAs;\n }\n}));\nconst _routematcher = __webpack_require__(/*! ./route-matcher */ \"./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ./route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nfunction interpolateAs(route, asPathname, query) {\n let interpolatedRoute = '';\n const dynamicRegex = (0, _routeregex.getRouteRegex)(route);\n const dynamicGroups = dynamicRegex.groups;\n const dynamicMatches = (asPathname !== route ? (0, _routematcher.getRouteMatcher)(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n const params = Object.keys(dynamicGroups);\n if (!params.every((param)=>{\n let value = dynamicMatches[param] || '';\n const { repeat, optional } = dynamicGroups[param];\n // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n let replaced = \"[\" + (repeat ? '...' : '') + param + \"]\";\n if (optional) {\n replaced = (!value ? '/' : '') + \"[\" + replaced + \"]\";\n }\n if (repeat && !Array.isArray(value)) value = [\n value\n ];\n return (optional || param in dynamicMatches) && // Interpolate group into data URL if present\n (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map(// path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n (segment)=>encodeURIComponent(segment)).join('/') : encodeURIComponent(value)) || '/');\n })) {\n interpolatedRoute = '' // did not satisfy all requirements\n ;\n // n.b. We ignore this error because we handle warning for this case in\n // development in the `<Link>` component directly.\n }\n return {\n params,\n result: interpolatedRoute\n };\n} //# sourceMappingURL=interpolate-as.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2ludGVycG9sYXRlLWFzLmpzIiwibWFwcGluZ3MiOiI7Ozs7aURBS2dCQTs7O2VBQUFBOzs7MENBSGdCO3dDQUNGO0FBRXZCLFNBQVNBLGNBQ2RDLEtBQWEsRUFDYkMsVUFBa0IsRUFDbEJDLEtBQXFCO0lBRXJCLElBQUlDLG9CQUFvQjtJQUV4QixNQUFNQyxlQUFlQyxDQUFBQSxHQUFBQSxZQUFBQSxhQUFBQSxFQUFjTDtJQUNuQyxNQUFNTSxnQkFBZ0JGLGFBQWFHLE1BQU07SUFDekMsTUFBTUMsaUJBRUosQ0FBQ1AsZUFBZUQsUUFBUVMsQ0FBQUEsR0FBQUEsY0FBQUEsVUFENEIsS0FDNUJBLEVBQWdCTCxjQUFjSCxjQUFjLEdBQUMsSUFDckUsZ0RBQWdEO0lBQ2hELHNFQUFzRTtJQUN0RUM7SUFFRkMsb0JBQW9CSDtJQUNwQixNQUFNVSxTQUFTQyxPQUFPQyxJQUFJLENBQUNOO0lBRTNCLElBQ0UsQ0FBQ0ksT0FBT0csS0FBSyxDQUFDLENBQUNDO1FBQ2IsSUFBSUMsUUFBUVAsY0FBYyxDQUFDTSxNQUFNLElBQUk7UUFDckMsTUFBTSxFQUFFRSxNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHWCxhQUFhLENBQUNRLE1BQU07UUFFakQsaUNBQWlDO1FBQ2pDLDBEQUEwRDtRQUMxRCxJQUFJSSxXQUFZLE1BQUdGLENBQUFBLFNBQVMsUUFBUSxHQUFDLEdBQUlGLFFBQU07UUFDL0MsSUFBSUcsVUFBVTtZQUNaQyxXQUFjLEVBQUNILFFBQVEsTUFBTSxHQUFDLEdBQUUsTUFBR0csV0FBUztRQUM5QztRQUNBLElBQUlGLFVBQVUsQ0FBQ0csTUFBTUMsT0FBTyxDQUFDTCxRQUFRQSxRQUFRO1lBQUNBO1NBQU07UUFFcEQsT0FDR0UsQ0FBQUEsWUFBWUgsU0FBU04sY0FBQUEsQ0FBYSxJQUNuQyw2Q0FBNkM7U0FDNUNMLG9CQUNDQSxrQkFBbUJrQixPQUFPLENBQ3hCSCxVQUNBRixTQUNLRCxNQUNFTyxHQUFHLENBQ0YsdURBQXVEO1FBRXZELGtEQUFrRDtRQUNsRCxvQ0FBb0M7UUFDcEMsQ0FBQ0MsVUFBWUMsbUJBQW1CRCxVQUVqQ0UsSUFBSSxDQUFDLE9BQ1JELG1CQUFtQlQsV0FDcEIsSUFBRTtJQUViLElBQ0E7UUFDQVosb0JBQW9CLEdBQUcsbUNBQW1DOztJQUUxRCx1RUFBdUU7SUFDdkUsa0RBQWtEO0lBQ3BEO0lBQ0EsT0FBTztRQUNMTztRQUNBZ0IsUUFBUXZCO0lBQ1Y7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXJzZWRVcmxRdWVyeSB9IGZyb20gJ3F1ZXJ5c3RyaW5nJ1xuXG5pbXBvcnQgeyBnZXRSb3V0ZU1hdGNoZXIgfSBmcm9tICcuL3JvdXRlLW1hdGNoZXInXG5pbXBvcnQgeyBnZXRSb3V0ZVJlZ2V4IH0gZnJvbSAnLi9yb3V0ZS1yZWdleCdcblxuZXhwb3J0IGZ1bmN0aW9uIGludGVycG9sYXRlQXMoXG4gIHJvdXRlOiBzdHJpbmcsXG4gIGFzUGF0aG5hbWU6IHN0cmluZyxcbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4pIHtcbiAgbGV0IGludGVycG9sYXRlZFJvdXRlID0gJydcblxuICBjb25zdCBkeW5hbWljUmVnZXggPSBnZXRSb3V0ZVJlZ2V4KHJvdXRlKVxuICBjb25zdCBkeW5hbWljR3JvdXBzID0gZHluYW1pY1JlZ2V4Lmdyb3Vwc1xuICBjb25zdCBkeW5hbWljTWF0Y2hlcyA9XG4gICAgLy8gVHJ5IHRvIG1hdGNoIHRoZSBkeW5hbWljIHJvdXRlIGFnYWluc3QgdGhlIGFzUGF0aFxuICAgIChhc1BhdGhuYW1lICE9PSByb3V0ZSA/IGdldFJvdXRlTWF0Y2hlcihkeW5hbWljUmVnZXgpKGFzUGF0aG5hbWUpIDogJycpIHx8XG4gICAgLy8gRmFsbCBiYWNrIHRvIHJlYWRpbmcgdGhlIHZhbHVlcyBmcm9tIHRoZSBocmVmXG4gICAgLy8gVE9ETzogc2hvdWxkIHRoaXMgdGFrZSBwcmlvcml0eTsgYWxzbyBuZWVkIHRvIGNoYW5nZSBpbiB0aGUgcm91dGVyLlxuICAgIHF1ZXJ5XG5cbiAgaW50ZXJwb2xhdGVkUm91dGUgPSByb3V0ZVxuICBjb25zdCBwYXJhbXMgPSBPYmplY3Qua2V5cyhkeW5hbWljR3JvdXBzKVxuXG4gIGlmIChcbiAgICAhcGFyYW1zLmV2ZXJ5KChwYXJhbSkgPT4ge1xuICAgICAgbGV0IHZhbHVlID0gZHluYW1pY01hdGNoZXNbcGFyYW1dIHx8ICcnXG4gICAgICBjb25zdCB7IHJlcGVhdCwgb3B0aW9uYWwgfSA9IGR5bmFtaWNHcm91cHNbcGFyYW1dXG5cbiAgICAgIC8vIHN1cHBvcnQgc2luZ2xlLWxldmVsIGNhdGNoLWFsbFxuICAgICAgLy8gVE9ETzogbW9yZSByb2J1c3QgaGFuZGxpbmcgZm9yIHVzZXItZXJyb3IgKHBhc3NpbmcgYC9gKVxuICAgICAgbGV0IHJlcGxhY2VkID0gYFske3JlcGVhdCA/ICcuLi4nIDogJyd9JHtwYXJhbX1dYFxuICAgICAgaWYgKG9wdGlvbmFsKSB7XG4gICAgICAgIHJlcGxhY2VkID0gYCR7IXZhbHVlID8gJy8nIDogJyd9WyR7cmVwbGFjZWR9XWBcbiAgICAgIH1cbiAgICAgIGlmIChyZXBlYXQgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpKSB2YWx1ZSA9IFt2YWx1ZV1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgKG9wdGlvbmFsIHx8IHBhcmFtIGluIGR5bmFtaWNNYXRjaGVzKSAmJlxuICAgICAgICAvLyBJbnRlcnBvbGF0ZSBncm91cCBpbnRvIGRhdGEgVVJMIGlmIHByZXNlbnRcbiAgICAgICAgKGludGVycG9sYXRlZFJvdXRlID1cbiAgICAgICAgICBpbnRlcnBvbGF0ZWRSb3V0ZSEucmVwbGFjZShcbiAgICAgICAgICAgIHJlcGxhY2VkLFxuICAgICAgICAgICAgcmVwZWF0XG4gICAgICAgICAgICAgID8gKHZhbHVlIGFzIHN0cmluZ1tdKVxuICAgICAgICAgICAgICAgICAgLm1hcChcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlc2UgdmFsdWVzIHNob3VsZCBiZSBmdWxseSBlbmNvZGVkIGluc3RlYWQgb2YganVzdFxuICAgICAgICAgICAgICAgICAgICAvLyBwYXRoIGRlbGltaXRlciBlc2NhcGVkIHNpbmNlIHRoZXkgYXJlIGJlaW5nIGluc2VydGVkXG4gICAgICAgICAgICAgICAgICAgIC8vIGludG8gdGhlIFVSTCBhbmQgd2UgZXhwZWN0IFVSTCBlbmNvZGVkIHNlZ21lbnRzXG4gICAgICAgICAgICAgICAgICAgIC8vIHdoZW4gcGFyc2luZyBkeW5hbWljIHJvdXRlIHBhcmFtc1xuICAgICAgICAgICAgICAgICAgICAoc2VnbWVudCkgPT4gZW5jb2RlVVJJQ29tcG9uZW50KHNlZ21lbnQpXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAuam9pbignLycpXG4gICAgICAgICAgICAgIDogZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlIGFzIHN0cmluZylcbiAgICAgICAgICApIHx8ICcvJylcbiAgICAgIClcbiAgICB9KVxuICApIHtcbiAgICBpbnRlcnBvbGF0ZWRSb3V0ZSA9ICcnIC8vIGRpZCBub3Qgc2F0aXNmeSBhbGwgcmVxdWlyZW1lbnRzXG5cbiAgICAvLyBuLmIuIFdlIGlnbm9yZSB0aGlzIGVycm9yIGJlY2F1c2Ugd2UgaGFuZGxlIHdhcm5pbmcgZm9yIHRoaXMgY2FzZSBpblxuICAgIC8vIGRldmVsb3BtZW50IGluIHRoZSBgPExpbms+YCBjb21wb25lbnQgZGlyZWN0bHkuXG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwYXJhbXMsXG4gICAgcmVzdWx0OiBpbnRlcnBvbGF0ZWRSb3V0ZSxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImludGVycG9sYXRlQXMiLCJyb3V0ZSIsImFzUGF0aG5hbWUiLCJxdWVyeSIsImludGVycG9sYXRlZFJvdXRlIiwiZHluYW1pY1JlZ2V4IiwiZ2V0Um91dGVSZWdleCIsImR5bmFtaWNHcm91cHMiLCJncm91cHMiLCJkeW5hbWljTWF0Y2hlcyIsImdldFJvdXRlTWF0Y2hlciIsInBhcmFtcyIsIk9iamVjdCIsImtleXMiLCJldmVyeSIsInBhcmFtIiwidmFsdWUiLCJyZXBlYXQiLCJvcHRpb25hbCIsInJlcGxhY2VkIiwiQXJyYXkiLCJpc0FycmF5IiwicmVwbGFjZSIsIm1hcCIsInNlZ21lbnQiLCJlbmNvZGVVUklDb21wb25lbnQiLCJqb2luIiwicmVzdWx0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/is-bot.js": +/*!******************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/is-bot.js ***! + \******************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isBot\", ({\n enumerable: true,\n get: function() {\n return isBot;\n }\n}));\nconst BOT_UA_RE = /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i;\nfunction isBot(userAgent) {\n return BOT_UA_RE.test(userAgent);\n} //# sourceMappingURL=is-bot.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWJvdC5qcyIsIm1hcHBpbmdzIjoiOzs7O3lDQUdnQkE7OztlQUFBQTs7O0FBSGhCLE1BQU1DLFlBQ0o7QUFFSyxTQUFTRCxNQUFNRSxTQUFpQjtJQUNyQyxPQUFPRCxVQUFVRSxJQUFJLENBQUNEO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1ib3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgQk9UX1VBX1JFID1cbiAgL0dvb2dsZWJvdHxNZWRpYXBhcnRuZXJzLUdvb2dsZXxBZHNCb3QtR29vZ2xlfGdvb2dsZXdlYmxpZ2h0fFN0b3JlYm90LUdvb2dsZXxHb29nbGUtUGFnZVJlbmRlcmVyfEJpbmdib3R8QmluZ1ByZXZpZXd8U2x1cnB8RHVja0R1Y2tCb3R8YmFpZHVzcGlkZXJ8eWFuZGV4fHNvZ291fExpbmtlZEluQm90fGJpdGx5Ym90fHR1bWJscnx2a1NoYXJlfHF1b3JhIGxpbmsgcHJldmlld3xmYWNlYm9va2V4dGVybmFsaGl0fGZhY2Vib29rY2F0YWxvZ3xUd2l0dGVyYm90fGFwcGxlYm90fHJlZGRpdGJvdHxTbGFja2JvdHxEaXNjb3JkYm90fFdoYXRzQXBwfFNreXBlVXJpUHJldmlld3xpYV9hcmNoaXZlci9pXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0JvdCh1c2VyQWdlbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gQk9UX1VBX1JFLnRlc3QodXNlckFnZW50KVxufVxuIl0sIm5hbWVzIjpbImlzQm90IiwiQk9UX1VBX1JFIiwidXNlckFnZW50IiwidGVzdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/is-bot.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***! + \**********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isDynamicRoute\", ({\n enumerable: true,\n get: function() {\n return isDynamicRoute;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ../../../../server/lib/interception-routes */ \"./node_modules/next/dist/server/lib/interception-routes.js\");\n// Identify /[param]/ in route string\nconst TEST_ROUTE = /\\/\\[[^/]+?\\](?=\\/|$)/;\nfunction isDynamicRoute(route) {\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(route)) {\n route = (0, _interceptionroutes.extractInterceptionRouteInformation)(route).interceptedRoute;\n }\n return TEST_ROUTE.test(route);\n} //# sourceMappingURL=is-dynamic.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWR5bmFtaWMuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFRZ0JBOzs7ZUFBQUE7OztnREFMVDtBQUVQLHFDQUFxQztBQUNyQyxNQUFNQyxhQUFhO0FBRVosU0FBU0QsZUFBZUUsS0FBYTtJQUMxQyxJQUFJQyxDQUFBQSxHQUFBQSxvQkFBQUEsMEJBQUFBLEVBQTJCRCxRQUFRO1FBQ3JDQSxRQUFRRSxDQUFBQSxHQUFBQSxvQkFBQUEsbUNBQUFBLEVBQW9DRixPQUFPRyxnQkFBZ0I7SUFDckU7SUFFQSxPQUFPSixXQUFXSyxJQUFJLENBQUNKO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1keW5hbWljLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uLFxuICBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2xpYi9pbnRlcmNlcHRpb24tcm91dGVzJ1xuXG4vLyBJZGVudGlmeSAvW3BhcmFtXS8gaW4gcm91dGUgc3RyaW5nXG5jb25zdCBURVNUX1JPVVRFID0gL1xcL1xcW1teL10rP1xcXSg/PVxcL3wkKS9cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRHluYW1pY1JvdXRlKHJvdXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHJvdXRlKSkge1xuICAgIHJvdXRlID0gZXh0cmFjdEludGVyY2VwdGlvblJvdXRlSW5mb3JtYXRpb24ocm91dGUpLmludGVyY2VwdGVkUm91dGVcbiAgfVxuXG4gIHJldHVybiBURVNUX1JPVVRFLnRlc3Qocm91dGUpXG59XG4iXSwibmFtZXMiOlsiaXNEeW5hbWljUm91dGUiLCJURVNUX1JPVVRFIiwicm91dGUiLCJpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aCIsImV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uIiwiaW50ZXJjZXB0ZWRSb3V0ZSIsInRlc3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/is-local-url.js": +/*!************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/is-local-url.js ***! + \************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isLocalURL\", ({\n enumerable: true,\n get: function() {\n return isLocalURL;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../../client/has-base-path */ \"./node_modules/next/dist/client/has-base-path.js\");\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (!(0, _utils.isAbsoluteUrl)(url)) return true;\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = (0, _utils.getLocationOrigin)();\n const resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && (0, _hasbasepath.hasBasePath)(resolved.pathname);\n } catch (_) {\n return false;\n }\n} //# sourceMappingURL=is-local-url.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2lzLWxvY2FsLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7OzhDQU1nQkE7OztlQUFBQTs7O21DQU5pQzt5Q0FDckI7QUFLckIsU0FBU0EsV0FBV0MsR0FBVztJQUNwQyxnRUFBZ0U7SUFDaEUsSUFBSSxDQUFDQyxDQUFBQSxHQUFBQSxPQUFBQSxhQUFBQSxFQUFjRCxNQUFNLE9BQU87SUFDaEMsSUFBSTtRQUNGLDREQUE0RDtRQUM1RCxNQUFNRSxpQkFBaUJDLENBQUFBLEdBQUFBLE9BQUFBLGlCQUFBQTtRQUN2QixNQUFNQyxXQUFXLElBQUlDLElBQUlMLEtBQUtFO1FBQzlCLE9BQU9FLFNBQVNFLE1BQU0sS0FBS0osa0JBQWtCSyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFBQSxFQUFZSCxTQUFTSSxRQUFRO0lBQzVFLEVBQUUsT0FBT0MsR0FBRztRQUNWLE9BQU87SUFDVDtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1sb2NhbC11cmwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBYnNvbHV0ZVVybCwgZ2V0TG9jYXRpb25PcmlnaW4gfSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IGhhc0Jhc2VQYXRoIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xpZW50L2hhcy1iYXNlLXBhdGgnXG5cbi8qKlxuICogRGV0ZWN0cyB3aGV0aGVyIGEgZ2l2ZW4gdXJsIGlzIHJvdXRhYmxlIGJ5IHRoZSBOZXh0LmpzIHJvdXRlciAoYnJvd3NlciBvbmx5KS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxVUkwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgLy8gcHJldmVudCBhIGh5ZHJhdGlvbiBtaXNtYXRjaCBvbiBocmVmIGZvciB1cmwgd2l0aCBhbmNob3IgcmVmc1xuICBpZiAoIWlzQWJzb2x1dGVVcmwodXJsKSkgcmV0dXJuIHRydWVcbiAgdHJ5IHtcbiAgICAvLyBhYnNvbHV0ZSB1cmxzIGNhbiBiZSBsb2NhbCBpZiB0aGV5IGFyZSBvbiB0aGUgc2FtZSBvcmlnaW5cbiAgICBjb25zdCBsb2NhdGlvbk9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgICBjb25zdCByZXNvbHZlZCA9IG5ldyBVUkwodXJsLCBsb2NhdGlvbk9yaWdpbilcbiAgICByZXR1cm4gcmVzb2x2ZWQub3JpZ2luID09PSBsb2NhdGlvbk9yaWdpbiAmJiBoYXNCYXNlUGF0aChyZXNvbHZlZC5wYXRobmFtZSlcbiAgfSBjYXRjaCAoXykge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG59XG4iXSwibmFtZXMiOlsiaXNMb2NhbFVSTCIsInVybCIsImlzQWJzb2x1dGVVcmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJoYXNCYXNlUGF0aCIsInBhdGhuYW1lIiwiXyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/omit.js": +/*!****************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/omit.js ***! + \****************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"omit\", ({\n enumerable: true,\n get: function() {\n return omit;\n }\n}));\nfunction omit(object, keys) {\n const omitted = {};\n Object.keys(object).forEach((key)=>{\n if (!keys.includes(key)) {\n omitted[key] = object[key];\n }\n });\n return omitted;\n} //# sourceMappingURL=omit.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL29taXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozt3Q0FBZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLEtBQ2RDLE1BQVMsRUFDVEMsSUFBUztJQUVULE1BQU1DLFVBQXNDLENBQUM7SUFDN0NDLE9BQU9GLElBQUksQ0FBQ0QsUUFBUUksT0FBTyxDQUFDLENBQUNDO1FBQzNCLElBQUksQ0FBQ0osS0FBS0ssUUFBUSxDQUFDRCxNQUFXO1lBQzVCSCxPQUFPLENBQUNHLElBQUksR0FBR0wsTUFBTSxDQUFDSyxJQUFJO1FBQzVCO0lBQ0Y7SUFDQSxPQUFPSDtBQUNUIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9vbWl0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBvbWl0PFQgZXh0ZW5kcyB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSwgSyBleHRlbmRzIGtleW9mIFQ+KFxuICBvYmplY3Q6IFQsXG4gIGtleXM6IEtbXVxuKTogT21pdDxULCBLPiB7XG4gIGNvbnN0IG9taXR0ZWQ6IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9ID0ge31cbiAgT2JqZWN0LmtleXMob2JqZWN0KS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoIWtleXMuaW5jbHVkZXMoa2V5IGFzIEspKSB7XG4gICAgICBvbWl0dGVkW2tleV0gPSBvYmplY3Rba2V5XVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIG9taXR0ZWQgYXMgT21pdDxULCBLPlxufVxuIl0sIm5hbWVzIjpbIm9taXQiLCJvYmplY3QiLCJrZXlzIiwib21pdHRlZCIsIk9iamVjdCIsImZvckVhY2giLCJrZXkiLCJpbmNsdWRlcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/omit.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/parse-path.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/parse-path.js ***! + \**********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parsePath\", ({\n enumerable: true,\n get: function() {\n return parsePath;\n }\n}));\nfunction parsePath(path) {\n const hashIndex = path.indexOf('#');\n const queryIndex = path.indexOf('?');\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex);\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : ''\n };\n }\n return {\n pathname: path,\n query: '',\n hash: ''\n };\n} //# sourceMappingURL=parse-path.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGguanMiLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Q0FJQzs7Ozs2Q0FDZUE7OztlQUFBQTs7O0FBQVQsU0FBU0EsVUFBVUMsSUFBWTtJQUNwQyxNQUFNQyxZQUFZRCxLQUFLRSxPQUFPLENBQUM7SUFDL0IsTUFBTUMsYUFBYUgsS0FBS0UsT0FBTyxDQUFDO0lBQ2hDLE1BQU1FLFdBQVdELGFBQWEsQ0FBQyxLQUFNRixDQUFBQSxZQUFZLEtBQUtFLGFBQWFGLFNBQUFBLENBQVE7SUFFM0UsSUFBSUcsWUFBWUgsWUFBWSxDQUFDLEdBQUc7UUFDOUIsT0FBTztZQUNMSSxVQUFVTCxLQUFLTSxTQUFTLENBQUMsR0FBR0YsV0FBV0QsYUFBYUY7WUFDcERNLE9BQU9ILFdBQ0hKLEtBQUtNLFNBQVMsQ0FBQ0gsWUFBWUYsWUFBWSxDQUFDLElBQUlBLFlBQVlPLGFBQ3hEO1lBQ0pDLE1BQU1SLFlBQVksQ0FBQyxJQUFJRCxLQUFLVSxLQUFLLENBQUNULGFBQWE7UUFDakQ7SUFDRjtJQUVBLE9BQU87UUFBRUksVUFBVUw7UUFBTU8sT0FBTztRQUFJRSxNQUFNO0lBQUc7QUFDL0MiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXBhdGgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHaXZlbiBhIHBhdGggdGhpcyBmdW5jdGlvbiB3aWxsIGZpbmQgdGhlIHBhdGhuYW1lLCBxdWVyeSBhbmQgaGFzaCBhbmQgcmV0dXJuXG4gKiB0aGVtLiBUaGlzIGlzIHVzZWZ1bCB0byBwYXJzZSBmdWxsIHBhdGhzIG9uIHRoZSBjbGllbnQgc2lkZS5cbiAqIEBwYXJhbSBwYXRoIEEgcGF0aCB0byBwYXJzZSBlLmcuIC9mb28vYmFyP2lkPTEjaGFzaFxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VQYXRoKHBhdGg6IHN0cmluZykge1xuICBjb25zdCBoYXNoSW5kZXggPSBwYXRoLmluZGV4T2YoJyMnKVxuICBjb25zdCBxdWVyeUluZGV4ID0gcGF0aC5pbmRleE9mKCc/JylcbiAgY29uc3QgaGFzUXVlcnkgPSBxdWVyeUluZGV4ID4gLTEgJiYgKGhhc2hJbmRleCA8IDAgfHwgcXVlcnlJbmRleCA8IGhhc2hJbmRleClcblxuICBpZiAoaGFzUXVlcnkgfHwgaGFzaEluZGV4ID4gLTEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aG5hbWU6IHBhdGguc3Vic3RyaW5nKDAsIGhhc1F1ZXJ5ID8gcXVlcnlJbmRleCA6IGhhc2hJbmRleCksXG4gICAgICBxdWVyeTogaGFzUXVlcnlcbiAgICAgICAgPyBwYXRoLnN1YnN0cmluZyhxdWVyeUluZGV4LCBoYXNoSW5kZXggPiAtMSA/IGhhc2hJbmRleCA6IHVuZGVmaW5lZClcbiAgICAgICAgOiAnJyxcbiAgICAgIGhhc2g6IGhhc2hJbmRleCA+IC0xID8gcGF0aC5zbGljZShoYXNoSW5kZXgpIDogJycsXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgcGF0aG5hbWU6IHBhdGgsIHF1ZXJ5OiAnJywgaGFzaDogJycgfVxufVxuIl0sIm5hbWVzIjpbInBhcnNlUGF0aCIsInBhdGgiLCJoYXNoSW5kZXgiLCJpbmRleE9mIiwicXVlcnlJbmRleCIsImhhc1F1ZXJ5IiwicGF0aG5hbWUiLCJzdWJzdHJpbmciLCJxdWVyeSIsInVuZGVmaW5lZCIsImhhc2giLCJzbGljZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/parse-path.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js ***! + \******************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"parseRelativeUrl\", ({\n enumerable: true,\n get: function() {\n return parseRelativeUrl;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nconst _querystring = __webpack_require__(/*! ./querystring */ \"./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nfunction parseRelativeUrl(url, base, parseQuery) {\n if (parseQuery === void 0) parseQuery = true;\n const globalBase = new URL( false ? 0 : (0, _utils.getLocationOrigin)());\n const resolvedBase = base ? new URL(base, globalBase) : url.startsWith('.') ? new URL( false ? 0 : window.location.href) : globalBase;\n const { pathname, searchParams, search, hash, href, origin } = new URL(url, resolvedBase);\n if (origin !== globalBase.origin) {\n throw new Error(\"invariant: invalid relative URL, router received \" + url);\n }\n return {\n pathname,\n query: parseQuery ? (0, _querystring.searchParamsToUrlQuery)(searchParams) : undefined,\n search,\n hash,\n href: href.slice(origin.length)\n };\n} //# sourceMappingURL=parse-relative-url.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhcnNlLXJlbGF0aXZlLXVybC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQTRCZ0JBOzs7ZUFBQUE7OzttQ0EzQmtCO3lDQUNLO0FBMEJoQyxTQUFTQSxpQkFDZEMsR0FBVyxFQUNYQyxJQUFhLEVBQ2JDLFVBQWlCO0lBQWpCQSxJQUFBQSxlQUFBQSxLQUFBQSxHQUFBQSxhQUFhO0lBRWIsTUFBTUMsYUFBYSxJQUFJQyxJQUNyQixNQUE2QixHQUFHLENBQVUsR0FBR0UsQ0FBQUEsR0FBQUEsT0FBQUEsaUJBQUFBO0lBRy9DLE1BQU1DLGVBQWVOLE9BQ2pCLElBQUlHLElBQUlILE1BQU1FLGNBQ2RILElBQUlRLFVBQVUsQ0FBQyxPQUNiLElBQUlKLElBQ0YsTUFBNkIsR0FBRyxDQUFVLEdBQUdDLE9BQU9JLFFBQVEsQ0FBQ0MsSUFBSSxJQUVuRVA7SUFFTixNQUFNLEVBQUVRLFFBQVEsRUFBRUMsWUFBWSxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUosSUFBSSxFQUFFSyxNQUFNLEVBQUUsR0FBRyxJQUFJWCxJQUNqRUosS0FDQU87SUFHRixJQUFJUSxXQUFXWixXQUFXWSxNQUFNLEVBQUU7UUFDaEMsTUFBTSxJQUFJQyxNQUFPLHNEQUFtRGhCO0lBQ3RFO0lBRUEsT0FBTztRQUNMVztRQUNBTSxPQUFPZixhQUFhZ0IsQ0FBQUEsR0FBQUEsYUFBQUEsc0JBQUFBLEVBQXVCTixnQkFBZ0JPO1FBQzNETjtRQUNBQztRQUNBSixNQUFNQSxLQUFLVSxLQUFLLENBQUNMLE9BQU9NLE1BQU07SUFDaEM7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcGFyc2UtcmVsYXRpdmUtdXJsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB7IGdldExvY2F0aW9uT3JpZ2luIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IH0gZnJvbSAnLi9xdWVyeXN0cmluZydcblxuZXhwb3J0IGludGVyZmFjZSBQYXJzZWRSZWxhdGl2ZVVybCB7XG4gIGhhc2g6IHN0cmluZ1xuICBocmVmOiBzdHJpbmdcbiAgcGF0aG5hbWU6IHN0cmluZ1xuICBxdWVyeTogUGFyc2VkVXJsUXVlcnlcbiAgc2VhcmNoOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBQYXJzZXMgcGF0aC1yZWxhdGl2ZSB1cmxzIChlLmcuIGAvaGVsbG8vd29ybGQ/Zm9vPWJhcmApLiBJZiB1cmwgaXNuJ3QgcGF0aC1yZWxhdGl2ZVxuICogKGUuZy4gYC4vaGVsbG9gKSB0aGVuIGF0IGxlYXN0IGJhc2UgbXVzdCBiZS5cbiAqIEFic29sdXRlIHVybHMgYXJlIHJlamVjdGVkIHdpdGggb25lIGV4Y2VwdGlvbiwgaW4gdGhlIGJyb3dzZXIsIGFic29sdXRlIHVybHMgdGhhdCBhcmUgb25cbiAqIHRoZSBjdXJyZW50IG9yaWdpbiB3aWxsIGJlIHBhcnNlZCBhcyByZWxhdGl2ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSZWxhdGl2ZVVybChcbiAgdXJsOiBzdHJpbmcsXG4gIGJhc2U/OiBzdHJpbmcsXG4gIHBhcnNlUXVlcnk/OiB0cnVlXG4pOiBQYXJzZWRSZWxhdGl2ZVVybFxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVsYXRpdmVVcmwoXG4gIHVybDogc3RyaW5nLFxuICBiYXNlOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHBhcnNlUXVlcnk6IGZhbHNlXG4pOiBPbWl0PFBhcnNlZFJlbGF0aXZlVXJsLCAncXVlcnknPlxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUmVsYXRpdmVVcmwoXG4gIHVybDogc3RyaW5nLFxuICBiYXNlPzogc3RyaW5nLFxuICBwYXJzZVF1ZXJ5ID0gdHJ1ZVxuKTogUGFyc2VkUmVsYXRpdmVVcmwgfCBPbWl0PFBhcnNlZFJlbGF0aXZlVXJsLCAncXVlcnknPiB7XG4gIGNvbnN0IGdsb2JhbEJhc2UgPSBuZXcgVVJMKFxuICAgIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnID8gJ2h0dHA6Ly9uJyA6IGdldExvY2F0aW9uT3JpZ2luKClcbiAgKVxuXG4gIGNvbnN0IHJlc29sdmVkQmFzZSA9IGJhc2VcbiAgICA/IG5ldyBVUkwoYmFzZSwgZ2xvYmFsQmFzZSlcbiAgICA6IHVybC5zdGFydHNXaXRoKCcuJylcbiAgICAgID8gbmV3IFVSTChcbiAgICAgICAgICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyA/ICdodHRwOi8vbicgOiB3aW5kb3cubG9jYXRpb24uaHJlZlxuICAgICAgICApXG4gICAgICA6IGdsb2JhbEJhc2VcblxuICBjb25zdCB7IHBhdGhuYW1lLCBzZWFyY2hQYXJhbXMsIHNlYXJjaCwgaGFzaCwgaHJlZiwgb3JpZ2luIH0gPSBuZXcgVVJMKFxuICAgIHVybCxcbiAgICByZXNvbHZlZEJhc2VcbiAgKVxuXG4gIGlmIChvcmlnaW4gIT09IGdsb2JhbEJhc2Uub3JpZ2luKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhcmlhbnQ6IGludmFsaWQgcmVsYXRpdmUgVVJMLCByb3V0ZXIgcmVjZWl2ZWQgJHt1cmx9YClcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcGF0aG5hbWUsXG4gICAgcXVlcnk6IHBhcnNlUXVlcnkgPyBzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5KHNlYXJjaFBhcmFtcykgOiB1bmRlZmluZWQsXG4gICAgc2VhcmNoLFxuICAgIGhhc2gsXG4gICAgaHJlZjogaHJlZi5zbGljZShvcmlnaW4ubGVuZ3RoKSxcbiAgfVxufVxuIl0sIm5hbWVzIjpbInBhcnNlUmVsYXRpdmVVcmwiLCJ1cmwiLCJiYXNlIiwicGFyc2VRdWVyeSIsImdsb2JhbEJhc2UiLCJVUkwiLCJ3aW5kb3ciLCJnZXRMb2NhdGlvbk9yaWdpbiIsInJlc29sdmVkQmFzZSIsInN0YXJ0c1dpdGgiLCJsb2NhdGlvbiIsImhyZWYiLCJwYXRobmFtZSIsInNlYXJjaFBhcmFtcyIsInNlYXJjaCIsImhhc2giLCJvcmlnaW4iLCJFcnJvciIsInF1ZXJ5Iiwic2VhcmNoUGFyYW1zVG9VcmxRdWVyeSIsInVuZGVmaW5lZCIsInNsaWNlIiwibGVuZ3RoIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js": +/*!***************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js ***! + \***************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"pathHasPrefix\", ({\n enumerable: true,\n get: function() {\n return pathHasPrefix;\n }\n}));\nconst _parsepath = __webpack_require__(/*! ./parse-path */ \"./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nfunction pathHasPrefix(path, prefix) {\n if (typeof path !== 'string') {\n return false;\n }\n const { pathname } = (0, _parsepath.parsePath)(path);\n return pathname === prefix || pathname.startsWith(prefix + '/');\n} //# sourceMappingURL=path-has-prefix.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQVNnQkE7OztlQUFBQTs7O3VDQVRVO0FBU25CLFNBQVNBLGNBQWNDLElBQVksRUFBRUMsTUFBYztJQUN4RCxJQUFJLE9BQU9ELFNBQVMsVUFBVTtRQUM1QixPQUFPO0lBQ1Q7SUFFQSxNQUFNLEVBQUVFLFFBQVEsRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxXQUFBQSxTQUFBQSxFQUFVSDtJQUMvQixPQUFPRSxhQUFhRCxVQUFVQyxTQUFTRSxVQUFVLENBQUNILFNBQVM7QUFDN0QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3BhdGgtaGFzLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVBhdGggfSBmcm9tICcuL3BhcnNlLXBhdGgnXG5cbi8qKlxuICogQ2hlY2tzIGlmIGEgZ2l2ZW4gcGF0aCBzdGFydHMgd2l0aCBhIGdpdmVuIHByZWZpeC4gSXQgZW5zdXJlcyBpdCBtYXRjaGVzXG4gKiBleGFjdGx5IHdpdGhvdXQgY29udGFpbmluZyBleHRyYSBjaGFycy4gZS5nLiBwcmVmaXggL2RvY3Mgc2hvdWxkIHJlcGxhY2VcbiAqIGZvciAvZG9jcywgL2RvY3MvLCAvZG9jcy9hIGJ1dCBub3QgL2RvY3Nzc1xuICogQHBhcmFtIHBhdGggVGhlIHBhdGggdG8gY2hlY2suXG4gKiBAcGFyYW0gcHJlZml4IFRoZSBwcmVmaXggdG8gY2hlY2sgYWdhaW5zdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhIYXNQcmVmaXgocGF0aDogc3RyaW5nLCBwcmVmaXg6IHN0cmluZykge1xuICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBjb25zdCB7IHBhdGhuYW1lIH0gPSBwYXJzZVBhdGgocGF0aClcbiAgcmV0dXJuIHBhdGhuYW1lID09PSBwcmVmaXggfHwgcGF0aG5hbWUuc3RhcnRzV2l0aChwcmVmaXggKyAnLycpXG59XG4iXSwibmFtZXMiOlsicGF0aEhhc1ByZWZpeCIsInBhdGgiLCJwcmVmaXgiLCJwYXRobmFtZSIsInBhcnNlUGF0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/querystring.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***! + \***********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n searchParams.forEach((value, key)=>{\n if (typeof query[key] === 'undefined') {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n ;\n query[key].push(value);\n } else {\n query[key] = [\n query[key],\n value\n ];\n }\n });\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === 'string' || typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') {\n return String(param);\n } else {\n return '';\n }\n}\nfunction urlQueryToSearchParams(urlQuery) {\n const result = new URLSearchParams();\n Object.entries(urlQuery).forEach((param)=>{\n let [key, value] = param;\n if (Array.isArray(value)) {\n value.forEach((item)=>result.append(key, stringifyUrlQueryParam(item)));\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n searchParamsList.forEach((searchParams)=>{\n Array.from(searchParams.keys()).forEach((key)=>target.delete(key));\n searchParams.forEach((value, key)=>target.append(key, value));\n });\n return target;\n} //# sourceMappingURL=querystring.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQTRDZ0JBLE1BQU07ZUFBTkE7O0lBMUNBQyxzQkFBc0I7ZUFBdEJBOztJQTRCQUMsc0JBQXNCO2VBQXRCQTs7O0FBNUJULFNBQVNELHVCQUNkRSxZQUE2QjtJQUU3QixNQUFNQyxRQUF3QixDQUFDO0lBQy9CRCxhQUFhRSxPQUFPLENBQUMsQ0FBQ0MsT0FBT0M7UUFDM0IsSUFBSSxPQUFPSCxLQUFLLENBQUNHLElBQUksS0FBSyxhQUFhO1lBQ3JDSCxLQUFLLENBQUNHLElBQUksR0FBR0Q7UUFDZixPQUFPLElBQUlFLE1BQU1DLE9BQU8sQ0FBQ0wsS0FBSyxDQUFDRyxJQUFJLEdBQUc7O1lBQ2xDSCxLQUFLLENBQUNHLElBQUksQ0FBY0csSUFBSSxDQUFDSjtRQUNqQyxPQUFPO1lBQ0xGLEtBQUssQ0FBQ0csSUFBSSxHQUFHO2dCQUFDSCxLQUFLLENBQUNHLElBQUk7Z0JBQVlEO2FBQU07UUFDNUM7SUFDRjtJQUNBLE9BQU9GO0FBQ1Q7QUFFQSxTQUFTTyx1QkFBdUJDLEtBQWM7SUFDNUMsSUFDRSxPQUFPQSxVQUFVLFlBQ2hCLE9BQU9BLFVBQVUsWUFBWSxDQUFDQyxNQUFNRCxVQUNyQyxPQUFPQSxVQUFVLFdBQ2pCO1FBQ0EsT0FBT0UsT0FBT0Y7SUFDaEIsT0FBTztRQUNMLE9BQU87SUFDVDtBQUNGO0FBRU8sU0FBU1YsdUJBQ2RhLFFBQXdCO0lBRXhCLE1BQU1DLFNBQVMsSUFBSUM7SUFDbkJDLE9BQU9DLE9BQU8sQ0FBQ0osVUFBVVYsT0FBTyxDQUFDO1lBQUMsQ0FBQ0UsS0FBS0QsTUFBTTtRQUM1QyxJQUFJRSxNQUFNQyxPQUFPLENBQUNILFFBQVE7WUFDeEJBLE1BQU1ELE9BQU8sQ0FBQyxDQUFDZSxPQUFTSixPQUFPSyxNQUFNLENBQUNkLEtBQUtJLHVCQUF1QlM7UUFDcEUsT0FBTztZQUNMSixPQUFPTSxHQUFHLENBQUNmLEtBQUtJLHVCQUF1Qkw7UUFDekM7SUFDRjtJQUNBLE9BQU9VO0FBQ1Q7QUFFTyxTQUFTaEIsT0FDZHVCLE1BQXVCO0lBQ3ZCLGlDQUFHQyxtQkFBSDtRQUFHQSxnQkFBQUEsQ0FBSCwyQkFBc0M7O0lBRXRDQSxpQkFBaUJuQixPQUFPLENBQUMsQ0FBQ0Y7UUFDeEJLLE1BQU1pQixJQUFJLENBQUN0QixhQUFhdUIsSUFBSSxJQUFJckIsT0FBTyxDQUFDLENBQUNFLE1BQVFnQixPQUFPSSxNQUFNLENBQUNwQjtRQUMvREosYUFBYUUsT0FBTyxDQUFDLENBQUNDLE9BQU9DLE1BQVFnQixPQUFPRixNQUFNLENBQUNkLEtBQUtEO0lBQzFEO0lBQ0EsT0FBT2lCO0FBQ1QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3F1ZXJ5c3RyaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcblxuZXhwb3J0IGZ1bmN0aW9uIHNlYXJjaFBhcmFtc1RvVXJsUXVlcnkoXG4gIHNlYXJjaFBhcmFtczogVVJMU2VhcmNoUGFyYW1zXG4pOiBQYXJzZWRVcmxRdWVyeSB7XG4gIGNvbnN0IHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeSA9IHt9XG4gIHNlYXJjaFBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBxdWVyeVtrZXldID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcXVlcnlba2V5XSA9IHZhbHVlXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHF1ZXJ5W2tleV0pKSB7XG4gICAgICA7KHF1ZXJ5W2tleV0gYXMgc3RyaW5nW10pLnB1c2godmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHF1ZXJ5W2tleV0gPSBbcXVlcnlba2V5XSBhcyBzdHJpbmcsIHZhbHVlXVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIHF1ZXJ5XG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0ocGFyYW06IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAoXG4gICAgdHlwZW9mIHBhcmFtID09PSAnc3RyaW5nJyB8fFxuICAgICh0eXBlb2YgcGFyYW0gPT09ICdudW1iZXInICYmICFpc05hTihwYXJhbSkpIHx8XG4gICAgdHlwZW9mIHBhcmFtID09PSAnYm9vbGVhbidcbiAgKSB7XG4gICAgcmV0dXJuIFN0cmluZyhwYXJhbSlcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gJydcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXJsUXVlcnlUb1NlYXJjaFBhcmFtcyhcbiAgdXJsUXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4pOiBVUkxTZWFyY2hQYXJhbXMge1xuICBjb25zdCByZXN1bHQgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKClcbiAgT2JqZWN0LmVudHJpZXModXJsUXVlcnkpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgdmFsdWUuZm9yRWFjaCgoaXRlbSkgPT4gcmVzdWx0LmFwcGVuZChrZXksIHN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0oaXRlbSkpKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQuc2V0KGtleSwgc3RyaW5naWZ5VXJsUXVlcnlQYXJhbSh2YWx1ZSkpXG4gICAgfVxuICB9KVxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NpZ24oXG4gIHRhcmdldDogVVJMU2VhcmNoUGFyYW1zLFxuICAuLi5zZWFyY2hQYXJhbXNMaXN0OiBVUkxTZWFyY2hQYXJhbXNbXVxuKTogVVJMU2VhcmNoUGFyYW1zIHtcbiAgc2VhcmNoUGFyYW1zTGlzdC5mb3JFYWNoKChzZWFyY2hQYXJhbXMpID0+IHtcbiAgICBBcnJheS5mcm9tKHNlYXJjaFBhcmFtcy5rZXlzKCkpLmZvckVhY2goKGtleSkgPT4gdGFyZ2V0LmRlbGV0ZShrZXkpKVxuICAgIHNlYXJjaFBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB0YXJnZXQuYXBwZW5kKGtleSwgdmFsdWUpKVxuICB9KVxuICByZXR1cm4gdGFyZ2V0XG59XG4iXSwibmFtZXMiOlsiYXNzaWduIiwic2VhcmNoUGFyYW1zVG9VcmxRdWVyeSIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJzZWFyY2hQYXJhbXMiLCJxdWVyeSIsImZvckVhY2giLCJ2YWx1ZSIsImtleSIsIkFycmF5IiwiaXNBcnJheSIsInB1c2giLCJzdHJpbmdpZnlVcmxRdWVyeVBhcmFtIiwicGFyYW0iLCJpc05hTiIsIlN0cmluZyIsInVybFF1ZXJ5IiwicmVzdWx0IiwiVVJMU2VhcmNoUGFyYW1zIiwiT2JqZWN0IiwiZW50cmllcyIsIml0ZW0iLCJhcHBlbmQiLCJzZXQiLCJ0YXJnZXQiLCJzZWFyY2hQYXJhbXNMaXN0IiwiZnJvbSIsImtleXMiLCJkZWxldGUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/querystring.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js ***! + \******************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removePathPrefix\", ({\n enumerable: true,\n get: function() {\n return removePathPrefix;\n }\n}));\nconst _pathhasprefix = __webpack_require__(/*! ./path-has-prefix */ \"./node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js\");\nfunction removePathPrefix(path, prefix) {\n // If the path doesn't start with the prefix we can return it as is. This\n // protects us from situations where the prefix is a substring of the path\n // prefix such as:\n //\n // For prefix: /blog\n //\n // /blog -> true\n // /blog/ -> true\n // /blog/1 -> true\n // /blogging -> false\n // /blogging/ -> false\n // /blogging/1 -> false\n if (!(0, _pathhasprefix.pathHasPrefix)(path, prefix)) {\n return path;\n }\n // Remove the prefix from the path via slicing.\n const withoutPrefix = path.slice(prefix.length);\n // If the path without the prefix starts with a `/` we can return it as is.\n if (withoutPrefix.startsWith('/')) {\n return withoutPrefix;\n }\n // If the path without the prefix doesn't start with a `/` we need to add it\n // back to the path to make sure it's a valid path.\n return \"/\" + withoutPrefix;\n} //# sourceMappingURL=remove-path-prefix.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS1wYXRoLXByZWZpeC5qcyIsIm1hcHBpbmdzIjoiOzs7O29EQVVnQkE7OztlQUFBQTs7OzJDQVZjO0FBVXZCLFNBQVNBLGlCQUFpQkMsSUFBWSxFQUFFQyxNQUFjO0lBQzNELHlFQUF5RTtJQUN6RSwwRUFBMEU7SUFDMUUsa0JBQWtCO0lBQ2xCLEVBQUU7SUFDRixvQkFBb0I7SUFDcEIsRUFBRTtJQUNGLGtCQUFrQjtJQUNsQixtQkFBbUI7SUFDbkIsb0JBQW9CO0lBQ3BCLHVCQUF1QjtJQUN2Qix3QkFBd0I7SUFDeEIseUJBQXlCO0lBQ3pCLElBQUksQ0FBQ0MsQ0FBQUEsR0FBQUEsZUFBQUEsYUFBQUEsRUFBY0YsTUFBTUMsU0FBUztRQUNoQyxPQUFPRDtJQUNUO0lBRUEsK0NBQStDO0lBQy9DLE1BQU1HLGdCQUFnQkgsS0FBS0ksS0FBSyxDQUFDSCxPQUFPSSxNQUFNO0lBRTlDLDJFQUEyRTtJQUMzRSxJQUFJRixjQUFjRyxVQUFVLENBQUMsTUFBTTtRQUNqQyxPQUFPSDtJQUNUO0lBRUEsNEVBQTRFO0lBQzVFLG1EQUFtRDtJQUNuRCxPQUFRLE1BQUdBO0FBQ2IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2Uvc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS1wYXRoLXByZWZpeC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXRoSGFzUHJlZml4IH0gZnJvbSAnLi9wYXRoLWhhcy1wcmVmaXgnXG5cbi8qKlxuICogR2l2ZW4gYSBwYXRoIGFuZCBhIHByZWZpeCBpdCB3aWxsIHJlbW92ZSB0aGUgcHJlZml4IHdoZW4gaXQgZXhpc3RzIGluIHRoZVxuICogZ2l2ZW4gcGF0aC4gSXQgZW5zdXJlcyBpdCBtYXRjaGVzIGV4YWN0bHkgd2l0aG91dCBjb250YWluaW5nIGV4dHJhIGNoYXJzXG4gKiBhbmQgaWYgdGhlIHByZWZpeCBpcyBub3QgdGhlcmUgaXQgd2lsbCBiZSBub29wLlxuICpcbiAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIHRvIHJlbW92ZSB0aGUgcHJlZml4IGZyb20uXG4gKiBAcGFyYW0gcHJlZml4IFRoZSBwcmVmaXggdG8gYmUgcmVtb3ZlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVBhdGhQcmVmaXgocGF0aDogc3RyaW5nLCBwcmVmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIElmIHRoZSBwYXRoIGRvZXNuJ3Qgc3RhcnQgd2l0aCB0aGUgcHJlZml4IHdlIGNhbiByZXR1cm4gaXQgYXMgaXMuIFRoaXNcbiAgLy8gcHJvdGVjdHMgdXMgZnJvbSBzaXR1YXRpb25zIHdoZXJlIHRoZSBwcmVmaXggaXMgYSBzdWJzdHJpbmcgb2YgdGhlIHBhdGhcbiAgLy8gcHJlZml4IHN1Y2ggYXM6XG4gIC8vXG4gIC8vIEZvciBwcmVmaXg6IC9ibG9nXG4gIC8vXG4gIC8vICAgL2Jsb2cgLT4gdHJ1ZVxuICAvLyAgIC9ibG9nLyAtPiB0cnVlXG4gIC8vICAgL2Jsb2cvMSAtPiB0cnVlXG4gIC8vICAgL2Jsb2dnaW5nIC0+IGZhbHNlXG4gIC8vICAgL2Jsb2dnaW5nLyAtPiBmYWxzZVxuICAvLyAgIC9ibG9nZ2luZy8xIC0+IGZhbHNlXG4gIGlmICghcGF0aEhhc1ByZWZpeChwYXRoLCBwcmVmaXgpKSB7XG4gICAgcmV0dXJuIHBhdGhcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgcHJlZml4IGZyb20gdGhlIHBhdGggdmlhIHNsaWNpbmcuXG4gIGNvbnN0IHdpdGhvdXRQcmVmaXggPSBwYXRoLnNsaWNlKHByZWZpeC5sZW5ndGgpXG5cbiAgLy8gSWYgdGhlIHBhdGggd2l0aG91dCB0aGUgcHJlZml4IHN0YXJ0cyB3aXRoIGEgYC9gIHdlIGNhbiByZXR1cm4gaXQgYXMgaXMuXG4gIGlmICh3aXRob3V0UHJlZml4LnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHJldHVybiB3aXRob3V0UHJlZml4XG4gIH1cblxuICAvLyBJZiB0aGUgcGF0aCB3aXRob3V0IHRoZSBwcmVmaXggZG9lc24ndCBzdGFydCB3aXRoIGEgYC9gIHdlIG5lZWQgdG8gYWRkIGl0XG4gIC8vIGJhY2sgdG8gdGhlIHBhdGggdG8gbWFrZSBzdXJlIGl0J3MgYSB2YWxpZCBwYXRoLlxuICByZXR1cm4gYC8ke3dpdGhvdXRQcmVmaXh9YFxufVxuIl0sIm5hbWVzIjpbInJlbW92ZVBhdGhQcmVmaXgiLCJwYXRoIiwicHJlZml4IiwicGF0aEhhc1ByZWZpeCIsIndpdGhvdXRQcmVmaXgiLCJzbGljZSIsImxlbmd0aCIsInN0YXJ0c1dpdGgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js ***! + \*********************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"removeTrailingSlash\", ({\n enumerable: true,\n get: function() {\n return removeTrailingSlash;\n }\n}));\nfunction removeTrailingSlash(route) {\n return route.replace(/\\/$/, '') || '/';\n} //# sourceMappingURL=remove-trailing-slash.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JlbW92ZS10cmFpbGluZy1zbGFzaC5qcyIsIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0NBTUM7Ozs7dURBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLG9CQUFvQkMsS0FBYTtJQUMvQyxPQUFPQSxNQUFNQyxPQUFPLENBQUMsT0FBTyxPQUFPO0FBQ3JDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yZW1vdmUtdHJhaWxpbmctc2xhc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZW1vdmVzIHRoZSB0cmFpbGluZyBzbGFzaCBmb3IgYSBnaXZlbiByb3V0ZSBvciBwYWdlIHBhdGguIFByZXNlcnZlcyB0aGVcbiAqIHJvb3QgcGFnZS4gRXhhbXBsZXM6XG4gKiAgIC0gYC9mb28vYmFyL2AgLT4gYC9mb28vYmFyYFxuICogICAtIGAvZm9vL2JhcmAgLT4gYC9mb28vYmFyYFxuICogICAtIGAvYCAtPiBgL2BcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVRyYWlsaW5nU2xhc2gocm91dGU6IHN0cmluZykge1xuICByZXR1cm4gcm91dGUucmVwbGFjZSgvXFwvJC8sICcnKSB8fCAnLydcbn1cbiJdLCJuYW1lcyI6WyJyZW1vdmVUcmFpbGluZ1NsYXNoIiwicm91dGUiLCJyZXBsYWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/route-matcher.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***! + \*************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRouteMatcher\", ({\n enumerable: true,\n get: function() {\n return getRouteMatcher;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nfunction getRouteMatcher(param) {\n let { re, groups } = param;\n return (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) {\n return false;\n }\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch (_) {\n throw new _utils.DecodeError('failed to decode param');\n }\n };\n const params = {};\n Object.keys(groups).forEach((slugName)=>{\n const g = groups[slugName];\n const m = routeMatch[g.pos];\n if (m !== undefined) {\n params[slugName] = ~m.indexOf('/') ? m.split('/').map((entry)=>decode(entry)) : g.repeat ? [\n decode(m)\n ] : decode(m);\n }\n });\n return params;\n };\n} //# sourceMappingURL=route-matcher.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLW1hdGNoZXIuanMiLCJtYXBwaW5ncyI6Ijs7OzttREFRZ0JBOzs7ZUFBQUE7OzttQ0FQWTtBQU9yQixTQUFTQSxnQkFBZ0IsS0FBMEI7SUFBMUIsTUFBRUMsRUFBRSxFQUFFQyxNQUFNLEVBQWMsR0FBMUI7SUFDOUIsT0FBTyxDQUFDQztRQUNOLE1BQU1DLGFBQWFILEdBQUdJLElBQUksQ0FBQ0Y7UUFDM0IsSUFBSSxDQUFDQyxZQUFZO1lBQ2YsT0FBTztRQUNUO1FBRUEsTUFBTUUsU0FBUyxDQUFDQztZQUNkLElBQUk7Z0JBQ0YsT0FBT0MsbUJBQW1CRDtZQUM1QixFQUFFLE9BQU9FLEdBQUc7Z0JBQ1YsTUFBTSxJQUFJQyxPQUFBQSxXQUFXLENBQUM7WUFDeEI7UUFDRjtRQUNBLE1BQU1DLFNBQXFELENBQUM7UUFFNURDLE9BQU9DLElBQUksQ0FBQ1gsUUFBUVksT0FBTyxDQUFDLENBQUNDO1lBQzNCLE1BQU1DLElBQUlkLE1BQU0sQ0FBQ2EsU0FBUztZQUMxQixNQUFNRSxJQUFJYixVQUFVLENBQUNZLEVBQUVFLEdBQUcsQ0FBQztZQUMzQixJQUFJRCxNQUFNRSxXQUFXO2dCQUNuQlIsTUFBTSxDQUFDSSxTQUFTLEdBQUcsQ0FBQ0UsRUFBRUcsT0FBTyxDQUFDLE9BQzFCSCxFQUFFSSxLQUFLLENBQUMsS0FBS0MsR0FBRyxDQUFDLENBQUNDLFFBQVVqQixPQUFPaUIsVUFDbkNQLEVBQUVRLE1BQU0sR0FDTjtvQkFBQ2xCLE9BQU9XO2lCQUFHLEdBQ1hYLE9BQU9XO1lBQ2Y7UUFDRjtRQUNBLE9BQU9OO0lBQ1Q7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFJvdXRlUmVnZXggfSBmcm9tICcuL3JvdXRlLXJlZ2V4J1xuaW1wb3J0IHsgRGVjb2RlRXJyb3IgfSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB0eXBlIHsgUGFyYW1zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlTWF0Y2hGbiB7XG4gIChwYXRobmFtZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGZhbHNlIHwgUGFyYW1zXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb3V0ZU1hdGNoZXIoeyByZSwgZ3JvdXBzIH06IFJvdXRlUmVnZXgpOiBSb3V0ZU1hdGNoRm4ge1xuICByZXR1cm4gKHBhdGhuYW1lOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB7XG4gICAgY29uc3Qgcm91dGVNYXRjaCA9IHJlLmV4ZWMocGF0aG5hbWUhKVxuICAgIGlmICghcm91dGVNYXRjaCkge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgY29uc3QgZGVjb2RlID0gKHBhcmFtOiBzdHJpbmcpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBkZWNvZGVVUklDb21wb25lbnQocGFyYW0pXG4gICAgICB9IGNhdGNoIChfKSB7XG4gICAgICAgIHRocm93IG5ldyBEZWNvZGVFcnJvcignZmFpbGVkIHRvIGRlY29kZSBwYXJhbScpXG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtczogeyBbcGFyYW1OYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9ID0ge31cblxuICAgIE9iamVjdC5rZXlzKGdyb3VwcykuZm9yRWFjaCgoc2x1Z05hbWU6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZyA9IGdyb3Vwc1tzbHVnTmFtZV1cbiAgICAgIGNvbnN0IG0gPSByb3V0ZU1hdGNoW2cucG9zXVxuICAgICAgaWYgKG0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwYXJhbXNbc2x1Z05hbWVdID0gfm0uaW5kZXhPZignLycpXG4gICAgICAgICAgPyBtLnNwbGl0KCcvJykubWFwKChlbnRyeSkgPT4gZGVjb2RlKGVudHJ5KSlcbiAgICAgICAgICA6IGcucmVwZWF0XG4gICAgICAgICAgICA/IFtkZWNvZGUobSldXG4gICAgICAgICAgICA6IGRlY29kZShtKVxuICAgICAgfVxuICAgIH0pXG4gICAgcmV0dXJuIHBhcmFtc1xuICB9XG59XG4iXSwibmFtZXMiOlsiZ2V0Um91dGVNYXRjaGVyIiwicmUiLCJncm91cHMiLCJwYXRobmFtZSIsInJvdXRlTWF0Y2giLCJleGVjIiwiZGVjb2RlIiwicGFyYW0iLCJkZWNvZGVVUklDb21wb25lbnQiLCJfIiwiRGVjb2RlRXJyb3IiLCJwYXJhbXMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNsdWdOYW1lIiwiZyIsIm0iLCJwb3MiLCJ1bmRlZmluZWQiLCJpbmRleE9mIiwic3BsaXQiLCJtYXAiLCJlbnRyeSIsInJlcGVhdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/route-regex.js": +/*!***********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***! + \***********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getNamedMiddlewareRegex: function() {\n return getNamedMiddlewareRegex;\n },\n getNamedRouteRegex: function() {\n return getNamedRouteRegex;\n },\n getRouteRegex: function() {\n return getRouteRegex;\n },\n parseParameter: function() {\n return parseParameter;\n }\n});\nconst _constants = __webpack_require__(/*! ../../../../lib/constants */ \"./node_modules/next/dist/lib/constants.js\");\nconst _interceptionroutes = __webpack_require__(/*! ../../../../server/lib/interception-routes */ \"./node_modules/next/dist/server/lib/interception-routes.js\");\nconst _escaperegexp = __webpack_require__(/*! ../../escape-regexp */ \"./node_modules/next/dist/shared/lib/escape-regexp.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\n/**\n * Regular expression pattern used to match route parameters.\n * Matches both single parameters and parameter groups.\n * Examples:\n * - `[[...slug]]` matches parameter group with key 'slug', repeat: true, optional: true\n * - `[...slug]` matches parameter group with key 'slug', repeat: true, optional: false\n * - `[[foo]]` matches parameter with key 'foo', repeat: false, optional: true\n * - `[bar]` matches parameter with key 'bar', repeat: false, optional: false\n */ const PARAMETER_PATTERN = /\\[((?:\\[.*\\])|.+)\\]/;\nfunction parseParameter(param) {\n const match = param.match(PARAMETER_PATTERN);\n if (!match) {\n return parseMatchedParameter(param);\n }\n return parseMatchedParameter(match[1]);\n}\n/**\n * Parses a matched parameter from the PARAMETER_PATTERN regex to a data structure that can be used\n * to generate the parametrized route.\n * Examples:\n * - `[...slug]` -> `{ key: 'slug', repeat: true, optional: true }`\n * - `...slug` -> `{ key: 'slug', repeat: true, optional: false }`\n * - `[foo]` -> `{ key: 'foo', repeat: false, optional: true }`\n * - `bar` -> `{ key: 'bar', repeat: false, optional: false }`\n * @param param - The matched parameter to parse.\n * @returns The parsed parameter as a data structure.\n */ function parseMatchedParameter(param) {\n const optional = param.startsWith('[') && param.endsWith(']');\n if (optional) {\n param = param.slice(1, -1);\n }\n const repeat = param.startsWith('...');\n if (repeat) {\n param = param.slice(3);\n }\n return {\n key: param,\n repeat,\n optional\n };\n}\nfunction getParametrizedRoute(route) {\n const segments = (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/');\n const groups = {};\n let groupIndex = 1;\n return {\n parameterizedRoute: segments.map((segment)=>{\n const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n const paramMatches = segment.match(PARAMETER_PATTERN) // Check for parameters\n ;\n if (markerMatch && paramMatches) {\n const { key, optional, repeat } = parseMatchedParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + \"([^/]+?)\";\n } else if (paramMatches) {\n const { key, repeat, optional } = parseMatchedParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)';\n } else {\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(segment);\n }\n }).join(''),\n groups\n };\n}\nfunction getRouteRegex(normalizedRoute) {\n const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute);\n return {\n re: new RegExp(\"^\" + parameterizedRoute + \"(?:/)?$\"),\n groups: groups\n };\n}\n/**\n * Builds a function to generate a minimal routeKey using only a-z and minimal\n * number of characters.\n */ function buildGetSafeRouteKey() {\n let i = 0;\n return ()=>{\n let routeKey = '';\n let j = ++i;\n while(j > 0){\n routeKey += String.fromCharCode(97 + (j - 1) % 26);\n j = Math.floor((j - 1) / 26);\n }\n return routeKey;\n };\n}\nfunction getSafeKeyFromSegment(param) {\n let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix } = param;\n const { key, optional, repeat } = parseMatchedParameter(segment);\n // replace any non-word characters since they can break\n // the named regex\n let cleanedKey = key.replace(/\\W/g, '');\n if (keyPrefix) {\n cleanedKey = \"\" + keyPrefix + cleanedKey;\n }\n let invalidKey = false;\n // check if the key is still invalid and fallback to using a known\n // safe key\n if (cleanedKey.length === 0 || cleanedKey.length > 30) {\n invalidKey = true;\n }\n if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) {\n invalidKey = true;\n }\n if (invalidKey) {\n cleanedKey = getSafeRouteKey();\n }\n if (keyPrefix) {\n routeKeys[cleanedKey] = \"\" + keyPrefix + key;\n } else {\n routeKeys[cleanedKey] = key;\n }\n // if the segment has an interception marker, make sure that's part of the regex pattern\n // this is to ensure that the route with the interception marker doesn't incorrectly match\n // the non-intercepted route (ie /app/(.)[username] should not match /app/[username])\n const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : '';\n return repeat ? optional ? \"(?:/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">.+?))?\" : \"/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">.+?)\" : \"/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">[^/]+?)\";\n}\nfunction getNamedParametrizedRoute(route, prefixRouteKeys) {\n const segments = (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/');\n const getSafeRouteKey = buildGetSafeRouteKey();\n const routeKeys = {};\n return {\n namedParameterizedRoute: segments.map((segment)=>{\n const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m));\n const paramMatches = segment.match(/\\[((?:\\[.*\\])|.+)\\]/) // Check for parameters\n ;\n if (hasInterceptionMarker && paramMatches) {\n const [usedMarker] = segment.split(paramMatches[0]);\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n interceptionMarker: usedMarker,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined\n });\n } else if (paramMatches) {\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined\n });\n } else {\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(segment);\n }\n }).join(''),\n routeKeys\n };\n}\nfunction getNamedRouteRegex(normalizedRoute, prefixRouteKey) {\n const result = getNamedParametrizedRoute(normalizedRoute, prefixRouteKey);\n return {\n ...getRouteRegex(normalizedRoute),\n namedRegex: \"^\" + result.namedParameterizedRoute + \"(?:/)?$\",\n routeKeys: result.routeKeys\n };\n}\nfunction getNamedMiddlewareRegex(normalizedRoute, options) {\n const { parameterizedRoute } = getParametrizedRoute(normalizedRoute);\n const { catchAll = true } = options;\n if (parameterizedRoute === '/') {\n let catchAllRegex = catchAll ? '.*' : '';\n return {\n namedRegex: \"^/\" + catchAllRegex + \"$\"\n };\n }\n const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false);\n let catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : '';\n return {\n namedRegex: \"^\" + namedParameterizedRoute + catchAllGroupedRegex + \"$\"\n };\n} //# sourceMappingURL=route-regex.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3JvdXRlLXJlZ2V4LmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQW9RZ0JBLHVCQUF1QjtlQUF2QkE7O0lBaEJBQyxrQkFBa0I7ZUFBbEJBOztJQW5JQUMsYUFBYTtlQUFiQTs7SUF2RUFDLGNBQWM7ZUFBZEE7Ozt1Q0F2Q1Q7Z0RBQ29DOzBDQUNSO2lEQUNDO0FBYXBDOzs7Ozs7OztDQVFDLEdBQ0QsTUFBTUMsb0JBQW9CO0FBY25CLFNBQVNELGVBQWVFLEtBQWE7SUFDMUMsTUFBTUMsUUFBUUQsTUFBTUMsS0FBSyxDQUFDRjtJQUUxQixJQUFJLENBQUNFLE9BQU87UUFDVixPQUFPQyxzQkFBc0JGO0lBQy9CO0lBRUEsT0FBT0Usc0JBQXNCRCxLQUFLLENBQUMsRUFBRTtBQUN2QztBQUVBOzs7Ozs7Ozs7O0NBVUMsR0FDRCxTQUFTQyxzQkFBc0JGLEtBQWE7SUFDMUMsTUFBTUcsV0FBV0gsTUFBTUksVUFBVSxDQUFDLFFBQVFKLE1BQU1LLFFBQVEsQ0FBQztJQUN6RCxJQUFJRixVQUFVO1FBQ1pILFFBQVFBLE1BQU1NLEtBQUssQ0FBQyxHQUFHLENBQUM7SUFDMUI7SUFDQSxNQUFNQyxTQUFTUCxNQUFNSSxVQUFVLENBQUM7SUFDaEMsSUFBSUcsUUFBUTtRQUNWUCxRQUFRQSxNQUFNTSxLQUFLLENBQUM7SUFDdEI7SUFDQSxPQUFPO1FBQUVFLEtBQUtSO1FBQU9PO1FBQVFKO0lBQVM7QUFDeEM7QUFFQSxTQUFTTSxxQkFBcUJDLEtBQWE7SUFDekMsTUFBTUMsV0FBV0MsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFBQSxFQUFvQkYsT0FBT0osS0FBSyxDQUFDLEdBQUdPLEtBQUssQ0FBQztJQUMzRCxNQUFNQyxTQUF5QyxDQUFDO0lBQ2hELElBQUlDLGFBQWE7SUFDakIsT0FBTztRQUNMQyxvQkFBb0JMLFNBQ2pCTSxHQUFHLENBQUMsQ0FBQ0M7WUFDSixNQUFNQyxjQUFjQyxvQkFBQUEsMEJBQTBCLENBQUNDLElBQUksQ0FBQyxDQUFDQyxJQUNuREosUUFBUWQsVUFBVSxDQUFDa0I7WUFFckIsTUFBTUMsZUFBZUwsUUFBUWpCLEtBQUssQ0FBQ0YsbUJBQW1CLHVCQUF1Qjs7WUFFN0UsSUFBSW9CLGVBQWVJLGNBQWM7Z0JBQy9CLE1BQU0sRUFBRWYsR0FBRyxFQUFFTCxRQUFRLEVBQUVJLE1BQU0sRUFBRSxHQUFHTCxzQkFDaENxQixZQUFZLENBQUMsRUFBRTtnQkFFakJULE1BQU0sQ0FBQ04sSUFBSSxHQUFHO29CQUFFZ0IsS0FBS1Q7b0JBQWNSO29CQUFRSjtnQkFBUztnQkFDcEQsT0FBUSxNQUFHc0IsQ0FBQUEsR0FBQUEsY0FBQUEsa0JBQUFBLEVBQW1CTixlQUFhO1lBQzdDLE9BQU8sSUFBSUksY0FBYztnQkFDdkIsTUFBTSxFQUFFZixHQUFHLEVBQUVELE1BQU0sRUFBRUosUUFBUSxFQUFFLEdBQUdELHNCQUNoQ3FCLFlBQVksQ0FBQyxFQUFFO2dCQUVqQlQsTUFBTSxDQUFDTixJQUFJLEdBQUc7b0JBQUVnQixLQUFLVDtvQkFBY1I7b0JBQVFKO2dCQUFTO2dCQUNwRCxPQUFPSSxTQUFVSixXQUFXLGdCQUFnQixXQUFZO1lBQzFELE9BQU87Z0JBQ0wsT0FBUSxNQUFHc0IsQ0FBQUEsR0FBQUEsY0FBQUEsa0JBQUFBLEVBQW1CUDtZQUNoQztRQUNGLEdBQ0NRLElBQUksQ0FBQztRQUNSWjtJQUNGO0FBQ0Y7QUFPTyxTQUFTakIsY0FBYzhCLGVBQXVCO0lBQ25ELE1BQU0sRUFBRVgsa0JBQWtCLEVBQUVGLE1BQU0sRUFBRSxHQUFHTCxxQkFBcUJrQjtJQUM1RCxPQUFPO1FBQ0xDLElBQUksSUFBSUMsT0FBUSxNQUFHYixxQkFBbUI7UUFDdENGLFFBQVFBO0lBQ1Y7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNnQjtJQUNQLElBQUlDLElBQUk7SUFFUixPQUFPO1FBQ0wsSUFBSUMsV0FBVztRQUNmLElBQUlDLElBQUksRUFBRUY7UUFDVixNQUFPRSxJQUFJLEVBQUc7WUFDWkQsWUFBWUUsT0FBT0MsWUFBWSxDQUFDLEtBQU9GLENBQUFBLEtBQUksSUFBSztZQUNoREEsSUFBSUcsS0FBS0MsS0FBSyxDQUFFSixDQUFBQSxLQUFJLElBQUs7UUFDM0I7UUFDQSxPQUFPRDtJQUNUO0FBQ0Y7QUFFQSxTQUFTTSxzQkFBc0IsS0FZOUI7SUFaOEIsTUFDN0JDLGtCQUFrQixFQUNsQkMsZUFBZSxFQUNmdEIsT0FBTyxFQUNQdUIsU0FBUyxFQUNUQyxTQUFTLEVBT1YsR0FaOEI7SUFhN0IsTUFBTSxFQUFFbEMsR0FBRyxFQUFFTCxRQUFRLEVBQUVJLE1BQU0sRUFBRSxHQUFHTCxzQkFBc0JnQjtJQUV4RCx1REFBdUQ7SUFDdkQsa0JBQWtCO0lBQ2xCLElBQUl5QixhQUFhbkMsSUFBSW9DLE9BQU8sQ0FBQyxPQUFPO0lBRXBDLElBQUlGLFdBQVc7UUFDYkMsYUFBYyxLQUFFRCxZQUFZQztJQUM5QjtJQUNBLElBQUlFLGFBQWE7SUFFakIsa0VBQWtFO0lBQ2xFLFdBQVc7SUFDWCxJQUFJRixXQUFXRyxNQUFNLEtBQUssS0FBS0gsV0FBV0csTUFBTSxHQUFHLElBQUk7UUFDckRELGFBQWE7SUFDZjtJQUNBLElBQUksQ0FBQ0UsTUFBTUMsU0FBU0wsV0FBV3JDLEtBQUssQ0FBQyxHQUFHLE1BQU07UUFDNUN1QyxhQUFhO0lBQ2Y7SUFFQSxJQUFJQSxZQUFZO1FBQ2RGLGFBQWFIO0lBQ2Y7SUFFQSxJQUFJRSxXQUFXO1FBQ2JELFNBQVMsQ0FBQ0UsV0FBVyxHQUFJLEtBQUVELFlBQVlsQztJQUN6QyxPQUFPO1FBQ0xpQyxTQUFTLENBQUNFLFdBQVcsR0FBR25DO0lBQzFCO0lBRUEsd0ZBQXdGO0lBQ3hGLDBGQUEwRjtJQUMxRixxRkFBcUY7SUFDckYsTUFBTXlDLHFCQUFxQlYscUJBQ3ZCZCxDQUFBQSxHQUFBQSxjQUFBQSxrQkFBQUEsRUFBbUJjLHNCQUNuQjtJQUVKLE9BQU9oQyxTQUNISixXQUNHLFNBQU04QyxxQkFBbUIsUUFBS04sYUFBVyxZQUN6QyxNQUFHTSxxQkFBbUIsUUFBS04sYUFBVyxVQUN4QyxNQUFHTSxxQkFBbUIsUUFBS04sYUFBVztBQUM3QztBQUVBLFNBQVNPLDBCQUEwQnhDLEtBQWEsRUFBRXlDLGVBQXdCO0lBQ3hFLE1BQU14QyxXQUFXQyxDQUFBQSxHQUFBQSxxQkFBQUEsbUJBQUFBLEVBQW9CRixPQUFPSixLQUFLLENBQUMsR0FBR08sS0FBSyxDQUFDO0lBQzNELE1BQU0yQixrQkFBa0JWO0lBQ3hCLE1BQU1XLFlBQXlDLENBQUM7SUFDaEQsT0FBTztRQUNMVyx5QkFBeUJ6QyxTQUN0Qk0sR0FBRyxDQUFDLENBQUNDO1lBQ0osTUFBTW1DLHdCQUF3QmpDLG9CQUFBQSwwQkFBMEIsQ0FBQ2tDLElBQUksQ0FBQyxDQUFDaEMsSUFDN0RKLFFBQVFkLFVBQVUsQ0FBQ2tCO1lBRXJCLE1BQU1DLGVBQWVMLFFBQVFqQixLQUFLLENBQUMsdUJBQXVCLHVCQUF1Qjs7WUFFakYsSUFBSW9ELHlCQUF5QjlCLGNBQWM7Z0JBQ3pDLE1BQU0sQ0FBQ2dDLFdBQVcsR0FBR3JDLFFBQVFMLEtBQUssQ0FBQ1UsWUFBWSxDQUFDLEVBQUU7Z0JBRWxELE9BQU9lLHNCQUFzQjtvQkFDM0JFO29CQUNBRCxvQkFBb0JnQjtvQkFDcEJyQyxTQUFTSyxZQUFZLENBQUMsRUFBRTtvQkFDeEJrQjtvQkFDQUMsV0FBV1Msa0JBQ1BLLFdBQUFBLCtCQUErQixHQUMvQkM7Z0JBQ047WUFDRixPQUFPLElBQUlsQyxjQUFjO2dCQUN2QixPQUFPZSxzQkFBc0I7b0JBQzNCRTtvQkFDQXRCLFNBQVNLLFlBQVksQ0FBQyxFQUFFO29CQUN4QmtCO29CQUNBQyxXQUFXUyxrQkFBa0JPLFdBQUFBLHVCQUF1QixHQUFHRDtnQkFDekQ7WUFDRixPQUFPO2dCQUNMLE9BQVEsTUFBR2hDLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFBQSxFQUFtQlA7WUFDaEM7UUFDRixHQUNDUSxJQUFJLENBQUM7UUFDUmU7SUFDRjtBQUNGO0FBVU8sU0FBUzdDLG1CQUNkK0IsZUFBdUIsRUFDdkJnQyxjQUF1QjtJQUV2QixNQUFNQyxTQUFTViwwQkFBMEJ2QixpQkFBaUJnQztJQUMxRCxPQUFPO1FBQ0wsR0FBRzlELGNBQWM4QixnQkFBZ0I7UUFDakNrQyxZQUFhLE1BQUdELE9BQU9SLHVCQUF1QixHQUFDO1FBQy9DWCxXQUFXbUIsT0FBT25CLFNBQVM7SUFDN0I7QUFDRjtBQU1PLFNBQVM5Qyx3QkFDZGdDLGVBQXVCLEVBQ3ZCbUMsT0FFQztJQUVELE1BQU0sRUFBRTlDLGtCQUFrQixFQUFFLEdBQUdQLHFCQUFxQmtCO0lBQ3BELE1BQU0sRUFBRW9DLFdBQVcsSUFBSSxFQUFFLEdBQUdEO0lBQzVCLElBQUk5Qyx1QkFBdUIsS0FBSztRQUM5QixJQUFJZ0QsZ0JBQWdCRCxXQUFXLE9BQU87UUFDdEMsT0FBTztZQUNMRixZQUFhLE9BQUlHLGdCQUFjO1FBQ2pDO0lBQ0Y7SUFFQSxNQUFNLEVBQUVaLHVCQUF1QixFQUFFLEdBQUdGLDBCQUNsQ3ZCLGlCQUNBO0lBRUYsSUFBSXNDLHVCQUF1QkYsV0FBVyxlQUFlO0lBQ3JELE9BQU87UUFDTEYsWUFBYSxNQUFHVCwwQkFBMEJhLHVCQUFxQjtJQUNqRTtBQUNGIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1yZWdleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBORVhUX0lOVEVSQ0VQVElPTl9NQVJLRVJfUFJFRklYLFxuICBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vbGliL2NvbnN0YW50cydcbmltcG9ydCB7IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmVyL2xpYi9pbnRlcmNlcHRpb24tcm91dGVzJ1xuaW1wb3J0IHsgZXNjYXBlU3RyaW5nUmVnZXhwIH0gZnJvbSAnLi4vLi4vZXNjYXBlLXJlZ2V4cCdcbmltcG9ydCB7IHJlbW92ZVRyYWlsaW5nU2xhc2ggfSBmcm9tICcuL3JlbW92ZS10cmFpbGluZy1zbGFzaCdcblxuZXhwb3J0IGludGVyZmFjZSBHcm91cCB7XG4gIHBvczogbnVtYmVyXG4gIHJlcGVhdDogYm9vbGVhblxuICBvcHRpb25hbDogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlUmVnZXgge1xuICBncm91cHM6IHsgW2dyb3VwTmFtZTogc3RyaW5nXTogR3JvdXAgfVxuICByZTogUmVnRXhwXG59XG5cbi8qKlxuICogUmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gdXNlZCB0byBtYXRjaCByb3V0ZSBwYXJhbWV0ZXJzLlxuICogTWF0Y2hlcyBib3RoIHNpbmdsZSBwYXJhbWV0ZXJzIGFuZCBwYXJhbWV0ZXIgZ3JvdXBzLlxuICogRXhhbXBsZXM6XG4gKiAgIC0gYFtbLi4uc2x1Z11dYCBtYXRjaGVzIHBhcmFtZXRlciBncm91cCB3aXRoIGtleSAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IHRydWVcbiAqICAgLSBgWy4uLnNsdWddYCBtYXRjaGVzIHBhcmFtZXRlciBncm91cCB3aXRoIGtleSAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlXG4gKiAgIC0gYFtbZm9vXV1gIG1hdGNoZXMgcGFyYW1ldGVyIHdpdGgga2V5ICdmb28nLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZVxuICogICAtIGBbYmFyXWAgbWF0Y2hlcyBwYXJhbWV0ZXIgd2l0aCBrZXkgJ2JhcicsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZVxuICovXG5jb25zdCBQQVJBTUVURVJfUEFUVEVSTiA9IC9cXFsoKD86XFxbLipcXF0pfC4rKVxcXS9cblxuLyoqXG4gKiBQYXJzZXMgYSBnaXZlbiBwYXJhbWV0ZXIgZnJvbSBhIHJvdXRlIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBjYW4gYmUgdXNlZFxuICogdG8gZ2VuZXJhdGUgdGhlIHBhcmFtZXRyaXplZCByb3V0ZS5cbiAqIEV4YW1wbGVzOlxuICogICAtIGBbWy4uLnNsdWddXWAgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfWBcbiAqICAgLSBgWy4uLnNsdWddYCAtPiBgeyBrZXk6ICdzbHVnJywgcmVwZWF0OiB0cnVlLCBvcHRpb25hbDogZmFsc2UgfWBcbiAqICAgLSBgW1tmb29dXWAgLT4gYHsga2V5OiAnZm9vJywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IHRydWUgfWBcbiAqICAgLSBgW2Jhcl1gIC0+IGB7IGtleTogJ2JhcicsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICogICAtIGBmaXp6YCAtPiBgeyBrZXk6ICdmaXp6JywgcmVwZWF0OiBmYWxzZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiBAcGFyYW0gcGFyYW0gLSBUaGUgcGFyYW1ldGVyIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBwYXJhbWV0ZXIgYXMgYSBkYXRhIHN0cnVjdHVyZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlUGFyYW1ldGVyKHBhcmFtOiBzdHJpbmcpIHtcbiAgY29uc3QgbWF0Y2ggPSBwYXJhbS5tYXRjaChQQVJBTUVURVJfUEFUVEVSTilcblxuICBpZiAoIW1hdGNoKSB7XG4gICAgcmV0dXJuIHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihwYXJhbSlcbiAgfVxuXG4gIHJldHVybiBwYXJzZU1hdGNoZWRQYXJhbWV0ZXIobWF0Y2hbMV0pXG59XG5cbi8qKlxuICogUGFyc2VzIGEgbWF0Y2hlZCBwYXJhbWV0ZXIgZnJvbSB0aGUgUEFSQU1FVEVSX1BBVFRFUk4gcmVnZXggdG8gYSBkYXRhIHN0cnVjdHVyZSB0aGF0IGNhbiBiZSB1c2VkXG4gKiB0byBnZW5lcmF0ZSB0aGUgcGFyYW1ldHJpemVkIHJvdXRlLlxuICogRXhhbXBsZXM6XG4gKiAgIC0gYFsuLi5zbHVnXWAgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfWBcbiAqICAgLSBgLi4uc2x1Z2AgLT4gYHsga2V5OiAnc2x1ZycsIHJlcGVhdDogdHJ1ZSwgb3B0aW9uYWw6IGZhbHNlIH1gXG4gKiAgIC0gYFtmb29dYCAtPiBgeyBrZXk6ICdmb28nLCByZXBlYXQ6IGZhbHNlLCBvcHRpb25hbDogdHJ1ZSB9YFxuICogICAtIGBiYXJgIC0+IGB7IGtleTogJ2JhcicsIHJlcGVhdDogZmFsc2UsIG9wdGlvbmFsOiBmYWxzZSB9YFxuICogQHBhcmFtIHBhcmFtIC0gVGhlIG1hdGNoZWQgcGFyYW1ldGVyIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIHBhcnNlZCBwYXJhbWV0ZXIgYXMgYSBkYXRhIHN0cnVjdHVyZS5cbiAqL1xuZnVuY3Rpb24gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKHBhcmFtOiBzdHJpbmcpIHtcbiAgY29uc3Qgb3B0aW9uYWwgPSBwYXJhbS5zdGFydHNXaXRoKCdbJykgJiYgcGFyYW0uZW5kc1dpdGgoJ10nKVxuICBpZiAob3B0aW9uYWwpIHtcbiAgICBwYXJhbSA9IHBhcmFtLnNsaWNlKDEsIC0xKVxuICB9XG4gIGNvbnN0IHJlcGVhdCA9IHBhcmFtLnN0YXJ0c1dpdGgoJy4uLicpXG4gIGlmIChyZXBlYXQpIHtcbiAgICBwYXJhbSA9IHBhcmFtLnNsaWNlKDMpXG4gIH1cbiAgcmV0dXJuIHsga2V5OiBwYXJhbSwgcmVwZWF0LCBvcHRpb25hbCB9XG59XG5cbmZ1bmN0aW9uIGdldFBhcmFtZXRyaXplZFJvdXRlKHJvdXRlOiBzdHJpbmcpIHtcbiAgY29uc3Qgc2VnbWVudHMgPSByZW1vdmVUcmFpbGluZ1NsYXNoKHJvdXRlKS5zbGljZSgxKS5zcGxpdCgnLycpXG4gIGNvbnN0IGdyb3VwczogeyBbZ3JvdXBOYW1lOiBzdHJpbmddOiBHcm91cCB9ID0ge31cbiAgbGV0IGdyb3VwSW5kZXggPSAxXG4gIHJldHVybiB7XG4gICAgcGFyYW1ldGVyaXplZFJvdXRlOiBzZWdtZW50c1xuICAgICAgLm1hcCgoc2VnbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBtYXJrZXJNYXRjaCA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pID0+XG4gICAgICAgICAgc2VnbWVudC5zdGFydHNXaXRoKG0pXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgcGFyYW1NYXRjaGVzID0gc2VnbWVudC5tYXRjaChQQVJBTUVURVJfUEFUVEVSTikgLy8gQ2hlY2sgZm9yIHBhcmFtZXRlcnNcblxuICAgICAgICBpZiAobWFya2VyTWF0Y2ggJiYgcGFyYW1NYXRjaGVzKSB7XG4gICAgICAgICAgY29uc3QgeyBrZXksIG9wdGlvbmFsLCByZXBlYXQgfSA9IHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihcbiAgICAgICAgICAgIHBhcmFtTWF0Y2hlc1sxXVxuICAgICAgICAgIClcbiAgICAgICAgICBncm91cHNba2V5XSA9IHsgcG9zOiBncm91cEluZGV4KyssIHJlcGVhdCwgb3B0aW9uYWwgfVxuICAgICAgICAgIHJldHVybiBgLyR7ZXNjYXBlU3RyaW5nUmVnZXhwKG1hcmtlck1hdGNoKX0oW14vXSs/KWBcbiAgICAgICAgfSBlbHNlIGlmIChwYXJhbU1hdGNoZXMpIHtcbiAgICAgICAgICBjb25zdCB7IGtleSwgcmVwZWF0LCBvcHRpb25hbCB9ID0gcGFyc2VNYXRjaGVkUGFyYW1ldGVyKFxuICAgICAgICAgICAgcGFyYW1NYXRjaGVzWzFdXG4gICAgICAgICAgKVxuICAgICAgICAgIGdyb3Vwc1trZXldID0geyBwb3M6IGdyb3VwSW5kZXgrKywgcmVwZWF0LCBvcHRpb25hbCB9XG4gICAgICAgICAgcmV0dXJuIHJlcGVhdCA/IChvcHRpb25hbCA/ICcoPzovKC4rPykpPycgOiAnLyguKz8pJykgOiAnLyhbXi9dKz8pJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBgLyR7ZXNjYXBlU3RyaW5nUmVnZXhwKHNlZ21lbnQpfWBcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5qb2luKCcnKSxcbiAgICBncm91cHMsXG4gIH1cbn1cblxuLyoqXG4gKiBGcm9tIGEgbm9ybWFsaXplZCByb3V0ZSB0aGlzIGZ1bmN0aW9uIGdlbmVyYXRlcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBhbmRcbiAqIGEgY29ycmVzcG9uZGluZyBncm91cHMgb2JqZWN0IGludGVuZGVkIHRvIGJlIHVzZWQgdG8gc3RvcmUgbWF0Y2hpbmcgZ3JvdXBzXG4gKiBmcm9tIHRoZSByZWd1bGFyIGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb3V0ZVJlZ2V4KG5vcm1hbGl6ZWRSb3V0ZTogc3RyaW5nKTogUm91dGVSZWdleCB7XG4gIGNvbnN0IHsgcGFyYW1ldGVyaXplZFJvdXRlLCBncm91cHMgfSA9IGdldFBhcmFtZXRyaXplZFJvdXRlKG5vcm1hbGl6ZWRSb3V0ZSlcbiAgcmV0dXJuIHtcbiAgICByZTogbmV3IFJlZ0V4cChgXiR7cGFyYW1ldGVyaXplZFJvdXRlfSg/Oi8pPyRgKSxcbiAgICBncm91cHM6IGdyb3VwcyxcbiAgfVxufVxuXG4vKipcbiAqIEJ1aWxkcyBhIGZ1bmN0aW9uIHRvIGdlbmVyYXRlIGEgbWluaW1hbCByb3V0ZUtleSB1c2luZyBvbmx5IGEteiBhbmQgbWluaW1hbFxuICogbnVtYmVyIG9mIGNoYXJhY3RlcnMuXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkR2V0U2FmZVJvdXRlS2V5KCkge1xuICBsZXQgaSA9IDBcblxuICByZXR1cm4gKCkgPT4ge1xuICAgIGxldCByb3V0ZUtleSA9ICcnXG4gICAgbGV0IGogPSArK2lcbiAgICB3aGlsZSAoaiA+IDApIHtcbiAgICAgIHJvdXRlS2V5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoOTcgKyAoKGogLSAxKSAlIDI2KSlcbiAgICAgIGogPSBNYXRoLmZsb29yKChqIC0gMSkgLyAyNilcbiAgICB9XG4gICAgcmV0dXJuIHJvdXRlS2V5XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0U2FmZUtleUZyb21TZWdtZW50KHtcbiAgaW50ZXJjZXB0aW9uTWFya2VyLFxuICBnZXRTYWZlUm91dGVLZXksXG4gIHNlZ21lbnQsXG4gIHJvdXRlS2V5cyxcbiAga2V5UHJlZml4LFxufToge1xuICBpbnRlcmNlcHRpb25NYXJrZXI/OiBzdHJpbmdcbiAgZ2V0U2FmZVJvdXRlS2V5OiAoKSA9PiBzdHJpbmdcbiAgc2VnbWVudDogc3RyaW5nXG4gIHJvdXRlS2V5czogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICBrZXlQcmVmaXg/OiBzdHJpbmdcbn0pIHtcbiAgY29uc3QgeyBrZXksIG9wdGlvbmFsLCByZXBlYXQgfSA9IHBhcnNlTWF0Y2hlZFBhcmFtZXRlcihzZWdtZW50KVxuXG4gIC8vIHJlcGxhY2UgYW55IG5vbi13b3JkIGNoYXJhY3RlcnMgc2luY2UgdGhleSBjYW4gYnJlYWtcbiAgLy8gdGhlIG5hbWVkIHJlZ2V4XG4gIGxldCBjbGVhbmVkS2V5ID0ga2V5LnJlcGxhY2UoL1xcVy9nLCAnJylcblxuICBpZiAoa2V5UHJlZml4KSB7XG4gICAgY2xlYW5lZEtleSA9IGAke2tleVByZWZpeH0ke2NsZWFuZWRLZXl9YFxuICB9XG4gIGxldCBpbnZhbGlkS2V5ID0gZmFsc2VcblxuICAvLyBjaGVjayBpZiB0aGUga2V5IGlzIHN0aWxsIGludmFsaWQgYW5kIGZhbGxiYWNrIHRvIHVzaW5nIGEga25vd25cbiAgLy8gc2FmZSBrZXlcbiAgaWYgKGNsZWFuZWRLZXkubGVuZ3RoID09PSAwIHx8IGNsZWFuZWRLZXkubGVuZ3RoID4gMzApIHtcbiAgICBpbnZhbGlkS2V5ID0gdHJ1ZVxuICB9XG4gIGlmICghaXNOYU4ocGFyc2VJbnQoY2xlYW5lZEtleS5zbGljZSgwLCAxKSkpKSB7XG4gICAgaW52YWxpZEtleSA9IHRydWVcbiAgfVxuXG4gIGlmIChpbnZhbGlkS2V5KSB7XG4gICAgY2xlYW5lZEtleSA9IGdldFNhZmVSb3V0ZUtleSgpXG4gIH1cblxuICBpZiAoa2V5UHJlZml4KSB7XG4gICAgcm91dGVLZXlzW2NsZWFuZWRLZXldID0gYCR7a2V5UHJlZml4fSR7a2V5fWBcbiAgfSBlbHNlIHtcbiAgICByb3V0ZUtleXNbY2xlYW5lZEtleV0gPSBrZXlcbiAgfVxuXG4gIC8vIGlmIHRoZSBzZWdtZW50IGhhcyBhbiBpbnRlcmNlcHRpb24gbWFya2VyLCBtYWtlIHN1cmUgdGhhdCdzIHBhcnQgb2YgdGhlIHJlZ2V4IHBhdHRlcm5cbiAgLy8gdGhpcyBpcyB0byBlbnN1cmUgdGhhdCB0aGUgcm91dGUgd2l0aCB0aGUgaW50ZXJjZXB0aW9uIG1hcmtlciBkb2Vzbid0IGluY29ycmVjdGx5IG1hdGNoXG4gIC8vIHRoZSBub24taW50ZXJjZXB0ZWQgcm91dGUgKGllIC9hcHAvKC4pW3VzZXJuYW1lXSBzaG91bGQgbm90IG1hdGNoIC9hcHAvW3VzZXJuYW1lXSlcbiAgY29uc3QgaW50ZXJjZXB0aW9uUHJlZml4ID0gaW50ZXJjZXB0aW9uTWFya2VyXG4gICAgPyBlc2NhcGVTdHJpbmdSZWdleHAoaW50ZXJjZXB0aW9uTWFya2VyKVxuICAgIDogJydcblxuICByZXR1cm4gcmVwZWF0XG4gICAgPyBvcHRpb25hbFxuICAgICAgPyBgKD86LyR7aW50ZXJjZXB0aW9uUHJlZml4fSg/PCR7Y2xlYW5lZEtleX0+Lis/KSk/YFxuICAgICAgOiBgLyR7aW50ZXJjZXB0aW9uUHJlZml4fSg/PCR7Y2xlYW5lZEtleX0+Lis/KWBcbiAgICA6IGAvJHtpbnRlcmNlcHRpb25QcmVmaXh9KD88JHtjbGVhbmVkS2V5fT5bXi9dKz8pYFxufVxuXG5mdW5jdGlvbiBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKHJvdXRlOiBzdHJpbmcsIHByZWZpeFJvdXRlS2V5czogYm9vbGVhbikge1xuICBjb25zdCBzZWdtZW50cyA9IHJlbW92ZVRyYWlsaW5nU2xhc2gocm91dGUpLnNsaWNlKDEpLnNwbGl0KCcvJylcbiAgY29uc3QgZ2V0U2FmZVJvdXRlS2V5ID0gYnVpbGRHZXRTYWZlUm91dGVLZXkoKVxuICBjb25zdCByb3V0ZUtleXM6IHsgW25hbWVkOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9XG4gIHJldHVybiB7XG4gICAgbmFtZWRQYXJhbWV0ZXJpemVkUm91dGU6IHNlZ21lbnRzXG4gICAgICAubWFwKChzZWdtZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGhhc0ludGVyY2VwdGlvbk1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLnNvbWUoKG0pID0+XG4gICAgICAgICAgc2VnbWVudC5zdGFydHNXaXRoKG0pXG4gICAgICAgIClcbiAgICAgICAgY29uc3QgcGFyYW1NYXRjaGVzID0gc2VnbWVudC5tYXRjaCgvXFxbKCg/OlxcWy4qXFxdKXwuKylcXF0vKSAvLyBDaGVjayBmb3IgcGFyYW1ldGVyc1xuXG4gICAgICAgIGlmIChoYXNJbnRlcmNlcHRpb25NYXJrZXIgJiYgcGFyYW1NYXRjaGVzKSB7XG4gICAgICAgICAgY29uc3QgW3VzZWRNYXJrZXJdID0gc2VnbWVudC5zcGxpdChwYXJhbU1hdGNoZXNbMF0pXG5cbiAgICAgICAgICByZXR1cm4gZ2V0U2FmZUtleUZyb21TZWdtZW50KHtcbiAgICAgICAgICAgIGdldFNhZmVSb3V0ZUtleSxcbiAgICAgICAgICAgIGludGVyY2VwdGlvbk1hcmtlcjogdXNlZE1hcmtlcixcbiAgICAgICAgICAgIHNlZ21lbnQ6IHBhcmFtTWF0Y2hlc1sxXSxcbiAgICAgICAgICAgIHJvdXRlS2V5cyxcbiAgICAgICAgICAgIGtleVByZWZpeDogcHJlZml4Um91dGVLZXlzXG4gICAgICAgICAgICAgID8gTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWFxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2UgaWYgKHBhcmFtTWF0Y2hlcykge1xuICAgICAgICAgIHJldHVybiBnZXRTYWZlS2V5RnJvbVNlZ21lbnQoe1xuICAgICAgICAgICAgZ2V0U2FmZVJvdXRlS2V5LFxuICAgICAgICAgICAgc2VnbWVudDogcGFyYW1NYXRjaGVzWzFdLFxuICAgICAgICAgICAgcm91dGVLZXlzLFxuICAgICAgICAgICAga2V5UHJlZml4OiBwcmVmaXhSb3V0ZUtleXMgPyBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiBgLyR7ZXNjYXBlU3RyaW5nUmVnZXhwKHNlZ21lbnQpfWBcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5qb2luKCcnKSxcbiAgICByb3V0ZUtleXMsXG4gIH1cbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGV4dGVuZHMgYGdldFJvdXRlUmVnZXhgIGdlbmVyYXRpbmcgYWxzbyBhIG5hbWVkIHJlZ2V4cCB3aGVyZVxuICogZWFjaCBncm91cCBpcyBuYW1lZCBhbG9uZyB3aXRoIGEgcm91dGVLZXlzIG9iamVjdCB0aGF0IGluZGV4ZXMgdGhlIGFzc2lnbmVkXG4gKiBuYW1lZCBncm91cCB3aXRoIGl0cyBjb3JyZXNwb25kaW5nIGtleS4gV2hlbiB0aGUgcm91dGVLZXlzIG5lZWQgdG8gYmVcbiAqIHByZWZpeGVkIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IGludGVybmFsbHkgdGhlIFwicHJlZml4Um91dGVLZXlcIiBhcmcgc2hvdWxkXG4gKiBiZSBcInRydWVcIiBjdXJyZW50bHkgdGhpcyBpcyBvbmx5IHRoZSBjYXNlIHdoZW4gY3JlYXRpbmcgdGhlIHJvdXRlcy1tYW5pZmVzdFxuICogZHVyaW5nIHRoZSBidWlsZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmFtZWRSb3V0ZVJlZ2V4KFxuICBub3JtYWxpemVkUm91dGU6IHN0cmluZyxcbiAgcHJlZml4Um91dGVLZXk6IGJvb2xlYW5cbikge1xuICBjb25zdCByZXN1bHQgPSBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKG5vcm1hbGl6ZWRSb3V0ZSwgcHJlZml4Um91dGVLZXkpXG4gIHJldHVybiB7XG4gICAgLi4uZ2V0Um91dGVSZWdleChub3JtYWxpemVkUm91dGUpLFxuICAgIG5hbWVkUmVnZXg6IGBeJHtyZXN1bHQubmFtZWRQYXJhbWV0ZXJpemVkUm91dGV9KD86Lyk/JGAsXG4gICAgcm91dGVLZXlzOiByZXN1bHQucm91dGVLZXlzLFxuICB9XG59XG5cbi8qKlxuICogR2VuZXJhdGVzIGEgbmFtZWQgcmVnZXhwLlxuICogVGhpcyBpcyBpbnRlbmRlZCB0byBiZSB1c2luZyBmb3IgYnVpbGQgdGltZSBvbmx5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmFtZWRNaWRkbGV3YXJlUmVnZXgoXG4gIG5vcm1hbGl6ZWRSb3V0ZTogc3RyaW5nLFxuICBvcHRpb25zOiB7XG4gICAgY2F0Y2hBbGw/OiBib29sZWFuXG4gIH1cbikge1xuICBjb25zdCB7IHBhcmFtZXRlcml6ZWRSb3V0ZSB9ID0gZ2V0UGFyYW1ldHJpemVkUm91dGUobm9ybWFsaXplZFJvdXRlKVxuICBjb25zdCB7IGNhdGNoQWxsID0gdHJ1ZSB9ID0gb3B0aW9uc1xuICBpZiAocGFyYW1ldGVyaXplZFJvdXRlID09PSAnLycpIHtcbiAgICBsZXQgY2F0Y2hBbGxSZWdleCA9IGNhdGNoQWxsID8gJy4qJyA6ICcnXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWVkUmVnZXg6IGBeLyR7Y2F0Y2hBbGxSZWdleH0kYCxcbiAgICB9XG4gIH1cblxuICBjb25zdCB7IG5hbWVkUGFyYW1ldGVyaXplZFJvdXRlIH0gPSBnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlKFxuICAgIG5vcm1hbGl6ZWRSb3V0ZSxcbiAgICBmYWxzZVxuICApXG4gIGxldCBjYXRjaEFsbEdyb3VwZWRSZWdleCA9IGNhdGNoQWxsID8gJyg/OigvLiopPyknIDogJydcbiAgcmV0dXJuIHtcbiAgICBuYW1lZFJlZ2V4OiBgXiR7bmFtZWRQYXJhbWV0ZXJpemVkUm91dGV9JHtjYXRjaEFsbEdyb3VwZWRSZWdleH0kYCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldE5hbWVkTWlkZGxld2FyZVJlZ2V4IiwiZ2V0TmFtZWRSb3V0ZVJlZ2V4IiwiZ2V0Um91dGVSZWdleCIsInBhcnNlUGFyYW1ldGVyIiwiUEFSQU1FVEVSX1BBVFRFUk4iLCJwYXJhbSIsIm1hdGNoIiwicGFyc2VNYXRjaGVkUGFyYW1ldGVyIiwib3B0aW9uYWwiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJzbGljZSIsInJlcGVhdCIsImtleSIsImdldFBhcmFtZXRyaXplZFJvdXRlIiwicm91dGUiLCJzZWdtZW50cyIsInJlbW92ZVRyYWlsaW5nU2xhc2giLCJzcGxpdCIsImdyb3VwcyIsImdyb3VwSW5kZXgiLCJwYXJhbWV0ZXJpemVkUm91dGUiLCJtYXAiLCJzZWdtZW50IiwibWFya2VyTWF0Y2giLCJJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUyIsImZpbmQiLCJtIiwicGFyYW1NYXRjaGVzIiwicG9zIiwiZXNjYXBlU3RyaW5nUmVnZXhwIiwiam9pbiIsIm5vcm1hbGl6ZWRSb3V0ZSIsInJlIiwiUmVnRXhwIiwiYnVpbGRHZXRTYWZlUm91dGVLZXkiLCJpIiwicm91dGVLZXkiLCJqIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwiTWF0aCIsImZsb29yIiwiZ2V0U2FmZUtleUZyb21TZWdtZW50IiwiaW50ZXJjZXB0aW9uTWFya2VyIiwiZ2V0U2FmZVJvdXRlS2V5Iiwicm91dGVLZXlzIiwia2V5UHJlZml4IiwiY2xlYW5lZEtleSIsInJlcGxhY2UiLCJpbnZhbGlkS2V5IiwibGVuZ3RoIiwiaXNOYU4iLCJwYXJzZUludCIsImludGVyY2VwdGlvblByZWZpeCIsImdldE5hbWVkUGFyYW1ldHJpemVkUm91dGUiLCJwcmVmaXhSb3V0ZUtleXMiLCJuYW1lZFBhcmFtZXRlcml6ZWRSb3V0ZSIsImhhc0ludGVyY2VwdGlvbk1hcmtlciIsInNvbWUiLCJ1c2VkTWFya2VyIiwiTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCIsInVuZGVmaW5lZCIsIk5FWFRfUVVFUllfUEFSQU1fUFJFRklYIiwicHJlZml4Um91dGVLZXkiLCJyZXN1bHQiLCJuYW1lZFJlZ2V4Iiwib3B0aW9ucyIsImNhdGNoQWxsIiwiY2F0Y2hBbGxSZWdleCIsImNhdGNoQWxsR3JvdXBlZFJlZ2V4Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js": +/*!*************************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js ***! + \*************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRouteObjects: function() {\n return getSortedRouteObjects;\n },\n getSortedRoutes: function() {\n return getSortedRoutes;\n }\n});\nclass UrlNode {\n insert(urlPath) {\n this._insert(urlPath.split('/').filter(Boolean), [], false);\n }\n smoosh() {\n return this._smoosh();\n }\n _smoosh(prefix) {\n if (prefix === void 0) prefix = '/';\n const childrenPaths = [\n ...this.children.keys()\n ].sort();\n if (this.slugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[]'), 1);\n }\n if (this.restSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[...]'), 1);\n }\n if (this.optionalRestSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf('[[...]]'), 1);\n }\n const routes = childrenPaths.map((c)=>this.children.get(c)._smoosh(\"\" + prefix + c + \"/\")).reduce((prev, curr)=>[\n ...prev,\n ...curr\n ], []);\n if (this.slugName !== null) {\n routes.push(...this.children.get('[]')._smoosh(prefix + \"[\" + this.slugName + \"]/\"));\n }\n if (!this.placeholder) {\n const r = prefix === '/' ? '/' : prefix.slice(0, -1);\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot define a route with the same specificity as a optional catch-all route (\"' + r + '\" and \"' + r + \"[[...\" + this.optionalRestSlugName + ']]\").');\n }\n routes.unshift(r);\n }\n if (this.restSlugName !== null) {\n routes.push(...this.children.get('[...]')._smoosh(prefix + \"[...\" + this.restSlugName + \"]/\"));\n }\n if (this.optionalRestSlugName !== null) {\n routes.push(...this.children.get('[[...]]')._smoosh(prefix + \"[[...\" + this.optionalRestSlugName + \"]]/\"));\n }\n return routes;\n }\n _insert(urlPaths, slugNames, isCatchAll) {\n if (urlPaths.length === 0) {\n this.placeholder = false;\n return;\n }\n if (isCatchAll) {\n throw new Error(\"Catch-all must be the last part of the URL.\");\n }\n // The next segment in the urlPaths list\n let nextSegment = urlPaths[0];\n // Check if the segment matches `[something]`\n if (nextSegment.startsWith('[') && nextSegment.endsWith(']')) {\n // Strip `[` and `]`, leaving only `something`\n let segmentName = nextSegment.slice(1, -1);\n let isOptional = false;\n if (segmentName.startsWith('[') && segmentName.endsWith(']')) {\n // Strip optional `[` and `]`, leaving only `something`\n segmentName = segmentName.slice(1, -1);\n isOptional = true;\n }\n if (segmentName.startsWith('…')) {\n throw new Error(\"Detected a three-dot character ('…') at ('\" + segmentName + \"'). Did you mean ('...')?\");\n }\n if (segmentName.startsWith('...')) {\n // Strip `...`, leaving only `something`\n segmentName = segmentName.substring(3);\n isCatchAll = true;\n }\n if (segmentName.startsWith('[') || segmentName.endsWith(']')) {\n throw new Error(\"Segment names may not start or end with extra brackets ('\" + segmentName + \"').\");\n }\n if (segmentName.startsWith('.')) {\n throw new Error(\"Segment names may not start with erroneous periods ('\" + segmentName + \"').\");\n }\n function handleSlug(previousSlug, nextSlug) {\n if (previousSlug !== null) {\n // If the specific segment already has a slug but the slug is not `something`\n // This prevents collisions like:\n // pages/[post]/index.js\n // pages/[id]/index.js\n // Because currently multiple dynamic params on the same segment level are not supported\n if (previousSlug !== nextSlug) {\n // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment.\n throw new Error(\"You cannot use different slug names for the same dynamic path ('\" + previousSlug + \"' !== '\" + nextSlug + \"').\");\n }\n }\n slugNames.forEach((slug)=>{\n if (slug === nextSlug) {\n throw new Error('You cannot have the same slug name \"' + nextSlug + '\" repeat within a single dynamic path');\n }\n if (slug.replace(/\\W/g, '') === nextSegment.replace(/\\W/g, '')) {\n throw new Error('You cannot have the slug names \"' + slug + '\" and \"' + nextSlug + '\" differ only by non-word symbols within a single dynamic path');\n }\n });\n slugNames.push(nextSlug);\n }\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw new Error('You cannot use both an required and optional catch-all route at the same level (\"[...' + this.restSlugName + ']\" and \"' + urlPaths[0] + '\" ).');\n }\n handleSlug(this.optionalRestSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.optionalRestSlugName = segmentName;\n // nextSegment is overwritten to [[...]] so that it can later be sorted specifically\n nextSegment = '[[...]]';\n } else {\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot use both an optional and required catch-all route at the same level (\"[[...' + this.optionalRestSlugName + ']]\" and \"' + urlPaths[0] + '\").');\n }\n handleSlug(this.restSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.restSlugName = segmentName;\n // nextSegment is overwritten to [...] so that it can later be sorted specifically\n nextSegment = '[...]';\n }\n } else {\n if (isOptional) {\n throw new Error('Optional route parameters are not yet supported (\"' + urlPaths[0] + '\").');\n }\n handleSlug(this.slugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.slugName = segmentName;\n // nextSegment is overwritten to [] so that it can later be sorted specifically\n nextSegment = '[]';\n }\n }\n // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode\n if (!this.children.has(nextSegment)) {\n this.children.set(nextSegment, new UrlNode());\n }\n this.children.get(nextSegment)._insert(urlPaths.slice(1), slugNames, isCatchAll);\n }\n constructor(){\n this.placeholder = true;\n this.children = new Map();\n this.slugName = null;\n this.restSlugName = null;\n this.optionalRestSlugName = null;\n }\n}\nfunction getSortedRoutes(normalizedPages) {\n // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment\n // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js\n // Only 1 dynamic segment per nesting level\n // So in the case that is test/integration/dynamic-routing it'll be this:\n // pages/[post]/comments.js\n // pages/blog/[post]/comment/[id].js\n // Both are fine because `pages/[post]` and `pages/blog` are on the same level\n // So in this case `UrlNode` created here has `this.slugName === 'post'`\n // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities\n // Instead what has to be passed through is the upwards path's dynamic names\n const root = new UrlNode();\n // Here the `root` gets injected multiple paths, and insert will break them up into sublevels\n normalizedPages.forEach((pagePath)=>root.insert(pagePath));\n // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority\n return root.smoosh();\n}\nfunction getSortedRouteObjects(objects, getter) {\n // We're assuming here that all the pathnames are unique, that way we can\n // sort the list and use the index as the key.\n const indexes = {};\n const pathnames = [];\n for(let i = 0; i < objects.length; i++){\n const pathname = getter(objects[i]);\n indexes[pathname] = i;\n pathnames[i] = pathname;\n }\n // Sort the pathnames.\n const sorted = getSortedRoutes(pathnames);\n // Map the sorted pathnames back to the original objects using the new sorted\n // index.\n return sorted.map((pathname)=>objects[indexes[pathname]]);\n} //# sourceMappingURL=sorted-routes.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL3NvcnRlZC1yb3V0ZXMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBaU9nQkEscUJBQXFCO2VBQXJCQTs7SUF0QkFDLGVBQWU7ZUFBZkE7OztBQTNNaEIsTUFBTUM7SUFPSkMsT0FBT0MsT0FBZSxFQUFRO1FBQzVCLElBQUksQ0FBQ0MsT0FBTyxDQUFDRCxRQUFRRSxLQUFLLENBQUMsS0FBS0MsTUFBTSxDQUFDQyxVQUFVLEVBQUUsRUFBRTtJQUN2RDtJQUVBQyxTQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQ0MsT0FBTztJQUNyQjtJQUVRQSxRQUFRQyxNQUFvQixFQUFZO1FBQWhDQSxJQUFBQSxXQUFBQSxLQUFBQSxHQUFBQSxTQUFpQjtRQUMvQixNQUFNQyxnQkFBZ0I7ZUFBSSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSTtTQUFHLENBQUNDLElBQUk7UUFDcEQsSUFBSSxJQUFJLENBQUNDLFFBQVEsS0FBSyxNQUFNO1lBQzFCSixjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxPQUFPO1FBQ3BEO1FBQ0EsSUFBSSxJQUFJLENBQUNDLFlBQVksS0FBSyxNQUFNO1lBQzlCUCxjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxVQUFVO1FBQ3ZEO1FBQ0EsSUFBSSxJQUFJLENBQUNFLG9CQUFvQixLQUFLLE1BQU07WUFDdENSLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLFlBQVk7UUFDekQ7UUFFQSxNQUFNRyxTQUFTVCxjQUNaVSxHQUFHLENBQUMsQ0FBQ0MsSUFBTSxJQUFJLENBQUNWLFFBQVEsQ0FBQ1csR0FBRyxDQUFDRCxHQUFJYixPQUFPLENBQUUsS0FBRUMsU0FBU1ksSUFBRSxNQUN2REUsTUFBTSxDQUFDLENBQUNDLE1BQU1DLE9BQVM7bUJBQUlEO21CQUFTQzthQUFLLEVBQUUsRUFBRTtRQUVoRCxJQUFJLElBQUksQ0FBQ1gsUUFBUSxLQUFLLE1BQU07WUFDMUJLLE9BQU9PLElBQUksSUFDTixJQUFJLENBQUNmLFFBQVEsQ0FBQ1csR0FBRyxDQUFDLE1BQU9kLE9BQU8sQ0FBSUMsU0FBTyxNQUFHLElBQUksQ0FBQ0ssUUFBUSxHQUFDO1FBRW5FO1FBRUEsSUFBSSxDQUFDLElBQUksQ0FBQ2EsV0FBVyxFQUFFO1lBQ3JCLE1BQU1DLElBQUluQixXQUFXLE1BQU0sTUFBTUEsT0FBT29CLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDbEQsSUFBSSxJQUFJLENBQUNYLG9CQUFvQixJQUFJLE1BQU07Z0JBQ3JDLE1BQU0sSUFBSVksTUFDUCx5RkFBc0ZGLElBQUUsWUFBU0EsSUFBRSxVQUFPLElBQUksQ0FBQ1Ysb0JBQW9CLEdBQUM7WUFFekk7WUFFQUMsT0FBT1ksT0FBTyxDQUFDSDtRQUNqQjtRQUVBLElBQUksSUFBSSxDQUFDWCxZQUFZLEtBQUssTUFBTTtZQUM5QkUsT0FBT08sSUFBSSxJQUNOLElBQUksQ0FBQ2YsUUFBUSxDQUNiVyxHQUFHLENBQUMsU0FDSmQsT0FBTyxDQUFJQyxTQUFPLFNBQU0sSUFBSSxDQUFDUSxZQUFZLEdBQUM7UUFFakQ7UUFFQSxJQUFJLElBQUksQ0FBQ0Msb0JBQW9CLEtBQUssTUFBTTtZQUN0Q0MsT0FBT08sSUFBSSxJQUNOLElBQUksQ0FBQ2YsUUFBUSxDQUNiVyxHQUFHLENBQUMsV0FDSmQsT0FBTyxDQUFJQyxTQUFPLFVBQU8sSUFBSSxDQUFDUyxvQkFBb0IsR0FBQztRQUUxRDtRQUVBLE9BQU9DO0lBQ1Q7SUFFUWhCLFFBQ042QixRQUFrQixFQUNsQkMsU0FBbUIsRUFDbkJDLFVBQW1CLEVBQ2I7UUFDTixJQUFJRixTQUFTRyxNQUFNLEtBQUssR0FBRztZQUN6QixJQUFJLENBQUNSLFdBQVcsR0FBRztZQUNuQjtRQUNGO1FBRUEsSUFBSU8sWUFBWTtZQUNkLE1BQU0sSUFBSUosTUFBTztRQUNuQjtRQUVBLHdDQUF3QztRQUN4QyxJQUFJTSxjQUFjSixRQUFRLENBQUMsRUFBRTtRQUU3Qiw2Q0FBNkM7UUFDN0MsSUFBSUksWUFBWUMsVUFBVSxDQUFDLFFBQVFELFlBQVlFLFFBQVEsQ0FBQyxNQUFNO1lBQzVELDhDQUE4QztZQUM5QyxJQUFJQyxjQUFjSCxZQUFZUCxLQUFLLENBQUMsR0FBRyxDQUFDO1lBRXhDLElBQUlXLGFBQWE7WUFDakIsSUFBSUQsWUFBWUYsVUFBVSxDQUFDLFFBQVFFLFlBQVlELFFBQVEsQ0FBQyxNQUFNO2dCQUM1RCx1REFBdUQ7Z0JBQ3ZEQyxjQUFjQSxZQUFZVixLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUNwQ1csYUFBYTtZQUNmO1lBRUEsSUFBSUQsWUFBWUYsVUFBVSxDQUFDLE1BQU07Z0JBQy9CLE1BQU0sSUFBSVAsTUFDUCwrQ0FBNENTLGNBQVk7WUFFN0Q7WUFFQSxJQUFJQSxZQUFZRixVQUFVLENBQUMsUUFBUTtnQkFDakMsd0NBQXdDO2dCQUN4Q0UsY0FBY0EsWUFBWUUsU0FBUyxDQUFDO2dCQUNwQ1AsYUFBYTtZQUNmO1lBRUEsSUFBSUssWUFBWUYsVUFBVSxDQUFDLFFBQVFFLFlBQVlELFFBQVEsQ0FBQyxNQUFNO2dCQUM1RCxNQUFNLElBQUlSLE1BQ1AsOERBQTJEUyxjQUFZO1lBRTVFO1lBRUEsSUFBSUEsWUFBWUYsVUFBVSxDQUFDLE1BQU07Z0JBQy9CLE1BQU0sSUFBSVAsTUFDUCwwREFBdURTLGNBQVk7WUFFeEU7WUFFQSxTQUFTRyxXQUFXQyxZQUEyQixFQUFFQyxRQUFnQjtnQkFDL0QsSUFBSUQsaUJBQWlCLE1BQU07b0JBQ3pCLDZFQUE2RTtvQkFDN0UsaUNBQWlDO29CQUNqQyx3QkFBd0I7b0JBQ3hCLHNCQUFzQjtvQkFDdEIsd0ZBQXdGO29CQUN4RixJQUFJQSxpQkFBaUJDLFVBQVU7d0JBQzdCLHdIQUF3SDt3QkFDeEgsTUFBTSxJQUFJZCxNQUNQLHFFQUFrRWEsZUFBYSxZQUFTQyxXQUFTO29CQUV0RztnQkFDRjtnQkFFQVgsVUFBVVksT0FBTyxDQUFDLENBQUNDO29CQUNqQixJQUFJQSxTQUFTRixVQUFVO3dCQUNyQixNQUFNLElBQUlkLE1BQ1AseUNBQXNDYyxXQUFTO29CQUVwRDtvQkFFQSxJQUFJRSxLQUFLQyxPQUFPLENBQUMsT0FBTyxRQUFRWCxZQUFZVyxPQUFPLENBQUMsT0FBTyxLQUFLO3dCQUM5RCxNQUFNLElBQUlqQixNQUNQLHFDQUFrQ2dCLE9BQUssWUFBU0YsV0FBUztvQkFFOUQ7Z0JBQ0Y7Z0JBRUFYLFVBQVVQLElBQUksQ0FBQ2tCO1lBQ2pCO1lBRUEsSUFBSVYsWUFBWTtnQkFDZCxJQUFJTSxZQUFZO29CQUNkLElBQUksSUFBSSxDQUFDdkIsWUFBWSxJQUFJLE1BQU07d0JBQzdCLE1BQU0sSUFBSWEsTUFDUCwwRkFBdUYsSUFBSSxDQUFDYixZQUFZLEdBQUMsYUFBVWUsUUFBUSxDQUFDLEVBQUUsR0FBQztvQkFFcEk7b0JBRUFVLFdBQVcsSUFBSSxDQUFDeEIsb0JBQW9CLEVBQUVxQjtvQkFDdEMsNkRBQTZEO29CQUM3RCxJQUFJLENBQUNyQixvQkFBb0IsR0FBR3FCO29CQUM1QixvRkFBb0Y7b0JBQ3BGSCxjQUFjO2dCQUNoQixPQUFPO29CQUNMLElBQUksSUFBSSxDQUFDbEIsb0JBQW9CLElBQUksTUFBTTt3QkFDckMsTUFBTSxJQUFJWSxNQUNQLDJGQUF3RixJQUFJLENBQUNaLG9CQUFvQixHQUFDLGNBQVdjLFFBQVEsQ0FBQyxFQUFFLEdBQUM7b0JBRTlJO29CQUVBVSxXQUFXLElBQUksQ0FBQ3pCLFlBQVksRUFBRXNCO29CQUM5Qiw2REFBNkQ7b0JBQzdELElBQUksQ0FBQ3RCLFlBQVksR0FBR3NCO29CQUNwQixrRkFBa0Y7b0JBQ2xGSCxjQUFjO2dCQUNoQjtZQUNGLE9BQU87Z0JBQ0wsSUFBSUksWUFBWTtvQkFDZCxNQUFNLElBQUlWLE1BQ1AsdURBQW9ERSxRQUFRLENBQUMsRUFBRSxHQUFDO2dCQUVyRTtnQkFDQVUsV0FBVyxJQUFJLENBQUM1QixRQUFRLEVBQUV5QjtnQkFDMUIsNkRBQTZEO2dCQUM3RCxJQUFJLENBQUN6QixRQUFRLEdBQUd5QjtnQkFDaEIsK0VBQStFO2dCQUMvRUgsY0FBYztZQUNoQjtRQUNGO1FBRUEsaUZBQWlGO1FBQ2pGLElBQUksQ0FBQyxJQUFJLENBQUN6QixRQUFRLENBQUNxQyxHQUFHLENBQUNaLGNBQWM7WUFDbkMsSUFBSSxDQUFDekIsUUFBUSxDQUFDc0MsR0FBRyxDQUFDYixhQUFhLElBQUlwQztRQUNyQztRQUVBLElBQUksQ0FBQ1csUUFBUSxDQUNWVyxHQUFHLENBQUNjLGFBQ0pqQyxPQUFPLENBQUM2QixTQUFTSCxLQUFLLENBQUMsSUFBSUksV0FBV0M7SUFDM0M7O2FBdk1BUCxXQUFBQSxHQUF1QjthQUN2QmhCLFFBQUFBLEdBQWlDLElBQUl1QzthQUNyQ3BDLFFBQUFBLEdBQTBCO2FBQzFCRyxZQUFBQSxHQUE4QjthQUM5QkMsb0JBQUFBLEdBQXNDOztBQW9NeEM7QUFFTyxTQUFTbkIsZ0JBQ2RvRCxlQUFzQztJQUV0QyxrRkFBa0Y7SUFDbEYsNEVBQTRFO0lBQzVFLDJDQUEyQztJQUUzQyx5RUFBeUU7SUFDekUsMkJBQTJCO0lBQzNCLG9DQUFvQztJQUNwQyw4RUFBOEU7SUFDOUUsd0VBQXdFO0lBQ3hFLGdIQUFnSDtJQUNoSCw0RUFBNEU7SUFDNUUsTUFBTUMsT0FBTyxJQUFJcEQ7SUFFakIsNkZBQTZGO0lBQzdGbUQsZ0JBQWdCTixPQUFPLENBQUMsQ0FBQ1EsV0FBYUQsS0FBS25ELE1BQU0sQ0FBQ29EO0lBQ2xELDRHQUE0RztJQUM1RyxPQUFPRCxLQUFLN0MsTUFBTTtBQUNwQjtBQUVPLFNBQVNULHNCQUNkd0QsT0FBWSxFQUNaQyxNQUEwQjtJQUUxQix5RUFBeUU7SUFDekUsOENBQThDO0lBQzlDLE1BQU1DLFVBQWtDLENBQUM7SUFDekMsTUFBTUMsWUFBc0IsRUFBRTtJQUM5QixJQUFLLElBQUlDLElBQUksR0FBR0EsSUFBSUosUUFBUW5CLE1BQU0sRUFBRXVCLElBQUs7UUFDdkMsTUFBTUMsV0FBV0osT0FBT0QsT0FBTyxDQUFDSSxFQUFFO1FBQ2xDRixPQUFPLENBQUNHLFNBQVMsR0FBR0Q7UUFDcEJELFNBQVMsQ0FBQ0MsRUFBRSxHQUFHQztJQUNqQjtJQUVBLHNCQUFzQjtJQUN0QixNQUFNQyxTQUFTN0QsZ0JBQWdCMEQ7SUFFL0IsNkVBQTZFO0lBQzdFLFNBQVM7SUFDVCxPQUFPRyxPQUFPeEMsR0FBRyxDQUFDLENBQUN1QyxXQUFhTCxPQUFPLENBQUNFLE9BQU8sQ0FBQ0csU0FBUyxDQUFDO0FBQzVEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9zb3J0ZWQtcm91dGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFVybE5vZGUge1xuICBwbGFjZWhvbGRlcjogYm9vbGVhbiA9IHRydWVcbiAgY2hpbGRyZW46IE1hcDxzdHJpbmcsIFVybE5vZGU+ID0gbmV3IE1hcCgpXG4gIHNsdWdOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuICByZXN0U2x1Z05hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gIG9wdGlvbmFsUmVzdFNsdWdOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbFxuXG4gIGluc2VydCh1cmxQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnNlcnQodXJsUGF0aC5zcGxpdCgnLycpLmZpbHRlcihCb29sZWFuKSwgW10sIGZhbHNlKVxuICB9XG5cbiAgc21vb3NoKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc21vb3NoKClcbiAgfVxuXG4gIHByaXZhdGUgX3Ntb29zaChwcmVmaXg6IHN0cmluZyA9ICcvJyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBjaGlsZHJlblBhdGhzID0gWy4uLnRoaXMuY2hpbGRyZW4ua2V5cygpXS5zb3J0KClcbiAgICBpZiAodGhpcy5zbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgY2hpbGRyZW5QYXRocy5zcGxpY2UoY2hpbGRyZW5QYXRocy5pbmRleE9mKCdbXScpLCAxKVxuICAgIH1cbiAgICBpZiAodGhpcy5yZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZignWy4uLl0nKSwgMSlcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIGNoaWxkcmVuUGF0aHMuc3BsaWNlKGNoaWxkcmVuUGF0aHMuaW5kZXhPZignW1suLi5dXScpLCAxKVxuICAgIH1cblxuICAgIGNvbnN0IHJvdXRlcyA9IGNoaWxkcmVuUGF0aHNcbiAgICAgIC5tYXAoKGMpID0+IHRoaXMuY2hpbGRyZW4uZ2V0KGMpIS5fc21vb3NoKGAke3ByZWZpeH0ke2N9L2ApKVxuICAgICAgLnJlZHVjZSgocHJldiwgY3VycikgPT4gWy4uLnByZXYsIC4uLmN1cnJdLCBbXSlcblxuICAgIGlmICh0aGlzLnNsdWdOYW1lICE9PSBudWxsKSB7XG4gICAgICByb3V0ZXMucHVzaChcbiAgICAgICAgLi4udGhpcy5jaGlsZHJlbi5nZXQoJ1tdJykhLl9zbW9vc2goYCR7cHJlZml4fVske3RoaXMuc2x1Z05hbWV9XS9gKVxuICAgICAgKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5wbGFjZWhvbGRlcikge1xuICAgICAgY29uc3QgciA9IHByZWZpeCA9PT0gJy8nID8gJy8nIDogcHJlZml4LnNsaWNlKDAsIC0xKVxuICAgICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFlvdSBjYW5ub3QgZGVmaW5lIGEgcm91dGUgd2l0aCB0aGUgc2FtZSBzcGVjaWZpY2l0eSBhcyBhIG9wdGlvbmFsIGNhdGNoLWFsbCByb3V0ZSAoXCIke3J9XCIgYW5kIFwiJHtyfVtbLi4uJHt0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lfV1dXCIpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICByb3V0ZXMudW5zaGlmdChyKVxuICAgIH1cblxuICAgIGlmICh0aGlzLnJlc3RTbHVnTmFtZSAhPT0gbnVsbCkge1xuICAgICAgcm91dGVzLnB1c2goXG4gICAgICAgIC4uLnRoaXMuY2hpbGRyZW5cbiAgICAgICAgICAuZ2V0KCdbLi4uXScpIVxuICAgICAgICAgIC5fc21vb3NoKGAke3ByZWZpeH1bLi4uJHt0aGlzLnJlc3RTbHVnTmFtZX1dL2ApXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUgIT09IG51bGwpIHtcbiAgICAgIHJvdXRlcy5wdXNoKFxuICAgICAgICAuLi50aGlzLmNoaWxkcmVuXG4gICAgICAgICAgLmdldCgnW1suLi5dXScpIVxuICAgICAgICAgIC5fc21vb3NoKGAke3ByZWZpeH1bWy4uLiR7dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZX1dXS9gKVxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiByb3V0ZXNcbiAgfVxuXG4gIHByaXZhdGUgX2luc2VydChcbiAgICB1cmxQYXRoczogc3RyaW5nW10sXG4gICAgc2x1Z05hbWVzOiBzdHJpbmdbXSxcbiAgICBpc0NhdGNoQWxsOiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGlmICh1cmxQYXRocy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBmYWxzZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGlzQ2F0Y2hBbGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2F0Y2gtYWxsIG11c3QgYmUgdGhlIGxhc3QgcGFydCBvZiB0aGUgVVJMLmApXG4gICAgfVxuXG4gICAgLy8gVGhlIG5leHQgc2VnbWVudCBpbiB0aGUgdXJsUGF0aHMgbGlzdFxuICAgIGxldCBuZXh0U2VnbWVudCA9IHVybFBhdGhzWzBdXG5cbiAgICAvLyBDaGVjayBpZiB0aGUgc2VnbWVudCBtYXRjaGVzIGBbc29tZXRoaW5nXWBcbiAgICBpZiAobmV4dFNlZ21lbnQuc3RhcnRzV2l0aCgnWycpICYmIG5leHRTZWdtZW50LmVuZHNXaXRoKCddJykpIHtcbiAgICAgIC8vIFN0cmlwIGBbYCBhbmQgYF1gLCBsZWF2aW5nIG9ubHkgYHNvbWV0aGluZ2BcbiAgICAgIGxldCBzZWdtZW50TmFtZSA9IG5leHRTZWdtZW50LnNsaWNlKDEsIC0xKVxuXG4gICAgICBsZXQgaXNPcHRpb25hbCA9IGZhbHNlXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnWycpICYmIHNlZ21lbnROYW1lLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgLy8gU3RyaXAgb3B0aW9uYWwgYFtgIGFuZCBgXWAsIGxlYXZpbmcgb25seSBgc29tZXRoaW5nYFxuICAgICAgICBzZWdtZW50TmFtZSA9IHNlZ21lbnROYW1lLnNsaWNlKDEsIC0xKVxuICAgICAgICBpc09wdGlvbmFsID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgn4oCmJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBEZXRlY3RlZCBhIHRocmVlLWRvdCBjaGFyYWN0ZXIgKCfigKYnKSBhdCAoJyR7c2VnbWVudE5hbWV9JykuIERpZCB5b3UgbWVhbiAoJy4uLicpP2BcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnLi4uJykpIHtcbiAgICAgICAgLy8gU3RyaXAgYC4uLmAsIGxlYXZpbmcgb25seSBgc29tZXRoaW5nYFxuICAgICAgICBzZWdtZW50TmFtZSA9IHNlZ21lbnROYW1lLnN1YnN0cmluZygzKVxuICAgICAgICBpc0NhdGNoQWxsID0gdHJ1ZVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnWycpIHx8IHNlZ21lbnROYW1lLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBTZWdtZW50IG5hbWVzIG1heSBub3Qgc3RhcnQgb3IgZW5kIHdpdGggZXh0cmEgYnJhY2tldHMgKCcke3NlZ21lbnROYW1lfScpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoc2VnbWVudE5hbWUuc3RhcnRzV2l0aCgnLicpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgU2VnbWVudCBuYW1lcyBtYXkgbm90IHN0YXJ0IHdpdGggZXJyb25lb3VzIHBlcmlvZHMgKCcke3NlZ21lbnROYW1lfScpLmBcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVTbHVnKHByZXZpb3VzU2x1Zzogc3RyaW5nIHwgbnVsbCwgbmV4dFNsdWc6IHN0cmluZykge1xuICAgICAgICBpZiAocHJldmlvdXNTbHVnICE9PSBudWxsKSB7XG4gICAgICAgICAgLy8gSWYgdGhlIHNwZWNpZmljIHNlZ21lbnQgYWxyZWFkeSBoYXMgYSBzbHVnIGJ1dCB0aGUgc2x1ZyBpcyBub3QgYHNvbWV0aGluZ2BcbiAgICAgICAgICAvLyBUaGlzIHByZXZlbnRzIGNvbGxpc2lvbnMgbGlrZTpcbiAgICAgICAgICAvLyBwYWdlcy9bcG9zdF0vaW5kZXguanNcbiAgICAgICAgICAvLyBwYWdlcy9baWRdL2luZGV4LmpzXG4gICAgICAgICAgLy8gQmVjYXVzZSBjdXJyZW50bHkgbXVsdGlwbGUgZHluYW1pYyBwYXJhbXMgb24gdGhlIHNhbWUgc2VnbWVudCBsZXZlbCBhcmUgbm90IHN1cHBvcnRlZFxuICAgICAgICAgIGlmIChwcmV2aW91c1NsdWcgIT09IG5leHRTbHVnKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIHNlZW1zIHRvIGJlIGNvbmZ1c2luZyBmb3IgdXNlcnMsIG5lZWRzIGFuIGVycm9yIGxpbmssIHRoZSBkZXNjcmlwdGlvbiBjYW4gYmUgYmFzZWQgb24gYWJvdmUgY29tbWVudC5cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGRpZmZlcmVudCBzbHVnIG5hbWVzIGZvciB0aGUgc2FtZSBkeW5hbWljIHBhdGggKCcke3ByZXZpb3VzU2x1Z30nICE9PSAnJHtuZXh0U2x1Z30nKS5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc2x1Z05hbWVzLmZvckVhY2goKHNsdWcpID0+IHtcbiAgICAgICAgICBpZiAoc2x1ZyA9PT0gbmV4dFNsdWcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgaGF2ZSB0aGUgc2FtZSBzbHVnIG5hbWUgXCIke25leHRTbHVnfVwiIHJlcGVhdCB3aXRoaW4gYSBzaW5nbGUgZHluYW1pYyBwYXRoYFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChzbHVnLnJlcGxhY2UoL1xcVy9nLCAnJykgPT09IG5leHRTZWdtZW50LnJlcGxhY2UoL1xcVy9nLCAnJykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgaGF2ZSB0aGUgc2x1ZyBuYW1lcyBcIiR7c2x1Z31cIiBhbmQgXCIke25leHRTbHVnfVwiIGRpZmZlciBvbmx5IGJ5IG5vbi13b3JkIHN5bWJvbHMgd2l0aGluIGEgc2luZ2xlIGR5bmFtaWMgcGF0aGBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgc2x1Z05hbWVzLnB1c2gobmV4dFNsdWcpXG4gICAgICB9XG5cbiAgICAgIGlmIChpc0NhdGNoQWxsKSB7XG4gICAgICAgIGlmIChpc09wdGlvbmFsKSB7XG4gICAgICAgICAgaWYgKHRoaXMucmVzdFNsdWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGJvdGggYW4gcmVxdWlyZWQgYW5kIG9wdGlvbmFsIGNhdGNoLWFsbCByb3V0ZSBhdCB0aGUgc2FtZSBsZXZlbCAoXCJbLi4uJHt0aGlzLnJlc3RTbHVnTmFtZX1dXCIgYW5kIFwiJHt1cmxQYXRoc1swXX1cIiApLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVTbHVnKHRoaXMub3B0aW9uYWxSZXN0U2x1Z05hbWUsIHNlZ21lbnROYW1lKVxuICAgICAgICAgIC8vIHNsdWdOYW1lIGlzIGtlcHQgYXMgaXQgY2FuIG9ubHkgYmUgb25lIHBhcnRpY3VsYXIgc2x1Z05hbWVcbiAgICAgICAgICB0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lID0gc2VnbWVudE5hbWVcbiAgICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbWy4uLl1dIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICBuZXh0U2VnbWVudCA9ICdbWy4uLl1dJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbmFsUmVzdFNsdWdOYW1lICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYFlvdSBjYW5ub3QgdXNlIGJvdGggYW4gb3B0aW9uYWwgYW5kIHJlcXVpcmVkIGNhdGNoLWFsbCByb3V0ZSBhdCB0aGUgc2FtZSBsZXZlbCAoXCJbWy4uLiR7dGhpcy5vcHRpb25hbFJlc3RTbHVnTmFtZX1dXVwiIGFuZCBcIiR7dXJsUGF0aHNbMF19XCIpLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBoYW5kbGVTbHVnKHRoaXMucmVzdFNsdWdOYW1lLCBzZWdtZW50TmFtZSlcbiAgICAgICAgICAvLyBzbHVnTmFtZSBpcyBrZXB0IGFzIGl0IGNhbiBvbmx5IGJlIG9uZSBwYXJ0aWN1bGFyIHNsdWdOYW1lXG4gICAgICAgICAgdGhpcy5yZXN0U2x1Z05hbWUgPSBzZWdtZW50TmFtZVxuICAgICAgICAgIC8vIG5leHRTZWdtZW50IGlzIG92ZXJ3cml0dGVuIHRvIFsuLi5dIHNvIHRoYXQgaXQgY2FuIGxhdGVyIGJlIHNvcnRlZCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICBuZXh0U2VnbWVudCA9ICdbLi4uXSdcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGlzT3B0aW9uYWwpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgT3B0aW9uYWwgcm91dGUgcGFyYW1ldGVycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQgKFwiJHt1cmxQYXRoc1swXX1cIikuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBoYW5kbGVTbHVnKHRoaXMuc2x1Z05hbWUsIHNlZ21lbnROYW1lKVxuICAgICAgICAvLyBzbHVnTmFtZSBpcyBrZXB0IGFzIGl0IGNhbiBvbmx5IGJlIG9uZSBwYXJ0aWN1bGFyIHNsdWdOYW1lXG4gICAgICAgIHRoaXMuc2x1Z05hbWUgPSBzZWdtZW50TmFtZVxuICAgICAgICAvLyBuZXh0U2VnbWVudCBpcyBvdmVyd3JpdHRlbiB0byBbXSBzbyB0aGF0IGl0IGNhbiBsYXRlciBiZSBzb3J0ZWQgc3BlY2lmaWNhbGx5XG4gICAgICAgIG5leHRTZWdtZW50ID0gJ1tdJ1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoaXMgVXJsTm9kZSBkb2Vzbid0IGhhdmUgdGhlIG5leHRTZWdtZW50IHlldCB3ZSBjcmVhdGUgYSBuZXcgY2hpbGQgVXJsTm9kZVxuICAgIGlmICghdGhpcy5jaGlsZHJlbi5oYXMobmV4dFNlZ21lbnQpKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuLnNldChuZXh0U2VnbWVudCwgbmV3IFVybE5vZGUoKSlcbiAgICB9XG5cbiAgICB0aGlzLmNoaWxkcmVuXG4gICAgICAuZ2V0KG5leHRTZWdtZW50KSFcbiAgICAgIC5faW5zZXJ0KHVybFBhdGhzLnNsaWNlKDEpLCBzbHVnTmFtZXMsIGlzQ2F0Y2hBbGwpXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNvcnRlZFJvdXRlcyhcbiAgbm9ybWFsaXplZFBhZ2VzOiBSZWFkb25seUFycmF5PHN0cmluZz5cbik6IHN0cmluZ1tdIHtcbiAgLy8gRmlyc3QgdGhlIFVybE5vZGUgaXMgY3JlYXRlZCwgYW5kIGV2ZXJ5IFVybE5vZGUgY2FuIGhhdmUgb25seSAxIGR5bmFtaWMgc2VnbWVudFxuICAvLyBFZyB5b3UgY2FuJ3QgaGF2ZSBwYWdlcy9bcG9zdF0vYWJjLmpzIGFuZCBwYWdlcy9baGVsbG9dL3NvbWV0aGluZy1lbHNlLmpzXG4gIC8vIE9ubHkgMSBkeW5hbWljIHNlZ21lbnQgcGVyIG5lc3RpbmcgbGV2ZWxcblxuICAvLyBTbyBpbiB0aGUgY2FzZSB0aGF0IGlzIHRlc3QvaW50ZWdyYXRpb24vZHluYW1pYy1yb3V0aW5nIGl0J2xsIGJlIHRoaXM6XG4gIC8vIHBhZ2VzL1twb3N0XS9jb21tZW50cy5qc1xuICAvLyBwYWdlcy9ibG9nL1twb3N0XS9jb21tZW50L1tpZF0uanNcbiAgLy8gQm90aCBhcmUgZmluZSBiZWNhdXNlIGBwYWdlcy9bcG9zdF1gIGFuZCBgcGFnZXMvYmxvZ2AgYXJlIG9uIHRoZSBzYW1lIGxldmVsXG4gIC8vIFNvIGluIHRoaXMgY2FzZSBgVXJsTm9kZWAgY3JlYXRlZCBoZXJlIGhhcyBgdGhpcy5zbHVnTmFtZSA9PT0gJ3Bvc3QnYFxuICAvLyBBbmQgc2luY2UgeW91ciBQUiBwYXNzZWQgdGhyb3VnaCBgc2x1Z05hbWVgIGFzIGFuIGFycmF5IGJhc2ljYWxseSBpdCdkIGluY2x1ZGluZyBpdCBpbiB0b28gbWFueSBwb3NzaWJpbGl0aWVzXG4gIC8vIEluc3RlYWQgd2hhdCBoYXMgdG8gYmUgcGFzc2VkIHRocm91Z2ggaXMgdGhlIHVwd2FyZHMgcGF0aCdzIGR5bmFtaWMgbmFtZXNcbiAgY29uc3Qgcm9vdCA9IG5ldyBVcmxOb2RlKClcblxuICAvLyBIZXJlIHRoZSBgcm9vdGAgZ2V0cyBpbmplY3RlZCBtdWx0aXBsZSBwYXRocywgYW5kIGluc2VydCB3aWxsIGJyZWFrIHRoZW0gdXAgaW50byBzdWJsZXZlbHNcbiAgbm9ybWFsaXplZFBhZ2VzLmZvckVhY2goKHBhZ2VQYXRoKSA9PiByb290Lmluc2VydChwYWdlUGF0aCkpXG4gIC8vIFNtb29zaCB3aWxsIHRoZW4gc29ydCB0aG9zZSBzdWJsZXZlbHMgdXAgdG8gdGhlIHBvaW50IHdoZXJlIHlvdSBnZXQgdGhlIGNvcnJlY3Qgcm91dGUgZGVmaW5pdGlvbiBwcmlvcml0eVxuICByZXR1cm4gcm9vdC5zbW9vc2goKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U29ydGVkUm91dGVPYmplY3RzPFQ+KFxuICBvYmplY3RzOiBUW10sXG4gIGdldHRlcjogKG9iajogVCkgPT4gc3RyaW5nXG4pOiBUW10ge1xuICAvLyBXZSdyZSBhc3N1bWluZyBoZXJlIHRoYXQgYWxsIHRoZSBwYXRobmFtZXMgYXJlIHVuaXF1ZSwgdGhhdCB3YXkgd2UgY2FuXG4gIC8vIHNvcnQgdGhlIGxpc3QgYW5kIHVzZSB0aGUgaW5kZXggYXMgdGhlIGtleS5cbiAgY29uc3QgaW5kZXhlczogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9XG4gIGNvbnN0IHBhdGhuYW1lczogc3RyaW5nW10gPSBbXVxuICBmb3IgKGxldCBpID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBwYXRobmFtZSA9IGdldHRlcihvYmplY3RzW2ldKVxuICAgIGluZGV4ZXNbcGF0aG5hbWVdID0gaVxuICAgIHBhdGhuYW1lc1tpXSA9IHBhdGhuYW1lXG4gIH1cblxuICAvLyBTb3J0IHRoZSBwYXRobmFtZXMuXG4gIGNvbnN0IHNvcnRlZCA9IGdldFNvcnRlZFJvdXRlcyhwYXRobmFtZXMpXG5cbiAgLy8gTWFwIHRoZSBzb3J0ZWQgcGF0aG5hbWVzIGJhY2sgdG8gdGhlIG9yaWdpbmFsIG9iamVjdHMgdXNpbmcgdGhlIG5ldyBzb3J0ZWRcbiAgLy8gaW5kZXguXG4gIHJldHVybiBzb3J0ZWQubWFwKChwYXRobmFtZSkgPT4gb2JqZWN0c1tpbmRleGVzW3BhdGhuYW1lXV0pXG59XG4iXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVPYmplY3RzIiwiZ2V0U29ydGVkUm91dGVzIiwiVXJsTm9kZSIsImluc2VydCIsInVybFBhdGgiLCJfaW5zZXJ0Iiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwic21vb3NoIiwiX3Ntb29zaCIsInByZWZpeCIsImNoaWxkcmVuUGF0aHMiLCJjaGlsZHJlbiIsImtleXMiLCJzb3J0Iiwic2x1Z05hbWUiLCJzcGxpY2UiLCJpbmRleE9mIiwicmVzdFNsdWdOYW1lIiwib3B0aW9uYWxSZXN0U2x1Z05hbWUiLCJyb3V0ZXMiLCJtYXAiLCJjIiwiZ2V0IiwicmVkdWNlIiwicHJldiIsImN1cnIiLCJwdXNoIiwicGxhY2Vob2xkZXIiLCJyIiwic2xpY2UiLCJFcnJvciIsInVuc2hpZnQiLCJ1cmxQYXRocyIsInNsdWdOYW1lcyIsImlzQ2F0Y2hBbGwiLCJsZW5ndGgiLCJuZXh0U2VnbWVudCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInNlZ21lbnROYW1lIiwiaXNPcHRpb25hbCIsInN1YnN0cmluZyIsImhhbmRsZVNsdWciLCJwcmV2aW91c1NsdWciLCJuZXh0U2x1ZyIsImZvckVhY2giLCJzbHVnIiwicmVwbGFjZSIsImhhcyIsInNldCIsIk1hcCIsIm5vcm1hbGl6ZWRQYWdlcyIsInJvb3QiLCJwYWdlUGF0aCIsIm9iamVjdHMiLCJnZXR0ZXIiLCJpbmRleGVzIiwicGF0aG5hbWVzIiwiaSIsInBhdGhuYW1lIiwic29ydGVkIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/runtime-config.external.js": +/*!**********************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/runtime-config.external.js ***! + \**********************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n setConfig: function() {\n return setConfig;\n }\n});\nlet runtimeConfig;\nconst _default = ()=>{\n return runtimeConfig;\n};\nfunction setConfig(configValue) {\n runtimeConfig = configValue;\n} //# sourceMappingURL=runtime-config.external.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcnVudGltZS1jb25maWcuZXh0ZXJuYWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRUEsT0FFQztlQUZEOztJQUlnQkEsU0FBUztlQUFUQTs7O0FBTmhCLElBQUlDO01BRUosV0FBZTtJQUNiLE9BQU9BO0FBQ1Q7QUFFTyxTQUFTRCxVQUFVRSxXQUFnQjtJQUN4Q0QsZ0JBQWdCQztBQUNsQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL3NoYXJlZC9saWIvcnVudGltZS1jb25maWcuZXh0ZXJuYWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsibGV0IHJ1bnRpbWVDb25maWc6IGFueVxuXG5leHBvcnQgZGVmYXVsdCAoKSA9PiB7XG4gIHJldHVybiBydW50aW1lQ29uZmlnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDb25maWcoY29uZmlnVmFsdWU6IGFueSk6IHZvaWQge1xuICBydW50aW1lQ29uZmlnID0gY29uZmlnVmFsdWVcbn1cbiJdLCJuYW1lcyI6WyJzZXRDb25maWciLCJydW50aW1lQ29uZmlnIiwiY29uZmlnVmFsdWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/runtime-config.external.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/segment.js": +/*!******************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/segment.js ***! + \******************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DEFAULT_SEGMENT_KEY: function() {\n return DEFAULT_SEGMENT_KEY;\n },\n PAGE_SEGMENT_KEY: function() {\n return PAGE_SEGMENT_KEY;\n },\n addSearchParamsIfPageSegment: function() {\n return addSearchParamsIfPageSegment;\n },\n isGroupSegment: function() {\n return isGroupSegment;\n },\n isParallelRouteSegment: function() {\n return isParallelRouteSegment;\n }\n});\nfunction isGroupSegment(segment) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')');\n}\nfunction isParallelRouteSegment(segment) {\n return segment.startsWith('@') && segment !== '@children';\n}\nfunction addSearchParamsIfPageSegment(segment, searchParams) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY);\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams);\n return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY;\n }\n return segment;\n}\nconst PAGE_SEGMENT_KEY = '__PAGE__';\nconst DEFAULT_SEGMENT_KEY = '__DEFAULT__'; //# sourceMappingURL=segment.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2VnbWVudC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUE0QmFBLG1CQUFtQjtlQUFuQkE7O0lBREFDLGdCQUFnQjtlQUFoQkE7O0lBaEJHQyw0QkFBNEI7ZUFBNUJBOztJQVRBQyxjQUFjO2VBQWRBOztJQUtBQyxzQkFBc0I7ZUFBdEJBOzs7QUFMVCxTQUFTRCxlQUFlRSxPQUFlO0lBQzVDLHNDQUFzQztJQUN0QyxPQUFPQSxPQUFPLENBQUMsRUFBRSxLQUFLLE9BQU9BLFFBQVFDLFFBQVEsQ0FBQztBQUNoRDtBQUVPLFNBQVNGLHVCQUF1QkMsT0FBZTtJQUNwRCxPQUFPQSxRQUFRRSxVQUFVLENBQUMsUUFBUUYsWUFBWTtBQUNoRDtBQUVPLFNBQVNILDZCQUNkRyxPQUFnQixFQUNoQkcsWUFBMkQ7SUFFM0QsTUFBTUMsZ0JBQWdCSixRQUFRSyxRQUFRLENBQUNUO0lBRXZDLElBQUlRLGVBQWU7UUFDakIsTUFBTUUsbUJBQW1CQyxLQUFLQyxTQUFTLENBQUNMO1FBQ3hDLE9BQU9HLHFCQUFxQixPQUN4QlYsbUJBQW1CLE1BQU1VLG1CQUN6QlY7SUFDTjtJQUVBLE9BQU9JO0FBQ1Q7QUFFTyxNQUFNSixtQkFBbUI7QUFDekIsTUFBTUQsc0JBQXNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvc2hhcmVkL2xpYi9zZWdtZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2VnbWVudCB9IGZyb20gJy4uLy4uL3NlcnZlci9hcHAtcmVuZGVyL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gaXNHcm91cFNlZ21lbnQoc2VnbWVudDogc3RyaW5nKSB7XG4gIC8vIFVzZSBhcnJheVswXSBmb3IgcGVyZm9ybWFudCBwdXJwb3NlXG4gIHJldHVybiBzZWdtZW50WzBdID09PSAnKCcgJiYgc2VnbWVudC5lbmRzV2l0aCgnKScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1BhcmFsbGVsUm91dGVTZWdtZW50KHNlZ21lbnQ6IHN0cmluZykge1xuICByZXR1cm4gc2VnbWVudC5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudCAhPT0gJ0BjaGlsZHJlbidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQoXG4gIHNlZ21lbnQ6IFNlZ21lbnQsXG4gIHNlYXJjaFBhcmFtczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ+XG4pIHtcbiAgY29uc3QgaXNQYWdlU2VnbWVudCA9IHNlZ21lbnQuaW5jbHVkZXMoUEFHRV9TRUdNRU5UX0tFWSlcblxuICBpZiAoaXNQYWdlU2VnbWVudCkge1xuICAgIGNvbnN0IHN0cmluZ2lmaWVkUXVlcnkgPSBKU09OLnN0cmluZ2lmeShzZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIHN0cmluZ2lmaWVkUXVlcnkgIT09ICd7fSdcbiAgICAgID8gUEFHRV9TRUdNRU5UX0tFWSArICc/JyArIHN0cmluZ2lmaWVkUXVlcnlcbiAgICAgIDogUEFHRV9TRUdNRU5UX0tFWVxuICB9XG5cbiAgcmV0dXJuIHNlZ21lbnRcbn1cblxuZXhwb3J0IGNvbnN0IFBBR0VfU0VHTUVOVF9LRVkgPSAnX19QQUdFX18nXG5leHBvcnQgY29uc3QgREVGQVVMVF9TRUdNRU5UX0tFWSA9ICdfX0RFRkFVTFRfXydcbiJdLCJuYW1lcyI6WyJERUZBVUxUX1NFR01FTlRfS0VZIiwiUEFHRV9TRUdNRU5UX0tFWSIsImFkZFNlYXJjaFBhcmFtc0lmUGFnZVNlZ21lbnQiLCJpc0dyb3VwU2VnbWVudCIsImlzUGFyYWxsZWxSb3V0ZVNlZ21lbnQiLCJzZWdtZW50IiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwic2VhcmNoUGFyYW1zIiwiaXNQYWdlU2VnbWVudCIsImluY2x1ZGVzIiwic3RyaW5naWZpZWRRdWVyeSIsIkpTT04iLCJzdHJpbmdpZnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/segment.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/side-effect.js": +/*!**********************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/side-effect.js ***! + \**********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return SideEffect;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nconst isServer = \"object\" === 'undefined';\nconst useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect;\nconst useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect;\nfunction SideEffect(props) {\n _s();\n const { headManager, reduceComponentsToState } = props;\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean));\n headManager.updateHead(reduceComponentsToState(headElements, props));\n }\n }\n if (isServer) {\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n emitChange();\n }\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n var _headManager_mountedInstances;\n headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.delete(props.children);\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n return ({\n \"SideEffect.useClientOnlyLayoutEffect\": ()=>{\n if (headManager) {\n headManager._pendingUpdate = emitChange;\n }\n }\n })[\"SideEffect.useClientOnlyLayoutEffect\"];\n }\n }[\"SideEffect.useClientOnlyLayoutEffect\"]);\n useClientOnlyEffect({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n return ({\n \"SideEffect.useClientOnlyEffect\": ()=>{\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate();\n headManager._pendingUpdate = null;\n }\n }\n })[\"SideEffect.useClientOnlyEffect\"];\n }\n }[\"SideEffect.useClientOnlyEffect\"]);\n return null;\n} //# sourceMappingURL=side-effect.js.map\n_s(SideEffect, \"gHVkikNHNxjVdD11eJBzaqkCiPY=\", false, function() {\n return [\n useClientOnlyLayoutEffect,\n useClientOnlyLayoutEffect,\n useClientOnlyEffect\n ];\n});\n_c = SideEffect;\nvar _c;\n$RefreshReg$(_c, \"SideEffect\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvc2lkZS1lZmZlY3QuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OzJDQW9CQTs7O2VBQXdCQTs7O21DQW5CdUM7QUFlL0QsTUFBTUMsV0FBVyxPQUFPQyxNQUFXO0FBQ25DLE1BQU1DLDRCQUE0QkYsV0FBVyxLQUFPLElBQUlHLE9BQUFBLGVBQWU7QUFDdkUsTUFBTUMsc0JBQXNCSixXQUFXLEtBQU8sSUFBSUssT0FBQUEsU0FBUztBQUU1QyxvQkFBb0JDLEtBQXNCOztJQUN2RCxNQUFNLEVBQUVDLFdBQVcsRUFBRUMsdUJBQXVCLEVBQUUsR0FBR0Y7SUFFakQsU0FBU0c7UUFDUCxJQUFJRixlQUFlQSxZQUFZRyxnQkFBZ0IsRUFBRTtZQUMvQyxNQUFNQyxlQUFlQyxPQUFBQSxRQUFRLENBQUNDLE9BQU8sQ0FDbkNDLE1BQU1DLElBQUksQ0FBQ1IsWUFBWUcsZ0JBQWdCLEVBQTBCTSxNQUFNLENBQ3JFQztZQUdKVixZQUFZVyxVQUFVLENBQUNWLHdCQUF3QkcsY0FBY0w7UUFDL0Q7SUFDRjtJQUVBLElBQUlOLFVBQVU7WUFDWk87UUFBQUEsZUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsQ0FBQUEsZ0NBQUFBLFlBQWFHLGdCQUFBQSxLQUFnQixnQkFBN0JILDhCQUErQlksR0FBRyxDQUFDYixNQUFNYyxRQUFRO1FBQ2pEWDtJQUNGOztnREFFMEI7Z0JBQ3hCRjtZQUFBQSxlQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxnQ0FBQUEsWUFBYUcsZ0JBQUFBLEtBQWdCLGdCQUE3QkgsOEJBQStCWSxHQUFHLENBQUNiLE1BQU1jLFFBQVE7WUFDakQ7d0RBQU87d0JBQ0xiO29CQUFBQSxlQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxDQUFBQSxnQ0FBQUEsWUFBYUcsZ0JBQUFBLEtBQWdCLGdCQUE3QkgsOEJBQStCYyxNQUFNLENBQUNmLE1BQU1jLFFBQVE7Z0JBQ3REOztRQUNGOztJQUVBLGtGQUFrRjtJQUNsRixvRkFBb0Y7SUFDcEYsZ0VBQWdFO0lBQ2hFLHFGQUFxRjtJQUNyRixtRkFBbUY7O2dEQUN6RDtZQUN4QixJQUFJYixhQUFhO2dCQUNmQSxZQUFZZSxjQUFjLEdBQUdiO1lBQy9CO1lBQ0E7d0RBQU87b0JBQ0wsSUFBSUYsYUFBYTt3QkFDZkEsWUFBWWUsY0FBYyxHQUFHYjtvQkFDL0I7Z0JBQ0Y7O1FBQ0Y7OzswQ0FFb0I7WUFDbEIsSUFBSUYsZUFBZUEsWUFBWWUsY0FBYyxFQUFFO2dCQUM3Q2YsWUFBWWUsY0FBYztnQkFDMUJmLFlBQVllLGNBQWMsR0FBRztZQUMvQjtZQUNBO2tEQUFPO29CQUNMLElBQUlmLGVBQWVBLFlBQVllLGNBQWMsRUFBRTt3QkFDN0NmLFlBQVllLGNBQWM7d0JBQzFCZixZQUFZZSxjQUFjLEdBQUc7b0JBQy9CO2dCQUNGOztRQUNGOztJQUVBLE9BQU87QUFDVDs7O1FBckNFcEI7UUFZQUE7UUFXQUU7OztLQTFDc0JMIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvc2hhcmVkL2xpYi9zaWRlLWVmZmVjdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBDaGlsZHJlbiwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QsIHR5cGUgSlNYIH0gZnJvbSAncmVhY3QnXG5cbnR5cGUgU3RhdGUgPSBKU1guRWxlbWVudFtdIHwgdW5kZWZpbmVkXG5cbmV4cG9ydCB0eXBlIFNpZGVFZmZlY3RQcm9wcyA9IHtcbiAgcmVkdWNlQ29tcG9uZW50c1RvU3RhdGU6IDxUIGV4dGVuZHMge30+KFxuICAgIGNvbXBvbmVudHM6IEFycmF5PFJlYWN0LlJlYWN0RWxlbWVudDxhbnk+PixcbiAgICBwcm9wczogVFxuICApID0+IFN0YXRlXG4gIGhhbmRsZVN0YXRlQ2hhbmdlPzogKHN0YXRlOiBTdGF0ZSkgPT4gdm9pZFxuICBoZWFkTWFuYWdlcjogYW55XG4gIGluQW1wTW9kZT86IGJvb2xlYW5cbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufVxuXG5jb25zdCBpc1NlcnZlciA9IHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnXG5jb25zdCB1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0ID0gaXNTZXJ2ZXIgPyAoKSA9PiB7fSA6IHVzZUxheW91dEVmZmVjdFxuY29uc3QgdXNlQ2xpZW50T25seUVmZmVjdCA9IGlzU2VydmVyID8gKCkgPT4ge30gOiB1c2VFZmZlY3RcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2lkZUVmZmVjdChwcm9wczogU2lkZUVmZmVjdFByb3BzKSB7XG4gIGNvbnN0IHsgaGVhZE1hbmFnZXIsIHJlZHVjZUNvbXBvbmVudHNUb1N0YXRlIH0gPSBwcm9wc1xuXG4gIGZ1bmN0aW9uIGVtaXRDaGFuZ2UoKSB7XG4gICAgaWYgKGhlYWRNYW5hZ2VyICYmIGhlYWRNYW5hZ2VyLm1vdW50ZWRJbnN0YW5jZXMpIHtcbiAgICAgIGNvbnN0IGhlYWRFbGVtZW50cyA9IENoaWxkcmVuLnRvQXJyYXkoXG4gICAgICAgIEFycmF5LmZyb20oaGVhZE1hbmFnZXIubW91bnRlZEluc3RhbmNlcyBhcyBTZXQ8UmVhY3QuUmVhY3ROb2RlPikuZmlsdGVyKFxuICAgICAgICAgIEJvb2xlYW5cbiAgICAgICAgKVxuICAgICAgKSBhcyBSZWFjdC5SZWFjdEVsZW1lbnRbXVxuICAgICAgaGVhZE1hbmFnZXIudXBkYXRlSGVhZChyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZShoZWFkRWxlbWVudHMsIHByb3BzKSlcbiAgICB9XG4gIH1cblxuICBpZiAoaXNTZXJ2ZXIpIHtcbiAgICBoZWFkTWFuYWdlcj8ubW91bnRlZEluc3RhbmNlcz8uYWRkKHByb3BzLmNoaWxkcmVuKVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9XG5cbiAgdXNlQ2xpZW50T25seUxheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmFkZChwcm9wcy5jaGlsZHJlbilcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaGVhZE1hbmFnZXI/Lm1vdW50ZWRJbnN0YW5jZXM/LmRlbGV0ZShwcm9wcy5jaGlsZHJlbilcbiAgICB9XG4gIH0pXG5cbiAgLy8gV2UgbmVlZCB0byBjYWxsIGB1cGRhdGVIZWFkYCBtZXRob2Qgd2hlbmV2ZXIgdGhlIGBTaWRlRWZmZWN0YCBpcyB0cmlnZ2VyIGluIGFsbFxuICAvLyBsaWZlLWN5Y2xlczogbW91bnQsIHVwZGF0ZSwgdW5tb3VudC4gSG93ZXZlciwgaWYgdGhlcmUgYXJlIG11bHRpcGxlIGBTaWRlRWZmZWN0YHNcbiAgLy8gYmVpbmcgcmVuZGVyZWQsIHdlIG9ubHkgdHJpZ2dlciB0aGUgbWV0aG9kIGZyb20gdGhlIGxhc3Qgb25lLlxuICAvLyBUaGlzIGlzIGVuc3VyZWQgYnkga2VlcGluZyB0aGUgbGFzdCB1bmZsdXNoZWQgYHVwZGF0ZUhlYWRgIGluIHRoZSBgX3BlbmRpbmdVcGRhdGVgXG4gIC8vIHNpbmdsZXRvbiBpbiB0aGUgbGF5b3V0IGVmZmVjdCBwYXNzLCBhbmQgYWN0dWFsbHkgdHJpZ2dlciBpdCBpbiB0aGUgZWZmZWN0IHBhc3MuXG4gIHVzZUNsaWVudE9ubHlMYXlvdXRFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChoZWFkTWFuYWdlcikge1xuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBlbWl0Q2hhbmdlXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoaGVhZE1hbmFnZXIpIHtcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBlbWl0Q2hhbmdlXG4gICAgICB9XG4gICAgfVxuICB9KVxuXG4gIHVzZUNsaWVudE9ubHlFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChoZWFkTWFuYWdlciAmJiBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSkge1xuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUoKVxuICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUgPSBudWxsXG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAoaGVhZE1hbmFnZXIgJiYgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUpIHtcbiAgICAgICAgaGVhZE1hbmFnZXIuX3BlbmRpbmdVcGRhdGUoKVxuICAgICAgICBoZWFkTWFuYWdlci5fcGVuZGluZ1VwZGF0ZSA9IG51bGxcbiAgICAgIH1cbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG51bGxcbn1cbiJdLCJuYW1lcyI6WyJTaWRlRWZmZWN0IiwiaXNTZXJ2ZXIiLCJ3aW5kb3ciLCJ1c2VDbGllbnRPbmx5TGF5b3V0RWZmZWN0IiwidXNlTGF5b3V0RWZmZWN0IiwidXNlQ2xpZW50T25seUVmZmVjdCIsInVzZUVmZmVjdCIsInByb3BzIiwiaGVhZE1hbmFnZXIiLCJyZWR1Y2VDb21wb25lbnRzVG9TdGF0ZSIsImVtaXRDaGFuZ2UiLCJtb3VudGVkSW5zdGFuY2VzIiwiaGVhZEVsZW1lbnRzIiwiQ2hpbGRyZW4iLCJ0b0FycmF5IiwiQXJyYXkiLCJmcm9tIiwiZmlsdGVyIiwiQm9vbGVhbiIsInVwZGF0ZUhlYWQiLCJhZGQiLCJjaGlsZHJlbiIsImRlbGV0ZSIsIl9wZW5kaW5nVXBkYXRlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/side-effect.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/utils.js": +/*!****************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/utils.js ***! + \****************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n 'CLS',\n 'FCP',\n 'FID',\n 'INP',\n 'LCP',\n 'TTFB'\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? ':' + port : '');\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown';\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split('?');\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/').replace(/\\/\\/+/g, '/') + (urlParts[1] ? \"?\" + urlParts.slice(1).join('?') : '');\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw new Error(message);\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw new Error(message);\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== 'undefined';\nconst ST = SP && [\n 'mark',\n 'measure',\n 'getEntriesByName'\n].every((method)=>typeof performance[method] === 'function');\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = 'ENOENT';\n this.name = 'PageNotFoundError';\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = 'ENOENT';\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBb2FhQSxXQUFXO2VBQVhBOztJQW9CQUMsdUJBQXVCO2VBQXZCQTs7SUFQQUMsaUJBQWlCO2VBQWpCQTs7SUFaQUMsY0FBYztlQUFkQTs7SUFDQUMsaUJBQWlCO2VBQWpCQTs7SUFUQUMsRUFBRTtlQUFGQTs7SUFDQUMsRUFBRTtlQUFGQTs7SUFsWEFDLFVBQVU7ZUFBVkE7O0lBc1FHQyxRQUFRO2VBQVJBOztJQStCQUMsY0FBYztlQUFkQTs7SUFYQUMsaUJBQWlCO2VBQWpCQTs7SUFLQUMsTUFBTTtlQUFOQTs7SUFQSEMsYUFBYTtlQUFiQTs7SUFtQkdDLFNBQVM7ZUFBVEE7O0lBa0JNQyxtQkFBbUI7ZUFBbkJBOztJQWROQyx3QkFBd0I7ZUFBeEJBOztJQStHQUMsY0FBYztlQUFkQTs7O0FBOVpULE1BQU1ULGFBQWE7SUFBQztJQUFPO0lBQU87SUFBTztJQUFPO0lBQU87Q0FBTztBQXNROUQsU0FBU0MsU0FDZFMsRUFBSztJQUVMLElBQUlDLE9BQU87SUFDWCxJQUFJQztJQUVKLE9BQVE7eUNBQUlDLE9BQUFBLElBQUFBLE1BQUFBLE9BQUFBLE9BQUFBLEdBQUFBLE9BQUFBLE1BQUFBLE9BQUFBO1lBQUFBLElBQUFBLENBQUFBLEtBQUFBLEdBQUFBLFNBQUFBLENBQUFBLEtBQUFBOztRQUNWLElBQUksQ0FBQ0YsTUFBTTtZQUNUQSxPQUFPO1lBQ1BDLFNBQVNGLE1BQU1HO1FBQ2pCO1FBQ0EsT0FBT0Q7SUFDVDtBQUNGO0FBRUEsMERBQTBEO0FBQzFELGdFQUFnRTtBQUNoRSxNQUFNRSxxQkFBcUI7QUFDcEIsTUFBTVQsZ0JBQWdCLENBQUNVLE1BQWdCRCxtQkFBbUJFLElBQUksQ0FBQ0Q7QUFFL0QsU0FBU1o7SUFDZCxNQUFNLEVBQUVjLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MsT0FBT0MsUUFBUTtJQUNwRCxPQUFVSixXQUFTLE9BQUlDLFdBQVdDLENBQUFBLE9BQU8sTUFBTUEsT0FBTyxHQUFDO0FBQ3pEO0FBRU8sU0FBU2Y7SUFDZCxNQUFNLEVBQUVrQixJQUFJLEVBQUUsR0FBR0YsT0FBT0MsUUFBUTtJQUNoQyxNQUFNRSxTQUFTcEI7SUFDZixPQUFPbUIsS0FBS0UsU0FBUyxDQUFDRCxPQUFPRSxNQUFNO0FBQ3JDO0FBRU8sU0FBU3ZCLGVBQWtCd0IsU0FBMkI7SUFDM0QsT0FBTyxPQUFPQSxjQUFjLFdBQ3hCQSxZQUNBQSxVQUFVQyxXQUFXLElBQUlELFVBQVVFLElBQUksSUFBSTtBQUNqRDtBQUVPLFNBQVN0QixVQUFVdUIsR0FBbUI7SUFDM0MsT0FBT0EsSUFBSUMsUUFBUSxJQUFJRCxJQUFJRSxXQUFXO0FBQ3hDO0FBRU8sU0FBU3ZCLHlCQUF5Qk8sR0FBVztJQUNsRCxNQUFNaUIsV0FBV2pCLElBQUlrQixLQUFLLENBQUM7SUFDM0IsTUFBTUMsYUFBYUYsUUFBUSxDQUFDLEVBQUU7SUFFOUIsT0FDRUUsV0FDRSw0REFBNEQ7SUFDNUQsMENBQTBDO0tBQ3pDQyxPQUFPLENBQUMsT0FBTyxLQUNmQSxPQUFPLENBQUMsVUFBVSxPQUNwQkgsQ0FBQUEsUUFBUSxDQUFDLEVBQUUsR0FBSSxNQUFHQSxTQUFTSSxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDLE9BQVMsR0FBQztBQUV4RDtBQUVPLGVBQWU5QixvQkFJcEIrQixHQUFnQyxFQUFFQyxHQUFNO0lBQ3hDLElBQUlDLElBQW9CLEVBQW1CO1lBQ3JDRjtRQUFKLHNCQUFJQSxJQUFJSyxTQUFBQSxLQUFTLGdCQUFiTCxlQUFlTSxlQUFlLEVBQUU7WUFDbEMsTUFBTUMsVUFBVyxNQUFHM0MsZUFDbEJvQyxPQUNBO1lBQ0YsTUFBTSxJQUFJUSxNQUFNRDtRQUNsQjtJQUNGO0lBQ0EsaURBQWlEO0lBQ2pELE1BQU1oQixNQUFNVSxJQUFJVixHQUFHLElBQUtVLElBQUlBLEdBQUcsSUFBSUEsSUFBSUEsR0FBRyxDQUFDVixHQUFHO0lBRTlDLElBQUksQ0FBQ1MsSUFBSU0sZUFBZSxFQUFFO1FBQ3hCLElBQUlMLElBQUlBLEdBQUcsSUFBSUEsSUFBSWIsU0FBUyxFQUFFO1lBQzVCLCtCQUErQjtZQUMvQixPQUFPO2dCQUNMcUIsV0FBVyxNQUFNeEMsb0JBQW9CZ0MsSUFBSWIsU0FBUyxFQUFFYSxJQUFJQSxHQUFHO1lBQzdEO1FBQ0Y7UUFDQSxPQUFPLENBQUM7SUFDVjtJQUVBLE1BQU1TLFFBQVEsTUFBTVYsSUFBSU0sZUFBZSxDQUFDTDtJQUV4QyxJQUFJVixPQUFPdkIsVUFBVXVCLE1BQU07UUFDekIsT0FBT21CO0lBQ1Q7SUFFQSxJQUFJLENBQUNBLE9BQU87UUFDVixNQUFNSCxVQUFXLE1BQUczQyxlQUNsQm9DLE9BQ0EsaUVBQThEVSxRQUFNO1FBQ3RFLE1BQU0sSUFBSUYsTUFBTUQ7SUFDbEI7SUFFQSxJQUFJTCxJQUFvQixFQUFtQjtRQUN6QyxJQUFJUyxPQUFPQyxJQUFJLENBQUNGLE9BQU92QixNQUFNLEtBQUssS0FBSyxDQUFDYyxJQUFJQSxHQUFHLEVBQUU7WUFDL0NZLFFBQVFDLElBQUksQ0FDVCxLQUFFbEQsZUFDRG9DLE9BQ0E7UUFFTjtJQUNGO0lBRUEsT0FBT1U7QUFDVDtBQUVPLE1BQU1sRCxLQUFLLE9BQU91RCxnQkFBZ0I7QUFDbEMsTUFBTXRELEtBQ1hELE1BQ0M7SUFBQztJQUFRO0lBQVc7Q0FBbUIsQ0FBV3dELEtBQUssQ0FDdEQsQ0FBQ0MsU0FBVyxPQUFPRixXQUFXLENBQUNFLE9BQU8sS0FBSztBQUd4QyxNQUFNOUQsb0JBQW9CcUQ7QUFBTztBQUNqQyxNQUFNbEQsdUJBQXVCa0Q7QUFBTztBQUNwQyxNQUFNakQsMEJBQTBCaUQ7SUFHckNVLFlBQVlDLElBQVksQ0FBRTtRQUN4QixLQUFLO1FBQ0wsSUFBSSxDQUFDQyxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUM5QixJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNpQixPQUFPLEdBQUksa0NBQStCWTtJQUNqRDtBQUNGO0FBRU8sTUFBTTlELDBCQUEwQm1EO0lBQ3JDVSxZQUFZQyxJQUFZLEVBQUVaLE9BQWUsQ0FBRTtRQUN6QyxLQUFLO1FBQ0wsSUFBSSxDQUFDQSxPQUFPLEdBQUksMENBQXVDWSxPQUFLLE1BQUdaO0lBQ2pFO0FBQ0Y7QUFFTyxNQUFNbkQsZ0NBQWdDb0Q7SUFFM0NVLGFBQWM7UUFDWixLQUFLO1FBQ0wsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNiLE9BQU8sR0FBSTtJQUNsQjtBQUNGO0FBV08sU0FBU3BDLGVBQWVrRCxLQUFZO0lBQ3pDLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQztRQUFFaEIsU0FBU2MsTUFBTWQsT0FBTztRQUFFaUIsT0FBT0gsTUFBTUcsS0FBSztJQUFDO0FBQ3JFIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvc2hhcmVkL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEh0bWxQcm9wcyB9IGZyb20gJy4vaHRtbC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRUeXBlLCBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgRG9tYWluTG9jYWxlIH0gZnJvbSAnLi4vLi4vc2VydmVyL2NvbmZpZydcbmltcG9ydCB0eXBlIHsgRW52IH0gZnJvbSAnQG5leHQvZW52J1xuaW1wb3J0IHR5cGUgeyBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCdcbmltcG9ydCB0eXBlIHsgTmV4dFJvdXRlciB9IGZyb20gJy4vcm91dGVyL3JvdXRlcidcbmltcG9ydCB0eXBlIHsgUGFyc2VkVXJsUXVlcnkgfSBmcm9tICdxdWVyeXN0cmluZydcbmltcG9ydCB0eXBlIHsgUHJldmlld0RhdGEgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ09NUElMRVJfTkFNRVMgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIGZzIGZyb20gJ2ZzJ1xuXG5leHBvcnQgdHlwZSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQ29udGV4dCBleHRlbmRzIEJhc2VDb250ZXh0ID0gTmV4dFBhZ2VDb250ZXh0LFxuICBJbml0aWFsUHJvcHMgPSB7fSxcbiAgUHJvcHMgPSB7fSxcbj4gPSBDb21wb25lbnRUeXBlPFByb3BzPiAmIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGluaXRpYWwgcGFnZSBsb2FkIGRhdGEgcG9wdWxhdGlvbi4gRGF0YSByZXR1cm5lZCBmcm9tIGBnZXRJbml0aWFsUHJvcHNgIGlzIHNlcmlhbGl6ZWQgd2hlbiBzZXJ2ZXIgcmVuZGVyZWQuXG4gICAqIE1ha2Ugc3VyZSB0byByZXR1cm4gcGxhaW4gYE9iamVjdGAgd2l0aG91dCB1c2luZyBgRGF0ZWAsIGBNYXBgLCBgU2V0YC5cbiAgICogQHBhcmFtIGNvbnRleHQgQ29udGV4dCBvZiBgcGFnZWBcbiAgICovXG4gIGdldEluaXRpYWxQcm9wcz8oY29udGV4dDogQ29udGV4dCk6IEluaXRpYWxQcm9wcyB8IFByb21pc2U8SW5pdGlhbFByb3BzPlxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFR5cGUgPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgRG9jdW1lbnRDb250ZXh0LFxuICBEb2N1bWVudEluaXRpYWxQcm9wcyxcbiAgRG9jdW1lbnRQcm9wc1xuPlxuXG5leHBvcnQgdHlwZSBBcHBUeXBlPFAgPSB7fT4gPSBOZXh0Q29tcG9uZW50VHlwZTxcbiAgQXBwQ29udGV4dFR5cGUsXG4gIFAsXG4gIEFwcFByb3BzVHlwZTxhbnksIFA+XG4+XG5cbmV4cG9ydCB0eXBlIEFwcFRyZWVUeXBlID0gQ29tcG9uZW50VHlwZTxcbiAgQXBwSW5pdGlhbFByb3BzICYgeyBbbmFtZTogc3RyaW5nXTogYW55IH1cbj5cblxuLyoqXG4gKiBXZWIgdml0YWxzIHByb3ZpZGVkIHRvIF9hcHAucmVwb3J0V2ViVml0YWxzIGJ5IENvcmUgV2ViIFZpdGFscyBwbHVnaW4gZGV2ZWxvcGVkIGJ5IEdvb2dsZSBDaHJvbWUgdGVhbS5cbiAqIGh0dHBzOi8vbmV4dGpzLm9yZy9ibG9nL25leHQtOS00I2ludGVncmF0ZWQtd2ViLXZpdGFscy1yZXBvcnRpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFdFQl9WSVRBTFMgPSBbJ0NMUycsICdGQ1AnLCAnRklEJywgJ0lOUCcsICdMQ1AnLCAnVFRGQiddIGFzIGNvbnN0XG5leHBvcnQgdHlwZSBOZXh0V2ViVml0YWxzTWV0cmljID0ge1xuICBpZDogc3RyaW5nXG4gIHN0YXJ0VGltZTogbnVtYmVyXG4gIHZhbHVlOiBudW1iZXJcbiAgYXR0cmlidXRpb24/OiB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfVxufSAmIChcbiAgfCB7XG4gICAgICBsYWJlbDogJ3dlYi12aXRhbCdcbiAgICAgIG5hbWU6ICh0eXBlb2YgV0VCX1ZJVEFMUylbbnVtYmVyXVxuICAgIH1cbiAgfCB7XG4gICAgICBsYWJlbDogJ2N1c3RvbSdcbiAgICAgIG5hbWU6XG4gICAgICAgIHwgJ05leHQuanMtaHlkcmF0aW9uJ1xuICAgICAgICB8ICdOZXh0LmpzLXJvdXRlLWNoYW5nZS10by1yZW5kZXInXG4gICAgICAgIHwgJ05leHQuanMtcmVuZGVyJ1xuICAgIH1cbilcblxuZXhwb3J0IHR5cGUgRW5oYW5jZXI8Qz4gPSAoQ29tcG9uZW50OiBDKSA9PiBDXG5cbmV4cG9ydCB0eXBlIENvbXBvbmVudHNFbmhhbmNlciA9XG4gIHwge1xuICAgICAgZW5oYW5jZUFwcD86IEVuaGFuY2VyPEFwcFR5cGU+XG4gICAgICBlbmhhbmNlQ29tcG9uZW50PzogRW5oYW5jZXI8TmV4dENvbXBvbmVudFR5cGU+XG4gICAgfVxuICB8IEVuaGFuY2VyPE5leHRDb21wb25lbnRUeXBlPlxuXG5leHBvcnQgdHlwZSBSZW5kZXJQYWdlUmVzdWx0ID0ge1xuICBodG1sOiBzdHJpbmdcbiAgaGVhZD86IEFycmF5PEpTWC5FbGVtZW50IHwgbnVsbD5cbn1cblxuZXhwb3J0IHR5cGUgUmVuZGVyUGFnZSA9IChcbiAgb3B0aW9ucz86IENvbXBvbmVudHNFbmhhbmNlclxuKSA9PiBEb2N1bWVudEluaXRpYWxQcm9wcyB8IFByb21pc2U8RG9jdW1lbnRJbml0aWFsUHJvcHM+XG5cbmV4cG9ydCB0eXBlIEJhc2VDb250ZXh0ID0ge1xuICByZXM/OiBTZXJ2ZXJSZXNwb25zZVxuICBbazogc3RyaW5nXTogYW55XG59XG5cbmV4cG9ydCB0eXBlIE5FWFRfREFUQSA9IHtcbiAgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgcGFnZTogc3RyaW5nXG4gIHF1ZXJ5OiBQYXJzZWRVcmxRdWVyeVxuICBidWlsZElkOiBzdHJpbmdcbiAgYXNzZXRQcmVmaXg/OiBzdHJpbmdcbiAgcnVudGltZUNvbmZpZz86IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgbmV4dEV4cG9ydD86IGJvb2xlYW5cbiAgYXV0b0V4cG9ydD86IGJvb2xlYW5cbiAgaXNGYWxsYmFjaz86IGJvb2xlYW5cbiAgaXNFeHBlcmltZW50YWxDb21waWxlPzogYm9vbGVhblxuICBkeW5hbWljSWRzPzogKHN0cmluZyB8IG51bWJlcilbXVxuICBlcnI/OiBFcnJvciAmIHtcbiAgICBzdGF0dXNDb2RlPzogbnVtYmVyXG4gICAgc291cmNlPzogdHlwZW9mIENPTVBJTEVSX05BTUVTLnNlcnZlciB8IHR5cGVvZiBDT01QSUxFUl9OQU1FUy5lZGdlU2VydmVyXG4gIH1cbiAgZ3NwPzogYm9vbGVhblxuICBnc3NwPzogYm9vbGVhblxuICBjdXN0b21TZXJ2ZXI/OiBib29sZWFuXG4gIGdpcD86IGJvb2xlYW5cbiAgYXBwR2lwPzogYm9vbGVhblxuICBsb2NhbGU/OiBzdHJpbmdcbiAgbG9jYWxlcz86IHN0cmluZ1tdXG4gIGRlZmF1bHRMb2NhbGU/OiBzdHJpbmdcbiAgZG9tYWluTG9jYWxlcz86IERvbWFpbkxvY2FsZVtdXG4gIHNjcmlwdExvYWRlcj86IGFueVtdXG4gIGlzUHJldmlldz86IGJvb2xlYW5cbiAgbm90Rm91bmRTcmNQYWdlPzogc3RyaW5nXG59XG5cbi8qKlxuICogYE5leHRgIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0UGFnZUNvbnRleHQge1xuICAvKipcbiAgICogRXJyb3Igb2JqZWN0IGlmIGVuY291bnRlcmVkIGR1cmluZyByZW5kZXJpbmdcbiAgICovXG4gIGVycj86IChFcnJvciAmIHsgc3RhdHVzQ29kZT86IG51bWJlciB9KSB8IG51bGxcbiAgLyoqXG4gICAqIGBIVFRQYCByZXF1ZXN0IG9iamVjdC5cbiAgICovXG4gIHJlcT86IEluY29taW5nTWVzc2FnZVxuICAvKipcbiAgICogYEhUVFBgIHJlc3BvbnNlIG9iamVjdC5cbiAgICovXG4gIHJlcz86IFNlcnZlclJlc3BvbnNlXG4gIC8qKlxuICAgKiBQYXRoIHNlY3Rpb24gb2YgYFVSTGAuXG4gICAqL1xuICBwYXRobmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBRdWVyeSBzdHJpbmcgc2VjdGlvbiBvZiBgVVJMYCBwYXJzZWQgYXMgYW4gb2JqZWN0LlxuICAgKi9cbiAgcXVlcnk6IFBhcnNlZFVybFF1ZXJ5XG4gIC8qKlxuICAgKiBgU3RyaW5nYCBvZiB0aGUgYWN0dWFsIHBhdGggaW5jbHVkaW5nIHF1ZXJ5LlxuICAgKi9cbiAgYXNQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGFjdGl2ZSBsb2NhbGVcbiAgICovXG4gIGxvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogQWxsIGNvbmZpZ3VyZWQgbG9jYWxlc1xuICAgKi9cbiAgbG9jYWxlcz86IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJlZCBkZWZhdWx0IGxvY2FsZVxuICAgKi9cbiAgZGVmYXVsdExvY2FsZT86IHN0cmluZ1xuICAvKipcbiAgICogYENvbXBvbmVudGAgdGhlIHRyZWUgb2YgdGhlIEFwcCB0byB1c2UgaWYgbmVlZGluZyB0byByZW5kZXIgc2VwYXJhdGVseVxuICAgKi9cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbn1cblxuZXhwb3J0IHR5cGUgQXBwQ29udGV4dFR5cGU8Um91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXI+ID0ge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dD5cbiAgQXBwVHJlZTogQXBwVHJlZVR5cGVcbiAgY3R4OiBOZXh0UGFnZUNvbnRleHRcbiAgcm91dGVyOiBSb3V0ZXJcbn1cblxuZXhwb3J0IHR5cGUgQXBwSW5pdGlhbFByb3BzPFBhZ2VQcm9wcyA9IGFueT4gPSB7XG4gIHBhZ2VQcm9wczogUGFnZVByb3BzXG59XG5cbmV4cG9ydCB0eXBlIEFwcFByb3BzVHlwZTxcbiAgUm91dGVyIGV4dGVuZHMgTmV4dFJvdXRlciA9IE5leHRSb3V0ZXIsXG4gIFBhZ2VQcm9wcyA9IHt9LFxuPiA9IEFwcEluaXRpYWxQcm9wczxQYWdlUHJvcHM+ICYge1xuICBDb21wb25lbnQ6IE5leHRDb21wb25lbnRUeXBlPE5leHRQYWdlQ29udGV4dCwgYW55LCBhbnk+XG4gIHJvdXRlcjogUm91dGVyXG4gIF9fTl9TU0c/OiBib29sZWFuXG4gIF9fTl9TU1A/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIERvY3VtZW50Q29udGV4dCA9IE5leHRQYWdlQ29udGV4dCAmIHtcbiAgcmVuZGVyUGFnZTogUmVuZGVyUGFnZVxuICBkZWZhdWx0R2V0SW5pdGlhbFByb3BzKFxuICAgIGN0eDogRG9jdW1lbnRDb250ZXh0LFxuICAgIG9wdGlvbnM/OiB7IG5vbmNlPzogc3RyaW5nIH1cbiAgKTogUHJvbWlzZTxEb2N1bWVudEluaXRpYWxQcm9wcz5cbn1cblxuZXhwb3J0IHR5cGUgRG9jdW1lbnRJbml0aWFsUHJvcHMgPSBSZW5kZXJQYWdlUmVzdWx0ICYge1xuICBzdHlsZXM/OiBSZWFjdC5SZWFjdEVsZW1lbnRbXSB8IEl0ZXJhYmxlPFJlYWN0LlJlYWN0Tm9kZT4gfCBKU1guRWxlbWVudFxufVxuXG5leHBvcnQgdHlwZSBEb2N1bWVudFByb3BzID0gRG9jdW1lbnRJbml0aWFsUHJvcHMgJiBIdG1sUHJvcHNcblxuLyoqXG4gKiBOZXh0IGBBUElgIHJvdXRlIHJlcXVlc3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXh0QXBpUmVxdWVzdCBleHRlbmRzIEluY29taW5nTWVzc2FnZSB7XG4gIC8qKlxuICAgKiBPYmplY3Qgb2YgYHF1ZXJ5YCB2YWx1ZXMgZnJvbSB1cmxcbiAgICovXG4gIHF1ZXJ5OiBQYXJ0aWFsPHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXVxuICB9PlxuICAvKipcbiAgICogT2JqZWN0IG9mIGBjb29raWVzYCBmcm9tIGhlYWRlclxuICAgKi9cbiAgY29va2llczogUGFydGlhbDx7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nXG4gIH0+XG5cbiAgYm9keTogYW55XG5cbiAgZW52OiBFbnZcblxuICBkcmFmdE1vZGU/OiBib29sZWFuXG5cbiAgcHJldmlldz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFByZXZpZXcgZGF0YSBzZXQgb24gdGhlIHJlcXVlc3QsIGlmIGFueVxuICAgKiAqL1xuICBwcmV2aWV3RGF0YT86IFByZXZpZXdEYXRhXG59XG5cbi8qKlxuICogU2VuZCBib2R5IG9mIHJlc3BvbnNlXG4gKi9cbnR5cGUgU2VuZDxUPiA9IChib2R5OiBUKSA9PiB2b2lkXG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSByZXNwb25zZVxuICovXG5leHBvcnQgdHlwZSBOZXh0QXBpUmVzcG9uc2U8RGF0YSA9IGFueT4gPSBTZXJ2ZXJSZXNwb25zZSAmIHtcbiAgLyoqXG4gICAqIFNlbmQgZGF0YSBgYW55YCBkYXRhIGluIHJlc3BvbnNlXG4gICAqL1xuICBzZW5kOiBTZW5kPERhdGE+XG4gIC8qKlxuICAgKiBTZW5kIGRhdGEgYGpzb25gIGRhdGEgaW4gcmVzcG9uc2VcbiAgICovXG4gIGpzb246IFNlbmQ8RGF0YT5cbiAgc3RhdHVzOiAoc3RhdHVzQ29kZTogbnVtYmVyKSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3QodXJsOiBzdHJpbmcpOiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cbiAgcmVkaXJlY3Qoc3RhdHVzOiBudW1iZXIsIHVybDogc3RyaW5nKTogTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIFNldCBkcmFmdCBtb2RlXG4gICAqL1xuICBzZXREcmFmdE1vZGU6IChvcHRpb25zOiB7IGVuYWJsZTogYm9vbGVhbiB9KSA9PiBOZXh0QXBpUmVzcG9uc2U8RGF0YT5cblxuICAvKipcbiAgICogU2V0IHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIHNldFByZXZpZXdEYXRhOiAoXG4gICAgZGF0YTogb2JqZWN0IHwgc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIChpbiBzZWNvbmRzKSBmb3IgdGhlIHByZXZpZXcgc2Vzc2lvbiB0byBsYXN0IGZvci5cbiAgICAgICAqIFRoZSBnaXZlbiBudW1iZXIgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW50ZWdlciBieSByb3VuZGluZyBkb3duLlxuICAgICAgICogQnkgZGVmYXVsdCwgbm8gbWF4aW11bSBhZ2UgaXMgc2V0IGFuZCB0aGUgcHJldmlldyBzZXNzaW9uIGZpbmlzaGVzXG4gICAgICAgKiB3aGVuIHRoZSBjbGllbnQgc2h1dHMgZG93biAoYnJvd3NlciBpcyBjbG9zZWQpLlxuICAgICAgICovXG4gICAgICBtYXhBZ2U/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogU3BlY2lmaWVzIHRoZSBwYXRoIGZvciB0aGUgcHJldmlldyBzZXNzaW9uIHRvIHdvcmsgdW5kZXIuIEJ5IGRlZmF1bHQsXG4gICAgICAgKiB0aGUgcGF0aCBpcyBjb25zaWRlcmVkIHRoZSBcImRlZmF1bHQgcGF0aFwiLCBpLmUuLCBhbnkgcGFnZXMgdW5kZXIgXCIvXCIuXG4gICAgICAgKi9cbiAgICAgIHBhdGg/OiBzdHJpbmdcbiAgICB9XG4gICkgPT4gTmV4dEFwaVJlc3BvbnNlPERhdGE+XG5cbiAgLyoqXG4gICAqIENsZWFyIHByZXZpZXcgZGF0YSBmb3IgTmV4dC5qcycgcHJlcmVuZGVyIG1vZGVcbiAgICovXG4gIGNsZWFyUHJldmlld0RhdGE6IChvcHRpb25zPzogeyBwYXRoPzogc3RyaW5nIH0pID0+IE5leHRBcGlSZXNwb25zZTxEYXRhPlxuXG4gIC8qKlxuICAgKiBSZXZhbGlkYXRlIGEgc3BlY2lmaWMgcGFnZSBhbmQgcmVnZW5lcmF0ZSBpdCB1c2luZyBPbi1EZW1hbmQgSW5jcmVtZW50YWxcbiAgICogU3RhdGljIFJlZ2VuZXJhdGlvbi5cbiAgICogVGhlIHBhdGggc2hvdWxkIGJlIGFuIGFjdHVhbCBwYXRoLCBub3QgYSByZXdyaXR0ZW4gcGF0aC4gRS5nLiBmb3JcbiAgICogXCIvYmxvZy9bc2x1Z11cIiB0aGlzIHNob3VsZCBiZSBcIi9ibG9nL3Bvc3QtMVwiLlxuICAgKiBAbGluayBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL2luY3JlbWVudGFsLXN0YXRpYy1yZWdlbmVyYXRpb24jb24tZGVtYW5kLXJldmFsaWRhdGlvbi13aXRoLXJldmFsaWRhdGVwYXRoXG4gICAqL1xuICByZXZhbGlkYXRlOiAoXG4gICAgdXJsUGF0aDogc3RyaW5nLFxuICAgIG9wdHM/OiB7XG4gICAgICB1bnN0YWJsZV9vbmx5R2VuZXJhdGVkPzogYm9vbGVhblxuICAgIH1cbiAgKSA9PiBQcm9taXNlPHZvaWQ+XG59XG5cbi8qKlxuICogTmV4dCBgQVBJYCByb3V0ZSBoYW5kbGVyXG4gKi9cbmV4cG9ydCB0eXBlIE5leHRBcGlIYW5kbGVyPFQgPSBhbnk+ID0gKFxuICByZXE6IE5leHRBcGlSZXF1ZXN0LFxuICByZXM6IE5leHRBcGlSZXNwb25zZTxUPlxuKSA9PiB1bmtub3duIHwgUHJvbWlzZTx1bmtub3duPlxuXG4vKipcbiAqIFV0aWxzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGVjT25jZTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBSZXR1cm5UeXBlPFQ+PihcbiAgZm46IFRcbik6IFQge1xuICBsZXQgdXNlZCA9IGZhbHNlXG4gIGxldCByZXN1bHQ6IFJldHVyblR5cGU8VD5cblxuICByZXR1cm4gKCguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgIGlmICghdXNlZCkge1xuICAgICAgdXNlZCA9IHRydWVcbiAgICAgIHJlc3VsdCA9IGZuKC4uLmFyZ3MpXG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfSkgYXMgVFxufVxuXG4vLyBTY2hlbWU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tMy4xXG4vLyBBYnNvbHV0ZSBVUkw6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzOTg2I3NlY3Rpb24tNC4zXG5jb25zdCBBQlNPTFVURV9VUkxfUkVHRVggPSAvXlthLXpBLVpdW2EtekEtWlxcZCtcXC0uXSo/Oi9cbmV4cG9ydCBjb25zdCBpc0Fic29sdXRlVXJsID0gKHVybDogc3RyaW5nKSA9PiBBQlNPTFVURV9VUkxfUkVHRVgudGVzdCh1cmwpXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhdGlvbk9yaWdpbigpIHtcbiAgY29uc3QgeyBwcm90b2NvbCwgaG9zdG5hbWUsIHBvcnQgfSA9IHdpbmRvdy5sb2NhdGlvblxuICByZXR1cm4gYCR7cHJvdG9jb2x9Ly8ke2hvc3RuYW1lfSR7cG9ydCA/ICc6JyArIHBvcnQgOiAnJ31gXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVUkwoKSB7XG4gIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93LmxvY2F0aW9uXG4gIGNvbnN0IG9yaWdpbiA9IGdldExvY2F0aW9uT3JpZ2luKClcbiAgcmV0dXJuIGhyZWYuc3Vic3RyaW5nKG9yaWdpbi5sZW5ndGgpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREaXNwbGF5TmFtZTxQPihDb21wb25lbnQ6IENvbXBvbmVudFR5cGU8UD4pIHtcbiAgcmV0dXJuIHR5cGVvZiBDb21wb25lbnQgPT09ICdzdHJpbmcnXG4gICAgPyBDb21wb25lbnRcbiAgICA6IENvbXBvbmVudC5kaXNwbGF5TmFtZSB8fCBDb21wb25lbnQubmFtZSB8fCAnVW5rbm93bidcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzU2VudChyZXM6IFNlcnZlclJlc3BvbnNlKSB7XG4gIHJldHVybiByZXMuZmluaXNoZWQgfHwgcmVzLmhlYWRlcnNTZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZXBlYXRlZFNsYXNoZXModXJsOiBzdHJpbmcpIHtcbiAgY29uc3QgdXJsUGFydHMgPSB1cmwuc3BsaXQoJz8nKVxuICBjb25zdCB1cmxOb1F1ZXJ5ID0gdXJsUGFydHNbMF1cblxuICByZXR1cm4gKFxuICAgIHVybE5vUXVlcnlcbiAgICAgIC8vIGZpcnN0IHdlIHJlcGxhY2UgYW55IG5vbi1lbmNvZGVkIGJhY2tzbGFzaGVzIHdpdGggZm9yd2FyZFxuICAgICAgLy8gdGhlbiBub3JtYWxpemUgcmVwZWF0ZWQgZm9yd2FyZCBzbGFzaGVzXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXFwvXFwvKy9nLCAnLycpICtcbiAgICAodXJsUGFydHNbMV0gPyBgPyR7dXJsUGFydHMuc2xpY2UoMSkuam9pbignPycpfWAgOiAnJylcbiAgKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEdldEluaXRpYWxQcm9wczxcbiAgQyBleHRlbmRzIEJhc2VDb250ZXh0LFxuICBJUCA9IHt9LFxuICBQID0ge30sXG4+KEFwcDogTmV4dENvbXBvbmVudFR5cGU8QywgSVAsIFA+LCBjdHg6IEMpOiBQcm9taXNlPElQPiB7XG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgaWYgKEFwcC5wcm90b3R5cGU/LmdldEluaXRpYWxQcm9wcykge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBcIiR7Z2V0RGlzcGxheU5hbWUoXG4gICAgICAgIEFwcFxuICAgICAgKX0uZ2V0SW5pdGlhbFByb3BzKClcIiBpcyBkZWZpbmVkIGFzIGFuIGluc3RhbmNlIG1ldGhvZCAtIHZpc2l0IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2dldC1pbml0aWFsLXByb3BzLWFzLWFuLWluc3RhbmNlLW1ldGhvZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gXG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSlcbiAgICB9XG4gIH1cbiAgLy8gd2hlbiBjYWxsZWQgZnJvbSBfYXBwIGBjdHhgIGlzIG5lc3RlZCBpbiBgY3R4YFxuICBjb25zdCByZXMgPSBjdHgucmVzIHx8IChjdHguY3R4ICYmIGN0eC5jdHgucmVzKVxuXG4gIGlmICghQXBwLmdldEluaXRpYWxQcm9wcykge1xuICAgIGlmIChjdHguY3R4ICYmIGN0eC5Db21wb25lbnQpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgcGFnZVByb3BzIGRlZmF1bHRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhZ2VQcm9wczogYXdhaXQgbG9hZEdldEluaXRpYWxQcm9wcyhjdHguQ29tcG9uZW50LCBjdHguY3R4KSxcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9IGFzIElQXG4gIH1cblxuICBjb25zdCBwcm9wcyA9IGF3YWl0IEFwcC5nZXRJbml0aWFsUHJvcHMoY3R4KVxuXG4gIGlmIChyZXMgJiYgaXNSZXNTZW50KHJlcykpIHtcbiAgICByZXR1cm4gcHJvcHNcbiAgfVxuXG4gIGlmICghcHJvcHMpIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYFwiJHtnZXREaXNwbGF5TmFtZShcbiAgICAgIEFwcFxuICAgICl9LmdldEluaXRpYWxQcm9wcygpXCIgc2hvdWxkIHJlc29sdmUgdG8gYW4gb2JqZWN0LiBCdXQgZm91bmQgXCIke3Byb3BzfVwiIGluc3RlYWQuYFxuICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAoT2JqZWN0LmtleXMocHJvcHMpLmxlbmd0aCA9PT0gMCAmJiAhY3R4LmN0eCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgJHtnZXREaXNwbGF5TmFtZShcbiAgICAgICAgICBBcHBcbiAgICAgICAgKX0gcmV0dXJuZWQgYW4gZW1wdHkgb2JqZWN0IGZyb20gXFxgZ2V0SW5pdGlhbFByb3BzXFxgLiBUaGlzIGRlLW9wdGltaXplcyBhbmQgcHJldmVudHMgYXV0b21hdGljIHN0YXRpYyBvcHRpbWl6YXRpb24uIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2VtcHR5LW9iamVjdC1nZXRJbml0aWFsUHJvcHNgXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByb3BzXG59XG5cbmV4cG9ydCBjb25zdCBTUCA9IHR5cGVvZiBwZXJmb3JtYW5jZSAhPT0gJ3VuZGVmaW5lZCdcbmV4cG9ydCBjb25zdCBTVCA9XG4gIFNQICYmXG4gIChbJ21hcmsnLCAnbWVhc3VyZScsICdnZXRFbnRyaWVzQnlOYW1lJ10gYXMgY29uc3QpLmV2ZXJ5KFxuICAgIChtZXRob2QpID0+IHR5cGVvZiBwZXJmb3JtYW5jZVttZXRob2RdID09PSAnZnVuY3Rpb24nXG4gIClcblxuZXhwb3J0IGNsYXNzIERlY29kZUVycm9yIGV4dGVuZHMgRXJyb3Ige31cbmV4cG9ydCBjbGFzcyBOb3JtYWxpemVFcnJvciBleHRlbmRzIEVycm9yIHt9XG5leHBvcnQgY2xhc3MgUGFnZU5vdEZvdW5kRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvZGU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHBhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvZGUgPSAnRU5PRU5UJ1xuICAgIHRoaXMubmFtZSA9ICdQYWdlTm90Rm91bmRFcnJvcidcbiAgICB0aGlzLm1lc3NhZ2UgPSBgQ2Fubm90IGZpbmQgbW9kdWxlIGZvciBwYWdlOiAke3BhZ2V9YFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNaXNzaW5nU3RhdGljUGFnZSBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IocGFnZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpXG4gICAgdGhpcy5tZXNzYWdlID0gYEZhaWxlZCB0byBsb2FkIHN0YXRpYyBmaWxlIGZvciBwYWdlOiAke3BhZ2V9ICR7bWVzc2FnZX1gXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1pZGRsZXdhcmVOb3RGb3VuZEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb2RlOiBzdHJpbmdcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29kZSA9ICdFTk9FTlQnXG4gICAgdGhpcy5tZXNzYWdlID0gYENhbm5vdCBmaW5kIHRoZSBtaWRkbGV3YXJlIG1vZHVsZWBcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhY2hlRnMge1xuICBleGlzdHNTeW5jOiB0eXBlb2YgZnMuZXhpc3RzU3luY1xuICByZWFkRmlsZTogdHlwZW9mIGZzLnByb21pc2VzLnJlYWRGaWxlXG4gIHJlYWRGaWxlU3luYzogdHlwZW9mIGZzLnJlYWRGaWxlU3luY1xuICB3cml0ZUZpbGUoZjogc3RyaW5nLCBkOiBhbnkpOiBQcm9taXNlPHZvaWQ+XG4gIG1rZGlyKGRpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkIHwgc3RyaW5nPlxuICBzdGF0KGY6IHN0cmluZyk6IFByb21pc2U8eyBtdGltZTogRGF0ZSB9PlxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5naWZ5RXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFjayB9KVxufVxuIl0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInByb3RvdHlwZSIsImdldEluaXRpYWxQcm9wcyIsIm1lc3NhZ2UiLCJFcnJvciIsInBhZ2VQcm9wcyIsInByb3BzIiwiT2JqZWN0Iiwia2V5cyIsImNvbnNvbGUiLCJ3YXJuIiwicGVyZm9ybWFuY2UiLCJldmVyeSIsIm1ldGhvZCIsImNvbnN0cnVjdG9yIiwicGFnZSIsImNvZGUiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFjayJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/utils.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/shared/lib/utils/warn-once.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/shared/lib/utils/warn-once.js ***! + \**************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"warnOnce\", ({\n enumerable: true,\n get: function() {\n return warnOnce;\n }\n}));\nlet warnOnce = (_)=>{};\nif (true) {\n const warnings = new Set();\n warnOnce = (msg)=>{\n if (!warnings.has(msg)) {\n console.warn(msg);\n }\n warnings.add(msg);\n };\n} //# sourceMappingURL=warn-once.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLmpzIiwibWFwcGluZ3MiOiI7Ozs7NENBV1NBOzs7ZUFBQUE7OztBQVhULElBQUlBLFdBQVcsQ0FBQ0MsS0FBZTtBQUMvQixJQUFJQyxJQUFvQixFQUFtQjtJQUN6QyxNQUFNRyxXQUFXLElBQUlDO0lBQ3JCTixXQUFXLENBQUNPO1FBQ1YsSUFBSSxDQUFDRixTQUFTRyxHQUFHLENBQUNELE1BQU07WUFDdEJFLFFBQVFDLElBQUksQ0FBQ0g7UUFDZjtRQUNBRixTQUFTTSxHQUFHLENBQUNKO0lBQ2Y7QUFDRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImxldCB3YXJuT25jZSA9IChfOiBzdHJpbmcpID0+IHt9XG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICBjb25zdCB3YXJuaW5ncyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIHdhcm5PbmNlID0gKG1zZzogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCF3YXJuaW5ncy5oYXMobXNnKSkge1xuICAgICAgY29uc29sZS53YXJuKG1zZylcbiAgICB9XG4gICAgd2FybmluZ3MuYWRkKG1zZylcbiAgfVxufVxuXG5leHBvcnQgeyB3YXJuT25jZSB9XG4iXSwibmFtZXMiOlsid2Fybk9uY2UiLCJfIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwid2FybmluZ3MiLCJTZXQiLCJtc2ciLCJoYXMiLCJjb25zb2xlIiwid2FybiIsImFkZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/utils/warn-once.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/anser/index.js": +/*!********************************************************!*\ + !*** ./node_modules/next/dist/compiled/anser/index.js ***! + \********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval(__webpack_require__.ts("var __dirname = \"/\";\n(()=>{\"use strict\";var e={211:e=>{var r=function(){function defineProperties(e,r){for(var n=0;n<r.length;n++){var s=r[n];s.enumerable=s.enumerable||false;s.configurable=true;if(\"value\"in s)s.writable=true;Object.defineProperty(e,s.key,s)}}return function(e,r,n){if(r)defineProperties(e.prototype,r);if(n)defineProperties(e,n);return e}}();function _classCallCheck(e,r){if(!(e instanceof r)){throw new TypeError(\"Cannot call a class as a function\")}}var n=[[{color:\"0, 0, 0\",class:\"ansi-black\"},{color:\"187, 0, 0\",class:\"ansi-red\"},{color:\"0, 187, 0\",class:\"ansi-green\"},{color:\"187, 187, 0\",class:\"ansi-yellow\"},{color:\"0, 0, 187\",class:\"ansi-blue\"},{color:\"187, 0, 187\",class:\"ansi-magenta\"},{color:\"0, 187, 187\",class:\"ansi-cyan\"},{color:\"255,255,255\",class:\"ansi-white\"}],[{color:\"85, 85, 85\",class:\"ansi-bright-black\"},{color:\"255, 85, 85\",class:\"ansi-bright-red\"},{color:\"0, 255, 0\",class:\"ansi-bright-green\"},{color:\"255, 255, 85\",class:\"ansi-bright-yellow\"},{color:\"85, 85, 255\",class:\"ansi-bright-blue\"},{color:\"255, 85, 255\",class:\"ansi-bright-magenta\"},{color:\"85, 255, 255\",class:\"ansi-bright-cyan\"},{color:\"255, 255, 255\",class:\"ansi-bright-white\"}]];var s=function(){r(Anser,null,[{key:\"escapeForHtml\",value:function escapeForHtml(e){return(new Anser).escapeForHtml(e)}},{key:\"linkify\",value:function linkify(e){return(new Anser).linkify(e)}},{key:\"ansiToHtml\",value:function ansiToHtml(e,r){return(new Anser).ansiToHtml(e,r)}},{key:\"ansiToJson\",value:function ansiToJson(e,r){return(new Anser).ansiToJson(e,r)}},{key:\"ansiToText\",value:function ansiToText(e){return(new Anser).ansiToText(e)}}]);function Anser(){_classCallCheck(this,Anser);this.fg=this.bg=this.fg_truecolor=this.bg_truecolor=null;this.bright=0}r(Anser,[{key:\"setupPalette\",value:function setupPalette(){this.PALETTE_COLORS=[];for(var e=0;e<2;++e){for(var r=0;r<8;++r){this.PALETTE_COLORS.push(n[e][r].color)}}var s=[0,95,135,175,215,255];var i=function format(e,r,n){return s[e]+\", \"+s[r]+\", \"+s[n]};var t=void 0,o=void 0,a=void 0;for(var l=0;l<6;++l){for(var c=0;c<6;++c){for(var u=0;u<6;++u){this.PALETTE_COLORS.push(i(l,c,u))}}}var f=8;for(var h=0;h<24;++h,f+=10){this.PALETTE_COLORS.push(i(f,f,f))}}},{key:\"escapeForHtml\",value:function escapeForHtml(e){return e.replace(/[&<>]/gm,(function(e){return e==\"&\"?\"&\":e==\"<\"?\"<\":e==\">\"?\">\":\"\"}))}},{key:\"linkify\",value:function linkify(e){return e.replace(/(https?:\\/\\/[^\\s]+)/gm,(function(e){return'<a href=\"'+e+'\">'+e+\"</a>\"}))}},{key:\"ansiToHtml\",value:function ansiToHtml(e,r){return this.process(e,r,true)}},{key:\"ansiToJson\",value:function ansiToJson(e,r){r=r||{};r.json=true;r.clearLine=false;return this.process(e,r,true)}},{key:\"ansiToText\",value:function ansiToText(e){return this.process(e,{},false)}},{key:\"process\",value:function process(e,r,n){var s=this;var i=this;var t=e.split(/\\033\\[/);var o=t.shift();if(r===undefined||r===null){r={}}r.clearLine=/\\r/.test(e);var a=t.map((function(e){return s.processChunk(e,r,n)}));if(r&&r.json){var l=i.processChunkJson(\"\");l.content=o;l.clearLine=r.clearLine;a.unshift(l);if(r.remove_empty){a=a.filter((function(e){return!e.isEmpty()}))}return a}else{a.unshift(o)}return a.join(\"\")}},{key:\"processChunkJson\",value:function processChunkJson(e,r,s){r=typeof r==\"undefined\"?{}:r;var i=r.use_classes=typeof r.use_classes!=\"undefined\"&&r.use_classes;var t=r.key=i?\"class\":\"color\";var o={content:e,fg:null,bg:null,fg_truecolor:null,bg_truecolor:null,clearLine:r.clearLine,decoration:null,was_processed:false,isEmpty:function isEmpty(){return!o.content}};var a=e.match(/^([!\\x3c-\\x3f]*)([\\d;]*)([\\x20-\\x2c]*[\\x40-\\x7e])([\\s\\S]*)/m);if(!a)return o;var l=o.content=a[4];var c=a[2].split(\";\");if(a[1]!==\"\"||a[3]!==\"m\"){return o}if(!s){return o}var u=this;u.decoration=null;while(c.length>0){var f=c.shift();var h=parseInt(f);if(isNaN(h)||h===0){u.fg=u.bg=u.decoration=null}else if(h===1){u.decoration=\"bold\"}else if(h===2){u.decoration=\"dim\"}else if(h==3){u.decoration=\"italic\"}else if(h==4){u.decoration=\"underline\"}else if(h==5){u.decoration=\"blink\"}else if(h===7){u.decoration=\"reverse\"}else if(h===8){u.decoration=\"hidden\"}else if(h===9){u.decoration=\"strikethrough\"}else if(h==39){u.fg=null}else if(h==49){u.bg=null}else if(h>=30&&h<38){u.fg=n[0][h%10][t]}else if(h>=90&&h<98){u.fg=n[1][h%10][t]}else if(h>=40&&h<48){u.bg=n[0][h%10][t]}else if(h>=100&&h<108){u.bg=n[1][h%10][t]}else if(h===38||h===48){var p=h===38;if(c.length>=1){var g=c.shift();if(g===\"5\"&&c.length>=1){var v=parseInt(c.shift());if(v>=0&&v<=255){if(!i){if(!this.PALETTE_COLORS){u.setupPalette()}if(p){u.fg=this.PALETTE_COLORS[v]}else{u.bg=this.PALETTE_COLORS[v]}}else{var d=v>=16?\"ansi-palette-\"+v:n[v>7?1:0][v%8][\"class\"];if(p){u.fg=d}else{u.bg=d}}}}else if(g===\"2\"&&c.length>=3){var _=parseInt(c.shift());var b=parseInt(c.shift());var y=parseInt(c.shift());if(_>=0&&_<=255&&b>=0&&b<=255&&y>=0&&y<=255){var k=_+\", \"+b+\", \"+y;if(!i){if(p){u.fg=k}else{u.bg=k}}else{if(p){u.fg=\"ansi-truecolor\";u.fg_truecolor=k}else{u.bg=\"ansi-truecolor\";u.bg_truecolor=k}}}}}}}if(u.fg===null&&u.bg===null&&u.decoration===null){return o}else{var T=[];var m=[];var w={};o.fg=u.fg;o.bg=u.bg;o.fg_truecolor=u.fg_truecolor;o.bg_truecolor=u.bg_truecolor;o.decoration=u.decoration;o.was_processed=true;return o}}},{key:\"processChunk\",value:function processChunk(e,r,n){var s=this;var i=this;r=r||{};var t=this.processChunkJson(e,r,n);if(r.json){return t}if(t.isEmpty()){return\"\"}if(!t.was_processed){return t.content}var o=r.use_classes;var a=[];var l=[];var c={};var u=function render_data(e){var r=[];var n=void 0;for(n in e){if(e.hasOwnProperty(n)){r.push(\"data-\"+n+'=\"'+s.escapeForHtml(e[n])+'\"')}}return r.length>0?\" \"+r.join(\" \"):\"\"};if(t.fg){if(o){l.push(t.fg+\"-fg\");if(t.fg_truecolor!==null){c[\"ansi-truecolor-fg\"]=t.fg_truecolor;t.fg_truecolor=null}}else{a.push(\"color:rgb(\"+t.fg+\")\")}}if(t.bg){if(o){l.push(t.bg+\"-bg\");if(t.bg_truecolor!==null){c[\"ansi-truecolor-bg\"]=t.bg_truecolor;t.bg_truecolor=null}}else{a.push(\"background-color:rgb(\"+t.bg+\")\")}}if(t.decoration){if(o){l.push(\"ansi-\"+t.decoration)}else if(t.decoration===\"bold\"){a.push(\"font-weight:bold\")}else if(t.decoration===\"dim\"){a.push(\"opacity:0.5\")}else if(t.decoration===\"italic\"){a.push(\"font-style:italic\")}else if(t.decoration===\"reverse\"){a.push(\"filter:invert(100%)\")}else if(t.decoration===\"hidden\"){a.push(\"visibility:hidden\")}else if(t.decoration===\"strikethrough\"){a.push(\"text-decoration:line-through\")}else{a.push(\"text-decoration:\"+t.decoration)}}if(o){return'<span class=\"'+l.join(\" \")+'\"'+u(c)+\">\"+t.content+\"</span>\"}else{return'<span style=\"'+a.join(\";\")+'\"'+u(c)+\">\"+t.content+\"</span>\"}}}]);return Anser}();e.exports=s}};var r={};function __nccwpck_require__(n){var s=r[n];if(s!==undefined){return s.exports}var i=r[n]={exports:{}};var t=true;try{e[n](i,i.exports,__nccwpck_require__);t=false}finally{if(t)delete r[n]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var n=__nccwpck_require__(211);module.exports=n})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2Fuc2VyL2luZGV4LmpzIiwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLGFBQWEsT0FBTyxRQUFRLGlCQUFpQiwrQkFBK0IsWUFBWSxXQUFXLEtBQUssV0FBVyxpQ0FBaUMsb0JBQW9CLCtCQUErQixrQ0FBa0MsdUJBQXVCLHFDQUFxQywyQkFBMkIsVUFBVSxHQUFHLDhCQUE4QixzQkFBc0IsMERBQTBELFNBQVMsbUNBQW1DLEVBQUUsbUNBQW1DLEVBQUUscUNBQXFDLEVBQUUsd0NBQXdDLEVBQUUsb0NBQW9DLEVBQUUseUNBQXlDLEVBQUUsc0NBQXNDLEVBQUUsdUNBQXVDLElBQUksNkNBQTZDLEVBQUUsNENBQTRDLEVBQUUsNENBQTRDLEVBQUUsZ0RBQWdELEVBQUUsNkNBQTZDLEVBQUUsaURBQWlELEVBQUUsOENBQThDLEVBQUUsZ0RBQWdELEdBQUcsaUJBQWlCLGVBQWUsb0RBQW9ELG9DQUFvQyxFQUFFLHdDQUF3Qyw4QkFBOEIsRUFBRSxnREFBZ0QsbUNBQW1DLEVBQUUsZ0RBQWdELG1DQUFtQyxFQUFFLDhDQUE4QyxpQ0FBaUMsR0FBRyxpQkFBaUIsNEJBQTRCLHlEQUF5RCxjQUFjLFVBQVUsaURBQWlELHVCQUF1QixZQUFZLElBQUksS0FBSyxZQUFZLElBQUksS0FBSyx5Q0FBeUMsNkJBQTZCLDZCQUE2QixpQ0FBaUMsK0JBQStCLFlBQVksSUFBSSxLQUFLLFlBQVksSUFBSSxLQUFLLFlBQVksSUFBSSxLQUFLLHFDQUFxQyxRQUFRLFlBQVksS0FBSyxXQUFXLHFDQUFxQyxFQUFFLG9EQUFvRCx3Q0FBd0Msb0JBQW9CLGNBQWMsY0FBYyxLQUFLLElBQUksRUFBRSx3Q0FBd0Msc0RBQXNELGtDQUFrQyxJQUFJLEVBQUUsZ0RBQWdELCtCQUErQixFQUFFLGdEQUFnRCxRQUFRLFlBQVksa0JBQWtCLCtCQUErQixFQUFFLDhDQUE4Qyx3QkFBd0IsU0FBUyxFQUFFLDRDQUE0QyxXQUFXLFdBQVcsd0JBQXdCLGdCQUFnQiw0QkFBNEIsS0FBSyx5QkFBeUIseUJBQXlCLDZCQUE2QixHQUFHLGNBQWMsNkJBQTZCLFlBQVksd0JBQXdCLGFBQWEsbUJBQW1CLHdCQUF3QixtQkFBbUIsR0FBRyxTQUFTLEtBQUssYUFBYSxtQkFBbUIsRUFBRSw4REFBOEQsMEJBQTBCLEdBQUcscUVBQXFFLDhCQUE4QixPQUFPLG1KQUFtSixtQkFBbUIsb0NBQW9DLHlDQUF5QyxlQUFlLHFCQUFxQixtQkFBbUIsR0FBRywwQkFBMEIsU0FBUyxPQUFPLFNBQVMsV0FBVyxrQkFBa0Isa0JBQWtCLGdCQUFnQixrQkFBa0Isb0JBQW9CLDRCQUE0QixlQUFlLG9CQUFvQixlQUFlLG1CQUFtQixjQUFjLHNCQUFzQixjQUFjLHlCQUF5QixjQUFjLHFCQUFxQixlQUFlLHVCQUF1QixlQUFlLHNCQUFzQixlQUFlLDZCQUE2QixlQUFlLFVBQVUsZUFBZSxVQUFVLHFCQUFxQixtQkFBbUIscUJBQXFCLG1CQUFtQixxQkFBcUIsbUJBQW1CLHVCQUF1QixtQkFBbUIsd0JBQXdCLGFBQWEsZ0JBQWdCLGdCQUFnQix5QkFBeUIsMEJBQTBCLGlCQUFpQixPQUFPLHlCQUF5QixpQkFBaUIsTUFBTSw0QkFBNEIsS0FBSyw2QkFBNkIsS0FBSyx1REFBdUQsTUFBTSxPQUFPLEtBQUssVUFBVSw4QkFBOEIsMEJBQTBCLDBCQUEwQiwwQkFBMEIsNkNBQTZDLHNCQUFzQixPQUFPLE1BQU0sT0FBTyxLQUFLLFFBQVEsS0FBSyxNQUFNLHNCQUFzQixpQkFBaUIsS0FBSyxzQkFBc0IsdUJBQXVCLGtEQUFrRCxTQUFTLEtBQUssU0FBUyxTQUFTLFNBQVMsVUFBVSxVQUFVLDhCQUE4Qiw4QkFBOEIsMEJBQTBCLHFCQUFxQixXQUFXLEVBQUUsc0RBQXNELFdBQVcsV0FBVyxRQUFRLG1DQUFtQyxXQUFXLFNBQVMsZ0JBQWdCLFNBQVMscUJBQXFCLGlCQUFpQixvQkFBb0IsU0FBUyxTQUFTLFNBQVMsOEJBQThCLFNBQVMsYUFBYSxZQUFZLHdCQUF3QixrREFBa0Qsc0NBQXNDLFNBQVMsTUFBTSxtQkFBbUIsMEJBQTBCLHNDQUFzQyxxQkFBcUIsS0FBSywrQkFBK0IsU0FBUyxNQUFNLG1CQUFtQiwwQkFBMEIsc0NBQXNDLHFCQUFxQixLQUFLLDBDQUEwQyxpQkFBaUIsTUFBTSw2QkFBNkIsK0JBQStCLDJCQUEyQiw4QkFBOEIsc0JBQXNCLGlDQUFpQyw0QkFBNEIsa0NBQWtDLDhCQUE4QixpQ0FBaUMsNEJBQTRCLHdDQUF3Qyx1Q0FBdUMsS0FBSyx5Q0FBeUMsTUFBTSxtRUFBbUUsS0FBSywrQkFBK0Isc0NBQXNDLEdBQUcsYUFBYSxHQUFHLGNBQWMsU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLG1FQUFtRSxTQUFTLEtBQUssK0JBQStCLGlCQUFpQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvYW5zZXIvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57XCJ1c2Ugc3RyaWN0XCI7dmFyIGU9ezIxMTplPT57dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKGUscil7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBzPXJbbl07cy5lbnVtZXJhYmxlPXMuZW51bWVyYWJsZXx8ZmFsc2U7cy5jb25maWd1cmFibGU9dHJ1ZTtpZihcInZhbHVlXCJpbiBzKXMud3JpdGFibGU9dHJ1ZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxzLmtleSxzKX19cmV0dXJuIGZ1bmN0aW9uKGUscixuKXtpZihyKWRlZmluZVByb3BlcnRpZXMoZS5wcm90b3R5cGUscik7aWYobilkZWZpbmVQcm9wZXJ0aWVzKGUsbik7cmV0dXJuIGV9fSgpO2Z1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhlLHIpe2lmKCEoZSBpbnN0YW5jZW9mIHIpKXt0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpfX12YXIgbj1bW3tjb2xvcjpcIjAsIDAsIDBcIixjbGFzczpcImFuc2ktYmxhY2tcIn0se2NvbG9yOlwiMTg3LCAwLCAwXCIsY2xhc3M6XCJhbnNpLXJlZFwifSx7Y29sb3I6XCIwLCAxODcsIDBcIixjbGFzczpcImFuc2ktZ3JlZW5cIn0se2NvbG9yOlwiMTg3LCAxODcsIDBcIixjbGFzczpcImFuc2kteWVsbG93XCJ9LHtjb2xvcjpcIjAsIDAsIDE4N1wiLGNsYXNzOlwiYW5zaS1ibHVlXCJ9LHtjb2xvcjpcIjE4NywgMCwgMTg3XCIsY2xhc3M6XCJhbnNpLW1hZ2VudGFcIn0se2NvbG9yOlwiMCwgMTg3LCAxODdcIixjbGFzczpcImFuc2ktY3lhblwifSx7Y29sb3I6XCIyNTUsMjU1LDI1NVwiLGNsYXNzOlwiYW5zaS13aGl0ZVwifV0sW3tjb2xvcjpcIjg1LCA4NSwgODVcIixjbGFzczpcImFuc2ktYnJpZ2h0LWJsYWNrXCJ9LHtjb2xvcjpcIjI1NSwgODUsIDg1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1yZWRcIn0se2NvbG9yOlwiMCwgMjU1LCAwXCIsY2xhc3M6XCJhbnNpLWJyaWdodC1ncmVlblwifSx7Y29sb3I6XCIyNTUsIDI1NSwgODVcIixjbGFzczpcImFuc2ktYnJpZ2h0LXllbGxvd1wifSx7Y29sb3I6XCI4NSwgODUsIDI1NVwiLGNsYXNzOlwiYW5zaS1icmlnaHQtYmx1ZVwifSx7Y29sb3I6XCIyNTUsIDg1LCAyNTVcIixjbGFzczpcImFuc2ktYnJpZ2h0LW1hZ2VudGFcIn0se2NvbG9yOlwiODUsIDI1NSwgMjU1XCIsY2xhc3M6XCJhbnNpLWJyaWdodC1jeWFuXCJ9LHtjb2xvcjpcIjI1NSwgMjU1LCAyNTVcIixjbGFzczpcImFuc2ktYnJpZ2h0LXdoaXRlXCJ9XV07dmFyIHM9ZnVuY3Rpb24oKXtyKEFuc2VyLG51bGwsW3trZXk6XCJlc2NhcGVGb3JIdG1sXCIsdmFsdWU6ZnVuY3Rpb24gZXNjYXBlRm9ySHRtbChlKXtyZXR1cm4obmV3IEFuc2VyKS5lc2NhcGVGb3JIdG1sKGUpfX0se2tleTpcImxpbmtpZnlcIix2YWx1ZTpmdW5jdGlvbiBsaW5raWZ5KGUpe3JldHVybihuZXcgQW5zZXIpLmxpbmtpZnkoZSl9fSx7a2V5OlwiYW5zaVRvSHRtbFwiLHZhbHVlOmZ1bmN0aW9uIGFuc2lUb0h0bWwoZSxyKXtyZXR1cm4obmV3IEFuc2VyKS5hbnNpVG9IdG1sKGUscil9fSx7a2V5OlwiYW5zaVRvSnNvblwiLHZhbHVlOmZ1bmN0aW9uIGFuc2lUb0pzb24oZSxyKXtyZXR1cm4obmV3IEFuc2VyKS5hbnNpVG9Kc29uKGUscil9fSx7a2V5OlwiYW5zaVRvVGV4dFwiLHZhbHVlOmZ1bmN0aW9uIGFuc2lUb1RleHQoZSl7cmV0dXJuKG5ldyBBbnNlcikuYW5zaVRvVGV4dChlKX19XSk7ZnVuY3Rpb24gQW5zZXIoKXtfY2xhc3NDYWxsQ2hlY2sodGhpcyxBbnNlcik7dGhpcy5mZz10aGlzLmJnPXRoaXMuZmdfdHJ1ZWNvbG9yPXRoaXMuYmdfdHJ1ZWNvbG9yPW51bGw7dGhpcy5icmlnaHQ9MH1yKEFuc2VyLFt7a2V5Olwic2V0dXBQYWxldHRlXCIsdmFsdWU6ZnVuY3Rpb24gc2V0dXBQYWxldHRlKCl7dGhpcy5QQUxFVFRFX0NPTE9SUz1bXTtmb3IodmFyIGU9MDtlPDI7KytlKXtmb3IodmFyIHI9MDtyPDg7KytyKXt0aGlzLlBBTEVUVEVfQ09MT1JTLnB1c2gobltlXVtyXS5jb2xvcil9fXZhciBzPVswLDk1LDEzNSwxNzUsMjE1LDI1NV07dmFyIGk9ZnVuY3Rpb24gZm9ybWF0KGUscixuKXtyZXR1cm4gc1tlXStcIiwgXCIrc1tyXStcIiwgXCIrc1tuXX07dmFyIHQ9dm9pZCAwLG89dm9pZCAwLGE9dm9pZCAwO2Zvcih2YXIgbD0wO2w8NjsrK2wpe2Zvcih2YXIgYz0wO2M8NjsrK2Mpe2Zvcih2YXIgdT0wO3U8NjsrK3Upe3RoaXMuUEFMRVRURV9DT0xPUlMucHVzaChpKGwsYyx1KSl9fX12YXIgZj04O2Zvcih2YXIgaD0wO2g8MjQ7KytoLGYrPTEwKXt0aGlzLlBBTEVUVEVfQ09MT1JTLnB1c2goaShmLGYsZikpfX19LHtrZXk6XCJlc2NhcGVGb3JIdG1sXCIsdmFsdWU6ZnVuY3Rpb24gZXNjYXBlRm9ySHRtbChlKXtyZXR1cm4gZS5yZXBsYWNlKC9bJjw+XS9nbSwoZnVuY3Rpb24oZSl7cmV0dXJuIGU9PVwiJlwiP1wiJmFtcDtcIjplPT1cIjxcIj9cIiZsdDtcIjplPT1cIj5cIj9cIiZndDtcIjpcIlwifSkpfX0se2tleTpcImxpbmtpZnlcIix2YWx1ZTpmdW5jdGlvbiBsaW5raWZ5KGUpe3JldHVybiBlLnJlcGxhY2UoLyhodHRwcz86XFwvXFwvW15cXHNdKykvZ20sKGZ1bmN0aW9uKGUpe3JldHVybic8YSBocmVmPVwiJytlKydcIj4nK2UrXCI8L2E+XCJ9KSl9fSx7a2V5OlwiYW5zaVRvSHRtbFwiLHZhbHVlOmZ1bmN0aW9uIGFuc2lUb0h0bWwoZSxyKXtyZXR1cm4gdGhpcy5wcm9jZXNzKGUscix0cnVlKX19LHtrZXk6XCJhbnNpVG9Kc29uXCIsdmFsdWU6ZnVuY3Rpb24gYW5zaVRvSnNvbihlLHIpe3I9cnx8e307ci5qc29uPXRydWU7ci5jbGVhckxpbmU9ZmFsc2U7cmV0dXJuIHRoaXMucHJvY2VzcyhlLHIsdHJ1ZSl9fSx7a2V5OlwiYW5zaVRvVGV4dFwiLHZhbHVlOmZ1bmN0aW9uIGFuc2lUb1RleHQoZSl7cmV0dXJuIHRoaXMucHJvY2VzcyhlLHt9LGZhbHNlKX19LHtrZXk6XCJwcm9jZXNzXCIsdmFsdWU6ZnVuY3Rpb24gcHJvY2VzcyhlLHIsbil7dmFyIHM9dGhpczt2YXIgaT10aGlzO3ZhciB0PWUuc3BsaXQoL1xcMDMzXFxbLyk7dmFyIG89dC5zaGlmdCgpO2lmKHI9PT11bmRlZmluZWR8fHI9PT1udWxsKXtyPXt9fXIuY2xlYXJMaW5lPS9cXHIvLnRlc3QoZSk7dmFyIGE9dC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBzLnByb2Nlc3NDaHVuayhlLHIsbil9KSk7aWYociYmci5qc29uKXt2YXIgbD1pLnByb2Nlc3NDaHVua0pzb24oXCJcIik7bC5jb250ZW50PW87bC5jbGVhckxpbmU9ci5jbGVhckxpbmU7YS51bnNoaWZ0KGwpO2lmKHIucmVtb3ZlX2VtcHR5KXthPWEuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4hZS5pc0VtcHR5KCl9KSl9cmV0dXJuIGF9ZWxzZXthLnVuc2hpZnQobyl9cmV0dXJuIGEuam9pbihcIlwiKX19LHtrZXk6XCJwcm9jZXNzQ2h1bmtKc29uXCIsdmFsdWU6ZnVuY3Rpb24gcHJvY2Vzc0NodW5rSnNvbihlLHIscyl7cj10eXBlb2Ygcj09XCJ1bmRlZmluZWRcIj97fTpyO3ZhciBpPXIudXNlX2NsYXNzZXM9dHlwZW9mIHIudXNlX2NsYXNzZXMhPVwidW5kZWZpbmVkXCImJnIudXNlX2NsYXNzZXM7dmFyIHQ9ci5rZXk9aT9cImNsYXNzXCI6XCJjb2xvclwiO3ZhciBvPXtjb250ZW50OmUsZmc6bnVsbCxiZzpudWxsLGZnX3RydWVjb2xvcjpudWxsLGJnX3RydWVjb2xvcjpudWxsLGNsZWFyTGluZTpyLmNsZWFyTGluZSxkZWNvcmF0aW9uOm51bGwsd2FzX3Byb2Nlc3NlZDpmYWxzZSxpc0VtcHR5OmZ1bmN0aW9uIGlzRW1wdHkoKXtyZXR1cm4hby5jb250ZW50fX07dmFyIGE9ZS5tYXRjaCgvXihbIVxceDNjLVxceDNmXSopKFtcXGQ7XSopKFtcXHgyMC1cXHgyY10qW1xceDQwLVxceDdlXSkoW1xcc1xcU10qKS9tKTtpZighYSlyZXR1cm4gbzt2YXIgbD1vLmNvbnRlbnQ9YVs0XTt2YXIgYz1hWzJdLnNwbGl0KFwiO1wiKTtpZihhWzFdIT09XCJcInx8YVszXSE9PVwibVwiKXtyZXR1cm4gb31pZighcyl7cmV0dXJuIG99dmFyIHU9dGhpczt1LmRlY29yYXRpb249bnVsbDt3aGlsZShjLmxlbmd0aD4wKXt2YXIgZj1jLnNoaWZ0KCk7dmFyIGg9cGFyc2VJbnQoZik7aWYoaXNOYU4oaCl8fGg9PT0wKXt1LmZnPXUuYmc9dS5kZWNvcmF0aW9uPW51bGx9ZWxzZSBpZihoPT09MSl7dS5kZWNvcmF0aW9uPVwiYm9sZFwifWVsc2UgaWYoaD09PTIpe3UuZGVjb3JhdGlvbj1cImRpbVwifWVsc2UgaWYoaD09Myl7dS5kZWNvcmF0aW9uPVwiaXRhbGljXCJ9ZWxzZSBpZihoPT00KXt1LmRlY29yYXRpb249XCJ1bmRlcmxpbmVcIn1lbHNlIGlmKGg9PTUpe3UuZGVjb3JhdGlvbj1cImJsaW5rXCJ9ZWxzZSBpZihoPT09Nyl7dS5kZWNvcmF0aW9uPVwicmV2ZXJzZVwifWVsc2UgaWYoaD09PTgpe3UuZGVjb3JhdGlvbj1cImhpZGRlblwifWVsc2UgaWYoaD09PTkpe3UuZGVjb3JhdGlvbj1cInN0cmlrZXRocm91Z2hcIn1lbHNlIGlmKGg9PTM5KXt1LmZnPW51bGx9ZWxzZSBpZihoPT00OSl7dS5iZz1udWxsfWVsc2UgaWYoaD49MzAmJmg8Mzgpe3UuZmc9blswXVtoJTEwXVt0XX1lbHNlIGlmKGg+PTkwJiZoPDk4KXt1LmZnPW5bMV1baCUxMF1bdF19ZWxzZSBpZihoPj00MCYmaDw0OCl7dS5iZz1uWzBdW2glMTBdW3RdfWVsc2UgaWYoaD49MTAwJiZoPDEwOCl7dS5iZz1uWzFdW2glMTBdW3RdfWVsc2UgaWYoaD09PTM4fHxoPT09NDgpe3ZhciBwPWg9PT0zODtpZihjLmxlbmd0aD49MSl7dmFyIGc9Yy5zaGlmdCgpO2lmKGc9PT1cIjVcIiYmYy5sZW5ndGg+PTEpe3ZhciB2PXBhcnNlSW50KGMuc2hpZnQoKSk7aWYodj49MCYmdjw9MjU1KXtpZighaSl7aWYoIXRoaXMuUEFMRVRURV9DT0xPUlMpe3Uuc2V0dXBQYWxldHRlKCl9aWYocCl7dS5mZz10aGlzLlBBTEVUVEVfQ09MT1JTW3ZdfWVsc2V7dS5iZz10aGlzLlBBTEVUVEVfQ09MT1JTW3ZdfX1lbHNle3ZhciBkPXY+PTE2P1wiYW5zaS1wYWxldHRlLVwiK3Y6blt2Pjc/MTowXVt2JThdW1wiY2xhc3NcIl07aWYocCl7dS5mZz1kfWVsc2V7dS5iZz1kfX19fWVsc2UgaWYoZz09PVwiMlwiJiZjLmxlbmd0aD49Myl7dmFyIF89cGFyc2VJbnQoYy5zaGlmdCgpKTt2YXIgYj1wYXJzZUludChjLnNoaWZ0KCkpO3ZhciB5PXBhcnNlSW50KGMuc2hpZnQoKSk7aWYoXz49MCYmXzw9MjU1JiZiPj0wJiZiPD0yNTUmJnk+PTAmJnk8PTI1NSl7dmFyIGs9XytcIiwgXCIrYitcIiwgXCIreTtpZighaSl7aWYocCl7dS5mZz1rfWVsc2V7dS5iZz1rfX1lbHNle2lmKHApe3UuZmc9XCJhbnNpLXRydWVjb2xvclwiO3UuZmdfdHJ1ZWNvbG9yPWt9ZWxzZXt1LmJnPVwiYW5zaS10cnVlY29sb3JcIjt1LmJnX3RydWVjb2xvcj1rfX19fX19fWlmKHUuZmc9PT1udWxsJiZ1LmJnPT09bnVsbCYmdS5kZWNvcmF0aW9uPT09bnVsbCl7cmV0dXJuIG99ZWxzZXt2YXIgVD1bXTt2YXIgbT1bXTt2YXIgdz17fTtvLmZnPXUuZmc7by5iZz11LmJnO28uZmdfdHJ1ZWNvbG9yPXUuZmdfdHJ1ZWNvbG9yO28uYmdfdHJ1ZWNvbG9yPXUuYmdfdHJ1ZWNvbG9yO28uZGVjb3JhdGlvbj11LmRlY29yYXRpb247by53YXNfcHJvY2Vzc2VkPXRydWU7cmV0dXJuIG99fX0se2tleTpcInByb2Nlc3NDaHVua1wiLHZhbHVlOmZ1bmN0aW9uIHByb2Nlc3NDaHVuayhlLHIsbil7dmFyIHM9dGhpczt2YXIgaT10aGlzO3I9cnx8e307dmFyIHQ9dGhpcy5wcm9jZXNzQ2h1bmtKc29uKGUscixuKTtpZihyLmpzb24pe3JldHVybiB0fWlmKHQuaXNFbXB0eSgpKXtyZXR1cm5cIlwifWlmKCF0Lndhc19wcm9jZXNzZWQpe3JldHVybiB0LmNvbnRlbnR9dmFyIG89ci51c2VfY2xhc3Nlczt2YXIgYT1bXTt2YXIgbD1bXTt2YXIgYz17fTt2YXIgdT1mdW5jdGlvbiByZW5kZXJfZGF0YShlKXt2YXIgcj1bXTt2YXIgbj12b2lkIDA7Zm9yKG4gaW4gZSl7aWYoZS5oYXNPd25Qcm9wZXJ0eShuKSl7ci5wdXNoKFwiZGF0YS1cIituKyc9XCInK3MuZXNjYXBlRm9ySHRtbChlW25dKSsnXCInKX19cmV0dXJuIHIubGVuZ3RoPjA/XCIgXCIrci5qb2luKFwiIFwiKTpcIlwifTtpZih0LmZnKXtpZihvKXtsLnB1c2godC5mZytcIi1mZ1wiKTtpZih0LmZnX3RydWVjb2xvciE9PW51bGwpe2NbXCJhbnNpLXRydWVjb2xvci1mZ1wiXT10LmZnX3RydWVjb2xvcjt0LmZnX3RydWVjb2xvcj1udWxsfX1lbHNle2EucHVzaChcImNvbG9yOnJnYihcIit0LmZnK1wiKVwiKX19aWYodC5iZyl7aWYobyl7bC5wdXNoKHQuYmcrXCItYmdcIik7aWYodC5iZ190cnVlY29sb3IhPT1udWxsKXtjW1wiYW5zaS10cnVlY29sb3ItYmdcIl09dC5iZ190cnVlY29sb3I7dC5iZ190cnVlY29sb3I9bnVsbH19ZWxzZXthLnB1c2goXCJiYWNrZ3JvdW5kLWNvbG9yOnJnYihcIit0LmJnK1wiKVwiKX19aWYodC5kZWNvcmF0aW9uKXtpZihvKXtsLnB1c2goXCJhbnNpLVwiK3QuZGVjb3JhdGlvbil9ZWxzZSBpZih0LmRlY29yYXRpb249PT1cImJvbGRcIil7YS5wdXNoKFwiZm9udC13ZWlnaHQ6Ym9sZFwiKX1lbHNlIGlmKHQuZGVjb3JhdGlvbj09PVwiZGltXCIpe2EucHVzaChcIm9wYWNpdHk6MC41XCIpfWVsc2UgaWYodC5kZWNvcmF0aW9uPT09XCJpdGFsaWNcIil7YS5wdXNoKFwiZm9udC1zdHlsZTppdGFsaWNcIil9ZWxzZSBpZih0LmRlY29yYXRpb249PT1cInJldmVyc2VcIil7YS5wdXNoKFwiZmlsdGVyOmludmVydCgxMDAlKVwiKX1lbHNlIGlmKHQuZGVjb3JhdGlvbj09PVwiaGlkZGVuXCIpe2EucHVzaChcInZpc2liaWxpdHk6aGlkZGVuXCIpfWVsc2UgaWYodC5kZWNvcmF0aW9uPT09XCJzdHJpa2V0aHJvdWdoXCIpe2EucHVzaChcInRleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2hcIil9ZWxzZXthLnB1c2goXCJ0ZXh0LWRlY29yYXRpb246XCIrdC5kZWNvcmF0aW9uKX19aWYobyl7cmV0dXJuJzxzcGFuIGNsYXNzPVwiJytsLmpvaW4oXCIgXCIpKydcIicrdShjKStcIj5cIit0LmNvbnRlbnQrXCI8L3NwYW4+XCJ9ZWxzZXtyZXR1cm4nPHNwYW4gc3R5bGU9XCInK2Euam9pbihcIjtcIikrJ1wiJyt1KGMpK1wiPlwiK3QuY29udGVudCtcIjwvc3Bhbj5cIn19fV0pO3JldHVybiBBbnNlcn0oKTtlLmV4cG9ydHM9c319O3ZhciByPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18obil7dmFyIHM9cltuXTtpZihzIT09dW5kZWZpbmVkKXtyZXR1cm4gcy5leHBvcnRzfXZhciBpPXJbbl09e2V4cG9ydHM6e319O3ZhciB0PXRydWU7dHJ5e2Vbbl0oaSxpLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7dD1mYWxzZX1maW5hbGx5e2lmKHQpZGVsZXRlIHJbbl19cmV0dXJuIGkuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIG49X19uY2N3cGNrX3JlcXVpcmVfXygyMTEpO21vZHVsZS5leHBvcnRzPW59KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/anser/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/css.escape/css.escape.js": +/*!******************************************************************!*\ + !*** ./node_modules/next/dist/compiled/css.escape/css.escape.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval(__webpack_require__.ts("var __dirname = \"/\";\n(()=>{var e={553:function(e){(function(r,t){if(true){e.exports=t(r)}else{}})(typeof __webpack_require__.g!=\"undefined\"?__webpack_require__.g:this,(function(e){if(e.CSS&&e.CSS.escape){return e.CSS.escape}var cssEscape=function(e){if(arguments.length==0){throw new TypeError(\"`CSS.escape` requires an argument.\")}var r=String(e);var t=r.length;var n=-1;var a;var i=\"\";var u=r.charCodeAt(0);while(++n<t){a=r.charCodeAt(n);if(a==0){i+=\"�\";continue}if(a>=1&&a<=31||a==127||n==0&&a>=48&&a<=57||n==1&&a>=48&&a<=57&&u==45){i+=\"\\\\\"+a.toString(16)+\" \";continue}if(n==0&&t==1&&a==45){i+=\"\\\\\"+r.charAt(n);continue}if(a>=128||a==45||a==95||a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122){i+=r.charAt(n);continue}i+=\"\\\\\"+r.charAt(n)}return i};if(!e.CSS){e.CSS={}}e.CSS.escape=cssEscape;return cssEscape}))}};var r={};function __nccwpck_require__(t){var n=r[t];if(n!==undefined){return n.exports}var a=r[t]={exports:{}};var i=true;try{e[t].call(a.exports,a,a.exports,__nccwpck_require__);i=false}finally{if(i)delete r[t]}return a.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(553);module.exports=t})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL2Nzcy5lc2NhcGUvY3NzLmVzY2FwZS5qcyIsIm1hcHBpbmdzIjoiO0FBQUEsTUFBTSxPQUFPLGdCQUFnQixlQUFlLEdBQUcsSUFBSSxFQUFFLGVBQWUsSUFBSSxFQUFFLENBQUMsU0FBUyxxQkFBTSxjQUFjLHFCQUFNLG1CQUFtQix3QkFBd0Isb0JBQW9CLDBCQUEwQix3QkFBd0IsMERBQTBELGdCQUFnQixlQUFlLFNBQVMsTUFBTSxTQUFTLHNCQUFzQixhQUFhLGtCQUFrQixTQUFTLE9BQU8sU0FBUyx1RUFBdUUsMkJBQTJCLFNBQVMsc0JBQXNCLG9CQUFvQixTQUFTLG9FQUFvRSxlQUFlLFNBQVMsb0JBQW9CLFVBQVUsV0FBVyxTQUFTLHVCQUF1QixpQkFBaUIsS0FBSyxTQUFTLGdDQUFnQyxXQUFXLGtCQUFrQixpQkFBaUIsWUFBWSxZQUFZLFdBQVcsSUFBSSxxREFBcUQsUUFBUSxRQUFRLGlCQUFpQixpQkFBaUIsbUVBQW1FLFNBQVMsS0FBSywrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9jc3MuZXNjYXBlL2Nzcy5lc2NhcGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57dmFyIGU9ezU1MzpmdW5jdGlvbihlKXsoZnVuY3Rpb24ocix0KXtpZih0cnVlKXtlLmV4cG9ydHM9dChyKX1lbHNle319KSh0eXBlb2YgZ2xvYmFsIT1cInVuZGVmaW5lZFwiP2dsb2JhbDp0aGlzLChmdW5jdGlvbihlKXtpZihlLkNTUyYmZS5DU1MuZXNjYXBlKXtyZXR1cm4gZS5DU1MuZXNjYXBlfXZhciBjc3NFc2NhcGU9ZnVuY3Rpb24oZSl7aWYoYXJndW1lbnRzLmxlbmd0aD09MCl7dGhyb3cgbmV3IFR5cGVFcnJvcihcImBDU1MuZXNjYXBlYCByZXF1aXJlcyBhbiBhcmd1bWVudC5cIil9dmFyIHI9U3RyaW5nKGUpO3ZhciB0PXIubGVuZ3RoO3ZhciBuPS0xO3ZhciBhO3ZhciBpPVwiXCI7dmFyIHU9ci5jaGFyQ29kZUF0KDApO3doaWxlKCsrbjx0KXthPXIuY2hhckNvZGVBdChuKTtpZihhPT0wKXtpKz1cIu+/vVwiO2NvbnRpbnVlfWlmKGE+PTEmJmE8PTMxfHxhPT0xMjd8fG49PTAmJmE+PTQ4JiZhPD01N3x8bj09MSYmYT49NDgmJmE8PTU3JiZ1PT00NSl7aSs9XCJcXFxcXCIrYS50b1N0cmluZygxNikrXCIgXCI7Y29udGludWV9aWYobj09MCYmdD09MSYmYT09NDUpe2krPVwiXFxcXFwiK3IuY2hhckF0KG4pO2NvbnRpbnVlfWlmKGE+PTEyOHx8YT09NDV8fGE9PTk1fHxhPj00OCYmYTw9NTd8fGE+PTY1JiZhPD05MHx8YT49OTcmJmE8PTEyMil7aSs9ci5jaGFyQXQobik7Y29udGludWV9aSs9XCJcXFxcXCIrci5jaGFyQXQobil9cmV0dXJuIGl9O2lmKCFlLkNTUyl7ZS5DU1M9e319ZS5DU1MuZXNjYXBlPWNzc0VzY2FwZTtyZXR1cm4gY3NzRXNjYXBlfSkpfX07dmFyIHI9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyh0KXt2YXIgbj1yW3RdO2lmKG4hPT11bmRlZmluZWQpe3JldHVybiBuLmV4cG9ydHN9dmFyIGE9clt0XT17ZXhwb3J0czp7fX07dmFyIGk9dHJ1ZTt0cnl7ZVt0XS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtpPWZhbHNlfWZpbmFsbHl7aWYoaSlkZWxldGUgclt0XX1yZXR1cm4gYS5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgdD1fX25jY3dwY2tfcmVxdWlyZV9fKDU1Myk7bW9kdWxlLmV4cG9ydHM9dH0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/css.escape/css.escape.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/platform/platform.js": +/*!**************************************************************!*\ + !*** ./node_modules/next/dist/compiled/platform/platform.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval(__webpack_require__.ts("var __dirname = \"/\";\n(()=>{var e={541:function(e,i,t){e=t.nmd(e);\n/*!\n * Platform.js v1.3.6\n * Copyright 2014-2020 Benjamin Tan\n * Copyright 2011-2013 John-David Dalton\n * Available under MIT license\n */(function(){\"use strict\";var t={function:true,object:true};var r=t[typeof window]&&window||this;var a=r;var n=t[typeof i]&&i;var o=t[\"object\"]&&e&&!e.nodeType&&e;var l=n&&o&&typeof __webpack_require__.g==\"object\"&&__webpack_require__.g;if(l&&(l.global===l||l.window===l||l.self===l)){r=l}var s=Math.pow(2,53)-1;var f=/\\bOpera/;var b=this;var c=Object.prototype;var p=c.hasOwnProperty;var u=c.toString;function capitalize(e){e=String(e);return e.charAt(0).toUpperCase()+e.slice(1)}function cleanupOS(e,i,t){var r={\"10.0\":\"10\",6.4:\"10 Technical Preview\",6.3:\"8.1\",6.2:\"8\",6.1:\"Server 2008 R2 / 7\",\"6.0\":\"Server 2008 / Vista\",5.2:\"Server 2003 / XP 64-bit\",5.1:\"XP\",5.01:\"2000 SP1\",\"5.0\":\"2000\",\"4.0\":\"NT\",\"4.90\":\"ME\"};if(i&&t&&/^Win/i.test(e)&&!/^Windows Phone /i.test(e)&&(r=r[/[\\d.]+$/.exec(e)])){e=\"Windows \"+r}e=String(e);if(i&&t){e=e.replace(RegExp(i,\"i\"),t)}e=format(e.replace(/ ce$/i,\" CE\").replace(/\\bhpw/i,\"web\").replace(/\\bMacintosh\\b/,\"Mac OS\").replace(/_PowerPC\\b/i,\" OS\").replace(/\\b(OS X) [^ \\d]+/i,\"$1\").replace(/\\bMac (OS X)\\b/,\"$1\").replace(/\\/(\\d)/,\" $1\").replace(/_/g,\".\").replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i,\"\").replace(/\\bx86\\.64\\b/gi,\"x86_64\").replace(/\\b(Windows Phone) OS\\b/,\"$1\").replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/,\"$1\").split(\" on \")[0]);return e}function each(e,i){var t=-1,r=e?e.length:0;if(typeof r==\"number\"&&r>-1&&r<=s){while(++t<r){i(e[t],t,e)}}else{forOwn(e,i)}}function format(e){e=trim(e);return/^(?:webOS|i(?:OS|P))/.test(e)?e:capitalize(e)}function forOwn(e,i){for(var t in e){if(p.call(e,t)){i(e[t],t,e)}}}function getClassOf(e){return e==null?capitalize(e):u.call(e).slice(8,-1)}function isHostType(e,i){var t=e!=null?typeof e[i]:\"number\";return!/^(?:boolean|number|string|undefined)$/.test(t)&&(t==\"object\"?!!e[i]:true)}function qualify(e){return String(e).replace(/([ -])(?!$)/g,\"$1?\")}function reduce(e,i){var t=null;each(e,(function(r,a){t=i(t,r,a,e)}));return t}function trim(e){return String(e).replace(/^ +| +$/g,\"\")}function parse(e){var i=r;var t=e&&typeof e==\"object\"&&getClassOf(e)!=\"String\";if(t){i=e;e=null}var n=i.navigator||{};var o=n.userAgent||\"\";e||(e=o);var l=t||b==a;var s=t?!!n.likeChrome:/\\bChrome\\b/.test(e)&&!/internal|\\n/i.test(u.toString());var c=\"Object\",p=t?c:\"ScriptBridgingProxyObject\",d=t?c:\"Environment\",S=t&&i.java?\"JavaPackage\":getClassOf(i.java),x=t?c:\"RuntimeObject\";var m=/\\bJava/.test(S)&&i.java;var g=m&&getClassOf(i.environment)==d;var h=m?\"a\":\"α\";var v=m?\"b\":\"β\";var O=i.document||{};var y=i.operamini||i.opera;var w=f.test(w=t&&y?y[\"[[Class]]\"]:getClassOf(y))?w:y=null;var M;var E=e;var P=[];var C=null;var k=e==o;var B=k&&y&&typeof y.version==\"function\"&&y.version();var W;var _=getLayout([{label:\"EdgeHTML\",pattern:\"Edge\"},\"Trident\",{label:\"WebKit\",pattern:\"AppleWebKit\"},\"iCab\",\"Presto\",\"NetFront\",\"Tasman\",\"KHTML\",\"Gecko\"]);var R=getName([\"Adobe AIR\",\"Arora\",\"Avant Browser\",\"Breach\",\"Camino\",\"Electron\",\"Epiphany\",\"Fennec\",\"Flock\",\"Galeon\",\"GreenBrowser\",\"iCab\",\"Iceweasel\",\"K-Meleon\",\"Konqueror\",\"Lunascape\",\"Maxthon\",{label:\"Microsoft Edge\",pattern:\"(?:Edge|Edg|EdgA|EdgiOS)\"},\"Midori\",\"Nook Browser\",\"PaleMoon\",\"PhantomJS\",\"Raven\",\"Rekonq\",\"RockMelt\",{label:\"Samsung Internet\",pattern:\"SamsungBrowser\"},\"SeaMonkey\",{label:\"Silk\",pattern:\"(?:Cloud9|Silk-Accelerated)\"},\"Sleipnir\",\"SlimBrowser\",{label:\"SRWare Iron\",pattern:\"Iron\"},\"Sunrise\",\"Swiftfox\",\"Vivaldi\",\"Waterfox\",\"WebPositive\",{label:\"Yandex Browser\",pattern:\"YaBrowser\"},{label:\"UC Browser\",pattern:\"UCBrowser\"},\"Opera Mini\",{label:\"Opera Mini\",pattern:\"OPiOS\"},\"Opera\",{label:\"Opera\",pattern:\"OPR\"},\"Chromium\",\"Chrome\",{label:\"Chrome\",pattern:\"(?:HeadlessChrome)\"},{label:\"Chrome Mobile\",pattern:\"(?:CriOS|CrMo)\"},{label:\"Firefox\",pattern:\"(?:Firefox|Minefield)\"},{label:\"Firefox for iOS\",pattern:\"FxiOS\"},{label:\"IE\",pattern:\"IEMobile\"},{label:\"IE\",pattern:\"MSIE\"},\"Safari\"]);var A=getProduct([{label:\"BlackBerry\",pattern:\"BB10\"},\"BlackBerry\",{label:\"Galaxy S\",pattern:\"GT-I9000\"},{label:\"Galaxy S2\",pattern:\"GT-I9100\"},{label:\"Galaxy S3\",pattern:\"GT-I9300\"},{label:\"Galaxy S4\",pattern:\"GT-I9500\"},{label:\"Galaxy S5\",pattern:\"SM-G900\"},{label:\"Galaxy S6\",pattern:\"SM-G920\"},{label:\"Galaxy S6 Edge\",pattern:\"SM-G925\"},{label:\"Galaxy S7\",pattern:\"SM-G930\"},{label:\"Galaxy S7 Edge\",pattern:\"SM-G935\"},\"Google TV\",\"Lumia\",\"iPad\",\"iPod\",\"iPhone\",\"Kindle\",{label:\"Kindle Fire\",pattern:\"(?:Cloud9|Silk-Accelerated)\"},\"Nexus\",\"Nook\",\"PlayBook\",\"PlayStation Vita\",\"PlayStation\",\"TouchPad\",\"Transformer\",{label:\"Wii U\",pattern:\"WiiU\"},\"Wii\",\"Xbox One\",{label:\"Xbox 360\",pattern:\"Xbox\"},\"Xoom\"]);var I=getManufacturer({Apple:{iPad:1,iPhone:1,iPod:1},Alcatel:{},Archos:{},Amazon:{Kindle:1,\"Kindle Fire\":1},Asus:{Transformer:1},\"Barnes & Noble\":{Nook:1},BlackBerry:{PlayBook:1},Google:{\"Google TV\":1,Nexus:1},HP:{TouchPad:1},HTC:{},Huawei:{},Lenovo:{},LG:{},Microsoft:{Xbox:1,\"Xbox One\":1},Motorola:{Xoom:1},Nintendo:{\"Wii U\":1,Wii:1},Nokia:{Lumia:1},Oppo:{},Samsung:{\"Galaxy S\":1,\"Galaxy S2\":1,\"Galaxy S3\":1,\"Galaxy S4\":1},Sony:{PlayStation:1,\"PlayStation Vita\":1},Xiaomi:{Mi:1,Redmi:1}});var T=getOS([\"Windows Phone\",\"KaiOS\",\"Android\",\"CentOS\",{label:\"Chrome OS\",pattern:\"CrOS\"},\"Debian\",{label:\"DragonFly BSD\",pattern:\"DragonFly\"},\"Fedora\",\"FreeBSD\",\"Gentoo\",\"Haiku\",\"Kubuntu\",\"Linux Mint\",\"OpenBSD\",\"Red Hat\",\"SuSE\",\"Ubuntu\",\"Xubuntu\",\"Cygwin\",\"Symbian OS\",\"hpwOS\",\"webOS \",\"webOS\",\"Tablet OS\",\"Tizen\",\"Linux\",\"Mac OS X\",\"Macintosh\",\"Mac\",\"Windows 98;\",\"Windows \"]);function getLayout(i){return reduce(i,(function(i,t){return i||RegExp(\"\\\\b\"+(t.pattern||qualify(t))+\"\\\\b\",\"i\").exec(e)&&(t.label||t)}))}function getManufacturer(i){return reduce(i,(function(i,t,r){return i||(t[A]||t[/^[a-z]+(?: +[a-z]+\\b)*/i.exec(A)]||RegExp(\"\\\\b\"+qualify(r)+\"(?:\\\\b|\\\\w*\\\\d)\",\"i\").exec(e))&&r}))}function getName(i){return reduce(i,(function(i,t){return i||RegExp(\"\\\\b\"+(t.pattern||qualify(t))+\"\\\\b\",\"i\").exec(e)&&(t.label||t)}))}function getOS(i){return reduce(i,(function(i,t){var r=t.pattern||qualify(t);if(!i&&(i=RegExp(\"\\\\b\"+r+\"(?:/[\\\\d.]+|[ \\\\w.]*)\",\"i\").exec(e))){i=cleanupOS(i,r,t.label||t)}return i}))}function getProduct(i){return reduce(i,(function(i,t){var r=t.pattern||qualify(t);if(!i&&(i=RegExp(\"\\\\b\"+r+\" *\\\\d+[.\\\\w_]*\",\"i\").exec(e)||RegExp(\"\\\\b\"+r+\" *\\\\w+-[\\\\w]*\",\"i\").exec(e)||RegExp(\"\\\\b\"+r+\"(?:; *(?:[a-z]+[_-])?[a-z]+\\\\d+|[^ ();-]*)\",\"i\").exec(e))){if((i=String(t.label&&!RegExp(r,\"i\").test(t.label)?t.label:i).split(\"/\"))[1]&&!/[\\d.]+/.test(i[0])){i[0]+=\" \"+i[1]}t=t.label||t;i=format(i[0].replace(RegExp(r,\"i\"),t).replace(RegExp(\"; *(?:\"+t+\"[_-])?\",\"i\"),\" \").replace(RegExp(\"(\"+t+\")[-_.]?(\\\\w)\",\"i\"),\"$1 $2\"))}return i}))}function getVersion(i){return reduce(i,(function(i,t){return i||(RegExp(t+\"(?:-[\\\\d.]+/|(?: for [\\\\w-]+)?[ /-])([\\\\d.]+[^ ();/_-]*)\",\"i\").exec(e)||0)[1]||null}))}function toStringPlatform(){return this.description||\"\"}_&&(_=[_]);if(/\\bAndroid\\b/.test(T)&&!A&&(M=/\\bAndroid[^;]*;(.*?)(?:Build|\\) AppleWebKit)\\b/i.exec(e))){A=trim(M[1]).replace(/^[a-z]{2}-[a-z]{2};\\s*/i,\"\")||null}if(I&&!A){A=getProduct([I])}else if(I&&A){A=A.replace(RegExp(\"^(\"+qualify(I)+\")[-_.\\\\s]\",\"i\"),I+\" \").replace(RegExp(\"^(\"+qualify(I)+\")[-_.]?(\\\\w)\",\"i\"),I+\" $2\")}if(M=/\\bGoogle TV\\b/.exec(A)){A=M[0]}if(/\\bSimulator\\b/i.test(e)){A=(A?A+\" \":\"\")+\"Simulator\"}if(R==\"Opera Mini\"&&/\\bOPiOS\\b/.test(e)){P.push(\"running in Turbo/Uncompressed mode\")}if(R==\"IE\"&&/\\blike iPhone OS\\b/.test(e)){M=parse(e.replace(/like iPhone OS/,\"\"));I=M.manufacturer;A=M.product}else if(/^iP/.test(A)){R||(R=\"Safari\");T=\"iOS\"+((M=/ OS ([\\d_]+)/i.exec(e))?\" \"+M[1].replace(/_/g,\".\"):\"\")}else if(R==\"Konqueror\"&&/^Linux\\b/i.test(T)){T=\"Kubuntu\"}else if(I&&I!=\"Google\"&&(/Chrome/.test(R)&&!/\\bMobile Safari\\b/i.test(e)||/\\bVita\\b/.test(A))||/\\bAndroid\\b/.test(T)&&/^Chrome/.test(R)&&/\\bVersion\\//i.test(e)){R=\"Android Browser\";T=/\\bAndroid\\b/.test(T)?T:\"Android\"}else if(R==\"Silk\"){if(!/\\bMobi/i.test(e)){T=\"Android\";P.unshift(\"desktop mode\")}if(/Accelerated *= *true/i.test(e)){P.unshift(\"accelerated\")}}else if(R==\"UC Browser\"&&/\\bUCWEB\\b/.test(e)){P.push(\"speed mode\")}else if(R==\"PaleMoon\"&&(M=/\\bFirefox\\/([\\d.]+)\\b/.exec(e))){P.push(\"identifying as Firefox \"+M[1])}else if(R==\"Firefox\"&&(M=/\\b(Mobile|Tablet|TV)\\b/i.exec(e))){T||(T=\"Firefox OS\");A||(A=M[1])}else if(!R||(M=!/\\bMinefield\\b/i.test(e)&&/\\b(?:Firefox|Safari)\\b/.exec(R))){if(R&&!A&&/[\\/,]|^[^(]+?\\)/.test(e.slice(e.indexOf(M+\"/\")+8))){R=null}if((M=A||I||T)&&(A||I||/\\b(?:Android|Symbian OS|Tablet OS|webOS)\\b/.test(T))){R=/[a-z]+(?: Hat)?/i.exec(/\\bAndroid\\b/.test(T)?T:M)+\" Browser\"}}else if(R==\"Electron\"&&(M=(/\\bChrome\\/([\\d.]+)\\b/.exec(e)||0)[1])){P.push(\"Chromium \"+M)}if(!B){B=getVersion([\"(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\\\d.]+$)|UCBrowser|YaBrowser)\",\"Version\",qualify(R),\"(?:Firefox|Minefield|NetFront)\"])}if(M=_==\"iCab\"&&parseFloat(B)>3&&\"WebKit\"||/\\bOpera\\b/.test(R)&&(/\\bOPR\\b/.test(e)?\"Blink\":\"Presto\")||/\\b(?:Midori|Nook|Safari)\\b/i.test(e)&&!/^(?:Trident|EdgeHTML)$/.test(_)&&\"WebKit\"||!_&&/\\bMSIE\\b/i.test(e)&&(T==\"Mac OS\"?\"Tasman\":\"Trident\")||_==\"WebKit\"&&/\\bPlayStation\\b(?! Vita\\b)/i.test(R)&&\"NetFront\"){_=[M]}if(R==\"IE\"&&(M=(/; *(?:XBLWP|ZuneWP)(\\d+)/i.exec(e)||0)[1])){R+=\" Mobile\";T=\"Windows Phone \"+(/\\+$/.test(M)?M:M+\".x\");P.unshift(\"desktop mode\")}else if(/\\bWPDesktop\\b/i.test(e)){R=\"IE Mobile\";T=\"Windows Phone 8.x\";P.unshift(\"desktop mode\");B||(B=(/\\brv:([\\d.]+)/.exec(e)||0)[1])}else if(R!=\"IE\"&&_==\"Trident\"&&(M=/\\brv:([\\d.]+)/.exec(e))){if(R){P.push(\"identifying as \"+R+(B?\" \"+B:\"\"))}R=\"IE\";B=M[1]}if(k){if(isHostType(i,\"global\")){if(m){M=m.lang.System;E=M.getProperty(\"os.arch\");T=T||M.getProperty(\"os.name\")+\" \"+M.getProperty(\"os.version\")}if(g){try{B=i.require(\"ringo/engine\").version.join(\".\");R=\"RingoJS\"}catch(e){if((M=i.system)&&M.global.system==i.system){R=\"Narwhal\";T||(T=M[0].os||null)}}if(!R){R=\"Rhino\"}}else if(typeof i.process==\"object\"&&!i.process.browser&&(M=i.process)){if(typeof M.versions==\"object\"){if(typeof M.versions.electron==\"string\"){P.push(\"Node \"+M.versions.node);R=\"Electron\";B=M.versions.electron}else if(typeof M.versions.nw==\"string\"){P.push(\"Chromium \"+B,\"Node \"+M.versions.node);R=\"NW.js\";B=M.versions.nw}}if(!R){R=\"Node.js\";E=M.arch;T=M.platform;B=/[\\d.]+/.exec(M.version);B=B?B[0]:null}}}else if(getClassOf(M=i.runtime)==p){R=\"Adobe AIR\";T=M.flash.system.Capabilities.os}else if(getClassOf(M=i.phantom)==x){R=\"PhantomJS\";B=(M=M.version||null)&&M.major+\".\"+M.minor+\".\"+M.patch}else if(typeof O.documentMode==\"number\"&&(M=/\\bTrident\\/(\\d+)/i.exec(e))){B=[B,O.documentMode];if((M=+M[1]+4)!=B[1]){P.push(\"IE \"+B[1]+\" mode\");_&&(_[1]=\"\");B[1]=M}B=R==\"IE\"?String(B[1].toFixed(1)):B[0]}else if(typeof O.documentMode==\"number\"&&/^(?:Chrome|Firefox)\\b/.test(R)){P.push(\"masking as \"+R+\" \"+B);R=\"IE\";B=\"11.0\";_=[\"Trident\"];T=\"Windows\"}T=T&&format(T)}if(B&&(M=/(?:[ab]|dp|pre|[ab]\\d+pre)(?:\\d+\\+?)?$/i.exec(B)||/(?:alpha|beta)(?: ?\\d)?/i.exec(e+\";\"+(k&&n.appMinorVersion))||/\\bMinefield\\b/i.test(e)&&\"a\")){C=/b/i.test(M)?\"beta\":\"alpha\";B=B.replace(RegExp(M+\"\\\\+?$\"),\"\")+(C==\"beta\"?v:h)+(/\\d+\\+?/.exec(M)||\"\")}if(R==\"Fennec\"||R==\"Firefox\"&&/\\b(?:Android|Firefox OS|KaiOS)\\b/.test(T)){R=\"Firefox Mobile\"}else if(R==\"Maxthon\"&&B){B=B.replace(/\\.[\\d.]+/,\".x\")}else if(/\\bXbox\\b/i.test(A)){if(A==\"Xbox 360\"){T=null}if(A==\"Xbox 360\"&&/\\bIEMobile\\b/.test(e)){P.unshift(\"mobile mode\")}}else if((/^(?:Chrome|IE|Opera)$/.test(R)||R&&!A&&!/Browser|Mobi/.test(R))&&(T==\"Windows CE\"||/Mobi/i.test(e))){R+=\" Mobile\"}else if(R==\"IE\"&&k){try{if(i.external===null){P.unshift(\"platform preview\")}}catch(e){P.unshift(\"embedded\")}}else if((/\\bBlackBerry\\b/.test(A)||/\\bBB10\\b/.test(e))&&(M=(RegExp(A.replace(/ +/g,\" *\")+\"/([.\\\\d]+)\",\"i\").exec(e)||0)[1]||B)){M=[M,/BB10/.test(e)];T=(M[1]?(A=null,I=\"BlackBerry\"):\"Device Software\")+\" \"+M[0];B=null}else if(this!=forOwn&&A!=\"Wii\"&&(k&&y||/Opera/.test(R)&&/\\b(?:MSIE|Firefox)\\b/i.test(e)||R==\"Firefox\"&&/\\bOS X (?:\\d+\\.){2,}/.test(T)||R==\"IE\"&&(T&&!/^Win/.test(T)&&B>5.5||/\\bWindows XP\\b/.test(T)&&B>8||B==8&&!/\\bTrident\\b/.test(e)))&&!f.test(M=parse.call(forOwn,e.replace(f,\"\")+\";\"))&&M.name){M=\"ing as \"+M.name+((M=M.version)?\" \"+M:\"\");if(f.test(R)){if(/\\bIE\\b/.test(M)&&T==\"Mac OS\"){T=null}M=\"identify\"+M}else{M=\"mask\"+M;if(w){R=format(w.replace(/([a-z])([A-Z])/g,\"$1 $2\"))}else{R=\"Opera\"}if(/\\bIE\\b/.test(M)){T=null}if(!k){B=null}}_=[\"Presto\"];P.push(M)}if(M=(/\\bAppleWebKit\\/([\\d.]+\\+?)/i.exec(e)||0)[1]){M=[parseFloat(M.replace(/\\.(\\d)$/,\".0$1\")),M];if(R==\"Safari\"&&M[1].slice(-1)==\"+\"){R=\"WebKit Nightly\";C=\"alpha\";B=M[1].slice(0,-1)}else if(B==M[1]||B==(M[2]=(/\\bSafari\\/([\\d.]+\\+?)/i.exec(e)||0)[1])){B=null}M[1]=(/\\b(?:Headless)?Chrome\\/([\\d.]+)/i.exec(e)||0)[1];if(M[0]==537.36&&M[2]==537.36&&parseFloat(M[1])>=28&&_==\"WebKit\"){_=[\"Blink\"]}if(!k||!s&&!M[1]){_&&(_[1]=\"like Safari\");M=(M=M[0],M<400?1:M<500?2:M<526?3:M<533?4:M<534?\"4+\":M<535?5:M<537?6:M<538?7:M<601?8:M<602?9:M<604?10:M<606?11:M<608?12:\"12\")}else{_&&(_[1]=\"like Chrome\");M=M[1]||(M=M[0],M<530?1:M<532?2:M<532.05?3:M<533?4:M<534.03?5:M<534.07?6:M<534.1?7:M<534.13?8:M<534.16?9:M<534.24?10:M<534.3?11:M<535.01?12:M<535.02?\"13+\":M<535.07?15:M<535.11?16:M<535.19?17:M<536.05?18:M<536.1?19:M<537.01?20:M<537.11?\"21+\":M<537.13?23:M<537.18?24:M<537.24?25:M<537.36?26:_!=\"Blink\"?\"27\":\"28\")}_&&(_[1]+=\" \"+(M+=typeof M==\"number\"?\".x\":/[.+]/.test(M)?\"\":\"+\"));if(R==\"Safari\"&&(!B||parseInt(B)>45)){B=M}else if(R==\"Chrome\"&&/\\bHeadlessChrome/i.test(e)){P.unshift(\"headless\")}}if(R==\"Opera\"&&(M=/\\bzbov|zvav$/.exec(T))){R+=\" \";P.unshift(\"desktop mode\");if(M==\"zvav\"){R+=\"Mini\";B=null}else{R+=\"Mobile\"}T=T.replace(RegExp(\" *\"+M+\"$\"),\"\")}else if(R==\"Safari\"&&/\\bChrome\\b/.exec(_&&_[1])){P.unshift(\"desktop mode\");R=\"Chrome Mobile\";B=null;if(/\\bOS X\\b/.test(T)){I=\"Apple\";T=\"iOS 4.3+\"}else{T=null}}else if(/\\bSRWare Iron\\b/.test(R)&&!B){B=getVersion(\"Chrome\")}if(B&&B.indexOf(M=/[\\d.]+$/.exec(T))==0&&e.indexOf(\"/\"+M+\"-\")>-1){T=trim(T.replace(M,\"\"))}if(T&&T.indexOf(R)!=-1&&!RegExp(R+\" OS\").test(T)){T=T.replace(RegExp(\" *\"+qualify(R)+\" *\"),\"\")}if(_&&!/\\b(?:Avant|Nook)\\b/.test(R)&&(/Browser|Lunascape|Maxthon/.test(R)||R!=\"Safari\"&&/^iOS/.test(T)&&/\\bSafari\\b/.test(_[1])||/^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(R)&&_[1])){(M=_[_.length-1])&&P.push(M)}if(P.length){P=[\"(\"+P.join(\"; \")+\")\"]}if(I&&A&&A.indexOf(I)<0){P.push(\"on \"+I)}if(A){P.push((/^on /.test(P[P.length-1])?\"\":\"on \")+A)}if(T){M=/ ([\\d.+]+)$/.exec(T);W=M&&T.charAt(T.length-M[0].length-1)==\"/\";T={architecture:32,family:M&&!W?T.replace(M[0],\"\"):T,version:M?M[1]:null,toString:function(){var e=this.version;return this.family+(e&&!W?\" \"+e:\"\")+(this.architecture==64?\" 64-bit\":\"\")}}}if((M=/\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b/i.exec(E))&&!/\\bi686\\b/i.test(E)){if(T){T.architecture=64;T.family=T.family.replace(RegExp(\" *\"+M),\"\")}if(R&&(/\\bWOW64\\b/i.test(e)||k&&/\\w(?:86|32)$/.test(n.cpuClass||n.platform)&&!/\\bWin64; x64\\b/i.test(e))){P.unshift(\"32-bit\")}}else if(T&&/^OS X/.test(T.family)&&R==\"Chrome\"&&parseFloat(B)>=39){T.architecture=64}e||(e=null);var F={};F.description=e;F.layout=_&&_[0];F.manufacturer=I;F.name=R;F.prerelease=C;F.product=A;F.ua=e;F.version=R&&B;F.os=T||{architecture:null,family:null,version:null,toString:function(){return\"null\"}};F.parse=parse;F.toString=toStringPlatform;if(F.version){P.unshift(B)}if(F.name){P.unshift(R)}if(T&&R&&!(T==String(T).split(\" \")[0]&&(T==R.split(\" \")[0]||A))){P.push(A?\"(\"+T+\")\":\"on \"+T)}if(P.length){F.description=P.join(\" \")}return F}var d=parse();if(n&&o){forOwn(d,(function(e,i){n[i]=e}))}else{r.platform=d}}).call(this)}};var i={};function __nccwpck_require__(t){var r=i[t];if(r!==undefined){return r.exports}var a=i[t]={id:t,loaded:false,exports:{}};var n=true;try{e[t].call(a.exports,a,a.exports,__nccwpck_require__);n=false}finally{if(n)delete i[t]}a.loaded=true;return a.exports}(()=>{__nccwpck_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(541);module.exports=t})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3BsYXRmb3JtL3BsYXRmb3JtLmpzIiwibWFwcGluZ3MiOiI7QUFBQSxNQUFNLE9BQU8sb0JBQW9CO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGFBQWEsT0FBTywyQkFBMkIscUNBQXFDLFFBQVEscUJBQXFCLHFDQUFxQyxtQkFBbUIscUJBQU0sWUFBWSxxQkFBTSxDQUFDLGdEQUFnRCxJQUFJLHVCQUF1QixnQkFBZ0IsV0FBVyx1QkFBdUIsdUJBQXVCLGlCQUFpQix1QkFBdUIsWUFBWSw0Q0FBNEMsMEJBQTBCLE9BQU8sME1BQTBNLGlGQUFpRixlQUFlLFlBQVksU0FBUyw2QkFBNkIsbVpBQW1aLFNBQVMsbUJBQW1CLHdCQUF3QixtQ0FBbUMsYUFBYSxhQUFhLEtBQUssYUFBYSxtQkFBbUIsVUFBVSxxREFBcUQscUJBQXFCLGdCQUFnQixnQkFBZ0IsY0FBYyx1QkFBdUIsbURBQW1ELHlCQUF5QixtQ0FBbUMsa0ZBQWtGLG9CQUFvQiwrQ0FBK0MscUJBQXFCLFdBQVcsc0JBQXNCLGFBQWEsR0FBRyxTQUFTLGlCQUFpQix3Q0FBd0Msa0JBQWtCLFFBQVEscURBQXFELE1BQU0sSUFBSSxPQUFPLHNCQUFzQixzQkFBc0IsU0FBUyxjQUFjLGdGQUFnRix3SUFBd0ksK0JBQStCLHNDQUFzQyxnQkFBZ0IsZ0JBQWdCLHFCQUFxQiwyQkFBMkIsMkRBQTJELE1BQU0sUUFBUSxTQUFTLFdBQVcsV0FBVyxzREFBc0QsTUFBTSxrQkFBa0IsZ0NBQWdDLFlBQVkscUNBQXFDLHVEQUF1RCxxTUFBcU0sMERBQTBELDZFQUE2RSxrREFBa0QsY0FBYyxtREFBbUQsMkJBQTJCLG1DQUFtQywwREFBMEQsMkNBQTJDLEVBQUUsdUNBQXVDLGVBQWUsbUNBQW1DLFVBQVUsNEJBQTRCLHNCQUFzQiw0Q0FBNEMsRUFBRSwrQ0FBK0MsRUFBRSxnREFBZ0QsRUFBRSx3Q0FBd0MsRUFBRSw4QkFBOEIsRUFBRSwwQkFBMEIsWUFBWSxtQkFBbUIsa0NBQWtDLGVBQWUsb0NBQW9DLEVBQUUscUNBQXFDLEVBQUUscUNBQXFDLEVBQUUscUNBQXFDLEVBQUUsb0NBQW9DLEVBQUUsb0NBQW9DLEVBQUUseUNBQXlDLEVBQUUsb0NBQW9DLEVBQUUseUNBQXlDLHNEQUFzRCwwREFBMEQsc0ZBQXNGLDZCQUE2QixtQkFBbUIsZ0NBQWdDLFVBQVUsdUJBQXVCLE9BQU8sdUJBQXVCLFdBQVcsVUFBVSxTQUFTLHlCQUF5QixPQUFPLGNBQWMsbUJBQW1CLE9BQU8sYUFBYSxXQUFXLFNBQVMsc0JBQXNCLEtBQUssV0FBVyxPQUFPLFVBQVUsVUFBVSxNQUFNLFlBQVksb0JBQW9CLFdBQVcsT0FBTyxXQUFXLGdCQUFnQixRQUFRLFFBQVEsUUFBUSxVQUFVLHVEQUF1RCxPQUFPLG1DQUFtQyxTQUFTLGNBQWMsRUFBRSx5REFBeUQsaUNBQWlDLFdBQVcsMENBQTBDLDhOQUE4TixlQUFlLHNCQUFzQiwrQkFBK0IsZ0ZBQWdGLEdBQUcsNEJBQTRCLGlDQUFpQyxrSEFBa0gsR0FBRyxvQkFBb0IsK0JBQStCLGdGQUFnRixHQUFHLGtCQUFrQiwrQkFBK0IsNEJBQTRCLGdFQUFnRSw0QkFBNEIsU0FBUyxHQUFHLHVCQUF1QiwrQkFBK0IsNEJBQTRCLDBIQUEwSCxpQ0FBaUMscUJBQXFCLG9HQUFvRyxlQUFlLGFBQWEseURBQXlELDhFQUE4RSxTQUFTLEdBQUcsdUJBQXVCLCtCQUErQix1RUFBdUUsa0NBQWtDLEdBQUcsNEJBQTRCLDRCQUE0QixXQUFXLDhDQUE4QyxHQUFHLDRDQUE0Qyw2QkFBNkIsRUFBRSxPQUFPLEdBQUcsZ0JBQWdCLFVBQVUsa0JBQWtCLGNBQWMsdUhBQXVILDhCQUE4QixPQUFPLDZCQUE2QiwyQkFBMkIseUNBQXlDLDZDQUE2QywwQ0FBMEMsd0NBQXdDLGlCQUFpQixZQUFZLHVCQUF1QixnQkFBZ0Isb0VBQW9FLDZDQUE2QyxZQUFZLGlLQUFpSyxvQkFBb0Isb0NBQW9DLG1CQUFtQix1QkFBdUIsWUFBWSwwQkFBMEIsb0NBQW9DLDBCQUEwQiw4Q0FBOEMscUJBQXFCLDREQUE0RCx1Q0FBdUMsNkRBQTZELG9CQUFvQixZQUFZLDZFQUE2RSwrREFBK0QsT0FBTyw4RUFBOEUsaUVBQWlFLG1FQUFtRSxzQkFBc0IsT0FBTyx1T0FBdU8scVRBQXFULE1BQU0sbUJBQW1CLDBDQUEwQyxhQUFhLDRDQUE0QywwQkFBMEIsa0NBQWtDLGNBQWMsc0JBQXNCLDBCQUEwQix1Q0FBdUMsNERBQTRELE1BQU0seUNBQXlDLE9BQU8sT0FBTyxNQUFNLDJCQUEyQixNQUFNLGdCQUFnQiwyQkFBMkIsOERBQThELE1BQU0sSUFBSSw4Q0FBOEMsWUFBWSxTQUFTLDRDQUE0QyxZQUFZLHNCQUFzQixPQUFPLFdBQVcsdUVBQXVFLGdDQUFnQyx5Q0FBeUMsZ0NBQWdDLGFBQWEsc0JBQXNCLHdDQUF3Qyw4Q0FBOEMsVUFBVSxpQkFBaUIsT0FBTyxZQUFZLFNBQVMsYUFBYSwyQkFBMkIsZ0JBQWdCLG9DQUFvQyxjQUFjLGlDQUFpQyxvQ0FBb0MsY0FBYyx1REFBdUQsMEVBQTBFLHFCQUFxQixzQkFBc0IsMkJBQTJCLGFBQWEsT0FBTyx1Q0FBdUMsMEVBQTBFLDhCQUE4QixPQUFPLFNBQVMsY0FBYyxZQUFZLGVBQWUsZ0dBQWdHLDJEQUEyRCw4QkFBOEIseUVBQXlFLDBFQUEwRSxtQkFBbUIseUJBQXlCLDZCQUE2Qiw2QkFBNkIsa0JBQWtCLE9BQU8sMENBQTBDLDBCQUEwQiwrR0FBK0csYUFBYSxvQkFBb0IsSUFBSSxzQkFBc0IsK0JBQStCLFNBQVMsdUJBQXVCLCtIQUErSCxxQkFBcUIsNERBQTRELE9BQU8seUhBQXlILEdBQUcsNkpBQTZKLGFBQWEsNENBQTRDLGNBQWMsa0NBQWtDLE9BQU8sZUFBZSxLQUFLLFdBQVcsTUFBTSwrQ0FBK0MsS0FBSyxVQUFVLHFCQUFxQixPQUFPLE9BQU8sUUFBUSxhQUFhLFVBQVUsb0RBQW9ELDhDQUE4QyxxQ0FBcUMsbUJBQW1CLFVBQVUsbUJBQW1CLHFFQUFxRSxPQUFPLHdEQUF3RCxrRUFBa0UsWUFBWSxrQkFBa0Isd0JBQXdCLDhIQUE4SCxLQUFLLHdCQUF3Qix1VEFBdVQsa0VBQWtFLHNDQUFzQyxJQUFJLGtEQUFrRCx1QkFBdUIsMkNBQTJDLE9BQU8sMEJBQTBCLGNBQWMsVUFBVSxPQUFPLEtBQUssWUFBWSxtQ0FBbUMsaURBQWlELDBCQUEwQixrQkFBa0IsT0FBTyx1QkFBdUIsVUFBVSxhQUFhLEtBQUssUUFBUSx1Q0FBdUMsdUJBQXVCLGtFQUFrRSx3QkFBd0Isa0RBQWtELDZDQUE2Qyw4UEFBOFAsNkJBQTZCLGFBQWEsaUJBQWlCLFFBQVEseUJBQXlCLGdCQUFnQixNQUFNLGdEQUFnRCxNQUFNLHdCQUF3QiwyQ0FBMkMsR0FBRywwRkFBMEYsbUJBQW1CLDJFQUEyRSx5RUFBeUUsTUFBTSxrQkFBa0IsNkNBQTZDLHdGQUF3RixrQkFBa0IscUJBQXFCLG1FQUFtRSxrQkFBa0IsWUFBWSxTQUFTLGdCQUFnQixpQkFBaUIsaUJBQWlCLFNBQVMsZUFBZSxZQUFZLE9BQU8sZUFBZSxTQUFTLCtEQUErRCxlQUFlLGNBQWMsNEJBQTRCLGNBQWMsYUFBYSxXQUFXLGFBQWEsaUVBQWlFLDRCQUE0QixhQUFhLDBCQUEwQixTQUFTLGNBQWMsU0FBUyx3QkFBd0IsT0FBTyxHQUFHLEtBQUssY0FBYyxlQUFlLFNBQVMsZ0NBQWdDLFdBQVcsa0JBQWtCLGlCQUFpQixZQUFZLDhCQUE4QixXQUFXLElBQUkscURBQXFELFFBQVEsUUFBUSxpQkFBaUIsY0FBYyxpQkFBaUIsTUFBTSw0QkFBNEIsV0FBVyw2QkFBNkIsVUFBVSxJQUFJLG1FQUFtRSxTQUFTLEtBQUssK0JBQStCLGlCQUFpQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcGxhdGZvcm0vcGxhdGZvcm0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57dmFyIGU9ezU0MTpmdW5jdGlvbihlLGksdCl7ZT10Lm5tZChlKTtcbi8qIVxuICogUGxhdGZvcm0uanMgdjEuMy42XG4gKiBDb3B5cmlnaHQgMjAxNC0yMDIwIEJlbmphbWluIFRhblxuICogQ29weXJpZ2h0IDIwMTEtMjAxMyBKb2huLURhdmlkIERhbHRvblxuICogQXZhaWxhYmxlIHVuZGVyIE1JVCBsaWNlbnNlXG4gKi8oZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt2YXIgdD17ZnVuY3Rpb246dHJ1ZSxvYmplY3Q6dHJ1ZX07dmFyIHI9dFt0eXBlb2Ygd2luZG93XSYmd2luZG93fHx0aGlzO3ZhciBhPXI7dmFyIG49dFt0eXBlb2YgaV0mJmk7dmFyIG89dFtcIm9iamVjdFwiXSYmZSYmIWUubm9kZVR5cGUmJmU7dmFyIGw9biYmbyYmdHlwZW9mIGdsb2JhbD09XCJvYmplY3RcIiYmZ2xvYmFsO2lmKGwmJihsLmdsb2JhbD09PWx8fGwud2luZG93PT09bHx8bC5zZWxmPT09bCkpe3I9bH12YXIgcz1NYXRoLnBvdygyLDUzKS0xO3ZhciBmPS9cXGJPcGVyYS87dmFyIGI9dGhpczt2YXIgYz1PYmplY3QucHJvdG90eXBlO3ZhciBwPWMuaGFzT3duUHJvcGVydHk7dmFyIHU9Yy50b1N0cmluZztmdW5jdGlvbiBjYXBpdGFsaXplKGUpe2U9U3RyaW5nKGUpO3JldHVybiBlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9ZnVuY3Rpb24gY2xlYW51cE9TKGUsaSx0KXt2YXIgcj17XCIxMC4wXCI6XCIxMFwiLDYuNDpcIjEwIFRlY2huaWNhbCBQcmV2aWV3XCIsNi4zOlwiOC4xXCIsNi4yOlwiOFwiLDYuMTpcIlNlcnZlciAyMDA4IFIyIC8gN1wiLFwiNi4wXCI6XCJTZXJ2ZXIgMjAwOCAvIFZpc3RhXCIsNS4yOlwiU2VydmVyIDIwMDMgLyBYUCA2NC1iaXRcIiw1LjE6XCJYUFwiLDUuMDE6XCIyMDAwIFNQMVwiLFwiNS4wXCI6XCIyMDAwXCIsXCI0LjBcIjpcIk5UXCIsXCI0LjkwXCI6XCJNRVwifTtpZihpJiZ0JiYvXldpbi9pLnRlc3QoZSkmJiEvXldpbmRvd3MgUGhvbmUgL2kudGVzdChlKSYmKHI9clsvW1xcZC5dKyQvLmV4ZWMoZSldKSl7ZT1cIldpbmRvd3MgXCIrcn1lPVN0cmluZyhlKTtpZihpJiZ0KXtlPWUucmVwbGFjZShSZWdFeHAoaSxcImlcIiksdCl9ZT1mb3JtYXQoZS5yZXBsYWNlKC8gY2UkL2ksXCIgQ0VcIikucmVwbGFjZSgvXFxiaHB3L2ksXCJ3ZWJcIikucmVwbGFjZSgvXFxiTWFjaW50b3NoXFxiLyxcIk1hYyBPU1wiKS5yZXBsYWNlKC9fUG93ZXJQQ1xcYi9pLFwiIE9TXCIpLnJlcGxhY2UoL1xcYihPUyBYKSBbXiBcXGRdKy9pLFwiJDFcIikucmVwbGFjZSgvXFxiTWFjIChPUyBYKVxcYi8sXCIkMVwiKS5yZXBsYWNlKC9cXC8oXFxkKS8sXCIgJDFcIikucmVwbGFjZSgvXy9nLFwiLlwiKS5yZXBsYWNlKC8oPzogQmVQQ3xbIC5dKmZjWyBcXGQuXSspJC9pLFwiXCIpLnJlcGxhY2UoL1xcYng4NlxcLjY0XFxiL2dpLFwieDg2XzY0XCIpLnJlcGxhY2UoL1xcYihXaW5kb3dzIFBob25lKSBPU1xcYi8sXCIkMVwiKS5yZXBsYWNlKC9cXGIoQ2hyb21lIE9TIFxcdyspIFtcXGQuXStcXGIvLFwiJDFcIikuc3BsaXQoXCIgb24gXCIpWzBdKTtyZXR1cm4gZX1mdW5jdGlvbiBlYWNoKGUsaSl7dmFyIHQ9LTEscj1lP2UubGVuZ3RoOjA7aWYodHlwZW9mIHI9PVwibnVtYmVyXCImJnI+LTEmJnI8PXMpe3doaWxlKCsrdDxyKXtpKGVbdF0sdCxlKX19ZWxzZXtmb3JPd24oZSxpKX19ZnVuY3Rpb24gZm9ybWF0KGUpe2U9dHJpbShlKTtyZXR1cm4vXig/OndlYk9TfGkoPzpPU3xQKSkvLnRlc3QoZSk/ZTpjYXBpdGFsaXplKGUpfWZ1bmN0aW9uIGZvck93bihlLGkpe2Zvcih2YXIgdCBpbiBlKXtpZihwLmNhbGwoZSx0KSl7aShlW3RdLHQsZSl9fX1mdW5jdGlvbiBnZXRDbGFzc09mKGUpe3JldHVybiBlPT1udWxsP2NhcGl0YWxpemUoZSk6dS5jYWxsKGUpLnNsaWNlKDgsLTEpfWZ1bmN0aW9uIGlzSG9zdFR5cGUoZSxpKXt2YXIgdD1lIT1udWxsP3R5cGVvZiBlW2ldOlwibnVtYmVyXCI7cmV0dXJuIS9eKD86Ym9vbGVhbnxudW1iZXJ8c3RyaW5nfHVuZGVmaW5lZCkkLy50ZXN0KHQpJiYodD09XCJvYmplY3RcIj8hIWVbaV06dHJ1ZSl9ZnVuY3Rpb24gcXVhbGlmeShlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoLyhbIC1dKSg/ISQpL2csXCIkMT9cIil9ZnVuY3Rpb24gcmVkdWNlKGUsaSl7dmFyIHQ9bnVsbDtlYWNoKGUsKGZ1bmN0aW9uKHIsYSl7dD1pKHQscixhLGUpfSkpO3JldHVybiB0fWZ1bmN0aW9uIHRyaW0oZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKC9eICt8ICskL2csXCJcIil9ZnVuY3Rpb24gcGFyc2UoZSl7dmFyIGk9cjt2YXIgdD1lJiZ0eXBlb2YgZT09XCJvYmplY3RcIiYmZ2V0Q2xhc3NPZihlKSE9XCJTdHJpbmdcIjtpZih0KXtpPWU7ZT1udWxsfXZhciBuPWkubmF2aWdhdG9yfHx7fTt2YXIgbz1uLnVzZXJBZ2VudHx8XCJcIjtlfHwoZT1vKTt2YXIgbD10fHxiPT1hO3ZhciBzPXQ/ISFuLmxpa2VDaHJvbWU6L1xcYkNocm9tZVxcYi8udGVzdChlKSYmIS9pbnRlcm5hbHxcXG4vaS50ZXN0KHUudG9TdHJpbmcoKSk7dmFyIGM9XCJPYmplY3RcIixwPXQ/YzpcIlNjcmlwdEJyaWRnaW5nUHJveHlPYmplY3RcIixkPXQ/YzpcIkVudmlyb25tZW50XCIsUz10JiZpLmphdmE/XCJKYXZhUGFja2FnZVwiOmdldENsYXNzT2YoaS5qYXZhKSx4PXQ/YzpcIlJ1bnRpbWVPYmplY3RcIjt2YXIgbT0vXFxiSmF2YS8udGVzdChTKSYmaS5qYXZhO3ZhciBnPW0mJmdldENsYXNzT2YoaS5lbnZpcm9ubWVudCk9PWQ7dmFyIGg9bT9cImFcIjpcIs6xXCI7dmFyIHY9bT9cImJcIjpcIs6yXCI7dmFyIE89aS5kb2N1bWVudHx8e307dmFyIHk9aS5vcGVyYW1pbml8fGkub3BlcmE7dmFyIHc9Zi50ZXN0KHc9dCYmeT95W1wiW1tDbGFzc11dXCJdOmdldENsYXNzT2YoeSkpP3c6eT1udWxsO3ZhciBNO3ZhciBFPWU7dmFyIFA9W107dmFyIEM9bnVsbDt2YXIgaz1lPT1vO3ZhciBCPWsmJnkmJnR5cGVvZiB5LnZlcnNpb249PVwiZnVuY3Rpb25cIiYmeS52ZXJzaW9uKCk7dmFyIFc7dmFyIF89Z2V0TGF5b3V0KFt7bGFiZWw6XCJFZGdlSFRNTFwiLHBhdHRlcm46XCJFZGdlXCJ9LFwiVHJpZGVudFwiLHtsYWJlbDpcIldlYktpdFwiLHBhdHRlcm46XCJBcHBsZVdlYktpdFwifSxcImlDYWJcIixcIlByZXN0b1wiLFwiTmV0RnJvbnRcIixcIlRhc21hblwiLFwiS0hUTUxcIixcIkdlY2tvXCJdKTt2YXIgUj1nZXROYW1lKFtcIkFkb2JlIEFJUlwiLFwiQXJvcmFcIixcIkF2YW50IEJyb3dzZXJcIixcIkJyZWFjaFwiLFwiQ2FtaW5vXCIsXCJFbGVjdHJvblwiLFwiRXBpcGhhbnlcIixcIkZlbm5lY1wiLFwiRmxvY2tcIixcIkdhbGVvblwiLFwiR3JlZW5Ccm93c2VyXCIsXCJpQ2FiXCIsXCJJY2V3ZWFzZWxcIixcIkstTWVsZW9uXCIsXCJLb25xdWVyb3JcIixcIkx1bmFzY2FwZVwiLFwiTWF4dGhvblwiLHtsYWJlbDpcIk1pY3Jvc29mdCBFZGdlXCIscGF0dGVybjpcIig/OkVkZ2V8RWRnfEVkZ0F8RWRnaU9TKVwifSxcIk1pZG9yaVwiLFwiTm9vayBCcm93c2VyXCIsXCJQYWxlTW9vblwiLFwiUGhhbnRvbUpTXCIsXCJSYXZlblwiLFwiUmVrb25xXCIsXCJSb2NrTWVsdFwiLHtsYWJlbDpcIlNhbXN1bmcgSW50ZXJuZXRcIixwYXR0ZXJuOlwiU2Ftc3VuZ0Jyb3dzZXJcIn0sXCJTZWFNb25rZXlcIix7bGFiZWw6XCJTaWxrXCIscGF0dGVybjpcIig/OkNsb3VkOXxTaWxrLUFjY2VsZXJhdGVkKVwifSxcIlNsZWlwbmlyXCIsXCJTbGltQnJvd3NlclwiLHtsYWJlbDpcIlNSV2FyZSBJcm9uXCIscGF0dGVybjpcIklyb25cIn0sXCJTdW5yaXNlXCIsXCJTd2lmdGZveFwiLFwiVml2YWxkaVwiLFwiV2F0ZXJmb3hcIixcIldlYlBvc2l0aXZlXCIse2xhYmVsOlwiWWFuZGV4IEJyb3dzZXJcIixwYXR0ZXJuOlwiWWFCcm93c2VyXCJ9LHtsYWJlbDpcIlVDIEJyb3dzZXJcIixwYXR0ZXJuOlwiVUNCcm93c2VyXCJ9LFwiT3BlcmEgTWluaVwiLHtsYWJlbDpcIk9wZXJhIE1pbmlcIixwYXR0ZXJuOlwiT1BpT1NcIn0sXCJPcGVyYVwiLHtsYWJlbDpcIk9wZXJhXCIscGF0dGVybjpcIk9QUlwifSxcIkNocm9taXVtXCIsXCJDaHJvbWVcIix7bGFiZWw6XCJDaHJvbWVcIixwYXR0ZXJuOlwiKD86SGVhZGxlc3NDaHJvbWUpXCJ9LHtsYWJlbDpcIkNocm9tZSBNb2JpbGVcIixwYXR0ZXJuOlwiKD86Q3JpT1N8Q3JNbylcIn0se2xhYmVsOlwiRmlyZWZveFwiLHBhdHRlcm46XCIoPzpGaXJlZm94fE1pbmVmaWVsZClcIn0se2xhYmVsOlwiRmlyZWZveCBmb3IgaU9TXCIscGF0dGVybjpcIkZ4aU9TXCJ9LHtsYWJlbDpcIklFXCIscGF0dGVybjpcIklFTW9iaWxlXCJ9LHtsYWJlbDpcIklFXCIscGF0dGVybjpcIk1TSUVcIn0sXCJTYWZhcmlcIl0pO3ZhciBBPWdldFByb2R1Y3QoW3tsYWJlbDpcIkJsYWNrQmVycnlcIixwYXR0ZXJuOlwiQkIxMFwifSxcIkJsYWNrQmVycnlcIix7bGFiZWw6XCJHYWxheHkgU1wiLHBhdHRlcm46XCJHVC1JOTAwMFwifSx7bGFiZWw6XCJHYWxheHkgUzJcIixwYXR0ZXJuOlwiR1QtSTkxMDBcIn0se2xhYmVsOlwiR2FsYXh5IFMzXCIscGF0dGVybjpcIkdULUk5MzAwXCJ9LHtsYWJlbDpcIkdhbGF4eSBTNFwiLHBhdHRlcm46XCJHVC1JOTUwMFwifSx7bGFiZWw6XCJHYWxheHkgUzVcIixwYXR0ZXJuOlwiU00tRzkwMFwifSx7bGFiZWw6XCJHYWxheHkgUzZcIixwYXR0ZXJuOlwiU00tRzkyMFwifSx7bGFiZWw6XCJHYWxheHkgUzYgRWRnZVwiLHBhdHRlcm46XCJTTS1HOTI1XCJ9LHtsYWJlbDpcIkdhbGF4eSBTN1wiLHBhdHRlcm46XCJTTS1HOTMwXCJ9LHtsYWJlbDpcIkdhbGF4eSBTNyBFZGdlXCIscGF0dGVybjpcIlNNLUc5MzVcIn0sXCJHb29nbGUgVFZcIixcIkx1bWlhXCIsXCJpUGFkXCIsXCJpUG9kXCIsXCJpUGhvbmVcIixcIktpbmRsZVwiLHtsYWJlbDpcIktpbmRsZSBGaXJlXCIscGF0dGVybjpcIig/OkNsb3VkOXxTaWxrLUFjY2VsZXJhdGVkKVwifSxcIk5leHVzXCIsXCJOb29rXCIsXCJQbGF5Qm9va1wiLFwiUGxheVN0YXRpb24gVml0YVwiLFwiUGxheVN0YXRpb25cIixcIlRvdWNoUGFkXCIsXCJUcmFuc2Zvcm1lclwiLHtsYWJlbDpcIldpaSBVXCIscGF0dGVybjpcIldpaVVcIn0sXCJXaWlcIixcIlhib3ggT25lXCIse2xhYmVsOlwiWGJveCAzNjBcIixwYXR0ZXJuOlwiWGJveFwifSxcIlhvb21cIl0pO3ZhciBJPWdldE1hbnVmYWN0dXJlcih7QXBwbGU6e2lQYWQ6MSxpUGhvbmU6MSxpUG9kOjF9LEFsY2F0ZWw6e30sQXJjaG9zOnt9LEFtYXpvbjp7S2luZGxlOjEsXCJLaW5kbGUgRmlyZVwiOjF9LEFzdXM6e1RyYW5zZm9ybWVyOjF9LFwiQmFybmVzICYgTm9ibGVcIjp7Tm9vazoxfSxCbGFja0JlcnJ5OntQbGF5Qm9vazoxfSxHb29nbGU6e1wiR29vZ2xlIFRWXCI6MSxOZXh1czoxfSxIUDp7VG91Y2hQYWQ6MX0sSFRDOnt9LEh1YXdlaTp7fSxMZW5vdm86e30sTEc6e30sTWljcm9zb2Z0OntYYm94OjEsXCJYYm94IE9uZVwiOjF9LE1vdG9yb2xhOntYb29tOjF9LE5pbnRlbmRvOntcIldpaSBVXCI6MSxXaWk6MX0sTm9raWE6e0x1bWlhOjF9LE9wcG86e30sU2Ftc3VuZzp7XCJHYWxheHkgU1wiOjEsXCJHYWxheHkgUzJcIjoxLFwiR2FsYXh5IFMzXCI6MSxcIkdhbGF4eSBTNFwiOjF9LFNvbnk6e1BsYXlTdGF0aW9uOjEsXCJQbGF5U3RhdGlvbiBWaXRhXCI6MX0sWGlhb21pOntNaToxLFJlZG1pOjF9fSk7dmFyIFQ9Z2V0T1MoW1wiV2luZG93cyBQaG9uZVwiLFwiS2FpT1NcIixcIkFuZHJvaWRcIixcIkNlbnRPU1wiLHtsYWJlbDpcIkNocm9tZSBPU1wiLHBhdHRlcm46XCJDck9TXCJ9LFwiRGViaWFuXCIse2xhYmVsOlwiRHJhZ29uRmx5IEJTRFwiLHBhdHRlcm46XCJEcmFnb25GbHlcIn0sXCJGZWRvcmFcIixcIkZyZWVCU0RcIixcIkdlbnRvb1wiLFwiSGFpa3VcIixcIkt1YnVudHVcIixcIkxpbnV4IE1pbnRcIixcIk9wZW5CU0RcIixcIlJlZCBIYXRcIixcIlN1U0VcIixcIlVidW50dVwiLFwiWHVidW50dVwiLFwiQ3lnd2luXCIsXCJTeW1iaWFuIE9TXCIsXCJocHdPU1wiLFwid2ViT1MgXCIsXCJ3ZWJPU1wiLFwiVGFibGV0IE9TXCIsXCJUaXplblwiLFwiTGludXhcIixcIk1hYyBPUyBYXCIsXCJNYWNpbnRvc2hcIixcIk1hY1wiLFwiV2luZG93cyA5ODtcIixcIldpbmRvd3MgXCJdKTtmdW5jdGlvbiBnZXRMYXlvdXQoaSl7cmV0dXJuIHJlZHVjZShpLChmdW5jdGlvbihpLHQpe3JldHVybiBpfHxSZWdFeHAoXCJcXFxcYlwiKyh0LnBhdHRlcm58fHF1YWxpZnkodCkpK1wiXFxcXGJcIixcImlcIikuZXhlYyhlKSYmKHQubGFiZWx8fHQpfSkpfWZ1bmN0aW9uIGdldE1hbnVmYWN0dXJlcihpKXtyZXR1cm4gcmVkdWNlKGksKGZ1bmN0aW9uKGksdCxyKXtyZXR1cm4gaXx8KHRbQV18fHRbL15bYS16XSsoPzogK1thLXpdK1xcYikqL2kuZXhlYyhBKV18fFJlZ0V4cChcIlxcXFxiXCIrcXVhbGlmeShyKStcIig/OlxcXFxifFxcXFx3KlxcXFxkKVwiLFwiaVwiKS5leGVjKGUpKSYmcn0pKX1mdW5jdGlvbiBnZXROYW1lKGkpe3JldHVybiByZWR1Y2UoaSwoZnVuY3Rpb24oaSx0KXtyZXR1cm4gaXx8UmVnRXhwKFwiXFxcXGJcIisodC5wYXR0ZXJufHxxdWFsaWZ5KHQpKStcIlxcXFxiXCIsXCJpXCIpLmV4ZWMoZSkmJih0LmxhYmVsfHx0KX0pKX1mdW5jdGlvbiBnZXRPUyhpKXtyZXR1cm4gcmVkdWNlKGksKGZ1bmN0aW9uKGksdCl7dmFyIHI9dC5wYXR0ZXJufHxxdWFsaWZ5KHQpO2lmKCFpJiYoaT1SZWdFeHAoXCJcXFxcYlwiK3IrXCIoPzovW1xcXFxkLl0rfFsgXFxcXHcuXSopXCIsXCJpXCIpLmV4ZWMoZSkpKXtpPWNsZWFudXBPUyhpLHIsdC5sYWJlbHx8dCl9cmV0dXJuIGl9KSl9ZnVuY3Rpb24gZ2V0UHJvZHVjdChpKXtyZXR1cm4gcmVkdWNlKGksKGZ1bmN0aW9uKGksdCl7dmFyIHI9dC5wYXR0ZXJufHxxdWFsaWZ5KHQpO2lmKCFpJiYoaT1SZWdFeHAoXCJcXFxcYlwiK3IrXCIgKlxcXFxkK1suXFxcXHdfXSpcIixcImlcIikuZXhlYyhlKXx8UmVnRXhwKFwiXFxcXGJcIityK1wiICpcXFxcdystW1xcXFx3XSpcIixcImlcIikuZXhlYyhlKXx8UmVnRXhwKFwiXFxcXGJcIityK1wiKD86OyAqKD86W2Etel0rW18tXSk/W2Etel0rXFxcXGQrfFteICgpOy1dKilcIixcImlcIikuZXhlYyhlKSkpe2lmKChpPVN0cmluZyh0LmxhYmVsJiYhUmVnRXhwKHIsXCJpXCIpLnRlc3QodC5sYWJlbCk/dC5sYWJlbDppKS5zcGxpdChcIi9cIikpWzFdJiYhL1tcXGQuXSsvLnRlc3QoaVswXSkpe2lbMF0rPVwiIFwiK2lbMV19dD10LmxhYmVsfHx0O2k9Zm9ybWF0KGlbMF0ucmVwbGFjZShSZWdFeHAocixcImlcIiksdCkucmVwbGFjZShSZWdFeHAoXCI7ICooPzpcIit0K1wiW18tXSk/XCIsXCJpXCIpLFwiIFwiKS5yZXBsYWNlKFJlZ0V4cChcIihcIit0K1wiKVstXy5dPyhcXFxcdylcIixcImlcIiksXCIkMSAkMlwiKSl9cmV0dXJuIGl9KSl9ZnVuY3Rpb24gZ2V0VmVyc2lvbihpKXtyZXR1cm4gcmVkdWNlKGksKGZ1bmN0aW9uKGksdCl7cmV0dXJuIGl8fChSZWdFeHAodCtcIig/Oi1bXFxcXGQuXSsvfCg/OiBmb3IgW1xcXFx3LV0rKT9bIC8tXSkoW1xcXFxkLl0rW14gKCk7L18tXSopXCIsXCJpXCIpLmV4ZWMoZSl8fDApWzFdfHxudWxsfSkpfWZ1bmN0aW9uIHRvU3RyaW5nUGxhdGZvcm0oKXtyZXR1cm4gdGhpcy5kZXNjcmlwdGlvbnx8XCJcIn1fJiYoXz1bX10pO2lmKC9cXGJBbmRyb2lkXFxiLy50ZXN0KFQpJiYhQSYmKE09L1xcYkFuZHJvaWRbXjtdKjsoLio/KSg/OkJ1aWxkfFxcKSBBcHBsZVdlYktpdClcXGIvaS5leGVjKGUpKSl7QT10cmltKE1bMV0pLnJlcGxhY2UoL15bYS16XXsyfS1bYS16XXsyfTtcXHMqL2ksXCJcIil8fG51bGx9aWYoSSYmIUEpe0E9Z2V0UHJvZHVjdChbSV0pfWVsc2UgaWYoSSYmQSl7QT1BLnJlcGxhY2UoUmVnRXhwKFwiXihcIitxdWFsaWZ5KEkpK1wiKVstXy5cXFxcc11cIixcImlcIiksSStcIiBcIikucmVwbGFjZShSZWdFeHAoXCJeKFwiK3F1YWxpZnkoSSkrXCIpWy1fLl0/KFxcXFx3KVwiLFwiaVwiKSxJK1wiICQyXCIpfWlmKE09L1xcYkdvb2dsZSBUVlxcYi8uZXhlYyhBKSl7QT1NWzBdfWlmKC9cXGJTaW11bGF0b3JcXGIvaS50ZXN0KGUpKXtBPShBP0ErXCIgXCI6XCJcIikrXCJTaW11bGF0b3JcIn1pZihSPT1cIk9wZXJhIE1pbmlcIiYmL1xcYk9QaU9TXFxiLy50ZXN0KGUpKXtQLnB1c2goXCJydW5uaW5nIGluIFR1cmJvL1VuY29tcHJlc3NlZCBtb2RlXCIpfWlmKFI9PVwiSUVcIiYmL1xcYmxpa2UgaVBob25lIE9TXFxiLy50ZXN0KGUpKXtNPXBhcnNlKGUucmVwbGFjZSgvbGlrZSBpUGhvbmUgT1MvLFwiXCIpKTtJPU0ubWFudWZhY3R1cmVyO0E9TS5wcm9kdWN0fWVsc2UgaWYoL15pUC8udGVzdChBKSl7Unx8KFI9XCJTYWZhcmlcIik7VD1cImlPU1wiKygoTT0vIE9TIChbXFxkX10rKS9pLmV4ZWMoZSkpP1wiIFwiK01bMV0ucmVwbGFjZSgvXy9nLFwiLlwiKTpcIlwiKX1lbHNlIGlmKFI9PVwiS29ucXVlcm9yXCImJi9eTGludXhcXGIvaS50ZXN0KFQpKXtUPVwiS3VidW50dVwifWVsc2UgaWYoSSYmSSE9XCJHb29nbGVcIiYmKC9DaHJvbWUvLnRlc3QoUikmJiEvXFxiTW9iaWxlIFNhZmFyaVxcYi9pLnRlc3QoZSl8fC9cXGJWaXRhXFxiLy50ZXN0KEEpKXx8L1xcYkFuZHJvaWRcXGIvLnRlc3QoVCkmJi9eQ2hyb21lLy50ZXN0KFIpJiYvXFxiVmVyc2lvblxcLy9pLnRlc3QoZSkpe1I9XCJBbmRyb2lkIEJyb3dzZXJcIjtUPS9cXGJBbmRyb2lkXFxiLy50ZXN0KFQpP1Q6XCJBbmRyb2lkXCJ9ZWxzZSBpZihSPT1cIlNpbGtcIil7aWYoIS9cXGJNb2JpL2kudGVzdChlKSl7VD1cIkFuZHJvaWRcIjtQLnVuc2hpZnQoXCJkZXNrdG9wIG1vZGVcIil9aWYoL0FjY2VsZXJhdGVkICo9ICp0cnVlL2kudGVzdChlKSl7UC51bnNoaWZ0KFwiYWNjZWxlcmF0ZWRcIil9fWVsc2UgaWYoUj09XCJVQyBCcm93c2VyXCImJi9cXGJVQ1dFQlxcYi8udGVzdChlKSl7UC5wdXNoKFwic3BlZWQgbW9kZVwiKX1lbHNlIGlmKFI9PVwiUGFsZU1vb25cIiYmKE09L1xcYkZpcmVmb3hcXC8oW1xcZC5dKylcXGIvLmV4ZWMoZSkpKXtQLnB1c2goXCJpZGVudGlmeWluZyBhcyBGaXJlZm94IFwiK01bMV0pfWVsc2UgaWYoUj09XCJGaXJlZm94XCImJihNPS9cXGIoTW9iaWxlfFRhYmxldHxUVilcXGIvaS5leGVjKGUpKSl7VHx8KFQ9XCJGaXJlZm94IE9TXCIpO0F8fChBPU1bMV0pfWVsc2UgaWYoIVJ8fChNPSEvXFxiTWluZWZpZWxkXFxiL2kudGVzdChlKSYmL1xcYig/OkZpcmVmb3h8U2FmYXJpKVxcYi8uZXhlYyhSKSkpe2lmKFImJiFBJiYvW1xcLyxdfF5bXihdKz9cXCkvLnRlc3QoZS5zbGljZShlLmluZGV4T2YoTStcIi9cIikrOCkpKXtSPW51bGx9aWYoKE09QXx8SXx8VCkmJihBfHxJfHwvXFxiKD86QW5kcm9pZHxTeW1iaWFuIE9TfFRhYmxldCBPU3x3ZWJPUylcXGIvLnRlc3QoVCkpKXtSPS9bYS16XSsoPzogSGF0KT8vaS5leGVjKC9cXGJBbmRyb2lkXFxiLy50ZXN0KFQpP1Q6TSkrXCIgQnJvd3NlclwifX1lbHNlIGlmKFI9PVwiRWxlY3Ryb25cIiYmKE09KC9cXGJDaHJvbWVcXC8oW1xcZC5dKylcXGIvLmV4ZWMoZSl8fDApWzFdKSl7UC5wdXNoKFwiQ2hyb21pdW0gXCIrTSl9aWYoIUIpe0I9Z2V0VmVyc2lvbihbXCIoPzpDbG91ZDl8Q3JpT1N8Q3JNb3xFZGdlfEVkZ3xFZGdBfEVkZ2lPU3xGeGlPU3xIZWFkbGVzc0Nocm9tZXxJRU1vYmlsZXxJcm9ufE9wZXJhID9NaW5pfE9QaU9TfE9QUnxSYXZlbnxTYW1zdW5nQnJvd3NlcnxTaWxrKD8hL1tcXFxcZC5dKyQpfFVDQnJvd3NlcnxZYUJyb3dzZXIpXCIsXCJWZXJzaW9uXCIscXVhbGlmeShSKSxcIig/OkZpcmVmb3h8TWluZWZpZWxkfE5ldEZyb250KVwiXSl9aWYoTT1fPT1cImlDYWJcIiYmcGFyc2VGbG9hdChCKT4zJiZcIldlYktpdFwifHwvXFxiT3BlcmFcXGIvLnRlc3QoUikmJigvXFxiT1BSXFxiLy50ZXN0KGUpP1wiQmxpbmtcIjpcIlByZXN0b1wiKXx8L1xcYig/Ok1pZG9yaXxOb29rfFNhZmFyaSlcXGIvaS50ZXN0KGUpJiYhL14oPzpUcmlkZW50fEVkZ2VIVE1MKSQvLnRlc3QoXykmJlwiV2ViS2l0XCJ8fCFfJiYvXFxiTVNJRVxcYi9pLnRlc3QoZSkmJihUPT1cIk1hYyBPU1wiP1wiVGFzbWFuXCI6XCJUcmlkZW50XCIpfHxfPT1cIldlYktpdFwiJiYvXFxiUGxheVN0YXRpb25cXGIoPyEgVml0YVxcYikvaS50ZXN0KFIpJiZcIk5ldEZyb250XCIpe189W01dfWlmKFI9PVwiSUVcIiYmKE09KC87ICooPzpYQkxXUHxadW5lV1ApKFxcZCspL2kuZXhlYyhlKXx8MClbMV0pKXtSKz1cIiBNb2JpbGVcIjtUPVwiV2luZG93cyBQaG9uZSBcIisoL1xcKyQvLnRlc3QoTSk/TTpNK1wiLnhcIik7UC51bnNoaWZ0KFwiZGVza3RvcCBtb2RlXCIpfWVsc2UgaWYoL1xcYldQRGVza3RvcFxcYi9pLnRlc3QoZSkpe1I9XCJJRSBNb2JpbGVcIjtUPVwiV2luZG93cyBQaG9uZSA4LnhcIjtQLnVuc2hpZnQoXCJkZXNrdG9wIG1vZGVcIik7Qnx8KEI9KC9cXGJydjooW1xcZC5dKykvLmV4ZWMoZSl8fDApWzFdKX1lbHNlIGlmKFIhPVwiSUVcIiYmXz09XCJUcmlkZW50XCImJihNPS9cXGJydjooW1xcZC5dKykvLmV4ZWMoZSkpKXtpZihSKXtQLnB1c2goXCJpZGVudGlmeWluZyBhcyBcIitSKyhCP1wiIFwiK0I6XCJcIikpfVI9XCJJRVwiO0I9TVsxXX1pZihrKXtpZihpc0hvc3RUeXBlKGksXCJnbG9iYWxcIikpe2lmKG0pe009bS5sYW5nLlN5c3RlbTtFPU0uZ2V0UHJvcGVydHkoXCJvcy5hcmNoXCIpO1Q9VHx8TS5nZXRQcm9wZXJ0eShcIm9zLm5hbWVcIikrXCIgXCIrTS5nZXRQcm9wZXJ0eShcIm9zLnZlcnNpb25cIil9aWYoZyl7dHJ5e0I9aS5yZXF1aXJlKFwicmluZ28vZW5naW5lXCIpLnZlcnNpb24uam9pbihcIi5cIik7Uj1cIlJpbmdvSlNcIn1jYXRjaChlKXtpZigoTT1pLnN5c3RlbSkmJk0uZ2xvYmFsLnN5c3RlbT09aS5zeXN0ZW0pe1I9XCJOYXJ3aGFsXCI7VHx8KFQ9TVswXS5vc3x8bnVsbCl9fWlmKCFSKXtSPVwiUmhpbm9cIn19ZWxzZSBpZih0eXBlb2YgaS5wcm9jZXNzPT1cIm9iamVjdFwiJiYhaS5wcm9jZXNzLmJyb3dzZXImJihNPWkucHJvY2Vzcykpe2lmKHR5cGVvZiBNLnZlcnNpb25zPT1cIm9iamVjdFwiKXtpZih0eXBlb2YgTS52ZXJzaW9ucy5lbGVjdHJvbj09XCJzdHJpbmdcIil7UC5wdXNoKFwiTm9kZSBcIitNLnZlcnNpb25zLm5vZGUpO1I9XCJFbGVjdHJvblwiO0I9TS52ZXJzaW9ucy5lbGVjdHJvbn1lbHNlIGlmKHR5cGVvZiBNLnZlcnNpb25zLm53PT1cInN0cmluZ1wiKXtQLnB1c2goXCJDaHJvbWl1bSBcIitCLFwiTm9kZSBcIitNLnZlcnNpb25zLm5vZGUpO1I9XCJOVy5qc1wiO0I9TS52ZXJzaW9ucy5ud319aWYoIVIpe1I9XCJOb2RlLmpzXCI7RT1NLmFyY2g7VD1NLnBsYXRmb3JtO0I9L1tcXGQuXSsvLmV4ZWMoTS52ZXJzaW9uKTtCPUI/QlswXTpudWxsfX19ZWxzZSBpZihnZXRDbGFzc09mKE09aS5ydW50aW1lKT09cCl7Uj1cIkFkb2JlIEFJUlwiO1Q9TS5mbGFzaC5zeXN0ZW0uQ2FwYWJpbGl0aWVzLm9zfWVsc2UgaWYoZ2V0Q2xhc3NPZihNPWkucGhhbnRvbSk9PXgpe1I9XCJQaGFudG9tSlNcIjtCPShNPU0udmVyc2lvbnx8bnVsbCkmJk0ubWFqb3IrXCIuXCIrTS5taW5vcitcIi5cIitNLnBhdGNofWVsc2UgaWYodHlwZW9mIE8uZG9jdW1lbnRNb2RlPT1cIm51bWJlclwiJiYoTT0vXFxiVHJpZGVudFxcLyhcXGQrKS9pLmV4ZWMoZSkpKXtCPVtCLE8uZG9jdW1lbnRNb2RlXTtpZigoTT0rTVsxXSs0KSE9QlsxXSl7UC5wdXNoKFwiSUUgXCIrQlsxXStcIiBtb2RlXCIpO18mJihfWzFdPVwiXCIpO0JbMV09TX1CPVI9PVwiSUVcIj9TdHJpbmcoQlsxXS50b0ZpeGVkKDEpKTpCWzBdfWVsc2UgaWYodHlwZW9mIE8uZG9jdW1lbnRNb2RlPT1cIm51bWJlclwiJiYvXig/OkNocm9tZXxGaXJlZm94KVxcYi8udGVzdChSKSl7UC5wdXNoKFwibWFza2luZyBhcyBcIitSK1wiIFwiK0IpO1I9XCJJRVwiO0I9XCIxMS4wXCI7Xz1bXCJUcmlkZW50XCJdO1Q9XCJXaW5kb3dzXCJ9VD1UJiZmb3JtYXQoVCl9aWYoQiYmKE09Lyg/OlthYl18ZHB8cHJlfFthYl1cXGQrcHJlKSg/OlxcZCtcXCs/KT8kL2kuZXhlYyhCKXx8Lyg/OmFscGhhfGJldGEpKD86ID9cXGQpPy9pLmV4ZWMoZStcIjtcIisoayYmbi5hcHBNaW5vclZlcnNpb24pKXx8L1xcYk1pbmVmaWVsZFxcYi9pLnRlc3QoZSkmJlwiYVwiKSl7Qz0vYi9pLnRlc3QoTSk/XCJiZXRhXCI6XCJhbHBoYVwiO0I9Qi5yZXBsYWNlKFJlZ0V4cChNK1wiXFxcXCs/JFwiKSxcIlwiKSsoQz09XCJiZXRhXCI/djpoKSsoL1xcZCtcXCs/Ly5leGVjKE0pfHxcIlwiKX1pZihSPT1cIkZlbm5lY1wifHxSPT1cIkZpcmVmb3hcIiYmL1xcYig/OkFuZHJvaWR8RmlyZWZveCBPU3xLYWlPUylcXGIvLnRlc3QoVCkpe1I9XCJGaXJlZm94IE1vYmlsZVwifWVsc2UgaWYoUj09XCJNYXh0aG9uXCImJkIpe0I9Qi5yZXBsYWNlKC9cXC5bXFxkLl0rLyxcIi54XCIpfWVsc2UgaWYoL1xcYlhib3hcXGIvaS50ZXN0KEEpKXtpZihBPT1cIlhib3ggMzYwXCIpe1Q9bnVsbH1pZihBPT1cIlhib3ggMzYwXCImJi9cXGJJRU1vYmlsZVxcYi8udGVzdChlKSl7UC51bnNoaWZ0KFwibW9iaWxlIG1vZGVcIil9fWVsc2UgaWYoKC9eKD86Q2hyb21lfElFfE9wZXJhKSQvLnRlc3QoUil8fFImJiFBJiYhL0Jyb3dzZXJ8TW9iaS8udGVzdChSKSkmJihUPT1cIldpbmRvd3MgQ0VcInx8L01vYmkvaS50ZXN0KGUpKSl7Uis9XCIgTW9iaWxlXCJ9ZWxzZSBpZihSPT1cIklFXCImJmspe3RyeXtpZihpLmV4dGVybmFsPT09bnVsbCl7UC51bnNoaWZ0KFwicGxhdGZvcm0gcHJldmlld1wiKX19Y2F0Y2goZSl7UC51bnNoaWZ0KFwiZW1iZWRkZWRcIil9fWVsc2UgaWYoKC9cXGJCbGFja0JlcnJ5XFxiLy50ZXN0KEEpfHwvXFxiQkIxMFxcYi8udGVzdChlKSkmJihNPShSZWdFeHAoQS5yZXBsYWNlKC8gKy9nLFwiICpcIikrXCIvKFsuXFxcXGRdKylcIixcImlcIikuZXhlYyhlKXx8MClbMV18fEIpKXtNPVtNLC9CQjEwLy50ZXN0KGUpXTtUPShNWzFdPyhBPW51bGwsST1cIkJsYWNrQmVycnlcIik6XCJEZXZpY2UgU29mdHdhcmVcIikrXCIgXCIrTVswXTtCPW51bGx9ZWxzZSBpZih0aGlzIT1mb3JPd24mJkEhPVwiV2lpXCImJihrJiZ5fHwvT3BlcmEvLnRlc3QoUikmJi9cXGIoPzpNU0lFfEZpcmVmb3gpXFxiL2kudGVzdChlKXx8Uj09XCJGaXJlZm94XCImJi9cXGJPUyBYICg/OlxcZCtcXC4pezIsfS8udGVzdChUKXx8Uj09XCJJRVwiJiYoVCYmIS9eV2luLy50ZXN0KFQpJiZCPjUuNXx8L1xcYldpbmRvd3MgWFBcXGIvLnRlc3QoVCkmJkI+OHx8Qj09OCYmIS9cXGJUcmlkZW50XFxiLy50ZXN0KGUpKSkmJiFmLnRlc3QoTT1wYXJzZS5jYWxsKGZvck93bixlLnJlcGxhY2UoZixcIlwiKStcIjtcIikpJiZNLm5hbWUpe009XCJpbmcgYXMgXCIrTS5uYW1lKygoTT1NLnZlcnNpb24pP1wiIFwiK006XCJcIik7aWYoZi50ZXN0KFIpKXtpZigvXFxiSUVcXGIvLnRlc3QoTSkmJlQ9PVwiTWFjIE9TXCIpe1Q9bnVsbH1NPVwiaWRlbnRpZnlcIitNfWVsc2V7TT1cIm1hc2tcIitNO2lmKHcpe1I9Zm9ybWF0KHcucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZyxcIiQxICQyXCIpKX1lbHNle1I9XCJPcGVyYVwifWlmKC9cXGJJRVxcYi8udGVzdChNKSl7VD1udWxsfWlmKCFrKXtCPW51bGx9fV89W1wiUHJlc3RvXCJdO1AucHVzaChNKX1pZihNPSgvXFxiQXBwbGVXZWJLaXRcXC8oW1xcZC5dK1xcKz8pL2kuZXhlYyhlKXx8MClbMV0pe009W3BhcnNlRmxvYXQoTS5yZXBsYWNlKC9cXC4oXFxkKSQvLFwiLjAkMVwiKSksTV07aWYoUj09XCJTYWZhcmlcIiYmTVsxXS5zbGljZSgtMSk9PVwiK1wiKXtSPVwiV2ViS2l0IE5pZ2h0bHlcIjtDPVwiYWxwaGFcIjtCPU1bMV0uc2xpY2UoMCwtMSl9ZWxzZSBpZihCPT1NWzFdfHxCPT0oTVsyXT0oL1xcYlNhZmFyaVxcLyhbXFxkLl0rXFwrPykvaS5leGVjKGUpfHwwKVsxXSkpe0I9bnVsbH1NWzFdPSgvXFxiKD86SGVhZGxlc3MpP0Nocm9tZVxcLyhbXFxkLl0rKS9pLmV4ZWMoZSl8fDApWzFdO2lmKE1bMF09PTUzNy4zNiYmTVsyXT09NTM3LjM2JiZwYXJzZUZsb2F0KE1bMV0pPj0yOCYmXz09XCJXZWJLaXRcIil7Xz1bXCJCbGlua1wiXX1pZigha3x8IXMmJiFNWzFdKXtfJiYoX1sxXT1cImxpa2UgU2FmYXJpXCIpO009KE09TVswXSxNPDQwMD8xOk08NTAwPzI6TTw1MjY/MzpNPDUzMz80Ok08NTM0P1wiNCtcIjpNPDUzNT81Ok08NTM3PzY6TTw1Mzg/NzpNPDYwMT84Ok08NjAyPzk6TTw2MDQ/MTA6TTw2MDY/MTE6TTw2MDg/MTI6XCIxMlwiKX1lbHNle18mJihfWzFdPVwibGlrZSBDaHJvbWVcIik7TT1NWzFdfHwoTT1NWzBdLE08NTMwPzE6TTw1MzI/MjpNPDUzMi4wNT8zOk08NTMzPzQ6TTw1MzQuMDM/NTpNPDUzNC4wNz82Ok08NTM0LjE/NzpNPDUzNC4xMz84Ok08NTM0LjE2Pzk6TTw1MzQuMjQ/MTA6TTw1MzQuMz8xMTpNPDUzNS4wMT8xMjpNPDUzNS4wMj9cIjEzK1wiOk08NTM1LjA3PzE1Ok08NTM1LjExPzE2Ok08NTM1LjE5PzE3Ok08NTM2LjA1PzE4Ok08NTM2LjE/MTk6TTw1MzcuMDE/MjA6TTw1MzcuMTE/XCIyMStcIjpNPDUzNy4xMz8yMzpNPDUzNy4xOD8yNDpNPDUzNy4yND8yNTpNPDUzNy4zNj8yNjpfIT1cIkJsaW5rXCI/XCIyN1wiOlwiMjhcIil9XyYmKF9bMV0rPVwiIFwiKyhNKz10eXBlb2YgTT09XCJudW1iZXJcIj9cIi54XCI6L1suK10vLnRlc3QoTSk/XCJcIjpcIitcIikpO2lmKFI9PVwiU2FmYXJpXCImJighQnx8cGFyc2VJbnQoQik+NDUpKXtCPU19ZWxzZSBpZihSPT1cIkNocm9tZVwiJiYvXFxiSGVhZGxlc3NDaHJvbWUvaS50ZXN0KGUpKXtQLnVuc2hpZnQoXCJoZWFkbGVzc1wiKX19aWYoUj09XCJPcGVyYVwiJiYoTT0vXFxiemJvdnx6dmF2JC8uZXhlYyhUKSkpe1IrPVwiIFwiO1AudW5zaGlmdChcImRlc2t0b3AgbW9kZVwiKTtpZihNPT1cInp2YXZcIil7Uis9XCJNaW5pXCI7Qj1udWxsfWVsc2V7Uis9XCJNb2JpbGVcIn1UPVQucmVwbGFjZShSZWdFeHAoXCIgKlwiK00rXCIkXCIpLFwiXCIpfWVsc2UgaWYoUj09XCJTYWZhcmlcIiYmL1xcYkNocm9tZVxcYi8uZXhlYyhfJiZfWzFdKSl7UC51bnNoaWZ0KFwiZGVza3RvcCBtb2RlXCIpO1I9XCJDaHJvbWUgTW9iaWxlXCI7Qj1udWxsO2lmKC9cXGJPUyBYXFxiLy50ZXN0KFQpKXtJPVwiQXBwbGVcIjtUPVwiaU9TIDQuMytcIn1lbHNle1Q9bnVsbH19ZWxzZSBpZigvXFxiU1JXYXJlIElyb25cXGIvLnRlc3QoUikmJiFCKXtCPWdldFZlcnNpb24oXCJDaHJvbWVcIil9aWYoQiYmQi5pbmRleE9mKE09L1tcXGQuXSskLy5leGVjKFQpKT09MCYmZS5pbmRleE9mKFwiL1wiK00rXCItXCIpPi0xKXtUPXRyaW0oVC5yZXBsYWNlKE0sXCJcIikpfWlmKFQmJlQuaW5kZXhPZihSKSE9LTEmJiFSZWdFeHAoUitcIiBPU1wiKS50ZXN0KFQpKXtUPVQucmVwbGFjZShSZWdFeHAoXCIgKlwiK3F1YWxpZnkoUikrXCIgKlwiKSxcIlwiKX1pZihfJiYhL1xcYig/OkF2YW50fE5vb2spXFxiLy50ZXN0KFIpJiYoL0Jyb3dzZXJ8THVuYXNjYXBlfE1heHRob24vLnRlc3QoUil8fFIhPVwiU2FmYXJpXCImJi9eaU9TLy50ZXN0KFQpJiYvXFxiU2FmYXJpXFxiLy50ZXN0KF9bMV0pfHwvXig/OkFkb2JlfEFyb3JhfEJyZWFjaHxNaWRvcml8T3BlcmF8UGhhbnRvbXxSZWtvbnF8Um9ja3xTYW1zdW5nIEludGVybmV0fFNsZWlwbmlyfFNSV2FyZSBJcm9ufFZpdmFsZGl8V2ViKS8udGVzdChSKSYmX1sxXSkpeyhNPV9bXy5sZW5ndGgtMV0pJiZQLnB1c2goTSl9aWYoUC5sZW5ndGgpe1A9W1wiKFwiK1Auam9pbihcIjsgXCIpK1wiKVwiXX1pZihJJiZBJiZBLmluZGV4T2YoSSk8MCl7UC5wdXNoKFwib24gXCIrSSl9aWYoQSl7UC5wdXNoKCgvXm9uIC8udGVzdChQW1AubGVuZ3RoLTFdKT9cIlwiOlwib24gXCIpK0EpfWlmKFQpe009LyAoW1xcZC4rXSspJC8uZXhlYyhUKTtXPU0mJlQuY2hhckF0KFQubGVuZ3RoLU1bMF0ubGVuZ3RoLTEpPT1cIi9cIjtUPXthcmNoaXRlY3R1cmU6MzIsZmFtaWx5Ok0mJiFXP1QucmVwbGFjZShNWzBdLFwiXCIpOlQsdmVyc2lvbjpNP01bMV06bnVsbCx0b1N0cmluZzpmdW5jdGlvbigpe3ZhciBlPXRoaXMudmVyc2lvbjtyZXR1cm4gdGhpcy5mYW1pbHkrKGUmJiFXP1wiIFwiK2U6XCJcIikrKHRoaXMuYXJjaGl0ZWN0dXJlPT02ND9cIiA2NC1iaXRcIjpcIlwiKX19fWlmKChNPS9cXGIoPzpBTUR8SUF8V2lufFdPV3x4ODZffHgpNjRcXGIvaS5leGVjKEUpKSYmIS9cXGJpNjg2XFxiL2kudGVzdChFKSl7aWYoVCl7VC5hcmNoaXRlY3R1cmU9NjQ7VC5mYW1pbHk9VC5mYW1pbHkucmVwbGFjZShSZWdFeHAoXCIgKlwiK00pLFwiXCIpfWlmKFImJigvXFxiV09XNjRcXGIvaS50ZXN0KGUpfHxrJiYvXFx3KD86ODZ8MzIpJC8udGVzdChuLmNwdUNsYXNzfHxuLnBsYXRmb3JtKSYmIS9cXGJXaW42NDsgeDY0XFxiL2kudGVzdChlKSkpe1AudW5zaGlmdChcIjMyLWJpdFwiKX19ZWxzZSBpZihUJiYvXk9TIFgvLnRlc3QoVC5mYW1pbHkpJiZSPT1cIkNocm9tZVwiJiZwYXJzZUZsb2F0KEIpPj0zOSl7VC5hcmNoaXRlY3R1cmU9NjR9ZXx8KGU9bnVsbCk7dmFyIEY9e307Ri5kZXNjcmlwdGlvbj1lO0YubGF5b3V0PV8mJl9bMF07Ri5tYW51ZmFjdHVyZXI9STtGLm5hbWU9UjtGLnByZXJlbGVhc2U9QztGLnByb2R1Y3Q9QTtGLnVhPWU7Ri52ZXJzaW9uPVImJkI7Ri5vcz1UfHx7YXJjaGl0ZWN0dXJlOm51bGwsZmFtaWx5Om51bGwsdmVyc2lvbjpudWxsLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuXCJudWxsXCJ9fTtGLnBhcnNlPXBhcnNlO0YudG9TdHJpbmc9dG9TdHJpbmdQbGF0Zm9ybTtpZihGLnZlcnNpb24pe1AudW5zaGlmdChCKX1pZihGLm5hbWUpe1AudW5zaGlmdChSKX1pZihUJiZSJiYhKFQ9PVN0cmluZyhUKS5zcGxpdChcIiBcIilbMF0mJihUPT1SLnNwbGl0KFwiIFwiKVswXXx8QSkpKXtQLnB1c2goQT9cIihcIitUK1wiKVwiOlwib24gXCIrVCl9aWYoUC5sZW5ndGgpe0YuZGVzY3JpcHRpb249UC5qb2luKFwiIFwiKX1yZXR1cm4gRn12YXIgZD1wYXJzZSgpO2lmKG4mJm8pe2Zvck93bihkLChmdW5jdGlvbihlLGkpe25baV09ZX0pKX1lbHNle3IucGxhdGZvcm09ZH19KS5jYWxsKHRoaXMpfX07dmFyIGk9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyh0KXt2YXIgcj1pW3RdO2lmKHIhPT11bmRlZmluZWQpe3JldHVybiByLmV4cG9ydHN9dmFyIGE9aVt0XT17aWQ6dCxsb2FkZWQ6ZmFsc2UsZXhwb3J0czp7fX07dmFyIG49dHJ1ZTt0cnl7ZVt0XS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtuPWZhbHNlfWZpbmFsbHl7aWYobilkZWxldGUgaVt0XX1hLmxvYWRlZD10cnVlO3JldHVybiBhLmV4cG9ydHN9KCgpPT57X19uY2N3cGNrX3JlcXVpcmVfXy5ubWQ9ZT0+e2UucGF0aHM9W107aWYoIWUuY2hpbGRyZW4pZS5jaGlsZHJlbj1bXTtyZXR1cm4gZX19KSgpO2lmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgdD1fX25jY3dwY2tfcmVxdWlyZV9fKDU0MSk7bW9kdWxlLmV4cG9ydHM9dH0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/platform/platform.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/process/browser.js": +/*!************************************************************!*\ + !*** ./node_modules/next/dist/compiled/process/browser.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval(__webpack_require__.ts("var __dirname = \"/\";\n(function(){var e={229:function(e){var t=e.exports={};var r;var n;function defaultSetTimout(){throw new Error(\"setTimeout has not been defined\")}function defaultClearTimeout(){throw new Error(\"clearTimeout has not been defined\")}(function(){try{if(typeof setTimeout===\"function\"){r=setTimeout}else{r=defaultSetTimout}}catch(e){r=defaultSetTimout}try{if(typeof clearTimeout===\"function\"){n=clearTimeout}else{n=defaultClearTimeout}}catch(e){n=defaultClearTimeout}})();function runTimeout(e){if(r===setTimeout){return setTimeout(e,0)}if((r===defaultSetTimout||!r)&&setTimeout){r=setTimeout;return setTimeout(e,0)}try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function runClearTimeout(e){if(n===clearTimeout){return clearTimeout(e)}if((n===defaultClearTimeout||!n)&&clearTimeout){n=clearTimeout;return clearTimeout(e)}try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var i=[];var o=false;var u;var a=-1;function cleanUpNextTick(){if(!o||!u){return}o=false;if(u.length){i=u.concat(i)}else{a=-1}if(i.length){drainQueue()}}function drainQueue(){if(o){return}var e=runTimeout(cleanUpNextTick);o=true;var t=i.length;while(t){u=i;i=[];while(++a<t){if(u){u[a].run()}}a=-1;t=i.length}u=null;o=false;runClearTimeout(e)}t.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1){for(var r=1;r<arguments.length;r++){t[r-1]=arguments[r]}}i.push(new Item(e,t));if(i.length===1&&!o){runTimeout(drainQueue)}};function Item(e,t){this.fun=e;this.array=t}Item.prototype.run=function(){this.fun.apply(null,this.array)};t.title=\"browser\";t.browser=true;t.env={};t.argv=[];t.version=\"\";t.versions={};function noop(){}t.on=noop;t.addListener=noop;t.once=noop;t.off=noop;t.removeListener=noop;t.removeAllListeners=noop;t.emit=noop;t.prependListener=noop;t.prependOnceListener=noop;t.listeners=function(e){return[]};t.binding=function(e){throw new Error(\"process.binding is not supported\")};t.cwd=function(){return\"/\"};t.chdir=function(e){throw new Error(\"process.chdir is not supported\")};t.umask=function(){return 0}}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var i=t[r]={exports:{}};var o=true;try{e[r](i,i.exports,__nccwpck_require__);o=false}finally{if(o)delete t[r]}return i.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var r=__nccwpck_require__(229);module.exports=r})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3Byb2Nlc3MvYnJvd3Nlci5qcyIsIm1hcHBpbmdzIjoiO0FBQUEsWUFBWSxPQUFPLGdCQUFnQixtQkFBbUIsTUFBTSxNQUFNLDRCQUE0QixtREFBbUQsK0JBQStCLHFEQUFxRCxZQUFZLElBQUksbUNBQW1DLGFBQWEsS0FBSyxvQkFBb0IsU0FBUyxtQkFBbUIsSUFBSSxxQ0FBcUMsZUFBZSxLQUFLLHVCQUF1QixTQUFTLHVCQUF1QixJQUFJLHVCQUF1QixtQkFBbUIsdUJBQXVCLDJDQUEyQyxhQUFhLHVCQUF1QixJQUFJLGNBQWMsU0FBUyxJQUFJLHdCQUF3QixTQUFTLDBCQUEwQiw0QkFBNEIscUJBQXFCLHVCQUF1QixnREFBZ0QsZUFBZSx1QkFBdUIsSUFBSSxZQUFZLFNBQVMsSUFBSSxzQkFBc0IsU0FBUyx3QkFBd0IsU0FBUyxZQUFZLE1BQU0sU0FBUywyQkFBMkIsV0FBVyxPQUFPLFFBQVEsYUFBYSxjQUFjLEtBQUssS0FBSyxhQUFhLGNBQWMsc0JBQXNCLE1BQU0sT0FBTyxrQ0FBa0MsT0FBTyxlQUFlLFNBQVMsSUFBSSxLQUFLLGFBQWEsTUFBTSxZQUFZLEtBQUssV0FBVyxPQUFPLFFBQVEsbUJBQW1CLHVCQUF1QixvQ0FBb0MsdUJBQXVCLFlBQVksbUJBQW1CLEtBQUsscUJBQXFCLHNCQUFzQixxQkFBcUIseUJBQXlCLG1CQUFtQixXQUFXLGFBQWEsOEJBQThCLGlDQUFpQyxrQkFBa0IsZUFBZSxTQUFTLFVBQVUsYUFBYSxjQUFjLGlCQUFpQixVQUFVLG1CQUFtQixZQUFZLFdBQVcsc0JBQXNCLDBCQUEwQixZQUFZLHVCQUF1QiwyQkFBMkIsd0JBQXdCLFVBQVUsc0JBQXNCLHFEQUFxRCxpQkFBaUIsV0FBVyxvQkFBb0IsbURBQW1ELG1CQUFtQixZQUFZLFNBQVMsZ0NBQWdDLFdBQVcsa0JBQWtCLGlCQUFpQixZQUFZLFlBQVksV0FBVyxJQUFJLHNDQUFzQyxRQUFRLFFBQVEsaUJBQWlCLGlCQUFpQixtRUFBbUUsU0FBUyxLQUFLLCtCQUErQixpQkFBaUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3Byb2Nlc3MvYnJvd3Nlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24oKXt2YXIgZT17MjI5OmZ1bmN0aW9uKGUpe3ZhciB0PWUuZXhwb3J0cz17fTt2YXIgcjt2YXIgbjtmdW5jdGlvbiBkZWZhdWx0U2V0VGltb3V0KCl7dGhyb3cgbmV3IEVycm9yKFwic2V0VGltZW91dCBoYXMgbm90IGJlZW4gZGVmaW5lZFwiKX1mdW5jdGlvbiBkZWZhdWx0Q2xlYXJUaW1lb3V0KCl7dGhyb3cgbmV3IEVycm9yKFwiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkXCIpfShmdW5jdGlvbigpe3RyeXtpZih0eXBlb2Ygc2V0VGltZW91dD09PVwiZnVuY3Rpb25cIil7cj1zZXRUaW1lb3V0fWVsc2V7cj1kZWZhdWx0U2V0VGltb3V0fX1jYXRjaChlKXtyPWRlZmF1bHRTZXRUaW1vdXR9dHJ5e2lmKHR5cGVvZiBjbGVhclRpbWVvdXQ9PT1cImZ1bmN0aW9uXCIpe249Y2xlYXJUaW1lb3V0fWVsc2V7bj1kZWZhdWx0Q2xlYXJUaW1lb3V0fX1jYXRjaChlKXtuPWRlZmF1bHRDbGVhclRpbWVvdXR9fSkoKTtmdW5jdGlvbiBydW5UaW1lb3V0KGUpe2lmKHI9PT1zZXRUaW1lb3V0KXtyZXR1cm4gc2V0VGltZW91dChlLDApfWlmKChyPT09ZGVmYXVsdFNldFRpbW91dHx8IXIpJiZzZXRUaW1lb3V0KXtyPXNldFRpbWVvdXQ7cmV0dXJuIHNldFRpbWVvdXQoZSwwKX10cnl7cmV0dXJuIHIoZSwwKX1jYXRjaCh0KXt0cnl7cmV0dXJuIHIuY2FsbChudWxsLGUsMCl9Y2F0Y2godCl7cmV0dXJuIHIuY2FsbCh0aGlzLGUsMCl9fX1mdW5jdGlvbiBydW5DbGVhclRpbWVvdXQoZSl7aWYobj09PWNsZWFyVGltZW91dCl7cmV0dXJuIGNsZWFyVGltZW91dChlKX1pZigobj09PWRlZmF1bHRDbGVhclRpbWVvdXR8fCFuKSYmY2xlYXJUaW1lb3V0KXtuPWNsZWFyVGltZW91dDtyZXR1cm4gY2xlYXJUaW1lb3V0KGUpfXRyeXtyZXR1cm4gbihlKX1jYXRjaCh0KXt0cnl7cmV0dXJuIG4uY2FsbChudWxsLGUpfWNhdGNoKHQpe3JldHVybiBuLmNhbGwodGhpcyxlKX19fXZhciBpPVtdO3ZhciBvPWZhbHNlO3ZhciB1O3ZhciBhPS0xO2Z1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpe2lmKCFvfHwhdSl7cmV0dXJufW89ZmFsc2U7aWYodS5sZW5ndGgpe2k9dS5jb25jYXQoaSl9ZWxzZXthPS0xfWlmKGkubGVuZ3RoKXtkcmFpblF1ZXVlKCl9fWZ1bmN0aW9uIGRyYWluUXVldWUoKXtpZihvKXtyZXR1cm59dmFyIGU9cnVuVGltZW91dChjbGVhblVwTmV4dFRpY2spO289dHJ1ZTt2YXIgdD1pLmxlbmd0aDt3aGlsZSh0KXt1PWk7aT1bXTt3aGlsZSgrK2E8dCl7aWYodSl7dVthXS5ydW4oKX19YT0tMTt0PWkubGVuZ3RofXU9bnVsbDtvPWZhbHNlO3J1bkNsZWFyVGltZW91dChlKX10Lm5leHRUaWNrPWZ1bmN0aW9uKGUpe3ZhciB0PW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoLTEpO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSl7Zm9yKHZhciByPTE7cjxhcmd1bWVudHMubGVuZ3RoO3IrKyl7dFtyLTFdPWFyZ3VtZW50c1tyXX19aS5wdXNoKG5ldyBJdGVtKGUsdCkpO2lmKGkubGVuZ3RoPT09MSYmIW8pe3J1blRpbWVvdXQoZHJhaW5RdWV1ZSl9fTtmdW5jdGlvbiBJdGVtKGUsdCl7dGhpcy5mdW49ZTt0aGlzLmFycmF5PXR9SXRlbS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhpcy5mdW4uYXBwbHkobnVsbCx0aGlzLmFycmF5KX07dC50aXRsZT1cImJyb3dzZXJcIjt0LmJyb3dzZXI9dHJ1ZTt0LmVudj17fTt0LmFyZ3Y9W107dC52ZXJzaW9uPVwiXCI7dC52ZXJzaW9ucz17fTtmdW5jdGlvbiBub29wKCl7fXQub249bm9vcDt0LmFkZExpc3RlbmVyPW5vb3A7dC5vbmNlPW5vb3A7dC5vZmY9bm9vcDt0LnJlbW92ZUxpc3RlbmVyPW5vb3A7dC5yZW1vdmVBbGxMaXN0ZW5lcnM9bm9vcDt0LmVtaXQ9bm9vcDt0LnByZXBlbmRMaXN0ZW5lcj1ub29wO3QucHJlcGVuZE9uY2VMaXN0ZW5lcj1ub29wO3QubGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybltdfTt0LmJpbmRpbmc9ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKFwicHJvY2Vzcy5iaW5kaW5nIGlzIG5vdCBzdXBwb3J0ZWRcIil9O3QuY3dkPWZ1bmN0aW9uKCl7cmV0dXJuXCIvXCJ9O3QuY2hkaXI9ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKFwicHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkXCIpfTt0LnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fX07dmFyIHQ9e307ZnVuY3Rpb24gX19uY2N3cGNrX3JlcXVpcmVfXyhyKXt2YXIgbj10W3JdO2lmKG4hPT11bmRlZmluZWQpe3JldHVybiBuLmV4cG9ydHN9dmFyIGk9dFtyXT17ZXhwb3J0czp7fX07dmFyIG89dHJ1ZTt0cnl7ZVtyXShpLGkuZXhwb3J0cyxfX25jY3dwY2tfcmVxdWlyZV9fKTtvPWZhbHNlfWZpbmFsbHl7aWYobylkZWxldGUgdFtyXX1yZXR1cm4gaS5leHBvcnRzfWlmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgcj1fX25jY3dwY2tfcmVxdWlyZV9fKDIyOSk7bW9kdWxlLmV4cG9ydHM9cn0pKCk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/process/browser.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/react-is/cjs/react-is.development.js": +/*!******************************************************************************!*\ + !*** ./node_modules/next/dist/compiled/react-is/cjs/react-is.development.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function typeOf(object) {\n if (\"object\" === typeof object && null !== object) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n switch (((object = object.type), object)) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return object;\n default:\n switch (((object = object && object.$$typeof), object)) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n return object;\n case REACT_CONSUMER_TYPE:\n return object;\n default:\n return $$typeof;\n }\n }\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n }\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_OFFSCREEN_TYPE = Symbol.for(\"react.offscreen\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\");\n exports.ContextConsumer = REACT_CONSUMER_TYPE;\n exports.ContextProvider = REACT_CONTEXT_TYPE;\n exports.Element = REACT_ELEMENT_TYPE;\n exports.ForwardRef = REACT_FORWARD_REF_TYPE;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Lazy = REACT_LAZY_TYPE;\n exports.Memo = REACT_MEMO_TYPE;\n exports.Portal = REACT_PORTAL_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE;\n exports.isContextConsumer = function (object) {\n return typeOf(object) === REACT_CONSUMER_TYPE;\n };\n exports.isContextProvider = function (object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n };\n exports.isElement = function (object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n };\n exports.isForwardRef = function (object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n };\n exports.isFragment = function (object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n };\n exports.isLazy = function (object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n };\n exports.isMemo = function (object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n };\n exports.isPortal = function (object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n };\n exports.isProfiler = function (object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n };\n exports.isStrictMode = function (object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n };\n exports.isSuspense = function (object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n };\n exports.isSuspenseList = function (object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n };\n exports.isValidElementType = function (type) {\n return \"string\" === typeof type ||\n \"function\" === typeof type ||\n type === REACT_FRAGMENT_TYPE ||\n type === REACT_PROFILER_TYPE ||\n type === REACT_STRICT_MODE_TYPE ||\n type === REACT_SUSPENSE_TYPE ||\n type === REACT_SUSPENSE_LIST_TYPE ||\n type === REACT_OFFSCREEN_TYPE ||\n (\"object\" === typeof type &&\n null !== type &&\n (type.$$typeof === REACT_LAZY_TYPE ||\n type.$$typeof === REACT_MEMO_TYPE ||\n type.$$typeof === REACT_CONTEXT_TYPE ||\n type.$$typeof === REACT_CONSUMER_TYPE ||\n type.$$typeof === REACT_FORWARD_REF_TYPE ||\n type.$$typeof === REACT_CLIENT_REFERENCE ||\n void 0 !== type.getModuleId))\n ? !0\n : !1;\n };\n exports.typeOf = typeOf;\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LWlzL2Nqcy9yZWFjdC1pcy5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7QUFDYixLQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksdUJBQXVCO0FBQzNCLElBQUksdUJBQXVCO0FBQzNCLElBQUksZUFBZTtBQUNuQixJQUFJLGtCQUFrQjtBQUN0QixJQUFJLGdCQUFnQjtBQUNwQixJQUFJLFlBQVk7QUFDaEIsSUFBSSxZQUFZO0FBQ2hCLElBQUksY0FBYztBQUNsQixJQUFJLGdCQUFnQjtBQUNwQixJQUFJLGtCQUFrQjtBQUN0QixJQUFJLGdCQUFnQjtBQUNwQixJQUFJLG9CQUFvQjtBQUN4QixJQUFJLHlCQUF5QjtBQUM3QjtBQUNBO0FBQ0EsSUFBSSx5QkFBeUI7QUFDN0I7QUFDQTtBQUNBLElBQUksaUJBQWlCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksb0JBQW9CO0FBQ3hCO0FBQ0E7QUFDQSxJQUFJLGtCQUFrQjtBQUN0QjtBQUNBO0FBQ0EsSUFBSSxjQUFjO0FBQ2xCO0FBQ0E7QUFDQSxJQUFJLGNBQWM7QUFDbEI7QUFDQTtBQUNBLElBQUksZ0JBQWdCO0FBQ3BCO0FBQ0E7QUFDQSxJQUFJLGtCQUFrQjtBQUN0QjtBQUNBO0FBQ0EsSUFBSSxvQkFBb0I7QUFDeEI7QUFDQTtBQUNBLElBQUksa0JBQWtCO0FBQ3RCO0FBQ0E7QUFDQSxJQUFJLHNCQUFzQjtBQUMxQjtBQUNBO0FBQ0EsSUFBSSwwQkFBMEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksY0FBYztBQUNsQixHQUFHIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1pcy9janMvcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QtaXMuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXCJwcm9kdWN0aW9uXCIgIT09IHByb2Nlc3MuZW52Lk5PREVfRU5WICYmXG4gIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gdHlwZU9mKG9iamVjdCkge1xuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBvYmplY3QgJiYgbnVsbCAhPT0gb2JqZWN0KSB7XG4gICAgICAgIHZhciAkJHR5cGVvZiA9IG9iamVjdC4kJHR5cGVvZjtcbiAgICAgICAgc3dpdGNoICgkJHR5cGVvZikge1xuICAgICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgICAgc3dpdGNoICgoKG9iamVjdCA9IG9iamVjdC50eXBlKSwgb2JqZWN0KSkge1xuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICAgICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgc3dpdGNoICgoKG9iamVjdCA9IG9iamVjdCAmJiBvYmplY3QuJCR0eXBlb2YpLCBvYmplY3QpKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlRFWFRfVFlQRTpcbiAgICAgICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTpcbiAgICAgICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgICAgICAgICAgICBjYXNlIFJFQUNUX0NPTlNVTUVSX1RZUEU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCR0eXBlb2Y7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gJCR0eXBlb2Y7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKSxcbiAgICAgIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxcbiAgICAgIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksXG4gICAgICBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLFxuICAgICAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKTtcbiAgICBTeW1ib2wuZm9yKFwicmVhY3QucHJvdmlkZXJcIik7XG4gICAgdmFyIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIiksXG4gICAgICBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxcbiAgICAgIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksXG4gICAgICBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxcbiAgICAgIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpLFxuICAgICAgUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3Qub2Zmc2NyZWVuXCIpLFxuICAgICAgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5jbGllbnQucmVmZXJlbmNlXCIpO1xuICAgIGV4cG9ydHMuQ29udGV4dENvbnN1bWVyID0gUkVBQ1RfQ09OU1VNRVJfVFlQRTtcbiAgICBleHBvcnRzLkNvbnRleHRQcm92aWRlciA9IFJFQUNUX0NPTlRFWFRfVFlQRTtcbiAgICBleHBvcnRzLkVsZW1lbnQgPSBSRUFDVF9FTEVNRU5UX1RZUEU7XG4gICAgZXhwb3J0cy5Gb3J3YXJkUmVmID0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRTtcbiAgICBleHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbiAgICBleHBvcnRzLkxhenkgPSBSRUFDVF9MQVpZX1RZUEU7XG4gICAgZXhwb3J0cy5NZW1vID0gUkVBQ1RfTUVNT19UWVBFO1xuICAgIGV4cG9ydHMuUG9ydGFsID0gUkVBQ1RfUE9SVEFMX1RZUEU7XG4gICAgZXhwb3J0cy5Qcm9maWxlciA9IFJFQUNUX1BST0ZJTEVSX1RZUEU7XG4gICAgZXhwb3J0cy5TdHJpY3RNb2RlID0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRTtcbiAgICBleHBvcnRzLlN1c3BlbnNlID0gUkVBQ1RfU1VTUEVOU0VfVFlQRTtcbiAgICBleHBvcnRzLlN1c3BlbnNlTGlzdCA9IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTtcbiAgICBleHBvcnRzLmlzQ29udGV4dENvbnN1bWVyID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9DT05TVU1FUl9UWVBFO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc0NvbnRleHRQcm92aWRlciA9IGZ1bmN0aW9uIChvYmplY3QpIHtcbiAgICAgIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc0VsZW1lbnQgPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2Ygb2JqZWN0ICYmXG4gICAgICAgIG51bGwgIT09IG9iamVjdCAmJlxuICAgICAgICBvYmplY3QuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRVxuICAgICAgKTtcbiAgICB9O1xuICAgIGV4cG9ydHMuaXNGb3J3YXJkUmVmID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc0ZyYWdtZW50ID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc0xhenkgPSBmdW5jdGlvbiAob2JqZWN0KSB7XG4gICAgICByZXR1cm4gdHlwZU9mKG9iamVjdCkgPT09IFJFQUNUX0xBWllfVFlQRTtcbiAgICB9O1xuICAgIGV4cG9ydHMuaXNNZW1vID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9NRU1PX1RZUEU7XG4gICAgfTtcbiAgICBleHBvcnRzLmlzUG9ydGFsID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9QT1JUQUxfVFlQRTtcbiAgICB9O1xuICAgIGV4cG9ydHMuaXNQcm9maWxlciA9IGZ1bmN0aW9uIChvYmplY3QpIHtcbiAgICAgIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbiAgICB9O1xuICAgIGV4cG9ydHMuaXNTdHJpY3RNb2RlID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc1N1c3BlbnNlID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgcmV0dXJuIHR5cGVPZihvYmplY3QpID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc1N1c3BlbnNlTGlzdCA9IGZ1bmN0aW9uIChvYmplY3QpIHtcbiAgICAgIHJldHVybiB0eXBlT2Yob2JqZWN0KSA9PT0gUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc1ZhbGlkRWxlbWVudFR5cGUgPSBmdW5jdGlvbiAodHlwZSkge1xuICAgICAgcmV0dXJuIFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlIHx8XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGUgfHxcbiAgICAgICAgdHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fFxuICAgICAgICB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8XG4gICAgICAgIHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgfHxcbiAgICAgICAgdHlwZSA9PT0gUkVBQ1RfU1VTUEVOU0VfVFlQRSB8fFxuICAgICAgICB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgfHxcbiAgICAgICAgdHlwZSA9PT0gUkVBQ1RfT0ZGU0NSRUVOX1RZUEUgfHxcbiAgICAgICAgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgICAgbnVsbCAhPT0gdHlwZSAmJlxuICAgICAgICAgICh0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgfHxcbiAgICAgICAgICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX01FTU9fVFlQRSB8fFxuICAgICAgICAgICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8XG4gICAgICAgICAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DT05TVU1FUl9UWVBFIHx8XG4gICAgICAgICAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFIHx8XG4gICAgICAgICAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9DTElFTlRfUkVGRVJFTkNFIHx8XG4gICAgICAgICAgICB2b2lkIDAgIT09IHR5cGUuZ2V0TW9kdWxlSWQpKVxuICAgICAgICA/ICEwXG4gICAgICAgIDogITE7XG4gICAgfTtcbiAgICBleHBvcnRzLnR5cGVPZiA9IHR5cGVPZjtcbiAgfSkoKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/react-is/cjs/react-is.development.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/react-is/index.js": +/*!***********************************************************!*\ + !*** ./node_modules/next/dist/compiled/react-is/index.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"./node_modules/next/dist/compiled/react-is/cjs/react-is.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LWlzL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSxtSkFBeUQ7QUFDM0QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LWlzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1pcy5wcm9kdWN0aW9uLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWlzLmRldmVsb3BtZW50LmpzJyk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/react-is/index.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js ***! + \*************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval(__webpack_require__.ts("var __dirname = \"/\";\n(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;Object.defineProperty(r,\"__esModule\",{value:true});var n=\"<unknown>\";function parse(e){var r=e.split(\"\\n\");return r.reduce((function(e,r){var n=parseChrome(r)||parseWinjs(r)||parseGecko(r)||parseNode(r)||parseJSC(r);if(n){e.push(n)}return e}),[])}var a=/^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;var l=/\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;function parseChrome(e){var r=a.exec(e);if(!r){return null}var u=r[2]&&r[2].indexOf(\"native\")===0;var t=r[2]&&r[2].indexOf(\"eval\")===0;var i=l.exec(r[2]);if(t&&i!=null){r[2]=i[1];r[3]=i[2];r[4]=i[3]}return{file:!u?r[2]:null,methodName:r[1]||n,arguments:u?[r[2]]:[],lineNumber:r[3]?+r[3]:null,column:r[4]?+r[4]:null}}var u=/^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function parseWinjs(e){var r=u.exec(e);if(!r){return null}return{file:r[2],methodName:r[1]||n,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}}var t=/^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;var i=/(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;function parseGecko(e){var r=t.exec(e);if(!r){return null}var a=r[3]&&r[3].indexOf(\" > eval\")>-1;var l=i.exec(r[3]);if(a&&l!=null){r[3]=l[1];r[4]=l[2];r[5]=null}return{file:r[3],methodName:r[1]||n,arguments:r[2]?r[2].split(\",\"):[],lineNumber:r[4]?+r[4]:null,column:r[5]?+r[5]:null}}var s=/^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;function parseJSC(e){var r=s.exec(e);if(!r){return null}return{file:r[3],methodName:r[1]||n,arguments:[],lineNumber:+r[4],column:r[5]?+r[5]:null}}var o=/^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;function parseNode(e){var r=o.exec(e);if(!r){return null}return{file:r[2],methodName:r[1]||n,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}}r.parse=parse})();module.exports=e})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3N0YWNrdHJhY2UtcGFyc2VyL3N0YWNrLXRyYWNlLXBhcnNlci5janMuanMiLCJtYXBwaW5ncyI6IjtBQUFBLE1BQU0sYUFBYSxtRUFBbUUsU0FBUyxLQUFLLFNBQVMsTUFBTSxRQUFRLHNDQUFzQyxXQUFXLEVBQUUsa0JBQWtCLGtCQUFrQixvQkFBb0IsK0JBQStCLDhFQUE4RSxNQUFNLFVBQVUsU0FBUyxNQUFNLGtKQUFrSixzQ0FBc0Msd0JBQXdCLGdCQUFnQixPQUFPLFlBQVksdUNBQXVDLHFDQUFxQyxtQkFBbUIsZUFBZSxVQUFVLFVBQVUsVUFBVSxPQUFPLDhHQUE4RyxzSEFBc0gsdUJBQXVCLGdCQUFnQixPQUFPLFlBQVksT0FBTyxtRkFBbUYsd0lBQXdJLHNEQUFzRCx1QkFBdUIsZ0JBQWdCLE9BQU8sWUFBWSx1Q0FBdUMsbUJBQW1CLGVBQWUsVUFBVSxVQUFVLFVBQVUsT0FBTyxrSEFBa0gscUVBQXFFLHFCQUFxQixnQkFBZ0IsT0FBTyxZQUFZLE9BQU8sbUZBQW1GLHNHQUFzRyxzQkFBc0IsZ0JBQWdCLE9BQU8sWUFBWSxPQUFPLG1GQUFtRixjQUFjLElBQUksaUJBQWlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9zdGFja3RyYWNlLXBhcnNlci9zdGFjay10cmFjZS1wYXJzZXIuY2pzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIigoKT0+e1widXNlIHN0cmljdFwiO2lmKHR5cGVvZiBfX25jY3dwY2tfcmVxdWlyZV9fIT09XCJ1bmRlZmluZWRcIilfX25jY3dwY2tfcmVxdWlyZV9fLmFiPV9fZGlybmFtZStcIi9cIjt2YXIgZT17fTsoKCk9Pnt2YXIgcj1lO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLFwiX19lc01vZHVsZVwiLHt2YWx1ZTp0cnVlfSk7dmFyIG49XCI8dW5rbm93bj5cIjtmdW5jdGlvbiBwYXJzZShlKXt2YXIgcj1lLnNwbGl0KFwiXFxuXCIpO3JldHVybiByLnJlZHVjZSgoZnVuY3Rpb24oZSxyKXt2YXIgbj1wYXJzZUNocm9tZShyKXx8cGFyc2VXaW5qcyhyKXx8cGFyc2VHZWNrbyhyKXx8cGFyc2VOb2RlKHIpfHxwYXJzZUpTQyhyKTtpZihuKXtlLnB1c2gobil9cmV0dXJuIGV9KSxbXSl9dmFyIGE9L15cXHMqYXQgKC4qPykgP1xcKCgoPzpmaWxlfGh0dHBzP3xibG9ifGNocm9tZS1leHRlbnNpb258bmF0aXZlfGV2YWx8d2VicGFja3w8YW5vbnltb3VzPnxcXC98W2Etel06XFxcXHxcXFxcXFxcXCkuKj8pKD86OihcXGQrKSk/KD86OihcXGQrKSk/XFwpP1xccyokL2k7dmFyIGw9L1xcKChcXFMqKSg/OjooXFxkKykpKD86OihcXGQrKSlcXCkvO2Z1bmN0aW9uIHBhcnNlQ2hyb21lKGUpe3ZhciByPWEuZXhlYyhlKTtpZighcil7cmV0dXJuIG51bGx9dmFyIHU9clsyXSYmclsyXS5pbmRleE9mKFwibmF0aXZlXCIpPT09MDt2YXIgdD1yWzJdJiZyWzJdLmluZGV4T2YoXCJldmFsXCIpPT09MDt2YXIgaT1sLmV4ZWMoclsyXSk7aWYodCYmaSE9bnVsbCl7clsyXT1pWzFdO3JbM109aVsyXTtyWzRdPWlbM119cmV0dXJue2ZpbGU6IXU/clsyXTpudWxsLG1ldGhvZE5hbWU6clsxXXx8bixhcmd1bWVudHM6dT9bclsyXV06W10sbGluZU51bWJlcjpyWzNdPytyWzNdOm51bGwsY29sdW1uOnJbNF0/K3JbNF06bnVsbH19dmFyIHU9L15cXHMqYXQgKD86KCg/OlxcW29iamVjdCBvYmplY3RcXF0pPy4rKSApP1xcKD8oKD86ZmlsZXxtcy1hcHB4fGh0dHBzP3x3ZWJwYWNrfGJsb2IpOi4qPyk6KFxcZCspKD86OihcXGQrKSk/XFwpP1xccyokL2k7ZnVuY3Rpb24gcGFyc2VXaW5qcyhlKXt2YXIgcj11LmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXJldHVybntmaWxlOnJbMl0sbWV0aG9kTmFtZTpyWzFdfHxuLGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOityWzNdLGNvbHVtbjpyWzRdPytyWzRdOm51bGx9fXZhciB0PS9eXFxzKiguKj8pKD86XFwoKC4qPylcXCkpPyg/Ol58QCkoKD86ZmlsZXxodHRwcz98YmxvYnxjaHJvbWV8d2VicGFja3xyZXNvdXJjZXxcXFtuYXRpdmUpLio/fFteQF0qYnVuZGxlKSg/OjooXFxkKykpPyg/OjooXFxkKykpP1xccyokL2k7dmFyIGk9LyhcXFMrKSBsaW5lIChcXGQrKSg/OiA+IGV2YWwgbGluZSBcXGQrKSogPiBldmFsL2k7ZnVuY3Rpb24gcGFyc2VHZWNrbyhlKXt2YXIgcj10LmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXZhciBhPXJbM10mJnJbM10uaW5kZXhPZihcIiA+IGV2YWxcIik+LTE7dmFyIGw9aS5leGVjKHJbM10pO2lmKGEmJmwhPW51bGwpe3JbM109bFsxXTtyWzRdPWxbMl07cls1XT1udWxsfXJldHVybntmaWxlOnJbM10sbWV0aG9kTmFtZTpyWzFdfHxuLGFyZ3VtZW50czpyWzJdP3JbMl0uc3BsaXQoXCIsXCIpOltdLGxpbmVOdW1iZXI6cls0XT8rcls0XTpudWxsLGNvbHVtbjpyWzVdPytyWzVdOm51bGx9fXZhciBzPS9eXFxzKig/OihbXkBdKikoPzpcXCgoLio/KVxcKSk/QCk/KFxcUy4qPyk6KFxcZCspKD86OihcXGQrKSk/XFxzKiQvaTtmdW5jdGlvbiBwYXJzZUpTQyhlKXt2YXIgcj1zLmV4ZWMoZSk7aWYoIXIpe3JldHVybiBudWxsfXJldHVybntmaWxlOnJbM10sbWV0aG9kTmFtZTpyWzFdfHxuLGFyZ3VtZW50czpbXSxsaW5lTnVtYmVyOityWzRdLGNvbHVtbjpyWzVdPytyWzVdOm51bGx9fXZhciBvPS9eXFxzKmF0ICg/OigoPzpcXFtvYmplY3Qgb2JqZWN0XFxdKT9bXlxcXFwvXSsoPzogXFxbYXMgXFxTK1xcXSk/KSApP1xcKD8oLio/KTooXFxkKykoPzo6KFxcZCspKT9cXCk/XFxzKiQvaTtmdW5jdGlvbiBwYXJzZU5vZGUoZSl7dmFyIHI9by5leGVjKGUpO2lmKCFyKXtyZXR1cm4gbnVsbH1yZXR1cm57ZmlsZTpyWzJdLG1ldGhvZE5hbWU6clsxXXx8bixhcmd1bWVudHM6W10sbGluZU51bWJlcjorclszXSxjb2x1bW46cls0XT8rcls0XTpudWxsfX1yLnBhcnNlPXBhcnNlfSkoKTttb2R1bGUuZXhwb3J0cz1lfSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/lib/constants.js": +/*!*************************************************!*\ + !*** ./node_modules/next/dist/lib/constants.js ***! + \*************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ACTION_SUFFIX: function() {\n return ACTION_SUFFIX;\n },\n APP_DIR_ALIAS: function() {\n return APP_DIR_ALIAS;\n },\n CACHE_ONE_YEAR: function() {\n return CACHE_ONE_YEAR;\n },\n DOT_NEXT_ALIAS: function() {\n return DOT_NEXT_ALIAS;\n },\n ESLINT_DEFAULT_DIRS: function() {\n return ESLINT_DEFAULT_DIRS;\n },\n GSP_NO_RETURNED_VALUE: function() {\n return GSP_NO_RETURNED_VALUE;\n },\n GSSP_COMPONENT_MEMBER_ERROR: function() {\n return GSSP_COMPONENT_MEMBER_ERROR;\n },\n GSSP_NO_RETURNED_VALUE: function() {\n return GSSP_NO_RETURNED_VALUE;\n },\n INFINITE_CACHE: function() {\n return INFINITE_CACHE;\n },\n INSTRUMENTATION_HOOK_FILENAME: function() {\n return INSTRUMENTATION_HOOK_FILENAME;\n },\n MATCHED_PATH_HEADER: function() {\n return MATCHED_PATH_HEADER;\n },\n MIDDLEWARE_FILENAME: function() {\n return MIDDLEWARE_FILENAME;\n },\n MIDDLEWARE_LOCATION_REGEXP: function() {\n return MIDDLEWARE_LOCATION_REGEXP;\n },\n NEXT_BODY_SUFFIX: function() {\n return NEXT_BODY_SUFFIX;\n },\n NEXT_CACHE_IMPLICIT_TAG_ID: function() {\n return NEXT_CACHE_IMPLICIT_TAG_ID;\n },\n NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() {\n return NEXT_CACHE_REVALIDATED_TAGS_HEADER;\n },\n NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() {\n return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER;\n },\n NEXT_CACHE_SOFT_TAGS_HEADER: function() {\n return NEXT_CACHE_SOFT_TAGS_HEADER;\n },\n NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_SOFT_TAG_MAX_LENGTH;\n },\n NEXT_CACHE_TAGS_HEADER: function() {\n return NEXT_CACHE_TAGS_HEADER;\n },\n NEXT_CACHE_TAG_MAX_ITEMS: function() {\n return NEXT_CACHE_TAG_MAX_ITEMS;\n },\n NEXT_CACHE_TAG_MAX_LENGTH: function() {\n return NEXT_CACHE_TAG_MAX_LENGTH;\n },\n NEXT_DATA_SUFFIX: function() {\n return NEXT_DATA_SUFFIX;\n },\n NEXT_INTERCEPTION_MARKER_PREFIX: function() {\n return NEXT_INTERCEPTION_MARKER_PREFIX;\n },\n NEXT_META_SUFFIX: function() {\n return NEXT_META_SUFFIX;\n },\n NEXT_QUERY_PARAM_PREFIX: function() {\n return NEXT_QUERY_PARAM_PREFIX;\n },\n NEXT_RESUME_HEADER: function() {\n return NEXT_RESUME_HEADER;\n },\n NON_STANDARD_NODE_ENV: function() {\n return NON_STANDARD_NODE_ENV;\n },\n PAGES_DIR_ALIAS: function() {\n return PAGES_DIR_ALIAS;\n },\n PRERENDER_REVALIDATE_HEADER: function() {\n return PRERENDER_REVALIDATE_HEADER;\n },\n PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() {\n return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER;\n },\n PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() {\n return PUBLIC_DIR_MIDDLEWARE_CONFLICT;\n },\n ROOT_DIR_ALIAS: function() {\n return ROOT_DIR_ALIAS;\n },\n RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() {\n return RSC_ACTION_CLIENT_WRAPPER_ALIAS;\n },\n RSC_ACTION_ENCRYPTION_ALIAS: function() {\n return RSC_ACTION_ENCRYPTION_ALIAS;\n },\n RSC_ACTION_PROXY_ALIAS: function() {\n return RSC_ACTION_PROXY_ALIAS;\n },\n RSC_ACTION_VALIDATE_ALIAS: function() {\n return RSC_ACTION_VALIDATE_ALIAS;\n },\n RSC_CACHE_WRAPPER_ALIAS: function() {\n return RSC_CACHE_WRAPPER_ALIAS;\n },\n RSC_MOD_REF_PROXY_ALIAS: function() {\n return RSC_MOD_REF_PROXY_ALIAS;\n },\n RSC_PREFETCH_SUFFIX: function() {\n return RSC_PREFETCH_SUFFIX;\n },\n RSC_SEGMENTS_DIR_SUFFIX: function() {\n return RSC_SEGMENTS_DIR_SUFFIX;\n },\n RSC_SEGMENT_SUFFIX: function() {\n return RSC_SEGMENT_SUFFIX;\n },\n RSC_SUFFIX: function() {\n return RSC_SUFFIX;\n },\n SERVER_PROPS_EXPORT_ERROR: function() {\n return SERVER_PROPS_EXPORT_ERROR;\n },\n SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() {\n return SERVER_PROPS_GET_INIT_PROPS_CONFLICT;\n },\n SERVER_PROPS_SSG_CONFLICT: function() {\n return SERVER_PROPS_SSG_CONFLICT;\n },\n SERVER_RUNTIME: function() {\n return SERVER_RUNTIME;\n },\n SSG_FALLBACK_EXPORT_ERROR: function() {\n return SSG_FALLBACK_EXPORT_ERROR;\n },\n SSG_GET_INITIAL_PROPS_CONFLICT: function() {\n return SSG_GET_INITIAL_PROPS_CONFLICT;\n },\n STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() {\n return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR;\n },\n UNSTABLE_REVALIDATE_RENAME_ERROR: function() {\n return UNSTABLE_REVALIDATE_RENAME_ERROR;\n },\n WEBPACK_LAYERS: function() {\n return WEBPACK_LAYERS;\n },\n WEBPACK_RESOURCE_QUERIES: function() {\n return WEBPACK_RESOURCE_QUERIES;\n }\n});\nconst NEXT_QUERY_PARAM_PREFIX = 'nxtP';\nconst NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI';\nconst MATCHED_PATH_HEADER = 'x-matched-path';\nconst PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate';\nconst PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = 'x-prerender-revalidate-if-generated';\nconst RSC_PREFETCH_SUFFIX = '.prefetch.rsc';\nconst RSC_SEGMENTS_DIR_SUFFIX = '.segments';\nconst RSC_SEGMENT_SUFFIX = '.segment.rsc';\nconst RSC_SUFFIX = '.rsc';\nconst ACTION_SUFFIX = '.action';\nconst NEXT_DATA_SUFFIX = '.json';\nconst NEXT_META_SUFFIX = '.meta';\nconst NEXT_BODY_SUFFIX = '.body';\nconst NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags';\nconst NEXT_CACHE_SOFT_TAGS_HEADER = 'x-next-cache-soft-tags';\nconst NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags';\nconst NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token';\nconst NEXT_RESUME_HEADER = 'next-resume';\nconst NEXT_CACHE_TAG_MAX_ITEMS = 128;\nconst NEXT_CACHE_TAG_MAX_LENGTH = 256;\nconst NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024;\nconst NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_';\nconst CACHE_ONE_YEAR = 31536000;\nconst INFINITE_CACHE = 0xfffffffe;\nconst MIDDLEWARE_FILENAME = 'middleware';\nconst MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`;\nconst INSTRUMENTATION_HOOK_FILENAME = 'instrumentation';\nconst PAGES_DIR_ALIAS = 'private-next-pages';\nconst DOT_NEXT_ALIAS = 'private-dot-next';\nconst ROOT_DIR_ALIAS = 'private-next-root-dir';\nconst APP_DIR_ALIAS = 'private-next-app-dir';\nconst RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy';\nconst RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate';\nconst RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference';\nconst RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper';\nconst RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption';\nconst RSC_ACTION_CLIENT_WRAPPER_ALIAS = 'private-next-rsc-action-client-wrapper';\nconst PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`;\nconst SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`;\nconst SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`;\nconst SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`;\nconst STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`;\nconst SERVER_PROPS_EXPORT_ERROR = `pages with \\`getServerSideProps\\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`;\nconst GSP_NO_RETURNED_VALUE = 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?';\nconst GSSP_NO_RETURNED_VALUE = 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?';\nconst UNSTABLE_REVALIDATE_RENAME_ERROR = 'The `unstable_revalidate` property is available for general use.\\n' + 'Please use `revalidate` instead.';\nconst GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`;\nconst NON_STANDARD_NODE_ENV = `You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`;\nconst SSG_FALLBACK_EXPORT_ERROR = `Pages with \\`fallback\\` enabled in \\`getStaticPaths\\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`;\nconst ESLINT_DEFAULT_DIRS = [\n 'app',\n 'pages',\n 'components',\n 'lib',\n 'src'\n];\nconst SERVER_RUNTIME = {\n edge: 'edge',\n experimentalEdge: 'experimental-edge',\n nodejs: 'nodejs'\n};\n/**\n * The names of the webpack layers. These layers are the primitives for the\n * webpack chunks.\n */ const WEBPACK_LAYERS_NAMES = {\n /**\n * The layer for the shared code between the client and server bundles.\n */ shared: 'shared',\n /**\n * The layer for server-only runtime and picking up `react-server` export conditions.\n * Including app router RSC pages and app router custom routes and metadata routes.\n */ reactServerComponents: 'rsc',\n /**\n * Server Side Rendering layer for app (ssr).\n */ serverSideRendering: 'ssr',\n /**\n * The browser client bundle layer for actions.\n */ actionBrowser: 'action-browser',\n /**\n * The layer for the API routes.\n */ api: 'api',\n /**\n * The layer for the middleware code.\n */ middleware: 'middleware',\n /**\n * The layer for the instrumentation hooks.\n */ instrument: 'instrument',\n /**\n * The layer for assets on the edge.\n */ edgeAsset: 'edge-asset',\n /**\n * The browser client bundle layer for App directory.\n */ appPagesBrowser: 'app-pages-browser'\n};\nconst WEBPACK_LAYERS = {\n ...WEBPACK_LAYERS_NAMES,\n GROUP: {\n builtinReact: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ],\n serverOnly: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.instrument,\n WEBPACK_LAYERS_NAMES.middleware\n ],\n neutralTarget: [\n // pages api\n WEBPACK_LAYERS_NAMES.api\n ],\n clientOnly: [\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser\n ],\n bundled: [\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.actionBrowser,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.shared,\n WEBPACK_LAYERS_NAMES.instrument\n ],\n appPages: [\n // app router pages and layouts\n WEBPACK_LAYERS_NAMES.reactServerComponents,\n WEBPACK_LAYERS_NAMES.serverSideRendering,\n WEBPACK_LAYERS_NAMES.appPagesBrowser,\n WEBPACK_LAYERS_NAMES.actionBrowser\n ]\n }\n};\nconst WEBPACK_RESOURCE_QUERIES = {\n edgeSSREntry: '__next_edge_ssr_entry__',\n metadata: '__next_metadata__',\n metadataRoute: '__next_metadata_route__',\n metadataImageMeta: '__next_metadata_image_meta__'\n};\n\n//# sourceMappingURL=constants.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9jb25zdGFudHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixNQUFNLENBc0RMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLG9CQUFvQjtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL2NvbnN0YW50cy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbjAgJiYgKG1vZHVsZS5leHBvcnRzID0ge1xuICAgIEFDVElPTl9TVUZGSVg6IG51bGwsXG4gICAgQVBQX0RJUl9BTElBUzogbnVsbCxcbiAgICBDQUNIRV9PTkVfWUVBUjogbnVsbCxcbiAgICBET1RfTkVYVF9BTElBUzogbnVsbCxcbiAgICBFU0xJTlRfREVGQVVMVF9ESVJTOiBudWxsLFxuICAgIEdTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I6IG51bGwsXG4gICAgR1NTUF9OT19SRVRVUk5FRF9WQUxVRTogbnVsbCxcbiAgICBJTkZJTklURV9DQUNIRTogbnVsbCxcbiAgICBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTogbnVsbCxcbiAgICBNQVRDSEVEX1BBVEhfSEVBREVSOiBudWxsLFxuICAgIE1JRERMRVdBUkVfRklMRU5BTUU6IG51bGwsXG4gICAgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFA6IG51bGwsXG4gICAgTkVYVF9CT0RZX1NVRkZJWDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX0lNUExJQ0lUX1RBR19JRDogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfUkVWQUxJREFURV9UQUdfVE9LRU5fSEVBREVSOiBudWxsLFxuICAgIE5FWFRfQ0FDSEVfU09GVF9UQUdTX0hFQURFUjogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1NPRlRfVEFHX01BWF9MRU5HVEg6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9UQUdTX0hFQURFUjogbnVsbCxcbiAgICBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVM6IG51bGwsXG4gICAgTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSDogbnVsbCxcbiAgICBORVhUX0RBVEFfU1VGRklYOiBudWxsLFxuICAgIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVg6IG51bGwsXG4gICAgTkVYVF9NRVRBX1NVRkZJWDogbnVsbCxcbiAgICBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWDogbnVsbCxcbiAgICBORVhUX1JFU1VNRV9IRUFERVI6IG51bGwsXG4gICAgTk9OX1NUQU5EQVJEX05PREVfRU5WOiBudWxsLFxuICAgIFBBR0VTX0RJUl9BTElBUzogbnVsbCxcbiAgICBQUkVSRU5ERVJfUkVWQUxJREFURV9IRUFERVI6IG51bGwsXG4gICAgUFJFUkVOREVSX1JFVkFMSURBVEVfT05MWV9HRU5FUkFURURfSEVBREVSOiBudWxsLFxuICAgIFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVDogbnVsbCxcbiAgICBST09UX0RJUl9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fRU5DUllQVElPTl9BTElBUzogbnVsbCxcbiAgICBSU0NfQUNUSU9OX1BST1hZX0FMSUFTOiBudWxsLFxuICAgIFJTQ19BQ1RJT05fVkFMSURBVEVfQUxJQVM6IG51bGwsXG4gICAgUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVM6IG51bGwsXG4gICAgUlNDX01PRF9SRUZfUFJPWFlfQUxJQVM6IG51bGwsXG4gICAgUlNDX1BSRUZFVENIX1NVRkZJWDogbnVsbCxcbiAgICBSU0NfU0VHTUVOVFNfRElSX1NVRkZJWDogbnVsbCxcbiAgICBSU0NfU0VHTUVOVF9TVUZGSVg6IG51bGwsXG4gICAgUlNDX1NVRkZJWDogbnVsbCxcbiAgICBTRVJWRVJfUFJPUFNfRVhQT1JUX0VSUk9SOiBudWxsLFxuICAgIFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVDogbnVsbCxcbiAgICBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUOiBudWxsLFxuICAgIFNFUlZFUl9SVU5USU1FOiBudWxsLFxuICAgIFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1I6IG51bGwsXG4gICAgU1NHX0dFVF9JTklUSUFMX1BST1BTX0NPTkZMSUNUOiBudWxsLFxuICAgIFNUQVRJQ19TVEFUVVNfUEFHRV9HRVRfSU5JVElBTF9QUk9QU19FUlJPUjogbnVsbCxcbiAgICBVTlNUQUJMRV9SRVZBTElEQVRFX1JFTkFNRV9FUlJPUjogbnVsbCxcbiAgICBXRUJQQUNLX0xBWUVSUzogbnVsbCxcbiAgICBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVM6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgQUNUSU9OX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBQ1RJT05fU1VGRklYO1xuICAgIH0sXG4gICAgQVBQX0RJUl9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBBUFBfRElSX0FMSUFTO1xuICAgIH0sXG4gICAgQ0FDSEVfT05FX1lFQVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gQ0FDSEVfT05FX1lFQVI7XG4gICAgfSxcbiAgICBET1RfTkVYVF9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBET1RfTkVYVF9BTElBUztcbiAgICB9LFxuICAgIEVTTElOVF9ERUZBVUxUX0RJUlM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gRVNMSU5UX0RFRkFVTFRfRElSUztcbiAgICB9LFxuICAgIEdTUF9OT19SRVRVUk5FRF9WQUxVRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHU1BfTk9fUkVUVVJORURfVkFMVUU7XG4gICAgfSxcbiAgICBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gR1NTUF9DT01QT05FTlRfTUVNQkVSX0VSUk9SO1xuICAgIH0sXG4gICAgR1NTUF9OT19SRVRVUk5FRF9WQUxVRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHU1NQX05PX1JFVFVSTkVEX1ZBTFVFO1xuICAgIH0sXG4gICAgSU5GSU5JVEVfQ0FDSEU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gSU5GSU5JVEVfQ0FDSEU7XG4gICAgfSxcbiAgICBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRTtcbiAgICB9LFxuICAgIE1BVENIRURfUEFUSF9IRUFERVI6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTUFUQ0hFRF9QQVRIX0hFQURFUjtcbiAgICB9LFxuICAgIE1JRERMRVdBUkVfRklMRU5BTUU6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTUlERExFV0FSRV9GSUxFTkFNRTtcbiAgICB9LFxuICAgIE1JRERMRVdBUkVfTE9DQVRJT05fUkVHRVhQOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE1JRERMRVdBUkVfTE9DQVRJT05fUkVHRVhQO1xuICAgIH0sXG4gICAgTkVYVF9CT0RZX1NVRkZJWDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0JPRFlfU1VGRklYO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9JTVBMSUNJVF9UQUdfSUQ7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1JFVkFMSURBVEVEX1RBR1NfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVI7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1JFVkFMSURBVEVfVEFHX1RPS0VOX0hFQURFUjtcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfU09GVF9UQUdTX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1NPRlRfVEFHU19IRUFERVI7XG4gICAgfSxcbiAgICBORVhUX0NBQ0hFX1NPRlRfVEFHX01BWF9MRU5HVEg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9UQUdTX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBORVhUX0NBQ0hFX1RBR1NfSEVBREVSO1xuICAgIH0sXG4gICAgTkVYVF9DQUNIRV9UQUdfTUFYX0lURU1TOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfQ0FDSEVfVEFHX01BWF9JVEVNUztcbiAgICB9LFxuICAgIE5FWFRfQ0FDSEVfVEFHX01BWF9MRU5HVEg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9DQUNIRV9UQUdfTUFYX0xFTkdUSDtcbiAgICB9LFxuICAgIE5FWFRfREFUQV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9EQVRBX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWDtcbiAgICB9LFxuICAgIE5FWFRfTUVUQV9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gTkVYVF9NRVRBX1NVRkZJWDtcbiAgICB9LFxuICAgIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUVVFUllfUEFSQU1fUFJFRklYO1xuICAgIH0sXG4gICAgTkVYVF9SRVNVTUVfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE5FWFRfUkVTVU1FX0hFQURFUjtcbiAgICB9LFxuICAgIE5PTl9TVEFOREFSRF9OT0RFX0VOVjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOT05fU1RBTkRBUkRfTk9ERV9FTlY7XG4gICAgfSxcbiAgICBQQUdFU19ESVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUEFHRVNfRElSX0FMSUFTO1xuICAgIH0sXG4gICAgUFJFUkVOREVSX1JFVkFMSURBVEVfSEVBREVSOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUjtcbiAgICB9LFxuICAgIFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBQUkVSRU5ERVJfUkVWQUxJREFURV9PTkxZX0dFTkVSQVRFRF9IRUFERVI7XG4gICAgfSxcbiAgICBQVUJMSUNfRElSX01JRERMRVdBUkVfQ09ORkxJQ1Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUFVCTElDX0RJUl9NSURETEVXQVJFX0NPTkZMSUNUO1xuICAgIH0sXG4gICAgUk9PVF9ESVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUk9PVF9ESVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19BQ1RJT05fQ0xJRU5UX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0FDVElPTl9FTkNSWVBUSU9OX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9QUk9YWV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX1BST1hZX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0FDVElPTl9WQUxJREFURV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTO1xuICAgIH0sXG4gICAgUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX0NBQ0hFX1dSQVBQRVJfQUxJQVM7XG4gICAgfSxcbiAgICBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBSU0NfTU9EX1JFRl9QUk9YWV9BTElBUztcbiAgICB9LFxuICAgIFJTQ19QUkVGRVRDSF9TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1BSRUZFVENIX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TRUdNRU5UU19ESVJfU1VGRklYO1xuICAgIH0sXG4gICAgUlNDX1NFR01FTlRfU1VGRklYOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJTQ19TRUdNRU5UX1NVRkZJWDtcbiAgICB9LFxuICAgIFJTQ19TVUZGSVg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUlNDX1NVRkZJWDtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU0VSVkVSX1BST1BTX0VYUE9SVF9FUlJPUjtcbiAgICB9LFxuICAgIFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUFJPUFNfR0VUX0lOSVRfUFJPUFNfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTRVJWRVJfUFJPUFNfU1NHX0NPTkZMSUNUOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFNFUlZFUl9QUk9QU19TU0dfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTRVJWRVJfUlVOVElNRTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTRVJWRVJfUlVOVElNRTtcbiAgICB9LFxuICAgIFNTR19GQUxMQkFDS19FWFBPUlRfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUjtcbiAgICB9LFxuICAgIFNTR19HRVRfSU5JVElBTF9QUk9QU19DT05GTElDVDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1Q7XG4gICAgfSxcbiAgICBTVEFUSUNfU1RBVFVTX1BBR0VfR0VUX0lOSVRJQUxfUFJPUFNfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gU1RBVElDX1NUQVRVU19QQUdFX0dFVF9JTklUSUFMX1BST1BTX0VSUk9SO1xuICAgIH0sXG4gICAgVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gVU5TVEFCTEVfUkVWQUxJREFURV9SRU5BTUVfRVJST1I7XG4gICAgfSxcbiAgICBXRUJQQUNLX0xBWUVSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX0xBWUVSUztcbiAgICB9LFxuICAgIFdFQlBBQ0tfUkVTT1VSQ0VfUVVFUklFUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVM7XG4gICAgfVxufSk7XG5jb25zdCBORVhUX1FVRVJZX1BBUkFNX1BSRUZJWCA9ICdueHRQJztcbmNvbnN0IE5FWFRfSU5URVJDRVBUSU9OX01BUktFUl9QUkVGSVggPSAnbnh0SSc7XG5jb25zdCBNQVRDSEVEX1BBVEhfSEVBREVSID0gJ3gtbWF0Y2hlZC1wYXRoJztcbmNvbnN0IFBSRVJFTkRFUl9SRVZBTElEQVRFX0hFQURFUiA9ICd4LXByZXJlbmRlci1yZXZhbGlkYXRlJztcbmNvbnN0IFBSRVJFTkRFUl9SRVZBTElEQVRFX09OTFlfR0VORVJBVEVEX0hFQURFUiA9ICd4LXByZXJlbmRlci1yZXZhbGlkYXRlLWlmLWdlbmVyYXRlZCc7XG5jb25zdCBSU0NfUFJFRkVUQ0hfU1VGRklYID0gJy5wcmVmZXRjaC5yc2MnO1xuY29uc3QgUlNDX1NFR01FTlRTX0RJUl9TVUZGSVggPSAnLnNlZ21lbnRzJztcbmNvbnN0IFJTQ19TRUdNRU5UX1NVRkZJWCA9ICcuc2VnbWVudC5yc2MnO1xuY29uc3QgUlNDX1NVRkZJWCA9ICcucnNjJztcbmNvbnN0IEFDVElPTl9TVUZGSVggPSAnLmFjdGlvbic7XG5jb25zdCBORVhUX0RBVEFfU1VGRklYID0gJy5qc29uJztcbmNvbnN0IE5FWFRfTUVUQV9TVUZGSVggPSAnLm1ldGEnO1xuY29uc3QgTkVYVF9CT0RZX1NVRkZJWCA9ICcuYm9keSc7XG5jb25zdCBORVhUX0NBQ0hFX1RBR1NfSEVBREVSID0gJ3gtbmV4dC1jYWNoZS10YWdzJztcbmNvbnN0IE5FWFRfQ0FDSEVfU09GVF9UQUdTX0hFQURFUiA9ICd4LW5leHQtY2FjaGUtc29mdC10YWdzJztcbmNvbnN0IE5FWFRfQ0FDSEVfUkVWQUxJREFURURfVEFHU19IRUFERVIgPSAneC1uZXh0LXJldmFsaWRhdGVkLXRhZ3MnO1xuY29uc3QgTkVYVF9DQUNIRV9SRVZBTElEQVRFX1RBR19UT0tFTl9IRUFERVIgPSAneC1uZXh0LXJldmFsaWRhdGUtdGFnLXRva2VuJztcbmNvbnN0IE5FWFRfUkVTVU1FX0hFQURFUiA9ICduZXh0LXJlc3VtZSc7XG5jb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfSVRFTVMgPSAxMjg7XG5jb25zdCBORVhUX0NBQ0hFX1RBR19NQVhfTEVOR1RIID0gMjU2O1xuY29uc3QgTkVYVF9DQUNIRV9TT0ZUX1RBR19NQVhfTEVOR1RIID0gMTAyNDtcbmNvbnN0IE5FWFRfQ0FDSEVfSU1QTElDSVRfVEFHX0lEID0gJ19OX1RfJztcbmNvbnN0IENBQ0hFX09ORV9ZRUFSID0gMzE1MzYwMDA7XG5jb25zdCBJTkZJTklURV9DQUNIRSA9IDB4ZmZmZmZmZmU7XG5jb25zdCBNSURETEVXQVJFX0ZJTEVOQU1FID0gJ21pZGRsZXdhcmUnO1xuY29uc3QgTUlERExFV0FSRV9MT0NBVElPTl9SRUdFWFAgPSBgKD86c3JjLyk/JHtNSURETEVXQVJFX0ZJTEVOQU1FfWA7XG5jb25zdCBJTlNUUlVNRU5UQVRJT05fSE9PS19GSUxFTkFNRSA9ICdpbnN0cnVtZW50YXRpb24nO1xuY29uc3QgUEFHRVNfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1wYWdlcyc7XG5jb25zdCBET1RfTkVYVF9BTElBUyA9ICdwcml2YXRlLWRvdC1uZXh0JztcbmNvbnN0IFJPT1RfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yb290LWRpcic7XG5jb25zdCBBUFBfRElSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1hcHAtZGlyJztcbmNvbnN0IFJTQ19NT0RfUkVGX1BST1hZX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtbW9kLXJlZi1wcm94eSc7XG5jb25zdCBSU0NfQUNUSU9OX1ZBTElEQVRFX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLXZhbGlkYXRlJztcbmNvbnN0IFJTQ19BQ1RJT05fUFJPWFlfQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1zZXJ2ZXItcmVmZXJlbmNlJztcbmNvbnN0IFJTQ19DQUNIRV9XUkFQUEVSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtY2FjaGUtd3JhcHBlcic7XG5jb25zdCBSU0NfQUNUSU9OX0VOQ1JZUFRJT05fQUxJQVMgPSAncHJpdmF0ZS1uZXh0LXJzYy1hY3Rpb24tZW5jcnlwdGlvbic7XG5jb25zdCBSU0NfQUNUSU9OX0NMSUVOVF9XUkFQUEVSX0FMSUFTID0gJ3ByaXZhdGUtbmV4dC1yc2MtYWN0aW9uLWNsaWVudC13cmFwcGVyJztcbmNvbnN0IFBVQkxJQ19ESVJfTUlERExFV0FSRV9DT05GTElDVCA9IGBZb3UgY2FuIG5vdCBoYXZlIGEgJ19uZXh0JyBmb2xkZXIgaW5zaWRlIG9mIHlvdXIgcHVibGljIGZvbGRlci4gVGhpcyBjb25mbGljdHMgd2l0aCB0aGUgaW50ZXJuYWwgJy9fbmV4dCcgcm91dGUuIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3B1YmxpYy1uZXh0LWZvbGRlci1jb25mbGljdGA7XG5jb25zdCBTU0dfR0VUX0lOSVRJQUxfUFJPUFNfQ09ORkxJQ1QgPSBgWW91IGNhbiBub3QgdXNlIGdldEluaXRpYWxQcm9wcyB3aXRoIGdldFN0YXRpY1Byb3BzLiBUbyB1c2UgU1NHLCBwbGVhc2UgcmVtb3ZlIHlvdXIgZ2V0SW5pdGlhbFByb3BzYDtcbmNvbnN0IFNFUlZFUl9QUk9QU19HRVRfSU5JVF9QUk9QU19DT05GTElDVCA9IGBZb3UgY2FuIG5vdCB1c2UgZ2V0SW5pdGlhbFByb3BzIHdpdGggZ2V0U2VydmVyU2lkZVByb3BzLiBQbGVhc2UgcmVtb3ZlIGdldEluaXRpYWxQcm9wcy5gO1xuY29uc3QgU0VSVkVSX1BST1BTX1NTR19DT05GTElDVCA9IGBZb3UgY2FuIG5vdCB1c2UgZ2V0U3RhdGljUHJvcHMgb3IgZ2V0U3RhdGljUGF0aHMgd2l0aCBnZXRTZXJ2ZXJTaWRlUHJvcHMuIFRvIHVzZSBTU0csIHBsZWFzZSByZW1vdmUgZ2V0U2VydmVyU2lkZVByb3BzYDtcbmNvbnN0IFNUQVRJQ19TVEFUVVNfUEFHRV9HRVRfSU5JVElBTF9QUk9QU19FUlJPUiA9IGBjYW4gbm90IGhhdmUgZ2V0SW5pdGlhbFByb3BzL2dldFNlcnZlclNpZGVQcm9wcywgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvNDA0LWdldC1pbml0aWFsLXByb3BzYDtcbmNvbnN0IFNFUlZFUl9QUk9QU19FWFBPUlRfRVJST1IgPSBgcGFnZXMgd2l0aCBcXGBnZXRTZXJ2ZXJTaWRlUHJvcHNcXGAgY2FuIG5vdCBiZSBleHBvcnRlZC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9nc3NwLWV4cG9ydGA7XG5jb25zdCBHU1BfTk9fUkVUVVJORURfVkFMVUUgPSAnWW91ciBgZ2V0U3RhdGljUHJvcHNgIGZ1bmN0aW9uIGRpZCBub3QgcmV0dXJuIGFuIG9iamVjdC4gRGlkIHlvdSBmb3JnZXQgdG8gYWRkIGEgYHJldHVybmA/JztcbmNvbnN0IEdTU1BfTk9fUkVUVVJORURfVkFMVUUgPSAnWW91ciBgZ2V0U2VydmVyU2lkZVByb3BzYCBmdW5jdGlvbiBkaWQgbm90IHJldHVybiBhbiBvYmplY3QuIERpZCB5b3UgZm9yZ2V0IHRvIGFkZCBhIGByZXR1cm5gPyc7XG5jb25zdCBVTlNUQUJMRV9SRVZBTElEQVRFX1JFTkFNRV9FUlJPUiA9ICdUaGUgYHVuc3RhYmxlX3JldmFsaWRhdGVgIHByb3BlcnR5IGlzIGF2YWlsYWJsZSBmb3IgZ2VuZXJhbCB1c2UuXFxuJyArICdQbGVhc2UgdXNlIGByZXZhbGlkYXRlYCBpbnN0ZWFkLic7XG5jb25zdCBHU1NQX0NPTVBPTkVOVF9NRU1CRVJfRVJST1IgPSBgY2FuIG5vdCBiZSBhdHRhY2hlZCB0byBhIHBhZ2UncyBjb21wb25lbnQgYW5kIG11c3QgYmUgZXhwb3J0ZWQgZnJvbSB0aGUgcGFnZS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9nc3NwLWNvbXBvbmVudC1tZW1iZXJgO1xuY29uc3QgTk9OX1NUQU5EQVJEX05PREVfRU5WID0gYFlvdSBhcmUgdXNpbmcgYSBub24tc3RhbmRhcmQgXCJOT0RFX0VOVlwiIHZhbHVlIGluIHlvdXIgZW52aXJvbm1lbnQuIFRoaXMgY3JlYXRlcyBpbmNvbnNpc3RlbmNpZXMgaW4gdGhlIHByb2plY3QgYW5kIGlzIHN0cm9uZ2x5IGFkdmlzZWQgYWdhaW5zdC4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9ub24tc3RhbmRhcmQtbm9kZS1lbnZgO1xuY29uc3QgU1NHX0ZBTExCQUNLX0VYUE9SVF9FUlJPUiA9IGBQYWdlcyB3aXRoIFxcYGZhbGxiYWNrXFxgIGVuYWJsZWQgaW4gXFxgZ2V0U3RhdGljUGF0aHNcXGAgY2FuIG5vdCBiZSBleHBvcnRlZC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zc2ctZmFsbGJhY2stdHJ1ZS1leHBvcnRgO1xuY29uc3QgRVNMSU5UX0RFRkFVTFRfRElSUyA9IFtcbiAgICAnYXBwJyxcbiAgICAncGFnZXMnLFxuICAgICdjb21wb25lbnRzJyxcbiAgICAnbGliJyxcbiAgICAnc3JjJ1xuXTtcbmNvbnN0IFNFUlZFUl9SVU5USU1FID0ge1xuICAgIGVkZ2U6ICdlZGdlJyxcbiAgICBleHBlcmltZW50YWxFZGdlOiAnZXhwZXJpbWVudGFsLWVkZ2UnLFxuICAgIG5vZGVqczogJ25vZGVqcydcbn07XG4vKipcbiAqIFRoZSBuYW1lcyBvZiB0aGUgd2VicGFjayBsYXllcnMuIFRoZXNlIGxheWVycyBhcmUgdGhlIHByaW1pdGl2ZXMgZm9yIHRoZVxuICogd2VicGFjayBjaHVua3MuXG4gKi8gY29uc3QgV0VCUEFDS19MQVlFUlNfTkFNRVMgPSB7XG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIHNoYXJlZCBjb2RlIGJldHdlZW4gdGhlIGNsaWVudCBhbmQgc2VydmVyIGJ1bmRsZXMuXG4gICAqLyBzaGFyZWQ6ICdzaGFyZWQnLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIHNlcnZlci1vbmx5IHJ1bnRpbWUgYW5kIHBpY2tpbmcgdXAgYHJlYWN0LXNlcnZlcmAgZXhwb3J0IGNvbmRpdGlvbnMuXG4gICAqIEluY2x1ZGluZyBhcHAgcm91dGVyIFJTQyBwYWdlcyBhbmQgYXBwIHJvdXRlciBjdXN0b20gcm91dGVzIGFuZCBtZXRhZGF0YSByb3V0ZXMuXG4gICAqLyByZWFjdFNlcnZlckNvbXBvbmVudHM6ICdyc2MnLFxuICAgIC8qKlxuICAgKiBTZXJ2ZXIgU2lkZSBSZW5kZXJpbmcgbGF5ZXIgZm9yIGFwcCAoc3NyKS5cbiAgICovIHNlcnZlclNpZGVSZW5kZXJpbmc6ICdzc3InLFxuICAgIC8qKlxuICAgKiBUaGUgYnJvd3NlciBjbGllbnQgYnVuZGxlIGxheWVyIGZvciBhY3Rpb25zLlxuICAgKi8gYWN0aW9uQnJvd3NlcjogJ2FjdGlvbi1icm93c2VyJyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciB0aGUgQVBJIHJvdXRlcy5cbiAgICovIGFwaTogJ2FwaScsXG4gICAgLyoqXG4gICAqIFRoZSBsYXllciBmb3IgdGhlIG1pZGRsZXdhcmUgY29kZS5cbiAgICovIG1pZGRsZXdhcmU6ICdtaWRkbGV3YXJlJyxcbiAgICAvKipcbiAgICogVGhlIGxheWVyIGZvciB0aGUgaW5zdHJ1bWVudGF0aW9uIGhvb2tzLlxuICAgKi8gaW5zdHJ1bWVudDogJ2luc3RydW1lbnQnLFxuICAgIC8qKlxuICAgKiBUaGUgbGF5ZXIgZm9yIGFzc2V0cyBvbiB0aGUgZWRnZS5cbiAgICovIGVkZ2VBc3NldDogJ2VkZ2UtYXNzZXQnLFxuICAgIC8qKlxuICAgKiBUaGUgYnJvd3NlciBjbGllbnQgYnVuZGxlIGxheWVyIGZvciBBcHAgZGlyZWN0b3J5LlxuICAgKi8gYXBwUGFnZXNCcm93c2VyOiAnYXBwLXBhZ2VzLWJyb3dzZXInXG59O1xuY29uc3QgV0VCUEFDS19MQVlFUlMgPSB7XG4gICAgLi4uV0VCUEFDS19MQVlFUlNfTkFNRVMsXG4gICAgR1JPVVA6IHtcbiAgICAgICAgYnVpbHRpblJlYWN0OiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5yZWFjdFNlcnZlckNvbXBvbmVudHMsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5hY3Rpb25Ccm93c2VyXG4gICAgICAgIF0sXG4gICAgICAgIHNlcnZlck9ubHk6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5pbnN0cnVtZW50LFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMubWlkZGxld2FyZVxuICAgICAgICBdLFxuICAgICAgICBuZXV0cmFsVGFyZ2V0OiBbXG4gICAgICAgICAgICAvLyBwYWdlcyBhcGlcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwaVxuICAgICAgICBdLFxuICAgICAgICBjbGllbnRPbmx5OiBbXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyXG4gICAgICAgIF0sXG4gICAgICAgIGJ1bmRsZWQ6IFtcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLnJlYWN0U2VydmVyQ29tcG9uZW50cyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXIsXG4gICAgICAgICAgICBXRUJQQUNLX0xBWUVSU19OQU1FUy5zZXJ2ZXJTaWRlUmVuZGVyaW5nLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuYXBwUGFnZXNCcm93c2VyLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2hhcmVkLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuaW5zdHJ1bWVudFxuICAgICAgICBdLFxuICAgICAgICBhcHBQYWdlczogW1xuICAgICAgICAgICAgLy8gYXBwIHJvdXRlciBwYWdlcyBhbmQgbGF5b3V0c1xuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMucmVhY3RTZXJ2ZXJDb21wb25lbnRzLFxuICAgICAgICAgICAgV0VCUEFDS19MQVlFUlNfTkFNRVMuc2VydmVyU2lkZVJlbmRlcmluZyxcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFwcFBhZ2VzQnJvd3NlcixcbiAgICAgICAgICAgIFdFQlBBQ0tfTEFZRVJTX05BTUVTLmFjdGlvbkJyb3dzZXJcbiAgICAgICAgXVxuICAgIH1cbn07XG5jb25zdCBXRUJQQUNLX1JFU09VUkNFX1FVRVJJRVMgPSB7XG4gICAgZWRnZVNTUkVudHJ5OiAnX19uZXh0X2VkZ2Vfc3NyX2VudHJ5X18nLFxuICAgIG1ldGFkYXRhOiAnX19uZXh0X21ldGFkYXRhX18nLFxuICAgIG1ldGFkYXRhUm91dGU6ICdfX25leHRfbWV0YWRhdGFfcm91dGVfXycsXG4gICAgbWV0YWRhdGFJbWFnZU1ldGE6ICdfX25leHRfbWV0YWRhdGFfaW1hZ2VfbWV0YV9fJ1xufTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RhbnRzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/constants.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/lib/is-api-route.js": +/*!****************************************************!*\ + !*** ./node_modules/next/dist/lib/is-api-route.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isAPIRoute\", ({\n enumerable: true,\n get: function() {\n return isAPIRoute;\n }\n}));\nfunction isAPIRoute(value) {\n return value === '/api' || Boolean(value == null ? void 0 : value.startsWith('/api/'));\n}\n\n//# sourceMappingURL=is-api-route.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1hcGktcm91dGUuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw4Q0FBNkM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1hcGktcm91dGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJpc0FQSVJvdXRlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0FQSVJvdXRlO1xuICAgIH1cbn0pO1xuZnVuY3Rpb24gaXNBUElSb3V0ZSh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gJy9hcGknIHx8IEJvb2xlYW4odmFsdWUgPT0gbnVsbCA/IHZvaWQgMCA6IHZhbHVlLnN0YXJ0c1dpdGgoJy9hcGkvJykpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1hcGktcm91dGUuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-api-route.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/lib/is-error.js": +/*!************************************************!*\ + !*** ./node_modules/next/dist/lib/is-error.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n /**\n * Checks whether the given value is a NextError.\n * This can be used to print a more detailed error message with properties like `code` & `digest`.\n */ default: function() {\n return isError;\n },\n getProperError: function() {\n return getProperError;\n }\n});\nconst _isplainobject = __webpack_require__(/*! ../shared/lib/is-plain-object */ \"./node_modules/next/dist/shared/lib/is-plain-object.js\");\nfunction isError(err) {\n return typeof err === 'object' && err !== null && 'name' in err && 'message' in err;\n}\nfunction safeStringify(obj) {\n const seen = new WeakSet();\n return JSON.stringify(obj, (_key, value)=>{\n // If value is an object and already seen, replace with \"[Circular]\"\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return '[Circular]';\n }\n seen.add(value);\n }\n return value;\n });\n}\nfunction getProperError(err) {\n if (isError(err)) {\n return err;\n }\n if (true) {\n // provide better error for case where `throw undefined`\n // is called in development\n if (typeof err === 'undefined') {\n return new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined');\n }\n if (err === null) {\n return new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined');\n }\n }\n return new Error((0, _isplainobject.isPlainObject)(err) ? safeStringify(err) : err + '');\n}\n\n//# sourceMappingURL=is-error.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9pcy1lcnJvci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FHTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCx1QkFBdUIsbUJBQU8sQ0FBQyw2RkFBK0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxJQUFzQztBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9saWIvaXMtZXJyb3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBkZWZhdWx0OiBudWxsLFxuICAgIGdldFByb3BlckVycm9yOiBudWxsXG59KTtcbmZ1bmN0aW9uIF9leHBvcnQodGFyZ2V0LCBhbGwpIHtcbiAgICBmb3IodmFyIG5hbWUgaW4gYWxsKU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG5hbWUsIHtcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgZ2V0OiBhbGxbbmFtZV1cbiAgICB9KTtcbn1cbl9leHBvcnQoZXhwb3J0cywge1xuICAgIC8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGdpdmVuIHZhbHVlIGlzIGEgTmV4dEVycm9yLlxuICogVGhpcyBjYW4gYmUgdXNlZCB0byBwcmludCBhIG1vcmUgZGV0YWlsZWQgZXJyb3IgbWVzc2FnZSB3aXRoIHByb3BlcnRpZXMgbGlrZSBgY29kZWAgJiBgZGlnZXN0YC5cbiAqLyBkZWZhdWx0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGlzRXJyb3I7XG4gICAgfSxcbiAgICBnZXRQcm9wZXJFcnJvcjogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBnZXRQcm9wZXJFcnJvcjtcbiAgICB9XG59KTtcbmNvbnN0IF9pc3BsYWlub2JqZWN0ID0gcmVxdWlyZShcIi4uL3NoYXJlZC9saWIvaXMtcGxhaW4tb2JqZWN0XCIpO1xuZnVuY3Rpb24gaXNFcnJvcihlcnIpIHtcbiAgICByZXR1cm4gdHlwZW9mIGVyciA9PT0gJ29iamVjdCcgJiYgZXJyICE9PSBudWxsICYmICduYW1lJyBpbiBlcnIgJiYgJ21lc3NhZ2UnIGluIGVycjtcbn1cbmZ1bmN0aW9uIHNhZmVTdHJpbmdpZnkob2JqKSB7XG4gICAgY29uc3Qgc2VlbiA9IG5ldyBXZWFrU2V0KCk7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaiwgKF9rZXksIHZhbHVlKT0+e1xuICAgICAgICAvLyBJZiB2YWx1ZSBpcyBhbiBvYmplY3QgYW5kIGFscmVhZHkgc2VlbiwgcmVwbGFjZSB3aXRoIFwiW0NpcmN1bGFyXVwiXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoc2Vlbi5oYXModmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdbQ2lyY3VsYXJdJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNlZW4uYWRkKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSk7XG59XG5mdW5jdGlvbiBnZXRQcm9wZXJFcnJvcihlcnIpIHtcbiAgICBpZiAoaXNFcnJvcihlcnIpKSB7XG4gICAgICAgIHJldHVybiBlcnI7XG4gICAgfVxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgICAgICAvLyBwcm92aWRlIGJldHRlciBlcnJvciBmb3IgY2FzZSB3aGVyZSBgdGhyb3cgdW5kZWZpbmVkYFxuICAgICAgICAvLyBpcyBjYWxsZWQgaW4gZGV2ZWxvcG1lbnRcbiAgICAgICAgaWYgKHR5cGVvZiBlcnIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKCdBbiB1bmRlZmluZWQgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXJyID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEVycm9yKCdBIG51bGwgZXJyb3Igd2FzIHRocm93biwgJyArICdzZWUgaGVyZSBmb3IgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy90aHJldy11bmRlZmluZWQnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3IEVycm9yKCgwLCBfaXNwbGFpbm9iamVjdC5pc1BsYWluT2JqZWN0KShlcnIpID8gc2FmZVN0cmluZ2lmeShlcnIpIDogZXJyICsgJycpO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1lcnJvci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/lib/is-error.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/server/dev/extract-modules-from-turbopack-message.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/next/dist/server/dev/extract-modules-from-turbopack-message.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"extractModulesFromTurbopackMessage\", ({\n enumerable: true,\n get: function() {\n return extractModulesFromTurbopackMessage;\n }\n}));\nfunction extractModulesFromTurbopackMessage(data) {\n const updatedModules = new Set();\n const updates = Array.isArray(data) ? data : [\n data\n ];\n for (const update of updates){\n // TODO this won't capture changes to CSS since they don't result in a \"merged\" update\n if (update.type !== 'partial' || update.instruction.type !== 'ChunkListUpdate' || update.instruction.merged === undefined) {\n continue;\n }\n for (const mergedUpdate of update.instruction.merged){\n for (const name of Object.keys(mergedUpdate.entries)){\n const res = /(.*)\\s+\\[.*/.exec(name);\n if (res === null) {\n console.error('[Turbopack HMR] Expected module to match pattern: ' + name);\n continue;\n }\n updatedModules.add(res[1]);\n }\n }\n }\n return [\n ...updatedModules\n ];\n}\n\n//# sourceMappingURL=extract-modules-from-turbopack-message.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZXYvZXh0cmFjdC1tb2R1bGVzLWZyb20tdHVyYm9wYWNrLW1lc3NhZ2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixzRUFBcUU7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Rldi9leHRyYWN0LW1vZHVsZXMtZnJvbS10dXJib3BhY2stbWVzc2FnZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcImV4dHJhY3RNb2R1bGVzRnJvbVR1cmJvcGFja01lc3NhZ2VcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGV4dHJhY3RNb2R1bGVzRnJvbVR1cmJvcGFja01lc3NhZ2U7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBleHRyYWN0TW9kdWxlc0Zyb21UdXJib3BhY2tNZXNzYWdlKGRhdGEpIHtcbiAgICBjb25zdCB1cGRhdGVkTW9kdWxlcyA9IG5ldyBTZXQoKTtcbiAgICBjb25zdCB1cGRhdGVzID0gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbXG4gICAgICAgIGRhdGFcbiAgICBdO1xuICAgIGZvciAoY29uc3QgdXBkYXRlIG9mIHVwZGF0ZXMpe1xuICAgICAgICAvLyBUT0RPIHRoaXMgd29uJ3QgY2FwdHVyZSBjaGFuZ2VzIHRvIENTUyBzaW5jZSB0aGV5IGRvbid0IHJlc3VsdCBpbiBhIFwibWVyZ2VkXCIgdXBkYXRlXG4gICAgICAgIGlmICh1cGRhdGUudHlwZSAhPT0gJ3BhcnRpYWwnIHx8IHVwZGF0ZS5pbnN0cnVjdGlvbi50eXBlICE9PSAnQ2h1bmtMaXN0VXBkYXRlJyB8fCB1cGRhdGUuaW5zdHJ1Y3Rpb24ubWVyZ2VkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbWVyZ2VkVXBkYXRlIG9mIHVwZGF0ZS5pbnN0cnVjdGlvbi5tZXJnZWQpe1xuICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIG9mIE9iamVjdC5rZXlzKG1lcmdlZFVwZGF0ZS5lbnRyaWVzKSl7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gLyguKilcXHMrXFxbLiovLmV4ZWMobmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKHJlcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbVHVyYm9wYWNrIEhNUl0gRXhwZWN0ZWQgbW9kdWxlIHRvIG1hdGNoIHBhdHRlcm46ICcgKyBuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHVwZGF0ZWRNb2R1bGVzLmFkZChyZXNbMV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXG4gICAgICAgIC4uLnVwZGF0ZWRNb2R1bGVzXG4gICAgXTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZXh0cmFjdC1tb2R1bGVzLWZyb20tdHVyYm9wYWNrLW1lc3NhZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/dev/extract-modules-from-turbopack-message.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/server/dev/hot-reloader-types.js": +/*!*****************************************************************!*\ + !*** ./node_modules/next/dist/server/dev/hot-reloader-types.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HMR_ACTIONS_SENT_TO_BROWSER\", ({\n enumerable: true,\n get: function() {\n return HMR_ACTIONS_SENT_TO_BROWSER;\n }\n}));\nvar HMR_ACTIONS_SENT_TO_BROWSER = /*#__PURE__*/ function(HMR_ACTIONS_SENT_TO_BROWSER) {\n HMR_ACTIONS_SENT_TO_BROWSER[\"ADDED_PAGE\"] = \"addedPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"REMOVED_PAGE\"] = \"removedPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"RELOAD_PAGE\"] = \"reloadPage\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_COMPONENT_CHANGES\"] = \"serverComponentChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"MIDDLEWARE_CHANGES\"] = \"middlewareChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"CLIENT_CHANGES\"] = \"clientChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_ONLY_CHANGES\"] = \"serverOnlyChanges\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SYNC\"] = \"sync\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"BUILT\"] = \"built\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"BUILDING\"] = \"building\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"DEV_PAGES_MANIFEST_UPDATE\"] = \"devPagesManifestUpdate\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"TURBOPACK_MESSAGE\"] = \"turbopack-message\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"SERVER_ERROR\"] = \"serverError\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"TURBOPACK_CONNECTED\"] = \"turbopack-connected\";\n HMR_ACTIONS_SENT_TO_BROWSER[\"APP_ISR_MANIFEST\"] = \"appIsrManifest\";\n return HMR_ACTIONS_SENT_TO_BROWSER;\n}({});\n\n//# sourceMappingURL=hot-reloader-types.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9kZXYvaG90LXJlbG9hZGVyLXR5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsK0RBQThEO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsR0FBRzs7QUFFSiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2Rldi9ob3QtcmVsb2FkZXItdHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUjtcbiAgICB9XG59KTtcbnZhciBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVIgPSAvKiNfX1BVUkVfXyovIGZ1bmN0aW9uKEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUikge1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkFEREVEX1BBR0VcIl0gPSBcImFkZGVkUGFnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlJFTU9WRURfUEFHRVwiXSA9IFwicmVtb3ZlZFBhZ2VcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJSRUxPQURfUEFHRVwiXSA9IFwicmVsb2FkUGFnZVwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlNFUlZFUl9DT01QT05FTlRfQ0hBTkdFU1wiXSA9IFwic2VydmVyQ29tcG9uZW50Q2hhbmdlc1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIk1JRERMRVdBUkVfQ0hBTkdFU1wiXSA9IFwibWlkZGxld2FyZUNoYW5nZXNcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJDTElFTlRfQ0hBTkdFU1wiXSA9IFwiY2xpZW50Q2hhbmdlc1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIlNFUlZFUl9PTkxZX0NIQU5HRVNcIl0gPSBcInNlcnZlck9ubHlDaGFuZ2VzXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiU1lOQ1wiXSA9IFwic3luY1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkJVSUxUXCJdID0gXCJidWlsdFwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkJVSUxESU5HXCJdID0gXCJidWlsZGluZ1wiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkRFVl9QQUdFU19NQU5JRkVTVF9VUERBVEVcIl0gPSBcImRldlBhZ2VzTWFuaWZlc3RVcGRhdGVcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJUVVJCT1BBQ0tfTUVTU0FHRVwiXSA9IFwidHVyYm9wYWNrLW1lc3NhZ2VcIjtcbiAgICBITVJfQUNUSU9OU19TRU5UX1RPX0JST1dTRVJbXCJTRVJWRVJfRVJST1JcIl0gPSBcInNlcnZlckVycm9yXCI7XG4gICAgSE1SX0FDVElPTlNfU0VOVF9UT19CUk9XU0VSW1wiVFVSQk9QQUNLX0NPTk5FQ1RFRFwiXSA9IFwidHVyYm9wYWNrLWNvbm5lY3RlZFwiO1xuICAgIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUltcIkFQUF9JU1JfTUFOSUZFU1RcIl0gPSBcImFwcElzck1hbmlmZXN0XCI7XG4gICAgcmV0dXJuIEhNUl9BQ1RJT05TX1NFTlRfVE9fQlJPV1NFUjtcbn0oe30pO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob3QtcmVsb2FkZXItdHlwZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/dev/hot-reloader-types.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/server/lib/interception-routes.js": +/*!******************************************************************!*\ + !*** ./node_modules/next/dist/server/lib/interception-routes.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n INTERCEPTION_ROUTE_MARKERS: function() {\n return INTERCEPTION_ROUTE_MARKERS;\n },\n extractInterceptionRouteInformation: function() {\n return extractInterceptionRouteInformation;\n },\n isInterceptionRouteAppPath: function() {\n return isInterceptionRouteAppPath;\n }\n});\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)'\n];\nfunction isInterceptionRouteAppPath(path) {\n // TODO-APP: add more serious validation\n return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined;\n}\nfunction extractInterceptionRouteInformation(path) {\n let interceptingRoute, marker, interceptedRoute;\n for (const segment of path.split('/')){\n marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n if (marker) {\n ;\n [interceptingRoute, interceptedRoute] = path.split(marker, 2);\n break;\n }\n }\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw new Error(`Invalid interception route: ${path}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`);\n }\n interceptingRoute = (0, _apppaths.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n ;\n switch(marker){\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = `/${interceptedRoute}`;\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute;\n }\n break;\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw new Error(`Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`);\n }\n interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/');\n break;\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute;\n break;\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n const splitInterceptingRoute = interceptingRoute.split('/');\n if (splitInterceptingRoute.length <= 2) {\n throw new Error(`Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`);\n }\n interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/');\n break;\n default:\n throw new Error('Invariant: unexpected marker');\n }\n return {\n interceptingRoute,\n interceptedRoute\n };\n}\n\n//# sourceMappingURL=interception-routes.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9saWIvaW50ZXJjZXB0aW9uLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGtCQUFrQixtQkFBTyxDQUFDLDhHQUF5QztBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1REFBdUQsS0FBSztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QyxpQkFBaUI7QUFDeEQsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErRCxLQUFLO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrREFBK0QsS0FBSztBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvbGliL2ludGVyY2VwdGlvbi1yb3V0ZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUzogbnVsbCxcbiAgICBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbjogbnVsbCxcbiAgICBpc0ludGVyY2VwdGlvblJvdXRlQXBwUGF0aDogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUzogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBJTlRFUkNFUFRJT05fUk9VVEVfTUFSS0VSUztcbiAgICB9LFxuICAgIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGV4dHJhY3RJbnRlcmNlcHRpb25Sb3V0ZUluZm9ybWF0aW9uO1xuICAgIH0sXG4gICAgaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGg6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGg7XG4gICAgfVxufSk7XG5jb25zdCBfYXBwcGF0aHMgPSByZXF1aXJlKFwiLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzXCIpO1xuY29uc3QgSU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMgPSBbXG4gICAgJyguLikoLi4pJyxcbiAgICAnKC4pJyxcbiAgICAnKC4uKScsXG4gICAgJyguLi4pJ1xuXTtcbmZ1bmN0aW9uIGlzSW50ZXJjZXB0aW9uUm91dGVBcHBQYXRoKHBhdGgpIHtcbiAgICAvLyBUT0RPLUFQUDogYWRkIG1vcmUgc2VyaW91cyB2YWxpZGF0aW9uXG4gICAgcmV0dXJuIHBhdGguc3BsaXQoJy8nKS5maW5kKChzZWdtZW50KT0+SU5URVJDRVBUSU9OX1JPVVRFX01BUktFUlMuZmluZCgobSk9PnNlZ21lbnQuc3RhcnRzV2l0aChtKSkpICE9PSB1bmRlZmluZWQ7XG59XG5mdW5jdGlvbiBleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbihwYXRoKSB7XG4gICAgbGV0IGludGVyY2VwdGluZ1JvdXRlLCBtYXJrZXIsIGludGVyY2VwdGVkUm91dGU7XG4gICAgZm9yIChjb25zdCBzZWdtZW50IG9mIHBhdGguc3BsaXQoJy8nKSl7XG4gICAgICAgIG1hcmtlciA9IElOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTLmZpbmQoKG0pPT5zZWdtZW50LnN0YXJ0c1dpdGgobSkpO1xuICAgICAgICBpZiAobWFya2VyKSB7XG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBbaW50ZXJjZXB0aW5nUm91dGUsIGludGVyY2VwdGVkUm91dGVdID0gcGF0aC5zcGxpdChtYXJrZXIsIDIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFpbnRlcmNlcHRpbmdSb3V0ZSB8fCAhbWFya2VyIHx8ICFpbnRlcmNlcHRlZFJvdXRlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBpbnRlcmNlcHRpb24gcm91dGU6ICR7cGF0aH0uIE11c3QgYmUgaW4gdGhlIGZvcm1hdCAvPGludGVyY2VwdGluZyByb3V0ZT4vKC4ufC4uLnwuLikoLi4pLzxpbnRlcmNlcHRlZCByb3V0ZT5gKTtcbiAgICB9XG4gICAgaW50ZXJjZXB0aW5nUm91dGUgPSAoMCwgX2FwcHBhdGhzLm5vcm1hbGl6ZUFwcFBhdGgpKGludGVyY2VwdGluZ1JvdXRlKSAvLyBub3JtYWxpemUgdGhlIHBhdGgsIGUuZy4gLyhibG9nKS9mZWVkIC0+IC9mZWVkXG4gICAgO1xuICAgIHN3aXRjaChtYXJrZXIpe1xuICAgICAgICBjYXNlICcoLiknOlxuICAgICAgICAgICAgLy8gKC4pIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBtYXRjaCB3aXRoIHNpYmxpbmcgcm91dGVzLCBzbyB3ZSBqdXN0IG5lZWQgdG8gYXBwZW5kIHRoZSBpbnRlcmNlcHRlZCByb3V0ZSB0byB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG4gICAgICAgICAgICBpZiAoaW50ZXJjZXB0aW5nUm91dGUgPT09ICcvJykge1xuICAgICAgICAgICAgICAgIGludGVyY2VwdGVkUm91dGUgPSBgLyR7aW50ZXJjZXB0ZWRSb3V0ZX1gO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpbnRlcmNlcHRlZFJvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUgKyAnLycgKyBpbnRlcmNlcHRlZFJvdXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJyguLiknOlxuICAgICAgICAgICAgLy8gKC4uKSBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgbWF0Y2ggYXQgb25lIGxldmVsIHVwLCBzbyB3ZSBuZWVkIHRvIHJlbW92ZSB0aGUgbGFzdCBzZWdtZW50IG9mIHRoZSBpbnRlcmNlcHRpbmcgcm91dGVcbiAgICAgICAgICAgIGlmIChpbnRlcmNlcHRpbmdSb3V0ZSA9PT0gJy8nKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pIG1hcmtlciBhdCB0aGUgcm9vdCBsZXZlbCwgdXNlICguKSBpbnN0ZWFkLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IGludGVyY2VwdGluZ1JvdXRlLnNwbGl0KCcvJykuc2xpY2UoMCwgLTEpLmNvbmNhdChpbnRlcmNlcHRlZFJvdXRlKS5qb2luKCcvJyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnKC4uLiknOlxuICAgICAgICAgICAgLy8gKC4uLikgd2lsbCBtYXRjaCB0aGUgcm91dGUgc2VnbWVudCBpbiB0aGUgcm9vdCBkaXJlY3RvcnksIHNvIHdlIG5lZWQgdG8gdXNlIHRoZSByb290IGRpcmVjdG9yeSB0byBwcmVwZW5kIHRoZSBpbnRlcmNlcHRlZCByb3V0ZVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9ICcvJyArIGludGVyY2VwdGVkUm91dGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnKC4uKSguLiknOlxuICAgICAgICAgICAgLy8gKC4uKSguLikgaW5kaWNhdGVzIHRoYXQgd2Ugc2hvdWxkIG1hdGNoIGF0IHR3byBsZXZlbHMgdXAsIHNvIHdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBsYXN0IHR3byBzZWdtZW50cyBvZiB0aGUgaW50ZXJjZXB0aW5nIHJvdXRlXG4gICAgICAgICAgICBjb25zdCBzcGxpdEludGVyY2VwdGluZ1JvdXRlID0gaW50ZXJjZXB0aW5nUm91dGUuc3BsaXQoJy8nKTtcbiAgICAgICAgICAgIGlmIChzcGxpdEludGVyY2VwdGluZ1JvdXRlLmxlbmd0aCA8PSAyKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVyY2VwdGlvbiByb3V0ZTogJHtwYXRofS4gQ2Fubm90IHVzZSAoLi4pKC4uKSBtYXJrZXIgYXQgdGhlIHJvb3QgbGV2ZWwgb3Igb25lIGxldmVsIHVwLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZSA9IHNwbGl0SW50ZXJjZXB0aW5nUm91dGUuc2xpY2UoMCwgLTIpLmNvbmNhdChpbnRlcmNlcHRlZFJvdXRlKS5qb2luKCcvJyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YXJpYW50OiB1bmV4cGVjdGVkIG1hcmtlcicpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBpbnRlcmNlcHRpbmdSb3V0ZSxcbiAgICAgICAgaW50ZXJjZXB0ZWRSb3V0ZVxuICAgIH07XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVyY2VwdGlvbi1yb3V0ZXMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/server/lib/interception-routes.js\n")); + +/***/ }), + +/***/ "./node_modules/react-dom/cjs/react-dom-client.development.js": +/*!********************************************************************!*\ + !*** ./node_modules/react-dom/cjs/react-dom-client.development.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/next/dist/build/polyfills/process.js\");\n/**\n * @license React\n * react-dom-client.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n\n true &&\n (function () {\n function findHook(fiber, id) {\n for (fiber = fiber.memoizedState; null !== fiber && 0 < id; )\n (fiber = fiber.next), id--;\n return fiber;\n }\n function copyWithSetImpl(obj, path, index, value) {\n if (index >= path.length) return value;\n var key = path[index],\n updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);\n updated[key] = copyWithSetImpl(obj[key], path, index + 1, value);\n return updated;\n }\n function copyWithRename(obj, oldPath, newPath) {\n if (oldPath.length !== newPath.length)\n console.warn(\"copyWithRename() expects paths of the same length\");\n else {\n for (var i = 0; i < newPath.length - 1; i++)\n if (oldPath[i] !== newPath[i]) {\n console.warn(\n \"copyWithRename() expects paths to be the same except for the deepest key\"\n );\n return;\n }\n return copyWithRenameImpl(obj, oldPath, newPath, 0);\n }\n }\n function copyWithRenameImpl(obj, oldPath, newPath, index) {\n var oldKey = oldPath[index],\n updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);\n index + 1 === oldPath.length\n ? ((updated[newPath[index]] = updated[oldKey]),\n isArrayImpl(updated)\n ? updated.splice(oldKey, 1)\n : delete updated[oldKey])\n : (updated[oldKey] = copyWithRenameImpl(\n obj[oldKey],\n oldPath,\n newPath,\n index + 1\n ));\n return updated;\n }\n function copyWithDeleteImpl(obj, path, index) {\n var key = path[index],\n updated = isArrayImpl(obj) ? obj.slice() : assign({}, obj);\n if (index + 1 === path.length)\n return (\n isArrayImpl(updated) ? updated.splice(key, 1) : delete updated[key],\n updated\n );\n updated[key] = copyWithDeleteImpl(obj[key], path, index + 1);\n return updated;\n }\n function shouldSuspendImpl() {\n return !1;\n }\n function shouldErrorImpl() {\n return null;\n }\n function warnInvalidHookAccess() {\n console.error(\n \"Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://react.dev/link/rules-of-hooks\"\n );\n }\n function warnInvalidContextAccess() {\n console.error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n }\n function noop() {}\n function warnForMissingKey() {}\n function setToSortedString(set) {\n var array = [];\n set.forEach(function (value) {\n array.push(value);\n });\n return array.sort().join(\", \");\n }\n function createFiber(tag, pendingProps, key, mode) {\n return new FiberNode(tag, pendingProps, key, mode);\n }\n function scheduleRoot(root, element) {\n root.context === emptyContextObject &&\n (updateContainerImpl(root.current, 2, element, root, null, null),\n flushSyncWork$1());\n }\n function scheduleRefresh(root, update) {\n if (null !== resolveFamily) {\n var staleFamilies = update.staleFamilies;\n update = update.updatedFamilies;\n flushPendingEffects();\n scheduleFibersWithFamiliesRecursively(\n root.current,\n update,\n staleFamilies\n );\n flushSyncWork$1();\n }\n }\n function setRefreshHandler(handler) {\n resolveFamily = handler;\n }\n function isValidContainer(node) {\n return !(\n !node ||\n (1 !== node.nodeType && 9 !== node.nodeType && 11 !== node.nodeType)\n );\n }\n function getNearestMountedFiber(fiber) {\n var node = fiber,\n nearestMounted = fiber;\n if (fiber.alternate) for (; node.return; ) node = node.return;\n else {\n fiber = node;\n do\n (node = fiber),\n 0 !== (node.flags & 4098) && (nearestMounted = node.return),\n (fiber = node.return);\n while (fiber);\n }\n return 3 === node.tag ? nearestMounted : null;\n }\n function getSuspenseInstanceFromFiber(fiber) {\n if (13 === fiber.tag) {\n var suspenseState = fiber.memoizedState;\n null === suspenseState &&\n ((fiber = fiber.alternate),\n null !== fiber && (suspenseState = fiber.memoizedState));\n if (null !== suspenseState) return suspenseState.dehydrated;\n }\n return null;\n }\n function getActivityInstanceFromFiber(fiber) {\n if (31 === fiber.tag) {\n var activityState = fiber.memoizedState;\n null === activityState &&\n ((fiber = fiber.alternate),\n null !== fiber && (activityState = fiber.memoizedState));\n if (null !== activityState) return activityState.dehydrated;\n }\n return null;\n }\n function assertIsMounted(fiber) {\n if (getNearestMountedFiber(fiber) !== fiber)\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n function findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n if (!alternate) {\n alternate = getNearestMountedFiber(fiber);\n if (null === alternate)\n throw Error(\"Unable to find node on an unmounted component.\");\n return alternate !== fiber ? null : fiber;\n }\n for (var a = fiber, b = alternate; ; ) {\n var parentA = a.return;\n if (null === parentA) break;\n var parentB = parentA.alternate;\n if (null === parentB) {\n b = parentA.return;\n if (null !== b) {\n a = b;\n continue;\n }\n break;\n }\n if (parentA.child === parentB.child) {\n for (parentB = parentA.child; parentB; ) {\n if (parentB === a) return assertIsMounted(parentA), fiber;\n if (parentB === b) return assertIsMounted(parentA), alternate;\n parentB = parentB.sibling;\n }\n throw Error(\"Unable to find node on an unmounted component.\");\n }\n if (a.return !== b.return) (a = parentA), (b = parentB);\n else {\n for (var didFindChild = !1, _child = parentA.child; _child; ) {\n if (_child === a) {\n didFindChild = !0;\n a = parentA;\n b = parentB;\n break;\n }\n if (_child === b) {\n didFindChild = !0;\n b = parentA;\n a = parentB;\n break;\n }\n _child = _child.sibling;\n }\n if (!didFindChild) {\n for (_child = parentB.child; _child; ) {\n if (_child === a) {\n didFindChild = !0;\n a = parentB;\n b = parentA;\n break;\n }\n if (_child === b) {\n didFindChild = !0;\n b = parentB;\n a = parentA;\n break;\n }\n _child = _child.sibling;\n }\n if (!didFindChild)\n throw Error(\n \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\"\n );\n }\n }\n if (a.alternate !== b)\n throw Error(\n \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n if (3 !== a.tag)\n throw Error(\"Unable to find node on an unmounted component.\");\n return a.stateNode.current === a ? fiber : alternate;\n }\n function findCurrentHostFiberImpl(node) {\n var tag = node.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag) return node;\n for (node = node.child; null !== node; ) {\n tag = findCurrentHostFiberImpl(node);\n if (null !== tag) return tag;\n node = node.sibling;\n }\n return null;\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getComponentNameFromOwner(owner) {\n return \"number\" === typeof owner.tag\n ? getComponentNameFromFiber(owner)\n : \"string\" === typeof owner.name\n ? owner.name\n : null;\n }\n function getComponentNameFromFiber(fiber) {\n var type = fiber.type;\n switch (fiber.tag) {\n case 31:\n return \"Activity\";\n case 24:\n return \"Cache\";\n case 9:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case 10:\n return type.displayName || \"Context\";\n case 18:\n return \"DehydratedFragment\";\n case 11:\n return (\n (fiber = type.render),\n (fiber = fiber.displayName || fiber.name || \"\"),\n type.displayName ||\n (\"\" !== fiber ? \"ForwardRef(\" + fiber + \")\" : \"ForwardRef\")\n );\n case 7:\n return \"Fragment\";\n case 26:\n case 27:\n case 5:\n return type;\n case 4:\n return \"Portal\";\n case 3:\n return \"Root\";\n case 6:\n return \"Text\";\n case 16:\n return getComponentNameFromType(type);\n case 8:\n return type === REACT_STRICT_MODE_TYPE ? \"StrictMode\" : \"Mode\";\n case 22:\n return \"Offscreen\";\n case 12:\n return \"Profiler\";\n case 21:\n return \"Scope\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 25:\n return \"TracingMarker\";\n case 1:\n case 0:\n case 14:\n case 15:\n if (\"function\" === typeof type)\n return type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n break;\n case 29:\n type = fiber._debugInfo;\n if (null != type)\n for (var i = type.length - 1; 0 <= i; i--)\n if (\"string\" === typeof type[i].name) return type[i].name;\n if (null !== fiber.return)\n return getComponentNameFromFiber(fiber.return);\n }\n return null;\n }\n function createCursor(defaultValue) {\n return { current: defaultValue };\n }\n function pop(cursor, fiber) {\n 0 > index$jscomp$0\n ? console.error(\"Unexpected pop.\")\n : (fiber !== fiberStack[index$jscomp$0] &&\n console.error(\"Unexpected Fiber popped.\"),\n (cursor.current = valueStack[index$jscomp$0]),\n (valueStack[index$jscomp$0] = null),\n (fiberStack[index$jscomp$0] = null),\n index$jscomp$0--);\n }\n function push(cursor, value, fiber) {\n index$jscomp$0++;\n valueStack[index$jscomp$0] = cursor.current;\n fiberStack[index$jscomp$0] = fiber;\n cursor.current = value;\n }\n function requiredContext(c) {\n null === c &&\n console.error(\n \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\"\n );\n return c;\n }\n function pushHostContainer(fiber, nextRootInstance) {\n push(rootInstanceStackCursor, nextRootInstance, fiber);\n push(contextFiberStackCursor, fiber, fiber);\n push(contextStackCursor, null, fiber);\n var nextRootContext = nextRootInstance.nodeType;\n switch (nextRootContext) {\n case 9:\n case 11:\n nextRootContext = 9 === nextRootContext ? \"#document\" : \"#fragment\";\n nextRootInstance = (nextRootInstance =\n nextRootInstance.documentElement)\n ? (nextRootInstance = nextRootInstance.namespaceURI)\n ? getOwnHostContext(nextRootInstance)\n : HostContextNamespaceNone\n : HostContextNamespaceNone;\n break;\n default:\n if (\n ((nextRootContext = nextRootInstance.tagName),\n (nextRootInstance = nextRootInstance.namespaceURI))\n )\n (nextRootInstance = getOwnHostContext(nextRootInstance)),\n (nextRootInstance = getChildHostContextProd(\n nextRootInstance,\n nextRootContext\n ));\n else\n switch (nextRootContext) {\n case \"svg\":\n nextRootInstance = HostContextNamespaceSvg;\n break;\n case \"math\":\n nextRootInstance = HostContextNamespaceMath;\n break;\n default:\n nextRootInstance = HostContextNamespaceNone;\n }\n }\n nextRootContext = nextRootContext.toLowerCase();\n nextRootContext = updatedAncestorInfoDev(null, nextRootContext);\n nextRootContext = {\n context: nextRootInstance,\n ancestorInfo: nextRootContext\n };\n pop(contextStackCursor, fiber);\n push(contextStackCursor, nextRootContext, fiber);\n }\n function popHostContainer(fiber) {\n pop(contextStackCursor, fiber);\n pop(contextFiberStackCursor, fiber);\n pop(rootInstanceStackCursor, fiber);\n }\n function getHostContext() {\n return requiredContext(contextStackCursor.current);\n }\n function pushHostContext(fiber) {\n null !== fiber.memoizedState &&\n push(hostTransitionProviderCursor, fiber, fiber);\n var context = requiredContext(contextStackCursor.current);\n var type = fiber.type;\n var nextContext = getChildHostContextProd(context.context, type);\n type = updatedAncestorInfoDev(context.ancestorInfo, type);\n nextContext = { context: nextContext, ancestorInfo: type };\n context !== nextContext &&\n (push(contextFiberStackCursor, fiber, fiber),\n push(contextStackCursor, nextContext, fiber));\n }\n function popHostContext(fiber) {\n contextFiberStackCursor.current === fiber &&\n (pop(contextStackCursor, fiber), pop(contextFiberStackCursor, fiber));\n hostTransitionProviderCursor.current === fiber &&\n (pop(hostTransitionProviderCursor, fiber),\n (HostTransitionContext._currentValue = NotPendingTransition));\n }\n function disabledLog() {}\n function disableLogs() {\n if (0 === disabledDepth) {\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd;\n var props = {\n configurable: !0,\n enumerable: !0,\n value: disabledLog,\n writable: !0\n };\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n }\n disabledDepth++;\n }\n function reenableLogs() {\n disabledDepth--;\n if (0 === disabledDepth) {\n var props = { configurable: !0, enumerable: !0, writable: !0 };\n Object.defineProperties(console, {\n log: assign({}, props, { value: prevLog }),\n info: assign({}, props, { value: prevInfo }),\n warn: assign({}, props, { value: prevWarn }),\n error: assign({}, props, { value: prevError }),\n group: assign({}, props, { value: prevGroup }),\n groupCollapsed: assign({}, props, { value: prevGroupCollapsed }),\n groupEnd: assign({}, props, { value: prevGroupEnd })\n });\n }\n 0 > disabledDepth &&\n console.error(\n \"disabledDepth fell below zero. This is a bug in React. Please file an issue.\"\n );\n }\n function formatOwnerStack(error) {\n var prevPrepareStackTrace = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n error = error.stack;\n Error.prepareStackTrace = prevPrepareStackTrace;\n error.startsWith(\"Error: react-stack-top-frame\\n\") &&\n (error = error.slice(29));\n prevPrepareStackTrace = error.indexOf(\"\\n\");\n -1 !== prevPrepareStackTrace &&\n (error = error.slice(prevPrepareStackTrace + 1));\n prevPrepareStackTrace = error.indexOf(\"react_stack_bottom_frame\");\n -1 !== prevPrepareStackTrace &&\n (prevPrepareStackTrace = error.lastIndexOf(\n \"\\n\",\n prevPrepareStackTrace\n ));\n if (-1 !== prevPrepareStackTrace)\n error = error.slice(0, prevPrepareStackTrace);\n else return \"\";\n return error;\n }\n function describeBuiltInComponentFrame(name) {\n if (void 0 === prefix)\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = (match && match[1]) || \"\";\n suffix =\n -1 < x.stack.indexOf(\"\\n at\")\n ? \" (<anonymous>)\"\n : -1 < x.stack.indexOf(\"@\")\n ? \"@unknown:0:0\"\n : \"\";\n }\n return \"\\n\" + prefix + name + suffix;\n }\n function describeNativeComponentFrame(fn, construct) {\n if (!fn || reentry) return \"\";\n var frame = componentFrameCache.get(fn);\n if (void 0 !== frame) return frame;\n reentry = !0;\n frame = Error.prepareStackTrace;\n Error.prepareStackTrace = void 0;\n var previousDispatcher = null;\n previousDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = null;\n disableLogs();\n try {\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n try {\n if (construct) {\n var Fake = function () {\n throw Error();\n };\n Object.defineProperty(Fake.prototype, \"props\", {\n set: function () {\n throw Error();\n }\n });\n if (\"object\" === typeof Reflect && Reflect.construct) {\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n var control = x;\n }\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x$0) {\n control = x$0;\n }\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x$1) {\n control = x$1;\n }\n (Fake = fn()) &&\n \"function\" === typeof Fake.catch &&\n Fake.catch(function () {});\n }\n } catch (sample) {\n if (sample && control && \"string\" === typeof sample.stack)\n return [sample.stack, control.stack];\n }\n return [null, null];\n }\n };\n RunInRootFrame.DetermineComponentFrameRoot.displayName =\n \"DetermineComponentFrameRoot\";\n var namePropDescriptor = Object.getOwnPropertyDescriptor(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\"\n );\n namePropDescriptor &&\n namePropDescriptor.configurable &&\n Object.defineProperty(\n RunInRootFrame.DetermineComponentFrameRoot,\n \"name\",\n { value: \"DetermineComponentFrameRoot\" }\n );\n var _RunInRootFrame$Deter =\n RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n if (sampleStack && controlStack) {\n var sampleLines = sampleStack.split(\"\\n\"),\n controlLines = controlStack.split(\"\\n\");\n for (\n _RunInRootFrame$Deter = namePropDescriptor = 0;\n namePropDescriptor < sampleLines.length &&\n !sampleLines[namePropDescriptor].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n namePropDescriptor++;\n for (\n ;\n _RunInRootFrame$Deter < controlLines.length &&\n !controlLines[_RunInRootFrame$Deter].includes(\n \"DetermineComponentFrameRoot\"\n );\n\n )\n _RunInRootFrame$Deter++;\n if (\n namePropDescriptor === sampleLines.length ||\n _RunInRootFrame$Deter === controlLines.length\n )\n for (\n namePropDescriptor = sampleLines.length - 1,\n _RunInRootFrame$Deter = controlLines.length - 1;\n 1 <= namePropDescriptor &&\n 0 <= _RunInRootFrame$Deter &&\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter];\n\n )\n _RunInRootFrame$Deter--;\n for (\n ;\n 1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter;\n namePropDescriptor--, _RunInRootFrame$Deter--\n )\n if (\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter]\n ) {\n if (1 !== namePropDescriptor || 1 !== _RunInRootFrame$Deter) {\n do\n if (\n (namePropDescriptor--,\n _RunInRootFrame$Deter--,\n 0 > _RunInRootFrame$Deter ||\n sampleLines[namePropDescriptor] !==\n controlLines[_RunInRootFrame$Deter])\n ) {\n var _frame =\n \"\\n\" +\n sampleLines[namePropDescriptor].replace(\n \" at new \",\n \" at \"\n );\n fn.displayName &&\n _frame.includes(\"<anonymous>\") &&\n (_frame = _frame.replace(\"<anonymous>\", fn.displayName));\n \"function\" === typeof fn &&\n componentFrameCache.set(fn, _frame);\n return _frame;\n }\n while (1 <= namePropDescriptor && 0 <= _RunInRootFrame$Deter);\n }\n break;\n }\n }\n } finally {\n (reentry = !1),\n (ReactSharedInternals.H = previousDispatcher),\n reenableLogs(),\n (Error.prepareStackTrace = frame);\n }\n sampleLines = (sampleLines = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(sampleLines)\n : \"\";\n \"function\" === typeof fn && componentFrameCache.set(fn, sampleLines);\n return sampleLines;\n }\n function describeFiber(fiber, childFiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return describeBuiltInComponentFrame(fiber.type);\n case 16:\n return describeBuiltInComponentFrame(\"Lazy\");\n case 13:\n return fiber.child !== childFiber && null !== childFiber\n ? describeBuiltInComponentFrame(\"Suspense Fallback\")\n : describeBuiltInComponentFrame(\"Suspense\");\n case 19:\n return describeBuiltInComponentFrame(\"SuspenseList\");\n case 0:\n case 15:\n return describeNativeComponentFrame(fiber.type, !1);\n case 11:\n return describeNativeComponentFrame(fiber.type.render, !1);\n case 1:\n return describeNativeComponentFrame(fiber.type, !0);\n case 31:\n return describeBuiltInComponentFrame(\"Activity\");\n default:\n return \"\";\n }\n }\n function getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = \"\",\n previous = null;\n do {\n info += describeFiber(workInProgress, previous);\n var debugInfo = workInProgress._debugInfo;\n if (debugInfo)\n for (var i = debugInfo.length - 1; 0 <= i; i--) {\n var entry = debugInfo[i];\n if (\"string\" === typeof entry.name) {\n var JSCompiler_temp_const = info;\n a: {\n var name = entry.name,\n env = entry.env,\n location = entry.debugLocation;\n if (null != location) {\n var childStack = formatOwnerStack(location),\n idx = childStack.lastIndexOf(\"\\n\"),\n lastLine =\n -1 === idx ? childStack : childStack.slice(idx + 1);\n if (-1 !== lastLine.indexOf(name)) {\n var JSCompiler_inline_result = \"\\n\" + lastLine;\n break a;\n }\n }\n JSCompiler_inline_result = describeBuiltInComponentFrame(\n name + (env ? \" [\" + env + \"]\" : \"\")\n );\n }\n info = JSCompiler_temp_const + JSCompiler_inline_result;\n }\n }\n previous = workInProgress;\n workInProgress = workInProgress.return;\n } while (workInProgress);\n return info;\n } catch (x) {\n return \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n }\n function describeFunctionComponentFrameWithoutLineNumber(fn) {\n return (fn = fn ? fn.displayName || fn.name : \"\")\n ? describeBuiltInComponentFrame(fn)\n : \"\";\n }\n function getCurrentFiberOwnerNameInDevOrNull() {\n if (null === current) return null;\n var owner = current._debugOwner;\n return null != owner ? getComponentNameFromOwner(owner) : null;\n }\n function getCurrentFiberStackInDev() {\n if (null === current) return \"\";\n var workInProgress = current;\n try {\n var info = \"\";\n 6 === workInProgress.tag && (workInProgress = workInProgress.return);\n switch (workInProgress.tag) {\n case 26:\n case 27:\n case 5:\n info += describeBuiltInComponentFrame(workInProgress.type);\n break;\n case 13:\n info += describeBuiltInComponentFrame(\"Suspense\");\n break;\n case 19:\n info += describeBuiltInComponentFrame(\"SuspenseList\");\n break;\n case 31:\n info += describeBuiltInComponentFrame(\"Activity\");\n break;\n case 30:\n case 0:\n case 15:\n case 1:\n workInProgress._debugOwner ||\n \"\" !== info ||\n (info += describeFunctionComponentFrameWithoutLineNumber(\n workInProgress.type\n ));\n break;\n case 11:\n workInProgress._debugOwner ||\n \"\" !== info ||\n (info += describeFunctionComponentFrameWithoutLineNumber(\n workInProgress.type.render\n ));\n }\n for (; workInProgress; )\n if (\"number\" === typeof workInProgress.tag) {\n var fiber = workInProgress;\n workInProgress = fiber._debugOwner;\n var debugStack = fiber._debugStack;\n if (workInProgress && debugStack) {\n var formattedStack = formatOwnerStack(debugStack);\n \"\" !== formattedStack && (info += \"\\n\" + formattedStack);\n }\n } else if (null != workInProgress.debugStack) {\n var ownerStack = workInProgress.debugStack;\n (workInProgress = workInProgress.owner) &&\n ownerStack &&\n (info += \"\\n\" + formatOwnerStack(ownerStack));\n } else break;\n var JSCompiler_inline_result = info;\n } catch (x) {\n JSCompiler_inline_result =\n \"\\nError generating stack: \" + x.message + \"\\n\" + x.stack;\n }\n return JSCompiler_inline_result;\n }\n function runWithFiberInDEV(fiber, callback, arg0, arg1, arg2, arg3, arg4) {\n var previousFiber = current;\n setCurrentFiber(fiber);\n try {\n return null !== fiber && fiber._debugTask\n ? fiber._debugTask.run(\n callback.bind(null, arg0, arg1, arg2, arg3, arg4)\n )\n : callback(arg0, arg1, arg2, arg3, arg4);\n } finally {\n setCurrentFiber(previousFiber);\n }\n throw Error(\n \"runWithFiberInDEV should never be called in production. This is a bug in React.\"\n );\n }\n function setCurrentFiber(fiber) {\n ReactSharedInternals.getCurrentStack =\n null === fiber ? null : getCurrentFiberStackInDev;\n isRendering = !1;\n current = fiber;\n }\n function typeName(value) {\n return (\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\"\n );\n }\n function willCoercionThrow(value) {\n try {\n return testStringCoercion(value), !1;\n } catch (e) {\n return !0;\n }\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkAttributeStringCoercion(value, attributeName) {\n if (willCoercionThrow(value))\n return (\n console.error(\n \"The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.\",\n attributeName,\n typeName(value)\n ),\n testStringCoercion(value)\n );\n }\n function checkCSSPropertyStringCoercion(value, propName) {\n if (willCoercionThrow(value))\n return (\n console.error(\n \"The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.\",\n propName,\n typeName(value)\n ),\n testStringCoercion(value)\n );\n }\n function checkFormFieldValueStringCoercion(value) {\n if (willCoercionThrow(value))\n return (\n console.error(\n \"Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.\",\n typeName(value)\n ),\n testStringCoercion(value)\n );\n }\n function injectInternals(internals) {\n if (\"undefined\" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) return !1;\n var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (hook.isDisabled) return !0;\n if (!hook.supportsFiber)\n return (\n console.error(\n \"The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools\"\n ),\n !0\n );\n try {\n (rendererID = hook.inject(internals)), (injectedHook = hook);\n } catch (err) {\n console.error(\"React instrumentation encountered an error: %o.\", err);\n }\n return hook.checkDCE ? !0 : !1;\n }\n function setIsStrictModeForDevtools(newIsStrictMode) {\n \"function\" === typeof log$1 &&\n unstable_setDisableYieldValue(newIsStrictMode);\n if (injectedHook && \"function\" === typeof injectedHook.setStrictMode)\n try {\n injectedHook.setStrictMode(rendererID, newIsStrictMode);\n } catch (err) {\n hasLoggedError ||\n ((hasLoggedError = !0),\n console.error(\n \"React instrumentation encountered an error: %o\",\n err\n ));\n }\n }\n function clz32Fallback(x) {\n x >>>= 0;\n return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0;\n }\n function getHighestPriorityLanes(lanes) {\n var pendingSyncLanes = lanes & 42;\n if (0 !== pendingSyncLanes) return pendingSyncLanes;\n switch (lanes & -lanes) {\n case 1:\n return 1;\n case 2:\n return 2;\n case 4:\n return 4;\n case 8:\n return 8;\n case 16:\n return 16;\n case 32:\n return 32;\n case 64:\n return 64;\n case 128:\n return 128;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n return lanes & 261888;\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return lanes & 3932160;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return lanes & 62914560;\n case 67108864:\n return 67108864;\n case 134217728:\n return 134217728;\n case 268435456:\n return 268435456;\n case 536870912:\n return 536870912;\n case 1073741824:\n return 0;\n default:\n return (\n console.error(\n \"Should have found matching lanes. This is a bug in React.\"\n ),\n lanes\n );\n }\n }\n function getNextLanes(root, wipLanes, rootHasPendingCommit) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) return 0;\n var nextLanes = 0,\n suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n root = root.warmLanes;\n var nonIdlePendingLanes = pendingLanes & 134217727;\n 0 !== nonIdlePendingLanes\n ? ((pendingLanes = nonIdlePendingLanes & ~suspendedLanes),\n 0 !== pendingLanes\n ? (nextLanes = getHighestPriorityLanes(pendingLanes))\n : ((pingedLanes &= nonIdlePendingLanes),\n 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = nonIdlePendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes =\n getHighestPriorityLanes(rootHasPendingCommit)))))\n : ((nonIdlePendingLanes = pendingLanes & ~suspendedLanes),\n 0 !== nonIdlePendingLanes\n ? (nextLanes = getHighestPriorityLanes(nonIdlePendingLanes))\n : 0 !== pingedLanes\n ? (nextLanes = getHighestPriorityLanes(pingedLanes))\n : rootHasPendingCommit ||\n ((rootHasPendingCommit = pendingLanes & ~root),\n 0 !== rootHasPendingCommit &&\n (nextLanes = getHighestPriorityLanes(rootHasPendingCommit))));\n return 0 === nextLanes\n ? 0\n : 0 !== wipLanes &&\n wipLanes !== nextLanes &&\n 0 === (wipLanes & suspendedLanes) &&\n ((suspendedLanes = nextLanes & -nextLanes),\n (rootHasPendingCommit = wipLanes & -wipLanes),\n suspendedLanes >= rootHasPendingCommit ||\n (32 === suspendedLanes && 0 !== (rootHasPendingCommit & 4194048)))\n ? wipLanes\n : nextLanes;\n }\n function checkIfRootIsPrerendering(root, renderLanes) {\n return (\n 0 ===\n (root.pendingLanes &\n ~(root.suspendedLanes & ~root.pingedLanes) &\n renderLanes)\n );\n }\n function computeExpirationTime(lane, currentTime) {\n switch (lane) {\n case 1:\n case 2:\n case 4:\n case 8:\n case 64:\n return currentTime + 250;\n case 16:\n case 32:\n case 128:\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n return currentTime + 5e3;\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n return -1;\n case 67108864:\n case 134217728:\n case 268435456:\n case 536870912:\n case 1073741824:\n return -1;\n default:\n return (\n console.error(\n \"Should have found matching lanes. This is a bug in React.\"\n ),\n -1\n );\n }\n }\n function claimNextRetryLane() {\n var lane = nextRetryLane;\n nextRetryLane <<= 1;\n 0 === (nextRetryLane & 62914560) && (nextRetryLane = 4194304);\n return lane;\n }\n function createLaneMap(initial) {\n for (var laneMap = [], i = 0; 31 > i; i++) laneMap.push(initial);\n return laneMap;\n }\n function markRootUpdated$1(root, updateLane) {\n root.pendingLanes |= updateLane;\n 268435456 !== updateLane &&\n ((root.suspendedLanes = 0),\n (root.pingedLanes = 0),\n (root.warmLanes = 0));\n }\n function markRootFinished(\n root,\n finishedLanes,\n remainingLanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n ) {\n var previouslyPendingLanes = root.pendingLanes;\n root.pendingLanes = remainingLanes;\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.warmLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n root.errorRecoveryDisabledLanes &= remainingLanes;\n root.shellSuspendCounter = 0;\n var entanglements = root.entanglements,\n expirationTimes = root.expirationTimes,\n hiddenUpdates = root.hiddenUpdates;\n for (\n remainingLanes = previouslyPendingLanes & ~remainingLanes;\n 0 < remainingLanes;\n\n ) {\n var index = 31 - clz32(remainingLanes),\n lane = 1 << index;\n entanglements[index] = 0;\n expirationTimes[index] = -1;\n var hiddenUpdatesForLane = hiddenUpdates[index];\n if (null !== hiddenUpdatesForLane)\n for (\n hiddenUpdates[index] = null, index = 0;\n index < hiddenUpdatesForLane.length;\n index++\n ) {\n var update = hiddenUpdatesForLane[index];\n null !== update && (update.lane &= -536870913);\n }\n remainingLanes &= ~lane;\n }\n 0 !== spawnedLane && markSpawnedDeferredLane(root, spawnedLane, 0);\n 0 !== suspendedRetryLanes &&\n 0 === updatedLanes &&\n 0 !== root.tag &&\n (root.suspendedLanes |=\n suspendedRetryLanes & ~(previouslyPendingLanes & ~finishedLanes));\n }\n function markSpawnedDeferredLane(root, spawnedLane, entangledLanes) {\n root.pendingLanes |= spawnedLane;\n root.suspendedLanes &= ~spawnedLane;\n var spawnedLaneIndex = 31 - clz32(spawnedLane);\n root.entangledLanes |= spawnedLane;\n root.entanglements[spawnedLaneIndex] =\n root.entanglements[spawnedLaneIndex] |\n 1073741824 |\n (entangledLanes & 261930);\n }\n function markRootEntangled(root, entangledLanes) {\n var rootEntangledLanes = (root.entangledLanes |= entangledLanes);\n for (root = root.entanglements; rootEntangledLanes; ) {\n var index = 31 - clz32(rootEntangledLanes),\n lane = 1 << index;\n (lane & entangledLanes) | (root[index] & entangledLanes) &&\n (root[index] |= entangledLanes);\n rootEntangledLanes &= ~lane;\n }\n }\n function getBumpedLaneForHydration(root, renderLanes) {\n var renderLane = renderLanes & -renderLanes;\n renderLane =\n 0 !== (renderLane & 42)\n ? 1\n : getBumpedLaneForHydrationByLane(renderLane);\n return 0 !== (renderLane & (root.suspendedLanes | renderLanes))\n ? 0\n : renderLane;\n }\n function getBumpedLaneForHydrationByLane(lane) {\n switch (lane) {\n case 2:\n lane = 1;\n break;\n case 8:\n lane = 4;\n break;\n case 32:\n lane = 16;\n break;\n case 256:\n case 512:\n case 1024:\n case 2048:\n case 4096:\n case 8192:\n case 16384:\n case 32768:\n case 65536:\n case 131072:\n case 262144:\n case 524288:\n case 1048576:\n case 2097152:\n case 4194304:\n case 8388608:\n case 16777216:\n case 33554432:\n lane = 128;\n break;\n case 268435456:\n lane = 134217728;\n break;\n default:\n lane = 0;\n }\n return lane;\n }\n function addFiberToLanesMap(root, fiber, lanes) {\n if (isDevToolsPresent)\n for (root = root.pendingUpdatersLaneMap; 0 < lanes; ) {\n var index = 31 - clz32(lanes),\n lane = 1 << index;\n root[index].add(fiber);\n lanes &= ~lane;\n }\n }\n function movePendingFibersToMemoized(root, lanes) {\n if (isDevToolsPresent)\n for (\n var pendingUpdatersLaneMap = root.pendingUpdatersLaneMap,\n memoizedUpdaters = root.memoizedUpdaters;\n 0 < lanes;\n\n ) {\n var index = 31 - clz32(lanes);\n root = 1 << index;\n index = pendingUpdatersLaneMap[index];\n 0 < index.size &&\n (index.forEach(function (fiber) {\n var alternate = fiber.alternate;\n (null !== alternate && memoizedUpdaters.has(alternate)) ||\n memoizedUpdaters.add(fiber);\n }),\n index.clear());\n lanes &= ~root;\n }\n }\n function lanesToEventPriority(lanes) {\n lanes &= -lanes;\n return 0 !== DiscreteEventPriority && DiscreteEventPriority < lanes\n ? 0 !== ContinuousEventPriority && ContinuousEventPriority < lanes\n ? 0 !== (lanes & 134217727)\n ? DefaultEventPriority\n : IdleEventPriority\n : ContinuousEventPriority\n : DiscreteEventPriority;\n }\n function resolveUpdatePriority() {\n var updatePriority = ReactDOMSharedInternals.p;\n if (0 !== updatePriority) return updatePriority;\n updatePriority = window.event;\n return void 0 === updatePriority\n ? DefaultEventPriority\n : getEventPriority(updatePriority.type);\n }\n function runWithPriority(priority, fn) {\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n return (ReactDOMSharedInternals.p = priority), fn();\n } finally {\n ReactDOMSharedInternals.p = previousPriority;\n }\n }\n function detachDeletedInstance(node) {\n delete node[internalInstanceKey];\n delete node[internalPropsKey];\n delete node[internalEventHandlersKey];\n delete node[internalEventHandlerListenersKey];\n delete node[internalEventHandlesSetKey];\n }\n function getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n if (targetInst) return targetInst;\n for (var parentNode = targetNode.parentNode; parentNode; ) {\n if (\n (targetInst =\n parentNode[internalContainerInstanceKey] ||\n parentNode[internalInstanceKey])\n ) {\n parentNode = targetInst.alternate;\n if (\n null !== targetInst.child ||\n (null !== parentNode && null !== parentNode.child)\n )\n for (\n targetNode = getParentHydrationBoundary(targetNode);\n null !== targetNode;\n\n ) {\n if ((parentNode = targetNode[internalInstanceKey]))\n return parentNode;\n targetNode = getParentHydrationBoundary(targetNode);\n }\n return targetInst;\n }\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n return null;\n }\n function getInstanceFromNode(node) {\n if (\n (node = node[internalInstanceKey] || node[internalContainerInstanceKey])\n ) {\n var tag = node.tag;\n if (\n 5 === tag ||\n 6 === tag ||\n 13 === tag ||\n 31 === tag ||\n 26 === tag ||\n 27 === tag ||\n 3 === tag\n )\n return node;\n }\n return null;\n }\n function getNodeFromInstance(inst) {\n var tag = inst.tag;\n if (5 === tag || 26 === tag || 27 === tag || 6 === tag)\n return inst.stateNode;\n throw Error(\"getNodeFromInstance: Invalid argument.\");\n }\n function getResourcesFromRoot(root) {\n var resources = root[internalRootNodeResourcesKey];\n resources ||\n (resources = root[internalRootNodeResourcesKey] =\n { hoistableStyles: new Map(), hoistableScripts: new Map() });\n return resources;\n }\n function markNodeAsHoistable(node) {\n node[internalHoistableMarker] = !0;\n }\n function registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + \"Capture\", dependencies);\n }\n function registerDirectEvent(registrationName, dependencies) {\n registrationNameDependencies[registrationName] &&\n console.error(\n \"EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.\",\n registrationName\n );\n registrationNameDependencies[registrationName] = dependencies;\n var lowerCasedName = registrationName.toLowerCase();\n possibleRegistrationNames[lowerCasedName] = registrationName;\n \"onDoubleClick\" === registrationName &&\n (possibleRegistrationNames.ondblclick = registrationName);\n for (\n registrationName = 0;\n registrationName < dependencies.length;\n registrationName++\n )\n allNativeEvents.add(dependencies[registrationName]);\n }\n function checkControlledValueProps(tagName, props) {\n hasReadOnlyValue[props.type] ||\n props.onChange ||\n props.onInput ||\n props.readOnly ||\n props.disabled ||\n null == props.value ||\n (\"select\" === tagName\n ? console.error(\n \"You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`.\"\n )\n : console.error(\n \"You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.\"\n ));\n props.onChange ||\n props.readOnly ||\n props.disabled ||\n null == props.checked ||\n console.error(\n \"You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.\"\n );\n }\n function isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName))\n return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n console.error(\"Invalid attribute name: `%s`\", attributeName);\n return !1;\n }\n function getValueForAttributeOnCustomComponent(node, name, expected) {\n if (isAttributeNameSafe(name)) {\n if (!node.hasAttribute(name)) {\n switch (typeof expected) {\n case \"symbol\":\n case \"object\":\n return expected;\n case \"function\":\n return expected;\n case \"boolean\":\n if (!1 === expected) return expected;\n }\n return void 0 === expected ? void 0 : null;\n }\n node = node.getAttribute(name);\n if (\"\" === node && !0 === expected) return !0;\n checkAttributeStringCoercion(expected, name);\n return node === \"\" + expected ? expected : node;\n }\n }\n function setValueForAttribute(node, name, value) {\n if (isAttributeNameSafe(name))\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n node.removeAttribute(name);\n return;\n case \"boolean\":\n var prefix = name.toLowerCase().slice(0, 5);\n if (\"data-\" !== prefix && \"aria-\" !== prefix) {\n node.removeAttribute(name);\n return;\n }\n }\n checkAttributeStringCoercion(value, name);\n node.setAttribute(name, \"\" + value);\n }\n }\n function setValueForKnownAttribute(node, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n checkAttributeStringCoercion(value, name);\n node.setAttribute(name, \"\" + value);\n }\n }\n function setValueForNamespacedAttribute(node, namespace, name, value) {\n if (null === value) node.removeAttribute(name);\n else {\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n node.removeAttribute(name);\n return;\n }\n checkAttributeStringCoercion(value, name);\n node.setAttributeNS(namespace, name, \"\" + value);\n }\n }\n function getToStringValue(value) {\n switch (typeof value) {\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"undefined\":\n return value;\n case \"object\":\n return checkFormFieldValueStringCoercion(value), value;\n default:\n return \"\";\n }\n }\n function isCheckable(elem) {\n var type = elem.type;\n return (\n (elem = elem.nodeName) &&\n \"input\" === elem.toLowerCase() &&\n (\"checkbox\" === type || \"radio\" === type)\n );\n }\n function trackValueOnNode(node, valueField, currentValue) {\n var descriptor = Object.getOwnPropertyDescriptor(\n node.constructor.prototype,\n valueField\n );\n if (\n !node.hasOwnProperty(valueField) &&\n \"undefined\" !== typeof descriptor &&\n \"function\" === typeof descriptor.get &&\n \"function\" === typeof descriptor.set\n ) {\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: !0,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n checkFormFieldValueStringCoercion(value);\n currentValue = \"\" + value;\n set.call(this, value);\n }\n });\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n return {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n checkFormFieldValueStringCoercion(value);\n currentValue = \"\" + value;\n },\n stopTracking: function () {\n node._valueTracker = null;\n delete node[valueField];\n }\n };\n }\n }\n function track(node) {\n if (!node._valueTracker) {\n var valueField = isCheckable(node) ? \"checked\" : \"value\";\n node._valueTracker = trackValueOnNode(\n node,\n valueField,\n \"\" + node[valueField]\n );\n }\n }\n function updateValueIfChanged(node) {\n if (!node) return !1;\n var tracker = node._valueTracker;\n if (!tracker) return !0;\n var lastValue = tracker.getValue();\n var value = \"\";\n node &&\n (value = isCheckable(node)\n ? node.checked\n ? \"true\"\n : \"false\"\n : node.value);\n node = value;\n return node !== lastValue ? (tracker.setValue(node), !0) : !1;\n }\n function getActiveElement(doc) {\n doc = doc || (\"undefined\" !== typeof document ? document : void 0);\n if (\"undefined\" === typeof doc) return null;\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n }\n function escapeSelectorAttributeValueInsideDoubleQuotes(value) {\n return value.replace(\n escapeSelectorAttributeValueInsideDoubleQuotesRegex,\n function (ch) {\n return \"\\\\\" + ch.charCodeAt(0).toString(16) + \" \";\n }\n );\n }\n function validateInputProps(element, props) {\n void 0 === props.checked ||\n void 0 === props.defaultChecked ||\n didWarnCheckedDefaultChecked ||\n (console.error(\n \"%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components\",\n getCurrentFiberOwnerNameInDevOrNull() || \"A component\",\n props.type\n ),\n (didWarnCheckedDefaultChecked = !0));\n void 0 === props.value ||\n void 0 === props.defaultValue ||\n didWarnValueDefaultValue$1 ||\n (console.error(\n \"%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://react.dev/link/controlled-components\",\n getCurrentFiberOwnerNameInDevOrNull() || \"A component\",\n props.type\n ),\n (didWarnValueDefaultValue$1 = !0));\n }\n function updateInput(\n element,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n ) {\n element.name = \"\";\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type\n ? (checkAttributeStringCoercion(type, \"type\"), (element.type = type))\n : element.removeAttribute(\"type\");\n if (null != value)\n if (\"number\" === type) {\n if ((0 === value && \"\" === element.value) || element.value != value)\n element.value = \"\" + getToStringValue(value);\n } else\n element.value !== \"\" + getToStringValue(value) &&\n (element.value = \"\" + getToStringValue(value));\n else\n (\"submit\" !== type && \"reset\" !== type) ||\n element.removeAttribute(\"value\");\n null != value\n ? setDefaultValue(element, type, getToStringValue(value))\n : null != defaultValue\n ? setDefaultValue(element, type, getToStringValue(defaultValue))\n : null != lastDefaultValue && element.removeAttribute(\"value\");\n null == checked &&\n null != defaultChecked &&\n (element.defaultChecked = !!defaultChecked);\n null != checked &&\n (element.checked =\n checked &&\n \"function\" !== typeof checked &&\n \"symbol\" !== typeof checked);\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name\n ? (checkAttributeStringCoercion(name, \"name\"),\n (element.name = \"\" + getToStringValue(name)))\n : element.removeAttribute(\"name\");\n }\n function initInput(\n element,\n value,\n defaultValue,\n checked,\n defaultChecked,\n type,\n name,\n isHydrating\n ) {\n null != type &&\n \"function\" !== typeof type &&\n \"symbol\" !== typeof type &&\n \"boolean\" !== typeof type &&\n (checkAttributeStringCoercion(type, \"type\"), (element.type = type));\n if (null != value || null != defaultValue) {\n if (\n !(\n (\"submit\" !== type && \"reset\" !== type) ||\n (void 0 !== value && null !== value)\n )\n ) {\n track(element);\n return;\n }\n defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n value = null != value ? \"\" + getToStringValue(value) : defaultValue;\n isHydrating || value === element.value || (element.value = value);\n element.defaultValue = value;\n }\n checked = null != checked ? checked : defaultChecked;\n checked =\n \"function\" !== typeof checked &&\n \"symbol\" !== typeof checked &&\n !!checked;\n element.checked = isHydrating ? element.checked : !!checked;\n element.defaultChecked = !!checked;\n null != name &&\n \"function\" !== typeof name &&\n \"symbol\" !== typeof name &&\n \"boolean\" !== typeof name &&\n (checkAttributeStringCoercion(name, \"name\"), (element.name = name));\n track(element);\n }\n function setDefaultValue(node, type, value) {\n (\"number\" === type && getActiveElement(node.ownerDocument) === node) ||\n node.defaultValue === \"\" + value ||\n (node.defaultValue = \"\" + value);\n }\n function validateOptionProps(element, props) {\n null == props.value &&\n (\"object\" === typeof props.children && null !== props.children\n ? React.Children.forEach(props.children, function (child) {\n null == child ||\n \"string\" === typeof child ||\n \"number\" === typeof child ||\n \"bigint\" === typeof child ||\n didWarnInvalidChild ||\n ((didWarnInvalidChild = !0),\n console.error(\n \"Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>.\"\n ));\n })\n : null == props.dangerouslySetInnerHTML ||\n didWarnInvalidInnerHTML ||\n ((didWarnInvalidInnerHTML = !0),\n console.error(\n \"Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.\"\n )));\n null == props.selected ||\n didWarnSelectedSetOnOption ||\n (console.error(\n \"Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>.\"\n ),\n (didWarnSelectedSetOnOption = !0));\n }\n function getDeclarationErrorAddendum() {\n var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n return ownerName\n ? \"\\n\\nCheck the render method of `\" + ownerName + \"`.\"\n : \"\";\n }\n function updateOptions(node, multiple, propValue, setDefaultSelected) {\n node = node.options;\n if (multiple) {\n multiple = {};\n for (var i = 0; i < propValue.length; i++)\n multiple[\"$\" + propValue[i]] = !0;\n for (propValue = 0; propValue < node.length; propValue++)\n (i = multiple.hasOwnProperty(\"$\" + node[propValue].value)),\n node[propValue].selected !== i && (node[propValue].selected = i),\n i && setDefaultSelected && (node[propValue].defaultSelected = !0);\n } else {\n propValue = \"\" + getToStringValue(propValue);\n multiple = null;\n for (i = 0; i < node.length; i++) {\n if (node[i].value === propValue) {\n node[i].selected = !0;\n setDefaultSelected && (node[i].defaultSelected = !0);\n return;\n }\n null !== multiple || node[i].disabled || (multiple = node[i]);\n }\n null !== multiple && (multiple.selected = !0);\n }\n }\n function validateSelectProps(element, props) {\n for (element = 0; element < valuePropNames.length; element++) {\n var propName = valuePropNames[element];\n if (null != props[propName]) {\n var propNameIsArray = isArrayImpl(props[propName]);\n props.multiple && !propNameIsArray\n ? console.error(\n \"The `%s` prop supplied to <select> must be an array if `multiple` is true.%s\",\n propName,\n getDeclarationErrorAddendum()\n )\n : !props.multiple &&\n propNameIsArray &&\n console.error(\n \"The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s\",\n propName,\n getDeclarationErrorAddendum()\n );\n }\n }\n void 0 === props.value ||\n void 0 === props.defaultValue ||\n didWarnValueDefaultValue ||\n (console.error(\n \"Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components\"\n ),\n (didWarnValueDefaultValue = !0));\n }\n function validateTextareaProps(element, props) {\n void 0 === props.value ||\n void 0 === props.defaultValue ||\n didWarnValDefaultVal ||\n (console.error(\n \"%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components\",\n getCurrentFiberOwnerNameInDevOrNull() || \"A component\"\n ),\n (didWarnValDefaultVal = !0));\n null != props.children &&\n null == props.value &&\n console.error(\n \"Use the `defaultValue` or `value` props instead of setting children on <textarea>.\"\n );\n }\n function updateTextarea(element, value, defaultValue) {\n if (\n null != value &&\n ((value = \"\" + getToStringValue(value)),\n value !== element.value && (element.value = value),\n null == defaultValue)\n ) {\n element.defaultValue !== value && (element.defaultValue = value);\n return;\n }\n element.defaultValue =\n null != defaultValue ? \"\" + getToStringValue(defaultValue) : \"\";\n }\n function initTextarea(element, value, defaultValue, children) {\n if (null == value) {\n if (null != children) {\n if (null != defaultValue)\n throw Error(\n \"If you supply `defaultValue` on a <textarea>, do not pass children.\"\n );\n if (isArrayImpl(children)) {\n if (1 < children.length)\n throw Error(\"<textarea> can only have at most one child.\");\n children = children[0];\n }\n defaultValue = children;\n }\n null == defaultValue && (defaultValue = \"\");\n value = defaultValue;\n }\n defaultValue = getToStringValue(value);\n element.defaultValue = defaultValue;\n children = element.textContent;\n children === defaultValue &&\n \"\" !== children &&\n null !== children &&\n (element.value = children);\n track(element);\n }\n function findNotableNode(node, indent) {\n return void 0 === node.serverProps &&\n 0 === node.serverTail.length &&\n 1 === node.children.length &&\n 3 < node.distanceFromLeaf &&\n node.distanceFromLeaf > 15 - indent\n ? findNotableNode(node.children[0], indent)\n : node;\n }\n function indentation(indent) {\n return \" \" + \" \".repeat(indent);\n }\n function added(indent) {\n return \"+ \" + \" \".repeat(indent);\n }\n function removed(indent) {\n return \"- \" + \" \".repeat(indent);\n }\n function describeFiberType(fiber) {\n switch (fiber.tag) {\n case 26:\n case 27:\n case 5:\n return fiber.type;\n case 16:\n return \"Lazy\";\n case 31:\n return \"Activity\";\n case 13:\n return \"Suspense\";\n case 19:\n return \"SuspenseList\";\n case 0:\n case 15:\n return (fiber = fiber.type), fiber.displayName || fiber.name || null;\n case 11:\n return (\n (fiber = fiber.type.render), fiber.displayName || fiber.name || null\n );\n case 1:\n return (fiber = fiber.type), fiber.displayName || fiber.name || null;\n default:\n return null;\n }\n }\n function describeTextNode(content, maxLength) {\n return needsEscaping.test(content)\n ? ((content = JSON.stringify(content)),\n content.length > maxLength - 2\n ? 8 > maxLength\n ? '{\"...\"}'\n : \"{\" + content.slice(0, maxLength - 7) + '...\"}'\n : \"{\" + content + \"}\")\n : content.length > maxLength\n ? 5 > maxLength\n ? '{\"...\"}'\n : content.slice(0, maxLength - 3) + \"...\"\n : content;\n }\n function describeTextDiff(clientText, serverProps, indent) {\n var maxLength = 120 - 2 * indent;\n if (null === serverProps)\n return added(indent) + describeTextNode(clientText, maxLength) + \"\\n\";\n if (\"string\" === typeof serverProps) {\n for (\n var firstDiff = 0;\n firstDiff < serverProps.length &&\n firstDiff < clientText.length &&\n serverProps.charCodeAt(firstDiff) ===\n clientText.charCodeAt(firstDiff);\n firstDiff++\n );\n firstDiff > maxLength - 8 &&\n 10 < firstDiff &&\n ((clientText = \"...\" + clientText.slice(firstDiff - 8)),\n (serverProps = \"...\" + serverProps.slice(firstDiff - 8)));\n return (\n added(indent) +\n describeTextNode(clientText, maxLength) +\n \"\\n\" +\n removed(indent) +\n describeTextNode(serverProps, maxLength) +\n \"\\n\"\n );\n }\n return (\n indentation(indent) + describeTextNode(clientText, maxLength) + \"\\n\"\n );\n }\n function objectName(object) {\n return Object.prototype.toString\n .call(object)\n .replace(/^\\[object (.*)\\]$/, function (m, p0) {\n return p0;\n });\n }\n function describeValue(value, maxLength) {\n switch (typeof value) {\n case \"string\":\n return (\n (value = JSON.stringify(value)),\n value.length > maxLength\n ? 5 > maxLength\n ? '\"...\"'\n : value.slice(0, maxLength - 4) + '...\"'\n : value\n );\n case \"object\":\n if (null === value) return \"null\";\n if (isArrayImpl(value)) return \"[...]\";\n if (value.$$typeof === REACT_ELEMENT_TYPE)\n return (maxLength = getComponentNameFromType(value.type))\n ? \"<\" + maxLength + \">\"\n : \"<...>\";\n var name = objectName(value);\n if (\"Object\" === name) {\n name = \"\";\n maxLength -= 2;\n for (var propName in value)\n if (value.hasOwnProperty(propName)) {\n var jsonPropName = JSON.stringify(propName);\n jsonPropName !== '\"' + propName + '\"' &&\n (propName = jsonPropName);\n maxLength -= propName.length - 2;\n jsonPropName = describeValue(\n value[propName],\n 15 > maxLength ? maxLength : 15\n );\n maxLength -= jsonPropName.length;\n if (0 > maxLength) {\n name += \"\" === name ? \"...\" : \", ...\";\n break;\n }\n name +=\n (\"\" === name ? \"\" : \",\") + propName + \":\" + jsonPropName;\n }\n return \"{\" + name + \"}\";\n }\n return name;\n case \"function\":\n return (maxLength = value.displayName || value.name)\n ? \"function \" + maxLength\n : \"function\";\n default:\n return String(value);\n }\n }\n function describePropValue(value, maxLength) {\n return \"string\" !== typeof value || needsEscaping.test(value)\n ? \"{\" + describeValue(value, maxLength - 2) + \"}\"\n : value.length > maxLength - 2\n ? 5 > maxLength\n ? '\"...\"'\n : '\"' + value.slice(0, maxLength - 5) + '...\"'\n : '\"' + value + '\"';\n }\n function describeExpandedElement(type, props, rowPrefix) {\n var remainingRowLength = 120 - rowPrefix.length - type.length,\n properties = [],\n propName;\n for (propName in props)\n if (props.hasOwnProperty(propName) && \"children\" !== propName) {\n var propValue = describePropValue(\n props[propName],\n 120 - rowPrefix.length - propName.length - 1\n );\n remainingRowLength -= propName.length + propValue.length + 2;\n properties.push(propName + \"=\" + propValue);\n }\n return 0 === properties.length\n ? rowPrefix + \"<\" + type + \">\\n\"\n : 0 < remainingRowLength\n ? rowPrefix + \"<\" + type + \" \" + properties.join(\" \") + \">\\n\"\n : rowPrefix +\n \"<\" +\n type +\n \"\\n\" +\n rowPrefix +\n \" \" +\n properties.join(\"\\n\" + rowPrefix + \" \") +\n \"\\n\" +\n rowPrefix +\n \">\\n\";\n }\n function describePropertiesDiff(clientObject, serverObject, indent) {\n var properties = \"\",\n remainingServerProperties = assign({}, serverObject),\n propName;\n for (propName in clientObject)\n if (clientObject.hasOwnProperty(propName)) {\n delete remainingServerProperties[propName];\n var maxLength = 120 - 2 * indent - propName.length - 2,\n clientPropValue = describeValue(clientObject[propName], maxLength);\n serverObject.hasOwnProperty(propName)\n ? ((maxLength = describeValue(serverObject[propName], maxLength)),\n (properties +=\n added(indent) + propName + \": \" + clientPropValue + \"\\n\"),\n (properties +=\n removed(indent) + propName + \": \" + maxLength + \"\\n\"))\n : (properties +=\n added(indent) + propName + \": \" + clientPropValue + \"\\n\");\n }\n for (var _propName in remainingServerProperties)\n remainingServerProperties.hasOwnProperty(_propName) &&\n ((clientObject = describeValue(\n remainingServerProperties[_propName],\n 120 - 2 * indent - _propName.length - 2\n )),\n (properties +=\n removed(indent) + _propName + \": \" + clientObject + \"\\n\"));\n return properties;\n }\n function describeElementDiff(type, clientProps, serverProps, indent) {\n var content = \"\",\n serverPropNames = new Map();\n for (propName$jscomp$0 in serverProps)\n serverProps.hasOwnProperty(propName$jscomp$0) &&\n serverPropNames.set(\n propName$jscomp$0.toLowerCase(),\n propName$jscomp$0\n );\n if (1 === serverPropNames.size && serverPropNames.has(\"children\"))\n content += describeExpandedElement(\n type,\n clientProps,\n indentation(indent)\n );\n else {\n for (var _propName2 in clientProps)\n if (\n clientProps.hasOwnProperty(_propName2) &&\n \"children\" !== _propName2\n ) {\n var maxLength$jscomp$0 =\n 120 - 2 * (indent + 1) - _propName2.length - 1,\n serverPropName = serverPropNames.get(_propName2.toLowerCase());\n if (void 0 !== serverPropName) {\n serverPropNames.delete(_propName2.toLowerCase());\n var propName$jscomp$0 = clientProps[_propName2];\n serverPropName = serverProps[serverPropName];\n var clientPropValue = describePropValue(\n propName$jscomp$0,\n maxLength$jscomp$0\n );\n maxLength$jscomp$0 = describePropValue(\n serverPropName,\n maxLength$jscomp$0\n );\n \"object\" === typeof propName$jscomp$0 &&\n null !== propName$jscomp$0 &&\n \"object\" === typeof serverPropName &&\n null !== serverPropName &&\n \"Object\" === objectName(propName$jscomp$0) &&\n \"Object\" === objectName(serverPropName) &&\n (2 < Object.keys(propName$jscomp$0).length ||\n 2 < Object.keys(serverPropName).length ||\n -1 < clientPropValue.indexOf(\"...\") ||\n -1 < maxLength$jscomp$0.indexOf(\"...\"))\n ? (content +=\n indentation(indent + 1) +\n _propName2 +\n \"={{\\n\" +\n describePropertiesDiff(\n propName$jscomp$0,\n serverPropName,\n indent + 2\n ) +\n indentation(indent + 1) +\n \"}}\\n\")\n : ((content +=\n added(indent + 1) +\n _propName2 +\n \"=\" +\n clientPropValue +\n \"\\n\"),\n (content +=\n removed(indent + 1) +\n _propName2 +\n \"=\" +\n maxLength$jscomp$0 +\n \"\\n\"));\n } else\n content +=\n indentation(indent + 1) +\n _propName2 +\n \"=\" +\n describePropValue(clientProps[_propName2], maxLength$jscomp$0) +\n \"\\n\";\n }\n serverPropNames.forEach(function (propName) {\n if (\"children\" !== propName) {\n var maxLength = 120 - 2 * (indent + 1) - propName.length - 1;\n content +=\n removed(indent + 1) +\n propName +\n \"=\" +\n describePropValue(serverProps[propName], maxLength) +\n \"\\n\";\n }\n });\n content =\n \"\" === content\n ? indentation(indent) + \"<\" + type + \">\\n\"\n : indentation(indent) +\n \"<\" +\n type +\n \"\\n\" +\n content +\n indentation(indent) +\n \">\\n\";\n }\n type = serverProps.children;\n clientProps = clientProps.children;\n if (\n \"string\" === typeof type ||\n \"number\" === typeof type ||\n \"bigint\" === typeof type\n ) {\n serverPropNames = \"\";\n if (\n \"string\" === typeof clientProps ||\n \"number\" === typeof clientProps ||\n \"bigint\" === typeof clientProps\n )\n serverPropNames = \"\" + clientProps;\n content += describeTextDiff(serverPropNames, \"\" + type, indent + 1);\n } else if (\n \"string\" === typeof clientProps ||\n \"number\" === typeof clientProps ||\n \"bigint\" === typeof clientProps\n )\n content =\n null == type\n ? content + describeTextDiff(\"\" + clientProps, null, indent + 1)\n : content + describeTextDiff(\"\" + clientProps, void 0, indent + 1);\n return content;\n }\n function describeSiblingFiber(fiber, indent) {\n var type = describeFiberType(fiber);\n if (null === type) {\n type = \"\";\n for (fiber = fiber.child; fiber; )\n (type += describeSiblingFiber(fiber, indent)),\n (fiber = fiber.sibling);\n return type;\n }\n return indentation(indent) + \"<\" + type + \">\\n\";\n }\n function describeNode(node, indent) {\n var skipToNode = findNotableNode(node, indent);\n if (\n skipToNode !== node &&\n (1 !== node.children.length || node.children[0] !== skipToNode)\n )\n return (\n indentation(indent) + \"...\\n\" + describeNode(skipToNode, indent + 1)\n );\n skipToNode = \"\";\n var debugInfo = node.fiber._debugInfo;\n if (debugInfo)\n for (var i = 0; i < debugInfo.length; i++) {\n var serverComponentName = debugInfo[i].name;\n \"string\" === typeof serverComponentName &&\n ((skipToNode +=\n indentation(indent) + \"<\" + serverComponentName + \">\\n\"),\n indent++);\n }\n debugInfo = \"\";\n i = node.fiber.pendingProps;\n if (6 === node.fiber.tag)\n (debugInfo = describeTextDiff(i, node.serverProps, indent)), indent++;\n else if (\n ((serverComponentName = describeFiberType(node.fiber)),\n null !== serverComponentName)\n )\n if (void 0 === node.serverProps) {\n debugInfo = indent;\n var maxLength = 120 - 2 * debugInfo - serverComponentName.length - 2,\n content = \"\";\n for (propName in i)\n if (i.hasOwnProperty(propName) && \"children\" !== propName) {\n var propValue = describePropValue(i[propName], 15);\n maxLength -= propName.length + propValue.length + 2;\n if (0 > maxLength) {\n content += \" ...\";\n break;\n }\n content += \" \" + propName + \"=\" + propValue;\n }\n debugInfo =\n indentation(debugInfo) +\n \"<\" +\n serverComponentName +\n content +\n \">\\n\";\n indent++;\n } else\n null === node.serverProps\n ? ((debugInfo = describeExpandedElement(\n serverComponentName,\n i,\n added(indent)\n )),\n indent++)\n : \"string\" === typeof node.serverProps\n ? console.error(\n \"Should not have matched a non HostText fiber to a Text node. This is a bug in React.\"\n )\n : ((debugInfo = describeElementDiff(\n serverComponentName,\n i,\n node.serverProps,\n indent\n )),\n indent++);\n var propName = \"\";\n i = node.fiber.child;\n for (\n serverComponentName = 0;\n i && serverComponentName < node.children.length;\n\n )\n (maxLength = node.children[serverComponentName]),\n maxLength.fiber === i\n ? ((propName += describeNode(maxLength, indent)),\n serverComponentName++)\n : (propName += describeSiblingFiber(i, indent)),\n (i = i.sibling);\n i &&\n 0 < node.children.length &&\n (propName += indentation(indent) + \"...\\n\");\n i = node.serverTail;\n null === node.serverProps && indent--;\n for (node = 0; node < i.length; node++)\n (serverComponentName = i[node]),\n (propName =\n \"string\" === typeof serverComponentName\n ? propName +\n (removed(indent) +\n describeTextNode(serverComponentName, 120 - 2 * indent) +\n \"\\n\")\n : propName +\n describeExpandedElement(\n serverComponentName.type,\n serverComponentName.props,\n removed(indent)\n ));\n return skipToNode + debugInfo + propName;\n }\n function describeDiff(rootNode) {\n try {\n return \"\\n\\n\" + describeNode(rootNode, 0);\n } catch (x) {\n return \"\";\n }\n }\n function describeAncestors(ancestor, child, props) {\n for (var fiber = child, node = null, distanceFromLeaf = 0; fiber; )\n fiber === ancestor && (distanceFromLeaf = 0),\n (node = {\n fiber: fiber,\n children: null !== node ? [node] : [],\n serverProps:\n fiber === child ? props : fiber === ancestor ? null : void 0,\n serverTail: [],\n distanceFromLeaf: distanceFromLeaf\n }),\n distanceFromLeaf++,\n (fiber = fiber.return);\n return null !== node ? describeDiff(node).replaceAll(/^[+-]/gm, \">\") : \"\";\n }\n function updatedAncestorInfoDev(oldInfo, tag) {\n var ancestorInfo = assign({}, oldInfo || emptyAncestorInfoDev),\n info = { tag: tag };\n -1 !== inScopeTags.indexOf(tag) &&\n ((ancestorInfo.aTagInScope = null),\n (ancestorInfo.buttonTagInScope = null),\n (ancestorInfo.nobrTagInScope = null));\n -1 !== buttonScopeTags.indexOf(tag) &&\n (ancestorInfo.pTagInButtonScope = null);\n -1 !== specialTags.indexOf(tag) &&\n \"address\" !== tag &&\n \"div\" !== tag &&\n \"p\" !== tag &&\n ((ancestorInfo.listItemTagAutoclosing = null),\n (ancestorInfo.dlItemTagAutoclosing = null));\n ancestorInfo.current = info;\n \"form\" === tag && (ancestorInfo.formTag = info);\n \"a\" === tag && (ancestorInfo.aTagInScope = info);\n \"button\" === tag && (ancestorInfo.buttonTagInScope = info);\n \"nobr\" === tag && (ancestorInfo.nobrTagInScope = info);\n \"p\" === tag && (ancestorInfo.pTagInButtonScope = info);\n \"li\" === tag && (ancestorInfo.listItemTagAutoclosing = info);\n if (\"dd\" === tag || \"dt\" === tag)\n ancestorInfo.dlItemTagAutoclosing = info;\n \"#document\" === tag || \"html\" === tag\n ? (ancestorInfo.containerTagInScope = null)\n : ancestorInfo.containerTagInScope ||\n (ancestorInfo.containerTagInScope = info);\n null !== oldInfo ||\n (\"#document\" !== tag && \"html\" !== tag && \"body\" !== tag)\n ? !0 === ancestorInfo.implicitRootScope &&\n (ancestorInfo.implicitRootScope = !1)\n : (ancestorInfo.implicitRootScope = !0);\n return ancestorInfo;\n }\n function isTagValidWithParent(tag, parentTag, implicitRootScope) {\n switch (parentTag) {\n case \"select\":\n return (\n \"hr\" === tag ||\n \"option\" === tag ||\n \"optgroup\" === tag ||\n \"script\" === tag ||\n \"template\" === tag ||\n \"#text\" === tag\n );\n case \"optgroup\":\n return \"option\" === tag || \"#text\" === tag;\n case \"option\":\n return \"#text\" === tag;\n case \"tr\":\n return (\n \"th\" === tag ||\n \"td\" === tag ||\n \"style\" === tag ||\n \"script\" === tag ||\n \"template\" === tag\n );\n case \"tbody\":\n case \"thead\":\n case \"tfoot\":\n return (\n \"tr\" === tag ||\n \"style\" === tag ||\n \"script\" === tag ||\n \"template\" === tag\n );\n case \"colgroup\":\n return \"col\" === tag || \"template\" === tag;\n case \"table\":\n return (\n \"caption\" === tag ||\n \"colgroup\" === tag ||\n \"tbody\" === tag ||\n \"tfoot\" === tag ||\n \"thead\" === tag ||\n \"style\" === tag ||\n \"script\" === tag ||\n \"template\" === tag\n );\n case \"head\":\n return (\n \"base\" === tag ||\n \"basefont\" === tag ||\n \"bgsound\" === tag ||\n \"link\" === tag ||\n \"meta\" === tag ||\n \"title\" === tag ||\n \"noscript\" === tag ||\n \"noframes\" === tag ||\n \"style\" === tag ||\n \"script\" === tag ||\n \"template\" === tag\n );\n case \"html\":\n if (implicitRootScope) break;\n return \"head\" === tag || \"body\" === tag || \"frameset\" === tag;\n case \"frameset\":\n return \"frame\" === tag;\n case \"#document\":\n if (!implicitRootScope) return \"html\" === tag;\n }\n switch (tag) {\n case \"h1\":\n case \"h2\":\n case \"h3\":\n case \"h4\":\n case \"h5\":\n case \"h6\":\n return (\n \"h1\" !== parentTag &&\n \"h2\" !== parentTag &&\n \"h3\" !== parentTag &&\n \"h4\" !== parentTag &&\n \"h5\" !== parentTag &&\n \"h6\" !== parentTag\n );\n case \"rp\":\n case \"rt\":\n return -1 === impliedEndTags.indexOf(parentTag);\n case \"caption\":\n case \"col\":\n case \"colgroup\":\n case \"frameset\":\n case \"frame\":\n case \"tbody\":\n case \"td\":\n case \"tfoot\":\n case \"th\":\n case \"thead\":\n case \"tr\":\n return null == parentTag;\n case \"head\":\n return implicitRootScope || null === parentTag;\n case \"html\":\n return (\n (implicitRootScope && \"#document\" === parentTag) ||\n null === parentTag\n );\n case \"body\":\n return (\n (implicitRootScope &&\n (\"#document\" === parentTag || \"html\" === parentTag)) ||\n null === parentTag\n );\n }\n return !0;\n }\n function findInvalidAncestorForTag(tag, ancestorInfo) {\n switch (tag) {\n case \"address\":\n case \"article\":\n case \"aside\":\n case \"blockquote\":\n case \"center\":\n case \"details\":\n case \"dialog\":\n case \"dir\":\n case \"div\":\n case \"dl\":\n case \"fieldset\":\n case \"figcaption\":\n case \"figure\":\n case \"footer\":\n case \"header\":\n case \"hgroup\":\n case \"main\":\n case \"menu\":\n case \"nav\":\n case \"ol\":\n case \"p\":\n case \"section\":\n case \"summary\":\n case \"ul\":\n case \"pre\":\n case \"listing\":\n case \"table\":\n case \"hr\":\n case \"xmp\":\n case \"h1\":\n case \"h2\":\n case \"h3\":\n case \"h4\":\n case \"h5\":\n case \"h6\":\n return ancestorInfo.pTagInButtonScope;\n case \"form\":\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n case \"li\":\n return ancestorInfo.listItemTagAutoclosing;\n case \"dd\":\n case \"dt\":\n return ancestorInfo.dlItemTagAutoclosing;\n case \"button\":\n return ancestorInfo.buttonTagInScope;\n case \"a\":\n return ancestorInfo.aTagInScope;\n case \"nobr\":\n return ancestorInfo.nobrTagInScope;\n }\n return null;\n }\n function findAncestor(parent, tagName) {\n for (; parent; ) {\n switch (parent.tag) {\n case 5:\n case 26:\n case 27:\n if (parent.type === tagName) return parent;\n }\n parent = parent.return;\n }\n return null;\n }\n function validateDOMNesting(childTag, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfoDev;\n var parentInfo = ancestorInfo.current;\n ancestorInfo = (parentInfo = isTagValidWithParent(\n childTag,\n parentInfo && parentInfo.tag,\n ancestorInfo.implicitRootScope\n )\n ? null\n : parentInfo)\n ? null\n : findInvalidAncestorForTag(childTag, ancestorInfo);\n ancestorInfo = parentInfo || ancestorInfo;\n if (!ancestorInfo) return !0;\n var ancestorTag = ancestorInfo.tag;\n ancestorInfo = String(!!parentInfo) + \"|\" + childTag + \"|\" + ancestorTag;\n if (didWarn[ancestorInfo]) return !1;\n didWarn[ancestorInfo] = !0;\n var ancestor = (ancestorInfo = current)\n ? findAncestor(ancestorInfo.return, ancestorTag)\n : null,\n ancestorDescription =\n null !== ancestorInfo && null !== ancestor\n ? describeAncestors(ancestor, ancestorInfo, null)\n : \"\",\n tagDisplayName = \"<\" + childTag + \">\";\n parentInfo\n ? ((parentInfo = \"\"),\n \"table\" === ancestorTag &&\n \"tr\" === childTag &&\n (parentInfo +=\n \" Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser.\"),\n console.error(\n \"In HTML, %s cannot be a child of <%s>.%s\\nThis will cause a hydration error.%s\",\n tagDisplayName,\n ancestorTag,\n parentInfo,\n ancestorDescription\n ))\n : console.error(\n \"In HTML, %s cannot be a descendant of <%s>.\\nThis will cause a hydration error.%s\",\n tagDisplayName,\n ancestorTag,\n ancestorDescription\n );\n ancestorInfo &&\n ((childTag = ancestorInfo.return),\n null === ancestor ||\n null === childTag ||\n (ancestor === childTag &&\n childTag._debugOwner === ancestorInfo._debugOwner) ||\n runWithFiberInDEV(ancestor, function () {\n console.error(\n \"<%s> cannot contain a nested %s.\\nSee this log for the ancestor stack trace.\",\n ancestorTag,\n tagDisplayName\n );\n }));\n return !1;\n }\n function validateTextNesting(childText, parentTag, implicitRootScope) {\n if (implicitRootScope || isTagValidWithParent(\"#text\", parentTag, !1))\n return !0;\n implicitRootScope = \"#text|\" + parentTag;\n if (didWarn[implicitRootScope]) return !1;\n didWarn[implicitRootScope] = !0;\n var ancestor = (implicitRootScope = current)\n ? findAncestor(implicitRootScope, parentTag)\n : null;\n implicitRootScope =\n null !== implicitRootScope && null !== ancestor\n ? describeAncestors(\n ancestor,\n implicitRootScope,\n 6 !== implicitRootScope.tag ? { children: null } : null\n )\n : \"\";\n /\\S/.test(childText)\n ? console.error(\n \"In HTML, text nodes cannot be a child of <%s>.\\nThis will cause a hydration error.%s\",\n parentTag,\n implicitRootScope\n )\n : console.error(\n \"In HTML, whitespace text nodes cannot be a child of <%s>. Make sure you don't have any extra whitespace between tags on each line of your source code.\\nThis will cause a hydration error.%s\",\n parentTag,\n implicitRootScope\n );\n return !1;\n }\n function setTextContent(node, text) {\n if (text) {\n var firstChild = node.firstChild;\n if (\n firstChild &&\n firstChild === node.lastChild &&\n 3 === firstChild.nodeType\n ) {\n firstChild.nodeValue = text;\n return;\n }\n }\n node.textContent = text;\n }\n function camelize(string) {\n return string.replace(hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n }\n function setValueForStyle(style, styleName, value) {\n var isCustomProperty = 0 === styleName.indexOf(\"--\");\n isCustomProperty ||\n (-1 < styleName.indexOf(\"-\")\n ? (warnedStyleNames.hasOwnProperty(styleName) &&\n warnedStyleNames[styleName]) ||\n ((warnedStyleNames[styleName] = !0),\n console.error(\n \"Unsupported style property %s. Did you mean %s?\",\n styleName,\n camelize(styleName.replace(msPattern, \"ms-\"))\n ))\n : badVendoredStyleNamePattern.test(styleName)\n ? (warnedStyleNames.hasOwnProperty(styleName) &&\n warnedStyleNames[styleName]) ||\n ((warnedStyleNames[styleName] = !0),\n console.error(\n \"Unsupported vendor-prefixed style property %s. Did you mean %s?\",\n styleName,\n styleName.charAt(0).toUpperCase() + styleName.slice(1)\n ))\n : !badStyleValueWithSemicolonPattern.test(value) ||\n (warnedStyleValues.hasOwnProperty(value) &&\n warnedStyleValues[value]) ||\n ((warnedStyleValues[value] = !0),\n console.error(\n 'Style property values shouldn\\'t contain a semicolon. Try \"%s: %s\" instead.',\n styleName,\n value.replace(badStyleValueWithSemicolonPattern, \"\")\n )),\n \"number\" === typeof value &&\n (isNaN(value)\n ? warnedForNaNValue ||\n ((warnedForNaNValue = !0),\n console.error(\n \"`NaN` is an invalid value for the `%s` css style property.\",\n styleName\n ))\n : isFinite(value) ||\n warnedForInfinityValue ||\n ((warnedForInfinityValue = !0),\n console.error(\n \"`Infinity` is an invalid value for the `%s` css style property.\",\n styleName\n ))));\n null == value || \"boolean\" === typeof value || \"\" === value\n ? isCustomProperty\n ? style.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (style.cssFloat = \"\")\n : (style[styleName] = \"\")\n : isCustomProperty\n ? style.setProperty(styleName, value)\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? \"float\" === styleName\n ? (style.cssFloat = value)\n : (checkCSSPropertyStringCoercion(value, styleName),\n (style[styleName] = (\"\" + value).trim()))\n : (style[styleName] = value + \"px\");\n }\n function setValueForStyles(node, styles, prevStyles) {\n if (null != styles && \"object\" !== typeof styles)\n throw Error(\n \"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.\"\n );\n styles && Object.freeze(styles);\n node = node.style;\n if (null != prevStyles) {\n if (styles) {\n var expandedUpdates = {};\n if (prevStyles)\n for (var key in prevStyles)\n if (prevStyles.hasOwnProperty(key) && !styles.hasOwnProperty(key))\n for (\n var longhands = shorthandToLonghand[key] || [key], i = 0;\n i < longhands.length;\n i++\n )\n expandedUpdates[longhands[i]] = key;\n for (var _key in styles)\n if (\n styles.hasOwnProperty(_key) &&\n (!prevStyles || prevStyles[_key] !== styles[_key])\n )\n for (\n key = shorthandToLonghand[_key] || [_key], longhands = 0;\n longhands < key.length;\n longhands++\n )\n expandedUpdates[key[longhands]] = _key;\n _key = {};\n for (var key$jscomp$0 in styles)\n for (\n key = shorthandToLonghand[key$jscomp$0] || [key$jscomp$0],\n longhands = 0;\n longhands < key.length;\n longhands++\n )\n _key[key[longhands]] = key$jscomp$0;\n key$jscomp$0 = {};\n for (var _key2 in expandedUpdates)\n if (\n ((key = expandedUpdates[_key2]),\n (longhands = _key[_key2]) &&\n key !== longhands &&\n ((i = key + \",\" + longhands), !key$jscomp$0[i]))\n ) {\n key$jscomp$0[i] = !0;\n i = console;\n var value = styles[key];\n i.error.call(\n i,\n \"%s a style property during rerender (%s) when a conflicting property is set (%s) can lead to styling bugs. To avoid this, don't mix shorthand and non-shorthand properties for the same value; instead, replace the shorthand with separate values.\",\n null == value || \"boolean\" === typeof value || \"\" === value\n ? \"Removing\"\n : \"Updating\",\n key,\n longhands\n );\n }\n }\n for (var styleName in prevStyles)\n !prevStyles.hasOwnProperty(styleName) ||\n (null != styles && styles.hasOwnProperty(styleName)) ||\n (0 === styleName.indexOf(\"--\")\n ? node.setProperty(styleName, \"\")\n : \"float\" === styleName\n ? (node.cssFloat = \"\")\n : (node[styleName] = \"\"));\n for (var _styleName in styles)\n (_key2 = styles[_styleName]),\n styles.hasOwnProperty(_styleName) &&\n prevStyles[_styleName] !== _key2 &&\n setValueForStyle(node, _styleName, _key2);\n } else\n for (expandedUpdates in styles)\n styles.hasOwnProperty(expandedUpdates) &&\n setValueForStyle(node, expandedUpdates, styles[expandedUpdates]);\n }\n function isCustomElement(tagName) {\n if (-1 === tagName.indexOf(\"-\")) return !1;\n switch (tagName) {\n case \"annotation-xml\":\n case \"color-profile\":\n case \"font-face\":\n case \"font-face-src\":\n case \"font-face-uri\":\n case \"font-face-format\":\n case \"font-face-name\":\n case \"missing-glyph\":\n return !1;\n default:\n return !0;\n }\n }\n function getAttributeAlias(name) {\n return aliases.get(name) || name;\n }\n function validateProperty$1(tagName, name) {\n if (\n hasOwnProperty.call(warnedProperties$1, name) &&\n warnedProperties$1[name]\n )\n return !0;\n if (rARIACamel$1.test(name)) {\n tagName = \"aria-\" + name.slice(4).toLowerCase();\n tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;\n if (null == tagName)\n return (\n console.error(\n \"Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.\",\n name\n ),\n (warnedProperties$1[name] = !0)\n );\n if (name !== tagName)\n return (\n console.error(\n \"Invalid ARIA attribute `%s`. Did you mean `%s`?\",\n name,\n tagName\n ),\n (warnedProperties$1[name] = !0)\n );\n }\n if (rARIA$1.test(name)) {\n tagName = name.toLowerCase();\n tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;\n if (null == tagName) return (warnedProperties$1[name] = !0), !1;\n name !== tagName &&\n (console.error(\n \"Unknown ARIA attribute `%s`. Did you mean `%s`?\",\n name,\n tagName\n ),\n (warnedProperties$1[name] = !0));\n }\n return !0;\n }\n function validateProperties$2(type, props) {\n var invalidProps = [],\n key;\n for (key in props)\n validateProperty$1(type, key) || invalidProps.push(key);\n props = invalidProps\n .map(function (prop) {\n return \"`\" + prop + \"`\";\n })\n .join(\", \");\n 1 === invalidProps.length\n ? console.error(\n \"Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",\n props,\n type\n )\n : 1 < invalidProps.length &&\n console.error(\n \"Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",\n props,\n type\n );\n }\n function validateProperty(tagName, name, value, eventRegistry) {\n if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])\n return !0;\n var lowerCasedName = name.toLowerCase();\n if (\"onfocusin\" === lowerCasedName || \"onfocusout\" === lowerCasedName)\n return (\n console.error(\n \"React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React.\"\n ),\n (warnedProperties[name] = !0)\n );\n if (\n \"function\" === typeof value &&\n ((\"form\" === tagName && \"action\" === name) ||\n (\"input\" === tagName && \"formAction\" === name) ||\n (\"button\" === tagName && \"formAction\" === name))\n )\n return !0;\n if (null != eventRegistry) {\n tagName = eventRegistry.possibleRegistrationNames;\n if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))\n return !0;\n eventRegistry = tagName.hasOwnProperty(lowerCasedName)\n ? tagName[lowerCasedName]\n : null;\n if (null != eventRegistry)\n return (\n console.error(\n \"Invalid event handler property `%s`. Did you mean `%s`?\",\n name,\n eventRegistry\n ),\n (warnedProperties[name] = !0)\n );\n if (EVENT_NAME_REGEX.test(name))\n return (\n console.error(\n \"Unknown event handler property `%s`. It will be ignored.\",\n name\n ),\n (warnedProperties[name] = !0)\n );\n } else if (EVENT_NAME_REGEX.test(name))\n return (\n INVALID_EVENT_NAME_REGEX.test(name) &&\n console.error(\n \"Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.\",\n name\n ),\n (warnedProperties[name] = !0)\n );\n if (rARIA.test(name) || rARIACamel.test(name)) return !0;\n if (\"innerhtml\" === lowerCasedName)\n return (\n console.error(\n \"Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`.\"\n ),\n (warnedProperties[name] = !0)\n );\n if (\"aria\" === lowerCasedName)\n return (\n console.error(\n \"The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead.\"\n ),\n (warnedProperties[name] = !0)\n );\n if (\n \"is\" === lowerCasedName &&\n null !== value &&\n void 0 !== value &&\n \"string\" !== typeof value\n )\n return (\n console.error(\n \"Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.\",\n typeof value\n ),\n (warnedProperties[name] = !0)\n );\n if (\"number\" === typeof value && isNaN(value))\n return (\n console.error(\n \"Received NaN for the `%s` attribute. If this is expected, cast the value to a string.\",\n name\n ),\n (warnedProperties[name] = !0)\n );\n if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n if (\n ((lowerCasedName = possibleStandardNames[lowerCasedName]),\n lowerCasedName !== name)\n )\n return (\n console.error(\n \"Invalid DOM property `%s`. Did you mean `%s`?\",\n name,\n lowerCasedName\n ),\n (warnedProperties[name] = !0)\n );\n } else if (name !== lowerCasedName)\n return (\n console.error(\n \"React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.\",\n name,\n lowerCasedName\n ),\n (warnedProperties[name] = !0)\n );\n switch (name) {\n case \"dangerouslySetInnerHTML\":\n case \"children\":\n case \"style\":\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n return !0;\n case \"innerText\":\n case \"textContent\":\n return !0;\n }\n switch (typeof value) {\n case \"boolean\":\n switch (name) {\n case \"autoFocus\":\n case \"checked\":\n case \"multiple\":\n case \"muted\":\n case \"selected\":\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n case \"capture\":\n case \"download\":\n case \"inert\":\n return !0;\n default:\n lowerCasedName = name.toLowerCase().slice(0, 5);\n if (\"data-\" === lowerCasedName || \"aria-\" === lowerCasedName)\n return !0;\n value\n ? console.error(\n 'Received `%s` for a non-boolean attribute `%s`.\\n\\nIf you want to write it to the DOM, pass a string instead: %s=\"%s\" or %s={value.toString()}.',\n value,\n name,\n name,\n value,\n name\n )\n : console.error(\n 'Received `%s` for a non-boolean attribute `%s`.\\n\\nIf you want to write it to the DOM, pass a string instead: %s=\"%s\" or %s={value.toString()}.\\n\\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',\n value,\n name,\n name,\n value,\n name,\n name,\n name\n );\n return (warnedProperties[name] = !0);\n }\n case \"function\":\n case \"symbol\":\n return (warnedProperties[name] = !0), !1;\n case \"string\":\n if (\"false\" === value || \"true\" === value) {\n switch (name) {\n case \"checked\":\n case \"selected\":\n case \"multiple\":\n case \"muted\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n case \"inert\":\n break;\n default:\n return !0;\n }\n console.error(\n \"Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?\",\n value,\n name,\n \"false\" === value\n ? \"The browser will interpret it as a truthy value.\"\n : 'Although this works, it will not work as expected if you pass the string \"false\".',\n name,\n value\n );\n warnedProperties[name] = !0;\n }\n }\n return !0;\n }\n function warnUnknownProperties(type, props, eventRegistry) {\n var unknownProps = [],\n key;\n for (key in props)\n validateProperty(type, key, props[key], eventRegistry) ||\n unknownProps.push(key);\n props = unknownProps\n .map(function (prop) {\n return \"`\" + prop + \"`\";\n })\n .join(\", \");\n 1 === unknownProps.length\n ? console.error(\n \"Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior \",\n props,\n type\n )\n : 1 < unknownProps.length &&\n console.error(\n \"Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior \",\n props,\n type\n );\n }\n function sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n }\n function noop$1() {}\n function getEventTarget(nativeEvent) {\n nativeEvent = nativeEvent.target || nativeEvent.srcElement || window;\n nativeEvent.correspondingUseElement &&\n (nativeEvent = nativeEvent.correspondingUseElement);\n return 3 === nativeEvent.nodeType ? nativeEvent.parentNode : nativeEvent;\n }\n function restoreStateOfTarget(target) {\n var internalInstance = getInstanceFromNode(target);\n if (internalInstance && (target = internalInstance.stateNode)) {\n var props = target[internalPropsKey] || null;\n a: switch (\n ((target = internalInstance.stateNode), internalInstance.type)\n ) {\n case \"input\":\n updateInput(\n target,\n props.value,\n props.defaultValue,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name\n );\n internalInstance = props.name;\n if (\"radio\" === props.type && null != internalInstance) {\n for (props = target; props.parentNode; ) props = props.parentNode;\n checkAttributeStringCoercion(internalInstance, \"name\");\n props = props.querySelectorAll(\n 'input[name=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n \"\" + internalInstance\n ) +\n '\"][type=\"radio\"]'\n );\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n ) {\n var otherNode = props[internalInstance];\n if (otherNode !== target && otherNode.form === target.form) {\n var otherProps = otherNode[internalPropsKey] || null;\n if (!otherProps)\n throw Error(\n \"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.\"\n );\n updateInput(\n otherNode,\n otherProps.value,\n otherProps.defaultValue,\n otherProps.defaultValue,\n otherProps.checked,\n otherProps.defaultChecked,\n otherProps.type,\n otherProps.name\n );\n }\n }\n for (\n internalInstance = 0;\n internalInstance < props.length;\n internalInstance++\n )\n (otherNode = props[internalInstance]),\n otherNode.form === target.form &&\n updateValueIfChanged(otherNode);\n }\n break a;\n case \"textarea\":\n updateTextarea(target, props.value, props.defaultValue);\n break a;\n case \"select\":\n (internalInstance = props.value),\n null != internalInstance &&\n updateOptions(target, !!props.multiple, internalInstance, !1);\n }\n }\n }\n function batchedUpdates$1(fn, a, b) {\n if (isInsideEventHandler) return fn(a, b);\n isInsideEventHandler = !0;\n try {\n var JSCompiler_inline_result = fn(a);\n return JSCompiler_inline_result;\n } finally {\n if (\n ((isInsideEventHandler = !1),\n null !== restoreTarget || null !== restoreQueue)\n )\n if (\n (flushSyncWork$1(),\n restoreTarget &&\n ((a = restoreTarget),\n (fn = restoreQueue),\n (restoreQueue = restoreTarget = null),\n restoreStateOfTarget(a),\n fn))\n )\n for (a = 0; a < fn.length; a++) restoreStateOfTarget(fn[a]);\n }\n }\n function getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n if (null === stateNode) return null;\n var props = stateNode[internalPropsKey] || null;\n if (null === props) return null;\n stateNode = props[registrationName];\n a: switch (registrationName) {\n case \"onClick\":\n case \"onClickCapture\":\n case \"onDoubleClick\":\n case \"onDoubleClickCapture\":\n case \"onMouseDown\":\n case \"onMouseDownCapture\":\n case \"onMouseMove\":\n case \"onMouseMoveCapture\":\n case \"onMouseUp\":\n case \"onMouseUpCapture\":\n case \"onMouseEnter\":\n (props = !props.disabled) ||\n ((inst = inst.type),\n (props = !(\n \"button\" === inst ||\n \"input\" === inst ||\n \"select\" === inst ||\n \"textarea\" === inst\n )));\n inst = !props;\n break a;\n default:\n inst = !1;\n }\n if (inst) return null;\n if (stateNode && \"function\" !== typeof stateNode)\n throw Error(\n \"Expected `\" +\n registrationName +\n \"` listener to be a function, instead got a value of `\" +\n typeof stateNode +\n \"` type.\"\n );\n return stateNode;\n }\n function getData() {\n if (fallbackText) return fallbackText;\n var start,\n startValue = startText,\n startLength = startValue.length,\n end,\n endValue = \"value\" in root ? root.value : root.textContent,\n endLength = endValue.length;\n for (\n start = 0;\n start < startLength && startValue[start] === endValue[start];\n start++\n );\n var minEnd = startLength - start;\n for (\n end = 1;\n end <= minEnd &&\n startValue[startLength - end] === endValue[endLength - end];\n end++\n );\n return (fallbackText = endValue.slice(start, 1 < end ? 1 - end : void 0));\n }\n function getEventCharCode(nativeEvent) {\n var keyCode = nativeEvent.keyCode;\n \"charCode\" in nativeEvent\n ? ((nativeEvent = nativeEvent.charCode),\n 0 === nativeEvent && 13 === keyCode && (nativeEvent = 13))\n : (nativeEvent = keyCode);\n 10 === nativeEvent && (nativeEvent = 13);\n return 32 <= nativeEvent || 13 === nativeEvent ? nativeEvent : 0;\n }\n function functionThatReturnsTrue() {\n return !0;\n }\n function functionThatReturnsFalse() {\n return !1;\n }\n function createSyntheticEvent(Interface) {\n function SyntheticBaseEvent(\n reactName,\n reactEventType,\n targetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n for (var propName in Interface)\n Interface.hasOwnProperty(propName) &&\n ((reactName = Interface[propName]),\n (this[propName] = reactName\n ? reactName(nativeEvent)\n : nativeEvent[propName]));\n this.isDefaultPrevented = (\n null != nativeEvent.defaultPrevented\n ? nativeEvent.defaultPrevented\n : !1 === nativeEvent.returnValue\n )\n ? functionThatReturnsTrue\n : functionThatReturnsFalse;\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = !0;\n var event = this.nativeEvent;\n event &&\n (event.preventDefault\n ? event.preventDefault()\n : \"unknown\" !== typeof event.returnValue &&\n (event.returnValue = !1),\n (this.isDefaultPrevented = functionThatReturnsTrue));\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n event &&\n (event.stopPropagation\n ? event.stopPropagation()\n : \"unknown\" !== typeof event.cancelBubble &&\n (event.cancelBubble = !0),\n (this.isPropagationStopped = functionThatReturnsTrue));\n },\n persist: function () {},\n isPersistent: functionThatReturnsTrue\n });\n return SyntheticBaseEvent;\n }\n function modifierStateGetter(keyArg) {\n var nativeEvent = this.nativeEvent;\n return nativeEvent.getModifierState\n ? nativeEvent.getModifierState(keyArg)\n : (keyArg = modifierKeyToProp[keyArg])\n ? !!nativeEvent[keyArg]\n : !1;\n }\n function getEventModifierState() {\n return modifierStateGetter;\n }\n function isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"keyup\":\n return -1 !== END_KEYCODES.indexOf(nativeEvent.keyCode);\n case \"keydown\":\n return nativeEvent.keyCode !== START_KEYCODE;\n case \"keypress\":\n case \"mousedown\":\n case \"focusout\":\n return !0;\n default:\n return !1;\n }\n }\n function getDataFromCustomEvent(nativeEvent) {\n nativeEvent = nativeEvent.detail;\n return \"object\" === typeof nativeEvent && \"data\" in nativeEvent\n ? nativeEvent.data\n : null;\n }\n function getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"compositionend\":\n return getDataFromCustomEvent(nativeEvent);\n case \"keypress\":\n if (nativeEvent.which !== SPACEBAR_CODE) return null;\n hasSpaceKeypress = !0;\n return SPACEBAR_CHAR;\n case \"textInput\":\n return (\n (domEventName = nativeEvent.data),\n domEventName === SPACEBAR_CHAR && hasSpaceKeypress\n ? null\n : domEventName\n );\n default:\n return null;\n }\n }\n function getFallbackBeforeInputChars(domEventName, nativeEvent) {\n if (isComposing)\n return \"compositionend\" === domEventName ||\n (!canUseCompositionEvent &&\n isFallbackCompositionEnd(domEventName, nativeEvent))\n ? ((domEventName = getData()),\n (fallbackText = startText = root = null),\n (isComposing = !1),\n domEventName)\n : null;\n switch (domEventName) {\n case \"paste\":\n return null;\n case \"keypress\":\n if (\n !(\n nativeEvent.ctrlKey ||\n nativeEvent.altKey ||\n nativeEvent.metaKey\n ) ||\n (nativeEvent.ctrlKey && nativeEvent.altKey)\n ) {\n if (nativeEvent.char && 1 < nativeEvent.char.length)\n return nativeEvent.char;\n if (nativeEvent.which)\n return String.fromCharCode(nativeEvent.which);\n }\n return null;\n case \"compositionend\":\n return useFallbackCompositionData && \"ko\" !== nativeEvent.locale\n ? null\n : nativeEvent.data;\n default:\n return null;\n }\n }\n function isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return \"input\" === nodeName\n ? !!supportedInputTypes[elem.type]\n : \"textarea\" === nodeName\n ? !0\n : !1;\n }\n function isEventSupported(eventNameSuffix) {\n if (!canUseDOM) return !1;\n eventNameSuffix = \"on\" + eventNameSuffix;\n var isSupported = eventNameSuffix in document;\n isSupported ||\n ((isSupported = document.createElement(\"div\")),\n isSupported.setAttribute(eventNameSuffix, \"return;\"),\n (isSupported = \"function\" === typeof isSupported[eventNameSuffix]));\n return isSupported;\n }\n function createAndAccumulateChangeEvent(\n dispatchQueue,\n inst,\n nativeEvent,\n target\n ) {\n restoreTarget\n ? restoreQueue\n ? restoreQueue.push(target)\n : (restoreQueue = [target])\n : (restoreTarget = target);\n inst = accumulateTwoPhaseListeners(inst, \"onChange\");\n 0 < inst.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onChange\",\n \"change\",\n null,\n nativeEvent,\n target\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: inst }));\n }\n function runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n }\n function getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n if (updateValueIfChanged(targetNode)) return targetInst;\n }\n function getTargetInstForChangeEvent(domEventName, targetInst) {\n if (\"change\" === domEventName) return targetInst;\n }\n function stopWatchingForValueChange() {\n activeElement$1 &&\n (activeElement$1.detachEvent(\"onpropertychange\", handlePropertyChange),\n (activeElementInst$1 = activeElement$1 = null));\n }\n function handlePropertyChange(nativeEvent) {\n if (\n \"value\" === nativeEvent.propertyName &&\n getInstIfValueChanged(activeElementInst$1)\n ) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(\n dispatchQueue,\n activeElementInst$1,\n nativeEvent,\n getEventTarget(nativeEvent)\n );\n batchedUpdates$1(runEventInBatch, dispatchQueue);\n }\n }\n function handleEventsForInputEventPolyfill(\n domEventName,\n target,\n targetInst\n ) {\n \"focusin\" === domEventName\n ? (stopWatchingForValueChange(),\n (activeElement$1 = target),\n (activeElementInst$1 = targetInst),\n activeElement$1.attachEvent(\"onpropertychange\", handlePropertyChange))\n : \"focusout\" === domEventName && stopWatchingForValueChange();\n }\n function getTargetInstForInputEventPolyfill(domEventName) {\n if (\n \"selectionchange\" === domEventName ||\n \"keyup\" === domEventName ||\n \"keydown\" === domEventName\n )\n return getInstIfValueChanged(activeElementInst$1);\n }\n function getTargetInstForClickEvent(domEventName, targetInst) {\n if (\"click\" === domEventName) return getInstIfValueChanged(targetInst);\n }\n function getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (\"input\" === domEventName || \"change\" === domEventName)\n return getInstIfValueChanged(targetInst);\n }\n function is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n }\n function shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) return !0;\n if (\n \"object\" !== typeof objA ||\n null === objA ||\n \"object\" !== typeof objB ||\n null === objB\n )\n return !1;\n var keysA = Object.keys(objA),\n keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return !1;\n for (keysB = 0; keysB < keysA.length; keysB++) {\n var currentKey = keysA[keysB];\n if (\n !hasOwnProperty.call(objB, currentKey) ||\n !objectIs(objA[currentKey], objB[currentKey])\n )\n return !1;\n }\n return !0;\n }\n function getLeafNode(node) {\n for (; node && node.firstChild; ) node = node.firstChild;\n return node;\n }\n function getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n root = 0;\n for (var nodeEnd; node; ) {\n if (3 === node.nodeType) {\n nodeEnd = root + node.textContent.length;\n if (root <= offset && nodeEnd >= offset)\n return { node: node, offset: offset - root };\n root = nodeEnd;\n }\n a: {\n for (; node; ) {\n if (node.nextSibling) {\n node = node.nextSibling;\n break a;\n }\n node = node.parentNode;\n }\n node = void 0;\n }\n node = getLeafNode(node);\n }\n }\n function containsNode(outerNode, innerNode) {\n return outerNode && innerNode\n ? outerNode === innerNode\n ? !0\n : outerNode && 3 === outerNode.nodeType\n ? !1\n : innerNode && 3 === innerNode.nodeType\n ? containsNode(outerNode, innerNode.parentNode)\n : \"contains\" in outerNode\n ? outerNode.contains(innerNode)\n : outerNode.compareDocumentPosition\n ? !!(outerNode.compareDocumentPosition(innerNode) & 16)\n : !1\n : !1;\n }\n function getActiveElementDeep(containerInfo) {\n containerInfo =\n null != containerInfo &&\n null != containerInfo.ownerDocument &&\n null != containerInfo.ownerDocument.defaultView\n ? containerInfo.ownerDocument.defaultView\n : window;\n for (\n var element = getActiveElement(containerInfo.document);\n element instanceof containerInfo.HTMLIFrameElement;\n\n ) {\n try {\n var JSCompiler_inline_result =\n \"string\" === typeof element.contentWindow.location.href;\n } catch (err) {\n JSCompiler_inline_result = !1;\n }\n if (JSCompiler_inline_result) containerInfo = element.contentWindow;\n else break;\n element = getActiveElement(containerInfo.document);\n }\n return element;\n }\n function hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return (\n nodeName &&\n ((\"input\" === nodeName &&\n (\"text\" === elem.type ||\n \"search\" === elem.type ||\n \"tel\" === elem.type ||\n \"url\" === elem.type ||\n \"password\" === elem.type)) ||\n \"textarea\" === nodeName ||\n \"true\" === elem.contentEditable)\n );\n }\n function constructSelectEvent(\n dispatchQueue,\n nativeEvent,\n nativeEventTarget\n ) {\n var doc =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget.document\n : 9 === nativeEventTarget.nodeType\n ? nativeEventTarget\n : nativeEventTarget.ownerDocument;\n mouseDown ||\n null == activeElement ||\n activeElement !== getActiveElement(doc) ||\n ((doc = activeElement),\n \"selectionStart\" in doc && hasSelectionCapabilities(doc)\n ? (doc = { start: doc.selectionStart, end: doc.selectionEnd })\n : ((doc = (\n (doc.ownerDocument && doc.ownerDocument.defaultView) ||\n window\n ).getSelection()),\n (doc = {\n anchorNode: doc.anchorNode,\n anchorOffset: doc.anchorOffset,\n focusNode: doc.focusNode,\n focusOffset: doc.focusOffset\n })),\n (lastSelection && shallowEqual(lastSelection, doc)) ||\n ((lastSelection = doc),\n (doc = accumulateTwoPhaseListeners(activeElementInst, \"onSelect\")),\n 0 < doc.length &&\n ((nativeEvent = new SyntheticEvent(\n \"onSelect\",\n \"select\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({ event: nativeEvent, listeners: doc }),\n (nativeEvent.target = activeElement))));\n }\n function makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\" + styleProp] = \"webkit\" + eventName;\n prefixes[\"Moz\" + styleProp] = \"moz\" + eventName;\n return prefixes;\n }\n function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) return prefixedEventNames[eventName];\n if (!vendorPrefixes[eventName]) return eventName;\n var prefixMap = vendorPrefixes[eventName],\n styleProp;\n for (styleProp in prefixMap)\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style)\n return (prefixedEventNames[eventName] = prefixMap[styleProp]);\n return eventName;\n }\n function registerSimpleEvent(domEventName, reactName) {\n topLevelEventsToReactNames.set(domEventName, reactName);\n registerTwoPhaseEvent(reactName, [domEventName]);\n }\n function getArrayKind(array) {\n for (var kind = EMPTY_ARRAY, i = 0; i < array.length; i++) {\n var value = array[i];\n if (\"object\" === typeof value && null !== value)\n if (\n isArrayImpl(value) &&\n 2 === value.length &&\n \"string\" === typeof value[0]\n ) {\n if (kind !== EMPTY_ARRAY && kind !== ENTRIES_ARRAY)\n return COMPLEX_ARRAY;\n kind = ENTRIES_ARRAY;\n } else return COMPLEX_ARRAY;\n else {\n if (\n \"function\" === typeof value ||\n (\"string\" === typeof value && 50 < value.length) ||\n (kind !== EMPTY_ARRAY && kind !== PRIMITIVE_ARRAY)\n )\n return COMPLEX_ARRAY;\n kind = PRIMITIVE_ARRAY;\n }\n }\n return kind;\n }\n function addObjectToProperties(object, properties, indent, prefix) {\n for (var key in object)\n hasOwnProperty.call(object, key) &&\n \"_\" !== key[0] &&\n addValueToProperties(key, object[key], properties, indent, prefix);\n }\n function addValueToProperties(\n propertyName,\n value,\n properties,\n indent,\n prefix\n ) {\n switch (typeof value) {\n case \"object\":\n if (null === value) {\n value = \"null\";\n break;\n } else {\n if (value.$$typeof === REACT_ELEMENT_TYPE) {\n var typeName = getComponentNameFromType(value.type) || \"\\u2026\",\n key = value.key;\n value = value.props;\n var propsKeys = Object.keys(value),\n propsLength = propsKeys.length;\n if (null == key && 0 === propsLength) {\n value = \"<\" + typeName + \" />\";\n break;\n }\n if (\n 3 > indent ||\n (1 === propsLength &&\n \"children\" === propsKeys[0] &&\n null == key)\n ) {\n value = \"<\" + typeName + \" \\u2026 />\";\n break;\n }\n properties.push([\n prefix + \"\\u00a0\\u00a0\".repeat(indent) + propertyName,\n \"<\" + typeName\n ]);\n null !== key &&\n addValueToProperties(\n \"key\",\n key,\n properties,\n indent + 1,\n prefix\n );\n propertyName = !1;\n for (var propKey in value)\n \"children\" === propKey\n ? null != value.children &&\n (!isArrayImpl(value.children) ||\n 0 < value.children.length) &&\n (propertyName = !0)\n : hasOwnProperty.call(value, propKey) &&\n \"_\" !== propKey[0] &&\n addValueToProperties(\n propKey,\n value[propKey],\n properties,\n indent + 1,\n prefix\n );\n properties.push([\n \"\",\n propertyName ? \">\\u2026</\" + typeName + \">\" : \"/>\"\n ]);\n return;\n }\n typeName = Object.prototype.toString.call(value);\n typeName = typeName.slice(8, typeName.length - 1);\n if (\"Array\" === typeName)\n if (\n ((propKey = getArrayKind(value)),\n propKey === PRIMITIVE_ARRAY || propKey === EMPTY_ARRAY)\n ) {\n value = JSON.stringify(value);\n break;\n } else if (propKey === ENTRIES_ARRAY) {\n properties.push([\n prefix + \"\\u00a0\\u00a0\".repeat(indent) + propertyName,\n \"\"\n ]);\n for (\n propertyName = 0;\n propertyName < value.length;\n propertyName++\n )\n (typeName = value[propertyName]),\n addValueToProperties(\n typeName[0],\n typeName[1],\n properties,\n indent + 1,\n prefix\n );\n return;\n }\n if (\"Promise\" === typeName) {\n if (\"fulfilled\" === value.status) {\n if (\n ((typeName = properties.length),\n addValueToProperties(\n propertyName,\n value.value,\n properties,\n indent,\n prefix\n ),\n properties.length > typeName)\n ) {\n properties = properties[typeName];\n properties[1] =\n \"Promise<\" + (properties[1] || \"Object\") + \">\";\n return;\n }\n } else if (\n \"rejected\" === value.status &&\n ((typeName = properties.length),\n addValueToProperties(\n propertyName,\n value.reason,\n properties,\n indent,\n prefix\n ),\n properties.length > typeName)\n ) {\n properties = properties[typeName];\n properties[1] = \"Rejected Promise<\" + properties[1] + \">\";\n return;\n }\n properties.push([\n \"\\u00a0\\u00a0\".repeat(indent) + propertyName,\n \"Promise\"\n ]);\n return;\n }\n \"Object\" === typeName &&\n (propKey = Object.getPrototypeOf(value)) &&\n \"function\" === typeof propKey.constructor &&\n (typeName = propKey.constructor.name);\n properties.push([\n prefix + \"\\u00a0\\u00a0\".repeat(indent) + propertyName,\n \"Object\" === typeName ? (3 > indent ? \"\" : \"\\u2026\") : typeName\n ]);\n 3 > indent &&\n addObjectToProperties(value, properties, indent + 1, prefix);\n return;\n }\n case \"function\":\n value = \"\" === value.name ? \"() => {}\" : value.name + \"() {}\";\n break;\n case \"string\":\n value =\n value === OMITTED_PROP_ERROR ? \"\\u2026\" : JSON.stringify(value);\n break;\n case \"undefined\":\n value = \"undefined\";\n break;\n case \"boolean\":\n value = value ? \"true\" : \"false\";\n break;\n default:\n value = String(value);\n }\n properties.push([\n prefix + \"\\u00a0\\u00a0\".repeat(indent) + propertyName,\n value\n ]);\n }\n function addObjectDiffToProperties(prev, next, properties, indent) {\n var isDeeplyEqual = !0;\n for (key in prev)\n key in next ||\n (properties.push([\n REMOVED + \"\\u00a0\\u00a0\".repeat(indent) + key,\n \"\\u2026\"\n ]),\n (isDeeplyEqual = !1));\n for (var _key in next)\n if (_key in prev) {\n var key = prev[_key];\n var nextValue = next[_key];\n if (key !== nextValue) {\n if (0 === indent && \"children\" === _key)\n (isDeeplyEqual = \"\\u00a0\\u00a0\".repeat(indent) + _key),\n properties.push(\n [REMOVED + isDeeplyEqual, \"\\u2026\"],\n [ADDED + isDeeplyEqual, \"\\u2026\"]\n );\n else {\n if (!(3 <= indent))\n if (\n \"object\" === typeof key &&\n \"object\" === typeof nextValue &&\n null !== key &&\n null !== nextValue &&\n key.$$typeof === nextValue.$$typeof\n )\n if (nextValue.$$typeof === REACT_ELEMENT_TYPE) {\n if (\n key.type === nextValue.type &&\n key.key === nextValue.key\n ) {\n key =\n getComponentNameFromType(nextValue.type) || \"\\u2026\";\n isDeeplyEqual = \"\\u00a0\\u00a0\".repeat(indent) + _key;\n key = \"<\" + key + \" \\u2026 />\";\n properties.push(\n [REMOVED + isDeeplyEqual, key],\n [ADDED + isDeeplyEqual, key]\n );\n isDeeplyEqual = !1;\n continue;\n }\n } else {\n var prevKind = Object.prototype.toString.call(key),\n nextKind = Object.prototype.toString.call(nextValue);\n if (\n prevKind === nextKind &&\n (\"[object Object]\" === nextKind ||\n \"[object Array]\" === nextKind)\n ) {\n prevKind = [\n UNCHANGED + \"\\u00a0\\u00a0\".repeat(indent) + _key,\n \"[object Array]\" === nextKind ? \"Array\" : \"\"\n ];\n properties.push(prevKind);\n nextKind = properties.length;\n addObjectDiffToProperties(\n key,\n nextValue,\n properties,\n indent + 1\n )\n ? nextKind === properties.length &&\n (prevKind[1] =\n \"Referentially unequal but deeply equal objects. Consider memoization.\")\n : (isDeeplyEqual = !1);\n continue;\n }\n }\n else if (\n \"function\" === typeof key &&\n \"function\" === typeof nextValue &&\n key.name === nextValue.name &&\n key.length === nextValue.length &&\n ((prevKind = Function.prototype.toString.call(key)),\n (nextKind = Function.prototype.toString.call(nextValue)),\n prevKind === nextKind)\n ) {\n key =\n \"\" === nextValue.name\n ? \"() => {}\"\n : nextValue.name + \"() {}\";\n properties.push([\n UNCHANGED + \"\\u00a0\\u00a0\".repeat(indent) + _key,\n key +\n \" Referentially unequal function closure. Consider memoization.\"\n ]);\n continue;\n }\n addValueToProperties(_key, key, properties, indent, REMOVED);\n addValueToProperties(_key, nextValue, properties, indent, ADDED);\n }\n isDeeplyEqual = !1;\n }\n } else\n properties.push([\n ADDED + \"\\u00a0\\u00a0\".repeat(indent) + _key,\n \"\\u2026\"\n ]),\n (isDeeplyEqual = !1);\n return isDeeplyEqual;\n }\n function setCurrentTrackFromLanes(lanes) {\n currentTrack =\n lanes & 63\n ? \"Blocking\"\n : lanes & 64\n ? \"Gesture\"\n : lanes & 4194176\n ? \"Transition\"\n : lanes & 62914560\n ? \"Suspense\"\n : lanes & 2080374784\n ? \"Idle\"\n : \"Other\";\n }\n function logComponentTrigger(fiber, startTime, endTime, trigger) {\n supportsUserTiming &&\n ((reusableComponentOptions.start = startTime),\n (reusableComponentOptions.end = endTime),\n (reusableComponentDevToolDetails.color = \"warning\"),\n (reusableComponentDevToolDetails.tooltipText = trigger),\n (reusableComponentDevToolDetails.properties = null),\n (fiber = fiber._debugTask)\n ? fiber.run(\n performance.measure.bind(\n performance,\n trigger,\n reusableComponentOptions\n )\n )\n : performance.measure(trigger, reusableComponentOptions));\n }\n function logComponentReappeared(fiber, startTime, endTime) {\n logComponentTrigger(fiber, startTime, endTime, \"Reconnect\");\n }\n function logComponentRender(\n fiber,\n startTime,\n endTime,\n wasHydrated,\n committedLanes\n ) {\n var name = getComponentNameFromFiber(fiber);\n if (null !== name && supportsUserTiming) {\n var alternate = fiber.alternate,\n selfTime = fiber.actualDuration;\n if (null === alternate || alternate.child !== fiber.child)\n for (var child = fiber.child; null !== child; child = child.sibling)\n selfTime -= child.actualDuration;\n wasHydrated =\n 0.5 > selfTime\n ? wasHydrated\n ? \"tertiary-light\"\n : \"primary-light\"\n : 10 > selfTime\n ? wasHydrated\n ? \"tertiary\"\n : \"primary\"\n : 100 > selfTime\n ? wasHydrated\n ? \"tertiary-dark\"\n : \"primary-dark\"\n : \"error\";\n var props = fiber.memoizedProps;\n selfTime = fiber._debugTask;\n null !== props &&\n null !== alternate &&\n alternate.memoizedProps !== props\n ? ((child = [resuableChangedPropsEntry]),\n (props = addObjectDiffToProperties(\n alternate.memoizedProps,\n props,\n child,\n 0\n )),\n 1 < child.length &&\n (props &&\n !alreadyWarnedForDeepEquality &&\n 0 === (alternate.lanes & committedLanes) &&\n 100 < fiber.actualDuration\n ? ((alreadyWarnedForDeepEquality = !0),\n (child[0] = reusableDeeplyEqualPropsEntry),\n (reusableComponentDevToolDetails.color = \"warning\"),\n (reusableComponentDevToolDetails.tooltipText =\n DEEP_EQUALITY_WARNING))\n : ((reusableComponentDevToolDetails.color = wasHydrated),\n (reusableComponentDevToolDetails.tooltipText = name)),\n (reusableComponentDevToolDetails.properties = child),\n (reusableComponentOptions.start = startTime),\n (reusableComponentOptions.end = endTime),\n null != selfTime\n ? selfTime.run(\n performance.measure.bind(\n performance,\n \"\\u200b\" + name,\n reusableComponentOptions\n )\n )\n : performance.measure(\n \"\\u200b\" + name,\n reusableComponentOptions\n )))\n : null != selfTime\n ? selfTime.run(\n console.timeStamp.bind(\n console,\n name,\n startTime,\n endTime,\n COMPONENTS_TRACK,\n void 0,\n wasHydrated\n )\n )\n : console.timeStamp(\n name,\n startTime,\n endTime,\n COMPONENTS_TRACK,\n void 0,\n wasHydrated\n );\n }\n }\n function logComponentErrored(fiber, startTime, endTime, errors) {\n if (supportsUserTiming) {\n var name = getComponentNameFromFiber(fiber);\n if (null !== name) {\n for (\n var debugTask = null, properties = [], i = 0;\n i < errors.length;\n i++\n ) {\n var capturedValue = errors[i];\n null == debugTask &&\n null !== capturedValue.source &&\n (debugTask = capturedValue.source._debugTask);\n capturedValue = capturedValue.value;\n properties.push([\n \"Error\",\n \"object\" === typeof capturedValue &&\n null !== capturedValue &&\n \"string\" === typeof capturedValue.message\n ? String(capturedValue.message)\n : String(capturedValue)\n ]);\n }\n null !== fiber.key &&\n addValueToProperties(\"key\", fiber.key, properties, 0, \"\");\n null !== fiber.memoizedProps &&\n addObjectToProperties(fiber.memoizedProps, properties, 0, \"\");\n null == debugTask && (debugTask = fiber._debugTask);\n fiber = {\n start: startTime,\n end: endTime,\n detail: {\n devtools: {\n color: \"error\",\n track: COMPONENTS_TRACK,\n tooltipText:\n 13 === fiber.tag\n ? \"Hydration failed\"\n : \"Error boundary caught an error\",\n properties: properties\n }\n }\n };\n debugTask\n ? debugTask.run(\n performance.measure.bind(performance, \"\\u200b\" + name, fiber)\n )\n : performance.measure(\"\\u200b\" + name, fiber);\n }\n }\n }\n function logComponentEffect(fiber, startTime, endTime, selfTime, errors) {\n if (null !== errors) {\n if (supportsUserTiming) {\n var name = getComponentNameFromFiber(fiber);\n if (null !== name) {\n selfTime = [];\n for (var i = 0; i < errors.length; i++) {\n var error = errors[i].value;\n selfTime.push([\n \"Error\",\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error)\n ]);\n }\n null !== fiber.key &&\n addValueToProperties(\"key\", fiber.key, selfTime, 0, \"\");\n null !== fiber.memoizedProps &&\n addObjectToProperties(fiber.memoizedProps, selfTime, 0, \"\");\n startTime = {\n start: startTime,\n end: endTime,\n detail: {\n devtools: {\n color: \"error\",\n track: COMPONENTS_TRACK,\n tooltipText: \"A lifecycle or effect errored\",\n properties: selfTime\n }\n }\n };\n (fiber = fiber._debugTask)\n ? fiber.run(\n performance.measure.bind(\n performance,\n \"\\u200b\" + name,\n startTime\n )\n )\n : performance.measure(\"\\u200b\" + name, startTime);\n }\n }\n } else\n (name = getComponentNameFromFiber(fiber)),\n null !== name &&\n supportsUserTiming &&\n ((errors =\n 1 > selfTime\n ? \"secondary-light\"\n : 100 > selfTime\n ? \"secondary\"\n : 500 > selfTime\n ? \"secondary-dark\"\n : \"error\"),\n (fiber = fiber._debugTask)\n ? fiber.run(\n console.timeStamp.bind(\n console,\n name,\n startTime,\n endTime,\n COMPONENTS_TRACK,\n void 0,\n errors\n )\n )\n : console.timeStamp(\n name,\n startTime,\n endTime,\n COMPONENTS_TRACK,\n void 0,\n errors\n ));\n }\n function logRenderPhase(startTime, endTime, lanes, debugTask) {\n if (supportsUserTiming && !(endTime <= startTime)) {\n var color =\n (lanes & 738197653) === lanes ? \"tertiary-dark\" : \"primary-dark\";\n lanes =\n (lanes & 536870912) === lanes\n ? \"Prepared\"\n : (lanes & 201326741) === lanes\n ? \"Hydrated\"\n : \"Render\";\n debugTask\n ? debugTask.run(\n console.timeStamp.bind(\n console,\n lanes,\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n color\n )\n )\n : console.timeStamp(\n lanes,\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n color\n );\n }\n }\n function logSuspendedRenderPhase(startTime, endTime, lanes, debugTask) {\n !supportsUserTiming ||\n endTime <= startTime ||\n ((lanes =\n (lanes & 738197653) === lanes ? \"tertiary-dark\" : \"primary-dark\"),\n debugTask\n ? debugTask.run(\n console.timeStamp.bind(\n console,\n \"Prewarm\",\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n lanes\n )\n )\n : console.timeStamp(\n \"Prewarm\",\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n lanes\n ));\n }\n function logSuspendedWithDelayPhase(startTime, endTime, lanes, debugTask) {\n !supportsUserTiming ||\n endTime <= startTime ||\n ((lanes =\n (lanes & 738197653) === lanes ? \"tertiary-dark\" : \"primary-dark\"),\n debugTask\n ? debugTask.run(\n console.timeStamp.bind(\n console,\n \"Suspended\",\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n lanes\n )\n )\n : console.timeStamp(\n \"Suspended\",\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n lanes\n ));\n }\n function logRecoveredRenderPhase(\n startTime,\n endTime,\n lanes,\n recoverableErrors,\n hydrationFailed,\n debugTask\n ) {\n if (supportsUserTiming && !(endTime <= startTime)) {\n lanes = [];\n for (var i = 0; i < recoverableErrors.length; i++) {\n var error = recoverableErrors[i].value;\n lanes.push([\n \"Recoverable Error\",\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error)\n ]);\n }\n startTime = {\n start: startTime,\n end: endTime,\n detail: {\n devtools: {\n color: \"primary-dark\",\n track: currentTrack,\n trackGroup: LANES_TRACK_GROUP,\n tooltipText: hydrationFailed\n ? \"Hydration Failed\"\n : \"Recovered after Error\",\n properties: lanes\n }\n }\n };\n debugTask\n ? debugTask.run(\n performance.measure.bind(performance, \"Recovered\", startTime)\n )\n : performance.measure(\"Recovered\", startTime);\n }\n }\n function logErroredRenderPhase(startTime, endTime, lanes, debugTask) {\n !supportsUserTiming ||\n endTime <= startTime ||\n (debugTask\n ? debugTask.run(\n console.timeStamp.bind(\n console,\n \"Errored\",\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"error\"\n )\n )\n : console.timeStamp(\n \"Errored\",\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"error\"\n ));\n }\n function logSuspendedCommitPhase(startTime, endTime, reason, debugTask) {\n !supportsUserTiming ||\n endTime <= startTime ||\n (debugTask\n ? debugTask.run(\n console.timeStamp.bind(\n console,\n reason,\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"secondary-light\"\n )\n )\n : console.timeStamp(\n reason,\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"secondary-light\"\n ));\n }\n function logCommitErrored(startTime, endTime, errors, passive, debugTask) {\n if (supportsUserTiming && !(endTime <= startTime)) {\n for (var properties = [], i = 0; i < errors.length; i++) {\n var error = errors[i].value;\n properties.push([\n \"Error\",\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error)\n ]);\n }\n startTime = {\n start: startTime,\n end: endTime,\n detail: {\n devtools: {\n color: \"error\",\n track: currentTrack,\n trackGroup: LANES_TRACK_GROUP,\n tooltipText: passive\n ? \"Remaining Effects Errored\"\n : \"Commit Errored\",\n properties: properties\n }\n }\n };\n debugTask\n ? debugTask.run(\n performance.measure.bind(performance, \"Errored\", startTime)\n )\n : performance.measure(\"Errored\", startTime);\n }\n }\n function logAnimatingPhase(startTime, endTime, debugTask) {\n !supportsUserTiming ||\n endTime <= startTime ||\n (debugTask\n ? debugTask.run(\n console.timeStamp.bind(\n console,\n \"Animating\",\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"secondary-dark\"\n )\n )\n : console.timeStamp(\n \"Animating\",\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"secondary-dark\"\n ));\n }\n function finishQueueingConcurrentUpdates() {\n for (\n var endIndex = concurrentQueuesIndex,\n i = (concurrentlyUpdatedLanes = concurrentQueuesIndex = 0);\n i < endIndex;\n\n ) {\n var fiber = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var queue = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var update = concurrentQueues[i];\n concurrentQueues[i++] = null;\n var lane = concurrentQueues[i];\n concurrentQueues[i++] = null;\n if (null !== queue && null !== update) {\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n 0 !== lane && markUpdateLaneFromFiberToRoot(fiber, update, lane);\n }\n }\n function enqueueUpdate$1(fiber, queue, update, lane) {\n concurrentQueues[concurrentQueuesIndex++] = fiber;\n concurrentQueues[concurrentQueuesIndex++] = queue;\n concurrentQueues[concurrentQueuesIndex++] = update;\n concurrentQueues[concurrentQueuesIndex++] = lane;\n concurrentlyUpdatedLanes |= lane;\n fiber.lanes |= lane;\n fiber = fiber.alternate;\n null !== fiber && (fiber.lanes |= lane);\n }\n function enqueueConcurrentHookUpdate(fiber, queue, update, lane) {\n enqueueUpdate$1(fiber, queue, update, lane);\n return getRootForUpdatedFiber(fiber);\n }\n function enqueueConcurrentRenderForLane(fiber, lane) {\n enqueueUpdate$1(fiber, null, null, lane);\n return getRootForUpdatedFiber(fiber);\n }\n function markUpdateLaneFromFiberToRoot(sourceFiber, update, lane) {\n sourceFiber.lanes |= lane;\n var alternate = sourceFiber.alternate;\n null !== alternate && (alternate.lanes |= lane);\n for (var isHidden = !1, parent = sourceFiber.return; null !== parent; )\n (parent.childLanes |= lane),\n (alternate = parent.alternate),\n null !== alternate && (alternate.childLanes |= lane),\n 22 === parent.tag &&\n ((sourceFiber = parent.stateNode),\n null === sourceFiber ||\n sourceFiber._visibility & OffscreenVisible ||\n (isHidden = !0)),\n (sourceFiber = parent),\n (parent = parent.return);\n return 3 === sourceFiber.tag\n ? ((parent = sourceFiber.stateNode),\n isHidden &&\n null !== update &&\n ((isHidden = 31 - clz32(lane)),\n (sourceFiber = parent.hiddenUpdates),\n (alternate = sourceFiber[isHidden]),\n null === alternate\n ? (sourceFiber[isHidden] = [update])\n : alternate.push(update),\n (update.lane = lane | 536870912)),\n parent)\n : null;\n }\n function getRootForUpdatedFiber(sourceFiber) {\n if (nestedUpdateCount > NESTED_UPDATE_LIMIT)\n throw (\n ((nestedPassiveUpdateCount = nestedUpdateCount = 0),\n (rootWithPassiveNestedUpdates = rootWithNestedUpdates = null),\n Error(\n \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\"\n ))\n );\n nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT &&\n ((nestedPassiveUpdateCount = 0),\n (rootWithPassiveNestedUpdates = null),\n console.error(\n \"Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render.\"\n ));\n null === sourceFiber.alternate &&\n 0 !== (sourceFiber.flags & 4098) &&\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n for (var node = sourceFiber, parent = node.return; null !== parent; )\n null === node.alternate &&\n 0 !== (node.flags & 4098) &&\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber),\n (node = parent),\n (parent = node.return);\n return 3 === node.tag ? node.stateNode : null;\n }\n function resolveFunctionForHotReloading(type) {\n if (null === resolveFamily) return type;\n var family = resolveFamily(type);\n return void 0 === family ? type : family.current;\n }\n function resolveForwardRefForHotReloading(type) {\n if (null === resolveFamily) return type;\n var family = resolveFamily(type);\n return void 0 === family\n ? null !== type &&\n void 0 !== type &&\n \"function\" === typeof type.render &&\n ((family = resolveFunctionForHotReloading(type.render)),\n type.render !== family)\n ? ((family = { $$typeof: REACT_FORWARD_REF_TYPE, render: family }),\n void 0 !== type.displayName &&\n (family.displayName = type.displayName),\n family)\n : type\n : family.current;\n }\n function isCompatibleFamilyForHotReloading(fiber, element) {\n if (null === resolveFamily) return !1;\n var prevType = fiber.elementType;\n element = element.type;\n var needsCompareFamilies = !1,\n $$typeofNextType =\n \"object\" === typeof element && null !== element\n ? element.$$typeof\n : null;\n switch (fiber.tag) {\n case 1:\n \"function\" === typeof element && (needsCompareFamilies = !0);\n break;\n case 0:\n \"function\" === typeof element\n ? (needsCompareFamilies = !0)\n : $$typeofNextType === REACT_LAZY_TYPE &&\n (needsCompareFamilies = !0);\n break;\n case 11:\n $$typeofNextType === REACT_FORWARD_REF_TYPE\n ? (needsCompareFamilies = !0)\n : $$typeofNextType === REACT_LAZY_TYPE &&\n (needsCompareFamilies = !0);\n break;\n case 14:\n case 15:\n $$typeofNextType === REACT_MEMO_TYPE\n ? (needsCompareFamilies = !0)\n : $$typeofNextType === REACT_LAZY_TYPE &&\n (needsCompareFamilies = !0);\n break;\n default:\n return !1;\n }\n return needsCompareFamilies &&\n ((fiber = resolveFamily(prevType)),\n void 0 !== fiber && fiber === resolveFamily(element))\n ? !0\n : !1;\n }\n function markFailedErrorBoundaryForHotReloading(fiber) {\n null !== resolveFamily &&\n \"function\" === typeof WeakSet &&\n (null === failedBoundaries && (failedBoundaries = new WeakSet()),\n failedBoundaries.add(fiber));\n }\n function scheduleFibersWithFamiliesRecursively(\n fiber,\n updatedFamilies,\n staleFamilies\n ) {\n do {\n var _fiber = fiber,\n alternate = _fiber.alternate,\n child = _fiber.child,\n sibling = _fiber.sibling,\n tag = _fiber.tag;\n _fiber = _fiber.type;\n var candidateType = null;\n switch (tag) {\n case 0:\n case 15:\n case 1:\n candidateType = _fiber;\n break;\n case 11:\n candidateType = _fiber.render;\n }\n if (null === resolveFamily)\n throw Error(\"Expected resolveFamily to be set during hot reload.\");\n var needsRender = !1;\n _fiber = !1;\n null !== candidateType &&\n ((candidateType = resolveFamily(candidateType)),\n void 0 !== candidateType &&\n (staleFamilies.has(candidateType)\n ? (_fiber = !0)\n : updatedFamilies.has(candidateType) &&\n (1 === tag ? (_fiber = !0) : (needsRender = !0))));\n null !== failedBoundaries &&\n (failedBoundaries.has(fiber) ||\n (null !== alternate && failedBoundaries.has(alternate))) &&\n (_fiber = !0);\n _fiber && (fiber._debugNeedsRemount = !0);\n if (_fiber || needsRender)\n (alternate = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== alternate && scheduleUpdateOnFiber(alternate, fiber, 2);\n null === child ||\n _fiber ||\n scheduleFibersWithFamiliesRecursively(\n child,\n updatedFamilies,\n staleFamilies\n );\n if (null === sibling) break;\n fiber = sibling;\n } while (1);\n }\n function FiberNode(tag, pendingProps, key, mode) {\n this.tag = tag;\n this.key = key;\n this.sibling =\n this.child =\n this.return =\n this.stateNode =\n this.type =\n this.elementType =\n null;\n this.index = 0;\n this.refCleanup = this.ref = null;\n this.pendingProps = pendingProps;\n this.dependencies =\n this.memoizedState =\n this.updateQueue =\n this.memoizedProps =\n null;\n this.mode = mode;\n this.subtreeFlags = this.flags = 0;\n this.deletions = null;\n this.childLanes = this.lanes = 0;\n this.alternate = null;\n this.actualDuration = -0;\n this.actualStartTime = -1.1;\n this.treeBaseDuration = this.selfBaseDuration = -0;\n this._debugTask =\n this._debugStack =\n this._debugOwner =\n this._debugInfo =\n null;\n this._debugNeedsRemount = !1;\n this._debugHookTypes = null;\n hasBadMapPolyfill ||\n \"function\" !== typeof Object.preventExtensions ||\n Object.preventExtensions(this);\n }\n function shouldConstruct(Component) {\n Component = Component.prototype;\n return !(!Component || !Component.isReactComponent);\n }\n function createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n null === workInProgress\n ? ((workInProgress = createFiber(\n current.tag,\n pendingProps,\n current.key,\n current.mode\n )),\n (workInProgress.elementType = current.elementType),\n (workInProgress.type = current.type),\n (workInProgress.stateNode = current.stateNode),\n (workInProgress._debugOwner = current._debugOwner),\n (workInProgress._debugStack = current._debugStack),\n (workInProgress._debugTask = current._debugTask),\n (workInProgress._debugHookTypes = current._debugHookTypes),\n (workInProgress.alternate = current),\n (current.alternate = workInProgress))\n : ((workInProgress.pendingProps = pendingProps),\n (workInProgress.type = current.type),\n (workInProgress.flags = 0),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.actualDuration = -0),\n (workInProgress.actualStartTime = -1.1));\n workInProgress.flags = current.flags & 65011712;\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue;\n pendingProps = current.dependencies;\n workInProgress.dependencies =\n null === pendingProps\n ? null\n : {\n lanes: pendingProps.lanes,\n firstContext: pendingProps.firstContext,\n _debugThenableState: pendingProps._debugThenableState\n };\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n workInProgress.refCleanup = current.refCleanup;\n workInProgress.selfBaseDuration = current.selfBaseDuration;\n workInProgress.treeBaseDuration = current.treeBaseDuration;\n workInProgress._debugInfo = current._debugInfo;\n workInProgress._debugNeedsRemount = current._debugNeedsRemount;\n switch (workInProgress.tag) {\n case 0:\n case 15:\n workInProgress.type = resolveFunctionForHotReloading(current.type);\n break;\n case 1:\n workInProgress.type = resolveFunctionForHotReloading(current.type);\n break;\n case 11:\n workInProgress.type = resolveForwardRefForHotReloading(current.type);\n }\n return workInProgress;\n }\n function resetWorkInProgress(workInProgress, renderLanes) {\n workInProgress.flags &= 65011714;\n var current = workInProgress.alternate;\n null === current\n ? ((workInProgress.childLanes = 0),\n (workInProgress.lanes = renderLanes),\n (workInProgress.child = null),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.memoizedProps = null),\n (workInProgress.memoizedState = null),\n (workInProgress.updateQueue = null),\n (workInProgress.dependencies = null),\n (workInProgress.stateNode = null),\n (workInProgress.selfBaseDuration = 0),\n (workInProgress.treeBaseDuration = 0))\n : ((workInProgress.childLanes = current.childLanes),\n (workInProgress.lanes = current.lanes),\n (workInProgress.child = current.child),\n (workInProgress.subtreeFlags = 0),\n (workInProgress.deletions = null),\n (workInProgress.memoizedProps = current.memoizedProps),\n (workInProgress.memoizedState = current.memoizedState),\n (workInProgress.updateQueue = current.updateQueue),\n (workInProgress.type = current.type),\n (renderLanes = current.dependencies),\n (workInProgress.dependencies =\n null === renderLanes\n ? null\n : {\n lanes: renderLanes.lanes,\n firstContext: renderLanes.firstContext,\n _debugThenableState: renderLanes._debugThenableState\n }),\n (workInProgress.selfBaseDuration = current.selfBaseDuration),\n (workInProgress.treeBaseDuration = current.treeBaseDuration));\n return workInProgress;\n }\n function createFiberFromTypeAndProps(\n type,\n key,\n pendingProps,\n owner,\n mode,\n lanes\n ) {\n var fiberTag = 0,\n resolvedType = type;\n if (\"function\" === typeof type)\n shouldConstruct(type) && (fiberTag = 1),\n (resolvedType = resolveFunctionForHotReloading(resolvedType));\n else if (\"string\" === typeof type)\n (fiberTag = getHostContext()),\n (fiberTag = isHostHoistableType(type, pendingProps, fiberTag)\n ? 26\n : \"html\" === type || \"head\" === type || \"body\" === type\n ? 27\n : 5);\n else\n a: switch (type) {\n case REACT_ACTIVITY_TYPE:\n return (\n (key = createFiber(31, pendingProps, key, mode)),\n (key.elementType = REACT_ACTIVITY_TYPE),\n (key.lanes = lanes),\n key\n );\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(\n pendingProps.children,\n mode,\n lanes,\n key\n );\n case REACT_STRICT_MODE_TYPE:\n fiberTag = 8;\n mode |= StrictLegacyMode;\n mode |= StrictEffectsMode;\n break;\n case REACT_PROFILER_TYPE:\n return (\n (type = pendingProps),\n (owner = mode),\n \"string\" !== typeof type.id &&\n console.error(\n 'Profiler must specify an \"id\" of type `string` as a prop. Received the type `%s` instead.',\n typeof type.id\n ),\n (key = createFiber(12, type, key, owner | ProfileMode)),\n (key.elementType = REACT_PROFILER_TYPE),\n (key.lanes = lanes),\n (key.stateNode = { effectDuration: 0, passiveEffectDuration: 0 }),\n key\n );\n case REACT_SUSPENSE_TYPE:\n return (\n (key = createFiber(13, pendingProps, key, mode)),\n (key.elementType = REACT_SUSPENSE_TYPE),\n (key.lanes = lanes),\n key\n );\n case REACT_SUSPENSE_LIST_TYPE:\n return (\n (key = createFiber(19, pendingProps, key, mode)),\n (key.elementType = REACT_SUSPENSE_LIST_TYPE),\n (key.lanes = lanes),\n key\n );\n default:\n if (\"object\" === typeof type && null !== type)\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n fiberTag = 10;\n break a;\n case REACT_CONSUMER_TYPE:\n fiberTag = 9;\n break a;\n case REACT_FORWARD_REF_TYPE:\n fiberTag = 11;\n resolvedType = resolveForwardRefForHotReloading(resolvedType);\n break a;\n case REACT_MEMO_TYPE:\n fiberTag = 14;\n break a;\n case REACT_LAZY_TYPE:\n fiberTag = 16;\n resolvedType = null;\n break a;\n }\n resolvedType = \"\";\n if (\n void 0 === type ||\n (\"object\" === typeof type &&\n null !== type &&\n 0 === Object.keys(type).length)\n )\n resolvedType +=\n \" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\";\n null === type\n ? (pendingProps = \"null\")\n : isArrayImpl(type)\n ? (pendingProps = \"array\")\n : void 0 !== type && type.$$typeof === REACT_ELEMENT_TYPE\n ? ((pendingProps =\n \"<\" +\n (getComponentNameFromType(type.type) || \"Unknown\") +\n \" />\"),\n (resolvedType =\n \" Did you accidentally export a JSX literal instead of a component?\"))\n : (pendingProps = typeof type);\n (fiberTag = owner ? getComponentNameFromOwner(owner) : null) &&\n (resolvedType +=\n \"\\n\\nCheck the render method of `\" + fiberTag + \"`.\");\n fiberTag = 29;\n pendingProps = Error(\n \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" +\n (pendingProps + \".\" + resolvedType)\n );\n resolvedType = null;\n }\n key = createFiber(fiberTag, pendingProps, key, mode);\n key.elementType = type;\n key.type = resolvedType;\n key.lanes = lanes;\n key._debugOwner = owner;\n return key;\n }\n function createFiberFromElement(element, mode, lanes) {\n mode = createFiberFromTypeAndProps(\n element.type,\n element.key,\n element.props,\n element._owner,\n mode,\n lanes\n );\n mode._debugOwner = element._owner;\n mode._debugStack = element._debugStack;\n mode._debugTask = element._debugTask;\n return mode;\n }\n function createFiberFromFragment(elements, mode, lanes, key) {\n elements = createFiber(7, elements, key, mode);\n elements.lanes = lanes;\n return elements;\n }\n function createFiberFromText(content, mode, lanes) {\n content = createFiber(6, content, null, mode);\n content.lanes = lanes;\n return content;\n }\n function createFiberFromDehydratedFragment(dehydratedNode) {\n var fiber = createFiber(18, null, null, NoMode);\n fiber.stateNode = dehydratedNode;\n return fiber;\n }\n function createFiberFromPortal(portal, mode, lanes) {\n mode = createFiber(\n 4,\n null !== portal.children ? portal.children : [],\n portal.key,\n mode\n );\n mode.lanes = lanes;\n mode.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n implementation: portal.implementation\n };\n return mode;\n }\n function createCapturedValueAtFiber(value, source) {\n if (\"object\" === typeof value && null !== value) {\n var existing = CapturedStacks.get(value);\n if (void 0 !== existing) return existing;\n source = {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n CapturedStacks.set(value, source);\n return source;\n }\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n }\n function pushTreeFork(workInProgress, totalChildren) {\n warnIfNotHydrating();\n forkStack[forkStackIndex++] = treeForkCount;\n forkStack[forkStackIndex++] = treeForkProvider;\n treeForkProvider = workInProgress;\n treeForkCount = totalChildren;\n }\n function pushTreeId(workInProgress, totalChildren, index) {\n warnIfNotHydrating();\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextProvider = workInProgress;\n var baseIdWithLeadingBit = treeContextId;\n workInProgress = treeContextOverflow;\n var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1;\n baseIdWithLeadingBit &= ~(1 << baseLength);\n index += 1;\n var length = 32 - clz32(totalChildren) + baseLength;\n if (30 < length) {\n var numberOfOverflowBits = baseLength - (baseLength % 5);\n length = (\n baseIdWithLeadingBit &\n ((1 << numberOfOverflowBits) - 1)\n ).toString(32);\n baseIdWithLeadingBit >>= numberOfOverflowBits;\n baseLength -= numberOfOverflowBits;\n treeContextId =\n (1 << (32 - clz32(totalChildren) + baseLength)) |\n (index << baseLength) |\n baseIdWithLeadingBit;\n treeContextOverflow = length + workInProgress;\n } else\n (treeContextId =\n (1 << length) | (index << baseLength) | baseIdWithLeadingBit),\n (treeContextOverflow = workInProgress);\n }\n function pushMaterializedTreeId(workInProgress) {\n warnIfNotHydrating();\n null !== workInProgress.return &&\n (pushTreeFork(workInProgress, 1), pushTreeId(workInProgress, 1, 0));\n }\n function popTreeContext(workInProgress) {\n for (; workInProgress === treeForkProvider; )\n (treeForkProvider = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null),\n (treeForkCount = forkStack[--forkStackIndex]),\n (forkStack[forkStackIndex] = null);\n for (; workInProgress === treeContextProvider; )\n (treeContextProvider = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextOverflow = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null),\n (treeContextId = idStack[--idStackIndex]),\n (idStack[idStackIndex] = null);\n }\n function getSuspendedTreeContext() {\n warnIfNotHydrating();\n return null !== treeContextProvider\n ? { id: treeContextId, overflow: treeContextOverflow }\n : null;\n }\n function restoreSuspendedTreeContext(workInProgress, suspendedContext) {\n warnIfNotHydrating();\n idStack[idStackIndex++] = treeContextId;\n idStack[idStackIndex++] = treeContextOverflow;\n idStack[idStackIndex++] = treeContextProvider;\n treeContextId = suspendedContext.id;\n treeContextOverflow = suspendedContext.overflow;\n treeContextProvider = workInProgress;\n }\n function warnIfNotHydrating() {\n isHydrating ||\n console.error(\n \"Expected to be hydrating. This is a bug in React. Please file an issue.\"\n );\n }\n function buildHydrationDiffNode(fiber, distanceFromLeaf) {\n if (null === fiber.return) {\n if (null === hydrationDiffRootDEV)\n hydrationDiffRootDEV = {\n fiber: fiber,\n children: [],\n serverProps: void 0,\n serverTail: [],\n distanceFromLeaf: distanceFromLeaf\n };\n else {\n if (hydrationDiffRootDEV.fiber !== fiber)\n throw Error(\n \"Saw multiple hydration diff roots in a pass. This is a bug in React.\"\n );\n hydrationDiffRootDEV.distanceFromLeaf > distanceFromLeaf &&\n (hydrationDiffRootDEV.distanceFromLeaf = distanceFromLeaf);\n }\n return hydrationDiffRootDEV;\n }\n var siblings = buildHydrationDiffNode(\n fiber.return,\n distanceFromLeaf + 1\n ).children;\n if (0 < siblings.length && siblings[siblings.length - 1].fiber === fiber)\n return (\n (siblings = siblings[siblings.length - 1]),\n siblings.distanceFromLeaf > distanceFromLeaf &&\n (siblings.distanceFromLeaf = distanceFromLeaf),\n siblings\n );\n distanceFromLeaf = {\n fiber: fiber,\n children: [],\n serverProps: void 0,\n serverTail: [],\n distanceFromLeaf: distanceFromLeaf\n };\n siblings.push(distanceFromLeaf);\n return distanceFromLeaf;\n }\n function warnIfHydrating() {\n isHydrating &&\n console.error(\n \"We should not be hydrating here. This is a bug in React. Please file a bug.\"\n );\n }\n function warnNonHydratedInstance(fiber, rejectedCandidate) {\n didSuspendOrErrorDEV ||\n ((fiber = buildHydrationDiffNode(fiber, 0)),\n (fiber.serverProps = null),\n null !== rejectedCandidate &&\n ((rejectedCandidate =\n describeHydratableInstanceForDevWarnings(rejectedCandidate)),\n fiber.serverTail.push(rejectedCandidate)));\n }\n function throwOnHydrationMismatch(fiber) {\n var fromText =\n 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : !1,\n diff = \"\",\n diffRoot = hydrationDiffRootDEV;\n null !== diffRoot &&\n ((hydrationDiffRootDEV = null), (diff = describeDiff(diffRoot)));\n queueHydrationError(\n createCapturedValueAtFiber(\n Error(\n \"Hydration failed because the server rendered \" +\n (fromText ? \"text\" : \"HTML\") +\n \" didn't match the client. As a result this tree will be regenerated on the client. This can happen if a SSR-ed Client Component used:\\n\\n- A server/client branch `if (typeof window !== 'undefined')`.\\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\\n- Date formatting in a user's locale which doesn't match the server.\\n- External changing data without sending a snapshot of it along with the HTML.\\n- Invalid HTML tag nesting.\\n\\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\\n\\nhttps://react.dev/link/hydration-mismatch\" +\n diff\n ),\n fiber\n )\n );\n throw HydrationMismatchException;\n }\n function prepareToHydrateHostInstance(fiber) {\n var didHydrate = fiber.stateNode;\n var type = fiber.type,\n props = fiber.memoizedProps;\n didHydrate[internalInstanceKey] = fiber;\n didHydrate[internalPropsKey] = props;\n validatePropertiesInDevelopment(type, props);\n switch (type) {\n case \"dialog\":\n listenToNonDelegatedEvent(\"cancel\", didHydrate);\n listenToNonDelegatedEvent(\"close\", didHydrate);\n break;\n case \"iframe\":\n case \"object\":\n case \"embed\":\n listenToNonDelegatedEvent(\"load\", didHydrate);\n break;\n case \"video\":\n case \"audio\":\n for (type = 0; type < mediaEventTypes.length; type++)\n listenToNonDelegatedEvent(mediaEventTypes[type], didHydrate);\n break;\n case \"source\":\n listenToNonDelegatedEvent(\"error\", didHydrate);\n break;\n case \"img\":\n case \"image\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", didHydrate);\n listenToNonDelegatedEvent(\"load\", didHydrate);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", didHydrate);\n break;\n case \"input\":\n checkControlledValueProps(\"input\", props);\n listenToNonDelegatedEvent(\"invalid\", didHydrate);\n validateInputProps(didHydrate, props);\n initInput(\n didHydrate,\n props.value,\n props.defaultValue,\n props.checked,\n props.defaultChecked,\n props.type,\n props.name,\n !0\n );\n break;\n case \"option\":\n validateOptionProps(didHydrate, props);\n break;\n case \"select\":\n checkControlledValueProps(\"select\", props);\n listenToNonDelegatedEvent(\"invalid\", didHydrate);\n validateSelectProps(didHydrate, props);\n break;\n case \"textarea\":\n checkControlledValueProps(\"textarea\", props),\n listenToNonDelegatedEvent(\"invalid\", didHydrate),\n validateTextareaProps(didHydrate, props),\n initTextarea(\n didHydrate,\n props.value,\n props.defaultValue,\n props.children\n );\n }\n type = props.children;\n (\"string\" !== typeof type &&\n \"number\" !== typeof type &&\n \"bigint\" !== typeof type) ||\n didHydrate.textContent === \"\" + type ||\n !0 === props.suppressHydrationWarning ||\n checkForUnmatchedText(didHydrate.textContent, type)\n ? (null != props.popover &&\n (listenToNonDelegatedEvent(\"beforetoggle\", didHydrate),\n listenToNonDelegatedEvent(\"toggle\", didHydrate)),\n null != props.onScroll &&\n listenToNonDelegatedEvent(\"scroll\", didHydrate),\n null != props.onScrollEnd &&\n listenToNonDelegatedEvent(\"scrollend\", didHydrate),\n null != props.onClick && (didHydrate.onclick = noop$1),\n (didHydrate = !0))\n : (didHydrate = !1);\n didHydrate || throwOnHydrationMismatch(fiber, !0);\n }\n function popToNextHostParent(fiber) {\n for (hydrationParentFiber = fiber.return; hydrationParentFiber; )\n switch (hydrationParentFiber.tag) {\n case 5:\n case 31:\n case 13:\n rootOrSingletonContext = !1;\n return;\n case 27:\n case 3:\n rootOrSingletonContext = !0;\n return;\n default:\n hydrationParentFiber = hydrationParentFiber.return;\n }\n }\n function popHydrationState(fiber) {\n if (fiber !== hydrationParentFiber) return !1;\n if (!isHydrating)\n return popToNextHostParent(fiber), (isHydrating = !0), !1;\n var tag = fiber.tag,\n JSCompiler_temp;\n if ((JSCompiler_temp = 3 !== tag && 27 !== tag)) {\n if ((JSCompiler_temp = 5 === tag))\n (JSCompiler_temp = fiber.type),\n (JSCompiler_temp =\n !(\"form\" !== JSCompiler_temp && \"button\" !== JSCompiler_temp) ||\n shouldSetTextContent(fiber.type, fiber.memoizedProps));\n JSCompiler_temp = !JSCompiler_temp;\n }\n if (JSCompiler_temp && nextHydratableInstance) {\n for (JSCompiler_temp = nextHydratableInstance; JSCompiler_temp; ) {\n var diffNode = buildHydrationDiffNode(fiber, 0),\n description =\n describeHydratableInstanceForDevWarnings(JSCompiler_temp);\n diffNode.serverTail.push(description);\n JSCompiler_temp =\n \"Suspense\" === description.type\n ? getNextHydratableInstanceAfterHydrationBoundary(JSCompiler_temp)\n : getNextHydratable(JSCompiler_temp.nextSibling);\n }\n throwOnHydrationMismatch(fiber);\n }\n popToNextHostParent(fiber);\n if (13 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber)\n throw Error(\n \"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\"\n );\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else if (31 === tag) {\n fiber = fiber.memoizedState;\n fiber = null !== fiber ? fiber.dehydrated : null;\n if (!fiber)\n throw Error(\n \"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\"\n );\n nextHydratableInstance =\n getNextHydratableInstanceAfterHydrationBoundary(fiber);\n } else\n 27 === tag\n ? ((tag = nextHydratableInstance),\n isSingletonScope(fiber.type)\n ? ((fiber = previousHydratableOnEnteringScopedSingleton),\n (previousHydratableOnEnteringScopedSingleton = null),\n (nextHydratableInstance = fiber))\n : (nextHydratableInstance = tag))\n : (nextHydratableInstance = hydrationParentFiber\n ? getNextHydratable(fiber.stateNode.nextSibling)\n : null);\n return !0;\n }\n function resetHydrationState() {\n nextHydratableInstance = hydrationParentFiber = null;\n didSuspendOrErrorDEV = isHydrating = !1;\n }\n function upgradeHydrationErrorsToRecoverable() {\n var queuedErrors = hydrationErrors;\n null !== queuedErrors &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = queuedErrors)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n queuedErrors\n ),\n (hydrationErrors = null));\n return queuedErrors;\n }\n function queueHydrationError(error) {\n null === hydrationErrors\n ? (hydrationErrors = [error])\n : hydrationErrors.push(error);\n }\n function emitPendingHydrationWarnings() {\n var diffRoot = hydrationDiffRootDEV;\n if (null !== diffRoot) {\n hydrationDiffRootDEV = null;\n for (var diff = describeDiff(diffRoot); 0 < diffRoot.children.length; )\n diffRoot = diffRoot.children[0];\n runWithFiberInDEV(diffRoot.fiber, function () {\n console.error(\n \"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\\n\\n- A server/client branch `if (typeof window !== 'undefined')`.\\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\\n- Date formatting in a user's locale which doesn't match the server.\\n- External changing data without sending a snapshot of it along with the HTML.\\n- Invalid HTML tag nesting.\\n\\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\\n\\n%s%s\",\n \"https://react.dev/link/hydration-mismatch\",\n diff\n );\n });\n }\n }\n function resetContextDependencies() {\n lastContextDependency = currentlyRenderingFiber$1 = null;\n isDisallowedContextReadInDEV = !1;\n }\n function pushProvider(providerFiber, context, nextValue) {\n push(valueCursor, context._currentValue, providerFiber);\n context._currentValue = nextValue;\n push(rendererCursorDEV, context._currentRenderer, providerFiber);\n void 0 !== context._currentRenderer &&\n null !== context._currentRenderer &&\n context._currentRenderer !== rendererSigil &&\n console.error(\n \"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported.\"\n );\n context._currentRenderer = rendererSigil;\n }\n function popProvider(context, providerFiber) {\n context._currentValue = valueCursor.current;\n var currentRenderer = rendererCursorDEV.current;\n pop(rendererCursorDEV, providerFiber);\n context._currentRenderer = currentRenderer;\n pop(valueCursor, providerFiber);\n }\n function scheduleContextWorkOnParentPath(\n parent,\n renderLanes,\n propagationRoot\n ) {\n for (; null !== parent; ) {\n var alternate = parent.alternate;\n (parent.childLanes & renderLanes) !== renderLanes\n ? ((parent.childLanes |= renderLanes),\n null !== alternate && (alternate.childLanes |= renderLanes))\n : null !== alternate &&\n (alternate.childLanes & renderLanes) !== renderLanes &&\n (alternate.childLanes |= renderLanes);\n if (parent === propagationRoot) break;\n parent = parent.return;\n }\n parent !== propagationRoot &&\n console.error(\n \"Expected to find the propagation root when scheduling context work. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n function propagateContextChanges(\n workInProgress,\n contexts,\n renderLanes,\n forcePropagateEntireTree\n ) {\n var fiber = workInProgress.child;\n null !== fiber && (fiber.return = workInProgress);\n for (; null !== fiber; ) {\n var list = fiber.dependencies;\n if (null !== list) {\n var nextFiber = fiber.child;\n list = list.firstContext;\n a: for (; null !== list; ) {\n var dependency = list;\n list = fiber;\n for (var i = 0; i < contexts.length; i++)\n if (dependency.context === contexts[i]) {\n list.lanes |= renderLanes;\n dependency = list.alternate;\n null !== dependency && (dependency.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n list.return,\n renderLanes,\n workInProgress\n );\n forcePropagateEntireTree || (nextFiber = null);\n break a;\n }\n list = dependency.next;\n }\n } else if (18 === fiber.tag) {\n nextFiber = fiber.return;\n if (null === nextFiber)\n throw Error(\n \"We just came from a parent so we must have had a parent. This is a bug in React.\"\n );\n nextFiber.lanes |= renderLanes;\n list = nextFiber.alternate;\n null !== list && (list.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n nextFiber,\n renderLanes,\n workInProgress\n );\n nextFiber = null;\n } else nextFiber = fiber.child;\n if (null !== nextFiber) nextFiber.return = fiber;\n else\n for (nextFiber = fiber; null !== nextFiber; ) {\n if (nextFiber === workInProgress) {\n nextFiber = null;\n break;\n }\n fiber = nextFiber.sibling;\n if (null !== fiber) {\n fiber.return = nextFiber.return;\n nextFiber = fiber;\n break;\n }\n nextFiber = nextFiber.return;\n }\n fiber = nextFiber;\n }\n }\n function propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n forcePropagateEntireTree\n ) {\n current = null;\n for (\n var parent = workInProgress, isInsidePropagationBailout = !1;\n null !== parent;\n\n ) {\n if (!isInsidePropagationBailout)\n if (0 !== (parent.flags & 524288)) isInsidePropagationBailout = !0;\n else if (0 !== (parent.flags & 262144)) break;\n if (10 === parent.tag) {\n var currentParent = parent.alternate;\n if (null === currentParent)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n currentParent = currentParent.memoizedProps;\n if (null !== currentParent) {\n var context = parent.type;\n objectIs(parent.pendingProps.value, currentParent.value) ||\n (null !== current\n ? current.push(context)\n : (current = [context]));\n }\n } else if (parent === hostTransitionProviderCursor.current) {\n currentParent = parent.alternate;\n if (null === currentParent)\n throw Error(\"Should have a current fiber. This is a bug in React.\");\n currentParent.memoizedState.memoizedState !==\n parent.memoizedState.memoizedState &&\n (null !== current\n ? current.push(HostTransitionContext)\n : (current = [HostTransitionContext]));\n }\n parent = parent.return;\n }\n null !== current &&\n propagateContextChanges(\n workInProgress,\n current,\n renderLanes,\n forcePropagateEntireTree\n );\n workInProgress.flags |= 262144;\n }\n function checkIfContextChanged(currentDependencies) {\n for (\n currentDependencies = currentDependencies.firstContext;\n null !== currentDependencies;\n\n ) {\n if (\n !objectIs(\n currentDependencies.context._currentValue,\n currentDependencies.memoizedValue\n )\n )\n return !0;\n currentDependencies = currentDependencies.next;\n }\n return !1;\n }\n function prepareToReadContext(workInProgress) {\n currentlyRenderingFiber$1 = workInProgress;\n lastContextDependency = null;\n workInProgress = workInProgress.dependencies;\n null !== workInProgress && (workInProgress.firstContext = null);\n }\n function readContext(context) {\n isDisallowedContextReadInDEV &&\n console.error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n return readContextForConsumer(currentlyRenderingFiber$1, context);\n }\n function readContextDuringReconciliation(consumer, context) {\n null === currentlyRenderingFiber$1 && prepareToReadContext(consumer);\n return readContextForConsumer(consumer, context);\n }\n function readContextForConsumer(consumer, context) {\n var value = context._currentValue;\n context = { context: context, memoizedValue: value, next: null };\n if (null === lastContextDependency) {\n if (null === consumer)\n throw Error(\n \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\"\n );\n lastContextDependency = context;\n consumer.dependencies = {\n lanes: 0,\n firstContext: context,\n _debugThenableState: null\n };\n consumer.flags |= 524288;\n } else lastContextDependency = lastContextDependency.next = context;\n return value;\n }\n function createCache() {\n return {\n controller: new AbortControllerLocal(),\n data: new Map(),\n refCount: 0\n };\n }\n function retainCache(cache) {\n cache.controller.signal.aborted &&\n console.warn(\n \"A cache instance was retained after it was already freed. This likely indicates a bug in React.\"\n );\n cache.refCount++;\n }\n function releaseCache(cache) {\n cache.refCount--;\n 0 > cache.refCount &&\n console.warn(\n \"A cache instance was released after it was already freed. This likely indicates a bug in React.\"\n );\n 0 === cache.refCount &&\n scheduleCallback$2(NormalPriority, function () {\n cache.controller.abort();\n });\n }\n function startUpdateTimerByLane(lane, method, fiber) {\n if (0 !== (lane & 127))\n 0 > blockingUpdateTime &&\n ((blockingUpdateTime = now()),\n (blockingUpdateTask = createTask(method)),\n (blockingUpdateMethodName = method),\n null != fiber &&\n (blockingUpdateComponentName = getComponentNameFromFiber(fiber)),\n (executionContext & (RenderContext | CommitContext)) !== NoContext &&\n ((componentEffectSpawnedUpdate = !0),\n (blockingUpdateType = SPAWNED_UPDATE)),\n (lane = resolveEventTimeStamp()),\n (method = resolveEventType()),\n lane !== blockingEventRepeatTime || method !== blockingEventType\n ? (blockingEventRepeatTime = -1.1)\n : null !== method && (blockingUpdateType = SPAWNED_UPDATE),\n (blockingEventTime = lane),\n (blockingEventType = method));\n else if (\n 0 !== (lane & 4194048) &&\n 0 > transitionUpdateTime &&\n ((transitionUpdateTime = now()),\n (transitionUpdateTask = createTask(method)),\n (transitionUpdateMethodName = method),\n null != fiber &&\n (transitionUpdateComponentName = getComponentNameFromFiber(fiber)),\n 0 > transitionStartTime)\n ) {\n lane = resolveEventTimeStamp();\n method = resolveEventType();\n if (\n lane !== transitionEventRepeatTime ||\n method !== transitionEventType\n )\n transitionEventRepeatTime = -1.1;\n transitionEventTime = lane;\n transitionEventType = method;\n }\n }\n function startHostActionTimer(fiber) {\n if (0 > blockingUpdateTime) {\n blockingUpdateTime = now();\n blockingUpdateTask = null != fiber._debugTask ? fiber._debugTask : null;\n (executionContext & (RenderContext | CommitContext)) !== NoContext &&\n (blockingUpdateType = SPAWNED_UPDATE);\n var newEventTime = resolveEventTimeStamp(),\n newEventType = resolveEventType();\n newEventTime !== blockingEventRepeatTime ||\n newEventType !== blockingEventType\n ? (blockingEventRepeatTime = -1.1)\n : null !== newEventType && (blockingUpdateType = SPAWNED_UPDATE);\n blockingEventTime = newEventTime;\n blockingEventType = newEventType;\n }\n if (\n 0 > transitionUpdateTime &&\n ((transitionUpdateTime = now()),\n (transitionUpdateTask =\n null != fiber._debugTask ? fiber._debugTask : null),\n 0 > transitionStartTime)\n ) {\n fiber = resolveEventTimeStamp();\n newEventTime = resolveEventType();\n if (\n fiber !== transitionEventRepeatTime ||\n newEventTime !== transitionEventType\n )\n transitionEventRepeatTime = -1.1;\n transitionEventTime = fiber;\n transitionEventType = newEventTime;\n }\n }\n function pushNestedEffectDurations() {\n var prevEffectDuration = profilerEffectDuration;\n profilerEffectDuration = 0;\n return prevEffectDuration;\n }\n function popNestedEffectDurations(prevEffectDuration) {\n var elapsedTime = profilerEffectDuration;\n profilerEffectDuration = prevEffectDuration;\n return elapsedTime;\n }\n function bubbleNestedEffectDurations(prevEffectDuration) {\n var elapsedTime = profilerEffectDuration;\n profilerEffectDuration += prevEffectDuration;\n return elapsedTime;\n }\n function resetComponentEffectTimers() {\n componentEffectEndTime = componentEffectStartTime = -1.1;\n }\n function pushComponentEffectStart() {\n var prevEffectStart = componentEffectStartTime;\n componentEffectStartTime = -1.1;\n return prevEffectStart;\n }\n function popComponentEffectStart(prevEffectStart) {\n 0 <= prevEffectStart && (componentEffectStartTime = prevEffectStart);\n }\n function pushComponentEffectDuration() {\n var prevEffectDuration = componentEffectDuration;\n componentEffectDuration = -0;\n return prevEffectDuration;\n }\n function popComponentEffectDuration(prevEffectDuration) {\n 0 <= prevEffectDuration && (componentEffectDuration = prevEffectDuration);\n }\n function pushComponentEffectErrors() {\n var prevErrors = componentEffectErrors;\n componentEffectErrors = null;\n return prevErrors;\n }\n function pushComponentEffectDidSpawnUpdate() {\n var prev = componentEffectSpawnedUpdate;\n componentEffectSpawnedUpdate = !1;\n return prev;\n }\n function startProfilerTimer(fiber) {\n profilerStartTime = now();\n 0 > fiber.actualStartTime && (fiber.actualStartTime = profilerStartTime);\n }\n function stopProfilerTimerIfRunningAndRecordDuration(fiber) {\n if (0 <= profilerStartTime) {\n var elapsedTime = now() - profilerStartTime;\n fiber.actualDuration += elapsedTime;\n fiber.selfBaseDuration = elapsedTime;\n profilerStartTime = -1;\n }\n }\n function stopProfilerTimerIfRunningAndRecordIncompleteDuration(fiber) {\n if (0 <= profilerStartTime) {\n var elapsedTime = now() - profilerStartTime;\n fiber.actualDuration += elapsedTime;\n profilerStartTime = -1;\n }\n }\n function recordEffectDuration() {\n if (0 <= profilerStartTime) {\n var endTime = now(),\n elapsedTime = endTime - profilerStartTime;\n profilerStartTime = -1;\n profilerEffectDuration += elapsedTime;\n componentEffectDuration += elapsedTime;\n componentEffectEndTime = endTime;\n }\n }\n function recordEffectError(errorInfo) {\n null === componentEffectErrors && (componentEffectErrors = []);\n componentEffectErrors.push(errorInfo);\n null === commitErrors && (commitErrors = []);\n commitErrors.push(errorInfo);\n }\n function startEffectTimer() {\n profilerStartTime = now();\n 0 > componentEffectStartTime &&\n (componentEffectStartTime = profilerStartTime);\n }\n function transferActualDuration(fiber) {\n for (var child = fiber.child; child; )\n (fiber.actualDuration += child.actualDuration), (child = child.sibling);\n }\n function entangleAsyncAction(transition, thenable) {\n if (null === currentEntangledListeners) {\n var entangledListeners = (currentEntangledListeners = []);\n currentEntangledPendingCount = 0;\n currentEntangledLane = requestTransitionLane();\n currentEntangledActionThenable = {\n status: \"pending\",\n value: void 0,\n then: function (resolve) {\n entangledListeners.push(resolve);\n }\n };\n }\n currentEntangledPendingCount++;\n thenable.then(pingEngtangledActionScope, pingEngtangledActionScope);\n return thenable;\n }\n function pingEngtangledActionScope() {\n if (\n 0 === --currentEntangledPendingCount &&\n (-1 < transitionUpdateTime || (transitionStartTime = -1.1),\n null !== currentEntangledListeners)\n ) {\n null !== currentEntangledActionThenable &&\n (currentEntangledActionThenable.status = \"fulfilled\");\n var listeners = currentEntangledListeners;\n currentEntangledListeners = null;\n currentEntangledLane = 0;\n currentEntangledActionThenable = null;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])();\n }\n }\n function chainThenableValue(thenable, result) {\n var listeners = [],\n thenableWithOverride = {\n status: \"pending\",\n value: null,\n reason: null,\n then: function (resolve) {\n listeners.push(resolve);\n }\n };\n thenable.then(\n function () {\n thenableWithOverride.status = \"fulfilled\";\n thenableWithOverride.value = result;\n for (var i = 0; i < listeners.length; i++) (0, listeners[i])(result);\n },\n function (error) {\n thenableWithOverride.status = \"rejected\";\n thenableWithOverride.reason = error;\n for (error = 0; error < listeners.length; error++)\n (0, listeners[error])(void 0);\n }\n );\n return thenableWithOverride;\n }\n function peekCacheFromPool() {\n var cacheResumedFromPreviousRender = resumedCache.current;\n return null !== cacheResumedFromPreviousRender\n ? cacheResumedFromPreviousRender\n : workInProgressRoot.pooledCache;\n }\n function pushTransition(offscreenWorkInProgress, prevCachePool) {\n null === prevCachePool\n ? push(resumedCache, resumedCache.current, offscreenWorkInProgress)\n : push(resumedCache, prevCachePool.pool, offscreenWorkInProgress);\n }\n function getSuspendedCache() {\n var cacheFromPool = peekCacheFromPool();\n return null === cacheFromPool\n ? null\n : { parent: CacheContext._currentValue, pool: cacheFromPool };\n }\n function createThenableState() {\n return { didWarnAboutUncachedPromise: !1, thenables: [] };\n }\n function isThenableResolved(thenable) {\n thenable = thenable.status;\n return \"fulfilled\" === thenable || \"rejected\" === thenable;\n }\n function trackUsedThenable(thenableState, thenable, index) {\n null !== ReactSharedInternals.actQueue &&\n (ReactSharedInternals.didUsePromise = !0);\n var trackedThenables = thenableState.thenables;\n index = trackedThenables[index];\n void 0 === index\n ? trackedThenables.push(thenable)\n : index !== thenable &&\n (thenableState.didWarnAboutUncachedPromise ||\n ((thenableState.didWarnAboutUncachedPromise = !0),\n console.error(\n \"A component was suspended by an uncached promise. Creating promises inside a Client Component or hook is not yet supported, except via a Suspense-compatible library or framework.\"\n )),\n thenable.then(noop$1, noop$1),\n (thenable = index));\n if (void 0 === thenable._debugInfo) {\n thenableState = performance.now();\n trackedThenables = thenable.displayName;\n var ioInfo = {\n name:\n \"string\" === typeof trackedThenables ? trackedThenables : \"Promise\",\n start: thenableState,\n end: thenableState,\n value: thenable\n };\n thenable._debugInfo = [{ awaited: ioInfo }];\n \"fulfilled\" !== thenable.status &&\n \"rejected\" !== thenable.status &&\n ((thenableState = function () {\n ioInfo.end = performance.now();\n }),\n thenable.then(thenableState, thenableState));\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n default:\n if (\"string\" === typeof thenable.status)\n thenable.then(noop$1, noop$1);\n else {\n thenableState = workInProgressRoot;\n if (\n null !== thenableState &&\n 100 < thenableState.shellSuspendCounter\n )\n throw Error(\n \"An unknown Component is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.\"\n );\n thenableState = thenable;\n thenableState.status = \"pending\";\n thenableState.then(\n function (fulfilledValue) {\n if (\"pending\" === thenable.status) {\n var fulfilledThenable = thenable;\n fulfilledThenable.status = \"fulfilled\";\n fulfilledThenable.value = fulfilledValue;\n }\n },\n function (error) {\n if (\"pending\" === thenable.status) {\n var rejectedThenable = thenable;\n rejectedThenable.status = \"rejected\";\n rejectedThenable.reason = error;\n }\n }\n );\n }\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw (\n ((thenableState = thenable.reason),\n checkIfUseWrappedInAsyncCatch(thenableState),\n thenableState)\n );\n }\n suspendedThenable = thenable;\n needsToResetSuspendedThenableDEV = !0;\n throw SuspenseException;\n }\n }\n function resolveLazy(lazyType) {\n try {\n return callLazyInitInDEV(lazyType);\n } catch (x) {\n if (null !== x && \"object\" === typeof x && \"function\" === typeof x.then)\n throw (\n ((suspendedThenable = x),\n (needsToResetSuspendedThenableDEV = !0),\n SuspenseException)\n );\n throw x;\n }\n }\n function getSuspendedThenable() {\n if (null === suspendedThenable)\n throw Error(\n \"Expected a suspended thenable. This is a bug in React. Please file an issue.\"\n );\n var thenable = suspendedThenable;\n suspendedThenable = null;\n needsToResetSuspendedThenableDEV = !1;\n return thenable;\n }\n function checkIfUseWrappedInAsyncCatch(rejectedReason) {\n if (\n rejectedReason === SuspenseException ||\n rejectedReason === SuspenseActionException\n )\n throw Error(\n \"Hooks are not supported inside an async component. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.\"\n );\n }\n function pushDebugInfo(debugInfo) {\n var previousDebugInfo = currentDebugInfo;\n null != debugInfo &&\n (currentDebugInfo =\n null === previousDebugInfo\n ? debugInfo\n : previousDebugInfo.concat(debugInfo));\n return previousDebugInfo;\n }\n function getCurrentDebugTask() {\n var debugInfo = currentDebugInfo;\n if (null != debugInfo)\n for (var i = debugInfo.length - 1; 0 <= i; i--)\n if (null != debugInfo[i].name) {\n var debugTask = debugInfo[i].debugTask;\n if (null != debugTask) return debugTask;\n }\n return null;\n }\n function validateFragmentProps(element, fiber, returnFiber) {\n for (var keys = Object.keys(element.props), i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (\"children\" !== key && \"key\" !== key) {\n null === fiber &&\n ((fiber = createFiberFromElement(element, returnFiber.mode, 0)),\n (fiber._debugInfo = currentDebugInfo),\n (fiber.return = returnFiber));\n runWithFiberInDEV(\n fiber,\n function (erroredKey) {\n console.error(\n \"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",\n erroredKey\n );\n },\n key\n );\n break;\n }\n }\n }\n function unwrapThenable(thenable) {\n var index = thenableIndexCounter$1;\n thenableIndexCounter$1 += 1;\n null === thenableState$1 && (thenableState$1 = createThenableState());\n return trackUsedThenable(thenableState$1, thenable, index);\n }\n function coerceRef(workInProgress, element) {\n element = element.props.ref;\n workInProgress.ref = void 0 !== element ? element : null;\n }\n function throwOnInvalidObjectTypeImpl(returnFiber, newChild) {\n if (newChild.$$typeof === REACT_LEGACY_ELEMENT_TYPE)\n throw Error(\n 'A React Element from an older version of React was rendered. This is not supported. It can happen if:\\n- Multiple copies of the \"react\" package is used.\\n- A library pre-bundled an old copy of \"react\" or \"react/jsx-runtime\".\\n- A compiler tries to \"inline\" JSX instead of using the runtime.'\n );\n returnFiber = Object.prototype.toString.call(newChild);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === returnFiber\n ? \"object with keys {\" + Object.keys(newChild).join(\", \") + \"}\"\n : returnFiber) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n function throwOnInvalidObjectType(returnFiber, newChild) {\n var debugTask = getCurrentDebugTask();\n null !== debugTask\n ? debugTask.run(\n throwOnInvalidObjectTypeImpl.bind(null, returnFiber, newChild)\n )\n : throwOnInvalidObjectTypeImpl(returnFiber, newChild);\n }\n function warnOnFunctionTypeImpl(returnFiber, invalidChild) {\n var parentName = getComponentNameFromFiber(returnFiber) || \"Component\";\n ownerHasFunctionTypeWarning[parentName] ||\n ((ownerHasFunctionTypeWarning[parentName] = !0),\n (invalidChild =\n invalidChild.displayName || invalidChild.name || \"Component\"),\n 3 === returnFiber.tag\n ? console.error(\n \"Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\\n root.render(%s)\",\n invalidChild,\n invalidChild,\n invalidChild\n )\n : console.error(\n \"Functions are not valid as a React child. This may happen if you return %s instead of <%s /> from render. Or maybe you meant to call this function rather than return it.\\n <%s>{%s}</%s>\",\n invalidChild,\n invalidChild,\n parentName,\n invalidChild,\n parentName\n ));\n }\n function warnOnFunctionType(returnFiber, invalidChild) {\n var debugTask = getCurrentDebugTask();\n null !== debugTask\n ? debugTask.run(\n warnOnFunctionTypeImpl.bind(null, returnFiber, invalidChild)\n )\n : warnOnFunctionTypeImpl(returnFiber, invalidChild);\n }\n function warnOnSymbolTypeImpl(returnFiber, invalidChild) {\n var parentName = getComponentNameFromFiber(returnFiber) || \"Component\";\n ownerHasSymbolTypeWarning[parentName] ||\n ((ownerHasSymbolTypeWarning[parentName] = !0),\n (invalidChild = String(invalidChild)),\n 3 === returnFiber.tag\n ? console.error(\n \"Symbols are not valid as a React child.\\n root.render(%s)\",\n invalidChild\n )\n : console.error(\n \"Symbols are not valid as a React child.\\n <%s>%s</%s>\",\n parentName,\n invalidChild,\n parentName\n ));\n }\n function warnOnSymbolType(returnFiber, invalidChild) {\n var debugTask = getCurrentDebugTask();\n null !== debugTask\n ? debugTask.run(\n warnOnSymbolTypeImpl.bind(null, returnFiber, invalidChild)\n )\n : warnOnSymbolTypeImpl(returnFiber, invalidChild);\n }\n function createChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (shouldTrackSideEffects) {\n var deletions = returnFiber.deletions;\n null === deletions\n ? ((returnFiber.deletions = [childToDelete]),\n (returnFiber.flags |= 16))\n : deletions.push(childToDelete);\n }\n }\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) return null;\n for (; null !== currentFirstChild; )\n deleteChild(returnFiber, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return null;\n }\n function mapRemainingChildren(currentFirstChild) {\n for (var existingChildren = new Map(); null !== currentFirstChild; )\n null !== currentFirstChild.key\n ? existingChildren.set(currentFirstChild.key, currentFirstChild)\n : existingChildren.set(currentFirstChild.index, currentFirstChild),\n (currentFirstChild = currentFirstChild.sibling);\n return existingChildren;\n }\n function useFiber(fiber, pendingProps) {\n fiber = createWorkInProgress(fiber, pendingProps);\n fiber.index = 0;\n fiber.sibling = null;\n return fiber;\n }\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n if (!shouldTrackSideEffects)\n return (newFiber.flags |= 1048576), lastPlacedIndex;\n newIndex = newFiber.alternate;\n if (null !== newIndex)\n return (\n (newIndex = newIndex.index),\n newIndex < lastPlacedIndex\n ? ((newFiber.flags |= 67108866), lastPlacedIndex)\n : newIndex\n );\n newFiber.flags |= 67108866;\n return lastPlacedIndex;\n }\n function placeSingleChild(newFiber) {\n shouldTrackSideEffects &&\n null === newFiber.alternate &&\n (newFiber.flags |= 67108866);\n return newFiber;\n }\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (null === current || 6 !== current.tag)\n return (\n (current = createFiberFromText(\n textContent,\n returnFiber.mode,\n lanes\n )),\n (current.return = returnFiber),\n (current._debugOwner = returnFiber),\n (current._debugTask = returnFiber._debugTask),\n (current._debugInfo = currentDebugInfo),\n current\n );\n current = useFiber(current, textContent);\n current.return = returnFiber;\n current._debugInfo = currentDebugInfo;\n return current;\n }\n function updateElement(returnFiber, current, element, lanes) {\n var elementType = element.type;\n if (elementType === REACT_FRAGMENT_TYPE)\n return (\n (current = updateFragment(\n returnFiber,\n current,\n element.props.children,\n lanes,\n element.key\n )),\n validateFragmentProps(element, current, returnFiber),\n current\n );\n if (\n null !== current &&\n (current.elementType === elementType ||\n isCompatibleFamilyForHotReloading(current, element) ||\n (\"object\" === typeof elementType &&\n null !== elementType &&\n elementType.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(elementType) === current.type))\n )\n return (\n (current = useFiber(current, element.props)),\n coerceRef(current, element),\n (current.return = returnFiber),\n (current._debugOwner = element._owner),\n (current._debugInfo = currentDebugInfo),\n current\n );\n current = createFiberFromElement(element, returnFiber.mode, lanes);\n coerceRef(current, element);\n current.return = returnFiber;\n current._debugInfo = currentDebugInfo;\n return current;\n }\n function updatePortal(returnFiber, current, portal, lanes) {\n if (\n null === current ||\n 4 !== current.tag ||\n current.stateNode.containerInfo !== portal.containerInfo ||\n current.stateNode.implementation !== portal.implementation\n )\n return (\n (current = createFiberFromPortal(portal, returnFiber.mode, lanes)),\n (current.return = returnFiber),\n (current._debugInfo = currentDebugInfo),\n current\n );\n current = useFiber(current, portal.children || []);\n current.return = returnFiber;\n current._debugInfo = currentDebugInfo;\n return current;\n }\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (null === current || 7 !== current.tag)\n return (\n (current = createFiberFromFragment(\n fragment,\n returnFiber.mode,\n lanes,\n key\n )),\n (current.return = returnFiber),\n (current._debugOwner = returnFiber),\n (current._debugTask = returnFiber._debugTask),\n (current._debugInfo = currentDebugInfo),\n current\n );\n current = useFiber(current, fragment);\n current.return = returnFiber;\n current._debugInfo = currentDebugInfo;\n return current;\n }\n function createChild(returnFiber, newChild, lanes) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (newChild = createFiberFromText(\n \"\" + newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n (newChild._debugOwner = returnFiber),\n (newChild._debugTask = returnFiber._debugTask),\n (newChild._debugInfo = currentDebugInfo),\n newChild\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (lanes = createFiberFromElement(\n newChild,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (returnFiber = pushDebugInfo(newChild._debugInfo)),\n (lanes._debugInfo = currentDebugInfo),\n (currentDebugInfo = returnFiber),\n lanes\n );\n case REACT_PORTAL_TYPE:\n return (\n (newChild = createFiberFromPortal(\n newChild,\n returnFiber.mode,\n lanes\n )),\n (newChild.return = returnFiber),\n (newChild._debugInfo = currentDebugInfo),\n newChild\n );\n case REACT_LAZY_TYPE:\n var _prevDebugInfo = pushDebugInfo(newChild._debugInfo);\n newChild = resolveLazy(newChild);\n returnFiber = createChild(returnFiber, newChild, lanes);\n currentDebugInfo = _prevDebugInfo;\n return returnFiber;\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (lanes = createFiberFromFragment(\n newChild,\n returnFiber.mode,\n lanes,\n null\n )),\n (lanes.return = returnFiber),\n (lanes._debugOwner = returnFiber),\n (lanes._debugTask = returnFiber._debugTask),\n (returnFiber = pushDebugInfo(newChild._debugInfo)),\n (lanes._debugInfo = currentDebugInfo),\n (currentDebugInfo = returnFiber),\n lanes\n );\n if (\"function\" === typeof newChild.then)\n return (\n (_prevDebugInfo = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = createChild(\n returnFiber,\n unwrapThenable(newChild),\n lanes\n )),\n (currentDebugInfo = _prevDebugInfo),\n returnFiber\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return createChild(\n returnFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n \"function\" === typeof newChild &&\n warnOnFunctionType(returnFiber, newChild);\n \"symbol\" === typeof newChild && warnOnSymbolType(returnFiber, newChild);\n return null;\n }\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n var key = null !== oldFiber ? oldFiber.key : null;\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return null !== key\n ? null\n : updateTextNode(returnFiber, oldFiber, \"\" + newChild, lanes);\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return newChild.key === key\n ? ((key = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = updateElement(\n returnFiber,\n oldFiber,\n newChild,\n lanes\n )),\n (currentDebugInfo = key),\n returnFiber)\n : null;\n case REACT_PORTAL_TYPE:\n return newChild.key === key\n ? updatePortal(returnFiber, oldFiber, newChild, lanes)\n : null;\n case REACT_LAZY_TYPE:\n return (\n (key = pushDebugInfo(newChild._debugInfo)),\n (newChild = resolveLazy(newChild)),\n (returnFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChild,\n lanes\n )),\n (currentDebugInfo = key),\n returnFiber\n );\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild)) {\n if (null !== key) return null;\n key = pushDebugInfo(newChild._debugInfo);\n returnFiber = updateFragment(\n returnFiber,\n oldFiber,\n newChild,\n lanes,\n null\n );\n currentDebugInfo = key;\n return returnFiber;\n }\n if (\"function\" === typeof newChild.then)\n return (\n (key = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = updateSlot(\n returnFiber,\n oldFiber,\n unwrapThenable(newChild),\n lanes\n )),\n (currentDebugInfo = key),\n returnFiber\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateSlot(\n returnFiber,\n oldFiber,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n \"function\" === typeof newChild &&\n warnOnFunctionType(returnFiber, newChild);\n \"symbol\" === typeof newChild && warnOnSymbolType(returnFiber, newChild);\n return null;\n }\n function updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n ) {\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (existingChildren = existingChildren.get(newIdx) || null),\n updateTextNode(returnFiber, existingChildren, \"\" + newChild, lanes)\n );\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return (\n (newIdx =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n (existingChildren = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = updateElement(\n returnFiber,\n newIdx,\n newChild,\n lanes\n )),\n (currentDebugInfo = existingChildren),\n returnFiber\n );\n case REACT_PORTAL_TYPE:\n return (\n (existingChildren =\n existingChildren.get(\n null === newChild.key ? newIdx : newChild.key\n ) || null),\n updatePortal(returnFiber, existingChildren, newChild, lanes)\n );\n case REACT_LAZY_TYPE:\n var _prevDebugInfo7 = pushDebugInfo(newChild._debugInfo);\n newChild = resolveLazy(newChild);\n returnFiber = updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n newChild,\n lanes\n );\n currentDebugInfo = _prevDebugInfo7;\n return returnFiber;\n }\n if (isArrayImpl(newChild) || getIteratorFn(newChild))\n return (\n (newIdx = existingChildren.get(newIdx) || null),\n (existingChildren = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = updateFragment(\n returnFiber,\n newIdx,\n newChild,\n lanes,\n null\n )),\n (currentDebugInfo = existingChildren),\n returnFiber\n );\n if (\"function\" === typeof newChild.then)\n return (\n (_prevDebugInfo7 = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n unwrapThenable(newChild),\n lanes\n )),\n (currentDebugInfo = _prevDebugInfo7),\n returnFiber\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return updateFromMap(\n existingChildren,\n returnFiber,\n newIdx,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n \"function\" === typeof newChild &&\n warnOnFunctionType(returnFiber, newChild);\n \"symbol\" === typeof newChild && warnOnSymbolType(returnFiber, newChild);\n return null;\n }\n function warnOnInvalidKey(returnFiber, workInProgress, child, knownKeys) {\n if (\"object\" !== typeof child || null === child) return knownKeys;\n switch (child.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n warnForMissingKey(returnFiber, workInProgress, child);\n var key = child.key;\n if (\"string\" !== typeof key) break;\n if (null === knownKeys) {\n knownKeys = new Set();\n knownKeys.add(key);\n break;\n }\n if (!knownKeys.has(key)) {\n knownKeys.add(key);\n break;\n }\n runWithFiberInDEV(workInProgress, function () {\n console.error(\n \"Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted \\u2014 the behavior is unsupported and could change in a future version.\",\n key\n );\n });\n break;\n case REACT_LAZY_TYPE:\n (child = resolveLazy(child)),\n warnOnInvalidKey(returnFiber, workInProgress, child, knownKeys);\n }\n return knownKeys;\n }\n function reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n for (\n var knownKeys = null,\n resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null;\n null !== oldFiber && newIdx < newChildren.length;\n newIdx++\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n lanes\n );\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n knownKeys = warnOnInvalidKey(\n returnFiber,\n newFiber,\n newChildren[newIdx],\n knownKeys\n );\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (newIdx === newChildren.length)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; newIdx < newChildren.length; newIdx++)\n (oldFiber = createChild(returnFiber, newChildren[newIdx], lanes)),\n null !== oldFiber &&\n ((knownKeys = warnOnInvalidKey(\n returnFiber,\n oldFiber,\n newChildren[newIdx],\n knownKeys\n )),\n (currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n newIdx < newChildren.length;\n newIdx++\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n newChildren[newIdx],\n lanes\n )),\n null !== nextOldFiber &&\n ((knownKeys = warnOnInvalidKey(\n returnFiber,\n nextOldFiber,\n newChildren[newIdx],\n knownKeys\n )),\n shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n ) {\n if (null == newChildren)\n throw Error(\"An iterable object provided no iterator.\");\n for (\n var resultingFirstChild = null,\n previousNewFiber = null,\n oldFiber = currentFirstChild,\n newIdx = (currentFirstChild = 0),\n nextOldFiber = null,\n knownKeys = null,\n step = newChildren.next();\n null !== oldFiber && !step.done;\n newIdx++, step = newChildren.next()\n ) {\n oldFiber.index > newIdx\n ? ((nextOldFiber = oldFiber), (oldFiber = null))\n : (nextOldFiber = oldFiber.sibling);\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n if (null === newFiber) {\n null === oldFiber && (oldFiber = nextOldFiber);\n break;\n }\n knownKeys = warnOnInvalidKey(\n returnFiber,\n newFiber,\n step.value,\n knownKeys\n );\n shouldTrackSideEffects &&\n oldFiber &&\n null === newFiber.alternate &&\n deleteChild(returnFiber, oldFiber);\n currentFirstChild = placeChild(newFiber, currentFirstChild, newIdx);\n null === previousNewFiber\n ? (resultingFirstChild = newFiber)\n : (previousNewFiber.sibling = newFiber);\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n if (step.done)\n return (\n deleteRemainingChildren(returnFiber, oldFiber),\n isHydrating && pushTreeFork(returnFiber, newIdx),\n resultingFirstChild\n );\n if (null === oldFiber) {\n for (; !step.done; newIdx++, step = newChildren.next())\n (oldFiber = createChild(returnFiber, step.value, lanes)),\n null !== oldFiber &&\n ((knownKeys = warnOnInvalidKey(\n returnFiber,\n oldFiber,\n step.value,\n knownKeys\n )),\n (currentFirstChild = placeChild(\n oldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = oldFiber)\n : (previousNewFiber.sibling = oldFiber),\n (previousNewFiber = oldFiber));\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n for (\n oldFiber = mapRemainingChildren(oldFiber);\n !step.done;\n newIdx++, step = newChildren.next()\n )\n (nextOldFiber = updateFromMap(\n oldFiber,\n returnFiber,\n newIdx,\n step.value,\n lanes\n )),\n null !== nextOldFiber &&\n ((knownKeys = warnOnInvalidKey(\n returnFiber,\n nextOldFiber,\n step.value,\n knownKeys\n )),\n shouldTrackSideEffects &&\n null !== nextOldFiber.alternate &&\n oldFiber.delete(\n null === nextOldFiber.key ? newIdx : nextOldFiber.key\n ),\n (currentFirstChild = placeChild(\n nextOldFiber,\n currentFirstChild,\n newIdx\n )),\n null === previousNewFiber\n ? (resultingFirstChild = nextOldFiber)\n : (previousNewFiber.sibling = nextOldFiber),\n (previousNewFiber = nextOldFiber));\n shouldTrackSideEffects &&\n oldFiber.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n isHydrating && pushTreeFork(returnFiber, newIdx);\n return resultingFirstChild;\n }\n function reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n ) {\n \"object\" === typeof newChild &&\n null !== newChild &&\n newChild.type === REACT_FRAGMENT_TYPE &&\n null === newChild.key &&\n (validateFragmentProps(newChild, null, returnFiber),\n (newChild = newChild.props.children));\n if (\"object\" === typeof newChild && null !== newChild) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n var prevDebugInfo = pushDebugInfo(newChild._debugInfo);\n a: {\n for (var key = newChild.key; null !== currentFirstChild; ) {\n if (currentFirstChild.key === key) {\n key = newChild.type;\n if (key === REACT_FRAGMENT_TYPE) {\n if (7 === currentFirstChild.tag) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n newChild.props.children\n );\n lanes.return = returnFiber;\n lanes._debugOwner = newChild._owner;\n lanes._debugInfo = currentDebugInfo;\n validateFragmentProps(newChild, lanes, returnFiber);\n returnFiber = lanes;\n break a;\n }\n } else if (\n currentFirstChild.elementType === key ||\n isCompatibleFamilyForHotReloading(\n currentFirstChild,\n newChild\n ) ||\n (\"object\" === typeof key &&\n null !== key &&\n key.$$typeof === REACT_LAZY_TYPE &&\n resolveLazy(key) === currentFirstChild.type)\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(currentFirstChild, newChild.props);\n coerceRef(lanes, newChild);\n lanes.return = returnFiber;\n lanes._debugOwner = newChild._owner;\n lanes._debugInfo = currentDebugInfo;\n returnFiber = lanes;\n break a;\n }\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n } else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n newChild.type === REACT_FRAGMENT_TYPE\n ? ((lanes = createFiberFromFragment(\n newChild.props.children,\n returnFiber.mode,\n lanes,\n newChild.key\n )),\n (lanes.return = returnFiber),\n (lanes._debugOwner = returnFiber),\n (lanes._debugTask = returnFiber._debugTask),\n (lanes._debugInfo = currentDebugInfo),\n validateFragmentProps(newChild, lanes, returnFiber),\n (returnFiber = lanes))\n : ((lanes = createFiberFromElement(\n newChild,\n returnFiber.mode,\n lanes\n )),\n coerceRef(lanes, newChild),\n (lanes.return = returnFiber),\n (lanes._debugInfo = currentDebugInfo),\n (returnFiber = lanes));\n }\n returnFiber = placeSingleChild(returnFiber);\n currentDebugInfo = prevDebugInfo;\n return returnFiber;\n case REACT_PORTAL_TYPE:\n a: {\n prevDebugInfo = newChild;\n for (\n newChild = prevDebugInfo.key;\n null !== currentFirstChild;\n\n ) {\n if (currentFirstChild.key === newChild)\n if (\n 4 === currentFirstChild.tag &&\n currentFirstChild.stateNode.containerInfo ===\n prevDebugInfo.containerInfo &&\n currentFirstChild.stateNode.implementation ===\n prevDebugInfo.implementation\n ) {\n deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n );\n lanes = useFiber(\n currentFirstChild,\n prevDebugInfo.children || []\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n break a;\n } else {\n deleteRemainingChildren(returnFiber, currentFirstChild);\n break;\n }\n else deleteChild(returnFiber, currentFirstChild);\n currentFirstChild = currentFirstChild.sibling;\n }\n lanes = createFiberFromPortal(\n prevDebugInfo,\n returnFiber.mode,\n lanes\n );\n lanes.return = returnFiber;\n returnFiber = lanes;\n }\n return placeSingleChild(returnFiber);\n case REACT_LAZY_TYPE:\n return (\n (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),\n (newChild = resolveLazy(newChild)),\n (returnFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )),\n (currentDebugInfo = prevDebugInfo),\n returnFiber\n );\n }\n if (isArrayImpl(newChild))\n return (\n (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = reconcileChildrenArray(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n )),\n (currentDebugInfo = prevDebugInfo),\n returnFiber\n );\n if (getIteratorFn(newChild)) {\n prevDebugInfo = pushDebugInfo(newChild._debugInfo);\n key = getIteratorFn(newChild);\n if (\"function\" !== typeof key)\n throw Error(\n \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\"\n );\n var newChildren = key.call(newChild);\n if (newChildren === newChild) {\n if (\n 0 !== returnFiber.tag ||\n \"[object GeneratorFunction]\" !==\n Object.prototype.toString.call(returnFiber.type) ||\n \"[object Generator]\" !==\n Object.prototype.toString.call(newChildren)\n )\n didWarnAboutGenerators ||\n console.error(\n \"Using Iterators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. You can also use an Iterable that can iterate multiple times over the same items.\"\n ),\n (didWarnAboutGenerators = !0);\n } else\n newChild.entries !== key ||\n didWarnAboutMaps ||\n (console.error(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0));\n returnFiber = reconcileChildrenIterator(\n returnFiber,\n currentFirstChild,\n newChildren,\n lanes\n );\n currentDebugInfo = prevDebugInfo;\n return returnFiber;\n }\n if (\"function\" === typeof newChild.then)\n return (\n (prevDebugInfo = pushDebugInfo(newChild._debugInfo)),\n (returnFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n unwrapThenable(newChild),\n lanes\n )),\n (currentDebugInfo = prevDebugInfo),\n returnFiber\n );\n if (newChild.$$typeof === REACT_CONTEXT_TYPE)\n return reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n readContextDuringReconciliation(returnFiber, newChild),\n lanes\n );\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n if (\n (\"string\" === typeof newChild && \"\" !== newChild) ||\n \"number\" === typeof newChild ||\n \"bigint\" === typeof newChild\n )\n return (\n (prevDebugInfo = \"\" + newChild),\n null !== currentFirstChild && 6 === currentFirstChild.tag\n ? (deleteRemainingChildren(\n returnFiber,\n currentFirstChild.sibling\n ),\n (lanes = useFiber(currentFirstChild, prevDebugInfo)),\n (lanes.return = returnFiber),\n (returnFiber = lanes))\n : (deleteRemainingChildren(returnFiber, currentFirstChild),\n (lanes = createFiberFromText(\n prevDebugInfo,\n returnFiber.mode,\n lanes\n )),\n (lanes.return = returnFiber),\n (lanes._debugOwner = returnFiber),\n (lanes._debugTask = returnFiber._debugTask),\n (lanes._debugInfo = currentDebugInfo),\n (returnFiber = lanes)),\n placeSingleChild(returnFiber)\n );\n \"function\" === typeof newChild &&\n warnOnFunctionType(returnFiber, newChild);\n \"symbol\" === typeof newChild && warnOnSymbolType(returnFiber, newChild);\n return deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n return function (returnFiber, currentFirstChild, newChild, lanes) {\n var prevDebugInfo = currentDebugInfo;\n currentDebugInfo = null;\n try {\n thenableIndexCounter$1 = 0;\n var firstChildFiber = reconcileChildFibersImpl(\n returnFiber,\n currentFirstChild,\n newChild,\n lanes\n );\n thenableState$1 = null;\n return firstChildFiber;\n } catch (x) {\n if (x === SuspenseException || x === SuspenseActionException) throw x;\n var fiber = createFiber(29, x, null, returnFiber.mode);\n fiber.lanes = lanes;\n fiber.return = returnFiber;\n var debugInfo = (fiber._debugInfo = currentDebugInfo);\n fiber._debugOwner = returnFiber._debugOwner;\n fiber._debugTask = returnFiber._debugTask;\n if (null != debugInfo)\n for (var i = debugInfo.length - 1; 0 <= i; i--)\n if (\"string\" === typeof debugInfo[i].stack) {\n fiber._debugOwner = debugInfo[i];\n fiber._debugTask = debugInfo[i].debugTask;\n break;\n }\n return fiber;\n } finally {\n currentDebugInfo = prevDebugInfo;\n }\n };\n }\n function validateSuspenseListNestedChild(childSlot, index) {\n var isAnArray = isArrayImpl(childSlot);\n childSlot = !isAnArray && \"function\" === typeof getIteratorFn(childSlot);\n return isAnArray || childSlot\n ? ((isAnArray = isAnArray ? \"array\" : \"iterable\"),\n console.error(\n \"A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>\",\n isAnArray,\n index,\n isAnArray\n ),\n !1)\n : !0;\n }\n function initializeUpdateQueue(fiber) {\n fiber.updateQueue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: { pending: null, lanes: 0, hiddenCallbacks: null },\n callbacks: null\n };\n }\n function cloneUpdateQueue(current, workInProgress) {\n current = current.updateQueue;\n workInProgress.updateQueue === current &&\n (workInProgress.updateQueue = {\n baseState: current.baseState,\n firstBaseUpdate: current.firstBaseUpdate,\n lastBaseUpdate: current.lastBaseUpdate,\n shared: current.shared,\n callbacks: null\n });\n }\n function createUpdate(lane) {\n return {\n lane: lane,\n tag: UpdateState,\n payload: null,\n callback: null,\n next: null\n };\n }\n function enqueueUpdate(fiber, update, lane) {\n var updateQueue = fiber.updateQueue;\n if (null === updateQueue) return null;\n updateQueue = updateQueue.shared;\n if (\n currentlyProcessingQueue === updateQueue &&\n !didWarnUpdateInsideUpdate\n ) {\n var componentName = getComponentNameFromFiber(fiber);\n console.error(\n \"An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback.\\n\\nPlease update the following component: %s\",\n componentName\n );\n didWarnUpdateInsideUpdate = !0;\n }\n if ((executionContext & RenderContext) !== NoContext)\n return (\n (componentName = updateQueue.pending),\n null === componentName\n ? (update.next = update)\n : ((update.next = componentName.next),\n (componentName.next = update)),\n (updateQueue.pending = update),\n (update = getRootForUpdatedFiber(fiber)),\n markUpdateLaneFromFiberToRoot(fiber, null, lane),\n update\n );\n enqueueUpdate$1(fiber, updateQueue, update, lane);\n return getRootForUpdatedFiber(fiber);\n }\n function entangleTransitions(root, fiber, lane) {\n fiber = fiber.updateQueue;\n if (null !== fiber && ((fiber = fiber.shared), 0 !== (lane & 4194048))) {\n var queueLanes = fiber.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n fiber.lanes = lane;\n markRootEntangled(root, lane);\n }\n }\n function enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n var queue = workInProgress.updateQueue,\n current = workInProgress.alternate;\n if (\n null !== current &&\n ((current = current.updateQueue), queue === current)\n ) {\n var newFirst = null,\n newLast = null;\n queue = queue.firstBaseUpdate;\n if (null !== queue) {\n do {\n var clone = {\n lane: queue.lane,\n tag: queue.tag,\n payload: queue.payload,\n callback: null,\n next: null\n };\n null === newLast\n ? (newFirst = newLast = clone)\n : (newLast = newLast.next = clone);\n queue = queue.next;\n } while (null !== queue);\n null === newLast\n ? (newFirst = newLast = capturedUpdate)\n : (newLast = newLast.next = capturedUpdate);\n } else newFirst = newLast = capturedUpdate;\n queue = {\n baseState: current.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: current.shared,\n callbacks: current.callbacks\n };\n workInProgress.updateQueue = queue;\n return;\n }\n workInProgress = queue.lastBaseUpdate;\n null === workInProgress\n ? (queue.firstBaseUpdate = capturedUpdate)\n : (workInProgress.next = capturedUpdate);\n queue.lastBaseUpdate = capturedUpdate;\n }\n function suspendIfUpdateReadFromEntangledAsyncAction() {\n if (didReadFromEntangledAsyncAction) {\n var entangledActionThenable = currentEntangledActionThenable;\n if (null !== entangledActionThenable) throw entangledActionThenable;\n }\n }\n function processUpdateQueue(\n workInProgress,\n props,\n instance$jscomp$0,\n renderLanes\n ) {\n didReadFromEntangledAsyncAction = !1;\n var queue = workInProgress.updateQueue;\n hasForceUpdate = !1;\n currentlyProcessingQueue = queue.shared;\n var firstBaseUpdate = queue.firstBaseUpdate,\n lastBaseUpdate = queue.lastBaseUpdate,\n pendingQueue = queue.shared.pending;\n if (null !== pendingQueue) {\n queue.shared.pending = null;\n var lastPendingUpdate = pendingQueue,\n firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null;\n null === lastBaseUpdate\n ? (firstBaseUpdate = firstPendingUpdate)\n : (lastBaseUpdate.next = firstPendingUpdate);\n lastBaseUpdate = lastPendingUpdate;\n var current = workInProgress.alternate;\n null !== current &&\n ((current = current.updateQueue),\n (pendingQueue = current.lastBaseUpdate),\n pendingQueue !== lastBaseUpdate &&\n (null === pendingQueue\n ? (current.firstBaseUpdate = firstPendingUpdate)\n : (pendingQueue.next = firstPendingUpdate),\n (current.lastBaseUpdate = lastPendingUpdate)));\n }\n if (null !== firstBaseUpdate) {\n var newState = queue.baseState;\n lastBaseUpdate = 0;\n current = firstPendingUpdate = lastPendingUpdate = null;\n pendingQueue = firstBaseUpdate;\n do {\n var updateLane = pendingQueue.lane & -536870913,\n isHiddenUpdate = updateLane !== pendingQueue.lane;\n if (\n isHiddenUpdate\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n 0 !== updateLane &&\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n null !== current &&\n (current = current.next =\n {\n lane: 0,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: null,\n next: null\n });\n a: {\n updateLane = workInProgress;\n var partialState = pendingQueue;\n var nextProps = props,\n instance = instance$jscomp$0;\n switch (partialState.tag) {\n case ReplaceState:\n partialState = partialState.payload;\n if (\"function\" === typeof partialState) {\n isDisallowedContextReadInDEV = !0;\n var nextState = partialState.call(\n instance,\n newState,\n nextProps\n );\n if (updateLane.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(!0);\n try {\n partialState.call(instance, newState, nextProps);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n isDisallowedContextReadInDEV = !1;\n newState = nextState;\n break a;\n }\n newState = partialState;\n break a;\n case CaptureUpdate:\n updateLane.flags = (updateLane.flags & -65537) | 128;\n case UpdateState:\n nextState = partialState.payload;\n if (\"function\" === typeof nextState) {\n isDisallowedContextReadInDEV = !0;\n partialState = nextState.call(\n instance,\n newState,\n nextProps\n );\n if (updateLane.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(!0);\n try {\n nextState.call(instance, newState, nextProps);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n isDisallowedContextReadInDEV = !1;\n } else partialState = nextState;\n if (null === partialState || void 0 === partialState) break a;\n newState = assign({}, newState, partialState);\n break a;\n case ForceUpdate:\n hasForceUpdate = !0;\n }\n }\n updateLane = pendingQueue.callback;\n null !== updateLane &&\n ((workInProgress.flags |= 64),\n isHiddenUpdate && (workInProgress.flags |= 8192),\n (isHiddenUpdate = queue.callbacks),\n null === isHiddenUpdate\n ? (queue.callbacks = [updateLane])\n : isHiddenUpdate.push(updateLane));\n } else\n (isHiddenUpdate = {\n lane: updateLane,\n tag: pendingQueue.tag,\n payload: pendingQueue.payload,\n callback: pendingQueue.callback,\n next: null\n }),\n null === current\n ? ((firstPendingUpdate = current = isHiddenUpdate),\n (lastPendingUpdate = newState))\n : (current = current.next = isHiddenUpdate),\n (lastBaseUpdate |= updateLane);\n pendingQueue = pendingQueue.next;\n if (null === pendingQueue)\n if (((pendingQueue = queue.shared.pending), null === pendingQueue))\n break;\n else\n (isHiddenUpdate = pendingQueue),\n (pendingQueue = isHiddenUpdate.next),\n (isHiddenUpdate.next = null),\n (queue.lastBaseUpdate = isHiddenUpdate),\n (queue.shared.pending = null);\n } while (1);\n null === current && (lastPendingUpdate = newState);\n queue.baseState = lastPendingUpdate;\n queue.firstBaseUpdate = firstPendingUpdate;\n queue.lastBaseUpdate = current;\n null === firstBaseUpdate && (queue.shared.lanes = 0);\n workInProgressRootSkippedLanes |= lastBaseUpdate;\n workInProgress.lanes = lastBaseUpdate;\n workInProgress.memoizedState = newState;\n }\n currentlyProcessingQueue = null;\n }\n function callCallback(callback, context) {\n if (\"function\" !== typeof callback)\n throw Error(\n \"Invalid argument passed as callback. Expected a function. Instead received: \" +\n callback\n );\n callback.call(context);\n }\n function commitHiddenCallbacks(updateQueue, context) {\n var hiddenCallbacks = updateQueue.shared.hiddenCallbacks;\n if (null !== hiddenCallbacks)\n for (\n updateQueue.shared.hiddenCallbacks = null, updateQueue = 0;\n updateQueue < hiddenCallbacks.length;\n updateQueue++\n )\n callCallback(hiddenCallbacks[updateQueue], context);\n }\n function commitCallbacks(updateQueue, context) {\n var callbacks = updateQueue.callbacks;\n if (null !== callbacks)\n for (\n updateQueue.callbacks = null, updateQueue = 0;\n updateQueue < callbacks.length;\n updateQueue++\n )\n callCallback(callbacks[updateQueue], context);\n }\n function pushHiddenContext(fiber, context) {\n var prevEntangledRenderLanes = entangledRenderLanes;\n push(prevEntangledRenderLanesCursor, prevEntangledRenderLanes, fiber);\n push(currentTreeHiddenStackCursor, context, fiber);\n entangledRenderLanes = prevEntangledRenderLanes | context.baseLanes;\n }\n function reuseHiddenContextOnStack(fiber) {\n push(prevEntangledRenderLanesCursor, entangledRenderLanes, fiber);\n push(\n currentTreeHiddenStackCursor,\n currentTreeHiddenStackCursor.current,\n fiber\n );\n }\n function popHiddenContext(fiber) {\n entangledRenderLanes = prevEntangledRenderLanesCursor.current;\n pop(currentTreeHiddenStackCursor, fiber);\n pop(prevEntangledRenderLanesCursor, fiber);\n }\n function pushPrimaryTreeSuspenseHandler(handler) {\n var current = handler.alternate;\n push(\n suspenseStackCursor,\n suspenseStackCursor.current & SubtreeSuspenseContextMask,\n handler\n );\n push(suspenseHandlerStackCursor, handler, handler);\n null === shellBoundary &&\n (null === current || null !== currentTreeHiddenStackCursor.current\n ? (shellBoundary = handler)\n : null !== current.memoizedState && (shellBoundary = handler));\n }\n function pushDehydratedActivitySuspenseHandler(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current, fiber);\n push(suspenseHandlerStackCursor, fiber, fiber);\n null === shellBoundary && (shellBoundary = fiber);\n }\n function pushOffscreenSuspenseHandler(fiber) {\n 22 === fiber.tag\n ? (push(suspenseStackCursor, suspenseStackCursor.current, fiber),\n push(suspenseHandlerStackCursor, fiber, fiber),\n null === shellBoundary && (shellBoundary = fiber))\n : reuseSuspenseHandlerOnStack(fiber);\n }\n function reuseSuspenseHandlerOnStack(fiber) {\n push(suspenseStackCursor, suspenseStackCursor.current, fiber);\n push(\n suspenseHandlerStackCursor,\n suspenseHandlerStackCursor.current,\n fiber\n );\n }\n function popSuspenseHandler(fiber) {\n pop(suspenseHandlerStackCursor, fiber);\n shellBoundary === fiber && (shellBoundary = null);\n pop(suspenseStackCursor, fiber);\n }\n function findFirstSuspended(row) {\n for (var node = row; null !== node; ) {\n if (13 === node.tag) {\n var state = node.memoizedState;\n if (\n null !== state &&\n ((state = state.dehydrated),\n null === state ||\n isSuspenseInstancePending(state) ||\n isSuspenseInstanceFallback(state))\n )\n return node;\n } else if (\n 19 === node.tag &&\n (\"forwards\" === node.memoizedProps.revealOrder ||\n \"backwards\" === node.memoizedProps.revealOrder ||\n \"unstable_legacy-backwards\" === node.memoizedProps.revealOrder ||\n \"together\" === node.memoizedProps.revealOrder)\n ) {\n if (0 !== (node.flags & 128)) return node;\n } else if (null !== node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n if (node === row) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === row) return null;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n return null;\n }\n function mountHookTypesDev() {\n var hookName = currentHookNameInDev;\n null === hookTypesDev\n ? (hookTypesDev = [hookName])\n : hookTypesDev.push(hookName);\n }\n function updateHookTypesDev() {\n var hookName = currentHookNameInDev;\n if (\n null !== hookTypesDev &&\n (hookTypesUpdateIndexDev++,\n hookTypesDev[hookTypesUpdateIndexDev] !== hookName)\n ) {\n var componentName = getComponentNameFromFiber(currentlyRenderingFiber);\n if (\n !didWarnAboutMismatchedHooksForComponent.has(componentName) &&\n (didWarnAboutMismatchedHooksForComponent.add(componentName),\n null !== hookTypesDev)\n ) {\n for (var table = \"\", i = 0; i <= hookTypesUpdateIndexDev; i++) {\n var oldHookName = hookTypesDev[i],\n newHookName =\n i === hookTypesUpdateIndexDev ? hookName : oldHookName;\n for (\n oldHookName = i + 1 + \". \" + oldHookName;\n 30 > oldHookName.length;\n\n )\n oldHookName += \" \";\n oldHookName += newHookName + \"\\n\";\n table += oldHookName;\n }\n console.error(\n \"React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://react.dev/link/rules-of-hooks\\n\\n Previous render Next render\\n ------------------------------------------------------\\n%s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\",\n componentName,\n table\n );\n }\n }\n }\n function checkDepsAreArrayDev(deps) {\n void 0 === deps ||\n null === deps ||\n isArrayImpl(deps) ||\n console.error(\n \"%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.\",\n currentHookNameInDev,\n typeof deps\n );\n }\n function warnOnUseFormStateInDev() {\n var componentName = getComponentNameFromFiber(currentlyRenderingFiber);\n didWarnAboutUseFormState.has(componentName) ||\n (didWarnAboutUseFormState.add(componentName),\n console.error(\n \"ReactDOM.useFormState has been renamed to React.useActionState. Please update %s to use React.useActionState.\",\n componentName\n ));\n }\n function throwInvalidHookError() {\n throw Error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n }\n function areHookInputsEqual(nextDeps, prevDeps) {\n if (ignorePreviousDependencies) return !1;\n if (null === prevDeps)\n return (\n console.error(\n \"%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.\",\n currentHookNameInDev\n ),\n !1\n );\n nextDeps.length !== prevDeps.length &&\n console.error(\n \"The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\\n\\nPrevious: %s\\nIncoming: %s\",\n currentHookNameInDev,\n \"[\" + prevDeps.join(\", \") + \"]\",\n \"[\" + nextDeps.join(\", \") + \"]\"\n );\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++)\n if (!objectIs(nextDeps[i], prevDeps[i])) return !1;\n return !0;\n }\n function renderWithHooks(\n current,\n workInProgress,\n Component,\n props,\n secondArg,\n nextRenderLanes\n ) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber = workInProgress;\n hookTypesDev = null !== current ? current._debugHookTypes : null;\n hookTypesUpdateIndexDev = -1;\n ignorePreviousDependencies =\n null !== current && current.type !== workInProgress.type;\n if (\n \"[object AsyncFunction]\" ===\n Object.prototype.toString.call(Component) ||\n \"[object AsyncGeneratorFunction]\" ===\n Object.prototype.toString.call(Component)\n )\n (nextRenderLanes = getComponentNameFromFiber(currentlyRenderingFiber)),\n didWarnAboutAsyncClientComponent.has(nextRenderLanes) ||\n (didWarnAboutAsyncClientComponent.add(nextRenderLanes),\n console.error(\n \"%s is an async Client Component. Only Server Components can be async at the moment. This error is often caused by accidentally adding `'use client'` to a module that was originally written for the server.\",\n null === nextRenderLanes\n ? \"An unknown Component\"\n : \"<\" + nextRenderLanes + \">\"\n ));\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = 0;\n ReactSharedInternals.H =\n null !== current && null !== current.memoizedState\n ? HooksDispatcherOnUpdateInDEV\n : null !== hookTypesDev\n ? HooksDispatcherOnMountWithHookTypesInDEV\n : HooksDispatcherOnMountInDEV;\n shouldDoubleInvokeUserFnsInHooksDEV = nextRenderLanes =\n (workInProgress.mode & StrictLegacyMode) !== NoMode;\n var children = callComponentInDEV(Component, props, secondArg);\n shouldDoubleInvokeUserFnsInHooksDEV = !1;\n didScheduleRenderPhaseUpdateDuringThisPass &&\n (children = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n ));\n if (nextRenderLanes) {\n setIsStrictModeForDevtools(!0);\n try {\n children = renderWithHooksAgain(\n workInProgress,\n Component,\n props,\n secondArg\n );\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n finishRenderingHooks(current, workInProgress);\n return children;\n }\n function finishRenderingHooks(current, workInProgress) {\n workInProgress._debugHookTypes = hookTypesDev;\n null === workInProgress.dependencies\n ? null !== thenableState &&\n (workInProgress.dependencies = {\n lanes: 0,\n firstContext: null,\n _debugThenableState: thenableState\n })\n : (workInProgress.dependencies._debugThenableState = thenableState);\n ReactSharedInternals.H = ContextOnlyDispatcher;\n var didRenderTooFewHooks =\n null !== currentHook && null !== currentHook.next;\n renderLanes = 0;\n hookTypesDev =\n currentHookNameInDev =\n workInProgressHook =\n currentHook =\n currentlyRenderingFiber =\n null;\n hookTypesUpdateIndexDev = -1;\n null !== current &&\n (current.flags & 65011712) !== (workInProgress.flags & 65011712) &&\n console.error(\n \"Internal React error: Expected static flag was missing. Please notify the React team.\"\n );\n didScheduleRenderPhaseUpdate = !1;\n thenableIndexCounter = 0;\n thenableState = null;\n if (didRenderTooFewHooks)\n throw Error(\n \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\"\n );\n null === current ||\n didReceiveUpdate ||\n ((current = current.dependencies),\n null !== current &&\n checkIfContextChanged(current) &&\n (didReceiveUpdate = !0));\n needsToResetSuspendedThenableDEV\n ? ((needsToResetSuspendedThenableDEV = !1), (current = !0))\n : (current = !1);\n current &&\n ((workInProgress =\n getComponentNameFromFiber(workInProgress) || \"Unknown\"),\n didWarnAboutUseWrappedInTryCatch.has(workInProgress) ||\n didWarnAboutAsyncClientComponent.has(workInProgress) ||\n (didWarnAboutUseWrappedInTryCatch.add(workInProgress),\n console.error(\n \"`use` was called from inside a try/catch block. This is not allowed and can lead to unexpected behavior. To handle errors triggered by `use`, wrap your component in a error boundary.\"\n )));\n }\n function renderWithHooksAgain(workInProgress, Component, props, secondArg) {\n currentlyRenderingFiber = workInProgress;\n var numberOfReRenders = 0;\n do {\n didScheduleRenderPhaseUpdateDuringThisPass && (thenableState = null);\n thenableIndexCounter = 0;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n if (numberOfReRenders >= RE_RENDER_LIMIT)\n throw Error(\n \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\"\n );\n numberOfReRenders += 1;\n ignorePreviousDependencies = !1;\n workInProgressHook = currentHook = null;\n if (null != workInProgress.updateQueue) {\n var children = workInProgress.updateQueue;\n children.lastEffect = null;\n children.events = null;\n children.stores = null;\n null != children.memoCache && (children.memoCache.index = 0);\n }\n hookTypesUpdateIndexDev = -1;\n ReactSharedInternals.H = HooksDispatcherOnRerenderInDEV;\n children = callComponentInDEV(Component, props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n return children;\n }\n function TransitionAwareHostComponent() {\n var dispatcher = ReactSharedInternals.H,\n maybeThenable = dispatcher.useState()[0];\n maybeThenable =\n \"function\" === typeof maybeThenable.then\n ? useThenable(maybeThenable)\n : maybeThenable;\n dispatcher = dispatcher.useState()[0];\n (null !== currentHook ? currentHook.memoizedState : null) !==\n dispatcher && (currentlyRenderingFiber.flags |= 1024);\n return maybeThenable;\n }\n function checkDidRenderIdHook() {\n var didRenderIdHook = 0 !== localIdCounter;\n localIdCounter = 0;\n return didRenderIdHook;\n }\n function bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags =\n (workInProgress.mode & StrictEffectsMode) !== NoMode\n ? workInProgress.flags & -402655237\n : workInProgress.flags & -2053;\n current.lanes &= ~lanes;\n }\n function resetHooksOnUnwind(workInProgress) {\n if (didScheduleRenderPhaseUpdate) {\n for (\n workInProgress = workInProgress.memoizedState;\n null !== workInProgress;\n\n ) {\n var queue = workInProgress.queue;\n null !== queue && (queue.pending = null);\n workInProgress = workInProgress.next;\n }\n didScheduleRenderPhaseUpdate = !1;\n }\n renderLanes = 0;\n hookTypesDev =\n workInProgressHook =\n currentHook =\n currentlyRenderingFiber =\n null;\n hookTypesUpdateIndexDev = -1;\n currentHookNameInDev = null;\n didScheduleRenderPhaseUpdateDuringThisPass = !1;\n thenableIndexCounter = localIdCounter = 0;\n thenableState = null;\n }\n function mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook = hook)\n : (workInProgressHook = workInProgressHook.next = hook);\n return workInProgressHook;\n }\n function updateWorkInProgressHook() {\n if (null === currentHook) {\n var nextCurrentHook = currentlyRenderingFiber.alternate;\n nextCurrentHook =\n null !== nextCurrentHook ? nextCurrentHook.memoizedState : null;\n } else nextCurrentHook = currentHook.next;\n var nextWorkInProgressHook =\n null === workInProgressHook\n ? currentlyRenderingFiber.memoizedState\n : workInProgressHook.next;\n if (null !== nextWorkInProgressHook)\n (workInProgressHook = nextWorkInProgressHook),\n (currentHook = nextCurrentHook);\n else {\n if (null === nextCurrentHook) {\n if (null === currentlyRenderingFiber.alternate)\n throw Error(\n \"Update hook called on initial render. This is likely a bug in React. Please file an issue.\"\n );\n throw Error(\"Rendered more hooks than during the previous render.\");\n }\n currentHook = nextCurrentHook;\n nextCurrentHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n null === workInProgressHook\n ? (currentlyRenderingFiber.memoizedState = workInProgressHook =\n nextCurrentHook)\n : (workInProgressHook = workInProgressHook.next = nextCurrentHook);\n }\n return workInProgressHook;\n }\n function createFunctionComponentUpdateQueue() {\n return { lastEffect: null, events: null, stores: null, memoCache: null };\n }\n function useThenable(thenable) {\n var index = thenableIndexCounter;\n thenableIndexCounter += 1;\n null === thenableState && (thenableState = createThenableState());\n thenable = trackUsedThenable(thenableState, thenable, index);\n index = currentlyRenderingFiber;\n null ===\n (null === workInProgressHook\n ? index.memoizedState\n : workInProgressHook.next) &&\n ((index = index.alternate),\n (ReactSharedInternals.H =\n null !== index && null !== index.memoizedState\n ? HooksDispatcherOnUpdateInDEV\n : HooksDispatcherOnMountInDEV));\n return thenable;\n }\n function use(usable) {\n if (null !== usable && \"object\" === typeof usable) {\n if (\"function\" === typeof usable.then) return useThenable(usable);\n if (usable.$$typeof === REACT_CONTEXT_TYPE) return readContext(usable);\n }\n throw Error(\"An unsupported type was passed to use(): \" + String(usable));\n }\n function useMemoCache(size) {\n var memoCache = null,\n updateQueue = currentlyRenderingFiber.updateQueue;\n null !== updateQueue && (memoCache = updateQueue.memoCache);\n if (null == memoCache) {\n var current = currentlyRenderingFiber.alternate;\n null !== current &&\n ((current = current.updateQueue),\n null !== current &&\n ((current = current.memoCache),\n null != current &&\n (memoCache = {\n data: current.data.map(function (array) {\n return array.slice();\n }),\n index: 0\n })));\n }\n null == memoCache && (memoCache = { data: [], index: 0 });\n null === updateQueue &&\n ((updateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = updateQueue));\n updateQueue.memoCache = memoCache;\n updateQueue = memoCache.data[memoCache.index];\n if (void 0 === updateQueue || ignorePreviousDependencies)\n for (\n updateQueue = memoCache.data[memoCache.index] = Array(size),\n current = 0;\n current < size;\n current++\n )\n updateQueue[current] = REACT_MEMO_CACHE_SENTINEL;\n else\n updateQueue.length !== size &&\n console.error(\n \"Expected a constant size argument for each invocation of useMemoCache. The previous cache was allocated with size %s but size %s was requested.\",\n updateQueue.length,\n size\n );\n memoCache.index++;\n return updateQueue;\n }\n function basicStateReducer(state, action) {\n return \"function\" === typeof action ? action(state) : action;\n }\n function mountReducer(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n if (void 0 !== init) {\n var initialState = init(initialArg);\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n init(initialArg);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n } else initialState = initialArg;\n hook.memoizedState = hook.baseState = initialState;\n reducer = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n hook.queue = reducer;\n reducer = reducer.dispatch = dispatchReducerAction.bind(\n null,\n currentlyRenderingFiber,\n reducer\n );\n return [hook.memoizedState, reducer];\n }\n function updateReducer(reducer) {\n var hook = updateWorkInProgressHook();\n return updateReducerImpl(hook, currentHook, reducer);\n }\n function updateReducerImpl(hook, current, reducer) {\n var queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)\"\n );\n queue.lastRenderedReducer = reducer;\n var baseQueue = hook.baseQueue,\n pendingQueue = queue.pending;\n if (null !== pendingQueue) {\n if (null !== baseQueue) {\n var baseFirst = baseQueue.next;\n baseQueue.next = pendingQueue.next;\n pendingQueue.next = baseFirst;\n }\n current.baseQueue !== baseQueue &&\n console.error(\n \"Internal error: Expected work-in-progress queue to be a clone. This is a bug in React.\"\n );\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n pendingQueue = hook.baseState;\n if (null === baseQueue) hook.memoizedState = pendingQueue;\n else {\n current = baseQueue.next;\n var newBaseQueueFirst = (baseFirst = null),\n newBaseQueueLast = null,\n update = current,\n didReadFromEntangledAsyncAction = !1;\n do {\n var updateLane = update.lane & -536870913;\n if (\n updateLane !== update.lane\n ? (workInProgressRootRenderLanes & updateLane) === updateLane\n : (renderLanes & updateLane) === updateLane\n ) {\n var revertLane = update.revertLane;\n if (0 === revertLane)\n null !== newBaseQueueLast &&\n (newBaseQueueLast = newBaseQueueLast.next =\n {\n lane: 0,\n revertLane: 0,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n updateLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n else if ((renderLanes & revertLane) === revertLane) {\n update = update.next;\n revertLane === currentEntangledLane &&\n (didReadFromEntangledAsyncAction = !0);\n continue;\n } else\n (updateLane = {\n lane: 0,\n revertLane: update.revertLane,\n gesture: null,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = updateLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = updateLane),\n (currentlyRenderingFiber.lanes |= revertLane),\n (workInProgressRootSkippedLanes |= revertLane);\n updateLane = update.action;\n shouldDoubleInvokeUserFnsInHooksDEV &&\n reducer(pendingQueue, updateLane);\n pendingQueue = update.hasEagerState\n ? update.eagerState\n : reducer(pendingQueue, updateLane);\n } else\n (revertLane = {\n lane: updateLane,\n revertLane: update.revertLane,\n gesture: update.gesture,\n action: update.action,\n hasEagerState: update.hasEagerState,\n eagerState: update.eagerState,\n next: null\n }),\n null === newBaseQueueLast\n ? ((newBaseQueueFirst = newBaseQueueLast = revertLane),\n (baseFirst = pendingQueue))\n : (newBaseQueueLast = newBaseQueueLast.next = revertLane),\n (currentlyRenderingFiber.lanes |= updateLane),\n (workInProgressRootSkippedLanes |= updateLane);\n update = update.next;\n } while (null !== update && update !== current);\n null === newBaseQueueLast\n ? (baseFirst = pendingQueue)\n : (newBaseQueueLast.next = newBaseQueueFirst);\n if (\n !objectIs(pendingQueue, hook.memoizedState) &&\n ((didReceiveUpdate = !0),\n didReadFromEntangledAsyncAction &&\n ((reducer = currentEntangledActionThenable), null !== reducer))\n )\n throw reducer;\n hook.memoizedState = pendingQueue;\n hook.baseState = baseFirst;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = pendingQueue;\n }\n null === baseQueue && (queue.lanes = 0);\n return [hook.memoizedState, queue.dispatch];\n }\n function rerenderReducer(reducer) {\n var hook = updateWorkInProgressHook(),\n queue = hook.queue;\n if (null === queue)\n throw Error(\n \"Should have a queue. You are likely calling Hooks conditionally, which is not allowed. (https://react.dev/link/invalid-hook-call)\"\n );\n queue.lastRenderedReducer = reducer;\n var dispatch = queue.dispatch,\n lastRenderPhaseUpdate = queue.pending,\n newState = hook.memoizedState;\n if (null !== lastRenderPhaseUpdate) {\n queue.pending = null;\n var update = (lastRenderPhaseUpdate = lastRenderPhaseUpdate.next);\n do\n (newState = reducer(newState, update.action)), (update = update.next);\n while (update !== lastRenderPhaseUpdate);\n objectIs(newState, hook.memoizedState) || (didReceiveUpdate = !0);\n hook.memoizedState = newState;\n null === hook.baseQueue && (hook.baseState = newState);\n queue.lastRenderedState = newState;\n }\n return [newState, dispatch];\n }\n function mountSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n var fiber = currentlyRenderingFiber,\n hook = mountWorkInProgressHook();\n if (isHydrating) {\n if (void 0 === getServerSnapshot)\n throw Error(\n \"Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.\"\n );\n var nextSnapshot = getServerSnapshot();\n didWarnUncachedGetSnapshot ||\n nextSnapshot === getServerSnapshot() ||\n (console.error(\n \"The result of getServerSnapshot should be cached to avoid an infinite loop\"\n ),\n (didWarnUncachedGetSnapshot = !0));\n } else {\n nextSnapshot = getSnapshot();\n didWarnUncachedGetSnapshot ||\n ((getServerSnapshot = getSnapshot()),\n objectIs(nextSnapshot, getServerSnapshot) ||\n (console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n ),\n (didWarnUncachedGetSnapshot = !0)));\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n 0 !== (workInProgressRootRenderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, nextSnapshot);\n }\n hook.memoizedState = nextSnapshot;\n getServerSnapshot = { value: nextSnapshot, getSnapshot: getSnapshot };\n hook.queue = getServerSnapshot;\n mountEffect(\n subscribeToStore.bind(null, fiber, getServerSnapshot, subscribe),\n [subscribe]\n );\n fiber.flags |= 2048;\n pushSimpleEffect(\n HasEffect | Passive,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n getServerSnapshot,\n nextSnapshot,\n getSnapshot\n ),\n null\n );\n return nextSnapshot;\n }\n function updateSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n var fiber = currentlyRenderingFiber,\n hook = updateWorkInProgressHook(),\n isHydrating$jscomp$0 = isHydrating;\n if (isHydrating$jscomp$0) {\n if (void 0 === getServerSnapshot)\n throw Error(\n \"Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.\"\n );\n getServerSnapshot = getServerSnapshot();\n } else if (\n ((getServerSnapshot = getSnapshot()), !didWarnUncachedGetSnapshot)\n ) {\n var cachedSnapshot = getSnapshot();\n objectIs(getServerSnapshot, cachedSnapshot) ||\n (console.error(\n \"The result of getSnapshot should be cached to avoid an infinite loop\"\n ),\n (didWarnUncachedGetSnapshot = !0));\n }\n if (\n (cachedSnapshot = !objectIs(\n (currentHook || hook).memoizedState,\n getServerSnapshot\n ))\n )\n (hook.memoizedState = getServerSnapshot), (didReceiveUpdate = !0);\n hook = hook.queue;\n var create = subscribeToStore.bind(null, fiber, hook, subscribe);\n updateEffectImpl(2048, Passive, create, [subscribe]);\n if (\n hook.getSnapshot !== getSnapshot ||\n cachedSnapshot ||\n (null !== workInProgressHook &&\n workInProgressHook.memoizedState.tag & HasEffect)\n ) {\n fiber.flags |= 2048;\n pushSimpleEffect(\n HasEffect | Passive,\n { destroy: void 0 },\n updateStoreInstance.bind(\n null,\n fiber,\n hook,\n getServerSnapshot,\n getSnapshot\n ),\n null\n );\n if (null === workInProgressRoot)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n isHydrating$jscomp$0 ||\n 0 !== (renderLanes & 127) ||\n pushStoreConsistencyCheck(fiber, getSnapshot, getServerSnapshot);\n }\n return getServerSnapshot;\n }\n function pushStoreConsistencyCheck(fiber, getSnapshot, renderedSnapshot) {\n fiber.flags |= 16384;\n fiber = { getSnapshot: getSnapshot, value: renderedSnapshot };\n getSnapshot = currentlyRenderingFiber.updateQueue;\n null === getSnapshot\n ? ((getSnapshot = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = getSnapshot),\n (getSnapshot.stores = [fiber]))\n : ((renderedSnapshot = getSnapshot.stores),\n null === renderedSnapshot\n ? (getSnapshot.stores = [fiber])\n : renderedSnapshot.push(fiber));\n }\n function updateStoreInstance(fiber, inst, nextSnapshot, getSnapshot) {\n inst.value = nextSnapshot;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceStoreRerender(fiber);\n }\n function subscribeToStore(fiber, inst, subscribe) {\n return subscribe(function () {\n checkIfSnapshotChanged(inst) &&\n (startUpdateTimerByLane(2, \"updateSyncExternalStore()\", fiber),\n forceStoreRerender(fiber));\n });\n }\n function checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n }\n function forceStoreRerender(fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n }\n function mountStateImpl(initialState) {\n var hook = mountWorkInProgressHook();\n if (\"function\" === typeof initialState) {\n var initialStateInitializer = initialState;\n initialState = initialStateInitializer();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n initialStateInitializer();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n }\n hook.memoizedState = hook.baseState = initialState;\n hook.queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n return hook;\n }\n function mountState(initialState) {\n initialState = mountStateImpl(initialState);\n var queue = initialState.queue,\n dispatch = dispatchSetState.bind(null, currentlyRenderingFiber, queue);\n queue.dispatch = dispatch;\n return [initialState.memoizedState, dispatch];\n }\n function mountOptimistic(passthrough) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = hook.baseState = passthrough;\n var queue = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: null,\n lastRenderedState: null\n };\n hook.queue = queue;\n hook = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !0,\n queue\n );\n queue.dispatch = hook;\n return [passthrough, hook];\n }\n function updateOptimistic(passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n }\n function updateOptimisticImpl(hook, current, passthrough, reducer) {\n hook.baseState = passthrough;\n return updateReducerImpl(\n hook,\n currentHook,\n \"function\" === typeof reducer ? reducer : basicStateReducer\n );\n }\n function rerenderOptimistic(passthrough, reducer) {\n var hook = updateWorkInProgressHook();\n if (null !== currentHook)\n return updateOptimisticImpl(hook, currentHook, passthrough, reducer);\n hook.baseState = passthrough;\n return [passthrough, hook.queue.dispatch];\n }\n function dispatchActionState(\n fiber,\n actionQueue,\n setPendingState,\n setState,\n payload\n ) {\n if (isRenderPhaseUpdate(fiber))\n throw Error(\"Cannot update form state while rendering.\");\n fiber = actionQueue.action;\n if (null !== fiber) {\n var actionNode = {\n payload: payload,\n action: fiber,\n next: null,\n isTransition: !0,\n status: \"pending\",\n value: null,\n reason: null,\n listeners: [],\n then: function (listener) {\n actionNode.listeners.push(listener);\n }\n };\n null !== ReactSharedInternals.T\n ? setPendingState(!0)\n : (actionNode.isTransition = !1);\n setState(actionNode);\n setPendingState = actionQueue.pending;\n null === setPendingState\n ? ((actionNode.next = actionQueue.pending = actionNode),\n runActionStateAction(actionQueue, actionNode))\n : ((actionNode.next = setPendingState.next),\n (actionQueue.pending = setPendingState.next = actionNode));\n }\n }\n function runActionStateAction(actionQueue, node) {\n var action = node.action,\n payload = node.payload,\n prevState = actionQueue.state;\n if (node.isTransition) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition._updatedFibers = new Set();\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = action(prevState, payload),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n handleActionReturnValue(actionQueue, node, returnValue);\n } catch (error) {\n onActionError(actionQueue, node, error);\n } finally {\n null !== prevTransition &&\n null !== currentTransition.types &&\n (null !== prevTransition.types &&\n prevTransition.types !== currentTransition.types &&\n console.error(\n \"We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.\"\n ),\n (prevTransition.types = currentTransition.types)),\n (ReactSharedInternals.T = prevTransition),\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((actionQueue = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < actionQueue &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n ));\n }\n } else\n try {\n (currentTransition = action(prevState, payload)),\n handleActionReturnValue(actionQueue, node, currentTransition);\n } catch (error$4) {\n onActionError(actionQueue, node, error$4);\n }\n }\n function handleActionReturnValue(actionQueue, node, returnValue) {\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ? (ReactSharedInternals.asyncTransitions++,\n returnValue.then(releaseAsyncTransition, releaseAsyncTransition),\n returnValue.then(\n function (nextState) {\n onActionSuccess(actionQueue, node, nextState);\n },\n function (error) {\n return onActionError(actionQueue, node, error);\n }\n ),\n node.isTransition ||\n console.error(\n \"An async function with useActionState was called outside of a transition. This is likely not what you intended (for example, isPending will not update correctly). Either call the returned function inside startTransition, or pass it to an `action` or `formAction` prop.\"\n ))\n : onActionSuccess(actionQueue, node, returnValue);\n }\n function onActionSuccess(actionQueue, actionNode, nextState) {\n actionNode.status = \"fulfilled\";\n actionNode.value = nextState;\n notifyActionListeners(actionNode);\n actionQueue.state = nextState;\n actionNode = actionQueue.pending;\n null !== actionNode &&\n ((nextState = actionNode.next),\n nextState === actionNode\n ? (actionQueue.pending = null)\n : ((nextState = nextState.next),\n (actionNode.next = nextState),\n runActionStateAction(actionQueue, nextState)));\n }\n function onActionError(actionQueue, actionNode, error) {\n var last = actionQueue.pending;\n actionQueue.pending = null;\n if (null !== last) {\n last = last.next;\n do\n (actionNode.status = \"rejected\"),\n (actionNode.reason = error),\n notifyActionListeners(actionNode),\n (actionNode = actionNode.next);\n while (actionNode !== last);\n }\n actionQueue.action = null;\n }\n function notifyActionListeners(actionNode) {\n actionNode = actionNode.listeners;\n for (var i = 0; i < actionNode.length; i++) (0, actionNode[i])();\n }\n function actionStateReducer(oldState, newState) {\n return newState;\n }\n function mountActionState(action, initialStateProp) {\n if (isHydrating) {\n var ssrFormState = workInProgressRoot.formState;\n if (null !== ssrFormState) {\n a: {\n var isMatching = currentlyRenderingFiber;\n if (isHydrating) {\n if (nextHydratableInstance) {\n b: {\n var markerInstance = nextHydratableInstance;\n for (\n var inRootOrSingleton = rootOrSingletonContext;\n 8 !== markerInstance.nodeType;\n\n ) {\n if (!inRootOrSingleton) {\n markerInstance = null;\n break b;\n }\n markerInstance = getNextHydratable(\n markerInstance.nextSibling\n );\n if (null === markerInstance) {\n markerInstance = null;\n break b;\n }\n }\n inRootOrSingleton = markerInstance.data;\n markerInstance =\n inRootOrSingleton === FORM_STATE_IS_MATCHING ||\n inRootOrSingleton === FORM_STATE_IS_NOT_MATCHING\n ? markerInstance\n : null;\n }\n if (markerInstance) {\n nextHydratableInstance = getNextHydratable(\n markerInstance.nextSibling\n );\n isMatching = markerInstance.data === FORM_STATE_IS_MATCHING;\n break a;\n }\n }\n throwOnHydrationMismatch(isMatching);\n }\n isMatching = !1;\n }\n isMatching && (initialStateProp = ssrFormState[0]);\n }\n }\n ssrFormState = mountWorkInProgressHook();\n ssrFormState.memoizedState = ssrFormState.baseState = initialStateProp;\n isMatching = {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: actionStateReducer,\n lastRenderedState: initialStateProp\n };\n ssrFormState.queue = isMatching;\n ssrFormState = dispatchSetState.bind(\n null,\n currentlyRenderingFiber,\n isMatching\n );\n isMatching.dispatch = ssrFormState;\n isMatching = mountStateImpl(!1);\n inRootOrSingleton = dispatchOptimisticSetState.bind(\n null,\n currentlyRenderingFiber,\n !1,\n isMatching.queue\n );\n isMatching = mountWorkInProgressHook();\n markerInstance = {\n state: initialStateProp,\n dispatch: null,\n action: action,\n pending: null\n };\n isMatching.queue = markerInstance;\n ssrFormState = dispatchActionState.bind(\n null,\n currentlyRenderingFiber,\n markerInstance,\n inRootOrSingleton,\n ssrFormState\n );\n markerInstance.dispatch = ssrFormState;\n isMatching.memoizedState = action;\n return [initialStateProp, ssrFormState, !1];\n }\n function updateActionState(action) {\n var stateHook = updateWorkInProgressHook();\n return updateActionStateImpl(stateHook, currentHook, action);\n }\n function updateActionStateImpl(stateHook, currentStateHook, action) {\n currentStateHook = updateReducerImpl(\n stateHook,\n currentStateHook,\n actionStateReducer\n )[0];\n stateHook = updateReducer(basicStateReducer)[0];\n if (\n \"object\" === typeof currentStateHook &&\n null !== currentStateHook &&\n \"function\" === typeof currentStateHook.then\n )\n try {\n var state = useThenable(currentStateHook);\n } catch (x) {\n if (x === SuspenseException) throw SuspenseActionException;\n throw x;\n }\n else state = currentStateHook;\n currentStateHook = updateWorkInProgressHook();\n var actionQueue = currentStateHook.queue,\n dispatch = actionQueue.dispatch;\n action !== currentStateHook.memoizedState &&\n ((currentlyRenderingFiber.flags |= 2048),\n pushSimpleEffect(\n HasEffect | Passive,\n { destroy: void 0 },\n actionStateActionEffect.bind(null, actionQueue, action),\n null\n ));\n return [state, dispatch, stateHook];\n }\n function actionStateActionEffect(actionQueue, action) {\n actionQueue.action = action;\n }\n function rerenderActionState(action) {\n var stateHook = updateWorkInProgressHook(),\n currentStateHook = currentHook;\n if (null !== currentStateHook)\n return updateActionStateImpl(stateHook, currentStateHook, action);\n updateWorkInProgressHook();\n stateHook = stateHook.memoizedState;\n currentStateHook = updateWorkInProgressHook();\n var dispatch = currentStateHook.queue.dispatch;\n currentStateHook.memoizedState = action;\n return [stateHook, dispatch, !1];\n }\n function pushSimpleEffect(tag, inst, create, deps) {\n tag = { tag: tag, create: create, deps: deps, inst: inst, next: null };\n inst = currentlyRenderingFiber.updateQueue;\n null === inst &&\n ((inst = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = inst));\n create = inst.lastEffect;\n null === create\n ? (inst.lastEffect = tag.next = tag)\n : ((deps = create.next),\n (create.next = tag),\n (tag.next = deps),\n (inst.lastEffect = tag));\n return tag;\n }\n function mountRef(initialValue) {\n var hook = mountWorkInProgressHook();\n initialValue = { current: initialValue };\n return (hook.memoizedState = initialValue);\n }\n function mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n currentlyRenderingFiber.flags |= fiberFlags;\n hook.memoizedState = pushSimpleEffect(\n HasEffect | hookFlags,\n { destroy: void 0 },\n create,\n void 0 === deps ? null : deps\n );\n }\n function updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var inst = hook.memoizedState.inst;\n null !== currentHook &&\n null !== deps &&\n areHookInputsEqual(deps, currentHook.memoizedState.deps)\n ? (hook.memoizedState = pushSimpleEffect(hookFlags, inst, create, deps))\n : ((currentlyRenderingFiber.flags |= fiberFlags),\n (hook.memoizedState = pushSimpleEffect(\n HasEffect | hookFlags,\n inst,\n create,\n deps\n )));\n }\n function mountEffect(create, deps) {\n (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode\n ? mountEffectImpl(276826112, Passive, create, deps)\n : mountEffectImpl(8390656, Passive, create, deps);\n }\n function useEffectEventImpl(payload) {\n currentlyRenderingFiber.flags |= 4;\n var componentUpdateQueue = currentlyRenderingFiber.updateQueue;\n if (null === componentUpdateQueue)\n (componentUpdateQueue = createFunctionComponentUpdateQueue()),\n (currentlyRenderingFiber.updateQueue = componentUpdateQueue),\n (componentUpdateQueue.events = [payload]);\n else {\n var events = componentUpdateQueue.events;\n null === events\n ? (componentUpdateQueue.events = [payload])\n : events.push(payload);\n }\n }\n function mountEvent(callback) {\n var hook = mountWorkInProgressHook(),\n ref = { impl: callback };\n hook.memoizedState = ref;\n return function () {\n if ((executionContext & RenderContext) !== NoContext)\n throw Error(\n \"A function wrapped in useEffectEvent can't be called during rendering.\"\n );\n return ref.impl.apply(void 0, arguments);\n };\n }\n function updateEvent(callback) {\n var ref = updateWorkInProgressHook().memoizedState;\n useEffectEventImpl({ ref: ref, nextImpl: callback });\n return function () {\n if ((executionContext & RenderContext) !== NoContext)\n throw Error(\n \"A function wrapped in useEffectEvent can't be called during rendering.\"\n );\n return ref.impl.apply(void 0, arguments);\n };\n }\n function mountLayoutEffect(create, deps) {\n var fiberFlags = 4194308;\n (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&\n (fiberFlags |= 134217728);\n return mountEffectImpl(fiberFlags, Layout, create, deps);\n }\n function imperativeHandleEffect(create, ref) {\n if (\"function\" === typeof ref) {\n create = create();\n var refCleanup = ref(create);\n return function () {\n \"function\" === typeof refCleanup ? refCleanup() : ref(null);\n };\n }\n if (null !== ref && void 0 !== ref)\n return (\n ref.hasOwnProperty(\"current\") ||\n console.error(\n \"Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.\",\n \"an object with keys {\" + Object.keys(ref).join(\", \") + \"}\"\n ),\n (create = create()),\n (ref.current = create),\n function () {\n ref.current = null;\n }\n );\n }\n function mountImperativeHandle(ref, create, deps) {\n \"function\" !== typeof create &&\n console.error(\n \"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.\",\n null !== create ? typeof create : \"null\"\n );\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n var fiberFlags = 4194308;\n (currentlyRenderingFiber.mode & StrictEffectsMode) !== NoMode &&\n (fiberFlags |= 134217728);\n mountEffectImpl(\n fiberFlags,\n Layout,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n }\n function updateImperativeHandle(ref, create, deps) {\n \"function\" !== typeof create &&\n console.error(\n \"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.\",\n null !== create ? typeof create : \"null\"\n );\n deps = null !== deps && void 0 !== deps ? deps.concat([ref]) : null;\n updateEffectImpl(\n 4,\n Layout,\n imperativeHandleEffect.bind(null, create, ref),\n deps\n );\n }\n function mountCallback(callback, deps) {\n mountWorkInProgressHook().memoizedState = [\n callback,\n void 0 === deps ? null : deps\n ];\n return callback;\n }\n function updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n hook.memoizedState = [callback, deps];\n return callback;\n }\n function mountMemo(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var nextValue = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [nextValue, deps];\n return nextValue;\n }\n function updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n deps = void 0 === deps ? null : deps;\n var prevState = hook.memoizedState;\n if (null !== deps && areHookInputsEqual(deps, prevState[1]))\n return prevState[0];\n prevState = nextCreate();\n if (shouldDoubleInvokeUserFnsInHooksDEV) {\n setIsStrictModeForDevtools(!0);\n try {\n nextCreate();\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n hook.memoizedState = [prevState, deps];\n return prevState;\n }\n function mountDeferredValue(value, initialValue) {\n var hook = mountWorkInProgressHook();\n return mountDeferredValueImpl(hook, value, initialValue);\n }\n function updateDeferredValue(value, initialValue) {\n var hook = updateWorkInProgressHook();\n return updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n }\n function rerenderDeferredValue(value, initialValue) {\n var hook = updateWorkInProgressHook();\n return null === currentHook\n ? mountDeferredValueImpl(hook, value, initialValue)\n : updateDeferredValueImpl(\n hook,\n currentHook.memoizedState,\n value,\n initialValue\n );\n }\n function mountDeferredValueImpl(hook, value, initialValue) {\n if (\n void 0 === initialValue ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (hook.memoizedState = value);\n hook.memoizedState = initialValue;\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return initialValue;\n }\n function updateDeferredValueImpl(hook, prevValue, value, initialValue) {\n if (objectIs(value, prevValue)) return value;\n if (null !== currentTreeHiddenStackCursor.current)\n return (\n (hook = mountDeferredValueImpl(hook, value, initialValue)),\n objectIs(hook, prevValue) || (didReceiveUpdate = !0),\n hook\n );\n if (\n 0 === (renderLanes & 42) ||\n (0 !== (renderLanes & 1073741824) &&\n 0 === (workInProgressRootRenderLanes & 261930))\n )\n return (didReceiveUpdate = !0), (hook.memoizedState = value);\n hook = requestDeferredLane();\n currentlyRenderingFiber.lanes |= hook;\n workInProgressRootSkippedLanes |= hook;\n return prevValue;\n }\n function releaseAsyncTransition() {\n ReactSharedInternals.asyncTransitions--;\n }\n function startTransition(\n fiber,\n queue,\n pendingState,\n finishedState,\n callback\n ) {\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p =\n 0 !== previousPriority && previousPriority < ContinuousEventPriority\n ? previousPriority\n : ContinuousEventPriority;\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition._updatedFibers = new Set();\n ReactSharedInternals.T = currentTransition;\n dispatchOptimisticSetState(fiber, !1, queue, pendingState);\n try {\n var returnValue = callback(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n if (\n null !== returnValue &&\n \"object\" === typeof returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n ReactSharedInternals.asyncTransitions++;\n returnValue.then(releaseAsyncTransition, releaseAsyncTransition);\n var thenableForFinishedState = chainThenableValue(\n returnValue,\n finishedState\n );\n dispatchSetStateInternal(\n fiber,\n queue,\n thenableForFinishedState,\n requestUpdateLane(fiber)\n );\n } else\n dispatchSetStateInternal(\n fiber,\n queue,\n finishedState,\n requestUpdateLane(fiber)\n );\n } catch (error) {\n dispatchSetStateInternal(\n fiber,\n queue,\n { then: function () {}, status: \"rejected\", reason: error },\n requestUpdateLane(fiber)\n );\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (null !== prevTransition.types &&\n prevTransition.types !== currentTransition.types &&\n console.error(\n \"We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.\"\n ),\n (prevTransition.types = currentTransition.types)),\n (ReactSharedInternals.T = prevTransition),\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((fiber = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < fiber &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n ));\n }\n }\n function startHostTransition(formFiber, pendingState, action, formData) {\n if (5 !== formFiber.tag)\n throw Error(\n \"Expected the form instance to be a HostComponent. This is a bug in React.\"\n );\n var queue = ensureFormComponentIsStateful(formFiber).queue;\n startHostActionTimer(formFiber);\n startTransition(\n formFiber,\n queue,\n pendingState,\n NotPendingTransition,\n null === action\n ? noop\n : function () {\n requestFormReset$1(formFiber);\n return action(formData);\n }\n );\n }\n function ensureFormComponentIsStateful(formFiber) {\n var existingStateHook = formFiber.memoizedState;\n if (null !== existingStateHook) return existingStateHook;\n existingStateHook = {\n memoizedState: NotPendingTransition,\n baseState: NotPendingTransition,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: NotPendingTransition\n },\n next: null\n };\n var initialResetState = {};\n existingStateHook.next = {\n memoizedState: initialResetState,\n baseState: initialResetState,\n baseQueue: null,\n queue: {\n pending: null,\n lanes: 0,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialResetState\n },\n next: null\n };\n formFiber.memoizedState = existingStateHook;\n formFiber = formFiber.alternate;\n null !== formFiber && (formFiber.memoizedState = existingStateHook);\n return existingStateHook;\n }\n function requestFormReset$1(formFiber) {\n null === ReactSharedInternals.T &&\n console.error(\n \"requestFormReset was called outside a transition or action. To fix, move to an action, or wrap with startTransition.\"\n );\n var stateHook = ensureFormComponentIsStateful(formFiber);\n null === stateHook.next &&\n (stateHook = formFiber.alternate.memoizedState);\n dispatchSetStateInternal(\n formFiber,\n stateHook.next.queue,\n {},\n requestUpdateLane(formFiber)\n );\n }\n function mountTransition() {\n var stateHook = mountStateImpl(!1);\n stateHook = startTransition.bind(\n null,\n currentlyRenderingFiber,\n stateHook.queue,\n !0,\n !1\n );\n mountWorkInProgressHook().memoizedState = stateHook;\n return [!1, stateHook];\n }\n function updateTransition() {\n var booleanOrThenable = updateReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n }\n function rerenderTransition() {\n var booleanOrThenable = rerenderReducer(basicStateReducer)[0],\n start = updateWorkInProgressHook().memoizedState;\n return [\n \"boolean\" === typeof booleanOrThenable\n ? booleanOrThenable\n : useThenable(booleanOrThenable),\n start\n ];\n }\n function useHostTransitionStatus() {\n return readContext(HostTransitionContext);\n }\n function mountId() {\n var hook = mountWorkInProgressHook(),\n identifierPrefix = workInProgressRoot.identifierPrefix;\n if (isHydrating) {\n var treeId = treeContextOverflow;\n var idWithLeadingBit = treeContextId;\n treeId =\n (\n idWithLeadingBit & ~(1 << (32 - clz32(idWithLeadingBit) - 1))\n ).toString(32) + treeId;\n identifierPrefix = \"_\" + identifierPrefix + \"R_\" + treeId;\n treeId = localIdCounter++;\n 0 < treeId && (identifierPrefix += \"H\" + treeId.toString(32));\n identifierPrefix += \"_\";\n } else\n (treeId = globalClientIdCounter++),\n (identifierPrefix =\n \"_\" + identifierPrefix + \"r_\" + treeId.toString(32) + \"_\");\n return (hook.memoizedState = identifierPrefix);\n }\n function mountRefresh() {\n return (mountWorkInProgressHook().memoizedState = refreshCache.bind(\n null,\n currentlyRenderingFiber\n ));\n }\n function refreshCache(fiber, seedKey) {\n for (var provider = fiber.return; null !== provider; ) {\n switch (provider.tag) {\n case 24:\n case 3:\n var lane = requestUpdateLane(provider),\n refreshUpdate = createUpdate(lane),\n root = enqueueUpdate(provider, refreshUpdate, lane);\n null !== root &&\n (startUpdateTimerByLane(lane, \"refresh()\", fiber),\n scheduleUpdateOnFiber(root, provider, lane),\n entangleTransitions(root, provider, lane));\n fiber = createCache();\n null !== seedKey &&\n void 0 !== seedKey &&\n null !== root &&\n console.error(\n \"The seed argument is not enabled outside experimental channels.\"\n );\n refreshUpdate.payload = { cache: fiber };\n return;\n }\n provider = provider.return;\n }\n }\n function dispatchReducerAction(fiber, queue, action) {\n var args = arguments;\n \"function\" === typeof args[3] &&\n console.error(\n \"State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().\"\n );\n args = requestUpdateLane(fiber);\n var update = {\n lane: args,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n isRenderPhaseUpdate(fiber)\n ? enqueueRenderPhaseUpdate(queue, update)\n : ((update = enqueueConcurrentHookUpdate(fiber, queue, update, args)),\n null !== update &&\n (startUpdateTimerByLane(args, \"dispatch()\", fiber),\n scheduleUpdateOnFiber(update, fiber, args),\n entangleTransitionUpdate(update, queue, args)));\n }\n function dispatchSetState(fiber, queue, action) {\n var args = arguments;\n \"function\" === typeof args[3] &&\n console.error(\n \"State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().\"\n );\n args = requestUpdateLane(fiber);\n dispatchSetStateInternal(fiber, queue, action, args) &&\n startUpdateTimerByLane(args, \"setState()\", fiber);\n }\n function dispatchSetStateInternal(fiber, queue, action, lane) {\n var update = {\n lane: lane,\n revertLane: 0,\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) enqueueRenderPhaseUpdate(queue, update);\n else {\n var alternate = fiber.alternate;\n if (\n 0 === fiber.lanes &&\n (null === alternate || 0 === alternate.lanes) &&\n ((alternate = queue.lastRenderedReducer), null !== alternate)\n ) {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n var currentState = queue.lastRenderedState,\n eagerState = alternate(currentState, action);\n update.hasEagerState = !0;\n update.eagerState = eagerState;\n if (objectIs(eagerState, currentState))\n return (\n enqueueUpdate$1(fiber, queue, update, 0),\n null === workInProgressRoot &&\n finishQueueingConcurrentUpdates(),\n !1\n );\n } catch (error) {\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n }\n action = enqueueConcurrentHookUpdate(fiber, queue, update, lane);\n if (null !== action)\n return (\n scheduleUpdateOnFiber(action, fiber, lane),\n entangleTransitionUpdate(action, queue, lane),\n !0\n );\n }\n return !1;\n }\n function dispatchOptimisticSetState(\n fiber,\n throwIfDuringRender,\n queue,\n action\n ) {\n null === ReactSharedInternals.T &&\n 0 === currentEntangledLane &&\n console.error(\n \"An optimistic state update occurred outside a transition or action. To fix, move the update to an action, or wrap with startTransition.\"\n );\n action = {\n lane: 2,\n revertLane: requestTransitionLane(),\n gesture: null,\n action: action,\n hasEagerState: !1,\n eagerState: null,\n next: null\n };\n if (isRenderPhaseUpdate(fiber)) {\n if (throwIfDuringRender)\n throw Error(\"Cannot update optimistic state while rendering.\");\n console.error(\"Cannot call startTransition while rendering.\");\n } else\n (throwIfDuringRender = enqueueConcurrentHookUpdate(\n fiber,\n queue,\n action,\n 2\n )),\n null !== throwIfDuringRender &&\n (startUpdateTimerByLane(2, \"setOptimistic()\", fiber),\n scheduleUpdateOnFiber(throwIfDuringRender, fiber, 2));\n }\n function isRenderPhaseUpdate(fiber) {\n var alternate = fiber.alternate;\n return (\n fiber === currentlyRenderingFiber ||\n (null !== alternate && alternate === currentlyRenderingFiber)\n );\n }\n function enqueueRenderPhaseUpdate(queue, update) {\n didScheduleRenderPhaseUpdateDuringThisPass =\n didScheduleRenderPhaseUpdate = !0;\n var pending = queue.pending;\n null === pending\n ? (update.next = update)\n : ((update.next = pending.next), (pending.next = update));\n queue.pending = update;\n }\n function entangleTransitionUpdate(root, queue, lane) {\n if (0 !== (lane & 4194048)) {\n var queueLanes = queue.lanes;\n queueLanes &= root.pendingLanes;\n lane |= queueLanes;\n queue.lanes = lane;\n markRootEntangled(root, lane);\n }\n }\n function warnOnInvalidCallback(callback) {\n if (null !== callback && \"function\" !== typeof callback) {\n var key = String(callback);\n didWarnOnInvalidCallback.has(key) ||\n (didWarnOnInvalidCallback.add(key),\n console.error(\n \"Expected the last optional `callback` argument to be a function. Instead received: %s.\",\n callback\n ));\n }\n }\n function applyDerivedStateFromProps(\n workInProgress,\n ctor,\n getDerivedStateFromProps,\n nextProps\n ) {\n var prevState = workInProgress.memoizedState,\n partialState = getDerivedStateFromProps(nextProps, prevState);\n if (workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(!0);\n try {\n partialState = getDerivedStateFromProps(nextProps, prevState);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n void 0 === partialState &&\n ((ctor = getComponentNameFromType(ctor) || \"Component\"),\n didWarnAboutUndefinedDerivedState.has(ctor) ||\n (didWarnAboutUndefinedDerivedState.add(ctor),\n console.error(\n \"%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.\",\n ctor\n )));\n prevState =\n null === partialState || void 0 === partialState\n ? prevState\n : assign({}, prevState, partialState);\n workInProgress.memoizedState = prevState;\n 0 === workInProgress.lanes &&\n (workInProgress.updateQueue.baseState = prevState);\n }\n function checkShouldComponentUpdate(\n workInProgress,\n ctor,\n oldProps,\n newProps,\n oldState,\n newState,\n nextContext\n ) {\n var instance = workInProgress.stateNode;\n if (\"function\" === typeof instance.shouldComponentUpdate) {\n oldProps = instance.shouldComponentUpdate(\n newProps,\n newState,\n nextContext\n );\n if (workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(!0);\n try {\n oldProps = instance.shouldComponentUpdate(\n newProps,\n newState,\n nextContext\n );\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n void 0 === oldProps &&\n console.error(\n \"%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.\",\n getComponentNameFromType(ctor) || \"Component\"\n );\n return oldProps;\n }\n return ctor.prototype && ctor.prototype.isPureReactComponent\n ? !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState)\n : !0;\n }\n function callComponentWillReceiveProps(\n workInProgress,\n instance,\n newProps,\n nextContext\n ) {\n var oldState = instance.state;\n \"function\" === typeof instance.componentWillReceiveProps &&\n instance.componentWillReceiveProps(newProps, nextContext);\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n instance.state !== oldState &&\n ((workInProgress =\n getComponentNameFromFiber(workInProgress) || \"Component\"),\n didWarnAboutStateAssignmentForComponent.has(workInProgress) ||\n (didWarnAboutStateAssignmentForComponent.add(workInProgress),\n console.error(\n \"%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.\",\n workInProgress\n )),\n classComponentUpdater.enqueueReplaceState(\n instance,\n instance.state,\n null\n ));\n }\n function resolveClassComponentProps(Component, baseProps) {\n var newProps = baseProps;\n if (\"ref\" in baseProps) {\n newProps = {};\n for (var propName in baseProps)\n \"ref\" !== propName && (newProps[propName] = baseProps[propName]);\n }\n if ((Component = Component.defaultProps)) {\n newProps === baseProps && (newProps = assign({}, newProps));\n for (var _propName in Component)\n void 0 === newProps[_propName] &&\n (newProps[_propName] = Component[_propName]);\n }\n return newProps;\n }\n function defaultOnUncaughtError(error) {\n reportGlobalError(error);\n console.warn(\n \"%s\\n\\n%s\\n\",\n componentName\n ? \"An error occurred in the <\" + componentName + \"> component.\"\n : \"An error occurred in one of your React components.\",\n \"Consider adding an error boundary to your tree to customize error handling behavior.\\nVisit https://react.dev/link/error-boundaries to learn more about error boundaries.\"\n );\n }\n function defaultOnCaughtError(error) {\n var componentNameMessage = componentName\n ? \"The above error occurred in the <\" + componentName + \"> component.\"\n : \"The above error occurred in one of your React components.\",\n recreateMessage =\n \"React will try to recreate this component tree from scratch using the error boundary you provided, \" +\n ((errorBoundaryName || \"Anonymous\") + \".\");\n if (\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.environmentName\n ) {\n var JSCompiler_inline_result = error.environmentName;\n error = [\n \"%o\\n\\n%s\\n\\n%s\\n\",\n error,\n componentNameMessage,\n recreateMessage\n ].slice(0);\n \"string\" === typeof error[0]\n ? error.splice(\n 0,\n 1,\n badgeFormat + \" \" + error[0],\n badgeStyle,\n pad + JSCompiler_inline_result + pad,\n resetStyle\n )\n : error.splice(\n 0,\n 0,\n badgeFormat,\n badgeStyle,\n pad + JSCompiler_inline_result + pad,\n resetStyle\n );\n error.unshift(console);\n JSCompiler_inline_result = bind.apply(console.error, error);\n JSCompiler_inline_result();\n } else\n console.error(\n \"%o\\n\\n%s\\n\\n%s\\n\",\n error,\n componentNameMessage,\n recreateMessage\n );\n }\n function defaultOnRecoverableError(error) {\n reportGlobalError(error);\n }\n function logUncaughtError(root, errorInfo) {\n try {\n componentName = errorInfo.source\n ? getComponentNameFromFiber(errorInfo.source)\n : null;\n errorBoundaryName = null;\n var error = errorInfo.value;\n if (null !== ReactSharedInternals.actQueue)\n ReactSharedInternals.thrownErrors.push(error);\n else {\n var onUncaughtError = root.onUncaughtError;\n onUncaughtError(error, { componentStack: errorInfo.stack });\n }\n } catch (e$5) {\n setTimeout(function () {\n throw e$5;\n });\n }\n }\n function logCaughtError(root, boundary, errorInfo) {\n try {\n componentName = errorInfo.source\n ? getComponentNameFromFiber(errorInfo.source)\n : null;\n errorBoundaryName = getComponentNameFromFiber(boundary);\n var onCaughtError = root.onCaughtError;\n onCaughtError(errorInfo.value, {\n componentStack: errorInfo.stack,\n errorBoundary: 1 === boundary.tag ? boundary.stateNode : null\n });\n } catch (e$6) {\n setTimeout(function () {\n throw e$6;\n });\n }\n }\n function createRootErrorUpdate(root, errorInfo, lane) {\n lane = createUpdate(lane);\n lane.tag = CaptureUpdate;\n lane.payload = { element: null };\n lane.callback = function () {\n runWithFiberInDEV(errorInfo.source, logUncaughtError, root, errorInfo);\n };\n return lane;\n }\n function createClassErrorUpdate(lane) {\n lane = createUpdate(lane);\n lane.tag = CaptureUpdate;\n return lane;\n }\n function initializeClassErrorUpdate(update, root, fiber, errorInfo) {\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n if (\"function\" === typeof getDerivedStateFromError) {\n var error = errorInfo.value;\n update.payload = function () {\n return getDerivedStateFromError(error);\n };\n update.callback = function () {\n markFailedErrorBoundaryForHotReloading(fiber);\n runWithFiberInDEV(\n errorInfo.source,\n logCaughtError,\n root,\n fiber,\n errorInfo\n );\n };\n }\n var inst = fiber.stateNode;\n null !== inst &&\n \"function\" === typeof inst.componentDidCatch &&\n (update.callback = function () {\n markFailedErrorBoundaryForHotReloading(fiber);\n runWithFiberInDEV(\n errorInfo.source,\n logCaughtError,\n root,\n fiber,\n errorInfo\n );\n \"function\" !== typeof getDerivedStateFromError &&\n (null === legacyErrorBoundariesThatAlreadyFailed\n ? (legacyErrorBoundariesThatAlreadyFailed = new Set([this]))\n : legacyErrorBoundariesThatAlreadyFailed.add(this));\n callComponentDidCatchInDEV(this, errorInfo);\n \"function\" === typeof getDerivedStateFromError ||\n (0 === (fiber.lanes & 2) &&\n console.error(\n \"%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.\",\n getComponentNameFromFiber(fiber) || \"Unknown\"\n ));\n });\n }\n function throwException(\n root,\n returnFiber,\n sourceFiber,\n value,\n rootRenderLanes\n ) {\n sourceFiber.flags |= 32768;\n isDevToolsPresent && restorePendingUpdaters(root, rootRenderLanes);\n if (\n null !== value &&\n \"object\" === typeof value &&\n \"function\" === typeof value.then\n ) {\n returnFiber = sourceFiber.alternate;\n null !== returnFiber &&\n propagateParentContextChanges(\n returnFiber,\n sourceFiber,\n rootRenderLanes,\n !0\n );\n isHydrating && (didSuspendOrErrorDEV = !0);\n sourceFiber = suspenseHandlerStackCursor.current;\n if (null !== sourceFiber) {\n switch (sourceFiber.tag) {\n case 31:\n case 13:\n return (\n null === shellBoundary\n ? renderDidSuspendDelayIfPossible()\n : null === sourceFiber.alternate &&\n workInProgressRootExitStatus === RootInProgress &&\n (workInProgressRootExitStatus = RootSuspended),\n (sourceFiber.flags &= -257),\n (sourceFiber.flags |= 65536),\n (sourceFiber.lanes = rootRenderLanes),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? (sourceFiber.updateQueue = new Set([value]))\n : returnFiber.add(value),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n case 22:\n return (\n (sourceFiber.flags |= 65536),\n value === noopSuspenseyCommitThenable\n ? (sourceFiber.flags |= 16384)\n : ((returnFiber = sourceFiber.updateQueue),\n null === returnFiber\n ? ((returnFiber = {\n transitions: null,\n markerInstances: null,\n retryQueue: new Set([value])\n }),\n (sourceFiber.updateQueue = returnFiber))\n : ((sourceFiber = returnFiber.retryQueue),\n null === sourceFiber\n ? (returnFiber.retryQueue = new Set([value]))\n : sourceFiber.add(value)),\n attachPingListener(root, value, rootRenderLanes)),\n !1\n );\n }\n throw Error(\n \"Unexpected Suspense handler tag (\" +\n sourceFiber.tag +\n \"). This is a bug in React.\"\n );\n }\n attachPingListener(root, value, rootRenderLanes);\n renderDidSuspendDelayIfPossible();\n return !1;\n }\n if (isHydrating)\n return (\n (didSuspendOrErrorDEV = !0),\n (returnFiber = suspenseHandlerStackCursor.current),\n null !== returnFiber\n ? (0 === (returnFiber.flags & 65536) && (returnFiber.flags |= 256),\n (returnFiber.flags |= 65536),\n (returnFiber.lanes = rootRenderLanes),\n value !== HydrationMismatchException &&\n queueHydrationError(\n createCapturedValueAtFiber(\n Error(\n \"There was an error while hydrating but React was able to recover by instead client rendering from the nearest Suspense boundary.\",\n { cause: value }\n ),\n sourceFiber\n )\n ))\n : (value !== HydrationMismatchException &&\n queueHydrationError(\n createCapturedValueAtFiber(\n Error(\n \"There was an error while hydrating but React was able to recover by instead client rendering the entire root.\",\n { cause: value }\n ),\n sourceFiber\n )\n ),\n (root = root.current.alternate),\n (root.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (root.lanes |= rootRenderLanes),\n (value = createCapturedValueAtFiber(value, sourceFiber)),\n (rootRenderLanes = createRootErrorUpdate(\n root.stateNode,\n value,\n rootRenderLanes\n )),\n enqueueCapturedUpdate(root, rootRenderLanes),\n workInProgressRootExitStatus !== RootSuspendedWithDelay &&\n (workInProgressRootExitStatus = RootErrored)),\n !1\n );\n var error = createCapturedValueAtFiber(\n Error(\n \"There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.\",\n { cause: value }\n ),\n sourceFiber\n );\n null === workInProgressRootConcurrentErrors\n ? (workInProgressRootConcurrentErrors = [error])\n : workInProgressRootConcurrentErrors.push(error);\n workInProgressRootExitStatus !== RootSuspendedWithDelay &&\n (workInProgressRootExitStatus = RootErrored);\n if (null === returnFiber) return !0;\n value = createCapturedValueAtFiber(value, sourceFiber);\n sourceFiber = returnFiber;\n do {\n switch (sourceFiber.tag) {\n case 3:\n return (\n (sourceFiber.flags |= 65536),\n (root = rootRenderLanes & -rootRenderLanes),\n (sourceFiber.lanes |= root),\n (root = createRootErrorUpdate(\n sourceFiber.stateNode,\n value,\n root\n )),\n enqueueCapturedUpdate(sourceFiber, root),\n !1\n );\n case 1:\n if (\n ((returnFiber = sourceFiber.type),\n (error = sourceFiber.stateNode),\n 0 === (sourceFiber.flags & 128) &&\n (\"function\" === typeof returnFiber.getDerivedStateFromError ||\n (null !== error &&\n \"function\" === typeof error.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(error)))))\n )\n return (\n (sourceFiber.flags |= 65536),\n (rootRenderLanes &= -rootRenderLanes),\n (sourceFiber.lanes |= rootRenderLanes),\n (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)),\n initializeClassErrorUpdate(\n rootRenderLanes,\n root,\n sourceFiber,\n value\n ),\n enqueueCapturedUpdate(sourceFiber, rootRenderLanes),\n !1\n );\n }\n sourceFiber = sourceFiber.return;\n } while (null !== sourceFiber);\n return !1;\n }\n function reconcileChildren(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n ) {\n workInProgress.child =\n null === current\n ? mountChildFibers(workInProgress, null, nextChildren, renderLanes)\n : reconcileChildFibers(\n workInProgress,\n current.child,\n nextChildren,\n renderLanes\n );\n }\n function updateForwardRef(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n ) {\n Component = Component.render;\n var ref = workInProgress.ref;\n if (\"ref\" in nextProps) {\n var propsWithoutRef = {};\n for (var key in nextProps)\n \"ref\" !== key && (propsWithoutRef[key] = nextProps[key]);\n } else propsWithoutRef = nextProps;\n prepareToReadContext(workInProgress);\n nextProps = renderWithHooks(\n current,\n workInProgress,\n Component,\n propsWithoutRef,\n ref,\n renderLanes\n );\n key = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && key && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n }\n function updateMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n ) {\n if (null === current) {\n var type = Component.type;\n if (\n \"function\" === typeof type &&\n !shouldConstruct(type) &&\n void 0 === type.defaultProps &&\n null === Component.compare\n )\n return (\n (Component = resolveFunctionForHotReloading(type)),\n (workInProgress.tag = 15),\n (workInProgress.type = Component),\n validateFunctionComponentInDev(workInProgress, type),\n updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n )\n );\n current = createFiberFromTypeAndProps(\n Component.type,\n null,\n nextProps,\n workInProgress,\n workInProgress.mode,\n renderLanes\n );\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n type = current.child;\n if (!checkScheduledUpdateOrContext(current, renderLanes)) {\n var prevProps = type.memoizedProps;\n Component = Component.compare;\n Component = null !== Component ? Component : shallowEqual;\n if (\n Component(prevProps, nextProps) &&\n current.ref === workInProgress.ref\n )\n return bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n }\n workInProgress.flags |= 1;\n current = createWorkInProgress(type, nextProps);\n current.ref = workInProgress.ref;\n current.return = workInProgress;\n return (workInProgress.child = current);\n }\n function updateSimpleMemoComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n ) {\n if (null !== current) {\n var prevProps = current.memoizedProps;\n if (\n shallowEqual(prevProps, nextProps) &&\n current.ref === workInProgress.ref &&\n workInProgress.type === current.type\n )\n if (\n ((didReceiveUpdate = !1),\n (workInProgress.pendingProps = nextProps = prevProps),\n checkScheduledUpdateOrContext(current, renderLanes))\n )\n 0 !== (current.flags & 131072) && (didReceiveUpdate = !0);\n else\n return (\n (workInProgress.lanes = current.lanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n }\n return updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n );\n }\n function updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n nextProps\n ) {\n var nextChildren = nextProps.children,\n prevState = null !== current ? current.memoizedState : null;\n null === current &&\n null === workInProgress.stateNode &&\n (workInProgress.stateNode = {\n _visibility: OffscreenVisible,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n if (\"hidden\" === nextProps.mode) {\n if (0 !== (workInProgress.flags & 128)) {\n prevState =\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes;\n if (null !== current) {\n nextProps = workInProgress.child = current.child;\n for (nextChildren = 0; null !== nextProps; )\n (nextChildren =\n nextChildren | nextProps.lanes | nextProps.childLanes),\n (nextProps = nextProps.sibling);\n nextProps = nextChildren & ~prevState;\n } else (nextProps = 0), (workInProgress.child = null);\n return deferHiddenOffscreenComponent(\n current,\n workInProgress,\n prevState,\n renderLanes,\n nextProps\n );\n }\n if (0 !== (renderLanes & 536870912))\n (workInProgress.memoizedState = { baseLanes: 0, cachePool: null }),\n null !== current &&\n pushTransition(\n workInProgress,\n null !== prevState ? prevState.cachePool : null\n ),\n null !== prevState\n ? pushHiddenContext(workInProgress, prevState)\n : reuseHiddenContextOnStack(workInProgress),\n pushOffscreenSuspenseHandler(workInProgress);\n else\n return (\n (nextProps = workInProgress.lanes = 536870912),\n deferHiddenOffscreenComponent(\n current,\n workInProgress,\n null !== prevState\n ? prevState.baseLanes | renderLanes\n : renderLanes,\n renderLanes,\n nextProps\n )\n );\n } else\n null !== prevState\n ? (pushTransition(workInProgress, prevState.cachePool),\n pushHiddenContext(workInProgress, prevState),\n reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.memoizedState = null))\n : (null !== current && pushTransition(workInProgress, null),\n reuseHiddenContextOnStack(workInProgress),\n reuseSuspenseHandlerOnStack(workInProgress));\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n }\n function bailoutOffscreenComponent(current, workInProgress) {\n (null !== current && 22 === current.tag) ||\n null !== workInProgress.stateNode ||\n (workInProgress.stateNode = {\n _visibility: OffscreenVisible,\n _pendingMarkers: null,\n _retryCache: null,\n _transitions: null\n });\n return workInProgress.sibling;\n }\n function deferHiddenOffscreenComponent(\n current,\n workInProgress,\n nextBaseLanes,\n renderLanes,\n remainingChildLanes\n ) {\n var JSCompiler_inline_result = peekCacheFromPool();\n JSCompiler_inline_result =\n null === JSCompiler_inline_result\n ? null\n : {\n parent: CacheContext._currentValue,\n pool: JSCompiler_inline_result\n };\n workInProgress.memoizedState = {\n baseLanes: nextBaseLanes,\n cachePool: JSCompiler_inline_result\n };\n null !== current && pushTransition(workInProgress, null);\n reuseHiddenContextOnStack(workInProgress);\n pushOffscreenSuspenseHandler(workInProgress);\n null !== current &&\n propagateParentContextChanges(current, workInProgress, renderLanes, !0);\n workInProgress.childLanes = remainingChildLanes;\n return null;\n }\n function mountActivityChildren(workInProgress, nextProps) {\n var hiddenProp = nextProps.hidden;\n void 0 !== hiddenProp &&\n console.error(\n '<Activity> doesn\\'t accept a hidden prop. Use mode=\"hidden\" instead.\\n- <Activity %s>\\n+ <Activity %s>',\n !0 === hiddenProp\n ? \"hidden\"\n : !1 === hiddenProp\n ? \"hidden={false}\"\n : \"hidden={...}\",\n hiddenProp ? 'mode=\"hidden\"' : 'mode=\"visible\"'\n );\n nextProps = mountWorkInProgressOffscreenFiber(\n { mode: nextProps.mode, children: nextProps.children },\n workInProgress.mode\n );\n nextProps.ref = workInProgress.ref;\n workInProgress.child = nextProps;\n nextProps.return = workInProgress;\n return nextProps;\n }\n function retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountActivityChildren(\n workInProgress,\n workInProgress.pendingProps\n );\n current.flags |= 2;\n popSuspenseHandler(workInProgress);\n workInProgress.memoizedState = null;\n return current;\n }\n function updateActivityComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n didSuspend = 0 !== (workInProgress.flags & 128);\n workInProgress.flags &= -129;\n if (null === current) {\n if (isHydrating) {\n if (\"hidden\" === nextProps.mode)\n return (\n (current = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.lanes = 536870912),\n bailoutOffscreenComponent(null, current)\n );\n pushDehydratedActivitySuspenseHandler(workInProgress);\n (current = nextHydratableInstance)\n ? ((renderLanes = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (renderLanes =\n null !== renderLanes && renderLanes.data === ACTIVITY_START_DATA\n ? renderLanes\n : null),\n null !== renderLanes &&\n ((nextProps = {\n dehydrated: renderLanes,\n treeContext: getSuspendedTreeContext(),\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (workInProgress.memoizedState = nextProps),\n (nextProps = createFiberFromDehydratedFragment(renderLanes)),\n (nextProps.return = workInProgress),\n (workInProgress.child = nextProps),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (renderLanes = null);\n if (null === renderLanes)\n throw (\n (warnNonHydratedInstance(workInProgress, current),\n throwOnHydrationMismatch(workInProgress))\n );\n workInProgress.lanes = 536870912;\n return null;\n }\n return mountActivityChildren(workInProgress, nextProps);\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var activityInstance = prevState.dehydrated;\n pushDehydratedActivitySuspenseHandler(workInProgress);\n if (didSuspend)\n if (workInProgress.flags & 256)\n (workInProgress.flags &= -257),\n (workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ));\n else if (null !== workInProgress.memoizedState)\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null);\n else\n throw Error(\n \"Client rendering an Activity suspended it again. This is a bug in React.\"\n );\n else if (\n (warnIfHydrating(),\n 0 !== (renderLanes & 536870912) &&\n markRenderDerivedCause(workInProgress),\n didReceiveUpdate ||\n propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (didSuspend = 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || didSuspend)\n ) {\n nextProps = workInProgressRoot;\n if (\n null !== nextProps &&\n ((activityInstance = getBumpedLaneForHydration(\n nextProps,\n renderLanes\n )),\n 0 !== activityInstance && activityInstance !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = activityInstance),\n enqueueConcurrentRenderForLane(current, activityInstance),\n scheduleUpdateOnFiber(nextProps, current, activityInstance),\n SelectiveHydrationException)\n );\n renderDidSuspendDelayIfPossible();\n workInProgress = retryActivityComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n (current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n activityInstance.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (didSuspendOrErrorDEV = !1),\n (hydrationDiffRootDEV = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountActivityChildren(workInProgress, nextProps)),\n (workInProgress.flags |= 4096);\n return workInProgress;\n }\n prevState = current.child;\n nextProps = { mode: nextProps.mode, children: nextProps.children };\n 0 !== (renderLanes & 536870912) &&\n 0 !== (renderLanes & current.lanes) &&\n markRenderDerivedCause(workInProgress);\n current = createWorkInProgress(prevState, nextProps);\n current.ref = workInProgress.ref;\n workInProgress.child = current;\n current.return = workInProgress;\n return current;\n }\n function markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n if (null === ref)\n null !== current &&\n null !== current.ref &&\n (workInProgress.flags |= 4194816);\n else {\n if (\"function\" !== typeof ref && \"object\" !== typeof ref)\n throw Error(\n \"Expected ref to be a function, an object returned by React.createRef(), or undefined/null.\"\n );\n if (null === current || current.ref !== ref)\n workInProgress.flags |= 4194816;\n }\n }\n function updateFunctionComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n ) {\n if (\n Component.prototype &&\n \"function\" === typeof Component.prototype.render\n ) {\n var componentName = getComponentNameFromType(Component) || \"Unknown\";\n didWarnAboutBadClass[componentName] ||\n (console.error(\n \"The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.\",\n componentName,\n componentName\n ),\n (didWarnAboutBadClass[componentName] = !0));\n }\n workInProgress.mode & StrictLegacyMode &&\n ReactStrictModeWarnings.recordLegacyContextWarning(\n workInProgress,\n null\n );\n null === current &&\n (validateFunctionComponentInDev(workInProgress, workInProgress.type),\n Component.contextTypes &&\n ((componentName = getComponentNameFromType(Component) || \"Unknown\"),\n didWarnAboutContextTypes[componentName] ||\n ((didWarnAboutContextTypes[componentName] = !0),\n console.error(\n \"%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with React.useContext() instead. (https://react.dev/link/legacy-context)\",\n componentName\n ))));\n prepareToReadContext(workInProgress);\n Component = renderWithHooks(\n current,\n workInProgress,\n Component,\n nextProps,\n void 0,\n renderLanes\n );\n nextProps = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && nextProps && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, Component, renderLanes);\n return workInProgress.child;\n }\n function replayFunctionComponent(\n current,\n workInProgress,\n nextProps,\n Component,\n secondArg,\n renderLanes\n ) {\n prepareToReadContext(workInProgress);\n hookTypesUpdateIndexDev = -1;\n ignorePreviousDependencies =\n null !== current && current.type !== workInProgress.type;\n workInProgress.updateQueue = null;\n nextProps = renderWithHooksAgain(\n workInProgress,\n Component,\n nextProps,\n secondArg\n );\n finishRenderingHooks(current, workInProgress);\n Component = checkDidRenderIdHook();\n if (null !== current && !didReceiveUpdate)\n return (\n bailoutHooks(current, workInProgress, renderLanes),\n bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes)\n );\n isHydrating && Component && pushMaterializedTreeId(workInProgress);\n workInProgress.flags |= 1;\n reconcileChildren(current, workInProgress, nextProps, renderLanes);\n return workInProgress.child;\n }\n function updateClassComponent(\n current,\n workInProgress,\n Component,\n nextProps,\n renderLanes\n ) {\n switch (shouldErrorImpl(workInProgress)) {\n case !1:\n var _instance = workInProgress.stateNode,\n state = new workInProgress.type(\n workInProgress.memoizedProps,\n _instance.context\n ).state;\n _instance.updater.enqueueSetState(_instance, state, null);\n break;\n case !0:\n workInProgress.flags |= 128;\n workInProgress.flags |= 65536;\n _instance = Error(\"Simulated error coming from DevTools\");\n var lane = renderLanes & -renderLanes;\n workInProgress.lanes |= lane;\n state = workInProgressRoot;\n if (null === state)\n throw Error(\n \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\"\n );\n lane = createClassErrorUpdate(lane);\n initializeClassErrorUpdate(\n lane,\n state,\n workInProgress,\n createCapturedValueAtFiber(_instance, workInProgress)\n );\n enqueueCapturedUpdate(workInProgress, lane);\n }\n prepareToReadContext(workInProgress);\n if (null === workInProgress.stateNode) {\n state = emptyContextObject;\n _instance = Component.contextType;\n \"contextType\" in Component &&\n null !== _instance &&\n (void 0 === _instance || _instance.$$typeof !== REACT_CONTEXT_TYPE) &&\n !didWarnAboutInvalidateContextType.has(Component) &&\n (didWarnAboutInvalidateContextType.add(Component),\n (lane =\n void 0 === _instance\n ? \" However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file.\"\n : \"object\" !== typeof _instance\n ? \" However, it is set to a \" + typeof _instance + \".\"\n : _instance.$$typeof === REACT_CONSUMER_TYPE\n ? \" Did you accidentally pass the Context.Consumer instead?\"\n : \" However, it is set to an object with keys {\" +\n Object.keys(_instance).join(\", \") +\n \"}.\"),\n console.error(\n \"%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s\",\n getComponentNameFromType(Component) || \"Component\",\n lane\n ));\n \"object\" === typeof _instance &&\n null !== _instance &&\n (state = readContext(_instance));\n _instance = new Component(nextProps, state);\n if (workInProgress.mode & StrictLegacyMode) {\n setIsStrictModeForDevtools(!0);\n try {\n _instance = new Component(nextProps, state);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n state = workInProgress.memoizedState =\n null !== _instance.state && void 0 !== _instance.state\n ? _instance.state\n : null;\n _instance.updater = classComponentUpdater;\n workInProgress.stateNode = _instance;\n _instance._reactInternals = workInProgress;\n _instance._reactInternalInstance = fakeInternalInstance;\n \"function\" === typeof Component.getDerivedStateFromProps &&\n null === state &&\n ((state = getComponentNameFromType(Component) || \"Component\"),\n didWarnAboutUninitializedState.has(state) ||\n (didWarnAboutUninitializedState.add(state),\n console.error(\n \"`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.\",\n state,\n null === _instance.state ? \"null\" : \"undefined\",\n state\n )));\n if (\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof _instance.getSnapshotBeforeUpdate\n ) {\n var foundWillUpdateName = (lane = state = null);\n \"function\" === typeof _instance.componentWillMount &&\n !0 !== _instance.componentWillMount.__suppressDeprecationWarning\n ? (state = \"componentWillMount\")\n : \"function\" === typeof _instance.UNSAFE_componentWillMount &&\n (state = \"UNSAFE_componentWillMount\");\n \"function\" === typeof _instance.componentWillReceiveProps &&\n !0 !==\n _instance.componentWillReceiveProps.__suppressDeprecationWarning\n ? (lane = \"componentWillReceiveProps\")\n : \"function\" ===\n typeof _instance.UNSAFE_componentWillReceiveProps &&\n (lane = \"UNSAFE_componentWillReceiveProps\");\n \"function\" === typeof _instance.componentWillUpdate &&\n !0 !== _instance.componentWillUpdate.__suppressDeprecationWarning\n ? (foundWillUpdateName = \"componentWillUpdate\")\n : \"function\" === typeof _instance.UNSAFE_componentWillUpdate &&\n (foundWillUpdateName = \"UNSAFE_componentWillUpdate\");\n if (null !== state || null !== lane || null !== foundWillUpdateName) {\n _instance = getComponentNameFromType(Component) || \"Component\";\n var newApiName =\n \"function\" === typeof Component.getDerivedStateFromProps\n ? \"getDerivedStateFromProps()\"\n : \"getSnapshotBeforeUpdate()\";\n didWarnAboutLegacyLifecyclesAndDerivedState.has(_instance) ||\n (didWarnAboutLegacyLifecyclesAndDerivedState.add(_instance),\n console.error(\n \"Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\nhttps://react.dev/link/unsafe-component-lifecycles\",\n _instance,\n newApiName,\n null !== state ? \"\\n \" + state : \"\",\n null !== lane ? \"\\n \" + lane : \"\",\n null !== foundWillUpdateName ? \"\\n \" + foundWillUpdateName : \"\"\n ));\n }\n }\n _instance = workInProgress.stateNode;\n state = getComponentNameFromType(Component) || \"Component\";\n _instance.render ||\n (Component.prototype &&\n \"function\" === typeof Component.prototype.render\n ? console.error(\n \"No `render` method found on the %s instance: did you accidentally return an object from the constructor?\",\n state\n )\n : console.error(\n \"No `render` method found on the %s instance: you may have forgotten to define `render`.\",\n state\n ));\n !_instance.getInitialState ||\n _instance.getInitialState.isReactClassApproved ||\n _instance.state ||\n console.error(\n \"getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?\",\n state\n );\n _instance.getDefaultProps &&\n !_instance.getDefaultProps.isReactClassApproved &&\n console.error(\n \"getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.\",\n state\n );\n _instance.contextType &&\n console.error(\n \"contextType was defined as an instance property on %s. Use a static property to define contextType instead.\",\n state\n );\n Component.childContextTypes &&\n !didWarnAboutChildContextTypes.has(Component) &&\n (didWarnAboutChildContextTypes.add(Component),\n console.error(\n \"%s uses the legacy childContextTypes API which was removed in React 19. Use React.createContext() instead. (https://react.dev/link/legacy-context)\",\n state\n ));\n Component.contextTypes &&\n !didWarnAboutContextTypes$1.has(Component) &&\n (didWarnAboutContextTypes$1.add(Component),\n console.error(\n \"%s uses the legacy contextTypes API which was removed in React 19. Use React.createContext() with static contextType instead. (https://react.dev/link/legacy-context)\",\n state\n ));\n \"function\" === typeof _instance.componentShouldUpdate &&\n console.error(\n \"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.\",\n state\n );\n Component.prototype &&\n Component.prototype.isPureReactComponent &&\n \"undefined\" !== typeof _instance.shouldComponentUpdate &&\n console.error(\n \"%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.\",\n getComponentNameFromType(Component) || \"A pure component\"\n );\n \"function\" === typeof _instance.componentDidUnmount &&\n console.error(\n \"%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?\",\n state\n );\n \"function\" === typeof _instance.componentDidReceiveProps &&\n console.error(\n \"%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().\",\n state\n );\n \"function\" === typeof _instance.componentWillRecieveProps &&\n console.error(\n \"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?\",\n state\n );\n \"function\" === typeof _instance.UNSAFE_componentWillRecieveProps &&\n console.error(\n \"%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?\",\n state\n );\n lane = _instance.props !== nextProps;\n void 0 !== _instance.props &&\n lane &&\n console.error(\n \"When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.\",\n state\n );\n _instance.defaultProps &&\n console.error(\n \"Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.\",\n state,\n state\n );\n \"function\" !== typeof _instance.getSnapshotBeforeUpdate ||\n \"function\" === typeof _instance.componentDidUpdate ||\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(Component) ||\n (didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(Component),\n console.error(\n \"%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.\",\n getComponentNameFromType(Component)\n ));\n \"function\" === typeof _instance.getDerivedStateFromProps &&\n console.error(\n \"%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",\n state\n );\n \"function\" === typeof _instance.getDerivedStateFromError &&\n console.error(\n \"%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",\n state\n );\n \"function\" === typeof Component.getSnapshotBeforeUpdate &&\n console.error(\n \"%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.\",\n state\n );\n (lane = _instance.state) &&\n (\"object\" !== typeof lane || isArrayImpl(lane)) &&\n console.error(\"%s.state: must be set to an object or null\", state);\n \"function\" === typeof _instance.getChildContext &&\n \"object\" !== typeof Component.childContextTypes &&\n console.error(\n \"%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().\",\n state\n );\n _instance = workInProgress.stateNode;\n _instance.props = nextProps;\n _instance.state = workInProgress.memoizedState;\n _instance.refs = {};\n initializeUpdateQueue(workInProgress);\n state = Component.contextType;\n _instance.context =\n \"object\" === typeof state && null !== state\n ? readContext(state)\n : emptyContextObject;\n _instance.state === nextProps &&\n ((state = getComponentNameFromType(Component) || \"Component\"),\n didWarnAboutDirectlyAssigningPropsToState.has(state) ||\n (didWarnAboutDirectlyAssigningPropsToState.add(state),\n console.error(\n \"%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.\",\n state\n )));\n workInProgress.mode & StrictLegacyMode &&\n ReactStrictModeWarnings.recordLegacyContextWarning(\n workInProgress,\n _instance\n );\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(\n workInProgress,\n _instance\n );\n _instance.state = workInProgress.memoizedState;\n state = Component.getDerivedStateFromProps;\n \"function\" === typeof state &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n state,\n nextProps\n ),\n (_instance.state = workInProgress.memoizedState));\n \"function\" === typeof Component.getDerivedStateFromProps ||\n \"function\" === typeof _instance.getSnapshotBeforeUpdate ||\n (\"function\" !== typeof _instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof _instance.componentWillMount) ||\n ((state = _instance.state),\n \"function\" === typeof _instance.componentWillMount &&\n _instance.componentWillMount(),\n \"function\" === typeof _instance.UNSAFE_componentWillMount &&\n _instance.UNSAFE_componentWillMount(),\n state !== _instance.state &&\n (console.error(\n \"%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.\",\n getComponentNameFromFiber(workInProgress) || \"Component\"\n ),\n classComponentUpdater.enqueueReplaceState(\n _instance,\n _instance.state,\n null\n )),\n processUpdateQueue(workInProgress, nextProps, _instance, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction(),\n (_instance.state = workInProgress.memoizedState));\n \"function\" === typeof _instance.componentDidMount &&\n (workInProgress.flags |= 4194308);\n (workInProgress.mode & StrictEffectsMode) !== NoMode &&\n (workInProgress.flags |= 134217728);\n _instance = !0;\n } else if (null === current) {\n _instance = workInProgress.stateNode;\n var unresolvedOldProps = workInProgress.memoizedProps;\n lane = resolveClassComponentProps(Component, unresolvedOldProps);\n _instance.props = lane;\n var oldContext = _instance.context;\n foundWillUpdateName = Component.contextType;\n state = emptyContextObject;\n \"object\" === typeof foundWillUpdateName &&\n null !== foundWillUpdateName &&\n (state = readContext(foundWillUpdateName));\n newApiName = Component.getDerivedStateFromProps;\n foundWillUpdateName =\n \"function\" === typeof newApiName ||\n \"function\" === typeof _instance.getSnapshotBeforeUpdate;\n unresolvedOldProps = workInProgress.pendingProps !== unresolvedOldProps;\n foundWillUpdateName ||\n (\"function\" !== typeof _instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof _instance.componentWillReceiveProps) ||\n ((unresolvedOldProps || oldContext !== state) &&\n callComponentWillReceiveProps(\n workInProgress,\n _instance,\n nextProps,\n state\n ));\n hasForceUpdate = !1;\n var oldState = workInProgress.memoizedState;\n _instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, _instance, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n oldContext = workInProgress.memoizedState;\n unresolvedOldProps || oldState !== oldContext || hasForceUpdate\n ? (\"function\" === typeof newApiName &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n newApiName,\n nextProps\n ),\n (oldContext = workInProgress.memoizedState)),\n (lane =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n lane,\n nextProps,\n oldState,\n oldContext,\n state\n ))\n ? (foundWillUpdateName ||\n (\"function\" !== typeof _instance.UNSAFE_componentWillMount &&\n \"function\" !== typeof _instance.componentWillMount) ||\n (\"function\" === typeof _instance.componentWillMount &&\n _instance.componentWillMount(),\n \"function\" === typeof _instance.UNSAFE_componentWillMount &&\n _instance.UNSAFE_componentWillMount()),\n \"function\" === typeof _instance.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.mode & StrictEffectsMode) !== NoMode &&\n (workInProgress.flags |= 134217728))\n : (\"function\" === typeof _instance.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.mode & StrictEffectsMode) !== NoMode &&\n (workInProgress.flags |= 134217728),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = oldContext)),\n (_instance.props = nextProps),\n (_instance.state = oldContext),\n (_instance.context = state),\n (_instance = lane))\n : (\"function\" === typeof _instance.componentDidMount &&\n (workInProgress.flags |= 4194308),\n (workInProgress.mode & StrictEffectsMode) !== NoMode &&\n (workInProgress.flags |= 134217728),\n (_instance = !1));\n } else {\n _instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n state = workInProgress.memoizedProps;\n foundWillUpdateName = resolveClassComponentProps(Component, state);\n _instance.props = foundWillUpdateName;\n newApiName = workInProgress.pendingProps;\n oldState = _instance.context;\n oldContext = Component.contextType;\n lane = emptyContextObject;\n \"object\" === typeof oldContext &&\n null !== oldContext &&\n (lane = readContext(oldContext));\n unresolvedOldProps = Component.getDerivedStateFromProps;\n (oldContext =\n \"function\" === typeof unresolvedOldProps ||\n \"function\" === typeof _instance.getSnapshotBeforeUpdate) ||\n (\"function\" !== typeof _instance.UNSAFE_componentWillReceiveProps &&\n \"function\" !== typeof _instance.componentWillReceiveProps) ||\n ((state !== newApiName || oldState !== lane) &&\n callComponentWillReceiveProps(\n workInProgress,\n _instance,\n nextProps,\n lane\n ));\n hasForceUpdate = !1;\n oldState = workInProgress.memoizedState;\n _instance.state = oldState;\n processUpdateQueue(workInProgress, nextProps, _instance, renderLanes);\n suspendIfUpdateReadFromEntangledAsyncAction();\n var newState = workInProgress.memoizedState;\n state !== newApiName ||\n oldState !== newState ||\n hasForceUpdate ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies))\n ? (\"function\" === typeof unresolvedOldProps &&\n (applyDerivedStateFromProps(\n workInProgress,\n Component,\n unresolvedOldProps,\n nextProps\n ),\n (newState = workInProgress.memoizedState)),\n (foundWillUpdateName =\n hasForceUpdate ||\n checkShouldComponentUpdate(\n workInProgress,\n Component,\n foundWillUpdateName,\n nextProps,\n oldState,\n newState,\n lane\n ) ||\n (null !== current &&\n null !== current.dependencies &&\n checkIfContextChanged(current.dependencies)))\n ? (oldContext ||\n (\"function\" !== typeof _instance.UNSAFE_componentWillUpdate &&\n \"function\" !== typeof _instance.componentWillUpdate) ||\n (\"function\" === typeof _instance.componentWillUpdate &&\n _instance.componentWillUpdate(nextProps, newState, lane),\n \"function\" === typeof _instance.UNSAFE_componentWillUpdate &&\n _instance.UNSAFE_componentWillUpdate(\n nextProps,\n newState,\n lane\n )),\n \"function\" === typeof _instance.componentDidUpdate &&\n (workInProgress.flags |= 4),\n \"function\" === typeof _instance.getSnapshotBeforeUpdate &&\n (workInProgress.flags |= 1024))\n : (\"function\" !== typeof _instance.componentDidUpdate ||\n (state === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof _instance.getSnapshotBeforeUpdate ||\n (state === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (workInProgress.memoizedProps = nextProps),\n (workInProgress.memoizedState = newState)),\n (_instance.props = nextProps),\n (_instance.state = newState),\n (_instance.context = lane),\n (_instance = foundWillUpdateName))\n : (\"function\" !== typeof _instance.componentDidUpdate ||\n (state === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 4),\n \"function\" !== typeof _instance.getSnapshotBeforeUpdate ||\n (state === current.memoizedProps &&\n oldState === current.memoizedState) ||\n (workInProgress.flags |= 1024),\n (_instance = !1));\n }\n lane = _instance;\n markRef(current, workInProgress);\n state = 0 !== (workInProgress.flags & 128);\n if (lane || state) {\n lane = workInProgress.stateNode;\n setCurrentFiber(workInProgress);\n if (state && \"function\" !== typeof Component.getDerivedStateFromError)\n (Component = null), (profilerStartTime = -1);\n else if (\n ((Component = callRenderInDEV(lane)),\n workInProgress.mode & StrictLegacyMode)\n ) {\n setIsStrictModeForDevtools(!0);\n try {\n callRenderInDEV(lane);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n workInProgress.flags |= 1;\n null !== current && state\n ? ((workInProgress.child = reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n )),\n (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n Component,\n renderLanes\n )))\n : reconcileChildren(current, workInProgress, Component, renderLanes);\n workInProgress.memoizedState = lane.state;\n current = workInProgress.child;\n } else\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n renderLanes = workInProgress.stateNode;\n _instance &&\n renderLanes.props !== nextProps &&\n (didWarnAboutReassigningProps ||\n console.error(\n \"It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.\",\n getComponentNameFromFiber(workInProgress) || \"a component\"\n ),\n (didWarnAboutReassigningProps = !0));\n return current;\n }\n function mountHostRootWithoutHydrating(\n current,\n workInProgress,\n nextChildren,\n renderLanes\n ) {\n resetHydrationState();\n workInProgress.flags |= 256;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n }\n function validateFunctionComponentInDev(workInProgress, Component) {\n Component &&\n Component.childContextTypes &&\n console.error(\n \"childContextTypes cannot be defined on a function component.\\n %s.childContextTypes = ...\",\n Component.displayName || Component.name || \"Component\"\n );\n \"function\" === typeof Component.getDerivedStateFromProps &&\n ((workInProgress = getComponentNameFromType(Component) || \"Unknown\"),\n didWarnAboutGetDerivedStateOnFunctionComponent[workInProgress] ||\n (console.error(\n \"%s: Function components do not support getDerivedStateFromProps.\",\n workInProgress\n ),\n (didWarnAboutGetDerivedStateOnFunctionComponent[workInProgress] =\n !0)));\n \"object\" === typeof Component.contextType &&\n null !== Component.contextType &&\n ((Component = getComponentNameFromType(Component) || \"Unknown\"),\n didWarnAboutContextTypeOnFunctionComponent[Component] ||\n (console.error(\n \"%s: Function components do not support contextType.\",\n Component\n ),\n (didWarnAboutContextTypeOnFunctionComponent[Component] = !0)));\n }\n function mountSuspenseOffscreenState(renderLanes) {\n return { baseLanes: renderLanes, cachePool: getSuspendedCache() };\n }\n function getRemainingWorkInPrimaryTree(\n current,\n primaryTreeDidDefer,\n renderLanes\n ) {\n current = null !== current ? current.childLanes & ~renderLanes : 0;\n primaryTreeDidDefer && (current |= workInProgressDeferredLane);\n return current;\n }\n function updateSuspenseComponent(current, workInProgress, renderLanes) {\n var JSCompiler_object_inline_digest_2724;\n var JSCompiler_object_inline_stack_2725 = workInProgress.pendingProps;\n shouldSuspendImpl(workInProgress) && (workInProgress.flags |= 128);\n var JSCompiler_object_inline_message_2723 = !1;\n var didSuspend = 0 !== (workInProgress.flags & 128);\n (JSCompiler_object_inline_digest_2724 = didSuspend) ||\n (JSCompiler_object_inline_digest_2724 =\n null !== current && null === current.memoizedState\n ? !1\n : 0 !== (suspenseStackCursor.current & ForceSuspenseFallback));\n JSCompiler_object_inline_digest_2724 &&\n ((JSCompiler_object_inline_message_2723 = !0),\n (workInProgress.flags &= -129));\n JSCompiler_object_inline_digest_2724 = 0 !== (workInProgress.flags & 32);\n workInProgress.flags &= -33;\n if (null === current) {\n if (isHydrating) {\n JSCompiler_object_inline_message_2723\n ? pushPrimaryTreeSuspenseHandler(workInProgress)\n : reuseSuspenseHandlerOnStack(workInProgress);\n (current = nextHydratableInstance)\n ? ((renderLanes = canHydrateHydrationBoundary(\n current,\n rootOrSingletonContext\n )),\n (renderLanes =\n null !== renderLanes && renderLanes.data !== ACTIVITY_START_DATA\n ? renderLanes\n : null),\n null !== renderLanes &&\n ((JSCompiler_object_inline_digest_2724 = {\n dehydrated: renderLanes,\n treeContext: getSuspendedTreeContext(),\n retryLane: 536870912,\n hydrationErrors: null\n }),\n (workInProgress.memoizedState =\n JSCompiler_object_inline_digest_2724),\n (JSCompiler_object_inline_digest_2724 =\n createFiberFromDehydratedFragment(renderLanes)),\n (JSCompiler_object_inline_digest_2724.return = workInProgress),\n (workInProgress.child = JSCompiler_object_inline_digest_2724),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null)))\n : (renderLanes = null);\n if (null === renderLanes)\n throw (\n (warnNonHydratedInstance(workInProgress, current),\n throwOnHydrationMismatch(workInProgress))\n );\n isSuspenseInstanceFallback(renderLanes)\n ? (workInProgress.lanes = 32)\n : (workInProgress.lanes = 536870912);\n return null;\n }\n var nextPrimaryChildren = JSCompiler_object_inline_stack_2725.children;\n JSCompiler_object_inline_stack_2725 =\n JSCompiler_object_inline_stack_2725.fallback;\n if (JSCompiler_object_inline_message_2723) {\n reuseSuspenseHandlerOnStack(workInProgress);\n var mode = workInProgress.mode;\n nextPrimaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"hidden\", children: nextPrimaryChildren },\n mode\n );\n JSCompiler_object_inline_stack_2725 = createFiberFromFragment(\n JSCompiler_object_inline_stack_2725,\n mode,\n renderLanes,\n null\n );\n nextPrimaryChildren.return = workInProgress;\n JSCompiler_object_inline_stack_2725.return = workInProgress;\n nextPrimaryChildren.sibling = JSCompiler_object_inline_stack_2725;\n workInProgress.child = nextPrimaryChildren;\n JSCompiler_object_inline_stack_2725 = workInProgress.child;\n JSCompiler_object_inline_stack_2725.memoizedState =\n mountSuspenseOffscreenState(renderLanes);\n JSCompiler_object_inline_stack_2725.childLanes =\n getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_object_inline_digest_2724,\n renderLanes\n );\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return bailoutOffscreenComponent(\n null,\n JSCompiler_object_inline_stack_2725\n );\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n return mountSuspensePrimaryChildren(\n workInProgress,\n nextPrimaryChildren\n );\n }\n var prevState = current.memoizedState;\n if (null !== prevState) {\n var JSCompiler_object_inline_componentStack_2726 = prevState.dehydrated;\n if (null !== JSCompiler_object_inline_componentStack_2726) {\n if (didSuspend)\n workInProgress.flags & 256\n ? (pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags &= -257),\n (workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n )))\n : null !== workInProgress.memoizedState\n ? (reuseSuspenseHandlerOnStack(workInProgress),\n (workInProgress.child = current.child),\n (workInProgress.flags |= 128),\n (workInProgress = null))\n : (reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren =\n JSCompiler_object_inline_stack_2725.fallback),\n (mode = workInProgress.mode),\n (JSCompiler_object_inline_stack_2725 =\n mountWorkInProgressOffscreenFiber(\n {\n mode: \"visible\",\n children: JSCompiler_object_inline_stack_2725.children\n },\n mode\n )),\n (nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n mode,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2),\n (JSCompiler_object_inline_stack_2725.return = workInProgress),\n (nextPrimaryChildren.return = workInProgress),\n (JSCompiler_object_inline_stack_2725.sibling =\n nextPrimaryChildren),\n (workInProgress.child = JSCompiler_object_inline_stack_2725),\n reconcileChildFibers(\n workInProgress,\n current.child,\n null,\n renderLanes\n ),\n (JSCompiler_object_inline_stack_2725 = workInProgress.child),\n (JSCompiler_object_inline_stack_2725.memoizedState =\n mountSuspenseOffscreenState(renderLanes)),\n (JSCompiler_object_inline_stack_2725.childLanes =\n getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_object_inline_digest_2724,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n (workInProgress = bailoutOffscreenComponent(\n null,\n JSCompiler_object_inline_stack_2725\n )));\n else if (\n (pushPrimaryTreeSuspenseHandler(workInProgress),\n warnIfHydrating(),\n 0 !== (renderLanes & 536870912) &&\n markRenderDerivedCause(workInProgress),\n isSuspenseInstanceFallback(\n JSCompiler_object_inline_componentStack_2726\n ))\n ) {\n JSCompiler_object_inline_digest_2724 =\n JSCompiler_object_inline_componentStack_2726.nextSibling &&\n JSCompiler_object_inline_componentStack_2726.nextSibling.dataset;\n if (JSCompiler_object_inline_digest_2724) {\n nextPrimaryChildren = JSCompiler_object_inline_digest_2724.dgst;\n var message = JSCompiler_object_inline_digest_2724.msg;\n mode = JSCompiler_object_inline_digest_2724.stck;\n var componentStack = JSCompiler_object_inline_digest_2724.cstck;\n }\n JSCompiler_object_inline_message_2723 = message;\n JSCompiler_object_inline_digest_2724 = nextPrimaryChildren;\n JSCompiler_object_inline_stack_2725 = mode;\n JSCompiler_object_inline_componentStack_2726 = componentStack;\n nextPrimaryChildren = JSCompiler_object_inline_message_2723;\n mode = JSCompiler_object_inline_componentStack_2726;\n nextPrimaryChildren = nextPrimaryChildren\n ? Error(nextPrimaryChildren)\n : Error(\n \"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"\n );\n nextPrimaryChildren.stack =\n JSCompiler_object_inline_stack_2725 || \"\";\n nextPrimaryChildren.digest = JSCompiler_object_inline_digest_2724;\n JSCompiler_object_inline_digest_2724 =\n void 0 === mode ? null : mode;\n JSCompiler_object_inline_stack_2725 = {\n value: nextPrimaryChildren,\n source: null,\n stack: JSCompiler_object_inline_digest_2724\n };\n \"string\" === typeof JSCompiler_object_inline_digest_2724 &&\n CapturedStacks.set(\n nextPrimaryChildren,\n JSCompiler_object_inline_stack_2725\n );\n queueHydrationError(JSCompiler_object_inline_stack_2725);\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else if (\n (didReceiveUpdate ||\n propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (JSCompiler_object_inline_digest_2724 =\n 0 !== (renderLanes & current.childLanes)),\n didReceiveUpdate || JSCompiler_object_inline_digest_2724)\n ) {\n JSCompiler_object_inline_digest_2724 = workInProgressRoot;\n if (\n null !== JSCompiler_object_inline_digest_2724 &&\n ((JSCompiler_object_inline_stack_2725 = getBumpedLaneForHydration(\n JSCompiler_object_inline_digest_2724,\n renderLanes\n )),\n 0 !== JSCompiler_object_inline_stack_2725 &&\n JSCompiler_object_inline_stack_2725 !== prevState.retryLane)\n )\n throw (\n ((prevState.retryLane = JSCompiler_object_inline_stack_2725),\n enqueueConcurrentRenderForLane(\n current,\n JSCompiler_object_inline_stack_2725\n ),\n scheduleUpdateOnFiber(\n JSCompiler_object_inline_digest_2724,\n current,\n JSCompiler_object_inline_stack_2725\n ),\n SelectiveHydrationException)\n );\n isSuspenseInstancePending(\n JSCompiler_object_inline_componentStack_2726\n ) || renderDidSuspendDelayIfPossible();\n workInProgress = retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n );\n } else\n isSuspenseInstancePending(\n JSCompiler_object_inline_componentStack_2726\n )\n ? ((workInProgress.flags |= 192),\n (workInProgress.child = current.child),\n (workInProgress = null))\n : ((current = prevState.treeContext),\n (nextHydratableInstance = getNextHydratable(\n JSCompiler_object_inline_componentStack_2726.nextSibling\n )),\n (hydrationParentFiber = workInProgress),\n (isHydrating = !0),\n (hydrationErrors = null),\n (didSuspendOrErrorDEV = !1),\n (hydrationDiffRootDEV = null),\n (rootOrSingletonContext = !1),\n null !== current &&\n restoreSuspendedTreeContext(workInProgress, current),\n (workInProgress = mountSuspensePrimaryChildren(\n workInProgress,\n JSCompiler_object_inline_stack_2725.children\n )),\n (workInProgress.flags |= 4096));\n return workInProgress;\n }\n }\n if (JSCompiler_object_inline_message_2723)\n return (\n reuseSuspenseHandlerOnStack(workInProgress),\n (nextPrimaryChildren = JSCompiler_object_inline_stack_2725.fallback),\n (mode = workInProgress.mode),\n (componentStack = current.child),\n (JSCompiler_object_inline_componentStack_2726 =\n componentStack.sibling),\n (JSCompiler_object_inline_stack_2725 = createWorkInProgress(\n componentStack,\n {\n mode: \"hidden\",\n children: JSCompiler_object_inline_stack_2725.children\n }\n )),\n (JSCompiler_object_inline_stack_2725.subtreeFlags =\n componentStack.subtreeFlags & 65011712),\n null !== JSCompiler_object_inline_componentStack_2726\n ? (nextPrimaryChildren = createWorkInProgress(\n JSCompiler_object_inline_componentStack_2726,\n nextPrimaryChildren\n ))\n : ((nextPrimaryChildren = createFiberFromFragment(\n nextPrimaryChildren,\n mode,\n renderLanes,\n null\n )),\n (nextPrimaryChildren.flags |= 2)),\n (nextPrimaryChildren.return = workInProgress),\n (JSCompiler_object_inline_stack_2725.return = workInProgress),\n (JSCompiler_object_inline_stack_2725.sibling = nextPrimaryChildren),\n (workInProgress.child = JSCompiler_object_inline_stack_2725),\n bailoutOffscreenComponent(null, JSCompiler_object_inline_stack_2725),\n (JSCompiler_object_inline_stack_2725 = workInProgress.child),\n (nextPrimaryChildren = current.child.memoizedState),\n null === nextPrimaryChildren\n ? (nextPrimaryChildren = mountSuspenseOffscreenState(renderLanes))\n : ((mode = nextPrimaryChildren.cachePool),\n null !== mode\n ? ((componentStack = CacheContext._currentValue),\n (mode =\n mode.parent !== componentStack\n ? { parent: componentStack, pool: componentStack }\n : mode))\n : (mode = getSuspendedCache()),\n (nextPrimaryChildren = {\n baseLanes: nextPrimaryChildren.baseLanes | renderLanes,\n cachePool: mode\n })),\n (JSCompiler_object_inline_stack_2725.memoizedState =\n nextPrimaryChildren),\n (JSCompiler_object_inline_stack_2725.childLanes =\n getRemainingWorkInPrimaryTree(\n current,\n JSCompiler_object_inline_digest_2724,\n renderLanes\n )),\n (workInProgress.memoizedState = SUSPENDED_MARKER),\n bailoutOffscreenComponent(\n current.child,\n JSCompiler_object_inline_stack_2725\n )\n );\n null !== prevState &&\n (renderLanes & 62914560) === renderLanes &&\n 0 !== (renderLanes & current.lanes) &&\n markRenderDerivedCause(workInProgress);\n pushPrimaryTreeSuspenseHandler(workInProgress);\n renderLanes = current.child;\n current = renderLanes.sibling;\n renderLanes = createWorkInProgress(renderLanes, {\n mode: \"visible\",\n children: JSCompiler_object_inline_stack_2725.children\n });\n renderLanes.return = workInProgress;\n renderLanes.sibling = null;\n null !== current &&\n ((JSCompiler_object_inline_digest_2724 = workInProgress.deletions),\n null === JSCompiler_object_inline_digest_2724\n ? ((workInProgress.deletions = [current]),\n (workInProgress.flags |= 16))\n : JSCompiler_object_inline_digest_2724.push(current));\n workInProgress.child = renderLanes;\n workInProgress.memoizedState = null;\n return renderLanes;\n }\n function mountSuspensePrimaryChildren(workInProgress, primaryChildren) {\n primaryChildren = mountWorkInProgressOffscreenFiber(\n { mode: \"visible\", children: primaryChildren },\n workInProgress.mode\n );\n primaryChildren.return = workInProgress;\n return (workInProgress.child = primaryChildren);\n }\n function mountWorkInProgressOffscreenFiber(offscreenProps, mode) {\n offscreenProps = createFiber(22, offscreenProps, null, mode);\n offscreenProps.lanes = 0;\n return offscreenProps;\n }\n function retrySuspenseComponentWithoutHydrating(\n current,\n workInProgress,\n renderLanes\n ) {\n reconcileChildFibers(workInProgress, current.child, null, renderLanes);\n current = mountSuspensePrimaryChildren(\n workInProgress,\n workInProgress.pendingProps.children\n );\n current.flags |= 2;\n workInProgress.memoizedState = null;\n return current;\n }\n function scheduleSuspenseWorkOnFiber(fiber, renderLanes, propagationRoot) {\n fiber.lanes |= renderLanes;\n var alternate = fiber.alternate;\n null !== alternate && (alternate.lanes |= renderLanes);\n scheduleContextWorkOnParentPath(\n fiber.return,\n renderLanes,\n propagationRoot\n );\n }\n function initSuspenseListRenderState(\n workInProgress,\n isBackwards,\n tail,\n lastContentRow,\n tailMode,\n treeForkCount\n ) {\n var renderState = workInProgress.memoizedState;\n null === renderState\n ? (workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n treeForkCount: treeForkCount\n })\n : ((renderState.isBackwards = isBackwards),\n (renderState.rendering = null),\n (renderState.renderingStartTime = 0),\n (renderState.last = lastContentRow),\n (renderState.tail = tail),\n (renderState.tailMode = tailMode),\n (renderState.treeForkCount = treeForkCount));\n }\n function updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps,\n revealOrder = nextProps.revealOrder,\n tailMode = nextProps.tail,\n newChildren = nextProps.children,\n suspenseContext = suspenseStackCursor.current;\n (nextProps = 0 !== (suspenseContext & ForceSuspenseFallback))\n ? ((suspenseContext =\n (suspenseContext & SubtreeSuspenseContextMask) |\n ForceSuspenseFallback),\n (workInProgress.flags |= 128))\n : (suspenseContext &= SubtreeSuspenseContextMask);\n push(suspenseStackCursor, suspenseContext, workInProgress);\n suspenseContext = null == revealOrder ? \"null\" : revealOrder;\n if (\n \"forwards\" !== revealOrder &&\n \"unstable_legacy-backwards\" !== revealOrder &&\n \"together\" !== revealOrder &&\n \"independent\" !== revealOrder &&\n !didWarnAboutRevealOrder[suspenseContext]\n )\n if (\n ((didWarnAboutRevealOrder[suspenseContext] = !0), null == revealOrder)\n )\n console.error(\n 'The default for the <SuspenseList revealOrder=\"...\"> prop is changing. To be future compatible you must explictly specify either \"independent\" (the current default), \"together\", \"forwards\" or \"legacy_unstable-backwards\".'\n );\n else if (\"backwards\" === revealOrder)\n console.error(\n 'The rendering order of <SuspenseList revealOrder=\"backwards\"> is changing. To be future compatible you must specify revealOrder=\"legacy_unstable-backwards\" instead.'\n );\n else if (\"string\" === typeof revealOrder)\n switch (revealOrder.toLowerCase()) {\n case \"together\":\n case \"forwards\":\n case \"backwards\":\n case \"independent\":\n console.error(\n '\"%s\" is not a valid value for revealOrder on <SuspenseList />. Use lowercase \"%s\" instead.',\n revealOrder,\n revealOrder.toLowerCase()\n );\n break;\n case \"forward\":\n case \"backward\":\n console.error(\n '\"%s\" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use \"%ss\" instead.',\n revealOrder,\n revealOrder.toLowerCase()\n );\n break;\n default:\n console.error(\n '\"%s\" is not a supported revealOrder on <SuspenseList />. Did you mean \"independent\", \"together\", \"forwards\" or \"backwards\"?',\n revealOrder\n );\n }\n else\n console.error(\n '%s is not a supported value for revealOrder on <SuspenseList />. Did you mean \"independent\", \"together\", \"forwards\" or \"backwards\"?',\n revealOrder\n );\n suspenseContext = null == tailMode ? \"null\" : tailMode;\n if (!didWarnAboutTailOptions[suspenseContext])\n if (null == tailMode) {\n if (\n \"forwards\" === revealOrder ||\n \"backwards\" === revealOrder ||\n \"unstable_legacy-backwards\" === revealOrder\n )\n (didWarnAboutTailOptions[suspenseContext] = !0),\n console.error(\n 'The default for the <SuspenseList tail=\"...\"> prop is changing. To be future compatible you must explictly specify either \"visible\" (the current default), \"collapsed\" or \"hidden\".'\n );\n } else\n \"visible\" !== tailMode &&\n \"collapsed\" !== tailMode &&\n \"hidden\" !== tailMode\n ? ((didWarnAboutTailOptions[suspenseContext] = !0),\n console.error(\n '\"%s\" is not a supported value for tail on <SuspenseList />. Did you mean \"visible\", \"collapsed\" or \"hidden\"?',\n tailMode\n ))\n : \"forwards\" !== revealOrder &&\n \"backwards\" !== revealOrder &&\n \"unstable_legacy-backwards\" !== revealOrder &&\n ((didWarnAboutTailOptions[suspenseContext] = !0),\n console.error(\n '<SuspenseList tail=\"%s\" /> is only valid if revealOrder is \"forwards\" or \"backwards\". Did you mean to specify revealOrder=\"forwards\"?',\n tailMode\n ));\n a: if (\n (\"forwards\" === revealOrder ||\n \"backwards\" === revealOrder ||\n \"unstable_legacy-backwards\" === revealOrder) &&\n void 0 !== newChildren &&\n null !== newChildren &&\n !1 !== newChildren\n )\n if (isArrayImpl(newChildren))\n for (\n suspenseContext = 0;\n suspenseContext < newChildren.length;\n suspenseContext++\n ) {\n if (\n !validateSuspenseListNestedChild(\n newChildren[suspenseContext],\n suspenseContext\n )\n )\n break a;\n }\n else if (\n ((suspenseContext = getIteratorFn(newChildren)),\n \"function\" === typeof suspenseContext)\n ) {\n if ((suspenseContext = suspenseContext.call(newChildren)))\n for (\n var step = suspenseContext.next(), _i = 0;\n !step.done;\n step = suspenseContext.next()\n ) {\n if (!validateSuspenseListNestedChild(step.value, _i)) break a;\n _i++;\n }\n } else\n console.error(\n 'A single row was passed to a <SuspenseList revealOrder=\"%s\" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?',\n revealOrder\n );\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n isHydrating\n ? (warnIfNotHydrating(), (newChildren = treeForkCount))\n : (newChildren = 0);\n if (!nextProps && null !== current && 0 !== (current.flags & 128))\n a: for (current = workInProgress.child; null !== current; ) {\n if (13 === current.tag)\n null !== current.memoizedState &&\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (19 === current.tag)\n scheduleSuspenseWorkOnFiber(current, renderLanes, workInProgress);\n else if (null !== current.child) {\n current.child.return = current;\n current = current.child;\n continue;\n }\n if (current === workInProgress) break a;\n for (; null === current.sibling; ) {\n if (null === current.return || current.return === workInProgress)\n break a;\n current = current.return;\n }\n current.sibling.return = current.return;\n current = current.sibling;\n }\n switch (revealOrder) {\n case \"forwards\":\n renderLanes = workInProgress.child;\n for (revealOrder = null; null !== renderLanes; )\n (current = renderLanes.alternate),\n null !== current &&\n null === findFirstSuspended(current) &&\n (revealOrder = renderLanes),\n (renderLanes = renderLanes.sibling);\n renderLanes = revealOrder;\n null === renderLanes\n ? ((revealOrder = workInProgress.child),\n (workInProgress.child = null))\n : ((revealOrder = renderLanes.sibling),\n (renderLanes.sibling = null));\n initSuspenseListRenderState(\n workInProgress,\n !1,\n revealOrder,\n renderLanes,\n tailMode,\n newChildren\n );\n break;\n case \"backwards\":\n case \"unstable_legacy-backwards\":\n renderLanes = null;\n revealOrder = workInProgress.child;\n for (workInProgress.child = null; null !== revealOrder; ) {\n current = revealOrder.alternate;\n if (null !== current && null === findFirstSuspended(current)) {\n workInProgress.child = revealOrder;\n break;\n }\n current = revealOrder.sibling;\n revealOrder.sibling = renderLanes;\n renderLanes = revealOrder;\n revealOrder = current;\n }\n initSuspenseListRenderState(\n workInProgress,\n !0,\n renderLanes,\n null,\n tailMode,\n newChildren\n );\n break;\n case \"together\":\n initSuspenseListRenderState(\n workInProgress,\n !1,\n null,\n null,\n void 0,\n newChildren\n );\n break;\n default:\n workInProgress.memoizedState = null;\n }\n return workInProgress.child;\n }\n function bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n ) {\n null !== current && (workInProgress.dependencies = current.dependencies);\n profilerStartTime = -1;\n workInProgressRootSkippedLanes |= workInProgress.lanes;\n if (0 === (renderLanes & workInProgress.childLanes))\n if (null !== current) {\n if (\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n 0 === (renderLanes & workInProgress.childLanes))\n )\n return null;\n } else return null;\n if (null !== current && workInProgress.child !== current.child)\n throw Error(\"Resuming work not yet implemented.\");\n if (null !== workInProgress.child) {\n current = workInProgress.child;\n renderLanes = createWorkInProgress(current, current.pendingProps);\n workInProgress.child = renderLanes;\n for (renderLanes.return = workInProgress; null !== current.sibling; )\n (current = current.sibling),\n (renderLanes = renderLanes.sibling =\n createWorkInProgress(current, current.pendingProps)),\n (renderLanes.return = workInProgress);\n renderLanes.sibling = null;\n }\n return workInProgress.child;\n }\n function checkScheduledUpdateOrContext(current, renderLanes) {\n if (0 !== (current.lanes & renderLanes)) return !0;\n current = current.dependencies;\n return null !== current && checkIfContextChanged(current) ? !0 : !1;\n }\n function attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n ) {\n switch (workInProgress.tag) {\n case 3:\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n pushProvider(\n workInProgress,\n CacheContext,\n current.memoizedState.cache\n );\n resetHydrationState();\n break;\n case 27:\n case 5:\n pushHostContext(workInProgress);\n break;\n case 4:\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n break;\n case 10:\n pushProvider(\n workInProgress,\n workInProgress.type,\n workInProgress.memoizedProps.value\n );\n break;\n case 12:\n 0 !== (renderLanes & workInProgress.childLanes) &&\n (workInProgress.flags |= 4);\n workInProgress.flags |= 2048;\n var stateNode = workInProgress.stateNode;\n stateNode.effectDuration = -0;\n stateNode.passiveEffectDuration = -0;\n break;\n case 31:\n if (null !== workInProgress.memoizedState)\n return (\n (workInProgress.flags |= 128),\n pushDehydratedActivitySuspenseHandler(workInProgress),\n null\n );\n break;\n case 13:\n stateNode = workInProgress.memoizedState;\n if (null !== stateNode) {\n if (null !== stateNode.dehydrated)\n return (\n pushPrimaryTreeSuspenseHandler(workInProgress),\n (workInProgress.flags |= 128),\n null\n );\n if (0 !== (renderLanes & workInProgress.child.childLanes))\n return updateSuspenseComponent(\n current,\n workInProgress,\n renderLanes\n );\n pushPrimaryTreeSuspenseHandler(workInProgress);\n current = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n return null !== current ? current.sibling : null;\n }\n pushPrimaryTreeSuspenseHandler(workInProgress);\n break;\n case 19:\n var didSuspendBefore = 0 !== (current.flags & 128);\n stateNode = 0 !== (renderLanes & workInProgress.childLanes);\n stateNode ||\n (propagateParentContextChanges(\n current,\n workInProgress,\n renderLanes,\n !1\n ),\n (stateNode = 0 !== (renderLanes & workInProgress.childLanes)));\n if (didSuspendBefore) {\n if (stateNode)\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n workInProgress.flags |= 128;\n }\n didSuspendBefore = workInProgress.memoizedState;\n null !== didSuspendBefore &&\n ((didSuspendBefore.rendering = null),\n (didSuspendBefore.tail = null),\n (didSuspendBefore.lastEffect = null));\n push(\n suspenseStackCursor,\n suspenseStackCursor.current,\n workInProgress\n );\n if (stateNode) break;\n else return null;\n case 22:\n return (\n (workInProgress.lanes = 0),\n updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n )\n );\n case 24:\n pushProvider(\n workInProgress,\n CacheContext,\n current.memoizedState.cache\n );\n }\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n function beginWork(current, workInProgress, renderLanes) {\n if (workInProgress._debugNeedsRemount && null !== current) {\n renderLanes = createFiberFromTypeAndProps(\n workInProgress.type,\n workInProgress.key,\n workInProgress.pendingProps,\n workInProgress._debugOwner || null,\n workInProgress.mode,\n workInProgress.lanes\n );\n renderLanes._debugStack = workInProgress._debugStack;\n renderLanes._debugTask = workInProgress._debugTask;\n var returnFiber = workInProgress.return;\n if (null === returnFiber) throw Error(\"Cannot swap the root fiber.\");\n current.alternate = null;\n workInProgress.alternate = null;\n renderLanes.index = workInProgress.index;\n renderLanes.sibling = workInProgress.sibling;\n renderLanes.return = workInProgress.return;\n renderLanes.ref = workInProgress.ref;\n renderLanes._debugInfo = workInProgress._debugInfo;\n if (workInProgress === returnFiber.child)\n returnFiber.child = renderLanes;\n else {\n var prevSibling = returnFiber.child;\n if (null === prevSibling)\n throw Error(\"Expected parent to have a child.\");\n for (; prevSibling.sibling !== workInProgress; )\n if (((prevSibling = prevSibling.sibling), null === prevSibling))\n throw Error(\"Expected to find the previous sibling.\");\n prevSibling.sibling = renderLanes;\n }\n workInProgress = returnFiber.deletions;\n null === workInProgress\n ? ((returnFiber.deletions = [current]), (returnFiber.flags |= 16))\n : workInProgress.push(current);\n renderLanes.flags |= 2;\n return renderLanes;\n }\n if (null !== current)\n if (\n current.memoizedProps !== workInProgress.pendingProps ||\n workInProgress.type !== current.type\n )\n didReceiveUpdate = !0;\n else {\n if (\n !checkScheduledUpdateOrContext(current, renderLanes) &&\n 0 === (workInProgress.flags & 128)\n )\n return (\n (didReceiveUpdate = !1),\n attemptEarlyBailoutIfNoScheduledUpdate(\n current,\n workInProgress,\n renderLanes\n )\n );\n didReceiveUpdate = 0 !== (current.flags & 131072) ? !0 : !1;\n }\n else {\n didReceiveUpdate = !1;\n if ((returnFiber = isHydrating))\n warnIfNotHydrating(),\n (returnFiber = 0 !== (workInProgress.flags & 1048576));\n returnFiber &&\n ((returnFiber = workInProgress.index),\n warnIfNotHydrating(),\n pushTreeId(workInProgress, treeForkCount, returnFiber));\n }\n workInProgress.lanes = 0;\n switch (workInProgress.tag) {\n case 16:\n a: if (\n ((returnFiber = workInProgress.pendingProps),\n (current = resolveLazy(workInProgress.elementType)),\n (workInProgress.type = current),\n \"function\" === typeof current)\n )\n shouldConstruct(current)\n ? ((returnFiber = resolveClassComponentProps(\n current,\n returnFiber\n )),\n (workInProgress.tag = 1),\n (workInProgress.type = current =\n resolveFunctionForHotReloading(current)),\n (workInProgress = updateClassComponent(\n null,\n workInProgress,\n current,\n returnFiber,\n renderLanes\n )))\n : ((workInProgress.tag = 0),\n validateFunctionComponentInDev(workInProgress, current),\n (workInProgress.type = current =\n resolveFunctionForHotReloading(current)),\n (workInProgress = updateFunctionComponent(\n null,\n workInProgress,\n current,\n returnFiber,\n renderLanes\n )));\n else {\n if (void 0 !== current && null !== current)\n if (\n ((prevSibling = current.$$typeof),\n prevSibling === REACT_FORWARD_REF_TYPE)\n ) {\n workInProgress.tag = 11;\n workInProgress.type = current =\n resolveForwardRefForHotReloading(current);\n workInProgress = updateForwardRef(\n null,\n workInProgress,\n current,\n returnFiber,\n renderLanes\n );\n break a;\n } else if (prevSibling === REACT_MEMO_TYPE) {\n workInProgress.tag = 14;\n workInProgress = updateMemoComponent(\n null,\n workInProgress,\n current,\n returnFiber,\n renderLanes\n );\n break a;\n }\n workInProgress = \"\";\n null !== current &&\n \"object\" === typeof current &&\n current.$$typeof === REACT_LAZY_TYPE &&\n (workInProgress =\n \" Did you wrap a component in React.lazy() more than once?\");\n renderLanes = getComponentNameFromType(current) || current;\n throw Error(\n \"Element type is invalid. Received a promise that resolves to: \" +\n renderLanes +\n \". Lazy element type must resolve to a class or function.\" +\n workInProgress\n );\n }\n return workInProgress;\n case 0:\n return updateFunctionComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 1:\n return (\n (returnFiber = workInProgress.type),\n (prevSibling = resolveClassComponentProps(\n returnFiber,\n workInProgress.pendingProps\n )),\n updateClassComponent(\n current,\n workInProgress,\n returnFiber,\n prevSibling,\n renderLanes\n )\n );\n case 3:\n a: {\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n );\n if (null === current)\n throw Error(\n \"Should have a current fiber. This is a bug in React.\"\n );\n returnFiber = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n prevSibling = prevState.element;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, returnFiber, null, renderLanes);\n var nextState = workInProgress.memoizedState;\n returnFiber = nextState.cache;\n pushProvider(workInProgress, CacheContext, returnFiber);\n returnFiber !== prevState.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n );\n suspendIfUpdateReadFromEntangledAsyncAction();\n returnFiber = nextState.element;\n if (prevState.isDehydrated)\n if (\n ((prevState = {\n element: returnFiber,\n isDehydrated: !1,\n cache: nextState.cache\n }),\n (workInProgress.updateQueue.baseState = prevState),\n (workInProgress.memoizedState = prevState),\n workInProgress.flags & 256)\n ) {\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n );\n break a;\n } else if (returnFiber !== prevSibling) {\n prevSibling = createCapturedValueAtFiber(\n Error(\n \"This root received an early update, before anything was able hydrate. Switched the entire root to client rendering.\"\n ),\n workInProgress\n );\n queueHydrationError(prevSibling);\n workInProgress = mountHostRootWithoutHydrating(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n );\n break a;\n } else {\n current = workInProgress.stateNode.containerInfo;\n switch (current.nodeType) {\n case 9:\n current = current.body;\n break;\n default:\n current =\n \"HTML\" === current.nodeName\n ? current.ownerDocument.body\n : current;\n }\n nextHydratableInstance = getNextHydratable(current.firstChild);\n hydrationParentFiber = workInProgress;\n isHydrating = !0;\n hydrationErrors = null;\n didSuspendOrErrorDEV = !1;\n hydrationDiffRootDEV = null;\n rootOrSingletonContext = !0;\n renderLanes = mountChildFibers(\n workInProgress,\n null,\n returnFiber,\n renderLanes\n );\n for (workInProgress.child = renderLanes; renderLanes; )\n (renderLanes.flags = (renderLanes.flags & -3) | 4096),\n (renderLanes = renderLanes.sibling);\n }\n else {\n resetHydrationState();\n if (returnFiber === prevSibling) {\n workInProgress = bailoutOnAlreadyFinishedWork(\n current,\n workInProgress,\n renderLanes\n );\n break a;\n }\n reconcileChildren(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n );\n }\n workInProgress = workInProgress.child;\n }\n return workInProgress;\n case 26:\n return (\n markRef(current, workInProgress),\n null === current\n ? (renderLanes = getResource(\n workInProgress.type,\n null,\n workInProgress.pendingProps,\n null\n ))\n ? (workInProgress.memoizedState = renderLanes)\n : isHydrating ||\n ((renderLanes = workInProgress.type),\n (current = workInProgress.pendingProps),\n (returnFiber = requiredContext(\n rootInstanceStackCursor.current\n )),\n (returnFiber =\n getOwnerDocumentFromRootContainer(\n returnFiber\n ).createElement(renderLanes)),\n (returnFiber[internalInstanceKey] = workInProgress),\n (returnFiber[internalPropsKey] = current),\n setInitialProperties(returnFiber, renderLanes, current),\n markNodeAsHoistable(returnFiber),\n (workInProgress.stateNode = returnFiber))\n : (workInProgress.memoizedState = getResource(\n workInProgress.type,\n current.memoizedProps,\n workInProgress.pendingProps,\n current.memoizedState\n )),\n null\n );\n case 27:\n return (\n pushHostContext(workInProgress),\n null === current &&\n isHydrating &&\n ((returnFiber = requiredContext(rootInstanceStackCursor.current)),\n (prevSibling = getHostContext()),\n (returnFiber = workInProgress.stateNode =\n resolveSingletonInstance(\n workInProgress.type,\n workInProgress.pendingProps,\n returnFiber,\n prevSibling,\n !1\n )),\n didSuspendOrErrorDEV ||\n ((prevSibling = diffHydratedProperties(\n returnFiber,\n workInProgress.type,\n workInProgress.pendingProps,\n prevSibling\n )),\n null !== prevSibling &&\n (buildHydrationDiffNode(workInProgress, 0).serverProps =\n prevSibling)),\n (hydrationParentFiber = workInProgress),\n (rootOrSingletonContext = !0),\n (prevSibling = nextHydratableInstance),\n isSingletonScope(workInProgress.type)\n ? ((previousHydratableOnEnteringScopedSingleton = prevSibling),\n (nextHydratableInstance = getNextHydratable(\n returnFiber.firstChild\n )))\n : (nextHydratableInstance = prevSibling)),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n markRef(current, workInProgress),\n null === current && (workInProgress.flags |= 4194304),\n workInProgress.child\n );\n case 5:\n return (\n null === current &&\n isHydrating &&\n ((prevState = getHostContext()),\n (returnFiber = validateDOMNesting(\n workInProgress.type,\n prevState.ancestorInfo\n )),\n (prevSibling = nextHydratableInstance),\n (nextState = !prevSibling) ||\n ((nextState = canHydrateInstance(\n prevSibling,\n workInProgress.type,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== nextState\n ? ((workInProgress.stateNode = nextState),\n didSuspendOrErrorDEV ||\n ((prevState = diffHydratedProperties(\n nextState,\n workInProgress.type,\n workInProgress.pendingProps,\n prevState\n )),\n null !== prevState &&\n (buildHydrationDiffNode(workInProgress, 0).serverProps =\n prevState)),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = getNextHydratable(\n nextState.firstChild\n )),\n (rootOrSingletonContext = !1),\n (prevState = !0))\n : (prevState = !1),\n (nextState = !prevState)),\n nextState &&\n (returnFiber &&\n warnNonHydratedInstance(workInProgress, prevSibling),\n throwOnHydrationMismatch(workInProgress))),\n pushHostContext(workInProgress),\n (prevSibling = workInProgress.type),\n (prevState = workInProgress.pendingProps),\n (nextState = null !== current ? current.memoizedProps : null),\n (returnFiber = prevState.children),\n shouldSetTextContent(prevSibling, prevState)\n ? (returnFiber = null)\n : null !== nextState &&\n shouldSetTextContent(prevSibling, nextState) &&\n (workInProgress.flags |= 32),\n null !== workInProgress.memoizedState &&\n ((prevSibling = renderWithHooks(\n current,\n workInProgress,\n TransitionAwareHostComponent,\n null,\n null,\n renderLanes\n )),\n (HostTransitionContext._currentValue = prevSibling)),\n markRef(current, workInProgress),\n reconcileChildren(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n ),\n workInProgress.child\n );\n case 6:\n return (\n null === current &&\n isHydrating &&\n ((renderLanes = workInProgress.pendingProps),\n (current = getHostContext()),\n (returnFiber = current.ancestorInfo.current),\n (renderLanes =\n null != returnFiber\n ? validateTextNesting(\n renderLanes,\n returnFiber.tag,\n current.ancestorInfo.implicitRootScope\n )\n : !0),\n (current = nextHydratableInstance),\n (returnFiber = !current) ||\n ((returnFiber = canHydrateTextInstance(\n current,\n workInProgress.pendingProps,\n rootOrSingletonContext\n )),\n null !== returnFiber\n ? ((workInProgress.stateNode = returnFiber),\n (hydrationParentFiber = workInProgress),\n (nextHydratableInstance = null),\n (returnFiber = !0))\n : (returnFiber = !1),\n (returnFiber = !returnFiber)),\n returnFiber &&\n (renderLanes &&\n warnNonHydratedInstance(workInProgress, current),\n throwOnHydrationMismatch(workInProgress))),\n null\n );\n case 13:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n case 4:\n return (\n pushHostContainer(\n workInProgress,\n workInProgress.stateNode.containerInfo\n ),\n (returnFiber = workInProgress.pendingProps),\n null === current\n ? (workInProgress.child = reconcileChildFibers(\n workInProgress,\n null,\n returnFiber,\n renderLanes\n ))\n : reconcileChildren(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n ),\n workInProgress.child\n );\n case 11:\n return updateForwardRef(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 7:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps,\n renderLanes\n ),\n workInProgress.child\n );\n case 8:\n return (\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 12:\n return (\n (workInProgress.flags |= 4),\n (workInProgress.flags |= 2048),\n (returnFiber = workInProgress.stateNode),\n (returnFiber.effectDuration = -0),\n (returnFiber.passiveEffectDuration = -0),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 10:\n return (\n (returnFiber = workInProgress.type),\n (prevSibling = workInProgress.pendingProps),\n (prevState = prevSibling.value),\n \"value\" in prevSibling ||\n hasWarnedAboutUsingNoValuePropOnContextProvider ||\n ((hasWarnedAboutUsingNoValuePropOnContextProvider = !0),\n console.error(\n \"The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?\"\n )),\n pushProvider(workInProgress, returnFiber, prevState),\n reconcileChildren(\n current,\n workInProgress,\n prevSibling.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 9:\n return (\n (prevSibling = workInProgress.type._context),\n (returnFiber = workInProgress.pendingProps.children),\n \"function\" !== typeof returnFiber &&\n console.error(\n \"A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it.\"\n ),\n prepareToReadContext(workInProgress),\n (prevSibling = readContext(prevSibling)),\n (returnFiber = callComponentInDEV(\n returnFiber,\n prevSibling,\n void 0\n )),\n (workInProgress.flags |= 1),\n reconcileChildren(\n current,\n workInProgress,\n returnFiber,\n renderLanes\n ),\n workInProgress.child\n );\n case 14:\n return updateMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 15:\n return updateSimpleMemoComponent(\n current,\n workInProgress,\n workInProgress.type,\n workInProgress.pendingProps,\n renderLanes\n );\n case 19:\n return updateSuspenseListComponent(\n current,\n workInProgress,\n renderLanes\n );\n case 31:\n return updateActivityComponent(current, workInProgress, renderLanes);\n case 22:\n return updateOffscreenComponent(\n current,\n workInProgress,\n renderLanes,\n workInProgress.pendingProps\n );\n case 24:\n return (\n prepareToReadContext(workInProgress),\n (returnFiber = readContext(CacheContext)),\n null === current\n ? ((prevSibling = peekCacheFromPool()),\n null === prevSibling &&\n ((prevSibling = workInProgressRoot),\n (prevState = createCache()),\n (prevSibling.pooledCache = prevState),\n retainCache(prevState),\n null !== prevState &&\n (prevSibling.pooledCacheLanes |= renderLanes),\n (prevSibling = prevState)),\n (workInProgress.memoizedState = {\n parent: returnFiber,\n cache: prevSibling\n }),\n initializeUpdateQueue(workInProgress),\n pushProvider(workInProgress, CacheContext, prevSibling))\n : (0 !== (current.lanes & renderLanes) &&\n (cloneUpdateQueue(current, workInProgress),\n processUpdateQueue(workInProgress, null, null, renderLanes),\n suspendIfUpdateReadFromEntangledAsyncAction()),\n (prevSibling = current.memoizedState),\n (prevState = workInProgress.memoizedState),\n prevSibling.parent !== returnFiber\n ? ((prevSibling = {\n parent: returnFiber,\n cache: returnFiber\n }),\n (workInProgress.memoizedState = prevSibling),\n 0 === workInProgress.lanes &&\n (workInProgress.memoizedState =\n workInProgress.updateQueue.baseState =\n prevSibling),\n pushProvider(workInProgress, CacheContext, returnFiber))\n : ((returnFiber = prevState.cache),\n pushProvider(workInProgress, CacheContext, returnFiber),\n returnFiber !== prevSibling.cache &&\n propagateContextChanges(\n workInProgress,\n [CacheContext],\n renderLanes,\n !0\n ))),\n reconcileChildren(\n current,\n workInProgress,\n workInProgress.pendingProps.children,\n renderLanes\n ),\n workInProgress.child\n );\n case 29:\n throw workInProgress.pendingProps;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n function markUpdate(workInProgress) {\n workInProgress.flags |= 4;\n }\n function preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n oldProps,\n newProps,\n renderLanes\n ) {\n if ((type = (workInProgress.mode & SuspenseyImagesMode) !== NoMode))\n type = !1;\n if (type) {\n if (\n ((workInProgress.flags |= 16777216),\n (renderLanes & 335544128) === renderLanes)\n )\n if (workInProgress.stateNode.complete) workInProgress.flags |= 8192;\n else if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n } else workInProgress.flags &= -16777217;\n }\n function preloadResourceAndSuspendIfNeeded(workInProgress, resource) {\n if (\n \"stylesheet\" !== resource.type ||\n (resource.state.loading & Inserted) !== NotLoaded\n )\n workInProgress.flags &= -16777217;\n else if (((workInProgress.flags |= 16777216), !preloadResource(resource)))\n if (shouldRemainOnPreviousScreen()) workInProgress.flags |= 8192;\n else\n throw (\n ((suspendedThenable = noopSuspenseyCommitThenable),\n SuspenseyCommitException)\n );\n }\n function scheduleRetryEffect(workInProgress, retryQueue) {\n null !== retryQueue && (workInProgress.flags |= 4);\n workInProgress.flags & 16384 &&\n ((retryQueue =\n 22 !== workInProgress.tag ? claimNextRetryLane() : 536870912),\n (workInProgress.lanes |= retryQueue),\n (workInProgressSuspendedRetryLanes |= retryQueue));\n }\n function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (!isHydrating)\n switch (renderState.tailMode) {\n case \"hidden\":\n hasRenderedATailFallback = renderState.tail;\n for (var lastTailNode = null; null !== hasRenderedATailFallback; )\n null !== hasRenderedATailFallback.alternate &&\n (lastTailNode = hasRenderedATailFallback),\n (hasRenderedATailFallback = hasRenderedATailFallback.sibling);\n null === lastTailNode\n ? (renderState.tail = null)\n : (lastTailNode.sibling = null);\n break;\n case \"collapsed\":\n lastTailNode = renderState.tail;\n for (var _lastTailNode = null; null !== lastTailNode; )\n null !== lastTailNode.alternate && (_lastTailNode = lastTailNode),\n (lastTailNode = lastTailNode.sibling);\n null === _lastTailNode\n ? hasRenderedATailFallback || null === renderState.tail\n ? (renderState.tail = null)\n : (renderState.tail.sibling = null)\n : (_lastTailNode.sibling = null);\n }\n }\n function bubbleProperties(completedWork) {\n var didBailout =\n null !== completedWork.alternate &&\n completedWork.alternate.child === completedWork.child,\n newChildLanes = 0,\n subtreeFlags = 0;\n if (didBailout)\n if ((completedWork.mode & ProfileMode) !== NoMode) {\n for (\n var _treeBaseDuration = completedWork.selfBaseDuration,\n _child2 = completedWork.child;\n null !== _child2;\n\n )\n (newChildLanes |= _child2.lanes | _child2.childLanes),\n (subtreeFlags |= _child2.subtreeFlags & 65011712),\n (subtreeFlags |= _child2.flags & 65011712),\n (_treeBaseDuration += _child2.treeBaseDuration),\n (_child2 = _child2.sibling);\n completedWork.treeBaseDuration = _treeBaseDuration;\n } else\n for (\n _treeBaseDuration = completedWork.child;\n null !== _treeBaseDuration;\n\n )\n (newChildLanes |=\n _treeBaseDuration.lanes | _treeBaseDuration.childLanes),\n (subtreeFlags |= _treeBaseDuration.subtreeFlags & 65011712),\n (subtreeFlags |= _treeBaseDuration.flags & 65011712),\n (_treeBaseDuration.return = completedWork),\n (_treeBaseDuration = _treeBaseDuration.sibling);\n else if ((completedWork.mode & ProfileMode) !== NoMode) {\n _treeBaseDuration = completedWork.actualDuration;\n _child2 = completedWork.selfBaseDuration;\n for (var child = completedWork.child; null !== child; )\n (newChildLanes |= child.lanes | child.childLanes),\n (subtreeFlags |= child.subtreeFlags),\n (subtreeFlags |= child.flags),\n (_treeBaseDuration += child.actualDuration),\n (_child2 += child.treeBaseDuration),\n (child = child.sibling);\n completedWork.actualDuration = _treeBaseDuration;\n completedWork.treeBaseDuration = _child2;\n } else\n for (\n _treeBaseDuration = completedWork.child;\n null !== _treeBaseDuration;\n\n )\n (newChildLanes |=\n _treeBaseDuration.lanes | _treeBaseDuration.childLanes),\n (subtreeFlags |= _treeBaseDuration.subtreeFlags),\n (subtreeFlags |= _treeBaseDuration.flags),\n (_treeBaseDuration.return = completedWork),\n (_treeBaseDuration = _treeBaseDuration.sibling);\n completedWork.subtreeFlags |= subtreeFlags;\n completedWork.childLanes = newChildLanes;\n return didBailout;\n }\n function completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 16:\n case 15:\n case 0:\n case 11:\n case 7:\n case 8:\n case 12:\n case 9:\n case 14:\n return bubbleProperties(workInProgress), null;\n case 1:\n return bubbleProperties(workInProgress), null;\n case 3:\n renderLanes = workInProgress.stateNode;\n newProps = null;\n null !== current && (newProps = current.memoizedState.cache);\n workInProgress.memoizedState.cache !== newProps &&\n (workInProgress.flags |= 2048);\n popProvider(CacheContext, workInProgress);\n popHostContainer(workInProgress);\n renderLanes.pendingContext &&\n ((renderLanes.context = renderLanes.pendingContext),\n (renderLanes.pendingContext = null));\n if (null === current || null === current.child)\n popHydrationState(workInProgress)\n ? (emitPendingHydrationWarnings(), markUpdate(workInProgress))\n : null === current ||\n (current.memoizedState.isDehydrated &&\n 0 === (workInProgress.flags & 256)) ||\n ((workInProgress.flags |= 1024),\n upgradeHydrationErrorsToRecoverable());\n bubbleProperties(workInProgress);\n return null;\n case 26:\n var type = workInProgress.type,\n nextResource = workInProgress.memoizedState;\n null === current\n ? (markUpdate(workInProgress),\n null !== nextResource\n ? (bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(\n workInProgress,\n nextResource\n ))\n : (bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n null,\n newProps,\n renderLanes\n )))\n : nextResource\n ? nextResource !== current.memoizedState\n ? (markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadResourceAndSuspendIfNeeded(\n workInProgress,\n nextResource\n ))\n : (bubbleProperties(workInProgress),\n (workInProgress.flags &= -16777217))\n : ((current = current.memoizedProps),\n current !== newProps && markUpdate(workInProgress),\n bubbleProperties(workInProgress),\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n type,\n current,\n newProps,\n renderLanes\n ));\n return null;\n case 27:\n popHostContext(workInProgress);\n renderLanes = requiredContext(rootInstanceStackCursor.current);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n current = getHostContext();\n popHydrationState(workInProgress)\n ? prepareToHydrateHostInstance(workInProgress, current)\n : ((current = resolveSingletonInstance(\n type,\n newProps,\n renderLanes,\n current,\n !0\n )),\n (workInProgress.stateNode = current),\n markUpdate(workInProgress));\n }\n bubbleProperties(workInProgress);\n return null;\n case 5:\n popHostContext(workInProgress);\n type = workInProgress.type;\n if (null !== current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (!newProps) {\n if (null === workInProgress.stateNode)\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n bubbleProperties(workInProgress);\n return null;\n }\n var _currentHostContext = getHostContext();\n if (popHydrationState(workInProgress))\n prepareToHydrateHostInstance(workInProgress, _currentHostContext);\n else {\n nextResource = requiredContext(rootInstanceStackCursor.current);\n validateDOMNesting(type, _currentHostContext.ancestorInfo);\n _currentHostContext = _currentHostContext.context;\n nextResource = getOwnerDocumentFromRootContainer(nextResource);\n switch (_currentHostContext) {\n case HostContextNamespaceSvg:\n nextResource = nextResource.createElementNS(\n SVG_NAMESPACE,\n type\n );\n break;\n case HostContextNamespaceMath:\n nextResource = nextResource.createElementNS(\n MATH_NAMESPACE,\n type\n );\n break;\n default:\n switch (type) {\n case \"svg\":\n nextResource = nextResource.createElementNS(\n SVG_NAMESPACE,\n type\n );\n break;\n case \"math\":\n nextResource = nextResource.createElementNS(\n MATH_NAMESPACE,\n type\n );\n break;\n case \"script\":\n nextResource = nextResource.createElement(\"div\");\n nextResource.innerHTML = \"<script>\\x3c/script>\";\n nextResource = nextResource.removeChild(\n nextResource.firstChild\n );\n break;\n case \"select\":\n nextResource =\n \"string\" === typeof newProps.is\n ? nextResource.createElement(\"select\", {\n is: newProps.is\n })\n : nextResource.createElement(\"select\");\n newProps.multiple\n ? (nextResource.multiple = !0)\n : newProps.size && (nextResource.size = newProps.size);\n break;\n default:\n (nextResource =\n \"string\" === typeof newProps.is\n ? nextResource.createElement(type, {\n is: newProps.is\n })\n : nextResource.createElement(type)),\n -1 === type.indexOf(\"-\") &&\n (type !== type.toLowerCase() &&\n console.error(\n \"<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.\",\n type\n ),\n \"[object HTMLUnknownElement]\" !==\n Object.prototype.toString.call(nextResource) ||\n hasOwnProperty.call(warnedUnknownTags, type) ||\n ((warnedUnknownTags[type] = !0),\n console.error(\n \"The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.\",\n type\n )));\n }\n }\n nextResource[internalInstanceKey] = workInProgress;\n nextResource[internalPropsKey] = newProps;\n a: for (\n _currentHostContext = workInProgress.child;\n null !== _currentHostContext;\n\n ) {\n if (\n 5 === _currentHostContext.tag ||\n 6 === _currentHostContext.tag\n )\n nextResource.appendChild(_currentHostContext.stateNode);\n else if (\n 4 !== _currentHostContext.tag &&\n 27 !== _currentHostContext.tag &&\n null !== _currentHostContext.child\n ) {\n _currentHostContext.child.return = _currentHostContext;\n _currentHostContext = _currentHostContext.child;\n continue;\n }\n if (_currentHostContext === workInProgress) break a;\n for (; null === _currentHostContext.sibling; ) {\n if (\n null === _currentHostContext.return ||\n _currentHostContext.return === workInProgress\n )\n break a;\n _currentHostContext = _currentHostContext.return;\n }\n _currentHostContext.sibling.return = _currentHostContext.return;\n _currentHostContext = _currentHostContext.sibling;\n }\n workInProgress.stateNode = nextResource;\n a: switch (\n (setInitialProperties(nextResource, type, newProps), type)\n ) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps = !!newProps.autoFocus;\n break a;\n case \"img\":\n newProps = !0;\n break a;\n default:\n newProps = !1;\n }\n newProps && markUpdate(workInProgress);\n }\n }\n bubbleProperties(workInProgress);\n preloadInstanceAndSuspendIfNeeded(\n workInProgress,\n workInProgress.type,\n null === current ? null : current.memoizedProps,\n workInProgress.pendingProps,\n renderLanes\n );\n return null;\n case 6:\n if (current && null != workInProgress.stateNode)\n current.memoizedProps !== newProps && markUpdate(workInProgress);\n else {\n if (\n \"string\" !== typeof newProps &&\n null === workInProgress.stateNode\n )\n throw Error(\n \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\"\n );\n current = requiredContext(rootInstanceStackCursor.current);\n renderLanes = getHostContext();\n if (popHydrationState(workInProgress)) {\n current = workInProgress.stateNode;\n renderLanes = workInProgress.memoizedProps;\n type = !didSuspendOrErrorDEV;\n newProps = null;\n nextResource = hydrationParentFiber;\n if (null !== nextResource)\n switch (nextResource.tag) {\n case 3:\n type &&\n ((type = diffHydratedTextForDevWarnings(\n current,\n renderLanes,\n newProps\n )),\n null !== type &&\n (buildHydrationDiffNode(workInProgress, 0).serverProps =\n type));\n break;\n case 27:\n case 5:\n (newProps = nextResource.memoizedProps),\n type &&\n ((type = diffHydratedTextForDevWarnings(\n current,\n renderLanes,\n newProps\n )),\n null !== type &&\n (buildHydrationDiffNode(\n workInProgress,\n 0\n ).serverProps = type));\n }\n current[internalInstanceKey] = workInProgress;\n current =\n current.nodeValue === renderLanes ||\n (null !== newProps &&\n !0 === newProps.suppressHydrationWarning) ||\n checkForUnmatchedText(current.nodeValue, renderLanes)\n ? !0\n : !1;\n current || throwOnHydrationMismatch(workInProgress, !0);\n } else\n (type = renderLanes.ancestorInfo.current),\n null != type &&\n validateTextNesting(\n newProps,\n type.tag,\n renderLanes.ancestorInfo.implicitRootScope\n ),\n (current =\n getOwnerDocumentFromRootContainer(current).createTextNode(\n newProps\n )),\n (current[internalInstanceKey] = workInProgress),\n (workInProgress.stateNode = current);\n }\n bubbleProperties(workInProgress);\n return null;\n case 31:\n renderLanes = workInProgress.memoizedState;\n if (null === current || null !== current.memoizedState) {\n newProps = popHydrationState(workInProgress);\n if (null !== renderLanes) {\n if (null === current) {\n if (!newProps)\n throw Error(\n \"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\"\n );\n current = workInProgress.memoizedState;\n current = null !== current ? current.dehydrated : null;\n if (!current)\n throw Error(\n \"Expected to have a hydrated activity instance. This error is likely caused by a bug in React. Please file an issue.\"\n );\n current[internalInstanceKey] = workInProgress;\n bubbleProperties(workInProgress);\n (workInProgress.mode & ProfileMode) !== NoMode &&\n null !== renderLanes &&\n ((current = workInProgress.child),\n null !== current &&\n (workInProgress.treeBaseDuration -=\n current.treeBaseDuration));\n } else\n emitPendingHydrationWarnings(),\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (renderLanes = workInProgress.memoizedState = null),\n (workInProgress.flags |= 4),\n bubbleProperties(workInProgress),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n null !== renderLanes &&\n ((current = workInProgress.child),\n null !== current &&\n (workInProgress.treeBaseDuration -=\n current.treeBaseDuration));\n current = !1;\n } else\n (renderLanes = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = renderLanes),\n (current = !0);\n if (!current) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n if (0 !== (workInProgress.flags & 128))\n throw Error(\n \"Client rendering an Activity suspended it again. This is a bug in React.\"\n );\n }\n bubbleProperties(workInProgress);\n return null;\n case 13:\n newProps = workInProgress.memoizedState;\n if (\n null === current ||\n (null !== current.memoizedState &&\n null !== current.memoizedState.dehydrated)\n ) {\n type = newProps;\n nextResource = popHydrationState(workInProgress);\n if (null !== type && null !== type.dehydrated) {\n if (null === current) {\n if (!nextResource)\n throw Error(\n \"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\"\n );\n nextResource = workInProgress.memoizedState;\n nextResource =\n null !== nextResource ? nextResource.dehydrated : null;\n if (!nextResource)\n throw Error(\n \"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\"\n );\n nextResource[internalInstanceKey] = workInProgress;\n bubbleProperties(workInProgress);\n (workInProgress.mode & ProfileMode) !== NoMode &&\n null !== type &&\n ((type = workInProgress.child),\n null !== type &&\n (workInProgress.treeBaseDuration -= type.treeBaseDuration));\n } else\n emitPendingHydrationWarnings(),\n resetHydrationState(),\n 0 === (workInProgress.flags & 128) &&\n (type = workInProgress.memoizedState = null),\n (workInProgress.flags |= 4),\n bubbleProperties(workInProgress),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n null !== type &&\n ((type = workInProgress.child),\n null !== type &&\n (workInProgress.treeBaseDuration -=\n type.treeBaseDuration));\n type = !1;\n } else\n (type = upgradeHydrationErrorsToRecoverable()),\n null !== current &&\n null !== current.memoizedState &&\n (current.memoizedState.hydrationErrors = type),\n (type = !0);\n if (!type) {\n if (workInProgress.flags & 256)\n return popSuspenseHandler(workInProgress), workInProgress;\n popSuspenseHandler(workInProgress);\n return null;\n }\n }\n popSuspenseHandler(workInProgress);\n if (0 !== (workInProgress.flags & 128))\n return (\n (workInProgress.lanes = renderLanes),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n transferActualDuration(workInProgress),\n workInProgress\n );\n renderLanes = null !== newProps;\n current = null !== current && null !== current.memoizedState;\n renderLanes &&\n ((newProps = workInProgress.child),\n (type = null),\n null !== newProps.alternate &&\n null !== newProps.alternate.memoizedState &&\n null !== newProps.alternate.memoizedState.cachePool &&\n (type = newProps.alternate.memoizedState.cachePool.pool),\n (nextResource = null),\n null !== newProps.memoizedState &&\n null !== newProps.memoizedState.cachePool &&\n (nextResource = newProps.memoizedState.cachePool.pool),\n nextResource !== type && (newProps.flags |= 2048));\n renderLanes !== current &&\n renderLanes &&\n (workInProgress.child.flags |= 8192);\n scheduleRetryEffect(workInProgress, workInProgress.updateQueue);\n bubbleProperties(workInProgress);\n (workInProgress.mode & ProfileMode) !== NoMode &&\n renderLanes &&\n ((current = workInProgress.child),\n null !== current &&\n (workInProgress.treeBaseDuration -= current.treeBaseDuration));\n return null;\n case 4:\n return (\n popHostContainer(workInProgress),\n null === current &&\n listenToAllSupportedEvents(\n workInProgress.stateNode.containerInfo\n ),\n bubbleProperties(workInProgress),\n null\n );\n case 10:\n return (\n popProvider(workInProgress.type, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 19:\n pop(suspenseStackCursor, workInProgress);\n newProps = workInProgress.memoizedState;\n if (null === newProps) return bubbleProperties(workInProgress), null;\n type = 0 !== (workInProgress.flags & 128);\n nextResource = newProps.rendering;\n if (null === nextResource)\n if (type) cutOffTailIfNeeded(newProps, !1);\n else {\n if (\n workInProgressRootExitStatus !== RootInProgress ||\n (null !== current && 0 !== (current.flags & 128))\n )\n for (current = workInProgress.child; null !== current; ) {\n nextResource = findFirstSuspended(current);\n if (null !== nextResource) {\n workInProgress.flags |= 128;\n cutOffTailIfNeeded(newProps, !1);\n current = nextResource.updateQueue;\n workInProgress.updateQueue = current;\n scheduleRetryEffect(workInProgress, current);\n workInProgress.subtreeFlags = 0;\n current = renderLanes;\n for (\n renderLanes = workInProgress.child;\n null !== renderLanes;\n\n )\n resetWorkInProgress(renderLanes, current),\n (renderLanes = renderLanes.sibling);\n push(\n suspenseStackCursor,\n (suspenseStackCursor.current &\n SubtreeSuspenseContextMask) |\n ForceSuspenseFallback,\n workInProgress\n );\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount);\n return workInProgress.child;\n }\n current = current.sibling;\n }\n null !== newProps.tail &&\n now$1() > workInProgressRootRenderTargetTime &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n }\n else {\n if (!type)\n if (\n ((current = findFirstSuspended(nextResource)), null !== current)\n ) {\n if (\n ((workInProgress.flags |= 128),\n (type = !0),\n (current = current.updateQueue),\n (workInProgress.updateQueue = current),\n scheduleRetryEffect(workInProgress, current),\n cutOffTailIfNeeded(newProps, !0),\n null === newProps.tail &&\n \"hidden\" === newProps.tailMode &&\n !nextResource.alternate &&\n !isHydrating)\n )\n return bubbleProperties(workInProgress), null;\n } else\n 2 * now$1() - newProps.renderingStartTime >\n workInProgressRootRenderTargetTime &&\n 536870912 !== renderLanes &&\n ((workInProgress.flags |= 128),\n (type = !0),\n cutOffTailIfNeeded(newProps, !1),\n (workInProgress.lanes = 4194304));\n newProps.isBackwards\n ? ((nextResource.sibling = workInProgress.child),\n (workInProgress.child = nextResource))\n : ((current = newProps.last),\n null !== current\n ? (current.sibling = nextResource)\n : (workInProgress.child = nextResource),\n (newProps.last = nextResource));\n }\n if (null !== newProps.tail)\n return (\n (current = newProps.tail),\n (newProps.rendering = current),\n (newProps.tail = current.sibling),\n (newProps.renderingStartTime = now$1()),\n (current.sibling = null),\n (renderLanes = suspenseStackCursor.current),\n (renderLanes = type\n ? (renderLanes & SubtreeSuspenseContextMask) |\n ForceSuspenseFallback\n : renderLanes & SubtreeSuspenseContextMask),\n push(suspenseStackCursor, renderLanes, workInProgress),\n isHydrating &&\n pushTreeFork(workInProgress, newProps.treeForkCount),\n current\n );\n bubbleProperties(workInProgress);\n return null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(workInProgress),\n (newProps = null !== workInProgress.memoizedState),\n null !== current\n ? (null !== current.memoizedState) !== newProps &&\n (workInProgress.flags |= 8192)\n : newProps && (workInProgress.flags |= 8192),\n newProps\n ? 0 !== (renderLanes & 536870912) &&\n 0 === (workInProgress.flags & 128) &&\n (bubbleProperties(workInProgress),\n workInProgress.subtreeFlags & 6 &&\n (workInProgress.flags |= 8192))\n : bubbleProperties(workInProgress),\n (renderLanes = workInProgress.updateQueue),\n null !== renderLanes &&\n scheduleRetryEffect(workInProgress, renderLanes.retryQueue),\n (renderLanes = null),\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (renderLanes = current.memoizedState.cachePool.pool),\n (newProps = null),\n null !== workInProgress.memoizedState &&\n null !== workInProgress.memoizedState.cachePool &&\n (newProps = workInProgress.memoizedState.cachePool.pool),\n newProps !== renderLanes && (workInProgress.flags |= 2048),\n null !== current && pop(resumedCache, workInProgress),\n null\n );\n case 24:\n return (\n (renderLanes = null),\n null !== current && (renderLanes = current.memoizedState.cache),\n workInProgress.memoizedState.cache !== renderLanes &&\n (workInProgress.flags |= 2048),\n popProvider(CacheContext, workInProgress),\n bubbleProperties(workInProgress),\n null\n );\n case 25:\n return null;\n case 30:\n return null;\n }\n throw Error(\n \"Unknown unit of work tag (\" +\n workInProgress.tag +\n \"). This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n function unwindWork(current, workInProgress) {\n popTreeContext(workInProgress);\n switch (workInProgress.tag) {\n case 1:\n return (\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n transferActualDuration(workInProgress),\n workInProgress)\n : null\n );\n case 3:\n return (\n popProvider(CacheContext, workInProgress),\n popHostContainer(workInProgress),\n (current = workInProgress.flags),\n 0 !== (current & 65536) && 0 === (current & 128)\n ? ((workInProgress.flags = (current & -65537) | 128),\n workInProgress)\n : null\n );\n case 26:\n case 27:\n case 5:\n return popHostContext(workInProgress), null;\n case 31:\n if (null !== workInProgress.memoizedState) {\n popSuspenseHandler(workInProgress);\n if (null === workInProgress.alternate)\n throw Error(\n \"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\"\n );\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n transferActualDuration(workInProgress),\n workInProgress)\n : null;\n case 13:\n popSuspenseHandler(workInProgress);\n current = workInProgress.memoizedState;\n if (null !== current && null !== current.dehydrated) {\n if (null === workInProgress.alternate)\n throw Error(\n \"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\"\n );\n resetHydrationState();\n }\n current = workInProgress.flags;\n return current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n transferActualDuration(workInProgress),\n workInProgress)\n : null;\n case 19:\n return pop(suspenseStackCursor, workInProgress), null;\n case 4:\n return popHostContainer(workInProgress), null;\n case 10:\n return popProvider(workInProgress.type, workInProgress), null;\n case 22:\n case 23:\n return (\n popSuspenseHandler(workInProgress),\n popHiddenContext(workInProgress),\n null !== current && pop(resumedCache, workInProgress),\n (current = workInProgress.flags),\n current & 65536\n ? ((workInProgress.flags = (current & -65537) | 128),\n (workInProgress.mode & ProfileMode) !== NoMode &&\n transferActualDuration(workInProgress),\n workInProgress)\n : null\n );\n case 24:\n return popProvider(CacheContext, workInProgress), null;\n case 25:\n return null;\n default:\n return null;\n }\n }\n function unwindInterruptedWork(current, interruptedWork) {\n popTreeContext(interruptedWork);\n switch (interruptedWork.tag) {\n case 3:\n popProvider(CacheContext, interruptedWork);\n popHostContainer(interruptedWork);\n break;\n case 26:\n case 27:\n case 5:\n popHostContext(interruptedWork);\n break;\n case 4:\n popHostContainer(interruptedWork);\n break;\n case 31:\n null !== interruptedWork.memoizedState &&\n popSuspenseHandler(interruptedWork);\n break;\n case 13:\n popSuspenseHandler(interruptedWork);\n break;\n case 19:\n pop(suspenseStackCursor, interruptedWork);\n break;\n case 10:\n popProvider(interruptedWork.type, interruptedWork);\n break;\n case 22:\n case 23:\n popSuspenseHandler(interruptedWork);\n popHiddenContext(interruptedWork);\n null !== current && pop(resumedCache, interruptedWork);\n break;\n case 24:\n popProvider(CacheContext, interruptedWork);\n }\n }\n function shouldProfile(current) {\n return (current.mode & ProfileMode) !== NoMode;\n }\n function commitHookLayoutEffects(finishedWork, hookFlags) {\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n commitHookEffectListMount(hookFlags, finishedWork),\n recordEffectDuration())\n : commitHookEffectListMount(hookFlags, finishedWork);\n }\n function commitHookLayoutUnmountEffects(\n finishedWork,\n nearestMountedAncestor,\n hookFlags\n ) {\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n commitHookEffectListUnmount(\n hookFlags,\n finishedWork,\n nearestMountedAncestor\n ),\n recordEffectDuration())\n : commitHookEffectListUnmount(\n hookFlags,\n finishedWork,\n nearestMountedAncestor\n );\n }\n function commitHookEffectListMount(flags, finishedWork) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if (\n (updateQueue.tag & flags) === flags &&\n ((lastEffect = void 0),\n (flags & Insertion) !== NoFlags &&\n (isRunningInsertionEffect = !0),\n (lastEffect = runWithFiberInDEV(\n finishedWork,\n callCreateInDEV,\n updateQueue\n )),\n (flags & Insertion) !== NoFlags &&\n (isRunningInsertionEffect = !1),\n void 0 !== lastEffect && \"function\" !== typeof lastEffect)\n ) {\n var hookName = void 0;\n hookName =\n 0 !== (updateQueue.tag & Layout)\n ? \"useLayoutEffect\"\n : 0 !== (updateQueue.tag & Insertion)\n ? \"useInsertionEffect\"\n : \"useEffect\";\n var addendum = void 0;\n addendum =\n null === lastEffect\n ? \" You returned null. If your effect does not require clean up, return undefined (or nothing).\"\n : \"function\" === typeof lastEffect.then\n ? \"\\n\\nIt looks like you wrote \" +\n hookName +\n \"(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:\\n\\n\" +\n hookName +\n \"(() => {\\n async function fetchData() {\\n // You can await here\\n const response = await MyAPI.getData(someId);\\n // ...\\n }\\n fetchData();\\n}, [someId]); // Or [] if effect doesn't need props or state\\n\\nLearn more about data fetching with Hooks: https://react.dev/link/hooks-data-fetching\"\n : \" You returned: \" + lastEffect;\n runWithFiberInDEV(\n finishedWork,\n function (n, a) {\n console.error(\n \"%s must not return anything besides a function, which is used for clean-up.%s\",\n n,\n a\n );\n },\n hookName,\n addendum\n );\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function commitHookEffectListUnmount(\n flags,\n finishedWork,\n nearestMountedAncestor\n ) {\n try {\n var updateQueue = finishedWork.updateQueue,\n lastEffect = null !== updateQueue ? updateQueue.lastEffect : null;\n if (null !== lastEffect) {\n var firstEffect = lastEffect.next;\n updateQueue = firstEffect;\n do {\n if ((updateQueue.tag & flags) === flags) {\n var inst = updateQueue.inst,\n destroy = inst.destroy;\n void 0 !== destroy &&\n ((inst.destroy = void 0),\n (flags & Insertion) !== NoFlags &&\n (isRunningInsertionEffect = !0),\n (lastEffect = finishedWork),\n runWithFiberInDEV(\n lastEffect,\n callDestroyInDEV,\n lastEffect,\n nearestMountedAncestor,\n destroy\n ),\n (flags & Insertion) !== NoFlags &&\n (isRunningInsertionEffect = !1));\n }\n updateQueue = updateQueue.next;\n } while (updateQueue !== firstEffect);\n }\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function commitHookPassiveMountEffects(finishedWork, hookFlags) {\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n commitHookEffectListMount(hookFlags, finishedWork),\n recordEffectDuration())\n : commitHookEffectListMount(hookFlags, finishedWork);\n }\n function commitHookPassiveUnmountEffects(\n finishedWork,\n nearestMountedAncestor,\n hookFlags\n ) {\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n commitHookEffectListUnmount(\n hookFlags,\n finishedWork,\n nearestMountedAncestor\n ),\n recordEffectDuration())\n : commitHookEffectListUnmount(\n hookFlags,\n finishedWork,\n nearestMountedAncestor\n );\n }\n function commitClassCallbacks(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n if (null !== updateQueue) {\n var instance = finishedWork.stateNode;\n finishedWork.type.defaultProps ||\n \"ref\" in finishedWork.memoizedProps ||\n didWarnAboutReassigningProps ||\n (instance.props !== finishedWork.memoizedProps &&\n console.error(\n \"Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ),\n instance.state !== finishedWork.memoizedState &&\n console.error(\n \"Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ));\n try {\n runWithFiberInDEV(\n finishedWork,\n commitCallbacks,\n updateQueue,\n instance\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n }\n function callGetSnapshotBeforeUpdates(instance, prevProps, prevState) {\n return instance.getSnapshotBeforeUpdate(prevProps, prevState);\n }\n function commitClassSnapshot(finishedWork, current) {\n var prevProps = current.memoizedProps,\n prevState = current.memoizedState;\n current = finishedWork.stateNode;\n finishedWork.type.defaultProps ||\n \"ref\" in finishedWork.memoizedProps ||\n didWarnAboutReassigningProps ||\n (current.props !== finishedWork.memoizedProps &&\n console.error(\n \"Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ),\n current.state !== finishedWork.memoizedState &&\n console.error(\n \"Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ));\n try {\n var resolvedPrevProps = resolveClassComponentProps(\n finishedWork.type,\n prevProps\n );\n var snapshot = runWithFiberInDEV(\n finishedWork,\n callGetSnapshotBeforeUpdates,\n current,\n resolvedPrevProps,\n prevState\n );\n prevProps = didWarnAboutUndefinedSnapshotBeforeUpdate;\n void 0 !== snapshot ||\n prevProps.has(finishedWork.type) ||\n (prevProps.add(finishedWork.type),\n runWithFiberInDEV(finishedWork, function () {\n console.error(\n \"%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.\",\n getComponentNameFromFiber(finishedWork)\n );\n }));\n current.__reactInternalSnapshotBeforeUpdate = snapshot;\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function safelyCallComponentWillUnmount(\n current,\n nearestMountedAncestor,\n instance\n ) {\n instance.props = resolveClassComponentProps(\n current.type,\n current.memoizedProps\n );\n instance.state = current.memoizedState;\n shouldProfile(current)\n ? (startEffectTimer(),\n runWithFiberInDEV(\n current,\n callComponentWillUnmountInDEV,\n current,\n nearestMountedAncestor,\n instance\n ),\n recordEffectDuration())\n : runWithFiberInDEV(\n current,\n callComponentWillUnmountInDEV,\n current,\n nearestMountedAncestor,\n instance\n );\n }\n function commitAttachRef(finishedWork) {\n var ref = finishedWork.ref;\n if (null !== ref) {\n switch (finishedWork.tag) {\n case 26:\n case 27:\n case 5:\n var instanceToUse = finishedWork.stateNode;\n break;\n case 30:\n instanceToUse = finishedWork.stateNode;\n break;\n default:\n instanceToUse = finishedWork.stateNode;\n }\n if (\"function\" === typeof ref)\n if (shouldProfile(finishedWork))\n try {\n startEffectTimer(),\n (finishedWork.refCleanup = ref(instanceToUse));\n } finally {\n recordEffectDuration();\n }\n else finishedWork.refCleanup = ref(instanceToUse);\n else\n \"string\" === typeof ref\n ? console.error(\"String refs are no longer supported.\")\n : ref.hasOwnProperty(\"current\") ||\n console.error(\n \"Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().\",\n getComponentNameFromFiber(finishedWork)\n ),\n (ref.current = instanceToUse);\n }\n }\n function safelyAttachRef(current, nearestMountedAncestor) {\n try {\n runWithFiberInDEV(current, commitAttachRef, current);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n }\n function safelyDetachRef(current, nearestMountedAncestor) {\n var ref = current.ref,\n refCleanup = current.refCleanup;\n if (null !== ref)\n if (\"function\" === typeof refCleanup)\n try {\n if (shouldProfile(current))\n try {\n startEffectTimer(), runWithFiberInDEV(current, refCleanup);\n } finally {\n recordEffectDuration(current);\n }\n else runWithFiberInDEV(current, refCleanup);\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n } finally {\n (current.refCleanup = null),\n (current = current.alternate),\n null != current && (current.refCleanup = null);\n }\n else if (\"function\" === typeof ref)\n try {\n if (shouldProfile(current))\n try {\n startEffectTimer(), runWithFiberInDEV(current, ref, null);\n } finally {\n recordEffectDuration(current);\n }\n else runWithFiberInDEV(current, ref, null);\n } catch (error$7) {\n captureCommitPhaseError(current, nearestMountedAncestor, error$7);\n }\n else ref.current = null;\n }\n function commitProfiler(\n finishedWork,\n current,\n commitStartTime,\n effectDuration\n ) {\n var _finishedWork$memoize = finishedWork.memoizedProps,\n id = _finishedWork$memoize.id,\n onCommit = _finishedWork$memoize.onCommit;\n _finishedWork$memoize = _finishedWork$memoize.onRender;\n current = null === current ? \"mount\" : \"update\";\n currentUpdateIsNested && (current = \"nested-update\");\n \"function\" === typeof _finishedWork$memoize &&\n _finishedWork$memoize(\n id,\n current,\n finishedWork.actualDuration,\n finishedWork.treeBaseDuration,\n finishedWork.actualStartTime,\n commitStartTime\n );\n \"function\" === typeof onCommit &&\n onCommit(id, current, effectDuration, commitStartTime);\n }\n function commitProfilerPostCommitImpl(\n finishedWork,\n current,\n commitStartTime,\n passiveEffectDuration\n ) {\n var _finishedWork$memoize2 = finishedWork.memoizedProps;\n finishedWork = _finishedWork$memoize2.id;\n _finishedWork$memoize2 = _finishedWork$memoize2.onPostCommit;\n current = null === current ? \"mount\" : \"update\";\n currentUpdateIsNested && (current = \"nested-update\");\n \"function\" === typeof _finishedWork$memoize2 &&\n _finishedWork$memoize2(\n finishedWork,\n current,\n passiveEffectDuration,\n commitStartTime\n );\n }\n function commitHostMount(finishedWork) {\n var type = finishedWork.type,\n props = finishedWork.memoizedProps,\n instance = finishedWork.stateNode;\n try {\n runWithFiberInDEV(\n finishedWork,\n commitMount,\n instance,\n type,\n props,\n finishedWork\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function commitHostUpdate(finishedWork, newProps, oldProps) {\n try {\n runWithFiberInDEV(\n finishedWork,\n commitUpdate,\n finishedWork.stateNode,\n finishedWork.type,\n oldProps,\n newProps,\n finishedWork\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function isHostParent(fiber) {\n return (\n 5 === fiber.tag ||\n 3 === fiber.tag ||\n 26 === fiber.tag ||\n (27 === fiber.tag && isSingletonScope(fiber.type)) ||\n 4 === fiber.tag\n );\n }\n function getHostSibling(fiber) {\n a: for (;;) {\n for (; null === fiber.sibling; ) {\n if (null === fiber.return || isHostParent(fiber.return)) return null;\n fiber = fiber.return;\n }\n fiber.sibling.return = fiber.return;\n for (\n fiber = fiber.sibling;\n 5 !== fiber.tag && 6 !== fiber.tag && 18 !== fiber.tag;\n\n ) {\n if (27 === fiber.tag && isSingletonScope(fiber.type)) continue a;\n if (fiber.flags & 2) continue a;\n if (null === fiber.child || 4 === fiber.tag) continue a;\n else (fiber.child.return = fiber), (fiber = fiber.child);\n }\n if (!(fiber.flags & 2)) return fiber.stateNode;\n }\n }\n function insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before\n ? (warnForReactChildrenConflict(parent),\n (9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent\n ).insertBefore(node, before))\n : (warnForReactChildrenConflict(parent),\n (before =\n 9 === parent.nodeType\n ? parent.body\n : \"HTML\" === parent.nodeName\n ? parent.ownerDocument.body\n : parent),\n before.appendChild(node),\n (parent = parent._reactRootContainer),\n (null !== parent && void 0 !== parent) ||\n null !== before.onclick ||\n (before.onclick = noop$1));\n else if (\n 4 !== tag &&\n (27 === tag &&\n isSingletonScope(node.type) &&\n ((parent = node.stateNode), (before = null)),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNodeIntoContainer(node, before, parent),\n (node = node.sibling);\n }\n function insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n if (5 === tag || 6 === tag)\n (node = node.stateNode),\n before ? parent.insertBefore(node, before) : parent.appendChild(node);\n else if (\n 4 !== tag &&\n (27 === tag && isSingletonScope(node.type) && (parent = node.stateNode),\n (node = node.child),\n null !== node)\n )\n for (\n insertOrAppendPlacementNode(node, before, parent),\n node = node.sibling;\n null !== node;\n\n )\n insertOrAppendPlacementNode(node, before, parent),\n (node = node.sibling);\n }\n function commitPlacement(finishedWork) {\n for (\n var hostParentFiber, parentFiber = finishedWork.return;\n null !== parentFiber;\n\n ) {\n if (isHostParent(parentFiber)) {\n hostParentFiber = parentFiber;\n break;\n }\n parentFiber = parentFiber.return;\n }\n if (null == hostParentFiber)\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n switch (hostParentFiber.tag) {\n case 27:\n hostParentFiber = hostParentFiber.stateNode;\n parentFiber = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(\n finishedWork,\n parentFiber,\n hostParentFiber\n );\n break;\n case 5:\n parentFiber = hostParentFiber.stateNode;\n hostParentFiber.flags & 32 &&\n (resetTextContent(parentFiber), (hostParentFiber.flags &= -33));\n hostParentFiber = getHostSibling(finishedWork);\n insertOrAppendPlacementNode(\n finishedWork,\n hostParentFiber,\n parentFiber\n );\n break;\n case 3:\n case 4:\n hostParentFiber = hostParentFiber.stateNode.containerInfo;\n parentFiber = getHostSibling(finishedWork);\n insertOrAppendPlacementNodeIntoContainer(\n finishedWork,\n parentFiber,\n hostParentFiber\n );\n break;\n default:\n throw Error(\n \"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n }\n function commitHostSingletonAcquisition(finishedWork) {\n var singleton = finishedWork.stateNode,\n props = finishedWork.memoizedProps;\n try {\n runWithFiberInDEV(\n finishedWork,\n acquireSingletonInstance,\n finishedWork.type,\n props,\n singleton,\n finishedWork\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function isHydratingParent(current, finishedWork) {\n return 31 === finishedWork.tag\n ? ((finishedWork = finishedWork.memoizedState),\n null !== current.memoizedState && null === finishedWork)\n : 13 === finishedWork.tag\n ? ((current = current.memoizedState),\n (finishedWork = finishedWork.memoizedState),\n null !== current &&\n null !== current.dehydrated &&\n (null === finishedWork || null === finishedWork.dehydrated))\n : 3 === finishedWork.tag\n ? current.memoizedState.isDehydrated &&\n 0 === (finishedWork.flags & 256)\n : !1;\n }\n function commitBeforeMutationEffects(root, firstChild) {\n root = root.containerInfo;\n eventsEnabled = _enabled;\n root = getActiveElementDeep(root);\n if (hasSelectionCapabilities(root)) {\n if (\"selectionStart\" in root)\n var JSCompiler_temp = {\n start: root.selectionStart,\n end: root.selectionEnd\n };\n else\n a: {\n JSCompiler_temp =\n ((JSCompiler_temp = root.ownerDocument) &&\n JSCompiler_temp.defaultView) ||\n window;\n var selection =\n JSCompiler_temp.getSelection && JSCompiler_temp.getSelection();\n if (selection && 0 !== selection.rangeCount) {\n JSCompiler_temp = selection.anchorNode;\n var anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode;\n selection = selection.focusOffset;\n try {\n JSCompiler_temp.nodeType, focusNode.nodeType;\n } catch (e$2) {\n JSCompiler_temp = null;\n break a;\n }\n var length = 0,\n start = -1,\n end = -1,\n indexWithinAnchor = 0,\n indexWithinFocus = 0,\n node = root,\n parentNode = null;\n b: for (;;) {\n for (var next; ; ) {\n node !== JSCompiler_temp ||\n (0 !== anchorOffset && 3 !== node.nodeType) ||\n (start = length + anchorOffset);\n node !== focusNode ||\n (0 !== selection && 3 !== node.nodeType) ||\n (end = length + selection);\n 3 === node.nodeType && (length += node.nodeValue.length);\n if (null === (next = node.firstChild)) break;\n parentNode = node;\n node = next;\n }\n for (;;) {\n if (node === root) break b;\n parentNode === JSCompiler_temp &&\n ++indexWithinAnchor === anchorOffset &&\n (start = length);\n parentNode === focusNode &&\n ++indexWithinFocus === selection &&\n (end = length);\n if (null !== (next = node.nextSibling)) break;\n node = parentNode;\n parentNode = node.parentNode;\n }\n node = next;\n }\n JSCompiler_temp =\n -1 === start || -1 === end ? null : { start: start, end: end };\n } else JSCompiler_temp = null;\n }\n JSCompiler_temp = JSCompiler_temp || { start: 0, end: 0 };\n } else JSCompiler_temp = null;\n selectionInformation = {\n focusedElem: root,\n selectionRange: JSCompiler_temp\n };\n _enabled = !1;\n for (nextEffect = firstChild; null !== nextEffect; )\n if (\n ((firstChild = nextEffect),\n (root = firstChild.child),\n 0 !== (firstChild.subtreeFlags & 1028) && null !== root)\n )\n (root.return = firstChild), (nextEffect = root);\n else\n for (; null !== nextEffect; ) {\n root = firstChild = nextEffect;\n JSCompiler_temp = root.alternate;\n anchorOffset = root.flags;\n switch (root.tag) {\n case 0:\n if (\n 0 !== (anchorOffset & 4) &&\n ((root = root.updateQueue),\n (root = null !== root ? root.events : null),\n null !== root)\n )\n for (\n JSCompiler_temp = 0;\n JSCompiler_temp < root.length;\n JSCompiler_temp++\n )\n (anchorOffset = root[JSCompiler_temp]),\n (anchorOffset.ref.impl = anchorOffset.nextImpl);\n break;\n case 11:\n case 15:\n break;\n case 1:\n 0 !== (anchorOffset & 1024) &&\n null !== JSCompiler_temp &&\n commitClassSnapshot(root, JSCompiler_temp);\n break;\n case 3:\n if (0 !== (anchorOffset & 1024))\n if (\n ((root = root.stateNode.containerInfo),\n (JSCompiler_temp = root.nodeType),\n 9 === JSCompiler_temp)\n )\n clearContainerSparingly(root);\n else if (1 === JSCompiler_temp)\n switch (root.nodeName) {\n case \"HEAD\":\n case \"HTML\":\n case \"BODY\":\n clearContainerSparingly(root);\n break;\n default:\n root.textContent = \"\";\n }\n break;\n case 5:\n case 26:\n case 27:\n case 6:\n case 4:\n case 17:\n break;\n default:\n if (0 !== (anchorOffset & 1024))\n throw Error(\n \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\"\n );\n }\n root = firstChild.sibling;\n if (null !== root) {\n root.return = firstChild.return;\n nextEffect = root;\n break;\n }\n nextEffect = firstChild.return;\n }\n }\n function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) {\n var prevEffectStart = pushComponentEffectStart(),\n prevEffectDuration = pushComponentEffectDuration(),\n prevEffectErrors = pushComponentEffectErrors(),\n prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 &&\n commitHookLayoutEffects(finishedWork, Layout | HasEffect);\n break;\n case 1:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (flags & 4)\n if (((finishedRoot = finishedWork.stateNode), null === current))\n finishedWork.type.defaultProps ||\n \"ref\" in finishedWork.memoizedProps ||\n didWarnAboutReassigningProps ||\n (finishedRoot.props !== finishedWork.memoizedProps &&\n console.error(\n \"Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ),\n finishedRoot.state !== finishedWork.memoizedState &&\n console.error(\n \"Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n )),\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n runWithFiberInDEV(\n finishedWork,\n callComponentDidMountInDEV,\n finishedWork,\n finishedRoot\n ),\n recordEffectDuration())\n : runWithFiberInDEV(\n finishedWork,\n callComponentDidMountInDEV,\n finishedWork,\n finishedRoot\n );\n else {\n var prevProps = resolveClassComponentProps(\n finishedWork.type,\n current.memoizedProps\n );\n current = current.memoizedState;\n finishedWork.type.defaultProps ||\n \"ref\" in finishedWork.memoizedProps ||\n didWarnAboutReassigningProps ||\n (finishedRoot.props !== finishedWork.memoizedProps &&\n console.error(\n \"Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ),\n finishedRoot.state !== finishedWork.memoizedState &&\n console.error(\n \"Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",\n getComponentNameFromFiber(finishedWork) || \"instance\"\n ));\n shouldProfile(finishedWork)\n ? (startEffectTimer(),\n runWithFiberInDEV(\n finishedWork,\n callComponentDidUpdateInDEV,\n finishedWork,\n finishedRoot,\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n ),\n recordEffectDuration())\n : runWithFiberInDEV(\n finishedWork,\n callComponentDidUpdateInDEV,\n finishedWork,\n finishedRoot,\n prevProps,\n current,\n finishedRoot.__reactInternalSnapshotBeforeUpdate\n );\n }\n flags & 64 && commitClassCallbacks(finishedWork);\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 3:\n current = pushNestedEffectDurations();\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (\n flags & 64 &&\n ((flags = finishedWork.updateQueue), null !== flags)\n ) {\n prevProps = null;\n if (null !== finishedWork.child)\n switch (finishedWork.child.tag) {\n case 27:\n case 5:\n prevProps = finishedWork.child.stateNode;\n break;\n case 1:\n prevProps = finishedWork.child.stateNode;\n }\n try {\n runWithFiberInDEV(\n finishedWork,\n commitCallbacks,\n flags,\n prevProps\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n finishedRoot.effectDuration += popNestedEffectDurations(current);\n break;\n case 27:\n null === current &&\n flags & 4 &&\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n if (null === current)\n if (flags & 4) commitHostMount(finishedWork);\n else if (flags & 64) {\n finishedRoot = finishedWork.type;\n current = finishedWork.memoizedProps;\n prevProps = finishedWork.stateNode;\n try {\n runWithFiberInDEV(\n finishedWork,\n commitHydratedInstance,\n prevProps,\n finishedRoot,\n current,\n finishedWork\n );\n } catch (error) {\n captureCommitPhaseError(\n finishedWork,\n finishedWork.return,\n error\n );\n }\n }\n flags & 512 && safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n if (flags & 4) {\n flags = pushNestedEffectDurations();\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n finishedRoot = finishedWork.stateNode;\n finishedRoot.effectDuration += bubbleNestedEffectDurations(flags);\n try {\n runWithFiberInDEV(\n finishedWork,\n commitProfiler,\n finishedWork,\n current,\n commitStartTime,\n finishedRoot.effectDuration\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n break;\n case 31:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n flags & 64 &&\n ((finishedRoot = finishedWork.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated),\n null !== finishedRoot &&\n ((flags = retryDehydratedSuspenseBoundary.bind(\n null,\n finishedWork\n )),\n registerSuspenseInstanceRetry(finishedRoot, flags))));\n break;\n case 22:\n flags =\n null !== finishedWork.memoizedState || offscreenSubtreeIsHidden;\n if (!flags) {\n current =\n (null !== current && null !== current.memoizedState) ||\n offscreenSubtreeWasHidden;\n prevProps = offscreenSubtreeIsHidden;\n var prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = flags;\n (offscreenSubtreeWasHidden = current) &&\n !prevOffscreenSubtreeWasHidden\n ? (recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n 0 !== (finishedWork.subtreeFlags & 8772)\n ),\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n 0.05 < componentEffectEndTime - componentEffectStartTime &&\n logComponentReappeared(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime\n ))\n : recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n offscreenSubtreeIsHidden = prevProps;\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n }\n break;\n case 30:\n break;\n default:\n recursivelyTraverseLayoutEffects(finishedRoot, finishedWork);\n }\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&\n logComponentEffect(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n componentEffectDuration,\n componentEffectErrors\n ),\n null === finishedWork.alternate &&\n null !== finishedWork.return &&\n null !== finishedWork.return.alternate &&\n 0.05 < componentEffectEndTime - componentEffectStartTime &&\n (isHydratingParent(\n finishedWork.return.alternate,\n finishedWork.return\n ) ||\n logComponentTrigger(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n \"Mount\"\n )));\n popComponentEffectStart(prevEffectStart);\n popComponentEffectDuration(prevEffectDuration);\n componentEffectErrors = prevEffectErrors;\n componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;\n }\n function detachFiberAfterEffects(fiber) {\n var alternate = fiber.alternate;\n null !== alternate &&\n ((fiber.alternate = null), detachFiberAfterEffects(alternate));\n fiber.child = null;\n fiber.deletions = null;\n fiber.sibling = null;\n 5 === fiber.tag &&\n ((alternate = fiber.stateNode),\n null !== alternate && detachDeletedInstance(alternate));\n fiber.stateNode = null;\n fiber._debugOwner = null;\n fiber.return = null;\n fiber.dependencies = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.stateNode = null;\n fiber.updateQueue = null;\n }\n function recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n parent\n ) {\n for (parent = parent.child; null !== parent; )\n commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n parent\n ),\n (parent = parent.sibling);\n }\n function commitDeletionEffectsOnFiber(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n ) {\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onCommitFiberUnmount\n )\n try {\n injectedHook.onCommitFiberUnmount(rendererID, deletedFiber);\n } catch (err) {\n hasLoggedError ||\n ((hasLoggedError = !0),\n console.error(\n \"React instrumentation encountered an error: %o\",\n err\n ));\n }\n var prevEffectStart = pushComponentEffectStart(),\n prevEffectDuration = pushComponentEffectDuration(),\n prevEffectErrors = pushComponentEffectErrors(),\n prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();\n switch (deletedFiber.tag) {\n case 26:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n deletedFiber.memoizedState\n ? deletedFiber.memoizedState.count--\n : deletedFiber.stateNode &&\n ((finishedRoot = deletedFiber.stateNode),\n finishedRoot.parentNode.removeChild(finishedRoot));\n break;\n case 27:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n var prevHostParent = hostParent,\n prevHostParentIsContainer = hostParentIsContainer;\n isSingletonScope(deletedFiber.type) &&\n ((hostParent = deletedFiber.stateNode),\n (hostParentIsContainer = !1));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n runWithFiberInDEV(\n deletedFiber,\n releaseSingletonInstance,\n deletedFiber.stateNode\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 5:\n offscreenSubtreeWasHidden ||\n safelyDetachRef(deletedFiber, nearestMountedAncestor);\n case 6:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = null;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n if (null !== hostParent)\n if (hostParentIsContainer)\n try {\n runWithFiberInDEV(\n deletedFiber,\n removeChildFromContainer,\n hostParent,\n deletedFiber.stateNode\n );\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n else\n try {\n runWithFiberInDEV(\n deletedFiber,\n removeChild,\n hostParent,\n deletedFiber.stateNode\n );\n } catch (error) {\n captureCommitPhaseError(\n deletedFiber,\n nearestMountedAncestor,\n error\n );\n }\n break;\n case 18:\n null !== hostParent &&\n (hostParentIsContainer\n ? ((finishedRoot = hostParent),\n clearHydrationBoundary(\n 9 === finishedRoot.nodeType\n ? finishedRoot.body\n : \"HTML\" === finishedRoot.nodeName\n ? finishedRoot.ownerDocument.body\n : finishedRoot,\n deletedFiber.stateNode\n ),\n retryIfBlockedOn(finishedRoot))\n : clearHydrationBoundary(hostParent, deletedFiber.stateNode));\n break;\n case 4:\n prevHostParent = hostParent;\n prevHostParentIsContainer = hostParentIsContainer;\n hostParent = deletedFiber.stateNode.containerInfo;\n hostParentIsContainer = !0;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n hostParent = prevHostParent;\n hostParentIsContainer = prevHostParentIsContainer;\n break;\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookEffectListUnmount(\n Insertion,\n deletedFiber,\n nearestMountedAncestor\n );\n offscreenSubtreeWasHidden ||\n commitHookLayoutUnmountEffects(\n deletedFiber,\n nearestMountedAncestor,\n Layout\n );\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 1:\n offscreenSubtreeWasHidden ||\n (safelyDetachRef(deletedFiber, nearestMountedAncestor),\n (prevHostParent = deletedFiber.stateNode),\n \"function\" === typeof prevHostParent.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n deletedFiber,\n nearestMountedAncestor,\n prevHostParent\n ));\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 21:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n break;\n case 22:\n offscreenSubtreeWasHidden =\n (prevHostParent = offscreenSubtreeWasHidden) ||\n null !== deletedFiber.memoizedState;\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n offscreenSubtreeWasHidden = prevHostParent;\n break;\n default:\n recursivelyTraverseDeletionEffects(\n finishedRoot,\n nearestMountedAncestor,\n deletedFiber\n );\n }\n (deletedFiber.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&\n logComponentEffect(\n deletedFiber,\n componentEffectStartTime,\n componentEffectEndTime,\n componentEffectDuration,\n componentEffectErrors\n );\n popComponentEffectStart(prevEffectStart);\n popComponentEffectDuration(prevEffectDuration);\n componentEffectErrors = prevEffectErrors;\n componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;\n }\n function commitActivityHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState), null !== finishedRoot))\n ) {\n finishedRoot = finishedRoot.dehydrated;\n try {\n runWithFiberInDEV(\n finishedWork,\n commitHydratedActivityInstance,\n finishedRoot\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n }\n function commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n if (\n null === finishedWork.memoizedState &&\n ((finishedRoot = finishedWork.alternate),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.memoizedState),\n null !== finishedRoot &&\n ((finishedRoot = finishedRoot.dehydrated), null !== finishedRoot)))\n )\n try {\n runWithFiberInDEV(\n finishedWork,\n commitHydratedSuspenseInstance,\n finishedRoot\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n function getRetryCache(finishedWork) {\n switch (finishedWork.tag) {\n case 31:\n case 13:\n case 19:\n var retryCache = finishedWork.stateNode;\n null === retryCache &&\n (retryCache = finishedWork.stateNode = new PossiblyWeakSet());\n return retryCache;\n case 22:\n return (\n (finishedWork = finishedWork.stateNode),\n (retryCache = finishedWork._retryCache),\n null === retryCache &&\n (retryCache = finishedWork._retryCache = new PossiblyWeakSet()),\n retryCache\n );\n default:\n throw Error(\n \"Unexpected Suspense handler tag (\" +\n finishedWork.tag +\n \"). This is a bug in React.\"\n );\n }\n }\n function attachSuspenseRetryListeners(finishedWork, wakeables) {\n var retryCache = getRetryCache(finishedWork);\n wakeables.forEach(function (wakeable) {\n if (!retryCache.has(wakeable)) {\n retryCache.add(wakeable);\n if (isDevToolsPresent)\n if (null !== inProgressLanes && null !== inProgressRoot)\n restorePendingUpdaters(inProgressRoot, inProgressLanes);\n else\n throw Error(\n \"Expected finished root and lanes to be set. This is a bug in React.\"\n );\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n wakeable.then(retry, retry);\n }\n });\n }\n function recursivelyTraverseMutationEffects(root$jscomp$0, parentFiber) {\n var deletions = parentFiber.deletions;\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var root = root$jscomp$0,\n returnFiber = parentFiber,\n deletedFiber = deletions[i],\n prevEffectStart = pushComponentEffectStart(),\n parent = returnFiber;\n a: for (; null !== parent; ) {\n switch (parent.tag) {\n case 27:\n if (isSingletonScope(parent.type)) {\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n }\n break;\n case 5:\n hostParent = parent.stateNode;\n hostParentIsContainer = !1;\n break a;\n case 3:\n case 4:\n hostParent = parent.stateNode.containerInfo;\n hostParentIsContainer = !0;\n break a;\n }\n parent = parent.return;\n }\n if (null === hostParent)\n throw Error(\n \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\"\n );\n commitDeletionEffectsOnFiber(root, returnFiber, deletedFiber);\n hostParent = null;\n hostParentIsContainer = !1;\n (deletedFiber.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n 0.05 < componentEffectEndTime - componentEffectStartTime &&\n logComponentTrigger(\n deletedFiber,\n componentEffectStartTime,\n componentEffectEndTime,\n \"Unmount\"\n );\n popComponentEffectStart(prevEffectStart);\n root = deletedFiber;\n returnFiber = root.alternate;\n null !== returnFiber && (returnFiber.return = null);\n root.return = null;\n }\n if (parentFiber.subtreeFlags & 13886)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitMutationEffectsOnFiber(parentFiber, root$jscomp$0),\n (parentFiber = parentFiber.sibling);\n }\n function commitMutationEffectsOnFiber(finishedWork, root) {\n var prevEffectStart = pushComponentEffectStart(),\n prevEffectDuration = pushComponentEffectDuration(),\n prevEffectErrors = pushComponentEffectErrors(),\n prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),\n current = finishedWork.alternate,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n (commitHookEffectListUnmount(\n Insertion | HasEffect,\n finishedWork,\n finishedWork.return\n ),\n commitHookEffectListMount(Insertion | HasEffect, finishedWork),\n commitHookLayoutUnmountEffects(\n finishedWork,\n finishedWork.return,\n Layout | HasEffect\n ));\n break;\n case 1:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (\n flags & 64 &&\n offscreenSubtreeIsHidden &&\n ((flags = finishedWork.updateQueue),\n null !== flags && ((current = flags.callbacks), null !== current))\n ) {\n var existingHiddenCallbacks = flags.shared.hiddenCallbacks;\n flags.shared.hiddenCallbacks =\n null === existingHiddenCallbacks\n ? current\n : existingHiddenCallbacks.concat(current);\n }\n break;\n case 26:\n existingHiddenCallbacks = currentHoistableRoot;\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (flags & 4) {\n var currentResource =\n null !== current ? current.memoizedState : null;\n flags = finishedWork.memoizedState;\n if (null === current)\n if (null === flags)\n if (null === finishedWork.stateNode) {\n a: {\n flags = finishedWork.type;\n current = finishedWork.memoizedProps;\n existingHiddenCallbacks =\n existingHiddenCallbacks.ownerDocument ||\n existingHiddenCallbacks;\n b: switch (flags) {\n case \"title\":\n currentResource =\n existingHiddenCallbacks.getElementsByTagName(\n \"title\"\n )[0];\n if (\n !currentResource ||\n currentResource[internalHoistableMarker] ||\n currentResource[internalInstanceKey] ||\n currentResource.namespaceURI === SVG_NAMESPACE ||\n currentResource.hasAttribute(\"itemprop\")\n )\n (currentResource =\n existingHiddenCallbacks.createElement(flags)),\n existingHiddenCallbacks.head.insertBefore(\n currentResource,\n existingHiddenCallbacks.querySelector(\n \"head > title\"\n )\n );\n setInitialProperties(currentResource, flags, current);\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n break a;\n case \"link\":\n var maybeNodes = getHydratableHoistableCache(\n \"link\",\n \"href\",\n existingHiddenCallbacks\n ).get(flags + (current.href || \"\"));\n if (maybeNodes)\n for (var i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n currentResource.getAttribute(\"href\") ===\n (null == current.href || \"\" === current.href\n ? null\n : current.href) &&\n currentResource.getAttribute(\"rel\") ===\n (null == current.rel ? null : current.rel) &&\n currentResource.getAttribute(\"title\") ===\n (null == current.title\n ? null\n : current.title) &&\n currentResource.getAttribute(\"crossorigin\") ===\n (null == current.crossOrigin\n ? null\n : current.crossOrigin))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource =\n existingHiddenCallbacks.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n existingHiddenCallbacks.head.appendChild(\n currentResource\n );\n break;\n case \"meta\":\n if (\n (maybeNodes = getHydratableHoistableCache(\n \"meta\",\n \"content\",\n existingHiddenCallbacks\n ).get(flags + (current.content || \"\")))\n )\n for (i = 0; i < maybeNodes.length; i++)\n if (\n ((currentResource = maybeNodes[i]),\n checkAttributeStringCoercion(\n current.content,\n \"content\"\n ),\n currentResource.getAttribute(\"content\") ===\n (null == current.content\n ? null\n : \"\" + current.content) &&\n currentResource.getAttribute(\"name\") ===\n (null == current.name\n ? null\n : current.name) &&\n currentResource.getAttribute(\"property\") ===\n (null == current.property\n ? null\n : current.property) &&\n currentResource.getAttribute(\"http-equiv\") ===\n (null == current.httpEquiv\n ? null\n : current.httpEquiv) &&\n currentResource.getAttribute(\"charset\") ===\n (null == current.charSet\n ? null\n : current.charSet))\n ) {\n maybeNodes.splice(i, 1);\n break b;\n }\n currentResource =\n existingHiddenCallbacks.createElement(flags);\n setInitialProperties(currentResource, flags, current);\n existingHiddenCallbacks.head.appendChild(\n currentResource\n );\n break;\n default:\n throw Error(\n 'getNodesForType encountered a type it did not expect: \"' +\n flags +\n '\". This is a bug in React.'\n );\n }\n currentResource[internalInstanceKey] = finishedWork;\n markNodeAsHoistable(currentResource);\n flags = currentResource;\n }\n finishedWork.stateNode = flags;\n } else\n mountHoistable(\n existingHiddenCallbacks,\n finishedWork.type,\n finishedWork.stateNode\n );\n else\n finishedWork.stateNode = acquireResource(\n existingHiddenCallbacks,\n flags,\n finishedWork.memoizedProps\n );\n else\n currentResource !== flags\n ? (null === currentResource\n ? null !== current.stateNode &&\n ((current = current.stateNode),\n current.parentNode.removeChild(current))\n : currentResource.count--,\n null === flags\n ? mountHoistable(\n existingHiddenCallbacks,\n finishedWork.type,\n finishedWork.stateNode\n )\n : acquireResource(\n existingHiddenCallbacks,\n flags,\n finishedWork.memoizedProps\n ))\n : null === flags &&\n null !== finishedWork.stateNode &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n }\n break;\n case 27:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n null !== current &&\n flags & 4 &&\n commitHostUpdate(\n finishedWork,\n finishedWork.memoizedProps,\n current.memoizedProps\n );\n break;\n case 5:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 512 &&\n (offscreenSubtreeWasHidden ||\n null === current ||\n safelyDetachRef(current, current.return));\n if (finishedWork.flags & 32) {\n existingHiddenCallbacks = finishedWork.stateNode;\n try {\n runWithFiberInDEV(\n finishedWork,\n resetTextContent,\n existingHiddenCallbacks\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n flags & 4 &&\n null != finishedWork.stateNode &&\n ((existingHiddenCallbacks = finishedWork.memoizedProps),\n commitHostUpdate(\n finishedWork,\n existingHiddenCallbacks,\n null !== current ? current.memoizedProps : existingHiddenCallbacks\n ));\n flags & 1024 &&\n ((needsFormReset = !0),\n \"form\" !== finishedWork.type &&\n console.error(\n \"Unexpected host component type. Expected a form. This is a bug in React.\"\n ));\n break;\n case 6:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n if (flags & 4) {\n if (null === finishedWork.stateNode)\n throw Error(\n \"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\"\n );\n flags = finishedWork.memoizedProps;\n current = null !== current ? current.memoizedProps : flags;\n existingHiddenCallbacks = finishedWork.stateNode;\n try {\n runWithFiberInDEV(\n finishedWork,\n commitTextUpdate,\n existingHiddenCallbacks,\n current,\n flags\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n break;\n case 3:\n existingHiddenCallbacks = pushNestedEffectDurations();\n tagCaches = null;\n currentResource = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(root.containerInfo);\n recursivelyTraverseMutationEffects(root, finishedWork);\n currentHoistableRoot = currentResource;\n commitReconciliationEffects(finishedWork);\n if (\n flags & 4 &&\n null !== current &&\n current.memoizedState.isDehydrated\n )\n try {\n runWithFiberInDEV(\n finishedWork,\n commitHydratedContainer,\n root.containerInfo\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n needsFormReset &&\n ((needsFormReset = !1), recursivelyResetForms(finishedWork));\n root.effectDuration += popNestedEffectDurations(\n existingHiddenCallbacks\n );\n break;\n case 4:\n flags = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n finishedWork.stateNode.containerInfo\n );\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n currentHoistableRoot = flags;\n break;\n case 12:\n flags = pushNestedEffectDurations();\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.stateNode.effectDuration +=\n bubbleNestedEffectDurations(flags);\n break;\n case 31:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 13:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n finishedWork.child.flags & 8192 &&\n (null !== finishedWork.memoizedState) !==\n (null !== current && null !== current.memoizedState) &&\n (globalMostRecentFallbackTime = now$1());\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 22:\n existingHiddenCallbacks = null !== finishedWork.memoizedState;\n var wasHidden = null !== current && null !== current.memoizedState,\n prevOffscreenSubtreeIsHidden = offscreenSubtreeIsHidden,\n prevOffscreenSubtreeWasHidden = offscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden =\n prevOffscreenSubtreeIsHidden || existingHiddenCallbacks;\n offscreenSubtreeWasHidden =\n prevOffscreenSubtreeWasHidden || wasHidden;\n recursivelyTraverseMutationEffects(root, finishedWork);\n offscreenSubtreeWasHidden = prevOffscreenSubtreeWasHidden;\n offscreenSubtreeIsHidden = prevOffscreenSubtreeIsHidden;\n wasHidden &&\n !existingHiddenCallbacks &&\n !prevOffscreenSubtreeIsHidden &&\n !prevOffscreenSubtreeWasHidden &&\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n 0.05 < componentEffectEndTime - componentEffectStartTime &&\n logComponentReappeared(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime\n );\n commitReconciliationEffects(finishedWork);\n if (flags & 8192)\n a: for (\n root = finishedWork.stateNode,\n root._visibility = existingHiddenCallbacks\n ? root._visibility & ~OffscreenVisible\n : root._visibility | OffscreenVisible,\n !existingHiddenCallbacks ||\n null === current ||\n wasHidden ||\n offscreenSubtreeIsHidden ||\n offscreenSubtreeWasHidden ||\n (recursivelyTraverseDisappearLayoutEffects(finishedWork),\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n 0.05 < componentEffectEndTime - componentEffectStartTime &&\n logComponentTrigger(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n \"Disconnect\"\n )),\n current = null,\n root = finishedWork;\n ;\n\n ) {\n if (5 === root.tag || 26 === root.tag) {\n if (null === current) {\n wasHidden = current = root;\n try {\n (currentResource = wasHidden.stateNode),\n existingHiddenCallbacks\n ? runWithFiberInDEV(\n wasHidden,\n hideInstance,\n currentResource\n )\n : runWithFiberInDEV(\n wasHidden,\n unhideInstance,\n wasHidden.stateNode,\n wasHidden.memoizedProps\n );\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (6 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n (maybeNodes = wasHidden.stateNode),\n existingHiddenCallbacks\n ? runWithFiberInDEV(\n wasHidden,\n hideTextInstance,\n maybeNodes\n )\n : runWithFiberInDEV(\n wasHidden,\n unhideTextInstance,\n maybeNodes,\n wasHidden.memoizedProps\n );\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (18 === root.tag) {\n if (null === current) {\n wasHidden = root;\n try {\n (i = wasHidden.stateNode),\n existingHiddenCallbacks\n ? runWithFiberInDEV(\n wasHidden,\n hideDehydratedBoundary,\n i\n )\n : runWithFiberInDEV(\n wasHidden,\n unhideDehydratedBoundary,\n wasHidden.stateNode\n );\n } catch (error) {\n captureCommitPhaseError(wasHidden, wasHidden.return, error);\n }\n }\n } else if (\n ((22 !== root.tag && 23 !== root.tag) ||\n null === root.memoizedState ||\n root === finishedWork) &&\n null !== root.child\n ) {\n root.child.return = root;\n root = root.child;\n continue;\n }\n if (root === finishedWork) break a;\n for (; null === root.sibling; ) {\n if (null === root.return || root.return === finishedWork)\n break a;\n current === root && (current = null);\n root = root.return;\n }\n current === root && (current = null);\n root.sibling.return = root.return;\n root = root.sibling;\n }\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((current = flags.retryQueue),\n null !== current &&\n ((flags.retryQueue = null),\n attachSuspenseRetryListeners(finishedWork, current))));\n break;\n case 19:\n recursivelyTraverseMutationEffects(root, finishedWork);\n commitReconciliationEffects(finishedWork);\n flags & 4 &&\n ((flags = finishedWork.updateQueue),\n null !== flags &&\n ((finishedWork.updateQueue = null),\n attachSuspenseRetryListeners(finishedWork, flags)));\n break;\n case 30:\n break;\n case 21:\n break;\n default:\n recursivelyTraverseMutationEffects(root, finishedWork),\n commitReconciliationEffects(finishedWork);\n }\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&\n logComponentEffect(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n componentEffectDuration,\n componentEffectErrors\n ),\n null === finishedWork.alternate &&\n null !== finishedWork.return &&\n null !== finishedWork.return.alternate &&\n 0.05 < componentEffectEndTime - componentEffectStartTime &&\n (isHydratingParent(\n finishedWork.return.alternate,\n finishedWork.return\n ) ||\n logComponentTrigger(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n \"Mount\"\n )));\n popComponentEffectStart(prevEffectStart);\n popComponentEffectDuration(prevEffectDuration);\n componentEffectErrors = prevEffectErrors;\n componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;\n }\n function commitReconciliationEffects(finishedWork) {\n var flags = finishedWork.flags;\n if (flags & 2) {\n try {\n runWithFiberInDEV(finishedWork, commitPlacement, finishedWork);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n finishedWork.flags &= -3;\n }\n flags & 4096 && (finishedWork.flags &= -4097);\n }\n function recursivelyResetForms(parentFiber) {\n if (parentFiber.subtreeFlags & 1024)\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var fiber = parentFiber;\n recursivelyResetForms(fiber);\n 5 === fiber.tag && fiber.flags & 1024 && fiber.stateNode.reset();\n parentFiber = parentFiber.sibling;\n }\n }\n function recursivelyTraverseLayoutEffects(root, parentFiber) {\n if (parentFiber.subtreeFlags & 8772)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitLayoutEffectOnFiber(root, parentFiber.alternate, parentFiber),\n (parentFiber = parentFiber.sibling);\n }\n function disappearLayoutEffects(finishedWork) {\n var prevEffectStart = pushComponentEffectStart(),\n prevEffectDuration = pushComponentEffectDuration(),\n prevEffectErrors = pushComponentEffectErrors(),\n prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 14:\n case 15:\n commitHookLayoutUnmountEffects(\n finishedWork,\n finishedWork.return,\n Layout\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 1:\n safelyDetachRef(finishedWork, finishedWork.return);\n var instance = finishedWork.stateNode;\n \"function\" === typeof instance.componentWillUnmount &&\n safelyCallComponentWillUnmount(\n finishedWork,\n finishedWork.return,\n instance\n );\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 27:\n runWithFiberInDEV(\n finishedWork,\n releaseSingletonInstance,\n finishedWork.stateNode\n );\n case 26:\n case 5:\n safelyDetachRef(finishedWork, finishedWork.return);\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n case 30:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n break;\n default:\n recursivelyTraverseDisappearLayoutEffects(finishedWork);\n }\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&\n logComponentEffect(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n componentEffectDuration,\n componentEffectErrors\n );\n popComponentEffectStart(prevEffectStart);\n popComponentEffectDuration(prevEffectDuration);\n componentEffectErrors = prevEffectErrors;\n componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;\n }\n function recursivelyTraverseDisappearLayoutEffects(parentFiber) {\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n disappearLayoutEffects(parentFiber),\n (parentFiber = parentFiber.sibling);\n }\n function reappearLayoutEffects(\n finishedRoot,\n current,\n finishedWork,\n includeWorkInProgressEffects\n ) {\n var prevEffectStart = pushComponentEffectStart(),\n prevEffectDuration = pushComponentEffectDuration(),\n prevEffectErrors = pushComponentEffectErrors(),\n prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n commitHookLayoutEffects(finishedWork, Layout);\n break;\n case 1:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n current = finishedWork.stateNode;\n \"function\" === typeof current.componentDidMount &&\n runWithFiberInDEV(\n finishedWork,\n callComponentDidMountInDEV,\n finishedWork,\n current\n );\n current = finishedWork.updateQueue;\n if (null !== current) {\n finishedRoot = finishedWork.stateNode;\n try {\n runWithFiberInDEV(\n finishedWork,\n commitHiddenCallbacks,\n current,\n finishedRoot\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n includeWorkInProgressEffects &&\n flags & 64 &&\n commitClassCallbacks(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 27:\n commitHostSingletonAcquisition(finishedWork);\n case 26:\n case 5:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n null === current &&\n flags & 4 &&\n commitHostMount(finishedWork);\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 12:\n if (includeWorkInProgressEffects && flags & 4) {\n flags = pushNestedEffectDurations();\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects = finishedWork.stateNode;\n includeWorkInProgressEffects.effectDuration +=\n bubbleNestedEffectDurations(flags);\n try {\n runWithFiberInDEV(\n finishedWork,\n commitProfiler,\n finishedWork,\n current,\n commitStartTime,\n includeWorkInProgressEffects.effectDuration\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n break;\n case 31:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitActivityHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 13:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n includeWorkInProgressEffects &&\n flags & 4 &&\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n break;\n case 22:\n null === finishedWork.memoizedState &&\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n safelyAttachRef(finishedWork, finishedWork.return);\n break;\n case 30:\n break;\n default:\n recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n finishedWork,\n includeWorkInProgressEffects\n );\n }\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&\n logComponentEffect(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n componentEffectDuration,\n componentEffectErrors\n );\n popComponentEffectStart(prevEffectStart);\n popComponentEffectDuration(prevEffectDuration);\n componentEffectErrors = prevEffectErrors;\n componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;\n }\n function recursivelyTraverseReappearLayoutEffects(\n finishedRoot,\n parentFiber,\n includeWorkInProgressEffects\n ) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects && 0 !== (parentFiber.subtreeFlags & 8772);\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n reappearLayoutEffects(\n finishedRoot,\n parentFiber.alternate,\n parentFiber,\n includeWorkInProgressEffects\n ),\n (parentFiber = parentFiber.sibling);\n }\n function commitOffscreenPassiveMountEffects(current, finishedWork) {\n var previousCache = null;\n null !== current &&\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n (previousCache = current.memoizedState.cachePool.pool);\n current = null;\n null !== finishedWork.memoizedState &&\n null !== finishedWork.memoizedState.cachePool &&\n (current = finishedWork.memoizedState.cachePool.pool);\n current !== previousCache &&\n (null != current && retainCache(current),\n null != previousCache && releaseCache(previousCache));\n }\n function commitCachePassiveMountEffect(current, finishedWork) {\n current = null;\n null !== finishedWork.alternate &&\n (current = finishedWork.alternate.memoizedState.cache);\n finishedWork = finishedWork.memoizedState.cache;\n finishedWork !== current &&\n (retainCache(finishedWork), null != current && releaseCache(current));\n }\n function recursivelyTraversePassiveMountEffects(\n root,\n parentFiber,\n committedLanes,\n committedTransitions,\n endTime\n ) {\n if (\n parentFiber.subtreeFlags & 10256 ||\n (0 !== parentFiber.actualDuration &&\n (null === parentFiber.alternate ||\n parentFiber.alternate.child !== parentFiber.child))\n )\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var nextSibling = parentFiber.sibling;\n commitPassiveMountOnFiber(\n root,\n parentFiber,\n committedLanes,\n committedTransitions,\n null !== nextSibling ? nextSibling.actualStartTime : endTime\n );\n parentFiber = nextSibling;\n }\n }\n function commitPassiveMountOnFiber(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n ) {\n var prevEffectStart = pushComponentEffectStart(),\n prevEffectDuration = pushComponentEffectDuration(),\n prevEffectErrors = pushComponentEffectErrors(),\n prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),\n prevDeepEquality = alreadyWarnedForDeepEquality,\n flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 < finishedWork.actualStartTime &&\n 0 !== (finishedWork.flags & 1) &&\n logComponentRender(\n finishedWork,\n finishedWork.actualStartTime,\n endTime,\n inHydratedSubtree,\n committedLanes\n );\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n );\n flags & 2048 &&\n commitHookPassiveMountEffects(finishedWork, Passive | HasEffect);\n break;\n case 1:\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 < finishedWork.actualStartTime &&\n (0 !== (finishedWork.flags & 128)\n ? logComponentErrored(\n finishedWork,\n finishedWork.actualStartTime,\n endTime,\n []\n )\n : 0 !== (finishedWork.flags & 1) &&\n logComponentRender(\n finishedWork,\n finishedWork.actualStartTime,\n endTime,\n inHydratedSubtree,\n committedLanes\n ));\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n );\n break;\n case 3:\n var prevProfilerEffectDuration = pushNestedEffectDurations(),\n wasInHydratedSubtree = inHydratedSubtree;\n inHydratedSubtree =\n null !== finishedWork.alternate &&\n finishedWork.alternate.memoizedState.isDehydrated &&\n 0 === (finishedWork.flags & 256);\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n );\n inHydratedSubtree = wasInHydratedSubtree;\n flags & 2048 &&\n ((committedLanes = null),\n null !== finishedWork.alternate &&\n (committedLanes = finishedWork.alternate.memoizedState.cache),\n (committedTransitions = finishedWork.memoizedState.cache),\n committedTransitions !== committedLanes &&\n (retainCache(committedTransitions),\n null != committedLanes && releaseCache(committedLanes)));\n finishedRoot.passiveEffectDuration += popNestedEffectDurations(\n prevProfilerEffectDuration\n );\n break;\n case 12:\n if (flags & 2048) {\n flags = pushNestedEffectDurations();\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n );\n finishedRoot = finishedWork.stateNode;\n finishedRoot.passiveEffectDuration +=\n bubbleNestedEffectDurations(flags);\n try {\n runWithFiberInDEV(\n finishedWork,\n commitProfilerPostCommitImpl,\n finishedWork,\n finishedWork.alternate,\n commitStartTime,\n finishedRoot.passiveEffectDuration\n );\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n } else\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n );\n break;\n case 31:\n flags = inHydratedSubtree;\n prevProfilerEffectDuration =\n null !== finishedWork.alternate\n ? finishedWork.alternate.memoizedState\n : null;\n wasInHydratedSubtree = finishedWork.memoizedState;\n null !== prevProfilerEffectDuration && null === wasInHydratedSubtree\n ? ((wasInHydratedSubtree = finishedWork.deletions),\n null !== wasInHydratedSubtree &&\n 0 < wasInHydratedSubtree.length &&\n 18 === wasInHydratedSubtree[0].tag\n ? ((inHydratedSubtree = !1),\n (prevProfilerEffectDuration =\n prevProfilerEffectDuration.hydrationErrors),\n null !== prevProfilerEffectDuration &&\n logComponentErrored(\n finishedWork,\n finishedWork.actualStartTime,\n endTime,\n prevProfilerEffectDuration\n ))\n : (inHydratedSubtree = !0))\n : (inHydratedSubtree = !1);\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n );\n inHydratedSubtree = flags;\n break;\n case 13:\n flags = inHydratedSubtree;\n prevProfilerEffectDuration =\n null !== finishedWork.alternate\n ? finishedWork.alternate.memoizedState\n : null;\n wasInHydratedSubtree = finishedWork.memoizedState;\n null === prevProfilerEffectDuration ||\n null === prevProfilerEffectDuration.dehydrated ||\n (null !== wasInHydratedSubtree &&\n null !== wasInHydratedSubtree.dehydrated)\n ? (inHydratedSubtree = !1)\n : ((wasInHydratedSubtree = finishedWork.deletions),\n null !== wasInHydratedSubtree &&\n 0 < wasInHydratedSubtree.length &&\n 18 === wasInHydratedSubtree[0].tag\n ? ((inHydratedSubtree = !1),\n (prevProfilerEffectDuration =\n prevProfilerEffectDuration.hydrationErrors),\n null !== prevProfilerEffectDuration &&\n logComponentErrored(\n finishedWork,\n finishedWork.actualStartTime,\n endTime,\n prevProfilerEffectDuration\n ))\n : (inHydratedSubtree = !0));\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n );\n inHydratedSubtree = flags;\n break;\n case 23:\n break;\n case 22:\n wasInHydratedSubtree = finishedWork.stateNode;\n prevProfilerEffectDuration = finishedWork.alternate;\n null !== finishedWork.memoizedState\n ? wasInHydratedSubtree._visibility &\n OffscreenPassiveEffectsConnected\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n )\n : wasInHydratedSubtree._visibility &\n OffscreenPassiveEffectsConnected\n ? recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n )\n : ((wasInHydratedSubtree._visibility |=\n OffscreenPassiveEffectsConnected),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n (0 !== finishedWork.actualDuration &&\n (null === finishedWork.alternate ||\n finishedWork.alternate.child !== finishedWork.child)),\n endTime\n ),\n (finishedWork.mode & ProfileMode) === NoMode ||\n inHydratedSubtree ||\n ((finishedRoot = finishedWork.actualStartTime),\n 0 <= finishedRoot &&\n 0.05 < endTime - finishedRoot &&\n logComponentReappeared(finishedWork, finishedRoot, endTime),\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n 0.05 < componentEffectEndTime - componentEffectStartTime &&\n logComponentReappeared(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime\n )));\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n prevProfilerEffectDuration,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraversePassiveMountEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n );\n }\n if ((finishedWork.mode & ProfileMode) !== NoMode) {\n if (\n (finishedRoot =\n !inHydratedSubtree &&\n null === finishedWork.alternate &&\n null !== finishedWork.return &&\n null !== finishedWork.return.alternate)\n )\n (committedLanes = finishedWork.actualStartTime),\n 0 <= committedLanes &&\n 0.05 < endTime - committedLanes &&\n logComponentTrigger(\n finishedWork,\n committedLanes,\n endTime,\n \"Mount\"\n );\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n ((componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&\n logComponentEffect(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n componentEffectDuration,\n componentEffectErrors\n ),\n finishedRoot &&\n 0.05 < componentEffectEndTime - componentEffectStartTime &&\n logComponentTrigger(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n \"Mount\"\n ));\n }\n popComponentEffectStart(prevEffectStart);\n popComponentEffectDuration(prevEffectDuration);\n componentEffectErrors = prevEffectErrors;\n componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;\n alreadyWarnedForDeepEquality = prevDeepEquality;\n }\n function recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n parentFiber,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects,\n endTime\n ) {\n includeWorkInProgressEffects =\n includeWorkInProgressEffects &&\n (0 !== (parentFiber.subtreeFlags & 10256) ||\n (0 !== parentFiber.actualDuration &&\n (null === parentFiber.alternate ||\n parentFiber.alternate.child !== parentFiber.child)));\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var nextSibling = parentFiber.sibling;\n reconnectPassiveEffects(\n finishedRoot,\n parentFiber,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects,\n null !== nextSibling ? nextSibling.actualStartTime : endTime\n );\n parentFiber = nextSibling;\n }\n }\n function reconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects,\n endTime\n ) {\n var prevEffectStart = pushComponentEffectStart(),\n prevEffectDuration = pushComponentEffectDuration(),\n prevEffectErrors = pushComponentEffectErrors(),\n prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate(),\n prevDeepEquality = alreadyWarnedForDeepEquality;\n includeWorkInProgressEffects &&\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 < finishedWork.actualStartTime &&\n 0 !== (finishedWork.flags & 1) &&\n logComponentRender(\n finishedWork,\n finishedWork.actualStartTime,\n endTime,\n inHydratedSubtree,\n committedLanes\n );\n var flags = finishedWork.flags;\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects,\n endTime\n );\n commitHookPassiveMountEffects(finishedWork, Passive);\n break;\n case 23:\n break;\n case 22:\n var _instance2 = finishedWork.stateNode;\n null !== finishedWork.memoizedState\n ? _instance2._visibility & OffscreenPassiveEffectsConnected\n ? recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects,\n endTime\n )\n : recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n endTime\n )\n : ((_instance2._visibility |= OffscreenPassiveEffectsConnected),\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects,\n endTime\n ));\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(\n finishedWork.alternate,\n finishedWork\n );\n break;\n case 24:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects,\n endTime\n );\n includeWorkInProgressEffects &&\n flags & 2048 &&\n commitCachePassiveMountEffect(finishedWork.alternate, finishedWork);\n break;\n default:\n recursivelyTraverseReconnectPassiveEffects(\n finishedRoot,\n finishedWork,\n committedLanes,\n committedTransitions,\n includeWorkInProgressEffects,\n endTime\n );\n }\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&\n logComponentEffect(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n componentEffectDuration,\n componentEffectErrors\n );\n popComponentEffectStart(prevEffectStart);\n popComponentEffectDuration(prevEffectDuration);\n componentEffectErrors = prevEffectErrors;\n componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;\n alreadyWarnedForDeepEquality = prevDeepEquality;\n }\n function recursivelyTraverseAtomicPassiveEffects(\n finishedRoot$jscomp$0,\n parentFiber,\n committedLanes$jscomp$0,\n committedTransitions$jscomp$0,\n endTime$jscomp$0\n ) {\n if (\n parentFiber.subtreeFlags & 10256 ||\n (0 !== parentFiber.actualDuration &&\n (null === parentFiber.alternate ||\n parentFiber.alternate.child !== parentFiber.child))\n )\n for (var child = parentFiber.child; null !== child; ) {\n parentFiber = child.sibling;\n var finishedRoot = finishedRoot$jscomp$0,\n committedLanes = committedLanes$jscomp$0,\n committedTransitions = committedTransitions$jscomp$0,\n endTime =\n null !== parentFiber\n ? parentFiber.actualStartTime\n : endTime$jscomp$0,\n prevDeepEquality = alreadyWarnedForDeepEquality;\n (child.mode & ProfileMode) !== NoMode &&\n 0 < child.actualStartTime &&\n 0 !== (child.flags & 1) &&\n logComponentRender(\n child,\n child.actualStartTime,\n endTime,\n inHydratedSubtree,\n committedLanes\n );\n var flags = child.flags;\n switch (child.tag) {\n case 22:\n recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n child,\n committedLanes,\n committedTransitions,\n endTime\n );\n flags & 2048 &&\n commitOffscreenPassiveMountEffects(child.alternate, child);\n break;\n case 24:\n recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n child,\n committedLanes,\n committedTransitions,\n endTime\n );\n flags & 2048 &&\n commitCachePassiveMountEffect(child.alternate, child);\n break;\n default:\n recursivelyTraverseAtomicPassiveEffects(\n finishedRoot,\n child,\n committedLanes,\n committedTransitions,\n endTime\n );\n }\n alreadyWarnedForDeepEquality = prevDeepEquality;\n child = parentFiber;\n }\n }\n function recursivelyAccumulateSuspenseyCommit(\n parentFiber,\n committedLanes,\n suspendedState\n ) {\n if (parentFiber.subtreeFlags & suspenseyCommitFlag)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n accumulateSuspenseyCommitOnFiber(\n parentFiber,\n committedLanes,\n suspendedState\n ),\n (parentFiber = parentFiber.sibling);\n }\n function accumulateSuspenseyCommitOnFiber(\n fiber,\n committedLanes,\n suspendedState\n ) {\n switch (fiber.tag) {\n case 26:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n fiber.flags & suspenseyCommitFlag &&\n null !== fiber.memoizedState &&\n suspendResource(\n suspendedState,\n currentHoistableRoot,\n fiber.memoizedState,\n fiber.memoizedProps\n );\n break;\n case 5:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n break;\n case 3:\n case 4:\n var previousHoistableRoot = currentHoistableRoot;\n currentHoistableRoot = getHoistableRoot(\n fiber.stateNode.containerInfo\n );\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n currentHoistableRoot = previousHoistableRoot;\n break;\n case 22:\n null === fiber.memoizedState &&\n ((previousHoistableRoot = fiber.alternate),\n null !== previousHoistableRoot &&\n null !== previousHoistableRoot.memoizedState\n ? ((previousHoistableRoot = suspenseyCommitFlag),\n (suspenseyCommitFlag = 16777216),\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ),\n (suspenseyCommitFlag = previousHoistableRoot))\n : recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n ));\n break;\n default:\n recursivelyAccumulateSuspenseyCommit(\n fiber,\n committedLanes,\n suspendedState\n );\n }\n }\n function detachAlternateSiblings(parentFiber) {\n var previousFiber = parentFiber.alternate;\n if (\n null !== previousFiber &&\n ((parentFiber = previousFiber.child), null !== parentFiber)\n ) {\n previousFiber.child = null;\n do\n (previousFiber = parentFiber.sibling),\n (parentFiber.sibling = null),\n (parentFiber = previousFiber);\n while (null !== parentFiber);\n }\n }\n function recursivelyTraversePassiveUnmountEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n prevEffectStart = pushComponentEffectStart();\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n (childToDelete.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n 0.05 < componentEffectEndTime - componentEffectStartTime &&\n logComponentTrigger(\n childToDelete,\n componentEffectStartTime,\n componentEffectEndTime,\n \"Unmount\"\n );\n popComponentEffectStart(prevEffectStart);\n }\n detachAlternateSiblings(parentFiber);\n }\n if (parentFiber.subtreeFlags & 10256)\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n commitPassiveUnmountOnFiber(parentFiber),\n (parentFiber = parentFiber.sibling);\n }\n function commitPassiveUnmountOnFiber(finishedWork) {\n var prevEffectStart = pushComponentEffectStart(),\n prevEffectDuration = pushComponentEffectDuration(),\n prevEffectErrors = pushComponentEffectErrors(),\n prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.flags & 2048 &&\n commitHookPassiveUnmountEffects(\n finishedWork,\n finishedWork.return,\n Passive | HasEffect\n );\n break;\n case 3:\n var prevProfilerEffectDuration = pushNestedEffectDurations();\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.stateNode.passiveEffectDuration +=\n popNestedEffectDurations(prevProfilerEffectDuration);\n break;\n case 12:\n prevProfilerEffectDuration = pushNestedEffectDurations();\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n finishedWork.stateNode.passiveEffectDuration +=\n bubbleNestedEffectDurations(prevProfilerEffectDuration);\n break;\n case 22:\n prevProfilerEffectDuration = finishedWork.stateNode;\n null !== finishedWork.memoizedState &&\n prevProfilerEffectDuration._visibility &\n OffscreenPassiveEffectsConnected &&\n (null === finishedWork.return || 13 !== finishedWork.return.tag)\n ? ((prevProfilerEffectDuration._visibility &=\n ~OffscreenPassiveEffectsConnected),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork),\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n 0.05 < componentEffectEndTime - componentEffectStartTime &&\n logComponentTrigger(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n \"Disconnect\"\n ))\n : recursivelyTraversePassiveUnmountEffects(finishedWork);\n break;\n default:\n recursivelyTraversePassiveUnmountEffects(finishedWork);\n }\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&\n logComponentEffect(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n componentEffectDuration,\n componentEffectErrors\n );\n popComponentEffectStart(prevEffectStart);\n popComponentEffectDuration(prevEffectDuration);\n componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;\n componentEffectErrors = prevEffectErrors;\n }\n function recursivelyTraverseDisconnectPassiveEffects(parentFiber) {\n var deletions = parentFiber.deletions;\n if (0 !== (parentFiber.flags & 16)) {\n if (null !== deletions)\n for (var i = 0; i < deletions.length; i++) {\n var childToDelete = deletions[i],\n prevEffectStart = pushComponentEffectStart();\n nextEffect = childToDelete;\n commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n childToDelete,\n parentFiber\n );\n (childToDelete.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n 0.05 < componentEffectEndTime - componentEffectStartTime &&\n logComponentTrigger(\n childToDelete,\n componentEffectStartTime,\n componentEffectEndTime,\n \"Unmount\"\n );\n popComponentEffectStart(prevEffectStart);\n }\n detachAlternateSiblings(parentFiber);\n }\n for (parentFiber = parentFiber.child; null !== parentFiber; )\n disconnectPassiveEffect(parentFiber),\n (parentFiber = parentFiber.sibling);\n }\n function disconnectPassiveEffect(finishedWork) {\n var prevEffectStart = pushComponentEffectStart(),\n prevEffectDuration = pushComponentEffectDuration(),\n prevEffectErrors = pushComponentEffectErrors(),\n prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();\n switch (finishedWork.tag) {\n case 0:\n case 11:\n case 15:\n commitHookPassiveUnmountEffects(\n finishedWork,\n finishedWork.return,\n Passive\n );\n recursivelyTraverseDisconnectPassiveEffects(finishedWork);\n break;\n case 22:\n var instance = finishedWork.stateNode;\n instance._visibility & OffscreenPassiveEffectsConnected &&\n ((instance._visibility &= ~OffscreenPassiveEffectsConnected),\n recursivelyTraverseDisconnectPassiveEffects(finishedWork));\n break;\n default:\n recursivelyTraverseDisconnectPassiveEffects(finishedWork);\n }\n (finishedWork.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&\n logComponentEffect(\n finishedWork,\n componentEffectStartTime,\n componentEffectEndTime,\n componentEffectDuration,\n componentEffectErrors\n );\n popComponentEffectStart(prevEffectStart);\n popComponentEffectDuration(prevEffectDuration);\n componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;\n componentEffectErrors = prevEffectErrors;\n }\n function commitPassiveUnmountEffectsInsideOfDeletedTree_begin(\n deletedSubtreeRoot,\n nearestMountedAncestor$jscomp$0\n ) {\n for (; null !== nextEffect; ) {\n var fiber = nextEffect,\n current = fiber,\n nearestMountedAncestor = nearestMountedAncestor$jscomp$0,\n prevEffectStart = pushComponentEffectStart(),\n prevEffectDuration = pushComponentEffectDuration(),\n prevEffectErrors = pushComponentEffectErrors(),\n prevEffectDidSpawnUpdate = pushComponentEffectDidSpawnUpdate();\n switch (current.tag) {\n case 0:\n case 11:\n case 15:\n commitHookPassiveUnmountEffects(\n current,\n nearestMountedAncestor,\n Passive\n );\n break;\n case 23:\n case 22:\n null !== current.memoizedState &&\n null !== current.memoizedState.cachePool &&\n ((nearestMountedAncestor = current.memoizedState.cachePool.pool),\n null != nearestMountedAncestor &&\n retainCache(nearestMountedAncestor));\n break;\n case 24:\n releaseCache(current.memoizedState.cache);\n }\n (current.mode & ProfileMode) !== NoMode &&\n 0 <= componentEffectStartTime &&\n 0 <= componentEffectEndTime &&\n (componentEffectSpawnedUpdate || 0.05 < componentEffectDuration) &&\n logComponentEffect(\n current,\n componentEffectStartTime,\n componentEffectEndTime,\n componentEffectDuration,\n componentEffectErrors\n );\n popComponentEffectStart(prevEffectStart);\n popComponentEffectDuration(prevEffectDuration);\n componentEffectSpawnedUpdate = prevEffectDidSpawnUpdate;\n componentEffectErrors = prevEffectErrors;\n current = fiber.child;\n if (null !== current) (current.return = fiber), (nextEffect = current);\n else\n a: for (fiber = deletedSubtreeRoot; null !== nextEffect; ) {\n current = nextEffect;\n prevEffectStart = current.sibling;\n prevEffectDuration = current.return;\n detachFiberAfterEffects(current);\n if (current === fiber) {\n nextEffect = null;\n break a;\n }\n if (null !== prevEffectStart) {\n prevEffectStart.return = prevEffectDuration;\n nextEffect = prevEffectStart;\n break a;\n }\n nextEffect = prevEffectDuration;\n }\n }\n }\n function onCommitRoot() {\n commitHooks.forEach(function (commitHook) {\n return commitHook();\n });\n }\n function isConcurrentActEnvironment() {\n var isReactActEnvironmentGlobal =\n \"undefined\" !== typeof IS_REACT_ACT_ENVIRONMENT\n ? IS_REACT_ACT_ENVIRONMENT\n : void 0;\n isReactActEnvironmentGlobal ||\n null === ReactSharedInternals.actQueue ||\n console.error(\n \"The current testing environment is not configured to support act(...)\"\n );\n return isReactActEnvironmentGlobal;\n }\n function requestUpdateLane(fiber) {\n if (\n (executionContext & RenderContext) !== NoContext &&\n 0 !== workInProgressRootRenderLanes\n )\n return workInProgressRootRenderLanes & -workInProgressRootRenderLanes;\n var transition = ReactSharedInternals.T;\n return null !== transition\n ? (transition._updatedFibers || (transition._updatedFibers = new Set()),\n transition._updatedFibers.add(fiber),\n requestTransitionLane())\n : resolveUpdatePriority();\n }\n function requestDeferredLane() {\n if (0 === workInProgressDeferredLane)\n if (0 === (workInProgressRootRenderLanes & 536870912) || isHydrating) {\n var lane = nextTransitionDeferredLane;\n nextTransitionDeferredLane <<= 1;\n 0 === (nextTransitionDeferredLane & 3932160) &&\n (nextTransitionDeferredLane = 262144);\n workInProgressDeferredLane = lane;\n } else workInProgressDeferredLane = 536870912;\n lane = suspenseHandlerStackCursor.current;\n null !== lane && (lane.flags |= 32);\n return workInProgressDeferredLane;\n }\n function scheduleUpdateOnFiber(root, fiber, lane) {\n isRunningInsertionEffect &&\n console.error(\"useInsertionEffect must not schedule updates.\");\n isFlushingPassiveEffects && (didScheduleUpdateDuringPassiveEffects = !0);\n if (\n (root === workInProgressRoot &&\n (workInProgressSuspendedReason === SuspendedOnData ||\n workInProgressSuspendedReason === SuspendedOnAction)) ||\n null !== root.cancelPendingCommit\n )\n prepareFreshStack(root, 0),\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n markRootUpdated$1(root, lane);\n if (\n (executionContext & RenderContext) !== NoContext &&\n root === workInProgressRoot\n ) {\n if (isRendering)\n switch (fiber.tag) {\n case 0:\n case 11:\n case 15:\n root =\n (workInProgress && getComponentNameFromFiber(workInProgress)) ||\n \"Unknown\";\n didWarnAboutUpdateInRenderForAnotherComponent.has(root) ||\n (didWarnAboutUpdateInRenderForAnotherComponent.add(root),\n (fiber = getComponentNameFromFiber(fiber) || \"Unknown\"),\n console.error(\n \"Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://react.dev/link/setstate-in-render\",\n fiber,\n root,\n root\n ));\n break;\n case 1:\n didWarnAboutUpdateInRender ||\n (console.error(\n \"Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state.\"\n ),\n (didWarnAboutUpdateInRender = !0));\n }\n } else\n isDevToolsPresent && addFiberToLanesMap(root, fiber, lane),\n warnIfUpdatesNotWrappedWithActDEV(fiber),\n root === workInProgressRoot &&\n ((executionContext & RenderContext) === NoContext &&\n (workInProgressRootInterleavedUpdatedLanes |= lane),\n workInProgressRootExitStatus === RootSuspendedWithDelay &&\n markRootSuspended(\n root,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n )),\n ensureRootIsScheduled(root);\n }\n function performWorkOnRoot(root, lanes, forceSync) {\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext)\n throw Error(\"Should not already be working.\");\n if (0 !== workInProgressRootRenderLanes && null !== workInProgress) {\n var yieldedFiber = workInProgress,\n yieldEndTime = now$1();\n switch (yieldReason) {\n case SuspendedOnImmediate:\n case SuspendedOnData:\n var startTime = yieldStartTime;\n supportsUserTiming &&\n ((yieldedFiber = yieldedFiber._debugTask)\n ? yieldedFiber.run(\n console.timeStamp.bind(\n console,\n \"Suspended\",\n startTime,\n yieldEndTime,\n COMPONENTS_TRACK,\n void 0,\n \"primary-light\"\n )\n )\n : console.timeStamp(\n \"Suspended\",\n startTime,\n yieldEndTime,\n COMPONENTS_TRACK,\n void 0,\n \"primary-light\"\n ));\n break;\n case SuspendedOnAction:\n startTime = yieldStartTime;\n supportsUserTiming &&\n ((yieldedFiber = yieldedFiber._debugTask)\n ? yieldedFiber.run(\n console.timeStamp.bind(\n console,\n \"Action\",\n startTime,\n yieldEndTime,\n COMPONENTS_TRACK,\n void 0,\n \"primary-light\"\n )\n )\n : console.timeStamp(\n \"Action\",\n startTime,\n yieldEndTime,\n COMPONENTS_TRACK,\n void 0,\n \"primary-light\"\n ));\n break;\n default:\n supportsUserTiming &&\n ((yieldedFiber = yieldEndTime - yieldStartTime),\n 3 > yieldedFiber ||\n console.timeStamp(\n \"Blocked\",\n yieldStartTime,\n yieldEndTime,\n COMPONENTS_TRACK,\n void 0,\n 5 > yieldedFiber\n ? \"primary-light\"\n : 10 > yieldedFiber\n ? \"primary\"\n : 100 > yieldedFiber\n ? \"primary-dark\"\n : \"error\"\n ));\n }\n }\n startTime = (forceSync =\n (!forceSync &&\n 0 === (lanes & 127) &&\n 0 === (lanes & root.expiredLanes)) ||\n checkIfRootIsPrerendering(root, lanes))\n ? renderRootConcurrent(root, lanes)\n : renderRootSync(root, lanes, !0);\n var renderWasConcurrent = forceSync;\n do {\n if (startTime === RootInProgress) {\n workInProgressRootIsPrerendering &&\n !forceSync &&\n markRootSuspended(root, lanes, 0, !1);\n lanes = workInProgressSuspendedReason;\n yieldStartTime = now();\n yieldReason = lanes;\n break;\n } else {\n yieldedFiber = now$1();\n yieldEndTime = root.current.alternate;\n if (\n renderWasConcurrent &&\n !isRenderConsistentWithExternalStores(yieldEndTime)\n ) {\n setCurrentTrackFromLanes(lanes);\n yieldEndTime = renderStartTime;\n startTime = yieldedFiber;\n !supportsUserTiming ||\n startTime <= yieldEndTime ||\n (workInProgressUpdateTask\n ? workInProgressUpdateTask.run(\n console.timeStamp.bind(\n console,\n \"Teared Render\",\n yieldEndTime,\n startTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"error\"\n )\n )\n : console.timeStamp(\n \"Teared Render\",\n yieldEndTime,\n startTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"error\"\n ));\n finalizeRender(lanes, yieldedFiber);\n startTime = renderRootSync(root, lanes, !1);\n renderWasConcurrent = !1;\n continue;\n }\n if (startTime === RootErrored) {\n renderWasConcurrent = lanes;\n if (root.errorRecoveryDisabledLanes & renderWasConcurrent)\n var errorRetryLanes = 0;\n else\n (errorRetryLanes = root.pendingLanes & -536870913),\n (errorRetryLanes =\n 0 !== errorRetryLanes\n ? errorRetryLanes\n : errorRetryLanes & 536870912\n ? 536870912\n : 0);\n if (0 !== errorRetryLanes) {\n setCurrentTrackFromLanes(lanes);\n logErroredRenderPhase(\n renderStartTime,\n yieldedFiber,\n lanes,\n workInProgressUpdateTask\n );\n finalizeRender(lanes, yieldedFiber);\n lanes = errorRetryLanes;\n a: {\n yieldedFiber = root;\n startTime = renderWasConcurrent;\n renderWasConcurrent = workInProgressRootConcurrentErrors;\n var wasRootDehydrated =\n yieldedFiber.current.memoizedState.isDehydrated;\n wasRootDehydrated &&\n (prepareFreshStack(yieldedFiber, errorRetryLanes).flags |=\n 256);\n errorRetryLanes = renderRootSync(\n yieldedFiber,\n errorRetryLanes,\n !1\n );\n if (errorRetryLanes !== RootErrored) {\n if (\n workInProgressRootDidAttachPingListener &&\n !wasRootDehydrated\n ) {\n yieldedFiber.errorRecoveryDisabledLanes |= startTime;\n workInProgressRootInterleavedUpdatedLanes |= startTime;\n startTime = RootSuspendedWithDelay;\n break a;\n }\n yieldedFiber = workInProgressRootRecoverableErrors;\n workInProgressRootRecoverableErrors = renderWasConcurrent;\n null !== yieldedFiber &&\n (null === workInProgressRootRecoverableErrors\n ? (workInProgressRootRecoverableErrors = yieldedFiber)\n : workInProgressRootRecoverableErrors.push.apply(\n workInProgressRootRecoverableErrors,\n yieldedFiber\n ));\n }\n startTime = errorRetryLanes;\n }\n renderWasConcurrent = !1;\n if (startTime !== RootErrored) continue;\n else yieldedFiber = now$1();\n }\n }\n if (startTime === RootFatalErrored) {\n setCurrentTrackFromLanes(lanes);\n logErroredRenderPhase(\n renderStartTime,\n yieldedFiber,\n lanes,\n workInProgressUpdateTask\n );\n finalizeRender(lanes, yieldedFiber);\n prepareFreshStack(root, 0);\n markRootSuspended(root, lanes, 0, !0);\n break;\n }\n a: {\n forceSync = root;\n switch (startTime) {\n case RootInProgress:\n case RootFatalErrored:\n throw Error(\"Root did not complete. This is a bug in React.\");\n case RootSuspendedWithDelay:\n if ((lanes & 4194048) !== lanes) break;\n case RootSuspendedAtTheShell:\n setCurrentTrackFromLanes(lanes);\n logSuspendedRenderPhase(\n renderStartTime,\n yieldedFiber,\n lanes,\n workInProgressUpdateTask\n );\n finalizeRender(lanes, yieldedFiber);\n yieldEndTime = lanes;\n 0 !== (yieldEndTime & 127)\n ? (blockingSuspendedTime = yieldedFiber)\n : 0 !== (yieldEndTime & 4194048) &&\n (transitionSuspendedTime = yieldedFiber);\n markRootSuspended(\n forceSync,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n break a;\n case RootErrored:\n workInProgressRootRecoverableErrors = null;\n break;\n case RootSuspended:\n case RootCompleted:\n break;\n default:\n throw Error(\"Unknown root exit status.\");\n }\n if (null !== ReactSharedInternals.actQueue)\n commitRoot(\n forceSync,\n yieldEndTime,\n lanes,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n startTime,\n null,\n null,\n renderStartTime,\n yieldedFiber\n );\n else {\n if (\n (lanes & 62914560) === lanes &&\n ((renderWasConcurrent =\n globalMostRecentFallbackTime +\n FALLBACK_THROTTLE_MS -\n now$1()),\n 10 < renderWasConcurrent)\n ) {\n markRootSuspended(\n forceSync,\n lanes,\n workInProgressDeferredLane,\n !workInProgressRootDidSkipSuspendedSiblings\n );\n if (0 !== getNextLanes(forceSync, 0, !0)) break a;\n pendingEffectsLanes = lanes;\n forceSync.timeoutHandle = scheduleTimeout(\n commitRootWhenReady.bind(\n null,\n forceSync,\n yieldEndTime,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n startTime,\n \"Throttled\",\n renderStartTime,\n yieldedFiber\n ),\n renderWasConcurrent\n );\n break a;\n }\n commitRootWhenReady(\n forceSync,\n yieldEndTime,\n workInProgressRootRecoverableErrors,\n workInProgressTransitions,\n workInProgressRootDidIncludeRecursiveRenderUpdate,\n lanes,\n workInProgressDeferredLane,\n workInProgressRootInterleavedUpdatedLanes,\n workInProgressSuspendedRetryLanes,\n workInProgressRootDidSkipSuspendedSiblings,\n startTime,\n null,\n renderStartTime,\n yieldedFiber\n );\n }\n }\n }\n break;\n } while (1);\n ensureRootIsScheduled(root);\n }\n function commitRootWhenReady(\n root,\n finishedWork,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n lanes,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n didSkipSuspendedSiblings,\n exitStatus,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n ) {\n root.timeoutHandle = noTimeout;\n var subtreeFlags = finishedWork.subtreeFlags,\n suspendedState = null;\n if (subtreeFlags & 8192 || 16785408 === (subtreeFlags & 16785408))\n if (\n ((suspendedState = {\n stylesheets: null,\n count: 0,\n imgCount: 0,\n imgBytes: 0,\n suspenseyImages: [],\n waitingForImages: !0,\n waitingForViewTransition: !1,\n unsuspend: noop$1\n }),\n accumulateSuspenseyCommitOnFiber(finishedWork, lanes, suspendedState),\n (subtreeFlags =\n (lanes & 62914560) === lanes\n ? globalMostRecentFallbackTime - now$1()\n : (lanes & 4194048) === lanes\n ? globalMostRecentTransitionTime - now$1()\n : 0),\n (subtreeFlags = waitForCommitToBeReady(suspendedState, subtreeFlags)),\n null !== subtreeFlags)\n ) {\n pendingEffectsLanes = lanes;\n root.cancelPendingCommit = subtreeFlags(\n commitRoot.bind(\n null,\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedState,\n suspendedState.waitingForViewTransition\n ? \"Waiting for the previous Animation\"\n : 0 < suspendedState.count\n ? 0 < suspendedState.imgCount\n ? \"Suspended on CSS and Images\"\n : \"Suspended on CSS\"\n : 1 === suspendedState.imgCount\n ? \"Suspended on an Image\"\n : 0 < suspendedState.imgCount\n ? \"Suspended on Images\"\n : null,\n completedRenderStartTime,\n completedRenderEndTime\n )\n );\n markRootSuspended(\n root,\n lanes,\n spawnedLane,\n !didSkipSuspendedSiblings\n );\n return;\n }\n commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedState,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n );\n }\n function isRenderConsistentWithExternalStores(finishedWork) {\n for (var node = finishedWork; ; ) {\n var tag = node.tag;\n if (\n (0 === tag || 11 === tag || 15 === tag) &&\n node.flags & 16384 &&\n ((tag = node.updateQueue),\n null !== tag && ((tag = tag.stores), null !== tag))\n )\n for (var i = 0; i < tag.length; i++) {\n var check = tag[i],\n getSnapshot = check.getSnapshot;\n check = check.value;\n try {\n if (!objectIs(getSnapshot(), check)) return !1;\n } catch (error) {\n return !1;\n }\n }\n tag = node.child;\n if (node.subtreeFlags & 16384 && null !== tag)\n (tag.return = node), (node = tag);\n else {\n if (node === finishedWork) break;\n for (; null === node.sibling; ) {\n if (null === node.return || node.return === finishedWork) return !0;\n node = node.return;\n }\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n return !0;\n }\n function markRootSuspended(\n root,\n suspendedLanes,\n spawnedLane,\n didAttemptEntireTree\n ) {\n suspendedLanes &= ~workInProgressRootPingedLanes;\n suspendedLanes &= ~workInProgressRootInterleavedUpdatedLanes;\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes;\n didAttemptEntireTree && (root.warmLanes |= suspendedLanes);\n didAttemptEntireTree = root.expirationTimes;\n for (var lanes = suspendedLanes; 0 < lanes; ) {\n var index = 31 - clz32(lanes),\n lane = 1 << index;\n didAttemptEntireTree[index] = -1;\n lanes &= ~lane;\n }\n 0 !== spawnedLane &&\n markSpawnedDeferredLane(root, spawnedLane, suspendedLanes);\n }\n function flushSyncWork$1() {\n return (executionContext & (RenderContext | CommitContext)) === NoContext\n ? (flushSyncWorkAcrossRoots_impl(0, !1), !1)\n : !0;\n }\n function resetWorkInProgressStack() {\n if (null !== workInProgress) {\n if (workInProgressSuspendedReason === NotSuspended)\n var interruptedWork = workInProgress.return;\n else\n (interruptedWork = workInProgress),\n resetContextDependencies(),\n resetHooksOnUnwind(interruptedWork),\n (thenableState$1 = null),\n (thenableIndexCounter$1 = 0),\n (interruptedWork = workInProgress);\n for (; null !== interruptedWork; )\n unwindInterruptedWork(interruptedWork.alternate, interruptedWork),\n (interruptedWork = interruptedWork.return);\n workInProgress = null;\n }\n }\n function finalizeRender(lanes, finalizationTime) {\n 0 !== (lanes & 127) && (blockingClampTime = finalizationTime);\n 0 !== (lanes & 4194048) && (transitionClampTime = finalizationTime);\n 0 !== (lanes & 62914560) && (retryClampTime = finalizationTime);\n 0 !== (lanes & 2080374784) && (idleClampTime = finalizationTime);\n }\n function prepareFreshStack(root, lanes) {\n supportsUserTiming &&\n (console.timeStamp(\n \"Blocking Track\",\n 0.003,\n 0.003,\n \"Blocking\",\n LANES_TRACK_GROUP,\n \"primary-light\"\n ),\n console.timeStamp(\n \"Transition Track\",\n 0.003,\n 0.003,\n \"Transition\",\n LANES_TRACK_GROUP,\n \"primary-light\"\n ),\n console.timeStamp(\n \"Suspense Track\",\n 0.003,\n 0.003,\n \"Suspense\",\n LANES_TRACK_GROUP,\n \"primary-light\"\n ),\n console.timeStamp(\n \"Idle Track\",\n 0.003,\n 0.003,\n \"Idle\",\n LANES_TRACK_GROUP,\n \"primary-light\"\n ));\n var previousRenderStartTime = renderStartTime;\n renderStartTime = now();\n if (0 !== workInProgressRootRenderLanes && 0 < previousRenderStartTime) {\n setCurrentTrackFromLanes(workInProgressRootRenderLanes);\n if (\n workInProgressRootExitStatus === RootSuspended ||\n workInProgressRootExitStatus === RootSuspendedWithDelay\n )\n logSuspendedRenderPhase(\n previousRenderStartTime,\n renderStartTime,\n lanes,\n workInProgressUpdateTask\n );\n else {\n var endTime = renderStartTime,\n debugTask = workInProgressUpdateTask;\n if (supportsUserTiming && !(endTime <= previousRenderStartTime)) {\n var color =\n (lanes & 738197653) === lanes\n ? \"tertiary-dark\"\n : \"primary-dark\",\n label =\n (lanes & 536870912) === lanes\n ? \"Prewarm\"\n : (lanes & 201326741) === lanes\n ? \"Interrupted Hydration\"\n : \"Interrupted Render\";\n debugTask\n ? debugTask.run(\n console.timeStamp.bind(\n console,\n label,\n previousRenderStartTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n color\n )\n )\n : console.timeStamp(\n label,\n previousRenderStartTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n color\n );\n }\n }\n finalizeRender(workInProgressRootRenderLanes, renderStartTime);\n }\n previousRenderStartTime = workInProgressUpdateTask;\n workInProgressUpdateTask = null;\n if (0 !== (lanes & 127)) {\n workInProgressUpdateTask = blockingUpdateTask;\n debugTask =\n 0 <= blockingUpdateTime && blockingUpdateTime < blockingClampTime\n ? blockingClampTime\n : blockingUpdateTime;\n endTime =\n 0 <= blockingEventTime && blockingEventTime < blockingClampTime\n ? blockingClampTime\n : blockingEventTime;\n color =\n 0 <= endTime ? endTime : 0 <= debugTask ? debugTask : renderStartTime;\n 0 <= blockingSuspendedTime\n ? (setCurrentTrackFromLanes(2),\n logSuspendedWithDelayPhase(\n blockingSuspendedTime,\n color,\n lanes,\n previousRenderStartTime\n ))\n : 0 !== (animatingLanes & 127) &&\n (setCurrentTrackFromLanes(2),\n logAnimatingPhase(blockingClampTime, color, animatingTask));\n previousRenderStartTime = debugTask;\n var eventTime = endTime,\n eventType = blockingEventType,\n eventIsRepeat = 0 < blockingEventRepeatTime,\n isSpawnedUpdate = blockingUpdateType === SPAWNED_UPDATE,\n isPingedUpdate = blockingUpdateType === PINGED_UPDATE;\n debugTask = renderStartTime;\n endTime = blockingUpdateTask;\n color = blockingUpdateMethodName;\n label = blockingUpdateComponentName;\n if (supportsUserTiming) {\n currentTrack = \"Blocking\";\n 0 < previousRenderStartTime\n ? previousRenderStartTime > debugTask &&\n (previousRenderStartTime = debugTask)\n : (previousRenderStartTime = debugTask);\n 0 < eventTime\n ? eventTime > previousRenderStartTime &&\n (eventTime = previousRenderStartTime)\n : (eventTime = previousRenderStartTime);\n if (null !== eventType && previousRenderStartTime > eventTime) {\n var color$jscomp$0 = eventIsRepeat ? \"secondary-light\" : \"warning\";\n endTime\n ? endTime.run(\n console.timeStamp.bind(\n console,\n eventIsRepeat ? \"Consecutive\" : \"Event: \" + eventType,\n eventTime,\n previousRenderStartTime,\n currentTrack,\n LANES_TRACK_GROUP,\n color$jscomp$0\n )\n )\n : console.timeStamp(\n eventIsRepeat ? \"Consecutive\" : \"Event: \" + eventType,\n eventTime,\n previousRenderStartTime,\n currentTrack,\n LANES_TRACK_GROUP,\n color$jscomp$0\n );\n }\n debugTask > previousRenderStartTime &&\n ((eventTime = isSpawnedUpdate\n ? \"error\"\n : (lanes & 738197653) === lanes\n ? \"tertiary-light\"\n : \"primary-light\"),\n (isSpawnedUpdate = isPingedUpdate\n ? \"Promise Resolved\"\n : isSpawnedUpdate\n ? \"Cascading Update\"\n : 5 < debugTask - previousRenderStartTime\n ? \"Update Blocked\"\n : \"Update\"),\n (isPingedUpdate = []),\n null != label && isPingedUpdate.push([\"Component name\", label]),\n null != color && isPingedUpdate.push([\"Method name\", color]),\n (previousRenderStartTime = {\n start: previousRenderStartTime,\n end: debugTask,\n detail: {\n devtools: {\n properties: isPingedUpdate,\n track: currentTrack,\n trackGroup: LANES_TRACK_GROUP,\n color: eventTime\n }\n }\n }),\n endTime\n ? endTime.run(\n performance.measure.bind(\n performance,\n isSpawnedUpdate,\n previousRenderStartTime\n )\n )\n : performance.measure(isSpawnedUpdate, previousRenderStartTime));\n }\n blockingUpdateTime = -1.1;\n blockingUpdateType = 0;\n blockingUpdateComponentName = blockingUpdateMethodName = null;\n blockingSuspendedTime = -1.1;\n blockingEventRepeatTime = blockingEventTime;\n blockingEventTime = -1.1;\n blockingClampTime = now();\n }\n 0 !== (lanes & 4194048) &&\n ((workInProgressUpdateTask = transitionUpdateTask),\n (debugTask =\n 0 <= transitionStartTime && transitionStartTime < transitionClampTime\n ? transitionClampTime\n : transitionStartTime),\n (previousRenderStartTime =\n 0 <= transitionUpdateTime &&\n transitionUpdateTime < transitionClampTime\n ? transitionClampTime\n : transitionUpdateTime),\n (endTime =\n 0 <= transitionEventTime && transitionEventTime < transitionClampTime\n ? transitionClampTime\n : transitionEventTime),\n (color =\n 0 <= endTime\n ? endTime\n : 0 <= previousRenderStartTime\n ? previousRenderStartTime\n : renderStartTime),\n 0 <= transitionSuspendedTime\n ? (setCurrentTrackFromLanes(256),\n logSuspendedWithDelayPhase(\n transitionSuspendedTime,\n color,\n lanes,\n workInProgressUpdateTask\n ))\n : 0 !== (animatingLanes & 4194048) &&\n (setCurrentTrackFromLanes(256),\n logAnimatingPhase(transitionClampTime, color, animatingTask)),\n (isPingedUpdate = endTime),\n (eventTime = transitionEventType),\n (eventType = 0 < transitionEventRepeatTime),\n (eventIsRepeat = transitionUpdateType === PINGED_UPDATE),\n (color = renderStartTime),\n (endTime = transitionUpdateTask),\n (label = transitionUpdateMethodName),\n (isSpawnedUpdate = transitionUpdateComponentName),\n supportsUserTiming &&\n ((currentTrack = \"Transition\"),\n 0 < previousRenderStartTime\n ? previousRenderStartTime > color &&\n (previousRenderStartTime = color)\n : (previousRenderStartTime = color),\n 0 < debugTask\n ? debugTask > previousRenderStartTime &&\n (debugTask = previousRenderStartTime)\n : (debugTask = previousRenderStartTime),\n 0 < isPingedUpdate\n ? isPingedUpdate > debugTask && (isPingedUpdate = debugTask)\n : (isPingedUpdate = debugTask),\n debugTask > isPingedUpdate &&\n null !== eventTime &&\n ((color$jscomp$0 = eventType ? \"secondary-light\" : \"warning\"),\n endTime\n ? endTime.run(\n console.timeStamp.bind(\n console,\n eventType ? \"Consecutive\" : \"Event: \" + eventTime,\n isPingedUpdate,\n debugTask,\n currentTrack,\n LANES_TRACK_GROUP,\n color$jscomp$0\n )\n )\n : console.timeStamp(\n eventType ? \"Consecutive\" : \"Event: \" + eventTime,\n isPingedUpdate,\n debugTask,\n currentTrack,\n LANES_TRACK_GROUP,\n color$jscomp$0\n )),\n previousRenderStartTime > debugTask &&\n (endTime\n ? endTime.run(\n console.timeStamp.bind(\n console,\n \"Action\",\n debugTask,\n previousRenderStartTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"primary-dark\"\n )\n )\n : console.timeStamp(\n \"Action\",\n debugTask,\n previousRenderStartTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"primary-dark\"\n )),\n color > previousRenderStartTime &&\n ((debugTask = eventIsRepeat\n ? \"Promise Resolved\"\n : 5 < color - previousRenderStartTime\n ? \"Update Blocked\"\n : \"Update\"),\n (isPingedUpdate = []),\n null != isSpawnedUpdate &&\n isPingedUpdate.push([\"Component name\", isSpawnedUpdate]),\n null != label && isPingedUpdate.push([\"Method name\", label]),\n (previousRenderStartTime = {\n start: previousRenderStartTime,\n end: color,\n detail: {\n devtools: {\n properties: isPingedUpdate,\n track: currentTrack,\n trackGroup: LANES_TRACK_GROUP,\n color: \"primary-light\"\n }\n }\n }),\n endTime\n ? endTime.run(\n performance.measure.bind(\n performance,\n debugTask,\n previousRenderStartTime\n )\n )\n : performance.measure(debugTask, previousRenderStartTime))),\n (transitionUpdateTime = transitionStartTime = -1.1),\n (transitionUpdateType = 0),\n (transitionSuspendedTime = -1.1),\n (transitionEventRepeatTime = transitionEventTime),\n (transitionEventTime = -1.1),\n (transitionClampTime = now()));\n 0 !== (lanes & 62914560) &&\n 0 !== (animatingLanes & 62914560) &&\n (setCurrentTrackFromLanes(4194304),\n logAnimatingPhase(retryClampTime, renderStartTime, animatingTask));\n 0 !== (lanes & 2080374784) &&\n 0 !== (animatingLanes & 2080374784) &&\n (setCurrentTrackFromLanes(268435456),\n logAnimatingPhase(idleClampTime, renderStartTime, animatingTask));\n previousRenderStartTime = root.timeoutHandle;\n previousRenderStartTime !== noTimeout &&\n ((root.timeoutHandle = noTimeout),\n cancelTimeout(previousRenderStartTime));\n previousRenderStartTime = root.cancelPendingCommit;\n null !== previousRenderStartTime &&\n ((root.cancelPendingCommit = null), previousRenderStartTime());\n pendingEffectsLanes = 0;\n resetWorkInProgressStack();\n workInProgressRoot = root;\n workInProgress = previousRenderStartTime = createWorkInProgress(\n root.current,\n null\n );\n workInProgressRootRenderLanes = lanes;\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n workInProgressRootDidSkipSuspendedSiblings = !1;\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(root, lanes);\n workInProgressRootDidAttachPingListener = !1;\n workInProgressRootExitStatus = RootInProgress;\n workInProgressSuspendedRetryLanes =\n workInProgressDeferredLane =\n workInProgressRootPingedLanes =\n workInProgressRootInterleavedUpdatedLanes =\n workInProgressRootSkippedLanes =\n 0;\n workInProgressRootRecoverableErrors = workInProgressRootConcurrentErrors =\n null;\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1;\n 0 !== (lanes & 8) && (lanes |= lanes & 32);\n endTime = root.entangledLanes;\n if (0 !== endTime)\n for (root = root.entanglements, endTime &= lanes; 0 < endTime; )\n (debugTask = 31 - clz32(endTime)),\n (color = 1 << debugTask),\n (lanes |= root[debugTask]),\n (endTime &= ~color);\n entangledRenderLanes = lanes;\n finishQueueingConcurrentUpdates();\n root = getCurrentTime();\n 1e3 < root - lastResetTime &&\n ((ReactSharedInternals.recentlyCreatedOwnerStacks = 0),\n (lastResetTime = root));\n ReactStrictModeWarnings.discardPendingWarnings();\n return previousRenderStartTime;\n }\n function handleThrow(root, thrownValue) {\n currentlyRenderingFiber = null;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n ReactSharedInternals.getCurrentStack = null;\n isRendering = !1;\n current = null;\n thrownValue === SuspenseException ||\n thrownValue === SuspenseActionException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = SuspendedOnImmediate))\n : thrownValue === SuspenseyCommitException\n ? ((thrownValue = getSuspendedThenable()),\n (workInProgressSuspendedReason = SuspendedOnInstance))\n : (workInProgressSuspendedReason =\n thrownValue === SelectiveHydrationException\n ? SuspendedOnHydration\n : null !== thrownValue &&\n \"object\" === typeof thrownValue &&\n \"function\" === typeof thrownValue.then\n ? SuspendedOnDeprecatedThrowPromise\n : SuspendedOnError);\n workInProgressThrownValue = thrownValue;\n var erroredWork = workInProgress;\n null === erroredWork\n ? ((workInProgressRootExitStatus = RootFatalErrored),\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n ))\n : erroredWork.mode & ProfileMode &&\n stopProfilerTimerIfRunningAndRecordDuration(erroredWork);\n }\n function shouldRemainOnPreviousScreen() {\n var handler = suspenseHandlerStackCursor.current;\n return null === handler\n ? !0\n : (workInProgressRootRenderLanes & 4194048) ===\n workInProgressRootRenderLanes\n ? null === shellBoundary\n ? !0\n : !1\n : (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n ? handler === shellBoundary\n : !1;\n }\n function pushDispatcher() {\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = ContextOnlyDispatcher;\n return null === prevDispatcher ? ContextOnlyDispatcher : prevDispatcher;\n }\n function pushAsyncDispatcher() {\n var prevAsyncDispatcher = ReactSharedInternals.A;\n ReactSharedInternals.A = DefaultAsyncDispatcher;\n return prevAsyncDispatcher;\n }\n function markRenderDerivedCause(fiber) {\n null === workInProgressUpdateTask &&\n (workInProgressUpdateTask =\n null == fiber._debugTask ? null : fiber._debugTask);\n }\n function renderDidSuspendDelayIfPossible() {\n workInProgressRootExitStatus = RootSuspendedWithDelay;\n workInProgressRootDidSkipSuspendedSiblings ||\n ((workInProgressRootRenderLanes & 4194048) !==\n workInProgressRootRenderLanes &&\n null !== suspenseHandlerStackCursor.current) ||\n (workInProgressRootIsPrerendering = !0);\n (0 === (workInProgressRootSkippedLanes & 134217727) &&\n 0 === (workInProgressRootInterleavedUpdatedLanes & 134217727)) ||\n null === workInProgressRoot ||\n markRootSuspended(\n workInProgressRoot,\n workInProgressRootRenderLanes,\n workInProgressDeferredLane,\n !1\n );\n }\n function renderRootSync(root, lanes, shouldYieldForPrerendering) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== lanes\n ) {\n if (isDevToolsPresent) {\n var memoizedUpdaters = root.memoizedUpdaters;\n 0 < memoizedUpdaters.size &&\n (restorePendingUpdaters(root, workInProgressRootRenderLanes),\n memoizedUpdaters.clear());\n movePendingFibersToMemoized(root, lanes);\n }\n workInProgressTransitions = null;\n prepareFreshStack(root, lanes);\n }\n lanes = !1;\n memoizedUpdaters = workInProgressRootExitStatus;\n a: do\n try {\n if (\n workInProgressSuspendedReason !== NotSuspended &&\n null !== workInProgress\n ) {\n var unitOfWork = workInProgress,\n thrownValue = workInProgressThrownValue;\n switch (workInProgressSuspendedReason) {\n case SuspendedOnHydration:\n resetWorkInProgressStack();\n memoizedUpdaters = RootSuspendedAtTheShell;\n break a;\n case SuspendedOnImmediate:\n case SuspendedOnData:\n case SuspendedOnAction:\n case SuspendedOnDeprecatedThrowPromise:\n null === suspenseHandlerStackCursor.current && (lanes = !0);\n var reason = workInProgressSuspendedReason;\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n if (\n shouldYieldForPrerendering &&\n workInProgressRootIsPrerendering\n ) {\n memoizedUpdaters = RootInProgress;\n break a;\n }\n break;\n default:\n (reason = workInProgressSuspendedReason),\n (workInProgressSuspendedReason = NotSuspended),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(root, unitOfWork, thrownValue, reason);\n }\n }\n workLoopSync();\n memoizedUpdaters = workInProgressRootExitStatus;\n break;\n } catch (thrownValue$8) {\n handleThrow(root, thrownValue$8);\n }\n while (1);\n lanes && root.shellSuspendCounter++;\n resetContextDependencies();\n executionContext = prevExecutionContext;\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n null === workInProgress &&\n ((workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0),\n finishQueueingConcurrentUpdates());\n return memoizedUpdaters;\n }\n function workLoopSync() {\n for (; null !== workInProgress; ) performUnitOfWork(workInProgress);\n }\n function renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(),\n prevAsyncDispatcher = pushAsyncDispatcher();\n if (\n workInProgressRoot !== root ||\n workInProgressRootRenderLanes !== lanes\n ) {\n if (isDevToolsPresent) {\n var memoizedUpdaters = root.memoizedUpdaters;\n 0 < memoizedUpdaters.size &&\n (restorePendingUpdaters(root, workInProgressRootRenderLanes),\n memoizedUpdaters.clear());\n movePendingFibersToMemoized(root, lanes);\n }\n workInProgressTransitions = null;\n workInProgressRootRenderTargetTime = now$1() + RENDER_TIMEOUT_MS;\n prepareFreshStack(root, lanes);\n } else\n workInProgressRootIsPrerendering = checkIfRootIsPrerendering(\n root,\n lanes\n );\n a: do\n try {\n if (\n workInProgressSuspendedReason !== NotSuspended &&\n null !== workInProgress\n )\n b: switch (\n ((lanes = workInProgress),\n (memoizedUpdaters = workInProgressThrownValue),\n workInProgressSuspendedReason)\n ) {\n case SuspendedOnError:\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(\n root,\n lanes,\n memoizedUpdaters,\n SuspendedOnError\n );\n break;\n case SuspendedOnData:\n case SuspendedOnAction:\n if (isThenableResolved(memoizedUpdaters)) {\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n replaySuspendedUnitOfWork(lanes);\n break;\n }\n lanes = function () {\n (workInProgressSuspendedReason !== SuspendedOnData &&\n workInProgressSuspendedReason !== SuspendedOnAction) ||\n workInProgressRoot !== root ||\n (workInProgressSuspendedReason =\n SuspendedAndReadyToContinue);\n ensureRootIsScheduled(root);\n };\n memoizedUpdaters.then(lanes, lanes);\n break a;\n case SuspendedOnImmediate:\n workInProgressSuspendedReason = SuspendedAndReadyToContinue;\n break a;\n case SuspendedOnInstance:\n workInProgressSuspendedReason =\n SuspendedOnInstanceAndReadyToContinue;\n break a;\n case SuspendedAndReadyToContinue:\n isThenableResolved(memoizedUpdaters)\n ? ((workInProgressSuspendedReason = NotSuspended),\n (workInProgressThrownValue = null),\n replaySuspendedUnitOfWork(lanes))\n : ((workInProgressSuspendedReason = NotSuspended),\n (workInProgressThrownValue = null),\n throwAndUnwindWorkLoop(\n root,\n lanes,\n memoizedUpdaters,\n SuspendedAndReadyToContinue\n ));\n break;\n case SuspendedOnInstanceAndReadyToContinue:\n var resource = null;\n switch (workInProgress.tag) {\n case 26:\n resource = workInProgress.memoizedState;\n case 5:\n case 27:\n var hostFiber = workInProgress;\n if (\n resource\n ? preloadResource(resource)\n : hostFiber.stateNode.complete\n ) {\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n var sibling = hostFiber.sibling;\n if (null !== sibling) workInProgress = sibling;\n else {\n var returnFiber = hostFiber.return;\n null !== returnFiber\n ? ((workInProgress = returnFiber),\n completeUnitOfWork(returnFiber))\n : (workInProgress = null);\n }\n break b;\n }\n break;\n default:\n console.error(\n \"Unexpected type of fiber triggered a suspensey commit. This is a bug in React.\"\n );\n }\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(\n root,\n lanes,\n memoizedUpdaters,\n SuspendedOnInstanceAndReadyToContinue\n );\n break;\n case SuspendedOnDeprecatedThrowPromise:\n workInProgressSuspendedReason = NotSuspended;\n workInProgressThrownValue = null;\n throwAndUnwindWorkLoop(\n root,\n lanes,\n memoizedUpdaters,\n SuspendedOnDeprecatedThrowPromise\n );\n break;\n case SuspendedOnHydration:\n resetWorkInProgressStack();\n workInProgressRootExitStatus = RootSuspendedAtTheShell;\n break a;\n default:\n throw Error(\n \"Unexpected SuspendedReason. This is a bug in React.\"\n );\n }\n null !== ReactSharedInternals.actQueue\n ? workLoopSync()\n : workLoopConcurrentByScheduler();\n break;\n } catch (thrownValue$9) {\n handleThrow(root, thrownValue$9);\n }\n while (1);\n resetContextDependencies();\n ReactSharedInternals.H = prevDispatcher;\n ReactSharedInternals.A = prevAsyncDispatcher;\n executionContext = prevExecutionContext;\n if (null !== workInProgress) return RootInProgress;\n workInProgressRoot = null;\n workInProgressRootRenderLanes = 0;\n finishQueueingConcurrentUpdates();\n return workInProgressRootExitStatus;\n }\n function workLoopConcurrentByScheduler() {\n for (; null !== workInProgress && !shouldYield(); )\n performUnitOfWork(workInProgress);\n }\n function performUnitOfWork(unitOfWork) {\n var current = unitOfWork.alternate;\n (unitOfWork.mode & ProfileMode) !== NoMode\n ? (startProfilerTimer(unitOfWork),\n (current = runWithFiberInDEV(\n unitOfWork,\n beginWork,\n current,\n unitOfWork,\n entangledRenderLanes\n )),\n stopProfilerTimerIfRunningAndRecordDuration(unitOfWork))\n : (current = runWithFiberInDEV(\n unitOfWork,\n beginWork,\n current,\n unitOfWork,\n entangledRenderLanes\n ));\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === current\n ? completeUnitOfWork(unitOfWork)\n : (workInProgress = current);\n }\n function replaySuspendedUnitOfWork(unitOfWork) {\n var next = runWithFiberInDEV(unitOfWork, replayBeginWork, unitOfWork);\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n null === next ? completeUnitOfWork(unitOfWork) : (workInProgress = next);\n }\n function replayBeginWork(unitOfWork) {\n var current = unitOfWork.alternate,\n isProfilingMode = (unitOfWork.mode & ProfileMode) !== NoMode;\n isProfilingMode && startProfilerTimer(unitOfWork);\n switch (unitOfWork.tag) {\n case 15:\n case 0:\n current = replayFunctionComponent(\n current,\n unitOfWork,\n unitOfWork.pendingProps,\n unitOfWork.type,\n void 0,\n workInProgressRootRenderLanes\n );\n break;\n case 11:\n current = replayFunctionComponent(\n current,\n unitOfWork,\n unitOfWork.pendingProps,\n unitOfWork.type.render,\n unitOfWork.ref,\n workInProgressRootRenderLanes\n );\n break;\n case 5:\n resetHooksOnUnwind(unitOfWork);\n default:\n unwindInterruptedWork(current, unitOfWork),\n (unitOfWork = workInProgress =\n resetWorkInProgress(unitOfWork, entangledRenderLanes)),\n (current = beginWork(current, unitOfWork, entangledRenderLanes));\n }\n isProfilingMode &&\n stopProfilerTimerIfRunningAndRecordDuration(unitOfWork);\n return current;\n }\n function throwAndUnwindWorkLoop(\n root,\n unitOfWork,\n thrownValue,\n suspendedReason\n ) {\n resetContextDependencies();\n resetHooksOnUnwind(unitOfWork);\n thenableState$1 = null;\n thenableIndexCounter$1 = 0;\n var returnFiber = unitOfWork.return;\n try {\n if (\n throwException(\n root,\n returnFiber,\n unitOfWork,\n thrownValue,\n workInProgressRootRenderLanes\n )\n ) {\n workInProgressRootExitStatus = RootFatalErrored;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n } catch (error) {\n if (null !== returnFiber) throw ((workInProgress = returnFiber), error);\n workInProgressRootExitStatus = RootFatalErrored;\n logUncaughtError(\n root,\n createCapturedValueAtFiber(thrownValue, root.current)\n );\n workInProgress = null;\n return;\n }\n if (unitOfWork.flags & 32768) {\n if (isHydrating || suspendedReason === SuspendedOnError) root = !0;\n else if (\n workInProgressRootIsPrerendering ||\n 0 !== (workInProgressRootRenderLanes & 536870912)\n )\n root = !1;\n else if (\n ((workInProgressRootDidSkipSuspendedSiblings = root = !0),\n suspendedReason === SuspendedOnData ||\n suspendedReason === SuspendedOnAction ||\n suspendedReason === SuspendedOnImmediate ||\n suspendedReason === SuspendedOnDeprecatedThrowPromise)\n )\n (suspendedReason = suspenseHandlerStackCursor.current),\n null !== suspendedReason &&\n 13 === suspendedReason.tag &&\n (suspendedReason.flags |= 16384);\n unwindUnitOfWork(unitOfWork, root);\n } else completeUnitOfWork(unitOfWork);\n }\n function completeUnitOfWork(unitOfWork) {\n var completedWork = unitOfWork;\n do {\n if (0 !== (completedWork.flags & 32768)) {\n unwindUnitOfWork(\n completedWork,\n workInProgressRootDidSkipSuspendedSiblings\n );\n return;\n }\n var current = completedWork.alternate;\n unitOfWork = completedWork.return;\n startProfilerTimer(completedWork);\n current = runWithFiberInDEV(\n completedWork,\n completeWork,\n current,\n completedWork,\n entangledRenderLanes\n );\n (completedWork.mode & ProfileMode) !== NoMode &&\n stopProfilerTimerIfRunningAndRecordIncompleteDuration(completedWork);\n if (null !== current) {\n workInProgress = current;\n return;\n }\n completedWork = completedWork.sibling;\n if (null !== completedWork) {\n workInProgress = completedWork;\n return;\n }\n workInProgress = completedWork = unitOfWork;\n } while (null !== completedWork);\n workInProgressRootExitStatus === RootInProgress &&\n (workInProgressRootExitStatus = RootCompleted);\n }\n function unwindUnitOfWork(unitOfWork, skipSiblings) {\n do {\n var next = unwindWork(unitOfWork.alternate, unitOfWork);\n if (null !== next) {\n next.flags &= 32767;\n workInProgress = next;\n return;\n }\n if ((unitOfWork.mode & ProfileMode) !== NoMode) {\n stopProfilerTimerIfRunningAndRecordIncompleteDuration(unitOfWork);\n next = unitOfWork.actualDuration;\n for (var child = unitOfWork.child; null !== child; )\n (next += child.actualDuration), (child = child.sibling);\n unitOfWork.actualDuration = next;\n }\n next = unitOfWork.return;\n null !== next &&\n ((next.flags |= 32768),\n (next.subtreeFlags = 0),\n (next.deletions = null));\n if (\n !skipSiblings &&\n ((unitOfWork = unitOfWork.sibling), null !== unitOfWork)\n ) {\n workInProgress = unitOfWork;\n return;\n }\n workInProgress = unitOfWork = next;\n } while (null !== unitOfWork);\n workInProgressRootExitStatus = RootSuspendedAtTheShell;\n workInProgress = null;\n }\n function commitRoot(\n root,\n finishedWork,\n lanes,\n recoverableErrors,\n transitions,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes,\n exitStatus,\n suspendedState,\n suspendedCommitReason,\n completedRenderStartTime,\n completedRenderEndTime\n ) {\n root.cancelPendingCommit = null;\n do flushPendingEffects();\n while (pendingEffectsStatus !== NO_PENDING_EFFECTS);\n ReactStrictModeWarnings.flushLegacyContextWarning();\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext)\n throw Error(\"Should not already be working.\");\n setCurrentTrackFromLanes(lanes);\n exitStatus === RootErrored\n ? logErroredRenderPhase(\n completedRenderStartTime,\n completedRenderEndTime,\n lanes,\n workInProgressUpdateTask\n )\n : null !== recoverableErrors\n ? logRecoveredRenderPhase(\n completedRenderStartTime,\n completedRenderEndTime,\n lanes,\n recoverableErrors,\n null !== finishedWork &&\n null !== finishedWork.alternate &&\n finishedWork.alternate.memoizedState.isDehydrated &&\n 0 !== (finishedWork.flags & 256),\n workInProgressUpdateTask\n )\n : logRenderPhase(\n completedRenderStartTime,\n completedRenderEndTime,\n lanes,\n workInProgressUpdateTask\n );\n if (null !== finishedWork) {\n 0 === lanes &&\n console.error(\n \"finishedLanes should not be empty during a commit. This is a bug in React.\"\n );\n if (finishedWork === root.current)\n throw Error(\n \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\"\n );\n didIncludeRenderPhaseUpdate =\n finishedWork.lanes | finishedWork.childLanes;\n didIncludeRenderPhaseUpdate |= concurrentlyUpdatedLanes;\n markRootFinished(\n root,\n lanes,\n didIncludeRenderPhaseUpdate,\n spawnedLane,\n updatedLanes,\n suspendedRetryLanes\n );\n root === workInProgressRoot &&\n ((workInProgress = workInProgressRoot = null),\n (workInProgressRootRenderLanes = 0));\n pendingFinishedWork = finishedWork;\n pendingEffectsRoot = root;\n pendingEffectsLanes = lanes;\n pendingEffectsRemainingLanes = didIncludeRenderPhaseUpdate;\n pendingPassiveTransitions = transitions;\n pendingRecoverableErrors = recoverableErrors;\n pendingEffectsRenderEndTime = completedRenderEndTime;\n pendingSuspendedCommitReason = suspendedCommitReason;\n pendingDelayedCommitReason = IMMEDIATE_COMMIT;\n pendingSuspendedViewTransitionReason = null;\n 0 !== finishedWork.actualDuration ||\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256)\n ? ((root.callbackNode = null),\n (root.callbackPriority = 0),\n scheduleCallback$1(NormalPriority$1, function () {\n schedulerEvent = window.event;\n pendingDelayedCommitReason === IMMEDIATE_COMMIT &&\n (pendingDelayedCommitReason = DELAYED_PASSIVE_COMMIT);\n flushPassiveEffects();\n return null;\n }))\n : ((root.callbackNode = null), (root.callbackPriority = 0));\n commitErrors = null;\n commitStartTime = now();\n null !== suspendedCommitReason &&\n logSuspendedCommitPhase(\n completedRenderEndTime,\n commitStartTime,\n suspendedCommitReason,\n workInProgressUpdateTask\n );\n recoverableErrors = 0 !== (finishedWork.flags & 13878);\n if (0 !== (finishedWork.subtreeFlags & 13878) || recoverableErrors) {\n recoverableErrors = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n transitions = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = DiscreteEventPriority;\n spawnedLane = executionContext;\n executionContext |= CommitContext;\n try {\n commitBeforeMutationEffects(root, finishedWork, lanes);\n } finally {\n (executionContext = spawnedLane),\n (ReactDOMSharedInternals.p = transitions),\n (ReactSharedInternals.T = recoverableErrors);\n }\n }\n pendingEffectsStatus = PENDING_MUTATION_PHASE;\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n }\n }\n function flushMutationEffects() {\n if (pendingEffectsStatus === PENDING_MUTATION_PHASE) {\n pendingEffectsStatus = NO_PENDING_EFFECTS;\n var root = pendingEffectsRoot,\n finishedWork = pendingFinishedWork,\n lanes = pendingEffectsLanes,\n rootMutationHasEffect = 0 !== (finishedWork.flags & 13878);\n if (\n 0 !== (finishedWork.subtreeFlags & 13878) ||\n rootMutationHasEffect\n ) {\n rootMutationHasEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = DiscreteEventPriority;\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n try {\n inProgressLanes = lanes;\n inProgressRoot = root;\n resetComponentEffectTimers();\n commitMutationEffectsOnFiber(finishedWork, root);\n inProgressRoot = inProgressLanes = null;\n lanes = selectionInformation;\n var curFocusedElem = getActiveElementDeep(root.containerInfo),\n priorFocusedElem = lanes.focusedElem,\n priorSelectionRange = lanes.selectionRange;\n if (\n curFocusedElem !== priorFocusedElem &&\n priorFocusedElem &&\n priorFocusedElem.ownerDocument &&\n containsNode(\n priorFocusedElem.ownerDocument.documentElement,\n priorFocusedElem\n )\n ) {\n if (\n null !== priorSelectionRange &&\n hasSelectionCapabilities(priorFocusedElem)\n ) {\n var start = priorSelectionRange.start,\n end = priorSelectionRange.end;\n void 0 === end && (end = start);\n if (\"selectionStart\" in priorFocusedElem)\n (priorFocusedElem.selectionStart = start),\n (priorFocusedElem.selectionEnd = Math.min(\n end,\n priorFocusedElem.value.length\n ));\n else {\n var doc = priorFocusedElem.ownerDocument || document,\n win = (doc && doc.defaultView) || window;\n if (win.getSelection) {\n var selection = win.getSelection(),\n length = priorFocusedElem.textContent.length,\n start$jscomp$0 = Math.min(\n priorSelectionRange.start,\n length\n ),\n end$jscomp$0 =\n void 0 === priorSelectionRange.end\n ? start$jscomp$0\n : Math.min(priorSelectionRange.end, length);\n !selection.extend &&\n start$jscomp$0 > end$jscomp$0 &&\n ((curFocusedElem = end$jscomp$0),\n (end$jscomp$0 = start$jscomp$0),\n (start$jscomp$0 = curFocusedElem));\n var startMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n start$jscomp$0\n ),\n endMarker = getNodeForCharacterOffset(\n priorFocusedElem,\n end$jscomp$0\n );\n if (\n startMarker &&\n endMarker &&\n (1 !== selection.rangeCount ||\n selection.anchorNode !== startMarker.node ||\n selection.anchorOffset !== startMarker.offset ||\n selection.focusNode !== endMarker.node ||\n selection.focusOffset !== endMarker.offset)\n ) {\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n start$jscomp$0 > end$jscomp$0\n ? (selection.addRange(range),\n selection.extend(endMarker.node, endMarker.offset))\n : (range.setEnd(endMarker.node, endMarker.offset),\n selection.addRange(range));\n }\n }\n }\n }\n doc = [];\n for (\n selection = priorFocusedElem;\n (selection = selection.parentNode);\n\n )\n 1 === selection.nodeType &&\n doc.push({\n element: selection,\n left: selection.scrollLeft,\n top: selection.scrollTop\n });\n \"function\" === typeof priorFocusedElem.focus &&\n priorFocusedElem.focus();\n for (\n priorFocusedElem = 0;\n priorFocusedElem < doc.length;\n priorFocusedElem++\n ) {\n var info = doc[priorFocusedElem];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n _enabled = !!eventsEnabled;\n selectionInformation = eventsEnabled = null;\n } finally {\n (executionContext = prevExecutionContext),\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = rootMutationHasEffect);\n }\n }\n root.current = finishedWork;\n pendingEffectsStatus = PENDING_LAYOUT_PHASE;\n }\n }\n function flushLayoutEffects() {\n if (pendingEffectsStatus === PENDING_LAYOUT_PHASE) {\n pendingEffectsStatus = NO_PENDING_EFFECTS;\n var suspendedViewTransitionReason =\n pendingSuspendedViewTransitionReason;\n if (null !== suspendedViewTransitionReason) {\n commitStartTime = now();\n var startTime = commitEndTime,\n endTime = commitStartTime;\n !supportsUserTiming ||\n endTime <= startTime ||\n (animatingTask\n ? animatingTask.run(\n console.timeStamp.bind(\n console,\n suspendedViewTransitionReason,\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"secondary-light\"\n )\n )\n : console.timeStamp(\n suspendedViewTransitionReason,\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"secondary-light\"\n ));\n }\n suspendedViewTransitionReason = pendingEffectsRoot;\n startTime = pendingFinishedWork;\n endTime = pendingEffectsLanes;\n var rootHasLayoutEffect = 0 !== (startTime.flags & 8772);\n if (0 !== (startTime.subtreeFlags & 8772) || rootHasLayoutEffect) {\n rootHasLayoutEffect = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var _previousPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = DiscreteEventPriority;\n var _prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n try {\n (inProgressLanes = endTime),\n (inProgressRoot = suspendedViewTransitionReason),\n resetComponentEffectTimers(),\n commitLayoutEffectOnFiber(\n suspendedViewTransitionReason,\n startTime.alternate,\n startTime\n ),\n (inProgressRoot = inProgressLanes = null);\n } finally {\n (executionContext = _prevExecutionContext),\n (ReactDOMSharedInternals.p = _previousPriority),\n (ReactSharedInternals.T = rootHasLayoutEffect);\n }\n }\n suspendedViewTransitionReason = pendingEffectsRenderEndTime;\n startTime = pendingSuspendedCommitReason;\n commitEndTime = now();\n suspendedViewTransitionReason =\n null === startTime ? suspendedViewTransitionReason : commitStartTime;\n startTime = commitEndTime;\n endTime = pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT;\n rootHasLayoutEffect = workInProgressUpdateTask;\n null !== commitErrors\n ? logCommitErrored(\n suspendedViewTransitionReason,\n startTime,\n commitErrors,\n !1,\n rootHasLayoutEffect\n )\n : !supportsUserTiming ||\n startTime <= suspendedViewTransitionReason ||\n (rootHasLayoutEffect\n ? rootHasLayoutEffect.run(\n console.timeStamp.bind(\n console,\n endTime ? \"Commit Interrupted View Transition\" : \"Commit\",\n suspendedViewTransitionReason,\n startTime,\n currentTrack,\n LANES_TRACK_GROUP,\n endTime ? \"error\" : \"secondary-dark\"\n )\n )\n : console.timeStamp(\n endTime ? \"Commit Interrupted View Transition\" : \"Commit\",\n suspendedViewTransitionReason,\n startTime,\n currentTrack,\n LANES_TRACK_GROUP,\n endTime ? \"error\" : \"secondary-dark\"\n ));\n pendingEffectsStatus = PENDING_AFTER_MUTATION_PHASE;\n }\n }\n function flushSpawnedWork() {\n if (\n pendingEffectsStatus === PENDING_SPAWNED_WORK ||\n pendingEffectsStatus === PENDING_AFTER_MUTATION_PHASE\n ) {\n if (pendingEffectsStatus === PENDING_SPAWNED_WORK) {\n var startViewTransitionStartTime = commitEndTime;\n commitEndTime = now();\n var endTime = commitEndTime,\n abortedViewTransition =\n pendingDelayedCommitReason === ABORTED_VIEW_TRANSITION_COMMIT;\n !supportsUserTiming ||\n endTime <= startViewTransitionStartTime ||\n (animatingTask\n ? animatingTask.run(\n console.timeStamp.bind(\n console,\n abortedViewTransition\n ? \"Interrupted View Transition\"\n : \"Starting Animation\",\n startViewTransitionStartTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n abortedViewTransition ? \"error\" : \"secondary-light\"\n )\n )\n : console.timeStamp(\n abortedViewTransition\n ? \"Interrupted View Transition\"\n : \"Starting Animation\",\n startViewTransitionStartTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n abortedViewTransition ? \" error\" : \"secondary-light\"\n ));\n pendingDelayedCommitReason !== ABORTED_VIEW_TRANSITION_COMMIT &&\n (pendingDelayedCommitReason = ANIMATION_STARTED_COMMIT);\n }\n pendingEffectsStatus = NO_PENDING_EFFECTS;\n requestPaint();\n startViewTransitionStartTime = pendingEffectsRoot;\n var finishedWork = pendingFinishedWork;\n endTime = pendingEffectsLanes;\n abortedViewTransition = pendingRecoverableErrors;\n var rootDidHavePassiveEffects =\n 0 !== finishedWork.actualDuration ||\n 0 !== (finishedWork.subtreeFlags & 10256) ||\n 0 !== (finishedWork.flags & 10256);\n rootDidHavePassiveEffects\n ? (pendingEffectsStatus = PENDING_PASSIVE_PHASE)\n : ((pendingEffectsStatus = NO_PENDING_EFFECTS),\n (pendingFinishedWork = pendingEffectsRoot = null),\n releaseRootPooledCache(\n startViewTransitionStartTime,\n startViewTransitionStartTime.pendingLanes\n ),\n (nestedPassiveUpdateCount = 0),\n (rootWithPassiveNestedUpdates = null));\n var remainingLanes = startViewTransitionStartTime.pendingLanes;\n 0 === remainingLanes && (legacyErrorBoundariesThatAlreadyFailed = null);\n rootDidHavePassiveEffects ||\n commitDoubleInvokeEffectsInDEV(startViewTransitionStartTime);\n remainingLanes = lanesToEventPriority(endTime);\n finishedWork = finishedWork.stateNode;\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onCommitFiberRoot\n )\n try {\n var didError = 128 === (finishedWork.current.flags & 128);\n switch (remainingLanes) {\n case DiscreteEventPriority:\n var schedulerPriority = ImmediatePriority;\n break;\n case ContinuousEventPriority:\n schedulerPriority = UserBlockingPriority;\n break;\n case DefaultEventPriority:\n schedulerPriority = NormalPriority$1;\n break;\n case IdleEventPriority:\n schedulerPriority = IdlePriority;\n break;\n default:\n schedulerPriority = NormalPriority$1;\n }\n injectedHook.onCommitFiberRoot(\n rendererID,\n finishedWork,\n schedulerPriority,\n didError\n );\n } catch (err) {\n hasLoggedError ||\n ((hasLoggedError = !0),\n console.error(\n \"React instrumentation encountered an error: %o\",\n err\n ));\n }\n isDevToolsPresent &&\n startViewTransitionStartTime.memoizedUpdaters.clear();\n onCommitRoot();\n if (null !== abortedViewTransition) {\n didError = ReactSharedInternals.T;\n schedulerPriority = ReactDOMSharedInternals.p;\n ReactDOMSharedInternals.p = DiscreteEventPriority;\n ReactSharedInternals.T = null;\n try {\n var onRecoverableError =\n startViewTransitionStartTime.onRecoverableError;\n for (\n finishedWork = 0;\n finishedWork < abortedViewTransition.length;\n finishedWork++\n ) {\n var recoverableError = abortedViewTransition[finishedWork],\n errorInfo = makeErrorInfo(recoverableError.stack);\n runWithFiberInDEV(\n recoverableError.source,\n onRecoverableError,\n recoverableError.value,\n errorInfo\n );\n }\n } finally {\n (ReactSharedInternals.T = didError),\n (ReactDOMSharedInternals.p = schedulerPriority);\n }\n }\n 0 !== (pendingEffectsLanes & 3) && flushPendingEffects();\n ensureRootIsScheduled(startViewTransitionStartTime);\n remainingLanes = startViewTransitionStartTime.pendingLanes;\n 0 !== (endTime & 261930) && 0 !== (remainingLanes & 42)\n ? ((nestedUpdateScheduled = !0),\n startViewTransitionStartTime === rootWithNestedUpdates\n ? nestedUpdateCount++\n : ((nestedUpdateCount = 0),\n (rootWithNestedUpdates = startViewTransitionStartTime)))\n : (nestedUpdateCount = 0);\n rootDidHavePassiveEffects || finalizeRender(endTime, commitEndTime);\n flushSyncWorkAcrossRoots_impl(0, !1);\n }\n }\n function makeErrorInfo(componentStack) {\n componentStack = { componentStack: componentStack };\n Object.defineProperty(componentStack, \"digest\", {\n get: function () {\n console.error(\n 'You are accessing \"digest\" from the errorInfo object passed to onRecoverableError. This property is no longer provided as part of errorInfo but can be accessed as a property of the Error instance itself.'\n );\n }\n });\n return componentStack;\n }\n function releaseRootPooledCache(root, remainingLanes) {\n 0 === (root.pooledCacheLanes &= remainingLanes) &&\n ((remainingLanes = root.pooledCache),\n null != remainingLanes &&\n ((root.pooledCache = null), releaseCache(remainingLanes)));\n }\n function flushPendingEffects() {\n flushMutationEffects();\n flushLayoutEffects();\n flushSpawnedWork();\n return flushPassiveEffects();\n }\n function flushPassiveEffects() {\n if (pendingEffectsStatus !== PENDING_PASSIVE_PHASE) return !1;\n var root = pendingEffectsRoot,\n remainingLanes = pendingEffectsRemainingLanes;\n pendingEffectsRemainingLanes = 0;\n var renderPriority = lanesToEventPriority(pendingEffectsLanes),\n priority =\n 0 === DefaultEventPriority || DefaultEventPriority > renderPriority\n ? DefaultEventPriority\n : renderPriority;\n renderPriority = ReactSharedInternals.T;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n ReactDOMSharedInternals.p = priority;\n ReactSharedInternals.T = null;\n var transitions = pendingPassiveTransitions;\n pendingPassiveTransitions = null;\n priority = pendingEffectsRoot;\n var lanes = pendingEffectsLanes;\n pendingEffectsStatus = NO_PENDING_EFFECTS;\n pendingFinishedWork = pendingEffectsRoot = null;\n pendingEffectsLanes = 0;\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext)\n throw Error(\"Cannot flush passive effects while already rendering.\");\n setCurrentTrackFromLanes(lanes);\n isFlushingPassiveEffects = !0;\n didScheduleUpdateDuringPassiveEffects = !1;\n var passiveEffectStartTime = 0;\n commitErrors = null;\n passiveEffectStartTime = now$1();\n if (pendingDelayedCommitReason === ANIMATION_STARTED_COMMIT)\n logAnimatingPhase(\n commitEndTime,\n passiveEffectStartTime,\n animatingTask\n );\n else {\n var startTime = commitEndTime,\n endTime = passiveEffectStartTime,\n delayedUntilPaint =\n pendingDelayedCommitReason === DELAYED_PASSIVE_COMMIT;\n !supportsUserTiming ||\n endTime <= startTime ||\n (workInProgressUpdateTask\n ? workInProgressUpdateTask.run(\n console.timeStamp.bind(\n console,\n delayedUntilPaint ? \"Waiting for Paint\" : \"Waiting\",\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"secondary-light\"\n )\n )\n : console.timeStamp(\n delayedUntilPaint ? \"Waiting for Paint\" : \"Waiting\",\n startTime,\n endTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"secondary-light\"\n ));\n }\n startTime = executionContext;\n executionContext |= CommitContext;\n var finishedWork = priority.current;\n resetComponentEffectTimers();\n commitPassiveUnmountOnFiber(finishedWork);\n var finishedWork$jscomp$0 = priority.current;\n finishedWork = pendingEffectsRenderEndTime;\n resetComponentEffectTimers();\n commitPassiveMountOnFiber(\n priority,\n finishedWork$jscomp$0,\n lanes,\n transitions,\n finishedWork\n );\n commitDoubleInvokeEffectsInDEV(priority);\n executionContext = startTime;\n var passiveEffectsEndTime = now$1();\n finishedWork$jscomp$0 = passiveEffectStartTime;\n finishedWork = workInProgressUpdateTask;\n null !== commitErrors\n ? logCommitErrored(\n finishedWork$jscomp$0,\n passiveEffectsEndTime,\n commitErrors,\n !0,\n finishedWork\n )\n : !supportsUserTiming ||\n passiveEffectsEndTime <= finishedWork$jscomp$0 ||\n (finishedWork\n ? finishedWork.run(\n console.timeStamp.bind(\n console,\n \"Remaining Effects\",\n finishedWork$jscomp$0,\n passiveEffectsEndTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"secondary-dark\"\n )\n )\n : console.timeStamp(\n \"Remaining Effects\",\n finishedWork$jscomp$0,\n passiveEffectsEndTime,\n currentTrack,\n LANES_TRACK_GROUP,\n \"secondary-dark\"\n ));\n finalizeRender(lanes, passiveEffectsEndTime);\n flushSyncWorkAcrossRoots_impl(0, !1);\n didScheduleUpdateDuringPassiveEffects\n ? priority === rootWithPassiveNestedUpdates\n ? nestedPassiveUpdateCount++\n : ((nestedPassiveUpdateCount = 0),\n (rootWithPassiveNestedUpdates = priority))\n : (nestedPassiveUpdateCount = 0);\n didScheduleUpdateDuringPassiveEffects = isFlushingPassiveEffects = !1;\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onPostCommitFiberRoot\n )\n try {\n injectedHook.onPostCommitFiberRoot(rendererID, priority);\n } catch (err) {\n hasLoggedError ||\n ((hasLoggedError = !0),\n console.error(\n \"React instrumentation encountered an error: %o\",\n err\n ));\n }\n var stateNode = priority.current.stateNode;\n stateNode.effectDuration = 0;\n stateNode.passiveEffectDuration = 0;\n return !0;\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = renderPriority),\n releaseRootPooledCache(root, remainingLanes);\n }\n }\n function captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n recordEffectError(sourceFiber);\n sourceFiber = createRootErrorUpdate(rootFiber.stateNode, sourceFiber, 2);\n rootFiber = enqueueUpdate(rootFiber, sourceFiber, 2);\n null !== rootFiber &&\n (markRootUpdated$1(rootFiber, 2), ensureRootIsScheduled(rootFiber));\n }\n function captureCommitPhaseError(\n sourceFiber,\n nearestMountedAncestor,\n error\n ) {\n isRunningInsertionEffect = !1;\n if (3 === sourceFiber.tag)\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n else {\n for (; null !== nearestMountedAncestor; ) {\n if (3 === nearestMountedAncestor.tag) {\n captureCommitPhaseErrorOnRoot(\n nearestMountedAncestor,\n sourceFiber,\n error\n );\n return;\n }\n if (1 === nearestMountedAncestor.tag) {\n var instance = nearestMountedAncestor.stateNode;\n if (\n \"function\" ===\n typeof nearestMountedAncestor.type.getDerivedStateFromError ||\n (\"function\" === typeof instance.componentDidCatch &&\n (null === legacyErrorBoundariesThatAlreadyFailed ||\n !legacyErrorBoundariesThatAlreadyFailed.has(instance)))\n ) {\n sourceFiber = createCapturedValueAtFiber(error, sourceFiber);\n recordEffectError(sourceFiber);\n error = createClassErrorUpdate(2);\n instance = enqueueUpdate(nearestMountedAncestor, error, 2);\n null !== instance &&\n (initializeClassErrorUpdate(\n error,\n instance,\n nearestMountedAncestor,\n sourceFiber\n ),\n markRootUpdated$1(instance, 2),\n ensureRootIsScheduled(instance));\n return;\n }\n }\n nearestMountedAncestor = nearestMountedAncestor.return;\n }\n console.error(\n \"Internal React error: Attempted to capture a commit phase error inside a detached tree. This indicates a bug in React. Potential causes include deleting the same fiber more than once, committing an already-finished tree, or an inconsistent return pointer.\\n\\nError message:\\n\\n%s\",\n error\n );\n }\n }\n function attachPingListener(root, wakeable, lanes) {\n var pingCache = root.pingCache;\n if (null === pingCache) {\n pingCache = root.pingCache = new PossiblyWeakMap();\n var threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else\n (threadIDs = pingCache.get(wakeable)),\n void 0 === threadIDs &&\n ((threadIDs = new Set()), pingCache.set(wakeable, threadIDs));\n threadIDs.has(lanes) ||\n ((workInProgressRootDidAttachPingListener = !0),\n threadIDs.add(lanes),\n (pingCache = pingSuspendedRoot.bind(null, root, wakeable, lanes)),\n isDevToolsPresent && restorePendingUpdaters(root, lanes),\n wakeable.then(pingCache, pingCache));\n }\n function pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n null !== pingCache && pingCache.delete(wakeable);\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n root.warmLanes &= ~pingedLanes;\n 0 !== (pingedLanes & 127)\n ? 0 > blockingUpdateTime &&\n ((blockingClampTime = blockingUpdateTime = now()),\n (blockingUpdateTask = createTask(\"Promise Resolved\")),\n (blockingUpdateType = PINGED_UPDATE))\n : 0 !== (pingedLanes & 4194048) &&\n 0 > transitionUpdateTime &&\n ((transitionClampTime = transitionUpdateTime = now()),\n (transitionUpdateTask = createTask(\"Promise Resolved\")),\n (transitionUpdateType = PINGED_UPDATE));\n isConcurrentActEnvironment() &&\n null === ReactSharedInternals.actQueue &&\n console.error(\n \"A suspended resource finished loading inside a test, but the event was not wrapped in act(...).\\n\\nWhen testing, code that resolves suspended data should be wrapped into act(...):\\n\\nact(() => {\\n /* finish loading suspended data */\\n});\\n/* assert on the output */\\n\\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act\"\n );\n workInProgressRoot === root &&\n (workInProgressRootRenderLanes & pingedLanes) === pingedLanes &&\n (workInProgressRootExitStatus === RootSuspendedWithDelay ||\n (workInProgressRootExitStatus === RootSuspended &&\n (workInProgressRootRenderLanes & 62914560) ===\n workInProgressRootRenderLanes &&\n now$1() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS)\n ? (executionContext & RenderContext) === NoContext &&\n prepareFreshStack(root, 0)\n : (workInProgressRootPingedLanes |= pingedLanes),\n workInProgressSuspendedRetryLanes === workInProgressRootRenderLanes &&\n (workInProgressSuspendedRetryLanes = 0));\n ensureRootIsScheduled(root);\n }\n function retryTimedOutBoundary(boundaryFiber, retryLane) {\n 0 === retryLane && (retryLane = claimNextRetryLane());\n boundaryFiber = enqueueConcurrentRenderForLane(boundaryFiber, retryLane);\n null !== boundaryFiber &&\n (markRootUpdated$1(boundaryFiber, retryLane),\n ensureRootIsScheduled(boundaryFiber));\n }\n function retryDehydratedSuspenseBoundary(boundaryFiber) {\n var suspenseState = boundaryFiber.memoizedState,\n retryLane = 0;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n }\n function resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = 0;\n switch (boundaryFiber.tag) {\n case 31:\n case 13:\n var retryCache = boundaryFiber.stateNode;\n var suspenseState = boundaryFiber.memoizedState;\n null !== suspenseState && (retryLane = suspenseState.retryLane);\n break;\n case 19:\n retryCache = boundaryFiber.stateNode;\n break;\n case 22:\n retryCache = boundaryFiber.stateNode._retryCache;\n break;\n default:\n throw Error(\n \"Pinged unknown suspense boundary type. This is probably a bug in React.\"\n );\n }\n null !== retryCache && retryCache.delete(wakeable);\n retryTimedOutBoundary(boundaryFiber, retryLane);\n }\n function recursivelyTraverseAndDoubleInvokeEffectsInDEV(\n root$jscomp$0,\n parentFiber,\n isInStrictMode\n ) {\n if (0 !== (parentFiber.subtreeFlags & 67117056))\n for (parentFiber = parentFiber.child; null !== parentFiber; ) {\n var root = root$jscomp$0,\n fiber = parentFiber,\n isStrictModeFiber = fiber.type === REACT_STRICT_MODE_TYPE;\n isStrictModeFiber = isInStrictMode || isStrictModeFiber;\n 22 !== fiber.tag\n ? fiber.flags & 67108864\n ? isStrictModeFiber &&\n runWithFiberInDEV(\n fiber,\n doubleInvokeEffectsOnFiber,\n root,\n fiber\n )\n : recursivelyTraverseAndDoubleInvokeEffectsInDEV(\n root,\n fiber,\n isStrictModeFiber\n )\n : null === fiber.memoizedState &&\n (isStrictModeFiber && fiber.flags & 8192\n ? runWithFiberInDEV(\n fiber,\n doubleInvokeEffectsOnFiber,\n root,\n fiber\n )\n : fiber.subtreeFlags & 67108864 &&\n runWithFiberInDEV(\n fiber,\n recursivelyTraverseAndDoubleInvokeEffectsInDEV,\n root,\n fiber,\n isStrictModeFiber\n ));\n parentFiber = parentFiber.sibling;\n }\n }\n function doubleInvokeEffectsOnFiber(root, fiber) {\n setIsStrictModeForDevtools(!0);\n try {\n disappearLayoutEffects(fiber),\n disconnectPassiveEffect(fiber),\n reappearLayoutEffects(root, fiber.alternate, fiber, !1),\n reconnectPassiveEffects(root, fiber, 0, null, !1, 0);\n } finally {\n setIsStrictModeForDevtools(!1);\n }\n }\n function commitDoubleInvokeEffectsInDEV(root) {\n var doubleInvokeEffects = !0;\n root.current.mode & (StrictLegacyMode | StrictEffectsMode) ||\n (doubleInvokeEffects = !1);\n recursivelyTraverseAndDoubleInvokeEffectsInDEV(\n root,\n root.current,\n doubleInvokeEffects\n );\n }\n function warnAboutUpdateOnNotYetMountedFiberInDEV(fiber) {\n if ((executionContext & RenderContext) === NoContext) {\n var tag = fiber.tag;\n if (\n 3 === tag ||\n 1 === tag ||\n 0 === tag ||\n 11 === tag ||\n 14 === tag ||\n 15 === tag\n ) {\n tag = getComponentNameFromFiber(fiber) || \"ReactComponent\";\n if (null !== didWarnStateUpdateForNotYetMountedComponent) {\n if (didWarnStateUpdateForNotYetMountedComponent.has(tag)) return;\n didWarnStateUpdateForNotYetMountedComponent.add(tag);\n } else didWarnStateUpdateForNotYetMountedComponent = new Set([tag]);\n runWithFiberInDEV(fiber, function () {\n console.error(\n \"Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously tries to update the component. Move this work to useEffect instead.\"\n );\n });\n }\n }\n }\n function restorePendingUpdaters(root, lanes) {\n isDevToolsPresent &&\n root.memoizedUpdaters.forEach(function (schedulingFiber) {\n addFiberToLanesMap(root, schedulingFiber, lanes);\n });\n }\n function scheduleCallback$1(priorityLevel, callback) {\n var actQueue = ReactSharedInternals.actQueue;\n return null !== actQueue\n ? (actQueue.push(callback), fakeActCallbackNode$1)\n : scheduleCallback$3(priorityLevel, callback);\n }\n function warnIfUpdatesNotWrappedWithActDEV(fiber) {\n isConcurrentActEnvironment() &&\n null === ReactSharedInternals.actQueue &&\n runWithFiberInDEV(fiber, function () {\n console.error(\n \"An update to %s inside a test was not wrapped in act(...).\\n\\nWhen testing, code that causes React state updates should be wrapped into act(...):\\n\\nact(() => {\\n /* fire events that update state */\\n});\\n/* assert on the output */\\n\\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act\",\n getComponentNameFromFiber(fiber)\n );\n });\n }\n function ensureRootIsScheduled(root) {\n root !== lastScheduledRoot &&\n null === root.next &&\n (null === lastScheduledRoot\n ? (firstScheduledRoot = lastScheduledRoot = root)\n : (lastScheduledRoot = lastScheduledRoot.next = root));\n mightHavePendingSyncWork = !0;\n null !== ReactSharedInternals.actQueue\n ? didScheduleMicrotask_act ||\n ((didScheduleMicrotask_act = !0), scheduleImmediateRootScheduleTask())\n : didScheduleMicrotask ||\n ((didScheduleMicrotask = !0), scheduleImmediateRootScheduleTask());\n }\n function flushSyncWorkAcrossRoots_impl(syncTransitionLanes, onlyLegacy) {\n if (!isFlushingWork && mightHavePendingSyncWork) {\n isFlushingWork = !0;\n do {\n var didPerformSomeWork = !1;\n for (var root = firstScheduledRoot; null !== root; ) {\n if (!onlyLegacy)\n if (0 !== syncTransitionLanes) {\n var pendingLanes = root.pendingLanes;\n if (0 === pendingLanes) var nextLanes = 0;\n else {\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes;\n nextLanes =\n (1 << (31 - clz32(42 | syncTransitionLanes) + 1)) - 1;\n nextLanes &= pendingLanes & ~(suspendedLanes & ~pingedLanes);\n nextLanes =\n nextLanes & 201326741\n ? (nextLanes & 201326741) | 1\n : nextLanes\n ? nextLanes | 2\n : 0;\n }\n 0 !== nextLanes &&\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root, nextLanes));\n } else\n (nextLanes = workInProgressRootRenderLanes),\n (nextLanes = getNextLanes(\n root,\n root === workInProgressRoot ? nextLanes : 0,\n null !== root.cancelPendingCommit ||\n root.timeoutHandle !== noTimeout\n )),\n 0 === (nextLanes & 3) ||\n checkIfRootIsPrerendering(root, nextLanes) ||\n ((didPerformSomeWork = !0),\n performSyncWorkOnRoot(root, nextLanes));\n root = root.next;\n }\n } while (didPerformSomeWork);\n isFlushingWork = !1;\n }\n }\n function processRootScheduleInImmediateTask() {\n schedulerEvent = window.event;\n processRootScheduleInMicrotask();\n }\n function processRootScheduleInMicrotask() {\n mightHavePendingSyncWork =\n didScheduleMicrotask_act =\n didScheduleMicrotask =\n !1;\n var syncTransitionLanes = 0;\n 0 !== currentEventTransitionLane &&\n shouldAttemptEagerTransition() &&\n (syncTransitionLanes = currentEventTransitionLane);\n for (\n var currentTime = now$1(), prev = null, root = firstScheduledRoot;\n null !== root;\n\n ) {\n var next = root.next,\n nextLanes = scheduleTaskForRootDuringMicrotask(root, currentTime);\n if (0 === nextLanes)\n (root.next = null),\n null === prev ? (firstScheduledRoot = next) : (prev.next = next),\n null === next && (lastScheduledRoot = prev);\n else if (\n ((prev = root), 0 !== syncTransitionLanes || 0 !== (nextLanes & 3))\n )\n mightHavePendingSyncWork = !0;\n root = next;\n }\n (pendingEffectsStatus !== NO_PENDING_EFFECTS &&\n pendingEffectsStatus !== PENDING_PASSIVE_PHASE) ||\n flushSyncWorkAcrossRoots_impl(syncTransitionLanes, !1);\n 0 !== currentEventTransitionLane && (currentEventTransitionLane = 0);\n }\n function scheduleTaskForRootDuringMicrotask(root, currentTime) {\n for (\n var suspendedLanes = root.suspendedLanes,\n pingedLanes = root.pingedLanes,\n expirationTimes = root.expirationTimes,\n lanes = root.pendingLanes & -62914561;\n 0 < lanes;\n\n ) {\n var index = 31 - clz32(lanes),\n lane = 1 << index,\n expirationTime = expirationTimes[index];\n if (-1 === expirationTime) {\n if (0 === (lane & suspendedLanes) || 0 !== (lane & pingedLanes))\n expirationTimes[index] = computeExpirationTime(lane, currentTime);\n } else expirationTime <= currentTime && (root.expiredLanes |= lane);\n lanes &= ~lane;\n }\n currentTime = workInProgressRoot;\n suspendedLanes = workInProgressRootRenderLanes;\n suspendedLanes = getNextLanes(\n root,\n root === currentTime ? suspendedLanes : 0,\n null !== root.cancelPendingCommit || root.timeoutHandle !== noTimeout\n );\n pingedLanes = root.callbackNode;\n if (\n 0 === suspendedLanes ||\n (root === currentTime &&\n (workInProgressSuspendedReason === SuspendedOnData ||\n workInProgressSuspendedReason === SuspendedOnAction)) ||\n null !== root.cancelPendingCommit\n )\n return (\n null !== pingedLanes && cancelCallback(pingedLanes),\n (root.callbackNode = null),\n (root.callbackPriority = 0)\n );\n if (\n 0 === (suspendedLanes & 3) ||\n checkIfRootIsPrerendering(root, suspendedLanes)\n ) {\n currentTime = suspendedLanes & -suspendedLanes;\n if (\n currentTime !== root.callbackPriority ||\n (null !== ReactSharedInternals.actQueue &&\n pingedLanes !== fakeActCallbackNode)\n )\n cancelCallback(pingedLanes);\n else return currentTime;\n switch (lanesToEventPriority(suspendedLanes)) {\n case DiscreteEventPriority:\n case ContinuousEventPriority:\n suspendedLanes = UserBlockingPriority;\n break;\n case DefaultEventPriority:\n suspendedLanes = NormalPriority$1;\n break;\n case IdleEventPriority:\n suspendedLanes = IdlePriority;\n break;\n default:\n suspendedLanes = NormalPriority$1;\n }\n pingedLanes = performWorkOnRootViaSchedulerTask.bind(null, root);\n null !== ReactSharedInternals.actQueue\n ? (ReactSharedInternals.actQueue.push(pingedLanes),\n (suspendedLanes = fakeActCallbackNode))\n : (suspendedLanes = scheduleCallback$3(suspendedLanes, pingedLanes));\n root.callbackPriority = currentTime;\n root.callbackNode = suspendedLanes;\n return currentTime;\n }\n null !== pingedLanes && cancelCallback(pingedLanes);\n root.callbackPriority = 2;\n root.callbackNode = null;\n return 2;\n }\n function performWorkOnRootViaSchedulerTask(root, didTimeout) {\n nestedUpdateScheduled = currentUpdateIsNested = !1;\n schedulerEvent = window.event;\n if (\n pendingEffectsStatus !== NO_PENDING_EFFECTS &&\n pendingEffectsStatus !== PENDING_PASSIVE_PHASE\n )\n return (root.callbackNode = null), (root.callbackPriority = 0), null;\n var originalCallbackNode = root.callbackNode;\n pendingDelayedCommitReason === IMMEDIATE_COMMIT &&\n (pendingDelayedCommitReason = DELAYED_PASSIVE_COMMIT);\n if (flushPendingEffects() && root.callbackNode !== originalCallbackNode)\n return null;\n var workInProgressRootRenderLanes$jscomp$0 =\n workInProgressRootRenderLanes;\n workInProgressRootRenderLanes$jscomp$0 = getNextLanes(\n root,\n root === workInProgressRoot\n ? workInProgressRootRenderLanes$jscomp$0\n : 0,\n null !== root.cancelPendingCommit || root.timeoutHandle !== noTimeout\n );\n if (0 === workInProgressRootRenderLanes$jscomp$0) return null;\n performWorkOnRoot(\n root,\n workInProgressRootRenderLanes$jscomp$0,\n didTimeout\n );\n scheduleTaskForRootDuringMicrotask(root, now$1());\n return null != root.callbackNode &&\n root.callbackNode === originalCallbackNode\n ? performWorkOnRootViaSchedulerTask.bind(null, root)\n : null;\n }\n function performSyncWorkOnRoot(root, lanes) {\n if (flushPendingEffects()) return null;\n currentUpdateIsNested = nestedUpdateScheduled;\n nestedUpdateScheduled = !1;\n performWorkOnRoot(root, lanes, !0);\n }\n function cancelCallback(callbackNode) {\n callbackNode !== fakeActCallbackNode &&\n null !== callbackNode &&\n cancelCallback$1(callbackNode);\n }\n function scheduleImmediateRootScheduleTask() {\n null !== ReactSharedInternals.actQueue &&\n ReactSharedInternals.actQueue.push(function () {\n processRootScheduleInMicrotask();\n return null;\n });\n scheduleMicrotask(function () {\n (executionContext & (RenderContext | CommitContext)) !== NoContext\n ? scheduleCallback$3(\n ImmediatePriority,\n processRootScheduleInImmediateTask\n )\n : processRootScheduleInMicrotask();\n });\n }\n function requestTransitionLane() {\n if (0 === currentEventTransitionLane) {\n var actionScopeLane = currentEntangledLane;\n 0 === actionScopeLane &&\n ((actionScopeLane = nextTransitionUpdateLane),\n (nextTransitionUpdateLane <<= 1),\n 0 === (nextTransitionUpdateLane & 261888) &&\n (nextTransitionUpdateLane = 256));\n currentEventTransitionLane = actionScopeLane;\n }\n return currentEventTransitionLane;\n }\n function coerceFormActionProp(actionProp) {\n if (\n null == actionProp ||\n \"symbol\" === typeof actionProp ||\n \"boolean\" === typeof actionProp\n )\n return null;\n if (\"function\" === typeof actionProp) return actionProp;\n checkAttributeStringCoercion(actionProp, \"action\");\n return sanitizeURL(\"\" + actionProp);\n }\n function createFormDataWithSubmitter(form, submitter) {\n var temp = submitter.ownerDocument.createElement(\"input\");\n temp.name = submitter.name;\n temp.value = submitter.value;\n form.id && temp.setAttribute(\"form\", form.id);\n submitter.parentNode.insertBefore(temp, submitter);\n form = new FormData(form);\n temp.parentNode.removeChild(temp);\n return form;\n }\n function extractEvents$1(\n dispatchQueue,\n domEventName,\n maybeTargetInst,\n nativeEvent,\n nativeEventTarget\n ) {\n if (\n \"submit\" === domEventName &&\n maybeTargetInst &&\n maybeTargetInst.stateNode === nativeEventTarget\n ) {\n var action = coerceFormActionProp(\n (nativeEventTarget[internalPropsKey] || null).action\n ),\n submitter = nativeEvent.submitter;\n submitter &&\n ((domEventName = (domEventName = submitter[internalPropsKey] || null)\n ? coerceFormActionProp(domEventName.formAction)\n : submitter.getAttribute(\"formAction\")),\n null !== domEventName &&\n ((action = domEventName), (submitter = null)));\n var event = new SyntheticEvent(\n \"action\",\n \"action\",\n null,\n nativeEvent,\n nativeEventTarget\n );\n dispatchQueue.push({\n event: event,\n listeners: [\n {\n instance: null,\n listener: function () {\n if (nativeEvent.defaultPrevented) {\n if (0 !== currentEventTransitionLane) {\n var formData = submitter\n ? createFormDataWithSubmitter(\n nativeEventTarget,\n submitter\n )\n : new FormData(nativeEventTarget),\n pendingState = {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n };\n Object.freeze(pendingState);\n startHostTransition(\n maybeTargetInst,\n pendingState,\n null,\n formData\n );\n }\n } else\n \"function\" === typeof action &&\n (event.preventDefault(),\n (formData = submitter\n ? createFormDataWithSubmitter(\n nativeEventTarget,\n submitter\n )\n : new FormData(nativeEventTarget)),\n (pendingState = {\n pending: !0,\n data: formData,\n method: nativeEventTarget.method,\n action: action\n }),\n Object.freeze(pendingState),\n startHostTransition(\n maybeTargetInst,\n pendingState,\n action,\n formData\n ));\n },\n currentTarget: nativeEventTarget\n }\n ]\n });\n }\n }\n function executeDispatch(event, listener, currentTarget) {\n event.currentTarget = currentTarget;\n try {\n listener(event);\n } catch (error) {\n reportGlobalError(error);\n }\n event.currentTarget = null;\n }\n function processDispatchQueue(dispatchQueue, eventSystemFlags) {\n eventSystemFlags = 0 !== (eventSystemFlags & 4);\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i];\n a: {\n var previousInstance = void 0,\n event = _dispatchQueue$i.event;\n _dispatchQueue$i = _dispatchQueue$i.listeners;\n if (eventSystemFlags)\n for (\n var i$jscomp$0 = _dispatchQueue$i.length - 1;\n 0 <= i$jscomp$0;\n i$jscomp$0--\n ) {\n var _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n null !== instance\n ? runWithFiberInDEV(\n instance,\n executeDispatch,\n event,\n _dispatchListeners$i,\n currentTarget\n )\n : executeDispatch(event, _dispatchListeners$i, currentTarget);\n previousInstance = instance;\n }\n else\n for (\n i$jscomp$0 = 0;\n i$jscomp$0 < _dispatchQueue$i.length;\n i$jscomp$0++\n ) {\n _dispatchListeners$i = _dispatchQueue$i[i$jscomp$0];\n instance = _dispatchListeners$i.instance;\n currentTarget = _dispatchListeners$i.currentTarget;\n _dispatchListeners$i = _dispatchListeners$i.listener;\n if (instance !== previousInstance && event.isPropagationStopped())\n break a;\n null !== instance\n ? runWithFiberInDEV(\n instance,\n executeDispatch,\n event,\n _dispatchListeners$i,\n currentTarget\n )\n : executeDispatch(event, _dispatchListeners$i, currentTarget);\n previousInstance = instance;\n }\n }\n }\n }\n function listenToNonDelegatedEvent(domEventName, targetElement) {\n nonDelegatedEvents.has(domEventName) ||\n console.error(\n 'Did not expect a listenToNonDelegatedEvent() call for \"%s\". This is a bug in React. Please file an issue.',\n domEventName\n );\n var listenerSet = targetElement[internalEventHandlersKey];\n void 0 === listenerSet &&\n (listenerSet = targetElement[internalEventHandlersKey] = new Set());\n var listenerSetKey = domEventName + \"__bubble\";\n listenerSet.has(listenerSetKey) ||\n (addTrappedEventListener(targetElement, domEventName, 2, !1),\n listenerSet.add(listenerSetKey));\n }\n function listenToNativeEvent(domEventName, isCapturePhaseListener, target) {\n nonDelegatedEvents.has(domEventName) &&\n !isCapturePhaseListener &&\n console.error(\n 'Did not expect a listenToNativeEvent() call for \"%s\" in the bubble phase. This is a bug in React. Please file an issue.',\n domEventName\n );\n var eventSystemFlags = 0;\n isCapturePhaseListener && (eventSystemFlags |= 4);\n addTrappedEventListener(\n target,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n );\n }\n function listenToAllSupportedEvents(rootContainerElement) {\n if (!rootContainerElement[listeningMarker]) {\n rootContainerElement[listeningMarker] = !0;\n allNativeEvents.forEach(function (domEventName) {\n \"selectionchange\" !== domEventName &&\n (nonDelegatedEvents.has(domEventName) ||\n listenToNativeEvent(domEventName, !1, rootContainerElement),\n listenToNativeEvent(domEventName, !0, rootContainerElement));\n });\n var ownerDocument =\n 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n null === ownerDocument ||\n ownerDocument[listeningMarker] ||\n ((ownerDocument[listeningMarker] = !0),\n listenToNativeEvent(\"selectionchange\", !1, ownerDocument));\n }\n }\n function addTrappedEventListener(\n targetContainer,\n domEventName,\n eventSystemFlags,\n isCapturePhaseListener\n ) {\n switch (getEventPriority(domEventName)) {\n case DiscreteEventPriority:\n var listenerWrapper = dispatchDiscreteEvent;\n break;\n case ContinuousEventPriority:\n listenerWrapper = dispatchContinuousEvent;\n break;\n default:\n listenerWrapper = dispatchEvent;\n }\n eventSystemFlags = listenerWrapper.bind(\n null,\n domEventName,\n eventSystemFlags,\n targetContainer\n );\n listenerWrapper = void 0;\n !passiveBrowserEventsSupported ||\n (\"touchstart\" !== domEventName &&\n \"touchmove\" !== domEventName &&\n \"wheel\" !== domEventName) ||\n (listenerWrapper = !0);\n isCapturePhaseListener\n ? void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n capture: !0,\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(domEventName, eventSystemFlags, !0)\n : void 0 !== listenerWrapper\n ? targetContainer.addEventListener(domEventName, eventSystemFlags, {\n passive: listenerWrapper\n })\n : targetContainer.addEventListener(\n domEventName,\n eventSystemFlags,\n !1\n );\n }\n function dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n targetInst$jscomp$0,\n targetContainer\n ) {\n var ancestorInst = targetInst$jscomp$0;\n if (\n 0 === (eventSystemFlags & 1) &&\n 0 === (eventSystemFlags & 2) &&\n null !== targetInst$jscomp$0\n )\n a: for (;;) {\n if (null === targetInst$jscomp$0) return;\n var nodeTag = targetInst$jscomp$0.tag;\n if (3 === nodeTag || 4 === nodeTag) {\n var container = targetInst$jscomp$0.stateNode.containerInfo;\n if (container === targetContainer) break;\n if (4 === nodeTag)\n for (nodeTag = targetInst$jscomp$0.return; null !== nodeTag; ) {\n var grandTag = nodeTag.tag;\n if (\n (3 === grandTag || 4 === grandTag) &&\n nodeTag.stateNode.containerInfo === targetContainer\n )\n return;\n nodeTag = nodeTag.return;\n }\n for (; null !== container; ) {\n nodeTag = getClosestInstanceFromNode(container);\n if (null === nodeTag) return;\n grandTag = nodeTag.tag;\n if (\n 5 === grandTag ||\n 6 === grandTag ||\n 26 === grandTag ||\n 27 === grandTag\n ) {\n targetInst$jscomp$0 = ancestorInst = nodeTag;\n continue a;\n }\n container = container.parentNode;\n }\n }\n targetInst$jscomp$0 = targetInst$jscomp$0.return;\n }\n batchedUpdates$1(function () {\n var targetInst = ancestorInst,\n nativeEventTarget = getEventTarget(nativeEvent),\n dispatchQueue = [];\n a: {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n if (void 0 !== reactName) {\n var SyntheticEventCtor = SyntheticEvent,\n reactEventType = domEventName;\n switch (domEventName) {\n case \"keypress\":\n if (0 === getEventCharCode(nativeEvent)) break a;\n case \"keydown\":\n case \"keyup\":\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n case \"focusin\":\n reactEventType = \"focus\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"focusout\":\n reactEventType = \"blur\";\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"beforeblur\":\n case \"afterblur\":\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n case \"click\":\n if (2 === nativeEvent.button) break a;\n case \"auxclick\":\n case \"dblclick\":\n case \"mousedown\":\n case \"mousemove\":\n case \"mouseup\":\n case \"mouseout\":\n case \"mouseover\":\n case \"contextmenu\":\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n case \"drag\":\n case \"dragend\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"dragstart\":\n case \"drop\":\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n case \"touchcancel\":\n case \"touchend\":\n case \"touchmove\":\n case \"touchstart\":\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n case \"scroll\":\n case \"scrollend\":\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n case \"wheel\":\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n case \"copy\":\n case \"cut\":\n case \"paste\":\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"pointerup\":\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n case \"toggle\":\n case \"beforetoggle\":\n SyntheticEventCtor = SyntheticToggleEvent;\n }\n var inCapturePhase = 0 !== (eventSystemFlags & 4),\n accumulateTargetOnly =\n !inCapturePhase &&\n (\"scroll\" === domEventName || \"scrollend\" === domEventName),\n reactEventName = inCapturePhase\n ? null !== reactName\n ? reactName + \"Capture\"\n : null\n : reactName;\n inCapturePhase = [];\n for (\n var instance = targetInst, lastHostComponent;\n null !== instance;\n\n ) {\n var _instance2 = instance;\n lastHostComponent = _instance2.stateNode;\n _instance2 = _instance2.tag;\n (5 !== _instance2 && 26 !== _instance2 && 27 !== _instance2) ||\n null === lastHostComponent ||\n null === reactEventName ||\n ((_instance2 = getListener(instance, reactEventName)),\n null != _instance2 &&\n inCapturePhase.push(\n createDispatchListener(\n instance,\n _instance2,\n lastHostComponent\n )\n ));\n if (accumulateTargetOnly) break;\n instance = instance.return;\n }\n 0 < inCapturePhase.length &&\n ((reactName = new SyntheticEventCtor(\n reactName,\n reactEventType,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: reactName,\n listeners: inCapturePhase\n }));\n }\n }\n if (0 === (eventSystemFlags & 7)) {\n a: {\n reactName =\n \"mouseover\" === domEventName || \"pointerover\" === domEventName;\n SyntheticEventCtor =\n \"mouseout\" === domEventName || \"pointerout\" === domEventName;\n if (\n reactName &&\n nativeEvent !== currentReplayingEvent &&\n (reactEventType =\n nativeEvent.relatedTarget || nativeEvent.fromElement) &&\n (getClosestInstanceFromNode(reactEventType) ||\n reactEventType[internalContainerInstanceKey])\n )\n break a;\n if (SyntheticEventCtor || reactName) {\n reactName =\n nativeEventTarget.window === nativeEventTarget\n ? nativeEventTarget\n : (reactName = nativeEventTarget.ownerDocument)\n ? reactName.defaultView || reactName.parentWindow\n : window;\n if (SyntheticEventCtor) {\n if (\n ((reactEventType =\n nativeEvent.relatedTarget || nativeEvent.toElement),\n (SyntheticEventCtor = targetInst),\n (reactEventType = reactEventType\n ? getClosestInstanceFromNode(reactEventType)\n : null),\n null !== reactEventType &&\n ((accumulateTargetOnly =\n getNearestMountedFiber(reactEventType)),\n (inCapturePhase = reactEventType.tag),\n reactEventType !== accumulateTargetOnly ||\n (5 !== inCapturePhase &&\n 27 !== inCapturePhase &&\n 6 !== inCapturePhase)))\n )\n reactEventType = null;\n } else (SyntheticEventCtor = null), (reactEventType = targetInst);\n if (SyntheticEventCtor !== reactEventType) {\n inCapturePhase = SyntheticMouseEvent;\n _instance2 = \"onMouseLeave\";\n reactEventName = \"onMouseEnter\";\n instance = \"mouse\";\n if (\n \"pointerout\" === domEventName ||\n \"pointerover\" === domEventName\n )\n (inCapturePhase = SyntheticPointerEvent),\n (_instance2 = \"onPointerLeave\"),\n (reactEventName = \"onPointerEnter\"),\n (instance = \"pointer\");\n accumulateTargetOnly =\n null == SyntheticEventCtor\n ? reactName\n : getNodeFromInstance(SyntheticEventCtor);\n lastHostComponent =\n null == reactEventType\n ? reactName\n : getNodeFromInstance(reactEventType);\n reactName = new inCapturePhase(\n _instance2,\n instance + \"leave\",\n SyntheticEventCtor,\n nativeEvent,\n nativeEventTarget\n );\n reactName.target = accumulateTargetOnly;\n reactName.relatedTarget = lastHostComponent;\n _instance2 = null;\n getClosestInstanceFromNode(nativeEventTarget) === targetInst &&\n ((inCapturePhase = new inCapturePhase(\n reactEventName,\n instance + \"enter\",\n reactEventType,\n nativeEvent,\n nativeEventTarget\n )),\n (inCapturePhase.target = lastHostComponent),\n (inCapturePhase.relatedTarget = accumulateTargetOnly),\n (_instance2 = inCapturePhase));\n accumulateTargetOnly = _instance2;\n if (SyntheticEventCtor && reactEventType)\n b: {\n inCapturePhase = getParent;\n reactEventName = SyntheticEventCtor;\n instance = reactEventType;\n lastHostComponent = 0;\n for (\n _instance2 = reactEventName;\n _instance2;\n _instance2 = inCapturePhase(_instance2)\n )\n lastHostComponent++;\n _instance2 = 0;\n for (\n var tempB = instance;\n tempB;\n tempB = inCapturePhase(tempB)\n )\n _instance2++;\n for (; 0 < lastHostComponent - _instance2; )\n (reactEventName = inCapturePhase(reactEventName)),\n lastHostComponent--;\n for (; 0 < _instance2 - lastHostComponent; )\n (instance = inCapturePhase(instance)), _instance2--;\n for (; lastHostComponent--; ) {\n if (\n reactEventName === instance ||\n (null !== instance &&\n reactEventName === instance.alternate)\n ) {\n inCapturePhase = reactEventName;\n break b;\n }\n reactEventName = inCapturePhase(reactEventName);\n instance = inCapturePhase(instance);\n }\n inCapturePhase = null;\n }\n else inCapturePhase = null;\n null !== SyntheticEventCtor &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n reactName,\n SyntheticEventCtor,\n inCapturePhase,\n !1\n );\n null !== reactEventType &&\n null !== accumulateTargetOnly &&\n accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n accumulateTargetOnly,\n reactEventType,\n inCapturePhase,\n !0\n );\n }\n }\n }\n a: {\n reactName = targetInst ? getNodeFromInstance(targetInst) : window;\n SyntheticEventCtor =\n reactName.nodeName && reactName.nodeName.toLowerCase();\n if (\n \"select\" === SyntheticEventCtor ||\n (\"input\" === SyntheticEventCtor && \"file\" === reactName.type)\n )\n var getTargetInstFunc = getTargetInstForChangeEvent;\n else if (isTextInputElement(reactName))\n if (isInputEventSupported)\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n var handleEventFunc = handleEventsForInputEventPolyfill;\n }\n else\n (SyntheticEventCtor = reactName.nodeName),\n !SyntheticEventCtor ||\n \"input\" !== SyntheticEventCtor.toLowerCase() ||\n (\"checkbox\" !== reactName.type && \"radio\" !== reactName.type)\n ? targetInst &&\n isCustomElement(targetInst.elementType) &&\n (getTargetInstFunc = getTargetInstForChangeEvent)\n : (getTargetInstFunc = getTargetInstForClickEvent);\n if (\n getTargetInstFunc &&\n (getTargetInstFunc = getTargetInstFunc(domEventName, targetInst))\n ) {\n createAndAccumulateChangeEvent(\n dispatchQueue,\n getTargetInstFunc,\n nativeEvent,\n nativeEventTarget\n );\n break a;\n }\n handleEventFunc &&\n handleEventFunc(domEventName, reactName, targetInst);\n \"focusout\" === domEventName &&\n targetInst &&\n \"number\" === reactName.type &&\n null != targetInst.memoizedProps.value &&\n setDefaultValue(reactName, \"number\", reactName.value);\n }\n handleEventFunc = targetInst\n ? getNodeFromInstance(targetInst)\n : window;\n switch (domEventName) {\n case \"focusin\":\n if (\n isTextInputElement(handleEventFunc) ||\n \"true\" === handleEventFunc.contentEditable\n )\n (activeElement = handleEventFunc),\n (activeElementInst = targetInst),\n (lastSelection = null);\n break;\n case \"focusout\":\n lastSelection = activeElementInst = activeElement = null;\n break;\n case \"mousedown\":\n mouseDown = !0;\n break;\n case \"contextmenu\":\n case \"mouseup\":\n case \"dragend\":\n mouseDown = !1;\n constructSelectEvent(\n dispatchQueue,\n nativeEvent,\n nativeEventTarget\n );\n break;\n case \"selectionchange\":\n if (skipSelectionChangeEvent) break;\n case \"keydown\":\n case \"keyup\":\n constructSelectEvent(\n dispatchQueue,\n nativeEvent,\n nativeEventTarget\n );\n }\n var fallbackData;\n if (canUseCompositionEvent)\n b: {\n switch (domEventName) {\n case \"compositionstart\":\n var eventType = \"onCompositionStart\";\n break b;\n case \"compositionend\":\n eventType = \"onCompositionEnd\";\n break b;\n case \"compositionupdate\":\n eventType = \"onCompositionUpdate\";\n break b;\n }\n eventType = void 0;\n }\n else\n isComposing\n ? isFallbackCompositionEnd(domEventName, nativeEvent) &&\n (eventType = \"onCompositionEnd\")\n : \"keydown\" === domEventName &&\n nativeEvent.keyCode === START_KEYCODE &&\n (eventType = \"onCompositionStart\");\n eventType &&\n (useFallbackCompositionData &&\n \"ko\" !== nativeEvent.locale &&\n (isComposing || \"onCompositionStart\" !== eventType\n ? \"onCompositionEnd\" === eventType &&\n isComposing &&\n (fallbackData = getData())\n : ((root = nativeEventTarget),\n (startText = \"value\" in root ? root.value : root.textContent),\n (isComposing = !0))),\n (handleEventFunc = accumulateTwoPhaseListeners(\n targetInst,\n eventType\n )),\n 0 < handleEventFunc.length &&\n ((eventType = new SyntheticCompositionEvent(\n eventType,\n domEventName,\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: eventType,\n listeners: handleEventFunc\n }),\n fallbackData\n ? (eventType.data = fallbackData)\n : ((fallbackData = getDataFromCustomEvent(nativeEvent)),\n null !== fallbackData && (eventType.data = fallbackData))));\n if (\n (fallbackData = canUseTextInputEvent\n ? getNativeBeforeInputChars(domEventName, nativeEvent)\n : getFallbackBeforeInputChars(domEventName, nativeEvent))\n )\n (eventType = accumulateTwoPhaseListeners(\n targetInst,\n \"onBeforeInput\"\n )),\n 0 < eventType.length &&\n ((handleEventFunc = new SyntheticInputEvent(\n \"onBeforeInput\",\n \"beforeinput\",\n null,\n nativeEvent,\n nativeEventTarget\n )),\n dispatchQueue.push({\n event: handleEventFunc,\n listeners: eventType\n }),\n (handleEventFunc.data = fallbackData));\n extractEvents$1(\n dispatchQueue,\n domEventName,\n targetInst,\n nativeEvent,\n nativeEventTarget\n );\n }\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n });\n }\n function createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n }\n function accumulateTwoPhaseListeners(targetFiber, reactName) {\n for (\n var captureName = reactName + \"Capture\", listeners = [];\n null !== targetFiber;\n\n ) {\n var _instance3 = targetFiber,\n stateNode = _instance3.stateNode;\n _instance3 = _instance3.tag;\n (5 !== _instance3 && 26 !== _instance3 && 27 !== _instance3) ||\n null === stateNode ||\n ((_instance3 = getListener(targetFiber, captureName)),\n null != _instance3 &&\n listeners.unshift(\n createDispatchListener(targetFiber, _instance3, stateNode)\n ),\n (_instance3 = getListener(targetFiber, reactName)),\n null != _instance3 &&\n listeners.push(\n createDispatchListener(targetFiber, _instance3, stateNode)\n ));\n if (3 === targetFiber.tag) return listeners;\n targetFiber = targetFiber.return;\n }\n return [];\n }\n function getParent(inst) {\n if (null === inst) return null;\n do inst = inst.return;\n while (inst && 5 !== inst.tag && 27 !== inst.tag);\n return inst ? inst : null;\n }\n function accumulateEnterLeaveListenersForEvent(\n dispatchQueue,\n event,\n target,\n common,\n inCapturePhase\n ) {\n for (\n var registrationName = event._reactName, listeners = [];\n null !== target && target !== common;\n\n ) {\n var _instance4 = target,\n alternate = _instance4.alternate,\n stateNode = _instance4.stateNode;\n _instance4 = _instance4.tag;\n if (null !== alternate && alternate === common) break;\n (5 !== _instance4 && 26 !== _instance4 && 27 !== _instance4) ||\n null === stateNode ||\n ((alternate = stateNode),\n inCapturePhase\n ? ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.unshift(\n createDispatchListener(target, stateNode, alternate)\n ))\n : inCapturePhase ||\n ((stateNode = getListener(target, registrationName)),\n null != stateNode &&\n listeners.push(\n createDispatchListener(target, stateNode, alternate)\n )));\n target = target.return;\n }\n 0 !== listeners.length &&\n dispatchQueue.push({ event: event, listeners: listeners });\n }\n function validatePropertiesInDevelopment(type, props) {\n validateProperties$2(type, props);\n (\"input\" !== type && \"textarea\" !== type && \"select\" !== type) ||\n null == props ||\n null !== props.value ||\n didWarnValueNull ||\n ((didWarnValueNull = !0),\n \"select\" === type && props.multiple\n ? console.error(\n \"`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.\",\n type\n )\n : console.error(\n \"`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.\",\n type\n ));\n var eventRegistry = {\n registrationNameDependencies: registrationNameDependencies,\n possibleRegistrationNames: possibleRegistrationNames\n };\n isCustomElement(type) ||\n \"string\" === typeof props.is ||\n warnUnknownProperties(type, props, eventRegistry);\n props.contentEditable &&\n !props.suppressContentEditableWarning &&\n null != props.children &&\n console.error(\n \"A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional.\"\n );\n }\n function warnForPropDifference(\n propName,\n serverValue,\n clientValue,\n serverDifferences\n ) {\n serverValue !== clientValue &&\n ((clientValue = normalizeMarkupForTextOrAttribute(clientValue)),\n normalizeMarkupForTextOrAttribute(serverValue) !== clientValue &&\n (serverDifferences[propName] = serverValue));\n }\n function warnForExtraAttributes(\n domElement,\n attributeNames,\n serverDifferences\n ) {\n attributeNames.forEach(function (attributeName) {\n serverDifferences[getPropNameFromAttributeName(attributeName)] =\n \"style\" === attributeName\n ? getStylesObjectFromElement(domElement)\n : domElement.getAttribute(attributeName);\n });\n }\n function warnForInvalidEventListener(registrationName, listener) {\n !1 === listener\n ? console.error(\n \"Expected `%s` listener to be a function, instead got `false`.\\n\\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.\",\n registrationName,\n registrationName,\n registrationName\n )\n : console.error(\n \"Expected `%s` listener to be a function, instead got a value of `%s` type.\",\n registrationName,\n typeof listener\n );\n }\n function normalizeHTML(parent, html) {\n parent =\n parent.namespaceURI === MATH_NAMESPACE ||\n parent.namespaceURI === SVG_NAMESPACE\n ? parent.ownerDocument.createElementNS(\n parent.namespaceURI,\n parent.tagName\n )\n : parent.ownerDocument.createElement(parent.tagName);\n parent.innerHTML = html;\n return parent.innerHTML;\n }\n function normalizeMarkupForTextOrAttribute(markup) {\n willCoercionThrow(markup) &&\n (console.error(\n \"The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.\",\n typeName(markup)\n ),\n testStringCoercion(markup));\n return (\"string\" === typeof markup ? markup : \"\" + markup)\n .replace(NORMALIZE_NEWLINES_REGEX, \"\\n\")\n .replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, \"\");\n }\n function checkForUnmatchedText(serverText, clientText) {\n clientText = normalizeMarkupForTextOrAttribute(clientText);\n return normalizeMarkupForTextOrAttribute(serverText) === clientText\n ? !0\n : !1;\n }\n function setProp(domElement, tag, key, value, props, prevValue) {\n switch (key) {\n case \"children\":\n if (\"string\" === typeof value)\n validateTextNesting(value, tag, !1),\n \"body\" === tag ||\n (\"textarea\" === tag && \"\" === value) ||\n setTextContent(domElement, value);\n else if (\"number\" === typeof value || \"bigint\" === typeof value)\n validateTextNesting(\"\" + value, tag, !1),\n \"body\" !== tag && setTextContent(domElement, \"\" + value);\n break;\n case \"className\":\n setValueForKnownAttribute(domElement, \"class\", value);\n break;\n case \"tabIndex\":\n setValueForKnownAttribute(domElement, \"tabindex\", value);\n break;\n case \"dir\":\n case \"role\":\n case \"viewBox\":\n case \"width\":\n case \"height\":\n setValueForKnownAttribute(domElement, key, value);\n break;\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"data\":\n if (\"object\" !== tag) {\n setValueForKnownAttribute(domElement, \"data\", value);\n break;\n }\n case \"src\":\n case \"href\":\n if (\"\" === value && (\"a\" !== tag || \"href\" !== key)) {\n \"src\" === key\n ? console.error(\n 'An empty string (\"\") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',\n key,\n key\n )\n : console.error(\n 'An empty string (\"\") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',\n key,\n key\n );\n domElement.removeAttribute(key);\n break;\n }\n if (\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n checkAttributeStringCoercion(value, key);\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"action\":\n case \"formAction\":\n null != value &&\n (\"form\" === tag\n ? \"formAction\" === key\n ? console.error(\n \"You can only pass the formAction prop to <input> or <button>. Use the action prop on <form>.\"\n )\n : \"function\" === typeof value &&\n ((null == props.encType && null == props.method) ||\n didWarnFormActionMethod ||\n ((didWarnFormActionMethod = !0),\n console.error(\n \"Cannot specify a encType or method for a form that specifies a function as the action. React provides those automatically. They will get overridden.\"\n )),\n null == props.target ||\n didWarnFormActionTarget ||\n ((didWarnFormActionTarget = !0),\n console.error(\n \"Cannot specify a target for a form that specifies a function as the action. The function will always be executed in the same window.\"\n )))\n : \"input\" === tag || \"button\" === tag\n ? \"action\" === key\n ? console.error(\n \"You can only pass the action prop to <form>. Use the formAction prop on <input> or <button>.\"\n )\n : \"input\" !== tag ||\n \"submit\" === props.type ||\n \"image\" === props.type ||\n didWarnFormActionType\n ? \"button\" !== tag ||\n null == props.type ||\n \"submit\" === props.type ||\n didWarnFormActionType\n ? \"function\" === typeof value &&\n (null == props.name ||\n didWarnFormActionName ||\n ((didWarnFormActionName = !0),\n console.error(\n 'Cannot specify a \"name\" prop for a button that specifies a function as a formAction. React needs it to encode which action should be invoked. It will get overridden.'\n )),\n (null == props.formEncType &&\n null == props.formMethod) ||\n didWarnFormActionMethod ||\n ((didWarnFormActionMethod = !0),\n console.error(\n \"Cannot specify a formEncType or formMethod for a button that specifies a function as a formAction. React provides those automatically. They will get overridden.\"\n )),\n null == props.formTarget ||\n didWarnFormActionTarget ||\n ((didWarnFormActionTarget = !0),\n console.error(\n \"Cannot specify a formTarget for a button that specifies a function as a formAction. The function will always be executed in the same window.\"\n )))\n : ((didWarnFormActionType = !0),\n console.error(\n 'A button can only specify a formAction along with type=\"submit\" or no type.'\n ))\n : ((didWarnFormActionType = !0),\n console.error(\n 'An input can only specify a formAction along with type=\"submit\" or type=\"image\".'\n ))\n : \"action\" === key\n ? console.error(\n \"You can only pass the action prop to <form>.\"\n )\n : console.error(\n \"You can only pass the formAction prop to <input> or <button>.\"\n ));\n if (\"function\" === typeof value) {\n domElement.setAttribute(\n key,\n \"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')\"\n );\n break;\n } else\n \"function\" === typeof prevValue &&\n (\"formAction\" === key\n ? (\"input\" !== tag &&\n setProp(domElement, tag, \"name\", props.name, props, null),\n setProp(\n domElement,\n tag,\n \"formEncType\",\n props.formEncType,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formMethod\",\n props.formMethod,\n props,\n null\n ),\n setProp(\n domElement,\n tag,\n \"formTarget\",\n props.formTarget,\n props,\n null\n ))\n : (setProp(\n domElement,\n tag,\n \"encType\",\n props.encType,\n props,\n null\n ),\n setProp(domElement, tag, \"method\", props.method, props, null),\n setProp(\n domElement,\n tag,\n \"target\",\n props.target,\n props,\n null\n )));\n if (\n null == value ||\n \"symbol\" === typeof value ||\n \"boolean\" === typeof value\n ) {\n domElement.removeAttribute(key);\n break;\n }\n checkAttributeStringCoercion(value, key);\n value = sanitizeURL(\"\" + value);\n domElement.setAttribute(key, value);\n break;\n case \"onClick\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n (domElement.onclick = noop$1));\n break;\n case \"onScroll\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n listenToNonDelegatedEvent(\"scroll\", domElement));\n break;\n case \"onScrollEnd\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n listenToNonDelegatedEvent(\"scrollend\", domElement));\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(\n \"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.\"\n );\n key = value.__html;\n if (null != key) {\n if (null != props.children)\n throw Error(\n \"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\"\n );\n domElement.innerHTML = key;\n }\n }\n break;\n case \"multiple\":\n domElement.multiple =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"muted\":\n domElement.muted =\n value && \"function\" !== typeof value && \"symbol\" !== typeof value;\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"autoFocus\":\n break;\n case \"xlinkHref\":\n if (\n null == value ||\n \"function\" === typeof value ||\n \"boolean\" === typeof value ||\n \"symbol\" === typeof value\n ) {\n domElement.removeAttribute(\"xlink:href\");\n break;\n }\n checkAttributeStringCoercion(value, key);\n key = sanitizeURL(\"\" + value);\n domElement.setAttributeNS(xlinkNamespace, \"xlink:href\", key);\n break;\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? (checkAttributeStringCoercion(value, key),\n domElement.setAttribute(key, \"\" + value))\n : domElement.removeAttribute(key);\n break;\n case \"inert\":\n \"\" !== value ||\n didWarnForNewBooleanPropsWithEmptyValue[key] ||\n ((didWarnForNewBooleanPropsWithEmptyValue[key] = !0),\n console.error(\n \"Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.\",\n key\n ));\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n value && \"function\" !== typeof value && \"symbol\" !== typeof value\n ? domElement.setAttribute(key, \"\")\n : domElement.removeAttribute(key);\n break;\n case \"capture\":\n case \"download\":\n !0 === value\n ? domElement.setAttribute(key, \"\")\n : !1 !== value &&\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value\n ? (checkAttributeStringCoercion(value, key),\n domElement.setAttribute(key, value))\n : domElement.removeAttribute(key);\n break;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n null != value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n !isNaN(value) &&\n 1 <= value\n ? (checkAttributeStringCoercion(value, key),\n domElement.setAttribute(key, value))\n : domElement.removeAttribute(key);\n break;\n case \"rowSpan\":\n case \"start\":\n null == value ||\n \"function\" === typeof value ||\n \"symbol\" === typeof value ||\n isNaN(value)\n ? domElement.removeAttribute(key)\n : (checkAttributeStringCoercion(value, key),\n domElement.setAttribute(key, value));\n break;\n case \"popover\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n setValueForAttribute(domElement, \"popover\", value);\n break;\n case \"xlinkActuate\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:actuate\",\n value\n );\n break;\n case \"xlinkArcrole\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:arcrole\",\n value\n );\n break;\n case \"xlinkRole\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:role\",\n value\n );\n break;\n case \"xlinkShow\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:show\",\n value\n );\n break;\n case \"xlinkTitle\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:title\",\n value\n );\n break;\n case \"xlinkType\":\n setValueForNamespacedAttribute(\n domElement,\n xlinkNamespace,\n \"xlink:type\",\n value\n );\n break;\n case \"xmlBase\":\n setValueForNamespacedAttribute(\n domElement,\n xmlNamespace,\n \"xml:base\",\n value\n );\n break;\n case \"xmlLang\":\n setValueForNamespacedAttribute(\n domElement,\n xmlNamespace,\n \"xml:lang\",\n value\n );\n break;\n case \"xmlSpace\":\n setValueForNamespacedAttribute(\n domElement,\n xmlNamespace,\n \"xml:space\",\n value\n );\n break;\n case \"is\":\n null != prevValue &&\n console.error(\n 'Cannot update the \"is\" prop after it has been initialized.'\n );\n setValueForAttribute(domElement, \"is\", value);\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n case \"popoverTarget\":\n didWarnPopoverTargetObject ||\n null == value ||\n \"object\" !== typeof value ||\n ((didWarnPopoverTargetObject = !0),\n console.error(\n \"The `popoverTarget` prop expects the ID of an Element as a string. Received %s instead.\",\n value\n ));\n default:\n !(2 < key.length) ||\n (\"o\" !== key[0] && \"O\" !== key[0]) ||\n (\"n\" !== key[1] && \"N\" !== key[1])\n ? ((key = getAttributeAlias(key)),\n setValueForAttribute(domElement, key, value))\n : registrationNameDependencies.hasOwnProperty(key) &&\n null != value &&\n \"function\" !== typeof value &&\n warnForInvalidEventListener(key, value);\n }\n }\n function setPropOnCustomElement(\n domElement,\n tag,\n key,\n value,\n props,\n prevValue\n ) {\n switch (key) {\n case \"style\":\n setValueForStyles(domElement, value, prevValue);\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != value) {\n if (\"object\" !== typeof value || !(\"__html\" in value))\n throw Error(\n \"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information.\"\n );\n key = value.__html;\n if (null != key) {\n if (null != props.children)\n throw Error(\n \"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\"\n );\n domElement.innerHTML = key;\n }\n }\n break;\n case \"children\":\n \"string\" === typeof value\n ? setTextContent(domElement, value)\n : (\"number\" === typeof value || \"bigint\" === typeof value) &&\n setTextContent(domElement, \"\" + value);\n break;\n case \"onScroll\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n listenToNonDelegatedEvent(\"scroll\", domElement));\n break;\n case \"onScrollEnd\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n listenToNonDelegatedEvent(\"scrollend\", domElement));\n break;\n case \"onClick\":\n null != value &&\n (\"function\" !== typeof value &&\n warnForInvalidEventListener(key, value),\n (domElement.onclick = noop$1));\n break;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"innerHTML\":\n case \"ref\":\n break;\n case \"innerText\":\n case \"textContent\":\n break;\n default:\n if (registrationNameDependencies.hasOwnProperty(key))\n null != value &&\n \"function\" !== typeof value &&\n warnForInvalidEventListener(key, value);\n else\n a: {\n if (\n \"o\" === key[0] &&\n \"n\" === key[1] &&\n ((props = key.endsWith(\"Capture\")),\n (tag = key.slice(2, props ? key.length - 7 : void 0)),\n (prevValue = domElement[internalPropsKey] || null),\n (prevValue = null != prevValue ? prevValue[key] : null),\n \"function\" === typeof prevValue &&\n domElement.removeEventListener(tag, prevValue, props),\n \"function\" === typeof value)\n ) {\n \"function\" !== typeof prevValue &&\n null !== prevValue &&\n (key in domElement\n ? (domElement[key] = null)\n : domElement.hasAttribute(key) &&\n domElement.removeAttribute(key));\n domElement.addEventListener(tag, value, props);\n break a;\n }\n key in domElement\n ? (domElement[key] = value)\n : !0 === value\n ? domElement.setAttribute(key, \"\")\n : setValueForAttribute(domElement, key, value);\n }\n }\n }\n function setInitialProperties(domElement, tag, props) {\n validatePropertiesInDevelopment(tag, props);\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"img\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n var hasSrc = !1,\n hasSrcSet = !1,\n propKey;\n for (propKey in props)\n if (props.hasOwnProperty(propKey)) {\n var propValue = props[propKey];\n if (null != propValue)\n switch (propKey) {\n case \"src\":\n hasSrc = !0;\n break;\n case \"srcSet\":\n hasSrcSet = !0;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(\n tag +\n \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\"\n );\n default:\n setProp(domElement, tag, propKey, propValue, props, null);\n }\n }\n hasSrcSet &&\n setProp(domElement, tag, \"srcSet\", props.srcSet, props, null);\n hasSrc && setProp(domElement, tag, \"src\", props.src, props, null);\n return;\n case \"input\":\n checkControlledValueProps(\"input\", props);\n listenToNonDelegatedEvent(\"invalid\", domElement);\n var defaultValue = (propKey = propValue = hasSrcSet = null),\n checked = null,\n defaultChecked = null;\n for (hasSrc in props)\n if (props.hasOwnProperty(hasSrc)) {\n var _propValue = props[hasSrc];\n if (null != _propValue)\n switch (hasSrc) {\n case \"name\":\n hasSrcSet = _propValue;\n break;\n case \"type\":\n propValue = _propValue;\n break;\n case \"checked\":\n checked = _propValue;\n break;\n case \"defaultChecked\":\n defaultChecked = _propValue;\n break;\n case \"value\":\n propKey = _propValue;\n break;\n case \"defaultValue\":\n defaultValue = _propValue;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != _propValue)\n throw Error(\n tag +\n \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\"\n );\n break;\n default:\n setProp(domElement, tag, hasSrc, _propValue, props, null);\n }\n }\n validateInputProps(domElement, props);\n initInput(\n domElement,\n propKey,\n defaultValue,\n checked,\n defaultChecked,\n propValue,\n hasSrcSet,\n !1\n );\n return;\n case \"select\":\n checkControlledValueProps(\"select\", props);\n listenToNonDelegatedEvent(\"invalid\", domElement);\n hasSrc = propValue = propKey = null;\n for (hasSrcSet in props)\n if (\n props.hasOwnProperty(hasSrcSet) &&\n ((defaultValue = props[hasSrcSet]), null != defaultValue)\n )\n switch (hasSrcSet) {\n case \"value\":\n propKey = defaultValue;\n break;\n case \"defaultValue\":\n propValue = defaultValue;\n break;\n case \"multiple\":\n hasSrc = defaultValue;\n default:\n setProp(\n domElement,\n tag,\n hasSrcSet,\n defaultValue,\n props,\n null\n );\n }\n validateSelectProps(domElement, props);\n tag = propKey;\n props = propValue;\n domElement.multiple = !!hasSrc;\n null != tag\n ? updateOptions(domElement, !!hasSrc, tag, !1)\n : null != props && updateOptions(domElement, !!hasSrc, props, !0);\n return;\n case \"textarea\":\n checkControlledValueProps(\"textarea\", props);\n listenToNonDelegatedEvent(\"invalid\", domElement);\n propKey = hasSrcSet = hasSrc = null;\n for (propValue in props)\n if (\n props.hasOwnProperty(propValue) &&\n ((defaultValue = props[propValue]), null != defaultValue)\n )\n switch (propValue) {\n case \"value\":\n hasSrc = defaultValue;\n break;\n case \"defaultValue\":\n hasSrcSet = defaultValue;\n break;\n case \"children\":\n propKey = defaultValue;\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != defaultValue)\n throw Error(\n \"`dangerouslySetInnerHTML` does not make sense on <textarea>.\"\n );\n break;\n default:\n setProp(\n domElement,\n tag,\n propValue,\n defaultValue,\n props,\n null\n );\n }\n validateTextareaProps(domElement, props);\n initTextarea(domElement, hasSrc, hasSrcSet, propKey);\n return;\n case \"option\":\n validateOptionProps(domElement, props);\n for (checked in props)\n if (\n props.hasOwnProperty(checked) &&\n ((hasSrc = props[checked]), null != hasSrc)\n )\n switch (checked) {\n case \"selected\":\n domElement.selected =\n hasSrc &&\n \"function\" !== typeof hasSrc &&\n \"symbol\" !== typeof hasSrc;\n break;\n default:\n setProp(domElement, tag, checked, hasSrc, props, null);\n }\n return;\n case \"dialog\":\n listenToNonDelegatedEvent(\"beforetoggle\", domElement);\n listenToNonDelegatedEvent(\"toggle\", domElement);\n listenToNonDelegatedEvent(\"cancel\", domElement);\n listenToNonDelegatedEvent(\"close\", domElement);\n break;\n case \"iframe\":\n case \"object\":\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"video\":\n case \"audio\":\n for (hasSrc = 0; hasSrc < mediaEventTypes.length; hasSrc++)\n listenToNonDelegatedEvent(mediaEventTypes[hasSrc], domElement);\n break;\n case \"image\":\n listenToNonDelegatedEvent(\"error\", domElement);\n listenToNonDelegatedEvent(\"load\", domElement);\n break;\n case \"details\":\n listenToNonDelegatedEvent(\"toggle\", domElement);\n break;\n case \"embed\":\n case \"source\":\n case \"link\":\n listenToNonDelegatedEvent(\"error\", domElement),\n listenToNonDelegatedEvent(\"load\", domElement);\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (defaultChecked in props)\n if (\n props.hasOwnProperty(defaultChecked) &&\n ((hasSrc = props[defaultChecked]), null != hasSrc)\n )\n switch (defaultChecked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n throw Error(\n tag +\n \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\"\n );\n default:\n setProp(domElement, tag, defaultChecked, hasSrc, props, null);\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (_propValue in props)\n props.hasOwnProperty(_propValue) &&\n ((hasSrc = props[_propValue]),\n void 0 !== hasSrc &&\n setPropOnCustomElement(\n domElement,\n tag,\n _propValue,\n hasSrc,\n props,\n void 0\n ));\n return;\n }\n }\n for (defaultValue in props)\n props.hasOwnProperty(defaultValue) &&\n ((hasSrc = props[defaultValue]),\n null != hasSrc &&\n setProp(domElement, tag, defaultValue, hasSrc, props, null));\n }\n function updateProperties(domElement, tag, lastProps, nextProps) {\n validatePropertiesInDevelopment(tag, nextProps);\n switch (tag) {\n case \"div\":\n case \"span\":\n case \"svg\":\n case \"path\":\n case \"a\":\n case \"g\":\n case \"p\":\n case \"li\":\n break;\n case \"input\":\n var name = null,\n type = null,\n value = null,\n defaultValue = null,\n lastDefaultValue = null,\n checked = null,\n defaultChecked = null;\n for (propKey in lastProps) {\n var lastProp = lastProps[propKey];\n if (lastProps.hasOwnProperty(propKey) && null != lastProp)\n switch (propKey) {\n case \"checked\":\n break;\n case \"value\":\n break;\n case \"defaultValue\":\n lastDefaultValue = lastProp;\n default:\n nextProps.hasOwnProperty(propKey) ||\n setProp(\n domElement,\n tag,\n propKey,\n null,\n nextProps,\n lastProp\n );\n }\n }\n for (var _propKey8 in nextProps) {\n var propKey = nextProps[_propKey8];\n lastProp = lastProps[_propKey8];\n if (\n nextProps.hasOwnProperty(_propKey8) &&\n (null != propKey || null != lastProp)\n )\n switch (_propKey8) {\n case \"type\":\n type = propKey;\n break;\n case \"name\":\n name = propKey;\n break;\n case \"checked\":\n checked = propKey;\n break;\n case \"defaultChecked\":\n defaultChecked = propKey;\n break;\n case \"value\":\n value = propKey;\n break;\n case \"defaultValue\":\n defaultValue = propKey;\n break;\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != propKey)\n throw Error(\n tag +\n \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\"\n );\n break;\n default:\n propKey !== lastProp &&\n setProp(\n domElement,\n tag,\n _propKey8,\n propKey,\n nextProps,\n lastProp\n );\n }\n }\n tag =\n \"checkbox\" === lastProps.type || \"radio\" === lastProps.type\n ? null != lastProps.checked\n : null != lastProps.value;\n nextProps =\n \"checkbox\" === nextProps.type || \"radio\" === nextProps.type\n ? null != nextProps.checked\n : null != nextProps.value;\n tag ||\n !nextProps ||\n didWarnUncontrolledToControlled ||\n (console.error(\n \"A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components\"\n ),\n (didWarnUncontrolledToControlled = !0));\n !tag ||\n nextProps ||\n didWarnControlledToUncontrolled ||\n (console.error(\n \"A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://react.dev/link/controlled-components\"\n ),\n (didWarnControlledToUncontrolled = !0));\n updateInput(\n domElement,\n value,\n defaultValue,\n lastDefaultValue,\n checked,\n defaultChecked,\n type,\n name\n );\n return;\n case \"select\":\n propKey = value = defaultValue = _propKey8 = null;\n for (type in lastProps)\n if (\n ((lastDefaultValue = lastProps[type]),\n lastProps.hasOwnProperty(type) && null != lastDefaultValue)\n )\n switch (type) {\n case \"value\":\n break;\n case \"multiple\":\n propKey = lastDefaultValue;\n default:\n nextProps.hasOwnProperty(type) ||\n setProp(\n domElement,\n tag,\n type,\n null,\n nextProps,\n lastDefaultValue\n );\n }\n for (name in nextProps)\n if (\n ((type = nextProps[name]),\n (lastDefaultValue = lastProps[name]),\n nextProps.hasOwnProperty(name) &&\n (null != type || null != lastDefaultValue))\n )\n switch (name) {\n case \"value\":\n _propKey8 = type;\n break;\n case \"defaultValue\":\n defaultValue = type;\n break;\n case \"multiple\":\n value = type;\n default:\n type !== lastDefaultValue &&\n setProp(\n domElement,\n tag,\n name,\n type,\n nextProps,\n lastDefaultValue\n );\n }\n nextProps = defaultValue;\n tag = value;\n lastProps = propKey;\n null != _propKey8\n ? updateOptions(domElement, !!tag, _propKey8, !1)\n : !!lastProps !== !!tag &&\n (null != nextProps\n ? updateOptions(domElement, !!tag, nextProps, !0)\n : updateOptions(domElement, !!tag, tag ? [] : \"\", !1));\n return;\n case \"textarea\":\n propKey = _propKey8 = null;\n for (defaultValue in lastProps)\n if (\n ((name = lastProps[defaultValue]),\n lastProps.hasOwnProperty(defaultValue) &&\n null != name &&\n !nextProps.hasOwnProperty(defaultValue))\n )\n switch (defaultValue) {\n case \"value\":\n break;\n case \"children\":\n break;\n default:\n setProp(domElement, tag, defaultValue, null, nextProps, name);\n }\n for (value in nextProps)\n if (\n ((name = nextProps[value]),\n (type = lastProps[value]),\n nextProps.hasOwnProperty(value) && (null != name || null != type))\n )\n switch (value) {\n case \"value\":\n _propKey8 = name;\n break;\n case \"defaultValue\":\n propKey = name;\n break;\n case \"children\":\n break;\n case \"dangerouslySetInnerHTML\":\n if (null != name)\n throw Error(\n \"`dangerouslySetInnerHTML` does not make sense on <textarea>.\"\n );\n break;\n default:\n name !== type &&\n setProp(domElement, tag, value, name, nextProps, type);\n }\n updateTextarea(domElement, _propKey8, propKey);\n return;\n case \"option\":\n for (var _propKey13 in lastProps)\n if (\n ((_propKey8 = lastProps[_propKey13]),\n lastProps.hasOwnProperty(_propKey13) &&\n null != _propKey8 &&\n !nextProps.hasOwnProperty(_propKey13))\n )\n switch (_propKey13) {\n case \"selected\":\n domElement.selected = !1;\n break;\n default:\n setProp(\n domElement,\n tag,\n _propKey13,\n null,\n nextProps,\n _propKey8\n );\n }\n for (lastDefaultValue in nextProps)\n if (\n ((_propKey8 = nextProps[lastDefaultValue]),\n (propKey = lastProps[lastDefaultValue]),\n nextProps.hasOwnProperty(lastDefaultValue) &&\n _propKey8 !== propKey &&\n (null != _propKey8 || null != propKey))\n )\n switch (lastDefaultValue) {\n case \"selected\":\n domElement.selected =\n _propKey8 &&\n \"function\" !== typeof _propKey8 &&\n \"symbol\" !== typeof _propKey8;\n break;\n default:\n setProp(\n domElement,\n tag,\n lastDefaultValue,\n _propKey8,\n nextProps,\n propKey\n );\n }\n return;\n case \"img\":\n case \"link\":\n case \"area\":\n case \"base\":\n case \"br\":\n case \"col\":\n case \"embed\":\n case \"hr\":\n case \"keygen\":\n case \"meta\":\n case \"param\":\n case \"source\":\n case \"track\":\n case \"wbr\":\n case \"menuitem\":\n for (var _propKey15 in lastProps)\n (_propKey8 = lastProps[_propKey15]),\n lastProps.hasOwnProperty(_propKey15) &&\n null != _propKey8 &&\n !nextProps.hasOwnProperty(_propKey15) &&\n setProp(\n domElement,\n tag,\n _propKey15,\n null,\n nextProps,\n _propKey8\n );\n for (checked in nextProps)\n if (\n ((_propKey8 = nextProps[checked]),\n (propKey = lastProps[checked]),\n nextProps.hasOwnProperty(checked) &&\n _propKey8 !== propKey &&\n (null != _propKey8 || null != propKey))\n )\n switch (checked) {\n case \"children\":\n case \"dangerouslySetInnerHTML\":\n if (null != _propKey8)\n throw Error(\n tag +\n \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\"\n );\n break;\n default:\n setProp(\n domElement,\n tag,\n checked,\n _propKey8,\n nextProps,\n propKey\n );\n }\n return;\n default:\n if (isCustomElement(tag)) {\n for (var _propKey17 in lastProps)\n (_propKey8 = lastProps[_propKey17]),\n lastProps.hasOwnProperty(_propKey17) &&\n void 0 !== _propKey8 &&\n !nextProps.hasOwnProperty(_propKey17) &&\n setPropOnCustomElement(\n domElement,\n tag,\n _propKey17,\n void 0,\n nextProps,\n _propKey8\n );\n for (defaultChecked in nextProps)\n (_propKey8 = nextProps[defaultChecked]),\n (propKey = lastProps[defaultChecked]),\n !nextProps.hasOwnProperty(defaultChecked) ||\n _propKey8 === propKey ||\n (void 0 === _propKey8 && void 0 === propKey) ||\n setPropOnCustomElement(\n domElement,\n tag,\n defaultChecked,\n _propKey8,\n nextProps,\n propKey\n );\n return;\n }\n }\n for (var _propKey19 in lastProps)\n (_propKey8 = lastProps[_propKey19]),\n lastProps.hasOwnProperty(_propKey19) &&\n null != _propKey8 &&\n !nextProps.hasOwnProperty(_propKey19) &&\n setProp(domElement, tag, _propKey19, null, nextProps, _propKey8);\n for (lastProp in nextProps)\n (_propKey8 = nextProps[lastProp]),\n (propKey = lastProps[lastProp]),\n !nextProps.hasOwnProperty(lastProp) ||\n _propKey8 === propKey ||\n (null == _propKey8 && null == propKey) ||\n setProp(domElement, tag, lastProp, _propKey8, nextProps, propKey);\n }\n function getPropNameFromAttributeName(attrName) {\n switch (attrName) {\n case \"class\":\n return \"className\";\n case \"for\":\n return \"htmlFor\";\n default:\n return attrName;\n }\n }\n function getStylesObjectFromElement(domElement) {\n var serverValueInObjectForm = {};\n domElement = domElement.style;\n for (var i = 0; i < domElement.length; i++) {\n var styleName = domElement[i];\n serverValueInObjectForm[styleName] =\n domElement.getPropertyValue(styleName);\n }\n return serverValueInObjectForm;\n }\n function diffHydratedStyles(domElement, value$jscomp$0, serverDifferences) {\n if (null != value$jscomp$0 && \"object\" !== typeof value$jscomp$0)\n console.error(\n \"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.\"\n );\n else {\n var clientValue;\n var delimiter = (clientValue = \"\"),\n styleName;\n for (styleName in value$jscomp$0)\n if (value$jscomp$0.hasOwnProperty(styleName)) {\n var value = value$jscomp$0[styleName];\n null != value &&\n \"boolean\" !== typeof value &&\n \"\" !== value &&\n (0 === styleName.indexOf(\"--\")\n ? (checkCSSPropertyStringCoercion(value, styleName),\n (clientValue +=\n delimiter + styleName + \":\" + (\"\" + value).trim()))\n : \"number\" !== typeof value ||\n 0 === value ||\n unitlessNumbers.has(styleName)\n ? (checkCSSPropertyStringCoercion(value, styleName),\n (clientValue +=\n delimiter +\n styleName\n .replace(uppercasePattern, \"-$1\")\n .toLowerCase()\n .replace(msPattern$1, \"-ms-\") +\n \":\" +\n (\"\" + value).trim()))\n : (clientValue +=\n delimiter +\n styleName\n .replace(uppercasePattern, \"-$1\")\n .toLowerCase()\n .replace(msPattern$1, \"-ms-\") +\n \":\" +\n value +\n \"px\"),\n (delimiter = \";\"));\n }\n clientValue = clientValue || null;\n value$jscomp$0 = domElement.getAttribute(\"style\");\n value$jscomp$0 !== clientValue &&\n ((clientValue = normalizeMarkupForTextOrAttribute(clientValue)),\n normalizeMarkupForTextOrAttribute(value$jscomp$0) !== clientValue &&\n (serverDifferences.style = getStylesObjectFromElement(domElement)));\n }\n }\n function hydrateAttribute(\n domElement,\n propKey,\n attributeName,\n value,\n extraAttributes,\n serverDifferences\n ) {\n extraAttributes.delete(attributeName);\n domElement = domElement.getAttribute(attributeName);\n if (null === domElement)\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n return;\n }\n else if (null != value)\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n break;\n default:\n if (\n (checkAttributeStringCoercion(value, propKey),\n domElement === \"\" + value)\n )\n return;\n }\n warnForPropDifference(propKey, domElement, value, serverDifferences);\n }\n function hydrateBooleanAttribute(\n domElement,\n propKey,\n attributeName,\n value,\n extraAttributes,\n serverDifferences\n ) {\n extraAttributes.delete(attributeName);\n domElement = domElement.getAttribute(attributeName);\n if (null === domElement) {\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n return;\n }\n if (!value) return;\n } else\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n break;\n default:\n if (value) return;\n }\n warnForPropDifference(propKey, domElement, value, serverDifferences);\n }\n function hydrateBooleanishAttribute(\n domElement,\n propKey,\n attributeName,\n value,\n extraAttributes,\n serverDifferences\n ) {\n extraAttributes.delete(attributeName);\n domElement = domElement.getAttribute(attributeName);\n if (null === domElement)\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n return;\n }\n else if (null != value)\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n break;\n default:\n if (\n (checkAttributeStringCoercion(value, attributeName),\n domElement === \"\" + value)\n )\n return;\n }\n warnForPropDifference(propKey, domElement, value, serverDifferences);\n }\n function hydrateNumericAttribute(\n domElement,\n propKey,\n attributeName,\n value,\n extraAttributes,\n serverDifferences\n ) {\n extraAttributes.delete(attributeName);\n domElement = domElement.getAttribute(attributeName);\n if (null === domElement)\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n return;\n default:\n if (isNaN(value)) return;\n }\n else if (null != value)\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n break;\n default:\n if (\n !isNaN(value) &&\n (checkAttributeStringCoercion(value, propKey),\n domElement === \"\" + value)\n )\n return;\n }\n warnForPropDifference(propKey, domElement, value, serverDifferences);\n }\n function hydrateSanitizedAttribute(\n domElement,\n propKey,\n attributeName,\n value,\n extraAttributes,\n serverDifferences\n ) {\n extraAttributes.delete(attributeName);\n domElement = domElement.getAttribute(attributeName);\n if (null === domElement)\n switch (typeof value) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n return;\n }\n else if (null != value)\n switch (typeof value) {\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n break;\n default:\n if (\n (checkAttributeStringCoercion(value, propKey),\n (attributeName = sanitizeURL(\"\" + value)),\n domElement === attributeName)\n )\n return;\n }\n warnForPropDifference(propKey, domElement, value, serverDifferences);\n }\n function diffHydratedProperties(domElement, tag, props, hostContext) {\n for (\n var serverDifferences = {},\n extraAttributes = new Set(),\n attributes = domElement.attributes,\n i = 0;\n i < attributes.length;\n i++\n )\n switch (attributes[i].name.toLowerCase()) {\n case \"value\":\n break;\n case \"checked\":\n break;\n case \"selected\":\n break;\n default:\n extraAttributes.add(attributes[i].name);\n }\n if (isCustomElement(tag))\n for (var propKey in props) {\n if (props.hasOwnProperty(propKey)) {\n var value = props[propKey];\n if (null != value)\n if (registrationNameDependencies.hasOwnProperty(propKey))\n \"function\" !== typeof value &&\n warnForInvalidEventListener(propKey, value);\n else if (!0 !== props.suppressHydrationWarning)\n switch (propKey) {\n case \"children\":\n (\"string\" !== typeof value && \"number\" !== typeof value) ||\n warnForPropDifference(\n \"children\",\n domElement.textContent,\n value,\n serverDifferences\n );\n continue;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n continue;\n case \"dangerouslySetInnerHTML\":\n attributes = domElement.innerHTML;\n value = value ? value.__html : void 0;\n null != value &&\n ((value = normalizeHTML(domElement, value)),\n warnForPropDifference(\n propKey,\n attributes,\n value,\n serverDifferences\n ));\n continue;\n case \"style\":\n extraAttributes.delete(propKey);\n diffHydratedStyles(domElement, value, serverDifferences);\n continue;\n case \"offsetParent\":\n case \"offsetTop\":\n case \"offsetLeft\":\n case \"offsetWidth\":\n case \"offsetHeight\":\n case \"isContentEditable\":\n case \"outerText\":\n case \"outerHTML\":\n extraAttributes.delete(propKey.toLowerCase());\n console.error(\n \"Assignment to read-only property will result in a no-op: `%s`\",\n propKey\n );\n continue;\n case \"className\":\n extraAttributes.delete(\"class\");\n attributes = getValueForAttributeOnCustomComponent(\n domElement,\n \"class\",\n value\n );\n warnForPropDifference(\n \"className\",\n attributes,\n value,\n serverDifferences\n );\n continue;\n default:\n hostContext.context === HostContextNamespaceNone &&\n \"svg\" !== tag &&\n \"math\" !== tag\n ? extraAttributes.delete(propKey.toLowerCase())\n : extraAttributes.delete(propKey),\n (attributes = getValueForAttributeOnCustomComponent(\n domElement,\n propKey,\n value\n )),\n warnForPropDifference(\n propKey,\n attributes,\n value,\n serverDifferences\n );\n }\n }\n }\n else\n for (value in props)\n if (\n props.hasOwnProperty(value) &&\n ((propKey = props[value]), null != propKey)\n )\n if (registrationNameDependencies.hasOwnProperty(value))\n \"function\" !== typeof propKey &&\n warnForInvalidEventListener(value, propKey);\n else if (!0 !== props.suppressHydrationWarning)\n switch (value) {\n case \"children\":\n (\"string\" !== typeof propKey &&\n \"number\" !== typeof propKey) ||\n warnForPropDifference(\n \"children\",\n domElement.textContent,\n propKey,\n serverDifferences\n );\n continue;\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"value\":\n case \"checked\":\n case \"selected\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n continue;\n case \"dangerouslySetInnerHTML\":\n attributes = domElement.innerHTML;\n propKey = propKey ? propKey.__html : void 0;\n null != propKey &&\n ((propKey = normalizeHTML(domElement, propKey)),\n attributes !== propKey &&\n (serverDifferences[value] = { __html: attributes }));\n continue;\n case \"className\":\n hydrateAttribute(\n domElement,\n value,\n \"class\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"tabIndex\":\n hydrateAttribute(\n domElement,\n value,\n \"tabindex\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"style\":\n extraAttributes.delete(value);\n diffHydratedStyles(domElement, propKey, serverDifferences);\n continue;\n case \"multiple\":\n extraAttributes.delete(value);\n warnForPropDifference(\n value,\n domElement.multiple,\n propKey,\n serverDifferences\n );\n continue;\n case \"muted\":\n extraAttributes.delete(value);\n warnForPropDifference(\n value,\n domElement.muted,\n propKey,\n serverDifferences\n );\n continue;\n case \"autoFocus\":\n extraAttributes.delete(\"autofocus\");\n warnForPropDifference(\n value,\n domElement.autofocus,\n propKey,\n serverDifferences\n );\n continue;\n case \"data\":\n if (\"object\" !== tag) {\n extraAttributes.delete(value);\n attributes = domElement.getAttribute(\"data\");\n warnForPropDifference(\n value,\n attributes,\n propKey,\n serverDifferences\n );\n continue;\n }\n case \"src\":\n case \"href\":\n if (\n !(\n \"\" !== propKey ||\n (\"a\" === tag && \"href\" === value) ||\n (\"object\" === tag && \"data\" === value)\n )\n ) {\n \"src\" === value\n ? console.error(\n 'An empty string (\"\") was passed to the %s attribute. This may cause the browser to download the whole page again over the network. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',\n value,\n value\n )\n : console.error(\n 'An empty string (\"\") was passed to the %s attribute. To fix this, either do not render the element at all or pass null to %s instead of an empty string.',\n value,\n value\n );\n continue;\n }\n hydrateSanitizedAttribute(\n domElement,\n value,\n value,\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"action\":\n case \"formAction\":\n attributes = domElement.getAttribute(value);\n if (\"function\" === typeof propKey) {\n extraAttributes.delete(value.toLowerCase());\n \"formAction\" === value\n ? (extraAttributes.delete(\"name\"),\n extraAttributes.delete(\"formenctype\"),\n extraAttributes.delete(\"formmethod\"),\n extraAttributes.delete(\"formtarget\"))\n : (extraAttributes.delete(\"enctype\"),\n extraAttributes.delete(\"method\"),\n extraAttributes.delete(\"target\"));\n continue;\n } else if (attributes === EXPECTED_FORM_ACTION_URL) {\n extraAttributes.delete(value.toLowerCase());\n warnForPropDifference(\n value,\n \"function\",\n propKey,\n serverDifferences\n );\n continue;\n }\n hydrateSanitizedAttribute(\n domElement,\n value,\n value.toLowerCase(),\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkHref\":\n hydrateSanitizedAttribute(\n domElement,\n value,\n \"xlink:href\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"contentEditable\":\n hydrateBooleanishAttribute(\n domElement,\n value,\n \"contenteditable\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"spellCheck\":\n hydrateBooleanishAttribute(\n domElement,\n value,\n \"spellcheck\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"draggable\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n hydrateBooleanishAttribute(\n domElement,\n value,\n value,\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n hydrateBooleanAttribute(\n domElement,\n value,\n value.toLowerCase(),\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"capture\":\n case \"download\":\n a: {\n i = domElement;\n var attributeName = (attributes = value),\n serverDifferences$jscomp$0 = serverDifferences;\n extraAttributes.delete(attributeName);\n i = i.getAttribute(attributeName);\n if (null === i)\n switch (typeof propKey) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n break a;\n default:\n if (!1 === propKey) break a;\n }\n else if (null != propKey)\n switch (typeof propKey) {\n case \"function\":\n case \"symbol\":\n break;\n case \"boolean\":\n if (!0 === propKey && \"\" === i) break a;\n break;\n default:\n if (\n (checkAttributeStringCoercion(propKey, attributes),\n i === \"\" + propKey)\n )\n break a;\n }\n warnForPropDifference(\n attributes,\n i,\n propKey,\n serverDifferences$jscomp$0\n );\n }\n continue;\n case \"cols\":\n case \"rows\":\n case \"size\":\n case \"span\":\n a: {\n i = domElement;\n attributeName = attributes = value;\n serverDifferences$jscomp$0 = serverDifferences;\n extraAttributes.delete(attributeName);\n i = i.getAttribute(attributeName);\n if (null === i)\n switch (typeof propKey) {\n case \"undefined\":\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n break a;\n default:\n if (isNaN(propKey) || 1 > propKey) break a;\n }\n else if (null != propKey)\n switch (typeof propKey) {\n case \"function\":\n case \"symbol\":\n case \"boolean\":\n break;\n default:\n if (\n !(isNaN(propKey) || 1 > propKey) &&\n (checkAttributeStringCoercion(propKey, attributes),\n i === \"\" + propKey)\n )\n break a;\n }\n warnForPropDifference(\n attributes,\n i,\n propKey,\n serverDifferences$jscomp$0\n );\n }\n continue;\n case \"rowSpan\":\n hydrateNumericAttribute(\n domElement,\n value,\n \"rowspan\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"start\":\n hydrateNumericAttribute(\n domElement,\n value,\n value,\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xHeight\":\n hydrateAttribute(\n domElement,\n value,\n \"x-height\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkActuate\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:actuate\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkArcrole\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:arcrole\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkRole\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:role\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkShow\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:show\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkTitle\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:title\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xlinkType\":\n hydrateAttribute(\n domElement,\n value,\n \"xlink:type\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xmlBase\":\n hydrateAttribute(\n domElement,\n value,\n \"xml:base\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xmlLang\":\n hydrateAttribute(\n domElement,\n value,\n \"xml:lang\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"xmlSpace\":\n hydrateAttribute(\n domElement,\n value,\n \"xml:space\",\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n case \"inert\":\n \"\" !== propKey ||\n didWarnForNewBooleanPropsWithEmptyValue[value] ||\n ((didWarnForNewBooleanPropsWithEmptyValue[value] = !0),\n console.error(\n \"Received an empty string for a boolean attribute `%s`. This will treat the attribute as if it were false. Either pass `false` to silence this warning, or pass `true` if you used an empty string in earlier versions of React to indicate this attribute is true.\",\n value\n ));\n hydrateBooleanAttribute(\n domElement,\n value,\n value,\n propKey,\n extraAttributes,\n serverDifferences\n );\n continue;\n default:\n if (\n !(2 < value.length) ||\n (\"o\" !== value[0] && \"O\" !== value[0]) ||\n (\"n\" !== value[1] && \"N\" !== value[1])\n ) {\n i = getAttributeAlias(value);\n attributes = !1;\n hostContext.context === HostContextNamespaceNone &&\n \"svg\" !== tag &&\n \"math\" !== tag\n ? extraAttributes.delete(i.toLowerCase())\n : ((attributeName = value.toLowerCase()),\n (attributeName = possibleStandardNames.hasOwnProperty(\n attributeName\n )\n ? possibleStandardNames[attributeName] || null\n : null),\n null !== attributeName &&\n attributeName !== value &&\n ((attributes = !0),\n extraAttributes.delete(attributeName)),\n extraAttributes.delete(i));\n a: if (\n ((attributeName = domElement),\n (serverDifferences$jscomp$0 = i),\n (i = propKey),\n isAttributeNameSafe(serverDifferences$jscomp$0))\n )\n if (\n attributeName.hasAttribute(serverDifferences$jscomp$0)\n )\n (attributeName = attributeName.getAttribute(\n serverDifferences$jscomp$0\n )),\n checkAttributeStringCoercion(\n i,\n serverDifferences$jscomp$0\n ),\n (i = attributeName === \"\" + i ? i : attributeName);\n else {\n switch (typeof i) {\n case \"function\":\n case \"symbol\":\n break a;\n case \"boolean\":\n if (\n ((attributeName = serverDifferences$jscomp$0\n .toLowerCase()\n .slice(0, 5)),\n \"data-\" !== attributeName &&\n \"aria-\" !== attributeName)\n )\n break a;\n }\n i = void 0 === i ? void 0 : null;\n }\n else i = void 0;\n attributes ||\n warnForPropDifference(\n value,\n i,\n propKey,\n serverDifferences\n );\n }\n }\n 0 < extraAttributes.size &&\n !0 !== props.suppressHydrationWarning &&\n warnForExtraAttributes(domElement, extraAttributes, serverDifferences);\n return 0 === Object.keys(serverDifferences).length\n ? null\n : serverDifferences;\n }\n function propNamesListJoin(list, combinator) {\n switch (list.length) {\n case 0:\n return \"\";\n case 1:\n return list[0];\n case 2:\n return list[0] + \" \" + combinator + \" \" + list[1];\n default:\n return (\n list.slice(0, -1).join(\", \") +\n \", \" +\n combinator +\n \" \" +\n list[list.length - 1]\n );\n }\n }\n function isLikelyStaticResource(initiatorType) {\n switch (initiatorType) {\n case \"css\":\n case \"script\":\n case \"font\":\n case \"img\":\n case \"image\":\n case \"input\":\n case \"link\":\n return !0;\n default:\n return !1;\n }\n }\n function estimateBandwidth() {\n if (\"function\" === typeof performance.getEntriesByType) {\n for (\n var count = 0,\n bits = 0,\n resourceEntries = performance.getEntriesByType(\"resource\"),\n i = 0;\n i < resourceEntries.length;\n i++\n ) {\n var entry = resourceEntries[i],\n transferSize = entry.transferSize,\n initiatorType = entry.initiatorType,\n duration = entry.duration;\n if (\n transferSize &&\n duration &&\n isLikelyStaticResource(initiatorType)\n ) {\n initiatorType = 0;\n duration = entry.responseEnd;\n for (i += 1; i < resourceEntries.length; i++) {\n var overlapEntry = resourceEntries[i],\n overlapStartTime = overlapEntry.startTime;\n if (overlapStartTime > duration) break;\n var overlapTransferSize = overlapEntry.transferSize,\n overlapInitiatorType = overlapEntry.initiatorType;\n overlapTransferSize &&\n isLikelyStaticResource(overlapInitiatorType) &&\n ((overlapEntry = overlapEntry.responseEnd),\n (initiatorType +=\n overlapTransferSize *\n (overlapEntry < duration\n ? 1\n : (duration - overlapStartTime) /\n (overlapEntry - overlapStartTime))));\n }\n --i;\n bits +=\n (8 * (transferSize + initiatorType)) / (entry.duration / 1e3);\n count++;\n if (10 < count) break;\n }\n }\n if (0 < count) return bits / count / 1e6;\n }\n return navigator.connection &&\n ((count = navigator.connection.downlink), \"number\" === typeof count)\n ? count\n : 5;\n }\n function getOwnerDocumentFromRootContainer(rootContainerElement) {\n return 9 === rootContainerElement.nodeType\n ? rootContainerElement\n : rootContainerElement.ownerDocument;\n }\n function getOwnHostContext(namespaceURI) {\n switch (namespaceURI) {\n case SVG_NAMESPACE:\n return HostContextNamespaceSvg;\n case MATH_NAMESPACE:\n return HostContextNamespaceMath;\n default:\n return HostContextNamespaceNone;\n }\n }\n function getChildHostContextProd(parentNamespace, type) {\n if (parentNamespace === HostContextNamespaceNone)\n switch (type) {\n case \"svg\":\n return HostContextNamespaceSvg;\n case \"math\":\n return HostContextNamespaceMath;\n default:\n return HostContextNamespaceNone;\n }\n return parentNamespace === HostContextNamespaceSvg &&\n \"foreignObject\" === type\n ? HostContextNamespaceNone\n : parentNamespace;\n }\n function shouldSetTextContent(type, props) {\n return (\n \"textarea\" === type ||\n \"noscript\" === type ||\n \"string\" === typeof props.children ||\n \"number\" === typeof props.children ||\n \"bigint\" === typeof props.children ||\n (\"object\" === typeof props.dangerouslySetInnerHTML &&\n null !== props.dangerouslySetInnerHTML &&\n null != props.dangerouslySetInnerHTML.__html)\n );\n }\n function shouldAttemptEagerTransition() {\n var event = window.event;\n if (event && \"popstate\" === event.type) {\n if (event === currentPopstateTransitionEvent) return !1;\n currentPopstateTransitionEvent = event;\n return !0;\n }\n currentPopstateTransitionEvent = null;\n return !1;\n }\n function resolveEventType() {\n var event = window.event;\n return event && event !== schedulerEvent ? event.type : null;\n }\n function resolveEventTimeStamp() {\n var event = window.event;\n return event && event !== schedulerEvent ? event.timeStamp : -1.1;\n }\n function handleErrorInNextTick(error) {\n setTimeout(function () {\n throw error;\n });\n }\n function commitMount(domElement, type, newProps) {\n switch (type) {\n case \"button\":\n case \"input\":\n case \"select\":\n case \"textarea\":\n newProps.autoFocus && domElement.focus();\n break;\n case \"img\":\n newProps.src\n ? (domElement.src = newProps.src)\n : newProps.srcSet && (domElement.srcset = newProps.srcSet);\n }\n }\n function commitHydratedInstance() {}\n function commitUpdate(domElement, type, oldProps, newProps) {\n updateProperties(domElement, type, oldProps, newProps);\n domElement[internalPropsKey] = newProps;\n }\n function resetTextContent(domElement) {\n setTextContent(domElement, \"\");\n }\n function commitTextUpdate(textInstance, oldText, newText) {\n textInstance.nodeValue = newText;\n }\n function warnForReactChildrenConflict(container) {\n if (!container.__reactWarnedAboutChildrenConflict) {\n var props = container[internalPropsKey] || null;\n if (null !== props) {\n var fiber = getInstanceFromNode(container);\n null !== fiber &&\n (\"string\" === typeof props.children ||\n \"number\" === typeof props.children\n ? ((container.__reactWarnedAboutChildrenConflict = !0),\n runWithFiberInDEV(fiber, function () {\n console.error(\n 'Cannot use a ref on a React element as a container to `createRoot` or `createPortal` if that element also sets \"children\" text content using React. It should be a leaf with no children. Otherwise it\\'s ambiguous which children should be used.'\n );\n }))\n : null != props.dangerouslySetInnerHTML &&\n ((container.__reactWarnedAboutChildrenConflict = !0),\n runWithFiberInDEV(fiber, function () {\n console.error(\n 'Cannot use a ref on a React element as a container to `createRoot` or `createPortal` if that element also sets \"dangerouslySetInnerHTML\" using React. It should be a leaf with no children. Otherwise it\\'s ambiguous which children should be used.'\n );\n })));\n }\n }\n }\n function isSingletonScope(type) {\n return \"head\" === type;\n }\n function removeChild(parentInstance, child) {\n parentInstance.removeChild(child);\n }\n function removeChildFromContainer(container, child) {\n (9 === container.nodeType\n ? container.body\n : \"HTML\" === container.nodeName\n ? container.ownerDocument.body\n : container\n ).removeChild(child);\n }\n function clearHydrationBoundary(parentInstance, hydrationInstance) {\n var node = hydrationInstance,\n depth = 0;\n do {\n var nextNode = node.nextSibling;\n parentInstance.removeChild(node);\n if (nextNode && 8 === nextNode.nodeType)\n if (\n ((node = nextNode.data),\n node === SUSPENSE_END_DATA || node === ACTIVITY_END_DATA)\n ) {\n if (0 === depth) {\n parentInstance.removeChild(nextNode);\n retryIfBlockedOn(hydrationInstance);\n return;\n }\n depth--;\n } else if (\n node === SUSPENSE_START_DATA ||\n node === SUSPENSE_PENDING_START_DATA ||\n node === SUSPENSE_QUEUED_START_DATA ||\n node === SUSPENSE_FALLBACK_START_DATA ||\n node === ACTIVITY_START_DATA\n )\n depth++;\n else if (node === PREAMBLE_CONTRIBUTION_HTML)\n releaseSingletonInstance(\n parentInstance.ownerDocument.documentElement\n );\n else if (node === PREAMBLE_CONTRIBUTION_HEAD) {\n node = parentInstance.ownerDocument.head;\n releaseSingletonInstance(node);\n for (var node$jscomp$0 = node.firstChild; node$jscomp$0; ) {\n var nextNode$jscomp$0 = node$jscomp$0.nextSibling,\n nodeName = node$jscomp$0.nodeName;\n node$jscomp$0[internalHoistableMarker] ||\n \"SCRIPT\" === nodeName ||\n \"STYLE\" === nodeName ||\n (\"LINK\" === nodeName &&\n \"stylesheet\" === node$jscomp$0.rel.toLowerCase()) ||\n node.removeChild(node$jscomp$0);\n node$jscomp$0 = nextNode$jscomp$0;\n }\n } else\n node === PREAMBLE_CONTRIBUTION_BODY &&\n releaseSingletonInstance(parentInstance.ownerDocument.body);\n node = nextNode;\n } while (node);\n retryIfBlockedOn(hydrationInstance);\n }\n function hideOrUnhideDehydratedBoundary(suspenseInstance, isHidden) {\n var node = suspenseInstance;\n suspenseInstance = 0;\n do {\n var nextNode = node.nextSibling;\n 1 === node.nodeType\n ? isHidden\n ? ((node._stashedDisplay = node.style.display),\n (node.style.display = \"none\"))\n : ((node.style.display = node._stashedDisplay || \"\"),\n \"\" === node.getAttribute(\"style\") &&\n node.removeAttribute(\"style\"))\n : 3 === node.nodeType &&\n (isHidden\n ? ((node._stashedText = node.nodeValue), (node.nodeValue = \"\"))\n : (node.nodeValue = node._stashedText || \"\"));\n if (nextNode && 8 === nextNode.nodeType)\n if (((node = nextNode.data), node === SUSPENSE_END_DATA))\n if (0 === suspenseInstance) break;\n else suspenseInstance--;\n else\n (node !== SUSPENSE_START_DATA &&\n node !== SUSPENSE_PENDING_START_DATA &&\n node !== SUSPENSE_QUEUED_START_DATA &&\n node !== SUSPENSE_FALLBACK_START_DATA) ||\n suspenseInstance++;\n node = nextNode;\n } while (node);\n }\n function hideDehydratedBoundary(suspenseInstance) {\n hideOrUnhideDehydratedBoundary(suspenseInstance, !0);\n }\n function hideInstance(instance) {\n instance = instance.style;\n \"function\" === typeof instance.setProperty\n ? instance.setProperty(\"display\", \"none\", \"important\")\n : (instance.display = \"none\");\n }\n function hideTextInstance(textInstance) {\n textInstance.nodeValue = \"\";\n }\n function unhideDehydratedBoundary(dehydratedInstance) {\n hideOrUnhideDehydratedBoundary(dehydratedInstance, !1);\n }\n function unhideInstance(instance, props) {\n props = props[STYLE];\n props =\n void 0 !== props && null !== props && props.hasOwnProperty(\"display\")\n ? props.display\n : null;\n instance.style.display =\n null == props || \"boolean\" === typeof props ? \"\" : (\"\" + props).trim();\n }\n function unhideTextInstance(textInstance, text) {\n textInstance.nodeValue = text;\n }\n function clearContainerSparingly(container) {\n var nextNode = container.firstChild;\n nextNode && 10 === nextNode.nodeType && (nextNode = nextNode.nextSibling);\n for (; nextNode; ) {\n var node = nextNode;\n nextNode = nextNode.nextSibling;\n switch (node.nodeName) {\n case \"HTML\":\n case \"HEAD\":\n case \"BODY\":\n clearContainerSparingly(node);\n detachDeletedInstance(node);\n continue;\n case \"SCRIPT\":\n case \"STYLE\":\n continue;\n case \"LINK\":\n if (\"stylesheet\" === node.rel.toLowerCase()) continue;\n }\n container.removeChild(node);\n }\n }\n function canHydrateInstance(instance, type, props, inRootOrSingleton) {\n for (; 1 === instance.nodeType; ) {\n var anyProps = props;\n if (instance.nodeName.toLowerCase() !== type.toLowerCase()) {\n if (\n !inRootOrSingleton &&\n (\"INPUT\" !== instance.nodeName || \"hidden\" !== instance.type)\n )\n break;\n } else if (!inRootOrSingleton)\n if (\"input\" === type && \"hidden\" === instance.type) {\n checkAttributeStringCoercion(anyProps.name, \"name\");\n var name = null == anyProps.name ? null : \"\" + anyProps.name;\n if (\n \"hidden\" === anyProps.type &&\n instance.getAttribute(\"name\") === name\n )\n return instance;\n } else return instance;\n else if (!instance[internalHoistableMarker])\n switch (type) {\n case \"meta\":\n if (!instance.hasAttribute(\"itemprop\")) break;\n return instance;\n case \"link\":\n name = instance.getAttribute(\"rel\");\n if (\n \"stylesheet\" === name &&\n instance.hasAttribute(\"data-precedence\")\n )\n break;\n else if (\n name !== anyProps.rel ||\n instance.getAttribute(\"href\") !==\n (null == anyProps.href || \"\" === anyProps.href\n ? null\n : anyProps.href) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin\n ? null\n : anyProps.crossOrigin) ||\n instance.getAttribute(\"title\") !==\n (null == anyProps.title ? null : anyProps.title)\n )\n break;\n return instance;\n case \"style\":\n if (instance.hasAttribute(\"data-precedence\")) break;\n return instance;\n case \"script\":\n name = instance.getAttribute(\"src\");\n if (\n (name !== (null == anyProps.src ? null : anyProps.src) ||\n instance.getAttribute(\"type\") !==\n (null == anyProps.type ? null : anyProps.type) ||\n instance.getAttribute(\"crossorigin\") !==\n (null == anyProps.crossOrigin\n ? null\n : anyProps.crossOrigin)) &&\n name &&\n instance.hasAttribute(\"async\") &&\n !instance.hasAttribute(\"itemprop\")\n )\n break;\n return instance;\n default:\n return instance;\n }\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) break;\n }\n return null;\n }\n function canHydrateTextInstance(instance, text, inRootOrSingleton) {\n if (\"\" === text) return null;\n for (; 3 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n }\n function canHydrateHydrationBoundary(instance, inRootOrSingleton) {\n for (; 8 !== instance.nodeType; ) {\n if (\n (1 !== instance.nodeType ||\n \"INPUT\" !== instance.nodeName ||\n \"hidden\" !== instance.type) &&\n !inRootOrSingleton\n )\n return null;\n instance = getNextHydratable(instance.nextSibling);\n if (null === instance) return null;\n }\n return instance;\n }\n function isSuspenseInstancePending(instance) {\n return (\n instance.data === SUSPENSE_PENDING_START_DATA ||\n instance.data === SUSPENSE_QUEUED_START_DATA\n );\n }\n function isSuspenseInstanceFallback(instance) {\n return (\n instance.data === SUSPENSE_FALLBACK_START_DATA ||\n (instance.data === SUSPENSE_PENDING_START_DATA &&\n instance.ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING)\n );\n }\n function registerSuspenseInstanceRetry(instance, callback) {\n var ownerDocument = instance.ownerDocument;\n if (instance.data === SUSPENSE_QUEUED_START_DATA)\n instance._reactRetry = callback;\n else if (\n instance.data !== SUSPENSE_PENDING_START_DATA ||\n ownerDocument.readyState !== DOCUMENT_READY_STATE_LOADING\n )\n callback();\n else {\n var listener = function () {\n callback();\n ownerDocument.removeEventListener(\"DOMContentLoaded\", listener);\n };\n ownerDocument.addEventListener(\"DOMContentLoaded\", listener);\n instance._reactRetry = listener;\n }\n }\n function getNextHydratable(node) {\n for (; null != node; node = node.nextSibling) {\n var nodeType = node.nodeType;\n if (1 === nodeType || 3 === nodeType) break;\n if (8 === nodeType) {\n nodeType = node.data;\n if (\n nodeType === SUSPENSE_START_DATA ||\n nodeType === SUSPENSE_FALLBACK_START_DATA ||\n nodeType === SUSPENSE_PENDING_START_DATA ||\n nodeType === SUSPENSE_QUEUED_START_DATA ||\n nodeType === ACTIVITY_START_DATA ||\n nodeType === FORM_STATE_IS_MATCHING ||\n nodeType === FORM_STATE_IS_NOT_MATCHING\n )\n break;\n if (nodeType === SUSPENSE_END_DATA || nodeType === ACTIVITY_END_DATA)\n return null;\n }\n }\n return node;\n }\n function describeHydratableInstanceForDevWarnings(instance) {\n if (1 === instance.nodeType) {\n for (\n var JSCompiler_temp_const = instance.nodeName.toLowerCase(),\n serverDifferences = {},\n attributes = instance.attributes,\n i = 0;\n i < attributes.length;\n i++\n ) {\n var attr = attributes[i];\n serverDifferences[getPropNameFromAttributeName(attr.name)] =\n \"style\" === attr.name.toLowerCase()\n ? getStylesObjectFromElement(instance)\n : attr.value;\n }\n return { type: JSCompiler_temp_const, props: serverDifferences };\n }\n return 8 === instance.nodeType\n ? instance.data === ACTIVITY_START_DATA\n ? { type: \"Activity\", props: {} }\n : { type: \"Suspense\", props: {} }\n : instance.nodeValue;\n }\n function diffHydratedTextForDevWarnings(textInstance, text, parentProps) {\n return null === parentProps ||\n !0 !== parentProps[SUPPRESS_HYDRATION_WARNING]\n ? (textInstance.nodeValue === text\n ? (textInstance = null)\n : ((text = normalizeMarkupForTextOrAttribute(text)),\n (textInstance =\n normalizeMarkupForTextOrAttribute(textInstance.nodeValue) ===\n text\n ? null\n : textInstance.nodeValue)),\n textInstance)\n : null;\n }\n function getNextHydratableInstanceAfterHydrationBoundary(\n hydrationInstance\n ) {\n hydrationInstance = hydrationInstance.nextSibling;\n for (var depth = 0; hydrationInstance; ) {\n if (8 === hydrationInstance.nodeType) {\n var data = hydrationInstance.data;\n if (data === SUSPENSE_END_DATA || data === ACTIVITY_END_DATA) {\n if (0 === depth)\n return getNextHydratable(hydrationInstance.nextSibling);\n depth--;\n } else\n (data !== SUSPENSE_START_DATA &&\n data !== SUSPENSE_FALLBACK_START_DATA &&\n data !== SUSPENSE_PENDING_START_DATA &&\n data !== SUSPENSE_QUEUED_START_DATA &&\n data !== ACTIVITY_START_DATA) ||\n depth++;\n }\n hydrationInstance = hydrationInstance.nextSibling;\n }\n return null;\n }\n function getParentHydrationBoundary(targetInstance) {\n targetInstance = targetInstance.previousSibling;\n for (var depth = 0; targetInstance; ) {\n if (8 === targetInstance.nodeType) {\n var data = targetInstance.data;\n if (\n data === SUSPENSE_START_DATA ||\n data === SUSPENSE_FALLBACK_START_DATA ||\n data === SUSPENSE_PENDING_START_DATA ||\n data === SUSPENSE_QUEUED_START_DATA ||\n data === ACTIVITY_START_DATA\n ) {\n if (0 === depth) return targetInstance;\n depth--;\n } else\n (data !== SUSPENSE_END_DATA && data !== ACTIVITY_END_DATA) ||\n depth++;\n }\n targetInstance = targetInstance.previousSibling;\n }\n return null;\n }\n function commitHydratedContainer(container) {\n retryIfBlockedOn(container);\n }\n function commitHydratedActivityInstance(activityInstance) {\n retryIfBlockedOn(activityInstance);\n }\n function commitHydratedSuspenseInstance(suspenseInstance) {\n retryIfBlockedOn(suspenseInstance);\n }\n function resolveSingletonInstance(\n type,\n props,\n rootContainerInstance,\n hostContext,\n validateDOMNestingDev\n ) {\n validateDOMNestingDev &&\n validateDOMNesting(type, hostContext.ancestorInfo);\n props = getOwnerDocumentFromRootContainer(rootContainerInstance);\n switch (type) {\n case \"html\":\n type = props.documentElement;\n if (!type)\n throw Error(\n \"React expected an <html> element (document.documentElement) to exist in the Document but one was not found. React never removes the documentElement for any Document it renders into so the cause is likely in some other script running on this page.\"\n );\n return type;\n case \"head\":\n type = props.head;\n if (!type)\n throw Error(\n \"React expected a <head> element (document.head) to exist in the Document but one was not found. React never removes the head for any Document it renders into so the cause is likely in some other script running on this page.\"\n );\n return type;\n case \"body\":\n type = props.body;\n if (!type)\n throw Error(\n \"React expected a <body> element (document.body) to exist in the Document but one was not found. React never removes the body for any Document it renders into so the cause is likely in some other script running on this page.\"\n );\n return type;\n default:\n throw Error(\n \"resolveSingletonInstance was called with an element type that is not supported. This is a bug in React.\"\n );\n }\n }\n function acquireSingletonInstance(\n type,\n props,\n instance,\n internalInstanceHandle\n ) {\n if (\n !instance[internalContainerInstanceKey] &&\n getInstanceFromNode(instance)\n ) {\n var tagName = instance.tagName.toLowerCase();\n console.error(\n \"You are mounting a new %s component when a previous one has not first unmounted. It is an error to render more than one %s component at a time and attributes and children of these components will likely fail in unpredictable ways. Please only render a single instance of <%s> and if you need to mount a new one, ensure any previous ones have unmounted first.\",\n tagName,\n tagName,\n tagName\n );\n }\n switch (type) {\n case \"html\":\n case \"head\":\n case \"body\":\n break;\n default:\n console.error(\n \"acquireSingletonInstance was called with an element type that is not supported. This is a bug in React.\"\n );\n }\n for (tagName = instance.attributes; tagName.length; )\n instance.removeAttributeNode(tagName[0]);\n setInitialProperties(instance, type, props);\n instance[internalInstanceKey] = internalInstanceHandle;\n instance[internalPropsKey] = props;\n }\n function releaseSingletonInstance(instance) {\n for (var attributes = instance.attributes; attributes.length; )\n instance.removeAttributeNode(attributes[0]);\n detachDeletedInstance(instance);\n }\n function getHoistableRoot(container) {\n return \"function\" === typeof container.getRootNode\n ? container.getRootNode()\n : 9 === container.nodeType\n ? container\n : container.ownerDocument;\n }\n function preconnectAs(rel, href, crossOrigin) {\n var ownerDocument = globalDocument;\n if (ownerDocument && \"string\" === typeof href && href) {\n var limitedEscapedHref =\n escapeSelectorAttributeValueInsideDoubleQuotes(href);\n limitedEscapedHref =\n 'link[rel=\"' + rel + '\"][href=\"' + limitedEscapedHref + '\"]';\n \"string\" === typeof crossOrigin &&\n (limitedEscapedHref += '[crossorigin=\"' + crossOrigin + '\"]');\n preconnectsSet.has(limitedEscapedHref) ||\n (preconnectsSet.add(limitedEscapedHref),\n (rel = { rel: rel, crossOrigin: crossOrigin, href: href }),\n null === ownerDocument.querySelector(limitedEscapedHref) &&\n ((href = ownerDocument.createElement(\"link\")),\n setInitialProperties(href, \"link\", rel),\n markNodeAsHoistable(href),\n ownerDocument.head.appendChild(href)));\n }\n }\n function getResource(type, currentProps, pendingProps, currentResource) {\n var resourceRoot = (resourceRoot = rootInstanceStackCursor.current)\n ? getHoistableRoot(resourceRoot)\n : null;\n if (!resourceRoot)\n throw Error(\n '\"resourceRoot\" was expected to exist. This is a bug in React.'\n );\n switch (type) {\n case \"meta\":\n case \"title\":\n return null;\n case \"style\":\n return \"string\" === typeof pendingProps.precedence &&\n \"string\" === typeof pendingProps.href\n ? ((pendingProps = getStyleKey(pendingProps.href)),\n (currentProps =\n getResourcesFromRoot(resourceRoot).hoistableStyles),\n (currentResource = currentProps.get(pendingProps)),\n currentResource ||\n ((currentResource = {\n type: \"style\",\n instance: null,\n count: 0,\n state: null\n }),\n currentProps.set(pendingProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null };\n case \"link\":\n if (\n \"stylesheet\" === pendingProps.rel &&\n \"string\" === typeof pendingProps.href &&\n \"string\" === typeof pendingProps.precedence\n ) {\n type = getStyleKey(pendingProps.href);\n var _styles = getResourcesFromRoot(resourceRoot).hoistableStyles,\n _resource = _styles.get(type);\n if (\n !_resource &&\n ((resourceRoot = resourceRoot.ownerDocument || resourceRoot),\n (_resource = {\n type: \"stylesheet\",\n instance: null,\n count: 0,\n state: { loading: NotLoaded, preload: null }\n }),\n _styles.set(type, _resource),\n (_styles = resourceRoot.querySelector(\n getStylesheetSelectorFromKey(type)\n )) &&\n !_styles._p &&\n ((_resource.instance = _styles),\n (_resource.state.loading = Loaded | Inserted)),\n !preloadPropsMap.has(type))\n ) {\n var preloadProps = {\n rel: \"preload\",\n as: \"style\",\n href: pendingProps.href,\n crossOrigin: pendingProps.crossOrigin,\n integrity: pendingProps.integrity,\n media: pendingProps.media,\n hrefLang: pendingProps.hrefLang,\n referrerPolicy: pendingProps.referrerPolicy\n };\n preloadPropsMap.set(type, preloadProps);\n _styles ||\n preloadStylesheet(\n resourceRoot,\n type,\n preloadProps,\n _resource.state\n );\n }\n if (currentProps && null === currentResource)\n throw (\n ((pendingProps =\n \"\\n\\n - \" +\n describeLinkForResourceErrorDEV(currentProps) +\n \"\\n + \" +\n describeLinkForResourceErrorDEV(pendingProps)),\n Error(\n \"Expected <link> not to update to be updated to a stylesheet with precedence. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key.\" +\n pendingProps\n ))\n );\n return _resource;\n }\n if (currentProps && null !== currentResource)\n throw (\n ((pendingProps =\n \"\\n\\n - \" +\n describeLinkForResourceErrorDEV(currentProps) +\n \"\\n + \" +\n describeLinkForResourceErrorDEV(pendingProps)),\n Error(\n \"Expected stylesheet with precedence to not be updated to a different kind of <link>. Check the `rel`, `href`, and `precedence` props of this component. Alternatively, check whether two different <link> components render in the same slot or share the same key.\" +\n pendingProps\n ))\n );\n return null;\n case \"script\":\n return (\n (currentProps = pendingProps.async),\n (pendingProps = pendingProps.src),\n \"string\" === typeof pendingProps &&\n currentProps &&\n \"function\" !== typeof currentProps &&\n \"symbol\" !== typeof currentProps\n ? ((pendingProps = getScriptKey(pendingProps)),\n (currentProps =\n getResourcesFromRoot(resourceRoot).hoistableScripts),\n (currentResource = currentProps.get(pendingProps)),\n currentResource ||\n ((currentResource = {\n type: \"script\",\n instance: null,\n count: 0,\n state: null\n }),\n currentProps.set(pendingProps, currentResource)),\n currentResource)\n : { type: \"void\", instance: null, count: 0, state: null }\n );\n default:\n throw Error(\n 'getResource encountered a type it did not expect: \"' +\n type +\n '\". this is a bug in React.'\n );\n }\n }\n function describeLinkForResourceErrorDEV(props) {\n var describedProps = 0,\n description = \"<link\";\n \"string\" === typeof props.rel\n ? (describedProps++, (description += ' rel=\"' + props.rel + '\"'))\n : hasOwnProperty.call(props, \"rel\") &&\n (describedProps++,\n (description +=\n ' rel=\"' +\n (null === props.rel ? \"null\" : \"invalid type \" + typeof props.rel) +\n '\"'));\n \"string\" === typeof props.href\n ? (describedProps++, (description += ' href=\"' + props.href + '\"'))\n : hasOwnProperty.call(props, \"href\") &&\n (describedProps++,\n (description +=\n ' href=\"' +\n (null === props.href\n ? \"null\"\n : \"invalid type \" + typeof props.href) +\n '\"'));\n \"string\" === typeof props.precedence\n ? (describedProps++,\n (description += ' precedence=\"' + props.precedence + '\"'))\n : hasOwnProperty.call(props, \"precedence\") &&\n (describedProps++,\n (description +=\n \" precedence={\" +\n (null === props.precedence\n ? \"null\"\n : \"invalid type \" + typeof props.precedence) +\n \"}\"));\n Object.getOwnPropertyNames(props).length > describedProps &&\n (description += \" ...\");\n return description + \" />\";\n }\n function getStyleKey(href) {\n return (\n 'href=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(href) + '\"'\n );\n }\n function getStylesheetSelectorFromKey(key) {\n return 'link[rel=\"stylesheet\"][' + key + \"]\";\n }\n function stylesheetPropsFromRawProps(rawProps) {\n return assign({}, rawProps, {\n \"data-precedence\": rawProps.precedence,\n precedence: null\n });\n }\n function preloadStylesheet(ownerDocument, key, preloadProps, state) {\n ownerDocument.querySelector(\n 'link[rel=\"preload\"][as=\"style\"][' + key + \"]\"\n )\n ? (state.loading = Loaded)\n : ((key = ownerDocument.createElement(\"link\")),\n (state.preload = key),\n key.addEventListener(\"load\", function () {\n return (state.loading |= Loaded);\n }),\n key.addEventListener(\"error\", function () {\n return (state.loading |= Errored);\n }),\n setInitialProperties(key, \"link\", preloadProps),\n markNodeAsHoistable(key),\n ownerDocument.head.appendChild(key));\n }\n function getScriptKey(src) {\n return (\n '[src=\"' + escapeSelectorAttributeValueInsideDoubleQuotes(src) + '\"]'\n );\n }\n function getScriptSelectorFromKey(key) {\n return \"script[async]\" + key;\n }\n function acquireResource(hoistableRoot, resource, props) {\n resource.count++;\n if (null === resource.instance)\n switch (resource.type) {\n case \"style\":\n var instance = hoistableRoot.querySelector(\n 'style[data-href~=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(props.href) +\n '\"]'\n );\n if (instance)\n return (\n (resource.instance = instance),\n markNodeAsHoistable(instance),\n instance\n );\n var styleProps = assign({}, props, {\n \"data-href\": props.href,\n \"data-precedence\": props.precedence,\n href: null,\n precedence: null\n });\n instance = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"style\");\n markNodeAsHoistable(instance);\n setInitialProperties(instance, \"style\", styleProps);\n insertStylesheet(instance, props.precedence, hoistableRoot);\n return (resource.instance = instance);\n case \"stylesheet\":\n styleProps = getStyleKey(props.href);\n var _instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(styleProps)\n );\n if (_instance)\n return (\n (resource.state.loading |= Inserted),\n (resource.instance = _instance),\n markNodeAsHoistable(_instance),\n _instance\n );\n instance = stylesheetPropsFromRawProps(props);\n (styleProps = preloadPropsMap.get(styleProps)) &&\n adoptPreloadPropsForStylesheet(instance, styleProps);\n _instance = (\n hoistableRoot.ownerDocument || hoistableRoot\n ).createElement(\"link\");\n markNodeAsHoistable(_instance);\n var linkInstance = _instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(_instance, \"link\", instance);\n resource.state.loading |= Inserted;\n insertStylesheet(_instance, props.precedence, hoistableRoot);\n return (resource.instance = _instance);\n case \"script\":\n _instance = getScriptKey(props.src);\n if (\n (styleProps = hoistableRoot.querySelector(\n getScriptSelectorFromKey(_instance)\n ))\n )\n return (\n (resource.instance = styleProps),\n markNodeAsHoistable(styleProps),\n styleProps\n );\n instance = props;\n if ((styleProps = preloadPropsMap.get(_instance)))\n (instance = assign({}, props)),\n adoptPreloadPropsForScript(instance, styleProps);\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n styleProps = hoistableRoot.createElement(\"script\");\n markNodeAsHoistable(styleProps);\n setInitialProperties(styleProps, \"link\", instance);\n hoistableRoot.head.appendChild(styleProps);\n return (resource.instance = styleProps);\n case \"void\":\n return null;\n default:\n throw Error(\n 'acquireResource encountered a resource type it did not expect: \"' +\n resource.type +\n '\". this is a bug in React.'\n );\n }\n else\n \"stylesheet\" === resource.type &&\n (resource.state.loading & Inserted) === NotLoaded &&\n ((instance = resource.instance),\n (resource.state.loading |= Inserted),\n insertStylesheet(instance, props.precedence, hoistableRoot));\n return resource.instance;\n }\n function insertStylesheet(instance, precedence, root) {\n for (\n var nodes = root.querySelectorAll(\n 'link[rel=\"stylesheet\"][data-precedence],style[data-precedence]'\n ),\n last = nodes.length ? nodes[nodes.length - 1] : null,\n prior = last,\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (node.dataset.precedence === precedence) prior = node;\n else if (prior !== last) break;\n }\n prior\n ? prior.parentNode.insertBefore(instance, prior.nextSibling)\n : ((precedence = 9 === root.nodeType ? root.head : root),\n precedence.insertBefore(instance, precedence.firstChild));\n }\n function adoptPreloadPropsForStylesheet(stylesheetProps, preloadProps) {\n null == stylesheetProps.crossOrigin &&\n (stylesheetProps.crossOrigin = preloadProps.crossOrigin);\n null == stylesheetProps.referrerPolicy &&\n (stylesheetProps.referrerPolicy = preloadProps.referrerPolicy);\n null == stylesheetProps.title &&\n (stylesheetProps.title = preloadProps.title);\n }\n function adoptPreloadPropsForScript(scriptProps, preloadProps) {\n null == scriptProps.crossOrigin &&\n (scriptProps.crossOrigin = preloadProps.crossOrigin);\n null == scriptProps.referrerPolicy &&\n (scriptProps.referrerPolicy = preloadProps.referrerPolicy);\n null == scriptProps.integrity &&\n (scriptProps.integrity = preloadProps.integrity);\n }\n function getHydratableHoistableCache(type, keyAttribute, ownerDocument) {\n if (null === tagCaches) {\n var cache = new Map();\n var caches = (tagCaches = new Map());\n caches.set(ownerDocument, cache);\n } else\n (caches = tagCaches),\n (cache = caches.get(ownerDocument)),\n cache || ((cache = new Map()), caches.set(ownerDocument, cache));\n if (cache.has(type)) return cache;\n cache.set(type, null);\n ownerDocument = ownerDocument.getElementsByTagName(type);\n for (caches = 0; caches < ownerDocument.length; caches++) {\n var node = ownerDocument[caches];\n if (\n !(\n node[internalHoistableMarker] ||\n node[internalInstanceKey] ||\n (\"link\" === type && \"stylesheet\" === node.getAttribute(\"rel\"))\n ) &&\n node.namespaceURI !== SVG_NAMESPACE\n ) {\n var nodeKey = node.getAttribute(keyAttribute) || \"\";\n nodeKey = type + nodeKey;\n var existing = cache.get(nodeKey);\n existing ? existing.push(node) : cache.set(nodeKey, [node]);\n }\n }\n return cache;\n }\n function mountHoistable(hoistableRoot, type, instance) {\n hoistableRoot = hoistableRoot.ownerDocument || hoistableRoot;\n hoistableRoot.head.insertBefore(\n instance,\n \"title\" === type ? hoistableRoot.querySelector(\"head > title\") : null\n );\n }\n function isHostHoistableType(type, props, hostContext) {\n var outsideHostContainerContext =\n !hostContext.ancestorInfo.containerTagInScope;\n if (\n hostContext.context === HostContextNamespaceSvg ||\n null != props.itemProp\n )\n return (\n !outsideHostContainerContext ||\n null == props.itemProp ||\n (\"meta\" !== type &&\n \"title\" !== type &&\n \"style\" !== type &&\n \"link\" !== type &&\n \"script\" !== type) ||\n console.error(\n \"Cannot render a <%s> outside the main document if it has an `itemProp` prop. `itemProp` suggests the tag belongs to an `itemScope` which can appear anywhere in the DOM. If you were intending for React to hoist this <%s> remove the `itemProp` prop. Otherwise, try moving this tag into the <head> or <body> of the Document.\",\n type,\n type\n ),\n !1\n );\n switch (type) {\n case \"meta\":\n case \"title\":\n return !0;\n case \"style\":\n if (\n \"string\" !== typeof props.precedence ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n ) {\n outsideHostContainerContext &&\n console.error(\n 'Cannot render a <style> outside the main document without knowing its precedence and a unique href key. React can hoist and deduplicate <style> tags if you provide a `precedence` prop along with an `href` prop that does not conflict with the `href` values used in any other hoisted <style> or <link rel=\"stylesheet\" ...> tags. Note that hoisting <style> tags is considered an advanced feature that most will not use directly. Consider moving the <style> tag to the <head> or consider adding a `precedence=\"default\"` and `href=\"some unique resource identifier\"`.'\n );\n break;\n }\n return !0;\n case \"link\":\n if (\n \"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href ||\n props.onLoad ||\n props.onError\n ) {\n if (\n \"stylesheet\" === props.rel &&\n \"string\" === typeof props.precedence\n ) {\n type = props.href;\n var onError = props.onError,\n disabled = props.disabled;\n hostContext = [];\n props.onLoad && hostContext.push(\"`onLoad`\");\n onError && hostContext.push(\"`onError`\");\n null != disabled && hostContext.push(\"`disabled`\");\n onError = propNamesListJoin(hostContext, \"and\");\n onError += 1 === hostContext.length ? \" prop\" : \" props\";\n disabled =\n 1 === hostContext.length ? \"an \" + onError : \"the \" + onError;\n hostContext.length &&\n console.error(\n 'React encountered a <link rel=\"stylesheet\" href=\"%s\" ... /> with a `precedence` prop that also included %s. The presence of loading and error handlers indicates an intent to manage the stylesheet loading state from your from your Component code and React will not hoist or deduplicate this stylesheet. If your intent was to have React hoist and deduplciate this stylesheet using the `precedence` prop remove the %s, otherwise remove the `precedence` prop.',\n type,\n disabled,\n onError\n );\n }\n outsideHostContainerContext &&\n (\"string\" !== typeof props.rel ||\n \"string\" !== typeof props.href ||\n \"\" === props.href\n ? console.error(\n \"Cannot render a <link> outside the main document without a `rel` and `href` prop. Try adding a `rel` and/or `href` prop to this <link> or moving the link into the <head> tag\"\n )\n : (props.onError || props.onLoad) &&\n console.error(\n \"Cannot render a <link> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>.\"\n ));\n break;\n }\n switch (props.rel) {\n case \"stylesheet\":\n return (\n (type = props.precedence),\n (props = props.disabled),\n \"string\" !== typeof type &&\n outsideHostContainerContext &&\n console.error(\n 'Cannot render a <link rel=\"stylesheet\" /> outside the main document without knowing its precedence. Consider adding precedence=\"default\" or moving it into the root <head> tag.'\n ),\n \"string\" === typeof type && null == props\n );\n default:\n return !0;\n }\n case \"script\":\n type =\n props.async &&\n \"function\" !== typeof props.async &&\n \"symbol\" !== typeof props.async;\n if (\n !type ||\n props.onLoad ||\n props.onError ||\n !props.src ||\n \"string\" !== typeof props.src\n ) {\n outsideHostContainerContext &&\n (type\n ? props.onLoad || props.onError\n ? console.error(\n \"Cannot render a <script> with onLoad or onError listeners outside the main document. Try removing onLoad={...} and onError={...} or moving it into the root <head> tag or somewhere in the <body>.\"\n )\n : console.error(\n \"Cannot render a <script> outside the main document without `async={true}` and a non-empty `src` prop. Ensure there is a valid `src` and either make the script async or move it into the root <head> tag or somewhere in the <body>.\"\n )\n : console.error(\n 'Cannot render a sync or defer <script> outside the main document without knowing its order. Try adding async=\"\" or moving it into the root <head> tag.'\n ));\n break;\n }\n return !0;\n case \"noscript\":\n case \"template\":\n outsideHostContainerContext &&\n console.error(\n \"Cannot render <%s> outside the main document. Try moving it into the root <head> tag.\",\n type\n );\n }\n return !1;\n }\n function preloadResource(resource) {\n return \"stylesheet\" === resource.type &&\n (resource.state.loading & Settled) === NotLoaded\n ? !1\n : !0;\n }\n function suspendResource(state, hoistableRoot, resource, props) {\n if (\n \"stylesheet\" === resource.type &&\n (\"string\" !== typeof props.media ||\n !1 !== matchMedia(props.media).matches) &&\n (resource.state.loading & Inserted) === NotLoaded\n ) {\n if (null === resource.instance) {\n var key = getStyleKey(props.href),\n instance = hoistableRoot.querySelector(\n getStylesheetSelectorFromKey(key)\n );\n if (instance) {\n hoistableRoot = instance._p;\n null !== hoistableRoot &&\n \"object\" === typeof hoistableRoot &&\n \"function\" === typeof hoistableRoot.then &&\n (state.count++,\n (state = onUnsuspend.bind(state)),\n hoistableRoot.then(state, state));\n resource.state.loading |= Inserted;\n resource.instance = instance;\n markNodeAsHoistable(instance);\n return;\n }\n instance = hoistableRoot.ownerDocument || hoistableRoot;\n props = stylesheetPropsFromRawProps(props);\n (key = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(props, key);\n instance = instance.createElement(\"link\");\n markNodeAsHoistable(instance);\n var linkInstance = instance;\n linkInstance._p = new Promise(function (resolve, reject) {\n linkInstance.onload = resolve;\n linkInstance.onerror = reject;\n });\n setInitialProperties(instance, \"link\", props);\n resource.instance = instance;\n }\n null === state.stylesheets && (state.stylesheets = new Map());\n state.stylesheets.set(resource, hoistableRoot);\n (hoistableRoot = resource.state.preload) &&\n (resource.state.loading & Settled) === NotLoaded &&\n (state.count++,\n (resource = onUnsuspend.bind(state)),\n hoistableRoot.addEventListener(\"load\", resource),\n hoistableRoot.addEventListener(\"error\", resource));\n }\n }\n function waitForCommitToBeReady(state, timeoutOffset) {\n state.stylesheets &&\n 0 === state.count &&\n insertSuspendedStylesheets(state, state.stylesheets);\n return 0 < state.count || 0 < state.imgCount\n ? function (commit) {\n var stylesheetTimer = setTimeout(function () {\n state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets);\n if (state.unsuspend) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n }, SUSPENSEY_STYLESHEET_TIMEOUT + timeoutOffset);\n 0 < state.imgBytes &&\n 0 === estimatedBytesWithinLimit &&\n (estimatedBytesWithinLimit =\n 125 * estimateBandwidth() * SUSPENSEY_IMAGE_TIME_ESTIMATE);\n var imgTimer = setTimeout(\n function () {\n state.waitingForImages = !1;\n if (\n 0 === state.count &&\n (state.stylesheets &&\n insertSuspendedStylesheets(state, state.stylesheets),\n state.unsuspend)\n ) {\n var unsuspend = state.unsuspend;\n state.unsuspend = null;\n unsuspend();\n }\n },\n (state.imgBytes > estimatedBytesWithinLimit\n ? 50\n : SUSPENSEY_IMAGE_TIMEOUT) + timeoutOffset\n );\n state.unsuspend = commit;\n return function () {\n state.unsuspend = null;\n clearTimeout(stylesheetTimer);\n clearTimeout(imgTimer);\n };\n }\n : null;\n }\n function onUnsuspend() {\n this.count--;\n if (0 === this.count && (0 === this.imgCount || !this.waitingForImages))\n if (this.stylesheets)\n insertSuspendedStylesheets(this, this.stylesheets);\n else if (this.unsuspend) {\n var unsuspend = this.unsuspend;\n this.unsuspend = null;\n unsuspend();\n }\n }\n function insertSuspendedStylesheets(state, resources) {\n state.stylesheets = null;\n null !== state.unsuspend &&\n (state.count++,\n (precedencesByRoot = new Map()),\n resources.forEach(insertStylesheetIntoRoot, state),\n (precedencesByRoot = null),\n onUnsuspend.call(state));\n }\n function insertStylesheetIntoRoot(root, resource) {\n if (!(resource.state.loading & Inserted)) {\n var precedences = precedencesByRoot.get(root);\n if (precedences) var last = precedences.get(LAST_PRECEDENCE);\n else {\n precedences = new Map();\n precedencesByRoot.set(root, precedences);\n for (\n var nodes = root.querySelectorAll(\n \"link[data-precedence],style[data-precedence]\"\n ),\n i = 0;\n i < nodes.length;\n i++\n ) {\n var node = nodes[i];\n if (\n \"LINK\" === node.nodeName ||\n \"not all\" !== node.getAttribute(\"media\")\n )\n precedences.set(node.dataset.precedence, node), (last = node);\n }\n last && precedences.set(LAST_PRECEDENCE, last);\n }\n nodes = resource.instance;\n node = nodes.getAttribute(\"data-precedence\");\n i = precedences.get(node) || last;\n i === last && precedences.set(LAST_PRECEDENCE, nodes);\n precedences.set(node, nodes);\n this.count++;\n last = onUnsuspend.bind(this);\n nodes.addEventListener(\"load\", last);\n nodes.addEventListener(\"error\", last);\n i\n ? i.parentNode.insertBefore(nodes, i.nextSibling)\n : ((root = 9 === root.nodeType ? root.head : root),\n root.insertBefore(nodes, root.firstChild));\n resource.state.loading |= Inserted;\n }\n }\n function FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n ) {\n this.tag = 1;\n this.containerInfo = containerInfo;\n this.pingCache = this.current = this.pendingChildren = null;\n this.timeoutHandle = noTimeout;\n this.callbackNode =\n this.next =\n this.pendingContext =\n this.context =\n this.cancelPendingCommit =\n null;\n this.callbackPriority = 0;\n this.expirationTimes = createLaneMap(-1);\n this.entangledLanes =\n this.shellSuspendCounter =\n this.errorRecoveryDisabledLanes =\n this.expiredLanes =\n this.warmLanes =\n this.pingedLanes =\n this.suspendedLanes =\n this.pendingLanes =\n 0;\n this.entanglements = createLaneMap(0);\n this.hiddenUpdates = createLaneMap(null);\n this.identifierPrefix = identifierPrefix;\n this.onUncaughtError = onUncaughtError;\n this.onCaughtError = onCaughtError;\n this.onRecoverableError = onRecoverableError;\n this.pooledCache = null;\n this.pooledCacheLanes = 0;\n this.formState = formState;\n this.incompleteTransitions = new Map();\n this.passiveEffectDuration = this.effectDuration = -0;\n this.memoizedUpdaters = new Set();\n containerInfo = this.pendingUpdatersLaneMap = [];\n for (tag = 0; 31 > tag; tag++) containerInfo.push(new Set());\n this._debugRootType = hydrate ? \"hydrateRoot()\" : \"createRoot()\";\n }\n function createFiberRoot(\n containerInfo,\n tag,\n hydrate,\n initialChildren,\n hydrationCallbacks,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator\n ) {\n containerInfo = new FiberRootNode(\n containerInfo,\n tag,\n hydrate,\n identifierPrefix,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n onDefaultTransitionIndicator,\n formState\n );\n tag = ConcurrentMode;\n !0 === isStrictMode && (tag |= StrictLegacyMode | StrictEffectsMode);\n tag |= ProfileMode;\n isStrictMode = createFiber(3, null, null, tag);\n containerInfo.current = isStrictMode;\n isStrictMode.stateNode = containerInfo;\n tag = createCache();\n retainCache(tag);\n containerInfo.pooledCache = tag;\n retainCache(tag);\n isStrictMode.memoizedState = {\n element: initialChildren,\n isDehydrated: hydrate,\n cache: tag\n };\n initializeUpdateQueue(isStrictMode);\n return containerInfo;\n }\n function getContextForSubtree(parentComponent) {\n if (!parentComponent) return emptyContextObject;\n parentComponent = emptyContextObject;\n return parentComponent;\n }\n function updateContainerImpl(\n rootFiber,\n lane,\n element,\n container,\n parentComponent,\n callback\n ) {\n if (\n injectedHook &&\n \"function\" === typeof injectedHook.onScheduleFiberRoot\n )\n try {\n injectedHook.onScheduleFiberRoot(rendererID, container, element);\n } catch (err) {\n hasLoggedError ||\n ((hasLoggedError = !0),\n console.error(\n \"React instrumentation encountered an error: %o\",\n err\n ));\n }\n parentComponent = getContextForSubtree(parentComponent);\n null === container.context\n ? (container.context = parentComponent)\n : (container.pendingContext = parentComponent);\n isRendering &&\n null !== current &&\n !didWarnAboutNestedUpdates &&\n ((didWarnAboutNestedUpdates = !0),\n console.error(\n \"Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.\\n\\nCheck the render method of %s.\",\n getComponentNameFromFiber(current) || \"Unknown\"\n ));\n container = createUpdate(lane);\n container.payload = { element: element };\n callback = void 0 === callback ? null : callback;\n null !== callback &&\n (\"function\" !== typeof callback &&\n console.error(\n \"Expected the last optional `callback` argument to be a function. Instead received: %s.\",\n callback\n ),\n (container.callback = callback));\n element = enqueueUpdate(rootFiber, container, lane);\n null !== element &&\n (startUpdateTimerByLane(lane, \"root.render()\", null),\n scheduleUpdateOnFiber(element, rootFiber, lane),\n entangleTransitions(element, rootFiber, lane));\n }\n function markRetryLaneImpl(fiber, retryLane) {\n fiber = fiber.memoizedState;\n if (null !== fiber && null !== fiber.dehydrated) {\n var a = fiber.retryLane;\n fiber.retryLane = 0 !== a && a < retryLane ? a : retryLane;\n }\n }\n function markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n (fiber = fiber.alternate) && markRetryLaneImpl(fiber, retryLane);\n }\n function attemptContinuousHydration(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var root = enqueueConcurrentRenderForLane(fiber, 67108864);\n null !== root && scheduleUpdateOnFiber(root, fiber, 67108864);\n markRetryLaneIfNotHydrated(fiber, 67108864);\n }\n }\n function attemptHydrationAtCurrentPriority(fiber) {\n if (13 === fiber.tag || 31 === fiber.tag) {\n var lane = requestUpdateLane(fiber);\n lane = getBumpedLaneForHydrationByLane(lane);\n var root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n markRetryLaneIfNotHydrated(fiber, lane);\n }\n }\n function getCurrentFiberForDevTools() {\n return current;\n }\n function dispatchDiscreteEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n ) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = DiscreteEventPriority),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n }\n function dispatchContinuousEvent(\n domEventName,\n eventSystemFlags,\n container,\n nativeEvent\n ) {\n var prevTransition = ReactSharedInternals.T;\n ReactSharedInternals.T = null;\n var previousPriority = ReactDOMSharedInternals.p;\n try {\n (ReactDOMSharedInternals.p = ContinuousEventPriority),\n dispatchEvent(domEventName, eventSystemFlags, container, nativeEvent);\n } finally {\n (ReactDOMSharedInternals.p = previousPriority),\n (ReactSharedInternals.T = prevTransition);\n }\n }\n function dispatchEvent(\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n ) {\n if (_enabled) {\n var blockedOn = findInstanceBlockingEvent(nativeEvent);\n if (null === blockedOn)\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n ),\n clearIfContinuousEvent(domEventName, nativeEvent);\n else if (\n queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n )\n nativeEvent.stopPropagation();\n else if (\n (clearIfContinuousEvent(domEventName, nativeEvent),\n eventSystemFlags & 4 &&\n -1 < discreteReplayableEvents.indexOf(domEventName))\n ) {\n for (; null !== blockedOn; ) {\n var fiber = getInstanceFromNode(blockedOn);\n if (null !== fiber)\n switch (fiber.tag) {\n case 3:\n fiber = fiber.stateNode;\n if (fiber.current.memoizedState.isDehydrated) {\n var lanes = getHighestPriorityLanes(fiber.pendingLanes);\n if (0 !== lanes) {\n var root = fiber;\n root.pendingLanes |= 2;\n for (root.entangledLanes |= 2; lanes; ) {\n var lane = 1 << (31 - clz32(lanes));\n root.entanglements[1] |= lane;\n lanes &= ~lane;\n }\n ensureRootIsScheduled(fiber);\n (executionContext & (RenderContext | CommitContext)) ===\n NoContext &&\n ((workInProgressRootRenderTargetTime =\n now$1() + RENDER_TIMEOUT_MS),\n flushSyncWorkAcrossRoots_impl(0, !1));\n }\n }\n break;\n case 31:\n case 13:\n (root = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== root && scheduleUpdateOnFiber(root, fiber, 2),\n flushSyncWork$1(),\n markRetryLaneIfNotHydrated(fiber, 2);\n }\n fiber = findInstanceBlockingEvent(nativeEvent);\n null === fiber &&\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n return_targetInst,\n targetContainer\n );\n if (fiber === blockedOn) break;\n blockedOn = fiber;\n }\n null !== blockedOn && nativeEvent.stopPropagation();\n } else\n dispatchEventForPluginEventSystem(\n domEventName,\n eventSystemFlags,\n nativeEvent,\n null,\n targetContainer\n );\n }\n }\n function findInstanceBlockingEvent(nativeEvent) {\n nativeEvent = getEventTarget(nativeEvent);\n return findInstanceBlockingTarget(nativeEvent);\n }\n function findInstanceBlockingTarget(targetNode) {\n return_targetInst = null;\n targetNode = getClosestInstanceFromNode(targetNode);\n if (null !== targetNode) {\n var nearestMounted = getNearestMountedFiber(targetNode);\n if (null === nearestMounted) targetNode = null;\n else {\n var tag = nearestMounted.tag;\n if (13 === tag) {\n targetNode = getSuspenseInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (31 === tag) {\n targetNode = getActivityInstanceFromFiber(nearestMounted);\n if (null !== targetNode) return targetNode;\n targetNode = null;\n } else if (3 === tag) {\n if (nearestMounted.stateNode.current.memoizedState.isDehydrated)\n return 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n targetNode = null;\n } else nearestMounted !== targetNode && (targetNode = null);\n }\n }\n return_targetInst = targetNode;\n return null;\n }\n function getEventPriority(domEventName) {\n switch (domEventName) {\n case \"beforetoggle\":\n case \"cancel\":\n case \"click\":\n case \"close\":\n case \"contextmenu\":\n case \"copy\":\n case \"cut\":\n case \"auxclick\":\n case \"dblclick\":\n case \"dragend\":\n case \"dragstart\":\n case \"drop\":\n case \"focusin\":\n case \"focusout\":\n case \"input\":\n case \"invalid\":\n case \"keydown\":\n case \"keypress\":\n case \"keyup\":\n case \"mousedown\":\n case \"mouseup\":\n case \"paste\":\n case \"pause\":\n case \"play\":\n case \"pointercancel\":\n case \"pointerdown\":\n case \"pointerup\":\n case \"ratechange\":\n case \"reset\":\n case \"resize\":\n case \"seeked\":\n case \"submit\":\n case \"toggle\":\n case \"touchcancel\":\n case \"touchend\":\n case \"touchstart\":\n case \"volumechange\":\n case \"change\":\n case \"selectionchange\":\n case \"textInput\":\n case \"compositionstart\":\n case \"compositionend\":\n case \"compositionupdate\":\n case \"beforeblur\":\n case \"afterblur\":\n case \"beforeinput\":\n case \"blur\":\n case \"fullscreenchange\":\n case \"focus\":\n case \"hashchange\":\n case \"popstate\":\n case \"select\":\n case \"selectstart\":\n return DiscreteEventPriority;\n case \"drag\":\n case \"dragenter\":\n case \"dragexit\":\n case \"dragleave\":\n case \"dragover\":\n case \"mousemove\":\n case \"mouseout\":\n case \"mouseover\":\n case \"pointermove\":\n case \"pointerout\":\n case \"pointerover\":\n case \"scroll\":\n case \"touchmove\":\n case \"wheel\":\n case \"mouseenter\":\n case \"mouseleave\":\n case \"pointerenter\":\n case \"pointerleave\":\n return ContinuousEventPriority;\n case \"message\":\n switch (getCurrentPriorityLevel()) {\n case ImmediatePriority:\n return DiscreteEventPriority;\n case UserBlockingPriority:\n return ContinuousEventPriority;\n case NormalPriority$1:\n case LowPriority:\n return DefaultEventPriority;\n case IdlePriority:\n return IdleEventPriority;\n default:\n return DefaultEventPriority;\n }\n default:\n return DefaultEventPriority;\n }\n }\n function clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case \"focusin\":\n case \"focusout\":\n queuedFocus = null;\n break;\n case \"dragenter\":\n case \"dragleave\":\n queuedDrag = null;\n break;\n case \"mouseover\":\n case \"mouseout\":\n queuedMouse = null;\n break;\n case \"pointerover\":\n case \"pointerout\":\n queuedPointers.delete(nativeEvent.pointerId);\n break;\n case \"gotpointercapture\":\n case \"lostpointercapture\":\n queuedPointerCaptures.delete(nativeEvent.pointerId);\n }\n }\n function accumulateOrCreateContinuousQueuedReplayableEvent(\n existingQueuedEvent,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n ) {\n if (\n null === existingQueuedEvent ||\n existingQueuedEvent.nativeEvent !== nativeEvent\n )\n return (\n (existingQueuedEvent = {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n }),\n null !== blockedOn &&\n ((blockedOn = getInstanceFromNode(blockedOn)),\n null !== blockedOn && attemptContinuousHydration(blockedOn)),\n existingQueuedEvent\n );\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n blockedOn = existingQueuedEvent.targetContainers;\n null !== targetContainer &&\n -1 === blockedOn.indexOf(targetContainer) &&\n blockedOn.push(targetContainer);\n return existingQueuedEvent;\n }\n function queueIfContinuousEvent(\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n ) {\n switch (domEventName) {\n case \"focusin\":\n return (\n (queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedFocus,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"dragenter\":\n return (\n (queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedDrag,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"mouseover\":\n return (\n (queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedMouse,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )),\n !0\n );\n case \"pointerover\":\n var pointerId = nativeEvent.pointerId;\n queuedPointers.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointers.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n );\n return !0;\n case \"gotpointercapture\":\n return (\n (pointerId = nativeEvent.pointerId),\n queuedPointerCaptures.set(\n pointerId,\n accumulateOrCreateContinuousQueuedReplayableEvent(\n queuedPointerCaptures.get(pointerId) || null,\n blockedOn,\n domEventName,\n eventSystemFlags,\n targetContainer,\n nativeEvent\n )\n ),\n !0\n );\n }\n return !1;\n }\n function attemptExplicitHydrationTarget(queuedTarget) {\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n if (null !== targetInst) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n if (null !== nearestMounted)\n if (((targetInst = nearestMounted.tag), 13 === targetInst)) {\n if (\n ((targetInst = getSuspenseInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (31 === targetInst) {\n if (\n ((targetInst = getActivityInstanceFromFiber(nearestMounted)),\n null !== targetInst)\n ) {\n queuedTarget.blockedOn = targetInst;\n runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n return;\n }\n } else if (\n 3 === targetInst &&\n nearestMounted.stateNode.current.memoizedState.isDehydrated\n ) {\n queuedTarget.blockedOn =\n 3 === nearestMounted.tag\n ? nearestMounted.stateNode.containerInfo\n : null;\n return;\n }\n }\n queuedTarget.blockedOn = null;\n }\n function attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (null !== queuedEvent.blockedOn) return !1;\n for (\n var targetContainers = queuedEvent.targetContainers;\n 0 < targetContainers.length;\n\n ) {\n var nextBlockedOn = findInstanceBlockingEvent(queuedEvent.nativeEvent);\n if (null === nextBlockedOn) {\n nextBlockedOn = queuedEvent.nativeEvent;\n var nativeEventClone = new nextBlockedOn.constructor(\n nextBlockedOn.type,\n nextBlockedOn\n ),\n event = nativeEventClone;\n null !== currentReplayingEvent &&\n console.error(\n \"Expected currently replaying event to be null. This error is likely caused by a bug in React. Please file an issue.\"\n );\n currentReplayingEvent = event;\n nextBlockedOn.target.dispatchEvent(nativeEventClone);\n null === currentReplayingEvent &&\n console.error(\n \"Expected currently replaying event to not be null. This error is likely caused by a bug in React. Please file an issue.\"\n );\n currentReplayingEvent = null;\n } else\n return (\n (targetContainers = getInstanceFromNode(nextBlockedOn)),\n null !== targetContainers &&\n attemptContinuousHydration(targetContainers),\n (queuedEvent.blockedOn = nextBlockedOn),\n !1\n );\n targetContainers.shift();\n }\n return !0;\n }\n function attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n attemptReplayContinuousQueuedEvent(queuedEvent) && map.delete(key);\n }\n function replayUnblockedEvents() {\n hasScheduledReplayAttempt = !1;\n null !== queuedFocus &&\n attemptReplayContinuousQueuedEvent(queuedFocus) &&\n (queuedFocus = null);\n null !== queuedDrag &&\n attemptReplayContinuousQueuedEvent(queuedDrag) &&\n (queuedDrag = null);\n null !== queuedMouse &&\n attemptReplayContinuousQueuedEvent(queuedMouse) &&\n (queuedMouse = null);\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n }\n function scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n queuedEvent.blockedOn === unblocked &&\n ((queuedEvent.blockedOn = null),\n hasScheduledReplayAttempt ||\n ((hasScheduledReplayAttempt = !0),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n replayUnblockedEvents\n )));\n }\n function scheduleReplayQueueIfNeeded(formReplayingQueue) {\n lastScheduledReplayQueue !== formReplayingQueue &&\n ((lastScheduledReplayQueue = formReplayingQueue),\n Scheduler.unstable_scheduleCallback(\n Scheduler.unstable_NormalPriority,\n function () {\n lastScheduledReplayQueue === formReplayingQueue &&\n (lastScheduledReplayQueue = null);\n for (var i = 0; i < formReplayingQueue.length; i += 3) {\n var form = formReplayingQueue[i],\n submitterOrAction = formReplayingQueue[i + 1],\n formData = formReplayingQueue[i + 2];\n if (\"function\" !== typeof submitterOrAction)\n if (\n null === findInstanceBlockingTarget(submitterOrAction || form)\n )\n continue;\n else break;\n var formInst = getInstanceFromNode(form);\n null !== formInst &&\n (formReplayingQueue.splice(i, 3),\n (i -= 3),\n (form = {\n pending: !0,\n data: formData,\n method: form.method,\n action: submitterOrAction\n }),\n Object.freeze(form),\n startHostTransition(\n formInst,\n form,\n submitterOrAction,\n formData\n ));\n }\n }\n ));\n }\n function retryIfBlockedOn(unblocked) {\n function unblock(queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n }\n null !== queuedFocus &&\n scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n null !== queuedDrag && scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n null !== queuedMouse &&\n scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n for (var i = 0; i < queuedExplicitHydrationTargets.length; i++) {\n var queuedTarget = queuedExplicitHydrationTargets[i];\n queuedTarget.blockedOn === unblocked && (queuedTarget.blockedOn = null);\n }\n for (\n ;\n 0 < queuedExplicitHydrationTargets.length &&\n ((i = queuedExplicitHydrationTargets[0]), null === i.blockedOn);\n\n )\n attemptExplicitHydrationTarget(i),\n null === i.blockedOn && queuedExplicitHydrationTargets.shift();\n i = (unblocked.ownerDocument || unblocked).$$reactFormReplay;\n if (null != i)\n for (queuedTarget = 0; queuedTarget < i.length; queuedTarget += 3) {\n var form = i[queuedTarget],\n submitterOrAction = i[queuedTarget + 1],\n formProps = form[internalPropsKey] || null;\n if (\"function\" === typeof submitterOrAction)\n formProps || scheduleReplayQueueIfNeeded(i);\n else if (formProps) {\n var action = null;\n if (\n submitterOrAction &&\n submitterOrAction.hasAttribute(\"formAction\")\n )\n if (\n ((form = submitterOrAction),\n (formProps = submitterOrAction[internalPropsKey] || null))\n )\n action = formProps.formAction;\n else {\n if (null !== findInstanceBlockingTarget(form)) continue;\n }\n else action = formProps.action;\n \"function\" === typeof action\n ? (i[queuedTarget + 1] = action)\n : (i.splice(queuedTarget, 3), (queuedTarget -= 3));\n scheduleReplayQueueIfNeeded(i);\n }\n }\n }\n function defaultOnDefaultTransitionIndicator() {\n function handleNavigate(event) {\n event.canIntercept &&\n \"react-transition\" === event.info &&\n event.intercept({\n handler: function () {\n return new Promise(function (resolve) {\n return (pendingResolve = resolve);\n });\n },\n focusReset: \"manual\",\n scroll: \"manual\"\n });\n }\n function handleNavigateComplete() {\n null !== pendingResolve && (pendingResolve(), (pendingResolve = null));\n isCancelled || setTimeout(startFakeNavigation, 20);\n }\n function startFakeNavigation() {\n if (!isCancelled && !navigation.transition) {\n var currentEntry = navigation.currentEntry;\n currentEntry &&\n null != currentEntry.url &&\n navigation.navigate(currentEntry.url, {\n state: currentEntry.getState(),\n info: \"react-transition\",\n history: \"replace\"\n });\n }\n }\n if (\"object\" === typeof navigation) {\n var isCancelled = !1,\n pendingResolve = null;\n navigation.addEventListener(\"navigate\", handleNavigate);\n navigation.addEventListener(\"navigatesuccess\", handleNavigateComplete);\n navigation.addEventListener(\"navigateerror\", handleNavigateComplete);\n setTimeout(startFakeNavigation, 100);\n return function () {\n isCancelled = !0;\n navigation.removeEventListener(\"navigate\", handleNavigate);\n navigation.removeEventListener(\n \"navigatesuccess\",\n handleNavigateComplete\n );\n navigation.removeEventListener(\n \"navigateerror\",\n handleNavigateComplete\n );\n null !== pendingResolve &&\n (pendingResolve(), (pendingResolve = null));\n };\n }\n }\n function ReactDOMRoot(internalRoot) {\n this._internalRoot = internalRoot;\n }\n function ReactDOMHydrationRoot(internalRoot) {\n this._internalRoot = internalRoot;\n }\n function warnIfReactDOMContainerInDEV(container) {\n container[internalContainerInstanceKey] &&\n (container._reactRootContainer\n ? console.error(\n \"You are calling ReactDOMClient.createRoot() on a container that was previously passed to ReactDOM.render(). This is not supported.\"\n )\n : console.error(\n \"You are calling ReactDOMClient.createRoot() on a container that has already been passed to createRoot() before. Instead, call root.render() on the existing root instead if you want to update it.\"\n ));\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var Scheduler = __webpack_require__(/*! scheduler */ \"./node_modules/scheduler/index.js\"),\n React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\"),\n ReactDOM = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\"),\n assign = Object.assign,\n REACT_LEGACY_ELEMENT_TYPE = Symbol.for(\"react.element\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\");\n Symbol.for(\"react.scope\");\n var REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\");\n Symbol.for(\"react.legacy_hidden\");\n Symbol.for(\"react.tracing_marker\");\n var REACT_MEMO_CACHE_SENTINEL = Symbol.for(\"react.memo_cache_sentinel\");\n Symbol.for(\"react.view_transition\");\n var MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n isArrayImpl = Array.isArray,\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n ReactDOMSharedInternals =\n ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n NotPending = Object.freeze({\n pending: !1,\n data: null,\n method: null,\n action: null\n }),\n valueStack = [];\n var fiberStack = [];\n var index$jscomp$0 = -1,\n contextStackCursor = createCursor(null),\n contextFiberStackCursor = createCursor(null),\n rootInstanceStackCursor = createCursor(null),\n hostTransitionProviderCursor = createCursor(null),\n disabledDepth = 0,\n prevLog,\n prevInfo,\n prevWarn,\n prevError,\n prevGroup,\n prevGroupCollapsed,\n prevGroupEnd;\n disabledLog.__reactDisabledLog = !0;\n var prefix,\n suffix,\n reentry = !1;\n var componentFrameCache = new (\n \"function\" === typeof WeakMap ? WeakMap : Map\n )();\n var current = null,\n isRendering = !1,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n scheduleCallback$3 = Scheduler.unstable_scheduleCallback,\n cancelCallback$1 = Scheduler.unstable_cancelCallback,\n shouldYield = Scheduler.unstable_shouldYield,\n requestPaint = Scheduler.unstable_requestPaint,\n now$1 = Scheduler.unstable_now,\n getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n NormalPriority$1 = Scheduler.unstable_NormalPriority,\n LowPriority = Scheduler.unstable_LowPriority,\n IdlePriority = Scheduler.unstable_IdlePriority,\n log$1 = Scheduler.log,\n unstable_setDisableYieldValue = Scheduler.unstable_setDisableYieldValue,\n rendererID = null,\n injectedHook = null,\n hasLoggedError = !1,\n isDevToolsPresent = \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__,\n clz32 = Math.clz32 ? Math.clz32 : clz32Fallback,\n log = Math.log,\n LN2 = Math.LN2,\n nextTransitionUpdateLane = 256,\n nextTransitionDeferredLane = 262144,\n nextRetryLane = 4194304,\n DiscreteEventPriority = 2,\n ContinuousEventPriority = 8,\n DefaultEventPriority = 32,\n IdleEventPriority = 268435456,\n randomKey = Math.random().toString(36).slice(2),\n internalInstanceKey = \"__reactFiber$\" + randomKey,\n internalPropsKey = \"__reactProps$\" + randomKey,\n internalContainerInstanceKey = \"__reactContainer$\" + randomKey,\n internalEventHandlersKey = \"__reactEvents$\" + randomKey,\n internalEventHandlerListenersKey = \"__reactListeners$\" + randomKey,\n internalEventHandlesSetKey = \"__reactHandles$\" + randomKey,\n internalRootNodeResourcesKey = \"__reactResources$\" + randomKey,\n internalHoistableMarker = \"__reactMarker$\" + randomKey,\n allNativeEvents = new Set(),\n registrationNameDependencies = {},\n possibleRegistrationNames = {},\n hasReadOnlyValue = {\n button: !0,\n checkbox: !0,\n image: !0,\n hidden: !0,\n radio: !0,\n reset: !0,\n submit: !0\n },\n VALID_ATTRIBUTE_NAME_REGEX = RegExp(\n \"^[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n illegalAttributeNameCache = {},\n validatedAttributeNameCache = {},\n escapeSelectorAttributeValueInsideDoubleQuotesRegex = /[\\n\"\\\\]/g,\n didWarnValueDefaultValue$1 = !1,\n didWarnCheckedDefaultChecked = !1,\n didWarnSelectedSetOnOption = !1,\n didWarnInvalidChild = !1,\n didWarnInvalidInnerHTML = !1;\n var didWarnValueDefaultValue = !1;\n var valuePropNames = [\"value\", \"defaultValue\"],\n didWarnValDefaultVal = !1,\n needsEscaping = /[\"'&<>\\n\\t]|^\\s|\\s$/,\n specialTags =\n \"address applet area article aside base basefont bgsound blockquote body br button caption center col colgroup dd details dir div dl dt embed fieldset figcaption figure footer form frame frameset h1 h2 h3 h4 h5 h6 head header hgroup hr html iframe img input isindex li link listing main marquee menu menuitem meta nav noembed noframes noscript object ol p param plaintext pre script section select source style summary table tbody td template textarea tfoot th thead title tr track ul wbr xmp\".split(\n \" \"\n ),\n inScopeTags =\n \"applet caption html table td th marquee object template foreignObject desc title\".split(\n \" \"\n ),\n buttonScopeTags = inScopeTags.concat([\"button\"]),\n impliedEndTags = \"dd dt li option optgroup p rp rt\".split(\" \"),\n emptyAncestorInfoDev = {\n current: null,\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null,\n containerTagInScope: null,\n implicitRootScope: !1\n },\n didWarn = {},\n shorthandToLonghand = {\n animation:\n \"animationDelay animationDirection animationDuration animationFillMode animationIterationCount animationName animationPlayState animationTimingFunction\".split(\n \" \"\n ),\n background:\n \"backgroundAttachment backgroundClip backgroundColor backgroundImage backgroundOrigin backgroundPositionX backgroundPositionY backgroundRepeat backgroundSize\".split(\n \" \"\n ),\n backgroundPosition: [\"backgroundPositionX\", \"backgroundPositionY\"],\n border:\n \"borderBottomColor borderBottomStyle borderBottomWidth borderImageOutset borderImageRepeat borderImageSlice borderImageSource borderImageWidth borderLeftColor borderLeftStyle borderLeftWidth borderRightColor borderRightStyle borderRightWidth borderTopColor borderTopStyle borderTopWidth\".split(\n \" \"\n ),\n borderBlockEnd: [\n \"borderBlockEndColor\",\n \"borderBlockEndStyle\",\n \"borderBlockEndWidth\"\n ],\n borderBlockStart: [\n \"borderBlockStartColor\",\n \"borderBlockStartStyle\",\n \"borderBlockStartWidth\"\n ],\n borderBottom: [\n \"borderBottomColor\",\n \"borderBottomStyle\",\n \"borderBottomWidth\"\n ],\n borderColor: [\n \"borderBottomColor\",\n \"borderLeftColor\",\n \"borderRightColor\",\n \"borderTopColor\"\n ],\n borderImage: [\n \"borderImageOutset\",\n \"borderImageRepeat\",\n \"borderImageSlice\",\n \"borderImageSource\",\n \"borderImageWidth\"\n ],\n borderInlineEnd: [\n \"borderInlineEndColor\",\n \"borderInlineEndStyle\",\n \"borderInlineEndWidth\"\n ],\n borderInlineStart: [\n \"borderInlineStartColor\",\n \"borderInlineStartStyle\",\n \"borderInlineStartWidth\"\n ],\n borderLeft: [\"borderLeftColor\", \"borderLeftStyle\", \"borderLeftWidth\"],\n borderRadius: [\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\"\n ],\n borderRight: [\n \"borderRightColor\",\n \"borderRightStyle\",\n \"borderRightWidth\"\n ],\n borderStyle: [\n \"borderBottomStyle\",\n \"borderLeftStyle\",\n \"borderRightStyle\",\n \"borderTopStyle\"\n ],\n borderTop: [\"borderTopColor\", \"borderTopStyle\", \"borderTopWidth\"],\n borderWidth: [\n \"borderBottomWidth\",\n \"borderLeftWidth\",\n \"borderRightWidth\",\n \"borderTopWidth\"\n ],\n columnRule: [\"columnRuleColor\", \"columnRuleStyle\", \"columnRuleWidth\"],\n columns: [\"columnCount\", \"columnWidth\"],\n flex: [\"flexBasis\", \"flexGrow\", \"flexShrink\"],\n flexFlow: [\"flexDirection\", \"flexWrap\"],\n font: \"fontFamily fontFeatureSettings fontKerning fontLanguageOverride fontSize fontSizeAdjust fontStretch fontStyle fontVariant fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition fontWeight lineHeight\".split(\n \" \"\n ),\n fontVariant:\n \"fontVariantAlternates fontVariantCaps fontVariantEastAsian fontVariantLigatures fontVariantNumeric fontVariantPosition\".split(\n \" \"\n ),\n gap: [\"columnGap\", \"rowGap\"],\n grid: \"gridAutoColumns gridAutoFlow gridAutoRows gridTemplateAreas gridTemplateColumns gridTemplateRows\".split(\n \" \"\n ),\n gridArea: [\n \"gridColumnEnd\",\n \"gridColumnStart\",\n \"gridRowEnd\",\n \"gridRowStart\"\n ],\n gridColumn: [\"gridColumnEnd\", \"gridColumnStart\"],\n gridColumnGap: [\"columnGap\"],\n gridGap: [\"columnGap\", \"rowGap\"],\n gridRow: [\"gridRowEnd\", \"gridRowStart\"],\n gridRowGap: [\"rowGap\"],\n gridTemplate: [\n \"gridTemplateAreas\",\n \"gridTemplateColumns\",\n \"gridTemplateRows\"\n ],\n listStyle: [\"listStyleImage\", \"listStylePosition\", \"listStyleType\"],\n margin: [\"marginBottom\", \"marginLeft\", \"marginRight\", \"marginTop\"],\n marker: [\"markerEnd\", \"markerMid\", \"markerStart\"],\n mask: \"maskClip maskComposite maskImage maskMode maskOrigin maskPositionX maskPositionY maskRepeat maskSize\".split(\n \" \"\n ),\n maskPosition: [\"maskPositionX\", \"maskPositionY\"],\n outline: [\"outlineColor\", \"outlineStyle\", \"outlineWidth\"],\n overflow: [\"overflowX\", \"overflowY\"],\n padding: [\"paddingBottom\", \"paddingLeft\", \"paddingRight\", \"paddingTop\"],\n placeContent: [\"alignContent\", \"justifyContent\"],\n placeItems: [\"alignItems\", \"justifyItems\"],\n placeSelf: [\"alignSelf\", \"justifySelf\"],\n textDecoration: [\n \"textDecorationColor\",\n \"textDecorationLine\",\n \"textDecorationStyle\"\n ],\n textEmphasis: [\"textEmphasisColor\", \"textEmphasisStyle\"],\n transition: [\n \"transitionDelay\",\n \"transitionDuration\",\n \"transitionProperty\",\n \"transitionTimingFunction\"\n ],\n wordWrap: [\"overflowWrap\"]\n },\n uppercasePattern = /([A-Z])/g,\n msPattern$1 = /^ms-/,\n badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/,\n msPattern = /^-ms-/,\n hyphenPattern = /-(.)/g,\n badStyleValueWithSemicolonPattern = /;\\s*$/,\n warnedStyleNames = {},\n warnedStyleValues = {},\n warnedForNaNValue = !1,\n warnedForInfinityValue = !1,\n unitlessNumbers = new Set(\n \"animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp\".split(\n \" \"\n )\n ),\n MATH_NAMESPACE = \"http://www.w3.org/1998/Math/MathML\",\n SVG_NAMESPACE = \"http://www.w3.org/2000/svg\",\n aliases = new Map([\n [\"acceptCharset\", \"accept-charset\"],\n [\"htmlFor\", \"for\"],\n [\"httpEquiv\", \"http-equiv\"],\n [\"crossOrigin\", \"crossorigin\"],\n [\"accentHeight\", \"accent-height\"],\n [\"alignmentBaseline\", \"alignment-baseline\"],\n [\"arabicForm\", \"arabic-form\"],\n [\"baselineShift\", \"baseline-shift\"],\n [\"capHeight\", \"cap-height\"],\n [\"clipPath\", \"clip-path\"],\n [\"clipRule\", \"clip-rule\"],\n [\"colorInterpolation\", \"color-interpolation\"],\n [\"colorInterpolationFilters\", \"color-interpolation-filters\"],\n [\"colorProfile\", \"color-profile\"],\n [\"colorRendering\", \"color-rendering\"],\n [\"dominantBaseline\", \"dominant-baseline\"],\n [\"enableBackground\", \"enable-background\"],\n [\"fillOpacity\", \"fill-opacity\"],\n [\"fillRule\", \"fill-rule\"],\n [\"floodColor\", \"flood-color\"],\n [\"floodOpacity\", \"flood-opacity\"],\n [\"fontFamily\", \"font-family\"],\n [\"fontSize\", \"font-size\"],\n [\"fontSizeAdjust\", \"font-size-adjust\"],\n [\"fontStretch\", \"font-stretch\"],\n [\"fontStyle\", \"font-style\"],\n [\"fontVariant\", \"font-variant\"],\n [\"fontWeight\", \"font-weight\"],\n [\"glyphName\", \"glyph-name\"],\n [\"glyphOrientationHorizontal\", \"glyph-orientation-horizontal\"],\n [\"glyphOrientationVertical\", \"glyph-orientation-vertical\"],\n [\"horizAdvX\", \"horiz-adv-x\"],\n [\"horizOriginX\", \"horiz-origin-x\"],\n [\"imageRendering\", \"image-rendering\"],\n [\"letterSpacing\", \"letter-spacing\"],\n [\"lightingColor\", \"lighting-color\"],\n [\"markerEnd\", \"marker-end\"],\n [\"markerMid\", \"marker-mid\"],\n [\"markerStart\", \"marker-start\"],\n [\"overlinePosition\", \"overline-position\"],\n [\"overlineThickness\", \"overline-thickness\"],\n [\"paintOrder\", \"paint-order\"],\n [\"panose-1\", \"panose-1\"],\n [\"pointerEvents\", \"pointer-events\"],\n [\"renderingIntent\", \"rendering-intent\"],\n [\"shapeRendering\", \"shape-rendering\"],\n [\"stopColor\", \"stop-color\"],\n [\"stopOpacity\", \"stop-opacity\"],\n [\"strikethroughPosition\", \"strikethrough-position\"],\n [\"strikethroughThickness\", \"strikethrough-thickness\"],\n [\"strokeDasharray\", \"stroke-dasharray\"],\n [\"strokeDashoffset\", \"stroke-dashoffset\"],\n [\"strokeLinecap\", \"stroke-linecap\"],\n [\"strokeLinejoin\", \"stroke-linejoin\"],\n [\"strokeMiterlimit\", \"stroke-miterlimit\"],\n [\"strokeOpacity\", \"stroke-opacity\"],\n [\"strokeWidth\", \"stroke-width\"],\n [\"textAnchor\", \"text-anchor\"],\n [\"textDecoration\", \"text-decoration\"],\n [\"textRendering\", \"text-rendering\"],\n [\"transformOrigin\", \"transform-origin\"],\n [\"underlinePosition\", \"underline-position\"],\n [\"underlineThickness\", \"underline-thickness\"],\n [\"unicodeBidi\", \"unicode-bidi\"],\n [\"unicodeRange\", \"unicode-range\"],\n [\"unitsPerEm\", \"units-per-em\"],\n [\"vAlphabetic\", \"v-alphabetic\"],\n [\"vHanging\", \"v-hanging\"],\n [\"vIdeographic\", \"v-ideographic\"],\n [\"vMathematical\", \"v-mathematical\"],\n [\"vectorEffect\", \"vector-effect\"],\n [\"vertAdvY\", \"vert-adv-y\"],\n [\"vertOriginX\", \"vert-origin-x\"],\n [\"vertOriginY\", \"vert-origin-y\"],\n [\"wordSpacing\", \"word-spacing\"],\n [\"writingMode\", \"writing-mode\"],\n [\"xmlnsXlink\", \"xmlns:xlink\"],\n [\"xHeight\", \"x-height\"]\n ]),\n possibleStandardNames = {\n accept: \"accept\",\n acceptcharset: \"acceptCharset\",\n \"accept-charset\": \"acceptCharset\",\n accesskey: \"accessKey\",\n action: \"action\",\n allowfullscreen: \"allowFullScreen\",\n alt: \"alt\",\n as: \"as\",\n async: \"async\",\n autocapitalize: \"autoCapitalize\",\n autocomplete: \"autoComplete\",\n autocorrect: \"autoCorrect\",\n autofocus: \"autoFocus\",\n autoplay: \"autoPlay\",\n autosave: \"autoSave\",\n capture: \"capture\",\n cellpadding: \"cellPadding\",\n cellspacing: \"cellSpacing\",\n challenge: \"challenge\",\n charset: \"charSet\",\n checked: \"checked\",\n children: \"children\",\n cite: \"cite\",\n class: \"className\",\n classid: \"classID\",\n classname: \"className\",\n cols: \"cols\",\n colspan: \"colSpan\",\n content: \"content\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n controls: \"controls\",\n controlslist: \"controlsList\",\n coords: \"coords\",\n crossorigin: \"crossOrigin\",\n dangerouslysetinnerhtml: \"dangerouslySetInnerHTML\",\n data: \"data\",\n datetime: \"dateTime\",\n default: \"default\",\n defaultchecked: \"defaultChecked\",\n defaultvalue: \"defaultValue\",\n defer: \"defer\",\n dir: \"dir\",\n disabled: \"disabled\",\n disablepictureinpicture: \"disablePictureInPicture\",\n disableremoteplayback: \"disableRemotePlayback\",\n download: \"download\",\n draggable: \"draggable\",\n enctype: \"encType\",\n enterkeyhint: \"enterKeyHint\",\n fetchpriority: \"fetchPriority\",\n for: \"htmlFor\",\n form: \"form\",\n formmethod: \"formMethod\",\n formaction: \"formAction\",\n formenctype: \"formEncType\",\n formnovalidate: \"formNoValidate\",\n formtarget: \"formTarget\",\n frameborder: \"frameBorder\",\n headers: \"headers\",\n height: \"height\",\n hidden: \"hidden\",\n high: \"high\",\n href: \"href\",\n hreflang: \"hrefLang\",\n htmlfor: \"htmlFor\",\n httpequiv: \"httpEquiv\",\n \"http-equiv\": \"httpEquiv\",\n icon: \"icon\",\n id: \"id\",\n imagesizes: \"imageSizes\",\n imagesrcset: \"imageSrcSet\",\n inert: \"inert\",\n innerhtml: \"innerHTML\",\n inputmode: \"inputMode\",\n integrity: \"integrity\",\n is: \"is\",\n itemid: \"itemID\",\n itemprop: \"itemProp\",\n itemref: \"itemRef\",\n itemscope: \"itemScope\",\n itemtype: \"itemType\",\n keyparams: \"keyParams\",\n keytype: \"keyType\",\n kind: \"kind\",\n label: \"label\",\n lang: \"lang\",\n list: \"list\",\n loop: \"loop\",\n low: \"low\",\n manifest: \"manifest\",\n marginwidth: \"marginWidth\",\n marginheight: \"marginHeight\",\n max: \"max\",\n maxlength: \"maxLength\",\n media: \"media\",\n mediagroup: \"mediaGroup\",\n method: \"method\",\n min: \"min\",\n minlength: \"minLength\",\n multiple: \"multiple\",\n muted: \"muted\",\n name: \"name\",\n nomodule: \"noModule\",\n nonce: \"nonce\",\n novalidate: \"noValidate\",\n open: \"open\",\n optimum: \"optimum\",\n pattern: \"pattern\",\n placeholder: \"placeholder\",\n playsinline: \"playsInline\",\n poster: \"poster\",\n preload: \"preload\",\n profile: \"profile\",\n radiogroup: \"radioGroup\",\n readonly: \"readOnly\",\n referrerpolicy: \"referrerPolicy\",\n rel: \"rel\",\n required: \"required\",\n reversed: \"reversed\",\n role: \"role\",\n rows: \"rows\",\n rowspan: \"rowSpan\",\n sandbox: \"sandbox\",\n scope: \"scope\",\n scoped: \"scoped\",\n scrolling: \"scrolling\",\n seamless: \"seamless\",\n selected: \"selected\",\n shape: \"shape\",\n size: \"size\",\n sizes: \"sizes\",\n span: \"span\",\n spellcheck: \"spellCheck\",\n src: \"src\",\n srcdoc: \"srcDoc\",\n srclang: \"srcLang\",\n srcset: \"srcSet\",\n start: \"start\",\n step: \"step\",\n style: \"style\",\n summary: \"summary\",\n tabindex: \"tabIndex\",\n target: \"target\",\n title: \"title\",\n type: \"type\",\n usemap: \"useMap\",\n value: \"value\",\n width: \"width\",\n wmode: \"wmode\",\n wrap: \"wrap\",\n about: \"about\",\n accentheight: \"accentHeight\",\n \"accent-height\": \"accentHeight\",\n accumulate: \"accumulate\",\n additive: \"additive\",\n alignmentbaseline: \"alignmentBaseline\",\n \"alignment-baseline\": \"alignmentBaseline\",\n allowreorder: \"allowReorder\",\n alphabetic: \"alphabetic\",\n amplitude: \"amplitude\",\n arabicform: \"arabicForm\",\n \"arabic-form\": \"arabicForm\",\n ascent: \"ascent\",\n attributename: \"attributeName\",\n attributetype: \"attributeType\",\n autoreverse: \"autoReverse\",\n azimuth: \"azimuth\",\n basefrequency: \"baseFrequency\",\n baselineshift: \"baselineShift\",\n \"baseline-shift\": \"baselineShift\",\n baseprofile: \"baseProfile\",\n bbox: \"bbox\",\n begin: \"begin\",\n bias: \"bias\",\n by: \"by\",\n calcmode: \"calcMode\",\n capheight: \"capHeight\",\n \"cap-height\": \"capHeight\",\n clip: \"clip\",\n clippath: \"clipPath\",\n \"clip-path\": \"clipPath\",\n clippathunits: \"clipPathUnits\",\n cliprule: \"clipRule\",\n \"clip-rule\": \"clipRule\",\n color: \"color\",\n colorinterpolation: \"colorInterpolation\",\n \"color-interpolation\": \"colorInterpolation\",\n colorinterpolationfilters: \"colorInterpolationFilters\",\n \"color-interpolation-filters\": \"colorInterpolationFilters\",\n colorprofile: \"colorProfile\",\n \"color-profile\": \"colorProfile\",\n colorrendering: \"colorRendering\",\n \"color-rendering\": \"colorRendering\",\n contentscripttype: \"contentScriptType\",\n contentstyletype: \"contentStyleType\",\n cursor: \"cursor\",\n cx: \"cx\",\n cy: \"cy\",\n d: \"d\",\n datatype: \"datatype\",\n decelerate: \"decelerate\",\n descent: \"descent\",\n diffuseconstant: \"diffuseConstant\",\n direction: \"direction\",\n display: \"display\",\n divisor: \"divisor\",\n dominantbaseline: \"dominantBaseline\",\n \"dominant-baseline\": \"dominantBaseline\",\n dur: \"dur\",\n dx: \"dx\",\n dy: \"dy\",\n edgemode: \"edgeMode\",\n elevation: \"elevation\",\n enablebackground: \"enableBackground\",\n \"enable-background\": \"enableBackground\",\n end: \"end\",\n exponent: \"exponent\",\n externalresourcesrequired: \"externalResourcesRequired\",\n fill: \"fill\",\n fillopacity: \"fillOpacity\",\n \"fill-opacity\": \"fillOpacity\",\n fillrule: \"fillRule\",\n \"fill-rule\": \"fillRule\",\n filter: \"filter\",\n filterres: \"filterRes\",\n filterunits: \"filterUnits\",\n floodopacity: \"floodOpacity\",\n \"flood-opacity\": \"floodOpacity\",\n floodcolor: \"floodColor\",\n \"flood-color\": \"floodColor\",\n focusable: \"focusable\",\n fontfamily: \"fontFamily\",\n \"font-family\": \"fontFamily\",\n fontsize: \"fontSize\",\n \"font-size\": \"fontSize\",\n fontsizeadjust: \"fontSizeAdjust\",\n \"font-size-adjust\": \"fontSizeAdjust\",\n fontstretch: \"fontStretch\",\n \"font-stretch\": \"fontStretch\",\n fontstyle: \"fontStyle\",\n \"font-style\": \"fontStyle\",\n fontvariant: \"fontVariant\",\n \"font-variant\": \"fontVariant\",\n fontweight: \"fontWeight\",\n \"font-weight\": \"fontWeight\",\n format: \"format\",\n from: \"from\",\n fx: \"fx\",\n fy: \"fy\",\n g1: \"g1\",\n g2: \"g2\",\n glyphname: \"glyphName\",\n \"glyph-name\": \"glyphName\",\n glyphorientationhorizontal: \"glyphOrientationHorizontal\",\n \"glyph-orientation-horizontal\": \"glyphOrientationHorizontal\",\n glyphorientationvertical: \"glyphOrientationVertical\",\n \"glyph-orientation-vertical\": \"glyphOrientationVertical\",\n glyphref: \"glyphRef\",\n gradienttransform: \"gradientTransform\",\n gradientunits: \"gradientUnits\",\n hanging: \"hanging\",\n horizadvx: \"horizAdvX\",\n \"horiz-adv-x\": \"horizAdvX\",\n horizoriginx: \"horizOriginX\",\n \"horiz-origin-x\": \"horizOriginX\",\n ideographic: \"ideographic\",\n imagerendering: \"imageRendering\",\n \"image-rendering\": \"imageRendering\",\n in2: \"in2\",\n in: \"in\",\n inlist: \"inlist\",\n intercept: \"intercept\",\n k1: \"k1\",\n k2: \"k2\",\n k3: \"k3\",\n k4: \"k4\",\n k: \"k\",\n kernelmatrix: \"kernelMatrix\",\n kernelunitlength: \"kernelUnitLength\",\n kerning: \"kerning\",\n keypoints: \"keyPoints\",\n keysplines: \"keySplines\",\n keytimes: \"keyTimes\",\n lengthadjust: \"lengthAdjust\",\n letterspacing: \"letterSpacing\",\n \"letter-spacing\": \"letterSpacing\",\n lightingcolor: \"lightingColor\",\n \"lighting-color\": \"lightingColor\",\n limitingconeangle: \"limitingConeAngle\",\n local: \"local\",\n markerend: \"markerEnd\",\n \"marker-end\": \"markerEnd\",\n markerheight: \"markerHeight\",\n markermid: \"markerMid\",\n \"marker-mid\": \"markerMid\",\n markerstart: \"markerStart\",\n \"marker-start\": \"markerStart\",\n markerunits: \"markerUnits\",\n markerwidth: \"markerWidth\",\n mask: \"mask\",\n maskcontentunits: \"maskContentUnits\",\n maskunits: \"maskUnits\",\n mathematical: \"mathematical\",\n mode: \"mode\",\n numoctaves: \"numOctaves\",\n offset: \"offset\",\n opacity: \"opacity\",\n operator: \"operator\",\n order: \"order\",\n orient: \"orient\",\n orientation: \"orientation\",\n origin: \"origin\",\n overflow: \"overflow\",\n overlineposition: \"overlinePosition\",\n \"overline-position\": \"overlinePosition\",\n overlinethickness: \"overlineThickness\",\n \"overline-thickness\": \"overlineThickness\",\n paintorder: \"paintOrder\",\n \"paint-order\": \"paintOrder\",\n panose1: \"panose1\",\n \"panose-1\": \"panose1\",\n pathlength: \"pathLength\",\n patterncontentunits: \"patternContentUnits\",\n patterntransform: \"patternTransform\",\n patternunits: \"patternUnits\",\n pointerevents: \"pointerEvents\",\n \"pointer-events\": \"pointerEvents\",\n points: \"points\",\n pointsatx: \"pointsAtX\",\n pointsaty: \"pointsAtY\",\n pointsatz: \"pointsAtZ\",\n popover: \"popover\",\n popovertarget: \"popoverTarget\",\n popovertargetaction: \"popoverTargetAction\",\n prefix: \"prefix\",\n preservealpha: \"preserveAlpha\",\n preserveaspectratio: \"preserveAspectRatio\",\n primitiveunits: \"primitiveUnits\",\n property: \"property\",\n r: \"r\",\n radius: \"radius\",\n refx: \"refX\",\n refy: \"refY\",\n renderingintent: \"renderingIntent\",\n \"rendering-intent\": \"renderingIntent\",\n repeatcount: \"repeatCount\",\n repeatdur: \"repeatDur\",\n requiredextensions: \"requiredExtensions\",\n requiredfeatures: \"requiredFeatures\",\n resource: \"resource\",\n restart: \"restart\",\n result: \"result\",\n results: \"results\",\n rotate: \"rotate\",\n rx: \"rx\",\n ry: \"ry\",\n scale: \"scale\",\n security: \"security\",\n seed: \"seed\",\n shaperendering: \"shapeRendering\",\n \"shape-rendering\": \"shapeRendering\",\n slope: \"slope\",\n spacing: \"spacing\",\n specularconstant: \"specularConstant\",\n specularexponent: \"specularExponent\",\n speed: \"speed\",\n spreadmethod: \"spreadMethod\",\n startoffset: \"startOffset\",\n stddeviation: \"stdDeviation\",\n stemh: \"stemh\",\n stemv: \"stemv\",\n stitchtiles: \"stitchTiles\",\n stopcolor: \"stopColor\",\n \"stop-color\": \"stopColor\",\n stopopacity: \"stopOpacity\",\n \"stop-opacity\": \"stopOpacity\",\n strikethroughposition: \"strikethroughPosition\",\n \"strikethrough-position\": \"strikethroughPosition\",\n strikethroughthickness: \"strikethroughThickness\",\n \"strikethrough-thickness\": \"strikethroughThickness\",\n string: \"string\",\n stroke: \"stroke\",\n strokedasharray: \"strokeDasharray\",\n \"stroke-dasharray\": \"strokeDasharray\",\n strokedashoffset: \"strokeDashoffset\",\n \"stroke-dashoffset\": \"strokeDashoffset\",\n strokelinecap: \"strokeLinecap\",\n \"stroke-linecap\": \"strokeLinecap\",\n strokelinejoin: \"strokeLinejoin\",\n \"stroke-linejoin\": \"strokeLinejoin\",\n strokemiterlimit: \"strokeMiterlimit\",\n \"stroke-miterlimit\": \"strokeMiterlimit\",\n strokewidth: \"strokeWidth\",\n \"stroke-width\": \"strokeWidth\",\n strokeopacity: \"strokeOpacity\",\n \"stroke-opacity\": \"strokeOpacity\",\n suppresscontenteditablewarning: \"suppressContentEditableWarning\",\n suppresshydrationwarning: \"suppressHydrationWarning\",\n surfacescale: \"surfaceScale\",\n systemlanguage: \"systemLanguage\",\n tablevalues: \"tableValues\",\n targetx: \"targetX\",\n targety: \"targetY\",\n textanchor: \"textAnchor\",\n \"text-anchor\": \"textAnchor\",\n textdecoration: \"textDecoration\",\n \"text-decoration\": \"textDecoration\",\n textlength: \"textLength\",\n textrendering: \"textRendering\",\n \"text-rendering\": \"textRendering\",\n to: \"to\",\n transform: \"transform\",\n transformorigin: \"transformOrigin\",\n \"transform-origin\": \"transformOrigin\",\n typeof: \"typeof\",\n u1: \"u1\",\n u2: \"u2\",\n underlineposition: \"underlinePosition\",\n \"underline-position\": \"underlinePosition\",\n underlinethickness: \"underlineThickness\",\n \"underline-thickness\": \"underlineThickness\",\n unicode: \"unicode\",\n unicodebidi: \"unicodeBidi\",\n \"unicode-bidi\": \"unicodeBidi\",\n unicoderange: \"unicodeRange\",\n \"unicode-range\": \"unicodeRange\",\n unitsperem: \"unitsPerEm\",\n \"units-per-em\": \"unitsPerEm\",\n unselectable: \"unselectable\",\n valphabetic: \"vAlphabetic\",\n \"v-alphabetic\": \"vAlphabetic\",\n values: \"values\",\n vectoreffect: \"vectorEffect\",\n \"vector-effect\": \"vectorEffect\",\n version: \"version\",\n vertadvy: \"vertAdvY\",\n \"vert-adv-y\": \"vertAdvY\",\n vertoriginx: \"vertOriginX\",\n \"vert-origin-x\": \"vertOriginX\",\n vertoriginy: \"vertOriginY\",\n \"vert-origin-y\": \"vertOriginY\",\n vhanging: \"vHanging\",\n \"v-hanging\": \"vHanging\",\n videographic: \"vIdeographic\",\n \"v-ideographic\": \"vIdeographic\",\n viewbox: \"viewBox\",\n viewtarget: \"viewTarget\",\n visibility: \"visibility\",\n vmathematical: \"vMathematical\",\n \"v-mathematical\": \"vMathematical\",\n vocab: \"vocab\",\n widths: \"widths\",\n wordspacing: \"wordSpacing\",\n \"word-spacing\": \"wordSpacing\",\n writingmode: \"writingMode\",\n \"writing-mode\": \"writingMode\",\n x1: \"x1\",\n x2: \"x2\",\n x: \"x\",\n xchannelselector: \"xChannelSelector\",\n xheight: \"xHeight\",\n \"x-height\": \"xHeight\",\n xlinkactuate: \"xlinkActuate\",\n \"xlink:actuate\": \"xlinkActuate\",\n xlinkarcrole: \"xlinkArcrole\",\n \"xlink:arcrole\": \"xlinkArcrole\",\n xlinkhref: \"xlinkHref\",\n \"xlink:href\": \"xlinkHref\",\n xlinkrole: \"xlinkRole\",\n \"xlink:role\": \"xlinkRole\",\n xlinkshow: \"xlinkShow\",\n \"xlink:show\": \"xlinkShow\",\n xlinktitle: \"xlinkTitle\",\n \"xlink:title\": \"xlinkTitle\",\n xlinktype: \"xlinkType\",\n \"xlink:type\": \"xlinkType\",\n xmlbase: \"xmlBase\",\n \"xml:base\": \"xmlBase\",\n xmllang: \"xmlLang\",\n \"xml:lang\": \"xmlLang\",\n xmlns: \"xmlns\",\n \"xml:space\": \"xmlSpace\",\n xmlnsxlink: \"xmlnsXlink\",\n \"xmlns:xlink\": \"xmlnsXlink\",\n xmlspace: \"xmlSpace\",\n y1: \"y1\",\n y2: \"y2\",\n y: \"y\",\n ychannelselector: \"yChannelSelector\",\n z: \"z\",\n zoomandpan: \"zoomAndPan\"\n },\n ariaProperties = {\n \"aria-current\": 0,\n \"aria-description\": 0,\n \"aria-details\": 0,\n \"aria-disabled\": 0,\n \"aria-hidden\": 0,\n \"aria-invalid\": 0,\n \"aria-keyshortcuts\": 0,\n \"aria-label\": 0,\n \"aria-roledescription\": 0,\n \"aria-autocomplete\": 0,\n \"aria-checked\": 0,\n \"aria-expanded\": 0,\n \"aria-haspopup\": 0,\n \"aria-level\": 0,\n \"aria-modal\": 0,\n \"aria-multiline\": 0,\n \"aria-multiselectable\": 0,\n \"aria-orientation\": 0,\n \"aria-placeholder\": 0,\n \"aria-pressed\": 0,\n \"aria-readonly\": 0,\n \"aria-required\": 0,\n \"aria-selected\": 0,\n \"aria-sort\": 0,\n \"aria-valuemax\": 0,\n \"aria-valuemin\": 0,\n \"aria-valuenow\": 0,\n \"aria-valuetext\": 0,\n \"aria-atomic\": 0,\n \"aria-busy\": 0,\n \"aria-live\": 0,\n \"aria-relevant\": 0,\n \"aria-dropeffect\": 0,\n \"aria-grabbed\": 0,\n \"aria-activedescendant\": 0,\n \"aria-colcount\": 0,\n \"aria-colindex\": 0,\n \"aria-colspan\": 0,\n \"aria-controls\": 0,\n \"aria-describedby\": 0,\n \"aria-errormessage\": 0,\n \"aria-flowto\": 0,\n \"aria-labelledby\": 0,\n \"aria-owns\": 0,\n \"aria-posinset\": 0,\n \"aria-rowcount\": 0,\n \"aria-rowindex\": 0,\n \"aria-rowspan\": 0,\n \"aria-setsize\": 0,\n \"aria-braillelabel\": 0,\n \"aria-brailleroledescription\": 0,\n \"aria-colindextext\": 0,\n \"aria-rowindextext\": 0\n },\n warnedProperties$1 = {},\n rARIA$1 = RegExp(\n \"^(aria)-[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n rARIACamel$1 = RegExp(\n \"^(aria)[A-Z][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n didWarnValueNull = !1,\n warnedProperties = {},\n EVENT_NAME_REGEX = /^on./,\n INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/,\n rARIA = RegExp(\n \"^(aria)-[:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n rARIACamel = RegExp(\n \"^(aria)[A-Z][:A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*$\"\n ),\n isJavaScriptProtocol =\n /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*:/i,\n currentReplayingEvent = null,\n restoreTarget = null,\n restoreQueue = null,\n isInsideEventHandler = !1,\n canUseDOM = !(\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ),\n passiveBrowserEventsSupported = !1;\n if (canUseDOM)\n try {\n var options$jscomp$0 = {};\n Object.defineProperty(options$jscomp$0, \"passive\", {\n get: function () {\n passiveBrowserEventsSupported = !0;\n }\n });\n window.addEventListener(\"test\", options$jscomp$0, options$jscomp$0);\n window.removeEventListener(\"test\", options$jscomp$0, options$jscomp$0);\n } catch (e) {\n passiveBrowserEventsSupported = !1;\n }\n var root = null,\n startText = null,\n fallbackText = null,\n EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n },\n SyntheticEvent = createSyntheticEvent(EventInterface),\n UIEventInterface = assign({}, EventInterface, { view: 0, detail: 0 }),\n SyntheticUIEvent = createSyntheticEvent(UIEventInterface),\n lastMovementX,\n lastMovementY,\n lastMouseEvent,\n MouseEventInterface = assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n return void 0 === event.relatedTarget\n ? event.fromElement === event.srcElement\n ? event.toElement\n : event.fromElement\n : event.relatedTarget;\n },\n movementX: function (event) {\n if (\"movementX\" in event) return event.movementX;\n event !== lastMouseEvent &&\n (lastMouseEvent && \"mousemove\" === event.type\n ? ((lastMovementX = event.screenX - lastMouseEvent.screenX),\n (lastMovementY = event.screenY - lastMouseEvent.screenY))\n : (lastMovementY = lastMovementX = 0),\n (lastMouseEvent = event));\n return lastMovementX;\n },\n movementY: function (event) {\n return \"movementY\" in event ? event.movementY : lastMovementY;\n }\n }),\n SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface),\n DragEventInterface = assign({}, MouseEventInterface, { dataTransfer: 0 }),\n SyntheticDragEvent = createSyntheticEvent(DragEventInterface),\n FocusEventInterface = assign({}, UIEventInterface, { relatedTarget: 0 }),\n SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface),\n AnimationEventInterface = assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface),\n ClipboardEventInterface = assign({}, EventInterface, {\n clipboardData: function (event) {\n return \"clipboardData\" in event\n ? event.clipboardData\n : window.clipboardData;\n }\n }),\n SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface),\n CompositionEventInterface = assign({}, EventInterface, { data: 0 }),\n SyntheticCompositionEvent = createSyntheticEvent(\n CompositionEventInterface\n ),\n SyntheticInputEvent = SyntheticCompositionEvent,\n normalizeKey = {\n Esc: \"Escape\",\n Spacebar: \" \",\n Left: \"ArrowLeft\",\n Up: \"ArrowUp\",\n Right: \"ArrowRight\",\n Down: \"ArrowDown\",\n Del: \"Delete\",\n Win: \"OS\",\n Menu: \"ContextMenu\",\n Apps: \"ContextMenu\",\n Scroll: \"ScrollLock\",\n MozPrintableKey: \"Unidentified\"\n },\n translateToKey = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 12: \"Clear\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 19: \"Pause\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 45: \"Insert\",\n 46: \"Delete\",\n 112: \"F1\",\n 113: \"F2\",\n 114: \"F3\",\n 115: \"F4\",\n 116: \"F5\",\n 117: \"F6\",\n 118: \"F7\",\n 119: \"F8\",\n 120: \"F9\",\n 121: \"F10\",\n 122: \"F11\",\n 123: \"F12\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 224: \"Meta\"\n },\n modifierKeyToProp = {\n Alt: \"altKey\",\n Control: \"ctrlKey\",\n Meta: \"metaKey\",\n Shift: \"shiftKey\"\n },\n KeyboardEventInterface = assign({}, UIEventInterface, {\n key: function (nativeEvent) {\n if (nativeEvent.key) {\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n if (\"Unidentified\" !== key) return key;\n }\n return \"keypress\" === nativeEvent.type\n ? ((nativeEvent = getEventCharCode(nativeEvent)),\n 13 === nativeEvent ? \"Enter\" : String.fromCharCode(nativeEvent))\n : \"keydown\" === nativeEvent.type || \"keyup\" === nativeEvent.type\n ? translateToKey[nativeEvent.keyCode] || \"Unidentified\"\n : \"\";\n },\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n charCode: function (event) {\n return \"keypress\" === event.type ? getEventCharCode(event) : 0;\n },\n keyCode: function (event) {\n return \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n },\n which: function (event) {\n return \"keypress\" === event.type\n ? getEventCharCode(event)\n : \"keydown\" === event.type || \"keyup\" === event.type\n ? event.keyCode\n : 0;\n }\n }),\n SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface),\n PointerEventInterface = assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n }),\n SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface),\n TouchEventInterface = assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n }),\n SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface),\n TransitionEventInterface = assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n }),\n SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface),\n WheelEventInterface = assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return \"deltaX\" in event\n ? event.deltaX\n : \"wheelDeltaX\" in event\n ? -event.wheelDeltaX\n : 0;\n },\n deltaY: function (event) {\n return \"deltaY\" in event\n ? event.deltaY\n : \"wheelDeltaY\" in event\n ? -event.wheelDeltaY\n : \"wheelDelta\" in event\n ? -event.wheelDelta\n : 0;\n },\n deltaZ: 0,\n deltaMode: 0\n }),\n SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface),\n ToggleEventInterface = assign({}, EventInterface, {\n newState: 0,\n oldState: 0\n }),\n SyntheticToggleEvent = createSyntheticEvent(ToggleEventInterface),\n END_KEYCODES = [9, 13, 27, 32],\n START_KEYCODE = 229,\n canUseCompositionEvent = canUseDOM && \"CompositionEvent\" in window,\n documentMode = null;\n canUseDOM &&\n \"documentMode\" in document &&\n (documentMode = document.documentMode);\n var canUseTextInputEvent =\n canUseDOM && \"TextEvent\" in window && !documentMode,\n useFallbackCompositionData =\n canUseDOM &&\n (!canUseCompositionEvent ||\n (documentMode && 8 < documentMode && 11 >= documentMode)),\n SPACEBAR_CODE = 32,\n SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE),\n hasSpaceKeypress = !1,\n isComposing = !1,\n supportedInputTypes = {\n color: !0,\n date: !0,\n datetime: !0,\n \"datetime-local\": !0,\n email: !0,\n month: !0,\n number: !0,\n password: !0,\n range: !0,\n search: !0,\n tel: !0,\n text: !0,\n time: !0,\n url: !0,\n week: !0\n },\n activeElement$1 = null,\n activeElementInst$1 = null,\n isInputEventSupported = !1;\n canUseDOM &&\n (isInputEventSupported =\n isEventSupported(\"input\") &&\n (!document.documentMode || 9 < document.documentMode));\n var objectIs = \"function\" === typeof Object.is ? Object.is : is,\n skipSelectionChangeEvent =\n canUseDOM && \"documentMode\" in document && 11 >= document.documentMode,\n activeElement = null,\n activeElementInst = null,\n lastSelection = null,\n mouseDown = !1,\n vendorPrefixes = {\n animationend: makePrefixMap(\"Animation\", \"AnimationEnd\"),\n animationiteration: makePrefixMap(\"Animation\", \"AnimationIteration\"),\n animationstart: makePrefixMap(\"Animation\", \"AnimationStart\"),\n transitionrun: makePrefixMap(\"Transition\", \"TransitionRun\"),\n transitionstart: makePrefixMap(\"Transition\", \"TransitionStart\"),\n transitioncancel: makePrefixMap(\"Transition\", \"TransitionCancel\"),\n transitionend: makePrefixMap(\"Transition\", \"TransitionEnd\")\n },\n prefixedEventNames = {},\n style = {};\n canUseDOM &&\n ((style = document.createElement(\"div\").style),\n \"AnimationEvent\" in window ||\n (delete vendorPrefixes.animationend.animation,\n delete vendorPrefixes.animationiteration.animation,\n delete vendorPrefixes.animationstart.animation),\n \"TransitionEvent\" in window ||\n delete vendorPrefixes.transitionend.transition);\n var ANIMATION_END = getVendorPrefixedEventName(\"animationend\"),\n ANIMATION_ITERATION = getVendorPrefixedEventName(\"animationiteration\"),\n ANIMATION_START = getVendorPrefixedEventName(\"animationstart\"),\n TRANSITION_RUN = getVendorPrefixedEventName(\"transitionrun\"),\n TRANSITION_START = getVendorPrefixedEventName(\"transitionstart\"),\n TRANSITION_CANCEL = getVendorPrefixedEventName(\"transitioncancel\"),\n TRANSITION_END = getVendorPrefixedEventName(\"transitionend\"),\n topLevelEventsToReactNames = new Map(),\n simpleEventPluginEvents =\n \"abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\n \" \"\n );\n simpleEventPluginEvents.push(\"scrollEnd\");\n var lastResetTime = 0;\n if (\n \"object\" === typeof performance &&\n \"function\" === typeof performance.now\n ) {\n var localPerformance = performance;\n var getCurrentTime = function () {\n return localPerformance.now();\n };\n } else {\n var localDate = Date;\n getCurrentTime = function () {\n return localDate.now();\n };\n }\n var reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n OMITTED_PROP_ERROR =\n \"This object has been omitted by React in the console log to avoid sending too much data from the server. Try logging smaller or more specific objects.\",\n EMPTY_ARRAY = 0,\n COMPLEX_ARRAY = 1,\n PRIMITIVE_ARRAY = 2,\n ENTRIES_ARRAY = 3,\n REMOVED = \"\\u2013\\u00a0\",\n ADDED = \"+\\u00a0\",\n UNCHANGED = \"\\u2007\\u00a0\",\n supportsUserTiming =\n \"undefined\" !== typeof console &&\n \"function\" === typeof console.timeStamp &&\n \"undefined\" !== typeof performance &&\n \"function\" === typeof performance.measure,\n COMPONENTS_TRACK = \"Components \\u269b\",\n LANES_TRACK_GROUP = \"Scheduler \\u269b\",\n currentTrack = \"Blocking\",\n alreadyWarnedForDeepEquality = !1,\n reusableComponentDevToolDetails = {\n color: \"primary\",\n properties: null,\n tooltipText: \"\",\n track: COMPONENTS_TRACK\n },\n reusableComponentOptions = {\n start: -0,\n end: -0,\n detail: { devtools: reusableComponentDevToolDetails }\n },\n resuableChangedPropsEntry = [\"Changed Props\", \"\"],\n DEEP_EQUALITY_WARNING =\n \"This component received deeply equal props. It might benefit from useMemo or the React Compiler in its owner.\",\n reusableDeeplyEqualPropsEntry = [\"Changed Props\", DEEP_EQUALITY_WARNING],\n OffscreenVisible = 1,\n OffscreenPassiveEffectsConnected = 2,\n concurrentQueues = [],\n concurrentQueuesIndex = 0,\n concurrentlyUpdatedLanes = 0,\n emptyContextObject = {};\n Object.freeze(emptyContextObject);\n var resolveFamily = null,\n failedBoundaries = null,\n NoMode = 0,\n ConcurrentMode = 1,\n ProfileMode = 2,\n StrictLegacyMode = 8,\n StrictEffectsMode = 16,\n SuspenseyImagesMode = 32;\n var hasBadMapPolyfill = !1;\n try {\n var nonExtensibleObject = Object.preventExtensions({});\n new Map([[nonExtensibleObject, null]]);\n new Set([nonExtensibleObject]);\n } catch (e$3) {\n hasBadMapPolyfill = !0;\n }\n var CapturedStacks = new WeakMap(),\n forkStack = [],\n forkStackIndex = 0,\n treeForkProvider = null,\n treeForkCount = 0,\n idStack = [],\n idStackIndex = 0,\n treeContextProvider = null,\n treeContextId = 1,\n treeContextOverflow = \"\",\n hydrationParentFiber = null,\n nextHydratableInstance = null,\n isHydrating = !1,\n didSuspendOrErrorDEV = !1,\n hydrationDiffRootDEV = null,\n hydrationErrors = null,\n rootOrSingletonContext = !1,\n HydrationMismatchException = Error(\n \"Hydration Mismatch Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React.\"\n ),\n valueCursor = createCursor(null);\n var rendererCursorDEV = createCursor(null);\n var rendererSigil = {};\n var currentlyRenderingFiber$1 = null,\n lastContextDependency = null,\n isDisallowedContextReadInDEV = !1,\n AbortControllerLocal =\n \"undefined\" !== typeof AbortController\n ? AbortController\n : function () {\n var listeners = [],\n signal = (this.signal = {\n aborted: !1,\n addEventListener: function (type, listener) {\n listeners.push(listener);\n }\n });\n this.abort = function () {\n signal.aborted = !0;\n listeners.forEach(function (listener) {\n return listener();\n });\n };\n },\n scheduleCallback$2 = Scheduler.unstable_scheduleCallback,\n NormalPriority = Scheduler.unstable_NormalPriority,\n CacheContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Consumer: null,\n Provider: null,\n _currentValue: null,\n _currentValue2: null,\n _threadCount: 0,\n _currentRenderer: null,\n _currentRenderer2: null\n },\n now = Scheduler.unstable_now,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n },\n SPAWNED_UPDATE = 1,\n PINGED_UPDATE = 2,\n renderStartTime = -0,\n commitStartTime = -0,\n commitEndTime = -0,\n commitErrors = null,\n profilerStartTime = -1.1,\n profilerEffectDuration = -0,\n componentEffectDuration = -0,\n componentEffectStartTime = -1.1,\n componentEffectEndTime = -1.1,\n componentEffectErrors = null,\n componentEffectSpawnedUpdate = !1,\n blockingClampTime = -0,\n blockingUpdateTime = -1.1,\n blockingUpdateTask = null,\n blockingUpdateType = 0,\n blockingUpdateMethodName = null,\n blockingUpdateComponentName = null,\n blockingEventTime = -1.1,\n blockingEventType = null,\n blockingEventRepeatTime = -1.1,\n blockingSuspendedTime = -1.1,\n transitionClampTime = -0,\n transitionStartTime = -1.1,\n transitionUpdateTime = -1.1,\n transitionUpdateType = 0,\n transitionUpdateTask = null,\n transitionUpdateMethodName = null,\n transitionUpdateComponentName = null,\n transitionEventTime = -1.1,\n transitionEventType = null,\n transitionEventRepeatTime = -1.1,\n transitionSuspendedTime = -1.1,\n retryClampTime = -0,\n idleClampTime = -0,\n animatingLanes = 0,\n animatingTask = null,\n yieldReason = 0,\n yieldStartTime = -1.1,\n currentUpdateIsNested = !1,\n nestedUpdateScheduled = !1,\n currentEntangledListeners = null,\n currentEntangledPendingCount = 0,\n currentEntangledLane = 0,\n currentEntangledActionThenable = null,\n prevOnStartTransitionFinish = ReactSharedInternals.S;\n ReactSharedInternals.S = function (transition, returnValue) {\n globalMostRecentTransitionTime = now$1();\n if (\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then\n ) {\n if (0 > transitionStartTime && 0 > transitionUpdateTime) {\n transitionStartTime = now();\n var newEventTime = resolveEventTimeStamp(),\n newEventType = resolveEventType();\n if (\n newEventTime !== transitionEventRepeatTime ||\n newEventType !== transitionEventType\n )\n transitionEventRepeatTime = -1.1;\n transitionEventTime = newEventTime;\n transitionEventType = newEventType;\n }\n entangleAsyncAction(transition, returnValue);\n }\n null !== prevOnStartTransitionFinish &&\n prevOnStartTransitionFinish(transition, returnValue);\n };\n var resumedCache = createCursor(null),\n ReactStrictModeWarnings = {\n recordUnsafeLifecycleWarnings: function () {},\n flushPendingUnsafeLifecycleWarnings: function () {},\n recordLegacyContextWarning: function () {},\n flushLegacyContextWarning: function () {},\n discardPendingWarnings: function () {}\n },\n pendingComponentWillMountWarnings = [],\n pendingUNSAFE_ComponentWillMountWarnings = [],\n pendingComponentWillReceivePropsWarnings = [],\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [],\n pendingComponentWillUpdateWarnings = [],\n pendingUNSAFE_ComponentWillUpdateWarnings = [],\n didWarnAboutUnsafeLifecycles = new Set();\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (\n fiber,\n instance\n ) {\n didWarnAboutUnsafeLifecycles.has(fiber.type) ||\n (\"function\" === typeof instance.componentWillMount &&\n !0 !== instance.componentWillMount.__suppressDeprecationWarning &&\n pendingComponentWillMountWarnings.push(fiber),\n fiber.mode & StrictLegacyMode &&\n \"function\" === typeof instance.UNSAFE_componentWillMount &&\n pendingUNSAFE_ComponentWillMountWarnings.push(fiber),\n \"function\" === typeof instance.componentWillReceiveProps &&\n !0 !==\n instance.componentWillReceiveProps.__suppressDeprecationWarning &&\n pendingComponentWillReceivePropsWarnings.push(fiber),\n fiber.mode & StrictLegacyMode &&\n \"function\" === typeof instance.UNSAFE_componentWillReceiveProps &&\n pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber),\n \"function\" === typeof instance.componentWillUpdate &&\n !0 !== instance.componentWillUpdate.__suppressDeprecationWarning &&\n pendingComponentWillUpdateWarnings.push(fiber),\n fiber.mode & StrictLegacyMode &&\n \"function\" === typeof instance.UNSAFE_componentWillUpdate &&\n pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber));\n };\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {\n var componentWillMountUniqueNames = new Set();\n 0 < pendingComponentWillMountWarnings.length &&\n (pendingComponentWillMountWarnings.forEach(function (fiber) {\n componentWillMountUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }),\n (pendingComponentWillMountWarnings = []));\n var UNSAFE_componentWillMountUniqueNames = new Set();\n 0 < pendingUNSAFE_ComponentWillMountWarnings.length &&\n (pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {\n UNSAFE_componentWillMountUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }),\n (pendingUNSAFE_ComponentWillMountWarnings = []));\n var componentWillReceivePropsUniqueNames = new Set();\n 0 < pendingComponentWillReceivePropsWarnings.length &&\n (pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {\n componentWillReceivePropsUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }),\n (pendingComponentWillReceivePropsWarnings = []));\n var UNSAFE_componentWillReceivePropsUniqueNames = new Set();\n 0 < pendingUNSAFE_ComponentWillReceivePropsWarnings.length &&\n (pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(\n function (fiber) {\n UNSAFE_componentWillReceivePropsUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }\n ),\n (pendingUNSAFE_ComponentWillReceivePropsWarnings = []));\n var componentWillUpdateUniqueNames = new Set();\n 0 < pendingComponentWillUpdateWarnings.length &&\n (pendingComponentWillUpdateWarnings.forEach(function (fiber) {\n componentWillUpdateUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }),\n (pendingComponentWillUpdateWarnings = []));\n var UNSAFE_componentWillUpdateUniqueNames = new Set();\n 0 < pendingUNSAFE_ComponentWillUpdateWarnings.length &&\n (pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {\n UNSAFE_componentWillUpdateUniqueNames.add(\n getComponentNameFromFiber(fiber) || \"Component\"\n );\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n }),\n (pendingUNSAFE_ComponentWillUpdateWarnings = []));\n if (0 < UNSAFE_componentWillMountUniqueNames.size) {\n var sortedNames = setToSortedString(\n UNSAFE_componentWillMountUniqueNames\n );\n console.error(\n \"Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n\\nPlease update the following components: %s\",\n sortedNames\n );\n }\n 0 < UNSAFE_componentWillReceivePropsUniqueNames.size &&\n ((sortedNames = setToSortedString(\n UNSAFE_componentWillReceivePropsUniqueNames\n )),\n console.error(\n \"Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\\n\\nPlease update the following components: %s\",\n sortedNames\n ));\n 0 < UNSAFE_componentWillUpdateUniqueNames.size &&\n ((sortedNames = setToSortedString(\n UNSAFE_componentWillUpdateUniqueNames\n )),\n console.error(\n \"Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n\\nPlease update the following components: %s\",\n sortedNames\n ));\n 0 < componentWillMountUniqueNames.size &&\n ((sortedNames = setToSortedString(componentWillMountUniqueNames)),\n console.warn(\n \"componentWillMount has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n\\nPlease update the following components: %s\",\n sortedNames\n ));\n 0 < componentWillReceivePropsUniqueNames.size &&\n ((sortedNames = setToSortedString(\n componentWillReceivePropsUniqueNames\n )),\n console.warn(\n \"componentWillReceiveProps has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://react.dev/link/derived-state\\n* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n\\nPlease update the following components: %s\",\n sortedNames\n ));\n 0 < componentWillUpdateUniqueNames.size &&\n ((sortedNames = setToSortedString(componentWillUpdateUniqueNames)),\n console.warn(\n \"componentWillUpdate has been renamed, and is not recommended for use. See https://react.dev/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n\\nPlease update the following components: %s\",\n sortedNames\n ));\n };\n var pendingLegacyContextWarning = new Map(),\n didWarnAboutLegacyContext = new Set();\n ReactStrictModeWarnings.recordLegacyContextWarning = function (\n fiber,\n instance\n ) {\n var strictRoot = null;\n for (var node = fiber; null !== node; )\n node.mode & StrictLegacyMode && (strictRoot = node),\n (node = node.return);\n null === strictRoot\n ? console.error(\n \"Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.\"\n )\n : !didWarnAboutLegacyContext.has(fiber.type) &&\n ((node = pendingLegacyContextWarning.get(strictRoot)),\n null != fiber.type.contextTypes ||\n null != fiber.type.childContextTypes ||\n (null !== instance &&\n \"function\" === typeof instance.getChildContext)) &&\n (void 0 === node &&\n ((node = []), pendingLegacyContextWarning.set(strictRoot, node)),\n node.push(fiber));\n };\n ReactStrictModeWarnings.flushLegacyContextWarning = function () {\n pendingLegacyContextWarning.forEach(function (fiberArray) {\n if (0 !== fiberArray.length) {\n var firstFiber = fiberArray[0],\n uniqueNames = new Set();\n fiberArray.forEach(function (fiber) {\n uniqueNames.add(getComponentNameFromFiber(fiber) || \"Component\");\n didWarnAboutLegacyContext.add(fiber.type);\n });\n var sortedNames = setToSortedString(uniqueNames);\n runWithFiberInDEV(firstFiber, function () {\n console.error(\n \"Legacy context API has been detected within a strict-mode tree.\\n\\nThe old API will be supported in all 16.x releases, but applications using it should migrate to the new version.\\n\\nPlease update the following components: %s\\n\\nLearn more about this warning here: https://react.dev/link/legacy-context\",\n sortedNames\n );\n });\n }\n });\n };\n ReactStrictModeWarnings.discardPendingWarnings = function () {\n pendingComponentWillMountWarnings = [];\n pendingUNSAFE_ComponentWillMountWarnings = [];\n pendingComponentWillReceivePropsWarnings = [];\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n pendingComponentWillUpdateWarnings = [];\n pendingUNSAFE_ComponentWillUpdateWarnings = [];\n pendingLegacyContextWarning = new Map();\n };\n var callComponent = {\n react_stack_bottom_frame: function (Component, props, secondArg) {\n var wasRendering = isRendering;\n isRendering = !0;\n try {\n return Component(props, secondArg);\n } finally {\n isRendering = wasRendering;\n }\n }\n },\n callComponentInDEV =\n callComponent.react_stack_bottom_frame.bind(callComponent),\n callRender = {\n react_stack_bottom_frame: function (instance) {\n var wasRendering = isRendering;\n isRendering = !0;\n try {\n return instance.render();\n } finally {\n isRendering = wasRendering;\n }\n }\n },\n callRenderInDEV = callRender.react_stack_bottom_frame.bind(callRender),\n callComponentDidMount = {\n react_stack_bottom_frame: function (finishedWork, instance) {\n try {\n instance.componentDidMount();\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n },\n callComponentDidMountInDEV =\n callComponentDidMount.react_stack_bottom_frame.bind(\n callComponentDidMount\n ),\n callComponentDidUpdate = {\n react_stack_bottom_frame: function (\n finishedWork,\n instance,\n prevProps,\n prevState,\n snapshot\n ) {\n try {\n instance.componentDidUpdate(prevProps, prevState, snapshot);\n } catch (error) {\n captureCommitPhaseError(finishedWork, finishedWork.return, error);\n }\n }\n },\n callComponentDidUpdateInDEV =\n callComponentDidUpdate.react_stack_bottom_frame.bind(\n callComponentDidUpdate\n ),\n callComponentDidCatch = {\n react_stack_bottom_frame: function (instance, errorInfo) {\n var stack = errorInfo.stack;\n instance.componentDidCatch(errorInfo.value, {\n componentStack: null !== stack ? stack : \"\"\n });\n }\n },\n callComponentDidCatchInDEV =\n callComponentDidCatch.react_stack_bottom_frame.bind(\n callComponentDidCatch\n ),\n callComponentWillUnmount = {\n react_stack_bottom_frame: function (\n current,\n nearestMountedAncestor,\n instance\n ) {\n try {\n instance.componentWillUnmount();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n }\n },\n callComponentWillUnmountInDEV =\n callComponentWillUnmount.react_stack_bottom_frame.bind(\n callComponentWillUnmount\n ),\n callCreate = {\n react_stack_bottom_frame: function (effect) {\n var create = effect.create;\n effect = effect.inst;\n create = create();\n return (effect.destroy = create);\n }\n },\n callCreateInDEV = callCreate.react_stack_bottom_frame.bind(callCreate),\n callDestroy = {\n react_stack_bottom_frame: function (\n current,\n nearestMountedAncestor,\n destroy\n ) {\n try {\n destroy();\n } catch (error) {\n captureCommitPhaseError(current, nearestMountedAncestor, error);\n }\n }\n },\n callDestroyInDEV = callDestroy.react_stack_bottom_frame.bind(callDestroy),\n callLazyInit = {\n react_stack_bottom_frame: function (lazy) {\n var init = lazy._init;\n return init(lazy._payload);\n }\n },\n callLazyInitInDEV =\n callLazyInit.react_stack_bottom_frame.bind(callLazyInit),\n SuspenseException = Error(\n \"Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\\n\\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`.\"\n ),\n SuspenseyCommitException = Error(\n \"Suspense Exception: This is not a real error, and should not leak into userspace. If you're seeing this, it's likely a bug in React.\"\n ),\n SuspenseActionException = Error(\n \"Suspense Exception: This is not a real error! It's an implementation detail of `useActionState` to interrupt the current render. You must either rethrow it immediately, or move the `useActionState` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\\n\\nTo handle async errors, wrap your component in an error boundary.\"\n ),\n noopSuspenseyCommitThenable = {\n then: function () {\n console.error(\n 'Internal React error: A listener was unexpectedly attached to a \"noop\" thenable. This is a bug in React. Please file an issue.'\n );\n }\n },\n suspendedThenable = null,\n needsToResetSuspendedThenableDEV = !1,\n thenableState$1 = null,\n thenableIndexCounter$1 = 0,\n currentDebugInfo = null,\n didWarnAboutMaps;\n var didWarnAboutGenerators = (didWarnAboutMaps = !1);\n var ownerHasKeyUseWarning = {};\n var ownerHasFunctionTypeWarning = {};\n var ownerHasSymbolTypeWarning = {};\n warnForMissingKey = function (returnFiber, workInProgress, child) {\n if (\n null !== child &&\n \"object\" === typeof child &&\n child._store &&\n ((!child._store.validated && null == child.key) ||\n 2 === child._store.validated)\n ) {\n if (\"object\" !== typeof child._store)\n throw Error(\n \"React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.\"\n );\n child._store.validated = 1;\n var componentName = getComponentNameFromFiber(returnFiber),\n componentKey = componentName || \"null\";\n if (!ownerHasKeyUseWarning[componentKey]) {\n ownerHasKeyUseWarning[componentKey] = !0;\n child = child._owner;\n returnFiber = returnFiber._debugOwner;\n var currentComponentErrorInfo = \"\";\n returnFiber &&\n \"number\" === typeof returnFiber.tag &&\n (componentKey = getComponentNameFromFiber(returnFiber)) &&\n (currentComponentErrorInfo =\n \"\\n\\nCheck the render method of `\" + componentKey + \"`.\");\n currentComponentErrorInfo ||\n (componentName &&\n (currentComponentErrorInfo =\n \"\\n\\nCheck the top-level render call using <\" +\n componentName +\n \">.\"));\n var childOwnerAppendix = \"\";\n null != child &&\n returnFiber !== child &&\n ((componentName = null),\n \"number\" === typeof child.tag\n ? (componentName = getComponentNameFromFiber(child))\n : \"string\" === typeof child.name && (componentName = child.name),\n componentName &&\n (childOwnerAppendix =\n \" It was passed a child from \" + componentName + \".\"));\n runWithFiberInDEV(workInProgress, function () {\n console.error(\n 'Each child in a list should have a unique \"key\" prop.%s%s See https://react.dev/link/warning-keys for more information.',\n currentComponentErrorInfo,\n childOwnerAppendix\n );\n });\n }\n }\n };\n var reconcileChildFibers = createChildReconciler(!0),\n mountChildFibers = createChildReconciler(!1),\n UpdateState = 0,\n ReplaceState = 1,\n ForceUpdate = 2,\n CaptureUpdate = 3,\n hasForceUpdate = !1;\n var didWarnUpdateInsideUpdate = !1;\n var currentlyProcessingQueue = null;\n var didReadFromEntangledAsyncAction = !1,\n currentTreeHiddenStackCursor = createCursor(null),\n prevEntangledRenderLanesCursor = createCursor(0),\n suspenseHandlerStackCursor = createCursor(null),\n shellBoundary = null,\n SubtreeSuspenseContextMask = 1,\n ForceSuspenseFallback = 2,\n suspenseStackCursor = createCursor(0),\n NoFlags = 0,\n HasEffect = 1,\n Insertion = 2,\n Layout = 4,\n Passive = 8,\n didWarnUncachedGetSnapshot;\n var didWarnAboutMismatchedHooksForComponent = new Set();\n var didWarnAboutUseWrappedInTryCatch = new Set();\n var didWarnAboutAsyncClientComponent = new Set();\n var didWarnAboutUseFormState = new Set();\n var renderLanes = 0,\n currentlyRenderingFiber = null,\n currentHook = null,\n workInProgressHook = null,\n didScheduleRenderPhaseUpdate = !1,\n didScheduleRenderPhaseUpdateDuringThisPass = !1,\n shouldDoubleInvokeUserFnsInHooksDEV = !1,\n localIdCounter = 0,\n thenableIndexCounter = 0,\n thenableState = null,\n globalClientIdCounter = 0,\n RE_RENDER_LIMIT = 25,\n currentHookNameInDev = null,\n hookTypesDev = null,\n hookTypesUpdateIndexDev = -1,\n ignorePreviousDependencies = !1,\n ContextOnlyDispatcher = {\n readContext: readContext,\n use: use,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useInsertionEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useSyncExternalStore: throwInvalidHookError,\n useId: throwInvalidHookError,\n useHostTransitionStatus: throwInvalidHookError,\n useFormState: throwInvalidHookError,\n useActionState: throwInvalidHookError,\n useOptimistic: throwInvalidHookError,\n useMemoCache: throwInvalidHookError,\n useCacheRefresh: throwInvalidHookError\n };\n ContextOnlyDispatcher.useEffectEvent = throwInvalidHookError;\n var HooksDispatcherOnMountInDEV = null,\n HooksDispatcherOnMountWithHookTypesInDEV = null,\n HooksDispatcherOnUpdateInDEV = null,\n HooksDispatcherOnRerenderInDEV = null,\n InvalidNestedHooksDispatcherOnMountInDEV = null,\n InvalidNestedHooksDispatcherOnUpdateInDEV = null,\n InvalidNestedHooksDispatcherOnRerenderInDEV = null;\n HooksDispatcherOnMountInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n use: use,\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n mountHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = \"useEffect\";\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n mountEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n mountHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = \"useRef\";\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = \"useState\";\n mountHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountState(initialState);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n mountHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n mountHookTypesDev();\n return mountDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n mountHookTypesDev();\n return mountTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n mountHookTypesDev();\n return mountSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n mountHookTypesDev();\n return mountId();\n },\n useFormState: function (action, initialState) {\n currentHookNameInDev = \"useFormState\";\n mountHookTypesDev();\n warnOnUseFormStateInDev();\n return mountActionState(action, initialState);\n },\n useActionState: function (action, initialState) {\n currentHookNameInDev = \"useActionState\";\n mountHookTypesDev();\n return mountActionState(action, initialState);\n },\n useOptimistic: function (passthrough) {\n currentHookNameInDev = \"useOptimistic\";\n mountHookTypesDev();\n return mountOptimistic(passthrough);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n mountHookTypesDev();\n return mountRefresh();\n },\n useEffectEvent: function (callback) {\n currentHookNameInDev = \"useEffectEvent\";\n mountHookTypesDev();\n return mountEvent(callback);\n }\n };\n HooksDispatcherOnMountWithHookTypesInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n use: use,\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n updateHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = \"useEffect\";\n updateHookTypesDev();\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n updateHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n updateHookTypesDev();\n mountEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n updateHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = \"useRef\";\n updateHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = \"useState\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountState(initialState);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n updateHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n updateHookTypesDev();\n return mountDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n updateHookTypesDev();\n return mountTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n updateHookTypesDev();\n return mountSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n updateHookTypesDev();\n return mountId();\n },\n useActionState: function (action, initialState) {\n currentHookNameInDev = \"useActionState\";\n updateHookTypesDev();\n return mountActionState(action, initialState);\n },\n useFormState: function (action, initialState) {\n currentHookNameInDev = \"useFormState\";\n updateHookTypesDev();\n warnOnUseFormStateInDev();\n return mountActionState(action, initialState);\n },\n useOptimistic: function (passthrough) {\n currentHookNameInDev = \"useOptimistic\";\n updateHookTypesDev();\n return mountOptimistic(passthrough);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n updateHookTypesDev();\n return mountRefresh();\n },\n useEffectEvent: function (callback) {\n currentHookNameInDev = \"useEffectEvent\";\n updateHookTypesDev();\n return mountEvent(callback);\n }\n };\n HooksDispatcherOnUpdateInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n use: use,\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = \"useEffect\";\n updateHookTypesDev();\n updateEffectImpl(2048, Passive, create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n updateHookTypesDev();\n return updateEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n updateHookTypesDev();\n return updateEffectImpl(4, Layout, create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function () {\n currentHookNameInDev = \"useRef\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useState: function () {\n currentHookNameInDev = \"useState\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateReducer(basicStateReducer);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n updateHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n updateHookTypesDev();\n return updateDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n updateHookTypesDev();\n return updateTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n updateHookTypesDev();\n return updateSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useFormState: function (action) {\n currentHookNameInDev = \"useFormState\";\n updateHookTypesDev();\n warnOnUseFormStateInDev();\n return updateActionState(action);\n },\n useActionState: function (action) {\n currentHookNameInDev = \"useActionState\";\n updateHookTypesDev();\n return updateActionState(action);\n },\n useOptimistic: function (passthrough, reducer) {\n currentHookNameInDev = \"useOptimistic\";\n updateHookTypesDev();\n return updateOptimistic(passthrough, reducer);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useEffectEvent: function (callback) {\n currentHookNameInDev = \"useEffectEvent\";\n updateHookTypesDev();\n return updateEvent(callback);\n }\n };\n HooksDispatcherOnRerenderInDEV = {\n readContext: function (context) {\n return readContext(context);\n },\n use: use,\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = \"useEffect\";\n updateHookTypesDev();\n updateEffectImpl(2048, Passive, create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n updateHookTypesDev();\n return updateEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n updateHookTypesDev();\n return updateEffectImpl(4, Layout, create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;\n try {\n return updateMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function () {\n currentHookNameInDev = \"useRef\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useState: function () {\n currentHookNameInDev = \"useState\";\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnRerenderInDEV;\n try {\n return rerenderReducer(basicStateReducer);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n updateHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n updateHookTypesDev();\n return rerenderDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n updateHookTypesDev();\n return rerenderTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n updateHookTypesDev();\n return updateSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useFormState: function (action) {\n currentHookNameInDev = \"useFormState\";\n updateHookTypesDev();\n warnOnUseFormStateInDev();\n return rerenderActionState(action);\n },\n useActionState: function (action) {\n currentHookNameInDev = \"useActionState\";\n updateHookTypesDev();\n return rerenderActionState(action);\n },\n useOptimistic: function (passthrough, reducer) {\n currentHookNameInDev = \"useOptimistic\";\n updateHookTypesDev();\n return rerenderOptimistic(passthrough, reducer);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useMemoCache: useMemoCache,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useEffectEvent: function (callback) {\n currentHookNameInDev = \"useEffectEvent\";\n updateHookTypesDev();\n return updateEvent(callback);\n }\n };\n InvalidNestedHooksDispatcherOnMountInDEV = {\n readContext: function (context) {\n warnInvalidContextAccess();\n return readContext(context);\n },\n use: function (usable) {\n warnInvalidHookAccess();\n return use(usable);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = \"useEffect\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n mountEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = \"useRef\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = \"useState\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnMountInDEV;\n try {\n return mountState(initialState);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountId();\n },\n useFormState: function (action, initialState) {\n currentHookNameInDev = \"useFormState\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountActionState(action, initialState);\n },\n useActionState: function (action, initialState) {\n currentHookNameInDev = \"useActionState\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountActionState(action, initialState);\n },\n useOptimistic: function (passthrough) {\n currentHookNameInDev = \"useOptimistic\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountOptimistic(passthrough);\n },\n useMemoCache: function (size) {\n warnInvalidHookAccess();\n return useMemoCache(size);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n mountHookTypesDev();\n return mountRefresh();\n },\n useEffectEvent: function (callback) {\n currentHookNameInDev = \"useEffectEvent\";\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountEvent(callback);\n }\n };\n InvalidNestedHooksDispatcherOnUpdateInDEV = {\n readContext: function (context) {\n warnInvalidContextAccess();\n return readContext(context);\n },\n use: function (usable) {\n warnInvalidHookAccess();\n return use(usable);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = \"useEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n updateEffectImpl(2048, Passive, create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffectImpl(4, Layout, create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function () {\n currentHookNameInDev = \"useRef\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useState: function () {\n currentHookNameInDev = \"useState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateReducer(basicStateReducer);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useFormState: function (action) {\n currentHookNameInDev = \"useFormState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateActionState(action);\n },\n useActionState: function (action) {\n currentHookNameInDev = \"useActionState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateActionState(action);\n },\n useOptimistic: function (passthrough, reducer) {\n currentHookNameInDev = \"useOptimistic\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateOptimistic(passthrough, reducer);\n },\n useMemoCache: function (size) {\n warnInvalidHookAccess();\n return useMemoCache(size);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useEffectEvent: function (callback) {\n currentHookNameInDev = \"useEffectEvent\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEvent(callback);\n }\n };\n InvalidNestedHooksDispatcherOnRerenderInDEV = {\n readContext: function (context) {\n warnInvalidContextAccess();\n return readContext(context);\n },\n use: function (usable) {\n warnInvalidHookAccess();\n return use(usable);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = \"useCallback\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context) {\n currentHookNameInDev = \"useContext\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = \"useEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n updateEffectImpl(2048, Passive, create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = \"useImperativeHandle\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useInsertionEffect: function (create, deps) {\n currentHookNameInDev = \"useInsertionEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffectImpl(4, Insertion, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = \"useLayoutEffect\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffectImpl(4, Layout, create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = \"useMemo\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return updateMemo(create, deps);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = \"useReducer\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useRef: function () {\n currentHookNameInDev = \"useRef\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useState: function () {\n currentHookNameInDev = \"useState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactSharedInternals.H;\n ReactSharedInternals.H = InvalidNestedHooksDispatcherOnUpdateInDEV;\n try {\n return rerenderReducer(basicStateReducer);\n } finally {\n ReactSharedInternals.H = prevDispatcher;\n }\n },\n useDebugValue: function () {\n currentHookNameInDev = \"useDebugValue\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n },\n useDeferredValue: function (value, initialValue) {\n currentHookNameInDev = \"useDeferredValue\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderDeferredValue(value, initialValue);\n },\n useTransition: function () {\n currentHookNameInDev = \"useTransition\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderTransition();\n },\n useSyncExternalStore: function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n currentHookNameInDev = \"useSyncExternalStore\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n },\n useId: function () {\n currentHookNameInDev = \"useId\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useFormState: function (action) {\n currentHookNameInDev = \"useFormState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderActionState(action);\n },\n useActionState: function (action) {\n currentHookNameInDev = \"useActionState\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderActionState(action);\n },\n useOptimistic: function (passthrough, reducer) {\n currentHookNameInDev = \"useOptimistic\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderOptimistic(passthrough, reducer);\n },\n useMemoCache: function (size) {\n warnInvalidHookAccess();\n return useMemoCache(size);\n },\n useHostTransitionStatus: useHostTransitionStatus,\n useCacheRefresh: function () {\n currentHookNameInDev = \"useCacheRefresh\";\n updateHookTypesDev();\n return updateWorkInProgressHook().memoizedState;\n },\n useEffectEvent: function (callback) {\n currentHookNameInDev = \"useEffectEvent\";\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEvent(callback);\n }\n };\n var fakeInternalInstance = {};\n var didWarnAboutStateAssignmentForComponent = new Set();\n var didWarnAboutUninitializedState = new Set();\n var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();\n var didWarnAboutLegacyLifecyclesAndDerivedState = new Set();\n var didWarnAboutDirectlyAssigningPropsToState = new Set();\n var didWarnAboutUndefinedDerivedState = new Set();\n var didWarnAboutContextTypes$1 = new Set();\n var didWarnAboutChildContextTypes = new Set();\n var didWarnAboutInvalidateContextType = new Set();\n var didWarnOnInvalidCallback = new Set();\n Object.freeze(fakeInternalInstance);\n var classComponentUpdater = {\n enqueueSetState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(inst),\n update = createUpdate(lane);\n update.payload = payload;\n void 0 !== callback &&\n null !== callback &&\n (warnOnInvalidCallback(callback), (update.callback = callback));\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (startUpdateTimerByLane(lane, \"this.setState()\", inst),\n scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueReplaceState: function (inst, payload, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(inst),\n update = createUpdate(lane);\n update.tag = ReplaceState;\n update.payload = payload;\n void 0 !== callback &&\n null !== callback &&\n (warnOnInvalidCallback(callback), (update.callback = callback));\n payload = enqueueUpdate(inst, update, lane);\n null !== payload &&\n (startUpdateTimerByLane(lane, \"this.replaceState()\", inst),\n scheduleUpdateOnFiber(payload, inst, lane),\n entangleTransitions(payload, inst, lane));\n },\n enqueueForceUpdate: function (inst, callback) {\n inst = inst._reactInternals;\n var lane = requestUpdateLane(inst),\n update = createUpdate(lane);\n update.tag = ForceUpdate;\n void 0 !== callback &&\n null !== callback &&\n (warnOnInvalidCallback(callback), (update.callback = callback));\n callback = enqueueUpdate(inst, update, lane);\n null !== callback &&\n (startUpdateTimerByLane(lane, \"this.forceUpdate()\", inst),\n scheduleUpdateOnFiber(callback, inst, lane),\n entangleTransitions(callback, inst, lane));\n }\n },\n componentName = null,\n errorBoundaryName = null,\n SelectiveHydrationException = Error(\n \"This is not a real error. It's an implementation detail of React's selective hydration feature. If this leaks into userspace, it's a bug in React. Please file an issue.\"\n ),\n didReceiveUpdate = !1;\n var didWarnAboutBadClass = {};\n var didWarnAboutContextTypeOnFunctionComponent = {};\n var didWarnAboutContextTypes = {};\n var didWarnAboutGetDerivedStateOnFunctionComponent = {};\n var didWarnAboutReassigningProps = !1;\n var didWarnAboutRevealOrder = {};\n var didWarnAboutTailOptions = {};\n var SUSPENDED_MARKER = {\n dehydrated: null,\n treeContext: null,\n retryLane: 0,\n hydrationErrors: null\n },\n hasWarnedAboutUsingNoValuePropOnContextProvider = !1,\n didWarnAboutUndefinedSnapshotBeforeUpdate = null;\n didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();\n var offscreenSubtreeIsHidden = !1,\n offscreenSubtreeWasHidden = !1,\n needsFormReset = !1,\n PossiblyWeakSet = \"function\" === typeof WeakSet ? WeakSet : Set,\n nextEffect = null,\n inProgressLanes = null,\n inProgressRoot = null,\n hostParent = null,\n hostParentIsContainer = !1,\n currentHoistableRoot = null,\n inHydratedSubtree = !1,\n suspenseyCommitFlag = 8192,\n DefaultAsyncDispatcher = {\n getCacheForType: function (resourceType) {\n var cache = readContext(CacheContext),\n cacheForType = cache.data.get(resourceType);\n void 0 === cacheForType &&\n ((cacheForType = resourceType()),\n cache.data.set(resourceType, cacheForType));\n return cacheForType;\n },\n cacheSignal: function () {\n return readContext(CacheContext).controller.signal;\n },\n getOwner: function () {\n return current;\n }\n };\n if (\"function\" === typeof Symbol && Symbol.for) {\n var symbolFor = Symbol.for;\n symbolFor(\"selector.component\");\n symbolFor(\"selector.has_pseudo_class\");\n symbolFor(\"selector.role\");\n symbolFor(\"selector.test_id\");\n symbolFor(\"selector.text\");\n }\n var commitHooks = [],\n PossiblyWeakMap = \"function\" === typeof WeakMap ? WeakMap : Map,\n NoContext = 0,\n RenderContext = 2,\n CommitContext = 4,\n RootInProgress = 0,\n RootFatalErrored = 1,\n RootErrored = 2,\n RootSuspended = 3,\n RootSuspendedWithDelay = 4,\n RootSuspendedAtTheShell = 6,\n RootCompleted = 5,\n executionContext = NoContext,\n workInProgressRoot = null,\n workInProgress = null,\n workInProgressRootRenderLanes = 0,\n NotSuspended = 0,\n SuspendedOnError = 1,\n SuspendedOnData = 2,\n SuspendedOnImmediate = 3,\n SuspendedOnInstance = 4,\n SuspendedOnInstanceAndReadyToContinue = 5,\n SuspendedOnDeprecatedThrowPromise = 6,\n SuspendedAndReadyToContinue = 7,\n SuspendedOnHydration = 8,\n SuspendedOnAction = 9,\n workInProgressSuspendedReason = NotSuspended,\n workInProgressThrownValue = null,\n workInProgressRootDidSkipSuspendedSiblings = !1,\n workInProgressRootIsPrerendering = !1,\n workInProgressRootDidAttachPingListener = !1,\n entangledRenderLanes = 0,\n workInProgressRootExitStatus = RootInProgress,\n workInProgressRootSkippedLanes = 0,\n workInProgressRootInterleavedUpdatedLanes = 0,\n workInProgressRootPingedLanes = 0,\n workInProgressDeferredLane = 0,\n workInProgressSuspendedRetryLanes = 0,\n workInProgressRootConcurrentErrors = null,\n workInProgressRootRecoverableErrors = null,\n workInProgressRootDidIncludeRecursiveRenderUpdate = !1,\n globalMostRecentFallbackTime = 0,\n globalMostRecentTransitionTime = 0,\n FALLBACK_THROTTLE_MS = 300,\n workInProgressRootRenderTargetTime = Infinity,\n RENDER_TIMEOUT_MS = 500,\n workInProgressTransitions = null,\n workInProgressUpdateTask = null,\n legacyErrorBoundariesThatAlreadyFailed = null,\n IMMEDIATE_COMMIT = 0,\n ABORTED_VIEW_TRANSITION_COMMIT = 1,\n DELAYED_PASSIVE_COMMIT = 2,\n ANIMATION_STARTED_COMMIT = 3,\n NO_PENDING_EFFECTS = 0,\n PENDING_MUTATION_PHASE = 1,\n PENDING_LAYOUT_PHASE = 2,\n PENDING_AFTER_MUTATION_PHASE = 3,\n PENDING_SPAWNED_WORK = 4,\n PENDING_PASSIVE_PHASE = 5,\n pendingEffectsStatus = 0,\n pendingEffectsRoot = null,\n pendingFinishedWork = null,\n pendingEffectsLanes = 0,\n pendingEffectsRemainingLanes = 0,\n pendingEffectsRenderEndTime = -0,\n pendingPassiveTransitions = null,\n pendingRecoverableErrors = null,\n pendingSuspendedCommitReason = null,\n pendingDelayedCommitReason = IMMEDIATE_COMMIT,\n pendingSuspendedViewTransitionReason = null,\n NESTED_UPDATE_LIMIT = 50,\n nestedUpdateCount = 0,\n rootWithNestedUpdates = null,\n isFlushingPassiveEffects = !1,\n didScheduleUpdateDuringPassiveEffects = !1,\n NESTED_PASSIVE_UPDATE_LIMIT = 50,\n nestedPassiveUpdateCount = 0,\n rootWithPassiveNestedUpdates = null,\n isRunningInsertionEffect = !1,\n didWarnStateUpdateForNotYetMountedComponent = null,\n didWarnAboutUpdateInRender = !1;\n var didWarnAboutUpdateInRenderForAnotherComponent = new Set();\n var fakeActCallbackNode$1 = {},\n firstScheduledRoot = null,\n lastScheduledRoot = null,\n didScheduleMicrotask = !1,\n didScheduleMicrotask_act = !1,\n mightHavePendingSyncWork = !1,\n isFlushingWork = !1,\n currentEventTransitionLane = 0,\n fakeActCallbackNode = {};\n (function () {\n for (var i = 0; i < simpleEventPluginEvents.length; i++) {\n var eventName = simpleEventPluginEvents[i],\n domEventName = eventName.toLowerCase();\n eventName = eventName[0].toUpperCase() + eventName.slice(1);\n registerSimpleEvent(domEventName, \"on\" + eventName);\n }\n registerSimpleEvent(ANIMATION_END, \"onAnimationEnd\");\n registerSimpleEvent(ANIMATION_ITERATION, \"onAnimationIteration\");\n registerSimpleEvent(ANIMATION_START, \"onAnimationStart\");\n registerSimpleEvent(\"dblclick\", \"onDoubleClick\");\n registerSimpleEvent(\"focusin\", \"onFocus\");\n registerSimpleEvent(\"focusout\", \"onBlur\");\n registerSimpleEvent(TRANSITION_RUN, \"onTransitionRun\");\n registerSimpleEvent(TRANSITION_START, \"onTransitionStart\");\n registerSimpleEvent(TRANSITION_CANCEL, \"onTransitionCancel\");\n registerSimpleEvent(TRANSITION_END, \"onTransitionEnd\");\n })();\n registerDirectEvent(\"onMouseEnter\", [\"mouseout\", \"mouseover\"]);\n registerDirectEvent(\"onMouseLeave\", [\"mouseout\", \"mouseover\"]);\n registerDirectEvent(\"onPointerEnter\", [\"pointerout\", \"pointerover\"]);\n registerDirectEvent(\"onPointerLeave\", [\"pointerout\", \"pointerover\"]);\n registerTwoPhaseEvent(\n \"onChange\",\n \"change click focusin focusout input keydown keyup selectionchange\".split(\n \" \"\n )\n );\n registerTwoPhaseEvent(\n \"onSelect\",\n \"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\n \" \"\n )\n );\n registerTwoPhaseEvent(\"onBeforeInput\", [\n \"compositionend\",\n \"keypress\",\n \"textInput\",\n \"paste\"\n ]);\n registerTwoPhaseEvent(\n \"onCompositionEnd\",\n \"compositionend focusout keydown keypress keyup mousedown\".split(\" \")\n );\n registerTwoPhaseEvent(\n \"onCompositionStart\",\n \"compositionstart focusout keydown keypress keyup mousedown\".split(\" \")\n );\n registerTwoPhaseEvent(\n \"onCompositionUpdate\",\n \"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \")\n );\n var mediaEventTypes =\n \"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\n \" \"\n ),\n nonDelegatedEvents = new Set(\n \"beforetoggle cancel close invalid load scroll scrollend toggle\"\n .split(\" \")\n .concat(mediaEventTypes)\n ),\n listeningMarker = \"_reactListening\" + Math.random().toString(36).slice(2),\n didWarnControlledToUncontrolled = !1,\n didWarnUncontrolledToControlled = !1,\n didWarnFormActionType = !1,\n didWarnFormActionName = !1,\n didWarnFormActionTarget = !1,\n didWarnFormActionMethod = !1,\n didWarnPopoverTargetObject = !1;\n var didWarnForNewBooleanPropsWithEmptyValue = {};\n var NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g,\n NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g,\n xlinkNamespace = \"http://www.w3.org/1999/xlink\",\n xmlNamespace = \"http://www.w3.org/XML/1998/namespace\",\n EXPECTED_FORM_ACTION_URL =\n \"javascript:throw new Error('React form unexpectedly submitted.')\",\n SUPPRESS_HYDRATION_WARNING = \"suppressHydrationWarning\",\n ACTIVITY_START_DATA = \"&\",\n ACTIVITY_END_DATA = \"/&\",\n SUSPENSE_START_DATA = \"$\",\n SUSPENSE_END_DATA = \"/$\",\n SUSPENSE_PENDING_START_DATA = \"$?\",\n SUSPENSE_QUEUED_START_DATA = \"$~\",\n SUSPENSE_FALLBACK_START_DATA = \"$!\",\n PREAMBLE_CONTRIBUTION_HTML = \"html\",\n PREAMBLE_CONTRIBUTION_BODY = \"body\",\n PREAMBLE_CONTRIBUTION_HEAD = \"head\",\n FORM_STATE_IS_MATCHING = \"F!\",\n FORM_STATE_IS_NOT_MATCHING = \"F\",\n DOCUMENT_READY_STATE_LOADING = \"loading\",\n STYLE = \"style\",\n HostContextNamespaceNone = 0,\n HostContextNamespaceSvg = 1,\n HostContextNamespaceMath = 2,\n eventsEnabled = null,\n selectionInformation = null,\n warnedUnknownTags = { dialog: !0, webview: !0 },\n currentPopstateTransitionEvent = null,\n schedulerEvent = void 0,\n scheduleTimeout = \"function\" === typeof setTimeout ? setTimeout : void 0,\n cancelTimeout =\n \"function\" === typeof clearTimeout ? clearTimeout : void 0,\n noTimeout = -1,\n localPromise = \"function\" === typeof Promise ? Promise : void 0,\n scheduleMicrotask =\n \"function\" === typeof queueMicrotask\n ? queueMicrotask\n : \"undefined\" !== typeof localPromise\n ? function (callback) {\n return localPromise\n .resolve(null)\n .then(callback)\n .catch(handleErrorInNextTick);\n }\n : scheduleTimeout,\n previousHydratableOnEnteringScopedSingleton = null,\n NotLoaded = 0,\n Loaded = 1,\n Errored = 2,\n Settled = 3,\n Inserted = 4,\n preloadPropsMap = new Map(),\n preconnectsSet = new Set(),\n previousDispatcher = ReactDOMSharedInternals.d;\n ReactDOMSharedInternals.d = {\n f: function () {\n var previousWasRendering = previousDispatcher.f(),\n wasRendering = flushSyncWork$1();\n return previousWasRendering || wasRendering;\n },\n r: function (form) {\n var formInst = getInstanceFromNode(form);\n null !== formInst && 5 === formInst.tag && \"form\" === formInst.type\n ? requestFormReset$1(formInst)\n : previousDispatcher.r(form);\n },\n D: function (href) {\n previousDispatcher.D(href);\n preconnectAs(\"dns-prefetch\", href, null);\n },\n C: function (href, crossOrigin) {\n previousDispatcher.C(href, crossOrigin);\n preconnectAs(\"preconnect\", href, crossOrigin);\n },\n L: function (href, as, options) {\n previousDispatcher.L(href, as, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href && as) {\n var preloadSelector =\n 'link[rel=\"preload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"]';\n \"image\" === as\n ? options && options.imageSrcSet\n ? ((preloadSelector +=\n '[imagesrcset=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSrcSet\n ) +\n '\"]'),\n \"string\" === typeof options.imageSizes &&\n (preloadSelector +=\n '[imagesizes=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(\n options.imageSizes\n ) +\n '\"]'))\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]')\n : (preloadSelector +=\n '[href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]');\n var key = preloadSelector;\n switch (as) {\n case \"style\":\n key = getStyleKey(href);\n break;\n case \"script\":\n key = getScriptKey(href);\n }\n preloadPropsMap.has(key) ||\n ((href = assign(\n {\n rel: \"preload\",\n href:\n \"image\" === as && options && options.imageSrcSet\n ? void 0\n : href,\n as: as\n },\n options\n )),\n preloadPropsMap.set(key, href),\n null !== ownerDocument.querySelector(preloadSelector) ||\n (\"style\" === as &&\n ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n )) ||\n (\"script\" === as &&\n ownerDocument.querySelector(getScriptSelectorFromKey(key))) ||\n ((as = ownerDocument.createElement(\"link\")),\n setInitialProperties(as, \"link\", href),\n markNodeAsHoistable(as),\n ownerDocument.head.appendChild(as)));\n }\n },\n m: function (href, options) {\n previousDispatcher.m(href, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var as =\n options && \"string\" === typeof options.as ? options.as : \"script\",\n preloadSelector =\n 'link[rel=\"modulepreload\"][as=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(as) +\n '\"][href=\"' +\n escapeSelectorAttributeValueInsideDoubleQuotes(href) +\n '\"]',\n key = preloadSelector;\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n key = getScriptKey(href);\n }\n if (\n !preloadPropsMap.has(key) &&\n ((href = assign({ rel: \"modulepreload\", href: href }, options)),\n preloadPropsMap.set(key, href),\n null === ownerDocument.querySelector(preloadSelector))\n ) {\n switch (as) {\n case \"audioworklet\":\n case \"paintworklet\":\n case \"serviceworker\":\n case \"sharedworker\":\n case \"worker\":\n case \"script\":\n if (ownerDocument.querySelector(getScriptSelectorFromKey(key)))\n return;\n }\n as = ownerDocument.createElement(\"link\");\n setInitialProperties(as, \"link\", href);\n markNodeAsHoistable(as);\n ownerDocument.head.appendChild(as);\n }\n }\n },\n X: function (src, options) {\n previousDispatcher.X(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(\n getScriptSelectorFromKey(key)\n )),\n resource ||\n ((src = assign({ src: src, async: !0 }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n },\n S: function (href, precedence, options) {\n previousDispatcher.S(href, precedence, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && href) {\n var styles = getResourcesFromRoot(ownerDocument).hoistableStyles,\n key = getStyleKey(href);\n precedence = precedence || \"default\";\n var resource = styles.get(key);\n if (!resource) {\n var state = { loading: NotLoaded, preload: null };\n if (\n (resource = ownerDocument.querySelector(\n getStylesheetSelectorFromKey(key)\n ))\n )\n state.loading = Loaded | Inserted;\n else {\n href = assign(\n {\n rel: \"stylesheet\",\n href: href,\n \"data-precedence\": precedence\n },\n options\n );\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForStylesheet(href, options);\n var link = (resource = ownerDocument.createElement(\"link\"));\n markNodeAsHoistable(link);\n setInitialProperties(link, \"link\", href);\n link._p = new Promise(function (resolve, reject) {\n link.onload = resolve;\n link.onerror = reject;\n });\n link.addEventListener(\"load\", function () {\n state.loading |= Loaded;\n });\n link.addEventListener(\"error\", function () {\n state.loading |= Errored;\n });\n state.loading |= Inserted;\n insertStylesheet(resource, precedence, ownerDocument);\n }\n resource = {\n type: \"stylesheet\",\n instance: resource,\n count: 1,\n state: state\n };\n styles.set(key, resource);\n }\n }\n },\n M: function (src, options) {\n previousDispatcher.M(src, options);\n var ownerDocument = globalDocument;\n if (ownerDocument && src) {\n var scripts = getResourcesFromRoot(ownerDocument).hoistableScripts,\n key = getScriptKey(src),\n resource = scripts.get(key);\n resource ||\n ((resource = ownerDocument.querySelector(\n getScriptSelectorFromKey(key)\n )),\n resource ||\n ((src = assign({ src: src, async: !0, type: \"module\" }, options)),\n (options = preloadPropsMap.get(key)) &&\n adoptPreloadPropsForScript(src, options),\n (resource = ownerDocument.createElement(\"script\")),\n markNodeAsHoistable(resource),\n setInitialProperties(resource, \"link\", src),\n ownerDocument.head.appendChild(resource)),\n (resource = {\n type: \"script\",\n instance: resource,\n count: 1,\n state: null\n }),\n scripts.set(key, resource));\n }\n }\n };\n var globalDocument = \"undefined\" === typeof document ? null : document,\n tagCaches = null,\n SUSPENSEY_STYLESHEET_TIMEOUT = 6e4,\n SUSPENSEY_IMAGE_TIMEOUT = 800,\n SUSPENSEY_IMAGE_TIME_ESTIMATE = 500,\n estimatedBytesWithinLimit = 0,\n LAST_PRECEDENCE = null,\n precedencesByRoot = null,\n NotPendingTransition = NotPending,\n HostTransitionContext = {\n $$typeof: REACT_CONTEXT_TYPE,\n Provider: null,\n Consumer: null,\n _currentValue: NotPendingTransition,\n _currentValue2: NotPendingTransition,\n _threadCount: 0\n },\n badgeFormat = \"%c%s%c\",\n badgeStyle =\n \"background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px\",\n resetStyle = \"\",\n pad = \" \",\n bind = Function.prototype.bind;\n var didWarnAboutNestedUpdates = !1;\n var overrideHookState = null,\n overrideHookStateDeletePath = null,\n overrideHookStateRenamePath = null,\n overrideProps = null,\n overridePropsDeletePath = null,\n overridePropsRenamePath = null,\n scheduleUpdate = null,\n scheduleRetry = null,\n setErrorHandler = null,\n setSuspenseHandler = null;\n overrideHookState = function (fiber, id, path, value) {\n id = findHook(fiber, id);\n null !== id &&\n ((path = copyWithSetImpl(id.memoizedState, path, 0, value)),\n (id.memoizedState = path),\n (id.baseState = path),\n (fiber.memoizedProps = assign({}, fiber.memoizedProps)),\n (path = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== path && scheduleUpdateOnFiber(path, fiber, 2));\n };\n overrideHookStateDeletePath = function (fiber, id, path) {\n id = findHook(fiber, id);\n null !== id &&\n ((path = copyWithDeleteImpl(id.memoizedState, path, 0)),\n (id.memoizedState = path),\n (id.baseState = path),\n (fiber.memoizedProps = assign({}, fiber.memoizedProps)),\n (path = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== path && scheduleUpdateOnFiber(path, fiber, 2));\n };\n overrideHookStateRenamePath = function (fiber, id, oldPath, newPath) {\n id = findHook(fiber, id);\n null !== id &&\n ((oldPath = copyWithRename(id.memoizedState, oldPath, newPath)),\n (id.memoizedState = oldPath),\n (id.baseState = oldPath),\n (fiber.memoizedProps = assign({}, fiber.memoizedProps)),\n (oldPath = enqueueConcurrentRenderForLane(fiber, 2)),\n null !== oldPath && scheduleUpdateOnFiber(oldPath, fiber, 2));\n };\n overrideProps = function (fiber, path, value) {\n fiber.pendingProps = copyWithSetImpl(fiber.memoizedProps, path, 0, value);\n fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);\n path = enqueueConcurrentRenderForLane(fiber, 2);\n null !== path && scheduleUpdateOnFiber(path, fiber, 2);\n };\n overridePropsDeletePath = function (fiber, path) {\n fiber.pendingProps = copyWithDeleteImpl(fiber.memoizedProps, path, 0);\n fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);\n path = enqueueConcurrentRenderForLane(fiber, 2);\n null !== path && scheduleUpdateOnFiber(path, fiber, 2);\n };\n overridePropsRenamePath = function (fiber, oldPath, newPath) {\n fiber.pendingProps = copyWithRename(\n fiber.memoizedProps,\n oldPath,\n newPath\n );\n fiber.alternate && (fiber.alternate.pendingProps = fiber.pendingProps);\n oldPath = enqueueConcurrentRenderForLane(fiber, 2);\n null !== oldPath && scheduleUpdateOnFiber(oldPath, fiber, 2);\n };\n scheduleUpdate = function (fiber) {\n var root = enqueueConcurrentRenderForLane(fiber, 2);\n null !== root && scheduleUpdateOnFiber(root, fiber, 2);\n };\n scheduleRetry = function (fiber) {\n var lane = claimNextRetryLane(),\n root = enqueueConcurrentRenderForLane(fiber, lane);\n null !== root && scheduleUpdateOnFiber(root, fiber, lane);\n };\n setErrorHandler = function (newShouldErrorImpl) {\n shouldErrorImpl = newShouldErrorImpl;\n };\n setSuspenseHandler = function (newShouldSuspendImpl) {\n shouldSuspendImpl = newShouldSuspendImpl;\n };\n var _enabled = !0,\n return_targetInst = null,\n hasScheduledReplayAttempt = !1,\n queuedFocus = null,\n queuedDrag = null,\n queuedMouse = null,\n queuedPointers = new Map(),\n queuedPointerCaptures = new Map(),\n queuedExplicitHydrationTargets = [],\n discreteReplayableEvents =\n \"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset\".split(\n \" \"\n ),\n lastScheduledReplayQueue = null;\n ReactDOMHydrationRoot.prototype.render = ReactDOMRoot.prototype.render =\n function (children) {\n var root = this._internalRoot;\n if (null === root) throw Error(\"Cannot update an unmounted root.\");\n var args = arguments;\n \"function\" === typeof args[1]\n ? console.error(\n \"does not support the second callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().\"\n )\n : isValidContainer(args[1])\n ? console.error(\n \"You passed a container to the second argument of root.render(...). You don't need to pass it again since you already passed it to create the root.\"\n )\n : \"undefined\" !== typeof args[1] &&\n console.error(\n \"You passed a second argument to root.render(...) but it only accepts one argument.\"\n );\n args = children;\n var current = root.current,\n lane = requestUpdateLane(current);\n updateContainerImpl(current, lane, args, root, null, null);\n };\n ReactDOMHydrationRoot.prototype.unmount = ReactDOMRoot.prototype.unmount =\n function () {\n var args = arguments;\n \"function\" === typeof args[0] &&\n console.error(\n \"does not support a callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().\"\n );\n args = this._internalRoot;\n if (null !== args) {\n this._internalRoot = null;\n var container = args.containerInfo;\n (executionContext & (RenderContext | CommitContext)) !== NoContext &&\n console.error(\n \"Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition.\"\n );\n updateContainerImpl(args.current, 2, null, args, null, null);\n flushSyncWork$1();\n container[internalContainerInstanceKey] = null;\n }\n };\n ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (\n target\n ) {\n if (target) {\n var updatePriority = resolveUpdatePriority();\n target = { blockedOn: null, target: target, priority: updatePriority };\n for (\n var i = 0;\n i < queuedExplicitHydrationTargets.length &&\n 0 !== updatePriority &&\n updatePriority < queuedExplicitHydrationTargets[i].priority;\n i++\n );\n queuedExplicitHydrationTargets.splice(i, 0, target);\n 0 === i && attemptExplicitHydrationTarget(target);\n }\n };\n (function () {\n var isomorphicReactPackageVersion = React.version;\n if (\"19.2.4\" !== isomorphicReactPackageVersion)\n throw Error(\n 'Incompatible React versions: The \"react\" and \"react-dom\" packages must have the exact same version. Instead got:\\n - react: ' +\n (isomorphicReactPackageVersion +\n \"\\n - react-dom: 19.2.4\\nLearn more: https://react.dev/warnings/version-mismatch\")\n );\n })();\n (\"function\" === typeof Map &&\n null != Map.prototype &&\n \"function\" === typeof Map.prototype.forEach &&\n \"function\" === typeof Set &&\n null != Set.prototype &&\n \"function\" === typeof Set.prototype.clear &&\n \"function\" === typeof Set.prototype.forEach) ||\n console.error(\n \"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://react.dev/link/react-polyfills\"\n );\n ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {\n var fiber = componentOrElement._reactInternals;\n if (void 0 === fiber) {\n if (\"function\" === typeof componentOrElement.render)\n throw Error(\"Unable to find node on an unmounted component.\");\n componentOrElement = Object.keys(componentOrElement).join(\",\");\n throw Error(\n \"Argument appears to not be a ReactComponent. Keys: \" +\n componentOrElement\n );\n }\n componentOrElement = findCurrentFiberUsingSlowPath(fiber);\n componentOrElement =\n null !== componentOrElement\n ? findCurrentHostFiberImpl(componentOrElement)\n : null;\n componentOrElement =\n null === componentOrElement ? null : componentOrElement.stateNode;\n return componentOrElement;\n };\n if (\n !(function () {\n var internals = {\n bundleType: 1,\n version: \"19.2.4\",\n rendererPackageName: \"react-dom\",\n currentDispatcherRef: ReactSharedInternals,\n reconcilerVersion: \"19.2.4\"\n };\n internals.overrideHookState = overrideHookState;\n internals.overrideHookStateDeletePath = overrideHookStateDeletePath;\n internals.overrideHookStateRenamePath = overrideHookStateRenamePath;\n internals.overrideProps = overrideProps;\n internals.overridePropsDeletePath = overridePropsDeletePath;\n internals.overridePropsRenamePath = overridePropsRenamePath;\n internals.scheduleUpdate = scheduleUpdate;\n internals.scheduleRetry = scheduleRetry;\n internals.setErrorHandler = setErrorHandler;\n internals.setSuspenseHandler = setSuspenseHandler;\n internals.scheduleRefresh = scheduleRefresh;\n internals.scheduleRoot = scheduleRoot;\n internals.setRefreshHandler = setRefreshHandler;\n internals.getCurrentFiber = getCurrentFiberForDevTools;\n return injectInternals(internals);\n })() &&\n canUseDOM &&\n window.top === window.self &&\n ((-1 < navigator.userAgent.indexOf(\"Chrome\") &&\n -1 === navigator.userAgent.indexOf(\"Edge\")) ||\n -1 < navigator.userAgent.indexOf(\"Firefox\"))\n ) {\n var protocol = window.location.protocol;\n /^(https?|file):$/.test(protocol) &&\n console.info(\n \"%cDownload the React DevTools for a better development experience: https://react.dev/link/react-devtools\" +\n (\"file:\" === protocol\n ? \"\\nYou might need to use a local HTTP server (instead of file://): https://react.dev/link/react-devtools-faq\"\n : \"\"),\n \"font-weight:bold\"\n );\n }\n exports.createRoot = function (container, options) {\n if (!isValidContainer(container))\n throw Error(\"Target container is not a DOM element.\");\n warnIfReactDOMContainerInDEV(container);\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError;\n null !== options &&\n void 0 !== options &&\n (options.hydrate\n ? console.warn(\n \"hydrate through createRoot is deprecated. Use ReactDOMClient.hydrateRoot(container, <App />) instead.\"\n )\n : \"object\" === typeof options &&\n null !== options &&\n options.$$typeof === REACT_ELEMENT_TYPE &&\n console.error(\n \"You passed a JSX element to createRoot. You probably meant to call root.render instead. Example usage:\\n\\n let root = createRoot(domContainer);\\n root.render(<App />);\"\n ),\n !0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError &&\n (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError));\n options = createFiberRoot(\n container,\n 1,\n !1,\n null,\n null,\n isStrictMode,\n identifierPrefix,\n null,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n container[internalContainerInstanceKey] = options.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMRoot(options);\n };\n exports.hydrateRoot = function (container, initialChildren, options) {\n if (!isValidContainer(container))\n throw Error(\"Target container is not a DOM element.\");\n warnIfReactDOMContainerInDEV(container);\n void 0 === initialChildren &&\n console.error(\n \"Must provide initial children as second argument to hydrateRoot. Example usage: hydrateRoot(domContainer, <App />)\"\n );\n var isStrictMode = !1,\n identifierPrefix = \"\",\n onUncaughtError = defaultOnUncaughtError,\n onCaughtError = defaultOnCaughtError,\n onRecoverableError = defaultOnRecoverableError,\n formState = null;\n null !== options &&\n void 0 !== options &&\n (!0 === options.unstable_strictMode && (isStrictMode = !0),\n void 0 !== options.identifierPrefix &&\n (identifierPrefix = options.identifierPrefix),\n void 0 !== options.onUncaughtError &&\n (onUncaughtError = options.onUncaughtError),\n void 0 !== options.onCaughtError &&\n (onCaughtError = options.onCaughtError),\n void 0 !== options.onRecoverableError &&\n (onRecoverableError = options.onRecoverableError),\n void 0 !== options.formState && (formState = options.formState));\n initialChildren = createFiberRoot(\n container,\n 1,\n !0,\n initialChildren,\n null != options ? options : null,\n isStrictMode,\n identifierPrefix,\n formState,\n onUncaughtError,\n onCaughtError,\n onRecoverableError,\n defaultOnDefaultTransitionIndicator\n );\n initialChildren.context = getContextForSubtree(null);\n options = initialChildren.current;\n isStrictMode = requestUpdateLane(options);\n isStrictMode = getBumpedLaneForHydrationByLane(isStrictMode);\n identifierPrefix = createUpdate(isStrictMode);\n identifierPrefix.callback = null;\n enqueueUpdate(options, identifierPrefix, isStrictMode);\n startUpdateTimerByLane(isStrictMode, \"hydrateRoot()\", null);\n options = isStrictMode;\n initialChildren.current.lanes = options;\n markRootUpdated$1(initialChildren, options);\n ensureRootIsScheduled(initialChildren);\n container[internalContainerInstanceKey] = initialChildren.current;\n listenToAllSupportedEvents(container);\n return new ReactDOMHydrationRoot(initialChildren);\n };\n exports.version = \"19.2.4\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20tY2xpZW50LmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ2E7QUFDYixLQUFxQztBQUNyQztBQUNBO0FBQ0Esd0NBQXdDLDBCQUEwQjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isd0JBQXdCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0REFBNEQ7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNERBQTREO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLGFBQWE7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxTQUFTO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4REFBOEQsUUFBUTtBQUN0RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsUUFBUTtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGVBQWU7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsUUFBUTtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0Esd0JBQXdCLFdBQVcsZ0JBQWdCO0FBQ25ELHlCQUF5QixXQUFXLGlCQUFpQjtBQUNyRCx5QkFBeUIsV0FBVyxpQkFBaUI7QUFDckQsMEJBQTBCLFdBQVcsa0JBQWtCO0FBQ3ZELDBCQUEwQixXQUFXLGtCQUFrQjtBQUN2RCxtQ0FBbUMsV0FBVywyQkFBMkI7QUFDekUsNkJBQTZCLFdBQVcscUJBQXFCO0FBQzdELFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLFFBQVE7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGdCQUFnQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsUUFBUTtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyxvQkFBb0I7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsV0FBVztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsWUFBWTtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkseURBQXlEO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHNCQUFzQjtBQUM5QztBQUNBLDRCQUE0Qix5QkFBeUI7QUFDckQ7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsaUNBQWlDO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLE1BQU07QUFDeEIsa0JBQWtCLDRDQUE0QztBQUM5RCxnQkFBZ0IsZ0JBQWdCO0FBQ2hDO0FBQ0E7QUFDQSxnQkFBZ0IsTUFBTTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsYUFBYTtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDRDQUE0QztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLE9BQU87QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHNCQUFzQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGlCQUFpQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpRUFBaUUsT0FBTztBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEMsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsaUJBQWlCO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0hBQWtILDhCQUE4QjtBQUNoSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnTkFBZ047QUFDaE47QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0pBQWtKLGlCQUFpQjtBQUNuSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtKQUFrSixpQkFBaUIsbURBQW1ELG1CQUFtQixXQUFXLCtCQUErQjtBQUNuUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0RkFBNEYsR0FBRztBQUMvRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxrQkFBa0I7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZUFBZTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULCtCQUErQjtBQUMvQjtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQ7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixxQ0FBcUM7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0Isc0JBQXNCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSx5QkFBeUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixNQUFNO0FBQzlCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsTUFBTTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixrREFBa0Q7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsb0NBQW9DO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxrQkFBa0I7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MsdUJBQXVCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDLCtDQUErQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxnQkFBZ0I7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsbUJBQW1CO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qiw4QkFBOEI7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsbUJBQW1CO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQsaUJBQWlCO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RCxpQkFBaUI7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLGtEQUFrRDtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsNkNBQTZDO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxxQ0FBcUM7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLHdDQUF3QztBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QiwrQkFBK0I7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxzQkFBc0I7QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCxpQkFBaUI7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0QsOEJBQThCO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsaUJBQWlCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLGdCQUFnQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixlQUFlO0FBQ25DO0FBQ0E7QUFDQSw0QkFBNEIscUJBQXFCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0Esa0NBQWtDLG9CQUFvQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsT0FBTztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixzQkFBc0I7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsc0JBQXNCO0FBQ2hELFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsMEJBQTBCO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsaUJBQWlCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLFFBQVE7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5REFBeUQsaUJBQWlCO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLHlDQUF5QztBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaU1BQWlNLEdBQUc7QUFDcE07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLDRCQUE0QjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0NBQStDLDRCQUE0QjtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQiw2QkFBNkI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsWUFBWTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMsNEJBQTRCO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxRQUFRO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBNQUEwTSxHQUFHO0FBQzdNO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixnREFBZ0Q7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0Esc0NBQXNDO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsZUFBZTtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSx1QkFBdUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLDhCQUE4QjtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDRDQUE0QztBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsZUFBZTtBQUNmO0FBQ0EsMENBQTBDLG9CQUFvQjtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVLGlCQUFpQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksaUJBQWlCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQix1QkFBdUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGlCQUFpQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxpQkFBaUI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLDhCQUE4QjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0Msb0NBQW9DO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFlBQVksb0JBQW9CLHFDQUFxQztBQUNyRTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxtQkFBbUI7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsaUNBQWlDO0FBQ3BFO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULFFBQVE7QUFDUjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxvQkFBb0I7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLCtCQUErQjtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixNQUFNO0FBQy9CLHlCQUF5QixJQUFJO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLFVBQVUsb0RBQW9EO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUVBQWlFO0FBQ2pFO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLCtDQUErQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEI7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsNENBQTRDO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnREFBZ0Qsa0JBQWtCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsMEJBQTBCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHNCQUFzQjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsc0JBQXNCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsMEJBQTBCO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsd0NBQXdDO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseURBQXlELGFBQWE7QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyxtQ0FBbUM7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLHVCQUF1QjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOENBQThDLGdCQUFnQjtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLHNDQUFzQztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsa0JBQWtCO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixnQ0FBZ0MsOEVBQThFLGlCQUFpQixnQkFBZ0IsR0FBRyxhQUFhO0FBQzlMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQixlQUFlLHdCQUF3QjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEIsaUNBQWlDO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRDtBQUN0RCxjQUFjO0FBQ2Q7QUFDQSwrQ0FBK0M7QUFDL0MsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MscUJBQXFCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHFCQUFxQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxpQkFBaUI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isc0JBQXNCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsc0JBQXNCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQ0FBMEMsdUJBQXVCO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsdUJBQXVCO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLHVCQUF1QjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxzQkFBc0I7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxzQkFBc0I7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLHNCQUFzQjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLHNCQUFzQjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxzQkFBc0I7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsc0JBQXNCO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxnQkFBZ0I7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxzQkFBc0I7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLHNCQUFzQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxzQkFBc0I7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsc0JBQXNCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QyxzQkFBc0I7QUFDbEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxxQkFBcUI7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMscUJBQXFCO0FBQ25FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0M7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsZ0JBQWdCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQix1QkFBdUI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLFdBQVc7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSwwQkFBMEI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQsYUFBYTtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSx5QkFBeUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLDJDQUEyQztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLGdCQUFnQjtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxpQ0FBaUM7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZNQUE2TSwwQ0FBMEMsRUFBRTtBQUN6UDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsc0JBQXNCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNktBQTZLLDBDQUEwQyxFQUFFO0FBQ3pOO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4Q0FBOEMsZUFBZTtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDBCQUEwQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RCxrQkFBa0I7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixvQkFBb0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQixvQ0FBb0M7QUFDL0Q7QUFDQTtBQUNBLDJCQUEyQixvQ0FBb0M7QUFDL0Q7QUFDQSwyQkFBMkIscUJBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLG9DQUFvQztBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRIQUE0SCxtQkFBbUIsV0FBVywrQkFBK0I7QUFDekw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUVBQXVFLFlBQVk7QUFDbkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1RUFBdUUsWUFBWTtBQUNuRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLGlDQUFpQztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHVCQUF1QjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrSEFBa0gsOEJBQThCO0FBQ2hKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Qsb0JBQW9CO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLDRCQUE0QjtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRCxlQUFlO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxVQUFVO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSx5QkFBeUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSx5QkFBeUI7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLHlCQUF5QjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxjQUFjO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZCxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixtQkFBbUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLGdCQUFnQjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLGdCQUFnQjtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsbUJBQW1CO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixnREFBZ0Q7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsK0JBQStCO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkhBQTZILEtBQUssYUFBYSxLQUFLO0FBQ3BKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUlBQWlJLEtBQUssYUFBYSxLQUFLO0FBQ3hKO0FBQ0E7QUFDQSwwRkFBMEYsS0FBSztBQUMvRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixVQUFVO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0VBQXdFO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixvQkFBb0I7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsT0FBTztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwrQkFBK0I7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDJDQUEyQztBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHlCQUF5QjtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmLGFBQWE7QUFDYjtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLG1CQUFPLENBQUMsb0RBQVc7QUFDdkMsY0FBYyxtQkFBTyxDQUFDLDRDQUFPO0FBQzdCLGlCQUFpQixtQkFBTyxDQUFDLG9EQUFXO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1QztBQUN2QyxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEMsc0NBQXNDO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEM7QUFDNUMsMkJBQTJCO0FBQzNCLDRCQUE0QjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxrQ0FBa0Msb0JBQW9CLG9CQUFvQjtBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0Esb0NBQW9DLHlCQUF5QixpQkFBaUI7QUFDOUU7QUFDQSxxQ0FBcUMsc0JBQXNCLGtCQUFrQjtBQUM3RTtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSx5Q0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLDJDQUEyQyxvQkFBb0IsU0FBUztBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1Asd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLHVDQUF1QztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsMENBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLHFDQUFxQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0Esc0NBQXNDO0FBQ3RDO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxnQkFBZ0I7QUFDaEIsb0NBQW9DLE9BQU87QUFDM0Msc0NBQXNDLE9BQU87QUFDN0M7QUFDQSxnQkFBZ0IsT0FBTztBQUN2QjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEIsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJEQUEyRDtBQUMzRDtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscURBQXFEO0FBQ3JELDJEQUEyRDtBQUMzRCxrREFBa0Q7QUFDbEQsaURBQWlEO0FBQ2pEO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixlQUFlO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG9DQUFvQztBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHlCQUF5QjtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixrQ0FBa0M7QUFDaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHFCQUFxQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQixxQ0FBcUM7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSw2QkFBNkIsZ0VBQWdFLGVBQWUsb0NBQW9DO0FBQ2hKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksa0JBQWtCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtKQUErSix5QkFBeUI7QUFDeEw7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLG1CQUFtQjtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksZUFBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUciLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20tY2xpZW50LmRldmVsb3BtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWRvbS1jbGllbnQuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbi8qXG4gTW9kZXJuaXpyIDMuMC4wcHJlIChDdXN0b20gQnVpbGQpIHwgTUlUXG4qL1xuXCJ1c2Ugc3RyaWN0XCI7XG5cInByb2R1Y3Rpb25cIiAhPT0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgJiZcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBmaW5kSG9vayhmaWJlciwgaWQpIHtcbiAgICAgIGZvciAoZmliZXIgPSBmaWJlci5tZW1vaXplZFN0YXRlOyBudWxsICE9PSBmaWJlciAmJiAwIDwgaWQ7IClcbiAgICAgICAgKGZpYmVyID0gZmliZXIubmV4dCksIGlkLS07XG4gICAgICByZXR1cm4gZmliZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvcHlXaXRoU2V0SW1wbChvYmosIHBhdGgsIGluZGV4LCB2YWx1ZSkge1xuICAgICAgaWYgKGluZGV4ID49IHBhdGgubGVuZ3RoKSByZXR1cm4gdmFsdWU7XG4gICAgICB2YXIga2V5ID0gcGF0aFtpbmRleF0sXG4gICAgICAgIHVwZGF0ZWQgPSBpc0FycmF5SW1wbChvYmopID8gb2JqLnNsaWNlKCkgOiBhc3NpZ24oe30sIG9iaik7XG4gICAgICB1cGRhdGVkW2tleV0gPSBjb3B5V2l0aFNldEltcGwob2JqW2tleV0sIHBhdGgsIGluZGV4ICsgMSwgdmFsdWUpO1xuICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvcHlXaXRoUmVuYW1lKG9iaiwgb2xkUGF0aCwgbmV3UGF0aCkge1xuICAgICAgaWYgKG9sZFBhdGgubGVuZ3RoICE9PSBuZXdQYXRoLmxlbmd0aClcbiAgICAgICAgY29uc29sZS53YXJuKFwiY29weVdpdGhSZW5hbWUoKSBleHBlY3RzIHBhdGhzIG9mIHRoZSBzYW1lIGxlbmd0aFwiKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5ld1BhdGgubGVuZ3RoIC0gMTsgaSsrKVxuICAgICAgICAgIGlmIChvbGRQYXRoW2ldICE9PSBuZXdQYXRoW2ldKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIFwiY29weVdpdGhSZW5hbWUoKSBleHBlY3RzIHBhdGhzIHRvIGJlIHRoZSBzYW1lIGV4Y2VwdCBmb3IgdGhlIGRlZXBlc3Qga2V5XCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29weVdpdGhSZW5hbWVJbXBsKG9iaiwgb2xkUGF0aCwgbmV3UGF0aCwgMCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvcHlXaXRoUmVuYW1lSW1wbChvYmosIG9sZFBhdGgsIG5ld1BhdGgsIGluZGV4KSB7XG4gICAgICB2YXIgb2xkS2V5ID0gb2xkUGF0aFtpbmRleF0sXG4gICAgICAgIHVwZGF0ZWQgPSBpc0FycmF5SW1wbChvYmopID8gb2JqLnNsaWNlKCkgOiBhc3NpZ24oe30sIG9iaik7XG4gICAgICBpbmRleCArIDEgPT09IG9sZFBhdGgubGVuZ3RoXG4gICAgICAgID8gKCh1cGRhdGVkW25ld1BhdGhbaW5kZXhdXSA9IHVwZGF0ZWRbb2xkS2V5XSksXG4gICAgICAgICAgaXNBcnJheUltcGwodXBkYXRlZClcbiAgICAgICAgICAgID8gdXBkYXRlZC5zcGxpY2Uob2xkS2V5LCAxKVxuICAgICAgICAgICAgOiBkZWxldGUgdXBkYXRlZFtvbGRLZXldKVxuICAgICAgICA6ICh1cGRhdGVkW29sZEtleV0gPSBjb3B5V2l0aFJlbmFtZUltcGwoXG4gICAgICAgICAgICBvYmpbb2xkS2V5XSxcbiAgICAgICAgICAgIG9sZFBhdGgsXG4gICAgICAgICAgICBuZXdQYXRoLFxuICAgICAgICAgICAgaW5kZXggKyAxXG4gICAgICAgICAgKSk7XG4gICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29weVdpdGhEZWxldGVJbXBsKG9iaiwgcGF0aCwgaW5kZXgpIHtcbiAgICAgIHZhciBrZXkgPSBwYXRoW2luZGV4XSxcbiAgICAgICAgdXBkYXRlZCA9IGlzQXJyYXlJbXBsKG9iaikgPyBvYmouc2xpY2UoKSA6IGFzc2lnbih7fSwgb2JqKTtcbiAgICAgIGlmIChpbmRleCArIDEgPT09IHBhdGgubGVuZ3RoKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGlzQXJyYXlJbXBsKHVwZGF0ZWQpID8gdXBkYXRlZC5zcGxpY2Uoa2V5LCAxKSA6IGRlbGV0ZSB1cGRhdGVkW2tleV0sXG4gICAgICAgICAgdXBkYXRlZFxuICAgICAgICApO1xuICAgICAgdXBkYXRlZFtrZXldID0gY29weVdpdGhEZWxldGVJbXBsKG9ialtrZXldLCBwYXRoLCBpbmRleCArIDEpO1xuICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNob3VsZFN1c3BlbmRJbXBsKCkge1xuICAgICAgcmV0dXJuICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzaG91bGRFcnJvckltcGwoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2FybkludmFsaWRIb29rQWNjZXNzKCkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgXCJEbyBub3QgY2FsbCBIb29rcyBpbnNpZGUgdXNlRWZmZWN0KC4uLiksIHVzZU1lbW8oLi4uKSwgb3Igb3RoZXIgYnVpbHQtaW4gSG9va3MuIFlvdSBjYW4gb25seSBjYWxsIEhvb2tzIGF0IHRoZSB0b3AgbGV2ZWwgb2YgeW91ciBSZWFjdCBmdW5jdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL3J1bGVzLW9mLWhvb2tzXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5JbnZhbGlkQ29udGV4dEFjY2VzcygpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIFwiQ29udGV4dCBjYW4gb25seSBiZSByZWFkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZy4gSW4gY2xhc3NlcywgeW91IGNhbiByZWFkIGl0IGluIHRoZSByZW5kZXIgbWV0aG9kIG9yIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90IGluc2lkZSBIb29rcyBsaWtlIHVzZVJlZHVjZXIoKSBvciB1c2VNZW1vKCkuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG5vb3AoKSB7fVxuICAgIGZ1bmN0aW9uIHdhcm5Gb3JNaXNzaW5nS2V5KCkge31cbiAgICBmdW5jdGlvbiBzZXRUb1NvcnRlZFN0cmluZyhzZXQpIHtcbiAgICAgIHZhciBhcnJheSA9IFtdO1xuICAgICAgc2V0LmZvckVhY2goZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIGFycmF5LnB1c2godmFsdWUpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gYXJyYXkuc29ydCgpLmpvaW4oXCIsIFwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlRmliZXIodGFnLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSkge1xuICAgICAgcmV0dXJuIG5ldyBGaWJlck5vZGUodGFnLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNjaGVkdWxlUm9vdChyb290LCBlbGVtZW50KSB7XG4gICAgICByb290LmNvbnRleHQgPT09IGVtcHR5Q29udGV4dE9iamVjdCAmJlxuICAgICAgICAodXBkYXRlQ29udGFpbmVySW1wbChyb290LmN1cnJlbnQsIDIsIGVsZW1lbnQsIHJvb3QsIG51bGwsIG51bGwpLFxuICAgICAgICBmbHVzaFN5bmNXb3JrJDEoKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNjaGVkdWxlUmVmcmVzaChyb290LCB1cGRhdGUpIHtcbiAgICAgIGlmIChudWxsICE9PSByZXNvbHZlRmFtaWx5KSB7XG4gICAgICAgIHZhciBzdGFsZUZhbWlsaWVzID0gdXBkYXRlLnN0YWxlRmFtaWxpZXM7XG4gICAgICAgIHVwZGF0ZSA9IHVwZGF0ZS51cGRhdGVkRmFtaWxpZXM7XG4gICAgICAgIGZsdXNoUGVuZGluZ0VmZmVjdHMoKTtcbiAgICAgICAgc2NoZWR1bGVGaWJlcnNXaXRoRmFtaWxpZXNSZWN1cnNpdmVseShcbiAgICAgICAgICByb290LmN1cnJlbnQsXG4gICAgICAgICAgdXBkYXRlLFxuICAgICAgICAgIHN0YWxlRmFtaWxpZXNcbiAgICAgICAgKTtcbiAgICAgICAgZmx1c2hTeW5jV29yayQxKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldFJlZnJlc2hIYW5kbGVyKGhhbmRsZXIpIHtcbiAgICAgIHJlc29sdmVGYW1pbHkgPSBoYW5kbGVyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1ZhbGlkQ29udGFpbmVyKG5vZGUpIHtcbiAgICAgIHJldHVybiAhKFxuICAgICAgICAhbm9kZSB8fFxuICAgICAgICAoMSAhPT0gbm9kZS5ub2RlVHlwZSAmJiA5ICE9PSBub2RlLm5vZGVUeXBlICYmIDExICE9PSBub2RlLm5vZGVUeXBlKVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0TmVhcmVzdE1vdW50ZWRGaWJlcihmaWJlcikge1xuICAgICAgdmFyIG5vZGUgPSBmaWJlcixcbiAgICAgICAgbmVhcmVzdE1vdW50ZWQgPSBmaWJlcjtcbiAgICAgIGlmIChmaWJlci5hbHRlcm5hdGUpIGZvciAoOyBub2RlLnJldHVybjsgKSBub2RlID0gbm9kZS5yZXR1cm47XG4gICAgICBlbHNlIHtcbiAgICAgICAgZmliZXIgPSBub2RlO1xuICAgICAgICBkb1xuICAgICAgICAgIChub2RlID0gZmliZXIpLFxuICAgICAgICAgICAgMCAhPT0gKG5vZGUuZmxhZ3MgJiA0MDk4KSAmJiAobmVhcmVzdE1vdW50ZWQgPSBub2RlLnJldHVybiksXG4gICAgICAgICAgICAoZmliZXIgPSBub2RlLnJldHVybik7XG4gICAgICAgIHdoaWxlIChmaWJlcik7XG4gICAgICB9XG4gICAgICByZXR1cm4gMyA9PT0gbm9kZS50YWcgPyBuZWFyZXN0TW91bnRlZCA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN1c3BlbnNlSW5zdGFuY2VGcm9tRmliZXIoZmliZXIpIHtcbiAgICAgIGlmICgxMyA9PT0gZmliZXIudGFnKSB7XG4gICAgICAgIHZhciBzdXNwZW5zZVN0YXRlID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgbnVsbCA9PT0gc3VzcGVuc2VTdGF0ZSAmJlxuICAgICAgICAgICgoZmliZXIgPSBmaWJlci5hbHRlcm5hdGUpLFxuICAgICAgICAgIG51bGwgIT09IGZpYmVyICYmIChzdXNwZW5zZVN0YXRlID0gZmliZXIubWVtb2l6ZWRTdGF0ZSkpO1xuICAgICAgICBpZiAobnVsbCAhPT0gc3VzcGVuc2VTdGF0ZSkgcmV0dXJuIHN1c3BlbnNlU3RhdGUuZGVoeWRyYXRlZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRBY3Rpdml0eUluc3RhbmNlRnJvbUZpYmVyKGZpYmVyKSB7XG4gICAgICBpZiAoMzEgPT09IGZpYmVyLnRhZykge1xuICAgICAgICB2YXIgYWN0aXZpdHlTdGF0ZSA9IGZpYmVyLm1lbW9pemVkU3RhdGU7XG4gICAgICAgIG51bGwgPT09IGFjdGl2aXR5U3RhdGUgJiZcbiAgICAgICAgICAoKGZpYmVyID0gZmliZXIuYWx0ZXJuYXRlKSxcbiAgICAgICAgICBudWxsICE9PSBmaWJlciAmJiAoYWN0aXZpdHlTdGF0ZSA9IGZpYmVyLm1lbW9pemVkU3RhdGUpKTtcbiAgICAgICAgaWYgKG51bGwgIT09IGFjdGl2aXR5U3RhdGUpIHJldHVybiBhY3Rpdml0eVN0YXRlLmRlaHlkcmF0ZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gYXNzZXJ0SXNNb3VudGVkKGZpYmVyKSB7XG4gICAgICBpZiAoZ2V0TmVhcmVzdE1vdW50ZWRGaWJlcihmaWJlcikgIT09IGZpYmVyKVxuICAgICAgICB0aHJvdyBFcnJvcihcIlVuYWJsZSB0byBmaW5kIG5vZGUgb24gYW4gdW5tb3VudGVkIGNvbXBvbmVudC5cIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpbmRDdXJyZW50RmliZXJVc2luZ1Nsb3dQYXRoKGZpYmVyKSB7XG4gICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuICAgICAgaWYgKCFhbHRlcm5hdGUpIHtcbiAgICAgICAgYWx0ZXJuYXRlID0gZ2V0TmVhcmVzdE1vdW50ZWRGaWJlcihmaWJlcik7XG4gICAgICAgIGlmIChudWxsID09PSBhbHRlcm5hdGUpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIpO1xuICAgICAgICByZXR1cm4gYWx0ZXJuYXRlICE9PSBmaWJlciA/IG51bGwgOiBmaWJlcjtcbiAgICAgIH1cbiAgICAgIGZvciAodmFyIGEgPSBmaWJlciwgYiA9IGFsdGVybmF0ZTsgOyApIHtcbiAgICAgICAgdmFyIHBhcmVudEEgPSBhLnJldHVybjtcbiAgICAgICAgaWYgKG51bGwgPT09IHBhcmVudEEpIGJyZWFrO1xuICAgICAgICB2YXIgcGFyZW50QiA9IHBhcmVudEEuYWx0ZXJuYXRlO1xuICAgICAgICBpZiAobnVsbCA9PT0gcGFyZW50Qikge1xuICAgICAgICAgIGIgPSBwYXJlbnRBLnJldHVybjtcbiAgICAgICAgICBpZiAobnVsbCAhPT0gYikge1xuICAgICAgICAgICAgYSA9IGI7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhcmVudEEuY2hpbGQgPT09IHBhcmVudEIuY2hpbGQpIHtcbiAgICAgICAgICBmb3IgKHBhcmVudEIgPSBwYXJlbnRBLmNoaWxkOyBwYXJlbnRCOyApIHtcbiAgICAgICAgICAgIGlmIChwYXJlbnRCID09PSBhKSByZXR1cm4gYXNzZXJ0SXNNb3VudGVkKHBhcmVudEEpLCBmaWJlcjtcbiAgICAgICAgICAgIGlmIChwYXJlbnRCID09PSBiKSByZXR1cm4gYXNzZXJ0SXNNb3VudGVkKHBhcmVudEEpLCBhbHRlcm5hdGU7XG4gICAgICAgICAgICBwYXJlbnRCID0gcGFyZW50Qi5zaWJsaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBFcnJvcihcIlVuYWJsZSB0byBmaW5kIG5vZGUgb24gYW4gdW5tb3VudGVkIGNvbXBvbmVudC5cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGEucmV0dXJuICE9PSBiLnJldHVybikgKGEgPSBwYXJlbnRBKSwgKGIgPSBwYXJlbnRCKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgZm9yICh2YXIgZGlkRmluZENoaWxkID0gITEsIF9jaGlsZCA9IHBhcmVudEEuY2hpbGQ7IF9jaGlsZDsgKSB7XG4gICAgICAgICAgICBpZiAoX2NoaWxkID09PSBhKSB7XG4gICAgICAgICAgICAgIGRpZEZpbmRDaGlsZCA9ICEwO1xuICAgICAgICAgICAgICBhID0gcGFyZW50QTtcbiAgICAgICAgICAgICAgYiA9IHBhcmVudEI7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKF9jaGlsZCA9PT0gYikge1xuICAgICAgICAgICAgICBkaWRGaW5kQ2hpbGQgPSAhMDtcbiAgICAgICAgICAgICAgYiA9IHBhcmVudEE7XG4gICAgICAgICAgICAgIGEgPSBwYXJlbnRCO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9jaGlsZCA9IF9jaGlsZC5zaWJsaW5nO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIWRpZEZpbmRDaGlsZCkge1xuICAgICAgICAgICAgZm9yIChfY2hpbGQgPSBwYXJlbnRCLmNoaWxkOyBfY2hpbGQ7ICkge1xuICAgICAgICAgICAgICBpZiAoX2NoaWxkID09PSBhKSB7XG4gICAgICAgICAgICAgICAgZGlkRmluZENoaWxkID0gITA7XG4gICAgICAgICAgICAgICAgYSA9IHBhcmVudEI7XG4gICAgICAgICAgICAgICAgYiA9IHBhcmVudEE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKF9jaGlsZCA9PT0gYikge1xuICAgICAgICAgICAgICAgIGRpZEZpbmRDaGlsZCA9ICEwO1xuICAgICAgICAgICAgICAgIGIgPSBwYXJlbnRCO1xuICAgICAgICAgICAgICAgIGEgPSBwYXJlbnRBO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIF9jaGlsZCA9IF9jaGlsZC5zaWJsaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFkaWRGaW5kQ2hpbGQpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiQ2hpbGQgd2FzIG5vdCBmb3VuZCBpbiBlaXRoZXIgcGFyZW50IHNldC4gVGhpcyBpbmRpY2F0ZXMgYSBidWcgaW4gUmVhY3QgcmVsYXRlZCB0byB0aGUgcmV0dXJuIHBvaW50ZXIuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhLmFsdGVybmF0ZSAhPT0gYilcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiUmV0dXJuIGZpYmVycyBzaG91bGQgYWx3YXlzIGJlIGVhY2ggb3RoZXJzJyBhbHRlcm5hdGVzLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICgzICE9PSBhLnRhZylcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIpO1xuICAgICAgcmV0dXJuIGEuc3RhdGVOb2RlLmN1cnJlbnQgPT09IGEgPyBmaWJlciA6IGFsdGVybmF0ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmluZEN1cnJlbnRIb3N0RmliZXJJbXBsKG5vZGUpIHtcbiAgICAgIHZhciB0YWcgPSBub2RlLnRhZztcbiAgICAgIGlmICg1ID09PSB0YWcgfHwgMjYgPT09IHRhZyB8fCAyNyA9PT0gdGFnIHx8IDYgPT09IHRhZykgcmV0dXJuIG5vZGU7XG4gICAgICBmb3IgKG5vZGUgPSBub2RlLmNoaWxkOyBudWxsICE9PSBub2RlOyApIHtcbiAgICAgICAgdGFnID0gZmluZEN1cnJlbnRIb3N0RmliZXJJbXBsKG5vZGUpO1xuICAgICAgICBpZiAobnVsbCAhPT0gdGFnKSByZXR1cm4gdGFnO1xuICAgICAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xuICAgICAgaWYgKG51bGwgPT09IG1heWJlSXRlcmFibGUgfHwgXCJvYmplY3RcIiAhPT0gdHlwZW9mIG1heWJlSXRlcmFibGUpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgbWF5YmVJdGVyYWJsZSA9XG4gICAgICAgIChNQVlCRV9JVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtNQVlCRV9JVEVSQVRPUl9TWU1CT0xdKSB8fFxuICAgICAgICBtYXliZUl0ZXJhYmxlW1wiQEBpdGVyYXRvclwiXTtcbiAgICAgIHJldHVybiBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBtYXliZUl0ZXJhYmxlID8gbWF5YmVJdGVyYWJsZSA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gICAgICBpZiAobnVsbCA9PSB0eXBlKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICByZXR1cm4gdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRVxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSkgcmV0dXJuIHR5cGU7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIkZyYWdtZW50XCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJQcm9maWxlclwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3RyaWN0TW9kZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VMaXN0XCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfQUNUSVZJVFlfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJBY3Rpdml0eVwiO1xuICAgICAgfVxuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICBzd2l0Y2ggKFxuICAgICAgICAgIChcIm51bWJlclwiID09PSB0eXBlb2YgdHlwZS50YWcgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKCkuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB0eXBlLiQkdHlwZW9mKVxuICAgICAgICApIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIFwiUG9ydGFsXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCBcIkNvbnRleHRcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0NPTlNVTUVSX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUuX2NvbnRleHQuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuQ29uc3VtZXJcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICB2YXIgaW5uZXJUeXBlID0gdHlwZS5yZW5kZXI7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5kaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIHR5cGUgfHxcbiAgICAgICAgICAgICAgKCh0eXBlID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8IFwiXCIpLFxuICAgICAgICAgICAgICAodHlwZSA9IFwiXCIgIT09IHR5cGUgPyBcIkZvcndhcmRSZWYoXCIgKyB0eXBlICsgXCIpXCIgOiBcIkZvcndhcmRSZWZcIikpO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoaW5uZXJUeXBlID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgPyBpbm5lclR5cGVcbiAgICAgICAgICAgICAgICA6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8IFwiTWVtb1wiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgaW5uZXJUeXBlID0gdHlwZS5fcGF5bG9hZDtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLl9pbml0O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKGlubmVyVHlwZSkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tT3duZXIob3duZXIpIHtcbiAgICAgIHJldHVybiBcIm51bWJlclwiID09PSB0eXBlb2Ygb3duZXIudGFnXG4gICAgICAgID8gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihvd25lcilcbiAgICAgICAgOiBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3duZXIubmFtZVxuICAgICAgICAgID8gb3duZXIubmFtZVxuICAgICAgICAgIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikge1xuICAgICAgdmFyIHR5cGUgPSBmaWJlci50eXBlO1xuICAgICAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICByZXR1cm4gXCJBY3Rpdml0eVwiO1xuICAgICAgICBjYXNlIDI0OlxuICAgICAgICAgIHJldHVybiBcIkNhY2hlXCI7XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgICByZXR1cm4gKHR5cGUuX2NvbnRleHQuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuQ29uc3VtZXJcIjtcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCBcIkNvbnRleHRcIjtcbiAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICByZXR1cm4gXCJEZWh5ZHJhdGVkRnJhZ21lbnRcIjtcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGZpYmVyID0gdHlwZS5yZW5kZXIpLFxuICAgICAgICAgICAgKGZpYmVyID0gZmliZXIuZGlzcGxheU5hbWUgfHwgZmliZXIubmFtZSB8fCBcIlwiKSxcbiAgICAgICAgICAgIHR5cGUuZGlzcGxheU5hbWUgfHxcbiAgICAgICAgICAgICAgKFwiXCIgIT09IGZpYmVyID8gXCJGb3J3YXJkUmVmKFwiICsgZmliZXIgKyBcIilcIiA6IFwiRm9yd2FyZFJlZlwiKVxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICByZXR1cm4gXCJGcmFnbWVudFwiO1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICBjYXNlIDI3OlxuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZXR1cm4gXCJQb3J0YWxcIjtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIHJldHVybiBcIlJvb3RcIjtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIHJldHVybiBcIlRleHRcIjtcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgcmV0dXJuIHR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPyBcIlN0cmljdE1vZGVcIiA6IFwiTW9kZVwiO1xuICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgIHJldHVybiBcIk9mZnNjcmVlblwiO1xuICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIHJldHVybiBcIlByb2ZpbGVyXCI7XG4gICAgICAgIGNhc2UgMjE6XG4gICAgICAgICAgcmV0dXJuIFwiU2NvcGVcIjtcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZVwiO1xuICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlTGlzdFwiO1xuICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgIHJldHVybiBcIlRyYWNpbmdNYXJrZXJcIjtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTQ6XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGUpXG4gICAgICAgICAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgICAgICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHR5cGUpIHJldHVybiB0eXBlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgIHR5cGUgPSBmaWJlci5fZGVidWdJbmZvO1xuICAgICAgICAgIGlmIChudWxsICE9IHR5cGUpXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gdHlwZS5sZW5ndGggLSAxOyAwIDw9IGk7IGktLSlcbiAgICAgICAgICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlW2ldLm5hbWUpIHJldHVybiB0eXBlW2ldLm5hbWU7XG4gICAgICAgICAgaWYgKG51bGwgIT09IGZpYmVyLnJldHVybilcbiAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyLnJldHVybik7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlQ3Vyc29yKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgcmV0dXJuIHsgY3VycmVudDogZGVmYXVsdFZhbHVlIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBvcChjdXJzb3IsIGZpYmVyKSB7XG4gICAgICAwID4gaW5kZXgkanNjb21wJDBcbiAgICAgICAgPyBjb25zb2xlLmVycm9yKFwiVW5leHBlY3RlZCBwb3AuXCIpXG4gICAgICAgIDogKGZpYmVyICE9PSBmaWJlclN0YWNrW2luZGV4JGpzY29tcCQwXSAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlVuZXhwZWN0ZWQgRmliZXIgcG9wcGVkLlwiKSxcbiAgICAgICAgICAoY3Vyc29yLmN1cnJlbnQgPSB2YWx1ZVN0YWNrW2luZGV4JGpzY29tcCQwXSksXG4gICAgICAgICAgKHZhbHVlU3RhY2tbaW5kZXgkanNjb21wJDBdID0gbnVsbCksXG4gICAgICAgICAgKGZpYmVyU3RhY2tbaW5kZXgkanNjb21wJDBdID0gbnVsbCksXG4gICAgICAgICAgaW5kZXgkanNjb21wJDAtLSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2goY3Vyc29yLCB2YWx1ZSwgZmliZXIpIHtcbiAgICAgIGluZGV4JGpzY29tcCQwKys7XG4gICAgICB2YWx1ZVN0YWNrW2luZGV4JGpzY29tcCQwXSA9IGN1cnNvci5jdXJyZW50O1xuICAgICAgZmliZXJTdGFja1tpbmRleCRqc2NvbXAkMF0gPSBmaWJlcjtcbiAgICAgIGN1cnNvci5jdXJyZW50ID0gdmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcXVpcmVkQ29udGV4dChjKSB7XG4gICAgICBudWxsID09PSBjICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJFeHBlY3RlZCBob3N0IGNvbnRleHQgdG8gZXhpc3QuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiBjO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoSG9zdENvbnRhaW5lcihmaWJlciwgbmV4dFJvb3RJbnN0YW5jZSkge1xuICAgICAgcHVzaChyb290SW5zdGFuY2VTdGFja0N1cnNvciwgbmV4dFJvb3RJbnN0YW5jZSwgZmliZXIpO1xuICAgICAgcHVzaChjb250ZXh0RmliZXJTdGFja0N1cnNvciwgZmliZXIsIGZpYmVyKTtcbiAgICAgIHB1c2goY29udGV4dFN0YWNrQ3Vyc29yLCBudWxsLCBmaWJlcik7XG4gICAgICB2YXIgbmV4dFJvb3RDb250ZXh0ID0gbmV4dFJvb3RJbnN0YW5jZS5ub2RlVHlwZTtcbiAgICAgIHN3aXRjaCAobmV4dFJvb3RDb250ZXh0KSB7XG4gICAgICAgIGNhc2UgOTpcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICBuZXh0Um9vdENvbnRleHQgPSA5ID09PSBuZXh0Um9vdENvbnRleHQgPyBcIiNkb2N1bWVudFwiIDogXCIjZnJhZ21lbnRcIjtcbiAgICAgICAgICBuZXh0Um9vdEluc3RhbmNlID0gKG5leHRSb290SW5zdGFuY2UgPVxuICAgICAgICAgICAgbmV4dFJvb3RJbnN0YW5jZS5kb2N1bWVudEVsZW1lbnQpXG4gICAgICAgICAgICA/IChuZXh0Um9vdEluc3RhbmNlID0gbmV4dFJvb3RJbnN0YW5jZS5uYW1lc3BhY2VVUkkpXG4gICAgICAgICAgICAgID8gZ2V0T3duSG9zdENvbnRleHQobmV4dFJvb3RJbnN0YW5jZSlcbiAgICAgICAgICAgICAgOiBIb3N0Q29udGV4dE5hbWVzcGFjZU5vbmVcbiAgICAgICAgICAgIDogSG9zdENvbnRleHROYW1lc3BhY2VOb25lO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICgobmV4dFJvb3RDb250ZXh0ID0gbmV4dFJvb3RJbnN0YW5jZS50YWdOYW1lKSxcbiAgICAgICAgICAgIChuZXh0Um9vdEluc3RhbmNlID0gbmV4dFJvb3RJbnN0YW5jZS5uYW1lc3BhY2VVUkkpKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIChuZXh0Um9vdEluc3RhbmNlID0gZ2V0T3duSG9zdENvbnRleHQobmV4dFJvb3RJbnN0YW5jZSkpLFxuICAgICAgICAgICAgICAobmV4dFJvb3RJbnN0YW5jZSA9IGdldENoaWxkSG9zdENvbnRleHRQcm9kKFxuICAgICAgICAgICAgICAgIG5leHRSb290SW5zdGFuY2UsXG4gICAgICAgICAgICAgICAgbmV4dFJvb3RDb250ZXh0XG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIHN3aXRjaCAobmV4dFJvb3RDb250ZXh0KSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJzdmdcIjpcbiAgICAgICAgICAgICAgICBuZXh0Um9vdEluc3RhbmNlID0gSG9zdENvbnRleHROYW1lc3BhY2VTdmc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJtYXRoXCI6XG4gICAgICAgICAgICAgICAgbmV4dFJvb3RJbnN0YW5jZSA9IEhvc3RDb250ZXh0TmFtZXNwYWNlTWF0aDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBuZXh0Um9vdEluc3RhbmNlID0gSG9zdENvbnRleHROYW1lc3BhY2VOb25lO1xuICAgICAgICAgICAgfVxuICAgICAgfVxuICAgICAgbmV4dFJvb3RDb250ZXh0ID0gbmV4dFJvb3RDb250ZXh0LnRvTG93ZXJDYXNlKCk7XG4gICAgICBuZXh0Um9vdENvbnRleHQgPSB1cGRhdGVkQW5jZXN0b3JJbmZvRGV2KG51bGwsIG5leHRSb290Q29udGV4dCk7XG4gICAgICBuZXh0Um9vdENvbnRleHQgPSB7XG4gICAgICAgIGNvbnRleHQ6IG5leHRSb290SW5zdGFuY2UsXG4gICAgICAgIGFuY2VzdG9ySW5mbzogbmV4dFJvb3RDb250ZXh0XG4gICAgICB9O1xuICAgICAgcG9wKGNvbnRleHRTdGFja0N1cnNvciwgZmliZXIpO1xuICAgICAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IsIG5leHRSb290Q29udGV4dCwgZmliZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwb3BIb3N0Q29udGFpbmVyKGZpYmVyKSB7XG4gICAgICBwb3AoY29udGV4dFN0YWNrQ3Vyc29yLCBmaWJlcik7XG4gICAgICBwb3AoY29udGV4dEZpYmVyU3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgICAgIHBvcChyb290SW5zdGFuY2VTdGFja0N1cnNvciwgZmliZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRIb3N0Q29udGV4dCgpIHtcbiAgICAgIHJldHVybiByZXF1aXJlZENvbnRleHQoY29udGV4dFN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoSG9zdENvbnRleHQoZmliZXIpIHtcbiAgICAgIG51bGwgIT09IGZpYmVyLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgcHVzaChob3N0VHJhbnNpdGlvblByb3ZpZGVyQ3Vyc29yLCBmaWJlciwgZmliZXIpO1xuICAgICAgdmFyIGNvbnRleHQgPSByZXF1aXJlZENvbnRleHQoY29udGV4dFN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuICAgICAgdmFyIHR5cGUgPSBmaWJlci50eXBlO1xuICAgICAgdmFyIG5leHRDb250ZXh0ID0gZ2V0Q2hpbGRIb3N0Q29udGV4dFByb2QoY29udGV4dC5jb250ZXh0LCB0eXBlKTtcbiAgICAgIHR5cGUgPSB1cGRhdGVkQW5jZXN0b3JJbmZvRGV2KGNvbnRleHQuYW5jZXN0b3JJbmZvLCB0eXBlKTtcbiAgICAgIG5leHRDb250ZXh0ID0geyBjb250ZXh0OiBuZXh0Q29udGV4dCwgYW5jZXN0b3JJbmZvOiB0eXBlIH07XG4gICAgICBjb250ZXh0ICE9PSBuZXh0Q29udGV4dCAmJlxuICAgICAgICAocHVzaChjb250ZXh0RmliZXJTdGFja0N1cnNvciwgZmliZXIsIGZpYmVyKSxcbiAgICAgICAgcHVzaChjb250ZXh0U3RhY2tDdXJzb3IsIG5leHRDb250ZXh0LCBmaWJlcikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwb3BIb3N0Q29udGV4dChmaWJlcikge1xuICAgICAgY29udGV4dEZpYmVyU3RhY2tDdXJzb3IuY3VycmVudCA9PT0gZmliZXIgJiZcbiAgICAgICAgKHBvcChjb250ZXh0U3RhY2tDdXJzb3IsIGZpYmVyKSwgcG9wKGNvbnRleHRGaWJlclN0YWNrQ3Vyc29yLCBmaWJlcikpO1xuICAgICAgaG9zdFRyYW5zaXRpb25Qcm92aWRlckN1cnNvci5jdXJyZW50ID09PSBmaWJlciAmJlxuICAgICAgICAocG9wKGhvc3RUcmFuc2l0aW9uUHJvdmlkZXJDdXJzb3IsIGZpYmVyKSxcbiAgICAgICAgKEhvc3RUcmFuc2l0aW9uQ29udGV4dC5fY3VycmVudFZhbHVlID0gTm90UGVuZGluZ1RyYW5zaXRpb24pKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGlzYWJsZWRMb2coKSB7fVxuICAgIGZ1bmN0aW9uIGRpc2FibGVMb2dzKCkge1xuICAgICAgaWYgKDAgPT09IGRpc2FibGVkRGVwdGgpIHtcbiAgICAgICAgcHJldkxvZyA9IGNvbnNvbGUubG9nO1xuICAgICAgICBwcmV2SW5mbyA9IGNvbnNvbGUuaW5mbztcbiAgICAgICAgcHJldldhcm4gPSBjb25zb2xlLndhcm47XG4gICAgICAgIHByZXZFcnJvciA9IGNvbnNvbGUuZXJyb3I7XG4gICAgICAgIHByZXZHcm91cCA9IGNvbnNvbGUuZ3JvdXA7XG4gICAgICAgIHByZXZHcm91cENvbGxhcHNlZCA9IGNvbnNvbGUuZ3JvdXBDb2xsYXBzZWQ7XG4gICAgICAgIHByZXZHcm91cEVuZCA9IGNvbnNvbGUuZ3JvdXBFbmQ7XG4gICAgICAgIHZhciBwcm9wcyA9IHtcbiAgICAgICAgICBjb25maWd1cmFibGU6ICEwLFxuICAgICAgICAgIGVudW1lcmFibGU6ICEwLFxuICAgICAgICAgIHZhbHVlOiBkaXNhYmxlZExvZyxcbiAgICAgICAgICB3cml0YWJsZTogITBcbiAgICAgICAgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICAgIGluZm86IHByb3BzLFxuICAgICAgICAgIGxvZzogcHJvcHMsXG4gICAgICAgICAgd2FybjogcHJvcHMsXG4gICAgICAgICAgZXJyb3I6IHByb3BzLFxuICAgICAgICAgIGdyb3VwOiBwcm9wcyxcbiAgICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXG4gICAgICAgICAgZ3JvdXBFbmQ6IHByb3BzXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgZGlzYWJsZWREZXB0aCsrO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWVuYWJsZUxvZ3MoKSB7XG4gICAgICBkaXNhYmxlZERlcHRoLS07XG4gICAgICBpZiAoMCA9PT0gZGlzYWJsZWREZXB0aCkge1xuICAgICAgICB2YXIgcHJvcHMgPSB7IGNvbmZpZ3VyYWJsZTogITAsIGVudW1lcmFibGU6ICEwLCB3cml0YWJsZTogITAgfTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICAgIGxvZzogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkxvZyB9KSxcbiAgICAgICAgICBpbmZvOiBhc3NpZ24oe30sIHByb3BzLCB7IHZhbHVlOiBwcmV2SW5mbyB9KSxcbiAgICAgICAgICB3YXJuOiBhc3NpZ24oe30sIHByb3BzLCB7IHZhbHVlOiBwcmV2V2FybiB9KSxcbiAgICAgICAgICBlcnJvcjogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkVycm9yIH0pLFxuICAgICAgICAgIGdyb3VwOiBhc3NpZ24oe30sIHByb3BzLCB7IHZhbHVlOiBwcmV2R3JvdXAgfSksXG4gICAgICAgICAgZ3JvdXBDb2xsYXBzZWQ6IGFzc2lnbih7fSwgcHJvcHMsIHsgdmFsdWU6IHByZXZHcm91cENvbGxhcHNlZCB9KSxcbiAgICAgICAgICBncm91cEVuZDogYXNzaWduKHt9LCBwcm9wcywgeyB2YWx1ZTogcHJldkdyb3VwRW5kIH0pXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgMCA+IGRpc2FibGVkRGVwdGggJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcImRpc2FibGVkRGVwdGggZmVsbCBiZWxvdyB6ZXJvLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmb3JtYXRPd25lclN0YWNrKGVycm9yKSB7XG4gICAgICB2YXIgcHJldlByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7XG4gICAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHZvaWQgMDtcbiAgICAgIGVycm9yID0gZXJyb3Iuc3RhY2s7XG4gICAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHByZXZQcmVwYXJlU3RhY2tUcmFjZTtcbiAgICAgIGVycm9yLnN0YXJ0c1dpdGgoXCJFcnJvcjogcmVhY3Qtc3RhY2stdG9wLWZyYW1lXFxuXCIpICYmXG4gICAgICAgIChlcnJvciA9IGVycm9yLnNsaWNlKDI5KSk7XG4gICAgICBwcmV2UHJlcGFyZVN0YWNrVHJhY2UgPSBlcnJvci5pbmRleE9mKFwiXFxuXCIpO1xuICAgICAgLTEgIT09IHByZXZQcmVwYXJlU3RhY2tUcmFjZSAmJlxuICAgICAgICAoZXJyb3IgPSBlcnJvci5zbGljZShwcmV2UHJlcGFyZVN0YWNrVHJhY2UgKyAxKSk7XG4gICAgICBwcmV2UHJlcGFyZVN0YWNrVHJhY2UgPSBlcnJvci5pbmRleE9mKFwicmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lXCIpO1xuICAgICAgLTEgIT09IHByZXZQcmVwYXJlU3RhY2tUcmFjZSAmJlxuICAgICAgICAocHJldlByZXBhcmVTdGFja1RyYWNlID0gZXJyb3IubGFzdEluZGV4T2YoXG4gICAgICAgICAgXCJcXG5cIixcbiAgICAgICAgICBwcmV2UHJlcGFyZVN0YWNrVHJhY2VcbiAgICAgICAgKSk7XG4gICAgICBpZiAoLTEgIT09IHByZXZQcmVwYXJlU3RhY2tUcmFjZSlcbiAgICAgICAgZXJyb3IgPSBlcnJvci5zbGljZSgwLCBwcmV2UHJlcGFyZVN0YWNrVHJhY2UpO1xuICAgICAgZWxzZSByZXR1cm4gXCJcIjtcbiAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSkge1xuICAgICAgaWYgKHZvaWQgMCA9PT0gcHJlZml4KVxuICAgICAgICB0cnkge1xuICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICB2YXIgbWF0Y2ggPSB4LnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxuKCAqKGF0ICk/KS8pO1xuICAgICAgICAgIHByZWZpeCA9IChtYXRjaCAmJiBtYXRjaFsxXSkgfHwgXCJcIjtcbiAgICAgICAgICBzdWZmaXggPVxuICAgICAgICAgICAgLTEgPCB4LnN0YWNrLmluZGV4T2YoXCJcXG4gICAgYXRcIilcbiAgICAgICAgICAgICAgPyBcIiAoPGFub255bW91cz4pXCJcbiAgICAgICAgICAgICAgOiAtMSA8IHguc3RhY2suaW5kZXhPZihcIkBcIilcbiAgICAgICAgICAgICAgICA/IFwiQHVua25vd246MDowXCJcbiAgICAgICAgICAgICAgICA6IFwiXCI7XG4gICAgICAgIH1cbiAgICAgIHJldHVybiBcIlxcblwiICsgcHJlZml4ICsgbmFtZSArIHN1ZmZpeDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmbiwgY29uc3RydWN0KSB7XG4gICAgICBpZiAoIWZuIHx8IHJlZW50cnkpIHJldHVybiBcIlwiO1xuICAgICAgdmFyIGZyYW1lID0gY29tcG9uZW50RnJhbWVDYWNoZS5nZXQoZm4pO1xuICAgICAgaWYgKHZvaWQgMCAhPT0gZnJhbWUpIHJldHVybiBmcmFtZTtcbiAgICAgIHJlZW50cnkgPSAhMDtcbiAgICAgIGZyYW1lID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7XG4gICAgICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHZvaWQgMDtcbiAgICAgIHZhciBwcmV2aW91c0Rpc3BhdGNoZXIgPSBudWxsO1xuICAgICAgcHJldmlvdXNEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBudWxsO1xuICAgICAgZGlzYWJsZUxvZ3MoKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBSdW5JblJvb3RGcmFtZSA9IHtcbiAgICAgICAgICBEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3Q6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGlmIChjb25zdHJ1Y3QpIHtcbiAgICAgICAgICAgICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmFrZS5wcm90b3R5cGUsIFwicHJvcHNcIiwge1xuICAgICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBSZWZsZWN0ICYmIFJlZmxlY3QuY29uc3RydWN0KSB7XG4gICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBSZWZsZWN0LmNvbnN0cnVjdChGYWtlLCBbXSk7XG4gICAgICAgICAgICAgICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjb250cm9sID0geDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KGZuLCBbXSwgRmFrZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIEZha2UuY2FsbCgpO1xuICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoeCQwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSB4JDA7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBmbi5jYWxsKEZha2UucHJvdG90eXBlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoeCQxKSB7XG4gICAgICAgICAgICAgICAgICBjb250cm9sID0geCQxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAoRmFrZSA9IGZuKCkpICYmXG4gICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBGYWtlLmNhdGNoICYmXG4gICAgICAgICAgICAgICAgICBGYWtlLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoc2FtcGxlKSB7XG4gICAgICAgICAgICAgIGlmIChzYW1wbGUgJiYgY29udHJvbCAmJiBcInN0cmluZ1wiID09PSB0eXBlb2Ygc2FtcGxlLnN0YWNrKVxuICAgICAgICAgICAgICAgIHJldHVybiBbc2FtcGxlLnN0YWNrLCBjb250cm9sLnN0YWNrXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBbbnVsbCwgbnVsbF07XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QuZGlzcGxheU5hbWUgPVxuICAgICAgICAgIFwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290XCI7XG4gICAgICAgIHZhciBuYW1lUHJvcERlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFxuICAgICAgICAgIFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCxcbiAgICAgICAgICBcIm5hbWVcIlxuICAgICAgICApO1xuICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3IgJiZcbiAgICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3IuY29uZmlndXJhYmxlICYmXG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFxuICAgICAgICAgICAgUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LFxuICAgICAgICAgICAgXCJuYW1lXCIsXG4gICAgICAgICAgICB7IHZhbHVlOiBcIkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdFwiIH1cbiAgICAgICAgICApO1xuICAgICAgICB2YXIgX1J1bkluUm9vdEZyYW1lJERldGVyID1cbiAgICAgICAgICAgIFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCgpLFxuICAgICAgICAgIHNhbXBsZVN0YWNrID0gX1J1bkluUm9vdEZyYW1lJERldGVyWzBdLFxuICAgICAgICAgIGNvbnRyb2xTdGFjayA9IF9SdW5JblJvb3RGcmFtZSREZXRlclsxXTtcbiAgICAgICAgaWYgKHNhbXBsZVN0YWNrICYmIGNvbnRyb2xTdGFjaykge1xuICAgICAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZVN0YWNrLnNwbGl0KFwiXFxuXCIpLFxuICAgICAgICAgICAgY29udHJvbExpbmVzID0gY29udHJvbFN0YWNrLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgPSBuYW1lUHJvcERlc2NyaXB0b3IgPSAwO1xuICAgICAgICAgICAgbmFtZVByb3BEZXNjcmlwdG9yIDwgc2FtcGxlTGluZXMubGVuZ3RoICYmXG4gICAgICAgICAgICAhc2FtcGxlTGluZXNbbmFtZVByb3BEZXNjcmlwdG9yXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgXCJEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3RcIlxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgIClcbiAgICAgICAgICAgIG5hbWVQcm9wRGVzY3JpcHRvcisrO1xuICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgPCBjb250cm9sTGluZXMubGVuZ3RoICYmXG4gICAgICAgICAgICAhY29udHJvbExpbmVzW19SdW5JblJvb3RGcmFtZSREZXRlcl0uaW5jbHVkZXMoXG4gICAgICAgICAgICAgIFwiRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290XCJcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICApXG4gICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXIrKztcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3IgPT09IHNhbXBsZUxpbmVzLmxlbmd0aCB8fFxuICAgICAgICAgICAgX1J1bkluUm9vdEZyYW1lJERldGVyID09PSBjb250cm9sTGluZXMubGVuZ3RoXG4gICAgICAgICAgKVxuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgbmFtZVByb3BEZXNjcmlwdG9yID0gc2FtcGxlTGluZXMubGVuZ3RoIC0gMSxcbiAgICAgICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgPSBjb250cm9sTGluZXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgMSA8PSBuYW1lUHJvcERlc2NyaXB0b3IgJiZcbiAgICAgICAgICAgICAgMCA8PSBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgJiZcbiAgICAgICAgICAgICAgc2FtcGxlTGluZXNbbmFtZVByb3BEZXNjcmlwdG9yXSAhPT1cbiAgICAgICAgICAgICAgICBjb250cm9sTGluZXNbX1J1bkluUm9vdEZyYW1lJERldGVyXTtcblxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBfUnVuSW5Sb290RnJhbWUkRGV0ZXItLTtcbiAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgO1xuICAgICAgICAgICAgMSA8PSBuYW1lUHJvcERlc2NyaXB0b3IgJiYgMCA8PSBfUnVuSW5Sb290RnJhbWUkRGV0ZXI7XG4gICAgICAgICAgICBuYW1lUHJvcERlc2NyaXB0b3ItLSwgX1J1bkluUm9vdEZyYW1lJERldGVyLS1cbiAgICAgICAgICApXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHNhbXBsZUxpbmVzW25hbWVQcm9wRGVzY3JpcHRvcl0gIT09XG4gICAgICAgICAgICAgIGNvbnRyb2xMaW5lc1tfUnVuSW5Sb290RnJhbWUkRGV0ZXJdXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgaWYgKDEgIT09IG5hbWVQcm9wRGVzY3JpcHRvciB8fCAxICE9PSBfUnVuSW5Sb290RnJhbWUkRGV0ZXIpIHtcbiAgICAgICAgICAgICAgICBkb1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAobmFtZVByb3BEZXNjcmlwdG9yLS0sXG4gICAgICAgICAgICAgICAgICAgIF9SdW5JblJvb3RGcmFtZSREZXRlci0tLFxuICAgICAgICAgICAgICAgICAgICAwID4gX1J1bkluUm9vdEZyYW1lJERldGVyIHx8XG4gICAgICAgICAgICAgICAgICAgICAgc2FtcGxlTGluZXNbbmFtZVByb3BEZXNjcmlwdG9yXSAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xMaW5lc1tfUnVuSW5Sb290RnJhbWUkRGV0ZXJdKVxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfZnJhbWUgPVxuICAgICAgICAgICAgICAgICAgICAgIFwiXFxuXCIgK1xuICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZUxpbmVzW25hbWVQcm9wRGVzY3JpcHRvcl0ucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIGF0IG5ldyBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIGF0IFwiXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgZm4uZGlzcGxheU5hbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICBfZnJhbWUuaW5jbHVkZXMoXCI8YW5vbnltb3VzPlwiKSAmJlxuICAgICAgICAgICAgICAgICAgICAgIChfZnJhbWUgPSBfZnJhbWUucmVwbGFjZShcIjxhbm9ueW1vdXM+XCIsIGZuLmRpc3BsYXlOYW1lKSk7XG4gICAgICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGZuICYmXG4gICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIF9mcmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfZnJhbWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgd2hpbGUgKDEgPD0gbmFtZVByb3BEZXNjcmlwdG9yICYmIDAgPD0gX1J1bkluUm9vdEZyYW1lJERldGVyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgKHJlZW50cnkgPSAhMSksXG4gICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2aW91c0Rpc3BhdGNoZXIpLFxuICAgICAgICAgIHJlZW5hYmxlTG9ncygpLFxuICAgICAgICAgIChFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IGZyYW1lKTtcbiAgICAgIH1cbiAgICAgIHNhbXBsZUxpbmVzID0gKHNhbXBsZUxpbmVzID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogXCJcIilcbiAgICAgICAgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShzYW1wbGVMaW5lcylcbiAgICAgICAgOiBcIlwiO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgZm4gJiYgY29tcG9uZW50RnJhbWVDYWNoZS5zZXQoZm4sIHNhbXBsZUxpbmVzKTtcbiAgICAgIHJldHVybiBzYW1wbGVMaW5lcztcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVGaWJlcihmaWJlciwgY2hpbGRGaWJlcikge1xuICAgICAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHJldHVybiBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShmaWJlci50eXBlKTtcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJMYXp5XCIpO1xuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIHJldHVybiBmaWJlci5jaGlsZCAhPT0gY2hpbGRGaWJlciAmJiBudWxsICE9PSBjaGlsZEZpYmVyXG4gICAgICAgICAgICA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKFwiU3VzcGVuc2UgRmFsbGJhY2tcIilcbiAgICAgICAgICAgIDogZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJTdXNwZW5zZVwiKTtcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJTdXNwZW5zZUxpc3RcIik7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICByZXR1cm4gZGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZShmaWJlci50eXBlLCAhMSk7XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZmliZXIudHlwZS5yZW5kZXIsICExKTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJldHVybiBkZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lKGZpYmVyLnR5cGUsICEwKTtcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJBY3Rpdml0eVwiKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U3RhY2tCeUZpYmVySW5EZXZBbmRQcm9kKHdvcmtJblByb2dyZXNzKSB7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgaW5mbyA9IFwiXCIsXG4gICAgICAgICAgcHJldmlvdXMgPSBudWxsO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgaW5mbyArPSBkZXNjcmliZUZpYmVyKHdvcmtJblByb2dyZXNzLCBwcmV2aW91cyk7XG4gICAgICAgICAgdmFyIGRlYnVnSW5mbyA9IHdvcmtJblByb2dyZXNzLl9kZWJ1Z0luZm87XG4gICAgICAgICAgaWYgKGRlYnVnSW5mbylcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSBkZWJ1Z0luZm8ubGVuZ3RoIC0gMTsgMCA8PSBpOyBpLS0pIHtcbiAgICAgICAgICAgICAgdmFyIGVudHJ5ID0gZGVidWdJbmZvW2ldO1xuICAgICAgICAgICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGVudHJ5Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICB2YXIgSlNDb21waWxlcl90ZW1wX2NvbnN0ID0gaW5mbztcbiAgICAgICAgICAgICAgICBhOiB7XG4gICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IGVudHJ5Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGVudiA9IGVudHJ5LmVudixcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24gPSBlbnRyeS5kZWJ1Z0xvY2F0aW9uO1xuICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT0gbG9jYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNoaWxkU3RhY2sgPSBmb3JtYXRPd25lclN0YWNrKGxvY2F0aW9uKSxcbiAgICAgICAgICAgICAgICAgICAgICBpZHggPSBjaGlsZFN0YWNrLmxhc3RJbmRleE9mKFwiXFxuXCIpLFxuICAgICAgICAgICAgICAgICAgICAgIGxhc3RMaW5lID1cbiAgICAgICAgICAgICAgICAgICAgICAgIC0xID09PSBpZHggPyBjaGlsZFN0YWNrIDogY2hpbGRTdGFjay5zbGljZShpZHggKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKC0xICE9PSBsYXN0TGluZS5pbmRleE9mKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IFwiXFxuXCIgKyBsYXN0TGluZTtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShcbiAgICAgICAgICAgICAgICAgICAgbmFtZSArIChlbnYgPyBcIiBbXCIgKyBlbnYgKyBcIl1cIiA6IFwiXCIpXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpbmZvID0gSlNDb21waWxlcl90ZW1wX2NvbnN0ICsgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgcHJldmlvdXMgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IHdvcmtJblByb2dyZXNzLnJldHVybjtcbiAgICAgICAgfSB3aGlsZSAod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICByZXR1cm4gaW5mbztcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgcmV0dXJuIFwiXFxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogXCIgKyB4Lm1lc3NhZ2UgKyBcIlxcblwiICsgeC5zdGFjaztcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lV2l0aG91dExpbmVOdW1iZXIoZm4pIHtcbiAgICAgIHJldHVybiAoZm4gPSBmbiA/IGZuLmRpc3BsYXlOYW1lIHx8IGZuLm5hbWUgOiBcIlwiKVxuICAgICAgICA/IGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKGZuKVxuICAgICAgICA6IFwiXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCkge1xuICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpIHJldHVybiBudWxsO1xuICAgICAgdmFyIG93bmVyID0gY3VycmVudC5fZGVidWdPd25lcjtcbiAgICAgIHJldHVybiBudWxsICE9IG93bmVyID8gZ2V0Q29tcG9uZW50TmFtZUZyb21Pd25lcihvd25lcikgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDdXJyZW50RmliZXJTdGFja0luRGV2KCkge1xuICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpIHJldHVybiBcIlwiO1xuICAgICAgdmFyIHdvcmtJblByb2dyZXNzID0gY3VycmVudDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBpbmZvID0gXCJcIjtcbiAgICAgICAgNiA9PT0gd29ya0luUHJvZ3Jlc3MudGFnICYmICh3b3JrSW5Qcm9ncmVzcyA9IHdvcmtJblByb2dyZXNzLnJldHVybik7XG4gICAgICAgIHN3aXRjaCAod29ya0luUHJvZ3Jlc3MudGFnKSB7XG4gICAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgIGluZm8gKz0gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUod29ya0luUHJvZ3Jlc3MudHlwZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgICAgaW5mbyArPSBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShcIlN1c3BlbnNlXCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIGluZm8gKz0gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoXCJTdXNwZW5zZUxpc3RcIik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDMxOlxuICAgICAgICAgICAgaW5mbyArPSBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShcIkFjdGl2aXR5XCIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5fZGVidWdPd25lciB8fFxuICAgICAgICAgICAgICBcIlwiICE9PSBpbmZvIHx8XG4gICAgICAgICAgICAgIChpbmZvICs9IGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZVdpdGhvdXRMaW5lTnVtYmVyKFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGVcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnT3duZXIgfHxcbiAgICAgICAgICAgICAgXCJcIiAhPT0gaW5mbyB8fFxuICAgICAgICAgICAgICAoaW5mbyArPSBkZXNjcmliZUZ1bmN0aW9uQ29tcG9uZW50RnJhbWVXaXRob3V0TGluZU51bWJlcihcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlLnJlbmRlclxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKDsgd29ya0luUHJvZ3Jlc3M7IClcbiAgICAgICAgICBpZiAoXCJudW1iZXJcIiA9PT0gdHlwZW9mIHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgICAgICAgdmFyIGZpYmVyID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IGZpYmVyLl9kZWJ1Z093bmVyO1xuICAgICAgICAgICAgdmFyIGRlYnVnU3RhY2sgPSBmaWJlci5fZGVidWdTdGFjaztcbiAgICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcyAmJiBkZWJ1Z1N0YWNrKSB7XG4gICAgICAgICAgICAgIHZhciBmb3JtYXR0ZWRTdGFjayA9IGZvcm1hdE93bmVyU3RhY2soZGVidWdTdGFjayk7XG4gICAgICAgICAgICAgIFwiXCIgIT09IGZvcm1hdHRlZFN0YWNrICYmIChpbmZvICs9IFwiXFxuXCIgKyBmb3JtYXR0ZWRTdGFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChudWxsICE9IHdvcmtJblByb2dyZXNzLmRlYnVnU3RhY2spIHtcbiAgICAgICAgICAgIHZhciBvd25lclN0YWNrID0gd29ya0luUHJvZ3Jlc3MuZGVidWdTdGFjaztcbiAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcyA9IHdvcmtJblByb2dyZXNzLm93bmVyKSAmJlxuICAgICAgICAgICAgICBvd25lclN0YWNrICYmXG4gICAgICAgICAgICAgIChpbmZvICs9IFwiXFxuXCIgKyBmb3JtYXRPd25lclN0YWNrKG93bmVyU3RhY2spKTtcbiAgICAgICAgICB9IGVsc2UgYnJlYWs7XG4gICAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBpbmZvO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPVxuICAgICAgICAgIFwiXFxuRXJyb3IgZ2VuZXJhdGluZyBzdGFjazogXCIgKyB4Lm1lc3NhZ2UgKyBcIlxcblwiICsgeC5zdGFjaztcbiAgICAgIH1cbiAgICAgIHJldHVybiBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJ1bldpdGhGaWJlckluREVWKGZpYmVyLCBjYWxsYmFjaywgYXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkge1xuICAgICAgdmFyIHByZXZpb3VzRmliZXIgPSBjdXJyZW50O1xuICAgICAgc2V0Q3VycmVudEZpYmVyKGZpYmVyKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBudWxsICE9PSBmaWJlciAmJiBmaWJlci5fZGVidWdUYXNrXG4gICAgICAgICAgPyBmaWJlci5fZGVidWdUYXNrLnJ1bihcbiAgICAgICAgICAgICAgY2FsbGJhY2suYmluZChudWxsLCBhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0KVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogY2FsbGJhY2soYXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBzZXRDdXJyZW50RmliZXIocHJldmlvdXNGaWJlcik7XG4gICAgICB9XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgXCJydW5XaXRoRmliZXJJbkRFViBzaG91bGQgbmV2ZXIgYmUgY2FsbGVkIGluIHByb2R1Y3Rpb24uIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldEN1cnJlbnRGaWJlcihmaWJlcikge1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuZ2V0Q3VycmVudFN0YWNrID1cbiAgICAgICAgbnVsbCA9PT0gZmliZXIgPyBudWxsIDogZ2V0Q3VycmVudEZpYmVyU3RhY2tJbkRldjtcbiAgICAgIGlzUmVuZGVyaW5nID0gITE7XG4gICAgICBjdXJyZW50ID0gZmliZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHR5cGVOYW1lKHZhbHVlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgU3ltYm9sICYmXG4gICAgICAgICAgU3ltYm9sLnRvU3RyaW5nVGFnICYmXG4gICAgICAgICAgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSkgfHxcbiAgICAgICAgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fFxuICAgICAgICBcIk9iamVjdFwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSksICExO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4gITA7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIFwiXCIgKyB2YWx1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgYXR0cmlidXRlTmFtZSkge1xuICAgICAgaWYgKHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSlcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJUaGUgcHJvdmlkZWQgYCVzYCBhdHRyaWJ1dGUgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIHVzaW5nIGl0IGhlcmUuXCIsXG4gICAgICAgICAgICBhdHRyaWJ1dGVOYW1lLFxuICAgICAgICAgICAgdHlwZU5hbWUodmFsdWUpXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrQ1NTUHJvcGVydHlTdHJpbmdDb2VyY2lvbih2YWx1ZSwgcHJvcE5hbWUpIHtcbiAgICAgIGlmICh3aWxsQ29lcmNpb25UaHJvdyh2YWx1ZSkpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiVGhlIHByb3ZpZGVkIGAlc2AgQ1NTIHByb3BlcnR5IGlzIGFuIHVuc3VwcG9ydGVkIHR5cGUgJXMuIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLlwiLFxuICAgICAgICAgICAgcHJvcE5hbWUsXG4gICAgICAgICAgICB0eXBlTmFtZSh2YWx1ZSlcbiAgICAgICAgICApLFxuICAgICAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tGb3JtRmllbGRWYWx1ZVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gICAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkZvcm0gZmllbGQgdmFsdWVzICh2YWx1ZSwgY2hlY2tlZCwgZGVmYXVsdFZhbHVlLCBvciBkZWZhdWx0Q2hlY2tlZCBwcm9wcykgbXVzdCBiZSBzdHJpbmdzLCBub3QgJXMuIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLlwiLFxuICAgICAgICAgICAgdHlwZU5hbWUodmFsdWUpXG4gICAgICAgICAgKSxcbiAgICAgICAgICB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluamVjdEludGVybmFscyhpbnRlcm5hbHMpIHtcbiAgICAgIGlmIChcInVuZGVmaW5lZFwiID09PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fKSByZXR1cm4gITE7XG4gICAgICB2YXIgaG9vayA9IF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztcbiAgICAgIGlmIChob29rLmlzRGlzYWJsZWQpIHJldHVybiAhMDtcbiAgICAgIGlmICghaG9vay5zdXBwb3J0c0ZpYmVyKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiBSZWFjdCBEZXZUb29scyBpcyB0b28gb2xkIGFuZCB3aWxsIG5vdCB3b3JrIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBSZWFjdC4gUGxlYXNlIHVwZGF0ZSBSZWFjdCBEZXZUb29scy4gaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9yZWFjdC1kZXZ0b29sc1wiXG4gICAgICAgICAgKSxcbiAgICAgICAgICAhMFxuICAgICAgICApO1xuICAgICAgdHJ5IHtcbiAgICAgICAgKHJlbmRlcmVySUQgPSBob29rLmluamVjdChpbnRlcm5hbHMpKSwgKGluamVjdGVkSG9vayA9IGhvb2spO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVvLlwiLCBlcnIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGhvb2suY2hlY2tEQ0UgPyAhMCA6ICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyhuZXdJc1N0cmljdE1vZGUpIHtcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGxvZyQxICYmXG4gICAgICAgIHVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlKG5ld0lzU3RyaWN0TW9kZSk7XG4gICAgICBpZiAoaW5qZWN0ZWRIb29rICYmIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluamVjdGVkSG9vay5zZXRTdHJpY3RNb2RlKVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGluamVjdGVkSG9vay5zZXRTdHJpY3RNb2RlKHJlbmRlcmVySUQsIG5ld0lzU3RyaWN0TW9kZSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGhhc0xvZ2dlZEVycm9yIHx8XG4gICAgICAgICAgICAoKGhhc0xvZ2dlZEVycm9yID0gITApLFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWFjdCBpbnN0cnVtZW50YXRpb24gZW5jb3VudGVyZWQgYW4gZXJyb3I6ICVvXCIsXG4gICAgICAgICAgICAgIGVyclxuICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY2x6MzJGYWxsYmFjayh4KSB7XG4gICAgICB4ID4+Pj0gMDtcbiAgICAgIHJldHVybiAwID09PSB4ID8gMzIgOiAoMzEgLSAoKGxvZyh4KSAvIExOMikgfCAwKSkgfCAwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lcyhsYW5lcykge1xuICAgICAgdmFyIHBlbmRpbmdTeW5jTGFuZXMgPSBsYW5lcyAmIDQyO1xuICAgICAgaWYgKDAgIT09IHBlbmRpbmdTeW5jTGFuZXMpIHJldHVybiBwZW5kaW5nU3luY0xhbmVzO1xuICAgICAgc3dpdGNoIChsYW5lcyAmIC1sYW5lcykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICByZXR1cm4gMjtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHJldHVybiA0O1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgcmV0dXJuIDg7XG4gICAgICAgIGNhc2UgMTY6XG4gICAgICAgICAgcmV0dXJuIDE2O1xuICAgICAgICBjYXNlIDMyOlxuICAgICAgICAgIHJldHVybiAzMjtcbiAgICAgICAgY2FzZSA2NDpcbiAgICAgICAgICByZXR1cm4gNjQ7XG4gICAgICAgIGNhc2UgMTI4OlxuICAgICAgICAgIHJldHVybiAxMjg7XG4gICAgICAgIGNhc2UgMjU2OlxuICAgICAgICBjYXNlIDUxMjpcbiAgICAgICAgY2FzZSAxMDI0OlxuICAgICAgICBjYXNlIDIwNDg6XG4gICAgICAgIGNhc2UgNDA5NjpcbiAgICAgICAgY2FzZSA4MTkyOlxuICAgICAgICBjYXNlIDE2Mzg0OlxuICAgICAgICBjYXNlIDMyNzY4OlxuICAgICAgICBjYXNlIDY1NTM2OlxuICAgICAgICBjYXNlIDEzMTA3MjpcbiAgICAgICAgICByZXR1cm4gbGFuZXMgJiAyNjE4ODg7XG4gICAgICAgIGNhc2UgMjYyMTQ0OlxuICAgICAgICBjYXNlIDUyNDI4ODpcbiAgICAgICAgY2FzZSAxMDQ4NTc2OlxuICAgICAgICBjYXNlIDIwOTcxNTI6XG4gICAgICAgICAgcmV0dXJuIGxhbmVzICYgMzkzMjE2MDtcbiAgICAgICAgY2FzZSA0MTk0MzA0OlxuICAgICAgICBjYXNlIDgzODg2MDg6XG4gICAgICAgIGNhc2UgMTY3NzcyMTY6XG4gICAgICAgIGNhc2UgMzM1NTQ0MzI6XG4gICAgICAgICAgcmV0dXJuIGxhbmVzICYgNjI5MTQ1NjA7XG4gICAgICAgIGNhc2UgNjcxMDg4NjQ6XG4gICAgICAgICAgcmV0dXJuIDY3MTA4ODY0O1xuICAgICAgICBjYXNlIDEzNDIxNzcyODpcbiAgICAgICAgICByZXR1cm4gMTM0MjE3NzI4O1xuICAgICAgICBjYXNlIDI2ODQzNTQ1NjpcbiAgICAgICAgICByZXR1cm4gMjY4NDM1NDU2O1xuICAgICAgICBjYXNlIDUzNjg3MDkxMjpcbiAgICAgICAgICByZXR1cm4gNTM2ODcwOTEyO1xuICAgICAgICBjYXNlIDEwNzM3NDE4MjQ6XG4gICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiU2hvdWxkIGhhdmUgZm91bmQgbWF0Y2hpbmcgbGFuZXMuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE5leHRMYW5lcyhyb290LCB3aXBMYW5lcywgcm9vdEhhc1BlbmRpbmdDb21taXQpIHtcbiAgICAgIHZhciBwZW5kaW5nTGFuZXMgPSByb290LnBlbmRpbmdMYW5lcztcbiAgICAgIGlmICgwID09PSBwZW5kaW5nTGFuZXMpIHJldHVybiAwO1xuICAgICAgdmFyIG5leHRMYW5lcyA9IDAsXG4gICAgICAgIHN1c3BlbmRlZExhbmVzID0gcm9vdC5zdXNwZW5kZWRMYW5lcyxcbiAgICAgICAgcGluZ2VkTGFuZXMgPSByb290LnBpbmdlZExhbmVzO1xuICAgICAgcm9vdCA9IHJvb3Qud2FybUxhbmVzO1xuICAgICAgdmFyIG5vbklkbGVQZW5kaW5nTGFuZXMgPSBwZW5kaW5nTGFuZXMgJiAxMzQyMTc3Mjc7XG4gICAgICAwICE9PSBub25JZGxlUGVuZGluZ0xhbmVzXG4gICAgICAgID8gKChwZW5kaW5nTGFuZXMgPSBub25JZGxlUGVuZGluZ0xhbmVzICYgfnN1c3BlbmRlZExhbmVzKSxcbiAgICAgICAgICAwICE9PSBwZW5kaW5nTGFuZXNcbiAgICAgICAgICAgID8gKG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHBlbmRpbmdMYW5lcykpXG4gICAgICAgICAgICA6ICgocGluZ2VkTGFuZXMgJj0gbm9uSWRsZVBlbmRpbmdMYW5lcyksXG4gICAgICAgICAgICAgIDAgIT09IHBpbmdlZExhbmVzXG4gICAgICAgICAgICAgICAgPyAobmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMocGluZ2VkTGFuZXMpKVxuICAgICAgICAgICAgICAgIDogcm9vdEhhc1BlbmRpbmdDb21taXQgfHxcbiAgICAgICAgICAgICAgICAgICgocm9vdEhhc1BlbmRpbmdDb21taXQgPSBub25JZGxlUGVuZGluZ0xhbmVzICYgfnJvb3QpLFxuICAgICAgICAgICAgICAgICAgMCAhPT0gcm9vdEhhc1BlbmRpbmdDb21taXQgJiZcbiAgICAgICAgICAgICAgICAgICAgKG5leHRMYW5lcyA9XG4gICAgICAgICAgICAgICAgICAgICAgZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMocm9vdEhhc1BlbmRpbmdDb21taXQpKSkpKVxuICAgICAgICA6ICgobm9uSWRsZVBlbmRpbmdMYW5lcyA9IHBlbmRpbmdMYW5lcyAmIH5zdXNwZW5kZWRMYW5lcyksXG4gICAgICAgICAgMCAhPT0gbm9uSWRsZVBlbmRpbmdMYW5lc1xuICAgICAgICAgICAgPyAobmV4dExhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMobm9uSWRsZVBlbmRpbmdMYW5lcykpXG4gICAgICAgICAgICA6IDAgIT09IHBpbmdlZExhbmVzXG4gICAgICAgICAgICAgID8gKG5leHRMYW5lcyA9IGdldEhpZ2hlc3RQcmlvcml0eUxhbmVzKHBpbmdlZExhbmVzKSlcbiAgICAgICAgICAgICAgOiByb290SGFzUGVuZGluZ0NvbW1pdCB8fFxuICAgICAgICAgICAgICAgICgocm9vdEhhc1BlbmRpbmdDb21taXQgPSBwZW5kaW5nTGFuZXMgJiB+cm9vdCksXG4gICAgICAgICAgICAgICAgMCAhPT0gcm9vdEhhc1BlbmRpbmdDb21taXQgJiZcbiAgICAgICAgICAgICAgICAgIChuZXh0TGFuZXMgPSBnZXRIaWdoZXN0UHJpb3JpdHlMYW5lcyhyb290SGFzUGVuZGluZ0NvbW1pdCkpKSk7XG4gICAgICByZXR1cm4gMCA9PT0gbmV4dExhbmVzXG4gICAgICAgID8gMFxuICAgICAgICA6IDAgIT09IHdpcExhbmVzICYmXG4gICAgICAgICAgICB3aXBMYW5lcyAhPT0gbmV4dExhbmVzICYmXG4gICAgICAgICAgICAwID09PSAod2lwTGFuZXMgJiBzdXNwZW5kZWRMYW5lcykgJiZcbiAgICAgICAgICAgICgoc3VzcGVuZGVkTGFuZXMgPSBuZXh0TGFuZXMgJiAtbmV4dExhbmVzKSxcbiAgICAgICAgICAgIChyb290SGFzUGVuZGluZ0NvbW1pdCA9IHdpcExhbmVzICYgLXdpcExhbmVzKSxcbiAgICAgICAgICAgIHN1c3BlbmRlZExhbmVzID49IHJvb3RIYXNQZW5kaW5nQ29tbWl0IHx8XG4gICAgICAgICAgICAgICgzMiA9PT0gc3VzcGVuZGVkTGFuZXMgJiYgMCAhPT0gKHJvb3RIYXNQZW5kaW5nQ29tbWl0ICYgNDE5NDA0OCkpKVxuICAgICAgICAgID8gd2lwTGFuZXNcbiAgICAgICAgICA6IG5leHRMYW5lcztcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tJZlJvb3RJc1ByZXJlbmRlcmluZyhyb290LCByZW5kZXJMYW5lcykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgMCA9PT1cbiAgICAgICAgKHJvb3QucGVuZGluZ0xhbmVzICZcbiAgICAgICAgICB+KHJvb3Quc3VzcGVuZGVkTGFuZXMgJiB+cm9vdC5waW5nZWRMYW5lcykgJlxuICAgICAgICAgIHJlbmRlckxhbmVzKVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tcHV0ZUV4cGlyYXRpb25UaW1lKGxhbmUsIGN1cnJlbnRUaW1lKSB7XG4gICAgICBzd2l0Y2ggKGxhbmUpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICBjYXNlIDI6XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICBjYXNlIDY0OlxuICAgICAgICAgIHJldHVybiBjdXJyZW50VGltZSArIDI1MDtcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgY2FzZSAxMjg6XG4gICAgICAgIGNhc2UgMjU2OlxuICAgICAgICBjYXNlIDUxMjpcbiAgICAgICAgY2FzZSAxMDI0OlxuICAgICAgICBjYXNlIDIwNDg6XG4gICAgICAgIGNhc2UgNDA5NjpcbiAgICAgICAgY2FzZSA4MTkyOlxuICAgICAgICBjYXNlIDE2Mzg0OlxuICAgICAgICBjYXNlIDMyNzY4OlxuICAgICAgICBjYXNlIDY1NTM2OlxuICAgICAgICBjYXNlIDEzMTA3MjpcbiAgICAgICAgY2FzZSAyNjIxNDQ6XG4gICAgICAgIGNhc2UgNTI0Mjg4OlxuICAgICAgICBjYXNlIDEwNDg1NzY6XG4gICAgICAgIGNhc2UgMjA5NzE1MjpcbiAgICAgICAgICByZXR1cm4gY3VycmVudFRpbWUgKyA1ZTM7XG4gICAgICAgIGNhc2UgNDE5NDMwNDpcbiAgICAgICAgY2FzZSA4Mzg4NjA4OlxuICAgICAgICBjYXNlIDE2Nzc3MjE2OlxuICAgICAgICBjYXNlIDMzNTU0NDMyOlxuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgY2FzZSA2NzEwODg2NDpcbiAgICAgICAgY2FzZSAxMzQyMTc3Mjg6XG4gICAgICAgIGNhc2UgMjY4NDM1NDU2OlxuICAgICAgICBjYXNlIDUzNjg3MDkxMjpcbiAgICAgICAgY2FzZSAxMDczNzQxODI0OlxuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJTaG91bGQgaGF2ZSBmb3VuZCBtYXRjaGluZyBsYW5lcy4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIC0xXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY2xhaW1OZXh0UmV0cnlMYW5lKCkge1xuICAgICAgdmFyIGxhbmUgPSBuZXh0UmV0cnlMYW5lO1xuICAgICAgbmV4dFJldHJ5TGFuZSA8PD0gMTtcbiAgICAgIDAgPT09IChuZXh0UmV0cnlMYW5lICYgNjI5MTQ1NjApICYmIChuZXh0UmV0cnlMYW5lID0gNDE5NDMwNCk7XG4gICAgICByZXR1cm4gbGFuZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlTGFuZU1hcChpbml0aWFsKSB7XG4gICAgICBmb3IgKHZhciBsYW5lTWFwID0gW10sIGkgPSAwOyAzMSA+IGk7IGkrKykgbGFuZU1hcC5wdXNoKGluaXRpYWwpO1xuICAgICAgcmV0dXJuIGxhbmVNYXA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hcmtSb290VXBkYXRlZCQxKHJvb3QsIHVwZGF0ZUxhbmUpIHtcbiAgICAgIHJvb3QucGVuZGluZ0xhbmVzIHw9IHVwZGF0ZUxhbmU7XG4gICAgICAyNjg0MzU0NTYgIT09IHVwZGF0ZUxhbmUgJiZcbiAgICAgICAgKChyb290LnN1c3BlbmRlZExhbmVzID0gMCksXG4gICAgICAgIChyb290LnBpbmdlZExhbmVzID0gMCksXG4gICAgICAgIChyb290Lndhcm1MYW5lcyA9IDApKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya1Jvb3RGaW5pc2hlZChcbiAgICAgIHJvb3QsXG4gICAgICBmaW5pc2hlZExhbmVzLFxuICAgICAgcmVtYWluaW5nTGFuZXMsXG4gICAgICBzcGF3bmVkTGFuZSxcbiAgICAgIHVwZGF0ZWRMYW5lcyxcbiAgICAgIHN1c3BlbmRlZFJldHJ5TGFuZXNcbiAgICApIHtcbiAgICAgIHZhciBwcmV2aW91c2x5UGVuZGluZ0xhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXM7XG4gICAgICByb290LnBlbmRpbmdMYW5lcyA9IHJlbWFpbmluZ0xhbmVzO1xuICAgICAgcm9vdC5zdXNwZW5kZWRMYW5lcyA9IDA7XG4gICAgICByb290LnBpbmdlZExhbmVzID0gMDtcbiAgICAgIHJvb3Qud2FybUxhbmVzID0gMDtcbiAgICAgIHJvb3QuZXhwaXJlZExhbmVzICY9IHJlbWFpbmluZ0xhbmVzO1xuICAgICAgcm9vdC5lbnRhbmdsZWRMYW5lcyAmPSByZW1haW5pbmdMYW5lcztcbiAgICAgIHJvb3QuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXMgJj0gcmVtYWluaW5nTGFuZXM7XG4gICAgICByb290LnNoZWxsU3VzcGVuZENvdW50ZXIgPSAwO1xuICAgICAgdmFyIGVudGFuZ2xlbWVudHMgPSByb290LmVudGFuZ2xlbWVudHMsXG4gICAgICAgIGV4cGlyYXRpb25UaW1lcyA9IHJvb3QuZXhwaXJhdGlvblRpbWVzLFxuICAgICAgICBoaWRkZW5VcGRhdGVzID0gcm9vdC5oaWRkZW5VcGRhdGVzO1xuICAgICAgZm9yIChcbiAgICAgICAgcmVtYWluaW5nTGFuZXMgPSBwcmV2aW91c2x5UGVuZGluZ0xhbmVzICYgfnJlbWFpbmluZ0xhbmVzO1xuICAgICAgICAwIDwgcmVtYWluaW5nTGFuZXM7XG5cbiAgICAgICkge1xuICAgICAgICB2YXIgaW5kZXggPSAzMSAtIGNsejMyKHJlbWFpbmluZ0xhbmVzKSxcbiAgICAgICAgICBsYW5lID0gMSA8PCBpbmRleDtcbiAgICAgICAgZW50YW5nbGVtZW50c1tpbmRleF0gPSAwO1xuICAgICAgICBleHBpcmF0aW9uVGltZXNbaW5kZXhdID0gLTE7XG4gICAgICAgIHZhciBoaWRkZW5VcGRhdGVzRm9yTGFuZSA9IGhpZGRlblVwZGF0ZXNbaW5kZXhdO1xuICAgICAgICBpZiAobnVsbCAhPT0gaGlkZGVuVXBkYXRlc0ZvckxhbmUpXG4gICAgICAgICAgZm9yIChcbiAgICAgICAgICAgIGhpZGRlblVwZGF0ZXNbaW5kZXhdID0gbnVsbCwgaW5kZXggPSAwO1xuICAgICAgICAgICAgaW5kZXggPCBoaWRkZW5VcGRhdGVzRm9yTGFuZS5sZW5ndGg7XG4gICAgICAgICAgICBpbmRleCsrXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB2YXIgdXBkYXRlID0gaGlkZGVuVXBkYXRlc0ZvckxhbmVbaW5kZXhdO1xuICAgICAgICAgICAgbnVsbCAhPT0gdXBkYXRlICYmICh1cGRhdGUubGFuZSAmPSAtNTM2ODcwOTEzKTtcbiAgICAgICAgICB9XG4gICAgICAgIHJlbWFpbmluZ0xhbmVzICY9IH5sYW5lO1xuICAgICAgfVxuICAgICAgMCAhPT0gc3Bhd25lZExhbmUgJiYgbWFya1NwYXduZWREZWZlcnJlZExhbmUocm9vdCwgc3Bhd25lZExhbmUsIDApO1xuICAgICAgMCAhPT0gc3VzcGVuZGVkUmV0cnlMYW5lcyAmJlxuICAgICAgICAwID09PSB1cGRhdGVkTGFuZXMgJiZcbiAgICAgICAgMCAhPT0gcm9vdC50YWcgJiZcbiAgICAgICAgKHJvb3Quc3VzcGVuZGVkTGFuZXMgfD1cbiAgICAgICAgICBzdXNwZW5kZWRSZXRyeUxhbmVzICYgfihwcmV2aW91c2x5UGVuZGluZ0xhbmVzICYgfmZpbmlzaGVkTGFuZXMpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya1NwYXduZWREZWZlcnJlZExhbmUocm9vdCwgc3Bhd25lZExhbmUsIGVudGFuZ2xlZExhbmVzKSB7XG4gICAgICByb290LnBlbmRpbmdMYW5lcyB8PSBzcGF3bmVkTGFuZTtcbiAgICAgIHJvb3Quc3VzcGVuZGVkTGFuZXMgJj0gfnNwYXduZWRMYW5lO1xuICAgICAgdmFyIHNwYXduZWRMYW5lSW5kZXggPSAzMSAtIGNsejMyKHNwYXduZWRMYW5lKTtcbiAgICAgIHJvb3QuZW50YW5nbGVkTGFuZXMgfD0gc3Bhd25lZExhbmU7XG4gICAgICByb290LmVudGFuZ2xlbWVudHNbc3Bhd25lZExhbmVJbmRleF0gPVxuICAgICAgICByb290LmVudGFuZ2xlbWVudHNbc3Bhd25lZExhbmVJbmRleF0gfFxuICAgICAgICAxMDczNzQxODI0IHxcbiAgICAgICAgKGVudGFuZ2xlZExhbmVzICYgMjYxOTMwKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya1Jvb3RFbnRhbmdsZWQocm9vdCwgZW50YW5nbGVkTGFuZXMpIHtcbiAgICAgIHZhciByb290RW50YW5nbGVkTGFuZXMgPSAocm9vdC5lbnRhbmdsZWRMYW5lcyB8PSBlbnRhbmdsZWRMYW5lcyk7XG4gICAgICBmb3IgKHJvb3QgPSByb290LmVudGFuZ2xlbWVudHM7IHJvb3RFbnRhbmdsZWRMYW5lczsgKSB7XG4gICAgICAgIHZhciBpbmRleCA9IDMxIC0gY2x6MzIocm9vdEVudGFuZ2xlZExhbmVzKSxcbiAgICAgICAgICBsYW5lID0gMSA8PCBpbmRleDtcbiAgICAgICAgKGxhbmUgJiBlbnRhbmdsZWRMYW5lcykgfCAocm9vdFtpbmRleF0gJiBlbnRhbmdsZWRMYW5lcykgJiZcbiAgICAgICAgICAocm9vdFtpbmRleF0gfD0gZW50YW5nbGVkTGFuZXMpO1xuICAgICAgICByb290RW50YW5nbGVkTGFuZXMgJj0gfmxhbmU7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEJ1bXBlZExhbmVGb3JIeWRyYXRpb24ocm9vdCwgcmVuZGVyTGFuZXMpIHtcbiAgICAgIHZhciByZW5kZXJMYW5lID0gcmVuZGVyTGFuZXMgJiAtcmVuZGVyTGFuZXM7XG4gICAgICByZW5kZXJMYW5lID1cbiAgICAgICAgMCAhPT0gKHJlbmRlckxhbmUgJiA0MilcbiAgICAgICAgICA/IDFcbiAgICAgICAgICA6IGdldEJ1bXBlZExhbmVGb3JIeWRyYXRpb25CeUxhbmUocmVuZGVyTGFuZSk7XG4gICAgICByZXR1cm4gMCAhPT0gKHJlbmRlckxhbmUgJiAocm9vdC5zdXNwZW5kZWRMYW5lcyB8IHJlbmRlckxhbmVzKSlcbiAgICAgICAgPyAwXG4gICAgICAgIDogcmVuZGVyTGFuZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0QnVtcGVkTGFuZUZvckh5ZHJhdGlvbkJ5TGFuZShsYW5lKSB7XG4gICAgICBzd2l0Y2ggKGxhbmUpIHtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGxhbmUgPSAxO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgbGFuZSA9IDQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzI6XG4gICAgICAgICAgbGFuZSA9IDE2O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI1NjpcbiAgICAgICAgY2FzZSA1MTI6XG4gICAgICAgIGNhc2UgMTAyNDpcbiAgICAgICAgY2FzZSAyMDQ4OlxuICAgICAgICBjYXNlIDQwOTY6XG4gICAgICAgIGNhc2UgODE5MjpcbiAgICAgICAgY2FzZSAxNjM4NDpcbiAgICAgICAgY2FzZSAzMjc2ODpcbiAgICAgICAgY2FzZSA2NTUzNjpcbiAgICAgICAgY2FzZSAxMzEwNzI6XG4gICAgICAgIGNhc2UgMjYyMTQ0OlxuICAgICAgICBjYXNlIDUyNDI4ODpcbiAgICAgICAgY2FzZSAxMDQ4NTc2OlxuICAgICAgICBjYXNlIDIwOTcxNTI6XG4gICAgICAgIGNhc2UgNDE5NDMwNDpcbiAgICAgICAgY2FzZSA4Mzg4NjA4OlxuICAgICAgICBjYXNlIDE2Nzc3MjE2OlxuICAgICAgICBjYXNlIDMzNTU0NDMyOlxuICAgICAgICAgIGxhbmUgPSAxMjg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjY4NDM1NDU2OlxuICAgICAgICAgIGxhbmUgPSAxMzQyMTc3Mjg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgbGFuZSA9IDA7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGFuZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWRkRmliZXJUb0xhbmVzTWFwKHJvb3QsIGZpYmVyLCBsYW5lcykge1xuICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KVxuICAgICAgICBmb3IgKHJvb3QgPSByb290LnBlbmRpbmdVcGRhdGVyc0xhbmVNYXA7IDAgPCBsYW5lczsgKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gMzEgLSBjbHozMihsYW5lcyksXG4gICAgICAgICAgICBsYW5lID0gMSA8PCBpbmRleDtcbiAgICAgICAgICByb290W2luZGV4XS5hZGQoZmliZXIpO1xuICAgICAgICAgIGxhbmVzICY9IH5sYW5lO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdmVQZW5kaW5nRmliZXJzVG9NZW1vaXplZChyb290LCBsYW5lcykge1xuICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KVxuICAgICAgICBmb3IgKFxuICAgICAgICAgIHZhciBwZW5kaW5nVXBkYXRlcnNMYW5lTWFwID0gcm9vdC5wZW5kaW5nVXBkYXRlcnNMYW5lTWFwLFxuICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycyA9IHJvb3QubWVtb2l6ZWRVcGRhdGVycztcbiAgICAgICAgICAwIDwgbGFuZXM7XG5cbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIGluZGV4ID0gMzEgLSBjbHozMihsYW5lcyk7XG4gICAgICAgICAgcm9vdCA9IDEgPDwgaW5kZXg7XG4gICAgICAgICAgaW5kZXggPSBwZW5kaW5nVXBkYXRlcnNMYW5lTWFwW2luZGV4XTtcbiAgICAgICAgICAwIDwgaW5kZXguc2l6ZSAmJlxuICAgICAgICAgICAgKGluZGV4LmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgICAgICAgIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7XG4gICAgICAgICAgICAgIChudWxsICE9PSBhbHRlcm5hdGUgJiYgbWVtb2l6ZWRVcGRhdGVycy5oYXMoYWx0ZXJuYXRlKSkgfHxcbiAgICAgICAgICAgICAgICBtZW1vaXplZFVwZGF0ZXJzLmFkZChmaWJlcik7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGluZGV4LmNsZWFyKCkpO1xuICAgICAgICAgIGxhbmVzICY9IH5yb290O1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxhbmVzVG9FdmVudFByaW9yaXR5KGxhbmVzKSB7XG4gICAgICBsYW5lcyAmPSAtbGFuZXM7XG4gICAgICByZXR1cm4gMCAhPT0gRGlzY3JldGVFdmVudFByaW9yaXR5ICYmIERpc2NyZXRlRXZlbnRQcmlvcml0eSA8IGxhbmVzXG4gICAgICAgID8gMCAhPT0gQ29udGludW91c0V2ZW50UHJpb3JpdHkgJiYgQ29udGludW91c0V2ZW50UHJpb3JpdHkgPCBsYW5lc1xuICAgICAgICAgID8gMCAhPT0gKGxhbmVzICYgMTM0MjE3NzI3KVxuICAgICAgICAgICAgPyBEZWZhdWx0RXZlbnRQcmlvcml0eVxuICAgICAgICAgICAgOiBJZGxlRXZlbnRQcmlvcml0eVxuICAgICAgICAgIDogQ29udGludW91c0V2ZW50UHJpb3JpdHlcbiAgICAgICAgOiBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVVcGRhdGVQcmlvcml0eSgpIHtcbiAgICAgIHZhciB1cGRhdGVQcmlvcml0eSA9IFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnA7XG4gICAgICBpZiAoMCAhPT0gdXBkYXRlUHJpb3JpdHkpIHJldHVybiB1cGRhdGVQcmlvcml0eTtcbiAgICAgIHVwZGF0ZVByaW9yaXR5ID0gd2luZG93LmV2ZW50O1xuICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gdXBkYXRlUHJpb3JpdHlcbiAgICAgICAgPyBEZWZhdWx0RXZlbnRQcmlvcml0eVxuICAgICAgICA6IGdldEV2ZW50UHJpb3JpdHkodXBkYXRlUHJpb3JpdHkudHlwZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJ1bldpdGhQcmlvcml0eShwcmlvcml0eSwgZm4pIHtcbiAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiAoUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IHByaW9yaXR5KSwgZm4oKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBwcmV2aW91c1ByaW9yaXR5O1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkZXRhY2hEZWxldGVkSW5zdGFuY2Uobm9kZSkge1xuICAgICAgZGVsZXRlIG5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV07XG4gICAgICBkZWxldGUgbm9kZVtpbnRlcm5hbFByb3BzS2V5XTtcbiAgICAgIGRlbGV0ZSBub2RlW2ludGVybmFsRXZlbnRIYW5kbGVyc0tleV07XG4gICAgICBkZWxldGUgbm9kZVtpbnRlcm5hbEV2ZW50SGFuZGxlckxpc3RlbmVyc0tleV07XG4gICAgICBkZWxldGUgbm9kZVtpbnRlcm5hbEV2ZW50SGFuZGxlc1NldEtleV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKHRhcmdldE5vZGUpIHtcbiAgICAgIHZhciB0YXJnZXRJbnN0ID0gdGFyZ2V0Tm9kZVtpbnRlcm5hbEluc3RhbmNlS2V5XTtcbiAgICAgIGlmICh0YXJnZXRJbnN0KSByZXR1cm4gdGFyZ2V0SW5zdDtcbiAgICAgIGZvciAodmFyIHBhcmVudE5vZGUgPSB0YXJnZXROb2RlLnBhcmVudE5vZGU7IHBhcmVudE5vZGU7ICkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKHRhcmdldEluc3QgPVxuICAgICAgICAgICAgcGFyZW50Tm9kZVtpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSB8fFxuICAgICAgICAgICAgcGFyZW50Tm9kZVtpbnRlcm5hbEluc3RhbmNlS2V5XSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgcGFyZW50Tm9kZSA9IHRhcmdldEluc3QuYWx0ZXJuYXRlO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG51bGwgIT09IHRhcmdldEluc3QuY2hpbGQgfHxcbiAgICAgICAgICAgIChudWxsICE9PSBwYXJlbnROb2RlICYmIG51bGwgIT09IHBhcmVudE5vZGUuY2hpbGQpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IGdldFBhcmVudEh5ZHJhdGlvbkJvdW5kYXJ5KHRhcmdldE5vZGUpO1xuICAgICAgICAgICAgICBudWxsICE9PSB0YXJnZXROb2RlO1xuXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgaWYgKChwYXJlbnROb2RlID0gdGFyZ2V0Tm9kZVtpbnRlcm5hbEluc3RhbmNlS2V5XSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgIHRhcmdldE5vZGUgPSBnZXRQYXJlbnRIeWRyYXRpb25Cb3VuZGFyeSh0YXJnZXROb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGFyZ2V0SW5zdDtcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXROb2RlID0gcGFyZW50Tm9kZTtcbiAgICAgICAgcGFyZW50Tm9kZSA9IHRhcmdldE5vZGUucGFyZW50Tm9kZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRJbnN0YW5jZUZyb21Ob2RlKG5vZGUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKG5vZGUgPSBub2RlW2ludGVybmFsSW5zdGFuY2VLZXldIHx8IG5vZGVbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0pXG4gICAgICApIHtcbiAgICAgICAgdmFyIHRhZyA9IG5vZGUudGFnO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgNSA9PT0gdGFnIHx8XG4gICAgICAgICAgNiA9PT0gdGFnIHx8XG4gICAgICAgICAgMTMgPT09IHRhZyB8fFxuICAgICAgICAgIDMxID09PSB0YWcgfHxcbiAgICAgICAgICAyNiA9PT0gdGFnIHx8XG4gICAgICAgICAgMjcgPT09IHRhZyB8fFxuICAgICAgICAgIDMgPT09IHRhZ1xuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIG5vZGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Tm9kZUZyb21JbnN0YW5jZShpbnN0KSB7XG4gICAgICB2YXIgdGFnID0gaW5zdC50YWc7XG4gICAgICBpZiAoNSA9PT0gdGFnIHx8IDI2ID09PSB0YWcgfHwgMjcgPT09IHRhZyB8fCA2ID09PSB0YWcpXG4gICAgICAgIHJldHVybiBpbnN0LnN0YXRlTm9kZTtcbiAgICAgIHRocm93IEVycm9yKFwiZ2V0Tm9kZUZyb21JbnN0YW5jZTogSW52YWxpZCBhcmd1bWVudC5cIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFJlc291cmNlc0Zyb21Sb290KHJvb3QpIHtcbiAgICAgIHZhciByZXNvdXJjZXMgPSByb290W2ludGVybmFsUm9vdE5vZGVSZXNvdXJjZXNLZXldO1xuICAgICAgcmVzb3VyY2VzIHx8XG4gICAgICAgIChyZXNvdXJjZXMgPSByb290W2ludGVybmFsUm9vdE5vZGVSZXNvdXJjZXNLZXldID1cbiAgICAgICAgICB7IGhvaXN0YWJsZVN0eWxlczogbmV3IE1hcCgpLCBob2lzdGFibGVTY3JpcHRzOiBuZXcgTWFwKCkgfSk7XG4gICAgICByZXR1cm4gcmVzb3VyY2VzO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrTm9kZUFzSG9pc3RhYmxlKG5vZGUpIHtcbiAgICAgIG5vZGVbaW50ZXJuYWxIb2lzdGFibGVNYXJrZXJdID0gITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlZ2lzdGVyVHdvUGhhc2VFdmVudChyZWdpc3RyYXRpb25OYW1lLCBkZXBlbmRlbmNpZXMpIHtcbiAgICAgIHJlZ2lzdGVyRGlyZWN0RXZlbnQocmVnaXN0cmF0aW9uTmFtZSwgZGVwZW5kZW5jaWVzKTtcbiAgICAgIHJlZ2lzdGVyRGlyZWN0RXZlbnQocmVnaXN0cmF0aW9uTmFtZSArIFwiQ2FwdHVyZVwiLCBkZXBlbmRlbmNpZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWdpc3RlckRpcmVjdEV2ZW50KHJlZ2lzdHJhdGlvbk5hbWUsIGRlcGVuZGVuY2llcykge1xuICAgICAgcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llc1tyZWdpc3RyYXRpb25OYW1lXSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiRXZlbnRSZWdpc3RyeTogTW9yZSB0aGFuIG9uZSBwbHVnaW4gYXR0ZW1wdGVkIHRvIHB1Ymxpc2ggdGhlIHNhbWUgcmVnaXN0cmF0aW9uIG5hbWUsIGAlc2AuXCIsXG4gICAgICAgICAgcmVnaXN0cmF0aW9uTmFtZVxuICAgICAgICApO1xuICAgICAgcmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llc1tyZWdpc3RyYXRpb25OYW1lXSA9IGRlcGVuZGVuY2llcztcbiAgICAgIHZhciBsb3dlckNhc2VkTmFtZSA9IHJlZ2lzdHJhdGlvbk5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHBvc3NpYmxlUmVnaXN0cmF0aW9uTmFtZXNbbG93ZXJDYXNlZE5hbWVdID0gcmVnaXN0cmF0aW9uTmFtZTtcbiAgICAgIFwib25Eb3VibGVDbGlja1wiID09PSByZWdpc3RyYXRpb25OYW1lICYmXG4gICAgICAgIChwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzLm9uZGJsY2xpY2sgPSByZWdpc3RyYXRpb25OYW1lKTtcbiAgICAgIGZvciAoXG4gICAgICAgIHJlZ2lzdHJhdGlvbk5hbWUgPSAwO1xuICAgICAgICByZWdpc3RyYXRpb25OYW1lIDwgZGVwZW5kZW5jaWVzLmxlbmd0aDtcbiAgICAgICAgcmVnaXN0cmF0aW9uTmFtZSsrXG4gICAgICApXG4gICAgICAgIGFsbE5hdGl2ZUV2ZW50cy5hZGQoZGVwZW5kZW5jaWVzW3JlZ2lzdHJhdGlvbk5hbWVdKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tDb250cm9sbGVkVmFsdWVQcm9wcyh0YWdOYW1lLCBwcm9wcykge1xuICAgICAgaGFzUmVhZE9ubHlWYWx1ZVtwcm9wcy50eXBlXSB8fFxuICAgICAgICBwcm9wcy5vbkNoYW5nZSB8fFxuICAgICAgICBwcm9wcy5vbklucHV0IHx8XG4gICAgICAgIHByb3BzLnJlYWRPbmx5IHx8XG4gICAgICAgIHByb3BzLmRpc2FibGVkIHx8XG4gICAgICAgIG51bGwgPT0gcHJvcHMudmFsdWUgfHxcbiAgICAgICAgKFwic2VsZWN0XCIgPT09IHRhZ05hbWVcbiAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiWW91IHByb3ZpZGVkIGEgYHZhbHVlYCBwcm9wIHRvIGEgZm9ybSBmaWVsZCB3aXRob3V0IGFuIGBvbkNoYW5nZWAgaGFuZGxlci4gVGhpcyB3aWxsIHJlbmRlciBhIHJlYWQtb25seSBmaWVsZC4gSWYgdGhlIGZpZWxkIHNob3VsZCBiZSBtdXRhYmxlIHVzZSBgZGVmYXVsdFZhbHVlYC4gT3RoZXJ3aXNlLCBzZXQgYG9uQ2hhbmdlYC5cIlxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJZb3UgcHJvdmlkZWQgYSBgdmFsdWVgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gYG9uQ2hhbmdlYCBoYW5kbGVyLiBUaGlzIHdpbGwgcmVuZGVyIGEgcmVhZC1vbmx5IGZpZWxkLiBJZiB0aGUgZmllbGQgc2hvdWxkIGJlIG11dGFibGUgdXNlIGBkZWZhdWx0VmFsdWVgLiBPdGhlcndpc2UsIHNldCBlaXRoZXIgYG9uQ2hhbmdlYCBvciBgcmVhZE9ubHlgLlwiXG4gICAgICAgICAgICApKTtcbiAgICAgIHByb3BzLm9uQ2hhbmdlIHx8XG4gICAgICAgIHByb3BzLnJlYWRPbmx5IHx8XG4gICAgICAgIHByb3BzLmRpc2FibGVkIHx8XG4gICAgICAgIG51bGwgPT0gcHJvcHMuY2hlY2tlZCB8fFxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiWW91IHByb3ZpZGVkIGEgYGNoZWNrZWRgIHByb3AgdG8gYSBmb3JtIGZpZWxkIHdpdGhvdXQgYW4gYG9uQ2hhbmdlYCBoYW5kbGVyLiBUaGlzIHdpbGwgcmVuZGVyIGEgcmVhZC1vbmx5IGZpZWxkLiBJZiB0aGUgZmllbGQgc2hvdWxkIGJlIG11dGFibGUgdXNlIGBkZWZhdWx0Q2hlY2tlZGAuIE90aGVyd2lzZSwgc2V0IGVpdGhlciBgb25DaGFuZ2VgIG9yIGByZWFkT25seWAuXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNBdHRyaWJ1dGVOYW1lU2FmZShhdHRyaWJ1dGVOYW1lKSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbCh2YWxpZGF0ZWRBdHRyaWJ1dGVOYW1lQ2FjaGUsIGF0dHJpYnV0ZU5hbWUpKVxuICAgICAgICByZXR1cm4gITA7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChpbGxlZ2FsQXR0cmlidXRlTmFtZUNhY2hlLCBhdHRyaWJ1dGVOYW1lKSlcbiAgICAgICAgcmV0dXJuICExO1xuICAgICAgaWYgKFZBTElEX0FUVFJJQlVURV9OQU1FX1JFR0VYLnRlc3QoYXR0cmlidXRlTmFtZSkpXG4gICAgICAgIHJldHVybiAodmFsaWRhdGVkQXR0cmlidXRlTmFtZUNhY2hlW2F0dHJpYnV0ZU5hbWVdID0gITApO1xuICAgICAgaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZVthdHRyaWJ1dGVOYW1lXSA9ICEwO1xuICAgICAgY29uc29sZS5lcnJvcihcIkludmFsaWQgYXR0cmlidXRlIG5hbWU6IGAlc2BcIiwgYXR0cmlidXRlTmFtZSk7XG4gICAgICByZXR1cm4gITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFZhbHVlRm9yQXR0cmlidXRlT25DdXN0b21Db21wb25lbnQobm9kZSwgbmFtZSwgZXhwZWN0ZWQpIHtcbiAgICAgIGlmIChpc0F0dHJpYnV0ZU5hbWVTYWZlKG5hbWUpKSB7XG4gICAgICAgIGlmICghbm9kZS5oYXNBdHRyaWJ1dGUobmFtZSkpIHtcbiAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBleHBlY3RlZCkge1xuICAgICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkO1xuICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgICAgaWYgKCExID09PSBleHBlY3RlZCkgcmV0dXJuIGV4cGVjdGVkO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdm9pZCAwID09PSBleHBlY3RlZCA/IHZvaWQgMCA6IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZSA9IG5vZGUuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgICAgICBpZiAoXCJcIiA9PT0gbm9kZSAmJiAhMCA9PT0gZXhwZWN0ZWQpIHJldHVybiAhMDtcbiAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihleHBlY3RlZCwgbmFtZSk7XG4gICAgICAgIHJldHVybiBub2RlID09PSBcIlwiICsgZXhwZWN0ZWQgPyBleHBlY3RlZCA6IG5vZGU7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldFZhbHVlRm9yQXR0cmlidXRlKG5vZGUsIG5hbWUsIHZhbHVlKSB7XG4gICAgICBpZiAoaXNBdHRyaWJ1dGVOYW1lU2FmZShuYW1lKSlcbiAgICAgICAgaWYgKG51bGwgPT09IHZhbHVlKSBub2RlLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJ1bmRlZmluZWRcIjpcbiAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgICAgdmFyIHByZWZpeCA9IG5hbWUudG9Mb3dlckNhc2UoKS5zbGljZSgwLCA1KTtcbiAgICAgICAgICAgICAgaWYgKFwiZGF0YS1cIiAhPT0gcHJlZml4ICYmIFwiYXJpYS1cIiAhPT0gcHJlZml4KSB7XG4gICAgICAgICAgICAgICAgbm9kZS5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIG5hbWUpO1xuICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKG5hbWUsIFwiXCIgKyB2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gc2V0VmFsdWVGb3JLbm93bkF0dHJpYnV0ZShub2RlLCBuYW1lLCB2YWx1ZSkge1xuICAgICAgaWYgKG51bGwgPT09IHZhbHVlKSBub2RlLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCJ1bmRlZmluZWRcIjpcbiAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIG5hbWUpO1xuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShuYW1lLCBcIlwiICsgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzZXRWYWx1ZUZvck5hbWVzcGFjZWRBdHRyaWJ1dGUobm9kZSwgbmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSkge1xuICAgICAgaWYgKG51bGwgPT09IHZhbHVlKSBub2RlLnJlbW92ZUF0dHJpYnV0ZShuYW1lKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCJ1bmRlZmluZWRcIjpcbiAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgIG5vZGUucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIG5hbWUpO1xuICAgICAgICBub2RlLnNldEF0dHJpYnV0ZU5TKG5hbWVzcGFjZSwgbmFtZSwgXCJcIiArIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0VG9TdHJpbmdWYWx1ZSh2YWx1ZSkge1xuICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgY2FzZSBcImJpZ2ludFwiOlxuICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICBjYXNlIFwibnVtYmVyXCI6XG4gICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgY2FzZSBcInVuZGVmaW5lZFwiOlxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgIHJldHVybiBjaGVja0Zvcm1GaWVsZFZhbHVlU3RyaW5nQ29lcmNpb24odmFsdWUpLCB2YWx1ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gXCJcIjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaXNDaGVja2FibGUoZWxlbSkge1xuICAgICAgdmFyIHR5cGUgPSBlbGVtLnR5cGU7XG4gICAgICByZXR1cm4gKFxuICAgICAgICAoZWxlbSA9IGVsZW0ubm9kZU5hbWUpICYmXG4gICAgICAgIFwiaW5wdXRcIiA9PT0gZWxlbS50b0xvd2VyQ2FzZSgpICYmXG4gICAgICAgIChcImNoZWNrYm94XCIgPT09IHR5cGUgfHwgXCJyYWRpb1wiID09PSB0eXBlKVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhY2tWYWx1ZU9uTm9kZShub2RlLCB2YWx1ZUZpZWxkLCBjdXJyZW50VmFsdWUpIHtcbiAgICAgIHZhciBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihcbiAgICAgICAgbm9kZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUsXG4gICAgICAgIHZhbHVlRmllbGRcbiAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgICFub2RlLmhhc093blByb3BlcnR5KHZhbHVlRmllbGQpICYmXG4gICAgICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBkZXNjcmlwdG9yICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGRlc2NyaXB0b3IuZ2V0ICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGRlc2NyaXB0b3Iuc2V0XG4gICAgICApIHtcbiAgICAgICAgdmFyIGdldCA9IGRlc2NyaXB0b3IuZ2V0LFxuICAgICAgICAgIHNldCA9IGRlc2NyaXB0b3Iuc2V0O1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobm9kZSwgdmFsdWVGaWVsZCwge1xuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogITAsXG4gICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0LmNhbGwodGhpcyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZXQ6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICAgICAgY2hlY2tGb3JtRmllbGRWYWx1ZVN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSA9IFwiXCIgKyB2YWx1ZTtcbiAgICAgICAgICAgIHNldC5jYWxsKHRoaXMsIHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobm9kZSwgdmFsdWVGaWVsZCwge1xuICAgICAgICAgIGVudW1lcmFibGU6IGRlc2NyaXB0b3IuZW51bWVyYWJsZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBnZXRWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNldFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIGNoZWNrRm9ybUZpZWxkVmFsdWVTdHJpbmdDb2VyY2lvbih2YWx1ZSk7XG4gICAgICAgICAgICBjdXJyZW50VmFsdWUgPSBcIlwiICsgdmFsdWU7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdG9wVHJhY2tpbmc6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIG5vZGUuX3ZhbHVlVHJhY2tlciA9IG51bGw7XG4gICAgICAgICAgICBkZWxldGUgbm9kZVt2YWx1ZUZpZWxkXTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRyYWNrKG5vZGUpIHtcbiAgICAgIGlmICghbm9kZS5fdmFsdWVUcmFja2VyKSB7XG4gICAgICAgIHZhciB2YWx1ZUZpZWxkID0gaXNDaGVja2FibGUobm9kZSkgPyBcImNoZWNrZWRcIiA6IFwidmFsdWVcIjtcbiAgICAgICAgbm9kZS5fdmFsdWVUcmFja2VyID0gdHJhY2tWYWx1ZU9uTm9kZShcbiAgICAgICAgICBub2RlLFxuICAgICAgICAgIHZhbHVlRmllbGQsXG4gICAgICAgICAgXCJcIiArIG5vZGVbdmFsdWVGaWVsZF1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlVmFsdWVJZkNoYW5nZWQobm9kZSkge1xuICAgICAgaWYgKCFub2RlKSByZXR1cm4gITE7XG4gICAgICB2YXIgdHJhY2tlciA9IG5vZGUuX3ZhbHVlVHJhY2tlcjtcbiAgICAgIGlmICghdHJhY2tlcikgcmV0dXJuICEwO1xuICAgICAgdmFyIGxhc3RWYWx1ZSA9IHRyYWNrZXIuZ2V0VmFsdWUoKTtcbiAgICAgIHZhciB2YWx1ZSA9IFwiXCI7XG4gICAgICBub2RlICYmXG4gICAgICAgICh2YWx1ZSA9IGlzQ2hlY2thYmxlKG5vZGUpXG4gICAgICAgICAgPyBub2RlLmNoZWNrZWRcbiAgICAgICAgICAgID8gXCJ0cnVlXCJcbiAgICAgICAgICAgIDogXCJmYWxzZVwiXG4gICAgICAgICAgOiBub2RlLnZhbHVlKTtcbiAgICAgIG5vZGUgPSB2YWx1ZTtcbiAgICAgIHJldHVybiBub2RlICE9PSBsYXN0VmFsdWUgPyAodHJhY2tlci5zZXRWYWx1ZShub2RlKSwgITApIDogITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEFjdGl2ZUVsZW1lbnQoZG9jKSB7XG4gICAgICBkb2MgPSBkb2MgfHwgKFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBkb2N1bWVudCA/IGRvY3VtZW50IDogdm9pZCAwKTtcbiAgICAgIGlmIChcInVuZGVmaW5lZFwiID09PSB0eXBlb2YgZG9jKSByZXR1cm4gbnVsbDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBkb2MuYWN0aXZlRWxlbWVudCB8fCBkb2MuYm9keTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGRvYy5ib2R5O1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzKHZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUucmVwbGFjZShcbiAgICAgICAgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3Rlc1JlZ2V4LFxuICAgICAgICBmdW5jdGlvbiAoY2gpIHtcbiAgICAgICAgICByZXR1cm4gXCJcXFxcXCIgKyBjaC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSArIFwiIFwiO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZUlucHV0UHJvcHMoZWxlbWVudCwgcHJvcHMpIHtcbiAgICAgIHZvaWQgMCA9PT0gcHJvcHMuY2hlY2tlZCB8fFxuICAgICAgICB2b2lkIDAgPT09IHByb3BzLmRlZmF1bHRDaGVja2VkIHx8XG4gICAgICAgIGRpZFdhcm5DaGVja2VkRGVmYXVsdENoZWNrZWQgfHxcbiAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCIlcyBjb250YWlucyBhbiBpbnB1dCBvZiB0eXBlICVzIHdpdGggYm90aCBjaGVja2VkIGFuZCBkZWZhdWx0Q2hlY2tlZCBwcm9wcy4gSW5wdXQgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgKHNwZWNpZnkgZWl0aGVyIHRoZSBjaGVja2VkIHByb3AsIG9yIHRoZSBkZWZhdWx0Q2hlY2tlZCBwcm9wLCBidXQgbm90IGJvdGgpLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0IGVsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHNcIixcbiAgICAgICAgICBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpIHx8IFwiQSBjb21wb25lbnRcIixcbiAgICAgICAgICBwcm9wcy50eXBlXG4gICAgICAgICksXG4gICAgICAgIChkaWRXYXJuQ2hlY2tlZERlZmF1bHRDaGVja2VkID0gITApKTtcbiAgICAgIHZvaWQgMCA9PT0gcHJvcHMudmFsdWUgfHxcbiAgICAgICAgdm9pZCAwID09PSBwcm9wcy5kZWZhdWx0VmFsdWUgfHxcbiAgICAgICAgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlJDEgfHxcbiAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCIlcyBjb250YWlucyBhbiBpbnB1dCBvZiB0eXBlICVzIHdpdGggYm90aCB2YWx1ZSBhbmQgZGVmYXVsdFZhbHVlIHByb3BzLiBJbnB1dCBlbGVtZW50cyBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCAoc3BlY2lmeSBlaXRoZXIgdGhlIHZhbHVlIHByb3AsIG9yIHRoZSBkZWZhdWx0VmFsdWUgcHJvcCwgYnV0IG5vdCBib3RoKS4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCBlbGVtZW50IGFuZCByZW1vdmUgb25lIG9mIHRoZXNlIHByb3BzLiBNb3JlIGluZm86IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzXCIsXG4gICAgICAgICAgZ2V0Q3VycmVudEZpYmVyT3duZXJOYW1lSW5EZXZPck51bGwoKSB8fCBcIkEgY29tcG9uZW50XCIsXG4gICAgICAgICAgcHJvcHMudHlwZVxuICAgICAgICApLFxuICAgICAgICAoZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlJDEgPSAhMCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVJbnB1dChcbiAgICAgIGVsZW1lbnQsXG4gICAgICB2YWx1ZSxcbiAgICAgIGRlZmF1bHRWYWx1ZSxcbiAgICAgIGxhc3REZWZhdWx0VmFsdWUsXG4gICAgICBjaGVja2VkLFxuICAgICAgZGVmYXVsdENoZWNrZWQsXG4gICAgICB0eXBlLFxuICAgICAgbmFtZVxuICAgICkge1xuICAgICAgZWxlbWVudC5uYW1lID0gXCJcIjtcbiAgICAgIG51bGwgIT0gdHlwZSAmJlxuICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdHlwZSAmJlxuICAgICAgXCJzeW1ib2xcIiAhPT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgIFwiYm9vbGVhblwiICE9PSB0eXBlb2YgdHlwZVxuICAgICAgICA/IChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHR5cGUsIFwidHlwZVwiKSwgKGVsZW1lbnQudHlwZSA9IHR5cGUpKVxuICAgICAgICA6IGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwidHlwZVwiKTtcbiAgICAgIGlmIChudWxsICE9IHZhbHVlKVxuICAgICAgICBpZiAoXCJudW1iZXJcIiA9PT0gdHlwZSkge1xuICAgICAgICAgIGlmICgoMCA9PT0gdmFsdWUgJiYgXCJcIiA9PT0gZWxlbWVudC52YWx1ZSkgfHwgZWxlbWVudC52YWx1ZSAhPSB2YWx1ZSlcbiAgICAgICAgICAgIGVsZW1lbnQudmFsdWUgPSBcIlwiICsgZ2V0VG9TdHJpbmdWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIGVsZW1lbnQudmFsdWUgIT09IFwiXCIgKyBnZXRUb1N0cmluZ1ZhbHVlKHZhbHVlKSAmJlxuICAgICAgICAgICAgKGVsZW1lbnQudmFsdWUgPSBcIlwiICsgZ2V0VG9TdHJpbmdWYWx1ZSh2YWx1ZSkpO1xuICAgICAgZWxzZVxuICAgICAgICAoXCJzdWJtaXRcIiAhPT0gdHlwZSAmJiBcInJlc2V0XCIgIT09IHR5cGUpIHx8XG4gICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJ2YWx1ZVwiKTtcbiAgICAgIG51bGwgIT0gdmFsdWVcbiAgICAgICAgPyBzZXREZWZhdWx0VmFsdWUoZWxlbWVudCwgdHlwZSwgZ2V0VG9TdHJpbmdWYWx1ZSh2YWx1ZSkpXG4gICAgICAgIDogbnVsbCAhPSBkZWZhdWx0VmFsdWVcbiAgICAgICAgICA/IHNldERlZmF1bHRWYWx1ZShlbGVtZW50LCB0eXBlLCBnZXRUb1N0cmluZ1ZhbHVlKGRlZmF1bHRWYWx1ZSkpXG4gICAgICAgICAgOiBudWxsICE9IGxhc3REZWZhdWx0VmFsdWUgJiYgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJ2YWx1ZVwiKTtcbiAgICAgIG51bGwgPT0gY2hlY2tlZCAmJlxuICAgICAgICBudWxsICE9IGRlZmF1bHRDaGVja2VkICYmXG4gICAgICAgIChlbGVtZW50LmRlZmF1bHRDaGVja2VkID0gISFkZWZhdWx0Q2hlY2tlZCk7XG4gICAgICBudWxsICE9IGNoZWNrZWQgJiZcbiAgICAgICAgKGVsZW1lbnQuY2hlY2tlZCA9XG4gICAgICAgICAgY2hlY2tlZCAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIGNoZWNrZWQgJiZcbiAgICAgICAgICBcInN5bWJvbFwiICE9PSB0eXBlb2YgY2hlY2tlZCk7XG4gICAgICBudWxsICE9IG5hbWUgJiZcbiAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIG5hbWUgJiZcbiAgICAgIFwic3ltYm9sXCIgIT09IHR5cGVvZiBuYW1lICYmXG4gICAgICBcImJvb2xlYW5cIiAhPT0gdHlwZW9mIG5hbWVcbiAgICAgICAgPyAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihuYW1lLCBcIm5hbWVcIiksXG4gICAgICAgICAgKGVsZW1lbnQubmFtZSA9IFwiXCIgKyBnZXRUb1N0cmluZ1ZhbHVlKG5hbWUpKSlcbiAgICAgICAgOiBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShcIm5hbWVcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRJbnB1dChcbiAgICAgIGVsZW1lbnQsXG4gICAgICB2YWx1ZSxcbiAgICAgIGRlZmF1bHRWYWx1ZSxcbiAgICAgIGNoZWNrZWQsXG4gICAgICBkZWZhdWx0Q2hlY2tlZCxcbiAgICAgIHR5cGUsXG4gICAgICBuYW1lLFxuICAgICAgaXNIeWRyYXRpbmdcbiAgICApIHtcbiAgICAgIG51bGwgIT0gdHlwZSAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgIFwic3ltYm9sXCIgIT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgIFwiYm9vbGVhblwiICE9PSB0eXBlb2YgdHlwZSAmJlxuICAgICAgICAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih0eXBlLCBcInR5cGVcIiksIChlbGVtZW50LnR5cGUgPSB0eXBlKSk7XG4gICAgICBpZiAobnVsbCAhPSB2YWx1ZSB8fCBudWxsICE9IGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIShcbiAgICAgICAgICAgIChcInN1Ym1pdFwiICE9PSB0eXBlICYmIFwicmVzZXRcIiAhPT0gdHlwZSkgfHxcbiAgICAgICAgICAgICh2b2lkIDAgIT09IHZhbHVlICYmIG51bGwgIT09IHZhbHVlKVxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdHJhY2soZWxlbWVudCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9XG4gICAgICAgICAgbnVsbCAhPSBkZWZhdWx0VmFsdWUgPyBcIlwiICsgZ2V0VG9TdHJpbmdWYWx1ZShkZWZhdWx0VmFsdWUpIDogXCJcIjtcbiAgICAgICAgdmFsdWUgPSBudWxsICE9IHZhbHVlID8gXCJcIiArIGdldFRvU3RyaW5nVmFsdWUodmFsdWUpIDogZGVmYXVsdFZhbHVlO1xuICAgICAgICBpc0h5ZHJhdGluZyB8fCB2YWx1ZSA9PT0gZWxlbWVudC52YWx1ZSB8fCAoZWxlbWVudC52YWx1ZSA9IHZhbHVlKTtcbiAgICAgICAgZWxlbWVudC5kZWZhdWx0VmFsdWUgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGNoZWNrZWQgPSBudWxsICE9IGNoZWNrZWQgPyBjaGVja2VkIDogZGVmYXVsdENoZWNrZWQ7XG4gICAgICBjaGVja2VkID1cbiAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgY2hlY2tlZCAmJlxuICAgICAgICBcInN5bWJvbFwiICE9PSB0eXBlb2YgY2hlY2tlZCAmJlxuICAgICAgICAhIWNoZWNrZWQ7XG4gICAgICBlbGVtZW50LmNoZWNrZWQgPSBpc0h5ZHJhdGluZyA/IGVsZW1lbnQuY2hlY2tlZCA6ICEhY2hlY2tlZDtcbiAgICAgIGVsZW1lbnQuZGVmYXVsdENoZWNrZWQgPSAhIWNoZWNrZWQ7XG4gICAgICBudWxsICE9IG5hbWUgJiZcbiAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgbmFtZSAmJlxuICAgICAgICBcInN5bWJvbFwiICE9PSB0eXBlb2YgbmFtZSAmJlxuICAgICAgICBcImJvb2xlYW5cIiAhPT0gdHlwZW9mIG5hbWUgJiZcbiAgICAgICAgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24obmFtZSwgXCJuYW1lXCIpLCAoZWxlbWVudC5uYW1lID0gbmFtZSkpO1xuICAgICAgdHJhY2soZWxlbWVudCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldERlZmF1bHRWYWx1ZShub2RlLCB0eXBlLCB2YWx1ZSkge1xuICAgICAgKFwibnVtYmVyXCIgPT09IHR5cGUgJiYgZ2V0QWN0aXZlRWxlbWVudChub2RlLm93bmVyRG9jdW1lbnQpID09PSBub2RlKSB8fFxuICAgICAgICBub2RlLmRlZmF1bHRWYWx1ZSA9PT0gXCJcIiArIHZhbHVlIHx8XG4gICAgICAgIChub2RlLmRlZmF1bHRWYWx1ZSA9IFwiXCIgKyB2YWx1ZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlT3B0aW9uUHJvcHMoZWxlbWVudCwgcHJvcHMpIHtcbiAgICAgIG51bGwgPT0gcHJvcHMudmFsdWUgJiZcbiAgICAgICAgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBwcm9wcy5jaGlsZHJlbiAmJiBudWxsICE9PSBwcm9wcy5jaGlsZHJlblxuICAgICAgICAgID8gUmVhY3QuQ2hpbGRyZW4uZm9yRWFjaChwcm9wcy5jaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICAgIG51bGwgPT0gY2hpbGQgfHxcbiAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgY2hpbGQgfHxcbiAgICAgICAgICAgICAgICBcIm51bWJlclwiID09PSB0eXBlb2YgY2hpbGQgfHxcbiAgICAgICAgICAgICAgICBcImJpZ2ludFwiID09PSB0eXBlb2YgY2hpbGQgfHxcbiAgICAgICAgICAgICAgICBkaWRXYXJuSW52YWxpZENoaWxkIHx8XG4gICAgICAgICAgICAgICAgKChkaWRXYXJuSW52YWxpZENoaWxkID0gITApLFxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIkNhbm5vdCBpbmZlciB0aGUgb3B0aW9uIHZhbHVlIG9mIGNvbXBsZXggY2hpbGRyZW4uIFBhc3MgYSBgdmFsdWVgIHByb3Agb3IgdXNlIGEgcGxhaW4gc3RyaW5nIGFzIGNoaWxkcmVuIHRvIDxvcHRpb24+LlwiXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogbnVsbCA9PSBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCB8fFxuICAgICAgICAgICAgZGlkV2FybkludmFsaWRJbm5lckhUTUwgfHxcbiAgICAgICAgICAgICgoZGlkV2FybkludmFsaWRJbm5lckhUTUwgPSAhMCksXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlBhc3MgYSBgdmFsdWVgIHByb3AgaWYgeW91IHNldCBkYW5nZXJvdXNseUlubmVySFRNTCBzbyBSZWFjdCBrbm93cyB3aGljaCB2YWx1ZSBzaG91bGQgYmUgc2VsZWN0ZWQuXCJcbiAgICAgICAgICAgICkpKTtcbiAgICAgIG51bGwgPT0gcHJvcHMuc2VsZWN0ZWQgfHxcbiAgICAgICAgZGlkV2FyblNlbGVjdGVkU2V0T25PcHRpb24gfHxcbiAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJVc2UgdGhlIGBkZWZhdWx0VmFsdWVgIG9yIGB2YWx1ZWAgcHJvcHMgb24gPHNlbGVjdD4gaW5zdGVhZCBvZiBzZXR0aW5nIGBzZWxlY3RlZGAgb24gPG9wdGlvbj4uXCJcbiAgICAgICAgKSxcbiAgICAgICAgKGRpZFdhcm5TZWxlY3RlZFNldE9uT3B0aW9uID0gITApKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCkge1xuICAgICAgdmFyIG93bmVyTmFtZSA9IGdldEN1cnJlbnRGaWJlck93bmVyTmFtZUluRGV2T3JOdWxsKCk7XG4gICAgICByZXR1cm4gb3duZXJOYW1lXG4gICAgICAgID8gXCJcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgXCIgKyBvd25lck5hbWUgKyBcImAuXCJcbiAgICAgICAgOiBcIlwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVPcHRpb25zKG5vZGUsIG11bHRpcGxlLCBwcm9wVmFsdWUsIHNldERlZmF1bHRTZWxlY3RlZCkge1xuICAgICAgbm9kZSA9IG5vZGUub3B0aW9ucztcbiAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICBtdWx0aXBsZSA9IHt9O1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BWYWx1ZS5sZW5ndGg7IGkrKylcbiAgICAgICAgICBtdWx0aXBsZVtcIiRcIiArIHByb3BWYWx1ZVtpXV0gPSAhMDtcbiAgICAgICAgZm9yIChwcm9wVmFsdWUgPSAwOyBwcm9wVmFsdWUgPCBub2RlLmxlbmd0aDsgcHJvcFZhbHVlKyspXG4gICAgICAgICAgKGkgPSBtdWx0aXBsZS5oYXNPd25Qcm9wZXJ0eShcIiRcIiArIG5vZGVbcHJvcFZhbHVlXS52YWx1ZSkpLFxuICAgICAgICAgICAgbm9kZVtwcm9wVmFsdWVdLnNlbGVjdGVkICE9PSBpICYmIChub2RlW3Byb3BWYWx1ZV0uc2VsZWN0ZWQgPSBpKSxcbiAgICAgICAgICAgIGkgJiYgc2V0RGVmYXVsdFNlbGVjdGVkICYmIChub2RlW3Byb3BWYWx1ZV0uZGVmYXVsdFNlbGVjdGVkID0gITApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvcFZhbHVlID0gXCJcIiArIGdldFRvU3RyaW5nVmFsdWUocHJvcFZhbHVlKTtcbiAgICAgICAgbXVsdGlwbGUgPSBudWxsO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbm9kZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmIChub2RlW2ldLnZhbHVlID09PSBwcm9wVmFsdWUpIHtcbiAgICAgICAgICAgIG5vZGVbaV0uc2VsZWN0ZWQgPSAhMDtcbiAgICAgICAgICAgIHNldERlZmF1bHRTZWxlY3RlZCAmJiAobm9kZVtpXS5kZWZhdWx0U2VsZWN0ZWQgPSAhMCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIG51bGwgIT09IG11bHRpcGxlIHx8IG5vZGVbaV0uZGlzYWJsZWQgfHwgKG11bHRpcGxlID0gbm9kZVtpXSk7XG4gICAgICAgIH1cbiAgICAgICAgbnVsbCAhPT0gbXVsdGlwbGUgJiYgKG11bHRpcGxlLnNlbGVjdGVkID0gITApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZVNlbGVjdFByb3BzKGVsZW1lbnQsIHByb3BzKSB7XG4gICAgICBmb3IgKGVsZW1lbnQgPSAwOyBlbGVtZW50IDwgdmFsdWVQcm9wTmFtZXMubGVuZ3RoOyBlbGVtZW50KyspIHtcbiAgICAgICAgdmFyIHByb3BOYW1lID0gdmFsdWVQcm9wTmFtZXNbZWxlbWVudF07XG4gICAgICAgIGlmIChudWxsICE9IHByb3BzW3Byb3BOYW1lXSkge1xuICAgICAgICAgIHZhciBwcm9wTmFtZUlzQXJyYXkgPSBpc0FycmF5SW1wbChwcm9wc1twcm9wTmFtZV0pO1xuICAgICAgICAgIHByb3BzLm11bHRpcGxlICYmICFwcm9wTmFtZUlzQXJyYXlcbiAgICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlRoZSBgJXNgIHByb3Agc3VwcGxpZWQgdG8gPHNlbGVjdD4gbXVzdCBiZSBhbiBhcnJheSBpZiBgbXVsdGlwbGVgIGlzIHRydWUuJXNcIixcbiAgICAgICAgICAgICAgICBwcm9wTmFtZSxcbiAgICAgICAgICAgICAgICBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6ICFwcm9wcy5tdWx0aXBsZSAmJlxuICAgICAgICAgICAgICBwcm9wTmFtZUlzQXJyYXkgJiZcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlRoZSBgJXNgIHByb3Agc3VwcGxpZWQgdG8gPHNlbGVjdD4gbXVzdCBiZSBhIHNjYWxhciB2YWx1ZSBpZiBgbXVsdGlwbGVgIGlzIGZhbHNlLiVzXCIsXG4gICAgICAgICAgICAgICAgcHJvcE5hbWUsXG4gICAgICAgICAgICAgICAgZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdm9pZCAwID09PSBwcm9wcy52YWx1ZSB8fFxuICAgICAgICB2b2lkIDAgPT09IHByb3BzLmRlZmF1bHRWYWx1ZSB8fFxuICAgICAgICBkaWRXYXJuVmFsdWVEZWZhdWx0VmFsdWUgfHxcbiAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJTZWxlY3QgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgKHNwZWNpZnkgZWl0aGVyIHRoZSB2YWx1ZSBwcm9wLCBvciB0aGUgZGVmYXVsdFZhbHVlIHByb3AsIGJ1dCBub3QgYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgc2VsZWN0IGVsZW1lbnQgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHNcIlxuICAgICAgICApLFxuICAgICAgICAoZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlID0gITApKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVUZXh0YXJlYVByb3BzKGVsZW1lbnQsIHByb3BzKSB7XG4gICAgICB2b2lkIDAgPT09IHByb3BzLnZhbHVlIHx8XG4gICAgICAgIHZvaWQgMCA9PT0gcHJvcHMuZGVmYXVsdFZhbHVlIHx8XG4gICAgICAgIGRpZFdhcm5WYWxEZWZhdWx0VmFsIHx8XG4gICAgICAgIChjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiJXMgY29udGFpbnMgYSB0ZXh0YXJlYSB3aXRoIGJvdGggdmFsdWUgYW5kIGRlZmF1bHRWYWx1ZSBwcm9wcy4gVGV4dGFyZWEgZWxlbWVudHMgbXVzdCBiZSBlaXRoZXIgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgKHNwZWNpZnkgZWl0aGVyIHRoZSB2YWx1ZSBwcm9wLCBvciB0aGUgZGVmYXVsdFZhbHVlIHByb3AsIGJ1dCBub3QgYm90aCkuIERlY2lkZSBiZXR3ZWVuIHVzaW5nIGEgY29udHJvbGxlZCBvciB1bmNvbnRyb2xsZWQgdGV4dGFyZWEgYW5kIHJlbW92ZSBvbmUgb2YgdGhlc2UgcHJvcHMuIE1vcmUgaW5mbzogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9jb250cm9sbGVkLWNvbXBvbmVudHNcIixcbiAgICAgICAgICBnZXRDdXJyZW50RmliZXJPd25lck5hbWVJbkRldk9yTnVsbCgpIHx8IFwiQSBjb21wb25lbnRcIlxuICAgICAgICApLFxuICAgICAgICAoZGlkV2FyblZhbERlZmF1bHRWYWwgPSAhMCkpO1xuICAgICAgbnVsbCAhPSBwcm9wcy5jaGlsZHJlbiAmJlxuICAgICAgICBudWxsID09IHByb3BzLnZhbHVlICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJVc2UgdGhlIGBkZWZhdWx0VmFsdWVgIG9yIGB2YWx1ZWAgcHJvcHMgaW5zdGVhZCBvZiBzZXR0aW5nIGNoaWxkcmVuIG9uIDx0ZXh0YXJlYT4uXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlVGV4dGFyZWEoZWxlbWVudCwgdmFsdWUsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgaWYgKFxuICAgICAgICBudWxsICE9IHZhbHVlICYmXG4gICAgICAgICgodmFsdWUgPSBcIlwiICsgZ2V0VG9TdHJpbmdWYWx1ZSh2YWx1ZSkpLFxuICAgICAgICB2YWx1ZSAhPT0gZWxlbWVudC52YWx1ZSAmJiAoZWxlbWVudC52YWx1ZSA9IHZhbHVlKSxcbiAgICAgICAgbnVsbCA9PSBkZWZhdWx0VmFsdWUpXG4gICAgICApIHtcbiAgICAgICAgZWxlbWVudC5kZWZhdWx0VmFsdWUgIT09IHZhbHVlICYmIChlbGVtZW50LmRlZmF1bHRWYWx1ZSA9IHZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZWxlbWVudC5kZWZhdWx0VmFsdWUgPVxuICAgICAgICBudWxsICE9IGRlZmF1bHRWYWx1ZSA/IFwiXCIgKyBnZXRUb1N0cmluZ1ZhbHVlKGRlZmF1bHRWYWx1ZSkgOiBcIlwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbml0VGV4dGFyZWEoZWxlbWVudCwgdmFsdWUsIGRlZmF1bHRWYWx1ZSwgY2hpbGRyZW4pIHtcbiAgICAgIGlmIChudWxsID09IHZhbHVlKSB7XG4gICAgICAgIGlmIChudWxsICE9IGNoaWxkcmVuKSB7XG4gICAgICAgICAgaWYgKG51bGwgIT0gZGVmYXVsdFZhbHVlKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgIFwiSWYgeW91IHN1cHBseSBgZGVmYXVsdFZhbHVlYCBvbiBhIDx0ZXh0YXJlYT4sIGRvIG5vdCBwYXNzIGNoaWxkcmVuLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmIChpc0FycmF5SW1wbChjaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGlmICgxIDwgY2hpbGRyZW4ubGVuZ3RoKVxuICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcIjx0ZXh0YXJlYT4gY2FuIG9ubHkgaGF2ZSBhdCBtb3N0IG9uZSBjaGlsZC5cIik7XG4gICAgICAgICAgICBjaGlsZHJlbiA9IGNoaWxkcmVuWzBdO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0VmFsdWUgPSBjaGlsZHJlbjtcbiAgICAgICAgfVxuICAgICAgICBudWxsID09IGRlZmF1bHRWYWx1ZSAmJiAoZGVmYXVsdFZhbHVlID0gXCJcIik7XG4gICAgICAgIHZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgICAgfVxuICAgICAgZGVmYXVsdFZhbHVlID0gZ2V0VG9TdHJpbmdWYWx1ZSh2YWx1ZSk7XG4gICAgICBlbGVtZW50LmRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgIGNoaWxkcmVuID0gZWxlbWVudC50ZXh0Q29udGVudDtcbiAgICAgIGNoaWxkcmVuID09PSBkZWZhdWx0VmFsdWUgJiZcbiAgICAgICAgXCJcIiAhPT0gY2hpbGRyZW4gJiZcbiAgICAgICAgbnVsbCAhPT0gY2hpbGRyZW4gJiZcbiAgICAgICAgKGVsZW1lbnQudmFsdWUgPSBjaGlsZHJlbik7XG4gICAgICB0cmFjayhlbGVtZW50KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmluZE5vdGFibGVOb2RlKG5vZGUsIGluZGVudCkge1xuICAgICAgcmV0dXJuIHZvaWQgMCA9PT0gbm9kZS5zZXJ2ZXJQcm9wcyAmJlxuICAgICAgICAwID09PSBub2RlLnNlcnZlclRhaWwubGVuZ3RoICYmXG4gICAgICAgIDEgPT09IG5vZGUuY2hpbGRyZW4ubGVuZ3RoICYmXG4gICAgICAgIDMgPCBub2RlLmRpc3RhbmNlRnJvbUxlYWYgJiZcbiAgICAgICAgbm9kZS5kaXN0YW5jZUZyb21MZWFmID4gMTUgLSBpbmRlbnRcbiAgICAgICAgPyBmaW5kTm90YWJsZU5vZGUobm9kZS5jaGlsZHJlblswXSwgaW5kZW50KVxuICAgICAgICA6IG5vZGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluZGVudGF0aW9uKGluZGVudCkge1xuICAgICAgcmV0dXJuIFwiICBcIiArIFwiICBcIi5yZXBlYXQoaW5kZW50KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWRkZWQoaW5kZW50KSB7XG4gICAgICByZXR1cm4gXCIrIFwiICsgXCIgIFwiLnJlcGVhdChpbmRlbnQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZW1vdmVkKGluZGVudCkge1xuICAgICAgcmV0dXJuIFwiLSBcIiArIFwiICBcIi5yZXBlYXQoaW5kZW50KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVGaWJlclR5cGUoZmliZXIpIHtcbiAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgMjY6XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByZXR1cm4gZmliZXIudHlwZTtcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICByZXR1cm4gXCJMYXp5XCI7XG4gICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgcmV0dXJuIFwiQWN0aXZpdHlcIjtcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICByZXR1cm4gXCJTdXNwZW5zZVwiO1xuICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlTGlzdFwiO1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgcmV0dXJuIChmaWJlciA9IGZpYmVyLnR5cGUpLCBmaWJlci5kaXNwbGF5TmFtZSB8fCBmaWJlci5uYW1lIHx8IG51bGw7XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChmaWJlciA9IGZpYmVyLnR5cGUucmVuZGVyKSwgZmliZXIuZGlzcGxheU5hbWUgfHwgZmliZXIubmFtZSB8fCBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJldHVybiAoZmliZXIgPSBmaWJlci50eXBlKSwgZmliZXIuZGlzcGxheU5hbWUgfHwgZmliZXIubmFtZSB8fCBudWxsO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZVRleHROb2RlKGNvbnRlbnQsIG1heExlbmd0aCkge1xuICAgICAgcmV0dXJuIG5lZWRzRXNjYXBpbmcudGVzdChjb250ZW50KVxuICAgICAgICA/ICgoY29udGVudCA9IEpTT04uc3RyaW5naWZ5KGNvbnRlbnQpKSxcbiAgICAgICAgICBjb250ZW50Lmxlbmd0aCA+IG1heExlbmd0aCAtIDJcbiAgICAgICAgICAgID8gOCA+IG1heExlbmd0aFxuICAgICAgICAgICAgICA/ICd7XCIuLi5cIn0nXG4gICAgICAgICAgICAgIDogXCJ7XCIgKyBjb250ZW50LnNsaWNlKDAsIG1heExlbmd0aCAtIDcpICsgJy4uLlwifSdcbiAgICAgICAgICAgIDogXCJ7XCIgKyBjb250ZW50ICsgXCJ9XCIpXG4gICAgICAgIDogY29udGVudC5sZW5ndGggPiBtYXhMZW5ndGhcbiAgICAgICAgICA/IDUgPiBtYXhMZW5ndGhcbiAgICAgICAgICAgID8gJ3tcIi4uLlwifSdcbiAgICAgICAgICAgIDogY29udGVudC5zbGljZSgwLCBtYXhMZW5ndGggLSAzKSArIFwiLi4uXCJcbiAgICAgICAgICA6IGNvbnRlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlVGV4dERpZmYoY2xpZW50VGV4dCwgc2VydmVyUHJvcHMsIGluZGVudCkge1xuICAgICAgdmFyIG1heExlbmd0aCA9IDEyMCAtIDIgKiBpbmRlbnQ7XG4gICAgICBpZiAobnVsbCA9PT0gc2VydmVyUHJvcHMpXG4gICAgICAgIHJldHVybiBhZGRlZChpbmRlbnQpICsgZGVzY3JpYmVUZXh0Tm9kZShjbGllbnRUZXh0LCBtYXhMZW5ndGgpICsgXCJcXG5cIjtcbiAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2Ygc2VydmVyUHJvcHMpIHtcbiAgICAgICAgZm9yIChcbiAgICAgICAgICB2YXIgZmlyc3REaWZmID0gMDtcbiAgICAgICAgICBmaXJzdERpZmYgPCBzZXJ2ZXJQcm9wcy5sZW5ndGggJiZcbiAgICAgICAgICBmaXJzdERpZmYgPCBjbGllbnRUZXh0Lmxlbmd0aCAmJlxuICAgICAgICAgIHNlcnZlclByb3BzLmNoYXJDb2RlQXQoZmlyc3REaWZmKSA9PT1cbiAgICAgICAgICAgIGNsaWVudFRleHQuY2hhckNvZGVBdChmaXJzdERpZmYpO1xuICAgICAgICAgIGZpcnN0RGlmZisrXG4gICAgICAgICk7XG4gICAgICAgIGZpcnN0RGlmZiA+IG1heExlbmd0aCAtIDggJiZcbiAgICAgICAgICAxMCA8IGZpcnN0RGlmZiAmJlxuICAgICAgICAgICgoY2xpZW50VGV4dCA9IFwiLi4uXCIgKyBjbGllbnRUZXh0LnNsaWNlKGZpcnN0RGlmZiAtIDgpKSxcbiAgICAgICAgICAoc2VydmVyUHJvcHMgPSBcIi4uLlwiICsgc2VydmVyUHJvcHMuc2xpY2UoZmlyc3REaWZmIC0gOCkpKTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBhZGRlZChpbmRlbnQpICtcbiAgICAgICAgICBkZXNjcmliZVRleHROb2RlKGNsaWVudFRleHQsIG1heExlbmd0aCkgK1xuICAgICAgICAgIFwiXFxuXCIgK1xuICAgICAgICAgIHJlbW92ZWQoaW5kZW50KSArXG4gICAgICAgICAgZGVzY3JpYmVUZXh0Tm9kZShzZXJ2ZXJQcm9wcywgbWF4TGVuZ3RoKSArXG4gICAgICAgICAgXCJcXG5cIlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgaW5kZW50YXRpb24oaW5kZW50KSArIGRlc2NyaWJlVGV4dE5vZGUoY2xpZW50VGV4dCwgbWF4TGVuZ3RoKSArIFwiXFxuXCJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG9iamVjdE5hbWUob2JqZWN0KSB7XG4gICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZ1xuICAgICAgICAuY2FsbChvYmplY3QpXG4gICAgICAgIC5yZXBsYWNlKC9eXFxbb2JqZWN0ICguKilcXF0kLywgZnVuY3Rpb24gKG0sIHAwKSB7XG4gICAgICAgICAgcmV0dXJuIHAwO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVWYWx1ZSh2YWx1ZSwgbWF4TGVuZ3RoKSB7XG4gICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICBjYXNlIFwic3RyaW5nXCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHZhbHVlKSksXG4gICAgICAgICAgICB2YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGhcbiAgICAgICAgICAgICAgPyA1ID4gbWF4TGVuZ3RoXG4gICAgICAgICAgICAgICAgPyAnXCIuLi5cIidcbiAgICAgICAgICAgICAgICA6IHZhbHVlLnNsaWNlKDAsIG1heExlbmd0aCAtIDQpICsgJy4uLlwiJ1xuICAgICAgICAgICAgICA6IHZhbHVlXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkgcmV0dXJuIFwibnVsbFwiO1xuICAgICAgICAgIGlmIChpc0FycmF5SW1wbCh2YWx1ZSkpIHJldHVybiBcIlsuLi5dXCI7XG4gICAgICAgICAgaWYgKHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpXG4gICAgICAgICAgICByZXR1cm4gKG1heExlbmd0aCA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh2YWx1ZS50eXBlKSlcbiAgICAgICAgICAgICAgPyBcIjxcIiArIG1heExlbmd0aCArIFwiPlwiXG4gICAgICAgICAgICAgIDogXCI8Li4uPlwiO1xuICAgICAgICAgIHZhciBuYW1lID0gb2JqZWN0TmFtZSh2YWx1ZSk7XG4gICAgICAgICAgaWYgKFwiT2JqZWN0XCIgPT09IG5hbWUpIHtcbiAgICAgICAgICAgIG5hbWUgPSBcIlwiO1xuICAgICAgICAgICAgbWF4TGVuZ3RoIC09IDI7XG4gICAgICAgICAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiB2YWx1ZSlcbiAgICAgICAgICAgICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICAgICAgICAgIHZhciBqc29uUHJvcE5hbWUgPSBKU09OLnN0cmluZ2lmeShwcm9wTmFtZSk7XG4gICAgICAgICAgICAgICAganNvblByb3BOYW1lICE9PSAnXCInICsgcHJvcE5hbWUgKyAnXCInICYmXG4gICAgICAgICAgICAgICAgICAocHJvcE5hbWUgPSBqc29uUHJvcE5hbWUpO1xuICAgICAgICAgICAgICAgIG1heExlbmd0aCAtPSBwcm9wTmFtZS5sZW5ndGggLSAyO1xuICAgICAgICAgICAgICAgIGpzb25Qcm9wTmFtZSA9IGRlc2NyaWJlVmFsdWUoXG4gICAgICAgICAgICAgICAgICB2YWx1ZVtwcm9wTmFtZV0sXG4gICAgICAgICAgICAgICAgICAxNSA+IG1heExlbmd0aCA/IG1heExlbmd0aCA6IDE1XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBtYXhMZW5ndGggLT0ganNvblByb3BOYW1lLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpZiAoMCA+IG1heExlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgbmFtZSArPSBcIlwiID09PSBuYW1lID8gXCIuLi5cIiA6IFwiLCAuLi5cIjtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBuYW1lICs9XG4gICAgICAgICAgICAgICAgICAoXCJcIiA9PT0gbmFtZSA/IFwiXCIgOiBcIixcIikgKyBwcm9wTmFtZSArIFwiOlwiICsganNvblByb3BOYW1lO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gXCJ7XCIgKyBuYW1lICsgXCJ9XCI7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICByZXR1cm4gKG1heExlbmd0aCA9IHZhbHVlLmRpc3BsYXlOYW1lIHx8IHZhbHVlLm5hbWUpXG4gICAgICAgICAgICA/IFwiZnVuY3Rpb24gXCIgKyBtYXhMZW5ndGhcbiAgICAgICAgICAgIDogXCJmdW5jdGlvblwiO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZVByb3BWYWx1ZSh2YWx1ZSwgbWF4TGVuZ3RoKSB7XG4gICAgICByZXR1cm4gXCJzdHJpbmdcIiAhPT0gdHlwZW9mIHZhbHVlIHx8IG5lZWRzRXNjYXBpbmcudGVzdCh2YWx1ZSlcbiAgICAgICAgPyBcIntcIiArIGRlc2NyaWJlVmFsdWUodmFsdWUsIG1heExlbmd0aCAtIDIpICsgXCJ9XCJcbiAgICAgICAgOiB2YWx1ZS5sZW5ndGggPiBtYXhMZW5ndGggLSAyXG4gICAgICAgICAgPyA1ID4gbWF4TGVuZ3RoXG4gICAgICAgICAgICA/ICdcIi4uLlwiJ1xuICAgICAgICAgICAgOiAnXCInICsgdmFsdWUuc2xpY2UoMCwgbWF4TGVuZ3RoIC0gNSkgKyAnLi4uXCInXG4gICAgICAgICAgOiAnXCInICsgdmFsdWUgKyAnXCInO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZUV4cGFuZGVkRWxlbWVudCh0eXBlLCBwcm9wcywgcm93UHJlZml4KSB7XG4gICAgICB2YXIgcmVtYWluaW5nUm93TGVuZ3RoID0gMTIwIC0gcm93UHJlZml4Lmxlbmd0aCAtIHR5cGUubGVuZ3RoLFxuICAgICAgICBwcm9wZXJ0aWVzID0gW10sXG4gICAgICAgIHByb3BOYW1lO1xuICAgICAgZm9yIChwcm9wTmFtZSBpbiBwcm9wcylcbiAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KHByb3BOYW1lKSAmJiBcImNoaWxkcmVuXCIgIT09IHByb3BOYW1lKSB7XG4gICAgICAgICAgdmFyIHByb3BWYWx1ZSA9IGRlc2NyaWJlUHJvcFZhbHVlKFxuICAgICAgICAgICAgcHJvcHNbcHJvcE5hbWVdLFxuICAgICAgICAgICAgMTIwIC0gcm93UHJlZml4Lmxlbmd0aCAtIHByb3BOYW1lLmxlbmd0aCAtIDFcbiAgICAgICAgICApO1xuICAgICAgICAgIHJlbWFpbmluZ1Jvd0xlbmd0aCAtPSBwcm9wTmFtZS5sZW5ndGggKyBwcm9wVmFsdWUubGVuZ3RoICsgMjtcbiAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2gocHJvcE5hbWUgKyBcIj1cIiArIHByb3BWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIHJldHVybiAwID09PSBwcm9wZXJ0aWVzLmxlbmd0aFxuICAgICAgICA/IHJvd1ByZWZpeCArIFwiPFwiICsgdHlwZSArIFwiPlxcblwiXG4gICAgICAgIDogMCA8IHJlbWFpbmluZ1Jvd0xlbmd0aFxuICAgICAgICAgID8gcm93UHJlZml4ICsgXCI8XCIgKyB0eXBlICsgXCIgXCIgKyBwcm9wZXJ0aWVzLmpvaW4oXCIgXCIpICsgXCI+XFxuXCJcbiAgICAgICAgICA6IHJvd1ByZWZpeCArXG4gICAgICAgICAgICBcIjxcIiArXG4gICAgICAgICAgICB0eXBlICtcbiAgICAgICAgICAgIFwiXFxuXCIgK1xuICAgICAgICAgICAgcm93UHJlZml4ICtcbiAgICAgICAgICAgIFwiICBcIiArXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLmpvaW4oXCJcXG5cIiArIHJvd1ByZWZpeCArIFwiICBcIikgK1xuICAgICAgICAgICAgXCJcXG5cIiArXG4gICAgICAgICAgICByb3dQcmVmaXggK1xuICAgICAgICAgICAgXCI+XFxuXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlUHJvcGVydGllc0RpZmYoY2xpZW50T2JqZWN0LCBzZXJ2ZXJPYmplY3QsIGluZGVudCkge1xuICAgICAgdmFyIHByb3BlcnRpZXMgPSBcIlwiLFxuICAgICAgICByZW1haW5pbmdTZXJ2ZXJQcm9wZXJ0aWVzID0gYXNzaWduKHt9LCBzZXJ2ZXJPYmplY3QpLFxuICAgICAgICBwcm9wTmFtZTtcbiAgICAgIGZvciAocHJvcE5hbWUgaW4gY2xpZW50T2JqZWN0KVxuICAgICAgICBpZiAoY2xpZW50T2JqZWN0Lmhhc093blByb3BlcnR5KHByb3BOYW1lKSkge1xuICAgICAgICAgIGRlbGV0ZSByZW1haW5pbmdTZXJ2ZXJQcm9wZXJ0aWVzW3Byb3BOYW1lXTtcbiAgICAgICAgICB2YXIgbWF4TGVuZ3RoID0gMTIwIC0gMiAqIGluZGVudCAtIHByb3BOYW1lLmxlbmd0aCAtIDIsXG4gICAgICAgICAgICBjbGllbnRQcm9wVmFsdWUgPSBkZXNjcmliZVZhbHVlKGNsaWVudE9iamVjdFtwcm9wTmFtZV0sIG1heExlbmd0aCk7XG4gICAgICAgICAgc2VydmVyT2JqZWN0Lmhhc093blByb3BlcnR5KHByb3BOYW1lKVxuICAgICAgICAgICAgPyAoKG1heExlbmd0aCA9IGRlc2NyaWJlVmFsdWUoc2VydmVyT2JqZWN0W3Byb3BOYW1lXSwgbWF4TGVuZ3RoKSksXG4gICAgICAgICAgICAgIChwcm9wZXJ0aWVzICs9XG4gICAgICAgICAgICAgICAgYWRkZWQoaW5kZW50KSArIHByb3BOYW1lICsgXCI6IFwiICsgY2xpZW50UHJvcFZhbHVlICsgXCJcXG5cIiksXG4gICAgICAgICAgICAgIChwcm9wZXJ0aWVzICs9XG4gICAgICAgICAgICAgICAgcmVtb3ZlZChpbmRlbnQpICsgcHJvcE5hbWUgKyBcIjogXCIgKyBtYXhMZW5ndGggKyBcIlxcblwiKSlcbiAgICAgICAgICAgIDogKHByb3BlcnRpZXMgKz1cbiAgICAgICAgICAgICAgICBhZGRlZChpbmRlbnQpICsgcHJvcE5hbWUgKyBcIjogXCIgKyBjbGllbnRQcm9wVmFsdWUgKyBcIlxcblwiKTtcbiAgICAgICAgfVxuICAgICAgZm9yICh2YXIgX3Byb3BOYW1lIGluIHJlbWFpbmluZ1NlcnZlclByb3BlcnRpZXMpXG4gICAgICAgIHJlbWFpbmluZ1NlcnZlclByb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoX3Byb3BOYW1lKSAmJlxuICAgICAgICAgICgoY2xpZW50T2JqZWN0ID0gZGVzY3JpYmVWYWx1ZShcbiAgICAgICAgICAgIHJlbWFpbmluZ1NlcnZlclByb3BlcnRpZXNbX3Byb3BOYW1lXSxcbiAgICAgICAgICAgIDEyMCAtIDIgKiBpbmRlbnQgLSBfcHJvcE5hbWUubGVuZ3RoIC0gMlxuICAgICAgICAgICkpLFxuICAgICAgICAgIChwcm9wZXJ0aWVzICs9XG4gICAgICAgICAgICByZW1vdmVkKGluZGVudCkgKyBfcHJvcE5hbWUgKyBcIjogXCIgKyBjbGllbnRPYmplY3QgKyBcIlxcblwiKSk7XG4gICAgICByZXR1cm4gcHJvcGVydGllcztcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVFbGVtZW50RGlmZih0eXBlLCBjbGllbnRQcm9wcywgc2VydmVyUHJvcHMsIGluZGVudCkge1xuICAgICAgdmFyIGNvbnRlbnQgPSBcIlwiLFxuICAgICAgICBzZXJ2ZXJQcm9wTmFtZXMgPSBuZXcgTWFwKCk7XG4gICAgICBmb3IgKHByb3BOYW1lJGpzY29tcCQwIGluIHNlcnZlclByb3BzKVxuICAgICAgICBzZXJ2ZXJQcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSRqc2NvbXAkMCkgJiZcbiAgICAgICAgICBzZXJ2ZXJQcm9wTmFtZXMuc2V0KFxuICAgICAgICAgICAgcHJvcE5hbWUkanNjb21wJDAudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgIHByb3BOYW1lJGpzY29tcCQwXG4gICAgICAgICAgKTtcbiAgICAgIGlmICgxID09PSBzZXJ2ZXJQcm9wTmFtZXMuc2l6ZSAmJiBzZXJ2ZXJQcm9wTmFtZXMuaGFzKFwiY2hpbGRyZW5cIikpXG4gICAgICAgIGNvbnRlbnQgKz0gZGVzY3JpYmVFeHBhbmRlZEVsZW1lbnQoXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBjbGllbnRQcm9wcyxcbiAgICAgICAgICBpbmRlbnRhdGlvbihpbmRlbnQpXG4gICAgICAgICk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgZm9yICh2YXIgX3Byb3BOYW1lMiBpbiBjbGllbnRQcm9wcylcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjbGllbnRQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcE5hbWUyKSAmJlxuICAgICAgICAgICAgXCJjaGlsZHJlblwiICE9PSBfcHJvcE5hbWUyXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB2YXIgbWF4TGVuZ3RoJGpzY29tcCQwID1cbiAgICAgICAgICAgICAgICAxMjAgLSAyICogKGluZGVudCArIDEpIC0gX3Byb3BOYW1lMi5sZW5ndGggLSAxLFxuICAgICAgICAgICAgICBzZXJ2ZXJQcm9wTmFtZSA9IHNlcnZlclByb3BOYW1lcy5nZXQoX3Byb3BOYW1lMi50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgIGlmICh2b2lkIDAgIT09IHNlcnZlclByb3BOYW1lKSB7XG4gICAgICAgICAgICAgIHNlcnZlclByb3BOYW1lcy5kZWxldGUoX3Byb3BOYW1lMi50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgdmFyIHByb3BOYW1lJGpzY29tcCQwID0gY2xpZW50UHJvcHNbX3Byb3BOYW1lMl07XG4gICAgICAgICAgICAgIHNlcnZlclByb3BOYW1lID0gc2VydmVyUHJvcHNbc2VydmVyUHJvcE5hbWVdO1xuICAgICAgICAgICAgICB2YXIgY2xpZW50UHJvcFZhbHVlID0gZGVzY3JpYmVQcm9wVmFsdWUoXG4gICAgICAgICAgICAgICAgcHJvcE5hbWUkanNjb21wJDAsXG4gICAgICAgICAgICAgICAgbWF4TGVuZ3RoJGpzY29tcCQwXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIG1heExlbmd0aCRqc2NvbXAkMCA9IGRlc2NyaWJlUHJvcFZhbHVlKFxuICAgICAgICAgICAgICAgIHNlcnZlclByb3BOYW1lLFxuICAgICAgICAgICAgICAgIG1heExlbmd0aCRqc2NvbXAkMFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgcHJvcE5hbWUkanNjb21wJDAgJiZcbiAgICAgICAgICAgICAgbnVsbCAhPT0gcHJvcE5hbWUkanNjb21wJDAgJiZcbiAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHNlcnZlclByb3BOYW1lICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IHNlcnZlclByb3BOYW1lICYmXG4gICAgICAgICAgICAgIFwiT2JqZWN0XCIgPT09IG9iamVjdE5hbWUocHJvcE5hbWUkanNjb21wJDApICYmXG4gICAgICAgICAgICAgIFwiT2JqZWN0XCIgPT09IG9iamVjdE5hbWUoc2VydmVyUHJvcE5hbWUpICYmXG4gICAgICAgICAgICAgICgyIDwgT2JqZWN0LmtleXMocHJvcE5hbWUkanNjb21wJDApLmxlbmd0aCB8fFxuICAgICAgICAgICAgICAgIDIgPCBPYmplY3Qua2V5cyhzZXJ2ZXJQcm9wTmFtZSkubGVuZ3RoIHx8XG4gICAgICAgICAgICAgICAgLTEgPCBjbGllbnRQcm9wVmFsdWUuaW5kZXhPZihcIi4uLlwiKSB8fFxuICAgICAgICAgICAgICAgIC0xIDwgbWF4TGVuZ3RoJGpzY29tcCQwLmluZGV4T2YoXCIuLi5cIikpXG4gICAgICAgICAgICAgICAgPyAoY29udGVudCArPVxuICAgICAgICAgICAgICAgICAgICBpbmRlbnRhdGlvbihpbmRlbnQgKyAxKSArXG4gICAgICAgICAgICAgICAgICAgIF9wcm9wTmFtZTIgK1xuICAgICAgICAgICAgICAgICAgICBcIj17e1xcblwiICtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmVQcm9wZXJ0aWVzRGlmZihcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wTmFtZSRqc2NvbXAkMCxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJQcm9wTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICBpbmRlbnQgKyAyXG4gICAgICAgICAgICAgICAgICAgICkgK1xuICAgICAgICAgICAgICAgICAgICBpbmRlbnRhdGlvbihpbmRlbnQgKyAxKSArXG4gICAgICAgICAgICAgICAgICAgIFwifX1cXG5cIilcbiAgICAgICAgICAgICAgICA6ICgoY29udGVudCArPVxuICAgICAgICAgICAgICAgICAgICBhZGRlZChpbmRlbnQgKyAxKSArXG4gICAgICAgICAgICAgICAgICAgIF9wcm9wTmFtZTIgK1xuICAgICAgICAgICAgICAgICAgICBcIj1cIiArXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudFByb3BWYWx1ZSArXG4gICAgICAgICAgICAgICAgICAgIFwiXFxuXCIpLFxuICAgICAgICAgICAgICAgICAgKGNvbnRlbnQgKz1cbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlZChpbmRlbnQgKyAxKSArXG4gICAgICAgICAgICAgICAgICAgIF9wcm9wTmFtZTIgK1xuICAgICAgICAgICAgICAgICAgICBcIj1cIiArXG4gICAgICAgICAgICAgICAgICAgIG1heExlbmd0aCRqc2NvbXAkMCArXG4gICAgICAgICAgICAgICAgICAgIFwiXFxuXCIpKTtcbiAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICBjb250ZW50ICs9XG4gICAgICAgICAgICAgICAgaW5kZW50YXRpb24oaW5kZW50ICsgMSkgK1xuICAgICAgICAgICAgICAgIF9wcm9wTmFtZTIgK1xuICAgICAgICAgICAgICAgIFwiPVwiICtcbiAgICAgICAgICAgICAgICBkZXNjcmliZVByb3BWYWx1ZShjbGllbnRQcm9wc1tfcHJvcE5hbWUyXSwgbWF4TGVuZ3RoJGpzY29tcCQwKSArXG4gICAgICAgICAgICAgICAgXCJcXG5cIjtcbiAgICAgICAgICB9XG4gICAgICAgIHNlcnZlclByb3BOYW1lcy5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wTmFtZSkge1xuICAgICAgICAgIGlmIChcImNoaWxkcmVuXCIgIT09IHByb3BOYW1lKSB7XG4gICAgICAgICAgICB2YXIgbWF4TGVuZ3RoID0gMTIwIC0gMiAqIChpbmRlbnQgKyAxKSAtIHByb3BOYW1lLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICBjb250ZW50ICs9XG4gICAgICAgICAgICAgIHJlbW92ZWQoaW5kZW50ICsgMSkgK1xuICAgICAgICAgICAgICBwcm9wTmFtZSArXG4gICAgICAgICAgICAgIFwiPVwiICtcbiAgICAgICAgICAgICAgZGVzY3JpYmVQcm9wVmFsdWUoc2VydmVyUHJvcHNbcHJvcE5hbWVdLCBtYXhMZW5ndGgpICtcbiAgICAgICAgICAgICAgXCJcXG5cIjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb250ZW50ID1cbiAgICAgICAgICBcIlwiID09PSBjb250ZW50XG4gICAgICAgICAgICA/IGluZGVudGF0aW9uKGluZGVudCkgKyBcIjxcIiArIHR5cGUgKyBcIj5cXG5cIlxuICAgICAgICAgICAgOiBpbmRlbnRhdGlvbihpbmRlbnQpICtcbiAgICAgICAgICAgICAgXCI8XCIgK1xuICAgICAgICAgICAgICB0eXBlICtcbiAgICAgICAgICAgICAgXCJcXG5cIiArXG4gICAgICAgICAgICAgIGNvbnRlbnQgK1xuICAgICAgICAgICAgICBpbmRlbnRhdGlvbihpbmRlbnQpICtcbiAgICAgICAgICAgICAgXCI+XFxuXCI7XG4gICAgICB9XG4gICAgICB0eXBlID0gc2VydmVyUHJvcHMuY2hpbGRyZW47XG4gICAgICBjbGllbnRQcm9wcyA9IGNsaWVudFByb3BzLmNoaWxkcmVuO1xuICAgICAgaWYgKFxuICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSB8fFxuICAgICAgICBcIm51bWJlclwiID09PSB0eXBlb2YgdHlwZSB8fFxuICAgICAgICBcImJpZ2ludFwiID09PSB0eXBlb2YgdHlwZVxuICAgICAgKSB7XG4gICAgICAgIHNlcnZlclByb3BOYW1lcyA9IFwiXCI7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgY2xpZW50UHJvcHMgfHxcbiAgICAgICAgICBcIm51bWJlclwiID09PSB0eXBlb2YgY2xpZW50UHJvcHMgfHxcbiAgICAgICAgICBcImJpZ2ludFwiID09PSB0eXBlb2YgY2xpZW50UHJvcHNcbiAgICAgICAgKVxuICAgICAgICAgIHNlcnZlclByb3BOYW1lcyA9IFwiXCIgKyBjbGllbnRQcm9wcztcbiAgICAgICAgY29udGVudCArPSBkZXNjcmliZVRleHREaWZmKHNlcnZlclByb3BOYW1lcywgXCJcIiArIHR5cGUsIGluZGVudCArIDEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGNsaWVudFByb3BzIHx8XG4gICAgICAgIFwibnVtYmVyXCIgPT09IHR5cGVvZiBjbGllbnRQcm9wcyB8fFxuICAgICAgICBcImJpZ2ludFwiID09PSB0eXBlb2YgY2xpZW50UHJvcHNcbiAgICAgIClcbiAgICAgICAgY29udGVudCA9XG4gICAgICAgICAgbnVsbCA9PSB0eXBlXG4gICAgICAgICAgICA/IGNvbnRlbnQgKyBkZXNjcmliZVRleHREaWZmKFwiXCIgKyBjbGllbnRQcm9wcywgbnVsbCwgaW5kZW50ICsgMSlcbiAgICAgICAgICAgIDogY29udGVudCArIGRlc2NyaWJlVGV4dERpZmYoXCJcIiArIGNsaWVudFByb3BzLCB2b2lkIDAsIGluZGVudCArIDEpO1xuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlc2NyaWJlU2libGluZ0ZpYmVyKGZpYmVyLCBpbmRlbnQpIHtcbiAgICAgIHZhciB0eXBlID0gZGVzY3JpYmVGaWJlclR5cGUoZmliZXIpO1xuICAgICAgaWYgKG51bGwgPT09IHR5cGUpIHtcbiAgICAgICAgdHlwZSA9IFwiXCI7XG4gICAgICAgIGZvciAoZmliZXIgPSBmaWJlci5jaGlsZDsgZmliZXI7IClcbiAgICAgICAgICAodHlwZSArPSBkZXNjcmliZVNpYmxpbmdGaWJlcihmaWJlciwgaW5kZW50KSksXG4gICAgICAgICAgICAoZmliZXIgPSBmaWJlci5zaWJsaW5nKTtcbiAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW5kZW50YXRpb24oaW5kZW50KSArIFwiPFwiICsgdHlwZSArIFwiPlxcblwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZU5vZGUobm9kZSwgaW5kZW50KSB7XG4gICAgICB2YXIgc2tpcFRvTm9kZSA9IGZpbmROb3RhYmxlTm9kZShub2RlLCBpbmRlbnQpO1xuICAgICAgaWYgKFxuICAgICAgICBza2lwVG9Ob2RlICE9PSBub2RlICYmXG4gICAgICAgICgxICE9PSBub2RlLmNoaWxkcmVuLmxlbmd0aCB8fCBub2RlLmNoaWxkcmVuWzBdICE9PSBza2lwVG9Ob2RlKVxuICAgICAgKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGluZGVudGF0aW9uKGluZGVudCkgKyBcIi4uLlxcblwiICsgZGVzY3JpYmVOb2RlKHNraXBUb05vZGUsIGluZGVudCArIDEpXG4gICAgICAgICk7XG4gICAgICBza2lwVG9Ob2RlID0gXCJcIjtcbiAgICAgIHZhciBkZWJ1Z0luZm8gPSBub2RlLmZpYmVyLl9kZWJ1Z0luZm87XG4gICAgICBpZiAoZGVidWdJbmZvKVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRlYnVnSW5mby5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBzZXJ2ZXJDb21wb25lbnROYW1lID0gZGVidWdJbmZvW2ldLm5hbWU7XG4gICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHNlcnZlckNvbXBvbmVudE5hbWUgJiZcbiAgICAgICAgICAgICgoc2tpcFRvTm9kZSArPVxuICAgICAgICAgICAgICBpbmRlbnRhdGlvbihpbmRlbnQpICsgXCI8XCIgKyBzZXJ2ZXJDb21wb25lbnROYW1lICsgXCI+XFxuXCIpLFxuICAgICAgICAgICAgaW5kZW50KyspO1xuICAgICAgICB9XG4gICAgICBkZWJ1Z0luZm8gPSBcIlwiO1xuICAgICAgaSA9IG5vZGUuZmliZXIucGVuZGluZ1Byb3BzO1xuICAgICAgaWYgKDYgPT09IG5vZGUuZmliZXIudGFnKVxuICAgICAgICAoZGVidWdJbmZvID0gZGVzY3JpYmVUZXh0RGlmZihpLCBub2RlLnNlcnZlclByb3BzLCBpbmRlbnQpKSwgaW5kZW50Kys7XG4gICAgICBlbHNlIGlmIChcbiAgICAgICAgKChzZXJ2ZXJDb21wb25lbnROYW1lID0gZGVzY3JpYmVGaWJlclR5cGUobm9kZS5maWJlcikpLFxuICAgICAgICBudWxsICE9PSBzZXJ2ZXJDb21wb25lbnROYW1lKVxuICAgICAgKVxuICAgICAgICBpZiAodm9pZCAwID09PSBub2RlLnNlcnZlclByb3BzKSB7XG4gICAgICAgICAgZGVidWdJbmZvID0gaW5kZW50O1xuICAgICAgICAgIHZhciBtYXhMZW5ndGggPSAxMjAgLSAyICogZGVidWdJbmZvIC0gc2VydmVyQ29tcG9uZW50TmFtZS5sZW5ndGggLSAyLFxuICAgICAgICAgICAgY29udGVudCA9IFwiXCI7XG4gICAgICAgICAgZm9yIChwcm9wTmFtZSBpbiBpKVxuICAgICAgICAgICAgaWYgKGkuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpICYmIFwiY2hpbGRyZW5cIiAhPT0gcHJvcE5hbWUpIHtcbiAgICAgICAgICAgICAgdmFyIHByb3BWYWx1ZSA9IGRlc2NyaWJlUHJvcFZhbHVlKGlbcHJvcE5hbWVdLCAxNSk7XG4gICAgICAgICAgICAgIG1heExlbmd0aCAtPSBwcm9wTmFtZS5sZW5ndGggKyBwcm9wVmFsdWUubGVuZ3RoICsgMjtcbiAgICAgICAgICAgICAgaWYgKDAgPiBtYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICBjb250ZW50ICs9IFwiIC4uLlwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnRlbnQgKz0gXCIgXCIgKyBwcm9wTmFtZSArIFwiPVwiICsgcHJvcFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIGRlYnVnSW5mbyA9XG4gICAgICAgICAgICBpbmRlbnRhdGlvbihkZWJ1Z0luZm8pICtcbiAgICAgICAgICAgIFwiPFwiICtcbiAgICAgICAgICAgIHNlcnZlckNvbXBvbmVudE5hbWUgK1xuICAgICAgICAgICAgY29udGVudCArXG4gICAgICAgICAgICBcIj5cXG5cIjtcbiAgICAgICAgICBpbmRlbnQrKztcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgbnVsbCA9PT0gbm9kZS5zZXJ2ZXJQcm9wc1xuICAgICAgICAgICAgPyAoKGRlYnVnSW5mbyA9IGRlc2NyaWJlRXhwYW5kZWRFbGVtZW50KFxuICAgICAgICAgICAgICAgIHNlcnZlckNvbXBvbmVudE5hbWUsXG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICBhZGRlZChpbmRlbnQpXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICBpbmRlbnQrKylcbiAgICAgICAgICAgIDogXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG5vZGUuc2VydmVyUHJvcHNcbiAgICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJTaG91bGQgbm90IGhhdmUgbWF0Y2hlZCBhIG5vbiBIb3N0VGV4dCBmaWJlciB0byBhIFRleHQgbm9kZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiAoKGRlYnVnSW5mbyA9IGRlc2NyaWJlRWxlbWVudERpZmYoXG4gICAgICAgICAgICAgICAgICBzZXJ2ZXJDb21wb25lbnROYW1lLFxuICAgICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICAgIG5vZGUuc2VydmVyUHJvcHMsXG4gICAgICAgICAgICAgICAgICBpbmRlbnRcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICBpbmRlbnQrKyk7XG4gICAgICB2YXIgcHJvcE5hbWUgPSBcIlwiO1xuICAgICAgaSA9IG5vZGUuZmliZXIuY2hpbGQ7XG4gICAgICBmb3IgKFxuICAgICAgICBzZXJ2ZXJDb21wb25lbnROYW1lID0gMDtcbiAgICAgICAgaSAmJiBzZXJ2ZXJDb21wb25lbnROYW1lIDwgbm9kZS5jaGlsZHJlbi5sZW5ndGg7XG5cbiAgICAgIClcbiAgICAgICAgKG1heExlbmd0aCA9IG5vZGUuY2hpbGRyZW5bc2VydmVyQ29tcG9uZW50TmFtZV0pLFxuICAgICAgICAgIG1heExlbmd0aC5maWJlciA9PT0gaVxuICAgICAgICAgICAgPyAoKHByb3BOYW1lICs9IGRlc2NyaWJlTm9kZShtYXhMZW5ndGgsIGluZGVudCkpLFxuICAgICAgICAgICAgICBzZXJ2ZXJDb21wb25lbnROYW1lKyspXG4gICAgICAgICAgICA6IChwcm9wTmFtZSArPSBkZXNjcmliZVNpYmxpbmdGaWJlcihpLCBpbmRlbnQpKSxcbiAgICAgICAgICAoaSA9IGkuc2libGluZyk7XG4gICAgICBpICYmXG4gICAgICAgIDAgPCBub2RlLmNoaWxkcmVuLmxlbmd0aCAmJlxuICAgICAgICAocHJvcE5hbWUgKz0gaW5kZW50YXRpb24oaW5kZW50KSArIFwiLi4uXFxuXCIpO1xuICAgICAgaSA9IG5vZGUuc2VydmVyVGFpbDtcbiAgICAgIG51bGwgPT09IG5vZGUuc2VydmVyUHJvcHMgJiYgaW5kZW50LS07XG4gICAgICBmb3IgKG5vZGUgPSAwOyBub2RlIDwgaS5sZW5ndGg7IG5vZGUrKylcbiAgICAgICAgKHNlcnZlckNvbXBvbmVudE5hbWUgPSBpW25vZGVdKSxcbiAgICAgICAgICAocHJvcE5hbWUgPVxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHNlcnZlckNvbXBvbmVudE5hbWVcbiAgICAgICAgICAgICAgPyBwcm9wTmFtZSArXG4gICAgICAgICAgICAgICAgKHJlbW92ZWQoaW5kZW50KSArXG4gICAgICAgICAgICAgICAgICBkZXNjcmliZVRleHROb2RlKHNlcnZlckNvbXBvbmVudE5hbWUsIDEyMCAtIDIgKiBpbmRlbnQpICtcbiAgICAgICAgICAgICAgICAgIFwiXFxuXCIpXG4gICAgICAgICAgICAgIDogcHJvcE5hbWUgK1xuICAgICAgICAgICAgICAgIGRlc2NyaWJlRXhwYW5kZWRFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgc2VydmVyQ29tcG9uZW50TmFtZS50eXBlLFxuICAgICAgICAgICAgICAgICAgc2VydmVyQ29tcG9uZW50TmFtZS5wcm9wcyxcbiAgICAgICAgICAgICAgICAgIHJlbW92ZWQoaW5kZW50KVxuICAgICAgICAgICAgICAgICkpO1xuICAgICAgcmV0dXJuIHNraXBUb05vZGUgKyBkZWJ1Z0luZm8gKyBwcm9wTmFtZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVzY3JpYmVEaWZmKHJvb3ROb2RlKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gXCJcXG5cXG5cIiArIGRlc2NyaWJlTm9kZShyb290Tm9kZSwgMCk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIHJldHVybiBcIlwiO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZUFuY2VzdG9ycyhhbmNlc3RvciwgY2hpbGQsIHByb3BzKSB7XG4gICAgICBmb3IgKHZhciBmaWJlciA9IGNoaWxkLCBub2RlID0gbnVsbCwgZGlzdGFuY2VGcm9tTGVhZiA9IDA7IGZpYmVyOyApXG4gICAgICAgIGZpYmVyID09PSBhbmNlc3RvciAmJiAoZGlzdGFuY2VGcm9tTGVhZiA9IDApLFxuICAgICAgICAgIChub2RlID0ge1xuICAgICAgICAgICAgZmliZXI6IGZpYmVyLFxuICAgICAgICAgICAgY2hpbGRyZW46IG51bGwgIT09IG5vZGUgPyBbbm9kZV0gOiBbXSxcbiAgICAgICAgICAgIHNlcnZlclByb3BzOlxuICAgICAgICAgICAgICBmaWJlciA9PT0gY2hpbGQgPyBwcm9wcyA6IGZpYmVyID09PSBhbmNlc3RvciA/IG51bGwgOiB2b2lkIDAsXG4gICAgICAgICAgICBzZXJ2ZXJUYWlsOiBbXSxcbiAgICAgICAgICAgIGRpc3RhbmNlRnJvbUxlYWY6IGRpc3RhbmNlRnJvbUxlYWZcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBkaXN0YW5jZUZyb21MZWFmKyssXG4gICAgICAgICAgKGZpYmVyID0gZmliZXIucmV0dXJuKTtcbiAgICAgIHJldHVybiBudWxsICE9PSBub2RlID8gZGVzY3JpYmVEaWZmKG5vZGUpLnJlcGxhY2VBbGwoL15bKy1dL2dtLCBcIj5cIikgOiBcIlwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVkQW5jZXN0b3JJbmZvRGV2KG9sZEluZm8sIHRhZykge1xuICAgICAgdmFyIGFuY2VzdG9ySW5mbyA9IGFzc2lnbih7fSwgb2xkSW5mbyB8fCBlbXB0eUFuY2VzdG9ySW5mb0RldiksXG4gICAgICAgIGluZm8gPSB7IHRhZzogdGFnIH07XG4gICAgICAtMSAhPT0gaW5TY29wZVRhZ3MuaW5kZXhPZih0YWcpICYmXG4gICAgICAgICgoYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlID0gbnVsbCksXG4gICAgICAgIChhbmNlc3RvckluZm8uYnV0dG9uVGFnSW5TY29wZSA9IG51bGwpLFxuICAgICAgICAoYW5jZXN0b3JJbmZvLm5vYnJUYWdJblNjb3BlID0gbnVsbCkpO1xuICAgICAgLTEgIT09IGJ1dHRvblNjb3BlVGFncy5pbmRleE9mKHRhZykgJiZcbiAgICAgICAgKGFuY2VzdG9ySW5mby5wVGFnSW5CdXR0b25TY29wZSA9IG51bGwpO1xuICAgICAgLTEgIT09IHNwZWNpYWxUYWdzLmluZGV4T2YodGFnKSAmJlxuICAgICAgICBcImFkZHJlc3NcIiAhPT0gdGFnICYmXG4gICAgICAgIFwiZGl2XCIgIT09IHRhZyAmJlxuICAgICAgICBcInBcIiAhPT0gdGFnICYmXG4gICAgICAgICgoYW5jZXN0b3JJbmZvLmxpc3RJdGVtVGFnQXV0b2Nsb3NpbmcgPSBudWxsKSxcbiAgICAgICAgKGFuY2VzdG9ySW5mby5kbEl0ZW1UYWdBdXRvY2xvc2luZyA9IG51bGwpKTtcbiAgICAgIGFuY2VzdG9ySW5mby5jdXJyZW50ID0gaW5mbztcbiAgICAgIFwiZm9ybVwiID09PSB0YWcgJiYgKGFuY2VzdG9ySW5mby5mb3JtVGFnID0gaW5mbyk7XG4gICAgICBcImFcIiA9PT0gdGFnICYmIChhbmNlc3RvckluZm8uYVRhZ0luU2NvcGUgPSBpbmZvKTtcbiAgICAgIFwiYnV0dG9uXCIgPT09IHRhZyAmJiAoYW5jZXN0b3JJbmZvLmJ1dHRvblRhZ0luU2NvcGUgPSBpbmZvKTtcbiAgICAgIFwibm9iclwiID09PSB0YWcgJiYgKGFuY2VzdG9ySW5mby5ub2JyVGFnSW5TY29wZSA9IGluZm8pO1xuICAgICAgXCJwXCIgPT09IHRhZyAmJiAoYW5jZXN0b3JJbmZvLnBUYWdJbkJ1dHRvblNjb3BlID0gaW5mbyk7XG4gICAgICBcImxpXCIgPT09IHRhZyAmJiAoYW5jZXN0b3JJbmZvLmxpc3RJdGVtVGFnQXV0b2Nsb3NpbmcgPSBpbmZvKTtcbiAgICAgIGlmIChcImRkXCIgPT09IHRhZyB8fCBcImR0XCIgPT09IHRhZylcbiAgICAgICAgYW5jZXN0b3JJbmZvLmRsSXRlbVRhZ0F1dG9jbG9zaW5nID0gaW5mbztcbiAgICAgIFwiI2RvY3VtZW50XCIgPT09IHRhZyB8fCBcImh0bWxcIiA9PT0gdGFnXG4gICAgICAgID8gKGFuY2VzdG9ySW5mby5jb250YWluZXJUYWdJblNjb3BlID0gbnVsbClcbiAgICAgICAgOiBhbmNlc3RvckluZm8uY29udGFpbmVyVGFnSW5TY29wZSB8fFxuICAgICAgICAgIChhbmNlc3RvckluZm8uY29udGFpbmVyVGFnSW5TY29wZSA9IGluZm8pO1xuICAgICAgbnVsbCAhPT0gb2xkSW5mbyB8fFxuICAgICAgKFwiI2RvY3VtZW50XCIgIT09IHRhZyAmJiBcImh0bWxcIiAhPT0gdGFnICYmIFwiYm9keVwiICE9PSB0YWcpXG4gICAgICAgID8gITAgPT09IGFuY2VzdG9ySW5mby5pbXBsaWNpdFJvb3RTY29wZSAmJlxuICAgICAgICAgIChhbmNlc3RvckluZm8uaW1wbGljaXRSb290U2NvcGUgPSAhMSlcbiAgICAgICAgOiAoYW5jZXN0b3JJbmZvLmltcGxpY2l0Um9vdFNjb3BlID0gITApO1xuICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mbztcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNUYWdWYWxpZFdpdGhQYXJlbnQodGFnLCBwYXJlbnRUYWcsIGltcGxpY2l0Um9vdFNjb3BlKSB7XG4gICAgICBzd2l0Y2ggKHBhcmVudFRhZykge1xuICAgICAgICBjYXNlIFwic2VsZWN0XCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFwiaHJcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcIm9wdGlvblwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwib3B0Z3JvdXBcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInNjcmlwdFwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwidGVtcGxhdGVcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcIiN0ZXh0XCIgPT09IHRhZ1xuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJvcHRncm91cFwiOlxuICAgICAgICAgIHJldHVybiBcIm9wdGlvblwiID09PSB0YWcgfHwgXCIjdGV4dFwiID09PSB0YWc7XG4gICAgICAgIGNhc2UgXCJvcHRpb25cIjpcbiAgICAgICAgICByZXR1cm4gXCIjdGV4dFwiID09PSB0YWc7XG4gICAgICAgIGNhc2UgXCJ0clwiOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBcInRoXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJ0ZFwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwic3R5bGVcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInNjcmlwdFwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwidGVtcGxhdGVcIiA9PT0gdGFnXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSBcInRib2R5XCI6XG4gICAgICAgIGNhc2UgXCJ0aGVhZFwiOlxuICAgICAgICBjYXNlIFwidGZvb3RcIjpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgXCJ0clwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwic3R5bGVcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInNjcmlwdFwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwidGVtcGxhdGVcIiA9PT0gdGFnXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSBcImNvbGdyb3VwXCI6XG4gICAgICAgICAgcmV0dXJuIFwiY29sXCIgPT09IHRhZyB8fCBcInRlbXBsYXRlXCIgPT09IHRhZztcbiAgICAgICAgY2FzZSBcInRhYmxlXCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFwiY2FwdGlvblwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwiY29sZ3JvdXBcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInRib2R5XCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJ0Zm9vdFwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwidGhlYWRcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInN0eWxlXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJzY3JpcHRcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInRlbXBsYXRlXCIgPT09IHRhZ1xuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJoZWFkXCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFwiYmFzZVwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwiYmFzZWZvbnRcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcImJnc291bmRcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcImxpbmtcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcIm1ldGFcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInRpdGxlXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJub3NjcmlwdFwiID09PSB0YWcgfHxcbiAgICAgICAgICAgIFwibm9mcmFtZXNcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInN0eWxlXCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgXCJzY3JpcHRcIiA9PT0gdGFnIHx8XG4gICAgICAgICAgICBcInRlbXBsYXRlXCIgPT09IHRhZ1xuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJodG1sXCI6XG4gICAgICAgICAgaWYgKGltcGxpY2l0Um9vdFNjb3BlKSBicmVhaztcbiAgICAgICAgICByZXR1cm4gXCJoZWFkXCIgPT09IHRhZyB8fCBcImJvZHlcIiA9PT0gdGFnIHx8IFwiZnJhbWVzZXRcIiA9PT0gdGFnO1xuICAgICAgICBjYXNlIFwiZnJhbWVzZXRcIjpcbiAgICAgICAgICByZXR1cm4gXCJmcmFtZVwiID09PSB0YWc7XG4gICAgICAgIGNhc2UgXCIjZG9jdW1lbnRcIjpcbiAgICAgICAgICBpZiAoIWltcGxpY2l0Um9vdFNjb3BlKSByZXR1cm4gXCJodG1sXCIgPT09IHRhZztcbiAgICAgIH1cbiAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgIGNhc2UgXCJoMVwiOlxuICAgICAgICBjYXNlIFwiaDJcIjpcbiAgICAgICAgY2FzZSBcImgzXCI6XG4gICAgICAgIGNhc2UgXCJoNFwiOlxuICAgICAgICBjYXNlIFwiaDVcIjpcbiAgICAgICAgY2FzZSBcImg2XCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIFwiaDFcIiAhPT0gcGFyZW50VGFnICYmXG4gICAgICAgICAgICBcImgyXCIgIT09IHBhcmVudFRhZyAmJlxuICAgICAgICAgICAgXCJoM1wiICE9PSBwYXJlbnRUYWcgJiZcbiAgICAgICAgICAgIFwiaDRcIiAhPT0gcGFyZW50VGFnICYmXG4gICAgICAgICAgICBcImg1XCIgIT09IHBhcmVudFRhZyAmJlxuICAgICAgICAgICAgXCJoNlwiICE9PSBwYXJlbnRUYWdcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIFwicnBcIjpcbiAgICAgICAgY2FzZSBcInJ0XCI6XG4gICAgICAgICAgcmV0dXJuIC0xID09PSBpbXBsaWVkRW5kVGFncy5pbmRleE9mKHBhcmVudFRhZyk7XG4gICAgICAgIGNhc2UgXCJjYXB0aW9uXCI6XG4gICAgICAgIGNhc2UgXCJjb2xcIjpcbiAgICAgICAgY2FzZSBcImNvbGdyb3VwXCI6XG4gICAgICAgIGNhc2UgXCJmcmFtZXNldFwiOlxuICAgICAgICBjYXNlIFwiZnJhbWVcIjpcbiAgICAgICAgY2FzZSBcInRib2R5XCI6XG4gICAgICAgIGNhc2UgXCJ0ZFwiOlxuICAgICAgICBjYXNlIFwidGZvb3RcIjpcbiAgICAgICAgY2FzZSBcInRoXCI6XG4gICAgICAgIGNhc2UgXCJ0aGVhZFwiOlxuICAgICAgICBjYXNlIFwidHJcIjpcbiAgICAgICAgICByZXR1cm4gbnVsbCA9PSBwYXJlbnRUYWc7XG4gICAgICAgIGNhc2UgXCJoZWFkXCI6XG4gICAgICAgICAgcmV0dXJuIGltcGxpY2l0Um9vdFNjb3BlIHx8IG51bGwgPT09IHBhcmVudFRhZztcbiAgICAgICAgY2FzZSBcImh0bWxcIjpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGltcGxpY2l0Um9vdFNjb3BlICYmIFwiI2RvY3VtZW50XCIgPT09IHBhcmVudFRhZykgfHxcbiAgICAgICAgICAgIG51bGwgPT09IHBhcmVudFRhZ1xuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJib2R5XCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChpbXBsaWNpdFJvb3RTY29wZSAmJlxuICAgICAgICAgICAgICAoXCIjZG9jdW1lbnRcIiA9PT0gcGFyZW50VGFnIHx8IFwiaHRtbFwiID09PSBwYXJlbnRUYWcpKSB8fFxuICAgICAgICAgICAgbnVsbCA9PT0gcGFyZW50VGFnXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmluZEludmFsaWRBbmNlc3RvckZvclRhZyh0YWcsIGFuY2VzdG9ySW5mbykge1xuICAgICAgc3dpdGNoICh0YWcpIHtcbiAgICAgICAgY2FzZSBcImFkZHJlc3NcIjpcbiAgICAgICAgY2FzZSBcImFydGljbGVcIjpcbiAgICAgICAgY2FzZSBcImFzaWRlXCI6XG4gICAgICAgIGNhc2UgXCJibG9ja3F1b3RlXCI6XG4gICAgICAgIGNhc2UgXCJjZW50ZXJcIjpcbiAgICAgICAgY2FzZSBcImRldGFpbHNcIjpcbiAgICAgICAgY2FzZSBcImRpYWxvZ1wiOlxuICAgICAgICBjYXNlIFwiZGlyXCI6XG4gICAgICAgIGNhc2UgXCJkaXZcIjpcbiAgICAgICAgY2FzZSBcImRsXCI6XG4gICAgICAgIGNhc2UgXCJmaWVsZHNldFwiOlxuICAgICAgICBjYXNlIFwiZmlnY2FwdGlvblwiOlxuICAgICAgICBjYXNlIFwiZmlndXJlXCI6XG4gICAgICAgIGNhc2UgXCJmb290ZXJcIjpcbiAgICAgICAgY2FzZSBcImhlYWRlclwiOlxuICAgICAgICBjYXNlIFwiaGdyb3VwXCI6XG4gICAgICAgIGNhc2UgXCJtYWluXCI6XG4gICAgICAgIGNhc2UgXCJtZW51XCI6XG4gICAgICAgIGNhc2UgXCJuYXZcIjpcbiAgICAgICAgY2FzZSBcIm9sXCI6XG4gICAgICAgIGNhc2UgXCJwXCI6XG4gICAgICAgIGNhc2UgXCJzZWN0aW9uXCI6XG4gICAgICAgIGNhc2UgXCJzdW1tYXJ5XCI6XG4gICAgICAgIGNhc2UgXCJ1bFwiOlxuICAgICAgICBjYXNlIFwicHJlXCI6XG4gICAgICAgIGNhc2UgXCJsaXN0aW5nXCI6XG4gICAgICAgIGNhc2UgXCJ0YWJsZVwiOlxuICAgICAgICBjYXNlIFwiaHJcIjpcbiAgICAgICAgY2FzZSBcInhtcFwiOlxuICAgICAgICBjYXNlIFwiaDFcIjpcbiAgICAgICAgY2FzZSBcImgyXCI6XG4gICAgICAgIGNhc2UgXCJoM1wiOlxuICAgICAgICBjYXNlIFwiaDRcIjpcbiAgICAgICAgY2FzZSBcImg1XCI6XG4gICAgICAgIGNhc2UgXCJoNlwiOlxuICAgICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ucFRhZ0luQnV0dG9uU2NvcGU7XG4gICAgICAgIGNhc2UgXCJmb3JtXCI6XG4gICAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5mb3JtVGFnIHx8IGFuY2VzdG9ySW5mby5wVGFnSW5CdXR0b25TY29wZTtcbiAgICAgICAgY2FzZSBcImxpXCI6XG4gICAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5saXN0SXRlbVRhZ0F1dG9jbG9zaW5nO1xuICAgICAgICBjYXNlIFwiZGRcIjpcbiAgICAgICAgY2FzZSBcImR0XCI6XG4gICAgICAgICAgcmV0dXJuIGFuY2VzdG9ySW5mby5kbEl0ZW1UYWdBdXRvY2xvc2luZztcbiAgICAgICAgY2FzZSBcImJ1dHRvblwiOlxuICAgICAgICAgIHJldHVybiBhbmNlc3RvckluZm8uYnV0dG9uVGFnSW5TY29wZTtcbiAgICAgICAgY2FzZSBcImFcIjpcbiAgICAgICAgICByZXR1cm4gYW5jZXN0b3JJbmZvLmFUYWdJblNjb3BlO1xuICAgICAgICBjYXNlIFwibm9iclwiOlxuICAgICAgICAgIHJldHVybiBhbmNlc3RvckluZm8ubm9iclRhZ0luU2NvcGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmluZEFuY2VzdG9yKHBhcmVudCwgdGFnTmFtZSkge1xuICAgICAgZm9yICg7IHBhcmVudDsgKSB7XG4gICAgICAgIHN3aXRjaCAocGFyZW50LnRhZykge1xuICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICBpZiAocGFyZW50LnR5cGUgPT09IHRhZ05hbWUpIHJldHVybiBwYXJlbnQ7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gcGFyZW50LnJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZURPTU5lc3RpbmcoY2hpbGRUYWcsIGFuY2VzdG9ySW5mbykge1xuICAgICAgYW5jZXN0b3JJbmZvID0gYW5jZXN0b3JJbmZvIHx8IGVtcHR5QW5jZXN0b3JJbmZvRGV2O1xuICAgICAgdmFyIHBhcmVudEluZm8gPSBhbmNlc3RvckluZm8uY3VycmVudDtcbiAgICAgIGFuY2VzdG9ySW5mbyA9IChwYXJlbnRJbmZvID0gaXNUYWdWYWxpZFdpdGhQYXJlbnQoXG4gICAgICAgIGNoaWxkVGFnLFxuICAgICAgICBwYXJlbnRJbmZvICYmIHBhcmVudEluZm8udGFnLFxuICAgICAgICBhbmNlc3RvckluZm8uaW1wbGljaXRSb290U2NvcGVcbiAgICAgIClcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogcGFyZW50SW5mbylcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogZmluZEludmFsaWRBbmNlc3RvckZvclRhZyhjaGlsZFRhZywgYW5jZXN0b3JJbmZvKTtcbiAgICAgIGFuY2VzdG9ySW5mbyA9IHBhcmVudEluZm8gfHwgYW5jZXN0b3JJbmZvO1xuICAgICAgaWYgKCFhbmNlc3RvckluZm8pIHJldHVybiAhMDtcbiAgICAgIHZhciBhbmNlc3RvclRhZyA9IGFuY2VzdG9ySW5mby50YWc7XG4gICAgICBhbmNlc3RvckluZm8gPSBTdHJpbmcoISFwYXJlbnRJbmZvKSArIFwifFwiICsgY2hpbGRUYWcgKyBcInxcIiArIGFuY2VzdG9yVGFnO1xuICAgICAgaWYgKGRpZFdhcm5bYW5jZXN0b3JJbmZvXSkgcmV0dXJuICExO1xuICAgICAgZGlkV2FyblthbmNlc3RvckluZm9dID0gITA7XG4gICAgICB2YXIgYW5jZXN0b3IgPSAoYW5jZXN0b3JJbmZvID0gY3VycmVudClcbiAgICAgICAgICA/IGZpbmRBbmNlc3RvcihhbmNlc3RvckluZm8ucmV0dXJuLCBhbmNlc3RvclRhZylcbiAgICAgICAgICA6IG51bGwsXG4gICAgICAgIGFuY2VzdG9yRGVzY3JpcHRpb24gPVxuICAgICAgICAgIG51bGwgIT09IGFuY2VzdG9ySW5mbyAmJiBudWxsICE9PSBhbmNlc3RvclxuICAgICAgICAgICAgPyBkZXNjcmliZUFuY2VzdG9ycyhhbmNlc3RvciwgYW5jZXN0b3JJbmZvLCBudWxsKVxuICAgICAgICAgICAgOiBcIlwiLFxuICAgICAgICB0YWdEaXNwbGF5TmFtZSA9IFwiPFwiICsgY2hpbGRUYWcgKyBcIj5cIjtcbiAgICAgIHBhcmVudEluZm9cbiAgICAgICAgPyAoKHBhcmVudEluZm8gPSBcIlwiKSxcbiAgICAgICAgICBcInRhYmxlXCIgPT09IGFuY2VzdG9yVGFnICYmXG4gICAgICAgICAgICBcInRyXCIgPT09IGNoaWxkVGFnICYmXG4gICAgICAgICAgICAocGFyZW50SW5mbyArPVxuICAgICAgICAgICAgICBcIiBBZGQgYSA8dGJvZHk+LCA8dGhlYWQ+IG9yIDx0Zm9vdD4gdG8geW91ciBjb2RlIHRvIG1hdGNoIHRoZSBET00gdHJlZSBnZW5lcmF0ZWQgYnkgdGhlIGJyb3dzZXIuXCIpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkluIEhUTUwsICVzIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwlcz4uJXNcXG5UaGlzIHdpbGwgY2F1c2UgYSBoeWRyYXRpb24gZXJyb3IuJXNcIixcbiAgICAgICAgICAgIHRhZ0Rpc3BsYXlOYW1lLFxuICAgICAgICAgICAgYW5jZXN0b3JUYWcsXG4gICAgICAgICAgICBwYXJlbnRJbmZvLFxuICAgICAgICAgICAgYW5jZXN0b3JEZXNjcmlwdGlvblxuICAgICAgICAgICkpXG4gICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiSW4gSFRNTCwgJXMgY2Fubm90IGJlIGEgZGVzY2VuZGFudCBvZiA8JXM+LlxcblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvci4lc1wiLFxuICAgICAgICAgICAgdGFnRGlzcGxheU5hbWUsXG4gICAgICAgICAgICBhbmNlc3RvclRhZyxcbiAgICAgICAgICAgIGFuY2VzdG9yRGVzY3JpcHRpb25cbiAgICAgICAgICApO1xuICAgICAgYW5jZXN0b3JJbmZvICYmXG4gICAgICAgICgoY2hpbGRUYWcgPSBhbmNlc3RvckluZm8ucmV0dXJuKSxcbiAgICAgICAgbnVsbCA9PT0gYW5jZXN0b3IgfHxcbiAgICAgICAgICBudWxsID09PSBjaGlsZFRhZyB8fFxuICAgICAgICAgIChhbmNlc3RvciA9PT0gY2hpbGRUYWcgJiZcbiAgICAgICAgICAgIGNoaWxkVGFnLl9kZWJ1Z093bmVyID09PSBhbmNlc3RvckluZm8uX2RlYnVnT3duZXIpIHx8XG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoYW5jZXN0b3IsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiPCVzPiBjYW5ub3QgY29udGFpbiBhIG5lc3RlZCAlcy5cXG5TZWUgdGhpcyBsb2cgZm9yIHRoZSBhbmNlc3RvciBzdGFjayB0cmFjZS5cIixcbiAgICAgICAgICAgICAgYW5jZXN0b3JUYWcsXG4gICAgICAgICAgICAgIHRhZ0Rpc3BsYXlOYW1lXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pKTtcbiAgICAgIHJldHVybiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVUZXh0TmVzdGluZyhjaGlsZFRleHQsIHBhcmVudFRhZywgaW1wbGljaXRSb290U2NvcGUpIHtcbiAgICAgIGlmIChpbXBsaWNpdFJvb3RTY29wZSB8fCBpc1RhZ1ZhbGlkV2l0aFBhcmVudChcIiN0ZXh0XCIsIHBhcmVudFRhZywgITEpKVxuICAgICAgICByZXR1cm4gITA7XG4gICAgICBpbXBsaWNpdFJvb3RTY29wZSA9IFwiI3RleHR8XCIgKyBwYXJlbnRUYWc7XG4gICAgICBpZiAoZGlkV2FybltpbXBsaWNpdFJvb3RTY29wZV0pIHJldHVybiAhMTtcbiAgICAgIGRpZFdhcm5baW1wbGljaXRSb290U2NvcGVdID0gITA7XG4gICAgICB2YXIgYW5jZXN0b3IgPSAoaW1wbGljaXRSb290U2NvcGUgPSBjdXJyZW50KVxuICAgICAgICA/IGZpbmRBbmNlc3RvcihpbXBsaWNpdFJvb3RTY29wZSwgcGFyZW50VGFnKVxuICAgICAgICA6IG51bGw7XG4gICAgICBpbXBsaWNpdFJvb3RTY29wZSA9XG4gICAgICAgIG51bGwgIT09IGltcGxpY2l0Um9vdFNjb3BlICYmIG51bGwgIT09IGFuY2VzdG9yXG4gICAgICAgICAgPyBkZXNjcmliZUFuY2VzdG9ycyhcbiAgICAgICAgICAgICAgYW5jZXN0b3IsXG4gICAgICAgICAgICAgIGltcGxpY2l0Um9vdFNjb3BlLFxuICAgICAgICAgICAgICA2ICE9PSBpbXBsaWNpdFJvb3RTY29wZS50YWcgPyB7IGNoaWxkcmVuOiBudWxsIH0gOiBudWxsXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBcIlwiO1xuICAgICAgL1xcUy8udGVzdChjaGlsZFRleHQpXG4gICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiSW4gSFRNTCwgdGV4dCBub2RlcyBjYW5ub3QgYmUgYSBjaGlsZCBvZiA8JXM+LlxcblRoaXMgd2lsbCBjYXVzZSBhIGh5ZHJhdGlvbiBlcnJvci4lc1wiLFxuICAgICAgICAgICAgcGFyZW50VGFnLFxuICAgICAgICAgICAgaW1wbGljaXRSb290U2NvcGVcbiAgICAgICAgICApXG4gICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiSW4gSFRNTCwgd2hpdGVzcGFjZSB0ZXh0IG5vZGVzIGNhbm5vdCBiZSBhIGNoaWxkIG9mIDwlcz4uIE1ha2Ugc3VyZSB5b3UgZG9uJ3QgaGF2ZSBhbnkgZXh0cmEgd2hpdGVzcGFjZSBiZXR3ZWVuIHRhZ3Mgb24gZWFjaCBsaW5lIG9mIHlvdXIgc291cmNlIGNvZGUuXFxuVGhpcyB3aWxsIGNhdXNlIGEgaHlkcmF0aW9uIGVycm9yLiVzXCIsXG4gICAgICAgICAgICBwYXJlbnRUYWcsXG4gICAgICAgICAgICBpbXBsaWNpdFJvb3RTY29wZVxuICAgICAgICAgICk7XG4gICAgICByZXR1cm4gITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldFRleHRDb250ZW50KG5vZGUsIHRleHQpIHtcbiAgICAgIGlmICh0ZXh0KSB7XG4gICAgICAgIHZhciBmaXJzdENoaWxkID0gbm9kZS5maXJzdENoaWxkO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZmlyc3RDaGlsZCAmJlxuICAgICAgICAgIGZpcnN0Q2hpbGQgPT09IG5vZGUubGFzdENoaWxkICYmXG4gICAgICAgICAgMyA9PT0gZmlyc3RDaGlsZC5ub2RlVHlwZVxuICAgICAgICApIHtcbiAgICAgICAgICBmaXJzdENoaWxkLm5vZGVWYWx1ZSA9IHRleHQ7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBub2RlLnRleHRDb250ZW50ID0gdGV4dDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FtZWxpemUoc3RyaW5nKSB7XG4gICAgICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoaHlwaGVuUGF0dGVybiwgZnVuY3Rpb24gKF8sIGNoYXJhY3Rlcikge1xuICAgICAgICByZXR1cm4gY2hhcmFjdGVyLnRvVXBwZXJDYXNlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2V0VmFsdWVGb3JTdHlsZShzdHlsZSwgc3R5bGVOYW1lLCB2YWx1ZSkge1xuICAgICAgdmFyIGlzQ3VzdG9tUHJvcGVydHkgPSAwID09PSBzdHlsZU5hbWUuaW5kZXhPZihcIi0tXCIpO1xuICAgICAgaXNDdXN0b21Qcm9wZXJ0eSB8fFxuICAgICAgICAoLTEgPCBzdHlsZU5hbWUuaW5kZXhPZihcIi1cIilcbiAgICAgICAgICA/ICh3YXJuZWRTdHlsZU5hbWVzLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkgJiZcbiAgICAgICAgICAgICAgd2FybmVkU3R5bGVOYW1lc1tzdHlsZU5hbWVdKSB8fFxuICAgICAgICAgICAgKCh3YXJuZWRTdHlsZU5hbWVzW3N0eWxlTmFtZV0gPSAhMCksXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlVuc3VwcG9ydGVkIHN0eWxlIHByb3BlcnR5ICVzLiBEaWQgeW91IG1lYW4gJXM/XCIsXG4gICAgICAgICAgICAgIHN0eWxlTmFtZSxcbiAgICAgICAgICAgICAgY2FtZWxpemUoc3R5bGVOYW1lLnJlcGxhY2UobXNQYXR0ZXJuLCBcIm1zLVwiKSlcbiAgICAgICAgICAgICkpXG4gICAgICAgICAgOiBiYWRWZW5kb3JlZFN0eWxlTmFtZVBhdHRlcm4udGVzdChzdHlsZU5hbWUpXG4gICAgICAgICAgICA/ICh3YXJuZWRTdHlsZU5hbWVzLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkgJiZcbiAgICAgICAgICAgICAgICB3YXJuZWRTdHlsZU5hbWVzW3N0eWxlTmFtZV0pIHx8XG4gICAgICAgICAgICAgICgod2FybmVkU3R5bGVOYW1lc1tzdHlsZU5hbWVdID0gITApLFxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiVW5zdXBwb3J0ZWQgdmVuZG9yLXByZWZpeGVkIHN0eWxlIHByb3BlcnR5ICVzLiBEaWQgeW91IG1lYW4gJXM/XCIsXG4gICAgICAgICAgICAgICAgc3R5bGVOYW1lLFxuICAgICAgICAgICAgICAgIHN0eWxlTmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0eWxlTmFtZS5zbGljZSgxKVxuICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgOiAhYmFkU3R5bGVWYWx1ZVdpdGhTZW1pY29sb25QYXR0ZXJuLnRlc3QodmFsdWUpIHx8XG4gICAgICAgICAgICAgICh3YXJuZWRTdHlsZVZhbHVlcy5oYXNPd25Qcm9wZXJ0eSh2YWx1ZSkgJiZcbiAgICAgICAgICAgICAgICB3YXJuZWRTdHlsZVZhbHVlc1t2YWx1ZV0pIHx8XG4gICAgICAgICAgICAgICgod2FybmVkU3R5bGVWYWx1ZXNbdmFsdWVdID0gITApLFxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdTdHlsZSBwcm9wZXJ0eSB2YWx1ZXMgc2hvdWxkblxcJ3QgY29udGFpbiBhIHNlbWljb2xvbi4gVHJ5IFwiJXM6ICVzXCIgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgIHN0eWxlTmFtZSxcbiAgICAgICAgICAgICAgICB2YWx1ZS5yZXBsYWNlKGJhZFN0eWxlVmFsdWVXaXRoU2VtaWNvbG9uUGF0dGVybiwgXCJcIilcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgIFwibnVtYmVyXCIgPT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgIChpc05hTih2YWx1ZSlcbiAgICAgICAgICAgID8gd2FybmVkRm9yTmFOVmFsdWUgfHxcbiAgICAgICAgICAgICAgKCh3YXJuZWRGb3JOYU5WYWx1ZSA9ICEwKSxcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcImBOYU5gIGlzIGFuIGludmFsaWQgdmFsdWUgZm9yIHRoZSBgJXNgIGNzcyBzdHlsZSBwcm9wZXJ0eS5cIixcbiAgICAgICAgICAgICAgICBzdHlsZU5hbWVcbiAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgIDogaXNGaW5pdGUodmFsdWUpIHx8XG4gICAgICAgICAgICAgIHdhcm5lZEZvckluZmluaXR5VmFsdWUgfHxcbiAgICAgICAgICAgICAgKCh3YXJuZWRGb3JJbmZpbml0eVZhbHVlID0gITApLFxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiYEluZmluaXR5YCBpcyBhbiBpbnZhbGlkIHZhbHVlIGZvciB0aGUgYCVzYCBjc3Mgc3R5bGUgcHJvcGVydHkuXCIsXG4gICAgICAgICAgICAgICAgc3R5bGVOYW1lXG4gICAgICAgICAgICAgICkpKSk7XG4gICAgICBudWxsID09IHZhbHVlIHx8IFwiYm9vbGVhblwiID09PSB0eXBlb2YgdmFsdWUgfHwgXCJcIiA9PT0gdmFsdWVcbiAgICAgICAgPyBpc0N1c3RvbVByb3BlcnR5XG4gICAgICAgICAgPyBzdHlsZS5zZXRQcm9wZXJ0eShzdHlsZU5hbWUsIFwiXCIpXG4gICAgICAgICAgOiBcImZsb2F0XCIgPT09IHN0eWxlTmFtZVxuICAgICAgICAgICAgPyAoc3R5bGUuY3NzRmxvYXQgPSBcIlwiKVxuICAgICAgICAgICAgOiAoc3R5bGVbc3R5bGVOYW1lXSA9IFwiXCIpXG4gICAgICAgIDogaXNDdXN0b21Qcm9wZXJ0eVxuICAgICAgICAgID8gc3R5bGUuc2V0UHJvcGVydHkoc3R5bGVOYW1lLCB2YWx1ZSlcbiAgICAgICAgICA6IFwibnVtYmVyXCIgIT09IHR5cGVvZiB2YWx1ZSB8fFxuICAgICAgICAgICAgICAwID09PSB2YWx1ZSB8fFxuICAgICAgICAgICAgICB1bml0bGVzc051bWJlcnMuaGFzKHN0eWxlTmFtZSlcbiAgICAgICAgICAgID8gXCJmbG9hdFwiID09PSBzdHlsZU5hbWVcbiAgICAgICAgICAgICAgPyAoc3R5bGUuY3NzRmxvYXQgPSB2YWx1ZSlcbiAgICAgICAgICAgICAgOiAoY2hlY2tDU1NQcm9wZXJ0eVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBzdHlsZU5hbWUpLFxuICAgICAgICAgICAgICAgIChzdHlsZVtzdHlsZU5hbWVdID0gKFwiXCIgKyB2YWx1ZSkudHJpbSgpKSlcbiAgICAgICAgICAgIDogKHN0eWxlW3N0eWxlTmFtZV0gPSB2YWx1ZSArIFwicHhcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldFZhbHVlRm9yU3R5bGVzKG5vZGUsIHN0eWxlcywgcHJldlN0eWxlcykge1xuICAgICAgaWYgKG51bGwgIT0gc3R5bGVzICYmIFwib2JqZWN0XCIgIT09IHR5cGVvZiBzdHlsZXMpXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwiVGhlIGBzdHlsZWAgcHJvcCBleHBlY3RzIGEgbWFwcGluZyBmcm9tIHN0eWxlIHByb3BlcnRpZXMgdG8gdmFsdWVzLCBub3QgYSBzdHJpbmcuIEZvciBleGFtcGxlLCBzdHlsZT17e21hcmdpblJpZ2h0OiBzcGFjaW5nICsgJ2VtJ319IHdoZW4gdXNpbmcgSlNYLlwiXG4gICAgICAgICk7XG4gICAgICBzdHlsZXMgJiYgT2JqZWN0LmZyZWV6ZShzdHlsZXMpO1xuICAgICAgbm9kZSA9IG5vZGUuc3R5bGU7XG4gICAgICBpZiAobnVsbCAhPSBwcmV2U3R5bGVzKSB7XG4gICAgICAgIGlmIChzdHlsZXMpIHtcbiAgICAgICAgICB2YXIgZXhwYW5kZWRVcGRhdGVzID0ge307XG4gICAgICAgICAgaWYgKHByZXZTdHlsZXMpXG4gICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gcHJldlN0eWxlcylcbiAgICAgICAgICAgICAgaWYgKHByZXZTdHlsZXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiAhc3R5bGVzLmhhc093blByb3BlcnR5KGtleSkpXG4gICAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICAgIHZhciBsb25naGFuZHMgPSBzaG9ydGhhbmRUb0xvbmdoYW5kW2tleV0gfHwgW2tleV0sIGkgPSAwO1xuICAgICAgICAgICAgICAgICAgaSA8IGxvbmdoYW5kcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICBpKytcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBleHBhbmRlZFVwZGF0ZXNbbG9uZ2hhbmRzW2ldXSA9IGtleTtcbiAgICAgICAgICBmb3IgKHZhciBfa2V5IGluIHN0eWxlcylcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgc3R5bGVzLmhhc093blByb3BlcnR5KF9rZXkpICYmXG4gICAgICAgICAgICAgICghcHJldlN0eWxlcyB8fCBwcmV2U3R5bGVzW19rZXldICE9PSBzdHlsZXNbX2tleV0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAga2V5ID0gc2hvcnRoYW5kVG9Mb25naGFuZFtfa2V5XSB8fCBbX2tleV0sIGxvbmdoYW5kcyA9IDA7XG4gICAgICAgICAgICAgICAgbG9uZ2hhbmRzIDwga2V5Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICBsb25naGFuZHMrK1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgZXhwYW5kZWRVcGRhdGVzW2tleVtsb25naGFuZHNdXSA9IF9rZXk7XG4gICAgICAgICAgX2tleSA9IHt9O1xuICAgICAgICAgIGZvciAodmFyIGtleSRqc2NvbXAkMCBpbiBzdHlsZXMpXG4gICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICBrZXkgPSBzaG9ydGhhbmRUb0xvbmdoYW5kW2tleSRqc2NvbXAkMF0gfHwgW2tleSRqc2NvbXAkMF0sXG4gICAgICAgICAgICAgICAgbG9uZ2hhbmRzID0gMDtcbiAgICAgICAgICAgICAgbG9uZ2hhbmRzIDwga2V5Lmxlbmd0aDtcbiAgICAgICAgICAgICAgbG9uZ2hhbmRzKytcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgX2tleVtrZXlbbG9uZ2hhbmRzXV0gPSBrZXkkanNjb21wJDA7XG4gICAgICAgICAga2V5JGpzY29tcCQwID0ge307XG4gICAgICAgICAgZm9yICh2YXIgX2tleTIgaW4gZXhwYW5kZWRVcGRhdGVzKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoKGtleSA9IGV4cGFuZGVkVXBkYXRlc1tfa2V5Ml0pLFxuICAgICAgICAgICAgICAobG9uZ2hhbmRzID0gX2tleVtfa2V5Ml0pICYmXG4gICAgICAgICAgICAgICAga2V5ICE9PSBsb25naGFuZHMgJiZcbiAgICAgICAgICAgICAgICAoKGkgPSBrZXkgKyBcIixcIiArIGxvbmdoYW5kcyksICFrZXkkanNjb21wJDBbaV0pKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGtleSRqc2NvbXAkMFtpXSA9ICEwO1xuICAgICAgICAgICAgICBpID0gY29uc29sZTtcbiAgICAgICAgICAgICAgdmFyIHZhbHVlID0gc3R5bGVzW2tleV07XG4gICAgICAgICAgICAgIGkuZXJyb3IuY2FsbChcbiAgICAgICAgICAgICAgICBpLFxuICAgICAgICAgICAgICAgIFwiJXMgYSBzdHlsZSBwcm9wZXJ0eSBkdXJpbmcgcmVyZW5kZXIgKCVzKSB3aGVuIGEgY29uZmxpY3RpbmcgcHJvcGVydHkgaXMgc2V0ICglcykgY2FuIGxlYWQgdG8gc3R5bGluZyBidWdzLiBUbyBhdm9pZCB0aGlzLCBkb24ndCBtaXggc2hvcnRoYW5kIGFuZCBub24tc2hvcnRoYW5kIHByb3BlcnRpZXMgZm9yIHRoZSBzYW1lIHZhbHVlOyBpbnN0ZWFkLCByZXBsYWNlIHRoZSBzaG9ydGhhbmQgd2l0aCBzZXBhcmF0ZSB2YWx1ZXMuXCIsXG4gICAgICAgICAgICAgICAgbnVsbCA9PSB2YWx1ZSB8fCBcImJvb2xlYW5cIiA9PT0gdHlwZW9mIHZhbHVlIHx8IFwiXCIgPT09IHZhbHVlXG4gICAgICAgICAgICAgICAgICA/IFwiUmVtb3ZpbmdcIlxuICAgICAgICAgICAgICAgICAgOiBcIlVwZGF0aW5nXCIsXG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIGxvbmdoYW5kc1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAodmFyIHN0eWxlTmFtZSBpbiBwcmV2U3R5bGVzKVxuICAgICAgICAgICFwcmV2U3R5bGVzLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkgfHxcbiAgICAgICAgICAgIChudWxsICE9IHN0eWxlcyAmJiBzdHlsZXMuaGFzT3duUHJvcGVydHkoc3R5bGVOYW1lKSkgfHxcbiAgICAgICAgICAgICgwID09PSBzdHlsZU5hbWUuaW5kZXhPZihcIi0tXCIpXG4gICAgICAgICAgICAgID8gbm9kZS5zZXRQcm9wZXJ0eShzdHlsZU5hbWUsIFwiXCIpXG4gICAgICAgICAgICAgIDogXCJmbG9hdFwiID09PSBzdHlsZU5hbWVcbiAgICAgICAgICAgICAgICA/IChub2RlLmNzc0Zsb2F0ID0gXCJcIilcbiAgICAgICAgICAgICAgICA6IChub2RlW3N0eWxlTmFtZV0gPSBcIlwiKSk7XG4gICAgICAgIGZvciAodmFyIF9zdHlsZU5hbWUgaW4gc3R5bGVzKVxuICAgICAgICAgIChfa2V5MiA9IHN0eWxlc1tfc3R5bGVOYW1lXSksXG4gICAgICAgICAgICBzdHlsZXMuaGFzT3duUHJvcGVydHkoX3N0eWxlTmFtZSkgJiZcbiAgICAgICAgICAgICAgcHJldlN0eWxlc1tfc3R5bGVOYW1lXSAhPT0gX2tleTIgJiZcbiAgICAgICAgICAgICAgc2V0VmFsdWVGb3JTdHlsZShub2RlLCBfc3R5bGVOYW1lLCBfa2V5Mik7XG4gICAgICB9IGVsc2VcbiAgICAgICAgZm9yIChleHBhbmRlZFVwZGF0ZXMgaW4gc3R5bGVzKVxuICAgICAgICAgIHN0eWxlcy5oYXNPd25Qcm9wZXJ0eShleHBhbmRlZFVwZGF0ZXMpICYmXG4gICAgICAgICAgICBzZXRWYWx1ZUZvclN0eWxlKG5vZGUsIGV4cGFuZGVkVXBkYXRlcywgc3R5bGVzW2V4cGFuZGVkVXBkYXRlc10pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0N1c3RvbUVsZW1lbnQodGFnTmFtZSkge1xuICAgICAgaWYgKC0xID09PSB0YWdOYW1lLmluZGV4T2YoXCItXCIpKSByZXR1cm4gITE7XG4gICAgICBzd2l0Y2ggKHRhZ05hbWUpIHtcbiAgICAgICAgY2FzZSBcImFubm90YXRpb24teG1sXCI6XG4gICAgICAgIGNhc2UgXCJjb2xvci1wcm9maWxlXCI6XG4gICAgICAgIGNhc2UgXCJmb250LWZhY2VcIjpcbiAgICAgICAgY2FzZSBcImZvbnQtZmFjZS1zcmNcIjpcbiAgICAgICAgY2FzZSBcImZvbnQtZmFjZS11cmlcIjpcbiAgICAgICAgY2FzZSBcImZvbnQtZmFjZS1mb3JtYXRcIjpcbiAgICAgICAgY2FzZSBcImZvbnQtZmFjZS1uYW1lXCI6XG4gICAgICAgIGNhc2UgXCJtaXNzaW5nLWdseXBoXCI6XG4gICAgICAgICAgcmV0dXJuICExO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0QXR0cmlidXRlQWxpYXMobmFtZSkge1xuICAgICAgcmV0dXJuIGFsaWFzZXMuZ2V0KG5hbWUpIHx8IG5hbWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlUHJvcGVydHkkMSh0YWdOYW1lLCBuYW1lKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGhhc093blByb3BlcnR5LmNhbGwod2FybmVkUHJvcGVydGllcyQxLCBuYW1lKSAmJlxuICAgICAgICB3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV1cbiAgICAgIClcbiAgICAgICAgcmV0dXJuICEwO1xuICAgICAgaWYgKHJBUklBQ2FtZWwkMS50ZXN0KG5hbWUpKSB7XG4gICAgICAgIHRhZ05hbWUgPSBcImFyaWEtXCIgKyBuYW1lLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHRhZ05hbWUgPSBhcmlhUHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSh0YWdOYW1lKSA/IHRhZ05hbWUgOiBudWxsO1xuICAgICAgICBpZiAobnVsbCA9PSB0YWdOYW1lKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkludmFsaWQgQVJJQSBhdHRyaWJ1dGUgYCVzYC4gQVJJQSBhdHRyaWJ1dGVzIGZvbGxvdyB0aGUgcGF0dGVybiBhcmlhLSogYW5kIG11c3QgYmUgbG93ZXJjYXNlLlwiLFxuICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKHdhcm5lZFByb3BlcnRpZXMkMVtuYW1lXSA9ICEwKVxuICAgICAgICAgICk7XG4gICAgICAgIGlmIChuYW1lICE9PSB0YWdOYW1lKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkludmFsaWQgQVJJQSBhdHRyaWJ1dGUgYCVzYC4gRGlkIHlvdSBtZWFuIGAlc2A/XCIsXG4gICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgIHRhZ05hbWVcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAod2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gITApXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmIChyQVJJQSQxLnRlc3QobmFtZSkpIHtcbiAgICAgICAgdGFnTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgdGFnTmFtZSA9IGFyaWFQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KHRhZ05hbWUpID8gdGFnTmFtZSA6IG51bGw7XG4gICAgICAgIGlmIChudWxsID09IHRhZ05hbWUpIHJldHVybiAod2FybmVkUHJvcGVydGllcyQxW25hbWVdID0gITApLCAhMTtcbiAgICAgICAgbmFtZSAhPT0gdGFnTmFtZSAmJlxuICAgICAgICAgIChjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJVbmtub3duIEFSSUEgYXR0cmlidXRlIGAlc2AuIERpZCB5b3UgbWVhbiBgJXNgP1wiLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHRhZ05hbWVcbiAgICAgICAgICApLFxuICAgICAgICAgICh3YXJuZWRQcm9wZXJ0aWVzJDFbbmFtZV0gPSAhMCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuICEwO1xuICAgIH1cbiAgICBmdW5jdGlvbiB2YWxpZGF0ZVByb3BlcnRpZXMkMih0eXBlLCBwcm9wcykge1xuICAgICAgdmFyIGludmFsaWRQcm9wcyA9IFtdLFxuICAgICAgICBrZXk7XG4gICAgICBmb3IgKGtleSBpbiBwcm9wcylcbiAgICAgICAgdmFsaWRhdGVQcm9wZXJ0eSQxKHR5cGUsIGtleSkgfHwgaW52YWxpZFByb3BzLnB1c2goa2V5KTtcbiAgICAgIHByb3BzID0gaW52YWxpZFByb3BzXG4gICAgICAgIC5tYXAoZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgICAgICByZXR1cm4gXCJgXCIgKyBwcm9wICsgXCJgXCI7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKFwiLCBcIik7XG4gICAgICAxID09PSBpbnZhbGlkUHJvcHMubGVuZ3RoXG4gICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiSW52YWxpZCBhcmlhIHByb3AgJXMgb24gPCVzPiB0YWcuIEZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9pbnZhbGlkLWFyaWEtcHJvcHNcIixcbiAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgIClcbiAgICAgICAgOiAxIDwgaW52YWxpZFByb3BzLmxlbmd0aCAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkludmFsaWQgYXJpYSBwcm9wcyAlcyBvbiA8JXM+IHRhZy4gRm9yIGRldGFpbHMsIHNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL2ludmFsaWQtYXJpYS1wcm9wc1wiLFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICB0eXBlXG4gICAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0eSh0YWdOYW1lLCBuYW1lLCB2YWx1ZSwgZXZlbnRSZWdpc3RyeSkge1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwod2FybmVkUHJvcGVydGllcywgbmFtZSkgJiYgd2FybmVkUHJvcGVydGllc1tuYW1lXSlcbiAgICAgICAgcmV0dXJuICEwO1xuICAgICAgdmFyIGxvd2VyQ2FzZWROYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKFwib25mb2N1c2luXCIgPT09IGxvd2VyQ2FzZWROYW1lIHx8IFwib25mb2N1c291dFwiID09PSBsb3dlckNhc2VkTmFtZSlcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJSZWFjdCB1c2VzIG9uRm9jdXMgYW5kIG9uQmx1ciBpbnN0ZWFkIG9mIG9uRm9jdXNJbiBhbmQgb25Gb2N1c091dC4gQWxsIFJlYWN0IGV2ZW50cyBhcmUgbm9ybWFsaXplZCB0byBidWJibGUsIHNvIG9uRm9jdXNJbiBhbmQgb25Gb2N1c091dCBhcmUgbm90IG5lZWRlZC9zdXBwb3J0ZWQgYnkgUmVhY3QuXCJcbiAgICAgICAgICApLFxuICAgICAgICAgICh3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gITApXG4gICAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHZhbHVlICYmXG4gICAgICAgICgoXCJmb3JtXCIgPT09IHRhZ05hbWUgJiYgXCJhY3Rpb25cIiA9PT0gbmFtZSkgfHxcbiAgICAgICAgICAoXCJpbnB1dFwiID09PSB0YWdOYW1lICYmIFwiZm9ybUFjdGlvblwiID09PSBuYW1lKSB8fFxuICAgICAgICAgIChcImJ1dHRvblwiID09PSB0YWdOYW1lICYmIFwiZm9ybUFjdGlvblwiID09PSBuYW1lKSlcbiAgICAgIClcbiAgICAgICAgcmV0dXJuICEwO1xuICAgICAgaWYgKG51bGwgIT0gZXZlbnRSZWdpc3RyeSkge1xuICAgICAgICB0YWdOYW1lID0gZXZlbnRSZWdpc3RyeS5wb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzO1xuICAgICAgICBpZiAoZXZlbnRSZWdpc3RyeS5yZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KG5hbWUpKVxuICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgZXZlbnRSZWdpc3RyeSA9IHRhZ05hbWUuaGFzT3duUHJvcGVydHkobG93ZXJDYXNlZE5hbWUpXG4gICAgICAgICAgPyB0YWdOYW1lW2xvd2VyQ2FzZWROYW1lXVxuICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgaWYgKG51bGwgIT0gZXZlbnRSZWdpc3RyeSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJJbnZhbGlkIGV2ZW50IGhhbmRsZXIgcHJvcGVydHkgYCVzYC4gRGlkIHlvdSBtZWFuIGAlc2A/XCIsXG4gICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgIGV2ZW50UmVnaXN0cnlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAod2FybmVkUHJvcGVydGllc1tuYW1lXSA9ICEwKVxuICAgICAgICAgICk7XG4gICAgICAgIGlmIChFVkVOVF9OQU1FX1JFR0VYLnRlc3QobmFtZSkpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiVW5rbm93biBldmVudCBoYW5kbGVyIHByb3BlcnR5IGAlc2AuIEl0IHdpbGwgYmUgaWdub3JlZC5cIixcbiAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICh3YXJuZWRQcm9wZXJ0aWVzW25hbWVdID0gITApXG4gICAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAoRVZFTlRfTkFNRV9SRUdFWC50ZXN0KG5hbWUpKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIElOVkFMSURfRVZFTlRfTkFNRV9SRUdFWC50ZXN0KG5hbWUpICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkludmFsaWQgZXZlbnQgaGFuZGxlciBwcm9wZXJ0eSBgJXNgLiBSZWFjdCBldmVudHMgdXNlIHRoZSBjYW1lbENhc2UgbmFtaW5nIGNvbnZlbnRpb24sIGZvciBleGFtcGxlIGBvbkNsaWNrYC5cIixcbiAgICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAod2FybmVkUHJvcGVydGllc1tuYW1lXSA9ICEwKVxuICAgICAgICApO1xuICAgICAgaWYgKHJBUklBLnRlc3QobmFtZSkgfHwgckFSSUFDYW1lbC50ZXN0KG5hbWUpKSByZXR1cm4gITA7XG4gICAgICBpZiAoXCJpbm5lcmh0bWxcIiA9PT0gbG93ZXJDYXNlZE5hbWUpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiRGlyZWN0bHkgc2V0dGluZyBwcm9wZXJ0eSBgaW5uZXJIVE1MYCBpcyBub3QgcGVybWl0dGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgbG9va3VwIGRvY3VtZW50YXRpb24gb24gYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC5cIlxuICAgICAgICAgICksXG4gICAgICAgICAgKHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSAhMClcbiAgICAgICAgKTtcbiAgICAgIGlmIChcImFyaWFcIiA9PT0gbG93ZXJDYXNlZE5hbWUpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiVGhlIGBhcmlhYCBhdHRyaWJ1dGUgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgaW4gUmVhY3QuIFBhc3MgaW5kaXZpZHVhbCBgYXJpYS1gIGF0dHJpYnV0ZXMgaW5zdGVhZC5cIlxuICAgICAgICAgICksXG4gICAgICAgICAgKHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSAhMClcbiAgICAgICAgKTtcbiAgICAgIGlmIChcbiAgICAgICAgXCJpc1wiID09PSBsb3dlckNhc2VkTmFtZSAmJlxuICAgICAgICBudWxsICE9PSB2YWx1ZSAmJlxuICAgICAgICB2b2lkIDAgIT09IHZhbHVlICYmXG4gICAgICAgIFwic3RyaW5nXCIgIT09IHR5cGVvZiB2YWx1ZVxuICAgICAgKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlJlY2VpdmVkIGEgYCVzYCBmb3IgYSBzdHJpbmcgYXR0cmlidXRlIGBpc2AuIElmIHRoaXMgaXMgZXhwZWN0ZWQsIGNhc3QgdGhlIHZhbHVlIHRvIGEgc3RyaW5nLlwiLFxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlXG4gICAgICAgICAgKSxcbiAgICAgICAgICAod2FybmVkUHJvcGVydGllc1tuYW1lXSA9ICEwKVxuICAgICAgICApO1xuICAgICAgaWYgKFwibnVtYmVyXCIgPT09IHR5cGVvZiB2YWx1ZSAmJiBpc05hTih2YWx1ZSkpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiUmVjZWl2ZWQgTmFOIGZvciB0aGUgYCVzYCBhdHRyaWJ1dGUuIElmIHRoaXMgaXMgZXhwZWN0ZWQsIGNhc3QgdGhlIHZhbHVlIHRvIGEgc3RyaW5nLlwiLFxuICAgICAgICAgICAgbmFtZVxuICAgICAgICAgICksXG4gICAgICAgICAgKHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSAhMClcbiAgICAgICAgKTtcbiAgICAgIGlmIChwb3NzaWJsZVN0YW5kYXJkTmFtZXMuaGFzT3duUHJvcGVydHkobG93ZXJDYXNlZE5hbWUpKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAoKGxvd2VyQ2FzZWROYW1lID0gcG9zc2libGVTdGFuZGFyZE5hbWVzW2xvd2VyQ2FzZWROYW1lXSksXG4gICAgICAgICAgbG93ZXJDYXNlZE5hbWUgIT09IG5hbWUpXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJJbnZhbGlkIERPTSBwcm9wZXJ0eSBgJXNgLiBEaWQgeW91IG1lYW4gYCVzYD9cIixcbiAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgbG93ZXJDYXNlZE5hbWVcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAod2FybmVkUHJvcGVydGllc1tuYW1lXSA9ICEwKVxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2UgaWYgKG5hbWUgIT09IGxvd2VyQ2FzZWROYW1lKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlJlYWN0IGRvZXMgbm90IHJlY29nbml6ZSB0aGUgYCVzYCBwcm9wIG9uIGEgRE9NIGVsZW1lbnQuIElmIHlvdSBpbnRlbnRpb25hbGx5IHdhbnQgaXQgdG8gYXBwZWFyIGluIHRoZSBET00gYXMgYSBjdXN0b20gYXR0cmlidXRlLCBzcGVsbCBpdCBhcyBsb3dlcmNhc2UgYCVzYCBpbnN0ZWFkLiBJZiB5b3UgYWNjaWRlbnRhbGx5IHBhc3NlZCBpdCBmcm9tIGEgcGFyZW50IGNvbXBvbmVudCwgcmVtb3ZlIGl0IGZyb20gdGhlIERPTSBlbGVtZW50LlwiLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIGxvd2VyQ2FzZWROYW1lXG4gICAgICAgICAgKSxcbiAgICAgICAgICAod2FybmVkUHJvcGVydGllc1tuYW1lXSA9ICEwKVxuICAgICAgICApO1xuICAgICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICAgIGNhc2UgXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOlxuICAgICAgICBjYXNlIFwiY2hpbGRyZW5cIjpcbiAgICAgICAgY2FzZSBcInN0eWxlXCI6XG4gICAgICAgIGNhc2UgXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIjpcbiAgICAgICAgY2FzZSBcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiOlxuICAgICAgICBjYXNlIFwiZGVmYXVsdFZhbHVlXCI6XG4gICAgICAgIGNhc2UgXCJkZWZhdWx0Q2hlY2tlZFwiOlxuICAgICAgICBjYXNlIFwiaW5uZXJIVE1MXCI6XG4gICAgICAgIGNhc2UgXCJyZWZcIjpcbiAgICAgICAgICByZXR1cm4gITA7XG4gICAgICAgIGNhc2UgXCJpbm5lclRleHRcIjpcbiAgICAgICAgY2FzZSBcInRleHRDb250ZW50XCI6XG4gICAgICAgICAgcmV0dXJuICEwO1xuICAgICAgfVxuICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJhdXRvRm9jdXNcIjpcbiAgICAgICAgICAgIGNhc2UgXCJjaGVja2VkXCI6XG4gICAgICAgICAgICBjYXNlIFwibXVsdGlwbGVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJtdXRlZFwiOlxuICAgICAgICAgICAgY2FzZSBcInNlbGVjdGVkXCI6XG4gICAgICAgICAgICBjYXNlIFwiY29udGVudEVkaXRhYmxlXCI6XG4gICAgICAgICAgICBjYXNlIFwic3BlbGxDaGVja1wiOlxuICAgICAgICAgICAgY2FzZSBcImRyYWdnYWJsZVwiOlxuICAgICAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgICAgICBjYXNlIFwiYXV0b1JldmVyc2VcIjpcbiAgICAgICAgICAgIGNhc2UgXCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXCI6XG4gICAgICAgICAgICBjYXNlIFwiZm9jdXNhYmxlXCI6XG4gICAgICAgICAgICBjYXNlIFwicHJlc2VydmVBbHBoYVwiOlxuICAgICAgICAgICAgY2FzZSBcImFsbG93RnVsbFNjcmVlblwiOlxuICAgICAgICAgICAgY2FzZSBcImFzeW5jXCI6XG4gICAgICAgICAgICBjYXNlIFwiYXV0b1BsYXlcIjpcbiAgICAgICAgICAgIGNhc2UgXCJjb250cm9sc1wiOlxuICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRcIjpcbiAgICAgICAgICAgIGNhc2UgXCJkZWZlclwiOlxuICAgICAgICAgICAgY2FzZSBcImRpc2FibGVkXCI6XG4gICAgICAgICAgICBjYXNlIFwiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJkaXNhYmxlUmVtb3RlUGxheWJhY2tcIjpcbiAgICAgICAgICAgIGNhc2UgXCJmb3JtTm9WYWxpZGF0ZVwiOlxuICAgICAgICAgICAgY2FzZSBcImhpZGRlblwiOlxuICAgICAgICAgICAgY2FzZSBcImxvb3BcIjpcbiAgICAgICAgICAgIGNhc2UgXCJub01vZHVsZVwiOlxuICAgICAgICAgICAgY2FzZSBcIm5vVmFsaWRhdGVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJvcGVuXCI6XG4gICAgICAgICAgICBjYXNlIFwicGxheXNJbmxpbmVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJyZWFkT25seVwiOlxuICAgICAgICAgICAgY2FzZSBcInJlcXVpcmVkXCI6XG4gICAgICAgICAgICBjYXNlIFwicmV2ZXJzZWRcIjpcbiAgICAgICAgICAgIGNhc2UgXCJzY29wZWRcIjpcbiAgICAgICAgICAgIGNhc2UgXCJzZWFtbGVzc1wiOlxuICAgICAgICAgICAgY2FzZSBcIml0ZW1TY29wZVwiOlxuICAgICAgICAgICAgY2FzZSBcImNhcHR1cmVcIjpcbiAgICAgICAgICAgIGNhc2UgXCJkb3dubG9hZFwiOlxuICAgICAgICAgICAgY2FzZSBcImluZXJ0XCI6XG4gICAgICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIGxvd2VyQ2FzZWROYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpLnNsaWNlKDAsIDUpO1xuICAgICAgICAgICAgICBpZiAoXCJkYXRhLVwiID09PSBsb3dlckNhc2VkTmFtZSB8fCBcImFyaWEtXCIgPT09IGxvd2VyQ2FzZWROYW1lKVxuICAgICAgICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBgJXNgIGZvciBhIG5vbi1ib29sZWFuIGF0dHJpYnV0ZSBgJXNgLlxcblxcbklmIHlvdSB3YW50IHRvIHdyaXRlIGl0IHRvIHRoZSBET00sIHBhc3MgYSBzdHJpbmcgaW5zdGVhZDogJXM9XCIlc1wiIG9yICVzPXt2YWx1ZS50b1N0cmluZygpfS4nLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBgJXNgIGZvciBhIG5vbi1ib29sZWFuIGF0dHJpYnV0ZSBgJXNgLlxcblxcbklmIHlvdSB3YW50IHRvIHdyaXRlIGl0IHRvIHRoZSBET00sIHBhc3MgYSBzdHJpbmcgaW5zdGVhZDogJXM9XCIlc1wiIG9yICVzPXt2YWx1ZS50b1N0cmluZygpfS5cXG5cXG5JZiB5b3UgdXNlZCB0byBjb25kaXRpb25hbGx5IG9taXQgaXQgd2l0aCAlcz17Y29uZGl0aW9uICYmIHZhbHVlfSwgcGFzcyAlcz17Y29uZGl0aW9uID8gdmFsdWUgOiB1bmRlZmluZWR9IGluc3RlYWQuJyxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICBuYW1lXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm4gKHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSAhMCk7XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgIHJldHVybiAod2FybmVkUHJvcGVydGllc1tuYW1lXSA9ICEwKSwgITE7XG4gICAgICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgICAgICBpZiAoXCJmYWxzZVwiID09PSB2YWx1ZSB8fCBcInRydWVcIiA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgICAgICAgICBjYXNlIFwiY2hlY2tlZFwiOlxuICAgICAgICAgICAgICBjYXNlIFwic2VsZWN0ZWRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcIm11bHRpcGxlXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJtdXRlZFwiOlxuICAgICAgICAgICAgICBjYXNlIFwiYWxsb3dGdWxsU2NyZWVuXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJhc3luY1wiOlxuICAgICAgICAgICAgICBjYXNlIFwiYXV0b1BsYXlcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImNvbnRyb2xzXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkZWZhdWx0XCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkZWZlclwiOlxuICAgICAgICAgICAgICBjYXNlIFwiZGlzYWJsZWRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImRpc2FibGVQaWN0dXJlSW5QaWN0dXJlXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkaXNhYmxlUmVtb3RlUGxheWJhY2tcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImZvcm1Ob1ZhbGlkYXRlXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJoaWRkZW5cIjpcbiAgICAgICAgICAgICAgY2FzZSBcImxvb3BcIjpcbiAgICAgICAgICAgICAgY2FzZSBcIm5vTW9kdWxlXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJub1ZhbGlkYXRlXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJvcGVuXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJwbGF5c0lubGluZVwiOlxuICAgICAgICAgICAgICBjYXNlIFwicmVhZE9ubHlcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInJlcXVpcmVkXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJyZXZlcnNlZFwiOlxuICAgICAgICAgICAgICBjYXNlIFwic2NvcGVkXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJzZWFtbGVzc1wiOlxuICAgICAgICAgICAgICBjYXNlIFwiaXRlbVNjb3BlXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJpbmVydFwiOlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVjZWl2ZWQgdGhlIHN0cmluZyBgJXNgIGZvciB0aGUgYm9vbGVhbiBhdHRyaWJ1dGUgYCVzYC4gJXMgRGlkIHlvdSBtZWFuICVzPXslc30/XCIsXG4gICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICBcImZhbHNlXCIgPT09IHZhbHVlXG4gICAgICAgICAgICAgICAgPyBcIlRoZSBicm93c2VyIHdpbGwgaW50ZXJwcmV0IGl0IGFzIGEgdHJ1dGh5IHZhbHVlLlwiXG4gICAgICAgICAgICAgICAgOiAnQWx0aG91Z2ggdGhpcyB3b3JrcywgaXQgd2lsbCBub3Qgd29yayBhcyBleHBlY3RlZCBpZiB5b3UgcGFzcyB0aGUgc3RyaW5nIFwiZmFsc2VcIi4nLFxuICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHdhcm5lZFByb3BlcnRpZXNbbmFtZV0gPSAhMDtcbiAgICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5Vbmtub3duUHJvcGVydGllcyh0eXBlLCBwcm9wcywgZXZlbnRSZWdpc3RyeSkge1xuICAgICAgdmFyIHVua25vd25Qcm9wcyA9IFtdLFxuICAgICAgICBrZXk7XG4gICAgICBmb3IgKGtleSBpbiBwcm9wcylcbiAgICAgICAgdmFsaWRhdGVQcm9wZXJ0eSh0eXBlLCBrZXksIHByb3BzW2tleV0sIGV2ZW50UmVnaXN0cnkpIHx8XG4gICAgICAgICAgdW5rbm93blByb3BzLnB1c2goa2V5KTtcbiAgICAgIHByb3BzID0gdW5rbm93blByb3BzXG4gICAgICAgIC5tYXAoZnVuY3Rpb24gKHByb3ApIHtcbiAgICAgICAgICByZXR1cm4gXCJgXCIgKyBwcm9wICsgXCJgXCI7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKFwiLCBcIik7XG4gICAgICAxID09PSB1bmtub3duUHJvcHMubGVuZ3RoXG4gICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiSW52YWxpZCB2YWx1ZSBmb3IgcHJvcCAlcyBvbiA8JXM+IHRhZy4gRWl0aGVyIHJlbW92ZSBpdCBmcm9tIHRoZSBlbGVtZW50LCBvciBwYXNzIGEgc3RyaW5nIG9yIG51bWJlciB2YWx1ZSB0byBrZWVwIGl0IGluIHRoZSBET00uIEZvciBkZXRhaWxzLCBzZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9hdHRyaWJ1dGUtYmVoYXZpb3IgXCIsXG4gICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICApXG4gICAgICAgIDogMSA8IHVua25vd25Qcm9wcy5sZW5ndGggJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJJbnZhbGlkIHZhbHVlcyBmb3IgcHJvcHMgJXMgb24gPCVzPiB0YWcuIEVpdGhlciByZW1vdmUgdGhlbSBmcm9tIHRoZSBlbGVtZW50LCBvciBwYXNzIGEgc3RyaW5nIG9yIG51bWJlciB2YWx1ZSB0byBrZWVwIHRoZW0gaW4gdGhlIERPTS4gRm9yIGRldGFpbHMsIHNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL2F0dHJpYnV0ZS1iZWhhdmlvciBcIixcbiAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNhbml0aXplVVJMKHVybCkge1xuICAgICAgcmV0dXJuIGlzSmF2YVNjcmlwdFByb3RvY29sLnRlc3QoXCJcIiArIHVybClcbiAgICAgICAgPyBcImphdmFzY3JpcHQ6dGhyb3cgbmV3IEVycm9yKCdSZWFjdCBoYXMgYmxvY2tlZCBhIGphdmFzY3JpcHQ6IFVSTCBhcyBhIHNlY3VyaXR5IHByZWNhdXRpb24uJylcIlxuICAgICAgICA6IHVybDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm9vcCQxKCkge31cbiAgICBmdW5jdGlvbiBnZXRFdmVudFRhcmdldChuYXRpdmVFdmVudCkge1xuICAgICAgbmF0aXZlRXZlbnQgPSBuYXRpdmVFdmVudC50YXJnZXQgfHwgbmF0aXZlRXZlbnQuc3JjRWxlbWVudCB8fCB3aW5kb3c7XG4gICAgICBuYXRpdmVFdmVudC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCAmJlxuICAgICAgICAobmF0aXZlRXZlbnQgPSBuYXRpdmVFdmVudC5jb3JyZXNwb25kaW5nVXNlRWxlbWVudCk7XG4gICAgICByZXR1cm4gMyA9PT0gbmF0aXZlRXZlbnQubm9kZVR5cGUgPyBuYXRpdmVFdmVudC5wYXJlbnROb2RlIDogbmF0aXZlRXZlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc3RvcmVTdGF0ZU9mVGFyZ2V0KHRhcmdldCkge1xuICAgICAgdmFyIGludGVybmFsSW5zdGFuY2UgPSBnZXRJbnN0YW5jZUZyb21Ob2RlKHRhcmdldCk7XG4gICAgICBpZiAoaW50ZXJuYWxJbnN0YW5jZSAmJiAodGFyZ2V0ID0gaW50ZXJuYWxJbnN0YW5jZS5zdGF0ZU5vZGUpKSB7XG4gICAgICAgIHZhciBwcm9wcyA9IHRhcmdldFtpbnRlcm5hbFByb3BzS2V5XSB8fCBudWxsO1xuICAgICAgICBhOiBzd2l0Y2ggKFxuICAgICAgICAgICgodGFyZ2V0ID0gaW50ZXJuYWxJbnN0YW5jZS5zdGF0ZU5vZGUpLCBpbnRlcm5hbEluc3RhbmNlLnR5cGUpXG4gICAgICAgICkge1xuICAgICAgICAgIGNhc2UgXCJpbnB1dFwiOlxuICAgICAgICAgICAgdXBkYXRlSW5wdXQoXG4gICAgICAgICAgICAgIHRhcmdldCxcbiAgICAgICAgICAgICAgcHJvcHMudmFsdWUsXG4gICAgICAgICAgICAgIHByb3BzLmRlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgICAgcHJvcHMuZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgICBwcm9wcy5jaGVja2VkLFxuICAgICAgICAgICAgICBwcm9wcy5kZWZhdWx0Q2hlY2tlZCxcbiAgICAgICAgICAgICAgcHJvcHMudHlwZSxcbiAgICAgICAgICAgICAgcHJvcHMubmFtZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGludGVybmFsSW5zdGFuY2UgPSBwcm9wcy5uYW1lO1xuICAgICAgICAgICAgaWYgKFwicmFkaW9cIiA9PT0gcHJvcHMudHlwZSAmJiBudWxsICE9IGludGVybmFsSW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgZm9yIChwcm9wcyA9IHRhcmdldDsgcHJvcHMucGFyZW50Tm9kZTsgKSBwcm9wcyA9IHByb3BzLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgIGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24oaW50ZXJuYWxJbnN0YW5jZSwgXCJuYW1lXCIpO1xuICAgICAgICAgICAgICBwcm9wcyA9IHByb3BzLnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAgICAgJ2lucHV0W25hbWU9XCInICtcbiAgICAgICAgICAgICAgICAgIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoXG4gICAgICAgICAgICAgICAgICAgIFwiXCIgKyBpbnRlcm5hbEluc3RhbmNlXG4gICAgICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgICAgICdcIl1bdHlwZT1cInJhZGlvXCJdJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgIGludGVybmFsSW5zdGFuY2UgPSAwO1xuICAgICAgICAgICAgICAgIGludGVybmFsSW5zdGFuY2UgPCBwcm9wcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxJbnN0YW5jZSsrXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHZhciBvdGhlck5vZGUgPSBwcm9wc1tpbnRlcm5hbEluc3RhbmNlXTtcbiAgICAgICAgICAgICAgICBpZiAob3RoZXJOb2RlICE9PSB0YXJnZXQgJiYgb3RoZXJOb2RlLmZvcm0gPT09IHRhcmdldC5mb3JtKSB7XG4gICAgICAgICAgICAgICAgICB2YXIgb3RoZXJQcm9wcyA9IG90aGVyTm9kZVtpbnRlcm5hbFByb3BzS2V5XSB8fCBudWxsO1xuICAgICAgICAgICAgICAgICAgaWYgKCFvdGhlclByb3BzKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcIlJlYWN0RE9NSW5wdXQ6IE1peGluZyBSZWFjdCBhbmQgbm9uLVJlYWN0IHJhZGlvIGlucHV0cyB3aXRoIHRoZSBzYW1lIGBuYW1lYCBpcyBub3Qgc3VwcG9ydGVkLlwiXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB1cGRhdGVJbnB1dChcbiAgICAgICAgICAgICAgICAgICAgb3RoZXJOb2RlLFxuICAgICAgICAgICAgICAgICAgICBvdGhlclByb3BzLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBvdGhlclByb3BzLmRlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgb3RoZXJQcm9wcy5kZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG90aGVyUHJvcHMuY2hlY2tlZCxcbiAgICAgICAgICAgICAgICAgICAgb3RoZXJQcm9wcy5kZWZhdWx0Q2hlY2tlZCxcbiAgICAgICAgICAgICAgICAgICAgb3RoZXJQcm9wcy50eXBlLFxuICAgICAgICAgICAgICAgICAgICBvdGhlclByb3BzLm5hbWVcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAgaW50ZXJuYWxJbnN0YW5jZSA9IDA7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxJbnN0YW5jZSA8IHByb3BzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbEluc3RhbmNlKytcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIChvdGhlck5vZGUgPSBwcm9wc1tpbnRlcm5hbEluc3RhbmNlXSksXG4gICAgICAgICAgICAgICAgICBvdGhlck5vZGUuZm9ybSA9PT0gdGFyZ2V0LmZvcm0gJiZcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlVmFsdWVJZkNoYW5nZWQob3RoZXJOb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgY2FzZSBcInRleHRhcmVhXCI6XG4gICAgICAgICAgICB1cGRhdGVUZXh0YXJlYSh0YXJnZXQsIHByb3BzLnZhbHVlLCBwcm9wcy5kZWZhdWx0VmFsdWUpO1xuICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICBjYXNlIFwic2VsZWN0XCI6XG4gICAgICAgICAgICAoaW50ZXJuYWxJbnN0YW5jZSA9IHByb3BzLnZhbHVlKSxcbiAgICAgICAgICAgICAgbnVsbCAhPSBpbnRlcm5hbEluc3RhbmNlICYmXG4gICAgICAgICAgICAgICAgdXBkYXRlT3B0aW9ucyh0YXJnZXQsICEhcHJvcHMubXVsdGlwbGUsIGludGVybmFsSW5zdGFuY2UsICExKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBiYXRjaGVkVXBkYXRlcyQxKGZuLCBhLCBiKSB7XG4gICAgICBpZiAoaXNJbnNpZGVFdmVudEhhbmRsZXIpIHJldHVybiBmbihhLCBiKTtcbiAgICAgIGlzSW5zaWRlRXZlbnRIYW5kbGVyID0gITA7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gZm4oYSk7XG4gICAgICAgIHJldHVybiBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQ7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKChpc0luc2lkZUV2ZW50SGFuZGxlciA9ICExKSxcbiAgICAgICAgICBudWxsICE9PSByZXN0b3JlVGFyZ2V0IHx8IG51bGwgIT09IHJlc3RvcmVRdWV1ZSlcbiAgICAgICAgKVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIChmbHVzaFN5bmNXb3JrJDEoKSxcbiAgICAgICAgICAgIHJlc3RvcmVUYXJnZXQgJiZcbiAgICAgICAgICAgICAgKChhID0gcmVzdG9yZVRhcmdldCksXG4gICAgICAgICAgICAgIChmbiA9IHJlc3RvcmVRdWV1ZSksXG4gICAgICAgICAgICAgIChyZXN0b3JlUXVldWUgPSByZXN0b3JlVGFyZ2V0ID0gbnVsbCksXG4gICAgICAgICAgICAgIHJlc3RvcmVTdGF0ZU9mVGFyZ2V0KGEpLFxuICAgICAgICAgICAgICBmbikpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgZm9yIChhID0gMDsgYSA8IGZuLmxlbmd0aDsgYSsrKSByZXN0b3JlU3RhdGVPZlRhcmdldChmblthXSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldExpc3RlbmVyKGluc3QsIHJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICAgIHZhciBzdGF0ZU5vZGUgPSBpbnN0LnN0YXRlTm9kZTtcbiAgICAgIGlmIChudWxsID09PSBzdGF0ZU5vZGUpIHJldHVybiBudWxsO1xuICAgICAgdmFyIHByb3BzID0gc3RhdGVOb2RlW2ludGVybmFsUHJvcHNLZXldIHx8IG51bGw7XG4gICAgICBpZiAobnVsbCA9PT0gcHJvcHMpIHJldHVybiBudWxsO1xuICAgICAgc3RhdGVOb2RlID0gcHJvcHNbcmVnaXN0cmF0aW9uTmFtZV07XG4gICAgICBhOiBzd2l0Y2ggKHJlZ2lzdHJhdGlvbk5hbWUpIHtcbiAgICAgICAgY2FzZSBcIm9uQ2xpY2tcIjpcbiAgICAgICAgY2FzZSBcIm9uQ2xpY2tDYXB0dXJlXCI6XG4gICAgICAgIGNhc2UgXCJvbkRvdWJsZUNsaWNrXCI6XG4gICAgICAgIGNhc2UgXCJvbkRvdWJsZUNsaWNrQ2FwdHVyZVwiOlxuICAgICAgICBjYXNlIFwib25Nb3VzZURvd25cIjpcbiAgICAgICAgY2FzZSBcIm9uTW91c2VEb3duQ2FwdHVyZVwiOlxuICAgICAgICBjYXNlIFwib25Nb3VzZU1vdmVcIjpcbiAgICAgICAgY2FzZSBcIm9uTW91c2VNb3ZlQ2FwdHVyZVwiOlxuICAgICAgICBjYXNlIFwib25Nb3VzZVVwXCI6XG4gICAgICAgIGNhc2UgXCJvbk1vdXNlVXBDYXB0dXJlXCI6XG4gICAgICAgIGNhc2UgXCJvbk1vdXNlRW50ZXJcIjpcbiAgICAgICAgICAocHJvcHMgPSAhcHJvcHMuZGlzYWJsZWQpIHx8XG4gICAgICAgICAgICAoKGluc3QgPSBpbnN0LnR5cGUpLFxuICAgICAgICAgICAgKHByb3BzID0gIShcbiAgICAgICAgICAgICAgXCJidXR0b25cIiA9PT0gaW5zdCB8fFxuICAgICAgICAgICAgICBcImlucHV0XCIgPT09IGluc3QgfHxcbiAgICAgICAgICAgICAgXCJzZWxlY3RcIiA9PT0gaW5zdCB8fFxuICAgICAgICAgICAgICBcInRleHRhcmVhXCIgPT09IGluc3RcbiAgICAgICAgICAgICkpKTtcbiAgICAgICAgICBpbnN0ID0gIXByb3BzO1xuICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgaW5zdCA9ICExO1xuICAgICAgfVxuICAgICAgaWYgKGluc3QpIHJldHVybiBudWxsO1xuICAgICAgaWYgKHN0YXRlTm9kZSAmJiBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBzdGF0ZU5vZGUpXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwiRXhwZWN0ZWQgYFwiICtcbiAgICAgICAgICAgIHJlZ2lzdHJhdGlvbk5hbWUgK1xuICAgICAgICAgICAgXCJgIGxpc3RlbmVyIHRvIGJlIGEgZnVuY3Rpb24sIGluc3RlYWQgZ290IGEgdmFsdWUgb2YgYFwiICtcbiAgICAgICAgICAgIHR5cGVvZiBzdGF0ZU5vZGUgK1xuICAgICAgICAgICAgXCJgIHR5cGUuXCJcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiBzdGF0ZU5vZGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldERhdGEoKSB7XG4gICAgICBpZiAoZmFsbGJhY2tUZXh0KSByZXR1cm4gZmFsbGJhY2tUZXh0O1xuICAgICAgdmFyIHN0YXJ0LFxuICAgICAgICBzdGFydFZhbHVlID0gc3RhcnRUZXh0LFxuICAgICAgICBzdGFydExlbmd0aCA9IHN0YXJ0VmFsdWUubGVuZ3RoLFxuICAgICAgICBlbmQsXG4gICAgICAgIGVuZFZhbHVlID0gXCJ2YWx1ZVwiIGluIHJvb3QgPyByb290LnZhbHVlIDogcm9vdC50ZXh0Q29udGVudCxcbiAgICAgICAgZW5kTGVuZ3RoID0gZW5kVmFsdWUubGVuZ3RoO1xuICAgICAgZm9yIChcbiAgICAgICAgc3RhcnQgPSAwO1xuICAgICAgICBzdGFydCA8IHN0YXJ0TGVuZ3RoICYmIHN0YXJ0VmFsdWVbc3RhcnRdID09PSBlbmRWYWx1ZVtzdGFydF07XG4gICAgICAgIHN0YXJ0KytcbiAgICAgICk7XG4gICAgICB2YXIgbWluRW5kID0gc3RhcnRMZW5ndGggLSBzdGFydDtcbiAgICAgIGZvciAoXG4gICAgICAgIGVuZCA9IDE7XG4gICAgICAgIGVuZCA8PSBtaW5FbmQgJiZcbiAgICAgICAgc3RhcnRWYWx1ZVtzdGFydExlbmd0aCAtIGVuZF0gPT09IGVuZFZhbHVlW2VuZExlbmd0aCAtIGVuZF07XG4gICAgICAgIGVuZCsrXG4gICAgICApO1xuICAgICAgcmV0dXJuIChmYWxsYmFja1RleHQgPSBlbmRWYWx1ZS5zbGljZShzdGFydCwgMSA8IGVuZCA/IDEgLSBlbmQgOiB2b2lkIDApKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RXZlbnRDaGFyQ29kZShuYXRpdmVFdmVudCkge1xuICAgICAgdmFyIGtleUNvZGUgPSBuYXRpdmVFdmVudC5rZXlDb2RlO1xuICAgICAgXCJjaGFyQ29kZVwiIGluIG5hdGl2ZUV2ZW50XG4gICAgICAgID8gKChuYXRpdmVFdmVudCA9IG5hdGl2ZUV2ZW50LmNoYXJDb2RlKSxcbiAgICAgICAgICAwID09PSBuYXRpdmVFdmVudCAmJiAxMyA9PT0ga2V5Q29kZSAmJiAobmF0aXZlRXZlbnQgPSAxMykpXG4gICAgICAgIDogKG5hdGl2ZUV2ZW50ID0ga2V5Q29kZSk7XG4gICAgICAxMCA9PT0gbmF0aXZlRXZlbnQgJiYgKG5hdGl2ZUV2ZW50ID0gMTMpO1xuICAgICAgcmV0dXJuIDMyIDw9IG5hdGl2ZUV2ZW50IHx8IDEzID09PSBuYXRpdmVFdmVudCA/IG5hdGl2ZUV2ZW50IDogMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWUoKSB7XG4gICAgICByZXR1cm4gITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZ1bmN0aW9uVGhhdFJldHVybnNGYWxzZSgpIHtcbiAgICAgIHJldHVybiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlU3ludGhldGljRXZlbnQoSW50ZXJmYWNlKSB7XG4gICAgICBmdW5jdGlvbiBTeW50aGV0aWNCYXNlRXZlbnQoXG4gICAgICAgIHJlYWN0TmFtZSxcbiAgICAgICAgcmVhY3RFdmVudFR5cGUsXG4gICAgICAgIHRhcmdldEluc3QsXG4gICAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX3JlYWN0TmFtZSA9IHJlYWN0TmFtZTtcbiAgICAgICAgdGhpcy5fdGFyZ2V0SW5zdCA9IHRhcmdldEluc3Q7XG4gICAgICAgIHRoaXMudHlwZSA9IHJlYWN0RXZlbnRUeXBlO1xuICAgICAgICB0aGlzLm5hdGl2ZUV2ZW50ID0gbmF0aXZlRXZlbnQ7XG4gICAgICAgIHRoaXMudGFyZ2V0ID0gbmF0aXZlRXZlbnRUYXJnZXQ7XG4gICAgICAgIHRoaXMuY3VycmVudFRhcmdldCA9IG51bGw7XG4gICAgICAgIGZvciAodmFyIHByb3BOYW1lIGluIEludGVyZmFjZSlcbiAgICAgICAgICBJbnRlcmZhY2UuaGFzT3duUHJvcGVydHkocHJvcE5hbWUpICYmXG4gICAgICAgICAgICAoKHJlYWN0TmFtZSA9IEludGVyZmFjZVtwcm9wTmFtZV0pLFxuICAgICAgICAgICAgKHRoaXNbcHJvcE5hbWVdID0gcmVhY3ROYW1lXG4gICAgICAgICAgICAgID8gcmVhY3ROYW1lKG5hdGl2ZUV2ZW50KVxuICAgICAgICAgICAgICA6IG5hdGl2ZUV2ZW50W3Byb3BOYW1lXSkpO1xuICAgICAgICB0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IChcbiAgICAgICAgICBudWxsICE9IG5hdGl2ZUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWRcbiAgICAgICAgICAgID8gbmF0aXZlRXZlbnQuZGVmYXVsdFByZXZlbnRlZFxuICAgICAgICAgICAgOiAhMSA9PT0gbmF0aXZlRXZlbnQucmV0dXJuVmFsdWVcbiAgICAgICAgKVxuICAgICAgICAgID8gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWVcbiAgICAgICAgICA6IGZ1bmN0aW9uVGhhdFJldHVybnNGYWxzZTtcbiAgICAgICAgdGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IGZ1bmN0aW9uVGhhdFJldHVybnNGYWxzZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgICBhc3NpZ24oU3ludGhldGljQmFzZUV2ZW50LnByb3RvdHlwZSwge1xuICAgICAgICBwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHRoaXMuZGVmYXVsdFByZXZlbnRlZCA9ICEwO1xuICAgICAgICAgIHZhciBldmVudCA9IHRoaXMubmF0aXZlRXZlbnQ7XG4gICAgICAgICAgZXZlbnQgJiZcbiAgICAgICAgICAgIChldmVudC5wcmV2ZW50RGVmYXVsdFxuICAgICAgICAgICAgICA/IGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgOiBcInVua25vd25cIiAhPT0gdHlwZW9mIGV2ZW50LnJldHVyblZhbHVlICYmXG4gICAgICAgICAgICAgICAgKGV2ZW50LnJldHVyblZhbHVlID0gITEpLFxuICAgICAgICAgICAgKHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gZnVuY3Rpb25UaGF0UmV0dXJuc1RydWUpKTtcbiAgICAgICAgfSxcbiAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdmFyIGV2ZW50ID0gdGhpcy5uYXRpdmVFdmVudDtcbiAgICAgICAgICBldmVudCAmJlxuICAgICAgICAgICAgKGV2ZW50LnN0b3BQcm9wYWdhdGlvblxuICAgICAgICAgICAgICA/IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgIDogXCJ1bmtub3duXCIgIT09IHR5cGVvZiBldmVudC5jYW5jZWxCdWJibGUgJiZcbiAgICAgICAgICAgICAgICAoZXZlbnQuY2FuY2VsQnViYmxlID0gITApLFxuICAgICAgICAgICAgKHRoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQgPSBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZSkpO1xuICAgICAgICB9LFxuICAgICAgICBwZXJzaXN0OiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgICAgaXNQZXJzaXN0ZW50OiBmdW5jdGlvblRoYXRSZXR1cm5zVHJ1ZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gU3ludGhldGljQmFzZUV2ZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb2RpZmllclN0YXRlR2V0dGVyKGtleUFyZykge1xuICAgICAgdmFyIG5hdGl2ZUV2ZW50ID0gdGhpcy5uYXRpdmVFdmVudDtcbiAgICAgIHJldHVybiBuYXRpdmVFdmVudC5nZXRNb2RpZmllclN0YXRlXG4gICAgICAgID8gbmF0aXZlRXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZShrZXlBcmcpXG4gICAgICAgIDogKGtleUFyZyA9IG1vZGlmaWVyS2V5VG9Qcm9wW2tleUFyZ10pXG4gICAgICAgICAgPyAhIW5hdGl2ZUV2ZW50W2tleUFyZ11cbiAgICAgICAgICA6ICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRFdmVudE1vZGlmaWVyU3RhdGUoKSB7XG4gICAgICByZXR1cm4gbW9kaWZpZXJTdGF0ZUdldHRlcjtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNGYWxsYmFja0NvbXBvc2l0aW9uRW5kKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgICAgIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgICAgIGNhc2UgXCJrZXl1cFwiOlxuICAgICAgICAgIHJldHVybiAtMSAhPT0gRU5EX0tFWUNPREVTLmluZGV4T2YobmF0aXZlRXZlbnQua2V5Q29kZSk7XG4gICAgICAgIGNhc2UgXCJrZXlkb3duXCI6XG4gICAgICAgICAgcmV0dXJuIG5hdGl2ZUV2ZW50LmtleUNvZGUgIT09IFNUQVJUX0tFWUNPREU7XG4gICAgICAgIGNhc2UgXCJrZXlwcmVzc1wiOlxuICAgICAgICBjYXNlIFwibW91c2Vkb3duXCI6XG4gICAgICAgIGNhc2UgXCJmb2N1c291dFwiOlxuICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gITE7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldERhdGFGcm9tQ3VzdG9tRXZlbnQobmF0aXZlRXZlbnQpIHtcbiAgICAgIG5hdGl2ZUV2ZW50ID0gbmF0aXZlRXZlbnQuZGV0YWlsO1xuICAgICAgcmV0dXJuIFwib2JqZWN0XCIgPT09IHR5cGVvZiBuYXRpdmVFdmVudCAmJiBcImRhdGFcIiBpbiBuYXRpdmVFdmVudFxuICAgICAgICA/IG5hdGl2ZUV2ZW50LmRhdGFcbiAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXROYXRpdmVCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgICAgIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgICAgIGNhc2UgXCJjb21wb3NpdGlvbmVuZFwiOlxuICAgICAgICAgIHJldHVybiBnZXREYXRhRnJvbUN1c3RvbUV2ZW50KG5hdGl2ZUV2ZW50KTtcbiAgICAgICAgY2FzZSBcImtleXByZXNzXCI6XG4gICAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LndoaWNoICE9PSBTUEFDRUJBUl9DT0RFKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICBoYXNTcGFjZUtleXByZXNzID0gITA7XG4gICAgICAgICAgcmV0dXJuIFNQQUNFQkFSX0NIQVI7XG4gICAgICAgIGNhc2UgXCJ0ZXh0SW5wdXRcIjpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGRvbUV2ZW50TmFtZSA9IG5hdGl2ZUV2ZW50LmRhdGEpLFxuICAgICAgICAgICAgZG9tRXZlbnROYW1lID09PSBTUEFDRUJBUl9DSEFSICYmIGhhc1NwYWNlS2V5cHJlc3NcbiAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgIDogZG9tRXZlbnROYW1lXG4gICAgICAgICAgKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0RmFsbGJhY2tCZWZvcmVJbnB1dENoYXJzKGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpIHtcbiAgICAgIGlmIChpc0NvbXBvc2luZylcbiAgICAgICAgcmV0dXJuIFwiY29tcG9zaXRpb25lbmRcIiA9PT0gZG9tRXZlbnROYW1lIHx8XG4gICAgICAgICAgKCFjYW5Vc2VDb21wb3NpdGlvbkV2ZW50ICYmXG4gICAgICAgICAgICBpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkpXG4gICAgICAgICAgPyAoKGRvbUV2ZW50TmFtZSA9IGdldERhdGEoKSksXG4gICAgICAgICAgICAoZmFsbGJhY2tUZXh0ID0gc3RhcnRUZXh0ID0gcm9vdCA9IG51bGwpLFxuICAgICAgICAgICAgKGlzQ29tcG9zaW5nID0gITEpLFxuICAgICAgICAgICAgZG9tRXZlbnROYW1lKVxuICAgICAgICAgIDogbnVsbDtcbiAgICAgIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgICAgIGNhc2UgXCJwYXN0ZVwiOlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIFwia2V5cHJlc3NcIjpcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhKFxuICAgICAgICAgICAgICBuYXRpdmVFdmVudC5jdHJsS2V5IHx8XG4gICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LmFsdEtleSB8fFxuICAgICAgICAgICAgICBuYXRpdmVFdmVudC5tZXRhS2V5XG4gICAgICAgICAgICApIHx8XG4gICAgICAgICAgICAobmF0aXZlRXZlbnQuY3RybEtleSAmJiBuYXRpdmVFdmVudC5hbHRLZXkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAobmF0aXZlRXZlbnQuY2hhciAmJiAxIDwgbmF0aXZlRXZlbnQuY2hhci5sZW5ndGgpXG4gICAgICAgICAgICAgIHJldHVybiBuYXRpdmVFdmVudC5jaGFyO1xuICAgICAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LndoaWNoKVxuICAgICAgICAgICAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShuYXRpdmVFdmVudC53aGljaCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpcbiAgICAgICAgICByZXR1cm4gdXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgJiYgXCJrb1wiICE9PSBuYXRpdmVFdmVudC5sb2NhbGVcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiBuYXRpdmVFdmVudC5kYXRhO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBpc1RleHRJbnB1dEVsZW1lbnQoZWxlbSkge1xuICAgICAgdmFyIG5vZGVOYW1lID0gZWxlbSAmJiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHJldHVybiBcImlucHV0XCIgPT09IG5vZGVOYW1lXG4gICAgICAgID8gISFzdXBwb3J0ZWRJbnB1dFR5cGVzW2VsZW0udHlwZV1cbiAgICAgICAgOiBcInRleHRhcmVhXCIgPT09IG5vZGVOYW1lXG4gICAgICAgICAgPyAhMFxuICAgICAgICAgIDogITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzRXZlbnRTdXBwb3J0ZWQoZXZlbnROYW1lU3VmZml4KSB7XG4gICAgICBpZiAoIWNhblVzZURPTSkgcmV0dXJuICExO1xuICAgICAgZXZlbnROYW1lU3VmZml4ID0gXCJvblwiICsgZXZlbnROYW1lU3VmZml4O1xuICAgICAgdmFyIGlzU3VwcG9ydGVkID0gZXZlbnROYW1lU3VmZml4IGluIGRvY3VtZW50O1xuICAgICAgaXNTdXBwb3J0ZWQgfHxcbiAgICAgICAgKChpc1N1cHBvcnRlZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIikpLFxuICAgICAgICBpc1N1cHBvcnRlZC5zZXRBdHRyaWJ1dGUoZXZlbnROYW1lU3VmZml4LCBcInJldHVybjtcIiksXG4gICAgICAgIChpc1N1cHBvcnRlZCA9IFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGlzU3VwcG9ydGVkW2V2ZW50TmFtZVN1ZmZpeF0pKTtcbiAgICAgIHJldHVybiBpc1N1cHBvcnRlZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlQW5kQWNjdW11bGF0ZUNoYW5nZUV2ZW50KFxuICAgICAgZGlzcGF0Y2hRdWV1ZSxcbiAgICAgIGluc3QsXG4gICAgICBuYXRpdmVFdmVudCxcbiAgICAgIHRhcmdldFxuICAgICkge1xuICAgICAgcmVzdG9yZVRhcmdldFxuICAgICAgICA/IHJlc3RvcmVRdWV1ZVxuICAgICAgICAgID8gcmVzdG9yZVF1ZXVlLnB1c2godGFyZ2V0KVxuICAgICAgICAgIDogKHJlc3RvcmVRdWV1ZSA9IFt0YXJnZXRdKVxuICAgICAgICA6IChyZXN0b3JlVGFyZ2V0ID0gdGFyZ2V0KTtcbiAgICAgIGluc3QgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnMoaW5zdCwgXCJvbkNoYW5nZVwiKTtcbiAgICAgIDAgPCBpbnN0Lmxlbmd0aCAmJlxuICAgICAgICAoKG5hdGl2ZUV2ZW50ID0gbmV3IFN5bnRoZXRpY0V2ZW50KFxuICAgICAgICAgIFwib25DaGFuZ2VcIixcbiAgICAgICAgICBcImNoYW5nZVwiLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICAgICAgdGFyZ2V0XG4gICAgICAgICkpLFxuICAgICAgICBkaXNwYXRjaFF1ZXVlLnB1c2goeyBldmVudDogbmF0aXZlRXZlbnQsIGxpc3RlbmVyczogaW5zdCB9KSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJ1bkV2ZW50SW5CYXRjaChkaXNwYXRjaFF1ZXVlKSB7XG4gICAgICBwcm9jZXNzRGlzcGF0Y2hRdWV1ZShkaXNwYXRjaFF1ZXVlLCAwKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKHRhcmdldEluc3QpIHtcbiAgICAgIHZhciB0YXJnZXROb2RlID0gZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KTtcbiAgICAgIGlmICh1cGRhdGVWYWx1ZUlmQ2hhbmdlZCh0YXJnZXROb2RlKSkgcmV0dXJuIHRhcmdldEluc3Q7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JDaGFuZ2VFdmVudChkb21FdmVudE5hbWUsIHRhcmdldEluc3QpIHtcbiAgICAgIGlmIChcImNoYW5nZVwiID09PSBkb21FdmVudE5hbWUpIHJldHVybiB0YXJnZXRJbnN0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdG9wV2F0Y2hpbmdGb3JWYWx1ZUNoYW5nZSgpIHtcbiAgICAgIGFjdGl2ZUVsZW1lbnQkMSAmJlxuICAgICAgICAoYWN0aXZlRWxlbWVudCQxLmRldGFjaEV2ZW50KFwib25wcm9wZXJ0eWNoYW5nZVwiLCBoYW5kbGVQcm9wZXJ0eUNoYW5nZSksXG4gICAgICAgIChhY3RpdmVFbGVtZW50SW5zdCQxID0gYWN0aXZlRWxlbWVudCQxID0gbnVsbCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVQcm9wZXJ0eUNoYW5nZShuYXRpdmVFdmVudCkge1xuICAgICAgaWYgKFxuICAgICAgICBcInZhbHVlXCIgPT09IG5hdGl2ZUV2ZW50LnByb3BlcnR5TmFtZSAmJlxuICAgICAgICBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQoYWN0aXZlRWxlbWVudEluc3QkMSlcbiAgICAgICkge1xuICAgICAgICB2YXIgZGlzcGF0Y2hRdWV1ZSA9IFtdO1xuICAgICAgICBjcmVhdGVBbmRBY2N1bXVsYXRlQ2hhbmdlRXZlbnQoXG4gICAgICAgICAgZGlzcGF0Y2hRdWV1ZSxcbiAgICAgICAgICBhY3RpdmVFbGVtZW50SW5zdCQxLFxuICAgICAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgICAgIGdldEV2ZW50VGFyZ2V0KG5hdGl2ZUV2ZW50KVxuICAgICAgICApO1xuICAgICAgICBiYXRjaGVkVXBkYXRlcyQxKHJ1bkV2ZW50SW5CYXRjaCwgZGlzcGF0Y2hRdWV1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZUV2ZW50c0ZvcklucHV0RXZlbnRQb2x5ZmlsbChcbiAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgIHRhcmdldCxcbiAgICAgIHRhcmdldEluc3RcbiAgICApIHtcbiAgICAgIFwiZm9jdXNpblwiID09PSBkb21FdmVudE5hbWVcbiAgICAgICAgPyAoc3RvcFdhdGNoaW5nRm9yVmFsdWVDaGFuZ2UoKSxcbiAgICAgICAgICAoYWN0aXZlRWxlbWVudCQxID0gdGFyZ2V0KSxcbiAgICAgICAgICAoYWN0aXZlRWxlbWVudEluc3QkMSA9IHRhcmdldEluc3QpLFxuICAgICAgICAgIGFjdGl2ZUVsZW1lbnQkMS5hdHRhY2hFdmVudChcIm9ucHJvcGVydHljaGFuZ2VcIiwgaGFuZGxlUHJvcGVydHlDaGFuZ2UpKVxuICAgICAgICA6IFwiZm9jdXNvdXRcIiA9PT0gZG9tRXZlbnROYW1lICYmIHN0b3BXYXRjaGluZ0ZvclZhbHVlQ2hhbmdlKCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JJbnB1dEV2ZW50UG9seWZpbGwoZG9tRXZlbnROYW1lKSB7XG4gICAgICBpZiAoXG4gICAgICAgIFwic2VsZWN0aW9uY2hhbmdlXCIgPT09IGRvbUV2ZW50TmFtZSB8fFxuICAgICAgICBcImtleXVwXCIgPT09IGRvbUV2ZW50TmFtZSB8fFxuICAgICAgICBcImtleWRvd25cIiA9PT0gZG9tRXZlbnROYW1lXG4gICAgICApXG4gICAgICAgIHJldHVybiBnZXRJbnN0SWZWYWx1ZUNoYW5nZWQoYWN0aXZlRWxlbWVudEluc3QkMSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFRhcmdldEluc3RGb3JDbGlja0V2ZW50KGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCkge1xuICAgICAgaWYgKFwiY2xpY2tcIiA9PT0gZG9tRXZlbnROYW1lKSByZXR1cm4gZ2V0SW5zdElmVmFsdWVDaGFuZ2VkKHRhcmdldEluc3QpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRUYXJnZXRJbnN0Rm9ySW5wdXRPckNoYW5nZUV2ZW50KGRvbUV2ZW50TmFtZSwgdGFyZ2V0SW5zdCkge1xuICAgICAgaWYgKFwiaW5wdXRcIiA9PT0gZG9tRXZlbnROYW1lIHx8IFwiY2hhbmdlXCIgPT09IGRvbUV2ZW50TmFtZSlcbiAgICAgICAgcmV0dXJuIGdldEluc3RJZlZhbHVlQ2hhbmdlZCh0YXJnZXRJbnN0KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXMoeCwgeSkge1xuICAgICAgcmV0dXJuICh4ID09PSB5ICYmICgwICE9PSB4IHx8IDEgLyB4ID09PSAxIC8geSkpIHx8ICh4ICE9PSB4ICYmIHkgIT09IHkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzaGFsbG93RXF1YWwob2JqQSwgb2JqQikge1xuICAgICAgaWYgKG9iamVjdElzKG9iakEsIG9iakIpKSByZXR1cm4gITA7XG4gICAgICBpZiAoXG4gICAgICAgIFwib2JqZWN0XCIgIT09IHR5cGVvZiBvYmpBIHx8XG4gICAgICAgIG51bGwgPT09IG9iakEgfHxcbiAgICAgICAgXCJvYmplY3RcIiAhPT0gdHlwZW9mIG9iakIgfHxcbiAgICAgICAgbnVsbCA9PT0gb2JqQlxuICAgICAgKVxuICAgICAgICByZXR1cm4gITE7XG4gICAgICB2YXIga2V5c0EgPSBPYmplY3Qua2V5cyhvYmpBKSxcbiAgICAgICAga2V5c0IgPSBPYmplY3Qua2V5cyhvYmpCKTtcbiAgICAgIGlmIChrZXlzQS5sZW5ndGggIT09IGtleXNCLmxlbmd0aCkgcmV0dXJuICExO1xuICAgICAgZm9yIChrZXlzQiA9IDA7IGtleXNCIDwga2V5c0EubGVuZ3RoOyBrZXlzQisrKSB7XG4gICAgICAgIHZhciBjdXJyZW50S2V5ID0ga2V5c0Fba2V5c0JdO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWhhc093blByb3BlcnR5LmNhbGwob2JqQiwgY3VycmVudEtleSkgfHxcbiAgICAgICAgICAhb2JqZWN0SXMob2JqQVtjdXJyZW50S2V5XSwgb2JqQltjdXJyZW50S2V5XSlcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0TGVhZk5vZGUobm9kZSkge1xuICAgICAgZm9yICg7IG5vZGUgJiYgbm9kZS5maXJzdENoaWxkOyApIG5vZGUgPSBub2RlLmZpcnN0Q2hpbGQ7XG4gICAgICByZXR1cm4gbm9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Tm9kZUZvckNoYXJhY3Rlck9mZnNldChyb290LCBvZmZzZXQpIHtcbiAgICAgIHZhciBub2RlID0gZ2V0TGVhZk5vZGUocm9vdCk7XG4gICAgICByb290ID0gMDtcbiAgICAgIGZvciAodmFyIG5vZGVFbmQ7IG5vZGU7ICkge1xuICAgICAgICBpZiAoMyA9PT0gbm9kZS5ub2RlVHlwZSkge1xuICAgICAgICAgIG5vZGVFbmQgPSByb290ICsgbm9kZS50ZXh0Q29udGVudC5sZW5ndGg7XG4gICAgICAgICAgaWYgKHJvb3QgPD0gb2Zmc2V0ICYmIG5vZGVFbmQgPj0gb2Zmc2V0KVxuICAgICAgICAgICAgcmV0dXJuIHsgbm9kZTogbm9kZSwgb2Zmc2V0OiBvZmZzZXQgLSByb290IH07XG4gICAgICAgICAgcm9vdCA9IG5vZGVFbmQ7XG4gICAgICAgIH1cbiAgICAgICAgYToge1xuICAgICAgICAgIGZvciAoOyBub2RlOyApIHtcbiAgICAgICAgICAgIGlmIChub2RlLm5leHRTaWJsaW5nKSB7XG4gICAgICAgICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nO1xuICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgbm9kZSA9IHZvaWQgMDtcbiAgICAgICAgfVxuICAgICAgICBub2RlID0gZ2V0TGVhZk5vZGUobm9kZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbnRhaW5zTm9kZShvdXRlck5vZGUsIGlubmVyTm9kZSkge1xuICAgICAgcmV0dXJuIG91dGVyTm9kZSAmJiBpbm5lck5vZGVcbiAgICAgICAgPyBvdXRlck5vZGUgPT09IGlubmVyTm9kZVxuICAgICAgICAgID8gITBcbiAgICAgICAgICA6IG91dGVyTm9kZSAmJiAzID09PSBvdXRlck5vZGUubm9kZVR5cGVcbiAgICAgICAgICAgID8gITFcbiAgICAgICAgICAgIDogaW5uZXJOb2RlICYmIDMgPT09IGlubmVyTm9kZS5ub2RlVHlwZVxuICAgICAgICAgICAgICA/IGNvbnRhaW5zTm9kZShvdXRlck5vZGUsIGlubmVyTm9kZS5wYXJlbnROb2RlKVxuICAgICAgICAgICAgICA6IFwiY29udGFpbnNcIiBpbiBvdXRlck5vZGVcbiAgICAgICAgICAgICAgICA/IG91dGVyTm9kZS5jb250YWlucyhpbm5lck5vZGUpXG4gICAgICAgICAgICAgICAgOiBvdXRlck5vZGUuY29tcGFyZURvY3VtZW50UG9zaXRpb25cbiAgICAgICAgICAgICAgICAgID8gISEob3V0ZXJOb2RlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGlubmVyTm9kZSkgJiAxNilcbiAgICAgICAgICAgICAgICAgIDogITFcbiAgICAgICAgOiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0QWN0aXZlRWxlbWVudERlZXAoY29udGFpbmVySW5mbykge1xuICAgICAgY29udGFpbmVySW5mbyA9XG4gICAgICAgIG51bGwgIT0gY29udGFpbmVySW5mbyAmJlxuICAgICAgICBudWxsICE9IGNvbnRhaW5lckluZm8ub3duZXJEb2N1bWVudCAmJlxuICAgICAgICBudWxsICE9IGNvbnRhaW5lckluZm8ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld1xuICAgICAgICAgID8gY29udGFpbmVySW5mby5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3XG4gICAgICAgICAgOiB3aW5kb3c7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgZWxlbWVudCA9IGdldEFjdGl2ZUVsZW1lbnQoY29udGFpbmVySW5mby5kb2N1bWVudCk7XG4gICAgICAgIGVsZW1lbnQgaW5zdGFuY2VvZiBjb250YWluZXJJbmZvLkhUTUxJRnJhbWVFbGVtZW50O1xuXG4gICAgICApIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID1cbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBlbGVtZW50LmNvbnRlbnRXaW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gITE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCkgY29udGFpbmVySW5mbyA9IGVsZW1lbnQuY29udGVudFdpbmRvdztcbiAgICAgICAgZWxzZSBicmVhaztcbiAgICAgICAgZWxlbWVudCA9IGdldEFjdGl2ZUVsZW1lbnQoY29udGFpbmVySW5mby5kb2N1bWVudCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzKGVsZW0pIHtcbiAgICAgIHZhciBub2RlTmFtZSA9IGVsZW0gJiYgZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBub2RlTmFtZSAmJlxuICAgICAgICAoKFwiaW5wdXRcIiA9PT0gbm9kZU5hbWUgJiZcbiAgICAgICAgICAoXCJ0ZXh0XCIgPT09IGVsZW0udHlwZSB8fFxuICAgICAgICAgICAgXCJzZWFyY2hcIiA9PT0gZWxlbS50eXBlIHx8XG4gICAgICAgICAgICBcInRlbFwiID09PSBlbGVtLnR5cGUgfHxcbiAgICAgICAgICAgIFwidXJsXCIgPT09IGVsZW0udHlwZSB8fFxuICAgICAgICAgICAgXCJwYXNzd29yZFwiID09PSBlbGVtLnR5cGUpKSB8fFxuICAgICAgICAgIFwidGV4dGFyZWFcIiA9PT0gbm9kZU5hbWUgfHxcbiAgICAgICAgICBcInRydWVcIiA9PT0gZWxlbS5jb250ZW50RWRpdGFibGUpXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb25zdHJ1Y3RTZWxlY3RFdmVudChcbiAgICAgIGRpc3BhdGNoUXVldWUsXG4gICAgICBuYXRpdmVFdmVudCxcbiAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgKSB7XG4gICAgICB2YXIgZG9jID1cbiAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXQud2luZG93ID09PSBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgID8gbmF0aXZlRXZlbnRUYXJnZXQuZG9jdW1lbnRcbiAgICAgICAgICA6IDkgPT09IG5hdGl2ZUV2ZW50VGFyZ2V0Lm5vZGVUeXBlXG4gICAgICAgICAgICA/IG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgICA6IG5hdGl2ZUV2ZW50VGFyZ2V0Lm93bmVyRG9jdW1lbnQ7XG4gICAgICBtb3VzZURvd24gfHxcbiAgICAgICAgbnVsbCA9PSBhY3RpdmVFbGVtZW50IHx8XG4gICAgICAgIGFjdGl2ZUVsZW1lbnQgIT09IGdldEFjdGl2ZUVsZW1lbnQoZG9jKSB8fFxuICAgICAgICAoKGRvYyA9IGFjdGl2ZUVsZW1lbnQpLFxuICAgICAgICBcInNlbGVjdGlvblN0YXJ0XCIgaW4gZG9jICYmIGhhc1NlbGVjdGlvbkNhcGFiaWxpdGllcyhkb2MpXG4gICAgICAgICAgPyAoZG9jID0geyBzdGFydDogZG9jLnNlbGVjdGlvblN0YXJ0LCBlbmQ6IGRvYy5zZWxlY3Rpb25FbmQgfSlcbiAgICAgICAgICA6ICgoZG9jID0gKFxuICAgICAgICAgICAgICAoZG9jLm93bmVyRG9jdW1lbnQgJiYgZG9jLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpIHx8XG4gICAgICAgICAgICAgIHdpbmRvd1xuICAgICAgICAgICAgKS5nZXRTZWxlY3Rpb24oKSksXG4gICAgICAgICAgICAoZG9jID0ge1xuICAgICAgICAgICAgICBhbmNob3JOb2RlOiBkb2MuYW5jaG9yTm9kZSxcbiAgICAgICAgICAgICAgYW5jaG9yT2Zmc2V0OiBkb2MuYW5jaG9yT2Zmc2V0LFxuICAgICAgICAgICAgICBmb2N1c05vZGU6IGRvYy5mb2N1c05vZGUsXG4gICAgICAgICAgICAgIGZvY3VzT2Zmc2V0OiBkb2MuZm9jdXNPZmZzZXRcbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgKGxhc3RTZWxlY3Rpb24gJiYgc2hhbGxvd0VxdWFsKGxhc3RTZWxlY3Rpb24sIGRvYykpIHx8XG4gICAgICAgICAgKChsYXN0U2VsZWN0aW9uID0gZG9jKSxcbiAgICAgICAgICAoZG9jID0gYWNjdW11bGF0ZVR3b1BoYXNlTGlzdGVuZXJzKGFjdGl2ZUVsZW1lbnRJbnN0LCBcIm9uU2VsZWN0XCIpKSxcbiAgICAgICAgICAwIDwgZG9jLmxlbmd0aCAmJlxuICAgICAgICAgICAgKChuYXRpdmVFdmVudCA9IG5ldyBTeW50aGV0aWNFdmVudChcbiAgICAgICAgICAgICAgXCJvblNlbGVjdFwiLFxuICAgICAgICAgICAgICBcInNlbGVjdFwiLFxuICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXRcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHsgZXZlbnQ6IG5hdGl2ZUV2ZW50LCBsaXN0ZW5lcnM6IGRvYyB9KSxcbiAgICAgICAgICAgIChuYXRpdmVFdmVudC50YXJnZXQgPSBhY3RpdmVFbGVtZW50KSkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZVByZWZpeE1hcChzdHlsZVByb3AsIGV2ZW50TmFtZSkge1xuICAgICAgdmFyIHByZWZpeGVzID0ge307XG4gICAgICBwcmVmaXhlc1tzdHlsZVByb3AudG9Mb3dlckNhc2UoKV0gPSBldmVudE5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIHByZWZpeGVzW1wiV2Via2l0XCIgKyBzdHlsZVByb3BdID0gXCJ3ZWJraXRcIiArIGV2ZW50TmFtZTtcbiAgICAgIHByZWZpeGVzW1wiTW96XCIgKyBzdHlsZVByb3BdID0gXCJtb3pcIiArIGV2ZW50TmFtZTtcbiAgICAgIHJldHVybiBwcmVmaXhlcztcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoZXZlbnROYW1lKSB7XG4gICAgICBpZiAocHJlZml4ZWRFdmVudE5hbWVzW2V2ZW50TmFtZV0pIHJldHVybiBwcmVmaXhlZEV2ZW50TmFtZXNbZXZlbnROYW1lXTtcbiAgICAgIGlmICghdmVuZG9yUHJlZml4ZXNbZXZlbnROYW1lXSkgcmV0dXJuIGV2ZW50TmFtZTtcbiAgICAgIHZhciBwcmVmaXhNYXAgPSB2ZW5kb3JQcmVmaXhlc1tldmVudE5hbWVdLFxuICAgICAgICBzdHlsZVByb3A7XG4gICAgICBmb3IgKHN0eWxlUHJvcCBpbiBwcmVmaXhNYXApXG4gICAgICAgIGlmIChwcmVmaXhNYXAuaGFzT3duUHJvcGVydHkoc3R5bGVQcm9wKSAmJiBzdHlsZVByb3AgaW4gc3R5bGUpXG4gICAgICAgICAgcmV0dXJuIChwcmVmaXhlZEV2ZW50TmFtZXNbZXZlbnROYW1lXSA9IHByZWZpeE1hcFtzdHlsZVByb3BdKTtcbiAgICAgIHJldHVybiBldmVudE5hbWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlZ2lzdGVyU2ltcGxlRXZlbnQoZG9tRXZlbnROYW1lLCByZWFjdE5hbWUpIHtcbiAgICAgIHRvcExldmVsRXZlbnRzVG9SZWFjdE5hbWVzLnNldChkb21FdmVudE5hbWUsIHJlYWN0TmFtZSk7XG4gICAgICByZWdpc3RlclR3b1BoYXNlRXZlbnQocmVhY3ROYW1lLCBbZG9tRXZlbnROYW1lXSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEFycmF5S2luZChhcnJheSkge1xuICAgICAgZm9yICh2YXIga2luZCA9IEVNUFRZX0FSUkFZLCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciB2YWx1ZSA9IGFycmF5W2ldO1xuICAgICAgICBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZW9mIHZhbHVlICYmIG51bGwgIT09IHZhbHVlKVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGlzQXJyYXlJbXBsKHZhbHVlKSAmJlxuICAgICAgICAgICAgMiA9PT0gdmFsdWUubGVuZ3RoICYmXG4gICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgdmFsdWVbMF1cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlmIChraW5kICE9PSBFTVBUWV9BUlJBWSAmJiBraW5kICE9PSBFTlRSSUVTX0FSUkFZKVxuICAgICAgICAgICAgICByZXR1cm4gQ09NUExFWF9BUlJBWTtcbiAgICAgICAgICAgIGtpbmQgPSBFTlRSSUVTX0FSUkFZO1xuICAgICAgICAgIH0gZWxzZSByZXR1cm4gQ09NUExFWF9BUlJBWTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdmFsdWUgfHxcbiAgICAgICAgICAgIChcInN0cmluZ1wiID09PSB0eXBlb2YgdmFsdWUgJiYgNTAgPCB2YWx1ZS5sZW5ndGgpIHx8XG4gICAgICAgICAgICAoa2luZCAhPT0gRU1QVFlfQVJSQVkgJiYga2luZCAhPT0gUFJJTUlUSVZFX0FSUkFZKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIHJldHVybiBDT01QTEVYX0FSUkFZO1xuICAgICAgICAgIGtpbmQgPSBQUklNSVRJVkVfQVJSQVk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBraW5kO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhZGRPYmplY3RUb1Byb3BlcnRpZXMob2JqZWN0LCBwcm9wZXJ0aWVzLCBpbmRlbnQsIHByZWZpeCkge1xuICAgICAgZm9yICh2YXIga2V5IGluIG9iamVjdClcbiAgICAgICAgaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIGtleSkgJiZcbiAgICAgICAgICBcIl9cIiAhPT0ga2V5WzBdICYmXG4gICAgICAgICAgYWRkVmFsdWVUb1Byb3BlcnRpZXMoa2V5LCBvYmplY3Rba2V5XSwgcHJvcGVydGllcywgaW5kZW50LCBwcmVmaXgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhZGRWYWx1ZVRvUHJvcGVydGllcyhcbiAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgcHJvcGVydGllcyxcbiAgICAgIGluZGVudCxcbiAgICAgIHByZWZpeFxuICAgICkge1xuICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgIGlmIChudWxsID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWUgPSBcIm51bGxcIjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodmFsdWUuJCR0eXBlb2YgPT09IFJFQUNUX0VMRU1FTlRfVFlQRSkge1xuICAgICAgICAgICAgICB2YXIgdHlwZU5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodmFsdWUudHlwZSkgfHwgXCJcXHUyMDI2XCIsXG4gICAgICAgICAgICAgICAga2V5ID0gdmFsdWUua2V5O1xuICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnByb3BzO1xuICAgICAgICAgICAgICB2YXIgcHJvcHNLZXlzID0gT2JqZWN0LmtleXModmFsdWUpLFxuICAgICAgICAgICAgICAgIHByb3BzTGVuZ3RoID0gcHJvcHNLZXlzLmxlbmd0aDtcbiAgICAgICAgICAgICAgaWYgKG51bGwgPT0ga2V5ICYmIDAgPT09IHByb3BzTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBcIjxcIiArIHR5cGVOYW1lICsgXCIgLz5cIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgMyA+IGluZGVudCB8fFxuICAgICAgICAgICAgICAgICgxID09PSBwcm9wc0xlbmd0aCAmJlxuICAgICAgICAgICAgICAgICAgXCJjaGlsZHJlblwiID09PSBwcm9wc0tleXNbMF0gJiZcbiAgICAgICAgICAgICAgICAgIG51bGwgPT0ga2V5KVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IFwiPFwiICsgdHlwZU5hbWUgKyBcIiBcXHUyMDI2IC8+XCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFtcbiAgICAgICAgICAgICAgICBwcmVmaXggKyBcIlxcdTAwYTBcXHUwMGEwXCIucmVwZWF0KGluZGVudCkgKyBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgXCI8XCIgKyB0eXBlTmFtZVxuICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgbnVsbCAhPT0ga2V5ICYmXG4gICAgICAgICAgICAgICAgYWRkVmFsdWVUb1Byb3BlcnRpZXMoXG4gICAgICAgICAgICAgICAgICBcImtleVwiLFxuICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICAgIGluZGVudCArIDEsXG4gICAgICAgICAgICAgICAgICBwcmVmaXhcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSAhMTtcbiAgICAgICAgICAgICAgZm9yICh2YXIgcHJvcEtleSBpbiB2YWx1ZSlcbiAgICAgICAgICAgICAgICBcImNoaWxkcmVuXCIgPT09IHByb3BLZXlcbiAgICAgICAgICAgICAgICAgID8gbnVsbCAhPSB2YWx1ZS5jaGlsZHJlbiAmJlxuICAgICAgICAgICAgICAgICAgICAoIWlzQXJyYXlJbXBsKHZhbHVlLmNoaWxkcmVuKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIDAgPCB2YWx1ZS5jaGlsZHJlbi5sZW5ndGgpICYmXG4gICAgICAgICAgICAgICAgICAgIChwcm9wZXJ0eU5hbWUgPSAhMClcbiAgICAgICAgICAgICAgICAgIDogaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgcHJvcEtleSkgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJfXCIgIT09IHByb3BLZXlbMF0gJiZcbiAgICAgICAgICAgICAgICAgICAgYWRkVmFsdWVUb1Byb3BlcnRpZXMoXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVtwcm9wS2V5XSxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgICAgICAgIGluZGVudCArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChbXG4gICAgICAgICAgICAgICAgXCJcIixcbiAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUgPyBcIj5cXHUyMDI2PC9cIiArIHR5cGVOYW1lICsgXCI+XCIgOiBcIi8+XCJcbiAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHR5cGVOYW1lID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICAgICAgICAgIHR5cGVOYW1lID0gdHlwZU5hbWUuc2xpY2UoOCwgdHlwZU5hbWUubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICBpZiAoXCJBcnJheVwiID09PSB0eXBlTmFtZSlcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICgocHJvcEtleSA9IGdldEFycmF5S2luZCh2YWx1ZSkpLFxuICAgICAgICAgICAgICAgIHByb3BLZXkgPT09IFBSSU1JVElWRV9BUlJBWSB8fCBwcm9wS2V5ID09PSBFTVBUWV9BUlJBWSlcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcEtleSA9PT0gRU5UUklFU19BUlJBWSkge1xuICAgICAgICAgICAgICAgIHByb3BlcnRpZXMucHVzaChbXG4gICAgICAgICAgICAgICAgICBwcmVmaXggKyBcIlxcdTAwYTBcXHUwMGEwXCIucmVwZWF0KGluZGVudCkgKyBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSA9IDA7XG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUgPCB2YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUrK1xuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICh0eXBlTmFtZSA9IHZhbHVlW3Byb3BlcnR5TmFtZV0pLFxuICAgICAgICAgICAgICAgICAgICBhZGRWYWx1ZVRvUHJvcGVydGllcyhcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlTmFtZVswXSxcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlTmFtZVsxXSxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgICAgICAgIGluZGVudCArIDEsXG4gICAgICAgICAgICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXCJQcm9taXNlXCIgPT09IHR5cGVOYW1lKSB7XG4gICAgICAgICAgICAgIGlmIChcImZ1bGZpbGxlZFwiID09PSB2YWx1ZS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAoKHR5cGVOYW1lID0gcHJvcGVydGllcy5sZW5ndGgpLFxuICAgICAgICAgICAgICAgICAgYWRkVmFsdWVUb1Byb3BlcnRpZXMoXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgICAgIGluZGVudCxcbiAgICAgICAgICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5sZW5ndGggPiB0eXBlTmFtZSlcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzW3R5cGVOYW1lXTtcbiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXNbMV0gPVxuICAgICAgICAgICAgICAgICAgICBcIlByb21pc2U8XCIgKyAocHJvcGVydGllc1sxXSB8fCBcIk9iamVjdFwiKSArIFwiPlwiO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBcInJlamVjdGVkXCIgPT09IHZhbHVlLnN0YXR1cyAmJlxuICAgICAgICAgICAgICAgICgodHlwZU5hbWUgPSBwcm9wZXJ0aWVzLmxlbmd0aCksXG4gICAgICAgICAgICAgICAgYWRkVmFsdWVUb1Byb3BlcnRpZXMoXG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgICB2YWx1ZS5yZWFzb24sXG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgICAgaW5kZW50LFxuICAgICAgICAgICAgICAgICAgcHJlZml4XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLmxlbmd0aCA+IHR5cGVOYW1lKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzID0gcHJvcGVydGllc1t0eXBlTmFtZV07XG4gICAgICAgICAgICAgICAgcHJvcGVydGllc1sxXSA9IFwiUmVqZWN0ZWQgUHJvbWlzZTxcIiArIHByb3BlcnRpZXNbMV0gKyBcIj5cIjtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFtcbiAgICAgICAgICAgICAgICBcIlxcdTAwYTBcXHUwMGEwXCIucmVwZWF0KGluZGVudCkgKyBwcm9wZXJ0eU5hbWUsXG4gICAgICAgICAgICAgICAgXCJQcm9taXNlXCJcbiAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFwiT2JqZWN0XCIgPT09IHR5cGVOYW1lICYmXG4gICAgICAgICAgICAgIChwcm9wS2V5ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHZhbHVlKSkgJiZcbiAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcHJvcEtleS5jb25zdHJ1Y3RvciAmJlxuICAgICAgICAgICAgICAodHlwZU5hbWUgPSBwcm9wS2V5LmNvbnN0cnVjdG9yLm5hbWUpO1xuICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFtcbiAgICAgICAgICAgICAgcHJlZml4ICsgXCJcXHUwMGEwXFx1MDBhMFwiLnJlcGVhdChpbmRlbnQpICsgcHJvcGVydHlOYW1lLFxuICAgICAgICAgICAgICBcIk9iamVjdFwiID09PSB0eXBlTmFtZSA/ICgzID4gaW5kZW50ID8gXCJcIiA6IFwiXFx1MjAyNlwiKSA6IHR5cGVOYW1lXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIDMgPiBpbmRlbnQgJiZcbiAgICAgICAgICAgICAgYWRkT2JqZWN0VG9Qcm9wZXJ0aWVzKHZhbHVlLCBwcm9wZXJ0aWVzLCBpbmRlbnQgKyAxLCBwcmVmaXgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgdmFsdWUgPSBcIlwiID09PSB2YWx1ZS5uYW1lID8gXCIoKSA9PiB7fVwiIDogdmFsdWUubmFtZSArIFwiKCkge31cIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgIHZhbHVlID1cbiAgICAgICAgICAgIHZhbHVlID09PSBPTUlUVEVEX1BST1BfRVJST1IgPyBcIlxcdTIwMjZcIiA6IEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInVuZGVmaW5lZFwiOlxuICAgICAgICAgIHZhbHVlID0gXCJ1bmRlZmluZWRcIjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlID8gXCJ0cnVlXCIgOiBcImZhbHNlXCI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgfVxuICAgICAgcHJvcGVydGllcy5wdXNoKFtcbiAgICAgICAgcHJlZml4ICsgXCJcXHUwMGEwXFx1MDBhMFwiLnJlcGVhdChpbmRlbnQpICsgcHJvcGVydHlOYW1lLFxuICAgICAgICB2YWx1ZVxuICAgICAgXSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFkZE9iamVjdERpZmZUb1Byb3BlcnRpZXMocHJldiwgbmV4dCwgcHJvcGVydGllcywgaW5kZW50KSB7XG4gICAgICB2YXIgaXNEZWVwbHlFcXVhbCA9ICEwO1xuICAgICAgZm9yIChrZXkgaW4gcHJldilcbiAgICAgICAga2V5IGluIG5leHQgfHxcbiAgICAgICAgICAocHJvcGVydGllcy5wdXNoKFtcbiAgICAgICAgICAgIFJFTU9WRUQgKyBcIlxcdTAwYTBcXHUwMGEwXCIucmVwZWF0KGluZGVudCkgKyBrZXksXG4gICAgICAgICAgICBcIlxcdTIwMjZcIlxuICAgICAgICAgIF0pLFxuICAgICAgICAgIChpc0RlZXBseUVxdWFsID0gITEpKTtcbiAgICAgIGZvciAodmFyIF9rZXkgaW4gbmV4dClcbiAgICAgICAgaWYgKF9rZXkgaW4gcHJldikge1xuICAgICAgICAgIHZhciBrZXkgPSBwcmV2W19rZXldO1xuICAgICAgICAgIHZhciBuZXh0VmFsdWUgPSBuZXh0W19rZXldO1xuICAgICAgICAgIGlmIChrZXkgIT09IG5leHRWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKDAgPT09IGluZGVudCAmJiBcImNoaWxkcmVuXCIgPT09IF9rZXkpXG4gICAgICAgICAgICAgIChpc0RlZXBseUVxdWFsID0gXCJcXHUwMGEwXFx1MDBhMFwiLnJlcGVhdChpbmRlbnQpICsgX2tleSksXG4gICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgW1JFTU9WRUQgKyBpc0RlZXBseUVxdWFsLCBcIlxcdTIwMjZcIl0sXG4gICAgICAgICAgICAgICAgICBbQURERUQgKyBpc0RlZXBseUVxdWFsLCBcIlxcdTIwMjZcIl1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGlmICghKDMgPD0gaW5kZW50KSlcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2Yga2V5ICYmXG4gICAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgbmV4dFZhbHVlICYmXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBrZXkgJiZcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IG5leHRWYWx1ZSAmJlxuICAgICAgICAgICAgICAgICAga2V5LiQkdHlwZW9mID09PSBuZXh0VmFsdWUuJCR0eXBlb2ZcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBpZiAobmV4dFZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgIGtleS50eXBlID09PSBuZXh0VmFsdWUudHlwZSAmJlxuICAgICAgICAgICAgICAgICAgICAgIGtleS5rZXkgPT09IG5leHRWYWx1ZS5rZXlcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAga2V5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShuZXh0VmFsdWUudHlwZSkgfHwgXCJcXHUyMDI2XCI7XG4gICAgICAgICAgICAgICAgICAgICAgaXNEZWVwbHlFcXVhbCA9IFwiXFx1MDBhMFxcdTAwYTBcIi5yZXBlYXQoaW5kZW50KSArIF9rZXk7XG4gICAgICAgICAgICAgICAgICAgICAga2V5ID0gXCI8XCIgKyBrZXkgKyBcIiBcXHUyMDI2IC8+XCI7XG4gICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgW1JFTU9WRUQgKyBpc0RlZXBseUVxdWFsLCBrZXldLFxuICAgICAgICAgICAgICAgICAgICAgICAgW0FEREVEICsgaXNEZWVwbHlFcXVhbCwga2V5XVxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgaXNEZWVwbHlFcXVhbCA9ICExO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcHJldktpbmQgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoa2V5KSxcbiAgICAgICAgICAgICAgICAgICAgICBuZXh0S2luZCA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXh0VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgcHJldktpbmQgPT09IG5leHRLaW5kICYmXG4gICAgICAgICAgICAgICAgICAgICAgKFwiW29iamVjdCBPYmplY3RdXCIgPT09IG5leHRLaW5kIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBcIltvYmplY3QgQXJyYXldXCIgPT09IG5leHRLaW5kKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICBwcmV2S2luZCA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFVOQ0hBTkdFRCArIFwiXFx1MDBhMFxcdTAwYTBcIi5yZXBlYXQoaW5kZW50KSArIF9rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBcIltvYmplY3QgQXJyYXldXCIgPT09IG5leHRLaW5kID8gXCJBcnJheVwiIDogXCJcIlxuICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKHByZXZLaW5kKTtcbiAgICAgICAgICAgICAgICAgICAgICBuZXh0S2luZCA9IHByb3BlcnRpZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgIGFkZE9iamVjdERpZmZUb1Byb3BlcnRpZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZW50ICsgMVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbmV4dEtpbmQgPT09IHByb3BlcnRpZXMubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChwcmV2S2luZFsxXSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJSZWZlcmVudGlhbGx5IHVuZXF1YWwgYnV0IGRlZXBseSBlcXVhbCBvYmplY3RzLiBDb25zaWRlciBtZW1vaXphdGlvbi5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgIDogKGlzRGVlcGx5RXF1YWwgPSAhMSk7XG4gICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGtleSAmJlxuICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV4dFZhbHVlICYmXG4gICAgICAgICAgICAgICAgICBrZXkubmFtZSA9PT0gbmV4dFZhbHVlLm5hbWUgJiZcbiAgICAgICAgICAgICAgICAgIGtleS5sZW5ndGggPT09IG5leHRWYWx1ZS5sZW5ndGggJiZcbiAgICAgICAgICAgICAgICAgICgocHJldktpbmQgPSBGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChrZXkpKSxcbiAgICAgICAgICAgICAgICAgIChuZXh0S2luZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG5leHRWYWx1ZSkpLFxuICAgICAgICAgICAgICAgICAgcHJldktpbmQgPT09IG5leHRLaW5kKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAga2V5ID1cbiAgICAgICAgICAgICAgICAgICAgXCJcIiA9PT0gbmV4dFZhbHVlLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiKCkgPT4ge31cIlxuICAgICAgICAgICAgICAgICAgICAgIDogbmV4dFZhbHVlLm5hbWUgKyBcIigpIHt9XCI7XG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2goW1xuICAgICAgICAgICAgICAgICAgICBVTkNIQU5HRUQgKyBcIlxcdTAwYTBcXHUwMGEwXCIucmVwZWF0KGluZGVudCkgKyBfa2V5LFxuICAgICAgICAgICAgICAgICAgICBrZXkgK1xuICAgICAgICAgICAgICAgICAgICAgIFwiIFJlZmVyZW50aWFsbHkgdW5lcXVhbCBmdW5jdGlvbiBjbG9zdXJlLiBDb25zaWRlciBtZW1vaXphdGlvbi5cIlxuICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGFkZFZhbHVlVG9Qcm9wZXJ0aWVzKF9rZXksIGtleSwgcHJvcGVydGllcywgaW5kZW50LCBSRU1PVkVEKTtcbiAgICAgICAgICAgICAgYWRkVmFsdWVUb1Byb3BlcnRpZXMoX2tleSwgbmV4dFZhbHVlLCBwcm9wZXJ0aWVzLCBpbmRlbnQsIEFEREVEKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlzRGVlcGx5RXF1YWwgPSAhMTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIHByb3BlcnRpZXMucHVzaChbXG4gICAgICAgICAgICBBRERFRCArIFwiXFx1MDBhMFxcdTAwYTBcIi5yZXBlYXQoaW5kZW50KSArIF9rZXksXG4gICAgICAgICAgICBcIlxcdTIwMjZcIlxuICAgICAgICAgIF0pLFxuICAgICAgICAgICAgKGlzRGVlcGx5RXF1YWwgPSAhMSk7XG4gICAgICByZXR1cm4gaXNEZWVwbHlFcXVhbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2V0Q3VycmVudFRyYWNrRnJvbUxhbmVzKGxhbmVzKSB7XG4gICAgICBjdXJyZW50VHJhY2sgPVxuICAgICAgICBsYW5lcyAmIDYzXG4gICAgICAgICAgPyBcIkJsb2NraW5nXCJcbiAgICAgICAgICA6IGxhbmVzICYgNjRcbiAgICAgICAgICAgID8gXCJHZXN0dXJlXCJcbiAgICAgICAgICAgIDogbGFuZXMgJiA0MTk0MTc2XG4gICAgICAgICAgICAgID8gXCJUcmFuc2l0aW9uXCJcbiAgICAgICAgICAgICAgOiBsYW5lcyAmIDYyOTE0NTYwXG4gICAgICAgICAgICAgICAgPyBcIlN1c3BlbnNlXCJcbiAgICAgICAgICAgICAgICA6IGxhbmVzICYgMjA4MDM3NDc4NFxuICAgICAgICAgICAgICAgICAgPyBcIklkbGVcIlxuICAgICAgICAgICAgICAgICAgOiBcIk90aGVyXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZ0NvbXBvbmVudFRyaWdnZXIoZmliZXIsIHN0YXJ0VGltZSwgZW5kVGltZSwgdHJpZ2dlcikge1xuICAgICAgc3VwcG9ydHNVc2VyVGltaW5nICYmXG4gICAgICAgICgocmV1c2FibGVDb21wb25lbnRPcHRpb25zLnN0YXJ0ID0gc3RhcnRUaW1lKSxcbiAgICAgICAgKHJldXNhYmxlQ29tcG9uZW50T3B0aW9ucy5lbmQgPSBlbmRUaW1lKSxcbiAgICAgICAgKHJldXNhYmxlQ29tcG9uZW50RGV2VG9vbERldGFpbHMuY29sb3IgPSBcIndhcm5pbmdcIiksXG4gICAgICAgIChyZXVzYWJsZUNvbXBvbmVudERldlRvb2xEZXRhaWxzLnRvb2x0aXBUZXh0ID0gdHJpZ2dlciksXG4gICAgICAgIChyZXVzYWJsZUNvbXBvbmVudERldlRvb2xEZXRhaWxzLnByb3BlcnRpZXMgPSBudWxsKSxcbiAgICAgICAgKGZpYmVyID0gZmliZXIuX2RlYnVnVGFzaylcbiAgICAgICAgICA/IGZpYmVyLnJ1bihcbiAgICAgICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZS5iaW5kKFxuICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLFxuICAgICAgICAgICAgICAgIHRyaWdnZXIsXG4gICAgICAgICAgICAgICAgcmV1c2FibGVDb21wb25lbnRPcHRpb25zXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IHBlcmZvcm1hbmNlLm1lYXN1cmUodHJpZ2dlciwgcmV1c2FibGVDb21wb25lbnRPcHRpb25zKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZ0NvbXBvbmVudFJlYXBwZWFyZWQoZmliZXIsIHN0YXJ0VGltZSwgZW5kVGltZSkge1xuICAgICAgbG9nQ29tcG9uZW50VHJpZ2dlcihmaWJlciwgc3RhcnRUaW1lLCBlbmRUaW1lLCBcIlJlY29ubmVjdFwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbG9nQ29tcG9uZW50UmVuZGVyKFxuICAgICAgZmliZXIsXG4gICAgICBzdGFydFRpbWUsXG4gICAgICBlbmRUaW1lLFxuICAgICAgd2FzSHlkcmF0ZWQsXG4gICAgICBjb21taXR0ZWRMYW5lc1xuICAgICkge1xuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKTtcbiAgICAgIGlmIChudWxsICE9PSBuYW1lICYmIHN1cHBvcnRzVXNlclRpbWluZykge1xuICAgICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlLFxuICAgICAgICAgIHNlbGZUaW1lID0gZmliZXIuYWN0dWFsRHVyYXRpb247XG4gICAgICAgIGlmIChudWxsID09PSBhbHRlcm5hdGUgfHwgYWx0ZXJuYXRlLmNoaWxkICE9PSBmaWJlci5jaGlsZClcbiAgICAgICAgICBmb3IgKHZhciBjaGlsZCA9IGZpYmVyLmNoaWxkOyBudWxsICE9PSBjaGlsZDsgY2hpbGQgPSBjaGlsZC5zaWJsaW5nKVxuICAgICAgICAgICAgc2VsZlRpbWUgLT0gY2hpbGQuYWN0dWFsRHVyYXRpb247XG4gICAgICAgIHdhc0h5ZHJhdGVkID1cbiAgICAgICAgICAwLjUgPiBzZWxmVGltZVxuICAgICAgICAgICAgPyB3YXNIeWRyYXRlZFxuICAgICAgICAgICAgICA/IFwidGVydGlhcnktbGlnaHRcIlxuICAgICAgICAgICAgICA6IFwicHJpbWFyeS1saWdodFwiXG4gICAgICAgICAgICA6IDEwID4gc2VsZlRpbWVcbiAgICAgICAgICAgICAgPyB3YXNIeWRyYXRlZFxuICAgICAgICAgICAgICAgID8gXCJ0ZXJ0aWFyeVwiXG4gICAgICAgICAgICAgICAgOiBcInByaW1hcnlcIlxuICAgICAgICAgICAgICA6IDEwMCA+IHNlbGZUaW1lXG4gICAgICAgICAgICAgICAgPyB3YXNIeWRyYXRlZFxuICAgICAgICAgICAgICAgICAgPyBcInRlcnRpYXJ5LWRhcmtcIlxuICAgICAgICAgICAgICAgICAgOiBcInByaW1hcnktZGFya1wiXG4gICAgICAgICAgICAgICAgOiBcImVycm9yXCI7XG4gICAgICAgIHZhciBwcm9wcyA9IGZpYmVyLm1lbW9pemVkUHJvcHM7XG4gICAgICAgIHNlbGZUaW1lID0gZmliZXIuX2RlYnVnVGFzaztcbiAgICAgICAgbnVsbCAhPT0gcHJvcHMgJiZcbiAgICAgICAgbnVsbCAhPT0gYWx0ZXJuYXRlICYmXG4gICAgICAgIGFsdGVybmF0ZS5tZW1vaXplZFByb3BzICE9PSBwcm9wc1xuICAgICAgICAgID8gKChjaGlsZCA9IFtyZXN1YWJsZUNoYW5nZWRQcm9wc0VudHJ5XSksXG4gICAgICAgICAgICAocHJvcHMgPSBhZGRPYmplY3REaWZmVG9Qcm9wZXJ0aWVzKFxuICAgICAgICAgICAgICBhbHRlcm5hdGUubWVtb2l6ZWRQcm9wcyxcbiAgICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICAgIGNoaWxkLFxuICAgICAgICAgICAgICAwXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgIDEgPCBjaGlsZC5sZW5ndGggJiZcbiAgICAgICAgICAgICAgKHByb3BzICYmXG4gICAgICAgICAgICAgICFhbHJlYWR5V2FybmVkRm9yRGVlcEVxdWFsaXR5ICYmXG4gICAgICAgICAgICAgIDAgPT09IChhbHRlcm5hdGUubGFuZXMgJiBjb21taXR0ZWRMYW5lcykgJiZcbiAgICAgICAgICAgICAgMTAwIDwgZmliZXIuYWN0dWFsRHVyYXRpb25cbiAgICAgICAgICAgICAgICA/ICgoYWxyZWFkeVdhcm5lZEZvckRlZXBFcXVhbGl0eSA9ICEwKSxcbiAgICAgICAgICAgICAgICAgIChjaGlsZFswXSA9IHJldXNhYmxlRGVlcGx5RXF1YWxQcm9wc0VudHJ5KSxcbiAgICAgICAgICAgICAgICAgIChyZXVzYWJsZUNvbXBvbmVudERldlRvb2xEZXRhaWxzLmNvbG9yID0gXCJ3YXJuaW5nXCIpLFxuICAgICAgICAgICAgICAgICAgKHJldXNhYmxlQ29tcG9uZW50RGV2VG9vbERldGFpbHMudG9vbHRpcFRleHQgPVxuICAgICAgICAgICAgICAgICAgICBERUVQX0VRVUFMSVRZX1dBUk5JTkcpKVxuICAgICAgICAgICAgICAgIDogKChyZXVzYWJsZUNvbXBvbmVudERldlRvb2xEZXRhaWxzLmNvbG9yID0gd2FzSHlkcmF0ZWQpLFxuICAgICAgICAgICAgICAgICAgKHJldXNhYmxlQ29tcG9uZW50RGV2VG9vbERldGFpbHMudG9vbHRpcFRleHQgPSBuYW1lKSksXG4gICAgICAgICAgICAgIChyZXVzYWJsZUNvbXBvbmVudERldlRvb2xEZXRhaWxzLnByb3BlcnRpZXMgPSBjaGlsZCksXG4gICAgICAgICAgICAgIChyZXVzYWJsZUNvbXBvbmVudE9wdGlvbnMuc3RhcnQgPSBzdGFydFRpbWUpLFxuICAgICAgICAgICAgICAocmV1c2FibGVDb21wb25lbnRPcHRpb25zLmVuZCA9IGVuZFRpbWUpLFxuICAgICAgICAgICAgICBudWxsICE9IHNlbGZUaW1lXG4gICAgICAgICAgICAgICAgPyBzZWxmVGltZS5ydW4oXG4gICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUuYmluZChcbiAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlxcdTIwMGJcIiArIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgcmV1c2FibGVDb21wb25lbnRPcHRpb25zXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IHBlcmZvcm1hbmNlLm1lYXN1cmUoXG4gICAgICAgICAgICAgICAgICAgIFwiXFx1MjAwYlwiICsgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgcmV1c2FibGVDb21wb25lbnRPcHRpb25zXG4gICAgICAgICAgICAgICAgICApKSlcbiAgICAgICAgICA6IG51bGwgIT0gc2VsZlRpbWVcbiAgICAgICAgICAgID8gc2VsZlRpbWUucnVuKFxuICAgICAgICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgIGVuZFRpbWUsXG4gICAgICAgICAgICAgICAgICBDT01QT05FTlRTX1RSQUNLLFxuICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgd2FzSHlkcmF0ZWRcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogY29uc29sZS50aW1lU3RhbXAoXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgZW5kVGltZSxcbiAgICAgICAgICAgICAgICBDT01QT05FTlRTX1RSQUNLLFxuICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICB3YXNIeWRyYXRlZFxuICAgICAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBsb2dDb21wb25lbnRFcnJvcmVkKGZpYmVyLCBzdGFydFRpbWUsIGVuZFRpbWUsIGVycm9ycykge1xuICAgICAgaWYgKHN1cHBvcnRzVXNlclRpbWluZykge1xuICAgICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpO1xuICAgICAgICBpZiAobnVsbCAhPT0gbmFtZSkge1xuICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICB2YXIgZGVidWdUYXNrID0gbnVsbCwgcHJvcGVydGllcyA9IFtdLCBpID0gMDtcbiAgICAgICAgICAgIGkgPCBlcnJvcnMubGVuZ3RoO1xuICAgICAgICAgICAgaSsrXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB2YXIgY2FwdHVyZWRWYWx1ZSA9IGVycm9yc1tpXTtcbiAgICAgICAgICAgIG51bGwgPT0gZGVidWdUYXNrICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IGNhcHR1cmVkVmFsdWUuc291cmNlICYmXG4gICAgICAgICAgICAgIChkZWJ1Z1Rhc2sgPSBjYXB0dXJlZFZhbHVlLnNvdXJjZS5fZGVidWdUYXNrKTtcbiAgICAgICAgICAgIGNhcHR1cmVkVmFsdWUgPSBjYXB0dXJlZFZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgcHJvcGVydGllcy5wdXNoKFtcbiAgICAgICAgICAgICAgXCJFcnJvclwiLFxuICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgY2FwdHVyZWRWYWx1ZSAmJlxuICAgICAgICAgICAgICBudWxsICE9PSBjYXB0dXJlZFZhbHVlICYmXG4gICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBjYXB0dXJlZFZhbHVlLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICA/IFN0cmluZyhjYXB0dXJlZFZhbHVlLm1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgOiBTdHJpbmcoY2FwdHVyZWRWYWx1ZSlcbiAgICAgICAgICAgIF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBudWxsICE9PSBmaWJlci5rZXkgJiZcbiAgICAgICAgICAgIGFkZFZhbHVlVG9Qcm9wZXJ0aWVzKFwia2V5XCIsIGZpYmVyLmtleSwgcHJvcGVydGllcywgMCwgXCJcIik7XG4gICAgICAgICAgbnVsbCAhPT0gZmliZXIubWVtb2l6ZWRQcm9wcyAmJlxuICAgICAgICAgICAgYWRkT2JqZWN0VG9Qcm9wZXJ0aWVzKGZpYmVyLm1lbW9pemVkUHJvcHMsIHByb3BlcnRpZXMsIDAsIFwiXCIpO1xuICAgICAgICAgIG51bGwgPT0gZGVidWdUYXNrICYmIChkZWJ1Z1Rhc2sgPSBmaWJlci5fZGVidWdUYXNrKTtcbiAgICAgICAgICBmaWJlciA9IHtcbiAgICAgICAgICAgIHN0YXJ0OiBzdGFydFRpbWUsXG4gICAgICAgICAgICBlbmQ6IGVuZFRpbWUsXG4gICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgZGV2dG9vbHM6IHtcbiAgICAgICAgICAgICAgICBjb2xvcjogXCJlcnJvclwiLFxuICAgICAgICAgICAgICAgIHRyYWNrOiBDT01QT05FTlRTX1RSQUNLLFxuICAgICAgICAgICAgICAgIHRvb2x0aXBUZXh0OlxuICAgICAgICAgICAgICAgICAgMTMgPT09IGZpYmVyLnRhZ1xuICAgICAgICAgICAgICAgICAgICA/IFwiSHlkcmF0aW9uIGZhaWxlZFwiXG4gICAgICAgICAgICAgICAgICAgIDogXCJFcnJvciBib3VuZGFyeSBjYXVnaHQgYW4gZXJyb3JcIixcbiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9O1xuICAgICAgICAgIGRlYnVnVGFza1xuICAgICAgICAgICAgPyBkZWJ1Z1Rhc2sucnVuKFxuICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUuYmluZChwZXJmb3JtYW5jZSwgXCJcXHUyMDBiXCIgKyBuYW1lLCBmaWJlcilcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBwZXJmb3JtYW5jZS5tZWFzdXJlKFwiXFx1MjAwYlwiICsgbmFtZSwgZmliZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZ0NvbXBvbmVudEVmZmVjdChmaWJlciwgc3RhcnRUaW1lLCBlbmRUaW1lLCBzZWxmVGltZSwgZXJyb3JzKSB7XG4gICAgICBpZiAobnVsbCAhPT0gZXJyb3JzKSB7XG4gICAgICAgIGlmIChzdXBwb3J0c1VzZXJUaW1pbmcpIHtcbiAgICAgICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpO1xuICAgICAgICAgIGlmIChudWxsICE9PSBuYW1lKSB7XG4gICAgICAgICAgICBzZWxmVGltZSA9IFtdO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlcnJvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgdmFyIGVycm9yID0gZXJyb3JzW2ldLnZhbHVlO1xuICAgICAgICAgICAgICBzZWxmVGltZS5wdXNoKFtcbiAgICAgICAgICAgICAgICBcIkVycm9yXCIsXG4gICAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGVycm9yICYmXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gZXJyb3IgJiZcbiAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgZXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgICAgPyBTdHJpbmcoZXJyb3IubWVzc2FnZSlcbiAgICAgICAgICAgICAgICAgIDogU3RyaW5nKGVycm9yKVxuICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG51bGwgIT09IGZpYmVyLmtleSAmJlxuICAgICAgICAgICAgICBhZGRWYWx1ZVRvUHJvcGVydGllcyhcImtleVwiLCBmaWJlci5rZXksIHNlbGZUaW1lLCAwLCBcIlwiKTtcbiAgICAgICAgICAgIG51bGwgIT09IGZpYmVyLm1lbW9pemVkUHJvcHMgJiZcbiAgICAgICAgICAgICAgYWRkT2JqZWN0VG9Qcm9wZXJ0aWVzKGZpYmVyLm1lbW9pemVkUHJvcHMsIHNlbGZUaW1lLCAwLCBcIlwiKTtcbiAgICAgICAgICAgIHN0YXJ0VGltZSA9IHtcbiAgICAgICAgICAgICAgc3RhcnQ6IHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgZW5kOiBlbmRUaW1lLFxuICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICBkZXZ0b29sczoge1xuICAgICAgICAgICAgICAgICAgY29sb3I6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgICAgIHRyYWNrOiBDT01QT05FTlRTX1RSQUNLLFxuICAgICAgICAgICAgICAgICAgdG9vbHRpcFRleHQ6IFwiQSBsaWZlY3ljbGUgb3IgZWZmZWN0IGVycm9yZWRcIixcbiAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHNlbGZUaW1lXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgKGZpYmVyID0gZmliZXIuX2RlYnVnVGFzaylcbiAgICAgICAgICAgICAgPyBmaWJlci5ydW4oXG4gICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZS5tZWFzdXJlLmJpbmQoXG4gICAgICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLFxuICAgICAgICAgICAgICAgICAgICBcIlxcdTIwMGJcIiArIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBwZXJmb3JtYW5jZS5tZWFzdXJlKFwiXFx1MjAwYlwiICsgbmFtZSwgc3RhcnRUaW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZVxuICAgICAgICAobmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpKSxcbiAgICAgICAgICBudWxsICE9PSBuYW1lICYmXG4gICAgICAgICAgICBzdXBwb3J0c1VzZXJUaW1pbmcgJiZcbiAgICAgICAgICAgICgoZXJyb3JzID1cbiAgICAgICAgICAgICAgMSA+IHNlbGZUaW1lXG4gICAgICAgICAgICAgICAgPyBcInNlY29uZGFyeS1saWdodFwiXG4gICAgICAgICAgICAgICAgOiAxMDAgPiBzZWxmVGltZVxuICAgICAgICAgICAgICAgICAgPyBcInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICA6IDUwMCA+IHNlbGZUaW1lXG4gICAgICAgICAgICAgICAgICAgID8gXCJzZWNvbmRhcnktZGFya1wiXG4gICAgICAgICAgICAgICAgICAgIDogXCJlcnJvclwiKSxcbiAgICAgICAgICAgIChmaWJlciA9IGZpYmVyLl9kZWJ1Z1Rhc2spXG4gICAgICAgICAgICAgID8gZmliZXIucnVuKFxuICAgICAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZChcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZSxcbiAgICAgICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgICBDT01QT05FTlRTX1RSQUNLLFxuICAgICAgICAgICAgICAgICAgICB2b2lkIDAsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yc1xuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBjb25zb2xlLnRpbWVTdGFtcChcbiAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgQ09NUE9ORU5UU19UUkFDSyxcbiAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgIGVycm9yc1xuICAgICAgICAgICAgICAgICkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb2dSZW5kZXJQaGFzZShzdGFydFRpbWUsIGVuZFRpbWUsIGxhbmVzLCBkZWJ1Z1Rhc2spIHtcbiAgICAgIGlmIChzdXBwb3J0c1VzZXJUaW1pbmcgJiYgIShlbmRUaW1lIDw9IHN0YXJ0VGltZSkpIHtcbiAgICAgICAgdmFyIGNvbG9yID1cbiAgICAgICAgICAobGFuZXMgJiA3MzgxOTc2NTMpID09PSBsYW5lcyA/IFwidGVydGlhcnktZGFya1wiIDogXCJwcmltYXJ5LWRhcmtcIjtcbiAgICAgICAgbGFuZXMgPVxuICAgICAgICAgIChsYW5lcyAmIDUzNjg3MDkxMikgPT09IGxhbmVzXG4gICAgICAgICAgICA/IFwiUHJlcGFyZWRcIlxuICAgICAgICAgICAgOiAobGFuZXMgJiAyMDEzMjY3NDEpID09PSBsYW5lc1xuICAgICAgICAgICAgICA/IFwiSHlkcmF0ZWRcIlxuICAgICAgICAgICAgICA6IFwiUmVuZGVyXCI7XG4gICAgICAgIGRlYnVnVGFza1xuICAgICAgICAgID8gZGVidWdUYXNrLnJ1bihcbiAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZChcbiAgICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICBjb2xvclxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBjb25zb2xlLnRpbWVTdGFtcChcbiAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgZW5kVGltZSxcbiAgICAgICAgICAgICAgY3VycmVudFRyYWNrLFxuICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgY29sb3JcbiAgICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZ1N1c3BlbmRlZFJlbmRlclBoYXNlKHN0YXJ0VGltZSwgZW5kVGltZSwgbGFuZXMsIGRlYnVnVGFzaykge1xuICAgICAgIXN1cHBvcnRzVXNlclRpbWluZyB8fFxuICAgICAgICBlbmRUaW1lIDw9IHN0YXJ0VGltZSB8fFxuICAgICAgICAoKGxhbmVzID1cbiAgICAgICAgICAobGFuZXMgJiA3MzgxOTc2NTMpID09PSBsYW5lcyA/IFwidGVydGlhcnktZGFya1wiIDogXCJwcmltYXJ5LWRhcmtcIiksXG4gICAgICAgIGRlYnVnVGFza1xuICAgICAgICAgID8gZGVidWdUYXNrLnJ1bihcbiAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZChcbiAgICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAgIFwiUHJld2FybVwiLFxuICAgICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBjb25zb2xlLnRpbWVTdGFtcChcbiAgICAgICAgICAgICAgXCJQcmV3YXJtXCIsXG4gICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgZW5kVGltZSxcbiAgICAgICAgICAgICAgY3VycmVudFRyYWNrLFxuICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb2dTdXNwZW5kZWRXaXRoRGVsYXlQaGFzZShzdGFydFRpbWUsIGVuZFRpbWUsIGxhbmVzLCBkZWJ1Z1Rhc2spIHtcbiAgICAgICFzdXBwb3J0c1VzZXJUaW1pbmcgfHxcbiAgICAgICAgZW5kVGltZSA8PSBzdGFydFRpbWUgfHxcbiAgICAgICAgKChsYW5lcyA9XG4gICAgICAgICAgKGxhbmVzICYgNzM4MTk3NjUzKSA9PT0gbGFuZXMgPyBcInRlcnRpYXJ5LWRhcmtcIiA6IFwicHJpbWFyeS1kYXJrXCIpLFxuICAgICAgICBkZWJ1Z1Rhc2tcbiAgICAgICAgICA/IGRlYnVnVGFzay5ydW4oXG4gICAgICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoXG4gICAgICAgICAgICAgICAgY29uc29sZSxcbiAgICAgICAgICAgICAgICBcIlN1c3BlbmRlZFwiLFxuICAgICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBjb25zb2xlLnRpbWVTdGFtcChcbiAgICAgICAgICAgICAgXCJTdXNwZW5kZWRcIixcbiAgICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLFxuICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZ1JlY292ZXJlZFJlbmRlclBoYXNlKFxuICAgICAgc3RhcnRUaW1lLFxuICAgICAgZW5kVGltZSxcbiAgICAgIGxhbmVzLFxuICAgICAgcmVjb3ZlcmFibGVFcnJvcnMsXG4gICAgICBoeWRyYXRpb25GYWlsZWQsXG4gICAgICBkZWJ1Z1Rhc2tcbiAgICApIHtcbiAgICAgIGlmIChzdXBwb3J0c1VzZXJUaW1pbmcgJiYgIShlbmRUaW1lIDw9IHN0YXJ0VGltZSkpIHtcbiAgICAgICAgbGFuZXMgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvdmVyYWJsZUVycm9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBlcnJvciA9IHJlY292ZXJhYmxlRXJyb3JzW2ldLnZhbHVlO1xuICAgICAgICAgIGxhbmVzLnB1c2goW1xuICAgICAgICAgICAgXCJSZWNvdmVyYWJsZSBFcnJvclwiLFxuICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGVycm9yICYmXG4gICAgICAgICAgICBudWxsICE9PSBlcnJvciAmJlxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGVycm9yLm1lc3NhZ2VcbiAgICAgICAgICAgICAgPyBTdHJpbmcoZXJyb3IubWVzc2FnZSlcbiAgICAgICAgICAgICAgOiBTdHJpbmcoZXJyb3IpXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgICAgc3RhcnRUaW1lID0ge1xuICAgICAgICAgIHN0YXJ0OiBzdGFydFRpbWUsXG4gICAgICAgICAgZW5kOiBlbmRUaW1lLFxuICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgZGV2dG9vbHM6IHtcbiAgICAgICAgICAgICAgY29sb3I6IFwicHJpbWFyeS1kYXJrXCIsXG4gICAgICAgICAgICAgIHRyYWNrOiBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgIHRyYWNrR3JvdXA6IExBTkVTX1RSQUNLX0dST1VQLFxuICAgICAgICAgICAgICB0b29sdGlwVGV4dDogaHlkcmF0aW9uRmFpbGVkXG4gICAgICAgICAgICAgICAgPyBcIkh5ZHJhdGlvbiBGYWlsZWRcIlxuICAgICAgICAgICAgICAgIDogXCJSZWNvdmVyZWQgYWZ0ZXIgRXJyb3JcIixcbiAgICAgICAgICAgICAgcHJvcGVydGllczogbGFuZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGRlYnVnVGFza1xuICAgICAgICAgID8gZGVidWdUYXNrLnJ1bihcbiAgICAgICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZS5iaW5kKHBlcmZvcm1hbmNlLCBcIlJlY292ZXJlZFwiLCBzdGFydFRpbWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBwZXJmb3JtYW5jZS5tZWFzdXJlKFwiUmVjb3ZlcmVkXCIsIHN0YXJ0VGltZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZ0Vycm9yZWRSZW5kZXJQaGFzZShzdGFydFRpbWUsIGVuZFRpbWUsIGxhbmVzLCBkZWJ1Z1Rhc2spIHtcbiAgICAgICFzdXBwb3J0c1VzZXJUaW1pbmcgfHxcbiAgICAgICAgZW5kVGltZSA8PSBzdGFydFRpbWUgfHxcbiAgICAgICAgKGRlYnVnVGFza1xuICAgICAgICAgID8gZGVidWdUYXNrLnJ1bihcbiAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZChcbiAgICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAgIFwiRXJyb3JlZFwiLFxuICAgICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICBcImVycm9yXCJcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogY29uc29sZS50aW1lU3RhbXAoXG4gICAgICAgICAgICAgIFwiRXJyb3JlZFwiLFxuICAgICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICAgIGVuZFRpbWUsXG4gICAgICAgICAgICAgIGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgICAgIFwiZXJyb3JcIlxuICAgICAgICAgICAgKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZ1N1c3BlbmRlZENvbW1pdFBoYXNlKHN0YXJ0VGltZSwgZW5kVGltZSwgcmVhc29uLCBkZWJ1Z1Rhc2spIHtcbiAgICAgICFzdXBwb3J0c1VzZXJUaW1pbmcgfHxcbiAgICAgICAgZW5kVGltZSA8PSBzdGFydFRpbWUgfHxcbiAgICAgICAgKGRlYnVnVGFza1xuICAgICAgICAgID8gZGVidWdUYXNrLnJ1bihcbiAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZChcbiAgICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAgIHJlYXNvbixcbiAgICAgICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgZW5kVGltZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgICAgICAgXCJzZWNvbmRhcnktbGlnaHRcIlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBjb25zb2xlLnRpbWVTdGFtcChcbiAgICAgICAgICAgICAgcmVhc29uLFxuICAgICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICAgIGVuZFRpbWUsXG4gICAgICAgICAgICAgIGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgICAgIFwic2Vjb25kYXJ5LWxpZ2h0XCJcbiAgICAgICAgICAgICkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBsb2dDb21taXRFcnJvcmVkKHN0YXJ0VGltZSwgZW5kVGltZSwgZXJyb3JzLCBwYXNzaXZlLCBkZWJ1Z1Rhc2spIHtcbiAgICAgIGlmIChzdXBwb3J0c1VzZXJUaW1pbmcgJiYgIShlbmRUaW1lIDw9IHN0YXJ0VGltZSkpIHtcbiAgICAgICAgZm9yICh2YXIgcHJvcGVydGllcyA9IFtdLCBpID0gMDsgaSA8IGVycm9ycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciBlcnJvciA9IGVycm9yc1tpXS52YWx1ZTtcbiAgICAgICAgICBwcm9wZXJ0aWVzLnB1c2goW1xuICAgICAgICAgICAgXCJFcnJvclwiLFxuICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGVycm9yICYmXG4gICAgICAgICAgICBudWxsICE9PSBlcnJvciAmJlxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGVycm9yLm1lc3NhZ2VcbiAgICAgICAgICAgICAgPyBTdHJpbmcoZXJyb3IubWVzc2FnZSlcbiAgICAgICAgICAgICAgOiBTdHJpbmcoZXJyb3IpXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgICAgc3RhcnRUaW1lID0ge1xuICAgICAgICAgIHN0YXJ0OiBzdGFydFRpbWUsXG4gICAgICAgICAgZW5kOiBlbmRUaW1lLFxuICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgZGV2dG9vbHM6IHtcbiAgICAgICAgICAgICAgY29sb3I6IFwiZXJyb3JcIixcbiAgICAgICAgICAgICAgdHJhY2s6IGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgdHJhY2tHcm91cDogTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgICAgIHRvb2x0aXBUZXh0OiBwYXNzaXZlXG4gICAgICAgICAgICAgICAgPyBcIlJlbWFpbmluZyBFZmZlY3RzIEVycm9yZWRcIlxuICAgICAgICAgICAgICAgIDogXCJDb21taXQgRXJyb3JlZFwiLFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBkZWJ1Z1Rhc2tcbiAgICAgICAgICA/IGRlYnVnVGFzay5ydW4oXG4gICAgICAgICAgICAgIHBlcmZvcm1hbmNlLm1lYXN1cmUuYmluZChwZXJmb3JtYW5jZSwgXCJFcnJvcmVkXCIsIHN0YXJ0VGltZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IHBlcmZvcm1hbmNlLm1lYXN1cmUoXCJFcnJvcmVkXCIsIHN0YXJ0VGltZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxvZ0FuaW1hdGluZ1BoYXNlKHN0YXJ0VGltZSwgZW5kVGltZSwgZGVidWdUYXNrKSB7XG4gICAgICAhc3VwcG9ydHNVc2VyVGltaW5nIHx8XG4gICAgICAgIGVuZFRpbWUgPD0gc3RhcnRUaW1lIHx8XG4gICAgICAgIChkZWJ1Z1Rhc2tcbiAgICAgICAgICA/IGRlYnVnVGFzay5ydW4oXG4gICAgICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoXG4gICAgICAgICAgICAgICAgY29uc29sZSxcbiAgICAgICAgICAgICAgICBcIkFuaW1hdGluZ1wiLFxuICAgICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICBcInNlY29uZGFyeS1kYXJrXCJcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogY29uc29sZS50aW1lU3RhbXAoXG4gICAgICAgICAgICAgIFwiQW5pbWF0aW5nXCIsXG4gICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgZW5kVGltZSxcbiAgICAgICAgICAgICAgY3VycmVudFRyYWNrLFxuICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgXCJzZWNvbmRhcnktZGFya1wiXG4gICAgICAgICAgICApKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmluaXNoUXVldWVpbmdDb25jdXJyZW50VXBkYXRlcygpIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciBlbmRJbmRleCA9IGNvbmN1cnJlbnRRdWV1ZXNJbmRleCxcbiAgICAgICAgICBpID0gKGNvbmN1cnJlbnRseVVwZGF0ZWRMYW5lcyA9IGNvbmN1cnJlbnRRdWV1ZXNJbmRleCA9IDApO1xuICAgICAgICBpIDwgZW5kSW5kZXg7XG5cbiAgICAgICkge1xuICAgICAgICB2YXIgZmliZXIgPSBjb25jdXJyZW50UXVldWVzW2ldO1xuICAgICAgICBjb25jdXJyZW50UXVldWVzW2krK10gPSBudWxsO1xuICAgICAgICB2YXIgcXVldWUgPSBjb25jdXJyZW50UXVldWVzW2ldO1xuICAgICAgICBjb25jdXJyZW50UXVldWVzW2krK10gPSBudWxsO1xuICAgICAgICB2YXIgdXBkYXRlID0gY29uY3VycmVudFF1ZXVlc1tpXTtcbiAgICAgICAgY29uY3VycmVudFF1ZXVlc1tpKytdID0gbnVsbDtcbiAgICAgICAgdmFyIGxhbmUgPSBjb25jdXJyZW50UXVldWVzW2ldO1xuICAgICAgICBjb25jdXJyZW50UXVldWVzW2krK10gPSBudWxsO1xuICAgICAgICBpZiAobnVsbCAhPT0gcXVldWUgJiYgbnVsbCAhPT0gdXBkYXRlKSB7XG4gICAgICAgICAgdmFyIHBlbmRpbmcgPSBxdWV1ZS5wZW5kaW5nO1xuICAgICAgICAgIG51bGwgPT09IHBlbmRpbmdcbiAgICAgICAgICAgID8gKHVwZGF0ZS5uZXh0ID0gdXBkYXRlKVxuICAgICAgICAgICAgOiAoKHVwZGF0ZS5uZXh0ID0gcGVuZGluZy5uZXh0KSwgKHBlbmRpbmcubmV4dCA9IHVwZGF0ZSkpO1xuICAgICAgICAgIHF1ZXVlLnBlbmRpbmcgPSB1cGRhdGU7XG4gICAgICAgIH1cbiAgICAgICAgMCAhPT0gbGFuZSAmJiBtYXJrVXBkYXRlTGFuZUZyb21GaWJlclRvUm9vdChmaWJlciwgdXBkYXRlLCBsYW5lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZW5xdWV1ZVVwZGF0ZSQxKGZpYmVyLCBxdWV1ZSwgdXBkYXRlLCBsYW5lKSB7XG4gICAgICBjb25jdXJyZW50UXVldWVzW2NvbmN1cnJlbnRRdWV1ZXNJbmRleCsrXSA9IGZpYmVyO1xuICAgICAgY29uY3VycmVudFF1ZXVlc1tjb25jdXJyZW50UXVldWVzSW5kZXgrK10gPSBxdWV1ZTtcbiAgICAgIGNvbmN1cnJlbnRRdWV1ZXNbY29uY3VycmVudFF1ZXVlc0luZGV4KytdID0gdXBkYXRlO1xuICAgICAgY29uY3VycmVudFF1ZXVlc1tjb25jdXJyZW50UXVldWVzSW5kZXgrK10gPSBsYW5lO1xuICAgICAgY29uY3VycmVudGx5VXBkYXRlZExhbmVzIHw9IGxhbmU7XG4gICAgICBmaWJlci5sYW5lcyB8PSBsYW5lO1xuICAgICAgZmliZXIgPSBmaWJlci5hbHRlcm5hdGU7XG4gICAgICBudWxsICE9PSBmaWJlciAmJiAoZmliZXIubGFuZXMgfD0gbGFuZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVucXVldWVDb25jdXJyZW50SG9va1VwZGF0ZShmaWJlciwgcXVldWUsIHVwZGF0ZSwgbGFuZSkge1xuICAgICAgZW5xdWV1ZVVwZGF0ZSQxKGZpYmVyLCBxdWV1ZSwgdXBkYXRlLCBsYW5lKTtcbiAgICAgIHJldHVybiBnZXRSb290Rm9yVXBkYXRlZEZpYmVyKGZpYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCBsYW5lKSB7XG4gICAgICBlbnF1ZXVlVXBkYXRlJDEoZmliZXIsIG51bGwsIG51bGwsIGxhbmUpO1xuICAgICAgcmV0dXJuIGdldFJvb3RGb3JVcGRhdGVkRmliZXIoZmliZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrVXBkYXRlTGFuZUZyb21GaWJlclRvUm9vdChzb3VyY2VGaWJlciwgdXBkYXRlLCBsYW5lKSB7XG4gICAgICBzb3VyY2VGaWJlci5sYW5lcyB8PSBsYW5lO1xuICAgICAgdmFyIGFsdGVybmF0ZSA9IHNvdXJjZUZpYmVyLmFsdGVybmF0ZTtcbiAgICAgIG51bGwgIT09IGFsdGVybmF0ZSAmJiAoYWx0ZXJuYXRlLmxhbmVzIHw9IGxhbmUpO1xuICAgICAgZm9yICh2YXIgaXNIaWRkZW4gPSAhMSwgcGFyZW50ID0gc291cmNlRmliZXIucmV0dXJuOyBudWxsICE9PSBwYXJlbnQ7IClcbiAgICAgICAgKHBhcmVudC5jaGlsZExhbmVzIHw9IGxhbmUpLFxuICAgICAgICAgIChhbHRlcm5hdGUgPSBwYXJlbnQuYWx0ZXJuYXRlKSxcbiAgICAgICAgICBudWxsICE9PSBhbHRlcm5hdGUgJiYgKGFsdGVybmF0ZS5jaGlsZExhbmVzIHw9IGxhbmUpLFxuICAgICAgICAgIDIyID09PSBwYXJlbnQudGFnICYmXG4gICAgICAgICAgICAoKHNvdXJjZUZpYmVyID0gcGFyZW50LnN0YXRlTm9kZSksXG4gICAgICAgICAgICBudWxsID09PSBzb3VyY2VGaWJlciB8fFxuICAgICAgICAgICAgICBzb3VyY2VGaWJlci5fdmlzaWJpbGl0eSAmIE9mZnNjcmVlblZpc2libGUgfHxcbiAgICAgICAgICAgICAgKGlzSGlkZGVuID0gITApKSxcbiAgICAgICAgICAoc291cmNlRmliZXIgPSBwYXJlbnQpLFxuICAgICAgICAgIChwYXJlbnQgPSBwYXJlbnQucmV0dXJuKTtcbiAgICAgIHJldHVybiAzID09PSBzb3VyY2VGaWJlci50YWdcbiAgICAgICAgPyAoKHBhcmVudCA9IHNvdXJjZUZpYmVyLnN0YXRlTm9kZSksXG4gICAgICAgICAgaXNIaWRkZW4gJiZcbiAgICAgICAgICAgIG51bGwgIT09IHVwZGF0ZSAmJlxuICAgICAgICAgICAgKChpc0hpZGRlbiA9IDMxIC0gY2x6MzIobGFuZSkpLFxuICAgICAgICAgICAgKHNvdXJjZUZpYmVyID0gcGFyZW50LmhpZGRlblVwZGF0ZXMpLFxuICAgICAgICAgICAgKGFsdGVybmF0ZSA9IHNvdXJjZUZpYmVyW2lzSGlkZGVuXSksXG4gICAgICAgICAgICBudWxsID09PSBhbHRlcm5hdGVcbiAgICAgICAgICAgICAgPyAoc291cmNlRmliZXJbaXNIaWRkZW5dID0gW3VwZGF0ZV0pXG4gICAgICAgICAgICAgIDogYWx0ZXJuYXRlLnB1c2godXBkYXRlKSxcbiAgICAgICAgICAgICh1cGRhdGUubGFuZSA9IGxhbmUgfCA1MzY4NzA5MTIpKSxcbiAgICAgICAgICBwYXJlbnQpXG4gICAgICAgIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Um9vdEZvclVwZGF0ZWRGaWJlcihzb3VyY2VGaWJlcikge1xuICAgICAgaWYgKG5lc3RlZFVwZGF0ZUNvdW50ID4gTkVTVEVEX1VQREFURV9MSU1JVClcbiAgICAgICAgdGhyb3cgKFxuICAgICAgICAgICgobmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gbmVzdGVkVXBkYXRlQ291bnQgPSAwKSxcbiAgICAgICAgICAocm9vdFdpdGhQYXNzaXZlTmVzdGVkVXBkYXRlcyA9IHJvb3RXaXRoTmVzdGVkVXBkYXRlcyA9IG51bGwpLFxuICAgICAgICAgIEVycm9yKFxuICAgICAgICAgICAgXCJNYXhpbXVtIHVwZGF0ZSBkZXB0aCBleGNlZWRlZC4gVGhpcyBjYW4gaGFwcGVuIHdoZW4gYSBjb21wb25lbnQgcmVwZWF0ZWRseSBjYWxscyBzZXRTdGF0ZSBpbnNpZGUgY29tcG9uZW50V2lsbFVwZGF0ZSBvciBjb21wb25lbnREaWRVcGRhdGUuIFJlYWN0IGxpbWl0cyB0aGUgbnVtYmVyIG9mIG5lc3RlZCB1cGRhdGVzIHRvIHByZXZlbnQgaW5maW5pdGUgbG9vcHMuXCJcbiAgICAgICAgICApKVxuICAgICAgICApO1xuICAgICAgbmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID4gTkVTVEVEX1BBU1NJVkVfVVBEQVRFX0xJTUlUICYmXG4gICAgICAgICgobmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMCksXG4gICAgICAgIChyb290V2l0aFBhc3NpdmVOZXN0ZWRVcGRhdGVzID0gbnVsbCksXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJNYXhpbXVtIHVwZGF0ZSBkZXB0aCBleGNlZWRlZC4gVGhpcyBjYW4gaGFwcGVuIHdoZW4gYSBjb21wb25lbnQgY2FsbHMgc2V0U3RhdGUgaW5zaWRlIHVzZUVmZmVjdCwgYnV0IHVzZUVmZmVjdCBlaXRoZXIgZG9lc24ndCBoYXZlIGEgZGVwZW5kZW5jeSBhcnJheSwgb3Igb25lIG9mIHRoZSBkZXBlbmRlbmNpZXMgY2hhbmdlcyBvbiBldmVyeSByZW5kZXIuXCJcbiAgICAgICAgKSk7XG4gICAgICBudWxsID09PSBzb3VyY2VGaWJlci5hbHRlcm5hdGUgJiZcbiAgICAgICAgMCAhPT0gKHNvdXJjZUZpYmVyLmZsYWdzICYgNDA5OCkgJiZcbiAgICAgICAgd2FybkFib3V0VXBkYXRlT25Ob3RZZXRNb3VudGVkRmliZXJJbkRFVihzb3VyY2VGaWJlcik7XG4gICAgICBmb3IgKHZhciBub2RlID0gc291cmNlRmliZXIsIHBhcmVudCA9IG5vZGUucmV0dXJuOyBudWxsICE9PSBwYXJlbnQ7IClcbiAgICAgICAgbnVsbCA9PT0gbm9kZS5hbHRlcm5hdGUgJiZcbiAgICAgICAgICAwICE9PSAobm9kZS5mbGFncyAmIDQwOTgpICYmXG4gICAgICAgICAgd2FybkFib3V0VXBkYXRlT25Ob3RZZXRNb3VudGVkRmliZXJJbkRFVihzb3VyY2VGaWJlciksXG4gICAgICAgICAgKG5vZGUgPSBwYXJlbnQpLFxuICAgICAgICAgIChwYXJlbnQgPSBub2RlLnJldHVybik7XG4gICAgICByZXR1cm4gMyA9PT0gbm9kZS50YWcgPyBub2RlLnN0YXRlTm9kZSA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyh0eXBlKSB7XG4gICAgICBpZiAobnVsbCA9PT0gcmVzb2x2ZUZhbWlseSkgcmV0dXJuIHR5cGU7XG4gICAgICB2YXIgZmFtaWx5ID0gcmVzb2x2ZUZhbWlseSh0eXBlKTtcbiAgICAgIHJldHVybiB2b2lkIDAgPT09IGZhbWlseSA/IHR5cGUgOiBmYW1pbHkuY3VycmVudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzb2x2ZUZvcndhcmRSZWZGb3JIb3RSZWxvYWRpbmcodHlwZSkge1xuICAgICAgaWYgKG51bGwgPT09IHJlc29sdmVGYW1pbHkpIHJldHVybiB0eXBlO1xuICAgICAgdmFyIGZhbWlseSA9IHJlc29sdmVGYW1pbHkodHlwZSk7XG4gICAgICByZXR1cm4gdm9pZCAwID09PSBmYW1pbHlcbiAgICAgICAgPyBudWxsICE9PSB0eXBlICYmXG4gICAgICAgICAgdm9pZCAwICE9PSB0eXBlICYmXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdHlwZS5yZW5kZXIgJiZcbiAgICAgICAgICAoKGZhbWlseSA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyh0eXBlLnJlbmRlcikpLFxuICAgICAgICAgIHR5cGUucmVuZGVyICE9PSBmYW1pbHkpXG4gICAgICAgICAgPyAoKGZhbWlseSA9IHsgJCR0eXBlb2Y6IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUsIHJlbmRlcjogZmFtaWx5IH0pLFxuICAgICAgICAgICAgdm9pZCAwICE9PSB0eXBlLmRpc3BsYXlOYW1lICYmXG4gICAgICAgICAgICAgIChmYW1pbHkuZGlzcGxheU5hbWUgPSB0eXBlLmRpc3BsYXlOYW1lKSxcbiAgICAgICAgICAgIGZhbWlseSlcbiAgICAgICAgICA6IHR5cGVcbiAgICAgICAgOiBmYW1pbHkuY3VycmVudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNDb21wYXRpYmxlRmFtaWx5Rm9ySG90UmVsb2FkaW5nKGZpYmVyLCBlbGVtZW50KSB7XG4gICAgICBpZiAobnVsbCA9PT0gcmVzb2x2ZUZhbWlseSkgcmV0dXJuICExO1xuICAgICAgdmFyIHByZXZUeXBlID0gZmliZXIuZWxlbWVudFR5cGU7XG4gICAgICBlbGVtZW50ID0gZWxlbWVudC50eXBlO1xuICAgICAgdmFyIG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gITEsXG4gICAgICAgICQkdHlwZW9mTmV4dFR5cGUgPVxuICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBlbGVtZW50ICYmIG51bGwgIT09IGVsZW1lbnRcbiAgICAgICAgICAgID8gZWxlbWVudC4kJHR5cGVvZlxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgc3dpdGNoIChmaWJlci50YWcpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGVsZW1lbnQgJiYgKG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gITApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgZWxlbWVudFxuICAgICAgICAgICAgPyAobmVlZHNDb21wYXJlRmFtaWxpZXMgPSAhMClcbiAgICAgICAgICAgIDogJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTEFaWV9UWVBFICYmXG4gICAgICAgICAgICAgIChuZWVkc0NvbXBhcmVGYW1pbGllcyA9ICEwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICAkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFXG4gICAgICAgICAgICA/IChuZWVkc0NvbXBhcmVGYW1pbGllcyA9ICEwKVxuICAgICAgICAgICAgOiAkJHR5cGVvZk5leHRUeXBlID09PSBSRUFDVF9MQVpZX1RZUEUgJiZcbiAgICAgICAgICAgICAgKG5lZWRzQ29tcGFyZUZhbWlsaWVzID0gITApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE0OlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICQkdHlwZW9mTmV4dFR5cGUgPT09IFJFQUNUX01FTU9fVFlQRVxuICAgICAgICAgICAgPyAobmVlZHNDb21wYXJlRmFtaWxpZXMgPSAhMClcbiAgICAgICAgICAgIDogJCR0eXBlb2ZOZXh0VHlwZSA9PT0gUkVBQ1RfTEFaWV9UWVBFICYmXG4gICAgICAgICAgICAgIChuZWVkc0NvbXBhcmVGYW1pbGllcyA9ICEwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gITE7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmVlZHNDb21wYXJlRmFtaWxpZXMgJiZcbiAgICAgICAgKChmaWJlciA9IHJlc29sdmVGYW1pbHkocHJldlR5cGUpKSxcbiAgICAgICAgdm9pZCAwICE9PSBmaWJlciAmJiBmaWJlciA9PT0gcmVzb2x2ZUZhbWlseShlbGVtZW50KSlcbiAgICAgICAgPyAhMFxuICAgICAgICA6ICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrRmFpbGVkRXJyb3JCb3VuZGFyeUZvckhvdFJlbG9hZGluZyhmaWJlcikge1xuICAgICAgbnVsbCAhPT0gcmVzb2x2ZUZhbWlseSAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBXZWFrU2V0ICYmXG4gICAgICAgIChudWxsID09PSBmYWlsZWRCb3VuZGFyaWVzICYmIChmYWlsZWRCb3VuZGFyaWVzID0gbmV3IFdlYWtTZXQoKSksXG4gICAgICAgIGZhaWxlZEJvdW5kYXJpZXMuYWRkKGZpYmVyKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNjaGVkdWxlRmliZXJzV2l0aEZhbWlsaWVzUmVjdXJzaXZlbHkoXG4gICAgICBmaWJlcixcbiAgICAgIHVwZGF0ZWRGYW1pbGllcyxcbiAgICAgIHN0YWxlRmFtaWxpZXNcbiAgICApIHtcbiAgICAgIGRvIHtcbiAgICAgICAgdmFyIF9maWJlciA9IGZpYmVyLFxuICAgICAgICAgIGFsdGVybmF0ZSA9IF9maWJlci5hbHRlcm5hdGUsXG4gICAgICAgICAgY2hpbGQgPSBfZmliZXIuY2hpbGQsXG4gICAgICAgICAgc2libGluZyA9IF9maWJlci5zaWJsaW5nLFxuICAgICAgICAgIHRhZyA9IF9maWJlci50YWc7XG4gICAgICAgIF9maWJlciA9IF9maWJlci50eXBlO1xuICAgICAgICB2YXIgY2FuZGlkYXRlVHlwZSA9IG51bGw7XG4gICAgICAgIHN3aXRjaCAodGFnKSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgY2FuZGlkYXRlVHlwZSA9IF9maWJlcjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgICBjYW5kaWRhdGVUeXBlID0gX2ZpYmVyLnJlbmRlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobnVsbCA9PT0gcmVzb2x2ZUZhbWlseSlcbiAgICAgICAgICB0aHJvdyBFcnJvcihcIkV4cGVjdGVkIHJlc29sdmVGYW1pbHkgdG8gYmUgc2V0IGR1cmluZyBob3QgcmVsb2FkLlwiKTtcbiAgICAgICAgdmFyIG5lZWRzUmVuZGVyID0gITE7XG4gICAgICAgIF9maWJlciA9ICExO1xuICAgICAgICBudWxsICE9PSBjYW5kaWRhdGVUeXBlICYmXG4gICAgICAgICAgKChjYW5kaWRhdGVUeXBlID0gcmVzb2x2ZUZhbWlseShjYW5kaWRhdGVUeXBlKSksXG4gICAgICAgICAgdm9pZCAwICE9PSBjYW5kaWRhdGVUeXBlICYmXG4gICAgICAgICAgICAoc3RhbGVGYW1pbGllcy5oYXMoY2FuZGlkYXRlVHlwZSlcbiAgICAgICAgICAgICAgPyAoX2ZpYmVyID0gITApXG4gICAgICAgICAgICAgIDogdXBkYXRlZEZhbWlsaWVzLmhhcyhjYW5kaWRhdGVUeXBlKSAmJlxuICAgICAgICAgICAgICAgICgxID09PSB0YWcgPyAoX2ZpYmVyID0gITApIDogKG5lZWRzUmVuZGVyID0gITApKSkpO1xuICAgICAgICBudWxsICE9PSBmYWlsZWRCb3VuZGFyaWVzICYmXG4gICAgICAgICAgKGZhaWxlZEJvdW5kYXJpZXMuaGFzKGZpYmVyKSB8fFxuICAgICAgICAgICAgKG51bGwgIT09IGFsdGVybmF0ZSAmJiBmYWlsZWRCb3VuZGFyaWVzLmhhcyhhbHRlcm5hdGUpKSkgJiZcbiAgICAgICAgICAoX2ZpYmVyID0gITApO1xuICAgICAgICBfZmliZXIgJiYgKGZpYmVyLl9kZWJ1Z05lZWRzUmVtb3VudCA9ICEwKTtcbiAgICAgICAgaWYgKF9maWJlciB8fCBuZWVkc1JlbmRlcilcbiAgICAgICAgICAoYWx0ZXJuYXRlID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKSksXG4gICAgICAgICAgICBudWxsICE9PSBhbHRlcm5hdGUgJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKGFsdGVybmF0ZSwgZmliZXIsIDIpO1xuICAgICAgICBudWxsID09PSBjaGlsZCB8fFxuICAgICAgICAgIF9maWJlciB8fFxuICAgICAgICAgIHNjaGVkdWxlRmliZXJzV2l0aEZhbWlsaWVzUmVjdXJzaXZlbHkoXG4gICAgICAgICAgICBjaGlsZCxcbiAgICAgICAgICAgIHVwZGF0ZWRGYW1pbGllcyxcbiAgICAgICAgICAgIHN0YWxlRmFtaWxpZXNcbiAgICAgICAgICApO1xuICAgICAgICBpZiAobnVsbCA9PT0gc2libGluZykgYnJlYWs7XG4gICAgICAgIGZpYmVyID0gc2libGluZztcbiAgICAgIH0gd2hpbGUgKDEpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBGaWJlck5vZGUodGFnLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSkge1xuICAgICAgdGhpcy50YWcgPSB0YWc7XG4gICAgICB0aGlzLmtleSA9IGtleTtcbiAgICAgIHRoaXMuc2libGluZyA9XG4gICAgICAgIHRoaXMuY2hpbGQgPVxuICAgICAgICB0aGlzLnJldHVybiA9XG4gICAgICAgIHRoaXMuc3RhdGVOb2RlID1cbiAgICAgICAgdGhpcy50eXBlID1cbiAgICAgICAgdGhpcy5lbGVtZW50VHlwZSA9XG4gICAgICAgICAgbnVsbDtcbiAgICAgIHRoaXMuaW5kZXggPSAwO1xuICAgICAgdGhpcy5yZWZDbGVhbnVwID0gdGhpcy5yZWYgPSBudWxsO1xuICAgICAgdGhpcy5wZW5kaW5nUHJvcHMgPSBwZW5kaW5nUHJvcHM7XG4gICAgICB0aGlzLmRlcGVuZGVuY2llcyA9XG4gICAgICAgIHRoaXMubWVtb2l6ZWRTdGF0ZSA9XG4gICAgICAgIHRoaXMudXBkYXRlUXVldWUgPVxuICAgICAgICB0aGlzLm1lbW9pemVkUHJvcHMgPVxuICAgICAgICAgIG51bGw7XG4gICAgICB0aGlzLm1vZGUgPSBtb2RlO1xuICAgICAgdGhpcy5zdWJ0cmVlRmxhZ3MgPSB0aGlzLmZsYWdzID0gMDtcbiAgICAgIHRoaXMuZGVsZXRpb25zID0gbnVsbDtcbiAgICAgIHRoaXMuY2hpbGRMYW5lcyA9IHRoaXMubGFuZXMgPSAwO1xuICAgICAgdGhpcy5hbHRlcm5hdGUgPSBudWxsO1xuICAgICAgdGhpcy5hY3R1YWxEdXJhdGlvbiA9IC0wO1xuICAgICAgdGhpcy5hY3R1YWxTdGFydFRpbWUgPSAtMS4xO1xuICAgICAgdGhpcy50cmVlQmFzZUR1cmF0aW9uID0gdGhpcy5zZWxmQmFzZUR1cmF0aW9uID0gLTA7XG4gICAgICB0aGlzLl9kZWJ1Z1Rhc2sgPVxuICAgICAgICB0aGlzLl9kZWJ1Z1N0YWNrID1cbiAgICAgICAgdGhpcy5fZGVidWdPd25lciA9XG4gICAgICAgIHRoaXMuX2RlYnVnSW5mbyA9XG4gICAgICAgICAgbnVsbDtcbiAgICAgIHRoaXMuX2RlYnVnTmVlZHNSZW1vdW50ID0gITE7XG4gICAgICB0aGlzLl9kZWJ1Z0hvb2tUeXBlcyA9IG51bGw7XG4gICAgICBoYXNCYWRNYXBQb2x5ZmlsbCB8fFxuICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBPYmplY3QucHJldmVudEV4dGVuc2lvbnMgfHxcbiAgICAgICAgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHRoaXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KSB7XG4gICAgICBDb21wb25lbnQgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICAgICAgcmV0dXJuICEoIUNvbXBvbmVudCB8fCAhQ29tcG9uZW50LmlzUmVhY3RDb21wb25lbnQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhjdXJyZW50LCBwZW5kaW5nUHJvcHMpIHtcbiAgICAgIHZhciB3b3JrSW5Qcm9ncmVzcyA9IGN1cnJlbnQuYWx0ZXJuYXRlO1xuICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NcbiAgICAgICAgPyAoKHdvcmtJblByb2dyZXNzID0gY3JlYXRlRmliZXIoXG4gICAgICAgICAgICBjdXJyZW50LnRhZyxcbiAgICAgICAgICAgIHBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgIGN1cnJlbnQua2V5LFxuICAgICAgICAgICAgY3VycmVudC5tb2RlXG4gICAgICAgICAgKSksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmVsZW1lbnRUeXBlID0gY3VycmVudC5lbGVtZW50VHlwZSksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50LnR5cGUpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBjdXJyZW50LnN0YXRlTm9kZSksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLl9kZWJ1Z093bmVyID0gY3VycmVudC5fZGVidWdPd25lciksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLl9kZWJ1Z1N0YWNrID0gY3VycmVudC5fZGVidWdTdGFjayksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLl9kZWJ1Z1Rhc2sgPSBjdXJyZW50Ll9kZWJ1Z1Rhc2spLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5fZGVidWdIb29rVHlwZXMgPSBjdXJyZW50Ll9kZWJ1Z0hvb2tUeXBlcyksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZSA9IGN1cnJlbnQpLFxuICAgICAgICAgIChjdXJyZW50LmFsdGVybmF0ZSA9IHdvcmtJblByb2dyZXNzKSlcbiAgICAgICAgOiAoKHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyA9IHBlbmRpbmdQcm9wcyksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50LnR5cGUpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IDApLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5zdWJ0cmVlRmxhZ3MgPSAwKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZGVsZXRpb25zID0gbnVsbCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmFjdHVhbER1cmF0aW9uID0gLTApLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5hY3R1YWxTdGFydFRpbWUgPSAtMS4xKSk7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IGN1cnJlbnQuZmxhZ3MgJiA2NTAxMTcxMjtcbiAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSBjdXJyZW50LmNoaWxkTGFuZXM7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IGN1cnJlbnQubGFuZXM7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQuY2hpbGQ7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gY3VycmVudC51cGRhdGVRdWV1ZTtcbiAgICAgIHBlbmRpbmdQcm9wcyA9IGN1cnJlbnQuZGVwZW5kZW5jaWVzO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzID1cbiAgICAgICAgbnVsbCA9PT0gcGVuZGluZ1Byb3BzXG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIGxhbmVzOiBwZW5kaW5nUHJvcHMubGFuZXMsXG4gICAgICAgICAgICAgIGZpcnN0Q29udGV4dDogcGVuZGluZ1Byb3BzLmZpcnN0Q29udGV4dCxcbiAgICAgICAgICAgICAgX2RlYnVnVGhlbmFibGVTdGF0ZTogcGVuZGluZ1Byb3BzLl9kZWJ1Z1RoZW5hYmxlU3RhdGVcbiAgICAgICAgICAgIH07XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5zaWJsaW5nID0gY3VycmVudC5zaWJsaW5nO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuaW5kZXggPSBjdXJyZW50LmluZGV4O1xuICAgICAgd29ya0luUHJvZ3Jlc3MucmVmID0gY3VycmVudC5yZWY7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5yZWZDbGVhbnVwID0gY3VycmVudC5yZWZDbGVhbnVwO1xuICAgICAgd29ya0luUHJvZ3Jlc3Muc2VsZkJhc2VEdXJhdGlvbiA9IGN1cnJlbnQuc2VsZkJhc2VEdXJhdGlvbjtcbiAgICAgIHdvcmtJblByb2dyZXNzLnRyZWVCYXNlRHVyYXRpb24gPSBjdXJyZW50LnRyZWVCYXNlRHVyYXRpb247XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5fZGVidWdJbmZvID0gY3VycmVudC5fZGVidWdJbmZvO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuX2RlYnVnTmVlZHNSZW1vdW50ID0gY3VycmVudC5fZGVidWdOZWVkc1JlbW91bnQ7XG4gICAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhjdXJyZW50LnR5cGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhjdXJyZW50LnR5cGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDExOlxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgPSByZXNvbHZlRm9yd2FyZFJlZkZvckhvdFJlbG9hZGluZyhjdXJyZW50LnR5cGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNldFdvcmtJblByb2dyZXNzKHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gNjUwMTE3MTQ7XG4gICAgICB2YXIgY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmFsdGVybmF0ZTtcbiAgICAgIG51bGwgPT09IGN1cnJlbnRcbiAgICAgICAgPyAoKHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSAwKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubGFuZXMgPSByZW5kZXJMYW5lcyksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gbnVsbCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnN1YnRyZWVGbGFncyA9IDApLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzID0gbnVsbCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBudWxsKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzID0gbnVsbCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSA9IG51bGwpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5zZWxmQmFzZUR1cmF0aW9uID0gMCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnRyZWVCYXNlRHVyYXRpb24gPSAwKSlcbiAgICAgICAgOiAoKHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMgPSBjdXJyZW50LmNoaWxkTGFuZXMpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IGN1cnJlbnQubGFuZXMpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQuY2hpbGQpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5zdWJ0cmVlRmxhZ3MgPSAwKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZGVsZXRpb25zID0gbnVsbCksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMgPSBjdXJyZW50Lm1lbW9pemVkUHJvcHMpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MudHlwZSA9IGN1cnJlbnQudHlwZSksXG4gICAgICAgICAgKHJlbmRlckxhbmVzID0gY3VycmVudC5kZXBlbmRlbmNpZXMpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5kZXBlbmRlbmNpZXMgPVxuICAgICAgICAgICAgbnVsbCA9PT0gcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgbGFuZXM6IHJlbmRlckxhbmVzLmxhbmVzLFxuICAgICAgICAgICAgICAgICAgZmlyc3RDb250ZXh0OiByZW5kZXJMYW5lcy5maXJzdENvbnRleHQsXG4gICAgICAgICAgICAgICAgICBfZGVidWdUaGVuYWJsZVN0YXRlOiByZW5kZXJMYW5lcy5fZGVidWdUaGVuYWJsZVN0YXRlXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLnNlbGZCYXNlRHVyYXRpb24gPSBjdXJyZW50LnNlbGZCYXNlRHVyYXRpb24pLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uID0gY3VycmVudC50cmVlQmFzZUR1cmF0aW9uKSk7XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3M7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVR5cGVBbmRQcm9wcyhcbiAgICAgIHR5cGUsXG4gICAgICBrZXksXG4gICAgICBwZW5kaW5nUHJvcHMsXG4gICAgICBvd25lcixcbiAgICAgIG1vZGUsXG4gICAgICBsYW5lc1xuICAgICkge1xuICAgICAgdmFyIGZpYmVyVGFnID0gMCxcbiAgICAgICAgcmVzb2x2ZWRUeXBlID0gdHlwZTtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICBzaG91bGRDb25zdHJ1Y3QodHlwZSkgJiYgKGZpYmVyVGFnID0gMSksXG4gICAgICAgICAgKHJlc29sdmVkVHlwZSA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhyZXNvbHZlZFR5cGUpKTtcbiAgICAgIGVsc2UgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICAoZmliZXJUYWcgPSBnZXRIb3N0Q29udGV4dCgpKSxcbiAgICAgICAgICAoZmliZXJUYWcgPSBpc0hvc3RIb2lzdGFibGVUeXBlKHR5cGUsIHBlbmRpbmdQcm9wcywgZmliZXJUYWcpXG4gICAgICAgICAgICA/IDI2XG4gICAgICAgICAgICA6IFwiaHRtbFwiID09PSB0eXBlIHx8IFwiaGVhZFwiID09PSB0eXBlIHx8IFwiYm9keVwiID09PSB0eXBlXG4gICAgICAgICAgICAgID8gMjdcbiAgICAgICAgICAgICAgOiA1KTtcbiAgICAgIGVsc2VcbiAgICAgICAgYTogc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9BQ1RJVklUWV9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGtleSA9IGNyZWF0ZUZpYmVyKDMxLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSkpLFxuICAgICAgICAgICAgICAoa2V5LmVsZW1lbnRUeXBlID0gUkVBQ1RfQUNUSVZJVFlfVFlQRSksXG4gICAgICAgICAgICAgIChrZXkubGFuZXMgPSBsYW5lcyksXG4gICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZSQUdNRU5UX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoXG4gICAgICAgICAgICAgIHBlbmRpbmdQcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgICAgbW9kZSxcbiAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgICBmaWJlclRhZyA9IDg7XG4gICAgICAgICAgICBtb2RlIHw9IFN0cmljdExlZ2FjeU1vZGU7XG4gICAgICAgICAgICBtb2RlIHw9IFN0cmljdEVmZmVjdHNNb2RlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKHR5cGUgPSBwZW5kaW5nUHJvcHMpLFxuICAgICAgICAgICAgICAob3duZXIgPSBtb2RlKSxcbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiAhPT0gdHlwZW9mIHR5cGUuaWQgJiZcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgJ1Byb2ZpbGVyIG11c3Qgc3BlY2lmeSBhbiBcImlkXCIgb2YgdHlwZSBgc3RyaW5nYCBhcyBhIHByb3AuIFJlY2VpdmVkIHRoZSB0eXBlIGAlc2AgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgICAgdHlwZW9mIHR5cGUuaWRcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAoa2V5ID0gY3JlYXRlRmliZXIoMTIsIHR5cGUsIGtleSwgb3duZXIgfCBQcm9maWxlTW9kZSkpLFxuICAgICAgICAgICAgICAoa2V5LmVsZW1lbnRUeXBlID0gUkVBQ1RfUFJPRklMRVJfVFlQRSksXG4gICAgICAgICAgICAgIChrZXkubGFuZXMgPSBsYW5lcyksXG4gICAgICAgICAgICAgIChrZXkuc3RhdGVOb2RlID0geyBlZmZlY3REdXJhdGlvbjogMCwgcGFzc2l2ZUVmZmVjdER1cmF0aW9uOiAwIH0pLFxuICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGtleSA9IGNyZWF0ZUZpYmVyKDEzLCBwZW5kaW5nUHJvcHMsIGtleSwgbW9kZSkpLFxuICAgICAgICAgICAgICAoa2V5LmVsZW1lbnRUeXBlID0gUkVBQ1RfU1VTUEVOU0VfVFlQRSksXG4gICAgICAgICAgICAgIChrZXkubGFuZXMgPSBsYW5lcyksXG4gICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChrZXkgPSBjcmVhdGVGaWJlcigxOSwgcGVuZGluZ1Byb3BzLCBrZXksIG1vZGUpKSxcbiAgICAgICAgICAgICAgKGtleS5lbGVtZW50VHlwZSA9IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSksXG4gICAgICAgICAgICAgIChrZXkubGFuZXMgPSBsYW5lcyksXG4gICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlICYmIG51bGwgIT09IHR5cGUpXG4gICAgICAgICAgICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICAgICAgICAgICAgZmliZXJUYWcgPSAxMDtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgY2FzZSBSRUFDVF9DT05TVU1FUl9UWVBFOlxuICAgICAgICAgICAgICAgICAgZmliZXJUYWcgPSA5O1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICAgICAgICBmaWJlclRhZyA9IDExO1xuICAgICAgICAgICAgICAgICAgcmVzb2x2ZWRUeXBlID0gcmVzb2x2ZUZvcndhcmRSZWZGb3JIb3RSZWxvYWRpbmcocmVzb2x2ZWRUeXBlKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICAgICAgICBmaWJlclRhZyA9IDE0O1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgICAgIGZpYmVyVGFnID0gMTY7XG4gICAgICAgICAgICAgICAgICByZXNvbHZlZFR5cGUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzb2x2ZWRUeXBlID0gXCJcIjtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgdm9pZCAwID09PSB0eXBlIHx8XG4gICAgICAgICAgICAgIChcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSAmJlxuICAgICAgICAgICAgICAgIG51bGwgIT09IHR5cGUgJiZcbiAgICAgICAgICAgICAgICAwID09PSBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGgpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHJlc29sdmVkVHlwZSArPVxuICAgICAgICAgICAgICAgIFwiIFlvdSBsaWtlbHkgZm9yZ290IHRvIGV4cG9ydCB5b3VyIGNvbXBvbmVudCBmcm9tIHRoZSBmaWxlIGl0J3MgZGVmaW5lZCBpbiwgb3IgeW91IG1pZ2h0IGhhdmUgbWl4ZWQgdXAgZGVmYXVsdCBhbmQgbmFtZWQgaW1wb3J0cy5cIjtcbiAgICAgICAgICAgIG51bGwgPT09IHR5cGVcbiAgICAgICAgICAgICAgPyAocGVuZGluZ1Byb3BzID0gXCJudWxsXCIpXG4gICAgICAgICAgICAgIDogaXNBcnJheUltcGwodHlwZSlcbiAgICAgICAgICAgICAgICA/IChwZW5kaW5nUHJvcHMgPSBcImFycmF5XCIpXG4gICAgICAgICAgICAgICAgOiB2b2lkIDAgIT09IHR5cGUgJiYgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG4gICAgICAgICAgICAgICAgICA/ICgocGVuZGluZ1Byb3BzID1cbiAgICAgICAgICAgICAgICAgICAgICBcIjxcIiArXG4gICAgICAgICAgICAgICAgICAgICAgKGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8IFwiVW5rbm93blwiKSArXG4gICAgICAgICAgICAgICAgICAgICAgXCIgLz5cIiksXG4gICAgICAgICAgICAgICAgICAgIChyZXNvbHZlZFR5cGUgPVxuICAgICAgICAgICAgICAgICAgICAgIFwiIERpZCB5b3UgYWNjaWRlbnRhbGx5IGV4cG9ydCBhIEpTWCBsaXRlcmFsIGluc3RlYWQgb2YgYSBjb21wb25lbnQ/XCIpKVxuICAgICAgICAgICAgICAgICAgOiAocGVuZGluZ1Byb3BzID0gdHlwZW9mIHR5cGUpO1xuICAgICAgICAgICAgKGZpYmVyVGFnID0gb3duZXIgPyBnZXRDb21wb25lbnROYW1lRnJvbU93bmVyKG93bmVyKSA6IG51bGwpICYmXG4gICAgICAgICAgICAgIChyZXNvbHZlZFR5cGUgKz1cbiAgICAgICAgICAgICAgICBcIlxcblxcbkNoZWNrIHRoZSByZW5kZXIgbWV0aG9kIG9mIGBcIiArIGZpYmVyVGFnICsgXCJgLlwiKTtcbiAgICAgICAgICAgIGZpYmVyVGFnID0gMjk7XG4gICAgICAgICAgICBwZW5kaW5nUHJvcHMgPSBFcnJvcihcbiAgICAgICAgICAgICAgXCJFbGVtZW50IHR5cGUgaXMgaW52YWxpZDogZXhwZWN0ZWQgYSBzdHJpbmcgKGZvciBidWlsdC1pbiBjb21wb25lbnRzKSBvciBhIGNsYXNzL2Z1bmN0aW9uIChmb3IgY29tcG9zaXRlIGNvbXBvbmVudHMpIGJ1dCBnb3Q6IFwiICtcbiAgICAgICAgICAgICAgICAocGVuZGluZ1Byb3BzICsgXCIuXCIgKyByZXNvbHZlZFR5cGUpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmVzb2x2ZWRUeXBlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAga2V5ID0gY3JlYXRlRmliZXIoZmliZXJUYWcsIHBlbmRpbmdQcm9wcywga2V5LCBtb2RlKTtcbiAgICAgIGtleS5lbGVtZW50VHlwZSA9IHR5cGU7XG4gICAgICBrZXkudHlwZSA9IHJlc29sdmVkVHlwZTtcbiAgICAgIGtleS5sYW5lcyA9IGxhbmVzO1xuICAgICAga2V5Ll9kZWJ1Z093bmVyID0gb3duZXI7XG4gICAgICByZXR1cm4ga2V5O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGaWJlckZyb21FbGVtZW50KGVsZW1lbnQsIG1vZGUsIGxhbmVzKSB7XG4gICAgICBtb2RlID0gY3JlYXRlRmliZXJGcm9tVHlwZUFuZFByb3BzKFxuICAgICAgICBlbGVtZW50LnR5cGUsXG4gICAgICAgIGVsZW1lbnQua2V5LFxuICAgICAgICBlbGVtZW50LnByb3BzLFxuICAgICAgICBlbGVtZW50Ll9vd25lcixcbiAgICAgICAgbW9kZSxcbiAgICAgICAgbGFuZXNcbiAgICAgICk7XG4gICAgICBtb2RlLl9kZWJ1Z093bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICBtb2RlLl9kZWJ1Z1N0YWNrID0gZWxlbWVudC5fZGVidWdTdGFjaztcbiAgICAgIG1vZGUuX2RlYnVnVGFzayA9IGVsZW1lbnQuX2RlYnVnVGFzaztcbiAgICAgIHJldHVybiBtb2RlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGaWJlckZyb21GcmFnbWVudChlbGVtZW50cywgbW9kZSwgbGFuZXMsIGtleSkge1xuICAgICAgZWxlbWVudHMgPSBjcmVhdGVGaWJlcig3LCBlbGVtZW50cywga2V5LCBtb2RlKTtcbiAgICAgIGVsZW1lbnRzLmxhbmVzID0gbGFuZXM7XG4gICAgICByZXR1cm4gZWxlbWVudHM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVRleHQoY29udGVudCwgbW9kZSwgbGFuZXMpIHtcbiAgICAgIGNvbnRlbnQgPSBjcmVhdGVGaWJlcig2LCBjb250ZW50LCBudWxsLCBtb2RlKTtcbiAgICAgIGNvbnRlbnQubGFuZXMgPSBsYW5lcztcbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGaWJlckZyb21EZWh5ZHJhdGVkRnJhZ21lbnQoZGVoeWRyYXRlZE5vZGUpIHtcbiAgICAgIHZhciBmaWJlciA9IGNyZWF0ZUZpYmVyKDE4LCBudWxsLCBudWxsLCBOb01vZGUpO1xuICAgICAgZmliZXIuc3RhdGVOb2RlID0gZGVoeWRyYXRlZE5vZGU7XG4gICAgICByZXR1cm4gZmliZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZpYmVyRnJvbVBvcnRhbChwb3J0YWwsIG1vZGUsIGxhbmVzKSB7XG4gICAgICBtb2RlID0gY3JlYXRlRmliZXIoXG4gICAgICAgIDQsXG4gICAgICAgIG51bGwgIT09IHBvcnRhbC5jaGlsZHJlbiA/IHBvcnRhbC5jaGlsZHJlbiA6IFtdLFxuICAgICAgICBwb3J0YWwua2V5LFxuICAgICAgICBtb2RlXG4gICAgICApO1xuICAgICAgbW9kZS5sYW5lcyA9IGxhbmVzO1xuICAgICAgbW9kZS5zdGF0ZU5vZGUgPSB7XG4gICAgICAgIGNvbnRhaW5lckluZm86IHBvcnRhbC5jb250YWluZXJJbmZvLFxuICAgICAgICBwZW5kaW5nQ2hpbGRyZW46IG51bGwsXG4gICAgICAgIGltcGxlbWVudGF0aW9uOiBwb3J0YWwuaW1wbGVtZW50YXRpb25cbiAgICAgIH07XG4gICAgICByZXR1cm4gbW9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIodmFsdWUsIHNvdXJjZSkge1xuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB2YWx1ZSAmJiBudWxsICE9PSB2YWx1ZSkge1xuICAgICAgICB2YXIgZXhpc3RpbmcgPSBDYXB0dXJlZFN0YWNrcy5nZXQodmFsdWUpO1xuICAgICAgICBpZiAodm9pZCAwICE9PSBleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgICBzb3VyY2UgPSB7XG4gICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICAgIHN0YWNrOiBnZXRTdGFja0J5RmliZXJJbkRldkFuZFByb2Qoc291cmNlKVxuICAgICAgICB9O1xuICAgICAgICBDYXB0dXJlZFN0YWNrcy5zZXQodmFsdWUsIHNvdXJjZSk7XG4gICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgIHNvdXJjZTogc291cmNlLFxuICAgICAgICBzdGFjazogZ2V0U3RhY2tCeUZpYmVySW5EZXZBbmRQcm9kKHNvdXJjZSlcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2hUcmVlRm9yayh3b3JrSW5Qcm9ncmVzcywgdG90YWxDaGlsZHJlbikge1xuICAgICAgd2FybklmTm90SHlkcmF0aW5nKCk7XG4gICAgICBmb3JrU3RhY2tbZm9ya1N0YWNrSW5kZXgrK10gPSB0cmVlRm9ya0NvdW50O1xuICAgICAgZm9ya1N0YWNrW2ZvcmtTdGFja0luZGV4KytdID0gdHJlZUZvcmtQcm92aWRlcjtcbiAgICAgIHRyZWVGb3JrUHJvdmlkZXIgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIHRyZWVGb3JrQ291bnQgPSB0b3RhbENoaWxkcmVuO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoVHJlZUlkKHdvcmtJblByb2dyZXNzLCB0b3RhbENoaWxkcmVuLCBpbmRleCkge1xuICAgICAgd2FybklmTm90SHlkcmF0aW5nKCk7XG4gICAgICBpZFN0YWNrW2lkU3RhY2tJbmRleCsrXSA9IHRyZWVDb250ZXh0SWQ7XG4gICAgICBpZFN0YWNrW2lkU3RhY2tJbmRleCsrXSA9IHRyZWVDb250ZXh0T3ZlcmZsb3c7XG4gICAgICBpZFN0YWNrW2lkU3RhY2tJbmRleCsrXSA9IHRyZWVDb250ZXh0UHJvdmlkZXI7XG4gICAgICB0cmVlQ29udGV4dFByb3ZpZGVyID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICB2YXIgYmFzZUlkV2l0aExlYWRpbmdCaXQgPSB0cmVlQ29udGV4dElkO1xuICAgICAgd29ya0luUHJvZ3Jlc3MgPSB0cmVlQ29udGV4dE92ZXJmbG93O1xuICAgICAgdmFyIGJhc2VMZW5ndGggPSAzMiAtIGNsejMyKGJhc2VJZFdpdGhMZWFkaW5nQml0KSAtIDE7XG4gICAgICBiYXNlSWRXaXRoTGVhZGluZ0JpdCAmPSB+KDEgPDwgYmFzZUxlbmd0aCk7XG4gICAgICBpbmRleCArPSAxO1xuICAgICAgdmFyIGxlbmd0aCA9IDMyIC0gY2x6MzIodG90YWxDaGlsZHJlbikgKyBiYXNlTGVuZ3RoO1xuICAgICAgaWYgKDMwIDwgbGVuZ3RoKSB7XG4gICAgICAgIHZhciBudW1iZXJPZk92ZXJmbG93Qml0cyA9IGJhc2VMZW5ndGggLSAoYmFzZUxlbmd0aCAlIDUpO1xuICAgICAgICBsZW5ndGggPSAoXG4gICAgICAgICAgYmFzZUlkV2l0aExlYWRpbmdCaXQgJlxuICAgICAgICAgICgoMSA8PCBudW1iZXJPZk92ZXJmbG93Qml0cykgLSAxKVxuICAgICAgICApLnRvU3RyaW5nKDMyKTtcbiAgICAgICAgYmFzZUlkV2l0aExlYWRpbmdCaXQgPj49IG51bWJlck9mT3ZlcmZsb3dCaXRzO1xuICAgICAgICBiYXNlTGVuZ3RoIC09IG51bWJlck9mT3ZlcmZsb3dCaXRzO1xuICAgICAgICB0cmVlQ29udGV4dElkID1cbiAgICAgICAgICAoMSA8PCAoMzIgLSBjbHozMih0b3RhbENoaWxkcmVuKSArIGJhc2VMZW5ndGgpKSB8XG4gICAgICAgICAgKGluZGV4IDw8IGJhc2VMZW5ndGgpIHxcbiAgICAgICAgICBiYXNlSWRXaXRoTGVhZGluZ0JpdDtcbiAgICAgICAgdHJlZUNvbnRleHRPdmVyZmxvdyA9IGxlbmd0aCArIHdvcmtJblByb2dyZXNzO1xuICAgICAgfSBlbHNlXG4gICAgICAgICh0cmVlQ29udGV4dElkID1cbiAgICAgICAgICAoMSA8PCBsZW5ndGgpIHwgKGluZGV4IDw8IGJhc2VMZW5ndGgpIHwgYmFzZUlkV2l0aExlYWRpbmdCaXQpLFxuICAgICAgICAgICh0cmVlQ29udGV4dE92ZXJmbG93ID0gd29ya0luUHJvZ3Jlc3MpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoTWF0ZXJpYWxpemVkVHJlZUlkKHdvcmtJblByb2dyZXNzKSB7XG4gICAgICB3YXJuSWZOb3RIeWRyYXRpbmcoKTtcbiAgICAgIG51bGwgIT09IHdvcmtJblByb2dyZXNzLnJldHVybiAmJlxuICAgICAgICAocHVzaFRyZWVGb3JrKHdvcmtJblByb2dyZXNzLCAxKSwgcHVzaFRyZWVJZCh3b3JrSW5Qcm9ncmVzcywgMSwgMCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwb3BUcmVlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgZm9yICg7IHdvcmtJblByb2dyZXNzID09PSB0cmVlRm9ya1Byb3ZpZGVyOyApXG4gICAgICAgICh0cmVlRm9ya1Byb3ZpZGVyID0gZm9ya1N0YWNrWy0tZm9ya1N0YWNrSW5kZXhdKSxcbiAgICAgICAgICAoZm9ya1N0YWNrW2ZvcmtTdGFja0luZGV4XSA9IG51bGwpLFxuICAgICAgICAgICh0cmVlRm9ya0NvdW50ID0gZm9ya1N0YWNrWy0tZm9ya1N0YWNrSW5kZXhdKSxcbiAgICAgICAgICAoZm9ya1N0YWNrW2ZvcmtTdGFja0luZGV4XSA9IG51bGwpO1xuICAgICAgZm9yICg7IHdvcmtJblByb2dyZXNzID09PSB0cmVlQ29udGV4dFByb3ZpZGVyOyApXG4gICAgICAgICh0cmVlQ29udGV4dFByb3ZpZGVyID0gaWRTdGFja1stLWlkU3RhY2tJbmRleF0pLFxuICAgICAgICAgIChpZFN0YWNrW2lkU3RhY2tJbmRleF0gPSBudWxsKSxcbiAgICAgICAgICAodHJlZUNvbnRleHRPdmVyZmxvdyA9IGlkU3RhY2tbLS1pZFN0YWNrSW5kZXhdKSxcbiAgICAgICAgICAoaWRTdGFja1tpZFN0YWNrSW5kZXhdID0gbnVsbCksXG4gICAgICAgICAgKHRyZWVDb250ZXh0SWQgPSBpZFN0YWNrWy0taWRTdGFja0luZGV4XSksXG4gICAgICAgICAgKGlkU3RhY2tbaWRTdGFja0luZGV4XSA9IG51bGwpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRTdXNwZW5kZWRUcmVlQ29udGV4dCgpIHtcbiAgICAgIHdhcm5JZk5vdEh5ZHJhdGluZygpO1xuICAgICAgcmV0dXJuIG51bGwgIT09IHRyZWVDb250ZXh0UHJvdmlkZXJcbiAgICAgICAgPyB7IGlkOiB0cmVlQ29udGV4dElkLCBvdmVyZmxvdzogdHJlZUNvbnRleHRPdmVyZmxvdyB9XG4gICAgICAgIDogbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzdG9yZVN1c3BlbmRlZFRyZWVDb250ZXh0KHdvcmtJblByb2dyZXNzLCBzdXNwZW5kZWRDb250ZXh0KSB7XG4gICAgICB3YXJuSWZOb3RIeWRyYXRpbmcoKTtcbiAgICAgIGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRJZDtcbiAgICAgIGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRPdmVyZmxvdztcbiAgICAgIGlkU3RhY2tbaWRTdGFja0luZGV4KytdID0gdHJlZUNvbnRleHRQcm92aWRlcjtcbiAgICAgIHRyZWVDb250ZXh0SWQgPSBzdXNwZW5kZWRDb250ZXh0LmlkO1xuICAgICAgdHJlZUNvbnRleHRPdmVyZmxvdyA9IHN1c3BlbmRlZENvbnRleHQub3ZlcmZsb3c7XG4gICAgICB0cmVlQ29udGV4dFByb3ZpZGVyID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5JZk5vdEh5ZHJhdGluZygpIHtcbiAgICAgIGlzSHlkcmF0aW5nIHx8XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJFeHBlY3RlZCB0byBiZSBoeWRyYXRpbmcuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGJ1aWxkSHlkcmF0aW9uRGlmZk5vZGUoZmliZXIsIGRpc3RhbmNlRnJvbUxlYWYpIHtcbiAgICAgIGlmIChudWxsID09PSBmaWJlci5yZXR1cm4pIHtcbiAgICAgICAgaWYgKG51bGwgPT09IGh5ZHJhdGlvbkRpZmZSb290REVWKVxuICAgICAgICAgIGh5ZHJhdGlvbkRpZmZSb290REVWID0ge1xuICAgICAgICAgICAgZmliZXI6IGZpYmVyLFxuICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxuICAgICAgICAgICAgc2VydmVyUHJvcHM6IHZvaWQgMCxcbiAgICAgICAgICAgIHNlcnZlclRhaWw6IFtdLFxuICAgICAgICAgICAgZGlzdGFuY2VGcm9tTGVhZjogZGlzdGFuY2VGcm9tTGVhZlxuICAgICAgICAgIH07XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmIChoeWRyYXRpb25EaWZmUm9vdERFVi5maWJlciAhPT0gZmliZXIpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgXCJTYXcgbXVsdGlwbGUgaHlkcmF0aW9uIGRpZmYgcm9vdHMgaW4gYSBwYXNzLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGh5ZHJhdGlvbkRpZmZSb290REVWLmRpc3RhbmNlRnJvbUxlYWYgPiBkaXN0YW5jZUZyb21MZWFmICYmXG4gICAgICAgICAgICAoaHlkcmF0aW9uRGlmZlJvb3RERVYuZGlzdGFuY2VGcm9tTGVhZiA9IGRpc3RhbmNlRnJvbUxlYWYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoeWRyYXRpb25EaWZmUm9vdERFVjtcbiAgICAgIH1cbiAgICAgIHZhciBzaWJsaW5ncyA9IGJ1aWxkSHlkcmF0aW9uRGlmZk5vZGUoXG4gICAgICAgIGZpYmVyLnJldHVybixcbiAgICAgICAgZGlzdGFuY2VGcm9tTGVhZiArIDFcbiAgICAgICkuY2hpbGRyZW47XG4gICAgICBpZiAoMCA8IHNpYmxpbmdzLmxlbmd0aCAmJiBzaWJsaW5nc1tzaWJsaW5ncy5sZW5ndGggLSAxXS5maWJlciA9PT0gZmliZXIpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgKHNpYmxpbmdzID0gc2libGluZ3Nbc2libGluZ3MubGVuZ3RoIC0gMV0pLFxuICAgICAgICAgIHNpYmxpbmdzLmRpc3RhbmNlRnJvbUxlYWYgPiBkaXN0YW5jZUZyb21MZWFmICYmXG4gICAgICAgICAgICAoc2libGluZ3MuZGlzdGFuY2VGcm9tTGVhZiA9IGRpc3RhbmNlRnJvbUxlYWYpLFxuICAgICAgICAgIHNpYmxpbmdzXG4gICAgICAgICk7XG4gICAgICBkaXN0YW5jZUZyb21MZWFmID0ge1xuICAgICAgICBmaWJlcjogZmliZXIsXG4gICAgICAgIGNoaWxkcmVuOiBbXSxcbiAgICAgICAgc2VydmVyUHJvcHM6IHZvaWQgMCxcbiAgICAgICAgc2VydmVyVGFpbDogW10sXG4gICAgICAgIGRpc3RhbmNlRnJvbUxlYWY6IGRpc3RhbmNlRnJvbUxlYWZcbiAgICAgIH07XG4gICAgICBzaWJsaW5ncy5wdXNoKGRpc3RhbmNlRnJvbUxlYWYpO1xuICAgICAgcmV0dXJuIGRpc3RhbmNlRnJvbUxlYWY7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5JZkh5ZHJhdGluZygpIHtcbiAgICAgIGlzSHlkcmF0aW5nICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJXZSBzaG91bGQgbm90IGJlIGh5ZHJhdGluZyBoZXJlLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhIGJ1Zy5cIlxuICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3YXJuTm9uSHlkcmF0ZWRJbnN0YW5jZShmaWJlciwgcmVqZWN0ZWRDYW5kaWRhdGUpIHtcbiAgICAgIGRpZFN1c3BlbmRPckVycm9yREVWIHx8XG4gICAgICAgICgoZmliZXIgPSBidWlsZEh5ZHJhdGlvbkRpZmZOb2RlKGZpYmVyLCAwKSksXG4gICAgICAgIChmaWJlci5zZXJ2ZXJQcm9wcyA9IG51bGwpLFxuICAgICAgICBudWxsICE9PSByZWplY3RlZENhbmRpZGF0ZSAmJlxuICAgICAgICAgICgocmVqZWN0ZWRDYW5kaWRhdGUgPVxuICAgICAgICAgICAgZGVzY3JpYmVIeWRyYXRhYmxlSW5zdGFuY2VGb3JEZXZXYXJuaW5ncyhyZWplY3RlZENhbmRpZGF0ZSkpLFxuICAgICAgICAgIGZpYmVyLnNlcnZlclRhaWwucHVzaChyZWplY3RlZENhbmRpZGF0ZSkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKGZpYmVyKSB7XG4gICAgICB2YXIgZnJvbVRleHQgPVxuICAgICAgICAgIDEgPCBhcmd1bWVudHMubGVuZ3RoICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzFdID8gYXJndW1lbnRzWzFdIDogITEsXG4gICAgICAgIGRpZmYgPSBcIlwiLFxuICAgICAgICBkaWZmUm9vdCA9IGh5ZHJhdGlvbkRpZmZSb290REVWO1xuICAgICAgbnVsbCAhPT0gZGlmZlJvb3QgJiZcbiAgICAgICAgKChoeWRyYXRpb25EaWZmUm9vdERFViA9IG51bGwpLCAoZGlmZiA9IGRlc2NyaWJlRGlmZihkaWZmUm9vdCkpKTtcbiAgICAgIHF1ZXVlSHlkcmF0aW9uRXJyb3IoXG4gICAgICAgIGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKFxuICAgICAgICAgIEVycm9yKFxuICAgICAgICAgICAgXCJIeWRyYXRpb24gZmFpbGVkIGJlY2F1c2UgdGhlIHNlcnZlciByZW5kZXJlZCBcIiArXG4gICAgICAgICAgICAgIChmcm9tVGV4dCA/IFwidGV4dFwiIDogXCJIVE1MXCIpICtcbiAgICAgICAgICAgICAgXCIgZGlkbid0IG1hdGNoIHRoZSBjbGllbnQuIEFzIGEgcmVzdWx0IHRoaXMgdHJlZSB3aWxsIGJlIHJlZ2VuZXJhdGVkIG9uIHRoZSBjbGllbnQuIFRoaXMgY2FuIGhhcHBlbiBpZiBhIFNTUi1lZCBDbGllbnQgQ29tcG9uZW50IHVzZWQ6XFxuXFxuLSBBIHNlcnZlci9jbGllbnQgYnJhbmNoIGBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpYC5cXG4tIFZhcmlhYmxlIGlucHV0IHN1Y2ggYXMgYERhdGUubm93KClgIG9yIGBNYXRoLnJhbmRvbSgpYCB3aGljaCBjaGFuZ2VzIGVhY2ggdGltZSBpdCdzIGNhbGxlZC5cXG4tIERhdGUgZm9ybWF0dGluZyBpbiBhIHVzZXIncyBsb2NhbGUgd2hpY2ggZG9lc24ndCBtYXRjaCB0aGUgc2VydmVyLlxcbi0gRXh0ZXJuYWwgY2hhbmdpbmcgZGF0YSB3aXRob3V0IHNlbmRpbmcgYSBzbmFwc2hvdCBvZiBpdCBhbG9uZyB3aXRoIHRoZSBIVE1MLlxcbi0gSW52YWxpZCBIVE1MIHRhZyBuZXN0aW5nLlxcblxcbkl0IGNhbiBhbHNvIGhhcHBlbiBpZiB0aGUgY2xpZW50IGhhcyBhIGJyb3dzZXIgZXh0ZW5zaW9uIGluc3RhbGxlZCB3aGljaCBtZXNzZXMgd2l0aCB0aGUgSFRNTCBiZWZvcmUgUmVhY3QgbG9hZGVkLlxcblxcbmh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvaHlkcmF0aW9uLW1pc21hdGNoXCIgK1xuICAgICAgICAgICAgICBkaWZmXG4gICAgICAgICAgKSxcbiAgICAgICAgICBmaWJlclxuICAgICAgICApXG4gICAgICApO1xuICAgICAgdGhyb3cgSHlkcmF0aW9uTWlzbWF0Y2hFeGNlcHRpb247XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByZXBhcmVUb0h5ZHJhdGVIb3N0SW5zdGFuY2UoZmliZXIpIHtcbiAgICAgIHZhciBkaWRIeWRyYXRlID0gZmliZXIuc3RhdGVOb2RlO1xuICAgICAgdmFyIHR5cGUgPSBmaWJlci50eXBlLFxuICAgICAgICBwcm9wcyA9IGZpYmVyLm1lbW9pemVkUHJvcHM7XG4gICAgICBkaWRIeWRyYXRlW2ludGVybmFsSW5zdGFuY2VLZXldID0gZmliZXI7XG4gICAgICBkaWRIeWRyYXRlW2ludGVybmFsUHJvcHNLZXldID0gcHJvcHM7XG4gICAgICB2YWxpZGF0ZVByb3BlcnRpZXNJbkRldmVsb3BtZW50KHR5cGUsIHByb3BzKTtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFwiZGlhbG9nXCI6XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImNhbmNlbFwiLCBkaWRIeWRyYXRlKTtcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiY2xvc2VcIiwgZGlkSHlkcmF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpZnJhbWVcIjpcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICBjYXNlIFwiZW1iZWRcIjpcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwibG9hZFwiLCBkaWRIeWRyYXRlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInZpZGVvXCI6XG4gICAgICAgIGNhc2UgXCJhdWRpb1wiOlxuICAgICAgICAgIGZvciAodHlwZSA9IDA7IHR5cGUgPCBtZWRpYUV2ZW50VHlwZXMubGVuZ3RoOyB0eXBlKyspXG4gICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KG1lZGlhRXZlbnRUeXBlc1t0eXBlXSwgZGlkSHlkcmF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzb3VyY2VcIjpcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiZXJyb3JcIiwgZGlkSHlkcmF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpbWdcIjpcbiAgICAgICAgY2FzZSBcImltYWdlXCI6XG4gICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImVycm9yXCIsIGRpZEh5ZHJhdGUpO1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJsb2FkXCIsIGRpZEh5ZHJhdGUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGV0YWlsc1wiOlxuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJ0b2dnbGVcIiwgZGlkSHlkcmF0ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpbnB1dFwiOlxuICAgICAgICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoXCJpbnB1dFwiLCBwcm9wcyk7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImludmFsaWRcIiwgZGlkSHlkcmF0ZSk7XG4gICAgICAgICAgdmFsaWRhdGVJbnB1dFByb3BzKGRpZEh5ZHJhdGUsIHByb3BzKTtcbiAgICAgICAgICBpbml0SW5wdXQoXG4gICAgICAgICAgICBkaWRIeWRyYXRlLFxuICAgICAgICAgICAgcHJvcHMudmFsdWUsXG4gICAgICAgICAgICBwcm9wcy5kZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICBwcm9wcy5jaGVja2VkLFxuICAgICAgICAgICAgcHJvcHMuZGVmYXVsdENoZWNrZWQsXG4gICAgICAgICAgICBwcm9wcy50eXBlLFxuICAgICAgICAgICAgcHJvcHMubmFtZSxcbiAgICAgICAgICAgICEwXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm9wdGlvblwiOlxuICAgICAgICAgIHZhbGlkYXRlT3B0aW9uUHJvcHMoZGlkSHlkcmF0ZSwgcHJvcHMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwic2VsZWN0XCI6XG4gICAgICAgICAgY2hlY2tDb250cm9sbGVkVmFsdWVQcm9wcyhcInNlbGVjdFwiLCBwcm9wcyk7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImludmFsaWRcIiwgZGlkSHlkcmF0ZSk7XG4gICAgICAgICAgdmFsaWRhdGVTZWxlY3RQcm9wcyhkaWRIeWRyYXRlLCBwcm9wcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ0ZXh0YXJlYVwiOlxuICAgICAgICAgIGNoZWNrQ29udHJvbGxlZFZhbHVlUHJvcHMoXCJ0ZXh0YXJlYVwiLCBwcm9wcyksXG4gICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiaW52YWxpZFwiLCBkaWRIeWRyYXRlKSxcbiAgICAgICAgICAgIHZhbGlkYXRlVGV4dGFyZWFQcm9wcyhkaWRIeWRyYXRlLCBwcm9wcyksXG4gICAgICAgICAgICBpbml0VGV4dGFyZWEoXG4gICAgICAgICAgICAgIGRpZEh5ZHJhdGUsXG4gICAgICAgICAgICAgIHByb3BzLnZhbHVlLFxuICAgICAgICAgICAgICBwcm9wcy5kZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICAgIHByb3BzLmNoaWxkcmVuXG4gICAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgdHlwZSA9IHByb3BzLmNoaWxkcmVuO1xuICAgICAgKFwic3RyaW5nXCIgIT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgIFwibnVtYmVyXCIgIT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgIFwiYmlnaW50XCIgIT09IHR5cGVvZiB0eXBlKSB8fFxuICAgICAgZGlkSHlkcmF0ZS50ZXh0Q29udGVudCA9PT0gXCJcIiArIHR5cGUgfHxcbiAgICAgICEwID09PSBwcm9wcy5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcgfHxcbiAgICAgIGNoZWNrRm9yVW5tYXRjaGVkVGV4dChkaWRIeWRyYXRlLnRleHRDb250ZW50LCB0eXBlKVxuICAgICAgICA/IChudWxsICE9IHByb3BzLnBvcG92ZXIgJiZcbiAgICAgICAgICAgIChsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiYmVmb3JldG9nZ2xlXCIsIGRpZEh5ZHJhdGUpLFxuICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcInRvZ2dsZVwiLCBkaWRIeWRyYXRlKSksXG4gICAgICAgICAgbnVsbCAhPSBwcm9wcy5vblNjcm9sbCAmJlxuICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcInNjcm9sbFwiLCBkaWRIeWRyYXRlKSxcbiAgICAgICAgICBudWxsICE9IHByb3BzLm9uU2Nyb2xsRW5kICYmXG4gICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwic2Nyb2xsZW5kXCIsIGRpZEh5ZHJhdGUpLFxuICAgICAgICAgIG51bGwgIT0gcHJvcHMub25DbGljayAmJiAoZGlkSHlkcmF0ZS5vbmNsaWNrID0gbm9vcCQxKSxcbiAgICAgICAgICAoZGlkSHlkcmF0ZSA9ICEwKSlcbiAgICAgICAgOiAoZGlkSHlkcmF0ZSA9ICExKTtcbiAgICAgIGRpZEh5ZHJhdGUgfHwgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKGZpYmVyLCAhMCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBvcFRvTmV4dEhvc3RQYXJlbnQoZmliZXIpIHtcbiAgICAgIGZvciAoaHlkcmF0aW9uUGFyZW50RmliZXIgPSBmaWJlci5yZXR1cm47IGh5ZHJhdGlvblBhcmVudEZpYmVyOyApXG4gICAgICAgIHN3aXRjaCAoaHlkcmF0aW9uUGFyZW50RmliZXIudGFnKSB7XG4gICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgIHJvb3RPclNpbmdsZXRvbkNvbnRleHQgPSAhMTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHJvb3RPclNpbmdsZXRvbkNvbnRleHQgPSAhMDtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSBoeWRyYXRpb25QYXJlbnRGaWJlci5yZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wSHlkcmF0aW9uU3RhdGUoZmliZXIpIHtcbiAgICAgIGlmIChmaWJlciAhPT0gaHlkcmF0aW9uUGFyZW50RmliZXIpIHJldHVybiAhMTtcbiAgICAgIGlmICghaXNIeWRyYXRpbmcpXG4gICAgICAgIHJldHVybiBwb3BUb05leHRIb3N0UGFyZW50KGZpYmVyKSwgKGlzSHlkcmF0aW5nID0gITApLCAhMTtcbiAgICAgIHZhciB0YWcgPSBmaWJlci50YWcsXG4gICAgICAgIEpTQ29tcGlsZXJfdGVtcDtcbiAgICAgIGlmICgoSlNDb21waWxlcl90ZW1wID0gMyAhPT0gdGFnICYmIDI3ICE9PSB0YWcpKSB7XG4gICAgICAgIGlmICgoSlNDb21waWxlcl90ZW1wID0gNSA9PT0gdGFnKSlcbiAgICAgICAgICAoSlNDb21waWxlcl90ZW1wID0gZmliZXIudHlwZSksXG4gICAgICAgICAgICAoSlNDb21waWxlcl90ZW1wID1cbiAgICAgICAgICAgICAgIShcImZvcm1cIiAhPT0gSlNDb21waWxlcl90ZW1wICYmIFwiYnV0dG9uXCIgIT09IEpTQ29tcGlsZXJfdGVtcCkgfHxcbiAgICAgICAgICAgICAgc2hvdWxkU2V0VGV4dENvbnRlbnQoZmliZXIudHlwZSwgZmliZXIubWVtb2l6ZWRQcm9wcykpO1xuICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPSAhSlNDb21waWxlcl90ZW1wO1xuICAgICAgfVxuICAgICAgaWYgKEpTQ29tcGlsZXJfdGVtcCAmJiBuZXh0SHlkcmF0YWJsZUluc3RhbmNlKSB7XG4gICAgICAgIGZvciAoSlNDb21waWxlcl90ZW1wID0gbmV4dEh5ZHJhdGFibGVJbnN0YW5jZTsgSlNDb21waWxlcl90ZW1wOyApIHtcbiAgICAgICAgICB2YXIgZGlmZk5vZGUgPSBidWlsZEh5ZHJhdGlvbkRpZmZOb2RlKGZpYmVyLCAwKSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uID1cbiAgICAgICAgICAgICAgZGVzY3JpYmVIeWRyYXRhYmxlSW5zdGFuY2VGb3JEZXZXYXJuaW5ncyhKU0NvbXBpbGVyX3RlbXApO1xuICAgICAgICAgIGRpZmZOb2RlLnNlcnZlclRhaWwucHVzaChkZXNjcmlwdGlvbik7XG4gICAgICAgICAgSlNDb21waWxlcl90ZW1wID1cbiAgICAgICAgICAgIFwiU3VzcGVuc2VcIiA9PT0gZGVzY3JpcHRpb24udHlwZVxuICAgICAgICAgICAgICA/IGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlckh5ZHJhdGlvbkJvdW5kYXJ5KEpTQ29tcGlsZXJfdGVtcClcbiAgICAgICAgICAgICAgOiBnZXROZXh0SHlkcmF0YWJsZShKU0NvbXBpbGVyX3RlbXAubmV4dFNpYmxpbmcpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93T25IeWRyYXRpb25NaXNtYXRjaChmaWJlcik7XG4gICAgICB9XG4gICAgICBwb3BUb05leHRIb3N0UGFyZW50KGZpYmVyKTtcbiAgICAgIGlmICgxMyA9PT0gdGFnKSB7XG4gICAgICAgIGZpYmVyID0gZmliZXIubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgZmliZXIgPSBudWxsICE9PSBmaWJlciA/IGZpYmVyLmRlaHlkcmF0ZWQgOiBudWxsO1xuICAgICAgICBpZiAoIWZpYmVyKVxuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJFeHBlY3RlZCB0byBoYXZlIGEgaHlkcmF0ZWQgc3VzcGVuc2UgaW5zdGFuY2UuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICApO1xuICAgICAgICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID1cbiAgICAgICAgICBnZXROZXh0SHlkcmF0YWJsZUluc3RhbmNlQWZ0ZXJIeWRyYXRpb25Cb3VuZGFyeShmaWJlcik7XG4gICAgICB9IGVsc2UgaWYgKDMxID09PSB0YWcpIHtcbiAgICAgICAgZmliZXIgPSBmaWJlci5tZW1vaXplZFN0YXRlO1xuICAgICAgICBmaWJlciA9IG51bGwgIT09IGZpYmVyID8gZmliZXIuZGVoeWRyYXRlZCA6IG51bGw7XG4gICAgICAgIGlmICghZmliZXIpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIkV4cGVjdGVkIHRvIGhhdmUgYSBoeWRyYXRlZCBzdXNwZW5zZSBpbnN0YW5jZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICk7XG4gICAgICAgIG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPVxuICAgICAgICAgIGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlckh5ZHJhdGlvbkJvdW5kYXJ5KGZpYmVyKTtcbiAgICAgIH0gZWxzZVxuICAgICAgICAyNyA9PT0gdGFnXG4gICAgICAgICAgPyAoKHRhZyA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2UpLFxuICAgICAgICAgICAgaXNTaW5nbGV0b25TY29wZShmaWJlci50eXBlKVxuICAgICAgICAgICAgICA/ICgoZmliZXIgPSBwcmV2aW91c0h5ZHJhdGFibGVPbkVudGVyaW5nU2NvcGVkU2luZ2xldG9uKSxcbiAgICAgICAgICAgICAgICAocHJldmlvdXNIeWRyYXRhYmxlT25FbnRlcmluZ1Njb3BlZFNpbmdsZXRvbiA9IG51bGwpLFxuICAgICAgICAgICAgICAgIChuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZmliZXIpKVxuICAgICAgICAgICAgICA6IChuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gdGFnKSlcbiAgICAgICAgICA6IChuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gaHlkcmF0aW9uUGFyZW50RmliZXJcbiAgICAgICAgICAgICAgPyBnZXROZXh0SHlkcmF0YWJsZShmaWJlci5zdGF0ZU5vZGUubmV4dFNpYmxpbmcpXG4gICAgICAgICAgICAgIDogbnVsbCk7XG4gICAgICByZXR1cm4gITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc2V0SHlkcmF0aW9uU3RhdGUoKSB7XG4gICAgICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gaHlkcmF0aW9uUGFyZW50RmliZXIgPSBudWxsO1xuICAgICAgZGlkU3VzcGVuZE9yRXJyb3JERVYgPSBpc0h5ZHJhdGluZyA9ICExO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGdyYWRlSHlkcmF0aW9uRXJyb3JzVG9SZWNvdmVyYWJsZSgpIHtcbiAgICAgIHZhciBxdWV1ZWRFcnJvcnMgPSBoeWRyYXRpb25FcnJvcnM7XG4gICAgICBudWxsICE9PSBxdWV1ZWRFcnJvcnMgJiZcbiAgICAgICAgKG51bGwgPT09IHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzXG4gICAgICAgICAgPyAod29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMgPSBxdWV1ZWRFcnJvcnMpXG4gICAgICAgICAgOiB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycy5wdXNoLmFwcGx5KFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyxcbiAgICAgICAgICAgICAgcXVldWVkRXJyb3JzXG4gICAgICAgICAgICApLFxuICAgICAgICAoaHlkcmF0aW9uRXJyb3JzID0gbnVsbCkpO1xuICAgICAgcmV0dXJuIHF1ZXVlZEVycm9ycztcbiAgICB9XG4gICAgZnVuY3Rpb24gcXVldWVIeWRyYXRpb25FcnJvcihlcnJvcikge1xuICAgICAgbnVsbCA9PT0gaHlkcmF0aW9uRXJyb3JzXG4gICAgICAgID8gKGh5ZHJhdGlvbkVycm9ycyA9IFtlcnJvcl0pXG4gICAgICAgIDogaHlkcmF0aW9uRXJyb3JzLnB1c2goZXJyb3IpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbWl0UGVuZGluZ0h5ZHJhdGlvbldhcm5pbmdzKCkge1xuICAgICAgdmFyIGRpZmZSb290ID0gaHlkcmF0aW9uRGlmZlJvb3RERVY7XG4gICAgICBpZiAobnVsbCAhPT0gZGlmZlJvb3QpIHtcbiAgICAgICAgaHlkcmF0aW9uRGlmZlJvb3RERVYgPSBudWxsO1xuICAgICAgICBmb3IgKHZhciBkaWZmID0gZGVzY3JpYmVEaWZmKGRpZmZSb290KTsgMCA8IGRpZmZSb290LmNoaWxkcmVuLmxlbmd0aDsgKVxuICAgICAgICAgIGRpZmZSb290ID0gZGlmZlJvb3QuY2hpbGRyZW5bMF07XG4gICAgICAgIHJ1bldpdGhGaWJlckluREVWKGRpZmZSb290LmZpYmVyLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiQSB0cmVlIGh5ZHJhdGVkIGJ1dCBzb21lIGF0dHJpYnV0ZXMgb2YgdGhlIHNlcnZlciByZW5kZXJlZCBIVE1MIGRpZG4ndCBtYXRjaCB0aGUgY2xpZW50IHByb3BlcnRpZXMuIFRoaXMgd29uJ3QgYmUgcGF0Y2hlZCB1cC4gVGhpcyBjYW4gaGFwcGVuIGlmIGEgU1NSLWVkIENsaWVudCBDb21wb25lbnQgdXNlZDpcXG5cXG4tIEEgc2VydmVyL2NsaWVudCBicmFuY2ggYGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJylgLlxcbi0gVmFyaWFibGUgaW5wdXQgc3VjaCBhcyBgRGF0ZS5ub3coKWAgb3IgYE1hdGgucmFuZG9tKClgIHdoaWNoIGNoYW5nZXMgZWFjaCB0aW1lIGl0J3MgY2FsbGVkLlxcbi0gRGF0ZSBmb3JtYXR0aW5nIGluIGEgdXNlcidzIGxvY2FsZSB3aGljaCBkb2Vzbid0IG1hdGNoIHRoZSBzZXJ2ZXIuXFxuLSBFeHRlcm5hbCBjaGFuZ2luZyBkYXRhIHdpdGhvdXQgc2VuZGluZyBhIHNuYXBzaG90IG9mIGl0IGFsb25nIHdpdGggdGhlIEhUTUwuXFxuLSBJbnZhbGlkIEhUTUwgdGFnIG5lc3RpbmcuXFxuXFxuSXQgY2FuIGFsc28gaGFwcGVuIGlmIHRoZSBjbGllbnQgaGFzIGEgYnJvd3NlciBleHRlbnNpb24gaW5zdGFsbGVkIHdoaWNoIG1lc3NlcyB3aXRoIHRoZSBIVE1MIGJlZm9yZSBSZWFjdCBsb2FkZWQuXFxuXFxuJXMlc1wiLFxuICAgICAgICAgICAgXCJodHRwczovL3JlYWN0LmRldi9saW5rL2h5ZHJhdGlvbi1taXNtYXRjaFwiLFxuICAgICAgICAgICAgZGlmZlxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZXNldENvbnRleHREZXBlbmRlbmNpZXMoKSB7XG4gICAgICBsYXN0Q29udGV4dERlcGVuZGVuY3kgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxID0gbnVsbDtcbiAgICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaFByb3ZpZGVyKHByb3ZpZGVyRmliZXIsIGNvbnRleHQsIG5leHRWYWx1ZSkge1xuICAgICAgcHVzaCh2YWx1ZUN1cnNvciwgY29udGV4dC5fY3VycmVudFZhbHVlLCBwcm92aWRlckZpYmVyKTtcbiAgICAgIGNvbnRleHQuX2N1cnJlbnRWYWx1ZSA9IG5leHRWYWx1ZTtcbiAgICAgIHB1c2gocmVuZGVyZXJDdXJzb3JERVYsIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciwgcHJvdmlkZXJGaWJlcik7XG4gICAgICB2b2lkIDAgIT09IGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciAmJlxuICAgICAgICBudWxsICE9PSBjb250ZXh0Ll9jdXJyZW50UmVuZGVyZXIgJiZcbiAgICAgICAgY29udGV4dC5fY3VycmVudFJlbmRlcmVyICE9PSByZW5kZXJlclNpZ2lsICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJEZXRlY3RlZCBtdWx0aXBsZSByZW5kZXJlcnMgY29uY3VycmVudGx5IHJlbmRlcmluZyB0aGUgc2FtZSBjb250ZXh0IHByb3ZpZGVyLiBUaGlzIGlzIGN1cnJlbnRseSB1bnN1cHBvcnRlZC5cIlxuICAgICAgICApO1xuICAgICAgY29udGV4dC5fY3VycmVudFJlbmRlcmVyID0gcmVuZGVyZXJTaWdpbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wUHJvdmlkZXIoY29udGV4dCwgcHJvdmlkZXJGaWJlcikge1xuICAgICAgY29udGV4dC5fY3VycmVudFZhbHVlID0gdmFsdWVDdXJzb3IuY3VycmVudDtcbiAgICAgIHZhciBjdXJyZW50UmVuZGVyZXIgPSByZW5kZXJlckN1cnNvckRFVi5jdXJyZW50O1xuICAgICAgcG9wKHJlbmRlcmVyQ3Vyc29yREVWLCBwcm92aWRlckZpYmVyKTtcbiAgICAgIGNvbnRleHQuX2N1cnJlbnRSZW5kZXJlciA9IGN1cnJlbnRSZW5kZXJlcjtcbiAgICAgIHBvcCh2YWx1ZUN1cnNvciwgcHJvdmlkZXJGaWJlcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNjaGVkdWxlQ29udGV4dFdvcmtPblBhcmVudFBhdGgoXG4gICAgICBwYXJlbnQsXG4gICAgICByZW5kZXJMYW5lcyxcbiAgICAgIHByb3BhZ2F0aW9uUm9vdFxuICAgICkge1xuICAgICAgZm9yICg7IG51bGwgIT09IHBhcmVudDsgKSB7XG4gICAgICAgIHZhciBhbHRlcm5hdGUgPSBwYXJlbnQuYWx0ZXJuYXRlO1xuICAgICAgICAocGFyZW50LmNoaWxkTGFuZXMgJiByZW5kZXJMYW5lcykgIT09IHJlbmRlckxhbmVzXG4gICAgICAgICAgPyAoKHBhcmVudC5jaGlsZExhbmVzIHw9IHJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgIG51bGwgIT09IGFsdGVybmF0ZSAmJiAoYWx0ZXJuYXRlLmNoaWxkTGFuZXMgfD0gcmVuZGVyTGFuZXMpKVxuICAgICAgICAgIDogbnVsbCAhPT0gYWx0ZXJuYXRlICYmXG4gICAgICAgICAgICAoYWx0ZXJuYXRlLmNoaWxkTGFuZXMgJiByZW5kZXJMYW5lcykgIT09IHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAoYWx0ZXJuYXRlLmNoaWxkTGFuZXMgfD0gcmVuZGVyTGFuZXMpO1xuICAgICAgICBpZiAocGFyZW50ID09PSBwcm9wYWdhdGlvblJvb3QpIGJyZWFrO1xuICAgICAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICAgICAgfVxuICAgICAgcGFyZW50ICE9PSBwcm9wYWdhdGlvblJvb3QgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkV4cGVjdGVkIHRvIGZpbmQgdGhlIHByb3BhZ2F0aW9uIHJvb3Qgd2hlbiBzY2hlZHVsaW5nIGNvbnRleHQgd29yay4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9wYWdhdGVDb250ZXh0Q2hhbmdlcyhcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgY29udGV4dHMsXG4gICAgICByZW5kZXJMYW5lcyxcbiAgICAgIGZvcmNlUHJvcGFnYXRlRW50aXJlVHJlZVxuICAgICkge1xuICAgICAgdmFyIGZpYmVyID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICBudWxsICE9PSBmaWJlciAmJiAoZmliZXIucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgZm9yICg7IG51bGwgIT09IGZpYmVyOyApIHtcbiAgICAgICAgdmFyIGxpc3QgPSBmaWJlci5kZXBlbmRlbmNpZXM7XG4gICAgICAgIGlmIChudWxsICE9PSBsaXN0KSB7XG4gICAgICAgICAgdmFyIG5leHRGaWJlciA9IGZpYmVyLmNoaWxkO1xuICAgICAgICAgIGxpc3QgPSBsaXN0LmZpcnN0Q29udGV4dDtcbiAgICAgICAgICBhOiBmb3IgKDsgbnVsbCAhPT0gbGlzdDsgKSB7XG4gICAgICAgICAgICB2YXIgZGVwZW5kZW5jeSA9IGxpc3Q7XG4gICAgICAgICAgICBsaXN0ID0gZmliZXI7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbnRleHRzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgICAgICBpZiAoZGVwZW5kZW5jeS5jb250ZXh0ID09PSBjb250ZXh0c1tpXSkge1xuICAgICAgICAgICAgICAgIGxpc3QubGFuZXMgfD0gcmVuZGVyTGFuZXM7XG4gICAgICAgICAgICAgICAgZGVwZW5kZW5jeSA9IGxpc3QuYWx0ZXJuYXRlO1xuICAgICAgICAgICAgICAgIG51bGwgIT09IGRlcGVuZGVuY3kgJiYgKGRlcGVuZGVuY3kubGFuZXMgfD0gcmVuZGVyTGFuZXMpO1xuICAgICAgICAgICAgICAgIHNjaGVkdWxlQ29udGV4dFdvcmtPblBhcmVudFBhdGgoXG4gICAgICAgICAgICAgICAgICBsaXN0LnJldHVybixcbiAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGZvcmNlUHJvcGFnYXRlRW50aXJlVHJlZSB8fCAobmV4dEZpYmVyID0gbnVsbCk7XG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGlzdCA9IGRlcGVuZGVuY3kubmV4dDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoMTggPT09IGZpYmVyLnRhZykge1xuICAgICAgICAgIG5leHRGaWJlciA9IGZpYmVyLnJldHVybjtcbiAgICAgICAgICBpZiAobnVsbCA9PT0gbmV4dEZpYmVyKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgIFwiV2UganVzdCBjYW1lIGZyb20gYSBwYXJlbnQgc28gd2UgbXVzdCBoYXZlIGhhZCBhIHBhcmVudC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBuZXh0RmliZXIubGFuZXMgfD0gcmVuZGVyTGFuZXM7XG4gICAgICAgICAgbGlzdCA9IG5leHRGaWJlci5hbHRlcm5hdGU7XG4gICAgICAgICAgbnVsbCAhPT0gbGlzdCAmJiAobGlzdC5sYW5lcyB8PSByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgc2NoZWR1bGVDb250ZXh0V29ya09uUGFyZW50UGF0aChcbiAgICAgICAgICAgIG5leHRGaWJlcixcbiAgICAgICAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NcbiAgICAgICAgICApO1xuICAgICAgICAgIG5leHRGaWJlciA9IG51bGw7XG4gICAgICAgIH0gZWxzZSBuZXh0RmliZXIgPSBmaWJlci5jaGlsZDtcbiAgICAgICAgaWYgKG51bGwgIT09IG5leHRGaWJlcikgbmV4dEZpYmVyLnJldHVybiA9IGZpYmVyO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgZm9yIChuZXh0RmliZXIgPSBmaWJlcjsgbnVsbCAhPT0gbmV4dEZpYmVyOyApIHtcbiAgICAgICAgICAgIGlmIChuZXh0RmliZXIgPT09IHdvcmtJblByb2dyZXNzKSB7XG4gICAgICAgICAgICAgIG5leHRGaWJlciA9IG51bGw7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmliZXIgPSBuZXh0RmliZXIuc2libGluZztcbiAgICAgICAgICAgIGlmIChudWxsICE9PSBmaWJlcikge1xuICAgICAgICAgICAgICBmaWJlci5yZXR1cm4gPSBuZXh0RmliZXIucmV0dXJuO1xuICAgICAgICAgICAgICBuZXh0RmliZXIgPSBmaWJlcjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0RmliZXIgPSBuZXh0RmliZXIucmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgZmliZXIgPSBuZXh0RmliZXI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb3BhZ2F0ZVBhcmVudENvbnRleHRDaGFuZ2VzKFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICBmb3JjZVByb3BhZ2F0ZUVudGlyZVRyZWVcbiAgICApIHtcbiAgICAgIGN1cnJlbnQgPSBudWxsO1xuICAgICAgZm9yIChcbiAgICAgICAgdmFyIHBhcmVudCA9IHdvcmtJblByb2dyZXNzLCBpc0luc2lkZVByb3BhZ2F0aW9uQmFpbG91dCA9ICExO1xuICAgICAgICBudWxsICE9PSBwYXJlbnQ7XG5cbiAgICAgICkge1xuICAgICAgICBpZiAoIWlzSW5zaWRlUHJvcGFnYXRpb25CYWlsb3V0KVxuICAgICAgICAgIGlmICgwICE9PSAocGFyZW50LmZsYWdzICYgNTI0Mjg4KSkgaXNJbnNpZGVQcm9wYWdhdGlvbkJhaWxvdXQgPSAhMDtcbiAgICAgICAgICBlbHNlIGlmICgwICE9PSAocGFyZW50LmZsYWdzICYgMjYyMTQ0KSkgYnJlYWs7XG4gICAgICAgIGlmICgxMCA9PT0gcGFyZW50LnRhZykge1xuICAgICAgICAgIHZhciBjdXJyZW50UGFyZW50ID0gcGFyZW50LmFsdGVybmF0ZTtcbiAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudFBhcmVudClcbiAgICAgICAgICAgIHRocm93IEVycm9yKFwiU2hvdWxkIGhhdmUgYSBjdXJyZW50IGZpYmVyLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiKTtcbiAgICAgICAgICBjdXJyZW50UGFyZW50ID0gY3VycmVudFBhcmVudC5tZW1vaXplZFByb3BzO1xuICAgICAgICAgIGlmIChudWxsICE9PSBjdXJyZW50UGFyZW50KSB7XG4gICAgICAgICAgICB2YXIgY29udGV4dCA9IHBhcmVudC50eXBlO1xuICAgICAgICAgICAgb2JqZWN0SXMocGFyZW50LnBlbmRpbmdQcm9wcy52YWx1ZSwgY3VycmVudFBhcmVudC52YWx1ZSkgfHxcbiAgICAgICAgICAgICAgKG51bGwgIT09IGN1cnJlbnRcbiAgICAgICAgICAgICAgICA/IGN1cnJlbnQucHVzaChjb250ZXh0KVxuICAgICAgICAgICAgICAgIDogKGN1cnJlbnQgPSBbY29udGV4dF0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAocGFyZW50ID09PSBob3N0VHJhbnNpdGlvblByb3ZpZGVyQ3Vyc29yLmN1cnJlbnQpIHtcbiAgICAgICAgICBjdXJyZW50UGFyZW50ID0gcGFyZW50LmFsdGVybmF0ZTtcbiAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudFBhcmVudClcbiAgICAgICAgICAgIHRocm93IEVycm9yKFwiU2hvdWxkIGhhdmUgYSBjdXJyZW50IGZpYmVyLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiKTtcbiAgICAgICAgICBjdXJyZW50UGFyZW50Lm1lbW9pemVkU3RhdGUubWVtb2l6ZWRTdGF0ZSAhPT1cbiAgICAgICAgICAgIHBhcmVudC5tZW1vaXplZFN0YXRlLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgIChudWxsICE9PSBjdXJyZW50XG4gICAgICAgICAgICAgID8gY3VycmVudC5wdXNoKEhvc3RUcmFuc2l0aW9uQ29udGV4dClcbiAgICAgICAgICAgICAgOiAoY3VycmVudCA9IFtIb3N0VHJhbnNpdGlvbkNvbnRleHRdKSk7XG4gICAgICAgIH1cbiAgICAgICAgcGFyZW50ID0gcGFyZW50LnJldHVybjtcbiAgICAgIH1cbiAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgcHJvcGFnYXRlQ29udGV4dENoYW5nZXMoXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICBmb3JjZVByb3BhZ2F0ZUVudGlyZVRyZWVcbiAgICAgICAgKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDI2MjE0NDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tJZkNvbnRleHRDaGFuZ2VkKGN1cnJlbnREZXBlbmRlbmNpZXMpIHtcbiAgICAgIGZvciAoXG4gICAgICAgIGN1cnJlbnREZXBlbmRlbmNpZXMgPSBjdXJyZW50RGVwZW5kZW5jaWVzLmZpcnN0Q29udGV4dDtcbiAgICAgICAgbnVsbCAhPT0gY3VycmVudERlcGVuZGVuY2llcztcblxuICAgICAgKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhb2JqZWN0SXMoXG4gICAgICAgICAgICBjdXJyZW50RGVwZW5kZW5jaWVzLmNvbnRleHQuX2N1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgIGN1cnJlbnREZXBlbmRlbmNpZXMubWVtb2l6ZWRWYWx1ZVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgY3VycmVudERlcGVuZGVuY2llcyA9IGN1cnJlbnREZXBlbmRlbmNpZXMubmV4dDtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IG51bGw7XG4gICAgICB3b3JrSW5Qcm9ncmVzcyA9IHdvcmtJblByb2dyZXNzLmRlcGVuZGVuY2llcztcbiAgICAgIG51bGwgIT09IHdvcmtJblByb2dyZXNzICYmICh3b3JrSW5Qcm9ncmVzcy5maXJzdENvbnRleHQgPSBudWxsKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhZENvbnRleHQoY29udGV4dCkge1xuICAgICAgaXNEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFViAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiQ29udGV4dCBjYW4gb25seSBiZSByZWFkIHdoaWxlIFJlYWN0IGlzIHJlbmRlcmluZy4gSW4gY2xhc3NlcywgeW91IGNhbiByZWFkIGl0IGluIHRoZSByZW5kZXIgbWV0aG9kIG9yIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gSW4gZnVuY3Rpb24gY29tcG9uZW50cywgeW91IGNhbiByZWFkIGl0IGRpcmVjdGx5IGluIHRoZSBmdW5jdGlvbiBib2R5LCBidXQgbm90IGluc2lkZSBIb29rcyBsaWtlIHVzZVJlZHVjZXIoKSBvciB1c2VNZW1vKCkuXCJcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dEZvckNvbnN1bWVyKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEsIGNvbnRleHQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWFkQ29udGV4dER1cmluZ1JlY29uY2lsaWF0aW9uKGNvbnN1bWVyLCBjb250ZXh0KSB7XG4gICAgICBudWxsID09PSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciQxICYmIHByZXBhcmVUb1JlYWRDb250ZXh0KGNvbnN1bWVyKTtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dEZvckNvbnN1bWVyKGNvbnN1bWVyLCBjb250ZXh0KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVhZENvbnRleHRGb3JDb25zdW1lcihjb25zdW1lciwgY29udGV4dCkge1xuICAgICAgdmFyIHZhbHVlID0gY29udGV4dC5fY3VycmVudFZhbHVlO1xuICAgICAgY29udGV4dCA9IHsgY29udGV4dDogY29udGV4dCwgbWVtb2l6ZWRWYWx1ZTogdmFsdWUsIG5leHQ6IG51bGwgfTtcbiAgICAgIGlmIChudWxsID09PSBsYXN0Q29udGV4dERlcGVuZGVuY3kpIHtcbiAgICAgICAgaWYgKG51bGwgPT09IGNvbnN1bWVyKVxuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJDb250ZXh0IGNhbiBvbmx5IGJlIHJlYWQgd2hpbGUgUmVhY3QgaXMgcmVuZGVyaW5nLiBJbiBjbGFzc2VzLCB5b3UgY2FuIHJlYWQgaXQgaW4gdGhlIHJlbmRlciBtZXRob2Qgb3IgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLiBJbiBmdW5jdGlvbiBjb21wb25lbnRzLCB5b3UgY2FuIHJlYWQgaXQgZGlyZWN0bHkgaW4gdGhlIGZ1bmN0aW9uIGJvZHksIGJ1dCBub3QgaW5zaWRlIEhvb2tzIGxpa2UgdXNlUmVkdWNlcigpIG9yIHVzZU1lbW8oKS5cIlxuICAgICAgICAgICk7XG4gICAgICAgIGxhc3RDb250ZXh0RGVwZW5kZW5jeSA9IGNvbnRleHQ7XG4gICAgICAgIGNvbnN1bWVyLmRlcGVuZGVuY2llcyA9IHtcbiAgICAgICAgICBsYW5lczogMCxcbiAgICAgICAgICBmaXJzdENvbnRleHQ6IGNvbnRleHQsXG4gICAgICAgICAgX2RlYnVnVGhlbmFibGVTdGF0ZTogbnVsbFxuICAgICAgICB9O1xuICAgICAgICBjb25zdW1lci5mbGFncyB8PSA1MjQyODg7XG4gICAgICB9IGVsc2UgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbGFzdENvbnRleHREZXBlbmRlbmN5Lm5leHQgPSBjb250ZXh0O1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVDYWNoZSgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbnRyb2xsZXI6IG5ldyBBYm9ydENvbnRyb2xsZXJMb2NhbCgpLFxuICAgICAgICBkYXRhOiBuZXcgTWFwKCksXG4gICAgICAgIHJlZkNvdW50OiAwXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXRhaW5DYWNoZShjYWNoZSkge1xuICAgICAgY2FjaGUuY29udHJvbGxlci5zaWduYWwuYWJvcnRlZCAmJlxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgXCJBIGNhY2hlIGluc3RhbmNlIHdhcyByZXRhaW5lZCBhZnRlciBpdCB3YXMgYWxyZWFkeSBmcmVlZC4gVGhpcyBsaWtlbHkgaW5kaWNhdGVzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICk7XG4gICAgICBjYWNoZS5yZWZDb3VudCsrO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxlYXNlQ2FjaGUoY2FjaGUpIHtcbiAgICAgIGNhY2hlLnJlZkNvdW50LS07XG4gICAgICAwID4gY2FjaGUucmVmQ291bnQgJiZcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIFwiQSBjYWNoZSBpbnN0YW5jZSB3YXMgcmVsZWFzZWQgYWZ0ZXIgaXQgd2FzIGFscmVhZHkgZnJlZWQuIFRoaXMgbGlrZWx5IGluZGljYXRlcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICApO1xuICAgICAgMCA9PT0gY2FjaGUucmVmQ291bnQgJiZcbiAgICAgICAgc2NoZWR1bGVDYWxsYmFjayQyKE5vcm1hbFByaW9yaXR5LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY2FjaGUuY29udHJvbGxlci5hYm9ydCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhcnRVcGRhdGVUaW1lckJ5TGFuZShsYW5lLCBtZXRob2QsIGZpYmVyKSB7XG4gICAgICBpZiAoMCAhPT0gKGxhbmUgJiAxMjcpKVxuICAgICAgICAwID4gYmxvY2tpbmdVcGRhdGVUaW1lICYmXG4gICAgICAgICAgKChibG9ja2luZ1VwZGF0ZVRpbWUgPSBub3coKSksXG4gICAgICAgICAgKGJsb2NraW5nVXBkYXRlVGFzayA9IGNyZWF0ZVRhc2sobWV0aG9kKSksXG4gICAgICAgICAgKGJsb2NraW5nVXBkYXRlTWV0aG9kTmFtZSA9IG1ldGhvZCksXG4gICAgICAgICAgbnVsbCAhPSBmaWJlciAmJlxuICAgICAgICAgICAgKGJsb2NraW5nVXBkYXRlQ29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpKSxcbiAgICAgICAgICAoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpICE9PSBOb0NvbnRleHQgJiZcbiAgICAgICAgICAgICgoY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSA9ICEwKSxcbiAgICAgICAgICAgIChibG9ja2luZ1VwZGF0ZVR5cGUgPSBTUEFXTkVEX1VQREFURSkpLFxuICAgICAgICAgIChsYW5lID0gcmVzb2x2ZUV2ZW50VGltZVN0YW1wKCkpLFxuICAgICAgICAgIChtZXRob2QgPSByZXNvbHZlRXZlbnRUeXBlKCkpLFxuICAgICAgICAgIGxhbmUgIT09IGJsb2NraW5nRXZlbnRSZXBlYXRUaW1lIHx8IG1ldGhvZCAhPT0gYmxvY2tpbmdFdmVudFR5cGVcbiAgICAgICAgICAgID8gKGJsb2NraW5nRXZlbnRSZXBlYXRUaW1lID0gLTEuMSlcbiAgICAgICAgICAgIDogbnVsbCAhPT0gbWV0aG9kICYmIChibG9ja2luZ1VwZGF0ZVR5cGUgPSBTUEFXTkVEX1VQREFURSksXG4gICAgICAgICAgKGJsb2NraW5nRXZlbnRUaW1lID0gbGFuZSksXG4gICAgICAgICAgKGJsb2NraW5nRXZlbnRUeXBlID0gbWV0aG9kKSk7XG4gICAgICBlbHNlIGlmIChcbiAgICAgICAgMCAhPT0gKGxhbmUgJiA0MTk0MDQ4KSAmJlxuICAgICAgICAwID4gdHJhbnNpdGlvblVwZGF0ZVRpbWUgJiZcbiAgICAgICAgKCh0cmFuc2l0aW9uVXBkYXRlVGltZSA9IG5vdygpKSxcbiAgICAgICAgKHRyYW5zaXRpb25VcGRhdGVUYXNrID0gY3JlYXRlVGFzayhtZXRob2QpKSxcbiAgICAgICAgKHRyYW5zaXRpb25VcGRhdGVNZXRob2ROYW1lID0gbWV0aG9kKSxcbiAgICAgICAgbnVsbCAhPSBmaWJlciAmJlxuICAgICAgICAgICh0cmFuc2l0aW9uVXBkYXRlQ29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpKSxcbiAgICAgICAgMCA+IHRyYW5zaXRpb25TdGFydFRpbWUpXG4gICAgICApIHtcbiAgICAgICAgbGFuZSA9IHJlc29sdmVFdmVudFRpbWVTdGFtcCgpO1xuICAgICAgICBtZXRob2QgPSByZXNvbHZlRXZlbnRUeXBlKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBsYW5lICE9PSB0cmFuc2l0aW9uRXZlbnRSZXBlYXRUaW1lIHx8XG4gICAgICAgICAgbWV0aG9kICE9PSB0cmFuc2l0aW9uRXZlbnRUeXBlXG4gICAgICAgIClcbiAgICAgICAgICB0cmFuc2l0aW9uRXZlbnRSZXBlYXRUaW1lID0gLTEuMTtcbiAgICAgICAgdHJhbnNpdGlvbkV2ZW50VGltZSA9IGxhbmU7XG4gICAgICAgIHRyYW5zaXRpb25FdmVudFR5cGUgPSBtZXRob2Q7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0SG9zdEFjdGlvblRpbWVyKGZpYmVyKSB7XG4gICAgICBpZiAoMCA+IGJsb2NraW5nVXBkYXRlVGltZSkge1xuICAgICAgICBibG9ja2luZ1VwZGF0ZVRpbWUgPSBub3coKTtcbiAgICAgICAgYmxvY2tpbmdVcGRhdGVUYXNrID0gbnVsbCAhPSBmaWJlci5fZGVidWdUYXNrID8gZmliZXIuX2RlYnVnVGFzayA6IG51bGw7XG4gICAgICAgIChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dCAmJlxuICAgICAgICAgIChibG9ja2luZ1VwZGF0ZVR5cGUgPSBTUEFXTkVEX1VQREFURSk7XG4gICAgICAgIHZhciBuZXdFdmVudFRpbWUgPSByZXNvbHZlRXZlbnRUaW1lU3RhbXAoKSxcbiAgICAgICAgICBuZXdFdmVudFR5cGUgPSByZXNvbHZlRXZlbnRUeXBlKCk7XG4gICAgICAgIG5ld0V2ZW50VGltZSAhPT0gYmxvY2tpbmdFdmVudFJlcGVhdFRpbWUgfHxcbiAgICAgICAgbmV3RXZlbnRUeXBlICE9PSBibG9ja2luZ0V2ZW50VHlwZVxuICAgICAgICAgID8gKGJsb2NraW5nRXZlbnRSZXBlYXRUaW1lID0gLTEuMSlcbiAgICAgICAgICA6IG51bGwgIT09IG5ld0V2ZW50VHlwZSAmJiAoYmxvY2tpbmdVcGRhdGVUeXBlID0gU1BBV05FRF9VUERBVEUpO1xuICAgICAgICBibG9ja2luZ0V2ZW50VGltZSA9IG5ld0V2ZW50VGltZTtcbiAgICAgICAgYmxvY2tpbmdFdmVudFR5cGUgPSBuZXdFdmVudFR5cGU7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIDAgPiB0cmFuc2l0aW9uVXBkYXRlVGltZSAmJlxuICAgICAgICAoKHRyYW5zaXRpb25VcGRhdGVUaW1lID0gbm93KCkpLFxuICAgICAgICAodHJhbnNpdGlvblVwZGF0ZVRhc2sgPVxuICAgICAgICAgIG51bGwgIT0gZmliZXIuX2RlYnVnVGFzayA/IGZpYmVyLl9kZWJ1Z1Rhc2sgOiBudWxsKSxcbiAgICAgICAgMCA+IHRyYW5zaXRpb25TdGFydFRpbWUpXG4gICAgICApIHtcbiAgICAgICAgZmliZXIgPSByZXNvbHZlRXZlbnRUaW1lU3RhbXAoKTtcbiAgICAgICAgbmV3RXZlbnRUaW1lID0gcmVzb2x2ZUV2ZW50VHlwZSgpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZmliZXIgIT09IHRyYW5zaXRpb25FdmVudFJlcGVhdFRpbWUgfHxcbiAgICAgICAgICBuZXdFdmVudFRpbWUgIT09IHRyYW5zaXRpb25FdmVudFR5cGVcbiAgICAgICAgKVxuICAgICAgICAgIHRyYW5zaXRpb25FdmVudFJlcGVhdFRpbWUgPSAtMS4xO1xuICAgICAgICB0cmFuc2l0aW9uRXZlbnRUaW1lID0gZmliZXI7XG4gICAgICAgIHRyYW5zaXRpb25FdmVudFR5cGUgPSBuZXdFdmVudFRpbWU7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKSB7XG4gICAgICB2YXIgcHJldkVmZmVjdER1cmF0aW9uID0gcHJvZmlsZXJFZmZlY3REdXJhdGlvbjtcbiAgICAgIHByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPSAwO1xuICAgICAgcmV0dXJuIHByZXZFZmZlY3REdXJhdGlvbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wTmVzdGVkRWZmZWN0RHVyYXRpb25zKHByZXZFZmZlY3REdXJhdGlvbikge1xuICAgICAgdmFyIGVsYXBzZWRUaW1lID0gcHJvZmlsZXJFZmZlY3REdXJhdGlvbjtcbiAgICAgIHByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPSBwcmV2RWZmZWN0RHVyYXRpb247XG4gICAgICByZXR1cm4gZWxhcHNlZFRpbWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGJ1YmJsZU5lc3RlZEVmZmVjdER1cmF0aW9ucyhwcmV2RWZmZWN0RHVyYXRpb24pIHtcbiAgICAgIHZhciBlbGFwc2VkVGltZSA9IHByb2ZpbGVyRWZmZWN0RHVyYXRpb247XG4gICAgICBwcm9maWxlckVmZmVjdER1cmF0aW9uICs9IHByZXZFZmZlY3REdXJhdGlvbjtcbiAgICAgIHJldHVybiBlbGFwc2VkVGltZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVzZXRDb21wb25lbnRFZmZlY3RUaW1lcnMoKSB7XG4gICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lID0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lID0gLTEuMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaENvbXBvbmVudEVmZmVjdFN0YXJ0KCkge1xuICAgICAgdmFyIHByZXZFZmZlY3RTdGFydCA9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZTtcbiAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSA9IC0xLjE7XG4gICAgICByZXR1cm4gcHJldkVmZmVjdFN0YXJ0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwb3BDb21wb25lbnRFZmZlY3RTdGFydChwcmV2RWZmZWN0U3RhcnQpIHtcbiAgICAgIDAgPD0gcHJldkVmZmVjdFN0YXJ0ICYmIChjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgPSBwcmV2RWZmZWN0U3RhcnQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoQ29tcG9uZW50RWZmZWN0RHVyYXRpb24oKSB7XG4gICAgICB2YXIgcHJldkVmZmVjdER1cmF0aW9uID0gY29tcG9uZW50RWZmZWN0RHVyYXRpb247XG4gICAgICBjb21wb25lbnRFZmZlY3REdXJhdGlvbiA9IC0wO1xuICAgICAgcmV0dXJuIHByZXZFZmZlY3REdXJhdGlvbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wQ29tcG9uZW50RWZmZWN0RHVyYXRpb24ocHJldkVmZmVjdER1cmF0aW9uKSB7XG4gICAgICAwIDw9IHByZXZFZmZlY3REdXJhdGlvbiAmJiAoY29tcG9uZW50RWZmZWN0RHVyYXRpb24gPSBwcmV2RWZmZWN0RHVyYXRpb24pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoQ29tcG9uZW50RWZmZWN0RXJyb3JzKCkge1xuICAgICAgdmFyIHByZXZFcnJvcnMgPSBjb21wb25lbnRFZmZlY3RFcnJvcnM7XG4gICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnMgPSBudWxsO1xuICAgICAgcmV0dXJuIHByZXZFcnJvcnM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2hDb21wb25lbnRFZmZlY3REaWRTcGF3blVwZGF0ZSgpIHtcbiAgICAgIHZhciBwcmV2ID0gY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZTtcbiAgICAgIGNvbXBvbmVudEVmZmVjdFNwYXduZWRVcGRhdGUgPSAhMTtcbiAgICAgIHJldHVybiBwcmV2O1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdGFydFByb2ZpbGVyVGltZXIoZmliZXIpIHtcbiAgICAgIHByb2ZpbGVyU3RhcnRUaW1lID0gbm93KCk7XG4gICAgICAwID4gZmliZXIuYWN0dWFsU3RhcnRUaW1lICYmIChmaWJlci5hY3R1YWxTdGFydFRpbWUgPSBwcm9maWxlclN0YXJ0VGltZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRHVyYXRpb24oZmliZXIpIHtcbiAgICAgIGlmICgwIDw9IHByb2ZpbGVyU3RhcnRUaW1lKSB7XG4gICAgICAgIHZhciBlbGFwc2VkVGltZSA9IG5vdygpIC0gcHJvZmlsZXJTdGFydFRpbWU7XG4gICAgICAgIGZpYmVyLmFjdHVhbER1cmF0aW9uICs9IGVsYXBzZWRUaW1lO1xuICAgICAgICBmaWJlci5zZWxmQmFzZUR1cmF0aW9uID0gZWxhcHNlZFRpbWU7XG4gICAgICAgIHByb2ZpbGVyU3RhcnRUaW1lID0gLTE7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkSW5jb21wbGV0ZUR1cmF0aW9uKGZpYmVyKSB7XG4gICAgICBpZiAoMCA8PSBwcm9maWxlclN0YXJ0VGltZSkge1xuICAgICAgICB2YXIgZWxhcHNlZFRpbWUgPSBub3coKSAtIHByb2ZpbGVyU3RhcnRUaW1lO1xuICAgICAgICBmaWJlci5hY3R1YWxEdXJhdGlvbiArPSBlbGFwc2VkVGltZTtcbiAgICAgICAgcHJvZmlsZXJTdGFydFRpbWUgPSAtMTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVjb3JkRWZmZWN0RHVyYXRpb24oKSB7XG4gICAgICBpZiAoMCA8PSBwcm9maWxlclN0YXJ0VGltZSkge1xuICAgICAgICB2YXIgZW5kVGltZSA9IG5vdygpLFxuICAgICAgICAgIGVsYXBzZWRUaW1lID0gZW5kVGltZSAtIHByb2ZpbGVyU3RhcnRUaW1lO1xuICAgICAgICBwcm9maWxlclN0YXJ0VGltZSA9IC0xO1xuICAgICAgICBwcm9maWxlckVmZmVjdER1cmF0aW9uICs9IGVsYXBzZWRUaW1lO1xuICAgICAgICBjb21wb25lbnRFZmZlY3REdXJhdGlvbiArPSBlbGFwc2VkVGltZTtcbiAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSA9IGVuZFRpbWU7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY29yZEVmZmVjdEVycm9yKGVycm9ySW5mbykge1xuICAgICAgbnVsbCA9PT0gY29tcG9uZW50RWZmZWN0RXJyb3JzICYmIChjb21wb25lbnRFZmZlY3RFcnJvcnMgPSBbXSk7XG4gICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnMucHVzaChlcnJvckluZm8pO1xuICAgICAgbnVsbCA9PT0gY29tbWl0RXJyb3JzICYmIChjb21taXRFcnJvcnMgPSBbXSk7XG4gICAgICBjb21taXRFcnJvcnMucHVzaChlcnJvckluZm8pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdGFydEVmZmVjdFRpbWVyKCkge1xuICAgICAgcHJvZmlsZXJTdGFydFRpbWUgPSBub3coKTtcbiAgICAgIDAgPiBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiZcbiAgICAgICAgKGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSA9IHByb2ZpbGVyU3RhcnRUaW1lKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhbnNmZXJBY3R1YWxEdXJhdGlvbihmaWJlcikge1xuICAgICAgZm9yICh2YXIgY2hpbGQgPSBmaWJlci5jaGlsZDsgY2hpbGQ7IClcbiAgICAgICAgKGZpYmVyLmFjdHVhbER1cmF0aW9uICs9IGNoaWxkLmFjdHVhbER1cmF0aW9uKSwgKGNoaWxkID0gY2hpbGQuc2libGluZyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVudGFuZ2xlQXN5bmNBY3Rpb24odHJhbnNpdGlvbiwgdGhlbmFibGUpIHtcbiAgICAgIGlmIChudWxsID09PSBjdXJyZW50RW50YW5nbGVkTGlzdGVuZXJzKSB7XG4gICAgICAgIHZhciBlbnRhbmdsZWRMaXN0ZW5lcnMgPSAoY3VycmVudEVudGFuZ2xlZExpc3RlbmVycyA9IFtdKTtcbiAgICAgICAgY3VycmVudEVudGFuZ2xlZFBlbmRpbmdDb3VudCA9IDA7XG4gICAgICAgIGN1cnJlbnRFbnRhbmdsZWRMYW5lID0gcmVxdWVzdFRyYW5zaXRpb25MYW5lKCk7XG4gICAgICAgIGN1cnJlbnRFbnRhbmdsZWRBY3Rpb25UaGVuYWJsZSA9IHtcbiAgICAgICAgICBzdGF0dXM6IFwicGVuZGluZ1wiLFxuICAgICAgICAgIHZhbHVlOiB2b2lkIDAsXG4gICAgICAgICAgdGhlbjogZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgICAgIGVudGFuZ2xlZExpc3RlbmVycy5wdXNoKHJlc29sdmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnRFbnRhbmdsZWRQZW5kaW5nQ291bnQrKztcbiAgICAgIHRoZW5hYmxlLnRoZW4ocGluZ0VuZ3RhbmdsZWRBY3Rpb25TY29wZSwgcGluZ0VuZ3RhbmdsZWRBY3Rpb25TY29wZSk7XG4gICAgICByZXR1cm4gdGhlbmFibGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBpbmdFbmd0YW5nbGVkQWN0aW9uU2NvcGUoKSB7XG4gICAgICBpZiAoXG4gICAgICAgIDAgPT09IC0tY3VycmVudEVudGFuZ2xlZFBlbmRpbmdDb3VudCAmJlxuICAgICAgICAoLTEgPCB0cmFuc2l0aW9uVXBkYXRlVGltZSB8fCAodHJhbnNpdGlvblN0YXJ0VGltZSA9IC0xLjEpLFxuICAgICAgICBudWxsICE9PSBjdXJyZW50RW50YW5nbGVkTGlzdGVuZXJzKVxuICAgICAgKSB7XG4gICAgICAgIG51bGwgIT09IGN1cnJlbnRFbnRhbmdsZWRBY3Rpb25UaGVuYWJsZSAmJlxuICAgICAgICAgIChjdXJyZW50RW50YW5nbGVkQWN0aW9uVGhlbmFibGUuc3RhdHVzID0gXCJmdWxmaWxsZWRcIik7XG4gICAgICAgIHZhciBsaXN0ZW5lcnMgPSBjdXJyZW50RW50YW5nbGVkTGlzdGVuZXJzO1xuICAgICAgICBjdXJyZW50RW50YW5nbGVkTGlzdGVuZXJzID0gbnVsbDtcbiAgICAgICAgY3VycmVudEVudGFuZ2xlZExhbmUgPSAwO1xuICAgICAgICBjdXJyZW50RW50YW5nbGVkQWN0aW9uVGhlbmFibGUgPSBudWxsO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3RlbmVycy5sZW5ndGg7IGkrKykgKDAsIGxpc3RlbmVyc1tpXSkoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY2hhaW5UaGVuYWJsZVZhbHVlKHRoZW5hYmxlLCByZXN1bHQpIHtcbiAgICAgIHZhciBsaXN0ZW5lcnMgPSBbXSxcbiAgICAgICAgdGhlbmFibGVXaXRoT3ZlcnJpZGUgPSB7XG4gICAgICAgICAgc3RhdHVzOiBcInBlbmRpbmdcIixcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgICByZWFzb246IG51bGwsXG4gICAgICAgICAgdGhlbjogZnVuY3Rpb24gKHJlc29sdmUpIHtcbiAgICAgICAgICAgIGxpc3RlbmVycy5wdXNoKHJlc29sdmUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIHRoZW5hYmxlLnRoZW4oXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aGVuYWJsZVdpdGhPdmVycmlkZS5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgICAgIHRoZW5hYmxlV2l0aE92ZXJyaWRlLnZhbHVlID0gcmVzdWx0O1xuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdGVuZXJzLmxlbmd0aDsgaSsrKSAoMCwgbGlzdGVuZXJzW2ldKShyZXN1bHQpO1xuICAgICAgICB9LFxuICAgICAgICBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICB0aGVuYWJsZVdpdGhPdmVycmlkZS5zdGF0dXMgPSBcInJlamVjdGVkXCI7XG4gICAgICAgICAgdGhlbmFibGVXaXRoT3ZlcnJpZGUucmVhc29uID0gZXJyb3I7XG4gICAgICAgICAgZm9yIChlcnJvciA9IDA7IGVycm9yIDwgbGlzdGVuZXJzLmxlbmd0aDsgZXJyb3IrKylcbiAgICAgICAgICAgICgwLCBsaXN0ZW5lcnNbZXJyb3JdKSh2b2lkIDApO1xuICAgICAgICB9XG4gICAgICApO1xuICAgICAgcmV0dXJuIHRoZW5hYmxlV2l0aE92ZXJyaWRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwZWVrQ2FjaGVGcm9tUG9vbCgpIHtcbiAgICAgIHZhciBjYWNoZVJlc3VtZWRGcm9tUHJldmlvdXNSZW5kZXIgPSByZXN1bWVkQ2FjaGUuY3VycmVudDtcbiAgICAgIHJldHVybiBudWxsICE9PSBjYWNoZVJlc3VtZWRGcm9tUHJldmlvdXNSZW5kZXJcbiAgICAgICAgPyBjYWNoZVJlc3VtZWRGcm9tUHJldmlvdXNSZW5kZXJcbiAgICAgICAgOiB3b3JrSW5Qcm9ncmVzc1Jvb3QucG9vbGVkQ2FjaGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2hUcmFuc2l0aW9uKG9mZnNjcmVlbldvcmtJblByb2dyZXNzLCBwcmV2Q2FjaGVQb29sKSB7XG4gICAgICBudWxsID09PSBwcmV2Q2FjaGVQb29sXG4gICAgICAgID8gcHVzaChyZXN1bWVkQ2FjaGUsIHJlc3VtZWRDYWNoZS5jdXJyZW50LCBvZmZzY3JlZW5Xb3JrSW5Qcm9ncmVzcylcbiAgICAgICAgOiBwdXNoKHJlc3VtZWRDYWNoZSwgcHJldkNhY2hlUG9vbC5wb29sLCBvZmZzY3JlZW5Xb3JrSW5Qcm9ncmVzcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN1c3BlbmRlZENhY2hlKCkge1xuICAgICAgdmFyIGNhY2hlRnJvbVBvb2wgPSBwZWVrQ2FjaGVGcm9tUG9vbCgpO1xuICAgICAgcmV0dXJuIG51bGwgPT09IGNhY2hlRnJvbVBvb2xcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogeyBwYXJlbnQ6IENhY2hlQ29udGV4dC5fY3VycmVudFZhbHVlLCBwb29sOiBjYWNoZUZyb21Qb29sIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVRoZW5hYmxlU3RhdGUoKSB7XG4gICAgICByZXR1cm4geyBkaWRXYXJuQWJvdXRVbmNhY2hlZFByb21pc2U6ICExLCB0aGVuYWJsZXM6IFtdIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzVGhlbmFibGVSZXNvbHZlZCh0aGVuYWJsZSkge1xuICAgICAgdGhlbmFibGUgPSB0aGVuYWJsZS5zdGF0dXM7XG4gICAgICByZXR1cm4gXCJmdWxmaWxsZWRcIiA9PT0gdGhlbmFibGUgfHwgXCJyZWplY3RlZFwiID09PSB0aGVuYWJsZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdHJhY2tVc2VkVGhlbmFibGUodGhlbmFibGVTdGF0ZSwgdGhlbmFibGUsIGluZGV4KSB7XG4gICAgICBudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSAmJlxuICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuZGlkVXNlUHJvbWlzZSA9ICEwKTtcbiAgICAgIHZhciB0cmFja2VkVGhlbmFibGVzID0gdGhlbmFibGVTdGF0ZS50aGVuYWJsZXM7XG4gICAgICBpbmRleCA9IHRyYWNrZWRUaGVuYWJsZXNbaW5kZXhdO1xuICAgICAgdm9pZCAwID09PSBpbmRleFxuICAgICAgICA/IHRyYWNrZWRUaGVuYWJsZXMucHVzaCh0aGVuYWJsZSlcbiAgICAgICAgOiBpbmRleCAhPT0gdGhlbmFibGUgJiZcbiAgICAgICAgICAodGhlbmFibGVTdGF0ZS5kaWRXYXJuQWJvdXRVbmNhY2hlZFByb21pc2UgfHxcbiAgICAgICAgICAgICgodGhlbmFibGVTdGF0ZS5kaWRXYXJuQWJvdXRVbmNhY2hlZFByb21pc2UgPSAhMCksXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkEgY29tcG9uZW50IHdhcyBzdXNwZW5kZWQgYnkgYW4gdW5jYWNoZWQgcHJvbWlzZS4gQ3JlYXRpbmcgcHJvbWlzZXMgaW5zaWRlIGEgQ2xpZW50IENvbXBvbmVudCBvciBob29rIGlzIG5vdCB5ZXQgc3VwcG9ydGVkLCBleGNlcHQgdmlhIGEgU3VzcGVuc2UtY29tcGF0aWJsZSBsaWJyYXJ5IG9yIGZyYW1ld29yay5cIlxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgdGhlbmFibGUudGhlbihub29wJDEsIG5vb3AkMSksXG4gICAgICAgICAgKHRoZW5hYmxlID0gaW5kZXgpKTtcbiAgICAgIGlmICh2b2lkIDAgPT09IHRoZW5hYmxlLl9kZWJ1Z0luZm8pIHtcbiAgICAgICAgdGhlbmFibGVTdGF0ZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICB0cmFja2VkVGhlbmFibGVzID0gdGhlbmFibGUuZGlzcGxheU5hbWU7XG4gICAgICAgIHZhciBpb0luZm8gPSB7XG4gICAgICAgICAgbmFtZTpcbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiB0cmFja2VkVGhlbmFibGVzID8gdHJhY2tlZFRoZW5hYmxlcyA6IFwiUHJvbWlzZVwiLFxuICAgICAgICAgIHN0YXJ0OiB0aGVuYWJsZVN0YXRlLFxuICAgICAgICAgIGVuZDogdGhlbmFibGVTdGF0ZSxcbiAgICAgICAgICB2YWx1ZTogdGhlbmFibGVcbiAgICAgICAgfTtcbiAgICAgICAgdGhlbmFibGUuX2RlYnVnSW5mbyA9IFt7IGF3YWl0ZWQ6IGlvSW5mbyB9XTtcbiAgICAgICAgXCJmdWxmaWxsZWRcIiAhPT0gdGhlbmFibGUuc3RhdHVzICYmXG4gICAgICAgICAgXCJyZWplY3RlZFwiICE9PSB0aGVuYWJsZS5zdGF0dXMgJiZcbiAgICAgICAgICAoKHRoZW5hYmxlU3RhdGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpb0luZm8uZW5kID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGhlbmFibGUudGhlbih0aGVuYWJsZVN0YXRlLCB0aGVuYWJsZVN0YXRlKSk7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHRoZW5hYmxlLnN0YXR1cykge1xuICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgcmV0dXJuIHRoZW5hYmxlLnZhbHVlO1xuICAgICAgICBjYXNlIFwicmVqZWN0ZWRcIjpcbiAgICAgICAgICB0aHJvdyAoXG4gICAgICAgICAgICAoKHRoZW5hYmxlU3RhdGUgPSB0aGVuYWJsZS5yZWFzb24pLFxuICAgICAgICAgICAgY2hlY2tJZlVzZVdyYXBwZWRJbkFzeW5jQ2F0Y2godGhlbmFibGVTdGF0ZSksXG4gICAgICAgICAgICB0aGVuYWJsZVN0YXRlKVxuICAgICAgICAgICk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgaWYgKFwic3RyaW5nXCIgPT09IHR5cGVvZiB0aGVuYWJsZS5zdGF0dXMpXG4gICAgICAgICAgICB0aGVuYWJsZS50aGVuKG5vb3AkMSwgbm9vcCQxKTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoZW5hYmxlU3RhdGUgPSB3b3JrSW5Qcm9ncmVzc1Jvb3Q7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG51bGwgIT09IHRoZW5hYmxlU3RhdGUgJiZcbiAgICAgICAgICAgICAgMTAwIDwgdGhlbmFibGVTdGF0ZS5zaGVsbFN1c3BlbmRDb3VudGVyXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiQW4gdW5rbm93biBDb21wb25lbnQgaXMgYW4gYXN5bmMgQ2xpZW50IENvbXBvbmVudC4gT25seSBTZXJ2ZXIgQ29tcG9uZW50cyBjYW4gYmUgYXN5bmMgYXQgdGhlIG1vbWVudC4gVGhpcyBlcnJvciBpcyBvZnRlbiBjYXVzZWQgYnkgYWNjaWRlbnRhbGx5IGFkZGluZyBgJ3VzZSBjbGllbnQnYCB0byBhIG1vZHVsZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gZm9yIHRoZSBzZXJ2ZXIuXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoZW5hYmxlU3RhdGUgPSB0aGVuYWJsZTtcbiAgICAgICAgICAgIHRoZW5hYmxlU3RhdGUuc3RhdHVzID0gXCJwZW5kaW5nXCI7XG4gICAgICAgICAgICB0aGVuYWJsZVN0YXRlLnRoZW4oXG4gICAgICAgICAgICAgIGZ1bmN0aW9uIChmdWxmaWxsZWRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIGlmIChcInBlbmRpbmdcIiA9PT0gdGhlbmFibGUuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICB2YXIgZnVsZmlsbGVkVGhlbmFibGUgPSB0aGVuYWJsZTtcbiAgICAgICAgICAgICAgICAgIGZ1bGZpbGxlZFRoZW5hYmxlLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCI7XG4gICAgICAgICAgICAgICAgICBmdWxmaWxsZWRUaGVuYWJsZS52YWx1ZSA9IGZ1bGZpbGxlZFZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKFwicGVuZGluZ1wiID09PSB0aGVuYWJsZS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgIHZhciByZWplY3RlZFRoZW5hYmxlID0gdGhlbmFibGU7XG4gICAgICAgICAgICAgICAgICByZWplY3RlZFRoZW5hYmxlLnN0YXR1cyA9IFwicmVqZWN0ZWRcIjtcbiAgICAgICAgICAgICAgICAgIHJlamVjdGVkVGhlbmFibGUucmVhc29uID0gZXJyb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBzd2l0Y2ggKHRoZW5hYmxlLnN0YXR1cykge1xuICAgICAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgICAgICByZXR1cm4gdGhlbmFibGUudmFsdWU7XG4gICAgICAgICAgICBjYXNlIFwicmVqZWN0ZWRcIjpcbiAgICAgICAgICAgICAgdGhyb3cgKFxuICAgICAgICAgICAgICAgICgodGhlbmFibGVTdGF0ZSA9IHRoZW5hYmxlLnJlYXNvbiksXG4gICAgICAgICAgICAgICAgY2hlY2tJZlVzZVdyYXBwZWRJbkFzeW5jQ2F0Y2godGhlbmFibGVTdGF0ZSksXG4gICAgICAgICAgICAgICAgdGhlbmFibGVTdGF0ZSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgc3VzcGVuZGVkVGhlbmFibGUgPSB0aGVuYWJsZTtcbiAgICAgICAgICBuZWVkc1RvUmVzZXRTdXNwZW5kZWRUaGVuYWJsZURFViA9ICEwO1xuICAgICAgICAgIHRocm93IFN1c3BlbnNlRXhjZXB0aW9uO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlTGF6eShsYXp5VHlwZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGNhbGxMYXp5SW5pdEluREVWKGxhenlUeXBlKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgaWYgKG51bGwgIT09IHggJiYgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHggJiYgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgeC50aGVuKVxuICAgICAgICAgIHRocm93IChcbiAgICAgICAgICAgICgoc3VzcGVuZGVkVGhlbmFibGUgPSB4KSxcbiAgICAgICAgICAgIChuZWVkc1RvUmVzZXRTdXNwZW5kZWRUaGVuYWJsZURFViA9ICEwKSxcbiAgICAgICAgICAgIFN1c3BlbnNlRXhjZXB0aW9uKVxuICAgICAgICAgICk7XG4gICAgICAgIHRocm93IHg7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN1c3BlbmRlZFRoZW5hYmxlKCkge1xuICAgICAgaWYgKG51bGwgPT09IHN1c3BlbmRlZFRoZW5hYmxlKVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIkV4cGVjdGVkIGEgc3VzcGVuZGVkIHRoZW5hYmxlLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICApO1xuICAgICAgdmFyIHRoZW5hYmxlID0gc3VzcGVuZGVkVGhlbmFibGU7XG4gICAgICBzdXNwZW5kZWRUaGVuYWJsZSA9IG51bGw7XG4gICAgICBuZWVkc1RvUmVzZXRTdXNwZW5kZWRUaGVuYWJsZURFViA9ICExO1xuICAgICAgcmV0dXJuIHRoZW5hYmxlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjaGVja0lmVXNlV3JhcHBlZEluQXN5bmNDYXRjaChyZWplY3RlZFJlYXNvbikge1xuICAgICAgaWYgKFxuICAgICAgICByZWplY3RlZFJlYXNvbiA9PT0gU3VzcGVuc2VFeGNlcHRpb24gfHxcbiAgICAgICAgcmVqZWN0ZWRSZWFzb24gPT09IFN1c3BlbnNlQWN0aW9uRXhjZXB0aW9uXG4gICAgICApXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwiSG9va3MgYXJlIG5vdCBzdXBwb3J0ZWQgaW5zaWRlIGFuIGFzeW5jIGNvbXBvbmVudC4gVGhpcyBlcnJvciBpcyBvZnRlbiBjYXVzZWQgYnkgYWNjaWRlbnRhbGx5IGFkZGluZyBgJ3VzZSBjbGllbnQnYCB0byBhIG1vZHVsZSB0aGF0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gZm9yIHRoZSBzZXJ2ZXIuXCJcbiAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaERlYnVnSW5mbyhkZWJ1Z0luZm8pIHtcbiAgICAgIHZhciBwcmV2aW91c0RlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm87XG4gICAgICBudWxsICE9IGRlYnVnSW5mbyAmJlxuICAgICAgICAoY3VycmVudERlYnVnSW5mbyA9XG4gICAgICAgICAgbnVsbCA9PT0gcHJldmlvdXNEZWJ1Z0luZm9cbiAgICAgICAgICAgID8gZGVidWdJbmZvXG4gICAgICAgICAgICA6IHByZXZpb3VzRGVidWdJbmZvLmNvbmNhdChkZWJ1Z0luZm8pKTtcbiAgICAgIHJldHVybiBwcmV2aW91c0RlYnVnSW5mbztcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q3VycmVudERlYnVnVGFzaygpIHtcbiAgICAgIHZhciBkZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvO1xuICAgICAgaWYgKG51bGwgIT0gZGVidWdJbmZvKVxuICAgICAgICBmb3IgKHZhciBpID0gZGVidWdJbmZvLmxlbmd0aCAtIDE7IDAgPD0gaTsgaS0tKVxuICAgICAgICAgIGlmIChudWxsICE9IGRlYnVnSW5mb1tpXS5uYW1lKSB7XG4gICAgICAgICAgICB2YXIgZGVidWdUYXNrID0gZGVidWdJbmZvW2ldLmRlYnVnVGFzaztcbiAgICAgICAgICAgIGlmIChudWxsICE9IGRlYnVnVGFzaykgcmV0dXJuIGRlYnVnVGFzaztcbiAgICAgICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVGcmFnbWVudFByb3BzKGVsZW1lbnQsIGZpYmVyLCByZXR1cm5GaWJlcikge1xuICAgICAgZm9yICh2YXIga2V5cyA9IE9iamVjdC5rZXlzKGVsZW1lbnQucHJvcHMpLCBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIGtleSA9IGtleXNbaV07XG4gICAgICAgIGlmIChcImNoaWxkcmVuXCIgIT09IGtleSAmJiBcImtleVwiICE9PSBrZXkpIHtcbiAgICAgICAgICBudWxsID09PSBmaWJlciAmJlxuICAgICAgICAgICAgKChmaWJlciA9IGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQoZWxlbWVudCwgcmV0dXJuRmliZXIubW9kZSwgMCkpLFxuICAgICAgICAgICAgKGZpYmVyLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKSxcbiAgICAgICAgICAgIChmaWJlci5yZXR1cm4gPSByZXR1cm5GaWJlcikpO1xuICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgZmliZXIsXG4gICAgICAgICAgICBmdW5jdGlvbiAoZXJyb3JlZEtleSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiSW52YWxpZCBwcm9wIGAlc2Agc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4gUmVhY3QuRnJhZ21lbnQgY2FuIG9ubHkgaGF2ZSBga2V5YCBhbmQgYGNoaWxkcmVuYCBwcm9wcy5cIixcbiAgICAgICAgICAgICAgICBlcnJvcmVkS2V5XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAga2V5XG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB1bndyYXBUaGVuYWJsZSh0aGVuYWJsZSkge1xuICAgICAgdmFyIGluZGV4ID0gdGhlbmFibGVJbmRleENvdW50ZXIkMTtcbiAgICAgIHRoZW5hYmxlSW5kZXhDb3VudGVyJDEgKz0gMTtcbiAgICAgIG51bGwgPT09IHRoZW5hYmxlU3RhdGUkMSAmJiAodGhlbmFibGVTdGF0ZSQxID0gY3JlYXRlVGhlbmFibGVTdGF0ZSgpKTtcbiAgICAgIHJldHVybiB0cmFja1VzZWRUaGVuYWJsZSh0aGVuYWJsZVN0YXRlJDEsIHRoZW5hYmxlLCBpbmRleCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvZXJjZVJlZih3b3JrSW5Qcm9ncmVzcywgZWxlbWVudCkge1xuICAgICAgZWxlbWVudCA9IGVsZW1lbnQucHJvcHMucmVmO1xuICAgICAgd29ya0luUHJvZ3Jlc3MucmVmID0gdm9pZCAwICE9PSBlbGVtZW50ID8gZWxlbWVudCA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZUltcGwocmV0dXJuRmliZXIsIG5ld0NoaWxkKSB7XG4gICAgICBpZiAobmV3Q2hpbGQuJCR0eXBlb2YgPT09IFJFQUNUX0xFR0FDWV9FTEVNRU5UX1RZUEUpXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICdBIFJlYWN0IEVsZW1lbnQgZnJvbSBhbiBvbGRlciB2ZXJzaW9uIG9mIFJlYWN0IHdhcyByZW5kZXJlZC4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBJdCBjYW4gaGFwcGVuIGlmOlxcbi0gTXVsdGlwbGUgY29waWVzIG9mIHRoZSBcInJlYWN0XCIgcGFja2FnZSBpcyB1c2VkLlxcbi0gQSBsaWJyYXJ5IHByZS1idW5kbGVkIGFuIG9sZCBjb3B5IG9mIFwicmVhY3RcIiBvciBcInJlYWN0L2pzeC1ydW50aW1lXCIuXFxuLSBBIGNvbXBpbGVyIHRyaWVzIHRvIFwiaW5saW5lXCIgSlNYIGluc3RlYWQgb2YgdXNpbmcgdGhlIHJ1bnRpbWUuJ1xuICAgICAgICApO1xuICAgICAgcmV0dXJuRmliZXIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobmV3Q2hpbGQpO1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIFwiT2JqZWN0cyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQgKGZvdW5kOiBcIiArXG4gICAgICAgICAgKFwiW29iamVjdCBPYmplY3RdXCIgPT09IHJldHVybkZpYmVyXG4gICAgICAgICAgICA/IFwib2JqZWN0IHdpdGgga2V5cyB7XCIgKyBPYmplY3Qua2V5cyhuZXdDaGlsZCkuam9pbihcIiwgXCIpICsgXCJ9XCJcbiAgICAgICAgICAgIDogcmV0dXJuRmliZXIpICtcbiAgICAgICAgICBcIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdGhyb3dPbkludmFsaWRPYmplY3RUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCkge1xuICAgICAgdmFyIGRlYnVnVGFzayA9IGdldEN1cnJlbnREZWJ1Z1Rhc2soKTtcbiAgICAgIG51bGwgIT09IGRlYnVnVGFza1xuICAgICAgICA/IGRlYnVnVGFzay5ydW4oXG4gICAgICAgICAgICB0aHJvd09uSW52YWxpZE9iamVjdFR5cGVJbXBsLmJpbmQobnVsbCwgcmV0dXJuRmliZXIsIG5ld0NoaWxkKVxuICAgICAgICAgIClcbiAgICAgICAgOiB0aHJvd09uSW52YWxpZE9iamVjdFR5cGVJbXBsKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5PbkZ1bmN0aW9uVHlwZUltcGwocmV0dXJuRmliZXIsIGludmFsaWRDaGlsZCkge1xuICAgICAgdmFyIHBhcmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHJldHVybkZpYmVyKSB8fCBcIkNvbXBvbmVudFwiO1xuICAgICAgb3duZXJIYXNGdW5jdGlvblR5cGVXYXJuaW5nW3BhcmVudE5hbWVdIHx8XG4gICAgICAgICgob3duZXJIYXNGdW5jdGlvblR5cGVXYXJuaW5nW3BhcmVudE5hbWVdID0gITApLFxuICAgICAgICAoaW52YWxpZENoaWxkID1cbiAgICAgICAgICBpbnZhbGlkQ2hpbGQuZGlzcGxheU5hbWUgfHwgaW52YWxpZENoaWxkLm5hbWUgfHwgXCJDb21wb25lbnRcIiksXG4gICAgICAgIDMgPT09IHJldHVybkZpYmVyLnRhZ1xuICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJGdW5jdGlvbnMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkLiBUaGlzIG1heSBoYXBwZW4gaWYgeW91IHJldHVybiAlcyBpbnN0ZWFkIG9mIDwlcyAvPiBmcm9tIHJlbmRlci4gT3IgbWF5YmUgeW91IG1lYW50IHRvIGNhbGwgdGhpcyBmdW5jdGlvbiByYXRoZXIgdGhhbiByZXR1cm4gaXQuXFxuICByb290LnJlbmRlciglcylcIixcbiAgICAgICAgICAgICAgaW52YWxpZENoaWxkLFxuICAgICAgICAgICAgICBpbnZhbGlkQ2hpbGQsXG4gICAgICAgICAgICAgIGludmFsaWRDaGlsZFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJGdW5jdGlvbnMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkLiBUaGlzIG1heSBoYXBwZW4gaWYgeW91IHJldHVybiAlcyBpbnN0ZWFkIG9mIDwlcyAvPiBmcm9tIHJlbmRlci4gT3IgbWF5YmUgeW91IG1lYW50IHRvIGNhbGwgdGhpcyBmdW5jdGlvbiByYXRoZXIgdGhhbiByZXR1cm4gaXQuXFxuICA8JXM+eyVzfTwvJXM+XCIsXG4gICAgICAgICAgICAgIGludmFsaWRDaGlsZCxcbiAgICAgICAgICAgICAgaW52YWxpZENoaWxkLFxuICAgICAgICAgICAgICBwYXJlbnROYW1lLFxuICAgICAgICAgICAgICBpbnZhbGlkQ2hpbGQsXG4gICAgICAgICAgICAgIHBhcmVudE5hbWVcbiAgICAgICAgICAgICkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3YXJuT25GdW5jdGlvblR5cGUocmV0dXJuRmliZXIsIGludmFsaWRDaGlsZCkge1xuICAgICAgdmFyIGRlYnVnVGFzayA9IGdldEN1cnJlbnREZWJ1Z1Rhc2soKTtcbiAgICAgIG51bGwgIT09IGRlYnVnVGFza1xuICAgICAgICA/IGRlYnVnVGFzay5ydW4oXG4gICAgICAgICAgICB3YXJuT25GdW5jdGlvblR5cGVJbXBsLmJpbmQobnVsbCwgcmV0dXJuRmliZXIsIGludmFsaWRDaGlsZClcbiAgICAgICAgICApXG4gICAgICAgIDogd2Fybk9uRnVuY3Rpb25UeXBlSW1wbChyZXR1cm5GaWJlciwgaW52YWxpZENoaWxkKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2Fybk9uU3ltYm9sVHlwZUltcGwocmV0dXJuRmliZXIsIGludmFsaWRDaGlsZCkge1xuICAgICAgdmFyIHBhcmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHJldHVybkZpYmVyKSB8fCBcIkNvbXBvbmVudFwiO1xuICAgICAgb3duZXJIYXNTeW1ib2xUeXBlV2FybmluZ1twYXJlbnROYW1lXSB8fFxuICAgICAgICAoKG93bmVySGFzU3ltYm9sVHlwZVdhcm5pbmdbcGFyZW50TmFtZV0gPSAhMCksXG4gICAgICAgIChpbnZhbGlkQ2hpbGQgPSBTdHJpbmcoaW52YWxpZENoaWxkKSksXG4gICAgICAgIDMgPT09IHJldHVybkZpYmVyLnRhZ1xuICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJTeW1ib2xzIGFyZSBub3QgdmFsaWQgYXMgYSBSZWFjdCBjaGlsZC5cXG4gIHJvb3QucmVuZGVyKCVzKVwiLFxuICAgICAgICAgICAgICBpbnZhbGlkQ2hpbGRcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiU3ltYm9scyBhcmUgbm90IHZhbGlkIGFzIGEgUmVhY3QgY2hpbGQuXFxuICA8JXM+JXM8LyVzPlwiLFxuICAgICAgICAgICAgICBwYXJlbnROYW1lLFxuICAgICAgICAgICAgICBpbnZhbGlkQ2hpbGQsXG4gICAgICAgICAgICAgIHBhcmVudE5hbWVcbiAgICAgICAgICAgICkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3YXJuT25TeW1ib2xUeXBlKHJldHVybkZpYmVyLCBpbnZhbGlkQ2hpbGQpIHtcbiAgICAgIHZhciBkZWJ1Z1Rhc2sgPSBnZXRDdXJyZW50RGVidWdUYXNrKCk7XG4gICAgICBudWxsICE9PSBkZWJ1Z1Rhc2tcbiAgICAgICAgPyBkZWJ1Z1Rhc2sucnVuKFxuICAgICAgICAgICAgd2Fybk9uU3ltYm9sVHlwZUltcGwuYmluZChudWxsLCByZXR1cm5GaWJlciwgaW52YWxpZENoaWxkKVxuICAgICAgICAgIClcbiAgICAgICAgOiB3YXJuT25TeW1ib2xUeXBlSW1wbChyZXR1cm5GaWJlciwgaW52YWxpZENoaWxkKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlQ2hpbGRSZWNvbmNpbGVyKHNob3VsZFRyYWNrU2lkZUVmZmVjdHMpIHtcbiAgICAgIGZ1bmN0aW9uIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjaGlsZFRvRGVsZXRlKSB7XG4gICAgICAgIGlmIChzaG91bGRUcmFja1NpZGVFZmZlY3RzKSB7XG4gICAgICAgICAgdmFyIGRlbGV0aW9ucyA9IHJldHVybkZpYmVyLmRlbGV0aW9ucztcbiAgICAgICAgICBudWxsID09PSBkZWxldGlvbnNcbiAgICAgICAgICAgID8gKChyZXR1cm5GaWJlci5kZWxldGlvbnMgPSBbY2hpbGRUb0RlbGV0ZV0pLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIuZmxhZ3MgfD0gMTYpKVxuICAgICAgICAgICAgOiBkZWxldGlvbnMucHVzaChjaGlsZFRvRGVsZXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZnVuY3Rpb24gZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKSB7XG4gICAgICAgIGlmICghc2hvdWxkVHJhY2tTaWRlRWZmZWN0cykgcmV0dXJuIG51bGw7XG4gICAgICAgIGZvciAoOyBudWxsICE9PSBjdXJyZW50Rmlyc3RDaGlsZDsgKVxuICAgICAgICAgIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCksXG4gICAgICAgICAgICAoY3VycmVudEZpcnN0Q2hpbGQgPSBjdXJyZW50Rmlyc3RDaGlsZC5zaWJsaW5nKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBtYXBSZW1haW5pbmdDaGlsZHJlbihjdXJyZW50Rmlyc3RDaGlsZCkge1xuICAgICAgICBmb3IgKHZhciBleGlzdGluZ0NoaWxkcmVuID0gbmV3IE1hcCgpOyBudWxsICE9PSBjdXJyZW50Rmlyc3RDaGlsZDsgKVxuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnRGaXJzdENoaWxkLmtleVxuICAgICAgICAgICAgPyBleGlzdGluZ0NoaWxkcmVuLnNldChjdXJyZW50Rmlyc3RDaGlsZC5rZXksIGN1cnJlbnRGaXJzdENoaWxkKVxuICAgICAgICAgICAgOiBleGlzdGluZ0NoaWxkcmVuLnNldChjdXJyZW50Rmlyc3RDaGlsZC5pbmRleCwgY3VycmVudEZpcnN0Q2hpbGQpLFxuICAgICAgICAgICAgKGN1cnJlbnRGaXJzdENoaWxkID0gY3VycmVudEZpcnN0Q2hpbGQuc2libGluZyk7XG4gICAgICAgIHJldHVybiBleGlzdGluZ0NoaWxkcmVuO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gdXNlRmliZXIoZmliZXIsIHBlbmRpbmdQcm9wcykge1xuICAgICAgICBmaWJlciA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKGZpYmVyLCBwZW5kaW5nUHJvcHMpO1xuICAgICAgICBmaWJlci5pbmRleCA9IDA7XG4gICAgICAgIGZpYmVyLnNpYmxpbmcgPSBudWxsO1xuICAgICAgICByZXR1cm4gZmliZXI7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBwbGFjZUNoaWxkKG5ld0ZpYmVyLCBsYXN0UGxhY2VkSW5kZXgsIG5ld0luZGV4KSB7XG4gICAgICAgIG5ld0ZpYmVyLmluZGV4ID0gbmV3SW5kZXg7XG4gICAgICAgIGlmICghc2hvdWxkVHJhY2tTaWRlRWZmZWN0cylcbiAgICAgICAgICByZXR1cm4gKG5ld0ZpYmVyLmZsYWdzIHw9IDEwNDg1NzYpLCBsYXN0UGxhY2VkSW5kZXg7XG4gICAgICAgIG5ld0luZGV4ID0gbmV3RmliZXIuYWx0ZXJuYXRlO1xuICAgICAgICBpZiAobnVsbCAhPT0gbmV3SW5kZXgpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChuZXdJbmRleCA9IG5ld0luZGV4LmluZGV4KSxcbiAgICAgICAgICAgIG5ld0luZGV4IDwgbGFzdFBsYWNlZEluZGV4XG4gICAgICAgICAgICAgID8gKChuZXdGaWJlci5mbGFncyB8PSA2NzEwODg2NiksIGxhc3RQbGFjZWRJbmRleClcbiAgICAgICAgICAgICAgOiBuZXdJbmRleFxuICAgICAgICAgICk7XG4gICAgICAgIG5ld0ZpYmVyLmZsYWdzIHw9IDY3MTA4ODY2O1xuICAgICAgICByZXR1cm4gbGFzdFBsYWNlZEluZGV4O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gcGxhY2VTaW5nbGVDaGlsZChuZXdGaWJlcikge1xuICAgICAgICBzaG91bGRUcmFja1NpZGVFZmZlY3RzICYmXG4gICAgICAgICAgbnVsbCA9PT0gbmV3RmliZXIuYWx0ZXJuYXRlICYmXG4gICAgICAgICAgKG5ld0ZpYmVyLmZsYWdzIHw9IDY3MTA4ODY2KTtcbiAgICAgICAgcmV0dXJuIG5ld0ZpYmVyO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gdXBkYXRlVGV4dE5vZGUocmV0dXJuRmliZXIsIGN1cnJlbnQsIHRleHRDb250ZW50LCBsYW5lcykge1xuICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudCB8fCA2ICE9PSBjdXJyZW50LnRhZylcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGN1cnJlbnQgPSBjcmVhdGVGaWJlckZyb21UZXh0KFxuICAgICAgICAgICAgICB0ZXh0Q29udGVudCxcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIubW9kZSxcbiAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgKGN1cnJlbnQucmV0dXJuID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgKGN1cnJlbnQuX2RlYnVnT3duZXIgPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAoY3VycmVudC5fZGVidWdUYXNrID0gcmV0dXJuRmliZXIuX2RlYnVnVGFzayksXG4gICAgICAgICAgICAoY3VycmVudC5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbyksXG4gICAgICAgICAgICBjdXJyZW50XG4gICAgICAgICAgKTtcbiAgICAgICAgY3VycmVudCA9IHVzZUZpYmVyKGN1cnJlbnQsIHRleHRDb250ZW50KTtcbiAgICAgICAgY3VycmVudC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgICAgY3VycmVudC5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbztcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiB1cGRhdGVFbGVtZW50KHJldHVybkZpYmVyLCBjdXJyZW50LCBlbGVtZW50LCBsYW5lcykge1xuICAgICAgICB2YXIgZWxlbWVudFR5cGUgPSBlbGVtZW50LnR5cGU7XG4gICAgICAgIGlmIChlbGVtZW50VHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSlcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGN1cnJlbnQgPSB1cGRhdGVGcmFnbWVudChcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIGVsZW1lbnQucHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICBlbGVtZW50LmtleVxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMoZWxlbWVudCwgY3VycmVudCwgcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgY3VycmVudFxuICAgICAgICAgICk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgKGN1cnJlbnQuZWxlbWVudFR5cGUgPT09IGVsZW1lbnRUeXBlIHx8XG4gICAgICAgICAgICBpc0NvbXBhdGlibGVGYW1pbHlGb3JIb3RSZWxvYWRpbmcoY3VycmVudCwgZWxlbWVudCkgfHxcbiAgICAgICAgICAgIChcIm9iamVjdFwiID09PSB0eXBlb2YgZWxlbWVudFR5cGUgJiZcbiAgICAgICAgICAgICAgbnVsbCAhPT0gZWxlbWVudFR5cGUgJiZcbiAgICAgICAgICAgICAgZWxlbWVudFR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSAmJlxuICAgICAgICAgICAgICByZXNvbHZlTGF6eShlbGVtZW50VHlwZSkgPT09IGN1cnJlbnQudHlwZSkpXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGN1cnJlbnQgPSB1c2VGaWJlcihjdXJyZW50LCBlbGVtZW50LnByb3BzKSksXG4gICAgICAgICAgICBjb2VyY2VSZWYoY3VycmVudCwgZWxlbWVudCksXG4gICAgICAgICAgICAoY3VycmVudC5yZXR1cm4gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAoY3VycmVudC5fZGVidWdPd25lciA9IGVsZW1lbnQuX293bmVyKSxcbiAgICAgICAgICAgIChjdXJyZW50Ll9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKSxcbiAgICAgICAgICAgIGN1cnJlbnRcbiAgICAgICAgICApO1xuICAgICAgICBjdXJyZW50ID0gY3JlYXRlRmliZXJGcm9tRWxlbWVudChlbGVtZW50LCByZXR1cm5GaWJlci5tb2RlLCBsYW5lcyk7XG4gICAgICAgIGNvZXJjZVJlZihjdXJyZW50LCBlbGVtZW50KTtcbiAgICAgICAgY3VycmVudC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgICAgY3VycmVudC5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbztcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiB1cGRhdGVQb3J0YWwocmV0dXJuRmliZXIsIGN1cnJlbnQsIHBvcnRhbCwgbGFuZXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgfHxcbiAgICAgICAgICA0ICE9PSBjdXJyZW50LnRhZyB8fFxuICAgICAgICAgIGN1cnJlbnQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm8gIT09IHBvcnRhbC5jb250YWluZXJJbmZvIHx8XG4gICAgICAgICAgY3VycmVudC5zdGF0ZU5vZGUuaW1wbGVtZW50YXRpb24gIT09IHBvcnRhbC5pbXBsZW1lbnRhdGlvblxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChjdXJyZW50ID0gY3JlYXRlRmliZXJGcm9tUG9ydGFsKHBvcnRhbCwgcmV0dXJuRmliZXIubW9kZSwgbGFuZXMpKSxcbiAgICAgICAgICAgIChjdXJyZW50LnJldHVybiA9IHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgIChjdXJyZW50Ll9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKSxcbiAgICAgICAgICAgIGN1cnJlbnRcbiAgICAgICAgICApO1xuICAgICAgICBjdXJyZW50ID0gdXNlRmliZXIoY3VycmVudCwgcG9ydGFsLmNoaWxkcmVuIHx8IFtdKTtcbiAgICAgICAgY3VycmVudC5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgICAgY3VycmVudC5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbztcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiB1cGRhdGVGcmFnbWVudChyZXR1cm5GaWJlciwgY3VycmVudCwgZnJhZ21lbnQsIGxhbmVzLCBrZXkpIHtcbiAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQgfHwgNyAhPT0gY3VycmVudC50YWcpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChjdXJyZW50ID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoXG4gICAgICAgICAgICAgIGZyYWdtZW50LFxuICAgICAgICAgICAgICByZXR1cm5GaWJlci5tb2RlLFxuICAgICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgICAga2V5XG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgIChjdXJyZW50LnJldHVybiA9IHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgIChjdXJyZW50Ll9kZWJ1Z093bmVyID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgKGN1cnJlbnQuX2RlYnVnVGFzayA9IHJldHVybkZpYmVyLl9kZWJ1Z1Rhc2spLFxuICAgICAgICAgICAgKGN1cnJlbnQuX2RlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm8pLFxuICAgICAgICAgICAgY3VycmVudFxuICAgICAgICAgICk7XG4gICAgICAgIGN1cnJlbnQgPSB1c2VGaWJlcihjdXJyZW50LCBmcmFnbWVudCk7XG4gICAgICAgIGN1cnJlbnQucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICAgIGN1cnJlbnQuX2RlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm87XG4gICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gY3JlYXRlQ2hpbGQocmV0dXJuRmliZXIsIG5ld0NoaWxkLCBsYW5lcykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiBcIlwiICE9PSBuZXdDaGlsZCkgfHxcbiAgICAgICAgICBcIm51bWJlclwiID09PSB0eXBlb2YgbmV3Q2hpbGQgfHxcbiAgICAgICAgICBcImJpZ2ludFwiID09PSB0eXBlb2YgbmV3Q2hpbGRcbiAgICAgICAgKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAobmV3Q2hpbGQgPSBjcmVhdGVGaWJlckZyb21UZXh0KFxuICAgICAgICAgICAgICBcIlwiICsgbmV3Q2hpbGQsXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyLm1vZGUsXG4gICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgIChuZXdDaGlsZC5yZXR1cm4gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAobmV3Q2hpbGQuX2RlYnVnT3duZXIgPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAobmV3Q2hpbGQuX2RlYnVnVGFzayA9IHJldHVybkZpYmVyLl9kZWJ1Z1Rhc2spLFxuICAgICAgICAgICAgKG5ld0NoaWxkLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKSxcbiAgICAgICAgICAgIG5ld0NoaWxkXG4gICAgICAgICAgKTtcbiAgICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiBudWxsICE9PSBuZXdDaGlsZCkge1xuICAgICAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIChsYW5lcyA9IGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICBuZXdDaGlsZCxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLm1vZGUsXG4gICAgICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIGNvZXJjZVJlZihsYW5lcywgbmV3Q2hpbGQpLFxuICAgICAgICAgICAgICAgIChsYW5lcy5yZXR1cm4gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSksXG4gICAgICAgICAgICAgICAgKGxhbmVzLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudERlYnVnSW5mbyA9IHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAobmV3Q2hpbGQgPSBjcmVhdGVGaWJlckZyb21Qb3J0YWwoXG4gICAgICAgICAgICAgICAgICBuZXdDaGlsZCxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLm1vZGUsXG4gICAgICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIChuZXdDaGlsZC5yZXR1cm4gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgKG5ld0NoaWxkLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKSxcbiAgICAgICAgICAgICAgICBuZXdDaGlsZFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAgIHZhciBfcHJldkRlYnVnSW5mbyA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbyk7XG4gICAgICAgICAgICAgIG5ld0NoaWxkID0gcmVzb2x2ZUxhenkobmV3Q2hpbGQpO1xuICAgICAgICAgICAgICByZXR1cm5GaWJlciA9IGNyZWF0ZUNoaWxkKHJldHVybkZpYmVyLCBuZXdDaGlsZCwgbGFuZXMpO1xuICAgICAgICAgICAgICBjdXJyZW50RGVidWdJbmZvID0gX3ByZXZEZWJ1Z0luZm87XG4gICAgICAgICAgICAgIHJldHVybiByZXR1cm5GaWJlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKG5ld0NoaWxkKSB8fCBnZXRJdGVyYXRvckZuKG5ld0NoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChsYW5lcyA9IGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KFxuICAgICAgICAgICAgICAgIG5ld0NoaWxkLFxuICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLm1vZGUsXG4gICAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgKGxhbmVzLnJldHVybiA9IHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgICAgKGxhbmVzLl9kZWJ1Z093bmVyID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAobGFuZXMuX2RlYnVnVGFzayA9IHJldHVybkZpYmVyLl9kZWJ1Z1Rhc2spLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pKSxcbiAgICAgICAgICAgICAgKGxhbmVzLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKSxcbiAgICAgICAgICAgICAgKGN1cnJlbnREZWJ1Z0luZm8gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBuZXdDaGlsZC50aGVuKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKF9wcmV2RGVidWdJbmZvID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSksXG4gICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IGNyZWF0ZUNoaWxkKFxuICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgIHVud3JhcFRoZW5hYmxlKG5ld0NoaWxkKSxcbiAgICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgKGN1cnJlbnREZWJ1Z0luZm8gPSBfcHJldkRlYnVnSW5mbyksXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmIChuZXdDaGlsZC4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFKVxuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUNoaWxkKFxuICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgcmVhZENvbnRleHREdXJpbmdSZWNvbmNpbGlhdGlvbihyZXR1cm5GaWJlciwgbmV3Q2hpbGQpLFxuICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvd09uSW52YWxpZE9iamVjdFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJlxuICAgICAgICAgIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgICAgICBcInN5bWJvbFwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgd2Fybk9uU3ltYm9sVHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHVwZGF0ZVNsb3QocmV0dXJuRmliZXIsIG9sZEZpYmVyLCBuZXdDaGlsZCwgbGFuZXMpIHtcbiAgICAgICAgdmFyIGtleSA9IG51bGwgIT09IG9sZEZpYmVyID8gb2xkRmliZXIua2V5IDogbnVsbDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChcInN0cmluZ1wiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgXCJcIiAhPT0gbmV3Q2hpbGQpIHx8XG4gICAgICAgICAgXCJudW1iZXJcIiA9PT0gdHlwZW9mIG5ld0NoaWxkIHx8XG4gICAgICAgICAgXCJiaWdpbnRcIiA9PT0gdHlwZW9mIG5ld0NoaWxkXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gbnVsbCAhPT0ga2V5XG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDogdXBkYXRlVGV4dE5vZGUocmV0dXJuRmliZXIsIG9sZEZpYmVyLCBcIlwiICsgbmV3Q2hpbGQsIGxhbmVzKTtcbiAgICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiBudWxsICE9PSBuZXdDaGlsZCkge1xuICAgICAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgICAgICByZXR1cm4gbmV3Q2hpbGQua2V5ID09PSBrZXlcbiAgICAgICAgICAgICAgICA/ICgoa2V5ID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSksXG4gICAgICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSB1cGRhdGVFbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgICAgb2xkRmliZXIsXG4gICAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLFxuICAgICAgICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAoY3VycmVudERlYnVnSW5mbyA9IGtleSksXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcilcbiAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgICByZXR1cm4gbmV3Q2hpbGQua2V5ID09PSBrZXlcbiAgICAgICAgICAgICAgICA/IHVwZGF0ZVBvcnRhbChyZXR1cm5GaWJlciwgb2xkRmliZXIsIG5ld0NoaWxkLCBsYW5lcylcbiAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAoa2V5ID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSksXG4gICAgICAgICAgICAgICAgKG5ld0NoaWxkID0gcmVzb2x2ZUxhenkobmV3Q2hpbGQpKSxcbiAgICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSB1cGRhdGVTbG90KFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICBvbGRGaWJlcixcbiAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLFxuICAgICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudERlYnVnSW5mbyA9IGtleSksXG4gICAgICAgICAgICAgICAgcmV0dXJuRmliZXJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKG5ld0NoaWxkKSB8fCBnZXRJdGVyYXRvckZuKG5ld0NoaWxkKSkge1xuICAgICAgICAgICAgaWYgKG51bGwgIT09IGtleSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICBrZXkgPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pO1xuICAgICAgICAgICAgcmV0dXJuRmliZXIgPSB1cGRhdGVGcmFnbWVudChcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgIG9sZEZpYmVyLFxuICAgICAgICAgICAgICBuZXdDaGlsZCxcbiAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjdXJyZW50RGVidWdJbmZvID0ga2V5O1xuICAgICAgICAgICAgcmV0dXJuIHJldHVybkZpYmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV3Q2hpbGQudGhlbilcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChrZXkgPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pKSxcbiAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gdXBkYXRlU2xvdChcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICBvbGRGaWJlcixcbiAgICAgICAgICAgICAgICB1bndyYXBUaGVuYWJsZShuZXdDaGlsZCksXG4gICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIChjdXJyZW50RGVidWdJbmZvID0ga2V5KSxcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKG5ld0NoaWxkLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUpXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlU2xvdChcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgIG9sZEZpYmVyLFxuICAgICAgICAgICAgICByZWFkQ29udGV4dER1cmluZ1JlY29uY2lsaWF0aW9uKHJldHVybkZpYmVyLCBuZXdDaGlsZCksXG4gICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgICAgICB9XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmXG4gICAgICAgICAgd2Fybk9uRnVuY3Rpb25UeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7XG4gICAgICAgIFwic3ltYm9sXCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiB3YXJuT25TeW1ib2xUeXBlKHJldHVybkZpYmVyLCBuZXdDaGlsZCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gdXBkYXRlRnJvbU1hcChcbiAgICAgICAgZXhpc3RpbmdDaGlsZHJlbixcbiAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgIG5ld0lkeCxcbiAgICAgICAgbmV3Q2hpbGQsXG4gICAgICAgIGxhbmVzXG4gICAgICApIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChcInN0cmluZ1wiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgXCJcIiAhPT0gbmV3Q2hpbGQpIHx8XG4gICAgICAgICAgXCJudW1iZXJcIiA9PT0gdHlwZW9mIG5ld0NoaWxkIHx8XG4gICAgICAgICAgXCJiaWdpbnRcIiA9PT0gdHlwZW9mIG5ld0NoaWxkXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGV4aXN0aW5nQ2hpbGRyZW4gPSBleGlzdGluZ0NoaWxkcmVuLmdldChuZXdJZHgpIHx8IG51bGwpLFxuICAgICAgICAgICAgdXBkYXRlVGV4dE5vZGUocmV0dXJuRmliZXIsIGV4aXN0aW5nQ2hpbGRyZW4sIFwiXCIgKyBuZXdDaGlsZCwgbGFuZXMpXG4gICAgICAgICAgKTtcbiAgICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiBudWxsICE9PSBuZXdDaGlsZCkge1xuICAgICAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIChuZXdJZHggPVxuICAgICAgICAgICAgICAgICAgZXhpc3RpbmdDaGlsZHJlbi5nZXQoXG4gICAgICAgICAgICAgICAgICAgIG51bGwgPT09IG5ld0NoaWxkLmtleSA/IG5ld0lkeCA6IG5ld0NoaWxkLmtleVxuICAgICAgICAgICAgICAgICAgKSB8fCBudWxsKSxcbiAgICAgICAgICAgICAgICAoZXhpc3RpbmdDaGlsZHJlbiA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbykpLFxuICAgICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHVwZGF0ZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgIG5ld0lkeCxcbiAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLFxuICAgICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudERlYnVnSW5mbyA9IGV4aXN0aW5nQ2hpbGRyZW4pLFxuICAgICAgICAgICAgICAgIHJldHVybkZpYmVyXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIChleGlzdGluZ0NoaWxkcmVuID1cbiAgICAgICAgICAgICAgICAgIGV4aXN0aW5nQ2hpbGRyZW4uZ2V0KFxuICAgICAgICAgICAgICAgICAgICBudWxsID09PSBuZXdDaGlsZC5rZXkgPyBuZXdJZHggOiBuZXdDaGlsZC5rZXlcbiAgICAgICAgICAgICAgICAgICkgfHwgbnVsbCksXG4gICAgICAgICAgICAgICAgdXBkYXRlUG9ydGFsKHJldHVybkZpYmVyLCBleGlzdGluZ0NoaWxkcmVuLCBuZXdDaGlsZCwgbGFuZXMpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgdmFyIF9wcmV2RGVidWdJbmZvNyA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbyk7XG4gICAgICAgICAgICAgIG5ld0NoaWxkID0gcmVzb2x2ZUxhenkobmV3Q2hpbGQpO1xuICAgICAgICAgICAgICByZXR1cm5GaWJlciA9IHVwZGF0ZUZyb21NYXAoXG4gICAgICAgICAgICAgICAgZXhpc3RpbmdDaGlsZHJlbixcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICBuZXdJZHgsXG4gICAgICAgICAgICAgICAgbmV3Q2hpbGQsXG4gICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY3VycmVudERlYnVnSW5mbyA9IF9wcmV2RGVidWdJbmZvNztcbiAgICAgICAgICAgICAgcmV0dXJuIHJldHVybkZpYmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNBcnJheUltcGwobmV3Q2hpbGQpIHx8IGdldEl0ZXJhdG9yRm4obmV3Q2hpbGQpKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKG5ld0lkeCA9IGV4aXN0aW5nQ2hpbGRyZW4uZ2V0KG5ld0lkeCkgfHwgbnVsbCksXG4gICAgICAgICAgICAgIChleGlzdGluZ0NoaWxkcmVuID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSksXG4gICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHVwZGF0ZUZyYWdtZW50KFxuICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgIG5ld0lkeCxcbiAgICAgICAgICAgICAgICBuZXdDaGlsZCxcbiAgICAgICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAoY3VycmVudERlYnVnSW5mbyA9IGV4aXN0aW5nQ2hpbGRyZW4pLFxuICAgICAgICAgICAgICByZXR1cm5GaWJlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV3Q2hpbGQudGhlbilcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChfcHJldkRlYnVnSW5mbzcgPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pKSxcbiAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gdXBkYXRlRnJvbU1hcChcbiAgICAgICAgICAgICAgICBleGlzdGluZ0NoaWxkcmVuLFxuICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgIG5ld0lkeCxcbiAgICAgICAgICAgICAgICB1bndyYXBUaGVuYWJsZShuZXdDaGlsZCksXG4gICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIChjdXJyZW50RGVidWdJbmZvID0gX3ByZXZEZWJ1Z0luZm83KSxcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKG5ld0NoaWxkLiQkdHlwZW9mID09PSBSRUFDVF9DT05URVhUX1RZUEUpXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlRnJvbU1hcChcbiAgICAgICAgICAgICAgZXhpc3RpbmdDaGlsZHJlbixcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgIG5ld0lkeCxcbiAgICAgICAgICAgICAgcmVhZENvbnRleHREdXJpbmdSZWNvbmNpbGlhdGlvbihyZXR1cm5GaWJlciwgbmV3Q2hpbGQpLFxuICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB0aHJvd09uSW52YWxpZE9iamVjdFR5cGUocmV0dXJuRmliZXIsIG5ld0NoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJlxuICAgICAgICAgIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgICAgICBcInN5bWJvbFwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgd2Fybk9uU3ltYm9sVHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHdhcm5PbkludmFsaWRLZXkocmV0dXJuRmliZXIsIHdvcmtJblByb2dyZXNzLCBjaGlsZCwga25vd25LZXlzKSB7XG4gICAgICAgIGlmIChcIm9iamVjdFwiICE9PSB0eXBlb2YgY2hpbGQgfHwgbnVsbCA9PT0gY2hpbGQpIHJldHVybiBrbm93bktleXM7XG4gICAgICAgIHN3aXRjaCAoY2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX0VMRU1FTlRfVFlQRTpcbiAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgd2FybkZvck1pc3NpbmdLZXkocmV0dXJuRmliZXIsIHdvcmtJblByb2dyZXNzLCBjaGlsZCk7XG4gICAgICAgICAgICB2YXIga2V5ID0gY2hpbGQua2V5O1xuICAgICAgICAgICAgaWYgKFwic3RyaW5nXCIgIT09IHR5cGVvZiBrZXkpIGJyZWFrO1xuICAgICAgICAgICAgaWYgKG51bGwgPT09IGtub3duS2V5cykge1xuICAgICAgICAgICAgICBrbm93bktleXMgPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICAgIGtub3duS2V5cy5hZGQoa2V5KTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWtub3duS2V5cy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICBrbm93bktleXMuYWRkKGtleSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYod29ya0luUHJvZ3Jlc3MsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIkVuY291bnRlcmVkIHR3byBjaGlsZHJlbiB3aXRoIHRoZSBzYW1lIGtleSwgYCVzYC4gS2V5cyBzaG91bGQgYmUgdW5pcXVlIHNvIHRoYXQgY29tcG9uZW50cyBtYWludGFpbiB0aGVpciBpZGVudGl0eSBhY3Jvc3MgdXBkYXRlcy4gTm9uLXVuaXF1ZSBrZXlzIG1heSBjYXVzZSBjaGlsZHJlbiB0byBiZSBkdXBsaWNhdGVkIGFuZC9vciBvbWl0dGVkIFxcdTIwMTQgdGhlIGJlaGF2aW9yIGlzIHVuc3VwcG9ydGVkIGFuZCBjb3VsZCBjaGFuZ2UgaW4gYSBmdXR1cmUgdmVyc2lvbi5cIixcbiAgICAgICAgICAgICAgICBrZXlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgICAgICAoY2hpbGQgPSByZXNvbHZlTGF6eShjaGlsZCkpLFxuICAgICAgICAgICAgICB3YXJuT25JbnZhbGlkS2V5KHJldHVybkZpYmVyLCB3b3JrSW5Qcm9ncmVzcywgY2hpbGQsIGtub3duS2V5cyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGtub3duS2V5cztcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkcmVuQXJyYXkoXG4gICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgbmV3Q2hpbGRyZW4sXG4gICAgICAgIGxhbmVzXG4gICAgICApIHtcbiAgICAgICAgZm9yIChcbiAgICAgICAgICB2YXIga25vd25LZXlzID0gbnVsbCxcbiAgICAgICAgICAgIHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBudWxsLFxuICAgICAgICAgICAgcHJldmlvdXNOZXdGaWJlciA9IG51bGwsXG4gICAgICAgICAgICBvbGRGaWJlciA9IGN1cnJlbnRGaXJzdENoaWxkLFxuICAgICAgICAgICAgbmV3SWR4ID0gKGN1cnJlbnRGaXJzdENoaWxkID0gMCksXG4gICAgICAgICAgICBuZXh0T2xkRmliZXIgPSBudWxsO1xuICAgICAgICAgIG51bGwgIT09IG9sZEZpYmVyICYmIG5ld0lkeCA8IG5ld0NoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICBuZXdJZHgrK1xuICAgICAgICApIHtcbiAgICAgICAgICBvbGRGaWJlci5pbmRleCA+IG5ld0lkeFxuICAgICAgICAgICAgPyAoKG5leHRPbGRGaWJlciA9IG9sZEZpYmVyKSwgKG9sZEZpYmVyID0gbnVsbCkpXG4gICAgICAgICAgICA6IChuZXh0T2xkRmliZXIgPSBvbGRGaWJlci5zaWJsaW5nKTtcbiAgICAgICAgICB2YXIgbmV3RmliZXIgPSB1cGRhdGVTbG90KFxuICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICBvbGRGaWJlcixcbiAgICAgICAgICAgIG5ld0NoaWxkcmVuW25ld0lkeF0sXG4gICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKG51bGwgPT09IG5ld0ZpYmVyKSB7XG4gICAgICAgICAgICBudWxsID09PSBvbGRGaWJlciAmJiAob2xkRmliZXIgPSBuZXh0T2xkRmliZXIpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGtub3duS2V5cyA9IHdhcm5PbkludmFsaWRLZXkoXG4gICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgIG5ld0ZpYmVyLFxuICAgICAgICAgICAgbmV3Q2hpbGRyZW5bbmV3SWR4XSxcbiAgICAgICAgICAgIGtub3duS2V5c1xuICAgICAgICAgICk7XG4gICAgICAgICAgc2hvdWxkVHJhY2tTaWRlRWZmZWN0cyAmJlxuICAgICAgICAgICAgb2xkRmliZXIgJiZcbiAgICAgICAgICAgIG51bGwgPT09IG5ld0ZpYmVyLmFsdGVybmF0ZSAmJlxuICAgICAgICAgICAgZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIG9sZEZpYmVyKTtcbiAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCA9IHBsYWNlQ2hpbGQobmV3RmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBuZXdJZHgpO1xuICAgICAgICAgIG51bGwgPT09IHByZXZpb3VzTmV3RmliZXJcbiAgICAgICAgICAgID8gKHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBuZXdGaWJlcilcbiAgICAgICAgICAgIDogKHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IG5ld0ZpYmVyKTtcbiAgICAgICAgICBwcmV2aW91c05ld0ZpYmVyID0gbmV3RmliZXI7XG4gICAgICAgICAgb2xkRmliZXIgPSBuZXh0T2xkRmliZXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5ld0lkeCA9PT0gbmV3Q2hpbGRyZW4ubGVuZ3RoKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgb2xkRmliZXIpLFxuICAgICAgICAgICAgaXNIeWRyYXRpbmcgJiYgcHVzaFRyZWVGb3JrKHJldHVybkZpYmVyLCBuZXdJZHgpLFxuICAgICAgICAgICAgcmVzdWx0aW5nRmlyc3RDaGlsZFxuICAgICAgICAgICk7XG4gICAgICAgIGlmIChudWxsID09PSBvbGRGaWJlcikge1xuICAgICAgICAgIGZvciAoOyBuZXdJZHggPCBuZXdDaGlsZHJlbi5sZW5ndGg7IG5ld0lkeCsrKVxuICAgICAgICAgICAgKG9sZEZpYmVyID0gY3JlYXRlQ2hpbGQocmV0dXJuRmliZXIsIG5ld0NoaWxkcmVuW25ld0lkeF0sIGxhbmVzKSksXG4gICAgICAgICAgICAgIG51bGwgIT09IG9sZEZpYmVyICYmXG4gICAgICAgICAgICAgICAgKChrbm93bktleXMgPSB3YXJuT25JbnZhbGlkS2V5KFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICBvbGRGaWJlcixcbiAgICAgICAgICAgICAgICAgIG5ld0NoaWxkcmVuW25ld0lkeF0sXG4gICAgICAgICAgICAgICAgICBrbm93bktleXNcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudEZpcnN0Q2hpbGQgPSBwbGFjZUNoaWxkKFxuICAgICAgICAgICAgICAgICAgb2xkRmliZXIsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgICAgICAgIG5ld0lkeFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIG51bGwgPT09IHByZXZpb3VzTmV3RmliZXJcbiAgICAgICAgICAgICAgICAgID8gKHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBvbGRGaWJlcilcbiAgICAgICAgICAgICAgICAgIDogKHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IG9sZEZpYmVyKSxcbiAgICAgICAgICAgICAgICAocHJldmlvdXNOZXdGaWJlciA9IG9sZEZpYmVyKSk7XG4gICAgICAgICAgaXNIeWRyYXRpbmcgJiYgcHVzaFRyZWVGb3JrKHJldHVybkZpYmVyLCBuZXdJZHgpO1xuICAgICAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgb2xkRmliZXIgPSBtYXBSZW1haW5pbmdDaGlsZHJlbihvbGRGaWJlcik7XG4gICAgICAgICAgbmV3SWR4IDwgbmV3Q2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICAgIG5ld0lkeCsrXG4gICAgICAgIClcbiAgICAgICAgICAobmV4dE9sZEZpYmVyID0gdXBkYXRlRnJvbU1hcChcbiAgICAgICAgICAgIG9sZEZpYmVyLFxuICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICBuZXdJZHgsXG4gICAgICAgICAgICBuZXdDaGlsZHJlbltuZXdJZHhdLFxuICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICApKSxcbiAgICAgICAgICAgIG51bGwgIT09IG5leHRPbGRGaWJlciAmJlxuICAgICAgICAgICAgICAoKGtub3duS2V5cyA9IHdhcm5PbkludmFsaWRLZXkoXG4gICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgbmV4dE9sZEZpYmVyLFxuICAgICAgICAgICAgICAgIG5ld0NoaWxkcmVuW25ld0lkeF0sXG4gICAgICAgICAgICAgICAga25vd25LZXlzXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICBzaG91bGRUcmFja1NpZGVFZmZlY3RzICYmXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gbmV4dE9sZEZpYmVyLmFsdGVybmF0ZSAmJlxuICAgICAgICAgICAgICAgIG9sZEZpYmVyLmRlbGV0ZShcbiAgICAgICAgICAgICAgICAgIG51bGwgPT09IG5leHRPbGRGaWJlci5rZXkgPyBuZXdJZHggOiBuZXh0T2xkRmliZXIua2V5XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKGN1cnJlbnRGaXJzdENoaWxkID0gcGxhY2VDaGlsZChcbiAgICAgICAgICAgICAgICBuZXh0T2xkRmliZXIsXG4gICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsXG4gICAgICAgICAgICAgICAgbmV3SWR4XG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICBudWxsID09PSBwcmV2aW91c05ld0ZpYmVyXG4gICAgICAgICAgICAgICAgPyAocmVzdWx0aW5nRmlyc3RDaGlsZCA9IG5leHRPbGRGaWJlcilcbiAgICAgICAgICAgICAgICA6IChwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBuZXh0T2xkRmliZXIpLFxuICAgICAgICAgICAgICAocHJldmlvdXNOZXdGaWJlciA9IG5leHRPbGRGaWJlcikpO1xuICAgICAgICBzaG91bGRUcmFja1NpZGVFZmZlY3RzICYmXG4gICAgICAgICAgb2xkRmliZXIuZm9yRWFjaChmdW5jdGlvbiAoY2hpbGQpIHtcbiAgICAgICAgICAgIHJldHVybiBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY2hpbGQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICBpc0h5ZHJhdGluZyAmJiBwdXNoVHJlZUZvcmsocmV0dXJuRmliZXIsIG5ld0lkeCk7XG4gICAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgICAgfVxuICAgICAgZnVuY3Rpb24gcmVjb25jaWxlQ2hpbGRyZW5JdGVyYXRvcihcbiAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLFxuICAgICAgICBuZXdDaGlsZHJlbixcbiAgICAgICAgbGFuZXNcbiAgICAgICkge1xuICAgICAgICBpZiAobnVsbCA9PSBuZXdDaGlsZHJlbilcbiAgICAgICAgICB0aHJvdyBFcnJvcihcIkFuIGl0ZXJhYmxlIG9iamVjdCBwcm92aWRlZCBubyBpdGVyYXRvci5cIik7XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgdmFyIHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBudWxsLFxuICAgICAgICAgICAgcHJldmlvdXNOZXdGaWJlciA9IG51bGwsXG4gICAgICAgICAgICBvbGRGaWJlciA9IGN1cnJlbnRGaXJzdENoaWxkLFxuICAgICAgICAgICAgbmV3SWR4ID0gKGN1cnJlbnRGaXJzdENoaWxkID0gMCksXG4gICAgICAgICAgICBuZXh0T2xkRmliZXIgPSBudWxsLFxuICAgICAgICAgICAga25vd25LZXlzID0gbnVsbCxcbiAgICAgICAgICAgIHN0ZXAgPSBuZXdDaGlsZHJlbi5uZXh0KCk7XG4gICAgICAgICAgbnVsbCAhPT0gb2xkRmliZXIgJiYgIXN0ZXAuZG9uZTtcbiAgICAgICAgICBuZXdJZHgrKywgc3RlcCA9IG5ld0NoaWxkcmVuLm5leHQoKVxuICAgICAgICApIHtcbiAgICAgICAgICBvbGRGaWJlci5pbmRleCA+IG5ld0lkeFxuICAgICAgICAgICAgPyAoKG5leHRPbGRGaWJlciA9IG9sZEZpYmVyKSwgKG9sZEZpYmVyID0gbnVsbCkpXG4gICAgICAgICAgICA6IChuZXh0T2xkRmliZXIgPSBvbGRGaWJlci5zaWJsaW5nKTtcbiAgICAgICAgICB2YXIgbmV3RmliZXIgPSB1cGRhdGVTbG90KHJldHVybkZpYmVyLCBvbGRGaWJlciwgc3RlcC52YWx1ZSwgbGFuZXMpO1xuICAgICAgICAgIGlmIChudWxsID09PSBuZXdGaWJlcikge1xuICAgICAgICAgICAgbnVsbCA9PT0gb2xkRmliZXIgJiYgKG9sZEZpYmVyID0gbmV4dE9sZEZpYmVyKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBrbm93bktleXMgPSB3YXJuT25JbnZhbGlkS2V5KFxuICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICBuZXdGaWJlcixcbiAgICAgICAgICAgIHN0ZXAudmFsdWUsXG4gICAgICAgICAgICBrbm93bktleXNcbiAgICAgICAgICApO1xuICAgICAgICAgIHNob3VsZFRyYWNrU2lkZUVmZmVjdHMgJiZcbiAgICAgICAgICAgIG9sZEZpYmVyICYmXG4gICAgICAgICAgICBudWxsID09PSBuZXdGaWJlci5hbHRlcm5hdGUgJiZcbiAgICAgICAgICAgIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBvbGRGaWJlcik7XG4gICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQgPSBwbGFjZUNoaWxkKG5ld0ZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCwgbmV3SWR4KTtcbiAgICAgICAgICBudWxsID09PSBwcmV2aW91c05ld0ZpYmVyXG4gICAgICAgICAgICA/IChyZXN1bHRpbmdGaXJzdENoaWxkID0gbmV3RmliZXIpXG4gICAgICAgICAgICA6IChwcmV2aW91c05ld0ZpYmVyLnNpYmxpbmcgPSBuZXdGaWJlcik7XG4gICAgICAgICAgcHJldmlvdXNOZXdGaWJlciA9IG5ld0ZpYmVyO1xuICAgICAgICAgIG9sZEZpYmVyID0gbmV4dE9sZEZpYmVyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGVwLmRvbmUpXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGRlbGV0ZVJlbWFpbmluZ0NoaWxkcmVuKHJldHVybkZpYmVyLCBvbGRGaWJlciksXG4gICAgICAgICAgICBpc0h5ZHJhdGluZyAmJiBwdXNoVHJlZUZvcmsocmV0dXJuRmliZXIsIG5ld0lkeCksXG4gICAgICAgICAgICByZXN1bHRpbmdGaXJzdENoaWxkXG4gICAgICAgICAgKTtcbiAgICAgICAgaWYgKG51bGwgPT09IG9sZEZpYmVyKSB7XG4gICAgICAgICAgZm9yICg7ICFzdGVwLmRvbmU7IG5ld0lkeCsrLCBzdGVwID0gbmV3Q2hpbGRyZW4ubmV4dCgpKVxuICAgICAgICAgICAgKG9sZEZpYmVyID0gY3JlYXRlQ2hpbGQocmV0dXJuRmliZXIsIHN0ZXAudmFsdWUsIGxhbmVzKSksXG4gICAgICAgICAgICAgIG51bGwgIT09IG9sZEZpYmVyICYmXG4gICAgICAgICAgICAgICAgKChrbm93bktleXMgPSB3YXJuT25JbnZhbGlkS2V5KFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICBvbGRGaWJlcixcbiAgICAgICAgICAgICAgICAgIHN0ZXAudmFsdWUsXG4gICAgICAgICAgICAgICAgICBrbm93bktleXNcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudEZpcnN0Q2hpbGQgPSBwbGFjZUNoaWxkKFxuICAgICAgICAgICAgICAgICAgb2xkRmliZXIsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgICAgICAgIG5ld0lkeFxuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIG51bGwgPT09IHByZXZpb3VzTmV3RmliZXJcbiAgICAgICAgICAgICAgICAgID8gKHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBvbGRGaWJlcilcbiAgICAgICAgICAgICAgICAgIDogKHByZXZpb3VzTmV3RmliZXIuc2libGluZyA9IG9sZEZpYmVyKSxcbiAgICAgICAgICAgICAgICAocHJldmlvdXNOZXdGaWJlciA9IG9sZEZpYmVyKSk7XG4gICAgICAgICAgaXNIeWRyYXRpbmcgJiYgcHVzaFRyZWVGb3JrKHJldHVybkZpYmVyLCBuZXdJZHgpO1xuICAgICAgICAgIHJldHVybiByZXN1bHRpbmdGaXJzdENoaWxkO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgb2xkRmliZXIgPSBtYXBSZW1haW5pbmdDaGlsZHJlbihvbGRGaWJlcik7XG4gICAgICAgICAgIXN0ZXAuZG9uZTtcbiAgICAgICAgICBuZXdJZHgrKywgc3RlcCA9IG5ld0NoaWxkcmVuLm5leHQoKVxuICAgICAgICApXG4gICAgICAgICAgKG5leHRPbGRGaWJlciA9IHVwZGF0ZUZyb21NYXAoXG4gICAgICAgICAgICBvbGRGaWJlcixcbiAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgbmV3SWR4LFxuICAgICAgICAgICAgc3RlcC52YWx1ZSxcbiAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgKSksXG4gICAgICAgICAgICBudWxsICE9PSBuZXh0T2xkRmliZXIgJiZcbiAgICAgICAgICAgICAgKChrbm93bktleXMgPSB3YXJuT25JbnZhbGlkS2V5KFxuICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgIG5leHRPbGRGaWJlcixcbiAgICAgICAgICAgICAgICBzdGVwLnZhbHVlLFxuICAgICAgICAgICAgICAgIGtub3duS2V5c1xuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgc2hvdWxkVHJhY2tTaWRlRWZmZWN0cyAmJlxuICAgICAgICAgICAgICAgIG51bGwgIT09IG5leHRPbGRGaWJlci5hbHRlcm5hdGUgJiZcbiAgICAgICAgICAgICAgICBvbGRGaWJlci5kZWxldGUoXG4gICAgICAgICAgICAgICAgICBudWxsID09PSBuZXh0T2xkRmliZXIua2V5ID8gbmV3SWR4IDogbmV4dE9sZEZpYmVyLmtleVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIChjdXJyZW50Rmlyc3RDaGlsZCA9IHBsYWNlQ2hpbGQoXG4gICAgICAgICAgICAgICAgbmV4dE9sZEZpYmVyLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLFxuICAgICAgICAgICAgICAgIG5ld0lkeFxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gcHJldmlvdXNOZXdGaWJlclxuICAgICAgICAgICAgICAgID8gKHJlc3VsdGluZ0ZpcnN0Q2hpbGQgPSBuZXh0T2xkRmliZXIpXG4gICAgICAgICAgICAgICAgOiAocHJldmlvdXNOZXdGaWJlci5zaWJsaW5nID0gbmV4dE9sZEZpYmVyKSxcbiAgICAgICAgICAgICAgKHByZXZpb3VzTmV3RmliZXIgPSBuZXh0T2xkRmliZXIpKTtcbiAgICAgICAgc2hvdWxkVHJhY2tTaWRlRWZmZWN0cyAmJlxuICAgICAgICAgIG9sZEZpYmVyLmZvckVhY2goZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVsZXRlQ2hpbGQocmV0dXJuRmliZXIsIGNoaWxkKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgaXNIeWRyYXRpbmcgJiYgcHVzaFRyZWVGb3JrKHJldHVybkZpYmVyLCBuZXdJZHgpO1xuICAgICAgICByZXR1cm4gcmVzdWx0aW5nRmlyc3RDaGlsZDtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkRmliZXJzSW1wbChcbiAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLFxuICAgICAgICBuZXdDaGlsZCxcbiAgICAgICAgbGFuZXNcbiAgICAgICkge1xuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiZcbiAgICAgICAgICBudWxsICE9PSBuZXdDaGlsZCAmJlxuICAgICAgICAgIG5ld0NoaWxkLnR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUgJiZcbiAgICAgICAgICBudWxsID09PSBuZXdDaGlsZC5rZXkgJiZcbiAgICAgICAgICAodmFsaWRhdGVGcmFnbWVudFByb3BzKG5ld0NoaWxkLCBudWxsLCByZXR1cm5GaWJlciksXG4gICAgICAgICAgKG5ld0NoaWxkID0gbmV3Q2hpbGQucHJvcHMuY2hpbGRyZW4pKTtcbiAgICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJiBudWxsICE9PSBuZXdDaGlsZCkge1xuICAgICAgICAgIHN3aXRjaCAobmV3Q2hpbGQuJCR0eXBlb2YpIHtcbiAgICAgICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgICAgICB2YXIgcHJldkRlYnVnSW5mbyA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbyk7XG4gICAgICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBrZXkgPSBuZXdDaGlsZC5rZXk7IG51bGwgIT09IGN1cnJlbnRGaXJzdENoaWxkOyApIHtcbiAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Rmlyc3RDaGlsZC5rZXkgPT09IGtleSkge1xuICAgICAgICAgICAgICAgICAgICBrZXkgPSBuZXdDaGlsZC50eXBlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKDcgPT09IGN1cnJlbnRGaXJzdENoaWxkLnRhZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZC5zaWJsaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFuZXMgPSB1c2VGaWJlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLnByb3BzLmNoaWxkcmVuXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFuZXMucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYW5lcy5fZGVidWdPd25lciA9IG5ld0NoaWxkLl9vd25lcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhbmVzLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVGcmFnbWVudFByb3BzKG5ld0NoaWxkLCBsYW5lcywgcmV0dXJuRmliZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIgPSBsYW5lcztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLmVsZW1lbnRUeXBlID09PSBrZXkgfHxcbiAgICAgICAgICAgICAgICAgICAgICBpc0NvbXBhdGlibGVGYW1pbHlGb3JIb3RSZWxvYWRpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld0NoaWxkXG4gICAgICAgICAgICAgICAgICAgICAgKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIChcIm9iamVjdFwiID09PSB0eXBlb2Yga2V5ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsICE9PSBrZXkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFICYmXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlTGF6eShrZXkpID09PSBjdXJyZW50Rmlyc3RDaGlsZC50eXBlKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQuc2libGluZ1xuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgbGFuZXMgPSB1c2VGaWJlcihjdXJyZW50Rmlyc3RDaGlsZCwgbmV3Q2hpbGQucHJvcHMpO1xuICAgICAgICAgICAgICAgICAgICAgIGNvZXJjZVJlZihsYW5lcywgbmV3Q2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAgIGxhbmVzLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhbmVzLl9kZWJ1Z093bmVyID0gbmV3Q2hpbGQuX293bmVyO1xuICAgICAgICAgICAgICAgICAgICAgIGxhbmVzLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyID0gbGFuZXM7XG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBkZWxldGVDaGlsZChyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpO1xuICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQgPSBjdXJyZW50Rmlyc3RDaGlsZC5zaWJsaW5nO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBuZXdDaGlsZC50eXBlID09PSBSRUFDVF9GUkFHTUVOVF9UWVBFXG4gICAgICAgICAgICAgICAgICA/ICgobGFuZXMgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChcbiAgICAgICAgICAgICAgICAgICAgICBuZXdDaGlsZC5wcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlci5tb2RlLFxuICAgICAgICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLmtleVxuICAgICAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAgICAgKGxhbmVzLnJldHVybiA9IHJldHVybkZpYmVyKSxcbiAgICAgICAgICAgICAgICAgICAgKGxhbmVzLl9kZWJ1Z093bmVyID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAgICAgICAobGFuZXMuX2RlYnVnVGFzayA9IHJldHVybkZpYmVyLl9kZWJ1Z1Rhc2spLFxuICAgICAgICAgICAgICAgICAgICAobGFuZXMuX2RlYnVnSW5mbyA9IGN1cnJlbnREZWJ1Z0luZm8pLFxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZUZyYWdtZW50UHJvcHMobmV3Q2hpbGQsIGxhbmVzLCByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IGxhbmVzKSlcbiAgICAgICAgICAgICAgICAgIDogKChsYW5lcyA9IGNyZWF0ZUZpYmVyRnJvbUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgbmV3Q2hpbGQsXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIubW9kZSxcbiAgICAgICAgICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAgICAgY29lcmNlUmVmKGxhbmVzLCBuZXdDaGlsZCksXG4gICAgICAgICAgICAgICAgICAgIChsYW5lcy5yZXR1cm4gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgICAgIChsYW5lcy5fZGVidWdJbmZvID0gY3VycmVudERlYnVnSW5mbyksXG4gICAgICAgICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IGxhbmVzKSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIgPSBwbGFjZVNpbmdsZUNoaWxkKHJldHVybkZpYmVyKTtcbiAgICAgICAgICAgICAgY3VycmVudERlYnVnSW5mbyA9IHByZXZEZWJ1Z0luZm87XG4gICAgICAgICAgICAgIHJldHVybiByZXR1cm5GaWJlcjtcbiAgICAgICAgICAgIGNhc2UgUkVBQ1RfUE9SVEFMX1RZUEU6XG4gICAgICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgICAgICBwcmV2RGVidWdJbmZvID0gbmV3Q2hpbGQ7XG4gICAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICAgIG5ld0NoaWxkID0gcHJldkRlYnVnSW5mby5rZXk7XG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50Rmlyc3RDaGlsZDtcblxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRGaXJzdENoaWxkLmtleSA9PT0gbmV3Q2hpbGQpXG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICA0ID09PSBjdXJyZW50Rmlyc3RDaGlsZC50YWcgJiZcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZEZWJ1Z0luZm8uY29udGFpbmVySW5mbyAmJlxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLnN0YXRlTm9kZS5pbXBsZW1lbnRhdGlvbiA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZEZWJ1Z0luZm8uaW1wbGVtZW50YXRpb25cbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLnNpYmxpbmdcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIGxhbmVzID0gdXNlRmliZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZEZWJ1Z0luZm8uY2hpbGRyZW4gfHwgW11cbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIGxhbmVzLnJldHVybiA9IHJldHVybkZpYmVyO1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyID0gbGFuZXM7XG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBkZWxldGVSZW1haW5pbmdDaGlsZHJlbihyZXR1cm5GaWJlciwgY3VycmVudEZpcnN0Q2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBlbHNlIGRlbGV0ZUNoaWxkKHJldHVybkZpYmVyLCBjdXJyZW50Rmlyc3RDaGlsZCk7XG4gICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCA9IGN1cnJlbnRGaXJzdENoaWxkLnNpYmxpbmc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxhbmVzID0gY3JlYXRlRmliZXJGcm9tUG9ydGFsKFxuICAgICAgICAgICAgICAgICAgcHJldkRlYnVnSW5mbyxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLm1vZGUsXG4gICAgICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbGFuZXMucmV0dXJuID0gcmV0dXJuRmliZXI7XG4gICAgICAgICAgICAgICAgcmV0dXJuRmliZXIgPSBsYW5lcztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gcGxhY2VTaW5nbGVDaGlsZChyZXR1cm5GaWJlcik7XG4gICAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAocHJldkRlYnVnSW5mbyA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbykpLFxuICAgICAgICAgICAgICAgIChuZXdDaGlsZCA9IHJlc29sdmVMYXp5KG5ld0NoaWxkKSksXG4gICAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gcmVjb25jaWxlQ2hpbGRGaWJlcnNJbXBsKFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgICAgICAgIG5ld0NoaWxkLFxuICAgICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudERlYnVnSW5mbyA9IHByZXZEZWJ1Z0luZm8pLFxuICAgICAgICAgICAgICAgIHJldHVybkZpYmVyXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0FycmF5SW1wbChuZXdDaGlsZCkpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAocHJldkRlYnVnSW5mbyA9IHB1c2hEZWJ1Z0luZm8obmV3Q2hpbGQuX2RlYnVnSW5mbykpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSByZWNvbmNpbGVDaGlsZHJlbkFycmF5KFxuICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLFxuICAgICAgICAgICAgICAgIG5ld0NoaWxkLFxuICAgICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAoY3VycmVudERlYnVnSW5mbyA9IHByZXZEZWJ1Z0luZm8pLFxuICAgICAgICAgICAgICByZXR1cm5GaWJlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCkpIHtcbiAgICAgICAgICAgIHByZXZEZWJ1Z0luZm8gPSBwdXNoRGVidWdJbmZvKG5ld0NoaWxkLl9kZWJ1Z0luZm8pO1xuICAgICAgICAgICAga2V5ID0gZ2V0SXRlcmF0b3JGbihuZXdDaGlsZCk7XG4gICAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2Yga2V5KVxuICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICBcIkFuIG9iamVjdCBpcyBub3QgYW4gaXRlcmFibGUuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHZhciBuZXdDaGlsZHJlbiA9IGtleS5jYWxsKG5ld0NoaWxkKTtcbiAgICAgICAgICAgIGlmIChuZXdDaGlsZHJlbiA9PT0gbmV3Q2hpbGQpIHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIDAgIT09IHJldHVybkZpYmVyLnRhZyB8fFxuICAgICAgICAgICAgICAgIFwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl1cIiAhPT1cbiAgICAgICAgICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZXR1cm5GaWJlci50eXBlKSB8fFxuICAgICAgICAgICAgICAgIFwiW29iamVjdCBHZW5lcmF0b3JdXCIgIT09XG4gICAgICAgICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobmV3Q2hpbGRyZW4pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBkaWRXYXJuQWJvdXRHZW5lcmF0b3JzIHx8XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIlVzaW5nIEl0ZXJhdG9ycyBhcyBjaGlsZHJlbiBpcyB1bnN1cHBvcnRlZCBhbmQgd2lsbCBsaWtlbHkgeWllbGQgdW5leHBlY3RlZCByZXN1bHRzIGJlY2F1c2UgZW51bWVyYXRpbmcgYSBnZW5lcmF0b3IgbXV0YXRlcyBpdC4gWW91IG1heSBjb252ZXJ0IGl0IHRvIGFuIGFycmF5IHdpdGggYEFycmF5LmZyb20oKWAgb3IgdGhlIGBbLi4uc3ByZWFkXWAgb3BlcmF0b3IgYmVmb3JlIHJlbmRlcmluZy4gWW91IGNhbiBhbHNvIHVzZSBhbiBJdGVyYWJsZSB0aGF0IGNhbiBpdGVyYXRlIG11bHRpcGxlIHRpbWVzIG92ZXIgdGhlIHNhbWUgaXRlbXMuXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAoZGlkV2FybkFib3V0R2VuZXJhdG9ycyA9ICEwKTtcbiAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICBuZXdDaGlsZC5lbnRyaWVzICE9PSBrZXkgfHxcbiAgICAgICAgICAgICAgICBkaWRXYXJuQWJvdXRNYXBzIHx8XG4gICAgICAgICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIlVzaW5nIE1hcHMgYXMgY2hpbGRyZW4gaXMgbm90IHN1cHBvcnRlZC4gVXNlIGFuIGFycmF5IG9mIGtleWVkIFJlYWN0RWxlbWVudHMgaW5zdGVhZC5cIlxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKGRpZFdhcm5BYm91dE1hcHMgPSAhMCkpO1xuICAgICAgICAgICAgcmV0dXJuRmliZXIgPSByZWNvbmNpbGVDaGlsZHJlbkl0ZXJhdG9yKFxuICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQsXG4gICAgICAgICAgICAgIG5ld0NoaWxkcmVuLFxuICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGN1cnJlbnREZWJ1Z0luZm8gPSBwcmV2RGVidWdJbmZvO1xuICAgICAgICAgICAgcmV0dXJuIHJldHVybkZpYmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV3Q2hpbGQudGhlbilcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChwcmV2RGVidWdJbmZvID0gcHVzaERlYnVnSW5mbyhuZXdDaGlsZC5fZGVidWdJbmZvKSksXG4gICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHJlY29uY2lsZUNoaWxkRmliZXJzSW1wbChcbiAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgICAgICB1bndyYXBUaGVuYWJsZShuZXdDaGlsZCksXG4gICAgICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIChjdXJyZW50RGVidWdJbmZvID0gcHJldkRlYnVnSW5mbyksXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmIChuZXdDaGlsZC4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFKVxuICAgICAgICAgICAgcmV0dXJuIHJlY29uY2lsZUNoaWxkRmliZXJzSW1wbChcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgIGN1cnJlbnRGaXJzdENoaWxkLFxuICAgICAgICAgICAgICByZWFkQ29udGV4dER1cmluZ1JlY29uY2lsaWF0aW9uKHJldHVybkZpYmVyLCBuZXdDaGlsZCksXG4gICAgICAgICAgICAgIGxhbmVzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHRocm93T25JbnZhbGlkT2JqZWN0VHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG5ld0NoaWxkICYmIFwiXCIgIT09IG5ld0NoaWxkKSB8fFxuICAgICAgICAgIFwibnVtYmVyXCIgPT09IHR5cGVvZiBuZXdDaGlsZCB8fFxuICAgICAgICAgIFwiYmlnaW50XCIgPT09IHR5cGVvZiBuZXdDaGlsZFxuICAgICAgICApXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChwcmV2RGVidWdJbmZvID0gXCJcIiArIG5ld0NoaWxkKSxcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnRGaXJzdENoaWxkICYmIDYgPT09IGN1cnJlbnRGaXJzdENoaWxkLnRhZ1xuICAgICAgICAgICAgICA/IChkZWxldGVSZW1haW5pbmdDaGlsZHJlbihcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgY3VycmVudEZpcnN0Q2hpbGQuc2libGluZ1xuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKGxhbmVzID0gdXNlRmliZXIoY3VycmVudEZpcnN0Q2hpbGQsIHByZXZEZWJ1Z0luZm8pKSxcbiAgICAgICAgICAgICAgICAobGFuZXMucmV0dXJuID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IGxhbmVzKSlcbiAgICAgICAgICAgICAgOiAoZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKSxcbiAgICAgICAgICAgICAgICAobGFuZXMgPSBjcmVhdGVGaWJlckZyb21UZXh0KFxuICAgICAgICAgICAgICAgICAgcHJldkRlYnVnSW5mbyxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLm1vZGUsXG4gICAgICAgICAgICAgICAgICBsYW5lc1xuICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIChsYW5lcy5yZXR1cm4gPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgKGxhbmVzLl9kZWJ1Z093bmVyID0gcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAgIChsYW5lcy5fZGVidWdUYXNrID0gcmV0dXJuRmliZXIuX2RlYnVnVGFzayksXG4gICAgICAgICAgICAgICAgKGxhbmVzLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKSxcbiAgICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSBsYW5lcykpLFxuICAgICAgICAgICAgcGxhY2VTaW5nbGVDaGlsZChyZXR1cm5GaWJlcilcbiAgICAgICAgICApO1xuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBuZXdDaGlsZCAmJlxuICAgICAgICAgIHdhcm5PbkZ1bmN0aW9uVHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgICAgICBcInN5bWJvbFwiID09PSB0eXBlb2YgbmV3Q2hpbGQgJiYgd2Fybk9uU3ltYm9sVHlwZShyZXR1cm5GaWJlciwgbmV3Q2hpbGQpO1xuICAgICAgICByZXR1cm4gZGVsZXRlUmVtYWluaW5nQ2hpbGRyZW4ocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmdW5jdGlvbiAocmV0dXJuRmliZXIsIGN1cnJlbnRGaXJzdENoaWxkLCBuZXdDaGlsZCwgbGFuZXMpIHtcbiAgICAgICAgdmFyIHByZXZEZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvO1xuICAgICAgICBjdXJyZW50RGVidWdJbmZvID0gbnVsbDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGVuYWJsZUluZGV4Q291bnRlciQxID0gMDtcbiAgICAgICAgICB2YXIgZmlyc3RDaGlsZEZpYmVyID0gcmVjb25jaWxlQ2hpbGRGaWJlcnNJbXBsKFxuICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICBjdXJyZW50Rmlyc3RDaGlsZCxcbiAgICAgICAgICAgIG5ld0NoaWxkLFxuICAgICAgICAgICAgbGFuZXNcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoZW5hYmxlU3RhdGUkMSA9IG51bGw7XG4gICAgICAgICAgcmV0dXJuIGZpcnN0Q2hpbGRGaWJlcjtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGlmICh4ID09PSBTdXNwZW5zZUV4Y2VwdGlvbiB8fCB4ID09PSBTdXNwZW5zZUFjdGlvbkV4Y2VwdGlvbikgdGhyb3cgeDtcbiAgICAgICAgICB2YXIgZmliZXIgPSBjcmVhdGVGaWJlcigyOSwgeCwgbnVsbCwgcmV0dXJuRmliZXIubW9kZSk7XG4gICAgICAgICAgZmliZXIubGFuZXMgPSBsYW5lcztcbiAgICAgICAgICBmaWJlci5yZXR1cm4gPSByZXR1cm5GaWJlcjtcbiAgICAgICAgICB2YXIgZGVidWdJbmZvID0gKGZpYmVyLl9kZWJ1Z0luZm8gPSBjdXJyZW50RGVidWdJbmZvKTtcbiAgICAgICAgICBmaWJlci5fZGVidWdPd25lciA9IHJldHVybkZpYmVyLl9kZWJ1Z093bmVyO1xuICAgICAgICAgIGZpYmVyLl9kZWJ1Z1Rhc2sgPSByZXR1cm5GaWJlci5fZGVidWdUYXNrO1xuICAgICAgICAgIGlmIChudWxsICE9IGRlYnVnSW5mbylcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSBkZWJ1Z0luZm8ubGVuZ3RoIC0gMTsgMCA8PSBpOyBpLS0pXG4gICAgICAgICAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgZGVidWdJbmZvW2ldLnN0YWNrKSB7XG4gICAgICAgICAgICAgICAgZmliZXIuX2RlYnVnT3duZXIgPSBkZWJ1Z0luZm9baV07XG4gICAgICAgICAgICAgICAgZmliZXIuX2RlYnVnVGFzayA9IGRlYnVnSW5mb1tpXS5kZWJ1Z1Rhc2s7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZmliZXI7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgY3VycmVudERlYnVnSW5mbyA9IHByZXZEZWJ1Z0luZm87XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlU3VzcGVuc2VMaXN0TmVzdGVkQ2hpbGQoY2hpbGRTbG90LCBpbmRleCkge1xuICAgICAgdmFyIGlzQW5BcnJheSA9IGlzQXJyYXlJbXBsKGNoaWxkU2xvdCk7XG4gICAgICBjaGlsZFNsb3QgPSAhaXNBbkFycmF5ICYmIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGdldEl0ZXJhdG9yRm4oY2hpbGRTbG90KTtcbiAgICAgIHJldHVybiBpc0FuQXJyYXkgfHwgY2hpbGRTbG90XG4gICAgICAgID8gKChpc0FuQXJyYXkgPSBpc0FuQXJyYXkgPyBcImFycmF5XCIgOiBcIml0ZXJhYmxlXCIpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkEgbmVzdGVkICVzIHdhcyBwYXNzZWQgdG8gcm93ICMlcyBpbiA8U3VzcGVuc2VMaXN0IC8+LiBXcmFwIGl0IGluIGFuIGFkZGl0aW9uYWwgU3VzcGVuc2VMaXN0IHRvIGNvbmZpZ3VyZSBpdHMgcmV2ZWFsT3JkZXI6IDxTdXNwZW5zZUxpc3QgcmV2ZWFsT3JkZXI9Li4uPiAuLi4gPFN1c3BlbnNlTGlzdCByZXZlYWxPcmRlcj0uLi4+eyVzfTwvU3VzcGVuc2VMaXN0PiAuLi4gPC9TdXNwZW5zZUxpc3Q+XCIsXG4gICAgICAgICAgICBpc0FuQXJyYXksXG4gICAgICAgICAgICBpbmRleCxcbiAgICAgICAgICAgIGlzQW5BcnJheVxuICAgICAgICAgICksXG4gICAgICAgICAgITEpXG4gICAgICAgIDogITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRpYWxpemVVcGRhdGVRdWV1ZShmaWJlcikge1xuICAgICAgZmliZXIudXBkYXRlUXVldWUgPSB7XG4gICAgICAgIGJhc2VTdGF0ZTogZmliZXIubWVtb2l6ZWRTdGF0ZSxcbiAgICAgICAgZmlyc3RCYXNlVXBkYXRlOiBudWxsLFxuICAgICAgICBsYXN0QmFzZVVwZGF0ZTogbnVsbCxcbiAgICAgICAgc2hhcmVkOiB7IHBlbmRpbmc6IG51bGwsIGxhbmVzOiAwLCBoaWRkZW5DYWxsYmFja3M6IG51bGwgfSxcbiAgICAgICAgY2FsbGJhY2tzOiBudWxsXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjbG9uZVVwZGF0ZVF1ZXVlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKSB7XG4gICAgICBjdXJyZW50ID0gY3VycmVudC51cGRhdGVRdWV1ZTtcbiAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID09PSBjdXJyZW50ICYmXG4gICAgICAgICh3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IHtcbiAgICAgICAgICBiYXNlU3RhdGU6IGN1cnJlbnQuYmFzZVN0YXRlLFxuICAgICAgICAgIGZpcnN0QmFzZVVwZGF0ZTogY3VycmVudC5maXJzdEJhc2VVcGRhdGUsXG4gICAgICAgICAgbGFzdEJhc2VVcGRhdGU6IGN1cnJlbnQubGFzdEJhc2VVcGRhdGUsXG4gICAgICAgICAgc2hhcmVkOiBjdXJyZW50LnNoYXJlZCxcbiAgICAgICAgICBjYWxsYmFja3M6IG51bGxcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVVwZGF0ZShsYW5lKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYW5lOiBsYW5lLFxuICAgICAgICB0YWc6IFVwZGF0ZVN0YXRlLFxuICAgICAgICBwYXlsb2FkOiBudWxsLFxuICAgICAgICBjYWxsYmFjazogbnVsbCxcbiAgICAgICAgbmV4dDogbnVsbFxuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZW5xdWV1ZVVwZGF0ZShmaWJlciwgdXBkYXRlLCBsYW5lKSB7XG4gICAgICB2YXIgdXBkYXRlUXVldWUgPSBmaWJlci51cGRhdGVRdWV1ZTtcbiAgICAgIGlmIChudWxsID09PSB1cGRhdGVRdWV1ZSkgcmV0dXJuIG51bGw7XG4gICAgICB1cGRhdGVRdWV1ZSA9IHVwZGF0ZVF1ZXVlLnNoYXJlZDtcbiAgICAgIGlmIChcbiAgICAgICAgY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID09PSB1cGRhdGVRdWV1ZSAmJlxuICAgICAgICAhZGlkV2FyblVwZGF0ZUluc2lkZVVwZGF0ZVxuICAgICAgKSB7XG4gICAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcik7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJBbiB1cGRhdGUgKHNldFN0YXRlLCByZXBsYWNlU3RhdGUsIG9yIGZvcmNlVXBkYXRlKSB3YXMgc2NoZWR1bGVkIGZyb20gaW5zaWRlIGFuIHVwZGF0ZSBmdW5jdGlvbi4gVXBkYXRlIGZ1bmN0aW9ucyBzaG91bGQgYmUgcHVyZSwgd2l0aCB6ZXJvIHNpZGUtZWZmZWN0cy4gQ29uc2lkZXIgdXNpbmcgY29tcG9uZW50RGlkVXBkYXRlIG9yIGEgY2FsbGJhY2suXFxuXFxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudDogJXNcIixcbiAgICAgICAgICBjb21wb25lbnROYW1lXG4gICAgICAgICk7XG4gICAgICAgIGRpZFdhcm5VcGRhdGVJbnNpZGVVcGRhdGUgPSAhMDtcbiAgICAgIH1cbiAgICAgIGlmICgoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpICE9PSBOb0NvbnRleHQpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgKGNvbXBvbmVudE5hbWUgPSB1cGRhdGVRdWV1ZS5wZW5kaW5nKSxcbiAgICAgICAgICBudWxsID09PSBjb21wb25lbnROYW1lXG4gICAgICAgICAgICA/ICh1cGRhdGUubmV4dCA9IHVwZGF0ZSlcbiAgICAgICAgICAgIDogKCh1cGRhdGUubmV4dCA9IGNvbXBvbmVudE5hbWUubmV4dCksXG4gICAgICAgICAgICAgIChjb21wb25lbnROYW1lLm5leHQgPSB1cGRhdGUpKSxcbiAgICAgICAgICAodXBkYXRlUXVldWUucGVuZGluZyA9IHVwZGF0ZSksXG4gICAgICAgICAgKHVwZGF0ZSA9IGdldFJvb3RGb3JVcGRhdGVkRmliZXIoZmliZXIpKSxcbiAgICAgICAgICBtYXJrVXBkYXRlTGFuZUZyb21GaWJlclRvUm9vdChmaWJlciwgbnVsbCwgbGFuZSksXG4gICAgICAgICAgdXBkYXRlXG4gICAgICAgICk7XG4gICAgICBlbnF1ZXVlVXBkYXRlJDEoZmliZXIsIHVwZGF0ZVF1ZXVlLCB1cGRhdGUsIGxhbmUpO1xuICAgICAgcmV0dXJuIGdldFJvb3RGb3JVcGRhdGVkRmliZXIoZmliZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbnRhbmdsZVRyYW5zaXRpb25zKHJvb3QsIGZpYmVyLCBsYW5lKSB7XG4gICAgICBmaWJlciA9IGZpYmVyLnVwZGF0ZVF1ZXVlO1xuICAgICAgaWYgKG51bGwgIT09IGZpYmVyICYmICgoZmliZXIgPSBmaWJlci5zaGFyZWQpLCAwICE9PSAobGFuZSAmIDQxOTQwNDgpKSkge1xuICAgICAgICB2YXIgcXVldWVMYW5lcyA9IGZpYmVyLmxhbmVzO1xuICAgICAgICBxdWV1ZUxhbmVzICY9IHJvb3QucGVuZGluZ0xhbmVzO1xuICAgICAgICBsYW5lIHw9IHF1ZXVlTGFuZXM7XG4gICAgICAgIGZpYmVyLmxhbmVzID0gbGFuZTtcbiAgICAgICAgbWFya1Jvb3RFbnRhbmdsZWQocm9vdCwgbGFuZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVucXVldWVDYXB0dXJlZFVwZGF0ZSh3b3JrSW5Qcm9ncmVzcywgY2FwdHVyZWRVcGRhdGUpIHtcbiAgICAgIHZhciBxdWV1ZSA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlLFxuICAgICAgICBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlO1xuICAgICAgaWYgKFxuICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICgoY3VycmVudCA9IGN1cnJlbnQudXBkYXRlUXVldWUpLCBxdWV1ZSA9PT0gY3VycmVudClcbiAgICAgICkge1xuICAgICAgICB2YXIgbmV3Rmlyc3QgPSBudWxsLFxuICAgICAgICAgIG5ld0xhc3QgPSBudWxsO1xuICAgICAgICBxdWV1ZSA9IHF1ZXVlLmZpcnN0QmFzZVVwZGF0ZTtcbiAgICAgICAgaWYgKG51bGwgIT09IHF1ZXVlKSB7XG4gICAgICAgICAgZG8ge1xuICAgICAgICAgICAgdmFyIGNsb25lID0ge1xuICAgICAgICAgICAgICBsYW5lOiBxdWV1ZS5sYW5lLFxuICAgICAgICAgICAgICB0YWc6IHF1ZXVlLnRhZyxcbiAgICAgICAgICAgICAgcGF5bG9hZDogcXVldWUucGF5bG9hZCxcbiAgICAgICAgICAgICAgY2FsbGJhY2s6IG51bGwsXG4gICAgICAgICAgICAgIG5leHQ6IG51bGxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBudWxsID09PSBuZXdMYXN0XG4gICAgICAgICAgICAgID8gKG5ld0ZpcnN0ID0gbmV3TGFzdCA9IGNsb25lKVxuICAgICAgICAgICAgICA6IChuZXdMYXN0ID0gbmV3TGFzdC5uZXh0ID0gY2xvbmUpO1xuICAgICAgICAgICAgcXVldWUgPSBxdWV1ZS5uZXh0O1xuICAgICAgICAgIH0gd2hpbGUgKG51bGwgIT09IHF1ZXVlKTtcbiAgICAgICAgICBudWxsID09PSBuZXdMYXN0XG4gICAgICAgICAgICA/IChuZXdGaXJzdCA9IG5ld0xhc3QgPSBjYXB0dXJlZFVwZGF0ZSlcbiAgICAgICAgICAgIDogKG5ld0xhc3QgPSBuZXdMYXN0Lm5leHQgPSBjYXB0dXJlZFVwZGF0ZSk7XG4gICAgICAgIH0gZWxzZSBuZXdGaXJzdCA9IG5ld0xhc3QgPSBjYXB0dXJlZFVwZGF0ZTtcbiAgICAgICAgcXVldWUgPSB7XG4gICAgICAgICAgYmFzZVN0YXRlOiBjdXJyZW50LmJhc2VTdGF0ZSxcbiAgICAgICAgICBmaXJzdEJhc2VVcGRhdGU6IG5ld0ZpcnN0LFxuICAgICAgICAgIGxhc3RCYXNlVXBkYXRlOiBuZXdMYXN0LFxuICAgICAgICAgIHNoYXJlZDogY3VycmVudC5zaGFyZWQsXG4gICAgICAgICAgY2FsbGJhY2tzOiBjdXJyZW50LmNhbGxiYWNrc1xuICAgICAgICB9O1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IHF1ZXVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB3b3JrSW5Qcm9ncmVzcyA9IHF1ZXVlLmxhc3RCYXNlVXBkYXRlO1xuICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NcbiAgICAgICAgPyAocXVldWUuZmlyc3RCYXNlVXBkYXRlID0gY2FwdHVyZWRVcGRhdGUpXG4gICAgICAgIDogKHdvcmtJblByb2dyZXNzLm5leHQgPSBjYXB0dXJlZFVwZGF0ZSk7XG4gICAgICBxdWV1ZS5sYXN0QmFzZVVwZGF0ZSA9IGNhcHR1cmVkVXBkYXRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdXNwZW5kSWZVcGRhdGVSZWFkRnJvbUVudGFuZ2xlZEFzeW5jQWN0aW9uKCkge1xuICAgICAgaWYgKGRpZFJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24pIHtcbiAgICAgICAgdmFyIGVudGFuZ2xlZEFjdGlvblRoZW5hYmxlID0gY3VycmVudEVudGFuZ2xlZEFjdGlvblRoZW5hYmxlO1xuICAgICAgICBpZiAobnVsbCAhPT0gZW50YW5nbGVkQWN0aW9uVGhlbmFibGUpIHRocm93IGVudGFuZ2xlZEFjdGlvblRoZW5hYmxlO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzVXBkYXRlUXVldWUoXG4gICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgIHByb3BzLFxuICAgICAgaW5zdGFuY2UkanNjb21wJDAsXG4gICAgICByZW5kZXJMYW5lc1xuICAgICkge1xuICAgICAgZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbiA9ICExO1xuICAgICAgdmFyIHF1ZXVlID0gd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWU7XG4gICAgICBoYXNGb3JjZVVwZGF0ZSA9ICExO1xuICAgICAgY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID0gcXVldWUuc2hhcmVkO1xuICAgICAgdmFyIGZpcnN0QmFzZVVwZGF0ZSA9IHF1ZXVlLmZpcnN0QmFzZVVwZGF0ZSxcbiAgICAgICAgbGFzdEJhc2VVcGRhdGUgPSBxdWV1ZS5sYXN0QmFzZVVwZGF0ZSxcbiAgICAgICAgcGVuZGluZ1F1ZXVlID0gcXVldWUuc2hhcmVkLnBlbmRpbmc7XG4gICAgICBpZiAobnVsbCAhPT0gcGVuZGluZ1F1ZXVlKSB7XG4gICAgICAgIHF1ZXVlLnNoYXJlZC5wZW5kaW5nID0gbnVsbDtcbiAgICAgICAgdmFyIGxhc3RQZW5kaW5nVXBkYXRlID0gcGVuZGluZ1F1ZXVlLFxuICAgICAgICAgIGZpcnN0UGVuZGluZ1VwZGF0ZSA9IGxhc3RQZW5kaW5nVXBkYXRlLm5leHQ7XG4gICAgICAgIGxhc3RQZW5kaW5nVXBkYXRlLm5leHQgPSBudWxsO1xuICAgICAgICBudWxsID09PSBsYXN0QmFzZVVwZGF0ZVxuICAgICAgICAgID8gKGZpcnN0QmFzZVVwZGF0ZSA9IGZpcnN0UGVuZGluZ1VwZGF0ZSlcbiAgICAgICAgICA6IChsYXN0QmFzZVVwZGF0ZS5uZXh0ID0gZmlyc3RQZW5kaW5nVXBkYXRlKTtcbiAgICAgICAgbGFzdEJhc2VVcGRhdGUgPSBsYXN0UGVuZGluZ1VwZGF0ZTtcbiAgICAgICAgdmFyIGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGU7XG4gICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAoKGN1cnJlbnQgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICAocGVuZGluZ1F1ZXVlID0gY3VycmVudC5sYXN0QmFzZVVwZGF0ZSksXG4gICAgICAgICAgcGVuZGluZ1F1ZXVlICE9PSBsYXN0QmFzZVVwZGF0ZSAmJlxuICAgICAgICAgICAgKG51bGwgPT09IHBlbmRpbmdRdWV1ZVxuICAgICAgICAgICAgICA/IChjdXJyZW50LmZpcnN0QmFzZVVwZGF0ZSA9IGZpcnN0UGVuZGluZ1VwZGF0ZSlcbiAgICAgICAgICAgICAgOiAocGVuZGluZ1F1ZXVlLm5leHQgPSBmaXJzdFBlbmRpbmdVcGRhdGUpLFxuICAgICAgICAgICAgKGN1cnJlbnQubGFzdEJhc2VVcGRhdGUgPSBsYXN0UGVuZGluZ1VwZGF0ZSkpKTtcbiAgICAgIH1cbiAgICAgIGlmIChudWxsICE9PSBmaXJzdEJhc2VVcGRhdGUpIHtcbiAgICAgICAgdmFyIG5ld1N0YXRlID0gcXVldWUuYmFzZVN0YXRlO1xuICAgICAgICBsYXN0QmFzZVVwZGF0ZSA9IDA7XG4gICAgICAgIGN1cnJlbnQgPSBmaXJzdFBlbmRpbmdVcGRhdGUgPSBsYXN0UGVuZGluZ1VwZGF0ZSA9IG51bGw7XG4gICAgICAgIHBlbmRpbmdRdWV1ZSA9IGZpcnN0QmFzZVVwZGF0ZTtcbiAgICAgICAgZG8ge1xuICAgICAgICAgIHZhciB1cGRhdGVMYW5lID0gcGVuZGluZ1F1ZXVlLmxhbmUgJiAtNTM2ODcwOTEzLFxuICAgICAgICAgICAgaXNIaWRkZW5VcGRhdGUgPSB1cGRhdGVMYW5lICE9PSBwZW5kaW5nUXVldWUubGFuZTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBpc0hpZGRlblVwZGF0ZVxuICAgICAgICAgICAgICA/ICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmIHVwZGF0ZUxhbmUpID09PSB1cGRhdGVMYW5lXG4gICAgICAgICAgICAgIDogKHJlbmRlckxhbmVzICYgdXBkYXRlTGFuZSkgPT09IHVwZGF0ZUxhbmVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIDAgIT09IHVwZGF0ZUxhbmUgJiZcbiAgICAgICAgICAgICAgdXBkYXRlTGFuZSA9PT0gY3VycmVudEVudGFuZ2xlZExhbmUgJiZcbiAgICAgICAgICAgICAgKGRpZFJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24gPSAhMCk7XG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgIChjdXJyZW50ID0gY3VycmVudC5uZXh0ID1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBsYW5lOiAwLFxuICAgICAgICAgICAgICAgICAgdGFnOiBwZW5kaW5nUXVldWUudGFnLFxuICAgICAgICAgICAgICAgICAgcGF5bG9hZDogcGVuZGluZ1F1ZXVlLnBheWxvYWQsXG4gICAgICAgICAgICAgICAgICBjYWxsYmFjazogbnVsbCxcbiAgICAgICAgICAgICAgICAgIG5leHQ6IG51bGxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgICAgdXBkYXRlTGFuZSA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgICAgICAgICB2YXIgcGFydGlhbFN0YXRlID0gcGVuZGluZ1F1ZXVlO1xuICAgICAgICAgICAgICB2YXIgbmV4dFByb3BzID0gcHJvcHMsXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBpbnN0YW5jZSRqc2NvbXAkMDtcbiAgICAgICAgICAgICAgc3dpdGNoIChwYXJ0aWFsU3RhdGUudGFnKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBSZXBsYWNlU3RhdGU6XG4gICAgICAgICAgICAgICAgICBwYXJ0aWFsU3RhdGUgPSBwYXJ0aWFsU3RhdGUucGF5bG9hZDtcbiAgICAgICAgICAgICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwYXJ0aWFsU3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFViA9ICEwO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmV4dFN0YXRlID0gcGFydGlhbFN0YXRlLmNhbGwoXG4gICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgbmV3U3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgbmV4dFByb3BzXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh1cGRhdGVMYW5lLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITApO1xuICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0aWFsU3RhdGUuY2FsbChpbnN0YW5jZSwgbmV3U3RhdGUsIG5leHRQcm9wcyk7XG4gICAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCExKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaXNEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFViA9ICExO1xuICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSA9IG5leHRTdGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0gcGFydGlhbFN0YXRlO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICBjYXNlIENhcHR1cmVVcGRhdGU6XG4gICAgICAgICAgICAgICAgICB1cGRhdGVMYW5lLmZsYWdzID0gKHVwZGF0ZUxhbmUuZmxhZ3MgJiAtNjU1MzcpIHwgMTI4O1xuICAgICAgICAgICAgICAgIGNhc2UgVXBkYXRlU3RhdGU6XG4gICAgICAgICAgICAgICAgICBuZXh0U3RhdGUgPSBwYXJ0aWFsU3RhdGUucGF5bG9hZDtcbiAgICAgICAgICAgICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBuZXh0U3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaXNEaXNhbGxvd2VkQ29udGV4dFJlYWRJbkRFViA9ICEwO1xuICAgICAgICAgICAgICAgICAgICBwYXJ0aWFsU3RhdGUgPSBuZXh0U3RhdGUuY2FsbChcbiAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICBuZXh0UHJvcHNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVwZGF0ZUxhbmUubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMCk7XG4gICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTdGF0ZS5jYWxsKGluc3RhbmNlLCBuZXdTdGF0ZSwgbmV4dFByb3BzKTtcbiAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITEpO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpc0Rpc2FsbG93ZWRDb250ZXh0UmVhZEluREVWID0gITE7XG4gICAgICAgICAgICAgICAgICB9IGVsc2UgcGFydGlhbFN0YXRlID0gbmV4dFN0YXRlO1xuICAgICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IHBhcnRpYWxTdGF0ZSB8fCB2b2lkIDAgPT09IHBhcnRpYWxTdGF0ZSkgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgIG5ld1N0YXRlID0gYXNzaWduKHt9LCBuZXdTdGF0ZSwgcGFydGlhbFN0YXRlKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgY2FzZSBGb3JjZVVwZGF0ZTpcbiAgICAgICAgICAgICAgICAgIGhhc0ZvcmNlVXBkYXRlID0gITA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVwZGF0ZUxhbmUgPSBwZW5kaW5nUXVldWUuY2FsbGJhY2s7XG4gICAgICAgICAgICBudWxsICE9PSB1cGRhdGVMYW5lICYmXG4gICAgICAgICAgICAgICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gNjQpLFxuICAgICAgICAgICAgICBpc0hpZGRlblVwZGF0ZSAmJiAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gODE5MiksXG4gICAgICAgICAgICAgIChpc0hpZGRlblVwZGF0ZSA9IHF1ZXVlLmNhbGxiYWNrcyksXG4gICAgICAgICAgICAgIG51bGwgPT09IGlzSGlkZGVuVXBkYXRlXG4gICAgICAgICAgICAgICAgPyAocXVldWUuY2FsbGJhY2tzID0gW3VwZGF0ZUxhbmVdKVxuICAgICAgICAgICAgICAgIDogaXNIaWRkZW5VcGRhdGUucHVzaCh1cGRhdGVMYW5lKSk7XG4gICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAoaXNIaWRkZW5VcGRhdGUgPSB7XG4gICAgICAgICAgICAgIGxhbmU6IHVwZGF0ZUxhbmUsXG4gICAgICAgICAgICAgIHRhZzogcGVuZGluZ1F1ZXVlLnRhZyxcbiAgICAgICAgICAgICAgcGF5bG9hZDogcGVuZGluZ1F1ZXVlLnBheWxvYWQsXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiBwZW5kaW5nUXVldWUuY2FsbGJhY2ssXG4gICAgICAgICAgICAgIG5leHQ6IG51bGxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBudWxsID09PSBjdXJyZW50XG4gICAgICAgICAgICAgICAgPyAoKGZpcnN0UGVuZGluZ1VwZGF0ZSA9IGN1cnJlbnQgPSBpc0hpZGRlblVwZGF0ZSksXG4gICAgICAgICAgICAgICAgICAobGFzdFBlbmRpbmdVcGRhdGUgPSBuZXdTdGF0ZSkpXG4gICAgICAgICAgICAgICAgOiAoY3VycmVudCA9IGN1cnJlbnQubmV4dCA9IGlzSGlkZGVuVXBkYXRlKSxcbiAgICAgICAgICAgICAgKGxhc3RCYXNlVXBkYXRlIHw9IHVwZGF0ZUxhbmUpO1xuICAgICAgICAgIHBlbmRpbmdRdWV1ZSA9IHBlbmRpbmdRdWV1ZS5uZXh0O1xuICAgICAgICAgIGlmIChudWxsID09PSBwZW5kaW5nUXVldWUpXG4gICAgICAgICAgICBpZiAoKChwZW5kaW5nUXVldWUgPSBxdWV1ZS5zaGFyZWQucGVuZGluZyksIG51bGwgPT09IHBlbmRpbmdRdWV1ZSkpXG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAoaXNIaWRkZW5VcGRhdGUgPSBwZW5kaW5nUXVldWUpLFxuICAgICAgICAgICAgICAgIChwZW5kaW5nUXVldWUgPSBpc0hpZGRlblVwZGF0ZS5uZXh0KSxcbiAgICAgICAgICAgICAgICAoaXNIaWRkZW5VcGRhdGUubmV4dCA9IG51bGwpLFxuICAgICAgICAgICAgICAgIChxdWV1ZS5sYXN0QmFzZVVwZGF0ZSA9IGlzSGlkZGVuVXBkYXRlKSxcbiAgICAgICAgICAgICAgICAocXVldWUuc2hhcmVkLnBlbmRpbmcgPSBudWxsKTtcbiAgICAgICAgfSB3aGlsZSAoMSk7XG4gICAgICAgIG51bGwgPT09IGN1cnJlbnQgJiYgKGxhc3RQZW5kaW5nVXBkYXRlID0gbmV3U3RhdGUpO1xuICAgICAgICBxdWV1ZS5iYXNlU3RhdGUgPSBsYXN0UGVuZGluZ1VwZGF0ZTtcbiAgICAgICAgcXVldWUuZmlyc3RCYXNlVXBkYXRlID0gZmlyc3RQZW5kaW5nVXBkYXRlO1xuICAgICAgICBxdWV1ZS5sYXN0QmFzZVVwZGF0ZSA9IGN1cnJlbnQ7XG4gICAgICAgIG51bGwgPT09IGZpcnN0QmFzZVVwZGF0ZSAmJiAocXVldWUuc2hhcmVkLmxhbmVzID0gMCk7XG4gICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyB8PSBsYXN0QmFzZVVwZGF0ZTtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSBsYXN0QmFzZVVwZGF0ZTtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgfVxuICAgICAgY3VycmVudGx5UHJvY2Vzc2luZ1F1ZXVlID0gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FsbENhbGxiYWNrKGNhbGxiYWNrLCBjb250ZXh0KSB7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgY2FsbGJhY2spXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwiSW52YWxpZCBhcmd1bWVudCBwYXNzZWQgYXMgY2FsbGJhY2suIEV4cGVjdGVkIGEgZnVuY3Rpb24uIEluc3RlYWQgcmVjZWl2ZWQ6IFwiICtcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICk7XG4gICAgICBjYWxsYmFjay5jYWxsKGNvbnRleHQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRIaWRkZW5DYWxsYmFja3ModXBkYXRlUXVldWUsIGNvbnRleHQpIHtcbiAgICAgIHZhciBoaWRkZW5DYWxsYmFja3MgPSB1cGRhdGVRdWV1ZS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzO1xuICAgICAgaWYgKG51bGwgIT09IGhpZGRlbkNhbGxiYWNrcylcbiAgICAgICAgZm9yIChcbiAgICAgICAgICB1cGRhdGVRdWV1ZS5zaGFyZWQuaGlkZGVuQ2FsbGJhY2tzID0gbnVsbCwgdXBkYXRlUXVldWUgPSAwO1xuICAgICAgICAgIHVwZGF0ZVF1ZXVlIDwgaGlkZGVuQ2FsbGJhY2tzLmxlbmd0aDtcbiAgICAgICAgICB1cGRhdGVRdWV1ZSsrXG4gICAgICAgIClcbiAgICAgICAgICBjYWxsQ2FsbGJhY2soaGlkZGVuQ2FsbGJhY2tzW3VwZGF0ZVF1ZXVlXSwgY29udGV4dCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdENhbGxiYWNrcyh1cGRhdGVRdWV1ZSwgY29udGV4dCkge1xuICAgICAgdmFyIGNhbGxiYWNrcyA9IHVwZGF0ZVF1ZXVlLmNhbGxiYWNrcztcbiAgICAgIGlmIChudWxsICE9PSBjYWxsYmFja3MpXG4gICAgICAgIGZvciAoXG4gICAgICAgICAgdXBkYXRlUXVldWUuY2FsbGJhY2tzID0gbnVsbCwgdXBkYXRlUXVldWUgPSAwO1xuICAgICAgICAgIHVwZGF0ZVF1ZXVlIDwgY2FsbGJhY2tzLmxlbmd0aDtcbiAgICAgICAgICB1cGRhdGVRdWV1ZSsrXG4gICAgICAgIClcbiAgICAgICAgICBjYWxsQ2FsbGJhY2soY2FsbGJhY2tzW3VwZGF0ZVF1ZXVlXSwgY29udGV4dCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2hIaWRkZW5Db250ZXh0KGZpYmVyLCBjb250ZXh0KSB7XG4gICAgICB2YXIgcHJldkVudGFuZ2xlZFJlbmRlckxhbmVzID0gZW50YW5nbGVkUmVuZGVyTGFuZXM7XG4gICAgICBwdXNoKHByZXZFbnRhbmdsZWRSZW5kZXJMYW5lc0N1cnNvciwgcHJldkVudGFuZ2xlZFJlbmRlckxhbmVzLCBmaWJlcik7XG4gICAgICBwdXNoKGN1cnJlbnRUcmVlSGlkZGVuU3RhY2tDdXJzb3IsIGNvbnRleHQsIGZpYmVyKTtcbiAgICAgIGVudGFuZ2xlZFJlbmRlckxhbmVzID0gcHJldkVudGFuZ2xlZFJlbmRlckxhbmVzIHwgY29udGV4dC5iYXNlTGFuZXM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJldXNlSGlkZGVuQ29udGV4dE9uU3RhY2soZmliZXIpIHtcbiAgICAgIHB1c2gocHJldkVudGFuZ2xlZFJlbmRlckxhbmVzQ3Vyc29yLCBlbnRhbmdsZWRSZW5kZXJMYW5lcywgZmliZXIpO1xuICAgICAgcHVzaChcbiAgICAgICAgY3VycmVudFRyZWVIaWRkZW5TdGFja0N1cnNvcixcbiAgICAgICAgY3VycmVudFRyZWVIaWRkZW5TdGFja0N1cnNvci5jdXJyZW50LFxuICAgICAgICBmaWJlclxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wSGlkZGVuQ29udGV4dChmaWJlcikge1xuICAgICAgZW50YW5nbGVkUmVuZGVyTGFuZXMgPSBwcmV2RW50YW5nbGVkUmVuZGVyTGFuZXNDdXJzb3IuY3VycmVudDtcbiAgICAgIHBvcChjdXJyZW50VHJlZUhpZGRlblN0YWNrQ3Vyc29yLCBmaWJlcik7XG4gICAgICBwb3AocHJldkVudGFuZ2xlZFJlbmRlckxhbmVzQ3Vyc29yLCBmaWJlcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2hQcmltYXJ5VHJlZVN1c3BlbnNlSGFuZGxlcihoYW5kbGVyKSB7XG4gICAgICB2YXIgY3VycmVudCA9IGhhbmRsZXIuYWx0ZXJuYXRlO1xuICAgICAgcHVzaChcbiAgICAgICAgc3VzcGVuc2VTdGFja0N1cnNvcixcbiAgICAgICAgc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50ICYgU3VidHJlZVN1c3BlbnNlQ29udGV4dE1hc2ssXG4gICAgICAgIGhhbmRsZXJcbiAgICAgICk7XG4gICAgICBwdXNoKHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLCBoYW5kbGVyLCBoYW5kbGVyKTtcbiAgICAgIG51bGwgPT09IHNoZWxsQm91bmRhcnkgJiZcbiAgICAgICAgKG51bGwgPT09IGN1cnJlbnQgfHwgbnVsbCAhPT0gY3VycmVudFRyZWVIaWRkZW5TdGFja0N1cnNvci5jdXJyZW50XG4gICAgICAgICAgPyAoc2hlbGxCb3VuZGFyeSA9IGhhbmRsZXIpXG4gICAgICAgICAgOiBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUgJiYgKHNoZWxsQm91bmRhcnkgPSBoYW5kbGVyKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2hEZWh5ZHJhdGVkQWN0aXZpdHlTdXNwZW5zZUhhbmRsZXIoZmliZXIpIHtcbiAgICAgIHB1c2goc3VzcGVuc2VTdGFja0N1cnNvciwgc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50LCBmaWJlcik7XG4gICAgICBwdXNoKHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLCBmaWJlciwgZmliZXIpO1xuICAgICAgbnVsbCA9PT0gc2hlbGxCb3VuZGFyeSAmJiAoc2hlbGxCb3VuZGFyeSA9IGZpYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaE9mZnNjcmVlblN1c3BlbnNlSGFuZGxlcihmaWJlcikge1xuICAgICAgMjIgPT09IGZpYmVyLnRhZ1xuICAgICAgICA/IChwdXNoKHN1c3BlbnNlU3RhY2tDdXJzb3IsIHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCwgZmliZXIpLFxuICAgICAgICAgIHB1c2goc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IsIGZpYmVyLCBmaWJlciksXG4gICAgICAgICAgbnVsbCA9PT0gc2hlbGxCb3VuZGFyeSAmJiAoc2hlbGxCb3VuZGFyeSA9IGZpYmVyKSlcbiAgICAgICAgOiByZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2soZmliZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2soZmliZXIpIHtcbiAgICAgIHB1c2goc3VzcGVuc2VTdGFja0N1cnNvciwgc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50LCBmaWJlcik7XG4gICAgICBwdXNoKFxuICAgICAgICBzdXNwZW5zZUhhbmRsZXJTdGFja0N1cnNvcixcbiAgICAgICAgc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudCxcbiAgICAgICAgZmliZXJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBvcFN1c3BlbnNlSGFuZGxlcihmaWJlcikge1xuICAgICAgcG9wKHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLCBmaWJlcik7XG4gICAgICBzaGVsbEJvdW5kYXJ5ID09PSBmaWJlciAmJiAoc2hlbGxCb3VuZGFyeSA9IG51bGwpO1xuICAgICAgcG9wKHN1c3BlbnNlU3RhY2tDdXJzb3IsIGZpYmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmluZEZpcnN0U3VzcGVuZGVkKHJvdykge1xuICAgICAgZm9yICh2YXIgbm9kZSA9IHJvdzsgbnVsbCAhPT0gbm9kZTsgKSB7XG4gICAgICAgIGlmICgxMyA9PT0gbm9kZS50YWcpIHtcbiAgICAgICAgICB2YXIgc3RhdGUgPSBub2RlLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgbnVsbCAhPT0gc3RhdGUgJiZcbiAgICAgICAgICAgICgoc3RhdGUgPSBzdGF0ZS5kZWh5ZHJhdGVkKSxcbiAgICAgICAgICAgIG51bGwgPT09IHN0YXRlIHx8XG4gICAgICAgICAgICAgIGlzU3VzcGVuc2VJbnN0YW5jZVBlbmRpbmcoc3RhdGUpIHx8XG4gICAgICAgICAgICAgIGlzU3VzcGVuc2VJbnN0YW5jZUZhbGxiYWNrKHN0YXRlKSlcbiAgICAgICAgICApXG4gICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAxOSA9PT0gbm9kZS50YWcgJiZcbiAgICAgICAgICAoXCJmb3J3YXJkc1wiID09PSBub2RlLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIgfHxcbiAgICAgICAgICAgIFwiYmFja3dhcmRzXCIgPT09IG5vZGUubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlciB8fFxuICAgICAgICAgICAgXCJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzXCIgPT09IG5vZGUubWVtb2l6ZWRQcm9wcy5yZXZlYWxPcmRlciB8fFxuICAgICAgICAgICAgXCJ0b2dldGhlclwiID09PSBub2RlLm1lbW9pemVkUHJvcHMucmV2ZWFsT3JkZXIpXG4gICAgICAgICkge1xuICAgICAgICAgIGlmICgwICE9PSAobm9kZS5mbGFncyAmIDEyOCkpIHJldHVybiBub2RlO1xuICAgICAgICB9IGVsc2UgaWYgKG51bGwgIT09IG5vZGUuY2hpbGQpIHtcbiAgICAgICAgICBub2RlLmNoaWxkLnJldHVybiA9IG5vZGU7XG4gICAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGQ7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vZGUgPT09IHJvdykgYnJlYWs7XG4gICAgICAgIGZvciAoOyBudWxsID09PSBub2RlLnNpYmxpbmc7ICkge1xuICAgICAgICAgIGlmIChudWxsID09PSBub2RlLnJldHVybiB8fCBub2RlLnJldHVybiA9PT0gcm93KSByZXR1cm4gbnVsbDtcbiAgICAgICAgICBub2RlID0gbm9kZS5yZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbm9kZS5zaWJsaW5nLnJldHVybiA9IG5vZGUucmV0dXJuO1xuICAgICAgICBub2RlID0gbm9kZS5zaWJsaW5nO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50SG9va1R5cGVzRGV2KCkge1xuICAgICAgdmFyIGhvb2tOYW1lID0gY3VycmVudEhvb2tOYW1lSW5EZXY7XG4gICAgICBudWxsID09PSBob29rVHlwZXNEZXZcbiAgICAgICAgPyAoaG9va1R5cGVzRGV2ID0gW2hvb2tOYW1lXSlcbiAgICAgICAgOiBob29rVHlwZXNEZXYucHVzaChob29rTmFtZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZUhvb2tUeXBlc0RldigpIHtcbiAgICAgIHZhciBob29rTmFtZSA9IGN1cnJlbnRIb29rTmFtZUluRGV2O1xuICAgICAgaWYgKFxuICAgICAgICBudWxsICE9PSBob29rVHlwZXNEZXYgJiZcbiAgICAgICAgKGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2KyssXG4gICAgICAgIGhvb2tUeXBlc0Rldltob29rVHlwZXNVcGRhdGVJbmRleERldl0gIT09IGhvb2tOYW1lKVxuICAgICAgKSB7XG4gICAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihjdXJyZW50bHlSZW5kZXJpbmdGaWJlcik7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhZGlkV2FybkFib3V0TWlzbWF0Y2hlZEhvb2tzRm9yQ29tcG9uZW50Lmhhcyhjb21wb25lbnROYW1lKSAmJlxuICAgICAgICAgIChkaWRXYXJuQWJvdXRNaXNtYXRjaGVkSG9va3NGb3JDb21wb25lbnQuYWRkKGNvbXBvbmVudE5hbWUpLFxuICAgICAgICAgIG51bGwgIT09IGhvb2tUeXBlc0RldilcbiAgICAgICAgKSB7XG4gICAgICAgICAgZm9yICh2YXIgdGFibGUgPSBcIlwiLCBpID0gMDsgaSA8PSBob29rVHlwZXNVcGRhdGVJbmRleERldjsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgb2xkSG9va05hbWUgPSBob29rVHlwZXNEZXZbaV0sXG4gICAgICAgICAgICAgIG5ld0hvb2tOYW1lID1cbiAgICAgICAgICAgICAgICBpID09PSBob29rVHlwZXNVcGRhdGVJbmRleERldiA/IGhvb2tOYW1lIDogb2xkSG9va05hbWU7XG4gICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICBvbGRIb29rTmFtZSA9IGkgKyAxICsgXCIuIFwiICsgb2xkSG9va05hbWU7XG4gICAgICAgICAgICAgIDMwID4gb2xkSG9va05hbWUubGVuZ3RoO1xuXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIG9sZEhvb2tOYW1lICs9IFwiIFwiO1xuICAgICAgICAgICAgb2xkSG9va05hbWUgKz0gbmV3SG9va05hbWUgKyBcIlxcblwiO1xuICAgICAgICAgICAgdGFibGUgKz0gb2xkSG9va05hbWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlJlYWN0IGhhcyBkZXRlY3RlZCBhIGNoYW5nZSBpbiB0aGUgb3JkZXIgb2YgSG9va3MgY2FsbGVkIGJ5ICVzLiBUaGlzIHdpbGwgbGVhZCB0byBidWdzIGFuZCBlcnJvcnMgaWYgbm90IGZpeGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhZCB0aGUgUnVsZXMgb2YgSG9va3M6IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvcnVsZXMtb2YtaG9va3NcXG5cXG4gICBQcmV2aW91cyByZW5kZXIgICAgICAgICAgICBOZXh0IHJlbmRlclxcbiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxcbiVzICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXFxuXCIsXG4gICAgICAgICAgICBjb21wb25lbnROYW1lLFxuICAgICAgICAgICAgdGFibGVcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNoZWNrRGVwc0FyZUFycmF5RGV2KGRlcHMpIHtcbiAgICAgIHZvaWQgMCA9PT0gZGVwcyB8fFxuICAgICAgICBudWxsID09PSBkZXBzIHx8XG4gICAgICAgIGlzQXJyYXlJbXBsKGRlcHMpIHx8XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCIlcyByZWNlaXZlZCBhIGZpbmFsIGFyZ3VtZW50IHRoYXQgaXMgbm90IGFuIGFycmF5IChpbnN0ZWFkLCByZWNlaXZlZCBgJXNgKS4gV2hlbiBzcGVjaWZpZWQsIHRoZSBmaW5hbCBhcmd1bWVudCBtdXN0IGJlIGFuIGFycmF5LlwiLFxuICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2LFxuICAgICAgICAgIHR5cGVvZiBkZXBzXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5PblVzZUZvcm1TdGF0ZUluRGV2KCkge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyKTtcbiAgICAgIGRpZFdhcm5BYm91dFVzZUZvcm1TdGF0ZS5oYXMoY29tcG9uZW50TmFtZSkgfHxcbiAgICAgICAgKGRpZFdhcm5BYm91dFVzZUZvcm1TdGF0ZS5hZGQoY29tcG9uZW50TmFtZSksXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJSZWFjdERPTS51c2VGb3JtU3RhdGUgaGFzIGJlZW4gcmVuYW1lZCB0byBSZWFjdC51c2VBY3Rpb25TdGF0ZS4gUGxlYXNlIHVwZGF0ZSAlcyB0byB1c2UgUmVhY3QudXNlQWN0aW9uU3RhdGUuXCIsXG4gICAgICAgICAgY29tcG9uZW50TmFtZVxuICAgICAgICApKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdGhyb3dJbnZhbGlkSG9va0Vycm9yKCkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIFwiSW52YWxpZCBob29rIGNhbGwuIEhvb2tzIGNhbiBvbmx5IGJlIGNhbGxlZCBpbnNpZGUgb2YgdGhlIGJvZHkgb2YgYSBmdW5jdGlvbiBjb21wb25lbnQuIFRoaXMgY291bGQgaGFwcGVuIGZvciBvbmUgb2YgdGhlIGZvbGxvd2luZyByZWFzb25zOlxcbjEuIFlvdSBtaWdodCBoYXZlIG1pc21hdGNoaW5nIHZlcnNpb25zIG9mIFJlYWN0IGFuZCB0aGUgcmVuZGVyZXIgKHN1Y2ggYXMgUmVhY3QgRE9NKVxcbjIuIFlvdSBtaWdodCBiZSBicmVha2luZyB0aGUgUnVsZXMgb2YgSG9va3NcXG4zLiBZb3UgbWlnaHQgaGF2ZSBtb3JlIHRoYW4gb25lIGNvcHkgb2YgUmVhY3QgaW4gdGhlIHNhbWUgYXBwXFxuU2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvaW52YWxpZC1ob29rLWNhbGwgZm9yIHRpcHMgYWJvdXQgaG93IHRvIGRlYnVnIGFuZCBmaXggdGhpcyBwcm9ibGVtLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhcmVIb29rSW5wdXRzRXF1YWwobmV4dERlcHMsIHByZXZEZXBzKSB7XG4gICAgICBpZiAoaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMpIHJldHVybiAhMTtcbiAgICAgIGlmIChudWxsID09PSBwcmV2RGVwcylcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCIlcyByZWNlaXZlZCBhIGZpbmFsIGFyZ3VtZW50IGR1cmluZyB0aGlzIHJlbmRlciwgYnV0IG5vdCBkdXJpbmcgdGhlIHByZXZpb3VzIHJlbmRlci4gRXZlbiB0aG91Z2ggdGhlIGZpbmFsIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCBpdHMgdHlwZSBjYW5ub3QgY2hhbmdlIGJldHdlZW4gcmVuZGVycy5cIixcbiAgICAgICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2XG4gICAgICAgICAgKSxcbiAgICAgICAgICAhMVxuICAgICAgICApO1xuICAgICAgbmV4dERlcHMubGVuZ3RoICE9PSBwcmV2RGVwcy5sZW5ndGggJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlRoZSBmaW5hbCBhcmd1bWVudCBwYXNzZWQgdG8gJXMgY2hhbmdlZCBzaXplIGJldHdlZW4gcmVuZGVycy4gVGhlIG9yZGVyIGFuZCBzaXplIG9mIHRoaXMgYXJyYXkgbXVzdCByZW1haW4gY29uc3RhbnQuXFxuXFxuUHJldmlvdXM6ICVzXFxuSW5jb21pbmc6ICVzXCIsXG4gICAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYsXG4gICAgICAgICAgXCJbXCIgKyBwcmV2RGVwcy5qb2luKFwiLCBcIikgKyBcIl1cIixcbiAgICAgICAgICBcIltcIiArIG5leHREZXBzLmpvaW4oXCIsIFwiKSArIFwiXVwiXG4gICAgICAgICk7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByZXZEZXBzLmxlbmd0aCAmJiBpIDwgbmV4dERlcHMubGVuZ3RoOyBpKyspXG4gICAgICAgIGlmICghb2JqZWN0SXMobmV4dERlcHNbaV0sIHByZXZEZXBzW2ldKSkgcmV0dXJuICExO1xuICAgICAgcmV0dXJuICEwO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZW5kZXJXaXRoSG9va3MoXG4gICAgICBjdXJyZW50LFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICBDb21wb25lbnQsXG4gICAgICBwcm9wcyxcbiAgICAgIHNlY29uZEFyZyxcbiAgICAgIG5leHRSZW5kZXJMYW5lc1xuICAgICkge1xuICAgICAgcmVuZGVyTGFuZXMgPSBuZXh0UmVuZGVyTGFuZXM7XG4gICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgaG9va1R5cGVzRGV2ID0gbnVsbCAhPT0gY3VycmVudCA/IGN1cnJlbnQuX2RlYnVnSG9va1R5cGVzIDogbnVsbDtcbiAgICAgIGhvb2tUeXBlc1VwZGF0ZUluZGV4RGV2ID0gLTE7XG4gICAgICBpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcyA9XG4gICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiYgY3VycmVudC50eXBlICE9PSB3b3JrSW5Qcm9ncmVzcy50eXBlO1xuICAgICAgaWYgKFxuICAgICAgICBcIltvYmplY3QgQXN5bmNGdW5jdGlvbl1cIiA9PT1cbiAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQ29tcG9uZW50KSB8fFxuICAgICAgICBcIltvYmplY3QgQXN5bmNHZW5lcmF0b3JGdW5jdGlvbl1cIiA9PT1cbiAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQ29tcG9uZW50KVxuICAgICAgKVxuICAgICAgICAobmV4dFJlbmRlckxhbmVzID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihjdXJyZW50bHlSZW5kZXJpbmdGaWJlcikpLFxuICAgICAgICAgIGRpZFdhcm5BYm91dEFzeW5jQ2xpZW50Q29tcG9uZW50LmhhcyhuZXh0UmVuZGVyTGFuZXMpIHx8XG4gICAgICAgICAgICAoZGlkV2FybkFib3V0QXN5bmNDbGllbnRDb21wb25lbnQuYWRkKG5leHRSZW5kZXJMYW5lcyksXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIiVzIGlzIGFuIGFzeW5jIENsaWVudCBDb21wb25lbnQuIE9ubHkgU2VydmVyIENvbXBvbmVudHMgY2FuIGJlIGFzeW5jIGF0IHRoZSBtb21lbnQuIFRoaXMgZXJyb3IgaXMgb2Z0ZW4gY2F1c2VkIGJ5IGFjY2lkZW50YWxseSBhZGRpbmcgYCd1c2UgY2xpZW50J2AgdG8gYSBtb2R1bGUgdGhhdCB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGZvciB0aGUgc2VydmVyLlwiLFxuICAgICAgICAgICAgICBudWxsID09PSBuZXh0UmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICA/IFwiQW4gdW5rbm93biBDb21wb25lbnRcIlxuICAgICAgICAgICAgICAgIDogXCI8XCIgKyBuZXh0UmVuZGVyTGFuZXMgKyBcIj5cIlxuICAgICAgICAgICAgKSk7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gbnVsbDtcbiAgICAgIHdvcmtJblByb2dyZXNzLmxhbmVzID0gMDtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPVxuICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZVxuICAgICAgICAgID8gSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVlxuICAgICAgICAgIDogbnVsbCAhPT0gaG9va1R5cGVzRGV2XG4gICAgICAgICAgICA/IEhvb2tzRGlzcGF0Y2hlck9uTW91bnRXaXRoSG9va1R5cGVzSW5ERVZcbiAgICAgICAgICAgIDogSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuICAgICAgc2hvdWxkRG91YmxlSW52b2tlVXNlckZuc0luSG9va3NERVYgPSBuZXh0UmVuZGVyTGFuZXMgPVxuICAgICAgICAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpICE9PSBOb01vZGU7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBjYWxsQ29tcG9uZW50SW5ERVYoQ29tcG9uZW50LCBwcm9wcywgc2Vjb25kQXJnKTtcbiAgICAgIHNob3VsZERvdWJsZUludm9rZVVzZXJGbnNJbkhvb2tzREVWID0gITE7XG4gICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgJiZcbiAgICAgICAgKGNoaWxkcmVuID0gcmVuZGVyV2l0aEhvb2tzQWdhaW4oXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgIHByb3BzLFxuICAgICAgICAgIHNlY29uZEFyZ1xuICAgICAgICApKTtcbiAgICAgIGlmIChuZXh0UmVuZGVyTGFuZXMpIHtcbiAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITApO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNoaWxkcmVuID0gcmVuZGVyV2l0aEhvb2tzQWdhaW4oXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgc2Vjb25kQXJnXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGZpbmlzaFJlbmRlcmluZ0hvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmluaXNoUmVuZGVyaW5nSG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgIHdvcmtJblByb2dyZXNzLl9kZWJ1Z0hvb2tUeXBlcyA9IGhvb2tUeXBlc0RldjtcbiAgICAgIG51bGwgPT09IHdvcmtJblByb2dyZXNzLmRlcGVuZGVuY2llc1xuICAgICAgICA/IG51bGwgIT09IHRoZW5hYmxlU3RhdGUgJiZcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzID0ge1xuICAgICAgICAgICAgbGFuZXM6IDAsXG4gICAgICAgICAgICBmaXJzdENvbnRleHQ6IG51bGwsXG4gICAgICAgICAgICBfZGVidWdUaGVuYWJsZVN0YXRlOiB0aGVuYWJsZVN0YXRlXG4gICAgICAgICAgfSlcbiAgICAgICAgOiAod29ya0luUHJvZ3Jlc3MuZGVwZW5kZW5jaWVzLl9kZWJ1Z1RoZW5hYmxlU3RhdGUgPSB0aGVuYWJsZVN0YXRlKTtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBDb250ZXh0T25seURpc3BhdGNoZXI7XG4gICAgICB2YXIgZGlkUmVuZGVyVG9vRmV3SG9va3MgPVxuICAgICAgICBudWxsICE9PSBjdXJyZW50SG9vayAmJiBudWxsICE9PSBjdXJyZW50SG9vay5uZXh0O1xuICAgICAgcmVuZGVyTGFuZXMgPSAwO1xuICAgICAgaG9va1R5cGVzRGV2ID1cbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPVxuICAgICAgICB3b3JrSW5Qcm9ncmVzc0hvb2sgPVxuICAgICAgICBjdXJyZW50SG9vayA9XG4gICAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyID1cbiAgICAgICAgICBudWxsO1xuICAgICAgaG9va1R5cGVzVXBkYXRlSW5kZXhEZXYgPSAtMTtcbiAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgKGN1cnJlbnQuZmxhZ3MgJiA2NTAxMTcxMikgIT09ICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDY1MDExNzEyKSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiSW50ZXJuYWwgUmVhY3QgZXJyb3I6IEV4cGVjdGVkIHN0YXRpYyBmbGFnIHdhcyBtaXNzaW5nLiBQbGVhc2Ugbm90aWZ5IHRoZSBSZWFjdCB0ZWFtLlwiXG4gICAgICAgICk7XG4gICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlID0gITE7XG4gICAgICB0aGVuYWJsZUluZGV4Q291bnRlciA9IDA7XG4gICAgICB0aGVuYWJsZVN0YXRlID0gbnVsbDtcbiAgICAgIGlmIChkaWRSZW5kZXJUb29GZXdIb29rcylcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJSZW5kZXJlZCBmZXdlciBob29rcyB0aGFuIGV4cGVjdGVkLiBUaGlzIG1heSBiZSBjYXVzZWQgYnkgYW4gYWNjaWRlbnRhbCBlYXJseSByZXR1cm4gc3RhdGVtZW50LlwiXG4gICAgICAgICk7XG4gICAgICBudWxsID09PSBjdXJyZW50IHx8XG4gICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgfHxcbiAgICAgICAgKChjdXJyZW50ID0gY3VycmVudC5kZXBlbmRlbmNpZXMpLFxuICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgY2hlY2tJZkNvbnRleHRDaGFuZ2VkKGN1cnJlbnQpICYmXG4gICAgICAgICAgKGRpZFJlY2VpdmVVcGRhdGUgPSAhMCkpO1xuICAgICAgbmVlZHNUb1Jlc2V0U3VzcGVuZGVkVGhlbmFibGVERVZcbiAgICAgICAgPyAoKG5lZWRzVG9SZXNldFN1c3BlbmRlZFRoZW5hYmxlREVWID0gITEpLCAoY3VycmVudCA9ICEwKSlcbiAgICAgICAgOiAoY3VycmVudCA9ICExKTtcbiAgICAgIGN1cnJlbnQgJiZcbiAgICAgICAgKCh3b3JrSW5Qcm9ncmVzcyA9XG4gICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcih3b3JrSW5Qcm9ncmVzcykgfHwgXCJVbmtub3duXCIpLFxuICAgICAgICBkaWRXYXJuQWJvdXRVc2VXcmFwcGVkSW5UcnlDYXRjaC5oYXMod29ya0luUHJvZ3Jlc3MpIHx8XG4gICAgICAgICAgZGlkV2FybkFib3V0QXN5bmNDbGllbnRDb21wb25lbnQuaGFzKHdvcmtJblByb2dyZXNzKSB8fFxuICAgICAgICAgIChkaWRXYXJuQWJvdXRVc2VXcmFwcGVkSW5UcnlDYXRjaC5hZGQod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcImB1c2VgIHdhcyBjYWxsZWQgZnJvbSBpbnNpZGUgYSB0cnkvY2F0Y2ggYmxvY2suIFRoaXMgaXMgbm90IGFsbG93ZWQgYW5kIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIFRvIGhhbmRsZSBlcnJvcnMgdHJpZ2dlcmVkIGJ5IGB1c2VgLCB3cmFwIHlvdXIgY29tcG9uZW50IGluIGEgZXJyb3IgYm91bmRhcnkuXCJcbiAgICAgICAgICApKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbmRlcldpdGhIb29rc0FnYWluKHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQsIHByb3BzLCBzZWNvbmRBcmcpIHtcbiAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICB2YXIgbnVtYmVyT2ZSZVJlbmRlcnMgPSAwO1xuICAgICAgZG8ge1xuICAgICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgJiYgKHRoZW5hYmxlU3RhdGUgPSBudWxsKTtcbiAgICAgICAgdGhlbmFibGVJbmRleENvdW50ZXIgPSAwO1xuICAgICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgPSAhMTtcbiAgICAgICAgaWYgKG51bWJlck9mUmVSZW5kZXJzID49IFJFX1JFTkRFUl9MSU1JVClcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiVG9vIG1hbnkgcmUtcmVuZGVycy4gUmVhY3QgbGltaXRzIHRoZSBudW1iZXIgb2YgcmVuZGVycyB0byBwcmV2ZW50IGFuIGluZmluaXRlIGxvb3AuXCJcbiAgICAgICAgICApO1xuICAgICAgICBudW1iZXJPZlJlUmVuZGVycyArPSAxO1xuICAgICAgICBpZ25vcmVQcmV2aW91c0RlcGVuZGVuY2llcyA9ICExO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzc0hvb2sgPSBjdXJyZW50SG9vayA9IG51bGw7XG4gICAgICAgIGlmIChudWxsICE9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlKSB7XG4gICAgICAgICAgdmFyIGNoaWxkcmVuID0gd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWU7XG4gICAgICAgICAgY2hpbGRyZW4ubGFzdEVmZmVjdCA9IG51bGw7XG4gICAgICAgICAgY2hpbGRyZW4uZXZlbnRzID0gbnVsbDtcbiAgICAgICAgICBjaGlsZHJlbi5zdG9yZXMgPSBudWxsO1xuICAgICAgICAgIG51bGwgIT0gY2hpbGRyZW4ubWVtb0NhY2hlICYmIChjaGlsZHJlbi5tZW1vQ2FjaGUuaW5kZXggPSAwKTtcbiAgICAgICAgfVxuICAgICAgICBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWO1xuICAgICAgICBjaGlsZHJlbiA9IGNhbGxDb21wb25lbnRJbkRFVihDb21wb25lbnQsIHByb3BzLCBzZWNvbmRBcmcpO1xuICAgICAgfSB3aGlsZSAoZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzKTtcbiAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gVHJhbnNpdGlvbkF3YXJlSG9zdENvbXBvbmVudCgpIHtcbiAgICAgIHZhciBkaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCxcbiAgICAgICAgbWF5YmVUaGVuYWJsZSA9IGRpc3BhdGNoZXIudXNlU3RhdGUoKVswXTtcbiAgICAgIG1heWJlVGhlbmFibGUgPVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBtYXliZVRoZW5hYmxlLnRoZW5cbiAgICAgICAgICA/IHVzZVRoZW5hYmxlKG1heWJlVGhlbmFibGUpXG4gICAgICAgICAgOiBtYXliZVRoZW5hYmxlO1xuICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXIudXNlU3RhdGUoKVswXTtcbiAgICAgIChudWxsICE9PSBjdXJyZW50SG9vayA/IGN1cnJlbnRIb29rLm1lbW9pemVkU3RhdGUgOiBudWxsKSAhPT1cbiAgICAgICAgZGlzcGF0Y2hlciAmJiAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIuZmxhZ3MgfD0gMTAyNCk7XG4gICAgICByZXR1cm4gbWF5YmVUaGVuYWJsZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tEaWRSZW5kZXJJZEhvb2soKSB7XG4gICAgICB2YXIgZGlkUmVuZGVySWRIb29rID0gMCAhPT0gbG9jYWxJZENvdW50ZXI7XG4gICAgICBsb2NhbElkQ291bnRlciA9IDA7XG4gICAgICByZXR1cm4gZGlkUmVuZGVySWRIb29rO1xuICAgIH1cbiAgICBmdW5jdGlvbiBiYWlsb3V0SG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIGxhbmVzKSB7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IGN1cnJlbnQudXBkYXRlUXVldWU7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyA9XG4gICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGVcbiAgICAgICAgICA/IHdvcmtJblByb2dyZXNzLmZsYWdzICYgLTQwMjY1NTIzN1xuICAgICAgICAgIDogd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiAtMjA1MztcbiAgICAgIGN1cnJlbnQubGFuZXMgJj0gfmxhbmVzO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNldEhvb2tzT25VbndpbmQod29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgIGlmIChkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlKSB7XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgIG51bGwgIT09IHdvcmtJblByb2dyZXNzO1xuXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBxdWV1ZSA9IHdvcmtJblByb2dyZXNzLnF1ZXVlO1xuICAgICAgICAgIG51bGwgIT09IHF1ZXVlICYmIChxdWV1ZS5wZW5kaW5nID0gbnVsbCk7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSB3b3JrSW5Qcm9ncmVzcy5uZXh0O1xuICAgICAgICB9XG4gICAgICAgIGRpZFNjaGVkdWxlUmVuZGVyUGhhc2VVcGRhdGUgPSAhMTtcbiAgICAgIH1cbiAgICAgIHJlbmRlckxhbmVzID0gMDtcbiAgICAgIGhvb2tUeXBlc0RldiA9XG4gICAgICAgIHdvcmtJblByb2dyZXNzSG9vayA9XG4gICAgICAgIGN1cnJlbnRIb29rID1cbiAgICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIgPVxuICAgICAgICAgIG51bGw7XG4gICAgICBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xO1xuICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBudWxsO1xuICAgICAgZGlkU2NoZWR1bGVSZW5kZXJQaGFzZVVwZGF0ZUR1cmluZ1RoaXNQYXNzID0gITE7XG4gICAgICB0aGVuYWJsZUluZGV4Q291bnRlciA9IGxvY2FsSWRDb3VudGVyID0gMDtcbiAgICAgIHRoZW5hYmxlU3RhdGUgPSBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpIHtcbiAgICAgIHZhciBob29rID0ge1xuICAgICAgICBtZW1vaXplZFN0YXRlOiBudWxsLFxuICAgICAgICBiYXNlU3RhdGU6IG51bGwsXG4gICAgICAgIGJhc2VRdWV1ZTogbnVsbCxcbiAgICAgICAgcXVldWU6IG51bGwsXG4gICAgICAgIG5leHQ6IG51bGxcbiAgICAgIH07XG4gICAgICBudWxsID09PSB3b3JrSW5Qcm9ncmVzc0hvb2tcbiAgICAgICAgPyAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIubWVtb2l6ZWRTdGF0ZSA9IHdvcmtJblByb2dyZXNzSG9vayA9IGhvb2spXG4gICAgICAgIDogKHdvcmtJblByb2dyZXNzSG9vayA9IHdvcmtJblByb2dyZXNzSG9vay5uZXh0ID0gaG9vayk7XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3NIb29rO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKSB7XG4gICAgICBpZiAobnVsbCA9PT0gY3VycmVudEhvb2spIHtcbiAgICAgICAgdmFyIG5leHRDdXJyZW50SG9vayA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmFsdGVybmF0ZTtcbiAgICAgICAgbmV4dEN1cnJlbnRIb29rID1cbiAgICAgICAgICBudWxsICE9PSBuZXh0Q3VycmVudEhvb2sgPyBuZXh0Q3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZSA6IG51bGw7XG4gICAgICB9IGVsc2UgbmV4dEN1cnJlbnRIb29rID0gY3VycmVudEhvb2submV4dDtcbiAgICAgIHZhciBuZXh0V29ya0luUHJvZ3Jlc3NIb29rID1cbiAgICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NIb29rXG4gICAgICAgICAgPyBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5tZW1vaXplZFN0YXRlXG4gICAgICAgICAgOiB3b3JrSW5Qcm9ncmVzc0hvb2submV4dDtcbiAgICAgIGlmIChudWxsICE9PSBuZXh0V29ya0luUHJvZ3Jlc3NIb29rKVxuICAgICAgICAod29ya0luUHJvZ3Jlc3NIb29rID0gbmV4dFdvcmtJblByb2dyZXNzSG9vayksXG4gICAgICAgICAgKGN1cnJlbnRIb29rID0gbmV4dEN1cnJlbnRIb29rKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAobnVsbCA9PT0gbmV4dEN1cnJlbnRIb29rKSB7XG4gICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmFsdGVybmF0ZSlcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICBcIlVwZGF0ZSBob29rIGNhbGxlZCBvbiBpbml0aWFsIHJlbmRlci4gVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHRocm93IEVycm9yKFwiUmVuZGVyZWQgbW9yZSBob29rcyB0aGFuIGR1cmluZyB0aGUgcHJldmlvdXMgcmVuZGVyLlwiKTtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50SG9vayA9IG5leHRDdXJyZW50SG9vaztcbiAgICAgICAgbmV4dEN1cnJlbnRIb29rID0ge1xuICAgICAgICAgIG1lbW9pemVkU3RhdGU6IGN1cnJlbnRIb29rLm1lbW9pemVkU3RhdGUsXG4gICAgICAgICAgYmFzZVN0YXRlOiBjdXJyZW50SG9vay5iYXNlU3RhdGUsXG4gICAgICAgICAgYmFzZVF1ZXVlOiBjdXJyZW50SG9vay5iYXNlUXVldWUsXG4gICAgICAgICAgcXVldWU6IGN1cnJlbnRIb29rLnF1ZXVlLFxuICAgICAgICAgIG5leHQ6IG51bGxcbiAgICAgICAgfTtcbiAgICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NIb29rXG4gICAgICAgICAgPyAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIubWVtb2l6ZWRTdGF0ZSA9IHdvcmtJblByb2dyZXNzSG9vayA9XG4gICAgICAgICAgICAgIG5leHRDdXJyZW50SG9vaylcbiAgICAgICAgICA6ICh3b3JrSW5Qcm9ncmVzc0hvb2sgPSB3b3JrSW5Qcm9ncmVzc0hvb2submV4dCA9IG5leHRDdXJyZW50SG9vayk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3NIb29rO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGdW5jdGlvbkNvbXBvbmVudFVwZGF0ZVF1ZXVlKCkge1xuICAgICAgcmV0dXJuIHsgbGFzdEVmZmVjdDogbnVsbCwgZXZlbnRzOiBudWxsLCBzdG9yZXM6IG51bGwsIG1lbW9DYWNoZTogbnVsbCB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiB1c2VUaGVuYWJsZSh0aGVuYWJsZSkge1xuICAgICAgdmFyIGluZGV4ID0gdGhlbmFibGVJbmRleENvdW50ZXI7XG4gICAgICB0aGVuYWJsZUluZGV4Q291bnRlciArPSAxO1xuICAgICAgbnVsbCA9PT0gdGhlbmFibGVTdGF0ZSAmJiAodGhlbmFibGVTdGF0ZSA9IGNyZWF0ZVRoZW5hYmxlU3RhdGUoKSk7XG4gICAgICB0aGVuYWJsZSA9IHRyYWNrVXNlZFRoZW5hYmxlKHRoZW5hYmxlU3RhdGUsIHRoZW5hYmxlLCBpbmRleCk7XG4gICAgICBpbmRleCA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyO1xuICAgICAgbnVsbCA9PT1cbiAgICAgICAgKG51bGwgPT09IHdvcmtJblByb2dyZXNzSG9va1xuICAgICAgICAgID8gaW5kZXgubWVtb2l6ZWRTdGF0ZVxuICAgICAgICAgIDogd29ya0luUHJvZ3Jlc3NIb29rLm5leHQpICYmXG4gICAgICAgICgoaW5kZXggPSBpbmRleC5hbHRlcm5hdGUpLFxuICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9XG4gICAgICAgICAgbnVsbCAhPT0gaW5kZXggJiYgbnVsbCAhPT0gaW5kZXgubWVtb2l6ZWRTdGF0ZVxuICAgICAgICAgICAgPyBIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWXG4gICAgICAgICAgICA6IEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVikpO1xuICAgICAgcmV0dXJuIHRoZW5hYmxlO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1c2UodXNhYmxlKSB7XG4gICAgICBpZiAobnVsbCAhPT0gdXNhYmxlICYmIFwib2JqZWN0XCIgPT09IHR5cGVvZiB1c2FibGUpIHtcbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHVzYWJsZS50aGVuKSByZXR1cm4gdXNlVGhlbmFibGUodXNhYmxlKTtcbiAgICAgICAgaWYgKHVzYWJsZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFKSByZXR1cm4gcmVhZENvbnRleHQodXNhYmxlKTtcbiAgICAgIH1cbiAgICAgIHRocm93IEVycm9yKFwiQW4gdW5zdXBwb3J0ZWQgdHlwZSB3YXMgcGFzc2VkIHRvIHVzZSgpOiBcIiArIFN0cmluZyh1c2FibGUpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXNlTWVtb0NhY2hlKHNpemUpIHtcbiAgICAgIHZhciBtZW1vQ2FjaGUgPSBudWxsLFxuICAgICAgICB1cGRhdGVRdWV1ZSA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLnVwZGF0ZVF1ZXVlO1xuICAgICAgbnVsbCAhPT0gdXBkYXRlUXVldWUgJiYgKG1lbW9DYWNoZSA9IHVwZGF0ZVF1ZXVlLm1lbW9DYWNoZSk7XG4gICAgICBpZiAobnVsbCA9PSBtZW1vQ2FjaGUpIHtcbiAgICAgICAgdmFyIGN1cnJlbnQgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5hbHRlcm5hdGU7XG4gICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAoKGN1cnJlbnQgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAoKGN1cnJlbnQgPSBjdXJyZW50Lm1lbW9DYWNoZSksXG4gICAgICAgICAgICBudWxsICE9IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgKG1lbW9DYWNoZSA9IHtcbiAgICAgICAgICAgICAgICBkYXRhOiBjdXJyZW50LmRhdGEubWFwKGZ1bmN0aW9uIChhcnJheSkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5LnNsaWNlKCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgaW5kZXg6IDBcbiAgICAgICAgICAgICAgfSkpKTtcbiAgICAgIH1cbiAgICAgIG51bGwgPT0gbWVtb0NhY2hlICYmIChtZW1vQ2FjaGUgPSB7IGRhdGE6IFtdLCBpbmRleDogMCB9KTtcbiAgICAgIG51bGwgPT09IHVwZGF0ZVF1ZXVlICYmXG4gICAgICAgICgodXBkYXRlUXVldWUgPSBjcmVhdGVGdW5jdGlvbkNvbXBvbmVudFVwZGF0ZVF1ZXVlKCkpLFxuICAgICAgICAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIudXBkYXRlUXVldWUgPSB1cGRhdGVRdWV1ZSkpO1xuICAgICAgdXBkYXRlUXVldWUubWVtb0NhY2hlID0gbWVtb0NhY2hlO1xuICAgICAgdXBkYXRlUXVldWUgPSBtZW1vQ2FjaGUuZGF0YVttZW1vQ2FjaGUuaW5kZXhdO1xuICAgICAgaWYgKHZvaWQgMCA9PT0gdXBkYXRlUXVldWUgfHwgaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMpXG4gICAgICAgIGZvciAoXG4gICAgICAgICAgdXBkYXRlUXVldWUgPSBtZW1vQ2FjaGUuZGF0YVttZW1vQ2FjaGUuaW5kZXhdID0gQXJyYXkoc2l6ZSksXG4gICAgICAgICAgICBjdXJyZW50ID0gMDtcbiAgICAgICAgICBjdXJyZW50IDwgc2l6ZTtcbiAgICAgICAgICBjdXJyZW50KytcbiAgICAgICAgKVxuICAgICAgICAgIHVwZGF0ZVF1ZXVlW2N1cnJlbnRdID0gUkVBQ1RfTUVNT19DQUNIRV9TRU5USU5FTDtcbiAgICAgIGVsc2VcbiAgICAgICAgdXBkYXRlUXVldWUubGVuZ3RoICE9PSBzaXplICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiRXhwZWN0ZWQgYSBjb25zdGFudCBzaXplIGFyZ3VtZW50IGZvciBlYWNoIGludm9jYXRpb24gb2YgdXNlTWVtb0NhY2hlLiBUaGUgcHJldmlvdXMgY2FjaGUgd2FzIGFsbG9jYXRlZCB3aXRoIHNpemUgJXMgYnV0IHNpemUgJXMgd2FzIHJlcXVlc3RlZC5cIixcbiAgICAgICAgICAgIHVwZGF0ZVF1ZXVlLmxlbmd0aCxcbiAgICAgICAgICAgIHNpemVcbiAgICAgICAgICApO1xuICAgICAgbWVtb0NhY2hlLmluZGV4Kys7XG4gICAgICByZXR1cm4gdXBkYXRlUXVldWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGJhc2ljU3RhdGVSZWR1Y2VyKHN0YXRlLCBhY3Rpb24pIHtcbiAgICAgIHJldHVybiBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBhY3Rpb24gPyBhY3Rpb24oc3RhdGUpIDogYWN0aW9uO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudFJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgaWYgKHZvaWQgMCAhPT0gaW5pdCkge1xuICAgICAgICB2YXIgaW5pdGlhbFN0YXRlID0gaW5pdChpbml0aWFsQXJnKTtcbiAgICAgICAgaWYgKHNob3VsZERvdWJsZUludm9rZVVzZXJGbnNJbkhvb2tzREVWKSB7XG4gICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITApO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpbml0KGluaXRpYWxBcmcpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaW5pdGlhbFN0YXRlID0gaW5pdGlhbEFyZztcbiAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IGhvb2suYmFzZVN0YXRlID0gaW5pdGlhbFN0YXRlO1xuICAgICAgcmVkdWNlciA9IHtcbiAgICAgICAgcGVuZGluZzogbnVsbCxcbiAgICAgICAgbGFuZXM6IDAsXG4gICAgICAgIGRpc3BhdGNoOiBudWxsLFxuICAgICAgICBsYXN0UmVuZGVyZWRSZWR1Y2VyOiByZWR1Y2VyLFxuICAgICAgICBsYXN0UmVuZGVyZWRTdGF0ZTogaW5pdGlhbFN0YXRlXG4gICAgICB9O1xuICAgICAgaG9vay5xdWV1ZSA9IHJlZHVjZXI7XG4gICAgICByZWR1Y2VyID0gcmVkdWNlci5kaXNwYXRjaCA9IGRpc3BhdGNoUmVkdWNlckFjdGlvbi5iaW5kKFxuICAgICAgICBudWxsLFxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcixcbiAgICAgICAgcmVkdWNlclxuICAgICAgKTtcbiAgICAgIHJldHVybiBbaG9vay5tZW1vaXplZFN0YXRlLCByZWR1Y2VyXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlUmVkdWNlcihyZWR1Y2VyKSB7XG4gICAgICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgcmV0dXJuIHVwZGF0ZVJlZHVjZXJJbXBsKGhvb2ssIGN1cnJlbnRIb29rLCByZWR1Y2VyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlUmVkdWNlckltcGwoaG9vaywgY3VycmVudCwgcmVkdWNlcikge1xuICAgICAgdmFyIHF1ZXVlID0gaG9vay5xdWV1ZTtcbiAgICAgIGlmIChudWxsID09PSBxdWV1ZSlcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJTaG91bGQgaGF2ZSBhIHF1ZXVlLiBZb3UgYXJlIGxpa2VseSBjYWxsaW5nIEhvb2tzIGNvbmRpdGlvbmFsbHksIHdoaWNoIGlzIG5vdCBhbGxvd2VkLiAoaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9pbnZhbGlkLWhvb2stY2FsbClcIlxuICAgICAgICApO1xuICAgICAgcXVldWUubGFzdFJlbmRlcmVkUmVkdWNlciA9IHJlZHVjZXI7XG4gICAgICB2YXIgYmFzZVF1ZXVlID0gaG9vay5iYXNlUXVldWUsXG4gICAgICAgIHBlbmRpbmdRdWV1ZSA9IHF1ZXVlLnBlbmRpbmc7XG4gICAgICBpZiAobnVsbCAhPT0gcGVuZGluZ1F1ZXVlKSB7XG4gICAgICAgIGlmIChudWxsICE9PSBiYXNlUXVldWUpIHtcbiAgICAgICAgICB2YXIgYmFzZUZpcnN0ID0gYmFzZVF1ZXVlLm5leHQ7XG4gICAgICAgICAgYmFzZVF1ZXVlLm5leHQgPSBwZW5kaW5nUXVldWUubmV4dDtcbiAgICAgICAgICBwZW5kaW5nUXVldWUubmV4dCA9IGJhc2VGaXJzdDtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50LmJhc2VRdWV1ZSAhPT0gYmFzZVF1ZXVlICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiSW50ZXJuYWwgZXJyb3I6IEV4cGVjdGVkIHdvcmstaW4tcHJvZ3Jlc3MgcXVldWUgdG8gYmUgYSBjbG9uZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICk7XG4gICAgICAgIGN1cnJlbnQuYmFzZVF1ZXVlID0gYmFzZVF1ZXVlID0gcGVuZGluZ1F1ZXVlO1xuICAgICAgICBxdWV1ZS5wZW5kaW5nID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHBlbmRpbmdRdWV1ZSA9IGhvb2suYmFzZVN0YXRlO1xuICAgICAgaWYgKG51bGwgPT09IGJhc2VRdWV1ZSkgaG9vay5tZW1vaXplZFN0YXRlID0gcGVuZGluZ1F1ZXVlO1xuICAgICAgZWxzZSB7XG4gICAgICAgIGN1cnJlbnQgPSBiYXNlUXVldWUubmV4dDtcbiAgICAgICAgdmFyIG5ld0Jhc2VRdWV1ZUZpcnN0ID0gKGJhc2VGaXJzdCA9IG51bGwpLFxuICAgICAgICAgIG5ld0Jhc2VRdWV1ZUxhc3QgPSBudWxsLFxuICAgICAgICAgIHVwZGF0ZSA9IGN1cnJlbnQsXG4gICAgICAgICAgZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbiA9ICExO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgdmFyIHVwZGF0ZUxhbmUgPSB1cGRhdGUubGFuZSAmIC01MzY4NzA5MTM7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdXBkYXRlTGFuZSAhPT0gdXBkYXRlLmxhbmVcbiAgICAgICAgICAgICAgPyAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiB1cGRhdGVMYW5lKSA9PT0gdXBkYXRlTGFuZVxuICAgICAgICAgICAgICA6IChyZW5kZXJMYW5lcyAmIHVwZGF0ZUxhbmUpID09PSB1cGRhdGVMYW5lXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB2YXIgcmV2ZXJ0TGFuZSA9IHVwZGF0ZS5yZXZlcnRMYW5lO1xuICAgICAgICAgICAgaWYgKDAgPT09IHJldmVydExhbmUpXG4gICAgICAgICAgICAgIG51bGwgIT09IG5ld0Jhc2VRdWV1ZUxhc3QgJiZcbiAgICAgICAgICAgICAgICAobmV3QmFzZVF1ZXVlTGFzdCA9IG5ld0Jhc2VRdWV1ZUxhc3QubmV4dCA9XG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGxhbmU6IDAsXG4gICAgICAgICAgICAgICAgICAgIHJldmVydExhbmU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGdlc3R1cmU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbjogdXBkYXRlLmFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgaGFzRWFnZXJTdGF0ZTogdXBkYXRlLmhhc0VhZ2VyU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgIGVhZ2VyU3RhdGU6IHVwZGF0ZS5lYWdlclN0YXRlLFxuICAgICAgICAgICAgICAgICAgICBuZXh0OiBudWxsXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB1cGRhdGVMYW5lID09PSBjdXJyZW50RW50YW5nbGVkTGFuZSAmJlxuICAgICAgICAgICAgICAgICAgKGRpZFJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24gPSAhMCk7XG4gICAgICAgICAgICBlbHNlIGlmICgocmVuZGVyTGFuZXMgJiByZXZlcnRMYW5lKSA9PT0gcmV2ZXJ0TGFuZSkge1xuICAgICAgICAgICAgICB1cGRhdGUgPSB1cGRhdGUubmV4dDtcbiAgICAgICAgICAgICAgcmV2ZXJ0TGFuZSA9PT0gY3VycmVudEVudGFuZ2xlZExhbmUgJiZcbiAgICAgICAgICAgICAgICAoZGlkUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbiA9ICEwKTtcbiAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgKHVwZGF0ZUxhbmUgPSB7XG4gICAgICAgICAgICAgICAgbGFuZTogMCxcbiAgICAgICAgICAgICAgICByZXZlcnRMYW5lOiB1cGRhdGUucmV2ZXJ0TGFuZSxcbiAgICAgICAgICAgICAgICBnZXN0dXJlOiBudWxsLFxuICAgICAgICAgICAgICAgIGFjdGlvbjogdXBkYXRlLmFjdGlvbixcbiAgICAgICAgICAgICAgICBoYXNFYWdlclN0YXRlOiB1cGRhdGUuaGFzRWFnZXJTdGF0ZSxcbiAgICAgICAgICAgICAgICBlYWdlclN0YXRlOiB1cGRhdGUuZWFnZXJTdGF0ZSxcbiAgICAgICAgICAgICAgICBuZXh0OiBudWxsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIG51bGwgPT09IG5ld0Jhc2VRdWV1ZUxhc3RcbiAgICAgICAgICAgICAgICAgID8gKChuZXdCYXNlUXVldWVGaXJzdCA9IG5ld0Jhc2VRdWV1ZUxhc3QgPSB1cGRhdGVMYW5lKSxcbiAgICAgICAgICAgICAgICAgICAgKGJhc2VGaXJzdCA9IHBlbmRpbmdRdWV1ZSkpXG4gICAgICAgICAgICAgICAgICA6IChuZXdCYXNlUXVldWVMYXN0ID0gbmV3QmFzZVF1ZXVlTGFzdC5uZXh0ID0gdXBkYXRlTGFuZSksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmxhbmVzIHw9IHJldmVydExhbmUpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgfD0gcmV2ZXJ0TGFuZSk7XG4gICAgICAgICAgICB1cGRhdGVMYW5lID0gdXBkYXRlLmFjdGlvbjtcbiAgICAgICAgICAgIHNob3VsZERvdWJsZUludm9rZVVzZXJGbnNJbkhvb2tzREVWICYmXG4gICAgICAgICAgICAgIHJlZHVjZXIocGVuZGluZ1F1ZXVlLCB1cGRhdGVMYW5lKTtcbiAgICAgICAgICAgIHBlbmRpbmdRdWV1ZSA9IHVwZGF0ZS5oYXNFYWdlclN0YXRlXG4gICAgICAgICAgICAgID8gdXBkYXRlLmVhZ2VyU3RhdGVcbiAgICAgICAgICAgICAgOiByZWR1Y2VyKHBlbmRpbmdRdWV1ZSwgdXBkYXRlTGFuZSk7XG4gICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAocmV2ZXJ0TGFuZSA9IHtcbiAgICAgICAgICAgICAgbGFuZTogdXBkYXRlTGFuZSxcbiAgICAgICAgICAgICAgcmV2ZXJ0TGFuZTogdXBkYXRlLnJldmVydExhbmUsXG4gICAgICAgICAgICAgIGdlc3R1cmU6IHVwZGF0ZS5nZXN0dXJlLFxuICAgICAgICAgICAgICBhY3Rpb246IHVwZGF0ZS5hY3Rpb24sXG4gICAgICAgICAgICAgIGhhc0VhZ2VyU3RhdGU6IHVwZGF0ZS5oYXNFYWdlclN0YXRlLFxuICAgICAgICAgICAgICBlYWdlclN0YXRlOiB1cGRhdGUuZWFnZXJTdGF0ZSxcbiAgICAgICAgICAgICAgbmV4dDogbnVsbFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIG51bGwgPT09IG5ld0Jhc2VRdWV1ZUxhc3RcbiAgICAgICAgICAgICAgICA/ICgobmV3QmFzZVF1ZXVlRmlyc3QgPSBuZXdCYXNlUXVldWVMYXN0ID0gcmV2ZXJ0TGFuZSksXG4gICAgICAgICAgICAgICAgICAoYmFzZUZpcnN0ID0gcGVuZGluZ1F1ZXVlKSlcbiAgICAgICAgICAgICAgICA6IChuZXdCYXNlUXVldWVMYXN0ID0gbmV3QmFzZVF1ZXVlTGFzdC5uZXh0ID0gcmV2ZXJ0TGFuZSksXG4gICAgICAgICAgICAgIChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5sYW5lcyB8PSB1cGRhdGVMYW5lKSxcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyB8PSB1cGRhdGVMYW5lKTtcbiAgICAgICAgICB1cGRhdGUgPSB1cGRhdGUubmV4dDtcbiAgICAgICAgfSB3aGlsZSAobnVsbCAhPT0gdXBkYXRlICYmIHVwZGF0ZSAhPT0gY3VycmVudCk7XG4gICAgICAgIG51bGwgPT09IG5ld0Jhc2VRdWV1ZUxhc3RcbiAgICAgICAgICA/IChiYXNlRmlyc3QgPSBwZW5kaW5nUXVldWUpXG4gICAgICAgICAgOiAobmV3QmFzZVF1ZXVlTGFzdC5uZXh0ID0gbmV3QmFzZVF1ZXVlRmlyc3QpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIW9iamVjdElzKHBlbmRpbmdRdWV1ZSwgaG9vay5tZW1vaXplZFN0YXRlKSAmJlxuICAgICAgICAgICgoZGlkUmVjZWl2ZVVwZGF0ZSA9ICEwKSxcbiAgICAgICAgICBkaWRSZWFkRnJvbUVudGFuZ2xlZEFzeW5jQWN0aW9uICYmXG4gICAgICAgICAgICAoKHJlZHVjZXIgPSBjdXJyZW50RW50YW5nbGVkQWN0aW9uVGhlbmFibGUpLCBudWxsICE9PSByZWR1Y2VyKSlcbiAgICAgICAgKVxuICAgICAgICAgIHRocm93IHJlZHVjZXI7XG4gICAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IHBlbmRpbmdRdWV1ZTtcbiAgICAgICAgaG9vay5iYXNlU3RhdGUgPSBiYXNlRmlyc3Q7XG4gICAgICAgIGhvb2suYmFzZVF1ZXVlID0gbmV3QmFzZVF1ZXVlTGFzdDtcbiAgICAgICAgcXVldWUubGFzdFJlbmRlcmVkU3RhdGUgPSBwZW5kaW5nUXVldWU7XG4gICAgICB9XG4gICAgICBudWxsID09PSBiYXNlUXVldWUgJiYgKHF1ZXVlLmxhbmVzID0gMCk7XG4gICAgICByZXR1cm4gW2hvb2subWVtb2l6ZWRTdGF0ZSwgcXVldWUuZGlzcGF0Y2hdO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXJlbmRlclJlZHVjZXIocmVkdWNlcikge1xuICAgICAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKSxcbiAgICAgICAgcXVldWUgPSBob29rLnF1ZXVlO1xuICAgICAgaWYgKG51bGwgPT09IHF1ZXVlKVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIlNob3VsZCBoYXZlIGEgcXVldWUuIFlvdSBhcmUgbGlrZWx5IGNhbGxpbmcgSG9va3MgY29uZGl0aW9uYWxseSwgd2hpY2ggaXMgbm90IGFsbG93ZWQuIChodHRwczovL3JlYWN0LmRldi9saW5rL2ludmFsaWQtaG9vay1jYWxsKVwiXG4gICAgICAgICk7XG4gICAgICBxdWV1ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyID0gcmVkdWNlcjtcbiAgICAgIHZhciBkaXNwYXRjaCA9IHF1ZXVlLmRpc3BhdGNoLFxuICAgICAgICBsYXN0UmVuZGVyUGhhc2VVcGRhdGUgPSBxdWV1ZS5wZW5kaW5nLFxuICAgICAgICBuZXdTdGF0ZSA9IGhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgICAgIGlmIChudWxsICE9PSBsYXN0UmVuZGVyUGhhc2VVcGRhdGUpIHtcbiAgICAgICAgcXVldWUucGVuZGluZyA9IG51bGw7XG4gICAgICAgIHZhciB1cGRhdGUgPSAobGFzdFJlbmRlclBoYXNlVXBkYXRlID0gbGFzdFJlbmRlclBoYXNlVXBkYXRlLm5leHQpO1xuICAgICAgICBkb1xuICAgICAgICAgIChuZXdTdGF0ZSA9IHJlZHVjZXIobmV3U3RhdGUsIHVwZGF0ZS5hY3Rpb24pKSwgKHVwZGF0ZSA9IHVwZGF0ZS5uZXh0KTtcbiAgICAgICAgd2hpbGUgKHVwZGF0ZSAhPT0gbGFzdFJlbmRlclBoYXNlVXBkYXRlKTtcbiAgICAgICAgb2JqZWN0SXMobmV3U3RhdGUsIGhvb2subWVtb2l6ZWRTdGF0ZSkgfHwgKGRpZFJlY2VpdmVVcGRhdGUgPSAhMCk7XG4gICAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IG5ld1N0YXRlO1xuICAgICAgICBudWxsID09PSBob29rLmJhc2VRdWV1ZSAmJiAoaG9vay5iYXNlU3RhdGUgPSBuZXdTdGF0ZSk7XG4gICAgICAgIHF1ZXVlLmxhc3RSZW5kZXJlZFN0YXRlID0gbmV3U3RhdGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gW25ld1N0YXRlLCBkaXNwYXRjaF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50U3luY0V4dGVybmFsU3RvcmUoc3Vic2NyaWJlLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpIHtcbiAgICAgIHZhciBmaWJlciA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLFxuICAgICAgICBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIGlmIChpc0h5ZHJhdGluZykge1xuICAgICAgICBpZiAodm9pZCAwID09PSBnZXRTZXJ2ZXJTbmFwc2hvdClcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiTWlzc2luZyBnZXRTZXJ2ZXJTbmFwc2hvdCwgd2hpY2ggaXMgcmVxdWlyZWQgZm9yIHNlcnZlci1yZW5kZXJlZCBjb250ZW50LiBXaWxsIHJldmVydCB0byBjbGllbnQgcmVuZGVyaW5nLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgdmFyIG5leHRTbmFwc2hvdCA9IGdldFNlcnZlclNuYXBzaG90KCk7XG4gICAgICAgIGRpZFdhcm5VbmNhY2hlZEdldFNuYXBzaG90IHx8XG4gICAgICAgICAgbmV4dFNuYXBzaG90ID09PSBnZXRTZXJ2ZXJTbmFwc2hvdCgpIHx8XG4gICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIlRoZSByZXN1bHQgb2YgZ2V0U2VydmVyU25hcHNob3Qgc2hvdWxkIGJlIGNhY2hlZCB0byBhdm9pZCBhbiBpbmZpbml0ZSBsb29wXCJcbiAgICAgICAgICApLFxuICAgICAgICAgIChkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCA9ICEwKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0U25hcHNob3QgPSBnZXRTbmFwc2hvdCgpO1xuICAgICAgICBkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCB8fFxuICAgICAgICAgICgoZ2V0U2VydmVyU25hcHNob3QgPSBnZXRTbmFwc2hvdCgpKSxcbiAgICAgICAgICBvYmplY3RJcyhuZXh0U25hcHNob3QsIGdldFNlcnZlclNuYXBzaG90KSB8fFxuICAgICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiVGhlIHJlc3VsdCBvZiBnZXRTbmFwc2hvdCBzaG91bGQgYmUgY2FjaGVkIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3BcIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIChkaWRXYXJuVW5jYWNoZWRHZXRTbmFwc2hvdCA9ICEwKSkpO1xuICAgICAgICBpZiAobnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NSb290KVxuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJFeHBlY3RlZCBhIHdvcmstaW4tcHJvZ3Jlc3Mgcm9vdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICApO1xuICAgICAgICAwICE9PSAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiAxMjcpIHx8XG4gICAgICAgICAgcHVzaFN0b3JlQ29uc2lzdGVuY3lDaGVjayhmaWJlciwgZ2V0U25hcHNob3QsIG5leHRTbmFwc2hvdCk7XG4gICAgICB9XG4gICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBuZXh0U25hcHNob3Q7XG4gICAgICBnZXRTZXJ2ZXJTbmFwc2hvdCA9IHsgdmFsdWU6IG5leHRTbmFwc2hvdCwgZ2V0U25hcHNob3Q6IGdldFNuYXBzaG90IH07XG4gICAgICBob29rLnF1ZXVlID0gZ2V0U2VydmVyU25hcHNob3Q7XG4gICAgICBtb3VudEVmZmVjdChcbiAgICAgICAgc3Vic2NyaWJlVG9TdG9yZS5iaW5kKG51bGwsIGZpYmVyLCBnZXRTZXJ2ZXJTbmFwc2hvdCwgc3Vic2NyaWJlKSxcbiAgICAgICAgW3N1YnNjcmliZV1cbiAgICAgICk7XG4gICAgICBmaWJlci5mbGFncyB8PSAyMDQ4O1xuICAgICAgcHVzaFNpbXBsZUVmZmVjdChcbiAgICAgICAgSGFzRWZmZWN0IHwgUGFzc2l2ZSxcbiAgICAgICAgeyBkZXN0cm95OiB2b2lkIDAgfSxcbiAgICAgICAgdXBkYXRlU3RvcmVJbnN0YW5jZS5iaW5kKFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgZmliZXIsXG4gICAgICAgICAgZ2V0U2VydmVyU25hcHNob3QsXG4gICAgICAgICAgbmV4dFNuYXBzaG90LFxuICAgICAgICAgIGdldFNuYXBzaG90XG4gICAgICAgICksXG4gICAgICAgIG51bGxcbiAgICAgICk7XG4gICAgICByZXR1cm4gbmV4dFNuYXBzaG90O1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICAgIHN1YnNjcmliZSxcbiAgICAgIGdldFNuYXBzaG90LFxuICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICApIHtcbiAgICAgIHZhciBmaWJlciA9IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLFxuICAgICAgICBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCksXG4gICAgICAgIGlzSHlkcmF0aW5nJGpzY29tcCQwID0gaXNIeWRyYXRpbmc7XG4gICAgICBpZiAoaXNIeWRyYXRpbmckanNjb21wJDApIHtcbiAgICAgICAgaWYgKHZvaWQgMCA9PT0gZ2V0U2VydmVyU25hcHNob3QpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIk1pc3NpbmcgZ2V0U2VydmVyU25hcHNob3QsIHdoaWNoIGlzIHJlcXVpcmVkIGZvciBzZXJ2ZXItcmVuZGVyZWQgY29udGVudC4gV2lsbCByZXZlcnQgdG8gY2xpZW50IHJlbmRlcmluZy5cIlxuICAgICAgICAgICk7XG4gICAgICAgIGdldFNlcnZlclNuYXBzaG90ID0gZ2V0U2VydmVyU25hcHNob3QoKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICgoZ2V0U2VydmVyU25hcHNob3QgPSBnZXRTbmFwc2hvdCgpKSwgIWRpZFdhcm5VbmNhY2hlZEdldFNuYXBzaG90KVxuICAgICAgKSB7XG4gICAgICAgIHZhciBjYWNoZWRTbmFwc2hvdCA9IGdldFNuYXBzaG90KCk7XG4gICAgICAgIG9iamVjdElzKGdldFNlcnZlclNuYXBzaG90LCBjYWNoZWRTbmFwc2hvdCkgfHxcbiAgICAgICAgICAoY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiVGhlIHJlc3VsdCBvZiBnZXRTbmFwc2hvdCBzaG91bGQgYmUgY2FjaGVkIHRvIGF2b2lkIGFuIGluZmluaXRlIGxvb3BcIlxuICAgICAgICAgICksXG4gICAgICAgICAgKGRpZFdhcm5VbmNhY2hlZEdldFNuYXBzaG90ID0gITApKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgKGNhY2hlZFNuYXBzaG90ID0gIW9iamVjdElzKFxuICAgICAgICAgIChjdXJyZW50SG9vayB8fCBob29rKS5tZW1vaXplZFN0YXRlLFxuICAgICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICAgICkpXG4gICAgICApXG4gICAgICAgIChob29rLm1lbW9pemVkU3RhdGUgPSBnZXRTZXJ2ZXJTbmFwc2hvdCksIChkaWRSZWNlaXZlVXBkYXRlID0gITApO1xuICAgICAgaG9vayA9IGhvb2sucXVldWU7XG4gICAgICB2YXIgY3JlYXRlID0gc3Vic2NyaWJlVG9TdG9yZS5iaW5kKG51bGwsIGZpYmVyLCBob29rLCBzdWJzY3JpYmUpO1xuICAgICAgdXBkYXRlRWZmZWN0SW1wbCgyMDQ4LCBQYXNzaXZlLCBjcmVhdGUsIFtzdWJzY3JpYmVdKTtcbiAgICAgIGlmIChcbiAgICAgICAgaG9vay5nZXRTbmFwc2hvdCAhPT0gZ2V0U25hcHNob3QgfHxcbiAgICAgICAgY2FjaGVkU25hcHNob3QgfHxcbiAgICAgICAgKG51bGwgIT09IHdvcmtJblByb2dyZXNzSG9vayAmJlxuICAgICAgICAgIHdvcmtJblByb2dyZXNzSG9vay5tZW1vaXplZFN0YXRlLnRhZyAmIEhhc0VmZmVjdClcbiAgICAgICkge1xuICAgICAgICBmaWJlci5mbGFncyB8PSAyMDQ4O1xuICAgICAgICBwdXNoU2ltcGxlRWZmZWN0KFxuICAgICAgICAgIEhhc0VmZmVjdCB8IFBhc3NpdmUsXG4gICAgICAgICAgeyBkZXN0cm95OiB2b2lkIDAgfSxcbiAgICAgICAgICB1cGRhdGVTdG9yZUluc3RhbmNlLmJpbmQoXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgZmliZXIsXG4gICAgICAgICAgICBob29rLFxuICAgICAgICAgICAgZ2V0U2VydmVyU25hcHNob3QsXG4gICAgICAgICAgICBnZXRTbmFwc2hvdFxuICAgICAgICAgICksXG4gICAgICAgICAgbnVsbFxuICAgICAgICApO1xuICAgICAgICBpZiAobnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NSb290KVxuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJFeHBlY3RlZCBhIHdvcmstaW4tcHJvZ3Jlc3Mgcm9vdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICApO1xuICAgICAgICBpc0h5ZHJhdGluZyRqc2NvbXAkMCB8fFxuICAgICAgICAgIDAgIT09IChyZW5kZXJMYW5lcyAmIDEyNykgfHxcbiAgICAgICAgICBwdXNoU3RvcmVDb25zaXN0ZW5jeUNoZWNrKGZpYmVyLCBnZXRTbmFwc2hvdCwgZ2V0U2VydmVyU25hcHNob3QpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGdldFNlcnZlclNuYXBzaG90O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoU3RvcmVDb25zaXN0ZW5jeUNoZWNrKGZpYmVyLCBnZXRTbmFwc2hvdCwgcmVuZGVyZWRTbmFwc2hvdCkge1xuICAgICAgZmliZXIuZmxhZ3MgfD0gMTYzODQ7XG4gICAgICBmaWJlciA9IHsgZ2V0U25hcHNob3Q6IGdldFNuYXBzaG90LCB2YWx1ZTogcmVuZGVyZWRTbmFwc2hvdCB9O1xuICAgICAgZ2V0U25hcHNob3QgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci51cGRhdGVRdWV1ZTtcbiAgICAgIG51bGwgPT09IGdldFNuYXBzaG90XG4gICAgICAgID8gKChnZXRTbmFwc2hvdCA9IGNyZWF0ZUZ1bmN0aW9uQ29tcG9uZW50VXBkYXRlUXVldWUoKSksXG4gICAgICAgICAgKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLnVwZGF0ZVF1ZXVlID0gZ2V0U25hcHNob3QpLFxuICAgICAgICAgIChnZXRTbmFwc2hvdC5zdG9yZXMgPSBbZmliZXJdKSlcbiAgICAgICAgOiAoKHJlbmRlcmVkU25hcHNob3QgPSBnZXRTbmFwc2hvdC5zdG9yZXMpLFxuICAgICAgICAgIG51bGwgPT09IHJlbmRlcmVkU25hcHNob3RcbiAgICAgICAgICAgID8gKGdldFNuYXBzaG90LnN0b3JlcyA9IFtmaWJlcl0pXG4gICAgICAgICAgICA6IHJlbmRlcmVkU25hcHNob3QucHVzaChmaWJlcikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVTdG9yZUluc3RhbmNlKGZpYmVyLCBpbnN0LCBuZXh0U25hcHNob3QsIGdldFNuYXBzaG90KSB7XG4gICAgICBpbnN0LnZhbHVlID0gbmV4dFNuYXBzaG90O1xuICAgICAgaW5zdC5nZXRTbmFwc2hvdCA9IGdldFNuYXBzaG90O1xuICAgICAgY2hlY2tJZlNuYXBzaG90Q2hhbmdlZChpbnN0KSAmJiBmb3JjZVN0b3JlUmVyZW5kZXIoZmliZXIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzdWJzY3JpYmVUb1N0b3JlKGZpYmVyLCBpbnN0LCBzdWJzY3JpYmUpIHtcbiAgICAgIHJldHVybiBzdWJzY3JpYmUoZnVuY3Rpb24gKCkge1xuICAgICAgICBjaGVja0lmU25hcHNob3RDaGFuZ2VkKGluc3QpICYmXG4gICAgICAgICAgKHN0YXJ0VXBkYXRlVGltZXJCeUxhbmUoMiwgXCJ1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZSgpXCIsIGZpYmVyKSxcbiAgICAgICAgICBmb3JjZVN0b3JlUmVyZW5kZXIoZmliZXIpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjaGVja0lmU25hcHNob3RDaGFuZ2VkKGluc3QpIHtcbiAgICAgIHZhciBsYXRlc3RHZXRTbmFwc2hvdCA9IGluc3QuZ2V0U25hcHNob3Q7XG4gICAgICBpbnN0ID0gaW5zdC52YWx1ZTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBuZXh0VmFsdWUgPSBsYXRlc3RHZXRTbmFwc2hvdCgpO1xuICAgICAgICByZXR1cm4gIW9iamVjdElzKGluc3QsIG5leHRWYWx1ZSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXR1cm4gITA7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZvcmNlU3RvcmVSZXJlbmRlcihmaWJlcikge1xuICAgICAgdmFyIHJvb3QgPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIDIpO1xuICAgICAgbnVsbCAhPT0gcm9vdCAmJiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocm9vdCwgZmliZXIsIDIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudFN0YXRlSW1wbChpbml0aWFsU3RhdGUpIHtcbiAgICAgIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbml0aWFsU3RhdGUpIHtcbiAgICAgICAgdmFyIGluaXRpYWxTdGF0ZUluaXRpYWxpemVyID0gaW5pdGlhbFN0YXRlO1xuICAgICAgICBpbml0aWFsU3RhdGUgPSBpbml0aWFsU3RhdGVJbml0aWFsaXplcigpO1xuICAgICAgICBpZiAoc2hvdWxkRG91YmxlSW52b2tlVXNlckZuc0luSG9va3NERVYpIHtcbiAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMCk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZUluaXRpYWxpemVyKCk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCExKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IGhvb2suYmFzZVN0YXRlID0gaW5pdGlhbFN0YXRlO1xuICAgICAgaG9vay5xdWV1ZSA9IHtcbiAgICAgICAgcGVuZGluZzogbnVsbCxcbiAgICAgICAgbGFuZXM6IDAsXG4gICAgICAgIGRpc3BhdGNoOiBudWxsLFxuICAgICAgICBsYXN0UmVuZGVyZWRSZWR1Y2VyOiBiYXNpY1N0YXRlUmVkdWNlcixcbiAgICAgICAgbGFzdFJlbmRlcmVkU3RhdGU6IGluaXRpYWxTdGF0ZVxuICAgICAgfTtcbiAgICAgIHJldHVybiBob29rO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudFN0YXRlKGluaXRpYWxTdGF0ZSkge1xuICAgICAgaW5pdGlhbFN0YXRlID0gbW91bnRTdGF0ZUltcGwoaW5pdGlhbFN0YXRlKTtcbiAgICAgIHZhciBxdWV1ZSA9IGluaXRpYWxTdGF0ZS5xdWV1ZSxcbiAgICAgICAgZGlzcGF0Y2ggPSBkaXNwYXRjaFNldFN0YXRlLmJpbmQobnVsbCwgY3VycmVudGx5UmVuZGVyaW5nRmliZXIsIHF1ZXVlKTtcbiAgICAgIHF1ZXVlLmRpc3BhdGNoID0gZGlzcGF0Y2g7XG4gICAgICByZXR1cm4gW2luaXRpYWxTdGF0ZS5tZW1vaXplZFN0YXRlLCBkaXNwYXRjaF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50T3B0aW1pc3RpYyhwYXNzdGhyb3VnaCkge1xuICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gaG9vay5iYXNlU3RhdGUgPSBwYXNzdGhyb3VnaDtcbiAgICAgIHZhciBxdWV1ZSA9IHtcbiAgICAgICAgcGVuZGluZzogbnVsbCxcbiAgICAgICAgbGFuZXM6IDAsXG4gICAgICAgIGRpc3BhdGNoOiBudWxsLFxuICAgICAgICBsYXN0UmVuZGVyZWRSZWR1Y2VyOiBudWxsLFxuICAgICAgICBsYXN0UmVuZGVyZWRTdGF0ZTogbnVsbFxuICAgICAgfTtcbiAgICAgIGhvb2sucXVldWUgPSBxdWV1ZTtcbiAgICAgIGhvb2sgPSBkaXNwYXRjaE9wdGltaXN0aWNTZXRTdGF0ZS5iaW5kKFxuICAgICAgICBudWxsLFxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcixcbiAgICAgICAgITAsXG4gICAgICAgIHF1ZXVlXG4gICAgICApO1xuICAgICAgcXVldWUuZGlzcGF0Y2ggPSBob29rO1xuICAgICAgcmV0dXJuIFtwYXNzdGhyb3VnaCwgaG9va107XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZU9wdGltaXN0aWMocGFzc3Rocm91Z2gsIHJlZHVjZXIpIHtcbiAgICAgIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICByZXR1cm4gdXBkYXRlT3B0aW1pc3RpY0ltcGwoaG9vaywgY3VycmVudEhvb2ssIHBhc3N0aHJvdWdoLCByZWR1Y2VyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlT3B0aW1pc3RpY0ltcGwoaG9vaywgY3VycmVudCwgcGFzc3Rocm91Z2gsIHJlZHVjZXIpIHtcbiAgICAgIGhvb2suYmFzZVN0YXRlID0gcGFzc3Rocm91Z2g7XG4gICAgICByZXR1cm4gdXBkYXRlUmVkdWNlckltcGwoXG4gICAgICAgIGhvb2ssXG4gICAgICAgIGN1cnJlbnRIb29rLFxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZWR1Y2VyID8gcmVkdWNlciA6IGJhc2ljU3RhdGVSZWR1Y2VyXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXJlbmRlck9wdGltaXN0aWMocGFzc3Rocm91Z2gsIHJlZHVjZXIpIHtcbiAgICAgIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICBpZiAobnVsbCAhPT0gY3VycmVudEhvb2spXG4gICAgICAgIHJldHVybiB1cGRhdGVPcHRpbWlzdGljSW1wbChob29rLCBjdXJyZW50SG9vaywgcGFzc3Rocm91Z2gsIHJlZHVjZXIpO1xuICAgICAgaG9vay5iYXNlU3RhdGUgPSBwYXNzdGhyb3VnaDtcbiAgICAgIHJldHVybiBbcGFzc3Rocm91Z2gsIGhvb2sucXVldWUuZGlzcGF0Y2hdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkaXNwYXRjaEFjdGlvblN0YXRlKFxuICAgICAgZmliZXIsXG4gICAgICBhY3Rpb25RdWV1ZSxcbiAgICAgIHNldFBlbmRpbmdTdGF0ZSxcbiAgICAgIHNldFN0YXRlLFxuICAgICAgcGF5bG9hZFxuICAgICkge1xuICAgICAgaWYgKGlzUmVuZGVyUGhhc2VVcGRhdGUoZmliZXIpKVxuICAgICAgICB0aHJvdyBFcnJvcihcIkNhbm5vdCB1cGRhdGUgZm9ybSBzdGF0ZSB3aGlsZSByZW5kZXJpbmcuXCIpO1xuICAgICAgZmliZXIgPSBhY3Rpb25RdWV1ZS5hY3Rpb247XG4gICAgICBpZiAobnVsbCAhPT0gZmliZXIpIHtcbiAgICAgICAgdmFyIGFjdGlvbk5vZGUgPSB7XG4gICAgICAgICAgcGF5bG9hZDogcGF5bG9hZCxcbiAgICAgICAgICBhY3Rpb246IGZpYmVyLFxuICAgICAgICAgIG5leHQ6IG51bGwsXG4gICAgICAgICAgaXNUcmFuc2l0aW9uOiAhMCxcbiAgICAgICAgICBzdGF0dXM6IFwicGVuZGluZ1wiLFxuICAgICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICAgIHJlYXNvbjogbnVsbCxcbiAgICAgICAgICBsaXN0ZW5lcnM6IFtdLFxuICAgICAgICAgIHRoZW46IGZ1bmN0aW9uIChsaXN0ZW5lcikge1xuICAgICAgICAgICAgYWN0aW9uTm9kZS5saXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5UXG4gICAgICAgICAgPyBzZXRQZW5kaW5nU3RhdGUoITApXG4gICAgICAgICAgOiAoYWN0aW9uTm9kZS5pc1RyYW5zaXRpb24gPSAhMSk7XG4gICAgICAgIHNldFN0YXRlKGFjdGlvbk5vZGUpO1xuICAgICAgICBzZXRQZW5kaW5nU3RhdGUgPSBhY3Rpb25RdWV1ZS5wZW5kaW5nO1xuICAgICAgICBudWxsID09PSBzZXRQZW5kaW5nU3RhdGVcbiAgICAgICAgICA/ICgoYWN0aW9uTm9kZS5uZXh0ID0gYWN0aW9uUXVldWUucGVuZGluZyA9IGFjdGlvbk5vZGUpLFxuICAgICAgICAgICAgcnVuQWN0aW9uU3RhdGVBY3Rpb24oYWN0aW9uUXVldWUsIGFjdGlvbk5vZGUpKVxuICAgICAgICAgIDogKChhY3Rpb25Ob2RlLm5leHQgPSBzZXRQZW5kaW5nU3RhdGUubmV4dCksXG4gICAgICAgICAgICAoYWN0aW9uUXVldWUucGVuZGluZyA9IHNldFBlbmRpbmdTdGF0ZS5uZXh0ID0gYWN0aW9uTm9kZSkpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBydW5BY3Rpb25TdGF0ZUFjdGlvbihhY3Rpb25RdWV1ZSwgbm9kZSkge1xuICAgICAgdmFyIGFjdGlvbiA9IG5vZGUuYWN0aW9uLFxuICAgICAgICBwYXlsb2FkID0gbm9kZS5wYXlsb2FkLFxuICAgICAgICBwcmV2U3RhdGUgPSBhY3Rpb25RdWV1ZS5zdGF0ZTtcbiAgICAgIGlmIChub2RlLmlzVHJhbnNpdGlvbikge1xuICAgICAgICB2YXIgcHJldlRyYW5zaXRpb24gPSBSZWFjdFNoYXJlZEludGVybmFscy5ULFxuICAgICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uID0ge307XG4gICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzID0gbmV3IFNldCgpO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gY3VycmVudFRyYW5zaXRpb247XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHJldHVyblZhbHVlID0gYWN0aW9uKHByZXZTdGF0ZSwgcGF5bG9hZCksXG4gICAgICAgICAgICBvblN0YXJ0VHJhbnNpdGlvbkZpbmlzaCA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlM7XG4gICAgICAgICAgbnVsbCAhPT0gb25TdGFydFRyYW5zaXRpb25GaW5pc2ggJiZcbiAgICAgICAgICAgIG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoKGN1cnJlbnRUcmFuc2l0aW9uLCByZXR1cm5WYWx1ZSk7XG4gICAgICAgICAgaGFuZGxlQWN0aW9uUmV0dXJuVmFsdWUoYWN0aW9uUXVldWUsIG5vZGUsIHJldHVyblZhbHVlKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBvbkFjdGlvbkVycm9yKGFjdGlvblF1ZXVlLCBub2RlLCBlcnJvcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgbnVsbCAhPT0gcHJldlRyYW5zaXRpb24gJiZcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnRUcmFuc2l0aW9uLnR5cGVzICYmXG4gICAgICAgICAgICAobnVsbCAhPT0gcHJldlRyYW5zaXRpb24udHlwZXMgJiZcbiAgICAgICAgICAgICAgcHJldlRyYW5zaXRpb24udHlwZXMgIT09IGN1cnJlbnRUcmFuc2l0aW9uLnR5cGVzICYmXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJXZSBleHBlY3RlZCBpbm5lciBUcmFuc2l0aW9ucyB0byBoYXZlIHRyYW5zZmVycmVkIHRoZSBvdXRlciB0eXBlcyBzZXQgYW5kIHRoYXQgeW91IGNhbm5vdCBhZGQgdG8gdGhlIG91dGVyIFRyYW5zaXRpb24gd2hpbGUgaW5zaWRlIHRoZSBpbm5lci5UaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAocHJldlRyYW5zaXRpb24udHlwZXMgPSBjdXJyZW50VHJhbnNpdGlvbi50eXBlcykpLFxuICAgICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBwcmV2VHJhbnNpdGlvbiksXG4gICAgICAgICAgICBudWxsID09PSBwcmV2VHJhbnNpdGlvbiAmJlxuICAgICAgICAgICAgICBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyAmJlxuICAgICAgICAgICAgICAoKGFjdGlvblF1ZXVlID0gY3VycmVudFRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMuc2l6ZSksXG4gICAgICAgICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLmNsZWFyKCksXG4gICAgICAgICAgICAgIDEwIDwgYWN0aW9uUXVldWUgJiZcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICBcIkRldGVjdGVkIGEgbGFyZ2UgbnVtYmVyIG9mIHVwZGF0ZXMgaW5zaWRlIHN0YXJ0VHJhbnNpdGlvbi4gSWYgdGhpcyBpcyBkdWUgdG8gYSBzdWJzY3JpcHRpb24gcGxlYXNlIHJlLXdyaXRlIGl0IHRvIHVzZSBSZWFjdCBwcm92aWRlZCBob29rcy4gT3RoZXJ3aXNlIGNvbmN1cnJlbnQgbW9kZSBndWFyYW50ZWVzIGFyZSBvZmYgdGhlIHRhYmxlLlwiXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZVxuICAgICAgICB0cnkge1xuICAgICAgICAgIChjdXJyZW50VHJhbnNpdGlvbiA9IGFjdGlvbihwcmV2U3RhdGUsIHBheWxvYWQpKSxcbiAgICAgICAgICAgIGhhbmRsZUFjdGlvblJldHVyblZhbHVlKGFjdGlvblF1ZXVlLCBub2RlLCBjdXJyZW50VHJhbnNpdGlvbik7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yJDQpIHtcbiAgICAgICAgICBvbkFjdGlvbkVycm9yKGFjdGlvblF1ZXVlLCBub2RlLCBlcnJvciQ0KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVBY3Rpb25SZXR1cm5WYWx1ZShhY3Rpb25RdWV1ZSwgbm9kZSwgcmV0dXJuVmFsdWUpIHtcbiAgICAgIG51bGwgIT09IHJldHVyblZhbHVlICYmXG4gICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgcmV0dXJuVmFsdWUgJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJldHVyblZhbHVlLnRoZW5cbiAgICAgICAgPyAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuYXN5bmNUcmFuc2l0aW9ucysrLFxuICAgICAgICAgIHJldHVyblZhbHVlLnRoZW4ocmVsZWFzZUFzeW5jVHJhbnNpdGlvbiwgcmVsZWFzZUFzeW5jVHJhbnNpdGlvbiksXG4gICAgICAgICAgcmV0dXJuVmFsdWUudGhlbihcbiAgICAgICAgICAgIGZ1bmN0aW9uIChuZXh0U3RhdGUpIHtcbiAgICAgICAgICAgICAgb25BY3Rpb25TdWNjZXNzKGFjdGlvblF1ZXVlLCBub2RlLCBuZXh0U3RhdGUpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICByZXR1cm4gb25BY3Rpb25FcnJvcihhY3Rpb25RdWV1ZSwgbm9kZSwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICksXG4gICAgICAgICAgbm9kZS5pc1RyYW5zaXRpb24gfHxcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiQW4gYXN5bmMgZnVuY3Rpb24gd2l0aCB1c2VBY3Rpb25TdGF0ZSB3YXMgY2FsbGVkIG91dHNpZGUgb2YgYSB0cmFuc2l0aW9uLiBUaGlzIGlzIGxpa2VseSBub3Qgd2hhdCB5b3UgaW50ZW5kZWQgKGZvciBleGFtcGxlLCBpc1BlbmRpbmcgd2lsbCBub3QgdXBkYXRlIGNvcnJlY3RseSkuIEVpdGhlciBjYWxsIHRoZSByZXR1cm5lZCBmdW5jdGlvbiBpbnNpZGUgc3RhcnRUcmFuc2l0aW9uLCBvciBwYXNzIGl0IHRvIGFuIGBhY3Rpb25gIG9yIGBmb3JtQWN0aW9uYCBwcm9wLlwiXG4gICAgICAgICAgICApKVxuICAgICAgICA6IG9uQWN0aW9uU3VjY2VzcyhhY3Rpb25RdWV1ZSwgbm9kZSwgcmV0dXJuVmFsdWUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBvbkFjdGlvblN1Y2Nlc3MoYWN0aW9uUXVldWUsIGFjdGlvbk5vZGUsIG5leHRTdGF0ZSkge1xuICAgICAgYWN0aW9uTm9kZS5zdGF0dXMgPSBcImZ1bGZpbGxlZFwiO1xuICAgICAgYWN0aW9uTm9kZS52YWx1ZSA9IG5leHRTdGF0ZTtcbiAgICAgIG5vdGlmeUFjdGlvbkxpc3RlbmVycyhhY3Rpb25Ob2RlKTtcbiAgICAgIGFjdGlvblF1ZXVlLnN0YXRlID0gbmV4dFN0YXRlO1xuICAgICAgYWN0aW9uTm9kZSA9IGFjdGlvblF1ZXVlLnBlbmRpbmc7XG4gICAgICBudWxsICE9PSBhY3Rpb25Ob2RlICYmXG4gICAgICAgICgobmV4dFN0YXRlID0gYWN0aW9uTm9kZS5uZXh0KSxcbiAgICAgICAgbmV4dFN0YXRlID09PSBhY3Rpb25Ob2RlXG4gICAgICAgICAgPyAoYWN0aW9uUXVldWUucGVuZGluZyA9IG51bGwpXG4gICAgICAgICAgOiAoKG5leHRTdGF0ZSA9IG5leHRTdGF0ZS5uZXh0KSxcbiAgICAgICAgICAgIChhY3Rpb25Ob2RlLm5leHQgPSBuZXh0U3RhdGUpLFxuICAgICAgICAgICAgcnVuQWN0aW9uU3RhdGVBY3Rpb24oYWN0aW9uUXVldWUsIG5leHRTdGF0ZSkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gb25BY3Rpb25FcnJvcihhY3Rpb25RdWV1ZSwgYWN0aW9uTm9kZSwgZXJyb3IpIHtcbiAgICAgIHZhciBsYXN0ID0gYWN0aW9uUXVldWUucGVuZGluZztcbiAgICAgIGFjdGlvblF1ZXVlLnBlbmRpbmcgPSBudWxsO1xuICAgICAgaWYgKG51bGwgIT09IGxhc3QpIHtcbiAgICAgICAgbGFzdCA9IGxhc3QubmV4dDtcbiAgICAgICAgZG9cbiAgICAgICAgICAoYWN0aW9uTm9kZS5zdGF0dXMgPSBcInJlamVjdGVkXCIpLFxuICAgICAgICAgICAgKGFjdGlvbk5vZGUucmVhc29uID0gZXJyb3IpLFxuICAgICAgICAgICAgbm90aWZ5QWN0aW9uTGlzdGVuZXJzKGFjdGlvbk5vZGUpLFxuICAgICAgICAgICAgKGFjdGlvbk5vZGUgPSBhY3Rpb25Ob2RlLm5leHQpO1xuICAgICAgICB3aGlsZSAoYWN0aW9uTm9kZSAhPT0gbGFzdCk7XG4gICAgICB9XG4gICAgICBhY3Rpb25RdWV1ZS5hY3Rpb24gPSBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub3RpZnlBY3Rpb25MaXN0ZW5lcnMoYWN0aW9uTm9kZSkge1xuICAgICAgYWN0aW9uTm9kZSA9IGFjdGlvbk5vZGUubGlzdGVuZXJzO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3Rpb25Ob2RlLmxlbmd0aDsgaSsrKSAoMCwgYWN0aW9uTm9kZVtpXSkoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWN0aW9uU3RhdGVSZWR1Y2VyKG9sZFN0YXRlLCBuZXdTdGF0ZSkge1xuICAgICAgcmV0dXJuIG5ld1N0YXRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudEFjdGlvblN0YXRlKGFjdGlvbiwgaW5pdGlhbFN0YXRlUHJvcCkge1xuICAgICAgaWYgKGlzSHlkcmF0aW5nKSB7XG4gICAgICAgIHZhciBzc3JGb3JtU3RhdGUgPSB3b3JrSW5Qcm9ncmVzc1Jvb3QuZm9ybVN0YXRlO1xuICAgICAgICBpZiAobnVsbCAhPT0gc3NyRm9ybVN0YXRlKSB7XG4gICAgICAgICAgYToge1xuICAgICAgICAgICAgdmFyIGlzTWF0Y2hpbmcgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcjtcbiAgICAgICAgICAgIGlmIChpc0h5ZHJhdGluZykge1xuICAgICAgICAgICAgICBpZiAobmV4dEh5ZHJhdGFibGVJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGI6IHtcbiAgICAgICAgICAgICAgICAgIHZhciBtYXJrZXJJbnN0YW5jZSA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgICAgICB2YXIgaW5Sb290T3JTaW5nbGV0b24gPSByb290T3JTaW5nbGV0b25Db250ZXh0O1xuICAgICAgICAgICAgICAgICAgICA4ICE9PSBtYXJrZXJJbnN0YW5jZS5ub2RlVHlwZTtcblxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaW5Sb290T3JTaW5nbGV0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKFxuICAgICAgICAgICAgICAgICAgICAgIG1hcmtlckluc3RhbmNlLm5leHRTaWJsaW5nXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBtYXJrZXJJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgIG1hcmtlckluc3RhbmNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICBicmVhayBiO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpblJvb3RPclNpbmdsZXRvbiA9IG1hcmtlckluc3RhbmNlLmRhdGE7XG4gICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZSA9XG4gICAgICAgICAgICAgICAgICAgIGluUm9vdE9yU2luZ2xldG9uID09PSBGT1JNX1NUQVRFX0lTX01BVENISU5HIHx8XG4gICAgICAgICAgICAgICAgICAgIGluUm9vdE9yU2luZ2xldG9uID09PSBGT1JNX1NUQVRFX0lTX05PVF9NQVRDSElOR1xuICAgICAgICAgICAgICAgICAgICAgID8gbWFya2VySW5zdGFuY2VcbiAgICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChtYXJrZXJJbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKFxuICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZS5uZXh0U2libGluZ1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGlzTWF0Y2hpbmcgPSBtYXJrZXJJbnN0YW5jZS5kYXRhID09PSBGT1JNX1NUQVRFX0lTX01BVENISU5HO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKGlzTWF0Y2hpbmcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXNNYXRjaGluZyA9ICExO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpc01hdGNoaW5nICYmIChpbml0aWFsU3RhdGVQcm9wID0gc3NyRm9ybVN0YXRlWzBdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3NyRm9ybVN0YXRlID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIHNzckZvcm1TdGF0ZS5tZW1vaXplZFN0YXRlID0gc3NyRm9ybVN0YXRlLmJhc2VTdGF0ZSA9IGluaXRpYWxTdGF0ZVByb3A7XG4gICAgICBpc01hdGNoaW5nID0ge1xuICAgICAgICBwZW5kaW5nOiBudWxsLFxuICAgICAgICBsYW5lczogMCxcbiAgICAgICAgZGlzcGF0Y2g6IG51bGwsXG4gICAgICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IGFjdGlvblN0YXRlUmVkdWNlcixcbiAgICAgICAgbGFzdFJlbmRlcmVkU3RhdGU6IGluaXRpYWxTdGF0ZVByb3BcbiAgICAgIH07XG4gICAgICBzc3JGb3JtU3RhdGUucXVldWUgPSBpc01hdGNoaW5nO1xuICAgICAgc3NyRm9ybVN0YXRlID0gZGlzcGF0Y2hTZXRTdGF0ZS5iaW5kKFxuICAgICAgICBudWxsLFxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcixcbiAgICAgICAgaXNNYXRjaGluZ1xuICAgICAgKTtcbiAgICAgIGlzTWF0Y2hpbmcuZGlzcGF0Y2ggPSBzc3JGb3JtU3RhdGU7XG4gICAgICBpc01hdGNoaW5nID0gbW91bnRTdGF0ZUltcGwoITEpO1xuICAgICAgaW5Sb290T3JTaW5nbGV0b24gPSBkaXNwYXRjaE9wdGltaXN0aWNTZXRTdGF0ZS5iaW5kKFxuICAgICAgICBudWxsLFxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcixcbiAgICAgICAgITEsXG4gICAgICAgIGlzTWF0Y2hpbmcucXVldWVcbiAgICAgICk7XG4gICAgICBpc01hdGNoaW5nID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIG1hcmtlckluc3RhbmNlID0ge1xuICAgICAgICBzdGF0ZTogaW5pdGlhbFN0YXRlUHJvcCxcbiAgICAgICAgZGlzcGF0Y2g6IG51bGwsXG4gICAgICAgIGFjdGlvbjogYWN0aW9uLFxuICAgICAgICBwZW5kaW5nOiBudWxsXG4gICAgICB9O1xuICAgICAgaXNNYXRjaGluZy5xdWV1ZSA9IG1hcmtlckluc3RhbmNlO1xuICAgICAgc3NyRm9ybVN0YXRlID0gZGlzcGF0Y2hBY3Rpb25TdGF0ZS5iaW5kKFxuICAgICAgICBudWxsLFxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcixcbiAgICAgICAgbWFya2VySW5zdGFuY2UsXG4gICAgICAgIGluUm9vdE9yU2luZ2xldG9uLFxuICAgICAgICBzc3JGb3JtU3RhdGVcbiAgICAgICk7XG4gICAgICBtYXJrZXJJbnN0YW5jZS5kaXNwYXRjaCA9IHNzckZvcm1TdGF0ZTtcbiAgICAgIGlzTWF0Y2hpbmcubWVtb2l6ZWRTdGF0ZSA9IGFjdGlvbjtcbiAgICAgIHJldHVybiBbaW5pdGlhbFN0YXRlUHJvcCwgc3NyRm9ybVN0YXRlLCAhMV07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZUFjdGlvblN0YXRlKGFjdGlvbikge1xuICAgICAgdmFyIHN0YXRlSG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgcmV0dXJuIHVwZGF0ZUFjdGlvblN0YXRlSW1wbChzdGF0ZUhvb2ssIGN1cnJlbnRIb29rLCBhY3Rpb24pO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVBY3Rpb25TdGF0ZUltcGwoc3RhdGVIb29rLCBjdXJyZW50U3RhdGVIb29rLCBhY3Rpb24pIHtcbiAgICAgIGN1cnJlbnRTdGF0ZUhvb2sgPSB1cGRhdGVSZWR1Y2VySW1wbChcbiAgICAgICAgc3RhdGVIb29rLFxuICAgICAgICBjdXJyZW50U3RhdGVIb29rLFxuICAgICAgICBhY3Rpb25TdGF0ZVJlZHVjZXJcbiAgICAgIClbMF07XG4gICAgICBzdGF0ZUhvb2sgPSB1cGRhdGVSZWR1Y2VyKGJhc2ljU3RhdGVSZWR1Y2VyKVswXTtcbiAgICAgIGlmIChcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGN1cnJlbnRTdGF0ZUhvb2sgJiZcbiAgICAgICAgbnVsbCAhPT0gY3VycmVudFN0YXRlSG9vayAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBjdXJyZW50U3RhdGVIb29rLnRoZW5cbiAgICAgIClcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB2YXIgc3RhdGUgPSB1c2VUaGVuYWJsZShjdXJyZW50U3RhdGVIb29rKTtcbiAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgIGlmICh4ID09PSBTdXNwZW5zZUV4Y2VwdGlvbikgdGhyb3cgU3VzcGVuc2VBY3Rpb25FeGNlcHRpb247XG4gICAgICAgICAgdGhyb3cgeDtcbiAgICAgICAgfVxuICAgICAgZWxzZSBzdGF0ZSA9IGN1cnJlbnRTdGF0ZUhvb2s7XG4gICAgICBjdXJyZW50U3RhdGVIb29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICB2YXIgYWN0aW9uUXVldWUgPSBjdXJyZW50U3RhdGVIb29rLnF1ZXVlLFxuICAgICAgICBkaXNwYXRjaCA9IGFjdGlvblF1ZXVlLmRpc3BhdGNoO1xuICAgICAgYWN0aW9uICE9PSBjdXJyZW50U3RhdGVIb29rLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgKChjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5mbGFncyB8PSAyMDQ4KSxcbiAgICAgICAgcHVzaFNpbXBsZUVmZmVjdChcbiAgICAgICAgICBIYXNFZmZlY3QgfCBQYXNzaXZlLFxuICAgICAgICAgIHsgZGVzdHJveTogdm9pZCAwIH0sXG4gICAgICAgICAgYWN0aW9uU3RhdGVBY3Rpb25FZmZlY3QuYmluZChudWxsLCBhY3Rpb25RdWV1ZSwgYWN0aW9uKSxcbiAgICAgICAgICBudWxsXG4gICAgICAgICkpO1xuICAgICAgcmV0dXJuIFtzdGF0ZSwgZGlzcGF0Y2gsIHN0YXRlSG9va107XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFjdGlvblN0YXRlQWN0aW9uRWZmZWN0KGFjdGlvblF1ZXVlLCBhY3Rpb24pIHtcbiAgICAgIGFjdGlvblF1ZXVlLmFjdGlvbiA9IGFjdGlvbjtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVyZW5kZXJBY3Rpb25TdGF0ZShhY3Rpb24pIHtcbiAgICAgIHZhciBzdGF0ZUhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKSxcbiAgICAgICAgY3VycmVudFN0YXRlSG9vayA9IGN1cnJlbnRIb29rO1xuICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnRTdGF0ZUhvb2spXG4gICAgICAgIHJldHVybiB1cGRhdGVBY3Rpb25TdGF0ZUltcGwoc3RhdGVIb29rLCBjdXJyZW50U3RhdGVIb29rLCBhY3Rpb24pO1xuICAgICAgdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICBzdGF0ZUhvb2sgPSBzdGF0ZUhvb2subWVtb2l6ZWRTdGF0ZTtcbiAgICAgIGN1cnJlbnRTdGF0ZUhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIHZhciBkaXNwYXRjaCA9IGN1cnJlbnRTdGF0ZUhvb2sucXVldWUuZGlzcGF0Y2g7XG4gICAgICBjdXJyZW50U3RhdGVIb29rLm1lbW9pemVkU3RhdGUgPSBhY3Rpb247XG4gICAgICByZXR1cm4gW3N0YXRlSG9vaywgZGlzcGF0Y2gsICExXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaFNpbXBsZUVmZmVjdCh0YWcsIGluc3QsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgdGFnID0geyB0YWc6IHRhZywgY3JlYXRlOiBjcmVhdGUsIGRlcHM6IGRlcHMsIGluc3Q6IGluc3QsIG5leHQ6IG51bGwgfTtcbiAgICAgIGluc3QgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci51cGRhdGVRdWV1ZTtcbiAgICAgIG51bGwgPT09IGluc3QgJiZcbiAgICAgICAgKChpbnN0ID0gY3JlYXRlRnVuY3Rpb25Db21wb25lbnRVcGRhdGVRdWV1ZSgpKSxcbiAgICAgICAgKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLnVwZGF0ZVF1ZXVlID0gaW5zdCkpO1xuICAgICAgY3JlYXRlID0gaW5zdC5sYXN0RWZmZWN0O1xuICAgICAgbnVsbCA9PT0gY3JlYXRlXG4gICAgICAgID8gKGluc3QubGFzdEVmZmVjdCA9IHRhZy5uZXh0ID0gdGFnKVxuICAgICAgICA6ICgoZGVwcyA9IGNyZWF0ZS5uZXh0KSxcbiAgICAgICAgICAoY3JlYXRlLm5leHQgPSB0YWcpLFxuICAgICAgICAgICh0YWcubmV4dCA9IGRlcHMpLFxuICAgICAgICAgIChpbnN0Lmxhc3RFZmZlY3QgPSB0YWcpKTtcbiAgICAgIHJldHVybiB0YWc7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50UmVmKGluaXRpYWxWYWx1ZSkge1xuICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgaW5pdGlhbFZhbHVlID0geyBjdXJyZW50OiBpbml0aWFsVmFsdWUgfTtcbiAgICAgIHJldHVybiAoaG9vay5tZW1vaXplZFN0YXRlID0gaW5pdGlhbFZhbHVlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRFZmZlY3RJbXBsKGZpYmVyRmxhZ3MsIGhvb2tGbGFncywgY3JlYXRlLCBkZXBzKSB7XG4gICAgICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci5mbGFncyB8PSBmaWJlckZsYWdzO1xuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gcHVzaFNpbXBsZUVmZmVjdChcbiAgICAgICAgSGFzRWZmZWN0IHwgaG9va0ZsYWdzLFxuICAgICAgICB7IGRlc3Ryb3k6IHZvaWQgMCB9LFxuICAgICAgICBjcmVhdGUsXG4gICAgICAgIHZvaWQgMCA9PT0gZGVwcyA/IG51bGwgOiBkZXBzXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVFZmZlY3RJbXBsKGZpYmVyRmxhZ3MsIGhvb2tGbGFncywgY3JlYXRlLCBkZXBzKSB7XG4gICAgICB2YXIgaG9vayA9IHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgZGVwcyA9IHZvaWQgMCA9PT0gZGVwcyA/IG51bGwgOiBkZXBzO1xuICAgICAgdmFyIGluc3QgPSBob29rLm1lbW9pemVkU3RhdGUuaW5zdDtcbiAgICAgIG51bGwgIT09IGN1cnJlbnRIb29rICYmXG4gICAgICBudWxsICE9PSBkZXBzICYmXG4gICAgICBhcmVIb29rSW5wdXRzRXF1YWwoZGVwcywgY3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZS5kZXBzKVxuICAgICAgICA/IChob29rLm1lbW9pemVkU3RhdGUgPSBwdXNoU2ltcGxlRWZmZWN0KGhvb2tGbGFncywgaW5zdCwgY3JlYXRlLCBkZXBzKSlcbiAgICAgICAgOiAoKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmZsYWdzIHw9IGZpYmVyRmxhZ3MpLFxuICAgICAgICAgIChob29rLm1lbW9pemVkU3RhdGUgPSBwdXNoU2ltcGxlRWZmZWN0KFxuICAgICAgICAgICAgSGFzRWZmZWN0IHwgaG9va0ZsYWdzLFxuICAgICAgICAgICAgaW5zdCxcbiAgICAgICAgICAgIGNyZWF0ZSxcbiAgICAgICAgICAgIGRlcHNcbiAgICAgICAgICApKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50RWZmZWN0KGNyZWF0ZSwgZGVwcykge1xuICAgICAgKGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLm1vZGUgJiBTdHJpY3RFZmZlY3RzTW9kZSkgIT09IE5vTW9kZVxuICAgICAgICA/IG1vdW50RWZmZWN0SW1wbCgyNzY4MjYxMTIsIFBhc3NpdmUsIGNyZWF0ZSwgZGVwcylcbiAgICAgICAgOiBtb3VudEVmZmVjdEltcGwoODM5MDY1NiwgUGFzc2l2ZSwgY3JlYXRlLCBkZXBzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXNlRWZmZWN0RXZlbnRJbXBsKHBheWxvYWQpIHtcbiAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmZsYWdzIHw9IDQ7XG4gICAgICB2YXIgY29tcG9uZW50VXBkYXRlUXVldWUgPSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlci51cGRhdGVRdWV1ZTtcbiAgICAgIGlmIChudWxsID09PSBjb21wb25lbnRVcGRhdGVRdWV1ZSlcbiAgICAgICAgKGNvbXBvbmVudFVwZGF0ZVF1ZXVlID0gY3JlYXRlRnVuY3Rpb25Db21wb25lbnRVcGRhdGVRdWV1ZSgpKSxcbiAgICAgICAgICAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIudXBkYXRlUXVldWUgPSBjb21wb25lbnRVcGRhdGVRdWV1ZSksXG4gICAgICAgICAgKGNvbXBvbmVudFVwZGF0ZVF1ZXVlLmV2ZW50cyA9IFtwYXlsb2FkXSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIGV2ZW50cyA9IGNvbXBvbmVudFVwZGF0ZVF1ZXVlLmV2ZW50cztcbiAgICAgICAgbnVsbCA9PT0gZXZlbnRzXG4gICAgICAgICAgPyAoY29tcG9uZW50VXBkYXRlUXVldWUuZXZlbnRzID0gW3BheWxvYWRdKVxuICAgICAgICAgIDogZXZlbnRzLnB1c2gocGF5bG9hZCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50RXZlbnQoY2FsbGJhY2spIHtcbiAgICAgIHZhciBob29rID0gbW91bnRXb3JrSW5Qcm9ncmVzc0hvb2soKSxcbiAgICAgICAgcmVmID0geyBpbXBsOiBjYWxsYmFjayB9O1xuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gcmVmO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgUmVuZGVyQ29udGV4dCkgIT09IE5vQ29udGV4dClcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiQSBmdW5jdGlvbiB3cmFwcGVkIGluIHVzZUVmZmVjdEV2ZW50IGNhbid0IGJlIGNhbGxlZCBkdXJpbmcgcmVuZGVyaW5nLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHJlZi5pbXBsLmFwcGx5KHZvaWQgMCwgYXJndW1lbnRzKTtcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZUV2ZW50KGNhbGxiYWNrKSB7XG4gICAgICB2YXIgcmVmID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIHVzZUVmZmVjdEV2ZW50SW1wbCh7IHJlZjogcmVmLCBuZXh0SW1wbDogY2FsbGJhY2sgfSk7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiBSZW5kZXJDb250ZXh0KSAhPT0gTm9Db250ZXh0KVxuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJBIGZ1bmN0aW9uIHdyYXBwZWQgaW4gdXNlRWZmZWN0RXZlbnQgY2FuJ3QgYmUgY2FsbGVkIGR1cmluZyByZW5kZXJpbmcuXCJcbiAgICAgICAgICApO1xuICAgICAgICByZXR1cm4gcmVmLmltcGwuYXBwbHkodm9pZCAwLCBhcmd1bWVudHMpO1xuICAgICAgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRMYXlvdXRFZmZlY3QoY3JlYXRlLCBkZXBzKSB7XG4gICAgICB2YXIgZmliZXJGbGFncyA9IDQxOTQzMDg7XG4gICAgICAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgIChmaWJlckZsYWdzIHw9IDEzNDIxNzcyOCk7XG4gICAgICByZXR1cm4gbW91bnRFZmZlY3RJbXBsKGZpYmVyRmxhZ3MsIExheW91dCwgY3JlYXRlLCBkZXBzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW1wZXJhdGl2ZUhhbmRsZUVmZmVjdChjcmVhdGUsIHJlZikge1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlZikge1xuICAgICAgICBjcmVhdGUgPSBjcmVhdGUoKTtcbiAgICAgICAgdmFyIHJlZkNsZWFudXAgPSByZWYoY3JlYXRlKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZWZDbGVhbnVwID8gcmVmQ2xlYW51cCgpIDogcmVmKG51bGwpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgaWYgKG51bGwgIT09IHJlZiAmJiB2b2lkIDAgIT09IHJlZilcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICByZWYuaGFzT3duUHJvcGVydHkoXCJjdXJyZW50XCIpIHx8XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkV4cGVjdGVkIHVzZUltcGVyYXRpdmVIYW5kbGUoKSBmaXJzdCBhcmd1bWVudCB0byBlaXRoZXIgYmUgYSByZWYgY2FsbGJhY2sgb3IgUmVhY3QuY3JlYXRlUmVmKCkgb2JqZWN0LiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy5cIixcbiAgICAgICAgICAgICAgXCJhbiBvYmplY3Qgd2l0aCBrZXlzIHtcIiArIE9iamVjdC5rZXlzKHJlZikuam9pbihcIiwgXCIpICsgXCJ9XCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKGNyZWF0ZSA9IGNyZWF0ZSgpKSxcbiAgICAgICAgICAocmVmLmN1cnJlbnQgPSBjcmVhdGUpLFxuICAgICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgY3JlYXRlICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJFeHBlY3RlZCB1c2VJbXBlcmF0aXZlSGFuZGxlKCkgc2Vjb25kIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgaGFuZGxlLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy5cIixcbiAgICAgICAgICBudWxsICE9PSBjcmVhdGUgPyB0eXBlb2YgY3JlYXRlIDogXCJudWxsXCJcbiAgICAgICAgKTtcbiAgICAgIGRlcHMgPSBudWxsICE9PSBkZXBzICYmIHZvaWQgMCAhPT0gZGVwcyA/IGRlcHMuY29uY2F0KFtyZWZdKSA6IG51bGw7XG4gICAgICB2YXIgZmliZXJGbGFncyA9IDQxOTQzMDg7XG4gICAgICAoY3VycmVudGx5UmVuZGVyaW5nRmliZXIubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgIChmaWJlckZsYWdzIHw9IDEzNDIxNzcyOCk7XG4gICAgICBtb3VudEVmZmVjdEltcGwoXG4gICAgICAgIGZpYmVyRmxhZ3MsXG4gICAgICAgIExheW91dCxcbiAgICAgICAgaW1wZXJhdGl2ZUhhbmRsZUVmZmVjdC5iaW5kKG51bGwsIGNyZWF0ZSwgcmVmKSxcbiAgICAgICAgZGVwc1xuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlSW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgY3JlYXRlICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJFeHBlY3RlZCB1c2VJbXBlcmF0aXZlSGFuZGxlKCkgc2Vjb25kIGFyZ3VtZW50IHRvIGJlIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIGEgaGFuZGxlLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy5cIixcbiAgICAgICAgICBudWxsICE9PSBjcmVhdGUgPyB0eXBlb2YgY3JlYXRlIDogXCJudWxsXCJcbiAgICAgICAgKTtcbiAgICAgIGRlcHMgPSBudWxsICE9PSBkZXBzICYmIHZvaWQgMCAhPT0gZGVwcyA/IGRlcHMuY29uY2F0KFtyZWZdKSA6IG51bGw7XG4gICAgICB1cGRhdGVFZmZlY3RJbXBsKFxuICAgICAgICA0LFxuICAgICAgICBMYXlvdXQsXG4gICAgICAgIGltcGVyYXRpdmVIYW5kbGVFZmZlY3QuYmluZChudWxsLCBjcmVhdGUsIHJlZiksXG4gICAgICAgIGRlcHNcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpIHtcbiAgICAgIG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZSA9IFtcbiAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgIHZvaWQgMCA9PT0gZGVwcyA/IG51bGwgOiBkZXBzXG4gICAgICBdO1xuICAgICAgcmV0dXJuIGNhbGxiYWNrO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcykge1xuICAgICAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIGRlcHMgPSB2b2lkIDAgPT09IGRlcHMgPyBudWxsIDogZGVwcztcbiAgICAgIHZhciBwcmV2U3RhdGUgPSBob29rLm1lbW9pemVkU3RhdGU7XG4gICAgICBpZiAobnVsbCAhPT0gZGVwcyAmJiBhcmVIb29rSW5wdXRzRXF1YWwoZGVwcywgcHJldlN0YXRlWzFdKSlcbiAgICAgICAgcmV0dXJuIHByZXZTdGF0ZVswXTtcbiAgICAgIGhvb2subWVtb2l6ZWRTdGF0ZSA9IFtjYWxsYmFjaywgZGVwc107XG4gICAgICByZXR1cm4gY2FsbGJhY2s7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50TWVtbyhuZXh0Q3JlYXRlLCBkZXBzKSB7XG4gICAgICB2YXIgaG9vayA9IG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICBkZXBzID0gdm9pZCAwID09PSBkZXBzID8gbnVsbCA6IGRlcHM7XG4gICAgICB2YXIgbmV4dFZhbHVlID0gbmV4dENyZWF0ZSgpO1xuICAgICAgaWYgKHNob3VsZERvdWJsZUludm9rZVVzZXJGbnNJbkhvb2tzREVWKSB7XG4gICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCEwKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBuZXh0Q3JlYXRlKCk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBob29rLm1lbW9pemVkU3RhdGUgPSBbbmV4dFZhbHVlLCBkZXBzXTtcbiAgICAgIHJldHVybiBuZXh0VmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZU1lbW8obmV4dENyZWF0ZSwgZGVwcykge1xuICAgICAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIGRlcHMgPSB2b2lkIDAgPT09IGRlcHMgPyBudWxsIDogZGVwcztcbiAgICAgIHZhciBwcmV2U3RhdGUgPSBob29rLm1lbW9pemVkU3RhdGU7XG4gICAgICBpZiAobnVsbCAhPT0gZGVwcyAmJiBhcmVIb29rSW5wdXRzRXF1YWwoZGVwcywgcHJldlN0YXRlWzFdKSlcbiAgICAgICAgcmV0dXJuIHByZXZTdGF0ZVswXTtcbiAgICAgIHByZXZTdGF0ZSA9IG5leHRDcmVhdGUoKTtcbiAgICAgIGlmIChzaG91bGREb3VibGVJbnZva2VVc2VyRm5zSW5Ib29rc0RFVikge1xuICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbmV4dENyZWF0ZSgpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCExKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gW3ByZXZTdGF0ZSwgZGVwc107XG4gICAgICByZXR1cm4gcHJldlN0YXRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudERlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSkge1xuICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpO1xuICAgICAgcmV0dXJuIG1vdW50RGVmZXJyZWRWYWx1ZUltcGwoaG9vaywgdmFsdWUsIGluaXRpYWxWYWx1ZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZURlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSkge1xuICAgICAgdmFyIGhvb2sgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKTtcbiAgICAgIHJldHVybiB1cGRhdGVEZWZlcnJlZFZhbHVlSW1wbChcbiAgICAgICAgaG9vayxcbiAgICAgICAgY3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGluaXRpYWxWYWx1ZVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVyZW5kZXJEZWZlcnJlZFZhbHVlKHZhbHVlLCBpbml0aWFsVmFsdWUpIHtcbiAgICAgIHZhciBob29rID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCk7XG4gICAgICByZXR1cm4gbnVsbCA9PT0gY3VycmVudEhvb2tcbiAgICAgICAgPyBtb3VudERlZmVycmVkVmFsdWVJbXBsKGhvb2ssIHZhbHVlLCBpbml0aWFsVmFsdWUpXG4gICAgICAgIDogdXBkYXRlRGVmZXJyZWRWYWx1ZUltcGwoXG4gICAgICAgICAgICBob29rLFxuICAgICAgICAgICAgY3VycmVudEhvb2subWVtb2l6ZWRTdGF0ZSxcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgaW5pdGlhbFZhbHVlXG4gICAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnREZWZlcnJlZFZhbHVlSW1wbChob29rLCB2YWx1ZSwgaW5pdGlhbFZhbHVlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHZvaWQgMCA9PT0gaW5pdGlhbFZhbHVlIHx8XG4gICAgICAgICgwICE9PSAocmVuZGVyTGFuZXMgJiAxMDczNzQxODI0KSAmJlxuICAgICAgICAgIDAgPT09ICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmIDI2MTkzMCkpXG4gICAgICApXG4gICAgICAgIHJldHVybiAoaG9vay5tZW1vaXplZFN0YXRlID0gdmFsdWUpO1xuICAgICAgaG9vay5tZW1vaXplZFN0YXRlID0gaW5pdGlhbFZhbHVlO1xuICAgICAgaG9vayA9IHJlcXVlc3REZWZlcnJlZExhbmUoKTtcbiAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLmxhbmVzIHw9IGhvb2s7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgfD0gaG9vaztcbiAgICAgIHJldHVybiBpbml0aWFsVmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZURlZmVycmVkVmFsdWVJbXBsKGhvb2ssIHByZXZWYWx1ZSwgdmFsdWUsIGluaXRpYWxWYWx1ZSkge1xuICAgICAgaWYgKG9iamVjdElzKHZhbHVlLCBwcmV2VmFsdWUpKSByZXR1cm4gdmFsdWU7XG4gICAgICBpZiAobnVsbCAhPT0gY3VycmVudFRyZWVIaWRkZW5TdGFja0N1cnNvci5jdXJyZW50KVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChob29rID0gbW91bnREZWZlcnJlZFZhbHVlSW1wbChob29rLCB2YWx1ZSwgaW5pdGlhbFZhbHVlKSksXG4gICAgICAgICAgb2JqZWN0SXMoaG9vaywgcHJldlZhbHVlKSB8fCAoZGlkUmVjZWl2ZVVwZGF0ZSA9ICEwKSxcbiAgICAgICAgICBob29rXG4gICAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIDAgPT09IChyZW5kZXJMYW5lcyAmIDQyKSB8fFxuICAgICAgICAoMCAhPT0gKHJlbmRlckxhbmVzICYgMTA3Mzc0MTgyNCkgJiZcbiAgICAgICAgICAwID09PSAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiAyNjE5MzApKVxuICAgICAgKVxuICAgICAgICByZXR1cm4gKGRpZFJlY2VpdmVVcGRhdGUgPSAhMCksIChob29rLm1lbW9pemVkU3RhdGUgPSB2YWx1ZSk7XG4gICAgICBob29rID0gcmVxdWVzdERlZmVycmVkTGFuZSgpO1xuICAgICAgY3VycmVudGx5UmVuZGVyaW5nRmliZXIubGFuZXMgfD0gaG9vaztcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdFNraXBwZWRMYW5lcyB8PSBob29rO1xuICAgICAgcmV0dXJuIHByZXZWYWx1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsZWFzZUFzeW5jVHJhbnNpdGlvbigpIHtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFzeW5jVHJhbnNpdGlvbnMtLTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc3RhcnRUcmFuc2l0aW9uKFxuICAgICAgZmliZXIsXG4gICAgICBxdWV1ZSxcbiAgICAgIHBlbmRpbmdTdGF0ZSxcbiAgICAgIGZpbmlzaGVkU3RhdGUsXG4gICAgICBjYWxsYmFja1xuICAgICkge1xuICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wO1xuICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9XG4gICAgICAgIDAgIT09IHByZXZpb3VzUHJpb3JpdHkgJiYgcHJldmlvdXNQcmlvcml0eSA8IENvbnRpbnVvdXNFdmVudFByaW9yaXR5XG4gICAgICAgICAgPyBwcmV2aW91c1ByaW9yaXR5XG4gICAgICAgICAgOiBDb250aW51b3VzRXZlbnRQcmlvcml0eTtcbiAgICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQsXG4gICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uID0ge307XG4gICAgICBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyA9IG5ldyBTZXQoKTtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBjdXJyZW50VHJhbnNpdGlvbjtcbiAgICAgIGRpc3BhdGNoT3B0aW1pc3RpY1NldFN0YXRlKGZpYmVyLCAhMSwgcXVldWUsIHBlbmRpbmdTdGF0ZSk7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgcmV0dXJuVmFsdWUgPSBjYWxsYmFjaygpLFxuICAgICAgICAgIG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUztcbiAgICAgICAgbnVsbCAhPT0gb25TdGFydFRyYW5zaXRpb25GaW5pc2ggJiZcbiAgICAgICAgICBvblN0YXJ0VHJhbnNpdGlvbkZpbmlzaChjdXJyZW50VHJhbnNpdGlvbiwgcmV0dXJuVmFsdWUpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgbnVsbCAhPT0gcmV0dXJuVmFsdWUgJiZcbiAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgcmV0dXJuVmFsdWUgJiZcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZXR1cm5WYWx1ZS50aGVuXG4gICAgICAgICkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFzeW5jVHJhbnNpdGlvbnMrKztcbiAgICAgICAgICByZXR1cm5WYWx1ZS50aGVuKHJlbGVhc2VBc3luY1RyYW5zaXRpb24sIHJlbGVhc2VBc3luY1RyYW5zaXRpb24pO1xuICAgICAgICAgIHZhciB0aGVuYWJsZUZvckZpbmlzaGVkU3RhdGUgPSBjaGFpblRoZW5hYmxlVmFsdWUoXG4gICAgICAgICAgICByZXR1cm5WYWx1ZSxcbiAgICAgICAgICAgIGZpbmlzaGVkU3RhdGVcbiAgICAgICAgICApO1xuICAgICAgICAgIGRpc3BhdGNoU2V0U3RhdGVJbnRlcm5hbChcbiAgICAgICAgICAgIGZpYmVyLFxuICAgICAgICAgICAgcXVldWUsXG4gICAgICAgICAgICB0aGVuYWJsZUZvckZpbmlzaGVkU3RhdGUsXG4gICAgICAgICAgICByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcilcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICBkaXNwYXRjaFNldFN0YXRlSW50ZXJuYWwoXG4gICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgIHF1ZXVlLFxuICAgICAgICAgICAgZmluaXNoZWRTdGF0ZSxcbiAgICAgICAgICAgIHJlcXVlc3RVcGRhdGVMYW5lKGZpYmVyKVxuICAgICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBkaXNwYXRjaFNldFN0YXRlSW50ZXJuYWwoXG4gICAgICAgICAgZmliZXIsXG4gICAgICAgICAgcXVldWUsXG4gICAgICAgICAgeyB0aGVuOiBmdW5jdGlvbiAoKSB7fSwgc3RhdHVzOiBcInJlamVjdGVkXCIsIHJlYXNvbjogZXJyb3IgfSxcbiAgICAgICAgICByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcilcbiAgICAgICAgKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIChSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gcHJldmlvdXNQcmlvcml0eSksXG4gICAgICAgICAgbnVsbCAhPT0gcHJldlRyYW5zaXRpb24gJiZcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnRUcmFuc2l0aW9uLnR5cGVzICYmXG4gICAgICAgICAgICAobnVsbCAhPT0gcHJldlRyYW5zaXRpb24udHlwZXMgJiZcbiAgICAgICAgICAgICAgcHJldlRyYW5zaXRpb24udHlwZXMgIT09IGN1cnJlbnRUcmFuc2l0aW9uLnR5cGVzICYmXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJXZSBleHBlY3RlZCBpbm5lciBUcmFuc2l0aW9ucyB0byBoYXZlIHRyYW5zZmVycmVkIHRoZSBvdXRlciB0eXBlcyBzZXQgYW5kIHRoYXQgeW91IGNhbm5vdCBhZGQgdG8gdGhlIG91dGVyIFRyYW5zaXRpb24gd2hpbGUgaW5zaWRlIHRoZSBpbm5lci5UaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAocHJldlRyYW5zaXRpb24udHlwZXMgPSBjdXJyZW50VHJhbnNpdGlvbi50eXBlcykpLFxuICAgICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy5UID0gcHJldlRyYW5zaXRpb24pLFxuICAgICAgICAgIG51bGwgPT09IHByZXZUcmFuc2l0aW9uICYmXG4gICAgICAgICAgICBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyAmJlxuICAgICAgICAgICAgKChmaWJlciA9IGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLnNpemUpLFxuICAgICAgICAgICAgY3VycmVudFRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMuY2xlYXIoKSxcbiAgICAgICAgICAgIDEwIDwgZmliZXIgJiZcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIFwiRGV0ZWN0ZWQgYSBsYXJnZSBudW1iZXIgb2YgdXBkYXRlcyBpbnNpZGUgc3RhcnRUcmFuc2l0aW9uLiBJZiB0aGlzIGlzIGR1ZSB0byBhIHN1YnNjcmlwdGlvbiBwbGVhc2UgcmUtd3JpdGUgaXQgdG8gdXNlIFJlYWN0IHByb3ZpZGVkIGhvb2tzLiBPdGhlcndpc2UgY29uY3VycmVudCBtb2RlIGd1YXJhbnRlZXMgYXJlIG9mZiB0aGUgdGFibGUuXCJcbiAgICAgICAgICAgICAgKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0YXJ0SG9zdFRyYW5zaXRpb24oZm9ybUZpYmVyLCBwZW5kaW5nU3RhdGUsIGFjdGlvbiwgZm9ybURhdGEpIHtcbiAgICAgIGlmICg1ICE9PSBmb3JtRmliZXIudGFnKVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIkV4cGVjdGVkIHRoZSBmb3JtIGluc3RhbmNlIHRvIGJlIGEgSG9zdENvbXBvbmVudC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICApO1xuICAgICAgdmFyIHF1ZXVlID0gZW5zdXJlRm9ybUNvbXBvbmVudElzU3RhdGVmdWwoZm9ybUZpYmVyKS5xdWV1ZTtcbiAgICAgIHN0YXJ0SG9zdEFjdGlvblRpbWVyKGZvcm1GaWJlcik7XG4gICAgICBzdGFydFRyYW5zaXRpb24oXG4gICAgICAgIGZvcm1GaWJlcixcbiAgICAgICAgcXVldWUsXG4gICAgICAgIHBlbmRpbmdTdGF0ZSxcbiAgICAgICAgTm90UGVuZGluZ1RyYW5zaXRpb24sXG4gICAgICAgIG51bGwgPT09IGFjdGlvblxuICAgICAgICAgID8gbm9vcFxuICAgICAgICAgIDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXF1ZXN0Rm9ybVJlc2V0JDEoZm9ybUZpYmVyKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGFjdGlvbihmb3JtRGF0YSk7XG4gICAgICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbnN1cmVGb3JtQ29tcG9uZW50SXNTdGF0ZWZ1bChmb3JtRmliZXIpIHtcbiAgICAgIHZhciBleGlzdGluZ1N0YXRlSG9vayA9IGZvcm1GaWJlci5tZW1vaXplZFN0YXRlO1xuICAgICAgaWYgKG51bGwgIT09IGV4aXN0aW5nU3RhdGVIb29rKSByZXR1cm4gZXhpc3RpbmdTdGF0ZUhvb2s7XG4gICAgICBleGlzdGluZ1N0YXRlSG9vayA9IHtcbiAgICAgICAgbWVtb2l6ZWRTdGF0ZTogTm90UGVuZGluZ1RyYW5zaXRpb24sXG4gICAgICAgIGJhc2VTdGF0ZTogTm90UGVuZGluZ1RyYW5zaXRpb24sXG4gICAgICAgIGJhc2VRdWV1ZTogbnVsbCxcbiAgICAgICAgcXVldWU6IHtcbiAgICAgICAgICBwZW5kaW5nOiBudWxsLFxuICAgICAgICAgIGxhbmVzOiAwLFxuICAgICAgICAgIGRpc3BhdGNoOiBudWxsLFxuICAgICAgICAgIGxhc3RSZW5kZXJlZFJlZHVjZXI6IGJhc2ljU3RhdGVSZWR1Y2VyLFxuICAgICAgICAgIGxhc3RSZW5kZXJlZFN0YXRlOiBOb3RQZW5kaW5nVHJhbnNpdGlvblxuICAgICAgICB9LFxuICAgICAgICBuZXh0OiBudWxsXG4gICAgICB9O1xuICAgICAgdmFyIGluaXRpYWxSZXNldFN0YXRlID0ge307XG4gICAgICBleGlzdGluZ1N0YXRlSG9vay5uZXh0ID0ge1xuICAgICAgICBtZW1vaXplZFN0YXRlOiBpbml0aWFsUmVzZXRTdGF0ZSxcbiAgICAgICAgYmFzZVN0YXRlOiBpbml0aWFsUmVzZXRTdGF0ZSxcbiAgICAgICAgYmFzZVF1ZXVlOiBudWxsLFxuICAgICAgICBxdWV1ZToge1xuICAgICAgICAgIHBlbmRpbmc6IG51bGwsXG4gICAgICAgICAgbGFuZXM6IDAsXG4gICAgICAgICAgZGlzcGF0Y2g6IG51bGwsXG4gICAgICAgICAgbGFzdFJlbmRlcmVkUmVkdWNlcjogYmFzaWNTdGF0ZVJlZHVjZXIsXG4gICAgICAgICAgbGFzdFJlbmRlcmVkU3RhdGU6IGluaXRpYWxSZXNldFN0YXRlXG4gICAgICAgIH0sXG4gICAgICAgIG5leHQ6IG51bGxcbiAgICAgIH07XG4gICAgICBmb3JtRmliZXIubWVtb2l6ZWRTdGF0ZSA9IGV4aXN0aW5nU3RhdGVIb29rO1xuICAgICAgZm9ybUZpYmVyID0gZm9ybUZpYmVyLmFsdGVybmF0ZTtcbiAgICAgIG51bGwgIT09IGZvcm1GaWJlciAmJiAoZm9ybUZpYmVyLm1lbW9pemVkU3RhdGUgPSBleGlzdGluZ1N0YXRlSG9vayk7XG4gICAgICByZXR1cm4gZXhpc3RpbmdTdGF0ZUhvb2s7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcXVlc3RGb3JtUmVzZXQkMShmb3JtRmliZXIpIHtcbiAgICAgIG51bGwgPT09IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcInJlcXVlc3RGb3JtUmVzZXQgd2FzIGNhbGxlZCBvdXRzaWRlIGEgdHJhbnNpdGlvbiBvciBhY3Rpb24uIFRvIGZpeCwgbW92ZSB0byBhbiBhY3Rpb24sIG9yIHdyYXAgd2l0aCBzdGFydFRyYW5zaXRpb24uXCJcbiAgICAgICAgKTtcbiAgICAgIHZhciBzdGF0ZUhvb2sgPSBlbnN1cmVGb3JtQ29tcG9uZW50SXNTdGF0ZWZ1bChmb3JtRmliZXIpO1xuICAgICAgbnVsbCA9PT0gc3RhdGVIb29rLm5leHQgJiZcbiAgICAgICAgKHN0YXRlSG9vayA9IGZvcm1GaWJlci5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZSk7XG4gICAgICBkaXNwYXRjaFNldFN0YXRlSW50ZXJuYWwoXG4gICAgICAgIGZvcm1GaWJlcixcbiAgICAgICAgc3RhdGVIb29rLm5leHQucXVldWUsXG4gICAgICAgIHt9LFxuICAgICAgICByZXF1ZXN0VXBkYXRlTGFuZShmb3JtRmliZXIpXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudFRyYW5zaXRpb24oKSB7XG4gICAgICB2YXIgc3RhdGVIb29rID0gbW91bnRTdGF0ZUltcGwoITEpO1xuICAgICAgc3RhdGVIb29rID0gc3RhcnRUcmFuc2l0aW9uLmJpbmQoXG4gICAgICAgIG51bGwsXG4gICAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyLFxuICAgICAgICBzdGF0ZUhvb2sucXVldWUsXG4gICAgICAgICEwLFxuICAgICAgICAhMVxuICAgICAgKTtcbiAgICAgIG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZSA9IHN0YXRlSG9vaztcbiAgICAgIHJldHVybiBbITEsIHN0YXRlSG9va107XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZVRyYW5zaXRpb24oKSB7XG4gICAgICB2YXIgYm9vbGVhbk9yVGhlbmFibGUgPSB1cGRhdGVSZWR1Y2VyKGJhc2ljU3RhdGVSZWR1Y2VyKVswXSxcbiAgICAgICAgc3RhcnQgPSB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgXCJib29sZWFuXCIgPT09IHR5cGVvZiBib29sZWFuT3JUaGVuYWJsZVxuICAgICAgICAgID8gYm9vbGVhbk9yVGhlbmFibGVcbiAgICAgICAgICA6IHVzZVRoZW5hYmxlKGJvb2xlYW5PclRoZW5hYmxlKSxcbiAgICAgICAgc3RhcnRcbiAgICAgIF07XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcmVuZGVyVHJhbnNpdGlvbigpIHtcbiAgICAgIHZhciBib29sZWFuT3JUaGVuYWJsZSA9IHJlcmVuZGVyUmVkdWNlcihiYXNpY1N0YXRlUmVkdWNlcilbMF0sXG4gICAgICAgIHN0YXJ0ID0gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIFwiYm9vbGVhblwiID09PSB0eXBlb2YgYm9vbGVhbk9yVGhlbmFibGVcbiAgICAgICAgICA/IGJvb2xlYW5PclRoZW5hYmxlXG4gICAgICAgICAgOiB1c2VUaGVuYWJsZShib29sZWFuT3JUaGVuYWJsZSksXG4gICAgICAgIHN0YXJ0XG4gICAgICBdO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1c2VIb3N0VHJhbnNpdGlvblN0YXR1cygpIHtcbiAgICAgIHJldHVybiByZWFkQ29udGV4dChIb3N0VHJhbnNpdGlvbkNvbnRleHQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudElkKCkge1xuICAgICAgdmFyIGhvb2sgPSBtb3VudFdvcmtJblByb2dyZXNzSG9vaygpLFxuICAgICAgICBpZGVudGlmaWVyUHJlZml4ID0gd29ya0luUHJvZ3Jlc3NSb290LmlkZW50aWZpZXJQcmVmaXg7XG4gICAgICBpZiAoaXNIeWRyYXRpbmcpIHtcbiAgICAgICAgdmFyIHRyZWVJZCA9IHRyZWVDb250ZXh0T3ZlcmZsb3c7XG4gICAgICAgIHZhciBpZFdpdGhMZWFkaW5nQml0ID0gdHJlZUNvbnRleHRJZDtcbiAgICAgICAgdHJlZUlkID1cbiAgICAgICAgICAoXG4gICAgICAgICAgICBpZFdpdGhMZWFkaW5nQml0ICYgfigxIDw8ICgzMiAtIGNsejMyKGlkV2l0aExlYWRpbmdCaXQpIC0gMSkpXG4gICAgICAgICAgKS50b1N0cmluZygzMikgKyB0cmVlSWQ7XG4gICAgICAgIGlkZW50aWZpZXJQcmVmaXggPSBcIl9cIiArIGlkZW50aWZpZXJQcmVmaXggKyBcIlJfXCIgKyB0cmVlSWQ7XG4gICAgICAgIHRyZWVJZCA9IGxvY2FsSWRDb3VudGVyKys7XG4gICAgICAgIDAgPCB0cmVlSWQgJiYgKGlkZW50aWZpZXJQcmVmaXggKz0gXCJIXCIgKyB0cmVlSWQudG9TdHJpbmcoMzIpKTtcbiAgICAgICAgaWRlbnRpZmllclByZWZpeCArPSBcIl9cIjtcbiAgICAgIH0gZWxzZVxuICAgICAgICAodHJlZUlkID0gZ2xvYmFsQ2xpZW50SWRDb3VudGVyKyspLFxuICAgICAgICAgIChpZGVudGlmaWVyUHJlZml4ID1cbiAgICAgICAgICAgIFwiX1wiICsgaWRlbnRpZmllclByZWZpeCArIFwicl9cIiArIHRyZWVJZC50b1N0cmluZygzMikgKyBcIl9cIik7XG4gICAgICByZXR1cm4gKGhvb2subWVtb2l6ZWRTdGF0ZSA9IGlkZW50aWZpZXJQcmVmaXgpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudFJlZnJlc2goKSB7XG4gICAgICByZXR1cm4gKG1vdW50V29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZSA9IHJlZnJlc2hDYWNoZS5iaW5kKFxuICAgICAgICBudWxsLFxuICAgICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlclxuICAgICAgKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlZnJlc2hDYWNoZShmaWJlciwgc2VlZEtleSkge1xuICAgICAgZm9yICh2YXIgcHJvdmlkZXIgPSBmaWJlci5yZXR1cm47IG51bGwgIT09IHByb3ZpZGVyOyApIHtcbiAgICAgICAgc3dpdGNoIChwcm92aWRlci50YWcpIHtcbiAgICAgICAgICBjYXNlIDI0OlxuICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUocHJvdmlkZXIpLFxuICAgICAgICAgICAgICByZWZyZXNoVXBkYXRlID0gY3JlYXRlVXBkYXRlKGxhbmUpLFxuICAgICAgICAgICAgICByb290ID0gZW5xdWV1ZVVwZGF0ZShwcm92aWRlciwgcmVmcmVzaFVwZGF0ZSwgbGFuZSk7XG4gICAgICAgICAgICBudWxsICE9PSByb290ICYmXG4gICAgICAgICAgICAgIChzdGFydFVwZGF0ZVRpbWVyQnlMYW5lKGxhbmUsIFwicmVmcmVzaCgpXCIsIGZpYmVyKSxcbiAgICAgICAgICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIHByb3ZpZGVyLCBsYW5lKSxcbiAgICAgICAgICAgICAgZW50YW5nbGVUcmFuc2l0aW9ucyhyb290LCBwcm92aWRlciwgbGFuZSkpO1xuICAgICAgICAgICAgZmliZXIgPSBjcmVhdGVDYWNoZSgpO1xuICAgICAgICAgICAgbnVsbCAhPT0gc2VlZEtleSAmJlxuICAgICAgICAgICAgICB2b2lkIDAgIT09IHNlZWRLZXkgJiZcbiAgICAgICAgICAgICAgbnVsbCAhPT0gcm9vdCAmJlxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiVGhlIHNlZWQgYXJndW1lbnQgaXMgbm90IGVuYWJsZWQgb3V0c2lkZSBleHBlcmltZW50YWwgY2hhbm5lbHMuXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJlZnJlc2hVcGRhdGUucGF5bG9hZCA9IHsgY2FjaGU6IGZpYmVyIH07XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcHJvdmlkZXIgPSBwcm92aWRlci5yZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRpc3BhdGNoUmVkdWNlckFjdGlvbihmaWJlciwgcXVldWUsIGFjdGlvbikge1xuICAgICAgdmFyIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBhcmdzWzNdICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJTdGF0ZSB1cGRhdGVzIGZyb20gdGhlIHVzZVN0YXRlKCkgYW5kIHVzZVJlZHVjZXIoKSBIb29rcyBkb24ndCBzdXBwb3J0IHRoZSBzZWNvbmQgY2FsbGJhY2sgYXJndW1lbnQuIFRvIGV4ZWN1dGUgYSBzaWRlIGVmZmVjdCBhZnRlciByZW5kZXJpbmcsIGRlY2xhcmUgaXQgaW4gdGhlIGNvbXBvbmVudCBib2R5IHdpdGggdXNlRWZmZWN0KCkuXCJcbiAgICAgICAgKTtcbiAgICAgIGFyZ3MgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gICAgICB2YXIgdXBkYXRlID0ge1xuICAgICAgICBsYW5lOiBhcmdzLFxuICAgICAgICByZXZlcnRMYW5lOiAwLFxuICAgICAgICBnZXN0dXJlOiBudWxsLFxuICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgICAgaGFzRWFnZXJTdGF0ZTogITEsXG4gICAgICAgIGVhZ2VyU3RhdGU6IG51bGwsXG4gICAgICAgIG5leHQ6IG51bGxcbiAgICAgIH07XG4gICAgICBpc1JlbmRlclBoYXNlVXBkYXRlKGZpYmVyKVxuICAgICAgICA/IGVucXVldWVSZW5kZXJQaGFzZVVwZGF0ZShxdWV1ZSwgdXBkYXRlKVxuICAgICAgICA6ICgodXBkYXRlID0gZW5xdWV1ZUNvbmN1cnJlbnRIb29rVXBkYXRlKGZpYmVyLCBxdWV1ZSwgdXBkYXRlLCBhcmdzKSksXG4gICAgICAgICAgbnVsbCAhPT0gdXBkYXRlICYmXG4gICAgICAgICAgICAoc3RhcnRVcGRhdGVUaW1lckJ5TGFuZShhcmdzLCBcImRpc3BhdGNoKClcIiwgZmliZXIpLFxuICAgICAgICAgICAgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHVwZGF0ZSwgZmliZXIsIGFyZ3MpLFxuICAgICAgICAgICAgZW50YW5nbGVUcmFuc2l0aW9uVXBkYXRlKHVwZGF0ZSwgcXVldWUsIGFyZ3MpKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRpc3BhdGNoU2V0U3RhdGUoZmliZXIsIHF1ZXVlLCBhY3Rpb24pIHtcbiAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgYXJnc1szXSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiU3RhdGUgdXBkYXRlcyBmcm9tIHRoZSB1c2VTdGF0ZSgpIGFuZCB1c2VSZWR1Y2VyKCkgSG9va3MgZG9uJ3Qgc3VwcG9ydCB0aGUgc2Vjb25kIGNhbGxiYWNrIGFyZ3VtZW50LiBUbyBleGVjdXRlIGEgc2lkZSBlZmZlY3QgYWZ0ZXIgcmVuZGVyaW5nLCBkZWNsYXJlIGl0IGluIHRoZSBjb21wb25lbnQgYm9keSB3aXRoIHVzZUVmZmVjdCgpLlwiXG4gICAgICAgICk7XG4gICAgICBhcmdzID0gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpO1xuICAgICAgZGlzcGF0Y2hTZXRTdGF0ZUludGVybmFsKGZpYmVyLCBxdWV1ZSwgYWN0aW9uLCBhcmdzKSAmJlxuICAgICAgICBzdGFydFVwZGF0ZVRpbWVyQnlMYW5lKGFyZ3MsIFwic2V0U3RhdGUoKVwiLCBmaWJlcik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRpc3BhdGNoU2V0U3RhdGVJbnRlcm5hbChmaWJlciwgcXVldWUsIGFjdGlvbiwgbGFuZSkge1xuICAgICAgdmFyIHVwZGF0ZSA9IHtcbiAgICAgICAgbGFuZTogbGFuZSxcbiAgICAgICAgcmV2ZXJ0TGFuZTogMCxcbiAgICAgICAgZ2VzdHVyZTogbnVsbCxcbiAgICAgICAgYWN0aW9uOiBhY3Rpb24sXG4gICAgICAgIGhhc0VhZ2VyU3RhdGU6ICExLFxuICAgICAgICBlYWdlclN0YXRlOiBudWxsLFxuICAgICAgICBuZXh0OiBudWxsXG4gICAgICB9O1xuICAgICAgaWYgKGlzUmVuZGVyUGhhc2VVcGRhdGUoZmliZXIpKSBlbnF1ZXVlUmVuZGVyUGhhc2VVcGRhdGUocXVldWUsIHVwZGF0ZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIDAgPT09IGZpYmVyLmxhbmVzICYmXG4gICAgICAgICAgKG51bGwgPT09IGFsdGVybmF0ZSB8fCAwID09PSBhbHRlcm5hdGUubGFuZXMpICYmXG4gICAgICAgICAgKChhbHRlcm5hdGUgPSBxdWV1ZS5sYXN0UmVuZGVyZWRSZWR1Y2VyKSwgbnVsbCAhPT0gYWx0ZXJuYXRlKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIGN1cnJlbnRTdGF0ZSA9IHF1ZXVlLmxhc3RSZW5kZXJlZFN0YXRlLFxuICAgICAgICAgICAgICBlYWdlclN0YXRlID0gYWx0ZXJuYXRlKGN1cnJlbnRTdGF0ZSwgYWN0aW9uKTtcbiAgICAgICAgICAgIHVwZGF0ZS5oYXNFYWdlclN0YXRlID0gITA7XG4gICAgICAgICAgICB1cGRhdGUuZWFnZXJTdGF0ZSA9IGVhZ2VyU3RhdGU7XG4gICAgICAgICAgICBpZiAob2JqZWN0SXMoZWFnZXJTdGF0ZSwgY3VycmVudFN0YXRlKSlcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBlbnF1ZXVlVXBkYXRlJDEoZmliZXIsIHF1ZXVlLCB1cGRhdGUsIDApLFxuICAgICAgICAgICAgICAgIG51bGwgPT09IHdvcmtJblByb2dyZXNzUm9vdCAmJlxuICAgICAgICAgICAgICAgICAgZmluaXNoUXVldWVpbmdDb25jdXJyZW50VXBkYXRlcygpLFxuICAgICAgICAgICAgICAgICExXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBhY3Rpb24gPSBlbnF1ZXVlQ29uY3VycmVudEhvb2tVcGRhdGUoZmliZXIsIHF1ZXVlLCB1cGRhdGUsIGxhbmUpO1xuICAgICAgICBpZiAobnVsbCAhPT0gYWN0aW9uKVxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoYWN0aW9uLCBmaWJlciwgbGFuZSksXG4gICAgICAgICAgICBlbnRhbmdsZVRyYW5zaXRpb25VcGRhdGUoYWN0aW9uLCBxdWV1ZSwgbGFuZSksXG4gICAgICAgICAgICAhMFxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRpc3BhdGNoT3B0aW1pc3RpY1NldFN0YXRlKFxuICAgICAgZmliZXIsXG4gICAgICB0aHJvd0lmRHVyaW5nUmVuZGVyLFxuICAgICAgcXVldWUsXG4gICAgICBhY3Rpb25cbiAgICApIHtcbiAgICAgIG51bGwgPT09IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgJiZcbiAgICAgICAgMCA9PT0gY3VycmVudEVudGFuZ2xlZExhbmUgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkFuIG9wdGltaXN0aWMgc3RhdGUgdXBkYXRlIG9jY3VycmVkIG91dHNpZGUgYSB0cmFuc2l0aW9uIG9yIGFjdGlvbi4gVG8gZml4LCBtb3ZlIHRoZSB1cGRhdGUgdG8gYW4gYWN0aW9uLCBvciB3cmFwIHdpdGggc3RhcnRUcmFuc2l0aW9uLlwiXG4gICAgICAgICk7XG4gICAgICBhY3Rpb24gPSB7XG4gICAgICAgIGxhbmU6IDIsXG4gICAgICAgIHJldmVydExhbmU6IHJlcXVlc3RUcmFuc2l0aW9uTGFuZSgpLFxuICAgICAgICBnZXN0dXJlOiBudWxsLFxuICAgICAgICBhY3Rpb246IGFjdGlvbixcbiAgICAgICAgaGFzRWFnZXJTdGF0ZTogITEsXG4gICAgICAgIGVhZ2VyU3RhdGU6IG51bGwsXG4gICAgICAgIG5leHQ6IG51bGxcbiAgICAgIH07XG4gICAgICBpZiAoaXNSZW5kZXJQaGFzZVVwZGF0ZShmaWJlcikpIHtcbiAgICAgICAgaWYgKHRocm93SWZEdXJpbmdSZW5kZXIpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXCJDYW5ub3QgdXBkYXRlIG9wdGltaXN0aWMgc3RhdGUgd2hpbGUgcmVuZGVyaW5nLlwiKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIkNhbm5vdCBjYWxsIHN0YXJ0VHJhbnNpdGlvbiB3aGlsZSByZW5kZXJpbmcuXCIpO1xuICAgICAgfSBlbHNlXG4gICAgICAgICh0aHJvd0lmRHVyaW5nUmVuZGVyID0gZW5xdWV1ZUNvbmN1cnJlbnRIb29rVXBkYXRlKFxuICAgICAgICAgIGZpYmVyLFxuICAgICAgICAgIHF1ZXVlLFxuICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAyXG4gICAgICAgICkpLFxuICAgICAgICAgIG51bGwgIT09IHRocm93SWZEdXJpbmdSZW5kZXIgJiZcbiAgICAgICAgICAgIChzdGFydFVwZGF0ZVRpbWVyQnlMYW5lKDIsIFwic2V0T3B0aW1pc3RpYygpXCIsIGZpYmVyKSxcbiAgICAgICAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcih0aHJvd0lmRHVyaW5nUmVuZGVyLCBmaWJlciwgMikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1JlbmRlclBoYXNlVXBkYXRlKGZpYmVyKSB7XG4gICAgICB2YXIgYWx0ZXJuYXRlID0gZmliZXIuYWx0ZXJuYXRlO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgZmliZXIgPT09IGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyIHx8XG4gICAgICAgIChudWxsICE9PSBhbHRlcm5hdGUgJiYgYWx0ZXJuYXRlID09PSBjdXJyZW50bHlSZW5kZXJpbmdGaWJlcilcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVucXVldWVSZW5kZXJQaGFzZVVwZGF0ZShxdWV1ZSwgdXBkYXRlKSB7XG4gICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgPVxuICAgICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlID0gITA7XG4gICAgICB2YXIgcGVuZGluZyA9IHF1ZXVlLnBlbmRpbmc7XG4gICAgICBudWxsID09PSBwZW5kaW5nXG4gICAgICAgID8gKHVwZGF0ZS5uZXh0ID0gdXBkYXRlKVxuICAgICAgICA6ICgodXBkYXRlLm5leHQgPSBwZW5kaW5nLm5leHQpLCAocGVuZGluZy5uZXh0ID0gdXBkYXRlKSk7XG4gICAgICBxdWV1ZS5wZW5kaW5nID0gdXBkYXRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlbnRhbmdsZVRyYW5zaXRpb25VcGRhdGUocm9vdCwgcXVldWUsIGxhbmUpIHtcbiAgICAgIGlmICgwICE9PSAobGFuZSAmIDQxOTQwNDgpKSB7XG4gICAgICAgIHZhciBxdWV1ZUxhbmVzID0gcXVldWUubGFuZXM7XG4gICAgICAgIHF1ZXVlTGFuZXMgJj0gcm9vdC5wZW5kaW5nTGFuZXM7XG4gICAgICAgIGxhbmUgfD0gcXVldWVMYW5lcztcbiAgICAgICAgcXVldWUubGFuZXMgPSBsYW5lO1xuICAgICAgICBtYXJrUm9vdEVudGFuZ2xlZChyb290LCBsYW5lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gd2Fybk9uSW52YWxpZENhbGxiYWNrKGNhbGxiYWNrKSB7XG4gICAgICBpZiAobnVsbCAhPT0gY2FsbGJhY2sgJiYgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGtleSA9IFN0cmluZyhjYWxsYmFjayk7XG4gICAgICAgIGRpZFdhcm5PbkludmFsaWRDYWxsYmFjay5oYXMoa2V5KSB8fFxuICAgICAgICAgIChkaWRXYXJuT25JbnZhbGlkQ2FsbGJhY2suYWRkKGtleSksXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiRXhwZWN0ZWQgdGhlIGxhc3Qgb3B0aW9uYWwgYGNhbGxiYWNrYCBhcmd1bWVudCB0byBiZSBhIGZ1bmN0aW9uLiBJbnN0ZWFkIHJlY2VpdmVkOiAlcy5cIixcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICBjdG9yLFxuICAgICAgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzLFxuICAgICAgbmV4dFByb3BzXG4gICAgKSB7XG4gICAgICB2YXIgcHJldlN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSxcbiAgICAgICAgcGFydGlhbFN0YXRlID0gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKTtcbiAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcGFydGlhbFN0YXRlID0gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKG5leHRQcm9wcywgcHJldlN0YXRlKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHZvaWQgMCA9PT0gcGFydGlhbFN0YXRlICYmXG4gICAgICAgICgoY3RvciA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCBcIkNvbXBvbmVudFwiKSxcbiAgICAgICAgZGlkV2FybkFib3V0VW5kZWZpbmVkRGVyaXZlZFN0YXRlLmhhcyhjdG9yKSB8fFxuICAgICAgICAgIChkaWRXYXJuQWJvdXRVbmRlZmluZWREZXJpdmVkU3RhdGUuYWRkKGN0b3IpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzLmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpOiBBIHZhbGlkIHN0YXRlIG9iamVjdCAob3IgbnVsbCkgbXVzdCBiZSByZXR1cm5lZC4gWW91IGhhdmUgcmV0dXJuZWQgdW5kZWZpbmVkLlwiLFxuICAgICAgICAgICAgY3RvclxuICAgICAgICAgICkpKTtcbiAgICAgIHByZXZTdGF0ZSA9XG4gICAgICAgIG51bGwgPT09IHBhcnRpYWxTdGF0ZSB8fCB2b2lkIDAgPT09IHBhcnRpYWxTdGF0ZVxuICAgICAgICAgID8gcHJldlN0YXRlXG4gICAgICAgICAgOiBhc3NpZ24oe30sIHByZXZTdGF0ZSwgcGFydGlhbFN0YXRlKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBwcmV2U3RhdGU7XG4gICAgICAwID09PSB3b3JrSW5Qcm9ncmVzcy5sYW5lcyAmJlxuICAgICAgICAod29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUuYmFzZVN0YXRlID0gcHJldlN0YXRlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUoXG4gICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgIGN0b3IsXG4gICAgICBvbGRQcm9wcyxcbiAgICAgIG5ld1Byb3BzLFxuICAgICAgb2xkU3RhdGUsXG4gICAgICBuZXdTdGF0ZSxcbiAgICAgIG5leHRDb250ZXh0XG4gICAgKSB7XG4gICAgICB2YXIgaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5zdGFuY2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKSB7XG4gICAgICAgIG9sZFByb3BzID0gaW5zdGFuY2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlKFxuICAgICAgICAgIG5ld1Byb3BzLFxuICAgICAgICAgIG5ld1N0YXRlLFxuICAgICAgICAgIG5leHRDb250ZXh0XG4gICAgICAgICk7XG4gICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSkge1xuICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCEwKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgb2xkUHJvcHMgPSBpbnN0YW5jZS5zaG91bGRDb21wb25lbnRVcGRhdGUoXG4gICAgICAgICAgICAgIG5ld1Byb3BzLFxuICAgICAgICAgICAgICBuZXdTdGF0ZSxcbiAgICAgICAgICAgICAgbmV4dENvbnRleHRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCExKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdm9pZCAwID09PSBvbGRQcm9wcyAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzLnNob3VsZENvbXBvbmVudFVwZGF0ZSgpOiBSZXR1cm5lZCB1bmRlZmluZWQgaW5zdGVhZCBvZiBhIGJvb2xlYW4gdmFsdWUuIE1ha2Ugc3VyZSB0byByZXR1cm4gdHJ1ZSBvciBmYWxzZS5cIixcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShjdG9yKSB8fCBcIkNvbXBvbmVudFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG9sZFByb3BzO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGN0b3IucHJvdG90eXBlICYmIGN0b3IucHJvdG90eXBlLmlzUHVyZVJlYWN0Q29tcG9uZW50XG4gICAgICAgID8gIXNoYWxsb3dFcXVhbChvbGRQcm9wcywgbmV3UHJvcHMpIHx8ICFzaGFsbG93RXF1YWwob2xkU3RhdGUsIG5ld1N0YXRlKVxuICAgICAgICA6ICEwO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjYWxsQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgaW5zdGFuY2UsXG4gICAgICBuZXdQcm9wcyxcbiAgICAgIG5leHRDb250ZXh0XG4gICAgKSB7XG4gICAgICB2YXIgb2xkU3RhdGUgPSBpbnN0YW5jZS5zdGF0ZTtcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgJiZcbiAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhuZXdQcm9wcywgbmV4dENvbnRleHQpO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgJiZcbiAgICAgICAgaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMobmV3UHJvcHMsIG5leHRDb250ZXh0KTtcbiAgICAgIGluc3RhbmNlLnN0YXRlICE9PSBvbGRTdGF0ZSAmJlxuICAgICAgICAoKHdvcmtJblByb2dyZXNzID1cbiAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHdvcmtJblByb2dyZXNzKSB8fCBcIkNvbXBvbmVudFwiKSxcbiAgICAgICAgZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50Lmhhcyh3b3JrSW5Qcm9ncmVzcykgfHxcbiAgICAgICAgICAoZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50LmFkZCh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXMuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcygpOiBBc3NpZ25pbmcgZGlyZWN0bHkgdG8gdGhpcy5zdGF0ZSBpcyBkZXByZWNhdGVkIChleGNlcHQgaW5zaWRlIGEgY29tcG9uZW50J3MgY29uc3RydWN0b3IpLiBVc2Ugc2V0U3RhdGUgaW5zdGVhZC5cIixcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgKSksXG4gICAgICAgIGNsYXNzQ29tcG9uZW50VXBkYXRlci5lbnF1ZXVlUmVwbGFjZVN0YXRlKFxuICAgICAgICAgIGluc3RhbmNlLFxuICAgICAgICAgIGluc3RhbmNlLnN0YXRlLFxuICAgICAgICAgIG51bGxcbiAgICAgICAgKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVDbGFzc0NvbXBvbmVudFByb3BzKENvbXBvbmVudCwgYmFzZVByb3BzKSB7XG4gICAgICB2YXIgbmV3UHJvcHMgPSBiYXNlUHJvcHM7XG4gICAgICBpZiAoXCJyZWZcIiBpbiBiYXNlUHJvcHMpIHtcbiAgICAgICAgbmV3UHJvcHMgPSB7fTtcbiAgICAgICAgZm9yICh2YXIgcHJvcE5hbWUgaW4gYmFzZVByb3BzKVxuICAgICAgICAgIFwicmVmXCIgIT09IHByb3BOYW1lICYmIChuZXdQcm9wc1twcm9wTmFtZV0gPSBiYXNlUHJvcHNbcHJvcE5hbWVdKTtcbiAgICAgIH1cbiAgICAgIGlmICgoQ29tcG9uZW50ID0gQ29tcG9uZW50LmRlZmF1bHRQcm9wcykpIHtcbiAgICAgICAgbmV3UHJvcHMgPT09IGJhc2VQcm9wcyAmJiAobmV3UHJvcHMgPSBhc3NpZ24oe30sIG5ld1Byb3BzKSk7XG4gICAgICAgIGZvciAodmFyIF9wcm9wTmFtZSBpbiBDb21wb25lbnQpXG4gICAgICAgICAgdm9pZCAwID09PSBuZXdQcm9wc1tfcHJvcE5hbWVdICYmXG4gICAgICAgICAgICAobmV3UHJvcHNbX3Byb3BOYW1lXSA9IENvbXBvbmVudFtfcHJvcE5hbWVdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXdQcm9wcztcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVmYXVsdE9uVW5jYXVnaHRFcnJvcihlcnJvcikge1xuICAgICAgcmVwb3J0R2xvYmFsRXJyb3IoZXJyb3IpO1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBcIiVzXFxuXFxuJXNcXG5cIixcbiAgICAgICAgY29tcG9uZW50TmFtZVxuICAgICAgICAgID8gXCJBbiBlcnJvciBvY2N1cnJlZCBpbiB0aGUgPFwiICsgY29tcG9uZW50TmFtZSArIFwiPiBjb21wb25lbnQuXCJcbiAgICAgICAgICA6IFwiQW4gZXJyb3Igb2NjdXJyZWQgaW4gb25lIG9mIHlvdXIgUmVhY3QgY29tcG9uZW50cy5cIixcbiAgICAgICAgXCJDb25zaWRlciBhZGRpbmcgYW4gZXJyb3IgYm91bmRhcnkgdG8geW91ciB0cmVlIHRvIGN1c3RvbWl6ZSBlcnJvciBoYW5kbGluZyBiZWhhdmlvci5cXG5WaXNpdCBodHRwczovL3JlYWN0LmRldi9saW5rL2Vycm9yLWJvdW5kYXJpZXMgdG8gbGVhcm4gbW9yZSBhYm91dCBlcnJvciBib3VuZGFyaWVzLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWZhdWx0T25DYXVnaHRFcnJvcihlcnJvcikge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWVNZXNzYWdlID0gY29tcG9uZW50TmFtZVxuICAgICAgICAgID8gXCJUaGUgYWJvdmUgZXJyb3Igb2NjdXJyZWQgaW4gdGhlIDxcIiArIGNvbXBvbmVudE5hbWUgKyBcIj4gY29tcG9uZW50LlwiXG4gICAgICAgICAgOiBcIlRoZSBhYm92ZSBlcnJvciBvY2N1cnJlZCBpbiBvbmUgb2YgeW91ciBSZWFjdCBjb21wb25lbnRzLlwiLFxuICAgICAgICByZWNyZWF0ZU1lc3NhZ2UgPVxuICAgICAgICAgIFwiUmVhY3Qgd2lsbCB0cnkgdG8gcmVjcmVhdGUgdGhpcyBjb21wb25lbnQgdHJlZSBmcm9tIHNjcmF0Y2ggdXNpbmcgdGhlIGVycm9yIGJvdW5kYXJ5IHlvdSBwcm92aWRlZCwgXCIgK1xuICAgICAgICAgICgoZXJyb3JCb3VuZGFyeU5hbWUgfHwgXCJBbm9ueW1vdXNcIikgKyBcIi5cIik7XG4gICAgICBpZiAoXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBlcnJvciAmJlxuICAgICAgICBudWxsICE9PSBlcnJvciAmJlxuICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgZXJyb3IuZW52aXJvbm1lbnROYW1lXG4gICAgICApIHtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGVycm9yLmVudmlyb25tZW50TmFtZTtcbiAgICAgICAgZXJyb3IgPSBbXG4gICAgICAgICAgXCIlb1xcblxcbiVzXFxuXFxuJXNcXG5cIixcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgICBjb21wb25lbnROYW1lTWVzc2FnZSxcbiAgICAgICAgICByZWNyZWF0ZU1lc3NhZ2VcbiAgICAgICAgXS5zbGljZSgwKTtcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGVycm9yWzBdXG4gICAgICAgICAgPyBlcnJvci5zcGxpY2UoXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgIGJhZGdlRm9ybWF0ICsgXCIgXCIgKyBlcnJvclswXSxcbiAgICAgICAgICAgICAgYmFkZ2VTdHlsZSxcbiAgICAgICAgICAgICAgcGFkICsgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ICsgcGFkLFxuICAgICAgICAgICAgICByZXNldFN0eWxlXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBlcnJvci5zcGxpY2UoXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgIGJhZGdlRm9ybWF0LFxuICAgICAgICAgICAgICBiYWRnZVN0eWxlLFxuICAgICAgICAgICAgICBwYWQgKyBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgKyBwYWQsXG4gICAgICAgICAgICAgIHJlc2V0U3R5bGVcbiAgICAgICAgICAgICk7XG4gICAgICAgIGVycm9yLnVuc2hpZnQoY29uc29sZSk7XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IGJpbmQuYXBwbHkoY29uc29sZS5lcnJvciwgZXJyb3IpO1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQoKTtcbiAgICAgIH0gZWxzZVxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiJW9cXG5cXG4lc1xcblxcbiVzXFxuXCIsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgY29tcG9uZW50TmFtZU1lc3NhZ2UsXG4gICAgICAgICAgcmVjcmVhdGVNZXNzYWdlXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRlZmF1bHRPblJlY292ZXJhYmxlRXJyb3IoZXJyb3IpIHtcbiAgICAgIHJlcG9ydEdsb2JhbEVycm9yKGVycm9yKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbG9nVW5jYXVnaHRFcnJvcihyb290LCBlcnJvckluZm8pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbXBvbmVudE5hbWUgPSBlcnJvckluZm8uc291cmNlXG4gICAgICAgICAgPyBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGVycm9ySW5mby5zb3VyY2UpXG4gICAgICAgICAgOiBudWxsO1xuICAgICAgICBlcnJvckJvdW5kYXJ5TmFtZSA9IG51bGw7XG4gICAgICAgIHZhciBlcnJvciA9IGVycm9ySW5mby52YWx1ZTtcbiAgICAgICAgaWYgKG51bGwgIT09IFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlKVxuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdmFyIG9uVW5jYXVnaHRFcnJvciA9IHJvb3Qub25VbmNhdWdodEVycm9yO1xuICAgICAgICAgIG9uVW5jYXVnaHRFcnJvcihlcnJvciwgeyBjb21wb25lbnRTdGFjazogZXJyb3JJbmZvLnN0YWNrIH0pO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlJDUpIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdGhyb3cgZSQ1O1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbG9nQ2F1Z2h0RXJyb3Iocm9vdCwgYm91bmRhcnksIGVycm9ySW5mbykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29tcG9uZW50TmFtZSA9IGVycm9ySW5mby5zb3VyY2VcbiAgICAgICAgICA/IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZXJyb3JJbmZvLnNvdXJjZSlcbiAgICAgICAgICA6IG51bGw7XG4gICAgICAgIGVycm9yQm91bmRhcnlOYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihib3VuZGFyeSk7XG4gICAgICAgIHZhciBvbkNhdWdodEVycm9yID0gcm9vdC5vbkNhdWdodEVycm9yO1xuICAgICAgICBvbkNhdWdodEVycm9yKGVycm9ySW5mby52YWx1ZSwge1xuICAgICAgICAgIGNvbXBvbmVudFN0YWNrOiBlcnJvckluZm8uc3RhY2ssXG4gICAgICAgICAgZXJyb3JCb3VuZGFyeTogMSA9PT0gYm91bmRhcnkudGFnID8gYm91bmRhcnkuc3RhdGVOb2RlIDogbnVsbFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGUkNikge1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICB0aHJvdyBlJDY7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVSb290RXJyb3JVcGRhdGUocm9vdCwgZXJyb3JJbmZvLCBsYW5lKSB7XG4gICAgICBsYW5lID0gY3JlYXRlVXBkYXRlKGxhbmUpO1xuICAgICAgbGFuZS50YWcgPSBDYXB0dXJlVXBkYXRlO1xuICAgICAgbGFuZS5wYXlsb2FkID0geyBlbGVtZW50OiBudWxsIH07XG4gICAgICBsYW5lLmNhbGxiYWNrID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBydW5XaXRoRmliZXJJbkRFVihlcnJvckluZm8uc291cmNlLCBsb2dVbmNhdWdodEVycm9yLCByb290LCBlcnJvckluZm8pO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBsYW5lO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVDbGFzc0Vycm9yVXBkYXRlKGxhbmUpIHtcbiAgICAgIGxhbmUgPSBjcmVhdGVVcGRhdGUobGFuZSk7XG4gICAgICBsYW5lLnRhZyA9IENhcHR1cmVVcGRhdGU7XG4gICAgICByZXR1cm4gbGFuZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW5pdGlhbGl6ZUNsYXNzRXJyb3JVcGRhdGUodXBkYXRlLCByb290LCBmaWJlciwgZXJyb3JJbmZvKSB7XG4gICAgICB2YXIgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yID0gZmliZXIudHlwZS5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3I7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKSB7XG4gICAgICAgIHZhciBlcnJvciA9IGVycm9ySW5mby52YWx1ZTtcbiAgICAgICAgdXBkYXRlLnBheWxvYWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcihlcnJvcik7XG4gICAgICAgIH07XG4gICAgICAgIHVwZGF0ZS5jYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBtYXJrRmFpbGVkRXJyb3JCb3VuZGFyeUZvckhvdFJlbG9hZGluZyhmaWJlcik7XG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICBlcnJvckluZm8uc291cmNlLFxuICAgICAgICAgICAgbG9nQ2F1Z2h0RXJyb3IsXG4gICAgICAgICAgICByb290LFxuICAgICAgICAgICAgZmliZXIsXG4gICAgICAgICAgICBlcnJvckluZm9cbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdmFyIGluc3QgPSBmaWJlci5zdGF0ZU5vZGU7XG4gICAgICBudWxsICE9PSBpbnN0ICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluc3QuY29tcG9uZW50RGlkQ2F0Y2ggJiZcbiAgICAgICAgKHVwZGF0ZS5jYWxsYmFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBtYXJrRmFpbGVkRXJyb3JCb3VuZGFyeUZvckhvdFJlbG9hZGluZyhmaWJlcik7XG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICBlcnJvckluZm8uc291cmNlLFxuICAgICAgICAgICAgbG9nQ2F1Z2h0RXJyb3IsXG4gICAgICAgICAgICByb290LFxuICAgICAgICAgICAgZmliZXIsXG4gICAgICAgICAgICBlcnJvckluZm9cbiAgICAgICAgICApO1xuICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIGdldERlcml2ZWRTdGF0ZUZyb21FcnJvciAmJlxuICAgICAgICAgICAgKG51bGwgPT09IGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkXG4gICAgICAgICAgICAgID8gKGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkID0gbmV3IFNldChbdGhpc10pKVxuICAgICAgICAgICAgICA6IGxlZ2FjeUVycm9yQm91bmRhcmllc1RoYXRBbHJlYWR5RmFpbGVkLmFkZCh0aGlzKSk7XG4gICAgICAgICAgY2FsbENvbXBvbmVudERpZENhdGNoSW5ERVYodGhpcywgZXJyb3JJbmZvKTtcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgfHxcbiAgICAgICAgICAgICgwID09PSAoZmliZXIubGFuZXMgJiAyKSAmJlxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiJXM6IEVycm9yIGJvdW5kYXJpZXMgc2hvdWxkIGltcGxlbWVudCBnZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IoKS4gSW4gdGhhdCBtZXRob2QsIHJldHVybiBhIHN0YXRlIHVwZGF0ZSB0byBkaXNwbGF5IGFuIGVycm9yIG1lc3NhZ2Ugb3IgZmFsbGJhY2sgVUkuXCIsXG4gICAgICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgXCJVbmtub3duXCJcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiB0aHJvd0V4Y2VwdGlvbihcbiAgICAgIHJvb3QsXG4gICAgICByZXR1cm5GaWJlcixcbiAgICAgIHNvdXJjZUZpYmVyLFxuICAgICAgdmFsdWUsXG4gICAgICByb290UmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIHNvdXJjZUZpYmVyLmZsYWdzIHw9IDMyNzY4O1xuICAgICAgaXNEZXZUb29sc1ByZXNlbnQgJiYgcmVzdG9yZVBlbmRpbmdVcGRhdGVycyhyb290LCByb290UmVuZGVyTGFuZXMpO1xuICAgICAgaWYgKFxuICAgICAgICBudWxsICE9PSB2YWx1ZSAmJlxuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdmFsdWUudGhlblxuICAgICAgKSB7XG4gICAgICAgIHJldHVybkZpYmVyID0gc291cmNlRmliZXIuYWx0ZXJuYXRlO1xuICAgICAgICBudWxsICE9PSByZXR1cm5GaWJlciAmJlxuICAgICAgICAgIHByb3BhZ2F0ZVBhcmVudENvbnRleHRDaGFuZ2VzKFxuICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICBzb3VyY2VGaWJlcixcbiAgICAgICAgICAgIHJvb3RSZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICEwXG4gICAgICAgICAgKTtcbiAgICAgICAgaXNIeWRyYXRpbmcgJiYgKGRpZFN1c3BlbmRPckVycm9yREVWID0gITApO1xuICAgICAgICBzb3VyY2VGaWJlciA9IHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gICAgICAgIGlmIChudWxsICE9PSBzb3VyY2VGaWJlcikge1xuICAgICAgICAgIHN3aXRjaCAoc291cmNlRmliZXIudGFnKSB7XG4gICAgICAgICAgICBjYXNlIDMxOlxuICAgICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBudWxsID09PSBzaGVsbEJvdW5kYXJ5XG4gICAgICAgICAgICAgICAgICA/IHJlbmRlckRpZFN1c3BlbmREZWxheUlmUG9zc2libGUoKVxuICAgICAgICAgICAgICAgICAgOiBudWxsID09PSBzb3VyY2VGaWJlci5hbHRlcm5hdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdEluUHJvZ3Jlc3MgJiZcbiAgICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkKSxcbiAgICAgICAgICAgICAgICAoc291cmNlRmliZXIuZmxhZ3MgJj0gLTI1NyksXG4gICAgICAgICAgICAgICAgKHNvdXJjZUZpYmVyLmZsYWdzIHw9IDY1NTM2KSxcbiAgICAgICAgICAgICAgICAoc291cmNlRmliZXIubGFuZXMgPSByb290UmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgICAgIHZhbHVlID09PSBub29wU3VzcGVuc2V5Q29tbWl0VGhlbmFibGVcbiAgICAgICAgICAgICAgICAgID8gKHNvdXJjZUZpYmVyLmZsYWdzIHw9IDE2Mzg0KVxuICAgICAgICAgICAgICAgICAgOiAoKHJldHVybkZpYmVyID0gc291cmNlRmliZXIudXBkYXRlUXVldWUpLFxuICAgICAgICAgICAgICAgICAgICBudWxsID09PSByZXR1cm5GaWJlclxuICAgICAgICAgICAgICAgICAgICAgID8gKHNvdXJjZUZpYmVyLnVwZGF0ZVF1ZXVlID0gbmV3IFNldChbdmFsdWVdKSlcbiAgICAgICAgICAgICAgICAgICAgICA6IHJldHVybkZpYmVyLmFkZCh2YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290LCB2YWx1ZSwgcm9vdFJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKHNvdXJjZUZpYmVyLmZsYWdzIHw9IDY1NTM2KSxcbiAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gbm9vcFN1c3BlbnNleUNvbW1pdFRoZW5hYmxlXG4gICAgICAgICAgICAgICAgICA/IChzb3VyY2VGaWJlci5mbGFncyB8PSAxNjM4NClcbiAgICAgICAgICAgICAgICAgIDogKChyZXR1cm5GaWJlciA9IHNvdXJjZUZpYmVyLnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gcmV0dXJuRmliZXJcbiAgICAgICAgICAgICAgICAgICAgICA/ICgocmV0dXJuRmliZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrZXJJbnN0YW5jZXM6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJldHJ5UXVldWU6IG5ldyBTZXQoW3ZhbHVlXSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgKHNvdXJjZUZpYmVyLnVwZGF0ZVF1ZXVlID0gcmV0dXJuRmliZXIpKVxuICAgICAgICAgICAgICAgICAgICAgIDogKChzb3VyY2VGaWJlciA9IHJldHVybkZpYmVyLnJldHJ5UXVldWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gc291cmNlRmliZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyAocmV0dXJuRmliZXIucmV0cnlRdWV1ZSA9IG5ldyBTZXQoW3ZhbHVlXSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogc291cmNlRmliZXIuYWRkKHZhbHVlKSksXG4gICAgICAgICAgICAgICAgICAgIGF0dGFjaFBpbmdMaXN0ZW5lcihyb290LCB2YWx1ZSwgcm9vdFJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIlVuZXhwZWN0ZWQgU3VzcGVuc2UgaGFuZGxlciB0YWcgKFwiICtcbiAgICAgICAgICAgICAgc291cmNlRmliZXIudGFnICtcbiAgICAgICAgICAgICAgXCIpLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBhdHRhY2hQaW5nTGlzdGVuZXIocm9vdCwgdmFsdWUsIHJvb3RSZW5kZXJMYW5lcyk7XG4gICAgICAgIHJlbmRlckRpZFN1c3BlbmREZWxheUlmUG9zc2libGUoKTtcbiAgICAgICAgcmV0dXJuICExO1xuICAgICAgfVxuICAgICAgaWYgKGlzSHlkcmF0aW5nKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChkaWRTdXNwZW5kT3JFcnJvckRFViA9ICEwKSxcbiAgICAgICAgICAocmV0dXJuRmliZXIgPSBzdXNwZW5zZUhhbmRsZXJTdGFja0N1cnNvci5jdXJyZW50KSxcbiAgICAgICAgICBudWxsICE9PSByZXR1cm5GaWJlclxuICAgICAgICAgICAgPyAoMCA9PT0gKHJldHVybkZpYmVyLmZsYWdzICYgNjU1MzYpICYmIChyZXR1cm5GaWJlci5mbGFncyB8PSAyNTYpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIuZmxhZ3MgfD0gNjU1MzYpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIubGFuZXMgPSByb290UmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgICB2YWx1ZSAhPT0gSHlkcmF0aW9uTWlzbWF0Y2hFeGNlcHRpb24gJiZcbiAgICAgICAgICAgICAgICBxdWV1ZUh5ZHJhdGlvbkVycm9yKFxuICAgICAgICAgICAgICAgICAgY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIoXG4gICAgICAgICAgICAgICAgICAgIEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIFwiVGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIGh5ZHJhdGluZyBidXQgUmVhY3Qgd2FzIGFibGUgdG8gcmVjb3ZlciBieSBpbnN0ZWFkIGNsaWVudCByZW5kZXJpbmcgZnJvbSB0aGUgbmVhcmVzdCBTdXNwZW5zZSBib3VuZGFyeS5cIixcbiAgICAgICAgICAgICAgICAgICAgICB7IGNhdXNlOiB2YWx1ZSB9XG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZUZpYmVyXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgIDogKHZhbHVlICE9PSBIeWRyYXRpb25NaXNtYXRjaEV4Y2VwdGlvbiAmJlxuICAgICAgICAgICAgICAgIHF1ZXVlSHlkcmF0aW9uRXJyb3IoXG4gICAgICAgICAgICAgICAgICBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcihcbiAgICAgICAgICAgICAgICAgICAgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJUaGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgaHlkcmF0aW5nIGJ1dCBSZWFjdCB3YXMgYWJsZSB0byByZWNvdmVyIGJ5IGluc3RlYWQgY2xpZW50IHJlbmRlcmluZyB0aGUgZW50aXJlIHJvb3QuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgeyBjYXVzZTogdmFsdWUgfVxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICBzb3VyY2VGaWJlclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIChyb290ID0gcm9vdC5jdXJyZW50LmFsdGVybmF0ZSksXG4gICAgICAgICAgICAgIChyb290LmZsYWdzIHw9IDY1NTM2KSxcbiAgICAgICAgICAgICAgKHJvb3RSZW5kZXJMYW5lcyAmPSAtcm9vdFJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgICAgKHJvb3QubGFuZXMgfD0gcm9vdFJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgICAgKHZhbHVlID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIodmFsdWUsIHNvdXJjZUZpYmVyKSksXG4gICAgICAgICAgICAgIChyb290UmVuZGVyTGFuZXMgPSBjcmVhdGVSb290RXJyb3JVcGRhdGUoXG4gICAgICAgICAgICAgICAgcm9vdC5zdGF0ZU5vZGUsXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgcm9vdFJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUocm9vdCwgcm9vdFJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyAhPT0gUm9vdFN1c3BlbmRlZFdpdGhEZWxheSAmJlxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEVycm9yZWQpKSxcbiAgICAgICAgICAhMVxuICAgICAgICApO1xuICAgICAgdmFyIGVycm9yID0gY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIoXG4gICAgICAgIEVycm9yKFxuICAgICAgICAgIFwiVGhlcmUgd2FzIGFuIGVycm9yIGR1cmluZyBjb25jdXJyZW50IHJlbmRlcmluZyBidXQgUmVhY3Qgd2FzIGFibGUgdG8gcmVjb3ZlciBieSBpbnN0ZWFkIHN5bmNocm9ub3VzbHkgcmVuZGVyaW5nIHRoZSBlbnRpcmUgcm9vdC5cIixcbiAgICAgICAgICB7IGNhdXNlOiB2YWx1ZSB9XG4gICAgICAgICksXG4gICAgICAgIHNvdXJjZUZpYmVyXG4gICAgICApO1xuICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NSb290Q29uY3VycmVudEVycm9yc1xuICAgICAgICA/ICh3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzID0gW2Vycm9yXSlcbiAgICAgICAgOiB3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyAhPT0gUm9vdFN1c3BlbmRlZFdpdGhEZWxheSAmJlxuICAgICAgICAod29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RFcnJvcmVkKTtcbiAgICAgIGlmIChudWxsID09PSByZXR1cm5GaWJlcikgcmV0dXJuICEwO1xuICAgICAgdmFsdWUgPSBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcih2YWx1ZSwgc291cmNlRmliZXIpO1xuICAgICAgc291cmNlRmliZXIgPSByZXR1cm5GaWJlcjtcbiAgICAgIGRvIHtcbiAgICAgICAgc3dpdGNoIChzb3VyY2VGaWJlci50YWcpIHtcbiAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoc291cmNlRmliZXIuZmxhZ3MgfD0gNjU1MzYpLFxuICAgICAgICAgICAgICAocm9vdCA9IHJvb3RSZW5kZXJMYW5lcyAmIC1yb290UmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgICAoc291cmNlRmliZXIubGFuZXMgfD0gcm9vdCksXG4gICAgICAgICAgICAgIChyb290ID0gY3JlYXRlUm9vdEVycm9yVXBkYXRlKFxuICAgICAgICAgICAgICAgIHNvdXJjZUZpYmVyLnN0YXRlTm9kZSxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICByb290XG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUoc291cmNlRmliZXIsIHJvb3QpLFxuICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICgocmV0dXJuRmliZXIgPSBzb3VyY2VGaWJlci50eXBlKSxcbiAgICAgICAgICAgICAgKGVycm9yID0gc291cmNlRmliZXIuc3RhdGVOb2RlKSxcbiAgICAgICAgICAgICAgMCA9PT0gKHNvdXJjZUZpYmVyLmZsYWdzICYgMTI4KSAmJlxuICAgICAgICAgICAgICAgIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZXR1cm5GaWJlci5nZXREZXJpdmVkU3RhdGVGcm9tRXJyb3IgfHxcbiAgICAgICAgICAgICAgICAgIChudWxsICE9PSBlcnJvciAmJlxuICAgICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBlcnJvci5jb21wb25lbnREaWRDYXRjaCAmJlxuICAgICAgICAgICAgICAgICAgICAobnVsbCA9PT0gbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgfHxcbiAgICAgICAgICAgICAgICAgICAgICAhbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQuaGFzKGVycm9yKSkpKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAoc291cmNlRmliZXIuZmxhZ3MgfD0gNjU1MzYpLFxuICAgICAgICAgICAgICAgIChyb290UmVuZGVyTGFuZXMgJj0gLXJvb3RSZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgICAgKHNvdXJjZUZpYmVyLmxhbmVzIHw9IHJvb3RSZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgICAgKHJvb3RSZW5kZXJMYW5lcyA9IGNyZWF0ZUNsYXNzRXJyb3JVcGRhdGUocm9vdFJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAgICAgaW5pdGlhbGl6ZUNsYXNzRXJyb3JVcGRhdGUoXG4gICAgICAgICAgICAgICAgICByb290UmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgICByb290LFxuICAgICAgICAgICAgICAgICAgc291cmNlRmliZXIsXG4gICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZW5xdWV1ZUNhcHR1cmVkVXBkYXRlKHNvdXJjZUZpYmVyLCByb290UmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgICAgICExXG4gICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgc291cmNlRmliZXIgPSBzb3VyY2VGaWJlci5yZXR1cm47XG4gICAgICB9IHdoaWxlIChudWxsICE9PSBzb3VyY2VGaWJlcik7XG4gICAgICByZXR1cm4gITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY29uY2lsZUNoaWxkcmVuKFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgbmV4dENoaWxkcmVuLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID1cbiAgICAgICAgbnVsbCA9PT0gY3VycmVudFxuICAgICAgICAgID8gbW91bnRDaGlsZEZpYmVycyh3b3JrSW5Qcm9ncmVzcywgbnVsbCwgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcylcbiAgICAgICAgICA6IHJlY29uY2lsZUNoaWxkRmliZXJzKFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgY3VycmVudC5jaGlsZCxcbiAgICAgICAgICAgICAgbmV4dENoaWxkcmVuLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlRm9yd2FyZFJlZihcbiAgICAgIGN1cnJlbnQsXG4gICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIG5leHRQcm9wcyxcbiAgICAgIHJlbmRlckxhbmVzXG4gICAgKSB7XG4gICAgICBDb21wb25lbnQgPSBDb21wb25lbnQucmVuZGVyO1xuICAgICAgdmFyIHJlZiA9IHdvcmtJblByb2dyZXNzLnJlZjtcbiAgICAgIGlmIChcInJlZlwiIGluIG5leHRQcm9wcykge1xuICAgICAgICB2YXIgcHJvcHNXaXRob3V0UmVmID0ge307XG4gICAgICAgIGZvciAodmFyIGtleSBpbiBuZXh0UHJvcHMpXG4gICAgICAgICAgXCJyZWZcIiAhPT0ga2V5ICYmIChwcm9wc1dpdGhvdXRSZWZba2V5XSA9IG5leHRQcm9wc1trZXldKTtcbiAgICAgIH0gZWxzZSBwcm9wc1dpdGhvdXRSZWYgPSBuZXh0UHJvcHM7XG4gICAgICBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBuZXh0UHJvcHMgPSByZW5kZXJXaXRoSG9va3MoXG4gICAgICAgIGN1cnJlbnQsXG4gICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICBDb21wb25lbnQsXG4gICAgICAgIHByb3BzV2l0aG91dFJlZixcbiAgICAgICAgcmVmLFxuICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgKTtcbiAgICAgIGtleSA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7XG4gICAgICBpZiAobnVsbCAhPT0gY3VycmVudCAmJiAhZGlkUmVjZWl2ZVVwZGF0ZSlcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBiYWlsb3V0SG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSxcbiAgICAgICAgICBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcylcbiAgICAgICAgKTtcbiAgICAgIGlzSHlkcmF0aW5nICYmIGtleSAmJiBwdXNoTWF0ZXJpYWxpemVkVHJlZUlkKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDE7XG4gICAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dFByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZU1lbW9Db21wb25lbnQoXG4gICAgICBjdXJyZW50LFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICBDb21wb25lbnQsXG4gICAgICBuZXh0UHJvcHMsXG4gICAgICByZW5kZXJMYW5lc1xuICAgICkge1xuICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpIHtcbiAgICAgICAgdmFyIHR5cGUgPSBDb21wb25lbnQudHlwZTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgICAhc2hvdWxkQ29uc3RydWN0KHR5cGUpICYmXG4gICAgICAgICAgdm9pZCAwID09PSB0eXBlLmRlZmF1bHRQcm9wcyAmJlxuICAgICAgICAgIG51bGwgPT09IENvbXBvbmVudC5jb21wYXJlXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKENvbXBvbmVudCA9IHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyh0eXBlKSksXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MudGFnID0gMTUpLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLnR5cGUgPSBDb21wb25lbnQpLFxuICAgICAgICAgICAgdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCB0eXBlKSxcbiAgICAgICAgICAgIHVwZGF0ZVNpbXBsZU1lbW9Db21wb25lbnQoXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICBjdXJyZW50ID0gY3JlYXRlRmliZXJGcm9tVHlwZUFuZFByb3BzKFxuICAgICAgICAgIENvbXBvbmVudC50eXBlLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLm1vZGUsXG4gICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgKTtcbiAgICAgICAgY3VycmVudC5yZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG4gICAgICAgIGN1cnJlbnQucmV0dXJuID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICAgIHJldHVybiAod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjdXJyZW50KTtcbiAgICAgIH1cbiAgICAgIHR5cGUgPSBjdXJyZW50LmNoaWxkO1xuICAgICAgaWYgKCFjaGVja1NjaGVkdWxlZFVwZGF0ZU9yQ29udGV4dChjdXJyZW50LCByZW5kZXJMYW5lcykpIHtcbiAgICAgICAgdmFyIHByZXZQcm9wcyA9IHR5cGUubWVtb2l6ZWRQcm9wcztcbiAgICAgICAgQ29tcG9uZW50ID0gQ29tcG9uZW50LmNvbXBhcmU7XG4gICAgICAgIENvbXBvbmVudCA9IG51bGwgIT09IENvbXBvbmVudCA/IENvbXBvbmVudCA6IHNoYWxsb3dFcXVhbDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIENvbXBvbmVudChwcmV2UHJvcHMsIG5leHRQcm9wcykgJiZcbiAgICAgICAgICBjdXJyZW50LnJlZiA9PT0gd29ya0luUHJvZ3Jlc3MucmVmXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhcbiAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDE7XG4gICAgICBjdXJyZW50ID0gY3JlYXRlV29ya0luUHJvZ3Jlc3ModHlwZSwgbmV4dFByb3BzKTtcbiAgICAgIGN1cnJlbnQucmVmID0gd29ya0luUHJvZ3Jlc3MucmVmO1xuICAgICAgY3VycmVudC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIHJldHVybiAod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBjdXJyZW50KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlU2ltcGxlTWVtb0NvbXBvbmVudChcbiAgICAgIGN1cnJlbnQsXG4gICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIG5leHRQcm9wcyxcbiAgICAgIHJlbmRlckxhbmVzXG4gICAgKSB7XG4gICAgICBpZiAobnVsbCAhPT0gY3VycmVudCkge1xuICAgICAgICB2YXIgcHJldlByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc2hhbGxvd0VxdWFsKHByZXZQcm9wcywgbmV4dFByb3BzKSAmJlxuICAgICAgICAgIGN1cnJlbnQucmVmID09PSB3b3JrSW5Qcm9ncmVzcy5yZWYgJiZcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlID09PSBjdXJyZW50LnR5cGVcbiAgICAgICAgKVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICgoZGlkUmVjZWl2ZVVwZGF0ZSA9ICExKSxcbiAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMgPSBuZXh0UHJvcHMgPSBwcmV2UHJvcHMpLFxuICAgICAgICAgICAgY2hlY2tTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQoY3VycmVudCwgcmVuZGVyTGFuZXMpKVxuICAgICAgICAgIClcbiAgICAgICAgICAgIDAgIT09IChjdXJyZW50LmZsYWdzICYgMTMxMDcyKSAmJiAoZGlkUmVjZWl2ZVVwZGF0ZSA9ICEwKTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubGFuZXMgPSBjdXJyZW50LmxhbmVzKSxcbiAgICAgICAgICAgICAgYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpXG4gICAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVwZGF0ZUZ1bmN0aW9uQ29tcG9uZW50KFxuICAgICAgICBjdXJyZW50LFxuICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgIHJlbmRlckxhbmVzXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVPZmZzY3JlZW5Db21wb25lbnQoXG4gICAgICBjdXJyZW50LFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICByZW5kZXJMYW5lcyxcbiAgICAgIG5leHRQcm9wc1xuICAgICkge1xuICAgICAgdmFyIG5leHRDaGlsZHJlbiA9IG5leHRQcm9wcy5jaGlsZHJlbixcbiAgICAgICAgcHJldlN0YXRlID0gbnVsbCAhPT0gY3VycmVudCA/IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSA6IG51bGw7XG4gICAgICBudWxsID09PSBjdXJyZW50ICYmXG4gICAgICAgIG51bGwgPT09IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSAmJlxuICAgICAgICAod29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0ge1xuICAgICAgICAgIF92aXNpYmlsaXR5OiBPZmZzY3JlZW5WaXNpYmxlLFxuICAgICAgICAgIF9wZW5kaW5nTWFya2VyczogbnVsbCxcbiAgICAgICAgICBfcmV0cnlDYWNoZTogbnVsbCxcbiAgICAgICAgICBfdHJhbnNpdGlvbnM6IG51bGxcbiAgICAgICAgfSk7XG4gICAgICBpZiAoXCJoaWRkZW5cIiA9PT0gbmV4dFByb3BzLm1vZGUpIHtcbiAgICAgICAgaWYgKDAgIT09ICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDEyOCkpIHtcbiAgICAgICAgICBwcmV2U3RhdGUgPVxuICAgICAgICAgICAgbnVsbCAhPT0gcHJldlN0YXRlXG4gICAgICAgICAgICAgID8gcHJldlN0YXRlLmJhc2VMYW5lcyB8IHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgIDogcmVuZGVyTGFuZXM7XG4gICAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQpIHtcbiAgICAgICAgICAgIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLmNoaWxkID0gY3VycmVudC5jaGlsZDtcbiAgICAgICAgICAgIGZvciAobmV4dENoaWxkcmVuID0gMDsgbnVsbCAhPT0gbmV4dFByb3BzOyApXG4gICAgICAgICAgICAgIChuZXh0Q2hpbGRyZW4gPVxuICAgICAgICAgICAgICAgIG5leHRDaGlsZHJlbiB8IG5leHRQcm9wcy5sYW5lcyB8IG5leHRQcm9wcy5jaGlsZExhbmVzKSxcbiAgICAgICAgICAgICAgICAobmV4dFByb3BzID0gbmV4dFByb3BzLnNpYmxpbmcpO1xuICAgICAgICAgICAgbmV4dFByb3BzID0gbmV4dENoaWxkcmVuICYgfnByZXZTdGF0ZTtcbiAgICAgICAgICB9IGVsc2UgKG5leHRQcm9wcyA9IDApLCAod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBudWxsKTtcbiAgICAgICAgICByZXR1cm4gZGVmZXJIaWRkZW5PZmZzY3JlZW5Db21wb25lbnQoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICBwcmV2U3RhdGUsXG4gICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgIG5leHRQcm9wc1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKDAgIT09IChyZW5kZXJMYW5lcyAmIDUzNjg3MDkxMikpXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSB7IGJhc2VMYW5lczogMCwgY2FjaGVQb29sOiBudWxsIH0pLFxuICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgICAgICBwdXNoVHJhbnNpdGlvbihcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICBudWxsICE9PSBwcmV2U3RhdGUgPyBwcmV2U3RhdGUuY2FjaGVQb29sIDogbnVsbFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgbnVsbCAhPT0gcHJldlN0YXRlXG4gICAgICAgICAgICAgID8gcHVzaEhpZGRlbkNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHByZXZTdGF0ZSlcbiAgICAgICAgICAgICAgOiByZXVzZUhpZGRlbkNvbnRleHRPblN0YWNrKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIHB1c2hPZmZzY3JlZW5TdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChuZXh0UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IDUzNjg3MDkxMiksXG4gICAgICAgICAgICBkZWZlckhpZGRlbk9mZnNjcmVlbkNvbXBvbmVudChcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIG51bGwgIT09IHByZXZTdGF0ZVxuICAgICAgICAgICAgICAgID8gcHJldlN0YXRlLmJhc2VMYW5lcyB8IHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgOiByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgIG5leHRQcm9wc1xuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgbnVsbCAhPT0gcHJldlN0YXRlXG4gICAgICAgICAgPyAocHVzaFRyYW5zaXRpb24od29ya0luUHJvZ3Jlc3MsIHByZXZTdGF0ZS5jYWNoZVBvb2wpLFxuICAgICAgICAgICAgcHVzaEhpZGRlbkNvbnRleHQod29ya0luUHJvZ3Jlc3MsIHByZXZTdGF0ZSksXG4gICAgICAgICAgICByZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2sod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsKSlcbiAgICAgICAgICA6IChudWxsICE9PSBjdXJyZW50ICYmIHB1c2hUcmFuc2l0aW9uKHdvcmtJblByb2dyZXNzLCBudWxsKSxcbiAgICAgICAgICAgIHJldXNlSGlkZGVuQ29udGV4dE9uU3RhY2sod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgcmV1c2VTdXNwZW5zZUhhbmRsZXJPblN0YWNrKHdvcmtJblByb2dyZXNzKSk7XG4gICAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dENoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGJhaWxvdXRPZmZzY3JlZW5Db21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgIChudWxsICE9PSBjdXJyZW50ICYmIDIyID09PSBjdXJyZW50LnRhZykgfHxcbiAgICAgICAgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlIHx8XG4gICAgICAgICh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSB7XG4gICAgICAgICAgX3Zpc2liaWxpdHk6IE9mZnNjcmVlblZpc2libGUsXG4gICAgICAgICAgX3BlbmRpbmdNYXJrZXJzOiBudWxsLFxuICAgICAgICAgIF9yZXRyeUNhY2hlOiBudWxsLFxuICAgICAgICAgIF90cmFuc2l0aW9uczogbnVsbFxuICAgICAgICB9KTtcbiAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5zaWJsaW5nO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWZlckhpZGRlbk9mZnNjcmVlbkNvbXBvbmVudChcbiAgICAgIGN1cnJlbnQsXG4gICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgIG5leHRCYXNlTGFuZXMsXG4gICAgICByZW5kZXJMYW5lcyxcbiAgICAgIHJlbWFpbmluZ0NoaWxkTGFuZXNcbiAgICApIHtcbiAgICAgIHZhciBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBwZWVrQ2FjaGVGcm9tUG9vbCgpO1xuICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID1cbiAgICAgICAgbnVsbCA9PT0gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0XG4gICAgICAgICAgPyBudWxsXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIHBhcmVudDogQ2FjaGVDb250ZXh0Ll9jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgIHBvb2w6IEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdFxuICAgICAgICAgICAgfTtcbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSB7XG4gICAgICAgIGJhc2VMYW5lczogbmV4dEJhc2VMYW5lcyxcbiAgICAgICAgY2FjaGVQb29sOiBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHRcbiAgICAgIH07XG4gICAgICBudWxsICE9PSBjdXJyZW50ICYmIHB1c2hUcmFuc2l0aW9uKHdvcmtJblByb2dyZXNzLCBudWxsKTtcbiAgICAgIHJldXNlSGlkZGVuQ29udGV4dE9uU3RhY2sod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgcHVzaE9mZnNjcmVlblN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgIHByb3BhZ2F0ZVBhcmVudENvbnRleHRDaGFuZ2VzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcywgITApO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcyA9IHJlbWFpbmluZ0NoaWxkTGFuZXM7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRBY3Rpdml0eUNoaWxkcmVuKHdvcmtJblByb2dyZXNzLCBuZXh0UHJvcHMpIHtcbiAgICAgIHZhciBoaWRkZW5Qcm9wID0gbmV4dFByb3BzLmhpZGRlbjtcbiAgICAgIHZvaWQgMCAhPT0gaGlkZGVuUHJvcCAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICc8QWN0aXZpdHk+IGRvZXNuXFwndCBhY2NlcHQgYSBoaWRkZW4gcHJvcC4gVXNlIG1vZGU9XCJoaWRkZW5cIiBpbnN0ZWFkLlxcbi0gPEFjdGl2aXR5ICVzPlxcbisgPEFjdGl2aXR5ICVzPicsXG4gICAgICAgICAgITAgPT09IGhpZGRlblByb3BcbiAgICAgICAgICAgID8gXCJoaWRkZW5cIlxuICAgICAgICAgICAgOiAhMSA9PT0gaGlkZGVuUHJvcFxuICAgICAgICAgICAgICA/IFwiaGlkZGVuPXtmYWxzZX1cIlxuICAgICAgICAgICAgICA6IFwiaGlkZGVuPXsuLi59XCIsXG4gICAgICAgICAgaGlkZGVuUHJvcCA/ICdtb2RlPVwiaGlkZGVuXCInIDogJ21vZGU9XCJ2aXNpYmxlXCInXG4gICAgICAgICk7XG4gICAgICBuZXh0UHJvcHMgPSBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIoXG4gICAgICAgIHsgbW9kZTogbmV4dFByb3BzLm1vZGUsIGNoaWxkcmVuOiBuZXh0UHJvcHMuY2hpbGRyZW4gfSxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MubW9kZVxuICAgICAgKTtcbiAgICAgIG5leHRQcm9wcy5yZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG5leHRQcm9wcztcbiAgICAgIG5leHRQcm9wcy5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIHJldHVybiBuZXh0UHJvcHM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJldHJ5QWN0aXZpdHlDb21wb25lbnRXaXRob3V0SHlkcmF0aW5nKFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIHJlY29uY2lsZUNoaWxkRmliZXJzKHdvcmtJblByb2dyZXNzLCBjdXJyZW50LmNoaWxkLCBudWxsLCByZW5kZXJMYW5lcyk7XG4gICAgICBjdXJyZW50ID0gbW91bnRBY3Rpdml0eUNoaWxkcmVuKFxuICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzXG4gICAgICApO1xuICAgICAgY3VycmVudC5mbGFncyB8PSAyO1xuICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZUFjdGl2aXR5Q29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICAgICAgdmFyIG5leHRQcm9wcyA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgZGlkU3VzcGVuZCA9IDAgIT09ICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDEyOCk7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmPSAtMTI5O1xuICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpIHtcbiAgICAgICAgaWYgKGlzSHlkcmF0aW5nKSB7XG4gICAgICAgICAgaWYgKFwiaGlkZGVuXCIgPT09IG5leHRQcm9wcy5tb2RlKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGN1cnJlbnQgPSBtb3VudEFjdGl2aXR5Q2hpbGRyZW4od29ya0luUHJvZ3Jlc3MsIG5leHRQcm9wcykpLFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubGFuZXMgPSA1MzY4NzA5MTIpLFxuICAgICAgICAgICAgICBiYWlsb3V0T2Zmc2NyZWVuQ29tcG9uZW50KG51bGwsIGN1cnJlbnQpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHB1c2hEZWh5ZHJhdGVkQWN0aXZpdHlTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIChjdXJyZW50ID0gbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSlcbiAgICAgICAgICAgID8gKChyZW5kZXJMYW5lcyA9IGNhbkh5ZHJhdGVIeWRyYXRpb25Cb3VuZGFyeShcbiAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgIHJvb3RPclNpbmdsZXRvbkNvbnRleHRcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9XG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gcmVuZGVyTGFuZXMgJiYgcmVuZGVyTGFuZXMuZGF0YSA9PT0gQUNUSVZJVFlfU1RBUlRfREFUQVxuICAgICAgICAgICAgICAgICAgPyByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICAgOiBudWxsKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gcmVuZGVyTGFuZXMgJiZcbiAgICAgICAgICAgICAgICAoKG5leHRQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICAgIGRlaHlkcmF0ZWQ6IHJlbmRlckxhbmVzLFxuICAgICAgICAgICAgICAgICAgdHJlZUNvbnRleHQ6IGdldFN1c3BlbmRlZFRyZWVDb250ZXh0KCksXG4gICAgICAgICAgICAgICAgICByZXRyeUxhbmU6IDUzNjg3MDkxMixcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGlvbkVycm9yczogbnVsbFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbmV4dFByb3BzKSxcbiAgICAgICAgICAgICAgICAobmV4dFByb3BzID0gY3JlYXRlRmliZXJGcm9tRGVoeWRyYXRlZEZyYWdtZW50KHJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAgICAgKG5leHRQcm9wcy5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gbmV4dFByb3BzKSxcbiAgICAgICAgICAgICAgICAoaHlkcmF0aW9uUGFyZW50RmliZXIgPSB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgKG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBudWxsKSkpXG4gICAgICAgICAgICA6IChyZW5kZXJMYW5lcyA9IG51bGwpO1xuICAgICAgICAgIGlmIChudWxsID09PSByZW5kZXJMYW5lcylcbiAgICAgICAgICAgIHRocm93IChcbiAgICAgICAgICAgICAgKHdhcm5Ob25IeWRyYXRlZEluc3RhbmNlKHdvcmtJblByb2dyZXNzLCBjdXJyZW50KSxcbiAgICAgICAgICAgICAgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKHdvcmtJblByb2dyZXNzKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgPSA1MzY4NzA5MTI7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vdW50QWN0aXZpdHlDaGlsZHJlbih3b3JrSW5Qcm9ncmVzcywgbmV4dFByb3BzKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcmV2U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgICBpZiAobnVsbCAhPT0gcHJldlN0YXRlKSB7XG4gICAgICAgIHZhciBhY3Rpdml0eUluc3RhbmNlID0gcHJldlN0YXRlLmRlaHlkcmF0ZWQ7XG4gICAgICAgIHB1c2hEZWh5ZHJhdGVkQWN0aXZpdHlTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICBpZiAoZGlkU3VzcGVuZClcbiAgICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiAyNTYpXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gLTI1NyksXG4gICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcyA9IHJldHJ5QWN0aXZpdHlDb21wb25lbnRXaXRob3V0SHlkcmF0aW5nKFxuICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgZWxzZSBpZiAobnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSlcbiAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQuY2hpbGQpLFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTI4KSxcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzID0gbnVsbCk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgIFwiQ2xpZW50IHJlbmRlcmluZyBhbiBBY3Rpdml0eSBzdXNwZW5kZWQgaXQgYWdhaW4uIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgICh3YXJuSWZIeWRyYXRpbmcoKSxcbiAgICAgICAgICAwICE9PSAocmVuZGVyTGFuZXMgJiA1MzY4NzA5MTIpICYmXG4gICAgICAgICAgICBtYXJrUmVuZGVyRGVyaXZlZENhdXNlKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICBkaWRSZWNlaXZlVXBkYXRlIHx8XG4gICAgICAgICAgICBwcm9wYWdhdGVQYXJlbnRDb250ZXh0Q2hhbmdlcyhcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAoZGlkU3VzcGVuZCA9IDAgIT09IChyZW5kZXJMYW5lcyAmIGN1cnJlbnQuY2hpbGRMYW5lcykpLFxuICAgICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgfHwgZGlkU3VzcGVuZClcbiAgICAgICAgKSB7XG4gICAgICAgICAgbmV4dFByb3BzID0gd29ya0luUHJvZ3Jlc3NSb290O1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG51bGwgIT09IG5leHRQcm9wcyAmJlxuICAgICAgICAgICAgKChhY3Rpdml0eUluc3RhbmNlID0gZ2V0QnVtcGVkTGFuZUZvckh5ZHJhdGlvbihcbiAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAwICE9PSBhY3Rpdml0eUluc3RhbmNlICYmIGFjdGl2aXR5SW5zdGFuY2UgIT09IHByZXZTdGF0ZS5yZXRyeUxhbmUpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgdGhyb3cgKFxuICAgICAgICAgICAgICAoKHByZXZTdGF0ZS5yZXRyeUxhbmUgPSBhY3Rpdml0eUluc3RhbmNlKSxcbiAgICAgICAgICAgICAgZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGN1cnJlbnQsIGFjdGl2aXR5SW5zdGFuY2UpLFxuICAgICAgICAgICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIobmV4dFByb3BzLCBjdXJyZW50LCBhY3Rpdml0eUluc3RhbmNlKSxcbiAgICAgICAgICAgICAgU2VsZWN0aXZlSHlkcmF0aW9uRXhjZXB0aW9uKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICByZW5kZXJEaWRTdXNwZW5kRGVsYXlJZlBvc3NpYmxlKCk7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSByZXRyeUFjdGl2aXR5Q29tcG9uZW50V2l0aG91dEh5ZHJhdGluZyhcbiAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgKGN1cnJlbnQgPSBwcmV2U3RhdGUudHJlZUNvbnRleHQpLFxuICAgICAgICAgICAgKG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZShcbiAgICAgICAgICAgICAgYWN0aXZpdHlJbnN0YW5jZS5uZXh0U2libGluZ1xuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAoaHlkcmF0aW9uUGFyZW50RmliZXIgPSB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAoaXNIeWRyYXRpbmcgPSAhMCksXG4gICAgICAgICAgICAoaHlkcmF0aW9uRXJyb3JzID0gbnVsbCksXG4gICAgICAgICAgICAoZGlkU3VzcGVuZE9yRXJyb3JERVYgPSAhMSksXG4gICAgICAgICAgICAoaHlkcmF0aW9uRGlmZlJvb3RERVYgPSBudWxsKSxcbiAgICAgICAgICAgIChyb290T3JTaW5nbGV0b25Db250ZXh0ID0gITEpLFxuICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgICAgICByZXN0b3JlU3VzcGVuZGVkVHJlZUNvbnRleHQod29ya0luUHJvZ3Jlc3MsIGN1cnJlbnQpLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzID0gbW91bnRBY3Rpdml0eUNoaWxkcmVuKHdvcmtJblByb2dyZXNzLCBuZXh0UHJvcHMpKSxcbiAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA0MDk2KTtcbiAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzO1xuICAgICAgfVxuICAgICAgcHJldlN0YXRlID0gY3VycmVudC5jaGlsZDtcbiAgICAgIG5leHRQcm9wcyA9IHsgbW9kZTogbmV4dFByb3BzLm1vZGUsIGNoaWxkcmVuOiBuZXh0UHJvcHMuY2hpbGRyZW4gfTtcbiAgICAgIDAgIT09IChyZW5kZXJMYW5lcyAmIDUzNjg3MDkxMikgJiZcbiAgICAgICAgMCAhPT0gKHJlbmRlckxhbmVzICYgY3VycmVudC5sYW5lcykgJiZcbiAgICAgICAgbWFya1JlbmRlckRlcml2ZWRDYXVzZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBjdXJyZW50ID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MocHJldlN0YXRlLCBuZXh0UHJvcHMpO1xuICAgICAgY3VycmVudC5yZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQ7XG4gICAgICBjdXJyZW50LnJldHVybiA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hcmtSZWYoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpIHtcbiAgICAgIHZhciByZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG4gICAgICBpZiAobnVsbCA9PT0gcmVmKVxuICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgbnVsbCAhPT0gY3VycmVudC5yZWYgJiZcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gNDE5NDgxNik7XG4gICAgICBlbHNlIHtcbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHJlZiAmJiBcIm9iamVjdFwiICE9PSB0eXBlb2YgcmVmKVxuICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgXCJFeHBlY3RlZCByZWYgdG8gYmUgYSBmdW5jdGlvbiwgYW4gb2JqZWN0IHJldHVybmVkIGJ5IFJlYWN0LmNyZWF0ZVJlZigpLCBvciB1bmRlZmluZWQvbnVsbC5cIlxuICAgICAgICAgICk7XG4gICAgICAgIGlmIChudWxsID09PSBjdXJyZW50IHx8IGN1cnJlbnQucmVmICE9PSByZWYpXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gNDE5NDgxNjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQoXG4gICAgICBjdXJyZW50LFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICBDb21wb25lbnQsXG4gICAgICBuZXh0UHJvcHMsXG4gICAgICByZW5kZXJMYW5lc1xuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICBDb21wb25lbnQucHJvdG90eXBlICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIENvbXBvbmVudC5wcm90b3R5cGUucmVuZGVyXG4gICAgICApIHtcbiAgICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCBcIlVua25vd25cIjtcbiAgICAgICAgZGlkV2FybkFib3V0QmFkQ2xhc3NbY29tcG9uZW50TmFtZV0gfHxcbiAgICAgICAgICAoY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiVGhlIDwlcyAvPiBjb21wb25lbnQgYXBwZWFycyB0byBoYXZlIGEgcmVuZGVyIG1ldGhvZCwgYnV0IGRvZXNuJ3QgZXh0ZW5kIFJlYWN0LkNvbXBvbmVudC4gVGhpcyBpcyBsaWtlbHkgdG8gY2F1c2UgZXJyb3JzLiBDaGFuZ2UgJXMgdG8gZXh0ZW5kIFJlYWN0LkNvbXBvbmVudCBpbnN0ZWFkLlwiLFxuICAgICAgICAgICAgY29tcG9uZW50TmFtZSxcbiAgICAgICAgICAgIGNvbXBvbmVudE5hbWVcbiAgICAgICAgICApLFxuICAgICAgICAgIChkaWRXYXJuQWJvdXRCYWRDbGFzc1tjb21wb25lbnROYW1lXSA9ICEwKSk7XG4gICAgICB9XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSAmJlxuICAgICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5yZWNvcmRMZWdhY3lDb250ZXh0V2FybmluZyhcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICBudWxsXG4gICAgICAgICk7XG4gICAgICBudWxsID09PSBjdXJyZW50ICYmXG4gICAgICAgICh2YWxpZGF0ZUZ1bmN0aW9uQ29tcG9uZW50SW5EZXYod29ya0luUHJvZ3Jlc3MsIHdvcmtJblByb2dyZXNzLnR5cGUpLFxuICAgICAgICBDb21wb25lbnQuY29udGV4dFR5cGVzICYmXG4gICAgICAgICAgKChjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkgfHwgXCJVbmtub3duXCIpLFxuICAgICAgICAgIGRpZFdhcm5BYm91dENvbnRleHRUeXBlc1tjb21wb25lbnROYW1lXSB8fFxuICAgICAgICAgICAgKChkaWRXYXJuQWJvdXRDb250ZXh0VHlwZXNbY29tcG9uZW50TmFtZV0gPSAhMCksXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIiVzIHVzZXMgdGhlIGxlZ2FjeSBjb250ZXh0VHlwZXMgQVBJIHdoaWNoIHdhcyByZW1vdmVkIGluIFJlYWN0IDE5LiBVc2UgUmVhY3QuY3JlYXRlQ29udGV4dCgpIHdpdGggUmVhY3QudXNlQ29udGV4dCgpIGluc3RlYWQuIChodHRwczovL3JlYWN0LmRldi9saW5rL2xlZ2FjeS1jb250ZXh0KVwiLFxuICAgICAgICAgICAgICBjb21wb25lbnROYW1lXG4gICAgICAgICAgICApKSkpO1xuICAgICAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgQ29tcG9uZW50ID0gcmVuZGVyV2l0aEhvb2tzKFxuICAgICAgICBjdXJyZW50LFxuICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgIHZvaWQgMCxcbiAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICk7XG4gICAgICBuZXh0UHJvcHMgPSBjaGVja0RpZFJlbmRlcklkSG9vaygpO1xuICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQgJiYgIWRpZFJlY2VpdmVVcGRhdGUpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgYmFpbG91dEhvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyksXG4gICAgICAgICAgYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpXG4gICAgICAgICk7XG4gICAgICBpc0h5ZHJhdGluZyAmJiBuZXh0UHJvcHMgJiYgcHVzaE1hdGVyaWFsaXplZFRyZWVJZCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxO1xuICAgICAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIENvbXBvbmVudCwgcmVuZGVyTGFuZXMpO1xuICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXBsYXlGdW5jdGlvbkNvbXBvbmVudChcbiAgICAgIGN1cnJlbnQsXG4gICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgIG5leHRQcm9wcyxcbiAgICAgIENvbXBvbmVudCxcbiAgICAgIHNlY29uZEFyZyxcbiAgICAgIHJlbmRlckxhbmVzXG4gICAgKSB7XG4gICAgICBwcmVwYXJlVG9SZWFkQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xO1xuICAgICAgaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMgPVxuICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmIGN1cnJlbnQudHlwZSAhPT0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gbnVsbDtcbiAgICAgIG5leHRQcm9wcyA9IHJlbmRlcldpdGhIb29rc0FnYWluKFxuICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgIHNlY29uZEFyZ1xuICAgICAgKTtcbiAgICAgIGZpbmlzaFJlbmRlcmluZ0hvb2tzKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgIENvbXBvbmVudCA9IGNoZWNrRGlkUmVuZGVySWRIb29rKCk7XG4gICAgICBpZiAobnVsbCAhPT0gY3VycmVudCAmJiAhZGlkUmVjZWl2ZVVwZGF0ZSlcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBiYWlsb3V0SG9va3MoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSxcbiAgICAgICAgICBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcylcbiAgICAgICAgKTtcbiAgICAgIGlzSHlkcmF0aW5nICYmIENvbXBvbmVudCAmJiBwdXNoTWF0ZXJpYWxpemVkVHJlZUlkKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDE7XG4gICAgICByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgbmV4dFByb3BzLCByZW5kZXJMYW5lcyk7XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZUNsYXNzQ29tcG9uZW50KFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgQ29tcG9uZW50LFxuICAgICAgbmV4dFByb3BzLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIHN3aXRjaCAoc2hvdWxkRXJyb3JJbXBsKHdvcmtJblByb2dyZXNzKSkge1xuICAgICAgICBjYXNlICExOlxuICAgICAgICAgIHZhciBfaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUsXG4gICAgICAgICAgICBzdGF0ZSA9IG5ldyB3b3JrSW5Qcm9ncmVzcy50eXBlKFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzLFxuICAgICAgICAgICAgICBfaW5zdGFuY2UuY29udGV4dFxuICAgICAgICAgICAgKS5zdGF0ZTtcbiAgICAgICAgICBfaW5zdGFuY2UudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUoX2luc3RhbmNlLCBzdGF0ZSwgbnVsbCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgITA6XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTI4O1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDY1NTM2O1xuICAgICAgICAgIF9pbnN0YW5jZSA9IEVycm9yKFwiU2ltdWxhdGVkIGVycm9yIGNvbWluZyBmcm9tIERldlRvb2xzXCIpO1xuICAgICAgICAgIHZhciBsYW5lID0gcmVuZGVyTGFuZXMgJiAtcmVuZGVyTGFuZXM7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXMgfD0gbGFuZTtcbiAgICAgICAgICBzdGF0ZSA9IHdvcmtJblByb2dyZXNzUm9vdDtcbiAgICAgICAgICBpZiAobnVsbCA9PT0gc3RhdGUpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgXCJFeHBlY3RlZCBhIHdvcmstaW4tcHJvZ3Jlc3Mgcm9vdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgbGFuZSA9IGNyZWF0ZUNsYXNzRXJyb3JVcGRhdGUobGFuZSk7XG4gICAgICAgICAgaW5pdGlhbGl6ZUNsYXNzRXJyb3JVcGRhdGUoXG4gICAgICAgICAgICBsYW5lLFxuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKF9pbnN0YW5jZSwgd29ya0luUHJvZ3Jlc3MpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBlbnF1ZXVlQ2FwdHVyZWRVcGRhdGUod29ya0luUHJvZ3Jlc3MsIGxhbmUpO1xuICAgICAgfVxuICAgICAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgaWYgKG51bGwgPT09IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSkge1xuICAgICAgICBzdGF0ZSA9IGVtcHR5Q29udGV4dE9iamVjdDtcbiAgICAgICAgX2luc3RhbmNlID0gQ29tcG9uZW50LmNvbnRleHRUeXBlO1xuICAgICAgICBcImNvbnRleHRUeXBlXCIgaW4gQ29tcG9uZW50ICYmXG4gICAgICAgICAgbnVsbCAhPT0gX2luc3RhbmNlICYmXG4gICAgICAgICAgKHZvaWQgMCA9PT0gX2luc3RhbmNlIHx8IF9pbnN0YW5jZS4kJHR5cGVvZiAhPT0gUkVBQ1RfQ09OVEVYVF9UWVBFKSAmJlxuICAgICAgICAgICFkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGUuaGFzKENvbXBvbmVudCkgJiZcbiAgICAgICAgICAoZGlkV2FybkFib3V0SW52YWxpZGF0ZUNvbnRleHRUeXBlLmFkZChDb21wb25lbnQpLFxuICAgICAgICAgIChsYW5lID1cbiAgICAgICAgICAgIHZvaWQgMCA9PT0gX2luc3RhbmNlXG4gICAgICAgICAgICAgID8gXCIgSG93ZXZlciwgaXQgaXMgc2V0IHRvIHVuZGVmaW5lZC4gVGhpcyBjYW4gYmUgY2F1c2VkIGJ5IGEgdHlwbyBvciBieSBtaXhpbmcgdXAgbmFtZWQgYW5kIGRlZmF1bHQgaW1wb3J0cy4gVGhpcyBjYW4gYWxzbyBoYXBwZW4gZHVlIHRvIGEgY2lyY3VsYXIgZGVwZW5kZW5jeSwgc28gdHJ5IG1vdmluZyB0aGUgY3JlYXRlQ29udGV4dCgpIGNhbGwgdG8gYSBzZXBhcmF0ZSBmaWxlLlwiXG4gICAgICAgICAgICAgIDogXCJvYmplY3RcIiAhPT0gdHlwZW9mIF9pbnN0YW5jZVxuICAgICAgICAgICAgICAgID8gXCIgSG93ZXZlciwgaXQgaXMgc2V0IHRvIGEgXCIgKyB0eXBlb2YgX2luc3RhbmNlICsgXCIuXCJcbiAgICAgICAgICAgICAgICA6IF9pbnN0YW5jZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OU1VNRVJfVFlQRVxuICAgICAgICAgICAgICAgICAgPyBcIiBEaWQgeW91IGFjY2lkZW50YWxseSBwYXNzIHRoZSBDb250ZXh0LkNvbnN1bWVyIGluc3RlYWQ/XCJcbiAgICAgICAgICAgICAgICAgIDogXCIgSG93ZXZlciwgaXQgaXMgc2V0IHRvIGFuIG9iamVjdCB3aXRoIGtleXMge1wiICtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoX2luc3RhbmNlKS5qb2luKFwiLCBcIikgK1xuICAgICAgICAgICAgICAgICAgICBcIn0uXCIpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzIGRlZmluZXMgYW4gaW52YWxpZCBjb250ZXh0VHlwZS4gY29udGV4dFR5cGUgc2hvdWxkIHBvaW50IHRvIHRoZSBDb250ZXh0IG9iamVjdCByZXR1cm5lZCBieSBSZWFjdC5jcmVhdGVDb250ZXh0KCkuJXNcIixcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8IFwiQ29tcG9uZW50XCIsXG4gICAgICAgICAgICBsYW5lXG4gICAgICAgICAgKSk7XG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBfaW5zdGFuY2UgJiZcbiAgICAgICAgICBudWxsICE9PSBfaW5zdGFuY2UgJiZcbiAgICAgICAgICAoc3RhdGUgPSByZWFkQ29udGV4dChfaW5zdGFuY2UpKTtcbiAgICAgICAgX2luc3RhbmNlID0gbmV3IENvbXBvbmVudChuZXh0UHJvcHMsIHN0YXRlKTtcbiAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlKSB7XG4gICAgICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITApO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBfaW5zdGFuY2UgPSBuZXcgQ29tcG9uZW50KG5leHRQcm9wcywgc3RhdGUpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9XG4gICAgICAgICAgbnVsbCAhPT0gX2luc3RhbmNlLnN0YXRlICYmIHZvaWQgMCAhPT0gX2luc3RhbmNlLnN0YXRlXG4gICAgICAgICAgICA/IF9pbnN0YW5jZS5zdGF0ZVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICBfaW5zdGFuY2UudXBkYXRlciA9IGNsYXNzQ29tcG9uZW50VXBkYXRlcjtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gX2luc3RhbmNlO1xuICAgICAgICBfaW5zdGFuY2UuX3JlYWN0SW50ZXJuYWxzID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICAgIF9pbnN0YW5jZS5fcmVhY3RJbnRlcm5hbEluc3RhbmNlID0gZmFrZUludGVybmFsSW5zdGFuY2U7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMgJiZcbiAgICAgICAgICBudWxsID09PSBzdGF0ZSAmJlxuICAgICAgICAgICgoc3RhdGUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCBcIkNvbXBvbmVudFwiKSxcbiAgICAgICAgICBkaWRXYXJuQWJvdXRVbmluaXRpYWxpemVkU3RhdGUuaGFzKHN0YXRlKSB8fFxuICAgICAgICAgICAgKGRpZFdhcm5BYm91dFVuaW5pdGlhbGl6ZWRTdGF0ZS5hZGQoc3RhdGUpLFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJgJXNgIHVzZXMgYGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wc2AgYnV0IGl0cyBpbml0aWFsIHN0YXRlIGlzICVzLiBUaGlzIGlzIG5vdCByZWNvbW1lbmRlZC4gSW5zdGVhZCwgZGVmaW5lIHRoZSBpbml0aWFsIHN0YXRlIGJ5IGFzc2lnbmluZyBhbiBvYmplY3QgdG8gYHRoaXMuc3RhdGVgIGluIHRoZSBjb25zdHJ1Y3RvciBvZiBgJXNgLiBUaGlzIGVuc3VyZXMgdGhhdCBgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzYCBhcmd1bWVudHMgaGF2ZSBhIGNvbnNpc3RlbnQgc2hhcGUuXCIsXG4gICAgICAgICAgICAgIHN0YXRlLFxuICAgICAgICAgICAgICBudWxsID09PSBfaW5zdGFuY2Uuc3RhdGUgPyBcIm51bGxcIiA6IFwidW5kZWZpbmVkXCIsXG4gICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICApKSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzIHx8XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBmb3VuZFdpbGxVcGRhdGVOYW1lID0gKGxhbmUgPSBzdGF0ZSA9IG51bGwpO1xuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQgJiZcbiAgICAgICAgICAhMCAhPT0gX2luc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudC5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nXG4gICAgICAgICAgICA/IChzdGF0ZSA9IFwiY29tcG9uZW50V2lsbE1vdW50XCIpXG4gICAgICAgICAgICA6IFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ICYmXG4gICAgICAgICAgICAgIChzdGF0ZSA9IFwiVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFwiKTtcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAmJlxuICAgICAgICAgICEwICE9PVxuICAgICAgICAgICAgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ1xuICAgICAgICAgICAgPyAobGFuZSA9IFwiY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1wiKVxuICAgICAgICAgICAgOiBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgICAgICAgICAgdHlwZW9mIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyAmJlxuICAgICAgICAgICAgICAobGFuZSA9IFwiVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNcIik7XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAhMCAhPT0gX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUuX19zdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ1xuICAgICAgICAgICAgPyAoZm91bmRXaWxsVXBkYXRlTmFtZSA9IFwiY29tcG9uZW50V2lsbFVwZGF0ZVwiKVxuICAgICAgICAgICAgOiBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAgICAgKGZvdW5kV2lsbFVwZGF0ZU5hbWUgPSBcIlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlXCIpO1xuICAgICAgICAgIGlmIChudWxsICE9PSBzdGF0ZSB8fCBudWxsICE9PSBsYW5lIHx8IG51bGwgIT09IGZvdW5kV2lsbFVwZGF0ZU5hbWUpIHtcbiAgICAgICAgICAgIF9pbnN0YW5jZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8IFwiQ29tcG9uZW50XCI7XG4gICAgICAgICAgICB2YXIgbmV3QXBpTmFtZSA9XG4gICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNcbiAgICAgICAgICAgICAgICA/IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKClcIlxuICAgICAgICAgICAgICAgIDogXCJnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpXCI7XG4gICAgICAgICAgICBkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlLmhhcyhfaW5zdGFuY2UpIHx8XG4gICAgICAgICAgICAgIChkaWRXYXJuQWJvdXRMZWdhY3lMaWZlY3ljbGVzQW5kRGVyaXZlZFN0YXRlLmFkZChfaW5zdGFuY2UpLFxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiVW5zYWZlIGxlZ2FjeSBsaWZlY3ljbGVzIHdpbGwgbm90IGJlIGNhbGxlZCBmb3IgY29tcG9uZW50cyB1c2luZyBuZXcgY29tcG9uZW50IEFQSXMuXFxuXFxuJXMgdXNlcyAlcyBidXQgYWxzbyBjb250YWlucyB0aGUgZm9sbG93aW5nIGxlZ2FjeSBsaWZlY3ljbGVzOiVzJXMlc1xcblxcblRoZSBhYm92ZSBsaWZlY3ljbGVzIHNob3VsZCBiZSByZW1vdmVkLiBMZWFybiBtb3JlIGFib3V0IHRoaXMgd2FybmluZyBoZXJlOlxcbmh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzXCIsXG4gICAgICAgICAgICAgICAgX2luc3RhbmNlLFxuICAgICAgICAgICAgICAgIG5ld0FwaU5hbWUsXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gc3RhdGUgPyBcIlxcbiAgXCIgKyBzdGF0ZSA6IFwiXCIsXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gbGFuZSA/IFwiXFxuICBcIiArIGxhbmUgOiBcIlwiLFxuICAgICAgICAgICAgICAgIG51bGwgIT09IGZvdW5kV2lsbFVwZGF0ZU5hbWUgPyBcIlxcbiAgXCIgKyBmb3VuZFdpbGxVcGRhdGVOYW1lIDogXCJcIlxuICAgICAgICAgICAgICApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgX2luc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICAgICAgICBzdGF0ZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8IFwiQ29tcG9uZW50XCI7XG4gICAgICAgIF9pbnN0YW5jZS5yZW5kZXIgfHxcbiAgICAgICAgICAoQ29tcG9uZW50LnByb3RvdHlwZSAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIENvbXBvbmVudC5wcm90b3R5cGUucmVuZGVyXG4gICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJObyBgcmVuZGVyYCBtZXRob2QgZm91bmQgb24gdGhlICVzIGluc3RhbmNlOiBkaWQgeW91IGFjY2lkZW50YWxseSByZXR1cm4gYW4gb2JqZWN0IGZyb20gdGhlIGNvbnN0cnVjdG9yP1wiLFxuICAgICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIk5vIGByZW5kZXJgIG1ldGhvZCBmb3VuZCBvbiB0aGUgJXMgaW5zdGFuY2U6IHlvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gZGVmaW5lIGByZW5kZXJgLlwiLFxuICAgICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAhX2luc3RhbmNlLmdldEluaXRpYWxTdGF0ZSB8fFxuICAgICAgICAgIF9pbnN0YW5jZS5nZXRJbml0aWFsU3RhdGUuaXNSZWFjdENsYXNzQXBwcm92ZWQgfHxcbiAgICAgICAgICBfaW5zdGFuY2Uuc3RhdGUgfHxcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJnZXRJbml0aWFsU3RhdGUgd2FzIGRlZmluZWQgb24gJXMsIGEgcGxhaW4gSmF2YVNjcmlwdCBjbGFzcy4gVGhpcyBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgY2xhc3NlcyBjcmVhdGVkIHVzaW5nIFJlYWN0LmNyZWF0ZUNsYXNzLiBEaWQgeW91IG1lYW4gdG8gZGVmaW5lIGEgc3RhdGUgcHJvcGVydHkgaW5zdGVhZD9cIixcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgX2luc3RhbmNlLmdldERlZmF1bHRQcm9wcyAmJlxuICAgICAgICAgICFfaW5zdGFuY2UuZ2V0RGVmYXVsdFByb3BzLmlzUmVhY3RDbGFzc0FwcHJvdmVkICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiZ2V0RGVmYXVsdFByb3BzIHdhcyBkZWZpbmVkIG9uICVzLCBhIHBsYWluIEphdmFTY3JpcHQgY2xhc3MuIFRoaXMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGNsYXNzZXMgY3JlYXRlZCB1c2luZyBSZWFjdC5jcmVhdGVDbGFzcy4gVXNlIGEgc3RhdGljIHByb3BlcnR5IHRvIGRlZmluZSBkZWZhdWx0UHJvcHMgaW5zdGVhZC5cIixcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgX2luc3RhbmNlLmNvbnRleHRUeXBlICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiY29udGV4dFR5cGUgd2FzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgcHJvcGVydHkgb24gJXMuIFVzZSBhIHN0YXRpYyBwcm9wZXJ0eSB0byBkZWZpbmUgY29udGV4dFR5cGUgaW5zdGVhZC5cIixcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgQ29tcG9uZW50LmNoaWxkQ29udGV4dFR5cGVzICYmXG4gICAgICAgICAgIWRpZFdhcm5BYm91dENoaWxkQ29udGV4dFR5cGVzLmhhcyhDb21wb25lbnQpICYmXG4gICAgICAgICAgKGRpZFdhcm5BYm91dENoaWxkQ29udGV4dFR5cGVzLmFkZChDb21wb25lbnQpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzIHVzZXMgdGhlIGxlZ2FjeSBjaGlsZENvbnRleHRUeXBlcyBBUEkgd2hpY2ggd2FzIHJlbW92ZWQgaW4gUmVhY3QgMTkuIFVzZSBSZWFjdC5jcmVhdGVDb250ZXh0KCkgaW5zdGVhZC4gKGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvbGVnYWN5LWNvbnRleHQpXCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICkpO1xuICAgICAgICBDb21wb25lbnQuY29udGV4dFR5cGVzICYmXG4gICAgICAgICAgIWRpZFdhcm5BYm91dENvbnRleHRUeXBlcyQxLmhhcyhDb21wb25lbnQpICYmXG4gICAgICAgICAgKGRpZFdhcm5BYm91dENvbnRleHRUeXBlcyQxLmFkZChDb21wb25lbnQpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzIHVzZXMgdGhlIGxlZ2FjeSBjb250ZXh0VHlwZXMgQVBJIHdoaWNoIHdhcyByZW1vdmVkIGluIFJlYWN0IDE5LiBVc2UgUmVhY3QuY3JlYXRlQ29udGV4dCgpIHdpdGggc3RhdGljIGNvbnRleHRUeXBlIGluc3RlYWQuIChodHRwczovL3JlYWN0LmRldi9saW5rL2xlZ2FjeS1jb250ZXh0KVwiLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICApKTtcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFNob3VsZFVwZGF0ZSAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgY29tcG9uZW50U2hvdWxkVXBkYXRlKCkuIERpZCB5b3UgbWVhbiBzaG91bGRDb21wb25lbnRVcGRhdGUoKT8gVGhlIG5hbWUgaXMgcGhyYXNlZCBhcyBhIHF1ZXN0aW9uIGJlY2F1c2UgdGhlIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvIHJldHVybiBhIHZhbHVlLlwiLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICApO1xuICAgICAgICBDb21wb25lbnQucHJvdG90eXBlICYmXG4gICAgICAgICAgQ29tcG9uZW50LnByb3RvdHlwZS5pc1B1cmVSZWFjdENvbXBvbmVudCAmJlxuICAgICAgICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBfaW5zdGFuY2Uuc2hvdWxkQ29tcG9uZW50VXBkYXRlICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCBzaG91bGRDb21wb25lbnRVcGRhdGUoKS4gc2hvdWxkQ29tcG9uZW50VXBkYXRlIHNob3VsZCBub3QgYmUgdXNlZCB3aGVuIGV4dGVuZGluZyBSZWFjdC5QdXJlQ29tcG9uZW50LiBQbGVhc2UgZXh0ZW5kIFJlYWN0LkNvbXBvbmVudCBpZiBzaG91bGRDb21wb25lbnRVcGRhdGUgaXMgdXNlZC5cIixcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShDb21wb25lbnQpIHx8IFwiQSBwdXJlIGNvbXBvbmVudFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudERpZFVubW91bnQgJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCIlcyBoYXMgYSBtZXRob2QgY2FsbGVkIGNvbXBvbmVudERpZFVubW91bnQoKS4gQnV0IHRoZXJlIGlzIG5vIHN1Y2ggbGlmZWN5Y2xlIG1ldGhvZC4gRGlkIHlvdSBtZWFuIGNvbXBvbmVudFdpbGxVbm1vdW50KCk/XCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRSZWNlaXZlUHJvcHMgJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCIlcyBoYXMgYSBtZXRob2QgY2FsbGVkIGNvbXBvbmVudERpZFJlY2VpdmVQcm9wcygpLiBCdXQgdGhlcmUgaXMgbm8gc3VjaCBsaWZlY3ljbGUgbWV0aG9kLiBJZiB5b3UgbWVhbnQgdG8gdXBkYXRlIHRoZSBzdGF0ZSBpbiByZXNwb25zZSB0byBjaGFuZ2luZyBwcm9wcywgdXNlIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMoKS4gSWYgeW91IG1lYW50IHRvIGZldGNoIGRhdGEgb3IgcnVuIHNpZGUtZWZmZWN0cyBvciBtdXRhdGlvbnMgYWZ0ZXIgUmVhY3QgaGFzIHVwZGF0ZWQgdGhlIFVJLCB1c2UgY29tcG9uZW50RGlkVXBkYXRlKCkuXCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXMgaGFzIGEgbWV0aG9kIGNhbGxlZCBjb21wb25lbnRXaWxsUmVjaWV2ZVByb3BzKCkuIERpZCB5b3UgbWVhbiBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk/XCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFJlY2lldmVQcm9wcyAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzIGhhcyBhIG1ldGhvZCBjYWxsZWQgVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNpZXZlUHJvcHMoKS4gRGlkIHlvdSBtZWFuIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKCk/XCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgIGxhbmUgPSBfaW5zdGFuY2UucHJvcHMgIT09IG5leHRQcm9wcztcbiAgICAgICAgdm9pZCAwICE9PSBfaW5zdGFuY2UucHJvcHMgJiZcbiAgICAgICAgICBsYW5lICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiV2hlbiBjYWxsaW5nIHN1cGVyKCkgaW4gYCVzYCwgbWFrZSBzdXJlIHRvIHBhc3MgdXAgdGhlIHNhbWUgcHJvcHMgdGhhdCB5b3VyIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yIHdhcyBwYXNzZWQuXCIsXG4gICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgIF9pbnN0YW5jZS5kZWZhdWx0UHJvcHMgJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJTZXR0aW5nIGRlZmF1bHRQcm9wcyBhcyBhbiBpbnN0YW5jZSBwcm9wZXJ0eSBvbiAlcyBpcyBub3Qgc3VwcG9ydGVkIGFuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlZmluZSBkZWZhdWx0UHJvcHMgYXMgYSBzdGF0aWMgcHJvcGVydHkgb24gJXMuXCIsXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlIHx8XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSB8fFxuICAgICAgICAgIGRpZFdhcm5BYm91dEdldFNuYXBzaG90QmVmb3JlVXBkYXRlV2l0aG91dERpZFVwZGF0ZS5oYXMoQ29tcG9uZW50KSB8fFxuICAgICAgICAgIChkaWRXYXJuQWJvdXRHZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZVdpdGhvdXREaWRVcGRhdGUuYWRkKENvbXBvbmVudCksXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXM6IGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgc2hvdWxkIGJlIHVzZWQgd2l0aCBjb21wb25lbnREaWRVcGRhdGUoKS4gVGhpcyBjb21wb25lbnQgZGVmaW5lcyBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpIG9ubHkuXCIsXG4gICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KVxuICAgICAgICAgICkpO1xuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXM6IGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcygpIGlzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kIGFuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlY2xhcmUgaXQgYXMgYSBzdGF0aWMgbWV0aG9kLlwiLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICApO1xuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiJXM6IGdldERlcml2ZWRTdGF0ZUZyb21FcnJvcigpIGlzIGRlZmluZWQgYXMgYW4gaW5zdGFuY2UgbWV0aG9kIGFuZCB3aWxsIGJlIGlnbm9yZWQuIEluc3RlYWQsIGRlY2xhcmUgaXQgYXMgYSBzdGF0aWMgbWV0aG9kLlwiLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICApO1xuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBDb21wb25lbnQuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCIlczogZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBpcyBkZWZpbmVkIGFzIGEgc3RhdGljIG1ldGhvZCBhbmQgd2lsbCBiZSBpZ25vcmVkLiBJbnN0ZWFkLCBkZWNsYXJlIGl0IGFzIGFuIGluc3RhbmNlIG1ldGhvZC5cIixcbiAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgKGxhbmUgPSBfaW5zdGFuY2Uuc3RhdGUpICYmXG4gICAgICAgICAgKFwib2JqZWN0XCIgIT09IHR5cGVvZiBsYW5lIHx8IGlzQXJyYXlJbXBsKGxhbmUpKSAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCIlcy5zdGF0ZTogbXVzdCBiZSBzZXQgdG8gYW4gb2JqZWN0IG9yIG51bGxcIiwgc3RhdGUpO1xuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0Q2hpbGRDb250ZXh0ICYmXG4gICAgICAgICAgXCJvYmplY3RcIiAhPT0gdHlwZW9mIENvbXBvbmVudC5jaGlsZENvbnRleHRUeXBlcyAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzLmdldENoaWxkQ29udGV4dCgpOiBjaGlsZENvbnRleHRUeXBlcyBtdXN0IGJlIGRlZmluZWQgaW4gb3JkZXIgdG8gdXNlIGdldENoaWxkQ29udGV4dCgpLlwiLFxuICAgICAgICAgICAgc3RhdGVcbiAgICAgICAgICApO1xuICAgICAgICBfaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgIF9pbnN0YW5jZS5wcm9wcyA9IG5leHRQcm9wcztcbiAgICAgICAgX2luc3RhbmNlLnN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgX2luc3RhbmNlLnJlZnMgPSB7fTtcbiAgICAgICAgaW5pdGlhbGl6ZVVwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgc3RhdGUgPSBDb21wb25lbnQuY29udGV4dFR5cGU7XG4gICAgICAgIF9pbnN0YW5jZS5jb250ZXh0ID1cbiAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2Ygc3RhdGUgJiYgbnVsbCAhPT0gc3RhdGVcbiAgICAgICAgICAgID8gcmVhZENvbnRleHQoc3RhdGUpXG4gICAgICAgICAgICA6IGVtcHR5Q29udGV4dE9iamVjdDtcbiAgICAgICAgX2luc3RhbmNlLnN0YXRlID09PSBuZXh0UHJvcHMgJiZcbiAgICAgICAgICAoKHN0YXRlID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkgfHwgXCJDb21wb25lbnRcIiksXG4gICAgICAgICAgZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUuaGFzKHN0YXRlKSB8fFxuICAgICAgICAgICAgKGRpZFdhcm5BYm91dERpcmVjdGx5QXNzaWduaW5nUHJvcHNUb1N0YXRlLmFkZChzdGF0ZSksXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIiVzOiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gYXNzaWduIHByb3BzIGRpcmVjdGx5IHRvIHN0YXRlIGJlY2F1c2UgdXBkYXRlcyB0byBwcm9wcyB3b24ndCBiZSByZWZsZWN0ZWQgaW4gc3RhdGUuIEluIG1vc3QgY2FzZXMsIGl0IGlzIGJldHRlciB0byB1c2UgcHJvcHMgZGlyZWN0bHkuXCIsXG4gICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICApKSk7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RMZWdhY3lNb2RlICYmXG4gICAgICAgICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkTGVnYWN5Q29udGV4dFdhcm5pbmcoXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgIF9pbnN0YW5jZVxuICAgICAgICAgICk7XG4gICAgICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLnJlY29yZFVuc2FmZUxpZmVjeWNsZVdhcm5pbmdzKFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgIF9pbnN0YW5jZVxuICAgICAgICApO1xuICAgICAgICBfaW5zdGFuY2Uuc3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICBzdGF0ZSA9IENvbXBvbmVudC5nZXREZXJpdmVkU3RhdGVGcm9tUHJvcHM7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHN0YXRlICYmXG4gICAgICAgICAgKGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIG5leHRQcm9wc1xuICAgICAgICAgICksXG4gICAgICAgICAgKF9pbnN0YW5jZS5zdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUpKTtcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyB8fFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSB8fFxuICAgICAgICAgIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCAmJlxuICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCkgfHxcbiAgICAgICAgICAoKHN0YXRlID0gX2luc3RhbmNlLnN0YXRlKSxcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ICYmXG4gICAgICAgICAgICBfaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50KCksXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgJiZcbiAgICAgICAgICAgIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCksXG4gICAgICAgICAgc3RhdGUgIT09IF9pbnN0YW5jZS5zdGF0ZSAmJlxuICAgICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiJXMuY29tcG9uZW50V2lsbE1vdW50KCk6IEFzc2lnbmluZyBkaXJlY3RseSB0byB0aGlzLnN0YXRlIGlzIGRlcHJlY2F0ZWQgKGV4Y2VwdCBpbnNpZGUgYSBjb21wb25lbnQncyBjb25zdHJ1Y3RvcikuIFVzZSBzZXRTdGF0ZSBpbnN0ZWFkLlwiLFxuICAgICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKHdvcmtJblByb2dyZXNzKSB8fCBcIkNvbXBvbmVudFwiXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY2xhc3NDb21wb25lbnRVcGRhdGVyLmVucXVldWVSZXBsYWNlU3RhdGUoXG4gICAgICAgICAgICAgIF9pbnN0YW5jZSxcbiAgICAgICAgICAgICAgX2luc3RhbmNlLnN0YXRlLFxuICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIG5leHRQcm9wcywgX2luc3RhbmNlLCByZW5kZXJMYW5lcyksXG4gICAgICAgICAgc3VzcGVuZElmVXBkYXRlUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbigpLFxuICAgICAgICAgIChfaW5zdGFuY2Uuc3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlKSk7XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCAmJlxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA0MTk0MzA4KTtcbiAgICAgICAgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RFZmZlY3RzTW9kZSkgIT09IE5vTW9kZSAmJlxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxMzQyMTc3MjgpO1xuICAgICAgICBfaW5zdGFuY2UgPSAhMDtcbiAgICAgIH0gZWxzZSBpZiAobnVsbCA9PT0gY3VycmVudCkge1xuICAgICAgICBfaW5zdGFuY2UgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgIHZhciB1bnJlc29sdmVkT2xkUHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzO1xuICAgICAgICBsYW5lID0gcmVzb2x2ZUNsYXNzQ29tcG9uZW50UHJvcHMoQ29tcG9uZW50LCB1bnJlc29sdmVkT2xkUHJvcHMpO1xuICAgICAgICBfaW5zdGFuY2UucHJvcHMgPSBsYW5lO1xuICAgICAgICB2YXIgb2xkQ29udGV4dCA9IF9pbnN0YW5jZS5jb250ZXh0O1xuICAgICAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gQ29tcG9uZW50LmNvbnRleHRUeXBlO1xuICAgICAgICBzdGF0ZSA9IGVtcHR5Q29udGV4dE9iamVjdDtcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGZvdW5kV2lsbFVwZGF0ZU5hbWUgJiZcbiAgICAgICAgICBudWxsICE9PSBmb3VuZFdpbGxVcGRhdGVOYW1lICYmXG4gICAgICAgICAgKHN0YXRlID0gcmVhZENvbnRleHQoZm91bmRXaWxsVXBkYXRlTmFtZSkpO1xuICAgICAgICBuZXdBcGlOYW1lID0gQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcztcbiAgICAgICAgZm91bmRXaWxsVXBkYXRlTmFtZSA9XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV3QXBpTmFtZSB8fFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZTtcbiAgICAgICAgdW5yZXNvbHZlZE9sZFByb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzICE9PSB1bnJlc29sdmVkT2xkUHJvcHM7XG4gICAgICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUgfHxcbiAgICAgICAgICAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzICYmXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcykgfHxcbiAgICAgICAgICAoKHVucmVzb2x2ZWRPbGRQcm9wcyB8fCBvbGRDb250ZXh0ICE9PSBzdGF0ZSkgJiZcbiAgICAgICAgICAgIGNhbGxDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgX2luc3RhbmNlLFxuICAgICAgICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgICAgICAgIHN0YXRlXG4gICAgICAgICAgICApKTtcbiAgICAgICAgaGFzRm9yY2VVcGRhdGUgPSAhMTtcbiAgICAgICAgdmFyIG9sZFN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgX2luc3RhbmNlLnN0YXRlID0gb2xkU3RhdGU7XG4gICAgICAgIHByb2Nlc3NVcGRhdGVRdWV1ZSh3b3JrSW5Qcm9ncmVzcywgbmV4dFByb3BzLCBfaW5zdGFuY2UsIHJlbmRlckxhbmVzKTtcbiAgICAgICAgc3VzcGVuZElmVXBkYXRlUmVhZEZyb21FbnRhbmdsZWRBc3luY0FjdGlvbigpO1xuICAgICAgICBvbGRDb250ZXh0ID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgdW5yZXNvbHZlZE9sZFByb3BzIHx8IG9sZFN0YXRlICE9PSBvbGRDb250ZXh0IHx8IGhhc0ZvcmNlVXBkYXRlXG4gICAgICAgICAgPyAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgbmV3QXBpTmFtZSAmJlxuICAgICAgICAgICAgICAoYXBwbHlEZXJpdmVkU3RhdGVGcm9tUHJvcHMoXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIG5ld0FwaU5hbWUsXG4gICAgICAgICAgICAgICAgbmV4dFByb3BzXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIChvbGRDb250ZXh0ID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSkpLFxuICAgICAgICAgICAgKGxhbmUgPVxuICAgICAgICAgICAgICBoYXNGb3JjZVVwZGF0ZSB8fFxuICAgICAgICAgICAgICBjaGVja1Nob3VsZENvbXBvbmVudFVwZGF0ZShcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICBDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgbGFuZSxcbiAgICAgICAgICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgICAgICAgICAgb2xkU3RhdGUsXG4gICAgICAgICAgICAgICAgb2xkQ29udGV4dCxcbiAgICAgICAgICAgICAgICBzdGF0ZVxuICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICA/IChmb3VuZFdpbGxVcGRhdGVOYW1lIHx8XG4gICAgICAgICAgICAgICAgICAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudCkgfHxcbiAgICAgICAgICAgICAgICAgIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ICYmXG4gICAgICAgICAgICAgICAgICAgIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsTW91bnQoKSxcbiAgICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50ICYmXG4gICAgICAgICAgICAgICAgICAgIF9pbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbE1vdW50KCkpLFxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRNb3VudCAmJlxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQxOTQzMDgpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3RyaWN0RWZmZWN0c01vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxMzQyMTc3MjgpKVxuICAgICAgICAgICAgICA6IChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgJiZcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA0MTk0MzA4KSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdEVmZmVjdHNNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTM0MjE3NzI4KSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRQcm9wcyA9IG5leHRQcm9wcyksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBvbGRDb250ZXh0KSksXG4gICAgICAgICAgICAoX2luc3RhbmNlLnByb3BzID0gbmV4dFByb3BzKSxcbiAgICAgICAgICAgIChfaW5zdGFuY2Uuc3RhdGUgPSBvbGRDb250ZXh0KSxcbiAgICAgICAgICAgIChfaW5zdGFuY2UuY29udGV4dCA9IHN0YXRlKSxcbiAgICAgICAgICAgIChfaW5zdGFuY2UgPSBsYW5lKSlcbiAgICAgICAgICA6IChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuY29tcG9uZW50RGlkTW91bnQgJiZcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQxOTQzMDgpLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBTdHJpY3RFZmZlY3RzTW9kZSkgIT09IE5vTW9kZSAmJlxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTM0MjE3NzI4KSxcbiAgICAgICAgICAgIChfaW5zdGFuY2UgPSAhMSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgX2luc3RhbmNlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICAgICAgICBjbG9uZVVwZGF0ZVF1ZXVlKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgc3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFByb3BzO1xuICAgICAgICBmb3VuZFdpbGxVcGRhdGVOYW1lID0gcmVzb2x2ZUNsYXNzQ29tcG9uZW50UHJvcHMoQ29tcG9uZW50LCBzdGF0ZSk7XG4gICAgICAgIF9pbnN0YW5jZS5wcm9wcyA9IGZvdW5kV2lsbFVwZGF0ZU5hbWU7XG4gICAgICAgIG5ld0FwaU5hbWUgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gICAgICAgIG9sZFN0YXRlID0gX2luc3RhbmNlLmNvbnRleHQ7XG4gICAgICAgIG9sZENvbnRleHQgPSBDb21wb25lbnQuY29udGV4dFR5cGU7XG4gICAgICAgIGxhbmUgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBvbGRDb250ZXh0ICYmXG4gICAgICAgICAgbnVsbCAhPT0gb2xkQ29udGV4dCAmJlxuICAgICAgICAgIChsYW5lID0gcmVhZENvbnRleHQob2xkQ29udGV4dCkpO1xuICAgICAgICB1bnJlc29sdmVkT2xkUHJvcHMgPSBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzO1xuICAgICAgICAob2xkQ29udGV4dCA9XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdW5yZXNvbHZlZE9sZFByb3BzIHx8XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmdldFNuYXBzaG90QmVmb3JlVXBkYXRlKSB8fFxuICAgICAgICAgIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgJiZcbiAgICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKSB8fFxuICAgICAgICAgICgoc3RhdGUgIT09IG5ld0FwaU5hbWUgfHwgb2xkU3RhdGUgIT09IGxhbmUpICYmXG4gICAgICAgICAgICBjYWxsQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyhcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIF9pbnN0YW5jZSxcbiAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICBsYW5lXG4gICAgICAgICAgICApKTtcbiAgICAgICAgaGFzRm9yY2VVcGRhdGUgPSAhMTtcbiAgICAgICAgb2xkU3RhdGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICBfaW5zdGFuY2Uuc3RhdGUgPSBvbGRTdGF0ZTtcbiAgICAgICAgcHJvY2Vzc1VwZGF0ZVF1ZXVlKHdvcmtJblByb2dyZXNzLCBuZXh0UHJvcHMsIF9pbnN0YW5jZSwgcmVuZGVyTGFuZXMpO1xuICAgICAgICBzdXNwZW5kSWZVcGRhdGVSZWFkRnJvbUVudGFuZ2xlZEFzeW5jQWN0aW9uKCk7XG4gICAgICAgIHZhciBuZXdTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICAgIHN0YXRlICE9PSBuZXdBcGlOYW1lIHx8XG4gICAgICAgIG9sZFN0YXRlICE9PSBuZXdTdGF0ZSB8fFxuICAgICAgICBoYXNGb3JjZVVwZGF0ZSB8fFxuICAgICAgICAobnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQuZGVwZW5kZW5jaWVzICYmXG4gICAgICAgICAgY2hlY2tJZkNvbnRleHRDaGFuZ2VkKGN1cnJlbnQuZGVwZW5kZW5jaWVzKSlcbiAgICAgICAgICA/IChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB1bnJlc29sdmVkT2xkUHJvcHMgJiZcbiAgICAgICAgICAgICAgKGFwcGx5RGVyaXZlZFN0YXRlRnJvbVByb3BzKFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICB1bnJlc29sdmVkT2xkUHJvcHMsXG4gICAgICAgICAgICAgICAgbmV4dFByb3BzXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIChuZXdTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUpKSxcbiAgICAgICAgICAgIChmb3VuZFdpbGxVcGRhdGVOYW1lID1cbiAgICAgICAgICAgICAgaGFzRm9yY2VVcGRhdGUgfHxcbiAgICAgICAgICAgICAgY2hlY2tTaG91bGRDb21wb25lbnRVcGRhdGUoXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIGZvdW5kV2lsbFVwZGF0ZU5hbWUsXG4gICAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICAgIG9sZFN0YXRlLFxuICAgICAgICAgICAgICAgIG5ld1N0YXRlLFxuICAgICAgICAgICAgICAgIGxhbmVcbiAgICAgICAgICAgICAgKSB8fFxuICAgICAgICAgICAgICAobnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQuZGVwZW5kZW5jaWVzICYmXG4gICAgICAgICAgICAgICAgY2hlY2tJZkNvbnRleHRDaGFuZ2VkKGN1cnJlbnQuZGVwZW5kZW5jaWVzKSkpXG4gICAgICAgICAgICAgID8gKG9sZENvbnRleHQgfHxcbiAgICAgICAgICAgICAgICAgIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUpIHx8XG4gICAgICAgICAgICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgX2luc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUobmV4dFByb3BzLCBuZXdTdGF0ZSwgbGFuZSksXG4gICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgX2luc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlKFxuICAgICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICBuZXdTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICBsYW5lXG4gICAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA0KSxcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgJiZcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxMDI0KSlcbiAgICAgICAgICAgICAgOiAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX2luc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZSB8fFxuICAgICAgICAgICAgICAgICAgKHN0YXRlID09PSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgJiZcbiAgICAgICAgICAgICAgICAgICAgb2xkU3RhdGUgPT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSkgfHxcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA0KSxcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgfHxcbiAgICAgICAgICAgICAgICAgIChzdGF0ZSA9PT0gY3VycmVudC5tZW1vaXplZFByb3BzICYmXG4gICAgICAgICAgICAgICAgICAgIG9sZFN0YXRlID09PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUpIHx8XG4gICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTAyNCksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMgPSBuZXh0UHJvcHMpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbmV3U3RhdGUpKSxcbiAgICAgICAgICAgIChfaW5zdGFuY2UucHJvcHMgPSBuZXh0UHJvcHMpLFxuICAgICAgICAgICAgKF9pbnN0YW5jZS5zdGF0ZSA9IG5ld1N0YXRlKSxcbiAgICAgICAgICAgIChfaW5zdGFuY2UuY29udGV4dCA9IGxhbmUpLFxuICAgICAgICAgICAgKF9pbnN0YW5jZSA9IGZvdW5kV2lsbFVwZGF0ZU5hbWUpKVxuICAgICAgICAgIDogKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIF9pbnN0YW5jZS5jb21wb25lbnREaWRVcGRhdGUgfHxcbiAgICAgICAgICAgICAgKHN0YXRlID09PSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgJiZcbiAgICAgICAgICAgICAgICBvbGRTdGF0ZSA9PT0gY3VycmVudC5tZW1vaXplZFN0YXRlKSB8fFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gNCksXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBfaW5zdGFuY2UuZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUgfHxcbiAgICAgICAgICAgICAgKHN0YXRlID09PSBjdXJyZW50Lm1lbW9pemVkUHJvcHMgJiZcbiAgICAgICAgICAgICAgICBvbGRTdGF0ZSA9PT0gY3VycmVudC5tZW1vaXplZFN0YXRlKSB8fFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTAyNCksXG4gICAgICAgICAgICAoX2luc3RhbmNlID0gITEpKTtcbiAgICAgIH1cbiAgICAgIGxhbmUgPSBfaW5zdGFuY2U7XG4gICAgICBtYXJrUmVmKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHN0YXRlID0gMCAhPT0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMTI4KTtcbiAgICAgIGlmIChsYW5lIHx8IHN0YXRlKSB7XG4gICAgICAgIGxhbmUgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgIHNldEN1cnJlbnRGaWJlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgIGlmIChzdGF0ZSAmJiBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBDb21wb25lbnQuZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKVxuICAgICAgICAgIChDb21wb25lbnQgPSBudWxsKSwgKHByb2ZpbGVyU3RhcnRUaW1lID0gLTEpO1xuICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAoKENvbXBvbmVudCA9IGNhbGxSZW5kZXJJbkRFVihsYW5lKSksXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUpXG4gICAgICAgICkge1xuICAgICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCEwKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY2FsbFJlbmRlckluREVWKGxhbmUpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBzZXRJc1N0cmljdE1vZGVGb3JEZXZ0b29scyghMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDE7XG4gICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiYgc3RhdGVcbiAgICAgICAgICA/ICgod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZWNvbmNpbGVDaGlsZEZpYmVycyhcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIGN1cnJlbnQuY2hpbGQsXG4gICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IHJlY29uY2lsZUNoaWxkRmliZXJzKFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKSkpXG4gICAgICAgICAgOiByZWNvbmNpbGVDaGlsZHJlbihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgQ29tcG9uZW50LCByZW5kZXJMYW5lcyk7XG4gICAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBsYW5lLnN0YXRlO1xuICAgICAgICBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICB9IGVsc2VcbiAgICAgICAgY3VycmVudCA9IGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoXG4gICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICApO1xuICAgICAgcmVuZGVyTGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICBfaW5zdGFuY2UgJiZcbiAgICAgICAgcmVuZGVyTGFuZXMucHJvcHMgIT09IG5leHRQcm9wcyAmJlxuICAgICAgICAoZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyB8fFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkl0IGxvb2tzIGxpa2UgJXMgaXMgcmVhc3NpZ25pbmcgaXRzIG93biBgdGhpcy5wcm9wc2Agd2hpbGUgcmVuZGVyaW5nLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQgYW5kIGNhbiBsZWFkIHRvIGNvbmZ1c2luZyBidWdzLlwiLFxuICAgICAgICAgICAgZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcih3b3JrSW5Qcm9ncmVzcykgfHwgXCJhIGNvbXBvbmVudFwiXG4gICAgICAgICAgKSxcbiAgICAgICAgKGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMgPSAhMCkpO1xuICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1vdW50SG9zdFJvb3RXaXRob3V0SHlkcmF0aW5nKFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgbmV4dENoaWxkcmVuLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDI1NjtcbiAgICAgIHJlY29uY2lsZUNoaWxkcmVuKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCBuZXh0Q2hpbGRyZW4sIHJlbmRlckxhbmVzKTtcbiAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVGdW5jdGlvbkNvbXBvbmVudEluRGV2KHdvcmtJblByb2dyZXNzLCBDb21wb25lbnQpIHtcbiAgICAgIENvbXBvbmVudCAmJlxuICAgICAgICBDb21wb25lbnQuY2hpbGRDb250ZXh0VHlwZXMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcImNoaWxkQ29udGV4dFR5cGVzIGNhbm5vdCBiZSBkZWZpbmVkIG9uIGEgZnVuY3Rpb24gY29tcG9uZW50LlxcbiAgJXMuY2hpbGRDb250ZXh0VHlwZXMgPSAuLi5cIixcbiAgICAgICAgICBDb21wb25lbnQuZGlzcGxheU5hbWUgfHwgQ29tcG9uZW50Lm5hbWUgfHwgXCJDb21wb25lbnRcIlxuICAgICAgICApO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgQ29tcG9uZW50LmdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyAmJlxuICAgICAgICAoKHdvcmtJblByb2dyZXNzID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKENvbXBvbmVudCkgfHwgXCJVbmtub3duXCIpLFxuICAgICAgICBkaWRXYXJuQWJvdXRHZXREZXJpdmVkU3RhdGVPbkZ1bmN0aW9uQ29tcG9uZW50W3dvcmtJblByb2dyZXNzXSB8fFxuICAgICAgICAgIChjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCIlczogRnVuY3Rpb24gY29tcG9uZW50cyBkbyBub3Qgc3VwcG9ydCBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuXCIsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1xuICAgICAgICAgICksXG4gICAgICAgICAgKGRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnRbd29ya0luUHJvZ3Jlc3NdID1cbiAgICAgICAgICAgICEwKSkpO1xuICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIENvbXBvbmVudC5jb250ZXh0VHlwZSAmJlxuICAgICAgICBudWxsICE9PSBDb21wb25lbnQuY29udGV4dFR5cGUgJiZcbiAgICAgICAgKChDb21wb25lbnQgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoQ29tcG9uZW50KSB8fCBcIlVua25vd25cIiksXG4gICAgICAgIGRpZFdhcm5BYm91dENvbnRleHRUeXBlT25GdW5jdGlvbkNvbXBvbmVudFtDb21wb25lbnRdIHx8XG4gICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzOiBGdW5jdGlvbiBjb21wb25lbnRzIGRvIG5vdCBzdXBwb3J0IGNvbnRleHRUeXBlLlwiLFxuICAgICAgICAgICAgQ29tcG9uZW50XG4gICAgICAgICAgKSxcbiAgICAgICAgICAoZGlkV2FybkFib3V0Q29udGV4dFR5cGVPbkZ1bmN0aW9uQ29tcG9uZW50W0NvbXBvbmVudF0gPSAhMCkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzKSB7XG4gICAgICByZXR1cm4geyBiYXNlTGFuZXM6IHJlbmRlckxhbmVzLCBjYWNoZVBvb2w6IGdldFN1c3BlbmRlZENhY2hlKCkgfTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0UmVtYWluaW5nV29ya0luUHJpbWFyeVRyZWUoXG4gICAgICBjdXJyZW50LFxuICAgICAgcHJpbWFyeVRyZWVEaWREZWZlcixcbiAgICAgIHJlbmRlckxhbmVzXG4gICAgKSB7XG4gICAgICBjdXJyZW50ID0gbnVsbCAhPT0gY3VycmVudCA/IGN1cnJlbnQuY2hpbGRMYW5lcyAmIH5yZW5kZXJMYW5lcyA6IDA7XG4gICAgICBwcmltYXJ5VHJlZURpZERlZmVyICYmIChjdXJyZW50IHw9IHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lKTtcbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVTdXNwZW5zZUNvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpIHtcbiAgICAgIHZhciBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQ7XG4gICAgICB2YXIgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gICAgICBzaG91bGRTdXNwZW5kSW1wbCh3b3JrSW5Qcm9ncmVzcykgJiYgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEyOCk7XG4gICAgICB2YXIgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjcyMyA9ICExO1xuICAgICAgdmFyIGRpZFN1c3BlbmQgPSAwICE9PSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiAxMjgpO1xuICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCA9IGRpZFN1c3BlbmQpIHx8XG4gICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQgPVxuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiYgbnVsbCA9PT0gY3VycmVudC5tZW1vaXplZFN0YXRlXG4gICAgICAgICAgICA/ICExXG4gICAgICAgICAgICA6IDAgIT09IChzdXNwZW5zZVN0YWNrQ3Vyc29yLmN1cnJlbnQgJiBGb3JjZVN1c3BlbnNlRmFsbGJhY2spKTtcbiAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCAmJlxuICAgICAgICAoKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI3MjMgPSAhMCksXG4gICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmPSAtMTI5KSk7XG4gICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQgPSAwICE9PSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiAzMik7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmPSAtMzM7XG4gICAgICBpZiAobnVsbCA9PT0gY3VycmVudCkge1xuICAgICAgICBpZiAoaXNIeWRyYXRpbmcpIHtcbiAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfbWVzc2FnZV8yNzIzXG4gICAgICAgICAgICA/IHB1c2hQcmltYXJ5VHJlZVN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzcylcbiAgICAgICAgICAgIDogcmV1c2VTdXNwZW5zZUhhbmRsZXJPblN0YWNrKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAoY3VycmVudCA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2UpXG4gICAgICAgICAgICA/ICgocmVuZGVyTGFuZXMgPSBjYW5IeWRyYXRlSHlkcmF0aW9uQm91bmRhcnkoXG4gICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICByb290T3JTaW5nbGV0b25Db250ZXh0XG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAocmVuZGVyTGFuZXMgPVxuICAgICAgICAgICAgICAgIG51bGwgIT09IHJlbmRlckxhbmVzICYmIHJlbmRlckxhbmVzLmRhdGEgIT09IEFDVElWSVRZX1NUQVJUX0RBVEFcbiAgICAgICAgICAgICAgICAgID8gcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICAgIDogbnVsbCksXG4gICAgICAgICAgICAgIG51bGwgIT09IHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAgICAgKChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQgPSB7XG4gICAgICAgICAgICAgICAgICBkZWh5ZHJhdGVkOiByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICAgIHRyZWVDb250ZXh0OiBnZXRTdXNwZW5kZWRUcmVlQ29udGV4dCgpLFxuICAgICAgICAgICAgICAgICAgcmV0cnlMYW5lOiA1MzY4NzA5MTIsXG4gICAgICAgICAgICAgICAgICBoeWRyYXRpb25FcnJvcnM6IG51bGxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9XG4gICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQpLFxuICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQgPVxuICAgICAgICAgICAgICAgICAgY3JlYXRlRmliZXJGcm9tRGVoeWRyYXRlZEZyYWdtZW50KHJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNC5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0KSxcbiAgICAgICAgICAgICAgICAoaHlkcmF0aW9uUGFyZW50RmliZXIgPSB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgKG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBudWxsKSkpXG4gICAgICAgICAgICA6IChyZW5kZXJMYW5lcyA9IG51bGwpO1xuICAgICAgICAgIGlmIChudWxsID09PSByZW5kZXJMYW5lcylcbiAgICAgICAgICAgIHRocm93IChcbiAgICAgICAgICAgICAgKHdhcm5Ob25IeWRyYXRlZEluc3RhbmNlKHdvcmtJblByb2dyZXNzLCBjdXJyZW50KSxcbiAgICAgICAgICAgICAgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKHdvcmtJblByb2dyZXNzKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaXNTdXNwZW5zZUluc3RhbmNlRmFsbGJhY2socmVuZGVyTGFuZXMpXG4gICAgICAgICAgICA/ICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IDMyKVxuICAgICAgICAgICAgOiAod29ya0luUHJvZ3Jlc3MubGFuZXMgPSA1MzY4NzA5MTIpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHZhciBuZXh0UHJpbWFyeUNoaWxkcmVuID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuY2hpbGRyZW47XG4gICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1ID1cbiAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5mYWxsYmFjaztcbiAgICAgICAgaWYgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI3MjMpIHtcbiAgICAgICAgICByZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2sod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHZhciBtb2RlID0gd29ya0luUHJvZ3Jlc3MubW9kZTtcbiAgICAgICAgICBuZXh0UHJpbWFyeUNoaWxkcmVuID0gbW91bnRXb3JrSW5Qcm9ncmVzc09mZnNjcmVlbkZpYmVyKFxuICAgICAgICAgICAgeyBtb2RlOiBcImhpZGRlblwiLCBjaGlsZHJlbjogbmV4dFByaW1hcnlDaGlsZHJlbiB9LFxuICAgICAgICAgICAgbW9kZVxuICAgICAgICAgICk7XG4gICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPSBjcmVhdGVGaWJlckZyb21GcmFnbWVudChcbiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LFxuICAgICAgICAgICAgbW9kZSxcbiAgICAgICAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICk7XG4gICAgICAgICAgbmV4dFByaW1hcnlDaGlsZHJlbi5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICBuZXh0UHJpbWFyeUNoaWxkcmVuLnNpYmxpbmcgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNTtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG5leHRQcmltYXJ5Q2hpbGRyZW47XG4gICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5tZW1vaXplZFN0YXRlID1cbiAgICAgICAgICAgIG1vdW50U3VzcGVuc2VPZmZzY3JlZW5TdGF0ZShyZW5kZXJMYW5lcyk7XG4gICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuY2hpbGRMYW5lcyA9XG4gICAgICAgICAgICBnZXRSZW1haW5pbmdXb3JrSW5QcmltYXJ5VHJlZShcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0LFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gU1VTUEVOREVEX01BUktFUjtcbiAgICAgICAgICByZXR1cm4gYmFpbG91dE9mZnNjcmVlbkNvbXBvbmVudChcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgcmV0dXJuIG1vdW50U3VzcGVuc2VQcmltYXJ5Q2hpbGRyZW4oXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgbmV4dFByaW1hcnlDaGlsZHJlblxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdmFyIHByZXZTdGF0ZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIGlmIChudWxsICE9PSBwcmV2U3RhdGUpIHtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNzI2ID0gcHJldlN0YXRlLmRlaHlkcmF0ZWQ7XG4gICAgICAgIGlmIChudWxsICE9PSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjcyNikge1xuICAgICAgICAgIGlmIChkaWRTdXNwZW5kKVxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiAyNTZcbiAgICAgICAgICAgICAgPyAocHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gLTI1NyksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzID0gcmV0cnlTdXNwZW5zZUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoXG4gICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICkpKVxuICAgICAgICAgICAgICA6IG51bGwgIT09IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGVcbiAgICAgICAgICAgICAgICA/IChyZXVzZVN1c3BlbnNlSGFuZGxlck9uU3RhY2sod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gY3VycmVudC5jaGlsZCksXG4gICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTI4KSxcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcyA9IG51bGwpKVxuICAgICAgICAgICAgICAgIDogKHJldXNlU3VzcGVuc2VIYW5kbGVyT25TdGFjayh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICAobmV4dFByaW1hcnlDaGlsZHJlbiA9XG4gICAgICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LmZhbGxiYWNrKSxcbiAgICAgICAgICAgICAgICAgIChtb2RlID0gd29ya0luUHJvZ3Jlc3MubW9kZSksXG4gICAgICAgICAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPVxuICAgICAgICAgICAgICAgICAgICBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIoXG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogXCJ2aXNpYmxlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIG1vZGVcbiAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAobmV4dFByaW1hcnlDaGlsZHJlbiA9IGNyZWF0ZUZpYmVyRnJvbUZyYWdtZW50KFxuICAgICAgICAgICAgICAgICAgICBuZXh0UHJpbWFyeUNoaWxkcmVuLFxuICAgICAgICAgICAgICAgICAgICBtb2RlLFxuICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAobmV4dFByaW1hcnlDaGlsZHJlbi5mbGFncyB8PSAyKSxcbiAgICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICAobmV4dFByaW1hcnlDaGlsZHJlbi5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuc2libGluZyA9XG4gICAgICAgICAgICAgICAgICAgIG5leHRQcmltYXJ5Q2hpbGRyZW4pLFxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmNoaWxkID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUpLFxuICAgICAgICAgICAgICAgICAgcmVjb25jaWxlQ2hpbGRGaWJlcnMoXG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50LmNoaWxkLFxuICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNSA9IHdvcmtJblByb2dyZXNzLmNoaWxkKSxcbiAgICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5tZW1vaXplZFN0YXRlID1cbiAgICAgICAgICAgICAgICAgICAgbW91bnRTdXNwZW5zZU9mZnNjcmVlblN0YXRlKHJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuY2hpbGRMYW5lcyA9XG4gICAgICAgICAgICAgICAgICAgIGdldFJlbWFpbmluZ1dvcmtJblByaW1hcnlUcmVlKFxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0LFxuICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBTVVNQRU5ERURfTUFSS0VSKSxcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcyA9IGJhaWxvdXRPZmZzY3JlZW5Db21wb25lbnQoXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1XG4gICAgICAgICAgICAgICAgICApKSk7XG4gICAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgICAocHVzaFByaW1hcnlUcmVlU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIHdhcm5JZkh5ZHJhdGluZygpLFxuICAgICAgICAgICAgMCAhPT0gKHJlbmRlckxhbmVzICYgNTM2ODcwOTEyKSAmJlxuICAgICAgICAgICAgICBtYXJrUmVuZGVyRGVyaXZlZENhdXNlKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIGlzU3VzcGVuc2VJbnN0YW5jZUZhbGxiYWNrKFxuICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjcyNlxuICAgICAgICAgICAgKSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCA9XG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNzI2Lm5leHRTaWJsaW5nICYmXG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNzI2Lm5leHRTaWJsaW5nLmRhdGFzZXQ7XG4gICAgICAgICAgICBpZiAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0KSB7XG4gICAgICAgICAgICAgIG5leHRQcmltYXJ5Q2hpbGRyZW4gPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQuZGdzdDtcbiAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQubXNnO1xuICAgICAgICAgICAgICBtb2RlID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0LnN0Y2s7XG4gICAgICAgICAgICAgIHZhciBjb21wb25lbnRTdGFjayA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNC5jc3RjaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI3MjMgPSBtZXNzYWdlO1xuICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0ID0gbmV4dFByaW1hcnlDaGlsZHJlbjtcbiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1ID0gbW9kZTtcbiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNzI2ID0gY29tcG9uZW50U3RhY2s7XG4gICAgICAgICAgICBuZXh0UHJpbWFyeUNoaWxkcmVuID0gSlNDb21waWxlcl9vYmplY3RfaW5saW5lX21lc3NhZ2VfMjcyMztcbiAgICAgICAgICAgIG1vZGUgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjcyNjtcbiAgICAgICAgICAgIG5leHRQcmltYXJ5Q2hpbGRyZW4gPSBuZXh0UHJpbWFyeUNoaWxkcmVuXG4gICAgICAgICAgICAgID8gRXJyb3IobmV4dFByaW1hcnlDaGlsZHJlbilcbiAgICAgICAgICAgICAgOiBFcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiVGhlIHNlcnZlciBjb3VsZCBub3QgZmluaXNoIHRoaXMgU3VzcGVuc2UgYm91bmRhcnksIGxpa2VseSBkdWUgdG8gYW4gZXJyb3IgZHVyaW5nIHNlcnZlciByZW5kZXJpbmcuIFN3aXRjaGVkIHRvIGNsaWVudCByZW5kZXJpbmcuXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgbmV4dFByaW1hcnlDaGlsZHJlbi5zdGFjayA9XG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1IHx8IFwiXCI7XG4gICAgICAgICAgICBuZXh0UHJpbWFyeUNoaWxkcmVuLmRpZ2VzdCA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNDtcbiAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCA9XG4gICAgICAgICAgICAgIHZvaWQgMCA9PT0gbW9kZSA/IG51bGwgOiBtb2RlO1xuICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPSB7XG4gICAgICAgICAgICAgIHZhbHVlOiBuZXh0UHJpbWFyeUNoaWxkcmVuLFxuICAgICAgICAgICAgICBzb3VyY2U6IG51bGwsXG4gICAgICAgICAgICAgIHN0YWNrOiBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX2RpZ2VzdF8yNzI0ICYmXG4gICAgICAgICAgICAgIENhcHR1cmVkU3RhY2tzLnNldChcbiAgICAgICAgICAgICAgICBuZXh0UHJpbWFyeUNoaWxkcmVuLFxuICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBxdWV1ZUh5ZHJhdGlvbkVycm9yKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1KTtcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gcmV0cnlTdXNwZW5zZUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgKGRpZFJlY2VpdmVVcGRhdGUgfHxcbiAgICAgICAgICAgICAgcHJvcGFnYXRlUGFyZW50Q29udGV4dENoYW5nZXMoXG4gICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCA9XG4gICAgICAgICAgICAgIDAgIT09IChyZW5kZXJMYW5lcyAmIGN1cnJlbnQuY2hpbGRMYW5lcykpLFxuICAgICAgICAgICAgZGlkUmVjZWl2ZVVwZGF0ZSB8fCBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQgPSB3b3JrSW5Qcm9ncmVzc1Jvb3Q7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIG51bGwgIT09IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCAmJlxuICAgICAgICAgICAgICAoKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1ID0gZ2V0QnVtcGVkTGFuZUZvckh5ZHJhdGlvbihcbiAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQsXG4gICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIDAgIT09IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1ICYmXG4gICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgIT09IHByZXZTdGF0ZS5yZXRyeUxhbmUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHRocm93IChcbiAgICAgICAgICAgICAgICAoKHByZXZTdGF0ZS5yZXRyeUxhbmUgPSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNSksXG4gICAgICAgICAgICAgICAgZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKFxuICAgICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1XG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIoXG4gICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjVcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIFNlbGVjdGl2ZUh5ZHJhdGlvbkV4Y2VwdGlvbilcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlzU3VzcGVuc2VJbnN0YW5jZVBlbmRpbmcoXG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNzI2XG4gICAgICAgICAgICApIHx8IHJlbmRlckRpZFN1c3BlbmREZWxheUlmUG9zc2libGUoKTtcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gcmV0cnlTdXNwZW5zZUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIGlzU3VzcGVuc2VJbnN0YW5jZVBlbmRpbmcoXG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNzI2XG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxOTIpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IGN1cnJlbnQuY2hpbGQpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcyA9IG51bGwpKVxuICAgICAgICAgICAgICA6ICgoY3VycmVudCA9IHByZXZTdGF0ZS50cmVlQ29udGV4dCksXG4gICAgICAgICAgICAgICAgKG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZShcbiAgICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNzI2Lm5leHRTaWJsaW5nXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgKGh5ZHJhdGlvblBhcmVudEZpYmVyID0gd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIChpc0h5ZHJhdGluZyA9ICEwKSxcbiAgICAgICAgICAgICAgICAoaHlkcmF0aW9uRXJyb3JzID0gbnVsbCksXG4gICAgICAgICAgICAgICAgKGRpZFN1c3BlbmRPckVycm9yREVWID0gITEpLFxuICAgICAgICAgICAgICAgIChoeWRyYXRpb25EaWZmUm9vdERFViA9IG51bGwpLFxuICAgICAgICAgICAgICAgIChyb290T3JTaW5nbGV0b25Db250ZXh0ID0gITEpLFxuICAgICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgICAgIHJlc3RvcmVTdXNwZW5kZWRUcmVlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcywgY3VycmVudCksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzID0gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbihcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuY2hpbGRyZW5cbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gNDA5NikpO1xuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9tZXNzYWdlXzI3MjMpXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgcmV1c2VTdXNwZW5zZUhhbmRsZXJPblN0YWNrKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAobmV4dFByaW1hcnlDaGlsZHJlbiA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LmZhbGxiYWNrKSxcbiAgICAgICAgICAobW9kZSA9IHdvcmtJblByb2dyZXNzLm1vZGUpLFxuICAgICAgICAgIChjb21wb25lbnRTdGFjayA9IGN1cnJlbnQuY2hpbGQpLFxuICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjcyNiA9XG4gICAgICAgICAgICBjb21wb25lbnRTdGFjay5zaWJsaW5nKSxcbiAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPSBjcmVhdGVXb3JrSW5Qcm9ncmVzcyhcbiAgICAgICAgICAgIGNvbXBvbmVudFN0YWNrLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtb2RlOiBcImhpZGRlblwiLFxuICAgICAgICAgICAgICBjaGlsZHJlbjogSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuY2hpbGRyZW5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApKSxcbiAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuc3VidHJlZUZsYWdzID1cbiAgICAgICAgICAgIGNvbXBvbmVudFN0YWNrLnN1YnRyZWVGbGFncyAmIDY1MDExNzEyKSxcbiAgICAgICAgICBudWxsICE9PSBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfY29tcG9uZW50U3RhY2tfMjcyNlxuICAgICAgICAgICAgPyAobmV4dFByaW1hcnlDaGlsZHJlbiA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKFxuICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9jb21wb25lbnRTdGFja18yNzI2LFxuICAgICAgICAgICAgICAgIG5leHRQcmltYXJ5Q2hpbGRyZW5cbiAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgIDogKChuZXh0UHJpbWFyeUNoaWxkcmVuID0gY3JlYXRlRmliZXJGcm9tRnJhZ21lbnQoXG4gICAgICAgICAgICAgICAgbmV4dFByaW1hcnlDaGlsZHJlbixcbiAgICAgICAgICAgICAgICBtb2RlLFxuICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIChuZXh0UHJpbWFyeUNoaWxkcmVuLmZsYWdzIHw9IDIpKSxcbiAgICAgICAgICAobmV4dFByaW1hcnlDaGlsZHJlbi5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1LnJldHVybiA9IHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUuc2libGluZyA9IG5leHRQcmltYXJ5Q2hpbGRyZW4pLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1KSxcbiAgICAgICAgICBiYWlsb3V0T2Zmc2NyZWVuQ29tcG9uZW50KG51bGwsIEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9zdGFja18yNzI1KSxcbiAgICAgICAgICAoSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjUgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZCksXG4gICAgICAgICAgKG5leHRQcmltYXJ5Q2hpbGRyZW4gPSBjdXJyZW50LmNoaWxkLm1lbW9pemVkU3RhdGUpLFxuICAgICAgICAgIG51bGwgPT09IG5leHRQcmltYXJ5Q2hpbGRyZW5cbiAgICAgICAgICAgID8gKG5leHRQcmltYXJ5Q2hpbGRyZW4gPSBtb3VudFN1c3BlbnNlT2Zmc2NyZWVuU3RhdGUocmVuZGVyTGFuZXMpKVxuICAgICAgICAgICAgOiAoKG1vZGUgPSBuZXh0UHJpbWFyeUNoaWxkcmVuLmNhY2hlUG9vbCksXG4gICAgICAgICAgICAgIG51bGwgIT09IG1vZGVcbiAgICAgICAgICAgICAgICA/ICgoY29tcG9uZW50U3RhY2sgPSBDYWNoZUNvbnRleHQuX2N1cnJlbnRWYWx1ZSksXG4gICAgICAgICAgICAgICAgICAobW9kZSA9XG4gICAgICAgICAgICAgICAgICAgIG1vZGUucGFyZW50ICE9PSBjb21wb25lbnRTdGFja1xuICAgICAgICAgICAgICAgICAgICAgID8geyBwYXJlbnQ6IGNvbXBvbmVudFN0YWNrLCBwb29sOiBjb21wb25lbnRTdGFjayB9XG4gICAgICAgICAgICAgICAgICAgICAgOiBtb2RlKSlcbiAgICAgICAgICAgICAgICA6IChtb2RlID0gZ2V0U3VzcGVuZGVkQ2FjaGUoKSksXG4gICAgICAgICAgICAgIChuZXh0UHJpbWFyeUNoaWxkcmVuID0ge1xuICAgICAgICAgICAgICAgIGJhc2VMYW5lczogbmV4dFByaW1hcnlDaGlsZHJlbi5iYXNlTGFuZXMgfCByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICBjYWNoZVBvb2w6IG1vZGVcbiAgICAgICAgICAgICAgfSkpLFxuICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5tZW1vaXplZFN0YXRlID1cbiAgICAgICAgICAgIG5leHRQcmltYXJ5Q2hpbGRyZW4pLFxuICAgICAgICAgIChKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5jaGlsZExhbmVzID1cbiAgICAgICAgICAgIGdldFJlbWFpbmluZ1dvcmtJblByaW1hcnlUcmVlKFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfZGlnZXN0XzI3MjQsXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IFNVU1BFTkRFRF9NQVJLRVIpLFxuICAgICAgICAgIGJhaWxvdXRPZmZzY3JlZW5Db21wb25lbnQoXG4gICAgICAgICAgICBjdXJyZW50LmNoaWxkLFxuICAgICAgICAgICAgSlNDb21waWxlcl9vYmplY3RfaW5saW5lX3N0YWNrXzI3MjVcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICBudWxsICE9PSBwcmV2U3RhdGUgJiZcbiAgICAgICAgKHJlbmRlckxhbmVzICYgNjI5MTQ1NjApID09PSByZW5kZXJMYW5lcyAmJlxuICAgICAgICAwICE9PSAocmVuZGVyTGFuZXMgJiBjdXJyZW50LmxhbmVzKSAmJlxuICAgICAgICBtYXJrUmVuZGVyRGVyaXZlZENhdXNlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgIHB1c2hQcmltYXJ5VHJlZVN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICByZW5kZXJMYW5lcyA9IGN1cnJlbnQuY2hpbGQ7XG4gICAgICBjdXJyZW50ID0gcmVuZGVyTGFuZXMuc2libGluZztcbiAgICAgIHJlbmRlckxhbmVzID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MocmVuZGVyTGFuZXMsIHtcbiAgICAgICAgbW9kZTogXCJ2aXNpYmxlXCIsXG4gICAgICAgIGNoaWxkcmVuOiBKU0NvbXBpbGVyX29iamVjdF9pbmxpbmVfc3RhY2tfMjcyNS5jaGlsZHJlblxuICAgICAgfSk7XG4gICAgICByZW5kZXJMYW5lcy5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIHJlbmRlckxhbmVzLnNpYmxpbmcgPSBudWxsO1xuICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAoKEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNCA9IHdvcmtJblByb2dyZXNzLmRlbGV0aW9ucyksXG4gICAgICAgIG51bGwgPT09IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNFxuICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzcy5kZWxldGlvbnMgPSBbY3VycmVudF0pLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDE2KSlcbiAgICAgICAgICA6IEpTQ29tcGlsZXJfb2JqZWN0X2lubGluZV9kaWdlc3RfMjcyNC5wdXNoKGN1cnJlbnQpKTtcbiAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmVuZGVyTGFuZXM7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gbnVsbDtcbiAgICAgIHJldHVybiByZW5kZXJMYW5lcztcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRTdXNwZW5zZVByaW1hcnlDaGlsZHJlbih3b3JrSW5Qcm9ncmVzcywgcHJpbWFyeUNoaWxkcmVuKSB7XG4gICAgICBwcmltYXJ5Q2hpbGRyZW4gPSBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIoXG4gICAgICAgIHsgbW9kZTogXCJ2aXNpYmxlXCIsIGNoaWxkcmVuOiBwcmltYXJ5Q2hpbGRyZW4gfSxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MubW9kZVxuICAgICAgKTtcbiAgICAgIHByaW1hcnlDaGlsZHJlbi5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIHJldHVybiAod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBwcmltYXJ5Q2hpbGRyZW4pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtb3VudFdvcmtJblByb2dyZXNzT2Zmc2NyZWVuRmliZXIob2Zmc2NyZWVuUHJvcHMsIG1vZGUpIHtcbiAgICAgIG9mZnNjcmVlblByb3BzID0gY3JlYXRlRmliZXIoMjIsIG9mZnNjcmVlblByb3BzLCBudWxsLCBtb2RlKTtcbiAgICAgIG9mZnNjcmVlblByb3BzLmxhbmVzID0gMDtcbiAgICAgIHJldHVybiBvZmZzY3JlZW5Qcm9wcztcbiAgICB9XG4gICAgZnVuY3Rpb24gcmV0cnlTdXNwZW5zZUNvbXBvbmVudFdpdGhvdXRIeWRyYXRpbmcoXG4gICAgICBjdXJyZW50LFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICByZW5kZXJMYW5lc1xuICAgICkge1xuICAgICAgcmVjb25jaWxlQ2hpbGRGaWJlcnMod29ya0luUHJvZ3Jlc3MsIGN1cnJlbnQuY2hpbGQsIG51bGwsIHJlbmRlckxhbmVzKTtcbiAgICAgIGN1cnJlbnQgPSBtb3VudFN1c3BlbnNlUHJpbWFyeUNoaWxkcmVuKFxuICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLmNoaWxkcmVuXG4gICAgICApO1xuICAgICAgY3VycmVudC5mbGFncyB8PSAyO1xuICAgICAgd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGw7XG4gICAgICByZXR1cm4gY3VycmVudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2NoZWR1bGVTdXNwZW5zZVdvcmtPbkZpYmVyKGZpYmVyLCByZW5kZXJMYW5lcywgcHJvcGFnYXRpb25Sb290KSB7XG4gICAgICBmaWJlci5sYW5lcyB8PSByZW5kZXJMYW5lcztcbiAgICAgIHZhciBhbHRlcm5hdGUgPSBmaWJlci5hbHRlcm5hdGU7XG4gICAgICBudWxsICE9PSBhbHRlcm5hdGUgJiYgKGFsdGVybmF0ZS5sYW5lcyB8PSByZW5kZXJMYW5lcyk7XG4gICAgICBzY2hlZHVsZUNvbnRleHRXb3JrT25QYXJlbnRQYXRoKFxuICAgICAgICBmaWJlci5yZXR1cm4sXG4gICAgICAgIHJlbmRlckxhbmVzLFxuICAgICAgICBwcm9wYWdhdGlvblJvb3RcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluaXRTdXNwZW5zZUxpc3RSZW5kZXJTdGF0ZShcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgaXNCYWNrd2FyZHMsXG4gICAgICB0YWlsLFxuICAgICAgbGFzdENvbnRlbnRSb3csXG4gICAgICB0YWlsTW9kZSxcbiAgICAgIHRyZWVGb3JrQ291bnRcbiAgICApIHtcbiAgICAgIHZhciByZW5kZXJTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICBudWxsID09PSByZW5kZXJTdGF0ZVxuICAgICAgICA/ICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0ge1xuICAgICAgICAgICAgaXNCYWNrd2FyZHM6IGlzQmFja3dhcmRzLFxuICAgICAgICAgICAgcmVuZGVyaW5nOiBudWxsLFxuICAgICAgICAgICAgcmVuZGVyaW5nU3RhcnRUaW1lOiAwLFxuICAgICAgICAgICAgbGFzdDogbGFzdENvbnRlbnRSb3csXG4gICAgICAgICAgICB0YWlsOiB0YWlsLFxuICAgICAgICAgICAgdGFpbE1vZGU6IHRhaWxNb2RlLFxuICAgICAgICAgICAgdHJlZUZvcmtDb3VudDogdHJlZUZvcmtDb3VudFxuICAgICAgICAgIH0pXG4gICAgICAgIDogKChyZW5kZXJTdGF0ZS5pc0JhY2t3YXJkcyA9IGlzQmFja3dhcmRzKSxcbiAgICAgICAgICAocmVuZGVyU3RhdGUucmVuZGVyaW5nID0gbnVsbCksXG4gICAgICAgICAgKHJlbmRlclN0YXRlLnJlbmRlcmluZ1N0YXJ0VGltZSA9IDApLFxuICAgICAgICAgIChyZW5kZXJTdGF0ZS5sYXN0ID0gbGFzdENvbnRlbnRSb3cpLFxuICAgICAgICAgIChyZW5kZXJTdGF0ZS50YWlsID0gdGFpbCksXG4gICAgICAgICAgKHJlbmRlclN0YXRlLnRhaWxNb2RlID0gdGFpbE1vZGUpLFxuICAgICAgICAgIChyZW5kZXJTdGF0ZS50cmVlRm9ya0NvdW50ID0gdHJlZUZvcmtDb3VudCkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVTdXNwZW5zZUxpc3RDb21wb25lbnQoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gICAgICB2YXIgbmV4dFByb3BzID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLFxuICAgICAgICByZXZlYWxPcmRlciA9IG5leHRQcm9wcy5yZXZlYWxPcmRlcixcbiAgICAgICAgdGFpbE1vZGUgPSBuZXh0UHJvcHMudGFpbCxcbiAgICAgICAgbmV3Q2hpbGRyZW4gPSBuZXh0UHJvcHMuY2hpbGRyZW4sXG4gICAgICAgIHN1c3BlbnNlQ29udGV4dCA9IHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudDtcbiAgICAgIChuZXh0UHJvcHMgPSAwICE9PSAoc3VzcGVuc2VDb250ZXh0ICYgRm9yY2VTdXNwZW5zZUZhbGxiYWNrKSlcbiAgICAgICAgPyAoKHN1c3BlbnNlQ29udGV4dCA9XG4gICAgICAgICAgICAoc3VzcGVuc2VDb250ZXh0ICYgU3VidHJlZVN1c3BlbnNlQ29udGV4dE1hc2spIHxcbiAgICAgICAgICAgIEZvcmNlU3VzcGVuc2VGYWxsYmFjayksXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEyOCkpXG4gICAgICAgIDogKHN1c3BlbnNlQ29udGV4dCAmPSBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzayk7XG4gICAgICBwdXNoKHN1c3BlbnNlU3RhY2tDdXJzb3IsIHN1c3BlbnNlQ29udGV4dCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgc3VzcGVuc2VDb250ZXh0ID0gbnVsbCA9PSByZXZlYWxPcmRlciA/IFwibnVsbFwiIDogcmV2ZWFsT3JkZXI7XG4gICAgICBpZiAoXG4gICAgICAgIFwiZm9yd2FyZHNcIiAhPT0gcmV2ZWFsT3JkZXIgJiZcbiAgICAgICAgXCJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzXCIgIT09IHJldmVhbE9yZGVyICYmXG4gICAgICAgIFwidG9nZXRoZXJcIiAhPT0gcmV2ZWFsT3JkZXIgJiZcbiAgICAgICAgXCJpbmRlcGVuZGVudFwiICE9PSByZXZlYWxPcmRlciAmJlxuICAgICAgICAhZGlkV2FybkFib3V0UmV2ZWFsT3JkZXJbc3VzcGVuc2VDb250ZXh0XVxuICAgICAgKVxuICAgICAgICBpZiAoXG4gICAgICAgICAgKChkaWRXYXJuQWJvdXRSZXZlYWxPcmRlcltzdXNwZW5zZUNvbnRleHRdID0gITApLCBudWxsID09IHJldmVhbE9yZGVyKVxuICAgICAgICApXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICdUaGUgZGVmYXVsdCBmb3IgdGhlIDxTdXNwZW5zZUxpc3QgcmV2ZWFsT3JkZXI9XCIuLi5cIj4gcHJvcCBpcyBjaGFuZ2luZy4gVG8gYmUgZnV0dXJlIGNvbXBhdGlibGUgeW91IG11c3QgZXhwbGljdGx5IHNwZWNpZnkgZWl0aGVyIFwiaW5kZXBlbmRlbnRcIiAodGhlIGN1cnJlbnQgZGVmYXVsdCksIFwidG9nZXRoZXJcIiwgXCJmb3J3YXJkc1wiIG9yIFwibGVnYWN5X3Vuc3RhYmxlLWJhY2t3YXJkc1wiLidcbiAgICAgICAgICApO1xuICAgICAgICBlbHNlIGlmIChcImJhY2t3YXJkc1wiID09PSByZXZlYWxPcmRlcilcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ1RoZSByZW5kZXJpbmcgb3JkZXIgb2YgPFN1c3BlbnNlTGlzdCByZXZlYWxPcmRlcj1cImJhY2t3YXJkc1wiPiBpcyBjaGFuZ2luZy4gVG8gYmUgZnV0dXJlIGNvbXBhdGlibGUgeW91IG11c3Qgc3BlY2lmeSByZXZlYWxPcmRlcj1cImxlZ2FjeV91bnN0YWJsZS1iYWNrd2FyZHNcIiBpbnN0ZWFkLidcbiAgICAgICAgICApO1xuICAgICAgICBlbHNlIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgcmV2ZWFsT3JkZXIpXG4gICAgICAgICAgc3dpdGNoIChyZXZlYWxPcmRlci50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICBjYXNlIFwidG9nZXRoZXJcIjpcbiAgICAgICAgICAgIGNhc2UgXCJmb3J3YXJkc1wiOlxuICAgICAgICAgICAgY2FzZSBcImJhY2t3YXJkc1wiOlxuICAgICAgICAgICAgY2FzZSBcImluZGVwZW5kZW50XCI6XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgJ1wiJXNcIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gVXNlIGxvd2VyY2FzZSBcIiVzXCIgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgIHJldmVhbE9yZGVyLFxuICAgICAgICAgICAgICAgIHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiZm9yd2FyZFwiOlxuICAgICAgICAgICAgY2FzZSBcImJhY2t3YXJkXCI6XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgJ1wiJXNcIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgcmV2ZWFsT3JkZXIgb24gPFN1c3BlbnNlTGlzdCAvPi4gUmVhY3QgdXNlcyB0aGUgLXMgc3VmZml4IGluIHRoZSBzcGVsbGluZy4gVXNlIFwiJXNzXCIgaW5zdGVhZC4nLFxuICAgICAgICAgICAgICAgIHJldmVhbE9yZGVyLFxuICAgICAgICAgICAgICAgIHJldmVhbE9yZGVyLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdcIiVzXCIgaXMgbm90IGEgc3VwcG9ydGVkIHJldmVhbE9yZGVyIG9uIDxTdXNwZW5zZUxpc3QgLz4uIERpZCB5b3UgbWVhbiBcImluZGVwZW5kZW50XCIsIFwidG9nZXRoZXJcIiwgXCJmb3J3YXJkc1wiIG9yIFwiYmFja3dhcmRzXCI/JyxcbiAgICAgICAgICAgICAgICByZXZlYWxPcmRlclxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAnJXMgaXMgbm90IGEgc3VwcG9ydGVkIHZhbHVlIGZvciByZXZlYWxPcmRlciBvbiA8U3VzcGVuc2VMaXN0IC8+LiBEaWQgeW91IG1lYW4gXCJpbmRlcGVuZGVudFwiLCBcInRvZ2V0aGVyXCIsIFwiZm9yd2FyZHNcIiBvciBcImJhY2t3YXJkc1wiPycsXG4gICAgICAgICAgICByZXZlYWxPcmRlclxuICAgICAgICAgICk7XG4gICAgICBzdXNwZW5zZUNvbnRleHQgPSBudWxsID09IHRhaWxNb2RlID8gXCJudWxsXCIgOiB0YWlsTW9kZTtcbiAgICAgIGlmICghZGlkV2FybkFib3V0VGFpbE9wdGlvbnNbc3VzcGVuc2VDb250ZXh0XSlcbiAgICAgICAgaWYgKG51bGwgPT0gdGFpbE1vZGUpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBcImZvcndhcmRzXCIgPT09IHJldmVhbE9yZGVyIHx8XG4gICAgICAgICAgICBcImJhY2t3YXJkc1wiID09PSByZXZlYWxPcmRlciB8fFxuICAgICAgICAgICAgXCJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzXCIgPT09IHJldmVhbE9yZGVyXG4gICAgICAgICAgKVxuICAgICAgICAgICAgKGRpZFdhcm5BYm91dFRhaWxPcHRpb25zW3N1c3BlbnNlQ29udGV4dF0gPSAhMCksXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgJ1RoZSBkZWZhdWx0IGZvciB0aGUgPFN1c3BlbnNlTGlzdCB0YWlsPVwiLi4uXCI+IHByb3AgaXMgY2hhbmdpbmcuIFRvIGJlIGZ1dHVyZSBjb21wYXRpYmxlIHlvdSBtdXN0IGV4cGxpY3RseSBzcGVjaWZ5IGVpdGhlciBcInZpc2libGVcIiAodGhlIGN1cnJlbnQgZGVmYXVsdCksIFwiY29sbGFwc2VkXCIgb3IgXCJoaWRkZW5cIi4nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIFwidmlzaWJsZVwiICE9PSB0YWlsTW9kZSAmJlxuICAgICAgICAgIFwiY29sbGFwc2VkXCIgIT09IHRhaWxNb2RlICYmXG4gICAgICAgICAgXCJoaWRkZW5cIiAhPT0gdGFpbE1vZGVcbiAgICAgICAgICAgID8gKChkaWRXYXJuQWJvdXRUYWlsT3B0aW9uc1tzdXNwZW5zZUNvbnRleHRdID0gITApLFxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdcIiVzXCIgaXMgbm90IGEgc3VwcG9ydGVkIHZhbHVlIGZvciB0YWlsIG9uIDxTdXNwZW5zZUxpc3QgLz4uIERpZCB5b3UgbWVhbiBcInZpc2libGVcIiwgXCJjb2xsYXBzZWRcIiBvciBcImhpZGRlblwiPycsXG4gICAgICAgICAgICAgICAgdGFpbE1vZGVcbiAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgIDogXCJmb3J3YXJkc1wiICE9PSByZXZlYWxPcmRlciAmJlxuICAgICAgICAgICAgICBcImJhY2t3YXJkc1wiICE9PSByZXZlYWxPcmRlciAmJlxuICAgICAgICAgICAgICBcInVuc3RhYmxlX2xlZ2FjeS1iYWNrd2FyZHNcIiAhPT0gcmV2ZWFsT3JkZXIgJiZcbiAgICAgICAgICAgICAgKChkaWRXYXJuQWJvdXRUYWlsT3B0aW9uc1tzdXNwZW5zZUNvbnRleHRdID0gITApLFxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICc8U3VzcGVuc2VMaXN0IHRhaWw9XCIlc1wiIC8+IGlzIG9ubHkgdmFsaWQgaWYgcmV2ZWFsT3JkZXIgaXMgXCJmb3J3YXJkc1wiIG9yIFwiYmFja3dhcmRzXCIuIERpZCB5b3UgbWVhbiB0byBzcGVjaWZ5IHJldmVhbE9yZGVyPVwiZm9yd2FyZHNcIj8nLFxuICAgICAgICAgICAgICAgIHRhaWxNb2RlXG4gICAgICAgICAgICAgICkpO1xuICAgICAgYTogaWYgKFxuICAgICAgICAoXCJmb3J3YXJkc1wiID09PSByZXZlYWxPcmRlciB8fFxuICAgICAgICAgIFwiYmFja3dhcmRzXCIgPT09IHJldmVhbE9yZGVyIHx8XG4gICAgICAgICAgXCJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzXCIgPT09IHJldmVhbE9yZGVyKSAmJlxuICAgICAgICB2b2lkIDAgIT09IG5ld0NoaWxkcmVuICYmXG4gICAgICAgIG51bGwgIT09IG5ld0NoaWxkcmVuICYmXG4gICAgICAgICExICE9PSBuZXdDaGlsZHJlblxuICAgICAgKVxuICAgICAgICBpZiAoaXNBcnJheUltcGwobmV3Q2hpbGRyZW4pKVxuICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICBzdXNwZW5zZUNvbnRleHQgPSAwO1xuICAgICAgICAgICAgc3VzcGVuc2VDb250ZXh0IDwgbmV3Q2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICAgICAgc3VzcGVuc2VDb250ZXh0KytcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgIXZhbGlkYXRlU3VzcGVuc2VMaXN0TmVzdGVkQ2hpbGQoXG4gICAgICAgICAgICAgICAgbmV3Q2hpbGRyZW5bc3VzcGVuc2VDb250ZXh0XSxcbiAgICAgICAgICAgICAgICBzdXNwZW5zZUNvbnRleHRcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgKChzdXNwZW5zZUNvbnRleHQgPSBnZXRJdGVyYXRvckZuKG5ld0NoaWxkcmVuKSksXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2Ygc3VzcGVuc2VDb250ZXh0KVxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoKHN1c3BlbnNlQ29udGV4dCA9IHN1c3BlbnNlQ29udGV4dC5jYWxsKG5ld0NoaWxkcmVuKSkpXG4gICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICB2YXIgc3RlcCA9IHN1c3BlbnNlQ29udGV4dC5uZXh0KCksIF9pID0gMDtcbiAgICAgICAgICAgICAgIXN0ZXAuZG9uZTtcbiAgICAgICAgICAgICAgc3RlcCA9IHN1c3BlbnNlQ29udGV4dC5uZXh0KClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBpZiAoIXZhbGlkYXRlU3VzcGVuc2VMaXN0TmVzdGVkQ2hpbGQoc3RlcC52YWx1ZSwgX2kpKSBicmVhayBhO1xuICAgICAgICAgICAgICBfaSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2VcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ0Egc2luZ2xlIHJvdyB3YXMgcGFzc2VkIHRvIGEgPFN1c3BlbnNlTGlzdCByZXZlYWxPcmRlcj1cIiVzXCIgLz4uIFRoaXMgaXMgbm90IHVzZWZ1bCBzaW5jZSBpdCBuZWVkcyBtdWx0aXBsZSByb3dzLiBEaWQgeW91IG1lYW4gdG8gcGFzcyBtdWx0aXBsZSBjaGlsZHJlbiBvciBhbiBhcnJheT8nLFxuICAgICAgICAgICAgcmV2ZWFsT3JkZXJcbiAgICAgICAgICApO1xuICAgICAgcmVjb25jaWxlQ2hpbGRyZW4oY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIG5ld0NoaWxkcmVuLCByZW5kZXJMYW5lcyk7XG4gICAgICBpc0h5ZHJhdGluZ1xuICAgICAgICA/ICh3YXJuSWZOb3RIeWRyYXRpbmcoKSwgKG5ld0NoaWxkcmVuID0gdHJlZUZvcmtDb3VudCkpXG4gICAgICAgIDogKG5ld0NoaWxkcmVuID0gMCk7XG4gICAgICBpZiAoIW5leHRQcm9wcyAmJiBudWxsICE9PSBjdXJyZW50ICYmIDAgIT09IChjdXJyZW50LmZsYWdzICYgMTI4KSlcbiAgICAgICAgYTogZm9yIChjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7IG51bGwgIT09IGN1cnJlbnQ7ICkge1xuICAgICAgICAgIGlmICgxMyA9PT0gY3VycmVudC50YWcpXG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgICAgc2NoZWR1bGVTdXNwZW5zZVdvcmtPbkZpYmVyKGN1cnJlbnQsIHJlbmRlckxhbmVzLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgZWxzZSBpZiAoMTkgPT09IGN1cnJlbnQudGFnKVxuICAgICAgICAgICAgc2NoZWR1bGVTdXNwZW5zZVdvcmtPbkZpYmVyKGN1cnJlbnQsIHJlbmRlckxhbmVzLCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgZWxzZSBpZiAobnVsbCAhPT0gY3VycmVudC5jaGlsZCkge1xuICAgICAgICAgICAgY3VycmVudC5jaGlsZC5yZXR1cm4gPSBjdXJyZW50O1xuICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuY2hpbGQ7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnQgPT09IHdvcmtJblByb2dyZXNzKSBicmVhayBhO1xuICAgICAgICAgIGZvciAoOyBudWxsID09PSBjdXJyZW50LnNpYmxpbmc7ICkge1xuICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQucmV0dXJuIHx8IGN1cnJlbnQucmV0dXJuID09PSB3b3JrSW5Qcm9ncmVzcylcbiAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY3VycmVudC5zaWJsaW5nLnJldHVybiA9IGN1cnJlbnQucmV0dXJuO1xuICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LnNpYmxpbmc7XG4gICAgICAgIH1cbiAgICAgIHN3aXRjaCAocmV2ZWFsT3JkZXIpIHtcbiAgICAgICAgY2FzZSBcImZvcndhcmRzXCI6XG4gICAgICAgICAgcmVuZGVyTGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICAgICAgICBmb3IgKHJldmVhbE9yZGVyID0gbnVsbDsgbnVsbCAhPT0gcmVuZGVyTGFuZXM7IClcbiAgICAgICAgICAgIChjdXJyZW50ID0gcmVuZGVyTGFuZXMuYWx0ZXJuYXRlKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgICAgICAgIG51bGwgPT09IGZpbmRGaXJzdFN1c3BlbmRlZChjdXJyZW50KSAmJlxuICAgICAgICAgICAgICAgIChyZXZlYWxPcmRlciA9IHJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgICAgKHJlbmRlckxhbmVzID0gcmVuZGVyTGFuZXMuc2libGluZyk7XG4gICAgICAgICAgcmVuZGVyTGFuZXMgPSByZXZlYWxPcmRlcjtcbiAgICAgICAgICBudWxsID09PSByZW5kZXJMYW5lc1xuICAgICAgICAgICAgPyAoKHJldmVhbE9yZGVyID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQpLFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBudWxsKSlcbiAgICAgICAgICAgIDogKChyZXZlYWxPcmRlciA9IHJlbmRlckxhbmVzLnNpYmxpbmcpLFxuICAgICAgICAgICAgICAocmVuZGVyTGFuZXMuc2libGluZyA9IG51bGwpKTtcbiAgICAgICAgICBpbml0U3VzcGVuc2VMaXN0UmVuZGVyU3RhdGUoXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICExLFxuICAgICAgICAgICAgcmV2ZWFsT3JkZXIsXG4gICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgIHRhaWxNb2RlLFxuICAgICAgICAgICAgbmV3Q2hpbGRyZW5cbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiYmFja3dhcmRzXCI6XG4gICAgICAgIGNhc2UgXCJ1bnN0YWJsZV9sZWdhY3ktYmFja3dhcmRzXCI6XG4gICAgICAgICAgcmVuZGVyTGFuZXMgPSBudWxsO1xuICAgICAgICAgIHJldmVhbE9yZGVyID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICAgICAgZm9yICh3b3JrSW5Qcm9ncmVzcy5jaGlsZCA9IG51bGw7IG51bGwgIT09IHJldmVhbE9yZGVyOyApIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPSByZXZlYWxPcmRlci5hbHRlcm5hdGU7XG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudCAmJiBudWxsID09PSBmaW5kRmlyc3RTdXNwZW5kZWQoY3VycmVudCkpIHtcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZXZlYWxPcmRlcjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdXJyZW50ID0gcmV2ZWFsT3JkZXIuc2libGluZztcbiAgICAgICAgICAgIHJldmVhbE9yZGVyLnNpYmxpbmcgPSByZW5kZXJMYW5lcztcbiAgICAgICAgICAgIHJlbmRlckxhbmVzID0gcmV2ZWFsT3JkZXI7XG4gICAgICAgICAgICByZXZlYWxPcmRlciA9IGN1cnJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGluaXRTdXNwZW5zZUxpc3RSZW5kZXJTdGF0ZShcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgITAsXG4gICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICB0YWlsTW9kZSxcbiAgICAgICAgICAgIG5ld0NoaWxkcmVuXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRvZ2V0aGVyXCI6XG4gICAgICAgICAgaW5pdFN1c3BlbnNlTGlzdFJlbmRlclN0YXRlKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAhMSxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgbmV3Q2hpbGRyZW5cbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgIH1cbiAgICBmdW5jdGlvbiBiYWlsb3V0T25BbHJlYWR5RmluaXNoZWRXb3JrKFxuICAgICAgY3VycmVudCxcbiAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIG51bGwgIT09IGN1cnJlbnQgJiYgKHdvcmtJblByb2dyZXNzLmRlcGVuZGVuY2llcyA9IGN1cnJlbnQuZGVwZW5kZW5jaWVzKTtcbiAgICAgIHByb2ZpbGVyU3RhcnRUaW1lID0gLTE7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgfD0gd29ya0luUHJvZ3Jlc3MubGFuZXM7XG4gICAgICBpZiAoMCA9PT0gKHJlbmRlckxhbmVzICYgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcykpXG4gICAgICAgIGlmIChudWxsICE9PSBjdXJyZW50KSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHByb3BhZ2F0ZVBhcmVudENvbnRleHRDaGFuZ2VzKFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICExXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgMCA9PT0gKHJlbmRlckxhbmVzICYgd29ya0luUHJvZ3Jlc3MuY2hpbGRMYW5lcykpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0gZWxzZSByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChudWxsICE9PSBjdXJyZW50ICYmIHdvcmtJblByb2dyZXNzLmNoaWxkICE9PSBjdXJyZW50LmNoaWxkKVxuICAgICAgICB0aHJvdyBFcnJvcihcIlJlc3VtaW5nIHdvcmsgbm90IHlldCBpbXBsZW1lbnRlZC5cIik7XG4gICAgICBpZiAobnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MuY2hpbGQpIHtcbiAgICAgICAgY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICByZW5kZXJMYW5lcyA9IGNyZWF0ZVdvcmtJblByb2dyZXNzKGN1cnJlbnQsIGN1cnJlbnQucGVuZGluZ1Byb3BzKTtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZW5kZXJMYW5lcztcbiAgICAgICAgZm9yIChyZW5kZXJMYW5lcy5yZXR1cm4gPSB3b3JrSW5Qcm9ncmVzczsgbnVsbCAhPT0gY3VycmVudC5zaWJsaW5nOyApXG4gICAgICAgICAgKGN1cnJlbnQgPSBjdXJyZW50LnNpYmxpbmcpLFxuICAgICAgICAgICAgKHJlbmRlckxhbmVzID0gcmVuZGVyTGFuZXMuc2libGluZyA9XG4gICAgICAgICAgICAgIGNyZWF0ZVdvcmtJblByb2dyZXNzKGN1cnJlbnQsIGN1cnJlbnQucGVuZGluZ1Byb3BzKSksXG4gICAgICAgICAgICAocmVuZGVyTGFuZXMucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICByZW5kZXJMYW5lcy5zaWJsaW5nID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcy5jaGlsZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQoY3VycmVudCwgcmVuZGVyTGFuZXMpIHtcbiAgICAgIGlmICgwICE9PSAoY3VycmVudC5sYW5lcyAmIHJlbmRlckxhbmVzKSkgcmV0dXJuICEwO1xuICAgICAgY3VycmVudCA9IGN1cnJlbnQuZGVwZW5kZW5jaWVzO1xuICAgICAgcmV0dXJuIG51bGwgIT09IGN1cnJlbnQgJiYgY2hlY2tJZkNvbnRleHRDaGFuZ2VkKGN1cnJlbnQpID8gITAgOiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYXR0ZW1wdEVhcmx5QmFpbG91dElmTm9TY2hlZHVsZWRVcGRhdGUoXG4gICAgICBjdXJyZW50LFxuICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICByZW5kZXJMYW5lc1xuICAgICkge1xuICAgICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIHB1c2hIb3N0Q29udGFpbmVyKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUuY29udGFpbmVySW5mb1xuICAgICAgICAgICk7XG4gICAgICAgICAgcHVzaFByb3ZpZGVyKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICBDYWNoZUNvbnRleHQsXG4gICAgICAgICAgICBjdXJyZW50Lm1lbW9pemVkU3RhdGUuY2FjaGVcbiAgICAgICAgICApO1xuICAgICAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHB1c2hIb3N0Q29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBwdXNoSG9zdENvbnRhaW5lcihcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm9cbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgIHB1c2hQcm92aWRlcihcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHMudmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIDAgIT09IChyZW5kZXJMYW5lcyAmIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMpICYmXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gNCk7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMjA0ODtcbiAgICAgICAgICB2YXIgc3RhdGVOb2RlID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICAgICAgICAgIHN0YXRlTm9kZS5lZmZlY3REdXJhdGlvbiA9IC0wO1xuICAgICAgICAgIHN0YXRlTm9kZS5wYXNzaXZlRWZmZWN0RHVyYXRpb24gPSAtMDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICBpZiAobnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSlcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxMjgpLFxuICAgICAgICAgICAgICBwdXNoRGVoeWRyYXRlZEFjdGl2aXR5U3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICBzdGF0ZU5vZGUgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgIGlmIChudWxsICE9PSBzdGF0ZU5vZGUpIHtcbiAgICAgICAgICAgIGlmIChudWxsICE9PSBzdGF0ZU5vZGUuZGVoeWRyYXRlZClcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBwdXNoUHJpbWFyeVRyZWVTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxMjgpLFxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICgwICE9PSAocmVuZGVyTGFuZXMgJiB3b3JrSW5Qcm9ncmVzcy5jaGlsZC5jaGlsZExhbmVzKSlcbiAgICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlQ29tcG9uZW50KFxuICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHB1c2hQcmltYXJ5VHJlZVN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICBjdXJyZW50ID0gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIG51bGwgIT09IGN1cnJlbnQgPyBjdXJyZW50LnNpYmxpbmcgOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBwdXNoUHJpbWFyeVRyZWVTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgIHZhciBkaWRTdXNwZW5kQmVmb3JlID0gMCAhPT0gKGN1cnJlbnQuZmxhZ3MgJiAxMjgpO1xuICAgICAgICAgIHN0YXRlTm9kZSA9IDAgIT09IChyZW5kZXJMYW5lcyAmIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMpO1xuICAgICAgICAgIHN0YXRlTm9kZSB8fFxuICAgICAgICAgICAgKHByb3BhZ2F0ZVBhcmVudENvbnRleHRDaGFuZ2VzKFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICExXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKHN0YXRlTm9kZSA9IDAgIT09IChyZW5kZXJMYW5lcyAmIHdvcmtJblByb2dyZXNzLmNoaWxkTGFuZXMpKSk7XG4gICAgICAgICAgaWYgKGRpZFN1c3BlbmRCZWZvcmUpIHtcbiAgICAgICAgICAgIGlmIChzdGF0ZU5vZGUpXG4gICAgICAgICAgICAgIHJldHVybiB1cGRhdGVTdXNwZW5zZUxpc3RDb21wb25lbnQoXG4gICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTI4O1xuICAgICAgICAgIH1cbiAgICAgICAgICBkaWRTdXNwZW5kQmVmb3JlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICBudWxsICE9PSBkaWRTdXNwZW5kQmVmb3JlICYmXG4gICAgICAgICAgICAoKGRpZFN1c3BlbmRCZWZvcmUucmVuZGVyaW5nID0gbnVsbCksXG4gICAgICAgICAgICAoZGlkU3VzcGVuZEJlZm9yZS50YWlsID0gbnVsbCksXG4gICAgICAgICAgICAoZGlkU3VzcGVuZEJlZm9yZS5sYXN0RWZmZWN0ID0gbnVsbCkpO1xuICAgICAgICAgIHB1c2goXG4gICAgICAgICAgICBzdXNwZW5zZVN0YWNrQ3Vyc29yLFxuICAgICAgICAgICAgc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50LFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChzdGF0ZU5vZGUpIGJyZWFrO1xuICAgICAgICAgIGVsc2UgcmV0dXJuIG51bGw7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IDApLFxuICAgICAgICAgICAgdXBkYXRlT2Zmc2NyZWVuQ29tcG9uZW50KFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wc1xuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgcHVzaFByb3ZpZGVyKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICBDYWNoZUNvbnRleHQsXG4gICAgICAgICAgICBjdXJyZW50Lm1lbW9pemVkU3RhdGUuY2FjaGVcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGJhaWxvdXRPbkFscmVhZHlGaW5pc2hlZFdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYmVnaW5Xb3JrKGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcykge1xuICAgICAgaWYgKHdvcmtJblByb2dyZXNzLl9kZWJ1Z05lZWRzUmVtb3VudCAmJiBudWxsICE9PSBjdXJyZW50KSB7XG4gICAgICAgIHJlbmRlckxhbmVzID0gY3JlYXRlRmliZXJGcm9tVHlwZUFuZFByb3BzKFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUsXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3Mua2V5LFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5fZGVidWdPd25lciB8fCBudWxsLFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLm1vZGUsXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MubGFuZXNcbiAgICAgICAgKTtcbiAgICAgICAgcmVuZGVyTGFuZXMuX2RlYnVnU3RhY2sgPSB3b3JrSW5Qcm9ncmVzcy5fZGVidWdTdGFjaztcbiAgICAgICAgcmVuZGVyTGFuZXMuX2RlYnVnVGFzayA9IHdvcmtJblByb2dyZXNzLl9kZWJ1Z1Rhc2s7XG4gICAgICAgIHZhciByZXR1cm5GaWJlciA9IHdvcmtJblByb2dyZXNzLnJldHVybjtcbiAgICAgICAgaWYgKG51bGwgPT09IHJldHVybkZpYmVyKSB0aHJvdyBFcnJvcihcIkNhbm5vdCBzd2FwIHRoZSByb290IGZpYmVyLlwiKTtcbiAgICAgICAgY3VycmVudC5hbHRlcm5hdGUgPSBudWxsO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGUgPSBudWxsO1xuICAgICAgICByZW5kZXJMYW5lcy5pbmRleCA9IHdvcmtJblByb2dyZXNzLmluZGV4O1xuICAgICAgICByZW5kZXJMYW5lcy5zaWJsaW5nID0gd29ya0luUHJvZ3Jlc3Muc2libGluZztcbiAgICAgICAgcmVuZGVyTGFuZXMucmV0dXJuID0gd29ya0luUHJvZ3Jlc3MucmV0dXJuO1xuICAgICAgICByZW5kZXJMYW5lcy5yZWYgPSB3b3JrSW5Qcm9ncmVzcy5yZWY7XG4gICAgICAgIHJlbmRlckxhbmVzLl9kZWJ1Z0luZm8gPSB3b3JrSW5Qcm9ncmVzcy5fZGVidWdJbmZvO1xuICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3MgPT09IHJldHVybkZpYmVyLmNoaWxkKVxuICAgICAgICAgIHJldHVybkZpYmVyLmNoaWxkID0gcmVuZGVyTGFuZXM7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHZhciBwcmV2U2libGluZyA9IHJldHVybkZpYmVyLmNoaWxkO1xuICAgICAgICAgIGlmIChudWxsID09PSBwcmV2U2libGluZylcbiAgICAgICAgICAgIHRocm93IEVycm9yKFwiRXhwZWN0ZWQgcGFyZW50IHRvIGhhdmUgYSBjaGlsZC5cIik7XG4gICAgICAgICAgZm9yICg7IHByZXZTaWJsaW5nLnNpYmxpbmcgIT09IHdvcmtJblByb2dyZXNzOyApXG4gICAgICAgICAgICBpZiAoKChwcmV2U2libGluZyA9IHByZXZTaWJsaW5nLnNpYmxpbmcpLCBudWxsID09PSBwcmV2U2libGluZykpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFwiRXhwZWN0ZWQgdG8gZmluZCB0aGUgcHJldmlvdXMgc2libGluZy5cIik7XG4gICAgICAgICAgcHJldlNpYmxpbmcuc2libGluZyA9IHJlbmRlckxhbmVzO1xuICAgICAgICB9XG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gcmV0dXJuRmliZXIuZGVsZXRpb25zO1xuICAgICAgICBudWxsID09PSB3b3JrSW5Qcm9ncmVzc1xuICAgICAgICAgID8gKChyZXR1cm5GaWJlci5kZWxldGlvbnMgPSBbY3VycmVudF0pLCAocmV0dXJuRmliZXIuZmxhZ3MgfD0gMTYpKVxuICAgICAgICAgIDogd29ya0luUHJvZ3Jlc3MucHVzaChjdXJyZW50KTtcbiAgICAgICAgcmVuZGVyTGFuZXMuZmxhZ3MgfD0gMjtcbiAgICAgICAgcmV0dXJuIHJlbmRlckxhbmVzO1xuICAgICAgfVxuICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQpXG4gICAgICAgIGlmIChcbiAgICAgICAgICBjdXJyZW50Lm1lbW9pemVkUHJvcHMgIT09IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyB8fFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUgIT09IGN1cnJlbnQudHlwZVxuICAgICAgICApXG4gICAgICAgICAgZGlkUmVjZWl2ZVVwZGF0ZSA9ICEwO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY2hlY2tTY2hlZHVsZWRVcGRhdGVPckNvbnRleHQoY3VycmVudCwgcmVuZGVyTGFuZXMpICYmXG4gICAgICAgICAgICAwID09PSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiAxMjgpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGRpZFJlY2VpdmVVcGRhdGUgPSAhMSksXG4gICAgICAgICAgICAgIGF0dGVtcHRFYXJseUJhaWxvdXRJZk5vU2NoZWR1bGVkVXBkYXRlKFxuICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBkaWRSZWNlaXZlVXBkYXRlID0gMCAhPT0gKGN1cnJlbnQuZmxhZ3MgJiAxMzEwNzIpID8gITAgOiAhMTtcbiAgICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGRpZFJlY2VpdmVVcGRhdGUgPSAhMTtcbiAgICAgICAgaWYgKChyZXR1cm5GaWJlciA9IGlzSHlkcmF0aW5nKSlcbiAgICAgICAgICB3YXJuSWZOb3RIeWRyYXRpbmcoKSxcbiAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IDAgIT09ICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDEwNDg1NzYpKTtcbiAgICAgICAgcmV0dXJuRmliZXIgJiZcbiAgICAgICAgICAoKHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MuaW5kZXgpLFxuICAgICAgICAgIHdhcm5JZk5vdEh5ZHJhdGluZygpLFxuICAgICAgICAgIHB1c2hUcmVlSWQod29ya0luUHJvZ3Jlc3MsIHRyZWVGb3JrQ291bnQsIHJldHVybkZpYmVyKSk7XG4gICAgICB9XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IDA7XG4gICAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgICBjYXNlIDE2OlxuICAgICAgICAgIGE6IGlmIChcbiAgICAgICAgICAgICgocmV0dXJuRmliZXIgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMpLFxuICAgICAgICAgICAgKGN1cnJlbnQgPSByZXNvbHZlTGF6eSh3b3JrSW5Qcm9ncmVzcy5lbGVtZW50VHlwZSkpLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50KSxcbiAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGN1cnJlbnQpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgc2hvdWxkQ29uc3RydWN0KGN1cnJlbnQpXG4gICAgICAgICAgICAgID8gKChyZXR1cm5GaWJlciA9IHJlc29sdmVDbGFzc0NvbXBvbmVudFByb3BzKFxuICAgICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLnRhZyA9IDEpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy50eXBlID0gY3VycmVudCA9XG4gICAgICAgICAgICAgICAgICByZXNvbHZlRnVuY3Rpb25Gb3JIb3RSZWxvYWRpbmcoY3VycmVudCkpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcyA9IHVwZGF0ZUNsYXNzQ29tcG9uZW50KFxuICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICApKSlcbiAgICAgICAgICAgICAgOiAoKHdvcmtJblByb2dyZXNzLnRhZyA9IDApLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlRnVuY3Rpb25Db21wb25lbnRJbkRldih3b3JrSW5Qcm9ncmVzcywgY3VycmVudCksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLnR5cGUgPSBjdXJyZW50ID1cbiAgICAgICAgICAgICAgICAgIHJlc29sdmVGdW5jdGlvbkZvckhvdFJlbG9hZGluZyhjdXJyZW50KSksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzID0gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQoXG4gICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICkpKTtcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmICh2b2lkIDAgIT09IGN1cnJlbnQgJiYgbnVsbCAhPT0gY3VycmVudClcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICgocHJldlNpYmxpbmcgPSBjdXJyZW50LiQkdHlwZW9mKSxcbiAgICAgICAgICAgICAgICBwcmV2U2libGluZyA9PT0gUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSlcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudGFnID0gMTE7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSA9IGN1cnJlbnQgPVxuICAgICAgICAgICAgICAgICAgcmVzb2x2ZUZvcndhcmRSZWZGb3JIb3RSZWxvYWRpbmcoY3VycmVudCk7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSB1cGRhdGVGb3J3YXJkUmVmKFxuICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJldlNpYmxpbmcgPT09IFJFQUNUX01FTU9fVFlQRSkge1xuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnRhZyA9IDE0O1xuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gdXBkYXRlTWVtb0NvbXBvbmVudChcbiAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IFwiXCI7XG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBjdXJyZW50ICYmXG4gICAgICAgICAgICAgIGN1cnJlbnQuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSAmJlxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MgPVxuICAgICAgICAgICAgICAgIFwiIERpZCB5b3Ugd3JhcCBhIGNvbXBvbmVudCBpbiBSZWFjdC5sYXp5KCkgbW9yZSB0aGFuIG9uY2U/XCIpO1xuICAgICAgICAgICAgcmVuZGVyTGFuZXMgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoY3VycmVudCkgfHwgY3VycmVudDtcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICBcIkVsZW1lbnQgdHlwZSBpcyBpbnZhbGlkLiBSZWNlaXZlZCBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0bzogXCIgK1xuICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzICtcbiAgICAgICAgICAgICAgICBcIi4gTGF6eSBlbGVtZW50IHR5cGUgbXVzdCByZXNvbHZlIHRvIGEgY2xhc3Mgb3IgZnVuY3Rpb24uXCIgK1xuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3M7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICByZXR1cm4gdXBkYXRlRnVuY3Rpb25Db21wb25lbnQoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLFxuICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHdvcmtJblByb2dyZXNzLnR5cGUpLFxuICAgICAgICAgICAgKHByZXZTaWJsaW5nID0gcmVzb2x2ZUNsYXNzQ29tcG9uZW50UHJvcHMoXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHNcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgdXBkYXRlQ2xhc3NDb21wb25lbnQoXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgcHJldlNpYmxpbmcsXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgIHB1c2hIb3N0Q29udGFpbmVyKFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm9cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudClcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJTaG91bGQgaGF2ZSBhIGN1cnJlbnQgZmliZXIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzO1xuICAgICAgICAgICAgdmFyIHByZXZTdGF0ZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgICBwcmV2U2libGluZyA9IHByZXZTdGF0ZS5lbGVtZW50O1xuICAgICAgICAgICAgY2xvbmVVcGRhdGVRdWV1ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIHJldHVybkZpYmVyLCBudWxsLCByZW5kZXJMYW5lcyk7XG4gICAgICAgICAgICB2YXIgbmV4dFN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICAgIHJldHVybkZpYmVyID0gbmV4dFN0YXRlLmNhY2hlO1xuICAgICAgICAgICAgcHVzaFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCBDYWNoZUNvbnRleHQsIHJldHVybkZpYmVyKTtcbiAgICAgICAgICAgIHJldHVybkZpYmVyICE9PSBwcmV2U3RhdGUuY2FjaGUgJiZcbiAgICAgICAgICAgICAgcHJvcGFnYXRlQ29udGV4dENoYW5nZXMoXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgW0NhY2hlQ29udGV4dF0sXG4gICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgITBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHN1c3BlbmRJZlVwZGF0ZVJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24oKTtcbiAgICAgICAgICAgIHJldHVybkZpYmVyID0gbmV4dFN0YXRlLmVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAocHJldlN0YXRlLmlzRGVoeWRyYXRlZClcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICgocHJldlN0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgZWxlbWVudDogcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICBpc0RlaHlkcmF0ZWQ6ICExLFxuICAgICAgICAgICAgICAgICAgY2FjaGU6IG5leHRTdGF0ZS5jYWNoZVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZS5iYXNlU3RhdGUgPSBwcmV2U3RhdGUpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gcHJldlN0YXRlKSxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDI1NilcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBtb3VudEhvc3RSb290V2l0aG91dEh5ZHJhdGluZyhcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAocmV0dXJuRmliZXIgIT09IHByZXZTaWJsaW5nKSB7XG4gICAgICAgICAgICAgICAgcHJldlNpYmxpbmcgPSBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcihcbiAgICAgICAgICAgICAgICAgIEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIlRoaXMgcm9vdCByZWNlaXZlZCBhbiBlYXJseSB1cGRhdGUsIGJlZm9yZSBhbnl0aGluZyB3YXMgYWJsZSBoeWRyYXRlLiBTd2l0Y2hlZCB0aGUgZW50aXJlIHJvb3QgdG8gY2xpZW50IHJlbmRlcmluZy5cIlxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBxdWV1ZUh5ZHJhdGlvbkVycm9yKHByZXZTaWJsaW5nKTtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IG1vdW50SG9zdFJvb3RXaXRob3V0SHlkcmF0aW5nKFxuICAgICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjdXJyZW50Lm5vZGVUeXBlKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9XG4gICAgICAgICAgICAgICAgICAgICAgXCJIVE1MXCIgPT09IGN1cnJlbnQubm9kZU5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gY3VycmVudC5vd25lckRvY3VtZW50LmJvZHlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogY3VycmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKGN1cnJlbnQuZmlyc3RDaGlsZCk7XG4gICAgICAgICAgICAgICAgaHlkcmF0aW9uUGFyZW50RmliZXIgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICAgICAgICBpc0h5ZHJhdGluZyA9ICEwO1xuICAgICAgICAgICAgICAgIGh5ZHJhdGlvbkVycm9ycyA9IG51bGw7XG4gICAgICAgICAgICAgICAgZGlkU3VzcGVuZE9yRXJyb3JERVYgPSAhMTtcbiAgICAgICAgICAgICAgICBoeWRyYXRpb25EaWZmUm9vdERFViA9IG51bGw7XG4gICAgICAgICAgICAgICAgcm9vdE9yU2luZ2xldG9uQ29udGV4dCA9ICEwO1xuICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzID0gbW91bnRDaGlsZEZpYmVycyhcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGZvciAod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSByZW5kZXJMYW5lczsgcmVuZGVyTGFuZXM7IClcbiAgICAgICAgICAgICAgICAgIChyZW5kZXJMYW5lcy5mbGFncyA9IChyZW5kZXJMYW5lcy5mbGFncyAmIC0zKSB8IDQwOTYpLFxuICAgICAgICAgICAgICAgICAgICAocmVuZGVyTGFuZXMgPSByZW5kZXJMYW5lcy5zaWJsaW5nKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKTtcbiAgICAgICAgICAgICAgaWYgKHJldHVybkZpYmVyID09PSBwcmV2U2libGluZykge1xuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gYmFpbG91dE9uQWxyZWFkeUZpbmlzaGVkV29yayhcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJlY29uY2lsZUNoaWxkcmVuKFxuICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgbWFya1JlZihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICBudWxsID09PSBjdXJyZW50XG4gICAgICAgICAgICAgID8gKHJlbmRlckxhbmVzID0gZ2V0UmVzb3VyY2UoXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlLFxuICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgID8gKHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgPSByZW5kZXJMYW5lcylcbiAgICAgICAgICAgICAgICA6IGlzSHlkcmF0aW5nIHx8XG4gICAgICAgICAgICAgICAgICAoKHJlbmRlckxhbmVzID0gd29ya0luUHJvZ3Jlc3MudHlwZSksXG4gICAgICAgICAgICAgICAgICAoY3VycmVudCA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyksXG4gICAgICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSByZXF1aXJlZENvbnRleHQoXG4gICAgICAgICAgICAgICAgICAgIHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnRcbiAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgKHJldHVybkZpYmVyID1cbiAgICAgICAgICAgICAgICAgICAgZ2V0T3duZXJEb2N1bWVudEZyb21Sb290Q29udGFpbmVyKFxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyXG4gICAgICAgICAgICAgICAgICAgICkuY3JlYXRlRWxlbWVudChyZW5kZXJMYW5lcykpLFxuICAgICAgICAgICAgICAgICAgKHJldHVybkZpYmVyW2ludGVybmFsSW5zdGFuY2VLZXldID0gd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgKHJldHVybkZpYmVyW2ludGVybmFsUHJvcHNLZXldID0gY3VycmVudCksXG4gICAgICAgICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhyZXR1cm5GaWJlciwgcmVuZGVyTGFuZXMsIGN1cnJlbnQpLFxuICAgICAgICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShyZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gcmV0dXJuRmliZXIpKVxuICAgICAgICAgICAgICA6ICh3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlID0gZ2V0UmVzb3VyY2UoXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlLFxuICAgICAgICAgICAgICAgICAgY3VycmVudC5tZW1vaXplZFByb3BzLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLFxuICAgICAgICAgICAgICAgICAgY3VycmVudC5tZW1vaXplZFN0YXRlXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcHVzaEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgaXNIeWRyYXRpbmcgJiZcbiAgICAgICAgICAgICAgKChyZXR1cm5GaWJlciA9IHJlcXVpcmVkQ29udGV4dChyb290SW5zdGFuY2VTdGFja0N1cnNvci5jdXJyZW50KSksXG4gICAgICAgICAgICAgIChwcmV2U2libGluZyA9IGdldEhvc3RDb250ZXh0KCkpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPVxuICAgICAgICAgICAgICAgIHJlc29sdmVTaW5nbGV0b25JbnN0YW5jZShcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgIHByZXZTaWJsaW5nLFxuICAgICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgZGlkU3VzcGVuZE9yRXJyb3JERVYgfHxcbiAgICAgICAgICAgICAgICAoKHByZXZTaWJsaW5nID0gZGlmZkh5ZHJhdGVkUHJvcGVydGllcyhcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgICAgICAgIHByZXZTaWJsaW5nXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gcHJldlNpYmxpbmcgJiZcbiAgICAgICAgICAgICAgICAgIChidWlsZEh5ZHJhdGlvbkRpZmZOb2RlKHdvcmtJblByb2dyZXNzLCAwKS5zZXJ2ZXJQcm9wcyA9XG4gICAgICAgICAgICAgICAgICAgIHByZXZTaWJsaW5nKSksXG4gICAgICAgICAgICAgIChoeWRyYXRpb25QYXJlbnRGaWJlciA9IHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgKHJvb3RPclNpbmdsZXRvbkNvbnRleHQgPSAhMCksXG4gICAgICAgICAgICAgIChwcmV2U2libGluZyA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2UpLFxuICAgICAgICAgICAgICBpc1NpbmdsZXRvblNjb3BlKHdvcmtJblByb2dyZXNzLnR5cGUpXG4gICAgICAgICAgICAgICAgPyAoKHByZXZpb3VzSHlkcmF0YWJsZU9uRW50ZXJpbmdTY29wZWRTaW5nbGV0b24gPSBwcmV2U2libGluZyksXG4gICAgICAgICAgICAgICAgICAobmV4dEh5ZHJhdGFibGVJbnN0YW5jZSA9IGdldE5leHRIeWRyYXRhYmxlKFxuICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlci5maXJzdENoaWxkXG4gICAgICAgICAgICAgICAgICApKSlcbiAgICAgICAgICAgICAgICA6IChuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gcHJldlNpYmxpbmcpKSxcbiAgICAgICAgICAgIHJlY29uY2lsZUNoaWxkcmVuKFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIG1hcmtSZWYoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudCAmJiAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gNDE5NDMwNCksXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudCAmJlxuICAgICAgICAgICAgICBpc0h5ZHJhdGluZyAmJlxuICAgICAgICAgICAgICAoKHByZXZTdGF0ZSA9IGdldEhvc3RDb250ZXh0KCkpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSB2YWxpZGF0ZURPTU5lc3RpbmcoXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgICAgICBwcmV2U3RhdGUuYW5jZXN0b3JJbmZvXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAocHJldlNpYmxpbmcgPSBuZXh0SHlkcmF0YWJsZUluc3RhbmNlKSxcbiAgICAgICAgICAgICAgKG5leHRTdGF0ZSA9ICFwcmV2U2libGluZykgfHxcbiAgICAgICAgICAgICAgICAoKG5leHRTdGF0ZSA9IGNhbkh5ZHJhdGVJbnN0YW5jZShcbiAgICAgICAgICAgICAgICAgIHByZXZTaWJsaW5nLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgICAgICAgIHJvb3RPclNpbmdsZXRvbkNvbnRleHRcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICBudWxsICE9PSBuZXh0U3RhdGVcbiAgICAgICAgICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBuZXh0U3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICBkaWRTdXNwZW5kT3JFcnJvckRFViB8fFxuICAgICAgICAgICAgICAgICAgICAgICgocHJldlN0YXRlID0gZGlmZkh5ZHJhdGVkUHJvcGVydGllcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2U3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAgICAgICBudWxsICE9PSBwcmV2U3RhdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIChidWlsZEh5ZHJhdGlvbkRpZmZOb2RlKHdvcmtJblByb2dyZXNzLCAwKS5zZXJ2ZXJQcm9wcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZTdGF0ZSkpLFxuICAgICAgICAgICAgICAgICAgICAoaHlkcmF0aW9uUGFyZW50RmliZXIgPSB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICAgIChuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gZ2V0TmV4dEh5ZHJhdGFibGUoXG4gICAgICAgICAgICAgICAgICAgICAgbmV4dFN0YXRlLmZpcnN0Q2hpbGRcbiAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAgIChyb290T3JTaW5nbGV0b25Db250ZXh0ID0gITEpLFxuICAgICAgICAgICAgICAgICAgICAocHJldlN0YXRlID0gITApKVxuICAgICAgICAgICAgICAgICAgOiAocHJldlN0YXRlID0gITEpLFxuICAgICAgICAgICAgICAgIChuZXh0U3RhdGUgPSAhcHJldlN0YXRlKSksXG4gICAgICAgICAgICAgIG5leHRTdGF0ZSAmJlxuICAgICAgICAgICAgICAgIChyZXR1cm5GaWJlciAmJlxuICAgICAgICAgICAgICAgICAgd2Fybk5vbkh5ZHJhdGVkSW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIHByZXZTaWJsaW5nKSxcbiAgICAgICAgICAgICAgICB0aHJvd09uSHlkcmF0aW9uTWlzbWF0Y2god29ya0luUHJvZ3Jlc3MpKSksXG4gICAgICAgICAgICBwdXNoSG9zdENvbnRleHQod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgKHByZXZTaWJsaW5nID0gd29ya0luUHJvZ3Jlc3MudHlwZSksXG4gICAgICAgICAgICAocHJldlN0YXRlID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzKSxcbiAgICAgICAgICAgIChuZXh0U3RhdGUgPSBudWxsICE9PSBjdXJyZW50ID8gY3VycmVudC5tZW1vaXplZFByb3BzIDogbnVsbCksXG4gICAgICAgICAgICAocmV0dXJuRmliZXIgPSBwcmV2U3RhdGUuY2hpbGRyZW4pLFxuICAgICAgICAgICAgc2hvdWxkU2V0VGV4dENvbnRlbnQocHJldlNpYmxpbmcsIHByZXZTdGF0ZSlcbiAgICAgICAgICAgICAgPyAocmV0dXJuRmliZXIgPSBudWxsKVxuICAgICAgICAgICAgICA6IG51bGwgIT09IG5leHRTdGF0ZSAmJlxuICAgICAgICAgICAgICAgIHNob3VsZFNldFRleHRDb250ZW50KHByZXZTaWJsaW5nLCBuZXh0U3RhdGUpICYmXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDMyKSxcbiAgICAgICAgICAgIG51bGwgIT09IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgICAgKChwcmV2U2libGluZyA9IHJlbmRlcldpdGhIb29rcyhcbiAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgIFRyYW5zaXRpb25Bd2FyZUhvc3RDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAoSG9zdFRyYW5zaXRpb25Db250ZXh0Ll9jdXJyZW50VmFsdWUgPSBwcmV2U2libGluZykpLFxuICAgICAgICAgICAgbWFya1JlZihjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICByZWNvbmNpbGVDaGlsZHJlbihcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBudWxsID09PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgIGlzSHlkcmF0aW5nICYmXG4gICAgICAgICAgICAgICgocmVuZGVyTGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMpLFxuICAgICAgICAgICAgICAoY3VycmVudCA9IGdldEhvc3RDb250ZXh0KCkpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSBjdXJyZW50LmFuY2VzdG9ySW5mby5jdXJyZW50KSxcbiAgICAgICAgICAgICAgKHJlbmRlckxhbmVzID1cbiAgICAgICAgICAgICAgICBudWxsICE9IHJldHVybkZpYmVyXG4gICAgICAgICAgICAgICAgICA/IHZhbGlkYXRlVGV4dE5lc3RpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuRmliZXIudGFnLFxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnQuYW5jZXN0b3JJbmZvLmltcGxpY2l0Um9vdFNjb3BlXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIDogITApLFxuICAgICAgICAgICAgICAoY3VycmVudCA9IG5leHRIeWRyYXRhYmxlSW5zdGFuY2UpLFxuICAgICAgICAgICAgICAocmV0dXJuRmliZXIgPSAhY3VycmVudCkgfHxcbiAgICAgICAgICAgICAgICAoKHJldHVybkZpYmVyID0gY2FuSHlkcmF0ZVRleHRJbnN0YW5jZShcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsXG4gICAgICAgICAgICAgICAgICByb290T3JTaW5nbGV0b25Db250ZXh0XG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gcmV0dXJuRmliZXJcbiAgICAgICAgICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgICAgIChoeWRyYXRpb25QYXJlbnRGaWJlciA9IHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAgICAgKG5leHRIeWRyYXRhYmxlSW5zdGFuY2UgPSBudWxsKSxcbiAgICAgICAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gITApKVxuICAgICAgICAgICAgICAgICAgOiAocmV0dXJuRmliZXIgPSAhMSksXG4gICAgICAgICAgICAgICAgKHJldHVybkZpYmVyID0gIXJldHVybkZpYmVyKSksXG4gICAgICAgICAgICAgIHJldHVybkZpYmVyICYmXG4gICAgICAgICAgICAgICAgKHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAgICAgICB3YXJuTm9uSHlkcmF0ZWRJbnN0YW5jZSh3b3JrSW5Qcm9ncmVzcywgY3VycmVudCksXG4gICAgICAgICAgICAgICAgdGhyb3dPbkh5ZHJhdGlvbk1pc21hdGNoKHdvcmtJblByb2dyZXNzKSkpLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZVN1c3BlbnNlQ29tcG9uZW50KGN1cnJlbnQsIHdvcmtJblByb2dyZXNzLCByZW5kZXJMYW5lcyk7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcHVzaEhvc3RDb250YWluZXIoXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUuY29udGFpbmVySW5mb1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyksXG4gICAgICAgICAgICBudWxsID09PSBjdXJyZW50XG4gICAgICAgICAgICAgID8gKHdvcmtJblByb2dyZXNzLmNoaWxkID0gcmVjb25jaWxlQ2hpbGRGaWJlcnMoXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgOiByZWNvbmNpbGVDaGlsZHJlbihcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIHJldHVybkZpYmVyLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDExOlxuICAgICAgICAgIHJldHVybiB1cGRhdGVGb3J3YXJkUmVmKFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICByZWNvbmNpbGVDaGlsZHJlbihcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcmVjb25jaWxlQ2hpbGRyZW4oXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gNCksXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMjA0OCksXG4gICAgICAgICAgICAocmV0dXJuRmliZXIgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUpLFxuICAgICAgICAgICAgKHJldHVybkZpYmVyLmVmZmVjdER1cmF0aW9uID0gLTApLFxuICAgICAgICAgICAgKHJldHVybkZpYmVyLnBhc3NpdmVFZmZlY3REdXJhdGlvbiA9IC0wKSxcbiAgICAgICAgICAgIHJlY29uY2lsZUNoaWxkcmVuKFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLmNoaWxkcmVuLFxuICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmNoaWxkXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MudHlwZSksXG4gICAgICAgICAgICAocHJldlNpYmxpbmcgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMpLFxuICAgICAgICAgICAgKHByZXZTdGF0ZSA9IHByZXZTaWJsaW5nLnZhbHVlKSxcbiAgICAgICAgICAgIFwidmFsdWVcIiBpbiBwcmV2U2libGluZyB8fFxuICAgICAgICAgICAgICBoYXNXYXJuZWRBYm91dFVzaW5nTm9WYWx1ZVByb3BPbkNvbnRleHRQcm92aWRlciB8fFxuICAgICAgICAgICAgICAoKGhhc1dhcm5lZEFib3V0VXNpbmdOb1ZhbHVlUHJvcE9uQ29udGV4dFByb3ZpZGVyID0gITApLFxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiVGhlIGB2YWx1ZWAgcHJvcCBpcyByZXF1aXJlZCBmb3IgdGhlIGA8Q29udGV4dC5Qcm92aWRlcj5gLiBEaWQgeW91IG1pc3NwZWxsIGl0IG9yIGZvcmdldCB0byBwYXNzIGl0P1wiXG4gICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgcHVzaFByb3ZpZGVyKHdvcmtJblByb2dyZXNzLCByZXR1cm5GaWJlciwgcHJldlN0YXRlKSxcbiAgICAgICAgICAgIHJlY29uY2lsZUNoaWxkcmVuKFxuICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgcHJldlNpYmxpbmcuY2hpbGRyZW4sXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDk6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChwcmV2U2libGluZyA9IHdvcmtJblByb2dyZXNzLnR5cGUuX2NvbnRleHQpLFxuICAgICAgICAgICAgKHJldHVybkZpYmVyID0gd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLmNoaWxkcmVuKSxcbiAgICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHJldHVybkZpYmVyICYmXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJBIGNvbnRleHQgY29uc3VtZXIgd2FzIHJlbmRlcmVkIHdpdGggbXVsdGlwbGUgY2hpbGRyZW4sIG9yIGEgY2hpbGQgdGhhdCBpc24ndCBhIGZ1bmN0aW9uLiBBIGNvbnRleHQgY29uc3VtZXIgZXhwZWN0cyBhIHNpbmdsZSBjaGlsZCB0aGF0IGlzIGEgZnVuY3Rpb24uIElmIHlvdSBkaWQgcGFzcyBhIGZ1bmN0aW9uLCBtYWtlIHN1cmUgdGhlcmUgaXMgbm8gdHJhaWxpbmcgb3IgbGVhZGluZyB3aGl0ZXNwYWNlIGFyb3VuZCBpdC5cIlxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgcHJlcGFyZVRvUmVhZENvbnRleHQod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgKHByZXZTaWJsaW5nID0gcmVhZENvbnRleHQocHJldlNpYmxpbmcpKSxcbiAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IGNhbGxDb21wb25lbnRJbkRFVihcbiAgICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgIHByZXZTaWJsaW5nLFxuICAgICAgICAgICAgICB2b2lkIDBcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEpLFxuICAgICAgICAgICAgcmVjb25jaWxlQ2hpbGRyZW4oXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICByZXR1cm5GaWJlcixcbiAgICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5jaGlsZFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW9Db21wb25lbnQoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MucGVuZGluZ1Byb3BzLFxuICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIHJldHVybiB1cGRhdGVTaW1wbGVNZW1vQ29tcG9uZW50KFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICByZXR1cm4gdXBkYXRlU3VzcGVuc2VMaXN0Q29tcG9uZW50KFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgcmVuZGVyTGFuZXNcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDMxOlxuICAgICAgICAgIHJldHVybiB1cGRhdGVBY3Rpdml0eUNvbXBvbmVudChjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcywgcmVuZGVyTGFuZXMpO1xuICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgIHJldHVybiB1cGRhdGVPZmZzY3JlZW5Db21wb25lbnQoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wc1xuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHByZXBhcmVUb1JlYWRDb250ZXh0KHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIChyZXR1cm5GaWJlciA9IHJlYWRDb250ZXh0KENhY2hlQ29udGV4dCkpLFxuICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudFxuICAgICAgICAgICAgICA/ICgocHJldlNpYmxpbmcgPSBwZWVrQ2FjaGVGcm9tUG9vbCgpKSxcbiAgICAgICAgICAgICAgICBudWxsID09PSBwcmV2U2libGluZyAmJlxuICAgICAgICAgICAgICAgICAgKChwcmV2U2libGluZyA9IHdvcmtJblByb2dyZXNzUm9vdCksXG4gICAgICAgICAgICAgICAgICAocHJldlN0YXRlID0gY3JlYXRlQ2FjaGUoKSksXG4gICAgICAgICAgICAgICAgICAocHJldlNpYmxpbmcucG9vbGVkQ2FjaGUgPSBwcmV2U3RhdGUpLFxuICAgICAgICAgICAgICAgICAgcmV0YWluQ2FjaGUocHJldlN0YXRlKSxcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IHByZXZTdGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAocHJldlNpYmxpbmcucG9vbGVkQ2FjaGVMYW5lcyB8PSByZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgICAgICAocHJldlNpYmxpbmcgPSBwcmV2U3RhdGUpKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgIHBhcmVudDogcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICBjYWNoZTogcHJldlNpYmxpbmdcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBpbml0aWFsaXplVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIHB1c2hQcm92aWRlcih3b3JrSW5Qcm9ncmVzcywgQ2FjaGVDb250ZXh0LCBwcmV2U2libGluZykpXG4gICAgICAgICAgICAgIDogKDAgIT09IChjdXJyZW50LmxhbmVzICYgcmVuZGVyTGFuZXMpICYmXG4gICAgICAgICAgICAgICAgICAoY2xvbmVVcGRhdGVRdWV1ZShjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICBwcm9jZXNzVXBkYXRlUXVldWUod29ya0luUHJvZ3Jlc3MsIG51bGwsIG51bGwsIHJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgICAgICAgIHN1c3BlbmRJZlVwZGF0ZVJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24oKSksXG4gICAgICAgICAgICAgICAgKHByZXZTaWJsaW5nID0gY3VycmVudC5tZW1vaXplZFN0YXRlKSxcbiAgICAgICAgICAgICAgICAocHJldlN0YXRlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSksXG4gICAgICAgICAgICAgICAgcHJldlNpYmxpbmcucGFyZW50ICE9PSByZXR1cm5GaWJlclxuICAgICAgICAgICAgICAgICAgPyAoKHByZXZTaWJsaW5nID0ge1xuICAgICAgICAgICAgICAgICAgICAgIHBhcmVudDogcmV0dXJuRmliZXIsXG4gICAgICAgICAgICAgICAgICAgICAgY2FjaGU6IHJldHVybkZpYmVyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IHByZXZTaWJsaW5nKSxcbiAgICAgICAgICAgICAgICAgICAgMCA9PT0gd29ya0luUHJvZ3Jlc3MubGFuZXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZS5iYXNlU3RhdGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2U2libGluZyksXG4gICAgICAgICAgICAgICAgICAgIHB1c2hQcm92aWRlcih3b3JrSW5Qcm9ncmVzcywgQ2FjaGVDb250ZXh0LCByZXR1cm5GaWJlcikpXG4gICAgICAgICAgICAgICAgICA6ICgocmV0dXJuRmliZXIgPSBwcmV2U3RhdGUuY2FjaGUpLFxuICAgICAgICAgICAgICAgICAgICBwdXNoUHJvdmlkZXIod29ya0luUHJvZ3Jlc3MsIENhY2hlQ29udGV4dCwgcmV0dXJuRmliZXIpLFxuICAgICAgICAgICAgICAgICAgICByZXR1cm5GaWJlciAhPT0gcHJldlNpYmxpbmcuY2FjaGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wYWdhdGVDb250ZXh0Q2hhbmdlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgW0NhY2hlQ29udGV4dF0sXG4gICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICEwXG4gICAgICAgICAgICAgICAgICAgICAgKSkpLFxuICAgICAgICAgICAgcmVjb25jaWxlQ2hpbGRyZW4oXG4gICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMuY2hpbGRyZW4sXG4gICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MuY2hpbGRcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDI5OlxuICAgICAgICAgIHRocm93IHdvcmtJblByb2dyZXNzLnBlbmRpbmdQcm9wcztcbiAgICAgIH1cbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICBcIlVua25vd24gdW5pdCBvZiB3b3JrIHRhZyAoXCIgK1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzLnRhZyArXG4gICAgICAgICAgXCIpLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKSB7XG4gICAgICB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVsb2FkSW5zdGFuY2VBbmRTdXNwZW5kSWZOZWVkZWQoXG4gICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgIHR5cGUsXG4gICAgICBvbGRQcm9wcyxcbiAgICAgIG5ld1Byb3BzLFxuICAgICAgcmVuZGVyTGFuZXNcbiAgICApIHtcbiAgICAgIGlmICgodHlwZSA9ICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgU3VzcGVuc2V5SW1hZ2VzTW9kZSkgIT09IE5vTW9kZSkpXG4gICAgICAgIHR5cGUgPSAhMTtcbiAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAoKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDE2Nzc3MjE2KSxcbiAgICAgICAgICAocmVuZGVyTGFuZXMgJiAzMzU1NDQxMjgpID09PSByZW5kZXJMYW5lcylcbiAgICAgICAgKVxuICAgICAgICAgIGlmICh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUuY29tcGxldGUpIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDgxOTI7XG4gICAgICAgICAgZWxzZSBpZiAoc2hvdWxkUmVtYWluT25QcmV2aW91c1NjcmVlbigpKSB3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA4MTkyO1xuICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgIHRocm93IChcbiAgICAgICAgICAgICAgKChzdXNwZW5kZWRUaGVuYWJsZSA9IG5vb3BTdXNwZW5zZXlDb21taXRUaGVuYWJsZSksXG4gICAgICAgICAgICAgIFN1c3BlbnNleUNvbW1pdEV4Y2VwdGlvbilcbiAgICAgICAgICAgICk7XG4gICAgICB9IGVsc2Ugd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gLTE2Nzc3MjE3O1xuICAgIH1cbiAgICBmdW5jdGlvbiBwcmVsb2FkUmVzb3VyY2VBbmRTdXNwZW5kSWZOZWVkZWQod29ya0luUHJvZ3Jlc3MsIHJlc291cmNlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIFwic3R5bGVzaGVldFwiICE9PSByZXNvdXJjZS50eXBlIHx8XG4gICAgICAgIChyZXNvdXJjZS5zdGF0ZS5sb2FkaW5nICYgSW5zZXJ0ZWQpICE9PSBOb3RMb2FkZWRcbiAgICAgIClcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJj0gLTE2Nzc3MjE3O1xuICAgICAgZWxzZSBpZiAoKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxNjc3NzIxNiksICFwcmVsb2FkUmVzb3VyY2UocmVzb3VyY2UpKSlcbiAgICAgICAgaWYgKHNob3VsZFJlbWFpbk9uUHJldmlvdXNTY3JlZW4oKSkgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gODE5MjtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHRocm93IChcbiAgICAgICAgICAgICgoc3VzcGVuZGVkVGhlbmFibGUgPSBub29wU3VzcGVuc2V5Q29tbWl0VGhlbmFibGUpLFxuICAgICAgICAgICAgU3VzcGVuc2V5Q29tbWl0RXhjZXB0aW9uKVxuICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNjaGVkdWxlUmV0cnlFZmZlY3Qod29ya0luUHJvZ3Jlc3MsIHJldHJ5UXVldWUpIHtcbiAgICAgIG51bGwgIT09IHJldHJ5UXVldWUgJiYgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQpO1xuICAgICAgd29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiAxNjM4NCAmJlxuICAgICAgICAoKHJldHJ5UXVldWUgPVxuICAgICAgICAgIDIyICE9PSB3b3JrSW5Qcm9ncmVzcy50YWcgPyBjbGFpbU5leHRSZXRyeUxhbmUoKSA6IDUzNjg3MDkxMiksXG4gICAgICAgICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyB8PSByZXRyeVF1ZXVlKSxcbiAgICAgICAgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmV0cnlMYW5lcyB8PSByZXRyeVF1ZXVlKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGN1dE9mZlRhaWxJZk5lZWRlZChyZW5kZXJTdGF0ZSwgaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrKSB7XG4gICAgICBpZiAoIWlzSHlkcmF0aW5nKVxuICAgICAgICBzd2l0Y2ggKHJlbmRlclN0YXRlLnRhaWxNb2RlKSB7XG4gICAgICAgICAgY2FzZSBcImhpZGRlblwiOlxuICAgICAgICAgICAgaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrID0gcmVuZGVyU3RhdGUudGFpbDtcbiAgICAgICAgICAgIGZvciAodmFyIGxhc3RUYWlsTm9kZSA9IG51bGw7IG51bGwgIT09IGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjazsgKVxuICAgICAgICAgICAgICBudWxsICE9PSBoYXNSZW5kZXJlZEFUYWlsRmFsbGJhY2suYWx0ZXJuYXRlICYmXG4gICAgICAgICAgICAgICAgKGxhc3RUYWlsTm9kZSA9IGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjayksXG4gICAgICAgICAgICAgICAgKGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjayA9IGhhc1JlbmRlcmVkQVRhaWxGYWxsYmFjay5zaWJsaW5nKTtcbiAgICAgICAgICAgIG51bGwgPT09IGxhc3RUYWlsTm9kZVxuICAgICAgICAgICAgICA/IChyZW5kZXJTdGF0ZS50YWlsID0gbnVsbClcbiAgICAgICAgICAgICAgOiAobGFzdFRhaWxOb2RlLnNpYmxpbmcgPSBudWxsKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJjb2xsYXBzZWRcIjpcbiAgICAgICAgICAgIGxhc3RUYWlsTm9kZSA9IHJlbmRlclN0YXRlLnRhaWw7XG4gICAgICAgICAgICBmb3IgKHZhciBfbGFzdFRhaWxOb2RlID0gbnVsbDsgbnVsbCAhPT0gbGFzdFRhaWxOb2RlOyApXG4gICAgICAgICAgICAgIG51bGwgIT09IGxhc3RUYWlsTm9kZS5hbHRlcm5hdGUgJiYgKF9sYXN0VGFpbE5vZGUgPSBsYXN0VGFpbE5vZGUpLFxuICAgICAgICAgICAgICAgIChsYXN0VGFpbE5vZGUgPSBsYXN0VGFpbE5vZGUuc2libGluZyk7XG4gICAgICAgICAgICBudWxsID09PSBfbGFzdFRhaWxOb2RlXG4gICAgICAgICAgICAgID8gaGFzUmVuZGVyZWRBVGFpbEZhbGxiYWNrIHx8IG51bGwgPT09IHJlbmRlclN0YXRlLnRhaWxcbiAgICAgICAgICAgICAgICA/IChyZW5kZXJTdGF0ZS50YWlsID0gbnVsbClcbiAgICAgICAgICAgICAgICA6IChyZW5kZXJTdGF0ZS50YWlsLnNpYmxpbmcgPSBudWxsKVxuICAgICAgICAgICAgICA6IChfbGFzdFRhaWxOb2RlLnNpYmxpbmcgPSBudWxsKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBidWJibGVQcm9wZXJ0aWVzKGNvbXBsZXRlZFdvcmspIHtcbiAgICAgIHZhciBkaWRCYWlsb3V0ID1cbiAgICAgICAgICBudWxsICE9PSBjb21wbGV0ZWRXb3JrLmFsdGVybmF0ZSAmJlxuICAgICAgICAgIGNvbXBsZXRlZFdvcmsuYWx0ZXJuYXRlLmNoaWxkID09PSBjb21wbGV0ZWRXb3JrLmNoaWxkLFxuICAgICAgICBuZXdDaGlsZExhbmVzID0gMCxcbiAgICAgICAgc3VidHJlZUZsYWdzID0gMDtcbiAgICAgIGlmIChkaWRCYWlsb3V0KVxuICAgICAgICBpZiAoKGNvbXBsZXRlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgICAgZm9yIChcbiAgICAgICAgICAgIHZhciBfdHJlZUJhc2VEdXJhdGlvbiA9IGNvbXBsZXRlZFdvcmsuc2VsZkJhc2VEdXJhdGlvbixcbiAgICAgICAgICAgICAgX2NoaWxkMiA9IGNvbXBsZXRlZFdvcmsuY2hpbGQ7XG4gICAgICAgICAgICBudWxsICE9PSBfY2hpbGQyO1xuXG4gICAgICAgICAgKVxuICAgICAgICAgICAgKG5ld0NoaWxkTGFuZXMgfD0gX2NoaWxkMi5sYW5lcyB8IF9jaGlsZDIuY2hpbGRMYW5lcyksXG4gICAgICAgICAgICAgIChzdWJ0cmVlRmxhZ3MgfD0gX2NoaWxkMi5zdWJ0cmVlRmxhZ3MgJiA2NTAxMTcxMiksXG4gICAgICAgICAgICAgIChzdWJ0cmVlRmxhZ3MgfD0gX2NoaWxkMi5mbGFncyAmIDY1MDExNzEyKSxcbiAgICAgICAgICAgICAgKF90cmVlQmFzZUR1cmF0aW9uICs9IF9jaGlsZDIudHJlZUJhc2VEdXJhdGlvbiksXG4gICAgICAgICAgICAgIChfY2hpbGQyID0gX2NoaWxkMi5zaWJsaW5nKTtcbiAgICAgICAgICBjb21wbGV0ZWRXb3JrLnRyZWVCYXNlRHVyYXRpb24gPSBfdHJlZUJhc2VEdXJhdGlvbjtcbiAgICAgICAgfSBlbHNlXG4gICAgICAgICAgZm9yIChcbiAgICAgICAgICAgIF90cmVlQmFzZUR1cmF0aW9uID0gY29tcGxldGVkV29yay5jaGlsZDtcbiAgICAgICAgICAgIG51bGwgIT09IF90cmVlQmFzZUR1cmF0aW9uO1xuXG4gICAgICAgICAgKVxuICAgICAgICAgICAgKG5ld0NoaWxkTGFuZXMgfD1cbiAgICAgICAgICAgICAgX3RyZWVCYXNlRHVyYXRpb24ubGFuZXMgfCBfdHJlZUJhc2VEdXJhdGlvbi5jaGlsZExhbmVzKSxcbiAgICAgICAgICAgICAgKHN1YnRyZWVGbGFncyB8PSBfdHJlZUJhc2VEdXJhdGlvbi5zdWJ0cmVlRmxhZ3MgJiA2NTAxMTcxMiksXG4gICAgICAgICAgICAgIChzdWJ0cmVlRmxhZ3MgfD0gX3RyZWVCYXNlRHVyYXRpb24uZmxhZ3MgJiA2NTAxMTcxMiksXG4gICAgICAgICAgICAgIChfdHJlZUJhc2VEdXJhdGlvbi5yZXR1cm4gPSBjb21wbGV0ZWRXb3JrKSxcbiAgICAgICAgICAgICAgKF90cmVlQmFzZUR1cmF0aW9uID0gX3RyZWVCYXNlRHVyYXRpb24uc2libGluZyk7XG4gICAgICBlbHNlIGlmICgoY29tcGxldGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgX3RyZWVCYXNlRHVyYXRpb24gPSBjb21wbGV0ZWRXb3JrLmFjdHVhbER1cmF0aW9uO1xuICAgICAgICBfY2hpbGQyID0gY29tcGxldGVkV29yay5zZWxmQmFzZUR1cmF0aW9uO1xuICAgICAgICBmb3IgKHZhciBjaGlsZCA9IGNvbXBsZXRlZFdvcmsuY2hpbGQ7IG51bGwgIT09IGNoaWxkOyApXG4gICAgICAgICAgKG5ld0NoaWxkTGFuZXMgfD0gY2hpbGQubGFuZXMgfCBjaGlsZC5jaGlsZExhbmVzKSxcbiAgICAgICAgICAgIChzdWJ0cmVlRmxhZ3MgfD0gY2hpbGQuc3VidHJlZUZsYWdzKSxcbiAgICAgICAgICAgIChzdWJ0cmVlRmxhZ3MgfD0gY2hpbGQuZmxhZ3MpLFxuICAgICAgICAgICAgKF90cmVlQmFzZUR1cmF0aW9uICs9IGNoaWxkLmFjdHVhbER1cmF0aW9uKSxcbiAgICAgICAgICAgIChfY2hpbGQyICs9IGNoaWxkLnRyZWVCYXNlRHVyYXRpb24pLFxuICAgICAgICAgICAgKGNoaWxkID0gY2hpbGQuc2libGluZyk7XG4gICAgICAgIGNvbXBsZXRlZFdvcmsuYWN0dWFsRHVyYXRpb24gPSBfdHJlZUJhc2VEdXJhdGlvbjtcbiAgICAgICAgY29tcGxldGVkV29yay50cmVlQmFzZUR1cmF0aW9uID0gX2NoaWxkMjtcbiAgICAgIH0gZWxzZVxuICAgICAgICBmb3IgKFxuICAgICAgICAgIF90cmVlQmFzZUR1cmF0aW9uID0gY29tcGxldGVkV29yay5jaGlsZDtcbiAgICAgICAgICBudWxsICE9PSBfdHJlZUJhc2VEdXJhdGlvbjtcblxuICAgICAgICApXG4gICAgICAgICAgKG5ld0NoaWxkTGFuZXMgfD1cbiAgICAgICAgICAgIF90cmVlQmFzZUR1cmF0aW9uLmxhbmVzIHwgX3RyZWVCYXNlRHVyYXRpb24uY2hpbGRMYW5lcyksXG4gICAgICAgICAgICAoc3VidHJlZUZsYWdzIHw9IF90cmVlQmFzZUR1cmF0aW9uLnN1YnRyZWVGbGFncyksXG4gICAgICAgICAgICAoc3VidHJlZUZsYWdzIHw9IF90cmVlQmFzZUR1cmF0aW9uLmZsYWdzKSxcbiAgICAgICAgICAgIChfdHJlZUJhc2VEdXJhdGlvbi5yZXR1cm4gPSBjb21wbGV0ZWRXb3JrKSxcbiAgICAgICAgICAgIChfdHJlZUJhc2VEdXJhdGlvbiA9IF90cmVlQmFzZUR1cmF0aW9uLnNpYmxpbmcpO1xuICAgICAgY29tcGxldGVkV29yay5zdWJ0cmVlRmxhZ3MgfD0gc3VidHJlZUZsYWdzO1xuICAgICAgY29tcGxldGVkV29yay5jaGlsZExhbmVzID0gbmV3Q2hpbGRMYW5lcztcbiAgICAgIHJldHVybiBkaWRCYWlsb3V0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21wbGV0ZVdvcmsoY3VycmVudCwgd29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzKSB7XG4gICAgICB2YXIgbmV3UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHM7XG4gICAgICBwb3BUcmVlQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgICBjYXNlIDE2OlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTE6XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICBjYXNlIDEyOlxuICAgICAgICBjYXNlIDk6XG4gICAgICAgIGNhc2UgMTQ6XG4gICAgICAgICAgcmV0dXJuIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLCBudWxsO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmV0dXJuIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLCBudWxsO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgcmVuZGVyTGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGU7XG4gICAgICAgICAgbmV3UHJvcHMgPSBudWxsO1xuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiYgKG5ld1Byb3BzID0gY3VycmVudC5tZW1vaXplZFN0YXRlLmNhY2hlKTtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlLmNhY2hlICE9PSBuZXdQcm9wcyAmJlxuICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDIwNDgpO1xuICAgICAgICAgIHBvcFByb3ZpZGVyKENhY2hlQ29udGV4dCwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHBvcEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHJlbmRlckxhbmVzLnBlbmRpbmdDb250ZXh0ICYmXG4gICAgICAgICAgICAoKHJlbmRlckxhbmVzLmNvbnRleHQgPSByZW5kZXJMYW5lcy5wZW5kaW5nQ29udGV4dCksXG4gICAgICAgICAgICAocmVuZGVyTGFuZXMucGVuZGluZ0NvbnRleHQgPSBudWxsKSk7XG4gICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQgfHwgbnVsbCA9PT0gY3VycmVudC5jaGlsZClcbiAgICAgICAgICAgIHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKVxuICAgICAgICAgICAgICA/IChlbWl0UGVuZGluZ0h5ZHJhdGlvbldhcm5pbmdzKCksIG1hcmtVcGRhdGUod29ya0luUHJvZ3Jlc3MpKVxuICAgICAgICAgICAgICA6IG51bGwgPT09IGN1cnJlbnQgfHxcbiAgICAgICAgICAgICAgICAoY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCAmJlxuICAgICAgICAgICAgICAgICAgMCA9PT0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMjU2KSkgfHxcbiAgICAgICAgICAgICAgICAoKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEwMjQpLFxuICAgICAgICAgICAgICAgIHVwZ3JhZGVIeWRyYXRpb25FcnJvcnNUb1JlY292ZXJhYmxlKCkpO1xuICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgIHZhciB0eXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZSxcbiAgICAgICAgICAgIG5leHRSZXNvdXJjZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgbnVsbCA9PT0gY3VycmVudFxuICAgICAgICAgICAgPyAobWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgIG51bGwgIT09IG5leHRSZXNvdXJjZVxuICAgICAgICAgICAgICAgID8gKGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgcHJlbG9hZFJlc291cmNlQW5kU3VzcGVuZElmTmVlZGVkKFxuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlXG4gICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgIDogKGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgcHJlbG9hZEluc3RhbmNlQW5kU3VzcGVuZElmTmVlZGVkKFxuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgbmV3UHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckxhbmVzXG4gICAgICAgICAgICAgICAgICApKSlcbiAgICAgICAgICAgIDogbmV4dFJlc291cmNlXG4gICAgICAgICAgICAgID8gbmV4dFJlc291cmNlICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGVcbiAgICAgICAgICAgICAgICA/IChtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgcHJlbG9hZFJlc291cmNlQW5kU3VzcGVuZElmTmVlZGVkKFxuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlXG4gICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgIDogKGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzICY9IC0xNjc3NzIxNykpXG4gICAgICAgICAgICAgIDogKChjdXJyZW50ID0gY3VycmVudC5tZW1vaXplZFByb3BzKSxcbiAgICAgICAgICAgICAgICBjdXJyZW50ICE9PSBuZXdQcm9wcyAmJiBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICBwcmVsb2FkSW5zdGFuY2VBbmRTdXNwZW5kSWZOZWVkZWQoXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgbmV3UHJvcHMsXG4gICAgICAgICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIHBvcEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICByZW5kZXJMYW5lcyA9IHJlcXVpcmVkQ29udGV4dChyb290SW5zdGFuY2VTdGFja0N1cnNvci5jdXJyZW50KTtcbiAgICAgICAgICB0eXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudCAmJiBudWxsICE9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSlcbiAgICAgICAgICAgIGN1cnJlbnQubWVtb2l6ZWRQcm9wcyAhPT0gbmV3UHJvcHMgJiYgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoIW5ld1Byb3BzKSB7XG4gICAgICAgICAgICAgIGlmIChudWxsID09PSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUpXG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIldlIG11c3QgaGF2ZSBuZXcgcHJvcHMgZm9yIG5ldyBtb3VudHMuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdXJyZW50ID0gZ2V0SG9zdENvbnRleHQoKTtcbiAgICAgICAgICAgIHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKVxuICAgICAgICAgICAgICA/IHByZXBhcmVUb0h5ZHJhdGVIb3N0SW5zdGFuY2Uod29ya0luUHJvZ3Jlc3MsIGN1cnJlbnQpXG4gICAgICAgICAgICAgIDogKChjdXJyZW50ID0gcmVzb2x2ZVNpbmdsZXRvbkluc3RhbmNlKFxuICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgIG5ld1Byb3BzLFxuICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgITBcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlID0gY3VycmVudCksXG4gICAgICAgICAgICAgICAgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcykpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHBvcEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICB0eXBlID0gd29ya0luUHJvZ3Jlc3MudHlwZTtcbiAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudCAmJiBudWxsICE9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSlcbiAgICAgICAgICAgIGN1cnJlbnQubWVtb2l6ZWRQcm9wcyAhPT0gbmV3UHJvcHMgJiYgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoIW5ld1Byb3BzKSB7XG4gICAgICAgICAgICAgIGlmIChudWxsID09PSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUpXG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIldlIG11c3QgaGF2ZSBuZXcgcHJvcHMgZm9yIG5ldyBtb3VudHMuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgX2N1cnJlbnRIb3N0Q29udGV4dCA9IGdldEhvc3RDb250ZXh0KCk7XG4gICAgICAgICAgICBpZiAocG9wSHlkcmF0aW9uU3RhdGUod29ya0luUHJvZ3Jlc3MpKVxuICAgICAgICAgICAgICBwcmVwYXJlVG9IeWRyYXRlSG9zdEluc3RhbmNlKHdvcmtJblByb2dyZXNzLCBfY3VycmVudEhvc3RDb250ZXh0KTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBuZXh0UmVzb3VyY2UgPSByZXF1aXJlZENvbnRleHQocm9vdEluc3RhbmNlU3RhY2tDdXJzb3IuY3VycmVudCk7XG4gICAgICAgICAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyh0eXBlLCBfY3VycmVudEhvc3RDb250ZXh0LmFuY2VzdG9ySW5mbyk7XG4gICAgICAgICAgICAgIF9jdXJyZW50SG9zdENvbnRleHQgPSBfY3VycmVudEhvc3RDb250ZXh0LmNvbnRleHQ7XG4gICAgICAgICAgICAgIG5leHRSZXNvdXJjZSA9IGdldE93bmVyRG9jdW1lbnRGcm9tUm9vdENvbnRhaW5lcihuZXh0UmVzb3VyY2UpO1xuICAgICAgICAgICAgICBzd2l0Y2ggKF9jdXJyZW50SG9zdENvbnRleHQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEhvc3RDb250ZXh0TmFtZXNwYWNlU3ZnOlxuICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID0gbmV4dFJlc291cmNlLmNyZWF0ZUVsZW1lbnROUyhcbiAgICAgICAgICAgICAgICAgICAgU1ZHX05BTUVTUEFDRSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgSG9zdENvbnRleHROYW1lc3BhY2VNYXRoOlxuICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID0gbmV4dFJlc291cmNlLmNyZWF0ZUVsZW1lbnROUyhcbiAgICAgICAgICAgICAgICAgICAgTUFUSF9OQU1FU1BBQ0UsXG4gICAgICAgICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzdmdcIjpcbiAgICAgICAgICAgICAgICAgICAgICBuZXh0UmVzb3VyY2UgPSBuZXh0UmVzb3VyY2UuY3JlYXRlRWxlbWVudE5TKFxuICAgICAgICAgICAgICAgICAgICAgICAgU1ZHX05BTUVTUEFDRSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwibWF0aFwiOlxuICAgICAgICAgICAgICAgICAgICAgIG5leHRSZXNvdXJjZSA9IG5leHRSZXNvdXJjZS5jcmVhdGVFbGVtZW50TlMoXG4gICAgICAgICAgICAgICAgICAgICAgICBNQVRIX05BTUVTUEFDRSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic2NyaXB0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID0gbmV4dFJlc291cmNlLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XG4gICAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlLmlubmVySFRNTCA9IFwiPHNjcmlwdD5cXHgzYy9zY3JpcHQ+XCI7XG4gICAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID0gbmV4dFJlc291cmNlLnJlbW92ZUNoaWxkKFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlLmZpcnN0Q2hpbGRcbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFwic2VsZWN0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID1cbiAgICAgICAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBuZXdQcm9wcy5pc1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/IG5leHRSZXNvdXJjZS5jcmVhdGVFbGVtZW50KFwic2VsZWN0XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzOiBuZXdQcm9wcy5pc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbmV4dFJlc291cmNlLmNyZWF0ZUVsZW1lbnQoXCJzZWxlY3RcIik7XG4gICAgICAgICAgICAgICAgICAgICAgbmV3UHJvcHMubXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gKG5leHRSZXNvdXJjZS5tdWx0aXBsZSA9ICEwKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXdQcm9wcy5zaXplICYmIChuZXh0UmVzb3VyY2Uuc2l6ZSA9IG5ld1Byb3BzLnNpemUpO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgIChuZXh0UmVzb3VyY2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG5ld1Byb3BzLmlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gbmV4dFJlc291cmNlLmNyZWF0ZUVsZW1lbnQodHlwZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXM6IG5ld1Byb3BzLmlzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBuZXh0UmVzb3VyY2UuY3JlYXRlRWxlbWVudCh0eXBlKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAtMSA9PT0gdHlwZS5pbmRleE9mKFwiLVwiKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAodHlwZSAhPT0gdHlwZS50b0xvd2VyQ2FzZSgpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiPCVzIC8+IGlzIHVzaW5nIGluY29ycmVjdCBjYXNpbmcuIFVzZSBQYXNjYWxDYXNlIGZvciBSZWFjdCBjb21wb25lbnRzLCBvciBsb3dlcmNhc2UgZm9yIEhUTUwgZWxlbWVudHMuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJbb2JqZWN0IEhUTUxVbmtub3duRWxlbWVudF1cIiAhPT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobmV4dFJlc291cmNlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc093blByb3BlcnR5LmNhbGwod2FybmVkVW5rbm93blRhZ3MsIHR5cGUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh3YXJuZWRVbmtub3duVGFnc1t0eXBlXSA9ICEwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJUaGUgdGFnIDwlcz4gaXMgdW5yZWNvZ25pemVkIGluIHRoaXMgYnJvd3Nlci4gSWYgeW91IG1lYW50IHRvIHJlbmRlciBhIFJlYWN0IGNvbXBvbmVudCwgc3RhcnQgaXRzIG5hbWUgd2l0aCBhbiB1cHBlcmNhc2UgbGV0dGVyLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBuZXh0UmVzb3VyY2VbaW50ZXJuYWxJbnN0YW5jZUtleV0gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICAgICAgbmV4dFJlc291cmNlW2ludGVybmFsUHJvcHNLZXldID0gbmV3UHJvcHM7XG4gICAgICAgICAgICAgIGE6IGZvciAoXG4gICAgICAgICAgICAgICAgX2N1cnJlbnRIb3N0Q29udGV4dCA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgICAgICAgIG51bGwgIT09IF9jdXJyZW50SG9zdENvbnRleHQ7XG5cbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgNSA9PT0gX2N1cnJlbnRIb3N0Q29udGV4dC50YWcgfHxcbiAgICAgICAgICAgICAgICAgIDYgPT09IF9jdXJyZW50SG9zdENvbnRleHQudGFnXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgbmV4dFJlc291cmNlLmFwcGVuZENoaWxkKF9jdXJyZW50SG9zdENvbnRleHQuc3RhdGVOb2RlKTtcbiAgICAgICAgICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgIDQgIT09IF9jdXJyZW50SG9zdENvbnRleHQudGFnICYmXG4gICAgICAgICAgICAgICAgICAyNyAhPT0gX2N1cnJlbnRIb3N0Q29udGV4dC50YWcgJiZcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IF9jdXJyZW50SG9zdENvbnRleHQuY2hpbGRcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIF9jdXJyZW50SG9zdENvbnRleHQuY2hpbGQucmV0dXJuID0gX2N1cnJlbnRIb3N0Q29udGV4dDtcbiAgICAgICAgICAgICAgICAgIF9jdXJyZW50SG9zdENvbnRleHQgPSBfY3VycmVudEhvc3RDb250ZXh0LmNoaWxkO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChfY3VycmVudEhvc3RDb250ZXh0ID09PSB3b3JrSW5Qcm9ncmVzcykgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICBmb3IgKDsgbnVsbCA9PT0gX2N1cnJlbnRIb3N0Q29udGV4dC5zaWJsaW5nOyApIHtcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgbnVsbCA9PT0gX2N1cnJlbnRIb3N0Q29udGV4dC5yZXR1cm4gfHxcbiAgICAgICAgICAgICAgICAgICAgX2N1cnJlbnRIb3N0Q29udGV4dC5yZXR1cm4gPT09IHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgICBfY3VycmVudEhvc3RDb250ZXh0ID0gX2N1cnJlbnRIb3N0Q29udGV4dC5yZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF9jdXJyZW50SG9zdENvbnRleHQuc2libGluZy5yZXR1cm4gPSBfY3VycmVudEhvc3RDb250ZXh0LnJldHVybjtcbiAgICAgICAgICAgICAgICBfY3VycmVudEhvc3RDb250ZXh0ID0gX2N1cnJlbnRIb3N0Q29udGV4dC5zaWJsaW5nO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSA9IG5leHRSZXNvdXJjZTtcbiAgICAgICAgICAgICAgYTogc3dpdGNoIChcbiAgICAgICAgICAgICAgICAoc2V0SW5pdGlhbFByb3BlcnRpZXMobmV4dFJlc291cmNlLCB0eXBlLCBuZXdQcm9wcyksIHR5cGUpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJidXR0b25cIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiaW5wdXRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwic2VsZWN0XCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInRleHRhcmVhXCI6XG4gICAgICAgICAgICAgICAgICBuZXdQcm9wcyA9ICEhbmV3UHJvcHMuYXV0b0ZvY3VzO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiaW1nXCI6XG4gICAgICAgICAgICAgICAgICBuZXdQcm9wcyA9ICEwO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgbmV3UHJvcHMgPSAhMTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBuZXdQcm9wcyAmJiBtYXJrVXBkYXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgcHJlbG9hZEluc3RhbmNlQW5kU3VzcGVuZElmTmVlZGVkKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50eXBlLFxuICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudCA/IG51bGwgOiBjdXJyZW50Lm1lbW9pemVkUHJvcHMsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5wZW5kaW5nUHJvcHMsXG4gICAgICAgICAgICByZW5kZXJMYW5lc1xuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICBpZiAoY3VycmVudCAmJiBudWxsICE9IHdvcmtJblByb2dyZXNzLnN0YXRlTm9kZSlcbiAgICAgICAgICAgIGN1cnJlbnQubWVtb2l6ZWRQcm9wcyAhPT0gbmV3UHJvcHMgJiYgbWFya1VwZGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIFwic3RyaW5nXCIgIT09IHR5cGVvZiBuZXdQcm9wcyAmJlxuICAgICAgICAgICAgICBudWxsID09PSB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGVcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJXZSBtdXN0IGhhdmUgbmV3IHByb3BzIGZvciBuZXcgbW91bnRzLiBUaGlzIGVycm9yIGlzIGxpa2VseSBjYXVzZWQgYnkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjdXJyZW50ID0gcmVxdWlyZWRDb250ZXh0KHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnQpO1xuICAgICAgICAgICAgcmVuZGVyTGFuZXMgPSBnZXRIb3N0Q29udGV4dCgpO1xuICAgICAgICAgICAgaWYgKHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKSkge1xuICAgICAgICAgICAgICBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3Muc3RhdGVOb2RlO1xuICAgICAgICAgICAgICByZW5kZXJMYW5lcyA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgICAgIHR5cGUgPSAhZGlkU3VzcGVuZE9yRXJyb3JERVY7XG4gICAgICAgICAgICAgIG5ld1Byb3BzID0gbnVsbDtcbiAgICAgICAgICAgICAgbmV4dFJlc291cmNlID0gaHlkcmF0aW9uUGFyZW50RmliZXI7XG4gICAgICAgICAgICAgIGlmIChudWxsICE9PSBuZXh0UmVzb3VyY2UpXG4gICAgICAgICAgICAgICAgc3dpdGNoIChuZXh0UmVzb3VyY2UudGFnKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgICAgIHR5cGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoKHR5cGUgPSBkaWZmSHlkcmF0ZWRUZXh0Rm9yRGV2V2FybmluZ3MoXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdQcm9wc1xuICAgICAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgICAgIG51bGwgIT09IHR5cGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIChidWlsZEh5ZHJhdGlvbkRpZmZOb2RlKHdvcmtJblByb2dyZXNzLCAwKS5zZXJ2ZXJQcm9wcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgICAobmV3UHJvcHMgPSBuZXh0UmVzb3VyY2UubWVtb2l6ZWRQcm9wcyksXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKCh0eXBlID0gZGlmZkh5ZHJhdGVkVGV4dEZvckRldldhcm5pbmdzKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UHJvcHNcbiAgICAgICAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gdHlwZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVpbGRIeWRyYXRpb25EaWZmTm9kZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkuc2VydmVyUHJvcHMgPSB0eXBlKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjdXJyZW50W2ludGVybmFsSW5zdGFuY2VLZXldID0gd29ya0luUHJvZ3Jlc3M7XG4gICAgICAgICAgICAgIGN1cnJlbnQgPVxuICAgICAgICAgICAgICAgIGN1cnJlbnQubm9kZVZhbHVlID09PSByZW5kZXJMYW5lcyB8fFxuICAgICAgICAgICAgICAgIChudWxsICE9PSBuZXdQcm9wcyAmJlxuICAgICAgICAgICAgICAgICAgITAgPT09IG5ld1Byb3BzLnN1cHByZXNzSHlkcmF0aW9uV2FybmluZykgfHxcbiAgICAgICAgICAgICAgICBjaGVja0ZvclVubWF0Y2hlZFRleHQoY3VycmVudC5ub2RlVmFsdWUsIHJlbmRlckxhbmVzKVxuICAgICAgICAgICAgICAgICAgPyAhMFxuICAgICAgICAgICAgICAgICAgOiAhMTtcbiAgICAgICAgICAgICAgY3VycmVudCB8fCB0aHJvd09uSHlkcmF0aW9uTWlzbWF0Y2god29ya0luUHJvZ3Jlc3MsICEwKTtcbiAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICAodHlwZSA9IHJlbmRlckxhbmVzLmFuY2VzdG9ySW5mby5jdXJyZW50KSxcbiAgICAgICAgICAgICAgICBudWxsICE9IHR5cGUgJiZcbiAgICAgICAgICAgICAgICAgIHZhbGlkYXRlVGV4dE5lc3RpbmcoXG4gICAgICAgICAgICAgICAgICAgIG5ld1Byb3BzLFxuICAgICAgICAgICAgICAgICAgICB0eXBlLnRhZyxcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyTGFuZXMuYW5jZXN0b3JJbmZvLmltcGxpY2l0Um9vdFNjb3BlXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChjdXJyZW50ID1cbiAgICAgICAgICAgICAgICAgIGdldE93bmVyRG9jdW1lbnRGcm9tUm9vdENvbnRhaW5lcihjdXJyZW50KS5jcmVhdGVUZXh0Tm9kZShcbiAgICAgICAgICAgICAgICAgICAgbmV3UHJvcHNcbiAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIChjdXJyZW50W2ludGVybmFsSW5zdGFuY2VLZXldID0gd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUgPSBjdXJyZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgcmVuZGVyTGFuZXMgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgIGlmIChudWxsID09PSBjdXJyZW50IHx8IG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSkge1xuICAgICAgICAgICAgbmV3UHJvcHMgPSBwb3BIeWRyYXRpb25TdGF0ZSh3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gcmVuZGVyTGFuZXMpIHtcbiAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW5ld1Byb3BzKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiQSBkZWh5ZHJhdGVkIHN1c3BlbnNlIGNvbXBvbmVudCB3YXMgY29tcGxldGVkIHdpdGhvdXQgYSBoeWRyYXRlZCBub2RlLiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBudWxsICE9PSBjdXJyZW50ID8gY3VycmVudC5kZWh5ZHJhdGVkIDogbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoIWN1cnJlbnQpXG4gICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCB0byBoYXZlIGEgaHlkcmF0ZWQgYWN0aXZpdHkgaW5zdGFuY2UuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY3VycmVudFtpbnRlcm5hbEluc3RhbmNlS2V5XSA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAgICAgICAoKGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZCksXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uIC09XG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudC50cmVlQmFzZUR1cmF0aW9uKSk7XG4gICAgICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgICAgIGVtaXRQZW5kaW5nSHlkcmF0aW9uV2FybmluZ3MoKSxcbiAgICAgICAgICAgICAgICAgIHJlc2V0SHlkcmF0aW9uU3RhdGUoKSxcbiAgICAgICAgICAgICAgICAgIDAgPT09ICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDEyOCkgJiZcbiAgICAgICAgICAgICAgICAgICAgKHJlbmRlckxhbmVzID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGwpLFxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQpLFxuICAgICAgICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAgICAgICAgIG51bGwgIT09IHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAgICAgICAgICgoY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmNoaWxkKSxcbiAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uIC09XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LnRyZWVCYXNlRHVyYXRpb24pKTtcbiAgICAgICAgICAgICAgY3VycmVudCA9ICExO1xuICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IHVwZ3JhZGVIeWRyYXRpb25FcnJvcnNUb1JlY292ZXJhYmxlKCkpLFxuICAgICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgKGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5oeWRyYXRpb25FcnJvcnMgPSByZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnQgPSAhMCk7XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMjU2KVxuICAgICAgICAgICAgICAgIHJldHVybiBwb3BTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpLCB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoMCAhPT0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMTI4KSlcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJDbGllbnQgcmVuZGVyaW5nIGFuIEFjdGl2aXR5IHN1c3BlbmRlZCBpdCBhZ2Fpbi4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICBuZXdQcm9wcyA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudCB8fFxuICAgICAgICAgICAgKG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUuZGVoeWRyYXRlZClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHR5cGUgPSBuZXdQcm9wcztcbiAgICAgICAgICAgIG5leHRSZXNvdXJjZSA9IHBvcEh5ZHJhdGlvblN0YXRlKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgIGlmIChudWxsICE9PSB0eXBlICYmIG51bGwgIT09IHR5cGUuZGVoeWRyYXRlZCkge1xuICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGlmICghbmV4dFJlc291cmNlKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiQSBkZWh5ZHJhdGVkIHN1c3BlbnNlIGNvbXBvbmVudCB3YXMgY29tcGxldGVkIHdpdGhvdXQgYSBoeWRyYXRlZCBub2RlLiBUaGlzIGlzIHByb2JhYmx5IGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIG5leHRSZXNvdXJjZSA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgICAgICAgbmV4dFJlc291cmNlID1cbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IG5leHRSZXNvdXJjZSA/IG5leHRSZXNvdXJjZS5kZWh5ZHJhdGVkIDogbnVsbDtcbiAgICAgICAgICAgICAgICBpZiAoIW5leHRSZXNvdXJjZSlcbiAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIHRvIGhhdmUgYSBoeWRyYXRlZCBzdXNwZW5zZSBpbnN0YW5jZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBuZXh0UmVzb3VyY2VbaW50ZXJuYWxJbnN0YW5jZUtleV0gPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICAgICAgICBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSB0eXBlICYmXG4gICAgICAgICAgICAgICAgICAoKHR5cGUgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZCksXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSB0eXBlICYmXG4gICAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uIC09IHR5cGUudHJlZUJhc2VEdXJhdGlvbikpO1xuICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICBlbWl0UGVuZGluZ0h5ZHJhdGlvbldhcm5pbmdzKCksXG4gICAgICAgICAgICAgICAgICByZXNldEh5ZHJhdGlvblN0YXRlKCksXG4gICAgICAgICAgICAgICAgICAwID09PSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiAxMjgpICYmXG4gICAgICAgICAgICAgICAgICAgICh0eXBlID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSA9IG51bGwpLFxuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDQpLFxuICAgICAgICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAgICAgICAgIG51bGwgIT09IHR5cGUgJiZcbiAgICAgICAgICAgICAgICAgICAgKCh0eXBlID0gd29ya0luUHJvZ3Jlc3MuY2hpbGQpLFxuICAgICAgICAgICAgICAgICAgICBudWxsICE9PSB0eXBlICYmXG4gICAgICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLnRyZWVCYXNlRHVyYXRpb24gLT1cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUudHJlZUJhc2VEdXJhdGlvbikpO1xuICAgICAgICAgICAgICB0eXBlID0gITE7XG4gICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgKHR5cGUgPSB1cGdyYWRlSHlkcmF0aW9uRXJyb3JzVG9SZWNvdmVyYWJsZSgpKSxcbiAgICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgICAgICAgIChjdXJyZW50Lm1lbW9pemVkU3RhdGUuaHlkcmF0aW9uRXJyb3JzID0gdHlwZSksXG4gICAgICAgICAgICAgICAgKHR5cGUgPSAhMCk7XG4gICAgICAgICAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgICAgICAgaWYgKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMjU2KVxuICAgICAgICAgICAgICAgIHJldHVybiBwb3BTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpLCB3b3JrSW5Qcm9ncmVzcztcbiAgICAgICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHBvcFN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgaWYgKDAgIT09ICh3b3JrSW5Qcm9ncmVzcy5mbGFncyAmIDEyOCkpXG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubGFuZXMgPSByZW5kZXJMYW5lcyksXG4gICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgICAgICB0cmFuc2ZlckFjdHVhbER1cmF0aW9uKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgcmVuZGVyTGFuZXMgPSBudWxsICE9PSBuZXdQcm9wcztcbiAgICAgICAgICBjdXJyZW50ID0gbnVsbCAhPT0gY3VycmVudCAmJiBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgcmVuZGVyTGFuZXMgJiZcbiAgICAgICAgICAgICgobmV3UHJvcHMgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZCksXG4gICAgICAgICAgICAodHlwZSA9IG51bGwpLFxuICAgICAgICAgICAgbnVsbCAhPT0gbmV3UHJvcHMuYWx0ZXJuYXRlICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IG5ld1Byb3BzLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IG5ld1Byb3BzLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCAmJlxuICAgICAgICAgICAgICAodHlwZSA9IG5ld1Byb3BzLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKSxcbiAgICAgICAgICAgIChuZXh0UmVzb3VyY2UgPSBudWxsKSxcbiAgICAgICAgICAgIG51bGwgIT09IG5ld1Byb3BzLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgICAgbnVsbCAhPT0gbmV3UHJvcHMubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wgJiZcbiAgICAgICAgICAgICAgKG5leHRSZXNvdXJjZSA9IG5ld1Byb3BzLm1lbW9pemVkU3RhdGUuY2FjaGVQb29sLnBvb2wpLFxuICAgICAgICAgICAgbmV4dFJlc291cmNlICE9PSB0eXBlICYmIChuZXdQcm9wcy5mbGFncyB8PSAyMDQ4KSk7XG4gICAgICAgICAgcmVuZGVyTGFuZXMgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgIHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuY2hpbGQuZmxhZ3MgfD0gODE5Mik7XG4gICAgICAgICAgc2NoZWR1bGVSZXRyeUVmZmVjdCh3b3JrSW5Qcm9ncmVzcywgd29ya0luUHJvZ3Jlc3MudXBkYXRlUXVldWUpO1xuICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgIHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAoKGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZCksXG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy50cmVlQmFzZUR1cmF0aW9uIC09IGN1cnJlbnQudHJlZUJhc2VEdXJhdGlvbikpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHBvcEhvc3RDb250YWluZXIod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudCAmJlxuICAgICAgICAgICAgICBsaXN0ZW5Ub0FsbFN1cHBvcnRlZEV2ZW50cyhcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5zdGF0ZU5vZGUuY29udGFpbmVySW5mb1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgcG9wUHJvdmlkZXIod29ya0luUHJvZ3Jlc3MudHlwZSwgd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgYnViYmxlUHJvcGVydGllcyh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICBwb3Aoc3VzcGVuc2VTdGFja0N1cnNvciwgd29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIG5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICBpZiAobnVsbCA9PT0gbmV3UHJvcHMpIHJldHVybiBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKSwgbnVsbDtcbiAgICAgICAgICB0eXBlID0gMCAhPT0gKHdvcmtJblByb2dyZXNzLmZsYWdzICYgMTI4KTtcbiAgICAgICAgICBuZXh0UmVzb3VyY2UgPSBuZXdQcm9wcy5yZW5kZXJpbmc7XG4gICAgICAgICAgaWYgKG51bGwgPT09IG5leHRSZXNvdXJjZSlcbiAgICAgICAgICAgIGlmICh0eXBlKSBjdXRPZmZUYWlsSWZOZWVkZWQobmV3UHJvcHMsICExKTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyAhPT0gUm9vdEluUHJvZ3Jlc3MgfHxcbiAgICAgICAgICAgICAgICAobnVsbCAhPT0gY3VycmVudCAmJiAwICE9PSAoY3VycmVudC5mbGFncyAmIDEyOCkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBmb3IgKGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5jaGlsZDsgbnVsbCAhPT0gY3VycmVudDsgKSB7XG4gICAgICAgICAgICAgICAgICBuZXh0UmVzb3VyY2UgPSBmaW5kRmlyc3RTdXNwZW5kZWQoY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gbmV4dFJlc291cmNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDEyODtcbiAgICAgICAgICAgICAgICAgICAgY3V0T2ZmVGFpbElmTmVlZGVkKG5ld1Byb3BzLCAhMSk7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBuZXh0UmVzb3VyY2UudXBkYXRlUXVldWU7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlID0gY3VycmVudDtcbiAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVSZXRyeUVmZmVjdCh3b3JrSW5Qcm9ncmVzcywgY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnN1YnRyZWVGbGFncyA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSByZW5kZXJMYW5lcztcbiAgICAgICAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICAgICAgICByZW5kZXJMYW5lcyA9IHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgICAgICAgICAgICAgIG51bGwgIT09IHJlbmRlckxhbmVzO1xuXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICByZXNldFdvcmtJblByb2dyZXNzKHJlbmRlckxhbmVzLCBjdXJyZW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IHJlbmRlckxhbmVzLnNpYmxpbmcpO1xuICAgICAgICAgICAgICAgICAgICBwdXNoKFxuICAgICAgICAgICAgICAgICAgICAgIHN1c3BlbnNlU3RhY2tDdXJzb3IsXG4gICAgICAgICAgICAgICAgICAgICAgKHN1c3BlbnNlU3RhY2tDdXJzb3IuY3VycmVudCAmXG4gICAgICAgICAgICAgICAgICAgICAgICBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzaykgfFxuICAgICAgICAgICAgICAgICAgICAgICAgRm9yY2VTdXNwZW5zZUZhbGxiYWNrLFxuICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGlzSHlkcmF0aW5nICYmXG4gICAgICAgICAgICAgICAgICAgICAgcHVzaFRyZWVGb3JrKHdvcmtJblByb2dyZXNzLCBuZXdQcm9wcy50cmVlRm9ya0NvdW50KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHdvcmtJblByb2dyZXNzLmNoaWxkO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQuc2libGluZztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG51bGwgIT09IG5ld1Byb3BzLnRhaWwgJiZcbiAgICAgICAgICAgICAgICBub3ckMSgpID4gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyVGFyZ2V0VGltZSAmJlxuICAgICAgICAgICAgICAgICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTI4KSxcbiAgICAgICAgICAgICAgICAodHlwZSA9ICEwKSxcbiAgICAgICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQobmV3UHJvcHMsICExKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubGFuZXMgPSA0MTk0MzA0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoIXR5cGUpXG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAoKGN1cnJlbnQgPSBmaW5kRmlyc3RTdXNwZW5kZWQobmV4dFJlc291cmNlKSksIG51bGwgIT09IGN1cnJlbnQpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMTI4KSxcbiAgICAgICAgICAgICAgICAgICh0eXBlID0gITApLFxuICAgICAgICAgICAgICAgICAgKGN1cnJlbnQgPSBjdXJyZW50LnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy51cGRhdGVRdWV1ZSA9IGN1cnJlbnQpLFxuICAgICAgICAgICAgICAgICAgc2NoZWR1bGVSZXRyeUVmZmVjdCh3b3JrSW5Qcm9ncmVzcywgY3VycmVudCksXG4gICAgICAgICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQobmV3UHJvcHMsICEwKSxcbiAgICAgICAgICAgICAgICAgIG51bGwgPT09IG5ld1Byb3BzLnRhaWwgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJoaWRkZW5cIiA9PT0gbmV3UHJvcHMudGFpbE1vZGUgJiZcbiAgICAgICAgICAgICAgICAgICAgIW5leHRSZXNvdXJjZS5hbHRlcm5hdGUgJiZcbiAgICAgICAgICAgICAgICAgICAgIWlzSHlkcmF0aW5nKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIHJldHVybiBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKSwgbnVsbDtcbiAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgMiAqIG5vdyQxKCkgLSBuZXdQcm9wcy5yZW5kZXJpbmdTdGFydFRpbWUgPlxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyVGFyZ2V0VGltZSAmJlxuICAgICAgICAgICAgICAgICAgNTM2ODcwOTEyICE9PSByZW5kZXJMYW5lcyAmJlxuICAgICAgICAgICAgICAgICAgKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSAxMjgpLFxuICAgICAgICAgICAgICAgICAgKHR5cGUgPSAhMCksXG4gICAgICAgICAgICAgICAgICBjdXRPZmZUYWlsSWZOZWVkZWQobmV3UHJvcHMsICExKSxcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5sYW5lcyA9IDQxOTQzMDQpKTtcbiAgICAgICAgICAgIG5ld1Byb3BzLmlzQmFja3dhcmRzXG4gICAgICAgICAgICAgID8gKChuZXh0UmVzb3VyY2Uuc2libGluZyA9IHdvcmtJblByb2dyZXNzLmNoaWxkKSxcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuY2hpbGQgPSBuZXh0UmVzb3VyY2UpKVxuICAgICAgICAgICAgICA6ICgoY3VycmVudCA9IG5ld1Byb3BzLmxhc3QpLFxuICAgICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnRcbiAgICAgICAgICAgICAgICAgID8gKGN1cnJlbnQuc2libGluZyA9IG5leHRSZXNvdXJjZSlcbiAgICAgICAgICAgICAgICAgIDogKHdvcmtJblByb2dyZXNzLmNoaWxkID0gbmV4dFJlc291cmNlKSxcbiAgICAgICAgICAgICAgICAobmV3UHJvcHMubGFzdCA9IG5leHRSZXNvdXJjZSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobnVsbCAhPT0gbmV3UHJvcHMudGFpbClcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIChjdXJyZW50ID0gbmV3UHJvcHMudGFpbCksXG4gICAgICAgICAgICAgIChuZXdQcm9wcy5yZW5kZXJpbmcgPSBjdXJyZW50KSxcbiAgICAgICAgICAgICAgKG5ld1Byb3BzLnRhaWwgPSBjdXJyZW50LnNpYmxpbmcpLFxuICAgICAgICAgICAgICAobmV3UHJvcHMucmVuZGVyaW5nU3RhcnRUaW1lID0gbm93JDEoKSksXG4gICAgICAgICAgICAgIChjdXJyZW50LnNpYmxpbmcgPSBudWxsKSxcbiAgICAgICAgICAgICAgKHJlbmRlckxhbmVzID0gc3VzcGVuc2VTdGFja0N1cnNvci5jdXJyZW50KSxcbiAgICAgICAgICAgICAgKHJlbmRlckxhbmVzID0gdHlwZVxuICAgICAgICAgICAgICAgID8gKHJlbmRlckxhbmVzICYgU3VidHJlZVN1c3BlbnNlQ29udGV4dE1hc2spIHxcbiAgICAgICAgICAgICAgICAgIEZvcmNlU3VzcGVuc2VGYWxsYmFja1xuICAgICAgICAgICAgICAgIDogcmVuZGVyTGFuZXMgJiBTdWJ0cmVlU3VzcGVuc2VDb250ZXh0TWFzayksXG4gICAgICAgICAgICAgIHB1c2goc3VzcGVuc2VTdGFja0N1cnNvciwgcmVuZGVyTGFuZXMsIHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgICAgaXNIeWRyYXRpbmcgJiZcbiAgICAgICAgICAgICAgICBwdXNoVHJlZUZvcmsod29ya0luUHJvZ3Jlc3MsIG5ld1Byb3BzLnRyZWVGb3JrQ291bnQpLFxuICAgICAgICAgICAgICBjdXJyZW50XG4gICAgICAgICAgICApO1xuICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIDIyOlxuICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBwb3BTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgcG9wSGlkZGVuQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAobmV3UHJvcHMgPSBudWxsICE9PSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlKSxcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnRcbiAgICAgICAgICAgICAgPyAobnVsbCAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlKSAhPT0gbmV3UHJvcHMgJiZcbiAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gODE5MilcbiAgICAgICAgICAgICAgOiBuZXdQcm9wcyAmJiAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gODE5MiksXG4gICAgICAgICAgICBuZXdQcm9wc1xuICAgICAgICAgICAgICA/IDAgIT09IChyZW5kZXJMYW5lcyAmIDUzNjg3MDkxMikgJiZcbiAgICAgICAgICAgICAgICAwID09PSAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgJiAxMjgpICYmXG4gICAgICAgICAgICAgICAgKGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzLnN1YnRyZWVGbGFncyAmIDYgJiZcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5mbGFncyB8PSA4MTkyKSlcbiAgICAgICAgICAgICAgOiBidWJibGVQcm9wZXJ0aWVzKHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IHdvcmtJblByb2dyZXNzLnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICAgIG51bGwgIT09IHJlbmRlckxhbmVzICYmXG4gICAgICAgICAgICAgIHNjaGVkdWxlUmV0cnlFZmZlY3Qod29ya0luUHJvZ3Jlc3MsIHJlbmRlckxhbmVzLnJldHJ5UXVldWUpLFxuICAgICAgICAgICAgKHJlbmRlckxhbmVzID0gbnVsbCksXG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sICYmXG4gICAgICAgICAgICAgIChyZW5kZXJMYW5lcyA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksXG4gICAgICAgICAgICAobmV3UHJvcHMgPSBudWxsKSxcbiAgICAgICAgICAgIG51bGwgIT09IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgICAgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wgJiZcbiAgICAgICAgICAgICAgKG5ld1Byb3BzID0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksXG4gICAgICAgICAgICBuZXdQcm9wcyAhPT0gcmVuZGVyTGFuZXMgJiYgKHdvcmtJblByb2dyZXNzLmZsYWdzIHw9IDIwNDgpLFxuICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudCAmJiBwb3AocmVzdW1lZENhY2hlLCB3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICBudWxsXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHJlbmRlckxhbmVzID0gbnVsbCksXG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmIChyZW5kZXJMYW5lcyA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5jYWNoZSksXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlLmNhY2hlICE9PSByZW5kZXJMYW5lcyAmJlxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MuZmxhZ3MgfD0gMjA0OCksXG4gICAgICAgICAgICBwb3BQcm92aWRlcihDYWNoZUNvbnRleHQsIHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIGJ1YmJsZVByb3BlcnRpZXMod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgMjU6XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgXCJVbmtub3duIHVuaXQgb2Ygd29yayB0YWcgKFwiICtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcy50YWcgK1xuICAgICAgICAgIFwiKS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdW53aW5kV29yayhjdXJyZW50LCB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgcG9wVHJlZUNvbnRleHQod29ya0luUHJvZ3Jlc3MpO1xuICAgICAgc3dpdGNoICh3b3JrSW5Qcm9ncmVzcy50YWcpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmZsYWdzKSxcbiAgICAgICAgICAgIGN1cnJlbnQgJiA2NTUzNlxuICAgICAgICAgICAgICA/ICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgPSAoY3VycmVudCAmIC02NTUzNykgfCAxMjgpLFxuICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzcy5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHBvcFByb3ZpZGVyKENhY2hlQ29udGV4dCwgd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgcG9wSG9zdENvbnRhaW5lcih3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAoY3VycmVudCA9IHdvcmtJblByb2dyZXNzLmZsYWdzKSxcbiAgICAgICAgICAgIDAgIT09IChjdXJyZW50ICYgNjU1MzYpICYmIDAgPT09IChjdXJyZW50ICYgMTI4KVxuICAgICAgICAgICAgICA/ICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgPSAoY3VycmVudCAmIC02NTUzNykgfCAxMjgpLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzKVxuICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICBjYXNlIDI3OlxuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgcmV0dXJuIHBvcEhvc3RDb250ZXh0KHdvcmtJblByb2dyZXNzKSwgbnVsbDtcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICBpZiAobnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MubWVtb2l6ZWRTdGF0ZSkge1xuICAgICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgICAgIGlmIChudWxsID09PSB3b3JrSW5Qcm9ncmVzcy5hbHRlcm5hdGUpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiVGhyZXcgaW4gbmV3bHkgbW91bnRlZCBkZWh5ZHJhdGVkIGNvbXBvbmVudC4gVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXNldEh5ZHJhdGlvblN0YXRlKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGN1cnJlbnQgPSB3b3JrSW5Qcm9ncmVzcy5mbGFncztcbiAgICAgICAgICByZXR1cm4gY3VycmVudCAmIDY1NTM2XG4gICAgICAgICAgICA/ICgod29ya0luUHJvZ3Jlc3MuZmxhZ3MgPSAoY3VycmVudCAmIC02NTUzNykgfCAxMjgpLFxuICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3MubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAgICAgdHJhbnNmZXJBY3R1YWxEdXJhdGlvbih3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzKVxuICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIHBvcFN1c3BlbnNlSGFuZGxlcih3b3JrSW5Qcm9ncmVzcyk7XG4gICAgICAgICAgY3VycmVudCA9IHdvcmtJblByb2dyZXNzLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgaWYgKG51bGwgIT09IGN1cnJlbnQgJiYgbnVsbCAhPT0gY3VycmVudC5kZWh5ZHJhdGVkKSB7XG4gICAgICAgICAgICBpZiAobnVsbCA9PT0gd29ya0luUHJvZ3Jlc3MuYWx0ZXJuYXRlKVxuICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICBcIlRocmV3IGluIG5ld2x5IG1vdW50ZWQgZGVoeWRyYXRlZCBjb21wb25lbnQuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmVzZXRIeWRyYXRpb25TdGF0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3MuZmxhZ3M7XG4gICAgICAgICAgcmV0dXJuIGN1cnJlbnQgJiA2NTUzNlxuICAgICAgICAgICAgPyAoKHdvcmtJblByb2dyZXNzLmZsYWdzID0gKGN1cnJlbnQgJiAtNjU1MzcpIHwgMTI4KSxcbiAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJlxuICAgICAgICAgICAgICAgIHRyYW5zZmVyQWN0dWFsRHVyYXRpb24od29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzcylcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICByZXR1cm4gcG9wKHN1c3BlbnNlU3RhY2tDdXJzb3IsIHdvcmtJblByb2dyZXNzKSwgbnVsbDtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHJldHVybiBwb3BIb3N0Q29udGFpbmVyKHdvcmtJblByb2dyZXNzKSwgbnVsbDtcbiAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICByZXR1cm4gcG9wUHJvdmlkZXIod29ya0luUHJvZ3Jlc3MudHlwZSwgd29ya0luUHJvZ3Jlc3MpLCBudWxsO1xuICAgICAgICBjYXNlIDIyOlxuICAgICAgICBjYXNlIDIzOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBwb3BTdXNwZW5zZUhhbmRsZXIod29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgcG9wSGlkZGVuQ29udGV4dCh3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmIHBvcChyZXN1bWVkQ2FjaGUsIHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIChjdXJyZW50ID0gd29ya0luUHJvZ3Jlc3MuZmxhZ3MpLFxuICAgICAgICAgICAgY3VycmVudCAmIDY1NTM2XG4gICAgICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzcy5mbGFncyA9IChjdXJyZW50ICYgLTY1NTM3KSB8IDEyOCksXG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJlxuICAgICAgICAgICAgICAgICAgdHJhbnNmZXJBY3R1YWxEdXJhdGlvbih3b3JrSW5Qcm9ncmVzcyksXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3MpXG4gICAgICAgICAgICAgIDogbnVsbFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgcmV0dXJuIHBvcFByb3ZpZGVyKENhY2hlQ29udGV4dCwgd29ya0luUHJvZ3Jlc3MpLCBudWxsO1xuICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB1bndpbmRJbnRlcnJ1cHRlZFdvcmsoY3VycmVudCwgaW50ZXJydXB0ZWRXb3JrKSB7XG4gICAgICBwb3BUcmVlQ29udGV4dChpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgc3dpdGNoIChpbnRlcnJ1cHRlZFdvcmsudGFnKSB7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBwb3BQcm92aWRlcihDYWNoZUNvbnRleHQsIGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgcG9wSG9zdENvbnRhaW5lcihpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICBjYXNlIDI3OlxuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgcG9wSG9zdENvbnRleHQoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHBvcEhvc3RDb250YWluZXIoaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICBudWxsICE9PSBpbnRlcnJ1cHRlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgcG9wKHN1c3BlbnNlU3RhY2tDdXJzb3IsIGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTA6XG4gICAgICAgICAgcG9wUHJvdmlkZXIoaW50ZXJydXB0ZWRXb3JrLnR5cGUsIGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgcG9wU3VzcGVuc2VIYW5kbGVyKGludGVycnVwdGVkV29yayk7XG4gICAgICAgICAgcG9wSGlkZGVuQ29udGV4dChpbnRlcnJ1cHRlZFdvcmspO1xuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiYgcG9wKHJlc3VtZWRDYWNoZSwgaW50ZXJydXB0ZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNDpcbiAgICAgICAgICBwb3BQcm92aWRlcihDYWNoZUNvbnRleHQsIGludGVycnVwdGVkV29yayk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNob3VsZFByb2ZpbGUoY3VycmVudCkge1xuICAgICAgcmV0dXJuIChjdXJyZW50Lm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0SG9va0xheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrLCBob29rRmxhZ3MpIHtcbiAgICAgIHNob3VsZFByb2ZpbGUoZmluaXNoZWRXb3JrKVxuICAgICAgICA/IChzdGFydEVmZmVjdFRpbWVyKCksXG4gICAgICAgICAgY29tbWl0SG9va0VmZmVjdExpc3RNb3VudChob29rRmxhZ3MsIGZpbmlzaGVkV29yayksXG4gICAgICAgICAgcmVjb3JkRWZmZWN0RHVyYXRpb24oKSlcbiAgICAgICAgOiBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KGhvb2tGbGFncywgZmluaXNoZWRXb3JrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0SG9va0xheW91dFVubW91bnRFZmZlY3RzKFxuICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgIGhvb2tGbGFnc1xuICAgICkge1xuICAgICAgc2hvdWxkUHJvZmlsZShmaW5pc2hlZFdvcmspXG4gICAgICAgID8gKHN0YXJ0RWZmZWN0VGltZXIoKSxcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoXG4gICAgICAgICAgICBob29rRmxhZ3MsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yXG4gICAgICAgICAgKSxcbiAgICAgICAgICByZWNvcmRFZmZlY3REdXJhdGlvbigpKVxuICAgICAgICA6IGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChcbiAgICAgICAgICAgIGhvb2tGbGFncyxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3JcbiAgICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KGZsYWdzLCBmaW5pc2hlZFdvcmspIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZSxcbiAgICAgICAgICBsYXN0RWZmZWN0ID0gbnVsbCAhPT0gdXBkYXRlUXVldWUgPyB1cGRhdGVRdWV1ZS5sYXN0RWZmZWN0IDogbnVsbDtcbiAgICAgICAgaWYgKG51bGwgIT09IGxhc3RFZmZlY3QpIHtcbiAgICAgICAgICB2YXIgZmlyc3RFZmZlY3QgPSBsYXN0RWZmZWN0Lm5leHQ7XG4gICAgICAgICAgdXBkYXRlUXVldWUgPSBmaXJzdEVmZmVjdDtcbiAgICAgICAgICBkbyB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICh1cGRhdGVRdWV1ZS50YWcgJiBmbGFncykgPT09IGZsYWdzICYmXG4gICAgICAgICAgICAgICgobGFzdEVmZmVjdCA9IHZvaWQgMCksXG4gICAgICAgICAgICAgIChmbGFncyAmIEluc2VydGlvbikgIT09IE5vRmxhZ3MgJiZcbiAgICAgICAgICAgICAgICAoaXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0ID0gITApLFxuICAgICAgICAgICAgICAobGFzdEVmZmVjdCA9IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBjYWxsQ3JlYXRlSW5ERVYsXG4gICAgICAgICAgICAgICAgdXBkYXRlUXVldWVcbiAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIChmbGFncyAmIEluc2VydGlvbikgIT09IE5vRmxhZ3MgJiZcbiAgICAgICAgICAgICAgICAoaXNSdW5uaW5nSW5zZXJ0aW9uRWZmZWN0ID0gITEpLFxuICAgICAgICAgICAgICB2b2lkIDAgIT09IGxhc3RFZmZlY3QgJiYgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgbGFzdEVmZmVjdClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB2YXIgaG9va05hbWUgPSB2b2lkIDA7XG4gICAgICAgICAgICAgIGhvb2tOYW1lID1cbiAgICAgICAgICAgICAgICAwICE9PSAodXBkYXRlUXVldWUudGFnICYgTGF5b3V0KVxuICAgICAgICAgICAgICAgICAgPyBcInVzZUxheW91dEVmZmVjdFwiXG4gICAgICAgICAgICAgICAgICA6IDAgIT09ICh1cGRhdGVRdWV1ZS50YWcgJiBJbnNlcnRpb24pXG4gICAgICAgICAgICAgICAgICAgID8gXCJ1c2VJbnNlcnRpb25FZmZlY3RcIlxuICAgICAgICAgICAgICAgICAgICA6IFwidXNlRWZmZWN0XCI7XG4gICAgICAgICAgICAgIHZhciBhZGRlbmR1bSA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgYWRkZW5kdW0gPVxuICAgICAgICAgICAgICAgIG51bGwgPT09IGxhc3RFZmZlY3RcbiAgICAgICAgICAgICAgICAgID8gXCIgWW91IHJldHVybmVkIG51bGwuIElmIHlvdXIgZWZmZWN0IGRvZXMgbm90IHJlcXVpcmUgY2xlYW4gdXAsIHJldHVybiB1bmRlZmluZWQgKG9yIG5vdGhpbmcpLlwiXG4gICAgICAgICAgICAgICAgICA6IFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGxhc3RFZmZlY3QudGhlblxuICAgICAgICAgICAgICAgICAgICA/IFwiXFxuXFxuSXQgbG9va3MgbGlrZSB5b3Ugd3JvdGUgXCIgK1xuICAgICAgICAgICAgICAgICAgICAgIGhvb2tOYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICBcIihhc3luYyAoKSA9PiAuLi4pIG9yIHJldHVybmVkIGEgUHJvbWlzZS4gSW5zdGVhZCwgd3JpdGUgdGhlIGFzeW5jIGZ1bmN0aW9uIGluc2lkZSB5b3VyIGVmZmVjdCBhbmQgY2FsbCBpdCBpbW1lZGlhdGVseTpcXG5cXG5cIiArXG4gICAgICAgICAgICAgICAgICAgICAgaG9va05hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgIFwiKCgpID0+IHtcXG4gIGFzeW5jIGZ1bmN0aW9uIGZldGNoRGF0YSgpIHtcXG4gICAgLy8gWW91IGNhbiBhd2FpdCBoZXJlXFxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgTXlBUEkuZ2V0RGF0YShzb21lSWQpO1xcbiAgICAvLyAuLi5cXG4gIH1cXG4gIGZldGNoRGF0YSgpO1xcbn0sIFtzb21lSWRdKTsgLy8gT3IgW10gaWYgZWZmZWN0IGRvZXNuJ3QgbmVlZCBwcm9wcyBvciBzdGF0ZVxcblxcbkxlYXJuIG1vcmUgYWJvdXQgZGF0YSBmZXRjaGluZyB3aXRoIEhvb2tzOiBodHRwczovL3JlYWN0LmRldi9saW5rL2hvb2tzLWRhdGEtZmV0Y2hpbmdcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiIFlvdSByZXR1cm5lZDogXCIgKyBsYXN0RWZmZWN0O1xuICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gKG4sIGEpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiJXMgbXVzdCBub3QgcmV0dXJuIGFueXRoaW5nIGJlc2lkZXMgYSBmdW5jdGlvbiwgd2hpY2ggaXMgdXNlZCBmb3IgY2xlYW4tdXAuJXNcIixcbiAgICAgICAgICAgICAgICAgICAgbixcbiAgICAgICAgICAgICAgICAgICAgYVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGhvb2tOYW1lLFxuICAgICAgICAgICAgICAgIGFkZGVuZHVtXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1cGRhdGVRdWV1ZSA9IHVwZGF0ZVF1ZXVlLm5leHQ7XG4gICAgICAgICAgfSB3aGlsZSAodXBkYXRlUXVldWUgIT09IGZpcnN0RWZmZWN0KTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChcbiAgICAgIGZsYWdzLFxuICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvclxuICAgICkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIHVwZGF0ZVF1ZXVlID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlLFxuICAgICAgICAgIGxhc3RFZmZlY3QgPSBudWxsICE9PSB1cGRhdGVRdWV1ZSA/IHVwZGF0ZVF1ZXVlLmxhc3RFZmZlY3QgOiBudWxsO1xuICAgICAgICBpZiAobnVsbCAhPT0gbGFzdEVmZmVjdCkge1xuICAgICAgICAgIHZhciBmaXJzdEVmZmVjdCA9IGxhc3RFZmZlY3QubmV4dDtcbiAgICAgICAgICB1cGRhdGVRdWV1ZSA9IGZpcnN0RWZmZWN0O1xuICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgIGlmICgodXBkYXRlUXVldWUudGFnICYgZmxhZ3MpID09PSBmbGFncykge1xuICAgICAgICAgICAgICB2YXIgaW5zdCA9IHVwZGF0ZVF1ZXVlLmluc3QsXG4gICAgICAgICAgICAgICAgZGVzdHJveSA9IGluc3QuZGVzdHJveTtcbiAgICAgICAgICAgICAgdm9pZCAwICE9PSBkZXN0cm95ICYmXG4gICAgICAgICAgICAgICAgKChpbnN0LmRlc3Ryb3kgPSB2b2lkIDApLFxuICAgICAgICAgICAgICAgIChmbGFncyAmIEluc2VydGlvbikgIT09IE5vRmxhZ3MgJiZcbiAgICAgICAgICAgICAgICAgIChpc1J1bm5pbmdJbnNlcnRpb25FZmZlY3QgPSAhMCksXG4gICAgICAgICAgICAgICAgKGxhc3RFZmZlY3QgPSBmaW5pc2hlZFdvcmspLFxuICAgICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgbGFzdEVmZmVjdCxcbiAgICAgICAgICAgICAgICAgIGNhbGxEZXN0cm95SW5ERVYsXG4gICAgICAgICAgICAgICAgICBsYXN0RWZmZWN0LFxuICAgICAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgICAgICAgIGRlc3Ryb3lcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChmbGFncyAmIEluc2VydGlvbikgIT09IE5vRmxhZ3MgJiZcbiAgICAgICAgICAgICAgICAgIChpc1J1bm5pbmdJbnNlcnRpb25FZmZlY3QgPSAhMSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdXBkYXRlUXVldWUgPSB1cGRhdGVRdWV1ZS5uZXh0O1xuICAgICAgICAgIH0gd2hpbGUgKHVwZGF0ZVF1ZXVlICE9PSBmaXJzdEVmZmVjdCk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRIb29rUGFzc2l2ZU1vdW50RWZmZWN0cyhmaW5pc2hlZFdvcmssIGhvb2tGbGFncykge1xuICAgICAgc2hvdWxkUHJvZmlsZShmaW5pc2hlZFdvcmspXG4gICAgICAgID8gKHN0YXJ0RWZmZWN0VGltZXIoKSxcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdE1vdW50KGhvb2tGbGFncywgZmluaXNoZWRXb3JrKSxcbiAgICAgICAgICByZWNvcmRFZmZlY3REdXJhdGlvbigpKVxuICAgICAgICA6IGNvbW1pdEhvb2tFZmZlY3RMaXN0TW91bnQoaG9va0ZsYWdzLCBmaW5pc2hlZFdvcmspO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRIb29rUGFzc2l2ZVVubW91bnRFZmZlY3RzKFxuICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgIGhvb2tGbGFnc1xuICAgICkge1xuICAgICAgc2hvdWxkUHJvZmlsZShmaW5pc2hlZFdvcmspXG4gICAgICAgID8gKHN0YXJ0RWZmZWN0VGltZXIoKSxcbiAgICAgICAgICBjb21taXRIb29rRWZmZWN0TGlzdFVubW91bnQoXG4gICAgICAgICAgICBob29rRmxhZ3MsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yXG4gICAgICAgICAgKSxcbiAgICAgICAgICByZWNvcmRFZmZlY3REdXJhdGlvbigpKVxuICAgICAgICA6IGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChcbiAgICAgICAgICAgIGhvb2tGbGFncyxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3JcbiAgICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRDbGFzc0NhbGxiYWNrcyhmaW5pc2hlZFdvcmspIHtcbiAgICAgIHZhciB1cGRhdGVRdWV1ZSA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcbiAgICAgIGlmIChudWxsICE9PSB1cGRhdGVRdWV1ZSkge1xuICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICBmaW5pc2hlZFdvcmsudHlwZS5kZWZhdWx0UHJvcHMgfHxcbiAgICAgICAgICBcInJlZlwiIGluIGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzIHx8XG4gICAgICAgICAgZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyB8fFxuICAgICAgICAgIChpbnN0YW5jZS5wcm9wcyAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiRXhwZWN0ZWQgJXMgcHJvcHMgdG8gbWF0Y2ggbWVtb2l6ZWQgcHJvcHMgYmVmb3JlIHByb2Nlc3NpbmcgdGhlIHVwZGF0ZSBxdWV1ZS4gVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSBhIGNvbXBvbmVudCByZWFzc2lnbnMgaXRzIG93biBgdGhpcy5wcm9wc2AuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiLFxuICAgICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgXCJpbnN0YW5jZVwiXG4gICAgICAgICAgICApLFxuICAgICAgICAgIGluc3RhbmNlLnN0YXRlICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgcHJvY2Vzc2luZyB0aGUgdXBkYXRlIHF1ZXVlLiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIsXG4gICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCBcImluc3RhbmNlXCJcbiAgICAgICAgICAgICkpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgY29tbWl0Q2FsbGJhY2tzLFxuICAgICAgICAgICAgdXBkYXRlUXVldWUsXG4gICAgICAgICAgICBpbnN0YW5jZVxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY2FsbEdldFNuYXBzaG90QmVmb3JlVXBkYXRlcyhpbnN0YW5jZSwgcHJldlByb3BzLCBwcmV2U3RhdGUpIHtcbiAgICAgIHJldHVybiBpbnN0YW5jZS5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdENsYXNzU25hcHNob3QoZmluaXNoZWRXb3JrLCBjdXJyZW50KSB7XG4gICAgICB2YXIgcHJldlByb3BzID0gY3VycmVudC5tZW1vaXplZFByb3BzLFxuICAgICAgICBwcmV2U3RhdGUgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGU7XG4gICAgICBjdXJyZW50ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgIGZpbmlzaGVkV29yay50eXBlLmRlZmF1bHRQcm9wcyB8fFxuICAgICAgICBcInJlZlwiIGluIGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzIHx8XG4gICAgICAgIGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMgfHxcbiAgICAgICAgKGN1cnJlbnQucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzICYmXG4gICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiRXhwZWN0ZWQgJXMgcHJvcHMgdG8gbWF0Y2ggbWVtb2l6ZWQgcHJvcHMgYmVmb3JlIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlLiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnByb3BzYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIsXG4gICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgXCJpbnN0YW5jZVwiXG4gICAgICAgICAgKSxcbiAgICAgICAgY3VycmVudC5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUuIFRoaXMgbWlnaHQgZWl0aGVyIGJlIGJlY2F1c2Ugb2YgYSBidWcgaW4gUmVhY3QsIG9yIGJlY2F1c2UgYSBjb21wb25lbnQgcmVhc3NpZ25zIGl0cyBvd24gYHRoaXMuc3RhdGVgLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIixcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCBcImluc3RhbmNlXCJcbiAgICAgICAgICApKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciByZXNvbHZlZFByZXZQcm9wcyA9IHJlc29sdmVDbGFzc0NvbXBvbmVudFByb3BzKFxuICAgICAgICAgIGZpbmlzaGVkV29yay50eXBlLFxuICAgICAgICAgIHByZXZQcm9wc1xuICAgICAgICApO1xuICAgICAgICB2YXIgc25hcHNob3QgPSBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgY2FsbEdldFNuYXBzaG90QmVmb3JlVXBkYXRlcyxcbiAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgIHJlc29sdmVkUHJldlByb3BzLFxuICAgICAgICAgIHByZXZTdGF0ZVxuICAgICAgICApO1xuICAgICAgICBwcmV2UHJvcHMgPSBkaWRXYXJuQWJvdXRVbmRlZmluZWRTbmFwc2hvdEJlZm9yZVVwZGF0ZTtcbiAgICAgICAgdm9pZCAwICE9PSBzbmFwc2hvdCB8fFxuICAgICAgICAgIHByZXZQcm9wcy5oYXMoZmluaXNoZWRXb3JrLnR5cGUpIHx8XG4gICAgICAgICAgKHByZXZQcm9wcy5hZGQoZmluaXNoZWRXb3JrLnR5cGUpLFxuICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKGZpbmlzaGVkV29yaywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCIlcy5nZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSgpOiBBIHNuYXBzaG90IHZhbHVlIChvciBudWxsKSBtdXN0IGJlIHJldHVybmVkLiBZb3UgaGF2ZSByZXR1cm5lZCB1bmRlZmluZWQuXCIsXG4gICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KSk7XG4gICAgICAgIGN1cnJlbnQuX19yZWFjdEludGVybmFsU25hcHNob3RCZWZvcmVVcGRhdGUgPSBzbmFwc2hvdDtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzYWZlbHlDYWxsQ29tcG9uZW50V2lsbFVubW91bnQoXG4gICAgICBjdXJyZW50LFxuICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgIGluc3RhbmNlXG4gICAgKSB7XG4gICAgICBpbnN0YW5jZS5wcm9wcyA9IHJlc29sdmVDbGFzc0NvbXBvbmVudFByb3BzKFxuICAgICAgICBjdXJyZW50LnR5cGUsXG4gICAgICAgIGN1cnJlbnQubWVtb2l6ZWRQcm9wc1xuICAgICAgKTtcbiAgICAgIGluc3RhbmNlLnN0YXRlID0gY3VycmVudC5tZW1vaXplZFN0YXRlO1xuICAgICAgc2hvdWxkUHJvZmlsZShjdXJyZW50KVxuICAgICAgICA/IChzdGFydEVmZmVjdFRpbWVyKCksXG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgY2FsbENvbXBvbmVudFdpbGxVbm1vdW50SW5ERVYsXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgIGluc3RhbmNlXG4gICAgICAgICAgKSxcbiAgICAgICAgICByZWNvcmRFZmZlY3REdXJhdGlvbigpKVxuICAgICAgICA6IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIGNhbGxDb21wb25lbnRXaWxsVW5tb3VudEluREVWLFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgICBpbnN0YW5jZVxuICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdEF0dGFjaFJlZihmaW5pc2hlZFdvcmspIHtcbiAgICAgIHZhciByZWYgPSBmaW5pc2hlZFdvcmsucmVmO1xuICAgICAgaWYgKG51bGwgIT09IHJlZikge1xuICAgICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgdmFyIGluc3RhbmNlVG9Vc2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICAgIGluc3RhbmNlVG9Vc2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGluc3RhbmNlVG9Vc2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZWYpXG4gICAgICAgICAgaWYgKHNob3VsZFByb2ZpbGUoZmluaXNoZWRXb3JrKSlcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHN0YXJ0RWZmZWN0VGltZXIoKSxcbiAgICAgICAgICAgICAgICAoZmluaXNoZWRXb3JrLnJlZkNsZWFudXAgPSByZWYoaW5zdGFuY2VUb1VzZSkpO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgcmVjb3JkRWZmZWN0RHVyYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIGZpbmlzaGVkV29yay5yZWZDbGVhbnVwID0gcmVmKGluc3RhbmNlVG9Vc2UpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHJlZlxuICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFwiU3RyaW5nIHJlZnMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQuXCIpXG4gICAgICAgICAgICA6IHJlZi5oYXNPd25Qcm9wZXJ0eShcImN1cnJlbnRcIikgfHxcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlVuZXhwZWN0ZWQgcmVmIG9iamVjdCBwcm92aWRlZCBmb3IgJXMuIFVzZSBlaXRoZXIgYSByZWYtc2V0dGVyIGZ1bmN0aW9uIG9yIFJlYWN0LmNyZWF0ZVJlZigpLlwiLFxuICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKHJlZi5jdXJyZW50ID0gaW5zdGFuY2VUb1VzZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNhZmVseUF0dGFjaFJlZihjdXJyZW50LCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKSB7XG4gICAgICB0cnkge1xuICAgICAgICBydW5XaXRoRmliZXJJbkRFVihjdXJyZW50LCBjb21taXRBdHRhY2hSZWYsIGN1cnJlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcikge1xuICAgICAgdmFyIHJlZiA9IGN1cnJlbnQucmVmLFxuICAgICAgICByZWZDbGVhbnVwID0gY3VycmVudC5yZWZDbGVhbnVwO1xuICAgICAgaWYgKG51bGwgIT09IHJlZilcbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlZkNsZWFudXApXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChzaG91bGRQcm9maWxlKGN1cnJlbnQpKVxuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHN0YXJ0RWZmZWN0VGltZXIoKSwgcnVuV2l0aEZpYmVySW5ERVYoY3VycmVudCwgcmVmQ2xlYW51cCk7XG4gICAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgICAgcmVjb3JkRWZmZWN0RHVyYXRpb24oY3VycmVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgcnVuV2l0aEZpYmVySW5ERVYoY3VycmVudCwgcmVmQ2xlYW51cCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGVycm9yKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgKGN1cnJlbnQucmVmQ2xlYW51cCA9IG51bGwpLFxuICAgICAgICAgICAgICAoY3VycmVudCA9IGN1cnJlbnQuYWx0ZXJuYXRlKSxcbiAgICAgICAgICAgICAgbnVsbCAhPSBjdXJyZW50ICYmIChjdXJyZW50LnJlZkNsZWFudXAgPSBudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlZilcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHNob3VsZFByb2ZpbGUoY3VycmVudCkpXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgc3RhcnRFZmZlY3RUaW1lcigpLCBydW5XaXRoRmliZXJJbkRFVihjdXJyZW50LCByZWYsIG51bGwpO1xuICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIHJlY29yZEVmZmVjdER1cmF0aW9uKGN1cnJlbnQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHJ1bldpdGhGaWJlckluREVWKGN1cnJlbnQsIHJlZiwgbnVsbCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IkNykge1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IkNyk7XG4gICAgICAgICAgfVxuICAgICAgICBlbHNlIHJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0UHJvZmlsZXIoXG4gICAgICBmaW5pc2hlZFdvcmssXG4gICAgICBjdXJyZW50LFxuICAgICAgY29tbWl0U3RhcnRUaW1lLFxuICAgICAgZWZmZWN0RHVyYXRpb25cbiAgICApIHtcbiAgICAgIHZhciBfZmluaXNoZWRXb3JrJG1lbW9pemUgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyxcbiAgICAgICAgaWQgPSBfZmluaXNoZWRXb3JrJG1lbW9pemUuaWQsXG4gICAgICAgIG9uQ29tbWl0ID0gX2ZpbmlzaGVkV29yayRtZW1vaXplLm9uQ29tbWl0O1xuICAgICAgX2ZpbmlzaGVkV29yayRtZW1vaXplID0gX2ZpbmlzaGVkV29yayRtZW1vaXplLm9uUmVuZGVyO1xuICAgICAgY3VycmVudCA9IG51bGwgPT09IGN1cnJlbnQgPyBcIm1vdW50XCIgOiBcInVwZGF0ZVwiO1xuICAgICAgY3VycmVudFVwZGF0ZUlzTmVzdGVkICYmIChjdXJyZW50ID0gXCJuZXN0ZWQtdXBkYXRlXCIpO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgX2ZpbmlzaGVkV29yayRtZW1vaXplICYmXG4gICAgICAgIF9maW5pc2hlZFdvcmskbWVtb2l6ZShcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgIGZpbmlzaGVkV29yay5hY3R1YWxEdXJhdGlvbixcbiAgICAgICAgICBmaW5pc2hlZFdvcmsudHJlZUJhc2VEdXJhdGlvbixcbiAgICAgICAgICBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lLFxuICAgICAgICAgIGNvbW1pdFN0YXJ0VGltZVxuICAgICAgICApO1xuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2Ygb25Db21taXQgJiZcbiAgICAgICAgb25Db21taXQoaWQsIGN1cnJlbnQsIGVmZmVjdER1cmF0aW9uLCBjb21taXRTdGFydFRpbWUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRQcm9maWxlclBvc3RDb21taXRJbXBsKFxuICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgY3VycmVudCxcbiAgICAgIGNvbW1pdFN0YXJ0VGltZSxcbiAgICAgIHBhc3NpdmVFZmZlY3REdXJhdGlvblxuICAgICkge1xuICAgICAgdmFyIF9maW5pc2hlZFdvcmskbWVtb2l6ZTIgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcztcbiAgICAgIGZpbmlzaGVkV29yayA9IF9maW5pc2hlZFdvcmskbWVtb2l6ZTIuaWQ7XG4gICAgICBfZmluaXNoZWRXb3JrJG1lbW9pemUyID0gX2ZpbmlzaGVkV29yayRtZW1vaXplMi5vblBvc3RDb21taXQ7XG4gICAgICBjdXJyZW50ID0gbnVsbCA9PT0gY3VycmVudCA/IFwibW91bnRcIiA6IFwidXBkYXRlXCI7XG4gICAgICBjdXJyZW50VXBkYXRlSXNOZXN0ZWQgJiYgKGN1cnJlbnQgPSBcIm5lc3RlZC11cGRhdGVcIik7XG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBfZmluaXNoZWRXb3JrJG1lbW9pemUyICYmXG4gICAgICAgIF9maW5pc2hlZFdvcmskbWVtb2l6ZTIoXG4gICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgcGFzc2l2ZUVmZmVjdER1cmF0aW9uLFxuICAgICAgICAgIGNvbW1pdFN0YXJ0VGltZVxuICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRIb3N0TW91bnQoZmluaXNoZWRXb3JrKSB7XG4gICAgICB2YXIgdHlwZSA9IGZpbmlzaGVkV29yay50eXBlLFxuICAgICAgICBwcm9wcyA9IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzLFxuICAgICAgICBpbnN0YW5jZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICB0cnkge1xuICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgY29tbWl0TW91bnQsXG4gICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICBmaW5pc2hlZFdvcmtcbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRIb3N0VXBkYXRlKGZpbmlzaGVkV29yaywgbmV3UHJvcHMsIG9sZFByb3BzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgY29tbWl0VXBkYXRlLFxuICAgICAgICAgIGZpbmlzaGVkV29yay5zdGF0ZU5vZGUsXG4gICAgICAgICAgZmluaXNoZWRXb3JrLnR5cGUsXG4gICAgICAgICAgb2xkUHJvcHMsXG4gICAgICAgICAgbmV3UHJvcHMsXG4gICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaXNIb3N0UGFyZW50KGZpYmVyKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA1ID09PSBmaWJlci50YWcgfHxcbiAgICAgICAgMyA9PT0gZmliZXIudGFnIHx8XG4gICAgICAgIDI2ID09PSBmaWJlci50YWcgfHxcbiAgICAgICAgKDI3ID09PSBmaWJlci50YWcgJiYgaXNTaW5nbGV0b25TY29wZShmaWJlci50eXBlKSkgfHxcbiAgICAgICAgNCA9PT0gZmliZXIudGFnXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRIb3N0U2libGluZyhmaWJlcikge1xuICAgICAgYTogZm9yICg7Oykge1xuICAgICAgICBmb3IgKDsgbnVsbCA9PT0gZmliZXIuc2libGluZzsgKSB7XG4gICAgICAgICAgaWYgKG51bGwgPT09IGZpYmVyLnJldHVybiB8fCBpc0hvc3RQYXJlbnQoZmliZXIucmV0dXJuKSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgZmliZXIgPSBmaWJlci5yZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZmliZXIuc2libGluZy5yZXR1cm4gPSBmaWJlci5yZXR1cm47XG4gICAgICAgIGZvciAoXG4gICAgICAgICAgZmliZXIgPSBmaWJlci5zaWJsaW5nO1xuICAgICAgICAgIDUgIT09IGZpYmVyLnRhZyAmJiA2ICE9PSBmaWJlci50YWcgJiYgMTggIT09IGZpYmVyLnRhZztcblxuICAgICAgICApIHtcbiAgICAgICAgICBpZiAoMjcgPT09IGZpYmVyLnRhZyAmJiBpc1NpbmdsZXRvblNjb3BlKGZpYmVyLnR5cGUpKSBjb250aW51ZSBhO1xuICAgICAgICAgIGlmIChmaWJlci5mbGFncyAmIDIpIGNvbnRpbnVlIGE7XG4gICAgICAgICAgaWYgKG51bGwgPT09IGZpYmVyLmNoaWxkIHx8IDQgPT09IGZpYmVyLnRhZykgY29udGludWUgYTtcbiAgICAgICAgICBlbHNlIChmaWJlci5jaGlsZC5yZXR1cm4gPSBmaWJlciksIChmaWJlciA9IGZpYmVyLmNoaWxkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShmaWJlci5mbGFncyAmIDIpKSByZXR1cm4gZmliZXIuc3RhdGVOb2RlO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKG5vZGUsIGJlZm9yZSwgcGFyZW50KSB7XG4gICAgICB2YXIgdGFnID0gbm9kZS50YWc7XG4gICAgICBpZiAoNSA9PT0gdGFnIHx8IDYgPT09IHRhZylcbiAgICAgICAgKG5vZGUgPSBub2RlLnN0YXRlTm9kZSksXG4gICAgICAgICAgYmVmb3JlXG4gICAgICAgICAgICA/ICh3YXJuRm9yUmVhY3RDaGlsZHJlbkNvbmZsaWN0KHBhcmVudCksXG4gICAgICAgICAgICAgICg5ID09PSBwYXJlbnQubm9kZVR5cGVcbiAgICAgICAgICAgICAgICA/IHBhcmVudC5ib2R5XG4gICAgICAgICAgICAgICAgOiBcIkhUTUxcIiA9PT0gcGFyZW50Lm5vZGVOYW1lXG4gICAgICAgICAgICAgICAgICA/IHBhcmVudC5vd25lckRvY3VtZW50LmJvZHlcbiAgICAgICAgICAgICAgICAgIDogcGFyZW50XG4gICAgICAgICAgICAgICkuaW5zZXJ0QmVmb3JlKG5vZGUsIGJlZm9yZSkpXG4gICAgICAgICAgICA6ICh3YXJuRm9yUmVhY3RDaGlsZHJlbkNvbmZsaWN0KHBhcmVudCksXG4gICAgICAgICAgICAgIChiZWZvcmUgPVxuICAgICAgICAgICAgICAgIDkgPT09IHBhcmVudC5ub2RlVHlwZVxuICAgICAgICAgICAgICAgICAgPyBwYXJlbnQuYm9keVxuICAgICAgICAgICAgICAgICAgOiBcIkhUTUxcIiA9PT0gcGFyZW50Lm5vZGVOYW1lXG4gICAgICAgICAgICAgICAgICAgID8gcGFyZW50Lm93bmVyRG9jdW1lbnQuYm9keVxuICAgICAgICAgICAgICAgICAgICA6IHBhcmVudCksXG4gICAgICAgICAgICAgIGJlZm9yZS5hcHBlbmRDaGlsZChub2RlKSxcbiAgICAgICAgICAgICAgKHBhcmVudCA9IHBhcmVudC5fcmVhY3RSb290Q29udGFpbmVyKSxcbiAgICAgICAgICAgICAgKG51bGwgIT09IHBhcmVudCAmJiB2b2lkIDAgIT09IHBhcmVudCkgfHxcbiAgICAgICAgICAgICAgICBudWxsICE9PSBiZWZvcmUub25jbGljayB8fFxuICAgICAgICAgICAgICAgIChiZWZvcmUub25jbGljayA9IG5vb3AkMSkpO1xuICAgICAgZWxzZSBpZiAoXG4gICAgICAgIDQgIT09IHRhZyAmJlxuICAgICAgICAoMjcgPT09IHRhZyAmJlxuICAgICAgICAgIGlzU2luZ2xldG9uU2NvcGUobm9kZS50eXBlKSAmJlxuICAgICAgICAgICgocGFyZW50ID0gbm9kZS5zdGF0ZU5vZGUpLCAoYmVmb3JlID0gbnVsbCkpLFxuICAgICAgICAobm9kZSA9IG5vZGUuY2hpbGQpLFxuICAgICAgICBudWxsICE9PSBub2RlKVxuICAgICAgKVxuICAgICAgICBmb3IgKFxuICAgICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZUludG9Db250YWluZXIobm9kZSwgYmVmb3JlLCBwYXJlbnQpLFxuICAgICAgICAgICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgICAgICAgICBudWxsICE9PSBub2RlO1xuXG4gICAgICAgIClcbiAgICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGVJbnRvQ29udGFpbmVyKG5vZGUsIGJlZm9yZSwgcGFyZW50KSxcbiAgICAgICAgICAgIChub2RlID0gbm9kZS5zaWJsaW5nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlKG5vZGUsIGJlZm9yZSwgcGFyZW50KSB7XG4gICAgICB2YXIgdGFnID0gbm9kZS50YWc7XG4gICAgICBpZiAoNSA9PT0gdGFnIHx8IDYgPT09IHRhZylcbiAgICAgICAgKG5vZGUgPSBub2RlLnN0YXRlTm9kZSksXG4gICAgICAgICAgYmVmb3JlID8gcGFyZW50Lmluc2VydEJlZm9yZShub2RlLCBiZWZvcmUpIDogcGFyZW50LmFwcGVuZENoaWxkKG5vZGUpO1xuICAgICAgZWxzZSBpZiAoXG4gICAgICAgIDQgIT09IHRhZyAmJlxuICAgICAgICAoMjcgPT09IHRhZyAmJiBpc1NpbmdsZXRvblNjb3BlKG5vZGUudHlwZSkgJiYgKHBhcmVudCA9IG5vZGUuc3RhdGVOb2RlKSxcbiAgICAgICAgKG5vZGUgPSBub2RlLmNoaWxkKSxcbiAgICAgICAgbnVsbCAhPT0gbm9kZSlcbiAgICAgIClcbiAgICAgICAgZm9yIChcbiAgICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGUobm9kZSwgYmVmb3JlLCBwYXJlbnQpLFxuICAgICAgICAgICAgbm9kZSA9IG5vZGUuc2libGluZztcbiAgICAgICAgICBudWxsICE9PSBub2RlO1xuXG4gICAgICAgIClcbiAgICAgICAgICBpbnNlcnRPckFwcGVuZFBsYWNlbWVudE5vZGUobm9kZSwgYmVmb3JlLCBwYXJlbnQpLFxuICAgICAgICAgICAgKG5vZGUgPSBub2RlLnNpYmxpbmcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRQbGFjZW1lbnQoZmluaXNoZWRXb3JrKSB7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgaG9zdFBhcmVudEZpYmVyLCBwYXJlbnRGaWJlciA9IGZpbmlzaGVkV29yay5yZXR1cm47XG4gICAgICAgIG51bGwgIT09IHBhcmVudEZpYmVyO1xuXG4gICAgICApIHtcbiAgICAgICAgaWYgKGlzSG9zdFBhcmVudChwYXJlbnRGaWJlcikpIHtcbiAgICAgICAgICBob3N0UGFyZW50RmliZXIgPSBwYXJlbnRGaWJlcjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChudWxsID09IGhvc3RQYXJlbnRGaWJlcilcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgXCJFeHBlY3RlZCB0byBmaW5kIGEgaG9zdCBwYXJlbnQuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgKTtcbiAgICAgIHN3aXRjaCAoaG9zdFBhcmVudEZpYmVyLnRhZykge1xuICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIGhvc3RQYXJlbnRGaWJlciA9IGhvc3RQYXJlbnRGaWJlci5zdGF0ZU5vZGU7XG4gICAgICAgICAgcGFyZW50RmliZXIgPSBnZXRIb3N0U2libGluZyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZShcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIHBhcmVudEZpYmVyLFxuICAgICAgICAgICAgaG9zdFBhcmVudEZpYmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHBhcmVudEZpYmVyID0gaG9zdFBhcmVudEZpYmVyLnN0YXRlTm9kZTtcbiAgICAgICAgICBob3N0UGFyZW50RmliZXIuZmxhZ3MgJiAzMiAmJlxuICAgICAgICAgICAgKHJlc2V0VGV4dENvbnRlbnQocGFyZW50RmliZXIpLCAoaG9zdFBhcmVudEZpYmVyLmZsYWdzICY9IC0zMykpO1xuICAgICAgICAgIGhvc3RQYXJlbnRGaWJlciA9IGdldEhvc3RTaWJsaW5nKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgaW5zZXJ0T3JBcHBlbmRQbGFjZW1lbnROb2RlKFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgaG9zdFBhcmVudEZpYmVyLFxuICAgICAgICAgICAgcGFyZW50RmliZXJcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBob3N0UGFyZW50RmliZXIgPSBob3N0UGFyZW50RmliZXIuc3RhdGVOb2RlLmNvbnRhaW5lckluZm87XG4gICAgICAgICAgcGFyZW50RmliZXIgPSBnZXRIb3N0U2libGluZyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGluc2VydE9yQXBwZW5kUGxhY2VtZW50Tm9kZUludG9Db250YWluZXIoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBwYXJlbnRGaWJlcixcbiAgICAgICAgICAgIGhvc3RQYXJlbnRGaWJlclxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIkludmFsaWQgaG9zdCBwYXJlbnQgZmliZXIuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRIb3N0U2luZ2xldG9uQWNxdWlzaXRpb24oZmluaXNoZWRXb3JrKSB7XG4gICAgICB2YXIgc2luZ2xldG9uID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZSxcbiAgICAgICAgcHJvcHMgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcztcbiAgICAgIHRyeSB7XG4gICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICBhY3F1aXJlU2luZ2xldG9uSW5zdGFuY2UsXG4gICAgICAgICAgZmluaXNoZWRXb3JrLnR5cGUsXG4gICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgc2luZ2xldG9uLFxuICAgICAgICAgIGZpbmlzaGVkV29ya1xuICAgICAgICApO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzSHlkcmF0aW5nUGFyZW50KGN1cnJlbnQsIGZpbmlzaGVkV29yaykge1xuICAgICAgcmV0dXJuIDMxID09PSBmaW5pc2hlZFdvcmsudGFnXG4gICAgICAgID8gKChmaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSksXG4gICAgICAgICAgbnVsbCAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlICYmIG51bGwgPT09IGZpbmlzaGVkV29yaylcbiAgICAgICAgOiAxMyA9PT0gZmluaXNoZWRXb3JrLnRhZ1xuICAgICAgICAgID8gKChjdXJyZW50ID0gY3VycmVudC5tZW1vaXplZFN0YXRlKSxcbiAgICAgICAgICAgIChmaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSksXG4gICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQuZGVoeWRyYXRlZCAmJlxuICAgICAgICAgICAgICAobnVsbCA9PT0gZmluaXNoZWRXb3JrIHx8IG51bGwgPT09IGZpbmlzaGVkV29yay5kZWh5ZHJhdGVkKSlcbiAgICAgICAgICA6IDMgPT09IGZpbmlzaGVkV29yay50YWdcbiAgICAgICAgICAgID8gY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZCAmJlxuICAgICAgICAgICAgICAwID09PSAoZmluaXNoZWRXb3JrLmZsYWdzICYgMjU2KVxuICAgICAgICAgICAgOiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0QmVmb3JlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpcnN0Q2hpbGQpIHtcbiAgICAgIHJvb3QgPSByb290LmNvbnRhaW5lckluZm87XG4gICAgICBldmVudHNFbmFibGVkID0gX2VuYWJsZWQ7XG4gICAgICByb290ID0gZ2V0QWN0aXZlRWxlbWVudERlZXAocm9vdCk7XG4gICAgICBpZiAoaGFzU2VsZWN0aW9uQ2FwYWJpbGl0aWVzKHJvb3QpKSB7XG4gICAgICAgIGlmIChcInNlbGVjdGlvblN0YXJ0XCIgaW4gcm9vdClcbiAgICAgICAgICB2YXIgSlNDb21waWxlcl90ZW1wID0ge1xuICAgICAgICAgICAgc3RhcnQ6IHJvb3Quc2VsZWN0aW9uU3RhcnQsXG4gICAgICAgICAgICBlbmQ6IHJvb3Quc2VsZWN0aW9uRW5kXG4gICAgICAgICAgfTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcCA9XG4gICAgICAgICAgICAgICgoSlNDb21waWxlcl90ZW1wID0gcm9vdC5vd25lckRvY3VtZW50KSAmJlxuICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcC5kZWZhdWx0VmlldykgfHxcbiAgICAgICAgICAgICAgd2luZG93O1xuICAgICAgICAgICAgdmFyIHNlbGVjdGlvbiA9XG4gICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcC5nZXRTZWxlY3Rpb24gJiYgSlNDb21waWxlcl90ZW1wLmdldFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGlvbiAmJiAwICE9PSBzZWxlY3Rpb24ucmFuZ2VDb3VudCkge1xuICAgICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPSBzZWxlY3Rpb24uYW5jaG9yTm9kZTtcbiAgICAgICAgICAgICAgdmFyIGFuY2hvck9mZnNldCA9IHNlbGVjdGlvbi5hbmNob3JPZmZzZXQsXG4gICAgICAgICAgICAgICAgZm9jdXNOb2RlID0gc2VsZWN0aW9uLmZvY3VzTm9kZTtcbiAgICAgICAgICAgICAgc2VsZWN0aW9uID0gc2VsZWN0aW9uLmZvY3VzT2Zmc2V0O1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcC5ub2RlVHlwZSwgZm9jdXNOb2RlLm5vZGVUeXBlO1xuICAgICAgICAgICAgICB9IGNhdGNoIChlJDIpIHtcbiAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdmFyIGxlbmd0aCA9IDAsXG4gICAgICAgICAgICAgICAgc3RhcnQgPSAtMSxcbiAgICAgICAgICAgICAgICBlbmQgPSAtMSxcbiAgICAgICAgICAgICAgICBpbmRleFdpdGhpbkFuY2hvciA9IDAsXG4gICAgICAgICAgICAgICAgaW5kZXhXaXRoaW5Gb2N1cyA9IDAsXG4gICAgICAgICAgICAgICAgbm9kZSA9IHJvb3QsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IG51bGw7XG4gICAgICAgICAgICAgIGI6IGZvciAoOzspIHtcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBuZXh0OyA7ICkge1xuICAgICAgICAgICAgICAgICAgbm9kZSAhPT0gSlNDb21waWxlcl90ZW1wIHx8XG4gICAgICAgICAgICAgICAgICAgICgwICE9PSBhbmNob3JPZmZzZXQgJiYgMyAhPT0gbm9kZS5ub2RlVHlwZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgKHN0YXJ0ID0gbGVuZ3RoICsgYW5jaG9yT2Zmc2V0KTtcbiAgICAgICAgICAgICAgICAgIG5vZGUgIT09IGZvY3VzTm9kZSB8fFxuICAgICAgICAgICAgICAgICAgICAoMCAhPT0gc2VsZWN0aW9uICYmIDMgIT09IG5vZGUubm9kZVR5cGUpIHx8XG4gICAgICAgICAgICAgICAgICAgIChlbmQgPSBsZW5ndGggKyBzZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgMyA9PT0gbm9kZS5ub2RlVHlwZSAmJiAobGVuZ3RoICs9IG5vZGUubm9kZVZhbHVlLmxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gKG5leHQgPSBub2RlLmZpcnN0Q2hpbGQpKSBicmVhaztcbiAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSBub2RlO1xuICAgICAgICAgICAgICAgICAgbm9kZSA9IG5leHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAoOzspIHtcbiAgICAgICAgICAgICAgICAgIGlmIChub2RlID09PSByb290KSBicmVhayBiO1xuICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9PT0gSlNDb21waWxlcl90ZW1wICYmXG4gICAgICAgICAgICAgICAgICAgICsraW5kZXhXaXRoaW5BbmNob3IgPT09IGFuY2hvck9mZnNldCAmJlxuICAgICAgICAgICAgICAgICAgICAoc3RhcnQgPSBsZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9PT0gZm9jdXNOb2RlICYmXG4gICAgICAgICAgICAgICAgICAgICsraW5kZXhXaXRoaW5Gb2N1cyA9PT0gc2VsZWN0aW9uICYmXG4gICAgICAgICAgICAgICAgICAgIChlbmQgPSBsZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IChuZXh0ID0gbm9kZS5uZXh0U2libGluZykpIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgbm9kZSA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0gbm9kZS5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBub2RlID0gbmV4dDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPVxuICAgICAgICAgICAgICAgIC0xID09PSBzdGFydCB8fCAtMSA9PT0gZW5kID8gbnVsbCA6IHsgc3RhcnQ6IHN0YXJ0LCBlbmQ6IGVuZCB9O1xuICAgICAgICAgICAgfSBlbHNlIEpTQ29tcGlsZXJfdGVtcCA9IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPSBKU0NvbXBpbGVyX3RlbXAgfHwgeyBzdGFydDogMCwgZW5kOiAwIH07XG4gICAgICB9IGVsc2UgSlNDb21waWxlcl90ZW1wID0gbnVsbDtcbiAgICAgIHNlbGVjdGlvbkluZm9ybWF0aW9uID0ge1xuICAgICAgICBmb2N1c2VkRWxlbTogcm9vdCxcbiAgICAgICAgc2VsZWN0aW9uUmFuZ2U6IEpTQ29tcGlsZXJfdGVtcFxuICAgICAgfTtcbiAgICAgIF9lbmFibGVkID0gITE7XG4gICAgICBmb3IgKG5leHRFZmZlY3QgPSBmaXJzdENoaWxkOyBudWxsICE9PSBuZXh0RWZmZWN0OyApXG4gICAgICAgIGlmIChcbiAgICAgICAgICAoKGZpcnN0Q2hpbGQgPSBuZXh0RWZmZWN0KSxcbiAgICAgICAgICAocm9vdCA9IGZpcnN0Q2hpbGQuY2hpbGQpLFxuICAgICAgICAgIDAgIT09IChmaXJzdENoaWxkLnN1YnRyZWVGbGFncyAmIDEwMjgpICYmIG51bGwgIT09IHJvb3QpXG4gICAgICAgIClcbiAgICAgICAgICAocm9vdC5yZXR1cm4gPSBmaXJzdENoaWxkKSwgKG5leHRFZmZlY3QgPSByb290KTtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGZvciAoOyBudWxsICE9PSBuZXh0RWZmZWN0OyApIHtcbiAgICAgICAgICAgIHJvb3QgPSBmaXJzdENoaWxkID0gbmV4dEVmZmVjdDtcbiAgICAgICAgICAgIEpTQ29tcGlsZXJfdGVtcCA9IHJvb3QuYWx0ZXJuYXRlO1xuICAgICAgICAgICAgYW5jaG9yT2Zmc2V0ID0gcm9vdC5mbGFncztcbiAgICAgICAgICAgIHN3aXRjaCAocm9vdC50YWcpIHtcbiAgICAgICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIDAgIT09IChhbmNob3JPZmZzZXQgJiA0KSAmJlxuICAgICAgICAgICAgICAgICAgKChyb290ID0gcm9vdC51cGRhdGVRdWV1ZSksXG4gICAgICAgICAgICAgICAgICAocm9vdCA9IG51bGwgIT09IHJvb3QgPyByb290LmV2ZW50cyA6IG51bGwpLFxuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gcm9vdClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPSAwO1xuICAgICAgICAgICAgICAgICAgICBKU0NvbXBpbGVyX3RlbXAgPCByb290Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgSlNDb21waWxlcl90ZW1wKytcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKGFuY2hvck9mZnNldCA9IHJvb3RbSlNDb21waWxlcl90ZW1wXSksXG4gICAgICAgICAgICAgICAgICAgICAgKGFuY2hvck9mZnNldC5yZWYuaW1wbCA9IGFuY2hvck9mZnNldC5uZXh0SW1wbCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgMTE6XG4gICAgICAgICAgICAgIGNhc2UgMTU6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgICAwICE9PSAoYW5jaG9yT2Zmc2V0ICYgMTAyNCkgJiZcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IEpTQ29tcGlsZXJfdGVtcCAmJlxuICAgICAgICAgICAgICAgICAgY29tbWl0Q2xhc3NTbmFwc2hvdChyb290LCBKU0NvbXBpbGVyX3RlbXApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgICAgaWYgKDAgIT09IChhbmNob3JPZmZzZXQgJiAxMDI0KSlcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgKChyb290ID0gcm9vdC5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyksXG4gICAgICAgICAgICAgICAgICAgIChKU0NvbXBpbGVyX3RlbXAgPSByb290Lm5vZGVUeXBlKSxcbiAgICAgICAgICAgICAgICAgICAgOSA9PT0gSlNDb21waWxlcl90ZW1wKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBjbGVhckNvbnRhaW5lclNwYXJpbmdseShyb290KTtcbiAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKDEgPT09IEpTQ29tcGlsZXJfdGVtcClcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChyb290Lm5vZGVOYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkhFQURcIjpcbiAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiSFRNTFwiOlxuICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJCT0RZXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhckNvbnRhaW5lclNwYXJpbmdseShyb290KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByb290LnRleHRDb250ZW50ID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgIGNhc2UgMjY6XG4gICAgICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICAgIGNhc2UgNjpcbiAgICAgICAgICAgICAgY2FzZSA0OlxuICAgICAgICAgICAgICBjYXNlIDE3OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGlmICgwICE9PSAoYW5jaG9yT2Zmc2V0ICYgMTAyNCkpXG4gICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJUaGlzIHVuaXQgb2Ygd29yayB0YWcgc2hvdWxkIG5vdCBoYXZlIHNpZGUtZWZmZWN0cy4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJvb3QgPSBmaXJzdENoaWxkLnNpYmxpbmc7XG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gcm9vdCkge1xuICAgICAgICAgICAgICByb290LnJldHVybiA9IGZpcnN0Q2hpbGQucmV0dXJuO1xuICAgICAgICAgICAgICBuZXh0RWZmZWN0ID0gcm9vdDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0RWZmZWN0ID0gZmlyc3RDaGlsZC5yZXR1cm47XG4gICAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRMYXlvdXRFZmZlY3RPbkZpYmVyKGZpbmlzaGVkUm9vdCwgY3VycmVudCwgZmluaXNoZWRXb3JrKSB7XG4gICAgICB2YXIgcHJldkVmZmVjdFN0YXJ0ID0gcHVzaENvbXBvbmVudEVmZmVjdFN0YXJ0KCksXG4gICAgICAgIHByZXZFZmZlY3REdXJhdGlvbiA9IHB1c2hDb21wb25lbnRFZmZlY3REdXJhdGlvbigpLFxuICAgICAgICBwcmV2RWZmZWN0RXJyb3JzID0gcHVzaENvbXBvbmVudEVmZmVjdEVycm9ycygpLFxuICAgICAgICBwcmV2RWZmZWN0RGlkU3Bhd25VcGRhdGUgPSBwdXNoQ29tcG9uZW50RWZmZWN0RGlkU3Bhd25VcGRhdGUoKSxcbiAgICAgICAgZmxhZ3MgPSBmaW5pc2hlZFdvcmsuZmxhZ3M7XG4gICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDExOlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBmbGFncyAmIDQgJiZcbiAgICAgICAgICAgIGNvbW1pdEhvb2tMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yaywgTGF5b3V0IHwgSGFzRWZmZWN0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBpZiAoZmxhZ3MgJiA0KVxuICAgICAgICAgICAgaWYgKCgoZmluaXNoZWRSb290ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZSksIG51bGwgPT09IGN1cnJlbnQpKVxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsudHlwZS5kZWZhdWx0UHJvcHMgfHxcbiAgICAgICAgICAgICAgICBcInJlZlwiIGluIGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzIHx8XG4gICAgICAgICAgICAgICAgZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyB8fFxuICAgICAgICAgICAgICAgIChmaW5pc2hlZFJvb3QucHJvcHMgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzICYmXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkICVzIHByb3BzIHRvIG1hdGNoIG1lbW9pemVkIHByb3BzIGJlZm9yZSBjb21wb25lbnREaWRNb3VudC4gVGhpcyBtaWdodCBlaXRoZXIgYmUgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBSZWFjdCwgb3IgYmVjYXVzZSBhIGNvbXBvbmVudCByZWFzc2lnbnMgaXRzIG93biBgdGhpcy5wcm9wc2AuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiLFxuICAgICAgICAgICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpbmlzaGVkV29yaykgfHwgXCJpbnN0YW5jZVwiXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5zdGF0ZSAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiRXhwZWN0ZWQgJXMgc3RhdGUgdG8gbWF0Y2ggbWVtb2l6ZWQgc3RhdGUgYmVmb3JlIGNvbXBvbmVudERpZE1vdW50LiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIsXG4gICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCBcImluc3RhbmNlXCJcbiAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgIHNob3VsZFByb2ZpbGUoZmluaXNoZWRXb3JrKVxuICAgICAgICAgICAgICAgICAgPyAoc3RhcnRFZmZlY3RUaW1lcigpLFxuICAgICAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgICAgICAgY2FsbENvbXBvbmVudERpZE1vdW50SW5ERVYsXG4gICAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICByZWNvcmRFZmZlY3REdXJhdGlvbigpKVxuICAgICAgICAgICAgICAgICAgOiBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgICAgICAgY2FsbENvbXBvbmVudERpZE1vdW50SW5ERVYsXG4gICAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIHZhciBwcmV2UHJvcHMgPSByZXNvbHZlQ2xhc3NDb21wb25lbnRQcm9wcyhcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsudHlwZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50Lm1lbW9pemVkUHJvcHNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnR5cGUuZGVmYXVsdFByb3BzIHx8XG4gICAgICAgICAgICAgICAgXCJyZWZcIiBpbiBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyB8fFxuICAgICAgICAgICAgICAgIGRpZFdhcm5BYm91dFJlYXNzaWduaW5nUHJvcHMgfHxcbiAgICAgICAgICAgICAgICAoZmluaXNoZWRSb290LnByb3BzICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyAmJlxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCAlcyBwcm9wcyB0byBtYXRjaCBtZW1vaXplZCBwcm9wcyBiZWZvcmUgY29tcG9uZW50RGlkVXBkYXRlLiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnByb3BzYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIsXG4gICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCBcImluc3RhbmNlXCJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgZmluaXNoZWRSb290LnN0YXRlICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJFeHBlY3RlZCAlcyBzdGF0ZSB0byBtYXRjaCBtZW1vaXplZCBzdGF0ZSBiZWZvcmUgY29tcG9uZW50RGlkVXBkYXRlLiBUaGlzIG1pZ2h0IGVpdGhlciBiZSBiZWNhdXNlIG9mIGEgYnVnIGluIFJlYWN0LCBvciBiZWNhdXNlIGEgY29tcG9uZW50IHJlYXNzaWducyBpdHMgb3duIGB0aGlzLnN0YXRlYC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCIsXG4gICAgICAgICAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmluaXNoZWRXb3JrKSB8fCBcImluc3RhbmNlXCJcbiAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICBzaG91bGRQcm9maWxlKGZpbmlzaGVkV29yaylcbiAgICAgICAgICAgICAgICA/IChzdGFydEVmZmVjdFRpbWVyKCksXG4gICAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgICBjYWxsQ29tcG9uZW50RGlkVXBkYXRlSW5ERVYsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICAgICAgICBwcmV2UHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZVxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHJlY29yZEVmZmVjdER1cmF0aW9uKCkpXG4gICAgICAgICAgICAgICAgOiBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgICBjYWxsQ29tcG9uZW50RGlkVXBkYXRlSW5ERVYsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICAgICAgICBwcmV2UHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdC5fX3JlYWN0SW50ZXJuYWxTbmFwc2hvdEJlZm9yZVVwZGF0ZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBmbGFncyAmIDY0ICYmIGNvbW1pdENsYXNzQ2FsbGJhY2tzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA1MTIgJiYgc2FmZWx5QXR0YWNoUmVmKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBjdXJyZW50ID0gcHVzaE5lc3RlZEVmZmVjdER1cmF0aW9ucygpO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBmbGFncyAmIDY0ICYmXG4gICAgICAgICAgICAoKGZsYWdzID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlKSwgbnVsbCAhPT0gZmxhZ3MpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBwcmV2UHJvcHMgPSBudWxsO1xuICAgICAgICAgICAgaWYgKG51bGwgIT09IGZpbmlzaGVkV29yay5jaGlsZClcbiAgICAgICAgICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsuY2hpbGQudGFnKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgICAgICAgICBwcmV2UHJvcHMgPSBmaW5pc2hlZFdvcmsuY2hpbGQuc3RhdGVOb2RlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICAgICAgcHJldlByb3BzID0gZmluaXNoZWRXb3JrLmNoaWxkLnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgIGNvbW1pdENhbGxiYWNrcyxcbiAgICAgICAgICAgICAgICBmbGFncyxcbiAgICAgICAgICAgICAgICBwcmV2UHJvcHNcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBmaW5pc2hlZFJvb3QuZWZmZWN0RHVyYXRpb24gKz0gcG9wTmVzdGVkRWZmZWN0RHVyYXRpb25zKGN1cnJlbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgIGZsYWdzICYgNCAmJlxuICAgICAgICAgICAgY29tbWl0SG9zdFNpbmdsZXRvbkFjcXVpc2l0aW9uKGZpbmlzaGVkV29yayk7XG4gICAgICAgIGNhc2UgMjY6XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpXG4gICAgICAgICAgICBpZiAoZmxhZ3MgJiA0KSBjb21taXRIb3N0TW91bnQoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICAgIGVsc2UgaWYgKGZsYWdzICYgNjQpIHtcbiAgICAgICAgICAgICAgZmluaXNoZWRSb290ID0gZmluaXNoZWRXb3JrLnR5cGU7XG4gICAgICAgICAgICAgIGN1cnJlbnQgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcztcbiAgICAgICAgICAgICAgcHJldlByb3BzID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgIGNvbW1pdEh5ZHJhdGVkSW5zdGFuY2UsXG4gICAgICAgICAgICAgICAgICBwcmV2UHJvcHMsXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yay5yZXR1cm4sXG4gICAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBmbGFncyAmIDUxMiAmJiBzYWZlbHlBdHRhY2hSZWYoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICBpZiAoZmxhZ3MgJiA0KSB7XG4gICAgICAgICAgICBmbGFncyA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTtcbiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QuZWZmZWN0RHVyYXRpb24gKz0gYnViYmxlTmVzdGVkRWZmZWN0RHVyYXRpb25zKGZsYWdzKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBjb21taXRQcm9maWxlcixcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICBjb21taXRTdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgZmluaXNoZWRSb290LmVmZmVjdER1cmF0aW9uXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgcmVjdXJzaXZlbHlUcmF2ZXJzZUxheW91dEVmZmVjdHMoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMxOlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBmbGFncyAmIDQgJiZcbiAgICAgICAgICAgIGNvbW1pdEFjdGl2aXR5SHlkcmF0aW9uQ2FsbGJhY2tzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA0ICYmXG4gICAgICAgICAgICBjb21taXRTdXNwZW5zZUh5ZHJhdGlvbkNhbGxiYWNrcyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA2NCAmJlxuICAgICAgICAgICAgKChmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSksXG4gICAgICAgICAgICBudWxsICE9PSBmaW5pc2hlZFJvb3QgJiZcbiAgICAgICAgICAgICAgKChmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFJvb3QuZGVoeWRyYXRlZCksXG4gICAgICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkUm9vdCAmJlxuICAgICAgICAgICAgICAgICgoZmxhZ3MgPSByZXRyeURlaHlkcmF0ZWRTdXNwZW5zZUJvdW5kYXJ5LmJpbmQoXG4gICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgcmVnaXN0ZXJTdXNwZW5zZUluc3RhbmNlUmV0cnkoZmluaXNoZWRSb290LCBmbGFncykpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgZmxhZ3MgPVxuICAgICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgfHwgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuO1xuICAgICAgICAgIGlmICghZmxhZ3MpIHtcbiAgICAgICAgICAgIGN1cnJlbnQgPVxuICAgICAgICAgICAgICAobnVsbCAhPT0gY3VycmVudCAmJiBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUpIHx8XG4gICAgICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW47XG4gICAgICAgICAgICBwcmV2UHJvcHMgPSBvZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW47XG4gICAgICAgICAgICB2YXIgcHJldk9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuO1xuICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuID0gZmxhZ3M7XG4gICAgICAgICAgICAob2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IGN1cnJlbnQpICYmXG4gICAgICAgICAgICAhcHJldk9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW5cbiAgICAgICAgICAgICAgPyAocmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cyhcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgIDAgIT09IChmaW5pc2hlZFdvcmsuc3VidHJlZUZsYWdzICYgODc3MilcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAgICAgICAwIDw9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJlxuICAgICAgICAgICAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmXG4gICAgICAgICAgICAgICAgICAwLjA1IDwgY29tcG9uZW50RWZmZWN0RW5kVGltZSAtIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJlxuICAgICAgICAgICAgICAgICAgbG9nQ29tcG9uZW50UmVhcHBlYXJlZChcbiAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVuZFRpbWVcbiAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgIDogcmVjdXJzaXZlbHlUcmF2ZXJzZUxheW91dEVmZmVjdHMoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuID0gcHJldlByb3BzO1xuICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IHByZXZPZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMDpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICB9XG4gICAgICAoZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJlxuICAgICAgICAwIDw9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJlxuICAgICAgICAwIDw9IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgJiZcbiAgICAgICAgKChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiZcbiAgICAgICAgICBsb2dDb21wb25lbnRFZmZlY3QoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lLFxuICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RHVyYXRpb24sXG4gICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnNcbiAgICAgICAgICApLFxuICAgICAgICBudWxsID09PSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlICYmXG4gICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLnJldHVybiAmJlxuICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5yZXR1cm4uYWx0ZXJuYXRlICYmXG4gICAgICAgICAgMC4wNSA8IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgLSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiZcbiAgICAgICAgICAoaXNIeWRyYXRpbmdQYXJlbnQoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmsucmV0dXJuLmFsdGVybmF0ZSxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yay5yZXR1cm5cbiAgICAgICAgICApIHx8XG4gICAgICAgICAgICBsb2dDb21wb25lbnRUcmlnZ2VyKFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSxcbiAgICAgICAgICAgICAgXCJNb3VudFwiXG4gICAgICAgICAgICApKSk7XG4gICAgICBwb3BDb21wb25lbnRFZmZlY3RTdGFydChwcmV2RWZmZWN0U3RhcnQpO1xuICAgICAgcG9wQ29tcG9uZW50RWZmZWN0RHVyYXRpb24ocHJldkVmZmVjdER1cmF0aW9uKTtcbiAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IHByZXZFZmZlY3RFcnJvcnM7XG4gICAgICBjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlID0gcHJldkVmZmVjdERpZFNwYXduVXBkYXRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cyhmaWJlcikge1xuICAgICAgdmFyIGFsdGVybmF0ZSA9IGZpYmVyLmFsdGVybmF0ZTtcbiAgICAgIG51bGwgIT09IGFsdGVybmF0ZSAmJlxuICAgICAgICAoKGZpYmVyLmFsdGVybmF0ZSA9IG51bGwpLCBkZXRhY2hGaWJlckFmdGVyRWZmZWN0cyhhbHRlcm5hdGUpKTtcbiAgICAgIGZpYmVyLmNoaWxkID0gbnVsbDtcbiAgICAgIGZpYmVyLmRlbGV0aW9ucyA9IG51bGw7XG4gICAgICBmaWJlci5zaWJsaW5nID0gbnVsbDtcbiAgICAgIDUgPT09IGZpYmVyLnRhZyAmJlxuICAgICAgICAoKGFsdGVybmF0ZSA9IGZpYmVyLnN0YXRlTm9kZSksXG4gICAgICAgIG51bGwgIT09IGFsdGVybmF0ZSAmJiBkZXRhY2hEZWxldGVkSW5zdGFuY2UoYWx0ZXJuYXRlKSk7XG4gICAgICBmaWJlci5zdGF0ZU5vZGUgPSBudWxsO1xuICAgICAgZmliZXIuX2RlYnVnT3duZXIgPSBudWxsO1xuICAgICAgZmliZXIucmV0dXJuID0gbnVsbDtcbiAgICAgIGZpYmVyLmRlcGVuZGVuY2llcyA9IG51bGw7XG4gICAgICBmaWJlci5tZW1vaXplZFByb3BzID0gbnVsbDtcbiAgICAgIGZpYmVyLm1lbW9pemVkU3RhdGUgPSBudWxsO1xuICAgICAgZmliZXIucGVuZGluZ1Byb3BzID0gbnVsbDtcbiAgICAgIGZpYmVyLnN0YXRlTm9kZSA9IG51bGw7XG4gICAgICBmaWJlci51cGRhdGVRdWV1ZSA9IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoXG4gICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgcGFyZW50XG4gICAgKSB7XG4gICAgICBmb3IgKHBhcmVudCA9IHBhcmVudC5jaGlsZDsgbnVsbCAhPT0gcGFyZW50OyApXG4gICAgICAgIGNvbW1pdERlbGV0aW9uRWZmZWN0c09uRmliZXIoXG4gICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgcGFyZW50XG4gICAgICAgICksXG4gICAgICAgICAgKHBhcmVudCA9IHBhcmVudC5zaWJsaW5nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0RGVsZXRpb25FZmZlY3RzT25GaWJlcihcbiAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICBkZWxldGVkRmliZXJcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgaW5qZWN0ZWRIb29rICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyVW5tb3VudFxuICAgICAgKVxuICAgICAgICB0cnkge1xuICAgICAgICAgIGluamVjdGVkSG9vay5vbkNvbW1pdEZpYmVyVW5tb3VudChyZW5kZXJlcklELCBkZWxldGVkRmliZXIpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBoYXNMb2dnZWRFcnJvciB8fFxuICAgICAgICAgICAgKChoYXNMb2dnZWRFcnJvciA9ICEwKSxcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3QgaW5zdHJ1bWVudGF0aW9uIGVuY291bnRlcmVkIGFuIGVycm9yOiAlb1wiLFxuICAgICAgICAgICAgICBlcnJcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICB2YXIgcHJldkVmZmVjdFN0YXJ0ID0gcHVzaENvbXBvbmVudEVmZmVjdFN0YXJ0KCksXG4gICAgICAgIHByZXZFZmZlY3REdXJhdGlvbiA9IHB1c2hDb21wb25lbnRFZmZlY3REdXJhdGlvbigpLFxuICAgICAgICBwcmV2RWZmZWN0RXJyb3JzID0gcHVzaENvbXBvbmVudEVmZmVjdEVycm9ycygpLFxuICAgICAgICBwcmV2RWZmZWN0RGlkU3Bhd25VcGRhdGUgPSBwdXNoQ29tcG9uZW50RWZmZWN0RGlkU3Bhd25VcGRhdGUoKTtcbiAgICAgIHN3aXRjaCAoZGVsZXRlZEZpYmVyLnRhZykge1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gfHxcbiAgICAgICAgICAgIHNhZmVseURldGFjaFJlZihkZWxldGVkRmliZXIsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgZGVsZXRlZEZpYmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkZWxldGVkRmliZXIubWVtb2l6ZWRTdGF0ZVxuICAgICAgICAgICAgPyBkZWxldGVkRmliZXIubWVtb2l6ZWRTdGF0ZS5jb3VudC0tXG4gICAgICAgICAgICA6IGRlbGV0ZWRGaWJlci5zdGF0ZU5vZGUgJiZcbiAgICAgICAgICAgICAgKChmaW5pc2hlZFJvb3QgPSBkZWxldGVkRmliZXIuc3RhdGVOb2RlKSxcbiAgICAgICAgICAgICAgZmluaXNoZWRSb290LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmluaXNoZWRSb290KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fFxuICAgICAgICAgICAgc2FmZWx5RGV0YWNoUmVmKGRlbGV0ZWRGaWJlciwgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvcik7XG4gICAgICAgICAgdmFyIHByZXZIb3N0UGFyZW50ID0gaG9zdFBhcmVudCxcbiAgICAgICAgICAgIHByZXZIb3N0UGFyZW50SXNDb250YWluZXIgPSBob3N0UGFyZW50SXNDb250YWluZXI7XG4gICAgICAgICAgaXNTaW5nbGV0b25TY29wZShkZWxldGVkRmliZXIudHlwZSkgJiZcbiAgICAgICAgICAgICgoaG9zdFBhcmVudCA9IGRlbGV0ZWRGaWJlci5zdGF0ZU5vZGUpLFxuICAgICAgICAgICAgKGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9ICExKSk7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgICBkZWxldGVkRmliZXJcbiAgICAgICAgICApO1xuICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgZGVsZXRlZEZpYmVyLFxuICAgICAgICAgICAgcmVsZWFzZVNpbmdsZXRvbkluc3RhbmNlLFxuICAgICAgICAgICAgZGVsZXRlZEZpYmVyLnN0YXRlTm9kZVxuICAgICAgICAgICk7XG4gICAgICAgICAgaG9zdFBhcmVudCA9IHByZXZIb3N0UGFyZW50O1xuICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IHByZXZIb3N0UGFyZW50SXNDb250YWluZXI7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8XG4gICAgICAgICAgICBzYWZlbHlEZXRhY2hSZWYoZGVsZXRlZEZpYmVyLCBuZWFyZXN0TW91bnRlZEFuY2VzdG9yKTtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIHByZXZIb3N0UGFyZW50ID0gaG9zdFBhcmVudDtcbiAgICAgICAgICBwcmV2SG9zdFBhcmVudElzQ29udGFpbmVyID0gaG9zdFBhcmVudElzQ29udGFpbmVyO1xuICAgICAgICAgIGhvc3RQYXJlbnQgPSBudWxsO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgZGVsZXRlZEZpYmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBob3N0UGFyZW50ID0gcHJldkhvc3RQYXJlbnQ7XG4gICAgICAgICAgaG9zdFBhcmVudElzQ29udGFpbmVyID0gcHJldkhvc3RQYXJlbnRJc0NvbnRhaW5lcjtcbiAgICAgICAgICBpZiAobnVsbCAhPT0gaG9zdFBhcmVudClcbiAgICAgICAgICAgIGlmIChob3N0UGFyZW50SXNDb250YWluZXIpXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICAgICAgICBkZWxldGVkRmliZXIsXG4gICAgICAgICAgICAgICAgICByZW1vdmVDaGlsZEZyb21Db250YWluZXIsXG4gICAgICAgICAgICAgICAgICBob3N0UGFyZW50LFxuICAgICAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyLnN0YXRlTm9kZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoXG4gICAgICAgICAgICAgICAgICBkZWxldGVkRmliZXIsXG4gICAgICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICAgICAgICBkZWxldGVkRmliZXIsXG4gICAgICAgICAgICAgICAgICByZW1vdmVDaGlsZCxcbiAgICAgICAgICAgICAgICAgIGhvc3RQYXJlbnQsXG4gICAgICAgICAgICAgICAgICBkZWxldGVkRmliZXIuc3RhdGVOb2RlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZWRGaWJlcixcbiAgICAgICAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxODpcbiAgICAgICAgICBudWxsICE9PSBob3N0UGFyZW50ICYmXG4gICAgICAgICAgICAoaG9zdFBhcmVudElzQ29udGFpbmVyXG4gICAgICAgICAgICAgID8gKChmaW5pc2hlZFJvb3QgPSBob3N0UGFyZW50KSxcbiAgICAgICAgICAgICAgICBjbGVhckh5ZHJhdGlvbkJvdW5kYXJ5KFxuICAgICAgICAgICAgICAgICAgOSA9PT0gZmluaXNoZWRSb290Lm5vZGVUeXBlXG4gICAgICAgICAgICAgICAgICAgID8gZmluaXNoZWRSb290LmJvZHlcbiAgICAgICAgICAgICAgICAgICAgOiBcIkhUTUxcIiA9PT0gZmluaXNoZWRSb290Lm5vZGVOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgPyBmaW5pc2hlZFJvb3Qub3duZXJEb2N1bWVudC5ib2R5XG4gICAgICAgICAgICAgICAgICAgICAgOiBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgICAgICBkZWxldGVkRmliZXIuc3RhdGVOb2RlXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICByZXRyeUlmQmxvY2tlZE9uKGZpbmlzaGVkUm9vdCkpXG4gICAgICAgICAgICAgIDogY2xlYXJIeWRyYXRpb25Cb3VuZGFyeShob3N0UGFyZW50LCBkZWxldGVkRmliZXIuc3RhdGVOb2RlKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBwcmV2SG9zdFBhcmVudCA9IGhvc3RQYXJlbnQ7XG4gICAgICAgICAgcHJldkhvc3RQYXJlbnRJc0NvbnRhaW5lciA9IGhvc3RQYXJlbnRJc0NvbnRhaW5lcjtcbiAgICAgICAgICBob3N0UGFyZW50ID0gZGVsZXRlZEZpYmVyLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9ICEwO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgZGVsZXRlZEZpYmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBob3N0UGFyZW50ID0gcHJldkhvc3RQYXJlbnQ7XG4gICAgICAgICAgaG9zdFBhcmVudElzQ29udGFpbmVyID0gcHJldkhvc3RQYXJlbnRJc0NvbnRhaW5lcjtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDExOlxuICAgICAgICBjYXNlIDE0OlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0VW5tb3VudChcbiAgICAgICAgICAgIEluc2VydGlvbixcbiAgICAgICAgICAgIGRlbGV0ZWRGaWJlcixcbiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3JcbiAgICAgICAgICApO1xuICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gfHxcbiAgICAgICAgICAgIGNvbW1pdEhvb2tMYXlvdXRVbm1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyLFxuICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgICBMYXlvdXRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgICBkZWxldGVkRmliZXJcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiB8fFxuICAgICAgICAgICAgKHNhZmVseURldGFjaFJlZihkZWxldGVkRmliZXIsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpLFxuICAgICAgICAgICAgKHByZXZIb3N0UGFyZW50ID0gZGVsZXRlZEZpYmVyLnN0YXRlTm9kZSksXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwcmV2SG9zdFBhcmVudC5jb21wb25lbnRXaWxsVW5tb3VudCAmJlxuICAgICAgICAgICAgICBzYWZlbHlDYWxsQ29tcG9uZW50V2lsbFVubW91bnQoXG4gICAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyLFxuICAgICAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgICAgICAgcHJldkhvc3RQYXJlbnRcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURlbGV0aW9uRWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsXG4gICAgICAgICAgICBkZWxldGVkRmliZXJcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIxOlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgZGVsZXRlZEZpYmVyXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuID1cbiAgICAgICAgICAgIChwcmV2SG9zdFBhcmVudCA9IG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4pIHx8XG4gICAgICAgICAgICBudWxsICE9PSBkZWxldGVkRmliZXIubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGVsZXRpb25FZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgIGRlbGV0ZWRGaWJlclxuICAgICAgICAgICk7XG4gICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiA9IHByZXZIb3N0UGFyZW50O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEZWxldGlvbkVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgZGVsZXRlZEZpYmVyXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIChkZWxldGVkRmliZXIubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmXG4gICAgICAgIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJlxuICAgICAgICAoY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSB8fCAwLjA1IDwgY29tcG9uZW50RWZmZWN0RHVyYXRpb24pICYmXG4gICAgICAgIGxvZ0NvbXBvbmVudEVmZmVjdChcbiAgICAgICAgICBkZWxldGVkRmliZXIsXG4gICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLFxuICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVuZFRpbWUsXG4gICAgICAgICAgY29tcG9uZW50RWZmZWN0RHVyYXRpb24sXG4gICAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzXG4gICAgICAgICk7XG4gICAgICBwb3BDb21wb25lbnRFZmZlY3RTdGFydChwcmV2RWZmZWN0U3RhcnQpO1xuICAgICAgcG9wQ29tcG9uZW50RWZmZWN0RHVyYXRpb24ocHJldkVmZmVjdER1cmF0aW9uKTtcbiAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IHByZXZFZmZlY3RFcnJvcnM7XG4gICAgICBjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlID0gcHJldkVmZmVjdERpZFNwYXduVXBkYXRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRBY3Rpdml0eUh5ZHJhdGlvbkNhbGxiYWNrcyhmaW5pc2hlZFJvb3QsIGZpbmlzaGVkV29yaykge1xuICAgICAgaWYgKFxuICAgICAgICBudWxsID09PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAoKGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkV29yay5hbHRlcm5hdGUpLFxuICAgICAgICBudWxsICE9PSBmaW5pc2hlZFJvb3QgJiZcbiAgICAgICAgICAoKGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkUm9vdC5tZW1vaXplZFN0YXRlKSwgbnVsbCAhPT0gZmluaXNoZWRSb290KSlcbiAgICAgICkge1xuICAgICAgICBmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFJvb3QuZGVoeWRyYXRlZDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGNvbW1pdEh5ZHJhdGVkQWN0aXZpdHlJbnN0YW5jZSxcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdFxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0U3VzcGVuc2VIeWRyYXRpb25DYWxsYmFja3MoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspIHtcbiAgICAgIGlmIChcbiAgICAgICAgbnVsbCA9PT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgKChmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlKSxcbiAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRSb290ICYmXG4gICAgICAgICAgKChmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFJvb3QubWVtb2l6ZWRTdGF0ZSksXG4gICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRSb290ICYmXG4gICAgICAgICAgICAoKGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkUm9vdC5kZWh5ZHJhdGVkKSwgbnVsbCAhPT0gZmluaXNoZWRSb290KSkpXG4gICAgICApXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBjb21taXRIeWRyYXRlZFN1c3BlbnNlSW5zdGFuY2UsXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3RcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFJldHJ5Q2FjaGUoZmluaXNoZWRXb3JrKSB7XG4gICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICB2YXIgcmV0cnlDYWNoZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgbnVsbCA9PT0gcmV0cnlDYWNoZSAmJlxuICAgICAgICAgICAgKHJldHJ5Q2FjaGUgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlID0gbmV3IFBvc3NpYmx5V2Vha1NldCgpKTtcbiAgICAgICAgICByZXR1cm4gcmV0cnlDYWNoZTtcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKGZpbmlzaGVkV29yayA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUpLFxuICAgICAgICAgICAgKHJldHJ5Q2FjaGUgPSBmaW5pc2hlZFdvcmsuX3JldHJ5Q2FjaGUpLFxuICAgICAgICAgICAgbnVsbCA9PT0gcmV0cnlDYWNoZSAmJlxuICAgICAgICAgICAgICAocmV0cnlDYWNoZSA9IGZpbmlzaGVkV29yay5fcmV0cnlDYWNoZSA9IG5ldyBQb3NzaWJseVdlYWtTZXQoKSksXG4gICAgICAgICAgICByZXRyeUNhY2hlXG4gICAgICAgICAgKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiVW5leHBlY3RlZCBTdXNwZW5zZSBoYW5kbGVyIHRhZyAoXCIgK1xuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsudGFnICtcbiAgICAgICAgICAgICAgXCIpLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gYXR0YWNoU3VzcGVuc2VSZXRyeUxpc3RlbmVycyhmaW5pc2hlZFdvcmssIHdha2VhYmxlcykge1xuICAgICAgdmFyIHJldHJ5Q2FjaGUgPSBnZXRSZXRyeUNhY2hlKGZpbmlzaGVkV29yayk7XG4gICAgICB3YWtlYWJsZXMuZm9yRWFjaChmdW5jdGlvbiAod2FrZWFibGUpIHtcbiAgICAgICAgaWYgKCFyZXRyeUNhY2hlLmhhcyh3YWtlYWJsZSkpIHtcbiAgICAgICAgICByZXRyeUNhY2hlLmFkZCh3YWtlYWJsZSk7XG4gICAgICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KVxuICAgICAgICAgICAgaWYgKG51bGwgIT09IGluUHJvZ3Jlc3NMYW5lcyAmJiBudWxsICE9PSBpblByb2dyZXNzUm9vdClcbiAgICAgICAgICAgICAgcmVzdG9yZVBlbmRpbmdVcGRhdGVycyhpblByb2dyZXNzUm9vdCwgaW5Qcm9ncmVzc0xhbmVzKTtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBmaW5pc2hlZCByb290IGFuZCBsYW5lcyB0byBiZSBzZXQuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB2YXIgcmV0cnkgPSByZXNvbHZlUmV0cnlXYWtlYWJsZS5iaW5kKG51bGwsIGZpbmlzaGVkV29yaywgd2FrZWFibGUpO1xuICAgICAgICAgIHdha2VhYmxlLnRoZW4ocmV0cnksIHJldHJ5KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCRqc2NvbXAkMCwgcGFyZW50RmliZXIpIHtcbiAgICAgIHZhciBkZWxldGlvbnMgPSBwYXJlbnRGaWJlci5kZWxldGlvbnM7XG4gICAgICBpZiAobnVsbCAhPT0gZGVsZXRpb25zKVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRlbGV0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIHZhciByb290ID0gcm9vdCRqc2NvbXAkMCxcbiAgICAgICAgICAgIHJldHVybkZpYmVyID0gcGFyZW50RmliZXIsXG4gICAgICAgICAgICBkZWxldGVkRmliZXIgPSBkZWxldGlvbnNbaV0sXG4gICAgICAgICAgICBwcmV2RWZmZWN0U3RhcnQgPSBwdXNoQ29tcG9uZW50RWZmZWN0U3RhcnQoKSxcbiAgICAgICAgICAgIHBhcmVudCA9IHJldHVybkZpYmVyO1xuICAgICAgICAgIGE6IGZvciAoOyBudWxsICE9PSBwYXJlbnQ7ICkge1xuICAgICAgICAgICAgc3dpdGNoIChwYXJlbnQudGFnKSB7XG4gICAgICAgICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgICAgICAgaWYgKGlzU2luZ2xldG9uU2NvcGUocGFyZW50LnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICBob3N0UGFyZW50ID0gcGFyZW50LnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9ICExO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgNTpcbiAgICAgICAgICAgICAgICBob3N0UGFyZW50ID0gcGFyZW50LnN0YXRlTm9kZTtcbiAgICAgICAgICAgICAgICBob3N0UGFyZW50SXNDb250YWluZXIgPSAhMTtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICAgIGNhc2UgNDpcbiAgICAgICAgICAgICAgICBob3N0UGFyZW50ID0gcGFyZW50LnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9ICEwO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQucmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAobnVsbCA9PT0gaG9zdFBhcmVudClcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICBcIkV4cGVjdGVkIHRvIGZpbmQgYSBob3N0IHBhcmVudC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjb21taXREZWxldGlvbkVmZmVjdHNPbkZpYmVyKHJvb3QsIHJldHVybkZpYmVyLCBkZWxldGVkRmliZXIpO1xuICAgICAgICAgIGhvc3RQYXJlbnQgPSBudWxsO1xuICAgICAgICAgIGhvc3RQYXJlbnRJc0NvbnRhaW5lciA9ICExO1xuICAgICAgICAgIChkZWxldGVkRmliZXIubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAwIDw9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJlxuICAgICAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmXG4gICAgICAgICAgICAwLjA1IDwgY29tcG9uZW50RWZmZWN0RW5kVGltZSAtIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJlxuICAgICAgICAgICAgbG9nQ29tcG9uZW50VHJpZ2dlcihcbiAgICAgICAgICAgICAgZGVsZXRlZEZpYmVyLFxuICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVuZFRpbWUsXG4gICAgICAgICAgICAgIFwiVW5tb3VudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCk7XG4gICAgICAgICAgcm9vdCA9IGRlbGV0ZWRGaWJlcjtcbiAgICAgICAgICByZXR1cm5GaWJlciA9IHJvb3QuYWx0ZXJuYXRlO1xuICAgICAgICAgIG51bGwgIT09IHJldHVybkZpYmVyICYmIChyZXR1cm5GaWJlci5yZXR1cm4gPSBudWxsKTtcbiAgICAgICAgICByb290LnJldHVybiA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIGlmIChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiAxMzg4NilcbiAgICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKVxuICAgICAgICAgIGNvbW1pdE11dGF0aW9uRWZmZWN0c09uRmliZXIocGFyZW50RmliZXIsIHJvb3QkanNjb21wJDApLFxuICAgICAgICAgICAgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuc2libGluZyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdE11dGF0aW9uRWZmZWN0c09uRmliZXIoZmluaXNoZWRXb3JrLCByb290KSB7XG4gICAgICB2YXIgcHJldkVmZmVjdFN0YXJ0ID0gcHVzaENvbXBvbmVudEVmZmVjdFN0YXJ0KCksXG4gICAgICAgIHByZXZFZmZlY3REdXJhdGlvbiA9IHB1c2hDb21wb25lbnRFZmZlY3REdXJhdGlvbigpLFxuICAgICAgICBwcmV2RWZmZWN0RXJyb3JzID0gcHVzaENvbXBvbmVudEVmZmVjdEVycm9ycygpLFxuICAgICAgICBwcmV2RWZmZWN0RGlkU3Bhd25VcGRhdGUgPSBwdXNoQ29tcG9uZW50RWZmZWN0RGlkU3Bhd25VcGRhdGUoKSxcbiAgICAgICAgY3VycmVudCA9IGZpbmlzaGVkV29yay5hbHRlcm5hdGUsXG4gICAgICAgIGZsYWdzID0gZmluaXNoZWRXb3JrLmZsYWdzO1xuICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA0ICYmXG4gICAgICAgICAgICAoY29tbWl0SG9va0VmZmVjdExpc3RVbm1vdW50KFxuICAgICAgICAgICAgICBJbnNlcnRpb24gfCBIYXNFZmZlY3QsXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnJldHVyblxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGNvbW1pdEhvb2tFZmZlY3RMaXN0TW91bnQoSW5zZXJ0aW9uIHwgSGFzRWZmZWN0LCBmaW5pc2hlZFdvcmspLFxuICAgICAgICAgICAgY29tbWl0SG9va0xheW91dFVubW91bnRFZmZlY3RzKFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yay5yZXR1cm4sXG4gICAgICAgICAgICAgIExheW91dCB8IEhhc0VmZmVjdFxuICAgICAgICAgICAgKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmxhZ3MgJiA1MTIgJiZcbiAgICAgICAgICAgIChvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8XG4gICAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgfHxcbiAgICAgICAgICAgICAgc2FmZWx5RGV0YWNoUmVmKGN1cnJlbnQsIGN1cnJlbnQucmV0dXJuKSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZmxhZ3MgJiA2NCAmJlxuICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuICYmXG4gICAgICAgICAgICAoKGZsYWdzID0gZmluaXNoZWRXb3JrLnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICAgIG51bGwgIT09IGZsYWdzICYmICgoY3VycmVudCA9IGZsYWdzLmNhbGxiYWNrcyksIG51bGwgIT09IGN1cnJlbnQpKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgdmFyIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzID0gZmxhZ3Muc2hhcmVkLmhpZGRlbkNhbGxiYWNrcztcbiAgICAgICAgICAgIGZsYWdzLnNoYXJlZC5oaWRkZW5DYWxsYmFja3MgPVxuICAgICAgICAgICAgICBudWxsID09PSBleGlzdGluZ0hpZGRlbkNhbGxiYWNrc1xuICAgICAgICAgICAgICAgID8gY3VycmVudFxuICAgICAgICAgICAgICAgIDogZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MuY29uY2F0KGN1cnJlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcyA9IGN1cnJlbnRIb2lzdGFibGVSb290O1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBmbGFncyAmIDUxMiAmJlxuICAgICAgICAgICAgKG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gfHxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudCB8fFxuICAgICAgICAgICAgICBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCwgY3VycmVudC5yZXR1cm4pKTtcbiAgICAgICAgICBpZiAoZmxhZ3MgJiA0KSB7XG4gICAgICAgICAgICB2YXIgY3VycmVudFJlc291cmNlID1cbiAgICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudCA/IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSA6IG51bGw7XG4gICAgICAgICAgICBmbGFncyA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpXG4gICAgICAgICAgICAgIGlmIChudWxsID09PSBmbGFncylcbiAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZSkge1xuICAgICAgICAgICAgICAgICAgYToge1xuICAgICAgICAgICAgICAgICAgICBmbGFncyA9IGZpbmlzaGVkV29yay50eXBlO1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHM7XG4gICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzID1cbiAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcy5vd25lckRvY3VtZW50IHx8XG4gICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3M7XG4gICAgICAgICAgICAgICAgICAgIGI6IHN3aXRjaCAoZmxhZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwidGl0bGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLmdldEVsZW1lbnRzQnlUYWdOYW1lKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwidGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICApWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAhY3VycmVudFJlc291cmNlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZVtpbnRlcm5hbEhvaXN0YWJsZU1hcmtlcl0gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlW2ludGVybmFsSW5zdGFuY2VLZXldIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZS5uYW1lc3BhY2VVUkkgPT09IFNWR19OQU1FU1BBQ0UgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlLmhhc0F0dHJpYnV0ZShcIml0ZW1wcm9wXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50UmVzb3VyY2UgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLmNyZWF0ZUVsZW1lbnQoZmxhZ3MpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcy5oZWFkLmluc2VydEJlZm9yZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiaGVhZCA+IHRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoY3VycmVudFJlc291cmNlLCBmbGFncywgY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UmVzb3VyY2VbaW50ZXJuYWxJbnN0YW5jZUtleV0gPSBmaW5pc2hlZFdvcms7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJrTm9kZUFzSG9pc3RhYmxlKGN1cnJlbnRSZXNvdXJjZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IGN1cnJlbnRSZXNvdXJjZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYXliZU5vZGVzID0gZ2V0SHlkcmF0YWJsZUhvaXN0YWJsZUNhY2hlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcImxpbmtcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJocmVmXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzXG4gICAgICAgICAgICAgICAgICAgICAgICApLmdldChmbGFncyArIChjdXJyZW50LmhyZWYgfHwgXCJcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1heWJlTm9kZXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWF5YmVOb2Rlcy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGN1cnJlbnRSZXNvdXJjZSA9IG1heWJlTm9kZXNbaV0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlLmdldEF0dHJpYnV0ZShcImhyZWZcIikgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudWxsID09IGN1cnJlbnQuaHJlZiB8fCBcIlwiID09PSBjdXJyZW50LmhyZWZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnQuaHJlZikgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlLmdldEF0dHJpYnV0ZShcInJlbFwiKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnVsbCA9PSBjdXJyZW50LnJlbCA/IG51bGwgOiBjdXJyZW50LnJlbCkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlLmdldEF0dHJpYnV0ZShcInRpdGxlXCIpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudWxsID09IGN1cnJlbnQudGl0bGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjdXJyZW50LnRpdGxlKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UmVzb3VyY2UuZ2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIikgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG51bGwgPT0gY3VycmVudC5jcm9zc09yaWdpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnQuY3Jvc3NPcmlnaW4pKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF5YmVOb2Rlcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLmNyZWF0ZUVsZW1lbnQoZmxhZ3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoY3VycmVudFJlc291cmNlLCBmbGFncywgY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcy5oZWFkLmFwcGVuZENoaWxkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UmVzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwibWV0YVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAobWF5YmVOb2RlcyA9IGdldEh5ZHJhdGFibGVIb2lzdGFibGVDYWNoZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIm1ldGFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbnRlbnRcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrc1xuICAgICAgICAgICAgICAgICAgICAgICAgICApLmdldChmbGFncyArIChjdXJyZW50LmNvbnRlbnQgfHwgXCJcIikpKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbWF5YmVOb2Rlcy5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKGN1cnJlbnRSZXNvdXJjZSA9IG1heWJlTm9kZXNbaV0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudC5jb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZS5nZXRBdHRyaWJ1dGUoXCJjb250ZW50XCIpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnVsbCA9PSBjdXJyZW50LmNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiXCIgKyBjdXJyZW50LmNvbnRlbnQpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZS5nZXRBdHRyaWJ1dGUoXCJuYW1lXCIpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudWxsID09IGN1cnJlbnQubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnQubmFtZSkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlLmdldEF0dHJpYnV0ZShcInByb3BlcnR5XCIpID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChudWxsID09IGN1cnJlbnQucHJvcGVydHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjdXJyZW50LnByb3BlcnR5KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UmVzb3VyY2UuZ2V0QXR0cmlidXRlKFwiaHR0cC1lcXVpdlwiKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnVsbCA9PSBjdXJyZW50Lmh0dHBFcXVpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnQuaHR0cEVxdWl2KSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UmVzb3VyY2UuZ2V0QXR0cmlidXRlKFwiY2hhcnNldFwiKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnVsbCA9PSBjdXJyZW50LmNoYXJTZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjdXJyZW50LmNoYXJTZXQpKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF5YmVOb2Rlcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLmNyZWF0ZUVsZW1lbnQoZmxhZ3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoY3VycmVudFJlc291cmNlLCBmbGFncywgY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcy5oZWFkLmFwcGVuZENoaWxkKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50UmVzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdnZXROb2Rlc0ZvclR5cGUgZW5jb3VudGVyZWQgYSB0eXBlIGl0IGRpZCBub3QgZXhwZWN0OiBcIicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXCIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50UmVzb3VyY2VbaW50ZXJuYWxJbnN0YW5jZUtleV0gPSBmaW5pc2hlZFdvcms7XG4gICAgICAgICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoY3VycmVudFJlc291cmNlKTtcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3MgPSBjdXJyZW50UmVzb3VyY2U7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlID0gZmxhZ3M7XG4gICAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgICBtb3VudEhvaXN0YWJsZShcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yay50eXBlLFxuICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLnN0YXRlTm9kZSA9IGFjcXVpcmVSZXNvdXJjZShcbiAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLFxuICAgICAgICAgICAgICAgICAgZmxhZ3MsXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZSAhPT0gZmxhZ3NcbiAgICAgICAgICAgICAgICA/IChudWxsID09PSBjdXJyZW50UmVzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgPyBudWxsICE9PSBjdXJyZW50LnN0YXRlTm9kZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICgoY3VycmVudCA9IGN1cnJlbnQuc3RhdGVOb2RlKSxcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY3VycmVudCkpXG4gICAgICAgICAgICAgICAgICAgIDogY3VycmVudFJlc291cmNlLmNvdW50LS0sXG4gICAgICAgICAgICAgICAgICBudWxsID09PSBmbGFnc1xuICAgICAgICAgICAgICAgICAgICA/IG1vdW50SG9pc3RhYmxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yay5zdGF0ZU5vZGVcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIDogYWNxdWlyZVJlc291cmNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBmbGFncyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzXG4gICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICA6IG51bGwgPT09IGZsYWdzICYmXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlICYmXG4gICAgICAgICAgICAgICAgICBjb21taXRIb3N0VXBkYXRlKFxuICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yay5tZW1vaXplZFByb3BzLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50Lm1lbW9pemVkUHJvcHNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBmbGFncyAmIDUxMiAmJlxuICAgICAgICAgICAgKG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gfHxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudCB8fFxuICAgICAgICAgICAgICBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCwgY3VycmVudC5yZXR1cm4pKTtcbiAgICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICAgICBmbGFncyAmIDQgJiZcbiAgICAgICAgICAgIGNvbW1pdEhvc3RVcGRhdGUoXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLm1lbW9pemVkUHJvcHMsXG4gICAgICAgICAgICAgIGN1cnJlbnQubWVtb2l6ZWRQcm9wc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBmbGFncyAmIDUxMiAmJlxuICAgICAgICAgICAgKG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gfHxcbiAgICAgICAgICAgICAgbnVsbCA9PT0gY3VycmVudCB8fFxuICAgICAgICAgICAgICBzYWZlbHlEZXRhY2hSZWYoY3VycmVudCwgY3VycmVudC5yZXR1cm4pKTtcbiAgICAgICAgICBpZiAoZmluaXNoZWRXb3JrLmZsYWdzICYgMzIpIHtcbiAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICByZXNldFRleHRDb250ZW50LFxuICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZmxhZ3MgJiA0ICYmXG4gICAgICAgICAgICBudWxsICE9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUgJiZcbiAgICAgICAgICAgICgoZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcyksXG4gICAgICAgICAgICBjb21taXRIb3N0VXBkYXRlKFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzLFxuICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50ID8gY3VycmVudC5tZW1vaXplZFByb3BzIDogZXhpc3RpbmdIaWRkZW5DYWxsYmFja3NcbiAgICAgICAgICAgICkpO1xuICAgICAgICAgIGZsYWdzICYgMTAyNCAmJlxuICAgICAgICAgICAgKChuZWVkc0Zvcm1SZXNldCA9ICEwKSxcbiAgICAgICAgICAgIFwiZm9ybVwiICE9PSBmaW5pc2hlZFdvcmsudHlwZSAmJlxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiVW5leHBlY3RlZCBob3N0IGNvbXBvbmVudCB0eXBlLiBFeHBlY3RlZCBhIGZvcm0uIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlTXV0YXRpb25FZmZlY3RzKHJvb3QsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgaWYgKGZsYWdzICYgNCkge1xuICAgICAgICAgICAgaWYgKG51bGwgPT09IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiVGhpcyBzaG91bGQgaGF2ZSBhIHRleHQgbm9kZSBpbml0aWFsaXplZC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgZmxhZ3MgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRQcm9wcztcbiAgICAgICAgICAgIGN1cnJlbnQgPSBudWxsICE9PSBjdXJyZW50ID8gY3VycmVudC5tZW1vaXplZFByb3BzIDogZmxhZ3M7XG4gICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcyA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgY29tbWl0VGV4dFVwZGF0ZSxcbiAgICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcyxcbiAgICAgICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgICAgIGZsYWdzXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrcyA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTtcbiAgICAgICAgICB0YWdDYWNoZXMgPSBudWxsO1xuICAgICAgICAgIGN1cnJlbnRSZXNvdXJjZSA9IGN1cnJlbnRIb2lzdGFibGVSb290O1xuICAgICAgICAgIGN1cnJlbnRIb2lzdGFibGVSb290ID0gZ2V0SG9pc3RhYmxlUm9vdChyb290LmNvbnRhaW5lckluZm8pO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBjdXJyZW50SG9pc3RhYmxlUm9vdCA9IGN1cnJlbnRSZXNvdXJjZTtcbiAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBmbGFncyAmIDQgJiZcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgIGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWRcbiAgICAgICAgICApXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgY29tbWl0SHlkcmF0ZWRDb250YWluZXIsXG4gICAgICAgICAgICAgICAgcm9vdC5jb250YWluZXJJbmZvXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBuZWVkc0Zvcm1SZXNldCAmJlxuICAgICAgICAgICAgKChuZWVkc0Zvcm1SZXNldCA9ICExKSwgcmVjdXJzaXZlbHlSZXNldEZvcm1zKGZpbmlzaGVkV29yaykpO1xuICAgICAgICAgIHJvb3QuZWZmZWN0RHVyYXRpb24gKz0gcG9wTmVzdGVkRWZmZWN0RHVyYXRpb25zKFxuICAgICAgICAgICAgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3NcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgZmxhZ3MgPSBjdXJyZW50SG9pc3RhYmxlUm9vdDtcbiAgICAgICAgICBjdXJyZW50SG9pc3RhYmxlUm9vdCA9IGdldEhvaXN0YWJsZVJvb3QoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLmNvbnRhaW5lckluZm9cbiAgICAgICAgICApO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBjdXJyZW50SG9pc3RhYmxlUm9vdCA9IGZsYWdzO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEyOlxuICAgICAgICAgIGZsYWdzID0gcHVzaE5lc3RlZEVmZmVjdER1cmF0aW9ucygpO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLmVmZmVjdER1cmF0aW9uICs9XG4gICAgICAgICAgICBidWJibGVOZXN0ZWRFZmZlY3REdXJhdGlvbnMoZmxhZ3MpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDMxOlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBmbGFncyAmIDQgJiZcbiAgICAgICAgICAgICgoZmxhZ3MgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUpLFxuICAgICAgICAgICAgbnVsbCAhPT0gZmxhZ3MgJiZcbiAgICAgICAgICAgICAgKChmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUgPSBudWxsKSxcbiAgICAgICAgICAgICAgYXR0YWNoU3VzcGVuc2VSZXRyeUxpc3RlbmVycyhmaW5pc2hlZFdvcmssIGZsYWdzKSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBmaW5pc2hlZFdvcmsuY2hpbGQuZmxhZ3MgJiA4MTkyICYmXG4gICAgICAgICAgICAobnVsbCAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUpICE9PVxuICAgICAgICAgICAgICAobnVsbCAhPT0gY3VycmVudCAmJiBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUpICYmXG4gICAgICAgICAgICAoZ2xvYmFsTW9zdFJlY2VudEZhbGxiYWNrVGltZSA9IG5vdyQxKCkpO1xuICAgICAgICAgIGZsYWdzICYgNCAmJlxuICAgICAgICAgICAgKChmbGFncyA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZSksXG4gICAgICAgICAgICBudWxsICE9PSBmbGFncyAmJlxuICAgICAgICAgICAgICAoKGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZSA9IG51bGwpLFxuICAgICAgICAgICAgICBhdHRhY2hTdXNwZW5zZVJldHJ5TGlzdGVuZXJzKGZpbmlzaGVkV29yaywgZmxhZ3MpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MgPSBudWxsICE9PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICB2YXIgd2FzSGlkZGVuID0gbnVsbCAhPT0gY3VycmVudCAmJiBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUsXG4gICAgICAgICAgICBwcmV2T2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuID0gb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuLFxuICAgICAgICAgICAgcHJldk9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuO1xuICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbiA9XG4gICAgICAgICAgICBwcmV2T2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuIHx8IGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzO1xuICAgICAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPVxuICAgICAgICAgICAgcHJldk9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gfHwgd2FzSGlkZGVuO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VNdXRhdGlvbkVmZmVjdHMocm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuID0gcHJldk9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW47XG4gICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuID0gcHJldk9mZnNjcmVlblN1YnRyZWVJc0hpZGRlbjtcbiAgICAgICAgICB3YXNIaWRkZW4gJiZcbiAgICAgICAgICAgICFleGlzdGluZ0hpZGRlbkNhbGxiYWNrcyAmJlxuICAgICAgICAgICAgIXByZXZPZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW4gJiZcbiAgICAgICAgICAgICFwcmV2T2Zmc2NyZWVuU3VidHJlZVdhc0hpZGRlbiAmJlxuICAgICAgICAgICAgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmXG4gICAgICAgICAgICAwIDw9IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgJiZcbiAgICAgICAgICAgIDAuMDUgPCBjb21wb25lbnRFZmZlY3RFbmRUaW1lIC0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmXG4gICAgICAgICAgICBsb2dDb21wb25lbnRSZWFwcGVhcmVkKFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBpZiAoZmxhZ3MgJiA4MTkyKVxuICAgICAgICAgICAgYTogZm9yIChcbiAgICAgICAgICAgICAgcm9vdCA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGUsXG4gICAgICAgICAgICAgICAgcm9vdC5fdmlzaWJpbGl0eSA9IGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzXG4gICAgICAgICAgICAgICAgICA/IHJvb3QuX3Zpc2liaWxpdHkgJiB+T2Zmc2NyZWVuVmlzaWJsZVxuICAgICAgICAgICAgICAgICAgOiByb290Ll92aXNpYmlsaXR5IHwgT2Zmc2NyZWVuVmlzaWJsZSxcbiAgICAgICAgICAgICAgICAhZXhpc3RpbmdIaWRkZW5DYWxsYmFja3MgfHxcbiAgICAgICAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgfHxcbiAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbiB8fFxuICAgICAgICAgICAgICAgICAgb2Zmc2NyZWVuU3VidHJlZUlzSGlkZGVuIHx8XG4gICAgICAgICAgICAgICAgICBvZmZzY3JlZW5TdWJ0cmVlV2FzSGlkZGVuIHx8XG4gICAgICAgICAgICAgICAgICAocmVjdXJzaXZlbHlUcmF2ZXJzZURpc2FwcGVhckxheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrKSxcbiAgICAgICAgICAgICAgICAgIChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAgICAgICAgIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmXG4gICAgICAgICAgICAgICAgICAgIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJlxuICAgICAgICAgICAgICAgICAgICAwLjA1IDwgY29tcG9uZW50RWZmZWN0RW5kVGltZSAtIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJlxuICAgICAgICAgICAgICAgICAgICBsb2dDb21wb25lbnRUcmlnZ2VyKFxuICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSxcbiAgICAgICAgICAgICAgICAgICAgICBcIkRpc2Nvbm5lY3RcIlxuICAgICAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICBjdXJyZW50ID0gbnVsbCxcbiAgICAgICAgICAgICAgICByb290ID0gZmluaXNoZWRXb3JrO1xuICAgICAgICAgICAgICA7XG5cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBpZiAoNSA9PT0gcm9vdC50YWcgfHwgMjYgPT09IHJvb3QudGFnKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbiA9IGN1cnJlbnQgPSByb290O1xuICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnRSZXNvdXJjZSA9IHdhc0hpZGRlbi5zdGF0ZU5vZGUpLFxuICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlSW5zdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FzSGlkZGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaGlkZUluc3RhbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbi5zdGF0ZU5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FzSGlkZGVuLm1lbW9pemVkUHJvcHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKHdhc0hpZGRlbiwgd2FzSGlkZGVuLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmICg2ID09PSByb290LnRhZykge1xuICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBjdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICB3YXNIaWRkZW4gPSByb290O1xuICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgKG1heWJlTm9kZXMgPSB3YXNIaWRkZW4uc3RhdGVOb2RlKSxcbiAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0hpZGRlbkNhbGxiYWNrc1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXNIaWRkZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZVRleHRJbnN0YW5jZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXliZU5vZGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FzSGlkZGVuLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaGlkZVRleHRJbnN0YW5jZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXliZU5vZGVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbi5tZW1vaXplZFByb3BzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcih3YXNIaWRkZW4sIHdhc0hpZGRlbi5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoMTggPT09IHJvb3QudGFnKSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bGwgPT09IGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbiA9IHJvb3Q7XG4gICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAoaSA9IHdhc0hpZGRlbi5zdGF0ZU5vZGUpLFxuICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nSGlkZGVuQ2FsbGJhY2tzXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlRGVoeWRyYXRlZEJvdW5kYXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXNIaWRkZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5oaWRlRGVoeWRyYXRlZEJvdW5kYXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhc0hpZGRlbi5zdGF0ZU5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKHdhc0hpZGRlbiwgd2FzSGlkZGVuLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAoKDIyICE9PSByb290LnRhZyAmJiAyMyAhPT0gcm9vdC50YWcpIHx8XG4gICAgICAgICAgICAgICAgICBudWxsID09PSByb290Lm1lbW9pemVkU3RhdGUgfHxcbiAgICAgICAgICAgICAgICAgIHJvb3QgPT09IGZpbmlzaGVkV29yaykgJiZcbiAgICAgICAgICAgICAgICBudWxsICE9PSByb290LmNoaWxkXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJvb3QuY2hpbGQucmV0dXJuID0gcm9vdDtcbiAgICAgICAgICAgICAgICByb290ID0gcm9vdC5jaGlsZDtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAocm9vdCA9PT0gZmluaXNoZWRXb3JrKSBicmVhayBhO1xuICAgICAgICAgICAgICBmb3IgKDsgbnVsbCA9PT0gcm9vdC5zaWJsaW5nOyApIHtcbiAgICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gcm9vdC5yZXR1cm4gfHwgcm9vdC5yZXR1cm4gPT09IGZpbmlzaGVkV29yaylcbiAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9PT0gcm9vdCAmJiAoY3VycmVudCA9IG51bGwpO1xuICAgICAgICAgICAgICAgIHJvb3QgPSByb290LnJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjdXJyZW50ID09PSByb290ICYmIChjdXJyZW50ID0gbnVsbCk7XG4gICAgICAgICAgICAgIHJvb3Quc2libGluZy5yZXR1cm4gPSByb290LnJldHVybjtcbiAgICAgICAgICAgICAgcm9vdCA9IHJvb3Quc2libGluZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBmbGFncyAmIDQgJiZcbiAgICAgICAgICAgICgoZmxhZ3MgPSBmaW5pc2hlZFdvcmsudXBkYXRlUXVldWUpLFxuICAgICAgICAgICAgbnVsbCAhPT0gZmxhZ3MgJiZcbiAgICAgICAgICAgICAgKChjdXJyZW50ID0gZmxhZ3MucmV0cnlRdWV1ZSksXG4gICAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgICAgICAoKGZsYWdzLnJldHJ5UXVldWUgPSBudWxsKSxcbiAgICAgICAgICAgICAgICBhdHRhY2hTdXNwZW5zZVJldHJ5TGlzdGVuZXJzKGZpbmlzaGVkV29yaywgY3VycmVudCkpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGNvbW1pdFJlY29uY2lsaWF0aW9uRWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGZsYWdzICYgNCAmJlxuICAgICAgICAgICAgKChmbGFncyA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZSksXG4gICAgICAgICAgICBudWxsICE9PSBmbGFncyAmJlxuICAgICAgICAgICAgICAoKGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZSA9IG51bGwpLFxuICAgICAgICAgICAgICBhdHRhY2hTdXNwZW5zZVJldHJ5TGlzdGVuZXJzKGZpbmlzaGVkV29yaywgZmxhZ3MpKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjE6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmspLFxuICAgICAgICAgICAgY29tbWl0UmVjb25jaWxpYXRpb25FZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICB9XG4gICAgICAoZmluaXNoZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJlxuICAgICAgICAwIDw9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJlxuICAgICAgICAwIDw9IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgJiZcbiAgICAgICAgKChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiZcbiAgICAgICAgICBsb2dDb21wb25lbnRFZmZlY3QoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lLFxuICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RHVyYXRpb24sXG4gICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnNcbiAgICAgICAgICApLFxuICAgICAgICBudWxsID09PSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlICYmXG4gICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLnJldHVybiAmJlxuICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5yZXR1cm4uYWx0ZXJuYXRlICYmXG4gICAgICAgICAgMC4wNSA8IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgLSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiZcbiAgICAgICAgICAoaXNIeWRyYXRpbmdQYXJlbnQoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmsucmV0dXJuLmFsdGVybmF0ZSxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yay5yZXR1cm5cbiAgICAgICAgICApIHx8XG4gICAgICAgICAgICBsb2dDb21wb25lbnRUcmlnZ2VyKFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSxcbiAgICAgICAgICAgICAgXCJNb3VudFwiXG4gICAgICAgICAgICApKSk7XG4gICAgICBwb3BDb21wb25lbnRFZmZlY3RTdGFydChwcmV2RWZmZWN0U3RhcnQpO1xuICAgICAgcG9wQ29tcG9uZW50RWZmZWN0RHVyYXRpb24ocHJldkVmZmVjdER1cmF0aW9uKTtcbiAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IHByZXZFZmZlY3RFcnJvcnM7XG4gICAgICBjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlID0gcHJldkVmZmVjdERpZFNwYXduVXBkYXRlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRSZWNvbmNpbGlhdGlvbkVmZmVjdHMoZmluaXNoZWRXb3JrKSB7XG4gICAgICB2YXIgZmxhZ3MgPSBmaW5pc2hlZFdvcmsuZmxhZ3M7XG4gICAgICBpZiAoZmxhZ3MgJiAyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoZmluaXNoZWRXb3JrLCBjb21taXRQbGFjZW1lbnQsIGZpbmlzaGVkV29yayk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgZmluaXNoZWRXb3JrLmZsYWdzICY9IC0zO1xuICAgICAgfVxuICAgICAgZmxhZ3MgJiA0MDk2ICYmIChmaW5pc2hlZFdvcmsuZmxhZ3MgJj0gLTQwOTcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVseVJlc2V0Rm9ybXMocGFyZW50RmliZXIpIHtcbiAgICAgIGlmIChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiAxMDI0KVxuICAgICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApIHtcbiAgICAgICAgICB2YXIgZmliZXIgPSBwYXJlbnRGaWJlcjtcbiAgICAgICAgICByZWN1cnNpdmVseVJlc2V0Rm9ybXMoZmliZXIpO1xuICAgICAgICAgIDUgPT09IGZpYmVyLnRhZyAmJiBmaWJlci5mbGFncyAmIDEwMjQgJiYgZmliZXIuc3RhdGVOb2RlLnJlc2V0KCk7XG4gICAgICAgICAgcGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VMYXlvdXRFZmZlY3RzKHJvb3QsIHBhcmVudEZpYmVyKSB7XG4gICAgICBpZiAocGFyZW50RmliZXIuc3VidHJlZUZsYWdzICYgODc3MilcbiAgICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKVxuICAgICAgICAgIGNvbW1pdExheW91dEVmZmVjdE9uRmliZXIocm9vdCwgcGFyZW50RmliZXIuYWx0ZXJuYXRlLCBwYXJlbnRGaWJlciksXG4gICAgICAgICAgICAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5zaWJsaW5nKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGlzYXBwZWFyTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFdvcmspIHtcbiAgICAgIHZhciBwcmV2RWZmZWN0U3RhcnQgPSBwdXNoQ29tcG9uZW50RWZmZWN0U3RhcnQoKSxcbiAgICAgICAgcHJldkVmZmVjdER1cmF0aW9uID0gcHVzaENvbXBvbmVudEVmZmVjdER1cmF0aW9uKCksXG4gICAgICAgIHByZXZFZmZlY3RFcnJvcnMgPSBwdXNoQ29tcG9uZW50RWZmZWN0RXJyb3JzKCksXG4gICAgICAgIHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZSA9IHB1c2hDb21wb25lbnRFZmZlY3REaWRTcGF3blVwZGF0ZSgpO1xuICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgY2FzZSAxNDpcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICBjb21taXRIb29rTGF5b3V0VW5tb3VudEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmsucmV0dXJuLFxuICAgICAgICAgICAgTGF5b3V0XG4gICAgICAgICAgKTtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGlzYXBwZWFyTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgc2FmZWx5RGV0YWNoUmVmKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgICAgdmFyIGluc3RhbmNlID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsVW5tb3VudCAmJlxuICAgICAgICAgICAgc2FmZWx5Q2FsbENvbXBvbmVudFdpbGxVbm1vdW50KFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yay5yZXR1cm4sXG4gICAgICAgICAgICAgIGluc3RhbmNlXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNhcHBlYXJMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjc6XG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICByZWxlYXNlU2luZ2xldG9uSW5zdGFuY2UsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlXG4gICAgICAgICAgKTtcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHNhZmVseURldGFjaFJlZihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4pO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNhcHBlYXJMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgbnVsbCA9PT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNhcHBlYXJMYXlvdXRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURpc2FwcGVhckxheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGlzYXBwZWFyTGF5b3V0RWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgfVxuICAgICAgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiZcbiAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmXG4gICAgICAgIChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiZcbiAgICAgICAgbG9nQ29tcG9uZW50RWZmZWN0KFxuICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSxcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3REdXJhdGlvbixcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnNcbiAgICAgICAgKTtcbiAgICAgIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCk7XG4gICAgICBwb3BDb21wb25lbnRFZmZlY3REdXJhdGlvbihwcmV2RWZmZWN0RHVyYXRpb24pO1xuICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzID0gcHJldkVmZmVjdEVycm9ycztcbiAgICAgIGNvbXBvbmVudEVmZmVjdFNwYXduZWRVcGRhdGUgPSBwcmV2RWZmZWN0RGlkU3Bhd25VcGRhdGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNhcHBlYXJMYXlvdXRFZmZlY3RzKHBhcmVudEZpYmVyKSB7XG4gICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApXG4gICAgICAgIGRpc2FwcGVhckxheW91dEVmZmVjdHMocGFyZW50RmliZXIpLFxuICAgICAgICAgIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnNpYmxpbmcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWFwcGVhckxheW91dEVmZmVjdHMoXG4gICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICBjdXJyZW50LFxuICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0c1xuICAgICkge1xuICAgICAgdmFyIHByZXZFZmZlY3RTdGFydCA9IHB1c2hDb21wb25lbnRFZmZlY3RTdGFydCgpLFxuICAgICAgICBwcmV2RWZmZWN0RHVyYXRpb24gPSBwdXNoQ29tcG9uZW50RWZmZWN0RHVyYXRpb24oKSxcbiAgICAgICAgcHJldkVmZmVjdEVycm9ycyA9IHB1c2hDb21wb25lbnRFZmZlY3RFcnJvcnMoKSxcbiAgICAgICAgcHJldkVmZmVjdERpZFNwYXduVXBkYXRlID0gcHVzaENvbXBvbmVudEVmZmVjdERpZFNwYXduVXBkYXRlKCksXG4gICAgICAgIGZsYWdzID0gZmluaXNoZWRXb3JrLmZsYWdzO1xuICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVhcHBlYXJMYXlvdXRFZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0c1xuICAgICAgICAgICk7XG4gICAgICAgICAgY29tbWl0SG9va0xheW91dEVmZmVjdHMoZmluaXNoZWRXb3JrLCBMYXlvdXQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgICApO1xuICAgICAgICAgIGN1cnJlbnQgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGN1cnJlbnQuY29tcG9uZW50RGlkTW91bnQgJiZcbiAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGNhbGxDb21wb25lbnREaWRNb3VudEluREVWLFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGN1cnJlbnRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY3VycmVudCA9IGZpbmlzaGVkV29yay51cGRhdGVRdWV1ZTtcbiAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudCkge1xuICAgICAgICAgICAgZmluaXNoZWRSb290ID0gZmluaXNoZWRXb3JrLnN0YXRlTm9kZTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBjb21taXRIaWRkZW5DYWxsYmFja3MsXG4gICAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3RcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzICYmXG4gICAgICAgICAgICBmbGFncyAmIDY0ICYmXG4gICAgICAgICAgICBjb21taXRDbGFzc0NhbGxiYWNrcyhmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIHNhZmVseUF0dGFjaFJlZihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI3OlxuICAgICAgICAgIGNvbW1pdEhvc3RTaW5nbGV0b25BY3F1aXNpdGlvbihmaW5pc2hlZFdvcmspO1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgICApO1xuICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgJiZcbiAgICAgICAgICAgIG51bGwgPT09IGN1cnJlbnQgJiZcbiAgICAgICAgICAgIGZsYWdzICYgNCAmJlxuICAgICAgICAgICAgY29tbWl0SG9zdE1vdW50KGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgc2FmZWx5QXR0YWNoUmVmKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgaWYgKGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgJiYgZmxhZ3MgJiA0KSB7XG4gICAgICAgICAgICBmbGFncyA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTtcbiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoXG4gICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLmVmZmVjdER1cmF0aW9uICs9XG4gICAgICAgICAgICAgIGJ1YmJsZU5lc3RlZEVmZmVjdER1cmF0aW9ucyhmbGFncyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgY29tbWl0UHJvZmlsZXIsXG4gICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICAgICAgY29tbWl0U3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMuZWZmZWN0RHVyYXRpb25cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cyhcbiAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgICApO1xuICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgJiZcbiAgICAgICAgICAgIGZsYWdzICYgNCAmJlxuICAgICAgICAgICAgY29tbWl0QWN0aXZpdHlIeWRyYXRpb25DYWxsYmFja3MoZmluaXNoZWRSb290LCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzICYmXG4gICAgICAgICAgICBmbGFncyAmIDQgJiZcbiAgICAgICAgICAgIGNvbW1pdFN1c3BlbnNlSHlkcmF0aW9uQ2FsbGJhY2tzKGZpbmlzaGVkUm9vdCwgZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICBudWxsID09PSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cyhcbiAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgc2FmZWx5QXR0YWNoUmVmKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzA6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlYXBwZWFyTGF5b3V0RWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiZcbiAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmXG4gICAgICAgIChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiZcbiAgICAgICAgbG9nQ29tcG9uZW50RWZmZWN0KFxuICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSxcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3REdXJhdGlvbixcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnNcbiAgICAgICAgKTtcbiAgICAgIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCk7XG4gICAgICBwb3BDb21wb25lbnRFZmZlY3REdXJhdGlvbihwcmV2RWZmZWN0RHVyYXRpb24pO1xuICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzID0gcHJldkVmZmVjdEVycm9ycztcbiAgICAgIGNvbXBvbmVudEVmZmVjdFNwYXduZWRVcGRhdGUgPSBwcmV2RWZmZWN0RGlkU3Bhd25VcGRhdGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWFwcGVhckxheW91dEVmZmVjdHMoXG4gICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICBwYXJlbnRGaWJlcixcbiAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHNcbiAgICApIHtcbiAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgPVxuICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzICYmIDAgIT09IChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiA4NzcyKTtcbiAgICAgIGZvciAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5jaGlsZDsgbnVsbCAhPT0gcGFyZW50RmliZXI7IClcbiAgICAgICAgcmVhcHBlYXJMYXlvdXRFZmZlY3RzKFxuICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICBwYXJlbnRGaWJlci5hbHRlcm5hdGUsXG4gICAgICAgICAgcGFyZW50RmliZXIsXG4gICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0c1xuICAgICAgICApLFxuICAgICAgICAgIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnNpYmxpbmcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRPZmZzY3JlZW5QYXNzaXZlTW91bnRFZmZlY3RzKGN1cnJlbnQsIGZpbmlzaGVkV29yaykge1xuICAgICAgdmFyIHByZXZpb3VzQ2FjaGUgPSBudWxsO1xuICAgICAgbnVsbCAhPT0gY3VycmVudCAmJlxuICAgICAgICBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUgJiZcbiAgICAgICAgbnVsbCAhPT0gY3VycmVudC5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCAmJlxuICAgICAgICAocHJldmlvdXNDYWNoZSA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCk7XG4gICAgICBjdXJyZW50ID0gbnVsbDtcbiAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbCAmJlxuICAgICAgICAoY3VycmVudCA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlLmNhY2hlUG9vbC5wb29sKTtcbiAgICAgIGN1cnJlbnQgIT09IHByZXZpb3VzQ2FjaGUgJiZcbiAgICAgICAgKG51bGwgIT0gY3VycmVudCAmJiByZXRhaW5DYWNoZShjdXJyZW50KSxcbiAgICAgICAgbnVsbCAhPSBwcmV2aW91c0NhY2hlICYmIHJlbGVhc2VDYWNoZShwcmV2aW91c0NhY2hlKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdENhY2hlUGFzc2l2ZU1vdW50RWZmZWN0KGN1cnJlbnQsIGZpbmlzaGVkV29yaykge1xuICAgICAgY3VycmVudCA9IG51bGw7XG4gICAgICBudWxsICE9PSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlICYmXG4gICAgICAgIChjdXJyZW50ID0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmNhY2hlKTtcbiAgICAgIGZpbmlzaGVkV29yayA9IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlLmNhY2hlO1xuICAgICAgZmluaXNoZWRXb3JrICE9PSBjdXJyZW50ICYmXG4gICAgICAgIChyZXRhaW5DYWNoZShmaW5pc2hlZFdvcmspLCBudWxsICE9IGN1cnJlbnQgJiYgcmVsZWFzZUNhY2hlKGN1cnJlbnQpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVNb3VudEVmZmVjdHMoXG4gICAgICByb290LFxuICAgICAgcGFyZW50RmliZXIsXG4gICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgZW5kVGltZVxuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICBwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiAxMDI1NiB8fFxuICAgICAgICAoMCAhPT0gcGFyZW50RmliZXIuYWN0dWFsRHVyYXRpb24gJiZcbiAgICAgICAgICAobnVsbCA9PT0gcGFyZW50RmliZXIuYWx0ZXJuYXRlIHx8XG4gICAgICAgICAgICBwYXJlbnRGaWJlci5hbHRlcm5hdGUuY2hpbGQgIT09IHBhcmVudEZpYmVyLmNoaWxkKSlcbiAgICAgIClcbiAgICAgICAgZm9yIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLmNoaWxkOyBudWxsICE9PSBwYXJlbnRGaWJlcjsgKSB7XG4gICAgICAgICAgdmFyIG5leHRTaWJsaW5nID0gcGFyZW50RmliZXIuc2libGluZztcbiAgICAgICAgICBjb21taXRQYXNzaXZlTW91bnRPbkZpYmVyKFxuICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgIHBhcmVudEZpYmVyLFxuICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgIG51bGwgIT09IG5leHRTaWJsaW5nID8gbmV4dFNpYmxpbmcuYWN0dWFsU3RhcnRUaW1lIDogZW5kVGltZVxuICAgICAgICAgICk7XG4gICAgICAgICAgcGFyZW50RmliZXIgPSBuZXh0U2libGluZztcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRQYXNzaXZlTW91bnRPbkZpYmVyKFxuICAgICAgZmluaXNoZWRSb290LFxuICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgIGVuZFRpbWVcbiAgICApIHtcbiAgICAgIHZhciBwcmV2RWZmZWN0U3RhcnQgPSBwdXNoQ29tcG9uZW50RWZmZWN0U3RhcnQoKSxcbiAgICAgICAgcHJldkVmZmVjdER1cmF0aW9uID0gcHVzaENvbXBvbmVudEVmZmVjdER1cmF0aW9uKCksXG4gICAgICAgIHByZXZFZmZlY3RFcnJvcnMgPSBwdXNoQ29tcG9uZW50RWZmZWN0RXJyb3JzKCksXG4gICAgICAgIHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZSA9IHB1c2hDb21wb25lbnRFZmZlY3REaWRTcGF3blVwZGF0ZSgpLFxuICAgICAgICBwcmV2RGVlcEVxdWFsaXR5ID0gYWxyZWFkeVdhcm5lZEZvckRlZXBFcXVhbGl0eSxcbiAgICAgICAgZmxhZ3MgPSBmaW5pc2hlZFdvcmsuZmxhZ3M7XG4gICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDExOlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAwIDwgZmluaXNoZWRXb3JrLmFjdHVhbFN0YXJ0VGltZSAmJlxuICAgICAgICAgICAgMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDEpICYmXG4gICAgICAgICAgICBsb2dDb21wb25lbnRSZW5kZXIoXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLmFjdHVhbFN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgZW5kVGltZSxcbiAgICAgICAgICAgICAgaW5IeWRyYXRlZFN1YnRyZWUsXG4gICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlTW91bnRFZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgIGVuZFRpbWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGZsYWdzICYgMjA0OCAmJlxuICAgICAgICAgICAgY29tbWl0SG9va1Bhc3NpdmVNb3VudEVmZmVjdHMoZmluaXNoZWRXb3JrLCBQYXNzaXZlIHwgSGFzRWZmZWN0KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAwIDwgZmluaXNoZWRXb3JrLmFjdHVhbFN0YXJ0VGltZSAmJlxuICAgICAgICAgICAgKDAgIT09IChmaW5pc2hlZFdvcmsuZmxhZ3MgJiAxMjgpXG4gICAgICAgICAgICAgID8gbG9nQ29tcG9uZW50RXJyb3JlZChcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yay5hY3R1YWxTdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgW11cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDEpICYmXG4gICAgICAgICAgICAgICAgbG9nQ29tcG9uZW50UmVuZGVyKFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLmFjdHVhbFN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgIGVuZFRpbWUsXG4gICAgICAgICAgICAgICAgICBpbkh5ZHJhdGVkU3VidHJlZSxcbiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVNb3VudEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgICAgICAgZW5kVGltZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICB2YXIgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPSBwdXNoTmVzdGVkRWZmZWN0RHVyYXRpb25zKCksXG4gICAgICAgICAgICB3YXNJbkh5ZHJhdGVkU3VidHJlZSA9IGluSHlkcmF0ZWRTdWJ0cmVlO1xuICAgICAgICAgIGluSHlkcmF0ZWRTdWJ0cmVlID1cbiAgICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5hbHRlcm5hdGUgJiZcbiAgICAgICAgICAgIGZpbmlzaGVkV29yay5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQgJiZcbiAgICAgICAgICAgIDAgPT09IChmaW5pc2hlZFdvcmsuZmxhZ3MgJiAyNTYpO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlTW91bnRFZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgIGVuZFRpbWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGluSHlkcmF0ZWRTdWJ0cmVlID0gd2FzSW5IeWRyYXRlZFN1YnRyZWU7XG4gICAgICAgICAgZmxhZ3MgJiAyMDQ4ICYmXG4gICAgICAgICAgICAoKGNvbW1pdHRlZExhbmVzID0gbnVsbCksXG4gICAgICAgICAgICBudWxsICE9PSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlICYmXG4gICAgICAgICAgICAgIChjb21taXR0ZWRMYW5lcyA9IGZpbmlzaGVkV29yay5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5jYWNoZSksXG4gICAgICAgICAgICAoY29tbWl0dGVkVHJhbnNpdGlvbnMgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZS5jYWNoZSksXG4gICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyAhPT0gY29tbWl0dGVkTGFuZXMgJiZcbiAgICAgICAgICAgICAgKHJldGFpbkNhY2hlKGNvbW1pdHRlZFRyYW5zaXRpb25zKSxcbiAgICAgICAgICAgICAgbnVsbCAhPSBjb21taXR0ZWRMYW5lcyAmJiByZWxlYXNlQ2FjaGUoY29tbWl0dGVkTGFuZXMpKSk7XG4gICAgICAgICAgZmluaXNoZWRSb290LnBhc3NpdmVFZmZlY3REdXJhdGlvbiArPSBwb3BOZXN0ZWRFZmZlY3REdXJhdGlvbnMoXG4gICAgICAgICAgICBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvblxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgaWYgKGZsYWdzICYgMjA0OCkge1xuICAgICAgICAgICAgZmxhZ3MgPSBwdXNoTmVzdGVkRWZmZWN0RHVyYXRpb25zKCk7XG4gICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgICAgZW5kVGltZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QucGFzc2l2ZUVmZmVjdER1cmF0aW9uICs9XG4gICAgICAgICAgICAgIGJ1YmJsZU5lc3RlZEVmZmVjdER1cmF0aW9ucyhmbGFncyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgY29tbWl0UHJvZmlsZXJQb3N0Q29tbWl0SW1wbCxcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLmFsdGVybmF0ZSxcbiAgICAgICAgICAgICAgICBjb21taXRTdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgZmluaXNoZWRSb290LnBhc3NpdmVFZmZlY3REdXJhdGlvblxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFdvcmsucmV0dXJuLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgICAgZW5kVGltZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAzMTpcbiAgICAgICAgICBmbGFncyA9IGluSHlkcmF0ZWRTdWJ0cmVlO1xuICAgICAgICAgIHByZXZQcm9maWxlckVmZmVjdER1cmF0aW9uID1cbiAgICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5hbHRlcm5hdGVcbiAgICAgICAgICAgICAgPyBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlLm1lbW9pemVkU3RhdGVcbiAgICAgICAgICAgICAgOiBudWxsO1xuICAgICAgICAgIHdhc0luSHlkcmF0ZWRTdWJ0cmVlID0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGU7XG4gICAgICAgICAgbnVsbCAhPT0gcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gJiYgbnVsbCA9PT0gd2FzSW5IeWRyYXRlZFN1YnRyZWVcbiAgICAgICAgICAgID8gKCh3YXNJbkh5ZHJhdGVkU3VidHJlZSA9IGZpbmlzaGVkV29yay5kZWxldGlvbnMpLFxuICAgICAgICAgICAgICBudWxsICE9PSB3YXNJbkh5ZHJhdGVkU3VidHJlZSAmJlxuICAgICAgICAgICAgICAwIDwgd2FzSW5IeWRyYXRlZFN1YnRyZWUubGVuZ3RoICYmXG4gICAgICAgICAgICAgIDE4ID09PSB3YXNJbkh5ZHJhdGVkU3VidHJlZVswXS50YWdcbiAgICAgICAgICAgICAgICA/ICgoaW5IeWRyYXRlZFN1YnRyZWUgPSAhMSksXG4gICAgICAgICAgICAgICAgICAocHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPVxuICAgICAgICAgICAgICAgICAgICBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbi5oeWRyYXRpb25FcnJvcnMpLFxuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgbG9nQ29tcG9uZW50RXJyb3JlZChcbiAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLmFjdHVhbFN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHByZXZQcm9maWxlckVmZmVjdER1cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICkpXG4gICAgICAgICAgICAgICAgOiAoaW5IeWRyYXRlZFN1YnRyZWUgPSAhMCkpXG4gICAgICAgICAgICA6IChpbkh5ZHJhdGVkU3VidHJlZSA9ICExKTtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsXG4gICAgICAgICAgICBlbmRUaW1lXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpbkh5ZHJhdGVkU3VidHJlZSA9IGZsYWdzO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIGZsYWdzID0gaW5IeWRyYXRlZFN1YnRyZWU7XG4gICAgICAgICAgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPVxuICAgICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZVxuICAgICAgICAgICAgICA/IGZpbmlzaGVkV29yay5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZVxuICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgd2FzSW5IeWRyYXRlZFN1YnRyZWUgPSBmaW5pc2hlZFdvcmsubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICBudWxsID09PSBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbiB8fFxuICAgICAgICAgIG51bGwgPT09IHByZXZQcm9maWxlckVmZmVjdER1cmF0aW9uLmRlaHlkcmF0ZWQgfHxcbiAgICAgICAgICAobnVsbCAhPT0gd2FzSW5IeWRyYXRlZFN1YnRyZWUgJiZcbiAgICAgICAgICAgIG51bGwgIT09IHdhc0luSHlkcmF0ZWRTdWJ0cmVlLmRlaHlkcmF0ZWQpXG4gICAgICAgICAgICA/IChpbkh5ZHJhdGVkU3VidHJlZSA9ICExKVxuICAgICAgICAgICAgOiAoKHdhc0luSHlkcmF0ZWRTdWJ0cmVlID0gZmluaXNoZWRXb3JrLmRlbGV0aW9ucyksXG4gICAgICAgICAgICAgIG51bGwgIT09IHdhc0luSHlkcmF0ZWRTdWJ0cmVlICYmXG4gICAgICAgICAgICAgIDAgPCB3YXNJbkh5ZHJhdGVkU3VidHJlZS5sZW5ndGggJiZcbiAgICAgICAgICAgICAgMTggPT09IHdhc0luSHlkcmF0ZWRTdWJ0cmVlWzBdLnRhZ1xuICAgICAgICAgICAgICAgID8gKChpbkh5ZHJhdGVkU3VidHJlZSA9ICExKSxcbiAgICAgICAgICAgICAgICAgIChwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbiA9XG4gICAgICAgICAgICAgICAgICAgIHByZXZQcm9maWxlckVmZmVjdER1cmF0aW9uLmh5ZHJhdGlvbkVycm9ycyksXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbiAmJlxuICAgICAgICAgICAgICAgICAgICBsb2dDb21wb25lbnRFcnJvcmVkKFxuICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICA6IChpbkh5ZHJhdGVkU3VidHJlZSA9ICEwKSk7XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVNb3VudEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgICAgICAgZW5kVGltZVxuICAgICAgICAgICk7XG4gICAgICAgICAgaW5IeWRyYXRlZFN1YnRyZWUgPSBmbGFncztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMzpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICB3YXNJbkh5ZHJhdGVkU3VidHJlZSA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlO1xuICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlXG4gICAgICAgICAgICA/IHdhc0luSHlkcmF0ZWRTdWJ0cmVlLl92aXNpYmlsaXR5ICZcbiAgICAgICAgICAgICAgT2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWRcbiAgICAgICAgICAgICAgPyByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsXG4gICAgICAgICAgICAgICAgICBlbmRUaW1lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IHJlY3Vyc2l2ZWx5VHJhdmVyc2VBdG9taWNQYXNzaXZlRWZmZWN0cyhcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsXG4gICAgICAgICAgICAgICAgICBlbmRUaW1lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiB3YXNJbkh5ZHJhdGVkU3VidHJlZS5fdmlzaWJpbGl0eSAmXG4gICAgICAgICAgICAgICAgT2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWRcbiAgICAgICAgICAgICAgPyByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZU1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsXG4gICAgICAgICAgICAgICAgICBlbmRUaW1lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6ICgod2FzSW5IeWRyYXRlZFN1YnRyZWUuX3Zpc2liaWxpdHkgfD1cbiAgICAgICAgICAgICAgICAgIE9mZnNjcmVlblBhc3NpdmVFZmZlY3RzQ29ubmVjdGVkKSxcbiAgICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgICAgICAgICAgICAgMCAhPT0gKGZpbmlzaGVkV29yay5zdWJ0cmVlRmxhZ3MgJiAxMDI1NikgfHxcbiAgICAgICAgICAgICAgICAgICAgKDAgIT09IGZpbmlzaGVkV29yay5hY3R1YWxEdXJhdGlvbiAmJlxuICAgICAgICAgICAgICAgICAgICAgIChudWxsID09PSBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlLmNoaWxkICE9PSBmaW5pc2hlZFdvcmsuY2hpbGQpKSxcbiAgICAgICAgICAgICAgICAgIGVuZFRpbWVcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSA9PT0gTm9Nb2RlIHx8XG4gICAgICAgICAgICAgICAgICBpbkh5ZHJhdGVkU3VidHJlZSB8fFxuICAgICAgICAgICAgICAgICAgKChmaW5pc2hlZFJvb3QgPSBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lKSxcbiAgICAgICAgICAgICAgICAgIDAgPD0gZmluaXNoZWRSb290ICYmXG4gICAgICAgICAgICAgICAgICAgIDAuMDUgPCBlbmRUaW1lIC0gZmluaXNoZWRSb290ICYmXG4gICAgICAgICAgICAgICAgICAgIGxvZ0NvbXBvbmVudFJlYXBwZWFyZWQoZmluaXNoZWRXb3JrLCBmaW5pc2hlZFJvb3QsIGVuZFRpbWUpLFxuICAgICAgICAgICAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmXG4gICAgICAgICAgICAgICAgICAgIDAuMDUgPCBjb21wb25lbnRFZmZlY3RFbmRUaW1lIC0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmXG4gICAgICAgICAgICAgICAgICAgIGxvZ0NvbXBvbmVudFJlYXBwZWFyZWQoXG4gICAgICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lXG4gICAgICAgICAgICAgICAgICAgICkpKTtcbiAgICAgICAgICBmbGFncyAmIDIwNDggJiZcbiAgICAgICAgICAgIGNvbW1pdE9mZnNjcmVlblBhc3NpdmVNb3VudEVmZmVjdHMoXG4gICAgICAgICAgICAgIHByZXZQcm9maWxlckVmZmVjdER1cmF0aW9uLFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmtcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVNb3VudEVmZmVjdHMoXG4gICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgICAgICAgZW5kVGltZVxuICAgICAgICAgICk7XG4gICAgICAgICAgZmxhZ3MgJiAyMDQ4ICYmXG4gICAgICAgICAgICBjb21taXRDYWNoZVBhc3NpdmVNb3VudEVmZmVjdChmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlLCBmaW5pc2hlZFdvcmspO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlTW91bnRFZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgIGVuZFRpbWVcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAoZmluaXNoZWRSb290ID1cbiAgICAgICAgICAgICFpbkh5ZHJhdGVkU3VidHJlZSAmJlxuICAgICAgICAgICAgbnVsbCA9PT0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZSAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLnJldHVybiAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLnJldHVybi5hbHRlcm5hdGUpXG4gICAgICAgIClcbiAgICAgICAgICAoY29tbWl0dGVkTGFuZXMgPSBmaW5pc2hlZFdvcmsuYWN0dWFsU3RhcnRUaW1lKSxcbiAgICAgICAgICAgIDAgPD0gY29tbWl0dGVkTGFuZXMgJiZcbiAgICAgICAgICAgICAgMC4wNSA8IGVuZFRpbWUgLSBjb21taXR0ZWRMYW5lcyAmJlxuICAgICAgICAgICAgICBsb2dDb21wb25lbnRUcmlnZ2VyKFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgIFwiTW91bnRcIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAwIDw9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJlxuICAgICAgICAgIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJlxuICAgICAgICAgICgoY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSB8fCAwLjA1IDwgY29tcG9uZW50RWZmZWN0RHVyYXRpb24pICYmXG4gICAgICAgICAgICBsb2dDb21wb25lbnRFZmZlY3QoXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLFxuICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lLFxuICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3REdXJhdGlvbixcbiAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzXG4gICAgICAgICAgICApLFxuICAgICAgICAgIGZpbmlzaGVkUm9vdCAmJlxuICAgICAgICAgICAgMC4wNSA8IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgLSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiZcbiAgICAgICAgICAgIGxvZ0NvbXBvbmVudFRyaWdnZXIoXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLFxuICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lLFxuICAgICAgICAgICAgICBcIk1vdW50XCJcbiAgICAgICAgICAgICkpO1xuICAgICAgfVxuICAgICAgcG9wQ29tcG9uZW50RWZmZWN0U3RhcnQocHJldkVmZmVjdFN0YXJ0KTtcbiAgICAgIHBvcENvbXBvbmVudEVmZmVjdER1cmF0aW9uKHByZXZFZmZlY3REdXJhdGlvbik7XG4gICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnMgPSBwcmV2RWZmZWN0RXJyb3JzO1xuICAgICAgY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSA9IHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZTtcbiAgICAgIGFscmVhZHlXYXJuZWRGb3JEZWVwRXF1YWxpdHkgPSBwcmV2RGVlcEVxdWFsaXR5O1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoXG4gICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICBwYXJlbnRGaWJlcixcbiAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsXG4gICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLFxuICAgICAgZW5kVGltZVxuICAgICkge1xuICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyA9XG4gICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgJiZcbiAgICAgICAgKDAgIT09IChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiAxMDI1NikgfHxcbiAgICAgICAgICAoMCAhPT0gcGFyZW50RmliZXIuYWN0dWFsRHVyYXRpb24gJiZcbiAgICAgICAgICAgIChudWxsID09PSBwYXJlbnRGaWJlci5hbHRlcm5hdGUgfHxcbiAgICAgICAgICAgICAgcGFyZW50RmliZXIuYWx0ZXJuYXRlLmNoaWxkICE9PSBwYXJlbnRGaWJlci5jaGlsZCkpKTtcbiAgICAgIGZvciAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5jaGlsZDsgbnVsbCAhPT0gcGFyZW50RmliZXI7ICkge1xuICAgICAgICB2YXIgbmV4dFNpYmxpbmcgPSBwYXJlbnRGaWJlci5zaWJsaW5nO1xuICAgICAgICByZWNvbm5lY3RQYXNzaXZlRWZmZWN0cyhcbiAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgcGFyZW50RmliZXIsXG4gICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsXG4gICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyxcbiAgICAgICAgICBudWxsICE9PSBuZXh0U2libGluZyA/IG5leHRTaWJsaW5nLmFjdHVhbFN0YXJ0VGltZSA6IGVuZFRpbWVcbiAgICAgICAgKTtcbiAgICAgICAgcGFyZW50RmliZXIgPSBuZXh0U2libGluZztcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gcmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoXG4gICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICBmaW5pc2hlZFdvcmssXG4gICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyxcbiAgICAgIGVuZFRpbWVcbiAgICApIHtcbiAgICAgIHZhciBwcmV2RWZmZWN0U3RhcnQgPSBwdXNoQ29tcG9uZW50RWZmZWN0U3RhcnQoKSxcbiAgICAgICAgcHJldkVmZmVjdER1cmF0aW9uID0gcHVzaENvbXBvbmVudEVmZmVjdER1cmF0aW9uKCksXG4gICAgICAgIHByZXZFZmZlY3RFcnJvcnMgPSBwdXNoQ29tcG9uZW50RWZmZWN0RXJyb3JzKCksXG4gICAgICAgIHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZSA9IHB1c2hDb21wb25lbnRFZmZlY3REaWRTcGF3blVwZGF0ZSgpLFxuICAgICAgICBwcmV2RGVlcEVxdWFsaXR5ID0gYWxyZWFkeVdhcm5lZEZvckRlZXBFcXVhbGl0eTtcbiAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMgJiZcbiAgICAgICAgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgMCA8IGZpbmlzaGVkV29yay5hY3R1YWxTdGFydFRpbWUgJiZcbiAgICAgICAgMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDEpICYmXG4gICAgICAgIGxvZ0NvbXBvbmVudFJlbmRlcihcbiAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgZmluaXNoZWRXb3JrLmFjdHVhbFN0YXJ0VGltZSxcbiAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgIGluSHlkcmF0ZWRTdWJ0cmVlLFxuICAgICAgICAgIGNvbW1pdHRlZExhbmVzXG4gICAgICAgICk7XG4gICAgICB2YXIgZmxhZ3MgPSBmaW5pc2hlZFdvcmsuZmxhZ3M7XG4gICAgICBzd2l0Y2ggKGZpbmlzaGVkV29yay50YWcpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICBjYXNlIDExOlxuICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VSZWNvbm5lY3RQYXNzaXZlRWZmZWN0cyhcbiAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsXG4gICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLFxuICAgICAgICAgICAgZW5kVGltZVxuICAgICAgICAgICk7XG4gICAgICAgICAgY29tbWl0SG9va1Bhc3NpdmVNb3VudEVmZmVjdHMoZmluaXNoZWRXb3JrLCBQYXNzaXZlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMzpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICB2YXIgX2luc3RhbmNlMiA9IGZpbmlzaGVkV29yay5zdGF0ZU5vZGU7XG4gICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLm1lbW9pemVkU3RhdGVcbiAgICAgICAgICAgID8gX2luc3RhbmNlMi5fdmlzaWJpbGl0eSAmIE9mZnNjcmVlblBhc3NpdmVFZmZlY3RzQ29ubmVjdGVkXG4gICAgICAgICAgICAgID8gcmVjdXJzaXZlbHlUcmF2ZXJzZVJlY29ubmVjdFBhc3NpdmVFZmZlY3RzKFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMsXG4gICAgICAgICAgICAgICAgICBlbmRUaW1lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IHJlY3Vyc2l2ZWx5VHJhdmVyc2VBdG9taWNQYXNzaXZlRWZmZWN0cyhcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkUm9vdCxcbiAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsXG4gICAgICAgICAgICAgICAgICBlbmRUaW1lXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiAoKF9pbnN0YW5jZTIuX3Zpc2liaWxpdHkgfD0gT2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWQpLFxuICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMoXG4gICAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzLFxuICAgICAgICAgICAgICAgIGVuZFRpbWVcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgaW5jbHVkZVdvcmtJblByb2dyZXNzRWZmZWN0cyAmJlxuICAgICAgICAgICAgZmxhZ3MgJiAyMDQ4ICYmXG4gICAgICAgICAgICBjb21taXRPZmZzY3JlZW5QYXNzaXZlTW91bnRFZmZlY3RzKFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsuYWx0ZXJuYXRlLFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmtcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlY29ubmVjdFBhc3NpdmVFZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMsXG4gICAgICAgICAgICBlbmRUaW1lXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpbmNsdWRlV29ya0luUHJvZ3Jlc3NFZmZlY3RzICYmXG4gICAgICAgICAgICBmbGFncyAmIDIwNDggJiZcbiAgICAgICAgICAgIGNvbW1pdENhY2hlUGFzc2l2ZU1vdW50RWZmZWN0KGZpbmlzaGVkV29yay5hbHRlcm5hdGUsIGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVJlY29ubmVjdFBhc3NpdmVFZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgIGluY2x1ZGVXb3JrSW5Qcm9ncmVzc0VmZmVjdHMsXG4gICAgICAgICAgICBlbmRUaW1lXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmXG4gICAgICAgIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJlxuICAgICAgICAoY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSB8fCAwLjA1IDwgY29tcG9uZW50RWZmZWN0RHVyYXRpb24pICYmXG4gICAgICAgIGxvZ0NvbXBvbmVudEVmZmVjdChcbiAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLFxuICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVuZFRpbWUsXG4gICAgICAgICAgY29tcG9uZW50RWZmZWN0RHVyYXRpb24sXG4gICAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzXG4gICAgICAgICk7XG4gICAgICBwb3BDb21wb25lbnRFZmZlY3RTdGFydChwcmV2RWZmZWN0U3RhcnQpO1xuICAgICAgcG9wQ29tcG9uZW50RWZmZWN0RHVyYXRpb24ocHJldkVmZmVjdER1cmF0aW9uKTtcbiAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IHByZXZFZmZlY3RFcnJvcnM7XG4gICAgICBjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlID0gcHJldkVmZmVjdERpZFNwYXduVXBkYXRlO1xuICAgICAgYWxyZWFkeVdhcm5lZEZvckRlZXBFcXVhbGl0eSA9IHByZXZEZWVwRXF1YWxpdHk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VBdG9taWNQYXNzaXZlRWZmZWN0cyhcbiAgICAgIGZpbmlzaGVkUm9vdCRqc2NvbXAkMCxcbiAgICAgIHBhcmVudEZpYmVyLFxuICAgICAgY29tbWl0dGVkTGFuZXMkanNjb21wJDAsXG4gICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyRqc2NvbXAkMCxcbiAgICAgIGVuZFRpbWUkanNjb21wJDBcbiAgICApIHtcbiAgICAgIGlmIChcbiAgICAgICAgcGFyZW50RmliZXIuc3VidHJlZUZsYWdzICYgMTAyNTYgfHxcbiAgICAgICAgKDAgIT09IHBhcmVudEZpYmVyLmFjdHVhbER1cmF0aW9uICYmXG4gICAgICAgICAgKG51bGwgPT09IHBhcmVudEZpYmVyLmFsdGVybmF0ZSB8fFxuICAgICAgICAgICAgcGFyZW50RmliZXIuYWx0ZXJuYXRlLmNoaWxkICE9PSBwYXJlbnRGaWJlci5jaGlsZCkpXG4gICAgICApXG4gICAgICAgIGZvciAodmFyIGNoaWxkID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IGNoaWxkOyApIHtcbiAgICAgICAgICBwYXJlbnRGaWJlciA9IGNoaWxkLnNpYmxpbmc7XG4gICAgICAgICAgdmFyIGZpbmlzaGVkUm9vdCA9IGZpbmlzaGVkUm9vdCRqc2NvbXAkMCxcbiAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzID0gY29tbWl0dGVkTGFuZXMkanNjb21wJDAsXG4gICAgICAgICAgICBjb21taXR0ZWRUcmFuc2l0aW9ucyA9IGNvbW1pdHRlZFRyYW5zaXRpb25zJGpzY29tcCQwLFxuICAgICAgICAgICAgZW5kVGltZSA9XG4gICAgICAgICAgICAgIG51bGwgIT09IHBhcmVudEZpYmVyXG4gICAgICAgICAgICAgICAgPyBwYXJlbnRGaWJlci5hY3R1YWxTdGFydFRpbWVcbiAgICAgICAgICAgICAgICA6IGVuZFRpbWUkanNjb21wJDAsXG4gICAgICAgICAgICBwcmV2RGVlcEVxdWFsaXR5ID0gYWxyZWFkeVdhcm5lZEZvckRlZXBFcXVhbGl0eTtcbiAgICAgICAgICAoY2hpbGQubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAwIDwgY2hpbGQuYWN0dWFsU3RhcnRUaW1lICYmXG4gICAgICAgICAgICAwICE9PSAoY2hpbGQuZmxhZ3MgJiAxKSAmJlxuICAgICAgICAgICAgbG9nQ29tcG9uZW50UmVuZGVyKFxuICAgICAgICAgICAgICBjaGlsZCxcbiAgICAgICAgICAgICAgY2hpbGQuYWN0dWFsU3RhcnRUaW1lLFxuICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICBpbkh5ZHJhdGVkU3VidHJlZSxcbiAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXNcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdmFyIGZsYWdzID0gY2hpbGQuZmxhZ3M7XG4gICAgICAgICAgc3dpdGNoIChjaGlsZC50YWcpIHtcbiAgICAgICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VBdG9taWNQYXNzaXZlRWZmZWN0cyhcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgICAgY2hpbGQsXG4gICAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsXG4gICAgICAgICAgICAgICAgZW5kVGltZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBmbGFncyAmIDIwNDggJiZcbiAgICAgICAgICAgICAgICBjb21taXRPZmZzY3JlZW5QYXNzaXZlTW91bnRFZmZlY3RzKGNoaWxkLmFsdGVybmF0ZSwgY2hpbGQpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VBdG9taWNQYXNzaXZlRWZmZWN0cyhcbiAgICAgICAgICAgICAgICBmaW5pc2hlZFJvb3QsXG4gICAgICAgICAgICAgICAgY2hpbGQsXG4gICAgICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICAgICAgY29tbWl0dGVkVHJhbnNpdGlvbnMsXG4gICAgICAgICAgICAgICAgZW5kVGltZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBmbGFncyAmIDIwNDggJiZcbiAgICAgICAgICAgICAgICBjb21taXRDYWNoZVBhc3NpdmVNb3VudEVmZmVjdChjaGlsZC5hbHRlcm5hdGUsIGNoaWxkKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlQXRvbWljUGFzc2l2ZUVmZmVjdHMoXG4gICAgICAgICAgICAgICAgZmluaXNoZWRSb290LFxuICAgICAgICAgICAgICAgIGNoaWxkLFxuICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgICAgIGNvbW1pdHRlZFRyYW5zaXRpb25zLFxuICAgICAgICAgICAgICAgIGVuZFRpbWVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYWxyZWFkeVdhcm5lZEZvckRlZXBFcXVhbGl0eSA9IHByZXZEZWVwRXF1YWxpdHk7XG4gICAgICAgICAgY2hpbGQgPSBwYXJlbnRGaWJlcjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVseUFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXQoXG4gICAgICBwYXJlbnRGaWJlcixcbiAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgc3VzcGVuZGVkU3RhdGVcbiAgICApIHtcbiAgICAgIGlmIChwYXJlbnRGaWJlci5zdWJ0cmVlRmxhZ3MgJiBzdXNwZW5zZXlDb21taXRGbGFnKVxuICAgICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApXG4gICAgICAgICAgYWNjdW11bGF0ZVN1c3BlbnNleUNvbW1pdE9uRmliZXIoXG4gICAgICAgICAgICBwYXJlbnRGaWJlcixcbiAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgc3VzcGVuZGVkU3RhdGVcbiAgICAgICAgICApLFxuICAgICAgICAgICAgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuc2libGluZyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXRPbkZpYmVyKFxuICAgICAgZmliZXIsXG4gICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgIHN1c3BlbmRlZFN0YXRlXG4gICAgKSB7XG4gICAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgICBjYXNlIDI2OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5QWNjdW11bGF0ZVN1c3BlbnNleUNvbW1pdChcbiAgICAgICAgICAgIGZpYmVyLFxuICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICBzdXNwZW5kZWRTdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgICAgZmliZXIuZmxhZ3MgJiBzdXNwZW5zZXlDb21taXRGbGFnICYmXG4gICAgICAgICAgICBudWxsICE9PSBmaWJlci5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgICAgICBzdXNwZW5kUmVzb3VyY2UoXG4gICAgICAgICAgICAgIHN1c3BlbmRlZFN0YXRlLFxuICAgICAgICAgICAgICBjdXJyZW50SG9pc3RhYmxlUm9vdCxcbiAgICAgICAgICAgICAgZmliZXIubWVtb2l6ZWRTdGF0ZSxcbiAgICAgICAgICAgICAgZmliZXIubWVtb2l6ZWRQcm9wc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHJlY3Vyc2l2ZWx5QWNjdW11bGF0ZVN1c3BlbnNleUNvbW1pdChcbiAgICAgICAgICAgIGZpYmVyLFxuICAgICAgICAgICAgY29tbWl0dGVkTGFuZXMsXG4gICAgICAgICAgICBzdXNwZW5kZWRTdGF0ZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHZhciBwcmV2aW91c0hvaXN0YWJsZVJvb3QgPSBjdXJyZW50SG9pc3RhYmxlUm9vdDtcbiAgICAgICAgICBjdXJyZW50SG9pc3RhYmxlUm9vdCA9IGdldEhvaXN0YWJsZVJvb3QoXG4gICAgICAgICAgICBmaWJlci5zdGF0ZU5vZGUuY29udGFpbmVySW5mb1xuICAgICAgICAgICk7XG4gICAgICAgICAgcmVjdXJzaXZlbHlBY2N1bXVsYXRlU3VzcGVuc2V5Q29tbWl0KFxuICAgICAgICAgICAgZmliZXIsXG4gICAgICAgICAgICBjb21taXR0ZWRMYW5lcyxcbiAgICAgICAgICAgIHN1c3BlbmRlZFN0YXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjdXJyZW50SG9pc3RhYmxlUm9vdCA9IHByZXZpb3VzSG9pc3RhYmxlUm9vdDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICBudWxsID09PSBmaWJlci5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgICAgICAoKHByZXZpb3VzSG9pc3RhYmxlUm9vdCA9IGZpYmVyLmFsdGVybmF0ZSksXG4gICAgICAgICAgICBudWxsICE9PSBwcmV2aW91c0hvaXN0YWJsZVJvb3QgJiZcbiAgICAgICAgICAgIG51bGwgIT09IHByZXZpb3VzSG9pc3RhYmxlUm9vdC5tZW1vaXplZFN0YXRlXG4gICAgICAgICAgICAgID8gKChwcmV2aW91c0hvaXN0YWJsZVJvb3QgPSBzdXNwZW5zZXlDb21taXRGbGFnKSxcbiAgICAgICAgICAgICAgICAoc3VzcGVuc2V5Q29tbWl0RmxhZyA9IDE2Nzc3MjE2KSxcbiAgICAgICAgICAgICAgICByZWN1cnNpdmVseUFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXQoXG4gICAgICAgICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgICAgICAgc3VzcGVuZGVkU3RhdGVcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIChzdXNwZW5zZXlDb21taXRGbGFnID0gcHJldmlvdXNIb2lzdGFibGVSb290KSlcbiAgICAgICAgICAgICAgOiByZWN1cnNpdmVseUFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXQoXG4gICAgICAgICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgICAgICAgc3VzcGVuZGVkU3RhdGVcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZWN1cnNpdmVseUFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXQoXG4gICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgIGNvbW1pdHRlZExhbmVzLFxuICAgICAgICAgICAgc3VzcGVuZGVkU3RhdGVcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkZXRhY2hBbHRlcm5hdGVTaWJsaW5ncyhwYXJlbnRGaWJlcikge1xuICAgICAgdmFyIHByZXZpb3VzRmliZXIgPSBwYXJlbnRGaWJlci5hbHRlcm5hdGU7XG4gICAgICBpZiAoXG4gICAgICAgIG51bGwgIT09IHByZXZpb3VzRmliZXIgJiZcbiAgICAgICAgKChwYXJlbnRGaWJlciA9IHByZXZpb3VzRmliZXIuY2hpbGQpLCBudWxsICE9PSBwYXJlbnRGaWJlcilcbiAgICAgICkge1xuICAgICAgICBwcmV2aW91c0ZpYmVyLmNoaWxkID0gbnVsbDtcbiAgICAgICAgZG9cbiAgICAgICAgICAocHJldmlvdXNGaWJlciA9IHBhcmVudEZpYmVyLnNpYmxpbmcpLFxuICAgICAgICAgICAgKHBhcmVudEZpYmVyLnNpYmxpbmcgPSBudWxsKSxcbiAgICAgICAgICAgIChwYXJlbnRGaWJlciA9IHByZXZpb3VzRmliZXIpO1xuICAgICAgICB3aGlsZSAobnVsbCAhPT0gcGFyZW50RmliZXIpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZVVubW91bnRFZmZlY3RzKHBhcmVudEZpYmVyKSB7XG4gICAgICB2YXIgZGVsZXRpb25zID0gcGFyZW50RmliZXIuZGVsZXRpb25zO1xuICAgICAgaWYgKDAgIT09IChwYXJlbnRGaWJlci5mbGFncyAmIDE2KSkge1xuICAgICAgICBpZiAobnVsbCAhPT0gZGVsZXRpb25zKVxuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVsZXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgY2hpbGRUb0RlbGV0ZSA9IGRlbGV0aW9uc1tpXSxcbiAgICAgICAgICAgICAgcHJldkVmZmVjdFN0YXJ0ID0gcHVzaENvbXBvbmVudEVmZmVjdFN0YXJ0KCk7XG4gICAgICAgICAgICBuZXh0RWZmZWN0ID0gY2hpbGRUb0RlbGV0ZTtcbiAgICAgICAgICAgIGNvbW1pdFBhc3NpdmVVbm1vdW50RWZmZWN0c0luc2lkZU9mRGVsZXRlZFRyZWVfYmVnaW4oXG4gICAgICAgICAgICAgIGNoaWxkVG9EZWxldGUsXG4gICAgICAgICAgICAgIHBhcmVudEZpYmVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgKGNoaWxkVG9EZWxldGUubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAgIDAgPD0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmXG4gICAgICAgICAgICAgIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJlxuICAgICAgICAgICAgICAwLjA1IDwgY29tcG9uZW50RWZmZWN0RW5kVGltZSAtIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJlxuICAgICAgICAgICAgICBsb2dDb21wb25lbnRUcmlnZ2VyKFxuICAgICAgICAgICAgICAgIGNoaWxkVG9EZWxldGUsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdEVuZFRpbWUsXG4gICAgICAgICAgICAgICAgXCJVbm1vdW50XCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCk7XG4gICAgICAgICAgfVxuICAgICAgICBkZXRhY2hBbHRlcm5hdGVTaWJsaW5ncyhwYXJlbnRGaWJlcik7XG4gICAgICB9XG4gICAgICBpZiAocGFyZW50RmliZXIuc3VidHJlZUZsYWdzICYgMTAyNTYpXG4gICAgICAgIGZvciAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5jaGlsZDsgbnVsbCAhPT0gcGFyZW50RmliZXI7IClcbiAgICAgICAgICBjb21taXRQYXNzaXZlVW5tb3VudE9uRmliZXIocGFyZW50RmliZXIpLFxuICAgICAgICAgICAgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuc2libGluZyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVVbm1vdW50T25GaWJlcihmaW5pc2hlZFdvcmspIHtcbiAgICAgIHZhciBwcmV2RWZmZWN0U3RhcnQgPSBwdXNoQ29tcG9uZW50RWZmZWN0U3RhcnQoKSxcbiAgICAgICAgcHJldkVmZmVjdER1cmF0aW9uID0gcHVzaENvbXBvbmVudEVmZmVjdER1cmF0aW9uKCksXG4gICAgICAgIHByZXZFZmZlY3RFcnJvcnMgPSBwdXNoQ29tcG9uZW50RWZmZWN0RXJyb3JzKCksXG4gICAgICAgIHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZSA9IHB1c2hDb21wb25lbnRFZmZlY3REaWRTcGF3blVwZGF0ZSgpO1xuICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZVVubW91bnRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmluaXNoZWRXb3JrLmZsYWdzICYgMjA0OCAmJlxuICAgICAgICAgICAgY29tbWl0SG9va1Bhc3NpdmVVbm1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICBmaW5pc2hlZFdvcmsucmV0dXJuLFxuICAgICAgICAgICAgICBQYXNzaXZlIHwgSGFzRWZmZWN0XG4gICAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgdmFyIHByZXZQcm9maWxlckVmZmVjdER1cmF0aW9uID0gcHVzaE5lc3RlZEVmZmVjdER1cmF0aW9ucygpO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VQYXNzaXZlVW5tb3VudEVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlLnBhc3NpdmVFZmZlY3REdXJhdGlvbiArPVxuICAgICAgICAgICAgcG9wTmVzdGVkRWZmZWN0RHVyYXRpb25zKHByZXZQcm9maWxlckVmZmVjdER1cmF0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMjpcbiAgICAgICAgICBwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbiA9IHB1c2hOZXN0ZWRFZmZlY3REdXJhdGlvbnMoKTtcbiAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZVVubW91bnRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgZmluaXNoZWRXb3JrLnN0YXRlTm9kZS5wYXNzaXZlRWZmZWN0RHVyYXRpb24gKz1cbiAgICAgICAgICAgIGJ1YmJsZU5lc3RlZEVmZmVjdER1cmF0aW9ucyhwcmV2UHJvZmlsZXJFZmZlY3REdXJhdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMjI6XG4gICAgICAgICAgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24gPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICAgIG51bGwgIT09IGZpbmlzaGVkV29yay5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgICAgcHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24uX3Zpc2liaWxpdHkgJlxuICAgICAgICAgICAgT2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWQgJiZcbiAgICAgICAgICAobnVsbCA9PT0gZmluaXNoZWRXb3JrLnJldHVybiB8fCAxMyAhPT0gZmluaXNoZWRXb3JrLnJldHVybi50YWcpXG4gICAgICAgICAgICA/ICgocHJldlByb2ZpbGVyRWZmZWN0RHVyYXRpb24uX3Zpc2liaWxpdHkgJj1cbiAgICAgICAgICAgICAgICB+T2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWQpLFxuICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlRGlzY29ubmVjdFBhc3NpdmVFZmZlY3RzKGZpbmlzaGVkV29yayksXG4gICAgICAgICAgICAgIChmaW5pc2hlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlICYmXG4gICAgICAgICAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiZcbiAgICAgICAgICAgICAgICAwIDw9IGNvbXBvbmVudEVmZmVjdEVuZFRpbWUgJiZcbiAgICAgICAgICAgICAgICAwLjA1IDwgY29tcG9uZW50RWZmZWN0RW5kVGltZSAtIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJlxuICAgICAgICAgICAgICAgIGxvZ0NvbXBvbmVudFRyaWdnZXIoXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmssXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgXCJEaXNjb25uZWN0XCJcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgOiByZWN1cnNpdmVseVRyYXZlcnNlUGFzc2l2ZVVubW91bnRFZmZlY3RzKGZpbmlzaGVkV29yayk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZVBhc3NpdmVVbm1vdW50RWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgfVxuICAgICAgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiZcbiAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmXG4gICAgICAgIChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiZcbiAgICAgICAgbG9nQ29tcG9uZW50RWZmZWN0KFxuICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSxcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3REdXJhdGlvbixcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnNcbiAgICAgICAgKTtcbiAgICAgIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCk7XG4gICAgICBwb3BDb21wb25lbnRFZmZlY3REdXJhdGlvbihwcmV2RWZmZWN0RHVyYXRpb24pO1xuICAgICAgY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSA9IHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZTtcbiAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IHByZXZFZmZlY3RFcnJvcnM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNjb25uZWN0UGFzc2l2ZUVmZmVjdHMocGFyZW50RmliZXIpIHtcbiAgICAgIHZhciBkZWxldGlvbnMgPSBwYXJlbnRGaWJlci5kZWxldGlvbnM7XG4gICAgICBpZiAoMCAhPT0gKHBhcmVudEZpYmVyLmZsYWdzICYgMTYpKSB7XG4gICAgICAgIGlmIChudWxsICE9PSBkZWxldGlvbnMpXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkZWxldGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciBjaGlsZFRvRGVsZXRlID0gZGVsZXRpb25zW2ldLFxuICAgICAgICAgICAgICBwcmV2RWZmZWN0U3RhcnQgPSBwdXNoQ29tcG9uZW50RWZmZWN0U3RhcnQoKTtcbiAgICAgICAgICAgIG5leHRFZmZlY3QgPSBjaGlsZFRvRGVsZXRlO1xuICAgICAgICAgICAgY29tbWl0UGFzc2l2ZVVubW91bnRFZmZlY3RzSW5zaWRlT2ZEZWxldGVkVHJlZV9iZWdpbihcbiAgICAgICAgICAgICAgY2hpbGRUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgcGFyZW50RmliZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAoY2hpbGRUb0RlbGV0ZS5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiZcbiAgICAgICAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmXG4gICAgICAgICAgICAgIDAuMDUgPCBjb21wb25lbnRFZmZlY3RFbmRUaW1lIC0gY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lICYmXG4gICAgICAgICAgICAgIGxvZ0NvbXBvbmVudFRyaWdnZXIoXG4gICAgICAgICAgICAgICAgY2hpbGRUb0RlbGV0ZSxcbiAgICAgICAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSxcbiAgICAgICAgICAgICAgICBcIlVubW91bnRcIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcG9wQ29tcG9uZW50RWZmZWN0U3RhcnQocHJldkVmZmVjdFN0YXJ0KTtcbiAgICAgICAgICB9XG4gICAgICAgIGRldGFjaEFsdGVybmF0ZVNpYmxpbmdzKHBhcmVudEZpYmVyKTtcbiAgICAgIH1cbiAgICAgIGZvciAocGFyZW50RmliZXIgPSBwYXJlbnRGaWJlci5jaGlsZDsgbnVsbCAhPT0gcGFyZW50RmliZXI7IClcbiAgICAgICAgZGlzY29ubmVjdFBhc3NpdmVFZmZlY3QocGFyZW50RmliZXIpLFxuICAgICAgICAgIChwYXJlbnRGaWJlciA9IHBhcmVudEZpYmVyLnNpYmxpbmcpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkaXNjb25uZWN0UGFzc2l2ZUVmZmVjdChmaW5pc2hlZFdvcmspIHtcbiAgICAgIHZhciBwcmV2RWZmZWN0U3RhcnQgPSBwdXNoQ29tcG9uZW50RWZmZWN0U3RhcnQoKSxcbiAgICAgICAgcHJldkVmZmVjdER1cmF0aW9uID0gcHVzaENvbXBvbmVudEVmZmVjdER1cmF0aW9uKCksXG4gICAgICAgIHByZXZFZmZlY3RFcnJvcnMgPSBwdXNoQ29tcG9uZW50RWZmZWN0RXJyb3JzKCksXG4gICAgICAgIHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZSA9IHB1c2hDb21wb25lbnRFZmZlY3REaWRTcGF3blVwZGF0ZSgpO1xuICAgICAgc3dpdGNoIChmaW5pc2hlZFdvcmsudGFnKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICBjb21taXRIb29rUGFzc2l2ZVVubW91bnRFZmZlY3RzKFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgZmluaXNoZWRXb3JrLnJldHVybixcbiAgICAgICAgICAgIFBhc3NpdmVcbiAgICAgICAgICApO1xuICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNjb25uZWN0UGFzc2l2ZUVmZmVjdHMoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICAgIGluc3RhbmNlLl92aXNpYmlsaXR5ICYgT2Zmc2NyZWVuUGFzc2l2ZUVmZmVjdHNDb25uZWN0ZWQgJiZcbiAgICAgICAgICAgICgoaW5zdGFuY2UuX3Zpc2liaWxpdHkgJj0gfk9mZnNjcmVlblBhc3NpdmVFZmZlY3RzQ29ubmVjdGVkKSxcbiAgICAgICAgICAgIHJlY3Vyc2l2ZWx5VHJhdmVyc2VEaXNjb25uZWN0UGFzc2l2ZUVmZmVjdHMoZmluaXNoZWRXb3JrKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZURpc2Nvbm5lY3RQYXNzaXZlRWZmZWN0cyhmaW5pc2hlZFdvcmspO1xuICAgICAgfVxuICAgICAgKGZpbmlzaGVkV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUgJiZcbiAgICAgICAgMCA8PSBjb21wb25lbnRFZmZlY3RFbmRUaW1lICYmXG4gICAgICAgIChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiZcbiAgICAgICAgbG9nQ29tcG9uZW50RWZmZWN0KFxuICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSxcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3REdXJhdGlvbixcbiAgICAgICAgICBjb21wb25lbnRFZmZlY3RFcnJvcnNcbiAgICAgICAgKTtcbiAgICAgIHBvcENvbXBvbmVudEVmZmVjdFN0YXJ0KHByZXZFZmZlY3RTdGFydCk7XG4gICAgICBwb3BDb21wb25lbnRFZmZlY3REdXJhdGlvbihwcmV2RWZmZWN0RHVyYXRpb24pO1xuICAgICAgY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSA9IHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZTtcbiAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IHByZXZFZmZlY3RFcnJvcnM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdFBhc3NpdmVVbm1vdW50RWZmZWN0c0luc2lkZU9mRGVsZXRlZFRyZWVfYmVnaW4oXG4gICAgICBkZWxldGVkU3VidHJlZVJvb3QsXG4gICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yJGpzY29tcCQwXG4gICAgKSB7XG4gICAgICBmb3IgKDsgbnVsbCAhPT0gbmV4dEVmZmVjdDsgKSB7XG4gICAgICAgIHZhciBmaWJlciA9IG5leHRFZmZlY3QsXG4gICAgICAgICAgY3VycmVudCA9IGZpYmVyLFxuICAgICAgICAgIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IgPSBuZWFyZXN0TW91bnRlZEFuY2VzdG9yJGpzY29tcCQwLFxuICAgICAgICAgIHByZXZFZmZlY3RTdGFydCA9IHB1c2hDb21wb25lbnRFZmZlY3RTdGFydCgpLFxuICAgICAgICAgIHByZXZFZmZlY3REdXJhdGlvbiA9IHB1c2hDb21wb25lbnRFZmZlY3REdXJhdGlvbigpLFxuICAgICAgICAgIHByZXZFZmZlY3RFcnJvcnMgPSBwdXNoQ29tcG9uZW50RWZmZWN0RXJyb3JzKCksXG4gICAgICAgICAgcHJldkVmZmVjdERpZFNwYXduVXBkYXRlID0gcHVzaENvbXBvbmVudEVmZmVjdERpZFNwYXduVXBkYXRlKCk7XG4gICAgICAgIHN3aXRjaCAoY3VycmVudC50YWcpIHtcbiAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgY29tbWl0SG9va1Bhc3NpdmVVbm1vdW50RWZmZWN0cyhcbiAgICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICAgICAgUGFzc2l2ZVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgY2FzZSAyMjpcbiAgICAgICAgICAgIG51bGwgIT09IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZSAmJlxuICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50Lm1lbW9pemVkU3RhdGUuY2FjaGVQb29sICYmXG4gICAgICAgICAgICAgICgobmVhcmVzdE1vdW50ZWRBbmNlc3RvciA9IGN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5jYWNoZVBvb2wucG9vbCksXG4gICAgICAgICAgICAgIG51bGwgIT0gbmVhcmVzdE1vdW50ZWRBbmNlc3RvciAmJlxuICAgICAgICAgICAgICAgIHJldGFpbkNhY2hlKG5lYXJlc3RNb3VudGVkQW5jZXN0b3IpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgMjQ6XG4gICAgICAgICAgICByZWxlYXNlQ2FjaGUoY3VycmVudC5tZW1vaXplZFN0YXRlLmNhY2hlKTtcbiAgICAgICAgfVxuICAgICAgICAoY3VycmVudC5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUgJiZcbiAgICAgICAgICAwIDw9IGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSAmJlxuICAgICAgICAgIDAgPD0gY29tcG9uZW50RWZmZWN0RW5kVGltZSAmJlxuICAgICAgICAgIChjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlIHx8IDAuMDUgPCBjb21wb25lbnRFZmZlY3REdXJhdGlvbikgJiZcbiAgICAgICAgICBsb2dDb21wb25lbnRFZmZlY3QoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0U3RhcnRUaW1lLFxuICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RW5kVGltZSxcbiAgICAgICAgICAgIGNvbXBvbmVudEVmZmVjdER1cmF0aW9uLFxuICAgICAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzXG4gICAgICAgICAgKTtcbiAgICAgICAgcG9wQ29tcG9uZW50RWZmZWN0U3RhcnQocHJldkVmZmVjdFN0YXJ0KTtcbiAgICAgICAgcG9wQ29tcG9uZW50RWZmZWN0RHVyYXRpb24ocHJldkVmZmVjdER1cmF0aW9uKTtcbiAgICAgICAgY29tcG9uZW50RWZmZWN0U3Bhd25lZFVwZGF0ZSA9IHByZXZFZmZlY3REaWRTcGF3blVwZGF0ZTtcbiAgICAgICAgY29tcG9uZW50RWZmZWN0RXJyb3JzID0gcHJldkVmZmVjdEVycm9ycztcbiAgICAgICAgY3VycmVudCA9IGZpYmVyLmNoaWxkO1xuICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudCkgKGN1cnJlbnQucmV0dXJuID0gZmliZXIpLCAobmV4dEVmZmVjdCA9IGN1cnJlbnQpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgYTogZm9yIChmaWJlciA9IGRlbGV0ZWRTdWJ0cmVlUm9vdDsgbnVsbCAhPT0gbmV4dEVmZmVjdDsgKSB7XG4gICAgICAgICAgICBjdXJyZW50ID0gbmV4dEVmZmVjdDtcbiAgICAgICAgICAgIHByZXZFZmZlY3RTdGFydCA9IGN1cnJlbnQuc2libGluZztcbiAgICAgICAgICAgIHByZXZFZmZlY3REdXJhdGlvbiA9IGN1cnJlbnQucmV0dXJuO1xuICAgICAgICAgICAgZGV0YWNoRmliZXJBZnRlckVmZmVjdHMoY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoY3VycmVudCA9PT0gZmliZXIpIHtcbiAgICAgICAgICAgICAgbmV4dEVmZmVjdCA9IG51bGw7XG4gICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gcHJldkVmZmVjdFN0YXJ0KSB7XG4gICAgICAgICAgICAgIHByZXZFZmZlY3RTdGFydC5yZXR1cm4gPSBwcmV2RWZmZWN0RHVyYXRpb247XG4gICAgICAgICAgICAgIG5leHRFZmZlY3QgPSBwcmV2RWZmZWN0U3RhcnQ7XG4gICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBuZXh0RWZmZWN0ID0gcHJldkVmZmVjdER1cmF0aW9uO1xuICAgICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gb25Db21taXRSb290KCkge1xuICAgICAgY29tbWl0SG9va3MuZm9yRWFjaChmdW5jdGlvbiAoY29tbWl0SG9vaykge1xuICAgICAgICByZXR1cm4gY29tbWl0SG9vaygpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzQ29uY3VycmVudEFjdEVudmlyb25tZW50KCkge1xuICAgICAgdmFyIGlzUmVhY3RBY3RFbnZpcm9ubWVudEdsb2JhbCA9XG4gICAgICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBJU19SRUFDVF9BQ1RfRU5WSVJPTk1FTlRcbiAgICAgICAgICA/IElTX1JFQUNUX0FDVF9FTlZJUk9OTUVOVFxuICAgICAgICAgIDogdm9pZCAwO1xuICAgICAgaXNSZWFjdEFjdEVudmlyb25tZW50R2xvYmFsIHx8XG4gICAgICAgIG51bGwgPT09IFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlIHx8XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJUaGUgY3VycmVudCB0ZXN0aW5nIGVudmlyb25tZW50IGlzIG5vdCBjb25maWd1cmVkIHRvIHN1cHBvcnQgYWN0KC4uLilcIlxuICAgICAgICApO1xuICAgICAgcmV0dXJuIGlzUmVhY3RBY3RFbnZpcm9ubWVudEdsb2JhbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVxdWVzdFVwZGF0ZUxhbmUoZmliZXIpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKGV4ZWN1dGlvbkNvbnRleHQgJiBSZW5kZXJDb250ZXh0KSAhPT0gTm9Db250ZXh0ICYmXG4gICAgICAgIDAgIT09IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzXG4gICAgICApXG4gICAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmIC13b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcztcbiAgICAgIHZhciB0cmFuc2l0aW9uID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuVDtcbiAgICAgIHJldHVybiBudWxsICE9PSB0cmFuc2l0aW9uXG4gICAgICAgID8gKHRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMgfHwgKHRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMgPSBuZXcgU2V0KCkpLFxuICAgICAgICAgIHRyYW5zaXRpb24uX3VwZGF0ZWRGaWJlcnMuYWRkKGZpYmVyKSxcbiAgICAgICAgICByZXF1ZXN0VHJhbnNpdGlvbkxhbmUoKSlcbiAgICAgICAgOiByZXNvbHZlVXBkYXRlUHJpb3JpdHkoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVxdWVzdERlZmVycmVkTGFuZSgpIHtcbiAgICAgIGlmICgwID09PSB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSlcbiAgICAgICAgaWYgKDAgPT09ICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmIDUzNjg3MDkxMikgfHwgaXNIeWRyYXRpbmcpIHtcbiAgICAgICAgICB2YXIgbGFuZSA9IG5leHRUcmFuc2l0aW9uRGVmZXJyZWRMYW5lO1xuICAgICAgICAgIG5leHRUcmFuc2l0aW9uRGVmZXJyZWRMYW5lIDw8PSAxO1xuICAgICAgICAgIDAgPT09IChuZXh0VHJhbnNpdGlvbkRlZmVycmVkTGFuZSAmIDM5MzIxNjApICYmXG4gICAgICAgICAgICAobmV4dFRyYW5zaXRpb25EZWZlcnJlZExhbmUgPSAyNjIxNDQpO1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lID0gbGFuZTtcbiAgICAgICAgfSBlbHNlIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lID0gNTM2ODcwOTEyO1xuICAgICAgbGFuZSA9IHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gICAgICBudWxsICE9PSBsYW5lICYmIChsYW5lLmZsYWdzIHw9IDMyKTtcbiAgICAgIHJldHVybiB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIGZpYmVyLCBsYW5lKSB7XG4gICAgICBpc1J1bm5pbmdJbnNlcnRpb25FZmZlY3QgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcInVzZUluc2VydGlvbkVmZmVjdCBtdXN0IG5vdCBzY2hlZHVsZSB1cGRhdGVzLlwiKTtcbiAgICAgIGlzRmx1c2hpbmdQYXNzaXZlRWZmZWN0cyAmJiAoZGlkU2NoZWR1bGVVcGRhdGVEdXJpbmdQYXNzaXZlRWZmZWN0cyA9ICEwKTtcbiAgICAgIGlmIChcbiAgICAgICAgKHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdCAmJlxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9PT0gU3VzcGVuZGVkT25EYXRhIHx8XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9PT0gU3VzcGVuZGVkT25BY3Rpb24pKSB8fFxuICAgICAgICBudWxsICE9PSByb290LmNhbmNlbFBlbmRpbmdDb21taXRcbiAgICAgIClcbiAgICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgMCksXG4gICAgICAgICAgbWFya1Jvb3RTdXNwZW5kZWQoXG4gICAgICAgICAgICByb290LFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSxcbiAgICAgICAgICAgICExXG4gICAgICAgICAgKTtcbiAgICAgIG1hcmtSb290VXBkYXRlZCQxKHJvb3QsIGxhbmUpO1xuICAgICAgaWYgKFxuICAgICAgICAoZXhlY3V0aW9uQ29udGV4dCAmIFJlbmRlckNvbnRleHQpICE9PSBOb0NvbnRleHQgJiZcbiAgICAgICAgcm9vdCA9PT0gd29ya0luUHJvZ3Jlc3NSb290XG4gICAgICApIHtcbiAgICAgICAgaWYgKGlzUmVuZGVyaW5nKVxuICAgICAgICAgIHN3aXRjaCAoZmliZXIudGFnKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICAgICAgcm9vdCA9XG4gICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzICYmIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIod29ya0luUHJvZ3Jlc3MpKSB8fFxuICAgICAgICAgICAgICAgIFwiVW5rbm93blwiO1xuICAgICAgICAgICAgICBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlckZvckFub3RoZXJDb21wb25lbnQuaGFzKHJvb3QpIHx8XG4gICAgICAgICAgICAgICAgKGRpZFdhcm5BYm91dFVwZGF0ZUluUmVuZGVyRm9yQW5vdGhlckNvbXBvbmVudC5hZGQocm9vdCksXG4gICAgICAgICAgICAgICAgKGZpYmVyID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgXCJVbmtub3duXCIpLFxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIkNhbm5vdCB1cGRhdGUgYSBjb21wb25lbnQgKGAlc2ApIHdoaWxlIHJlbmRlcmluZyBhIGRpZmZlcmVudCBjb21wb25lbnQgKGAlc2ApLiBUbyBsb2NhdGUgdGhlIGJhZCBzZXRTdGF0ZSgpIGNhbGwgaW5zaWRlIGAlc2AsIGZvbGxvdyB0aGUgc3RhY2sgdHJhY2UgYXMgZGVzY3JpYmVkIGluIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvc2V0c3RhdGUtaW4tcmVuZGVyXCIsXG4gICAgICAgICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICAgICAgICByb290XG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlciB8fFxuICAgICAgICAgICAgICAgIChjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJDYW5ub3QgdXBkYXRlIGR1cmluZyBhbiBleGlzdGluZyBzdGF0ZSB0cmFuc2l0aW9uIChzdWNoIGFzIHdpdGhpbiBgcmVuZGVyYCkuIFJlbmRlciBtZXRob2RzIHNob3VsZCBiZSBhIHB1cmUgZnVuY3Rpb24gb2YgcHJvcHMgYW5kIHN0YXRlLlwiXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAoZGlkV2FybkFib3V0VXBkYXRlSW5SZW5kZXIgPSAhMCkpO1xuICAgICAgICAgIH1cbiAgICAgIH0gZWxzZVxuICAgICAgICBpc0RldlRvb2xzUHJlc2VudCAmJiBhZGRGaWJlclRvTGFuZXNNYXAocm9vdCwgZmliZXIsIGxhbmUpLFxuICAgICAgICAgIHdhcm5JZlVwZGF0ZXNOb3RXcmFwcGVkV2l0aEFjdERFVihmaWJlciksXG4gICAgICAgICAgcm9vdCA9PT0gd29ya0luUHJvZ3Jlc3NSb290ICYmXG4gICAgICAgICAgICAoKGV4ZWN1dGlvbkNvbnRleHQgJiBSZW5kZXJDb250ZXh0KSA9PT0gTm9Db250ZXh0ICYmXG4gICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyB8PSBsYW5lKSxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXkgJiZcbiAgICAgICAgICAgICAgbWFya1Jvb3RTdXNwZW5kZWQoXG4gICAgICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSxcbiAgICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHBlcmZvcm1Xb3JrT25Sb290KHJvb3QsIGxhbmVzLCBmb3JjZVN5bmMpIHtcbiAgICAgIGlmICgoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpICE9PSBOb0NvbnRleHQpXG4gICAgICAgIHRocm93IEVycm9yKFwiU2hvdWxkIG5vdCBhbHJlYWR5IGJlIHdvcmtpbmcuXCIpO1xuICAgICAgaWYgKDAgIT09IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYmIG51bGwgIT09IHdvcmtJblByb2dyZXNzKSB7XG4gICAgICAgIHZhciB5aWVsZGVkRmliZXIgPSB3b3JrSW5Qcm9ncmVzcyxcbiAgICAgICAgICB5aWVsZEVuZFRpbWUgPSBub3ckMSgpO1xuICAgICAgICBzd2l0Y2ggKHlpZWxkUmVhc29uKSB7XG4gICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkltbWVkaWF0ZTpcbiAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uRGF0YTpcbiAgICAgICAgICAgIHZhciBzdGFydFRpbWUgPSB5aWVsZFN0YXJ0VGltZTtcbiAgICAgICAgICAgIHN1cHBvcnRzVXNlclRpbWluZyAmJlxuICAgICAgICAgICAgICAoKHlpZWxkZWRGaWJlciA9IHlpZWxkZWRGaWJlci5fZGVidWdUYXNrKVxuICAgICAgICAgICAgICAgID8geWllbGRlZEZpYmVyLnJ1bihcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZChcbiAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAgICAgICAgIFwiU3VzcGVuZGVkXCIsXG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHlpZWxkRW5kVGltZSxcbiAgICAgICAgICAgICAgICAgICAgICBDT01QT05FTlRTX1RSQUNLLFxuICAgICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgICBcInByaW1hcnktbGlnaHRcIlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBjb25zb2xlLnRpbWVTdGFtcChcbiAgICAgICAgICAgICAgICAgICAgXCJTdXNwZW5kZWRcIixcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICB5aWVsZEVuZFRpbWUsXG4gICAgICAgICAgICAgICAgICAgIENPTVBPTkVOVFNfVFJBQ0ssXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgICAgXCJwcmltYXJ5LWxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkFjdGlvbjpcbiAgICAgICAgICAgIHN0YXJ0VGltZSA9IHlpZWxkU3RhcnRUaW1lO1xuICAgICAgICAgICAgc3VwcG9ydHNVc2VyVGltaW5nICYmXG4gICAgICAgICAgICAgICgoeWllbGRlZEZpYmVyID0geWllbGRlZEZpYmVyLl9kZWJ1Z1Rhc2spXG4gICAgICAgICAgICAgICAgPyB5aWVsZGVkRmliZXIucnVuKFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLnRpbWVTdGFtcC5iaW5kKFxuICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUsXG4gICAgICAgICAgICAgICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgeWllbGRFbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgICAgIENPTVBPTkVOVFNfVFJBQ0ssXG4gICAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICAgIFwicHJpbWFyeS1saWdodFwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IGNvbnNvbGUudGltZVN0YW1wKFxuICAgICAgICAgICAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICAgIHlpZWxkRW5kVGltZSxcbiAgICAgICAgICAgICAgICAgICAgQ09NUE9ORU5UU19UUkFDSyxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBcInByaW1hcnktbGlnaHRcIlxuICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgc3VwcG9ydHNVc2VyVGltaW5nICYmXG4gICAgICAgICAgICAgICgoeWllbGRlZEZpYmVyID0geWllbGRFbmRUaW1lIC0geWllbGRTdGFydFRpbWUpLFxuICAgICAgICAgICAgICAzID4geWllbGRlZEZpYmVyIHx8XG4gICAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAoXG4gICAgICAgICAgICAgICAgICBcIkJsb2NrZWRcIixcbiAgICAgICAgICAgICAgICAgIHlpZWxkU3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgeWllbGRFbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgQ09NUE9ORU5UU19UUkFDSyxcbiAgICAgICAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgICAgICAgIDUgPiB5aWVsZGVkRmliZXJcbiAgICAgICAgICAgICAgICAgICAgPyBcInByaW1hcnktbGlnaHRcIlxuICAgICAgICAgICAgICAgICAgICA6IDEwID4geWllbGRlZEZpYmVyXG4gICAgICAgICAgICAgICAgICAgICAgPyBcInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIDogMTAwID4geWllbGRlZEZpYmVyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwicHJpbWFyeS1kYXJrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJlcnJvclwiXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHN0YXJ0VGltZSA9IChmb3JjZVN5bmMgPVxuICAgICAgICAoIWZvcmNlU3luYyAmJlxuICAgICAgICAgIDAgPT09IChsYW5lcyAmIDEyNykgJiZcbiAgICAgICAgICAwID09PSAobGFuZXMgJiByb290LmV4cGlyZWRMYW5lcykpIHx8XG4gICAgICAgIGNoZWNrSWZSb290SXNQcmVyZW5kZXJpbmcocm9vdCwgbGFuZXMpKVxuICAgICAgICA/IHJlbmRlclJvb3RDb25jdXJyZW50KHJvb3QsIGxhbmVzKVxuICAgICAgICA6IHJlbmRlclJvb3RTeW5jKHJvb3QsIGxhbmVzLCAhMCk7XG4gICAgICB2YXIgcmVuZGVyV2FzQ29uY3VycmVudCA9IGZvcmNlU3luYztcbiAgICAgIGRvIHtcbiAgICAgICAgaWYgKHN0YXJ0VGltZSA9PT0gUm9vdEluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJc1ByZXJlbmRlcmluZyAmJlxuICAgICAgICAgICAgIWZvcmNlU3luYyAmJlxuICAgICAgICAgICAgbWFya1Jvb3RTdXNwZW5kZWQocm9vdCwgbGFuZXMsIDAsICExKTtcbiAgICAgICAgICBsYW5lcyA9IHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uO1xuICAgICAgICAgIHlpZWxkU3RhcnRUaW1lID0gbm93KCk7XG4gICAgICAgICAgeWllbGRSZWFzb24gPSBsYW5lcztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB5aWVsZGVkRmliZXIgPSBub3ckMSgpO1xuICAgICAgICAgIHlpZWxkRW5kVGltZSA9IHJvb3QuY3VycmVudC5hbHRlcm5hdGU7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcmVuZGVyV2FzQ29uY3VycmVudCAmJlxuICAgICAgICAgICAgIWlzUmVuZGVyQ29uc2lzdGVudFdpdGhFeHRlcm5hbFN0b3Jlcyh5aWVsZEVuZFRpbWUpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMobGFuZXMpO1xuICAgICAgICAgICAgeWllbGRFbmRUaW1lID0gcmVuZGVyU3RhcnRUaW1lO1xuICAgICAgICAgICAgc3RhcnRUaW1lID0geWllbGRlZEZpYmVyO1xuICAgICAgICAgICAgIXN1cHBvcnRzVXNlclRpbWluZyB8fFxuICAgICAgICAgICAgICBzdGFydFRpbWUgPD0geWllbGRFbmRUaW1lIHx8XG4gICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2tcbiAgICAgICAgICAgICAgICA/IHdvcmtJblByb2dyZXNzVXBkYXRlVGFzay5ydW4oXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgY29uc29sZSxcbiAgICAgICAgICAgICAgICAgICAgICBcIlRlYXJlZCBSZW5kZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICB5aWVsZEVuZFRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICAgICAgICBcImVycm9yXCJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogY29uc29sZS50aW1lU3RhbXAoXG4gICAgICAgICAgICAgICAgICAgIFwiVGVhcmVkIFJlbmRlclwiLFxuICAgICAgICAgICAgICAgICAgICB5aWVsZEVuZFRpbWUsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFRyYWNrLFxuICAgICAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICAgICAgXCJlcnJvclwiXG4gICAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgIGZpbmFsaXplUmVuZGVyKGxhbmVzLCB5aWVsZGVkRmliZXIpO1xuICAgICAgICAgICAgc3RhcnRUaW1lID0gcmVuZGVyUm9vdFN5bmMocm9vdCwgbGFuZXMsICExKTtcbiAgICAgICAgICAgIHJlbmRlcldhc0NvbmN1cnJlbnQgPSAhMTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3RhcnRUaW1lID09PSBSb290RXJyb3JlZCkge1xuICAgICAgICAgICAgcmVuZGVyV2FzQ29uY3VycmVudCA9IGxhbmVzO1xuICAgICAgICAgICAgaWYgKHJvb3QuZXJyb3JSZWNvdmVyeURpc2FibGVkTGFuZXMgJiByZW5kZXJXYXNDb25jdXJyZW50KVxuICAgICAgICAgICAgICB2YXIgZXJyb3JSZXRyeUxhbmVzID0gMDtcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgKGVycm9yUmV0cnlMYW5lcyA9IHJvb3QucGVuZGluZ0xhbmVzICYgLTUzNjg3MDkxMyksXG4gICAgICAgICAgICAgICAgKGVycm9yUmV0cnlMYW5lcyA9XG4gICAgICAgICAgICAgICAgICAwICE9PSBlcnJvclJldHJ5TGFuZXNcbiAgICAgICAgICAgICAgICAgICAgPyBlcnJvclJldHJ5TGFuZXNcbiAgICAgICAgICAgICAgICAgICAgOiBlcnJvclJldHJ5TGFuZXMgJiA1MzY4NzA5MTJcbiAgICAgICAgICAgICAgICAgICAgICA/IDUzNjg3MDkxMlxuICAgICAgICAgICAgICAgICAgICAgIDogMCk7XG4gICAgICAgICAgICBpZiAoMCAhPT0gZXJyb3JSZXRyeUxhbmVzKSB7XG4gICAgICAgICAgICAgIHNldEN1cnJlbnRUcmFja0Zyb21MYW5lcyhsYW5lcyk7XG4gICAgICAgICAgICAgIGxvZ0Vycm9yZWRSZW5kZXJQaGFzZShcbiAgICAgICAgICAgICAgICByZW5kZXJTdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgeWllbGRlZEZpYmVyLFxuICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVXBkYXRlVGFza1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBmaW5hbGl6ZVJlbmRlcihsYW5lcywgeWllbGRlZEZpYmVyKTtcbiAgICAgICAgICAgICAgbGFuZXMgPSBlcnJvclJldHJ5TGFuZXM7XG4gICAgICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgICAgICB5aWVsZGVkRmliZXIgPSByb290O1xuICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IHJlbmRlcldhc0NvbmN1cnJlbnQ7XG4gICAgICAgICAgICAgICAgcmVuZGVyV2FzQ29uY3VycmVudCA9IHdvcmtJblByb2dyZXNzUm9vdENvbmN1cnJlbnRFcnJvcnM7XG4gICAgICAgICAgICAgICAgdmFyIHdhc1Jvb3REZWh5ZHJhdGVkID1cbiAgICAgICAgICAgICAgICAgIHlpZWxkZWRGaWJlci5jdXJyZW50Lm1lbW9pemVkU3RhdGUuaXNEZWh5ZHJhdGVkO1xuICAgICAgICAgICAgICAgIHdhc1Jvb3REZWh5ZHJhdGVkICYmXG4gICAgICAgICAgICAgICAgICAocHJlcGFyZUZyZXNoU3RhY2soeWllbGRlZEZpYmVyLCBlcnJvclJldHJ5TGFuZXMpLmZsYWdzIHw9XG4gICAgICAgICAgICAgICAgICAgIDI1Nik7XG4gICAgICAgICAgICAgICAgZXJyb3JSZXRyeUxhbmVzID0gcmVuZGVyUm9vdFN5bmMoXG4gICAgICAgICAgICAgICAgICB5aWVsZGVkRmliZXIsXG4gICAgICAgICAgICAgICAgICBlcnJvclJldHJ5TGFuZXMsXG4gICAgICAgICAgICAgICAgICAhMVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yUmV0cnlMYW5lcyAhPT0gUm9vdEVycm9yZWQpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkQXR0YWNoUGluZ0xpc3RlbmVyICYmXG4gICAgICAgICAgICAgICAgICAgICF3YXNSb290RGVoeWRyYXRlZFxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHlpZWxkZWRGaWJlci5lcnJvclJlY292ZXJ5RGlzYWJsZWRMYW5lcyB8PSBzdGFydFRpbWU7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdEludGVybGVhdmVkVXBkYXRlZExhbmVzIHw9IHN0YXJ0VGltZTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lID0gUm9vdFN1c3BlbmRlZFdpdGhEZWxheTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHlpZWxkZWRGaWJlciA9IHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzO1xuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMgPSByZW5kZXJXYXNDb25jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0geWllbGRlZEZpYmVyICYmXG4gICAgICAgICAgICAgICAgICAgIChudWxsID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgID8gKHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzID0geWllbGRlZEZpYmVyKVxuICAgICAgICAgICAgICAgICAgICAgIDogd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMucHVzaC5hcHBseShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkZWRGaWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN0YXJ0VGltZSA9IGVycm9yUmV0cnlMYW5lcztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZW5kZXJXYXNDb25jdXJyZW50ID0gITE7XG4gICAgICAgICAgICAgIGlmIChzdGFydFRpbWUgIT09IFJvb3RFcnJvcmVkKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgZWxzZSB5aWVsZGVkRmliZXIgPSBub3ckMSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3RhcnRUaW1lID09PSBSb290RmF0YWxFcnJvcmVkKSB7XG4gICAgICAgICAgICBzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMobGFuZXMpO1xuICAgICAgICAgICAgbG9nRXJyb3JlZFJlbmRlclBoYXNlKFxuICAgICAgICAgICAgICByZW5kZXJTdGFydFRpbWUsXG4gICAgICAgICAgICAgIHlpZWxkZWRGaWJlcixcbiAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVXBkYXRlVGFza1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGZpbmFsaXplUmVuZGVyKGxhbmVzLCB5aWVsZGVkRmliZXIpO1xuICAgICAgICAgICAgcHJlcGFyZUZyZXNoU3RhY2socm9vdCwgMCk7XG4gICAgICAgICAgICBtYXJrUm9vdFN1c3BlbmRlZChyb290LCBsYW5lcywgMCwgITApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgIGZvcmNlU3luYyA9IHJvb3Q7XG4gICAgICAgICAgICBzd2l0Y2ggKHN0YXJ0VGltZSkge1xuICAgICAgICAgICAgICBjYXNlIFJvb3RJblByb2dyZXNzOlxuICAgICAgICAgICAgICBjYXNlIFJvb3RGYXRhbEVycm9yZWQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJSb290IGRpZCBub3QgY29tcGxldGUuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCIpO1xuICAgICAgICAgICAgICBjYXNlIFJvb3RTdXNwZW5kZWRXaXRoRGVsYXk6XG4gICAgICAgICAgICAgICAgaWYgKChsYW5lcyAmIDQxOTQwNDgpICE9PSBsYW5lcykgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgUm9vdFN1c3BlbmRlZEF0VGhlU2hlbGw6XG4gICAgICAgICAgICAgICAgc2V0Q3VycmVudFRyYWNrRnJvbUxhbmVzKGxhbmVzKTtcbiAgICAgICAgICAgICAgICBsb2dTdXNwZW5kZWRSZW5kZXJQaGFzZShcbiAgICAgICAgICAgICAgICAgIHJlbmRlclN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgIHlpZWxkZWRGaWJlcixcbiAgICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NVcGRhdGVUYXNrXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZVJlbmRlcihsYW5lcywgeWllbGRlZEZpYmVyKTtcbiAgICAgICAgICAgICAgICB5aWVsZEVuZFRpbWUgPSBsYW5lcztcbiAgICAgICAgICAgICAgICAwICE9PSAoeWllbGRFbmRUaW1lICYgMTI3KVxuICAgICAgICAgICAgICAgICAgPyAoYmxvY2tpbmdTdXNwZW5kZWRUaW1lID0geWllbGRlZEZpYmVyKVxuICAgICAgICAgICAgICAgICAgOiAwICE9PSAoeWllbGRFbmRUaW1lICYgNDE5NDA0OCkgJiZcbiAgICAgICAgICAgICAgICAgICAgKHRyYW5zaXRpb25TdXNwZW5kZWRUaW1lID0geWllbGRlZEZpYmVyKTtcbiAgICAgICAgICAgICAgICBtYXJrUm9vdFN1c3BlbmRlZChcbiAgICAgICAgICAgICAgICAgIGZvcmNlU3luYyxcbiAgICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NEZWZlcnJlZExhbmUsXG4gICAgICAgICAgICAgICAgICAhd29ya0luUHJvZ3Jlc3NSb290RGlkU2tpcFN1c3BlbmRlZFNpYmxpbmdzXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICBjYXNlIFJvb3RFcnJvcmVkOlxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzID0gbnVsbDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBSb290U3VzcGVuZGVkOlxuICAgICAgICAgICAgICBjYXNlIFJvb3RDb21wbGV0ZWQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJVbmtub3duIHJvb3QgZXhpdCBzdGF0dXMuXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG51bGwgIT09IFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlKVxuICAgICAgICAgICAgICBjb21taXRSb290KFxuICAgICAgICAgICAgICAgIGZvcmNlU3luYyxcbiAgICAgICAgICAgICAgICB5aWVsZEVuZFRpbWUsXG4gICAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVjb3ZlcmFibGVFcnJvcnMsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRJbmNsdWRlUmVjdXJzaXZlUmVuZGVyVXBkYXRlLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdEludGVybGVhdmVkVXBkYXRlZExhbmVzLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmV0cnlMYW5lcyxcbiAgICAgICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgIHJlbmRlclN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICB5aWVsZGVkRmliZXJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgKGxhbmVzICYgNjI5MTQ1NjApID09PSBsYW5lcyAmJlxuICAgICAgICAgICAgICAgICgocmVuZGVyV2FzQ29uY3VycmVudCA9XG4gICAgICAgICAgICAgICAgICBnbG9iYWxNb3N0UmVjZW50RmFsbGJhY2tUaW1lICtcbiAgICAgICAgICAgICAgICAgIEZBTExCQUNLX1RIUk9UVExFX01TIC1cbiAgICAgICAgICAgICAgICAgIG5vdyQxKCkpLFxuICAgICAgICAgICAgICAgIDEwIDwgcmVuZGVyV2FzQ29uY3VycmVudClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgbWFya1Jvb3RTdXNwZW5kZWQoXG4gICAgICAgICAgICAgICAgICBmb3JjZVN5bmMsXG4gICAgICAgICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lLFxuICAgICAgICAgICAgICAgICAgIXdvcmtJblByb2dyZXNzUm9vdERpZFNraXBTdXNwZW5kZWRTaWJsaW5nc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKDAgIT09IGdldE5leHRMYW5lcyhmb3JjZVN5bmMsIDAsICEwKSkgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nRWZmZWN0c0xhbmVzID0gbGFuZXM7XG4gICAgICAgICAgICAgICAgZm9yY2VTeW5jLnRpbWVvdXRIYW5kbGUgPSBzY2hlZHVsZVRpbWVvdXQoXG4gICAgICAgICAgICAgICAgICBjb21taXRSb290V2hlblJlYWR5LmJpbmQoXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGZvcmNlU3luYyxcbiAgICAgICAgICAgICAgICAgICAgeWllbGRFbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NUcmFuc2l0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkSW5jbHVkZVJlY3Vyc2l2ZVJlbmRlclVwZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lLFxuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJbnRlcmxlYXZlZFVwZGF0ZWRMYW5lcyxcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZXRyeUxhbmVzLFxuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3REaWRTa2lwU3VzcGVuZGVkU2libGluZ3MsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgICAgXCJUaHJvdHRsZWRcIixcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVyU3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICB5aWVsZGVkRmliZXJcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICByZW5kZXJXYXNDb25jdXJyZW50XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbW1pdFJvb3RXaGVuUmVhZHkoXG4gICAgICAgICAgICAgICAgZm9yY2VTeW5jLFxuICAgICAgICAgICAgICAgIHlpZWxkRW5kVGltZSxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyxcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZEluY2x1ZGVSZWN1cnNpdmVSZW5kZXJVcGRhdGUsXG4gICAgICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NEZWZlcnJlZExhbmUsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMsXG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZXRyeUxhbmVzLFxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZFNraXBTdXNwZW5kZWRTaWJsaW5ncyxcbiAgICAgICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICByZW5kZXJTdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgeWllbGRlZEZpYmVyXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSB3aGlsZSAoMSk7XG4gICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdFJvb3RXaGVuUmVhZHkoXG4gICAgICByb290LFxuICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgcmVjb3ZlcmFibGVFcnJvcnMsXG4gICAgICB0cmFuc2l0aW9ucyxcbiAgICAgIGRpZEluY2x1ZGVSZW5kZXJQaGFzZVVwZGF0ZSxcbiAgICAgIGxhbmVzLFxuICAgICAgc3Bhd25lZExhbmUsXG4gICAgICB1cGRhdGVkTGFuZXMsXG4gICAgICBzdXNwZW5kZWRSZXRyeUxhbmVzLFxuICAgICAgZGlkU2tpcFN1c3BlbmRlZFNpYmxpbmdzLFxuICAgICAgZXhpdFN0YXR1cyxcbiAgICAgIHN1c3BlbmRlZENvbW1pdFJlYXNvbixcbiAgICAgIGNvbXBsZXRlZFJlbmRlclN0YXJ0VGltZSxcbiAgICAgIGNvbXBsZXRlZFJlbmRlckVuZFRpbWVcbiAgICApIHtcbiAgICAgIHJvb3QudGltZW91dEhhbmRsZSA9IG5vVGltZW91dDtcbiAgICAgIHZhciBzdWJ0cmVlRmxhZ3MgPSBmaW5pc2hlZFdvcmsuc3VidHJlZUZsYWdzLFxuICAgICAgICBzdXNwZW5kZWRTdGF0ZSA9IG51bGw7XG4gICAgICBpZiAoc3VidHJlZUZsYWdzICYgODE5MiB8fCAxNjc4NTQwOCA9PT0gKHN1YnRyZWVGbGFncyAmIDE2Nzg1NDA4KSlcbiAgICAgICAgaWYgKFxuICAgICAgICAgICgoc3VzcGVuZGVkU3RhdGUgPSB7XG4gICAgICAgICAgICBzdHlsZXNoZWV0czogbnVsbCxcbiAgICAgICAgICAgIGNvdW50OiAwLFxuICAgICAgICAgICAgaW1nQ291bnQ6IDAsXG4gICAgICAgICAgICBpbWdCeXRlczogMCxcbiAgICAgICAgICAgIHN1c3BlbnNleUltYWdlczogW10sXG4gICAgICAgICAgICB3YWl0aW5nRm9ySW1hZ2VzOiAhMCxcbiAgICAgICAgICAgIHdhaXRpbmdGb3JWaWV3VHJhbnNpdGlvbjogITEsXG4gICAgICAgICAgICB1bnN1c3BlbmQ6IG5vb3AkMVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGFjY3VtdWxhdGVTdXNwZW5zZXlDb21taXRPbkZpYmVyKGZpbmlzaGVkV29yaywgbGFuZXMsIHN1c3BlbmRlZFN0YXRlKSxcbiAgICAgICAgICAoc3VidHJlZUZsYWdzID1cbiAgICAgICAgICAgIChsYW5lcyAmIDYyOTE0NTYwKSA9PT0gbGFuZXNcbiAgICAgICAgICAgICAgPyBnbG9iYWxNb3N0UmVjZW50RmFsbGJhY2tUaW1lIC0gbm93JDEoKVxuICAgICAgICAgICAgICA6IChsYW5lcyAmIDQxOTQwNDgpID09PSBsYW5lc1xuICAgICAgICAgICAgICAgID8gZ2xvYmFsTW9zdFJlY2VudFRyYW5zaXRpb25UaW1lIC0gbm93JDEoKVxuICAgICAgICAgICAgICAgIDogMCksXG4gICAgICAgICAgKHN1YnRyZWVGbGFncyA9IHdhaXRGb3JDb21taXRUb0JlUmVhZHkoc3VzcGVuZGVkU3RhdGUsIHN1YnRyZWVGbGFncykpLFxuICAgICAgICAgIG51bGwgIT09IHN1YnRyZWVGbGFncylcbiAgICAgICAgKSB7XG4gICAgICAgICAgcGVuZGluZ0VmZmVjdHNMYW5lcyA9IGxhbmVzO1xuICAgICAgICAgIHJvb3QuY2FuY2VsUGVuZGluZ0NvbW1pdCA9IHN1YnRyZWVGbGFncyhcbiAgICAgICAgICAgIGNvbW1pdFJvb3QuYmluZChcbiAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgICAgcmVjb3ZlcmFibGVFcnJvcnMsXG4gICAgICAgICAgICAgIHRyYW5zaXRpb25zLFxuICAgICAgICAgICAgICBkaWRJbmNsdWRlUmVuZGVyUGhhc2VVcGRhdGUsXG4gICAgICAgICAgICAgIHNwYXduZWRMYW5lLFxuICAgICAgICAgICAgICB1cGRhdGVkTGFuZXMsXG4gICAgICAgICAgICAgIHN1c3BlbmRlZFJldHJ5TGFuZXMsXG4gICAgICAgICAgICAgIGV4aXRTdGF0dXMsXG4gICAgICAgICAgICAgIHN1c3BlbmRlZFN0YXRlLFxuICAgICAgICAgICAgICBzdXNwZW5kZWRTdGF0ZS53YWl0aW5nRm9yVmlld1RyYW5zaXRpb25cbiAgICAgICAgICAgICAgICA/IFwiV2FpdGluZyBmb3IgdGhlIHByZXZpb3VzIEFuaW1hdGlvblwiXG4gICAgICAgICAgICAgICAgOiAwIDwgc3VzcGVuZGVkU3RhdGUuY291bnRcbiAgICAgICAgICAgICAgICAgID8gMCA8IHN1c3BlbmRlZFN0YXRlLmltZ0NvdW50XG4gICAgICAgICAgICAgICAgICAgID8gXCJTdXNwZW5kZWQgb24gQ1NTIGFuZCBJbWFnZXNcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiU3VzcGVuZGVkIG9uIENTU1wiXG4gICAgICAgICAgICAgICAgICA6IDEgPT09IHN1c3BlbmRlZFN0YXRlLmltZ0NvdW50XG4gICAgICAgICAgICAgICAgICAgID8gXCJTdXNwZW5kZWQgb24gYW4gSW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICA6IDAgPCBzdXNwZW5kZWRTdGF0ZS5pbWdDb3VudFxuICAgICAgICAgICAgICAgICAgICAgID8gXCJTdXNwZW5kZWQgb24gSW1hZ2VzXCJcbiAgICAgICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICAgIGNvbXBsZXRlZFJlbmRlclN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgY29tcGxldGVkUmVuZGVyRW5kVGltZVxuICAgICAgICAgICAgKVxuICAgICAgICAgICk7XG4gICAgICAgICAgbWFya1Jvb3RTdXNwZW5kZWQoXG4gICAgICAgICAgICByb290LFxuICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICBzcGF3bmVkTGFuZSxcbiAgICAgICAgICAgICFkaWRTa2lwU3VzcGVuZGVkU2libGluZ3NcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgY29tbWl0Um9vdChcbiAgICAgICAgcm9vdCxcbiAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICBsYW5lcyxcbiAgICAgICAgcmVjb3ZlcmFibGVFcnJvcnMsXG4gICAgICAgIHRyYW5zaXRpb25zLFxuICAgICAgICBkaWRJbmNsdWRlUmVuZGVyUGhhc2VVcGRhdGUsXG4gICAgICAgIHNwYXduZWRMYW5lLFxuICAgICAgICB1cGRhdGVkTGFuZXMsXG4gICAgICAgIHN1c3BlbmRlZFJldHJ5TGFuZXMsXG4gICAgICAgIGV4aXRTdGF0dXMsXG4gICAgICAgIHN1c3BlbmRlZFN0YXRlLFxuICAgICAgICBzdXNwZW5kZWRDb21taXRSZWFzb24sXG4gICAgICAgIGNvbXBsZXRlZFJlbmRlclN0YXJ0VGltZSxcbiAgICAgICAgY29tcGxldGVkUmVuZGVyRW5kVGltZVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNSZW5kZXJDb25zaXN0ZW50V2l0aEV4dGVybmFsU3RvcmVzKGZpbmlzaGVkV29yaykge1xuICAgICAgZm9yICh2YXIgbm9kZSA9IGZpbmlzaGVkV29yazsgOyApIHtcbiAgICAgICAgdmFyIHRhZyA9IG5vZGUudGFnO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKDAgPT09IHRhZyB8fCAxMSA9PT0gdGFnIHx8IDE1ID09PSB0YWcpICYmXG4gICAgICAgICAgbm9kZS5mbGFncyAmIDE2Mzg0ICYmXG4gICAgICAgICAgKCh0YWcgPSBub2RlLnVwZGF0ZVF1ZXVlKSxcbiAgICAgICAgICBudWxsICE9PSB0YWcgJiYgKCh0YWcgPSB0YWcuc3RvcmVzKSwgbnVsbCAhPT0gdGFnKSlcbiAgICAgICAgKVxuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFnLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgY2hlY2sgPSB0YWdbaV0sXG4gICAgICAgICAgICAgIGdldFNuYXBzaG90ID0gY2hlY2suZ2V0U25hcHNob3Q7XG4gICAgICAgICAgICBjaGVjayA9IGNoZWNrLnZhbHVlO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgaWYgKCFvYmplY3RJcyhnZXRTbmFwc2hvdCgpLCBjaGVjaykpIHJldHVybiAhMTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIHRhZyA9IG5vZGUuY2hpbGQ7XG4gICAgICAgIGlmIChub2RlLnN1YnRyZWVGbGFncyAmIDE2Mzg0ICYmIG51bGwgIT09IHRhZylcbiAgICAgICAgICAodGFnLnJldHVybiA9IG5vZGUpLCAobm9kZSA9IHRhZyk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGlmIChub2RlID09PSBmaW5pc2hlZFdvcmspIGJyZWFrO1xuICAgICAgICAgIGZvciAoOyBudWxsID09PSBub2RlLnNpYmxpbmc7ICkge1xuICAgICAgICAgICAgaWYgKG51bGwgPT09IG5vZGUucmV0dXJuIHx8IG5vZGUucmV0dXJuID09PSBmaW5pc2hlZFdvcmspIHJldHVybiAhMDtcbiAgICAgICAgICAgIG5vZGUgPSBub2RlLnJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgbm9kZS5zaWJsaW5nLnJldHVybiA9IG5vZGUucmV0dXJuO1xuICAgICAgICAgIG5vZGUgPSBub2RlLnNpYmxpbmc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya1Jvb3RTdXNwZW5kZWQoXG4gICAgICByb290LFxuICAgICAgc3VzcGVuZGVkTGFuZXMsXG4gICAgICBzcGF3bmVkTGFuZSxcbiAgICAgIGRpZEF0dGVtcHRFbnRpcmVUcmVlXG4gICAgKSB7XG4gICAgICBzdXNwZW5kZWRMYW5lcyAmPSB+d29ya0luUHJvZ3Jlc3NSb290UGluZ2VkTGFuZXM7XG4gICAgICBzdXNwZW5kZWRMYW5lcyAmPSB+d29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXM7XG4gICAgICByb290LnN1c3BlbmRlZExhbmVzIHw9IHN1c3BlbmRlZExhbmVzO1xuICAgICAgcm9vdC5waW5nZWRMYW5lcyAmPSB+c3VzcGVuZGVkTGFuZXM7XG4gICAgICBkaWRBdHRlbXB0RW50aXJlVHJlZSAmJiAocm9vdC53YXJtTGFuZXMgfD0gc3VzcGVuZGVkTGFuZXMpO1xuICAgICAgZGlkQXR0ZW1wdEVudGlyZVRyZWUgPSByb290LmV4cGlyYXRpb25UaW1lcztcbiAgICAgIGZvciAodmFyIGxhbmVzID0gc3VzcGVuZGVkTGFuZXM7IDAgPCBsYW5lczsgKSB7XG4gICAgICAgIHZhciBpbmRleCA9IDMxIC0gY2x6MzIobGFuZXMpLFxuICAgICAgICAgIGxhbmUgPSAxIDw8IGluZGV4O1xuICAgICAgICBkaWRBdHRlbXB0RW50aXJlVHJlZVtpbmRleF0gPSAtMTtcbiAgICAgICAgbGFuZXMgJj0gfmxhbmU7XG4gICAgICB9XG4gICAgICAwICE9PSBzcGF3bmVkTGFuZSAmJlxuICAgICAgICBtYXJrU3Bhd25lZERlZmVycmVkTGFuZShyb290LCBzcGF3bmVkTGFuZSwgc3VzcGVuZGVkTGFuZXMpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmbHVzaFN5bmNXb3JrJDEoKSB7XG4gICAgICByZXR1cm4gKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT0gTm9Db250ZXh0XG4gICAgICAgID8gKGZsdXNoU3luY1dvcmtBY3Jvc3NSb290c19pbXBsKDAsICExKSwgITEpXG4gICAgICAgIDogITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc2V0V29ya0luUHJvZ3Jlc3NTdGFjaygpIHtcbiAgICAgIGlmIChudWxsICE9PSB3b3JrSW5Qcm9ncmVzcykge1xuICAgICAgICBpZiAod29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPT09IE5vdFN1c3BlbmRlZClcbiAgICAgICAgICB2YXIgaW50ZXJydXB0ZWRXb3JrID0gd29ya0luUHJvZ3Jlc3MucmV0dXJuO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgKGludGVycnVwdGVkV29yayA9IHdvcmtJblByb2dyZXNzKSxcbiAgICAgICAgICAgIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpLFxuICAgICAgICAgICAgcmVzZXRIb29rc09uVW53aW5kKGludGVycnVwdGVkV29yayksXG4gICAgICAgICAgICAodGhlbmFibGVTdGF0ZSQxID0gbnVsbCksXG4gICAgICAgICAgICAodGhlbmFibGVJbmRleENvdW50ZXIkMSA9IDApLFxuICAgICAgICAgICAgKGludGVycnVwdGVkV29yayA9IHdvcmtJblByb2dyZXNzKTtcbiAgICAgICAgZm9yICg7IG51bGwgIT09IGludGVycnVwdGVkV29yazsgKVxuICAgICAgICAgIHVud2luZEludGVycnVwdGVkV29yayhpbnRlcnJ1cHRlZFdvcmsuYWx0ZXJuYXRlLCBpbnRlcnJ1cHRlZFdvcmspLFxuICAgICAgICAgICAgKGludGVycnVwdGVkV29yayA9IGludGVycnVwdGVkV29yay5yZXR1cm4pO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpbmFsaXplUmVuZGVyKGxhbmVzLCBmaW5hbGl6YXRpb25UaW1lKSB7XG4gICAgICAwICE9PSAobGFuZXMgJiAxMjcpICYmIChibG9ja2luZ0NsYW1wVGltZSA9IGZpbmFsaXphdGlvblRpbWUpO1xuICAgICAgMCAhPT0gKGxhbmVzICYgNDE5NDA0OCkgJiYgKHRyYW5zaXRpb25DbGFtcFRpbWUgPSBmaW5hbGl6YXRpb25UaW1lKTtcbiAgICAgIDAgIT09IChsYW5lcyAmIDYyOTE0NTYwKSAmJiAocmV0cnlDbGFtcFRpbWUgPSBmaW5hbGl6YXRpb25UaW1lKTtcbiAgICAgIDAgIT09IChsYW5lcyAmIDIwODAzNzQ3ODQpICYmIChpZGxlQ2xhbXBUaW1lID0gZmluYWxpemF0aW9uVGltZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIGxhbmVzKSB7XG4gICAgICBzdXBwb3J0c1VzZXJUaW1pbmcgJiZcbiAgICAgICAgKGNvbnNvbGUudGltZVN0YW1wKFxuICAgICAgICAgIFwiQmxvY2tpbmcgVHJhY2tcIixcbiAgICAgICAgICAwLjAwMyxcbiAgICAgICAgICAwLjAwMyxcbiAgICAgICAgICBcIkJsb2NraW5nXCIsXG4gICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgXCJwcmltYXJ5LWxpZ2h0XCJcbiAgICAgICAgKSxcbiAgICAgICAgY29uc29sZS50aW1lU3RhbXAoXG4gICAgICAgICAgXCJUcmFuc2l0aW9uIFRyYWNrXCIsXG4gICAgICAgICAgMC4wMDMsXG4gICAgICAgICAgMC4wMDMsXG4gICAgICAgICAgXCJUcmFuc2l0aW9uXCIsXG4gICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgXCJwcmltYXJ5LWxpZ2h0XCJcbiAgICAgICAgKSxcbiAgICAgICAgY29uc29sZS50aW1lU3RhbXAoXG4gICAgICAgICAgXCJTdXNwZW5zZSBUcmFja1wiLFxuICAgICAgICAgIDAuMDAzLFxuICAgICAgICAgIDAuMDAzLFxuICAgICAgICAgIFwiU3VzcGVuc2VcIixcbiAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICBcInByaW1hcnktbGlnaHRcIlxuICAgICAgICApLFxuICAgICAgICBjb25zb2xlLnRpbWVTdGFtcChcbiAgICAgICAgICBcIklkbGUgVHJhY2tcIixcbiAgICAgICAgICAwLjAwMyxcbiAgICAgICAgICAwLjAwMyxcbiAgICAgICAgICBcIklkbGVcIixcbiAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICBcInByaW1hcnktbGlnaHRcIlxuICAgICAgICApKTtcbiAgICAgIHZhciBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IHJlbmRlclN0YXJ0VGltZTtcbiAgICAgIHJlbmRlclN0YXJ0VGltZSA9IG5vdygpO1xuICAgICAgaWYgKDAgIT09IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYmIDAgPCBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSkge1xuICAgICAgICBzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9PT0gUm9vdFN1c3BlbmRlZCB8fFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RTdXNwZW5kZWRXaXRoRGVsYXlcbiAgICAgICAgKVxuICAgICAgICAgIGxvZ1N1c3BlbmRlZFJlbmRlclBoYXNlKFxuICAgICAgICAgICAgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUsXG4gICAgICAgICAgICByZW5kZXJTdGFydFRpbWUsXG4gICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVXBkYXRlVGFza1xuICAgICAgICAgICk7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHZhciBlbmRUaW1lID0gcmVuZGVyU3RhcnRUaW1lLFxuICAgICAgICAgICAgZGVidWdUYXNrID0gd29ya0luUHJvZ3Jlc3NVcGRhdGVUYXNrO1xuICAgICAgICAgIGlmIChzdXBwb3J0c1VzZXJUaW1pbmcgJiYgIShlbmRUaW1lIDw9IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lKSkge1xuICAgICAgICAgICAgdmFyIGNvbG9yID1cbiAgICAgICAgICAgICAgICAobGFuZXMgJiA3MzgxOTc2NTMpID09PSBsYW5lc1xuICAgICAgICAgICAgICAgICAgPyBcInRlcnRpYXJ5LWRhcmtcIlxuICAgICAgICAgICAgICAgICAgOiBcInByaW1hcnktZGFya1wiLFxuICAgICAgICAgICAgICBsYWJlbCA9XG4gICAgICAgICAgICAgICAgKGxhbmVzICYgNTM2ODcwOTEyKSA9PT0gbGFuZXNcbiAgICAgICAgICAgICAgICAgID8gXCJQcmV3YXJtXCJcbiAgICAgICAgICAgICAgICAgIDogKGxhbmVzICYgMjAxMzI2NzQxKSA9PT0gbGFuZXNcbiAgICAgICAgICAgICAgICAgICAgPyBcIkludGVycnVwdGVkIEh5ZHJhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIDogXCJJbnRlcnJ1cHRlZCBSZW5kZXJcIjtcbiAgICAgICAgICAgIGRlYnVnVGFza1xuICAgICAgICAgICAgICA/IGRlYnVnVGFzay5ydW4oXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLnRpbWVTdGFtcC5iaW5kKFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICAgIGVuZFRpbWUsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IGNvbnNvbGUudGltZVN0YW1wKFxuICAgICAgICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICAgICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgIGVuZFRpbWUsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICAgIGNvbG9yXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxpemVSZW5kZXIod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMsIHJlbmRlclN0YXJ0VGltZSk7XG4gICAgICB9XG4gICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IHdvcmtJblByb2dyZXNzVXBkYXRlVGFzaztcbiAgICAgIHdvcmtJblByb2dyZXNzVXBkYXRlVGFzayA9IG51bGw7XG4gICAgICBpZiAoMCAhPT0gKGxhbmVzICYgMTI3KSkge1xuICAgICAgICB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sgPSBibG9ja2luZ1VwZGF0ZVRhc2s7XG4gICAgICAgIGRlYnVnVGFzayA9XG4gICAgICAgICAgMCA8PSBibG9ja2luZ1VwZGF0ZVRpbWUgJiYgYmxvY2tpbmdVcGRhdGVUaW1lIDwgYmxvY2tpbmdDbGFtcFRpbWVcbiAgICAgICAgICAgID8gYmxvY2tpbmdDbGFtcFRpbWVcbiAgICAgICAgICAgIDogYmxvY2tpbmdVcGRhdGVUaW1lO1xuICAgICAgICBlbmRUaW1lID1cbiAgICAgICAgICAwIDw9IGJsb2NraW5nRXZlbnRUaW1lICYmIGJsb2NraW5nRXZlbnRUaW1lIDwgYmxvY2tpbmdDbGFtcFRpbWVcbiAgICAgICAgICAgID8gYmxvY2tpbmdDbGFtcFRpbWVcbiAgICAgICAgICAgIDogYmxvY2tpbmdFdmVudFRpbWU7XG4gICAgICAgIGNvbG9yID1cbiAgICAgICAgICAwIDw9IGVuZFRpbWUgPyBlbmRUaW1lIDogMCA8PSBkZWJ1Z1Rhc2sgPyBkZWJ1Z1Rhc2sgOiByZW5kZXJTdGFydFRpbWU7XG4gICAgICAgIDAgPD0gYmxvY2tpbmdTdXNwZW5kZWRUaW1lXG4gICAgICAgICAgPyAoc2V0Q3VycmVudFRyYWNrRnJvbUxhbmVzKDIpLFxuICAgICAgICAgICAgbG9nU3VzcGVuZGVkV2l0aERlbGF5UGhhc2UoXG4gICAgICAgICAgICAgIGJsb2NraW5nU3VzcGVuZGVkVGltZSxcbiAgICAgICAgICAgICAgY29sb3IsXG4gICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZVxuICAgICAgICAgICAgKSlcbiAgICAgICAgICA6IDAgIT09IChhbmltYXRpbmdMYW5lcyAmIDEyNykgJiZcbiAgICAgICAgICAgIChzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMoMiksXG4gICAgICAgICAgICBsb2dBbmltYXRpbmdQaGFzZShibG9ja2luZ0NsYW1wVGltZSwgY29sb3IsIGFuaW1hdGluZ1Rhc2spKTtcbiAgICAgICAgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUgPSBkZWJ1Z1Rhc2s7XG4gICAgICAgIHZhciBldmVudFRpbWUgPSBlbmRUaW1lLFxuICAgICAgICAgIGV2ZW50VHlwZSA9IGJsb2NraW5nRXZlbnRUeXBlLFxuICAgICAgICAgIGV2ZW50SXNSZXBlYXQgPSAwIDwgYmxvY2tpbmdFdmVudFJlcGVhdFRpbWUsXG4gICAgICAgICAgaXNTcGF3bmVkVXBkYXRlID0gYmxvY2tpbmdVcGRhdGVUeXBlID09PSBTUEFXTkVEX1VQREFURSxcbiAgICAgICAgICBpc1BpbmdlZFVwZGF0ZSA9IGJsb2NraW5nVXBkYXRlVHlwZSA9PT0gUElOR0VEX1VQREFURTtcbiAgICAgICAgZGVidWdUYXNrID0gcmVuZGVyU3RhcnRUaW1lO1xuICAgICAgICBlbmRUaW1lID0gYmxvY2tpbmdVcGRhdGVUYXNrO1xuICAgICAgICBjb2xvciA9IGJsb2NraW5nVXBkYXRlTWV0aG9kTmFtZTtcbiAgICAgICAgbGFiZWwgPSBibG9ja2luZ1VwZGF0ZUNvbXBvbmVudE5hbWU7XG4gICAgICAgIGlmIChzdXBwb3J0c1VzZXJUaW1pbmcpIHtcbiAgICAgICAgICBjdXJyZW50VHJhY2sgPSBcIkJsb2NraW5nXCI7XG4gICAgICAgICAgMCA8IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lXG4gICAgICAgICAgICA/IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lID4gZGVidWdUYXNrICYmXG4gICAgICAgICAgICAgIChwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IGRlYnVnVGFzaylcbiAgICAgICAgICAgIDogKHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lID0gZGVidWdUYXNrKTtcbiAgICAgICAgICAwIDwgZXZlbnRUaW1lXG4gICAgICAgICAgICA/IGV2ZW50VGltZSA+IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lICYmXG4gICAgICAgICAgICAgIChldmVudFRpbWUgPSBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSlcbiAgICAgICAgICAgIDogKGV2ZW50VGltZSA9IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lKTtcbiAgICAgICAgICBpZiAobnVsbCAhPT0gZXZlbnRUeXBlICYmIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lID4gZXZlbnRUaW1lKSB7XG4gICAgICAgICAgICB2YXIgY29sb3IkanNjb21wJDAgPSBldmVudElzUmVwZWF0ID8gXCJzZWNvbmRhcnktbGlnaHRcIiA6IFwid2FybmluZ1wiO1xuICAgICAgICAgICAgZW5kVGltZVxuICAgICAgICAgICAgICA/IGVuZFRpbWUucnVuKFxuICAgICAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZChcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZSxcbiAgICAgICAgICAgICAgICAgICAgZXZlbnRJc1JlcGVhdCA/IFwiQ29uc2VjdXRpdmVcIiA6IFwiRXZlbnQ6IFwiICsgZXZlbnRUeXBlLFxuICAgICAgICAgICAgICAgICAgICBldmVudFRpbWUsXG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLFxuICAgICAgICAgICAgICAgICAgICBjb2xvciRqc2NvbXAkMFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBjb25zb2xlLnRpbWVTdGFtcChcbiAgICAgICAgICAgICAgICAgIGV2ZW50SXNSZXBlYXQgPyBcIkNvbnNlY3V0aXZlXCIgOiBcIkV2ZW50OiBcIiArIGV2ZW50VHlwZSxcbiAgICAgICAgICAgICAgICAgIGV2ZW50VGltZSxcbiAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFRyYWNrLFxuICAgICAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgICAgICAgICBjb2xvciRqc2NvbXAkMFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlYnVnVGFzayA+IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lICYmXG4gICAgICAgICAgICAoKGV2ZW50VGltZSA9IGlzU3Bhd25lZFVwZGF0ZVxuICAgICAgICAgICAgICA/IFwiZXJyb3JcIlxuICAgICAgICAgICAgICA6IChsYW5lcyAmIDczODE5NzY1MykgPT09IGxhbmVzXG4gICAgICAgICAgICAgICAgPyBcInRlcnRpYXJ5LWxpZ2h0XCJcbiAgICAgICAgICAgICAgICA6IFwicHJpbWFyeS1saWdodFwiKSxcbiAgICAgICAgICAgIChpc1NwYXduZWRVcGRhdGUgPSBpc1BpbmdlZFVwZGF0ZVxuICAgICAgICAgICAgICA/IFwiUHJvbWlzZSBSZXNvbHZlZFwiXG4gICAgICAgICAgICAgIDogaXNTcGF3bmVkVXBkYXRlXG4gICAgICAgICAgICAgICAgPyBcIkNhc2NhZGluZyBVcGRhdGVcIlxuICAgICAgICAgICAgICAgIDogNSA8IGRlYnVnVGFzayAtIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lXG4gICAgICAgICAgICAgICAgICA/IFwiVXBkYXRlIEJsb2NrZWRcIlxuICAgICAgICAgICAgICAgICAgOiBcIlVwZGF0ZVwiKSxcbiAgICAgICAgICAgIChpc1BpbmdlZFVwZGF0ZSA9IFtdKSxcbiAgICAgICAgICAgIG51bGwgIT0gbGFiZWwgJiYgaXNQaW5nZWRVcGRhdGUucHVzaChbXCJDb21wb25lbnQgbmFtZVwiLCBsYWJlbF0pLFxuICAgICAgICAgICAgbnVsbCAhPSBjb2xvciAmJiBpc1BpbmdlZFVwZGF0ZS5wdXNoKFtcIk1ldGhvZCBuYW1lXCIsIGNvbG9yXSksXG4gICAgICAgICAgICAocHJldmlvdXNSZW5kZXJTdGFydFRpbWUgPSB7XG4gICAgICAgICAgICAgIHN0YXJ0OiBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgZW5kOiBkZWJ1Z1Rhc2ssXG4gICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgIGRldnRvb2xzOiB7XG4gICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBpc1BpbmdlZFVwZGF0ZSxcbiAgICAgICAgICAgICAgICAgIHRyYWNrOiBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgICB0cmFja0dyb3VwOiBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiBldmVudFRpbWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZW5kVGltZVxuICAgICAgICAgICAgICA/IGVuZFRpbWUucnVuKFxuICAgICAgICAgICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZS5iaW5kKFxuICAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZSxcbiAgICAgICAgICAgICAgICAgICAgaXNTcGF3bmVkVXBkYXRlLFxuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBwZXJmb3JtYW5jZS5tZWFzdXJlKGlzU3Bhd25lZFVwZGF0ZSwgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUpKTtcbiAgICAgICAgfVxuICAgICAgICBibG9ja2luZ1VwZGF0ZVRpbWUgPSAtMS4xO1xuICAgICAgICBibG9ja2luZ1VwZGF0ZVR5cGUgPSAwO1xuICAgICAgICBibG9ja2luZ1VwZGF0ZUNvbXBvbmVudE5hbWUgPSBibG9ja2luZ1VwZGF0ZU1ldGhvZE5hbWUgPSBudWxsO1xuICAgICAgICBibG9ja2luZ1N1c3BlbmRlZFRpbWUgPSAtMS4xO1xuICAgICAgICBibG9ja2luZ0V2ZW50UmVwZWF0VGltZSA9IGJsb2NraW5nRXZlbnRUaW1lO1xuICAgICAgICBibG9ja2luZ0V2ZW50VGltZSA9IC0xLjE7XG4gICAgICAgIGJsb2NraW5nQ2xhbXBUaW1lID0gbm93KCk7XG4gICAgICB9XG4gICAgICAwICE9PSAobGFuZXMgJiA0MTk0MDQ4KSAmJlxuICAgICAgICAoKHdvcmtJblByb2dyZXNzVXBkYXRlVGFzayA9IHRyYW5zaXRpb25VcGRhdGVUYXNrKSxcbiAgICAgICAgKGRlYnVnVGFzayA9XG4gICAgICAgICAgMCA8PSB0cmFuc2l0aW9uU3RhcnRUaW1lICYmIHRyYW5zaXRpb25TdGFydFRpbWUgPCB0cmFuc2l0aW9uQ2xhbXBUaW1lXG4gICAgICAgICAgICA/IHRyYW5zaXRpb25DbGFtcFRpbWVcbiAgICAgICAgICAgIDogdHJhbnNpdGlvblN0YXJ0VGltZSksXG4gICAgICAgIChwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9XG4gICAgICAgICAgMCA8PSB0cmFuc2l0aW9uVXBkYXRlVGltZSAmJlxuICAgICAgICAgIHRyYW5zaXRpb25VcGRhdGVUaW1lIDwgdHJhbnNpdGlvbkNsYW1wVGltZVxuICAgICAgICAgICAgPyB0cmFuc2l0aW9uQ2xhbXBUaW1lXG4gICAgICAgICAgICA6IHRyYW5zaXRpb25VcGRhdGVUaW1lKSxcbiAgICAgICAgKGVuZFRpbWUgPVxuICAgICAgICAgIDAgPD0gdHJhbnNpdGlvbkV2ZW50VGltZSAmJiB0cmFuc2l0aW9uRXZlbnRUaW1lIDwgdHJhbnNpdGlvbkNsYW1wVGltZVxuICAgICAgICAgICAgPyB0cmFuc2l0aW9uQ2xhbXBUaW1lXG4gICAgICAgICAgICA6IHRyYW5zaXRpb25FdmVudFRpbWUpLFxuICAgICAgICAoY29sb3IgPVxuICAgICAgICAgIDAgPD0gZW5kVGltZVxuICAgICAgICAgICAgPyBlbmRUaW1lXG4gICAgICAgICAgICA6IDAgPD0gcHJldmlvdXNSZW5kZXJTdGFydFRpbWVcbiAgICAgICAgICAgICAgPyBwcmV2aW91c1JlbmRlclN0YXJ0VGltZVxuICAgICAgICAgICAgICA6IHJlbmRlclN0YXJ0VGltZSksXG4gICAgICAgIDAgPD0gdHJhbnNpdGlvblN1c3BlbmRlZFRpbWVcbiAgICAgICAgICA/IChzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMoMjU2KSxcbiAgICAgICAgICAgIGxvZ1N1c3BlbmRlZFdpdGhEZWxheVBoYXNlKFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uU3VzcGVuZGVkVGltZSxcbiAgICAgICAgICAgICAgY29sb3IsXG4gICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2tcbiAgICAgICAgICAgICkpXG4gICAgICAgICAgOiAwICE9PSAoYW5pbWF0aW5nTGFuZXMgJiA0MTk0MDQ4KSAmJlxuICAgICAgICAgICAgKHNldEN1cnJlbnRUcmFja0Zyb21MYW5lcygyNTYpLFxuICAgICAgICAgICAgbG9nQW5pbWF0aW5nUGhhc2UodHJhbnNpdGlvbkNsYW1wVGltZSwgY29sb3IsIGFuaW1hdGluZ1Rhc2spKSxcbiAgICAgICAgKGlzUGluZ2VkVXBkYXRlID0gZW5kVGltZSksXG4gICAgICAgIChldmVudFRpbWUgPSB0cmFuc2l0aW9uRXZlbnRUeXBlKSxcbiAgICAgICAgKGV2ZW50VHlwZSA9IDAgPCB0cmFuc2l0aW9uRXZlbnRSZXBlYXRUaW1lKSxcbiAgICAgICAgKGV2ZW50SXNSZXBlYXQgPSB0cmFuc2l0aW9uVXBkYXRlVHlwZSA9PT0gUElOR0VEX1VQREFURSksXG4gICAgICAgIChjb2xvciA9IHJlbmRlclN0YXJ0VGltZSksXG4gICAgICAgIChlbmRUaW1lID0gdHJhbnNpdGlvblVwZGF0ZVRhc2spLFxuICAgICAgICAobGFiZWwgPSB0cmFuc2l0aW9uVXBkYXRlTWV0aG9kTmFtZSksXG4gICAgICAgIChpc1NwYXduZWRVcGRhdGUgPSB0cmFuc2l0aW9uVXBkYXRlQ29tcG9uZW50TmFtZSksXG4gICAgICAgIHN1cHBvcnRzVXNlclRpbWluZyAmJlxuICAgICAgICAgICgoY3VycmVudFRyYWNrID0gXCJUcmFuc2l0aW9uXCIpLFxuICAgICAgICAgIDAgPCBwcmV2aW91c1JlbmRlclN0YXJ0VGltZVxuICAgICAgICAgICAgPyBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA+IGNvbG9yICYmXG4gICAgICAgICAgICAgIChwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IGNvbG9yKVxuICAgICAgICAgICAgOiAocHJldmlvdXNSZW5kZXJTdGFydFRpbWUgPSBjb2xvciksXG4gICAgICAgICAgMCA8IGRlYnVnVGFza1xuICAgICAgICAgICAgPyBkZWJ1Z1Rhc2sgPiBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSAmJlxuICAgICAgICAgICAgICAoZGVidWdUYXNrID0gcHJldmlvdXNSZW5kZXJTdGFydFRpbWUpXG4gICAgICAgICAgICA6IChkZWJ1Z1Rhc2sgPSBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSksXG4gICAgICAgICAgMCA8IGlzUGluZ2VkVXBkYXRlXG4gICAgICAgICAgICA/IGlzUGluZ2VkVXBkYXRlID4gZGVidWdUYXNrICYmIChpc1BpbmdlZFVwZGF0ZSA9IGRlYnVnVGFzaylcbiAgICAgICAgICAgIDogKGlzUGluZ2VkVXBkYXRlID0gZGVidWdUYXNrKSxcbiAgICAgICAgICBkZWJ1Z1Rhc2sgPiBpc1BpbmdlZFVwZGF0ZSAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gZXZlbnRUaW1lICYmXG4gICAgICAgICAgICAoKGNvbG9yJGpzY29tcCQwID0gZXZlbnRUeXBlID8gXCJzZWNvbmRhcnktbGlnaHRcIiA6IFwid2FybmluZ1wiKSxcbiAgICAgICAgICAgIGVuZFRpbWVcbiAgICAgICAgICAgICAgPyBlbmRUaW1lLnJ1bihcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUudGltZVN0YW1wLmJpbmQoXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUsXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50VHlwZSA/IFwiQ29uc2VjdXRpdmVcIiA6IFwiRXZlbnQ6IFwiICsgZXZlbnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICBpc1BpbmdlZFVwZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgZGVidWdUYXNrLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLFxuICAgICAgICAgICAgICAgICAgICBjb2xvciRqc2NvbXAkMFxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBjb25zb2xlLnRpbWVTdGFtcChcbiAgICAgICAgICAgICAgICAgIGV2ZW50VHlwZSA/IFwiQ29uc2VjdXRpdmVcIiA6IFwiRXZlbnQ6IFwiICsgZXZlbnRUaW1lLFxuICAgICAgICAgICAgICAgICAgaXNQaW5nZWRVcGRhdGUsXG4gICAgICAgICAgICAgICAgICBkZWJ1Z1Rhc2ssXG4gICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICAgIGNvbG9yJGpzY29tcCQwXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUgPiBkZWJ1Z1Rhc2sgJiZcbiAgICAgICAgICAgIChlbmRUaW1lXG4gICAgICAgICAgICAgID8gZW5kVGltZS5ydW4oXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLnRpbWVTdGFtcC5iaW5kKFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAgICAgICBcIkFjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICBkZWJ1Z1Rhc2ssXG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLFxuICAgICAgICAgICAgICAgICAgICBcInByaW1hcnktZGFya1wiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IGNvbnNvbGUudGltZVN0YW1wKFxuICAgICAgICAgICAgICAgICAgXCJBY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgIGRlYnVnVGFzayxcbiAgICAgICAgICAgICAgICAgIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFRyYWNrLFxuICAgICAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgICAgICAgICBcInByaW1hcnktZGFya1wiXG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgY29sb3IgPiBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSAmJlxuICAgICAgICAgICAgKChkZWJ1Z1Rhc2sgPSBldmVudElzUmVwZWF0XG4gICAgICAgICAgICAgID8gXCJQcm9taXNlIFJlc29sdmVkXCJcbiAgICAgICAgICAgICAgOiA1IDwgY29sb3IgLSBwcmV2aW91c1JlbmRlclN0YXJ0VGltZVxuICAgICAgICAgICAgICAgID8gXCJVcGRhdGUgQmxvY2tlZFwiXG4gICAgICAgICAgICAgICAgOiBcIlVwZGF0ZVwiKSxcbiAgICAgICAgICAgIChpc1BpbmdlZFVwZGF0ZSA9IFtdKSxcbiAgICAgICAgICAgIG51bGwgIT0gaXNTcGF3bmVkVXBkYXRlICYmXG4gICAgICAgICAgICAgIGlzUGluZ2VkVXBkYXRlLnB1c2goW1wiQ29tcG9uZW50IG5hbWVcIiwgaXNTcGF3bmVkVXBkYXRlXSksXG4gICAgICAgICAgICBudWxsICE9IGxhYmVsICYmIGlzUGluZ2VkVXBkYXRlLnB1c2goW1wiTWV0aG9kIG5hbWVcIiwgbGFiZWxdKSxcbiAgICAgICAgICAgIChwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IHtcbiAgICAgICAgICAgICAgc3RhcnQ6IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lLFxuICAgICAgICAgICAgICBlbmQ6IGNvbG9yLFxuICAgICAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgICAgICBkZXZ0b29sczoge1xuICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogaXNQaW5nZWRVcGRhdGUsXG4gICAgICAgICAgICAgICAgICB0cmFjazogY3VycmVudFRyYWNrLFxuICAgICAgICAgICAgICAgICAgdHJhY2tHcm91cDogTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgICAgICAgICBjb2xvcjogXCJwcmltYXJ5LWxpZ2h0XCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZW5kVGltZVxuICAgICAgICAgICAgICA/IGVuZFRpbWUucnVuKFxuICAgICAgICAgICAgICAgICAgcGVyZm9ybWFuY2UubWVhc3VyZS5iaW5kKFxuICAgICAgICAgICAgICAgICAgICBwZXJmb3JtYW5jZSxcbiAgICAgICAgICAgICAgICAgICAgZGVidWdUYXNrLFxuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBwZXJmb3JtYW5jZS5tZWFzdXJlKGRlYnVnVGFzaywgcHJldmlvdXNSZW5kZXJTdGFydFRpbWUpKSksXG4gICAgICAgICh0cmFuc2l0aW9uVXBkYXRlVGltZSA9IHRyYW5zaXRpb25TdGFydFRpbWUgPSAtMS4xKSxcbiAgICAgICAgKHRyYW5zaXRpb25VcGRhdGVUeXBlID0gMCksXG4gICAgICAgICh0cmFuc2l0aW9uU3VzcGVuZGVkVGltZSA9IC0xLjEpLFxuICAgICAgICAodHJhbnNpdGlvbkV2ZW50UmVwZWF0VGltZSA9IHRyYW5zaXRpb25FdmVudFRpbWUpLFxuICAgICAgICAodHJhbnNpdGlvbkV2ZW50VGltZSA9IC0xLjEpLFxuICAgICAgICAodHJhbnNpdGlvbkNsYW1wVGltZSA9IG5vdygpKSk7XG4gICAgICAwICE9PSAobGFuZXMgJiA2MjkxNDU2MCkgJiZcbiAgICAgICAgMCAhPT0gKGFuaW1hdGluZ0xhbmVzICYgNjI5MTQ1NjApICYmXG4gICAgICAgIChzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMoNDE5NDMwNCksXG4gICAgICAgIGxvZ0FuaW1hdGluZ1BoYXNlKHJldHJ5Q2xhbXBUaW1lLCByZW5kZXJTdGFydFRpbWUsIGFuaW1hdGluZ1Rhc2spKTtcbiAgICAgIDAgIT09IChsYW5lcyAmIDIwODAzNzQ3ODQpICYmXG4gICAgICAgIDAgIT09IChhbmltYXRpbmdMYW5lcyAmIDIwODAzNzQ3ODQpICYmXG4gICAgICAgIChzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMoMjY4NDM1NDU2KSxcbiAgICAgICAgbG9nQW5pbWF0aW5nUGhhc2UoaWRsZUNsYW1wVGltZSwgcmVuZGVyU3RhcnRUaW1lLCBhbmltYXRpbmdUYXNrKSk7XG4gICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IHJvb3QudGltZW91dEhhbmRsZTtcbiAgICAgIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lICE9PSBub1RpbWVvdXQgJiZcbiAgICAgICAgKChyb290LnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQpLFxuICAgICAgICBjYW5jZWxUaW1lb3V0KHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lKSk7XG4gICAgICBwcmV2aW91c1JlbmRlclN0YXJ0VGltZSA9IHJvb3QuY2FuY2VsUGVuZGluZ0NvbW1pdDtcbiAgICAgIG51bGwgIT09IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lICYmXG4gICAgICAgICgocm9vdC5jYW5jZWxQZW5kaW5nQ29tbWl0ID0gbnVsbCksIHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lKCkpO1xuICAgICAgcGVuZGluZ0VmZmVjdHNMYW5lcyA9IDA7XG4gICAgICByZXNldFdvcmtJblByb2dyZXNzU3RhY2soKTtcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdCA9IHJvb3Q7XG4gICAgICB3b3JrSW5Qcm9ncmVzcyA9IHByZXZpb3VzUmVuZGVyU3RhcnRUaW1lID0gY3JlYXRlV29ya0luUHJvZ3Jlc3MoXG4gICAgICAgIHJvb3QuY3VycmVudCxcbiAgICAgICAgbnVsbFxuICAgICAgKTtcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gbGFuZXM7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZDtcbiAgICAgIHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUgPSBudWxsO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkU2tpcFN1c3BlbmRlZFNpYmxpbmdzID0gITE7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJc1ByZXJlbmRlcmluZyA9IGNoZWNrSWZSb290SXNQcmVyZW5kZXJpbmcocm9vdCwgbGFuZXMpO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkQXR0YWNoUGluZ0xpc3RlbmVyID0gITE7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEluUHJvZ3Jlc3M7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJldHJ5TGFuZXMgPVxuICAgICAgICB3b3JrSW5Qcm9ncmVzc0RlZmVycmVkTGFuZSA9XG4gICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFBpbmdlZExhbmVzID1cbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMgPVxuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RTa2lwcGVkTGFuZXMgPVxuICAgICAgICAgIDA7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZWNvdmVyYWJsZUVycm9ycyA9IHdvcmtJblByb2dyZXNzUm9vdENvbmN1cnJlbnRFcnJvcnMgPVxuICAgICAgICBudWxsO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkSW5jbHVkZVJlY3Vyc2l2ZVJlbmRlclVwZGF0ZSA9ICExO1xuICAgICAgMCAhPT0gKGxhbmVzICYgOCkgJiYgKGxhbmVzIHw9IGxhbmVzICYgMzIpO1xuICAgICAgZW5kVGltZSA9IHJvb3QuZW50YW5nbGVkTGFuZXM7XG4gICAgICBpZiAoMCAhPT0gZW5kVGltZSlcbiAgICAgICAgZm9yIChyb290ID0gcm9vdC5lbnRhbmdsZW1lbnRzLCBlbmRUaW1lICY9IGxhbmVzOyAwIDwgZW5kVGltZTsgKVxuICAgICAgICAgIChkZWJ1Z1Rhc2sgPSAzMSAtIGNsejMyKGVuZFRpbWUpKSxcbiAgICAgICAgICAgIChjb2xvciA9IDEgPDwgZGVidWdUYXNrKSxcbiAgICAgICAgICAgIChsYW5lcyB8PSByb290W2RlYnVnVGFza10pLFxuICAgICAgICAgICAgKGVuZFRpbWUgJj0gfmNvbG9yKTtcbiAgICAgIGVudGFuZ2xlZFJlbmRlckxhbmVzID0gbGFuZXM7XG4gICAgICBmaW5pc2hRdWV1ZWluZ0NvbmN1cnJlbnRVcGRhdGVzKCk7XG4gICAgICByb290ID0gZ2V0Q3VycmVudFRpbWUoKTtcbiAgICAgIDFlMyA8IHJvb3QgLSBsYXN0UmVzZXRUaW1lICYmXG4gICAgICAgICgoUmVhY3RTaGFyZWRJbnRlcm5hbHMucmVjZW50bHlDcmVhdGVkT3duZXJTdGFja3MgPSAwKSxcbiAgICAgICAgKGxhc3RSZXNldFRpbWUgPSByb290KSk7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5kaXNjYXJkUGVuZGluZ1dhcm5pbmdzKCk7XG4gICAgICByZXR1cm4gcHJldmlvdXNSZW5kZXJTdGFydFRpbWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGhhbmRsZVRocm93KHJvb3QsIHRocm93blZhbHVlKSB7XG4gICAgICBjdXJyZW50bHlSZW5kZXJpbmdGaWJlciA9IG51bGw7XG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gQ29udGV4dE9ubHlEaXNwYXRjaGVyO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuZ2V0Q3VycmVudFN0YWNrID0gbnVsbDtcbiAgICAgIGlzUmVuZGVyaW5nID0gITE7XG4gICAgICBjdXJyZW50ID0gbnVsbDtcbiAgICAgIHRocm93blZhbHVlID09PSBTdXNwZW5zZUV4Y2VwdGlvbiB8fFxuICAgICAgdGhyb3duVmFsdWUgPT09IFN1c3BlbnNlQWN0aW9uRXhjZXB0aW9uXG4gICAgICAgID8gKCh0aHJvd25WYWx1ZSA9IGdldFN1c3BlbmRlZFRoZW5hYmxlKCkpLFxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IFN1c3BlbmRlZE9uSW1tZWRpYXRlKSlcbiAgICAgICAgOiB0aHJvd25WYWx1ZSA9PT0gU3VzcGVuc2V5Q29tbWl0RXhjZXB0aW9uXG4gICAgICAgICAgPyAoKHRocm93blZhbHVlID0gZ2V0U3VzcGVuZGVkVGhlbmFibGUoKSksXG4gICAgICAgICAgICAod29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPSBTdXNwZW5kZWRPbkluc3RhbmNlKSlcbiAgICAgICAgICA6ICh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9XG4gICAgICAgICAgICAgIHRocm93blZhbHVlID09PSBTZWxlY3RpdmVIeWRyYXRpb25FeGNlcHRpb25cbiAgICAgICAgICAgICAgICA/IFN1c3BlbmRlZE9uSHlkcmF0aW9uXG4gICAgICAgICAgICAgICAgOiBudWxsICE9PSB0aHJvd25WYWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgdGhyb3duVmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdGhyb3duVmFsdWUudGhlblxuICAgICAgICAgICAgICAgICAgPyBTdXNwZW5kZWRPbkRlcHJlY2F0ZWRUaHJvd1Byb21pc2VcbiAgICAgICAgICAgICAgICAgIDogU3VzcGVuZGVkT25FcnJvcik7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gdGhyb3duVmFsdWU7XG4gICAgICB2YXIgZXJyb3JlZFdvcmsgPSB3b3JrSW5Qcm9ncmVzcztcbiAgICAgIG51bGwgPT09IGVycm9yZWRXb3JrXG4gICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdEZhdGFsRXJyb3JlZCksXG4gICAgICAgICAgbG9nVW5jYXVnaHRFcnJvcihcbiAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcih0aHJvd25WYWx1ZSwgcm9vdC5jdXJyZW50KVxuICAgICAgICAgICkpXG4gICAgICAgIDogZXJyb3JlZFdvcmsubW9kZSAmIFByb2ZpbGVNb2RlICYmXG4gICAgICAgICAgc3RvcFByb2ZpbGVyVGltZXJJZlJ1bm5pbmdBbmRSZWNvcmREdXJhdGlvbihlcnJvcmVkV29yayk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNob3VsZFJlbWFpbk9uUHJldmlvdXNTY3JlZW4oKSB7XG4gICAgICB2YXIgaGFuZGxlciA9IHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLmN1cnJlbnQ7XG4gICAgICByZXR1cm4gbnVsbCA9PT0gaGFuZGxlclxuICAgICAgICA/ICEwXG4gICAgICAgIDogKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYgNDE5NDA0OCkgPT09XG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lc1xuICAgICAgICAgID8gbnVsbCA9PT0gc2hlbGxCb3VuZGFyeVxuICAgICAgICAgICAgPyAhMFxuICAgICAgICAgICAgOiAhMVxuICAgICAgICAgIDogKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYgNjI5MTQ1NjApID09PVxuICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzIHx8XG4gICAgICAgICAgICAgIDAgIT09ICh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmIDUzNjg3MDkxMilcbiAgICAgICAgICAgID8gaGFuZGxlciA9PT0gc2hlbGxCb3VuZGFyeVxuICAgICAgICAgICAgOiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHVzaERpc3BhdGNoZXIoKSB7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IENvbnRleHRPbmx5RGlzcGF0Y2hlcjtcbiAgICAgIHJldHVybiBudWxsID09PSBwcmV2RGlzcGF0Y2hlciA/IENvbnRleHRPbmx5RGlzcGF0Y2hlciA6IHByZXZEaXNwYXRjaGVyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwdXNoQXN5bmNEaXNwYXRjaGVyKCkge1xuICAgICAgdmFyIHByZXZBc3luY0Rpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5BO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuQSA9IERlZmF1bHRBc3luY0Rpc3BhdGNoZXI7XG4gICAgICByZXR1cm4gcHJldkFzeW5jRGlzcGF0Y2hlcjtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya1JlbmRlckRlcml2ZWRDYXVzZShmaWJlcikge1xuICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3NVcGRhdGVUYXNrICYmXG4gICAgICAgICh3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sgPVxuICAgICAgICAgIG51bGwgPT0gZmliZXIuX2RlYnVnVGFzayA/IG51bGwgOiBmaWJlci5fZGVidWdUYXNrKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVuZGVyRGlkU3VzcGVuZERlbGF5SWZQb3NzaWJsZSgpIHtcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290U3VzcGVuZGVkV2l0aERlbGF5O1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RGlkU2tpcFN1c3BlbmRlZFNpYmxpbmdzIHx8XG4gICAgICAgICgod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiA0MTk0MDQ4KSAhPT1cbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmJlxuICAgICAgICAgIG51bGwgIT09IHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLmN1cnJlbnQpIHx8XG4gICAgICAgICh3b3JrSW5Qcm9ncmVzc1Jvb3RJc1ByZXJlbmRlcmluZyA9ICEwKTtcbiAgICAgICgwID09PSAod29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzICYgMTM0MjE3NzI3KSAmJlxuICAgICAgICAwID09PSAod29ya0luUHJvZ3Jlc3NSb290SW50ZXJsZWF2ZWRVcGRhdGVkTGFuZXMgJiAxMzQyMTc3MjcpKSB8fFxuICAgICAgICBudWxsID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3QgfHxcbiAgICAgICAgbWFya1Jvb3RTdXNwZW5kZWQoXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290LFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzLFxuICAgICAgICAgIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lLFxuICAgICAgICAgICExXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbmRlclJvb3RTeW5jKHJvb3QsIGxhbmVzLCBzaG91bGRZaWVsZEZvclByZXJlbmRlcmluZykge1xuICAgICAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgICAgIGV4ZWN1dGlvbkNvbnRleHQgfD0gUmVuZGVyQ29udGV4dDtcbiAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IHB1c2hEaXNwYXRjaGVyKCksXG4gICAgICAgIHByZXZBc3luY0Rpc3BhdGNoZXIgPSBwdXNoQXN5bmNEaXNwYXRjaGVyKCk7XG4gICAgICBpZiAoXG4gICAgICAgIHdvcmtJblByb2dyZXNzUm9vdCAhPT0gcm9vdCB8fFxuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAhPT0gbGFuZXNcbiAgICAgICkge1xuICAgICAgICBpZiAoaXNEZXZUb29sc1ByZXNlbnQpIHtcbiAgICAgICAgICB2YXIgbWVtb2l6ZWRVcGRhdGVycyA9IHJvb3QubWVtb2l6ZWRVcGRhdGVycztcbiAgICAgICAgICAwIDwgbWVtb2l6ZWRVcGRhdGVycy5zaXplICYmXG4gICAgICAgICAgICAocmVzdG9yZVBlbmRpbmdVcGRhdGVycyhyb290LCB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyksXG4gICAgICAgICAgICBtZW1vaXplZFVwZGF0ZXJzLmNsZWFyKCkpO1xuICAgICAgICAgIG1vdmVQZW5kaW5nRmliZXJzVG9NZW1vaXplZChyb290LCBsYW5lcyk7XG4gICAgICAgIH1cbiAgICAgICAgd29ya0luUHJvZ3Jlc3NUcmFuc2l0aW9ucyA9IG51bGw7XG4gICAgICAgIHByZXBhcmVGcmVzaFN0YWNrKHJvb3QsIGxhbmVzKTtcbiAgICAgIH1cbiAgICAgIGxhbmVzID0gITE7XG4gICAgICBtZW1vaXplZFVwZGF0ZXJzID0gd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cztcbiAgICAgIGE6IGRvXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gIT09IE5vdFN1c3BlbmRlZCAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3NcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHZhciB1bml0T2ZXb3JrID0gd29ya0luUHJvZ3Jlc3MsXG4gICAgICAgICAgICAgIHRocm93blZhbHVlID0gd29ya0luUHJvZ3Jlc3NUaHJvd25WYWx1ZTtcbiAgICAgICAgICAgIHN3aXRjaCAod29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24pIHtcbiAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkh5ZHJhdGlvbjpcbiAgICAgICAgICAgICAgICByZXNldFdvcmtJblByb2dyZXNzU3RhY2soKTtcbiAgICAgICAgICAgICAgICBtZW1vaXplZFVwZGF0ZXJzID0gUm9vdFN1c3BlbmRlZEF0VGhlU2hlbGw7XG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkltbWVkaWF0ZTpcbiAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkRhdGE6XG4gICAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25BY3Rpb246XG4gICAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25EZXByZWNhdGVkVGhyb3dQcm9taXNlOlxuICAgICAgICAgICAgICAgIG51bGwgPT09IHN1c3BlbnNlSGFuZGxlclN0YWNrQ3Vyc29yLmN1cnJlbnQgJiYgKGxhbmVzID0gITApO1xuICAgICAgICAgICAgICAgIHZhciByZWFzb24gPSB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbjtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZDtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aHJvd0FuZFVud2luZFdvcmtMb29wKHJvb3QsIHVuaXRPZldvcmssIHRocm93blZhbHVlLCByZWFzb24pO1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIHNob3VsZFlpZWxkRm9yUHJlcmVuZGVyaW5nICYmXG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RJc1ByZXJlbmRlcmluZ1xuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycyA9IFJvb3RJblByb2dyZXNzO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgKHJlYXNvbiA9IHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uKSxcbiAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZCksXG4gICAgICAgICAgICAgICAgICAod29ya0luUHJvZ3Jlc3NUaHJvd25WYWx1ZSA9IG51bGwpLFxuICAgICAgICAgICAgICAgICAgdGhyb3dBbmRVbndpbmRXb3JrTG9vcChyb290LCB1bml0T2ZXb3JrLCB0aHJvd25WYWx1ZSwgcmVhc29uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgd29ya0xvb3BTeW5jKCk7XG4gICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycyA9IHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH0gY2F0Y2ggKHRocm93blZhbHVlJDgpIHtcbiAgICAgICAgICBoYW5kbGVUaHJvdyhyb290LCB0aHJvd25WYWx1ZSQ4KTtcbiAgICAgICAgfVxuICAgICAgd2hpbGUgKDEpO1xuICAgICAgbGFuZXMgJiYgcm9vdC5zaGVsbFN1c3BlbmRDb3VudGVyKys7XG4gICAgICByZXNldENvbnRleHREZXBlbmRlbmNpZXMoKTtcbiAgICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dDtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkEgPSBwcmV2QXN5bmNEaXNwYXRjaGVyO1xuICAgICAgbnVsbCA9PT0gd29ya0luUHJvZ3Jlc3MgJiZcbiAgICAgICAgKCh3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsKSxcbiAgICAgICAgKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzID0gMCksXG4gICAgICAgIGZpbmlzaFF1ZXVlaW5nQ29uY3VycmVudFVwZGF0ZXMoKSk7XG4gICAgICByZXR1cm4gbWVtb2l6ZWRVcGRhdGVycztcbiAgICB9XG4gICAgZnVuY3Rpb24gd29ya0xvb3BTeW5jKCkge1xuICAgICAgZm9yICg7IG51bGwgIT09IHdvcmtJblByb2dyZXNzOyApIHBlcmZvcm1Vbml0T2ZXb3JrKHdvcmtJblByb2dyZXNzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVuZGVyUm9vdENvbmN1cnJlbnQocm9vdCwgbGFuZXMpIHtcbiAgICAgIHZhciBwcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gICAgICBleGVjdXRpb25Db250ZXh0IHw9IFJlbmRlckNvbnRleHQ7XG4gICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBwdXNoRGlzcGF0Y2hlcigpLFxuICAgICAgICBwcmV2QXN5bmNEaXNwYXRjaGVyID0gcHVzaEFzeW5jRGlzcGF0Y2hlcigpO1xuICAgICAgaWYgKFxuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgIT09IHJvb3QgfHxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgIT09IGxhbmVzXG4gICAgICApIHtcbiAgICAgICAgaWYgKGlzRGV2VG9vbHNQcmVzZW50KSB7XG4gICAgICAgICAgdmFyIG1lbW9pemVkVXBkYXRlcnMgPSByb290Lm1lbW9pemVkVXBkYXRlcnM7XG4gICAgICAgICAgMCA8IG1lbW9pemVkVXBkYXRlcnMuc2l6ZSAmJlxuICAgICAgICAgICAgKHJlc3RvcmVQZW5kaW5nVXBkYXRlcnMocm9vdCwgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMpLFxuICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycy5jbGVhcigpKTtcbiAgICAgICAgICBtb3ZlUGVuZGluZ0ZpYmVyc1RvTWVtb2l6ZWQocm9vdCwgbGFuZXMpO1xuICAgICAgICB9XG4gICAgICAgIHdvcmtJblByb2dyZXNzVHJhbnNpdGlvbnMgPSBudWxsO1xuICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lID0gbm93JDEoKSArIFJFTkRFUl9USU1FT1VUX01TO1xuICAgICAgICBwcmVwYXJlRnJlc2hTdGFjayhyb290LCBsYW5lcyk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SXNQcmVyZW5kZXJpbmcgPSBjaGVja0lmUm9vdElzUHJlcmVuZGVyaW5nKFxuICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgbGFuZXNcbiAgICAgICAgKTtcbiAgICAgIGE6IGRvXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gIT09IE5vdFN1c3BlbmRlZCAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3NcbiAgICAgICAgICApXG4gICAgICAgICAgICBiOiBzd2l0Y2ggKFxuICAgICAgICAgICAgICAoKGxhbmVzID0gd29ya0luUHJvZ3Jlc3MpLFxuICAgICAgICAgICAgICAobWVtb2l6ZWRVcGRhdGVycyA9IHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUpLFxuICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbilcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uRXJyb3I6XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPSBOb3RTdXNwZW5kZWQ7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NUaHJvd25WYWx1ZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhyb3dBbmRVbndpbmRXb3JrTG9vcChcbiAgICAgICAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMsXG4gICAgICAgICAgICAgICAgICBTdXNwZW5kZWRPbkVycm9yXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkRhdGE6XG4gICAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25BY3Rpb246XG4gICAgICAgICAgICAgICAgaWYgKGlzVGhlbmFibGVSZXNvbHZlZChtZW1vaXplZFVwZGF0ZXJzKSkge1xuICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPSBOb3RTdXNwZW5kZWQ7XG4gICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgIHJlcGxheVN1c3BlbmRlZFVuaXRPZldvcmsobGFuZXMpO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxhbmVzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uICE9PSBTdXNwZW5kZWRPbkRhdGEgJiZcbiAgICAgICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gIT09IFN1c3BlbmRlZE9uQWN0aW9uKSB8fFxuICAgICAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3QgIT09IHJvb3QgfHxcbiAgICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID1cbiAgICAgICAgICAgICAgICAgICAgICBTdXNwZW5kZWRBbmRSZWFkeVRvQ29udGludWUpO1xuICAgICAgICAgICAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3QpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycy50aGVuKGxhbmVzLCBsYW5lcyk7XG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgY2FzZSBTdXNwZW5kZWRPbkltbWVkaWF0ZTpcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IFN1c3BlbmRlZEFuZFJlYWR5VG9Db250aW51ZTtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uSW5zdGFuY2U6XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPVxuICAgICAgICAgICAgICAgICAgU3VzcGVuZGVkT25JbnN0YW5jZUFuZFJlYWR5VG9Db250aW51ZTtcbiAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZEFuZFJlYWR5VG9Db250aW51ZTpcbiAgICAgICAgICAgICAgICBpc1RoZW5hYmxlUmVzb2x2ZWQobWVtb2l6ZWRVcGRhdGVycylcbiAgICAgICAgICAgICAgICAgID8gKCh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZCksXG4gICAgICAgICAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbCksXG4gICAgICAgICAgICAgICAgICAgIHJlcGxheVN1c3BlbmRlZFVuaXRPZldvcmsobGFuZXMpKVxuICAgICAgICAgICAgICAgICAgOiAoKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkKSxcbiAgICAgICAgICAgICAgICAgICAgKHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUgPSBudWxsKSxcbiAgICAgICAgICAgICAgICAgICAgdGhyb3dBbmRVbndpbmRXb3JrTG9vcChcbiAgICAgICAgICAgICAgICAgICAgICByb290LFxuICAgICAgICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgICAgICAgIG1lbW9pemVkVXBkYXRlcnMsXG4gICAgICAgICAgICAgICAgICAgICAgU3VzcGVuZGVkQW5kUmVhZHlUb0NvbnRpbnVlXG4gICAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uSW5zdGFuY2VBbmRSZWFkeVRvQ29udGludWU6XG4gICAgICAgICAgICAgICAgdmFyIHJlc291cmNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHdvcmtJblByb2dyZXNzLnRhZykge1xuICAgICAgICAgICAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSB3b3JrSW5Qcm9ncmVzcy5tZW1vaXplZFN0YXRlO1xuICAgICAgICAgICAgICAgICAgY2FzZSA1OlxuICAgICAgICAgICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICAgICAgICAgICAgdmFyIGhvc3RGaWJlciA9IHdvcmtJblByb2dyZXNzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2VcbiAgICAgICAgICAgICAgICAgICAgICAgID8gcHJlbG9hZFJlc291cmNlKHJlc291cmNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBob3N0RmliZXIuc3RhdGVOb2RlLmNvbXBsZXRlXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID0gTm90U3VzcGVuZGVkO1xuICAgICAgICAgICAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVGhyb3duVmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgIHZhciBzaWJsaW5nID0gaG9zdEZpYmVyLnNpYmxpbmc7XG4gICAgICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IHNpYmxpbmcpIHdvcmtJblByb2dyZXNzID0gc2libGluZztcbiAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXR1cm5GaWJlciA9IGhvc3RGaWJlci5yZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsICE9PSByZXR1cm5GaWJlclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/ICgod29ya0luUHJvZ3Jlc3MgPSByZXR1cm5GaWJlciksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVVbml0T2ZXb3JrKHJldHVybkZpYmVyKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAod29ya0luUHJvZ3Jlc3MgPSBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJVbmV4cGVjdGVkIHR5cGUgb2YgZmliZXIgdHJpZ2dlcmVkIGEgc3VzcGVuc2V5IGNvbW1pdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZDtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aHJvd0FuZFVud2luZFdvcmtMb29wKFxuICAgICAgICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycyxcbiAgICAgICAgICAgICAgICAgIFN1c3BlbmRlZE9uSW5zdGFuY2VBbmRSZWFkeVRvQ29udGludWVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFN1c3BlbmRlZE9uRGVwcmVjYXRlZFRocm93UHJvbWlzZTpcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJlYXNvbiA9IE5vdFN1c3BlbmRlZDtcbiAgICAgICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aHJvd0FuZFVud2luZFdvcmtMb29wKFxuICAgICAgICAgICAgICAgICAgcm9vdCxcbiAgICAgICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICAgICAgbWVtb2l6ZWRVcGRhdGVycyxcbiAgICAgICAgICAgICAgICAgIFN1c3BlbmRlZE9uRGVwcmVjYXRlZFRocm93UHJvbWlzZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgU3VzcGVuZGVkT25IeWRyYXRpb246XG4gICAgICAgICAgICAgICAgcmVzZXRXb3JrSW5Qcm9ncmVzc1N0YWNrKCk7XG4gICAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RTdXNwZW5kZWRBdFRoZVNoZWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIlVuZXhwZWN0ZWQgU3VzcGVuZGVkUmVhc29uLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZVxuICAgICAgICAgICAgPyB3b3JrTG9vcFN5bmMoKVxuICAgICAgICAgICAgOiB3b3JrTG9vcENvbmN1cnJlbnRCeVNjaGVkdWxlcigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9IGNhdGNoICh0aHJvd25WYWx1ZSQ5KSB7XG4gICAgICAgICAgaGFuZGxlVGhyb3cocm9vdCwgdGhyb3duVmFsdWUkOSk7XG4gICAgICAgIH1cbiAgICAgIHdoaWxlICgxKTtcbiAgICAgIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuQSA9IHByZXZBc3luY0Rpc3BhdGNoZXI7XG4gICAgICBleGVjdXRpb25Db250ZXh0ID0gcHJldkV4ZWN1dGlvbkNvbnRleHQ7XG4gICAgICBpZiAobnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MpIHJldHVybiBSb290SW5Qcm9ncmVzcztcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdCA9IG51bGw7XG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA9IDA7XG4gICAgICBmaW5pc2hRdWV1ZWluZ0NvbmN1cnJlbnRVcGRhdGVzKCk7XG4gICAgICByZXR1cm4gd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cztcbiAgICB9XG4gICAgZnVuY3Rpb24gd29ya0xvb3BDb25jdXJyZW50QnlTY2hlZHVsZXIoKSB7XG4gICAgICBmb3IgKDsgbnVsbCAhPT0gd29ya0luUHJvZ3Jlc3MgJiYgIXNob3VsZFlpZWxkKCk7IClcbiAgICAgICAgcGVyZm9ybVVuaXRPZldvcmsod29ya0luUHJvZ3Jlc3MpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwZXJmb3JtVW5pdE9mV29yayh1bml0T2ZXb3JrKSB7XG4gICAgICB2YXIgY3VycmVudCA9IHVuaXRPZldvcmsuYWx0ZXJuYXRlO1xuICAgICAgKHVuaXRPZldvcmsubW9kZSAmIFByb2ZpbGVNb2RlKSAhPT0gTm9Nb2RlXG4gICAgICAgID8gKHN0YXJ0UHJvZmlsZXJUaW1lcih1bml0T2ZXb3JrKSxcbiAgICAgICAgICAoY3VycmVudCA9IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgdW5pdE9mV29yayxcbiAgICAgICAgICAgIGJlZ2luV29yayxcbiAgICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgICB1bml0T2ZXb3JrLFxuICAgICAgICAgICAgZW50YW5nbGVkUmVuZGVyTGFuZXNcbiAgICAgICAgICApKSxcbiAgICAgICAgICBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZ0FuZFJlY29yZER1cmF0aW9uKHVuaXRPZldvcmspKVxuICAgICAgICA6IChjdXJyZW50ID0gcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICB1bml0T2ZXb3JrLFxuICAgICAgICAgICAgYmVnaW5Xb3JrLFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIHVuaXRPZldvcmssXG4gICAgICAgICAgICBlbnRhbmdsZWRSZW5kZXJMYW5lc1xuICAgICAgICAgICkpO1xuICAgICAgdW5pdE9mV29yay5tZW1vaXplZFByb3BzID0gdW5pdE9mV29yay5wZW5kaW5nUHJvcHM7XG4gICAgICBudWxsID09PSBjdXJyZW50XG4gICAgICAgID8gY29tcGxldGVVbml0T2ZXb3JrKHVuaXRPZldvcmspXG4gICAgICAgIDogKHdvcmtJblByb2dyZXNzID0gY3VycmVudCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcGxheVN1c3BlbmRlZFVuaXRPZldvcmsodW5pdE9mV29yaykge1xuICAgICAgdmFyIG5leHQgPSBydW5XaXRoRmliZXJJbkRFVih1bml0T2ZXb3JrLCByZXBsYXlCZWdpbldvcmssIHVuaXRPZldvcmspO1xuICAgICAgdW5pdE9mV29yay5tZW1vaXplZFByb3BzID0gdW5pdE9mV29yay5wZW5kaW5nUHJvcHM7XG4gICAgICBudWxsID09PSBuZXh0ID8gY29tcGxldGVVbml0T2ZXb3JrKHVuaXRPZldvcmspIDogKHdvcmtJblByb2dyZXNzID0gbmV4dCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcGxheUJlZ2luV29yayh1bml0T2ZXb3JrKSB7XG4gICAgICB2YXIgY3VycmVudCA9IHVuaXRPZldvcmsuYWx0ZXJuYXRlLFxuICAgICAgICBpc1Byb2ZpbGluZ01vZGUgPSAodW5pdE9mV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGU7XG4gICAgICBpc1Byb2ZpbGluZ01vZGUgJiYgc3RhcnRQcm9maWxlclRpbWVyKHVuaXRPZldvcmspO1xuICAgICAgc3dpdGNoICh1bml0T2ZXb3JrLnRhZykge1xuICAgICAgICBjYXNlIDE1OlxuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgY3VycmVudCA9IHJlcGxheUZ1bmN0aW9uQ29tcG9uZW50KFxuICAgICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICAgIHVuaXRPZldvcmssXG4gICAgICAgICAgICB1bml0T2ZXb3JrLnBlbmRpbmdQcm9wcyxcbiAgICAgICAgICAgIHVuaXRPZldvcmsudHlwZSxcbiAgICAgICAgICAgIHZvaWQgMCxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAxMTpcbiAgICAgICAgICBjdXJyZW50ID0gcmVwbGF5RnVuY3Rpb25Db21wb25lbnQoXG4gICAgICAgICAgICBjdXJyZW50LFxuICAgICAgICAgICAgdW5pdE9mV29yayxcbiAgICAgICAgICAgIHVuaXRPZldvcmsucGVuZGluZ1Byb3BzLFxuICAgICAgICAgICAgdW5pdE9mV29yay50eXBlLnJlbmRlcixcbiAgICAgICAgICAgIHVuaXRPZldvcmsucmVmLFxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXNcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgcmVzZXRIb29rc09uVW53aW5kKHVuaXRPZldvcmspO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHVud2luZEludGVycnVwdGVkV29yayhjdXJyZW50LCB1bml0T2ZXb3JrKSxcbiAgICAgICAgICAgICh1bml0T2ZXb3JrID0gd29ya0luUHJvZ3Jlc3MgPVxuICAgICAgICAgICAgICByZXNldFdvcmtJblByb2dyZXNzKHVuaXRPZldvcmssIGVudGFuZ2xlZFJlbmRlckxhbmVzKSksXG4gICAgICAgICAgICAoY3VycmVudCA9IGJlZ2luV29yayhjdXJyZW50LCB1bml0T2ZXb3JrLCBlbnRhbmdsZWRSZW5kZXJMYW5lcykpO1xuICAgICAgfVxuICAgICAgaXNQcm9maWxpbmdNb2RlICYmXG4gICAgICAgIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkRHVyYXRpb24odW5pdE9mV29yayk7XG4gICAgICByZXR1cm4gY3VycmVudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gdGhyb3dBbmRVbndpbmRXb3JrTG9vcChcbiAgICAgIHJvb3QsXG4gICAgICB1bml0T2ZXb3JrLFxuICAgICAgdGhyb3duVmFsdWUsXG4gICAgICBzdXNwZW5kZWRSZWFzb25cbiAgICApIHtcbiAgICAgIHJlc2V0Q29udGV4dERlcGVuZGVuY2llcygpO1xuICAgICAgcmVzZXRIb29rc09uVW53aW5kKHVuaXRPZldvcmspO1xuICAgICAgdGhlbmFibGVTdGF0ZSQxID0gbnVsbDtcbiAgICAgIHRoZW5hYmxlSW5kZXhDb3VudGVyJDEgPSAwO1xuICAgICAgdmFyIHJldHVybkZpYmVyID0gdW5pdE9mV29yay5yZXR1cm47XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhyb3dFeGNlcHRpb24oXG4gICAgICAgICAgICByb290LFxuICAgICAgICAgICAgcmV0dXJuRmliZXIsXG4gICAgICAgICAgICB1bml0T2ZXb3JrLFxuICAgICAgICAgICAgdGhyb3duVmFsdWUsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lc1xuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RGYXRhbEVycm9yZWQ7XG4gICAgICAgICAgbG9nVW5jYXVnaHRFcnJvcihcbiAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcih0aHJvd25WYWx1ZSwgcm9vdC5jdXJyZW50KVxuICAgICAgICAgICk7XG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKG51bGwgIT09IHJldHVybkZpYmVyKSB0aHJvdyAoKHdvcmtJblByb2dyZXNzID0gcmV0dXJuRmliZXIpLCBlcnJvcik7XG4gICAgICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPSBSb290RmF0YWxFcnJvcmVkO1xuICAgICAgICBsb2dVbmNhdWdodEVycm9yKFxuICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgY3JlYXRlQ2FwdHVyZWRWYWx1ZUF0RmliZXIodGhyb3duVmFsdWUsIHJvb3QuY3VycmVudClcbiAgICAgICAgKTtcbiAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSBudWxsO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAodW5pdE9mV29yay5mbGFncyAmIDMyNzY4KSB7XG4gICAgICAgIGlmIChpc0h5ZHJhdGluZyB8fCBzdXNwZW5kZWRSZWFzb24gPT09IFN1c3BlbmRlZE9uRXJyb3IpIHJvb3QgPSAhMDtcbiAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290SXNQcmVyZW5kZXJpbmcgfHxcbiAgICAgICAgICAwICE9PSAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiA1MzY4NzA5MTIpXG4gICAgICAgIClcbiAgICAgICAgICByb290ID0gITE7XG4gICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgICgod29ya0luUHJvZ3Jlc3NSb290RGlkU2tpcFN1c3BlbmRlZFNpYmxpbmdzID0gcm9vdCA9ICEwKSxcbiAgICAgICAgICBzdXNwZW5kZWRSZWFzb24gPT09IFN1c3BlbmRlZE9uRGF0YSB8fFxuICAgICAgICAgICAgc3VzcGVuZGVkUmVhc29uID09PSBTdXNwZW5kZWRPbkFjdGlvbiB8fFxuICAgICAgICAgICAgc3VzcGVuZGVkUmVhc29uID09PSBTdXNwZW5kZWRPbkltbWVkaWF0ZSB8fFxuICAgICAgICAgICAgc3VzcGVuZGVkUmVhc29uID09PSBTdXNwZW5kZWRPbkRlcHJlY2F0ZWRUaHJvd1Byb21pc2UpXG4gICAgICAgIClcbiAgICAgICAgICAoc3VzcGVuZGVkUmVhc29uID0gc3VzcGVuc2VIYW5kbGVyU3RhY2tDdXJzb3IuY3VycmVudCksXG4gICAgICAgICAgICBudWxsICE9PSBzdXNwZW5kZWRSZWFzb24gJiZcbiAgICAgICAgICAgICAgMTMgPT09IHN1c3BlbmRlZFJlYXNvbi50YWcgJiZcbiAgICAgICAgICAgICAgKHN1c3BlbmRlZFJlYXNvbi5mbGFncyB8PSAxNjM4NCk7XG4gICAgICAgIHVud2luZFVuaXRPZldvcmsodW5pdE9mV29yaywgcm9vdCk7XG4gICAgICB9IGVsc2UgY29tcGxldGVVbml0T2ZXb3JrKHVuaXRPZldvcmspO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21wbGV0ZVVuaXRPZldvcmsodW5pdE9mV29yaykge1xuICAgICAgdmFyIGNvbXBsZXRlZFdvcmsgPSB1bml0T2ZXb3JrO1xuICAgICAgZG8ge1xuICAgICAgICBpZiAoMCAhPT0gKGNvbXBsZXRlZFdvcmsuZmxhZ3MgJiAzMjc2OCkpIHtcbiAgICAgICAgICB1bndpbmRVbml0T2ZXb3JrKFxuICAgICAgICAgICAgY29tcGxldGVkV29yayxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZFNraXBTdXNwZW5kZWRTaWJsaW5nc1xuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHZhciBjdXJyZW50ID0gY29tcGxldGVkV29yay5hbHRlcm5hdGU7XG4gICAgICAgIHVuaXRPZldvcmsgPSBjb21wbGV0ZWRXb3JrLnJldHVybjtcbiAgICAgICAgc3RhcnRQcm9maWxlclRpbWVyKGNvbXBsZXRlZFdvcmspO1xuICAgICAgICBjdXJyZW50ID0gcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgY29tcGxldGVkV29yayxcbiAgICAgICAgICBjb21wbGV0ZVdvcmssXG4gICAgICAgICAgY3VycmVudCxcbiAgICAgICAgICBjb21wbGV0ZWRXb3JrLFxuICAgICAgICAgIGVudGFuZ2xlZFJlbmRlckxhbmVzXG4gICAgICAgICk7XG4gICAgICAgIChjb21wbGV0ZWRXb3JrLm1vZGUgJiBQcm9maWxlTW9kZSkgIT09IE5vTW9kZSAmJlxuICAgICAgICAgIHN0b3BQcm9maWxlclRpbWVySWZSdW5uaW5nQW5kUmVjb3JkSW5jb21wbGV0ZUR1cmF0aW9uKGNvbXBsZXRlZFdvcmspO1xuICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudCkge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gY3VycmVudDtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tcGxldGVkV29yayA9IGNvbXBsZXRlZFdvcmsuc2libGluZztcbiAgICAgICAgaWYgKG51bGwgIT09IGNvbXBsZXRlZFdvcmspIHtcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IGNvbXBsZXRlZFdvcms7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHdvcmtJblByb2dyZXNzID0gY29tcGxldGVkV29yayA9IHVuaXRPZldvcms7XG4gICAgICB9IHdoaWxlIChudWxsICE9PSBjb21wbGV0ZWRXb3JrKTtcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdEV4aXRTdGF0dXMgPT09IFJvb3RJblByb2dyZXNzICYmXG4gICAgICAgICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID0gUm9vdENvbXBsZXRlZCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVud2luZFVuaXRPZldvcmsodW5pdE9mV29yaywgc2tpcFNpYmxpbmdzKSB7XG4gICAgICBkbyB7XG4gICAgICAgIHZhciBuZXh0ID0gdW53aW5kV29yayh1bml0T2ZXb3JrLmFsdGVybmF0ZSwgdW5pdE9mV29yayk7XG4gICAgICAgIGlmIChudWxsICE9PSBuZXh0KSB7XG4gICAgICAgICAgbmV4dC5mbGFncyAmPSAzMjc2NztcbiAgICAgICAgICB3b3JrSW5Qcm9ncmVzcyA9IG5leHQ7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICgodW5pdE9mV29yay5tb2RlICYgUHJvZmlsZU1vZGUpICE9PSBOb01vZGUpIHtcbiAgICAgICAgICBzdG9wUHJvZmlsZXJUaW1lcklmUnVubmluZ0FuZFJlY29yZEluY29tcGxldGVEdXJhdGlvbih1bml0T2ZXb3JrKTtcbiAgICAgICAgICBuZXh0ID0gdW5pdE9mV29yay5hY3R1YWxEdXJhdGlvbjtcbiAgICAgICAgICBmb3IgKHZhciBjaGlsZCA9IHVuaXRPZldvcmsuY2hpbGQ7IG51bGwgIT09IGNoaWxkOyApXG4gICAgICAgICAgICAobmV4dCArPSBjaGlsZC5hY3R1YWxEdXJhdGlvbiksIChjaGlsZCA9IGNoaWxkLnNpYmxpbmcpO1xuICAgICAgICAgIHVuaXRPZldvcmsuYWN0dWFsRHVyYXRpb24gPSBuZXh0O1xuICAgICAgICB9XG4gICAgICAgIG5leHQgPSB1bml0T2ZXb3JrLnJldHVybjtcbiAgICAgICAgbnVsbCAhPT0gbmV4dCAmJlxuICAgICAgICAgICgobmV4dC5mbGFncyB8PSAzMjc2OCksXG4gICAgICAgICAgKG5leHQuc3VidHJlZUZsYWdzID0gMCksXG4gICAgICAgICAgKG5leHQuZGVsZXRpb25zID0gbnVsbCkpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIXNraXBTaWJsaW5ncyAmJlxuICAgICAgICAgICgodW5pdE9mV29yayA9IHVuaXRPZldvcmsuc2libGluZyksIG51bGwgIT09IHVuaXRPZldvcmspXG4gICAgICAgICkge1xuICAgICAgICAgIHdvcmtJblByb2dyZXNzID0gdW5pdE9mV29yaztcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgd29ya0luUHJvZ3Jlc3MgPSB1bml0T2ZXb3JrID0gbmV4dDtcbiAgICAgIH0gd2hpbGUgKG51bGwgIT09IHVuaXRPZldvcmspO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RTdXNwZW5kZWRBdFRoZVNoZWxsO1xuICAgICAgd29ya0luUHJvZ3Jlc3MgPSBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRSb290KFxuICAgICAgcm9vdCxcbiAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgIGxhbmVzLFxuICAgICAgcmVjb3ZlcmFibGVFcnJvcnMsXG4gICAgICB0cmFuc2l0aW9ucyxcbiAgICAgIGRpZEluY2x1ZGVSZW5kZXJQaGFzZVVwZGF0ZSxcbiAgICAgIHNwYXduZWRMYW5lLFxuICAgICAgdXBkYXRlZExhbmVzLFxuICAgICAgc3VzcGVuZGVkUmV0cnlMYW5lcyxcbiAgICAgIGV4aXRTdGF0dXMsXG4gICAgICBzdXNwZW5kZWRTdGF0ZSxcbiAgICAgIHN1c3BlbmRlZENvbW1pdFJlYXNvbixcbiAgICAgIGNvbXBsZXRlZFJlbmRlclN0YXJ0VGltZSxcbiAgICAgIGNvbXBsZXRlZFJlbmRlckVuZFRpbWVcbiAgICApIHtcbiAgICAgIHJvb3QuY2FuY2VsUGVuZGluZ0NvbW1pdCA9IG51bGw7XG4gICAgICBkbyBmbHVzaFBlbmRpbmdFZmZlY3RzKCk7XG4gICAgICB3aGlsZSAocGVuZGluZ0VmZmVjdHNTdGF0dXMgIT09IE5PX1BFTkRJTkdfRUZGRUNUUyk7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaExlZ2FjeUNvbnRleHRXYXJuaW5nKCk7XG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncy5mbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5ncygpO1xuICAgICAgaWYgKChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dClcbiAgICAgICAgdGhyb3cgRXJyb3IoXCJTaG91bGQgbm90IGFscmVhZHkgYmUgd29ya2luZy5cIik7XG4gICAgICBzZXRDdXJyZW50VHJhY2tGcm9tTGFuZXMobGFuZXMpO1xuICAgICAgZXhpdFN0YXR1cyA9PT0gUm9vdEVycm9yZWRcbiAgICAgICAgPyBsb2dFcnJvcmVkUmVuZGVyUGhhc2UoXG4gICAgICAgICAgICBjb21wbGV0ZWRSZW5kZXJTdGFydFRpbWUsXG4gICAgICAgICAgICBjb21wbGV0ZWRSZW5kZXJFbmRUaW1lLFxuICAgICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgICB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2tcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbCAhPT0gcmVjb3ZlcmFibGVFcnJvcnNcbiAgICAgICAgICA/IGxvZ1JlY292ZXJlZFJlbmRlclBoYXNlKFxuICAgICAgICAgICAgICBjb21wbGV0ZWRSZW5kZXJTdGFydFRpbWUsXG4gICAgICAgICAgICAgIGNvbXBsZXRlZFJlbmRlckVuZFRpbWUsXG4gICAgICAgICAgICAgIGxhbmVzLFxuICAgICAgICAgICAgICByZWNvdmVyYWJsZUVycm9ycyxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrICYmXG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gZmluaXNoZWRXb3JrLmFsdGVybmF0ZSAmJlxuICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yay5hbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQgJiZcbiAgICAgICAgICAgICAgICAwICE9PSAoZmluaXNoZWRXb3JrLmZsYWdzICYgMjU2KSxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NVcGRhdGVUYXNrXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBsb2dSZW5kZXJQaGFzZShcbiAgICAgICAgICAgICAgY29tcGxldGVkUmVuZGVyU3RhcnRUaW1lLFxuICAgICAgICAgICAgICBjb21wbGV0ZWRSZW5kZXJFbmRUaW1lLFxuICAgICAgICAgICAgICBsYW5lcyxcbiAgICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NVcGRhdGVUYXNrXG4gICAgICAgICAgICApO1xuICAgICAgaWYgKG51bGwgIT09IGZpbmlzaGVkV29yaykge1xuICAgICAgICAwID09PSBsYW5lcyAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcImZpbmlzaGVkTGFuZXMgc2hvdWxkIG5vdCBiZSBlbXB0eSBkdXJpbmcgYSBjb21taXQuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICApO1xuICAgICAgICBpZiAoZmluaXNoZWRXb3JrID09PSByb290LmN1cnJlbnQpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIkNhbm5vdCBjb21taXQgdGhlIHNhbWUgdHJlZSBhcyBiZWZvcmUuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICApO1xuICAgICAgICBkaWRJbmNsdWRlUmVuZGVyUGhhc2VVcGRhdGUgPVxuICAgICAgICAgIGZpbmlzaGVkV29yay5sYW5lcyB8IGZpbmlzaGVkV29yay5jaGlsZExhbmVzO1xuICAgICAgICBkaWRJbmNsdWRlUmVuZGVyUGhhc2VVcGRhdGUgfD0gY29uY3VycmVudGx5VXBkYXRlZExhbmVzO1xuICAgICAgICBtYXJrUm9vdEZpbmlzaGVkKFxuICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgZGlkSW5jbHVkZVJlbmRlclBoYXNlVXBkYXRlLFxuICAgICAgICAgIHNwYXduZWRMYW5lLFxuICAgICAgICAgIHVwZGF0ZWRMYW5lcyxcbiAgICAgICAgICBzdXNwZW5kZWRSZXRyeUxhbmVzXG4gICAgICAgICk7XG4gICAgICAgIHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdCAmJlxuICAgICAgICAgICgod29ya0luUHJvZ3Jlc3MgPSB3b3JrSW5Qcm9ncmVzc1Jvb3QgPSBudWxsKSxcbiAgICAgICAgICAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgPSAwKSk7XG4gICAgICAgIHBlbmRpbmdGaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcms7XG4gICAgICAgIHBlbmRpbmdFZmZlY3RzUm9vdCA9IHJvb3Q7XG4gICAgICAgIHBlbmRpbmdFZmZlY3RzTGFuZXMgPSBsYW5lcztcbiAgICAgICAgcGVuZGluZ0VmZmVjdHNSZW1haW5pbmdMYW5lcyA9IGRpZEluY2x1ZGVSZW5kZXJQaGFzZVVwZGF0ZTtcbiAgICAgICAgcGVuZGluZ1Bhc3NpdmVUcmFuc2l0aW9ucyA9IHRyYW5zaXRpb25zO1xuICAgICAgICBwZW5kaW5nUmVjb3ZlcmFibGVFcnJvcnMgPSByZWNvdmVyYWJsZUVycm9ycztcbiAgICAgICAgcGVuZGluZ0VmZmVjdHNSZW5kZXJFbmRUaW1lID0gY29tcGxldGVkUmVuZGVyRW5kVGltZTtcbiAgICAgICAgcGVuZGluZ1N1c3BlbmRlZENvbW1pdFJlYXNvbiA9IHN1c3BlbmRlZENvbW1pdFJlYXNvbjtcbiAgICAgICAgcGVuZGluZ0RlbGF5ZWRDb21taXRSZWFzb24gPSBJTU1FRElBVEVfQ09NTUlUO1xuICAgICAgICBwZW5kaW5nU3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24gPSBudWxsO1xuICAgICAgICAwICE9PSBmaW5pc2hlZFdvcmsuYWN0dWFsRHVyYXRpb24gfHxcbiAgICAgICAgMCAhPT0gKGZpbmlzaGVkV29yay5zdWJ0cmVlRmxhZ3MgJiAxMDI1NikgfHxcbiAgICAgICAgMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDEwMjU2KVxuICAgICAgICAgID8gKChyb290LmNhbGxiYWNrTm9kZSA9IG51bGwpLFxuICAgICAgICAgICAgKHJvb3QuY2FsbGJhY2tQcmlvcml0eSA9IDApLFxuICAgICAgICAgICAgc2NoZWR1bGVDYWxsYmFjayQxKE5vcm1hbFByaW9yaXR5JDEsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgc2NoZWR1bGVyRXZlbnQgPSB3aW5kb3cuZXZlbnQ7XG4gICAgICAgICAgICAgIHBlbmRpbmdEZWxheWVkQ29tbWl0UmVhc29uID09PSBJTU1FRElBVEVfQ09NTUlUICYmXG4gICAgICAgICAgICAgICAgKHBlbmRpbmdEZWxheWVkQ29tbWl0UmVhc29uID0gREVMQVlFRF9QQVNTSVZFX0NPTU1JVCk7XG4gICAgICAgICAgICAgIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICA6ICgocm9vdC5jYWxsYmFja05vZGUgPSBudWxsKSwgKHJvb3QuY2FsbGJhY2tQcmlvcml0eSA9IDApKTtcbiAgICAgICAgY29tbWl0RXJyb3JzID0gbnVsbDtcbiAgICAgICAgY29tbWl0U3RhcnRUaW1lID0gbm93KCk7XG4gICAgICAgIG51bGwgIT09IHN1c3BlbmRlZENvbW1pdFJlYXNvbiAmJlxuICAgICAgICAgIGxvZ1N1c3BlbmRlZENvbW1pdFBoYXNlKFxuICAgICAgICAgICAgY29tcGxldGVkUmVuZGVyRW5kVGltZSxcbiAgICAgICAgICAgIGNvbW1pdFN0YXJ0VGltZSxcbiAgICAgICAgICAgIHN1c3BlbmRlZENvbW1pdFJlYXNvbixcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzVXBkYXRlVGFza1xuICAgICAgICAgICk7XG4gICAgICAgIHJlY292ZXJhYmxlRXJyb3JzID0gMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDEzODc4KTtcbiAgICAgICAgaWYgKDAgIT09IChmaW5pc2hlZFdvcmsuc3VidHJlZUZsYWdzICYgMTM4NzgpIHx8IHJlY292ZXJhYmxlRXJyb3JzKSB7XG4gICAgICAgICAgcmVjb3ZlcmFibGVFcnJvcnMgPSBSZWFjdFNoYXJlZEludGVybmFscy5UO1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBudWxsO1xuICAgICAgICAgIHRyYW5zaXRpb25zID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucDtcbiAgICAgICAgICBSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gRGlzY3JldGVFdmVudFByaW9yaXR5O1xuICAgICAgICAgIHNwYXduZWRMYW5lID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgICAgICAgICBleGVjdXRpb25Db250ZXh0IHw9IENvbW1pdENvbnRleHQ7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbW1pdEJlZm9yZU11dGF0aW9uRWZmZWN0cyhyb290LCBmaW5pc2hlZFdvcmssIGxhbmVzKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgKGV4ZWN1dGlvbkNvbnRleHQgPSBzcGF3bmVkTGFuZSksXG4gICAgICAgICAgICAgIChSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gdHJhbnNpdGlvbnMpLFxuICAgICAgICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IHJlY292ZXJhYmxlRXJyb3JzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcGVuZGluZ0VmZmVjdHNTdGF0dXMgPSBQRU5ESU5HX01VVEFUSU9OX1BIQVNFO1xuICAgICAgICBmbHVzaE11dGF0aW9uRWZmZWN0cygpO1xuICAgICAgICBmbHVzaExheW91dEVmZmVjdHMoKTtcbiAgICAgICAgZmx1c2hTcGF3bmVkV29yaygpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmbHVzaE11dGF0aW9uRWZmZWN0cygpIHtcbiAgICAgIGlmIChwZW5kaW5nRWZmZWN0c1N0YXR1cyA9PT0gUEVORElOR19NVVRBVElPTl9QSEFTRSkge1xuICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IE5PX1BFTkRJTkdfRUZGRUNUUztcbiAgICAgICAgdmFyIHJvb3QgPSBwZW5kaW5nRWZmZWN0c1Jvb3QsXG4gICAgICAgICAgZmluaXNoZWRXb3JrID0gcGVuZGluZ0ZpbmlzaGVkV29yayxcbiAgICAgICAgICBsYW5lcyA9IHBlbmRpbmdFZmZlY3RzTGFuZXMsXG4gICAgICAgICAgcm9vdE11dGF0aW9uSGFzRWZmZWN0ID0gMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDEzODc4KTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIDAgIT09IChmaW5pc2hlZFdvcmsuc3VidHJlZUZsYWdzICYgMTM4NzgpIHx8XG4gICAgICAgICAgcm9vdE11dGF0aW9uSGFzRWZmZWN0XG4gICAgICAgICkge1xuICAgICAgICAgIHJvb3RNdXRhdGlvbkhhc0VmZmVjdCA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQ7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IG51bGw7XG4gICAgICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wO1xuICAgICAgICAgIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk7XG4gICAgICAgICAgdmFyIHByZXZFeGVjdXRpb25Db250ZXh0ID0gZXhlY3V0aW9uQ29udGV4dDtcbiAgICAgICAgICBleGVjdXRpb25Db250ZXh0IHw9IENvbW1pdENvbnRleHQ7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGluUHJvZ3Jlc3NMYW5lcyA9IGxhbmVzO1xuICAgICAgICAgICAgaW5Qcm9ncmVzc1Jvb3QgPSByb290O1xuICAgICAgICAgICAgcmVzZXRDb21wb25lbnRFZmZlY3RUaW1lcnMoKTtcbiAgICAgICAgICAgIGNvbW1pdE11dGF0aW9uRWZmZWN0c09uRmliZXIoZmluaXNoZWRXb3JrLCByb290KTtcbiAgICAgICAgICAgIGluUHJvZ3Jlc3NSb290ID0gaW5Qcm9ncmVzc0xhbmVzID0gbnVsbDtcbiAgICAgICAgICAgIGxhbmVzID0gc2VsZWN0aW9uSW5mb3JtYXRpb247XG4gICAgICAgICAgICB2YXIgY3VyRm9jdXNlZEVsZW0gPSBnZXRBY3RpdmVFbGVtZW50RGVlcChyb290LmNvbnRhaW5lckluZm8pLFxuICAgICAgICAgICAgICBwcmlvckZvY3VzZWRFbGVtID0gbGFuZXMuZm9jdXNlZEVsZW0sXG4gICAgICAgICAgICAgIHByaW9yU2VsZWN0aW9uUmFuZ2UgPSBsYW5lcy5zZWxlY3Rpb25SYW5nZTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgY3VyRm9jdXNlZEVsZW0gIT09IHByaW9yRm9jdXNlZEVsZW0gJiZcbiAgICAgICAgICAgICAgcHJpb3JGb2N1c2VkRWxlbSAmJlxuICAgICAgICAgICAgICBwcmlvckZvY3VzZWRFbGVtLm93bmVyRG9jdW1lbnQgJiZcbiAgICAgICAgICAgICAgY29udGFpbnNOb2RlKFxuICAgICAgICAgICAgICAgIHByaW9yRm9jdXNlZEVsZW0ub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsXG4gICAgICAgICAgICAgICAgcHJpb3JGb2N1c2VkRWxlbVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG51bGwgIT09IHByaW9yU2VsZWN0aW9uUmFuZ2UgJiZcbiAgICAgICAgICAgICAgICBoYXNTZWxlY3Rpb25DYXBhYmlsaXRpZXMocHJpb3JGb2N1c2VkRWxlbSlcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdmFyIHN0YXJ0ID0gcHJpb3JTZWxlY3Rpb25SYW5nZS5zdGFydCxcbiAgICAgICAgICAgICAgICAgIGVuZCA9IHByaW9yU2VsZWN0aW9uUmFuZ2UuZW5kO1xuICAgICAgICAgICAgICAgIHZvaWQgMCA9PT0gZW5kICYmIChlbmQgPSBzdGFydCk7XG4gICAgICAgICAgICAgICAgaWYgKFwic2VsZWN0aW9uU3RhcnRcIiBpbiBwcmlvckZvY3VzZWRFbGVtKVxuICAgICAgICAgICAgICAgICAgKHByaW9yRm9jdXNlZEVsZW0uc2VsZWN0aW9uU3RhcnQgPSBzdGFydCksXG4gICAgICAgICAgICAgICAgICAgIChwcmlvckZvY3VzZWRFbGVtLnNlbGVjdGlvbkVuZCA9IE1hdGgubWluKFxuICAgICAgICAgICAgICAgICAgICAgIGVuZCxcbiAgICAgICAgICAgICAgICAgICAgICBwcmlvckZvY3VzZWRFbGVtLnZhbHVlLmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHZhciBkb2MgPSBwcmlvckZvY3VzZWRFbGVtLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHdpbiA9IChkb2MgJiYgZG9jLmRlZmF1bHRWaWV3KSB8fCB3aW5kb3c7XG4gICAgICAgICAgICAgICAgICBpZiAod2luLmdldFNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0aW9uID0gd2luLmdldFNlbGVjdGlvbigpLFxuICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA9IHByaW9yRm9jdXNlZEVsZW0udGV4dENvbnRlbnQubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0JGpzY29tcCQwID0gTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmlvclNlbGVjdGlvblJhbmdlLnN0YXJ0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICBlbmQkanNjb21wJDAgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAwID09PSBwcmlvclNlbGVjdGlvblJhbmdlLmVuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IHN0YXJ0JGpzY29tcCQwXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogTWF0aC5taW4ocHJpb3JTZWxlY3Rpb25SYW5nZS5lbmQsIGxlbmd0aCk7XG4gICAgICAgICAgICAgICAgICAgICFzZWxlY3Rpb24uZXh0ZW5kICYmXG4gICAgICAgICAgICAgICAgICAgICAgc3RhcnQkanNjb21wJDAgPiBlbmQkanNjb21wJDAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoKGN1ckZvY3VzZWRFbGVtID0gZW5kJGpzY29tcCQwKSxcbiAgICAgICAgICAgICAgICAgICAgICAoZW5kJGpzY29tcCQwID0gc3RhcnQkanNjb21wJDApLFxuICAgICAgICAgICAgICAgICAgICAgIChzdGFydCRqc2NvbXAkMCA9IGN1ckZvY3VzZWRFbGVtKSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdGFydE1hcmtlciA9IGdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmlvckZvY3VzZWRFbGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQkanNjb21wJDBcbiAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgIGVuZE1hcmtlciA9IGdldE5vZGVGb3JDaGFyYWN0ZXJPZmZzZXQoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmlvckZvY3VzZWRFbGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kJGpzY29tcCQwXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0TWFya2VyICYmXG4gICAgICAgICAgICAgICAgICAgICAgZW5kTWFya2VyICYmXG4gICAgICAgICAgICAgICAgICAgICAgKDEgIT09IHNlbGVjdGlvbi5yYW5nZUNvdW50IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24uYW5jaG9yTm9kZSAhPT0gc3RhcnRNYXJrZXIubm9kZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uLmFuY2hvck9mZnNldCAhPT0gc3RhcnRNYXJrZXIub2Zmc2V0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24uZm9jdXNOb2RlICE9PSBlbmRNYXJrZXIubm9kZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uLmZvY3VzT2Zmc2V0ICE9PSBlbmRNYXJrZXIub2Zmc2V0KVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICB2YXIgcmFuZ2UgPSBkb2MuY3JlYXRlUmFuZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICByYW5nZS5zZXRTdGFydChzdGFydE1hcmtlci5ub2RlLCBzdGFydE1hcmtlci5vZmZzZXQpO1xuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICBzdGFydCRqc2NvbXAkMCA+IGVuZCRqc2NvbXAkMFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAoc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uLmV4dGVuZChlbmRNYXJrZXIubm9kZSwgZW5kTWFya2VyLm9mZnNldCkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChyYW5nZS5zZXRFbmQoZW5kTWFya2VyLm5vZGUsIGVuZE1hcmtlci5vZmZzZXQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24uYWRkUmFuZ2UocmFuZ2UpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkb2MgPSBbXTtcbiAgICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24gPSBwcmlvckZvY3VzZWRFbGVtO1xuICAgICAgICAgICAgICAgIChzZWxlY3Rpb24gPSBzZWxlY3Rpb24ucGFyZW50Tm9kZSk7XG5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDEgPT09IHNlbGVjdGlvbi5ub2RlVHlwZSAmJlxuICAgICAgICAgICAgICAgICAgZG9jLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50OiBzZWxlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHNlbGVjdGlvbi5zY3JvbGxMZWZ0LFxuICAgICAgICAgICAgICAgICAgICB0b3A6IHNlbGVjdGlvbi5zY3JvbGxUb3BcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwcmlvckZvY3VzZWRFbGVtLmZvY3VzICYmXG4gICAgICAgICAgICAgICAgcHJpb3JGb2N1c2VkRWxlbS5mb2N1cygpO1xuICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgIHByaW9yRm9jdXNlZEVsZW0gPSAwO1xuICAgICAgICAgICAgICAgIHByaW9yRm9jdXNlZEVsZW0gPCBkb2MubGVuZ3RoO1xuICAgICAgICAgICAgICAgIHByaW9yRm9jdXNlZEVsZW0rK1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB2YXIgaW5mbyA9IGRvY1twcmlvckZvY3VzZWRFbGVtXTtcbiAgICAgICAgICAgICAgICBpbmZvLmVsZW1lbnQuc2Nyb2xsTGVmdCA9IGluZm8ubGVmdDtcbiAgICAgICAgICAgICAgICBpbmZvLmVsZW1lbnQuc2Nyb2xsVG9wID0gaW5mby50b3A7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF9lbmFibGVkID0gISFldmVudHNFbmFibGVkO1xuICAgICAgICAgICAgc2VsZWN0aW9uSW5mb3JtYXRpb24gPSBldmVudHNFbmFibGVkID0gbnVsbDtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgKGV4ZWN1dGlvbkNvbnRleHQgPSBwcmV2RXhlY3V0aW9uQ29udGV4dCksXG4gICAgICAgICAgICAgIChSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gcHJldmlvdXNQcmlvcml0eSksXG4gICAgICAgICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy5UID0gcm9vdE11dGF0aW9uSGFzRWZmZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcm9vdC5jdXJyZW50ID0gZmluaXNoZWRXb3JrO1xuICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IFBFTkRJTkdfTEFZT1VUX1BIQVNFO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmbHVzaExheW91dEVmZmVjdHMoKSB7XG4gICAgICBpZiAocGVuZGluZ0VmZmVjdHNTdGF0dXMgPT09IFBFTkRJTkdfTEFZT1VUX1BIQVNFKSB7XG4gICAgICAgIHBlbmRpbmdFZmZlY3RzU3RhdHVzID0gTk9fUEVORElOR19FRkZFQ1RTO1xuICAgICAgICB2YXIgc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24gPVxuICAgICAgICAgIHBlbmRpbmdTdXNwZW5kZWRWaWV3VHJhbnNpdGlvblJlYXNvbjtcbiAgICAgICAgaWYgKG51bGwgIT09IHN1c3BlbmRlZFZpZXdUcmFuc2l0aW9uUmVhc29uKSB7XG4gICAgICAgICAgY29tbWl0U3RhcnRUaW1lID0gbm93KCk7XG4gICAgICAgICAgdmFyIHN0YXJ0VGltZSA9IGNvbW1pdEVuZFRpbWUsXG4gICAgICAgICAgICBlbmRUaW1lID0gY29tbWl0U3RhcnRUaW1lO1xuICAgICAgICAgICFzdXBwb3J0c1VzZXJUaW1pbmcgfHxcbiAgICAgICAgICAgIGVuZFRpbWUgPD0gc3RhcnRUaW1lIHx8XG4gICAgICAgICAgICAoYW5pbWF0aW5nVGFza1xuICAgICAgICAgICAgICA/IGFuaW1hdGluZ1Rhc2sucnVuKFxuICAgICAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZChcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZSxcbiAgICAgICAgICAgICAgICAgICAgc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24sXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kVGltZSxcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFRyYWNrLFxuICAgICAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICAgICAgXCJzZWNvbmRhcnktbGlnaHRcIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBjb25zb2xlLnRpbWVTdGFtcChcbiAgICAgICAgICAgICAgICAgIHN1c3BlbmRlZFZpZXdUcmFuc2l0aW9uUmVhc29uLFxuICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgZW5kVGltZSxcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLFxuICAgICAgICAgICAgICAgICAgXCJzZWNvbmRhcnktbGlnaHRcIlxuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICAgIHN1c3BlbmRlZFZpZXdUcmFuc2l0aW9uUmVhc29uID0gcGVuZGluZ0VmZmVjdHNSb290O1xuICAgICAgICBzdGFydFRpbWUgPSBwZW5kaW5nRmluaXNoZWRXb3JrO1xuICAgICAgICBlbmRUaW1lID0gcGVuZGluZ0VmZmVjdHNMYW5lcztcbiAgICAgICAgdmFyIHJvb3RIYXNMYXlvdXRFZmZlY3QgPSAwICE9PSAoc3RhcnRUaW1lLmZsYWdzICYgODc3Mik7XG4gICAgICAgIGlmICgwICE9PSAoc3RhcnRUaW1lLnN1YnRyZWVGbGFncyAmIDg3NzIpIHx8IHJvb3RIYXNMYXlvdXRFZmZlY3QpIHtcbiAgICAgICAgICByb290SGFzTGF5b3V0RWZmZWN0ID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuVDtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gbnVsbDtcbiAgICAgICAgICB2YXIgX3ByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wO1xuICAgICAgICAgIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBEaXNjcmV0ZUV2ZW50UHJpb3JpdHk7XG4gICAgICAgICAgdmFyIF9wcmV2RXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gICAgICAgICAgZXhlY3V0aW9uQ29udGV4dCB8PSBDb21taXRDb250ZXh0O1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAoaW5Qcm9ncmVzc0xhbmVzID0gZW5kVGltZSksXG4gICAgICAgICAgICAgIChpblByb2dyZXNzUm9vdCA9IHN1c3BlbmRlZFZpZXdUcmFuc2l0aW9uUmVhc29uKSxcbiAgICAgICAgICAgICAgcmVzZXRDb21wb25lbnRFZmZlY3RUaW1lcnMoKSxcbiAgICAgICAgICAgICAgY29tbWl0TGF5b3V0RWZmZWN0T25GaWJlcihcbiAgICAgICAgICAgICAgICBzdXNwZW5kZWRWaWV3VHJhbnNpdGlvblJlYXNvbixcbiAgICAgICAgICAgICAgICBzdGFydFRpbWUuYWx0ZXJuYXRlLFxuICAgICAgICAgICAgICAgIHN0YXJ0VGltZVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAoaW5Qcm9ncmVzc1Jvb3QgPSBpblByb2dyZXNzTGFuZXMgPSBudWxsKTtcbiAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgKGV4ZWN1dGlvbkNvbnRleHQgPSBfcHJldkV4ZWN1dGlvbkNvbnRleHQpLFxuICAgICAgICAgICAgICAoUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IF9wcmV2aW91c1ByaW9yaXR5KSxcbiAgICAgICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSByb290SGFzTGF5b3V0RWZmZWN0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24gPSBwZW5kaW5nRWZmZWN0c1JlbmRlckVuZFRpbWU7XG4gICAgICAgIHN0YXJ0VGltZSA9IHBlbmRpbmdTdXNwZW5kZWRDb21taXRSZWFzb247XG4gICAgICAgIGNvbW1pdEVuZFRpbWUgPSBub3coKTtcbiAgICAgICAgc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24gPVxuICAgICAgICAgIG51bGwgPT09IHN0YXJ0VGltZSA/IHN1c3BlbmRlZFZpZXdUcmFuc2l0aW9uUmVhc29uIDogY29tbWl0U3RhcnRUaW1lO1xuICAgICAgICBzdGFydFRpbWUgPSBjb21taXRFbmRUaW1lO1xuICAgICAgICBlbmRUaW1lID0gcGVuZGluZ0RlbGF5ZWRDb21taXRSZWFzb24gPT09IEFCT1JURURfVklFV19UUkFOU0lUSU9OX0NPTU1JVDtcbiAgICAgICAgcm9vdEhhc0xheW91dEVmZmVjdCA9IHdvcmtJblByb2dyZXNzVXBkYXRlVGFzaztcbiAgICAgICAgbnVsbCAhPT0gY29tbWl0RXJyb3JzXG4gICAgICAgICAgPyBsb2dDb21taXRFcnJvcmVkKFxuICAgICAgICAgICAgICBzdXNwZW5kZWRWaWV3VHJhbnNpdGlvblJlYXNvbixcbiAgICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgICBjb21taXRFcnJvcnMsXG4gICAgICAgICAgICAgICExLFxuICAgICAgICAgICAgICByb290SGFzTGF5b3V0RWZmZWN0XG4gICAgICAgICAgICApXG4gICAgICAgICAgOiAhc3VwcG9ydHNVc2VyVGltaW5nIHx8XG4gICAgICAgICAgICBzdGFydFRpbWUgPD0gc3VzcGVuZGVkVmlld1RyYW5zaXRpb25SZWFzb24gfHxcbiAgICAgICAgICAgIChyb290SGFzTGF5b3V0RWZmZWN0XG4gICAgICAgICAgICAgID8gcm9vdEhhc0xheW91dEVmZmVjdC5ydW4oXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLnRpbWVTdGFtcC5iaW5kKFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAgICAgICBlbmRUaW1lID8gXCJDb21taXQgSW50ZXJydXB0ZWQgVmlldyBUcmFuc2l0aW9uXCIgOiBcIkNvbW1pdFwiLFxuICAgICAgICAgICAgICAgICAgICBzdXNwZW5kZWRWaWV3VHJhbnNpdGlvblJlYXNvbixcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLFxuICAgICAgICAgICAgICAgICAgICBlbmRUaW1lID8gXCJlcnJvclwiIDogXCJzZWNvbmRhcnktZGFya1wiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IGNvbnNvbGUudGltZVN0YW1wKFxuICAgICAgICAgICAgICAgICAgZW5kVGltZSA/IFwiQ29tbWl0IEludGVycnVwdGVkIFZpZXcgVHJhbnNpdGlvblwiIDogXCJDb21taXRcIixcbiAgICAgICAgICAgICAgICAgIHN1c3BlbmRlZFZpZXdUcmFuc2l0aW9uUmVhc29uLFxuICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFRyYWNrLFxuICAgICAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgICAgICAgICBlbmRUaW1lID8gXCJlcnJvclwiIDogXCJzZWNvbmRhcnktZGFya1wiXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgIHBlbmRpbmdFZmZlY3RzU3RhdHVzID0gUEVORElOR19BRlRFUl9NVVRBVElPTl9QSEFTRTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmx1c2hTcGF3bmVkV29yaygpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcGVuZGluZ0VmZmVjdHNTdGF0dXMgPT09IFBFTkRJTkdfU1BBV05FRF9XT1JLIHx8XG4gICAgICAgIHBlbmRpbmdFZmZlY3RzU3RhdHVzID09PSBQRU5ESU5HX0FGVEVSX01VVEFUSU9OX1BIQVNFXG4gICAgICApIHtcbiAgICAgICAgaWYgKHBlbmRpbmdFZmZlY3RzU3RhdHVzID09PSBQRU5ESU5HX1NQQVdORURfV09SSykge1xuICAgICAgICAgIHZhciBzdGFydFZpZXdUcmFuc2l0aW9uU3RhcnRUaW1lID0gY29tbWl0RW5kVGltZTtcbiAgICAgICAgICBjb21taXRFbmRUaW1lID0gbm93KCk7XG4gICAgICAgICAgdmFyIGVuZFRpbWUgPSBjb21taXRFbmRUaW1lLFxuICAgICAgICAgICAgYWJvcnRlZFZpZXdUcmFuc2l0aW9uID1cbiAgICAgICAgICAgICAgcGVuZGluZ0RlbGF5ZWRDb21taXRSZWFzb24gPT09IEFCT1JURURfVklFV19UUkFOU0lUSU9OX0NPTU1JVDtcbiAgICAgICAgICAhc3VwcG9ydHNVc2VyVGltaW5nIHx8XG4gICAgICAgICAgICBlbmRUaW1lIDw9IHN0YXJ0Vmlld1RyYW5zaXRpb25TdGFydFRpbWUgfHxcbiAgICAgICAgICAgIChhbmltYXRpbmdUYXNrXG4gICAgICAgICAgICAgID8gYW5pbWF0aW5nVGFzay5ydW4oXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLnRpbWVTdGFtcC5iaW5kKFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAgICAgICBhYm9ydGVkVmlld1RyYW5zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICA/IFwiSW50ZXJydXB0ZWQgVmlldyBUcmFuc2l0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiU3RhcnRpbmcgQW5pbWF0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0Vmlld1RyYW5zaXRpb25TdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICAgIGVuZFRpbWUsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUcmFjayxcbiAgICAgICAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgICAgICAgICAgIGFib3J0ZWRWaWV3VHJhbnNpdGlvbiA/IFwiZXJyb3JcIiA6IFwic2Vjb25kYXJ5LWxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogY29uc29sZS50aW1lU3RhbXAoXG4gICAgICAgICAgICAgICAgICBhYm9ydGVkVmlld1RyYW5zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgPyBcIkludGVycnVwdGVkIFZpZXcgVHJhbnNpdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIDogXCJTdGFydGluZyBBbmltYXRpb25cIixcbiAgICAgICAgICAgICAgICAgIHN0YXJ0Vmlld1RyYW5zaXRpb25TdGFydFRpbWUsXG4gICAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgY3VycmVudFRyYWNrLFxuICAgICAgICAgICAgICAgICAgTEFORVNfVFJBQ0tfR1JPVVAsXG4gICAgICAgICAgICAgICAgICBhYm9ydGVkVmlld1RyYW5zaXRpb24gPyBcIiBlcnJvclwiIDogXCJzZWNvbmRhcnktbGlnaHRcIlxuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgIHBlbmRpbmdEZWxheWVkQ29tbWl0UmVhc29uICE9PSBBQk9SVEVEX1ZJRVdfVFJBTlNJVElPTl9DT01NSVQgJiZcbiAgICAgICAgICAgIChwZW5kaW5nRGVsYXllZENvbW1pdFJlYXNvbiA9IEFOSU1BVElPTl9TVEFSVEVEX0NPTU1JVCk7XG4gICAgICAgIH1cbiAgICAgICAgcGVuZGluZ0VmZmVjdHNTdGF0dXMgPSBOT19QRU5ESU5HX0VGRkVDVFM7XG4gICAgICAgIHJlcXVlc3RQYWludCgpO1xuICAgICAgICBzdGFydFZpZXdUcmFuc2l0aW9uU3RhcnRUaW1lID0gcGVuZGluZ0VmZmVjdHNSb290O1xuICAgICAgICB2YXIgZmluaXNoZWRXb3JrID0gcGVuZGluZ0ZpbmlzaGVkV29yaztcbiAgICAgICAgZW5kVGltZSA9IHBlbmRpbmdFZmZlY3RzTGFuZXM7XG4gICAgICAgIGFib3J0ZWRWaWV3VHJhbnNpdGlvbiA9IHBlbmRpbmdSZWNvdmVyYWJsZUVycm9ycztcbiAgICAgICAgdmFyIHJvb3REaWRIYXZlUGFzc2l2ZUVmZmVjdHMgPVxuICAgICAgICAgIDAgIT09IGZpbmlzaGVkV29yay5hY3R1YWxEdXJhdGlvbiB8fFxuICAgICAgICAgIDAgIT09IChmaW5pc2hlZFdvcmsuc3VidHJlZUZsYWdzICYgMTAyNTYpIHx8XG4gICAgICAgICAgMCAhPT0gKGZpbmlzaGVkV29yay5mbGFncyAmIDEwMjU2KTtcbiAgICAgICAgcm9vdERpZEhhdmVQYXNzaXZlRWZmZWN0c1xuICAgICAgICAgID8gKHBlbmRpbmdFZmZlY3RzU3RhdHVzID0gUEVORElOR19QQVNTSVZFX1BIQVNFKVxuICAgICAgICAgIDogKChwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IE5PX1BFTkRJTkdfRUZGRUNUUyksXG4gICAgICAgICAgICAocGVuZGluZ0ZpbmlzaGVkV29yayA9IHBlbmRpbmdFZmZlY3RzUm9vdCA9IG51bGwpLFxuICAgICAgICAgICAgcmVsZWFzZVJvb3RQb29sZWRDYWNoZShcbiAgICAgICAgICAgICAgc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZS5wZW5kaW5nTGFuZXNcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAobmVzdGVkUGFzc2l2ZVVwZGF0ZUNvdW50ID0gMCksXG4gICAgICAgICAgICAocm9vdFdpdGhQYXNzaXZlTmVzdGVkVXBkYXRlcyA9IG51bGwpKTtcbiAgICAgICAgdmFyIHJlbWFpbmluZ0xhbmVzID0gc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZS5wZW5kaW5nTGFuZXM7XG4gICAgICAgIDAgPT09IHJlbWFpbmluZ0xhbmVzICYmIChsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCA9IG51bGwpO1xuICAgICAgICByb290RGlkSGF2ZVBhc3NpdmVFZmZlY3RzIHx8XG4gICAgICAgICAgY29tbWl0RG91YmxlSW52b2tlRWZmZWN0c0luREVWKHN0YXJ0Vmlld1RyYW5zaXRpb25TdGFydFRpbWUpO1xuICAgICAgICByZW1haW5pbmdMYW5lcyA9IGxhbmVzVG9FdmVudFByaW9yaXR5KGVuZFRpbWUpO1xuICAgICAgICBmaW5pc2hlZFdvcmsgPSBmaW5pc2hlZFdvcmsuc3RhdGVOb2RlO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgaW5qZWN0ZWRIb29rICYmXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uQ29tbWl0RmliZXJSb290XG4gICAgICAgIClcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIGRpZEVycm9yID0gMTI4ID09PSAoZmluaXNoZWRXb3JrLmN1cnJlbnQuZmxhZ3MgJiAxMjgpO1xuICAgICAgICAgICAgc3dpdGNoIChyZW1haW5pbmdMYW5lcykge1xuICAgICAgICAgICAgICBjYXNlIERpc2NyZXRlRXZlbnRQcmlvcml0eTpcbiAgICAgICAgICAgICAgICB2YXIgc2NoZWR1bGVyUHJpb3JpdHkgPSBJbW1lZGlhdGVQcmlvcml0eTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBDb250aW51b3VzRXZlbnRQcmlvcml0eTpcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IFVzZXJCbG9ja2luZ1ByaW9yaXR5O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIERlZmF1bHRFdmVudFByaW9yaXR5OlxuICAgICAgICAgICAgICAgIHNjaGVkdWxlclByaW9yaXR5ID0gTm9ybWFsUHJpb3JpdHkkMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBJZGxlRXZlbnRQcmlvcml0eTpcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IElkbGVQcmlvcml0eTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IE5vcm1hbFByaW9yaXR5JDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbmplY3RlZEhvb2sub25Db21taXRGaWJlclJvb3QoXG4gICAgICAgICAgICAgIHJlbmRlcmVySUQsXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29yayxcbiAgICAgICAgICAgICAgc2NoZWR1bGVyUHJpb3JpdHksXG4gICAgICAgICAgICAgIGRpZEVycm9yXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaGFzTG9nZ2VkRXJyb3IgfHxcbiAgICAgICAgICAgICAgKChoYXNMb2dnZWRFcnJvciA9ICEwKSxcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlJlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJW9cIixcbiAgICAgICAgICAgICAgICBlcnJcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgfVxuICAgICAgICBpc0RldlRvb2xzUHJlc2VudCAmJlxuICAgICAgICAgIHN0YXJ0Vmlld1RyYW5zaXRpb25TdGFydFRpbWUubWVtb2l6ZWRVcGRhdGVycy5jbGVhcigpO1xuICAgICAgICBvbkNvbW1pdFJvb3QoKTtcbiAgICAgICAgaWYgKG51bGwgIT09IGFib3J0ZWRWaWV3VHJhbnNpdGlvbikge1xuICAgICAgICAgIGRpZEVycm9yID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuVDtcbiAgICAgICAgICBzY2hlZHVsZXJQcmlvcml0eSA9IFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnA7XG4gICAgICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IERpc2NyZXRlRXZlbnRQcmlvcml0eTtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gbnVsbDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgdmFyIG9uUmVjb3ZlcmFibGVFcnJvciA9XG4gICAgICAgICAgICAgIHN0YXJ0Vmlld1RyYW5zaXRpb25TdGFydFRpbWUub25SZWNvdmVyYWJsZUVycm9yO1xuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrID0gMDtcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrIDwgYWJvcnRlZFZpZXdUcmFuc2l0aW9uLmxlbmd0aDtcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrKytcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB2YXIgcmVjb3ZlcmFibGVFcnJvciA9IGFib3J0ZWRWaWV3VHJhbnNpdGlvbltmaW5pc2hlZFdvcmtdLFxuICAgICAgICAgICAgICAgIGVycm9ySW5mbyA9IG1ha2VFcnJvckluZm8ocmVjb3ZlcmFibGVFcnJvci5zdGFjayk7XG4gICAgICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgIHJlY292ZXJhYmxlRXJyb3Iuc291cmNlLFxuICAgICAgICAgICAgICAgIG9uUmVjb3ZlcmFibGVFcnJvcixcbiAgICAgICAgICAgICAgICByZWNvdmVyYWJsZUVycm9yLnZhbHVlLFxuICAgICAgICAgICAgICAgIGVycm9ySW5mb1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IGRpZEVycm9yKSxcbiAgICAgICAgICAgICAgKFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBzY2hlZHVsZXJQcmlvcml0eSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIDAgIT09IChwZW5kaW5nRWZmZWN0c0xhbmVzICYgMykgJiYgZmx1c2hQZW5kaW5nRWZmZWN0cygpO1xuICAgICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQoc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZSk7XG4gICAgICAgIHJlbWFpbmluZ0xhbmVzID0gc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZS5wZW5kaW5nTGFuZXM7XG4gICAgICAgIDAgIT09IChlbmRUaW1lICYgMjYxOTMwKSAmJiAwICE9PSAocmVtYWluaW5nTGFuZXMgJiA0MilcbiAgICAgICAgICA/ICgobmVzdGVkVXBkYXRlU2NoZWR1bGVkID0gITApLFxuICAgICAgICAgICAgc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZSA9PT0gcm9vdFdpdGhOZXN0ZWRVcGRhdGVzXG4gICAgICAgICAgICAgID8gbmVzdGVkVXBkYXRlQ291bnQrK1xuICAgICAgICAgICAgICA6ICgobmVzdGVkVXBkYXRlQ291bnQgPSAwKSxcbiAgICAgICAgICAgICAgICAocm9vdFdpdGhOZXN0ZWRVcGRhdGVzID0gc3RhcnRWaWV3VHJhbnNpdGlvblN0YXJ0VGltZSkpKVxuICAgICAgICAgIDogKG5lc3RlZFVwZGF0ZUNvdW50ID0gMCk7XG4gICAgICAgIHJvb3REaWRIYXZlUGFzc2l2ZUVmZmVjdHMgfHwgZmluYWxpemVSZW5kZXIoZW5kVGltZSwgY29tbWl0RW5kVGltZSk7XG4gICAgICAgIGZsdXNoU3luY1dvcmtBY3Jvc3NSb290c19pbXBsKDAsICExKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUVycm9ySW5mbyhjb21wb25lbnRTdGFjaykge1xuICAgICAgY29tcG9uZW50U3RhY2sgPSB7IGNvbXBvbmVudFN0YWNrOiBjb21wb25lbnRTdGFjayB9O1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvbXBvbmVudFN0YWNrLCBcImRpZ2VzdFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAnWW91IGFyZSBhY2Nlc3NpbmcgXCJkaWdlc3RcIiBmcm9tIHRoZSBlcnJvckluZm8gb2JqZWN0IHBhc3NlZCB0byBvblJlY292ZXJhYmxlRXJyb3IuIFRoaXMgcHJvcGVydHkgaXMgbm8gbG9uZ2VyIHByb3ZpZGVkIGFzIHBhcnQgb2YgZXJyb3JJbmZvIGJ1dCBjYW4gYmUgYWNjZXNzZWQgYXMgYSBwcm9wZXJ0eSBvZiB0aGUgRXJyb3IgaW5zdGFuY2UgaXRzZWxmLidcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjb21wb25lbnRTdGFjaztcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVsZWFzZVJvb3RQb29sZWRDYWNoZShyb290LCByZW1haW5pbmdMYW5lcykge1xuICAgICAgMCA9PT0gKHJvb3QucG9vbGVkQ2FjaGVMYW5lcyAmPSByZW1haW5pbmdMYW5lcykgJiZcbiAgICAgICAgKChyZW1haW5pbmdMYW5lcyA9IHJvb3QucG9vbGVkQ2FjaGUpLFxuICAgICAgICBudWxsICE9IHJlbWFpbmluZ0xhbmVzICYmXG4gICAgICAgICAgKChyb290LnBvb2xlZENhY2hlID0gbnVsbCksIHJlbGVhc2VDYWNoZShyZW1haW5pbmdMYW5lcykpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZmx1c2hQZW5kaW5nRWZmZWN0cygpIHtcbiAgICAgIGZsdXNoTXV0YXRpb25FZmZlY3RzKCk7XG4gICAgICBmbHVzaExheW91dEVmZmVjdHMoKTtcbiAgICAgIGZsdXNoU3Bhd25lZFdvcmsoKTtcbiAgICAgIHJldHVybiBmbHVzaFBhc3NpdmVFZmZlY3RzKCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZsdXNoUGFzc2l2ZUVmZmVjdHMoKSB7XG4gICAgICBpZiAocGVuZGluZ0VmZmVjdHNTdGF0dXMgIT09IFBFTkRJTkdfUEFTU0lWRV9QSEFTRSkgcmV0dXJuICExO1xuICAgICAgdmFyIHJvb3QgPSBwZW5kaW5nRWZmZWN0c1Jvb3QsXG4gICAgICAgIHJlbWFpbmluZ0xhbmVzID0gcGVuZGluZ0VmZmVjdHNSZW1haW5pbmdMYW5lcztcbiAgICAgIHBlbmRpbmdFZmZlY3RzUmVtYWluaW5nTGFuZXMgPSAwO1xuICAgICAgdmFyIHJlbmRlclByaW9yaXR5ID0gbGFuZXNUb0V2ZW50UHJpb3JpdHkocGVuZGluZ0VmZmVjdHNMYW5lcyksXG4gICAgICAgIHByaW9yaXR5ID1cbiAgICAgICAgICAwID09PSBEZWZhdWx0RXZlbnRQcmlvcml0eSB8fCBEZWZhdWx0RXZlbnRQcmlvcml0eSA+IHJlbmRlclByaW9yaXR5XG4gICAgICAgICAgICA/IERlZmF1bHRFdmVudFByaW9yaXR5XG4gICAgICAgICAgICA6IHJlbmRlclByaW9yaXR5O1xuICAgICAgcmVuZGVyUHJpb3JpdHkgPSBSZWFjdFNoYXJlZEludGVybmFscy5UO1xuICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wO1xuICAgICAgdHJ5IHtcbiAgICAgICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IHByaW9yaXR5O1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gbnVsbDtcbiAgICAgICAgdmFyIHRyYW5zaXRpb25zID0gcGVuZGluZ1Bhc3NpdmVUcmFuc2l0aW9ucztcbiAgICAgICAgcGVuZGluZ1Bhc3NpdmVUcmFuc2l0aW9ucyA9IG51bGw7XG4gICAgICAgIHByaW9yaXR5ID0gcGVuZGluZ0VmZmVjdHNSb290O1xuICAgICAgICB2YXIgbGFuZXMgPSBwZW5kaW5nRWZmZWN0c0xhbmVzO1xuICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IE5PX1BFTkRJTkdfRUZGRUNUUztcbiAgICAgICAgcGVuZGluZ0ZpbmlzaGVkV29yayA9IHBlbmRpbmdFZmZlY3RzUm9vdCA9IG51bGw7XG4gICAgICAgIHBlbmRpbmdFZmZlY3RzTGFuZXMgPSAwO1xuICAgICAgICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSAhPT0gTm9Db250ZXh0KVxuICAgICAgICAgIHRocm93IEVycm9yKFwiQ2Fubm90IGZsdXNoIHBhc3NpdmUgZWZmZWN0cyB3aGlsZSBhbHJlYWR5IHJlbmRlcmluZy5cIik7XG4gICAgICAgIHNldEN1cnJlbnRUcmFja0Zyb21MYW5lcyhsYW5lcyk7XG4gICAgICAgIGlzRmx1c2hpbmdQYXNzaXZlRWZmZWN0cyA9ICEwO1xuICAgICAgICBkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzID0gITE7XG4gICAgICAgIHZhciBwYXNzaXZlRWZmZWN0U3RhcnRUaW1lID0gMDtcbiAgICAgICAgY29tbWl0RXJyb3JzID0gbnVsbDtcbiAgICAgICAgcGFzc2l2ZUVmZmVjdFN0YXJ0VGltZSA9IG5vdyQxKCk7XG4gICAgICAgIGlmIChwZW5kaW5nRGVsYXllZENvbW1pdFJlYXNvbiA9PT0gQU5JTUFUSU9OX1NUQVJURURfQ09NTUlUKVxuICAgICAgICAgIGxvZ0FuaW1hdGluZ1BoYXNlKFxuICAgICAgICAgICAgY29tbWl0RW5kVGltZSxcbiAgICAgICAgICAgIHBhc3NpdmVFZmZlY3RTdGFydFRpbWUsXG4gICAgICAgICAgICBhbmltYXRpbmdUYXNrXG4gICAgICAgICAgKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdmFyIHN0YXJ0VGltZSA9IGNvbW1pdEVuZFRpbWUsXG4gICAgICAgICAgICBlbmRUaW1lID0gcGFzc2l2ZUVmZmVjdFN0YXJ0VGltZSxcbiAgICAgICAgICAgIGRlbGF5ZWRVbnRpbFBhaW50ID1cbiAgICAgICAgICAgICAgcGVuZGluZ0RlbGF5ZWRDb21taXRSZWFzb24gPT09IERFTEFZRURfUEFTU0lWRV9DT01NSVQ7XG4gICAgICAgICAgIXN1cHBvcnRzVXNlclRpbWluZyB8fFxuICAgICAgICAgICAgZW5kVGltZSA8PSBzdGFydFRpbWUgfHxcbiAgICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2tcbiAgICAgICAgICAgICAgPyB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2sucnVuKFxuICAgICAgICAgICAgICAgICAgY29uc29sZS50aW1lU3RhbXAuYmluZChcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZSxcbiAgICAgICAgICAgICAgICAgICAgZGVsYXllZFVudGlsUGFpbnQgPyBcIldhaXRpbmcgZm9yIFBhaW50XCIgOiBcIldhaXRpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lLFxuICAgICAgICAgICAgICAgICAgICBlbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLFxuICAgICAgICAgICAgICAgICAgICBcInNlY29uZGFyeS1saWdodFwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA6IGNvbnNvbGUudGltZVN0YW1wKFxuICAgICAgICAgICAgICAgICAgZGVsYXllZFVudGlsUGFpbnQgPyBcIldhaXRpbmcgZm9yIFBhaW50XCIgOiBcIldhaXRpbmdcIixcbiAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICAgIGVuZFRpbWUsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICAgIFwic2Vjb25kYXJ5LWxpZ2h0XCJcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgfVxuICAgICAgICBzdGFydFRpbWUgPSBleGVjdXRpb25Db250ZXh0O1xuICAgICAgICBleGVjdXRpb25Db250ZXh0IHw9IENvbW1pdENvbnRleHQ7XG4gICAgICAgIHZhciBmaW5pc2hlZFdvcmsgPSBwcmlvcml0eS5jdXJyZW50O1xuICAgICAgICByZXNldENvbXBvbmVudEVmZmVjdFRpbWVycygpO1xuICAgICAgICBjb21taXRQYXNzaXZlVW5tb3VudE9uRmliZXIoZmluaXNoZWRXb3JrKTtcbiAgICAgICAgdmFyIGZpbmlzaGVkV29yayRqc2NvbXAkMCA9IHByaW9yaXR5LmN1cnJlbnQ7XG4gICAgICAgIGZpbmlzaGVkV29yayA9IHBlbmRpbmdFZmZlY3RzUmVuZGVyRW5kVGltZTtcbiAgICAgICAgcmVzZXRDb21wb25lbnRFZmZlY3RUaW1lcnMoKTtcbiAgICAgICAgY29tbWl0UGFzc2l2ZU1vdW50T25GaWJlcihcbiAgICAgICAgICBwcmlvcml0eSxcbiAgICAgICAgICBmaW5pc2hlZFdvcmskanNjb21wJDAsXG4gICAgICAgICAgbGFuZXMsXG4gICAgICAgICAgdHJhbnNpdGlvbnMsXG4gICAgICAgICAgZmluaXNoZWRXb3JrXG4gICAgICAgICk7XG4gICAgICAgIGNvbW1pdERvdWJsZUludm9rZUVmZmVjdHNJbkRFVihwcmlvcml0eSk7XG4gICAgICAgIGV4ZWN1dGlvbkNvbnRleHQgPSBzdGFydFRpbWU7XG4gICAgICAgIHZhciBwYXNzaXZlRWZmZWN0c0VuZFRpbWUgPSBub3ckMSgpO1xuICAgICAgICBmaW5pc2hlZFdvcmskanNjb21wJDAgPSBwYXNzaXZlRWZmZWN0U3RhcnRUaW1lO1xuICAgICAgICBmaW5pc2hlZFdvcmsgPSB3b3JrSW5Qcm9ncmVzc1VwZGF0ZVRhc2s7XG4gICAgICAgIG51bGwgIT09IGNvbW1pdEVycm9yc1xuICAgICAgICAgID8gbG9nQ29tbWl0RXJyb3JlZChcbiAgICAgICAgICAgICAgZmluaXNoZWRXb3JrJGpzY29tcCQwLFxuICAgICAgICAgICAgICBwYXNzaXZlRWZmZWN0c0VuZFRpbWUsXG4gICAgICAgICAgICAgIGNvbW1pdEVycm9ycyxcbiAgICAgICAgICAgICAgITAsXG4gICAgICAgICAgICAgIGZpbmlzaGVkV29ya1xuICAgICAgICAgICAgKVxuICAgICAgICAgIDogIXN1cHBvcnRzVXNlclRpbWluZyB8fFxuICAgICAgICAgICAgcGFzc2l2ZUVmZmVjdHNFbmRUaW1lIDw9IGZpbmlzaGVkV29yayRqc2NvbXAkMCB8fFxuICAgICAgICAgICAgKGZpbmlzaGVkV29ya1xuICAgICAgICAgICAgICA/IGZpbmlzaGVkV29yay5ydW4oXG4gICAgICAgICAgICAgICAgICBjb25zb2xlLnRpbWVTdGFtcC5iaW5kKFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLFxuICAgICAgICAgICAgICAgICAgICBcIlJlbWFpbmluZyBFZmZlY3RzXCIsXG4gICAgICAgICAgICAgICAgICAgIGZpbmlzaGVkV29yayRqc2NvbXAkMCxcbiAgICAgICAgICAgICAgICAgICAgcGFzc2l2ZUVmZmVjdHNFbmRUaW1lLFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgICAgIExBTkVTX1RSQUNLX0dST1VQLFxuICAgICAgICAgICAgICAgICAgICBcInNlY29uZGFyeS1kYXJrXCJcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogY29uc29sZS50aW1lU3RhbXAoXG4gICAgICAgICAgICAgICAgICBcIlJlbWFpbmluZyBFZmZlY3RzXCIsXG4gICAgICAgICAgICAgICAgICBmaW5pc2hlZFdvcmskanNjb21wJDAsXG4gICAgICAgICAgICAgICAgICBwYXNzaXZlRWZmZWN0c0VuZFRpbWUsXG4gICAgICAgICAgICAgICAgICBjdXJyZW50VHJhY2ssXG4gICAgICAgICAgICAgICAgICBMQU5FU19UUkFDS19HUk9VUCxcbiAgICAgICAgICAgICAgICAgIFwic2Vjb25kYXJ5LWRhcmtcIlxuICAgICAgICAgICAgICAgICkpO1xuICAgICAgICBmaW5hbGl6ZVJlbmRlcihsYW5lcywgcGFzc2l2ZUVmZmVjdHNFbmRUaW1lKTtcbiAgICAgICAgZmx1c2hTeW5jV29ya0Fjcm9zc1Jvb3RzX2ltcGwoMCwgITEpO1xuICAgICAgICBkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzXG4gICAgICAgICAgPyBwcmlvcml0eSA9PT0gcm9vdFdpdGhQYXNzaXZlTmVzdGVkVXBkYXRlc1xuICAgICAgICAgICAgPyBuZXN0ZWRQYXNzaXZlVXBkYXRlQ291bnQrK1xuICAgICAgICAgICAgOiAoKG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IDApLFxuICAgICAgICAgICAgICAocm9vdFdpdGhQYXNzaXZlTmVzdGVkVXBkYXRlcyA9IHByaW9yaXR5KSlcbiAgICAgICAgICA6IChuZXN0ZWRQYXNzaXZlVXBkYXRlQ291bnQgPSAwKTtcbiAgICAgICAgZGlkU2NoZWR1bGVVcGRhdGVEdXJpbmdQYXNzaXZlRWZmZWN0cyA9IGlzRmx1c2hpbmdQYXNzaXZlRWZmZWN0cyA9ICExO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgaW5qZWN0ZWRIb29rICYmXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uUG9zdENvbW1pdEZpYmVyUm9vdFxuICAgICAgICApXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGluamVjdGVkSG9vay5vblBvc3RDb21taXRGaWJlclJvb3QocmVuZGVyZXJJRCwgcHJpb3JpdHkpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgaGFzTG9nZ2VkRXJyb3IgfHxcbiAgICAgICAgICAgICAgKChoYXNMb2dnZWRFcnJvciA9ICEwKSxcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIlJlYWN0IGluc3RydW1lbnRhdGlvbiBlbmNvdW50ZXJlZCBhbiBlcnJvcjogJW9cIixcbiAgICAgICAgICAgICAgICBlcnJcbiAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgfVxuICAgICAgICB2YXIgc3RhdGVOb2RlID0gcHJpb3JpdHkuY3VycmVudC5zdGF0ZU5vZGU7XG4gICAgICAgIHN0YXRlTm9kZS5lZmZlY3REdXJhdGlvbiA9IDA7XG4gICAgICAgIHN0YXRlTm9kZS5wYXNzaXZlRWZmZWN0RHVyYXRpb24gPSAwO1xuICAgICAgICByZXR1cm4gITA7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICAoUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IHByZXZpb3VzUHJpb3JpdHkpLFxuICAgICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy5UID0gcmVuZGVyUHJpb3JpdHkpLFxuICAgICAgICAgIHJlbGVhc2VSb290UG9vbGVkQ2FjaGUocm9vdCwgcmVtYWluaW5nTGFuZXMpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvck9uUm9vdChyb290RmliZXIsIHNvdXJjZUZpYmVyLCBlcnJvcikge1xuICAgICAgc291cmNlRmliZXIgPSBjcmVhdGVDYXB0dXJlZFZhbHVlQXRGaWJlcihlcnJvciwgc291cmNlRmliZXIpO1xuICAgICAgcmVjb3JkRWZmZWN0RXJyb3Ioc291cmNlRmliZXIpO1xuICAgICAgc291cmNlRmliZXIgPSBjcmVhdGVSb290RXJyb3JVcGRhdGUocm9vdEZpYmVyLnN0YXRlTm9kZSwgc291cmNlRmliZXIsIDIpO1xuICAgICAgcm9vdEZpYmVyID0gZW5xdWV1ZVVwZGF0ZShyb290RmliZXIsIHNvdXJjZUZpYmVyLCAyKTtcbiAgICAgIG51bGwgIT09IHJvb3RGaWJlciAmJlxuICAgICAgICAobWFya1Jvb3RVcGRhdGVkJDEocm9vdEZpYmVyLCAyKSwgZW5zdXJlUm9vdElzU2NoZWR1bGVkKHJvb3RGaWJlcikpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihcbiAgICAgIHNvdXJjZUZpYmVyLFxuICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgIGVycm9yXG4gICAgKSB7XG4gICAgICBpc1J1bm5pbmdJbnNlcnRpb25FZmZlY3QgPSAhMTtcbiAgICAgIGlmICgzID09PSBzb3VyY2VGaWJlci50YWcpXG4gICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yT25Sb290KHNvdXJjZUZpYmVyLCBzb3VyY2VGaWJlciwgZXJyb3IpO1xuICAgICAgZWxzZSB7XG4gICAgICAgIGZvciAoOyBudWxsICE9PSBuZWFyZXN0TW91bnRlZEFuY2VzdG9yOyApIHtcbiAgICAgICAgICBpZiAoMyA9PT0gbmVhcmVzdE1vdW50ZWRBbmNlc3Rvci50YWcpIHtcbiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yT25Sb290KFxuICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgICBzb3VyY2VGaWJlcixcbiAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICgxID09PSBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLnRhZykge1xuICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gbmVhcmVzdE1vdW50ZWRBbmNlc3Rvci5zdGF0ZU5vZGU7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT1cbiAgICAgICAgICAgICAgICB0eXBlb2YgbmVhcmVzdE1vdW50ZWRBbmNlc3Rvci50eXBlLmdldERlcml2ZWRTdGF0ZUZyb21FcnJvciB8fFxuICAgICAgICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50RGlkQ2F0Y2ggJiZcbiAgICAgICAgICAgICAgICAobnVsbCA9PT0gbGVnYWN5RXJyb3JCb3VuZGFyaWVzVGhhdEFscmVhZHlGYWlsZWQgfHxcbiAgICAgICAgICAgICAgICAgICFsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZC5oYXMoaW5zdGFuY2UpKSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzb3VyY2VGaWJlciA9IGNyZWF0ZUNhcHR1cmVkVmFsdWVBdEZpYmVyKGVycm9yLCBzb3VyY2VGaWJlcik7XG4gICAgICAgICAgICAgIHJlY29yZEVmZmVjdEVycm9yKHNvdXJjZUZpYmVyKTtcbiAgICAgICAgICAgICAgZXJyb3IgPSBjcmVhdGVDbGFzc0Vycm9yVXBkYXRlKDIpO1xuICAgICAgICAgICAgICBpbnN0YW5jZSA9IGVucXVldWVVcGRhdGUobmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IsIDIpO1xuICAgICAgICAgICAgICBudWxsICE9PSBpbnN0YW5jZSAmJlxuICAgICAgICAgICAgICAgIChpbml0aWFsaXplQ2xhc3NFcnJvclVwZGF0ZShcbiAgICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yLFxuICAgICAgICAgICAgICAgICAgc291cmNlRmliZXJcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1hcmtSb290VXBkYXRlZCQxKGluc3RhbmNlLCAyKSxcbiAgICAgICAgICAgICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQoaW5zdGFuY2UpKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBuZWFyZXN0TW91bnRlZEFuY2VzdG9yID0gbmVhcmVzdE1vdW50ZWRBbmNlc3Rvci5yZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkludGVybmFsIFJlYWN0IGVycm9yOiBBdHRlbXB0ZWQgdG8gY2FwdHVyZSBhIGNvbW1pdCBwaGFzZSBlcnJvciBpbnNpZGUgYSBkZXRhY2hlZCB0cmVlLiBUaGlzIGluZGljYXRlcyBhIGJ1ZyBpbiBSZWFjdC4gUG90ZW50aWFsIGNhdXNlcyBpbmNsdWRlIGRlbGV0aW5nIHRoZSBzYW1lIGZpYmVyIG1vcmUgdGhhbiBvbmNlLCBjb21taXR0aW5nIGFuIGFscmVhZHktZmluaXNoZWQgdHJlZSwgb3IgYW4gaW5jb25zaXN0ZW50IHJldHVybiBwb2ludGVyLlxcblxcbkVycm9yIG1lc3NhZ2U6XFxuXFxuJXNcIixcbiAgICAgICAgICBlcnJvclxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBhdHRhY2hQaW5nTGlzdGVuZXIocm9vdCwgd2FrZWFibGUsIGxhbmVzKSB7XG4gICAgICB2YXIgcGluZ0NhY2hlID0gcm9vdC5waW5nQ2FjaGU7XG4gICAgICBpZiAobnVsbCA9PT0gcGluZ0NhY2hlKSB7XG4gICAgICAgIHBpbmdDYWNoZSA9IHJvb3QucGluZ0NhY2hlID0gbmV3IFBvc3NpYmx5V2Vha01hcCgpO1xuICAgICAgICB2YXIgdGhyZWFkSURzID0gbmV3IFNldCgpO1xuICAgICAgICBwaW5nQ2FjaGUuc2V0KHdha2VhYmxlLCB0aHJlYWRJRHMpO1xuICAgICAgfSBlbHNlXG4gICAgICAgICh0aHJlYWRJRHMgPSBwaW5nQ2FjaGUuZ2V0KHdha2VhYmxlKSksXG4gICAgICAgICAgdm9pZCAwID09PSB0aHJlYWRJRHMgJiZcbiAgICAgICAgICAgICgodGhyZWFkSURzID0gbmV3IFNldCgpKSwgcGluZ0NhY2hlLnNldCh3YWtlYWJsZSwgdGhyZWFkSURzKSk7XG4gICAgICB0aHJlYWRJRHMuaGFzKGxhbmVzKSB8fFxuICAgICAgICAoKHdvcmtJblByb2dyZXNzUm9vdERpZEF0dGFjaFBpbmdMaXN0ZW5lciA9ICEwKSxcbiAgICAgICAgdGhyZWFkSURzLmFkZChsYW5lcyksXG4gICAgICAgIChwaW5nQ2FjaGUgPSBwaW5nU3VzcGVuZGVkUm9vdC5iaW5kKG51bGwsIHJvb3QsIHdha2VhYmxlLCBsYW5lcykpLFxuICAgICAgICBpc0RldlRvb2xzUHJlc2VudCAmJiByZXN0b3JlUGVuZGluZ1VwZGF0ZXJzKHJvb3QsIGxhbmVzKSxcbiAgICAgICAgd2FrZWFibGUudGhlbihwaW5nQ2FjaGUsIHBpbmdDYWNoZSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwaW5nU3VzcGVuZGVkUm9vdChyb290LCB3YWtlYWJsZSwgcGluZ2VkTGFuZXMpIHtcbiAgICAgIHZhciBwaW5nQ2FjaGUgPSByb290LnBpbmdDYWNoZTtcbiAgICAgIG51bGwgIT09IHBpbmdDYWNoZSAmJiBwaW5nQ2FjaGUuZGVsZXRlKHdha2VhYmxlKTtcbiAgICAgIHJvb3QucGluZ2VkTGFuZXMgfD0gcm9vdC5zdXNwZW5kZWRMYW5lcyAmIHBpbmdlZExhbmVzO1xuICAgICAgcm9vdC53YXJtTGFuZXMgJj0gfnBpbmdlZExhbmVzO1xuICAgICAgMCAhPT0gKHBpbmdlZExhbmVzICYgMTI3KVxuICAgICAgICA/IDAgPiBibG9ja2luZ1VwZGF0ZVRpbWUgJiZcbiAgICAgICAgICAoKGJsb2NraW5nQ2xhbXBUaW1lID0gYmxvY2tpbmdVcGRhdGVUaW1lID0gbm93KCkpLFxuICAgICAgICAgIChibG9ja2luZ1VwZGF0ZVRhc2sgPSBjcmVhdGVUYXNrKFwiUHJvbWlzZSBSZXNvbHZlZFwiKSksXG4gICAgICAgICAgKGJsb2NraW5nVXBkYXRlVHlwZSA9IFBJTkdFRF9VUERBVEUpKVxuICAgICAgICA6IDAgIT09IChwaW5nZWRMYW5lcyAmIDQxOTQwNDgpICYmXG4gICAgICAgICAgMCA+IHRyYW5zaXRpb25VcGRhdGVUaW1lICYmXG4gICAgICAgICAgKCh0cmFuc2l0aW9uQ2xhbXBUaW1lID0gdHJhbnNpdGlvblVwZGF0ZVRpbWUgPSBub3coKSksXG4gICAgICAgICAgKHRyYW5zaXRpb25VcGRhdGVUYXNrID0gY3JlYXRlVGFzayhcIlByb21pc2UgUmVzb2x2ZWRcIikpLFxuICAgICAgICAgICh0cmFuc2l0aW9uVXBkYXRlVHlwZSA9IFBJTkdFRF9VUERBVEUpKTtcbiAgICAgIGlzQ29uY3VycmVudEFjdEVudmlyb25tZW50KCkgJiZcbiAgICAgICAgbnVsbCA9PT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkEgc3VzcGVuZGVkIHJlc291cmNlIGZpbmlzaGVkIGxvYWRpbmcgaW5zaWRlIGEgdGVzdCwgYnV0IHRoZSBldmVudCB3YXMgbm90IHdyYXBwZWQgaW4gYWN0KC4uLikuXFxuXFxuV2hlbiB0ZXN0aW5nLCBjb2RlIHRoYXQgcmVzb2x2ZXMgc3VzcGVuZGVkIGRhdGEgc2hvdWxkIGJlIHdyYXBwZWQgaW50byBhY3QoLi4uKTpcXG5cXG5hY3QoKCkgPT4ge1xcbiAgLyogZmluaXNoIGxvYWRpbmcgc3VzcGVuZGVkIGRhdGEgKi9cXG59KTtcXG4vKiBhc3NlcnQgb24gdGhlIG91dHB1dCAqL1xcblxcblRoaXMgZW5zdXJlcyB0aGF0IHlvdSdyZSB0ZXN0aW5nIHRoZSBiZWhhdmlvciB0aGUgdXNlciB3b3VsZCBzZWUgaW4gdGhlIGJyb3dzZXIuIExlYXJuIG1vcmUgYXQgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay93cmFwLXRlc3RzLXdpdGgtYWN0XCJcbiAgICAgICAgKTtcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdCA9PT0gcm9vdCAmJlxuICAgICAgICAod29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiBwaW5nZWRMYW5lcykgPT09IHBpbmdlZExhbmVzICYmXG4gICAgICAgICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290U3VzcGVuZGVkV2l0aERlbGF5IHx8XG4gICAgICAgICh3b3JrSW5Qcm9ncmVzc1Jvb3RFeGl0U3RhdHVzID09PSBSb290U3VzcGVuZGVkICYmXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzICYgNjI5MTQ1NjApID09PVxuICAgICAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMgJiZcbiAgICAgICAgICBub3ckMSgpIC0gZ2xvYmFsTW9zdFJlY2VudEZhbGxiYWNrVGltZSA8IEZBTExCQUNLX1RIUk9UVExFX01TKVxuICAgICAgICAgID8gKGV4ZWN1dGlvbkNvbnRleHQgJiBSZW5kZXJDb250ZXh0KSA9PT0gTm9Db250ZXh0ICYmXG4gICAgICAgICAgICBwcmVwYXJlRnJlc2hTdGFjayhyb290LCAwKVxuICAgICAgICAgIDogKHdvcmtJblByb2dyZXNzUm9vdFBpbmdlZExhbmVzIHw9IHBpbmdlZExhbmVzKSxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZXRyeUxhbmVzID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyAmJlxuICAgICAgICAgICh3b3JrSW5Qcm9ncmVzc1N1c3BlbmRlZFJldHJ5TGFuZXMgPSAwKSk7XG4gICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQocm9vdCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJldHJ5VGltZWRPdXRCb3VuZGFyeShib3VuZGFyeUZpYmVyLCByZXRyeUxhbmUpIHtcbiAgICAgIDAgPT09IHJldHJ5TGFuZSAmJiAocmV0cnlMYW5lID0gY2xhaW1OZXh0UmV0cnlMYW5lKCkpO1xuICAgICAgYm91bmRhcnlGaWJlciA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShib3VuZGFyeUZpYmVyLCByZXRyeUxhbmUpO1xuICAgICAgbnVsbCAhPT0gYm91bmRhcnlGaWJlciAmJlxuICAgICAgICAobWFya1Jvb3RVcGRhdGVkJDEoYm91bmRhcnlGaWJlciwgcmV0cnlMYW5lKSxcbiAgICAgICAgZW5zdXJlUm9vdElzU2NoZWR1bGVkKGJvdW5kYXJ5RmliZXIpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmV0cnlEZWh5ZHJhdGVkU3VzcGVuc2VCb3VuZGFyeShib3VuZGFyeUZpYmVyKSB7XG4gICAgICB2YXIgc3VzcGVuc2VTdGF0ZSA9IGJvdW5kYXJ5RmliZXIubWVtb2l6ZWRTdGF0ZSxcbiAgICAgICAgcmV0cnlMYW5lID0gMDtcbiAgICAgIG51bGwgIT09IHN1c3BlbnNlU3RhdGUgJiYgKHJldHJ5TGFuZSA9IHN1c3BlbnNlU3RhdGUucmV0cnlMYW5lKTtcbiAgICAgIHJldHJ5VGltZWRPdXRCb3VuZGFyeShib3VuZGFyeUZpYmVyLCByZXRyeUxhbmUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlUmV0cnlXYWtlYWJsZShib3VuZGFyeUZpYmVyLCB3YWtlYWJsZSkge1xuICAgICAgdmFyIHJldHJ5TGFuZSA9IDA7XG4gICAgICBzd2l0Y2ggKGJvdW5kYXJ5RmliZXIudGFnKSB7XG4gICAgICAgIGNhc2UgMzE6XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgdmFyIHJldHJ5Q2FjaGUgPSBib3VuZGFyeUZpYmVyLnN0YXRlTm9kZTtcbiAgICAgICAgICB2YXIgc3VzcGVuc2VTdGF0ZSA9IGJvdW5kYXJ5RmliZXIubWVtb2l6ZWRTdGF0ZTtcbiAgICAgICAgICBudWxsICE9PSBzdXNwZW5zZVN0YXRlICYmIChyZXRyeUxhbmUgPSBzdXNwZW5zZVN0YXRlLnJldHJ5TGFuZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgMTk6XG4gICAgICAgICAgcmV0cnlDYWNoZSA9IGJvdW5kYXJ5RmliZXIuc3RhdGVOb2RlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgIHJldHJ5Q2FjaGUgPSBib3VuZGFyeUZpYmVyLnN0YXRlTm9kZS5fcmV0cnlDYWNoZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwiUGluZ2VkIHVua25vd24gc3VzcGVuc2UgYm91bmRhcnkgdHlwZS4gVGhpcyBpcyBwcm9iYWJseSBhIGJ1ZyBpbiBSZWFjdC5cIlxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICBudWxsICE9PSByZXRyeUNhY2hlICYmIHJldHJ5Q2FjaGUuZGVsZXRlKHdha2VhYmxlKTtcbiAgICAgIHJldHJ5VGltZWRPdXRCb3VuZGFyeShib3VuZGFyeUZpYmVyLCByZXRyeUxhbmUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWN1cnNpdmVseVRyYXZlcnNlQW5kRG91YmxlSW52b2tlRWZmZWN0c0luREVWKFxuICAgICAgcm9vdCRqc2NvbXAkMCxcbiAgICAgIHBhcmVudEZpYmVyLFxuICAgICAgaXNJblN0cmljdE1vZGVcbiAgICApIHtcbiAgICAgIGlmICgwICE9PSAocGFyZW50RmliZXIuc3VidHJlZUZsYWdzICYgNjcxMTcwNTYpKVxuICAgICAgICBmb3IgKHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuY2hpbGQ7IG51bGwgIT09IHBhcmVudEZpYmVyOyApIHtcbiAgICAgICAgICB2YXIgcm9vdCA9IHJvb3QkanNjb21wJDAsXG4gICAgICAgICAgICBmaWJlciA9IHBhcmVudEZpYmVyLFxuICAgICAgICAgICAgaXNTdHJpY3RNb2RlRmliZXIgPSBmaWJlci50eXBlID09PSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFO1xuICAgICAgICAgIGlzU3RyaWN0TW9kZUZpYmVyID0gaXNJblN0cmljdE1vZGUgfHwgaXNTdHJpY3RNb2RlRmliZXI7XG4gICAgICAgICAgMjIgIT09IGZpYmVyLnRhZ1xuICAgICAgICAgICAgPyBmaWJlci5mbGFncyAmIDY3MTA4ODY0XG4gICAgICAgICAgICAgID8gaXNTdHJpY3RNb2RlRmliZXIgJiZcbiAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihcbiAgICAgICAgICAgICAgICAgIGZpYmVyLFxuICAgICAgICAgICAgICAgICAgZG91YmxlSW52b2tlRWZmZWN0c09uRmliZXIsXG4gICAgICAgICAgICAgICAgICByb290LFxuICAgICAgICAgICAgICAgICAgZmliZXJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIDogcmVjdXJzaXZlbHlUcmF2ZXJzZUFuZERvdWJsZUludm9rZUVmZmVjdHNJbkRFVihcbiAgICAgICAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgICAgICAgIGlzU3RyaWN0TW9kZUZpYmVyXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBudWxsID09PSBmaWJlci5tZW1vaXplZFN0YXRlICYmXG4gICAgICAgICAgICAgIChpc1N0cmljdE1vZGVGaWJlciAmJiBmaWJlci5mbGFncyAmIDgxOTJcbiAgICAgICAgICAgICAgICA/IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgICAgICAgICAgZG91YmxlSW52b2tlRWZmZWN0c09uRmliZXIsXG4gICAgICAgICAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICAgICAgICAgIGZpYmVyXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBmaWJlci5zdWJ0cmVlRmxhZ3MgJiA2NzEwODg2NCAmJlxuICAgICAgICAgICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYoXG4gICAgICAgICAgICAgICAgICAgIGZpYmVyLFxuICAgICAgICAgICAgICAgICAgICByZWN1cnNpdmVseVRyYXZlcnNlQW5kRG91YmxlSW52b2tlRWZmZWN0c0luREVWLFxuICAgICAgICAgICAgICAgICAgICByb290LFxuICAgICAgICAgICAgICAgICAgICBmaWJlcixcbiAgICAgICAgICAgICAgICAgICAgaXNTdHJpY3RNb2RlRmliZXJcbiAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgIHBhcmVudEZpYmVyID0gcGFyZW50RmliZXIuc2libGluZztcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkb3VibGVJbnZva2VFZmZlY3RzT25GaWJlcihyb290LCBmaWJlcikge1xuICAgICAgc2V0SXNTdHJpY3RNb2RlRm9yRGV2dG9vbHMoITApO1xuICAgICAgdHJ5IHtcbiAgICAgICAgZGlzYXBwZWFyTGF5b3V0RWZmZWN0cyhmaWJlciksXG4gICAgICAgICAgZGlzY29ubmVjdFBhc3NpdmVFZmZlY3QoZmliZXIpLFxuICAgICAgICAgIHJlYXBwZWFyTGF5b3V0RWZmZWN0cyhyb290LCBmaWJlci5hbHRlcm5hdGUsIGZpYmVyLCAhMSksXG4gICAgICAgICAgcmVjb25uZWN0UGFzc2l2ZUVmZmVjdHMocm9vdCwgZmliZXIsIDAsIG51bGwsICExLCAwKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldElzU3RyaWN0TW9kZUZvckRldnRvb2xzKCExKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0RG91YmxlSW52b2tlRWZmZWN0c0luREVWKHJvb3QpIHtcbiAgICAgIHZhciBkb3VibGVJbnZva2VFZmZlY3RzID0gITA7XG4gICAgICByb290LmN1cnJlbnQubW9kZSAmIChTdHJpY3RMZWdhY3lNb2RlIHwgU3RyaWN0RWZmZWN0c01vZGUpIHx8XG4gICAgICAgIChkb3VibGVJbnZva2VFZmZlY3RzID0gITEpO1xuICAgICAgcmVjdXJzaXZlbHlUcmF2ZXJzZUFuZERvdWJsZUludm9rZUVmZmVjdHNJbkRFVihcbiAgICAgICAgcm9vdCxcbiAgICAgICAgcm9vdC5jdXJyZW50LFxuICAgICAgICBkb3VibGVJbnZva2VFZmZlY3RzXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3YXJuQWJvdXRVcGRhdGVPbk5vdFlldE1vdW50ZWRGaWJlckluREVWKGZpYmVyKSB7XG4gICAgICBpZiAoKGV4ZWN1dGlvbkNvbnRleHQgJiBSZW5kZXJDb250ZXh0KSA9PT0gTm9Db250ZXh0KSB7XG4gICAgICAgIHZhciB0YWcgPSBmaWJlci50YWc7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAzID09PSB0YWcgfHxcbiAgICAgICAgICAxID09PSB0YWcgfHxcbiAgICAgICAgICAwID09PSB0YWcgfHxcbiAgICAgICAgICAxMSA9PT0gdGFnIHx8XG4gICAgICAgICAgMTQgPT09IHRhZyB8fFxuICAgICAgICAgIDE1ID09PSB0YWdcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGFnID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihmaWJlcikgfHwgXCJSZWFjdENvbXBvbmVudFwiO1xuICAgICAgICAgIGlmIChudWxsICE9PSBkaWRXYXJuU3RhdGVVcGRhdGVGb3JOb3RZZXRNb3VudGVkQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBpZiAoZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudC5oYXModGFnKSkgcmV0dXJuO1xuICAgICAgICAgICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudC5hZGQodGFnKTtcbiAgICAgICAgICB9IGVsc2UgZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudCA9IG5ldyBTZXQoW3RhZ10pO1xuICAgICAgICAgIHJ1bldpdGhGaWJlckluREVWKGZpYmVyLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkNhbid0IHBlcmZvcm0gYSBSZWFjdCBzdGF0ZSB1cGRhdGUgb24gYSBjb21wb25lbnQgdGhhdCBoYXNuJ3QgbW91bnRlZCB5ZXQuIFRoaXMgaW5kaWNhdGVzIHRoYXQgeW91IGhhdmUgYSBzaWRlLWVmZmVjdCBpbiB5b3VyIHJlbmRlciBmdW5jdGlvbiB0aGF0IGFzeW5jaHJvbm91c2x5IHRyaWVzIHRvIHVwZGF0ZSB0aGUgY29tcG9uZW50LiBNb3ZlIHRoaXMgd29yayB0byB1c2VFZmZlY3QgaW5zdGVhZC5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiByZXN0b3JlUGVuZGluZ1VwZGF0ZXJzKHJvb3QsIGxhbmVzKSB7XG4gICAgICBpc0RldlRvb2xzUHJlc2VudCAmJlxuICAgICAgICByb290Lm1lbW9pemVkVXBkYXRlcnMuZm9yRWFjaChmdW5jdGlvbiAoc2NoZWR1bGluZ0ZpYmVyKSB7XG4gICAgICAgICAgYWRkRmliZXJUb0xhbmVzTWFwKHJvb3QsIHNjaGVkdWxpbmdGaWJlciwgbGFuZXMpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2NoZWR1bGVDYWxsYmFjayQxKHByaW9yaXR5TGV2ZWwsIGNhbGxiYWNrKSB7XG4gICAgICB2YXIgYWN0UXVldWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZTtcbiAgICAgIHJldHVybiBudWxsICE9PSBhY3RRdWV1ZVxuICAgICAgICA/IChhY3RRdWV1ZS5wdXNoKGNhbGxiYWNrKSwgZmFrZUFjdENhbGxiYWNrTm9kZSQxKVxuICAgICAgICA6IHNjaGVkdWxlQ2FsbGJhY2skMyhwcmlvcml0eUxldmVsLCBjYWxsYmFjayk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5JZlVwZGF0ZXNOb3RXcmFwcGVkV2l0aEFjdERFVihmaWJlcikge1xuICAgICAgaXNDb25jdXJyZW50QWN0RW52aXJvbm1lbnQoKSAmJlxuICAgICAgICBudWxsID09PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSAmJlxuICAgICAgICBydW5XaXRoRmliZXJJbkRFVihmaWJlciwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkFuIHVwZGF0ZSB0byAlcyBpbnNpZGUgYSB0ZXN0IHdhcyBub3Qgd3JhcHBlZCBpbiBhY3QoLi4uKS5cXG5cXG5XaGVuIHRlc3RpbmcsIGNvZGUgdGhhdCBjYXVzZXMgUmVhY3Qgc3RhdGUgdXBkYXRlcyBzaG91bGQgYmUgd3JhcHBlZCBpbnRvIGFjdCguLi4pOlxcblxcbmFjdCgoKSA9PiB7XFxuICAvKiBmaXJlIGV2ZW50cyB0aGF0IHVwZGF0ZSBzdGF0ZSAqL1xcbn0pO1xcbi8qIGFzc2VydCBvbiB0aGUgb3V0cHV0ICovXFxuXFxuVGhpcyBlbnN1cmVzIHRoYXQgeW91J3JlIHRlc3RpbmcgdGhlIGJlaGF2aW9yIHRoZSB1c2VyIHdvdWxkIHNlZSBpbiB0aGUgYnJvd3Nlci4gTGVhcm4gbW9yZSBhdCBodHRwczovL3JlYWN0LmRldi9saW5rL3dyYXAtdGVzdHMtd2l0aC1hY3RcIixcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChyb290KSB7XG4gICAgICByb290ICE9PSBsYXN0U2NoZWR1bGVkUm9vdCAmJlxuICAgICAgICBudWxsID09PSByb290Lm5leHQgJiZcbiAgICAgICAgKG51bGwgPT09IGxhc3RTY2hlZHVsZWRSb290XG4gICAgICAgICAgPyAoZmlyc3RTY2hlZHVsZWRSb290ID0gbGFzdFNjaGVkdWxlZFJvb3QgPSByb290KVxuICAgICAgICAgIDogKGxhc3RTY2hlZHVsZWRSb290ID0gbGFzdFNjaGVkdWxlZFJvb3QubmV4dCA9IHJvb3QpKTtcbiAgICAgIG1pZ2h0SGF2ZVBlbmRpbmdTeW5jV29yayA9ICEwO1xuICAgICAgbnVsbCAhPT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWVcbiAgICAgICAgPyBkaWRTY2hlZHVsZU1pY3JvdGFza19hY3QgfHxcbiAgICAgICAgICAoKGRpZFNjaGVkdWxlTWljcm90YXNrX2FjdCA9ICEwKSwgc2NoZWR1bGVJbW1lZGlhdGVSb290U2NoZWR1bGVUYXNrKCkpXG4gICAgICAgIDogZGlkU2NoZWR1bGVNaWNyb3Rhc2sgfHxcbiAgICAgICAgICAoKGRpZFNjaGVkdWxlTWljcm90YXNrID0gITApLCBzY2hlZHVsZUltbWVkaWF0ZVJvb3RTY2hlZHVsZVRhc2soKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZsdXNoU3luY1dvcmtBY3Jvc3NSb290c19pbXBsKHN5bmNUcmFuc2l0aW9uTGFuZXMsIG9ubHlMZWdhY3kpIHtcbiAgICAgIGlmICghaXNGbHVzaGluZ1dvcmsgJiYgbWlnaHRIYXZlUGVuZGluZ1N5bmNXb3JrKSB7XG4gICAgICAgIGlzRmx1c2hpbmdXb3JrID0gITA7XG4gICAgICAgIGRvIHtcbiAgICAgICAgICB2YXIgZGlkUGVyZm9ybVNvbWVXb3JrID0gITE7XG4gICAgICAgICAgZm9yICh2YXIgcm9vdCA9IGZpcnN0U2NoZWR1bGVkUm9vdDsgbnVsbCAhPT0gcm9vdDsgKSB7XG4gICAgICAgICAgICBpZiAoIW9ubHlMZWdhY3kpXG4gICAgICAgICAgICAgIGlmICgwICE9PSBzeW5jVHJhbnNpdGlvbkxhbmVzKSB7XG4gICAgICAgICAgICAgICAgdmFyIHBlbmRpbmdMYW5lcyA9IHJvb3QucGVuZGluZ0xhbmVzO1xuICAgICAgICAgICAgICAgIGlmICgwID09PSBwZW5kaW5nTGFuZXMpIHZhciBuZXh0TGFuZXMgPSAwO1xuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgdmFyIHN1c3BlbmRlZExhbmVzID0gcm9vdC5zdXNwZW5kZWRMYW5lcyxcbiAgICAgICAgICAgICAgICAgICAgcGluZ2VkTGFuZXMgPSByb290LnBpbmdlZExhbmVzO1xuICAgICAgICAgICAgICAgICAgbmV4dExhbmVzID1cbiAgICAgICAgICAgICAgICAgICAgKDEgPDwgKDMxIC0gY2x6MzIoNDIgfCBzeW5jVHJhbnNpdGlvbkxhbmVzKSArIDEpKSAtIDE7XG4gICAgICAgICAgICAgICAgICBuZXh0TGFuZXMgJj0gcGVuZGluZ0xhbmVzICYgfihzdXNwZW5kZWRMYW5lcyAmIH5waW5nZWRMYW5lcyk7XG4gICAgICAgICAgICAgICAgICBuZXh0TGFuZXMgPVxuICAgICAgICAgICAgICAgICAgICBuZXh0TGFuZXMgJiAyMDEzMjY3NDFcbiAgICAgICAgICAgICAgICAgICAgICA/IChuZXh0TGFuZXMgJiAyMDEzMjY3NDEpIHwgMVxuICAgICAgICAgICAgICAgICAgICAgIDogbmV4dExhbmVzXG4gICAgICAgICAgICAgICAgICAgICAgICA/IG5leHRMYW5lcyB8IDJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgMCAhPT0gbmV4dExhbmVzICYmXG4gICAgICAgICAgICAgICAgICAoKGRpZFBlcmZvcm1Tb21lV29yayA9ICEwKSxcbiAgICAgICAgICAgICAgICAgIHBlcmZvcm1TeW5jV29ya09uUm9vdChyb290LCBuZXh0TGFuZXMpKTtcbiAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgKG5leHRMYW5lcyA9IHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzKSxcbiAgICAgICAgICAgICAgICAgIChuZXh0TGFuZXMgPSBnZXROZXh0TGFuZXMoXG4gICAgICAgICAgICAgICAgICAgIHJvb3QsXG4gICAgICAgICAgICAgICAgICAgIHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdCA/IG5leHRMYW5lcyA6IDAsXG4gICAgICAgICAgICAgICAgICAgIG51bGwgIT09IHJvb3QuY2FuY2VsUGVuZGluZ0NvbW1pdCB8fFxuICAgICAgICAgICAgICAgICAgICAgIHJvb3QudGltZW91dEhhbmRsZSAhPT0gbm9UaW1lb3V0XG4gICAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAgIDAgPT09IChuZXh0TGFuZXMgJiAzKSB8fFxuICAgICAgICAgICAgICAgICAgICBjaGVja0lmUm9vdElzUHJlcmVuZGVyaW5nKHJvb3QsIG5leHRMYW5lcykgfHxcbiAgICAgICAgICAgICAgICAgICAgKChkaWRQZXJmb3JtU29tZVdvcmsgPSAhMCksXG4gICAgICAgICAgICAgICAgICAgIHBlcmZvcm1TeW5jV29ya09uUm9vdChyb290LCBuZXh0TGFuZXMpKTtcbiAgICAgICAgICAgIHJvb3QgPSByb290Lm5leHQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IHdoaWxlIChkaWRQZXJmb3JtU29tZVdvcmspO1xuICAgICAgICBpc0ZsdXNoaW5nV29yayA9ICExO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBwcm9jZXNzUm9vdFNjaGVkdWxlSW5JbW1lZGlhdGVUYXNrKCkge1xuICAgICAgc2NoZWR1bGVyRXZlbnQgPSB3aW5kb3cuZXZlbnQ7XG4gICAgICBwcm9jZXNzUm9vdFNjaGVkdWxlSW5NaWNyb3Rhc2soKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvY2Vzc1Jvb3RTY2hlZHVsZUluTWljcm90YXNrKCkge1xuICAgICAgbWlnaHRIYXZlUGVuZGluZ1N5bmNXb3JrID1cbiAgICAgICAgZGlkU2NoZWR1bGVNaWNyb3Rhc2tfYWN0ID1cbiAgICAgICAgZGlkU2NoZWR1bGVNaWNyb3Rhc2sgPVxuICAgICAgICAgICExO1xuICAgICAgdmFyIHN5bmNUcmFuc2l0aW9uTGFuZXMgPSAwO1xuICAgICAgMCAhPT0gY3VycmVudEV2ZW50VHJhbnNpdGlvbkxhbmUgJiZcbiAgICAgICAgc2hvdWxkQXR0ZW1wdEVhZ2VyVHJhbnNpdGlvbigpICYmXG4gICAgICAgIChzeW5jVHJhbnNpdGlvbkxhbmVzID0gY3VycmVudEV2ZW50VHJhbnNpdGlvbkxhbmUpO1xuICAgICAgZm9yIChcbiAgICAgICAgdmFyIGN1cnJlbnRUaW1lID0gbm93JDEoKSwgcHJldiA9IG51bGwsIHJvb3QgPSBmaXJzdFNjaGVkdWxlZFJvb3Q7XG4gICAgICAgIG51bGwgIT09IHJvb3Q7XG5cbiAgICAgICkge1xuICAgICAgICB2YXIgbmV4dCA9IHJvb3QubmV4dCxcbiAgICAgICAgICBuZXh0TGFuZXMgPSBzY2hlZHVsZVRhc2tGb3JSb290RHVyaW5nTWljcm90YXNrKHJvb3QsIGN1cnJlbnRUaW1lKTtcbiAgICAgICAgaWYgKDAgPT09IG5leHRMYW5lcylcbiAgICAgICAgICAocm9vdC5uZXh0ID0gbnVsbCksXG4gICAgICAgICAgICBudWxsID09PSBwcmV2ID8gKGZpcnN0U2NoZWR1bGVkUm9vdCA9IG5leHQpIDogKHByZXYubmV4dCA9IG5leHQpLFxuICAgICAgICAgICAgbnVsbCA9PT0gbmV4dCAmJiAobGFzdFNjaGVkdWxlZFJvb3QgPSBwcmV2KTtcbiAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgKChwcmV2ID0gcm9vdCksIDAgIT09IHN5bmNUcmFuc2l0aW9uTGFuZXMgfHwgMCAhPT0gKG5leHRMYW5lcyAmIDMpKVxuICAgICAgICApXG4gICAgICAgICAgbWlnaHRIYXZlUGVuZGluZ1N5bmNXb3JrID0gITA7XG4gICAgICAgIHJvb3QgPSBuZXh0O1xuICAgICAgfVxuICAgICAgKHBlbmRpbmdFZmZlY3RzU3RhdHVzICE9PSBOT19QRU5ESU5HX0VGRkVDVFMgJiZcbiAgICAgICAgcGVuZGluZ0VmZmVjdHNTdGF0dXMgIT09IFBFTkRJTkdfUEFTU0lWRV9QSEFTRSkgfHxcbiAgICAgICAgZmx1c2hTeW5jV29ya0Fjcm9zc1Jvb3RzX2ltcGwoc3luY1RyYW5zaXRpb25MYW5lcywgITEpO1xuICAgICAgMCAhPT0gY3VycmVudEV2ZW50VHJhbnNpdGlvbkxhbmUgJiYgKGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lID0gMCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNjaGVkdWxlVGFza0ZvclJvb3REdXJpbmdNaWNyb3Rhc2socm9vdCwgY3VycmVudFRpbWUpIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciBzdXNwZW5kZWRMYW5lcyA9IHJvb3Quc3VzcGVuZGVkTGFuZXMsXG4gICAgICAgICAgcGluZ2VkTGFuZXMgPSByb290LnBpbmdlZExhbmVzLFxuICAgICAgICAgIGV4cGlyYXRpb25UaW1lcyA9IHJvb3QuZXhwaXJhdGlvblRpbWVzLFxuICAgICAgICAgIGxhbmVzID0gcm9vdC5wZW5kaW5nTGFuZXMgJiAtNjI5MTQ1NjE7XG4gICAgICAgIDAgPCBsYW5lcztcblxuICAgICAgKSB7XG4gICAgICAgIHZhciBpbmRleCA9IDMxIC0gY2x6MzIobGFuZXMpLFxuICAgICAgICAgIGxhbmUgPSAxIDw8IGluZGV4LFxuICAgICAgICAgIGV4cGlyYXRpb25UaW1lID0gZXhwaXJhdGlvblRpbWVzW2luZGV4XTtcbiAgICAgICAgaWYgKC0xID09PSBleHBpcmF0aW9uVGltZSkge1xuICAgICAgICAgIGlmICgwID09PSAobGFuZSAmIHN1c3BlbmRlZExhbmVzKSB8fCAwICE9PSAobGFuZSAmIHBpbmdlZExhbmVzKSlcbiAgICAgICAgICAgIGV4cGlyYXRpb25UaW1lc1tpbmRleF0gPSBjb21wdXRlRXhwaXJhdGlvblRpbWUobGFuZSwgY3VycmVudFRpbWUpO1xuICAgICAgICB9IGVsc2UgZXhwaXJhdGlvblRpbWUgPD0gY3VycmVudFRpbWUgJiYgKHJvb3QuZXhwaXJlZExhbmVzIHw9IGxhbmUpO1xuICAgICAgICBsYW5lcyAmPSB+bGFuZTtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnRUaW1lID0gd29ya0luUHJvZ3Jlc3NSb290O1xuICAgICAgc3VzcGVuZGVkTGFuZXMgPSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcztcbiAgICAgIHN1c3BlbmRlZExhbmVzID0gZ2V0TmV4dExhbmVzKFxuICAgICAgICByb290LFxuICAgICAgICByb290ID09PSBjdXJyZW50VGltZSA/IHN1c3BlbmRlZExhbmVzIDogMCxcbiAgICAgICAgbnVsbCAhPT0gcm9vdC5jYW5jZWxQZW5kaW5nQ29tbWl0IHx8IHJvb3QudGltZW91dEhhbmRsZSAhPT0gbm9UaW1lb3V0XG4gICAgICApO1xuICAgICAgcGluZ2VkTGFuZXMgPSByb290LmNhbGxiYWNrTm9kZTtcbiAgICAgIGlmIChcbiAgICAgICAgMCA9PT0gc3VzcGVuZGVkTGFuZXMgfHxcbiAgICAgICAgKHJvb3QgPT09IGN1cnJlbnRUaW1lICYmXG4gICAgICAgICAgKHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID09PSBTdXNwZW5kZWRPbkRhdGEgfHxcbiAgICAgICAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmVhc29uID09PSBTdXNwZW5kZWRPbkFjdGlvbikpIHx8XG4gICAgICAgIG51bGwgIT09IHJvb3QuY2FuY2VsUGVuZGluZ0NvbW1pdFxuICAgICAgKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIG51bGwgIT09IHBpbmdlZExhbmVzICYmIGNhbmNlbENhbGxiYWNrKHBpbmdlZExhbmVzKSxcbiAgICAgICAgICAocm9vdC5jYWxsYmFja05vZGUgPSBudWxsKSxcbiAgICAgICAgICAocm9vdC5jYWxsYmFja1ByaW9yaXR5ID0gMClcbiAgICAgICAgKTtcbiAgICAgIGlmIChcbiAgICAgICAgMCA9PT0gKHN1c3BlbmRlZExhbmVzICYgMykgfHxcbiAgICAgICAgY2hlY2tJZlJvb3RJc1ByZXJlbmRlcmluZyhyb290LCBzdXNwZW5kZWRMYW5lcylcbiAgICAgICkge1xuICAgICAgICBjdXJyZW50VGltZSA9IHN1c3BlbmRlZExhbmVzICYgLXN1c3BlbmRlZExhbmVzO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY3VycmVudFRpbWUgIT09IHJvb3QuY2FsbGJhY2tQcmlvcml0eSB8fFxuICAgICAgICAgIChudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSAmJlxuICAgICAgICAgICAgcGluZ2VkTGFuZXMgIT09IGZha2VBY3RDYWxsYmFja05vZGUpXG4gICAgICAgIClcbiAgICAgICAgICBjYW5jZWxDYWxsYmFjayhwaW5nZWRMYW5lcyk7XG4gICAgICAgIGVsc2UgcmV0dXJuIGN1cnJlbnRUaW1lO1xuICAgICAgICBzd2l0Y2ggKGxhbmVzVG9FdmVudFByaW9yaXR5KHN1c3BlbmRlZExhbmVzKSkge1xuICAgICAgICAgIGNhc2UgRGlzY3JldGVFdmVudFByaW9yaXR5OlxuICAgICAgICAgIGNhc2UgQ29udGludW91c0V2ZW50UHJpb3JpdHk6XG4gICAgICAgICAgICBzdXNwZW5kZWRMYW5lcyA9IFVzZXJCbG9ja2luZ1ByaW9yaXR5O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBEZWZhdWx0RXZlbnRQcmlvcml0eTpcbiAgICAgICAgICAgIHN1c3BlbmRlZExhbmVzID0gTm9ybWFsUHJpb3JpdHkkMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgSWRsZUV2ZW50UHJpb3JpdHk6XG4gICAgICAgICAgICBzdXNwZW5kZWRMYW5lcyA9IElkbGVQcmlvcml0eTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBzdXNwZW5kZWRMYW5lcyA9IE5vcm1hbFByaW9yaXR5JDE7XG4gICAgICAgIH1cbiAgICAgICAgcGluZ2VkTGFuZXMgPSBwZXJmb3JtV29ya09uUm9vdFZpYVNjaGVkdWxlclRhc2suYmluZChudWxsLCByb290KTtcbiAgICAgICAgbnVsbCAhPT0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWVcbiAgICAgICAgICA/IChSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZS5wdXNoKHBpbmdlZExhbmVzKSxcbiAgICAgICAgICAgIChzdXNwZW5kZWRMYW5lcyA9IGZha2VBY3RDYWxsYmFja05vZGUpKVxuICAgICAgICAgIDogKHN1c3BlbmRlZExhbmVzID0gc2NoZWR1bGVDYWxsYmFjayQzKHN1c3BlbmRlZExhbmVzLCBwaW5nZWRMYW5lcykpO1xuICAgICAgICByb290LmNhbGxiYWNrUHJpb3JpdHkgPSBjdXJyZW50VGltZTtcbiAgICAgICAgcm9vdC5jYWxsYmFja05vZGUgPSBzdXNwZW5kZWRMYW5lcztcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRUaW1lO1xuICAgICAgfVxuICAgICAgbnVsbCAhPT0gcGluZ2VkTGFuZXMgJiYgY2FuY2VsQ2FsbGJhY2socGluZ2VkTGFuZXMpO1xuICAgICAgcm9vdC5jYWxsYmFja1ByaW9yaXR5ID0gMjtcbiAgICAgIHJvb3QuY2FsbGJhY2tOb2RlID0gbnVsbDtcbiAgICAgIHJldHVybiAyO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwZXJmb3JtV29ya09uUm9vdFZpYVNjaGVkdWxlclRhc2socm9vdCwgZGlkVGltZW91dCkge1xuICAgICAgbmVzdGVkVXBkYXRlU2NoZWR1bGVkID0gY3VycmVudFVwZGF0ZUlzTmVzdGVkID0gITE7XG4gICAgICBzY2hlZHVsZXJFdmVudCA9IHdpbmRvdy5ldmVudDtcbiAgICAgIGlmIChcbiAgICAgICAgcGVuZGluZ0VmZmVjdHNTdGF0dXMgIT09IE5PX1BFTkRJTkdfRUZGRUNUUyAmJlxuICAgICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyAhPT0gUEVORElOR19QQVNTSVZFX1BIQVNFXG4gICAgICApXG4gICAgICAgIHJldHVybiAocm9vdC5jYWxsYmFja05vZGUgPSBudWxsKSwgKHJvb3QuY2FsbGJhY2tQcmlvcml0eSA9IDApLCBudWxsO1xuICAgICAgdmFyIG9yaWdpbmFsQ2FsbGJhY2tOb2RlID0gcm9vdC5jYWxsYmFja05vZGU7XG4gICAgICBwZW5kaW5nRGVsYXllZENvbW1pdFJlYXNvbiA9PT0gSU1NRURJQVRFX0NPTU1JVCAmJlxuICAgICAgICAocGVuZGluZ0RlbGF5ZWRDb21taXRSZWFzb24gPSBERUxBWUVEX1BBU1NJVkVfQ09NTUlUKTtcbiAgICAgIGlmIChmbHVzaFBlbmRpbmdFZmZlY3RzKCkgJiYgcm9vdC5jYWxsYmFja05vZGUgIT09IG9yaWdpbmFsQ2FsbGJhY2tOb2RlKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIHZhciB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyRqc2NvbXAkMCA9XG4gICAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlbmRlckxhbmVzO1xuICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMkanNjb21wJDAgPSBnZXROZXh0TGFuZXMoXG4gICAgICAgIHJvb3QsXG4gICAgICAgIHJvb3QgPT09IHdvcmtJblByb2dyZXNzUm9vdFxuICAgICAgICAgID8gd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMkanNjb21wJDBcbiAgICAgICAgICA6IDAsXG4gICAgICAgIG51bGwgIT09IHJvb3QuY2FuY2VsUGVuZGluZ0NvbW1pdCB8fCByb290LnRpbWVvdXRIYW5kbGUgIT09IG5vVGltZW91dFxuICAgICAgKTtcbiAgICAgIGlmICgwID09PSB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyRqc2NvbXAkMCkgcmV0dXJuIG51bGw7XG4gICAgICBwZXJmb3JtV29ya09uUm9vdChcbiAgICAgICAgcm9vdCxcbiAgICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyTGFuZXMkanNjb21wJDAsXG4gICAgICAgIGRpZFRpbWVvdXRcbiAgICAgICk7XG4gICAgICBzY2hlZHVsZVRhc2tGb3JSb290RHVyaW5nTWljcm90YXNrKHJvb3QsIG5vdyQxKCkpO1xuICAgICAgcmV0dXJuIG51bGwgIT0gcm9vdC5jYWxsYmFja05vZGUgJiZcbiAgICAgICAgcm9vdC5jYWxsYmFja05vZGUgPT09IG9yaWdpbmFsQ2FsbGJhY2tOb2RlXG4gICAgICAgID8gcGVyZm9ybVdvcmtPblJvb3RWaWFTY2hlZHVsZXJUYXNrLmJpbmQobnVsbCwgcm9vdClcbiAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwZXJmb3JtU3luY1dvcmtPblJvb3Qocm9vdCwgbGFuZXMpIHtcbiAgICAgIGlmIChmbHVzaFBlbmRpbmdFZmZlY3RzKCkpIHJldHVybiBudWxsO1xuICAgICAgY3VycmVudFVwZGF0ZUlzTmVzdGVkID0gbmVzdGVkVXBkYXRlU2NoZWR1bGVkO1xuICAgICAgbmVzdGVkVXBkYXRlU2NoZWR1bGVkID0gITE7XG4gICAgICBwZXJmb3JtV29ya09uUm9vdChyb290LCBsYW5lcywgITApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjYW5jZWxDYWxsYmFjayhjYWxsYmFja05vZGUpIHtcbiAgICAgIGNhbGxiYWNrTm9kZSAhPT0gZmFrZUFjdENhbGxiYWNrTm9kZSAmJlxuICAgICAgICBudWxsICE9PSBjYWxsYmFja05vZGUgJiZcbiAgICAgICAgY2FuY2VsQ2FsbGJhY2skMShjYWxsYmFja05vZGUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzY2hlZHVsZUltbWVkaWF0ZVJvb3RTY2hlZHVsZVRhc2soKSB7XG4gICAgICBudWxsICE9PSBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSAmJlxuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZS5wdXNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBwcm9jZXNzUm9vdFNjaGVkdWxlSW5NaWNyb3Rhc2soKTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSk7XG4gICAgICBzY2hlZHVsZU1pY3JvdGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgIChleGVjdXRpb25Db250ZXh0ICYgKFJlbmRlckNvbnRleHQgfCBDb21taXRDb250ZXh0KSkgIT09IE5vQ29udGV4dFxuICAgICAgICAgID8gc2NoZWR1bGVDYWxsYmFjayQzKFxuICAgICAgICAgICAgICBJbW1lZGlhdGVQcmlvcml0eSxcbiAgICAgICAgICAgICAgcHJvY2Vzc1Jvb3RTY2hlZHVsZUluSW1tZWRpYXRlVGFza1xuICAgICAgICAgICAgKVxuICAgICAgICAgIDogcHJvY2Vzc1Jvb3RTY2hlZHVsZUluTWljcm90YXNrKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcmVxdWVzdFRyYW5zaXRpb25MYW5lKCkge1xuICAgICAgaWYgKDAgPT09IGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lKSB7XG4gICAgICAgIHZhciBhY3Rpb25TY29wZUxhbmUgPSBjdXJyZW50RW50YW5nbGVkTGFuZTtcbiAgICAgICAgMCA9PT0gYWN0aW9uU2NvcGVMYW5lICYmXG4gICAgICAgICAgKChhY3Rpb25TY29wZUxhbmUgPSBuZXh0VHJhbnNpdGlvblVwZGF0ZUxhbmUpLFxuICAgICAgICAgIChuZXh0VHJhbnNpdGlvblVwZGF0ZUxhbmUgPDw9IDEpLFxuICAgICAgICAgIDAgPT09IChuZXh0VHJhbnNpdGlvblVwZGF0ZUxhbmUgJiAyNjE4ODgpICYmXG4gICAgICAgICAgICAobmV4dFRyYW5zaXRpb25VcGRhdGVMYW5lID0gMjU2KSk7XG4gICAgICAgIGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lID0gYWN0aW9uU2NvcGVMYW5lO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb2VyY2VGb3JtQWN0aW9uUHJvcChhY3Rpb25Qcm9wKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG51bGwgPT0gYWN0aW9uUHJvcCB8fFxuICAgICAgICBcInN5bWJvbFwiID09PSB0eXBlb2YgYWN0aW9uUHJvcCB8fFxuICAgICAgICBcImJvb2xlYW5cIiA9PT0gdHlwZW9mIGFjdGlvblByb3BcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgYWN0aW9uUHJvcCkgcmV0dXJuIGFjdGlvblByb3A7XG4gICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKGFjdGlvblByb3AsIFwiYWN0aW9uXCIpO1xuICAgICAgcmV0dXJuIHNhbml0aXplVVJMKFwiXCIgKyBhY3Rpb25Qcm9wKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY3JlYXRlRm9ybURhdGFXaXRoU3VibWl0dGVyKGZvcm0sIHN1Ym1pdHRlcikge1xuICAgICAgdmFyIHRlbXAgPSBzdWJtaXR0ZXIub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7XG4gICAgICB0ZW1wLm5hbWUgPSBzdWJtaXR0ZXIubmFtZTtcbiAgICAgIHRlbXAudmFsdWUgPSBzdWJtaXR0ZXIudmFsdWU7XG4gICAgICBmb3JtLmlkICYmIHRlbXAuc2V0QXR0cmlidXRlKFwiZm9ybVwiLCBmb3JtLmlkKTtcbiAgICAgIHN1Ym1pdHRlci5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0ZW1wLCBzdWJtaXR0ZXIpO1xuICAgICAgZm9ybSA9IG5ldyBGb3JtRGF0YShmb3JtKTtcbiAgICAgIHRlbXAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0ZW1wKTtcbiAgICAgIHJldHVybiBmb3JtO1xuICAgIH1cbiAgICBmdW5jdGlvbiBleHRyYWN0RXZlbnRzJDEoXG4gICAgICBkaXNwYXRjaFF1ZXVlLFxuICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgbWF5YmVUYXJnZXRJbnN0LFxuICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICBcInN1Ym1pdFwiID09PSBkb21FdmVudE5hbWUgJiZcbiAgICAgICAgbWF5YmVUYXJnZXRJbnN0ICYmXG4gICAgICAgIG1heWJlVGFyZ2V0SW5zdC5zdGF0ZU5vZGUgPT09IG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICApIHtcbiAgICAgICAgdmFyIGFjdGlvbiA9IGNvZXJjZUZvcm1BY3Rpb25Qcm9wKFxuICAgICAgICAgICAgKG5hdGl2ZUV2ZW50VGFyZ2V0W2ludGVybmFsUHJvcHNLZXldIHx8IG51bGwpLmFjdGlvblxuICAgICAgICAgICksXG4gICAgICAgICAgc3VibWl0dGVyID0gbmF0aXZlRXZlbnQuc3VibWl0dGVyO1xuICAgICAgICBzdWJtaXR0ZXIgJiZcbiAgICAgICAgICAoKGRvbUV2ZW50TmFtZSA9IChkb21FdmVudE5hbWUgPSBzdWJtaXR0ZXJbaW50ZXJuYWxQcm9wc0tleV0gfHwgbnVsbClcbiAgICAgICAgICAgID8gY29lcmNlRm9ybUFjdGlvblByb3AoZG9tRXZlbnROYW1lLmZvcm1BY3Rpb24pXG4gICAgICAgICAgICA6IHN1Ym1pdHRlci5nZXRBdHRyaWJ1dGUoXCJmb3JtQWN0aW9uXCIpKSxcbiAgICAgICAgICBudWxsICE9PSBkb21FdmVudE5hbWUgJiZcbiAgICAgICAgICAgICgoYWN0aW9uID0gZG9tRXZlbnROYW1lKSwgKHN1Ym1pdHRlciA9IG51bGwpKSk7XG4gICAgICAgIHZhciBldmVudCA9IG5ldyBTeW50aGV0aWNFdmVudChcbiAgICAgICAgICBcImFjdGlvblwiLFxuICAgICAgICAgIFwiYWN0aW9uXCIsXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICApO1xuICAgICAgICBkaXNwYXRjaFF1ZXVlLnB1c2goe1xuICAgICAgICAgIGV2ZW50OiBldmVudCxcbiAgICAgICAgICBsaXN0ZW5lcnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaW5zdGFuY2U6IG51bGwsXG4gICAgICAgICAgICAgIGxpc3RlbmVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICAgIGlmICgwICE9PSBjdXJyZW50RXZlbnRUcmFuc2l0aW9uTGFuZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZm9ybURhdGEgPSBzdWJtaXR0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gY3JlYXRlRm9ybURhdGFXaXRoU3VibWl0dGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICA6IG5ldyBGb3JtRGF0YShuYXRpdmVFdmVudFRhcmdldCksXG4gICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1N0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGVuZGluZzogITAsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBmb3JtRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogbmF0aXZlRXZlbnRUYXJnZXQubWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiBhY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuZnJlZXplKHBlbmRpbmdTdGF0ZSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0SG9zdFRyYW5zaXRpb24oXG4gICAgICAgICAgICAgICAgICAgICAgbWF5YmVUYXJnZXRJbnN0LFxuICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBhY3Rpb24gJiZcbiAgICAgICAgICAgICAgICAgICAgKGV2ZW50LnByZXZlbnREZWZhdWx0KCksXG4gICAgICAgICAgICAgICAgICAgIChmb3JtRGF0YSA9IHN1Ym1pdHRlclxuICAgICAgICAgICAgICAgICAgICAgID8gY3JlYXRlRm9ybURhdGFXaXRoU3VibWl0dGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3VibWl0dGVyXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgOiBuZXcgRm9ybURhdGEobmF0aXZlRXZlbnRUYXJnZXQpKSxcbiAgICAgICAgICAgICAgICAgICAgKHBlbmRpbmdTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nOiAhMCxcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBmb3JtRGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6IG5hdGl2ZUV2ZW50VGFyZ2V0Lm1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICBhY3Rpb246IGFjdGlvblxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmZyZWV6ZShwZW5kaW5nU3RhdGUpLFxuICAgICAgICAgICAgICAgICAgICBzdGFydEhvc3RUcmFuc2l0aW9uKFxuICAgICAgICAgICAgICAgICAgICAgIG1heWJlVGFyZ2V0SW5zdCxcbiAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nU3RhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhXG4gICAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0OiBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGV4ZWN1dGVEaXNwYXRjaChldmVudCwgbGlzdGVuZXIsIGN1cnJlbnRUYXJnZXQpIHtcbiAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBjdXJyZW50VGFyZ2V0O1xuICAgICAgdHJ5IHtcbiAgICAgICAgbGlzdGVuZXIoZXZlbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgcmVwb3J0R2xvYmFsRXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgICAgZXZlbnQuY3VycmVudFRhcmdldCA9IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByb2Nlc3NEaXNwYXRjaFF1ZXVlKGRpc3BhdGNoUXVldWUsIGV2ZW50U3lzdGVtRmxhZ3MpIHtcbiAgICAgIGV2ZW50U3lzdGVtRmxhZ3MgPSAwICE9PSAoZXZlbnRTeXN0ZW1GbGFncyAmIDQpO1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXNwYXRjaFF1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBfZGlzcGF0Y2hRdWV1ZSRpID0gZGlzcGF0Y2hRdWV1ZVtpXTtcbiAgICAgICAgYToge1xuICAgICAgICAgIHZhciBwcmV2aW91c0luc3RhbmNlID0gdm9pZCAwLFxuICAgICAgICAgICAgZXZlbnQgPSBfZGlzcGF0Y2hRdWV1ZSRpLmV2ZW50O1xuICAgICAgICAgIF9kaXNwYXRjaFF1ZXVlJGkgPSBfZGlzcGF0Y2hRdWV1ZSRpLmxpc3RlbmVycztcbiAgICAgICAgICBpZiAoZXZlbnRTeXN0ZW1GbGFncylcbiAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgIHZhciBpJGpzY29tcCQwID0gX2Rpc3BhdGNoUXVldWUkaS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAwIDw9IGkkanNjb21wJDA7XG4gICAgICAgICAgICAgIGkkanNjb21wJDAtLVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIHZhciBfZGlzcGF0Y2hMaXN0ZW5lcnMkaSA9IF9kaXNwYXRjaFF1ZXVlJGlbaSRqc2NvbXAkMF0sXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5pbnN0YW5jZSxcbiAgICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgICAgX2Rpc3BhdGNoTGlzdGVuZXJzJGkgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5saXN0ZW5lcjtcbiAgICAgICAgICAgICAgaWYgKGluc3RhbmNlICE9PSBwcmV2aW91c0luc3RhbmNlICYmIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpXG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5zdGFuY2VcbiAgICAgICAgICAgICAgICA/IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZURpc3BhdGNoLFxuICAgICAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICAgICAgX2Rpc3BhdGNoTGlzdGVuZXJzJGksXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXRcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IGV4ZWN1dGVEaXNwYXRjaChldmVudCwgX2Rpc3BhdGNoTGlzdGVuZXJzJGksIGN1cnJlbnRUYXJnZXQpO1xuICAgICAgICAgICAgICBwcmV2aW91c0luc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgaSRqc2NvbXAkMCA9IDA7XG4gICAgICAgICAgICAgIGkkanNjb21wJDAgPCBfZGlzcGF0Y2hRdWV1ZSRpLmxlbmd0aDtcbiAgICAgICAgICAgICAgaSRqc2NvbXAkMCsrXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgX2Rpc3BhdGNoTGlzdGVuZXJzJGkgPSBfZGlzcGF0Y2hRdWV1ZSRpW2kkanNjb21wJDBdO1xuICAgICAgICAgICAgICBpbnN0YW5jZSA9IF9kaXNwYXRjaExpc3RlbmVycyRpLmluc3RhbmNlO1xuICAgICAgICAgICAgICBjdXJyZW50VGFyZ2V0ID0gX2Rpc3BhdGNoTGlzdGVuZXJzJGkuY3VycmVudFRhcmdldDtcbiAgICAgICAgICAgICAgX2Rpc3BhdGNoTGlzdGVuZXJzJGkgPSBfZGlzcGF0Y2hMaXN0ZW5lcnMkaS5saXN0ZW5lcjtcbiAgICAgICAgICAgICAgaWYgKGluc3RhbmNlICE9PSBwcmV2aW91c0luc3RhbmNlICYmIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpXG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5zdGFuY2VcbiAgICAgICAgICAgICAgICA/IHJ1bldpdGhGaWJlckluREVWKFxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICAgICAgICAgICAgZXhlY3V0ZURpc3BhdGNoLFxuICAgICAgICAgICAgICAgICAgICBldmVudCxcbiAgICAgICAgICAgICAgICAgICAgX2Rpc3BhdGNoTGlzdGVuZXJzJGksXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXJnZXRcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IGV4ZWN1dGVEaXNwYXRjaChldmVudCwgX2Rpc3BhdGNoTGlzdGVuZXJzJGksIGN1cnJlbnRUYXJnZXQpO1xuICAgICAgICAgICAgICBwcmV2aW91c0luc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChkb21FdmVudE5hbWUsIHRhcmdldEVsZW1lbnQpIHtcbiAgICAgIG5vbkRlbGVnYXRlZEV2ZW50cy5oYXMoZG9tRXZlbnROYW1lKSB8fFxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdEaWQgbm90IGV4cGVjdCBhIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoKSBjYWxsIGZvciBcIiVzXCIuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicsXG4gICAgICAgICAgZG9tRXZlbnROYW1lXG4gICAgICAgICk7XG4gICAgICB2YXIgbGlzdGVuZXJTZXQgPSB0YXJnZXRFbGVtZW50W2ludGVybmFsRXZlbnRIYW5kbGVyc0tleV07XG4gICAgICB2b2lkIDAgPT09IGxpc3RlbmVyU2V0ICYmXG4gICAgICAgIChsaXN0ZW5lclNldCA9IHRhcmdldEVsZW1lbnRbaW50ZXJuYWxFdmVudEhhbmRsZXJzS2V5XSA9IG5ldyBTZXQoKSk7XG4gICAgICB2YXIgbGlzdGVuZXJTZXRLZXkgPSBkb21FdmVudE5hbWUgKyBcIl9fYnViYmxlXCI7XG4gICAgICBsaXN0ZW5lclNldC5oYXMobGlzdGVuZXJTZXRLZXkpIHx8XG4gICAgICAgIChhZGRUcmFwcGVkRXZlbnRMaXN0ZW5lcih0YXJnZXRFbGVtZW50LCBkb21FdmVudE5hbWUsIDIsICExKSxcbiAgICAgICAgbGlzdGVuZXJTZXQuYWRkKGxpc3RlbmVyU2V0S2V5KSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxpc3RlblRvTmF0aXZlRXZlbnQoZG9tRXZlbnROYW1lLCBpc0NhcHR1cmVQaGFzZUxpc3RlbmVyLCB0YXJnZXQpIHtcbiAgICAgIG5vbkRlbGVnYXRlZEV2ZW50cy5oYXMoZG9tRXZlbnROYW1lKSAmJlxuICAgICAgICAhaXNDYXB0dXJlUGhhc2VMaXN0ZW5lciAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdEaWQgbm90IGV4cGVjdCBhIGxpc3RlblRvTmF0aXZlRXZlbnQoKSBjYWxsIGZvciBcIiVzXCIgaW4gdGhlIGJ1YmJsZSBwaGFzZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJyxcbiAgICAgICAgICBkb21FdmVudE5hbWVcbiAgICAgICAgKTtcbiAgICAgIHZhciBldmVudFN5c3RlbUZsYWdzID0gMDtcbiAgICAgIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXIgJiYgKGV2ZW50U3lzdGVtRmxhZ3MgfD0gNCk7XG4gICAgICBhZGRUcmFwcGVkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICBkb21FdmVudE5hbWUsXG4gICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICAgIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXJcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGxpc3RlblRvQWxsU3VwcG9ydGVkRXZlbnRzKHJvb3RDb250YWluZXJFbGVtZW50KSB7XG4gICAgICBpZiAoIXJvb3RDb250YWluZXJFbGVtZW50W2xpc3RlbmluZ01hcmtlcl0pIHtcbiAgICAgICAgcm9vdENvbnRhaW5lckVsZW1lbnRbbGlzdGVuaW5nTWFya2VyXSA9ICEwO1xuICAgICAgICBhbGxOYXRpdmVFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoZG9tRXZlbnROYW1lKSB7XG4gICAgICAgICAgXCJzZWxlY3Rpb25jaGFuZ2VcIiAhPT0gZG9tRXZlbnROYW1lICYmXG4gICAgICAgICAgICAobm9uRGVsZWdhdGVkRXZlbnRzLmhhcyhkb21FdmVudE5hbWUpIHx8XG4gICAgICAgICAgICAgIGxpc3RlblRvTmF0aXZlRXZlbnQoZG9tRXZlbnROYW1lLCAhMSwgcm9vdENvbnRhaW5lckVsZW1lbnQpLFxuICAgICAgICAgICAgbGlzdGVuVG9OYXRpdmVFdmVudChkb21FdmVudE5hbWUsICEwLCByb290Q29udGFpbmVyRWxlbWVudCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPVxuICAgICAgICAgIDkgPT09IHJvb3RDb250YWluZXJFbGVtZW50Lm5vZGVUeXBlXG4gICAgICAgICAgICA/IHJvb3RDb250YWluZXJFbGVtZW50XG4gICAgICAgICAgICA6IHJvb3RDb250YWluZXJFbGVtZW50Lm93bmVyRG9jdW1lbnQ7XG4gICAgICAgIG51bGwgPT09IG93bmVyRG9jdW1lbnQgfHxcbiAgICAgICAgICBvd25lckRvY3VtZW50W2xpc3RlbmluZ01hcmtlcl0gfHxcbiAgICAgICAgICAoKG93bmVyRG9jdW1lbnRbbGlzdGVuaW5nTWFya2VyXSA9ICEwKSxcbiAgICAgICAgICBsaXN0ZW5Ub05hdGl2ZUV2ZW50KFwic2VsZWN0aW9uY2hhbmdlXCIsICExLCBvd25lckRvY3VtZW50KSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFkZFRyYXBwZWRFdmVudExpc3RlbmVyKFxuICAgICAgdGFyZ2V0Q29udGFpbmVyLFxuICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXJcbiAgICApIHtcbiAgICAgIHN3aXRjaCAoZ2V0RXZlbnRQcmlvcml0eShkb21FdmVudE5hbWUpKSB7XG4gICAgICAgIGNhc2UgRGlzY3JldGVFdmVudFByaW9yaXR5OlxuICAgICAgICAgIHZhciBsaXN0ZW5lcldyYXBwZXIgPSBkaXNwYXRjaERpc2NyZXRlRXZlbnQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQ29udGludW91c0V2ZW50UHJpb3JpdHk6XG4gICAgICAgICAgbGlzdGVuZXJXcmFwcGVyID0gZGlzcGF0Y2hDb250aW51b3VzRXZlbnQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgbGlzdGVuZXJXcmFwcGVyID0gZGlzcGF0Y2hFdmVudDtcbiAgICAgIH1cbiAgICAgIGV2ZW50U3lzdGVtRmxhZ3MgPSBsaXN0ZW5lcldyYXBwZXIuYmluZChcbiAgICAgICAgbnVsbCxcbiAgICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgICBldmVudFN5c3RlbUZsYWdzLFxuICAgICAgICB0YXJnZXRDb250YWluZXJcbiAgICAgICk7XG4gICAgICBsaXN0ZW5lcldyYXBwZXIgPSB2b2lkIDA7XG4gICAgICAhcGFzc2l2ZUJyb3dzZXJFdmVudHNTdXBwb3J0ZWQgfHxcbiAgICAgICAgKFwidG91Y2hzdGFydFwiICE9PSBkb21FdmVudE5hbWUgJiZcbiAgICAgICAgICBcInRvdWNobW92ZVwiICE9PSBkb21FdmVudE5hbWUgJiZcbiAgICAgICAgICBcIndoZWVsXCIgIT09IGRvbUV2ZW50TmFtZSkgfHxcbiAgICAgICAgKGxpc3RlbmVyV3JhcHBlciA9ICEwKTtcbiAgICAgIGlzQ2FwdHVyZVBoYXNlTGlzdGVuZXJcbiAgICAgICAgPyB2b2lkIDAgIT09IGxpc3RlbmVyV3JhcHBlclxuICAgICAgICAgID8gdGFyZ2V0Q29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoZG9tRXZlbnROYW1lLCBldmVudFN5c3RlbUZsYWdzLCB7XG4gICAgICAgICAgICAgIGNhcHR1cmU6ICEwLFxuICAgICAgICAgICAgICBwYXNzaXZlOiBsaXN0ZW5lcldyYXBwZXJcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgOiB0YXJnZXRDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsICEwKVxuICAgICAgICA6IHZvaWQgMCAhPT0gbGlzdGVuZXJXcmFwcGVyXG4gICAgICAgICAgPyB0YXJnZXRDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcihkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIHtcbiAgICAgICAgICAgICAgcGFzc2l2ZTogbGlzdGVuZXJXcmFwcGVyXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIDogdGFyZ2V0Q29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnRGb3JQbHVnaW5FdmVudFN5c3RlbShcbiAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICBuYXRpdmVFdmVudCxcbiAgICAgIHRhcmdldEluc3QkanNjb21wJDAsXG4gICAgICB0YXJnZXRDb250YWluZXJcbiAgICApIHtcbiAgICAgIHZhciBhbmNlc3Rvckluc3QgPSB0YXJnZXRJbnN0JGpzY29tcCQwO1xuICAgICAgaWYgKFxuICAgICAgICAwID09PSAoZXZlbnRTeXN0ZW1GbGFncyAmIDEpICYmXG4gICAgICAgIDAgPT09IChldmVudFN5c3RlbUZsYWdzICYgMikgJiZcbiAgICAgICAgbnVsbCAhPT0gdGFyZ2V0SW5zdCRqc2NvbXAkMFxuICAgICAgKVxuICAgICAgICBhOiBmb3IgKDs7KSB7XG4gICAgICAgICAgaWYgKG51bGwgPT09IHRhcmdldEluc3QkanNjb21wJDApIHJldHVybjtcbiAgICAgICAgICB2YXIgbm9kZVRhZyA9IHRhcmdldEluc3QkanNjb21wJDAudGFnO1xuICAgICAgICAgIGlmICgzID09PSBub2RlVGFnIHx8IDQgPT09IG5vZGVUYWcpIHtcbiAgICAgICAgICAgIHZhciBjb250YWluZXIgPSB0YXJnZXRJbnN0JGpzY29tcCQwLnN0YXRlTm9kZS5jb250YWluZXJJbmZvO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lciA9PT0gdGFyZ2V0Q29udGFpbmVyKSBicmVhaztcbiAgICAgICAgICAgIGlmICg0ID09PSBub2RlVGFnKVxuICAgICAgICAgICAgICBmb3IgKG5vZGVUYWcgPSB0YXJnZXRJbnN0JGpzY29tcCQwLnJldHVybjsgbnVsbCAhPT0gbm9kZVRhZzsgKSB7XG4gICAgICAgICAgICAgICAgdmFyIGdyYW5kVGFnID0gbm9kZVRhZy50YWc7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgKDMgPT09IGdyYW5kVGFnIHx8IDQgPT09IGdyYW5kVGFnKSAmJlxuICAgICAgICAgICAgICAgICAgbm9kZVRhZy5zdGF0ZU5vZGUuY29udGFpbmVySW5mbyA9PT0gdGFyZ2V0Q29udGFpbmVyXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIG5vZGVUYWcgPSBub2RlVGFnLnJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yICg7IG51bGwgIT09IGNvbnRhaW5lcjsgKSB7XG4gICAgICAgICAgICAgIG5vZGVUYWcgPSBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShjb250YWluZXIpO1xuICAgICAgICAgICAgICBpZiAobnVsbCA9PT0gbm9kZVRhZykgcmV0dXJuO1xuICAgICAgICAgICAgICBncmFuZFRhZyA9IG5vZGVUYWcudGFnO1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgNSA9PT0gZ3JhbmRUYWcgfHxcbiAgICAgICAgICAgICAgICA2ID09PSBncmFuZFRhZyB8fFxuICAgICAgICAgICAgICAgIDI2ID09PSBncmFuZFRhZyB8fFxuICAgICAgICAgICAgICAgIDI3ID09PSBncmFuZFRhZ1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRJbnN0JGpzY29tcCQwID0gYW5jZXN0b3JJbnN0ID0gbm9kZVRhZztcbiAgICAgICAgICAgICAgICBjb250aW51ZSBhO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnRhaW5lciA9IGNvbnRhaW5lci5wYXJlbnROb2RlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICB0YXJnZXRJbnN0JGpzY29tcCQwID0gdGFyZ2V0SW5zdCRqc2NvbXAkMC5yZXR1cm47XG4gICAgICAgIH1cbiAgICAgIGJhdGNoZWRVcGRhdGVzJDEoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgdGFyZ2V0SW5zdCA9IGFuY2VzdG9ySW5zdCxcbiAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldCA9IGdldEV2ZW50VGFyZ2V0KG5hdGl2ZUV2ZW50KSxcbiAgICAgICAgICBkaXNwYXRjaFF1ZXVlID0gW107XG4gICAgICAgIGE6IHtcbiAgICAgICAgICB2YXIgcmVhY3ROYW1lID0gdG9wTGV2ZWxFdmVudHNUb1JlYWN0TmFtZXMuZ2V0KGRvbUV2ZW50TmFtZSk7XG4gICAgICAgICAgaWYgKHZvaWQgMCAhPT0gcmVhY3ROYW1lKSB7XG4gICAgICAgICAgICB2YXIgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljRXZlbnQsXG4gICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlID0gZG9tRXZlbnROYW1lO1xuICAgICAgICAgICAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICAgICAgICAgICAgY2FzZSBcImtleXByZXNzXCI6XG4gICAgICAgICAgICAgICAgaWYgKDAgPT09IGdldEV2ZW50Q2hhckNvZGUobmF0aXZlRXZlbnQpKSBicmVhayBhO1xuICAgICAgICAgICAgICBjYXNlIFwia2V5ZG93blwiOlxuICAgICAgICAgICAgICBjYXNlIFwia2V5dXBcIjpcbiAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNLZXlib2FyZEV2ZW50O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICBjYXNlIFwiZm9jdXNpblwiOlxuICAgICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlID0gXCJmb2N1c1wiO1xuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJmb2N1c291dFwiOlxuICAgICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlID0gXCJibHVyXCI7XG4gICAgICAgICAgICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljRm9jdXNFdmVudDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBcImJlZm9yZWJsdXJcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImFmdGVyYmx1clwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY0ZvY3VzRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJjbGlja1wiOlxuICAgICAgICAgICAgICAgIGlmICgyID09PSBuYXRpdmVFdmVudC5idXR0b24pIGJyZWFrIGE7XG4gICAgICAgICAgICAgIGNhc2UgXCJhdXhjbGlja1wiOlxuICAgICAgICAgICAgICBjYXNlIFwiZGJsY2xpY2tcIjpcbiAgICAgICAgICAgICAgY2FzZSBcIm1vdXNlZG93blwiOlxuICAgICAgICAgICAgICBjYXNlIFwibW91c2Vtb3ZlXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJtb3VzZXVwXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJtb3VzZW91dFwiOlxuICAgICAgICAgICAgICBjYXNlIFwibW91c2VvdmVyXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJjb250ZXh0bWVudVwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY01vdXNlRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJkcmFnXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkcmFnZW5kXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkcmFnZW50ZXJcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImRyYWdleGl0XCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkcmFnbGVhdmVcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImRyYWdvdmVyXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJkcmFnc3RhcnRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImRyb3BcIjpcbiAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNEcmFnRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJ0b3VjaGNhbmNlbFwiOlxuICAgICAgICAgICAgICBjYXNlIFwidG91Y2hlbmRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInRvdWNobW92ZVwiOlxuICAgICAgICAgICAgICBjYXNlIFwidG91Y2hzdGFydFwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1RvdWNoRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgQU5JTUFUSU9OX0VORDpcbiAgICAgICAgICAgICAgY2FzZSBBTklNQVRJT05fSVRFUkFUSU9OOlxuICAgICAgICAgICAgICBjYXNlIEFOSU1BVElPTl9TVEFSVDpcbiAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNBbmltYXRpb25FdmVudDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgY2FzZSBUUkFOU0lUSU9OX0VORDpcbiAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNUcmFuc2l0aW9uRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJzY3JvbGxcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInNjcm9sbGVuZFwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1VJRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJ3aGVlbFwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1doZWVsRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJjb3B5XCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJjdXRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInBhc3RlXCI6XG4gICAgICAgICAgICAgICAgU3ludGhldGljRXZlbnRDdG9yID0gU3ludGhldGljQ2xpcGJvYXJkRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOlxuICAgICAgICAgICAgICBjYXNlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJwb2ludGVyY2FuY2VsXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJwb2ludGVyZG93blwiOlxuICAgICAgICAgICAgICBjYXNlIFwicG9pbnRlcm1vdmVcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInBvaW50ZXJvdXRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInBvaW50ZXJvdmVyXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJwb2ludGVydXBcIjpcbiAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IgPSBTeW50aGV0aWNQb2ludGVyRXZlbnQ7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgXCJ0b2dnbGVcIjpcbiAgICAgICAgICAgICAgY2FzZSBcImJlZm9yZXRvZ2dsZVwiOlxuICAgICAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9IFN5bnRoZXRpY1RvZ2dsZUV2ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGluQ2FwdHVyZVBoYXNlID0gMCAhPT0gKGV2ZW50U3lzdGVtRmxhZ3MgJiA0KSxcbiAgICAgICAgICAgICAgYWNjdW11bGF0ZVRhcmdldE9ubHkgPVxuICAgICAgICAgICAgICAgICFpbkNhcHR1cmVQaGFzZSAmJlxuICAgICAgICAgICAgICAgIChcInNjcm9sbFwiID09PSBkb21FdmVudE5hbWUgfHwgXCJzY3JvbGxlbmRcIiA9PT0gZG9tRXZlbnROYW1lKSxcbiAgICAgICAgICAgICAgcmVhY3RFdmVudE5hbWUgPSBpbkNhcHR1cmVQaGFzZVxuICAgICAgICAgICAgICAgID8gbnVsbCAhPT0gcmVhY3ROYW1lXG4gICAgICAgICAgICAgICAgICA/IHJlYWN0TmFtZSArIFwiQ2FwdHVyZVwiXG4gICAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgICAgICA6IHJlYWN0TmFtZTtcbiAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlID0gW107XG4gICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSB0YXJnZXRJbnN0LCBsYXN0SG9zdENvbXBvbmVudDtcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5zdGFuY2U7XG5cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB2YXIgX2luc3RhbmNlMiA9IGluc3RhbmNlO1xuICAgICAgICAgICAgICBsYXN0SG9zdENvbXBvbmVudCA9IF9pbnN0YW5jZTIuc3RhdGVOb2RlO1xuICAgICAgICAgICAgICBfaW5zdGFuY2UyID0gX2luc3RhbmNlMi50YWc7XG4gICAgICAgICAgICAgICg1ICE9PSBfaW5zdGFuY2UyICYmIDI2ICE9PSBfaW5zdGFuY2UyICYmIDI3ICE9PSBfaW5zdGFuY2UyKSB8fFxuICAgICAgICAgICAgICAgIG51bGwgPT09IGxhc3RIb3N0Q29tcG9uZW50IHx8XG4gICAgICAgICAgICAgICAgbnVsbCA9PT0gcmVhY3RFdmVudE5hbWUgfHxcbiAgICAgICAgICAgICAgICAoKF9pbnN0YW5jZTIgPSBnZXRMaXN0ZW5lcihpbnN0YW5jZSwgcmVhY3RFdmVudE5hbWUpKSxcbiAgICAgICAgICAgICAgICBudWxsICE9IF9pbnN0YW5jZTIgJiZcbiAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIoXG4gICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgX2luc3RhbmNlMixcbiAgICAgICAgICAgICAgICAgICAgICBsYXN0SG9zdENvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgaWYgKGFjY3VtdWxhdGVUYXJnZXRPbmx5KSBicmVhaztcbiAgICAgICAgICAgICAgaW5zdGFuY2UgPSBpbnN0YW5jZS5yZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAwIDwgaW5DYXB0dXJlUGhhc2UubGVuZ3RoICYmXG4gICAgICAgICAgICAgICgocmVhY3ROYW1lID0gbmV3IFN5bnRoZXRpY0V2ZW50Q3RvcihcbiAgICAgICAgICAgICAgICByZWFjdE5hbWUsXG4gICAgICAgICAgICAgICAgcmVhY3RFdmVudFR5cGUsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICBldmVudDogcmVhY3ROYW1lLFxuICAgICAgICAgICAgICAgIGxpc3RlbmVyczogaW5DYXB0dXJlUGhhc2VcbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoMCA9PT0gKGV2ZW50U3lzdGVtRmxhZ3MgJiA3KSkge1xuICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgIHJlYWN0TmFtZSA9XG4gICAgICAgICAgICAgIFwibW91c2VvdmVyXCIgPT09IGRvbUV2ZW50TmFtZSB8fCBcInBvaW50ZXJvdmVyXCIgPT09IGRvbUV2ZW50TmFtZTtcbiAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9XG4gICAgICAgICAgICAgIFwibW91c2VvdXRcIiA9PT0gZG9tRXZlbnROYW1lIHx8IFwicG9pbnRlcm91dFwiID09PSBkb21FdmVudE5hbWU7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHJlYWN0TmFtZSAmJlxuICAgICAgICAgICAgICBuYXRpdmVFdmVudCAhPT0gY3VycmVudFJlcGxheWluZ0V2ZW50ICYmXG4gICAgICAgICAgICAgIChyZWFjdEV2ZW50VHlwZSA9XG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQucmVsYXRlZFRhcmdldCB8fCBuYXRpdmVFdmVudC5mcm9tRWxlbWVudCkgJiZcbiAgICAgICAgICAgICAgKGdldENsb3Nlc3RJbnN0YW5jZUZyb21Ob2RlKHJlYWN0RXZlbnRUeXBlKSB8fFxuICAgICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgaWYgKFN5bnRoZXRpY0V2ZW50Q3RvciB8fCByZWFjdE5hbWUpIHtcbiAgICAgICAgICAgICAgcmVhY3ROYW1lID1cbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldC53aW5kb3cgPT09IG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgICAgICAgICA/IG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgICAgICAgICA6IChyZWFjdE5hbWUgPSBuYXRpdmVFdmVudFRhcmdldC5vd25lckRvY3VtZW50KVxuICAgICAgICAgICAgICAgICAgICA/IHJlYWN0TmFtZS5kZWZhdWx0VmlldyB8fCByZWFjdE5hbWUucGFyZW50V2luZG93XG4gICAgICAgICAgICAgICAgICAgIDogd2luZG93O1xuICAgICAgICAgICAgICBpZiAoU3ludGhldGljRXZlbnRDdG9yKSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgKChyZWFjdEV2ZW50VHlwZSA9XG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LnJlbGF0ZWRUYXJnZXQgfHwgbmF0aXZlRXZlbnQudG9FbGVtZW50KSxcbiAgICAgICAgICAgICAgICAgIChTeW50aGV0aWNFdmVudEN0b3IgPSB0YXJnZXRJbnN0KSxcbiAgICAgICAgICAgICAgICAgIChyZWFjdEV2ZW50VHlwZSA9IHJlYWN0RXZlbnRUeXBlXG4gICAgICAgICAgICAgICAgICAgID8gZ2V0Q2xvc2VzdEluc3RhbmNlRnJvbU5vZGUocmVhY3RFdmVudFR5cGUpXG4gICAgICAgICAgICAgICAgICAgIDogbnVsbCksXG4gICAgICAgICAgICAgICAgICBudWxsICE9PSByZWFjdEV2ZW50VHlwZSAmJlxuICAgICAgICAgICAgICAgICAgICAoKGFjY3VtdWxhdGVUYXJnZXRPbmx5ID1cbiAgICAgICAgICAgICAgICAgICAgICBnZXROZWFyZXN0TW91bnRlZEZpYmVyKHJlYWN0RXZlbnRUeXBlKSksXG4gICAgICAgICAgICAgICAgICAgIChpbkNhcHR1cmVQaGFzZSA9IHJlYWN0RXZlbnRUeXBlLnRhZyksXG4gICAgICAgICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlICE9PSBhY2N1bXVsYXRlVGFyZ2V0T25seSB8fFxuICAgICAgICAgICAgICAgICAgICAgICg1ICE9PSBpbkNhcHR1cmVQaGFzZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgMjcgIT09IGluQ2FwdHVyZVBoYXNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICA2ICE9PSBpbkNhcHR1cmVQaGFzZSkpKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIHJlYWN0RXZlbnRUeXBlID0gbnVsbDtcbiAgICAgICAgICAgICAgfSBlbHNlIChTeW50aGV0aWNFdmVudEN0b3IgPSBudWxsKSwgKHJlYWN0RXZlbnRUeXBlID0gdGFyZ2V0SW5zdCk7XG4gICAgICAgICAgICAgIGlmIChTeW50aGV0aWNFdmVudEN0b3IgIT09IHJlYWN0RXZlbnRUeXBlKSB7XG4gICAgICAgICAgICAgICAgaW5DYXB0dXJlUGhhc2UgPSBTeW50aGV0aWNNb3VzZUV2ZW50O1xuICAgICAgICAgICAgICAgIF9pbnN0YW5jZTIgPSBcIm9uTW91c2VMZWF2ZVwiO1xuICAgICAgICAgICAgICAgIHJlYWN0RXZlbnROYW1lID0gXCJvbk1vdXNlRW50ZXJcIjtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IFwibW91c2VcIjtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBcInBvaW50ZXJvdXRcIiA9PT0gZG9tRXZlbnROYW1lIHx8XG4gICAgICAgICAgICAgICAgICBcInBvaW50ZXJvdmVyXCIgPT09IGRvbUV2ZW50TmFtZVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIChpbkNhcHR1cmVQaGFzZSA9IFN5bnRoZXRpY1BvaW50ZXJFdmVudCksXG4gICAgICAgICAgICAgICAgICAgIChfaW5zdGFuY2UyID0gXCJvblBvaW50ZXJMZWF2ZVwiKSxcbiAgICAgICAgICAgICAgICAgICAgKHJlYWN0RXZlbnROYW1lID0gXCJvblBvaW50ZXJFbnRlclwiKSxcbiAgICAgICAgICAgICAgICAgICAgKGluc3RhbmNlID0gXCJwb2ludGVyXCIpO1xuICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVUYXJnZXRPbmx5ID1cbiAgICAgICAgICAgICAgICAgIG51bGwgPT0gU3ludGhldGljRXZlbnRDdG9yXG4gICAgICAgICAgICAgICAgICAgID8gcmVhY3ROYW1lXG4gICAgICAgICAgICAgICAgICAgIDogZ2V0Tm9kZUZyb21JbnN0YW5jZShTeW50aGV0aWNFdmVudEN0b3IpO1xuICAgICAgICAgICAgICAgIGxhc3RIb3N0Q29tcG9uZW50ID1cbiAgICAgICAgICAgICAgICAgIG51bGwgPT0gcmVhY3RFdmVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgPyByZWFjdE5hbWVcbiAgICAgICAgICAgICAgICAgICAgOiBnZXROb2RlRnJvbUluc3RhbmNlKHJlYWN0RXZlbnRUeXBlKTtcbiAgICAgICAgICAgICAgICByZWFjdE5hbWUgPSBuZXcgaW5DYXB0dXJlUGhhc2UoXG4gICAgICAgICAgICAgICAgICBfaW5zdGFuY2UyLFxuICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgKyBcImxlYXZlXCIsXG4gICAgICAgICAgICAgICAgICBTeW50aGV0aWNFdmVudEN0b3IsXG4gICAgICAgICAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZWFjdE5hbWUudGFyZ2V0ID0gYWNjdW11bGF0ZVRhcmdldE9ubHk7XG4gICAgICAgICAgICAgICAgcmVhY3ROYW1lLnJlbGF0ZWRUYXJnZXQgPSBsYXN0SG9zdENvbXBvbmVudDtcbiAgICAgICAgICAgICAgICBfaW5zdGFuY2UyID0gbnVsbDtcbiAgICAgICAgICAgICAgICBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShuYXRpdmVFdmVudFRhcmdldCkgPT09IHRhcmdldEluc3QgJiZcbiAgICAgICAgICAgICAgICAgICgoaW5DYXB0dXJlUGhhc2UgPSBuZXcgaW5DYXB0dXJlUGhhc2UoXG4gICAgICAgICAgICAgICAgICAgIHJlYWN0RXZlbnROYW1lLFxuICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSArIFwiZW50ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgcmVhY3RFdmVudFR5cGUsXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAoaW5DYXB0dXJlUGhhc2UudGFyZ2V0ID0gbGFzdEhvc3RDb21wb25lbnQpLFxuICAgICAgICAgICAgICAgICAgKGluQ2FwdHVyZVBoYXNlLnJlbGF0ZWRUYXJnZXQgPSBhY2N1bXVsYXRlVGFyZ2V0T25seSksXG4gICAgICAgICAgICAgICAgICAoX2luc3RhbmNlMiA9IGluQ2FwdHVyZVBoYXNlKSk7XG4gICAgICAgICAgICAgICAgYWNjdW11bGF0ZVRhcmdldE9ubHkgPSBfaW5zdGFuY2UyO1xuICAgICAgICAgICAgICAgIGlmIChTeW50aGV0aWNFdmVudEN0b3IgJiYgcmVhY3RFdmVudFR5cGUpXG4gICAgICAgICAgICAgICAgICBiOiB7XG4gICAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlID0gZ2V0UGFyZW50O1xuICAgICAgICAgICAgICAgICAgICByZWFjdEV2ZW50TmFtZSA9IFN5bnRoZXRpY0V2ZW50Q3RvcjtcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UgPSByZWFjdEV2ZW50VHlwZTtcbiAgICAgICAgICAgICAgICAgICAgbGFzdEhvc3RDb21wb25lbnQgPSAwO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgIF9pbnN0YW5jZTIgPSByZWFjdEV2ZW50TmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICBfaW5zdGFuY2UyO1xuICAgICAgICAgICAgICAgICAgICAgIF9pbnN0YW5jZTIgPSBpbkNhcHR1cmVQaGFzZShfaW5zdGFuY2UyKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgbGFzdEhvc3RDb21wb25lbnQrKztcbiAgICAgICAgICAgICAgICAgICAgX2luc3RhbmNlMiA9IDA7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgdmFyIHRlbXBCID0gaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgICAgICAgdGVtcEI7XG4gICAgICAgICAgICAgICAgICAgICAgdGVtcEIgPSBpbkNhcHR1cmVQaGFzZSh0ZW1wQilcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgIF9pbnN0YW5jZTIrKztcbiAgICAgICAgICAgICAgICAgICAgZm9yICg7IDAgPCBsYXN0SG9zdENvbXBvbmVudCAtIF9pbnN0YW5jZTI7IClcbiAgICAgICAgICAgICAgICAgICAgICAocmVhY3RFdmVudE5hbWUgPSBpbkNhcHR1cmVQaGFzZShyZWFjdEV2ZW50TmFtZSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdEhvc3RDb21wb25lbnQtLTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICg7IDAgPCBfaW5zdGFuY2UyIC0gbGFzdEhvc3RDb21wb25lbnQ7IClcbiAgICAgICAgICAgICAgICAgICAgICAoaW5zdGFuY2UgPSBpbkNhcHR1cmVQaGFzZShpbnN0YW5jZSkpLCBfaW5zdGFuY2UyLS07XG4gICAgICAgICAgICAgICAgICAgIGZvciAoOyBsYXN0SG9zdENvbXBvbmVudC0tOyApIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICByZWFjdEV2ZW50TmFtZSA9PT0gaW5zdGFuY2UgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIChudWxsICE9PSBpbnN0YW5jZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWFjdEV2ZW50TmFtZSA9PT0gaW5zdGFuY2UuYWx0ZXJuYXRlKVxuICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5DYXB0dXJlUGhhc2UgPSByZWFjdEV2ZW50TmFtZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGI7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHJlYWN0RXZlbnROYW1lID0gaW5DYXB0dXJlUGhhc2UocmVhY3RFdmVudE5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlID0gaW5DYXB0dXJlUGhhc2UoaW5zdGFuY2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGluQ2FwdHVyZVBoYXNlID0gbnVsbDtcbiAgICAgICAgICAgICAgICBudWxsICE9PSBTeW50aGV0aWNFdmVudEN0b3IgJiZcbiAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVFbnRlckxlYXZlTGlzdGVuZXJzRm9yRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoUXVldWUsXG4gICAgICAgICAgICAgICAgICAgIHJlYWN0TmFtZSxcbiAgICAgICAgICAgICAgICAgICAgU3ludGhldGljRXZlbnRDdG9yLFxuICAgICAgICAgICAgICAgICAgICBpbkNhcHR1cmVQaGFzZSxcbiAgICAgICAgICAgICAgICAgICAgITFcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbnVsbCAhPT0gcmVhY3RFdmVudFR5cGUgJiZcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IGFjY3VtdWxhdGVUYXJnZXRPbmx5ICYmXG4gICAgICAgICAgICAgICAgICBhY2N1bXVsYXRlRW50ZXJMZWF2ZUxpc3RlbmVyc0ZvckV2ZW50KFxuICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaFF1ZXVlLFxuICAgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRlVGFyZ2V0T25seSxcbiAgICAgICAgICAgICAgICAgICAgcmVhY3RFdmVudFR5cGUsXG4gICAgICAgICAgICAgICAgICAgIGluQ2FwdHVyZVBoYXNlLFxuICAgICAgICAgICAgICAgICAgICAhMFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBhOiB7XG4gICAgICAgICAgICByZWFjdE5hbWUgPSB0YXJnZXRJbnN0ID8gZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KSA6IHdpbmRvdztcbiAgICAgICAgICAgIFN5bnRoZXRpY0V2ZW50Q3RvciA9XG4gICAgICAgICAgICAgIHJlYWN0TmFtZS5ub2RlTmFtZSAmJiByZWFjdE5hbWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgXCJzZWxlY3RcIiA9PT0gU3ludGhldGljRXZlbnRDdG9yIHx8XG4gICAgICAgICAgICAgIChcImlucHV0XCIgPT09IFN5bnRoZXRpY0V2ZW50Q3RvciAmJiBcImZpbGVcIiA9PT0gcmVhY3ROYW1lLnR5cGUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHZhciBnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JDaGFuZ2VFdmVudDtcbiAgICAgICAgICAgIGVsc2UgaWYgKGlzVGV4dElucHV0RWxlbWVudChyZWFjdE5hbWUpKVxuICAgICAgICAgICAgICBpZiAoaXNJbnB1dEV2ZW50U3VwcG9ydGVkKVxuICAgICAgICAgICAgICAgIGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZvcklucHV0T3JDaGFuZ2VFdmVudDtcbiAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0Rm9ySW5wdXRFdmVudFBvbHlmaWxsO1xuICAgICAgICAgICAgICAgIHZhciBoYW5kbGVFdmVudEZ1bmMgPSBoYW5kbGVFdmVudHNGb3JJbnB1dEV2ZW50UG9seWZpbGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgKFN5bnRoZXRpY0V2ZW50Q3RvciA9IHJlYWN0TmFtZS5ub2RlTmFtZSksXG4gICAgICAgICAgICAgICAgIVN5bnRoZXRpY0V2ZW50Q3RvciB8fFxuICAgICAgICAgICAgICAgIFwiaW5wdXRcIiAhPT0gU3ludGhldGljRXZlbnRDdG9yLnRvTG93ZXJDYXNlKCkgfHxcbiAgICAgICAgICAgICAgICAoXCJjaGVja2JveFwiICE9PSByZWFjdE5hbWUudHlwZSAmJiBcInJhZGlvXCIgIT09IHJlYWN0TmFtZS50eXBlKVxuICAgICAgICAgICAgICAgICAgPyB0YXJnZXRJbnN0ICYmXG4gICAgICAgICAgICAgICAgICAgIGlzQ3VzdG9tRWxlbWVudCh0YXJnZXRJbnN0LmVsZW1lbnRUeXBlKSAmJlxuICAgICAgICAgICAgICAgICAgICAoZ2V0VGFyZ2V0SW5zdEZ1bmMgPSBnZXRUYXJnZXRJbnN0Rm9yQ2hhbmdlRXZlbnQpXG4gICAgICAgICAgICAgICAgICA6IChnZXRUYXJnZXRJbnN0RnVuYyA9IGdldFRhcmdldEluc3RGb3JDbGlja0V2ZW50KTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgZ2V0VGFyZ2V0SW5zdEZ1bmMgJiZcbiAgICAgICAgICAgICAgKGdldFRhcmdldEluc3RGdW5jID0gZ2V0VGFyZ2V0SW5zdEZ1bmMoZG9tRXZlbnROYW1lLCB0YXJnZXRJbnN0KSlcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBjcmVhdGVBbmRBY2N1bXVsYXRlQ2hhbmdlRXZlbnQoXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hRdWV1ZSxcbiAgICAgICAgICAgICAgICBnZXRUYXJnZXRJbnN0RnVuYyxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGFuZGxlRXZlbnRGdW5jICYmXG4gICAgICAgICAgICAgIGhhbmRsZUV2ZW50RnVuYyhkb21FdmVudE5hbWUsIHJlYWN0TmFtZSwgdGFyZ2V0SW5zdCk7XG4gICAgICAgICAgICBcImZvY3Vzb3V0XCIgPT09IGRvbUV2ZW50TmFtZSAmJlxuICAgICAgICAgICAgICB0YXJnZXRJbnN0ICYmXG4gICAgICAgICAgICAgIFwibnVtYmVyXCIgPT09IHJlYWN0TmFtZS50eXBlICYmXG4gICAgICAgICAgICAgIG51bGwgIT0gdGFyZ2V0SW5zdC5tZW1vaXplZFByb3BzLnZhbHVlICYmXG4gICAgICAgICAgICAgIHNldERlZmF1bHRWYWx1ZShyZWFjdE5hbWUsIFwibnVtYmVyXCIsIHJlYWN0TmFtZS52YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGhhbmRsZUV2ZW50RnVuYyA9IHRhcmdldEluc3RcbiAgICAgICAgICAgID8gZ2V0Tm9kZUZyb21JbnN0YW5jZSh0YXJnZXRJbnN0KVxuICAgICAgICAgICAgOiB3aW5kb3c7XG4gICAgICAgICAgc3dpdGNoIChkb21FdmVudE5hbWUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJmb2N1c2luXCI6XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBpc1RleHRJbnB1dEVsZW1lbnQoaGFuZGxlRXZlbnRGdW5jKSB8fFxuICAgICAgICAgICAgICAgIFwidHJ1ZVwiID09PSBoYW5kbGVFdmVudEZ1bmMuY29udGVudEVkaXRhYmxlXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAoYWN0aXZlRWxlbWVudCA9IGhhbmRsZUV2ZW50RnVuYyksXG4gICAgICAgICAgICAgICAgICAoYWN0aXZlRWxlbWVudEluc3QgPSB0YXJnZXRJbnN0KSxcbiAgICAgICAgICAgICAgICAgIChsYXN0U2VsZWN0aW9uID0gbnVsbCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImZvY3Vzb3V0XCI6XG4gICAgICAgICAgICAgIGxhc3RTZWxlY3Rpb24gPSBhY3RpdmVFbGVtZW50SW5zdCA9IGFjdGl2ZUVsZW1lbnQgPSBudWxsO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJtb3VzZWRvd25cIjpcbiAgICAgICAgICAgICAgbW91c2VEb3duID0gITA7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImNvbnRleHRtZW51XCI6XG4gICAgICAgICAgICBjYXNlIFwibW91c2V1cFwiOlxuICAgICAgICAgICAgY2FzZSBcImRyYWdlbmRcIjpcbiAgICAgICAgICAgICAgbW91c2VEb3duID0gITE7XG4gICAgICAgICAgICAgIGNvbnN0cnVjdFNlbGVjdEV2ZW50KFxuICAgICAgICAgICAgICAgIGRpc3BhdGNoUXVldWUsXG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXRcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwic2VsZWN0aW9uY2hhbmdlXCI6XG4gICAgICAgICAgICAgIGlmIChza2lwU2VsZWN0aW9uQ2hhbmdlRXZlbnQpIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImtleWRvd25cIjpcbiAgICAgICAgICAgIGNhc2UgXCJrZXl1cFwiOlxuICAgICAgICAgICAgICBjb25zdHJ1Y3RTZWxlY3RFdmVudChcbiAgICAgICAgICAgICAgICBkaXNwYXRjaFF1ZXVlLFxuICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHZhciBmYWxsYmFja0RhdGE7XG4gICAgICAgICAgaWYgKGNhblVzZUNvbXBvc2l0aW9uRXZlbnQpXG4gICAgICAgICAgICBiOiB7XG4gICAgICAgICAgICAgIHN3aXRjaCAoZG9tRXZlbnROYW1lKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNvbXBvc2l0aW9uc3RhcnRcIjpcbiAgICAgICAgICAgICAgICAgIHZhciBldmVudFR5cGUgPSBcIm9uQ29tcG9zaXRpb25TdGFydFwiO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgICBjYXNlIFwiY29tcG9zaXRpb25lbmRcIjpcbiAgICAgICAgICAgICAgICAgIGV2ZW50VHlwZSA9IFwib25Db21wb3NpdGlvbkVuZFwiO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgICBjYXNlIFwiY29tcG9zaXRpb251cGRhdGVcIjpcbiAgICAgICAgICAgICAgICAgIGV2ZW50VHlwZSA9IFwib25Db21wb3NpdGlvblVwZGF0ZVwiO1xuICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBldmVudFR5cGUgPSB2b2lkIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgaXNDb21wb3NpbmdcbiAgICAgICAgICAgICAgPyBpc0ZhbGxiYWNrQ29tcG9zaXRpb25FbmQoZG9tRXZlbnROYW1lLCBuYXRpdmVFdmVudCkgJiZcbiAgICAgICAgICAgICAgICAoZXZlbnRUeXBlID0gXCJvbkNvbXBvc2l0aW9uRW5kXCIpXG4gICAgICAgICAgICAgIDogXCJrZXlkb3duXCIgPT09IGRvbUV2ZW50TmFtZSAmJlxuICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LmtleUNvZGUgPT09IFNUQVJUX0tFWUNPREUgJiZcbiAgICAgICAgICAgICAgICAoZXZlbnRUeXBlID0gXCJvbkNvbXBvc2l0aW9uU3RhcnRcIik7XG4gICAgICAgICAgZXZlbnRUeXBlICYmXG4gICAgICAgICAgICAodXNlRmFsbGJhY2tDb21wb3NpdGlvbkRhdGEgJiZcbiAgICAgICAgICAgICAgXCJrb1wiICE9PSBuYXRpdmVFdmVudC5sb2NhbGUgJiZcbiAgICAgICAgICAgICAgKGlzQ29tcG9zaW5nIHx8IFwib25Db21wb3NpdGlvblN0YXJ0XCIgIT09IGV2ZW50VHlwZVxuICAgICAgICAgICAgICAgID8gXCJvbkNvbXBvc2l0aW9uRW5kXCIgPT09IGV2ZW50VHlwZSAmJlxuICAgICAgICAgICAgICAgICAgaXNDb21wb3NpbmcgJiZcbiAgICAgICAgICAgICAgICAgIChmYWxsYmFja0RhdGEgPSBnZXREYXRhKCkpXG4gICAgICAgICAgICAgICAgOiAoKHJvb3QgPSBuYXRpdmVFdmVudFRhcmdldCksXG4gICAgICAgICAgICAgICAgICAoc3RhcnRUZXh0ID0gXCJ2YWx1ZVwiIGluIHJvb3QgPyByb290LnZhbHVlIDogcm9vdC50ZXh0Q29udGVudCksXG4gICAgICAgICAgICAgICAgICAoaXNDb21wb3NpbmcgPSAhMCkpKSxcbiAgICAgICAgICAgIChoYW5kbGVFdmVudEZ1bmMgPSBhY2N1bXVsYXRlVHdvUGhhc2VMaXN0ZW5lcnMoXG4gICAgICAgICAgICAgIHRhcmdldEluc3QsXG4gICAgICAgICAgICAgIGV2ZW50VHlwZVxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAwIDwgaGFuZGxlRXZlbnRGdW5jLmxlbmd0aCAmJlxuICAgICAgICAgICAgICAoKGV2ZW50VHlwZSA9IG5ldyBTeW50aGV0aWNDb21wb3NpdGlvbkV2ZW50KFxuICAgICAgICAgICAgICAgIGV2ZW50VHlwZSxcbiAgICAgICAgICAgICAgICBkb21FdmVudE5hbWUsXG4gICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudFRhcmdldFxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICBldmVudDogZXZlbnRUeXBlLFxuICAgICAgICAgICAgICAgIGxpc3RlbmVyczogaGFuZGxlRXZlbnRGdW5jXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBmYWxsYmFja0RhdGFcbiAgICAgICAgICAgICAgICA/IChldmVudFR5cGUuZGF0YSA9IGZhbGxiYWNrRGF0YSlcbiAgICAgICAgICAgICAgICA6ICgoZmFsbGJhY2tEYXRhID0gZ2V0RGF0YUZyb21DdXN0b21FdmVudChuYXRpdmVFdmVudCkpLFxuICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gZmFsbGJhY2tEYXRhICYmIChldmVudFR5cGUuZGF0YSA9IGZhbGxiYWNrRGF0YSkpKSk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgKGZhbGxiYWNrRGF0YSA9IGNhblVzZVRleHRJbnB1dEV2ZW50XG4gICAgICAgICAgICAgID8gZ2V0TmF0aXZlQmVmb3JlSW5wdXRDaGFycyhkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KVxuICAgICAgICAgICAgICA6IGdldEZhbGxiYWNrQmVmb3JlSW5wdXRDaGFycyhkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSlcbiAgICAgICAgICApXG4gICAgICAgICAgICAoZXZlbnRUeXBlID0gYWNjdW11bGF0ZVR3b1BoYXNlTGlzdGVuZXJzKFxuICAgICAgICAgICAgICB0YXJnZXRJbnN0LFxuICAgICAgICAgICAgICBcIm9uQmVmb3JlSW5wdXRcIlxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgIDAgPCBldmVudFR5cGUubGVuZ3RoICYmXG4gICAgICAgICAgICAgICAgKChoYW5kbGVFdmVudEZ1bmMgPSBuZXcgU3ludGhldGljSW5wdXRFdmVudChcbiAgICAgICAgICAgICAgICAgIFwib25CZWZvcmVJbnB1dFwiLFxuICAgICAgICAgICAgICAgICAgXCJiZWZvcmVpbnB1dFwiLFxuICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgIG5hdGl2ZUV2ZW50LFxuICAgICAgICAgICAgICAgICAgbmF0aXZlRXZlbnRUYXJnZXRcbiAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICBkaXNwYXRjaFF1ZXVlLnB1c2goe1xuICAgICAgICAgICAgICAgICAgZXZlbnQ6IGhhbmRsZUV2ZW50RnVuYyxcbiAgICAgICAgICAgICAgICAgIGxpc3RlbmVyczogZXZlbnRUeXBlXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKGhhbmRsZUV2ZW50RnVuYy5kYXRhID0gZmFsbGJhY2tEYXRhKSk7XG4gICAgICAgICAgZXh0cmFjdEV2ZW50cyQxKFxuICAgICAgICAgICAgZGlzcGF0Y2hRdWV1ZSxcbiAgICAgICAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgICAgICAgIHRhcmdldEluc3QsXG4gICAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50VGFyZ2V0XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBwcm9jZXNzRGlzcGF0Y2hRdWV1ZShkaXNwYXRjaFF1ZXVlLCBldmVudFN5c3RlbUZsYWdzKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVEaXNwYXRjaExpc3RlbmVyKGluc3RhbmNlLCBsaXN0ZW5lciwgY3VycmVudFRhcmdldCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW5zdGFuY2U6IGluc3RhbmNlLFxuICAgICAgICBsaXN0ZW5lcjogbGlzdGVuZXIsXG4gICAgICAgIGN1cnJlbnRUYXJnZXQ6IGN1cnJlbnRUYXJnZXRcbiAgICAgIH07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFjY3VtdWxhdGVUd29QaGFzZUxpc3RlbmVycyh0YXJnZXRGaWJlciwgcmVhY3ROYW1lKSB7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgY2FwdHVyZU5hbWUgPSByZWFjdE5hbWUgKyBcIkNhcHR1cmVcIiwgbGlzdGVuZXJzID0gW107XG4gICAgICAgIG51bGwgIT09IHRhcmdldEZpYmVyO1xuXG4gICAgICApIHtcbiAgICAgICAgdmFyIF9pbnN0YW5jZTMgPSB0YXJnZXRGaWJlcixcbiAgICAgICAgICBzdGF0ZU5vZGUgPSBfaW5zdGFuY2UzLnN0YXRlTm9kZTtcbiAgICAgICAgX2luc3RhbmNlMyA9IF9pbnN0YW5jZTMudGFnO1xuICAgICAgICAoNSAhPT0gX2luc3RhbmNlMyAmJiAyNiAhPT0gX2luc3RhbmNlMyAmJiAyNyAhPT0gX2luc3RhbmNlMykgfHxcbiAgICAgICAgICBudWxsID09PSBzdGF0ZU5vZGUgfHxcbiAgICAgICAgICAoKF9pbnN0YW5jZTMgPSBnZXRMaXN0ZW5lcih0YXJnZXRGaWJlciwgY2FwdHVyZU5hbWUpKSxcbiAgICAgICAgICBudWxsICE9IF9pbnN0YW5jZTMgJiZcbiAgICAgICAgICAgIGxpc3RlbmVycy51bnNoaWZ0KFxuICAgICAgICAgICAgICBjcmVhdGVEaXNwYXRjaExpc3RlbmVyKHRhcmdldEZpYmVyLCBfaW5zdGFuY2UzLCBzdGF0ZU5vZGUpXG4gICAgICAgICAgICApLFxuICAgICAgICAgIChfaW5zdGFuY2UzID0gZ2V0TGlzdGVuZXIodGFyZ2V0RmliZXIsIHJlYWN0TmFtZSkpLFxuICAgICAgICAgIG51bGwgIT0gX2luc3RhbmNlMyAmJlxuICAgICAgICAgICAgbGlzdGVuZXJzLnB1c2goXG4gICAgICAgICAgICAgIGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIodGFyZ2V0RmliZXIsIF9pbnN0YW5jZTMsIHN0YXRlTm9kZSlcbiAgICAgICAgICAgICkpO1xuICAgICAgICBpZiAoMyA9PT0gdGFyZ2V0RmliZXIudGFnKSByZXR1cm4gbGlzdGVuZXJzO1xuICAgICAgICB0YXJnZXRGaWJlciA9IHRhcmdldEZpYmVyLnJldHVybjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0UGFyZW50KGluc3QpIHtcbiAgICAgIGlmIChudWxsID09PSBpbnN0KSByZXR1cm4gbnVsbDtcbiAgICAgIGRvIGluc3QgPSBpbnN0LnJldHVybjtcbiAgICAgIHdoaWxlIChpbnN0ICYmIDUgIT09IGluc3QudGFnICYmIDI3ICE9PSBpbnN0LnRhZyk7XG4gICAgICByZXR1cm4gaW5zdCA/IGluc3QgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhY2N1bXVsYXRlRW50ZXJMZWF2ZUxpc3RlbmVyc0ZvckV2ZW50KFxuICAgICAgZGlzcGF0Y2hRdWV1ZSxcbiAgICAgIGV2ZW50LFxuICAgICAgdGFyZ2V0LFxuICAgICAgY29tbW9uLFxuICAgICAgaW5DYXB0dXJlUGhhc2VcbiAgICApIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciByZWdpc3RyYXRpb25OYW1lID0gZXZlbnQuX3JlYWN0TmFtZSwgbGlzdGVuZXJzID0gW107XG4gICAgICAgIG51bGwgIT09IHRhcmdldCAmJiB0YXJnZXQgIT09IGNvbW1vbjtcblxuICAgICAgKSB7XG4gICAgICAgIHZhciBfaW5zdGFuY2U0ID0gdGFyZ2V0LFxuICAgICAgICAgIGFsdGVybmF0ZSA9IF9pbnN0YW5jZTQuYWx0ZXJuYXRlLFxuICAgICAgICAgIHN0YXRlTm9kZSA9IF9pbnN0YW5jZTQuc3RhdGVOb2RlO1xuICAgICAgICBfaW5zdGFuY2U0ID0gX2luc3RhbmNlNC50YWc7XG4gICAgICAgIGlmIChudWxsICE9PSBhbHRlcm5hdGUgJiYgYWx0ZXJuYXRlID09PSBjb21tb24pIGJyZWFrO1xuICAgICAgICAoNSAhPT0gX2luc3RhbmNlNCAmJiAyNiAhPT0gX2luc3RhbmNlNCAmJiAyNyAhPT0gX2luc3RhbmNlNCkgfHxcbiAgICAgICAgICBudWxsID09PSBzdGF0ZU5vZGUgfHxcbiAgICAgICAgICAoKGFsdGVybmF0ZSA9IHN0YXRlTm9kZSksXG4gICAgICAgICAgaW5DYXB0dXJlUGhhc2VcbiAgICAgICAgICAgID8gKChzdGF0ZU5vZGUgPSBnZXRMaXN0ZW5lcih0YXJnZXQsIHJlZ2lzdHJhdGlvbk5hbWUpKSxcbiAgICAgICAgICAgICAgbnVsbCAhPSBzdGF0ZU5vZGUgJiZcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnMudW5zaGlmdChcbiAgICAgICAgICAgICAgICAgIGNyZWF0ZURpc3BhdGNoTGlzdGVuZXIodGFyZ2V0LCBzdGF0ZU5vZGUsIGFsdGVybmF0ZSlcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgOiBpbkNhcHR1cmVQaGFzZSB8fFxuICAgICAgICAgICAgICAoKHN0YXRlTm9kZSA9IGdldExpc3RlbmVyKHRhcmdldCwgcmVnaXN0cmF0aW9uTmFtZSkpLFxuICAgICAgICAgICAgICBudWxsICE9IHN0YXRlTm9kZSAmJlxuICAgICAgICAgICAgICAgIGxpc3RlbmVycy5wdXNoKFxuICAgICAgICAgICAgICAgICAgY3JlYXRlRGlzcGF0Y2hMaXN0ZW5lcih0YXJnZXQsIHN0YXRlTm9kZSwgYWx0ZXJuYXRlKVxuICAgICAgICAgICAgICAgICkpKTtcbiAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnJldHVybjtcbiAgICAgIH1cbiAgICAgIDAgIT09IGxpc3RlbmVycy5sZW5ndGggJiZcbiAgICAgICAgZGlzcGF0Y2hRdWV1ZS5wdXNoKHsgZXZlbnQ6IGV2ZW50LCBsaXN0ZW5lcnM6IGxpc3RlbmVycyB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzSW5EZXZlbG9wbWVudCh0eXBlLCBwcm9wcykge1xuICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzJDIodHlwZSwgcHJvcHMpO1xuICAgICAgKFwiaW5wdXRcIiAhPT0gdHlwZSAmJiBcInRleHRhcmVhXCIgIT09IHR5cGUgJiYgXCJzZWxlY3RcIiAhPT0gdHlwZSkgfHxcbiAgICAgICAgbnVsbCA9PSBwcm9wcyB8fFxuICAgICAgICBudWxsICE9PSBwcm9wcy52YWx1ZSB8fFxuICAgICAgICBkaWRXYXJuVmFsdWVOdWxsIHx8XG4gICAgICAgICgoZGlkV2FyblZhbHVlTnVsbCA9ICEwKSxcbiAgICAgICAgXCJzZWxlY3RcIiA9PT0gdHlwZSAmJiBwcm9wcy5tdWx0aXBsZVxuICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJgdmFsdWVgIHByb3Agb24gYCVzYCBzaG91bGQgbm90IGJlIG51bGwuIENvbnNpZGVyIHVzaW5nIGFuIGVtcHR5IGFycmF5IHdoZW4gYG11bHRpcGxlYCBpcyBzZXQgdG8gYHRydWVgIHRvIGNsZWFyIHRoZSBjb21wb25lbnQgb3IgYHVuZGVmaW5lZGAgZm9yIHVuY29udHJvbGxlZCBjb21wb25lbnRzLlwiLFxuICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcImB2YWx1ZWAgcHJvcCBvbiBgJXNgIHNob3VsZCBub3QgYmUgbnVsbC4gQ29uc2lkZXIgdXNpbmcgYW4gZW1wdHkgc3RyaW5nIHRvIGNsZWFyIHRoZSBjb21wb25lbnQgb3IgYHVuZGVmaW5lZGAgZm9yIHVuY29udHJvbGxlZCBjb21wb25lbnRzLlwiLFxuICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICApKTtcbiAgICAgIHZhciBldmVudFJlZ2lzdHJ5ID0ge1xuICAgICAgICByZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzOiByZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLFxuICAgICAgICBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzOiBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzXG4gICAgICB9O1xuICAgICAgaXNDdXN0b21FbGVtZW50KHR5cGUpIHx8XG4gICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBwcm9wcy5pcyB8fFxuICAgICAgICB3YXJuVW5rbm93blByb3BlcnRpZXModHlwZSwgcHJvcHMsIGV2ZW50UmVnaXN0cnkpO1xuICAgICAgcHJvcHMuY29udGVudEVkaXRhYmxlICYmXG4gICAgICAgICFwcm9wcy5zdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmcgJiZcbiAgICAgICAgbnVsbCAhPSBwcm9wcy5jaGlsZHJlbiAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiQSBjb21wb25lbnQgaXMgYGNvbnRlbnRFZGl0YWJsZWAgYW5kIGNvbnRhaW5zIGBjaGlsZHJlbmAgbWFuYWdlZCBieSBSZWFjdC4gSXQgaXMgbm93IHlvdXIgcmVzcG9uc2liaWxpdHkgdG8gZ3VhcmFudGVlIHRoYXQgbm9uZSBvZiB0aG9zZSBub2RlcyBhcmUgdW5leHBlY3RlZGx5IG1vZGlmaWVkIG9yIGR1cGxpY2F0ZWQuIFRoaXMgaXMgcHJvYmFibHkgbm90IGludGVudGlvbmFsLlwiXG4gICAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgIHByb3BOYW1lLFxuICAgICAgc2VydmVyVmFsdWUsXG4gICAgICBjbGllbnRWYWx1ZSxcbiAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgKSB7XG4gICAgICBzZXJ2ZXJWYWx1ZSAhPT0gY2xpZW50VmFsdWUgJiZcbiAgICAgICAgKChjbGllbnRWYWx1ZSA9IG5vcm1hbGl6ZU1hcmt1cEZvclRleHRPckF0dHJpYnV0ZShjbGllbnRWYWx1ZSkpLFxuICAgICAgICBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUoc2VydmVyVmFsdWUpICE9PSBjbGllbnRWYWx1ZSAmJlxuICAgICAgICAgIChzZXJ2ZXJEaWZmZXJlbmNlc1twcm9wTmFtZV0gPSBzZXJ2ZXJWYWx1ZSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3YXJuRm9yRXh0cmFBdHRyaWJ1dGVzKFxuICAgICAgZG9tRWxlbWVudCxcbiAgICAgIGF0dHJpYnV0ZU5hbWVzLFxuICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICApIHtcbiAgICAgIGF0dHJpYnV0ZU5hbWVzLmZvckVhY2goZnVuY3Rpb24gKGF0dHJpYnV0ZU5hbWUpIHtcbiAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNbZ2V0UHJvcE5hbWVGcm9tQXR0cmlidXRlTmFtZShhdHRyaWJ1dGVOYW1lKV0gPVxuICAgICAgICAgIFwic3R5bGVcIiA9PT0gYXR0cmlidXRlTmFtZVxuICAgICAgICAgICAgPyBnZXRTdHlsZXNPYmplY3RGcm9tRWxlbWVudChkb21FbGVtZW50KVxuICAgICAgICAgICAgOiBkb21FbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIocmVnaXN0cmF0aW9uTmFtZSwgbGlzdGVuZXIpIHtcbiAgICAgICExID09PSBsaXN0ZW5lclxuICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkV4cGVjdGVkIGAlc2AgbGlzdGVuZXIgdG8gYmUgYSBmdW5jdGlvbiwgaW5zdGVhZCBnb3QgYGZhbHNlYC5cXG5cXG5JZiB5b3UgdXNlZCB0byBjb25kaXRpb25hbGx5IG9taXQgaXQgd2l0aCAlcz17Y29uZGl0aW9uICYmIHZhbHVlfSwgcGFzcyAlcz17Y29uZGl0aW9uID8gdmFsdWUgOiB1bmRlZmluZWR9IGluc3RlYWQuXCIsXG4gICAgICAgICAgICByZWdpc3RyYXRpb25OYW1lLFxuICAgICAgICAgICAgcmVnaXN0cmF0aW9uTmFtZSxcbiAgICAgICAgICAgIHJlZ2lzdHJhdGlvbk5hbWVcbiAgICAgICAgICApXG4gICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiRXhwZWN0ZWQgYCVzYCBsaXN0ZW5lciB0byBiZSBhIGZ1bmN0aW9uLCBpbnN0ZWFkIGdvdCBhIHZhbHVlIG9mIGAlc2AgdHlwZS5cIixcbiAgICAgICAgICAgIHJlZ2lzdHJhdGlvbk5hbWUsXG4gICAgICAgICAgICB0eXBlb2YgbGlzdGVuZXJcbiAgICAgICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub3JtYWxpemVIVE1MKHBhcmVudCwgaHRtbCkge1xuICAgICAgcGFyZW50ID1cbiAgICAgICAgcGFyZW50Lm5hbWVzcGFjZVVSSSA9PT0gTUFUSF9OQU1FU1BBQ0UgfHxcbiAgICAgICAgcGFyZW50Lm5hbWVzcGFjZVVSSSA9PT0gU1ZHX05BTUVTUEFDRVxuICAgICAgICAgID8gcGFyZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFxuICAgICAgICAgICAgICBwYXJlbnQubmFtZXNwYWNlVVJJLFxuICAgICAgICAgICAgICBwYXJlbnQudGFnTmFtZVxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogcGFyZW50Lm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudChwYXJlbnQudGFnTmFtZSk7XG4gICAgICBwYXJlbnQuaW5uZXJIVE1MID0gaHRtbDtcbiAgICAgIHJldHVybiBwYXJlbnQuaW5uZXJIVE1MO1xuICAgIH1cbiAgICBmdW5jdGlvbiBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUobWFya3VwKSB7XG4gICAgICB3aWxsQ29lcmNpb25UaHJvdyhtYXJrdXApICYmXG4gICAgICAgIChjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiVGhlIHByb3ZpZGVkIEhUTUwgbWFya3VwIHVzZXMgYSB2YWx1ZSBvZiB1bnN1cHBvcnRlZCB0eXBlICVzLiBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS5cIixcbiAgICAgICAgICB0eXBlTmFtZShtYXJrdXApXG4gICAgICAgICksXG4gICAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbihtYXJrdXApKTtcbiAgICAgIHJldHVybiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG1hcmt1cCA/IG1hcmt1cCA6IFwiXCIgKyBtYXJrdXApXG4gICAgICAgIC5yZXBsYWNlKE5PUk1BTElaRV9ORVdMSU5FU19SRUdFWCwgXCJcXG5cIilcbiAgICAgICAgLnJlcGxhY2UoTk9STUFMSVpFX05VTExfQU5EX1JFUExBQ0VNRU5UX1JFR0VYLCBcIlwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tGb3JVbm1hdGNoZWRUZXh0KHNlcnZlclRleHQsIGNsaWVudFRleHQpIHtcbiAgICAgIGNsaWVudFRleHQgPSBub3JtYWxpemVNYXJrdXBGb3JUZXh0T3JBdHRyaWJ1dGUoY2xpZW50VGV4dCk7XG4gICAgICByZXR1cm4gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKHNlcnZlclRleHQpID09PSBjbGllbnRUZXh0XG4gICAgICAgID8gITBcbiAgICAgICAgOiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2V0UHJvcChkb21FbGVtZW50LCB0YWcsIGtleSwgdmFsdWUsIHByb3BzLCBwcmV2VmFsdWUpIHtcbiAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgIGNhc2UgXCJjaGlsZHJlblwiOlxuICAgICAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgdmFsdWUpXG4gICAgICAgICAgICB2YWxpZGF0ZVRleHROZXN0aW5nKHZhbHVlLCB0YWcsICExKSxcbiAgICAgICAgICAgICAgXCJib2R5XCIgPT09IHRhZyB8fFxuICAgICAgICAgICAgICAgIChcInRleHRhcmVhXCIgPT09IHRhZyAmJiBcIlwiID09PSB2YWx1ZSkgfHxcbiAgICAgICAgICAgICAgICBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCB2YWx1ZSk7XG4gICAgICAgICAgZWxzZSBpZiAoXCJudW1iZXJcIiA9PT0gdHlwZW9mIHZhbHVlIHx8IFwiYmlnaW50XCIgPT09IHR5cGVvZiB2YWx1ZSlcbiAgICAgICAgICAgIHZhbGlkYXRlVGV4dE5lc3RpbmcoXCJcIiArIHZhbHVlLCB0YWcsICExKSxcbiAgICAgICAgICAgICAgXCJib2R5XCIgIT09IHRhZyAmJiBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCBcIlwiICsgdmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiY2xhc3NOYW1lXCI6XG4gICAgICAgICAgc2V0VmFsdWVGb3JLbm93bkF0dHJpYnV0ZShkb21FbGVtZW50LCBcImNsYXNzXCIsIHZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInRhYkluZGV4XCI6XG4gICAgICAgICAgc2V0VmFsdWVGb3JLbm93bkF0dHJpYnV0ZShkb21FbGVtZW50LCBcInRhYmluZGV4XCIsIHZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImRpclwiOlxuICAgICAgICBjYXNlIFwicm9sZVwiOlxuICAgICAgICBjYXNlIFwidmlld0JveFwiOlxuICAgICAgICBjYXNlIFwid2lkdGhcIjpcbiAgICAgICAgY2FzZSBcImhlaWdodFwiOlxuICAgICAgICAgIHNldFZhbHVlRm9yS25vd25BdHRyaWJ1dGUoZG9tRWxlbWVudCwga2V5LCB2YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzdHlsZVwiOlxuICAgICAgICAgIHNldFZhbHVlRm9yU3R5bGVzKGRvbUVsZW1lbnQsIHZhbHVlLCBwcmV2VmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZGF0YVwiOlxuICAgICAgICAgIGlmIChcIm9iamVjdFwiICE9PSB0YWcpIHtcbiAgICAgICAgICAgIHNldFZhbHVlRm9yS25vd25BdHRyaWJ1dGUoZG9tRWxlbWVudCwgXCJkYXRhXCIsIHZhbHVlKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgY2FzZSBcInNyY1wiOlxuICAgICAgICBjYXNlIFwiaHJlZlwiOlxuICAgICAgICAgIGlmIChcIlwiID09PSB2YWx1ZSAmJiAoXCJhXCIgIT09IHRhZyB8fCBcImhyZWZcIiAhPT0ga2V5KSkge1xuICAgICAgICAgICAgXCJzcmNcIiA9PT0ga2V5XG4gICAgICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICdBbiBlbXB0eSBzdHJpbmcgKFwiXCIpIHdhcyBwYXNzZWQgdG8gdGhlICVzIGF0dHJpYnV0ZS4gVGhpcyBtYXkgY2F1c2UgdGhlIGJyb3dzZXIgdG8gZG93bmxvYWQgdGhlIHdob2xlIHBhZ2UgYWdhaW4gb3ZlciB0aGUgbmV0d29yay4gVG8gZml4IHRoaXMsIGVpdGhlciBkbyBub3QgcmVuZGVyIHRoZSBlbGVtZW50IGF0IGFsbCBvciBwYXNzIG51bGwgdG8gJXMgaW5zdGVhZCBvZiBhbiBlbXB0eSBzdHJpbmcuJyxcbiAgICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgICAgIGtleVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgOiBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgJ0FuIGVtcHR5IHN0cmluZyAoXCJcIikgd2FzIHBhc3NlZCB0byB0aGUgJXMgYXR0cmlidXRlLiBUbyBmaXggdGhpcywgZWl0aGVyIGRvIG5vdCByZW5kZXIgdGhlIGVsZW1lbnQgYXQgYWxsIG9yIHBhc3MgbnVsbCB0byAlcyBpbnN0ZWFkIG9mIGFuIGVtcHR5IHN0cmluZy4nLFxuICAgICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgICAga2V5XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgbnVsbCA9PSB2YWx1ZSB8fFxuICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdmFsdWUgfHxcbiAgICAgICAgICAgIFwic3ltYm9sXCIgPT09IHR5cGVvZiB2YWx1ZSB8fFxuICAgICAgICAgICAgXCJib29sZWFuXCIgPT09IHR5cGVvZiB2YWx1ZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZG9tRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoa2V5KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBrZXkpO1xuICAgICAgICAgIHZhbHVlID0gc2FuaXRpemVVUkwoXCJcIiArIHZhbHVlKTtcbiAgICAgICAgICBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImFjdGlvblwiOlxuICAgICAgICBjYXNlIFwiZm9ybUFjdGlvblwiOlxuICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiZcbiAgICAgICAgICAgIChcImZvcm1cIiA9PT0gdGFnXG4gICAgICAgICAgICAgID8gXCJmb3JtQWN0aW9uXCIgPT09IGtleVxuICAgICAgICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJZb3UgY2FuIG9ubHkgcGFzcyB0aGUgZm9ybUFjdGlvbiBwcm9wIHRvIDxpbnB1dD4gb3IgPGJ1dHRvbj4uIFVzZSB0aGUgYWN0aW9uIHByb3Agb24gPGZvcm0+LlwiXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgOiBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgKChudWxsID09IHByb3BzLmVuY1R5cGUgJiYgbnVsbCA9PSBwcm9wcy5tZXRob2QpIHx8XG4gICAgICAgICAgICAgICAgICAgIGRpZFdhcm5Gb3JtQWN0aW9uTWV0aG9kIHx8XG4gICAgICAgICAgICAgICAgICAgICgoZGlkV2FybkZvcm1BY3Rpb25NZXRob2QgPSAhMCksXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJDYW5ub3Qgc3BlY2lmeSBhIGVuY1R5cGUgb3IgbWV0aG9kIGZvciBhIGZvcm0gdGhhdCBzcGVjaWZpZXMgYSBmdW5jdGlvbiBhcyB0aGUgYWN0aW9uLiBSZWFjdCBwcm92aWRlcyB0aG9zZSBhdXRvbWF0aWNhbGx5LiBUaGV5IHdpbGwgZ2V0IG92ZXJyaWRkZW4uXCJcbiAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICBudWxsID09IHByb3BzLnRhcmdldCB8fFxuICAgICAgICAgICAgICAgICAgICBkaWRXYXJuRm9ybUFjdGlvblRhcmdldCB8fFxuICAgICAgICAgICAgICAgICAgICAoKGRpZFdhcm5Gb3JtQWN0aW9uVGFyZ2V0ID0gITApLFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIFwiQ2Fubm90IHNwZWNpZnkgYSB0YXJnZXQgZm9yIGEgZm9ybSB0aGF0IHNwZWNpZmllcyBhIGZ1bmN0aW9uIGFzIHRoZSBhY3Rpb24uIFRoZSBmdW5jdGlvbiB3aWxsIGFsd2F5cyBiZSBleGVjdXRlZCBpbiB0aGUgc2FtZSB3aW5kb3cuXCJcbiAgICAgICAgICAgICAgICAgICAgKSkpXG4gICAgICAgICAgICAgIDogXCJpbnB1dFwiID09PSB0YWcgfHwgXCJidXR0b25cIiA9PT0gdGFnXG4gICAgICAgICAgICAgICAgPyBcImFjdGlvblwiID09PSBrZXlcbiAgICAgICAgICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcIllvdSBjYW4gb25seSBwYXNzIHRoZSBhY3Rpb24gcHJvcCB0byA8Zm9ybT4uIFVzZSB0aGUgZm9ybUFjdGlvbiBwcm9wIG9uIDxpbnB1dD4gb3IgPGJ1dHRvbj4uXCJcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgOiBcImlucHV0XCIgIT09IHRhZyB8fFxuICAgICAgICAgICAgICAgICAgICAgIFwic3VibWl0XCIgPT09IHByb3BzLnR5cGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICBcImltYWdlXCIgPT09IHByb3BzLnR5cGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICBkaWRXYXJuRm9ybUFjdGlvblR5cGVcbiAgICAgICAgICAgICAgICAgICAgPyBcImJ1dHRvblwiICE9PSB0YWcgfHxcbiAgICAgICAgICAgICAgICAgICAgICBudWxsID09IHByb3BzLnR5cGUgfHxcbiAgICAgICAgICAgICAgICAgICAgICBcInN1Ym1pdFwiID09PSBwcm9wcy50eXBlIHx8XG4gICAgICAgICAgICAgICAgICAgICAgZGlkV2FybkZvcm1BY3Rpb25UeXBlXG4gICAgICAgICAgICAgICAgICAgICAgPyBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKG51bGwgPT0gcHJvcHMubmFtZSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRXYXJuRm9ybUFjdGlvbk5hbWUgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKChkaWRXYXJuRm9ybUFjdGlvbk5hbWUgPSAhMCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Nhbm5vdCBzcGVjaWZ5IGEgXCJuYW1lXCIgcHJvcCBmb3IgYSBidXR0b24gdGhhdCBzcGVjaWZpZXMgYSBmdW5jdGlvbiBhcyBhIGZvcm1BY3Rpb24uIFJlYWN0IG5lZWRzIGl0IHRvIGVuY29kZSB3aGljaCBhY3Rpb24gc2hvdWxkIGJlIGludm9rZWQuIEl0IHdpbGwgZ2V0IG92ZXJyaWRkZW4uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIChudWxsID09IHByb3BzLmZvcm1FbmNUeXBlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgPT0gcHJvcHMuZm9ybU1ldGhvZCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkV2FybkZvcm1BY3Rpb25NZXRob2QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKChkaWRXYXJuRm9ybUFjdGlvbk1ldGhvZCA9ICEwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIkNhbm5vdCBzcGVjaWZ5IGEgZm9ybUVuY1R5cGUgb3IgZm9ybU1ldGhvZCBmb3IgYSBidXR0b24gdGhhdCBzcGVjaWZpZXMgYSBmdW5jdGlvbiBhcyBhIGZvcm1BY3Rpb24uIFJlYWN0IHByb3ZpZGVzIHRob3NlIGF1dG9tYXRpY2FsbHkuIFRoZXkgd2lsbCBnZXQgb3ZlcnJpZGRlbi5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bGwgPT0gcHJvcHMuZm9ybVRhcmdldCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRXYXJuRm9ybUFjdGlvblRhcmdldCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGRpZFdhcm5Gb3JtQWN0aW9uVGFyZ2V0ID0gITApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQ2Fubm90IHNwZWNpZnkgYSBmb3JtVGFyZ2V0IGZvciBhIGJ1dHRvbiB0aGF0IHNwZWNpZmllcyBhIGZ1bmN0aW9uIGFzIGEgZm9ybUFjdGlvbi4gVGhlIGZ1bmN0aW9uIHdpbGwgYWx3YXlzIGJlIGV4ZWN1dGVkIGluIHRoZSBzYW1lIHdpbmRvdy5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKSlcbiAgICAgICAgICAgICAgICAgICAgICA6ICgoZGlkV2FybkZvcm1BY3Rpb25UeXBlID0gITApLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ0EgYnV0dG9uIGNhbiBvbmx5IHNwZWNpZnkgYSBmb3JtQWN0aW9uIGFsb25nIHdpdGggdHlwZT1cInN1Ym1pdFwiIG9yIG5vIHR5cGUuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICAgICAgOiAoKGRpZFdhcm5Gb3JtQWN0aW9uVHlwZSA9ICEwKSxcbiAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0FuIGlucHV0IGNhbiBvbmx5IHNwZWNpZnkgYSBmb3JtQWN0aW9uIGFsb25nIHdpdGggdHlwZT1cInN1Ym1pdFwiIG9yIHR5cGU9XCJpbWFnZVwiLidcbiAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgIDogXCJhY3Rpb25cIiA9PT0ga2V5XG4gICAgICAgICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJZb3UgY2FuIG9ubHkgcGFzcyB0aGUgYWN0aW9uIHByb3AgdG8gPGZvcm0+LlwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcIllvdSBjYW4gb25seSBwYXNzIHRoZSBmb3JtQWN0aW9uIHByb3AgdG8gPGlucHV0PiBvciA8YnV0dG9uPi5cIlxuICAgICAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICAgIGRvbUVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICBrZXksXG4gICAgICAgICAgICAgIFwiamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ0EgUmVhY3QgZm9ybSB3YXMgdW5leHBlY3RlZGx5IHN1Ym1pdHRlZC4gSWYgeW91IGNhbGxlZCBmb3JtLnN1Ym1pdCgpIG1hbnVhbGx5LCBjb25zaWRlciB1c2luZyBmb3JtLnJlcXVlc3RTdWJtaXQoKSBpbnN0ZWFkLiBJZiB5b3VcXFxcJ3JlIHRyeWluZyB0byB1c2UgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkgaW4gYSBzdWJtaXQgZXZlbnQgaGFuZGxlciwgY29uc2lkZXIgYWxzbyBjYWxsaW5nIGV2ZW50LnByZXZlbnREZWZhdWx0KCkuJylcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcHJldlZhbHVlICYmXG4gICAgICAgICAgICAgIChcImZvcm1BY3Rpb25cIiA9PT0ga2V5XG4gICAgICAgICAgICAgICAgPyAoXCJpbnB1dFwiICE9PSB0YWcgJiZcbiAgICAgICAgICAgICAgICAgICAgc2V0UHJvcChkb21FbGVtZW50LCB0YWcsIFwibmFtZVwiLCBwcm9wcy5uYW1lLCBwcm9wcywgbnVsbCksXG4gICAgICAgICAgICAgICAgICBzZXRQcm9wKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgIFwiZm9ybUVuY1R5cGVcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybUVuY1R5cGUsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICBcImZvcm1NZXRob2RcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybU1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBzZXRQcm9wKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgIFwiZm9ybVRhcmdldFwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wcy5mb3JtVGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgICAgICA6IChzZXRQcm9wKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgIFwiZW5jVHlwZVwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wcy5lbmNUeXBlLFxuICAgICAgICAgICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIHNldFByb3AoZG9tRWxlbWVudCwgdGFnLCBcIm1ldGhvZFwiLCBwcm9wcy5tZXRob2QsIHByb3BzLCBudWxsKSxcbiAgICAgICAgICAgICAgICAgIHNldFByb3AoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMudGFyZ2V0LFxuICAgICAgICAgICAgICAgICAgICBwcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgKSkpO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG51bGwgPT0gdmFsdWUgfHxcbiAgICAgICAgICAgIFwic3ltYm9sXCIgPT09IHR5cGVvZiB2YWx1ZSB8fFxuICAgICAgICAgICAgXCJib29sZWFuXCIgPT09IHR5cGVvZiB2YWx1ZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZG9tRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoa2V5KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBrZXkpO1xuICAgICAgICAgIHZhbHVlID0gc2FuaXRpemVVUkwoXCJcIiArIHZhbHVlKTtcbiAgICAgICAgICBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksIHZhbHVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm9uQ2xpY2tcIjpcbiAgICAgICAgICBudWxsICE9IHZhbHVlICYmXG4gICAgICAgICAgICAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpLFxuICAgICAgICAgICAgKGRvbUVsZW1lbnQub25jbGljayA9IG5vb3AkMSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwib25TY3JvbGxcIjpcbiAgICAgICAgICBudWxsICE9IHZhbHVlICYmXG4gICAgICAgICAgICAoXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKGtleSwgdmFsdWUpLFxuICAgICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcInNjcm9sbFwiLCBkb21FbGVtZW50KSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJvblNjcm9sbEVuZFwiOlxuICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiZcbiAgICAgICAgICAgIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgICAgICB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIoa2V5LCB2YWx1ZSksXG4gICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwic2Nyb2xsZW5kXCIsIGRvbUVsZW1lbnQpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6XG4gICAgICAgICAgaWYgKG51bGwgIT0gdmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChcIm9iamVjdFwiICE9PSB0eXBlb2YgdmFsdWUgfHwgIShcIl9faHRtbFwiIGluIHZhbHVlKSlcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgIG11c3QgYmUgaW4gdGhlIGZvcm0gYHtfX2h0bWw6IC4uLn1gLiBQbGVhc2UgdmlzaXQgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9kYW5nZXJvdXNseS1zZXQtaW5uZXItaHRtbCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAga2V5ID0gdmFsdWUuX19odG1sO1xuICAgICAgICAgICAgaWYgKG51bGwgIT0ga2V5KSB7XG4gICAgICAgICAgICAgIGlmIChudWxsICE9IHByb3BzLmNoaWxkcmVuKVxuICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgXCJDYW4gb25seSBzZXQgb25lIG9mIGBjaGlsZHJlbmAgb3IgYHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC5cIlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGRvbUVsZW1lbnQuaW5uZXJIVE1MID0ga2V5O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm11bHRpcGxlXCI6XG4gICAgICAgICAgZG9tRWxlbWVudC5tdWx0aXBsZSA9XG4gICAgICAgICAgICB2YWx1ZSAmJiBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB2YWx1ZSAmJiBcInN5bWJvbFwiICE9PSB0eXBlb2YgdmFsdWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtdXRlZFwiOlxuICAgICAgICAgIGRvbUVsZW1lbnQubXV0ZWQgPVxuICAgICAgICAgICAgdmFsdWUgJiYgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdmFsdWUgJiYgXCJzeW1ib2xcIiAhPT0gdHlwZW9mIHZhbHVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCI6XG4gICAgICAgIGNhc2UgXCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmdcIjpcbiAgICAgICAgY2FzZSBcImRlZmF1bHRWYWx1ZVwiOlxuICAgICAgICBjYXNlIFwiZGVmYXVsdENoZWNrZWRcIjpcbiAgICAgICAgY2FzZSBcImlubmVySFRNTFwiOlxuICAgICAgICBjYXNlIFwicmVmXCI6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJhdXRvRm9jdXNcIjpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInhsaW5rSHJlZlwiOlxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG51bGwgPT0gdmFsdWUgfHxcbiAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHZhbHVlIHx8XG4gICAgICAgICAgICBcImJvb2xlYW5cIiA9PT0gdHlwZW9mIHZhbHVlIHx8XG4gICAgICAgICAgICBcInN5bWJvbFwiID09PSB0eXBlb2YgdmFsdWVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFwieGxpbms6aHJlZlwiKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBrZXkpO1xuICAgICAgICAgIGtleSA9IHNhbml0aXplVVJMKFwiXCIgKyB2YWx1ZSk7XG4gICAgICAgICAgZG9tRWxlbWVudC5zZXRBdHRyaWJ1dGVOUyh4bGlua05hbWVzcGFjZSwgXCJ4bGluazpocmVmXCIsIGtleSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJjb250ZW50RWRpdGFibGVcIjpcbiAgICAgICAgY2FzZSBcInNwZWxsQ2hlY2tcIjpcbiAgICAgICAgY2FzZSBcImRyYWdnYWJsZVwiOlxuICAgICAgICBjYXNlIFwidmFsdWVcIjpcbiAgICAgICAgY2FzZSBcImF1dG9SZXZlcnNlXCI6XG4gICAgICAgIGNhc2UgXCJleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkXCI6XG4gICAgICAgIGNhc2UgXCJmb2N1c2FibGVcIjpcbiAgICAgICAgY2FzZSBcInByZXNlcnZlQWxwaGFcIjpcbiAgICAgICAgICBudWxsICE9IHZhbHVlICYmXG4gICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICBcInN5bWJvbFwiICE9PSB0eXBlb2YgdmFsdWVcbiAgICAgICAgICAgID8gKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIGtleSksXG4gICAgICAgICAgICAgIGRvbUVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwgXCJcIiArIHZhbHVlKSlcbiAgICAgICAgICAgIDogZG9tRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoa2V5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImluZXJ0XCI6XG4gICAgICAgICAgXCJcIiAhPT0gdmFsdWUgfHxcbiAgICAgICAgICAgIGRpZFdhcm5Gb3JOZXdCb29sZWFuUHJvcHNXaXRoRW1wdHlWYWx1ZVtrZXldIHx8XG4gICAgICAgICAgICAoKGRpZFdhcm5Gb3JOZXdCb29sZWFuUHJvcHNXaXRoRW1wdHlWYWx1ZVtrZXldID0gITApLFxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWNlaXZlZCBhbiBlbXB0eSBzdHJpbmcgZm9yIGEgYm9vbGVhbiBhdHRyaWJ1dGUgYCVzYC4gVGhpcyB3aWxsIHRyZWF0IHRoZSBhdHRyaWJ1dGUgYXMgaWYgaXQgd2VyZSBmYWxzZS4gRWl0aGVyIHBhc3MgYGZhbHNlYCB0byBzaWxlbmNlIHRoaXMgd2FybmluZywgb3IgcGFzcyBgdHJ1ZWAgaWYgeW91IHVzZWQgYW4gZW1wdHkgc3RyaW5nIGluIGVhcmxpZXIgdmVyc2lvbnMgb2YgUmVhY3QgdG8gaW5kaWNhdGUgdGhpcyBhdHRyaWJ1dGUgaXMgdHJ1ZS5cIixcbiAgICAgICAgICAgICAga2V5XG4gICAgICAgICAgICApKTtcbiAgICAgICAgY2FzZSBcImFsbG93RnVsbFNjcmVlblwiOlxuICAgICAgICBjYXNlIFwiYXN5bmNcIjpcbiAgICAgICAgY2FzZSBcImF1dG9QbGF5XCI6XG4gICAgICAgIGNhc2UgXCJjb250cm9sc1wiOlxuICAgICAgICBjYXNlIFwiZGVmYXVsdFwiOlxuICAgICAgICBjYXNlIFwiZGVmZXJcIjpcbiAgICAgICAgY2FzZSBcImRpc2FibGVkXCI6XG4gICAgICAgIGNhc2UgXCJkaXNhYmxlUGljdHVyZUluUGljdHVyZVwiOlxuICAgICAgICBjYXNlIFwiZGlzYWJsZVJlbW90ZVBsYXliYWNrXCI6XG4gICAgICAgIGNhc2UgXCJmb3JtTm9WYWxpZGF0ZVwiOlxuICAgICAgICBjYXNlIFwiaGlkZGVuXCI6XG4gICAgICAgIGNhc2UgXCJsb29wXCI6XG4gICAgICAgIGNhc2UgXCJub01vZHVsZVwiOlxuICAgICAgICBjYXNlIFwibm9WYWxpZGF0ZVwiOlxuICAgICAgICBjYXNlIFwib3BlblwiOlxuICAgICAgICBjYXNlIFwicGxheXNJbmxpbmVcIjpcbiAgICAgICAgY2FzZSBcInJlYWRPbmx5XCI6XG4gICAgICAgIGNhc2UgXCJyZXF1aXJlZFwiOlxuICAgICAgICBjYXNlIFwicmV2ZXJzZWRcIjpcbiAgICAgICAgY2FzZSBcInNjb3BlZFwiOlxuICAgICAgICBjYXNlIFwic2VhbWxlc3NcIjpcbiAgICAgICAgY2FzZSBcIml0ZW1TY29wZVwiOlxuICAgICAgICAgIHZhbHVlICYmIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHZhbHVlICYmIFwic3ltYm9sXCIgIT09IHR5cGVvZiB2YWx1ZVxuICAgICAgICAgICAgPyBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksIFwiXCIpXG4gICAgICAgICAgICA6IGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJjYXB0dXJlXCI6XG4gICAgICAgIGNhc2UgXCJkb3dubG9hZFwiOlxuICAgICAgICAgICEwID09PSB2YWx1ZVxuICAgICAgICAgICAgPyBkb21FbGVtZW50LnNldEF0dHJpYnV0ZShrZXksIFwiXCIpXG4gICAgICAgICAgICA6ICExICE9PSB2YWx1ZSAmJlxuICAgICAgICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiZcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgICAgICAgIFwic3ltYm9sXCIgIT09IHR5cGVvZiB2YWx1ZVxuICAgICAgICAgICAgICA/IChjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBrZXkpLFxuICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpKVxuICAgICAgICAgICAgICA6IGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJjb2xzXCI6XG4gICAgICAgIGNhc2UgXCJyb3dzXCI6XG4gICAgICAgIGNhc2UgXCJzaXplXCI6XG4gICAgICAgIGNhc2UgXCJzcGFuXCI6XG4gICAgICAgICAgbnVsbCAhPSB2YWx1ZSAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHZhbHVlICYmXG4gICAgICAgICAgXCJzeW1ib2xcIiAhPT0gdHlwZW9mIHZhbHVlICYmXG4gICAgICAgICAgIWlzTmFOKHZhbHVlKSAmJlxuICAgICAgICAgIDEgPD0gdmFsdWVcbiAgICAgICAgICAgID8gKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIGtleSksXG4gICAgICAgICAgICAgIGRvbUVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwgdmFsdWUpKVxuICAgICAgICAgICAgOiBkb21FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZShrZXkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicm93U3BhblwiOlxuICAgICAgICBjYXNlIFwic3RhcnRcIjpcbiAgICAgICAgICBudWxsID09IHZhbHVlIHx8XG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdmFsdWUgfHxcbiAgICAgICAgICBcInN5bWJvbFwiID09PSB0eXBlb2YgdmFsdWUgfHxcbiAgICAgICAgICBpc05hTih2YWx1ZSlcbiAgICAgICAgICAgID8gZG9tRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoa2V5KVxuICAgICAgICAgICAgOiAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwga2V5KSxcbiAgICAgICAgICAgICAgZG9tRWxlbWVudC5zZXRBdHRyaWJ1dGUoa2V5LCB2YWx1ZSkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicG9wb3ZlclwiOlxuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJiZWZvcmV0b2dnbGVcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcInRvZ2dsZVwiLCBkb21FbGVtZW50KTtcbiAgICAgICAgICBzZXRWYWx1ZUZvckF0dHJpYnV0ZShkb21FbGVtZW50LCBcInBvcG92ZXJcIiwgdmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwieGxpbmtBY3R1YXRlXCI6XG4gICAgICAgICAgc2V0VmFsdWVGb3JOYW1lc3BhY2VkQXR0cmlidXRlKFxuICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgIHhsaW5rTmFtZXNwYWNlLFxuICAgICAgICAgICAgXCJ4bGluazphY3R1YXRlXCIsXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ4bGlua0FyY3JvbGVcIjpcbiAgICAgICAgICBzZXRWYWx1ZUZvck5hbWVzcGFjZWRBdHRyaWJ1dGUoXG4gICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgeGxpbmtOYW1lc3BhY2UsXG4gICAgICAgICAgICBcInhsaW5rOmFyY3JvbGVcIixcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInhsaW5rUm9sZVwiOlxuICAgICAgICAgIHNldFZhbHVlRm9yTmFtZXNwYWNlZEF0dHJpYnV0ZShcbiAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICB4bGlua05hbWVzcGFjZSxcbiAgICAgICAgICAgIFwieGxpbms6cm9sZVwiLFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwieGxpbmtTaG93XCI6XG4gICAgICAgICAgc2V0VmFsdWVGb3JOYW1lc3BhY2VkQXR0cmlidXRlKFxuICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgIHhsaW5rTmFtZXNwYWNlLFxuICAgICAgICAgICAgXCJ4bGluazpzaG93XCIsXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ4bGlua1RpdGxlXCI6XG4gICAgICAgICAgc2V0VmFsdWVGb3JOYW1lc3BhY2VkQXR0cmlidXRlKFxuICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgIHhsaW5rTmFtZXNwYWNlLFxuICAgICAgICAgICAgXCJ4bGluazp0aXRsZVwiLFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwieGxpbmtUeXBlXCI6XG4gICAgICAgICAgc2V0VmFsdWVGb3JOYW1lc3BhY2VkQXR0cmlidXRlKFxuICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgIHhsaW5rTmFtZXNwYWNlLFxuICAgICAgICAgICAgXCJ4bGluazp0eXBlXCIsXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ4bWxCYXNlXCI6XG4gICAgICAgICAgc2V0VmFsdWVGb3JOYW1lc3BhY2VkQXR0cmlidXRlKFxuICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgIHhtbE5hbWVzcGFjZSxcbiAgICAgICAgICAgIFwieG1sOmJhc2VcIixcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInhtbExhbmdcIjpcbiAgICAgICAgICBzZXRWYWx1ZUZvck5hbWVzcGFjZWRBdHRyaWJ1dGUoXG4gICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlLFxuICAgICAgICAgICAgXCJ4bWw6bGFuZ1wiLFxuICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwieG1sU3BhY2VcIjpcbiAgICAgICAgICBzZXRWYWx1ZUZvck5hbWVzcGFjZWRBdHRyaWJ1dGUoXG4gICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgeG1sTmFtZXNwYWNlLFxuICAgICAgICAgICAgXCJ4bWw6c3BhY2VcIixcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImlzXCI6XG4gICAgICAgICAgbnVsbCAhPSBwcmV2VmFsdWUgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICdDYW5ub3QgdXBkYXRlIHRoZSBcImlzXCIgcHJvcCBhZnRlciBpdCBoYXMgYmVlbiBpbml0aWFsaXplZC4nXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHNldFZhbHVlRm9yQXR0cmlidXRlKGRvbUVsZW1lbnQsIFwiaXNcIiwgdmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaW5uZXJUZXh0XCI6XG4gICAgICAgIGNhc2UgXCJ0ZXh0Q29udGVudFwiOlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicG9wb3ZlclRhcmdldFwiOlxuICAgICAgICAgIGRpZFdhcm5Qb3BvdmVyVGFyZ2V0T2JqZWN0IHx8XG4gICAgICAgICAgICBudWxsID09IHZhbHVlIHx8XG4gICAgICAgICAgICBcIm9iamVjdFwiICE9PSB0eXBlb2YgdmFsdWUgfHxcbiAgICAgICAgICAgICgoZGlkV2FyblBvcG92ZXJUYXJnZXRPYmplY3QgPSAhMCksXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlRoZSBgcG9wb3ZlclRhcmdldGAgcHJvcCBleHBlY3RzIHRoZSBJRCBvZiBhbiBFbGVtZW50IGFzIGEgc3RyaW5nLiBSZWNlaXZlZCAlcyBpbnN0ZWFkLlwiLFxuICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgKSk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgISgyIDwga2V5Lmxlbmd0aCkgfHxcbiAgICAgICAgICAoXCJvXCIgIT09IGtleVswXSAmJiBcIk9cIiAhPT0ga2V5WzBdKSB8fFxuICAgICAgICAgIChcIm5cIiAhPT0ga2V5WzFdICYmIFwiTlwiICE9PSBrZXlbMV0pXG4gICAgICAgICAgICA/ICgoa2V5ID0gZ2V0QXR0cmlidXRlQWxpYXMoa2V5KSksXG4gICAgICAgICAgICAgIHNldFZhbHVlRm9yQXR0cmlidXRlKGRvbUVsZW1lbnQsIGtleSwgdmFsdWUpKVxuICAgICAgICAgICAgOiByZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KGtleSkgJiZcbiAgICAgICAgICAgICAgbnVsbCAhPSB2YWx1ZSAmJlxuICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgICAgICB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldFByb3BPbkN1c3RvbUVsZW1lbnQoXG4gICAgICBkb21FbGVtZW50LFxuICAgICAgdGFnLFxuICAgICAga2V5LFxuICAgICAgdmFsdWUsXG4gICAgICBwcm9wcyxcbiAgICAgIHByZXZWYWx1ZVxuICAgICkge1xuICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgY2FzZSBcInN0eWxlXCI6XG4gICAgICAgICAgc2V0VmFsdWVGb3JTdHlsZXMoZG9tRWxlbWVudCwgdmFsdWUsIHByZXZWYWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOlxuICAgICAgICAgIGlmIChudWxsICE9IHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoXCJvYmplY3RcIiAhPT0gdHlwZW9mIHZhbHVlIHx8ICEoXCJfX2h0bWxcIiBpbiB2YWx1ZSkpXG4gICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgIFwiYHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYCBtdXN0IGJlIGluIHRoZSBmb3JtIGB7X19odG1sOiAuLi59YC4gUGxlYXNlIHZpc2l0IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvZGFuZ2Vyb3VzbHktc2V0LWlubmVyLWh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uXCJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGtleSA9IHZhbHVlLl9faHRtbDtcbiAgICAgICAgICAgIGlmIChudWxsICE9IGtleSkge1xuICAgICAgICAgICAgICBpZiAobnVsbCAhPSBwcm9wcy5jaGlsZHJlbilcbiAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgIFwiQ2FuIG9ubHkgc2V0IG9uZSBvZiBgY2hpbGRyZW5gIG9yIGBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTGAuXCJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBkb21FbGVtZW50LmlubmVySFRNTCA9IGtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJjaGlsZHJlblwiOlxuICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiB2YWx1ZVxuICAgICAgICAgICAgPyBzZXRUZXh0Q29udGVudChkb21FbGVtZW50LCB2YWx1ZSlcbiAgICAgICAgICAgIDogKFwibnVtYmVyXCIgPT09IHR5cGVvZiB2YWx1ZSB8fCBcImJpZ2ludFwiID09PSB0eXBlb2YgdmFsdWUpICYmXG4gICAgICAgICAgICAgIHNldFRleHRDb250ZW50KGRvbUVsZW1lbnQsIFwiXCIgKyB2YWx1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJvblNjcm9sbFwiOlxuICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiZcbiAgICAgICAgICAgIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgICAgICB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIoa2V5LCB2YWx1ZSksXG4gICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwic2Nyb2xsXCIsIGRvbUVsZW1lbnQpKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm9uU2Nyb2xsRW5kXCI6XG4gICAgICAgICAgbnVsbCAhPSB2YWx1ZSAmJlxuICAgICAgICAgICAgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHZhbHVlICYmXG4gICAgICAgICAgICAgIHdhcm5Gb3JJbnZhbGlkRXZlbnRMaXN0ZW5lcihrZXksIHZhbHVlKSxcbiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJzY3JvbGxlbmRcIiwgZG9tRWxlbWVudCkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwib25DbGlja1wiOlxuICAgICAgICAgIG51bGwgIT0gdmFsdWUgJiZcbiAgICAgICAgICAgIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgICAgICB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIoa2V5LCB2YWx1ZSksXG4gICAgICAgICAgICAoZG9tRWxlbWVudC5vbmNsaWNrID0gbm9vcCQxKSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIjpcbiAgICAgICAgY2FzZSBcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiOlxuICAgICAgICBjYXNlIFwiaW5uZXJIVE1MXCI6XG4gICAgICAgIGNhc2UgXCJyZWZcIjpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImlubmVyVGV4dFwiOlxuICAgICAgICBjYXNlIFwidGV4dENvbnRlbnRcIjpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAocmVnaXN0cmF0aW9uTmFtZURlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShrZXkpKVxuICAgICAgICAgICAgbnVsbCAhPSB2YWx1ZSAmJlxuICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiB2YWx1ZSAmJlxuICAgICAgICAgICAgICB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgYToge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgXCJvXCIgPT09IGtleVswXSAmJlxuICAgICAgICAgICAgICAgIFwiblwiID09PSBrZXlbMV0gJiZcbiAgICAgICAgICAgICAgICAoKHByb3BzID0ga2V5LmVuZHNXaXRoKFwiQ2FwdHVyZVwiKSksXG4gICAgICAgICAgICAgICAgKHRhZyA9IGtleS5zbGljZSgyLCBwcm9wcyA/IGtleS5sZW5ndGggLSA3IDogdm9pZCAwKSksXG4gICAgICAgICAgICAgICAgKHByZXZWYWx1ZSA9IGRvbUVsZW1lbnRbaW50ZXJuYWxQcm9wc0tleV0gfHwgbnVsbCksXG4gICAgICAgICAgICAgICAgKHByZXZWYWx1ZSA9IG51bGwgIT0gcHJldlZhbHVlID8gcHJldlZhbHVlW2tleV0gOiBudWxsKSxcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwcmV2VmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0YWcsIHByZXZWYWx1ZSwgcHJvcHMpLFxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHZhbHVlKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBwcmV2VmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgIG51bGwgIT09IHByZXZWYWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgKGtleSBpbiBkb21FbGVtZW50XG4gICAgICAgICAgICAgICAgICAgID8gKGRvbUVsZW1lbnRba2V5XSA9IG51bGwpXG4gICAgICAgICAgICAgICAgICAgIDogZG9tRWxlbWVudC5oYXNBdHRyaWJ1dGUoa2V5KSAmJlxuICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGtleSkpO1xuICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcih0YWcsIHZhbHVlLCBwcm9wcyk7XG4gICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBrZXkgaW4gZG9tRWxlbWVudFxuICAgICAgICAgICAgICAgID8gKGRvbUVsZW1lbnRba2V5XSA9IHZhbHVlKVxuICAgICAgICAgICAgICAgIDogITAgPT09IHZhbHVlXG4gICAgICAgICAgICAgICAgICA/IGRvbUVsZW1lbnQuc2V0QXR0cmlidXRlKGtleSwgXCJcIilcbiAgICAgICAgICAgICAgICAgIDogc2V0VmFsdWVGb3JBdHRyaWJ1dGUoZG9tRWxlbWVudCwga2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNldEluaXRpYWxQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHRhZywgcHJvcHMpIHtcbiAgICAgIHZhbGlkYXRlUHJvcGVydGllc0luRGV2ZWxvcG1lbnQodGFnLCBwcm9wcyk7XG4gICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICBjYXNlIFwiZGl2XCI6XG4gICAgICAgIGNhc2UgXCJzcGFuXCI6XG4gICAgICAgIGNhc2UgXCJzdmdcIjpcbiAgICAgICAgY2FzZSBcInBhdGhcIjpcbiAgICAgICAgY2FzZSBcImFcIjpcbiAgICAgICAgY2FzZSBcImdcIjpcbiAgICAgICAgY2FzZSBcInBcIjpcbiAgICAgICAgY2FzZSBcImxpXCI6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpbWdcIjpcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiZXJyb3JcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImxvYWRcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgdmFyIGhhc1NyYyA9ICExLFxuICAgICAgICAgICAgaGFzU3JjU2V0ID0gITEsXG4gICAgICAgICAgICBwcm9wS2V5O1xuICAgICAgICAgIGZvciAocHJvcEtleSBpbiBwcm9wcylcbiAgICAgICAgICAgIGlmIChwcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSkge1xuICAgICAgICAgICAgICB2YXIgcHJvcFZhbHVlID0gcHJvcHNbcHJvcEtleV07XG4gICAgICAgICAgICAgIGlmIChudWxsICE9IHByb3BWYWx1ZSlcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHByb3BLZXkpIHtcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJzcmNcIjpcbiAgICAgICAgICAgICAgICAgICAgaGFzU3JjID0gITA7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcInNyY1NldFwiOlxuICAgICAgICAgICAgICAgICAgICBoYXNTcmNTZXQgPSAhMDtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwiY2hpbGRyZW5cIjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICB0YWcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCIgaXMgYSB2b2lkIGVsZW1lbnQgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciB1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC5cIlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgc2V0UHJvcChkb21FbGVtZW50LCB0YWcsIHByb3BLZXksIHByb3BWYWx1ZSwgcHJvcHMsIG51bGwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBoYXNTcmNTZXQgJiZcbiAgICAgICAgICAgIHNldFByb3AoZG9tRWxlbWVudCwgdGFnLCBcInNyY1NldFwiLCBwcm9wcy5zcmNTZXQsIHByb3BzLCBudWxsKTtcbiAgICAgICAgICBoYXNTcmMgJiYgc2V0UHJvcChkb21FbGVtZW50LCB0YWcsIFwic3JjXCIsIHByb3BzLnNyYywgcHJvcHMsIG51bGwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBcImlucHV0XCI6XG4gICAgICAgICAgY2hlY2tDb250cm9sbGVkVmFsdWVQcm9wcyhcImlucHV0XCIsIHByb3BzKTtcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiaW52YWxpZFwiLCBkb21FbGVtZW50KTtcbiAgICAgICAgICB2YXIgZGVmYXVsdFZhbHVlID0gKHByb3BLZXkgPSBwcm9wVmFsdWUgPSBoYXNTcmNTZXQgPSBudWxsKSxcbiAgICAgICAgICAgIGNoZWNrZWQgPSBudWxsLFxuICAgICAgICAgICAgZGVmYXVsdENoZWNrZWQgPSBudWxsO1xuICAgICAgICAgIGZvciAoaGFzU3JjIGluIHByb3BzKVxuICAgICAgICAgICAgaWYgKHByb3BzLmhhc093blByb3BlcnR5KGhhc1NyYykpIHtcbiAgICAgICAgICAgICAgdmFyIF9wcm9wVmFsdWUgPSBwcm9wc1toYXNTcmNdO1xuICAgICAgICAgICAgICBpZiAobnVsbCAhPSBfcHJvcFZhbHVlKVxuICAgICAgICAgICAgICAgIHN3aXRjaCAoaGFzU3JjKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwibmFtZVwiOlxuICAgICAgICAgICAgICAgICAgICBoYXNTcmNTZXQgPSBfcHJvcFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgICAgIHByb3BWYWx1ZSA9IF9wcm9wVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcImNoZWNrZWRcIjpcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tlZCA9IF9wcm9wVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRDaGVja2VkXCI6XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkID0gX3Byb3BWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwidmFsdWVcIjpcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSA9IF9wcm9wVmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRWYWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSBfcHJvcFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJjaGlsZHJlblwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6XG4gICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9IF9wcm9wVmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBpcyBhIHZvaWQgZWxlbWVudCB0YWcgYW5kIG11c3QgbmVpdGhlciBoYXZlIGBjaGlsZHJlbmAgbm9yIHVzZSBgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLlwiXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgaGFzU3JjLCBfcHJvcFZhbHVlLCBwcm9wcywgbnVsbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIHZhbGlkYXRlSW5wdXRQcm9wcyhkb21FbGVtZW50LCBwcm9wcyk7XG4gICAgICAgICAgaW5pdElucHV0KFxuICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICBjaGVja2VkLFxuICAgICAgICAgICAgZGVmYXVsdENoZWNrZWQsXG4gICAgICAgICAgICBwcm9wVmFsdWUsXG4gICAgICAgICAgICBoYXNTcmNTZXQsXG4gICAgICAgICAgICAhMVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIFwic2VsZWN0XCI6XG4gICAgICAgICAgY2hlY2tDb250cm9sbGVkVmFsdWVQcm9wcyhcInNlbGVjdFwiLCBwcm9wcyk7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImludmFsaWRcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgaGFzU3JjID0gcHJvcFZhbHVlID0gcHJvcEtleSA9IG51bGw7XG4gICAgICAgICAgZm9yIChoYXNTcmNTZXQgaW4gcHJvcHMpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHByb3BzLmhhc093blByb3BlcnR5KGhhc1NyY1NldCkgJiZcbiAgICAgICAgICAgICAgKChkZWZhdWx0VmFsdWUgPSBwcm9wc1toYXNTcmNTZXRdKSwgbnVsbCAhPSBkZWZhdWx0VmFsdWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHN3aXRjaCAoaGFzU3JjU2V0KSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBwcm9wS2V5ID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRWYWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgcHJvcFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIm11bHRpcGxlXCI6XG4gICAgICAgICAgICAgICAgICBoYXNTcmMgPSBkZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIHNldFByb3AoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICAgICAgaGFzU3JjU2V0LFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzLFxuICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgdmFsaWRhdGVTZWxlY3RQcm9wcyhkb21FbGVtZW50LCBwcm9wcyk7XG4gICAgICAgICAgdGFnID0gcHJvcEtleTtcbiAgICAgICAgICBwcm9wcyA9IHByb3BWYWx1ZTtcbiAgICAgICAgICBkb21FbGVtZW50Lm11bHRpcGxlID0gISFoYXNTcmM7XG4gICAgICAgICAgbnVsbCAhPSB0YWdcbiAgICAgICAgICAgID8gdXBkYXRlT3B0aW9ucyhkb21FbGVtZW50LCAhIWhhc1NyYywgdGFnLCAhMSlcbiAgICAgICAgICAgIDogbnVsbCAhPSBwcm9wcyAmJiB1cGRhdGVPcHRpb25zKGRvbUVsZW1lbnQsICEhaGFzU3JjLCBwcm9wcywgITApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBcInRleHRhcmVhXCI6XG4gICAgICAgICAgY2hlY2tDb250cm9sbGVkVmFsdWVQcm9wcyhcInRleHRhcmVhXCIsIHByb3BzKTtcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiaW52YWxpZFwiLCBkb21FbGVtZW50KTtcbiAgICAgICAgICBwcm9wS2V5ID0gaGFzU3JjU2V0ID0gaGFzU3JjID0gbnVsbDtcbiAgICAgICAgICBmb3IgKHByb3BWYWx1ZSBpbiBwcm9wcylcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgcHJvcHMuaGFzT3duUHJvcGVydHkocHJvcFZhbHVlKSAmJlxuICAgICAgICAgICAgICAoKGRlZmF1bHRWYWx1ZSA9IHByb3BzW3Byb3BWYWx1ZV0pLCBudWxsICE9IGRlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgc3dpdGNoIChwcm9wVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwidmFsdWVcIjpcbiAgICAgICAgICAgICAgICAgIGhhc1NyYyA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJkZWZhdWx0VmFsdWVcIjpcbiAgICAgICAgICAgICAgICAgIGhhc1NyY1NldCA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjaGlsZHJlblwiOlxuICAgICAgICAgICAgICAgICAgcHJvcEtleSA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOlxuICAgICAgICAgICAgICAgICAgaWYgKG51bGwgIT0gZGVmYXVsdFZhbHVlKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcImBkYW5nZXJvdXNseVNldElubmVySFRNTGAgZG9lcyBub3QgbWFrZSBzZW5zZSBvbiA8dGV4dGFyZWE+LlwiXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICBwcm9wVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB2YWxpZGF0ZVRleHRhcmVhUHJvcHMoZG9tRWxlbWVudCwgcHJvcHMpO1xuICAgICAgICAgIGluaXRUZXh0YXJlYShkb21FbGVtZW50LCBoYXNTcmMsIGhhc1NyY1NldCwgcHJvcEtleSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIFwib3B0aW9uXCI6XG4gICAgICAgICAgdmFsaWRhdGVPcHRpb25Qcm9wcyhkb21FbGVtZW50LCBwcm9wcyk7XG4gICAgICAgICAgZm9yIChjaGVja2VkIGluIHByb3BzKVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBwcm9wcy5oYXNPd25Qcm9wZXJ0eShjaGVja2VkKSAmJlxuICAgICAgICAgICAgICAoKGhhc1NyYyA9IHByb3BzW2NoZWNrZWRdKSwgbnVsbCAhPSBoYXNTcmMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHN3aXRjaCAoY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJzZWxlY3RlZFwiOlxuICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudC5zZWxlY3RlZCA9XG4gICAgICAgICAgICAgICAgICAgIGhhc1NyYyAmJlxuICAgICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBoYXNTcmMgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJzeW1ib2xcIiAhPT0gdHlwZW9mIGhhc1NyYztcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgY2hlY2tlZCwgaGFzU3JjLCBwcm9wcywgbnVsbCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNhc2UgXCJkaWFsb2dcIjpcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiYmVmb3JldG9nZ2xlXCIsIGRvbUVsZW1lbnQpO1xuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJ0b2dnbGVcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImNhbmNlbFwiLCBkb21FbGVtZW50KTtcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiY2xvc2VcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpZnJhbWVcIjpcbiAgICAgICAgY2FzZSBcIm9iamVjdFwiOlxuICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQoXCJsb2FkXCIsIGRvbUVsZW1lbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwidmlkZW9cIjpcbiAgICAgICAgY2FzZSBcImF1ZGlvXCI6XG4gICAgICAgICAgZm9yIChoYXNTcmMgPSAwOyBoYXNTcmMgPCBtZWRpYUV2ZW50VHlwZXMubGVuZ3RoOyBoYXNTcmMrKylcbiAgICAgICAgICAgIGxpc3RlblRvTm9uRGVsZWdhdGVkRXZlbnQobWVkaWFFdmVudFR5cGVzW2hhc1NyY10sIGRvbUVsZW1lbnQpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiaW1hZ2VcIjpcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiZXJyb3JcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcImxvYWRcIiwgZG9tRWxlbWVudCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkZXRhaWxzXCI6XG4gICAgICAgICAgbGlzdGVuVG9Ob25EZWxlZ2F0ZWRFdmVudChcInRvZ2dsZVwiLCBkb21FbGVtZW50KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImVtYmVkXCI6XG4gICAgICAgIGNhc2UgXCJzb3VyY2VcIjpcbiAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwiZXJyb3JcIiwgZG9tRWxlbWVudCksXG4gICAgICAgICAgICBsaXN0ZW5Ub05vbkRlbGVnYXRlZEV2ZW50KFwibG9hZFwiLCBkb21FbGVtZW50KTtcbiAgICAgICAgY2FzZSBcImFyZWFcIjpcbiAgICAgICAgY2FzZSBcImJhc2VcIjpcbiAgICAgICAgY2FzZSBcImJyXCI6XG4gICAgICAgIGNhc2UgXCJjb2xcIjpcbiAgICAgICAgY2FzZSBcImhyXCI6XG4gICAgICAgIGNhc2UgXCJrZXlnZW5cIjpcbiAgICAgICAgY2FzZSBcIm1ldGFcIjpcbiAgICAgICAgY2FzZSBcInBhcmFtXCI6XG4gICAgICAgIGNhc2UgXCJ0cmFja1wiOlxuICAgICAgICBjYXNlIFwid2JyXCI6XG4gICAgICAgIGNhc2UgXCJtZW51aXRlbVwiOlxuICAgICAgICAgIGZvciAoZGVmYXVsdENoZWNrZWQgaW4gcHJvcHMpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHByb3BzLmhhc093blByb3BlcnR5KGRlZmF1bHRDaGVja2VkKSAmJlxuICAgICAgICAgICAgICAoKGhhc1NyYyA9IHByb3BzW2RlZmF1bHRDaGVja2VkXSksIG51bGwgIT0gaGFzU3JjKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBzd2l0Y2ggKGRlZmF1bHRDaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNoaWxkcmVuXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6XG4gICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgdGFnICtcbiAgICAgICAgICAgICAgICAgICAgICBcIiBpcyBhIHZvaWQgZWxlbWVudCB0YWcgYW5kIG11c3QgbmVpdGhlciBoYXZlIGBjaGlsZHJlbmAgbm9yIHVzZSBgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxgLlwiXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgZGVmYXVsdENoZWNrZWQsIGhhc1NyYywgcHJvcHMsIG51bGwpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmIChpc0N1c3RvbUVsZW1lbnQodGFnKSkge1xuICAgICAgICAgICAgZm9yIChfcHJvcFZhbHVlIGluIHByb3BzKVxuICAgICAgICAgICAgICBwcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcFZhbHVlKSAmJlxuICAgICAgICAgICAgICAgICgoaGFzU3JjID0gcHJvcHNbX3Byb3BWYWx1ZV0pLFxuICAgICAgICAgICAgICAgIHZvaWQgMCAhPT0gaGFzU3JjICYmXG4gICAgICAgICAgICAgICAgICBzZXRQcm9wT25DdXN0b21FbGVtZW50KFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgIF9wcm9wVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGhhc1NyYyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIHZvaWQgMFxuICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yIChkZWZhdWx0VmFsdWUgaW4gcHJvcHMpXG4gICAgICAgIHByb3BzLmhhc093blByb3BlcnR5KGRlZmF1bHRWYWx1ZSkgJiZcbiAgICAgICAgICAoKGhhc1NyYyA9IHByb3BzW2RlZmF1bHRWYWx1ZV0pLFxuICAgICAgICAgIG51bGwgIT0gaGFzU3JjICYmXG4gICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgZGVmYXVsdFZhbHVlLCBoYXNTcmMsIHByb3BzLCBudWxsKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVwZGF0ZVByb3BlcnRpZXMoZG9tRWxlbWVudCwgdGFnLCBsYXN0UHJvcHMsIG5leHRQcm9wcykge1xuICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzSW5EZXZlbG9wbWVudCh0YWcsIG5leHRQcm9wcyk7XG4gICAgICBzd2l0Y2ggKHRhZykge1xuICAgICAgICBjYXNlIFwiZGl2XCI6XG4gICAgICAgIGNhc2UgXCJzcGFuXCI6XG4gICAgICAgIGNhc2UgXCJzdmdcIjpcbiAgICAgICAgY2FzZSBcInBhdGhcIjpcbiAgICAgICAgY2FzZSBcImFcIjpcbiAgICAgICAgY2FzZSBcImdcIjpcbiAgICAgICAgY2FzZSBcInBcIjpcbiAgICAgICAgY2FzZSBcImxpXCI6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJpbnB1dFwiOlxuICAgICAgICAgIHZhciBuYW1lID0gbnVsbCxcbiAgICAgICAgICAgIHR5cGUgPSBudWxsLFxuICAgICAgICAgICAgdmFsdWUgPSBudWxsLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlID0gbnVsbCxcbiAgICAgICAgICAgIGxhc3REZWZhdWx0VmFsdWUgPSBudWxsLFxuICAgICAgICAgICAgY2hlY2tlZCA9IG51bGwsXG4gICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZCA9IG51bGw7XG4gICAgICAgICAgZm9yIChwcm9wS2V5IGluIGxhc3RQcm9wcykge1xuICAgICAgICAgICAgdmFyIGxhc3RQcm9wID0gbGFzdFByb3BzW3Byb3BLZXldO1xuICAgICAgICAgICAgaWYgKGxhc3RQcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSAmJiBudWxsICE9IGxhc3RQcm9wKVxuICAgICAgICAgICAgICBzd2l0Y2ggKHByb3BLZXkpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiY2hlY2tlZFwiOlxuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGVmYXVsdFZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBsYXN0RGVmYXVsdFZhbHVlID0gbGFzdFByb3A7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShwcm9wS2V5KSB8fFxuICAgICAgICAgICAgICAgICAgICBzZXRQcm9wKFxuICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgbGFzdFByb3BcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBmb3IgKHZhciBfcHJvcEtleTggaW4gbmV4dFByb3BzKSB7XG4gICAgICAgICAgICB2YXIgcHJvcEtleSA9IG5leHRQcm9wc1tfcHJvcEtleThdO1xuICAgICAgICAgICAgbGFzdFByb3AgPSBsYXN0UHJvcHNbX3Byb3BLZXk4XTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgbmV4dFByb3BzLmhhc093blByb3BlcnR5KF9wcm9wS2V5OCkgJiZcbiAgICAgICAgICAgICAgKG51bGwgIT0gcHJvcEtleSB8fCBudWxsICE9IGxhc3RQcm9wKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBzd2l0Y2ggKF9wcm9wS2V5OCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgICB0eXBlID0gcHJvcEtleTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJuYW1lXCI6XG4gICAgICAgICAgICAgICAgICBuYW1lID0gcHJvcEtleTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjaGVja2VkXCI6XG4gICAgICAgICAgICAgICAgICBjaGVja2VkID0gcHJvcEtleTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJkZWZhdWx0Q2hlY2tlZFwiOlxuICAgICAgICAgICAgICAgICAgZGVmYXVsdENoZWNrZWQgPSBwcm9wS2V5O1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICB2YWx1ZSA9IHByb3BLZXk7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGVmYXVsdFZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSBwcm9wS2V5O1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNoaWxkcmVuXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCI6XG4gICAgICAgICAgICAgICAgICBpZiAobnVsbCAhPSBwcm9wS2V5KVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICB0YWcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCIgaXMgYSB2b2lkIGVsZW1lbnQgdGFnIGFuZCBtdXN0IG5laXRoZXIgaGF2ZSBgY2hpbGRyZW5gIG5vciB1c2UgYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYC5cIlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIHByb3BLZXkgIT09IGxhc3RQcm9wICYmXG4gICAgICAgICAgICAgICAgICAgIHNldFByb3AoXG4gICAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgICAgX3Byb3BLZXk4LFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgIGxhc3RQcm9wXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGFnID1cbiAgICAgICAgICAgIFwiY2hlY2tib3hcIiA9PT0gbGFzdFByb3BzLnR5cGUgfHwgXCJyYWRpb1wiID09PSBsYXN0UHJvcHMudHlwZVxuICAgICAgICAgICAgICA/IG51bGwgIT0gbGFzdFByb3BzLmNoZWNrZWRcbiAgICAgICAgICAgICAgOiBudWxsICE9IGxhc3RQcm9wcy52YWx1ZTtcbiAgICAgICAgICBuZXh0UHJvcHMgPVxuICAgICAgICAgICAgXCJjaGVja2JveFwiID09PSBuZXh0UHJvcHMudHlwZSB8fCBcInJhZGlvXCIgPT09IG5leHRQcm9wcy50eXBlXG4gICAgICAgICAgICAgID8gbnVsbCAhPSBuZXh0UHJvcHMuY2hlY2tlZFxuICAgICAgICAgICAgICA6IG51bGwgIT0gbmV4dFByb3BzLnZhbHVlO1xuICAgICAgICAgIHRhZyB8fFxuICAgICAgICAgICAgIW5leHRQcm9wcyB8fFxuICAgICAgICAgICAgZGlkV2FyblVuY29udHJvbGxlZFRvQ29udHJvbGxlZCB8fFxuICAgICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiQSBjb21wb25lbnQgaXMgY2hhbmdpbmcgYW4gdW5jb250cm9sbGVkIGlucHV0IHRvIGJlIGNvbnRyb2xsZWQuIFRoaXMgaXMgbGlrZWx5IGNhdXNlZCBieSB0aGUgdmFsdWUgY2hhbmdpbmcgZnJvbSB1bmRlZmluZWQgdG8gYSBkZWZpbmVkIHZhbHVlLCB3aGljaCBzaG91bGQgbm90IGhhcHBlbi4gRGVjaWRlIGJldHdlZW4gdXNpbmcgYSBjb250cm9sbGVkIG9yIHVuY29udHJvbGxlZCBpbnB1dCBlbGVtZW50IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGNvbXBvbmVudC4gTW9yZSBpbmZvOiBodHRwczovL3JlYWN0LmRldi9saW5rL2NvbnRyb2xsZWQtY29tcG9uZW50c1wiXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgKGRpZFdhcm5VbmNvbnRyb2xsZWRUb0NvbnRyb2xsZWQgPSAhMCkpO1xuICAgICAgICAgICF0YWcgfHxcbiAgICAgICAgICAgIG5leHRQcm9wcyB8fFxuICAgICAgICAgICAgZGlkV2FybkNvbnRyb2xsZWRUb1VuY29udHJvbGxlZCB8fFxuICAgICAgICAgICAgKGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiQSBjb21wb25lbnQgaXMgY2hhbmdpbmcgYSBjb250cm9sbGVkIGlucHV0IHRvIGJlIHVuY29udHJvbGxlZC4gVGhpcyBpcyBsaWtlbHkgY2F1c2VkIGJ5IHRoZSB2YWx1ZSBjaGFuZ2luZyBmcm9tIGEgZGVmaW5lZCB0byB1bmRlZmluZWQsIHdoaWNoIHNob3VsZCBub3QgaGFwcGVuLiBEZWNpZGUgYmV0d2VlbiB1c2luZyBhIGNvbnRyb2xsZWQgb3IgdW5jb250cm9sbGVkIGlucHV0IGVsZW1lbnQgZm9yIHRoZSBsaWZldGltZSBvZiB0aGUgY29tcG9uZW50LiBNb3JlIGluZm86IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvY29udHJvbGxlZC1jb21wb25lbnRzXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICAoZGlkV2FybkNvbnRyb2xsZWRUb1VuY29udHJvbGxlZCA9ICEwKSk7XG4gICAgICAgICAgdXBkYXRlSW5wdXQoXG4gICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICBsYXN0RGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgY2hlY2tlZCxcbiAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkLFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBcInNlbGVjdFwiOlxuICAgICAgICAgIHByb3BLZXkgPSB2YWx1ZSA9IGRlZmF1bHRWYWx1ZSA9IF9wcm9wS2V5OCA9IG51bGw7XG4gICAgICAgICAgZm9yICh0eXBlIGluIGxhc3RQcm9wcylcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKChsYXN0RGVmYXVsdFZhbHVlID0gbGFzdFByb3BzW3R5cGVdKSxcbiAgICAgICAgICAgICAgbGFzdFByb3BzLmhhc093blByb3BlcnR5KHR5cGUpICYmIG51bGwgIT0gbGFzdERlZmF1bHRWYWx1ZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwibXVsdGlwbGVcIjpcbiAgICAgICAgICAgICAgICAgIHByb3BLZXkgPSBsYXN0RGVmYXVsdFZhbHVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkodHlwZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgIGxhc3REZWZhdWx0VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIGZvciAobmFtZSBpbiBuZXh0UHJvcHMpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICgodHlwZSA9IG5leHRQcm9wc1tuYW1lXSksXG4gICAgICAgICAgICAgIChsYXN0RGVmYXVsdFZhbHVlID0gbGFzdFByb3BzW25hbWVdKSxcbiAgICAgICAgICAgICAgbmV4dFByb3BzLmhhc093blByb3BlcnR5KG5hbWUpICYmXG4gICAgICAgICAgICAgICAgKG51bGwgIT0gdHlwZSB8fCBudWxsICE9IGxhc3REZWZhdWx0VmFsdWUpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwidmFsdWVcIjpcbiAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OCA9IHR5cGU7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGVmYXVsdFZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0eXBlO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIm11bHRpcGxlXCI6XG4gICAgICAgICAgICAgICAgICB2YWx1ZSA9IHR5cGU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgIHR5cGUgIT09IGxhc3REZWZhdWx0VmFsdWUgJiZcbiAgICAgICAgICAgICAgICAgICAgc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgIGxhc3REZWZhdWx0VmFsdWVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIG5leHRQcm9wcyA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICB0YWcgPSB2YWx1ZTtcbiAgICAgICAgICBsYXN0UHJvcHMgPSBwcm9wS2V5O1xuICAgICAgICAgIG51bGwgIT0gX3Byb3BLZXk4XG4gICAgICAgICAgICA/IHVwZGF0ZU9wdGlvbnMoZG9tRWxlbWVudCwgISF0YWcsIF9wcm9wS2V5OCwgITEpXG4gICAgICAgICAgICA6ICEhbGFzdFByb3BzICE9PSAhIXRhZyAmJlxuICAgICAgICAgICAgICAobnVsbCAhPSBuZXh0UHJvcHNcbiAgICAgICAgICAgICAgICA/IHVwZGF0ZU9wdGlvbnMoZG9tRWxlbWVudCwgISF0YWcsIG5leHRQcm9wcywgITApXG4gICAgICAgICAgICAgICAgOiB1cGRhdGVPcHRpb25zKGRvbUVsZW1lbnQsICEhdGFnLCB0YWcgPyBbXSA6IFwiXCIsICExKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIFwidGV4dGFyZWFcIjpcbiAgICAgICAgICBwcm9wS2V5ID0gX3Byb3BLZXk4ID0gbnVsbDtcbiAgICAgICAgICBmb3IgKGRlZmF1bHRWYWx1ZSBpbiBsYXN0UHJvcHMpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICgobmFtZSA9IGxhc3RQcm9wc1tkZWZhdWx0VmFsdWVdKSxcbiAgICAgICAgICAgICAgbGFzdFByb3BzLmhhc093blByb3BlcnR5KGRlZmF1bHRWYWx1ZSkgJiZcbiAgICAgICAgICAgICAgICBudWxsICE9IG5hbWUgJiZcbiAgICAgICAgICAgICAgICAhbmV4dFByb3BzLmhhc093blByb3BlcnR5KGRlZmF1bHRWYWx1ZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHN3aXRjaCAoZGVmYXVsdFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiY2hpbGRyZW5cIjpcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBzZXRQcm9wKGRvbUVsZW1lbnQsIHRhZywgZGVmYXVsdFZhbHVlLCBudWxsLCBuZXh0UHJvcHMsIG5hbWUpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgZm9yICh2YWx1ZSBpbiBuZXh0UHJvcHMpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICgobmFtZSA9IG5leHRQcm9wc1t2YWx1ZV0pLFxuICAgICAgICAgICAgICAodHlwZSA9IGxhc3RQcm9wc1t2YWx1ZV0pLFxuICAgICAgICAgICAgICBuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkodmFsdWUpICYmIChudWxsICE9IG5hbWUgfHwgbnVsbCAhPSB0eXBlKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ2YWx1ZVwiOlxuICAgICAgICAgICAgICAgICAgX3Byb3BLZXk4ID0gbmFtZTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJkZWZhdWx0VmFsdWVcIjpcbiAgICAgICAgICAgICAgICAgIHByb3BLZXkgPSBuYW1lO1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNoaWxkcmVuXCI6XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjpcbiAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9IG5hbWUpXG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgIFwiYGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MYCBkb2VzIG5vdCBtYWtlIHNlbnNlIG9uIDx0ZXh0YXJlYT4uXCJcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBuYW1lICE9PSB0eXBlICYmXG4gICAgICAgICAgICAgICAgICAgIHNldFByb3AoZG9tRWxlbWVudCwgdGFnLCB2YWx1ZSwgbmFtZSwgbmV4dFByb3BzLCB0eXBlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIHVwZGF0ZVRleHRhcmVhKGRvbUVsZW1lbnQsIF9wcm9wS2V5OCwgcHJvcEtleSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYXNlIFwib3B0aW9uXCI6XG4gICAgICAgICAgZm9yICh2YXIgX3Byb3BLZXkxMyBpbiBsYXN0UHJvcHMpXG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICgoX3Byb3BLZXk4ID0gbGFzdFByb3BzW19wcm9wS2V5MTNdKSxcbiAgICAgICAgICAgICAgbGFzdFByb3BzLmhhc093blByb3BlcnR5KF9wcm9wS2V5MTMpICYmXG4gICAgICAgICAgICAgICAgbnVsbCAhPSBfcHJvcEtleTggJiZcbiAgICAgICAgICAgICAgICAhbmV4dFByb3BzLmhhc093blByb3BlcnR5KF9wcm9wS2V5MTMpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBzd2l0Y2ggKF9wcm9wS2V5MTMpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwic2VsZWN0ZWRcIjpcbiAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQuc2VsZWN0ZWQgPSAhMTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBzZXRQcm9wKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5MTMsXG4gICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgX3Byb3BLZXk4XG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChsYXN0RGVmYXVsdFZhbHVlIGluIG5leHRQcm9wcylcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKChfcHJvcEtleTggPSBuZXh0UHJvcHNbbGFzdERlZmF1bHRWYWx1ZV0pLFxuICAgICAgICAgICAgICAocHJvcEtleSA9IGxhc3RQcm9wc1tsYXN0RGVmYXVsdFZhbHVlXSksXG4gICAgICAgICAgICAgIG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShsYXN0RGVmYXVsdFZhbHVlKSAmJlxuICAgICAgICAgICAgICAgIF9wcm9wS2V5OCAhPT0gcHJvcEtleSAmJlxuICAgICAgICAgICAgICAgIChudWxsICE9IF9wcm9wS2V5OCB8fCBudWxsICE9IHByb3BLZXkpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBzd2l0Y2ggKGxhc3REZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwic2VsZWN0ZWRcIjpcbiAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQuc2VsZWN0ZWQgPVxuICAgICAgICAgICAgICAgICAgICBfcHJvcEtleTggJiZcbiAgICAgICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgX3Byb3BLZXk4ICYmXG4gICAgICAgICAgICAgICAgICAgIFwic3ltYm9sXCIgIT09IHR5cGVvZiBfcHJvcEtleTg7XG4gICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICBsYXN0RGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBfcHJvcEtleTgsXG4gICAgICAgICAgICAgICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY2FzZSBcImltZ1wiOlxuICAgICAgICBjYXNlIFwibGlua1wiOlxuICAgICAgICBjYXNlIFwiYXJlYVwiOlxuICAgICAgICBjYXNlIFwiYmFzZVwiOlxuICAgICAgICBjYXNlIFwiYnJcIjpcbiAgICAgICAgY2FzZSBcImNvbFwiOlxuICAgICAgICBjYXNlIFwiZW1iZWRcIjpcbiAgICAgICAgY2FzZSBcImhyXCI6XG4gICAgICAgIGNhc2UgXCJrZXlnZW5cIjpcbiAgICAgICAgY2FzZSBcIm1ldGFcIjpcbiAgICAgICAgY2FzZSBcInBhcmFtXCI6XG4gICAgICAgIGNhc2UgXCJzb3VyY2VcIjpcbiAgICAgICAgY2FzZSBcInRyYWNrXCI6XG4gICAgICAgIGNhc2UgXCJ3YnJcIjpcbiAgICAgICAgY2FzZSBcIm1lbnVpdGVtXCI6XG4gICAgICAgICAgZm9yICh2YXIgX3Byb3BLZXkxNSBpbiBsYXN0UHJvcHMpXG4gICAgICAgICAgICAoX3Byb3BLZXk4ID0gbGFzdFByb3BzW19wcm9wS2V5MTVdKSxcbiAgICAgICAgICAgICAgbGFzdFByb3BzLmhhc093blByb3BlcnR5KF9wcm9wS2V5MTUpICYmXG4gICAgICAgICAgICAgICAgbnVsbCAhPSBfcHJvcEtleTggJiZcbiAgICAgICAgICAgICAgICAhbmV4dFByb3BzLmhhc093blByb3BlcnR5KF9wcm9wS2V5MTUpICYmXG4gICAgICAgICAgICAgICAgc2V0UHJvcChcbiAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICBfcHJvcEtleTE1LFxuICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgIG5leHRQcm9wcyxcbiAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgZm9yIChjaGVja2VkIGluIG5leHRQcm9wcylcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKChfcHJvcEtleTggPSBuZXh0UHJvcHNbY2hlY2tlZF0pLFxuICAgICAgICAgICAgICAocHJvcEtleSA9IGxhc3RQcm9wc1tjaGVja2VkXSksXG4gICAgICAgICAgICAgIG5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShjaGVja2VkKSAmJlxuICAgICAgICAgICAgICAgIF9wcm9wS2V5OCAhPT0gcHJvcEtleSAmJlxuICAgICAgICAgICAgICAgIChudWxsICE9IF9wcm9wS2V5OCB8fCBudWxsICE9IHByb3BLZXkpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBzd2l0Y2ggKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiY2hpbGRyZW5cIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjpcbiAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9IF9wcm9wS2V5OClcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgdGFnICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiIGlzIGEgdm9pZCBlbGVtZW50IHRhZyBhbmQgbXVzdCBuZWl0aGVyIGhhdmUgYGNoaWxkcmVuYCBub3IgdXNlIGBkYW5nZXJvdXNseVNldElubmVySFRNTGAuXCJcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBzZXRQcm9wKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0YWcsXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrZWQsXG4gICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OCxcbiAgICAgICAgICAgICAgICAgICAgbmV4dFByb3BzLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5XG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGlmIChpc0N1c3RvbUVsZW1lbnQodGFnKSkge1xuICAgICAgICAgICAgZm9yICh2YXIgX3Byb3BLZXkxNyBpbiBsYXN0UHJvcHMpXG4gICAgICAgICAgICAgIChfcHJvcEtleTggPSBsYXN0UHJvcHNbX3Byb3BLZXkxN10pLFxuICAgICAgICAgICAgICAgIGxhc3RQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcEtleTE3KSAmJlxuICAgICAgICAgICAgICAgICAgdm9pZCAwICE9PSBfcHJvcEtleTggJiZcbiAgICAgICAgICAgICAgICAgICFuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkoX3Byb3BLZXkxNykgJiZcbiAgICAgICAgICAgICAgICAgIHNldFByb3BPbkN1c3RvbUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHRhZyxcbiAgICAgICAgICAgICAgICAgICAgX3Byb3BLZXkxNyxcbiAgICAgICAgICAgICAgICAgICAgdm9pZCAwLFxuICAgICAgICAgICAgICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIF9wcm9wS2V5OFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGZvciAoZGVmYXVsdENoZWNrZWQgaW4gbmV4dFByb3BzKVxuICAgICAgICAgICAgICAoX3Byb3BLZXk4ID0gbmV4dFByb3BzW2RlZmF1bHRDaGVja2VkXSksXG4gICAgICAgICAgICAgICAgKHByb3BLZXkgPSBsYXN0UHJvcHNbZGVmYXVsdENoZWNrZWRdKSxcbiAgICAgICAgICAgICAgICAhbmV4dFByb3BzLmhhc093blByb3BlcnR5KGRlZmF1bHRDaGVja2VkKSB8fFxuICAgICAgICAgICAgICAgICAgX3Byb3BLZXk4ID09PSBwcm9wS2V5IHx8XG4gICAgICAgICAgICAgICAgICAodm9pZCAwID09PSBfcHJvcEtleTggJiYgdm9pZCAwID09PSBwcm9wS2V5KSB8fFxuICAgICAgICAgICAgICAgICAgc2V0UHJvcE9uQ3VzdG9tRWxlbWVudChcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGFnLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZCxcbiAgICAgICAgICAgICAgICAgICAgX3Byb3BLZXk4LFxuICAgICAgICAgICAgICAgICAgICBuZXh0UHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXlcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgICAgZm9yICh2YXIgX3Byb3BLZXkxOSBpbiBsYXN0UHJvcHMpXG4gICAgICAgIChfcHJvcEtleTggPSBsYXN0UHJvcHNbX3Byb3BLZXkxOV0pLFxuICAgICAgICAgIGxhc3RQcm9wcy5oYXNPd25Qcm9wZXJ0eShfcHJvcEtleTE5KSAmJlxuICAgICAgICAgICAgbnVsbCAhPSBfcHJvcEtleTggJiZcbiAgICAgICAgICAgICFuZXh0UHJvcHMuaGFzT3duUHJvcGVydHkoX3Byb3BLZXkxOSkgJiZcbiAgICAgICAgICAgIHNldFByb3AoZG9tRWxlbWVudCwgdGFnLCBfcHJvcEtleTE5LCBudWxsLCBuZXh0UHJvcHMsIF9wcm9wS2V5OCk7XG4gICAgICBmb3IgKGxhc3RQcm9wIGluIG5leHRQcm9wcylcbiAgICAgICAgKF9wcm9wS2V5OCA9IG5leHRQcm9wc1tsYXN0UHJvcF0pLFxuICAgICAgICAgIChwcm9wS2V5ID0gbGFzdFByb3BzW2xhc3RQcm9wXSksXG4gICAgICAgICAgIW5leHRQcm9wcy5oYXNPd25Qcm9wZXJ0eShsYXN0UHJvcCkgfHxcbiAgICAgICAgICAgIF9wcm9wS2V5OCA9PT0gcHJvcEtleSB8fFxuICAgICAgICAgICAgKG51bGwgPT0gX3Byb3BLZXk4ICYmIG51bGwgPT0gcHJvcEtleSkgfHxcbiAgICAgICAgICAgIHNldFByb3AoZG9tRWxlbWVudCwgdGFnLCBsYXN0UHJvcCwgX3Byb3BLZXk4LCBuZXh0UHJvcHMsIHByb3BLZXkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRQcm9wTmFtZUZyb21BdHRyaWJ1dGVOYW1lKGF0dHJOYW1lKSB7XG4gICAgICBzd2l0Y2ggKGF0dHJOYW1lKSB7XG4gICAgICAgIGNhc2UgXCJjbGFzc1wiOlxuICAgICAgICAgIHJldHVybiBcImNsYXNzTmFtZVwiO1xuICAgICAgICBjYXNlIFwiZm9yXCI6XG4gICAgICAgICAgcmV0dXJuIFwiaHRtbEZvclwiO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBhdHRyTmFtZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U3R5bGVzT2JqZWN0RnJvbUVsZW1lbnQoZG9tRWxlbWVudCkge1xuICAgICAgdmFyIHNlcnZlclZhbHVlSW5PYmplY3RGb3JtID0ge307XG4gICAgICBkb21FbGVtZW50ID0gZG9tRWxlbWVudC5zdHlsZTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZG9tRWxlbWVudC5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgc3R5bGVOYW1lID0gZG9tRWxlbWVudFtpXTtcbiAgICAgICAgc2VydmVyVmFsdWVJbk9iamVjdEZvcm1bc3R5bGVOYW1lXSA9XG4gICAgICAgICAgZG9tRWxlbWVudC5nZXRQcm9wZXJ0eVZhbHVlKHN0eWxlTmFtZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gc2VydmVyVmFsdWVJbk9iamVjdEZvcm07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRpZmZIeWRyYXRlZFN0eWxlcyhkb21FbGVtZW50LCB2YWx1ZSRqc2NvbXAkMCwgc2VydmVyRGlmZmVyZW5jZXMpIHtcbiAgICAgIGlmIChudWxsICE9IHZhbHVlJGpzY29tcCQwICYmIFwib2JqZWN0XCIgIT09IHR5cGVvZiB2YWx1ZSRqc2NvbXAkMClcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlRoZSBgc3R5bGVgIHByb3AgZXhwZWN0cyBhIG1hcHBpbmcgZnJvbSBzdHlsZSBwcm9wZXJ0aWVzIHRvIHZhbHVlcywgbm90IGEgc3RyaW5nLiBGb3IgZXhhbXBsZSwgc3R5bGU9e3ttYXJnaW5SaWdodDogc3BhY2luZyArICdlbSd9fSB3aGVuIHVzaW5nIEpTWC5cIlxuICAgICAgICApO1xuICAgICAgZWxzZSB7XG4gICAgICAgIHZhciBjbGllbnRWYWx1ZTtcbiAgICAgICAgdmFyIGRlbGltaXRlciA9IChjbGllbnRWYWx1ZSA9IFwiXCIpLFxuICAgICAgICAgIHN0eWxlTmFtZTtcbiAgICAgICAgZm9yIChzdHlsZU5hbWUgaW4gdmFsdWUkanNjb21wJDApXG4gICAgICAgICAgaWYgKHZhbHVlJGpzY29tcCQwLmhhc093blByb3BlcnR5KHN0eWxlTmFtZSkpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IHZhbHVlJGpzY29tcCQwW3N0eWxlTmFtZV07XG4gICAgICAgICAgICBudWxsICE9IHZhbHVlICYmXG4gICAgICAgICAgICAgIFwiYm9vbGVhblwiICE9PSB0eXBlb2YgdmFsdWUgJiZcbiAgICAgICAgICAgICAgXCJcIiAhPT0gdmFsdWUgJiZcbiAgICAgICAgICAgICAgKDAgPT09IHN0eWxlTmFtZS5pbmRleE9mKFwiLS1cIilcbiAgICAgICAgICAgICAgICA/IChjaGVja0NTU1Byb3BlcnR5U3RyaW5nQ29lcmNpb24odmFsdWUsIHN0eWxlTmFtZSksXG4gICAgICAgICAgICAgICAgICAoY2xpZW50VmFsdWUgKz1cbiAgICAgICAgICAgICAgICAgICAgZGVsaW1pdGVyICsgc3R5bGVOYW1lICsgXCI6XCIgKyAoXCJcIiArIHZhbHVlKS50cmltKCkpKVxuICAgICAgICAgICAgICAgIDogXCJudW1iZXJcIiAhPT0gdHlwZW9mIHZhbHVlIHx8XG4gICAgICAgICAgICAgICAgICAgIDAgPT09IHZhbHVlIHx8XG4gICAgICAgICAgICAgICAgICAgIHVuaXRsZXNzTnVtYmVycy5oYXMoc3R5bGVOYW1lKVxuICAgICAgICAgICAgICAgICAgPyAoY2hlY2tDU1NQcm9wZXJ0eVN0cmluZ0NvZXJjaW9uKHZhbHVlLCBzdHlsZU5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAoY2xpZW50VmFsdWUgKz1cbiAgICAgICAgICAgICAgICAgICAgICBkZWxpbWl0ZXIgK1xuICAgICAgICAgICAgICAgICAgICAgIHN0eWxlTmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UodXBwZXJjYXNlUGF0dGVybiwgXCItJDFcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShtc1BhdHRlcm4kMSwgXCItbXMtXCIpICtcbiAgICAgICAgICAgICAgICAgICAgICBcIjpcIiArXG4gICAgICAgICAgICAgICAgICAgICAgKFwiXCIgKyB2YWx1ZSkudHJpbSgpKSlcbiAgICAgICAgICAgICAgICAgIDogKGNsaWVudFZhbHVlICs9XG4gICAgICAgICAgICAgICAgICAgICAgZGVsaW1pdGVyICtcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZU5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlKHVwcGVyY2FzZVBhdHRlcm4sIFwiLSQxXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UobXNQYXR0ZXJuJDEsIFwiLW1zLVwiKSArXG4gICAgICAgICAgICAgICAgICAgICAgXCI6XCIgK1xuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICtcbiAgICAgICAgICAgICAgICAgICAgICBcInB4XCIpLFxuICAgICAgICAgICAgICAoZGVsaW1pdGVyID0gXCI7XCIpKTtcbiAgICAgICAgICB9XG4gICAgICAgIGNsaWVudFZhbHVlID0gY2xpZW50VmFsdWUgfHwgbnVsbDtcbiAgICAgICAgdmFsdWUkanNjb21wJDAgPSBkb21FbGVtZW50LmdldEF0dHJpYnV0ZShcInN0eWxlXCIpO1xuICAgICAgICB2YWx1ZSRqc2NvbXAkMCAhPT0gY2xpZW50VmFsdWUgJiZcbiAgICAgICAgICAoKGNsaWVudFZhbHVlID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKGNsaWVudFZhbHVlKSksXG4gICAgICAgICAgbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKHZhbHVlJGpzY29tcCQwKSAhPT0gY2xpZW50VmFsdWUgJiZcbiAgICAgICAgICAgIChzZXJ2ZXJEaWZmZXJlbmNlcy5zdHlsZSA9IGdldFN0eWxlc09iamVjdEZyb21FbGVtZW50KGRvbUVsZW1lbnQpKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGh5ZHJhdGVBdHRyaWJ1dGUoXG4gICAgICBkb21FbGVtZW50LFxuICAgICAgcHJvcEtleSxcbiAgICAgIGF0dHJpYnV0ZU5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgKSB7XG4gICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgZG9tRWxlbWVudCA9IGRvbUVsZW1lbnQuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgaWYgKG51bGwgPT09IGRvbUVsZW1lbnQpXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgY2FzZSBcInVuZGVmaW5lZFwiOlxuICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICBlbHNlIGlmIChudWxsICE9IHZhbHVlKVxuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIHByb3BLZXkpLFxuICAgICAgICAgICAgICBkb21FbGVtZW50ID09PSBcIlwiICsgdmFsdWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKHByb3BLZXksIGRvbUVsZW1lbnQsIHZhbHVlLCBzZXJ2ZXJEaWZmZXJlbmNlcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGh5ZHJhdGVCb29sZWFuQXR0cmlidXRlKFxuICAgICAgZG9tRWxlbWVudCxcbiAgICAgIHByb3BLZXksXG4gICAgICBhdHRyaWJ1dGVOYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICkge1xuICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgIGRvbUVsZW1lbnQgPSBkb21FbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgIGlmIChudWxsID09PSBkb21FbGVtZW50KSB7XG4gICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICAgIH0gZWxzZVxuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBpZiAodmFsdWUpIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKHByb3BLZXksIGRvbUVsZW1lbnQsIHZhbHVlLCBzZXJ2ZXJEaWZmZXJlbmNlcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGh5ZHJhdGVCb29sZWFuaXNoQXR0cmlidXRlKFxuICAgICAgZG9tRWxlbWVudCxcbiAgICAgIHByb3BLZXksXG4gICAgICBhdHRyaWJ1dGVOYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICkge1xuICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgIGRvbUVsZW1lbnQgPSBkb21FbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgIGlmIChudWxsID09PSBkb21FbGVtZW50KVxuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCJ1bmRlZmluZWRcIjpcbiAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIGVsc2UgaWYgKG51bGwgIT0gdmFsdWUpXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24odmFsdWUsIGF0dHJpYnV0ZU5hbWUpLFxuICAgICAgICAgICAgICBkb21FbGVtZW50ID09PSBcIlwiICsgdmFsdWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKHByb3BLZXksIGRvbUVsZW1lbnQsIHZhbHVlLCBzZXJ2ZXJEaWZmZXJlbmNlcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGh5ZHJhdGVOdW1lcmljQXR0cmlidXRlKFxuICAgICAgZG9tRWxlbWVudCxcbiAgICAgIHByb3BLZXksXG4gICAgICBhdHRyaWJ1dGVOYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICkge1xuICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgIGRvbUVsZW1lbnQgPSBkb21FbGVtZW50LmdldEF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lKTtcbiAgICAgIGlmIChudWxsID09PSBkb21FbGVtZW50KVxuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCJ1bmRlZmluZWRcIjpcbiAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICBjYXNlIFwic3ltYm9sXCI6XG4gICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKGlzTmFOKHZhbHVlKSkgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICBlbHNlIGlmIChudWxsICE9IHZhbHVlKVxuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkge1xuICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgIWlzTmFOKHZhbHVlKSAmJlxuICAgICAgICAgICAgICAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgcHJvcEtleSksXG4gICAgICAgICAgICAgIGRvbUVsZW1lbnQgPT09IFwiXCIgKyB2YWx1ZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UocHJvcEtleSwgZG9tRWxlbWVudCwgdmFsdWUsIHNlcnZlckRpZmZlcmVuY2VzKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaHlkcmF0ZVNhbml0aXplZEF0dHJpYnV0ZShcbiAgICAgIGRvbUVsZW1lbnQsXG4gICAgICBwcm9wS2V5LFxuICAgICAgYXR0cmlidXRlTmFtZSxcbiAgICAgIHZhbHVlLFxuICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICApIHtcbiAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICBkb21FbGVtZW50ID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICBpZiAobnVsbCA9PT0gZG9tRWxlbWVudClcbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgICAgICBjYXNlIFwidW5kZWZpbmVkXCI6XG4gICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIGVsc2UgaWYgKG51bGwgIT0gdmFsdWUpXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7XG4gICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbih2YWx1ZSwgcHJvcEtleSksXG4gICAgICAgICAgICAgIChhdHRyaWJ1dGVOYW1lID0gc2FuaXRpemVVUkwoXCJcIiArIHZhbHVlKSksXG4gICAgICAgICAgICAgIGRvbUVsZW1lbnQgPT09IGF0dHJpYnV0ZU5hbWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKHByb3BLZXksIGRvbUVsZW1lbnQsIHZhbHVlLCBzZXJ2ZXJEaWZmZXJlbmNlcyk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGRpZmZIeWRyYXRlZFByb3BlcnRpZXMoZG9tRWxlbWVudCwgdGFnLCBwcm9wcywgaG9zdENvbnRleHQpIHtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciBzZXJ2ZXJEaWZmZXJlbmNlcyA9IHt9LFxuICAgICAgICAgIGV4dHJhQXR0cmlidXRlcyA9IG5ldyBTZXQoKSxcbiAgICAgICAgICBhdHRyaWJ1dGVzID0gZG9tRWxlbWVudC5hdHRyaWJ1dGVzLFxuICAgICAgICAgIGkgPSAwO1xuICAgICAgICBpIDwgYXR0cmlidXRlcy5sZW5ndGg7XG4gICAgICAgIGkrK1xuICAgICAgKVxuICAgICAgICBzd2l0Y2ggKGF0dHJpYnV0ZXNbaV0ubmFtZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiY2hlY2tlZFwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcInNlbGVjdGVkXCI6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmFkZChhdHRyaWJ1dGVzW2ldLm5hbWUpO1xuICAgICAgICB9XG4gICAgICBpZiAoaXNDdXN0b21FbGVtZW50KHRhZykpXG4gICAgICAgIGZvciAodmFyIHByb3BLZXkgaW4gcHJvcHMpIHtcbiAgICAgICAgICBpZiAocHJvcHMuaGFzT3duUHJvcGVydHkocHJvcEtleSkpIHtcbiAgICAgICAgICAgIHZhciB2YWx1ZSA9IHByb3BzW3Byb3BLZXldO1xuICAgICAgICAgICAgaWYgKG51bGwgIT0gdmFsdWUpXG4gICAgICAgICAgICAgIGlmIChyZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzLmhhc093blByb3BlcnR5KHByb3BLZXkpKVxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHZhbHVlICYmXG4gICAgICAgICAgICAgICAgICB3YXJuRm9ySW52YWxpZEV2ZW50TGlzdGVuZXIocHJvcEtleSwgdmFsdWUpO1xuICAgICAgICAgICAgICBlbHNlIGlmICghMCAhPT0gcHJvcHMuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nKVxuICAgICAgICAgICAgICAgIHN3aXRjaCAocHJvcEtleSkge1xuICAgICAgICAgICAgICAgICAgY2FzZSBcImNoaWxkcmVuXCI6XG4gICAgICAgICAgICAgICAgICAgIChcInN0cmluZ1wiICE9PSB0eXBlb2YgdmFsdWUgJiYgXCJudW1iZXJcIiAhPT0gdHlwZW9mIHZhbHVlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiY2hpbGRyZW5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQudGV4dENvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwic3VwcHJlc3NDb250ZW50RWRpdGFibGVXYXJuaW5nXCI6XG4gICAgICAgICAgICAgICAgICBjYXNlIFwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCI6XG4gICAgICAgICAgICAgICAgICBjYXNlIFwiZGVmYXVsdFZhbHVlXCI6XG4gICAgICAgICAgICAgICAgICBjYXNlIFwiZGVmYXVsdENoZWNrZWRcIjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJpbm5lckhUTUxcIjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJyZWZcIjpcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIjpcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGRvbUVsZW1lbnQuaW5uZXJIVE1MO1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlID8gdmFsdWUuX19odG1sIDogdm9pZCAwO1xuICAgICAgICAgICAgICAgICAgICBudWxsICE9IHZhbHVlICYmXG4gICAgICAgICAgICAgICAgICAgICAgKCh2YWx1ZSA9IG5vcm1hbGl6ZUhUTUwoZG9tRWxlbWVudCwgdmFsdWUpKSxcbiAgICAgICAgICAgICAgICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwic3R5bGVcIjpcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShwcm9wS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgZGlmZkh5ZHJhdGVkU3R5bGVzKGRvbUVsZW1lbnQsIHZhbHVlLCBzZXJ2ZXJEaWZmZXJlbmNlcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcIm9mZnNldFBhcmVudFwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcIm9mZnNldFRvcFwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcIm9mZnNldExlZnRcIjpcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJvZmZzZXRXaWR0aFwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcIm9mZnNldEhlaWdodFwiOlxuICAgICAgICAgICAgICAgICAgY2FzZSBcImlzQ29udGVudEVkaXRhYmxlXCI6XG4gICAgICAgICAgICAgICAgICBjYXNlIFwib3V0ZXJUZXh0XCI6XG4gICAgICAgICAgICAgICAgICBjYXNlIFwib3V0ZXJIVE1MXCI6XG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUocHJvcEtleS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcIkFzc2lnbm1lbnQgdG8gcmVhZC1vbmx5IHByb3BlcnR5IHdpbGwgcmVzdWx0IGluIGEgbm8tb3A6IGAlc2BcIixcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcImNsYXNzTmFtZVwiOlxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKFwiY2xhc3NcIik7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBnZXRWYWx1ZUZvckF0dHJpYnV0ZU9uQ3VzdG9tQ29tcG9uZW50KFxuICAgICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgXCJjbGFzc1wiLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgICBcImNsYXNzTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBob3N0Q29udGV4dC5jb250ZXh0ID09PSBIb3N0Q29udGV4dE5hbWVzcGFjZU5vbmUgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJzdmdcIiAhPT0gdGFnICYmXG4gICAgICAgICAgICAgICAgICAgIFwibWF0aFwiICE9PSB0YWdcbiAgICAgICAgICAgICAgICAgICAgICA/IGV4dHJhQXR0cmlidXRlcy5kZWxldGUocHJvcEtleS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICAgICAgIDogZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShwcm9wS2V5KSxcbiAgICAgICAgICAgICAgICAgICAgICAoYXR0cmlidXRlcyA9IGdldFZhbHVlRm9yQXR0cmlidXRlT25DdXN0b21Db21wb25lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBlbHNlXG4gICAgICAgIGZvciAodmFsdWUgaW4gcHJvcHMpXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgcHJvcHMuaGFzT3duUHJvcGVydHkodmFsdWUpICYmXG4gICAgICAgICAgICAoKHByb3BLZXkgPSBwcm9wc1t2YWx1ZV0pLCBudWxsICE9IHByb3BLZXkpXG4gICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbk5hbWVEZXBlbmRlbmNpZXMuaGFzT3duUHJvcGVydHkodmFsdWUpKVxuICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBwcm9wS2V5ICYmXG4gICAgICAgICAgICAgICAgd2FybkZvckludmFsaWRFdmVudExpc3RlbmVyKHZhbHVlLCBwcm9wS2V5KTtcbiAgICAgICAgICAgIGVsc2UgaWYgKCEwICE9PSBwcm9wcy5zdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmcpXG4gICAgICAgICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiY2hpbGRyZW5cIjpcbiAgICAgICAgICAgICAgICAgIChcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcEtleSAmJlxuICAgICAgICAgICAgICAgICAgICBcIm51bWJlclwiICE9PSB0eXBlb2YgcHJvcEtleSkgfHxcbiAgICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgICAgIFwiY2hpbGRyZW5cIixcbiAgICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LnRleHRDb250ZW50LFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwic3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInZhbHVlXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImNoZWNrZWRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwic2VsZWN0ZWRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGVmYXVsdFZhbHVlXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRDaGVja2VkXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImlubmVySFRNTFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJyZWZcIjpcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJkYW5nZXJvdXNseVNldElubmVySFRNTFwiOlxuICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGRvbUVsZW1lbnQuaW5uZXJIVE1MO1xuICAgICAgICAgICAgICAgICAgcHJvcEtleSA9IHByb3BLZXkgPyBwcm9wS2V5Ll9faHRtbCA6IHZvaWQgMDtcbiAgICAgICAgICAgICAgICAgIG51bGwgIT0gcHJvcEtleSAmJlxuICAgICAgICAgICAgICAgICAgICAoKHByb3BLZXkgPSBub3JtYWxpemVIVE1MKGRvbUVsZW1lbnQsIHByb3BLZXkpKSxcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyAhPT0gcHJvcEtleSAmJlxuICAgICAgICAgICAgICAgICAgICAgIChzZXJ2ZXJEaWZmZXJlbmNlc1t2YWx1ZV0gPSB7IF9faHRtbDogYXR0cmlidXRlcyB9KSk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiY2xhc3NOYW1lXCI6XG4gICAgICAgICAgICAgICAgICBoeWRyYXRlQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJjbGFzc1wiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInRhYkluZGV4XCI6XG4gICAgICAgICAgICAgICAgICBoeWRyYXRlQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJ0YWJpbmRleFwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInN0eWxlXCI6XG4gICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGRpZmZIeWRyYXRlZFN0eWxlcyhkb21FbGVtZW50LCBwcm9wS2V5LCBzZXJ2ZXJEaWZmZXJlbmNlcyk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwibXVsdGlwbGVcIjpcbiAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudC5tdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwibXV0ZWRcIjpcbiAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudC5tdXRlZCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiYXV0b0ZvY3VzXCI6XG4gICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKFwiYXV0b2ZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudC5hdXRvZm9jdXMsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcImRhdGFcIjpcbiAgICAgICAgICAgICAgICAgIGlmIChcIm9iamVjdFwiICE9PSB0YWcpIHtcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBkb21FbGVtZW50LmdldEF0dHJpYnV0ZShcImRhdGFcIik7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBcInNyY1wiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJocmVmXCI6XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgICAgICAgXCJcIiAhPT0gcHJvcEtleSB8fFxuICAgICAgICAgICAgICAgICAgICAgIChcImFcIiA9PT0gdGFnICYmIFwiaHJlZlwiID09PSB2YWx1ZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAoXCJvYmplY3RcIiA9PT0gdGFnICYmIFwiZGF0YVwiID09PSB2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIFwic3JjXCIgPT09IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAnQW4gZW1wdHkgc3RyaW5nIChcIlwiKSB3YXMgcGFzc2VkIHRvIHRoZSAlcyBhdHRyaWJ1dGUuIFRoaXMgbWF5IGNhdXNlIHRoZSBicm93c2VyIHRvIGRvd25sb2FkIHRoZSB3aG9sZSBwYWdlIGFnYWluIG92ZXIgdGhlIG5ldHdvcmsuIFRvIGZpeCB0aGlzLCBlaXRoZXIgZG8gbm90IHJlbmRlciB0aGUgZWxlbWVudCBhdCBhbGwgb3IgcGFzcyBudWxsIHRvICVzIGluc3RlYWQgb2YgYW4gZW1wdHkgc3RyaW5nLicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FuIGVtcHR5IHN0cmluZyAoXCJcIikgd2FzIHBhc3NlZCB0byB0aGUgJXMgYXR0cmlidXRlLiBUbyBmaXggdGhpcywgZWl0aGVyIGRvIG5vdCByZW5kZXIgdGhlIGVsZW1lbnQgYXQgYWxsIG9yIHBhc3MgbnVsbCB0byAlcyBpbnN0ZWFkIG9mIGFuIGVtcHR5IHN0cmluZy4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZVNhbml0aXplZEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcImFjdGlvblwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJmb3JtQWN0aW9uXCI6XG4gICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gZG9tRWxlbWVudC5nZXRBdHRyaWJ1dGUodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHByb3BLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZSh2YWx1ZS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgICAgICAgICAgICAgXCJmb3JtQWN0aW9uXCIgPT09IHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgPyAoZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShcIm5hbWVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKFwiZm9ybWVuY3R5cGVcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKFwiZm9ybW1ldGhvZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoXCJmb3JtdGFyZ2V0XCIpKVxuICAgICAgICAgICAgICAgICAgICAgIDogKGV4dHJhQXR0cmlidXRlcy5kZWxldGUoXCJlbmN0eXBlXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShcIm1ldGhvZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoXCJ0YXJnZXRcIikpO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlcyA9PT0gRVhQRUNURURfRk9STV9BQ1RJT05fVVJMKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUodmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVTYW5pdGl6ZWRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInhsaW5rSHJlZlwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZVNhbml0aXplZEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwieGxpbms6aHJlZlwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcImNvbnRlbnRFZGl0YWJsZVwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUJvb2xlYW5pc2hBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBcImNvbnRlbnRlZGl0YWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInNwZWxsQ2hlY2tcIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVCb29sZWFuaXNoQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVsbGNoZWNrXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiZHJhZ2dhYmxlXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImF1dG9SZXZlcnNlXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiZm9jdXNhYmxlXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInByZXNlcnZlQWxwaGFcIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVCb29sZWFuaXNoQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiYWxsb3dGdWxsU2NyZWVuXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImFzeW5jXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImF1dG9QbGF5XCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImNvbnRyb2xzXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImRlZmF1bHRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGVmZXJcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGlzYWJsZWRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGlzYWJsZVBpY3R1cmVJblBpY3R1cmVcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiZGlzYWJsZVJlbW90ZVBsYXliYWNrXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImZvcm1Ob1ZhbGlkYXRlXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcImhpZGRlblwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJsb29wXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcIm5vTW9kdWxlXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcIm5vVmFsaWRhdGVcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwib3BlblwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJwbGF5c0lubGluZVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJyZWFkT25seVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJyZXF1aXJlZFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJyZXZlcnNlZFwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJzY29wZWRcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwic2VhbWxlc3NcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiaXRlbVNjb3BlXCI6XG4gICAgICAgICAgICAgICAgICBoeWRyYXRlQm9vbGVhbkF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwiY2FwdHVyZVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJkb3dubG9hZFwiOlxuICAgICAgICAgICAgICAgICAgYToge1xuICAgICAgICAgICAgICAgICAgICBpID0gZG9tRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGF0dHJpYnV0ZU5hbWUgPSAoYXR0cmlidXRlcyA9IHZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcyRqc2NvbXAkMCA9IHNlcnZlckRpZmZlcmVuY2VzO1xuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpID0gaS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBpKVxuICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHByb3BLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJ1bmRlZmluZWRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCExID09PSBwcm9wS2V5KSBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAobnVsbCAhPSBwcm9wS2V5KVxuICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHByb3BLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghMCA9PT0gcHJvcEtleSAmJiBcIlwiID09PSBpKSBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hlY2tBdHRyaWJ1dGVTdHJpbmdDb2VyY2lvbihwcm9wS2V5LCBhdHRyaWJ1dGVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpID09PSBcIlwiICsgcHJvcEtleSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB3YXJuRm9yUHJvcERpZmZlcmVuY2UoXG4gICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgICBpLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDBcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjb2xzXCI6XG4gICAgICAgICAgICAgICAgY2FzZSBcInJvd3NcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwic2l6ZVwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJzcGFuXCI6XG4gICAgICAgICAgICAgICAgICBhOiB7XG4gICAgICAgICAgICAgICAgICAgIGkgPSBkb21FbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lID0gYXR0cmlidXRlcyA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlcyRqc2NvbXAkMCA9IHNlcnZlckRpZmZlcmVuY2VzO1xuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKGF0dHJpYnV0ZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpID0gaS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudWxsID09PSBpKVxuICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHByb3BLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJ1bmRlZmluZWRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJmdW5jdGlvblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcInN5bWJvbFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImJvb2xlYW5cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc05hTihwcm9wS2V5KSB8fCAxID4gcHJvcEtleSkgYnJlYWsgYTtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG51bGwgIT0gcHJvcEtleSlcbiAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiBwcm9wS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiZnVuY3Rpb25cIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICEoaXNOYU4ocHJvcEtleSkgfHwgMSA+IHByb3BLZXkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoZWNrQXR0cmlidXRlU3RyaW5nQ29lcmNpb24ocHJvcEtleSwgYXR0cmlidXRlcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaSA9PT0gXCJcIiArIHByb3BLZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgd2FybkZvclByb3BEaWZmZXJlbmNlKFxuICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzJGpzY29tcCQwXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwicm93U3BhblwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZU51bWVyaWNBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBcInJvd3NwYW5cIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJzdGFydFwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZU51bWVyaWNBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ4SGVpZ2h0XCI6XG4gICAgICAgICAgICAgICAgICBoeWRyYXRlQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJ4LWhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInhsaW5rQWN0dWF0ZVwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwieGxpbms6YWN0dWF0ZVwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInhsaW5rQXJjcm9sZVwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwieGxpbms6YXJjcm9sZVwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInhsaW5rUm9sZVwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwieGxpbms6cm9sZVwiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInhsaW5rU2hvd1wiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwieGxpbms6c2hvd1wiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInhsaW5rVGl0bGVcIjpcbiAgICAgICAgICAgICAgICAgIGh5ZHJhdGVBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBcInhsaW5rOnRpdGxlXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwieGxpbmtUeXBlXCI6XG4gICAgICAgICAgICAgICAgICBoeWRyYXRlQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJ4bGluazp0eXBlXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcyxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXNcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIFwieG1sQmFzZVwiOlxuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgZG9tRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIFwieG1sOmJhc2VcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJ4bWxMYW5nXCI6XG4gICAgICAgICAgICAgICAgICBoeWRyYXRlQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJ4bWw6bGFuZ1wiLFxuICAgICAgICAgICAgICAgICAgICBwcm9wS2V5LFxuICAgICAgICAgICAgICAgICAgICBleHRyYUF0dHJpYnV0ZXMsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgY2FzZSBcInhtbFNwYWNlXCI6XG4gICAgICAgICAgICAgICAgICBoeWRyYXRlQXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICBkb21FbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgXCJ4bWw6c3BhY2VcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJpbmVydFwiOlxuICAgICAgICAgICAgICAgICAgXCJcIiAhPT0gcHJvcEtleSB8fFxuICAgICAgICAgICAgICAgICAgICBkaWRXYXJuRm9yTmV3Qm9vbGVhblByb3BzV2l0aEVtcHR5VmFsdWVbdmFsdWVdIHx8XG4gICAgICAgICAgICAgICAgICAgICgoZGlkV2FybkZvck5ld0Jvb2xlYW5Qcm9wc1dpdGhFbXB0eVZhbHVlW3ZhbHVlXSA9ICEwKSxcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcIlJlY2VpdmVkIGFuIGVtcHR5IHN0cmluZyBmb3IgYSBib29sZWFuIGF0dHJpYnV0ZSBgJXNgLiBUaGlzIHdpbGwgdHJlYXQgdGhlIGF0dHJpYnV0ZSBhcyBpZiBpdCB3ZXJlIGZhbHNlLiBFaXRoZXIgcGFzcyBgZmFsc2VgIHRvIHNpbGVuY2UgdGhpcyB3YXJuaW5nLCBvciBwYXNzIGB0cnVlYCBpZiB5b3UgdXNlZCBhbiBlbXB0eSBzdHJpbmcgaW4gZWFybGllciB2ZXJzaW9ucyBvZiBSZWFjdCB0byBpbmRpY2F0ZSB0aGlzIGF0dHJpYnV0ZSBpcyB0cnVlLlwiLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgICAgICAgaHlkcmF0ZUJvb2xlYW5BdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgIGRvbUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcEtleSxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICEoMiA8IHZhbHVlLmxlbmd0aCkgfHxcbiAgICAgICAgICAgICAgICAgICAgKFwib1wiICE9PSB2YWx1ZVswXSAmJiBcIk9cIiAhPT0gdmFsdWVbMF0pIHx8XG4gICAgICAgICAgICAgICAgICAgIChcIm5cIiAhPT0gdmFsdWVbMV0gJiYgXCJOXCIgIT09IHZhbHVlWzFdKVxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGkgPSBnZXRBdHRyaWJ1dGVBbGlhcyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSAhMTtcbiAgICAgICAgICAgICAgICAgICAgaG9zdENvbnRleHQuY29udGV4dCA9PT0gSG9zdENvbnRleHROYW1lc3BhY2VOb25lICYmXG4gICAgICAgICAgICAgICAgICAgIFwic3ZnXCIgIT09IHRhZyAmJlxuICAgICAgICAgICAgICAgICAgICBcIm1hdGhcIiAhPT0gdGFnXG4gICAgICAgICAgICAgICAgICAgICAgPyBleHRyYUF0dHJpYnV0ZXMuZGVsZXRlKGkudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgICAgICAgICA6ICgoYXR0cmlidXRlTmFtZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgKGF0dHJpYnV0ZU5hbWUgPSBwb3NzaWJsZVN0YW5kYXJkTmFtZXMuaGFzT3duUHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZU5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBwb3NzaWJsZVN0YW5kYXJkTmFtZXNbYXR0cmlidXRlTmFtZV0gfHwgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IG51bGwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gYXR0cmlidXRlTmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVOYW1lICE9PSB2YWx1ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGF0dHJpYnV0ZXMgPSAhMCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhQXR0cmlidXRlcy5kZWxldGUoYXR0cmlidXRlTmFtZSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFBdHRyaWJ1dGVzLmRlbGV0ZShpKSk7XG4gICAgICAgICAgICAgICAgICAgIGE6IGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAoKGF0dHJpYnV0ZU5hbWUgPSBkb21FbGVtZW50KSxcbiAgICAgICAgICAgICAgICAgICAgICAoc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDAgPSBpKSxcbiAgICAgICAgICAgICAgICAgICAgICAoaSA9IHByb3BLZXkpLFxuICAgICAgICAgICAgICAgICAgICAgIGlzQXR0cmlidXRlTmFtZVNhZmUoc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDApKVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlTmFtZS5oYXNBdHRyaWJ1dGUoc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDApXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgKGF0dHJpYnV0ZU5hbWUgPSBhdHRyaWJ1dGVOYW1lLmdldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDBcbiAgICAgICAgICAgICAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyRGlmZmVyZW5jZXMkanNjb21wJDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGkgPSBhdHRyaWJ1dGVOYW1lID09PSBcIlwiICsgaSA/IGkgOiBhdHRyaWJ1dGVOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIGkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcImZ1bmN0aW9uXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJzeW1ib2xcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhayBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiYm9vbGVhblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoYXR0cmlidXRlTmFtZSA9IHNlcnZlckRpZmZlcmVuY2VzJGpzY29tcCQwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zbGljZSgwLCA1KSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRhdGEtXCIgIT09IGF0dHJpYnV0ZU5hbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJhcmlhLVwiICE9PSBhdHRyaWJ1dGVOYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpID0gdm9pZCAwID09PSBpID8gdm9pZCAwIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaSA9IHZvaWQgMDtcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyB8fFxuICAgICAgICAgICAgICAgICAgICAgIHdhcm5Gb3JQcm9wRGlmZmVyZW5jZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJEaWZmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgIDAgPCBleHRyYUF0dHJpYnV0ZXMuc2l6ZSAmJlxuICAgICAgICAhMCAhPT0gcHJvcHMuc3VwcHJlc3NIeWRyYXRpb25XYXJuaW5nICYmXG4gICAgICAgIHdhcm5Gb3JFeHRyYUF0dHJpYnV0ZXMoZG9tRWxlbWVudCwgZXh0cmFBdHRyaWJ1dGVzLCBzZXJ2ZXJEaWZmZXJlbmNlcyk7XG4gICAgICByZXR1cm4gMCA9PT0gT2JqZWN0LmtleXMoc2VydmVyRGlmZmVyZW5jZXMpLmxlbmd0aFxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiBzZXJ2ZXJEaWZmZXJlbmNlcztcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJvcE5hbWVzTGlzdEpvaW4obGlzdCwgY29tYmluYXRvcikge1xuICAgICAgc3dpdGNoIChsaXN0Lmxlbmd0aCkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgcmV0dXJuIFwiXCI7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICByZXR1cm4gbGlzdFswXTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHJldHVybiBsaXN0WzBdICsgXCIgXCIgKyBjb21iaW5hdG9yICsgXCIgXCIgKyBsaXN0WzFdO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBsaXN0LnNsaWNlKDAsIC0xKS5qb2luKFwiLCBcIikgK1xuICAgICAgICAgICAgXCIsIFwiICtcbiAgICAgICAgICAgIGNvbWJpbmF0b3IgK1xuICAgICAgICAgICAgXCIgXCIgK1xuICAgICAgICAgICAgbGlzdFtsaXN0Lmxlbmd0aCAtIDFdXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaXNMaWtlbHlTdGF0aWNSZXNvdXJjZShpbml0aWF0b3JUeXBlKSB7XG4gICAgICBzd2l0Y2ggKGluaXRpYXRvclR5cGUpIHtcbiAgICAgICAgY2FzZSBcImNzc1wiOlxuICAgICAgICBjYXNlIFwic2NyaXB0XCI6XG4gICAgICAgIGNhc2UgXCJmb250XCI6XG4gICAgICAgIGNhc2UgXCJpbWdcIjpcbiAgICAgICAgY2FzZSBcImltYWdlXCI6XG4gICAgICAgIGNhc2UgXCJpbnB1dFwiOlxuICAgICAgICBjYXNlIFwibGlua1wiOlxuICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gITE7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVzdGltYXRlQmFuZHdpZHRoKCkge1xuICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUpIHtcbiAgICAgICAgZm9yIChcbiAgICAgICAgICB2YXIgY291bnQgPSAwLFxuICAgICAgICAgICAgYml0cyA9IDAsXG4gICAgICAgICAgICByZXNvdXJjZUVudHJpZXMgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKFwicmVzb3VyY2VcIiksXG4gICAgICAgICAgICBpID0gMDtcbiAgICAgICAgICBpIDwgcmVzb3VyY2VFbnRyaWVzLmxlbmd0aDtcbiAgICAgICAgICBpKytcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIGVudHJ5ID0gcmVzb3VyY2VFbnRyaWVzW2ldLFxuICAgICAgICAgICAgdHJhbnNmZXJTaXplID0gZW50cnkudHJhbnNmZXJTaXplLFxuICAgICAgICAgICAgaW5pdGlhdG9yVHlwZSA9IGVudHJ5LmluaXRpYXRvclR5cGUsXG4gICAgICAgICAgICBkdXJhdGlvbiA9IGVudHJ5LmR1cmF0aW9uO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRyYW5zZmVyU2l6ZSAmJlxuICAgICAgICAgICAgZHVyYXRpb24gJiZcbiAgICAgICAgICAgIGlzTGlrZWx5U3RhdGljUmVzb3VyY2UoaW5pdGlhdG9yVHlwZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGluaXRpYXRvclR5cGUgPSAwO1xuICAgICAgICAgICAgZHVyYXRpb24gPSBlbnRyeS5yZXNwb25zZUVuZDtcbiAgICAgICAgICAgIGZvciAoaSArPSAxOyBpIDwgcmVzb3VyY2VFbnRyaWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgIHZhciBvdmVybGFwRW50cnkgPSByZXNvdXJjZUVudHJpZXNbaV0sXG4gICAgICAgICAgICAgICAgb3ZlcmxhcFN0YXJ0VGltZSA9IG92ZXJsYXBFbnRyeS5zdGFydFRpbWU7XG4gICAgICAgICAgICAgIGlmIChvdmVybGFwU3RhcnRUaW1lID4gZHVyYXRpb24pIGJyZWFrO1xuICAgICAgICAgICAgICB2YXIgb3ZlcmxhcFRyYW5zZmVyU2l6ZSA9IG92ZXJsYXBFbnRyeS50cmFuc2ZlclNpemUsXG4gICAgICAgICAgICAgICAgb3ZlcmxhcEluaXRpYXRvclR5cGUgPSBvdmVybGFwRW50cnkuaW5pdGlhdG9yVHlwZTtcbiAgICAgICAgICAgICAgb3ZlcmxhcFRyYW5zZmVyU2l6ZSAmJlxuICAgICAgICAgICAgICAgIGlzTGlrZWx5U3RhdGljUmVzb3VyY2Uob3ZlcmxhcEluaXRpYXRvclR5cGUpICYmXG4gICAgICAgICAgICAgICAgKChvdmVybGFwRW50cnkgPSBvdmVybGFwRW50cnkucmVzcG9uc2VFbmQpLFxuICAgICAgICAgICAgICAgIChpbml0aWF0b3JUeXBlICs9XG4gICAgICAgICAgICAgICAgICBvdmVybGFwVHJhbnNmZXJTaXplICpcbiAgICAgICAgICAgICAgICAgIChvdmVybGFwRW50cnkgPCBkdXJhdGlvblxuICAgICAgICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgICAgICAgOiAoZHVyYXRpb24gLSBvdmVybGFwU3RhcnRUaW1lKSAvXG4gICAgICAgICAgICAgICAgICAgICAgKG92ZXJsYXBFbnRyeSAtIG92ZXJsYXBTdGFydFRpbWUpKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLS1pO1xuICAgICAgICAgICAgYml0cyArPVxuICAgICAgICAgICAgICAoOCAqICh0cmFuc2ZlclNpemUgKyBpbml0aWF0b3JUeXBlKSkgLyAoZW50cnkuZHVyYXRpb24gLyAxZTMpO1xuICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgIGlmICgxMCA8IGNvdW50KSBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKDAgPCBjb3VudCkgcmV0dXJuIGJpdHMgLyBjb3VudCAvIDFlNjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuYXZpZ2F0b3IuY29ubmVjdGlvbiAmJlxuICAgICAgICAoKGNvdW50ID0gbmF2aWdhdG9yLmNvbm5lY3Rpb24uZG93bmxpbmspLCBcIm51bWJlclwiID09PSB0eXBlb2YgY291bnQpXG4gICAgICAgID8gY291bnRcbiAgICAgICAgOiA1O1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIocm9vdENvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgIHJldHVybiA5ID09PSByb290Q29udGFpbmVyRWxlbWVudC5ub2RlVHlwZVxuICAgICAgICA/IHJvb3RDb250YWluZXJFbGVtZW50XG4gICAgICAgIDogcm9vdENvbnRhaW5lckVsZW1lbnQub3duZXJEb2N1bWVudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0T3duSG9zdENvbnRleHQobmFtZXNwYWNlVVJJKSB7XG4gICAgICBzd2l0Y2ggKG5hbWVzcGFjZVVSSSkge1xuICAgICAgICBjYXNlIFNWR19OQU1FU1BBQ0U6XG4gICAgICAgICAgcmV0dXJuIEhvc3RDb250ZXh0TmFtZXNwYWNlU3ZnO1xuICAgICAgICBjYXNlIE1BVEhfTkFNRVNQQUNFOlxuICAgICAgICAgIHJldHVybiBIb3N0Q29udGV4dE5hbWVzcGFjZU1hdGg7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0Q2hpbGRIb3N0Q29udGV4dFByb2QocGFyZW50TmFtZXNwYWNlLCB0eXBlKSB7XG4gICAgICBpZiAocGFyZW50TmFtZXNwYWNlID09PSBIb3N0Q29udGV4dE5hbWVzcGFjZU5vbmUpXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgXCJzdmdcIjpcbiAgICAgICAgICAgIHJldHVybiBIb3N0Q29udGV4dE5hbWVzcGFjZVN2ZztcbiAgICAgICAgICBjYXNlIFwibWF0aFwiOlxuICAgICAgICAgICAgcmV0dXJuIEhvc3RDb250ZXh0TmFtZXNwYWNlTWF0aDtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIEhvc3RDb250ZXh0TmFtZXNwYWNlTm9uZTtcbiAgICAgICAgfVxuICAgICAgcmV0dXJuIHBhcmVudE5hbWVzcGFjZSA9PT0gSG9zdENvbnRleHROYW1lc3BhY2VTdmcgJiZcbiAgICAgICAgXCJmb3JlaWduT2JqZWN0XCIgPT09IHR5cGVcbiAgICAgICAgPyBIb3N0Q29udGV4dE5hbWVzcGFjZU5vbmVcbiAgICAgICAgOiBwYXJlbnROYW1lc3BhY2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNob3VsZFNldFRleHRDb250ZW50KHR5cGUsIHByb3BzKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBcInRleHRhcmVhXCIgPT09IHR5cGUgfHxcbiAgICAgICAgXCJub3NjcmlwdFwiID09PSB0eXBlIHx8XG4gICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBwcm9wcy5jaGlsZHJlbiB8fFxuICAgICAgICBcIm51bWJlclwiID09PSB0eXBlb2YgcHJvcHMuY2hpbGRyZW4gfHxcbiAgICAgICAgXCJiaWdpbnRcIiA9PT0gdHlwZW9mIHByb3BzLmNoaWxkcmVuIHx8XG4gICAgICAgIChcIm9iamVjdFwiID09PSB0eXBlb2YgcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwgJiZcbiAgICAgICAgICBudWxsICE9PSBwcm9wcy5kYW5nZXJvdXNseVNldElubmVySFRNTCAmJlxuICAgICAgICAgIG51bGwgIT0gcHJvcHMuZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwuX19odG1sKVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2hvdWxkQXR0ZW1wdEVhZ2VyVHJhbnNpdGlvbigpIHtcbiAgICAgIHZhciBldmVudCA9IHdpbmRvdy5ldmVudDtcbiAgICAgIGlmIChldmVudCAmJiBcInBvcHN0YXRlXCIgPT09IGV2ZW50LnR5cGUpIHtcbiAgICAgICAgaWYgKGV2ZW50ID09PSBjdXJyZW50UG9wc3RhdGVUcmFuc2l0aW9uRXZlbnQpIHJldHVybiAhMTtcbiAgICAgICAgY3VycmVudFBvcHN0YXRlVHJhbnNpdGlvbkV2ZW50ID0gZXZlbnQ7XG4gICAgICAgIHJldHVybiAhMDtcbiAgICAgIH1cbiAgICAgIGN1cnJlbnRQb3BzdGF0ZVRyYW5zaXRpb25FdmVudCA9IG51bGw7XG4gICAgICByZXR1cm4gITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVFdmVudFR5cGUoKSB7XG4gICAgICB2YXIgZXZlbnQgPSB3aW5kb3cuZXZlbnQ7XG4gICAgICByZXR1cm4gZXZlbnQgJiYgZXZlbnQgIT09IHNjaGVkdWxlckV2ZW50ID8gZXZlbnQudHlwZSA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVFdmVudFRpbWVTdGFtcCgpIHtcbiAgICAgIHZhciBldmVudCA9IHdpbmRvdy5ldmVudDtcbiAgICAgIHJldHVybiBldmVudCAmJiBldmVudCAhPT0gc2NoZWR1bGVyRXZlbnQgPyBldmVudC50aW1lU3RhbXAgOiAtMS4xO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYW5kbGVFcnJvckluTmV4dFRpY2soZXJyb3IpIHtcbiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRNb3VudChkb21FbGVtZW50LCB0eXBlLCBuZXdQcm9wcykge1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgXCJidXR0b25cIjpcbiAgICAgICAgY2FzZSBcImlucHV0XCI6XG4gICAgICAgIGNhc2UgXCJzZWxlY3RcIjpcbiAgICAgICAgY2FzZSBcInRleHRhcmVhXCI6XG4gICAgICAgICAgbmV3UHJvcHMuYXV0b0ZvY3VzICYmIGRvbUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImltZ1wiOlxuICAgICAgICAgIG5ld1Byb3BzLnNyY1xuICAgICAgICAgICAgPyAoZG9tRWxlbWVudC5zcmMgPSBuZXdQcm9wcy5zcmMpXG4gICAgICAgICAgICA6IG5ld1Byb3BzLnNyY1NldCAmJiAoZG9tRWxlbWVudC5zcmNzZXQgPSBuZXdQcm9wcy5zcmNTZXQpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRIeWRyYXRlZEluc3RhbmNlKCkge31cbiAgICBmdW5jdGlvbiBjb21taXRVcGRhdGUoZG9tRWxlbWVudCwgdHlwZSwgb2xkUHJvcHMsIG5ld1Byb3BzKSB7XG4gICAgICB1cGRhdGVQcm9wZXJ0aWVzKGRvbUVsZW1lbnQsIHR5cGUsIG9sZFByb3BzLCBuZXdQcm9wcyk7XG4gICAgICBkb21FbGVtZW50W2ludGVybmFsUHJvcHNLZXldID0gbmV3UHJvcHM7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCkge1xuICAgICAgc2V0VGV4dENvbnRlbnQoZG9tRWxlbWVudCwgXCJcIik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdFRleHRVcGRhdGUodGV4dEluc3RhbmNlLCBvbGRUZXh0LCBuZXdUZXh0KSB7XG4gICAgICB0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlID0gbmV3VGV4dDtcbiAgICB9XG4gICAgZnVuY3Rpb24gd2FybkZvclJlYWN0Q2hpbGRyZW5Db25mbGljdChjb250YWluZXIpIHtcbiAgICAgIGlmICghY29udGFpbmVyLl9fcmVhY3RXYXJuZWRBYm91dENoaWxkcmVuQ29uZmxpY3QpIHtcbiAgICAgICAgdmFyIHByb3BzID0gY29udGFpbmVyW2ludGVybmFsUHJvcHNLZXldIHx8IG51bGw7XG4gICAgICAgIGlmIChudWxsICE9PSBwcm9wcykge1xuICAgICAgICAgIHZhciBmaWJlciA9IGdldEluc3RhbmNlRnJvbU5vZGUoY29udGFpbmVyKTtcbiAgICAgICAgICBudWxsICE9PSBmaWJlciAmJlxuICAgICAgICAgICAgKFwic3RyaW5nXCIgPT09IHR5cGVvZiBwcm9wcy5jaGlsZHJlbiB8fFxuICAgICAgICAgICAgXCJudW1iZXJcIiA9PT0gdHlwZW9mIHByb3BzLmNoaWxkcmVuXG4gICAgICAgICAgICAgID8gKChjb250YWluZXIuX19yZWFjdFdhcm5lZEFib3V0Q2hpbGRyZW5Db25mbGljdCA9ICEwKSxcbiAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihmaWJlciwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgJ0Nhbm5vdCB1c2UgYSByZWYgb24gYSBSZWFjdCBlbGVtZW50IGFzIGEgY29udGFpbmVyIHRvIGBjcmVhdGVSb290YCBvciBgY3JlYXRlUG9ydGFsYCBpZiB0aGF0IGVsZW1lbnQgYWxzbyBzZXRzIFwiY2hpbGRyZW5cIiB0ZXh0IGNvbnRlbnQgdXNpbmcgUmVhY3QuIEl0IHNob3VsZCBiZSBhIGxlYWYgd2l0aCBubyBjaGlsZHJlbi4gT3RoZXJ3aXNlIGl0XFwncyBhbWJpZ3VvdXMgd2hpY2ggY2hpbGRyZW4gc2hvdWxkIGJlIHVzZWQuJ1xuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgOiBudWxsICE9IHByb3BzLmRhbmdlcm91c2x5U2V0SW5uZXJIVE1MICYmXG4gICAgICAgICAgICAgICAgKChjb250YWluZXIuX19yZWFjdFdhcm5lZEFib3V0Q2hpbGRyZW5Db25mbGljdCA9ICEwKSxcbiAgICAgICAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihmaWJlciwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgJ0Nhbm5vdCB1c2UgYSByZWYgb24gYSBSZWFjdCBlbGVtZW50IGFzIGEgY29udGFpbmVyIHRvIGBjcmVhdGVSb290YCBvciBgY3JlYXRlUG9ydGFsYCBpZiB0aGF0IGVsZW1lbnQgYWxzbyBzZXRzIFwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUxcIiB1c2luZyBSZWFjdC4gSXQgc2hvdWxkIGJlIGEgbGVhZiB3aXRoIG5vIGNoaWxkcmVuLiBPdGhlcndpc2UgaXRcXCdzIGFtYmlndW91cyB3aGljaCBjaGlsZHJlbiBzaG91bGQgYmUgdXNlZC4nXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTaW5nbGV0b25TY29wZSh0eXBlKSB7XG4gICAgICByZXR1cm4gXCJoZWFkXCIgPT09IHR5cGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbW92ZUNoaWxkKHBhcmVudEluc3RhbmNlLCBjaGlsZCkge1xuICAgICAgcGFyZW50SW5zdGFuY2UucmVtb3ZlQ2hpbGQoY2hpbGQpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZW1vdmVDaGlsZEZyb21Db250YWluZXIoY29udGFpbmVyLCBjaGlsZCkge1xuICAgICAgKDkgPT09IGNvbnRhaW5lci5ub2RlVHlwZVxuICAgICAgICA/IGNvbnRhaW5lci5ib2R5XG4gICAgICAgIDogXCJIVE1MXCIgPT09IGNvbnRhaW5lci5ub2RlTmFtZVxuICAgICAgICAgID8gY29udGFpbmVyLm93bmVyRG9jdW1lbnQuYm9keVxuICAgICAgICAgIDogY29udGFpbmVyXG4gICAgICApLnJlbW92ZUNoaWxkKGNoaWxkKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2xlYXJIeWRyYXRpb25Cb3VuZGFyeShwYXJlbnRJbnN0YW5jZSwgaHlkcmF0aW9uSW5zdGFuY2UpIHtcbiAgICAgIHZhciBub2RlID0gaHlkcmF0aW9uSW5zdGFuY2UsXG4gICAgICAgIGRlcHRoID0gMDtcbiAgICAgIGRvIHtcbiAgICAgICAgdmFyIG5leHROb2RlID0gbm9kZS5uZXh0U2libGluZztcbiAgICAgICAgcGFyZW50SW5zdGFuY2UucmVtb3ZlQ2hpbGQobm9kZSk7XG4gICAgICAgIGlmIChuZXh0Tm9kZSAmJiA4ID09PSBuZXh0Tm9kZS5ub2RlVHlwZSlcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAoKG5vZGUgPSBuZXh0Tm9kZS5kYXRhKSxcbiAgICAgICAgICAgIG5vZGUgPT09IFNVU1BFTlNFX0VORF9EQVRBIHx8IG5vZGUgPT09IEFDVElWSVRZX0VORF9EQVRBKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgaWYgKDAgPT09IGRlcHRoKSB7XG4gICAgICAgICAgICAgIHBhcmVudEluc3RhbmNlLnJlbW92ZUNoaWxkKG5leHROb2RlKTtcbiAgICAgICAgICAgICAgcmV0cnlJZkJsb2NrZWRPbihoeWRyYXRpb25JbnN0YW5jZSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlcHRoLS07XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIG5vZGUgPT09IFNVU1BFTlNFX1NUQVJUX0RBVEEgfHxcbiAgICAgICAgICAgIG5vZGUgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSB8fFxuICAgICAgICAgICAgbm9kZSA9PT0gU1VTUEVOU0VfUVVFVUVEX1NUQVJUX0RBVEEgfHxcbiAgICAgICAgICAgIG5vZGUgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEgfHxcbiAgICAgICAgICAgIG5vZGUgPT09IEFDVElWSVRZX1NUQVJUX0RBVEFcbiAgICAgICAgICApXG4gICAgICAgICAgICBkZXB0aCsrO1xuICAgICAgICAgIGVsc2UgaWYgKG5vZGUgPT09IFBSRUFNQkxFX0NPTlRSSUJVVElPTl9IVE1MKVxuICAgICAgICAgICAgcmVsZWFzZVNpbmdsZXRvbkluc3RhbmNlKFxuICAgICAgICAgICAgICBwYXJlbnRJbnN0YW5jZS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBlbHNlIGlmIChub2RlID09PSBQUkVBTUJMRV9DT05UUklCVVRJT05fSEVBRCkge1xuICAgICAgICAgICAgbm9kZSA9IHBhcmVudEluc3RhbmNlLm93bmVyRG9jdW1lbnQuaGVhZDtcbiAgICAgICAgICAgIHJlbGVhc2VTaW5nbGV0b25JbnN0YW5jZShub2RlKTtcbiAgICAgICAgICAgIGZvciAodmFyIG5vZGUkanNjb21wJDAgPSBub2RlLmZpcnN0Q2hpbGQ7IG5vZGUkanNjb21wJDA7ICkge1xuICAgICAgICAgICAgICB2YXIgbmV4dE5vZGUkanNjb21wJDAgPSBub2RlJGpzY29tcCQwLm5leHRTaWJsaW5nLFxuICAgICAgICAgICAgICAgIG5vZGVOYW1lID0gbm9kZSRqc2NvbXAkMC5ub2RlTmFtZTtcbiAgICAgICAgICAgICAgbm9kZSRqc2NvbXAkMFtpbnRlcm5hbEhvaXN0YWJsZU1hcmtlcl0gfHxcbiAgICAgICAgICAgICAgICBcIlNDUklQVFwiID09PSBub2RlTmFtZSB8fFxuICAgICAgICAgICAgICAgIFwiU1RZTEVcIiA9PT0gbm9kZU5hbWUgfHxcbiAgICAgICAgICAgICAgICAoXCJMSU5LXCIgPT09IG5vZGVOYW1lICYmXG4gICAgICAgICAgICAgICAgICBcInN0eWxlc2hlZXRcIiA9PT0gbm9kZSRqc2NvbXAkMC5yZWwudG9Mb3dlckNhc2UoKSkgfHxcbiAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUNoaWxkKG5vZGUkanNjb21wJDApO1xuICAgICAgICAgICAgICBub2RlJGpzY29tcCQwID0gbmV4dE5vZGUkanNjb21wJDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICBub2RlID09PSBQUkVBTUJMRV9DT05UUklCVVRJT05fQk9EWSAmJlxuICAgICAgICAgICAgICByZWxlYXNlU2luZ2xldG9uSW5zdGFuY2UocGFyZW50SW5zdGFuY2Uub3duZXJEb2N1bWVudC5ib2R5KTtcbiAgICAgICAgbm9kZSA9IG5leHROb2RlO1xuICAgICAgfSB3aGlsZSAobm9kZSk7XG4gICAgICByZXRyeUlmQmxvY2tlZE9uKGh5ZHJhdGlvbkluc3RhbmNlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGlkZU9yVW5oaWRlRGVoeWRyYXRlZEJvdW5kYXJ5KHN1c3BlbnNlSW5zdGFuY2UsIGlzSGlkZGVuKSB7XG4gICAgICB2YXIgbm9kZSA9IHN1c3BlbnNlSW5zdGFuY2U7XG4gICAgICBzdXNwZW5zZUluc3RhbmNlID0gMDtcbiAgICAgIGRvIHtcbiAgICAgICAgdmFyIG5leHROb2RlID0gbm9kZS5uZXh0U2libGluZztcbiAgICAgICAgMSA9PT0gbm9kZS5ub2RlVHlwZVxuICAgICAgICAgID8gaXNIaWRkZW5cbiAgICAgICAgICAgID8gKChub2RlLl9zdGFzaGVkRGlzcGxheSA9IG5vZGUuc3R5bGUuZGlzcGxheSksXG4gICAgICAgICAgICAgIChub2RlLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIikpXG4gICAgICAgICAgICA6ICgobm9kZS5zdHlsZS5kaXNwbGF5ID0gbm9kZS5fc3Rhc2hlZERpc3BsYXkgfHwgXCJcIiksXG4gICAgICAgICAgICAgIFwiXCIgPT09IG5vZGUuZ2V0QXR0cmlidXRlKFwic3R5bGVcIikgJiZcbiAgICAgICAgICAgICAgICBub2RlLnJlbW92ZUF0dHJpYnV0ZShcInN0eWxlXCIpKVxuICAgICAgICAgIDogMyA9PT0gbm9kZS5ub2RlVHlwZSAmJlxuICAgICAgICAgICAgKGlzSGlkZGVuXG4gICAgICAgICAgICAgID8gKChub2RlLl9zdGFzaGVkVGV4dCA9IG5vZGUubm9kZVZhbHVlKSwgKG5vZGUubm9kZVZhbHVlID0gXCJcIikpXG4gICAgICAgICAgICAgIDogKG5vZGUubm9kZVZhbHVlID0gbm9kZS5fc3Rhc2hlZFRleHQgfHwgXCJcIikpO1xuICAgICAgICBpZiAobmV4dE5vZGUgJiYgOCA9PT0gbmV4dE5vZGUubm9kZVR5cGUpXG4gICAgICAgICAgaWYgKCgobm9kZSA9IG5leHROb2RlLmRhdGEpLCBub2RlID09PSBTVVNQRU5TRV9FTkRfREFUQSkpXG4gICAgICAgICAgICBpZiAoMCA9PT0gc3VzcGVuc2VJbnN0YW5jZSkgYnJlYWs7XG4gICAgICAgICAgICBlbHNlIHN1c3BlbnNlSW5zdGFuY2UtLTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAobm9kZSAhPT0gU1VTUEVOU0VfU1RBUlRfREFUQSAmJlxuICAgICAgICAgICAgICBub2RlICE9PSBTVVNQRU5TRV9QRU5ESU5HX1NUQVJUX0RBVEEgJiZcbiAgICAgICAgICAgICAgbm9kZSAhPT0gU1VTUEVOU0VfUVVFVUVEX1NUQVJUX0RBVEEgJiZcbiAgICAgICAgICAgICAgbm9kZSAhPT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSkgfHxcbiAgICAgICAgICAgICAgc3VzcGVuc2VJbnN0YW5jZSsrO1xuICAgICAgICBub2RlID0gbmV4dE5vZGU7XG4gICAgICB9IHdoaWxlIChub2RlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGlkZURlaHlkcmF0ZWRCb3VuZGFyeShzdXNwZW5zZUluc3RhbmNlKSB7XG4gICAgICBoaWRlT3JVbmhpZGVEZWh5ZHJhdGVkQm91bmRhcnkoc3VzcGVuc2VJbnN0YW5jZSwgITApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoaWRlSW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgICAgIGluc3RhbmNlID0gaW5zdGFuY2Uuc3R5bGU7XG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbnN0YW5jZS5zZXRQcm9wZXJ0eVxuICAgICAgICA/IGluc3RhbmNlLnNldFByb3BlcnR5KFwiZGlzcGxheVwiLCBcIm5vbmVcIiwgXCJpbXBvcnRhbnRcIilcbiAgICAgICAgOiAoaW5zdGFuY2UuZGlzcGxheSA9IFwibm9uZVwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGlkZVRleHRJbnN0YW5jZSh0ZXh0SW5zdGFuY2UpIHtcbiAgICAgIHRleHRJbnN0YW5jZS5ub2RlVmFsdWUgPSBcIlwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiB1bmhpZGVEZWh5ZHJhdGVkQm91bmRhcnkoZGVoeWRyYXRlZEluc3RhbmNlKSB7XG4gICAgICBoaWRlT3JVbmhpZGVEZWh5ZHJhdGVkQm91bmRhcnkoZGVoeWRyYXRlZEluc3RhbmNlLCAhMSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVuaGlkZUluc3RhbmNlKGluc3RhbmNlLCBwcm9wcykge1xuICAgICAgcHJvcHMgPSBwcm9wc1tTVFlMRV07XG4gICAgICBwcm9wcyA9XG4gICAgICAgIHZvaWQgMCAhPT0gcHJvcHMgJiYgbnVsbCAhPT0gcHJvcHMgJiYgcHJvcHMuaGFzT3duUHJvcGVydHkoXCJkaXNwbGF5XCIpXG4gICAgICAgICAgPyBwcm9wcy5kaXNwbGF5XG4gICAgICAgICAgOiBudWxsO1xuICAgICAgaW5zdGFuY2Uuc3R5bGUuZGlzcGxheSA9XG4gICAgICAgIG51bGwgPT0gcHJvcHMgfHwgXCJib29sZWFuXCIgPT09IHR5cGVvZiBwcm9wcyA/IFwiXCIgOiAoXCJcIiArIHByb3BzKS50cmltKCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHVuaGlkZVRleHRJbnN0YW5jZSh0ZXh0SW5zdGFuY2UsIHRleHQpIHtcbiAgICAgIHRleHRJbnN0YW5jZS5ub2RlVmFsdWUgPSB0ZXh0O1xuICAgIH1cbiAgICBmdW5jdGlvbiBjbGVhckNvbnRhaW5lclNwYXJpbmdseShjb250YWluZXIpIHtcbiAgICAgIHZhciBuZXh0Tm9kZSA9IGNvbnRhaW5lci5maXJzdENoaWxkO1xuICAgICAgbmV4dE5vZGUgJiYgMTAgPT09IG5leHROb2RlLm5vZGVUeXBlICYmIChuZXh0Tm9kZSA9IG5leHROb2RlLm5leHRTaWJsaW5nKTtcbiAgICAgIGZvciAoOyBuZXh0Tm9kZTsgKSB7XG4gICAgICAgIHZhciBub2RlID0gbmV4dE5vZGU7XG4gICAgICAgIG5leHROb2RlID0gbmV4dE5vZGUubmV4dFNpYmxpbmc7XG4gICAgICAgIHN3aXRjaCAobm9kZS5ub2RlTmFtZSkge1xuICAgICAgICAgIGNhc2UgXCJIVE1MXCI6XG4gICAgICAgICAgY2FzZSBcIkhFQURcIjpcbiAgICAgICAgICBjYXNlIFwiQk9EWVwiOlxuICAgICAgICAgICAgY2xlYXJDb250YWluZXJTcGFyaW5nbHkobm9kZSk7XG4gICAgICAgICAgICBkZXRhY2hEZWxldGVkSW5zdGFuY2Uobm9kZSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICBjYXNlIFwiU0NSSVBUXCI6XG4gICAgICAgICAgY2FzZSBcIlNUWUxFXCI6XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICBjYXNlIFwiTElOS1wiOlxuICAgICAgICAgICAgaWYgKFwic3R5bGVzaGVldFwiID09PSBub2RlLnJlbC50b0xvd2VyQ2FzZSgpKSBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb250YWluZXIucmVtb3ZlQ2hpbGQobm9kZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNhbkh5ZHJhdGVJbnN0YW5jZShpbnN0YW5jZSwgdHlwZSwgcHJvcHMsIGluUm9vdE9yU2luZ2xldG9uKSB7XG4gICAgICBmb3IgKDsgMSA9PT0gaW5zdGFuY2Uubm9kZVR5cGU7ICkge1xuICAgICAgICB2YXIgYW55UHJvcHMgPSBwcm9wcztcbiAgICAgICAgaWYgKGluc3RhbmNlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09IHR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFpblJvb3RPclNpbmdsZXRvbiAmJlxuICAgICAgICAgICAgKFwiSU5QVVRcIiAhPT0gaW5zdGFuY2Uubm9kZU5hbWUgfHwgXCJoaWRkZW5cIiAhPT0gaW5zdGFuY2UudHlwZSlcbiAgICAgICAgICApXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfSBlbHNlIGlmICghaW5Sb290T3JTaW5nbGV0b24pXG4gICAgICAgICAgaWYgKFwiaW5wdXRcIiA9PT0gdHlwZSAmJiBcImhpZGRlblwiID09PSBpbnN0YW5jZS50eXBlKSB7XG4gICAgICAgICAgICBjaGVja0F0dHJpYnV0ZVN0cmluZ0NvZXJjaW9uKGFueVByb3BzLm5hbWUsIFwibmFtZVwiKTtcbiAgICAgICAgICAgIHZhciBuYW1lID0gbnVsbCA9PSBhbnlQcm9wcy5uYW1lID8gbnVsbCA6IFwiXCIgKyBhbnlQcm9wcy5uYW1lO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBcImhpZGRlblwiID09PSBhbnlQcm9wcy50eXBlICYmXG4gICAgICAgICAgICAgIGluc3RhbmNlLmdldEF0dHJpYnV0ZShcIm5hbWVcIikgPT09IG5hbWVcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICAgIH0gZWxzZSByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgIGVsc2UgaWYgKCFpbnN0YW5jZVtpbnRlcm5hbEhvaXN0YWJsZU1hcmtlcl0pXG4gICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIFwibWV0YVwiOlxuICAgICAgICAgICAgICBpZiAoIWluc3RhbmNlLmhhc0F0dHJpYnV0ZShcIml0ZW1wcm9wXCIpKSBicmVhaztcbiAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICAgICAgbmFtZSA9IGluc3RhbmNlLmdldEF0dHJpYnV0ZShcInJlbFwiKTtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIFwic3R5bGVzaGVldFwiID09PSBuYW1lICYmXG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuaGFzQXR0cmlidXRlKFwiZGF0YS1wcmVjZWRlbmNlXCIpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgbmFtZSAhPT0gYW55UHJvcHMucmVsIHx8XG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuZ2V0QXR0cmlidXRlKFwiaHJlZlwiKSAhPT1cbiAgICAgICAgICAgICAgICAgIChudWxsID09IGFueVByb3BzLmhyZWYgfHwgXCJcIiA9PT0gYW55UHJvcHMuaHJlZlxuICAgICAgICAgICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgICAgICAgICAgOiBhbnlQcm9wcy5ocmVmKSB8fFxuICAgICAgICAgICAgICAgIGluc3RhbmNlLmdldEF0dHJpYnV0ZShcImNyb3Nzb3JpZ2luXCIpICE9PVxuICAgICAgICAgICAgICAgICAgKG51bGwgPT0gYW55UHJvcHMuY3Jvc3NPcmlnaW5cbiAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgIDogYW55UHJvcHMuY3Jvc3NPcmlnaW4pIHx8XG4gICAgICAgICAgICAgICAgaW5zdGFuY2UuZ2V0QXR0cmlidXRlKFwidGl0bGVcIikgIT09XG4gICAgICAgICAgICAgICAgICAobnVsbCA9PSBhbnlQcm9wcy50aXRsZSA/IG51bGwgOiBhbnlQcm9wcy50aXRsZSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgICAgICAgICBjYXNlIFwic3R5bGVcIjpcbiAgICAgICAgICAgICAgaWYgKGluc3RhbmNlLmhhc0F0dHJpYnV0ZShcImRhdGEtcHJlY2VkZW5jZVwiKSkgYnJlYWs7XG4gICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZTtcbiAgICAgICAgICAgIGNhc2UgXCJzY3JpcHRcIjpcbiAgICAgICAgICAgICAgbmFtZSA9IGluc3RhbmNlLmdldEF0dHJpYnV0ZShcInNyY1wiKTtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIChuYW1lICE9PSAobnVsbCA9PSBhbnlQcm9wcy5zcmMgPyBudWxsIDogYW55UHJvcHMuc3JjKSB8fFxuICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuZ2V0QXR0cmlidXRlKFwidHlwZVwiKSAhPT1cbiAgICAgICAgICAgICAgICAgICAgKG51bGwgPT0gYW55UHJvcHMudHlwZSA/IG51bGwgOiBhbnlQcm9wcy50eXBlKSB8fFxuICAgICAgICAgICAgICAgICAgaW5zdGFuY2UuZ2V0QXR0cmlidXRlKFwiY3Jvc3NvcmlnaW5cIikgIT09XG4gICAgICAgICAgICAgICAgICAgIChudWxsID09IGFueVByb3BzLmNyb3NzT3JpZ2luXG4gICAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgOiBhbnlQcm9wcy5jcm9zc09yaWdpbikpICYmXG4gICAgICAgICAgICAgICAgbmFtZSAmJlxuICAgICAgICAgICAgICAgIGluc3RhbmNlLmhhc0F0dHJpYnV0ZShcImFzeW5jXCIpICYmXG4gICAgICAgICAgICAgICAgIWluc3RhbmNlLmhhc0F0dHJpYnV0ZShcIml0ZW1wcm9wXCIpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICAgIH1cbiAgICAgICAgaW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZShpbnN0YW5jZS5uZXh0U2libGluZyk7XG4gICAgICAgIGlmIChudWxsID09PSBpbnN0YW5jZSkgYnJlYWs7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2FuSHlkcmF0ZVRleHRJbnN0YW5jZShpbnN0YW5jZSwgdGV4dCwgaW5Sb290T3JTaW5nbGV0b24pIHtcbiAgICAgIGlmIChcIlwiID09PSB0ZXh0KSByZXR1cm4gbnVsbDtcbiAgICAgIGZvciAoOyAzICE9PSBpbnN0YW5jZS5ub2RlVHlwZTsgKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAoMSAhPT0gaW5zdGFuY2Uubm9kZVR5cGUgfHxcbiAgICAgICAgICAgIFwiSU5QVVRcIiAhPT0gaW5zdGFuY2Uubm9kZU5hbWUgfHxcbiAgICAgICAgICAgIFwiaGlkZGVuXCIgIT09IGluc3RhbmNlLnR5cGUpICYmXG4gICAgICAgICAgIWluUm9vdE9yU2luZ2xldG9uXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgaW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZShpbnN0YW5jZS5uZXh0U2libGluZyk7XG4gICAgICAgIGlmIChudWxsID09PSBpbnN0YW5jZSkgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNhbkh5ZHJhdGVIeWRyYXRpb25Cb3VuZGFyeShpbnN0YW5jZSwgaW5Sb290T3JTaW5nbGV0b24pIHtcbiAgICAgIGZvciAoOyA4ICE9PSBpbnN0YW5jZS5ub2RlVHlwZTsgKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAoMSAhPT0gaW5zdGFuY2Uubm9kZVR5cGUgfHxcbiAgICAgICAgICAgIFwiSU5QVVRcIiAhPT0gaW5zdGFuY2Uubm9kZU5hbWUgfHxcbiAgICAgICAgICAgIFwiaGlkZGVuXCIgIT09IGluc3RhbmNlLnR5cGUpICYmXG4gICAgICAgICAgIWluUm9vdE9yU2luZ2xldG9uXG4gICAgICAgIClcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgaW5zdGFuY2UgPSBnZXROZXh0SHlkcmF0YWJsZShpbnN0YW5jZS5uZXh0U2libGluZyk7XG4gICAgICAgIGlmIChudWxsID09PSBpbnN0YW5jZSkgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW5zdGFuY2U7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzU3VzcGVuc2VJbnN0YW5jZVBlbmRpbmcoaW5zdGFuY2UpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSB8fFxuICAgICAgICBpbnN0YW5jZS5kYXRhID09PSBTVVNQRU5TRV9RVUVVRURfU1RBUlRfREFUQVxuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaXNTdXNwZW5zZUluc3RhbmNlRmFsbGJhY2soaW5zdGFuY2UpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEgfHxcbiAgICAgICAgKGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSAmJlxuICAgICAgICAgIGluc3RhbmNlLm93bmVyRG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gRE9DVU1FTlRfUkVBRFlfU1RBVEVfTE9BRElORylcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlZ2lzdGVyU3VzcGVuc2VJbnN0YW5jZVJldHJ5KGluc3RhbmNlLCBjYWxsYmFjaykge1xuICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBpbnN0YW5jZS5vd25lckRvY3VtZW50O1xuICAgICAgaWYgKGluc3RhbmNlLmRhdGEgPT09IFNVU1BFTlNFX1FVRVVFRF9TVEFSVF9EQVRBKVxuICAgICAgICBpbnN0YW5jZS5fcmVhY3RSZXRyeSA9IGNhbGxiYWNrO1xuICAgICAgZWxzZSBpZiAoXG4gICAgICAgIGluc3RhbmNlLmRhdGEgIT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSB8fFxuICAgICAgICBvd25lckRvY3VtZW50LnJlYWR5U3RhdGUgIT09IERPQ1VNRU5UX1JFQURZX1NUQVRFX0xPQURJTkdcbiAgICAgIClcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgbGlzdGVuZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJET01Db250ZW50TG9hZGVkXCIsIGxpc3RlbmVyKTtcbiAgICAgICAgfTtcbiAgICAgICAgb3duZXJEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiRE9NQ29udGVudExvYWRlZFwiLCBsaXN0ZW5lcik7XG4gICAgICAgIGluc3RhbmNlLl9yZWFjdFJldHJ5ID0gbGlzdGVuZXI7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE5leHRIeWRyYXRhYmxlKG5vZGUpIHtcbiAgICAgIGZvciAoOyBudWxsICE9IG5vZGU7IG5vZGUgPSBub2RlLm5leHRTaWJsaW5nKSB7XG4gICAgICAgIHZhciBub2RlVHlwZSA9IG5vZGUubm9kZVR5cGU7XG4gICAgICAgIGlmICgxID09PSBub2RlVHlwZSB8fCAzID09PSBub2RlVHlwZSkgYnJlYWs7XG4gICAgICAgIGlmICg4ID09PSBub2RlVHlwZSkge1xuICAgICAgICAgIG5vZGVUeXBlID0gbm9kZS5kYXRhO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIG5vZGVUeXBlID09PSBTVVNQRU5TRV9TVEFSVF9EQVRBIHx8XG4gICAgICAgICAgICBub2RlVHlwZSA9PT0gU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSB8fFxuICAgICAgICAgICAgbm9kZVR5cGUgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSB8fFxuICAgICAgICAgICAgbm9kZVR5cGUgPT09IFNVU1BFTlNFX1FVRVVFRF9TVEFSVF9EQVRBIHx8XG4gICAgICAgICAgICBub2RlVHlwZSA9PT0gQUNUSVZJVFlfU1RBUlRfREFUQSB8fFxuICAgICAgICAgICAgbm9kZVR5cGUgPT09IEZPUk1fU1RBVEVfSVNfTUFUQ0hJTkcgfHxcbiAgICAgICAgICAgIG5vZGVUeXBlID09PSBGT1JNX1NUQVRFX0lTX05PVF9NQVRDSElOR1xuICAgICAgICAgIClcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGlmIChub2RlVHlwZSA9PT0gU1VTUEVOU0VfRU5EX0RBVEEgfHwgbm9kZVR5cGUgPT09IEFDVElWSVRZX0VORF9EQVRBKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBub2RlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZUh5ZHJhdGFibGVJbnN0YW5jZUZvckRldldhcm5pbmdzKGluc3RhbmNlKSB7XG4gICAgICBpZiAoMSA9PT0gaW5zdGFuY2Uubm9kZVR5cGUpIHtcbiAgICAgICAgZm9yIChcbiAgICAgICAgICB2YXIgSlNDb21waWxlcl90ZW1wX2NvbnN0ID0gaW5zdGFuY2Uubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzID0ge30sXG4gICAgICAgICAgICBhdHRyaWJ1dGVzID0gaW5zdGFuY2UuYXR0cmlidXRlcyxcbiAgICAgICAgICAgIGkgPSAwO1xuICAgICAgICAgIGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDtcbiAgICAgICAgICBpKytcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIGF0dHIgPSBhdHRyaWJ1dGVzW2ldO1xuICAgICAgICAgIHNlcnZlckRpZmZlcmVuY2VzW2dldFByb3BOYW1lRnJvbUF0dHJpYnV0ZU5hbWUoYXR0ci5uYW1lKV0gPVxuICAgICAgICAgICAgXCJzdHlsZVwiID09PSBhdHRyLm5hbWUudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICA/IGdldFN0eWxlc09iamVjdEZyb21FbGVtZW50KGluc3RhbmNlKVxuICAgICAgICAgICAgICA6IGF0dHIudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgdHlwZTogSlNDb21waWxlcl90ZW1wX2NvbnN0LCBwcm9wczogc2VydmVyRGlmZmVyZW5jZXMgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiA4ID09PSBpbnN0YW5jZS5ub2RlVHlwZVxuICAgICAgICA/IGluc3RhbmNlLmRhdGEgPT09IEFDVElWSVRZX1NUQVJUX0RBVEFcbiAgICAgICAgICA/IHsgdHlwZTogXCJBY3Rpdml0eVwiLCBwcm9wczoge30gfVxuICAgICAgICAgIDogeyB0eXBlOiBcIlN1c3BlbnNlXCIsIHByb3BzOiB7fSB9XG4gICAgICAgIDogaW5zdGFuY2Uubm9kZVZhbHVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBkaWZmSHlkcmF0ZWRUZXh0Rm9yRGV2V2FybmluZ3ModGV4dEluc3RhbmNlLCB0ZXh0LCBwYXJlbnRQcm9wcykge1xuICAgICAgcmV0dXJuIG51bGwgPT09IHBhcmVudFByb3BzIHx8XG4gICAgICAgICEwICE9PSBwYXJlbnRQcm9wc1tTVVBQUkVTU19IWURSQVRJT05fV0FSTklOR11cbiAgICAgICAgPyAodGV4dEluc3RhbmNlLm5vZGVWYWx1ZSA9PT0gdGV4dFxuICAgICAgICAgICAgPyAodGV4dEluc3RhbmNlID0gbnVsbClcbiAgICAgICAgICAgIDogKCh0ZXh0ID0gbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKHRleHQpKSxcbiAgICAgICAgICAgICAgKHRleHRJbnN0YW5jZSA9XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplTWFya3VwRm9yVGV4dE9yQXR0cmlidXRlKHRleHRJbnN0YW5jZS5ub2RlVmFsdWUpID09PVxuICAgICAgICAgICAgICAgIHRleHRcbiAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgOiB0ZXh0SW5zdGFuY2Uubm9kZVZhbHVlKSksXG4gICAgICAgICAgdGV4dEluc3RhbmNlKVxuICAgICAgICA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldE5leHRIeWRyYXRhYmxlSW5zdGFuY2VBZnRlckh5ZHJhdGlvbkJvdW5kYXJ5KFxuICAgICAgaHlkcmF0aW9uSW5zdGFuY2VcbiAgICApIHtcbiAgICAgIGh5ZHJhdGlvbkluc3RhbmNlID0gaHlkcmF0aW9uSW5zdGFuY2UubmV4dFNpYmxpbmc7XG4gICAgICBmb3IgKHZhciBkZXB0aCA9IDA7IGh5ZHJhdGlvbkluc3RhbmNlOyApIHtcbiAgICAgICAgaWYgKDggPT09IGh5ZHJhdGlvbkluc3RhbmNlLm5vZGVUeXBlKSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSBoeWRyYXRpb25JbnN0YW5jZS5kYXRhO1xuICAgICAgICAgIGlmIChkYXRhID09PSBTVVNQRU5TRV9FTkRfREFUQSB8fCBkYXRhID09PSBBQ1RJVklUWV9FTkRfREFUQSkge1xuICAgICAgICAgICAgaWYgKDAgPT09IGRlcHRoKVxuICAgICAgICAgICAgICByZXR1cm4gZ2V0TmV4dEh5ZHJhdGFibGUoaHlkcmF0aW9uSW5zdGFuY2UubmV4dFNpYmxpbmcpO1xuICAgICAgICAgICAgZGVwdGgtLTtcbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIChkYXRhICE9PSBTVVNQRU5TRV9TVEFSVF9EQVRBICYmXG4gICAgICAgICAgICAgIGRhdGEgIT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEgJiZcbiAgICAgICAgICAgICAgZGF0YSAhPT0gU1VTUEVOU0VfUEVORElOR19TVEFSVF9EQVRBICYmXG4gICAgICAgICAgICAgIGRhdGEgIT09IFNVU1BFTlNFX1FVRVVFRF9TVEFSVF9EQVRBICYmXG4gICAgICAgICAgICAgIGRhdGEgIT09IEFDVElWSVRZX1NUQVJUX0RBVEEpIHx8XG4gICAgICAgICAgICAgIGRlcHRoKys7XG4gICAgICAgIH1cbiAgICAgICAgaHlkcmF0aW9uSW5zdGFuY2UgPSBoeWRyYXRpb25JbnN0YW5jZS5uZXh0U2libGluZztcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRQYXJlbnRIeWRyYXRpb25Cb3VuZGFyeSh0YXJnZXRJbnN0YW5jZSkge1xuICAgICAgdGFyZ2V0SW5zdGFuY2UgPSB0YXJnZXRJbnN0YW5jZS5wcmV2aW91c1NpYmxpbmc7XG4gICAgICBmb3IgKHZhciBkZXB0aCA9IDA7IHRhcmdldEluc3RhbmNlOyApIHtcbiAgICAgICAgaWYgKDggPT09IHRhcmdldEluc3RhbmNlLm5vZGVUeXBlKSB7XG4gICAgICAgICAgdmFyIGRhdGEgPSB0YXJnZXRJbnN0YW5jZS5kYXRhO1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGRhdGEgPT09IFNVU1BFTlNFX1NUQVJUX0RBVEEgfHxcbiAgICAgICAgICAgIGRhdGEgPT09IFNVU1BFTlNFX0ZBTExCQUNLX1NUQVJUX0RBVEEgfHxcbiAgICAgICAgICAgIGRhdGEgPT09IFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSB8fFxuICAgICAgICAgICAgZGF0YSA9PT0gU1VTUEVOU0VfUVVFVUVEX1NUQVJUX0RBVEEgfHxcbiAgICAgICAgICAgIGRhdGEgPT09IEFDVElWSVRZX1NUQVJUX0RBVEFcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGlmICgwID09PSBkZXB0aCkgcmV0dXJuIHRhcmdldEluc3RhbmNlO1xuICAgICAgICAgICAgZGVwdGgtLTtcbiAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgIChkYXRhICE9PSBTVVNQRU5TRV9FTkRfREFUQSAmJiBkYXRhICE9PSBBQ1RJVklUWV9FTkRfREFUQSkgfHxcbiAgICAgICAgICAgICAgZGVwdGgrKztcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXRJbnN0YW5jZSA9IHRhcmdldEluc3RhbmNlLnByZXZpb3VzU2libGluZztcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjb21taXRIeWRyYXRlZENvbnRhaW5lcihjb250YWluZXIpIHtcbiAgICAgIHJldHJ5SWZCbG9ja2VkT24oY29udGFpbmVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tbWl0SHlkcmF0ZWRBY3Rpdml0eUluc3RhbmNlKGFjdGl2aXR5SW5zdGFuY2UpIHtcbiAgICAgIHJldHJ5SWZCbG9ja2VkT24oYWN0aXZpdHlJbnN0YW5jZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvbW1pdEh5ZHJhdGVkU3VzcGVuc2VJbnN0YW5jZShzdXNwZW5zZUluc3RhbmNlKSB7XG4gICAgICByZXRyeUlmQmxvY2tlZE9uKHN1c3BlbnNlSW5zdGFuY2UpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlU2luZ2xldG9uSW5zdGFuY2UoXG4gICAgICB0eXBlLFxuICAgICAgcHJvcHMsXG4gICAgICByb290Q29udGFpbmVySW5zdGFuY2UsXG4gICAgICBob3N0Q29udGV4dCxcbiAgICAgIHZhbGlkYXRlRE9NTmVzdGluZ0RldlxuICAgICkge1xuICAgICAgdmFsaWRhdGVET01OZXN0aW5nRGV2ICYmXG4gICAgICAgIHZhbGlkYXRlRE9NTmVzdGluZyh0eXBlLCBob3N0Q29udGV4dC5hbmNlc3RvckluZm8pO1xuICAgICAgcHJvcHMgPSBnZXRPd25lckRvY3VtZW50RnJvbVJvb3RDb250YWluZXIocm9vdENvbnRhaW5lckluc3RhbmNlKTtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFwiaHRtbFwiOlxuICAgICAgICAgIHR5cGUgPSBwcm9wcy5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgICAgaWYgKCF0eXBlKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3QgZXhwZWN0ZWQgYW4gPGh0bWw+IGVsZW1lbnQgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkgdG8gZXhpc3QgaW4gdGhlIERvY3VtZW50IGJ1dCBvbmUgd2FzIG5vdCBmb3VuZC4gUmVhY3QgbmV2ZXIgcmVtb3ZlcyB0aGUgZG9jdW1lbnRFbGVtZW50IGZvciBhbnkgRG9jdW1lbnQgaXQgcmVuZGVycyBpbnRvIHNvIHRoZSBjYXVzZSBpcyBsaWtlbHkgaW4gc29tZSBvdGhlciBzY3JpcHQgcnVubmluZyBvbiB0aGlzIHBhZ2UuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgIGNhc2UgXCJoZWFkXCI6XG4gICAgICAgICAgdHlwZSA9IHByb3BzLmhlYWQ7XG4gICAgICAgICAgaWYgKCF0eXBlKVxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3QgZXhwZWN0ZWQgYSA8aGVhZD4gZWxlbWVudCAoZG9jdW1lbnQuaGVhZCkgdG8gZXhpc3QgaW4gdGhlIERvY3VtZW50IGJ1dCBvbmUgd2FzIG5vdCBmb3VuZC4gUmVhY3QgbmV2ZXIgcmVtb3ZlcyB0aGUgaGVhZCBmb3IgYW55IERvY3VtZW50IGl0IHJlbmRlcnMgaW50byBzbyB0aGUgY2F1c2UgaXMgbGlrZWx5IGluIHNvbWUgb3RoZXIgc2NyaXB0IHJ1bm5pbmcgb24gdGhpcyBwYWdlLlwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICBjYXNlIFwiYm9keVwiOlxuICAgICAgICAgIHR5cGUgPSBwcm9wcy5ib2R5O1xuICAgICAgICAgIGlmICghdHlwZSlcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICBcIlJlYWN0IGV4cGVjdGVkIGEgPGJvZHk+IGVsZW1lbnQgKGRvY3VtZW50LmJvZHkpIHRvIGV4aXN0IGluIHRoZSBEb2N1bWVudCBidXQgb25lIHdhcyBub3QgZm91bmQuIFJlYWN0IG5ldmVyIHJlbW92ZXMgdGhlIGJvZHkgZm9yIGFueSBEb2N1bWVudCBpdCByZW5kZXJzIGludG8gc28gdGhlIGNhdXNlIGlzIGxpa2VseSBpbiBzb21lIG90aGVyIHNjcmlwdCBydW5uaW5nIG9uIHRoaXMgcGFnZS5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gdHlwZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgIFwicmVzb2x2ZVNpbmdsZXRvbkluc3RhbmNlIHdhcyBjYWxsZWQgd2l0aCBhbiBlbGVtZW50IHR5cGUgdGhhdCBpcyBub3Qgc3VwcG9ydGVkLiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gYWNxdWlyZVNpbmdsZXRvbkluc3RhbmNlKFxuICAgICAgdHlwZSxcbiAgICAgIHByb3BzLFxuICAgICAgaW5zdGFuY2UsXG4gICAgICBpbnRlcm5hbEluc3RhbmNlSGFuZGxlXG4gICAgKSB7XG4gICAgICBpZiAoXG4gICAgICAgICFpbnN0YW5jZVtpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSAmJlxuICAgICAgICBnZXRJbnN0YW5jZUZyb21Ob2RlKGluc3RhbmNlKVxuICAgICAgKSB7XG4gICAgICAgIHZhciB0YWdOYW1lID0gaW5zdGFuY2UudGFnTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiWW91IGFyZSBtb3VudGluZyBhIG5ldyAlcyBjb21wb25lbnQgd2hlbiBhIHByZXZpb3VzIG9uZSBoYXMgbm90IGZpcnN0IHVubW91bnRlZC4gSXQgaXMgYW4gZXJyb3IgdG8gcmVuZGVyIG1vcmUgdGhhbiBvbmUgJXMgY29tcG9uZW50IGF0IGEgdGltZSBhbmQgYXR0cmlidXRlcyBhbmQgY2hpbGRyZW4gb2YgdGhlc2UgY29tcG9uZW50cyB3aWxsIGxpa2VseSBmYWlsIGluIHVucHJlZGljdGFibGUgd2F5cy4gUGxlYXNlIG9ubHkgcmVuZGVyIGEgc2luZ2xlIGluc3RhbmNlIG9mIDwlcz4gYW5kIGlmIHlvdSBuZWVkIHRvIG1vdW50IGEgbmV3IG9uZSwgZW5zdXJlIGFueSBwcmV2aW91cyBvbmVzIGhhdmUgdW5tb3VudGVkIGZpcnN0LlwiLFxuICAgICAgICAgIHRhZ05hbWUsXG4gICAgICAgICAgdGFnTmFtZSxcbiAgICAgICAgICB0YWdOYW1lXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBcImh0bWxcIjpcbiAgICAgICAgY2FzZSBcImhlYWRcIjpcbiAgICAgICAgY2FzZSBcImJvZHlcIjpcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJhY3F1aXJlU2luZ2xldG9uSW5zdGFuY2Ugd2FzIGNhbGxlZCB3aXRoIGFuIGVsZW1lbnQgdHlwZSB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgZm9yICh0YWdOYW1lID0gaW5zdGFuY2UuYXR0cmlidXRlczsgdGFnTmFtZS5sZW5ndGg7IClcbiAgICAgICAgaW5zdGFuY2UucmVtb3ZlQXR0cmlidXRlTm9kZSh0YWdOYW1lWzBdKTtcbiAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKGluc3RhbmNlLCB0eXBlLCBwcm9wcyk7XG4gICAgICBpbnN0YW5jZVtpbnRlcm5hbEluc3RhbmNlS2V5XSA9IGludGVybmFsSW5zdGFuY2VIYW5kbGU7XG4gICAgICBpbnN0YW5jZVtpbnRlcm5hbFByb3BzS2V5XSA9IHByb3BzO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZWxlYXNlU2luZ2xldG9uSW5zdGFuY2UoaW5zdGFuY2UpIHtcbiAgICAgIGZvciAodmFyIGF0dHJpYnV0ZXMgPSBpbnN0YW5jZS5hdHRyaWJ1dGVzOyBhdHRyaWJ1dGVzLmxlbmd0aDsgKVxuICAgICAgICBpbnN0YW5jZS5yZW1vdmVBdHRyaWJ1dGVOb2RlKGF0dHJpYnV0ZXNbMF0pO1xuICAgICAgZGV0YWNoRGVsZXRlZEluc3RhbmNlKGluc3RhbmNlKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SG9pc3RhYmxlUm9vdChjb250YWluZXIpIHtcbiAgICAgIHJldHVybiBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBjb250YWluZXIuZ2V0Um9vdE5vZGVcbiAgICAgICAgPyBjb250YWluZXIuZ2V0Um9vdE5vZGUoKVxuICAgICAgICA6IDkgPT09IGNvbnRhaW5lci5ub2RlVHlwZVxuICAgICAgICAgID8gY29udGFpbmVyXG4gICAgICAgICAgOiBjb250YWluZXIub3duZXJEb2N1bWVudDtcbiAgICB9XG4gICAgZnVuY3Rpb24gcHJlY29ubmVjdEFzKHJlbCwgaHJlZiwgY3Jvc3NPcmlnaW4pIHtcbiAgICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2xvYmFsRG9jdW1lbnQ7XG4gICAgICBpZiAob3duZXJEb2N1bWVudCAmJiBcInN0cmluZ1wiID09PSB0eXBlb2YgaHJlZiAmJiBocmVmKSB7XG4gICAgICAgIHZhciBsaW1pdGVkRXNjYXBlZEhyZWYgPVxuICAgICAgICAgIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoaHJlZik7XG4gICAgICAgIGxpbWl0ZWRFc2NhcGVkSHJlZiA9XG4gICAgICAgICAgJ2xpbmtbcmVsPVwiJyArIHJlbCArICdcIl1baHJlZj1cIicgKyBsaW1pdGVkRXNjYXBlZEhyZWYgKyAnXCJdJztcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGNyb3NzT3JpZ2luICYmXG4gICAgICAgICAgKGxpbWl0ZWRFc2NhcGVkSHJlZiArPSAnW2Nyb3Nzb3JpZ2luPVwiJyArIGNyb3NzT3JpZ2luICsgJ1wiXScpO1xuICAgICAgICBwcmVjb25uZWN0c1NldC5oYXMobGltaXRlZEVzY2FwZWRIcmVmKSB8fFxuICAgICAgICAgIChwcmVjb25uZWN0c1NldC5hZGQobGltaXRlZEVzY2FwZWRIcmVmKSxcbiAgICAgICAgICAocmVsID0geyByZWw6IHJlbCwgY3Jvc3NPcmlnaW46IGNyb3NzT3JpZ2luLCBocmVmOiBocmVmIH0pLFxuICAgICAgICAgIG51bGwgPT09IG93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvcihsaW1pdGVkRXNjYXBlZEhyZWYpICYmXG4gICAgICAgICAgICAoKGhyZWYgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpKSxcbiAgICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKGhyZWYsIFwibGlua1wiLCByZWwpLFxuICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShocmVmKSxcbiAgICAgICAgICAgIG93bmVyRG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChocmVmKSkpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRSZXNvdXJjZSh0eXBlLCBjdXJyZW50UHJvcHMsIHBlbmRpbmdQcm9wcywgY3VycmVudFJlc291cmNlKSB7XG4gICAgICB2YXIgcmVzb3VyY2VSb290ID0gKHJlc291cmNlUm9vdCA9IHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yLmN1cnJlbnQpXG4gICAgICAgID8gZ2V0SG9pc3RhYmxlUm9vdChyZXNvdXJjZVJvb3QpXG4gICAgICAgIDogbnVsbDtcbiAgICAgIGlmICghcmVzb3VyY2VSb290KVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAnXCJyZXNvdXJjZVJvb3RcIiB3YXMgZXhwZWN0ZWQgdG8gZXhpc3QuIFRoaXMgaXMgYSBidWcgaW4gUmVhY3QuJ1xuICAgICAgICApO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgXCJtZXRhXCI6XG4gICAgICAgIGNhc2UgXCJ0aXRsZVwiOlxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIFwic3R5bGVcIjpcbiAgICAgICAgICByZXR1cm4gXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHBlbmRpbmdQcm9wcy5wcmVjZWRlbmNlICYmXG4gICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgcGVuZGluZ1Byb3BzLmhyZWZcbiAgICAgICAgICAgID8gKChwZW5kaW5nUHJvcHMgPSBnZXRTdHlsZUtleShwZW5kaW5nUHJvcHMuaHJlZikpLFxuICAgICAgICAgICAgICAoY3VycmVudFByb3BzID1cbiAgICAgICAgICAgICAgICBnZXRSZXNvdXJjZXNGcm9tUm9vdChyZXNvdXJjZVJvb3QpLmhvaXN0YWJsZVN0eWxlcyksXG4gICAgICAgICAgICAgIChjdXJyZW50UmVzb3VyY2UgPSBjdXJyZW50UHJvcHMuZ2V0KHBlbmRpbmdQcm9wcykpLFxuICAgICAgICAgICAgICBjdXJyZW50UmVzb3VyY2UgfHxcbiAgICAgICAgICAgICAgICAoKGN1cnJlbnRSZXNvdXJjZSA9IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFwic3R5bGVcIixcbiAgICAgICAgICAgICAgICAgIGluc3RhbmNlOiBudWxsLFxuICAgICAgICAgICAgICAgICAgY291bnQ6IDAsXG4gICAgICAgICAgICAgICAgICBzdGF0ZTogbnVsbFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRQcm9wcy5zZXQocGVuZGluZ1Byb3BzLCBjdXJyZW50UmVzb3VyY2UpKSxcbiAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlKVxuICAgICAgICAgICAgOiB7IHR5cGU6IFwidm9pZFwiLCBpbnN0YW5jZTogbnVsbCwgY291bnQ6IDAsIHN0YXRlOiBudWxsIH07XG4gICAgICAgIGNhc2UgXCJsaW5rXCI6XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgXCJzdHlsZXNoZWV0XCIgPT09IHBlbmRpbmdQcm9wcy5yZWwgJiZcbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBwZW5kaW5nUHJvcHMuaHJlZiAmJlxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHBlbmRpbmdQcm9wcy5wcmVjZWRlbmNlXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0eXBlID0gZ2V0U3R5bGVLZXkocGVuZGluZ1Byb3BzLmhyZWYpO1xuICAgICAgICAgICAgdmFyIF9zdHlsZXMgPSBnZXRSZXNvdXJjZXNGcm9tUm9vdChyZXNvdXJjZVJvb3QpLmhvaXN0YWJsZVN0eWxlcyxcbiAgICAgICAgICAgICAgX3Jlc291cmNlID0gX3N0eWxlcy5nZXQodHlwZSk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICFfcmVzb3VyY2UgJiZcbiAgICAgICAgICAgICAgKChyZXNvdXJjZVJvb3QgPSByZXNvdXJjZVJvb3Qub3duZXJEb2N1bWVudCB8fCByZXNvdXJjZVJvb3QpLFxuICAgICAgICAgICAgICAoX3Jlc291cmNlID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwic3R5bGVzaGVldFwiLFxuICAgICAgICAgICAgICAgIGluc3RhbmNlOiBudWxsLFxuICAgICAgICAgICAgICAgIGNvdW50OiAwLFxuICAgICAgICAgICAgICAgIHN0YXRlOiB7IGxvYWRpbmc6IE5vdExvYWRlZCwgcHJlbG9hZDogbnVsbCB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBfc3R5bGVzLnNldCh0eXBlLCBfcmVzb3VyY2UpLFxuICAgICAgICAgICAgICAoX3N0eWxlcyA9IHJlc291cmNlUm9vdC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgIGdldFN0eWxlc2hlZXRTZWxlY3RvckZyb21LZXkodHlwZSlcbiAgICAgICAgICAgICAgKSkgJiZcbiAgICAgICAgICAgICAgICAhX3N0eWxlcy5fcCAmJlxuICAgICAgICAgICAgICAgICgoX3Jlc291cmNlLmluc3RhbmNlID0gX3N0eWxlcyksXG4gICAgICAgICAgICAgICAgKF9yZXNvdXJjZS5zdGF0ZS5sb2FkaW5nID0gTG9hZGVkIHwgSW5zZXJ0ZWQpKSxcbiAgICAgICAgICAgICAgIXByZWxvYWRQcm9wc01hcC5oYXModHlwZSkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdmFyIHByZWxvYWRQcm9wcyA9IHtcbiAgICAgICAgICAgICAgICByZWw6IFwicHJlbG9hZFwiLFxuICAgICAgICAgICAgICAgIGFzOiBcInN0eWxlXCIsXG4gICAgICAgICAgICAgICAgaHJlZjogcGVuZGluZ1Byb3BzLmhyZWYsXG4gICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IHBlbmRpbmdQcm9wcy5jcm9zc09yaWdpbixcbiAgICAgICAgICAgICAgICBpbnRlZ3JpdHk6IHBlbmRpbmdQcm9wcy5pbnRlZ3JpdHksXG4gICAgICAgICAgICAgICAgbWVkaWE6IHBlbmRpbmdQcm9wcy5tZWRpYSxcbiAgICAgICAgICAgICAgICBocmVmTGFuZzogcGVuZGluZ1Byb3BzLmhyZWZMYW5nLFxuICAgICAgICAgICAgICAgIHJlZmVycmVyUG9saWN5OiBwZW5kaW5nUHJvcHMucmVmZXJyZXJQb2xpY3lcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgcHJlbG9hZFByb3BzTWFwLnNldCh0eXBlLCBwcmVsb2FkUHJvcHMpO1xuICAgICAgICAgICAgICBfc3R5bGVzIHx8XG4gICAgICAgICAgICAgICAgcHJlbG9hZFN0eWxlc2hlZXQoXG4gICAgICAgICAgICAgICAgICByZXNvdXJjZVJvb3QsXG4gICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgcHJlbG9hZFByb3BzLFxuICAgICAgICAgICAgICAgICAgX3Jlc291cmNlLnN0YXRlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50UHJvcHMgJiYgbnVsbCA9PT0gY3VycmVudFJlc291cmNlKVxuICAgICAgICAgICAgICB0aHJvdyAoXG4gICAgICAgICAgICAgICAgKChwZW5kaW5nUHJvcHMgPVxuICAgICAgICAgICAgICAgICAgXCJcXG5cXG4gIC0gXCIgK1xuICAgICAgICAgICAgICAgICAgZGVzY3JpYmVMaW5rRm9yUmVzb3VyY2VFcnJvckRFVihjdXJyZW50UHJvcHMpICtcbiAgICAgICAgICAgICAgICAgIFwiXFxuICArIFwiICtcbiAgICAgICAgICAgICAgICAgIGRlc2NyaWJlTGlua0ZvclJlc291cmNlRXJyb3JERVYocGVuZGluZ1Byb3BzKSksXG4gICAgICAgICAgICAgICAgRXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIkV4cGVjdGVkIDxsaW5rPiBub3QgdG8gdXBkYXRlIHRvIGJlIHVwZGF0ZWQgdG8gYSBzdHlsZXNoZWV0IHdpdGggcHJlY2VkZW5jZS4gQ2hlY2sgdGhlIGByZWxgLCBgaHJlZmAsIGFuZCBgcHJlY2VkZW5jZWAgcHJvcHMgb2YgdGhpcyBjb21wb25lbnQuIEFsdGVybmF0aXZlbHksIGNoZWNrIHdoZXRoZXIgdHdvIGRpZmZlcmVudCA8bGluaz4gY29tcG9uZW50cyByZW5kZXIgaW4gdGhlIHNhbWUgc2xvdCBvciBzaGFyZSB0aGUgc2FtZSBrZXkuXCIgK1xuICAgICAgICAgICAgICAgICAgICBwZW5kaW5nUHJvcHNcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIF9yZXNvdXJjZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnRQcm9wcyAmJiBudWxsICE9PSBjdXJyZW50UmVzb3VyY2UpXG4gICAgICAgICAgICB0aHJvdyAoXG4gICAgICAgICAgICAgICgocGVuZGluZ1Byb3BzID1cbiAgICAgICAgICAgICAgICBcIlxcblxcbiAgLSBcIiArXG4gICAgICAgICAgICAgICAgZGVzY3JpYmVMaW5rRm9yUmVzb3VyY2VFcnJvckRFVihjdXJyZW50UHJvcHMpICtcbiAgICAgICAgICAgICAgICBcIlxcbiAgKyBcIiArXG4gICAgICAgICAgICAgICAgZGVzY3JpYmVMaW5rRm9yUmVzb3VyY2VFcnJvckRFVihwZW5kaW5nUHJvcHMpKSxcbiAgICAgICAgICAgICAgRXJyb3IoXG4gICAgICAgICAgICAgICAgXCJFeHBlY3RlZCBzdHlsZXNoZWV0IHdpdGggcHJlY2VkZW5jZSB0byBub3QgYmUgdXBkYXRlZCB0byBhIGRpZmZlcmVudCBraW5kIG9mIDxsaW5rPi4gQ2hlY2sgdGhlIGByZWxgLCBgaHJlZmAsIGFuZCBgcHJlY2VkZW5jZWAgcHJvcHMgb2YgdGhpcyBjb21wb25lbnQuIEFsdGVybmF0aXZlbHksIGNoZWNrIHdoZXRoZXIgdHdvIGRpZmZlcmVudCA8bGluaz4gY29tcG9uZW50cyByZW5kZXIgaW4gdGhlIHNhbWUgc2xvdCBvciBzaGFyZSB0aGUgc2FtZSBrZXkuXCIgK1xuICAgICAgICAgICAgICAgICAgcGVuZGluZ1Byb3BzXG4gICAgICAgICAgICAgICkpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBjYXNlIFwic2NyaXB0XCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChjdXJyZW50UHJvcHMgPSBwZW5kaW5nUHJvcHMuYXN5bmMpLFxuICAgICAgICAgICAgKHBlbmRpbmdQcm9wcyA9IHBlbmRpbmdQcm9wcy5zcmMpLFxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHBlbmRpbmdQcm9wcyAmJlxuICAgICAgICAgICAgY3VycmVudFByb3BzICYmXG4gICAgICAgICAgICBcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBjdXJyZW50UHJvcHMgJiZcbiAgICAgICAgICAgIFwic3ltYm9sXCIgIT09IHR5cGVvZiBjdXJyZW50UHJvcHNcbiAgICAgICAgICAgICAgPyAoKHBlbmRpbmdQcm9wcyA9IGdldFNjcmlwdEtleShwZW5kaW5nUHJvcHMpKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudFByb3BzID1cbiAgICAgICAgICAgICAgICAgIGdldFJlc291cmNlc0Zyb21Sb290KHJlc291cmNlUm9vdCkuaG9pc3RhYmxlU2NyaXB0cyksXG4gICAgICAgICAgICAgICAgKGN1cnJlbnRSZXNvdXJjZSA9IGN1cnJlbnRQcm9wcy5nZXQocGVuZGluZ1Byb3BzKSksXG4gICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlIHx8XG4gICAgICAgICAgICAgICAgICAoKGN1cnJlbnRSZXNvdXJjZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJzY3JpcHRcIixcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2U6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgIGNvdW50OiAwLFxuICAgICAgICAgICAgICAgICAgICBzdGF0ZTogbnVsbFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICBjdXJyZW50UHJvcHMuc2V0KHBlbmRpbmdQcm9wcywgY3VycmVudFJlc291cmNlKSksXG4gICAgICAgICAgICAgICAgY3VycmVudFJlc291cmNlKVxuICAgICAgICAgICAgICA6IHsgdHlwZTogXCJ2b2lkXCIsIGluc3RhbmNlOiBudWxsLCBjb3VudDogMCwgc3RhdGU6IG51bGwgfVxuICAgICAgICAgICk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICAnZ2V0UmVzb3VyY2UgZW5jb3VudGVyZWQgYSB0eXBlIGl0IGRpZCBub3QgZXhwZWN0OiBcIicgK1xuICAgICAgICAgICAgICB0eXBlICtcbiAgICAgICAgICAgICAgJ1wiLiB0aGlzIGlzIGEgYnVnIGluIFJlYWN0LidcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkZXNjcmliZUxpbmtGb3JSZXNvdXJjZUVycm9yREVWKHByb3BzKSB7XG4gICAgICB2YXIgZGVzY3JpYmVkUHJvcHMgPSAwLFxuICAgICAgICBkZXNjcmlwdGlvbiA9IFwiPGxpbmtcIjtcbiAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBwcm9wcy5yZWxcbiAgICAgICAgPyAoZGVzY3JpYmVkUHJvcHMrKywgKGRlc2NyaXB0aW9uICs9ICcgcmVsPVwiJyArIHByb3BzLnJlbCArICdcIicpKVxuICAgICAgICA6IGhhc093blByb3BlcnR5LmNhbGwocHJvcHMsIFwicmVsXCIpICYmXG4gICAgICAgICAgKGRlc2NyaWJlZFByb3BzKyssXG4gICAgICAgICAgKGRlc2NyaXB0aW9uICs9XG4gICAgICAgICAgICAnIHJlbD1cIicgK1xuICAgICAgICAgICAgKG51bGwgPT09IHByb3BzLnJlbCA/IFwibnVsbFwiIDogXCJpbnZhbGlkIHR5cGUgXCIgKyB0eXBlb2YgcHJvcHMucmVsKSArXG4gICAgICAgICAgICAnXCInKSk7XG4gICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgcHJvcHMuaHJlZlxuICAgICAgICA/IChkZXNjcmliZWRQcm9wcysrLCAoZGVzY3JpcHRpb24gKz0gJyBocmVmPVwiJyArIHByb3BzLmhyZWYgKyAnXCInKSlcbiAgICAgICAgOiBoYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLCBcImhyZWZcIikgJiZcbiAgICAgICAgICAoZGVzY3JpYmVkUHJvcHMrKyxcbiAgICAgICAgICAoZGVzY3JpcHRpb24gKz1cbiAgICAgICAgICAgICcgaHJlZj1cIicgK1xuICAgICAgICAgICAgKG51bGwgPT09IHByb3BzLmhyZWZcbiAgICAgICAgICAgICAgPyBcIm51bGxcIlxuICAgICAgICAgICAgICA6IFwiaW52YWxpZCB0eXBlIFwiICsgdHlwZW9mIHByb3BzLmhyZWYpICtcbiAgICAgICAgICAgICdcIicpKTtcbiAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBwcm9wcy5wcmVjZWRlbmNlXG4gICAgICAgID8gKGRlc2NyaWJlZFByb3BzKyssXG4gICAgICAgICAgKGRlc2NyaXB0aW9uICs9ICcgcHJlY2VkZW5jZT1cIicgKyBwcm9wcy5wcmVjZWRlbmNlICsgJ1wiJykpXG4gICAgICAgIDogaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcywgXCJwcmVjZWRlbmNlXCIpICYmXG4gICAgICAgICAgKGRlc2NyaWJlZFByb3BzKyssXG4gICAgICAgICAgKGRlc2NyaXB0aW9uICs9XG4gICAgICAgICAgICBcIiBwcmVjZWRlbmNlPXtcIiArXG4gICAgICAgICAgICAobnVsbCA9PT0gcHJvcHMucHJlY2VkZW5jZVxuICAgICAgICAgICAgICA/IFwibnVsbFwiXG4gICAgICAgICAgICAgIDogXCJpbnZhbGlkIHR5cGUgXCIgKyB0eXBlb2YgcHJvcHMucHJlY2VkZW5jZSkgK1xuICAgICAgICAgICAgXCJ9XCIpKTtcbiAgICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3BzKS5sZW5ndGggPiBkZXNjcmliZWRQcm9wcyAmJlxuICAgICAgICAoZGVzY3JpcHRpb24gKz0gXCIgLi4uXCIpO1xuICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uICsgXCIgLz5cIjtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U3R5bGVLZXkoaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJ2hyZWY9XCInICsgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhocmVmKSArICdcIidcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFN0eWxlc2hlZXRTZWxlY3RvckZyb21LZXkoa2V5KSB7XG4gICAgICByZXR1cm4gJ2xpbmtbcmVsPVwic3R5bGVzaGVldFwiXVsnICsga2V5ICsgXCJdXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN0eWxlc2hlZXRQcm9wc0Zyb21SYXdQcm9wcyhyYXdQcm9wcykge1xuICAgICAgcmV0dXJuIGFzc2lnbih7fSwgcmF3UHJvcHMsIHtcbiAgICAgICAgXCJkYXRhLXByZWNlZGVuY2VcIjogcmF3UHJvcHMucHJlY2VkZW5jZSxcbiAgICAgICAgcHJlY2VkZW5jZTogbnVsbFxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByZWxvYWRTdHlsZXNoZWV0KG93bmVyRG9jdW1lbnQsIGtleSwgcHJlbG9hZFByb3BzLCBzdGF0ZSkge1xuICAgICAgb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAnbGlua1tyZWw9XCJwcmVsb2FkXCJdW2FzPVwic3R5bGVcIl1bJyArIGtleSArIFwiXVwiXG4gICAgICApXG4gICAgICAgID8gKHN0YXRlLmxvYWRpbmcgPSBMb2FkZWQpXG4gICAgICAgIDogKChrZXkgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpKSxcbiAgICAgICAgICAoc3RhdGUucHJlbG9hZCA9IGtleSksXG4gICAgICAgICAga2V5LmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiAoc3RhdGUubG9hZGluZyB8PSBMb2FkZWQpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGtleS5hZGRFdmVudExpc3RlbmVyKFwiZXJyb3JcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIChzdGF0ZS5sb2FkaW5nIHw9IEVycm9yZWQpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKGtleSwgXCJsaW5rXCIsIHByZWxvYWRQcm9wcyksXG4gICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShrZXkpLFxuICAgICAgICAgIG93bmVyRG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChrZXkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0U2NyaXB0S2V5KHNyYykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJ1tzcmM9XCInICsgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhzcmMpICsgJ1wiXSdcbiAgICAgICk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFNjcmlwdFNlbGVjdG9yRnJvbUtleShrZXkpIHtcbiAgICAgIHJldHVybiBcInNjcmlwdFthc3luY11cIiArIGtleTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWNxdWlyZVJlc291cmNlKGhvaXN0YWJsZVJvb3QsIHJlc291cmNlLCBwcm9wcykge1xuICAgICAgcmVzb3VyY2UuY291bnQrKztcbiAgICAgIGlmIChudWxsID09PSByZXNvdXJjZS5pbnN0YW5jZSlcbiAgICAgICAgc3dpdGNoIChyZXNvdXJjZS50eXBlKSB7XG4gICAgICAgICAgY2FzZSBcInN0eWxlXCI6XG4gICAgICAgICAgICB2YXIgaW5zdGFuY2UgPSBob2lzdGFibGVSb290LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICAgICAgICdzdHlsZVtkYXRhLWhyZWZ+PVwiJyArXG4gICAgICAgICAgICAgICAgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3Rlcyhwcm9wcy5ocmVmKSArXG4gICAgICAgICAgICAgICAgJ1wiXSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoaW5zdGFuY2UpXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKHJlc291cmNlLmluc3RhbmNlID0gaW5zdGFuY2UpLFxuICAgICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoaW5zdGFuY2UpLFxuICAgICAgICAgICAgICAgIGluc3RhbmNlXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB2YXIgc3R5bGVQcm9wcyA9IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICAgICAgXCJkYXRhLWhyZWZcIjogcHJvcHMuaHJlZixcbiAgICAgICAgICAgICAgXCJkYXRhLXByZWNlZGVuY2VcIjogcHJvcHMucHJlY2VkZW5jZSxcbiAgICAgICAgICAgICAgaHJlZjogbnVsbCxcbiAgICAgICAgICAgICAgcHJlY2VkZW5jZTogbnVsbFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpbnN0YW5jZSA9IChcbiAgICAgICAgICAgICAgaG9pc3RhYmxlUm9vdC5vd25lckRvY3VtZW50IHx8IGhvaXN0YWJsZVJvb3RcbiAgICAgICAgICAgICkuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShpbnN0YW5jZSk7XG4gICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhpbnN0YW5jZSwgXCJzdHlsZVwiLCBzdHlsZVByb3BzKTtcbiAgICAgICAgICAgIGluc2VydFN0eWxlc2hlZXQoaW5zdGFuY2UsIHByb3BzLnByZWNlZGVuY2UsIGhvaXN0YWJsZVJvb3QpO1xuICAgICAgICAgICAgcmV0dXJuIChyZXNvdXJjZS5pbnN0YW5jZSA9IGluc3RhbmNlKTtcbiAgICAgICAgICBjYXNlIFwic3R5bGVzaGVldFwiOlxuICAgICAgICAgICAgc3R5bGVQcm9wcyA9IGdldFN0eWxlS2V5KHByb3BzLmhyZWYpO1xuICAgICAgICAgICAgdmFyIF9pbnN0YW5jZSA9IGhvaXN0YWJsZVJvb3QucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgZ2V0U3R5bGVzaGVldFNlbGVjdG9yRnJvbUtleShzdHlsZVByb3BzKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChfaW5zdGFuY2UpXG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKHJlc291cmNlLnN0YXRlLmxvYWRpbmcgfD0gSW5zZXJ0ZWQpLFxuICAgICAgICAgICAgICAgIChyZXNvdXJjZS5pbnN0YW5jZSA9IF9pbnN0YW5jZSksXG4gICAgICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShfaW5zdGFuY2UpLFxuICAgICAgICAgICAgICAgIF9pbnN0YW5jZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgaW5zdGFuY2UgPSBzdHlsZXNoZWV0UHJvcHNGcm9tUmF3UHJvcHMocHJvcHMpO1xuICAgICAgICAgICAgKHN0eWxlUHJvcHMgPSBwcmVsb2FkUHJvcHNNYXAuZ2V0KHN0eWxlUHJvcHMpKSAmJlxuICAgICAgICAgICAgICBhZG9wdFByZWxvYWRQcm9wc0ZvclN0eWxlc2hlZXQoaW5zdGFuY2UsIHN0eWxlUHJvcHMpO1xuICAgICAgICAgICAgX2luc3RhbmNlID0gKFxuICAgICAgICAgICAgICBob2lzdGFibGVSb290Lm93bmVyRG9jdW1lbnQgfHwgaG9pc3RhYmxlUm9vdFxuICAgICAgICAgICAgKS5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtcbiAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoX2luc3RhbmNlKTtcbiAgICAgICAgICAgIHZhciBsaW5rSW5zdGFuY2UgPSBfaW5zdGFuY2U7XG4gICAgICAgICAgICBsaW5rSW5zdGFuY2UuX3AgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICAgIGxpbmtJbnN0YW5jZS5vbmxvYWQgPSByZXNvbHZlO1xuICAgICAgICAgICAgICBsaW5rSW5zdGFuY2Uub25lcnJvciA9IHJlamVjdDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoX2luc3RhbmNlLCBcImxpbmtcIiwgaW5zdGFuY2UpO1xuICAgICAgICAgICAgcmVzb3VyY2Uuc3RhdGUubG9hZGluZyB8PSBJbnNlcnRlZDtcbiAgICAgICAgICAgIGluc2VydFN0eWxlc2hlZXQoX2luc3RhbmNlLCBwcm9wcy5wcmVjZWRlbmNlLCBob2lzdGFibGVSb290KTtcbiAgICAgICAgICAgIHJldHVybiAocmVzb3VyY2UuaW5zdGFuY2UgPSBfaW5zdGFuY2UpO1xuICAgICAgICAgIGNhc2UgXCJzY3JpcHRcIjpcbiAgICAgICAgICAgIF9pbnN0YW5jZSA9IGdldFNjcmlwdEtleShwcm9wcy5zcmMpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoc3R5bGVQcm9wcyA9IGhvaXN0YWJsZVJvb3QucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICBnZXRTY3JpcHRTZWxlY3RvckZyb21LZXkoX2luc3RhbmNlKVxuICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIChyZXNvdXJjZS5pbnN0YW5jZSA9IHN0eWxlUHJvcHMpLFxuICAgICAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoc3R5bGVQcm9wcyksXG4gICAgICAgICAgICAgICAgc3R5bGVQcm9wc1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgaW5zdGFuY2UgPSBwcm9wcztcbiAgICAgICAgICAgIGlmICgoc3R5bGVQcm9wcyA9IHByZWxvYWRQcm9wc01hcC5nZXQoX2luc3RhbmNlKSkpXG4gICAgICAgICAgICAgIChpbnN0YW5jZSA9IGFzc2lnbih7fSwgcHJvcHMpKSxcbiAgICAgICAgICAgICAgICBhZG9wdFByZWxvYWRQcm9wc0ZvclNjcmlwdChpbnN0YW5jZSwgc3R5bGVQcm9wcyk7XG4gICAgICAgICAgICBob2lzdGFibGVSb290ID0gaG9pc3RhYmxlUm9vdC5vd25lckRvY3VtZW50IHx8IGhvaXN0YWJsZVJvb3Q7XG4gICAgICAgICAgICBzdHlsZVByb3BzID0gaG9pc3RhYmxlUm9vdC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShzdHlsZVByb3BzKTtcbiAgICAgICAgICAgIHNldEluaXRpYWxQcm9wZXJ0aWVzKHN0eWxlUHJvcHMsIFwibGlua1wiLCBpbnN0YW5jZSk7XG4gICAgICAgICAgICBob2lzdGFibGVSb290LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGVQcm9wcyk7XG4gICAgICAgICAgICByZXR1cm4gKHJlc291cmNlLmluc3RhbmNlID0gc3R5bGVQcm9wcyk7XG4gICAgICAgICAgY2FzZSBcInZvaWRcIjpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgJ2FjcXVpcmVSZXNvdXJjZSBlbmNvdW50ZXJlZCBhIHJlc291cmNlIHR5cGUgaXQgZGlkIG5vdCBleHBlY3Q6IFwiJyArXG4gICAgICAgICAgICAgICAgcmVzb3VyY2UudHlwZSArXG4gICAgICAgICAgICAgICAgJ1wiLiB0aGlzIGlzIGEgYnVnIGluIFJlYWN0LidcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIGVsc2VcbiAgICAgICAgXCJzdHlsZXNoZWV0XCIgPT09IHJlc291cmNlLnR5cGUgJiZcbiAgICAgICAgICAocmVzb3VyY2Uuc3RhdGUubG9hZGluZyAmIEluc2VydGVkKSA9PT0gTm90TG9hZGVkICYmXG4gICAgICAgICAgKChpbnN0YW5jZSA9IHJlc291cmNlLmluc3RhbmNlKSxcbiAgICAgICAgICAocmVzb3VyY2Uuc3RhdGUubG9hZGluZyB8PSBJbnNlcnRlZCksXG4gICAgICAgICAgaW5zZXJ0U3R5bGVzaGVldChpbnN0YW5jZSwgcHJvcHMucHJlY2VkZW5jZSwgaG9pc3RhYmxlUm9vdCkpO1xuICAgICAgcmV0dXJuIHJlc291cmNlLmluc3RhbmNlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpbnNlcnRTdHlsZXNoZWV0KGluc3RhbmNlLCBwcmVjZWRlbmNlLCByb290KSB7XG4gICAgICBmb3IgKFxuICAgICAgICB2YXIgbm9kZXMgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAnbGlua1tyZWw9XCJzdHlsZXNoZWV0XCJdW2RhdGEtcHJlY2VkZW5jZV0sc3R5bGVbZGF0YS1wcmVjZWRlbmNlXSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGxhc3QgPSBub2Rlcy5sZW5ndGggPyBub2Rlc1tub2Rlcy5sZW5ndGggLSAxXSA6IG51bGwsXG4gICAgICAgICAgcHJpb3IgPSBsYXN0LFxuICAgICAgICAgIGkgPSAwO1xuICAgICAgICBpIDwgbm9kZXMubGVuZ3RoO1xuICAgICAgICBpKytcbiAgICAgICkge1xuICAgICAgICB2YXIgbm9kZSA9IG5vZGVzW2ldO1xuICAgICAgICBpZiAobm9kZS5kYXRhc2V0LnByZWNlZGVuY2UgPT09IHByZWNlZGVuY2UpIHByaW9yID0gbm9kZTtcbiAgICAgICAgZWxzZSBpZiAocHJpb3IgIT09IGxhc3QpIGJyZWFrO1xuICAgICAgfVxuICAgICAgcHJpb3JcbiAgICAgICAgPyBwcmlvci5wYXJlbnROb2RlLmluc2VydEJlZm9yZShpbnN0YW5jZSwgcHJpb3IubmV4dFNpYmxpbmcpXG4gICAgICAgIDogKChwcmVjZWRlbmNlID0gOSA9PT0gcm9vdC5ub2RlVHlwZSA/IHJvb3QuaGVhZCA6IHJvb3QpLFxuICAgICAgICAgIHByZWNlZGVuY2UuaW5zZXJ0QmVmb3JlKGluc3RhbmNlLCBwcmVjZWRlbmNlLmZpcnN0Q2hpbGQpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWRvcHRQcmVsb2FkUHJvcHNGb3JTdHlsZXNoZWV0KHN0eWxlc2hlZXRQcm9wcywgcHJlbG9hZFByb3BzKSB7XG4gICAgICBudWxsID09IHN0eWxlc2hlZXRQcm9wcy5jcm9zc09yaWdpbiAmJlxuICAgICAgICAoc3R5bGVzaGVldFByb3BzLmNyb3NzT3JpZ2luID0gcHJlbG9hZFByb3BzLmNyb3NzT3JpZ2luKTtcbiAgICAgIG51bGwgPT0gc3R5bGVzaGVldFByb3BzLnJlZmVycmVyUG9saWN5ICYmXG4gICAgICAgIChzdHlsZXNoZWV0UHJvcHMucmVmZXJyZXJQb2xpY3kgPSBwcmVsb2FkUHJvcHMucmVmZXJyZXJQb2xpY3kpO1xuICAgICAgbnVsbCA9PSBzdHlsZXNoZWV0UHJvcHMudGl0bGUgJiZcbiAgICAgICAgKHN0eWxlc2hlZXRQcm9wcy50aXRsZSA9IHByZWxvYWRQcm9wcy50aXRsZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGFkb3B0UHJlbG9hZFByb3BzRm9yU2NyaXB0KHNjcmlwdFByb3BzLCBwcmVsb2FkUHJvcHMpIHtcbiAgICAgIG51bGwgPT0gc2NyaXB0UHJvcHMuY3Jvc3NPcmlnaW4gJiZcbiAgICAgICAgKHNjcmlwdFByb3BzLmNyb3NzT3JpZ2luID0gcHJlbG9hZFByb3BzLmNyb3NzT3JpZ2luKTtcbiAgICAgIG51bGwgPT0gc2NyaXB0UHJvcHMucmVmZXJyZXJQb2xpY3kgJiZcbiAgICAgICAgKHNjcmlwdFByb3BzLnJlZmVycmVyUG9saWN5ID0gcHJlbG9hZFByb3BzLnJlZmVycmVyUG9saWN5KTtcbiAgICAgIG51bGwgPT0gc2NyaXB0UHJvcHMuaW50ZWdyaXR5ICYmXG4gICAgICAgIChzY3JpcHRQcm9wcy5pbnRlZ3JpdHkgPSBwcmVsb2FkUHJvcHMuaW50ZWdyaXR5KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0SHlkcmF0YWJsZUhvaXN0YWJsZUNhY2hlKHR5cGUsIGtleUF0dHJpYnV0ZSwgb3duZXJEb2N1bWVudCkge1xuICAgICAgaWYgKG51bGwgPT09IHRhZ0NhY2hlcykge1xuICAgICAgICB2YXIgY2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgICAgIHZhciBjYWNoZXMgPSAodGFnQ2FjaGVzID0gbmV3IE1hcCgpKTtcbiAgICAgICAgY2FjaGVzLnNldChvd25lckRvY3VtZW50LCBjYWNoZSk7XG4gICAgICB9IGVsc2VcbiAgICAgICAgKGNhY2hlcyA9IHRhZ0NhY2hlcyksXG4gICAgICAgICAgKGNhY2hlID0gY2FjaGVzLmdldChvd25lckRvY3VtZW50KSksXG4gICAgICAgICAgY2FjaGUgfHwgKChjYWNoZSA9IG5ldyBNYXAoKSksIGNhY2hlcy5zZXQob3duZXJEb2N1bWVudCwgY2FjaGUpKTtcbiAgICAgIGlmIChjYWNoZS5oYXModHlwZSkpIHJldHVybiBjYWNoZTtcbiAgICAgIGNhY2hlLnNldCh0eXBlLCBudWxsKTtcbiAgICAgIG93bmVyRG9jdW1lbnQgPSBvd25lckRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKHR5cGUpO1xuICAgICAgZm9yIChjYWNoZXMgPSAwOyBjYWNoZXMgPCBvd25lckRvY3VtZW50Lmxlbmd0aDsgY2FjaGVzKyspIHtcbiAgICAgICAgdmFyIG5vZGUgPSBvd25lckRvY3VtZW50W2NhY2hlc107XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhKFxuICAgICAgICAgICAgbm9kZVtpbnRlcm5hbEhvaXN0YWJsZU1hcmtlcl0gfHxcbiAgICAgICAgICAgIG5vZGVbaW50ZXJuYWxJbnN0YW5jZUtleV0gfHxcbiAgICAgICAgICAgIChcImxpbmtcIiA9PT0gdHlwZSAmJiBcInN0eWxlc2hlZXRcIiA9PT0gbm9kZS5nZXRBdHRyaWJ1dGUoXCJyZWxcIikpXG4gICAgICAgICAgKSAmJlxuICAgICAgICAgIG5vZGUubmFtZXNwYWNlVVJJICE9PSBTVkdfTkFNRVNQQUNFXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBub2RlS2V5ID0gbm9kZS5nZXRBdHRyaWJ1dGUoa2V5QXR0cmlidXRlKSB8fCBcIlwiO1xuICAgICAgICAgIG5vZGVLZXkgPSB0eXBlICsgbm9kZUtleTtcbiAgICAgICAgICB2YXIgZXhpc3RpbmcgPSBjYWNoZS5nZXQobm9kZUtleSk7XG4gICAgICAgICAgZXhpc3RpbmcgPyBleGlzdGluZy5wdXNoKG5vZGUpIDogY2FjaGUuc2V0KG5vZGVLZXksIFtub2RlXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBjYWNoZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbW91bnRIb2lzdGFibGUoaG9pc3RhYmxlUm9vdCwgdHlwZSwgaW5zdGFuY2UpIHtcbiAgICAgIGhvaXN0YWJsZVJvb3QgPSBob2lzdGFibGVSb290Lm93bmVyRG9jdW1lbnQgfHwgaG9pc3RhYmxlUm9vdDtcbiAgICAgIGhvaXN0YWJsZVJvb3QuaGVhZC5pbnNlcnRCZWZvcmUoXG4gICAgICAgIGluc3RhbmNlLFxuICAgICAgICBcInRpdGxlXCIgPT09IHR5cGUgPyBob2lzdGFibGVSb290LnF1ZXJ5U2VsZWN0b3IoXCJoZWFkID4gdGl0bGVcIikgOiBudWxsXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc0hvc3RIb2lzdGFibGVUeXBlKHR5cGUsIHByb3BzLCBob3N0Q29udGV4dCkge1xuICAgICAgdmFyIG91dHNpZGVIb3N0Q29udGFpbmVyQ29udGV4dCA9XG4gICAgICAgICFob3N0Q29udGV4dC5hbmNlc3RvckluZm8uY29udGFpbmVyVGFnSW5TY29wZTtcbiAgICAgIGlmIChcbiAgICAgICAgaG9zdENvbnRleHQuY29udGV4dCA9PT0gSG9zdENvbnRleHROYW1lc3BhY2VTdmcgfHxcbiAgICAgICAgbnVsbCAhPSBwcm9wcy5pdGVtUHJvcFxuICAgICAgKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICFvdXRzaWRlSG9zdENvbnRhaW5lckNvbnRleHQgfHxcbiAgICAgICAgICAgIG51bGwgPT0gcHJvcHMuaXRlbVByb3AgfHxcbiAgICAgICAgICAgIChcIm1ldGFcIiAhPT0gdHlwZSAmJlxuICAgICAgICAgICAgICBcInRpdGxlXCIgIT09IHR5cGUgJiZcbiAgICAgICAgICAgICAgXCJzdHlsZVwiICE9PSB0eXBlICYmXG4gICAgICAgICAgICAgIFwibGlua1wiICE9PSB0eXBlICYmXG4gICAgICAgICAgICAgIFwic2NyaXB0XCIgIT09IHR5cGUpIHx8XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkNhbm5vdCByZW5kZXIgYSA8JXM+IG91dHNpZGUgdGhlIG1haW4gZG9jdW1lbnQgaWYgaXQgaGFzIGFuIGBpdGVtUHJvcGAgcHJvcC4gYGl0ZW1Qcm9wYCBzdWdnZXN0cyB0aGUgdGFnIGJlbG9uZ3MgdG8gYW4gYGl0ZW1TY29wZWAgd2hpY2ggY2FuIGFwcGVhciBhbnl3aGVyZSBpbiB0aGUgRE9NLiBJZiB5b3Ugd2VyZSBpbnRlbmRpbmcgZm9yIFJlYWN0IHRvIGhvaXN0IHRoaXMgPCVzPiByZW1vdmUgdGhlIGBpdGVtUHJvcGAgcHJvcC4gT3RoZXJ3aXNlLCB0cnkgbW92aW5nIHRoaXMgdGFnIGludG8gdGhlIDxoZWFkPiBvciA8Ym9keT4gb2YgdGhlIERvY3VtZW50LlwiLFxuICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICApLFxuICAgICAgICAgICExXG4gICAgICAgICk7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBcIm1ldGFcIjpcbiAgICAgICAgY2FzZSBcInRpdGxlXCI6XG4gICAgICAgICAgcmV0dXJuICEwO1xuICAgICAgICBjYXNlIFwic3R5bGVcIjpcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMucHJlY2VkZW5jZSB8fFxuICAgICAgICAgICAgXCJzdHJpbmdcIiAhPT0gdHlwZW9mIHByb3BzLmhyZWYgfHxcbiAgICAgICAgICAgIFwiXCIgPT09IHByb3BzLmhyZWZcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIG91dHNpZGVIb3N0Q29udGFpbmVyQ29udGV4dCAmJlxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgICdDYW5ub3QgcmVuZGVyIGEgPHN0eWxlPiBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50IHdpdGhvdXQga25vd2luZyBpdHMgcHJlY2VkZW5jZSBhbmQgYSB1bmlxdWUgaHJlZiBrZXkuIFJlYWN0IGNhbiBob2lzdCBhbmQgZGVkdXBsaWNhdGUgPHN0eWxlPiB0YWdzIGlmIHlvdSBwcm92aWRlIGEgYHByZWNlZGVuY2VgIHByb3AgYWxvbmcgd2l0aCBhbiBgaHJlZmAgcHJvcCB0aGF0IGRvZXMgbm90IGNvbmZsaWN0IHdpdGggdGhlIGBocmVmYCB2YWx1ZXMgdXNlZCBpbiBhbnkgb3RoZXIgaG9pc3RlZCA8c3R5bGU+IG9yIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiAuLi4+IHRhZ3MuICBOb3RlIHRoYXQgaG9pc3RpbmcgPHN0eWxlPiB0YWdzIGlzIGNvbnNpZGVyZWQgYW4gYWR2YW5jZWQgZmVhdHVyZSB0aGF0IG1vc3Qgd2lsbCBub3QgdXNlIGRpcmVjdGx5LiBDb25zaWRlciBtb3ZpbmcgdGhlIDxzdHlsZT4gdGFnIHRvIHRoZSA8aGVhZD4gb3IgY29uc2lkZXIgYWRkaW5nIGEgYHByZWNlZGVuY2U9XCJkZWZhdWx0XCJgIGFuZCBgaHJlZj1cInNvbWUgdW5pcXVlIHJlc291cmNlIGlkZW50aWZpZXJcImAuJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgY2FzZSBcImxpbmtcIjpcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMucmVsIHx8XG4gICAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMuaHJlZiB8fFxuICAgICAgICAgICAgXCJcIiA9PT0gcHJvcHMuaHJlZiB8fFxuICAgICAgICAgICAgcHJvcHMub25Mb2FkIHx8XG4gICAgICAgICAgICBwcm9wcy5vbkVycm9yXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIFwic3R5bGVzaGVldFwiID09PSBwcm9wcy5yZWwgJiZcbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHByb3BzLnByZWNlZGVuY2VcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0eXBlID0gcHJvcHMuaHJlZjtcbiAgICAgICAgICAgICAgdmFyIG9uRXJyb3IgPSBwcm9wcy5vbkVycm9yLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkID0gcHJvcHMuZGlzYWJsZWQ7XG4gICAgICAgICAgICAgIGhvc3RDb250ZXh0ID0gW107XG4gICAgICAgICAgICAgIHByb3BzLm9uTG9hZCAmJiBob3N0Q29udGV4dC5wdXNoKFwiYG9uTG9hZGBcIik7XG4gICAgICAgICAgICAgIG9uRXJyb3IgJiYgaG9zdENvbnRleHQucHVzaChcImBvbkVycm9yYFwiKTtcbiAgICAgICAgICAgICAgbnVsbCAhPSBkaXNhYmxlZCAmJiBob3N0Q29udGV4dC5wdXNoKFwiYGRpc2FibGVkYFwiKTtcbiAgICAgICAgICAgICAgb25FcnJvciA9IHByb3BOYW1lc0xpc3RKb2luKGhvc3RDb250ZXh0LCBcImFuZFwiKTtcbiAgICAgICAgICAgICAgb25FcnJvciArPSAxID09PSBob3N0Q29udGV4dC5sZW5ndGggPyBcIiBwcm9wXCIgOiBcIiBwcm9wc1wiO1xuICAgICAgICAgICAgICBkaXNhYmxlZCA9XG4gICAgICAgICAgICAgICAgMSA9PT0gaG9zdENvbnRleHQubGVuZ3RoID8gXCJhbiBcIiArIG9uRXJyb3IgOiBcInRoZSBcIiArIG9uRXJyb3I7XG4gICAgICAgICAgICAgIGhvc3RDb250ZXh0Lmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAnUmVhY3QgZW5jb3VudGVyZWQgYSA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIiVzXCIgLi4uIC8+IHdpdGggYSBgcHJlY2VkZW5jZWAgcHJvcCB0aGF0IGFsc28gaW5jbHVkZWQgJXMuIFRoZSBwcmVzZW5jZSBvZiBsb2FkaW5nIGFuZCBlcnJvciBoYW5kbGVycyBpbmRpY2F0ZXMgYW4gaW50ZW50IHRvIG1hbmFnZSB0aGUgc3R5bGVzaGVldCBsb2FkaW5nIHN0YXRlIGZyb20geW91ciBmcm9tIHlvdXIgQ29tcG9uZW50IGNvZGUgYW5kIFJlYWN0IHdpbGwgbm90IGhvaXN0IG9yIGRlZHVwbGljYXRlIHRoaXMgc3R5bGVzaGVldC4gSWYgeW91ciBpbnRlbnQgd2FzIHRvIGhhdmUgUmVhY3QgaG9pc3QgYW5kIGRlZHVwbGNpYXRlIHRoaXMgc3R5bGVzaGVldCB1c2luZyB0aGUgYHByZWNlZGVuY2VgIHByb3AgcmVtb3ZlIHRoZSAlcywgb3RoZXJ3aXNlIHJlbW92ZSB0aGUgYHByZWNlZGVuY2VgIHByb3AuJyxcbiAgICAgICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgIG9uRXJyb3JcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb3V0c2lkZUhvc3RDb250YWluZXJDb250ZXh0ICYmXG4gICAgICAgICAgICAgIChcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMucmVsIHx8XG4gICAgICAgICAgICAgIFwic3RyaW5nXCIgIT09IHR5cGVvZiBwcm9wcy5ocmVmIHx8XG4gICAgICAgICAgICAgIFwiXCIgPT09IHByb3BzLmhyZWZcbiAgICAgICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiQ2Fubm90IHJlbmRlciBhIDxsaW5rPiBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50IHdpdGhvdXQgYSBgcmVsYCBhbmQgYGhyZWZgIHByb3AuIFRyeSBhZGRpbmcgYSBgcmVsYCBhbmQvb3IgYGhyZWZgIHByb3AgdG8gdGhpcyA8bGluaz4gb3IgbW92aW5nIHRoZSBsaW5rIGludG8gdGhlIDxoZWFkPiB0YWdcIlxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIDogKHByb3BzLm9uRXJyb3IgfHwgcHJvcHMub25Mb2FkKSAmJlxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgXCJDYW5ub3QgcmVuZGVyIGEgPGxpbms+IHdpdGggb25Mb2FkIG9yIG9uRXJyb3IgbGlzdGVuZXJzIG91dHNpZGUgdGhlIG1haW4gZG9jdW1lbnQuIFRyeSByZW1vdmluZyBvbkxvYWQ9ey4uLn0gYW5kIG9uRXJyb3I9ey4uLn0gb3IgbW92aW5nIGl0IGludG8gdGhlIHJvb3QgPGhlYWQ+IHRhZyBvciBzb21ld2hlcmUgaW4gdGhlIDxib2R5Pi5cIlxuICAgICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgc3dpdGNoIChwcm9wcy5yZWwpIHtcbiAgICAgICAgICAgIGNhc2UgXCJzdHlsZXNoZWV0XCI6XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgKHR5cGUgPSBwcm9wcy5wcmVjZWRlbmNlKSxcbiAgICAgICAgICAgICAgICAocHJvcHMgPSBwcm9wcy5kaXNhYmxlZCksXG4gICAgICAgICAgICAgICAgXCJzdHJpbmdcIiAhPT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgICAgICAgICAgIG91dHNpZGVIb3N0Q29udGFpbmVyQ29udGV4dCAmJlxuICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgJ0Nhbm5vdCByZW5kZXIgYSA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgLz4gb3V0c2lkZSB0aGUgbWFpbiBkb2N1bWVudCB3aXRob3V0IGtub3dpbmcgaXRzIHByZWNlZGVuY2UuIENvbnNpZGVyIGFkZGluZyBwcmVjZWRlbmNlPVwiZGVmYXVsdFwiIG9yIG1vdmluZyBpdCBpbnRvIHRoZSByb290IDxoZWFkPiB0YWcuJ1xuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSAmJiBudWxsID09IHByb3BzXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZXR1cm4gITA7XG4gICAgICAgICAgfVxuICAgICAgICBjYXNlIFwic2NyaXB0XCI6XG4gICAgICAgICAgdHlwZSA9XG4gICAgICAgICAgICBwcm9wcy5hc3luYyAmJlxuICAgICAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgcHJvcHMuYXN5bmMgJiZcbiAgICAgICAgICAgIFwic3ltYm9sXCIgIT09IHR5cGVvZiBwcm9wcy5hc3luYztcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhdHlwZSB8fFxuICAgICAgICAgICAgcHJvcHMub25Mb2FkIHx8XG4gICAgICAgICAgICBwcm9wcy5vbkVycm9yIHx8XG4gICAgICAgICAgICAhcHJvcHMuc3JjIHx8XG4gICAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMuc3JjXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBvdXRzaWRlSG9zdENvbnRhaW5lckNvbnRleHQgJiZcbiAgICAgICAgICAgICAgKHR5cGVcbiAgICAgICAgICAgICAgICA/IHByb3BzLm9uTG9hZCB8fCBwcm9wcy5vbkVycm9yXG4gICAgICAgICAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgXCJDYW5ub3QgcmVuZGVyIGEgPHNjcmlwdD4gd2l0aCBvbkxvYWQgb3Igb25FcnJvciBsaXN0ZW5lcnMgb3V0c2lkZSB0aGUgbWFpbiBkb2N1bWVudC4gVHJ5IHJlbW92aW5nIG9uTG9hZD17Li4ufSBhbmQgb25FcnJvcj17Li4ufSBvciBtb3ZpbmcgaXQgaW50byB0aGUgcm9vdCA8aGVhZD4gdGFnIG9yIHNvbWV3aGVyZSBpbiB0aGUgPGJvZHk+LlwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgICBcIkNhbm5vdCByZW5kZXIgYSA8c2NyaXB0PiBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50IHdpdGhvdXQgYGFzeW5jPXt0cnVlfWAgYW5kIGEgbm9uLWVtcHR5IGBzcmNgIHByb3AuIEVuc3VyZSB0aGVyZSBpcyBhIHZhbGlkIGBzcmNgIGFuZCBlaXRoZXIgbWFrZSB0aGUgc2NyaXB0IGFzeW5jIG9yIG1vdmUgaXQgaW50byB0aGUgcm9vdCA8aGVhZD4gdGFnIG9yIHNvbWV3aGVyZSBpbiB0aGUgPGJvZHk+LlwiXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICdDYW5ub3QgcmVuZGVyIGEgc3luYyBvciBkZWZlciA8c2NyaXB0PiBvdXRzaWRlIHRoZSBtYWluIGRvY3VtZW50IHdpdGhvdXQga25vd2luZyBpdHMgb3JkZXIuIFRyeSBhZGRpbmcgYXN5bmM9XCJcIiBvciBtb3ZpbmcgaXQgaW50byB0aGUgcm9vdCA8aGVhZD4gdGFnLidcbiAgICAgICAgICAgICAgICAgICkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgY2FzZSBcIm5vc2NyaXB0XCI6XG4gICAgICAgIGNhc2UgXCJ0ZW1wbGF0ZVwiOlxuICAgICAgICAgIG91dHNpZGVIb3N0Q29udGFpbmVyQ29udGV4dCAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJDYW5ub3QgcmVuZGVyIDwlcz4gb3V0c2lkZSB0aGUgbWFpbiBkb2N1bWVudC4gVHJ5IG1vdmluZyBpdCBpbnRvIHRoZSByb290IDxoZWFkPiB0YWcuXCIsXG4gICAgICAgICAgICAgIHR5cGVcbiAgICAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gITE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHByZWxvYWRSZXNvdXJjZShyZXNvdXJjZSkge1xuICAgICAgcmV0dXJuIFwic3R5bGVzaGVldFwiID09PSByZXNvdXJjZS50eXBlICYmXG4gICAgICAgIChyZXNvdXJjZS5zdGF0ZS5sb2FkaW5nICYgU2V0dGxlZCkgPT09IE5vdExvYWRlZFxuICAgICAgICA/ICExXG4gICAgICAgIDogITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHN1c3BlbmRSZXNvdXJjZShzdGF0ZSwgaG9pc3RhYmxlUm9vdCwgcmVzb3VyY2UsIHByb3BzKSB7XG4gICAgICBpZiAoXG4gICAgICAgIFwic3R5bGVzaGVldFwiID09PSByZXNvdXJjZS50eXBlICYmXG4gICAgICAgIChcInN0cmluZ1wiICE9PSB0eXBlb2YgcHJvcHMubWVkaWEgfHxcbiAgICAgICAgICAhMSAhPT0gbWF0Y2hNZWRpYShwcm9wcy5tZWRpYSkubWF0Y2hlcykgJiZcbiAgICAgICAgKHJlc291cmNlLnN0YXRlLmxvYWRpbmcgJiBJbnNlcnRlZCkgPT09IE5vdExvYWRlZFxuICAgICAgKSB7XG4gICAgICAgIGlmIChudWxsID09PSByZXNvdXJjZS5pbnN0YW5jZSkge1xuICAgICAgICAgIHZhciBrZXkgPSBnZXRTdHlsZUtleShwcm9wcy5ocmVmKSxcbiAgICAgICAgICAgIGluc3RhbmNlID0gaG9pc3RhYmxlUm9vdC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICBnZXRTdHlsZXNoZWV0U2VsZWN0b3JGcm9tS2V5KGtleSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICAgICAgICBob2lzdGFibGVSb290ID0gaW5zdGFuY2UuX3A7XG4gICAgICAgICAgICBudWxsICE9PSBob2lzdGFibGVSb290ICYmXG4gICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBob2lzdGFibGVSb290ICYmXG4gICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGhvaXN0YWJsZVJvb3QudGhlbiAmJlxuICAgICAgICAgICAgICAoc3RhdGUuY291bnQrKyxcbiAgICAgICAgICAgICAgKHN0YXRlID0gb25VbnN1c3BlbmQuYmluZChzdGF0ZSkpLFxuICAgICAgICAgICAgICBob2lzdGFibGVSb290LnRoZW4oc3RhdGUsIHN0YXRlKSk7XG4gICAgICAgICAgICByZXNvdXJjZS5zdGF0ZS5sb2FkaW5nIHw9IEluc2VydGVkO1xuICAgICAgICAgICAgcmVzb3VyY2UuaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoaW5zdGFuY2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpbnN0YW5jZSA9IGhvaXN0YWJsZVJvb3Qub3duZXJEb2N1bWVudCB8fCBob2lzdGFibGVSb290O1xuICAgICAgICAgIHByb3BzID0gc3R5bGVzaGVldFByb3BzRnJvbVJhd1Byb3BzKHByb3BzKTtcbiAgICAgICAgICAoa2V5ID0gcHJlbG9hZFByb3BzTWFwLmdldChrZXkpKSAmJlxuICAgICAgICAgICAgYWRvcHRQcmVsb2FkUHJvcHNGb3JTdHlsZXNoZWV0KHByb3BzLCBrZXkpO1xuICAgICAgICAgIGluc3RhbmNlID0gaW5zdGFuY2UuY3JlYXRlRWxlbWVudChcImxpbmtcIik7XG4gICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShpbnN0YW5jZSk7XG4gICAgICAgICAgdmFyIGxpbmtJbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgICAgICAgIGxpbmtJbnN0YW5jZS5fcCA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIGxpbmtJbnN0YW5jZS5vbmxvYWQgPSByZXNvbHZlO1xuICAgICAgICAgICAgbGlua0luc3RhbmNlLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoaW5zdGFuY2UsIFwibGlua1wiLCBwcm9wcyk7XG4gICAgICAgICAgcmVzb3VyY2UuaW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgICAgfVxuICAgICAgICBudWxsID09PSBzdGF0ZS5zdHlsZXNoZWV0cyAmJiAoc3RhdGUuc3R5bGVzaGVldHMgPSBuZXcgTWFwKCkpO1xuICAgICAgICBzdGF0ZS5zdHlsZXNoZWV0cy5zZXQocmVzb3VyY2UsIGhvaXN0YWJsZVJvb3QpO1xuICAgICAgICAoaG9pc3RhYmxlUm9vdCA9IHJlc291cmNlLnN0YXRlLnByZWxvYWQpICYmXG4gICAgICAgICAgKHJlc291cmNlLnN0YXRlLmxvYWRpbmcgJiBTZXR0bGVkKSA9PT0gTm90TG9hZGVkICYmXG4gICAgICAgICAgKHN0YXRlLmNvdW50KyssXG4gICAgICAgICAgKHJlc291cmNlID0gb25VbnN1c3BlbmQuYmluZChzdGF0ZSkpLFxuICAgICAgICAgIGhvaXN0YWJsZVJvb3QuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgcmVzb3VyY2UpLFxuICAgICAgICAgIGhvaXN0YWJsZVJvb3QuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsIHJlc291cmNlKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhaXRGb3JDb21taXRUb0JlUmVhZHkoc3RhdGUsIHRpbWVvdXRPZmZzZXQpIHtcbiAgICAgIHN0YXRlLnN0eWxlc2hlZXRzICYmXG4gICAgICAgIDAgPT09IHN0YXRlLmNvdW50ICYmXG4gICAgICAgIGluc2VydFN1c3BlbmRlZFN0eWxlc2hlZXRzKHN0YXRlLCBzdGF0ZS5zdHlsZXNoZWV0cyk7XG4gICAgICByZXR1cm4gMCA8IHN0YXRlLmNvdW50IHx8IDAgPCBzdGF0ZS5pbWdDb3VudFxuICAgICAgICA/IGZ1bmN0aW9uIChjb21taXQpIHtcbiAgICAgICAgICAgIHZhciBzdHlsZXNoZWV0VGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgc3RhdGUuc3R5bGVzaGVldHMgJiZcbiAgICAgICAgICAgICAgICBpbnNlcnRTdXNwZW5kZWRTdHlsZXNoZWV0cyhzdGF0ZSwgc3RhdGUuc3R5bGVzaGVldHMpO1xuICAgICAgICAgICAgICBpZiAoc3RhdGUudW5zdXNwZW5kKSB7XG4gICAgICAgICAgICAgICAgdmFyIHVuc3VzcGVuZCA9IHN0YXRlLnVuc3VzcGVuZDtcbiAgICAgICAgICAgICAgICBzdGF0ZS51bnN1c3BlbmQgPSBudWxsO1xuICAgICAgICAgICAgICAgIHVuc3VzcGVuZCgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBTVVNQRU5TRVlfU1RZTEVTSEVFVF9USU1FT1VUICsgdGltZW91dE9mZnNldCk7XG4gICAgICAgICAgICAwIDwgc3RhdGUuaW1nQnl0ZXMgJiZcbiAgICAgICAgICAgICAgMCA9PT0gZXN0aW1hdGVkQnl0ZXNXaXRoaW5MaW1pdCAmJlxuICAgICAgICAgICAgICAoZXN0aW1hdGVkQnl0ZXNXaXRoaW5MaW1pdCA9XG4gICAgICAgICAgICAgICAgMTI1ICogZXN0aW1hdGVCYW5kd2lkdGgoKSAqIFNVU1BFTlNFWV9JTUFHRV9USU1FX0VTVElNQVRFKTtcbiAgICAgICAgICAgIHZhciBpbWdUaW1lciA9IHNldFRpbWVvdXQoXG4gICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS53YWl0aW5nRm9ySW1hZ2VzID0gITE7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgMCA9PT0gc3RhdGUuY291bnQgJiZcbiAgICAgICAgICAgICAgICAgIChzdGF0ZS5zdHlsZXNoZWV0cyAmJlxuICAgICAgICAgICAgICAgICAgICBpbnNlcnRTdXNwZW5kZWRTdHlsZXNoZWV0cyhzdGF0ZSwgc3RhdGUuc3R5bGVzaGVldHMpLFxuICAgICAgICAgICAgICAgICAgc3RhdGUudW5zdXNwZW5kKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgdmFyIHVuc3VzcGVuZCA9IHN0YXRlLnVuc3VzcGVuZDtcbiAgICAgICAgICAgICAgICAgIHN0YXRlLnVuc3VzcGVuZCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICB1bnN1c3BlbmQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIChzdGF0ZS5pbWdCeXRlcyA+IGVzdGltYXRlZEJ5dGVzV2l0aGluTGltaXRcbiAgICAgICAgICAgICAgICA/IDUwXG4gICAgICAgICAgICAgICAgOiBTVVNQRU5TRVlfSU1BR0VfVElNRU9VVCkgKyB0aW1lb3V0T2Zmc2V0XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgc3RhdGUudW5zdXNwZW5kID0gY29tbWl0O1xuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgc3RhdGUudW5zdXNwZW5kID0gbnVsbDtcbiAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHN0eWxlc2hlZXRUaW1lcik7XG4gICAgICAgICAgICAgIGNsZWFyVGltZW91dChpbWdUaW1lcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBvblVuc3VzcGVuZCgpIHtcbiAgICAgIHRoaXMuY291bnQtLTtcbiAgICAgIGlmICgwID09PSB0aGlzLmNvdW50ICYmICgwID09PSB0aGlzLmltZ0NvdW50IHx8ICF0aGlzLndhaXRpbmdGb3JJbWFnZXMpKVxuICAgICAgICBpZiAodGhpcy5zdHlsZXNoZWV0cylcbiAgICAgICAgICBpbnNlcnRTdXNwZW5kZWRTdHlsZXNoZWV0cyh0aGlzLCB0aGlzLnN0eWxlc2hlZXRzKTtcbiAgICAgICAgZWxzZSBpZiAodGhpcy51bnN1c3BlbmQpIHtcbiAgICAgICAgICB2YXIgdW5zdXNwZW5kID0gdGhpcy51bnN1c3BlbmQ7XG4gICAgICAgICAgdGhpcy51bnN1c3BlbmQgPSBudWxsO1xuICAgICAgICAgIHVuc3VzcGVuZCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluc2VydFN1c3BlbmRlZFN0eWxlc2hlZXRzKHN0YXRlLCByZXNvdXJjZXMpIHtcbiAgICAgIHN0YXRlLnN0eWxlc2hlZXRzID0gbnVsbDtcbiAgICAgIG51bGwgIT09IHN0YXRlLnVuc3VzcGVuZCAmJlxuICAgICAgICAoc3RhdGUuY291bnQrKyxcbiAgICAgICAgKHByZWNlZGVuY2VzQnlSb290ID0gbmV3IE1hcCgpKSxcbiAgICAgICAgcmVzb3VyY2VzLmZvckVhY2goaW5zZXJ0U3R5bGVzaGVldEludG9Sb290LCBzdGF0ZSksXG4gICAgICAgIChwcmVjZWRlbmNlc0J5Um9vdCA9IG51bGwpLFxuICAgICAgICBvblVuc3VzcGVuZC5jYWxsKHN0YXRlKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGluc2VydFN0eWxlc2hlZXRJbnRvUm9vdChyb290LCByZXNvdXJjZSkge1xuICAgICAgaWYgKCEocmVzb3VyY2Uuc3RhdGUubG9hZGluZyAmIEluc2VydGVkKSkge1xuICAgICAgICB2YXIgcHJlY2VkZW5jZXMgPSBwcmVjZWRlbmNlc0J5Um9vdC5nZXQocm9vdCk7XG4gICAgICAgIGlmIChwcmVjZWRlbmNlcykgdmFyIGxhc3QgPSBwcmVjZWRlbmNlcy5nZXQoTEFTVF9QUkVDRURFTkNFKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgcHJlY2VkZW5jZXMgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgcHJlY2VkZW5jZXNCeVJvb3Quc2V0KHJvb3QsIHByZWNlZGVuY2VzKTtcbiAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgdmFyIG5vZGVzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgICAgIFwibGlua1tkYXRhLXByZWNlZGVuY2VdLHN0eWxlW2RhdGEtcHJlY2VkZW5jZV1cIlxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBpID0gMDtcbiAgICAgICAgICAgIGkgPCBub2Rlcy5sZW5ndGg7XG4gICAgICAgICAgICBpKytcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHZhciBub2RlID0gbm9kZXNbaV07XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIFwiTElOS1wiID09PSBub2RlLm5vZGVOYW1lIHx8XG4gICAgICAgICAgICAgIFwibm90IGFsbFwiICE9PSBub2RlLmdldEF0dHJpYnV0ZShcIm1lZGlhXCIpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIHByZWNlZGVuY2VzLnNldChub2RlLmRhdGFzZXQucHJlY2VkZW5jZSwgbm9kZSksIChsYXN0ID0gbm9kZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxhc3QgJiYgcHJlY2VkZW5jZXMuc2V0KExBU1RfUFJFQ0VERU5DRSwgbGFzdCk7XG4gICAgICAgIH1cbiAgICAgICAgbm9kZXMgPSByZXNvdXJjZS5pbnN0YW5jZTtcbiAgICAgICAgbm9kZSA9IG5vZGVzLmdldEF0dHJpYnV0ZShcImRhdGEtcHJlY2VkZW5jZVwiKTtcbiAgICAgICAgaSA9IHByZWNlZGVuY2VzLmdldChub2RlKSB8fCBsYXN0O1xuICAgICAgICBpID09PSBsYXN0ICYmIHByZWNlZGVuY2VzLnNldChMQVNUX1BSRUNFREVOQ0UsIG5vZGVzKTtcbiAgICAgICAgcHJlY2VkZW5jZXMuc2V0KG5vZGUsIG5vZGVzKTtcbiAgICAgICAgdGhpcy5jb3VudCsrO1xuICAgICAgICBsYXN0ID0gb25VbnN1c3BlbmQuYmluZCh0aGlzKTtcbiAgICAgICAgbm9kZXMuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgbGFzdCk7XG4gICAgICAgIG5vZGVzLmFkZEV2ZW50TGlzdGVuZXIoXCJlcnJvclwiLCBsYXN0KTtcbiAgICAgICAgaVxuICAgICAgICAgID8gaS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShub2RlcywgaS5uZXh0U2libGluZylcbiAgICAgICAgICA6ICgocm9vdCA9IDkgPT09IHJvb3Qubm9kZVR5cGUgPyByb290LmhlYWQgOiByb290KSxcbiAgICAgICAgICAgIHJvb3QuaW5zZXJ0QmVmb3JlKG5vZGVzLCByb290LmZpcnN0Q2hpbGQpKTtcbiAgICAgICAgcmVzb3VyY2Uuc3RhdGUubG9hZGluZyB8PSBJbnNlcnRlZDtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gRmliZXJSb290Tm9kZShcbiAgICAgIGNvbnRhaW5lckluZm8sXG4gICAgICB0YWcsXG4gICAgICBoeWRyYXRlLFxuICAgICAgaWRlbnRpZmllclByZWZpeCxcbiAgICAgIG9uVW5jYXVnaHRFcnJvcixcbiAgICAgIG9uQ2F1Z2h0RXJyb3IsXG4gICAgICBvblJlY292ZXJhYmxlRXJyb3IsXG4gICAgICBvbkRlZmF1bHRUcmFuc2l0aW9uSW5kaWNhdG9yLFxuICAgICAgZm9ybVN0YXRlXG4gICAgKSB7XG4gICAgICB0aGlzLnRhZyA9IDE7XG4gICAgICB0aGlzLmNvbnRhaW5lckluZm8gPSBjb250YWluZXJJbmZvO1xuICAgICAgdGhpcy5waW5nQ2FjaGUgPSB0aGlzLmN1cnJlbnQgPSB0aGlzLnBlbmRpbmdDaGlsZHJlbiA9IG51bGw7XG4gICAgICB0aGlzLnRpbWVvdXRIYW5kbGUgPSBub1RpbWVvdXQ7XG4gICAgICB0aGlzLmNhbGxiYWNrTm9kZSA9XG4gICAgICAgIHRoaXMubmV4dCA9XG4gICAgICAgIHRoaXMucGVuZGluZ0NvbnRleHQgPVxuICAgICAgICB0aGlzLmNvbnRleHQgPVxuICAgICAgICB0aGlzLmNhbmNlbFBlbmRpbmdDb21taXQgPVxuICAgICAgICAgIG51bGw7XG4gICAgICB0aGlzLmNhbGxiYWNrUHJpb3JpdHkgPSAwO1xuICAgICAgdGhpcy5leHBpcmF0aW9uVGltZXMgPSBjcmVhdGVMYW5lTWFwKC0xKTtcbiAgICAgIHRoaXMuZW50YW5nbGVkTGFuZXMgPVxuICAgICAgICB0aGlzLnNoZWxsU3VzcGVuZENvdW50ZXIgPVxuICAgICAgICB0aGlzLmVycm9yUmVjb3ZlcnlEaXNhYmxlZExhbmVzID1cbiAgICAgICAgdGhpcy5leHBpcmVkTGFuZXMgPVxuICAgICAgICB0aGlzLndhcm1MYW5lcyA9XG4gICAgICAgIHRoaXMucGluZ2VkTGFuZXMgPVxuICAgICAgICB0aGlzLnN1c3BlbmRlZExhbmVzID1cbiAgICAgICAgdGhpcy5wZW5kaW5nTGFuZXMgPVxuICAgICAgICAgIDA7XG4gICAgICB0aGlzLmVudGFuZ2xlbWVudHMgPSBjcmVhdGVMYW5lTWFwKDApO1xuICAgICAgdGhpcy5oaWRkZW5VcGRhdGVzID0gY3JlYXRlTGFuZU1hcChudWxsKTtcbiAgICAgIHRoaXMuaWRlbnRpZmllclByZWZpeCA9IGlkZW50aWZpZXJQcmVmaXg7XG4gICAgICB0aGlzLm9uVW5jYXVnaHRFcnJvciA9IG9uVW5jYXVnaHRFcnJvcjtcbiAgICAgIHRoaXMub25DYXVnaHRFcnJvciA9IG9uQ2F1Z2h0RXJyb3I7XG4gICAgICB0aGlzLm9uUmVjb3ZlcmFibGVFcnJvciA9IG9uUmVjb3ZlcmFibGVFcnJvcjtcbiAgICAgIHRoaXMucG9vbGVkQ2FjaGUgPSBudWxsO1xuICAgICAgdGhpcy5wb29sZWRDYWNoZUxhbmVzID0gMDtcbiAgICAgIHRoaXMuZm9ybVN0YXRlID0gZm9ybVN0YXRlO1xuICAgICAgdGhpcy5pbmNvbXBsZXRlVHJhbnNpdGlvbnMgPSBuZXcgTWFwKCk7XG4gICAgICB0aGlzLnBhc3NpdmVFZmZlY3REdXJhdGlvbiA9IHRoaXMuZWZmZWN0RHVyYXRpb24gPSAtMDtcbiAgICAgIHRoaXMubWVtb2l6ZWRVcGRhdGVycyA9IG5ldyBTZXQoKTtcbiAgICAgIGNvbnRhaW5lckluZm8gPSB0aGlzLnBlbmRpbmdVcGRhdGVyc0xhbmVNYXAgPSBbXTtcbiAgICAgIGZvciAodGFnID0gMDsgMzEgPiB0YWc7IHRhZysrKSBjb250YWluZXJJbmZvLnB1c2gobmV3IFNldCgpKTtcbiAgICAgIHRoaXMuX2RlYnVnUm9vdFR5cGUgPSBoeWRyYXRlID8gXCJoeWRyYXRlUm9vdCgpXCIgOiBcImNyZWF0ZVJvb3QoKVwiO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjcmVhdGVGaWJlclJvb3QoXG4gICAgICBjb250YWluZXJJbmZvLFxuICAgICAgdGFnLFxuICAgICAgaHlkcmF0ZSxcbiAgICAgIGluaXRpYWxDaGlsZHJlbixcbiAgICAgIGh5ZHJhdGlvbkNhbGxiYWNrcyxcbiAgICAgIGlzU3RyaWN0TW9kZSxcbiAgICAgIGlkZW50aWZpZXJQcmVmaXgsXG4gICAgICBmb3JtU3RhdGUsXG4gICAgICBvblVuY2F1Z2h0RXJyb3IsXG4gICAgICBvbkNhdWdodEVycm9yLFxuICAgICAgb25SZWNvdmVyYWJsZUVycm9yLFxuICAgICAgb25EZWZhdWx0VHJhbnNpdGlvbkluZGljYXRvclxuICAgICkge1xuICAgICAgY29udGFpbmVySW5mbyA9IG5ldyBGaWJlclJvb3ROb2RlKFxuICAgICAgICBjb250YWluZXJJbmZvLFxuICAgICAgICB0YWcsXG4gICAgICAgIGh5ZHJhdGUsXG4gICAgICAgIGlkZW50aWZpZXJQcmVmaXgsXG4gICAgICAgIG9uVW5jYXVnaHRFcnJvcixcbiAgICAgICAgb25DYXVnaHRFcnJvcixcbiAgICAgICAgb25SZWNvdmVyYWJsZUVycm9yLFxuICAgICAgICBvbkRlZmF1bHRUcmFuc2l0aW9uSW5kaWNhdG9yLFxuICAgICAgICBmb3JtU3RhdGVcbiAgICAgICk7XG4gICAgICB0YWcgPSBDb25jdXJyZW50TW9kZTtcbiAgICAgICEwID09PSBpc1N0cmljdE1vZGUgJiYgKHRhZyB8PSBTdHJpY3RMZWdhY3lNb2RlIHwgU3RyaWN0RWZmZWN0c01vZGUpO1xuICAgICAgdGFnIHw9IFByb2ZpbGVNb2RlO1xuICAgICAgaXNTdHJpY3RNb2RlID0gY3JlYXRlRmliZXIoMywgbnVsbCwgbnVsbCwgdGFnKTtcbiAgICAgIGNvbnRhaW5lckluZm8uY3VycmVudCA9IGlzU3RyaWN0TW9kZTtcbiAgICAgIGlzU3RyaWN0TW9kZS5zdGF0ZU5vZGUgPSBjb250YWluZXJJbmZvO1xuICAgICAgdGFnID0gY3JlYXRlQ2FjaGUoKTtcbiAgICAgIHJldGFpbkNhY2hlKHRhZyk7XG4gICAgICBjb250YWluZXJJbmZvLnBvb2xlZENhY2hlID0gdGFnO1xuICAgICAgcmV0YWluQ2FjaGUodGFnKTtcbiAgICAgIGlzU3RyaWN0TW9kZS5tZW1vaXplZFN0YXRlID0ge1xuICAgICAgICBlbGVtZW50OiBpbml0aWFsQ2hpbGRyZW4sXG4gICAgICAgIGlzRGVoeWRyYXRlZDogaHlkcmF0ZSxcbiAgICAgICAgY2FjaGU6IHRhZ1xuICAgICAgfTtcbiAgICAgIGluaXRpYWxpemVVcGRhdGVRdWV1ZShpc1N0cmljdE1vZGUpO1xuICAgICAgcmV0dXJuIGNvbnRhaW5lckluZm87XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldENvbnRleHRGb3JTdWJ0cmVlKHBhcmVudENvbXBvbmVudCkge1xuICAgICAgaWYgKCFwYXJlbnRDb21wb25lbnQpIHJldHVybiBlbXB0eUNvbnRleHRPYmplY3Q7XG4gICAgICBwYXJlbnRDb21wb25lbnQgPSBlbXB0eUNvbnRleHRPYmplY3Q7XG4gICAgICByZXR1cm4gcGFyZW50Q29tcG9uZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiB1cGRhdGVDb250YWluZXJJbXBsKFxuICAgICAgcm9vdEZpYmVyLFxuICAgICAgbGFuZSxcbiAgICAgIGVsZW1lbnQsXG4gICAgICBjb250YWluZXIsXG4gICAgICBwYXJlbnRDb21wb25lbnQsXG4gICAgICBjYWxsYmFja1xuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICBpbmplY3RlZEhvb2sgJiZcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5qZWN0ZWRIb29rLm9uU2NoZWR1bGVGaWJlclJvb3RcbiAgICAgIClcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpbmplY3RlZEhvb2sub25TY2hlZHVsZUZpYmVyUm9vdChyZW5kZXJlcklELCBjb250YWluZXIsIGVsZW1lbnQpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBoYXNMb2dnZWRFcnJvciB8fFxuICAgICAgICAgICAgKChoYXNMb2dnZWRFcnJvciA9ICEwKSxcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3QgaW5zdHJ1bWVudGF0aW9uIGVuY291bnRlcmVkIGFuIGVycm9yOiAlb1wiLFxuICAgICAgICAgICAgICBlcnJcbiAgICAgICAgICAgICkpO1xuICAgICAgICB9XG4gICAgICBwYXJlbnRDb21wb25lbnQgPSBnZXRDb250ZXh0Rm9yU3VidHJlZShwYXJlbnRDb21wb25lbnQpO1xuICAgICAgbnVsbCA9PT0gY29udGFpbmVyLmNvbnRleHRcbiAgICAgICAgPyAoY29udGFpbmVyLmNvbnRleHQgPSBwYXJlbnRDb21wb25lbnQpXG4gICAgICAgIDogKGNvbnRhaW5lci5wZW5kaW5nQ29udGV4dCA9IHBhcmVudENvbXBvbmVudCk7XG4gICAgICBpc1JlbmRlcmluZyAmJlxuICAgICAgICBudWxsICE9PSBjdXJyZW50ICYmXG4gICAgICAgICFkaWRXYXJuQWJvdXROZXN0ZWRVcGRhdGVzICYmXG4gICAgICAgICgoZGlkV2FybkFib3V0TmVzdGVkVXBkYXRlcyA9ICEwKSxcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlJlbmRlciBtZXRob2RzIHNob3VsZCBiZSBhIHB1cmUgZnVuY3Rpb24gb2YgcHJvcHMgYW5kIHN0YXRlOyB0cmlnZ2VyaW5nIG5lc3RlZCBjb21wb25lbnQgdXBkYXRlcyBmcm9tIHJlbmRlciBpcyBub3QgYWxsb3dlZC4gSWYgbmVjZXNzYXJ5LCB0cmlnZ2VyIG5lc3RlZCB1cGRhdGVzIGluIGNvbXBvbmVudERpZFVwZGF0ZS5cXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiAlcy5cIixcbiAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGN1cnJlbnQpIHx8IFwiVW5rbm93blwiXG4gICAgICAgICkpO1xuICAgICAgY29udGFpbmVyID0gY3JlYXRlVXBkYXRlKGxhbmUpO1xuICAgICAgY29udGFpbmVyLnBheWxvYWQgPSB7IGVsZW1lbnQ6IGVsZW1lbnQgfTtcbiAgICAgIGNhbGxiYWNrID0gdm9pZCAwID09PSBjYWxsYmFjayA/IG51bGwgOiBjYWxsYmFjaztcbiAgICAgIG51bGwgIT09IGNhbGxiYWNrICYmXG4gICAgICAgIChcImZ1bmN0aW9uXCIgIT09IHR5cGVvZiBjYWxsYmFjayAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkV4cGVjdGVkIHRoZSBsYXN0IG9wdGlvbmFsIGBjYWxsYmFja2AgYXJndW1lbnQgdG8gYmUgYSBmdW5jdGlvbi4gSW5zdGVhZCByZWNlaXZlZDogJXMuXCIsXG4gICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICAgICksXG4gICAgICAgIChjb250YWluZXIuY2FsbGJhY2sgPSBjYWxsYmFjaykpO1xuICAgICAgZWxlbWVudCA9IGVucXVldWVVcGRhdGUocm9vdEZpYmVyLCBjb250YWluZXIsIGxhbmUpO1xuICAgICAgbnVsbCAhPT0gZWxlbWVudCAmJlxuICAgICAgICAoc3RhcnRVcGRhdGVUaW1lckJ5TGFuZShsYW5lLCBcInJvb3QucmVuZGVyKClcIiwgbnVsbCksXG4gICAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihlbGVtZW50LCByb290RmliZXIsIGxhbmUpLFxuICAgICAgICBlbnRhbmdsZVRyYW5zaXRpb25zKGVsZW1lbnQsIHJvb3RGaWJlciwgbGFuZSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXJrUmV0cnlMYW5lSW1wbChmaWJlciwgcmV0cnlMYW5lKSB7XG4gICAgICBmaWJlciA9IGZpYmVyLm1lbW9pemVkU3RhdGU7XG4gICAgICBpZiAobnVsbCAhPT0gZmliZXIgJiYgbnVsbCAhPT0gZmliZXIuZGVoeWRyYXRlZCkge1xuICAgICAgICB2YXIgYSA9IGZpYmVyLnJldHJ5TGFuZTtcbiAgICAgICAgZmliZXIucmV0cnlMYW5lID0gMCAhPT0gYSAmJiBhIDwgcmV0cnlMYW5lID8gYSA6IHJldHJ5TGFuZTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gbWFya1JldHJ5TGFuZUlmTm90SHlkcmF0ZWQoZmliZXIsIHJldHJ5TGFuZSkge1xuICAgICAgbWFya1JldHJ5TGFuZUltcGwoZmliZXIsIHJldHJ5TGFuZSk7XG4gICAgICAoZmliZXIgPSBmaWJlci5hbHRlcm5hdGUpICYmIG1hcmtSZXRyeUxhbmVJbXBsKGZpYmVyLCByZXRyeUxhbmUpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhdHRlbXB0Q29udGludW91c0h5ZHJhdGlvbihmaWJlcikge1xuICAgICAgaWYgKDEzID09PSBmaWJlci50YWcgfHwgMzEgPT09IGZpYmVyLnRhZykge1xuICAgICAgICB2YXIgcm9vdCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgNjcxMDg4NjQpO1xuICAgICAgICBudWxsICE9PSByb290ICYmIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgNjcxMDg4NjQpO1xuICAgICAgICBtYXJrUmV0cnlMYW5lSWZOb3RIeWRyYXRlZChmaWJlciwgNjcxMDg4NjQpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkoZmliZXIpIHtcbiAgICAgIGlmICgxMyA9PT0gZmliZXIudGFnIHx8IDMxID09PSBmaWJlci50YWcpIHtcbiAgICAgICAgdmFyIGxhbmUgPSByZXF1ZXN0VXBkYXRlTGFuZShmaWJlcik7XG4gICAgICAgIGxhbmUgPSBnZXRCdW1wZWRMYW5lRm9ySHlkcmF0aW9uQnlMYW5lKGxhbmUpO1xuICAgICAgICB2YXIgcm9vdCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgbGFuZSk7XG4gICAgICAgIG51bGwgIT09IHJvb3QgJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIGZpYmVyLCBsYW5lKTtcbiAgICAgICAgbWFya1JldHJ5TGFuZUlmTm90SHlkcmF0ZWQoZmliZXIsIGxhbmUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDdXJyZW50RmliZXJGb3JEZXZUb29scygpIHtcbiAgICAgIHJldHVybiBjdXJyZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkaXNwYXRjaERpc2NyZXRlRXZlbnQoXG4gICAgICBkb21FdmVudE5hbWUsXG4gICAgICBldmVudFN5c3RlbUZsYWdzLFxuICAgICAgY29udGFpbmVyLFxuICAgICAgbmF0aXZlRXZlbnRcbiAgICApIHtcbiAgICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQ7XG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscy5UID0gbnVsbDtcbiAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5ID0gUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucDtcbiAgICAgIHRyeSB7XG4gICAgICAgIChSZWFjdERPTVNoYXJlZEludGVybmFscy5wID0gRGlzY3JldGVFdmVudFByaW9yaXR5KSxcbiAgICAgICAgICBkaXNwYXRjaEV2ZW50KGRvbUV2ZW50TmFtZSwgZXZlbnRTeXN0ZW1GbGFncywgY29udGFpbmVyLCBuYXRpdmVFdmVudCk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICAoUmVhY3RET01TaGFyZWRJbnRlcm5hbHMucCA9IHByZXZpb3VzUHJpb3JpdHkpLFxuICAgICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy5UID0gcHJldlRyYW5zaXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkaXNwYXRjaENvbnRpbnVvdXNFdmVudChcbiAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICBjb250YWluZXIsXG4gICAgICBuYXRpdmVFdmVudFxuICAgICkge1xuICAgICAgdmFyIHByZXZUcmFuc2l0aW9uID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuVDtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBudWxsO1xuICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHkgPSBSZWFjdERPTVNoYXJlZEludGVybmFscy5wO1xuICAgICAgdHJ5IHtcbiAgICAgICAgKFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBDb250aW51b3VzRXZlbnRQcmlvcml0eSksXG4gICAgICAgICAgZGlzcGF0Y2hFdmVudChkb21FdmVudE5hbWUsIGV2ZW50U3lzdGVtRmxhZ3MsIGNvbnRhaW5lciwgbmF0aXZlRXZlbnQpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgKFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLnAgPSBwcmV2aW91c1ByaW9yaXR5KSxcbiAgICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuVCA9IHByZXZUcmFuc2l0aW9uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZGlzcGF0Y2hFdmVudChcbiAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICB0YXJnZXRDb250YWluZXIsXG4gICAgICBuYXRpdmVFdmVudFxuICAgICkge1xuICAgICAgaWYgKF9lbmFibGVkKSB7XG4gICAgICAgIHZhciBibG9ja2VkT24gPSBmaW5kSW5zdGFuY2VCbG9ja2luZ0V2ZW50KG5hdGl2ZUV2ZW50KTtcbiAgICAgICAgaWYgKG51bGwgPT09IGJsb2NrZWRPbilcbiAgICAgICAgICBkaXNwYXRjaEV2ZW50Rm9yUGx1Z2luRXZlbnRTeXN0ZW0oXG4gICAgICAgICAgICBkb21FdmVudE5hbWUsXG4gICAgICAgICAgICBldmVudFN5c3RlbUZsYWdzLFxuICAgICAgICAgICAgbmF0aXZlRXZlbnQsXG4gICAgICAgICAgICByZXR1cm5fdGFyZ2V0SW5zdCxcbiAgICAgICAgICAgIHRhcmdldENvbnRhaW5lclxuICAgICAgICAgICksXG4gICAgICAgICAgICBjbGVhcklmQ29udGludW91c0V2ZW50KGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpO1xuICAgICAgICBlbHNlIGlmIChcbiAgICAgICAgICBxdWV1ZUlmQ29udGludW91c0V2ZW50KFxuICAgICAgICAgICAgYmxvY2tlZE9uLFxuICAgICAgICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgICAgICAgIHRhcmdldENvbnRhaW5lcixcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50XG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgICAgbmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGVsc2UgaWYgKFxuICAgICAgICAgIChjbGVhcklmQ29udGludW91c0V2ZW50KGRvbUV2ZW50TmFtZSwgbmF0aXZlRXZlbnQpLFxuICAgICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MgJiA0ICYmXG4gICAgICAgICAgICAtMSA8IGRpc2NyZXRlUmVwbGF5YWJsZUV2ZW50cy5pbmRleE9mKGRvbUV2ZW50TmFtZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGZvciAoOyBudWxsICE9PSBibG9ja2VkT247ICkge1xuICAgICAgICAgICAgdmFyIGZpYmVyID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShibG9ja2VkT24pO1xuICAgICAgICAgICAgaWYgKG51bGwgIT09IGZpYmVyKVxuICAgICAgICAgICAgICBzd2l0Y2ggKGZpYmVyLnRhZykge1xuICAgICAgICAgICAgICAgIGNhc2UgMzpcbiAgICAgICAgICAgICAgICAgIGZpYmVyID0gZmliZXIuc3RhdGVOb2RlO1xuICAgICAgICAgICAgICAgICAgaWYgKGZpYmVyLmN1cnJlbnQubWVtb2l6ZWRTdGF0ZS5pc0RlaHlkcmF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxhbmVzID0gZ2V0SGlnaGVzdFByaW9yaXR5TGFuZXMoZmliZXIucGVuZGluZ0xhbmVzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKDAgIT09IGxhbmVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFyIHJvb3QgPSBmaWJlcjtcbiAgICAgICAgICAgICAgICAgICAgICByb290LnBlbmRpbmdMYW5lcyB8PSAyO1xuICAgICAgICAgICAgICAgICAgICAgIGZvciAocm9vdC5lbnRhbmdsZWRMYW5lcyB8PSAyOyBsYW5lczsgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGFuZSA9IDEgPDwgKDMxIC0gY2x6MzIobGFuZXMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3QuZW50YW5nbGVtZW50c1sxXSB8PSBsYW5lO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFuZXMgJj0gfmxhbmU7XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIGVuc3VyZVJvb3RJc1NjaGVkdWxlZChmaWJlcik7XG4gICAgICAgICAgICAgICAgICAgICAgKGV4ZWN1dGlvbkNvbnRleHQgJiAoUmVuZGVyQ29udGV4dCB8IENvbW1pdENvbnRleHQpKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgIE5vQ29udGV4dCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgKCh3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJUYXJnZXRUaW1lID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm93JDEoKSArIFJFTkRFUl9USU1FT1VUX01TKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoU3luY1dvcmtBY3Jvc3NSb290c19pbXBsKDAsICExKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgMzE6XG4gICAgICAgICAgICAgICAgY2FzZSAxMzpcbiAgICAgICAgICAgICAgICAgIChyb290ID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKSksXG4gICAgICAgICAgICAgICAgICAgIG51bGwgIT09IHJvb3QgJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIGZpYmVyLCAyKSxcbiAgICAgICAgICAgICAgICAgICAgZmx1c2hTeW5jV29yayQxKCksXG4gICAgICAgICAgICAgICAgICAgIG1hcmtSZXRyeUxhbmVJZk5vdEh5ZHJhdGVkKGZpYmVyLCAyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmliZXIgPSBmaW5kSW5zdGFuY2VCbG9ja2luZ0V2ZW50KG5hdGl2ZUV2ZW50KTtcbiAgICAgICAgICAgIG51bGwgPT09IGZpYmVyICYmXG4gICAgICAgICAgICAgIGRpc3BhdGNoRXZlbnRGb3JQbHVnaW5FdmVudFN5c3RlbShcbiAgICAgICAgICAgICAgICBkb21FdmVudE5hbWUsXG4gICAgICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgICAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgICAgICByZXR1cm5fdGFyZ2V0SW5zdCxcbiAgICAgICAgICAgICAgICB0YXJnZXRDb250YWluZXJcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChmaWJlciA9PT0gYmxvY2tlZE9uKSBicmVhaztcbiAgICAgICAgICAgIGJsb2NrZWRPbiA9IGZpYmVyO1xuICAgICAgICAgIH1cbiAgICAgICAgICBudWxsICE9PSBibG9ja2VkT24gJiYgbmF0aXZlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH0gZWxzZVxuICAgICAgICAgIGRpc3BhdGNoRXZlbnRGb3JQbHVnaW5FdmVudFN5c3RlbShcbiAgICAgICAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICAgICAgICBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICB0YXJnZXRDb250YWluZXJcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmaW5kSW5zdGFuY2VCbG9ja2luZ0V2ZW50KG5hdGl2ZUV2ZW50KSB7XG4gICAgICBuYXRpdmVFdmVudCA9IGdldEV2ZW50VGFyZ2V0KG5hdGl2ZUV2ZW50KTtcbiAgICAgIHJldHVybiBmaW5kSW5zdGFuY2VCbG9ja2luZ1RhcmdldChuYXRpdmVFdmVudCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpbmRJbnN0YW5jZUJsb2NraW5nVGFyZ2V0KHRhcmdldE5vZGUpIHtcbiAgICAgIHJldHVybl90YXJnZXRJbnN0ID0gbnVsbDtcbiAgICAgIHRhcmdldE5vZGUgPSBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZSh0YXJnZXROb2RlKTtcbiAgICAgIGlmIChudWxsICE9PSB0YXJnZXROb2RlKSB7XG4gICAgICAgIHZhciBuZWFyZXN0TW91bnRlZCA9IGdldE5lYXJlc3RNb3VudGVkRmliZXIodGFyZ2V0Tm9kZSk7XG4gICAgICAgIGlmIChudWxsID09PSBuZWFyZXN0TW91bnRlZCkgdGFyZ2V0Tm9kZSA9IG51bGw7XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHZhciB0YWcgPSBuZWFyZXN0TW91bnRlZC50YWc7XG4gICAgICAgICAgaWYgKDEzID09PSB0YWcpIHtcbiAgICAgICAgICAgIHRhcmdldE5vZGUgPSBnZXRTdXNwZW5zZUluc3RhbmNlRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKTtcbiAgICAgICAgICAgIGlmIChudWxsICE9PSB0YXJnZXROb2RlKSByZXR1cm4gdGFyZ2V0Tm9kZTtcbiAgICAgICAgICAgIHRhcmdldE5vZGUgPSBudWxsO1xuICAgICAgICAgIH0gZWxzZSBpZiAoMzEgPT09IHRhZykge1xuICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IGdldEFjdGl2aXR5SW5zdGFuY2VGcm9tRmliZXIobmVhcmVzdE1vdW50ZWQpO1xuICAgICAgICAgICAgaWYgKG51bGwgIT09IHRhcmdldE5vZGUpIHJldHVybiB0YXJnZXROb2RlO1xuICAgICAgICAgICAgdGFyZ2V0Tm9kZSA9IG51bGw7XG4gICAgICAgICAgfSBlbHNlIGlmICgzID09PSB0YWcpIHtcbiAgICAgICAgICAgIGlmIChuZWFyZXN0TW91bnRlZC5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZClcbiAgICAgICAgICAgICAgcmV0dXJuIDMgPT09IG5lYXJlc3RNb3VudGVkLnRhZ1xuICAgICAgICAgICAgICAgID8gbmVhcmVzdE1vdW50ZWQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm9cbiAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICB0YXJnZXROb2RlID0gbnVsbDtcbiAgICAgICAgICB9IGVsc2UgbmVhcmVzdE1vdW50ZWQgIT09IHRhcmdldE5vZGUgJiYgKHRhcmdldE5vZGUgPSBudWxsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuX3RhcmdldEluc3QgPSB0YXJnZXROb2RlO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEV2ZW50UHJpb3JpdHkoZG9tRXZlbnROYW1lKSB7XG4gICAgICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgICAgICBjYXNlIFwiYmVmb3JldG9nZ2xlXCI6XG4gICAgICAgIGNhc2UgXCJjYW5jZWxcIjpcbiAgICAgICAgY2FzZSBcImNsaWNrXCI6XG4gICAgICAgIGNhc2UgXCJjbG9zZVwiOlxuICAgICAgICBjYXNlIFwiY29udGV4dG1lbnVcIjpcbiAgICAgICAgY2FzZSBcImNvcHlcIjpcbiAgICAgICAgY2FzZSBcImN1dFwiOlxuICAgICAgICBjYXNlIFwiYXV4Y2xpY2tcIjpcbiAgICAgICAgY2FzZSBcImRibGNsaWNrXCI6XG4gICAgICAgIGNhc2UgXCJkcmFnZW5kXCI6XG4gICAgICAgIGNhc2UgXCJkcmFnc3RhcnRcIjpcbiAgICAgICAgY2FzZSBcImRyb3BcIjpcbiAgICAgICAgY2FzZSBcImZvY3VzaW5cIjpcbiAgICAgICAgY2FzZSBcImZvY3Vzb3V0XCI6XG4gICAgICAgIGNhc2UgXCJpbnB1dFwiOlxuICAgICAgICBjYXNlIFwiaW52YWxpZFwiOlxuICAgICAgICBjYXNlIFwia2V5ZG93blwiOlxuICAgICAgICBjYXNlIFwia2V5cHJlc3NcIjpcbiAgICAgICAgY2FzZSBcImtleXVwXCI6XG4gICAgICAgIGNhc2UgXCJtb3VzZWRvd25cIjpcbiAgICAgICAgY2FzZSBcIm1vdXNldXBcIjpcbiAgICAgICAgY2FzZSBcInBhc3RlXCI6XG4gICAgICAgIGNhc2UgXCJwYXVzZVwiOlxuICAgICAgICBjYXNlIFwicGxheVwiOlxuICAgICAgICBjYXNlIFwicG9pbnRlcmNhbmNlbFwiOlxuICAgICAgICBjYXNlIFwicG9pbnRlcmRvd25cIjpcbiAgICAgICAgY2FzZSBcInBvaW50ZXJ1cFwiOlxuICAgICAgICBjYXNlIFwicmF0ZWNoYW5nZVwiOlxuICAgICAgICBjYXNlIFwicmVzZXRcIjpcbiAgICAgICAgY2FzZSBcInJlc2l6ZVwiOlxuICAgICAgICBjYXNlIFwic2Vla2VkXCI6XG4gICAgICAgIGNhc2UgXCJzdWJtaXRcIjpcbiAgICAgICAgY2FzZSBcInRvZ2dsZVwiOlxuICAgICAgICBjYXNlIFwidG91Y2hjYW5jZWxcIjpcbiAgICAgICAgY2FzZSBcInRvdWNoZW5kXCI6XG4gICAgICAgIGNhc2UgXCJ0b3VjaHN0YXJ0XCI6XG4gICAgICAgIGNhc2UgXCJ2b2x1bWVjaGFuZ2VcIjpcbiAgICAgICAgY2FzZSBcImNoYW5nZVwiOlxuICAgICAgICBjYXNlIFwic2VsZWN0aW9uY2hhbmdlXCI6XG4gICAgICAgIGNhc2UgXCJ0ZXh0SW5wdXRcIjpcbiAgICAgICAgY2FzZSBcImNvbXBvc2l0aW9uc3RhcnRcIjpcbiAgICAgICAgY2FzZSBcImNvbXBvc2l0aW9uZW5kXCI6XG4gICAgICAgIGNhc2UgXCJjb21wb3NpdGlvbnVwZGF0ZVwiOlxuICAgICAgICBjYXNlIFwiYmVmb3JlYmx1clwiOlxuICAgICAgICBjYXNlIFwiYWZ0ZXJibHVyXCI6XG4gICAgICAgIGNhc2UgXCJiZWZvcmVpbnB1dFwiOlxuICAgICAgICBjYXNlIFwiYmx1clwiOlxuICAgICAgICBjYXNlIFwiZnVsbHNjcmVlbmNoYW5nZVwiOlxuICAgICAgICBjYXNlIFwiZm9jdXNcIjpcbiAgICAgICAgY2FzZSBcImhhc2hjaGFuZ2VcIjpcbiAgICAgICAgY2FzZSBcInBvcHN0YXRlXCI6XG4gICAgICAgIGNhc2UgXCJzZWxlY3RcIjpcbiAgICAgICAgY2FzZSBcInNlbGVjdHN0YXJ0XCI6XG4gICAgICAgICAgcmV0dXJuIERpc2NyZXRlRXZlbnRQcmlvcml0eTtcbiAgICAgICAgY2FzZSBcImRyYWdcIjpcbiAgICAgICAgY2FzZSBcImRyYWdlbnRlclwiOlxuICAgICAgICBjYXNlIFwiZHJhZ2V4aXRcIjpcbiAgICAgICAgY2FzZSBcImRyYWdsZWF2ZVwiOlxuICAgICAgICBjYXNlIFwiZHJhZ292ZXJcIjpcbiAgICAgICAgY2FzZSBcIm1vdXNlbW92ZVwiOlxuICAgICAgICBjYXNlIFwibW91c2VvdXRcIjpcbiAgICAgICAgY2FzZSBcIm1vdXNlb3ZlclwiOlxuICAgICAgICBjYXNlIFwicG9pbnRlcm1vdmVcIjpcbiAgICAgICAgY2FzZSBcInBvaW50ZXJvdXRcIjpcbiAgICAgICAgY2FzZSBcInBvaW50ZXJvdmVyXCI6XG4gICAgICAgIGNhc2UgXCJzY3JvbGxcIjpcbiAgICAgICAgY2FzZSBcInRvdWNobW92ZVwiOlxuICAgICAgICBjYXNlIFwid2hlZWxcIjpcbiAgICAgICAgY2FzZSBcIm1vdXNlZW50ZXJcIjpcbiAgICAgICAgY2FzZSBcIm1vdXNlbGVhdmVcIjpcbiAgICAgICAgY2FzZSBcInBvaW50ZXJlbnRlclwiOlxuICAgICAgICBjYXNlIFwicG9pbnRlcmxlYXZlXCI6XG4gICAgICAgICAgcmV0dXJuIENvbnRpbnVvdXNFdmVudFByaW9yaXR5O1xuICAgICAgICBjYXNlIFwibWVzc2FnZVwiOlxuICAgICAgICAgIHN3aXRjaCAoZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwoKSkge1xuICAgICAgICAgICAgY2FzZSBJbW1lZGlhdGVQcmlvcml0eTpcbiAgICAgICAgICAgICAgcmV0dXJuIERpc2NyZXRlRXZlbnRQcmlvcml0eTtcbiAgICAgICAgICAgIGNhc2UgVXNlckJsb2NraW5nUHJpb3JpdHk6XG4gICAgICAgICAgICAgIHJldHVybiBDb250aW51b3VzRXZlbnRQcmlvcml0eTtcbiAgICAgICAgICAgIGNhc2UgTm9ybWFsUHJpb3JpdHkkMTpcbiAgICAgICAgICAgIGNhc2UgTG93UHJpb3JpdHk6XG4gICAgICAgICAgICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTtcbiAgICAgICAgICAgIGNhc2UgSWRsZVByaW9yaXR5OlxuICAgICAgICAgICAgICByZXR1cm4gSWRsZUV2ZW50UHJpb3JpdHk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICByZXR1cm4gRGVmYXVsdEV2ZW50UHJpb3JpdHk7XG4gICAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBEZWZhdWx0RXZlbnRQcmlvcml0eTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gY2xlYXJJZkNvbnRpbnVvdXNFdmVudChkb21FdmVudE5hbWUsIG5hdGl2ZUV2ZW50KSB7XG4gICAgICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgICAgICBjYXNlIFwiZm9jdXNpblwiOlxuICAgICAgICBjYXNlIFwiZm9jdXNvdXRcIjpcbiAgICAgICAgICBxdWV1ZWRGb2N1cyA9IG51bGw7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJkcmFnZW50ZXJcIjpcbiAgICAgICAgY2FzZSBcImRyYWdsZWF2ZVwiOlxuICAgICAgICAgIHF1ZXVlZERyYWcgPSBudWxsO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibW91c2VvdmVyXCI6XG4gICAgICAgIGNhc2UgXCJtb3VzZW91dFwiOlxuICAgICAgICAgIHF1ZXVlZE1vdXNlID0gbnVsbDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInBvaW50ZXJvdmVyXCI6XG4gICAgICAgIGNhc2UgXCJwb2ludGVyb3V0XCI6XG4gICAgICAgICAgcXVldWVkUG9pbnRlcnMuZGVsZXRlKG5hdGl2ZUV2ZW50LnBvaW50ZXJJZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJnb3Rwb2ludGVyY2FwdHVyZVwiOlxuICAgICAgICBjYXNlIFwibG9zdHBvaW50ZXJjYXB0dXJlXCI6XG4gICAgICAgICAgcXVldWVkUG9pbnRlckNhcHR1cmVzLmRlbGV0ZShuYXRpdmVFdmVudC5wb2ludGVySWQpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBhY2N1bXVsYXRlT3JDcmVhdGVDb250aW51b3VzUXVldWVkUmVwbGF5YWJsZUV2ZW50KFxuICAgICAgZXhpc3RpbmdRdWV1ZWRFdmVudCxcbiAgICAgIGJsb2NrZWRPbixcbiAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICB0YXJnZXRDb250YWluZXIsXG4gICAgICBuYXRpdmVFdmVudFxuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICBudWxsID09PSBleGlzdGluZ1F1ZXVlZEV2ZW50IHx8XG4gICAgICAgIGV4aXN0aW5nUXVldWVkRXZlbnQubmF0aXZlRXZlbnQgIT09IG5hdGl2ZUV2ZW50XG4gICAgICApXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgKGV4aXN0aW5nUXVldWVkRXZlbnQgPSB7XG4gICAgICAgICAgICBibG9ja2VkT246IGJsb2NrZWRPbixcbiAgICAgICAgICAgIGRvbUV2ZW50TmFtZTogZG9tRXZlbnROYW1lLFxuICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFnczogZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgICAgICAgIG5hdGl2ZUV2ZW50OiBuYXRpdmVFdmVudCxcbiAgICAgICAgICAgIHRhcmdldENvbnRhaW5lcnM6IFt0YXJnZXRDb250YWluZXJdXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbnVsbCAhPT0gYmxvY2tlZE9uICYmXG4gICAgICAgICAgICAoKGJsb2NrZWRPbiA9IGdldEluc3RhbmNlRnJvbU5vZGUoYmxvY2tlZE9uKSksXG4gICAgICAgICAgICBudWxsICE9PSBibG9ja2VkT24gJiYgYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24oYmxvY2tlZE9uKSksXG4gICAgICAgICAgZXhpc3RpbmdRdWV1ZWRFdmVudFxuICAgICAgICApO1xuICAgICAgZXhpc3RpbmdRdWV1ZWRFdmVudC5ldmVudFN5c3RlbUZsYWdzIHw9IGV2ZW50U3lzdGVtRmxhZ3M7XG4gICAgICBibG9ja2VkT24gPSBleGlzdGluZ1F1ZXVlZEV2ZW50LnRhcmdldENvbnRhaW5lcnM7XG4gICAgICBudWxsICE9PSB0YXJnZXRDb250YWluZXIgJiZcbiAgICAgICAgLTEgPT09IGJsb2NrZWRPbi5pbmRleE9mKHRhcmdldENvbnRhaW5lcikgJiZcbiAgICAgICAgYmxvY2tlZE9uLnB1c2godGFyZ2V0Q29udGFpbmVyKTtcbiAgICAgIHJldHVybiBleGlzdGluZ1F1ZXVlZEV2ZW50O1xuICAgIH1cbiAgICBmdW5jdGlvbiBxdWV1ZUlmQ29udGludW91c0V2ZW50KFxuICAgICAgYmxvY2tlZE9uLFxuICAgICAgZG9tRXZlbnROYW1lLFxuICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgIHRhcmdldENvbnRhaW5lcixcbiAgICAgIG5hdGl2ZUV2ZW50XG4gICAgKSB7XG4gICAgICBzd2l0Y2ggKGRvbUV2ZW50TmFtZSkge1xuICAgICAgICBjYXNlIFwiZm9jdXNpblwiOlxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAocXVldWVkRm9jdXMgPSBhY2N1bXVsYXRlT3JDcmVhdGVDb250aW51b3VzUXVldWVkUmVwbGF5YWJsZUV2ZW50KFxuICAgICAgICAgICAgICBxdWV1ZWRGb2N1cyxcbiAgICAgICAgICAgICAgYmxvY2tlZE9uLFxuICAgICAgICAgICAgICBkb21FdmVudE5hbWUsXG4gICAgICAgICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICAgICAgICAgIHRhcmdldENvbnRhaW5lcixcbiAgICAgICAgICAgICAgbmF0aXZlRXZlbnRcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgITBcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIFwiZHJhZ2VudGVyXCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChxdWV1ZWREcmFnID0gYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChcbiAgICAgICAgICAgICAgcXVldWVkRHJhZyxcbiAgICAgICAgICAgICAgYmxvY2tlZE9uLFxuICAgICAgICAgICAgICBkb21FdmVudE5hbWUsXG4gICAgICAgICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICAgICAgICAgIHRhcmdldENvbnRhaW5lcixcbiAgICAgICAgICAgICAgbmF0aXZlRXZlbnRcbiAgICAgICAgICAgICkpLFxuICAgICAgICAgICAgITBcbiAgICAgICAgICApO1xuICAgICAgICBjYXNlIFwibW91c2VvdmVyXCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChxdWV1ZWRNb3VzZSA9IGFjY3VtdWxhdGVPckNyZWF0ZUNvbnRpbnVvdXNRdWV1ZWRSZXBsYXlhYmxlRXZlbnQoXG4gICAgICAgICAgICAgIHF1ZXVlZE1vdXNlLFxuICAgICAgICAgICAgICBibG9ja2VkT24sXG4gICAgICAgICAgICAgIGRvbUV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgICAgICAgICAgdGFyZ2V0Q29udGFpbmVyLFxuICAgICAgICAgICAgICBuYXRpdmVFdmVudFxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAhMFxuICAgICAgICAgICk7XG4gICAgICAgIGNhc2UgXCJwb2ludGVyb3ZlclwiOlxuICAgICAgICAgIHZhciBwb2ludGVySWQgPSBuYXRpdmVFdmVudC5wb2ludGVySWQ7XG4gICAgICAgICAgcXVldWVkUG9pbnRlcnMuc2V0KFxuICAgICAgICAgICAgcG9pbnRlcklkLFxuICAgICAgICAgICAgYWNjdW11bGF0ZU9yQ3JlYXRlQ29udGludW91c1F1ZXVlZFJlcGxheWFibGVFdmVudChcbiAgICAgICAgICAgICAgcXVldWVkUG9pbnRlcnMuZ2V0KHBvaW50ZXJJZCkgfHwgbnVsbCxcbiAgICAgICAgICAgICAgYmxvY2tlZE9uLFxuICAgICAgICAgICAgICBkb21FdmVudE5hbWUsXG4gICAgICAgICAgICAgIGV2ZW50U3lzdGVtRmxhZ3MsXG4gICAgICAgICAgICAgIHRhcmdldENvbnRhaW5lcixcbiAgICAgICAgICAgICAgbmF0aXZlRXZlbnRcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiAhMDtcbiAgICAgICAgY2FzZSBcImdvdHBvaW50ZXJjYXB0dXJlXCI6XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIChwb2ludGVySWQgPSBuYXRpdmVFdmVudC5wb2ludGVySWQpLFxuICAgICAgICAgICAgcXVldWVkUG9pbnRlckNhcHR1cmVzLnNldChcbiAgICAgICAgICAgICAgcG9pbnRlcklkLFxuICAgICAgICAgICAgICBhY2N1bXVsYXRlT3JDcmVhdGVDb250aW51b3VzUXVldWVkUmVwbGF5YWJsZUV2ZW50KFxuICAgICAgICAgICAgICAgIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcy5nZXQocG9pbnRlcklkKSB8fCBudWxsLFxuICAgICAgICAgICAgICAgIGJsb2NrZWRPbixcbiAgICAgICAgICAgICAgICBkb21FdmVudE5hbWUsXG4gICAgICAgICAgICAgICAgZXZlbnRTeXN0ZW1GbGFncyxcbiAgICAgICAgICAgICAgICB0YXJnZXRDb250YWluZXIsXG4gICAgICAgICAgICAgICAgbmF0aXZlRXZlbnRcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICEwXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhMTtcbiAgICB9XG4gICAgZnVuY3Rpb24gYXR0ZW1wdEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0KHF1ZXVlZFRhcmdldCkge1xuICAgICAgdmFyIHRhcmdldEluc3QgPSBnZXRDbG9zZXN0SW5zdGFuY2VGcm9tTm9kZShxdWV1ZWRUYXJnZXQudGFyZ2V0KTtcbiAgICAgIGlmIChudWxsICE9PSB0YXJnZXRJbnN0KSB7XG4gICAgICAgIHZhciBuZWFyZXN0TW91bnRlZCA9IGdldE5lYXJlc3RNb3VudGVkRmliZXIodGFyZ2V0SW5zdCk7XG4gICAgICAgIGlmIChudWxsICE9PSBuZWFyZXN0TW91bnRlZClcbiAgICAgICAgICBpZiAoKCh0YXJnZXRJbnN0ID0gbmVhcmVzdE1vdW50ZWQudGFnKSwgMTMgPT09IHRhcmdldEluc3QpKSB7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICgodGFyZ2V0SW5zdCA9IGdldFN1c3BlbnNlSW5zdGFuY2VGcm9tRmliZXIobmVhcmVzdE1vdW50ZWQpKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gdGFyZ2V0SW5zdClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBxdWV1ZWRUYXJnZXQuYmxvY2tlZE9uID0gdGFyZ2V0SW5zdDtcbiAgICAgICAgICAgICAgcnVuV2l0aFByaW9yaXR5KHF1ZXVlZFRhcmdldC5wcmlvcml0eSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGF0dGVtcHRIeWRyYXRpb25BdEN1cnJlbnRQcmlvcml0eShuZWFyZXN0TW91bnRlZCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICgzMSA9PT0gdGFyZ2V0SW5zdCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoKHRhcmdldEluc3QgPSBnZXRBY3Rpdml0eUluc3RhbmNlRnJvbUZpYmVyKG5lYXJlc3RNb3VudGVkKSksXG4gICAgICAgICAgICAgIG51bGwgIT09IHRhcmdldEluc3QpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9IHRhcmdldEluc3Q7XG4gICAgICAgICAgICAgIHJ1bldpdGhQcmlvcml0eShxdWV1ZWRUYXJnZXQucHJpb3JpdHksIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBhdHRlbXB0SHlkcmF0aW9uQXRDdXJyZW50UHJpb3JpdHkobmVhcmVzdE1vdW50ZWQpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAzID09PSB0YXJnZXRJbnN0ICYmXG4gICAgICAgICAgICBuZWFyZXN0TW91bnRlZC5zdGF0ZU5vZGUuY3VycmVudC5tZW1vaXplZFN0YXRlLmlzRGVoeWRyYXRlZFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9XG4gICAgICAgICAgICAgIDMgPT09IG5lYXJlc3RNb3VudGVkLnRhZ1xuICAgICAgICAgICAgICAgID8gbmVhcmVzdE1vdW50ZWQuc3RhdGVOb2RlLmNvbnRhaW5lckluZm9cbiAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgICAgcXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGF0dGVtcHRSZXBsYXlDb250aW51b3VzUXVldWVkRXZlbnQocXVldWVkRXZlbnQpIHtcbiAgICAgIGlmIChudWxsICE9PSBxdWV1ZWRFdmVudC5ibG9ja2VkT24pIHJldHVybiAhMTtcbiAgICAgIGZvciAoXG4gICAgICAgIHZhciB0YXJnZXRDb250YWluZXJzID0gcXVldWVkRXZlbnQudGFyZ2V0Q29udGFpbmVycztcbiAgICAgICAgMCA8IHRhcmdldENvbnRhaW5lcnMubGVuZ3RoO1xuXG4gICAgICApIHtcbiAgICAgICAgdmFyIG5leHRCbG9ja2VkT24gPSBmaW5kSW5zdGFuY2VCbG9ja2luZ0V2ZW50KHF1ZXVlZEV2ZW50Lm5hdGl2ZUV2ZW50KTtcbiAgICAgICAgaWYgKG51bGwgPT09IG5leHRCbG9ja2VkT24pIHtcbiAgICAgICAgICBuZXh0QmxvY2tlZE9uID0gcXVldWVkRXZlbnQubmF0aXZlRXZlbnQ7XG4gICAgICAgICAgdmFyIG5hdGl2ZUV2ZW50Q2xvbmUgPSBuZXcgbmV4dEJsb2NrZWRPbi5jb25zdHJ1Y3RvcihcbiAgICAgICAgICAgICAgbmV4dEJsb2NrZWRPbi50eXBlLFxuICAgICAgICAgICAgICBuZXh0QmxvY2tlZE9uXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZXZlbnQgPSBuYXRpdmVFdmVudENsb25lO1xuICAgICAgICAgIG51bGwgIT09IGN1cnJlbnRSZXBsYXlpbmdFdmVudCAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJFeHBlY3RlZCBjdXJyZW50bHkgcmVwbGF5aW5nIGV2ZW50IHRvIGJlIG51bGwuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgY3VycmVudFJlcGxheWluZ0V2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgbmV4dEJsb2NrZWRPbi50YXJnZXQuZGlzcGF0Y2hFdmVudChuYXRpdmVFdmVudENsb25lKTtcbiAgICAgICAgICBudWxsID09PSBjdXJyZW50UmVwbGF5aW5nRXZlbnQgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiRXhwZWN0ZWQgY3VycmVudGx5IHJlcGxheWluZyBldmVudCB0byBub3QgYmUgbnVsbC4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjdXJyZW50UmVwbGF5aW5nRXZlbnQgPSBudWxsO1xuICAgICAgICB9IGVsc2VcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgKHRhcmdldENvbnRhaW5lcnMgPSBnZXRJbnN0YW5jZUZyb21Ob2RlKG5leHRCbG9ja2VkT24pKSxcbiAgICAgICAgICAgIG51bGwgIT09IHRhcmdldENvbnRhaW5lcnMgJiZcbiAgICAgICAgICAgICAgYXR0ZW1wdENvbnRpbnVvdXNIeWRyYXRpb24odGFyZ2V0Q29udGFpbmVycyksXG4gICAgICAgICAgICAocXVldWVkRXZlbnQuYmxvY2tlZE9uID0gbmV4dEJsb2NrZWRPbiksXG4gICAgICAgICAgICAhMVxuICAgICAgICAgICk7XG4gICAgICAgIHRhcmdldENvbnRhaW5lcnMuc2hpZnQoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAhMDtcbiAgICB9XG4gICAgZnVuY3Rpb24gYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudEluTWFwKHF1ZXVlZEV2ZW50LCBrZXksIG1hcCkge1xuICAgICAgYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWRFdmVudCkgJiYgbWFwLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXBsYXlVbmJsb2NrZWRFdmVudHMoKSB7XG4gICAgICBoYXNTY2hlZHVsZWRSZXBsYXlBdHRlbXB0ID0gITE7XG4gICAgICBudWxsICE9PSBxdWV1ZWRGb2N1cyAmJlxuICAgICAgICBhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50KHF1ZXVlZEZvY3VzKSAmJlxuICAgICAgICAocXVldWVkRm9jdXMgPSBudWxsKTtcbiAgICAgIG51bGwgIT09IHF1ZXVlZERyYWcgJiZcbiAgICAgICAgYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWREcmFnKSAmJlxuICAgICAgICAocXVldWVkRHJhZyA9IG51bGwpO1xuICAgICAgbnVsbCAhPT0gcXVldWVkTW91c2UgJiZcbiAgICAgICAgYXR0ZW1wdFJlcGxheUNvbnRpbnVvdXNRdWV1ZWRFdmVudChxdWV1ZWRNb3VzZSkgJiZcbiAgICAgICAgKHF1ZXVlZE1vdXNlID0gbnVsbCk7XG4gICAgICBxdWV1ZWRQb2ludGVycy5mb3JFYWNoKGF0dGVtcHRSZXBsYXlDb250aW51b3VzUXVldWVkRXZlbnRJbk1hcCk7XG4gICAgICBxdWV1ZWRQb2ludGVyQ2FwdHVyZXMuZm9yRWFjaChhdHRlbXB0UmVwbGF5Q29udGludW91c1F1ZXVlZEV2ZW50SW5NYXApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkRXZlbnQsIHVuYmxvY2tlZCkge1xuICAgICAgcXVldWVkRXZlbnQuYmxvY2tlZE9uID09PSB1bmJsb2NrZWQgJiZcbiAgICAgICAgKChxdWV1ZWRFdmVudC5ibG9ja2VkT24gPSBudWxsKSxcbiAgICAgICAgaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCB8fFxuICAgICAgICAgICgoaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCA9ICEwKSxcbiAgICAgICAgICBTY2hlZHVsZXIudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhcbiAgICAgICAgICAgIFNjaGVkdWxlci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxcbiAgICAgICAgICAgIHJlcGxheVVuYmxvY2tlZEV2ZW50c1xuICAgICAgICAgICkpKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gc2NoZWR1bGVSZXBsYXlRdWV1ZUlmTmVlZGVkKGZvcm1SZXBsYXlpbmdRdWV1ZSkge1xuICAgICAgbGFzdFNjaGVkdWxlZFJlcGxheVF1ZXVlICE9PSBmb3JtUmVwbGF5aW5nUXVldWUgJiZcbiAgICAgICAgKChsYXN0U2NoZWR1bGVkUmVwbGF5UXVldWUgPSBmb3JtUmVwbGF5aW5nUXVldWUpLFxuICAgICAgICBTY2hlZHVsZXIudW5zdGFibGVfc2NoZWR1bGVDYWxsYmFjayhcbiAgICAgICAgICBTY2hlZHVsZXIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksXG4gICAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgbGFzdFNjaGVkdWxlZFJlcGxheVF1ZXVlID09PSBmb3JtUmVwbGF5aW5nUXVldWUgJiZcbiAgICAgICAgICAgICAgKGxhc3RTY2hlZHVsZWRSZXBsYXlRdWV1ZSA9IG51bGwpO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmb3JtUmVwbGF5aW5nUXVldWUubGVuZ3RoOyBpICs9IDMpIHtcbiAgICAgICAgICAgICAgdmFyIGZvcm0gPSBmb3JtUmVwbGF5aW5nUXVldWVbaV0sXG4gICAgICAgICAgICAgICAgc3VibWl0dGVyT3JBY3Rpb24gPSBmb3JtUmVwbGF5aW5nUXVldWVbaSArIDFdLFxuICAgICAgICAgICAgICAgIGZvcm1EYXRhID0gZm9ybVJlcGxheWluZ1F1ZXVlW2kgKyAyXTtcbiAgICAgICAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHN1Ym1pdHRlck9yQWN0aW9uKVxuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgIG51bGwgPT09IGZpbmRJbnN0YW5jZUJsb2NraW5nVGFyZ2V0KHN1Ym1pdHRlck9yQWN0aW9uIHx8IGZvcm0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgZWxzZSBicmVhaztcbiAgICAgICAgICAgICAgdmFyIGZvcm1JbnN0ID0gZ2V0SW5zdGFuY2VGcm9tTm9kZShmb3JtKTtcbiAgICAgICAgICAgICAgbnVsbCAhPT0gZm9ybUluc3QgJiZcbiAgICAgICAgICAgICAgICAoZm9ybVJlcGxheWluZ1F1ZXVlLnNwbGljZShpLCAzKSxcbiAgICAgICAgICAgICAgICAoaSAtPSAzKSxcbiAgICAgICAgICAgICAgICAoZm9ybSA9IHtcbiAgICAgICAgICAgICAgICAgIHBlbmRpbmc6ICEwLFxuICAgICAgICAgICAgICAgICAgZGF0YTogZm9ybURhdGEsXG4gICAgICAgICAgICAgICAgICBtZXRob2Q6IGZvcm0ubWV0aG9kLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uOiBzdWJtaXR0ZXJPckFjdGlvblxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIE9iamVjdC5mcmVlemUoZm9ybSksXG4gICAgICAgICAgICAgICAgc3RhcnRIb3N0VHJhbnNpdGlvbihcbiAgICAgICAgICAgICAgICAgIGZvcm1JbnN0LFxuICAgICAgICAgICAgICAgICAgZm9ybSxcbiAgICAgICAgICAgICAgICAgIHN1Ym1pdHRlck9yQWN0aW9uLFxuICAgICAgICAgICAgICAgICAgZm9ybURhdGFcbiAgICAgICAgICAgICAgICApKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXRyeUlmQmxvY2tlZE9uKHVuYmxvY2tlZCkge1xuICAgICAgZnVuY3Rpb24gdW5ibG9jayhxdWV1ZWRFdmVudCkge1xuICAgICAgICByZXR1cm4gc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZEV2ZW50LCB1bmJsb2NrZWQpO1xuICAgICAgfVxuICAgICAgbnVsbCAhPT0gcXVldWVkRm9jdXMgJiZcbiAgICAgICAgc2NoZWR1bGVDYWxsYmFja0lmVW5ibG9ja2VkKHF1ZXVlZEZvY3VzLCB1bmJsb2NrZWQpO1xuICAgICAgbnVsbCAhPT0gcXVldWVkRHJhZyAmJiBzY2hlZHVsZUNhbGxiYWNrSWZVbmJsb2NrZWQocXVldWVkRHJhZywgdW5ibG9ja2VkKTtcbiAgICAgIG51bGwgIT09IHF1ZXVlZE1vdXNlICYmXG4gICAgICAgIHNjaGVkdWxlQ2FsbGJhY2tJZlVuYmxvY2tlZChxdWV1ZWRNb3VzZSwgdW5ibG9ja2VkKTtcbiAgICAgIHF1ZXVlZFBvaW50ZXJzLmZvckVhY2godW5ibG9jayk7XG4gICAgICBxdWV1ZWRQb2ludGVyQ2FwdHVyZXMuZm9yRWFjaCh1bmJsb2NrKTtcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBxdWV1ZWRUYXJnZXQgPSBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHNbaV07XG4gICAgICAgIHF1ZXVlZFRhcmdldC5ibG9ja2VkT24gPT09IHVuYmxvY2tlZCAmJiAocXVldWVkVGFyZ2V0LmJsb2NrZWRPbiA9IG51bGwpO1xuICAgICAgfVxuICAgICAgZm9yIChcbiAgICAgICAgO1xuICAgICAgICAwIDwgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzLmxlbmd0aCAmJlxuICAgICAgICAoKGkgPSBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHNbMF0pLCBudWxsID09PSBpLmJsb2NrZWRPbik7XG5cbiAgICAgIClcbiAgICAgICAgYXR0ZW1wdEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0KGkpLFxuICAgICAgICAgIG51bGwgPT09IGkuYmxvY2tlZE9uICYmIHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0cy5zaGlmdCgpO1xuICAgICAgaSA9ICh1bmJsb2NrZWQub3duZXJEb2N1bWVudCB8fCB1bmJsb2NrZWQpLiQkcmVhY3RGb3JtUmVwbGF5O1xuICAgICAgaWYgKG51bGwgIT0gaSlcbiAgICAgICAgZm9yIChxdWV1ZWRUYXJnZXQgPSAwOyBxdWV1ZWRUYXJnZXQgPCBpLmxlbmd0aDsgcXVldWVkVGFyZ2V0ICs9IDMpIHtcbiAgICAgICAgICB2YXIgZm9ybSA9IGlbcXVldWVkVGFyZ2V0XSxcbiAgICAgICAgICAgIHN1Ym1pdHRlck9yQWN0aW9uID0gaVtxdWV1ZWRUYXJnZXQgKyAxXSxcbiAgICAgICAgICAgIGZvcm1Qcm9wcyA9IGZvcm1baW50ZXJuYWxQcm9wc0tleV0gfHwgbnVsbDtcbiAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2Ygc3VibWl0dGVyT3JBY3Rpb24pXG4gICAgICAgICAgICBmb3JtUHJvcHMgfHwgc2NoZWR1bGVSZXBsYXlRdWV1ZUlmTmVlZGVkKGkpO1xuICAgICAgICAgIGVsc2UgaWYgKGZvcm1Qcm9wcykge1xuICAgICAgICAgICAgdmFyIGFjdGlvbiA9IG51bGw7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIHN1Ym1pdHRlck9yQWN0aW9uICYmXG4gICAgICAgICAgICAgIHN1Ym1pdHRlck9yQWN0aW9uLmhhc0F0dHJpYnV0ZShcImZvcm1BY3Rpb25cIilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICgoZm9ybSA9IHN1Ym1pdHRlck9yQWN0aW9uKSxcbiAgICAgICAgICAgICAgICAoZm9ybVByb3BzID0gc3VibWl0dGVyT3JBY3Rpb25baW50ZXJuYWxQcm9wc0tleV0gfHwgbnVsbCkpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICBhY3Rpb24gPSBmb3JtUHJvcHMuZm9ybUFjdGlvbjtcbiAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKG51bGwgIT09IGZpbmRJbnN0YW5jZUJsb2NraW5nVGFyZ2V0KGZvcm0pKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBhY3Rpb24gPSBmb3JtUHJvcHMuYWN0aW9uO1xuICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgYWN0aW9uXG4gICAgICAgICAgICAgID8gKGlbcXVldWVkVGFyZ2V0ICsgMV0gPSBhY3Rpb24pXG4gICAgICAgICAgICAgIDogKGkuc3BsaWNlKHF1ZXVlZFRhcmdldCwgMyksIChxdWV1ZWRUYXJnZXQgLT0gMykpO1xuICAgICAgICAgICAgc2NoZWR1bGVSZXBsYXlRdWV1ZUlmTmVlZGVkKGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBkZWZhdWx0T25EZWZhdWx0VHJhbnNpdGlvbkluZGljYXRvcigpIHtcbiAgICAgIGZ1bmN0aW9uIGhhbmRsZU5hdmlnYXRlKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LmNhbkludGVyY2VwdCAmJlxuICAgICAgICAgIFwicmVhY3QtdHJhbnNpdGlvblwiID09PSBldmVudC5pbmZvICYmXG4gICAgICAgICAgZXZlbnQuaW50ZXJjZXB0KHtcbiAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChwZW5kaW5nUmVzb2x2ZSA9IHJlc29sdmUpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmb2N1c1Jlc2V0OiBcIm1hbnVhbFwiLFxuICAgICAgICAgICAgc2Nyb2xsOiBcIm1hbnVhbFwiXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBoYW5kbGVOYXZpZ2F0ZUNvbXBsZXRlKCkge1xuICAgICAgICBudWxsICE9PSBwZW5kaW5nUmVzb2x2ZSAmJiAocGVuZGluZ1Jlc29sdmUoKSwgKHBlbmRpbmdSZXNvbHZlID0gbnVsbCkpO1xuICAgICAgICBpc0NhbmNlbGxlZCB8fCBzZXRUaW1lb3V0KHN0YXJ0RmFrZU5hdmlnYXRpb24sIDIwKTtcbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHN0YXJ0RmFrZU5hdmlnYXRpb24oKSB7XG4gICAgICAgIGlmICghaXNDYW5jZWxsZWQgJiYgIW5hdmlnYXRpb24udHJhbnNpdGlvbikge1xuICAgICAgICAgIHZhciBjdXJyZW50RW50cnkgPSBuYXZpZ2F0aW9uLmN1cnJlbnRFbnRyeTtcbiAgICAgICAgICBjdXJyZW50RW50cnkgJiZcbiAgICAgICAgICAgIG51bGwgIT0gY3VycmVudEVudHJ5LnVybCAmJlxuICAgICAgICAgICAgbmF2aWdhdGlvbi5uYXZpZ2F0ZShjdXJyZW50RW50cnkudXJsLCB7XG4gICAgICAgICAgICAgIHN0YXRlOiBjdXJyZW50RW50cnkuZ2V0U3RhdGUoKSxcbiAgICAgICAgICAgICAgaW5mbzogXCJyZWFjdC10cmFuc2l0aW9uXCIsXG4gICAgICAgICAgICAgIGhpc3Rvcnk6IFwicmVwbGFjZVwiXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBuYXZpZ2F0aW9uKSB7XG4gICAgICAgIHZhciBpc0NhbmNlbGxlZCA9ICExLFxuICAgICAgICAgIHBlbmRpbmdSZXNvbHZlID0gbnVsbDtcbiAgICAgICAgbmF2aWdhdGlvbi5hZGRFdmVudExpc3RlbmVyKFwibmF2aWdhdGVcIiwgaGFuZGxlTmF2aWdhdGUpO1xuICAgICAgICBuYXZpZ2F0aW9uLmFkZEV2ZW50TGlzdGVuZXIoXCJuYXZpZ2F0ZXN1Y2Nlc3NcIiwgaGFuZGxlTmF2aWdhdGVDb21wbGV0ZSk7XG4gICAgICAgIG5hdmlnYXRpb24uYWRkRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlZXJyb3JcIiwgaGFuZGxlTmF2aWdhdGVDb21wbGV0ZSk7XG4gICAgICAgIHNldFRpbWVvdXQoc3RhcnRGYWtlTmF2aWdhdGlvbiwgMTAwKTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBpc0NhbmNlbGxlZCA9ICEwO1xuICAgICAgICAgIG5hdmlnYXRpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm5hdmlnYXRlXCIsIGhhbmRsZU5hdmlnYXRlKTtcbiAgICAgICAgICBuYXZpZ2F0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcIm5hdmlnYXRlc3VjY2Vzc1wiLFxuICAgICAgICAgICAgaGFuZGxlTmF2aWdhdGVDb21wbGV0ZVxuICAgICAgICAgICk7XG4gICAgICAgICAgbmF2aWdhdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgXCJuYXZpZ2F0ZWVycm9yXCIsXG4gICAgICAgICAgICBoYW5kbGVOYXZpZ2F0ZUNvbXBsZXRlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBudWxsICE9PSBwZW5kaW5nUmVzb2x2ZSAmJlxuICAgICAgICAgICAgKHBlbmRpbmdSZXNvbHZlKCksIChwZW5kaW5nUmVzb2x2ZSA9IG51bGwpKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gUmVhY3RET01Sb290KGludGVybmFsUm9vdCkge1xuICAgICAgdGhpcy5faW50ZXJuYWxSb290ID0gaW50ZXJuYWxSb290O1xuICAgIH1cbiAgICBmdW5jdGlvbiBSZWFjdERPTUh5ZHJhdGlvblJvb3QoaW50ZXJuYWxSb290KSB7XG4gICAgICB0aGlzLl9pbnRlcm5hbFJvb3QgPSBpbnRlcm5hbFJvb3Q7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5JZlJlYWN0RE9NQ29udGFpbmVySW5ERVYoY29udGFpbmVyKSB7XG4gICAgICBjb250YWluZXJbaW50ZXJuYWxDb250YWluZXJJbnN0YW5jZUtleV0gJiZcbiAgICAgICAgKGNvbnRhaW5lci5fcmVhY3RSb290Q29udGFpbmVyXG4gICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIllvdSBhcmUgY2FsbGluZyBSZWFjdERPTUNsaWVudC5jcmVhdGVSb290KCkgb24gYSBjb250YWluZXIgdGhhdCB3YXMgcHJldmlvdXNseSBwYXNzZWQgdG8gUmVhY3RET00ucmVuZGVyKCkuIFRoaXMgaXMgbm90IHN1cHBvcnRlZC5cIlxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJZb3UgYXJlIGNhbGxpbmcgUmVhY3RET01DbGllbnQuY3JlYXRlUm9vdCgpIG9uIGEgY29udGFpbmVyIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBwYXNzZWQgdG8gY3JlYXRlUm9vdCgpIGJlZm9yZS4gSW5zdGVhZCwgY2FsbCByb290LnJlbmRlcigpIG9uIHRoZSBleGlzdGluZyByb290IGluc3RlYWQgaWYgeW91IHdhbnQgdG8gdXBkYXRlIGl0LlwiXG4gICAgICAgICAgICApKTtcbiAgICB9XG4gICAgXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAmJlxuICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydCAmJlxuICAgICAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydChFcnJvcigpKTtcbiAgICB2YXIgU2NoZWR1bGVyID0gcmVxdWlyZShcInNjaGVkdWxlclwiKSxcbiAgICAgIFJlYWN0ID0gcmVxdWlyZShcInJlYWN0XCIpLFxuICAgICAgUmVhY3RET00gPSByZXF1aXJlKFwicmVhY3QtZG9tXCIpLFxuICAgICAgYXNzaWduID0gT2JqZWN0LmFzc2lnbixcbiAgICAgIFJFQUNUX0xFR0FDWV9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZWxlbWVudFwiKSxcbiAgICAgIFJFQUNUX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKSxcbiAgICAgIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxcbiAgICAgIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksXG4gICAgICBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLFxuICAgICAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSxcbiAgICAgIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIiksXG4gICAgICBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxcbiAgICAgIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksXG4gICAgICBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxcbiAgICAgIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpO1xuICAgIFN5bWJvbC5mb3IoXCJyZWFjdC5zY29wZVwiKTtcbiAgICB2YXIgUkVBQ1RfQUNUSVZJVFlfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5hY3Rpdml0eVwiKTtcbiAgICBTeW1ib2wuZm9yKFwicmVhY3QubGVnYWN5X2hpZGRlblwiKTtcbiAgICBTeW1ib2wuZm9yKFwicmVhY3QudHJhY2luZ19tYXJrZXJcIik7XG4gICAgdmFyIFJFQUNUX01FTU9fQ0FDSEVfU0VOVElORUwgPSBTeW1ib2wuZm9yKFwicmVhY3QubWVtb19jYWNoZV9zZW50aW5lbFwiKTtcbiAgICBTeW1ib2wuZm9yKFwicmVhY3Qudmlld190cmFuc2l0aW9uXCIpO1xuICAgIHZhciBNQVlCRV9JVEVSQVRPUl9TWU1CT0wgPSBTeW1ib2wuaXRlcmF0b3IsXG4gICAgICBSRUFDVF9DTElFTlRfUkVGRVJFTkNFID0gU3ltYm9sLmZvcihcInJlYWN0LmNsaWVudC5yZWZlcmVuY2VcIiksXG4gICAgICBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksXG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscyA9XG4gICAgICAgIFJlYWN0Ll9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERSxcbiAgICAgIFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzID1cbiAgICAgICAgUmVhY3RET00uX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLFxuICAgICAgTm90UGVuZGluZyA9IE9iamVjdC5mcmVlemUoe1xuICAgICAgICBwZW5kaW5nOiAhMSxcbiAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgbWV0aG9kOiBudWxsLFxuICAgICAgICBhY3Rpb246IG51bGxcbiAgICAgIH0pLFxuICAgICAgdmFsdWVTdGFjayA9IFtdO1xuICAgIHZhciBmaWJlclN0YWNrID0gW107XG4gICAgdmFyIGluZGV4JGpzY29tcCQwID0gLTEsXG4gICAgICBjb250ZXh0U3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IobnVsbCksXG4gICAgICBjb250ZXh0RmliZXJTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKSxcbiAgICAgIHJvb3RJbnN0YW5jZVN0YWNrQ3Vyc29yID0gY3JlYXRlQ3Vyc29yKG51bGwpLFxuICAgICAgaG9zdFRyYW5zaXRpb25Qcm92aWRlckN1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKSxcbiAgICAgIGRpc2FibGVkRGVwdGggPSAwLFxuICAgICAgcHJldkxvZyxcbiAgICAgIHByZXZJbmZvLFxuICAgICAgcHJldldhcm4sXG4gICAgICBwcmV2RXJyb3IsXG4gICAgICBwcmV2R3JvdXAsXG4gICAgICBwcmV2R3JvdXBDb2xsYXBzZWQsXG4gICAgICBwcmV2R3JvdXBFbmQ7XG4gICAgZGlzYWJsZWRMb2cuX19yZWFjdERpc2FibGVkTG9nID0gITA7XG4gICAgdmFyIHByZWZpeCxcbiAgICAgIHN1ZmZpeCxcbiAgICAgIHJlZW50cnkgPSAhMTtcbiAgICB2YXIgY29tcG9uZW50RnJhbWVDYWNoZSA9IG5ldyAoXG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBXZWFrTWFwID8gV2Vha01hcCA6IE1hcFxuICAgICkoKTtcbiAgICB2YXIgY3VycmVudCA9IG51bGwsXG4gICAgICBpc1JlbmRlcmluZyA9ICExLFxuICAgICAgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFxuICAgICAgc2NoZWR1bGVDYWxsYmFjayQzID0gU2NoZWR1bGVyLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2ssXG4gICAgICBjYW5jZWxDYWxsYmFjayQxID0gU2NoZWR1bGVyLnVuc3RhYmxlX2NhbmNlbENhbGxiYWNrLFxuICAgICAgc2hvdWxkWWllbGQgPSBTY2hlZHVsZXIudW5zdGFibGVfc2hvdWxkWWllbGQsXG4gICAgICByZXF1ZXN0UGFpbnQgPSBTY2hlZHVsZXIudW5zdGFibGVfcmVxdWVzdFBhaW50LFxuICAgICAgbm93JDEgPSBTY2hlZHVsZXIudW5zdGFibGVfbm93LFxuICAgICAgZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwgPSBTY2hlZHVsZXIudW5zdGFibGVfZ2V0Q3VycmVudFByaW9yaXR5TGV2ZWwsXG4gICAgICBJbW1lZGlhdGVQcmlvcml0eSA9IFNjaGVkdWxlci51bnN0YWJsZV9JbW1lZGlhdGVQcmlvcml0eSxcbiAgICAgIFVzZXJCbG9ja2luZ1ByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX1VzZXJCbG9ja2luZ1ByaW9yaXR5LFxuICAgICAgTm9ybWFsUHJpb3JpdHkkMSA9IFNjaGVkdWxlci51bnN0YWJsZV9Ob3JtYWxQcmlvcml0eSxcbiAgICAgIExvd1ByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX0xvd1ByaW9yaXR5LFxuICAgICAgSWRsZVByaW9yaXR5ID0gU2NoZWR1bGVyLnVuc3RhYmxlX0lkbGVQcmlvcml0eSxcbiAgICAgIGxvZyQxID0gU2NoZWR1bGVyLmxvZyxcbiAgICAgIHVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlID0gU2NoZWR1bGVyLnVuc3RhYmxlX3NldERpc2FibGVZaWVsZFZhbHVlLFxuICAgICAgcmVuZGVyZXJJRCA9IG51bGwsXG4gICAgICBpbmplY3RlZEhvb2sgPSBudWxsLFxuICAgICAgaGFzTG9nZ2VkRXJyb3IgPSAhMSxcbiAgICAgIGlzRGV2VG9vbHNQcmVzZW50ID0gXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyxcbiAgICAgIGNsejMyID0gTWF0aC5jbHozMiA/IE1hdGguY2x6MzIgOiBjbHozMkZhbGxiYWNrLFxuICAgICAgbG9nID0gTWF0aC5sb2csXG4gICAgICBMTjIgPSBNYXRoLkxOMixcbiAgICAgIG5leHRUcmFuc2l0aW9uVXBkYXRlTGFuZSA9IDI1NixcbiAgICAgIG5leHRUcmFuc2l0aW9uRGVmZXJyZWRMYW5lID0gMjYyMTQ0LFxuICAgICAgbmV4dFJldHJ5TGFuZSA9IDQxOTQzMDQsXG4gICAgICBEaXNjcmV0ZUV2ZW50UHJpb3JpdHkgPSAyLFxuICAgICAgQ29udGludW91c0V2ZW50UHJpb3JpdHkgPSA4LFxuICAgICAgRGVmYXVsdEV2ZW50UHJpb3JpdHkgPSAzMixcbiAgICAgIElkbGVFdmVudFByaW9yaXR5ID0gMjY4NDM1NDU2LFxuICAgICAgcmFuZG9tS2V5ID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiksXG4gICAgICBpbnRlcm5hbEluc3RhbmNlS2V5ID0gXCJfX3JlYWN0RmliZXIkXCIgKyByYW5kb21LZXksXG4gICAgICBpbnRlcm5hbFByb3BzS2V5ID0gXCJfX3JlYWN0UHJvcHMkXCIgKyByYW5kb21LZXksXG4gICAgICBpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5ID0gXCJfX3JlYWN0Q29udGFpbmVyJFwiICsgcmFuZG9tS2V5LFxuICAgICAgaW50ZXJuYWxFdmVudEhhbmRsZXJzS2V5ID0gXCJfX3JlYWN0RXZlbnRzJFwiICsgcmFuZG9tS2V5LFxuICAgICAgaW50ZXJuYWxFdmVudEhhbmRsZXJMaXN0ZW5lcnNLZXkgPSBcIl9fcmVhY3RMaXN0ZW5lcnMkXCIgKyByYW5kb21LZXksXG4gICAgICBpbnRlcm5hbEV2ZW50SGFuZGxlc1NldEtleSA9IFwiX19yZWFjdEhhbmRsZXMkXCIgKyByYW5kb21LZXksXG4gICAgICBpbnRlcm5hbFJvb3ROb2RlUmVzb3VyY2VzS2V5ID0gXCJfX3JlYWN0UmVzb3VyY2VzJFwiICsgcmFuZG9tS2V5LFxuICAgICAgaW50ZXJuYWxIb2lzdGFibGVNYXJrZXIgPSBcIl9fcmVhY3RNYXJrZXIkXCIgKyByYW5kb21LZXksXG4gICAgICBhbGxOYXRpdmVFdmVudHMgPSBuZXcgU2V0KCksXG4gICAgICByZWdpc3RyYXRpb25OYW1lRGVwZW5kZW5jaWVzID0ge30sXG4gICAgICBwb3NzaWJsZVJlZ2lzdHJhdGlvbk5hbWVzID0ge30sXG4gICAgICBoYXNSZWFkT25seVZhbHVlID0ge1xuICAgICAgICBidXR0b246ICEwLFxuICAgICAgICBjaGVja2JveDogITAsXG4gICAgICAgIGltYWdlOiAhMCxcbiAgICAgICAgaGlkZGVuOiAhMCxcbiAgICAgICAgcmFkaW86ICEwLFxuICAgICAgICByZXNldDogITAsXG4gICAgICAgIHN1Ym1pdDogITBcbiAgICAgIH0sXG4gICAgICBWQUxJRF9BVFRSSUJVVEVfTkFNRV9SRUdFWCA9IFJlZ0V4cChcbiAgICAgICAgXCJeWzpBLVpfYS16XFxcXHUwMEMwLVxcXFx1MDBENlxcXFx1MDBEOC1cXFxcdTAwRjZcXFxcdTAwRjgtXFxcXHUwMkZGXFxcXHUwMzcwLVxcXFx1MDM3RFxcXFx1MDM3Ri1cXFxcdTFGRkZcXFxcdTIwMEMtXFxcXHUyMDBEXFxcXHUyMDcwLVxcXFx1MjE4RlxcXFx1MkMwMC1cXFxcdTJGRUZcXFxcdTMwMDEtXFxcXHVEN0ZGXFxcXHVGOTAwLVxcXFx1RkRDRlxcXFx1RkRGMC1cXFxcdUZGRkRdWzpBLVpfYS16XFxcXHUwMEMwLVxcXFx1MDBENlxcXFx1MDBEOC1cXFxcdTAwRjZcXFxcdTAwRjgtXFxcXHUwMkZGXFxcXHUwMzcwLVxcXFx1MDM3RFxcXFx1MDM3Ri1cXFxcdTFGRkZcXFxcdTIwMEMtXFxcXHUyMDBEXFxcXHUyMDcwLVxcXFx1MjE4RlxcXFx1MkMwMC1cXFxcdTJGRUZcXFxcdTMwMDEtXFxcXHVEN0ZGXFxcXHVGOTAwLVxcXFx1RkRDRlxcXFx1RkRGMC1cXFxcdUZGRkRcXFxcLS4wLTlcXFxcdTAwQjdcXFxcdTAzMDAtXFxcXHUwMzZGXFxcXHUyMDNGLVxcXFx1MjA0MF0qJFwiXG4gICAgICApLFxuICAgICAgaWxsZWdhbEF0dHJpYnV0ZU5hbWVDYWNoZSA9IHt9LFxuICAgICAgdmFsaWRhdGVkQXR0cmlidXRlTmFtZUNhY2hlID0ge30sXG4gICAgICBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzUmVnZXggPSAvW1xcblwiXFxcXF0vZyxcbiAgICAgIGRpZFdhcm5WYWx1ZURlZmF1bHRWYWx1ZSQxID0gITEsXG4gICAgICBkaWRXYXJuQ2hlY2tlZERlZmF1bHRDaGVja2VkID0gITEsXG4gICAgICBkaWRXYXJuU2VsZWN0ZWRTZXRPbk9wdGlvbiA9ICExLFxuICAgICAgZGlkV2FybkludmFsaWRDaGlsZCA9ICExLFxuICAgICAgZGlkV2FybkludmFsaWRJbm5lckhUTUwgPSAhMTtcbiAgICB2YXIgZGlkV2FyblZhbHVlRGVmYXVsdFZhbHVlID0gITE7XG4gICAgdmFyIHZhbHVlUHJvcE5hbWVzID0gW1widmFsdWVcIiwgXCJkZWZhdWx0VmFsdWVcIl0sXG4gICAgICBkaWRXYXJuVmFsRGVmYXVsdFZhbCA9ICExLFxuICAgICAgbmVlZHNFc2NhcGluZyA9IC9bXCInJjw+XFxuXFx0XXxeXFxzfFxccyQvLFxuICAgICAgc3BlY2lhbFRhZ3MgPVxuICAgICAgICBcImFkZHJlc3MgYXBwbGV0IGFyZWEgYXJ0aWNsZSBhc2lkZSBiYXNlIGJhc2Vmb250IGJnc291bmQgYmxvY2txdW90ZSBib2R5IGJyIGJ1dHRvbiBjYXB0aW9uIGNlbnRlciBjb2wgY29sZ3JvdXAgZGQgZGV0YWlscyBkaXIgZGl2IGRsIGR0IGVtYmVkIGZpZWxkc2V0IGZpZ2NhcHRpb24gZmlndXJlIGZvb3RlciBmb3JtIGZyYW1lIGZyYW1lc2V0IGgxIGgyIGgzIGg0IGg1IGg2IGhlYWQgaGVhZGVyIGhncm91cCBociBodG1sIGlmcmFtZSBpbWcgaW5wdXQgaXNpbmRleCBsaSBsaW5rIGxpc3RpbmcgbWFpbiBtYXJxdWVlIG1lbnUgbWVudWl0ZW0gbWV0YSBuYXYgbm9lbWJlZCBub2ZyYW1lcyBub3NjcmlwdCBvYmplY3Qgb2wgcCBwYXJhbSBwbGFpbnRleHQgcHJlIHNjcmlwdCBzZWN0aW9uIHNlbGVjdCBzb3VyY2Ugc3R5bGUgc3VtbWFyeSB0YWJsZSB0Ym9keSB0ZCB0ZW1wbGF0ZSB0ZXh0YXJlYSB0Zm9vdCB0aCB0aGVhZCB0aXRsZSB0ciB0cmFjayB1bCB3YnIgeG1wXCIuc3BsaXQoXG4gICAgICAgICAgXCIgXCJcbiAgICAgICAgKSxcbiAgICAgIGluU2NvcGVUYWdzID1cbiAgICAgICAgXCJhcHBsZXQgY2FwdGlvbiBodG1sIHRhYmxlIHRkIHRoIG1hcnF1ZWUgb2JqZWN0IHRlbXBsYXRlIGZvcmVpZ25PYmplY3QgZGVzYyB0aXRsZVwiLnNwbGl0KFxuICAgICAgICAgIFwiIFwiXG4gICAgICAgICksXG4gICAgICBidXR0b25TY29wZVRhZ3MgPSBpblNjb3BlVGFncy5jb25jYXQoW1wiYnV0dG9uXCJdKSxcbiAgICAgIGltcGxpZWRFbmRUYWdzID0gXCJkZCBkdCBsaSBvcHRpb24gb3B0Z3JvdXAgcCBycCBydFwiLnNwbGl0KFwiIFwiKSxcbiAgICAgIGVtcHR5QW5jZXN0b3JJbmZvRGV2ID0ge1xuICAgICAgICBjdXJyZW50OiBudWxsLFxuICAgICAgICBmb3JtVGFnOiBudWxsLFxuICAgICAgICBhVGFnSW5TY29wZTogbnVsbCxcbiAgICAgICAgYnV0dG9uVGFnSW5TY29wZTogbnVsbCxcbiAgICAgICAgbm9iclRhZ0luU2NvcGU6IG51bGwsXG4gICAgICAgIHBUYWdJbkJ1dHRvblNjb3BlOiBudWxsLFxuICAgICAgICBsaXN0SXRlbVRhZ0F1dG9jbG9zaW5nOiBudWxsLFxuICAgICAgICBkbEl0ZW1UYWdBdXRvY2xvc2luZzogbnVsbCxcbiAgICAgICAgY29udGFpbmVyVGFnSW5TY29wZTogbnVsbCxcbiAgICAgICAgaW1wbGljaXRSb290U2NvcGU6ICExXG4gICAgICB9LFxuICAgICAgZGlkV2FybiA9IHt9LFxuICAgICAgc2hvcnRoYW5kVG9Mb25naGFuZCA9IHtcbiAgICAgICAgYW5pbWF0aW9uOlxuICAgICAgICAgIFwiYW5pbWF0aW9uRGVsYXkgYW5pbWF0aW9uRGlyZWN0aW9uIGFuaW1hdGlvbkR1cmF0aW9uIGFuaW1hdGlvbkZpbGxNb2RlIGFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IGFuaW1hdGlvbk5hbWUgYW5pbWF0aW9uUGxheVN0YXRlIGFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uXCIuc3BsaXQoXG4gICAgICAgICAgICBcIiBcIlxuICAgICAgICAgICksXG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgXCJiYWNrZ3JvdW5kQXR0YWNobWVudCBiYWNrZ3JvdW5kQ2xpcCBiYWNrZ3JvdW5kQ29sb3IgYmFja2dyb3VuZEltYWdlIGJhY2tncm91bmRPcmlnaW4gYmFja2dyb3VuZFBvc2l0aW9uWCBiYWNrZ3JvdW5kUG9zaXRpb25ZIGJhY2tncm91bmRSZXBlYXQgYmFja2dyb3VuZFNpemVcIi5zcGxpdChcbiAgICAgICAgICAgIFwiIFwiXG4gICAgICAgICAgKSxcbiAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiBbXCJiYWNrZ3JvdW5kUG9zaXRpb25YXCIsIFwiYmFja2dyb3VuZFBvc2l0aW9uWVwiXSxcbiAgICAgICAgYm9yZGVyOlxuICAgICAgICAgIFwiYm9yZGVyQm90dG9tQ29sb3IgYm9yZGVyQm90dG9tU3R5bGUgYm9yZGVyQm90dG9tV2lkdGggYm9yZGVySW1hZ2VPdXRzZXQgYm9yZGVySW1hZ2VSZXBlYXQgYm9yZGVySW1hZ2VTbGljZSBib3JkZXJJbWFnZVNvdXJjZSBib3JkZXJJbWFnZVdpZHRoIGJvcmRlckxlZnRDb2xvciBib3JkZXJMZWZ0U3R5bGUgYm9yZGVyTGVmdFdpZHRoIGJvcmRlclJpZ2h0Q29sb3IgYm9yZGVyUmlnaHRTdHlsZSBib3JkZXJSaWdodFdpZHRoIGJvcmRlclRvcENvbG9yIGJvcmRlclRvcFN0eWxlIGJvcmRlclRvcFdpZHRoXCIuc3BsaXQoXG4gICAgICAgICAgICBcIiBcIlxuICAgICAgICAgICksXG4gICAgICAgIGJvcmRlckJsb2NrRW5kOiBbXG4gICAgICAgICAgXCJib3JkZXJCbG9ja0VuZENvbG9yXCIsXG4gICAgICAgICAgXCJib3JkZXJCbG9ja0VuZFN0eWxlXCIsXG4gICAgICAgICAgXCJib3JkZXJCbG9ja0VuZFdpZHRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgYm9yZGVyQmxvY2tTdGFydDogW1xuICAgICAgICAgIFwiYm9yZGVyQmxvY2tTdGFydENvbG9yXCIsXG4gICAgICAgICAgXCJib3JkZXJCbG9ja1N0YXJ0U3R5bGVcIixcbiAgICAgICAgICBcImJvcmRlckJsb2NrU3RhcnRXaWR0aFwiXG4gICAgICAgIF0sXG4gICAgICAgIGJvcmRlckJvdHRvbTogW1xuICAgICAgICAgIFwiYm9yZGVyQm90dG9tQ29sb3JcIixcbiAgICAgICAgICBcImJvcmRlckJvdHRvbVN0eWxlXCIsXG4gICAgICAgICAgXCJib3JkZXJCb3R0b21XaWR0aFwiXG4gICAgICAgIF0sXG4gICAgICAgIGJvcmRlckNvbG9yOiBbXG4gICAgICAgICAgXCJib3JkZXJCb3R0b21Db2xvclwiLFxuICAgICAgICAgIFwiYm9yZGVyTGVmdENvbG9yXCIsXG4gICAgICAgICAgXCJib3JkZXJSaWdodENvbG9yXCIsXG4gICAgICAgICAgXCJib3JkZXJUb3BDb2xvclwiXG4gICAgICAgIF0sXG4gICAgICAgIGJvcmRlckltYWdlOiBbXG4gICAgICAgICAgXCJib3JkZXJJbWFnZU91dHNldFwiLFxuICAgICAgICAgIFwiYm9yZGVySW1hZ2VSZXBlYXRcIixcbiAgICAgICAgICBcImJvcmRlckltYWdlU2xpY2VcIixcbiAgICAgICAgICBcImJvcmRlckltYWdlU291cmNlXCIsXG4gICAgICAgICAgXCJib3JkZXJJbWFnZVdpZHRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgYm9yZGVySW5saW5lRW5kOiBbXG4gICAgICAgICAgXCJib3JkZXJJbmxpbmVFbmRDb2xvclwiLFxuICAgICAgICAgIFwiYm9yZGVySW5saW5lRW5kU3R5bGVcIixcbiAgICAgICAgICBcImJvcmRlcklubGluZUVuZFdpZHRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgYm9yZGVySW5saW5lU3RhcnQ6IFtcbiAgICAgICAgICBcImJvcmRlcklubGluZVN0YXJ0Q29sb3JcIixcbiAgICAgICAgICBcImJvcmRlcklubGluZVN0YXJ0U3R5bGVcIixcbiAgICAgICAgICBcImJvcmRlcklubGluZVN0YXJ0V2lkdGhcIlxuICAgICAgICBdLFxuICAgICAgICBib3JkZXJMZWZ0OiBbXCJib3JkZXJMZWZ0Q29sb3JcIiwgXCJib3JkZXJMZWZ0U3R5bGVcIiwgXCJib3JkZXJMZWZ0V2lkdGhcIl0sXG4gICAgICAgIGJvcmRlclJhZGl1czogW1xuICAgICAgICAgIFwiYm9yZGVyQm90dG9tTGVmdFJhZGl1c1wiLFxuICAgICAgICAgIFwiYm9yZGVyQm90dG9tUmlnaHRSYWRpdXNcIixcbiAgICAgICAgICBcImJvcmRlclRvcExlZnRSYWRpdXNcIixcbiAgICAgICAgICBcImJvcmRlclRvcFJpZ2h0UmFkaXVzXCJcbiAgICAgICAgXSxcbiAgICAgICAgYm9yZGVyUmlnaHQ6IFtcbiAgICAgICAgICBcImJvcmRlclJpZ2h0Q29sb3JcIixcbiAgICAgICAgICBcImJvcmRlclJpZ2h0U3R5bGVcIixcbiAgICAgICAgICBcImJvcmRlclJpZ2h0V2lkdGhcIlxuICAgICAgICBdLFxuICAgICAgICBib3JkZXJTdHlsZTogW1xuICAgICAgICAgIFwiYm9yZGVyQm90dG9tU3R5bGVcIixcbiAgICAgICAgICBcImJvcmRlckxlZnRTdHlsZVwiLFxuICAgICAgICAgIFwiYm9yZGVyUmlnaHRTdHlsZVwiLFxuICAgICAgICAgIFwiYm9yZGVyVG9wU3R5bGVcIlxuICAgICAgICBdLFxuICAgICAgICBib3JkZXJUb3A6IFtcImJvcmRlclRvcENvbG9yXCIsIFwiYm9yZGVyVG9wU3R5bGVcIiwgXCJib3JkZXJUb3BXaWR0aFwiXSxcbiAgICAgICAgYm9yZGVyV2lkdGg6IFtcbiAgICAgICAgICBcImJvcmRlckJvdHRvbVdpZHRoXCIsXG4gICAgICAgICAgXCJib3JkZXJMZWZ0V2lkdGhcIixcbiAgICAgICAgICBcImJvcmRlclJpZ2h0V2lkdGhcIixcbiAgICAgICAgICBcImJvcmRlclRvcFdpZHRoXCJcbiAgICAgICAgXSxcbiAgICAgICAgY29sdW1uUnVsZTogW1wiY29sdW1uUnVsZUNvbG9yXCIsIFwiY29sdW1uUnVsZVN0eWxlXCIsIFwiY29sdW1uUnVsZVdpZHRoXCJdLFxuICAgICAgICBjb2x1bW5zOiBbXCJjb2x1bW5Db3VudFwiLCBcImNvbHVtbldpZHRoXCJdLFxuICAgICAgICBmbGV4OiBbXCJmbGV4QmFzaXNcIiwgXCJmbGV4R3Jvd1wiLCBcImZsZXhTaHJpbmtcIl0sXG4gICAgICAgIGZsZXhGbG93OiBbXCJmbGV4RGlyZWN0aW9uXCIsIFwiZmxleFdyYXBcIl0sXG4gICAgICAgIGZvbnQ6IFwiZm9udEZhbWlseSBmb250RmVhdHVyZVNldHRpbmdzIGZvbnRLZXJuaW5nIGZvbnRMYW5ndWFnZU92ZXJyaWRlIGZvbnRTaXplIGZvbnRTaXplQWRqdXN0IGZvbnRTdHJldGNoIGZvbnRTdHlsZSBmb250VmFyaWFudCBmb250VmFyaWFudEFsdGVybmF0ZXMgZm9udFZhcmlhbnRDYXBzIGZvbnRWYXJpYW50RWFzdEFzaWFuIGZvbnRWYXJpYW50TGlnYXR1cmVzIGZvbnRWYXJpYW50TnVtZXJpYyBmb250VmFyaWFudFBvc2l0aW9uIGZvbnRXZWlnaHQgbGluZUhlaWdodFwiLnNwbGl0KFxuICAgICAgICAgIFwiIFwiXG4gICAgICAgICksXG4gICAgICAgIGZvbnRWYXJpYW50OlxuICAgICAgICAgIFwiZm9udFZhcmlhbnRBbHRlcm5hdGVzIGZvbnRWYXJpYW50Q2FwcyBmb250VmFyaWFudEVhc3RBc2lhbiBmb250VmFyaWFudExpZ2F0dXJlcyBmb250VmFyaWFudE51bWVyaWMgZm9udFZhcmlhbnRQb3NpdGlvblwiLnNwbGl0KFxuICAgICAgICAgICAgXCIgXCJcbiAgICAgICAgICApLFxuICAgICAgICBnYXA6IFtcImNvbHVtbkdhcFwiLCBcInJvd0dhcFwiXSxcbiAgICAgICAgZ3JpZDogXCJncmlkQXV0b0NvbHVtbnMgZ3JpZEF1dG9GbG93IGdyaWRBdXRvUm93cyBncmlkVGVtcGxhdGVBcmVhcyBncmlkVGVtcGxhdGVDb2x1bW5zIGdyaWRUZW1wbGF0ZVJvd3NcIi5zcGxpdChcbiAgICAgICAgICBcIiBcIlxuICAgICAgICApLFxuICAgICAgICBncmlkQXJlYTogW1xuICAgICAgICAgIFwiZ3JpZENvbHVtbkVuZFwiLFxuICAgICAgICAgIFwiZ3JpZENvbHVtblN0YXJ0XCIsXG4gICAgICAgICAgXCJncmlkUm93RW5kXCIsXG4gICAgICAgICAgXCJncmlkUm93U3RhcnRcIlxuICAgICAgICBdLFxuICAgICAgICBncmlkQ29sdW1uOiBbXCJncmlkQ29sdW1uRW5kXCIsIFwiZ3JpZENvbHVtblN0YXJ0XCJdLFxuICAgICAgICBncmlkQ29sdW1uR2FwOiBbXCJjb2x1bW5HYXBcIl0sXG4gICAgICAgIGdyaWRHYXA6IFtcImNvbHVtbkdhcFwiLCBcInJvd0dhcFwiXSxcbiAgICAgICAgZ3JpZFJvdzogW1wiZ3JpZFJvd0VuZFwiLCBcImdyaWRSb3dTdGFydFwiXSxcbiAgICAgICAgZ3JpZFJvd0dhcDogW1wicm93R2FwXCJdLFxuICAgICAgICBncmlkVGVtcGxhdGU6IFtcbiAgICAgICAgICBcImdyaWRUZW1wbGF0ZUFyZWFzXCIsXG4gICAgICAgICAgXCJncmlkVGVtcGxhdGVDb2x1bW5zXCIsXG4gICAgICAgICAgXCJncmlkVGVtcGxhdGVSb3dzXCJcbiAgICAgICAgXSxcbiAgICAgICAgbGlzdFN0eWxlOiBbXCJsaXN0U3R5bGVJbWFnZVwiLCBcImxpc3RTdHlsZVBvc2l0aW9uXCIsIFwibGlzdFN0eWxlVHlwZVwiXSxcbiAgICAgICAgbWFyZ2luOiBbXCJtYXJnaW5Cb3R0b21cIiwgXCJtYXJnaW5MZWZ0XCIsIFwibWFyZ2luUmlnaHRcIiwgXCJtYXJnaW5Ub3BcIl0sXG4gICAgICAgIG1hcmtlcjogW1wibWFya2VyRW5kXCIsIFwibWFya2VyTWlkXCIsIFwibWFya2VyU3RhcnRcIl0sXG4gICAgICAgIG1hc2s6IFwibWFza0NsaXAgbWFza0NvbXBvc2l0ZSBtYXNrSW1hZ2UgbWFza01vZGUgbWFza09yaWdpbiBtYXNrUG9zaXRpb25YIG1hc2tQb3NpdGlvblkgbWFza1JlcGVhdCBtYXNrU2l6ZVwiLnNwbGl0KFxuICAgICAgICAgIFwiIFwiXG4gICAgICAgICksXG4gICAgICAgIG1hc2tQb3NpdGlvbjogW1wibWFza1Bvc2l0aW9uWFwiLCBcIm1hc2tQb3NpdGlvbllcIl0sXG4gICAgICAgIG91dGxpbmU6IFtcIm91dGxpbmVDb2xvclwiLCBcIm91dGxpbmVTdHlsZVwiLCBcIm91dGxpbmVXaWR0aFwiXSxcbiAgICAgICAgb3ZlcmZsb3c6IFtcIm92ZXJmbG93WFwiLCBcIm92ZXJmbG93WVwiXSxcbiAgICAgICAgcGFkZGluZzogW1wicGFkZGluZ0JvdHRvbVwiLCBcInBhZGRpbmdMZWZ0XCIsIFwicGFkZGluZ1JpZ2h0XCIsIFwicGFkZGluZ1RvcFwiXSxcbiAgICAgICAgcGxhY2VDb250ZW50OiBbXCJhbGlnbkNvbnRlbnRcIiwgXCJqdXN0aWZ5Q29udGVudFwiXSxcbiAgICAgICAgcGxhY2VJdGVtczogW1wiYWxpZ25JdGVtc1wiLCBcImp1c3RpZnlJdGVtc1wiXSxcbiAgICAgICAgcGxhY2VTZWxmOiBbXCJhbGlnblNlbGZcIiwgXCJqdXN0aWZ5U2VsZlwiXSxcbiAgICAgICAgdGV4dERlY29yYXRpb246IFtcbiAgICAgICAgICBcInRleHREZWNvcmF0aW9uQ29sb3JcIixcbiAgICAgICAgICBcInRleHREZWNvcmF0aW9uTGluZVwiLFxuICAgICAgICAgIFwidGV4dERlY29yYXRpb25TdHlsZVwiXG4gICAgICAgIF0sXG4gICAgICAgIHRleHRFbXBoYXNpczogW1widGV4dEVtcGhhc2lzQ29sb3JcIiwgXCJ0ZXh0RW1waGFzaXNTdHlsZVwiXSxcbiAgICAgICAgdHJhbnNpdGlvbjogW1xuICAgICAgICAgIFwidHJhbnNpdGlvbkRlbGF5XCIsXG4gICAgICAgICAgXCJ0cmFuc2l0aW9uRHVyYXRpb25cIixcbiAgICAgICAgICBcInRyYW5zaXRpb25Qcm9wZXJ0eVwiLFxuICAgICAgICAgIFwidHJhbnNpdGlvblRpbWluZ0Z1bmN0aW9uXCJcbiAgICAgICAgXSxcbiAgICAgICAgd29yZFdyYXA6IFtcIm92ZXJmbG93V3JhcFwiXVxuICAgICAgfSxcbiAgICAgIHVwcGVyY2FzZVBhdHRlcm4gPSAvKFtBLVpdKS9nLFxuICAgICAgbXNQYXR0ZXJuJDEgPSAvXm1zLS8sXG4gICAgICBiYWRWZW5kb3JlZFN0eWxlTmFtZVBhdHRlcm4gPSAvXig/OndlYmtpdHxtb3p8bylbQS1aXS8sXG4gICAgICBtc1BhdHRlcm4gPSAvXi1tcy0vLFxuICAgICAgaHlwaGVuUGF0dGVybiA9IC8tKC4pL2csXG4gICAgICBiYWRTdHlsZVZhbHVlV2l0aFNlbWljb2xvblBhdHRlcm4gPSAvO1xccyokLyxcbiAgICAgIHdhcm5lZFN0eWxlTmFtZXMgPSB7fSxcbiAgICAgIHdhcm5lZFN0eWxlVmFsdWVzID0ge30sXG4gICAgICB3YXJuZWRGb3JOYU5WYWx1ZSA9ICExLFxuICAgICAgd2FybmVkRm9ySW5maW5pdHlWYWx1ZSA9ICExLFxuICAgICAgdW5pdGxlc3NOdW1iZXJzID0gbmV3IFNldChcbiAgICAgICAgXCJhbmltYXRpb25JdGVyYXRpb25Db3VudCBhc3BlY3RSYXRpbyBib3JkZXJJbWFnZU91dHNldCBib3JkZXJJbWFnZVNsaWNlIGJvcmRlckltYWdlV2lkdGggYm94RmxleCBib3hGbGV4R3JvdXAgYm94T3JkaW5hbEdyb3VwIGNvbHVtbkNvdW50IGNvbHVtbnMgZmxleCBmbGV4R3JvdyBmbGV4UG9zaXRpdmUgZmxleFNocmluayBmbGV4TmVnYXRpdmUgZmxleE9yZGVyIGdyaWRBcmVhIGdyaWRSb3cgZ3JpZFJvd0VuZCBncmlkUm93U3BhbiBncmlkUm93U3RhcnQgZ3JpZENvbHVtbiBncmlkQ29sdW1uRW5kIGdyaWRDb2x1bW5TcGFuIGdyaWRDb2x1bW5TdGFydCBmb250V2VpZ2h0IGxpbmVDbGFtcCBsaW5lSGVpZ2h0IG9wYWNpdHkgb3JkZXIgb3JwaGFucyBzY2FsZSB0YWJTaXplIHdpZG93cyB6SW5kZXggem9vbSBmaWxsT3BhY2l0eSBmbG9vZE9wYWNpdHkgc3RvcE9wYWNpdHkgc3Ryb2tlRGFzaGFycmF5IHN0cm9rZURhc2hvZmZzZXQgc3Ryb2tlTWl0ZXJsaW1pdCBzdHJva2VPcGFjaXR5IHN0cm9rZVdpZHRoIE1vekFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IE1vekJveEZsZXggTW96Qm94RmxleEdyb3VwIE1vekxpbmVDbGFtcCBtc0FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IG1zRmxleCBtc1pvb20gbXNGbGV4R3JvdyBtc0ZsZXhOZWdhdGl2ZSBtc0ZsZXhPcmRlciBtc0ZsZXhQb3NpdGl2ZSBtc0ZsZXhTaHJpbmsgbXNHcmlkQ29sdW1uIG1zR3JpZENvbHVtblNwYW4gbXNHcmlkUm93IG1zR3JpZFJvd1NwYW4gV2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uQ291bnQgV2Via2l0Qm94RmxleCBXZWJLaXRCb3hGbGV4R3JvdXAgV2Via2l0Qm94T3JkaW5hbEdyb3VwIFdlYmtpdENvbHVtbkNvdW50IFdlYmtpdENvbHVtbnMgV2Via2l0RmxleCBXZWJraXRGbGV4R3JvdyBXZWJraXRGbGV4UG9zaXRpdmUgV2Via2l0RmxleFNocmluayBXZWJraXRMaW5lQ2xhbXBcIi5zcGxpdChcbiAgICAgICAgICBcIiBcIlxuICAgICAgICApXG4gICAgICApLFxuICAgICAgTUFUSF9OQU1FU1BBQ0UgPSBcImh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUxcIixcbiAgICAgIFNWR19OQU1FU1BBQ0UgPSBcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXG4gICAgICBhbGlhc2VzID0gbmV3IE1hcChbXG4gICAgICAgIFtcImFjY2VwdENoYXJzZXRcIiwgXCJhY2NlcHQtY2hhcnNldFwiXSxcbiAgICAgICAgW1wiaHRtbEZvclwiLCBcImZvclwiXSxcbiAgICAgICAgW1wiaHR0cEVxdWl2XCIsIFwiaHR0cC1lcXVpdlwiXSxcbiAgICAgICAgW1wiY3Jvc3NPcmlnaW5cIiwgXCJjcm9zc29yaWdpblwiXSxcbiAgICAgICAgW1wiYWNjZW50SGVpZ2h0XCIsIFwiYWNjZW50LWhlaWdodFwiXSxcbiAgICAgICAgW1wiYWxpZ25tZW50QmFzZWxpbmVcIiwgXCJhbGlnbm1lbnQtYmFzZWxpbmVcIl0sXG4gICAgICAgIFtcImFyYWJpY0Zvcm1cIiwgXCJhcmFiaWMtZm9ybVwiXSxcbiAgICAgICAgW1wiYmFzZWxpbmVTaGlmdFwiLCBcImJhc2VsaW5lLXNoaWZ0XCJdLFxuICAgICAgICBbXCJjYXBIZWlnaHRcIiwgXCJjYXAtaGVpZ2h0XCJdLFxuICAgICAgICBbXCJjbGlwUGF0aFwiLCBcImNsaXAtcGF0aFwiXSxcbiAgICAgICAgW1wiY2xpcFJ1bGVcIiwgXCJjbGlwLXJ1bGVcIl0sXG4gICAgICAgIFtcImNvbG9ySW50ZXJwb2xhdGlvblwiLCBcImNvbG9yLWludGVycG9sYXRpb25cIl0sXG4gICAgICAgIFtcImNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnNcIiwgXCJjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnNcIl0sXG4gICAgICAgIFtcImNvbG9yUHJvZmlsZVwiLCBcImNvbG9yLXByb2ZpbGVcIl0sXG4gICAgICAgIFtcImNvbG9yUmVuZGVyaW5nXCIsIFwiY29sb3ItcmVuZGVyaW5nXCJdLFxuICAgICAgICBbXCJkb21pbmFudEJhc2VsaW5lXCIsIFwiZG9taW5hbnQtYmFzZWxpbmVcIl0sXG4gICAgICAgIFtcImVuYWJsZUJhY2tncm91bmRcIiwgXCJlbmFibGUtYmFja2dyb3VuZFwiXSxcbiAgICAgICAgW1wiZmlsbE9wYWNpdHlcIiwgXCJmaWxsLW9wYWNpdHlcIl0sXG4gICAgICAgIFtcImZpbGxSdWxlXCIsIFwiZmlsbC1ydWxlXCJdLFxuICAgICAgICBbXCJmbG9vZENvbG9yXCIsIFwiZmxvb2QtY29sb3JcIl0sXG4gICAgICAgIFtcImZsb29kT3BhY2l0eVwiLCBcImZsb29kLW9wYWNpdHlcIl0sXG4gICAgICAgIFtcImZvbnRGYW1pbHlcIiwgXCJmb250LWZhbWlseVwiXSxcbiAgICAgICAgW1wiZm9udFNpemVcIiwgXCJmb250LXNpemVcIl0sXG4gICAgICAgIFtcImZvbnRTaXplQWRqdXN0XCIsIFwiZm9udC1zaXplLWFkanVzdFwiXSxcbiAgICAgICAgW1wiZm9udFN0cmV0Y2hcIiwgXCJmb250LXN0cmV0Y2hcIl0sXG4gICAgICAgIFtcImZvbnRTdHlsZVwiLCBcImZvbnQtc3R5bGVcIl0sXG4gICAgICAgIFtcImZvbnRWYXJpYW50XCIsIFwiZm9udC12YXJpYW50XCJdLFxuICAgICAgICBbXCJmb250V2VpZ2h0XCIsIFwiZm9udC13ZWlnaHRcIl0sXG4gICAgICAgIFtcImdseXBoTmFtZVwiLCBcImdseXBoLW5hbWVcIl0sXG4gICAgICAgIFtcImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsXCIsIFwiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbFwiXSxcbiAgICAgICAgW1wiZ2x5cGhPcmllbnRhdGlvblZlcnRpY2FsXCIsIFwiZ2x5cGgtb3JpZW50YXRpb24tdmVydGljYWxcIl0sXG4gICAgICAgIFtcImhvcml6QWR2WFwiLCBcImhvcml6LWFkdi14XCJdLFxuICAgICAgICBbXCJob3Jpek9yaWdpblhcIiwgXCJob3Jpei1vcmlnaW4teFwiXSxcbiAgICAgICAgW1wiaW1hZ2VSZW5kZXJpbmdcIiwgXCJpbWFnZS1yZW5kZXJpbmdcIl0sXG4gICAgICAgIFtcImxldHRlclNwYWNpbmdcIiwgXCJsZXR0ZXItc3BhY2luZ1wiXSxcbiAgICAgICAgW1wibGlnaHRpbmdDb2xvclwiLCBcImxpZ2h0aW5nLWNvbG9yXCJdLFxuICAgICAgICBbXCJtYXJrZXJFbmRcIiwgXCJtYXJrZXItZW5kXCJdLFxuICAgICAgICBbXCJtYXJrZXJNaWRcIiwgXCJtYXJrZXItbWlkXCJdLFxuICAgICAgICBbXCJtYXJrZXJTdGFydFwiLCBcIm1hcmtlci1zdGFydFwiXSxcbiAgICAgICAgW1wib3ZlcmxpbmVQb3NpdGlvblwiLCBcIm92ZXJsaW5lLXBvc2l0aW9uXCJdLFxuICAgICAgICBbXCJvdmVybGluZVRoaWNrbmVzc1wiLCBcIm92ZXJsaW5lLXRoaWNrbmVzc1wiXSxcbiAgICAgICAgW1wicGFpbnRPcmRlclwiLCBcInBhaW50LW9yZGVyXCJdLFxuICAgICAgICBbXCJwYW5vc2UtMVwiLCBcInBhbm9zZS0xXCJdLFxuICAgICAgICBbXCJwb2ludGVyRXZlbnRzXCIsIFwicG9pbnRlci1ldmVudHNcIl0sXG4gICAgICAgIFtcInJlbmRlcmluZ0ludGVudFwiLCBcInJlbmRlcmluZy1pbnRlbnRcIl0sXG4gICAgICAgIFtcInNoYXBlUmVuZGVyaW5nXCIsIFwic2hhcGUtcmVuZGVyaW5nXCJdLFxuICAgICAgICBbXCJzdG9wQ29sb3JcIiwgXCJzdG9wLWNvbG9yXCJdLFxuICAgICAgICBbXCJzdG9wT3BhY2l0eVwiLCBcInN0b3Atb3BhY2l0eVwiXSxcbiAgICAgICAgW1wic3RyaWtldGhyb3VnaFBvc2l0aW9uXCIsIFwic3RyaWtldGhyb3VnaC1wb3NpdGlvblwiXSxcbiAgICAgICAgW1wic3RyaWtldGhyb3VnaFRoaWNrbmVzc1wiLCBcInN0cmlrZXRocm91Z2gtdGhpY2tuZXNzXCJdLFxuICAgICAgICBbXCJzdHJva2VEYXNoYXJyYXlcIiwgXCJzdHJva2UtZGFzaGFycmF5XCJdLFxuICAgICAgICBbXCJzdHJva2VEYXNob2Zmc2V0XCIsIFwic3Ryb2tlLWRhc2hvZmZzZXRcIl0sXG4gICAgICAgIFtcInN0cm9rZUxpbmVjYXBcIiwgXCJzdHJva2UtbGluZWNhcFwiXSxcbiAgICAgICAgW1wic3Ryb2tlTGluZWpvaW5cIiwgXCJzdHJva2UtbGluZWpvaW5cIl0sXG4gICAgICAgIFtcInN0cm9rZU1pdGVybGltaXRcIiwgXCJzdHJva2UtbWl0ZXJsaW1pdFwiXSxcbiAgICAgICAgW1wic3Ryb2tlT3BhY2l0eVwiLCBcInN0cm9rZS1vcGFjaXR5XCJdLFxuICAgICAgICBbXCJzdHJva2VXaWR0aFwiLCBcInN0cm9rZS13aWR0aFwiXSxcbiAgICAgICAgW1widGV4dEFuY2hvclwiLCBcInRleHQtYW5jaG9yXCJdLFxuICAgICAgICBbXCJ0ZXh0RGVjb3JhdGlvblwiLCBcInRleHQtZGVjb3JhdGlvblwiXSxcbiAgICAgICAgW1widGV4dFJlbmRlcmluZ1wiLCBcInRleHQtcmVuZGVyaW5nXCJdLFxuICAgICAgICBbXCJ0cmFuc2Zvcm1PcmlnaW5cIiwgXCJ0cmFuc2Zvcm0tb3JpZ2luXCJdLFxuICAgICAgICBbXCJ1bmRlcmxpbmVQb3NpdGlvblwiLCBcInVuZGVybGluZS1wb3NpdGlvblwiXSxcbiAgICAgICAgW1widW5kZXJsaW5lVGhpY2tuZXNzXCIsIFwidW5kZXJsaW5lLXRoaWNrbmVzc1wiXSxcbiAgICAgICAgW1widW5pY29kZUJpZGlcIiwgXCJ1bmljb2RlLWJpZGlcIl0sXG4gICAgICAgIFtcInVuaWNvZGVSYW5nZVwiLCBcInVuaWNvZGUtcmFuZ2VcIl0sXG4gICAgICAgIFtcInVuaXRzUGVyRW1cIiwgXCJ1bml0cy1wZXItZW1cIl0sXG4gICAgICAgIFtcInZBbHBoYWJldGljXCIsIFwidi1hbHBoYWJldGljXCJdLFxuICAgICAgICBbXCJ2SGFuZ2luZ1wiLCBcInYtaGFuZ2luZ1wiXSxcbiAgICAgICAgW1widklkZW9ncmFwaGljXCIsIFwidi1pZGVvZ3JhcGhpY1wiXSxcbiAgICAgICAgW1widk1hdGhlbWF0aWNhbFwiLCBcInYtbWF0aGVtYXRpY2FsXCJdLFxuICAgICAgICBbXCJ2ZWN0b3JFZmZlY3RcIiwgXCJ2ZWN0b3ItZWZmZWN0XCJdLFxuICAgICAgICBbXCJ2ZXJ0QWR2WVwiLCBcInZlcnQtYWR2LXlcIl0sXG4gICAgICAgIFtcInZlcnRPcmlnaW5YXCIsIFwidmVydC1vcmlnaW4teFwiXSxcbiAgICAgICAgW1widmVydE9yaWdpbllcIiwgXCJ2ZXJ0LW9yaWdpbi15XCJdLFxuICAgICAgICBbXCJ3b3JkU3BhY2luZ1wiLCBcIndvcmQtc3BhY2luZ1wiXSxcbiAgICAgICAgW1wid3JpdGluZ01vZGVcIiwgXCJ3cml0aW5nLW1vZGVcIl0sXG4gICAgICAgIFtcInhtbG5zWGxpbmtcIiwgXCJ4bWxuczp4bGlua1wiXSxcbiAgICAgICAgW1wieEhlaWdodFwiLCBcIngtaGVpZ2h0XCJdXG4gICAgICBdKSxcbiAgICAgIHBvc3NpYmxlU3RhbmRhcmROYW1lcyA9IHtcbiAgICAgICAgYWNjZXB0OiBcImFjY2VwdFwiLFxuICAgICAgICBhY2NlcHRjaGFyc2V0OiBcImFjY2VwdENoYXJzZXRcIixcbiAgICAgICAgXCJhY2NlcHQtY2hhcnNldFwiOiBcImFjY2VwdENoYXJzZXRcIixcbiAgICAgICAgYWNjZXNza2V5OiBcImFjY2Vzc0tleVwiLFxuICAgICAgICBhY3Rpb246IFwiYWN0aW9uXCIsXG4gICAgICAgIGFsbG93ZnVsbHNjcmVlbjogXCJhbGxvd0Z1bGxTY3JlZW5cIixcbiAgICAgICAgYWx0OiBcImFsdFwiLFxuICAgICAgICBhczogXCJhc1wiLFxuICAgICAgICBhc3luYzogXCJhc3luY1wiLFxuICAgICAgICBhdXRvY2FwaXRhbGl6ZTogXCJhdXRvQ2FwaXRhbGl6ZVwiLFxuICAgICAgICBhdXRvY29tcGxldGU6IFwiYXV0b0NvbXBsZXRlXCIsXG4gICAgICAgIGF1dG9jb3JyZWN0OiBcImF1dG9Db3JyZWN0XCIsXG4gICAgICAgIGF1dG9mb2N1czogXCJhdXRvRm9jdXNcIixcbiAgICAgICAgYXV0b3BsYXk6IFwiYXV0b1BsYXlcIixcbiAgICAgICAgYXV0b3NhdmU6IFwiYXV0b1NhdmVcIixcbiAgICAgICAgY2FwdHVyZTogXCJjYXB0dXJlXCIsXG4gICAgICAgIGNlbGxwYWRkaW5nOiBcImNlbGxQYWRkaW5nXCIsXG4gICAgICAgIGNlbGxzcGFjaW5nOiBcImNlbGxTcGFjaW5nXCIsXG4gICAgICAgIGNoYWxsZW5nZTogXCJjaGFsbGVuZ2VcIixcbiAgICAgICAgY2hhcnNldDogXCJjaGFyU2V0XCIsXG4gICAgICAgIGNoZWNrZWQ6IFwiY2hlY2tlZFwiLFxuICAgICAgICBjaGlsZHJlbjogXCJjaGlsZHJlblwiLFxuICAgICAgICBjaXRlOiBcImNpdGVcIixcbiAgICAgICAgY2xhc3M6IFwiY2xhc3NOYW1lXCIsXG4gICAgICAgIGNsYXNzaWQ6IFwiY2xhc3NJRFwiLFxuICAgICAgICBjbGFzc25hbWU6IFwiY2xhc3NOYW1lXCIsXG4gICAgICAgIGNvbHM6IFwiY29sc1wiLFxuICAgICAgICBjb2xzcGFuOiBcImNvbFNwYW5cIixcbiAgICAgICAgY29udGVudDogXCJjb250ZW50XCIsXG4gICAgICAgIGNvbnRlbnRlZGl0YWJsZTogXCJjb250ZW50RWRpdGFibGVcIixcbiAgICAgICAgY29udGV4dG1lbnU6IFwiY29udGV4dE1lbnVcIixcbiAgICAgICAgY29udHJvbHM6IFwiY29udHJvbHNcIixcbiAgICAgICAgY29udHJvbHNsaXN0OiBcImNvbnRyb2xzTGlzdFwiLFxuICAgICAgICBjb29yZHM6IFwiY29vcmRzXCIsXG4gICAgICAgIGNyb3Nzb3JpZ2luOiBcImNyb3NzT3JpZ2luXCIsXG4gICAgICAgIGRhbmdlcm91c2x5c2V0aW5uZXJodG1sOiBcImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MXCIsXG4gICAgICAgIGRhdGE6IFwiZGF0YVwiLFxuICAgICAgICBkYXRldGltZTogXCJkYXRlVGltZVwiLFxuICAgICAgICBkZWZhdWx0OiBcImRlZmF1bHRcIixcbiAgICAgICAgZGVmYXVsdGNoZWNrZWQ6IFwiZGVmYXVsdENoZWNrZWRcIixcbiAgICAgICAgZGVmYXVsdHZhbHVlOiBcImRlZmF1bHRWYWx1ZVwiLFxuICAgICAgICBkZWZlcjogXCJkZWZlclwiLFxuICAgICAgICBkaXI6IFwiZGlyXCIsXG4gICAgICAgIGRpc2FibGVkOiBcImRpc2FibGVkXCIsXG4gICAgICAgIGRpc2FibGVwaWN0dXJlaW5waWN0dXJlOiBcImRpc2FibGVQaWN0dXJlSW5QaWN0dXJlXCIsXG4gICAgICAgIGRpc2FibGVyZW1vdGVwbGF5YmFjazogXCJkaXNhYmxlUmVtb3RlUGxheWJhY2tcIixcbiAgICAgICAgZG93bmxvYWQ6IFwiZG93bmxvYWRcIixcbiAgICAgICAgZHJhZ2dhYmxlOiBcImRyYWdnYWJsZVwiLFxuICAgICAgICBlbmN0eXBlOiBcImVuY1R5cGVcIixcbiAgICAgICAgZW50ZXJrZXloaW50OiBcImVudGVyS2V5SGludFwiLFxuICAgICAgICBmZXRjaHByaW9yaXR5OiBcImZldGNoUHJpb3JpdHlcIixcbiAgICAgICAgZm9yOiBcImh0bWxGb3JcIixcbiAgICAgICAgZm9ybTogXCJmb3JtXCIsXG4gICAgICAgIGZvcm1tZXRob2Q6IFwiZm9ybU1ldGhvZFwiLFxuICAgICAgICBmb3JtYWN0aW9uOiBcImZvcm1BY3Rpb25cIixcbiAgICAgICAgZm9ybWVuY3R5cGU6IFwiZm9ybUVuY1R5cGVcIixcbiAgICAgICAgZm9ybW5vdmFsaWRhdGU6IFwiZm9ybU5vVmFsaWRhdGVcIixcbiAgICAgICAgZm9ybXRhcmdldDogXCJmb3JtVGFyZ2V0XCIsXG4gICAgICAgIGZyYW1lYm9yZGVyOiBcImZyYW1lQm9yZGVyXCIsXG4gICAgICAgIGhlYWRlcnM6IFwiaGVhZGVyc1wiLFxuICAgICAgICBoZWlnaHQ6IFwiaGVpZ2h0XCIsXG4gICAgICAgIGhpZGRlbjogXCJoaWRkZW5cIixcbiAgICAgICAgaGlnaDogXCJoaWdoXCIsXG4gICAgICAgIGhyZWY6IFwiaHJlZlwiLFxuICAgICAgICBocmVmbGFuZzogXCJocmVmTGFuZ1wiLFxuICAgICAgICBodG1sZm9yOiBcImh0bWxGb3JcIixcbiAgICAgICAgaHR0cGVxdWl2OiBcImh0dHBFcXVpdlwiLFxuICAgICAgICBcImh0dHAtZXF1aXZcIjogXCJodHRwRXF1aXZcIixcbiAgICAgICAgaWNvbjogXCJpY29uXCIsXG4gICAgICAgIGlkOiBcImlkXCIsXG4gICAgICAgIGltYWdlc2l6ZXM6IFwiaW1hZ2VTaXplc1wiLFxuICAgICAgICBpbWFnZXNyY3NldDogXCJpbWFnZVNyY1NldFwiLFxuICAgICAgICBpbmVydDogXCJpbmVydFwiLFxuICAgICAgICBpbm5lcmh0bWw6IFwiaW5uZXJIVE1MXCIsXG4gICAgICAgIGlucHV0bW9kZTogXCJpbnB1dE1vZGVcIixcbiAgICAgICAgaW50ZWdyaXR5OiBcImludGVncml0eVwiLFxuICAgICAgICBpczogXCJpc1wiLFxuICAgICAgICBpdGVtaWQ6IFwiaXRlbUlEXCIsXG4gICAgICAgIGl0ZW1wcm9wOiBcIml0ZW1Qcm9wXCIsXG4gICAgICAgIGl0ZW1yZWY6IFwiaXRlbVJlZlwiLFxuICAgICAgICBpdGVtc2NvcGU6IFwiaXRlbVNjb3BlXCIsXG4gICAgICAgIGl0ZW10eXBlOiBcIml0ZW1UeXBlXCIsXG4gICAgICAgIGtleXBhcmFtczogXCJrZXlQYXJhbXNcIixcbiAgICAgICAga2V5dHlwZTogXCJrZXlUeXBlXCIsXG4gICAgICAgIGtpbmQ6IFwia2luZFwiLFxuICAgICAgICBsYWJlbDogXCJsYWJlbFwiLFxuICAgICAgICBsYW5nOiBcImxhbmdcIixcbiAgICAgICAgbGlzdDogXCJsaXN0XCIsXG4gICAgICAgIGxvb3A6IFwibG9vcFwiLFxuICAgICAgICBsb3c6IFwibG93XCIsXG4gICAgICAgIG1hbmlmZXN0OiBcIm1hbmlmZXN0XCIsXG4gICAgICAgIG1hcmdpbndpZHRoOiBcIm1hcmdpbldpZHRoXCIsXG4gICAgICAgIG1hcmdpbmhlaWdodDogXCJtYXJnaW5IZWlnaHRcIixcbiAgICAgICAgbWF4OiBcIm1heFwiLFxuICAgICAgICBtYXhsZW5ndGg6IFwibWF4TGVuZ3RoXCIsXG4gICAgICAgIG1lZGlhOiBcIm1lZGlhXCIsXG4gICAgICAgIG1lZGlhZ3JvdXA6IFwibWVkaWFHcm91cFwiLFxuICAgICAgICBtZXRob2Q6IFwibWV0aG9kXCIsXG4gICAgICAgIG1pbjogXCJtaW5cIixcbiAgICAgICAgbWlubGVuZ3RoOiBcIm1pbkxlbmd0aFwiLFxuICAgICAgICBtdWx0aXBsZTogXCJtdWx0aXBsZVwiLFxuICAgICAgICBtdXRlZDogXCJtdXRlZFwiLFxuICAgICAgICBuYW1lOiBcIm5hbWVcIixcbiAgICAgICAgbm9tb2R1bGU6IFwibm9Nb2R1bGVcIixcbiAgICAgICAgbm9uY2U6IFwibm9uY2VcIixcbiAgICAgICAgbm92YWxpZGF0ZTogXCJub1ZhbGlkYXRlXCIsXG4gICAgICAgIG9wZW46IFwib3BlblwiLFxuICAgICAgICBvcHRpbXVtOiBcIm9wdGltdW1cIixcbiAgICAgICAgcGF0dGVybjogXCJwYXR0ZXJuXCIsXG4gICAgICAgIHBsYWNlaG9sZGVyOiBcInBsYWNlaG9sZGVyXCIsXG4gICAgICAgIHBsYXlzaW5saW5lOiBcInBsYXlzSW5saW5lXCIsXG4gICAgICAgIHBvc3RlcjogXCJwb3N0ZXJcIixcbiAgICAgICAgcHJlbG9hZDogXCJwcmVsb2FkXCIsXG4gICAgICAgIHByb2ZpbGU6IFwicHJvZmlsZVwiLFxuICAgICAgICByYWRpb2dyb3VwOiBcInJhZGlvR3JvdXBcIixcbiAgICAgICAgcmVhZG9ubHk6IFwicmVhZE9ubHlcIixcbiAgICAgICAgcmVmZXJyZXJwb2xpY3k6IFwicmVmZXJyZXJQb2xpY3lcIixcbiAgICAgICAgcmVsOiBcInJlbFwiLFxuICAgICAgICByZXF1aXJlZDogXCJyZXF1aXJlZFwiLFxuICAgICAgICByZXZlcnNlZDogXCJyZXZlcnNlZFwiLFxuICAgICAgICByb2xlOiBcInJvbGVcIixcbiAgICAgICAgcm93czogXCJyb3dzXCIsXG4gICAgICAgIHJvd3NwYW46IFwicm93U3BhblwiLFxuICAgICAgICBzYW5kYm94OiBcInNhbmRib3hcIixcbiAgICAgICAgc2NvcGU6IFwic2NvcGVcIixcbiAgICAgICAgc2NvcGVkOiBcInNjb3BlZFwiLFxuICAgICAgICBzY3JvbGxpbmc6IFwic2Nyb2xsaW5nXCIsXG4gICAgICAgIHNlYW1sZXNzOiBcInNlYW1sZXNzXCIsXG4gICAgICAgIHNlbGVjdGVkOiBcInNlbGVjdGVkXCIsXG4gICAgICAgIHNoYXBlOiBcInNoYXBlXCIsXG4gICAgICAgIHNpemU6IFwic2l6ZVwiLFxuICAgICAgICBzaXplczogXCJzaXplc1wiLFxuICAgICAgICBzcGFuOiBcInNwYW5cIixcbiAgICAgICAgc3BlbGxjaGVjazogXCJzcGVsbENoZWNrXCIsXG4gICAgICAgIHNyYzogXCJzcmNcIixcbiAgICAgICAgc3JjZG9jOiBcInNyY0RvY1wiLFxuICAgICAgICBzcmNsYW5nOiBcInNyY0xhbmdcIixcbiAgICAgICAgc3Jjc2V0OiBcInNyY1NldFwiLFxuICAgICAgICBzdGFydDogXCJzdGFydFwiLFxuICAgICAgICBzdGVwOiBcInN0ZXBcIixcbiAgICAgICAgc3R5bGU6IFwic3R5bGVcIixcbiAgICAgICAgc3VtbWFyeTogXCJzdW1tYXJ5XCIsXG4gICAgICAgIHRhYmluZGV4OiBcInRhYkluZGV4XCIsXG4gICAgICAgIHRhcmdldDogXCJ0YXJnZXRcIixcbiAgICAgICAgdGl0bGU6IFwidGl0bGVcIixcbiAgICAgICAgdHlwZTogXCJ0eXBlXCIsXG4gICAgICAgIHVzZW1hcDogXCJ1c2VNYXBcIixcbiAgICAgICAgdmFsdWU6IFwidmFsdWVcIixcbiAgICAgICAgd2lkdGg6IFwid2lkdGhcIixcbiAgICAgICAgd21vZGU6IFwid21vZGVcIixcbiAgICAgICAgd3JhcDogXCJ3cmFwXCIsXG4gICAgICAgIGFib3V0OiBcImFib3V0XCIsXG4gICAgICAgIGFjY2VudGhlaWdodDogXCJhY2NlbnRIZWlnaHRcIixcbiAgICAgICAgXCJhY2NlbnQtaGVpZ2h0XCI6IFwiYWNjZW50SGVpZ2h0XCIsXG4gICAgICAgIGFjY3VtdWxhdGU6IFwiYWNjdW11bGF0ZVwiLFxuICAgICAgICBhZGRpdGl2ZTogXCJhZGRpdGl2ZVwiLFxuICAgICAgICBhbGlnbm1lbnRiYXNlbGluZTogXCJhbGlnbm1lbnRCYXNlbGluZVwiLFxuICAgICAgICBcImFsaWdubWVudC1iYXNlbGluZVwiOiBcImFsaWdubWVudEJhc2VsaW5lXCIsXG4gICAgICAgIGFsbG93cmVvcmRlcjogXCJhbGxvd1Jlb3JkZXJcIixcbiAgICAgICAgYWxwaGFiZXRpYzogXCJhbHBoYWJldGljXCIsXG4gICAgICAgIGFtcGxpdHVkZTogXCJhbXBsaXR1ZGVcIixcbiAgICAgICAgYXJhYmljZm9ybTogXCJhcmFiaWNGb3JtXCIsXG4gICAgICAgIFwiYXJhYmljLWZvcm1cIjogXCJhcmFiaWNGb3JtXCIsXG4gICAgICAgIGFzY2VudDogXCJhc2NlbnRcIixcbiAgICAgICAgYXR0cmlidXRlbmFtZTogXCJhdHRyaWJ1dGVOYW1lXCIsXG4gICAgICAgIGF0dHJpYnV0ZXR5cGU6IFwiYXR0cmlidXRlVHlwZVwiLFxuICAgICAgICBhdXRvcmV2ZXJzZTogXCJhdXRvUmV2ZXJzZVwiLFxuICAgICAgICBhemltdXRoOiBcImF6aW11dGhcIixcbiAgICAgICAgYmFzZWZyZXF1ZW5jeTogXCJiYXNlRnJlcXVlbmN5XCIsXG4gICAgICAgIGJhc2VsaW5lc2hpZnQ6IFwiYmFzZWxpbmVTaGlmdFwiLFxuICAgICAgICBcImJhc2VsaW5lLXNoaWZ0XCI6IFwiYmFzZWxpbmVTaGlmdFwiLFxuICAgICAgICBiYXNlcHJvZmlsZTogXCJiYXNlUHJvZmlsZVwiLFxuICAgICAgICBiYm94OiBcImJib3hcIixcbiAgICAgICAgYmVnaW46IFwiYmVnaW5cIixcbiAgICAgICAgYmlhczogXCJiaWFzXCIsXG4gICAgICAgIGJ5OiBcImJ5XCIsXG4gICAgICAgIGNhbGNtb2RlOiBcImNhbGNNb2RlXCIsXG4gICAgICAgIGNhcGhlaWdodDogXCJjYXBIZWlnaHRcIixcbiAgICAgICAgXCJjYXAtaGVpZ2h0XCI6IFwiY2FwSGVpZ2h0XCIsXG4gICAgICAgIGNsaXA6IFwiY2xpcFwiLFxuICAgICAgICBjbGlwcGF0aDogXCJjbGlwUGF0aFwiLFxuICAgICAgICBcImNsaXAtcGF0aFwiOiBcImNsaXBQYXRoXCIsXG4gICAgICAgIGNsaXBwYXRodW5pdHM6IFwiY2xpcFBhdGhVbml0c1wiLFxuICAgICAgICBjbGlwcnVsZTogXCJjbGlwUnVsZVwiLFxuICAgICAgICBcImNsaXAtcnVsZVwiOiBcImNsaXBSdWxlXCIsXG4gICAgICAgIGNvbG9yOiBcImNvbG9yXCIsXG4gICAgICAgIGNvbG9yaW50ZXJwb2xhdGlvbjogXCJjb2xvckludGVycG9sYXRpb25cIixcbiAgICAgICAgXCJjb2xvci1pbnRlcnBvbGF0aW9uXCI6IFwiY29sb3JJbnRlcnBvbGF0aW9uXCIsXG4gICAgICAgIGNvbG9yaW50ZXJwb2xhdGlvbmZpbHRlcnM6IFwiY29sb3JJbnRlcnBvbGF0aW9uRmlsdGVyc1wiLFxuICAgICAgICBcImNvbG9yLWludGVycG9sYXRpb24tZmlsdGVyc1wiOiBcImNvbG9ySW50ZXJwb2xhdGlvbkZpbHRlcnNcIixcbiAgICAgICAgY29sb3Jwcm9maWxlOiBcImNvbG9yUHJvZmlsZVwiLFxuICAgICAgICBcImNvbG9yLXByb2ZpbGVcIjogXCJjb2xvclByb2ZpbGVcIixcbiAgICAgICAgY29sb3JyZW5kZXJpbmc6IFwiY29sb3JSZW5kZXJpbmdcIixcbiAgICAgICAgXCJjb2xvci1yZW5kZXJpbmdcIjogXCJjb2xvclJlbmRlcmluZ1wiLFxuICAgICAgICBjb250ZW50c2NyaXB0dHlwZTogXCJjb250ZW50U2NyaXB0VHlwZVwiLFxuICAgICAgICBjb250ZW50c3R5bGV0eXBlOiBcImNvbnRlbnRTdHlsZVR5cGVcIixcbiAgICAgICAgY3Vyc29yOiBcImN1cnNvclwiLFxuICAgICAgICBjeDogXCJjeFwiLFxuICAgICAgICBjeTogXCJjeVwiLFxuICAgICAgICBkOiBcImRcIixcbiAgICAgICAgZGF0YXR5cGU6IFwiZGF0YXR5cGVcIixcbiAgICAgICAgZGVjZWxlcmF0ZTogXCJkZWNlbGVyYXRlXCIsXG4gICAgICAgIGRlc2NlbnQ6IFwiZGVzY2VudFwiLFxuICAgICAgICBkaWZmdXNlY29uc3RhbnQ6IFwiZGlmZnVzZUNvbnN0YW50XCIsXG4gICAgICAgIGRpcmVjdGlvbjogXCJkaXJlY3Rpb25cIixcbiAgICAgICAgZGlzcGxheTogXCJkaXNwbGF5XCIsXG4gICAgICAgIGRpdmlzb3I6IFwiZGl2aXNvclwiLFxuICAgICAgICBkb21pbmFudGJhc2VsaW5lOiBcImRvbWluYW50QmFzZWxpbmVcIixcbiAgICAgICAgXCJkb21pbmFudC1iYXNlbGluZVwiOiBcImRvbWluYW50QmFzZWxpbmVcIixcbiAgICAgICAgZHVyOiBcImR1clwiLFxuICAgICAgICBkeDogXCJkeFwiLFxuICAgICAgICBkeTogXCJkeVwiLFxuICAgICAgICBlZGdlbW9kZTogXCJlZGdlTW9kZVwiLFxuICAgICAgICBlbGV2YXRpb246IFwiZWxldmF0aW9uXCIsXG4gICAgICAgIGVuYWJsZWJhY2tncm91bmQ6IFwiZW5hYmxlQmFja2dyb3VuZFwiLFxuICAgICAgICBcImVuYWJsZS1iYWNrZ3JvdW5kXCI6IFwiZW5hYmxlQmFja2dyb3VuZFwiLFxuICAgICAgICBlbmQ6IFwiZW5kXCIsXG4gICAgICAgIGV4cG9uZW50OiBcImV4cG9uZW50XCIsXG4gICAgICAgIGV4dGVybmFscmVzb3VyY2VzcmVxdWlyZWQ6IFwiZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZFwiLFxuICAgICAgICBmaWxsOiBcImZpbGxcIixcbiAgICAgICAgZmlsbG9wYWNpdHk6IFwiZmlsbE9wYWNpdHlcIixcbiAgICAgICAgXCJmaWxsLW9wYWNpdHlcIjogXCJmaWxsT3BhY2l0eVwiLFxuICAgICAgICBmaWxscnVsZTogXCJmaWxsUnVsZVwiLFxuICAgICAgICBcImZpbGwtcnVsZVwiOiBcImZpbGxSdWxlXCIsXG4gICAgICAgIGZpbHRlcjogXCJmaWx0ZXJcIixcbiAgICAgICAgZmlsdGVycmVzOiBcImZpbHRlclJlc1wiLFxuICAgICAgICBmaWx0ZXJ1bml0czogXCJmaWx0ZXJVbml0c1wiLFxuICAgICAgICBmbG9vZG9wYWNpdHk6IFwiZmxvb2RPcGFjaXR5XCIsXG4gICAgICAgIFwiZmxvb2Qtb3BhY2l0eVwiOiBcImZsb29kT3BhY2l0eVwiLFxuICAgICAgICBmbG9vZGNvbG9yOiBcImZsb29kQ29sb3JcIixcbiAgICAgICAgXCJmbG9vZC1jb2xvclwiOiBcImZsb29kQ29sb3JcIixcbiAgICAgICAgZm9jdXNhYmxlOiBcImZvY3VzYWJsZVwiLFxuICAgICAgICBmb250ZmFtaWx5OiBcImZvbnRGYW1pbHlcIixcbiAgICAgICAgXCJmb250LWZhbWlseVwiOiBcImZvbnRGYW1pbHlcIixcbiAgICAgICAgZm9udHNpemU6IFwiZm9udFNpemVcIixcbiAgICAgICAgXCJmb250LXNpemVcIjogXCJmb250U2l6ZVwiLFxuICAgICAgICBmb250c2l6ZWFkanVzdDogXCJmb250U2l6ZUFkanVzdFwiLFxuICAgICAgICBcImZvbnQtc2l6ZS1hZGp1c3RcIjogXCJmb250U2l6ZUFkanVzdFwiLFxuICAgICAgICBmb250c3RyZXRjaDogXCJmb250U3RyZXRjaFwiLFxuICAgICAgICBcImZvbnQtc3RyZXRjaFwiOiBcImZvbnRTdHJldGNoXCIsXG4gICAgICAgIGZvbnRzdHlsZTogXCJmb250U3R5bGVcIixcbiAgICAgICAgXCJmb250LXN0eWxlXCI6IFwiZm9udFN0eWxlXCIsXG4gICAgICAgIGZvbnR2YXJpYW50OiBcImZvbnRWYXJpYW50XCIsXG4gICAgICAgIFwiZm9udC12YXJpYW50XCI6IFwiZm9udFZhcmlhbnRcIixcbiAgICAgICAgZm9udHdlaWdodDogXCJmb250V2VpZ2h0XCIsXG4gICAgICAgIFwiZm9udC13ZWlnaHRcIjogXCJmb250V2VpZ2h0XCIsXG4gICAgICAgIGZvcm1hdDogXCJmb3JtYXRcIixcbiAgICAgICAgZnJvbTogXCJmcm9tXCIsXG4gICAgICAgIGZ4OiBcImZ4XCIsXG4gICAgICAgIGZ5OiBcImZ5XCIsXG4gICAgICAgIGcxOiBcImcxXCIsXG4gICAgICAgIGcyOiBcImcyXCIsXG4gICAgICAgIGdseXBobmFtZTogXCJnbHlwaE5hbWVcIixcbiAgICAgICAgXCJnbHlwaC1uYW1lXCI6IFwiZ2x5cGhOYW1lXCIsXG4gICAgICAgIGdseXBob3JpZW50YXRpb25ob3Jpem9udGFsOiBcImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsXCIsXG4gICAgICAgIFwiZ2x5cGgtb3JpZW50YXRpb24taG9yaXpvbnRhbFwiOiBcImdseXBoT3JpZW50YXRpb25Ib3Jpem9udGFsXCIsXG4gICAgICAgIGdseXBob3JpZW50YXRpb252ZXJ0aWNhbDogXCJnbHlwaE9yaWVudGF0aW9uVmVydGljYWxcIixcbiAgICAgICAgXCJnbHlwaC1vcmllbnRhdGlvbi12ZXJ0aWNhbFwiOiBcImdseXBoT3JpZW50YXRpb25WZXJ0aWNhbFwiLFxuICAgICAgICBnbHlwaHJlZjogXCJnbHlwaFJlZlwiLFxuICAgICAgICBncmFkaWVudHRyYW5zZm9ybTogXCJncmFkaWVudFRyYW5zZm9ybVwiLFxuICAgICAgICBncmFkaWVudHVuaXRzOiBcImdyYWRpZW50VW5pdHNcIixcbiAgICAgICAgaGFuZ2luZzogXCJoYW5naW5nXCIsXG4gICAgICAgIGhvcml6YWR2eDogXCJob3JpekFkdlhcIixcbiAgICAgICAgXCJob3Jpei1hZHYteFwiOiBcImhvcml6QWR2WFwiLFxuICAgICAgICBob3Jpem9yaWdpbng6IFwiaG9yaXpPcmlnaW5YXCIsXG4gICAgICAgIFwiaG9yaXotb3JpZ2luLXhcIjogXCJob3Jpek9yaWdpblhcIixcbiAgICAgICAgaWRlb2dyYXBoaWM6IFwiaWRlb2dyYXBoaWNcIixcbiAgICAgICAgaW1hZ2VyZW5kZXJpbmc6IFwiaW1hZ2VSZW5kZXJpbmdcIixcbiAgICAgICAgXCJpbWFnZS1yZW5kZXJpbmdcIjogXCJpbWFnZVJlbmRlcmluZ1wiLFxuICAgICAgICBpbjI6IFwiaW4yXCIsXG4gICAgICAgIGluOiBcImluXCIsXG4gICAgICAgIGlubGlzdDogXCJpbmxpc3RcIixcbiAgICAgICAgaW50ZXJjZXB0OiBcImludGVyY2VwdFwiLFxuICAgICAgICBrMTogXCJrMVwiLFxuICAgICAgICBrMjogXCJrMlwiLFxuICAgICAgICBrMzogXCJrM1wiLFxuICAgICAgICBrNDogXCJrNFwiLFxuICAgICAgICBrOiBcImtcIixcbiAgICAgICAga2VybmVsbWF0cml4OiBcImtlcm5lbE1hdHJpeFwiLFxuICAgICAgICBrZXJuZWx1bml0bGVuZ3RoOiBcImtlcm5lbFVuaXRMZW5ndGhcIixcbiAgICAgICAga2VybmluZzogXCJrZXJuaW5nXCIsXG4gICAgICAgIGtleXBvaW50czogXCJrZXlQb2ludHNcIixcbiAgICAgICAga2V5c3BsaW5lczogXCJrZXlTcGxpbmVzXCIsXG4gICAgICAgIGtleXRpbWVzOiBcImtleVRpbWVzXCIsXG4gICAgICAgIGxlbmd0aGFkanVzdDogXCJsZW5ndGhBZGp1c3RcIixcbiAgICAgICAgbGV0dGVyc3BhY2luZzogXCJsZXR0ZXJTcGFjaW5nXCIsXG4gICAgICAgIFwibGV0dGVyLXNwYWNpbmdcIjogXCJsZXR0ZXJTcGFjaW5nXCIsXG4gICAgICAgIGxpZ2h0aW5nY29sb3I6IFwibGlnaHRpbmdDb2xvclwiLFxuICAgICAgICBcImxpZ2h0aW5nLWNvbG9yXCI6IFwibGlnaHRpbmdDb2xvclwiLFxuICAgICAgICBsaW1pdGluZ2NvbmVhbmdsZTogXCJsaW1pdGluZ0NvbmVBbmdsZVwiLFxuICAgICAgICBsb2NhbDogXCJsb2NhbFwiLFxuICAgICAgICBtYXJrZXJlbmQ6IFwibWFya2VyRW5kXCIsXG4gICAgICAgIFwibWFya2VyLWVuZFwiOiBcIm1hcmtlckVuZFwiLFxuICAgICAgICBtYXJrZXJoZWlnaHQ6IFwibWFya2VySGVpZ2h0XCIsXG4gICAgICAgIG1hcmtlcm1pZDogXCJtYXJrZXJNaWRcIixcbiAgICAgICAgXCJtYXJrZXItbWlkXCI6IFwibWFya2VyTWlkXCIsXG4gICAgICAgIG1hcmtlcnN0YXJ0OiBcIm1hcmtlclN0YXJ0XCIsXG4gICAgICAgIFwibWFya2VyLXN0YXJ0XCI6IFwibWFya2VyU3RhcnRcIixcbiAgICAgICAgbWFya2VydW5pdHM6IFwibWFya2VyVW5pdHNcIixcbiAgICAgICAgbWFya2Vyd2lkdGg6IFwibWFya2VyV2lkdGhcIixcbiAgICAgICAgbWFzazogXCJtYXNrXCIsXG4gICAgICAgIG1hc2tjb250ZW50dW5pdHM6IFwibWFza0NvbnRlbnRVbml0c1wiLFxuICAgICAgICBtYXNrdW5pdHM6IFwibWFza1VuaXRzXCIsXG4gICAgICAgIG1hdGhlbWF0aWNhbDogXCJtYXRoZW1hdGljYWxcIixcbiAgICAgICAgbW9kZTogXCJtb2RlXCIsXG4gICAgICAgIG51bW9jdGF2ZXM6IFwibnVtT2N0YXZlc1wiLFxuICAgICAgICBvZmZzZXQ6IFwib2Zmc2V0XCIsXG4gICAgICAgIG9wYWNpdHk6IFwib3BhY2l0eVwiLFxuICAgICAgICBvcGVyYXRvcjogXCJvcGVyYXRvclwiLFxuICAgICAgICBvcmRlcjogXCJvcmRlclwiLFxuICAgICAgICBvcmllbnQ6IFwib3JpZW50XCIsXG4gICAgICAgIG9yaWVudGF0aW9uOiBcIm9yaWVudGF0aW9uXCIsXG4gICAgICAgIG9yaWdpbjogXCJvcmlnaW5cIixcbiAgICAgICAgb3ZlcmZsb3c6IFwib3ZlcmZsb3dcIixcbiAgICAgICAgb3ZlcmxpbmVwb3NpdGlvbjogXCJvdmVybGluZVBvc2l0aW9uXCIsXG4gICAgICAgIFwib3ZlcmxpbmUtcG9zaXRpb25cIjogXCJvdmVybGluZVBvc2l0aW9uXCIsXG4gICAgICAgIG92ZXJsaW5ldGhpY2tuZXNzOiBcIm92ZXJsaW5lVGhpY2tuZXNzXCIsXG4gICAgICAgIFwib3ZlcmxpbmUtdGhpY2tuZXNzXCI6IFwib3ZlcmxpbmVUaGlja25lc3NcIixcbiAgICAgICAgcGFpbnRvcmRlcjogXCJwYWludE9yZGVyXCIsXG4gICAgICAgIFwicGFpbnQtb3JkZXJcIjogXCJwYWludE9yZGVyXCIsXG4gICAgICAgIHBhbm9zZTE6IFwicGFub3NlMVwiLFxuICAgICAgICBcInBhbm9zZS0xXCI6IFwicGFub3NlMVwiLFxuICAgICAgICBwYXRobGVuZ3RoOiBcInBhdGhMZW5ndGhcIixcbiAgICAgICAgcGF0dGVybmNvbnRlbnR1bml0czogXCJwYXR0ZXJuQ29udGVudFVuaXRzXCIsXG4gICAgICAgIHBhdHRlcm50cmFuc2Zvcm06IFwicGF0dGVyblRyYW5zZm9ybVwiLFxuICAgICAgICBwYXR0ZXJudW5pdHM6IFwicGF0dGVyblVuaXRzXCIsXG4gICAgICAgIHBvaW50ZXJldmVudHM6IFwicG9pbnRlckV2ZW50c1wiLFxuICAgICAgICBcInBvaW50ZXItZXZlbnRzXCI6IFwicG9pbnRlckV2ZW50c1wiLFxuICAgICAgICBwb2ludHM6IFwicG9pbnRzXCIsXG4gICAgICAgIHBvaW50c2F0eDogXCJwb2ludHNBdFhcIixcbiAgICAgICAgcG9pbnRzYXR5OiBcInBvaW50c0F0WVwiLFxuICAgICAgICBwb2ludHNhdHo6IFwicG9pbnRzQXRaXCIsXG4gICAgICAgIHBvcG92ZXI6IFwicG9wb3ZlclwiLFxuICAgICAgICBwb3BvdmVydGFyZ2V0OiBcInBvcG92ZXJUYXJnZXRcIixcbiAgICAgICAgcG9wb3ZlcnRhcmdldGFjdGlvbjogXCJwb3BvdmVyVGFyZ2V0QWN0aW9uXCIsXG4gICAgICAgIHByZWZpeDogXCJwcmVmaXhcIixcbiAgICAgICAgcHJlc2VydmVhbHBoYTogXCJwcmVzZXJ2ZUFscGhhXCIsXG4gICAgICAgIHByZXNlcnZlYXNwZWN0cmF0aW86IFwicHJlc2VydmVBc3BlY3RSYXRpb1wiLFxuICAgICAgICBwcmltaXRpdmV1bml0czogXCJwcmltaXRpdmVVbml0c1wiLFxuICAgICAgICBwcm9wZXJ0eTogXCJwcm9wZXJ0eVwiLFxuICAgICAgICByOiBcInJcIixcbiAgICAgICAgcmFkaXVzOiBcInJhZGl1c1wiLFxuICAgICAgICByZWZ4OiBcInJlZlhcIixcbiAgICAgICAgcmVmeTogXCJyZWZZXCIsXG4gICAgICAgIHJlbmRlcmluZ2ludGVudDogXCJyZW5kZXJpbmdJbnRlbnRcIixcbiAgICAgICAgXCJyZW5kZXJpbmctaW50ZW50XCI6IFwicmVuZGVyaW5nSW50ZW50XCIsXG4gICAgICAgIHJlcGVhdGNvdW50OiBcInJlcGVhdENvdW50XCIsXG4gICAgICAgIHJlcGVhdGR1cjogXCJyZXBlYXREdXJcIixcbiAgICAgICAgcmVxdWlyZWRleHRlbnNpb25zOiBcInJlcXVpcmVkRXh0ZW5zaW9uc1wiLFxuICAgICAgICByZXF1aXJlZGZlYXR1cmVzOiBcInJlcXVpcmVkRmVhdHVyZXNcIixcbiAgICAgICAgcmVzb3VyY2U6IFwicmVzb3VyY2VcIixcbiAgICAgICAgcmVzdGFydDogXCJyZXN0YXJ0XCIsXG4gICAgICAgIHJlc3VsdDogXCJyZXN1bHRcIixcbiAgICAgICAgcmVzdWx0czogXCJyZXN1bHRzXCIsXG4gICAgICAgIHJvdGF0ZTogXCJyb3RhdGVcIixcbiAgICAgICAgcng6IFwicnhcIixcbiAgICAgICAgcnk6IFwicnlcIixcbiAgICAgICAgc2NhbGU6IFwic2NhbGVcIixcbiAgICAgICAgc2VjdXJpdHk6IFwic2VjdXJpdHlcIixcbiAgICAgICAgc2VlZDogXCJzZWVkXCIsXG4gICAgICAgIHNoYXBlcmVuZGVyaW5nOiBcInNoYXBlUmVuZGVyaW5nXCIsXG4gICAgICAgIFwic2hhcGUtcmVuZGVyaW5nXCI6IFwic2hhcGVSZW5kZXJpbmdcIixcbiAgICAgICAgc2xvcGU6IFwic2xvcGVcIixcbiAgICAgICAgc3BhY2luZzogXCJzcGFjaW5nXCIsXG4gICAgICAgIHNwZWN1bGFyY29uc3RhbnQ6IFwic3BlY3VsYXJDb25zdGFudFwiLFxuICAgICAgICBzcGVjdWxhcmV4cG9uZW50OiBcInNwZWN1bGFyRXhwb25lbnRcIixcbiAgICAgICAgc3BlZWQ6IFwic3BlZWRcIixcbiAgICAgICAgc3ByZWFkbWV0aG9kOiBcInNwcmVhZE1ldGhvZFwiLFxuICAgICAgICBzdGFydG9mZnNldDogXCJzdGFydE9mZnNldFwiLFxuICAgICAgICBzdGRkZXZpYXRpb246IFwic3RkRGV2aWF0aW9uXCIsXG4gICAgICAgIHN0ZW1oOiBcInN0ZW1oXCIsXG4gICAgICAgIHN0ZW12OiBcInN0ZW12XCIsXG4gICAgICAgIHN0aXRjaHRpbGVzOiBcInN0aXRjaFRpbGVzXCIsXG4gICAgICAgIHN0b3Bjb2xvcjogXCJzdG9wQ29sb3JcIixcbiAgICAgICAgXCJzdG9wLWNvbG9yXCI6IFwic3RvcENvbG9yXCIsXG4gICAgICAgIHN0b3BvcGFjaXR5OiBcInN0b3BPcGFjaXR5XCIsXG4gICAgICAgIFwic3RvcC1vcGFjaXR5XCI6IFwic3RvcE9wYWNpdHlcIixcbiAgICAgICAgc3RyaWtldGhyb3VnaHBvc2l0aW9uOiBcInN0cmlrZXRocm91Z2hQb3NpdGlvblwiLFxuICAgICAgICBcInN0cmlrZXRocm91Z2gtcG9zaXRpb25cIjogXCJzdHJpa2V0aHJvdWdoUG9zaXRpb25cIixcbiAgICAgICAgc3RyaWtldGhyb3VnaHRoaWNrbmVzczogXCJzdHJpa2V0aHJvdWdoVGhpY2tuZXNzXCIsXG4gICAgICAgIFwic3RyaWtldGhyb3VnaC10aGlja25lc3NcIjogXCJzdHJpa2V0aHJvdWdoVGhpY2tuZXNzXCIsXG4gICAgICAgIHN0cmluZzogXCJzdHJpbmdcIixcbiAgICAgICAgc3Ryb2tlOiBcInN0cm9rZVwiLFxuICAgICAgICBzdHJva2VkYXNoYXJyYXk6IFwic3Ryb2tlRGFzaGFycmF5XCIsXG4gICAgICAgIFwic3Ryb2tlLWRhc2hhcnJheVwiOiBcInN0cm9rZURhc2hhcnJheVwiLFxuICAgICAgICBzdHJva2VkYXNob2Zmc2V0OiBcInN0cm9rZURhc2hvZmZzZXRcIixcbiAgICAgICAgXCJzdHJva2UtZGFzaG9mZnNldFwiOiBcInN0cm9rZURhc2hvZmZzZXRcIixcbiAgICAgICAgc3Ryb2tlbGluZWNhcDogXCJzdHJva2VMaW5lY2FwXCIsXG4gICAgICAgIFwic3Ryb2tlLWxpbmVjYXBcIjogXCJzdHJva2VMaW5lY2FwXCIsXG4gICAgICAgIHN0cm9rZWxpbmVqb2luOiBcInN0cm9rZUxpbmVqb2luXCIsXG4gICAgICAgIFwic3Ryb2tlLWxpbmVqb2luXCI6IFwic3Ryb2tlTGluZWpvaW5cIixcbiAgICAgICAgc3Ryb2tlbWl0ZXJsaW1pdDogXCJzdHJva2VNaXRlcmxpbWl0XCIsXG4gICAgICAgIFwic3Ryb2tlLW1pdGVybGltaXRcIjogXCJzdHJva2VNaXRlcmxpbWl0XCIsXG4gICAgICAgIHN0cm9rZXdpZHRoOiBcInN0cm9rZVdpZHRoXCIsXG4gICAgICAgIFwic3Ryb2tlLXdpZHRoXCI6IFwic3Ryb2tlV2lkdGhcIixcbiAgICAgICAgc3Ryb2tlb3BhY2l0eTogXCJzdHJva2VPcGFjaXR5XCIsXG4gICAgICAgIFwic3Ryb2tlLW9wYWNpdHlcIjogXCJzdHJva2VPcGFjaXR5XCIsXG4gICAgICAgIHN1cHByZXNzY29udGVudGVkaXRhYmxld2FybmluZzogXCJzdXBwcmVzc0NvbnRlbnRFZGl0YWJsZVdhcm5pbmdcIixcbiAgICAgICAgc3VwcHJlc3NoeWRyYXRpb253YXJuaW5nOiBcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiLFxuICAgICAgICBzdXJmYWNlc2NhbGU6IFwic3VyZmFjZVNjYWxlXCIsXG4gICAgICAgIHN5c3RlbWxhbmd1YWdlOiBcInN5c3RlbUxhbmd1YWdlXCIsXG4gICAgICAgIHRhYmxldmFsdWVzOiBcInRhYmxlVmFsdWVzXCIsXG4gICAgICAgIHRhcmdldHg6IFwidGFyZ2V0WFwiLFxuICAgICAgICB0YXJnZXR5OiBcInRhcmdldFlcIixcbiAgICAgICAgdGV4dGFuY2hvcjogXCJ0ZXh0QW5jaG9yXCIsXG4gICAgICAgIFwidGV4dC1hbmNob3JcIjogXCJ0ZXh0QW5jaG9yXCIsXG4gICAgICAgIHRleHRkZWNvcmF0aW9uOiBcInRleHREZWNvcmF0aW9uXCIsXG4gICAgICAgIFwidGV4dC1kZWNvcmF0aW9uXCI6IFwidGV4dERlY29yYXRpb25cIixcbiAgICAgICAgdGV4dGxlbmd0aDogXCJ0ZXh0TGVuZ3RoXCIsXG4gICAgICAgIHRleHRyZW5kZXJpbmc6IFwidGV4dFJlbmRlcmluZ1wiLFxuICAgICAgICBcInRleHQtcmVuZGVyaW5nXCI6IFwidGV4dFJlbmRlcmluZ1wiLFxuICAgICAgICB0bzogXCJ0b1wiLFxuICAgICAgICB0cmFuc2Zvcm06IFwidHJhbnNmb3JtXCIsXG4gICAgICAgIHRyYW5zZm9ybW9yaWdpbjogXCJ0cmFuc2Zvcm1PcmlnaW5cIixcbiAgICAgICAgXCJ0cmFuc2Zvcm0tb3JpZ2luXCI6IFwidHJhbnNmb3JtT3JpZ2luXCIsXG4gICAgICAgIHR5cGVvZjogXCJ0eXBlb2ZcIixcbiAgICAgICAgdTE6IFwidTFcIixcbiAgICAgICAgdTI6IFwidTJcIixcbiAgICAgICAgdW5kZXJsaW5lcG9zaXRpb246IFwidW5kZXJsaW5lUG9zaXRpb25cIixcbiAgICAgICAgXCJ1bmRlcmxpbmUtcG9zaXRpb25cIjogXCJ1bmRlcmxpbmVQb3NpdGlvblwiLFxuICAgICAgICB1bmRlcmxpbmV0aGlja25lc3M6IFwidW5kZXJsaW5lVGhpY2tuZXNzXCIsXG4gICAgICAgIFwidW5kZXJsaW5lLXRoaWNrbmVzc1wiOiBcInVuZGVybGluZVRoaWNrbmVzc1wiLFxuICAgICAgICB1bmljb2RlOiBcInVuaWNvZGVcIixcbiAgICAgICAgdW5pY29kZWJpZGk6IFwidW5pY29kZUJpZGlcIixcbiAgICAgICAgXCJ1bmljb2RlLWJpZGlcIjogXCJ1bmljb2RlQmlkaVwiLFxuICAgICAgICB1bmljb2RlcmFuZ2U6IFwidW5pY29kZVJhbmdlXCIsXG4gICAgICAgIFwidW5pY29kZS1yYW5nZVwiOiBcInVuaWNvZGVSYW5nZVwiLFxuICAgICAgICB1bml0c3BlcmVtOiBcInVuaXRzUGVyRW1cIixcbiAgICAgICAgXCJ1bml0cy1wZXItZW1cIjogXCJ1bml0c1BlckVtXCIsXG4gICAgICAgIHVuc2VsZWN0YWJsZTogXCJ1bnNlbGVjdGFibGVcIixcbiAgICAgICAgdmFscGhhYmV0aWM6IFwidkFscGhhYmV0aWNcIixcbiAgICAgICAgXCJ2LWFscGhhYmV0aWNcIjogXCJ2QWxwaGFiZXRpY1wiLFxuICAgICAgICB2YWx1ZXM6IFwidmFsdWVzXCIsXG4gICAgICAgIHZlY3RvcmVmZmVjdDogXCJ2ZWN0b3JFZmZlY3RcIixcbiAgICAgICAgXCJ2ZWN0b3ItZWZmZWN0XCI6IFwidmVjdG9yRWZmZWN0XCIsXG4gICAgICAgIHZlcnNpb246IFwidmVyc2lvblwiLFxuICAgICAgICB2ZXJ0YWR2eTogXCJ2ZXJ0QWR2WVwiLFxuICAgICAgICBcInZlcnQtYWR2LXlcIjogXCJ2ZXJ0QWR2WVwiLFxuICAgICAgICB2ZXJ0b3JpZ2lueDogXCJ2ZXJ0T3JpZ2luWFwiLFxuICAgICAgICBcInZlcnQtb3JpZ2luLXhcIjogXCJ2ZXJ0T3JpZ2luWFwiLFxuICAgICAgICB2ZXJ0b3JpZ2lueTogXCJ2ZXJ0T3JpZ2luWVwiLFxuICAgICAgICBcInZlcnQtb3JpZ2luLXlcIjogXCJ2ZXJ0T3JpZ2luWVwiLFxuICAgICAgICB2aGFuZ2luZzogXCJ2SGFuZ2luZ1wiLFxuICAgICAgICBcInYtaGFuZ2luZ1wiOiBcInZIYW5naW5nXCIsXG4gICAgICAgIHZpZGVvZ3JhcGhpYzogXCJ2SWRlb2dyYXBoaWNcIixcbiAgICAgICAgXCJ2LWlkZW9ncmFwaGljXCI6IFwidklkZW9ncmFwaGljXCIsXG4gICAgICAgIHZpZXdib3g6IFwidmlld0JveFwiLFxuICAgICAgICB2aWV3dGFyZ2V0OiBcInZpZXdUYXJnZXRcIixcbiAgICAgICAgdmlzaWJpbGl0eTogXCJ2aXNpYmlsaXR5XCIsXG4gICAgICAgIHZtYXRoZW1hdGljYWw6IFwidk1hdGhlbWF0aWNhbFwiLFxuICAgICAgICBcInYtbWF0aGVtYXRpY2FsXCI6IFwidk1hdGhlbWF0aWNhbFwiLFxuICAgICAgICB2b2NhYjogXCJ2b2NhYlwiLFxuICAgICAgICB3aWR0aHM6IFwid2lkdGhzXCIsXG4gICAgICAgIHdvcmRzcGFjaW5nOiBcIndvcmRTcGFjaW5nXCIsXG4gICAgICAgIFwid29yZC1zcGFjaW5nXCI6IFwid29yZFNwYWNpbmdcIixcbiAgICAgICAgd3JpdGluZ21vZGU6IFwid3JpdGluZ01vZGVcIixcbiAgICAgICAgXCJ3cml0aW5nLW1vZGVcIjogXCJ3cml0aW5nTW9kZVwiLFxuICAgICAgICB4MTogXCJ4MVwiLFxuICAgICAgICB4MjogXCJ4MlwiLFxuICAgICAgICB4OiBcInhcIixcbiAgICAgICAgeGNoYW5uZWxzZWxlY3RvcjogXCJ4Q2hhbm5lbFNlbGVjdG9yXCIsXG4gICAgICAgIHhoZWlnaHQ6IFwieEhlaWdodFwiLFxuICAgICAgICBcIngtaGVpZ2h0XCI6IFwieEhlaWdodFwiLFxuICAgICAgICB4bGlua2FjdHVhdGU6IFwieGxpbmtBY3R1YXRlXCIsXG4gICAgICAgIFwieGxpbms6YWN0dWF0ZVwiOiBcInhsaW5rQWN0dWF0ZVwiLFxuICAgICAgICB4bGlua2FyY3JvbGU6IFwieGxpbmtBcmNyb2xlXCIsXG4gICAgICAgIFwieGxpbms6YXJjcm9sZVwiOiBcInhsaW5rQXJjcm9sZVwiLFxuICAgICAgICB4bGlua2hyZWY6IFwieGxpbmtIcmVmXCIsXG4gICAgICAgIFwieGxpbms6aHJlZlwiOiBcInhsaW5rSHJlZlwiLFxuICAgICAgICB4bGlua3JvbGU6IFwieGxpbmtSb2xlXCIsXG4gICAgICAgIFwieGxpbms6cm9sZVwiOiBcInhsaW5rUm9sZVwiLFxuICAgICAgICB4bGlua3Nob3c6IFwieGxpbmtTaG93XCIsXG4gICAgICAgIFwieGxpbms6c2hvd1wiOiBcInhsaW5rU2hvd1wiLFxuICAgICAgICB4bGlua3RpdGxlOiBcInhsaW5rVGl0bGVcIixcbiAgICAgICAgXCJ4bGluazp0aXRsZVwiOiBcInhsaW5rVGl0bGVcIixcbiAgICAgICAgeGxpbmt0eXBlOiBcInhsaW5rVHlwZVwiLFxuICAgICAgICBcInhsaW5rOnR5cGVcIjogXCJ4bGlua1R5cGVcIixcbiAgICAgICAgeG1sYmFzZTogXCJ4bWxCYXNlXCIsXG4gICAgICAgIFwieG1sOmJhc2VcIjogXCJ4bWxCYXNlXCIsXG4gICAgICAgIHhtbGxhbmc6IFwieG1sTGFuZ1wiLFxuICAgICAgICBcInhtbDpsYW5nXCI6IFwieG1sTGFuZ1wiLFxuICAgICAgICB4bWxuczogXCJ4bWxuc1wiLFxuICAgICAgICBcInhtbDpzcGFjZVwiOiBcInhtbFNwYWNlXCIsXG4gICAgICAgIHhtbG5zeGxpbms6IFwieG1sbnNYbGlua1wiLFxuICAgICAgICBcInhtbG5zOnhsaW5rXCI6IFwieG1sbnNYbGlua1wiLFxuICAgICAgICB4bWxzcGFjZTogXCJ4bWxTcGFjZVwiLFxuICAgICAgICB5MTogXCJ5MVwiLFxuICAgICAgICB5MjogXCJ5MlwiLFxuICAgICAgICB5OiBcInlcIixcbiAgICAgICAgeWNoYW5uZWxzZWxlY3RvcjogXCJ5Q2hhbm5lbFNlbGVjdG9yXCIsXG4gICAgICAgIHo6IFwielwiLFxuICAgICAgICB6b29tYW5kcGFuOiBcInpvb21BbmRQYW5cIlxuICAgICAgfSxcbiAgICAgIGFyaWFQcm9wZXJ0aWVzID0ge1xuICAgICAgICBcImFyaWEtY3VycmVudFwiOiAwLFxuICAgICAgICBcImFyaWEtZGVzY3JpcHRpb25cIjogMCxcbiAgICAgICAgXCJhcmlhLWRldGFpbHNcIjogMCxcbiAgICAgICAgXCJhcmlhLWRpc2FibGVkXCI6IDAsXG4gICAgICAgIFwiYXJpYS1oaWRkZW5cIjogMCxcbiAgICAgICAgXCJhcmlhLWludmFsaWRcIjogMCxcbiAgICAgICAgXCJhcmlhLWtleXNob3J0Y3V0c1wiOiAwLFxuICAgICAgICBcImFyaWEtbGFiZWxcIjogMCxcbiAgICAgICAgXCJhcmlhLXJvbGVkZXNjcmlwdGlvblwiOiAwLFxuICAgICAgICBcImFyaWEtYXV0b2NvbXBsZXRlXCI6IDAsXG4gICAgICAgIFwiYXJpYS1jaGVja2VkXCI6IDAsXG4gICAgICAgIFwiYXJpYS1leHBhbmRlZFwiOiAwLFxuICAgICAgICBcImFyaWEtaGFzcG9wdXBcIjogMCxcbiAgICAgICAgXCJhcmlhLWxldmVsXCI6IDAsXG4gICAgICAgIFwiYXJpYS1tb2RhbFwiOiAwLFxuICAgICAgICBcImFyaWEtbXVsdGlsaW5lXCI6IDAsXG4gICAgICAgIFwiYXJpYS1tdWx0aXNlbGVjdGFibGVcIjogMCxcbiAgICAgICAgXCJhcmlhLW9yaWVudGF0aW9uXCI6IDAsXG4gICAgICAgIFwiYXJpYS1wbGFjZWhvbGRlclwiOiAwLFxuICAgICAgICBcImFyaWEtcHJlc3NlZFwiOiAwLFxuICAgICAgICBcImFyaWEtcmVhZG9ubHlcIjogMCxcbiAgICAgICAgXCJhcmlhLXJlcXVpcmVkXCI6IDAsXG4gICAgICAgIFwiYXJpYS1zZWxlY3RlZFwiOiAwLFxuICAgICAgICBcImFyaWEtc29ydFwiOiAwLFxuICAgICAgICBcImFyaWEtdmFsdWVtYXhcIjogMCxcbiAgICAgICAgXCJhcmlhLXZhbHVlbWluXCI6IDAsXG4gICAgICAgIFwiYXJpYS12YWx1ZW5vd1wiOiAwLFxuICAgICAgICBcImFyaWEtdmFsdWV0ZXh0XCI6IDAsXG4gICAgICAgIFwiYXJpYS1hdG9taWNcIjogMCxcbiAgICAgICAgXCJhcmlhLWJ1c3lcIjogMCxcbiAgICAgICAgXCJhcmlhLWxpdmVcIjogMCxcbiAgICAgICAgXCJhcmlhLXJlbGV2YW50XCI6IDAsXG4gICAgICAgIFwiYXJpYS1kcm9wZWZmZWN0XCI6IDAsXG4gICAgICAgIFwiYXJpYS1ncmFiYmVkXCI6IDAsXG4gICAgICAgIFwiYXJpYS1hY3RpdmVkZXNjZW5kYW50XCI6IDAsXG4gICAgICAgIFwiYXJpYS1jb2xjb3VudFwiOiAwLFxuICAgICAgICBcImFyaWEtY29saW5kZXhcIjogMCxcbiAgICAgICAgXCJhcmlhLWNvbHNwYW5cIjogMCxcbiAgICAgICAgXCJhcmlhLWNvbnRyb2xzXCI6IDAsXG4gICAgICAgIFwiYXJpYS1kZXNjcmliZWRieVwiOiAwLFxuICAgICAgICBcImFyaWEtZXJyb3JtZXNzYWdlXCI6IDAsXG4gICAgICAgIFwiYXJpYS1mbG93dG9cIjogMCxcbiAgICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogMCxcbiAgICAgICAgXCJhcmlhLW93bnNcIjogMCxcbiAgICAgICAgXCJhcmlhLXBvc2luc2V0XCI6IDAsXG4gICAgICAgIFwiYXJpYS1yb3djb3VudFwiOiAwLFxuICAgICAgICBcImFyaWEtcm93aW5kZXhcIjogMCxcbiAgICAgICAgXCJhcmlhLXJvd3NwYW5cIjogMCxcbiAgICAgICAgXCJhcmlhLXNldHNpemVcIjogMCxcbiAgICAgICAgXCJhcmlhLWJyYWlsbGVsYWJlbFwiOiAwLFxuICAgICAgICBcImFyaWEtYnJhaWxsZXJvbGVkZXNjcmlwdGlvblwiOiAwLFxuICAgICAgICBcImFyaWEtY29saW5kZXh0ZXh0XCI6IDAsXG4gICAgICAgIFwiYXJpYS1yb3dpbmRleHRleHRcIjogMFxuICAgICAgfSxcbiAgICAgIHdhcm5lZFByb3BlcnRpZXMkMSA9IHt9LFxuICAgICAgckFSSUEkMSA9IFJlZ0V4cChcbiAgICAgICAgXCJeKGFyaWEpLVs6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXFxcXC0uMC05XFxcXHUwMEI3XFxcXHUwMzAwLVxcXFx1MDM2RlxcXFx1MjAzRi1cXFxcdTIwNDBdKiRcIlxuICAgICAgKSxcbiAgICAgIHJBUklBQ2FtZWwkMSA9IFJlZ0V4cChcbiAgICAgICAgXCJeKGFyaWEpW0EtWl1bOkEtWl9hLXpcXFxcdTAwQzAtXFxcXHUwMEQ2XFxcXHUwMEQ4LVxcXFx1MDBGNlxcXFx1MDBGOC1cXFxcdTAyRkZcXFxcdTAzNzAtXFxcXHUwMzdEXFxcXHUwMzdGLVxcXFx1MUZGRlxcXFx1MjAwQy1cXFxcdTIwMERcXFxcdTIwNzAtXFxcXHUyMThGXFxcXHUyQzAwLVxcXFx1MkZFRlxcXFx1MzAwMS1cXFxcdUQ3RkZcXFxcdUY5MDAtXFxcXHVGRENGXFxcXHVGREYwLVxcXFx1RkZGRFxcXFwtLjAtOVxcXFx1MDBCN1xcXFx1MDMwMC1cXFxcdTAzNkZcXFxcdTIwM0YtXFxcXHUyMDQwXSokXCJcbiAgICAgICksXG4gICAgICBkaWRXYXJuVmFsdWVOdWxsID0gITEsXG4gICAgICB3YXJuZWRQcm9wZXJ0aWVzID0ge30sXG4gICAgICBFVkVOVF9OQU1FX1JFR0VYID0gL15vbi4vLFxuICAgICAgSU5WQUxJRF9FVkVOVF9OQU1FX1JFR0VYID0gL15vblteQS1aXS8sXG4gICAgICByQVJJQSA9IFJlZ0V4cChcbiAgICAgICAgXCJeKGFyaWEpLVs6QS1aX2EtelxcXFx1MDBDMC1cXFxcdTAwRDZcXFxcdTAwRDgtXFxcXHUwMEY2XFxcXHUwMEY4LVxcXFx1MDJGRlxcXFx1MDM3MC1cXFxcdTAzN0RcXFxcdTAzN0YtXFxcXHUxRkZGXFxcXHUyMDBDLVxcXFx1MjAwRFxcXFx1MjA3MC1cXFxcdTIxOEZcXFxcdTJDMDAtXFxcXHUyRkVGXFxcXHUzMDAxLVxcXFx1RDdGRlxcXFx1RjkwMC1cXFxcdUZEQ0ZcXFxcdUZERjAtXFxcXHVGRkZEXFxcXC0uMC05XFxcXHUwMEI3XFxcXHUwMzAwLVxcXFx1MDM2RlxcXFx1MjAzRi1cXFxcdTIwNDBdKiRcIlxuICAgICAgKSxcbiAgICAgIHJBUklBQ2FtZWwgPSBSZWdFeHAoXG4gICAgICAgIFwiXihhcmlhKVtBLVpdWzpBLVpfYS16XFxcXHUwMEMwLVxcXFx1MDBENlxcXFx1MDBEOC1cXFxcdTAwRjZcXFxcdTAwRjgtXFxcXHUwMkZGXFxcXHUwMzcwLVxcXFx1MDM3RFxcXFx1MDM3Ri1cXFxcdTFGRkZcXFxcdTIwMEMtXFxcXHUyMDBEXFxcXHUyMDcwLVxcXFx1MjE4RlxcXFx1MkMwMC1cXFxcdTJGRUZcXFxcdTMwMDEtXFxcXHVEN0ZGXFxcXHVGOTAwLVxcXFx1RkRDRlxcXFx1RkRGMC1cXFxcdUZGRkRcXFxcLS4wLTlcXFxcdTAwQjdcXFxcdTAzMDAtXFxcXHUwMzZGXFxcXHUyMDNGLVxcXFx1MjA0MF0qJFwiXG4gICAgICApLFxuICAgICAgaXNKYXZhU2NyaXB0UHJvdG9jb2wgPVxuICAgICAgICAvXltcXHUwMDAwLVxcdTAwMUYgXSpqW1xcclxcblxcdF0qYVtcXHJcXG5cXHRdKnZbXFxyXFxuXFx0XSphW1xcclxcblxcdF0qc1tcXHJcXG5cXHRdKmNbXFxyXFxuXFx0XSpyW1xcclxcblxcdF0qaVtcXHJcXG5cXHRdKnBbXFxyXFxuXFx0XSp0W1xcclxcblxcdF0qOi9pLFxuICAgICAgY3VycmVudFJlcGxheWluZ0V2ZW50ID0gbnVsbCxcbiAgICAgIHJlc3RvcmVUYXJnZXQgPSBudWxsLFxuICAgICAgcmVzdG9yZVF1ZXVlID0gbnVsbCxcbiAgICAgIGlzSW5zaWRlRXZlbnRIYW5kbGVyID0gITEsXG4gICAgICBjYW5Vc2VET00gPSAhKFxuICAgICAgICBcInVuZGVmaW5lZFwiID09PSB0eXBlb2Ygd2luZG93IHx8XG4gICAgICAgIFwidW5kZWZpbmVkXCIgPT09IHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQgfHxcbiAgICAgICAgXCJ1bmRlZmluZWRcIiA9PT0gdHlwZW9mIHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50XG4gICAgICApLFxuICAgICAgcGFzc2l2ZUJyb3dzZXJFdmVudHNTdXBwb3J0ZWQgPSAhMTtcbiAgICBpZiAoY2FuVXNlRE9NKVxuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIG9wdGlvbnMkanNjb21wJDAgPSB7fTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9wdGlvbnMkanNjb21wJDAsIFwicGFzc2l2ZVwiLCB7XG4gICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBwYXNzaXZlQnJvd3NlckV2ZW50c1N1cHBvcnRlZCA9ICEwO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwidGVzdFwiLCBvcHRpb25zJGpzY29tcCQwLCBvcHRpb25zJGpzY29tcCQwKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJ0ZXN0XCIsIG9wdGlvbnMkanNjb21wJDAsIG9wdGlvbnMkanNjb21wJDApO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBwYXNzaXZlQnJvd3NlckV2ZW50c1N1cHBvcnRlZCA9ICExO1xuICAgICAgfVxuICAgIHZhciByb290ID0gbnVsbCxcbiAgICAgIHN0YXJ0VGV4dCA9IG51bGwsXG4gICAgICBmYWxsYmFja1RleHQgPSBudWxsLFxuICAgICAgRXZlbnRJbnRlcmZhY2UgPSB7XG4gICAgICAgIGV2ZW50UGhhc2U6IDAsXG4gICAgICAgIGJ1YmJsZXM6IDAsXG4gICAgICAgIGNhbmNlbGFibGU6IDAsXG4gICAgICAgIHRpbWVTdGFtcDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIGV2ZW50LnRpbWVTdGFtcCB8fCBEYXRlLm5vdygpO1xuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0UHJldmVudGVkOiAwLFxuICAgICAgICBpc1RydXN0ZWQ6IDBcbiAgICAgIH0sXG4gICAgICBTeW50aGV0aWNFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEV2ZW50SW50ZXJmYWNlKSxcbiAgICAgIFVJRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7IHZpZXc6IDAsIGRldGFpbDogMCB9KSxcbiAgICAgIFN5bnRoZXRpY1VJRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChVSUV2ZW50SW50ZXJmYWNlKSxcbiAgICAgIGxhc3RNb3ZlbWVudFgsXG4gICAgICBsYXN0TW92ZW1lbnRZLFxuICAgICAgbGFzdE1vdXNlRXZlbnQsXG4gICAgICBNb3VzZUV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gICAgICAgIHNjcmVlblg6IDAsXG4gICAgICAgIHNjcmVlblk6IDAsXG4gICAgICAgIGNsaWVudFg6IDAsXG4gICAgICAgIGNsaWVudFk6IDAsXG4gICAgICAgIHBhZ2VYOiAwLFxuICAgICAgICBwYWdlWTogMCxcbiAgICAgICAgY3RybEtleTogMCxcbiAgICAgICAgc2hpZnRLZXk6IDAsXG4gICAgICAgIGFsdEtleTogMCxcbiAgICAgICAgbWV0YUtleTogMCxcbiAgICAgICAgZ2V0TW9kaWZpZXJTdGF0ZTogZ2V0RXZlbnRNb2RpZmllclN0YXRlLFxuICAgICAgICBidXR0b246IDAsXG4gICAgICAgIGJ1dHRvbnM6IDAsXG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHJldHVybiB2b2lkIDAgPT09IGV2ZW50LnJlbGF0ZWRUYXJnZXRcbiAgICAgICAgICAgID8gZXZlbnQuZnJvbUVsZW1lbnQgPT09IGV2ZW50LnNyY0VsZW1lbnRcbiAgICAgICAgICAgICAgPyBldmVudC50b0VsZW1lbnRcbiAgICAgICAgICAgICAgOiBldmVudC5mcm9tRWxlbWVudFxuICAgICAgICAgICAgOiBldmVudC5yZWxhdGVkVGFyZ2V0O1xuICAgICAgICB9LFxuICAgICAgICBtb3ZlbWVudFg6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIGlmIChcIm1vdmVtZW50WFwiIGluIGV2ZW50KSByZXR1cm4gZXZlbnQubW92ZW1lbnRYO1xuICAgICAgICAgIGV2ZW50ICE9PSBsYXN0TW91c2VFdmVudCAmJlxuICAgICAgICAgICAgKGxhc3RNb3VzZUV2ZW50ICYmIFwibW91c2Vtb3ZlXCIgPT09IGV2ZW50LnR5cGVcbiAgICAgICAgICAgICAgPyAoKGxhc3RNb3ZlbWVudFggPSBldmVudC5zY3JlZW5YIC0gbGFzdE1vdXNlRXZlbnQuc2NyZWVuWCksXG4gICAgICAgICAgICAgICAgKGxhc3RNb3ZlbWVudFkgPSBldmVudC5zY3JlZW5ZIC0gbGFzdE1vdXNlRXZlbnQuc2NyZWVuWSkpXG4gICAgICAgICAgICAgIDogKGxhc3RNb3ZlbWVudFkgPSBsYXN0TW92ZW1lbnRYID0gMCksXG4gICAgICAgICAgICAobGFzdE1vdXNlRXZlbnQgPSBldmVudCkpO1xuICAgICAgICAgIHJldHVybiBsYXN0TW92ZW1lbnRYO1xuICAgICAgICB9LFxuICAgICAgICBtb3ZlbWVudFk6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHJldHVybiBcIm1vdmVtZW50WVwiIGluIGV2ZW50ID8gZXZlbnQubW92ZW1lbnRZIDogbGFzdE1vdmVtZW50WTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBTeW50aGV0aWNNb3VzZUV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoTW91c2VFdmVudEludGVyZmFjZSksXG4gICAgICBEcmFnRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIE1vdXNlRXZlbnRJbnRlcmZhY2UsIHsgZGF0YVRyYW5zZmVyOiAwIH0pLFxuICAgICAgU3ludGhldGljRHJhZ0V2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoRHJhZ0V2ZW50SW50ZXJmYWNlKSxcbiAgICAgIEZvY3VzRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIFVJRXZlbnRJbnRlcmZhY2UsIHsgcmVsYXRlZFRhcmdldDogMCB9KSxcbiAgICAgIFN5bnRoZXRpY0ZvY3VzRXZlbnQgPSBjcmVhdGVTeW50aGV0aWNFdmVudChGb2N1c0V2ZW50SW50ZXJmYWNlKSxcbiAgICAgIEFuaW1hdGlvbkV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICAgICAgICBhbmltYXRpb25OYW1lOiAwLFxuICAgICAgICBlbGFwc2VkVGltZTogMCxcbiAgICAgICAgcHNldWRvRWxlbWVudDogMFxuICAgICAgfSksXG4gICAgICBTeW50aGV0aWNBbmltYXRpb25FdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KEFuaW1hdGlvbkV2ZW50SW50ZXJmYWNlKSxcbiAgICAgIENsaXBib2FyZEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICAgICAgICBjbGlwYm9hcmREYXRhOiBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICByZXR1cm4gXCJjbGlwYm9hcmREYXRhXCIgaW4gZXZlbnRcbiAgICAgICAgICAgID8gZXZlbnQuY2xpcGJvYXJkRGF0YVxuICAgICAgICAgICAgOiB3aW5kb3cuY2xpcGJvYXJkRGF0YTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBTeW50aGV0aWNDbGlwYm9hcmRFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KENsaXBib2FyZEV2ZW50SW50ZXJmYWNlKSxcbiAgICAgIENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7IGRhdGE6IDAgfSksXG4gICAgICBTeW50aGV0aWNDb21wb3NpdGlvbkV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoXG4gICAgICAgIENvbXBvc2l0aW9uRXZlbnRJbnRlcmZhY2VcbiAgICAgICksXG4gICAgICBTeW50aGV0aWNJbnB1dEV2ZW50ID0gU3ludGhldGljQ29tcG9zaXRpb25FdmVudCxcbiAgICAgIG5vcm1hbGl6ZUtleSA9IHtcbiAgICAgICAgRXNjOiBcIkVzY2FwZVwiLFxuICAgICAgICBTcGFjZWJhcjogXCIgXCIsXG4gICAgICAgIExlZnQ6IFwiQXJyb3dMZWZ0XCIsXG4gICAgICAgIFVwOiBcIkFycm93VXBcIixcbiAgICAgICAgUmlnaHQ6IFwiQXJyb3dSaWdodFwiLFxuICAgICAgICBEb3duOiBcIkFycm93RG93blwiLFxuICAgICAgICBEZWw6IFwiRGVsZXRlXCIsXG4gICAgICAgIFdpbjogXCJPU1wiLFxuICAgICAgICBNZW51OiBcIkNvbnRleHRNZW51XCIsXG4gICAgICAgIEFwcHM6IFwiQ29udGV4dE1lbnVcIixcbiAgICAgICAgU2Nyb2xsOiBcIlNjcm9sbExvY2tcIixcbiAgICAgICAgTW96UHJpbnRhYmxlS2V5OiBcIlVuaWRlbnRpZmllZFwiXG4gICAgICB9LFxuICAgICAgdHJhbnNsYXRlVG9LZXkgPSB7XG4gICAgICAgIDg6IFwiQmFja3NwYWNlXCIsXG4gICAgICAgIDk6IFwiVGFiXCIsXG4gICAgICAgIDEyOiBcIkNsZWFyXCIsXG4gICAgICAgIDEzOiBcIkVudGVyXCIsXG4gICAgICAgIDE2OiBcIlNoaWZ0XCIsXG4gICAgICAgIDE3OiBcIkNvbnRyb2xcIixcbiAgICAgICAgMTg6IFwiQWx0XCIsXG4gICAgICAgIDE5OiBcIlBhdXNlXCIsXG4gICAgICAgIDIwOiBcIkNhcHNMb2NrXCIsXG4gICAgICAgIDI3OiBcIkVzY2FwZVwiLFxuICAgICAgICAzMjogXCIgXCIsXG4gICAgICAgIDMzOiBcIlBhZ2VVcFwiLFxuICAgICAgICAzNDogXCJQYWdlRG93blwiLFxuICAgICAgICAzNTogXCJFbmRcIixcbiAgICAgICAgMzY6IFwiSG9tZVwiLFxuICAgICAgICAzNzogXCJBcnJvd0xlZnRcIixcbiAgICAgICAgMzg6IFwiQXJyb3dVcFwiLFxuICAgICAgICAzOTogXCJBcnJvd1JpZ2h0XCIsXG4gICAgICAgIDQwOiBcIkFycm93RG93blwiLFxuICAgICAgICA0NTogXCJJbnNlcnRcIixcbiAgICAgICAgNDY6IFwiRGVsZXRlXCIsXG4gICAgICAgIDExMjogXCJGMVwiLFxuICAgICAgICAxMTM6IFwiRjJcIixcbiAgICAgICAgMTE0OiBcIkYzXCIsXG4gICAgICAgIDExNTogXCJGNFwiLFxuICAgICAgICAxMTY6IFwiRjVcIixcbiAgICAgICAgMTE3OiBcIkY2XCIsXG4gICAgICAgIDExODogXCJGN1wiLFxuICAgICAgICAxMTk6IFwiRjhcIixcbiAgICAgICAgMTIwOiBcIkY5XCIsXG4gICAgICAgIDEyMTogXCJGMTBcIixcbiAgICAgICAgMTIyOiBcIkYxMVwiLFxuICAgICAgICAxMjM6IFwiRjEyXCIsXG4gICAgICAgIDE0NDogXCJOdW1Mb2NrXCIsXG4gICAgICAgIDE0NTogXCJTY3JvbGxMb2NrXCIsXG4gICAgICAgIDIyNDogXCJNZXRhXCJcbiAgICAgIH0sXG4gICAgICBtb2RpZmllcktleVRvUHJvcCA9IHtcbiAgICAgICAgQWx0OiBcImFsdEtleVwiLFxuICAgICAgICBDb250cm9sOiBcImN0cmxLZXlcIixcbiAgICAgICAgTWV0YTogXCJtZXRhS2V5XCIsXG4gICAgICAgIFNoaWZ0OiBcInNoaWZ0S2V5XCJcbiAgICAgIH0sXG4gICAgICBLZXlib2FyZEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gICAgICAgIGtleTogZnVuY3Rpb24gKG5hdGl2ZUV2ZW50KSB7XG4gICAgICAgICAgaWYgKG5hdGl2ZUV2ZW50LmtleSkge1xuICAgICAgICAgICAgdmFyIGtleSA9IG5vcm1hbGl6ZUtleVtuYXRpdmVFdmVudC5rZXldIHx8IG5hdGl2ZUV2ZW50LmtleTtcbiAgICAgICAgICAgIGlmIChcIlVuaWRlbnRpZmllZFwiICE9PSBrZXkpIHJldHVybiBrZXk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBcImtleXByZXNzXCIgPT09IG5hdGl2ZUV2ZW50LnR5cGVcbiAgICAgICAgICAgID8gKChuYXRpdmVFdmVudCA9IGdldEV2ZW50Q2hhckNvZGUobmF0aXZlRXZlbnQpKSxcbiAgICAgICAgICAgICAgMTMgPT09IG5hdGl2ZUV2ZW50ID8gXCJFbnRlclwiIDogU3RyaW5nLmZyb21DaGFyQ29kZShuYXRpdmVFdmVudCkpXG4gICAgICAgICAgICA6IFwia2V5ZG93blwiID09PSBuYXRpdmVFdmVudC50eXBlIHx8IFwia2V5dXBcIiA9PT0gbmF0aXZlRXZlbnQudHlwZVxuICAgICAgICAgICAgICA/IHRyYW5zbGF0ZVRvS2V5W25hdGl2ZUV2ZW50LmtleUNvZGVdIHx8IFwiVW5pZGVudGlmaWVkXCJcbiAgICAgICAgICAgICAgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBjb2RlOiAwLFxuICAgICAgICBsb2NhdGlvbjogMCxcbiAgICAgICAgY3RybEtleTogMCxcbiAgICAgICAgc2hpZnRLZXk6IDAsXG4gICAgICAgIGFsdEtleTogMCxcbiAgICAgICAgbWV0YUtleTogMCxcbiAgICAgICAgcmVwZWF0OiAwLFxuICAgICAgICBsb2NhbGU6IDAsXG4gICAgICAgIGdldE1vZGlmaWVyU3RhdGU6IGdldEV2ZW50TW9kaWZpZXJTdGF0ZSxcbiAgICAgICAgY2hhckNvZGU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHJldHVybiBcImtleXByZXNzXCIgPT09IGV2ZW50LnR5cGUgPyBnZXRFdmVudENoYXJDb2RlKGV2ZW50KSA6IDA7XG4gICAgICAgIH0sXG4gICAgICAgIGtleUNvZGU6IGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgIHJldHVybiBcImtleWRvd25cIiA9PT0gZXZlbnQudHlwZSB8fCBcImtleXVwXCIgPT09IGV2ZW50LnR5cGVcbiAgICAgICAgICAgID8gZXZlbnQua2V5Q29kZVxuICAgICAgICAgICAgOiAwO1xuICAgICAgICB9LFxuICAgICAgICB3aGljaDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIFwia2V5cHJlc3NcIiA9PT0gZXZlbnQudHlwZVxuICAgICAgICAgICAgPyBnZXRFdmVudENoYXJDb2RlKGV2ZW50KVxuICAgICAgICAgICAgOiBcImtleWRvd25cIiA9PT0gZXZlbnQudHlwZSB8fCBcImtleXVwXCIgPT09IGV2ZW50LnR5cGVcbiAgICAgICAgICAgICAgPyBldmVudC5rZXlDb2RlXG4gICAgICAgICAgICAgIDogMDtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBTeW50aGV0aWNLZXlib2FyZEV2ZW50ID0gY3JlYXRlU3ludGhldGljRXZlbnQoS2V5Ym9hcmRFdmVudEludGVyZmFjZSksXG4gICAgICBQb2ludGVyRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIE1vdXNlRXZlbnRJbnRlcmZhY2UsIHtcbiAgICAgICAgcG9pbnRlcklkOiAwLFxuICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgaGVpZ2h0OiAwLFxuICAgICAgICBwcmVzc3VyZTogMCxcbiAgICAgICAgdGFuZ2VudGlhbFByZXNzdXJlOiAwLFxuICAgICAgICB0aWx0WDogMCxcbiAgICAgICAgdGlsdFk6IDAsXG4gICAgICAgIHR3aXN0OiAwLFxuICAgICAgICBwb2ludGVyVHlwZTogMCxcbiAgICAgICAgaXNQcmltYXJ5OiAwXG4gICAgICB9KSxcbiAgICAgIFN5bnRoZXRpY1BvaW50ZXJFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFBvaW50ZXJFdmVudEludGVyZmFjZSksXG4gICAgICBUb3VjaEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBVSUV2ZW50SW50ZXJmYWNlLCB7XG4gICAgICAgIHRvdWNoZXM6IDAsXG4gICAgICAgIHRhcmdldFRvdWNoZXM6IDAsXG4gICAgICAgIGNoYW5nZWRUb3VjaGVzOiAwLFxuICAgICAgICBhbHRLZXk6IDAsXG4gICAgICAgIG1ldGFLZXk6IDAsXG4gICAgICAgIGN0cmxLZXk6IDAsXG4gICAgICAgIHNoaWZ0S2V5OiAwLFxuICAgICAgICBnZXRNb2RpZmllclN0YXRlOiBnZXRFdmVudE1vZGlmaWVyU3RhdGVcbiAgICAgIH0pLFxuICAgICAgU3ludGhldGljVG91Y2hFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFRvdWNoRXZlbnRJbnRlcmZhY2UpLFxuICAgICAgVHJhbnNpdGlvbkV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBFdmVudEludGVyZmFjZSwge1xuICAgICAgICBwcm9wZXJ0eU5hbWU6IDAsXG4gICAgICAgIGVsYXBzZWRUaW1lOiAwLFxuICAgICAgICBwc2V1ZG9FbGVtZW50OiAwXG4gICAgICB9KSxcbiAgICAgIFN5bnRoZXRpY1RyYW5zaXRpb25FdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFRyYW5zaXRpb25FdmVudEludGVyZmFjZSksXG4gICAgICBXaGVlbEV2ZW50SW50ZXJmYWNlID0gYXNzaWduKHt9LCBNb3VzZUV2ZW50SW50ZXJmYWNlLCB7XG4gICAgICAgIGRlbHRhWDogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIFwiZGVsdGFYXCIgaW4gZXZlbnRcbiAgICAgICAgICAgID8gZXZlbnQuZGVsdGFYXG4gICAgICAgICAgICA6IFwid2hlZWxEZWx0YVhcIiBpbiBldmVudFxuICAgICAgICAgICAgICA/IC1ldmVudC53aGVlbERlbHRhWFxuICAgICAgICAgICAgICA6IDA7XG4gICAgICAgIH0sXG4gICAgICAgIGRlbHRhWTogZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgcmV0dXJuIFwiZGVsdGFZXCIgaW4gZXZlbnRcbiAgICAgICAgICAgID8gZXZlbnQuZGVsdGFZXG4gICAgICAgICAgICA6IFwid2hlZWxEZWx0YVlcIiBpbiBldmVudFxuICAgICAgICAgICAgICA/IC1ldmVudC53aGVlbERlbHRhWVxuICAgICAgICAgICAgICA6IFwid2hlZWxEZWx0YVwiIGluIGV2ZW50XG4gICAgICAgICAgICAgICAgPyAtZXZlbnQud2hlZWxEZWx0YVxuICAgICAgICAgICAgICAgIDogMDtcbiAgICAgICAgfSxcbiAgICAgICAgZGVsdGFaOiAwLFxuICAgICAgICBkZWx0YU1vZGU6IDBcbiAgICAgIH0pLFxuICAgICAgU3ludGhldGljV2hlZWxFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFdoZWVsRXZlbnRJbnRlcmZhY2UpLFxuICAgICAgVG9nZ2xlRXZlbnRJbnRlcmZhY2UgPSBhc3NpZ24oe30sIEV2ZW50SW50ZXJmYWNlLCB7XG4gICAgICAgIG5ld1N0YXRlOiAwLFxuICAgICAgICBvbGRTdGF0ZTogMFxuICAgICAgfSksXG4gICAgICBTeW50aGV0aWNUb2dnbGVFdmVudCA9IGNyZWF0ZVN5bnRoZXRpY0V2ZW50KFRvZ2dsZUV2ZW50SW50ZXJmYWNlKSxcbiAgICAgIEVORF9LRVlDT0RFUyA9IFs5LCAxMywgMjcsIDMyXSxcbiAgICAgIFNUQVJUX0tFWUNPREUgPSAyMjksXG4gICAgICBjYW5Vc2VDb21wb3NpdGlvbkV2ZW50ID0gY2FuVXNlRE9NICYmIFwiQ29tcG9zaXRpb25FdmVudFwiIGluIHdpbmRvdyxcbiAgICAgIGRvY3VtZW50TW9kZSA9IG51bGw7XG4gICAgY2FuVXNlRE9NICYmXG4gICAgICBcImRvY3VtZW50TW9kZVwiIGluIGRvY3VtZW50ICYmXG4gICAgICAoZG9jdW1lbnRNb2RlID0gZG9jdW1lbnQuZG9jdW1lbnRNb2RlKTtcbiAgICB2YXIgY2FuVXNlVGV4dElucHV0RXZlbnQgPVxuICAgICAgICBjYW5Vc2VET00gJiYgXCJUZXh0RXZlbnRcIiBpbiB3aW5kb3cgJiYgIWRvY3VtZW50TW9kZSxcbiAgICAgIHVzZUZhbGxiYWNrQ29tcG9zaXRpb25EYXRhID1cbiAgICAgICAgY2FuVXNlRE9NICYmXG4gICAgICAgICghY2FuVXNlQ29tcG9zaXRpb25FdmVudCB8fFxuICAgICAgICAgIChkb2N1bWVudE1vZGUgJiYgOCA8IGRvY3VtZW50TW9kZSAmJiAxMSA+PSBkb2N1bWVudE1vZGUpKSxcbiAgICAgIFNQQUNFQkFSX0NPREUgPSAzMixcbiAgICAgIFNQQUNFQkFSX0NIQVIgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKFNQQUNFQkFSX0NPREUpLFxuICAgICAgaGFzU3BhY2VLZXlwcmVzcyA9ICExLFxuICAgICAgaXNDb21wb3NpbmcgPSAhMSxcbiAgICAgIHN1cHBvcnRlZElucHV0VHlwZXMgPSB7XG4gICAgICAgIGNvbG9yOiAhMCxcbiAgICAgICAgZGF0ZTogITAsXG4gICAgICAgIGRhdGV0aW1lOiAhMCxcbiAgICAgICAgXCJkYXRldGltZS1sb2NhbFwiOiAhMCxcbiAgICAgICAgZW1haWw6ICEwLFxuICAgICAgICBtb250aDogITAsXG4gICAgICAgIG51bWJlcjogITAsXG4gICAgICAgIHBhc3N3b3JkOiAhMCxcbiAgICAgICAgcmFuZ2U6ICEwLFxuICAgICAgICBzZWFyY2g6ICEwLFxuICAgICAgICB0ZWw6ICEwLFxuICAgICAgICB0ZXh0OiAhMCxcbiAgICAgICAgdGltZTogITAsXG4gICAgICAgIHVybDogITAsXG4gICAgICAgIHdlZWs6ICEwXG4gICAgICB9LFxuICAgICAgYWN0aXZlRWxlbWVudCQxID0gbnVsbCxcbiAgICAgIGFjdGl2ZUVsZW1lbnRJbnN0JDEgPSBudWxsLFxuICAgICAgaXNJbnB1dEV2ZW50U3VwcG9ydGVkID0gITE7XG4gICAgY2FuVXNlRE9NICYmXG4gICAgICAoaXNJbnB1dEV2ZW50U3VwcG9ydGVkID1cbiAgICAgICAgaXNFdmVudFN1cHBvcnRlZChcImlucHV0XCIpICYmXG4gICAgICAgICghZG9jdW1lbnQuZG9jdW1lbnRNb2RlIHx8IDkgPCBkb2N1bWVudC5kb2N1bWVudE1vZGUpKTtcbiAgICB2YXIgb2JqZWN0SXMgPSBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBPYmplY3QuaXMgPyBPYmplY3QuaXMgOiBpcyxcbiAgICAgIHNraXBTZWxlY3Rpb25DaGFuZ2VFdmVudCA9XG4gICAgICAgIGNhblVzZURPTSAmJiBcImRvY3VtZW50TW9kZVwiIGluIGRvY3VtZW50ICYmIDExID49IGRvY3VtZW50LmRvY3VtZW50TW9kZSxcbiAgICAgIGFjdGl2ZUVsZW1lbnQgPSBudWxsLFxuICAgICAgYWN0aXZlRWxlbWVudEluc3QgPSBudWxsLFxuICAgICAgbGFzdFNlbGVjdGlvbiA9IG51bGwsXG4gICAgICBtb3VzZURvd24gPSAhMSxcbiAgICAgIHZlbmRvclByZWZpeGVzID0ge1xuICAgICAgICBhbmltYXRpb25lbmQ6IG1ha2VQcmVmaXhNYXAoXCJBbmltYXRpb25cIiwgXCJBbmltYXRpb25FbmRcIiksXG4gICAgICAgIGFuaW1hdGlvbml0ZXJhdGlvbjogbWFrZVByZWZpeE1hcChcIkFuaW1hdGlvblwiLCBcIkFuaW1hdGlvbkl0ZXJhdGlvblwiKSxcbiAgICAgICAgYW5pbWF0aW9uc3RhcnQ6IG1ha2VQcmVmaXhNYXAoXCJBbmltYXRpb25cIiwgXCJBbmltYXRpb25TdGFydFwiKSxcbiAgICAgICAgdHJhbnNpdGlvbnJ1bjogbWFrZVByZWZpeE1hcChcIlRyYW5zaXRpb25cIiwgXCJUcmFuc2l0aW9uUnVuXCIpLFxuICAgICAgICB0cmFuc2l0aW9uc3RhcnQ6IG1ha2VQcmVmaXhNYXAoXCJUcmFuc2l0aW9uXCIsIFwiVHJhbnNpdGlvblN0YXJ0XCIpLFxuICAgICAgICB0cmFuc2l0aW9uY2FuY2VsOiBtYWtlUHJlZml4TWFwKFwiVHJhbnNpdGlvblwiLCBcIlRyYW5zaXRpb25DYW5jZWxcIiksXG4gICAgICAgIHRyYW5zaXRpb25lbmQ6IG1ha2VQcmVmaXhNYXAoXCJUcmFuc2l0aW9uXCIsIFwiVHJhbnNpdGlvbkVuZFwiKVxuICAgICAgfSxcbiAgICAgIHByZWZpeGVkRXZlbnROYW1lcyA9IHt9LFxuICAgICAgc3R5bGUgPSB7fTtcbiAgICBjYW5Vc2VET00gJiZcbiAgICAgICgoc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpLnN0eWxlKSxcbiAgICAgIFwiQW5pbWF0aW9uRXZlbnRcIiBpbiB3aW5kb3cgfHxcbiAgICAgICAgKGRlbGV0ZSB2ZW5kb3JQcmVmaXhlcy5hbmltYXRpb25lbmQuYW5pbWF0aW9uLFxuICAgICAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMuYW5pbWF0aW9uaXRlcmF0aW9uLmFuaW1hdGlvbixcbiAgICAgICAgZGVsZXRlIHZlbmRvclByZWZpeGVzLmFuaW1hdGlvbnN0YXJ0LmFuaW1hdGlvbiksXG4gICAgICBcIlRyYW5zaXRpb25FdmVudFwiIGluIHdpbmRvdyB8fFxuICAgICAgICBkZWxldGUgdmVuZG9yUHJlZml4ZXMudHJhbnNpdGlvbmVuZC50cmFuc2l0aW9uKTtcbiAgICB2YXIgQU5JTUFUSU9OX0VORCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKFwiYW5pbWF0aW9uZW5kXCIpLFxuICAgICAgQU5JTUFUSU9OX0lURVJBVElPTiA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKFwiYW5pbWF0aW9uaXRlcmF0aW9uXCIpLFxuICAgICAgQU5JTUFUSU9OX1NUQVJUID0gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoXCJhbmltYXRpb25zdGFydFwiKSxcbiAgICAgIFRSQU5TSVRJT05fUlVOID0gZ2V0VmVuZG9yUHJlZml4ZWRFdmVudE5hbWUoXCJ0cmFuc2l0aW9ucnVuXCIpLFxuICAgICAgVFJBTlNJVElPTl9TVEFSVCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKFwidHJhbnNpdGlvbnN0YXJ0XCIpLFxuICAgICAgVFJBTlNJVElPTl9DQU5DRUwgPSBnZXRWZW5kb3JQcmVmaXhlZEV2ZW50TmFtZShcInRyYW5zaXRpb25jYW5jZWxcIiksXG4gICAgICBUUkFOU0lUSU9OX0VORCA9IGdldFZlbmRvclByZWZpeGVkRXZlbnROYW1lKFwidHJhbnNpdGlvbmVuZFwiKSxcbiAgICAgIHRvcExldmVsRXZlbnRzVG9SZWFjdE5hbWVzID0gbmV3IE1hcCgpLFxuICAgICAgc2ltcGxlRXZlbnRQbHVnaW5FdmVudHMgPVxuICAgICAgICBcImFib3J0IGF1eENsaWNrIGJlZm9yZVRvZ2dsZSBjYW5jZWwgY2FuUGxheSBjYW5QbGF5VGhyb3VnaCBjbGljayBjbG9zZSBjb250ZXh0TWVudSBjb3B5IGN1dCBkcmFnIGRyYWdFbmQgZHJhZ0VudGVyIGRyYWdFeGl0IGRyYWdMZWF2ZSBkcmFnT3ZlciBkcmFnU3RhcnQgZHJvcCBkdXJhdGlvbkNoYW5nZSBlbXB0aWVkIGVuY3J5cHRlZCBlbmRlZCBlcnJvciBnb3RQb2ludGVyQ2FwdHVyZSBpbnB1dCBpbnZhbGlkIGtleURvd24ga2V5UHJlc3Mga2V5VXAgbG9hZCBsb2FkZWREYXRhIGxvYWRlZE1ldGFkYXRhIGxvYWRTdGFydCBsb3N0UG9pbnRlckNhcHR1cmUgbW91c2VEb3duIG1vdXNlTW92ZSBtb3VzZU91dCBtb3VzZU92ZXIgbW91c2VVcCBwYXN0ZSBwYXVzZSBwbGF5IHBsYXlpbmcgcG9pbnRlckNhbmNlbCBwb2ludGVyRG93biBwb2ludGVyTW92ZSBwb2ludGVyT3V0IHBvaW50ZXJPdmVyIHBvaW50ZXJVcCBwcm9ncmVzcyByYXRlQ2hhbmdlIHJlc2V0IHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1Ym1pdCBzdXNwZW5kIHRpbWVVcGRhdGUgdG91Y2hDYW5jZWwgdG91Y2hFbmQgdG91Y2hTdGFydCB2b2x1bWVDaGFuZ2Ugc2Nyb2xsIHRvZ2dsZSB0b3VjaE1vdmUgd2FpdGluZyB3aGVlbFwiLnNwbGl0KFxuICAgICAgICAgIFwiIFwiXG4gICAgICAgICk7XG4gICAgc2ltcGxlRXZlbnRQbHVnaW5FdmVudHMucHVzaChcInNjcm9sbEVuZFwiKTtcbiAgICB2YXIgbGFzdFJlc2V0VGltZSA9IDA7XG4gICAgaWYgKFxuICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHBlcmZvcm1hbmNlICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwZXJmb3JtYW5jZS5ub3dcbiAgICApIHtcbiAgICAgIHZhciBsb2NhbFBlcmZvcm1hbmNlID0gcGVyZm9ybWFuY2U7XG4gICAgICB2YXIgZ2V0Q3VycmVudFRpbWUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBsb2NhbFBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGxvY2FsRGF0ZSA9IERhdGU7XG4gICAgICBnZXRDdXJyZW50VGltZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsRGF0ZS5ub3coKTtcbiAgICAgIH07XG4gICAgfVxuICAgIHZhciByZXBvcnRHbG9iYWxFcnJvciA9XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHJlcG9ydEVycm9yXG4gICAgICAgICAgPyByZXBvcnRFcnJvclxuICAgICAgICAgIDogZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2Ygd2luZG93ICYmXG4gICAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2Ygd2luZG93LkVycm9yRXZlbnRcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdmFyIGV2ZW50ID0gbmV3IHdpbmRvdy5FcnJvckV2ZW50KFwiZXJyb3JcIiwge1xuICAgICAgICAgICAgICAgICAgYnViYmxlczogITAsXG4gICAgICAgICAgICAgICAgICBjYW5jZWxhYmxlOiAhMCxcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgICAgICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBlcnJvciAmJlxuICAgICAgICAgICAgICAgICAgICBudWxsICE9PSBlcnJvciAmJlxuICAgICAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgZXJyb3IubWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgID8gU3RyaW5nKGVycm9yLm1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgOiBTdHJpbmcoZXJyb3IpLFxuICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cuZGlzcGF0Y2hFdmVudChldmVudCkpIHJldHVybjtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgcHJvY2VzcyAmJlxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHByb2Nlc3MuZW1pdFxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBwcm9jZXNzLmVtaXQoXCJ1bmNhdWdodEV4Y2VwdGlvblwiLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgfSxcbiAgICAgIE9NSVRURURfUFJPUF9FUlJPUiA9XG4gICAgICAgIFwiVGhpcyBvYmplY3QgaGFzIGJlZW4gb21pdHRlZCBieSBSZWFjdCBpbiB0aGUgY29uc29sZSBsb2cgdG8gYXZvaWQgc2VuZGluZyB0b28gbXVjaCBkYXRhIGZyb20gdGhlIHNlcnZlci4gVHJ5IGxvZ2dpbmcgc21hbGxlciBvciBtb3JlIHNwZWNpZmljIG9iamVjdHMuXCIsXG4gICAgICBFTVBUWV9BUlJBWSA9IDAsXG4gICAgICBDT01QTEVYX0FSUkFZID0gMSxcbiAgICAgIFBSSU1JVElWRV9BUlJBWSA9IDIsXG4gICAgICBFTlRSSUVTX0FSUkFZID0gMyxcbiAgICAgIFJFTU9WRUQgPSBcIlxcdTIwMTNcXHUwMGEwXCIsXG4gICAgICBBRERFRCA9IFwiK1xcdTAwYTBcIixcbiAgICAgIFVOQ0hBTkdFRCA9IFwiXFx1MjAwN1xcdTAwYTBcIixcbiAgICAgIHN1cHBvcnRzVXNlclRpbWluZyA9XG4gICAgICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBjb25zb2xlICYmXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGNvbnNvbGUudGltZVN0YW1wICYmXG4gICAgICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBwZXJmb3JtYW5jZSAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwZXJmb3JtYW5jZS5tZWFzdXJlLFxuICAgICAgQ09NUE9ORU5UU19UUkFDSyA9IFwiQ29tcG9uZW50cyBcXHUyNjliXCIsXG4gICAgICBMQU5FU19UUkFDS19HUk9VUCA9IFwiU2NoZWR1bGVyIFxcdTI2OWJcIixcbiAgICAgIGN1cnJlbnRUcmFjayA9IFwiQmxvY2tpbmdcIixcbiAgICAgIGFscmVhZHlXYXJuZWRGb3JEZWVwRXF1YWxpdHkgPSAhMSxcbiAgICAgIHJldXNhYmxlQ29tcG9uZW50RGV2VG9vbERldGFpbHMgPSB7XG4gICAgICAgIGNvbG9yOiBcInByaW1hcnlcIixcbiAgICAgICAgcHJvcGVydGllczogbnVsbCxcbiAgICAgICAgdG9vbHRpcFRleHQ6IFwiXCIsXG4gICAgICAgIHRyYWNrOiBDT01QT05FTlRTX1RSQUNLXG4gICAgICB9LFxuICAgICAgcmV1c2FibGVDb21wb25lbnRPcHRpb25zID0ge1xuICAgICAgICBzdGFydDogLTAsXG4gICAgICAgIGVuZDogLTAsXG4gICAgICAgIGRldGFpbDogeyBkZXZ0b29sczogcmV1c2FibGVDb21wb25lbnREZXZUb29sRGV0YWlscyB9XG4gICAgICB9LFxuICAgICAgcmVzdWFibGVDaGFuZ2VkUHJvcHNFbnRyeSA9IFtcIkNoYW5nZWQgUHJvcHNcIiwgXCJcIl0sXG4gICAgICBERUVQX0VRVUFMSVRZX1dBUk5JTkcgPVxuICAgICAgICBcIlRoaXMgY29tcG9uZW50IHJlY2VpdmVkIGRlZXBseSBlcXVhbCBwcm9wcy4gSXQgbWlnaHQgYmVuZWZpdCBmcm9tIHVzZU1lbW8gb3IgdGhlIFJlYWN0IENvbXBpbGVyIGluIGl0cyBvd25lci5cIixcbiAgICAgIHJldXNhYmxlRGVlcGx5RXF1YWxQcm9wc0VudHJ5ID0gW1wiQ2hhbmdlZCBQcm9wc1wiLCBERUVQX0VRVUFMSVRZX1dBUk5JTkddLFxuICAgICAgT2Zmc2NyZWVuVmlzaWJsZSA9IDEsXG4gICAgICBPZmZzY3JlZW5QYXNzaXZlRWZmZWN0c0Nvbm5lY3RlZCA9IDIsXG4gICAgICBjb25jdXJyZW50UXVldWVzID0gW10sXG4gICAgICBjb25jdXJyZW50UXVldWVzSW5kZXggPSAwLFxuICAgICAgY29uY3VycmVudGx5VXBkYXRlZExhbmVzID0gMCxcbiAgICAgIGVtcHR5Q29udGV4dE9iamVjdCA9IHt9O1xuICAgIE9iamVjdC5mcmVlemUoZW1wdHlDb250ZXh0T2JqZWN0KTtcbiAgICB2YXIgcmVzb2x2ZUZhbWlseSA9IG51bGwsXG4gICAgICBmYWlsZWRCb3VuZGFyaWVzID0gbnVsbCxcbiAgICAgIE5vTW9kZSA9IDAsXG4gICAgICBDb25jdXJyZW50TW9kZSA9IDEsXG4gICAgICBQcm9maWxlTW9kZSA9IDIsXG4gICAgICBTdHJpY3RMZWdhY3lNb2RlID0gOCxcbiAgICAgIFN0cmljdEVmZmVjdHNNb2RlID0gMTYsXG4gICAgICBTdXNwZW5zZXlJbWFnZXNNb2RlID0gMzI7XG4gICAgdmFyIGhhc0JhZE1hcFBvbHlmaWxsID0gITE7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBub25FeHRlbnNpYmxlT2JqZWN0ID0gT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KTtcbiAgICAgIG5ldyBNYXAoW1tub25FeHRlbnNpYmxlT2JqZWN0LCBudWxsXV0pO1xuICAgICAgbmV3IFNldChbbm9uRXh0ZW5zaWJsZU9iamVjdF0pO1xuICAgIH0gY2F0Y2ggKGUkMykge1xuICAgICAgaGFzQmFkTWFwUG9seWZpbGwgPSAhMDtcbiAgICB9XG4gICAgdmFyIENhcHR1cmVkU3RhY2tzID0gbmV3IFdlYWtNYXAoKSxcbiAgICAgIGZvcmtTdGFjayA9IFtdLFxuICAgICAgZm9ya1N0YWNrSW5kZXggPSAwLFxuICAgICAgdHJlZUZvcmtQcm92aWRlciA9IG51bGwsXG4gICAgICB0cmVlRm9ya0NvdW50ID0gMCxcbiAgICAgIGlkU3RhY2sgPSBbXSxcbiAgICAgIGlkU3RhY2tJbmRleCA9IDAsXG4gICAgICB0cmVlQ29udGV4dFByb3ZpZGVyID0gbnVsbCxcbiAgICAgIHRyZWVDb250ZXh0SWQgPSAxLFxuICAgICAgdHJlZUNvbnRleHRPdmVyZmxvdyA9IFwiXCIsXG4gICAgICBoeWRyYXRpb25QYXJlbnRGaWJlciA9IG51bGwsXG4gICAgICBuZXh0SHlkcmF0YWJsZUluc3RhbmNlID0gbnVsbCxcbiAgICAgIGlzSHlkcmF0aW5nID0gITEsXG4gICAgICBkaWRTdXNwZW5kT3JFcnJvckRFViA9ICExLFxuICAgICAgaHlkcmF0aW9uRGlmZlJvb3RERVYgPSBudWxsLFxuICAgICAgaHlkcmF0aW9uRXJyb3JzID0gbnVsbCxcbiAgICAgIHJvb3RPclNpbmdsZXRvbkNvbnRleHQgPSAhMSxcbiAgICAgIEh5ZHJhdGlvbk1pc21hdGNoRXhjZXB0aW9uID0gRXJyb3IoXG4gICAgICAgIFwiSHlkcmF0aW9uIE1pc21hdGNoIEV4Y2VwdGlvbjogVGhpcyBpcyBub3QgYSByZWFsIGVycm9yLCBhbmQgc2hvdWxkIG5vdCBsZWFrIGludG8gdXNlcnNwYWNlLiBJZiB5b3UncmUgc2VlaW5nIHRoaXMsIGl0J3MgbGlrZWx5IGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICApLFxuICAgICAgdmFsdWVDdXJzb3IgPSBjcmVhdGVDdXJzb3IobnVsbCk7XG4gICAgdmFyIHJlbmRlcmVyQ3Vyc29yREVWID0gY3JlYXRlQ3Vyc29yKG51bGwpO1xuICAgIHZhciByZW5kZXJlclNpZ2lsID0ge307XG4gICAgdmFyIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyJDEgPSBudWxsLFxuICAgICAgbGFzdENvbnRleHREZXBlbmRlbmN5ID0gbnVsbCxcbiAgICAgIGlzRGlzYWxsb3dlZENvbnRleHRSZWFkSW5ERVYgPSAhMSxcbiAgICAgIEFib3J0Q29udHJvbGxlckxvY2FsID1cbiAgICAgICAgXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIEFib3J0Q29udHJvbGxlclxuICAgICAgICAgID8gQWJvcnRDb250cm9sbGVyXG4gICAgICAgICAgOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHZhciBsaXN0ZW5lcnMgPSBbXSxcbiAgICAgICAgICAgICAgICBzaWduYWwgPSAodGhpcy5zaWduYWwgPSB7XG4gICAgICAgICAgICAgICAgICBhYm9ydGVkOiAhMSxcbiAgICAgICAgICAgICAgICAgIGFkZEV2ZW50TGlzdGVuZXI6IGZ1bmN0aW9uICh0eXBlLCBsaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHRoaXMuYWJvcnQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgc2lnbmFsLmFib3J0ZWQgPSAhMDtcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbiAobGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBsaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSxcbiAgICAgIHNjaGVkdWxlQ2FsbGJhY2skMiA9IFNjaGVkdWxlci51bnN0YWJsZV9zY2hlZHVsZUNhbGxiYWNrLFxuICAgICAgTm9ybWFsUHJpb3JpdHkgPSBTY2hlZHVsZXIudW5zdGFibGVfTm9ybWFsUHJpb3JpdHksXG4gICAgICBDYWNoZUNvbnRleHQgPSB7XG4gICAgICAgICQkdHlwZW9mOiBSRUFDVF9DT05URVhUX1RZUEUsXG4gICAgICAgIENvbnN1bWVyOiBudWxsLFxuICAgICAgICBQcm92aWRlcjogbnVsbCxcbiAgICAgICAgX2N1cnJlbnRWYWx1ZTogbnVsbCxcbiAgICAgICAgX2N1cnJlbnRWYWx1ZTI6IG51bGwsXG4gICAgICAgIF90aHJlYWRDb3VudDogMCxcbiAgICAgICAgX2N1cnJlbnRSZW5kZXJlcjogbnVsbCxcbiAgICAgICAgX2N1cnJlbnRSZW5kZXJlcjI6IG51bGxcbiAgICAgIH0sXG4gICAgICBub3cgPSBTY2hlZHVsZXIudW5zdGFibGVfbm93LFxuICAgICAgY3JlYXRlVGFzayA9IGNvbnNvbGUuY3JlYXRlVGFza1xuICAgICAgICA/IGNvbnNvbGUuY3JlYXRlVGFza1xuICAgICAgICA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH0sXG4gICAgICBTUEFXTkVEX1VQREFURSA9IDEsXG4gICAgICBQSU5HRURfVVBEQVRFID0gMixcbiAgICAgIHJlbmRlclN0YXJ0VGltZSA9IC0wLFxuICAgICAgY29tbWl0U3RhcnRUaW1lID0gLTAsXG4gICAgICBjb21taXRFbmRUaW1lID0gLTAsXG4gICAgICBjb21taXRFcnJvcnMgPSBudWxsLFxuICAgICAgcHJvZmlsZXJTdGFydFRpbWUgPSAtMS4xLFxuICAgICAgcHJvZmlsZXJFZmZlY3REdXJhdGlvbiA9IC0wLFxuICAgICAgY29tcG9uZW50RWZmZWN0RHVyYXRpb24gPSAtMCxcbiAgICAgIGNvbXBvbmVudEVmZmVjdFN0YXJ0VGltZSA9IC0xLjEsXG4gICAgICBjb21wb25lbnRFZmZlY3RFbmRUaW1lID0gLTEuMSxcbiAgICAgIGNvbXBvbmVudEVmZmVjdEVycm9ycyA9IG51bGwsXG4gICAgICBjb21wb25lbnRFZmZlY3RTcGF3bmVkVXBkYXRlID0gITEsXG4gICAgICBibG9ja2luZ0NsYW1wVGltZSA9IC0wLFxuICAgICAgYmxvY2tpbmdVcGRhdGVUaW1lID0gLTEuMSxcbiAgICAgIGJsb2NraW5nVXBkYXRlVGFzayA9IG51bGwsXG4gICAgICBibG9ja2luZ1VwZGF0ZVR5cGUgPSAwLFxuICAgICAgYmxvY2tpbmdVcGRhdGVNZXRob2ROYW1lID0gbnVsbCxcbiAgICAgIGJsb2NraW5nVXBkYXRlQ29tcG9uZW50TmFtZSA9IG51bGwsXG4gICAgICBibG9ja2luZ0V2ZW50VGltZSA9IC0xLjEsXG4gICAgICBibG9ja2luZ0V2ZW50VHlwZSA9IG51bGwsXG4gICAgICBibG9ja2luZ0V2ZW50UmVwZWF0VGltZSA9IC0xLjEsXG4gICAgICBibG9ja2luZ1N1c3BlbmRlZFRpbWUgPSAtMS4xLFxuICAgICAgdHJhbnNpdGlvbkNsYW1wVGltZSA9IC0wLFxuICAgICAgdHJhbnNpdGlvblN0YXJ0VGltZSA9IC0xLjEsXG4gICAgICB0cmFuc2l0aW9uVXBkYXRlVGltZSA9IC0xLjEsXG4gICAgICB0cmFuc2l0aW9uVXBkYXRlVHlwZSA9IDAsXG4gICAgICB0cmFuc2l0aW9uVXBkYXRlVGFzayA9IG51bGwsXG4gICAgICB0cmFuc2l0aW9uVXBkYXRlTWV0aG9kTmFtZSA9IG51bGwsXG4gICAgICB0cmFuc2l0aW9uVXBkYXRlQ29tcG9uZW50TmFtZSA9IG51bGwsXG4gICAgICB0cmFuc2l0aW9uRXZlbnRUaW1lID0gLTEuMSxcbiAgICAgIHRyYW5zaXRpb25FdmVudFR5cGUgPSBudWxsLFxuICAgICAgdHJhbnNpdGlvbkV2ZW50UmVwZWF0VGltZSA9IC0xLjEsXG4gICAgICB0cmFuc2l0aW9uU3VzcGVuZGVkVGltZSA9IC0xLjEsXG4gICAgICByZXRyeUNsYW1wVGltZSA9IC0wLFxuICAgICAgaWRsZUNsYW1wVGltZSA9IC0wLFxuICAgICAgYW5pbWF0aW5nTGFuZXMgPSAwLFxuICAgICAgYW5pbWF0aW5nVGFzayA9IG51bGwsXG4gICAgICB5aWVsZFJlYXNvbiA9IDAsXG4gICAgICB5aWVsZFN0YXJ0VGltZSA9IC0xLjEsXG4gICAgICBjdXJyZW50VXBkYXRlSXNOZXN0ZWQgPSAhMSxcbiAgICAgIG5lc3RlZFVwZGF0ZVNjaGVkdWxlZCA9ICExLFxuICAgICAgY3VycmVudEVudGFuZ2xlZExpc3RlbmVycyA9IG51bGwsXG4gICAgICBjdXJyZW50RW50YW5nbGVkUGVuZGluZ0NvdW50ID0gMCxcbiAgICAgIGN1cnJlbnRFbnRhbmdsZWRMYW5lID0gMCxcbiAgICAgIGN1cnJlbnRFbnRhbmdsZWRBY3Rpb25UaGVuYWJsZSA9IG51bGwsXG4gICAgICBwcmV2T25TdGFydFRyYW5zaXRpb25GaW5pc2ggPSBSZWFjdFNoYXJlZEludGVybmFscy5TO1xuICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlMgPSBmdW5jdGlvbiAodHJhbnNpdGlvbiwgcmV0dXJuVmFsdWUpIHtcbiAgICAgIGdsb2JhbE1vc3RSZWNlbnRUcmFuc2l0aW9uVGltZSA9IG5vdyQxKCk7XG4gICAgICBpZiAoXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiByZXR1cm5WYWx1ZSAmJlxuICAgICAgICBudWxsICE9PSByZXR1cm5WYWx1ZSAmJlxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZXR1cm5WYWx1ZS50aGVuXG4gICAgICApIHtcbiAgICAgICAgaWYgKDAgPiB0cmFuc2l0aW9uU3RhcnRUaW1lICYmIDAgPiB0cmFuc2l0aW9uVXBkYXRlVGltZSkge1xuICAgICAgICAgIHRyYW5zaXRpb25TdGFydFRpbWUgPSBub3coKTtcbiAgICAgICAgICB2YXIgbmV3RXZlbnRUaW1lID0gcmVzb2x2ZUV2ZW50VGltZVN0YW1wKCksXG4gICAgICAgICAgICBuZXdFdmVudFR5cGUgPSByZXNvbHZlRXZlbnRUeXBlKCk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgbmV3RXZlbnRUaW1lICE9PSB0cmFuc2l0aW9uRXZlbnRSZXBlYXRUaW1lIHx8XG4gICAgICAgICAgICBuZXdFdmVudFR5cGUgIT09IHRyYW5zaXRpb25FdmVudFR5cGVcbiAgICAgICAgICApXG4gICAgICAgICAgICB0cmFuc2l0aW9uRXZlbnRSZXBlYXRUaW1lID0gLTEuMTtcbiAgICAgICAgICB0cmFuc2l0aW9uRXZlbnRUaW1lID0gbmV3RXZlbnRUaW1lO1xuICAgICAgICAgIHRyYW5zaXRpb25FdmVudFR5cGUgPSBuZXdFdmVudFR5cGU7XG4gICAgICAgIH1cbiAgICAgICAgZW50YW5nbGVBc3luY0FjdGlvbih0cmFuc2l0aW9uLCByZXR1cm5WYWx1ZSk7XG4gICAgICB9XG4gICAgICBudWxsICE9PSBwcmV2T25TdGFydFRyYW5zaXRpb25GaW5pc2ggJiZcbiAgICAgICAgcHJldk9uU3RhcnRUcmFuc2l0aW9uRmluaXNoKHRyYW5zaXRpb24sIHJldHVyblZhbHVlKTtcbiAgICB9O1xuICAgIHZhciByZXN1bWVkQ2FjaGUgPSBjcmVhdGVDdXJzb3IobnVsbCksXG4gICAgICBSZWFjdFN0cmljdE1vZGVXYXJuaW5ncyA9IHtcbiAgICAgICAgcmVjb3JkVW5zYWZlTGlmZWN5Y2xlV2FybmluZ3M6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgICBmbHVzaFBlbmRpbmdVbnNhZmVMaWZlY3ljbGVXYXJuaW5nczogZnVuY3Rpb24gKCkge30sXG4gICAgICAgIHJlY29yZExlZ2FjeUNvbnRleHRXYXJuaW5nOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgICAgZmx1c2hMZWdhY3lDb250ZXh0V2FybmluZzogZnVuY3Rpb24gKCkge30sXG4gICAgICAgIGRpc2NhcmRQZW5kaW5nV2FybmluZ3M6IGZ1bmN0aW9uICgpIHt9XG4gICAgICB9LFxuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW10sXG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzID0gW10sXG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW10sXG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncyA9IFtdLFxuICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdLFxuICAgICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MgPSBbXSxcbiAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMgPSBuZXcgU2V0KCk7XG4gICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkVW5zYWZlTGlmZWN5Y2xlV2FybmluZ3MgPSBmdW5jdGlvbiAoXG4gICAgICBmaWJlcixcbiAgICAgIGluc3RhbmNlXG4gICAgKSB7XG4gICAgICBkaWRXYXJuQWJvdXRVbnNhZmVMaWZlY3ljbGVzLmhhcyhmaWJlci50eXBlKSB8fFxuICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5zdGFuY2UuY29tcG9uZW50V2lsbE1vdW50ICYmXG4gICAgICAgICAgITAgIT09IGluc3RhbmNlLmNvbXBvbmVudFdpbGxNb3VudC5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICYmXG4gICAgICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLnB1c2goZmliZXIpLFxuICAgICAgICBmaWJlci5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsTW91bnQgJiZcbiAgICAgICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLnB1c2goZmliZXIpLFxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzICYmXG4gICAgICAgICAgITAgIT09XG4gICAgICAgICAgICBpbnN0YW5jZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzLl9fc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmcgJiZcbiAgICAgICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzLnB1c2goZmliZXIpLFxuICAgICAgICBmaWJlci5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSAmJlxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluc3RhbmNlLlVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzICYmXG4gICAgICAgICAgcGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MucHVzaChmaWJlciksXG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGluc3RhbmNlLmNvbXBvbmVudFdpbGxVcGRhdGUgJiZcbiAgICAgICAgICAhMCAhPT0gaW5zdGFuY2UuY29tcG9uZW50V2lsbFVwZGF0ZS5fX3N1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5nICYmXG4gICAgICAgICAgcGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5wdXNoKGZpYmVyKSxcbiAgICAgICAgZmliZXIubW9kZSAmIFN0cmljdExlZ2FjeU1vZGUgJiZcbiAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBpbnN0YW5jZS5VTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSAmJlxuICAgICAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLnB1c2goZmliZXIpKTtcbiAgICB9O1xuICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLmZsdXNoUGVuZGluZ1Vuc2FmZUxpZmVjeWNsZVdhcm5pbmdzID0gZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgMCA8IHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5sZW5ndGggJiZcbiAgICAgICAgKHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICAgIGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLmFkZChcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8IFwiQ29tcG9uZW50XCJcbiAgICAgICAgICApO1xuICAgICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgICB9KSxcbiAgICAgICAgKHBlbmRpbmdDb21wb25lbnRXaWxsTW91bnRXYXJuaW5ncyA9IFtdKSk7XG4gICAgICB2YXIgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgMCA8IHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MubGVuZ3RoICYmXG4gICAgICAgIChwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxNb3VudFdhcm5pbmdzLmZvckVhY2goZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICAgICAgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLmFkZChcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8IFwiQ29tcG9uZW50XCJcbiAgICAgICAgICApO1xuICAgICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgICB9KSxcbiAgICAgICAgKHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXSkpO1xuICAgICAgdmFyIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcbiAgICAgIDAgPCBwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzLmxlbmd0aCAmJlxuICAgICAgICAocGVuZGluZ0NvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICAgIGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcy5hZGQoXG4gICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCBcIkNvbXBvbmVudFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkaWRXYXJuQWJvdXRVbnNhZmVMaWZlY3ljbGVzLmFkZChmaWJlci50eXBlKTtcbiAgICAgICAgfSksXG4gICAgICAgIChwZW5kaW5nQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW10pKTtcbiAgICAgIHZhciBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgMCA8IHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzLmxlbmd0aCAmJlxuICAgICAgICAocGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MuZm9yRWFjaChcbiAgICAgICAgICBmdW5jdGlvbiAoZmliZXIpIHtcbiAgICAgICAgICAgIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXMuYWRkKFxuICAgICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCBcIkNvbXBvbmVudFwiXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZGlkV2FybkFib3V0VW5zYWZlTGlmZWN5Y2xlcy5hZGQoZmliZXIudHlwZSk7XG4gICAgICAgICAgfVxuICAgICAgICApLFxuICAgICAgICAocGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXSkpO1xuICAgICAgdmFyIGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcyA9IG5ldyBTZXQoKTtcbiAgICAgIDAgPCBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmxlbmd0aCAmJlxuICAgICAgICAocGVuZGluZ0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlcikge1xuICAgICAgICAgIGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcy5hZGQoXG4gICAgICAgICAgICBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCBcIkNvbXBvbmVudFwiXG4gICAgICAgICAgKTtcbiAgICAgICAgICBkaWRXYXJuQWJvdXRVbnNhZmVMaWZlY3ljbGVzLmFkZChmaWJlci50eXBlKTtcbiAgICAgICAgfSksXG4gICAgICAgIChwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW10pKTtcbiAgICAgIHZhciBVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgMCA8IHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzLmxlbmd0aCAmJlxuICAgICAgICAocGVuZGluZ1VOU0FGRV9Db21wb25lbnRXaWxsVXBkYXRlV2FybmluZ3MuZm9yRWFjaChmdW5jdGlvbiAoZmliZXIpIHtcbiAgICAgICAgICBVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZVVuaXF1ZU5hbWVzLmFkZChcbiAgICAgICAgICAgIGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoZmliZXIpIHx8IFwiQ29tcG9uZW50XCJcbiAgICAgICAgICApO1xuICAgICAgICAgIGRpZFdhcm5BYm91dFVuc2FmZUxpZmVjeWNsZXMuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgICB9KSxcbiAgICAgICAgKHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW10pKTtcbiAgICAgIGlmICgwIDwgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLnNpemUpIHtcbiAgICAgICAgdmFyIHNvcnRlZE5hbWVzID0gc2V0VG9Tb3J0ZWRTdHJpbmcoXG4gICAgICAgICAgVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzXG4gICAgICAgICk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJVc2luZyBVTlNBRkVfY29tcG9uZW50V2lsbE1vdW50IGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCBhbmQgbWF5IGluZGljYXRlIGJ1Z3MgaW4geW91ciBjb2RlLiBTZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuKiBNb3ZlIGNvZGUgd2l0aCBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkTW91bnQsIGFuZCBzZXQgaW5pdGlhbCBzdGF0ZSBpbiB0aGUgY29uc3RydWN0b3IuXFxuXFxuUGxlYXNlIHVwZGF0ZSB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHM6ICVzXCIsXG4gICAgICAgICAgc29ydGVkTmFtZXNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIDAgPCBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1VuaXF1ZU5hbWVzLnNpemUgJiZcbiAgICAgICAgKChzb3J0ZWROYW1lcyA9IHNldFRvU29ydGVkU3RyaW5nKFxuICAgICAgICAgIFVOU0FGRV9jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXNcbiAgICAgICAgKSksXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJVc2luZyBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyBpbiBzdHJpY3QgbW9kZSBpcyBub3QgcmVjb21tZW5kZWQgYW5kIG1heSBpbmRpY2F0ZSBidWdzIGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvdW5zYWZlLWNvbXBvbmVudC1saWZlY3ljbGVzIGZvciBkZXRhaWxzLlxcblxcbiogTW92ZSBkYXRhIGZldGNoaW5nIGNvZGUgb3Igc2lkZSBlZmZlY3RzIHRvIGNvbXBvbmVudERpZFVwZGF0ZS5cXG4qIElmIHlvdSdyZSB1cGRhdGluZyBzdGF0ZSB3aGVuZXZlciBwcm9wcyBjaGFuZ2UsIHJlZmFjdG9yIHlvdXIgY29kZSB0byB1c2UgbWVtb2l6YXRpb24gdGVjaG5pcXVlcyBvciBtb3ZlIGl0IHRvIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMuIExlYXJuIG1vcmUgYXQ6IGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvZGVyaXZlZC1zdGF0ZVxcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlc1wiLFxuICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICkpO1xuICAgICAgMCA8IFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMuc2l6ZSAmJlxuICAgICAgICAoKHNvcnRlZE5hbWVzID0gc2V0VG9Tb3J0ZWRTdHJpbmcoXG4gICAgICAgICAgVU5TQUZFX2NvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lc1xuICAgICAgICApKSxcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlVzaW5nIFVOU0FGRV9jb21wb25lbnRXaWxsVXBkYXRlIGluIHN0cmljdCBtb2RlIGlzIG5vdCByZWNvbW1lbmRlZCBhbmQgbWF5IGluZGljYXRlIGJ1Z3MgaW4geW91ciBjb2RlLiBTZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuKiBNb3ZlIGRhdGEgZmV0Y2hpbmcgY29kZSBvciBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkVXBkYXRlLlxcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlc1wiLFxuICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICkpO1xuICAgICAgMCA8IGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzLnNpemUgJiZcbiAgICAgICAgKChzb3J0ZWROYW1lcyA9IHNldFRvU29ydGVkU3RyaW5nKGNvbXBvbmVudFdpbGxNb3VudFVuaXF1ZU5hbWVzKSksXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBcImNvbXBvbmVudFdpbGxNb3VudCBoYXMgYmVlbiByZW5hbWVkLCBhbmQgaXMgbm90IHJlY29tbWVuZGVkIGZvciB1c2UuIFNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4qIE1vdmUgY29kZSB3aXRoIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRNb3VudCwgYW5kIHNldCBpbml0aWFsIHN0YXRlIGluIHRoZSBjb25zdHJ1Y3Rvci5cXG4qIFJlbmFtZSBjb21wb25lbnRXaWxsTW91bnQgdG8gVU5TQUZFX2NvbXBvbmVudFdpbGxNb3VudCB0byBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgaW4gbm9uLXN0cmljdCBtb2RlLiBJbiBSZWFjdCAxOC54LCBvbmx5IHRoZSBVTlNBRkVfIG5hbWUgd2lsbCB3b3JrLiBUbyByZW5hbWUgYWxsIGRlcHJlY2F0ZWQgbGlmZWN5Y2xlcyB0byB0aGVpciBuZXcgbmFtZXMsIHlvdSBjYW4gcnVuIGBucHggcmVhY3QtY29kZW1vZCByZW5hbWUtdW5zYWZlLWxpZmVjeWNsZXNgIGluIHlvdXIgcHJvamVjdCBzb3VyY2UgZm9sZGVyLlxcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlc1wiLFxuICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICkpO1xuICAgICAgMCA8IGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHNVbmlxdWVOYW1lcy5zaXplICYmXG4gICAgICAgICgoc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZyhcbiAgICAgICAgICBjb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzVW5pcXVlTmFtZXNcbiAgICAgICAgKSksXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBcImNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHMgaGFzIGJlZW4gcmVuYW1lZCwgYW5kIGlzIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNlLiBTZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay91bnNhZmUtY29tcG9uZW50LWxpZmVjeWNsZXMgZm9yIGRldGFpbHMuXFxuXFxuKiBNb3ZlIGRhdGEgZmV0Y2hpbmcgY29kZSBvciBzaWRlIGVmZmVjdHMgdG8gY29tcG9uZW50RGlkVXBkYXRlLlxcbiogSWYgeW91J3JlIHVwZGF0aW5nIHN0YXRlIHdoZW5ldmVyIHByb3BzIGNoYW5nZSwgcmVmYWN0b3IgeW91ciBjb2RlIHRvIHVzZSBtZW1vaXphdGlvbiB0ZWNobmlxdWVzIG9yIG1vdmUgaXQgdG8gc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcy4gTGVhcm4gbW9yZSBhdDogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9kZXJpdmVkLXN0YXRlXFxuKiBSZW5hbWUgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBVTlNBRkVfY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wcyB0byBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgaW4gbm9uLXN0cmljdCBtb2RlLiBJbiBSZWFjdCAxOC54LCBvbmx5IHRoZSBVTlNBRkVfIG5hbWUgd2lsbCB3b3JrLiBUbyByZW5hbWUgYWxsIGRlcHJlY2F0ZWQgbGlmZWN5Y2xlcyB0byB0aGVpciBuZXcgbmFtZXMsIHlvdSBjYW4gcnVuIGBucHggcmVhY3QtY29kZW1vZCByZW5hbWUtdW5zYWZlLWxpZmVjeWNsZXNgIGluIHlvdXIgcHJvamVjdCBzb3VyY2UgZm9sZGVyLlxcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlc1wiLFxuICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICkpO1xuICAgICAgMCA8IGNvbXBvbmVudFdpbGxVcGRhdGVVbmlxdWVOYW1lcy5zaXplICYmXG4gICAgICAgICgoc29ydGVkTmFtZXMgPSBzZXRUb1NvcnRlZFN0cmluZyhjb21wb25lbnRXaWxsVXBkYXRlVW5pcXVlTmFtZXMpKSxcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIFwiY29tcG9uZW50V2lsbFVwZGF0ZSBoYXMgYmVlbiByZW5hbWVkLCBhbmQgaXMgbm90IHJlY29tbWVuZGVkIGZvciB1c2UuIFNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL3Vuc2FmZS1jb21wb25lbnQtbGlmZWN5Y2xlcyBmb3IgZGV0YWlscy5cXG5cXG4qIE1vdmUgZGF0YSBmZXRjaGluZyBjb2RlIG9yIHNpZGUgZWZmZWN0cyB0byBjb21wb25lbnREaWRVcGRhdGUuXFxuKiBSZW5hbWUgY29tcG9uZW50V2lsbFVwZGF0ZSB0byBVTlNBRkVfY29tcG9uZW50V2lsbFVwZGF0ZSB0byBzdXBwcmVzcyB0aGlzIHdhcm5pbmcgaW4gbm9uLXN0cmljdCBtb2RlLiBJbiBSZWFjdCAxOC54LCBvbmx5IHRoZSBVTlNBRkVfIG5hbWUgd2lsbCB3b3JrLiBUbyByZW5hbWUgYWxsIGRlcHJlY2F0ZWQgbGlmZWN5Y2xlcyB0byB0aGVpciBuZXcgbmFtZXMsIHlvdSBjYW4gcnVuIGBucHggcmVhY3QtY29kZW1vZCByZW5hbWUtdW5zYWZlLWxpZmVjeWNsZXNgIGluIHlvdXIgcHJvamVjdCBzb3VyY2UgZm9sZGVyLlxcblxcblBsZWFzZSB1cGRhdGUgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOiAlc1wiLFxuICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICkpO1xuICAgIH07XG4gICAgdmFyIHBlbmRpbmdMZWdhY3lDb250ZXh0V2FybmluZyA9IG5ldyBNYXAoKSxcbiAgICAgIGRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQgPSBuZXcgU2V0KCk7XG4gICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MucmVjb3JkTGVnYWN5Q29udGV4dFdhcm5pbmcgPSBmdW5jdGlvbiAoXG4gICAgICBmaWJlcixcbiAgICAgIGluc3RhbmNlXG4gICAgKSB7XG4gICAgICB2YXIgc3RyaWN0Um9vdCA9IG51bGw7XG4gICAgICBmb3IgKHZhciBub2RlID0gZmliZXI7IG51bGwgIT09IG5vZGU7IClcbiAgICAgICAgbm9kZS5tb2RlICYgU3RyaWN0TGVnYWN5TW9kZSAmJiAoc3RyaWN0Um9vdCA9IG5vZGUpLFxuICAgICAgICAgIChub2RlID0gbm9kZS5yZXR1cm4pO1xuICAgICAgbnVsbCA9PT0gc3RyaWN0Um9vdFxuICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIkV4cGVjdGVkIHRvIGZpbmQgYSBTdHJpY3RNb2RlIGNvbXBvbmVudCBpbiBhIHN0cmljdCBtb2RlIHRyZWUuIFRoaXMgZXJyb3IgaXMgbGlrZWx5IGNhdXNlZCBieSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICApXG4gICAgICAgIDogIWRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQuaGFzKGZpYmVyLnR5cGUpICYmXG4gICAgICAgICAgKChub2RlID0gcGVuZGluZ0xlZ2FjeUNvbnRleHRXYXJuaW5nLmdldChzdHJpY3RSb290KSksXG4gICAgICAgICAgbnVsbCAhPSBmaWJlci50eXBlLmNvbnRleHRUeXBlcyB8fFxuICAgICAgICAgICAgbnVsbCAhPSBmaWJlci50eXBlLmNoaWxkQ29udGV4dFR5cGVzIHx8XG4gICAgICAgICAgICAobnVsbCAhPT0gaW5zdGFuY2UgJiZcbiAgICAgICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaW5zdGFuY2UuZ2V0Q2hpbGRDb250ZXh0KSkgJiZcbiAgICAgICAgICAodm9pZCAwID09PSBub2RlICYmXG4gICAgICAgICAgICAoKG5vZGUgPSBbXSksIHBlbmRpbmdMZWdhY3lDb250ZXh0V2FybmluZy5zZXQoc3RyaWN0Um9vdCwgbm9kZSkpLFxuICAgICAgICAgIG5vZGUucHVzaChmaWJlcikpO1xuICAgIH07XG4gICAgUmVhY3RTdHJpY3RNb2RlV2FybmluZ3MuZmx1c2hMZWdhY3lDb250ZXh0V2FybmluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHBlbmRpbmdMZWdhY3lDb250ZXh0V2FybmluZy5mb3JFYWNoKGZ1bmN0aW9uIChmaWJlckFycmF5KSB7XG4gICAgICAgIGlmICgwICE9PSBmaWJlckFycmF5Lmxlbmd0aCkge1xuICAgICAgICAgIHZhciBmaXJzdEZpYmVyID0gZmliZXJBcnJheVswXSxcbiAgICAgICAgICAgIHVuaXF1ZU5hbWVzID0gbmV3IFNldCgpO1xuICAgICAgICAgIGZpYmVyQXJyYXkuZm9yRWFjaChmdW5jdGlvbiAoZmliZXIpIHtcbiAgICAgICAgICAgIHVuaXF1ZU5hbWVzLmFkZChnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKGZpYmVyKSB8fCBcIkNvbXBvbmVudFwiKTtcbiAgICAgICAgICAgIGRpZFdhcm5BYm91dExlZ2FjeUNvbnRleHQuYWRkKGZpYmVyLnR5cGUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHZhciBzb3J0ZWROYW1lcyA9IHNldFRvU29ydGVkU3RyaW5nKHVuaXF1ZU5hbWVzKTtcbiAgICAgICAgICBydW5XaXRoRmliZXJJbkRFVihmaXJzdEZpYmVyLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIkxlZ2FjeSBjb250ZXh0IEFQSSBoYXMgYmVlbiBkZXRlY3RlZCB3aXRoaW4gYSBzdHJpY3QtbW9kZSB0cmVlLlxcblxcblRoZSBvbGQgQVBJIHdpbGwgYmUgc3VwcG9ydGVkIGluIGFsbCAxNi54IHJlbGVhc2VzLCBidXQgYXBwbGljYXRpb25zIHVzaW5nIGl0IHNob3VsZCBtaWdyYXRlIHRvIHRoZSBuZXcgdmVyc2lvbi5cXG5cXG5QbGVhc2UgdXBkYXRlIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50czogJXNcXG5cXG5MZWFybiBtb3JlIGFib3V0IHRoaXMgd2FybmluZyBoZXJlOiBodHRwczovL3JlYWN0LmRldi9saW5rL2xlZ2FjeS1jb250ZXh0XCIsXG4gICAgICAgICAgICAgIHNvcnRlZE5hbWVzXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9O1xuICAgIFJlYWN0U3RyaWN0TW9kZVdhcm5pbmdzLmRpc2NhcmRQZW5kaW5nV2FybmluZ3MgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbE1vdW50V2FybmluZ3MgPSBbXTtcbiAgICAgIHBlbmRpbmdDb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzV2FybmluZ3MgPSBbXTtcbiAgICAgIHBlbmRpbmdVTlNBRkVfQ29tcG9uZW50V2lsbFJlY2VpdmVQcm9wc1dhcm5pbmdzID0gW107XG4gICAgICBwZW5kaW5nQ29tcG9uZW50V2lsbFVwZGF0ZVdhcm5pbmdzID0gW107XG4gICAgICBwZW5kaW5nVU5TQUZFX0NvbXBvbmVudFdpbGxVcGRhdGVXYXJuaW5ncyA9IFtdO1xuICAgICAgcGVuZGluZ0xlZ2FjeUNvbnRleHRXYXJuaW5nID0gbmV3IE1hcCgpO1xuICAgIH07XG4gICAgdmFyIGNhbGxDb21wb25lbnQgPSB7XG4gICAgICAgIHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZTogZnVuY3Rpb24gKENvbXBvbmVudCwgcHJvcHMsIHNlY29uZEFyZykge1xuICAgICAgICAgIHZhciB3YXNSZW5kZXJpbmcgPSBpc1JlbmRlcmluZztcbiAgICAgICAgICBpc1JlbmRlcmluZyA9ICEwO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gQ29tcG9uZW50KHByb3BzLCBzZWNvbmRBcmcpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBpc1JlbmRlcmluZyA9IHdhc1JlbmRlcmluZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjYWxsQ29tcG9uZW50SW5ERVYgPVxuICAgICAgICBjYWxsQ29tcG9uZW50LnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKGNhbGxDb21wb25lbnQpLFxuICAgICAgY2FsbFJlbmRlciA9IHtcbiAgICAgICAgcmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lOiBmdW5jdGlvbiAoaW5zdGFuY2UpIHtcbiAgICAgICAgICB2YXIgd2FzUmVuZGVyaW5nID0gaXNSZW5kZXJpbmc7XG4gICAgICAgICAgaXNSZW5kZXJpbmcgPSAhMDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLnJlbmRlcigpO1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBpc1JlbmRlcmluZyA9IHdhc1JlbmRlcmluZztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjYWxsUmVuZGVySW5ERVYgPSBjYWxsUmVuZGVyLnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKGNhbGxSZW5kZXIpLFxuICAgICAgY2FsbENvbXBvbmVudERpZE1vdW50ID0ge1xuICAgICAgICByZWFjdF9zdGFja19ib3R0b21fZnJhbWU6IGZ1bmN0aW9uIChmaW5pc2hlZFdvcmssIGluc3RhbmNlKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZE1vdW50KCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGZpbmlzaGVkV29yaywgZmluaXNoZWRXb3JrLnJldHVybiwgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNhbGxDb21wb25lbnREaWRNb3VudEluREVWID1cbiAgICAgICAgY2FsbENvbXBvbmVudERpZE1vdW50LnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKFxuICAgICAgICAgIGNhbGxDb21wb25lbnREaWRNb3VudFxuICAgICAgICApLFxuICAgICAgY2FsbENvbXBvbmVudERpZFVwZGF0ZSA9IHtcbiAgICAgICAgcmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lOiBmdW5jdGlvbiAoXG4gICAgICAgICAgZmluaXNoZWRXb3JrLFxuICAgICAgICAgIGluc3RhbmNlLFxuICAgICAgICAgIHByZXZQcm9wcyxcbiAgICAgICAgICBwcmV2U3RhdGUsXG4gICAgICAgICAgc25hcHNob3RcbiAgICAgICAgKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGluc3RhbmNlLmNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMsIHByZXZTdGF0ZSwgc25hcHNob3QpO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjYXB0dXJlQ29tbWl0UGhhc2VFcnJvcihmaW5pc2hlZFdvcmssIGZpbmlzaGVkV29yay5yZXR1cm4sIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjYWxsQ29tcG9uZW50RGlkVXBkYXRlSW5ERVYgPVxuICAgICAgICBjYWxsQ29tcG9uZW50RGlkVXBkYXRlLnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKFxuICAgICAgICAgIGNhbGxDb21wb25lbnREaWRVcGRhdGVcbiAgICAgICAgKSxcbiAgICAgIGNhbGxDb21wb25lbnREaWRDYXRjaCA9IHtcbiAgICAgICAgcmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lOiBmdW5jdGlvbiAoaW5zdGFuY2UsIGVycm9ySW5mbykge1xuICAgICAgICAgIHZhciBzdGFjayA9IGVycm9ySW5mby5zdGFjaztcbiAgICAgICAgICBpbnN0YW5jZS5jb21wb25lbnREaWRDYXRjaChlcnJvckluZm8udmFsdWUsIHtcbiAgICAgICAgICAgIGNvbXBvbmVudFN0YWNrOiBudWxsICE9PSBzdGFjayA/IHN0YWNrIDogXCJcIlxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2FsbENvbXBvbmVudERpZENhdGNoSW5ERVYgPVxuICAgICAgICBjYWxsQ29tcG9uZW50RGlkQ2F0Y2gucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoXG4gICAgICAgICAgY2FsbENvbXBvbmVudERpZENhdGNoXG4gICAgICAgICksXG4gICAgICBjYWxsQ29tcG9uZW50V2lsbFVubW91bnQgPSB7XG4gICAgICAgIHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZTogZnVuY3Rpb24gKFxuICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICBpbnN0YW5jZVxuICAgICAgICApIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW5zdGFuY2UuY29tcG9uZW50V2lsbFVubW91bnQoKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY2FwdHVyZUNvbW1pdFBoYXNlRXJyb3IoY3VycmVudCwgbmVhcmVzdE1vdW50ZWRBbmNlc3RvciwgZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNhbGxDb21wb25lbnRXaWxsVW5tb3VudEluREVWID1cbiAgICAgICAgY2FsbENvbXBvbmVudFdpbGxVbm1vdW50LnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKFxuICAgICAgICAgIGNhbGxDb21wb25lbnRXaWxsVW5tb3VudFxuICAgICAgICApLFxuICAgICAgY2FsbENyZWF0ZSA9IHtcbiAgICAgICAgcmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lOiBmdW5jdGlvbiAoZWZmZWN0KSB7XG4gICAgICAgICAgdmFyIGNyZWF0ZSA9IGVmZmVjdC5jcmVhdGU7XG4gICAgICAgICAgZWZmZWN0ID0gZWZmZWN0Lmluc3Q7XG4gICAgICAgICAgY3JlYXRlID0gY3JlYXRlKCk7XG4gICAgICAgICAgcmV0dXJuIChlZmZlY3QuZGVzdHJveSA9IGNyZWF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjYWxsQ3JlYXRlSW5ERVYgPSBjYWxsQ3JlYXRlLnJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZS5iaW5kKGNhbGxDcmVhdGUpLFxuICAgICAgY2FsbERlc3Ryb3kgPSB7XG4gICAgICAgIHJlYWN0X3N0YWNrX2JvdHRvbV9mcmFtZTogZnVuY3Rpb24gKFxuICAgICAgICAgIGN1cnJlbnQsXG4gICAgICAgICAgbmVhcmVzdE1vdW50ZWRBbmNlc3RvcixcbiAgICAgICAgICBkZXN0cm95XG4gICAgICAgICkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBkZXN0cm95KCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNhcHR1cmVDb21taXRQaGFzZUVycm9yKGN1cnJlbnQsIG5lYXJlc3RNb3VudGVkQW5jZXN0b3IsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjYWxsRGVzdHJveUluREVWID0gY2FsbERlc3Ryb3kucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoY2FsbERlc3Ryb3kpLFxuICAgICAgY2FsbExhenlJbml0ID0ge1xuICAgICAgICByZWFjdF9zdGFja19ib3R0b21fZnJhbWU6IGZ1bmN0aW9uIChsYXp5KSB7XG4gICAgICAgICAgdmFyIGluaXQgPSBsYXp5Ll9pbml0O1xuICAgICAgICAgIHJldHVybiBpbml0KGxhenkuX3BheWxvYWQpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgY2FsbExhenlJbml0SW5ERVYgPVxuICAgICAgICBjYWxsTGF6eUluaXQucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoY2FsbExhenlJbml0KSxcbiAgICAgIFN1c3BlbnNlRXhjZXB0aW9uID0gRXJyb3IoXG4gICAgICAgIFwiU3VzcGVuc2UgRXhjZXB0aW9uOiBUaGlzIGlzIG5vdCBhIHJlYWwgZXJyb3IhIEl0J3MgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIGB1c2VgIHRvIGludGVycnVwdCB0aGUgY3VycmVudCByZW5kZXIuIFlvdSBtdXN0IGVpdGhlciByZXRocm93IGl0IGltbWVkaWF0ZWx5LCBvciBtb3ZlIHRoZSBgdXNlYCBjYWxsIG91dHNpZGUgb2YgdGhlIGB0cnkvY2F0Y2hgIGJsb2NrLiBDYXB0dXJpbmcgd2l0aG91dCByZXRocm93aW5nIHdpbGwgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yLlxcblxcblRvIGhhbmRsZSBhc3luYyBlcnJvcnMsIHdyYXAgeW91ciBjb21wb25lbnQgaW4gYW4gZXJyb3IgYm91bmRhcnksIG9yIGNhbGwgdGhlIHByb21pc2UncyBgLmNhdGNoYCBtZXRob2QgYW5kIHBhc3MgdGhlIHJlc3VsdCB0byBgdXNlYC5cIlxuICAgICAgKSxcbiAgICAgIFN1c3BlbnNleUNvbW1pdEV4Y2VwdGlvbiA9IEVycm9yKFxuICAgICAgICBcIlN1c3BlbnNlIEV4Y2VwdGlvbjogVGhpcyBpcyBub3QgYSByZWFsIGVycm9yLCBhbmQgc2hvdWxkIG5vdCBsZWFrIGludG8gdXNlcnNwYWNlLiBJZiB5b3UncmUgc2VlaW5nIHRoaXMsIGl0J3MgbGlrZWx5IGEgYnVnIGluIFJlYWN0LlwiXG4gICAgICApLFxuICAgICAgU3VzcGVuc2VBY3Rpb25FeGNlcHRpb24gPSBFcnJvcihcbiAgICAgICAgXCJTdXNwZW5zZSBFeGNlcHRpb246IFRoaXMgaXMgbm90IGEgcmVhbCBlcnJvciEgSXQncyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgYHVzZUFjdGlvblN0YXRlYCB0byBpbnRlcnJ1cHQgdGhlIGN1cnJlbnQgcmVuZGVyLiBZb3UgbXVzdCBlaXRoZXIgcmV0aHJvdyBpdCBpbW1lZGlhdGVseSwgb3IgbW92ZSB0aGUgYHVzZUFjdGlvblN0YXRlYCBjYWxsIG91dHNpZGUgb2YgdGhlIGB0cnkvY2F0Y2hgIGJsb2NrLiBDYXB0dXJpbmcgd2l0aG91dCByZXRocm93aW5nIHdpbGwgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yLlxcblxcblRvIGhhbmRsZSBhc3luYyBlcnJvcnMsIHdyYXAgeW91ciBjb21wb25lbnQgaW4gYW4gZXJyb3IgYm91bmRhcnkuXCJcbiAgICAgICksXG4gICAgICBub29wU3VzcGVuc2V5Q29tbWl0VGhlbmFibGUgPSB7XG4gICAgICAgIHRoZW46IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgJ0ludGVybmFsIFJlYWN0IGVycm9yOiBBIGxpc3RlbmVyIHdhcyB1bmV4cGVjdGVkbHkgYXR0YWNoZWQgdG8gYSBcIm5vb3BcIiB0aGVuYWJsZS4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuJ1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzdXNwZW5kZWRUaGVuYWJsZSA9IG51bGwsXG4gICAgICBuZWVkc1RvUmVzZXRTdXNwZW5kZWRUaGVuYWJsZURFViA9ICExLFxuICAgICAgdGhlbmFibGVTdGF0ZSQxID0gbnVsbCxcbiAgICAgIHRoZW5hYmxlSW5kZXhDb3VudGVyJDEgPSAwLFxuICAgICAgY3VycmVudERlYnVnSW5mbyA9IG51bGwsXG4gICAgICBkaWRXYXJuQWJvdXRNYXBzO1xuICAgIHZhciBkaWRXYXJuQWJvdXRHZW5lcmF0b3JzID0gKGRpZFdhcm5BYm91dE1hcHMgPSAhMSk7XG4gICAgdmFyIG93bmVySGFzS2V5VXNlV2FybmluZyA9IHt9O1xuICAgIHZhciBvd25lckhhc0Z1bmN0aW9uVHlwZVdhcm5pbmcgPSB7fTtcbiAgICB2YXIgb3duZXJIYXNTeW1ib2xUeXBlV2FybmluZyA9IHt9O1xuICAgIHdhcm5Gb3JNaXNzaW5nS2V5ID0gZnVuY3Rpb24gKHJldHVybkZpYmVyLCB3b3JrSW5Qcm9ncmVzcywgY2hpbGQpIHtcbiAgICAgIGlmIChcbiAgICAgICAgbnVsbCAhPT0gY2hpbGQgJiZcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIGNoaWxkICYmXG4gICAgICAgIGNoaWxkLl9zdG9yZSAmJlxuICAgICAgICAoKCFjaGlsZC5fc3RvcmUudmFsaWRhdGVkICYmIG51bGwgPT0gY2hpbGQua2V5KSB8fFxuICAgICAgICAgIDIgPT09IGNoaWxkLl9zdG9yZS52YWxpZGF0ZWQpXG4gICAgICApIHtcbiAgICAgICAgaWYgKFwib2JqZWN0XCIgIT09IHR5cGVvZiBjaGlsZC5fc3RvcmUpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIlJlYWN0IENvbXBvbmVudCBpbiB3YXJuRm9yTWlzc2luZ0tleSBzaG91bGQgaGF2ZSBhIF9zdG9yZS4gVGhpcyBlcnJvciBpcyBsaWtlbHkgY2F1c2VkIGJ5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICk7XG4gICAgICAgIGNoaWxkLl9zdG9yZS52YWxpZGF0ZWQgPSAxO1xuICAgICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIocmV0dXJuRmliZXIpLFxuICAgICAgICAgIGNvbXBvbmVudEtleSA9IGNvbXBvbmVudE5hbWUgfHwgXCJudWxsXCI7XG4gICAgICAgIGlmICghb3duZXJIYXNLZXlVc2VXYXJuaW5nW2NvbXBvbmVudEtleV0pIHtcbiAgICAgICAgICBvd25lckhhc0tleVVzZVdhcm5pbmdbY29tcG9uZW50S2V5XSA9ICEwO1xuICAgICAgICAgIGNoaWxkID0gY2hpbGQuX293bmVyO1xuICAgICAgICAgIHJldHVybkZpYmVyID0gcmV0dXJuRmliZXIuX2RlYnVnT3duZXI7XG4gICAgICAgICAgdmFyIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSBcIlwiO1xuICAgICAgICAgIHJldHVybkZpYmVyICYmXG4gICAgICAgICAgICBcIm51bWJlclwiID09PSB0eXBlb2YgcmV0dXJuRmliZXIudGFnICYmXG4gICAgICAgICAgICAoY29tcG9uZW50S2V5ID0gZ2V0Q29tcG9uZW50TmFtZUZyb21GaWJlcihyZXR1cm5GaWJlcikpICYmXG4gICAgICAgICAgICAoY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9XG4gICAgICAgICAgICAgIFwiXFxuXFxuQ2hlY2sgdGhlIHJlbmRlciBtZXRob2Qgb2YgYFwiICsgY29tcG9uZW50S2V5ICsgXCJgLlwiKTtcbiAgICAgICAgICBjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvIHx8XG4gICAgICAgICAgICAoY29tcG9uZW50TmFtZSAmJlxuICAgICAgICAgICAgICAoY3VycmVudENvbXBvbmVudEVycm9ySW5mbyA9XG4gICAgICAgICAgICAgICAgXCJcXG5cXG5DaGVjayB0aGUgdG9wLWxldmVsIHJlbmRlciBjYWxsIHVzaW5nIDxcIiArXG4gICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZSArXG4gICAgICAgICAgICAgICAgXCI+LlwiKSk7XG4gICAgICAgICAgdmFyIGNoaWxkT3duZXJBcHBlbmRpeCA9IFwiXCI7XG4gICAgICAgICAgbnVsbCAhPSBjaGlsZCAmJlxuICAgICAgICAgICAgcmV0dXJuRmliZXIgIT09IGNoaWxkICYmXG4gICAgICAgICAgICAoKGNvbXBvbmVudE5hbWUgPSBudWxsKSxcbiAgICAgICAgICAgIFwibnVtYmVyXCIgPT09IHR5cGVvZiBjaGlsZC50YWdcbiAgICAgICAgICAgICAgPyAoY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tRmliZXIoY2hpbGQpKVxuICAgICAgICAgICAgICA6IFwic3RyaW5nXCIgPT09IHR5cGVvZiBjaGlsZC5uYW1lICYmIChjb21wb25lbnROYW1lID0gY2hpbGQubmFtZSksXG4gICAgICAgICAgICBjb21wb25lbnROYW1lICYmXG4gICAgICAgICAgICAgIChjaGlsZE93bmVyQXBwZW5kaXggPVxuICAgICAgICAgICAgICAgIFwiIEl0IHdhcyBwYXNzZWQgYSBjaGlsZCBmcm9tIFwiICsgY29tcG9uZW50TmFtZSArIFwiLlwiKSk7XG4gICAgICAgICAgcnVuV2l0aEZpYmVySW5ERVYod29ya0luUHJvZ3Jlc3MsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJXMlcyBTZWUgaHR0cHM6Ly9yZWFjdC5kZXYvbGluay93YXJuaW5nLWtleXMgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyxcbiAgICAgICAgICAgICAgY3VycmVudENvbXBvbmVudEVycm9ySW5mbyxcbiAgICAgICAgICAgICAgY2hpbGRPd25lckFwcGVuZGl4XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgcmVjb25jaWxlQ2hpbGRGaWJlcnMgPSBjcmVhdGVDaGlsZFJlY29uY2lsZXIoITApLFxuICAgICAgbW91bnRDaGlsZEZpYmVycyA9IGNyZWF0ZUNoaWxkUmVjb25jaWxlcighMSksXG4gICAgICBVcGRhdGVTdGF0ZSA9IDAsXG4gICAgICBSZXBsYWNlU3RhdGUgPSAxLFxuICAgICAgRm9yY2VVcGRhdGUgPSAyLFxuICAgICAgQ2FwdHVyZVVwZGF0ZSA9IDMsXG4gICAgICBoYXNGb3JjZVVwZGF0ZSA9ICExO1xuICAgIHZhciBkaWRXYXJuVXBkYXRlSW5zaWRlVXBkYXRlID0gITE7XG4gICAgdmFyIGN1cnJlbnRseVByb2Nlc3NpbmdRdWV1ZSA9IG51bGw7XG4gICAgdmFyIGRpZFJlYWRGcm9tRW50YW5nbGVkQXN5bmNBY3Rpb24gPSAhMSxcbiAgICAgIGN1cnJlbnRUcmVlSGlkZGVuU3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IobnVsbCksXG4gICAgICBwcmV2RW50YW5nbGVkUmVuZGVyTGFuZXNDdXJzb3IgPSBjcmVhdGVDdXJzb3IoMCksXG4gICAgICBzdXNwZW5zZUhhbmRsZXJTdGFja0N1cnNvciA9IGNyZWF0ZUN1cnNvcihudWxsKSxcbiAgICAgIHNoZWxsQm91bmRhcnkgPSBudWxsLFxuICAgICAgU3VidHJlZVN1c3BlbnNlQ29udGV4dE1hc2sgPSAxLFxuICAgICAgRm9yY2VTdXNwZW5zZUZhbGxiYWNrID0gMixcbiAgICAgIHN1c3BlbnNlU3RhY2tDdXJzb3IgPSBjcmVhdGVDdXJzb3IoMCksXG4gICAgICBOb0ZsYWdzID0gMCxcbiAgICAgIEhhc0VmZmVjdCA9IDEsXG4gICAgICBJbnNlcnRpb24gPSAyLFxuICAgICAgTGF5b3V0ID0gNCxcbiAgICAgIFBhc3NpdmUgPSA4LFxuICAgICAgZGlkV2FyblVuY2FjaGVkR2V0U25hcHNob3Q7XG4gICAgdmFyIGRpZFdhcm5BYm91dE1pc21hdGNoZWRIb29rc0ZvckNvbXBvbmVudCA9IG5ldyBTZXQoKTtcbiAgICB2YXIgZGlkV2FybkFib3V0VXNlV3JhcHBlZEluVHJ5Q2F0Y2ggPSBuZXcgU2V0KCk7XG4gICAgdmFyIGRpZFdhcm5BYm91dEFzeW5jQ2xpZW50Q29tcG9uZW50ID0gbmV3IFNldCgpO1xuICAgIHZhciBkaWRXYXJuQWJvdXRVc2VGb3JtU3RhdGUgPSBuZXcgU2V0KCk7XG4gICAgdmFyIHJlbmRlckxhbmVzID0gMCxcbiAgICAgIGN1cnJlbnRseVJlbmRlcmluZ0ZpYmVyID0gbnVsbCxcbiAgICAgIGN1cnJlbnRIb29rID0gbnVsbCxcbiAgICAgIHdvcmtJblByb2dyZXNzSG9vayA9IG51bGwsXG4gICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlID0gITEsXG4gICAgICBkaWRTY2hlZHVsZVJlbmRlclBoYXNlVXBkYXRlRHVyaW5nVGhpc1Bhc3MgPSAhMSxcbiAgICAgIHNob3VsZERvdWJsZUludm9rZVVzZXJGbnNJbkhvb2tzREVWID0gITEsXG4gICAgICBsb2NhbElkQ291bnRlciA9IDAsXG4gICAgICB0aGVuYWJsZUluZGV4Q291bnRlciA9IDAsXG4gICAgICB0aGVuYWJsZVN0YXRlID0gbnVsbCxcbiAgICAgIGdsb2JhbENsaWVudElkQ291bnRlciA9IDAsXG4gICAgICBSRV9SRU5ERVJfTElNSVQgPSAyNSxcbiAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gbnVsbCxcbiAgICAgIGhvb2tUeXBlc0RldiA9IG51bGwsXG4gICAgICBob29rVHlwZXNVcGRhdGVJbmRleERldiA9IC0xLFxuICAgICAgaWdub3JlUHJldmlvdXNEZXBlbmRlbmNpZXMgPSAhMSxcbiAgICAgIENvbnRleHRPbmx5RGlzcGF0Y2hlciA9IHtcbiAgICAgICAgcmVhZENvbnRleHQ6IHJlYWRDb250ZXh0LFxuICAgICAgICB1c2U6IHVzZSxcbiAgICAgICAgdXNlQ2FsbGJhY2s6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlQ29udGV4dDogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VFZmZlY3Q6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VMYXlvdXRFZmZlY3Q6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gICAgICAgIHVzZU1lbW86IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlUmVkdWNlcjogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VSZWY6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlU3RhdGU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlRGVidWdWYWx1ZTogdGhyb3dJbnZhbGlkSG9va0Vycm9yLFxuICAgICAgICB1c2VEZWZlcnJlZFZhbHVlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gICAgICAgIHVzZVRyYW5zaXRpb246IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlU3luY0V4dGVybmFsU3RvcmU6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlSWQ6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlRm9ybVN0YXRlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gICAgICAgIHVzZUFjdGlvblN0YXRlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gICAgICAgIHVzZU9wdGltaXN0aWM6IHRocm93SW52YWxpZEhvb2tFcnJvcixcbiAgICAgICAgdXNlTWVtb0NhY2hlOiB0aHJvd0ludmFsaWRIb29rRXJyb3IsXG4gICAgICAgIHVzZUNhY2hlUmVmcmVzaDogdGhyb3dJbnZhbGlkSG9va0Vycm9yXG4gICAgICB9O1xuICAgIENvbnRleHRPbmx5RGlzcGF0Y2hlci51c2VFZmZlY3RFdmVudCA9IHRocm93SW52YWxpZEhvb2tFcnJvcjtcbiAgICB2YXIgSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWID0gbnVsbCxcbiAgICAgIEhvb2tzRGlzcGF0Y2hlck9uTW91bnRXaXRoSG9va1R5cGVzSW5ERVYgPSBudWxsLFxuICAgICAgSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IG51bGwsXG4gICAgICBIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSBudWxsLFxuICAgICAgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFViA9IG51bGwsXG4gICAgICBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFViA9IG51bGwsXG4gICAgICBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWID0gbnVsbDtcbiAgICBIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSB7XG4gICAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgfSxcbiAgICAgIHVzZTogdXNlLFxuICAgICAgdXNlQ2FsbGJhY2s6IGZ1bmN0aW9uIChjYWxsYmFjaywgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FsbGJhY2tcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7XG4gICAgICAgIHJldHVybiBtb3VudENhbGxiYWNrKGNhbGxiYWNrLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ29udGV4dFwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgICB9LFxuICAgICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VFZmZlY3RcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7XG4gICAgICAgIHJldHVybiBtb3VudEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW1wZXJhdGl2ZUhhbmRsZVwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICBjaGVja0RlcHNBcmVBcnJheURldihkZXBzKTtcbiAgICAgICAgcmV0dXJuIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbnNlcnRpb25FZmZlY3RcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7XG4gICAgICAgIG1vdW50RWZmZWN0SW1wbCg0LCBJbnNlcnRpb24sIGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VMYXlvdXRFZmZlY3RcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7XG4gICAgICAgIHJldHVybiBtb3VudExheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU1lbW9cIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgY2hlY2tEZXBzQXJlQXJyYXlEZXYoZGVwcyk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBtb3VudE1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVkdWNlclwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gbW91bnRSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZVJlZjogZnVuY3Rpb24gKGluaXRpYWxWYWx1ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVmXCI7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudFJlZihpbml0aWFsVmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTdGF0ZVwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZURlYnVnVmFsdWVcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgIH0sXG4gICAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGluaXRpYWxWYWx1ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRGVmZXJyZWRWYWx1ZVwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnREZWZlcnJlZFZhbHVlKHZhbHVlLCBpbml0aWFsVmFsdWUpO1xuICAgICAgfSxcbiAgICAgIHVzZVRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVRyYW5zaXRpb25cIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50VHJhbnNpdGlvbigpO1xuICAgICAgfSxcbiAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoXG4gICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICApIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVN5bmNFeHRlcm5hbFN0b3JlXCI7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudFN5bmNFeHRlcm5hbFN0b3JlKFxuICAgICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgICBnZXRTbmFwc2hvdCxcbiAgICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIHVzZUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJZFwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRJZCgpO1xuICAgICAgfSxcbiAgICAgIHVzZUZvcm1TdGF0ZTogZnVuY3Rpb24gKGFjdGlvbiwgaW5pdGlhbFN0YXRlKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VGb3JtU3RhdGVcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgd2Fybk9uVXNlRm9ybVN0YXRlSW5EZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50QWN0aW9uU3RhdGUoYWN0aW9uLCBpbml0aWFsU3RhdGUpO1xuICAgICAgfSxcbiAgICAgIHVzZUFjdGlvblN0YXRlOiBmdW5jdGlvbiAoYWN0aW9uLCBpbml0aWFsU3RhdGUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUFjdGlvblN0YXRlXCI7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudEFjdGlvblN0YXRlKGFjdGlvbiwgaW5pdGlhbFN0YXRlKTtcbiAgICAgIH0sXG4gICAgICB1c2VPcHRpbWlzdGljOiBmdW5jdGlvbiAocGFzc3Rocm91Z2gpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU9wdGltaXN0aWNcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50T3B0aW1pc3RpYyhwYXNzdGhyb3VnaCk7XG4gICAgICB9LFxuICAgICAgdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6IHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzLFxuICAgICAgdXNlTWVtb0NhY2hlOiB1c2VNZW1vQ2FjaGUsXG4gICAgICB1c2VDYWNoZVJlZnJlc2g6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUNhY2hlUmVmcmVzaFwiO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRSZWZyZXNoKCk7XG4gICAgICB9LFxuICAgICAgdXNlRWZmZWN0RXZlbnQ6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRWZmZWN0RXZlbnRcIjtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50RXZlbnQoY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH07XG4gICAgSG9va3NEaXNwYXRjaGVyT25Nb3VudFdpdGhIb29rVHlwZXNJbkRFViA9IHtcbiAgICAgIHJlYWRDb250ZXh0OiBmdW5jdGlvbiAoY29udGV4dCkge1xuICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgICB9LFxuICAgICAgdXNlOiB1c2UsXG4gICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDYWxsYmFja1wiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDb250ZXh0XCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgICB9LFxuICAgICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VFZmZlY3RcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW1wZXJhdGl2ZUhhbmRsZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbnNlcnRpb25FZmZlY3RcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIG1vdW50RWZmZWN0SW1wbCg0LCBJbnNlcnRpb24sIGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VMYXlvdXRFZmZlY3RcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudExheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU1lbW9cIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBtb3VudE1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVkdWNlclwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIG1vdW50UmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWY6IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVJlZlwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50UmVmKGluaXRpYWxWYWx1ZSk7XG4gICAgICB9LFxuICAgICAgdXNlU3RhdGU6IGZ1bmN0aW9uIChpbml0aWFsU3RhdGUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVN0YXRlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZURlYnVnVmFsdWVcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB9LFxuICAgICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBpbml0aWFsVmFsdWUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZURlZmVycmVkVmFsdWVcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudERlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSk7XG4gICAgICB9LFxuICAgICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlVHJhbnNpdGlvblwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50VHJhbnNpdGlvbigpO1xuICAgICAgfSxcbiAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoXG4gICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICApIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVN5bmNFeHRlcm5hbFN0b3JlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICB1c2VJZDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSWRcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudElkKCk7XG4gICAgICB9LFxuICAgICAgdXNlQWN0aW9uU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24sIGluaXRpYWxTdGF0ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQWN0aW9uU3RhdGVcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudEFjdGlvblN0YXRlKGFjdGlvbiwgaW5pdGlhbFN0YXRlKTtcbiAgICAgIH0sXG4gICAgICB1c2VGb3JtU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24sIGluaXRpYWxTdGF0ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRm9ybVN0YXRlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB3YXJuT25Vc2VGb3JtU3RhdGVJbkRldigpO1xuICAgICAgICByZXR1cm4gbW91bnRBY3Rpb25TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSk7XG4gICAgICB9LFxuICAgICAgdXNlT3B0aW1pc3RpYzogZnVuY3Rpb24gKHBhc3N0aHJvdWdoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VPcHRpbWlzdGljXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRPcHRpbWlzdGljKHBhc3N0aHJvdWdoKTtcbiAgICAgIH0sXG4gICAgICB1c2VIb3N0VHJhbnNpdGlvblN0YXR1czogdXNlSG9zdFRyYW5zaXRpb25TdGF0dXMsXG4gICAgICB1c2VNZW1vQ2FjaGU6IHVzZU1lbW9DYWNoZSxcbiAgICAgIHVzZUNhY2hlUmVmcmVzaDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FjaGVSZWZyZXNoXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRSZWZyZXNoKCk7XG4gICAgICB9LFxuICAgICAgdXNlRWZmZWN0RXZlbnQ6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRWZmZWN0RXZlbnRcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudEV2ZW50KGNhbGxiYWNrKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVYgPSB7XG4gICAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgfSxcbiAgICAgIHVzZTogdXNlLFxuICAgICAgdXNlQ2FsbGJhY2s6IGZ1bmN0aW9uIChjYWxsYmFjaywgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FsbGJhY2tcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUNvbnRleHRcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICAgIH0sXG4gICAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUVmZmVjdFwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdXBkYXRlRWZmZWN0SW1wbCgyMDQ4LCBQYXNzaXZlLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW1wZXJhdGl2ZUhhbmRsZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW5zZXJ0aW9uRWZmZWN0XCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlRWZmZWN0SW1wbCg0LCBJbnNlcnRpb24sIGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VMYXlvdXRFZmZlY3RcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKDQsIExheW91dCwgY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VNZW1vXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVkdWNlclwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiB1cGRhdGVSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZVJlZjogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVmXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH0sXG4gICAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlU3RhdGVcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlUmVkdWNlcihiYXNpY1N0YXRlUmVkdWNlcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRGVidWdWYWx1ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIH0sXG4gICAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGluaXRpYWxWYWx1ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRGVmZXJyZWRWYWx1ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZURlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSk7XG4gICAgICB9LFxuICAgICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlVHJhbnNpdGlvblwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVRyYW5zaXRpb24oKTtcbiAgICAgIH0sXG4gICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24gKFxuICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgIGdldFNuYXBzaG90LFxuICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICAgKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTeW5jRXh0ZXJuYWxTdG9yZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVN5bmNFeHRlcm5hbFN0b3JlKFxuICAgICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgICBnZXRTbmFwc2hvdCxcbiAgICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICAgICApO1xuICAgICAgfSxcbiAgICAgIHVzZUlkOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJZFwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGU7XG4gICAgICB9LFxuICAgICAgdXNlRm9ybVN0YXRlOiBmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VGb3JtU3RhdGVcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHdhcm5PblVzZUZvcm1TdGF0ZUluRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVBY3Rpb25TdGF0ZShhY3Rpb24pO1xuICAgICAgfSxcbiAgICAgIHVzZUFjdGlvblN0YXRlOiBmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VBY3Rpb25TdGF0ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUFjdGlvblN0YXRlKGFjdGlvbik7XG4gICAgICB9LFxuICAgICAgdXNlT3B0aW1pc3RpYzogZnVuY3Rpb24gKHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VPcHRpbWlzdGljXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlT3B0aW1pc3RpYyhwYXNzdGhyb3VnaCwgcmVkdWNlcik7XG4gICAgICB9LFxuICAgICAgdXNlSG9zdFRyYW5zaXRpb25TdGF0dXM6IHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzLFxuICAgICAgdXNlTWVtb0NhY2hlOiB1c2VNZW1vQ2FjaGUsXG4gICAgICB1c2VDYWNoZVJlZnJlc2g6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUNhY2hlUmVmcmVzaFwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVdvcmtJblByb2dyZXNzSG9vaygpLm1lbW9pemVkU3RhdGU7XG4gICAgICB9LFxuICAgICAgdXNlRWZmZWN0RXZlbnQ6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRWZmZWN0RXZlbnRcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVFdmVudChjYWxsYmFjayk7XG4gICAgICB9XG4gICAgfTtcbiAgICBIb29rc0Rpc3BhdGNoZXJPblJlcmVuZGVySW5ERVYgPSB7XG4gICAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgfSxcbiAgICAgIHVzZTogdXNlLFxuICAgICAgdXNlQ2FsbGJhY2s6IGZ1bmN0aW9uIChjYWxsYmFjaywgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FsbGJhY2tcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUNvbnRleHRcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICAgIH0sXG4gICAgICB1c2VFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUVmZmVjdFwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdXBkYXRlRWZmZWN0SW1wbCgyMDQ4LCBQYXNzaXZlLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW1wZXJhdGl2ZUhhbmRsZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW5zZXJ0aW9uRWZmZWN0XCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlRWZmZWN0SW1wbCg0LCBJbnNlcnRpb24sIGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VMYXlvdXRFZmZlY3RcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKDQsIExheW91dCwgY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VNZW1vXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlTWVtbyhjcmVhdGUsIGRlcHMpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZVJlZHVjZXI6IGZ1bmN0aW9uIChyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VSZWR1Y2VyXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uUmVyZW5kZXJJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gcmVyZW5kZXJSZWR1Y2VyKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZVJlZjogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVmXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH0sXG4gICAgICB1c2VTdGF0ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlU3RhdGVcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiByZXJlbmRlclJlZHVjZXIoYmFzaWNTdGF0ZVJlZHVjZXIpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZURlYnVnVmFsdWVcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB9LFxuICAgICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBpbml0aWFsVmFsdWUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZURlZmVycmVkVmFsdWVcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiByZXJlbmRlckRlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSk7XG4gICAgICB9LFxuICAgICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlVHJhbnNpdGlvblwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyVHJhbnNpdGlvbigpO1xuICAgICAgfSxcbiAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoXG4gICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICApIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVN5bmNFeHRlcm5hbFN0b3JlXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlU3luY0V4dGVybmFsU3RvcmUoXG4gICAgICAgICAgc3Vic2NyaWJlLFxuICAgICAgICAgIGdldFNuYXBzaG90LFxuICAgICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICAgICk7XG4gICAgICB9LFxuICAgICAgdXNlSWQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUlkXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH0sXG4gICAgICB1c2VGb3JtU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUZvcm1TdGF0ZVwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgd2Fybk9uVXNlRm9ybVN0YXRlSW5EZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyQWN0aW9uU3RhdGUoYWN0aW9uKTtcbiAgICAgIH0sXG4gICAgICB1c2VBY3Rpb25TdGF0ZTogZnVuY3Rpb24gKGFjdGlvbikge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQWN0aW9uU3RhdGVcIjtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiByZXJlbmRlckFjdGlvblN0YXRlKGFjdGlvbik7XG4gICAgICB9LFxuICAgICAgdXNlT3B0aW1pc3RpYzogZnVuY3Rpb24gKHBhc3N0aHJvdWdoLCByZWR1Y2VyKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VPcHRpbWlzdGljXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJPcHRpbWlzdGljKHBhc3N0aHJvdWdoLCByZWR1Y2VyKTtcbiAgICAgIH0sXG4gICAgICB1c2VIb3N0VHJhbnNpdGlvblN0YXR1czogdXNlSG9zdFRyYW5zaXRpb25TdGF0dXMsXG4gICAgICB1c2VNZW1vQ2FjaGU6IHVzZU1lbW9DYWNoZSxcbiAgICAgIHVzZUNhY2hlUmVmcmVzaDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FjaGVSZWZyZXNoXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH0sXG4gICAgICB1c2VFZmZlY3RFdmVudDogZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VFZmZlY3RFdmVudFwiO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUV2ZW50KGNhbGxiYWNrKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVYgPSB7XG4gICAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgd2FybkludmFsaWRDb250ZXh0QWNjZXNzKCk7XG4gICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICAgIH0sXG4gICAgICB1c2U6IGZ1bmN0aW9uICh1c2FibGUpIHtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHJldHVybiB1c2UodXNhYmxlKTtcbiAgICAgIH0sXG4gICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDYWxsYmFja1wiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50Q2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDb250ZXh0XCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgICB9LFxuICAgICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VFZmZlY3RcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW1wZXJhdGl2ZUhhbmRsZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50SW1wZXJhdGl2ZUhhbmRsZShyZWYsIGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW5zZXJ0aW9uRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbnNlcnRpb25FZmZlY3RcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIG1vdW50RWZmZWN0SW1wbCg0LCBJbnNlcnRpb24sIGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlTGF5b3V0RWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VMYXlvdXRFZmZlY3RcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudExheW91dEVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU1lbW9cIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25Nb3VudEluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBtb3VudE1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVkdWNlclwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPbk1vdW50SW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIG1vdW50UmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWY6IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVJlZlwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50UmVmKGluaXRpYWxWYWx1ZSk7XG4gICAgICB9LFxuICAgICAgdXNlU3RhdGU6IGZ1bmN0aW9uIChpbml0aWFsU3RhdGUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVN0YXRlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uTW91bnRJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gbW91bnRTdGF0ZShpbml0aWFsU3RhdGUpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBwcmV2RGlzcGF0Y2hlcjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVzZURlYnVnVmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZURlYnVnVmFsdWVcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICB9LFxuICAgICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBpbml0aWFsVmFsdWUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZURlZmVycmVkVmFsdWVcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudERlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSk7XG4gICAgICB9LFxuICAgICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlVHJhbnNpdGlvblwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50VHJhbnNpdGlvbigpO1xuICAgICAgfSxcbiAgICAgIHVzZVN5bmNFeHRlcm5hbFN0b3JlOiBmdW5jdGlvbiAoXG4gICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICApIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVN5bmNFeHRlcm5hbFN0b3JlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICB1c2VJZDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSWRcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudElkKCk7XG4gICAgICB9LFxuICAgICAgdXNlRm9ybVN0YXRlOiBmdW5jdGlvbiAoYWN0aW9uLCBpbml0aWFsU3RhdGUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUZvcm1TdGF0ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50QWN0aW9uU3RhdGUoYWN0aW9uLCBpbml0aWFsU3RhdGUpO1xuICAgICAgfSxcbiAgICAgIHVzZUFjdGlvblN0YXRlOiBmdW5jdGlvbiAoYWN0aW9uLCBpbml0aWFsU3RhdGUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUFjdGlvblN0YXRlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRBY3Rpb25TdGF0ZShhY3Rpb24sIGluaXRpYWxTdGF0ZSk7XG4gICAgICB9LFxuICAgICAgdXNlT3B0aW1pc3RpYzogZnVuY3Rpb24gKHBhc3N0aHJvdWdoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VPcHRpbWlzdGljXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICBtb3VudEhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gbW91bnRPcHRpbWlzdGljKHBhc3N0aHJvdWdoKTtcbiAgICAgIH0sXG4gICAgICB1c2VNZW1vQ2FjaGU6IGZ1bmN0aW9uIChzaXplKSB7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICByZXR1cm4gdXNlTWVtb0NhY2hlKHNpemUpO1xuICAgICAgfSxcbiAgICAgIHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOiB1c2VIb3N0VHJhbnNpdGlvblN0YXR1cyxcbiAgICAgIHVzZUNhY2hlUmVmcmVzaDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FjaGVSZWZyZXNoXCI7XG4gICAgICAgIG1vdW50SG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiBtb3VudFJlZnJlc2goKTtcbiAgICAgIH0sXG4gICAgICB1c2VFZmZlY3RFdmVudDogZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VFZmZlY3RFdmVudFwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgbW91bnRIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIG1vdW50RXZlbnQoY2FsbGJhY2spO1xuICAgICAgfVxuICAgIH07XG4gICAgSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVYgPSB7XG4gICAgICByZWFkQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgd2FybkludmFsaWRDb250ZXh0QWNjZXNzKCk7XG4gICAgICAgIHJldHVybiByZWFkQ29udGV4dChjb250ZXh0KTtcbiAgICAgIH0sXG4gICAgICB1c2U6IGZ1bmN0aW9uICh1c2FibGUpIHtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHJldHVybiB1c2UodXNhYmxlKTtcbiAgICAgIH0sXG4gICAgICB1c2VDYWxsYmFjazogZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDYWxsYmFja1wiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlQ29udGV4dDogZnVuY3Rpb24gKGNvbnRleHQpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUNvbnRleHRcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgICB9LFxuICAgICAgdXNlRWZmZWN0OiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VFZmZlY3RcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB1cGRhdGVFZmZlY3RJbXBsKDIwNDgsIFBhc3NpdmUsIGNyZWF0ZSwgZGVwcyk7XG4gICAgICB9LFxuICAgICAgdXNlSW1wZXJhdGl2ZUhhbmRsZTogZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VJbXBlcmF0aXZlSGFuZGxlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUltcGVyYXRpdmVIYW5kbGUocmVmLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUluc2VydGlvbkVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW5zZXJ0aW9uRWZmZWN0XCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgSW5zZXJ0aW9uLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUxheW91dEVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlTGF5b3V0RWZmZWN0XCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZUVmZmVjdEltcGwoNCwgTGF5b3V0LCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZU1lbW86IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU1lbW9cIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZU1lbW8oY3JlYXRlLCBkZXBzKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWR1Y2VyOiBmdW5jdGlvbiAocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlUmVkdWNlclwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWY6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVJlZlwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlO1xuICAgICAgfSxcbiAgICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTdGF0ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlUmVkdWNlcihiYXNpY1N0YXRlUmVkdWNlcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlRGVidWdWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRGVidWdWYWx1ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICB9LFxuICAgICAgdXNlRGVmZXJyZWRWYWx1ZTogZnVuY3Rpb24gKHZhbHVlLCBpbml0aWFsVmFsdWUpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZURlZmVycmVkVmFsdWVcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlRGVmZXJyZWRWYWx1ZSh2YWx1ZSwgaW5pdGlhbFZhbHVlKTtcbiAgICAgIH0sXG4gICAgICB1c2VUcmFuc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VUcmFuc2l0aW9uXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZVRyYW5zaXRpb24oKTtcbiAgICAgIH0sXG4gICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24gKFxuICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgIGdldFNuYXBzaG90LFxuICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICAgKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTeW5jRXh0ZXJuYWxTdG9yZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICB1c2VJZDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSWRcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH0sXG4gICAgICB1c2VGb3JtU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUZvcm1TdGF0ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVBY3Rpb25TdGF0ZShhY3Rpb24pO1xuICAgICAgfSxcbiAgICAgIHVzZUFjdGlvblN0YXRlOiBmdW5jdGlvbiAoYWN0aW9uKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VBY3Rpb25TdGF0ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVBY3Rpb25TdGF0ZShhY3Rpb24pO1xuICAgICAgfSxcbiAgICAgIHVzZU9wdGltaXN0aWM6IGZ1bmN0aW9uIChwYXNzdGhyb3VnaCwgcmVkdWNlcikge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlT3B0aW1pc3RpY1wiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVPcHRpbWlzdGljKHBhc3N0aHJvdWdoLCByZWR1Y2VyKTtcbiAgICAgIH0sXG4gICAgICB1c2VNZW1vQ2FjaGU6IGZ1bmN0aW9uIChzaXplKSB7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICByZXR1cm4gdXNlTWVtb0NhY2hlKHNpemUpO1xuICAgICAgfSxcbiAgICAgIHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOiB1c2VIb3N0VHJhbnNpdGlvblN0YXR1cyxcbiAgICAgIHVzZUNhY2hlUmVmcmVzaDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FjaGVSZWZyZXNoXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH0sXG4gICAgICB1c2VFZmZlY3RFdmVudDogZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VFZmZlY3RFdmVudFwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVFdmVudChjYWxsYmFjayk7XG4gICAgICB9XG4gICAgfTtcbiAgICBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25SZXJlbmRlckluREVWID0ge1xuICAgICAgcmVhZENvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICAgIHdhcm5JbnZhbGlkQ29udGV4dEFjY2VzcygpO1xuICAgICAgICByZXR1cm4gcmVhZENvbnRleHQoY29udGV4dCk7XG4gICAgICB9LFxuICAgICAgdXNlOiBmdW5jdGlvbiAodXNhYmxlKSB7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICByZXR1cm4gdXNlKHVzYWJsZSk7XG4gICAgICB9LFxuICAgICAgdXNlQ2FsbGJhY2s6IGZ1bmN0aW9uIChjYWxsYmFjaywgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FsbGJhY2tcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlQ2FsbGJhY2soY2FsbGJhY2ssIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUNvbnRleHQ6IGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VDb250ZXh0XCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KGNvbnRleHQpO1xuICAgICAgfSxcbiAgICAgIHVzZUVmZmVjdDogZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRWZmZWN0XCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdXBkYXRlRWZmZWN0SW1wbCgyMDQ4LCBQYXNzaXZlLCBjcmVhdGUsIGRlcHMpO1xuICAgICAgfSxcbiAgICAgIHVzZUltcGVyYXRpdmVIYW5kbGU6IGZ1bmN0aW9uIChyZWYsIGNyZWF0ZSwgZGVwcykge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSW1wZXJhdGl2ZUhhbmRsZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VJbnNlcnRpb25FZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUluc2VydGlvbkVmZmVjdFwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKDQsIEluc2VydGlvbiwgY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VMYXlvdXRFZmZlY3Q6IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUxheW91dEVmZmVjdFwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVFZmZlY3RJbXBsKDQsIExheW91dCwgY3JlYXRlLCBkZXBzKTtcbiAgICAgIH0sXG4gICAgICB1c2VNZW1vOiBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VNZW1vXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgdmFyIHByZXZEaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IEludmFsaWROZXN0ZWRIb29rc0Rpc3BhdGNoZXJPblVwZGF0ZUluREVWO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiB1cGRhdGVNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuSCA9IHByZXZEaXNwYXRjaGVyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXNlUmVkdWNlcjogZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVJlZHVjZXJcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICB2YXIgcHJldkRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gSW52YWxpZE5lc3RlZEhvb2tzRGlzcGF0Y2hlck9uVXBkYXRlSW5ERVY7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHJlcmVuZGVyUmVkdWNlcihyZWR1Y2VyLCBpbml0aWFsQXJnLCBpbml0KTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VSZWY6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZVJlZlwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVXb3JrSW5Qcm9ncmVzc0hvb2soKS5tZW1vaXplZFN0YXRlO1xuICAgICAgfSxcbiAgICAgIHVzZVN0YXRlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTdGF0ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHZhciBwcmV2RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkg7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLkggPSBJbnZhbGlkTmVzdGVkSG9va3NEaXNwYXRjaGVyT25VcGRhdGVJbkRFVjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gcmVyZW5kZXJSZWR1Y2VyKGJhc2ljU3RhdGVSZWR1Y2VyKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy5IID0gcHJldkRpc3BhdGNoZXI7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1c2VEZWJ1Z1ZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VEZWJ1Z1ZhbHVlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgIH0sXG4gICAgICB1c2VEZWZlcnJlZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUsIGluaXRpYWxWYWx1ZSkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlRGVmZXJyZWRWYWx1ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiByZXJlbmRlckRlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSk7XG4gICAgICB9LFxuICAgICAgdXNlVHJhbnNpdGlvbjogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlVHJhbnNpdGlvblwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiByZXJlbmRlclRyYW5zaXRpb24oKTtcbiAgICAgIH0sXG4gICAgICB1c2VTeW5jRXh0ZXJuYWxTdG9yZTogZnVuY3Rpb24gKFxuICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgIGdldFNuYXBzaG90LFxuICAgICAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICAgKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VTeW5jRXh0ZXJuYWxTdG9yZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICAgICAgICBzdWJzY3JpYmUsXG4gICAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgICAgZ2V0U2VydmVyU25hcHNob3RcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICB1c2VJZDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlSWRcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH0sXG4gICAgICB1c2VGb3JtU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUZvcm1TdGF0ZVwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiByZXJlbmRlckFjdGlvblN0YXRlKGFjdGlvbik7XG4gICAgICB9LFxuICAgICAgdXNlQWN0aW9uU3RhdGU6IGZ1bmN0aW9uIChhY3Rpb24pIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZUFjdGlvblN0YXRlXCI7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICB1cGRhdGVIb29rVHlwZXNEZXYoKTtcbiAgICAgICAgcmV0dXJuIHJlcmVuZGVyQWN0aW9uU3RhdGUoYWN0aW9uKTtcbiAgICAgIH0sXG4gICAgICB1c2VPcHRpbWlzdGljOiBmdW5jdGlvbiAocGFzc3Rocm91Z2gsIHJlZHVjZXIpIHtcbiAgICAgICAgY3VycmVudEhvb2tOYW1lSW5EZXYgPSBcInVzZU9wdGltaXN0aWNcIjtcbiAgICAgICAgd2FybkludmFsaWRIb29rQWNjZXNzKCk7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gcmVyZW5kZXJPcHRpbWlzdGljKHBhc3N0aHJvdWdoLCByZWR1Y2VyKTtcbiAgICAgIH0sXG4gICAgICB1c2VNZW1vQ2FjaGU6IGZ1bmN0aW9uIChzaXplKSB7XG4gICAgICAgIHdhcm5JbnZhbGlkSG9va0FjY2VzcygpO1xuICAgICAgICByZXR1cm4gdXNlTWVtb0NhY2hlKHNpemUpO1xuICAgICAgfSxcbiAgICAgIHVzZUhvc3RUcmFuc2l0aW9uU3RhdHVzOiB1c2VIb3N0VHJhbnNpdGlvblN0YXR1cyxcbiAgICAgIHVzZUNhY2hlUmVmcmVzaDogZnVuY3Rpb24gKCkge1xuICAgICAgICBjdXJyZW50SG9va05hbWVJbkRldiA9IFwidXNlQ2FjaGVSZWZyZXNoXCI7XG4gICAgICAgIHVwZGF0ZUhvb2tUeXBlc0RldigpO1xuICAgICAgICByZXR1cm4gdXBkYXRlV29ya0luUHJvZ3Jlc3NIb29rKCkubWVtb2l6ZWRTdGF0ZTtcbiAgICAgIH0sXG4gICAgICB1c2VFZmZlY3RFdmVudDogZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gICAgICAgIGN1cnJlbnRIb29rTmFtZUluRGV2ID0gXCJ1c2VFZmZlY3RFdmVudFwiO1xuICAgICAgICB3YXJuSW52YWxpZEhvb2tBY2Nlc3MoKTtcbiAgICAgICAgdXBkYXRlSG9va1R5cGVzRGV2KCk7XG4gICAgICAgIHJldHVybiB1cGRhdGVFdmVudChjYWxsYmFjayk7XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgZmFrZUludGVybmFsSW5zdGFuY2UgPSB7fTtcbiAgICB2YXIgZGlkV2FybkFib3V0U3RhdGVBc3NpZ25tZW50Rm9yQ29tcG9uZW50ID0gbmV3IFNldCgpO1xuICAgIHZhciBkaWRXYXJuQWJvdXRVbmluaXRpYWxpemVkU3RhdGUgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGRpZFdhcm5BYm91dEdldFNuYXBzaG90QmVmb3JlVXBkYXRlV2l0aG91dERpZFVwZGF0ZSA9IG5ldyBTZXQoKTtcbiAgICB2YXIgZGlkV2FybkFib3V0TGVnYWN5TGlmZWN5Y2xlc0FuZERlcml2ZWRTdGF0ZSA9IG5ldyBTZXQoKTtcbiAgICB2YXIgZGlkV2FybkFib3V0RGlyZWN0bHlBc3NpZ25pbmdQcm9wc1RvU3RhdGUgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGRpZFdhcm5BYm91dFVuZGVmaW5lZERlcml2ZWRTdGF0ZSA9IG5ldyBTZXQoKTtcbiAgICB2YXIgZGlkV2FybkFib3V0Q29udGV4dFR5cGVzJDEgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGRpZFdhcm5BYm91dENoaWxkQ29udGV4dFR5cGVzID0gbmV3IFNldCgpO1xuICAgIHZhciBkaWRXYXJuQWJvdXRJbnZhbGlkYXRlQ29udGV4dFR5cGUgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGRpZFdhcm5PbkludmFsaWRDYWxsYmFjayA9IG5ldyBTZXQoKTtcbiAgICBPYmplY3QuZnJlZXplKGZha2VJbnRlcm5hbEluc3RhbmNlKTtcbiAgICB2YXIgY2xhc3NDb21wb25lbnRVcGRhdGVyID0ge1xuICAgICAgICBlbnF1ZXVlU2V0U3RhdGU6IGZ1bmN0aW9uIChpbnN0LCBwYXlsb2FkLCBjYWxsYmFjaykge1xuICAgICAgICAgIGluc3QgPSBpbnN0Ll9yZWFjdEludGVybmFscztcbiAgICAgICAgICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGluc3QpLFxuICAgICAgICAgICAgdXBkYXRlID0gY3JlYXRlVXBkYXRlKGxhbmUpO1xuICAgICAgICAgIHVwZGF0ZS5wYXlsb2FkID0gcGF5bG9hZDtcbiAgICAgICAgICB2b2lkIDAgIT09IGNhbGxiYWNrICYmXG4gICAgICAgICAgICBudWxsICE9PSBjYWxsYmFjayAmJlxuICAgICAgICAgICAgKHdhcm5PbkludmFsaWRDYWxsYmFjayhjYWxsYmFjayksICh1cGRhdGUuY2FsbGJhY2sgPSBjYWxsYmFjaykpO1xuICAgICAgICAgIHBheWxvYWQgPSBlbnF1ZXVlVXBkYXRlKGluc3QsIHVwZGF0ZSwgbGFuZSk7XG4gICAgICAgICAgbnVsbCAhPT0gcGF5bG9hZCAmJlxuICAgICAgICAgICAgKHN0YXJ0VXBkYXRlVGltZXJCeUxhbmUobGFuZSwgXCJ0aGlzLnNldFN0YXRlKClcIiwgaW5zdCksXG4gICAgICAgICAgICBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocGF5bG9hZCwgaW5zdCwgbGFuZSksXG4gICAgICAgICAgICBlbnRhbmdsZVRyYW5zaXRpb25zKHBheWxvYWQsIGluc3QsIGxhbmUpKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKGluc3QsIHBheWxvYWQsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgaW5zdCA9IGluc3QuX3JlYWN0SW50ZXJuYWxzO1xuICAgICAgICAgIHZhciBsYW5lID0gcmVxdWVzdFVwZGF0ZUxhbmUoaW5zdCksXG4gICAgICAgICAgICB1cGRhdGUgPSBjcmVhdGVVcGRhdGUobGFuZSk7XG4gICAgICAgICAgdXBkYXRlLnRhZyA9IFJlcGxhY2VTdGF0ZTtcbiAgICAgICAgICB1cGRhdGUucGF5bG9hZCA9IHBheWxvYWQ7XG4gICAgICAgICAgdm9pZCAwICE9PSBjYWxsYmFjayAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gY2FsbGJhY2sgJiZcbiAgICAgICAgICAgICh3YXJuT25JbnZhbGlkQ2FsbGJhY2soY2FsbGJhY2spLCAodXBkYXRlLmNhbGxiYWNrID0gY2FsbGJhY2spKTtcbiAgICAgICAgICBwYXlsb2FkID0gZW5xdWV1ZVVwZGF0ZShpbnN0LCB1cGRhdGUsIGxhbmUpO1xuICAgICAgICAgIG51bGwgIT09IHBheWxvYWQgJiZcbiAgICAgICAgICAgIChzdGFydFVwZGF0ZVRpbWVyQnlMYW5lKGxhbmUsIFwidGhpcy5yZXBsYWNlU3RhdGUoKVwiLCBpbnN0KSxcbiAgICAgICAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihwYXlsb2FkLCBpbnN0LCBsYW5lKSxcbiAgICAgICAgICAgIGVudGFuZ2xlVHJhbnNpdGlvbnMocGF5bG9hZCwgaW5zdCwgbGFuZSkpO1xuICAgICAgICB9LFxuICAgICAgICBlbnF1ZXVlRm9yY2VVcGRhdGU6IGZ1bmN0aW9uIChpbnN0LCBjYWxsYmFjaykge1xuICAgICAgICAgIGluc3QgPSBpbnN0Ll9yZWFjdEludGVybmFscztcbiAgICAgICAgICB2YXIgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGluc3QpLFxuICAgICAgICAgICAgdXBkYXRlID0gY3JlYXRlVXBkYXRlKGxhbmUpO1xuICAgICAgICAgIHVwZGF0ZS50YWcgPSBGb3JjZVVwZGF0ZTtcbiAgICAgICAgICB2b2lkIDAgIT09IGNhbGxiYWNrICYmXG4gICAgICAgICAgICBudWxsICE9PSBjYWxsYmFjayAmJlxuICAgICAgICAgICAgKHdhcm5PbkludmFsaWRDYWxsYmFjayhjYWxsYmFjayksICh1cGRhdGUuY2FsbGJhY2sgPSBjYWxsYmFjaykpO1xuICAgICAgICAgIGNhbGxiYWNrID0gZW5xdWV1ZVVwZGF0ZShpbnN0LCB1cGRhdGUsIGxhbmUpO1xuICAgICAgICAgIG51bGwgIT09IGNhbGxiYWNrICYmXG4gICAgICAgICAgICAoc3RhcnRVcGRhdGVUaW1lckJ5TGFuZShsYW5lLCBcInRoaXMuZm9yY2VVcGRhdGUoKVwiLCBpbnN0KSxcbiAgICAgICAgICAgIHNjaGVkdWxlVXBkYXRlT25GaWJlcihjYWxsYmFjaywgaW5zdCwgbGFuZSksXG4gICAgICAgICAgICBlbnRhbmdsZVRyYW5zaXRpb25zKGNhbGxiYWNrLCBpbnN0LCBsYW5lKSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBjb21wb25lbnROYW1lID0gbnVsbCxcbiAgICAgIGVycm9yQm91bmRhcnlOYW1lID0gbnVsbCxcbiAgICAgIFNlbGVjdGl2ZUh5ZHJhdGlvbkV4Y2VwdGlvbiA9IEVycm9yKFxuICAgICAgICBcIlRoaXMgaXMgbm90IGEgcmVhbCBlcnJvci4gSXQncyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgUmVhY3QncyBzZWxlY3RpdmUgaHlkcmF0aW9uIGZlYXR1cmUuIElmIHRoaXMgbGVha3MgaW50byB1c2Vyc3BhY2UsIGl0J3MgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLlwiXG4gICAgICApLFxuICAgICAgZGlkUmVjZWl2ZVVwZGF0ZSA9ICExO1xuICAgIHZhciBkaWRXYXJuQWJvdXRCYWRDbGFzcyA9IHt9O1xuICAgIHZhciBkaWRXYXJuQWJvdXRDb250ZXh0VHlwZU9uRnVuY3Rpb25Db21wb25lbnQgPSB7fTtcbiAgICB2YXIgZGlkV2FybkFib3V0Q29udGV4dFR5cGVzID0ge307XG4gICAgdmFyIGRpZFdhcm5BYm91dEdldERlcml2ZWRTdGF0ZU9uRnVuY3Rpb25Db21wb25lbnQgPSB7fTtcbiAgICB2YXIgZGlkV2FybkFib3V0UmVhc3NpZ25pbmdQcm9wcyA9ICExO1xuICAgIHZhciBkaWRXYXJuQWJvdXRSZXZlYWxPcmRlciA9IHt9O1xuICAgIHZhciBkaWRXYXJuQWJvdXRUYWlsT3B0aW9ucyA9IHt9O1xuICAgIHZhciBTVVNQRU5ERURfTUFSS0VSID0ge1xuICAgICAgICBkZWh5ZHJhdGVkOiBudWxsLFxuICAgICAgICB0cmVlQ29udGV4dDogbnVsbCxcbiAgICAgICAgcmV0cnlMYW5lOiAwLFxuICAgICAgICBoeWRyYXRpb25FcnJvcnM6IG51bGxcbiAgICAgIH0sXG4gICAgICBoYXNXYXJuZWRBYm91dFVzaW5nTm9WYWx1ZVByb3BPbkNvbnRleHRQcm92aWRlciA9ICExLFxuICAgICAgZGlkV2FybkFib3V0VW5kZWZpbmVkU25hcHNob3RCZWZvcmVVcGRhdGUgPSBudWxsO1xuICAgIGRpZFdhcm5BYm91dFVuZGVmaW5lZFNuYXBzaG90QmVmb3JlVXBkYXRlID0gbmV3IFNldCgpO1xuICAgIHZhciBvZmZzY3JlZW5TdWJ0cmVlSXNIaWRkZW4gPSAhMSxcbiAgICAgIG9mZnNjcmVlblN1YnRyZWVXYXNIaWRkZW4gPSAhMSxcbiAgICAgIG5lZWRzRm9ybVJlc2V0ID0gITEsXG4gICAgICBQb3NzaWJseVdlYWtTZXQgPSBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBXZWFrU2V0ID8gV2Vha1NldCA6IFNldCxcbiAgICAgIG5leHRFZmZlY3QgPSBudWxsLFxuICAgICAgaW5Qcm9ncmVzc0xhbmVzID0gbnVsbCxcbiAgICAgIGluUHJvZ3Jlc3NSb290ID0gbnVsbCxcbiAgICAgIGhvc3RQYXJlbnQgPSBudWxsLFxuICAgICAgaG9zdFBhcmVudElzQ29udGFpbmVyID0gITEsXG4gICAgICBjdXJyZW50SG9pc3RhYmxlUm9vdCA9IG51bGwsXG4gICAgICBpbkh5ZHJhdGVkU3VidHJlZSA9ICExLFxuICAgICAgc3VzcGVuc2V5Q29tbWl0RmxhZyA9IDgxOTIsXG4gICAgICBEZWZhdWx0QXN5bmNEaXNwYXRjaGVyID0ge1xuICAgICAgICBnZXRDYWNoZUZvclR5cGU6IGZ1bmN0aW9uIChyZXNvdXJjZVR5cGUpIHtcbiAgICAgICAgICB2YXIgY2FjaGUgPSByZWFkQ29udGV4dChDYWNoZUNvbnRleHQpLFxuICAgICAgICAgICAgY2FjaGVGb3JUeXBlID0gY2FjaGUuZGF0YS5nZXQocmVzb3VyY2VUeXBlKTtcbiAgICAgICAgICB2b2lkIDAgPT09IGNhY2hlRm9yVHlwZSAmJlxuICAgICAgICAgICAgKChjYWNoZUZvclR5cGUgPSByZXNvdXJjZVR5cGUoKSksXG4gICAgICAgICAgICBjYWNoZS5kYXRhLnNldChyZXNvdXJjZVR5cGUsIGNhY2hlRm9yVHlwZSkpO1xuICAgICAgICAgIHJldHVybiBjYWNoZUZvclR5cGU7XG4gICAgICAgIH0sXG4gICAgICAgIGNhY2hlU2lnbmFsOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHJlYWRDb250ZXh0KENhY2hlQ29udGV4dCkuY29udHJvbGxlci5zaWduYWw7XG4gICAgICAgIH0sXG4gICAgICAgIGdldE93bmVyOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIGN1cnJlbnQ7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFN5bWJvbCAmJiBTeW1ib2wuZm9yKSB7XG4gICAgICB2YXIgc3ltYm9sRm9yID0gU3ltYm9sLmZvcjtcbiAgICAgIHN5bWJvbEZvcihcInNlbGVjdG9yLmNvbXBvbmVudFwiKTtcbiAgICAgIHN5bWJvbEZvcihcInNlbGVjdG9yLmhhc19wc2V1ZG9fY2xhc3NcIik7XG4gICAgICBzeW1ib2xGb3IoXCJzZWxlY3Rvci5yb2xlXCIpO1xuICAgICAgc3ltYm9sRm9yKFwic2VsZWN0b3IudGVzdF9pZFwiKTtcbiAgICAgIHN5bWJvbEZvcihcInNlbGVjdG9yLnRleHRcIik7XG4gICAgfVxuICAgIHZhciBjb21taXRIb29rcyA9IFtdLFxuICAgICAgUG9zc2libHlXZWFrTWFwID0gXCJmdW5jdGlvblwiID09PSB0eXBlb2YgV2Vha01hcCA/IFdlYWtNYXAgOiBNYXAsXG4gICAgICBOb0NvbnRleHQgPSAwLFxuICAgICAgUmVuZGVyQ29udGV4dCA9IDIsXG4gICAgICBDb21taXRDb250ZXh0ID0gNCxcbiAgICAgIFJvb3RJblByb2dyZXNzID0gMCxcbiAgICAgIFJvb3RGYXRhbEVycm9yZWQgPSAxLFxuICAgICAgUm9vdEVycm9yZWQgPSAyLFxuICAgICAgUm9vdFN1c3BlbmRlZCA9IDMsXG4gICAgICBSb290U3VzcGVuZGVkV2l0aERlbGF5ID0gNCxcbiAgICAgIFJvb3RTdXNwZW5kZWRBdFRoZVNoZWxsID0gNixcbiAgICAgIFJvb3RDb21wbGV0ZWQgPSA1LFxuICAgICAgZXhlY3V0aW9uQ29udGV4dCA9IE5vQ29udGV4dCxcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdCA9IG51bGwsXG4gICAgICB3b3JrSW5Qcm9ncmVzcyA9IG51bGwsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RSZW5kZXJMYW5lcyA9IDAsXG4gICAgICBOb3RTdXNwZW5kZWQgPSAwLFxuICAgICAgU3VzcGVuZGVkT25FcnJvciA9IDEsXG4gICAgICBTdXNwZW5kZWRPbkRhdGEgPSAyLFxuICAgICAgU3VzcGVuZGVkT25JbW1lZGlhdGUgPSAzLFxuICAgICAgU3VzcGVuZGVkT25JbnN0YW5jZSA9IDQsXG4gICAgICBTdXNwZW5kZWRPbkluc3RhbmNlQW5kUmVhZHlUb0NvbnRpbnVlID0gNSxcbiAgICAgIFN1c3BlbmRlZE9uRGVwcmVjYXRlZFRocm93UHJvbWlzZSA9IDYsXG4gICAgICBTdXNwZW5kZWRBbmRSZWFkeVRvQ29udGludWUgPSA3LFxuICAgICAgU3VzcGVuZGVkT25IeWRyYXRpb24gPSA4LFxuICAgICAgU3VzcGVuZGVkT25BY3Rpb24gPSA5LFxuICAgICAgd29ya0luUHJvZ3Jlc3NTdXNwZW5kZWRSZWFzb24gPSBOb3RTdXNwZW5kZWQsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Rocm93blZhbHVlID0gbnVsbCxcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZFNraXBTdXNwZW5kZWRTaWJsaW5ncyA9ICExLFxuICAgICAgd29ya0luUHJvZ3Jlc3NSb290SXNQcmVyZW5kZXJpbmcgPSAhMSxcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZEF0dGFjaFBpbmdMaXN0ZW5lciA9ICExLFxuICAgICAgZW50YW5nbGVkUmVuZGVyTGFuZXMgPSAwLFxuICAgICAgd29ya0luUHJvZ3Jlc3NSb290RXhpdFN0YXR1cyA9IFJvb3RJblByb2dyZXNzLFxuICAgICAgd29ya0luUHJvZ3Jlc3NSb290U2tpcHBlZExhbmVzID0gMCxcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdEludGVybGVhdmVkVXBkYXRlZExhbmVzID0gMCxcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdFBpbmdlZExhbmVzID0gMCxcbiAgICAgIHdvcmtJblByb2dyZXNzRGVmZXJyZWRMYW5lID0gMCxcbiAgICAgIHdvcmtJblByb2dyZXNzU3VzcGVuZGVkUmV0cnlMYW5lcyA9IDAsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1Jvb3RDb25jdXJyZW50RXJyb3JzID0gbnVsbCxcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdFJlY292ZXJhYmxlRXJyb3JzID0gbnVsbCxcbiAgICAgIHdvcmtJblByb2dyZXNzUm9vdERpZEluY2x1ZGVSZWN1cnNpdmVSZW5kZXJVcGRhdGUgPSAhMSxcbiAgICAgIGdsb2JhbE1vc3RSZWNlbnRGYWxsYmFja1RpbWUgPSAwLFxuICAgICAgZ2xvYmFsTW9zdFJlY2VudFRyYW5zaXRpb25UaW1lID0gMCxcbiAgICAgIEZBTExCQUNLX1RIUk9UVExFX01TID0gMzAwLFxuICAgICAgd29ya0luUHJvZ3Jlc3NSb290UmVuZGVyVGFyZ2V0VGltZSA9IEluZmluaXR5LFxuICAgICAgUkVOREVSX1RJTUVPVVRfTVMgPSA1MDAsXG4gICAgICB3b3JrSW5Qcm9ncmVzc1RyYW5zaXRpb25zID0gbnVsbCxcbiAgICAgIHdvcmtJblByb2dyZXNzVXBkYXRlVGFzayA9IG51bGwsXG4gICAgICBsZWdhY3lFcnJvckJvdW5kYXJpZXNUaGF0QWxyZWFkeUZhaWxlZCA9IG51bGwsXG4gICAgICBJTU1FRElBVEVfQ09NTUlUID0gMCxcbiAgICAgIEFCT1JURURfVklFV19UUkFOU0lUSU9OX0NPTU1JVCA9IDEsXG4gICAgICBERUxBWUVEX1BBU1NJVkVfQ09NTUlUID0gMixcbiAgICAgIEFOSU1BVElPTl9TVEFSVEVEX0NPTU1JVCA9IDMsXG4gICAgICBOT19QRU5ESU5HX0VGRkVDVFMgPSAwLFxuICAgICAgUEVORElOR19NVVRBVElPTl9QSEFTRSA9IDEsXG4gICAgICBQRU5ESU5HX0xBWU9VVF9QSEFTRSA9IDIsXG4gICAgICBQRU5ESU5HX0FGVEVSX01VVEFUSU9OX1BIQVNFID0gMyxcbiAgICAgIFBFTkRJTkdfU1BBV05FRF9XT1JLID0gNCxcbiAgICAgIFBFTkRJTkdfUEFTU0lWRV9QSEFTRSA9IDUsXG4gICAgICBwZW5kaW5nRWZmZWN0c1N0YXR1cyA9IDAsXG4gICAgICBwZW5kaW5nRWZmZWN0c1Jvb3QgPSBudWxsLFxuICAgICAgcGVuZGluZ0ZpbmlzaGVkV29yayA9IG51bGwsXG4gICAgICBwZW5kaW5nRWZmZWN0c0xhbmVzID0gMCxcbiAgICAgIHBlbmRpbmdFZmZlY3RzUmVtYWluaW5nTGFuZXMgPSAwLFxuICAgICAgcGVuZGluZ0VmZmVjdHNSZW5kZXJFbmRUaW1lID0gLTAsXG4gICAgICBwZW5kaW5nUGFzc2l2ZVRyYW5zaXRpb25zID0gbnVsbCxcbiAgICAgIHBlbmRpbmdSZWNvdmVyYWJsZUVycm9ycyA9IG51bGwsXG4gICAgICBwZW5kaW5nU3VzcGVuZGVkQ29tbWl0UmVhc29uID0gbnVsbCxcbiAgICAgIHBlbmRpbmdEZWxheWVkQ29tbWl0UmVhc29uID0gSU1NRURJQVRFX0NPTU1JVCxcbiAgICAgIHBlbmRpbmdTdXNwZW5kZWRWaWV3VHJhbnNpdGlvblJlYXNvbiA9IG51bGwsXG4gICAgICBORVNURURfVVBEQVRFX0xJTUlUID0gNTAsXG4gICAgICBuZXN0ZWRVcGRhdGVDb3VudCA9IDAsXG4gICAgICByb290V2l0aE5lc3RlZFVwZGF0ZXMgPSBudWxsLFxuICAgICAgaXNGbHVzaGluZ1Bhc3NpdmVFZmZlY3RzID0gITEsXG4gICAgICBkaWRTY2hlZHVsZVVwZGF0ZUR1cmluZ1Bhc3NpdmVFZmZlY3RzID0gITEsXG4gICAgICBORVNURURfUEFTU0lWRV9VUERBVEVfTElNSVQgPSA1MCxcbiAgICAgIG5lc3RlZFBhc3NpdmVVcGRhdGVDb3VudCA9IDAsXG4gICAgICByb290V2l0aFBhc3NpdmVOZXN0ZWRVcGRhdGVzID0gbnVsbCxcbiAgICAgIGlzUnVubmluZ0luc2VydGlvbkVmZmVjdCA9ICExLFxuICAgICAgZGlkV2FyblN0YXRlVXBkYXRlRm9yTm90WWV0TW91bnRlZENvbXBvbmVudCA9IG51bGwsXG4gICAgICBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlciA9ICExO1xuICAgIHZhciBkaWRXYXJuQWJvdXRVcGRhdGVJblJlbmRlckZvckFub3RoZXJDb21wb25lbnQgPSBuZXcgU2V0KCk7XG4gICAgdmFyIGZha2VBY3RDYWxsYmFja05vZGUkMSA9IHt9LFxuICAgICAgZmlyc3RTY2hlZHVsZWRSb290ID0gbnVsbCxcbiAgICAgIGxhc3RTY2hlZHVsZWRSb290ID0gbnVsbCxcbiAgICAgIGRpZFNjaGVkdWxlTWljcm90YXNrID0gITEsXG4gICAgICBkaWRTY2hlZHVsZU1pY3JvdGFza19hY3QgPSAhMSxcbiAgICAgIG1pZ2h0SGF2ZVBlbmRpbmdTeW5jV29yayA9ICExLFxuICAgICAgaXNGbHVzaGluZ1dvcmsgPSAhMSxcbiAgICAgIGN1cnJlbnRFdmVudFRyYW5zaXRpb25MYW5lID0gMCxcbiAgICAgIGZha2VBY3RDYWxsYmFja05vZGUgPSB7fTtcbiAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzaW1wbGVFdmVudFBsdWdpbkV2ZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICB2YXIgZXZlbnROYW1lID0gc2ltcGxlRXZlbnRQbHVnaW5FdmVudHNbaV0sXG4gICAgICAgICAgZG9tRXZlbnROYW1lID0gZXZlbnROYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGV2ZW50TmFtZSA9IGV2ZW50TmFtZVswXS50b1VwcGVyQ2FzZSgpICsgZXZlbnROYW1lLnNsaWNlKDEpO1xuICAgICAgICByZWdpc3RlclNpbXBsZUV2ZW50KGRvbUV2ZW50TmFtZSwgXCJvblwiICsgZXZlbnROYW1lKTtcbiAgICAgIH1cbiAgICAgIHJlZ2lzdGVyU2ltcGxlRXZlbnQoQU5JTUFUSU9OX0VORCwgXCJvbkFuaW1hdGlvbkVuZFwiKTtcbiAgICAgIHJlZ2lzdGVyU2ltcGxlRXZlbnQoQU5JTUFUSU9OX0lURVJBVElPTiwgXCJvbkFuaW1hdGlvbkl0ZXJhdGlvblwiKTtcbiAgICAgIHJlZ2lzdGVyU2ltcGxlRXZlbnQoQU5JTUFUSU9OX1NUQVJULCBcIm9uQW5pbWF0aW9uU3RhcnRcIik7XG4gICAgICByZWdpc3RlclNpbXBsZUV2ZW50KFwiZGJsY2xpY2tcIiwgXCJvbkRvdWJsZUNsaWNrXCIpO1xuICAgICAgcmVnaXN0ZXJTaW1wbGVFdmVudChcImZvY3VzaW5cIiwgXCJvbkZvY3VzXCIpO1xuICAgICAgcmVnaXN0ZXJTaW1wbGVFdmVudChcImZvY3Vzb3V0XCIsIFwib25CbHVyXCIpO1xuICAgICAgcmVnaXN0ZXJTaW1wbGVFdmVudChUUkFOU0lUSU9OX1JVTiwgXCJvblRyYW5zaXRpb25SdW5cIik7XG4gICAgICByZWdpc3RlclNpbXBsZUV2ZW50KFRSQU5TSVRJT05fU1RBUlQsIFwib25UcmFuc2l0aW9uU3RhcnRcIik7XG4gICAgICByZWdpc3RlclNpbXBsZUV2ZW50KFRSQU5TSVRJT05fQ0FOQ0VMLCBcIm9uVHJhbnNpdGlvbkNhbmNlbFwiKTtcbiAgICAgIHJlZ2lzdGVyU2ltcGxlRXZlbnQoVFJBTlNJVElPTl9FTkQsIFwib25UcmFuc2l0aW9uRW5kXCIpO1xuICAgIH0pKCk7XG4gICAgcmVnaXN0ZXJEaXJlY3RFdmVudChcIm9uTW91c2VFbnRlclwiLCBbXCJtb3VzZW91dFwiLCBcIm1vdXNlb3ZlclwiXSk7XG4gICAgcmVnaXN0ZXJEaXJlY3RFdmVudChcIm9uTW91c2VMZWF2ZVwiLCBbXCJtb3VzZW91dFwiLCBcIm1vdXNlb3ZlclwiXSk7XG4gICAgcmVnaXN0ZXJEaXJlY3RFdmVudChcIm9uUG9pbnRlckVudGVyXCIsIFtcInBvaW50ZXJvdXRcIiwgXCJwb2ludGVyb3ZlclwiXSk7XG4gICAgcmVnaXN0ZXJEaXJlY3RFdmVudChcIm9uUG9pbnRlckxlYXZlXCIsIFtcInBvaW50ZXJvdXRcIiwgXCJwb2ludGVyb3ZlclwiXSk7XG4gICAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KFxuICAgICAgXCJvbkNoYW5nZVwiLFxuICAgICAgXCJjaGFuZ2UgY2xpY2sgZm9jdXNpbiBmb2N1c291dCBpbnB1dCBrZXlkb3duIGtleXVwIHNlbGVjdGlvbmNoYW5nZVwiLnNwbGl0KFxuICAgICAgICBcIiBcIlxuICAgICAgKVxuICAgICk7XG4gICAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KFxuICAgICAgXCJvblNlbGVjdFwiLFxuICAgICAgXCJmb2N1c291dCBjb250ZXh0bWVudSBkcmFnZW5kIGZvY3VzaW4ga2V5ZG93biBrZXl1cCBtb3VzZWRvd24gbW91c2V1cCBzZWxlY3Rpb25jaGFuZ2VcIi5zcGxpdChcbiAgICAgICAgXCIgXCJcbiAgICAgIClcbiAgICApO1xuICAgIHJlZ2lzdGVyVHdvUGhhc2VFdmVudChcIm9uQmVmb3JlSW5wdXRcIiwgW1xuICAgICAgXCJjb21wb3NpdGlvbmVuZFwiLFxuICAgICAgXCJrZXlwcmVzc1wiLFxuICAgICAgXCJ0ZXh0SW5wdXRcIixcbiAgICAgIFwicGFzdGVcIlxuICAgIF0pO1xuICAgIHJlZ2lzdGVyVHdvUGhhc2VFdmVudChcbiAgICAgIFwib25Db21wb3NpdGlvbkVuZFwiLFxuICAgICAgXCJjb21wb3NpdGlvbmVuZCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKVxuICAgICk7XG4gICAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KFxuICAgICAgXCJvbkNvbXBvc2l0aW9uU3RhcnRcIixcbiAgICAgIFwiY29tcG9zaXRpb25zdGFydCBmb2N1c291dCBrZXlkb3duIGtleXByZXNzIGtleXVwIG1vdXNlZG93blwiLnNwbGl0KFwiIFwiKVxuICAgICk7XG4gICAgcmVnaXN0ZXJUd29QaGFzZUV2ZW50KFxuICAgICAgXCJvbkNvbXBvc2l0aW9uVXBkYXRlXCIsXG4gICAgICBcImNvbXBvc2l0aW9udXBkYXRlIGZvY3Vzb3V0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgbW91c2Vkb3duXCIuc3BsaXQoXCIgXCIpXG4gICAgKTtcbiAgICB2YXIgbWVkaWFFdmVudFR5cGVzID1cbiAgICAgICAgXCJhYm9ydCBjYW5wbGF5IGNhbnBsYXl0aHJvdWdoIGR1cmF0aW9uY2hhbmdlIGVtcHRpZWQgZW5jcnlwdGVkIGVuZGVkIGVycm9yIGxvYWRlZGRhdGEgbG9hZGVkbWV0YWRhdGEgbG9hZHN0YXJ0IHBhdXNlIHBsYXkgcGxheWluZyBwcm9ncmVzcyByYXRlY2hhbmdlIHJlc2l6ZSBzZWVrZWQgc2Vla2luZyBzdGFsbGVkIHN1c3BlbmQgdGltZXVwZGF0ZSB2b2x1bWVjaGFuZ2Ugd2FpdGluZ1wiLnNwbGl0KFxuICAgICAgICAgIFwiIFwiXG4gICAgICAgICksXG4gICAgICBub25EZWxlZ2F0ZWRFdmVudHMgPSBuZXcgU2V0KFxuICAgICAgICBcImJlZm9yZXRvZ2dsZSBjYW5jZWwgY2xvc2UgaW52YWxpZCBsb2FkIHNjcm9sbCBzY3JvbGxlbmQgdG9nZ2xlXCJcbiAgICAgICAgICAuc3BsaXQoXCIgXCIpXG4gICAgICAgICAgLmNvbmNhdChtZWRpYUV2ZW50VHlwZXMpXG4gICAgICApLFxuICAgICAgbGlzdGVuaW5nTWFya2VyID0gXCJfcmVhY3RMaXN0ZW5pbmdcIiArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpLFxuICAgICAgZGlkV2FybkNvbnRyb2xsZWRUb1VuY29udHJvbGxlZCA9ICExLFxuICAgICAgZGlkV2FyblVuY29udHJvbGxlZFRvQ29udHJvbGxlZCA9ICExLFxuICAgICAgZGlkV2FybkZvcm1BY3Rpb25UeXBlID0gITEsXG4gICAgICBkaWRXYXJuRm9ybUFjdGlvbk5hbWUgPSAhMSxcbiAgICAgIGRpZFdhcm5Gb3JtQWN0aW9uVGFyZ2V0ID0gITEsXG4gICAgICBkaWRXYXJuRm9ybUFjdGlvbk1ldGhvZCA9ICExLFxuICAgICAgZGlkV2FyblBvcG92ZXJUYXJnZXRPYmplY3QgPSAhMTtcbiAgICB2YXIgZGlkV2FybkZvck5ld0Jvb2xlYW5Qcm9wc1dpdGhFbXB0eVZhbHVlID0ge307XG4gICAgdmFyIE5PUk1BTElaRV9ORVdMSU5FU19SRUdFWCA9IC9cXHJcXG4/L2csXG4gICAgICBOT1JNQUxJWkVfTlVMTF9BTkRfUkVQTEFDRU1FTlRfUkVHRVggPSAvXFx1MDAwMHxcXHVGRkZEL2csXG4gICAgICB4bGlua05hbWVzcGFjZSA9IFwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiLFxuICAgICAgeG1sTmFtZXNwYWNlID0gXCJodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2VcIixcbiAgICAgIEVYUEVDVEVEX0ZPUk1fQUNUSU9OX1VSTCA9XG4gICAgICAgIFwiamF2YXNjcmlwdDp0aHJvdyBuZXcgRXJyb3IoJ1JlYWN0IGZvcm0gdW5leHBlY3RlZGx5IHN1Ym1pdHRlZC4nKVwiLFxuICAgICAgU1VQUFJFU1NfSFlEUkFUSU9OX1dBUk5JTkcgPSBcInN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1wiLFxuICAgICAgQUNUSVZJVFlfU1RBUlRfREFUQSA9IFwiJlwiLFxuICAgICAgQUNUSVZJVFlfRU5EX0RBVEEgPSBcIi8mXCIsXG4gICAgICBTVVNQRU5TRV9TVEFSVF9EQVRBID0gXCIkXCIsXG4gICAgICBTVVNQRU5TRV9FTkRfREFUQSA9IFwiLyRcIixcbiAgICAgIFNVU1BFTlNFX1BFTkRJTkdfU1RBUlRfREFUQSA9IFwiJD9cIixcbiAgICAgIFNVU1BFTlNFX1FVRVVFRF9TVEFSVF9EQVRBID0gXCIkflwiLFxuICAgICAgU1VTUEVOU0VfRkFMTEJBQ0tfU1RBUlRfREFUQSA9IFwiJCFcIixcbiAgICAgIFBSRUFNQkxFX0NPTlRSSUJVVElPTl9IVE1MID0gXCJodG1sXCIsXG4gICAgICBQUkVBTUJMRV9DT05UUklCVVRJT05fQk9EWSA9IFwiYm9keVwiLFxuICAgICAgUFJFQU1CTEVfQ09OVFJJQlVUSU9OX0hFQUQgPSBcImhlYWRcIixcbiAgICAgIEZPUk1fU1RBVEVfSVNfTUFUQ0hJTkcgPSBcIkYhXCIsXG4gICAgICBGT1JNX1NUQVRFX0lTX05PVF9NQVRDSElORyA9IFwiRlwiLFxuICAgICAgRE9DVU1FTlRfUkVBRFlfU1RBVEVfTE9BRElORyA9IFwibG9hZGluZ1wiLFxuICAgICAgU1RZTEUgPSBcInN0eWxlXCIsXG4gICAgICBIb3N0Q29udGV4dE5hbWVzcGFjZU5vbmUgPSAwLFxuICAgICAgSG9zdENvbnRleHROYW1lc3BhY2VTdmcgPSAxLFxuICAgICAgSG9zdENvbnRleHROYW1lc3BhY2VNYXRoID0gMixcbiAgICAgIGV2ZW50c0VuYWJsZWQgPSBudWxsLFxuICAgICAgc2VsZWN0aW9uSW5mb3JtYXRpb24gPSBudWxsLFxuICAgICAgd2FybmVkVW5rbm93blRhZ3MgPSB7IGRpYWxvZzogITAsIHdlYnZpZXc6ICEwIH0sXG4gICAgICBjdXJyZW50UG9wc3RhdGVUcmFuc2l0aW9uRXZlbnQgPSBudWxsLFxuICAgICAgc2NoZWR1bGVyRXZlbnQgPSB2b2lkIDAsXG4gICAgICBzY2hlZHVsZVRpbWVvdXQgPSBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBzZXRUaW1lb3V0ID8gc2V0VGltZW91dCA6IHZvaWQgMCxcbiAgICAgIGNhbmNlbFRpbWVvdXQgPVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBjbGVhclRpbWVvdXQgPyBjbGVhclRpbWVvdXQgOiB2b2lkIDAsXG4gICAgICBub1RpbWVvdXQgPSAtMSxcbiAgICAgIGxvY2FsUHJvbWlzZSA9IFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFByb21pc2UgPyBQcm9taXNlIDogdm9pZCAwLFxuICAgICAgc2NoZWR1bGVNaWNyb3Rhc2sgPVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBxdWV1ZU1pY3JvdGFza1xuICAgICAgICAgID8gcXVldWVNaWNyb3Rhc2tcbiAgICAgICAgICA6IFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBsb2NhbFByb21pc2VcbiAgICAgICAgICAgID8gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsUHJvbWlzZVxuICAgICAgICAgICAgICAgICAgLnJlc29sdmUobnVsbClcbiAgICAgICAgICAgICAgICAgIC50aGVuKGNhbGxiYWNrKVxuICAgICAgICAgICAgICAgICAgLmNhdGNoKGhhbmRsZUVycm9ySW5OZXh0VGljayk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogc2NoZWR1bGVUaW1lb3V0LFxuICAgICAgcHJldmlvdXNIeWRyYXRhYmxlT25FbnRlcmluZ1Njb3BlZFNpbmdsZXRvbiA9IG51bGwsXG4gICAgICBOb3RMb2FkZWQgPSAwLFxuICAgICAgTG9hZGVkID0gMSxcbiAgICAgIEVycm9yZWQgPSAyLFxuICAgICAgU2V0dGxlZCA9IDMsXG4gICAgICBJbnNlcnRlZCA9IDQsXG4gICAgICBwcmVsb2FkUHJvcHNNYXAgPSBuZXcgTWFwKCksXG4gICAgICBwcmVjb25uZWN0c1NldCA9IG5ldyBTZXQoKSxcbiAgICAgIHByZXZpb3VzRGlzcGF0Y2hlciA9IFJlYWN0RE9NU2hhcmVkSW50ZXJuYWxzLmQ7XG4gICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMuZCA9IHtcbiAgICAgIGY6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHByZXZpb3VzV2FzUmVuZGVyaW5nID0gcHJldmlvdXNEaXNwYXRjaGVyLmYoKSxcbiAgICAgICAgICB3YXNSZW5kZXJpbmcgPSBmbHVzaFN5bmNXb3JrJDEoKTtcbiAgICAgICAgcmV0dXJuIHByZXZpb3VzV2FzUmVuZGVyaW5nIHx8IHdhc1JlbmRlcmluZztcbiAgICAgIH0sXG4gICAgICByOiBmdW5jdGlvbiAoZm9ybSkge1xuICAgICAgICB2YXIgZm9ybUluc3QgPSBnZXRJbnN0YW5jZUZyb21Ob2RlKGZvcm0pO1xuICAgICAgICBudWxsICE9PSBmb3JtSW5zdCAmJiA1ID09PSBmb3JtSW5zdC50YWcgJiYgXCJmb3JtXCIgPT09IGZvcm1JbnN0LnR5cGVcbiAgICAgICAgICA/IHJlcXVlc3RGb3JtUmVzZXQkMShmb3JtSW5zdClcbiAgICAgICAgICA6IHByZXZpb3VzRGlzcGF0Y2hlci5yKGZvcm0pO1xuICAgICAgfSxcbiAgICAgIEQ6IGZ1bmN0aW9uIChocmVmKSB7XG4gICAgICAgIHByZXZpb3VzRGlzcGF0Y2hlci5EKGhyZWYpO1xuICAgICAgICBwcmVjb25uZWN0QXMoXCJkbnMtcHJlZmV0Y2hcIiwgaHJlZiwgbnVsbCk7XG4gICAgICB9LFxuICAgICAgQzogZnVuY3Rpb24gKGhyZWYsIGNyb3NzT3JpZ2luKSB7XG4gICAgICAgIHByZXZpb3VzRGlzcGF0Y2hlci5DKGhyZWYsIGNyb3NzT3JpZ2luKTtcbiAgICAgICAgcHJlY29ubmVjdEFzKFwicHJlY29ubmVjdFwiLCBocmVmLCBjcm9zc09yaWdpbik7XG4gICAgICB9LFxuICAgICAgTDogZnVuY3Rpb24gKGhyZWYsIGFzLCBvcHRpb25zKSB7XG4gICAgICAgIHByZXZpb3VzRGlzcGF0Y2hlci5MKGhyZWYsIGFzLCBvcHRpb25zKTtcbiAgICAgICAgdmFyIG93bmVyRG9jdW1lbnQgPSBnbG9iYWxEb2N1bWVudDtcbiAgICAgICAgaWYgKG93bmVyRG9jdW1lbnQgJiYgaHJlZiAmJiBhcykge1xuICAgICAgICAgIHZhciBwcmVsb2FkU2VsZWN0b3IgPVxuICAgICAgICAgICAgJ2xpbmtbcmVsPVwicHJlbG9hZFwiXVthcz1cIicgK1xuICAgICAgICAgICAgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhhcykgK1xuICAgICAgICAgICAgJ1wiXSc7XG4gICAgICAgICAgXCJpbWFnZVwiID09PSBhc1xuICAgICAgICAgICAgPyBvcHRpb25zICYmIG9wdGlvbnMuaW1hZ2VTcmNTZXRcbiAgICAgICAgICAgICAgPyAoKHByZWxvYWRTZWxlY3RvciArPVxuICAgICAgICAgICAgICAgICAgJ1tpbWFnZXNyY3NldD1cIicgK1xuICAgICAgICAgICAgICAgICAgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5pbWFnZVNyY1NldFxuICAgICAgICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAgICAgICAnXCJdJyksXG4gICAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuaW1hZ2VTaXplcyAmJlxuICAgICAgICAgICAgICAgICAgKHByZWxvYWRTZWxlY3RvciArPVxuICAgICAgICAgICAgICAgICAgICAnW2ltYWdlc2l6ZXM9XCInICtcbiAgICAgICAgICAgICAgICAgICAgZXNjYXBlU2VsZWN0b3JBdHRyaWJ1dGVWYWx1ZUluc2lkZURvdWJsZVF1b3RlcyhcbiAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLmltYWdlU2l6ZXNcbiAgICAgICAgICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAgICAgICAgICdcIl0nKSlcbiAgICAgICAgICAgICAgOiAocHJlbG9hZFNlbGVjdG9yICs9XG4gICAgICAgICAgICAgICAgICAnW2hyZWY9XCInICtcbiAgICAgICAgICAgICAgICAgIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoaHJlZikgK1xuICAgICAgICAgICAgICAgICAgJ1wiXScpXG4gICAgICAgICAgICA6IChwcmVsb2FkU2VsZWN0b3IgKz1cbiAgICAgICAgICAgICAgICAnW2hyZWY9XCInICtcbiAgICAgICAgICAgICAgICBlc2NhcGVTZWxlY3RvckF0dHJpYnV0ZVZhbHVlSW5zaWRlRG91YmxlUXVvdGVzKGhyZWYpICtcbiAgICAgICAgICAgICAgICAnXCJdJyk7XG4gICAgICAgICAgdmFyIGtleSA9IHByZWxvYWRTZWxlY3RvcjtcbiAgICAgICAgICBzd2l0Y2ggKGFzKSB7XG4gICAgICAgICAgICBjYXNlIFwic3R5bGVcIjpcbiAgICAgICAgICAgICAga2V5ID0gZ2V0U3R5bGVLZXkoaHJlZik7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcInNjcmlwdFwiOlxuICAgICAgICAgICAgICBrZXkgPSBnZXRTY3JpcHRLZXkoaHJlZik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHByZWxvYWRQcm9wc01hcC5oYXMoa2V5KSB8fFxuICAgICAgICAgICAgKChocmVmID0gYXNzaWduKFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcmVsOiBcInByZWxvYWRcIixcbiAgICAgICAgICAgICAgICBocmVmOlxuICAgICAgICAgICAgICAgICAgXCJpbWFnZVwiID09PSBhcyAmJiBvcHRpb25zICYmIG9wdGlvbnMuaW1hZ2VTcmNTZXRcbiAgICAgICAgICAgICAgICAgICAgPyB2b2lkIDBcbiAgICAgICAgICAgICAgICAgICAgOiBocmVmLFxuICAgICAgICAgICAgICAgIGFzOiBhc1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBvcHRpb25zXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgIHByZWxvYWRQcm9wc01hcC5zZXQoa2V5LCBocmVmKSxcbiAgICAgICAgICAgIG51bGwgIT09IG93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvcihwcmVsb2FkU2VsZWN0b3IpIHx8XG4gICAgICAgICAgICAgIChcInN0eWxlXCIgPT09IGFzICYmXG4gICAgICAgICAgICAgICAgb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICAgICAgZ2V0U3R5bGVzaGVldFNlbGVjdG9yRnJvbUtleShrZXkpXG4gICAgICAgICAgICAgICAgKSkgfHxcbiAgICAgICAgICAgICAgKFwic2NyaXB0XCIgPT09IGFzICYmXG4gICAgICAgICAgICAgICAgb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKGdldFNjcmlwdFNlbGVjdG9yRnJvbUtleShrZXkpKSkgfHxcbiAgICAgICAgICAgICAgKChhcyA9IG93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxpbmtcIikpLFxuICAgICAgICAgICAgICBzZXRJbml0aWFsUHJvcGVydGllcyhhcywgXCJsaW5rXCIsIGhyZWYpLFxuICAgICAgICAgICAgICBtYXJrTm9kZUFzSG9pc3RhYmxlKGFzKSxcbiAgICAgICAgICAgICAgb3duZXJEb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGFzKSkpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbTogZnVuY3Rpb24gKGhyZWYsIG9wdGlvbnMpIHtcbiAgICAgICAgcHJldmlvdXNEaXNwYXRjaGVyLm0oaHJlZiwgb3B0aW9ucyk7XG4gICAgICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2xvYmFsRG9jdW1lbnQ7XG4gICAgICAgIGlmIChvd25lckRvY3VtZW50ICYmIGhyZWYpIHtcbiAgICAgICAgICB2YXIgYXMgPVxuICAgICAgICAgICAgICBvcHRpb25zICYmIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmFzID8gb3B0aW9ucy5hcyA6IFwic2NyaXB0XCIsXG4gICAgICAgICAgICBwcmVsb2FkU2VsZWN0b3IgPVxuICAgICAgICAgICAgICAnbGlua1tyZWw9XCJtb2R1bGVwcmVsb2FkXCJdW2FzPVwiJyArXG4gICAgICAgICAgICAgIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoYXMpICtcbiAgICAgICAgICAgICAgJ1wiXVtocmVmPVwiJyArXG4gICAgICAgICAgICAgIGVzY2FwZVNlbGVjdG9yQXR0cmlidXRlVmFsdWVJbnNpZGVEb3VibGVRdW90ZXMoaHJlZikgK1xuICAgICAgICAgICAgICAnXCJdJyxcbiAgICAgICAgICAgIGtleSA9IHByZWxvYWRTZWxlY3RvcjtcbiAgICAgICAgICBzd2l0Y2ggKGFzKSB7XG4gICAgICAgICAgICBjYXNlIFwiYXVkaW93b3JrbGV0XCI6XG4gICAgICAgICAgICBjYXNlIFwicGFpbnR3b3JrbGV0XCI6XG4gICAgICAgICAgICBjYXNlIFwic2VydmljZXdvcmtlclwiOlxuICAgICAgICAgICAgY2FzZSBcInNoYXJlZHdvcmtlclwiOlxuICAgICAgICAgICAgY2FzZSBcIndvcmtlclwiOlxuICAgICAgICAgICAgY2FzZSBcInNjcmlwdFwiOlxuICAgICAgICAgICAgICBrZXkgPSBnZXRTY3JpcHRLZXkoaHJlZik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFwcmVsb2FkUHJvcHNNYXAuaGFzKGtleSkgJiZcbiAgICAgICAgICAgICgoaHJlZiA9IGFzc2lnbih7IHJlbDogXCJtb2R1bGVwcmVsb2FkXCIsIGhyZWY6IGhyZWYgfSwgb3B0aW9ucykpLFxuICAgICAgICAgICAgcHJlbG9hZFByb3BzTWFwLnNldChrZXksIGhyZWYpLFxuICAgICAgICAgICAgbnVsbCA9PT0gb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKHByZWxvYWRTZWxlY3RvcikpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGFzKSB7XG4gICAgICAgICAgICAgIGNhc2UgXCJhdWRpb3dvcmtsZXRcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInBhaW50d29ya2xldFwiOlxuICAgICAgICAgICAgICBjYXNlIFwic2VydmljZXdvcmtlclwiOlxuICAgICAgICAgICAgICBjYXNlIFwic2hhcmVkd29ya2VyXCI6XG4gICAgICAgICAgICAgIGNhc2UgXCJ3b3JrZXJcIjpcbiAgICAgICAgICAgICAgY2FzZSBcInNjcmlwdFwiOlxuICAgICAgICAgICAgICAgIGlmIChvd25lckRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZ2V0U2NyaXB0U2VsZWN0b3JGcm9tS2V5KGtleSkpKVxuICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXMgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpO1xuICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMoYXMsIFwibGlua1wiLCBocmVmKTtcbiAgICAgICAgICAgIG1hcmtOb2RlQXNIb2lzdGFibGUoYXMpO1xuICAgICAgICAgICAgb3duZXJEb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGFzKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBYOiBmdW5jdGlvbiAoc3JjLCBvcHRpb25zKSB7XG4gICAgICAgIHByZXZpb3VzRGlzcGF0Y2hlci5YKHNyYywgb3B0aW9ucyk7XG4gICAgICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2xvYmFsRG9jdW1lbnQ7XG4gICAgICAgIGlmIChvd25lckRvY3VtZW50ICYmIHNyYykge1xuICAgICAgICAgIHZhciBzY3JpcHRzID0gZ2V0UmVzb3VyY2VzRnJvbVJvb3Qob3duZXJEb2N1bWVudCkuaG9pc3RhYmxlU2NyaXB0cyxcbiAgICAgICAgICAgIGtleSA9IGdldFNjcmlwdEtleShzcmMpLFxuICAgICAgICAgICAgcmVzb3VyY2UgPSBzY3JpcHRzLmdldChrZXkpO1xuICAgICAgICAgIHJlc291cmNlIHx8XG4gICAgICAgICAgICAoKHJlc291cmNlID0gb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICBnZXRTY3JpcHRTZWxlY3RvckZyb21LZXkoa2V5KVxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICByZXNvdXJjZSB8fFxuICAgICAgICAgICAgICAoKHNyYyA9IGFzc2lnbih7IHNyYzogc3JjLCBhc3luYzogITAgfSwgb3B0aW9ucykpLFxuICAgICAgICAgICAgICAob3B0aW9ucyA9IHByZWxvYWRQcm9wc01hcC5nZXQoa2V5KSkgJiZcbiAgICAgICAgICAgICAgICBhZG9wdFByZWxvYWRQcm9wc0ZvclNjcmlwdChzcmMsIG9wdGlvbnMpLFxuICAgICAgICAgICAgICAocmVzb3VyY2UgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpLFxuICAgICAgICAgICAgICBtYXJrTm9kZUFzSG9pc3RhYmxlKHJlc291cmNlKSxcbiAgICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMocmVzb3VyY2UsIFwibGlua1wiLCBzcmMpLFxuICAgICAgICAgICAgICBvd25lckRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocmVzb3VyY2UpKSxcbiAgICAgICAgICAgIChyZXNvdXJjZSA9IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzY3JpcHRcIixcbiAgICAgICAgICAgICAgaW5zdGFuY2U6IHJlc291cmNlLFxuICAgICAgICAgICAgICBjb3VudDogMSxcbiAgICAgICAgICAgICAgc3RhdGU6IG51bGxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc2NyaXB0cy5zZXQoa2V5LCByZXNvdXJjZSkpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgUzogZnVuY3Rpb24gKGhyZWYsIHByZWNlZGVuY2UsIG9wdGlvbnMpIHtcbiAgICAgICAgcHJldmlvdXNEaXNwYXRjaGVyLlMoaHJlZiwgcHJlY2VkZW5jZSwgb3B0aW9ucyk7XG4gICAgICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2xvYmFsRG9jdW1lbnQ7XG4gICAgICAgIGlmIChvd25lckRvY3VtZW50ICYmIGhyZWYpIHtcbiAgICAgICAgICB2YXIgc3R5bGVzID0gZ2V0UmVzb3VyY2VzRnJvbVJvb3Qob3duZXJEb2N1bWVudCkuaG9pc3RhYmxlU3R5bGVzLFxuICAgICAgICAgICAga2V5ID0gZ2V0U3R5bGVLZXkoaHJlZik7XG4gICAgICAgICAgcHJlY2VkZW5jZSA9IHByZWNlZGVuY2UgfHwgXCJkZWZhdWx0XCI7XG4gICAgICAgICAgdmFyIHJlc291cmNlID0gc3R5bGVzLmdldChrZXkpO1xuICAgICAgICAgIGlmICghcmVzb3VyY2UpIHtcbiAgICAgICAgICAgIHZhciBzdGF0ZSA9IHsgbG9hZGluZzogTm90TG9hZGVkLCBwcmVsb2FkOiBudWxsIH07XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIChyZXNvdXJjZSA9IG93bmVyRG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICAgICAgICAgICBnZXRTdHlsZXNoZWV0U2VsZWN0b3JGcm9tS2V5KGtleSlcbiAgICAgICAgICAgICAgKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgc3RhdGUubG9hZGluZyA9IExvYWRlZCB8IEluc2VydGVkO1xuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIGhyZWYgPSBhc3NpZ24oXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcmVsOiBcInN0eWxlc2hlZXRcIixcbiAgICAgICAgICAgICAgICAgIGhyZWY6IGhyZWYsXG4gICAgICAgICAgICAgICAgICBcImRhdGEtcHJlY2VkZW5jZVwiOiBwcmVjZWRlbmNlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvcHRpb25zXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIChvcHRpb25zID0gcHJlbG9hZFByb3BzTWFwLmdldChrZXkpKSAmJlxuICAgICAgICAgICAgICAgIGFkb3B0UHJlbG9hZFByb3BzRm9yU3R5bGVzaGVldChocmVmLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgdmFyIGxpbmsgPSAocmVzb3VyY2UgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJsaW5rXCIpKTtcbiAgICAgICAgICAgICAgbWFya05vZGVBc0hvaXN0YWJsZShsaW5rKTtcbiAgICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMobGluaywgXCJsaW5rXCIsIGhyZWYpO1xuICAgICAgICAgICAgICBsaW5rLl9wID0gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgICAgIGxpbmsub25sb2FkID0gcmVzb2x2ZTtcbiAgICAgICAgICAgICAgICBsaW5rLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoXCJsb2FkXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5sb2FkaW5nIHw9IExvYWRlZDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGxpbmsuYWRkRXZlbnRMaXN0ZW5lcihcImVycm9yXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5sb2FkaW5nIHw9IEVycm9yZWQ7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBzdGF0ZS5sb2FkaW5nIHw9IEluc2VydGVkO1xuICAgICAgICAgICAgICBpbnNlcnRTdHlsZXNoZWV0KHJlc291cmNlLCBwcmVjZWRlbmNlLCBvd25lckRvY3VtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc291cmNlID0ge1xuICAgICAgICAgICAgICB0eXBlOiBcInN0eWxlc2hlZXRcIixcbiAgICAgICAgICAgICAgaW5zdGFuY2U6IHJlc291cmNlLFxuICAgICAgICAgICAgICBjb3VudDogMSxcbiAgICAgICAgICAgICAgc3RhdGU6IHN0YXRlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgc3R5bGVzLnNldChrZXksIHJlc291cmNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBNOiBmdW5jdGlvbiAoc3JjLCBvcHRpb25zKSB7XG4gICAgICAgIHByZXZpb3VzRGlzcGF0Y2hlci5NKHNyYywgb3B0aW9ucyk7XG4gICAgICAgIHZhciBvd25lckRvY3VtZW50ID0gZ2xvYmFsRG9jdW1lbnQ7XG4gICAgICAgIGlmIChvd25lckRvY3VtZW50ICYmIHNyYykge1xuICAgICAgICAgIHZhciBzY3JpcHRzID0gZ2V0UmVzb3VyY2VzRnJvbVJvb3Qob3duZXJEb2N1bWVudCkuaG9pc3RhYmxlU2NyaXB0cyxcbiAgICAgICAgICAgIGtleSA9IGdldFNjcmlwdEtleShzcmMpLFxuICAgICAgICAgICAgcmVzb3VyY2UgPSBzY3JpcHRzLmdldChrZXkpO1xuICAgICAgICAgIHJlc291cmNlIHx8XG4gICAgICAgICAgICAoKHJlc291cmNlID0gb3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICAgICAgICBnZXRTY3JpcHRTZWxlY3RvckZyb21LZXkoa2V5KVxuICAgICAgICAgICAgKSksXG4gICAgICAgICAgICByZXNvdXJjZSB8fFxuICAgICAgICAgICAgICAoKHNyYyA9IGFzc2lnbih7IHNyYzogc3JjLCBhc3luYzogITAsIHR5cGU6IFwibW9kdWxlXCIgfSwgb3B0aW9ucykpLFxuICAgICAgICAgICAgICAob3B0aW9ucyA9IHByZWxvYWRQcm9wc01hcC5nZXQoa2V5KSkgJiZcbiAgICAgICAgICAgICAgICBhZG9wdFByZWxvYWRQcm9wc0ZvclNjcmlwdChzcmMsIG9wdGlvbnMpLFxuICAgICAgICAgICAgICAocmVzb3VyY2UgPSBvd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIikpLFxuICAgICAgICAgICAgICBtYXJrTm9kZUFzSG9pc3RhYmxlKHJlc291cmNlKSxcbiAgICAgICAgICAgICAgc2V0SW5pdGlhbFByb3BlcnRpZXMocmVzb3VyY2UsIFwibGlua1wiLCBzcmMpLFxuICAgICAgICAgICAgICBvd25lckRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocmVzb3VyY2UpKSxcbiAgICAgICAgICAgIChyZXNvdXJjZSA9IHtcbiAgICAgICAgICAgICAgdHlwZTogXCJzY3JpcHRcIixcbiAgICAgICAgICAgICAgaW5zdGFuY2U6IHJlc291cmNlLFxuICAgICAgICAgICAgICBjb3VudDogMSxcbiAgICAgICAgICAgICAgc3RhdGU6IG51bGxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc2NyaXB0cy5zZXQoa2V5LCByZXNvdXJjZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICB2YXIgZ2xvYmFsRG9jdW1lbnQgPSBcInVuZGVmaW5lZFwiID09PSB0eXBlb2YgZG9jdW1lbnQgPyBudWxsIDogZG9jdW1lbnQsXG4gICAgICB0YWdDYWNoZXMgPSBudWxsLFxuICAgICAgU1VTUEVOU0VZX1NUWUxFU0hFRVRfVElNRU9VVCA9IDZlNCxcbiAgICAgIFNVU1BFTlNFWV9JTUFHRV9USU1FT1VUID0gODAwLFxuICAgICAgU1VTUEVOU0VZX0lNQUdFX1RJTUVfRVNUSU1BVEUgPSA1MDAsXG4gICAgICBlc3RpbWF0ZWRCeXRlc1dpdGhpbkxpbWl0ID0gMCxcbiAgICAgIExBU1RfUFJFQ0VERU5DRSA9IG51bGwsXG4gICAgICBwcmVjZWRlbmNlc0J5Um9vdCA9IG51bGwsXG4gICAgICBOb3RQZW5kaW5nVHJhbnNpdGlvbiA9IE5vdFBlbmRpbmcsXG4gICAgICBIb3N0VHJhbnNpdGlvbkNvbnRleHQgPSB7XG4gICAgICAgICQkdHlwZW9mOiBSRUFDVF9DT05URVhUX1RZUEUsXG4gICAgICAgIFByb3ZpZGVyOiBudWxsLFxuICAgICAgICBDb25zdW1lcjogbnVsbCxcbiAgICAgICAgX2N1cnJlbnRWYWx1ZTogTm90UGVuZGluZ1RyYW5zaXRpb24sXG4gICAgICAgIF9jdXJyZW50VmFsdWUyOiBOb3RQZW5kaW5nVHJhbnNpdGlvbixcbiAgICAgICAgX3RocmVhZENvdW50OiAwXG4gICAgICB9LFxuICAgICAgYmFkZ2VGb3JtYXQgPSBcIiVjJXMlY1wiLFxuICAgICAgYmFkZ2VTdHlsZSA9XG4gICAgICAgIFwiYmFja2dyb3VuZDogI2U2ZTZlNjtiYWNrZ3JvdW5kOiBsaWdodC1kYXJrKHJnYmEoMCwwLDAsMC4xKSwgcmdiYSgyNTUsMjU1LDI1NSwwLjI1KSk7Y29sb3I6ICMwMDAwMDA7Y29sb3I6IGxpZ2h0LWRhcmsoIzAwMDAwMCwgI2ZmZmZmZik7Ym9yZGVyLXJhZGl1czogMnB4XCIsXG4gICAgICByZXNldFN0eWxlID0gXCJcIixcbiAgICAgIHBhZCA9IFwiIFwiLFxuICAgICAgYmluZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kO1xuICAgIHZhciBkaWRXYXJuQWJvdXROZXN0ZWRVcGRhdGVzID0gITE7XG4gICAgdmFyIG92ZXJyaWRlSG9va1N0YXRlID0gbnVsbCxcbiAgICAgIG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCA9IG51bGwsXG4gICAgICBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGggPSBudWxsLFxuICAgICAgb3ZlcnJpZGVQcm9wcyA9IG51bGwsXG4gICAgICBvdmVycmlkZVByb3BzRGVsZXRlUGF0aCA9IG51bGwsXG4gICAgICBvdmVycmlkZVByb3BzUmVuYW1lUGF0aCA9IG51bGwsXG4gICAgICBzY2hlZHVsZVVwZGF0ZSA9IG51bGwsXG4gICAgICBzY2hlZHVsZVJldHJ5ID0gbnVsbCxcbiAgICAgIHNldEVycm9ySGFuZGxlciA9IG51bGwsXG4gICAgICBzZXRTdXNwZW5zZUhhbmRsZXIgPSBudWxsO1xuICAgIG92ZXJyaWRlSG9va1N0YXRlID0gZnVuY3Rpb24gKGZpYmVyLCBpZCwgcGF0aCwgdmFsdWUpIHtcbiAgICAgIGlkID0gZmluZEhvb2soZmliZXIsIGlkKTtcbiAgICAgIG51bGwgIT09IGlkICYmXG4gICAgICAgICgocGF0aCA9IGNvcHlXaXRoU2V0SW1wbChpZC5tZW1vaXplZFN0YXRlLCBwYXRoLCAwLCB2YWx1ZSkpLFxuICAgICAgICAoaWQubWVtb2l6ZWRTdGF0ZSA9IHBhdGgpLFxuICAgICAgICAoaWQuYmFzZVN0YXRlID0gcGF0aCksXG4gICAgICAgIChmaWJlci5tZW1vaXplZFByb3BzID0gYXNzaWduKHt9LCBmaWJlci5tZW1vaXplZFByb3BzKSksXG4gICAgICAgIChwYXRoID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKSksXG4gICAgICAgIG51bGwgIT09IHBhdGggJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHBhdGgsIGZpYmVyLCAyKSk7XG4gICAgfTtcbiAgICBvdmVycmlkZUhvb2tTdGF0ZURlbGV0ZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIGlkLCBwYXRoKSB7XG4gICAgICBpZCA9IGZpbmRIb29rKGZpYmVyLCBpZCk7XG4gICAgICBudWxsICE9PSBpZCAmJlxuICAgICAgICAoKHBhdGggPSBjb3B5V2l0aERlbGV0ZUltcGwoaWQubWVtb2l6ZWRTdGF0ZSwgcGF0aCwgMCkpLFxuICAgICAgICAoaWQubWVtb2l6ZWRTdGF0ZSA9IHBhdGgpLFxuICAgICAgICAoaWQuYmFzZVN0YXRlID0gcGF0aCksXG4gICAgICAgIChmaWJlci5tZW1vaXplZFByb3BzID0gYXNzaWduKHt9LCBmaWJlci5tZW1vaXplZFByb3BzKSksXG4gICAgICAgIChwYXRoID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKSksXG4gICAgICAgIG51bGwgIT09IHBhdGggJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHBhdGgsIGZpYmVyLCAyKSk7XG4gICAgfTtcbiAgICBvdmVycmlkZUhvb2tTdGF0ZVJlbmFtZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIGlkLCBvbGRQYXRoLCBuZXdQYXRoKSB7XG4gICAgICBpZCA9IGZpbmRIb29rKGZpYmVyLCBpZCk7XG4gICAgICBudWxsICE9PSBpZCAmJlxuICAgICAgICAoKG9sZFBhdGggPSBjb3B5V2l0aFJlbmFtZShpZC5tZW1vaXplZFN0YXRlLCBvbGRQYXRoLCBuZXdQYXRoKSksXG4gICAgICAgIChpZC5tZW1vaXplZFN0YXRlID0gb2xkUGF0aCksXG4gICAgICAgIChpZC5iYXNlU3RhdGUgPSBvbGRQYXRoKSxcbiAgICAgICAgKGZpYmVyLm1lbW9pemVkUHJvcHMgPSBhc3NpZ24oe30sIGZpYmVyLm1lbW9pemVkUHJvcHMpKSxcbiAgICAgICAgKG9sZFBhdGggPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIDIpKSxcbiAgICAgICAgbnVsbCAhPT0gb2xkUGF0aCAmJiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIob2xkUGF0aCwgZmliZXIsIDIpKTtcbiAgICB9O1xuICAgIG92ZXJyaWRlUHJvcHMgPSBmdW5jdGlvbiAoZmliZXIsIHBhdGgsIHZhbHVlKSB7XG4gICAgICBmaWJlci5wZW5kaW5nUHJvcHMgPSBjb3B5V2l0aFNldEltcGwoZmliZXIubWVtb2l6ZWRQcm9wcywgcGF0aCwgMCwgdmFsdWUpO1xuICAgICAgZmliZXIuYWx0ZXJuYXRlICYmIChmaWJlci5hbHRlcm5hdGUucGVuZGluZ1Byb3BzID0gZmliZXIucGVuZGluZ1Byb3BzKTtcbiAgICAgIHBhdGggPSBlbnF1ZXVlQ29uY3VycmVudFJlbmRlckZvckxhbmUoZmliZXIsIDIpO1xuICAgICAgbnVsbCAhPT0gcGF0aCAmJiBzY2hlZHVsZVVwZGF0ZU9uRmliZXIocGF0aCwgZmliZXIsIDIpO1xuICAgIH07XG4gICAgb3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGggPSBmdW5jdGlvbiAoZmliZXIsIHBhdGgpIHtcbiAgICAgIGZpYmVyLnBlbmRpbmdQcm9wcyA9IGNvcHlXaXRoRGVsZXRlSW1wbChmaWJlci5tZW1vaXplZFByb3BzLCBwYXRoLCAwKTtcbiAgICAgIGZpYmVyLmFsdGVybmF0ZSAmJiAoZmliZXIuYWx0ZXJuYXRlLnBlbmRpbmdQcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcyk7XG4gICAgICBwYXRoID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKTtcbiAgICAgIG51bGwgIT09IHBhdGggJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHBhdGgsIGZpYmVyLCAyKTtcbiAgICB9O1xuICAgIG92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoID0gZnVuY3Rpb24gKGZpYmVyLCBvbGRQYXRoLCBuZXdQYXRoKSB7XG4gICAgICBmaWJlci5wZW5kaW5nUHJvcHMgPSBjb3B5V2l0aFJlbmFtZShcbiAgICAgICAgZmliZXIubWVtb2l6ZWRQcm9wcyxcbiAgICAgICAgb2xkUGF0aCxcbiAgICAgICAgbmV3UGF0aFxuICAgICAgKTtcbiAgICAgIGZpYmVyLmFsdGVybmF0ZSAmJiAoZmliZXIuYWx0ZXJuYXRlLnBlbmRpbmdQcm9wcyA9IGZpYmVyLnBlbmRpbmdQcm9wcyk7XG4gICAgICBvbGRQYXRoID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCAyKTtcbiAgICAgIG51bGwgIT09IG9sZFBhdGggJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKG9sZFBhdGgsIGZpYmVyLCAyKTtcbiAgICB9O1xuICAgIHNjaGVkdWxlVXBkYXRlID0gZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICB2YXIgcm9vdCA9IGVucXVldWVDb25jdXJyZW50UmVuZGVyRm9yTGFuZShmaWJlciwgMik7XG4gICAgICBudWxsICE9PSByb290ICYmIHNjaGVkdWxlVXBkYXRlT25GaWJlcihyb290LCBmaWJlciwgMik7XG4gICAgfTtcbiAgICBzY2hlZHVsZVJldHJ5ID0gZnVuY3Rpb24gKGZpYmVyKSB7XG4gICAgICB2YXIgbGFuZSA9IGNsYWltTmV4dFJldHJ5TGFuZSgpLFxuICAgICAgICByb290ID0gZW5xdWV1ZUNvbmN1cnJlbnRSZW5kZXJGb3JMYW5lKGZpYmVyLCBsYW5lKTtcbiAgICAgIG51bGwgIT09IHJvb3QgJiYgc2NoZWR1bGVVcGRhdGVPbkZpYmVyKHJvb3QsIGZpYmVyLCBsYW5lKTtcbiAgICB9O1xuICAgIHNldEVycm9ySGFuZGxlciA9IGZ1bmN0aW9uIChuZXdTaG91bGRFcnJvckltcGwpIHtcbiAgICAgIHNob3VsZEVycm9ySW1wbCA9IG5ld1Nob3VsZEVycm9ySW1wbDtcbiAgICB9O1xuICAgIHNldFN1c3BlbnNlSGFuZGxlciA9IGZ1bmN0aW9uIChuZXdTaG91bGRTdXNwZW5kSW1wbCkge1xuICAgICAgc2hvdWxkU3VzcGVuZEltcGwgPSBuZXdTaG91bGRTdXNwZW5kSW1wbDtcbiAgICB9O1xuICAgIHZhciBfZW5hYmxlZCA9ICEwLFxuICAgICAgcmV0dXJuX3RhcmdldEluc3QgPSBudWxsLFxuICAgICAgaGFzU2NoZWR1bGVkUmVwbGF5QXR0ZW1wdCA9ICExLFxuICAgICAgcXVldWVkRm9jdXMgPSBudWxsLFxuICAgICAgcXVldWVkRHJhZyA9IG51bGwsXG4gICAgICBxdWV1ZWRNb3VzZSA9IG51bGwsXG4gICAgICBxdWV1ZWRQb2ludGVycyA9IG5ldyBNYXAoKSxcbiAgICAgIHF1ZXVlZFBvaW50ZXJDYXB0dXJlcyA9IG5ldyBNYXAoKSxcbiAgICAgIHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0cyA9IFtdLFxuICAgICAgZGlzY3JldGVSZXBsYXlhYmxlRXZlbnRzID1cbiAgICAgICAgXCJtb3VzZWRvd24gbW91c2V1cCB0b3VjaGNhbmNlbCB0b3VjaGVuZCB0b3VjaHN0YXJ0IGF1eGNsaWNrIGRibGNsaWNrIHBvaW50ZXJjYW5jZWwgcG9pbnRlcmRvd24gcG9pbnRlcnVwIGRyYWdlbmQgZHJhZ3N0YXJ0IGRyb3AgY29tcG9zaXRpb25lbmQgY29tcG9zaXRpb25zdGFydCBrZXlkb3duIGtleXByZXNzIGtleXVwIGlucHV0IHRleHRJbnB1dCBjb3B5IGN1dCBwYXN0ZSBjbGljayBjaGFuZ2UgY29udGV4dG1lbnUgcmVzZXRcIi5zcGxpdChcbiAgICAgICAgICBcIiBcIlxuICAgICAgICApLFxuICAgICAgbGFzdFNjaGVkdWxlZFJlcGxheVF1ZXVlID0gbnVsbDtcbiAgICBSZWFjdERPTUh5ZHJhdGlvblJvb3QucHJvdG90eXBlLnJlbmRlciA9IFJlYWN0RE9NUm9vdC5wcm90b3R5cGUucmVuZGVyID1cbiAgICAgIGZ1bmN0aW9uIChjaGlsZHJlbikge1xuICAgICAgICB2YXIgcm9vdCA9IHRoaXMuX2ludGVybmFsUm9vdDtcbiAgICAgICAgaWYgKG51bGwgPT09IHJvb3QpIHRocm93IEVycm9yKFwiQ2Fubm90IHVwZGF0ZSBhbiB1bm1vdW50ZWQgcm9vdC5cIik7XG4gICAgICAgIHZhciBhcmdzID0gYXJndW1lbnRzO1xuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBhcmdzWzFdXG4gICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcImRvZXMgbm90IHN1cHBvcnQgdGhlIHNlY29uZCBjYWxsYmFjayBhcmd1bWVudC4gVG8gZXhlY3V0ZSBhIHNpZGUgZWZmZWN0IGFmdGVyIHJlbmRlcmluZywgZGVjbGFyZSBpdCBpbiBhIGNvbXBvbmVudCBib2R5IHdpdGggdXNlRWZmZWN0KCkuXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGlzVmFsaWRDb250YWluZXIoYXJnc1sxXSlcbiAgICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIllvdSBwYXNzZWQgYSBjb250YWluZXIgdG8gdGhlIHNlY29uZCBhcmd1bWVudCBvZiByb290LnJlbmRlciguLi4pLiBZb3UgZG9uJ3QgbmVlZCB0byBwYXNzIGl0IGFnYWluIHNpbmNlIHlvdSBhbHJlYWR5IHBhc3NlZCBpdCB0byBjcmVhdGUgdGhlIHJvb3QuXCJcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgOiBcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgYXJnc1sxXSAmJlxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICAgIFwiWW91IHBhc3NlZCBhIHNlY29uZCBhcmd1bWVudCB0byByb290LnJlbmRlciguLi4pIGJ1dCBpdCBvbmx5IGFjY2VwdHMgb25lIGFyZ3VtZW50LlwiXG4gICAgICAgICAgICAgICk7XG4gICAgICAgIGFyZ3MgPSBjaGlsZHJlbjtcbiAgICAgICAgdmFyIGN1cnJlbnQgPSByb290LmN1cnJlbnQsXG4gICAgICAgICAgbGFuZSA9IHJlcXVlc3RVcGRhdGVMYW5lKGN1cnJlbnQpO1xuICAgICAgICB1cGRhdGVDb250YWluZXJJbXBsKGN1cnJlbnQsIGxhbmUsIGFyZ3MsIHJvb3QsIG51bGwsIG51bGwpO1xuICAgICAgfTtcbiAgICBSZWFjdERPTUh5ZHJhdGlvblJvb3QucHJvdG90eXBlLnVubW91bnQgPSBSZWFjdERPTVJvb3QucHJvdG90eXBlLnVubW91bnQgPVxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgYXJncyA9IGFyZ3VtZW50cztcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgYXJnc1swXSAmJlxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcImRvZXMgbm90IHN1cHBvcnQgYSBjYWxsYmFjayBhcmd1bWVudC4gVG8gZXhlY3V0ZSBhIHNpZGUgZWZmZWN0IGFmdGVyIHJlbmRlcmluZywgZGVjbGFyZSBpdCBpbiBhIGNvbXBvbmVudCBib2R5IHdpdGggdXNlRWZmZWN0KCkuXCJcbiAgICAgICAgICApO1xuICAgICAgICBhcmdzID0gdGhpcy5faW50ZXJuYWxSb290O1xuICAgICAgICBpZiAobnVsbCAhPT0gYXJncykge1xuICAgICAgICAgIHRoaXMuX2ludGVybmFsUm9vdCA9IG51bGw7XG4gICAgICAgICAgdmFyIGNvbnRhaW5lciA9IGFyZ3MuY29udGFpbmVySW5mbztcbiAgICAgICAgICAoZXhlY3V0aW9uQ29udGV4dCAmIChSZW5kZXJDb250ZXh0IHwgQ29tbWl0Q29udGV4dCkpICE9PSBOb0NvbnRleHQgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiQXR0ZW1wdGVkIHRvIHN5bmNocm9ub3VzbHkgdW5tb3VudCBhIHJvb3Qgd2hpbGUgUmVhY3Qgd2FzIGFscmVhZHkgcmVuZGVyaW5nLiBSZWFjdCBjYW5ub3QgZmluaXNoIHVubW91bnRpbmcgdGhlIHJvb3QgdW50aWwgdGhlIGN1cnJlbnQgcmVuZGVyIGhhcyBjb21wbGV0ZWQsIHdoaWNoIG1heSBsZWFkIHRvIGEgcmFjZSBjb25kaXRpb24uXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdXBkYXRlQ29udGFpbmVySW1wbChhcmdzLmN1cnJlbnQsIDIsIG51bGwsIGFyZ3MsIG51bGwsIG51bGwpO1xuICAgICAgICAgIGZsdXNoU3luY1dvcmskMSgpO1xuICAgICAgICAgIGNvbnRhaW5lcltpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgUmVhY3RET01IeWRyYXRpb25Sb290LnByb3RvdHlwZS51bnN0YWJsZV9zY2hlZHVsZUh5ZHJhdGlvbiA9IGZ1bmN0aW9uIChcbiAgICAgIHRhcmdldFxuICAgICkge1xuICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICB2YXIgdXBkYXRlUHJpb3JpdHkgPSByZXNvbHZlVXBkYXRlUHJpb3JpdHkoKTtcbiAgICAgICAgdGFyZ2V0ID0geyBibG9ja2VkT246IG51bGwsIHRhcmdldDogdGFyZ2V0LCBwcmlvcml0eTogdXBkYXRlUHJpb3JpdHkgfTtcbiAgICAgICAgZm9yIChcbiAgICAgICAgICB2YXIgaSA9IDA7XG4gICAgICAgICAgaSA8IHF1ZXVlZEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0cy5sZW5ndGggJiZcbiAgICAgICAgICAwICE9PSB1cGRhdGVQcmlvcml0eSAmJlxuICAgICAgICAgIHVwZGF0ZVByaW9yaXR5IDwgcXVldWVkRXhwbGljaXRIeWRyYXRpb25UYXJnZXRzW2ldLnByaW9yaXR5O1xuICAgICAgICAgIGkrK1xuICAgICAgICApO1xuICAgICAgICBxdWV1ZWRFeHBsaWNpdEh5ZHJhdGlvblRhcmdldHMuc3BsaWNlKGksIDAsIHRhcmdldCk7XG4gICAgICAgIDAgPT09IGkgJiYgYXR0ZW1wdEV4cGxpY2l0SHlkcmF0aW9uVGFyZ2V0KHRhcmdldCk7XG4gICAgICB9XG4gICAgfTtcbiAgICAoZnVuY3Rpb24gKCkge1xuICAgICAgdmFyIGlzb21vcnBoaWNSZWFjdFBhY2thZ2VWZXJzaW9uID0gUmVhY3QudmVyc2lvbjtcbiAgICAgIGlmIChcIjE5LjIuNFwiICE9PSBpc29tb3JwaGljUmVhY3RQYWNrYWdlVmVyc2lvbilcbiAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgJ0luY29tcGF0aWJsZSBSZWFjdCB2ZXJzaW9uczogVGhlIFwicmVhY3RcIiBhbmQgXCJyZWFjdC1kb21cIiBwYWNrYWdlcyBtdXN0IGhhdmUgdGhlIGV4YWN0IHNhbWUgdmVyc2lvbi4gSW5zdGVhZCBnb3Q6XFxuICAtIHJlYWN0OiAgICAgICcgK1xuICAgICAgICAgICAgKGlzb21vcnBoaWNSZWFjdFBhY2thZ2VWZXJzaW9uICtcbiAgICAgICAgICAgICAgXCJcXG4gIC0gcmVhY3QtZG9tOiAgMTkuMi40XFxuTGVhcm4gbW9yZTogaHR0cHM6Ly9yZWFjdC5kZXYvd2FybmluZ3MvdmVyc2lvbi1taXNtYXRjaFwiKVxuICAgICAgICApO1xuICAgIH0pKCk7XG4gICAgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIE1hcCAmJlxuICAgICAgbnVsbCAhPSBNYXAucHJvdG90eXBlICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBNYXAucHJvdG90eXBlLmZvckVhY2ggJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFNldCAmJlxuICAgICAgbnVsbCAhPSBTZXQucHJvdG90eXBlICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBTZXQucHJvdG90eXBlLmNsZWFyICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBTZXQucHJvdG90eXBlLmZvckVhY2gpIHx8XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBcIlJlYWN0IGRlcGVuZHMgb24gTWFwIGFuZCBTZXQgYnVpbHQtaW4gdHlwZXMuIE1ha2Ugc3VyZSB0aGF0IHlvdSBsb2FkIGEgcG9seWZpbGwgaW4gb2xkZXIgYnJvd3NlcnMuIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvcmVhY3QtcG9seWZpbGxzXCJcbiAgICAgICk7XG4gICAgUmVhY3RET01TaGFyZWRJbnRlcm5hbHMuZmluZERPTU5vZGUgPSBmdW5jdGlvbiAoY29tcG9uZW50T3JFbGVtZW50KSB7XG4gICAgICB2YXIgZmliZXIgPSBjb21wb25lbnRPckVsZW1lbnQuX3JlYWN0SW50ZXJuYWxzO1xuICAgICAgaWYgKHZvaWQgMCA9PT0gZmliZXIpIHtcbiAgICAgICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGNvbXBvbmVudE9yRWxlbWVudC5yZW5kZXIpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXCJVbmFibGUgdG8gZmluZCBub2RlIG9uIGFuIHVubW91bnRlZCBjb21wb25lbnQuXCIpO1xuICAgICAgICBjb21wb25lbnRPckVsZW1lbnQgPSBPYmplY3Qua2V5cyhjb21wb25lbnRPckVsZW1lbnQpLmpvaW4oXCIsXCIpO1xuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIkFyZ3VtZW50IGFwcGVhcnMgdG8gbm90IGJlIGEgUmVhY3RDb21wb25lbnQuIEtleXM6IFwiICtcbiAgICAgICAgICAgIGNvbXBvbmVudE9yRWxlbWVudFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29tcG9uZW50T3JFbGVtZW50ID0gZmluZEN1cnJlbnRGaWJlclVzaW5nU2xvd1BhdGgoZmliZXIpO1xuICAgICAgY29tcG9uZW50T3JFbGVtZW50ID1cbiAgICAgICAgbnVsbCAhPT0gY29tcG9uZW50T3JFbGVtZW50XG4gICAgICAgICAgPyBmaW5kQ3VycmVudEhvc3RGaWJlckltcGwoY29tcG9uZW50T3JFbGVtZW50KVxuICAgICAgICAgIDogbnVsbDtcbiAgICAgIGNvbXBvbmVudE9yRWxlbWVudCA9XG4gICAgICAgIG51bGwgPT09IGNvbXBvbmVudE9yRWxlbWVudCA/IG51bGwgOiBjb21wb25lbnRPckVsZW1lbnQuc3RhdGVOb2RlO1xuICAgICAgcmV0dXJuIGNvbXBvbmVudE9yRWxlbWVudDtcbiAgICB9O1xuICAgIGlmIChcbiAgICAgICEoZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgaW50ZXJuYWxzID0ge1xuICAgICAgICAgIGJ1bmRsZVR5cGU6IDEsXG4gICAgICAgICAgdmVyc2lvbjogXCIxOS4yLjRcIixcbiAgICAgICAgICByZW5kZXJlclBhY2thZ2VOYW1lOiBcInJlYWN0LWRvbVwiLFxuICAgICAgICAgIGN1cnJlbnREaXNwYXRjaGVyUmVmOiBSZWFjdFNoYXJlZEludGVybmFscyxcbiAgICAgICAgICByZWNvbmNpbGVyVmVyc2lvbjogXCIxOS4yLjRcIlxuICAgICAgICB9O1xuICAgICAgICBpbnRlcm5hbHMub3ZlcnJpZGVIb29rU3RhdGUgPSBvdmVycmlkZUhvb2tTdGF0ZTtcbiAgICAgICAgaW50ZXJuYWxzLm92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aCA9IG92ZXJyaWRlSG9va1N0YXRlRGVsZXRlUGF0aDtcbiAgICAgICAgaW50ZXJuYWxzLm92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aCA9IG92ZXJyaWRlSG9va1N0YXRlUmVuYW1lUGF0aDtcbiAgICAgICAgaW50ZXJuYWxzLm92ZXJyaWRlUHJvcHMgPSBvdmVycmlkZVByb3BzO1xuICAgICAgICBpbnRlcm5hbHMub3ZlcnJpZGVQcm9wc0RlbGV0ZVBhdGggPSBvdmVycmlkZVByb3BzRGVsZXRlUGF0aDtcbiAgICAgICAgaW50ZXJuYWxzLm92ZXJyaWRlUHJvcHNSZW5hbWVQYXRoID0gb3ZlcnJpZGVQcm9wc1JlbmFtZVBhdGg7XG4gICAgICAgIGludGVybmFscy5zY2hlZHVsZVVwZGF0ZSA9IHNjaGVkdWxlVXBkYXRlO1xuICAgICAgICBpbnRlcm5hbHMuc2NoZWR1bGVSZXRyeSA9IHNjaGVkdWxlUmV0cnk7XG4gICAgICAgIGludGVybmFscy5zZXRFcnJvckhhbmRsZXIgPSBzZXRFcnJvckhhbmRsZXI7XG4gICAgICAgIGludGVybmFscy5zZXRTdXNwZW5zZUhhbmRsZXIgPSBzZXRTdXNwZW5zZUhhbmRsZXI7XG4gICAgICAgIGludGVybmFscy5zY2hlZHVsZVJlZnJlc2ggPSBzY2hlZHVsZVJlZnJlc2g7XG4gICAgICAgIGludGVybmFscy5zY2hlZHVsZVJvb3QgPSBzY2hlZHVsZVJvb3Q7XG4gICAgICAgIGludGVybmFscy5zZXRSZWZyZXNoSGFuZGxlciA9IHNldFJlZnJlc2hIYW5kbGVyO1xuICAgICAgICBpbnRlcm5hbHMuZ2V0Q3VycmVudEZpYmVyID0gZ2V0Q3VycmVudEZpYmVyRm9yRGV2VG9vbHM7XG4gICAgICAgIHJldHVybiBpbmplY3RJbnRlcm5hbHMoaW50ZXJuYWxzKTtcbiAgICAgIH0pKCkgJiZcbiAgICAgIGNhblVzZURPTSAmJlxuICAgICAgd2luZG93LnRvcCA9PT0gd2luZG93LnNlbGYgJiZcbiAgICAgICgoLTEgPCBuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoXCJDaHJvbWVcIikgJiZcbiAgICAgICAgLTEgPT09IG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZihcIkVkZ2VcIikpIHx8XG4gICAgICAgIC0xIDwgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKFwiRmlyZWZveFwiKSlcbiAgICApIHtcbiAgICAgIHZhciBwcm90b2NvbCA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbDtcbiAgICAgIC9eKGh0dHBzP3xmaWxlKTokLy50ZXN0KHByb3RvY29sKSAmJlxuICAgICAgICBjb25zb2xlLmluZm8oXG4gICAgICAgICAgXCIlY0Rvd25sb2FkIHRoZSBSZWFjdCBEZXZUb29scyBmb3IgYSBiZXR0ZXIgZGV2ZWxvcG1lbnQgZXhwZXJpZW5jZTogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9yZWFjdC1kZXZ0b29sc1wiICtcbiAgICAgICAgICAgIChcImZpbGU6XCIgPT09IHByb3RvY29sXG4gICAgICAgICAgICAgID8gXCJcXG5Zb3UgbWlnaHQgbmVlZCB0byB1c2UgYSBsb2NhbCBIVFRQIHNlcnZlciAoaW5zdGVhZCBvZiBmaWxlOi8vKTogaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9yZWFjdC1kZXZ0b29scy1mYXFcIlxuICAgICAgICAgICAgICA6IFwiXCIpLFxuICAgICAgICAgIFwiZm9udC13ZWlnaHQ6Ym9sZFwiXG4gICAgICAgICk7XG4gICAgfVxuICAgIGV4cG9ydHMuY3JlYXRlUm9vdCA9IGZ1bmN0aW9uIChjb250YWluZXIsIG9wdGlvbnMpIHtcbiAgICAgIGlmICghaXNWYWxpZENvbnRhaW5lcihjb250YWluZXIpKVxuICAgICAgICB0aHJvdyBFcnJvcihcIlRhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuXCIpO1xuICAgICAgd2FybklmUmVhY3RET01Db250YWluZXJJbkRFVihjb250YWluZXIpO1xuICAgICAgdmFyIGlzU3RyaWN0TW9kZSA9ICExLFxuICAgICAgICBpZGVudGlmaWVyUHJlZml4ID0gXCJcIixcbiAgICAgICAgb25VbmNhdWdodEVycm9yID0gZGVmYXVsdE9uVW5jYXVnaHRFcnJvcixcbiAgICAgICAgb25DYXVnaHRFcnJvciA9IGRlZmF1bHRPbkNhdWdodEVycm9yLFxuICAgICAgICBvblJlY292ZXJhYmxlRXJyb3IgPSBkZWZhdWx0T25SZWNvdmVyYWJsZUVycm9yO1xuICAgICAgbnVsbCAhPT0gb3B0aW9ucyAmJlxuICAgICAgICB2b2lkIDAgIT09IG9wdGlvbnMgJiZcbiAgICAgICAgKG9wdGlvbnMuaHlkcmF0ZVxuICAgICAgICAgID8gY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBcImh5ZHJhdGUgdGhyb3VnaCBjcmVhdGVSb290IGlzIGRlcHJlY2F0ZWQuIFVzZSBSZWFjdERPTUNsaWVudC5oeWRyYXRlUm9vdChjb250YWluZXIsIDxBcHAgLz4pIGluc3RlYWQuXCJcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IFwib2JqZWN0XCIgPT09IHR5cGVvZiBvcHRpb25zICYmXG4gICAgICAgICAgICBudWxsICE9PSBvcHRpb25zICYmXG4gICAgICAgICAgICBvcHRpb25zLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiWW91IHBhc3NlZCBhIEpTWCBlbGVtZW50IHRvIGNyZWF0ZVJvb3QuIFlvdSBwcm9iYWJseSBtZWFudCB0byBjYWxsIHJvb3QucmVuZGVyIGluc3RlYWQuIEV4YW1wbGUgdXNhZ2U6XFxuXFxuICBsZXQgcm9vdCA9IGNyZWF0ZVJvb3QoZG9tQ29udGFpbmVyKTtcXG4gIHJvb3QucmVuZGVyKDxBcHAgLz4pO1wiXG4gICAgICAgICAgICApLFxuICAgICAgICAhMCA9PT0gb3B0aW9ucy51bnN0YWJsZV9zdHJpY3RNb2RlICYmIChpc1N0cmljdE1vZGUgPSAhMCksXG4gICAgICAgIHZvaWQgMCAhPT0gb3B0aW9ucy5pZGVudGlmaWVyUHJlZml4ICYmXG4gICAgICAgICAgKGlkZW50aWZpZXJQcmVmaXggPSBvcHRpb25zLmlkZW50aWZpZXJQcmVmaXgpLFxuICAgICAgICB2b2lkIDAgIT09IG9wdGlvbnMub25VbmNhdWdodEVycm9yICYmXG4gICAgICAgICAgKG9uVW5jYXVnaHRFcnJvciA9IG9wdGlvbnMub25VbmNhdWdodEVycm9yKSxcbiAgICAgICAgdm9pZCAwICE9PSBvcHRpb25zLm9uQ2F1Z2h0RXJyb3IgJiZcbiAgICAgICAgICAob25DYXVnaHRFcnJvciA9IG9wdGlvbnMub25DYXVnaHRFcnJvciksXG4gICAgICAgIHZvaWQgMCAhPT0gb3B0aW9ucy5vblJlY292ZXJhYmxlRXJyb3IgJiZcbiAgICAgICAgICAob25SZWNvdmVyYWJsZUVycm9yID0gb3B0aW9ucy5vblJlY292ZXJhYmxlRXJyb3IpKTtcbiAgICAgIG9wdGlvbnMgPSBjcmVhdGVGaWJlclJvb3QoXG4gICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgMSxcbiAgICAgICAgITEsXG4gICAgICAgIG51bGwsXG4gICAgICAgIG51bGwsXG4gICAgICAgIGlzU3RyaWN0TW9kZSxcbiAgICAgICAgaWRlbnRpZmllclByZWZpeCxcbiAgICAgICAgbnVsbCxcbiAgICAgICAgb25VbmNhdWdodEVycm9yLFxuICAgICAgICBvbkNhdWdodEVycm9yLFxuICAgICAgICBvblJlY292ZXJhYmxlRXJyb3IsXG4gICAgICAgIGRlZmF1bHRPbkRlZmF1bHRUcmFuc2l0aW9uSW5kaWNhdG9yXG4gICAgICApO1xuICAgICAgY29udGFpbmVyW2ludGVybmFsQ29udGFpbmVySW5zdGFuY2VLZXldID0gb3B0aW9ucy5jdXJyZW50O1xuICAgICAgbGlzdGVuVG9BbGxTdXBwb3J0ZWRFdmVudHMoY29udGFpbmVyKTtcbiAgICAgIHJldHVybiBuZXcgUmVhY3RET01Sb290KG9wdGlvbnMpO1xuICAgIH07XG4gICAgZXhwb3J0cy5oeWRyYXRlUm9vdCA9IGZ1bmN0aW9uIChjb250YWluZXIsIGluaXRpYWxDaGlsZHJlbiwgb3B0aW9ucykge1xuICAgICAgaWYgKCFpc1ZhbGlkQ29udGFpbmVyKGNvbnRhaW5lcikpXG4gICAgICAgIHRocm93IEVycm9yKFwiVGFyZ2V0IGNvbnRhaW5lciBpcyBub3QgYSBET00gZWxlbWVudC5cIik7XG4gICAgICB3YXJuSWZSZWFjdERPTUNvbnRhaW5lckluREVWKGNvbnRhaW5lcik7XG4gICAgICB2b2lkIDAgPT09IGluaXRpYWxDaGlsZHJlbiAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiTXVzdCBwcm92aWRlIGluaXRpYWwgY2hpbGRyZW4gYXMgc2Vjb25kIGFyZ3VtZW50IHRvIGh5ZHJhdGVSb290LiBFeGFtcGxlIHVzYWdlOiBoeWRyYXRlUm9vdChkb21Db250YWluZXIsIDxBcHAgLz4pXCJcbiAgICAgICAgKTtcbiAgICAgIHZhciBpc1N0cmljdE1vZGUgPSAhMSxcbiAgICAgICAgaWRlbnRpZmllclByZWZpeCA9IFwiXCIsXG4gICAgICAgIG9uVW5jYXVnaHRFcnJvciA9IGRlZmF1bHRPblVuY2F1Z2h0RXJyb3IsXG4gICAgICAgIG9uQ2F1Z2h0RXJyb3IgPSBkZWZhdWx0T25DYXVnaHRFcnJvcixcbiAgICAgICAgb25SZWNvdmVyYWJsZUVycm9yID0gZGVmYXVsdE9uUmVjb3ZlcmFibGVFcnJvcixcbiAgICAgICAgZm9ybVN0YXRlID0gbnVsbDtcbiAgICAgIG51bGwgIT09IG9wdGlvbnMgJiZcbiAgICAgICAgdm9pZCAwICE9PSBvcHRpb25zICYmXG4gICAgICAgICghMCA9PT0gb3B0aW9ucy51bnN0YWJsZV9zdHJpY3RNb2RlICYmIChpc1N0cmljdE1vZGUgPSAhMCksXG4gICAgICAgIHZvaWQgMCAhPT0gb3B0aW9ucy5pZGVudGlmaWVyUHJlZml4ICYmXG4gICAgICAgICAgKGlkZW50aWZpZXJQcmVmaXggPSBvcHRpb25zLmlkZW50aWZpZXJQcmVmaXgpLFxuICAgICAgICB2b2lkIDAgIT09IG9wdGlvbnMub25VbmNhdWdodEVycm9yICYmXG4gICAgICAgICAgKG9uVW5jYXVnaHRFcnJvciA9IG9wdGlvbnMub25VbmNhdWdodEVycm9yKSxcbiAgICAgICAgdm9pZCAwICE9PSBvcHRpb25zLm9uQ2F1Z2h0RXJyb3IgJiZcbiAgICAgICAgICAob25DYXVnaHRFcnJvciA9IG9wdGlvbnMub25DYXVnaHRFcnJvciksXG4gICAgICAgIHZvaWQgMCAhPT0gb3B0aW9ucy5vblJlY292ZXJhYmxlRXJyb3IgJiZcbiAgICAgICAgICAob25SZWNvdmVyYWJsZUVycm9yID0gb3B0aW9ucy5vblJlY292ZXJhYmxlRXJyb3IpLFxuICAgICAgICB2b2lkIDAgIT09IG9wdGlvbnMuZm9ybVN0YXRlICYmIChmb3JtU3RhdGUgPSBvcHRpb25zLmZvcm1TdGF0ZSkpO1xuICAgICAgaW5pdGlhbENoaWxkcmVuID0gY3JlYXRlRmliZXJSb290KFxuICAgICAgICBjb250YWluZXIsXG4gICAgICAgIDEsXG4gICAgICAgICEwLFxuICAgICAgICBpbml0aWFsQ2hpbGRyZW4sXG4gICAgICAgIG51bGwgIT0gb3B0aW9ucyA/IG9wdGlvbnMgOiBudWxsLFxuICAgICAgICBpc1N0cmljdE1vZGUsXG4gICAgICAgIGlkZW50aWZpZXJQcmVmaXgsXG4gICAgICAgIGZvcm1TdGF0ZSxcbiAgICAgICAgb25VbmNhdWdodEVycm9yLFxuICAgICAgICBvbkNhdWdodEVycm9yLFxuICAgICAgICBvblJlY292ZXJhYmxlRXJyb3IsXG4gICAgICAgIGRlZmF1bHRPbkRlZmF1bHRUcmFuc2l0aW9uSW5kaWNhdG9yXG4gICAgICApO1xuICAgICAgaW5pdGlhbENoaWxkcmVuLmNvbnRleHQgPSBnZXRDb250ZXh0Rm9yU3VidHJlZShudWxsKTtcbiAgICAgIG9wdGlvbnMgPSBpbml0aWFsQ2hpbGRyZW4uY3VycmVudDtcbiAgICAgIGlzU3RyaWN0TW9kZSA9IHJlcXVlc3RVcGRhdGVMYW5lKG9wdGlvbnMpO1xuICAgICAgaXNTdHJpY3RNb2RlID0gZ2V0QnVtcGVkTGFuZUZvckh5ZHJhdGlvbkJ5TGFuZShpc1N0cmljdE1vZGUpO1xuICAgICAgaWRlbnRpZmllclByZWZpeCA9IGNyZWF0ZVVwZGF0ZShpc1N0cmljdE1vZGUpO1xuICAgICAgaWRlbnRpZmllclByZWZpeC5jYWxsYmFjayA9IG51bGw7XG4gICAgICBlbnF1ZXVlVXBkYXRlKG9wdGlvbnMsIGlkZW50aWZpZXJQcmVmaXgsIGlzU3RyaWN0TW9kZSk7XG4gICAgICBzdGFydFVwZGF0ZVRpbWVyQnlMYW5lKGlzU3RyaWN0TW9kZSwgXCJoeWRyYXRlUm9vdCgpXCIsIG51bGwpO1xuICAgICAgb3B0aW9ucyA9IGlzU3RyaWN0TW9kZTtcbiAgICAgIGluaXRpYWxDaGlsZHJlbi5jdXJyZW50LmxhbmVzID0gb3B0aW9ucztcbiAgICAgIG1hcmtSb290VXBkYXRlZCQxKGluaXRpYWxDaGlsZHJlbiwgb3B0aW9ucyk7XG4gICAgICBlbnN1cmVSb290SXNTY2hlZHVsZWQoaW5pdGlhbENoaWxkcmVuKTtcbiAgICAgIGNvbnRhaW5lcltpbnRlcm5hbENvbnRhaW5lckluc3RhbmNlS2V5XSA9IGluaXRpYWxDaGlsZHJlbi5jdXJyZW50O1xuICAgICAgbGlzdGVuVG9BbGxTdXBwb3J0ZWRFdmVudHMoY29udGFpbmVyKTtcbiAgICAgIHJldHVybiBuZXcgUmVhY3RET01IeWRyYXRpb25Sb290KGluaXRpYWxDaGlsZHJlbik7XG4gICAgfTtcbiAgICBleHBvcnRzLnZlcnNpb24gPSBcIjE5LjIuNFwiO1xuICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT1cbiAgICAgICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcCAmJlxuICAgICAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdG9wKEVycm9yKCkpO1xuICB9KSgpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-dom/cjs/react-dom-client.development.js\n")); + +/***/ }), + +/***/ "./node_modules/react-dom/cjs/react-dom.development.js": +/*!*************************************************************!*\ + !*** ./node_modules/react-dom/cjs/react-dom.development.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n try {\n testStringCoercion(key);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n JSCompiler_inline_result &&\n (console.error(\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n key[Symbol.toStringTag]) ||\n key.constructor.name ||\n \"Object\"\n ),\n testStringCoercion(key));\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n }\n function getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n }\n function getValueDescriptorExpectingObjectForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function getValueDescriptorExpectingEnumForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : \"string\" === typeof thing\n ? JSON.stringify(thing)\n : \"number\" === typeof thing\n ? \"`\" + thing + \"`\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\"),\n Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(\n \"Invalid form element. requestFormReset must be passed a form that was rendered by React.\"\n );\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n (\"function\" === typeof Map &&\n null != Map.prototype &&\n \"function\" === typeof Map.prototype.forEach &&\n \"function\" === typeof Set &&\n null != Set.prototype &&\n \"function\" === typeof Set.prototype.clear &&\n \"function\" === typeof Set.prototype.forEach) ||\n console.error(\n \"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\"\n );\n exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\n exports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(\"Target container is not a DOM element.\");\n return createPortal$1(children, container, null, key);\n };\n exports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn))\n return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f() &&\n console.error(\n \"flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task.\"\n );\n }\n };\n exports.preconnect = function (href, options) {\n \"string\" === typeof href && href\n ? null != options && \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : null != options &&\n \"string\" !== typeof options.crossOrigin &&\n console.error(\n \"ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.\",\n getValueDescriptorExpectingObjectForWarning(options.crossOrigin)\n )\n : console.error(\n \"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n };\n exports.prefetchDNS = function (href) {\n if (\"string\" !== typeof href || !href)\n console.error(\n \"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n else if (1 < arguments.length) {\n var options = arguments[1];\n \"object\" === typeof options && options.hasOwnProperty(\"crossOrigin\")\n ? console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n );\n }\n \"string\" === typeof href && Internals.d.D(href);\n };\n exports.preinit = function (href, options) {\n \"string\" === typeof href && href\n ? null == options || \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : \"style\" !== options.as &&\n \"script\" !== options.as &&\n console.error(\n 'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are \"style\" and \"script\".',\n getValueDescriptorExpectingEnumForWarning(options.as)\n )\n : console.error(\n \"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n if (\n \"string\" === typeof href &&\n options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence\n ? options.precedence\n : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n };\n exports.preinitModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"script\" !== options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingEnumForWarning(options.as) +\n \".\");\n if (encountered)\n console.error(\n \"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s\",\n encountered\n );\n else\n switch (\n ((encountered =\n options && \"string\" === typeof options.as ? options.as : \"script\"),\n encountered)\n ) {\n case \"script\":\n break;\n default:\n (encountered =\n getValueDescriptorExpectingEnumForWarning(encountered)),\n console.error(\n 'ReactDOM.preinitModule(): Currently the only supported \"as\" type for this function is \"script\" but received \"%s\" instead. This warning was generated for `href` \"%s\". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',\n encountered,\n href\n );\n }\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as)\n (encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.M(href, {\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0,\n nonce:\n \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n } else null == options && Internals.d.M(href);\n };\n exports.preload = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n null == options || \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : (\"string\" === typeof options.as && options.as) ||\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `<link rel=\"preload\" as=\"...\" />` tag.%s',\n encountered\n );\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n encountered = options.as;\n var crossOrigin = getCrossOriginStringAs(\n encountered,\n options.crossOrigin\n );\n Internals.d.L(href, encountered, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet\n ? options.imageSrcSet\n : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes\n ? options.imageSizes\n : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n };\n exports.preloadModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"string\" !== typeof options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `<link rel=\"modulepreload\" as=\"...\" />` tag.%s',\n encountered\n );\n \"string\" === typeof href &&\n (options\n ? ((encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0\n }))\n : Internals.d.m(href));\n };\n exports.requestFormReset = function (form) {\n Internals.d.r(form);\n };\n exports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n };\n exports.useFormState = function (action, initialState, permalink) {\n return resolveDispatcher().useFormState(action, initialState, permalink);\n };\n exports.useFormStatus = function () {\n return resolveDispatcher().useHostTransitionStatus();\n };\n exports.version = \"19.2.4\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2Nqcy9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhO0FBQ2IsS0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1CQUFPLENBQUMsNENBQU87QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksb0VBQW9FO0FBQ3hFO0FBQ0EsSUFBSSxvQkFBb0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksaUJBQWlCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksa0JBQWtCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxtQkFBbUI7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGVBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsSUFBSSxxQkFBcUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2YsVUFBVTtBQUNWO0FBQ0EsSUFBSSxlQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxJQUFJLHFCQUFxQjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLElBQUksd0JBQXdCO0FBQzVCO0FBQ0E7QUFDQSxJQUFJLCtCQUErQjtBQUNuQztBQUNBO0FBQ0EsSUFBSSxvQkFBb0I7QUFDeEI7QUFDQTtBQUNBLElBQUkscUJBQXFCO0FBQ3pCO0FBQ0E7QUFDQSxJQUFJLGVBQWU7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9janMvcmVhY3QtZG9tLmRldmVsb3BtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWRvbS5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cInByb2R1Y3Rpb25cIiAhPT0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgJiZcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBub29wKCkge31cbiAgICBmdW5jdGlvbiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpIHtcbiAgICAgIHJldHVybiBcIlwiICsgdmFsdWU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNyZWF0ZVBvcnRhbCQxKGNoaWxkcmVuLCBjb250YWluZXJJbmZvLCBpbXBsZW1lbnRhdGlvbikge1xuICAgICAgdmFyIGtleSA9XG4gICAgICAgIDMgPCBhcmd1bWVudHMubGVuZ3RoICYmIHZvaWQgMCAhPT0gYXJndW1lbnRzWzNdID8gYXJndW1lbnRzWzNdIDogbnVsbDtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRlc3RTdHJpbmdDb2VyY2lvbihrZXkpO1xuICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gITE7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICEwO1xuICAgICAgfVxuICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ICYmXG4gICAgICAgIChjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLiBUaGlzIHZhbHVlIG11c3QgYmUgY29lcmNlZCB0byBhIHN0cmluZyBiZWZvcmUgdXNpbmcgaXQgaGVyZS5cIixcbiAgICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgU3ltYm9sICYmXG4gICAgICAgICAgICBTeW1ib2wudG9TdHJpbmdUYWcgJiZcbiAgICAgICAgICAgIGtleVtTeW1ib2wudG9TdHJpbmdUYWddKSB8fFxuICAgICAgICAgICAga2V5LmNvbnN0cnVjdG9yLm5hbWUgfHxcbiAgICAgICAgICAgIFwiT2JqZWN0XCJcbiAgICAgICAgKSxcbiAgICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKGtleSkpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX1BPUlRBTF9UWVBFLFxuICAgICAgICBrZXk6IG51bGwgPT0ga2V5ID8gbnVsbCA6IFwiXCIgKyBrZXksXG4gICAgICAgIGNoaWxkcmVuOiBjaGlsZHJlbixcbiAgICAgICAgY29udGFpbmVySW5mbzogY29udGFpbmVySW5mbyxcbiAgICAgICAgaW1wbGVtZW50YXRpb246IGltcGxlbWVudGF0aW9uXG4gICAgICB9O1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDcm9zc09yaWdpblN0cmluZ0FzKGFzLCBpbnB1dCkge1xuICAgICAgaWYgKFwiZm9udFwiID09PSBhcykgcmV0dXJuIFwiXCI7XG4gICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGlucHV0KVxuICAgICAgICByZXR1cm4gXCJ1c2UtY3JlZGVudGlhbHNcIiA9PT0gaW5wdXQgPyBpbnB1dCA6IFwiXCI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcodGhpbmcpIHtcbiAgICAgIHJldHVybiBudWxsID09PSB0aGluZ1xuICAgICAgICA/IFwiYG51bGxgXCJcbiAgICAgICAgOiB2b2lkIDAgPT09IHRoaW5nXG4gICAgICAgICAgPyBcImB1bmRlZmluZWRgXCJcbiAgICAgICAgICA6IFwiXCIgPT09IHRoaW5nXG4gICAgICAgICAgICA/IFwiYW4gZW1wdHkgc3RyaW5nXCJcbiAgICAgICAgICAgIDogJ3NvbWV0aGluZyB3aXRoIHR5cGUgXCInICsgdHlwZW9mIHRoaW5nICsgJ1wiJztcbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nRW51bUZvcldhcm5pbmcodGhpbmcpIHtcbiAgICAgIHJldHVybiBudWxsID09PSB0aGluZ1xuICAgICAgICA/IFwiYG51bGxgXCJcbiAgICAgICAgOiB2b2lkIDAgPT09IHRoaW5nXG4gICAgICAgICAgPyBcImB1bmRlZmluZWRgXCJcbiAgICAgICAgICA6IFwiXCIgPT09IHRoaW5nXG4gICAgICAgICAgICA/IFwiYW4gZW1wdHkgc3RyaW5nXCJcbiAgICAgICAgICAgIDogXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHRoaW5nXG4gICAgICAgICAgICAgID8gSlNPTi5zdHJpbmdpZnkodGhpbmcpXG4gICAgICAgICAgICAgIDogXCJudW1iZXJcIiA9PT0gdHlwZW9mIHRoaW5nXG4gICAgICAgICAgICAgICAgPyBcImBcIiArIHRoaW5nICsgXCJgXCJcbiAgICAgICAgICAgICAgICA6ICdzb21ldGhpbmcgd2l0aCB0eXBlIFwiJyArIHR5cGVvZiB0aGluZyArICdcIic7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVEaXNwYXRjaGVyKCkge1xuICAgICAgdmFyIGRpc3BhdGNoZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5IO1xuICAgICAgbnVsbCA9PT0gZGlzcGF0Y2hlciAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiSW52YWxpZCBob29rIGNhbGwuIEhvb2tzIGNhbiBvbmx5IGJlIGNhbGxlZCBpbnNpZGUgb2YgdGhlIGJvZHkgb2YgYSBmdW5jdGlvbiBjb21wb25lbnQuIFRoaXMgY291bGQgaGFwcGVuIGZvciBvbmUgb2YgdGhlIGZvbGxvd2luZyByZWFzb25zOlxcbjEuIFlvdSBtaWdodCBoYXZlIG1pc21hdGNoaW5nIHZlcnNpb25zIG9mIFJlYWN0IGFuZCB0aGUgcmVuZGVyZXIgKHN1Y2ggYXMgUmVhY3QgRE9NKVxcbjIuIFlvdSBtaWdodCBiZSBicmVha2luZyB0aGUgUnVsZXMgb2YgSG9va3NcXG4zLiBZb3UgbWlnaHQgaGF2ZSBtb3JlIHRoYW4gb25lIGNvcHkgb2YgUmVhY3QgaW4gdGhlIHNhbWUgYXBwXFxuU2VlIGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvaW52YWxpZC1ob29rLWNhbGwgZm9yIHRpcHMgYWJvdXQgaG93IHRvIGRlYnVnIGFuZCBmaXggdGhpcyBwcm9ibGVtLlwiXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gZGlzcGF0Y2hlcjtcbiAgICB9XG4gICAgXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAmJlxuICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydCAmJlxuICAgICAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydChFcnJvcigpKTtcbiAgICB2YXIgUmVhY3QgPSByZXF1aXJlKFwicmVhY3RcIiksXG4gICAgICBJbnRlcm5hbHMgPSB7XG4gICAgICAgIGQ6IHtcbiAgICAgICAgICBmOiBub29wLFxuICAgICAgICAgIHI6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgICAgICBcIkludmFsaWQgZm9ybSBlbGVtZW50LiByZXF1ZXN0Rm9ybVJlc2V0IG11c3QgYmUgcGFzc2VkIGEgZm9ybSB0aGF0IHdhcyByZW5kZXJlZCBieSBSZWFjdC5cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIEQ6IG5vb3AsXG4gICAgICAgICAgQzogbm9vcCxcbiAgICAgICAgICBMOiBub29wLFxuICAgICAgICAgIG06IG5vb3AsXG4gICAgICAgICAgWDogbm9vcCxcbiAgICAgICAgICBTOiBub29wLFxuICAgICAgICAgIE06IG5vb3BcbiAgICAgICAgfSxcbiAgICAgICAgcDogMCxcbiAgICAgICAgZmluZERPTU5vZGU6IG51bGxcbiAgICAgIH0sXG4gICAgICBSRUFDVF9QT1JUQUxfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wb3J0YWxcIiksXG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscyA9XG4gICAgICAgIFJlYWN0Ll9fQ0xJRU5UX0lOVEVSTkFMU19ET19OT1RfVVNFX09SX1dBUk5fVVNFUlNfVEhFWV9DQU5OT1RfVVBHUkFERTtcbiAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgTWFwICYmXG4gICAgICBudWxsICE9IE1hcC5wcm90b3R5cGUgJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIE1hcC5wcm90b3R5cGUuZm9yRWFjaCAmJlxuICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgU2V0ICYmXG4gICAgICBudWxsICE9IFNldC5wcm90b3R5cGUgJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFNldC5wcm90b3R5cGUuY2xlYXIgJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFNldC5wcm90b3R5cGUuZm9yRWFjaCkgfHxcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIFwiUmVhY3QgZGVwZW5kcyBvbiBNYXAgYW5kIFNldCBidWlsdC1pbiB0eXBlcy4gTWFrZSBzdXJlIHRoYXQgeW91IGxvYWQgYSBwb2x5ZmlsbCBpbiBvbGRlciBicm93c2Vycy4gaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3JlYWN0LXBvbHlmaWxsc1wiXG4gICAgICApO1xuICAgIGV4cG9ydHMuX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFID1cbiAgICAgIEludGVybmFscztcbiAgICBleHBvcnRzLmNyZWF0ZVBvcnRhbCA9IGZ1bmN0aW9uIChjaGlsZHJlbiwgY29udGFpbmVyKSB7XG4gICAgICB2YXIga2V5ID1cbiAgICAgICAgMiA8IGFyZ3VtZW50cy5sZW5ndGggJiYgdm9pZCAwICE9PSBhcmd1bWVudHNbMl0gPyBhcmd1bWVudHNbMl0gOiBudWxsO1xuICAgICAgaWYgKFxuICAgICAgICAhY29udGFpbmVyIHx8XG4gICAgICAgICgxICE9PSBjb250YWluZXIubm9kZVR5cGUgJiZcbiAgICAgICAgICA5ICE9PSBjb250YWluZXIubm9kZVR5cGUgJiZcbiAgICAgICAgICAxMSAhPT0gY29udGFpbmVyLm5vZGVUeXBlKVxuICAgICAgKVxuICAgICAgICB0aHJvdyBFcnJvcihcIlRhcmdldCBjb250YWluZXIgaXMgbm90IGEgRE9NIGVsZW1lbnQuXCIpO1xuICAgICAgcmV0dXJuIGNyZWF0ZVBvcnRhbCQxKGNoaWxkcmVuLCBjb250YWluZXIsIG51bGwsIGtleSk7XG4gICAgfTtcbiAgICBleHBvcnRzLmZsdXNoU3luYyA9IGZ1bmN0aW9uIChmbikge1xuICAgICAgdmFyIHByZXZpb3VzVHJhbnNpdGlvbiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQsXG4gICAgICAgIHByZXZpb3VzVXBkYXRlUHJpb3JpdHkgPSBJbnRlcm5hbHMucDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGlmICgoKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBudWxsKSwgKEludGVybmFscy5wID0gMiksIGZuKSlcbiAgICAgICAgICByZXR1cm4gZm4oKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy5UID0gcHJldmlvdXNUcmFuc2l0aW9uKSxcbiAgICAgICAgICAoSW50ZXJuYWxzLnAgPSBwcmV2aW91c1VwZGF0ZVByaW9yaXR5KSxcbiAgICAgICAgICBJbnRlcm5hbHMuZC5mKCkgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiZmx1c2hTeW5jIHdhcyBjYWxsZWQgZnJvbSBpbnNpZGUgYSBsaWZlY3ljbGUgbWV0aG9kLiBSZWFjdCBjYW5ub3QgZmx1c2ggd2hlbiBSZWFjdCBpcyBhbHJlYWR5IHJlbmRlcmluZy4gQ29uc2lkZXIgbW92aW5nIHRoaXMgY2FsbCB0byBhIHNjaGVkdWxlciB0YXNrIG9yIG1pY3JvIHRhc2suXCJcbiAgICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLnByZWNvbm5lY3QgPSBmdW5jdGlvbiAoaHJlZiwgb3B0aW9ucykge1xuICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGhyZWYgJiYgaHJlZlxuICAgICAgICA/IG51bGwgIT0gb3B0aW9ucyAmJiBcIm9iamVjdFwiICE9PSB0eXBlb2Ygb3B0aW9uc1xuICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWFjdERPTS5wcmVjb25uZWN0KCk6IEV4cGVjdGVkIHRoZSBgb3B0aW9uc2AgYXJndW1lbnQgKHNlY29uZCkgdG8gYmUgYW4gb2JqZWN0IGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLiBUaGUgb25seSBzdXBwb3J0ZWQgb3B0aW9uIGF0IHRoaXMgdGltZSBpcyBgY3Jvc3NPcmlnaW5gIHdoaWNoIGFjY2VwdHMgYSBzdHJpbmcuXCIsXG4gICAgICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKG9wdGlvbnMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBudWxsICE9IG9wdGlvbnMgJiZcbiAgICAgICAgICAgIFwic3RyaW5nXCIgIT09IHR5cGVvZiBvcHRpb25zLmNyb3NzT3JpZ2luICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlYWN0RE9NLnByZWNvbm5lY3QoKTogRXhwZWN0ZWQgdGhlIGBjcm9zc09yaWdpbmAgb3B0aW9uIChzZWNvbmQgYXJndW1lbnQpIHRvIGJlIGEgc3RyaW5nIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLiBUcnkgcmVtb3ZpbmcgdGhpcyBvcHRpb24gb3IgcGFzc2luZyBhIHN0cmluZyB2YWx1ZSBpbnN0ZWFkLlwiLFxuICAgICAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKG9wdGlvbnMuY3Jvc3NPcmlnaW4pXG4gICAgICAgICAgICApXG4gICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiUmVhY3RET00ucHJlY29ubmVjdCgpOiBFeHBlY3RlZCB0aGUgYGhyZWZgIGFyZ3VtZW50IChmaXJzdCkgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLlwiLFxuICAgICAgICAgICAgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhocmVmKVxuICAgICAgICAgICk7XG4gICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgaHJlZiAmJlxuICAgICAgICAob3B0aW9uc1xuICAgICAgICAgID8gKChvcHRpb25zID0gb3B0aW9ucy5jcm9zc09yaWdpbiksXG4gICAgICAgICAgICAob3B0aW9ucyA9XG4gICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zXG4gICAgICAgICAgICAgICAgPyBcInVzZS1jcmVkZW50aWFsc1wiID09PSBvcHRpb25zXG4gICAgICAgICAgICAgICAgICA/IG9wdGlvbnNcbiAgICAgICAgICAgICAgICAgIDogXCJcIlxuICAgICAgICAgICAgICAgIDogdm9pZCAwKSlcbiAgICAgICAgICA6IChvcHRpb25zID0gbnVsbCksXG4gICAgICAgIEludGVybmFscy5kLkMoaHJlZiwgb3B0aW9ucykpO1xuICAgIH07XG4gICAgZXhwb3J0cy5wcmVmZXRjaEROUyA9IGZ1bmN0aW9uIChocmVmKSB7XG4gICAgICBpZiAoXCJzdHJpbmdcIiAhPT0gdHlwZW9mIGhyZWYgfHwgIWhyZWYpXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJSZWFjdERPTS5wcmVmZXRjaEROUygpOiBFeHBlY3RlZCB0aGUgYGhyZWZgIGFyZ3VtZW50IChmaXJzdCkgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLlwiLFxuICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZilcbiAgICAgICAgKTtcbiAgICAgIGVsc2UgaWYgKDEgPCBhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICAgIHZhciBvcHRpb25zID0gYXJndW1lbnRzWzFdO1xuICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2Ygb3B0aW9ucyAmJiBvcHRpb25zLmhhc093blByb3BlcnR5KFwiY3Jvc3NPcmlnaW5cIilcbiAgICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3RET00ucHJlZmV0Y2hETlMoKTogRXhwZWN0ZWQgb25seSBvbmUgYXJndW1lbnQsIGBocmVmYCwgYnV0IGVuY291bnRlcmVkICVzIGFzIGEgc2Vjb25kIGFyZ3VtZW50IGluc3RlYWQuIFRoaXMgYXJndW1lbnQgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSBvcHRpb25zIGFuZCBpcyBjdXJyZW50bHkgZGlzYWxsb3dlZC4gSXQgbG9va3MgbGlrZSB0aGUgeW91IGFyZSBhdHRlbXB0aW5nIHRvIHNldCBhIGNyb3NzT3JpZ2luIHByb3BlcnR5IGZvciB0aGlzIEROUyBsb29rdXAgaGludC4gQnJvd3NlcnMgZG8gbm90IHBlcmZvcm0gRE5TIHF1ZXJpZXMgdXNpbmcgQ09SUyBhbmQgc2V0dGluZyB0aGlzIGF0dHJpYnV0ZSBvbiB0aGUgcmVzb3VyY2UgaGludCBoYXMgbm8gZWZmZWN0LiBUcnkgY2FsbGluZyBSZWFjdERPTS5wcmVmZXRjaEROUygpIHdpdGgganVzdCBhIHNpbmdsZSBzdHJpbmcgYXJndW1lbnQsIGBocmVmYC5cIixcbiAgICAgICAgICAgICAgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nRW51bUZvcldhcm5pbmcob3B0aW9ucylcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVhY3RET00ucHJlZmV0Y2hETlMoKTogRXhwZWN0ZWQgb25seSBvbmUgYXJndW1lbnQsIGBocmVmYCwgYnV0IGVuY291bnRlcmVkICVzIGFzIGEgc2Vjb25kIGFyZ3VtZW50IGluc3RlYWQuIFRoaXMgYXJndW1lbnQgaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSBvcHRpb25zIGFuZCBpcyBjdXJyZW50bHkgZGlzYWxsb3dlZC4gVHJ5IGNhbGxpbmcgUmVhY3RET00ucHJlZmV0Y2hETlMoKSB3aXRoIGp1c3QgYSBzaW5nbGUgc3RyaW5nIGFyZ3VtZW50LCBgaHJlZmAuXCIsXG4gICAgICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKG9wdGlvbnMpXG4gICAgICAgICAgICApO1xuICAgICAgfVxuICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGhyZWYgJiYgSW50ZXJuYWxzLmQuRChocmVmKTtcbiAgICB9O1xuICAgIGV4cG9ydHMucHJlaW5pdCA9IGZ1bmN0aW9uIChocmVmLCBvcHRpb25zKSB7XG4gICAgICBcInN0cmluZ1wiID09PSB0eXBlb2YgaHJlZiAmJiBocmVmXG4gICAgICAgID8gbnVsbCA9PSBvcHRpb25zIHx8IFwib2JqZWN0XCIgIT09IHR5cGVvZiBvcHRpb25zXG4gICAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlYWN0RE9NLnByZWluaXQoKTogRXhwZWN0ZWQgdGhlIGBvcHRpb25zYCBhcmd1bWVudCAoc2Vjb25kKSB0byBiZSBhbiBvYmplY3Qgd2l0aCBhbiBgYXNgIHByb3BlcnR5IGRlc2NyaWJpbmcgdGhlIHR5cGUgb2YgcmVzb3VyY2UgdG8gYmUgcHJlaW5pdGlhbGl6ZWQgYnV0IGVuY291bnRlcmVkICVzIGluc3RlYWQuXCIsXG4gICAgICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKG9wdGlvbnMpXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBcInN0eWxlXCIgIT09IG9wdGlvbnMuYXMgJiZcbiAgICAgICAgICAgIFwic2NyaXB0XCIgIT09IG9wdGlvbnMuYXMgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICdSZWFjdERPTS5wcmVpbml0KCk6IEV4cGVjdGVkIHRoZSBgYXNgIHByb3BlcnR5IGluIHRoZSBgb3B0aW9uc2AgYXJndW1lbnQgKHNlY29uZCkgdG8gY29udGFpbiBhIHZhbGlkIHZhbHVlIGRlc2NyaWJpbmcgdGhlIHR5cGUgb2YgcmVzb3VyY2UgdG8gYmUgcHJlaW5pdGlhbGl6ZWQgYnV0IGVuY291bnRlcmVkICVzIGluc3RlYWQuIFZhbGlkIHZhbHVlcyBmb3IgYGFzYCBhcmUgXCJzdHlsZVwiIGFuZCBcInNjcmlwdFwiLicsXG4gICAgICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKG9wdGlvbnMuYXMpXG4gICAgICAgICAgICApXG4gICAgICAgIDogY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgIFwiUmVhY3RET00ucHJlaW5pdCgpOiBFeHBlY3RlZCB0aGUgYGhyZWZgIGFyZ3VtZW50IChmaXJzdCkgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIGJ1dCBlbmNvdW50ZXJlZCAlcyBpbnN0ZWFkLlwiLFxuICAgICAgICAgICAgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhocmVmKVxuICAgICAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBocmVmICYmXG4gICAgICAgIG9wdGlvbnMgJiZcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuYXNcbiAgICAgICkge1xuICAgICAgICB2YXIgYXMgPSBvcHRpb25zLmFzLFxuICAgICAgICAgIGNyb3NzT3JpZ2luID0gZ2V0Q3Jvc3NPcmlnaW5TdHJpbmdBcyhhcywgb3B0aW9ucy5jcm9zc09yaWdpbiksXG4gICAgICAgICAgaW50ZWdyaXR5ID1cbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmludGVncml0eSA/IG9wdGlvbnMuaW50ZWdyaXR5IDogdm9pZCAwLFxuICAgICAgICAgIGZldGNoUHJpb3JpdHkgPVxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuZmV0Y2hQcmlvcml0eVxuICAgICAgICAgICAgICA/IG9wdGlvbnMuZmV0Y2hQcmlvcml0eVxuICAgICAgICAgICAgICA6IHZvaWQgMDtcbiAgICAgICAgXCJzdHlsZVwiID09PSBhc1xuICAgICAgICAgID8gSW50ZXJuYWxzLmQuUyhcbiAgICAgICAgICAgICAgaHJlZixcbiAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMucHJlY2VkZW5jZVxuICAgICAgICAgICAgICAgID8gb3B0aW9ucy5wcmVjZWRlbmNlXG4gICAgICAgICAgICAgICAgOiB2b2lkIDAsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogY3Jvc3NPcmlnaW4sXG4gICAgICAgICAgICAgICAgaW50ZWdyaXR5OiBpbnRlZ3JpdHksXG4gICAgICAgICAgICAgICAgZmV0Y2hQcmlvcml0eTogZmV0Y2hQcmlvcml0eVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBcInNjcmlwdFwiID09PSBhcyAmJlxuICAgICAgICAgICAgSW50ZXJuYWxzLmQuWChocmVmLCB7XG4gICAgICAgICAgICAgIGNyb3NzT3JpZ2luOiBjcm9zc09yaWdpbixcbiAgICAgICAgICAgICAgaW50ZWdyaXR5OiBpbnRlZ3JpdHksXG4gICAgICAgICAgICAgIGZldGNoUHJpb3JpdHk6IGZldGNoUHJpb3JpdHksXG4gICAgICAgICAgICAgIG5vbmNlOiBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5ub25jZSA/IG9wdGlvbnMubm9uY2UgOiB2b2lkIDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5wcmVpbml0TW9kdWxlID0gZnVuY3Rpb24gKGhyZWYsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBlbmNvdW50ZXJlZCA9IFwiXCI7XG4gICAgICAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGhyZWYgJiYgaHJlZikgfHxcbiAgICAgICAgKGVuY291bnRlcmVkICs9XG4gICAgICAgICAgXCIgVGhlIGBocmVmYCBhcmd1bWVudCBlbmNvdW50ZXJlZCB3YXMgXCIgK1xuICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZikgK1xuICAgICAgICAgIFwiLlwiKTtcbiAgICAgIHZvaWQgMCAhPT0gb3B0aW9ucyAmJiBcIm9iamVjdFwiICE9PSB0eXBlb2Ygb3B0aW9uc1xuICAgICAgICA/IChlbmNvdW50ZXJlZCArPVxuICAgICAgICAgICAgXCIgVGhlIGBvcHRpb25zYCBhcmd1bWVudCBlbmNvdW50ZXJlZCB3YXMgXCIgK1xuICAgICAgICAgICAgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhvcHRpb25zKSArXG4gICAgICAgICAgICBcIi5cIilcbiAgICAgICAgOiBvcHRpb25zICYmXG4gICAgICAgICAgXCJhc1wiIGluIG9wdGlvbnMgJiZcbiAgICAgICAgICBcInNjcmlwdFwiICE9PSBvcHRpb25zLmFzICYmXG4gICAgICAgICAgKGVuY291bnRlcmVkICs9XG4gICAgICAgICAgICBcIiBUaGUgYGFzYCBvcHRpb24gZW5jb3VudGVyZWQgd2FzIFwiICtcbiAgICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKG9wdGlvbnMuYXMpICtcbiAgICAgICAgICAgIFwiLlwiKTtcbiAgICAgIGlmIChlbmNvdW50ZXJlZClcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIlJlYWN0RE9NLnByZWluaXRNb2R1bGUoKTogRXhwZWN0ZWQgdXAgdG8gdHdvIGFyZ3VtZW50cywgYSBub24tZW1wdHkgYGhyZWZgIHN0cmluZyBhbmQsIG9wdGlvbmFsbHksIGFuIGBvcHRpb25zYCBvYmplY3Qgd2l0aCBhIHZhbGlkIGBhc2AgcHJvcGVydHkuJXNcIixcbiAgICAgICAgICBlbmNvdW50ZXJlZFxuICAgICAgICApO1xuICAgICAgZWxzZVxuICAgICAgICBzd2l0Y2ggKFxuICAgICAgICAgICgoZW5jb3VudGVyZWQgPVxuICAgICAgICAgICAgb3B0aW9ucyAmJiBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5hcyA/IG9wdGlvbnMuYXMgOiBcInNjcmlwdFwiKSxcbiAgICAgICAgICBlbmNvdW50ZXJlZClcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2FzZSBcInNjcmlwdFwiOlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIChlbmNvdW50ZXJlZCA9XG4gICAgICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ0VudW1Gb3JXYXJuaW5nKGVuY291bnRlcmVkKSksXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgJ1JlYWN0RE9NLnByZWluaXRNb2R1bGUoKTogQ3VycmVudGx5IHRoZSBvbmx5IHN1cHBvcnRlZCBcImFzXCIgdHlwZSBmb3IgdGhpcyBmdW5jdGlvbiBpcyBcInNjcmlwdFwiIGJ1dCByZWNlaXZlZCBcIiVzXCIgaW5zdGVhZC4gVGhpcyB3YXJuaW5nIHdhcyBnZW5lcmF0ZWQgZm9yIGBocmVmYCBcIiVzXCIuIEluIHRoZSBmdXR1cmUgb3RoZXIgbW9kdWxlIHR5cGVzIHdpbGwgYmUgc3VwcG9ydGVkLCBhbGlnbmluZyB3aXRoIHRoZSBpbXBvcnQtYXR0cmlidXRlcyBwcm9wb3NhbC4gTGVhcm4gbW9yZSBoZXJlOiAoaHR0cHM6Ly9naXRodWIuY29tL3RjMzkvcHJvcG9zYWwtaW1wb3J0LWF0dHJpYnV0ZXMpJyxcbiAgICAgICAgICAgICAgICBlbmNvdW50ZXJlZCxcbiAgICAgICAgICAgICAgICBocmVmXG4gICAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgaHJlZilcbiAgICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiBvcHRpb25zICYmIG51bGwgIT09IG9wdGlvbnMpIHtcbiAgICAgICAgICBpZiAobnVsbCA9PSBvcHRpb25zLmFzIHx8IFwic2NyaXB0XCIgPT09IG9wdGlvbnMuYXMpXG4gICAgICAgICAgICAoZW5jb3VudGVyZWQgPSBnZXRDcm9zc09yaWdpblN0cmluZ0FzKFxuICAgICAgICAgICAgICBvcHRpb25zLmFzLFxuICAgICAgICAgICAgICBvcHRpb25zLmNyb3NzT3JpZ2luXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgSW50ZXJuYWxzLmQuTShocmVmLCB7XG4gICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IGVuY291bnRlcmVkLFxuICAgICAgICAgICAgICAgIGludGVncml0eTpcbiAgICAgICAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmludGVncml0eVxuICAgICAgICAgICAgICAgICAgICA/IG9wdGlvbnMuaW50ZWdyaXR5XG4gICAgICAgICAgICAgICAgICAgIDogdm9pZCAwLFxuICAgICAgICAgICAgICAgIG5vbmNlOlxuICAgICAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMubm9uY2UgPyBvcHRpb25zLm5vbmNlIDogdm9pZCAwXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgbnVsbCA9PSBvcHRpb25zICYmIEludGVybmFscy5kLk0oaHJlZik7XG4gICAgfTtcbiAgICBleHBvcnRzLnByZWxvYWQgPSBmdW5jdGlvbiAoaHJlZiwgb3B0aW9ucykge1xuICAgICAgdmFyIGVuY291bnRlcmVkID0gXCJcIjtcbiAgICAgIChcInN0cmluZ1wiID09PSB0eXBlb2YgaHJlZiAmJiBocmVmKSB8fFxuICAgICAgICAoZW5jb3VudGVyZWQgKz1cbiAgICAgICAgICBcIiBUaGUgYGhyZWZgIGFyZ3VtZW50IGVuY291bnRlcmVkIHdhcyBcIiArXG4gICAgICAgICAgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhocmVmKSArXG4gICAgICAgICAgXCIuXCIpO1xuICAgICAgbnVsbCA9PSBvcHRpb25zIHx8IFwib2JqZWN0XCIgIT09IHR5cGVvZiBvcHRpb25zXG4gICAgICAgID8gKGVuY291bnRlcmVkICs9XG4gICAgICAgICAgICBcIiBUaGUgYG9wdGlvbnNgIGFyZ3VtZW50IGVuY291bnRlcmVkIHdhcyBcIiArXG4gICAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKG9wdGlvbnMpICtcbiAgICAgICAgICAgIFwiLlwiKVxuICAgICAgICA6IChcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5hcyAmJiBvcHRpb25zLmFzKSB8fFxuICAgICAgICAgIChlbmNvdW50ZXJlZCArPVxuICAgICAgICAgICAgXCIgVGhlIGBhc2Agb3B0aW9uIGVuY291bnRlcmVkIHdhcyBcIiArXG4gICAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKG9wdGlvbnMuYXMpICtcbiAgICAgICAgICAgIFwiLlwiKTtcbiAgICAgIGVuY291bnRlcmVkICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ1JlYWN0RE9NLnByZWxvYWQoKTogRXhwZWN0ZWQgdHdvIGFyZ3VtZW50cywgYSBub24tZW1wdHkgYGhyZWZgIHN0cmluZyBhbmQgYW4gYG9wdGlvbnNgIG9iamVjdCB3aXRoIGFuIGBhc2AgcHJvcGVydHkgdmFsaWQgZm9yIGEgYDxsaW5rIHJlbD1cInByZWxvYWRcIiBhcz1cIi4uLlwiIC8+YCB0YWcuJXMnLFxuICAgICAgICAgIGVuY291bnRlcmVkXG4gICAgICAgICk7XG4gICAgICBpZiAoXG4gICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBocmVmICYmXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBvcHRpb25zICYmXG4gICAgICAgIG51bGwgIT09IG9wdGlvbnMgJiZcbiAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuYXNcbiAgICAgICkge1xuICAgICAgICBlbmNvdW50ZXJlZCA9IG9wdGlvbnMuYXM7XG4gICAgICAgIHZhciBjcm9zc09yaWdpbiA9IGdldENyb3NzT3JpZ2luU3RyaW5nQXMoXG4gICAgICAgICAgZW5jb3VudGVyZWQsXG4gICAgICAgICAgb3B0aW9ucy5jcm9zc09yaWdpblxuICAgICAgICApO1xuICAgICAgICBJbnRlcm5hbHMuZC5MKGhyZWYsIGVuY291bnRlcmVkLCB7XG4gICAgICAgICAgY3Jvc3NPcmlnaW46IGNyb3NzT3JpZ2luLFxuICAgICAgICAgIGludGVncml0eTpcbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmludGVncml0eSA/IG9wdGlvbnMuaW50ZWdyaXR5IDogdm9pZCAwLFxuICAgICAgICAgIG5vbmNlOiBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5ub25jZSA/IG9wdGlvbnMubm9uY2UgOiB2b2lkIDAsXG4gICAgICAgICAgdHlwZTogXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMudHlwZSA/IG9wdGlvbnMudHlwZSA6IHZvaWQgMCxcbiAgICAgICAgICBmZXRjaFByaW9yaXR5OlxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuZmV0Y2hQcmlvcml0eVxuICAgICAgICAgICAgICA/IG9wdGlvbnMuZmV0Y2hQcmlvcml0eVxuICAgICAgICAgICAgICA6IHZvaWQgMCxcbiAgICAgICAgICByZWZlcnJlclBvbGljeTpcbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLnJlZmVycmVyUG9saWN5XG4gICAgICAgICAgICAgID8gb3B0aW9ucy5yZWZlcnJlclBvbGljeVxuICAgICAgICAgICAgICA6IHZvaWQgMCxcbiAgICAgICAgICBpbWFnZVNyY1NldDpcbiAgICAgICAgICAgIFwic3RyaW5nXCIgPT09IHR5cGVvZiBvcHRpb25zLmltYWdlU3JjU2V0XG4gICAgICAgICAgICAgID8gb3B0aW9ucy5pbWFnZVNyY1NldFxuICAgICAgICAgICAgICA6IHZvaWQgMCxcbiAgICAgICAgICBpbWFnZVNpemVzOlxuICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMuaW1hZ2VTaXplc1xuICAgICAgICAgICAgICA/IG9wdGlvbnMuaW1hZ2VTaXplc1xuICAgICAgICAgICAgICA6IHZvaWQgMCxcbiAgICAgICAgICBtZWRpYTogXCJzdHJpbmdcIiA9PT0gdHlwZW9mIG9wdGlvbnMubWVkaWEgPyBvcHRpb25zLm1lZGlhIDogdm9pZCAwXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5wcmVsb2FkTW9kdWxlID0gZnVuY3Rpb24gKGhyZWYsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBlbmNvdW50ZXJlZCA9IFwiXCI7XG4gICAgICAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGhyZWYgJiYgaHJlZikgfHxcbiAgICAgICAgKGVuY291bnRlcmVkICs9XG4gICAgICAgICAgXCIgVGhlIGBocmVmYCBhcmd1bWVudCBlbmNvdW50ZXJlZCB3YXMgXCIgK1xuICAgICAgICAgIGdldFZhbHVlRGVzY3JpcHRvckV4cGVjdGluZ09iamVjdEZvcldhcm5pbmcoaHJlZikgK1xuICAgICAgICAgIFwiLlwiKTtcbiAgICAgIHZvaWQgMCAhPT0gb3B0aW9ucyAmJiBcIm9iamVjdFwiICE9PSB0eXBlb2Ygb3B0aW9uc1xuICAgICAgICA/IChlbmNvdW50ZXJlZCArPVxuICAgICAgICAgICAgXCIgVGhlIGBvcHRpb25zYCBhcmd1bWVudCBlbmNvdW50ZXJlZCB3YXMgXCIgK1xuICAgICAgICAgICAgZ2V0VmFsdWVEZXNjcmlwdG9yRXhwZWN0aW5nT2JqZWN0Rm9yV2FybmluZyhvcHRpb25zKSArXG4gICAgICAgICAgICBcIi5cIilcbiAgICAgICAgOiBvcHRpb25zICYmXG4gICAgICAgICAgXCJhc1wiIGluIG9wdGlvbnMgJiZcbiAgICAgICAgICBcInN0cmluZ1wiICE9PSB0eXBlb2Ygb3B0aW9ucy5hcyAmJlxuICAgICAgICAgIChlbmNvdW50ZXJlZCArPVxuICAgICAgICAgICAgXCIgVGhlIGBhc2Agb3B0aW9uIGVuY291bnRlcmVkIHdhcyBcIiArXG4gICAgICAgICAgICBnZXRWYWx1ZURlc2NyaXB0b3JFeHBlY3RpbmdPYmplY3RGb3JXYXJuaW5nKG9wdGlvbnMuYXMpICtcbiAgICAgICAgICAgIFwiLlwiKTtcbiAgICAgIGVuY291bnRlcmVkICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ1JlYWN0RE9NLnByZWxvYWRNb2R1bGUoKTogRXhwZWN0ZWQgdHdvIGFyZ3VtZW50cywgYSBub24tZW1wdHkgYGhyZWZgIHN0cmluZyBhbmQsIG9wdGlvbmFsbHksIGFuIGBvcHRpb25zYCBvYmplY3Qgd2l0aCBhbiBgYXNgIHByb3BlcnR5IHZhbGlkIGZvciBhIGA8bGluayByZWw9XCJtb2R1bGVwcmVsb2FkXCIgYXM9XCIuLi5cIiAvPmAgdGFnLiVzJyxcbiAgICAgICAgICBlbmNvdW50ZXJlZFxuICAgICAgICApO1xuICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGhyZWYgJiZcbiAgICAgICAgKG9wdGlvbnNcbiAgICAgICAgICA/ICgoZW5jb3VudGVyZWQgPSBnZXRDcm9zc09yaWdpblN0cmluZ0FzKFxuICAgICAgICAgICAgICBvcHRpb25zLmFzLFxuICAgICAgICAgICAgICBvcHRpb25zLmNyb3NzT3JpZ2luXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICAgIEludGVybmFscy5kLm0oaHJlZiwge1xuICAgICAgICAgICAgICBhczpcbiAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5hcyAmJiBcInNjcmlwdFwiICE9PSBvcHRpb25zLmFzXG4gICAgICAgICAgICAgICAgICA/IG9wdGlvbnMuYXNcbiAgICAgICAgICAgICAgICAgIDogdm9pZCAwLFxuICAgICAgICAgICAgICBjcm9zc09yaWdpbjogZW5jb3VudGVyZWQsXG4gICAgICAgICAgICAgIGludGVncml0eTpcbiAgICAgICAgICAgICAgICBcInN0cmluZ1wiID09PSB0eXBlb2Ygb3B0aW9ucy5pbnRlZ3JpdHlcbiAgICAgICAgICAgICAgICAgID8gb3B0aW9ucy5pbnRlZ3JpdHlcbiAgICAgICAgICAgICAgICAgIDogdm9pZCAwXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICA6IEludGVybmFscy5kLm0oaHJlZikpO1xuICAgIH07XG4gICAgZXhwb3J0cy5yZXF1ZXN0Rm9ybVJlc2V0ID0gZnVuY3Rpb24gKGZvcm0pIHtcbiAgICAgIEludGVybmFscy5kLnIoZm9ybSk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX2JhdGNoZWRVcGRhdGVzID0gZnVuY3Rpb24gKGZuLCBhKSB7XG4gICAgICByZXR1cm4gZm4oYSk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZUZvcm1TdGF0ZSA9IGZ1bmN0aW9uIChhY3Rpb24sIGluaXRpYWxTdGF0ZSwgcGVybWFsaW5rKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VGb3JtU3RhdGUoYWN0aW9uLCBpbml0aWFsU3RhdGUsIHBlcm1hbGluayk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZUZvcm1TdGF0dXMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VIb3N0VHJhbnNpdGlvblN0YXR1cygpO1xuICAgIH07XG4gICAgZXhwb3J0cy52ZXJzaW9uID0gXCIxOS4yLjRcIjtcbiAgICBcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AgJiZcbiAgICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcChFcnJvcigpKTtcbiAgfSkoKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-dom/cjs/react-dom.development.js\n")); + +/***/ }), + +/***/ "./node_modules/react-dom/client.js": +/*!******************************************!*\ + !*** ./node_modules/react-dom/client.js ***! + \******************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (true) {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-dom-client.development.js */ \"./node_modules/react-dom/cjs/react-dom-client.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2NsaWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTSxJQUFxQztBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxJQUFJLEtBQXFDLEVBQUUsRUFLMUMsQ0FBQztBQUNGLEVBQUUsaUpBQWlFO0FBQ25FIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL3JlYWN0LWRvbS9jbGllbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5mdW5jdGlvbiBjaGVja0RDRSgpIHtcbiAgLyogZ2xvYmFsIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAqL1xuICBpZiAoXG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIC8vIFRoaXMgYnJhbmNoIGlzIHVucmVhY2hhYmxlIGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZFxuICAgIC8vIGluIHByb2R1Y3Rpb24sIGJ1dCB0aGUgY29uZGl0aW9uIGlzIHRydWUgb25seSBpbiBkZXZlbG9wbWVudC5cbiAgICAvLyBUaGVyZWZvcmUgaWYgdGhlIGJyYW5jaCBpcyBzdGlsbCBoZXJlLCBkZWFkIGNvZGUgZWxpbWluYXRpb24gd2Fzbid0XG4gICAgLy8gcHJvcGVybHkgYXBwbGllZC5cbiAgICAvLyBEb24ndCBjaGFuZ2UgdGhlIG1lc3NhZ2UuIFJlYWN0IERldlRvb2xzIHJlbGllcyBvbiBpdC4gQWxzbyBtYWtlIHN1cmVcbiAgICAvLyB0aGlzIG1lc3NhZ2UgZG9lc24ndCBvY2N1ciBlbHNld2hlcmUgaW4gdGhpcyBmdW5jdGlvbiwgb3IgaXQgd2lsbCBjYXVzZVxuICAgIC8vIGEgZmFsc2UgcG9zaXRpdmUuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdeX14nKTtcbiAgfVxuICB0cnkge1xuICAgIC8vIFZlcmlmeSB0aGF0IHRoZSBjb2RlIGFib3ZlIGhhcyBiZWVuIGRlYWQgY29kZSBlbGltaW5hdGVkIChEQ0UnZCkuXG4gICAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLmNoZWNrRENFKGNoZWNrRENFKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLy8gRGV2VG9vbHMgc2hvdWxkbid0IGNyYXNoIFJlYWN0LCBubyBtYXR0ZXIgd2hhdC5cbiAgICAvLyBXZSBzaG91bGQgc3RpbGwgcmVwb3J0IGluIGNhc2Ugd2UgYnJlYWsgdGhpcyBjb2RlLlxuICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgfVxufVxuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICAvLyBEQ0UgY2hlY2sgc2hvdWxkIGhhcHBlbiBiZWZvcmUgUmVhY3RET00gYnVuZGxlIGV4ZWN1dGVzIHNvIHRoYXRcbiAgLy8gRGV2VG9vbHMgY2FuIHJlcG9ydCBiYWQgbWluaWZpY2F0aW9uIGR1cmluZyBpbmplY3Rpb24uXG4gIGNoZWNrRENFKCk7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtZG9tLWNsaWVudC5wcm9kdWN0aW9uLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS1jbGllbnQuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react-dom/client.js\n")); + +/***/ }), + +/***/ "./node_modules/react-dom/index.js": +/*!*****************************************!*\ + !*** ./node_modules/react-dom/index.js ***! + \*****************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (true) {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-dom.development.js */ \"./node_modules/react-dom/cjs/react-dom.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLElBQXFDO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLElBQUksS0FBcUMsRUFBRSxFQUsxQyxDQUFDO0FBQ0YsRUFBRSxtSUFBMEQ7QUFDNUQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvcmVhY3QtZG9tL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gY2hlY2tEQ0UoKSB7XG4gIC8qIGdsb2JhbCBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gKi9cbiAgaWYgKFxuICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPT09ICd1bmRlZmluZWQnIHx8XG4gICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRSAhPT0gJ2Z1bmN0aW9uJ1xuICApIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAvLyBUaGlzIGJyYW5jaCBpcyB1bnJlYWNoYWJsZSBiZWNhdXNlIHRoaXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWRcbiAgICAvLyBpbiBwcm9kdWN0aW9uLCBidXQgdGhlIGNvbmRpdGlvbiBpcyB0cnVlIG9ubHkgaW4gZGV2ZWxvcG1lbnQuXG4gICAgLy8gVGhlcmVmb3JlIGlmIHRoZSBicmFuY2ggaXMgc3RpbGwgaGVyZSwgZGVhZCBjb2RlIGVsaW1pbmF0aW9uIHdhc24ndFxuICAgIC8vIHByb3Blcmx5IGFwcGxpZWQuXG4gICAgLy8gRG9uJ3QgY2hhbmdlIHRoZSBtZXNzYWdlLiBSZWFjdCBEZXZUb29scyByZWxpZXMgb24gaXQuIEFsc28gbWFrZSBzdXJlXG4gICAgLy8gdGhpcyBtZXNzYWdlIGRvZXNuJ3Qgb2NjdXIgZWxzZXdoZXJlIGluIHRoaXMgZnVuY3Rpb24sIG9yIGl0IHdpbGwgY2F1c2VcbiAgICAvLyBhIGZhbHNlIHBvc2l0aXZlLlxuICAgIHRocm93IG5ldyBFcnJvcignXl9eJyk7XG4gIH1cbiAgdHJ5IHtcbiAgICAvLyBWZXJpZnkgdGhhdCB0aGUgY29kZSBhYm92ZSBoYXMgYmVlbiBkZWFkIGNvZGUgZWxpbWluYXRlZCAoRENFJ2QpLlxuICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5jaGVja0RDRShjaGVja0RDRSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIERldlRvb2xzIHNob3VsZG4ndCBjcmFzaCBSZWFjdCwgbm8gbWF0dGVyIHdoYXQuXG4gICAgLy8gV2Ugc2hvdWxkIHN0aWxsIHJlcG9ydCBpbiBjYXNlIHdlIGJyZWFrIHRoaXMgY29kZS5cbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH1cbn1cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgLy8gRENFIGNoZWNrIHNob3VsZCBoYXBwZW4gYmVmb3JlIFJlYWN0RE9NIGJ1bmRsZSBleGVjdXRlcyBzbyB0aGF0XG4gIC8vIERldlRvb2xzIGNhbiByZXBvcnQgYmFkIG1pbmlmaWNhdGlvbiBkdXJpbmcgaW5qZWN0aW9uLlxuICBjaGVja0RDRSgpO1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5wcm9kdWN0aW9uLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWRvbS5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react-dom/index.js\n")); + +/***/ }), + +/***/ "./node_modules/react/cjs/react-jsx-runtime.development.js": +/*!*****************************************************************!*\ + !*** ./node_modules/react/cjs/react-jsx-runtime.development.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n maybeKey,\n getOwner(),\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n var React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LWpzeC1ydW50aW1lLmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFYTtBQUNiLEtBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLCtDQUErQyw2QkFBNkI7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLGdCQUFnQixnREFBZ0Q7QUFDaEUsZ0JBQWdCLGFBQWE7QUFDN0I7QUFDQTtBQUNBLGdDQUFnQyxrQ0FBa0MsT0FBTztBQUN6RTtBQUNBLGdHQUFnRyxTQUFTLFVBQVUsc0ZBQXNGLGFBQWEsVUFBVSxVQUFVO0FBQzFPO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUJBQU8sQ0FBQyw0Q0FBTztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGdCQUFnQjtBQUNwQixJQUFJLFdBQVc7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksWUFBWTtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUciLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LWpzeC1ydW50aW1lLmRldmVsb3BtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWpzeC1ydW50aW1lLmRldmVsb3BtZW50LmpzXG4gKlxuICogQ29weXJpZ2h0IChjKSBNZXRhIFBsYXRmb3JtcywgSW5jLiBhbmQgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblwicHJvZHVjdGlvblwiICE9PSBwcm9jZXNzLmVudi5OT0RFX0VOViAmJlxuICAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKSB7XG4gICAgICBpZiAobnVsbCA9PSB0eXBlKSByZXR1cm4gbnVsbDtcbiAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICByZXR1cm4gdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRVxuICAgICAgICAgID8gbnVsbFxuICAgICAgICAgIDogdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgbnVsbDtcbiAgICAgIGlmIChcInN0cmluZ1wiID09PSB0eXBlb2YgdHlwZSkgcmV0dXJuIHR5cGU7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIkZyYWdtZW50XCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfUFJPRklMRVJfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJQcm9maWxlclwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3RyaWN0TW9kZVwiO1xuICAgICAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiU3VzcGVuc2VMaXN0XCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfQUNUSVZJVFlfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJBY3Rpdml0eVwiO1xuICAgICAgfVxuICAgICAgaWYgKFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlKVxuICAgICAgICBzd2l0Y2ggKFxuICAgICAgICAgIChcIm51bWJlclwiID09PSB0eXBlb2YgdHlwZS50YWcgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwiUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKCkuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIGluIFJlYWN0LiBQbGVhc2UgZmlsZSBhbiBpc3N1ZS5cIlxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB0eXBlLiQkdHlwZW9mKVxuICAgICAgICApIHtcbiAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIFwiUG9ydGFsXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCBcIkNvbnRleHRcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0NPTlNVTUVSX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKHR5cGUuX2NvbnRleHQuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCIpICsgXCIuQ29uc3VtZXJcIjtcbiAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICB2YXIgaW5uZXJUeXBlID0gdHlwZS5yZW5kZXI7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5kaXNwbGF5TmFtZTtcbiAgICAgICAgICAgIHR5cGUgfHxcbiAgICAgICAgICAgICAgKCh0eXBlID0gaW5uZXJUeXBlLmRpc3BsYXlOYW1lIHx8IGlubmVyVHlwZS5uYW1lIHx8IFwiXCIpLFxuICAgICAgICAgICAgICAodHlwZSA9IFwiXCIgIT09IHR5cGUgPyBcIkZvcndhcmRSZWYoXCIgKyB0eXBlICsgXCIpXCIgOiBcIkZvcndhcmRSZWZcIikpO1xuICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAoaW5uZXJUeXBlID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsKSxcbiAgICAgICAgICAgICAgbnVsbCAhPT0gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgPyBpbm5lclR5cGVcbiAgICAgICAgICAgICAgICA6IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8IFwiTWVtb1wiXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgaW5uZXJUeXBlID0gdHlwZS5fcGF5bG9hZDtcbiAgICAgICAgICAgIHR5cGUgPSB0eXBlLl9pbml0O1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKGlubmVyVHlwZSkpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge31cbiAgICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRlc3RTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAgICAgcmV0dXJuIFwiXCIgKyB2YWx1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gY2hlY2tLZXlTdHJpbmdDb2VyY2lvbih2YWx1ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICExO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSAhMDtcbiAgICAgIH1cbiAgICAgIGlmIChKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQpIHtcbiAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gY29uc29sZTtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfdGVtcF9jb25zdCA9IEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdC5lcnJvcjtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMCA9XG4gICAgICAgICAgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIFN5bWJvbCAmJlxuICAgICAgICAgICAgU3ltYm9sLnRvU3RyaW5nVGFnICYmXG4gICAgICAgICAgICB2YWx1ZVtTeW1ib2wudG9TdHJpbmdUYWddKSB8fFxuICAgICAgICAgIHZhbHVlLmNvbnN0cnVjdG9yLm5hbWUgfHxcbiAgICAgICAgICBcIk9iamVjdFwiO1xuICAgICAgICBKU0NvbXBpbGVyX3RlbXBfY29uc3QuY2FsbChcbiAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQsXG4gICAgICAgICAgXCJUaGUgcHJvdmlkZWQga2V5IGlzIGFuIHVuc3VwcG9ydGVkIHR5cGUgJXMuIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLlwiLFxuICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCRqc2NvbXAkMFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0VGFza05hbWUodHlwZSkge1xuICAgICAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpIHJldHVybiBcIjw+XCI7XG4gICAgICBpZiAoXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiB0eXBlICYmXG4gICAgICAgIG51bGwgIT09IHR5cGUgJiZcbiAgICAgICAgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFXG4gICAgICApXG4gICAgICAgIHJldHVybiBcIjwuLi4+XCI7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKTtcbiAgICAgICAgcmV0dXJuIG5hbWUgPyBcIjxcIiArIG5hbWUgKyBcIj5cIiA6IFwiPC4uLj5cIjtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgcmV0dXJuIFwiPC4uLj5cIjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZ2V0T3duZXIoKSB7XG4gICAgICB2YXIgZGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLkE7XG4gICAgICByZXR1cm4gbnVsbCA9PT0gZGlzcGF0Y2hlciA/IG51bGwgOiBkaXNwYXRjaGVyLmdldE93bmVyKCk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFVua25vd25Pd25lcigpIHtcbiAgICAgIHJldHVybiBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gaGFzVmFsaWRLZXkoY29uZmlnKSB7XG4gICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChjb25maWcsIFwia2V5XCIpKSB7XG4gICAgICAgIHZhciBnZXR0ZXIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNvbmZpZywgXCJrZXlcIikuZ2V0O1xuICAgICAgICBpZiAoZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZykgcmV0dXJuICExO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHZvaWQgMCAhPT0gY29uZmlnLmtleTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gICAgICBmdW5jdGlvbiB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkoKSB7XG4gICAgICAgIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duIHx8XG4gICAgICAgICAgKChzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9ICEwKSxcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCIlczogYGtleWAgaXMgbm90IGEgcHJvcC4gVHJ5aW5nIHRvIGFjY2VzcyBpdCB3aWxsIHJlc3VsdCBpbiBgdW5kZWZpbmVkYCBiZWluZyByZXR1cm5lZC4gSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBzYW1lIHZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgcHJvcC4gKGh0dHBzOi8vcmVhY3QuZGV2L2xpbmsvc3BlY2lhbC1wcm9wcylcIixcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lXG4gICAgICAgICAgKSk7XG4gICAgICB9XG4gICAgICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSAhMDtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgXCJrZXlcIiwge1xuICAgICAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ0tleSxcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMFxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVsZW1lbnRSZWZHZXR0ZXJXaXRoRGVwcmVjYXRpb25XYXJuaW5nKCkge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodGhpcy50eXBlKTtcbiAgICAgIGRpZFdhcm5BYm91dEVsZW1lbnRSZWZbY29tcG9uZW50TmFtZV0gfHxcbiAgICAgICAgKChkaWRXYXJuQWJvdXRFbGVtZW50UmVmW2NvbXBvbmVudE5hbWVdID0gITApLFxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiQWNjZXNzaW5nIGVsZW1lbnQucmVmIHdhcyByZW1vdmVkIGluIFJlYWN0IDE5LiByZWYgaXMgbm93IGEgcmVndWxhciBwcm9wLiBJdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgSlNYIEVsZW1lbnQgdHlwZSBpbiBhIGZ1dHVyZSByZWxlYXNlLlwiXG4gICAgICAgICkpO1xuICAgICAgY29tcG9uZW50TmFtZSA9IHRoaXMucHJvcHMucmVmO1xuICAgICAgcmV0dXJuIHZvaWQgMCAhPT0gY29tcG9uZW50TmFtZSA/IGNvbXBvbmVudE5hbWUgOiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCBwcm9wcywgb3duZXIsIGRlYnVnU3RhY2ssIGRlYnVnVGFzaykge1xuICAgICAgdmFyIHJlZlByb3AgPSBwcm9wcy5yZWY7XG4gICAgICB0eXBlID0ge1xuICAgICAgICAkJHR5cGVvZjogUkVBQ1RfRUxFTUVOVF9UWVBFLFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICBrZXk6IGtleSxcbiAgICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgICBfb3duZXI6IG93bmVyXG4gICAgICB9O1xuICAgICAgbnVsbCAhPT0gKHZvaWQgMCAhPT0gcmVmUHJvcCA/IHJlZlByb3AgOiBudWxsKVxuICAgICAgICA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcInJlZlwiLCB7XG4gICAgICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgICAgIGdldDogZWxlbWVudFJlZkdldHRlcldpdGhEZXByZWNhdGlvbldhcm5pbmdcbiAgICAgICAgICB9KVxuICAgICAgICA6IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcInJlZlwiLCB7IGVudW1lcmFibGU6ICExLCB2YWx1ZTogbnVsbCB9KTtcbiAgICAgIHR5cGUuX3N0b3JlID0ge307XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZS5fc3RvcmUsIFwidmFsaWRhdGVkXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IDBcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnSW5mb1wiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiBudWxsXG4gICAgICB9KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcIl9kZWJ1Z1N0YWNrXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IGRlYnVnU3RhY2tcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnVGFza1wiLCB7XG4gICAgICAgIGNvbmZpZ3VyYWJsZTogITEsXG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICB3cml0YWJsZTogITAsXG4gICAgICAgIHZhbHVlOiBkZWJ1Z1Rhc2tcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmZyZWV6ZSAmJiAoT2JqZWN0LmZyZWV6ZSh0eXBlLnByb3BzKSwgT2JqZWN0LmZyZWV6ZSh0eXBlKSk7XG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9XG4gICAgZnVuY3Rpb24ganN4REVWSW1wbChcbiAgICAgIHR5cGUsXG4gICAgICBjb25maWcsXG4gICAgICBtYXliZUtleSxcbiAgICAgIGlzU3RhdGljQ2hpbGRyZW4sXG4gICAgICBkZWJ1Z1N0YWNrLFxuICAgICAgZGVidWdUYXNrXG4gICAgKSB7XG4gICAgICB2YXIgY2hpbGRyZW4gPSBjb25maWcuY2hpbGRyZW47XG4gICAgICBpZiAodm9pZCAwICE9PSBjaGlsZHJlbilcbiAgICAgICAgaWYgKGlzU3RhdGljQ2hpbGRyZW4pXG4gICAgICAgICAgaWYgKGlzQXJyYXlJbXBsKGNoaWxkcmVuKSkge1xuICAgICAgICAgICAgZm9yIChcbiAgICAgICAgICAgICAgaXNTdGF0aWNDaGlsZHJlbiA9IDA7XG4gICAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4gPCBjaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgIGlzU3RhdGljQ2hpbGRyZW4rK1xuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB2YWxpZGF0ZUNoaWxkS2V5cyhjaGlsZHJlbltpc1N0YXRpY0NoaWxkcmVuXSk7XG4gICAgICAgICAgICBPYmplY3QuZnJlZXplICYmIE9iamVjdC5mcmVlemUoY2hpbGRyZW4pO1xuICAgICAgICAgIH0gZWxzZVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJSZWFjdC5qc3g6IFN0YXRpYyBjaGlsZHJlbiBzaG91bGQgYWx3YXlzIGJlIGFuIGFycmF5LiBZb3UgYXJlIGxpa2VseSBleHBsaWNpdGx5IGNhbGxpbmcgUmVhY3QuanN4cyBvciBSZWFjdC5qc3hERVYuIFVzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgIGVsc2UgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW4pO1xuICAgICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBcImtleVwiKSkge1xuICAgICAgICBjaGlsZHJlbiA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlKTtcbiAgICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpLmZpbHRlcihmdW5jdGlvbiAoaykge1xuICAgICAgICAgIHJldHVybiBcImtleVwiICE9PSBrO1xuICAgICAgICB9KTtcbiAgICAgICAgaXNTdGF0aWNDaGlsZHJlbiA9XG4gICAgICAgICAgMCA8IGtleXMubGVuZ3RoXG4gICAgICAgICAgICA/IFwie2tleTogc29tZUtleSwgXCIgKyBrZXlzLmpvaW4oXCI6IC4uLiwgXCIpICsgXCI6IC4uLn1cIlxuICAgICAgICAgICAgOiBcIntrZXk6IHNvbWVLZXl9XCI7XG4gICAgICAgIGRpZFdhcm5BYm91dEtleVNwcmVhZFtjaGlsZHJlbiArIGlzU3RhdGljQ2hpbGRyZW5dIHx8XG4gICAgICAgICAgKChrZXlzID1cbiAgICAgICAgICAgIDAgPCBrZXlzLmxlbmd0aCA/IFwie1wiICsga2V5cy5qb2luKFwiOiAuLi4sIFwiKSArIFwiOiAuLi59XCIgOiBcInt9XCIpLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAnQSBwcm9wcyBvYmplY3QgY29udGFpbmluZyBhIFwia2V5XCIgcHJvcCBpcyBiZWluZyBzcHJlYWQgaW50byBKU1g6XFxuICBsZXQgcHJvcHMgPSAlcztcXG4gIDwlcyB7Li4ucHJvcHN9IC8+XFxuUmVhY3Qga2V5cyBtdXN0IGJlIHBhc3NlZCBkaXJlY3RseSB0byBKU1ggd2l0aG91dCB1c2luZyBzcHJlYWQ6XFxuICBsZXQgcHJvcHMgPSAlcztcXG4gIDwlcyBrZXk9e3NvbWVLZXl9IHsuLi5wcm9wc30gLz4nLFxuICAgICAgICAgICAgaXNTdGF0aWNDaGlsZHJlbixcbiAgICAgICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAgICAga2V5cyxcbiAgICAgICAgICAgIGNoaWxkcmVuXG4gICAgICAgICAgKSxcbiAgICAgICAgICAoZGlkV2FybkFib3V0S2V5U3ByZWFkW2NoaWxkcmVuICsgaXNTdGF0aWNDaGlsZHJlbl0gPSAhMCkpO1xuICAgICAgfVxuICAgICAgY2hpbGRyZW4gPSBudWxsO1xuICAgICAgdm9pZCAwICE9PSBtYXliZUtleSAmJlxuICAgICAgICAoY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihtYXliZUtleSksIChjaGlsZHJlbiA9IFwiXCIgKyBtYXliZUtleSkpO1xuICAgICAgaGFzVmFsaWRLZXkoY29uZmlnKSAmJlxuICAgICAgICAoY2hlY2tLZXlTdHJpbmdDb2VyY2lvbihjb25maWcua2V5KSwgKGNoaWxkcmVuID0gXCJcIiArIGNvbmZpZy5rZXkpKTtcbiAgICAgIGlmIChcImtleVwiIGluIGNvbmZpZykge1xuICAgICAgICBtYXliZUtleSA9IHt9O1xuICAgICAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBjb25maWcpXG4gICAgICAgICAgXCJrZXlcIiAhPT0gcHJvcE5hbWUgJiYgKG1heWJlS2V5W3Byb3BOYW1lXSA9IGNvbmZpZ1twcm9wTmFtZV0pO1xuICAgICAgfSBlbHNlIG1heWJlS2V5ID0gY29uZmlnO1xuICAgICAgY2hpbGRyZW4gJiZcbiAgICAgICAgZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIoXG4gICAgICAgICAgbWF5YmVLZXksXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdHlwZVxuICAgICAgICAgICAgPyB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBcIlVua25vd25cIlxuICAgICAgICAgICAgOiB0eXBlXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gUmVhY3RFbGVtZW50KFxuICAgICAgICB0eXBlLFxuICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgbWF5YmVLZXksXG4gICAgICAgIGdldE93bmVyKCksXG4gICAgICAgIGRlYnVnU3RhY2ssXG4gICAgICAgIGRlYnVnVGFza1xuICAgICAgKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gdmFsaWRhdGVDaGlsZEtleXMobm9kZSkge1xuICAgICAgaXNWYWxpZEVsZW1lbnQobm9kZSlcbiAgICAgICAgPyBub2RlLl9zdG9yZSAmJiAobm9kZS5fc3RvcmUudmFsaWRhdGVkID0gMSlcbiAgICAgICAgOiBcIm9iamVjdFwiID09PSB0eXBlb2Ygbm9kZSAmJlxuICAgICAgICAgIG51bGwgIT09IG5vZGUgJiZcbiAgICAgICAgICBub2RlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEUgJiZcbiAgICAgICAgICAoXCJmdWxmaWxsZWRcIiA9PT0gbm9kZS5fcGF5bG9hZC5zdGF0dXNcbiAgICAgICAgICAgID8gaXNWYWxpZEVsZW1lbnQobm9kZS5fcGF5bG9hZC52YWx1ZSkgJiZcbiAgICAgICAgICAgICAgbm9kZS5fcGF5bG9hZC52YWx1ZS5fc3RvcmUgJiZcbiAgICAgICAgICAgICAgKG5vZGUuX3BheWxvYWQudmFsdWUuX3N0b3JlLnZhbGlkYXRlZCA9IDEpXG4gICAgICAgICAgICA6IG5vZGUuX3N0b3JlICYmIChub2RlLl9zdG9yZS52YWxpZGF0ZWQgPSAxKSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGlzVmFsaWRFbGVtZW50KG9iamVjdCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIG9iamVjdCAmJlxuICAgICAgICBudWxsICE9PSBvYmplY3QgJiZcbiAgICAgICAgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEVcbiAgICAgICk7XG4gICAgfVxuICAgIHZhciBSZWFjdCA9IHJlcXVpcmUoXCJyZWFjdFwiKSxcbiAgICAgIFJFQUNUX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKSxcbiAgICAgIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxcbiAgICAgIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksXG4gICAgICBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLFxuICAgICAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSxcbiAgICAgIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIiksXG4gICAgICBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxcbiAgICAgIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksXG4gICAgICBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxcbiAgICAgIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpLFxuICAgICAgUkVBQ1RfQUNUSVZJVFlfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5hY3Rpdml0eVwiKSxcbiAgICAgIFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UgPSBTeW1ib2wuZm9yKFwicmVhY3QuY2xpZW50LnJlZmVyZW5jZVwiKSxcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzID1cbiAgICAgICAgUmVhY3QuX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLFxuICAgICAgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFxuICAgICAgaXNBcnJheUltcGwgPSBBcnJheS5pc0FycmF5LFxuICAgICAgY3JlYXRlVGFzayA9IGNvbnNvbGUuY3JlYXRlVGFza1xuICAgICAgICA/IGNvbnNvbGUuY3JlYXRlVGFza1xuICAgICAgICA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH07XG4gICAgUmVhY3QgPSB7XG4gICAgICByZWFjdF9zdGFja19ib3R0b21fZnJhbWU6IGZ1bmN0aW9uIChjYWxsU3RhY2tGb3JFcnJvcikge1xuICAgICAgICByZXR1cm4gY2FsbFN0YWNrRm9yRXJyb3IoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bjtcbiAgICB2YXIgZGlkV2FybkFib3V0RWxlbWVudFJlZiA9IHt9O1xuICAgIHZhciB1bmtub3duT3duZXJEZWJ1Z1N0YWNrID0gUmVhY3QucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoXG4gICAgICBSZWFjdCxcbiAgICAgIFVua25vd25Pd25lclxuICAgICkoKTtcbiAgICB2YXIgdW5rbm93bk93bmVyRGVidWdUYXNrID0gY3JlYXRlVGFzayhnZXRUYXNrTmFtZShVbmtub3duT3duZXIpKTtcbiAgICB2YXIgZGlkV2FybkFib3V0S2V5U3ByZWFkID0ge307XG4gICAgZXhwb3J0cy5GcmFnbWVudCA9IFJFQUNUX0ZSQUdNRU5UX1RZUEU7XG4gICAgZXhwb3J0cy5qc3ggPSBmdW5jdGlvbiAodHlwZSwgY29uZmlnLCBtYXliZUtleSkge1xuICAgICAgdmFyIHRyYWNrQWN0dWFsT3duZXIgPVxuICAgICAgICAxZTQgPiBSZWFjdFNoYXJlZEludGVybmFscy5yZWNlbnRseUNyZWF0ZWRPd25lclN0YWNrcysrO1xuICAgICAgcmV0dXJuIGpzeERFVkltcGwoXG4gICAgICAgIHR5cGUsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgbWF5YmVLZXksXG4gICAgICAgICExLFxuICAgICAgICB0cmFja0FjdHVhbE93bmVyXG4gICAgICAgICAgPyBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKVxuICAgICAgICAgIDogdW5rbm93bk93bmVyRGVidWdTdGFjayxcbiAgICAgICAgdHJhY2tBY3R1YWxPd25lciA/IGNyZWF0ZVRhc2soZ2V0VGFza05hbWUodHlwZSkpIDogdW5rbm93bk93bmVyRGVidWdUYXNrXG4gICAgICApO1xuICAgIH07XG4gICAgZXhwb3J0cy5qc3hzID0gZnVuY3Rpb24gKHR5cGUsIGNvbmZpZywgbWF5YmVLZXkpIHtcbiAgICAgIHZhciB0cmFja0FjdHVhbE93bmVyID1cbiAgICAgICAgMWU0ID4gUmVhY3RTaGFyZWRJbnRlcm5hbHMucmVjZW50bHlDcmVhdGVkT3duZXJTdGFja3MrKztcbiAgICAgIHJldHVybiBqc3hERVZJbXBsKFxuICAgICAgICB0eXBlLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIG1heWJlS2V5LFxuICAgICAgICAhMCxcbiAgICAgICAgdHJhY2tBY3R1YWxPd25lclxuICAgICAgICAgID8gRXJyb3IoXCJyZWFjdC1zdGFjay10b3AtZnJhbWVcIilcbiAgICAgICAgICA6IHVua25vd25Pd25lckRlYnVnU3RhY2ssXG4gICAgICAgIHRyYWNrQWN0dWFsT3duZXIgPyBjcmVhdGVUYXNrKGdldFRhc2tOYW1lKHR5cGUpKSA6IHVua25vd25Pd25lckRlYnVnVGFza1xuICAgICAgKTtcbiAgICB9O1xuICB9KSgpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react/cjs/react-jsx-runtime.development.js\n")); + +/***/ }), + +/***/ "./node_modules/react/cjs/react.development.js": +/*!*****************************************************!*\ + !*** ./node_modules/react/cjs/react.development.js ***! + \*****************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/* module decorator */ module = __webpack_require__.nmd(module);\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/next/dist/build/polyfills/process.js\");\n/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function defineDeprecationWarning(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n console.warn(\n \"%s(...) is deprecated in plain JavaScript React classes. %s\",\n info[0],\n info[1]\n );\n }\n });\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function warnNoop(publicInstance, callerName) {\n publicInstance =\n ((publicInstance = publicInstance.constructor) &&\n (publicInstance.displayName || publicInstance.name)) ||\n \"ReactClass\";\n var warningKey = publicInstance + \".\" + callerName;\n didWarnStateUpdateForUnmountedComponent[warningKey] ||\n (console.error(\n \"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",\n callerName,\n publicInstance\n ),\n (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));\n }\n function Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function ComponentDummy() {}\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n newKey = ReactElement(\n oldElement.type,\n newKey,\n oldElement.props,\n oldElement._owner,\n oldElement._debugStack,\n oldElement._debugTask\n );\n oldElement._store &&\n (newKey._store.validated = oldElement._store.validated);\n return newKey;\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n }\n function getElementKey(element, index) {\n return \"object\" === typeof element &&\n null !== element &&\n null != element.key\n ? (checkKeyStringCoercion(element.key), escape(\"\" + element.key))\n : index.toString(36);\n }\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"),\n (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback) {\n invokeCallback = children;\n callback = callback(invokeCallback);\n var childKey =\n \"\" === nameSoFar ? \".\" + getElementKey(invokeCallback, 0) : nameSoFar;\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != childKey &&\n (escapedPrefix =\n childKey.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (null != callback.key &&\n ((invokeCallback && invokeCallback.key === callback.key) ||\n checkKeyStringCoercion(callback.key)),\n (escapedPrefix = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (invokeCallback && invokeCallback.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n childKey\n )),\n \"\" !== nameSoFar &&\n null != invokeCallback &&\n isValidElement(invokeCallback) &&\n null == invokeCallback.key &&\n invokeCallback._store &&\n !invokeCallback._store.validated &&\n (escapedPrefix._store.validated = 2),\n (callback = escapedPrefix)),\n array.push(callback));\n return 1;\n }\n invokeCallback = 0;\n childKey = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = childKey + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n i === children.entries &&\n (didWarnAboutMaps ||\n console.warn(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0)),\n children = i.call(children),\n i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = childKey + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ioInfo = payload._ioInfo;\n null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());\n ioInfo = payload._result;\n var thenable = ioInfo();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 1;\n payload._result = moduleObject;\n var _ioInfo = payload._ioInfo;\n null != _ioInfo && (_ioInfo.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n }\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 2;\n payload._result = error;\n var _ioInfo2 = payload._ioInfo;\n null != _ioInfo2 && (_ioInfo2.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n }\n );\n ioInfo = payload._ioInfo;\n if (null != ioInfo) {\n ioInfo.value = thenable;\n var displayName = thenable.displayName;\n \"string\" === typeof displayName && (ioInfo.name = displayName);\n }\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\n }\n if (1 === payload._status)\n return (\n (ioInfo = payload._result),\n void 0 === ioInfo &&\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",\n ioInfo\n ),\n \"default\" in ioInfo ||\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",\n ioInfo\n ),\n ioInfo.default\n );\n throw payload._result;\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n function releaseAsyncTransition() {\n ReactSharedInternals.asyncTransitions--;\n }\n function enqueueTask(task) {\n if (null === enqueueTaskImpl)\n try {\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n enqueueTaskImpl = (module && module[requireString]).call(\n module,\n \"timers\"\n ).setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n !1 === didWarnAboutMessageChannel &&\n ((didWarnAboutMessageChannel = !0),\n \"undefined\" === typeof MessageChannel &&\n console.error(\n \"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"\n ));\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(void 0);\n };\n }\n return enqueueTaskImpl(task);\n }\n function aggregateErrors(errors) {\n return 1 < errors.length && \"function\" === typeof AggregateError\n ? new AggregateError(errors)\n : errors[0];\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n prevActScopeDepth !== actScopeDepth - 1 &&\n console.error(\n \"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"\n );\n actScopeDepth = prevActScopeDepth;\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n var queue = ReactSharedInternals.actQueue;\n if (null !== queue)\n if (0 !== queue.length)\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n return;\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n else ReactSharedInternals.actQueue = null;\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(queue))\n : resolve(returnValue);\n }\n function flushActQueue(queue) {\n if (!isFlushing) {\n isFlushing = !0;\n var i = 0;\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n do {\n ReactSharedInternals.didUsePromise = !1;\n var continuation = callback(!1);\n if (null !== continuation) {\n if (ReactSharedInternals.didUsePromise) {\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else break;\n } while (1);\n }\n queue.length = 0;\n } catch (error) {\n queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);\n } finally {\n isFlushing = !1;\n }\n }\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n didWarnStateUpdateForUnmountedComponent = {},\n ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n enqueueReplaceState: function (publicInstance) {\n warnNoop(publicInstance, \"replaceState\");\n },\n enqueueSetState: function (publicInstance) {\n warnNoop(publicInstance, \"setState\");\n }\n },\n assign = Object.assign,\n emptyObject = {};\n Object.freeze(emptyObject);\n Component.prototype.isReactComponent = {};\n Component.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"\n ]\n };\n for (fnName in deprecatedAPIs)\n deprecatedAPIs.hasOwnProperty(fnName) &&\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n ComponentDummy.prototype = Component.prototype;\n deprecatedAPIs = PureComponent.prototype = new ComponentDummy();\n deprecatedAPIs.constructor = PureComponent;\n assign(deprecatedAPIs, Component.prototype);\n deprecatedAPIs.isPureReactComponent = !0;\n var isArrayImpl = Array.isArray,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n actQueue: null,\n asyncTransitions: 0,\n isBatchingLegacy: !1,\n didScheduleLegacyUpdate: !1,\n didUsePromise: !1,\n thrownErrors: [],\n getCurrentStack: null,\n recentlyCreatedOwnerStacks: 0\n },\n hasOwnProperty = Object.prototype.hasOwnProperty,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n deprecatedAPIs = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(\n deprecatedAPIs,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutMaps = !1,\n userProvidedKeyEscapeRegex = /\\/+/g,\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n didWarnAboutMessageChannel = !1,\n enqueueTaskImpl = null,\n actScopeDepth = 0,\n didWarnNoAwaitAct = !1,\n isFlushing = !1,\n queueSeveralMicrotasks =\n \"function\" === typeof queueMicrotask\n ? function (callback) {\n queueMicrotask(function () {\n return queueMicrotask(callback);\n });\n }\n : enqueueTask;\n deprecatedAPIs = Object.freeze({\n __proto__: null,\n c: function (size) {\n return resolveDispatcher().useMemoCache(size);\n }\n });\n var fnName = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Activity = REACT_ACTIVITY_TYPE;\n exports.Children = fnName;\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\n exports.__COMPILER_RUNTIME = deprecatedAPIs;\n exports.act = function (callback) {\n var prevActQueue = ReactSharedInternals.actQueue,\n prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = (ReactSharedInternals.actQueue =\n null !== prevActQueue ? prevActQueue : []),\n didAwaitActCall = !1;\n try {\n var result = callback();\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n (popActScope(prevActQueue, prevActScopeDepth),\n (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n if (\n null !== result &&\n \"object\" === typeof result &&\n \"function\" === typeof result.then\n ) {\n var thenable = result;\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"\n ));\n });\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n thenable.then(\n function (returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (0 === prevActScopeDepth) {\n try {\n flushActQueue(queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue,\n resolve,\n reject\n );\n });\n } catch (error$0) {\n ReactSharedInternals.thrownErrors.push(error$0);\n }\n if (0 < ReactSharedInternals.thrownErrors.length) {\n var _thrownError = aggregateErrors(\n ReactSharedInternals.thrownErrors\n );\n ReactSharedInternals.thrownErrors.length = 0;\n reject(_thrownError);\n }\n } else resolve(returnValue);\n },\n function (error) {\n popActScope(prevActQueue, prevActScopeDepth);\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((error = aggregateErrors(\n ReactSharedInternals.thrownErrors\n )),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(error))\n : reject(error);\n }\n );\n }\n };\n }\n var returnValue$jscomp$0 = result;\n popActScope(prevActQueue, prevActScopeDepth);\n 0 === prevActScopeDepth &&\n (flushActQueue(queue),\n 0 !== queue.length &&\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\\n\\nawait act(() => ...)\"\n ));\n }),\n (ReactSharedInternals.actQueue = null));\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n 0 === prevActScopeDepth\n ? ((ReactSharedInternals.actQueue = queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue$jscomp$0,\n resolve,\n reject\n );\n }))\n : resolve(returnValue$jscomp$0);\n }\n };\n };\n exports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n };\n exports.cacheSignal = function () {\n return null;\n };\n exports.captureOwnerStack = function () {\n var getCurrentStack = ReactSharedInternals.getCurrentStack;\n return null === getCurrentStack ? null : getCurrentStack();\n };\n exports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" +\n element +\n \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = element._owner;\n if (null != config) {\n var JSCompiler_inline_result;\n a: {\n if (\n hasOwnProperty.call(config, \"ref\") &&\n (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(\n config,\n \"ref\"\n ).get) &&\n JSCompiler_inline_result.isReactWarning\n ) {\n JSCompiler_inline_result = !1;\n break a;\n }\n JSCompiler_inline_result = void 0 !== config.ref;\n }\n JSCompiler_inline_result && (owner = getOwner());\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key));\n for (propName in config)\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n JSCompiler_inline_result = Array(propName);\n for (var i = 0; i < propName; i++)\n JSCompiler_inline_result[i] = arguments[i + 2];\n props.children = JSCompiler_inline_result;\n }\n props = ReactElement(\n element.type,\n key,\n props,\n owner,\n element._debugStack,\n element._debugTask\n );\n for (key = 2; key < arguments.length; key++)\n validateChildKeys(arguments[key]);\n return props;\n };\n exports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n defaultValue._currentRenderer = null;\n defaultValue._currentRenderer2 = null;\n return defaultValue;\n };\n exports.createElement = function (type, config, children) {\n for (var i = 2; i < arguments.length; i++)\n validateChildKeys(arguments[i]);\n i = {};\n var key = null;\n if (null != config)\n for (propName in (didWarnAboutOldJSXRuntime ||\n !(\"__self\" in config) ||\n \"key\" in config ||\n ((didWarnAboutOldJSXRuntime = !0),\n console.warn(\n \"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform\"\n )),\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key)),\n config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (i[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) i.children = children;\n else if (1 < childrenLength) {\n for (\n var childArray = Array(childrenLength), _i = 0;\n _i < childrenLength;\n _i++\n )\n childArray[_i] = arguments[_i + 2];\n Object.freeze && Object.freeze(childArray);\n i.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === i[propName] && (i[propName] = childrenLength[propName]);\n key &&\n defineKeyPropWarningGetter(\n i,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return ReactElement(\n type,\n key,\n i,\n getOwner(),\n propName ? Error(\"react-stack-top-frame\") : unknownOwnerDebugStack,\n propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.createRef = function () {\n var refObject = { current: null };\n Object.seal(refObject);\n return refObject;\n };\n exports.forwardRef = function (render) {\n null != render && render.$$typeof === REACT_MEMO_TYPE\n ? console.error(\n \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"\n )\n : \"function\" !== typeof render\n ? console.error(\n \"forwardRef requires a render function but was given %s.\",\n null === render ? \"null\" : typeof render\n )\n : 0 !== render.length &&\n 2 !== render.length &&\n console.error(\n \"forwardRef render functions accept exactly two parameters: props and ref. %s\",\n 1 === render.length\n ? \"Did you forget to use the ref parameter?\"\n : \"Any additional parameter will be undefined.\"\n );\n null != render &&\n null != render.defaultProps &&\n console.error(\n \"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\"\n );\n var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },\n ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n render.name ||\n render.displayName ||\n (Object.defineProperty(render, \"name\", { value: name }),\n (render.displayName = name));\n }\n });\n return elementType;\n };\n exports.isValidElement = isValidElement;\n exports.lazy = function (ctor) {\n ctor = { _status: -1, _result: ctor };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: ctor,\n _init: lazyInitializer\n },\n ioInfo = {\n name: \"lazy\",\n start: -1,\n end: -1,\n value: null,\n owner: null,\n debugStack: Error(\"react-stack-top-frame\"),\n debugTask: console.createTask ? console.createTask(\"lazy()\") : null\n };\n ctor._ioInfo = ioInfo;\n lazyType._debugInfo = [{ awaited: ioInfo }];\n return lazyType;\n };\n exports.memo = function (type, compare) {\n null == type &&\n console.error(\n \"memo: The first argument must be a component. Instead received: %s\",\n null === type ? \"null\" : typeof type\n );\n compare = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n var ownName;\n Object.defineProperty(compare, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n type.name ||\n type.displayName ||\n (Object.defineProperty(type, \"name\", { value: name }),\n (type.displayName = name));\n }\n });\n return compare;\n };\n exports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition._updatedFibers = new Set();\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n (ReactSharedInternals.asyncTransitions++,\n returnValue.then(releaseAsyncTransition, releaseAsyncTransition),\n returnValue.then(noop, reportGlobalError));\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((scope = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < scope &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n )),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (null !== prevTransition.types &&\n prevTransition.types !== currentTransition.types &&\n console.error(\n \"We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.\"\n ),\n (prevTransition.types = currentTransition.types)),\n (ReactSharedInternals.T = prevTransition);\n }\n };\n exports.unstable_useCacheRefresh = function () {\n return resolveDispatcher().useCacheRefresh();\n };\n exports.use = function (usable) {\n return resolveDispatcher().use(usable);\n };\n exports.useActionState = function (action, initialState, permalink) {\n return resolveDispatcher().useActionState(\n action,\n initialState,\n permalink\n );\n };\n exports.useCallback = function (callback, deps) {\n return resolveDispatcher().useCallback(callback, deps);\n };\n exports.useContext = function (Context) {\n var dispatcher = resolveDispatcher();\n Context.$$typeof === REACT_CONSUMER_TYPE &&\n console.error(\n \"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"\n );\n return dispatcher.useContext(Context);\n };\n exports.useDebugValue = function (value, formatterFn) {\n return resolveDispatcher().useDebugValue(value, formatterFn);\n };\n exports.useDeferredValue = function (value, initialValue) {\n return resolveDispatcher().useDeferredValue(value, initialValue);\n };\n exports.useEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useEffect(create, deps);\n };\n exports.useEffectEvent = function (callback) {\n return resolveDispatcher().useEffectEvent(callback);\n };\n exports.useId = function () {\n return resolveDispatcher().useId();\n };\n exports.useImperativeHandle = function (ref, create, deps) {\n return resolveDispatcher().useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useLayoutEffect(create, deps);\n };\n exports.useMemo = function (create, deps) {\n return resolveDispatcher().useMemo(create, deps);\n };\n exports.useOptimistic = function (passthrough, reducer) {\n return resolveDispatcher().useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function (reducer, initialArg, init) {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n };\n exports.useRef = function (initialValue) {\n return resolveDispatcher().useRef(initialValue);\n };\n exports.useState = function (initialState) {\n return resolveDispatcher().useState(initialState);\n };\n exports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n return resolveDispatcher().useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function () {\n return resolveDispatcher().useTransition();\n };\n exports.version = \"19.2.4\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvY2pzL3JlYWN0LmRldmVsb3BtZW50LmpzIiwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhO0FBQ2IsS0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9NQUFvTTtBQUNwTTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCwrQ0FBK0MsNkJBQTZCO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEI7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixxQkFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHlDQUF5QztBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLGtCQUFrQjtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCLGNBQWM7QUFDZDtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtEO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0EsZ0JBQWdCO0FBQ2hCLG9DQUFvQyxPQUFPO0FBQzNDLHNDQUFzQyxPQUFPO0FBQzdDO0FBQ0EsZ0JBQWdCLE9BQU87QUFDdkI7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksZ0JBQWdCO0FBQ3BCLElBQUksZ0JBQWdCO0FBQ3BCLElBQUksaUJBQWlCO0FBQ3JCLElBQUksZ0JBQWdCO0FBQ3BCLElBQUksZ0JBQWdCO0FBQ3BCLElBQUkscUJBQXFCO0FBQ3pCLElBQUksa0JBQWtCO0FBQ3RCLElBQUksZ0JBQWdCO0FBQ3BCLElBQUksdUVBQXVFO0FBQzNFO0FBQ0EsSUFBSSwwQkFBMEI7QUFDOUIsSUFBSSxXQUFXO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ05BQWdOO0FBQ2hOO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QjtBQUN2QixvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksYUFBYTtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksbUJBQW1CO0FBQ3ZCO0FBQ0E7QUFDQSxJQUFJLHlCQUF5QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQSxJQUFJLG9CQUFvQjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGNBQWM7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix3QkFBd0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsSUFBSSxxQkFBcUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUkscUJBQXFCO0FBQ3pCLHNCQUFzQixzQkFBc0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxpQkFBaUI7QUFDckIsd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBLElBQUksa0JBQWtCO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLGtEQUFrRDtBQUM1RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsYUFBYTtBQUNsRTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxJQUFJLHNCQUFzQjtBQUMxQixJQUFJLFlBQVk7QUFDaEIsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLGlCQUFpQjtBQUNoRDtBQUNBO0FBQ0EsSUFBSSxZQUFZO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbURBQW1ELGFBQWE7QUFDaEU7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsSUFBSSx1QkFBdUI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxnQ0FBZ0M7QUFDcEM7QUFDQTtBQUNBLElBQUksV0FBVztBQUNmO0FBQ0E7QUFDQSxJQUFJLHNCQUFzQjtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLG1CQUFtQjtBQUN2QjtBQUNBO0FBQ0EsSUFBSSxrQkFBa0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLHFCQUFxQjtBQUN6QjtBQUNBO0FBQ0EsSUFBSSx3QkFBd0I7QUFDNUI7QUFDQTtBQUNBLElBQUksaUJBQWlCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksc0JBQXNCO0FBQzFCO0FBQ0E7QUFDQSxJQUFJLGFBQWE7QUFDakI7QUFDQTtBQUNBLElBQUksMkJBQTJCO0FBQy9CO0FBQ0E7QUFDQSxJQUFJLDBCQUEwQjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLHVCQUF1QjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLGVBQWU7QUFDbkI7QUFDQTtBQUNBLElBQUkscUJBQXFCO0FBQ3pCO0FBQ0E7QUFDQSxJQUFJLGtCQUFrQjtBQUN0QjtBQUNBO0FBQ0EsSUFBSSxjQUFjO0FBQ2xCO0FBQ0E7QUFDQSxJQUFJLGdCQUFnQjtBQUNwQjtBQUNBO0FBQ0EsSUFBSSw0QkFBNEI7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLHFCQUFxQjtBQUN6QjtBQUNBO0FBQ0EsSUFBSSxlQUFlO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9yZWFjdC9janMvcmVhY3QuZGV2ZWxvcG1lbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZSBSZWFjdFxuICogcmVhY3QuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIE1ldGEgUGxhdGZvcm1zLCBJbmMuIGFuZCBhZmZpbGlhdGVzLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXCJwcm9kdWN0aW9uXCIgIT09IHByb2Nlc3MuZW52Lk5PREVfRU5WICYmXG4gIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gZGVmaW5lRGVwcmVjYXRpb25XYXJuaW5nKG1ldGhvZE5hbWUsIGluZm8pIHtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21wb25lbnQucHJvdG90eXBlLCBtZXRob2ROYW1lLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIFwiJXMoLi4uKSBpcyBkZXByZWNhdGVkIGluIHBsYWluIEphdmFTY3JpcHQgUmVhY3QgY2xhc3Nlcy4gJXNcIixcbiAgICAgICAgICAgIGluZm9bMF0sXG4gICAgICAgICAgICBpbmZvWzFdXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xuICAgICAgaWYgKG51bGwgPT09IG1heWJlSXRlcmFibGUgfHwgXCJvYmplY3RcIiAhPT0gdHlwZW9mIG1heWJlSXRlcmFibGUpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgbWF5YmVJdGVyYWJsZSA9XG4gICAgICAgIChNQVlCRV9JVEVSQVRPUl9TWU1CT0wgJiYgbWF5YmVJdGVyYWJsZVtNQVlCRV9JVEVSQVRPUl9TWU1CT0xdKSB8fFxuICAgICAgICBtYXliZUl0ZXJhYmxlW1wiQEBpdGVyYXRvclwiXTtcbiAgICAgIHJldHVybiBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBtYXliZUl0ZXJhYmxlID8gbWF5YmVJdGVyYWJsZSA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBjYWxsZXJOYW1lKSB7XG4gICAgICBwdWJsaWNJbnN0YW5jZSA9XG4gICAgICAgICgocHVibGljSW5zdGFuY2UgPSBwdWJsaWNJbnN0YW5jZS5jb25zdHJ1Y3RvcikgJiZcbiAgICAgICAgICAocHVibGljSW5zdGFuY2UuZGlzcGxheU5hbWUgfHwgcHVibGljSW5zdGFuY2UubmFtZSkpIHx8XG4gICAgICAgIFwiUmVhY3RDbGFzc1wiO1xuICAgICAgdmFyIHdhcm5pbmdLZXkgPSBwdWJsaWNJbnN0YW5jZSArIFwiLlwiICsgY2FsbGVyTmFtZTtcbiAgICAgIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudFt3YXJuaW5nS2V5XSB8fFxuICAgICAgICAoY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkNhbid0IGNhbGwgJXMgb24gYSBjb21wb25lbnQgdGhhdCBpcyBub3QgeWV0IG1vdW50ZWQuIFRoaXMgaXMgYSBuby1vcCwgYnV0IGl0IG1pZ2h0IGluZGljYXRlIGEgYnVnIGluIHlvdXIgYXBwbGljYXRpb24uIEluc3RlYWQsIGFzc2lnbiB0byBgdGhpcy5zdGF0ZWAgZGlyZWN0bHkgb3IgZGVmaW5lIGEgYHN0YXRlID0ge307YCBjbGFzcyBwcm9wZXJ0eSB3aXRoIHRoZSBkZXNpcmVkIHN0YXRlIGluIHRoZSAlcyBjb21wb25lbnQuXCIsXG4gICAgICAgICAgY2FsbGVyTmFtZSxcbiAgICAgICAgICBwdWJsaWNJbnN0YW5jZVxuICAgICAgICApLFxuICAgICAgICAoZGlkV2FyblN0YXRlVXBkYXRlRm9yVW5tb3VudGVkQ29tcG9uZW50W3dhcm5pbmdLZXldID0gITApKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gQ29tcG9uZW50KHByb3BzLCBjb250ZXh0LCB1cGRhdGVyKSB7XG4gICAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgdGhpcy5yZWZzID0gZW1wdHlPYmplY3Q7XG4gICAgICB0aGlzLnVwZGF0ZXIgPSB1cGRhdGVyIHx8IFJlYWN0Tm9vcFVwZGF0ZVF1ZXVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBDb21wb25lbnREdW1teSgpIHt9XG4gICAgZnVuY3Rpb24gUHVyZUNvbXBvbmVudChwcm9wcywgY29udGV4dCwgdXBkYXRlcikge1xuICAgICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICAgIHRoaXMucmVmcyA9IGVtcHR5T2JqZWN0O1xuICAgICAgdGhpcy51cGRhdGVyID0gdXBkYXRlciB8fCBSZWFjdE5vb3BVcGRhdGVRdWV1ZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbm9vcCgpIHt9XG4gICAgZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gICAgICByZXR1cm4gXCJcIiArIHZhbHVlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjaGVja0tleVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpO1xuICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gITE7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICEwO1xuICAgICAgfVxuICAgICAgaWYgKEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCkge1xuICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQgPSBjb25zb2xlO1xuICAgICAgICB2YXIgSlNDb21waWxlcl90ZW1wX2NvbnN0ID0gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0LmVycm9yO1xuICAgICAgICB2YXIgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwID1cbiAgICAgICAgICAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgU3ltYm9sICYmXG4gICAgICAgICAgICBTeW1ib2wudG9TdHJpbmdUYWcgJiZcbiAgICAgICAgICAgIHZhbHVlW1N5bWJvbC50b1N0cmluZ1RhZ10pIHx8XG4gICAgICAgICAgdmFsdWUuY29uc3RydWN0b3IubmFtZSB8fFxuICAgICAgICAgIFwiT2JqZWN0XCI7XG4gICAgICAgIEpTQ29tcGlsZXJfdGVtcF9jb25zdC5jYWxsKFxuICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCxcbiAgICAgICAgICBcIlRoZSBwcm92aWRlZCBrZXkgaXMgYW4gdW5zdXBwb3J0ZWQgdHlwZSAlcy4gVGhpcyB2YWx1ZSBtdXN0IGJlIGNvZXJjZWQgdG8gYSBzdHJpbmcgYmVmb3JlIHVzaW5nIGl0IGhlcmUuXCIsXG4gICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0JGpzY29tcCQwXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZSkge1xuICAgICAgaWYgKG51bGwgPT0gdHlwZSkgcmV0dXJuIG51bGw7XG4gICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgdHlwZSlcbiAgICAgICAgcmV0dXJuIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0VcbiAgICAgICAgICA/IG51bGxcbiAgICAgICAgICA6IHR5cGUuZGlzcGxheU5hbWUgfHwgdHlwZS5uYW1lIHx8IG51bGw7XG4gICAgICBpZiAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHR5cGUpIHJldHVybiB0eXBlO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUkVBQ1RfRlJBR01FTlRfVFlQRTpcbiAgICAgICAgICByZXR1cm4gXCJGcmFnbWVudFwiO1xuICAgICAgICBjYXNlIFJFQUNUX1BST0ZJTEVSX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiUHJvZmlsZXJcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN0cmljdE1vZGVcIjtcbiAgICAgICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlXCI7XG4gICAgICAgIGNhc2UgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFOlxuICAgICAgICAgIHJldHVybiBcIlN1c3BlbnNlTGlzdFwiO1xuICAgICAgICBjYXNlIFJFQUNUX0FDVElWSVRZX1RZUEU6XG4gICAgICAgICAgcmV0dXJuIFwiQWN0aXZpdHlcIjtcbiAgICAgIH1cbiAgICAgIGlmIChcIm9iamVjdFwiID09PSB0eXBlb2YgdHlwZSlcbiAgICAgICAgc3dpdGNoIChcbiAgICAgICAgICAoXCJudW1iZXJcIiA9PT0gdHlwZW9mIHR5cGUudGFnICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIlJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgb2JqZWN0IGluIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSgpLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBpbiBSZWFjdC4gUGxlYXNlIGZpbGUgYW4gaXNzdWUuXCJcbiAgICAgICAgICAgICksXG4gICAgICAgICAgdHlwZS4kJHR5cGVvZilcbiAgICAgICAgKSB7XG4gICAgICAgICAgY2FzZSBSRUFDVF9QT1JUQUxfVFlQRTpcbiAgICAgICAgICAgIHJldHVybiBcIlBvcnRhbFwiO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfQ09OVEVYVF9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIHR5cGUuZGlzcGxheU5hbWUgfHwgXCJDb250ZXh0XCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9DT05TVU1FUl9UWVBFOlxuICAgICAgICAgICAgcmV0dXJuICh0eXBlLl9jb250ZXh0LmRpc3BsYXlOYW1lIHx8IFwiQ29udGV4dFwiKSArIFwiLkNvbnN1bWVyXCI7XG4gICAgICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICAgICAgdmFyIGlubmVyVHlwZSA9IHR5cGUucmVuZGVyO1xuICAgICAgICAgICAgdHlwZSA9IHR5cGUuZGlzcGxheU5hbWU7XG4gICAgICAgICAgICB0eXBlIHx8XG4gICAgICAgICAgICAgICgodHlwZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCBcIlwiKSxcbiAgICAgICAgICAgICAgKHR5cGUgPSBcIlwiICE9PSB0eXBlID8gXCJGb3J3YXJkUmVmKFwiICsgdHlwZSArIFwiKVwiIDogXCJGb3J3YXJkUmVmXCIpKTtcbiAgICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgKGlubmVyVHlwZSA9IHR5cGUuZGlzcGxheU5hbWUgfHwgbnVsbCksXG4gICAgICAgICAgICAgIG51bGwgIT09IGlubmVyVHlwZVxuICAgICAgICAgICAgICAgID8gaW5uZXJUeXBlXG4gICAgICAgICAgICAgICAgOiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZS50eXBlKSB8fCBcIk1lbW9cIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjYXNlIFJFQUNUX0xBWllfVFlQRTpcbiAgICAgICAgICAgIGlubmVyVHlwZSA9IHR5cGUuX3BheWxvYWQ7XG4gICAgICAgICAgICB0eXBlID0gdHlwZS5faW5pdDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJldHVybiBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUodHlwZShpbm5lclR5cGUpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHt9XG4gICAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRUYXNrTmFtZSh0eXBlKSB7XG4gICAgICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSkgcmV0dXJuIFwiPD5cIjtcbiAgICAgIGlmIChcbiAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHR5cGUgJiZcbiAgICAgICAgbnVsbCAhPT0gdHlwZSAmJlxuICAgICAgICB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9MQVpZX1RZUEVcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIFwiPC4uLj5cIjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciBuYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgICByZXR1cm4gbmFtZSA/IFwiPFwiICsgbmFtZSArIFwiPlwiIDogXCI8Li4uPlwiO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICByZXR1cm4gXCI8Li4uPlwiO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRPd25lcigpIHtcbiAgICAgIHZhciBkaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuQTtcbiAgICAgIHJldHVybiBudWxsID09PSBkaXNwYXRjaGVyID8gbnVsbCA6IGRpc3BhdGNoZXIuZ2V0T3duZXIoKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gVW5rbm93bk93bmVyKCkge1xuICAgICAgcmV0dXJuIEVycm9yKFwicmVhY3Qtc3RhY2stdG9wLWZyYW1lXCIpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgXCJrZXlcIikpIHtcbiAgICAgICAgdmFyIGdldHRlciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY29uZmlnLCBcImtleVwiKS5nZXQ7XG4gICAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSByZXR1cm4gITE7XG4gICAgICB9XG4gICAgICByZXR1cm4gdm9pZCAwICE9PSBjb25maWcua2V5O1xuICAgIH1cbiAgICBmdW5jdGlvbiBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpIHtcbiAgICAgIGZ1bmN0aW9uIHdhcm5BYm91dEFjY2Vzc2luZ0tleSgpIHtcbiAgICAgICAgc3BlY2lhbFByb3BLZXlXYXJuaW5nU2hvd24gfHxcbiAgICAgICAgICAoKHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duID0gITApLFxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcIiVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0IGluIGB1bmRlZmluZWRgIGJlaW5nIHJldHVybmVkLiBJZiB5b3UgbmVlZCB0byBhY2Nlc3MgdGhlIHNhbWUgdmFsdWUgd2l0aGluIHRoZSBjaGlsZCBjb21wb25lbnQsIHlvdSBzaG91bGQgcGFzcyBpdCBhcyBhIGRpZmZlcmVudCBwcm9wLiAoaHR0cHM6Ly9yZWFjdC5kZXYvbGluay9zcGVjaWFsLXByb3BzKVwiLFxuICAgICAgICAgICAgZGlzcGxheU5hbWVcbiAgICAgICAgICApKTtcbiAgICAgIH1cbiAgICAgIHdhcm5BYm91dEFjY2Vzc2luZ0tleS5pc1JlYWN0V2FybmluZyA9ICEwO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCBcImtleVwiLCB7XG4gICAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nS2V5LFxuICAgICAgICBjb25maWd1cmFibGU6ICEwXG4gICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZWxlbWVudFJlZkdldHRlcldpdGhEZXByZWNhdGlvbldhcm5pbmcoKSB7XG4gICAgICB2YXIgY29tcG9uZW50TmFtZSA9IGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0aGlzLnR5cGUpO1xuICAgICAgZGlkV2FybkFib3V0RWxlbWVudFJlZltjb21wb25lbnROYW1lXSB8fFxuICAgICAgICAoKGRpZFdhcm5BYm91dEVsZW1lbnRSZWZbY29tcG9uZW50TmFtZV0gPSAhMCksXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJBY2Nlc3NpbmcgZWxlbWVudC5yZWYgd2FzIHJlbW92ZWQgaW4gUmVhY3QgMTkuIHJlZiBpcyBub3cgYSByZWd1bGFyIHByb3AuIEl0IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZSBKU1ggRWxlbWVudCB0eXBlIGluIGEgZnV0dXJlIHJlbGVhc2UuXCJcbiAgICAgICAgKSk7XG4gICAgICBjb21wb25lbnROYW1lID0gdGhpcy5wcm9wcy5yZWY7XG4gICAgICByZXR1cm4gdm9pZCAwICE9PSBjb21wb25lbnROYW1lID8gY29tcG9uZW50TmFtZSA6IG51bGw7XG4gICAgfVxuICAgIGZ1bmN0aW9uIFJlYWN0RWxlbWVudCh0eXBlLCBrZXksIHByb3BzLCBvd25lciwgZGVidWdTdGFjaywgZGVidWdUYXNrKSB7XG4gICAgICB2YXIgcmVmUHJvcCA9IHByb3BzLnJlZjtcbiAgICAgIHR5cGUgPSB7XG4gICAgICAgICQkdHlwZW9mOiBSRUFDVF9FTEVNRU5UX1RZUEUsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGtleToga2V5LFxuICAgICAgICBwcm9wczogcHJvcHMsXG4gICAgICAgIF9vd25lcjogb3duZXJcbiAgICAgIH07XG4gICAgICBudWxsICE9PSAodm9pZCAwICE9PSByZWZQcm9wID8gcmVmUHJvcCA6IG51bGwpXG4gICAgICAgID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwicmVmXCIsIHtcbiAgICAgICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICAgICAgZ2V0OiBlbGVtZW50UmVmR2V0dGVyV2l0aERlcHJlY2F0aW9uV2FybmluZ1xuICAgICAgICAgIH0pXG4gICAgICAgIDogT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwicmVmXCIsIHsgZW51bWVyYWJsZTogITEsIHZhbHVlOiBudWxsIH0pO1xuICAgICAgdHlwZS5fc3RvcmUgPSB7fTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLl9zdG9yZSwgXCJ2YWxpZGF0ZWRcIiwge1xuICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICB2YWx1ZTogMFxuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgXCJfZGVidWdJbmZvXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgIH0pO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHR5cGUsIFwiX2RlYnVnU3RhY2tcIiwge1xuICAgICAgICBjb25maWd1cmFibGU6ICExLFxuICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICB2YWx1ZTogZGVidWdTdGFja1xuICAgICAgfSk7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodHlwZSwgXCJfZGVidWdUYXNrXCIsIHtcbiAgICAgICAgY29uZmlndXJhYmxlOiAhMSxcbiAgICAgICAgZW51bWVyYWJsZTogITEsXG4gICAgICAgIHdyaXRhYmxlOiAhMCxcbiAgICAgICAgdmFsdWU6IGRlYnVnVGFza1xuICAgICAgfSk7XG4gICAgICBPYmplY3QuZnJlZXplICYmIChPYmplY3QuZnJlZXplKHR5cGUucHJvcHMpLCBPYmplY3QuZnJlZXplKHR5cGUpKTtcbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBjbG9uZUFuZFJlcGxhY2VLZXkob2xkRWxlbWVudCwgbmV3S2V5KSB7XG4gICAgICBuZXdLZXkgPSBSZWFjdEVsZW1lbnQoXG4gICAgICAgIG9sZEVsZW1lbnQudHlwZSxcbiAgICAgICAgbmV3S2V5LFxuICAgICAgICBvbGRFbGVtZW50LnByb3BzLFxuICAgICAgICBvbGRFbGVtZW50Ll9vd25lcixcbiAgICAgICAgb2xkRWxlbWVudC5fZGVidWdTdGFjayxcbiAgICAgICAgb2xkRWxlbWVudC5fZGVidWdUYXNrXG4gICAgICApO1xuICAgICAgb2xkRWxlbWVudC5fc3RvcmUgJiZcbiAgICAgICAgKG5ld0tleS5fc3RvcmUudmFsaWRhdGVkID0gb2xkRWxlbWVudC5fc3RvcmUudmFsaWRhdGVkKTtcbiAgICAgIHJldHVybiBuZXdLZXk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHZhbGlkYXRlQ2hpbGRLZXlzKG5vZGUpIHtcbiAgICAgIGlzVmFsaWRFbGVtZW50KG5vZGUpXG4gICAgICAgID8gbm9kZS5fc3RvcmUgJiYgKG5vZGUuX3N0b3JlLnZhbGlkYXRlZCA9IDEpXG4gICAgICAgIDogXCJvYmplY3RcIiA9PT0gdHlwZW9mIG5vZGUgJiZcbiAgICAgICAgICBudWxsICE9PSBub2RlICYmXG4gICAgICAgICAgbm9kZS4kJHR5cGVvZiA9PT0gUkVBQ1RfTEFaWV9UWVBFICYmXG4gICAgICAgICAgKFwiZnVsZmlsbGVkXCIgPT09IG5vZGUuX3BheWxvYWQuc3RhdHVzXG4gICAgICAgICAgICA/IGlzVmFsaWRFbGVtZW50KG5vZGUuX3BheWxvYWQudmFsdWUpICYmXG4gICAgICAgICAgICAgIG5vZGUuX3BheWxvYWQudmFsdWUuX3N0b3JlICYmXG4gICAgICAgICAgICAgIChub2RlLl9wYXlsb2FkLnZhbHVlLl9zdG9yZS52YWxpZGF0ZWQgPSAxKVxuICAgICAgICAgICAgOiBub2RlLl9zdG9yZSAmJiAobm9kZS5fc3RvcmUudmFsaWRhdGVkID0gMSkpO1xuICAgIH1cbiAgICBmdW5jdGlvbiBpc1ZhbGlkRWxlbWVudChvYmplY3QpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiBvYmplY3QgJiZcbiAgICAgICAgbnVsbCAhPT0gb2JqZWN0ICYmXG4gICAgICAgIG9iamVjdC4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBlc2NhcGUoa2V5KSB7XG4gICAgICB2YXIgZXNjYXBlckxvb2t1cCA9IHsgXCI9XCI6IFwiPTBcIiwgXCI6XCI6IFwiPTJcIiB9O1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgXCIkXCIgK1xuICAgICAgICBrZXkucmVwbGFjZSgvWz06XS9nLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICByZXR1cm4gZXNjYXBlckxvb2t1cFttYXRjaF07XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICBmdW5jdGlvbiBnZXRFbGVtZW50S2V5KGVsZW1lbnQsIGluZGV4KSB7XG4gICAgICByZXR1cm4gXCJvYmplY3RcIiA9PT0gdHlwZW9mIGVsZW1lbnQgJiZcbiAgICAgICAgbnVsbCAhPT0gZWxlbWVudCAmJlxuICAgICAgICBudWxsICE9IGVsZW1lbnQua2V5XG4gICAgICAgID8gKGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oZWxlbWVudC5rZXkpLCBlc2NhcGUoXCJcIiArIGVsZW1lbnQua2V5KSlcbiAgICAgICAgOiBpbmRleC50b1N0cmluZygzNik7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlc29sdmVUaGVuYWJsZSh0aGVuYWJsZSkge1xuICAgICAgc3dpdGNoICh0aGVuYWJsZS5zdGF0dXMpIHtcbiAgICAgICAgY2FzZSBcImZ1bGZpbGxlZFwiOlxuICAgICAgICAgIHJldHVybiB0aGVuYWJsZS52YWx1ZTtcbiAgICAgICAgY2FzZSBcInJlamVjdGVkXCI6XG4gICAgICAgICAgdGhyb3cgdGhlbmFibGUucmVhc29uO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHN3aXRjaCAoXG4gICAgICAgICAgICAoXCJzdHJpbmdcIiA9PT0gdHlwZW9mIHRoZW5hYmxlLnN0YXR1c1xuICAgICAgICAgICAgICA/IHRoZW5hYmxlLnRoZW4obm9vcCwgbm9vcClcbiAgICAgICAgICAgICAgOiAoKHRoZW5hYmxlLnN0YXR1cyA9IFwicGVuZGluZ1wiKSxcbiAgICAgICAgICAgICAgICB0aGVuYWJsZS50aGVuKFxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGZ1bGZpbGxlZFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIFwicGVuZGluZ1wiID09PSB0aGVuYWJsZS5zdGF0dXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoKHRoZW5hYmxlLnN0YXR1cyA9IFwiZnVsZmlsbGVkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICh0aGVuYWJsZS52YWx1ZSA9IGZ1bGZpbGxlZFZhbHVlKSk7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIFwicGVuZGluZ1wiID09PSB0aGVuYWJsZS5zdGF0dXMgJiZcbiAgICAgICAgICAgICAgICAgICAgICAoKHRoZW5hYmxlLnN0YXR1cyA9IFwicmVqZWN0ZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgKHRoZW5hYmxlLnJlYXNvbiA9IGVycm9yKSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICB0aGVuYWJsZS5zdGF0dXMpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjYXNlIFwiZnVsZmlsbGVkXCI6XG4gICAgICAgICAgICAgIHJldHVybiB0aGVuYWJsZS52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgXCJyZWplY3RlZFwiOlxuICAgICAgICAgICAgICB0aHJvdyB0aGVuYWJsZS5yZWFzb247XG4gICAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgdGhlbmFibGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1hcEludG9BcnJheShjaGlsZHJlbiwgYXJyYXksIGVzY2FwZWRQcmVmaXgsIG5hbWVTb0ZhciwgY2FsbGJhY2spIHtcbiAgICAgIHZhciB0eXBlID0gdHlwZW9mIGNoaWxkcmVuO1xuICAgICAgaWYgKFwidW5kZWZpbmVkXCIgPT09IHR5cGUgfHwgXCJib29sZWFuXCIgPT09IHR5cGUpIGNoaWxkcmVuID0gbnVsbDtcbiAgICAgIHZhciBpbnZva2VDYWxsYmFjayA9ICExO1xuICAgICAgaWYgKG51bGwgPT09IGNoaWxkcmVuKSBpbnZva2VDYWxsYmFjayA9ICEwO1xuICAgICAgZWxzZVxuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICBjYXNlIFwiYmlnaW50XCI6XG4gICAgICAgICAgY2FzZSBcInN0cmluZ1wiOlxuICAgICAgICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgICAgICAgIGludm9rZUNhbGxiYWNrID0gITA7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwib2JqZWN0XCI6XG4gICAgICAgICAgICBzd2l0Y2ggKGNoaWxkcmVuLiQkdHlwZW9mKSB7XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfRUxFTUVOVF9UWVBFOlxuICAgICAgICAgICAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgICAgICAgICAgIGludm9rZUNhbGxiYWNrID0gITA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTEFaWV9UWVBFOlxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAoaW52b2tlQ2FsbGJhY2sgPSBjaGlsZHJlbi5faW5pdCksXG4gICAgICAgICAgICAgICAgICBtYXBJbnRvQXJyYXkoXG4gICAgICAgICAgICAgICAgICAgIGludm9rZUNhbGxiYWNrKGNoaWxkcmVuLl9wYXlsb2FkKSxcbiAgICAgICAgICAgICAgICAgICAgYXJyYXksXG4gICAgICAgICAgICAgICAgICAgIGVzY2FwZWRQcmVmaXgsXG4gICAgICAgICAgICAgICAgICAgIG5hbWVTb0ZhcixcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBpZiAoaW52b2tlQ2FsbGJhY2spIHtcbiAgICAgICAgaW52b2tlQ2FsbGJhY2sgPSBjaGlsZHJlbjtcbiAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayhpbnZva2VDYWxsYmFjayk7XG4gICAgICAgIHZhciBjaGlsZEtleSA9XG4gICAgICAgICAgXCJcIiA9PT0gbmFtZVNvRmFyID8gXCIuXCIgKyBnZXRFbGVtZW50S2V5KGludm9rZUNhbGxiYWNrLCAwKSA6IG5hbWVTb0ZhcjtcbiAgICAgICAgaXNBcnJheUltcGwoY2FsbGJhY2spXG4gICAgICAgICAgPyAoKGVzY2FwZWRQcmVmaXggPSBcIlwiKSxcbiAgICAgICAgICAgIG51bGwgIT0gY2hpbGRLZXkgJiZcbiAgICAgICAgICAgICAgKGVzY2FwZWRQcmVmaXggPVxuICAgICAgICAgICAgICAgIGNoaWxkS2V5LnJlcGxhY2UodXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsIFwiJCYvXCIpICsgXCIvXCIpLFxuICAgICAgICAgICAgbWFwSW50b0FycmF5KGNhbGxiYWNrLCBhcnJheSwgZXNjYXBlZFByZWZpeCwgXCJcIiwgZnVuY3Rpb24gKGMpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGM7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICA6IG51bGwgIT0gY2FsbGJhY2sgJiZcbiAgICAgICAgICAgIChpc1ZhbGlkRWxlbWVudChjYWxsYmFjaykgJiZcbiAgICAgICAgICAgICAgKG51bGwgIT0gY2FsbGJhY2sua2V5ICYmXG4gICAgICAgICAgICAgICAgKChpbnZva2VDYWxsYmFjayAmJiBpbnZva2VDYWxsYmFjay5rZXkgPT09IGNhbGxiYWNrLmtleSkgfHxcbiAgICAgICAgICAgICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY2FsbGJhY2sua2V5KSksXG4gICAgICAgICAgICAgIChlc2NhcGVkUHJlZml4ID0gY2xvbmVBbmRSZXBsYWNlS2V5KFxuICAgICAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgICAgIGVzY2FwZWRQcmVmaXggK1xuICAgICAgICAgICAgICAgICAgKG51bGwgPT0gY2FsbGJhY2sua2V5IHx8XG4gICAgICAgICAgICAgICAgICAoaW52b2tlQ2FsbGJhY2sgJiYgaW52b2tlQ2FsbGJhY2sua2V5ID09PSBjYWxsYmFjay5rZXkpXG4gICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICA6IChcIlwiICsgY2FsbGJhY2sua2V5KS5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiQmL1wiXG4gICAgICAgICAgICAgICAgICAgICAgKSArIFwiL1wiKSArXG4gICAgICAgICAgICAgICAgICBjaGlsZEtleVxuICAgICAgICAgICAgICApKSxcbiAgICAgICAgICAgICAgXCJcIiAhPT0gbmFtZVNvRmFyICYmXG4gICAgICAgICAgICAgICAgbnVsbCAhPSBpbnZva2VDYWxsYmFjayAmJlxuICAgICAgICAgICAgICAgIGlzVmFsaWRFbGVtZW50KGludm9rZUNhbGxiYWNrKSAmJlxuICAgICAgICAgICAgICAgIG51bGwgPT0gaW52b2tlQ2FsbGJhY2sua2V5ICYmXG4gICAgICAgICAgICAgICAgaW52b2tlQ2FsbGJhY2suX3N0b3JlICYmXG4gICAgICAgICAgICAgICAgIWludm9rZUNhbGxiYWNrLl9zdG9yZS52YWxpZGF0ZWQgJiZcbiAgICAgICAgICAgICAgICAoZXNjYXBlZFByZWZpeC5fc3RvcmUudmFsaWRhdGVkID0gMiksXG4gICAgICAgICAgICAgIChjYWxsYmFjayA9IGVzY2FwZWRQcmVmaXgpKSxcbiAgICAgICAgICAgIGFycmF5LnB1c2goY2FsbGJhY2spKTtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICBpbnZva2VDYWxsYmFjayA9IDA7XG4gICAgICBjaGlsZEtleSA9IFwiXCIgPT09IG5hbWVTb0ZhciA/IFwiLlwiIDogbmFtZVNvRmFyICsgXCI6XCI7XG4gICAgICBpZiAoaXNBcnJheUltcGwoY2hpbGRyZW4pKVxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKVxuICAgICAgICAgIChuYW1lU29GYXIgPSBjaGlsZHJlbltpXSksXG4gICAgICAgICAgICAodHlwZSA9IGNoaWxkS2V5ICsgZ2V0RWxlbWVudEtleShuYW1lU29GYXIsIGkpKSxcbiAgICAgICAgICAgIChpbnZva2VDYWxsYmFjayArPSBtYXBJbnRvQXJyYXkoXG4gICAgICAgICAgICAgIG5hbWVTb0ZhcixcbiAgICAgICAgICAgICAgYXJyYXksXG4gICAgICAgICAgICAgIGVzY2FwZWRQcmVmaXgsXG4gICAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgICApKTtcbiAgICAgIGVsc2UgaWYgKCgoaSA9IGdldEl0ZXJhdG9yRm4oY2hpbGRyZW4pKSwgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgaSkpXG4gICAgICAgIGZvciAoXG4gICAgICAgICAgaSA9PT0gY2hpbGRyZW4uZW50cmllcyAmJlxuICAgICAgICAgICAgKGRpZFdhcm5BYm91dE1hcHMgfHxcbiAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIFwiVXNpbmcgTWFwcyBhcyBjaGlsZHJlbiBpcyBub3Qgc3VwcG9ydGVkLiBVc2UgYW4gYXJyYXkgb2Yga2V5ZWQgUmVhY3RFbGVtZW50cyBpbnN0ZWFkLlwiXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAoZGlkV2FybkFib3V0TWFwcyA9ICEwKSksXG4gICAgICAgICAgICBjaGlsZHJlbiA9IGkuY2FsbChjaGlsZHJlbiksXG4gICAgICAgICAgICBpID0gMDtcbiAgICAgICAgICAhKG5hbWVTb0ZhciA9IGNoaWxkcmVuLm5leHQoKSkuZG9uZTtcblxuICAgICAgICApXG4gICAgICAgICAgKG5hbWVTb0ZhciA9IG5hbWVTb0Zhci52YWx1ZSksXG4gICAgICAgICAgICAodHlwZSA9IGNoaWxkS2V5ICsgZ2V0RWxlbWVudEtleShuYW1lU29GYXIsIGkrKykpLFxuICAgICAgICAgICAgKGludm9rZUNhbGxiYWNrICs9IG1hcEludG9BcnJheShcbiAgICAgICAgICAgICAgbmFtZVNvRmFyLFxuICAgICAgICAgICAgICBhcnJheSxcbiAgICAgICAgICAgICAgZXNjYXBlZFByZWZpeCxcbiAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgY2FsbGJhY2tcbiAgICAgICAgICAgICkpO1xuICAgICAgZWxzZSBpZiAoXCJvYmplY3RcIiA9PT0gdHlwZSkge1xuICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgY2hpbGRyZW4udGhlbilcbiAgICAgICAgICByZXR1cm4gbWFwSW50b0FycmF5KFxuICAgICAgICAgICAgcmVzb2x2ZVRoZW5hYmxlKGNoaWxkcmVuKSxcbiAgICAgICAgICAgIGFycmF5LFxuICAgICAgICAgICAgZXNjYXBlZFByZWZpeCxcbiAgICAgICAgICAgIG5hbWVTb0ZhcixcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICAgKTtcbiAgICAgICAgYXJyYXkgPSBTdHJpbmcoY2hpbGRyZW4pO1xuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIk9iamVjdHMgYXJlIG5vdCB2YWxpZCBhcyBhIFJlYWN0IGNoaWxkIChmb3VuZDogXCIgK1xuICAgICAgICAgICAgKFwiW29iamVjdCBPYmplY3RdXCIgPT09IGFycmF5XG4gICAgICAgICAgICAgID8gXCJvYmplY3Qgd2l0aCBrZXlzIHtcIiArIE9iamVjdC5rZXlzKGNoaWxkcmVuKS5qb2luKFwiLCBcIikgKyBcIn1cIlxuICAgICAgICAgICAgICA6IGFycmF5KSArXG4gICAgICAgICAgICBcIikuIElmIHlvdSBtZWFudCB0byByZW5kZXIgYSBjb2xsZWN0aW9uIG9mIGNoaWxkcmVuLCB1c2UgYW4gYXJyYXkgaW5zdGVhZC5cIlxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGludm9rZUNhbGxiYWNrO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuYywgY29udGV4dCkge1xuICAgICAgaWYgKG51bGwgPT0gY2hpbGRyZW4pIHJldHVybiBjaGlsZHJlbjtcbiAgICAgIHZhciByZXN1bHQgPSBbXSxcbiAgICAgICAgY291bnQgPSAwO1xuICAgICAgbWFwSW50b0FycmF5KGNoaWxkcmVuLCByZXN1bHQsIFwiXCIsIFwiXCIsIGZ1bmN0aW9uIChjaGlsZCkge1xuICAgICAgICByZXR1cm4gZnVuYy5jYWxsKGNvbnRleHQsIGNoaWxkLCBjb3VudCsrKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gbGF6eUluaXRpYWxpemVyKHBheWxvYWQpIHtcbiAgICAgIGlmICgtMSA9PT0gcGF5bG9hZC5fc3RhdHVzKSB7XG4gICAgICAgIHZhciBpb0luZm8gPSBwYXlsb2FkLl9pb0luZm87XG4gICAgICAgIG51bGwgIT0gaW9JbmZvICYmIChpb0luZm8uc3RhcnQgPSBpb0luZm8uZW5kID0gcGVyZm9ybWFuY2Uubm93KCkpO1xuICAgICAgICBpb0luZm8gPSBwYXlsb2FkLl9yZXN1bHQ7XG4gICAgICAgIHZhciB0aGVuYWJsZSA9IGlvSW5mbygpO1xuICAgICAgICB0aGVuYWJsZS50aGVuKFxuICAgICAgICAgIGZ1bmN0aW9uIChtb2R1bGVPYmplY3QpIHtcbiAgICAgICAgICAgIGlmICgwID09PSBwYXlsb2FkLl9zdGF0dXMgfHwgLTEgPT09IHBheWxvYWQuX3N0YXR1cykge1xuICAgICAgICAgICAgICBwYXlsb2FkLl9zdGF0dXMgPSAxO1xuICAgICAgICAgICAgICBwYXlsb2FkLl9yZXN1bHQgPSBtb2R1bGVPYmplY3Q7XG4gICAgICAgICAgICAgIHZhciBfaW9JbmZvID0gcGF5bG9hZC5faW9JbmZvO1xuICAgICAgICAgICAgICBudWxsICE9IF9pb0luZm8gJiYgKF9pb0luZm8uZW5kID0gcGVyZm9ybWFuY2Uubm93KCkpO1xuICAgICAgICAgICAgICB2b2lkIDAgPT09IHRoZW5hYmxlLnN0YXR1cyAmJlxuICAgICAgICAgICAgICAgICgodGhlbmFibGUuc3RhdHVzID0gXCJmdWxmaWxsZWRcIiksXG4gICAgICAgICAgICAgICAgKHRoZW5hYmxlLnZhbHVlID0gbW9kdWxlT2JqZWN0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBmdW5jdGlvbiAoZXJyb3IpIHtcbiAgICAgICAgICAgIGlmICgwID09PSBwYXlsb2FkLl9zdGF0dXMgfHwgLTEgPT09IHBheWxvYWQuX3N0YXR1cykge1xuICAgICAgICAgICAgICBwYXlsb2FkLl9zdGF0dXMgPSAyO1xuICAgICAgICAgICAgICBwYXlsb2FkLl9yZXN1bHQgPSBlcnJvcjtcbiAgICAgICAgICAgICAgdmFyIF9pb0luZm8yID0gcGF5bG9hZC5faW9JbmZvO1xuICAgICAgICAgICAgICBudWxsICE9IF9pb0luZm8yICYmIChfaW9JbmZvMi5lbmQgPSBwZXJmb3JtYW5jZS5ub3coKSk7XG4gICAgICAgICAgICAgIHZvaWQgMCA9PT0gdGhlbmFibGUuc3RhdHVzICYmXG4gICAgICAgICAgICAgICAgKCh0aGVuYWJsZS5zdGF0dXMgPSBcInJlamVjdGVkXCIpLCAodGhlbmFibGUucmVhc29uID0gZXJyb3IpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICAgIGlvSW5mbyA9IHBheWxvYWQuX2lvSW5mbztcbiAgICAgICAgaWYgKG51bGwgIT0gaW9JbmZvKSB7XG4gICAgICAgICAgaW9JbmZvLnZhbHVlID0gdGhlbmFibGU7XG4gICAgICAgICAgdmFyIGRpc3BsYXlOYW1lID0gdGhlbmFibGUuZGlzcGxheU5hbWU7XG4gICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGRpc3BsYXlOYW1lICYmIChpb0luZm8ubmFtZSA9IGRpc3BsYXlOYW1lKTtcbiAgICAgICAgfVxuICAgICAgICAtMSA9PT0gcGF5bG9hZC5fc3RhdHVzICYmXG4gICAgICAgICAgKChwYXlsb2FkLl9zdGF0dXMgPSAwKSwgKHBheWxvYWQuX3Jlc3VsdCA9IHRoZW5hYmxlKSk7XG4gICAgICB9XG4gICAgICBpZiAoMSA9PT0gcGF5bG9hZC5fc3RhdHVzKVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIChpb0luZm8gPSBwYXlsb2FkLl9yZXN1bHQpLFxuICAgICAgICAgIHZvaWQgMCA9PT0gaW9JbmZvICYmXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcImxhenk6IEV4cGVjdGVkIHRoZSByZXN1bHQgb2YgYSBkeW5hbWljIGltcG9ydCgpIGNhbGwuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzXFxuXFxuWW91ciBjb2RlIHNob3VsZCBsb29rIGxpa2U6IFxcbiAgY29uc3QgTXlDb21wb25lbnQgPSBsYXp5KCgpID0+IGltcG9ydCgnLi9NeUNvbXBvbmVudCcpKVxcblxcbkRpZCB5b3UgYWNjaWRlbnRhbGx5IHB1dCBjdXJseSBicmFjZXMgYXJvdW5kIHRoZSBpbXBvcnQ/XCIsXG4gICAgICAgICAgICAgIGlvSW5mb1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICBcImRlZmF1bHRcIiBpbiBpb0luZm8gfHxcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgIFwibGF6eTogRXhwZWN0ZWQgdGhlIHJlc3VsdCBvZiBhIGR5bmFtaWMgaW1wb3J0KCkgY2FsbC4gSW5zdGVhZCByZWNlaXZlZDogJXNcXG5cXG5Zb3VyIGNvZGUgc2hvdWxkIGxvb2sgbGlrZTogXFxuICBjb25zdCBNeUNvbXBvbmVudCA9IGxhenkoKCkgPT4gaW1wb3J0KCcuL015Q29tcG9uZW50JykpXCIsXG4gICAgICAgICAgICAgIGlvSW5mb1xuICAgICAgICAgICAgKSxcbiAgICAgICAgICBpb0luZm8uZGVmYXVsdFxuICAgICAgICApO1xuICAgICAgdGhyb3cgcGF5bG9hZC5fcmVzdWx0O1xuICAgIH1cbiAgICBmdW5jdGlvbiByZXNvbHZlRGlzcGF0Y2hlcigpIHtcbiAgICAgIHZhciBkaXNwYXRjaGVyID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuSDtcbiAgICAgIG51bGwgPT09IGRpc3BhdGNoZXIgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBcIkludmFsaWQgaG9vayBjYWxsLiBIb29rcyBjYW4gb25seSBiZSBjYWxsZWQgaW5zaWRlIG9mIHRoZSBib2R5IG9mIGEgZnVuY3Rpb24gY29tcG9uZW50LiBUaGlzIGNvdWxkIGhhcHBlbiBmb3Igb25lIG9mIHRoZSBmb2xsb3dpbmcgcmVhc29uczpcXG4xLiBZb3UgbWlnaHQgaGF2ZSBtaXNtYXRjaGluZyB2ZXJzaW9ucyBvZiBSZWFjdCBhbmQgdGhlIHJlbmRlcmVyIChzdWNoIGFzIFJlYWN0IERPTSlcXG4yLiBZb3UgbWlnaHQgYmUgYnJlYWtpbmcgdGhlIFJ1bGVzIG9mIEhvb2tzXFxuMy4gWW91IG1pZ2h0IGhhdmUgbW9yZSB0aGFuIG9uZSBjb3B5IG9mIFJlYWN0IGluIHRoZSBzYW1lIGFwcFxcblNlZSBodHRwczovL3JlYWN0LmRldi9saW5rL2ludmFsaWQtaG9vay1jYWxsIGZvciB0aXBzIGFib3V0IGhvdyB0byBkZWJ1ZyBhbmQgZml4IHRoaXMgcHJvYmxlbS5cIlxuICAgICAgICApO1xuICAgICAgcmV0dXJuIGRpc3BhdGNoZXI7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlbGVhc2VBc3luY1RyYW5zaXRpb24oKSB7XG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscy5hc3luY1RyYW5zaXRpb25zLS07XG4gICAgfVxuICAgIGZ1bmN0aW9uIGVucXVldWVUYXNrKHRhc2spIHtcbiAgICAgIGlmIChudWxsID09PSBlbnF1ZXVlVGFza0ltcGwpXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgdmFyIHJlcXVpcmVTdHJpbmcgPSAoXCJyZXF1aXJlXCIgKyBNYXRoLnJhbmRvbSgpKS5zbGljZSgwLCA3KTtcbiAgICAgICAgICBlbnF1ZXVlVGFza0ltcGwgPSAobW9kdWxlICYmIG1vZHVsZVtyZXF1aXJlU3RyaW5nXSkuY2FsbChcbiAgICAgICAgICAgIG1vZHVsZSxcbiAgICAgICAgICAgIFwidGltZXJzXCJcbiAgICAgICAgICApLnNldEltbWVkaWF0ZTtcbiAgICAgICAgfSBjYXRjaCAoX2Vycikge1xuICAgICAgICAgIGVucXVldWVUYXNrSW1wbCA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgICAgICAgICAgITEgPT09IGRpZFdhcm5BYm91dE1lc3NhZ2VDaGFubmVsICYmXG4gICAgICAgICAgICAgICgoZGlkV2FybkFib3V0TWVzc2FnZUNoYW5uZWwgPSAhMCksXG4gICAgICAgICAgICAgIFwidW5kZWZpbmVkXCIgPT09IHR5cGVvZiBNZXNzYWdlQ2hhbm5lbCAmJlxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICBcIlRoaXMgYnJvd3NlciBkb2VzIG5vdCBoYXZlIGEgTWVzc2FnZUNoYW5uZWwgaW1wbGVtZW50YXRpb24sIHNvIGVucXVldWluZyB0YXNrcyB2aWEgYXdhaXQgYWN0KGFzeW5jICgpID0+IC4uLikgd2lsbCBmYWlsLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZSBhdCBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzIGlmIHlvdSBlbmNvdW50ZXIgdGhpcyB3YXJuaW5nLlwiXG4gICAgICAgICAgICAgICAgKSk7XG4gICAgICAgICAgICB2YXIgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpO1xuICAgICAgICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBjYWxsYmFjaztcbiAgICAgICAgICAgIGNoYW5uZWwucG9ydDIucG9zdE1lc3NhZ2Uodm9pZCAwKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICByZXR1cm4gZW5xdWV1ZVRhc2tJbXBsKHRhc2spO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhZ2dyZWdhdGVFcnJvcnMoZXJyb3JzKSB7XG4gICAgICByZXR1cm4gMSA8IGVycm9ycy5sZW5ndGggJiYgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgQWdncmVnYXRlRXJyb3JcbiAgICAgICAgPyBuZXcgQWdncmVnYXRlRXJyb3IoZXJyb3JzKVxuICAgICAgICA6IGVycm9yc1swXTtcbiAgICB9XG4gICAgZnVuY3Rpb24gcG9wQWN0U2NvcGUocHJldkFjdFF1ZXVlLCBwcmV2QWN0U2NvcGVEZXB0aCkge1xuICAgICAgcHJldkFjdFNjb3BlRGVwdGggIT09IGFjdFNjb3BlRGVwdGggLSAxICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgXCJZb3Ugc2VlbSB0byBoYXZlIG92ZXJsYXBwaW5nIGFjdCgpIGNhbGxzLCB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQuIEJlIHN1cmUgdG8gYXdhaXQgcHJldmlvdXMgYWN0KCkgY2FsbHMgYmVmb3JlIG1ha2luZyBhIG5ldyBvbmUuIFwiXG4gICAgICAgICk7XG4gICAgICBhY3RTY29wZURlcHRoID0gcHJldkFjdFNjb3BlRGVwdGg7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlY3Vyc2l2ZWx5Rmx1c2hBc3luY0FjdFdvcmsocmV0dXJuVmFsdWUsIHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgdmFyIHF1ZXVlID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWU7XG4gICAgICBpZiAobnVsbCAhPT0gcXVldWUpXG4gICAgICAgIGlmICgwICE9PSBxdWV1ZS5sZW5ndGgpXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGZsdXNoQWN0UXVldWUocXVldWUpO1xuICAgICAgICAgICAgZW5xdWV1ZVRhc2soZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVjdXJzaXZlbHlGbHVzaEFzeW5jQWN0V29yayhyZXR1cm5WYWx1ZSwgcmVzb2x2ZSwgcmVqZWN0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMucHVzaChlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICBlbHNlIFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlID0gbnVsbDtcbiAgICAgIDAgPCBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoXG4gICAgICAgID8gKChxdWV1ZSA9IGFnZ3JlZ2F0ZUVycm9ycyhSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMpKSxcbiAgICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLmxlbmd0aCA9IDApLFxuICAgICAgICAgIHJlamVjdChxdWV1ZSkpXG4gICAgICAgIDogcmVzb2x2ZShyZXR1cm5WYWx1ZSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZsdXNoQWN0UXVldWUocXVldWUpIHtcbiAgICAgIGlmICghaXNGbHVzaGluZykge1xuICAgICAgICBpc0ZsdXNoaW5nID0gITA7XG4gICAgICAgIHZhciBpID0gMDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBmb3IgKDsgaSA8IHF1ZXVlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSBxdWV1ZVtpXTtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMuZGlkVXNlUHJvbWlzZSA9ICExO1xuICAgICAgICAgICAgICB2YXIgY29udGludWF0aW9uID0gY2FsbGJhY2soITEpO1xuICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gY29udGludWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLmRpZFVzZVByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgIHF1ZXVlW2ldID0gY2FsbGJhY2s7XG4gICAgICAgICAgICAgICAgICBxdWV1ZS5zcGxpY2UoMCwgaSk7XG4gICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxiYWNrID0gY29udGludWF0aW9uO1xuICAgICAgICAgICAgICB9IGVsc2UgYnJlYWs7XG4gICAgICAgICAgICB9IHdoaWxlICgxKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcXVldWUubGVuZ3RoID0gMDtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBxdWV1ZS5zcGxpY2UoMCwgaSArIDEpLCBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMucHVzaChlcnJvcik7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaXNGbHVzaGluZyA9ICExO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT1cbiAgICAgICAgdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQgJiZcbiAgICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RhcnQoRXJyb3IoKSk7XG4gICAgdmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC50cmFuc2l0aW9uYWwuZWxlbWVudFwiKSxcbiAgICAgIFJFQUNUX1BPUlRBTF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnBvcnRhbFwiKSxcbiAgICAgIFJFQUNUX0ZSQUdNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZnJhZ21lbnRcIiksXG4gICAgICBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN0cmljdF9tb2RlXCIpLFxuICAgICAgUkVBQ1RfUFJPRklMRVJfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5wcm9maWxlclwiKSxcbiAgICAgIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29uc3VtZXJcIiksXG4gICAgICBSRUFDVF9DT05URVhUX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuY29udGV4dFwiKSxcbiAgICAgIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QuZm9yd2FyZF9yZWZcIiksXG4gICAgICBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlXCIpLFxuICAgICAgUkVBQ1RfU1VTUEVOU0VfTElTVF9UWVBFID0gU3ltYm9sLmZvcihcInJlYWN0LnN1c3BlbnNlX2xpc3RcIiksXG4gICAgICBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKFwicmVhY3QubWVtb1wiKSxcbiAgICAgIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5sYXp5XCIpLFxuICAgICAgUkVBQ1RfQUNUSVZJVFlfVFlQRSA9IFN5bWJvbC5mb3IoXCJyZWFjdC5hY3Rpdml0eVwiKSxcbiAgICAgIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvcixcbiAgICAgIGRpZFdhcm5TdGF0ZVVwZGF0ZUZvclVubW91bnRlZENvbXBvbmVudCA9IHt9LFxuICAgICAgUmVhY3ROb29wVXBkYXRlUXVldWUgPSB7XG4gICAgICAgIGlzTW91bnRlZDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiAhMTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5xdWV1ZUZvcmNlVXBkYXRlOiBmdW5jdGlvbiAocHVibGljSW5zdGFuY2UpIHtcbiAgICAgICAgICB3YXJuTm9vcChwdWJsaWNJbnN0YW5jZSwgXCJmb3JjZVVwZGF0ZVwiKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW5xdWV1ZVJlcGxhY2VTdGF0ZTogZnVuY3Rpb24gKHB1YmxpY0luc3RhbmNlKSB7XG4gICAgICAgICAgd2Fybk5vb3AocHVibGljSW5zdGFuY2UsIFwicmVwbGFjZVN0YXRlXCIpO1xuICAgICAgICB9LFxuICAgICAgICBlbnF1ZXVlU2V0U3RhdGU6IGZ1bmN0aW9uIChwdWJsaWNJbnN0YW5jZSkge1xuICAgICAgICAgIHdhcm5Ob29wKHB1YmxpY0luc3RhbmNlLCBcInNldFN0YXRlXCIpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgYXNzaWduID0gT2JqZWN0LmFzc2lnbixcbiAgICAgIGVtcHR5T2JqZWN0ID0ge307XG4gICAgT2JqZWN0LmZyZWV6ZShlbXB0eU9iamVjdCk7XG4gICAgQ29tcG9uZW50LnByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50ID0ge307XG4gICAgQ29tcG9uZW50LnByb3RvdHlwZS5zZXRTdGF0ZSA9IGZ1bmN0aW9uIChwYXJ0aWFsU3RhdGUsIGNhbGxiYWNrKSB7XG4gICAgICBpZiAoXG4gICAgICAgIFwib2JqZWN0XCIgIT09IHR5cGVvZiBwYXJ0aWFsU3RhdGUgJiZcbiAgICAgICAgXCJmdW5jdGlvblwiICE9PSB0eXBlb2YgcGFydGlhbFN0YXRlICYmXG4gICAgICAgIG51bGwgIT0gcGFydGlhbFN0YXRlXG4gICAgICApXG4gICAgICAgIHRocm93IEVycm9yKFxuICAgICAgICAgIFwidGFrZXMgYW4gb2JqZWN0IG9mIHN0YXRlIHZhcmlhYmxlcyB0byB1cGRhdGUgb3IgYSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIGFuIG9iamVjdCBvZiBzdGF0ZSB2YXJpYWJsZXMuXCJcbiAgICAgICAgKTtcbiAgICAgIHRoaXMudXBkYXRlci5lbnF1ZXVlU2V0U3RhdGUodGhpcywgcGFydGlhbFN0YXRlLCBjYWxsYmFjaywgXCJzZXRTdGF0ZVwiKTtcbiAgICB9O1xuICAgIENvbXBvbmVudC5wcm90b3R5cGUuZm9yY2VVcGRhdGUgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgIHRoaXMudXBkYXRlci5lbnF1ZXVlRm9yY2VVcGRhdGUodGhpcywgY2FsbGJhY2ssIFwiZm9yY2VVcGRhdGVcIik7XG4gICAgfTtcbiAgICB2YXIgZGVwcmVjYXRlZEFQSXMgPSB7XG4gICAgICBpc01vdW50ZWQ6IFtcbiAgICAgICAgXCJpc01vdW50ZWRcIixcbiAgICAgICAgXCJJbnN0ZWFkLCBtYWtlIHN1cmUgdG8gY2xlYW4gdXAgc3Vic2NyaXB0aW9ucyBhbmQgcGVuZGluZyByZXF1ZXN0cyBpbiBjb21wb25lbnRXaWxsVW5tb3VudCB0byBwcmV2ZW50IG1lbW9yeSBsZWFrcy5cIlxuICAgICAgXSxcbiAgICAgIHJlcGxhY2VTdGF0ZTogW1xuICAgICAgICBcInJlcGxhY2VTdGF0ZVwiLFxuICAgICAgICBcIlJlZmFjdG9yIHlvdXIgY29kZSB0byB1c2Ugc2V0U3RhdGUgaW5zdGVhZCAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMzIzNikuXCJcbiAgICAgIF1cbiAgICB9O1xuICAgIGZvciAoZm5OYW1lIGluIGRlcHJlY2F0ZWRBUElzKVxuICAgICAgZGVwcmVjYXRlZEFQSXMuaGFzT3duUHJvcGVydHkoZm5OYW1lKSAmJlxuICAgICAgICBkZWZpbmVEZXByZWNhdGlvbldhcm5pbmcoZm5OYW1lLCBkZXByZWNhdGVkQVBJc1tmbk5hbWVdKTtcbiAgICBDb21wb25lbnREdW1teS5wcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICAgIGRlcHJlY2F0ZWRBUElzID0gUHVyZUNvbXBvbmVudC5wcm90b3R5cGUgPSBuZXcgQ29tcG9uZW50RHVtbXkoKTtcbiAgICBkZXByZWNhdGVkQVBJcy5jb25zdHJ1Y3RvciA9IFB1cmVDb21wb25lbnQ7XG4gICAgYXNzaWduKGRlcHJlY2F0ZWRBUElzLCBDb21wb25lbnQucHJvdG90eXBlKTtcbiAgICBkZXByZWNhdGVkQVBJcy5pc1B1cmVSZWFjdENvbXBvbmVudCA9ICEwO1xuICAgIHZhciBpc0FycmF5SW1wbCA9IEFycmF5LmlzQXJyYXksXG4gICAgICBSRUFDVF9DTElFTlRfUkVGRVJFTkNFID0gU3ltYm9sLmZvcihcInJlYWN0LmNsaWVudC5yZWZlcmVuY2VcIiksXG4gICAgICBSZWFjdFNoYXJlZEludGVybmFscyA9IHtcbiAgICAgICAgSDogbnVsbCxcbiAgICAgICAgQTogbnVsbCxcbiAgICAgICAgVDogbnVsbCxcbiAgICAgICAgUzogbnVsbCxcbiAgICAgICAgYWN0UXVldWU6IG51bGwsXG4gICAgICAgIGFzeW5jVHJhbnNpdGlvbnM6IDAsXG4gICAgICAgIGlzQmF0Y2hpbmdMZWdhY3k6ICExLFxuICAgICAgICBkaWRTY2hlZHVsZUxlZ2FjeVVwZGF0ZTogITEsXG4gICAgICAgIGRpZFVzZVByb21pc2U6ICExLFxuICAgICAgICB0aHJvd25FcnJvcnM6IFtdLFxuICAgICAgICBnZXRDdXJyZW50U3RhY2s6IG51bGwsXG4gICAgICAgIHJlY2VudGx5Q3JlYXRlZE93bmVyU3RhY2tzOiAwXG4gICAgICB9LFxuICAgICAgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LFxuICAgICAgY3JlYXRlVGFzayA9IGNvbnNvbGUuY3JlYXRlVGFza1xuICAgICAgICA/IGNvbnNvbGUuY3JlYXRlVGFza1xuICAgICAgICA6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH07XG4gICAgZGVwcmVjYXRlZEFQSXMgPSB7XG4gICAgICByZWFjdF9zdGFja19ib3R0b21fZnJhbWU6IGZ1bmN0aW9uIChjYWxsU3RhY2tGb3JFcnJvcikge1xuICAgICAgICByZXR1cm4gY2FsbFN0YWNrRm9yRXJyb3IoKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHZhciBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biwgZGlkV2FybkFib3V0T2xkSlNYUnVudGltZTtcbiAgICB2YXIgZGlkV2FybkFib3V0RWxlbWVudFJlZiA9IHt9O1xuICAgIHZhciB1bmtub3duT3duZXJEZWJ1Z1N0YWNrID0gZGVwcmVjYXRlZEFQSXMucmVhY3Rfc3RhY2tfYm90dG9tX2ZyYW1lLmJpbmQoXG4gICAgICBkZXByZWNhdGVkQVBJcyxcbiAgICAgIFVua25vd25Pd25lclxuICAgICkoKTtcbiAgICB2YXIgdW5rbm93bk93bmVyRGVidWdUYXNrID0gY3JlYXRlVGFzayhnZXRUYXNrTmFtZShVbmtub3duT3duZXIpKTtcbiAgICB2YXIgZGlkV2FybkFib3V0TWFwcyA9ICExLFxuICAgICAgdXNlclByb3ZpZGVkS2V5RXNjYXBlUmVnZXggPSAvXFwvKy9nLFxuICAgICAgcmVwb3J0R2xvYmFsRXJyb3IgPVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiByZXBvcnRFcnJvclxuICAgICAgICAgID8gcmVwb3J0RXJyb3JcbiAgICAgICAgICA6IGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHdpbmRvdyAmJlxuICAgICAgICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHdpbmRvdy5FcnJvckV2ZW50XG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHZhciBldmVudCA9IG5ldyB3aW5kb3cuRXJyb3JFdmVudChcImVycm9yXCIsIHtcbiAgICAgICAgICAgICAgICAgIGJ1YmJsZXM6ICEwLFxuICAgICAgICAgICAgICAgICAgY2FuY2VsYWJsZTogITAsXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICAgICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgZXJyb3IgJiZcbiAgICAgICAgICAgICAgICAgICAgbnVsbCAhPT0gZXJyb3IgJiZcbiAgICAgICAgICAgICAgICAgICAgXCJzdHJpbmdcIiA9PT0gdHlwZW9mIGVycm9yLm1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICA/IFN0cmluZyhlcnJvci5tZXNzYWdlKVxuICAgICAgICAgICAgICAgICAgICAgIDogU3RyaW5nKGVycm9yKSxcbiAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvclxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghd2luZG93LmRpc3BhdGNoRXZlbnQoZXZlbnQpKSByZXR1cm47XG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIHByb2Nlc3MgJiZcbiAgICAgICAgICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBwcm9jZXNzLmVtaXRcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5lbWl0KFwidW5jYXVnaHRFeGNlcHRpb25cIiwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIH0sXG4gICAgICBkaWRXYXJuQWJvdXRNZXNzYWdlQ2hhbm5lbCA9ICExLFxuICAgICAgZW5xdWV1ZVRhc2tJbXBsID0gbnVsbCxcbiAgICAgIGFjdFNjb3BlRGVwdGggPSAwLFxuICAgICAgZGlkV2Fybk5vQXdhaXRBY3QgPSAhMSxcbiAgICAgIGlzRmx1c2hpbmcgPSAhMSxcbiAgICAgIHF1ZXVlU2V2ZXJhbE1pY3JvdGFza3MgPVxuICAgICAgICBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBxdWV1ZU1pY3JvdGFza1xuICAgICAgICAgID8gZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgIHF1ZXVlTWljcm90YXNrKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcXVldWVNaWNyb3Rhc2soY2FsbGJhY2spO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IGVucXVldWVUYXNrO1xuICAgIGRlcHJlY2F0ZWRBUElzID0gT2JqZWN0LmZyZWV6ZSh7XG4gICAgICBfX3Byb3RvX186IG51bGwsXG4gICAgICBjOiBmdW5jdGlvbiAoc2l6ZSkge1xuICAgICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VNZW1vQ2FjaGUoc2l6ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdmFyIGZuTmFtZSA9IHtcbiAgICAgIG1hcDogbWFwQ2hpbGRyZW4sXG4gICAgICBmb3JFYWNoOiBmdW5jdGlvbiAoY2hpbGRyZW4sIGZvckVhY2hGdW5jLCBmb3JFYWNoQ29udGV4dCkge1xuICAgICAgICBtYXBDaGlsZHJlbihcbiAgICAgICAgICBjaGlsZHJlbixcbiAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBmb3JFYWNoRnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZm9yRWFjaENvbnRleHRcbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBjb3VudDogZnVuY3Rpb24gKGNoaWxkcmVuKSB7XG4gICAgICAgIHZhciBuID0gMDtcbiAgICAgICAgbWFwQ2hpbGRyZW4oY2hpbGRyZW4sIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICBuKys7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbjtcbiAgICAgIH0sXG4gICAgICB0b0FycmF5OiBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBtYXBDaGlsZHJlbihjaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgICAgfSkgfHwgW11cbiAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgICBvbmx5OiBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICAgICAgaWYgKCFpc1ZhbGlkRWxlbWVudChjaGlsZHJlbikpXG4gICAgICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICAgICBcIlJlYWN0LkNoaWxkcmVuLm9ubHkgZXhwZWN0ZWQgdG8gcmVjZWl2ZSBhIHNpbmdsZSBSZWFjdCBlbGVtZW50IGNoaWxkLlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgICAgfVxuICAgIH07XG4gICAgZXhwb3J0cy5BY3Rpdml0eSA9IFJFQUNUX0FDVElWSVRZX1RZUEU7XG4gICAgZXhwb3J0cy5DaGlsZHJlbiA9IGZuTmFtZTtcbiAgICBleHBvcnRzLkNvbXBvbmVudCA9IENvbXBvbmVudDtcbiAgICBleHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbiAgICBleHBvcnRzLlByb2ZpbGVyID0gUkVBQ1RfUFJPRklMRVJfVFlQRTtcbiAgICBleHBvcnRzLlB1cmVDb21wb25lbnQgPSBQdXJlQ29tcG9uZW50O1xuICAgIGV4cG9ydHMuU3RyaWN0TW9kZSA9IFJFQUNUX1NUUklDVF9NT0RFX1RZUEU7XG4gICAgZXhwb3J0cy5TdXNwZW5zZSA9IFJFQUNUX1NVU1BFTlNFX1RZUEU7XG4gICAgZXhwb3J0cy5fX0NMSUVOVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUgPVxuICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHM7XG4gICAgZXhwb3J0cy5fX0NPTVBJTEVSX1JVTlRJTUUgPSBkZXByZWNhdGVkQVBJcztcbiAgICBleHBvcnRzLmFjdCA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgICAgdmFyIHByZXZBY3RRdWV1ZSA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLmFjdFF1ZXVlLFxuICAgICAgICBwcmV2QWN0U2NvcGVEZXB0aCA9IGFjdFNjb3BlRGVwdGg7XG4gICAgICBhY3RTY29wZURlcHRoKys7XG4gICAgICB2YXIgcXVldWUgPSAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgPVxuICAgICAgICAgIG51bGwgIT09IHByZXZBY3RRdWV1ZSA/IHByZXZBY3RRdWV1ZSA6IFtdKSxcbiAgICAgICAgZGlkQXdhaXRBY3RDYWxsID0gITE7XG4gICAgICB0cnkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gY2FsbGJhY2soKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgIH1cbiAgICAgIGlmICgwIDwgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLmxlbmd0aClcbiAgICAgICAgdGhyb3cgKFxuICAgICAgICAgIChwb3BBY3RTY29wZShwcmV2QWN0UXVldWUsIHByZXZBY3RTY29wZURlcHRoKSxcbiAgICAgICAgICAoY2FsbGJhY2sgPSBhZ2dyZWdhdGVFcnJvcnMoUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzKSksXG4gICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycy5sZW5ndGggPSAwKSxcbiAgICAgICAgICBjYWxsYmFjaylcbiAgICAgICAgKTtcbiAgICAgIGlmIChcbiAgICAgICAgbnVsbCAhPT0gcmVzdWx0ICYmXG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiByZXN1bHQgJiZcbiAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcmVzdWx0LnRoZW5cbiAgICAgICkge1xuICAgICAgICB2YXIgdGhlbmFibGUgPSByZXN1bHQ7XG4gICAgICAgIHF1ZXVlU2V2ZXJhbE1pY3JvdGFza3MoZnVuY3Rpb24gKCkge1xuICAgICAgICAgIGRpZEF3YWl0QWN0Q2FsbCB8fFxuICAgICAgICAgICAgZGlkV2Fybk5vQXdhaXRBY3QgfHxcbiAgICAgICAgICAgICgoZGlkV2Fybk5vQXdhaXRBY3QgPSAhMCksXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgICBcIllvdSBjYWxsZWQgYWN0KGFzeW5jICgpID0+IC4uLikgd2l0aG91dCBhd2FpdC4gVGhpcyBjb3VsZCBsZWFkIHRvIHVuZXhwZWN0ZWQgdGVzdGluZyBiZWhhdmlvdXIsIGludGVybGVhdmluZyBtdWx0aXBsZSBhY3QgY2FsbHMgYW5kIG1peGluZyB0aGVpciBzY29wZXMuIFlvdSBzaG91bGQgLSBhd2FpdCBhY3QoYXN5bmMgKCkgPT4gLi4uKTtcIlxuICAgICAgICAgICAgKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRoZW46IGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIGRpZEF3YWl0QWN0Q2FsbCA9ICEwO1xuICAgICAgICAgICAgdGhlbmFibGUudGhlbihcbiAgICAgICAgICAgICAgZnVuY3Rpb24gKHJldHVyblZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcG9wQWN0U2NvcGUocHJldkFjdFF1ZXVlLCBwcmV2QWN0U2NvcGVEZXB0aCk7XG4gICAgICAgICAgICAgICAgaWYgKDAgPT09IHByZXZBY3RTY29wZURlcHRoKSB7XG4gICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBmbHVzaEFjdFF1ZXVlKHF1ZXVlKSxcbiAgICAgICAgICAgICAgICAgICAgICBlbnF1ZXVlVGFzayhmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVjdXJzaXZlbHlGbHVzaEFzeW5jQWN0V29yayhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yJDApIHtcbiAgICAgICAgICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLnB1c2goZXJyb3IkMCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoMCA8IFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF90aHJvd25FcnJvciA9IGFnZ3JlZ2F0ZUVycm9ycyhcbiAgICAgICAgICAgICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgUmVhY3RTaGFyZWRJbnRlcm5hbHMudGhyb3duRXJyb3JzLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChfdGhyb3duRXJyb3IpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSByZXNvbHZlKHJldHVyblZhbHVlKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcG9wQWN0U2NvcGUocHJldkFjdFF1ZXVlLCBwcmV2QWN0U2NvcGVEZXB0aCk7XG4gICAgICAgICAgICAgICAgMCA8IFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgID8gKChlcnJvciA9IGFnZ3JlZ2F0ZUVycm9ycyhcbiAgICAgICAgICAgICAgICAgICAgICBSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgKSksXG4gICAgICAgICAgICAgICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoID0gMCksXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcikpXG4gICAgICAgICAgICAgICAgICA6IHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgdmFyIHJldHVyblZhbHVlJGpzY29tcCQwID0gcmVzdWx0O1xuICAgICAgcG9wQWN0U2NvcGUocHJldkFjdFF1ZXVlLCBwcmV2QWN0U2NvcGVEZXB0aCk7XG4gICAgICAwID09PSBwcmV2QWN0U2NvcGVEZXB0aCAmJlxuICAgICAgICAoZmx1c2hBY3RRdWV1ZShxdWV1ZSksXG4gICAgICAgIDAgIT09IHF1ZXVlLmxlbmd0aCAmJlxuICAgICAgICAgIHF1ZXVlU2V2ZXJhbE1pY3JvdGFza3MoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgZGlkQXdhaXRBY3RDYWxsIHx8XG4gICAgICAgICAgICAgIGRpZFdhcm5Ob0F3YWl0QWN0IHx8XG4gICAgICAgICAgICAgICgoZGlkV2Fybk5vQXdhaXRBY3QgPSAhMCksXG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgXCJBIGNvbXBvbmVudCBzdXNwZW5kZWQgaW5zaWRlIGFuIGBhY3RgIHNjb3BlLCBidXQgdGhlIGBhY3RgIGNhbGwgd2FzIG5vdCBhd2FpdGVkLiBXaGVuIHRlc3RpbmcgUmVhY3QgY29tcG9uZW50cyB0aGF0IGRlcGVuZCBvbiBhc3luY2hyb25vdXMgZGF0YSwgeW91IG11c3QgYXdhaXQgdGhlIHJlc3VsdDpcXG5cXG5hd2FpdCBhY3QoKCkgPT4gLi4uKVwiXG4gICAgICAgICAgICAgICkpO1xuICAgICAgICAgIH0pLFxuICAgICAgICAoUmVhY3RTaGFyZWRJbnRlcm5hbHMuYWN0UXVldWUgPSBudWxsKSk7XG4gICAgICBpZiAoMCA8IFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycy5sZW5ndGgpXG4gICAgICAgIHRocm93IChcbiAgICAgICAgICAoKGNhbGxiYWNrID0gYWdncmVnYXRlRXJyb3JzKFJlYWN0U2hhcmVkSW50ZXJuYWxzLnRocm93bkVycm9ycykpLFxuICAgICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy50aHJvd25FcnJvcnMubGVuZ3RoID0gMCksXG4gICAgICAgICAgY2FsbGJhY2spXG4gICAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0aGVuOiBmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgZGlkQXdhaXRBY3RDYWxsID0gITA7XG4gICAgICAgICAgMCA9PT0gcHJldkFjdFNjb3BlRGVwdGhcbiAgICAgICAgICAgID8gKChSZWFjdFNoYXJlZEludGVybmFscy5hY3RRdWV1ZSA9IHF1ZXVlKSxcbiAgICAgICAgICAgICAgZW5xdWV1ZVRhc2soZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZWN1cnNpdmVseUZsdXNoQXN5bmNBY3RXb3JrKFxuICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWUkanNjb21wJDAsXG4gICAgICAgICAgICAgICAgICByZXNvbHZlLFxuICAgICAgICAgICAgICAgICAgcmVqZWN0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICA6IHJlc29sdmUocmV0dXJuVmFsdWUkanNjb21wJDApO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG4gICAgZXhwb3J0cy5jYWNoZSA9IGZ1bmN0aW9uIChmbikge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGZuLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICB9O1xuICAgIH07XG4gICAgZXhwb3J0cy5jYWNoZVNpZ25hbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gICAgZXhwb3J0cy5jYXB0dXJlT3duZXJTdGFjayA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciBnZXRDdXJyZW50U3RhY2sgPSBSZWFjdFNoYXJlZEludGVybmFscy5nZXRDdXJyZW50U3RhY2s7XG4gICAgICByZXR1cm4gbnVsbCA9PT0gZ2V0Q3VycmVudFN0YWNrID8gbnVsbCA6IGdldEN1cnJlbnRTdGFjaygpO1xuICAgIH07XG4gICAgZXhwb3J0cy5jbG9uZUVsZW1lbnQgPSBmdW5jdGlvbiAoZWxlbWVudCwgY29uZmlnLCBjaGlsZHJlbikge1xuICAgICAgaWYgKG51bGwgPT09IGVsZW1lbnQgfHwgdm9pZCAwID09PSBlbGVtZW50KVxuICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICBcIlRoZSBhcmd1bWVudCBtdXN0IGJlIGEgUmVhY3QgZWxlbWVudCwgYnV0IHlvdSBwYXNzZWQgXCIgK1xuICAgICAgICAgICAgZWxlbWVudCArXG4gICAgICAgICAgICBcIi5cIlxuICAgICAgICApO1xuICAgICAgdmFyIHByb3BzID0gYXNzaWduKHt9LCBlbGVtZW50LnByb3BzKSxcbiAgICAgICAga2V5ID0gZWxlbWVudC5rZXksXG4gICAgICAgIG93bmVyID0gZWxlbWVudC5fb3duZXI7XG4gICAgICBpZiAobnVsbCAhPSBjb25maWcpIHtcbiAgICAgICAgdmFyIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdDtcbiAgICAgICAgYToge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBcInJlZlwiKSAmJlxuICAgICAgICAgICAgKEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoXG4gICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgXCJyZWZcIlxuICAgICAgICAgICAgKS5nZXQpICYmXG4gICAgICAgICAgICBKU0NvbXBpbGVyX2lubGluZV9yZXN1bHQuaXNSZWFjdFdhcm5pbmdcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9ICExO1xuICAgICAgICAgICAgYnJlYWsgYTtcbiAgICAgICAgICB9XG4gICAgICAgICAgSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0ID0gdm9pZCAwICE9PSBjb25maWcucmVmO1xuICAgICAgICB9XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCAmJiAob3duZXIgPSBnZXRPd25lcigpKTtcbiAgICAgICAgaGFzVmFsaWRLZXkoY29uZmlnKSAmJlxuICAgICAgICAgIChjaGVja0tleVN0cmluZ0NvZXJjaW9uKGNvbmZpZy5rZXkpLCAoa2V5ID0gXCJcIiArIGNvbmZpZy5rZXkpKTtcbiAgICAgICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpXG4gICAgICAgICAgIWhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCBwcm9wTmFtZSkgfHxcbiAgICAgICAgICAgIFwia2V5XCIgPT09IHByb3BOYW1lIHx8XG4gICAgICAgICAgICBcIl9fc2VsZlwiID09PSBwcm9wTmFtZSB8fFxuICAgICAgICAgICAgXCJfX3NvdXJjZVwiID09PSBwcm9wTmFtZSB8fFxuICAgICAgICAgICAgKFwicmVmXCIgPT09IHByb3BOYW1lICYmIHZvaWQgMCA9PT0gY29uZmlnLnJlZikgfHxcbiAgICAgICAgICAgIChwcm9wc1twcm9wTmFtZV0gPSBjb25maWdbcHJvcE5hbWVdKTtcbiAgICAgIH1cbiAgICAgIHZhciBwcm9wTmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggLSAyO1xuICAgICAgaWYgKDEgPT09IHByb3BOYW1lKSBwcm9wcy5jaGlsZHJlbiA9IGNoaWxkcmVuO1xuICAgICAgZWxzZSBpZiAoMSA8IHByb3BOYW1lKSB7XG4gICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdCA9IEFycmF5KHByb3BOYW1lKTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wTmFtZTsgaSsrKVxuICAgICAgICAgIEpTQ29tcGlsZXJfaW5saW5lX3Jlc3VsdFtpXSA9IGFyZ3VtZW50c1tpICsgMl07XG4gICAgICAgIHByb3BzLmNoaWxkcmVuID0gSlNDb21waWxlcl9pbmxpbmVfcmVzdWx0O1xuICAgICAgfVxuICAgICAgcHJvcHMgPSBSZWFjdEVsZW1lbnQoXG4gICAgICAgIGVsZW1lbnQudHlwZSxcbiAgICAgICAga2V5LFxuICAgICAgICBwcm9wcyxcbiAgICAgICAgb3duZXIsXG4gICAgICAgIGVsZW1lbnQuX2RlYnVnU3RhY2ssXG4gICAgICAgIGVsZW1lbnQuX2RlYnVnVGFza1xuICAgICAgKTtcbiAgICAgIGZvciAoa2V5ID0gMjsga2V5IDwgYXJndW1lbnRzLmxlbmd0aDsga2V5KyspXG4gICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGFyZ3VtZW50c1trZXldKTtcbiAgICAgIHJldHVybiBwcm9wcztcbiAgICB9O1xuICAgIGV4cG9ydHMuY3JlYXRlQ29udGV4dCA9IGZ1bmN0aW9uIChkZWZhdWx0VmFsdWUpIHtcbiAgICAgIGRlZmF1bHRWYWx1ZSA9IHtcbiAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0NPTlRFWFRfVFlQRSxcbiAgICAgICAgX2N1cnJlbnRWYWx1ZTogZGVmYXVsdFZhbHVlLFxuICAgICAgICBfY3VycmVudFZhbHVlMjogZGVmYXVsdFZhbHVlLFxuICAgICAgICBfdGhyZWFkQ291bnQ6IDAsXG4gICAgICAgIFByb3ZpZGVyOiBudWxsLFxuICAgICAgICBDb25zdW1lcjogbnVsbFxuICAgICAgfTtcbiAgICAgIGRlZmF1bHRWYWx1ZS5Qcm92aWRlciA9IGRlZmF1bHRWYWx1ZTtcbiAgICAgIGRlZmF1bHRWYWx1ZS5Db25zdW1lciA9IHtcbiAgICAgICAgJCR0eXBlb2Y6IFJFQUNUX0NPTlNVTUVSX1RZUEUsXG4gICAgICAgIF9jb250ZXh0OiBkZWZhdWx0VmFsdWVcbiAgICAgIH07XG4gICAgICBkZWZhdWx0VmFsdWUuX2N1cnJlbnRSZW5kZXJlciA9IG51bGw7XG4gICAgICBkZWZhdWx0VmFsdWUuX2N1cnJlbnRSZW5kZXJlcjIgPSBudWxsO1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9O1xuICAgIGV4cG9ydHMuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uICh0eXBlLCBjb25maWcsIGNoaWxkcmVuKSB7XG4gICAgICBmb3IgKHZhciBpID0gMjsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcbiAgICAgICAgdmFsaWRhdGVDaGlsZEtleXMoYXJndW1lbnRzW2ldKTtcbiAgICAgIGkgPSB7fTtcbiAgICAgIHZhciBrZXkgPSBudWxsO1xuICAgICAgaWYgKG51bGwgIT0gY29uZmlnKVxuICAgICAgICBmb3IgKHByb3BOYW1lIGluIChkaWRXYXJuQWJvdXRPbGRKU1hSdW50aW1lIHx8XG4gICAgICAgICAgIShcIl9fc2VsZlwiIGluIGNvbmZpZykgfHxcbiAgICAgICAgICBcImtleVwiIGluIGNvbmZpZyB8fFxuICAgICAgICAgICgoZGlkV2FybkFib3V0T2xkSlNYUnVudGltZSA9ICEwKSxcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBcIllvdXIgYXBwIChvciBvbmUgb2YgaXRzIGRlcGVuZGVuY2llcykgaXMgdXNpbmcgYW4gb3V0ZGF0ZWQgSlNYIHRyYW5zZm9ybS4gVXBkYXRlIHRvIHRoZSBtb2Rlcm4gSlNYIHRyYW5zZm9ybSBmb3IgZmFzdGVyIHBlcmZvcm1hbmNlOiBodHRwczovL3JlYWN0LmRldi9saW5rL25ldy1qc3gtdHJhbnNmb3JtXCJcbiAgICAgICAgICApKSxcbiAgICAgICAgaGFzVmFsaWRLZXkoY29uZmlnKSAmJlxuICAgICAgICAgIChjaGVja0tleVN0cmluZ0NvZXJjaW9uKGNvbmZpZy5rZXkpLCAoa2V5ID0gXCJcIiArIGNvbmZpZy5rZXkpKSxcbiAgICAgICAgY29uZmlnKSlcbiAgICAgICAgICBoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmXG4gICAgICAgICAgICBcImtleVwiICE9PSBwcm9wTmFtZSAmJlxuICAgICAgICAgICAgXCJfX3NlbGZcIiAhPT0gcHJvcE5hbWUgJiZcbiAgICAgICAgICAgIFwiX19zb3VyY2VcIiAhPT0gcHJvcE5hbWUgJiZcbiAgICAgICAgICAgIChpW3Byb3BOYW1lXSA9IGNvbmZpZ1twcm9wTmFtZV0pO1xuICAgICAgdmFyIGNoaWxkcmVuTGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aCAtIDI7XG4gICAgICBpZiAoMSA9PT0gY2hpbGRyZW5MZW5ndGgpIGkuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICAgIGVsc2UgaWYgKDEgPCBjaGlsZHJlbkxlbmd0aCkge1xuICAgICAgICBmb3IgKFxuICAgICAgICAgIHZhciBjaGlsZEFycmF5ID0gQXJyYXkoY2hpbGRyZW5MZW5ndGgpLCBfaSA9IDA7XG4gICAgICAgICAgX2kgPCBjaGlsZHJlbkxlbmd0aDtcbiAgICAgICAgICBfaSsrXG4gICAgICAgIClcbiAgICAgICAgICBjaGlsZEFycmF5W19pXSA9IGFyZ3VtZW50c1tfaSArIDJdO1xuICAgICAgICBPYmplY3QuZnJlZXplICYmIE9iamVjdC5mcmVlemUoY2hpbGRBcnJheSk7XG4gICAgICAgIGkuY2hpbGRyZW4gPSBjaGlsZEFycmF5O1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgJiYgdHlwZS5kZWZhdWx0UHJvcHMpXG4gICAgICAgIGZvciAocHJvcE5hbWUgaW4gKChjaGlsZHJlbkxlbmd0aCA9IHR5cGUuZGVmYXVsdFByb3BzKSwgY2hpbGRyZW5MZW5ndGgpKVxuICAgICAgICAgIHZvaWQgMCA9PT0gaVtwcm9wTmFtZV0gJiYgKGlbcHJvcE5hbWVdID0gY2hpbGRyZW5MZW5ndGhbcHJvcE5hbWVdKTtcbiAgICAgIGtleSAmJlxuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihcbiAgICAgICAgICBpLFxuICAgICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHR5cGVcbiAgICAgICAgICAgID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgXCJVbmtub3duXCJcbiAgICAgICAgICAgIDogdHlwZVxuICAgICAgICApO1xuICAgICAgdmFyIHByb3BOYW1lID0gMWU0ID4gUmVhY3RTaGFyZWRJbnRlcm5hbHMucmVjZW50bHlDcmVhdGVkT3duZXJTdGFja3MrKztcbiAgICAgIHJldHVybiBSZWFjdEVsZW1lbnQoXG4gICAgICAgIHR5cGUsXG4gICAgICAgIGtleSxcbiAgICAgICAgaSxcbiAgICAgICAgZ2V0T3duZXIoKSxcbiAgICAgICAgcHJvcE5hbWUgPyBFcnJvcihcInJlYWN0LXN0YWNrLXRvcC1mcmFtZVwiKSA6IHVua25vd25Pd25lckRlYnVnU3RhY2ssXG4gICAgICAgIHByb3BOYW1lID8gY3JlYXRlVGFzayhnZXRUYXNrTmFtZSh0eXBlKSkgOiB1bmtub3duT3duZXJEZWJ1Z1Rhc2tcbiAgICAgICk7XG4gICAgfTtcbiAgICBleHBvcnRzLmNyZWF0ZVJlZiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHZhciByZWZPYmplY3QgPSB7IGN1cnJlbnQ6IG51bGwgfTtcbiAgICAgIE9iamVjdC5zZWFsKHJlZk9iamVjdCk7XG4gICAgICByZXR1cm4gcmVmT2JqZWN0O1xuICAgIH07XG4gICAgZXhwb3J0cy5mb3J3YXJkUmVmID0gZnVuY3Rpb24gKHJlbmRlcikge1xuICAgICAgbnVsbCAhPSByZW5kZXIgJiYgcmVuZGVyLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEVcbiAgICAgICAgPyBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICAgXCJmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCByZWNlaXZlZCBhIGBtZW1vYCBjb21wb25lbnQuIEluc3RlYWQgb2YgZm9yd2FyZFJlZihtZW1vKC4uLikpLCB1c2UgbWVtbyhmb3J3YXJkUmVmKC4uLikpLlwiXG4gICAgICAgICAgKVxuICAgICAgICA6IFwiZnVuY3Rpb25cIiAhPT0gdHlwZW9mIHJlbmRlclxuICAgICAgICAgID8gY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJmb3J3YXJkUmVmIHJlcXVpcmVzIGEgcmVuZGVyIGZ1bmN0aW9uIGJ1dCB3YXMgZ2l2ZW4gJXMuXCIsXG4gICAgICAgICAgICAgIG51bGwgPT09IHJlbmRlciA/IFwibnVsbFwiIDogdHlwZW9mIHJlbmRlclxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogMCAhPT0gcmVuZGVyLmxlbmd0aCAmJlxuICAgICAgICAgICAgMiAhPT0gcmVuZGVyLmxlbmd0aCAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgXCJmb3J3YXJkUmVmIHJlbmRlciBmdW5jdGlvbnMgYWNjZXB0IGV4YWN0bHkgdHdvIHBhcmFtZXRlcnM6IHByb3BzIGFuZCByZWYuICVzXCIsXG4gICAgICAgICAgICAgIDEgPT09IHJlbmRlci5sZW5ndGhcbiAgICAgICAgICAgICAgICA/IFwiRGlkIHlvdSBmb3JnZXQgdG8gdXNlIHRoZSByZWYgcGFyYW1ldGVyP1wiXG4gICAgICAgICAgICAgICAgOiBcIkFueSBhZGRpdGlvbmFsIHBhcmFtZXRlciB3aWxsIGJlIHVuZGVmaW5lZC5cIlxuICAgICAgICAgICAgKTtcbiAgICAgIG51bGwgIT0gcmVuZGVyICYmXG4gICAgICAgIG51bGwgIT0gcmVuZGVyLmRlZmF1bHRQcm9wcyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiZm9yd2FyZFJlZiByZW5kZXIgZnVuY3Rpb25zIGRvIG5vdCBzdXBwb3J0IGRlZmF1bHRQcm9wcy4gRGlkIHlvdSBhY2NpZGVudGFsbHkgcGFzcyBhIFJlYWN0IGNvbXBvbmVudD9cIlxuICAgICAgICApO1xuICAgICAgdmFyIGVsZW1lbnRUeXBlID0geyAkJHR5cGVvZjogUkVBQ1RfRk9SV0FSRF9SRUZfVFlQRSwgcmVuZGVyOiByZW5kZXIgfSxcbiAgICAgICAgb3duTmFtZTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50VHlwZSwgXCJkaXNwbGF5TmFtZVwiLCB7XG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICBjb25maWd1cmFibGU6ICEwLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgIG93bk5hbWUgPSBuYW1lO1xuICAgICAgICAgIHJlbmRlci5uYW1lIHx8XG4gICAgICAgICAgICByZW5kZXIuZGlzcGxheU5hbWUgfHxcbiAgICAgICAgICAgIChPYmplY3QuZGVmaW5lUHJvcGVydHkocmVuZGVyLCBcIm5hbWVcIiwgeyB2YWx1ZTogbmFtZSB9KSxcbiAgICAgICAgICAgIChyZW5kZXIuZGlzcGxheU5hbWUgPSBuYW1lKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGVsZW1lbnRUeXBlO1xuICAgIH07XG4gICAgZXhwb3J0cy5pc1ZhbGlkRWxlbWVudCA9IGlzVmFsaWRFbGVtZW50O1xuICAgIGV4cG9ydHMubGF6eSA9IGZ1bmN0aW9uIChjdG9yKSB7XG4gICAgICBjdG9yID0geyBfc3RhdHVzOiAtMSwgX3Jlc3VsdDogY3RvciB9O1xuICAgICAgdmFyIGxhenlUeXBlID0ge1xuICAgICAgICAgICQkdHlwZW9mOiBSRUFDVF9MQVpZX1RZUEUsXG4gICAgICAgICAgX3BheWxvYWQ6IGN0b3IsXG4gICAgICAgICAgX2luaXQ6IGxhenlJbml0aWFsaXplclxuICAgICAgICB9LFxuICAgICAgICBpb0luZm8gPSB7XG4gICAgICAgICAgbmFtZTogXCJsYXp5XCIsXG4gICAgICAgICAgc3RhcnQ6IC0xLFxuICAgICAgICAgIGVuZDogLTEsXG4gICAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICAgICAgb3duZXI6IG51bGwsXG4gICAgICAgICAgZGVidWdTdGFjazogRXJyb3IoXCJyZWFjdC1zdGFjay10b3AtZnJhbWVcIiksXG4gICAgICAgICAgZGVidWdUYXNrOiBjb25zb2xlLmNyZWF0ZVRhc2sgPyBjb25zb2xlLmNyZWF0ZVRhc2soXCJsYXp5KClcIikgOiBudWxsXG4gICAgICAgIH07XG4gICAgICBjdG9yLl9pb0luZm8gPSBpb0luZm87XG4gICAgICBsYXp5VHlwZS5fZGVidWdJbmZvID0gW3sgYXdhaXRlZDogaW9JbmZvIH1dO1xuICAgICAgcmV0dXJuIGxhenlUeXBlO1xuICAgIH07XG4gICAgZXhwb3J0cy5tZW1vID0gZnVuY3Rpb24gKHR5cGUsIGNvbXBhcmUpIHtcbiAgICAgIG51bGwgPT0gdHlwZSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwibWVtbzogVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBjb21wb25lbnQuIEluc3RlYWQgcmVjZWl2ZWQ6ICVzXCIsXG4gICAgICAgICAgbnVsbCA9PT0gdHlwZSA/IFwibnVsbFwiIDogdHlwZW9mIHR5cGVcbiAgICAgICAgKTtcbiAgICAgIGNvbXBhcmUgPSB7XG4gICAgICAgICQkdHlwZW9mOiBSRUFDVF9NRU1PX1RZUEUsXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIGNvbXBhcmU6IHZvaWQgMCA9PT0gY29tcGFyZSA/IG51bGwgOiBjb21wYXJlXG4gICAgICB9O1xuICAgICAgdmFyIG93bk5hbWU7XG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoY29tcGFyZSwgXCJkaXNwbGF5TmFtZVwiLCB7XG4gICAgICAgIGVudW1lcmFibGU6ICExLFxuICAgICAgICBjb25maWd1cmFibGU6ICEwLFxuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gb3duTmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgIG93bk5hbWUgPSBuYW1lO1xuICAgICAgICAgIHR5cGUubmFtZSB8fFxuICAgICAgICAgICAgdHlwZS5kaXNwbGF5TmFtZSB8fFxuICAgICAgICAgICAgKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0eXBlLCBcIm5hbWVcIiwgeyB2YWx1ZTogbmFtZSB9KSxcbiAgICAgICAgICAgICh0eXBlLmRpc3BsYXlOYW1lID0gbmFtZSkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjb21wYXJlO1xuICAgIH07XG4gICAgZXhwb3J0cy5zdGFydFRyYW5zaXRpb24gPSBmdW5jdGlvbiAoc2NvcGUpIHtcbiAgICAgIHZhciBwcmV2VHJhbnNpdGlvbiA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQsXG4gICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uID0ge307XG4gICAgICBjdXJyZW50VHJhbnNpdGlvbi5fdXBkYXRlZEZpYmVycyA9IG5ldyBTZXQoKTtcbiAgICAgIFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBjdXJyZW50VHJhbnNpdGlvbjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHZhciByZXR1cm5WYWx1ZSA9IHNjb3BlKCksXG4gICAgICAgICAgb25TdGFydFRyYW5zaXRpb25GaW5pc2ggPSBSZWFjdFNoYXJlZEludGVybmFscy5TO1xuICAgICAgICBudWxsICE9PSBvblN0YXJ0VHJhbnNpdGlvbkZpbmlzaCAmJlxuICAgICAgICAgIG9uU3RhcnRUcmFuc2l0aW9uRmluaXNoKGN1cnJlbnRUcmFuc2l0aW9uLCByZXR1cm5WYWx1ZSk7XG4gICAgICAgIFwib2JqZWN0XCIgPT09IHR5cGVvZiByZXR1cm5WYWx1ZSAmJlxuICAgICAgICAgIG51bGwgIT09IHJldHVyblZhbHVlICYmXG4gICAgICAgICAgXCJmdW5jdGlvblwiID09PSB0eXBlb2YgcmV0dXJuVmFsdWUudGhlbiAmJlxuICAgICAgICAgIChSZWFjdFNoYXJlZEludGVybmFscy5hc3luY1RyYW5zaXRpb25zKyssXG4gICAgICAgICAgcmV0dXJuVmFsdWUudGhlbihyZWxlYXNlQXN5bmNUcmFuc2l0aW9uLCByZWxlYXNlQXN5bmNUcmFuc2l0aW9uKSxcbiAgICAgICAgICByZXR1cm5WYWx1ZS50aGVuKG5vb3AsIHJlcG9ydEdsb2JhbEVycm9yKSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXBvcnRHbG9iYWxFcnJvcihlcnJvcik7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBudWxsID09PSBwcmV2VHJhbnNpdGlvbiAmJlxuICAgICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzICYmXG4gICAgICAgICAgKChzY29wZSA9IGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLnNpemUpLFxuICAgICAgICAgIGN1cnJlbnRUcmFuc2l0aW9uLl91cGRhdGVkRmliZXJzLmNsZWFyKCksXG4gICAgICAgICAgMTAgPCBzY29wZSAmJlxuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBcIkRldGVjdGVkIGEgbGFyZ2UgbnVtYmVyIG9mIHVwZGF0ZXMgaW5zaWRlIHN0YXJ0VHJhbnNpdGlvbi4gSWYgdGhpcyBpcyBkdWUgdG8gYSBzdWJzY3JpcHRpb24gcGxlYXNlIHJlLXdyaXRlIGl0IHRvIHVzZSBSZWFjdCBwcm92aWRlZCBob29rcy4gT3RoZXJ3aXNlIGNvbmN1cnJlbnQgbW9kZSBndWFyYW50ZWVzIGFyZSBvZmYgdGhlIHRhYmxlLlwiXG4gICAgICAgICAgICApKSxcbiAgICAgICAgICBudWxsICE9PSBwcmV2VHJhbnNpdGlvbiAmJlxuICAgICAgICAgICAgbnVsbCAhPT0gY3VycmVudFRyYW5zaXRpb24udHlwZXMgJiZcbiAgICAgICAgICAgIChudWxsICE9PSBwcmV2VHJhbnNpdGlvbi50eXBlcyAmJlxuICAgICAgICAgICAgICBwcmV2VHJhbnNpdGlvbi50eXBlcyAhPT0gY3VycmVudFRyYW5zaXRpb24udHlwZXMgJiZcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgICBcIldlIGV4cGVjdGVkIGlubmVyIFRyYW5zaXRpb25zIHRvIGhhdmUgdHJhbnNmZXJyZWQgdGhlIG91dGVyIHR5cGVzIHNldCBhbmQgdGhhdCB5b3UgY2Fubm90IGFkZCB0byB0aGUgb3V0ZXIgVHJhbnNpdGlvbiB3aGlsZSBpbnNpZGUgdGhlIGlubmVyLlRoaXMgaXMgYSBidWcgaW4gUmVhY3QuXCJcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIChwcmV2VHJhbnNpdGlvbi50eXBlcyA9IGN1cnJlbnRUcmFuc2l0aW9uLnR5cGVzKSksXG4gICAgICAgICAgKFJlYWN0U2hhcmVkSW50ZXJuYWxzLlQgPSBwcmV2VHJhbnNpdGlvbik7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX3VzZUNhY2hlUmVmcmVzaCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZUNhY2hlUmVmcmVzaCgpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2UgPSBmdW5jdGlvbiAodXNhYmxlKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2UodXNhYmxlKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudXNlQWN0aW9uU3RhdGUgPSBmdW5jdGlvbiAoYWN0aW9uLCBpbml0aWFsU3RhdGUsIHBlcm1hbGluaykge1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlQWN0aW9uU3RhdGUoXG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgICBwZXJtYWxpbmtcbiAgICAgICk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZUNhbGxiYWNrID0gZnVuY3Rpb24gKGNhbGxiYWNrLCBkZXBzKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VDYWxsYmFjayhjYWxsYmFjaywgZGVwcyk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZUNvbnRleHQgPSBmdW5jdGlvbiAoQ29udGV4dCkge1xuICAgICAgdmFyIGRpc3BhdGNoZXIgPSByZXNvbHZlRGlzcGF0Y2hlcigpO1xuICAgICAgQ29udGV4dC4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OU1VNRVJfVFlQRSAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIFwiQ2FsbGluZyB1c2VDb250ZXh0KENvbnRleHQuQ29uc3VtZXIpIGlzIG5vdCBzdXBwb3J0ZWQgYW5kIHdpbGwgY2F1c2UgYnVncy4gRGlkIHlvdSBtZWFuIHRvIGNhbGwgdXNlQ29udGV4dChDb250ZXh0KSBpbnN0ZWFkP1wiXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gZGlzcGF0Y2hlci51c2VDb250ZXh0KENvbnRleHQpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VEZWJ1Z1ZhbHVlID0gZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZXJGbikge1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlRGVidWdWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVyRm4pO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VEZWZlcnJlZFZhbHVlID0gZnVuY3Rpb24gKHZhbHVlLCBpbml0aWFsVmFsdWUpIHtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZURlZmVycmVkVmFsdWUodmFsdWUsIGluaXRpYWxWYWx1ZSk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZUVmZmVjdCA9IGZ1bmN0aW9uIChjcmVhdGUsIGRlcHMpIHtcbiAgICAgIG51bGwgPT0gY3JlYXRlICYmXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBcIlJlYWN0IEhvb2sgdXNlRWZmZWN0IHJlcXVpcmVzIGFuIGVmZmVjdCBjYWxsYmFjay4gRGlkIHlvdSBmb3JnZXQgdG8gcGFzcyBhIGNhbGxiYWNrIHRvIHRoZSBob29rP1wiXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VFZmZlY3QoY3JlYXRlLCBkZXBzKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudXNlRWZmZWN0RXZlbnQgPSBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZUVmZmVjdEV2ZW50KGNhbGxiYWNrKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudXNlSWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VJZCgpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VJbXBlcmF0aXZlSGFuZGxlID0gZnVuY3Rpb24gKHJlZiwgY3JlYXRlLCBkZXBzKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgY3JlYXRlLCBkZXBzKTtcbiAgICB9O1xuICAgIGV4cG9ydHMudXNlSW5zZXJ0aW9uRWZmZWN0ID0gZnVuY3Rpb24gKGNyZWF0ZSwgZGVwcykge1xuICAgICAgbnVsbCA9PSBjcmVhdGUgJiZcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIFwiUmVhY3QgSG9vayB1c2VJbnNlcnRpb25FZmZlY3QgcmVxdWlyZXMgYW4gZWZmZWN0IGNhbGxiYWNrLiBEaWQgeW91IGZvcmdldCB0byBwYXNzIGEgY2FsbGJhY2sgdG8gdGhlIGhvb2s/XCJcbiAgICAgICAgKTtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZUluc2VydGlvbkVmZmVjdChjcmVhdGUsIGRlcHMpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VMYXlvdXRFZmZlY3QgPSBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICBudWxsID09IGNyZWF0ZSAmJlxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgXCJSZWFjdCBIb29rIHVzZUxheW91dEVmZmVjdCByZXF1aXJlcyBhbiBlZmZlY3QgY2FsbGJhY2suIERpZCB5b3UgZm9yZ2V0IHRvIHBhc3MgYSBjYWxsYmFjayB0byB0aGUgaG9vaz9cIlxuICAgICAgICApO1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlTGF5b3V0RWZmZWN0KGNyZWF0ZSwgZGVwcyk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZU1lbW8gPSBmdW5jdGlvbiAoY3JlYXRlLCBkZXBzKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZURpc3BhdGNoZXIoKS51c2VNZW1vKGNyZWF0ZSwgZGVwcyk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZU9wdGltaXN0aWMgPSBmdW5jdGlvbiAocGFzc3Rocm91Z2gsIHJlZHVjZXIpIHtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZU9wdGltaXN0aWMocGFzc3Rocm91Z2gsIHJlZHVjZXIpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VSZWR1Y2VyID0gZnVuY3Rpb24gKHJlZHVjZXIsIGluaXRpYWxBcmcsIGluaXQpIHtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZVJlZHVjZXIocmVkdWNlciwgaW5pdGlhbEFyZywgaW5pdCk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZVJlZiA9IGZ1bmN0aW9uIChpbml0aWFsVmFsdWUpIHtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZVJlZihpbml0aWFsVmFsdWUpO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VTdGF0ZSA9IGZ1bmN0aW9uIChpbml0aWFsU3RhdGUpIHtcbiAgICAgIHJldHVybiByZXNvbHZlRGlzcGF0Y2hlcigpLnVzZVN0YXRlKGluaXRpYWxTdGF0ZSk7XG4gICAgfTtcbiAgICBleHBvcnRzLnVzZVN5bmNFeHRlcm5hbFN0b3JlID0gZnVuY3Rpb24gKFxuICAgICAgc3Vic2NyaWJlLFxuICAgICAgZ2V0U25hcHNob3QsXG4gICAgICBnZXRTZXJ2ZXJTbmFwc2hvdFxuICAgICkge1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlU3luY0V4dGVybmFsU3RvcmUoXG4gICAgICAgIHN1YnNjcmliZSxcbiAgICAgICAgZ2V0U25hcHNob3QsXG4gICAgICAgIGdldFNlcnZlclNuYXBzaG90XG4gICAgICApO1xuICAgIH07XG4gICAgZXhwb3J0cy51c2VUcmFuc2l0aW9uID0gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIHJlc29sdmVEaXNwYXRjaGVyKCkudXNlVHJhbnNpdGlvbigpO1xuICAgIH07XG4gICAgZXhwb3J0cy52ZXJzaW9uID0gXCIxOS4yLjRcIjtcbiAgICBcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fICYmXG4gICAgICBcImZ1bmN0aW9uXCIgPT09XG4gICAgICAgIHR5cGVvZiBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AgJiZcbiAgICAgIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXy5yZWdpc3RlckludGVybmFsTW9kdWxlU3RvcChFcnJvcigpKTtcbiAgfSkoKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/react/cjs/react.development.js\n")); + +/***/ }), + +/***/ "./node_modules/react/index.js": +/*!*************************************!*\ + !*** ./node_modules/react/index.js ***! + \*************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"./node_modules/react/cjs/react.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLHVIQUFzRDtBQUN4RCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9yZWFjdC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QucHJvZHVjdGlvbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react/index.js\n")); + +/***/ }), + +/***/ "./node_modules/react/jsx-runtime.js": +/*!*******************************************!*\ + !*** ./node_modules/react/jsx-runtime.js ***! + \*******************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-runtime.development.js */ \"./node_modules/react/cjs/react-jsx-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvcmVhY3QvanN4LXJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsSUFBSSxLQUFxQyxFQUFFLEVBRTFDLENBQUM7QUFDRixFQUFFLCtJQUFrRTtBQUNwRSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9yZWFjdC9qc3gtcnVudGltZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LXJ1bnRpbWUucHJvZHVjdGlvbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1qc3gtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/react/jsx-runtime.js\n")); + +/***/ }), + +/***/ "./node_modules/scheduler/cjs/scheduler.development.js": +/*!*************************************************************!*\ + !*** ./node_modules/scheduler/cjs/scheduler.development.js ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * @license React\n * scheduler.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n true &&\n (function () {\n function performWorkUntilDeadline() {\n needsPaint = !1;\n if (isMessageLoopRunning) {\n var currentTime = exports.unstable_now();\n startTime = currentTime;\n var hasMoreWork = !0;\n try {\n a: {\n isHostCallbackScheduled = !1;\n isHostTimeoutScheduled &&\n ((isHostTimeoutScheduled = !1),\n localClearTimeout(taskTimeoutID),\n (taskTimeoutID = -1));\n isPerformingWork = !0;\n var previousPriorityLevel = currentPriorityLevel;\n try {\n b: {\n advanceTimers(currentTime);\n for (\n currentTask = peek(taskQueue);\n null !== currentTask &&\n !(\n currentTask.expirationTime > currentTime &&\n shouldYieldToHost()\n );\n\n ) {\n var callback = currentTask.callback;\n if (\"function\" === typeof callback) {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var continuationCallback = callback(\n currentTask.expirationTime <= currentTime\n );\n currentTime = exports.unstable_now();\n if (\"function\" === typeof continuationCallback) {\n currentTask.callback = continuationCallback;\n advanceTimers(currentTime);\n hasMoreWork = !0;\n break b;\n }\n currentTask === peek(taskQueue) && pop(taskQueue);\n advanceTimers(currentTime);\n } else pop(taskQueue);\n currentTask = peek(taskQueue);\n }\n if (null !== currentTask) hasMoreWork = !0;\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n hasMoreWork = !1;\n }\n }\n break a;\n } finally {\n (currentTask = null),\n (currentPriorityLevel = previousPriorityLevel),\n (isPerformingWork = !1);\n }\n hasMoreWork = void 0;\n }\n } finally {\n hasMoreWork\n ? schedulePerformWorkUntilDeadline()\n : (isMessageLoopRunning = !1);\n }\n }\n }\n function push(heap, node) {\n var index = heap.length;\n heap.push(node);\n a: for (; 0 < index; ) {\n var parentIndex = (index - 1) >>> 1,\n parent = heap[parentIndex];\n if (0 < compare(parent, node))\n (heap[parentIndex] = node),\n (heap[index] = parent),\n (index = parentIndex);\n else break a;\n }\n }\n function peek(heap) {\n return 0 === heap.length ? null : heap[0];\n }\n function pop(heap) {\n if (0 === heap.length) return null;\n var first = heap[0],\n last = heap.pop();\n if (last !== first) {\n heap[0] = last;\n a: for (\n var index = 0, length = heap.length, halfLength = length >>> 1;\n index < halfLength;\n\n ) {\n var leftIndex = 2 * (index + 1) - 1,\n left = heap[leftIndex],\n rightIndex = leftIndex + 1,\n right = heap[rightIndex];\n if (0 > compare(left, last))\n rightIndex < length && 0 > compare(right, left)\n ? ((heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex))\n : ((heap[index] = left),\n (heap[leftIndex] = last),\n (index = leftIndex));\n else if (rightIndex < length && 0 > compare(right, last))\n (heap[index] = right),\n (heap[rightIndex] = last),\n (index = rightIndex);\n else break a;\n }\n }\n return first;\n }\n function compare(a, b) {\n var diff = a.sortIndex - b.sortIndex;\n return 0 !== diff ? diff : a.id - b.id;\n }\n function advanceTimers(currentTime) {\n for (var timer = peek(timerQueue); null !== timer; ) {\n if (null === timer.callback) pop(timerQueue);\n else if (timer.startTime <= currentTime)\n pop(timerQueue),\n (timer.sortIndex = timer.expirationTime),\n push(taskQueue, timer);\n else break;\n timer = peek(timerQueue);\n }\n }\n function handleTimeout(currentTime) {\n isHostTimeoutScheduled = !1;\n advanceTimers(currentTime);\n if (!isHostCallbackScheduled)\n if (null !== peek(taskQueue))\n (isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0), schedulePerformWorkUntilDeadline());\n else {\n var firstTimer = peek(timerQueue);\n null !== firstTimer &&\n requestHostTimeout(\n handleTimeout,\n firstTimer.startTime - currentTime\n );\n }\n }\n function shouldYieldToHost() {\n return needsPaint\n ? !0\n : exports.unstable_now() - startTime < frameInterval\n ? !1\n : !0;\n }\n function requestHostTimeout(callback, ms) {\n taskTimeoutID = localSetTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n exports.unstable_now = void 0;\n if (\n \"object\" === typeof performance &&\n \"function\" === typeof performance.now\n ) {\n var localPerformance = performance;\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n } else {\n var localDate = Date,\n initialTime = localDate.now();\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n }\n var taskQueue = [],\n timerQueue = [],\n taskIdCounter = 1,\n currentTask = null,\n currentPriorityLevel = 3,\n isPerformingWork = !1,\n isHostCallbackScheduled = !1,\n isHostTimeoutScheduled = !1,\n needsPaint = !1,\n localSetTimeout = \"function\" === typeof setTimeout ? setTimeout : null,\n localClearTimeout =\n \"function\" === typeof clearTimeout ? clearTimeout : null,\n localSetImmediate =\n \"undefined\" !== typeof setImmediate ? setImmediate : null,\n isMessageLoopRunning = !1,\n taskTimeoutID = -1,\n frameInterval = 5,\n startTime = -1;\n if (\"function\" === typeof localSetImmediate)\n var schedulePerformWorkUntilDeadline = function () {\n localSetImmediate(performWorkUntilDeadline);\n };\n else if (\"undefined\" !== typeof MessageChannel) {\n var channel = new MessageChannel(),\n port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n schedulePerformWorkUntilDeadline = function () {\n port.postMessage(null);\n };\n } else\n schedulePerformWorkUntilDeadline = function () {\n localSetTimeout(performWorkUntilDeadline, 0);\n };\n exports.unstable_IdlePriority = 5;\n exports.unstable_ImmediatePriority = 1;\n exports.unstable_LowPriority = 4;\n exports.unstable_NormalPriority = 3;\n exports.unstable_Profiling = null;\n exports.unstable_UserBlockingPriority = 2;\n exports.unstable_cancelCallback = function (task) {\n task.callback = null;\n };\n exports.unstable_forceFrameRate = function (fps) {\n 0 > fps || 125 < fps\n ? console.error(\n \"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"\n )\n : (frameInterval = 0 < fps ? Math.floor(1e3 / fps) : 5);\n };\n exports.unstable_getCurrentPriorityLevel = function () {\n return currentPriorityLevel;\n };\n exports.unstable_next = function (eventHandler) {\n switch (currentPriorityLevel) {\n case 1:\n case 2:\n case 3:\n var priorityLevel = 3;\n break;\n default:\n priorityLevel = currentPriorityLevel;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n exports.unstable_requestPaint = function () {\n needsPaint = !0;\n };\n exports.unstable_runWithPriority = function (priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n break;\n default:\n priorityLevel = 3;\n }\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n exports.unstable_scheduleCallback = function (\n priorityLevel,\n callback,\n options\n ) {\n var currentTime = exports.unstable_now();\n \"object\" === typeof options && null !== options\n ? ((options = options.delay),\n (options =\n \"number\" === typeof options && 0 < options\n ? currentTime + options\n : currentTime))\n : (options = currentTime);\n switch (priorityLevel) {\n case 1:\n var timeout = -1;\n break;\n case 2:\n timeout = 250;\n break;\n case 5:\n timeout = 1073741823;\n break;\n case 4:\n timeout = 1e4;\n break;\n default:\n timeout = 5e3;\n }\n timeout = options + timeout;\n priorityLevel = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: options,\n expirationTime: timeout,\n sortIndex: -1\n };\n options > currentTime\n ? ((priorityLevel.sortIndex = options),\n push(timerQueue, priorityLevel),\n null === peek(taskQueue) &&\n priorityLevel === peek(timerQueue) &&\n (isHostTimeoutScheduled\n ? (localClearTimeout(taskTimeoutID), (taskTimeoutID = -1))\n : (isHostTimeoutScheduled = !0),\n requestHostTimeout(handleTimeout, options - currentTime)))\n : ((priorityLevel.sortIndex = timeout),\n push(taskQueue, priorityLevel),\n isHostCallbackScheduled ||\n isPerformingWork ||\n ((isHostCallbackScheduled = !0),\n isMessageLoopRunning ||\n ((isMessageLoopRunning = !0),\n schedulePerformWorkUntilDeadline())));\n return priorityLevel;\n };\n exports.unstable_shouldYield = shouldYieldToHost;\n exports.unstable_wrapCallback = function (callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n };\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2Nqcy9zY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVhO0FBQ2IsS0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixXQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMsZ0JBQWdCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxvQkFBb0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU0sb0JBQW9CO0FBQzFCO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLE1BQU0sb0JBQW9CO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsSUFBSSw2QkFBNkI7QUFDakMsSUFBSSxrQ0FBa0M7QUFDdEMsSUFBSSw0QkFBNEI7QUFDaEMsSUFBSSwrQkFBK0I7QUFDbkMsSUFBSSwwQkFBMEI7QUFDOUIsSUFBSSxxQ0FBcUM7QUFDekMsSUFBSSwrQkFBK0I7QUFDbkM7QUFDQTtBQUNBLElBQUksK0JBQStCO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksd0NBQXdDO0FBQzVDO0FBQ0E7QUFDQSxJQUFJLHFCQUFxQjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxJQUFJLDZCQUE2QjtBQUNqQztBQUNBO0FBQ0EsSUFBSSxnQ0FBZ0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxJQUFJLGlDQUFpQztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSw0QkFBNEI7QUFDaEMsSUFBSSw2QkFBNkI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL3NjaGVkdWxlci9janMvc2NoZWR1bGVyLmRldmVsb3BtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHNjaGVkdWxlci5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cInByb2R1Y3Rpb25cIiAhPT0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgJiZcbiAgKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBwZXJmb3JtV29ya1VudGlsRGVhZGxpbmUoKSB7XG4gICAgICBuZWVkc1BhaW50ID0gITE7XG4gICAgICBpZiAoaXNNZXNzYWdlTG9vcFJ1bm5pbmcpIHtcbiAgICAgICAgdmFyIGN1cnJlbnRUaW1lID0gZXhwb3J0cy51bnN0YWJsZV9ub3coKTtcbiAgICAgICAgc3RhcnRUaW1lID0gY3VycmVudFRpbWU7XG4gICAgICAgIHZhciBoYXNNb3JlV29yayA9ICEwO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGE6IHtcbiAgICAgICAgICAgIGlzSG9zdENhbGxiYWNrU2NoZWR1bGVkID0gITE7XG4gICAgICAgICAgICBpc0hvc3RUaW1lb3V0U2NoZWR1bGVkICYmXG4gICAgICAgICAgICAgICgoaXNIb3N0VGltZW91dFNjaGVkdWxlZCA9ICExKSxcbiAgICAgICAgICAgICAgbG9jYWxDbGVhclRpbWVvdXQodGFza1RpbWVvdXRJRCksXG4gICAgICAgICAgICAgICh0YXNrVGltZW91dElEID0gLTEpKTtcbiAgICAgICAgICAgIGlzUGVyZm9ybWluZ1dvcmsgPSAhMDtcbiAgICAgICAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGI6IHtcbiAgICAgICAgICAgICAgICBhZHZhbmNlVGltZXJzKGN1cnJlbnRUaW1lKTtcbiAgICAgICAgICAgICAgICBmb3IgKFxuICAgICAgICAgICAgICAgICAgY3VycmVudFRhc2sgPSBwZWVrKHRhc2tRdWV1ZSk7XG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBjdXJyZW50VGFzayAmJlxuICAgICAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhc2suZXhwaXJhdGlvblRpbWUgPiBjdXJyZW50VGltZSAmJlxuICAgICAgICAgICAgICAgICAgICBzaG91bGRZaWVsZFRvSG9zdCgpXG4gICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSBjdXJyZW50VGFzay5jYWxsYmFjaztcbiAgICAgICAgICAgICAgICAgIGlmIChcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFzay5jYWxsYmFjayA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gY3VycmVudFRhc2sucHJpb3JpdHlMZXZlbDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbnRpbnVhdGlvbkNhbGxiYWNrID0gY2FsbGJhY2soXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFRhc2suZXhwaXJhdGlvblRpbWUgPD0gY3VycmVudFRpbWVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFRpbWUgPSBleHBvcnRzLnVuc3RhYmxlX25vdygpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoXCJmdW5jdGlvblwiID09PSB0eXBlb2YgY29udGludWF0aW9uQ2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFzay5jYWxsYmFjayA9IGNvbnRpbnVhdGlvbkNhbGxiYWNrO1xuICAgICAgICAgICAgICAgICAgICAgIGFkdmFuY2VUaW1lcnMoY3VycmVudFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAgIGhhc01vcmVXb3JrID0gITA7XG4gICAgICAgICAgICAgICAgICAgICAgYnJlYWsgYjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VGFzayA9PT0gcGVlayh0YXNrUXVldWUpICYmIHBvcCh0YXNrUXVldWUpO1xuICAgICAgICAgICAgICAgICAgICBhZHZhbmNlVGltZXJzKGN1cnJlbnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSBwb3AodGFza1F1ZXVlKTtcbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRUYXNrID0gcGVlayh0YXNrUXVldWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobnVsbCAhPT0gY3VycmVudFRhc2spIGhhc01vcmVXb3JrID0gITA7XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICB2YXIgZmlyc3RUaW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG4gICAgICAgICAgICAgICAgICBudWxsICE9PSBmaXJzdFRpbWVyICYmXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RIb3N0VGltZW91dChcbiAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVUaW1lb3V0LFxuICAgICAgICAgICAgICAgICAgICAgIGZpcnN0VGltZXIuc3RhcnRUaW1lIC0gY3VycmVudFRpbWVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGhhc01vcmVXb3JrID0gITE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrIGE7XG4gICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAoY3VycmVudFRhc2sgPSBudWxsKSxcbiAgICAgICAgICAgICAgICAoY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmV2aW91c1ByaW9yaXR5TGV2ZWwpLFxuICAgICAgICAgICAgICAgIChpc1BlcmZvcm1pbmdXb3JrID0gITEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaGFzTW9yZVdvcmsgPSB2b2lkIDA7XG4gICAgICAgICAgfVxuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGhhc01vcmVXb3JrXG4gICAgICAgICAgICA/IHNjaGVkdWxlUGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lKClcbiAgICAgICAgICAgIDogKGlzTWVzc2FnZUxvb3BSdW5uaW5nID0gITEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHB1c2goaGVhcCwgbm9kZSkge1xuICAgICAgdmFyIGluZGV4ID0gaGVhcC5sZW5ndGg7XG4gICAgICBoZWFwLnB1c2gobm9kZSk7XG4gICAgICBhOiBmb3IgKDsgMCA8IGluZGV4OyApIHtcbiAgICAgICAgdmFyIHBhcmVudEluZGV4ID0gKGluZGV4IC0gMSkgPj4+IDEsXG4gICAgICAgICAgcGFyZW50ID0gaGVhcFtwYXJlbnRJbmRleF07XG4gICAgICAgIGlmICgwIDwgY29tcGFyZShwYXJlbnQsIG5vZGUpKVxuICAgICAgICAgIChoZWFwW3BhcmVudEluZGV4XSA9IG5vZGUpLFxuICAgICAgICAgICAgKGhlYXBbaW5kZXhdID0gcGFyZW50KSxcbiAgICAgICAgICAgIChpbmRleCA9IHBhcmVudEluZGV4KTtcbiAgICAgICAgZWxzZSBicmVhayBhO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBwZWVrKGhlYXApIHtcbiAgICAgIHJldHVybiAwID09PSBoZWFwLmxlbmd0aCA/IG51bGwgOiBoZWFwWzBdO1xuICAgIH1cbiAgICBmdW5jdGlvbiBwb3AoaGVhcCkge1xuICAgICAgaWYgKDAgPT09IGhlYXAubGVuZ3RoKSByZXR1cm4gbnVsbDtcbiAgICAgIHZhciBmaXJzdCA9IGhlYXBbMF0sXG4gICAgICAgIGxhc3QgPSBoZWFwLnBvcCgpO1xuICAgICAgaWYgKGxhc3QgIT09IGZpcnN0KSB7XG4gICAgICAgIGhlYXBbMF0gPSBsYXN0O1xuICAgICAgICBhOiBmb3IgKFxuICAgICAgICAgIHZhciBpbmRleCA9IDAsIGxlbmd0aCA9IGhlYXAubGVuZ3RoLCBoYWxmTGVuZ3RoID0gbGVuZ3RoID4+PiAxO1xuICAgICAgICAgIGluZGV4IDwgaGFsZkxlbmd0aDtcblxuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgbGVmdEluZGV4ID0gMiAqIChpbmRleCArIDEpIC0gMSxcbiAgICAgICAgICAgIGxlZnQgPSBoZWFwW2xlZnRJbmRleF0sXG4gICAgICAgICAgICByaWdodEluZGV4ID0gbGVmdEluZGV4ICsgMSxcbiAgICAgICAgICAgIHJpZ2h0ID0gaGVhcFtyaWdodEluZGV4XTtcbiAgICAgICAgICBpZiAoMCA+IGNvbXBhcmUobGVmdCwgbGFzdCkpXG4gICAgICAgICAgICByaWdodEluZGV4IDwgbGVuZ3RoICYmIDAgPiBjb21wYXJlKHJpZ2h0LCBsZWZ0KVxuICAgICAgICAgICAgICA/ICgoaGVhcFtpbmRleF0gPSByaWdodCksXG4gICAgICAgICAgICAgICAgKGhlYXBbcmlnaHRJbmRleF0gPSBsYXN0KSxcbiAgICAgICAgICAgICAgICAoaW5kZXggPSByaWdodEluZGV4KSlcbiAgICAgICAgICAgICAgOiAoKGhlYXBbaW5kZXhdID0gbGVmdCksXG4gICAgICAgICAgICAgICAgKGhlYXBbbGVmdEluZGV4XSA9IGxhc3QpLFxuICAgICAgICAgICAgICAgIChpbmRleCA9IGxlZnRJbmRleCkpO1xuICAgICAgICAgIGVsc2UgaWYgKHJpZ2h0SW5kZXggPCBsZW5ndGggJiYgMCA+IGNvbXBhcmUocmlnaHQsIGxhc3QpKVxuICAgICAgICAgICAgKGhlYXBbaW5kZXhdID0gcmlnaHQpLFxuICAgICAgICAgICAgICAoaGVhcFtyaWdodEluZGV4XSA9IGxhc3QpLFxuICAgICAgICAgICAgICAoaW5kZXggPSByaWdodEluZGV4KTtcbiAgICAgICAgICBlbHNlIGJyZWFrIGE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmaXJzdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29tcGFyZShhLCBiKSB7XG4gICAgICB2YXIgZGlmZiA9IGEuc29ydEluZGV4IC0gYi5zb3J0SW5kZXg7XG4gICAgICByZXR1cm4gMCAhPT0gZGlmZiA/IGRpZmYgOiBhLmlkIC0gYi5pZDtcbiAgICB9XG4gICAgZnVuY3Rpb24gYWR2YW5jZVRpbWVycyhjdXJyZW50VGltZSkge1xuICAgICAgZm9yICh2YXIgdGltZXIgPSBwZWVrKHRpbWVyUXVldWUpOyBudWxsICE9PSB0aW1lcjsgKSB7XG4gICAgICAgIGlmIChudWxsID09PSB0aW1lci5jYWxsYmFjaykgcG9wKHRpbWVyUXVldWUpO1xuICAgICAgICBlbHNlIGlmICh0aW1lci5zdGFydFRpbWUgPD0gY3VycmVudFRpbWUpXG4gICAgICAgICAgcG9wKHRpbWVyUXVldWUpLFxuICAgICAgICAgICAgKHRpbWVyLnNvcnRJbmRleCA9IHRpbWVyLmV4cGlyYXRpb25UaW1lKSxcbiAgICAgICAgICAgIHB1c2godGFza1F1ZXVlLCB0aW1lcik7XG4gICAgICAgIGVsc2UgYnJlYWs7XG4gICAgICAgIHRpbWVyID0gcGVlayh0aW1lclF1ZXVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gaGFuZGxlVGltZW91dChjdXJyZW50VGltZSkge1xuICAgICAgaXNIb3N0VGltZW91dFNjaGVkdWxlZCA9ICExO1xuICAgICAgYWR2YW5jZVRpbWVycyhjdXJyZW50VGltZSk7XG4gICAgICBpZiAoIWlzSG9zdENhbGxiYWNrU2NoZWR1bGVkKVxuICAgICAgICBpZiAobnVsbCAhPT0gcGVlayh0YXNrUXVldWUpKVxuICAgICAgICAgIChpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9ICEwKSxcbiAgICAgICAgICAgIGlzTWVzc2FnZUxvb3BSdW5uaW5nIHx8XG4gICAgICAgICAgICAgICgoaXNNZXNzYWdlTG9vcFJ1bm5pbmcgPSAhMCksIHNjaGVkdWxlUGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lKCkpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB2YXIgZmlyc3RUaW1lciA9IHBlZWsodGltZXJRdWV1ZSk7XG4gICAgICAgICAgbnVsbCAhPT0gZmlyc3RUaW1lciAmJlxuICAgICAgICAgICAgcmVxdWVzdEhvc3RUaW1lb3V0KFxuICAgICAgICAgICAgICBoYW5kbGVUaW1lb3V0LFxuICAgICAgICAgICAgICBmaXJzdFRpbWVyLnN0YXJ0VGltZSAtIGN1cnJlbnRUaW1lXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHNob3VsZFlpZWxkVG9Ib3N0KCkge1xuICAgICAgcmV0dXJuIG5lZWRzUGFpbnRcbiAgICAgICAgPyAhMFxuICAgICAgICA6IGV4cG9ydHMudW5zdGFibGVfbm93KCkgLSBzdGFydFRpbWUgPCBmcmFtZUludGVydmFsXG4gICAgICAgICAgPyAhMVxuICAgICAgICAgIDogITA7XG4gICAgfVxuICAgIGZ1bmN0aW9uIHJlcXVlc3RIb3N0VGltZW91dChjYWxsYmFjaywgbXMpIHtcbiAgICAgIHRhc2tUaW1lb3V0SUQgPSBsb2NhbFNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBjYWxsYmFjayhleHBvcnRzLnVuc3RhYmxlX25vdygpKTtcbiAgICAgIH0sIG1zKTtcbiAgICB9XG4gICAgXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAmJlxuICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydCAmJlxuICAgICAgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdGFydChFcnJvcigpKTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX25vdyA9IHZvaWQgMDtcbiAgICBpZiAoXG4gICAgICBcIm9iamVjdFwiID09PSB0eXBlb2YgcGVyZm9ybWFuY2UgJiZcbiAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIHBlcmZvcm1hbmNlLm5vd1xuICAgICkge1xuICAgICAgdmFyIGxvY2FsUGVyZm9ybWFuY2UgPSBwZXJmb3JtYW5jZTtcbiAgICAgIGV4cG9ydHMudW5zdGFibGVfbm93ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbG9jYWxQZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBsb2NhbERhdGUgPSBEYXRlLFxuICAgICAgICBpbml0aWFsVGltZSA9IGxvY2FsRGF0ZS5ub3coKTtcbiAgICAgIGV4cG9ydHMudW5zdGFibGVfbm93ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gbG9jYWxEYXRlLm5vdygpIC0gaW5pdGlhbFRpbWU7XG4gICAgICB9O1xuICAgIH1cbiAgICB2YXIgdGFza1F1ZXVlID0gW10sXG4gICAgICB0aW1lclF1ZXVlID0gW10sXG4gICAgICB0YXNrSWRDb3VudGVyID0gMSxcbiAgICAgIGN1cnJlbnRUYXNrID0gbnVsbCxcbiAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gMyxcbiAgICAgIGlzUGVyZm9ybWluZ1dvcmsgPSAhMSxcbiAgICAgIGlzSG9zdENhbGxiYWNrU2NoZWR1bGVkID0gITEsXG4gICAgICBpc0hvc3RUaW1lb3V0U2NoZWR1bGVkID0gITEsXG4gICAgICBuZWVkc1BhaW50ID0gITEsXG4gICAgICBsb2NhbFNldFRpbWVvdXQgPSBcImZ1bmN0aW9uXCIgPT09IHR5cGVvZiBzZXRUaW1lb3V0ID8gc2V0VGltZW91dCA6IG51bGwsXG4gICAgICBsb2NhbENsZWFyVGltZW91dCA9XG4gICAgICAgIFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGNsZWFyVGltZW91dCA/IGNsZWFyVGltZW91dCA6IG51bGwsXG4gICAgICBsb2NhbFNldEltbWVkaWF0ZSA9XG4gICAgICAgIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiBzZXRJbW1lZGlhdGUgPyBzZXRJbW1lZGlhdGUgOiBudWxsLFxuICAgICAgaXNNZXNzYWdlTG9vcFJ1bm5pbmcgPSAhMSxcbiAgICAgIHRhc2tUaW1lb3V0SUQgPSAtMSxcbiAgICAgIGZyYW1lSW50ZXJ2YWwgPSA1LFxuICAgICAgc3RhcnRUaW1lID0gLTE7XG4gICAgaWYgKFwiZnVuY3Rpb25cIiA9PT0gdHlwZW9mIGxvY2FsU2V0SW1tZWRpYXRlKVxuICAgICAgdmFyIHNjaGVkdWxlUGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBsb2NhbFNldEltbWVkaWF0ZShwZXJmb3JtV29ya1VudGlsRGVhZGxpbmUpO1xuICAgICAgfTtcbiAgICBlbHNlIGlmIChcInVuZGVmaW5lZFwiICE9PSB0eXBlb2YgTWVzc2FnZUNoYW5uZWwpIHtcbiAgICAgIHZhciBjaGFubmVsID0gbmV3IE1lc3NhZ2VDaGFubmVsKCksXG4gICAgICAgIHBvcnQgPSBjaGFubmVsLnBvcnQyO1xuICAgICAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBwZXJmb3JtV29ya1VudGlsRGVhZGxpbmU7XG4gICAgICBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcG9ydC5wb3N0TWVzc2FnZShudWxsKTtcbiAgICAgIH07XG4gICAgfSBlbHNlXG4gICAgICBzY2hlZHVsZVBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgbG9jYWxTZXRUaW1lb3V0KHBlcmZvcm1Xb3JrVW50aWxEZWFkbGluZSwgMCk7XG4gICAgICB9O1xuICAgIGV4cG9ydHMudW5zdGFibGVfSWRsZVByaW9yaXR5ID0gNTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX0ltbWVkaWF0ZVByaW9yaXR5ID0gMTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX0xvd1ByaW9yaXR5ID0gNDtcbiAgICBleHBvcnRzLnVuc3RhYmxlX05vcm1hbFByaW9yaXR5ID0gMztcbiAgICBleHBvcnRzLnVuc3RhYmxlX1Byb2ZpbGluZyA9IG51bGw7XG4gICAgZXhwb3J0cy51bnN0YWJsZV9Vc2VyQmxvY2tpbmdQcmlvcml0eSA9IDI7XG4gICAgZXhwb3J0cy51bnN0YWJsZV9jYW5jZWxDYWxsYmFjayA9IGZ1bmN0aW9uICh0YXNrKSB7XG4gICAgICB0YXNrLmNhbGxiYWNrID0gbnVsbDtcbiAgICB9O1xuICAgIGV4cG9ydHMudW5zdGFibGVfZm9yY2VGcmFtZVJhdGUgPSBmdW5jdGlvbiAoZnBzKSB7XG4gICAgICAwID4gZnBzIHx8IDEyNSA8IGZwc1xuICAgICAgICA/IGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICBcImZvcmNlRnJhbWVSYXRlIHRha2VzIGEgcG9zaXRpdmUgaW50IGJldHdlZW4gMCBhbmQgMTI1LCBmb3JjaW5nIGZyYW1lIHJhdGVzIGhpZ2hlciB0aGFuIDEyNSBmcHMgaXMgbm90IHN1cHBvcnRlZFwiXG4gICAgICAgICAgKVxuICAgICAgICA6IChmcmFtZUludGVydmFsID0gMCA8IGZwcyA/IE1hdGguZmxvb3IoMWUzIC8gZnBzKSA6IDUpO1xuICAgIH07XG4gICAgZXhwb3J0cy51bnN0YWJsZV9nZXRDdXJyZW50UHJpb3JpdHlMZXZlbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbiAgICB9O1xuICAgIGV4cG9ydHMudW5zdGFibGVfbmV4dCA9IGZ1bmN0aW9uIChldmVudEhhbmRsZXIpIHtcbiAgICAgIHN3aXRjaCAoY3VycmVudFByaW9yaXR5TGV2ZWwpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICBjYXNlIDI6XG4gICAgICAgIGNhc2UgMzpcbiAgICAgICAgICB2YXIgcHJpb3JpdHlMZXZlbCA9IDM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuICAgICAgfVxuICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuICAgICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmlvcml0eUxldmVsO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGV2ZW50SGFuZGxlcigpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmV2aW91c1ByaW9yaXR5TGV2ZWw7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX3JlcXVlc3RQYWludCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIG5lZWRzUGFpbnQgPSAhMDtcbiAgICB9O1xuICAgIGV4cG9ydHMudW5zdGFibGVfcnVuV2l0aFByaW9yaXR5ID0gZnVuY3Rpb24gKHByaW9yaXR5TGV2ZWwsIGV2ZW50SGFuZGxlcikge1xuICAgICAgc3dpdGNoIChwcmlvcml0eUxldmVsKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICBjYXNlIDM6XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHByaW9yaXR5TGV2ZWwgPSAzO1xuICAgICAgfVxuICAgICAgdmFyIHByZXZpb3VzUHJpb3JpdHlMZXZlbCA9IGN1cnJlbnRQcmlvcml0eUxldmVsO1xuICAgICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmlvcml0eUxldmVsO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGV2ZW50SGFuZGxlcigpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwcmV2aW91c1ByaW9yaXR5TGV2ZWw7XG4gICAgICB9XG4gICAgfTtcbiAgICBleHBvcnRzLnVuc3RhYmxlX3NjaGVkdWxlQ2FsbGJhY2sgPSBmdW5jdGlvbiAoXG4gICAgICBwcmlvcml0eUxldmVsLFxuICAgICAgY2FsbGJhY2ssXG4gICAgICBvcHRpb25zXG4gICAgKSB7XG4gICAgICB2YXIgY3VycmVudFRpbWUgPSBleHBvcnRzLnVuc3RhYmxlX25vdygpO1xuICAgICAgXCJvYmplY3RcIiA9PT0gdHlwZW9mIG9wdGlvbnMgJiYgbnVsbCAhPT0gb3B0aW9uc1xuICAgICAgICA/ICgob3B0aW9ucyA9IG9wdGlvbnMuZGVsYXkpLFxuICAgICAgICAgIChvcHRpb25zID1cbiAgICAgICAgICAgIFwibnVtYmVyXCIgPT09IHR5cGVvZiBvcHRpb25zICYmIDAgPCBvcHRpb25zXG4gICAgICAgICAgICAgID8gY3VycmVudFRpbWUgKyBvcHRpb25zXG4gICAgICAgICAgICAgIDogY3VycmVudFRpbWUpKVxuICAgICAgICA6IChvcHRpb25zID0gY3VycmVudFRpbWUpO1xuICAgICAgc3dpdGNoIChwcmlvcml0eUxldmVsKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICB2YXIgdGltZW91dCA9IC0xO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgdGltZW91dCA9IDI1MDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIHRpbWVvdXQgPSAxMDczNzQxODIzO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgdGltZW91dCA9IDFlNDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aW1lb3V0ID0gNWUzO1xuICAgICAgfVxuICAgICAgdGltZW91dCA9IG9wdGlvbnMgKyB0aW1lb3V0O1xuICAgICAgcHJpb3JpdHlMZXZlbCA9IHtcbiAgICAgICAgaWQ6IHRhc2tJZENvdW50ZXIrKyxcbiAgICAgICAgY2FsbGJhY2s6IGNhbGxiYWNrLFxuICAgICAgICBwcmlvcml0eUxldmVsOiBwcmlvcml0eUxldmVsLFxuICAgICAgICBzdGFydFRpbWU6IG9wdGlvbnMsXG4gICAgICAgIGV4cGlyYXRpb25UaW1lOiB0aW1lb3V0LFxuICAgICAgICBzb3J0SW5kZXg6IC0xXG4gICAgICB9O1xuICAgICAgb3B0aW9ucyA+IGN1cnJlbnRUaW1lXG4gICAgICAgID8gKChwcmlvcml0eUxldmVsLnNvcnRJbmRleCA9IG9wdGlvbnMpLFxuICAgICAgICAgIHB1c2godGltZXJRdWV1ZSwgcHJpb3JpdHlMZXZlbCksXG4gICAgICAgICAgbnVsbCA9PT0gcGVlayh0YXNrUXVldWUpICYmXG4gICAgICAgICAgICBwcmlvcml0eUxldmVsID09PSBwZWVrKHRpbWVyUXVldWUpICYmXG4gICAgICAgICAgICAoaXNIb3N0VGltZW91dFNjaGVkdWxlZFxuICAgICAgICAgICAgICA/IChsb2NhbENsZWFyVGltZW91dCh0YXNrVGltZW91dElEKSwgKHRhc2tUaW1lb3V0SUQgPSAtMSkpXG4gICAgICAgICAgICAgIDogKGlzSG9zdFRpbWVvdXRTY2hlZHVsZWQgPSAhMCksXG4gICAgICAgICAgICByZXF1ZXN0SG9zdFRpbWVvdXQoaGFuZGxlVGltZW91dCwgb3B0aW9ucyAtIGN1cnJlbnRUaW1lKSkpXG4gICAgICAgIDogKChwcmlvcml0eUxldmVsLnNvcnRJbmRleCA9IHRpbWVvdXQpLFxuICAgICAgICAgIHB1c2godGFza1F1ZXVlLCBwcmlvcml0eUxldmVsKSxcbiAgICAgICAgICBpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCB8fFxuICAgICAgICAgICAgaXNQZXJmb3JtaW5nV29yayB8fFxuICAgICAgICAgICAgKChpc0hvc3RDYWxsYmFja1NjaGVkdWxlZCA9ICEwKSxcbiAgICAgICAgICAgIGlzTWVzc2FnZUxvb3BSdW5uaW5nIHx8XG4gICAgICAgICAgICAgICgoaXNNZXNzYWdlTG9vcFJ1bm5pbmcgPSAhMCksXG4gICAgICAgICAgICAgIHNjaGVkdWxlUGVyZm9ybVdvcmtVbnRpbERlYWRsaW5lKCkpKSk7XG4gICAgICByZXR1cm4gcHJpb3JpdHlMZXZlbDtcbiAgICB9O1xuICAgIGV4cG9ydHMudW5zdGFibGVfc2hvdWxkWWllbGQgPSBzaG91bGRZaWVsZFRvSG9zdDtcbiAgICBleHBvcnRzLnVuc3RhYmxlX3dyYXBDYWxsYmFjayA9IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuICAgICAgdmFyIHBhcmVudFByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBwcmV2aW91c1ByaW9yaXR5TGV2ZWwgPSBjdXJyZW50UHJpb3JpdHlMZXZlbDtcbiAgICAgICAgY3VycmVudFByaW9yaXR5TGV2ZWwgPSBwYXJlbnRQcmlvcml0eUxldmVsO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBjYWxsYmFjay5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGN1cnJlbnRQcmlvcml0eUxldmVsID0gcHJldmlvdXNQcmlvcml0eUxldmVsO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH07XG4gICAgXCJ1bmRlZmluZWRcIiAhPT0gdHlwZW9mIF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXyAmJlxuICAgICAgXCJmdW5jdGlvblwiID09PVxuICAgICAgICB0eXBlb2YgX19SRUFDVF9ERVZUT09MU19HTE9CQUxfSE9PS19fLnJlZ2lzdGVySW50ZXJuYWxNb2R1bGVTdG9wICYmXG4gICAgICBfX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18ucmVnaXN0ZXJJbnRlcm5hbE1vZHVsZVN0b3AoRXJyb3IoKSk7XG4gIH0pKCk7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/scheduler/cjs/scheduler.development.js\n")); + +/***/ }), + +/***/ "./node_modules/scheduler/index.js": +/*!*****************************************!*\ + !*** ./node_modules/scheduler/index.js ***! + \*****************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/scheduler.development.js */ \"./node_modules/scheduler/cjs/scheduler.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSxtSUFBMEQ7QUFDNUQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvc2NoZWR1bGVyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAncHJvZHVjdGlvbicpIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIucHJvZHVjdGlvbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9zY2hlZHVsZXIuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/scheduler/index.js\n")); + +/***/ }), + +/***/ "?506d": +/*!******************************************!*\ + !*** ./utils/resolve-rewrites (ignored) ***! + \******************************************/ +/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { + +/* (ignored) */ + +/***/ }), + +/***/ "./node_modules/@swc/helpers/esm/_interop_require_default.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@swc/helpers/esm/_interop_require_default.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _interop_require_default)\n/* harmony export */ });\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX2RlZmF1bHQuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsMkNBQTJDO0FBQzNDO0FBQ3lDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9lc20vX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogeyBkZWZhdWx0OiBvYmogfTtcbn1cbmV4cG9ydCB7IF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCBhcyBfIH07XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/esm/_interop_require_default.js\n")); + +/***/ }), + +/***/ "./node_modules/@swc/helpers/esm/_interop_require_wildcard.js": +/*!********************************************************************!*\ + !*** ./node_modules/@swc/helpers/esm/_interop_require_wildcard.js ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _interop_require_wildcard)\n/* harmony export */ });\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9faW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkLmpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSx1RkFBdUY7O0FBRXZGOztBQUVBOztBQUVBLG1CQUFtQjtBQUNuQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQzBDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL0Bzd2MvaGVscGVycy9lc20vX2ludGVyb3BfcmVxdWlyZV93aWxkY2FyZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUobm9kZUludGVyb3ApIHtcbiAgICBpZiAodHlwZW9mIFdlYWtNYXAgIT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIG51bGw7XG5cbiAgICB2YXIgY2FjaGVCYWJlbEludGVyb3AgPSBuZXcgV2Vha01hcCgpO1xuICAgIHZhciBjYWNoZU5vZGVJbnRlcm9wID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24obm9kZUludGVyb3ApIHtcbiAgICAgICAgcmV0dXJuIG5vZGVJbnRlcm9wID8gY2FjaGVOb2RlSW50ZXJvcCA6IGNhY2hlQmFiZWxJbnRlcm9wO1xuICAgIH0pKG5vZGVJbnRlcm9wKTtcbn1cbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfd2lsZGNhcmQob2JqLCBub2RlSW50ZXJvcCkge1xuICAgIGlmICghbm9kZUludGVyb3AgJiYgb2JqICYmIG9iai5fX2VzTW9kdWxlKSByZXR1cm4gb2JqO1xuICAgIGlmIChvYmogPT09IG51bGwgfHwgdHlwZW9mIG9iaiAhPT0gXCJvYmplY3RcIiAmJiB0eXBlb2Ygb2JqICE9PSBcImZ1bmN0aW9uXCIpIHJldHVybiB7IGRlZmF1bHQ6IG9iaiB9O1xuXG4gICAgdmFyIGNhY2hlID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKG5vZGVJbnRlcm9wKTtcblxuICAgIGlmIChjYWNoZSAmJiBjYWNoZS5oYXMob2JqKSkgcmV0dXJuIGNhY2hlLmdldChvYmopO1xuXG4gICAgdmFyIG5ld09iaiA9IHsgX19wcm90b19fOiBudWxsIH07XG4gICAgdmFyIGhhc1Byb3BlcnR5RGVzY3JpcHRvciA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO1xuXG4gICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICBpZiAoa2V5ICE9PSBcImRlZmF1bHRcIiAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpKSB7XG4gICAgICAgICAgICB2YXIgZGVzYyA9IGhhc1Byb3BlcnR5RGVzY3JpcHRvciA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iob2JqLCBrZXkpIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChkZXNjICYmIChkZXNjLmdldCB8fCBkZXNjLnNldCkpIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXdPYmosIGtleSwgZGVzYyk7XG4gICAgICAgICAgICBlbHNlIG5ld09ialtrZXldID0gb2JqW2tleV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdPYmouZGVmYXVsdCA9IG9iajtcblxuICAgIGlmIChjYWNoZSkgY2FjaGUuc2V0KG9iaiwgbmV3T2JqKTtcblxuICAgIHJldHVybiBuZXdPYmo7XG59XG5leHBvcnQgeyBfaW50ZXJvcF9yZXF1aXJlX3dpbGRjYXJkIGFzIF8gfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\n")); + +/***/ }), + +/***/ "./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ _: () => (/* binding */ _tagged_template_literal_loose)\n/* harmony export */ });\nfunction _tagged_template_literal_loose(strings, raw) {\n if (!raw) raw = strings.slice(0);\n\n strings.raw = raw;\n\n return strings;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQHN3Yy9oZWxwZXJzL2VzbS9fdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2UuanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUMrQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9Ac3djL2hlbHBlcnMvZXNtL190YWdnZWRfdGVtcGxhdGVfbGl0ZXJhbF9sb29zZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfdGFnZ2VkX3RlbXBsYXRlX2xpdGVyYWxfbG9vc2Uoc3RyaW5ncywgcmF3KSB7XG4gICAgaWYgKCFyYXcpIHJhdyA9IHN0cmluZ3Muc2xpY2UoMCk7XG5cbiAgICBzdHJpbmdzLnJhdyA9IHJhdztcblxuICAgIHJldHVybiBzdHJpbmdzO1xufVxuZXhwb3J0IHsgX3RhZ2dlZF90ZW1wbGF0ZV9saXRlcmFsX2xvb3NlIGFzIF8gfTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js\n")); + +/***/ }) + +}, +/******/ __webpack_require__ => { // webpackRuntimeModules +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +/******/ var __webpack_exports__ = (__webpack_exec__("./node_modules/next/dist/client/next-dev.js")); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/_app.js b/.next/static/chunks/pages/_app.js new file mode 100644 index 00000000..5216da67 --- /dev/null +++ b/.next/static/chunks/pages/_app.js @@ -0,0 +1,28 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/_app"],{ + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!": +/*!********************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app! ***! + \********************************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return __webpack_require__(/*! next/dist/pages/_app */ \"./node_modules/next/dist/pages/_app.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/YWJzb2x1dGVQYWdlUGF0aD1uZXh0JTJGZGlzdCUyRnBhZ2VzJTJGX2FwcCZwYWdlPSUyRl9hcHAhIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsb0VBQXNCO0FBQzdDO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL19hcHBcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoXCJuZXh0L2Rpc3QvcGFnZXMvX2FwcFwiKTtcbiAgICAgIH1cbiAgICBdKTtcbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKCkge1xuICAgICAgICB3aW5kb3cuX19ORVhUX1AucHVzaChbXCIvX2FwcFwiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!\n")); + +/***/ }) + +}, +/******/ __webpack_require__ => { // webpackRuntimeModules +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +/******/ __webpack_require__.O(0, ["main"], () => (__webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"), __webpack_exec__("./node_modules/next/dist/client/router.js"))); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/pages/_error.js b/.next/static/chunks/pages/_error.js new file mode 100644 index 00000000..f791e466 --- /dev/null +++ b/.next/static/chunks/pages/_error.js @@ -0,0 +1,28 @@ +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["pages/_error"],{ + +/***/ "./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!": +/*!************************************************************************************************************************************************!*\ + !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error! ***! + \************************************************************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_error\",\n function () {\n return __webpack_require__(/*! next/dist/pages/_error */ \"./node_modules/next/dist/pages/_error.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_error\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWNsaWVudC1wYWdlcy1sb2FkZXIuanM/YWJzb2x1dGVQYWdlUGF0aD1uZXh0JTJGZGlzdCUyRnBhZ2VzJTJGX2Vycm9yJnBhZ2U9JTJGX2Vycm9yISIsIm1hcHBpbmdzIjoiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtQkFBTyxDQUFDLHdFQUF3QjtBQUMvQztBQUNBO0FBQ0EsT0FBTyxJQUFVO0FBQ2pCLE1BQU0sVUFBVTtBQUNoQjtBQUNBLE9BQU87QUFDUDtBQUNBIiwic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiXG4gICAgKHdpbmRvdy5fX05FWFRfUCA9IHdpbmRvdy5fX05FWFRfUCB8fCBbXSkucHVzaChbXG4gICAgICBcIi9fZXJyb3JcIixcbiAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHJlcXVpcmUoXCJuZXh0L2Rpc3QvcGFnZXMvX2Vycm9yXCIpO1xuICAgICAgfVxuICAgIF0pO1xuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShmdW5jdGlvbiAoKSB7XG4gICAgICAgIHdpbmRvdy5fX05FWFRfUC5wdXNoKFtcIi9fZXJyb3JcIl0pXG4gICAgICB9KTtcbiAgICB9XG4gICJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!\n")); + +/***/ }) + +}, +/******/ __webpack_require__ => { // webpackRuntimeModules +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +/******/ __webpack_require__.O(0, ["pages/_app","main"], () => (__webpack_exec__("./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"))); +/******/ var __webpack_exports__ = __webpack_require__.O(); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/react-refresh.js b/.next/static/chunks/react-refresh.js new file mode 100644 index 00000000..bbba85c0 --- /dev/null +++ b/.next/static/chunks/react-refresh.js @@ -0,0 +1,62 @@ +// runtime can't be in strict mode because a global variable is assign and maybe created. +/* + * 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/). + */ +(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["react-refresh"],{ + +/***/ "./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/internal/helpers.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/internal/helpers.js ***! + \********************************************************************************************/ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval(__webpack_require__.ts("\n/**\n * MIT License\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n// This file is copied from the Metro JavaScript bundler, with minor tweaks for\n// webpack 4 compatibility.\n//\n// https://github.com/facebook/metro/blob/d6b9685c730d0d63577db40f41369157f28dfa3a/packages/metro/src/lib/polyfills/require.js\nconst runtime_1 = __importDefault(__webpack_require__(/*! next/dist/compiled/react-refresh/runtime */ \"./node_modules/next/dist/compiled/react-refresh/runtime.js\"));\nfunction isSafeExport(key) {\n return (key === '__esModule' ||\n key === '__N_SSG' ||\n key === '__N_SSP' ||\n // TODO: remove this key from page config instead of allow listing it\n key === 'config');\n}\nfunction registerExportsForReactRefresh(moduleExports, moduleID) {\n runtime_1.default.register(moduleExports, moduleID + ' %exports%');\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return;\n }\n for (var key in moduleExports) {\n if (isSafeExport(key)) {\n continue;\n }\n try {\n var exportValue = moduleExports[key];\n }\n catch (_a) {\n // This might fail due to circular dependencies\n continue;\n }\n var typeID = moduleID + ' %exports% ' + key;\n runtime_1.default.register(exportValue, typeID);\n }\n}\nfunction getRefreshBoundarySignature(moduleExports) {\n var signature = [];\n signature.push(runtime_1.default.getFamilyByType(moduleExports));\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n // (This is important for legacy environments.)\n return signature;\n }\n for (var key in moduleExports) {\n if (isSafeExport(key)) {\n continue;\n }\n try {\n var exportValue = moduleExports[key];\n }\n catch (_a) {\n // This might fail due to circular dependencies\n continue;\n }\n signature.push(key);\n signature.push(runtime_1.default.getFamilyByType(exportValue));\n }\n return signature;\n}\nfunction isReactRefreshBoundary(moduleExports) {\n if (runtime_1.default.isLikelyComponentType(moduleExports)) {\n return true;\n }\n if (moduleExports == null || typeof moduleExports !== 'object') {\n // Exit if we can't iterate over exports.\n return false;\n }\n var hasExports = false;\n var areAllExportsComponents = true;\n for (var key in moduleExports) {\n hasExports = true;\n if (isSafeExport(key)) {\n continue;\n }\n try {\n var exportValue = moduleExports[key];\n }\n catch (_a) {\n // This might fail due to circular dependencies\n return false;\n }\n if (!runtime_1.default.isLikelyComponentType(exportValue)) {\n areAllExportsComponents = false;\n }\n }\n return hasExports && areAllExportsComponents;\n}\nfunction shouldInvalidateReactRefreshBoundary(prevSignature, nextSignature) {\n if (prevSignature.length !== nextSignature.length) {\n return true;\n }\n for (var i = 0; i < nextSignature.length; i++) {\n if (prevSignature[i] !== nextSignature[i]) {\n return true;\n }\n }\n return false;\n}\nvar isUpdateScheduled = false;\n// This function aggregates updates from multiple modules into a single React Refresh call.\nfunction scheduleUpdate() {\n if (isUpdateScheduled) {\n return;\n }\n isUpdateScheduled = true;\n function canApplyUpdate(status) {\n return status === 'idle';\n }\n function applyUpdate() {\n isUpdateScheduled = false;\n try {\n runtime_1.default.performReactRefresh();\n }\n catch (err) {\n console.warn('Warning: Failed to re-render. We will retry on the next Fast Refresh event.\\n' +\n err);\n }\n }\n if (canApplyUpdate(module.hot.status())) {\n // Apply update on the next tick.\n Promise.resolve().then(() => {\n applyUpdate();\n });\n return;\n }\n const statusHandler = (status) => {\n if (canApplyUpdate(status)) {\n module.hot.removeStatusHandler(statusHandler);\n applyUpdate();\n }\n };\n // Apply update once the HMR runtime's status is idle.\n module.hot.addStatusHandler(statusHandler);\n}\n// Needs to be compatible with IE11\nexports[\"default\"] = {\n registerExportsForReactRefresh: registerExportsForReactRefresh,\n isReactRefreshBoundary: isReactRefreshBoundary,\n shouldInvalidateReactRefreshBoundary: shouldInvalidateReactRefreshBoundary,\n getRefreshBoundarySignature: getRefreshBoundarySignature,\n scheduleUpdate: scheduleUpdate,\n};\n//# sourceMappingURL=helpers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BuZXh0L3JlYWN0LXJlZnJlc2gtdXRpbHMvZGlzdC9pbnRlcm5hbC9oZWxwZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDO0FBQzdDO0FBQ0EsOENBQTZDLEVBQUUsYUFBYSxFQUFDO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLG1CQUFPLENBQUMsNEdBQTBDO0FBQ3BGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDBCQUEwQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFVBQVU7QUFDakM7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxVQUFVO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxVQUFVO0FBQ2Q7QUFDQTtBQUNBLGtCQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BuZXh0L3JlYWN0LXJlZnJlc2gtdXRpbHMvZGlzdC9pbnRlcm5hbC9oZWxwZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBNSVQgTGljZW5zZVxuICpcbiAqIENvcHlyaWdodCAoYykgRmFjZWJvb2ssIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLlxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGxcbiAqIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuICogU09GVFdBUkUuXG4gKi9cbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8vIFRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgTWV0cm8gSmF2YVNjcmlwdCBidW5kbGVyLCB3aXRoIG1pbm9yIHR3ZWFrcyBmb3Jcbi8vIHdlYnBhY2sgNCBjb21wYXRpYmlsaXR5LlxuLy9cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9tZXRyby9ibG9iL2Q2Yjk2ODVjNzMwZDBkNjM1NzdkYjQwZjQxMzY5MTU3ZjI4ZGZhM2EvcGFja2FnZXMvbWV0cm8vc3JjL2xpYi9wb2x5ZmlsbHMvcmVxdWlyZS5qc1xuY29uc3QgcnVudGltZV8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QtcmVmcmVzaC9ydW50aW1lXCIpKTtcbmZ1bmN0aW9uIGlzU2FmZUV4cG9ydChrZXkpIHtcbiAgICByZXR1cm4gKGtleSA9PT0gJ19fZXNNb2R1bGUnIHx8XG4gICAgICAgIGtleSA9PT0gJ19fTl9TU0cnIHx8XG4gICAgICAgIGtleSA9PT0gJ19fTl9TU1AnIHx8XG4gICAgICAgIC8vIFRPRE86IHJlbW92ZSB0aGlzIGtleSBmcm9tIHBhZ2UgY29uZmlnIGluc3RlYWQgb2YgYWxsb3cgbGlzdGluZyBpdFxuICAgICAgICBrZXkgPT09ICdjb25maWcnKTtcbn1cbmZ1bmN0aW9uIHJlZ2lzdGVyRXhwb3J0c0ZvclJlYWN0UmVmcmVzaChtb2R1bGVFeHBvcnRzLCBtb2R1bGVJRCkge1xuICAgIHJ1bnRpbWVfMS5kZWZhdWx0LnJlZ2lzdGVyKG1vZHVsZUV4cG9ydHMsIG1vZHVsZUlEICsgJyAlZXhwb3J0cyUnKTtcbiAgICBpZiAobW9kdWxlRXhwb3J0cyA9PSBudWxsIHx8IHR5cGVvZiBtb2R1bGVFeHBvcnRzICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAvLyBFeGl0IGlmIHdlIGNhbid0IGl0ZXJhdGUgb3ZlciBleHBvcnRzLlxuICAgICAgICAvLyAoVGhpcyBpcyBpbXBvcnRhbnQgZm9yIGxlZ2FjeSBlbnZpcm9ubWVudHMuKVxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGZvciAodmFyIGtleSBpbiBtb2R1bGVFeHBvcnRzKSB7XG4gICAgICAgIGlmIChpc1NhZmVFeHBvcnQoa2V5KSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhciBleHBvcnRWYWx1ZSA9IG1vZHVsZUV4cG9ydHNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgbWlnaHQgZmFpbCBkdWUgdG8gY2lyY3VsYXIgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdHlwZUlEID0gbW9kdWxlSUQgKyAnICVleHBvcnRzJSAnICsga2V5O1xuICAgICAgICBydW50aW1lXzEuZGVmYXVsdC5yZWdpc3RlcihleHBvcnRWYWx1ZSwgdHlwZUlEKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRSZWZyZXNoQm91bmRhcnlTaWduYXR1cmUobW9kdWxlRXhwb3J0cykge1xuICAgIHZhciBzaWduYXR1cmUgPSBbXTtcbiAgICBzaWduYXR1cmUucHVzaChydW50aW1lXzEuZGVmYXVsdC5nZXRGYW1pbHlCeVR5cGUobW9kdWxlRXhwb3J0cykpO1xuICAgIGlmIChtb2R1bGVFeHBvcnRzID09IG51bGwgfHwgdHlwZW9mIG1vZHVsZUV4cG9ydHMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEV4aXQgaWYgd2UgY2FuJ3QgaXRlcmF0ZSBvdmVyIGV4cG9ydHMuXG4gICAgICAgIC8vIChUaGlzIGlzIGltcG9ydGFudCBmb3IgbGVnYWN5IGVudmlyb25tZW50cy4pXG4gICAgICAgIHJldHVybiBzaWduYXR1cmU7XG4gICAgfVxuICAgIGZvciAodmFyIGtleSBpbiBtb2R1bGVFeHBvcnRzKSB7XG4gICAgICAgIGlmIChpc1NhZmVFeHBvcnQoa2V5KSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhciBleHBvcnRWYWx1ZSA9IG1vZHVsZUV4cG9ydHNba2V5XTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoX2EpIHtcbiAgICAgICAgICAgIC8vIFRoaXMgbWlnaHQgZmFpbCBkdWUgdG8gY2lyY3VsYXIgZGVwZW5kZW5jaWVzXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBzaWduYXR1cmUucHVzaChrZXkpO1xuICAgICAgICBzaWduYXR1cmUucHVzaChydW50aW1lXzEuZGVmYXVsdC5nZXRGYW1pbHlCeVR5cGUoZXhwb3J0VmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbn1cbmZ1bmN0aW9uIGlzUmVhY3RSZWZyZXNoQm91bmRhcnkobW9kdWxlRXhwb3J0cykge1xuICAgIGlmIChydW50aW1lXzEuZGVmYXVsdC5pc0xpa2VseUNvbXBvbmVudFR5cGUobW9kdWxlRXhwb3J0cykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChtb2R1bGVFeHBvcnRzID09IG51bGwgfHwgdHlwZW9mIG1vZHVsZUV4cG9ydHMgIT09ICdvYmplY3QnKSB7XG4gICAgICAgIC8vIEV4aXQgaWYgd2UgY2FuJ3QgaXRlcmF0ZSBvdmVyIGV4cG9ydHMuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdmFyIGhhc0V4cG9ydHMgPSBmYWxzZTtcbiAgICB2YXIgYXJlQWxsRXhwb3J0c0NvbXBvbmVudHMgPSB0cnVlO1xuICAgIGZvciAodmFyIGtleSBpbiBtb2R1bGVFeHBvcnRzKSB7XG4gICAgICAgIGhhc0V4cG9ydHMgPSB0cnVlO1xuICAgICAgICBpZiAoaXNTYWZlRXhwb3J0KGtleSkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB2YXIgZXhwb3J0VmFsdWUgPSBtb2R1bGVFeHBvcnRzW2tleV07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF9hKSB7XG4gICAgICAgICAgICAvLyBUaGlzIG1pZ2h0IGZhaWwgZHVlIHRvIGNpcmN1bGFyIGRlcGVuZGVuY2llc1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcnVudGltZV8xLmRlZmF1bHQuaXNMaWtlbHlDb21wb25lbnRUeXBlKGV4cG9ydFZhbHVlKSkge1xuICAgICAgICAgICAgYXJlQWxsRXhwb3J0c0NvbXBvbmVudHMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaGFzRXhwb3J0cyAmJiBhcmVBbGxFeHBvcnRzQ29tcG9uZW50cztcbn1cbmZ1bmN0aW9uIHNob3VsZEludmFsaWRhdGVSZWFjdFJlZnJlc2hCb3VuZGFyeShwcmV2U2lnbmF0dXJlLCBuZXh0U2lnbmF0dXJlKSB7XG4gICAgaWYgKHByZXZTaWduYXR1cmUubGVuZ3RoICE9PSBuZXh0U2lnbmF0dXJlLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuZXh0U2lnbmF0dXJlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChwcmV2U2lnbmF0dXJlW2ldICE9PSBuZXh0U2lnbmF0dXJlW2ldKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG52YXIgaXNVcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbi8vIFRoaXMgZnVuY3Rpb24gYWdncmVnYXRlcyB1cGRhdGVzIGZyb20gbXVsdGlwbGUgbW9kdWxlcyBpbnRvIGEgc2luZ2xlIFJlYWN0IFJlZnJlc2ggY2FsbC5cbmZ1bmN0aW9uIHNjaGVkdWxlVXBkYXRlKCkge1xuICAgIGlmIChpc1VwZGF0ZVNjaGVkdWxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlzVXBkYXRlU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICBmdW5jdGlvbiBjYW5BcHBseVVwZGF0ZShzdGF0dXMpIHtcbiAgICAgICAgcmV0dXJuIHN0YXR1cyA9PT0gJ2lkbGUnO1xuICAgIH1cbiAgICBmdW5jdGlvbiBhcHBseVVwZGF0ZSgpIHtcbiAgICAgICAgaXNVcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJ1bnRpbWVfMS5kZWZhdWx0LnBlcmZvcm1SZWFjdFJlZnJlc2goKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1dhcm5pbmc6IEZhaWxlZCB0byByZS1yZW5kZXIuIFdlIHdpbGwgcmV0cnkgb24gdGhlIG5leHQgRmFzdCBSZWZyZXNoIGV2ZW50LlxcbicgK1xuICAgICAgICAgICAgICAgIGVycik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNhbkFwcGx5VXBkYXRlKG1vZHVsZS5ob3Quc3RhdHVzKCkpKSB7XG4gICAgICAgIC8vIEFwcGx5IHVwZGF0ZSBvbiB0aGUgbmV4dCB0aWNrLlxuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGFwcGx5VXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0YXR1c0hhbmRsZXIgPSAoc3RhdHVzKSA9PiB7XG4gICAgICAgIGlmIChjYW5BcHBseVVwZGF0ZShzdGF0dXMpKSB7XG4gICAgICAgICAgICBtb2R1bGUuaG90LnJlbW92ZVN0YXR1c0hhbmRsZXIoc3RhdHVzSGFuZGxlcik7XG4gICAgICAgICAgICBhcHBseVVwZGF0ZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvLyBBcHBseSB1cGRhdGUgb25jZSB0aGUgSE1SIHJ1bnRpbWUncyBzdGF0dXMgaXMgaWRsZS5cbiAgICBtb2R1bGUuaG90LmFkZFN0YXR1c0hhbmRsZXIoc3RhdHVzSGFuZGxlcik7XG59XG4vLyBOZWVkcyB0byBiZSBjb21wYXRpYmxlIHdpdGggSUUxMVxuZXhwb3J0cy5kZWZhdWx0ID0ge1xuICAgIHJlZ2lzdGVyRXhwb3J0c0ZvclJlYWN0UmVmcmVzaDogcmVnaXN0ZXJFeHBvcnRzRm9yUmVhY3RSZWZyZXNoLFxuICAgIGlzUmVhY3RSZWZyZXNoQm91bmRhcnk6IGlzUmVhY3RSZWZyZXNoQm91bmRhcnksXG4gICAgc2hvdWxkSW52YWxpZGF0ZVJlYWN0UmVmcmVzaEJvdW5kYXJ5OiBzaG91bGRJbnZhbGlkYXRlUmVhY3RSZWZyZXNoQm91bmRhcnksXG4gICAgZ2V0UmVmcmVzaEJvdW5kYXJ5U2lnbmF0dXJlOiBnZXRSZWZyZXNoQm91bmRhcnlTaWduYXR1cmUsXG4gICAgc2NoZWR1bGVVcGRhdGU6IHNjaGVkdWxlVXBkYXRlLFxufTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlbHBlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/internal/helpers.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js ***! + \***********************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval(__webpack_require__.ts("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst runtime_1 = __importDefault(__webpack_require__(/*! next/dist/compiled/react-refresh/runtime */ \"./node_modules/next/dist/compiled/react-refresh/runtime.js\"));\nconst helpers_1 = __importDefault(__webpack_require__(/*! ./internal/helpers */ \"./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/internal/helpers.js\"));\n// Hook into ReactDOM initialization\nruntime_1.default.injectIntoGlobalHook(self);\n// Register global helpers\nself.$RefreshHelpers$ = helpers_1.default;\n// Register a helper for module execution interception\nself.$RefreshInterceptModuleExecution$ = function (webpackModuleId) {\n var prevRefreshReg = self.$RefreshReg$;\n var prevRefreshSig = self.$RefreshSig$;\n self.$RefreshReg$ = function (type, id) {\n runtime_1.default.register(type, webpackModuleId + ' ' + id);\n };\n self.$RefreshSig$ = runtime_1.default.createSignatureFunctionForTransform;\n // Modeled after `useEffect` cleanup pattern:\n // https://react.dev/learn/synchronizing-with-effects#step-3-add-cleanup-if-needed\n return function () {\n self.$RefreshReg$ = prevRefreshReg;\n self.$RefreshSig$ = prevRefreshSig;\n };\n};\n//# sourceMappingURL=runtime.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL0BuZXh0L3JlYWN0LXJlZnJlc2gtdXRpbHMvZGlzdC9ydW50aW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQSw4Q0FBNkMsRUFBRSxhQUFhLEVBQUM7QUFDN0Qsa0NBQWtDLG1CQUFPLENBQUMsNEdBQTBDO0FBQ3BGLGtDQUFrQyxtQkFBTyxDQUFDLGdIQUFvQjtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9AbmV4dC9yZWFjdC1yZWZyZXNoLXV0aWxzL2Rpc3QvcnVudGltZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2ltcG9ydERlZmF1bHQgPSAodGhpcyAmJiB0aGlzLl9faW1wb3J0RGVmYXVsdCkgfHwgZnVuY3Rpb24gKG1vZCkge1xuICAgIHJldHVybiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSA/IG1vZCA6IHsgXCJkZWZhdWx0XCI6IG1vZCB9O1xufTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbmNvbnN0IHJ1bnRpbWVfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXJlZnJlc2gvcnVudGltZVwiKSk7XG5jb25zdCBoZWxwZXJzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZShcIi4vaW50ZXJuYWwvaGVscGVyc1wiKSk7XG4vLyBIb29rIGludG8gUmVhY3RET00gaW5pdGlhbGl6YXRpb25cbnJ1bnRpbWVfMS5kZWZhdWx0LmluamVjdEludG9HbG9iYWxIb29rKHNlbGYpO1xuLy8gUmVnaXN0ZXIgZ2xvYmFsIGhlbHBlcnNcbnNlbGYuJFJlZnJlc2hIZWxwZXJzJCA9IGhlbHBlcnNfMS5kZWZhdWx0O1xuLy8gUmVnaXN0ZXIgYSBoZWxwZXIgZm9yIG1vZHVsZSBleGVjdXRpb24gaW50ZXJjZXB0aW9uXG5zZWxmLiRSZWZyZXNoSW50ZXJjZXB0TW9kdWxlRXhlY3V0aW9uJCA9IGZ1bmN0aW9uICh3ZWJwYWNrTW9kdWxlSWQpIHtcbiAgICB2YXIgcHJldlJlZnJlc2hSZWcgPSBzZWxmLiRSZWZyZXNoUmVnJDtcbiAgICB2YXIgcHJldlJlZnJlc2hTaWcgPSBzZWxmLiRSZWZyZXNoU2lnJDtcbiAgICBzZWxmLiRSZWZyZXNoUmVnJCA9IGZ1bmN0aW9uICh0eXBlLCBpZCkge1xuICAgICAgICBydW50aW1lXzEuZGVmYXVsdC5yZWdpc3Rlcih0eXBlLCB3ZWJwYWNrTW9kdWxlSWQgKyAnICcgKyBpZCk7XG4gICAgfTtcbiAgICBzZWxmLiRSZWZyZXNoU2lnJCA9IHJ1bnRpbWVfMS5kZWZhdWx0LmNyZWF0ZVNpZ25hdHVyZUZ1bmN0aW9uRm9yVHJhbnNmb3JtO1xuICAgIC8vIE1vZGVsZWQgYWZ0ZXIgYHVzZUVmZmVjdGAgY2xlYW51cCBwYXR0ZXJuOlxuICAgIC8vIGh0dHBzOi8vcmVhY3QuZGV2L2xlYXJuL3N5bmNocm9uaXppbmctd2l0aC1lZmZlY3RzI3N0ZXAtMy1hZGQtY2xlYW51cC1pZi1uZWVkZWRcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICBzZWxmLiRSZWZyZXNoUmVnJCA9IHByZXZSZWZyZXNoUmVnO1xuICAgICAgICBzZWxmLiRSZWZyZXNoU2lnJCA9IHByZXZSZWZyZXNoU2lnO1xuICAgIH07XG59O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cnVudGltZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.development.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.development.js ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("/**\n * @license React\n * react-refresh-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n (function() {\n'use strict';\n\n// ATTENTION\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\n\nvar PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map; // We never remove these associations.\n// It's OK to reference families, but use WeakMap/Set for types.\n\nvar allFamiliesByID = new Map();\nvar allFamiliesByType = new PossiblyWeakMap();\nvar allSignaturesByType = new PossiblyWeakMap(); // This WeakMap is read by React, so we only put families\n// that have actually been edited here. This keeps checks fast.\n// $FlowIssue\n\nvar updatedFamiliesByType = new PossiblyWeakMap(); // This is cleared on every performReactRefresh() call.\n// It is an array of [Family, NextType] tuples.\n\nvar pendingUpdates = []; // This is injected by the renderer via DevTools global hook.\n\nvar helpersByRendererID = new Map();\nvar helpersByRoot = new Map(); // We keep track of mounted roots so we can schedule updates.\n\nvar mountedRoots = new Set(); // If a root captures an error, we remember it so we can retry on edit.\n\nvar failedRoots = new Set(); // In environments that support WeakMap, we also remember the last element for every root.\n// It needs to be weak because we do this even for roots that failed to mount.\n// If there is no WeakMap, we won't attempt to do retrying.\n// $FlowIssue\n\nvar rootElements = // $FlowIssue\ntypeof WeakMap === 'function' ? new WeakMap() : null;\nvar isPerformingRefresh = false;\n\nfunction computeFullKey(signature) {\n if (signature.fullKey !== null) {\n return signature.fullKey;\n }\n\n var fullKey = signature.ownKey;\n var hooks;\n\n try {\n hooks = signature.getCustomHooks();\n } catch (err) {\n // This can happen in an edge case, e.g. if expression like Foo.useSomething\n // depends on Foo which is lazily initialized during rendering.\n // In that case just assume we'll have to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n for (var i = 0; i < hooks.length; i++) {\n var hook = hooks[i];\n\n if (typeof hook !== 'function') {\n // Something's wrong. Assume we need to remount.\n signature.forceReset = true;\n signature.fullKey = fullKey;\n return fullKey;\n }\n\n var nestedHookSignature = allSignaturesByType.get(hook);\n\n if (nestedHookSignature === undefined) {\n // No signature means Hook wasn't in the source code, e.g. in a library.\n // We'll skip it because we can assume it won't change during this session.\n continue;\n }\n\n var nestedHookKey = computeFullKey(nestedHookSignature);\n\n if (nestedHookSignature.forceReset) {\n signature.forceReset = true;\n }\n\n fullKey += '\\n---\\n' + nestedHookKey;\n }\n\n signature.fullKey = fullKey;\n return fullKey;\n}\n\nfunction haveEqualSignatures(prevType, nextType) {\n var prevSignature = allSignaturesByType.get(prevType);\n var nextSignature = allSignaturesByType.get(nextType);\n\n if (prevSignature === undefined && nextSignature === undefined) {\n return true;\n }\n\n if (prevSignature === undefined || nextSignature === undefined) {\n return false;\n }\n\n if (computeFullKey(prevSignature) !== computeFullKey(nextSignature)) {\n return false;\n }\n\n if (nextSignature.forceReset) {\n return false;\n }\n\n return true;\n}\n\nfunction isReactClass(type) {\n return type.prototype && type.prototype.isReactComponent;\n}\n\nfunction canPreserveStateBetween(prevType, nextType) {\n if (isReactClass(prevType) || isReactClass(nextType)) {\n return false;\n }\n\n if (haveEqualSignatures(prevType, nextType)) {\n return true;\n }\n\n return false;\n}\n\nfunction resolveFamily(type) {\n // Only check updated types to keep lookups fast.\n return updatedFamiliesByType.get(type);\n} // If we didn't care about IE11, we could use new Map/Set(iterable).\n\n\nfunction cloneMap(map) {\n var clone = new Map();\n map.forEach(function (value, key) {\n clone.set(key, value);\n });\n return clone;\n}\n\nfunction cloneSet(set) {\n var clone = new Set();\n set.forEach(function (value) {\n clone.add(value);\n });\n return clone;\n} // This is a safety mechanism to protect against rogue getters and Proxies.\n\n\nfunction getProperty(object, property) {\n try {\n return object[property];\n } catch (err) {\n // Intentionally ignore.\n return undefined;\n }\n}\n\nfunction performReactRefresh() {\n\n if (pendingUpdates.length === 0) {\n return null;\n }\n\n if (isPerformingRefresh) {\n return null;\n }\n\n isPerformingRefresh = true;\n\n try {\n var staleFamilies = new Set();\n var updatedFamilies = new Set();\n var updates = pendingUpdates;\n pendingUpdates = [];\n updates.forEach(function (_ref) {\n var family = _ref[0],\n nextType = _ref[1];\n // Now that we got a real edit, we can create associations\n // that will be read by the React reconciler.\n var prevType = family.current;\n updatedFamiliesByType.set(prevType, family);\n updatedFamiliesByType.set(nextType, family);\n family.current = nextType; // Determine whether this should be a re-render or a re-mount.\n\n if (canPreserveStateBetween(prevType, nextType)) {\n updatedFamilies.add(family);\n } else {\n staleFamilies.add(family);\n }\n }); // TODO: rename these fields to something more meaningful.\n\n var update = {\n updatedFamilies: updatedFamilies,\n // Families that will re-render preserving state\n staleFamilies: staleFamilies // Families that will be remounted\n\n };\n helpersByRendererID.forEach(function (helpers) {\n // Even if there are no roots, set the handler on first update.\n // This ensures that if *new* roots are mounted, they'll use the resolve handler.\n helpers.setRefreshHandler(resolveFamily);\n });\n var didError = false;\n var firstError = null; // We snapshot maps and sets that are mutated during commits.\n // If we don't do this, there is a risk they will be mutated while\n // we iterate over them. For example, trying to recover a failed root\n // may cause another root to be added to the failed list -- an infinite loop.\n\n var failedRootsSnapshot = cloneSet(failedRoots);\n var mountedRootsSnapshot = cloneSet(mountedRoots);\n var helpersByRootSnapshot = cloneMap(helpersByRoot);\n failedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!failedRoots.has(root)) {// No longer failed.\n }\n\n if (rootElements === null) {\n return;\n }\n\n if (!rootElements.has(root)) {\n return;\n }\n\n var element = rootElements.get(root);\n\n try {\n helpers.scheduleRoot(root, element);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n mountedRootsSnapshot.forEach(function (root) {\n var helpers = helpersByRootSnapshot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n if (!mountedRoots.has(root)) {// No longer mounted.\n }\n\n try {\n helpers.scheduleRefresh(root, update);\n } catch (err) {\n if (!didError) {\n didError = true;\n firstError = err;\n } // Keep trying other roots.\n\n }\n });\n\n if (didError) {\n throw firstError;\n }\n\n return update;\n } finally {\n isPerformingRefresh = false;\n }\n}\nfunction register(type, id) {\n {\n if (type === null) {\n return;\n }\n\n if (typeof type !== 'function' && typeof type !== 'object') {\n return;\n } // This can happen in an edge case, e.g. if we register\n // return value of a HOC but it returns a cached component.\n // Ignore anything but the first registration for each type.\n\n\n if (allFamiliesByType.has(type)) {\n return;\n } // Create family or remember to update it.\n // None of this bookkeeping affects reconciliation\n // until the first performReactRefresh() call above.\n\n\n var family = allFamiliesByID.get(id);\n\n if (family === undefined) {\n family = {\n current: type\n };\n allFamiliesByID.set(id, family);\n } else {\n pendingUpdates.push([family, type]);\n }\n\n allFamiliesByType.set(type, family); // Visit inner types because we might not have registered them.\n\n if (typeof type === 'object' && type !== null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n register(type.render, id + '$render');\n break;\n\n case REACT_MEMO_TYPE:\n register(type.type, id + '$type');\n break;\n }\n }\n }\n}\nfunction setSignature(type, key) {\n var forceReset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined;\n\n {\n if (!allSignaturesByType.has(type)) {\n allSignaturesByType.set(type, {\n forceReset: forceReset,\n ownKey: key,\n fullKey: null,\n getCustomHooks: getCustomHooks || function () {\n return [];\n }\n });\n } // Visit inner types because we might not have signed them.\n\n\n if (typeof type === 'object' && type !== null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n setSignature(type.render, key, forceReset, getCustomHooks);\n break;\n\n case REACT_MEMO_TYPE:\n setSignature(type.type, key, forceReset, getCustomHooks);\n break;\n }\n }\n }\n} // This is lazily called during first render for a type.\n// It captures Hook list at that time so inline requires don't break comparisons.\n\nfunction collectCustomHooksForSignature(type) {\n {\n var signature = allSignaturesByType.get(type);\n\n if (signature !== undefined) {\n computeFullKey(signature);\n }\n }\n}\nfunction getFamilyByID(id) {\n {\n return allFamiliesByID.get(id);\n }\n}\nfunction getFamilyByType(type) {\n {\n return allFamiliesByType.get(type);\n }\n}\nfunction findAffectedHostInstances(families) {\n {\n var affectedInstances = new Set();\n mountedRoots.forEach(function (root) {\n var helpers = helpersByRoot.get(root);\n\n if (helpers === undefined) {\n throw new Error('Could not find helpers for a root. This is a bug in React Refresh.');\n }\n\n var instancesForRoot = helpers.findHostInstancesForRefresh(root, families);\n instancesForRoot.forEach(function (inst) {\n affectedInstances.add(inst);\n });\n });\n return affectedInstances;\n }\n}\nfunction injectIntoGlobalHook(globalObject) {\n {\n // For React Native, the global hook will be set up by require('react-devtools-core').\n // That code will run before us. So we need to monkeypatch functions on existing hook.\n // For React Web, the global hook will be set up by the extension.\n // This will also run before us.\n var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook === undefined) {\n // However, if there is no DevTools extension, we'll need to set up the global hook ourselves.\n // Note that in this case it's important that renderer code runs *after* this method call.\n // Otherwise, the renderer will think that there is no global hook, and won't do the injection.\n var nextID = 0;\n globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = {\n renderers: new Map(),\n supportsFiber: true,\n inject: function (injected) {\n return nextID++;\n },\n onScheduleFiberRoot: function (id, root, children) {},\n onCommitFiberRoot: function (id, root, maybePriorityLevel, didError) {},\n onCommitFiberUnmount: function () {}\n };\n }\n\n if (hook.isDisabled) {\n // This isn't a real property on the hook, but it can be set to opt out\n // of DevTools integration and associated warnings and logs.\n // Using console['warn'] to evade Babel and ESLint\n console['warn']('Something has shimmed the React DevTools global hook (__REACT_DEVTOOLS_GLOBAL_HOOK__). ' + 'Fast Refresh is not compatible with this shim and will be disabled.');\n return;\n } // Here, we just want to get a reference to scheduleRefresh.\n\n\n var oldInject = hook.inject;\n\n hook.inject = function (injected) {\n var id = oldInject.apply(this, arguments);\n\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n\n return id;\n }; // Do the same for any already injected roots.\n // This is useful if ReactDOM has already been initialized.\n // https://github.com/facebook/react/issues/17626\n\n\n hook.renderers.forEach(function (injected, id) {\n if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') {\n // This version supports React Refresh.\n helpersByRendererID.set(id, injected);\n }\n }); // We also want to track currently mounted roots.\n\n var oldOnCommitFiberRoot = hook.onCommitFiberRoot;\n\n var oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || function () {};\n\n hook.onScheduleFiberRoot = function (id, root, children) {\n if (!isPerformingRefresh) {\n // If it was intentionally scheduled, don't attempt to restore.\n // This includes intentionally scheduled unmounts.\n failedRoots.delete(root);\n\n if (rootElements !== null) {\n rootElements.set(root, children);\n }\n }\n\n return oldOnScheduleFiberRoot.apply(this, arguments);\n };\n\n hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) {\n var helpers = helpersByRendererID.get(id);\n\n if (helpers !== undefined) {\n helpersByRoot.set(root, helpers);\n var current = root.current;\n var alternate = current.alternate; // We need to determine whether this root has just (un)mounted.\n // This logic is copy-pasted from similar logic in the DevTools backend.\n // If this breaks with some refactoring, you'll want to update DevTools too.\n\n if (alternate !== null) {\n var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null && mountedRoots.has(root);\n var isMounted = current.memoizedState != null && current.memoizedState.element != null;\n\n if (!wasMounted && isMounted) {\n // Mount a new root.\n mountedRoots.add(root);\n failedRoots.delete(root);\n } else if (wasMounted && isMounted) ; else if (wasMounted && !isMounted) {\n // Unmount an existing root.\n mountedRoots.delete(root);\n\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n } else {\n helpersByRoot.delete(root);\n }\n } else if (!wasMounted && !isMounted) {\n if (didError) {\n // We'll remount it on future edits.\n failedRoots.add(root);\n }\n }\n } else {\n // Mount a new root.\n mountedRoots.add(root);\n }\n } // Always call the decorated DevTools hook.\n\n\n return oldOnCommitFiberRoot.apply(this, arguments);\n };\n }\n}\nfunction hasUnrecoverableErrors() {\n // TODO: delete this after removing dependency in RN.\n return false;\n} // Exposed for testing.\n\nfunction _getMountedRootCount() {\n {\n return mountedRoots.size;\n }\n} // This is a wrapper over more primitive functions for setting signature.\n// Signatures let us decide whether the Hook order has changed on refresh.\n//\n// This function is intended to be used as a transform target, e.g.:\n// var _s = createSignatureFunctionForTransform()\n//\n// function Hello() {\n// const [foo, setFoo] = useState(0);\n// const value = useCustomHook();\n// _s(); /* Call without arguments triggers collecting the custom Hook list.\n// * This doesn't happen during the module evaluation because we\n// * don't want to change the module order with inline requires.\n// * Next calls are noops. */\n// return <h1>Hi</h1>;\n// }\n//\n// /* Call with arguments attaches the signature to the type: */\n// _s(\n// Hello,\n// 'useState{[foo, setFoo]}(0)',\n// () => [useCustomHook], /* Lazy to avoid triggering inline requires */\n// );\n\nfunction createSignatureFunctionForTransform() {\n {\n var savedType;\n var hasCustomHooks;\n var didCollectHooks = false;\n return function (type, key, forceReset, getCustomHooks) {\n if (typeof key === 'string') {\n // We're in the initial phase that associates signatures\n // with the functions. Note this may be called multiple times\n // in HOC chains like _s(hoc1(_s(hoc2(_s(actualFunction))))).\n if (!savedType) {\n // We're in the innermost call, so this is the actual type.\n savedType = type;\n hasCustomHooks = typeof getCustomHooks === 'function';\n } // Set the signature for all types (even wrappers!) in case\n // they have no signatures of their own. This is to prevent\n // problems like https://github.com/facebook/react/issues/20417.\n\n\n if (type != null && (typeof type === 'function' || typeof type === 'object')) {\n setSignature(type, key, forceReset, getCustomHooks);\n }\n\n return type;\n } else {\n // We're in the _s() call without arguments, which means\n // this is the time to collect custom Hook signatures.\n // Only do this once. This path is hot and runs *inside* every render!\n if (!didCollectHooks && hasCustomHooks) {\n didCollectHooks = true;\n collectCustomHooksForSignature(savedType);\n }\n }\n };\n }\n}\nfunction isLikelyComponentType(type) {\n {\n switch (typeof type) {\n case 'function':\n {\n // First, deal with classes.\n if (type.prototype != null) {\n if (type.prototype.isReactComponent) {\n // React class.\n return true;\n }\n\n var ownNames = Object.getOwnPropertyNames(type.prototype);\n\n if (ownNames.length > 1 || ownNames[0] !== 'constructor') {\n // This looks like a class.\n return false;\n } // eslint-disable-next-line no-proto\n\n\n if (type.prototype.__proto__ !== Object.prototype) {\n // It has a superclass.\n return false;\n } // Pass through.\n // This looks like a regular function with empty prototype.\n\n } // For plain functions and arrows, use name as a heuristic.\n\n\n var name = type.name || type.displayName;\n return typeof name === 'string' && /^[A-Z]/.test(name);\n }\n\n case 'object':\n {\n if (type != null) {\n switch (getProperty(type, '$$typeof')) {\n case REACT_FORWARD_REF_TYPE:\n case REACT_MEMO_TYPE:\n // Definitely React components.\n return true;\n\n default:\n return false;\n }\n }\n\n return false;\n }\n\n default:\n {\n return false;\n }\n }\n }\n}\n\nexports._getMountedRootCount = _getMountedRootCount;\nexports.collectCustomHooksForSignature = collectCustomHooksForSignature;\nexports.createSignatureFunctionForTransform = createSignatureFunctionForTransform;\nexports.findAffectedHostInstances = findAffectedHostInstances;\nexports.getFamilyByID = getFamilyByID;\nexports.getFamilyByType = getFamilyByType;\nexports.hasUnrecoverableErrors = hasUnrecoverableErrors;\nexports.injectIntoGlobalHook = injectIntoGlobalHook;\nexports.isLikelyComponentType = isLikelyComponentType;\nexports.performReactRefresh = performReactRefresh;\nexports.register = register;\nexports.setSignature = setSignature;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXJlZnJlc2gvY2pzL3JlYWN0LXJlZnJlc2gtcnVudGltZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxxRUFBcUU7QUFDckU7O0FBRUE7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRDtBQUNBOztBQUVBLG1EQUFtRDtBQUNuRDs7QUFFQSx5QkFBeUI7O0FBRXpCO0FBQ0EsK0JBQStCOztBQUUvQiw4QkFBOEI7O0FBRTlCLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxrQkFBa0Isa0JBQWtCO0FBQ3BDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7OztBQUdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxFQUFFOzs7QUFHRjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQzs7QUFFakM7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLG1DQUFtQztBQUNuQzs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxvQ0FBb0M7QUFDcEM7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxVQUFVOztBQUVWO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTs7O0FBR0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBOztBQUVBLHlDQUF5Qzs7QUFFekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsTUFBTTs7O0FBR047QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsNkRBQTZEO0FBQzdELCtFQUErRTtBQUMvRTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLE9BQU87QUFDUDtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQztBQUMzQztBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksb0NBQW9DO0FBQ2hEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxRQUFROzs7QUFHUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUU7O0FBRUY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGNBQWM7QUFDN0I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxjQUFjOzs7QUFHZDtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7O0FBRUEsWUFBWTs7O0FBR1o7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSw0QkFBNEI7QUFDNUIsc0NBQXNDO0FBQ3RDLDJDQUEyQztBQUMzQyxpQ0FBaUM7QUFDakMscUJBQXFCO0FBQ3JCLHVCQUF1QjtBQUN2Qiw4QkFBOEI7QUFDOUIsNEJBQTRCO0FBQzVCLDZCQUE2QjtBQUM3QiwyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLG9CQUFvQjtBQUNwQixHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXJlZnJlc2gvY2pzL3JlYWN0LXJlZnJlc2gtcnVudGltZS5kZXZlbG9wbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlIFJlYWN0XG4gKiByZWFjdC1yZWZyZXNoLXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanNcbiAqXG4gKiBDb3B5cmlnaHQgKGMpIEZhY2Vib29rLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgKGZ1bmN0aW9uKCkge1xuJ3VzZSBzdHJpY3QnO1xuXG4vLyBBVFRFTlRJT05cbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZm9yd2FyZF9yZWYnKTtcbnZhciBSRUFDVF9NRU1PX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5tZW1vJyk7XG5cbnZhciBQb3NzaWJseVdlYWtNYXAgPSB0eXBlb2YgV2Vha01hcCA9PT0gJ2Z1bmN0aW9uJyA/IFdlYWtNYXAgOiBNYXA7IC8vIFdlIG5ldmVyIHJlbW92ZSB0aGVzZSBhc3NvY2lhdGlvbnMuXG4vLyBJdCdzIE9LIHRvIHJlZmVyZW5jZSBmYW1pbGllcywgYnV0IHVzZSBXZWFrTWFwL1NldCBmb3IgdHlwZXMuXG5cbnZhciBhbGxGYW1pbGllc0J5SUQgPSBuZXcgTWFwKCk7XG52YXIgYWxsRmFtaWxpZXNCeVR5cGUgPSBuZXcgUG9zc2libHlXZWFrTWFwKCk7XG52YXIgYWxsU2lnbmF0dXJlc0J5VHlwZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAoKTsgLy8gVGhpcyBXZWFrTWFwIGlzIHJlYWQgYnkgUmVhY3QsIHNvIHdlIG9ubHkgcHV0IGZhbWlsaWVzXG4vLyB0aGF0IGhhdmUgYWN0dWFsbHkgYmVlbiBlZGl0ZWQgaGVyZS4gVGhpcyBrZWVwcyBjaGVja3MgZmFzdC5cbi8vICRGbG93SXNzdWVcblxudmFyIHVwZGF0ZWRGYW1pbGllc0J5VHlwZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAoKTsgLy8gVGhpcyBpcyBjbGVhcmVkIG9uIGV2ZXJ5IHBlcmZvcm1SZWFjdFJlZnJlc2goKSBjYWxsLlxuLy8gSXQgaXMgYW4gYXJyYXkgb2YgW0ZhbWlseSwgTmV4dFR5cGVdIHR1cGxlcy5cblxudmFyIHBlbmRpbmdVcGRhdGVzID0gW107IC8vIFRoaXMgaXMgaW5qZWN0ZWQgYnkgdGhlIHJlbmRlcmVyIHZpYSBEZXZUb29scyBnbG9iYWwgaG9vay5cblxudmFyIGhlbHBlcnNCeVJlbmRlcmVySUQgPSBuZXcgTWFwKCk7XG52YXIgaGVscGVyc0J5Um9vdCA9IG5ldyBNYXAoKTsgLy8gV2Uga2VlcCB0cmFjayBvZiBtb3VudGVkIHJvb3RzIHNvIHdlIGNhbiBzY2hlZHVsZSB1cGRhdGVzLlxuXG52YXIgbW91bnRlZFJvb3RzID0gbmV3IFNldCgpOyAvLyBJZiBhIHJvb3QgY2FwdHVyZXMgYW4gZXJyb3IsIHdlIHJlbWVtYmVyIGl0IHNvIHdlIGNhbiByZXRyeSBvbiBlZGl0LlxuXG52YXIgZmFpbGVkUm9vdHMgPSBuZXcgU2V0KCk7IC8vIEluIGVudmlyb25tZW50cyB0aGF0IHN1cHBvcnQgV2Vha01hcCwgd2UgYWxzbyByZW1lbWJlciB0aGUgbGFzdCBlbGVtZW50IGZvciBldmVyeSByb290LlxuLy8gSXQgbmVlZHMgdG8gYmUgd2VhayBiZWNhdXNlIHdlIGRvIHRoaXMgZXZlbiBmb3Igcm9vdHMgdGhhdCBmYWlsZWQgdG8gbW91bnQuXG4vLyBJZiB0aGVyZSBpcyBubyBXZWFrTWFwLCB3ZSB3b24ndCBhdHRlbXB0IHRvIGRvIHJldHJ5aW5nLlxuLy8gJEZsb3dJc3N1ZVxuXG52YXIgcm9vdEVsZW1lbnRzID0gLy8gJEZsb3dJc3N1ZVxudHlwZW9mIFdlYWtNYXAgPT09ICdmdW5jdGlvbicgPyBuZXcgV2Vha01hcCgpIDogbnVsbDtcbnZhciBpc1BlcmZvcm1pbmdSZWZyZXNoID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGNvbXB1dGVGdWxsS2V5KHNpZ25hdHVyZSkge1xuICBpZiAoc2lnbmF0dXJlLmZ1bGxLZXkgIT09IG51bGwpIHtcbiAgICByZXR1cm4gc2lnbmF0dXJlLmZ1bGxLZXk7XG4gIH1cblxuICB2YXIgZnVsbEtleSA9IHNpZ25hdHVyZS5vd25LZXk7XG4gIHZhciBob29rcztcblxuICB0cnkge1xuICAgIGhvb2tzID0gc2lnbmF0dXJlLmdldEN1c3RvbUhvb2tzKCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIFRoaXMgY2FuIGhhcHBlbiBpbiBhbiBlZGdlIGNhc2UsIGUuZy4gaWYgZXhwcmVzc2lvbiBsaWtlIEZvby51c2VTb21ldGhpbmdcbiAgICAvLyBkZXBlbmRzIG9uIEZvbyB3aGljaCBpcyBsYXppbHkgaW5pdGlhbGl6ZWQgZHVyaW5nIHJlbmRlcmluZy5cbiAgICAvLyBJbiB0aGF0IGNhc2UganVzdCBhc3N1bWUgd2UnbGwgaGF2ZSB0byByZW1vdW50LlxuICAgIHNpZ25hdHVyZS5mb3JjZVJlc2V0ID0gdHJ1ZTtcbiAgICBzaWduYXR1cmUuZnVsbEtleSA9IGZ1bGxLZXk7XG4gICAgcmV0dXJuIGZ1bGxLZXk7XG4gIH1cblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGhvb2tzLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGhvb2sgPSBob29rc1tpXTtcblxuICAgIGlmICh0eXBlb2YgaG9vayAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgLy8gU29tZXRoaW5nJ3Mgd3JvbmcuIEFzc3VtZSB3ZSBuZWVkIHRvIHJlbW91bnQuXG4gICAgICBzaWduYXR1cmUuZm9yY2VSZXNldCA9IHRydWU7XG4gICAgICBzaWduYXR1cmUuZnVsbEtleSA9IGZ1bGxLZXk7XG4gICAgICByZXR1cm4gZnVsbEtleTtcbiAgICB9XG5cbiAgICB2YXIgbmVzdGVkSG9va1NpZ25hdHVyZSA9IGFsbFNpZ25hdHVyZXNCeVR5cGUuZ2V0KGhvb2spO1xuXG4gICAgaWYgKG5lc3RlZEhvb2tTaWduYXR1cmUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gTm8gc2lnbmF0dXJlIG1lYW5zIEhvb2sgd2Fzbid0IGluIHRoZSBzb3VyY2UgY29kZSwgZS5nLiBpbiBhIGxpYnJhcnkuXG4gICAgICAvLyBXZSdsbCBza2lwIGl0IGJlY2F1c2Ugd2UgY2FuIGFzc3VtZSBpdCB3b24ndCBjaGFuZ2UgZHVyaW5nIHRoaXMgc2Vzc2lvbi5cbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIHZhciBuZXN0ZWRIb29rS2V5ID0gY29tcHV0ZUZ1bGxLZXkobmVzdGVkSG9va1NpZ25hdHVyZSk7XG5cbiAgICBpZiAobmVzdGVkSG9va1NpZ25hdHVyZS5mb3JjZVJlc2V0KSB7XG4gICAgICBzaWduYXR1cmUuZm9yY2VSZXNldCA9IHRydWU7XG4gICAgfVxuXG4gICAgZnVsbEtleSArPSAnXFxuLS0tXFxuJyArIG5lc3RlZEhvb2tLZXk7XG4gIH1cblxuICBzaWduYXR1cmUuZnVsbEtleSA9IGZ1bGxLZXk7XG4gIHJldHVybiBmdWxsS2V5O1xufVxuXG5mdW5jdGlvbiBoYXZlRXF1YWxTaWduYXR1cmVzKHByZXZUeXBlLCBuZXh0VHlwZSkge1xuICB2YXIgcHJldlNpZ25hdHVyZSA9IGFsbFNpZ25hdHVyZXNCeVR5cGUuZ2V0KHByZXZUeXBlKTtcbiAgdmFyIG5leHRTaWduYXR1cmUgPSBhbGxTaWduYXR1cmVzQnlUeXBlLmdldChuZXh0VHlwZSk7XG5cbiAgaWYgKHByZXZTaWduYXR1cmUgPT09IHVuZGVmaW5lZCAmJiBuZXh0U2lnbmF0dXJlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcmV2U2lnbmF0dXJlID09PSB1bmRlZmluZWQgfHwgbmV4dFNpZ25hdHVyZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGNvbXB1dGVGdWxsS2V5KHByZXZTaWduYXR1cmUpICE9PSBjb21wdXRlRnVsbEtleShuZXh0U2lnbmF0dXJlKSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChuZXh0U2lnbmF0dXJlLmZvcmNlUmVzZXQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gaXNSZWFjdENsYXNzKHR5cGUpIHtcbiAgcmV0dXJuIHR5cGUucHJvdG90eXBlICYmIHR5cGUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQ7XG59XG5cbmZ1bmN0aW9uIGNhblByZXNlcnZlU3RhdGVCZXR3ZWVuKHByZXZUeXBlLCBuZXh0VHlwZSkge1xuICBpZiAoaXNSZWFjdENsYXNzKHByZXZUeXBlKSB8fCBpc1JlYWN0Q2xhc3MobmV4dFR5cGUpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGhhdmVFcXVhbFNpZ25hdHVyZXMocHJldlR5cGUsIG5leHRUeXBlKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlRmFtaWx5KHR5cGUpIHtcbiAgLy8gT25seSBjaGVjayB1cGRhdGVkIHR5cGVzIHRvIGtlZXAgbG9va3VwcyBmYXN0LlxuICByZXR1cm4gdXBkYXRlZEZhbWlsaWVzQnlUeXBlLmdldCh0eXBlKTtcbn0gLy8gSWYgd2UgZGlkbid0IGNhcmUgYWJvdXQgSUUxMSwgd2UgY291bGQgdXNlIG5ldyBNYXAvU2V0KGl0ZXJhYmxlKS5cblxuXG5mdW5jdGlvbiBjbG9uZU1hcChtYXApIHtcbiAgdmFyIGNsb25lID0gbmV3IE1hcCgpO1xuICBtYXAuZm9yRWFjaChmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgIGNsb25lLnNldChrZXksIHZhbHVlKTtcbiAgfSk7XG4gIHJldHVybiBjbG9uZTtcbn1cblxuZnVuY3Rpb24gY2xvbmVTZXQoc2V0KSB7XG4gIHZhciBjbG9uZSA9IG5ldyBTZXQoKTtcbiAgc2V0LmZvckVhY2goZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgY2xvbmUuYWRkKHZhbHVlKTtcbiAgfSk7XG4gIHJldHVybiBjbG9uZTtcbn0gLy8gVGhpcyBpcyBhIHNhZmV0eSBtZWNoYW5pc20gdG8gcHJvdGVjdCBhZ2FpbnN0IHJvZ3VlIGdldHRlcnMgYW5kIFByb3hpZXMuXG5cblxuZnVuY3Rpb24gZ2V0UHJvcGVydHkob2JqZWN0LCBwcm9wZXJ0eSkge1xuICB0cnkge1xuICAgIHJldHVybiBvYmplY3RbcHJvcGVydHldO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvLyBJbnRlbnRpb25hbGx5IGlnbm9yZS5cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbmZ1bmN0aW9uIHBlcmZvcm1SZWFjdFJlZnJlc2goKSB7XG5cbiAgaWYgKHBlbmRpbmdVcGRhdGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKGlzUGVyZm9ybWluZ1JlZnJlc2gpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlzUGVyZm9ybWluZ1JlZnJlc2ggPSB0cnVlO1xuXG4gIHRyeSB7XG4gICAgdmFyIHN0YWxlRmFtaWxpZXMgPSBuZXcgU2V0KCk7XG4gICAgdmFyIHVwZGF0ZWRGYW1pbGllcyA9IG5ldyBTZXQoKTtcbiAgICB2YXIgdXBkYXRlcyA9IHBlbmRpbmdVcGRhdGVzO1xuICAgIHBlbmRpbmdVcGRhdGVzID0gW107XG4gICAgdXBkYXRlcy5mb3JFYWNoKGZ1bmN0aW9uIChfcmVmKSB7XG4gICAgICB2YXIgZmFtaWx5ID0gX3JlZlswXSxcbiAgICAgICAgICBuZXh0VHlwZSA9IF9yZWZbMV07XG4gICAgICAvLyBOb3cgdGhhdCB3ZSBnb3QgYSByZWFsIGVkaXQsIHdlIGNhbiBjcmVhdGUgYXNzb2NpYXRpb25zXG4gICAgICAvLyB0aGF0IHdpbGwgYmUgcmVhZCBieSB0aGUgUmVhY3QgcmVjb25jaWxlci5cbiAgICAgIHZhciBwcmV2VHlwZSA9IGZhbWlseS5jdXJyZW50O1xuICAgICAgdXBkYXRlZEZhbWlsaWVzQnlUeXBlLnNldChwcmV2VHlwZSwgZmFtaWx5KTtcbiAgICAgIHVwZGF0ZWRGYW1pbGllc0J5VHlwZS5zZXQobmV4dFR5cGUsIGZhbWlseSk7XG4gICAgICBmYW1pbHkuY3VycmVudCA9IG5leHRUeXBlOyAvLyBEZXRlcm1pbmUgd2hldGhlciB0aGlzIHNob3VsZCBiZSBhIHJlLXJlbmRlciBvciBhIHJlLW1vdW50LlxuXG4gICAgICBpZiAoY2FuUHJlc2VydmVTdGF0ZUJldHdlZW4ocHJldlR5cGUsIG5leHRUeXBlKSkge1xuICAgICAgICB1cGRhdGVkRmFtaWxpZXMuYWRkKGZhbWlseSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGFsZUZhbWlsaWVzLmFkZChmYW1pbHkpO1xuICAgICAgfVxuICAgIH0pOyAvLyBUT0RPOiByZW5hbWUgdGhlc2UgZmllbGRzIHRvIHNvbWV0aGluZyBtb3JlIG1lYW5pbmdmdWwuXG5cbiAgICB2YXIgdXBkYXRlID0ge1xuICAgICAgdXBkYXRlZEZhbWlsaWVzOiB1cGRhdGVkRmFtaWxpZXMsXG4gICAgICAvLyBGYW1pbGllcyB0aGF0IHdpbGwgcmUtcmVuZGVyIHByZXNlcnZpbmcgc3RhdGVcbiAgICAgIHN0YWxlRmFtaWxpZXM6IHN0YWxlRmFtaWxpZXMgLy8gRmFtaWxpZXMgdGhhdCB3aWxsIGJlIHJlbW91bnRlZFxuXG4gICAgfTtcbiAgICBoZWxwZXJzQnlSZW5kZXJlcklELmZvckVhY2goZnVuY3Rpb24gKGhlbHBlcnMpIHtcbiAgICAgIC8vIEV2ZW4gaWYgdGhlcmUgYXJlIG5vIHJvb3RzLCBzZXQgdGhlIGhhbmRsZXIgb24gZmlyc3QgdXBkYXRlLlxuICAgICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgaWYgKm5ldyogcm9vdHMgYXJlIG1vdW50ZWQsIHRoZXknbGwgdXNlIHRoZSByZXNvbHZlIGhhbmRsZXIuXG4gICAgICBoZWxwZXJzLnNldFJlZnJlc2hIYW5kbGVyKHJlc29sdmVGYW1pbHkpO1xuICAgIH0pO1xuICAgIHZhciBkaWRFcnJvciA9IGZhbHNlO1xuICAgIHZhciBmaXJzdEVycm9yID0gbnVsbDsgLy8gV2Ugc25hcHNob3QgbWFwcyBhbmQgc2V0cyB0aGF0IGFyZSBtdXRhdGVkIGR1cmluZyBjb21taXRzLlxuICAgIC8vIElmIHdlIGRvbid0IGRvIHRoaXMsIHRoZXJlIGlzIGEgcmlzayB0aGV5IHdpbGwgYmUgbXV0YXRlZCB3aGlsZVxuICAgIC8vIHdlIGl0ZXJhdGUgb3ZlciB0aGVtLiBGb3IgZXhhbXBsZSwgdHJ5aW5nIHRvIHJlY292ZXIgYSBmYWlsZWQgcm9vdFxuICAgIC8vIG1heSBjYXVzZSBhbm90aGVyIHJvb3QgdG8gYmUgYWRkZWQgdG8gdGhlIGZhaWxlZCBsaXN0IC0tIGFuIGluZmluaXRlIGxvb3AuXG5cbiAgICB2YXIgZmFpbGVkUm9vdHNTbmFwc2hvdCA9IGNsb25lU2V0KGZhaWxlZFJvb3RzKTtcbiAgICB2YXIgbW91bnRlZFJvb3RzU25hcHNob3QgPSBjbG9uZVNldChtb3VudGVkUm9vdHMpO1xuICAgIHZhciBoZWxwZXJzQnlSb290U25hcHNob3QgPSBjbG9uZU1hcChoZWxwZXJzQnlSb290KTtcbiAgICBmYWlsZWRSb290c1NuYXBzaG90LmZvckVhY2goZnVuY3Rpb24gKHJvb3QpIHtcbiAgICAgIHZhciBoZWxwZXJzID0gaGVscGVyc0J5Um9vdFNuYXBzaG90LmdldChyb290KTtcblxuICAgICAgaWYgKGhlbHBlcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGhlbHBlcnMgZm9yIGEgcm9vdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdCBSZWZyZXNoLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIWZhaWxlZFJvb3RzLmhhcyhyb290KSkgey8vIE5vIGxvbmdlciBmYWlsZWQuXG4gICAgICB9XG5cbiAgICAgIGlmIChyb290RWxlbWVudHMgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJvb3RFbGVtZW50cy5oYXMocm9vdCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB2YXIgZWxlbWVudCA9IHJvb3RFbGVtZW50cy5nZXQocm9vdCk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGhlbHBlcnMuc2NoZWR1bGVSb290KHJvb3QsIGVsZW1lbnQpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmICghZGlkRXJyb3IpIHtcbiAgICAgICAgICBkaWRFcnJvciA9IHRydWU7XG4gICAgICAgICAgZmlyc3RFcnJvciA9IGVycjtcbiAgICAgICAgfSAvLyBLZWVwIHRyeWluZyBvdGhlciByb290cy5cblxuICAgICAgfVxuICAgIH0pO1xuICAgIG1vdW50ZWRSb290c1NuYXBzaG90LmZvckVhY2goZnVuY3Rpb24gKHJvb3QpIHtcbiAgICAgIHZhciBoZWxwZXJzID0gaGVscGVyc0J5Um9vdFNuYXBzaG90LmdldChyb290KTtcblxuICAgICAgaWYgKGhlbHBlcnMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGhlbHBlcnMgZm9yIGEgcm9vdC4gVGhpcyBpcyBhIGJ1ZyBpbiBSZWFjdCBSZWZyZXNoLicpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIW1vdW50ZWRSb290cy5oYXMocm9vdCkpIHsvLyBObyBsb25nZXIgbW91bnRlZC5cbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgaGVscGVycy5zY2hlZHVsZVJlZnJlc2gocm9vdCwgdXBkYXRlKTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoIWRpZEVycm9yKSB7XG4gICAgICAgICAgZGlkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgIGZpcnN0RXJyb3IgPSBlcnI7XG4gICAgICAgIH0gLy8gS2VlcCB0cnlpbmcgb3RoZXIgcm9vdHMuXG5cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChkaWRFcnJvcikge1xuICAgICAgdGhyb3cgZmlyc3RFcnJvcjtcbiAgICB9XG5cbiAgICByZXR1cm4gdXBkYXRlO1xuICB9IGZpbmFsbHkge1xuICAgIGlzUGVyZm9ybWluZ1JlZnJlc2ggPSBmYWxzZTtcbiAgfVxufVxuZnVuY3Rpb24gcmVnaXN0ZXIodHlwZSwgaWQpIHtcbiAge1xuICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0eXBlICE9PSAnZnVuY3Rpb24nICYmIHR5cGVvZiB0eXBlICE9PSAnb2JqZWN0Jykge1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gVGhpcyBjYW4gaGFwcGVuIGluIGFuIGVkZ2UgY2FzZSwgZS5nLiBpZiB3ZSByZWdpc3RlclxuICAgIC8vIHJldHVybiB2YWx1ZSBvZiBhIEhPQyBidXQgaXQgcmV0dXJucyBhIGNhY2hlZCBjb21wb25lbnQuXG4gICAgLy8gSWdub3JlIGFueXRoaW5nIGJ1dCB0aGUgZmlyc3QgcmVnaXN0cmF0aW9uIGZvciBlYWNoIHR5cGUuXG5cblxuICAgIGlmIChhbGxGYW1pbGllc0J5VHlwZS5oYXModHlwZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9IC8vIENyZWF0ZSBmYW1pbHkgb3IgcmVtZW1iZXIgdG8gdXBkYXRlIGl0LlxuICAgIC8vIE5vbmUgb2YgdGhpcyBib29ra2VlcGluZyBhZmZlY3RzIHJlY29uY2lsaWF0aW9uXG4gICAgLy8gdW50aWwgdGhlIGZpcnN0IHBlcmZvcm1SZWFjdFJlZnJlc2goKSBjYWxsIGFib3ZlLlxuXG5cbiAgICB2YXIgZmFtaWx5ID0gYWxsRmFtaWxpZXNCeUlELmdldChpZCk7XG5cbiAgICBpZiAoZmFtaWx5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGZhbWlseSA9IHtcbiAgICAgICAgY3VycmVudDogdHlwZVxuICAgICAgfTtcbiAgICAgIGFsbEZhbWlsaWVzQnlJRC5zZXQoaWQsIGZhbWlseSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBlbmRpbmdVcGRhdGVzLnB1c2goW2ZhbWlseSwgdHlwZV0pO1xuICAgIH1cblxuICAgIGFsbEZhbWlsaWVzQnlUeXBlLnNldCh0eXBlLCBmYW1pbHkpOyAvLyBWaXNpdCBpbm5lciB0eXBlcyBiZWNhdXNlIHdlIG1pZ2h0IG5vdCBoYXZlIHJlZ2lzdGVyZWQgdGhlbS5cblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCkge1xuICAgICAgc3dpdGNoIChnZXRQcm9wZXJ0eSh0eXBlLCAnJCR0eXBlb2YnKSkge1xuICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgcmVnaXN0ZXIodHlwZS5yZW5kZXIsIGlkICsgJyRyZW5kZXInKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICByZWdpc3Rlcih0eXBlLnR5cGUsIGlkICsgJyR0eXBlJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5mdW5jdGlvbiBzZXRTaWduYXR1cmUodHlwZSwga2V5KSB7XG4gIHZhciBmb3JjZVJlc2V0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiBmYWxzZTtcbiAgdmFyIGdldEN1c3RvbUhvb2tzID0gYXJndW1lbnRzLmxlbmd0aCA+IDMgPyBhcmd1bWVudHNbM10gOiB1bmRlZmluZWQ7XG5cbiAge1xuICAgIGlmICghYWxsU2lnbmF0dXJlc0J5VHlwZS5oYXModHlwZSkpIHtcbiAgICAgIGFsbFNpZ25hdHVyZXNCeVR5cGUuc2V0KHR5cGUsIHtcbiAgICAgICAgZm9yY2VSZXNldDogZm9yY2VSZXNldCxcbiAgICAgICAgb3duS2V5OiBrZXksXG4gICAgICAgIGZ1bGxLZXk6IG51bGwsXG4gICAgICAgIGdldEN1c3RvbUhvb2tzOiBnZXRDdXN0b21Ib29rcyB8fCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IC8vIFZpc2l0IGlubmVyIHR5cGVzIGJlY2F1c2Ugd2UgbWlnaHQgbm90IGhhdmUgc2lnbmVkIHRoZW0uXG5cblxuICAgIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCkge1xuICAgICAgc3dpdGNoIChnZXRQcm9wZXJ0eSh0eXBlLCAnJCR0eXBlb2YnKSkge1xuICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgc2V0U2lnbmF0dXJlKHR5cGUucmVuZGVyLCBrZXksIGZvcmNlUmVzZXQsIGdldEN1c3RvbUhvb2tzKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIFJFQUNUX01FTU9fVFlQRTpcbiAgICAgICAgICBzZXRTaWduYXR1cmUodHlwZS50eXBlLCBrZXksIGZvcmNlUmVzZXQsIGdldEN1c3RvbUhvb2tzKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0gLy8gVGhpcyBpcyBsYXppbHkgY2FsbGVkIGR1cmluZyBmaXJzdCByZW5kZXIgZm9yIGEgdHlwZS5cbi8vIEl0IGNhcHR1cmVzIEhvb2sgbGlzdCBhdCB0aGF0IHRpbWUgc28gaW5saW5lIHJlcXVpcmVzIGRvbid0IGJyZWFrIGNvbXBhcmlzb25zLlxuXG5mdW5jdGlvbiBjb2xsZWN0Q3VzdG9tSG9va3NGb3JTaWduYXR1cmUodHlwZSkge1xuICB7XG4gICAgdmFyIHNpZ25hdHVyZSA9IGFsbFNpZ25hdHVyZXNCeVR5cGUuZ2V0KHR5cGUpO1xuXG4gICAgaWYgKHNpZ25hdHVyZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb21wdXRlRnVsbEtleShzaWduYXR1cmUpO1xuICAgIH1cbiAgfVxufVxuZnVuY3Rpb24gZ2V0RmFtaWx5QnlJRChpZCkge1xuICB7XG4gICAgcmV0dXJuIGFsbEZhbWlsaWVzQnlJRC5nZXQoaWQpO1xuICB9XG59XG5mdW5jdGlvbiBnZXRGYW1pbHlCeVR5cGUodHlwZSkge1xuICB7XG4gICAgcmV0dXJuIGFsbEZhbWlsaWVzQnlUeXBlLmdldCh0eXBlKTtcbiAgfVxufVxuZnVuY3Rpb24gZmluZEFmZmVjdGVkSG9zdEluc3RhbmNlcyhmYW1pbGllcykge1xuICB7XG4gICAgdmFyIGFmZmVjdGVkSW5zdGFuY2VzID0gbmV3IFNldCgpO1xuICAgIG1vdW50ZWRSb290cy5mb3JFYWNoKGZ1bmN0aW9uIChyb290KSB7XG4gICAgICB2YXIgaGVscGVycyA9IGhlbHBlcnNCeVJvb3QuZ2V0KHJvb3QpO1xuXG4gICAgICBpZiAoaGVscGVycyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IGZpbmQgaGVscGVycyBmb3IgYSByb290LiBUaGlzIGlzIGEgYnVnIGluIFJlYWN0IFJlZnJlc2guJyk7XG4gICAgICB9XG5cbiAgICAgIHZhciBpbnN0YW5jZXNGb3JSb290ID0gaGVscGVycy5maW5kSG9zdEluc3RhbmNlc0ZvclJlZnJlc2gocm9vdCwgZmFtaWxpZXMpO1xuICAgICAgaW5zdGFuY2VzRm9yUm9vdC5mb3JFYWNoKGZ1bmN0aW9uIChpbnN0KSB7XG4gICAgICAgIGFmZmVjdGVkSW5zdGFuY2VzLmFkZChpbnN0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBhZmZlY3RlZEluc3RhbmNlcztcbiAgfVxufVxuZnVuY3Rpb24gaW5qZWN0SW50b0dsb2JhbEhvb2soZ2xvYmFsT2JqZWN0KSB7XG4gIHtcbiAgICAvLyBGb3IgUmVhY3QgTmF0aXZlLCB0aGUgZ2xvYmFsIGhvb2sgd2lsbCBiZSBzZXQgdXAgYnkgcmVxdWlyZSgncmVhY3QtZGV2dG9vbHMtY29yZScpLlxuICAgIC8vIFRoYXQgY29kZSB3aWxsIHJ1biBiZWZvcmUgdXMuIFNvIHdlIG5lZWQgdG8gbW9ua2V5cGF0Y2ggZnVuY3Rpb25zIG9uIGV4aXN0aW5nIGhvb2suXG4gICAgLy8gRm9yIFJlYWN0IFdlYiwgdGhlIGdsb2JhbCBob29rIHdpbGwgYmUgc2V0IHVwIGJ5IHRoZSBleHRlbnNpb24uXG4gICAgLy8gVGhpcyB3aWxsIGFsc28gcnVuIGJlZm9yZSB1cy5cbiAgICB2YXIgaG9vayA9IGdsb2JhbE9iamVjdC5fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX187XG5cbiAgICBpZiAoaG9vayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBIb3dldmVyLCBpZiB0aGVyZSBpcyBubyBEZXZUb29scyBleHRlbnNpb24sIHdlJ2xsIG5lZWQgdG8gc2V0IHVwIHRoZSBnbG9iYWwgaG9vayBvdXJzZWx2ZXMuXG4gICAgICAvLyBOb3RlIHRoYXQgaW4gdGhpcyBjYXNlIGl0J3MgaW1wb3J0YW50IHRoYXQgcmVuZGVyZXIgY29kZSBydW5zICphZnRlciogdGhpcyBtZXRob2QgY2FsbC5cbiAgICAgIC8vIE90aGVyd2lzZSwgdGhlIHJlbmRlcmVyIHdpbGwgdGhpbmsgdGhhdCB0aGVyZSBpcyBubyBnbG9iYWwgaG9vaywgYW5kIHdvbid0IGRvIHRoZSBpbmplY3Rpb24uXG4gICAgICB2YXIgbmV4dElEID0gMDtcbiAgICAgIGdsb2JhbE9iamVjdC5fX1JFQUNUX0RFVlRPT0xTX0dMT0JBTF9IT09LX18gPSBob29rID0ge1xuICAgICAgICByZW5kZXJlcnM6IG5ldyBNYXAoKSxcbiAgICAgICAgc3VwcG9ydHNGaWJlcjogdHJ1ZSxcbiAgICAgICAgaW5qZWN0OiBmdW5jdGlvbiAoaW5qZWN0ZWQpIHtcbiAgICAgICAgICByZXR1cm4gbmV4dElEKys7XG4gICAgICAgIH0sXG4gICAgICAgIG9uU2NoZWR1bGVGaWJlclJvb3Q6IGZ1bmN0aW9uIChpZCwgcm9vdCwgY2hpbGRyZW4pIHt9LFxuICAgICAgICBvbkNvbW1pdEZpYmVyUm9vdDogZnVuY3Rpb24gKGlkLCByb290LCBtYXliZVByaW9yaXR5TGV2ZWwsIGRpZEVycm9yKSB7fSxcbiAgICAgICAgb25Db21taXRGaWJlclVubW91bnQ6IGZ1bmN0aW9uICgpIHt9XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChob29rLmlzRGlzYWJsZWQpIHtcbiAgICAgIC8vIFRoaXMgaXNuJ3QgYSByZWFsIHByb3BlcnR5IG9uIHRoZSBob29rLCBidXQgaXQgY2FuIGJlIHNldCB0byBvcHQgb3V0XG4gICAgICAvLyBvZiBEZXZUb29scyBpbnRlZ3JhdGlvbiBhbmQgYXNzb2NpYXRlZCB3YXJuaW5ncyBhbmQgbG9ncy5cbiAgICAgIC8vIFVzaW5nIGNvbnNvbGVbJ3dhcm4nXSB0byBldmFkZSBCYWJlbCBhbmQgRVNMaW50XG4gICAgICBjb25zb2xlWyd3YXJuJ10oJ1NvbWV0aGluZyBoYXMgc2hpbW1lZCB0aGUgUmVhY3QgRGV2VG9vbHMgZ2xvYmFsIGhvb2sgKF9fUkVBQ1RfREVWVE9PTFNfR0xPQkFMX0hPT0tfXykuICcgKyAnRmFzdCBSZWZyZXNoIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggdGhpcyBzaGltIGFuZCB3aWxsIGJlIGRpc2FibGVkLicpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gLy8gSGVyZSwgd2UganVzdCB3YW50IHRvIGdldCBhIHJlZmVyZW5jZSB0byBzY2hlZHVsZVJlZnJlc2guXG5cblxuICAgIHZhciBvbGRJbmplY3QgPSBob29rLmluamVjdDtcblxuICAgIGhvb2suaW5qZWN0ID0gZnVuY3Rpb24gKGluamVjdGVkKSB7XG4gICAgICB2YXIgaWQgPSBvbGRJbmplY3QuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblxuICAgICAgaWYgKHR5cGVvZiBpbmplY3RlZC5zY2hlZHVsZVJlZnJlc2ggPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGluamVjdGVkLnNldFJlZnJlc2hIYW5kbGVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIC8vIFRoaXMgdmVyc2lvbiBzdXBwb3J0cyBSZWFjdCBSZWZyZXNoLlxuICAgICAgICBoZWxwZXJzQnlSZW5kZXJlcklELnNldChpZCwgaW5qZWN0ZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaWQ7XG4gICAgfTsgLy8gRG8gdGhlIHNhbWUgZm9yIGFueSBhbHJlYWR5IGluamVjdGVkIHJvb3RzLlxuICAgIC8vIFRoaXMgaXMgdXNlZnVsIGlmIFJlYWN0RE9NIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xNzYyNlxuXG5cbiAgICBob29rLnJlbmRlcmVycy5mb3JFYWNoKGZ1bmN0aW9uIChpbmplY3RlZCwgaWQpIHtcbiAgICAgIGlmICh0eXBlb2YgaW5qZWN0ZWQuc2NoZWR1bGVSZWZyZXNoID09PSAnZnVuY3Rpb24nICYmIHR5cGVvZiBpbmplY3RlZC5zZXRSZWZyZXNoSGFuZGxlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBUaGlzIHZlcnNpb24gc3VwcG9ydHMgUmVhY3QgUmVmcmVzaC5cbiAgICAgICAgaGVscGVyc0J5UmVuZGVyZXJJRC5zZXQoaWQsIGluamVjdGVkKTtcbiAgICAgIH1cbiAgICB9KTsgLy8gV2UgYWxzbyB3YW50IHRvIHRyYWNrIGN1cnJlbnRseSBtb3VudGVkIHJvb3RzLlxuXG4gICAgdmFyIG9sZE9uQ29tbWl0RmliZXJSb290ID0gaG9vay5vbkNvbW1pdEZpYmVyUm9vdDtcblxuICAgIHZhciBvbGRPblNjaGVkdWxlRmliZXJSb290ID0gaG9vay5vblNjaGVkdWxlRmliZXJSb290IHx8IGZ1bmN0aW9uICgpIHt9O1xuXG4gICAgaG9vay5vblNjaGVkdWxlRmliZXJSb290ID0gZnVuY3Rpb24gKGlkLCByb290LCBjaGlsZHJlbikge1xuICAgICAgaWYgKCFpc1BlcmZvcm1pbmdSZWZyZXNoKSB7XG4gICAgICAgIC8vIElmIGl0IHdhcyBpbnRlbnRpb25hbGx5IHNjaGVkdWxlZCwgZG9uJ3QgYXR0ZW1wdCB0byByZXN0b3JlLlxuICAgICAgICAvLyBUaGlzIGluY2x1ZGVzIGludGVudGlvbmFsbHkgc2NoZWR1bGVkIHVubW91bnRzLlxuICAgICAgICBmYWlsZWRSb290cy5kZWxldGUocm9vdCk7XG5cbiAgICAgICAgaWYgKHJvb3RFbGVtZW50cyAhPT0gbnVsbCkge1xuICAgICAgICAgIHJvb3RFbGVtZW50cy5zZXQocm9vdCwgY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvbGRPblNjaGVkdWxlRmliZXJSb290LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgfTtcblxuICAgIGhvb2sub25Db21taXRGaWJlclJvb3QgPSBmdW5jdGlvbiAoaWQsIHJvb3QsIG1heWJlUHJpb3JpdHlMZXZlbCwgZGlkRXJyb3IpIHtcbiAgICAgIHZhciBoZWxwZXJzID0gaGVscGVyc0J5UmVuZGVyZXJJRC5nZXQoaWQpO1xuXG4gICAgICBpZiAoaGVscGVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGhlbHBlcnNCeVJvb3Quc2V0KHJvb3QsIGhlbHBlcnMpO1xuICAgICAgICB2YXIgY3VycmVudCA9IHJvb3QuY3VycmVudDtcbiAgICAgICAgdmFyIGFsdGVybmF0ZSA9IGN1cnJlbnQuYWx0ZXJuYXRlOyAvLyBXZSBuZWVkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoaXMgcm9vdCBoYXMganVzdCAodW4pbW91bnRlZC5cbiAgICAgICAgLy8gVGhpcyBsb2dpYyBpcyBjb3B5LXBhc3RlZCBmcm9tIHNpbWlsYXIgbG9naWMgaW4gdGhlIERldlRvb2xzIGJhY2tlbmQuXG4gICAgICAgIC8vIElmIHRoaXMgYnJlYWtzIHdpdGggc29tZSByZWZhY3RvcmluZywgeW91J2xsIHdhbnQgdG8gdXBkYXRlIERldlRvb2xzIHRvby5cblxuICAgICAgICBpZiAoYWx0ZXJuYXRlICE9PSBudWxsKSB7XG4gICAgICAgICAgdmFyIHdhc01vdW50ZWQgPSBhbHRlcm5hdGUubWVtb2l6ZWRTdGF0ZSAhPSBudWxsICYmIGFsdGVybmF0ZS5tZW1vaXplZFN0YXRlLmVsZW1lbnQgIT0gbnVsbCAmJiBtb3VudGVkUm9vdHMuaGFzKHJvb3QpO1xuICAgICAgICAgIHZhciBpc01vdW50ZWQgPSBjdXJyZW50Lm1lbW9pemVkU3RhdGUgIT0gbnVsbCAmJiBjdXJyZW50Lm1lbW9pemVkU3RhdGUuZWxlbWVudCAhPSBudWxsO1xuXG4gICAgICAgICAgaWYgKCF3YXNNb3VudGVkICYmIGlzTW91bnRlZCkge1xuICAgICAgICAgICAgLy8gTW91bnQgYSBuZXcgcm9vdC5cbiAgICAgICAgICAgIG1vdW50ZWRSb290cy5hZGQocm9vdCk7XG4gICAgICAgICAgICBmYWlsZWRSb290cy5kZWxldGUocm9vdCk7XG4gICAgICAgICAgfSBlbHNlIGlmICh3YXNNb3VudGVkICYmIGlzTW91bnRlZCkgOyBlbHNlIGlmICh3YXNNb3VudGVkICYmICFpc01vdW50ZWQpIHtcbiAgICAgICAgICAgIC8vIFVubW91bnQgYW4gZXhpc3Rpbmcgcm9vdC5cbiAgICAgICAgICAgIG1vdW50ZWRSb290cy5kZWxldGUocm9vdCk7XG5cbiAgICAgICAgICAgIGlmIChkaWRFcnJvcikge1xuICAgICAgICAgICAgICAvLyBXZSdsbCByZW1vdW50IGl0IG9uIGZ1dHVyZSBlZGl0cy5cbiAgICAgICAgICAgICAgZmFpbGVkUm9vdHMuYWRkKHJvb3QpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaGVscGVyc0J5Um9vdC5kZWxldGUocm9vdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghd2FzTW91bnRlZCAmJiAhaXNNb3VudGVkKSB7XG4gICAgICAgICAgICBpZiAoZGlkRXJyb3IpIHtcbiAgICAgICAgICAgICAgLy8gV2UnbGwgcmVtb3VudCBpdCBvbiBmdXR1cmUgZWRpdHMuXG4gICAgICAgICAgICAgIGZhaWxlZFJvb3RzLmFkZChyb290KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gTW91bnQgYSBuZXcgcm9vdC5cbiAgICAgICAgICBtb3VudGVkUm9vdHMuYWRkKHJvb3QpO1xuICAgICAgICB9XG4gICAgICB9IC8vIEFsd2F5cyBjYWxsIHRoZSBkZWNvcmF0ZWQgRGV2VG9vbHMgaG9vay5cblxuXG4gICAgICByZXR1cm4gb2xkT25Db21taXRGaWJlclJvb3QuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9O1xuICB9XG59XG5mdW5jdGlvbiBoYXNVbnJlY292ZXJhYmxlRXJyb3JzKCkge1xuICAvLyBUT0RPOiBkZWxldGUgdGhpcyBhZnRlciByZW1vdmluZyBkZXBlbmRlbmN5IGluIFJOLlxuICByZXR1cm4gZmFsc2U7XG59IC8vIEV4cG9zZWQgZm9yIHRlc3RpbmcuXG5cbmZ1bmN0aW9uIF9nZXRNb3VudGVkUm9vdENvdW50KCkge1xuICB7XG4gICAgcmV0dXJuIG1vdW50ZWRSb290cy5zaXplO1xuICB9XG59IC8vIFRoaXMgaXMgYSB3cmFwcGVyIG92ZXIgbW9yZSBwcmltaXRpdmUgZnVuY3Rpb25zIGZvciBzZXR0aW5nIHNpZ25hdHVyZS5cbi8vIFNpZ25hdHVyZXMgbGV0IHVzIGRlY2lkZSB3aGV0aGVyIHRoZSBIb29rIG9yZGVyIGhhcyBjaGFuZ2VkIG9uIHJlZnJlc2guXG4vL1xuLy8gVGhpcyBmdW5jdGlvbiBpcyBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIGEgdHJhbnNmb3JtIHRhcmdldCwgZS5nLjpcbi8vIHZhciBfcyA9IGNyZWF0ZVNpZ25hdHVyZUZ1bmN0aW9uRm9yVHJhbnNmb3JtKClcbi8vXG4vLyBmdW5jdGlvbiBIZWxsbygpIHtcbi8vICAgY29uc3QgW2Zvbywgc2V0Rm9vXSA9IHVzZVN0YXRlKDApO1xuLy8gICBjb25zdCB2YWx1ZSA9IHVzZUN1c3RvbUhvb2soKTtcbi8vICAgX3MoKTsgLyogQ2FsbCB3aXRob3V0IGFyZ3VtZW50cyB0cmlnZ2VycyBjb2xsZWN0aW5nIHRoZSBjdXN0b20gSG9vayBsaXN0LlxuLy8gICAgICAgICAgKiBUaGlzIGRvZXNuJ3QgaGFwcGVuIGR1cmluZyB0aGUgbW9kdWxlIGV2YWx1YXRpb24gYmVjYXVzZSB3ZVxuLy8gICAgICAgICAgKiBkb24ndCB3YW50IHRvIGNoYW5nZSB0aGUgbW9kdWxlIG9yZGVyIHdpdGggaW5saW5lIHJlcXVpcmVzLlxuLy8gICAgICAgICAgKiBOZXh0IGNhbGxzIGFyZSBub29wcy4gKi9cbi8vICAgcmV0dXJuIDxoMT5IaTwvaDE+O1xuLy8gfVxuLy9cbi8vIC8qIENhbGwgd2l0aCBhcmd1bWVudHMgYXR0YWNoZXMgdGhlIHNpZ25hdHVyZSB0byB0aGUgdHlwZTogKi9cbi8vIF9zKFxuLy8gICBIZWxsbyxcbi8vICAgJ3VzZVN0YXRle1tmb28sIHNldEZvb119KDApJyxcbi8vICAgKCkgPT4gW3VzZUN1c3RvbUhvb2tdLCAvKiBMYXp5IHRvIGF2b2lkIHRyaWdnZXJpbmcgaW5saW5lIHJlcXVpcmVzICovXG4vLyApO1xuXG5mdW5jdGlvbiBjcmVhdGVTaWduYXR1cmVGdW5jdGlvbkZvclRyYW5zZm9ybSgpIHtcbiAge1xuICAgIHZhciBzYXZlZFR5cGU7XG4gICAgdmFyIGhhc0N1c3RvbUhvb2tzO1xuICAgIHZhciBkaWRDb2xsZWN0SG9va3MgPSBmYWxzZTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHR5cGUsIGtleSwgZm9yY2VSZXNldCwgZ2V0Q3VzdG9tSG9va3MpIHtcbiAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyBXZSdyZSBpbiB0aGUgaW5pdGlhbCBwaGFzZSB0aGF0IGFzc29jaWF0ZXMgc2lnbmF0dXJlc1xuICAgICAgICAvLyB3aXRoIHRoZSBmdW5jdGlvbnMuIE5vdGUgdGhpcyBtYXkgYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzXG4gICAgICAgIC8vIGluIEhPQyBjaGFpbnMgbGlrZSBfcyhob2MxKF9zKGhvYzIoX3MoYWN0dWFsRnVuY3Rpb24pKSkpKS5cbiAgICAgICAgaWYgKCFzYXZlZFR5cGUpIHtcbiAgICAgICAgICAvLyBXZSdyZSBpbiB0aGUgaW5uZXJtb3N0IGNhbGwsIHNvIHRoaXMgaXMgdGhlIGFjdHVhbCB0eXBlLlxuICAgICAgICAgIHNhdmVkVHlwZSA9IHR5cGU7XG4gICAgICAgICAgaGFzQ3VzdG9tSG9va3MgPSB0eXBlb2YgZ2V0Q3VzdG9tSG9va3MgPT09ICdmdW5jdGlvbic7XG4gICAgICAgIH0gLy8gU2V0IHRoZSBzaWduYXR1cmUgZm9yIGFsbCB0eXBlcyAoZXZlbiB3cmFwcGVycyEpIGluIGNhc2VcbiAgICAgICAgLy8gdGhleSBoYXZlIG5vIHNpZ25hdHVyZXMgb2YgdGhlaXIgb3duLiBUaGlzIGlzIHRvIHByZXZlbnRcbiAgICAgICAgLy8gcHJvYmxlbXMgbGlrZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzIwNDE3LlxuXG5cbiAgICAgICAgaWYgKHR5cGUgIT0gbnVsbCAmJiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicgfHwgdHlwZW9mIHR5cGUgPT09ICdvYmplY3QnKSkge1xuICAgICAgICAgIHNldFNpZ25hdHVyZSh0eXBlLCBrZXksIGZvcmNlUmVzZXQsIGdldEN1c3RvbUhvb2tzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gV2UncmUgaW4gdGhlIF9zKCkgY2FsbCB3aXRob3V0IGFyZ3VtZW50cywgd2hpY2ggbWVhbnNcbiAgICAgICAgLy8gdGhpcyBpcyB0aGUgdGltZSB0byBjb2xsZWN0IGN1c3RvbSBIb29rIHNpZ25hdHVyZXMuXG4gICAgICAgIC8vIE9ubHkgZG8gdGhpcyBvbmNlLiBUaGlzIHBhdGggaXMgaG90IGFuZCBydW5zICppbnNpZGUqIGV2ZXJ5IHJlbmRlciFcbiAgICAgICAgaWYgKCFkaWRDb2xsZWN0SG9va3MgJiYgaGFzQ3VzdG9tSG9va3MpIHtcbiAgICAgICAgICBkaWRDb2xsZWN0SG9va3MgPSB0cnVlO1xuICAgICAgICAgIGNvbGxlY3RDdXN0b21Ib29rc0ZvclNpZ25hdHVyZShzYXZlZFR5cGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuZnVuY3Rpb24gaXNMaWtlbHlDb21wb25lbnRUeXBlKHR5cGUpIHtcbiAge1xuICAgIHN3aXRjaCAodHlwZW9mIHR5cGUpIHtcbiAgICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICAgICAge1xuICAgICAgICAgIC8vIEZpcnN0LCBkZWFsIHdpdGggY2xhc3Nlcy5cbiAgICAgICAgICBpZiAodHlwZS5wcm90b3R5cGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKHR5cGUucHJvdG90eXBlLmlzUmVhY3RDb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgLy8gUmVhY3QgY2xhc3MuXG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgb3duTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0eXBlLnByb3RvdHlwZSk7XG5cbiAgICAgICAgICAgIGlmIChvd25OYW1lcy5sZW5ndGggPiAxIHx8IG93bk5hbWVzWzBdICE9PSAnY29uc3RydWN0b3InKSB7XG4gICAgICAgICAgICAgIC8vIFRoaXMgbG9va3MgbGlrZSBhIGNsYXNzLlxuICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wcm90b1xuXG5cbiAgICAgICAgICAgIGlmICh0eXBlLnByb3RvdHlwZS5fX3Byb3RvX18gIT09IE9iamVjdC5wcm90b3R5cGUpIHtcbiAgICAgICAgICAgICAgLy8gSXQgaGFzIGEgc3VwZXJjbGFzcy5cbiAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSAvLyBQYXNzIHRocm91Z2guXG4gICAgICAgICAgICAvLyBUaGlzIGxvb2tzIGxpa2UgYSByZWd1bGFyIGZ1bmN0aW9uIHdpdGggZW1wdHkgcHJvdG90eXBlLlxuXG4gICAgICAgICAgfSAvLyBGb3IgcGxhaW4gZnVuY3Rpb25zIGFuZCBhcnJvd3MsIHVzZSBuYW1lIGFzIGEgaGV1cmlzdGljLlxuXG5cbiAgICAgICAgICB2YXIgbmFtZSA9IHR5cGUubmFtZSB8fCB0eXBlLmRpc3BsYXlOYW1lO1xuICAgICAgICAgIHJldHVybiB0eXBlb2YgbmFtZSA9PT0gJ3N0cmluZycgJiYgL15bQS1aXS8udGVzdChuYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICB7XG4gICAgICAgICAgaWYgKHR5cGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgc3dpdGNoIChnZXRQcm9wZXJ0eSh0eXBlLCAnJCR0eXBlb2YnKSkge1xuICAgICAgICAgICAgICBjYXNlIFJFQUNUX0ZPUldBUkRfUkVGX1RZUEU6XG4gICAgICAgICAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICAgICAgICAgIC8vIERlZmluaXRlbHkgUmVhY3QgY29tcG9uZW50cy5cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcblxuICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnRzLl9nZXRNb3VudGVkUm9vdENvdW50ID0gX2dldE1vdW50ZWRSb290Q291bnQ7XG5leHBvcnRzLmNvbGxlY3RDdXN0b21Ib29rc0ZvclNpZ25hdHVyZSA9IGNvbGxlY3RDdXN0b21Ib29rc0ZvclNpZ25hdHVyZTtcbmV4cG9ydHMuY3JlYXRlU2lnbmF0dXJlRnVuY3Rpb25Gb3JUcmFuc2Zvcm0gPSBjcmVhdGVTaWduYXR1cmVGdW5jdGlvbkZvclRyYW5zZm9ybTtcbmV4cG9ydHMuZmluZEFmZmVjdGVkSG9zdEluc3RhbmNlcyA9IGZpbmRBZmZlY3RlZEhvc3RJbnN0YW5jZXM7XG5leHBvcnRzLmdldEZhbWlseUJ5SUQgPSBnZXRGYW1pbHlCeUlEO1xuZXhwb3J0cy5nZXRGYW1pbHlCeVR5cGUgPSBnZXRGYW1pbHlCeVR5cGU7XG5leHBvcnRzLmhhc1VucmVjb3ZlcmFibGVFcnJvcnMgPSBoYXNVbnJlY292ZXJhYmxlRXJyb3JzO1xuZXhwb3J0cy5pbmplY3RJbnRvR2xvYmFsSG9vayA9IGluamVjdEludG9HbG9iYWxIb29rO1xuZXhwb3J0cy5pc0xpa2VseUNvbXBvbmVudFR5cGUgPSBpc0xpa2VseUNvbXBvbmVudFR5cGU7XG5leHBvcnRzLnBlcmZvcm1SZWFjdFJlZnJlc2ggPSBwZXJmb3JtUmVhY3RSZWZyZXNoO1xuZXhwb3J0cy5yZWdpc3RlciA9IHJlZ2lzdGVyO1xuZXhwb3J0cy5zZXRTaWduYXR1cmUgPSBzZXRTaWduYXR1cmU7XG4gIH0pKCk7XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.development.js\n")); + +/***/ }), + +/***/ "./node_modules/next/dist/compiled/react-refresh/runtime.js": +/*!******************************************************************!*\ + !*** ./node_modules/next/dist/compiled/react-refresh/runtime.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-refresh-runtime.development.js */ \"./node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3JlYWN0LXJlZnJlc2gvcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYixJQUFJLEtBQXFDLEVBQUUsRUFFMUMsQ0FBQztBQUNGLEVBQUUsa0xBQXNFO0FBQ3hFIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC1yZWZyZXNoL3J1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJykge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LXJlZnJlc2gtcnVudGltZS5wcm9kdWN0aW9uLm1pbi5qcycpO1xufSBlbHNlIHtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2Nqcy9yZWFjdC1yZWZyZXNoLXJ1bnRpbWUuZGV2ZWxvcG1lbnQuanMnKTtcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/next/dist/compiled/react-refresh/runtime.js\n")); + +/***/ }) + +}, +/******/ __webpack_require__ => { // webpackRuntimeModules +/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) +/******/ var __webpack_exports__ = (__webpack_exec__("./node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js")); +/******/ _N_E = __webpack_exports__; +/******/ } +]); \ No newline at end of file diff --git a/.next/static/chunks/webpack.js b/.next/static/chunks/webpack.js index d061b43f..bc96c2cb 100644 --- a/.next/static/chunks/webpack.js +++ b/.next/static/chunks/webpack.js @@ -89,6 +89,18 @@ /******/ }; /******/ })(); /******/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ /******/ /* webpack/runtime/create fake namespace object */ /******/ (() => { /******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__); @@ -178,7 +190,7 @@ /******/ /******/ /* webpack/runtime/getFullHash */ /******/ (() => { -/******/ __webpack_require__.h = () => ("e53ddb03c3e18945") +/******/ __webpack_require__.h = () => ("35acde78c9b1f17c") /******/ })(); /******/ /******/ /* webpack/runtime/global */ diff --git a/.next/static/development/_buildManifest.js b/.next/static/development/_buildManifest.js index fda46a47..395381e8 100644 --- a/.next/static/development/_buildManifest.js +++ b/.next/static/development/_buildManifest.js @@ -1 +1 @@ -self.__BUILD_MANIFEST = (function(a){return {__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:a,__routerFilterDynamic:a,sortedPages:["\u002F_app"]}}(void 0));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file +self.__BUILD_MANIFEST = (function(a){return {__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:a,__routerFilterDynamic:a,"/_error":["static\u002Fchunks\u002Fpages\u002F_error.js"],sortedPages:["\u002F_app","\u002F_error"]}}(void 0));self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB() \ No newline at end of file diff --git a/.next/static/webpack/18279f93be89f6d1.webpack.hot-update.json b/.next/static/webpack/18279f93be89f6d1.webpack.hot-update.json new file mode 100644 index 00000000..f487022f --- /dev/null +++ b/.next/static/webpack/18279f93be89f6d1.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["app/page","webpack"],"r":["app/_not-found/page"],"m":["(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!","(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js","(app-pages-browser)/./node_modules/next/dist/client/components/not-found-error.js"]} \ No newline at end of file diff --git a/.next/static/webpack/app/page.18279f93be89f6d1.hot-update.js b/.next/static/webpack/app/page.18279f93be89f6d1.hot-update.js new file mode 100644 index 00000000..2f560028 --- /dev/null +++ b/.next/static/webpack/app/page.18279f93be89f6d1.hot-update.js @@ -0,0 +1,2760 @@ +"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/). + */ +self["webpackHotUpdate_N_E"]("app/page",{ + +/***/ "(app-pages-browser)/./src/app/page.tsx": +/*!**************************!*\ + !*** ./src/app/page.tsx ***! + \**************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ HeartbeatMonitor)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! framer-motion */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\");\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! framer-motion */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/activity.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/plus.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/server.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trending-up.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/circle-alert.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/globe.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/list.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/layout-grid.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/external-link.js\");\n/* harmony import */ var _barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! __barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!lucide-react */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/trash-2.js\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\nfunction HeartbeatMonitor() {\n _s();\n const [apps, setApps] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [status, setStatus] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)([]);\n const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [refreshing, setRefreshing] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [showAddApp, setShowAddApp] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [viewMode, setViewMode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"grid\");\n const [newApp, setNewApp] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n name: \"\",\n description: \"\",\n url: \"http://localhost:\",\n port: 3000,\n path: \"\",\n command: \"npm run dev\",\n category: \"Other\",\n color: \"#22C55E\",\n enabled: true\n });\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"HeartbeatMonitor.useEffect\": ()=>{\n fetchData();\n const interval = setInterval(fetchData, 30000);\n return ({\n \"HeartbeatMonitor.useEffect\": ()=>clearInterval(interval)\n })[\"HeartbeatMonitor.useEffect\"];\n }\n }[\"HeartbeatMonitor.useEffect\"], []);\n async function fetchData() {\n try {\n const res = await fetch(\"/api/monitor\");\n const data = await res.json();\n setApps(data.apps || []);\n setStatus(data.status || []);\n } catch (err) {\n console.error(\"Failed to fetch data:\", err);\n } finally{\n setLoading(false);\n setRefreshing(false);\n }\n }\n async function handleRefresh() {\n setRefreshing(true);\n await fetchData();\n }\n async function addApp(e) {\n e.preventDefault();\n if (!newApp.name || !newApp.url) return;\n await fetch(\"/api/monitor\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n action: \"addApp\",\n app: newApp\n })\n });\n setShowAddApp(false);\n setNewApp({\n name: \"\",\n description: \"\",\n url: \"http://localhost:\",\n port: 3000,\n path: \"\",\n command: \"npm run dev\",\n category: \"Other\",\n color: \"#22C55E\",\n enabled: true\n });\n fetchData();\n }\n async function deleteApp(id) {\n if (!confirm(\"Delete this app?\")) return;\n await fetch(\"/api/monitor\", {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n action: \"deleteApp\",\n id\n })\n });\n fetchData();\n }\n function getAppStatus(appId) {\n const appStatus = status.filter((s)=>s.appId === appId);\n const latest = appStatus[appStatus.length - 1];\n const isUp = (latest === null || latest === void 0 ? void 0 : latest.status) === \"up\";\n const uptime = appStatus.length > 0 ? Math.round(appStatus.filter((s)=>s.status === \"up\").length / appStatus.length * 100) : 100;\n const avgResponseTime = appStatus.length > 0 ? Math.round(appStatus.filter((s)=>s.responseTime).reduce((acc, s)=>acc + (s.responseTime || 0), 0) / appStatus.filter((s)=>s.responseTime).length) || 0 : 0;\n const last24Hours = appStatus.filter((s)=>{\n const hoursAgo = (Date.now() - new Date(s.timestamp).getTime()) / (1000 * 60 * 60);\n return hoursAgo <= 24;\n });\n return {\n latest,\n isUp,\n uptime,\n avgResponseTime,\n history: last24Hours\n };\n }\n const stats = {\n total: apps.length,\n online: apps.filter((app)=>getAppStatus(app.id).isUp).length,\n offline: apps.filter((app)=>!getAppStatus(app.id).isUp).length,\n avgUptime: apps.length > 0 ? Math.round(apps.reduce((acc, app)=>acc + getAppStatus(app.id).uptime, 0) / apps.length) : 0,\n avgResponseTime: apps.length > 0 ? Math.round(apps.reduce((acc, app)=>acc + getAppStatus(app.id).avgResponseTime, 0) / apps.length) : 0,\n incidents: status.filter((s)=>s.status === \"down\").length\n };\n const allUp = stats.online === stats.total && stats.total > 0;\n function Sparkline(param) {\n let { data } = param;\n if (data.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-8 w-20 bg-slate-800/50 rounded flex items-end justify-center gap-0.5 p-1\",\n children: Array.from({\n length: 8\n }).map((_, i)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-1 bg-slate-700 rounded-sm\",\n style: {\n height: '30%'\n }\n }, i, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 157,\n columnNumber: 13\n }, this))\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 155,\n columnNumber: 9\n }, this);\n }\n const bars = data.slice(-8).map((entry, i)=>{\n const height = entry.status === \"up\" ? Math.max(20, Math.min(100, 100 - (entry.responseTime || 100) / 10)) : 10;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-1.5 rounded-sm \".concat(entry.status === \"up\" ? \"bg-emerald-500/80\" : \"bg-red-500/80\"),\n style: {\n height: \"\".concat(height, \"%\")\n }\n }, i, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 168,\n columnNumber: 9\n }, this);\n });\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-8 w-20 bg-slate-800/50 rounded flex items-end justify-center gap-0.5 p-1\",\n children: bars\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 177,\n columnNumber: 7\n }, this);\n }\n if (loading) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-slate-950 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.9\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n className: \"flex flex-col items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 animate-pulse\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 192,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 blur-xl opacity-50\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 193,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 191,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400 animate-pulse\",\n children: \"Loading dashboard...\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 195,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 186,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 185,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-screen bg-slate-950 text-slate-100\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.header, {\n initial: {\n y: -20,\n opacity: 0\n },\n animate: {\n y: 0,\n opacity: 1\n },\n className: \"sticky top-0 z-50 border-b border-slate-800/50 bg-slate-950/80 backdrop-blur-xl\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between h-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n className: \"relative\",\n whileHover: {\n scale: 1.05\n },\n whileTap: {\n scale: 0.95\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-10 h-10 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 flex items-center justify-center shadow-lg shadow-emerald-500/20\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"w-5 h-5 text-white\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 218,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 217,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 212,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-xl font-bold text-white\",\n children: \"Heartbeat\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 222,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Infrastructure Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 223,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 221,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 211,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleRefresh,\n disabled: refreshing,\n className: \"p-2 text-slate-400 hover:text-white hover:bg-slate-800 rounded-lg transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"w-5 h-5 \".concat(refreshing ? 'animate-spin' : '')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 233,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 228,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowAddApp(true),\n className: \"flex items-center gap-2 px-4 py-2 bg-gradient-to-r from-emerald-600 to-emerald-500 hover:from-emerald-500 hover:to-emerald-400 text-white rounded-lg shadow-lg shadow-emerald-500/20 transition-all\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 240,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"hidden sm:inline\",\n children: \"Add Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 241,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 236,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 227,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 210,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 209,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 204,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n transition: {\n staggerChildren: 0.1\n },\n className: \"space-y-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 10\n },\n animate: {\n opacity: 1,\n y: 0\n },\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-3 h-3 rounded-full \".concat(allUp ? 'bg-emerald-500 animate-pulse' : 'bg-red-500')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 262,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-lg font-medium\",\n children: allUp ? 'All Systems Operational' : \"\".concat(stats.offline, \" Service\").concat(stats.offline > 1 ? 's' : '', \" Down\")\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 263,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-500\",\n children: [\n \"• Last updated \",\n new Date().toLocaleTimeString()\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 266,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 257,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.1\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-emerald-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-emerald-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"w-6 h-6 text-emerald-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 280,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 279,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: [\n stats.online,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-500 text-lg\",\n children: [\n \"/\",\n stats.total\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 283,\n columnNumber: 67\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 283,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Services Online\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 284,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 282,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 278,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 271,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.15\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-blue-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-blue-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n className: \"w-6 h-6 text-blue-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 298,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 297,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: [\n stats.avgUptime,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 301,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Avg Uptime\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 302,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 300,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 296,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 w-full bg-slate-800 rounded-full h-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n width: 0\n },\n animate: {\n width: \"\".concat(stats.avgUptime, \"%\")\n },\n transition: {\n duration: 1,\n delay: 0.5\n },\n className: \"bg-blue-500 h-2 rounded-full\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 306,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 305,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 289,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.2\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-purple-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-purple-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n className: \"w-6 h-6 text-purple-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 324,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 323,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: [\n stats.avgResponseTime,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-slate-500 text-lg\",\n children: \"ms\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 327,\n columnNumber: 76\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 327,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Avg Response\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 328,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 326,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 322,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 315,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.25\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900/50 border border-slate-800 border-l-4 border-l-amber-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-3 rounded-xl bg-amber-500/10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_9__[\"default\"], {\n className: \"w-6 h-6 text-amber-500\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 342,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 341,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-3xl font-bold\",\n children: stats.incidents\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 345,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400\",\n children: \"Incidents\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 346,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 344,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 340,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 333,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 270,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n delay: 0.3\n },\n className: \"bg-slate-900/50 border border-slate-800 rounded-xl overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"px-6 py-4 border-b border-slate-800 flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_10__[\"default\"], {\n className: \"w-5 h-5 text-slate-400\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 362,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xl font-bold\",\n children: \"Monitored Services\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 363,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 361,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-slate-400 mt-1\",\n children: [\n stats.total,\n \" active monitor\",\n stats.total !== 1 ? 's' : ''\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 365,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 360,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setViewMode(viewMode === \"grid\" ? \"list\" : \"grid\"),\n className: \"p-2 text-slate-400 hover:text-white hover:bg-slate-800 rounded-lg transition-colors\",\n children: viewMode === \"grid\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_11__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 372,\n columnNumber: 42\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_12__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 372,\n columnNumber: 73\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 368,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 367,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 359,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-6\",\n children: apps.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.95\n },\n animate: {\n opacity: 1,\n scale: 1\n },\n className: \"text-center py-16\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-20 h-20 bg-gradient-to-br from-slate-800 to-slate-900 rounded-2xl flex items-center justify-center mx-auto mb-6 shadow-inner\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n className: \"w-10 h-10 text-slate-600\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 385,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 384,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold mb-2\",\n children: \"No monitors yet\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 387,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400 mb-6\",\n children: \"Start monitoring your services by adding your first monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 388,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>setShowAddApp(true),\n className: \"px-4 py-2 bg-emerald-600 hover:bg-emerald-500 text-white rounded-lg transition-colors\",\n children: \"Add Your First Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 389,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 379,\n columnNumber: 17\n }, this) : viewMode === \"grid\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 lg:grid-cols-2 gap-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_13__.AnimatePresence, {\n children: apps.map((app, index)=>{\n const { isUp, uptime, avgResponseTime, history, latest } = getAppStatus(app.id);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n y: 20\n },\n animate: {\n opacity: 1,\n y: 0\n },\n exit: {\n opacity: 0,\n scale: 0.95\n },\n transition: {\n delay: index * 0.05\n },\n whileHover: {\n y: -4\n },\n className: \"bg-slate-900 border border-slate-800 rounded-xl border-l-4 \".concat(isUp ? 'border-l-emerald-500' : 'border-l-red-500', \" p-5 group\"),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-10 h-10 rounded-xl flex items-center justify-center \".concat(isUp ? 'bg-emerald-500/10' : 'bg-red-500/10'),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n className: \"w-5 h-5 \".concat(isUp ? 'text-emerald-500' : 'text-red-500')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 415,\n columnNumber: 33\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 414,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-semibold text-lg\",\n children: app.name\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 418,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: app.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"text-sm text-slate-400 hover:text-emerald-400 transition-colors flex items-center gap-1\",\n children: [\n app.url,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_14__[\"default\"], {\n className: \"w-3 h-3\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 426,\n columnNumber: 35\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 419,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 417,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 413,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border \".concat(isUp ? 'border-emerald-500/30 bg-emerald-500/10 text-emerald-400' : 'border-red-500/30 bg-red-500/10 text-red-400'),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"relative flex h-2 w-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"animate-ping absolute inline-flex h-full w-full rounded-full opacity-75 \".concat(isUp ? 'bg-emerald-400' : 'bg-red-400')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 432,\n columnNumber: 33\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"relative inline-flex rounded-full h-2 w-2 \".concat(isUp ? 'bg-emerald-500' : 'bg-red-500')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 433,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 431,\n columnNumber: 31\n }, this),\n isUp ? \"Operational\" : \"Down\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 430,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 412,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 grid grid-cols-3 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-2xl font-bold\",\n children: [\n uptime,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 441,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Uptime\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 442,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 440,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-2xl font-bold\",\n children: avgResponseTime > 0 ? \"\".concat(avgResponseTime, \"ms\") : '—'\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 445,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Response\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 446,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 444,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-end\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Sparkline, {\n data: history\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 449,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 448,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 439,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 pt-4 border-t border-slate-800 flex items-center justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-slate-500\",\n children: [\n \"Last check: \",\n latest ? new Date(latest.timestamp).toLocaleTimeString() : 'Never'\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 454,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>deleteApp(app.id),\n className: \"p-2 text-slate-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg opacity-0 group-hover:opacity-100 transition-all\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 461,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 457,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 453,\n columnNumber: 27\n }, this)\n ]\n }, app.id, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 403,\n columnNumber: 25\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 398,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 397,\n columnNumber: 17\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"divide-y divide-slate-800\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_13__.AnimatePresence, {\n children: apps.map((app)=>{\n const { isUp, uptime, avgResponseTime, history, latest } = getAppStatus(app.id);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n exit: {\n opacity: 0\n },\n className: \"py-4 flex items-center justify-between group hover:bg-slate-800/30 transition-colors px-2 rounded-lg\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-2 h-12 rounded-full \".concat(isUp ? 'bg-emerald-500' : 'bg-red-500')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 484,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"font-semibold\",\n children: app.name\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 486,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: app.url,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"text-sm text-slate-400 hover:text-emerald-400 transition-colors\",\n children: app.url\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 487,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 485,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 483,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-right\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xl font-bold\",\n children: [\n uptime,\n \"%\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 495,\n columnNumber: 31\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-slate-400\",\n children: \"Uptime\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 496,\n columnNumber: 31\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 494,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Sparkline, {\n data: history\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 498,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border \".concat(isUp ? 'border-emerald-500/30 bg-emerald-500/10 text-emerald-400' : 'border-red-500/30 bg-red-500/10 text-red-400'),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"w-2 h-2 rounded-full \".concat(isUp ? 'bg-emerald-500' : 'bg-red-500')\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 500,\n columnNumber: 31\n }, this),\n isUp ? \"Operational\" : \"Down\"\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 499,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: ()=>deleteApp(app.id),\n className: \"p-2 text-slate-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg opacity-0 group-hover:opacity-100 transition-all\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_barrel_optimize_names_Activity_AlertCircle_Clock_ExternalLink_Globe_LayoutGrid_List_Plus_RefreshCw_Server_Trash2_TrendingUp_lucide_react__WEBPACK_IMPORTED_MODULE_15__[\"default\"], {\n className: \"w-4 h-4\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 507,\n columnNumber: 31\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 503,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 493,\n columnNumber: 27\n }, this)\n ]\n }, app.id, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 476,\n columnNumber: 25\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 471,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 470,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 377,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 353,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 250,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 249,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_13__.AnimatePresence, {\n children: showAddApp && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0\n },\n animate: {\n opacity: 1\n },\n exit: {\n opacity: 0\n },\n className: \"fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50 p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n initial: {\n opacity: 0,\n scale: 0.95,\n y: 20\n },\n animate: {\n opacity: 1,\n scale: 1,\n y: 0\n },\n exit: {\n opacity: 0,\n scale: 0.95,\n y: 20\n },\n className: \"bg-slate-900 border border-slate-800 rounded-xl p-6 w-full max-w-md shadow-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xl font-bold mb-2\",\n children: \"Add New Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 536,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-slate-400 text-sm mb-6\",\n children: \"Monitor a new service by providing its details below.\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 537,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: addApp,\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2\",\n children: \"Monitor Name\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 540,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"text\",\n value: newApp.name,\n onChange: (e)=>setNewApp({\n ...newApp,\n name: e.target.value\n }),\n className: \"w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors\",\n placeholder: \"My Application\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 541,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 539,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-2 gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2\",\n children: \"URL\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 552,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"url\",\n value: newApp.url,\n onChange: (e)=>setNewApp({\n ...newApp,\n url: e.target.value\n }),\n className: \"w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors\",\n placeholder: \"http://localhost:3000\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 553,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 551,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"block text-sm font-medium mb-2\",\n children: \"Port\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 563,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"number\",\n value: newApp.port,\n onChange: (e)=>setNewApp({\n ...newApp,\n port: parseInt(e.target.value)\n }),\n className: \"w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors\",\n required: true\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 564,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 562,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 550,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-3 pt-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setShowAddApp(false),\n className: \"flex-1 px-4 py-2.5 border border-slate-700 rounded-lg hover:bg-slate-800 transition-colors\",\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 574,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"submit\",\n className: \"flex-1 px-4 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white rounded-lg transition-colors font-medium\",\n children: \"Add Monitor\"\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 581,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 573,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 538,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 530,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 524,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 522,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx\",\n lineNumber: 202,\n columnNumber: 5\n }, this);\n}\n_s(HeartbeatMonitor, \"HoCcOePlBZi5MSt20IsS/84xH98=\");\n_c = HeartbeatMonitor;\nvar _c;\n$RefreshReg$(_c, \"HeartbeatMonitor\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL3NyYy9hcHAvcGFnZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNEM7QUFDWTtBQWlCbEM7QUFzQlAsU0FBU2dCOztJQUN0QixNQUFNLENBQUNDLE1BQU1DLFFBQVEsR0FBR2xCLCtDQUFRQSxDQUFRLEVBQUU7SUFDMUMsTUFBTSxDQUFDbUIsUUFBUUMsVUFBVSxHQUFHcEIsK0NBQVFBLENBQWdCLEVBQUU7SUFDdEQsTUFBTSxDQUFDcUIsU0FBU0MsV0FBVyxHQUFHdEIsK0NBQVFBLENBQUM7SUFDdkMsTUFBTSxDQUFDdUIsWUFBWUMsY0FBYyxHQUFHeEIsK0NBQVFBLENBQUM7SUFDN0MsTUFBTSxDQUFDeUIsWUFBWUMsY0FBYyxHQUFHMUIsK0NBQVFBLENBQUM7SUFDN0MsTUFBTSxDQUFDMkIsVUFBVUMsWUFBWSxHQUFHNUIsK0NBQVFBLENBQWtCO0lBQzFELE1BQU0sQ0FBQzZCLFFBQVFDLFVBQVUsR0FBRzlCLCtDQUFRQSxDQUFlO1FBQ2pEK0IsTUFBTTtRQUNOQyxhQUFhO1FBQ2JDLEtBQUs7UUFDTEMsTUFBTTtRQUNOQyxNQUFNO1FBQ05DLFNBQVM7UUFDVEMsVUFBVTtRQUNWQyxPQUFPO1FBQ1BDLFNBQVM7SUFDWDtJQUVBdEMsZ0RBQVNBO3NDQUFDO1lBQ1J1QztZQUNBLE1BQU1DLFdBQVdDLFlBQVlGLFdBQVc7WUFDeEM7OENBQU8sSUFBTUcsY0FBY0Y7O1FBQzdCO3FDQUFHLEVBQUU7SUFFTCxlQUFlRDtRQUNiLElBQUk7WUFDRixNQUFNSSxNQUFNLE1BQU1DLE1BQU07WUFDeEIsTUFBTUMsT0FBTyxNQUFNRixJQUFJRyxJQUFJO1lBQzNCN0IsUUFBUTRCLEtBQUs3QixJQUFJLElBQUksRUFBRTtZQUN2QkcsVUFBVTBCLEtBQUszQixNQUFNLElBQUksRUFBRTtRQUM3QixFQUFFLE9BQU82QixLQUFLO1lBQ1pDLFFBQVFDLEtBQUssQ0FBQyx5QkFBeUJGO1FBQ3pDLFNBQVU7WUFDUjFCLFdBQVc7WUFDWEUsY0FBYztRQUNoQjtJQUNGO0lBRUEsZUFBZTJCO1FBQ2IzQixjQUFjO1FBQ2QsTUFBTWdCO0lBQ1I7SUFFQSxlQUFlWSxPQUFPQyxDQUFrQjtRQUN0Q0EsRUFBRUMsY0FBYztRQUNoQixJQUFJLENBQUN6QixPQUFPRSxJQUFJLElBQUksQ0FBQ0YsT0FBT0ksR0FBRyxFQUFFO1FBQ2pDLE1BQU1ZLE1BQU0sZ0JBQWdCO1lBQzFCVSxRQUFRO1lBQ1JDLFNBQVM7Z0JBQUUsZ0JBQWdCO1lBQW1CO1lBQzlDQyxNQUFNQyxLQUFLQyxTQUFTLENBQUM7Z0JBQUVDLFFBQVE7Z0JBQVVDLEtBQUtoQztZQUFPO1FBQ3ZEO1FBQ0FILGNBQWM7UUFDZEksVUFBVTtZQUNSQyxNQUFNO1lBQ05DLGFBQWE7WUFDYkMsS0FBSztZQUNMQyxNQUFNO1lBQ05DLE1BQU07WUFDTkMsU0FBUztZQUNUQyxVQUFVO1lBQ1ZDLE9BQU87WUFDUEMsU0FBUztRQUNYO1FBQ0FDO0lBQ0Y7SUFFQSxlQUFlc0IsVUFBVUMsRUFBVTtRQUNqQyxJQUFJLENBQUNDLFFBQVEscUJBQXFCO1FBQ2xDLE1BQU1uQixNQUFNLGdCQUFnQjtZQUMxQlUsUUFBUTtZQUNSQyxTQUFTO2dCQUFFLGdCQUFnQjtZQUFtQjtZQUM5Q0MsTUFBTUMsS0FBS0MsU0FBUyxDQUFDO2dCQUFFQyxRQUFRO2dCQUFhRztZQUFHO1FBQ2pEO1FBQ0F2QjtJQUNGO0lBRUEsU0FBU3lCLGFBQWFDLEtBQWE7UUFDakMsTUFBTUMsWUFBWWhELE9BQU9pRCxNQUFNLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUgsS0FBSyxLQUFLQTtRQUNuRCxNQUFNSSxTQUFTSCxTQUFTLENBQUNBLFVBQVVJLE1BQU0sR0FBRyxFQUFFO1FBQzlDLE1BQU1DLE9BQU9GLENBQUFBLG1CQUFBQSw2QkFBQUEsT0FBUW5ELE1BQU0sTUFBSztRQUNoQyxNQUFNc0QsU0FBU04sVUFBVUksTUFBTSxHQUFHLElBQzlCRyxLQUFLQyxLQUFLLENBQUMsVUFBV1AsTUFBTSxDQUFDQyxDQUFBQSxJQUFLQSxFQUFFbEQsTUFBTSxLQUFLLE1BQU1vRCxNQUFNLEdBQUdKLFVBQVVJLE1BQU0sR0FBSSxPQUNsRjtRQUNKLE1BQU1LLGtCQUFrQlQsVUFBVUksTUFBTSxHQUFHLElBQ3ZDRyxLQUFLQyxLQUFLLENBQUNSLFVBQVVDLE1BQU0sQ0FBQ0MsQ0FBQUEsSUFBS0EsRUFBRVEsWUFBWSxFQUFFQyxNQUFNLENBQUMsQ0FBQ0MsS0FBS1YsSUFBTVUsTUFBT1YsQ0FBQUEsRUFBRVEsWUFBWSxJQUFJLElBQUksS0FBS1YsVUFBVUMsTUFBTSxDQUFDQyxDQUFBQSxJQUFLQSxFQUFFUSxZQUFZLEVBQUVOLE1BQU0sS0FBSyxJQUN2SjtRQUNKLE1BQU1TLGNBQWNiLFVBQVVDLE1BQU0sQ0FBQ0MsQ0FBQUE7WUFDbkMsTUFBTVksV0FBVyxDQUFDQyxLQUFLQyxHQUFHLEtBQUssSUFBSUQsS0FBS2IsRUFBRWUsU0FBUyxFQUFFQyxPQUFPLEVBQUMsSUFBTSxRQUFPLEtBQUssRUFBQztZQUNoRixPQUFPSixZQUFZO1FBQ3JCO1FBQ0EsT0FBTztZQUFFWDtZQUFRRTtZQUFNQztZQUFRRztZQUFpQlUsU0FBU047UUFBWTtJQUN2RTtJQUVBLE1BQU1PLFFBQVE7UUFDWkMsT0FBT3ZFLEtBQUtzRCxNQUFNO1FBQ2xCa0IsUUFBUXhFLEtBQUttRCxNQUFNLENBQUMsQ0FBQ1AsTUFBUUksYUFBYUosSUFBSUUsRUFBRSxFQUFFUyxJQUFJLEVBQUVELE1BQU07UUFDOURtQixTQUFTekUsS0FBS21ELE1BQU0sQ0FBQyxDQUFDUCxNQUFRLENBQUNJLGFBQWFKLElBQUlFLEVBQUUsRUFBRVMsSUFBSSxFQUFFRCxNQUFNO1FBQ2hFb0IsV0FBVzFFLEtBQUtzRCxNQUFNLEdBQUcsSUFDckJHLEtBQUtDLEtBQUssQ0FBQzFELEtBQUs2RCxNQUFNLENBQUMsQ0FBQ0MsS0FBS2xCLE1BQVFrQixNQUFNZCxhQUFhSixJQUFJRSxFQUFFLEVBQUVVLE1BQU0sRUFBRSxLQUFLeEQsS0FBS3NELE1BQU0sSUFDeEY7UUFDSkssaUJBQWlCM0QsS0FBS3NELE1BQU0sR0FBRyxJQUMzQkcsS0FBS0MsS0FBSyxDQUFDMUQsS0FBSzZELE1BQU0sQ0FBQyxDQUFDQyxLQUFLbEIsTUFBUWtCLE1BQU1kLGFBQWFKLElBQUlFLEVBQUUsRUFBRWEsZUFBZSxFQUFFLEtBQUszRCxLQUFLc0QsTUFBTSxJQUNqRztRQUNKcUIsV0FBV3pFLE9BQU9pRCxNQUFNLENBQUNDLENBQUFBLElBQUtBLEVBQUVsRCxNQUFNLEtBQUssUUFBUW9ELE1BQU07SUFDM0Q7SUFFQSxNQUFNc0IsUUFBUU4sTUFBTUUsTUFBTSxLQUFLRixNQUFNQyxLQUFLLElBQUlELE1BQU1DLEtBQUssR0FBRztJQUU1RCxTQUFTTSxVQUFVLEtBQWlDO1lBQWpDLEVBQUVoRCxJQUFJLEVBQTJCLEdBQWpDO1FBQ2pCLElBQUlBLEtBQUt5QixNQUFNLEtBQUssR0FBRztZQUNyQixxQkFDRSw4REFBQ3dCO2dCQUFJQyxXQUFVOzBCQUNaQyxNQUFNQyxJQUFJLENBQUM7b0JBQUUzQixRQUFRO2dCQUFFLEdBQUc0QixHQUFHLENBQUMsQ0FBQ0MsR0FBR0Msa0JBQ2pDLDhEQUFDTjt3QkFBWUMsV0FBVTt3QkFBOEJNLE9BQU87NEJBQUVDLFFBQVE7d0JBQU07dUJBQWxFRjs7Ozs7Ozs7OztRQUlsQjtRQUVBLE1BQU1HLE9BQU8xRCxLQUFLMkQsS0FBSyxDQUFDLENBQUMsR0FBR04sR0FBRyxDQUFDLENBQUNPLE9BQU9MO1lBQ3RDLE1BQU1FLFNBQVNHLE1BQU12RixNQUFNLEtBQUssT0FDNUJ1RCxLQUFLaUMsR0FBRyxDQUFDLElBQUlqQyxLQUFLa0MsR0FBRyxDQUFDLEtBQUssTUFBTyxDQUFDRixNQUFNN0IsWUFBWSxJQUFJLEdBQUUsSUFBSyxPQUNoRTtZQUNKLHFCQUNFLDhEQUFDa0I7Z0JBRUNDLFdBQVcsb0JBQWtGLE9BQTlEVSxNQUFNdkYsTUFBTSxLQUFLLE9BQU8sc0JBQXNCO2dCQUM3RW1GLE9BQU87b0JBQUVDLFFBQVEsR0FBVSxPQUFQQSxRQUFPO2dCQUFHO2VBRnpCRjs7Ozs7UUFLWDtRQUVBLHFCQUNFLDhEQUFDTjtZQUFJQyxXQUFVO3NCQUNaUTs7Ozs7O0lBR1A7SUFFQSxJQUFJbkYsU0FBUztRQUNYLHFCQUNFLDhEQUFDMEU7WUFBSUMsV0FBVTtzQkFDYiw0RUFBQzlGLGlEQUFNQSxDQUFDNkYsR0FBRztnQkFDVGMsU0FBUztvQkFBRUMsU0FBUztvQkFBR0MsT0FBTztnQkFBSTtnQkFDbENDLFNBQVM7b0JBQUVGLFNBQVM7b0JBQUdDLE9BQU87Z0JBQUU7Z0JBQ2hDZixXQUFVOztrQ0FFViw4REFBQ0Q7d0JBQUlDLFdBQVU7OzBDQUNiLDhEQUFDRDtnQ0FBSUMsV0FBVTs7Ozs7OzBDQUNmLDhEQUFDRDtnQ0FBSUMsV0FBVTs7Ozs7Ozs7Ozs7O2tDQUVqQiw4REFBQ2lCO3dCQUFFakIsV0FBVTtrQ0FBK0I7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBSXBEO0lBRUEscUJBQ0UsOERBQUNEO1FBQUlDLFdBQVU7OzBCQUViLDhEQUFDOUYsaURBQU1BLENBQUNnSCxNQUFNO2dCQUNaTCxTQUFTO29CQUFFTSxHQUFHLENBQUM7b0JBQUlMLFNBQVM7Z0JBQUU7Z0JBQzlCRSxTQUFTO29CQUFFRyxHQUFHO29CQUFHTCxTQUFTO2dCQUFFO2dCQUM1QmQsV0FBVTswQkFFViw0RUFBQ0Q7b0JBQUlDLFdBQVU7OEJBQ2IsNEVBQUNEO3dCQUFJQyxXQUFVOzswQ0FDYiw4REFBQ0Q7Z0NBQUlDLFdBQVU7O2tEQUNiLDhEQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO3dDQUNUQyxXQUFVO3dDQUNWb0IsWUFBWTs0Q0FBRUwsT0FBTzt3Q0FBSzt3Q0FDMUJNLFVBQVU7NENBQUVOLE9BQU87d0NBQUs7a0RBRXhCLDRFQUFDaEI7NENBQUlDLFdBQVU7c0RBQ2IsNEVBQUM1RixpTEFBUUE7Z0RBQUM0RixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7O2tEQUd4Qiw4REFBQ0Q7OzBEQUNDLDhEQUFDdUI7Z0RBQUd0QixXQUFVOzBEQUErQjs7Ozs7OzBEQUM3Qyw4REFBQ2lCO2dEQUFFakIsV0FBVTswREFBeUI7Ozs7Ozs7Ozs7Ozs7Ozs7OzswQ0FJMUMsOERBQUNEO2dDQUFJQyxXQUFVOztrREFDYiw4REFBQ3VCO3dDQUNDQyxTQUFTckU7d0NBQ1RzRSxVQUFVbEc7d0NBQ1Z5RSxXQUFVO2tEQUVWLDRFQUFDMUYsaUxBQVNBOzRDQUFDMEYsV0FBVyxXQUE0QyxPQUFqQ3pFLGFBQWEsaUJBQWlCOzs7Ozs7Ozs7OztrREFHakUsOERBQUNnRzt3Q0FDQ0MsU0FBUyxJQUFNOUYsY0FBYzt3Q0FDN0JzRSxXQUFVOzswREFFViw4REFBQzNGLGlMQUFJQTtnREFBQzJGLFdBQVU7Ozs7OzswREFDaEIsOERBQUMwQjtnREFBSzFCLFdBQVU7MERBQW1COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQVE3Qyw4REFBQzJCO2dCQUFLM0IsV0FBVTswQkFDZCw0RUFBQzlGLGlEQUFNQSxDQUFDNkYsR0FBRztvQkFDVGMsU0FBUzt3QkFBRUMsU0FBUztvQkFBRTtvQkFDdEJFLFNBQVM7d0JBQUVGLFNBQVM7b0JBQUU7b0JBQ3RCYyxZQUFZO3dCQUFFQyxpQkFBaUI7b0JBQUk7b0JBQ25DN0IsV0FBVTs7c0NBR1YsOERBQUM5RixpREFBTUEsQ0FBQzZGLEdBQUc7NEJBQ1RjLFNBQVM7Z0NBQUVDLFNBQVM7Z0NBQUdLLEdBQUc7NEJBQUc7NEJBQzdCSCxTQUFTO2dDQUFFRixTQUFTO2dDQUFHSyxHQUFHOzRCQUFFOzRCQUM1Qm5CLFdBQVU7OzhDQUVWLDhEQUFDRDtvQ0FBSUMsV0FBVyx3QkFBOEUsT0FBdERILFFBQVEsaUNBQWlDOzs7Ozs7OENBQ2pGLDhEQUFDNkI7b0NBQUsxQixXQUFVOzhDQUNiSCxRQUFRLDRCQUE0QixHQUEyQk4sT0FBeEJBLE1BQU1HLE9BQU8sRUFBQyxZQUF1QyxPQUE3QkgsTUFBTUcsT0FBTyxHQUFHLElBQUksTUFBTSxJQUFHOzs7Ozs7OENBRS9GLDhEQUFDZ0M7b0NBQUsxQixXQUFVOzt3Q0FBaUI7d0NBQWdCLElBQUlkLE9BQU80QyxrQkFBa0I7Ozs7Ozs7Ozs7Ozs7c0NBSWhGLDhEQUFDL0I7NEJBQUlDLFdBQVU7OzhDQUNiLDhEQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO29DQUNUYyxTQUFTO3dDQUFFQyxTQUFTO3dDQUFHSyxHQUFHO29DQUFHO29DQUM3QkgsU0FBUzt3Q0FBRUYsU0FBUzt3Q0FBR0ssR0FBRztvQ0FBRTtvQ0FDNUJTLFlBQVk7d0NBQUVHLE9BQU87b0NBQUk7b0NBQ3pCWCxZQUFZO3dDQUFFRCxHQUFHLENBQUM7b0NBQUU7b0NBQ3BCbkIsV0FBVTs4Q0FFViw0RUFBQ0Q7d0NBQUlDLFdBQVU7OzBEQUNiLDhEQUFDRDtnREFBSUMsV0FBVTswREFDYiw0RUFBQ3ZGLGlMQUFNQTtvREFBQ3VGLFdBQVU7Ozs7Ozs7Ozs7OzBEQUVwQiw4REFBQ0Q7Z0RBQUlDLFdBQVU7O2tFQUNiLDhEQUFDaUI7d0RBQUVqQixXQUFVOzs0REFBc0JULE1BQU1FLE1BQU07MEVBQUMsOERBQUNpQztnRUFBSzFCLFdBQVU7O29FQUF5QjtvRUFBRVQsTUFBTUMsS0FBSzs7Ozs7Ozs7Ozs7OztrRUFDdEcsOERBQUN5Qjt3REFBRWpCLFdBQVU7a0VBQXlCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4Q0FLNUMsOERBQUM5RixpREFBTUEsQ0FBQzZGLEdBQUc7b0NBQ1RjLFNBQVM7d0NBQUVDLFNBQVM7d0NBQUdLLEdBQUc7b0NBQUc7b0NBQzdCSCxTQUFTO3dDQUFFRixTQUFTO3dDQUFHSyxHQUFHO29DQUFFO29DQUM1QlMsWUFBWTt3Q0FBRUcsT0FBTztvQ0FBSztvQ0FDMUJYLFlBQVk7d0NBQUVELEdBQUcsQ0FBQztvQ0FBRTtvQ0FDcEJuQixXQUFVOztzREFFViw4REFBQ0Q7NENBQUlDLFdBQVU7OzhEQUNiLDhEQUFDRDtvREFBSUMsV0FBVTs4REFDYiw0RUFBQ3RGLGlMQUFVQTt3REFBQ3NGLFdBQVU7Ozs7Ozs7Ozs7OzhEQUV4Qiw4REFBQ0Q7b0RBQUlDLFdBQVU7O3NFQUNiLDhEQUFDaUI7NERBQUVqQixXQUFVOztnRUFBc0JULE1BQU1JLFNBQVM7Z0VBQUM7Ozs7Ozs7c0VBQ25ELDhEQUFDc0I7NERBQUVqQixXQUFVO3NFQUF5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NEQUcxQyw4REFBQ0Q7NENBQUlDLFdBQVU7c0RBQ2IsNEVBQUM5RixpREFBTUEsQ0FBQzZGLEdBQUc7Z0RBQ1RjLFNBQVM7b0RBQUVtQixPQUFPO2dEQUFFO2dEQUNwQmhCLFNBQVM7b0RBQUVnQixPQUFPLEdBQW1CLE9BQWhCekMsTUFBTUksU0FBUyxFQUFDO2dEQUFHO2dEQUN4Q2lDLFlBQVk7b0RBQUVLLFVBQVU7b0RBQUdGLE9BQU87Z0RBQUk7Z0RBQ3RDL0IsV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7OENBS2hCLDhEQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO29DQUNUYyxTQUFTO3dDQUFFQyxTQUFTO3dDQUFHSyxHQUFHO29DQUFHO29DQUM3QkgsU0FBUzt3Q0FBRUYsU0FBUzt3Q0FBR0ssR0FBRztvQ0FBRTtvQ0FDNUJTLFlBQVk7d0NBQUVHLE9BQU87b0NBQUk7b0NBQ3pCWCxZQUFZO3dDQUFFRCxHQUFHLENBQUM7b0NBQUU7b0NBQ3BCbkIsV0FBVTs4Q0FFViw0RUFBQ0Q7d0NBQUlDLFdBQVU7OzBEQUNiLDhEQUFDRDtnREFBSUMsV0FBVTswREFDYiw0RUFBQ25GLGlMQUFLQTtvREFBQ21GLFdBQVU7Ozs7Ozs7Ozs7OzBEQUVuQiw4REFBQ0Q7Z0RBQUlDLFdBQVU7O2tFQUNiLDhEQUFDaUI7d0RBQUVqQixXQUFVOzs0REFBc0JULE1BQU1YLGVBQWU7MEVBQUMsOERBQUM4QztnRUFBSzFCLFdBQVU7MEVBQXlCOzs7Ozs7Ozs7Ozs7a0VBQ2xHLDhEQUFDaUI7d0RBQUVqQixXQUFVO2tFQUF5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OENBSzVDLDhEQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO29DQUNUYyxTQUFTO3dDQUFFQyxTQUFTO3dDQUFHSyxHQUFHO29DQUFHO29DQUM3QkgsU0FBUzt3Q0FBRUYsU0FBUzt3Q0FBR0ssR0FBRztvQ0FBRTtvQ0FDNUJTLFlBQVk7d0NBQUVHLE9BQU87b0NBQUs7b0NBQzFCWCxZQUFZO3dDQUFFRCxHQUFHLENBQUM7b0NBQUU7b0NBQ3BCbkIsV0FBVTs4Q0FFViw0RUFBQ0Q7d0NBQUlDLFdBQVU7OzBEQUNiLDhEQUFDRDtnREFBSUMsV0FBVTswREFDYiw0RUFBQ3JGLGlMQUFXQTtvREFBQ3FGLFdBQVU7Ozs7Ozs7Ozs7OzBEQUV6Qiw4REFBQ0Q7Z0RBQUlDLFdBQVU7O2tFQUNiLDhEQUFDaUI7d0RBQUVqQixXQUFVO2tFQUFzQlQsTUFBTUssU0FBUzs7Ozs7O2tFQUNsRCw4REFBQ3FCO3dEQUFFakIsV0FBVTtrRUFBeUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQU85Qyw4REFBQzlGLGlEQUFNQSxDQUFDNkYsR0FBRzs0QkFDVGMsU0FBUztnQ0FBRUMsU0FBUztnQ0FBR0ssR0FBRzs0QkFBRzs0QkFDN0JILFNBQVM7Z0NBQUVGLFNBQVM7Z0NBQUdLLEdBQUc7NEJBQUU7NEJBQzVCUyxZQUFZO2dDQUFFRyxPQUFPOzRCQUFJOzRCQUN6Qi9CLFdBQVU7OzhDQUVWLDhEQUFDRDtvQ0FBSUMsV0FBVTs7c0RBQ2IsOERBQUNEOzs4REFDQyw4REFBQ0E7b0RBQUlDLFdBQVU7O3NFQUNiLDhEQUFDcEYsa0xBQUtBOzREQUFDb0YsV0FBVTs7Ozs7O3NFQUNqQiw4REFBQ2tDOzREQUFHbEMsV0FBVTtzRUFBb0I7Ozs7Ozs7Ozs7Ozs4REFFcEMsOERBQUNpQjtvREFBRWpCLFdBQVU7O3dEQUErQlQsTUFBTUMsS0FBSzt3REFBQzt3REFBZ0JELE1BQU1DLEtBQUssS0FBSyxJQUFJLE1BQU07Ozs7Ozs7Ozs7Ozs7c0RBRXBHLDhEQUFDTzs0Q0FBSUMsV0FBVTtzREFDYiw0RUFBQ3VCO2dEQUNDQyxTQUFTLElBQU01RixZQUFZRCxhQUFhLFNBQVMsU0FBUztnREFDMURxRSxXQUFVOzBEQUVUckUsYUFBYSx1QkFBUyw4REFBQ1osa0xBQUlBO29EQUFDaUYsV0FBVTs7Ozs7eUVBQWUsOERBQUNsRixrTEFBVUE7b0RBQUNrRixXQUFVOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhDQUtsRiw4REFBQ0Q7b0NBQUlDLFdBQVU7OENBQ1ovRSxLQUFLc0QsTUFBTSxLQUFLLGtCQUNmLDhEQUFDckUsaURBQU1BLENBQUM2RixHQUFHO3dDQUNUYyxTQUFTOzRDQUFFQyxTQUFTOzRDQUFHQyxPQUFPO3dDQUFLO3dDQUNuQ0MsU0FBUzs0Q0FBRUYsU0FBUzs0Q0FBR0MsT0FBTzt3Q0FBRTt3Q0FDaENmLFdBQVU7OzBEQUVWLDhEQUFDRDtnREFBSUMsV0FBVTswREFDYiw0RUFBQzVGLGlMQUFRQTtvREFBQzRGLFdBQVU7Ozs7Ozs7Ozs7OzBEQUV0Qiw4REFBQ21DO2dEQUFHbkMsV0FBVTswREFBNkI7Ozs7OzswREFDM0MsOERBQUNpQjtnREFBRWpCLFdBQVU7MERBQXNCOzs7Ozs7MERBQ25DLDhEQUFDdUI7Z0RBQ0NDLFNBQVMsSUFBTTlGLGNBQWM7Z0RBQzdCc0UsV0FBVTswREFDWDs7Ozs7Ozs7Ozs7K0NBSURyRSxhQUFhLHVCQUNmLDhEQUFDb0U7d0NBQUlDLFdBQVU7a0RBQ2IsNEVBQUM3RiwyREFBZUE7c0RBQ2JjLEtBQUtrRixHQUFHLENBQUMsQ0FBQ3RDLEtBQUt1RTtnREFDZCxNQUFNLEVBQUU1RCxJQUFJLEVBQUVDLE1BQU0sRUFBRUcsZUFBZSxFQUFFVSxPQUFPLEVBQUVoQixNQUFNLEVBQUUsR0FBR0wsYUFBYUosSUFBSUUsRUFBRTtnREFFOUUscUJBQ0UsOERBQUM3RCxpREFBTUEsQ0FBQzZGLEdBQUc7b0RBRVRjLFNBQVM7d0RBQUVDLFNBQVM7d0RBQUdLLEdBQUc7b0RBQUc7b0RBQzdCSCxTQUFTO3dEQUFFRixTQUFTO3dEQUFHSyxHQUFHO29EQUFFO29EQUM1QmtCLE1BQU07d0RBQUV2QixTQUFTO3dEQUFHQyxPQUFPO29EQUFLO29EQUNoQ2EsWUFBWTt3REFBRUcsT0FBT0ssUUFBUTtvREFBSztvREFDbENoQixZQUFZO3dEQUFFRCxHQUFHLENBQUM7b0RBQUU7b0RBQ3BCbkIsV0FBVyw4REFBaUgsT0FBbkR4QixPQUFPLHlCQUF5QixvQkFBbUI7O3NFQUU1SCw4REFBQ3VCOzREQUFJQyxXQUFVOzs4RUFDYiw4REFBQ0Q7b0VBQUlDLFdBQVU7O3NGQUNiLDhEQUFDRDs0RUFBSUMsV0FBVyx5REFBc0csT0FBN0N4QixPQUFPLHNCQUFzQjtzRkFDcEcsNEVBQUMvRCxpTEFBTUE7Z0ZBQUN1RixXQUFXLFdBQXNELE9BQTNDeEIsT0FBTyxxQkFBcUI7Ozs7Ozs7Ozs7O3NGQUU1RCw4REFBQ3VCOzs4RkFDQyw4REFBQ29DO29GQUFHbkMsV0FBVTs4RkFBeUJuQyxJQUFJOUIsSUFBSTs7Ozs7OzhGQUMvQyw4REFBQ3VHO29GQUNDQyxNQUFNMUUsSUFBSTVCLEdBQUc7b0ZBQ2J1RyxRQUFPO29GQUNQQyxLQUFJO29GQUNKekMsV0FBVTs7d0ZBRVRuQyxJQUFJNUIsR0FBRztzR0FDUiw4REFBQ3pCLGtMQUFZQTs0RkFBQ3dGLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4RUFJOUIsOERBQUMwQjtvRUFBSzFCLFdBQVcsd0ZBQTJNLE9BQW5IeEIsT0FBTyw2REFBNkQ7O3NGQUMzSyw4REFBQ2tEOzRFQUFLMUIsV0FBWTs7OEZBQ2hCLDhEQUFDMEI7b0ZBQUsxQixXQUFXLDJFQUFrSCxPQUF2Q3hCLE9BQU8sbUJBQW1COzs7Ozs7OEZBQ3RILDhEQUFDa0Q7b0ZBQUsxQixXQUFXLDZDQUFvRixPQUF2Q3hCLE9BQU8sbUJBQW1COzs7Ozs7Ozs7Ozs7d0VBRXpGQSxPQUFPLGdCQUFnQjs7Ozs7Ozs7Ozs7OztzRUFJNUIsOERBQUN1Qjs0REFBSUMsV0FBVTs7OEVBQ2IsOERBQUNEOztzRkFDQyw4REFBQ2tCOzRFQUFFakIsV0FBVTs7Z0ZBQXNCdkI7Z0ZBQU87Ozs7Ozs7c0ZBQzFDLDhEQUFDd0M7NEVBQUVqQixXQUFVO3NGQUF5Qjs7Ozs7Ozs7Ozs7OzhFQUV4Qyw4REFBQ0Q7O3NGQUNDLDhEQUFDa0I7NEVBQUVqQixXQUFVO3NGQUFzQnBCLGtCQUFrQixJQUFJLEdBQW1CLE9BQWhCQSxpQkFBZ0IsUUFBTTs7Ozs7O3NGQUNsRiw4REFBQ3FDOzRFQUFFakIsV0FBVTtzRkFBeUI7Ozs7Ozs7Ozs7Ozs4RUFFeEMsOERBQUNEO29FQUFJQyxXQUFVOzhFQUNiLDRFQUFDRjt3RUFBVWhELE1BQU13Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7c0VBSXJCLDhEQUFDUzs0REFBSUMsV0FBVTs7OEVBQ2IsOERBQUMwQjtvRUFBSzFCLFdBQVU7O3dFQUF5Qjt3RUFDMUIxQixTQUFTLElBQUlZLEtBQUtaLE9BQU9jLFNBQVMsRUFBRTBDLGtCQUFrQixLQUFLOzs7Ozs7OzhFQUUxRSw4REFBQ1A7b0VBQ0NDLFNBQVMsSUFBTTFELFVBQVVELElBQUlFLEVBQUU7b0VBQy9CaUMsV0FBVTs4RUFFViw0RUFBQ3pGLGtMQUFNQTt3RUFBQ3lGLFdBQVU7Ozs7Ozs7Ozs7Ozs7Ozs7OzttREF6RGpCbkMsSUFBSUUsRUFBRTs7Ozs7NENBOERqQjs7Ozs7Ozs7Ozs2REFJSiw4REFBQ2dDO3dDQUFJQyxXQUFVO2tEQUNiLDRFQUFDN0YsMkRBQWVBO3NEQUNiYyxLQUFLa0YsR0FBRyxDQUFDLENBQUN0QztnREFDVCxNQUFNLEVBQUVXLElBQUksRUFBRUMsTUFBTSxFQUFFRyxlQUFlLEVBQUVVLE9BQU8sRUFBRWhCLE1BQU0sRUFBRSxHQUFHTCxhQUFhSixJQUFJRSxFQUFFO2dEQUU5RSxxQkFDRSw4REFBQzdELGlEQUFNQSxDQUFDNkYsR0FBRztvREFFVGMsU0FBUzt3REFBRUMsU0FBUztvREFBRTtvREFDdEJFLFNBQVM7d0RBQUVGLFNBQVM7b0RBQUU7b0RBQ3RCdUIsTUFBTTt3REFBRXZCLFNBQVM7b0RBQUU7b0RBQ25CZCxXQUFVOztzRUFFViw4REFBQ0Q7NERBQUlDLFdBQVU7OzhFQUNiLDhEQUFDRDtvRUFBSUMsV0FBVyx5QkFBZ0UsT0FBdkN4QixPQUFPLG1CQUFtQjs7Ozs7OzhFQUNuRSw4REFBQ3VCOztzRkFDQyw4REFBQ29DOzRFQUFHbkMsV0FBVTtzRkFBaUJuQyxJQUFJOUIsSUFBSTs7Ozs7O3NGQUN2Qyw4REFBQ3VHOzRFQUFFQyxNQUFNMUUsSUFBSTVCLEdBQUc7NEVBQUV1RyxRQUFPOzRFQUFTQyxLQUFJOzRFQUFzQnpDLFdBQVU7c0ZBQ25FbkMsSUFBSTVCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7OztzRUFLZCw4REFBQzhEOzREQUFJQyxXQUFVOzs4RUFDYiw4REFBQ0Q7b0VBQUlDLFdBQVU7O3NGQUNiLDhEQUFDaUI7NEVBQUVqQixXQUFVOztnRkFBcUJ2QjtnRkFBTzs7Ozs7OztzRkFDekMsOERBQUN3Qzs0RUFBRWpCLFdBQVU7c0ZBQXlCOzs7Ozs7Ozs7Ozs7OEVBRXhDLDhEQUFDRjtvRUFBVWhELE1BQU13Qzs7Ozs7OzhFQUNqQiw4REFBQ29DO29FQUFLMUIsV0FBVyx3RkFBMk0sT0FBbkh4QixPQUFPLDZEQUE2RDs7c0ZBQzNLLDhEQUFDa0Q7NEVBQUsxQixXQUFXLHdCQUErRCxPQUF2Q3hCLE9BQU8sbUJBQW1COzs7Ozs7d0VBQ2xFQSxPQUFPLGdCQUFnQjs7Ozs7Ozs4RUFFMUIsOERBQUMrQztvRUFDQ0MsU0FBUyxJQUFNMUQsVUFBVUQsSUFBSUUsRUFBRTtvRUFDL0JpQyxXQUFVOzhFQUVWLDRFQUFDekYsa0xBQU1BO3dFQUFDeUYsV0FBVTs7Ozs7Ozs7Ozs7Ozs7Ozs7O21EQTlCakJuQyxJQUFJRSxFQUFFOzs7Ozs0Q0FtQ2pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MEJBVWQsOERBQUM1RCwyREFBZUE7MEJBQ2JzQiw0QkFDQyw4REFBQ3ZCLGlEQUFNQSxDQUFDNkYsR0FBRztvQkFDVGMsU0FBUzt3QkFBRUMsU0FBUztvQkFBRTtvQkFDdEJFLFNBQVM7d0JBQUVGLFNBQVM7b0JBQUU7b0JBQ3RCdUIsTUFBTTt3QkFBRXZCLFNBQVM7b0JBQUU7b0JBQ25CZCxXQUFVOzhCQUVWLDRFQUFDOUYsaURBQU1BLENBQUM2RixHQUFHO3dCQUNUYyxTQUFTOzRCQUFFQyxTQUFTOzRCQUFHQyxPQUFPOzRCQUFNSSxHQUFHO3dCQUFHO3dCQUMxQ0gsU0FBUzs0QkFBRUYsU0FBUzs0QkFBR0MsT0FBTzs0QkFBR0ksR0FBRzt3QkFBRTt3QkFDdENrQixNQUFNOzRCQUFFdkIsU0FBUzs0QkFBR0MsT0FBTzs0QkFBTUksR0FBRzt3QkFBRzt3QkFDdkNuQixXQUFVOzswQ0FFViw4REFBQ2tDO2dDQUFHbEMsV0FBVTswQ0FBeUI7Ozs7OzswQ0FDdkMsOERBQUNpQjtnQ0FBRWpCLFdBQVU7MENBQThCOzs7Ozs7MENBQzNDLDhEQUFDMEM7Z0NBQUtDLFVBQVV2RjtnQ0FBUTRDLFdBQVU7O2tEQUNoQyw4REFBQ0Q7OzBEQUNDLDhEQUFDNkM7Z0RBQU01QyxXQUFVOzBEQUFpQzs7Ozs7OzBEQUNsRCw4REFBQzZDO2dEQUNDQyxNQUFLO2dEQUNMQyxPQUFPbEgsT0FBT0UsSUFBSTtnREFDbEJpSCxVQUFVLENBQUMzRixJQUFNdkIsVUFBVTt3REFBRSxHQUFHRCxNQUFNO3dEQUFFRSxNQUFNc0IsRUFBRW1GLE1BQU0sQ0FBQ08sS0FBSztvREFBQztnREFDN0QvQyxXQUFVO2dEQUNWaUQsYUFBWTtnREFDWkMsUUFBUTs7Ozs7Ozs7Ozs7O2tEQUdaLDhEQUFDbkQ7d0NBQUlDLFdBQVU7OzBEQUNiLDhEQUFDRDs7a0VBQ0MsOERBQUM2Qzt3REFBTTVDLFdBQVU7a0VBQWlDOzs7Ozs7a0VBQ2xELDhEQUFDNkM7d0RBQ0NDLE1BQUs7d0RBQ0xDLE9BQU9sSCxPQUFPSSxHQUFHO3dEQUNqQitHLFVBQVUsQ0FBQzNGLElBQU12QixVQUFVO2dFQUFFLEdBQUdELE1BQU07Z0VBQUVJLEtBQUtvQixFQUFFbUYsTUFBTSxDQUFDTyxLQUFLOzREQUFDO3dEQUM1RC9DLFdBQVU7d0RBQ1ZpRCxhQUFZO3dEQUNaQyxRQUFROzs7Ozs7Ozs7Ozs7MERBR1osOERBQUNuRDs7a0VBQ0MsOERBQUM2Qzt3REFBTTVDLFdBQVU7a0VBQWlDOzs7Ozs7a0VBQ2xELDhEQUFDNkM7d0RBQ0NDLE1BQUs7d0RBQ0xDLE9BQU9sSCxPQUFPSyxJQUFJO3dEQUNsQjhHLFVBQVUsQ0FBQzNGLElBQU12QixVQUFVO2dFQUFFLEdBQUdELE1BQU07Z0VBQUVLLE1BQU1pSCxTQUFTOUYsRUFBRW1GLE1BQU0sQ0FBQ08sS0FBSzs0REFBRTt3REFDdkUvQyxXQUFVO3dEQUNWa0QsUUFBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tEQUlkLDhEQUFDbkQ7d0NBQUlDLFdBQVU7OzBEQUNiLDhEQUFDdUI7Z0RBQ0N1QixNQUFLO2dEQUNMdEIsU0FBUyxJQUFNOUYsY0FBYztnREFDN0JzRSxXQUFVOzBEQUNYOzs7Ozs7MERBR0QsOERBQUN1QjtnREFDQ3VCLE1BQUs7Z0RBQ0w5QyxXQUFVOzBEQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBV25CO0dBeGlCd0JoRjtLQUFBQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL3NyYy9hcHAvcGFnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IG1vdGlvbiwgQW5pbWF0ZVByZXNlbmNlIH0gZnJvbSBcImZyYW1lci1tb3Rpb25cIjtcbmltcG9ydCB7IFxuICBBY3Rpdml0eSwgXG4gIFBsdXMsIFxuICBSZWZyZXNoQ3csIFxuICBUcmFzaDIsIFxuICBFeHRlcm5hbExpbmssXG4gIFNlcnZlcixcbiAgVHJlbmRpbmdVcCxcbiAgQWxlcnRDaXJjbGUsXG4gIEdsb2JlLFxuICBDaGVja0NpcmNsZTIsXG4gIFhDaXJjbGUsXG4gIENsb2NrLFxuICBNb3JlSG9yaXpvbnRhbCxcbiAgTGF5b3V0R3JpZCxcbiAgTGlzdFxufSBmcm9tIFwibHVjaWRlLXJlYWN0XCI7XG5cbmludGVyZmFjZSBBcHAge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHVybDogc3RyaW5nO1xuICBwb3J0OiBudW1iZXI7XG4gIHBhdGg6IHN0cmluZztcbiAgY29tbWFuZDogc3RyaW5nO1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICBjb2xvcjogc3RyaW5nO1xuICBlbmFibGVkOiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgU3RhdHVzRW50cnkge1xuICBhcHBJZDogc3RyaW5nO1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgc3RhdHVzOiBcInVwXCIgfCBcImRvd25cIjtcbiAgcmVzcG9uc2VUaW1lPzogbnVtYmVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIZWFydGJlYXRNb25pdG9yKCkge1xuICBjb25zdCBbYXBwcywgc2V0QXBwc10gPSB1c2VTdGF0ZTxBcHBbXT4oW10pO1xuICBjb25zdCBbc3RhdHVzLCBzZXRTdGF0dXNdID0gdXNlU3RhdGU8U3RhdHVzRW50cnlbXT4oW10pO1xuICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgY29uc3QgW3JlZnJlc2hpbmcsIHNldFJlZnJlc2hpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2hvd0FkZEFwcCwgc2V0U2hvd0FkZEFwcF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFt2aWV3TW9kZSwgc2V0Vmlld01vZGVdID0gdXNlU3RhdGU8XCJncmlkXCIgfCBcImxpc3RcIj4oXCJncmlkXCIpO1xuICBjb25zdCBbbmV3QXBwLCBzZXROZXdBcHBdID0gdXNlU3RhdGU8UGFydGlhbDxBcHA+Pih7XG4gICAgbmFtZTogXCJcIixcbiAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICB1cmw6IFwiaHR0cDovL2xvY2FsaG9zdDpcIixcbiAgICBwb3J0OiAzMDAwLFxuICAgIHBhdGg6IFwiXCIsXG4gICAgY29tbWFuZDogXCJucG0gcnVuIGRldlwiLFxuICAgIGNhdGVnb3J5OiBcIk90aGVyXCIsXG4gICAgY29sb3I6IFwiIzIyQzU1RVwiLFxuICAgIGVuYWJsZWQ6IHRydWUsXG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hEYXRhKCk7XG4gICAgY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmZXRjaERhdGEsIDMwMDAwKTtcbiAgICByZXR1cm4gKCkgPT4gY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7XG4gIH0sIFtdKTtcblxuICBhc3luYyBmdW5jdGlvbiBmZXRjaERhdGEoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZldGNoKFwiL2FwaS9tb25pdG9yXCIpO1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgICBzZXRBcHBzKGRhdGEuYXBwcyB8fCBbXSk7XG4gICAgICBzZXRTdGF0dXMoZGF0YS5zdGF0dXMgfHwgW10pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihcIkZhaWxlZCB0byBmZXRjaCBkYXRhOlwiLCBlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgIHNldFJlZnJlc2hpbmcoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGhhbmRsZVJlZnJlc2goKSB7XG4gICAgc2V0UmVmcmVzaGluZyh0cnVlKTtcbiAgICBhd2FpdCBmZXRjaERhdGEoKTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGFkZEFwcChlOiBSZWFjdC5Gb3JtRXZlbnQpIHtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCFuZXdBcHAubmFtZSB8fCAhbmV3QXBwLnVybCkgcmV0dXJuO1xuICAgIGF3YWl0IGZldGNoKFwiL2FwaS9tb25pdG9yXCIsIHtcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGFjdGlvbjogXCJhZGRBcHBcIiwgYXBwOiBuZXdBcHAgfSksXG4gICAgfSk7XG4gICAgc2V0U2hvd0FkZEFwcChmYWxzZSk7XG4gICAgc2V0TmV3QXBwKHtcbiAgICAgIG5hbWU6IFwiXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJcIixcbiAgICAgIHVybDogXCJodHRwOi8vbG9jYWxob3N0OlwiLFxuICAgICAgcG9ydDogMzAwMCxcbiAgICAgIHBhdGg6IFwiXCIsXG4gICAgICBjb21tYW5kOiBcIm5wbSBydW4gZGV2XCIsXG4gICAgICBjYXRlZ29yeTogXCJPdGhlclwiLFxuICAgICAgY29sb3I6IFwiIzIyQzU1RVwiLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICB9KTtcbiAgICBmZXRjaERhdGEoKTtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGRlbGV0ZUFwcChpZDogc3RyaW5nKSB7XG4gICAgaWYgKCFjb25maXJtKFwiRGVsZXRlIHRoaXMgYXBwP1wiKSkgcmV0dXJuO1xuICAgIGF3YWl0IGZldGNoKFwiL2FwaS9tb25pdG9yXCIsIHtcbiAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGFjdGlvbjogXCJkZWxldGVBcHBcIiwgaWQgfSksXG4gICAgfSk7XG4gICAgZmV0Y2hEYXRhKCk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRBcHBTdGF0dXMoYXBwSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGFwcFN0YXR1cyA9IHN0YXR1cy5maWx0ZXIoKHMpID0+IHMuYXBwSWQgPT09IGFwcElkKTtcbiAgICBjb25zdCBsYXRlc3QgPSBhcHBTdGF0dXNbYXBwU3RhdHVzLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGlzVXAgPSBsYXRlc3Q/LnN0YXR1cyA9PT0gXCJ1cFwiO1xuICAgIGNvbnN0IHVwdGltZSA9IGFwcFN0YXR1cy5sZW5ndGggPiAwIFxuICAgICAgPyBNYXRoLnJvdW5kKChhcHBTdGF0dXMuZmlsdGVyKHMgPT4gcy5zdGF0dXMgPT09IFwidXBcIikubGVuZ3RoIC8gYXBwU3RhdHVzLmxlbmd0aCkgKiAxMDApXG4gICAgICA6IDEwMDtcbiAgICBjb25zdCBhdmdSZXNwb25zZVRpbWUgPSBhcHBTdGF0dXMubGVuZ3RoID4gMFxuICAgICAgPyBNYXRoLnJvdW5kKGFwcFN0YXR1cy5maWx0ZXIocyA9PiBzLnJlc3BvbnNlVGltZSkucmVkdWNlKChhY2MsIHMpID0+IGFjYyArIChzLnJlc3BvbnNlVGltZSB8fCAwKSwgMCkgLyBhcHBTdGF0dXMuZmlsdGVyKHMgPT4gcy5yZXNwb25zZVRpbWUpLmxlbmd0aCkgfHwgMFxuICAgICAgOiAwO1xuICAgIGNvbnN0IGxhc3QyNEhvdXJzID0gYXBwU3RhdHVzLmZpbHRlcihzID0+IHtcbiAgICAgIGNvbnN0IGhvdXJzQWdvID0gKERhdGUubm93KCkgLSBuZXcgRGF0ZShzLnRpbWVzdGFtcCkuZ2V0VGltZSgpKSAvICgxMDAwICogNjAgKiA2MCk7XG4gICAgICByZXR1cm4gaG91cnNBZ28gPD0gMjQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgbGF0ZXN0LCBpc1VwLCB1cHRpbWUsIGF2Z1Jlc3BvbnNlVGltZSwgaGlzdG9yeTogbGFzdDI0SG91cnMgfTtcbiAgfVxuXG4gIGNvbnN0IHN0YXRzID0ge1xuICAgIHRvdGFsOiBhcHBzLmxlbmd0aCxcbiAgICBvbmxpbmU6IGFwcHMuZmlsdGVyKChhcHApID0+IGdldEFwcFN0YXR1cyhhcHAuaWQpLmlzVXApLmxlbmd0aCxcbiAgICBvZmZsaW5lOiBhcHBzLmZpbHRlcigoYXBwKSA9PiAhZ2V0QXBwU3RhdHVzKGFwcC5pZCkuaXNVcCkubGVuZ3RoLFxuICAgIGF2Z1VwdGltZTogYXBwcy5sZW5ndGggPiAwIFxuICAgICAgPyBNYXRoLnJvdW5kKGFwcHMucmVkdWNlKChhY2MsIGFwcCkgPT4gYWNjICsgZ2V0QXBwU3RhdHVzKGFwcC5pZCkudXB0aW1lLCAwKSAvIGFwcHMubGVuZ3RoKVxuICAgICAgOiAwLFxuICAgIGF2Z1Jlc3BvbnNlVGltZTogYXBwcy5sZW5ndGggPiAwXG4gICAgICA/IE1hdGgucm91bmQoYXBwcy5yZWR1Y2UoKGFjYywgYXBwKSA9PiBhY2MgKyBnZXRBcHBTdGF0dXMoYXBwLmlkKS5hdmdSZXNwb25zZVRpbWUsIDApIC8gYXBwcy5sZW5ndGgpXG4gICAgICA6IDAsXG4gICAgaW5jaWRlbnRzOiBzdGF0dXMuZmlsdGVyKHMgPT4gcy5zdGF0dXMgPT09IFwiZG93blwiKS5sZW5ndGgsXG4gIH07XG5cbiAgY29uc3QgYWxsVXAgPSBzdGF0cy5vbmxpbmUgPT09IHN0YXRzLnRvdGFsICYmIHN0YXRzLnRvdGFsID4gMDtcblxuICBmdW5jdGlvbiBTcGFya2xpbmUoeyBkYXRhIH06IHsgZGF0YTogU3RhdHVzRW50cnlbXSB9KSB7XG4gICAgaWYgKGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImgtOCB3LTIwIGJnLXNsYXRlLTgwMC81MCByb3VuZGVkIGZsZXggaXRlbXMtZW5kIGp1c3RpZnktY2VudGVyIGdhcC0wLjUgcC0xXCI+XG4gICAgICAgICAge0FycmF5LmZyb20oeyBsZW5ndGg6IDggfSkubWFwKChfLCBpKSA9PiAoXG4gICAgICAgICAgICA8ZGl2IGtleT17aX0gY2xhc3NOYW1lPVwidy0xIGJnLXNsYXRlLTcwMCByb3VuZGVkLXNtXCIgc3R5bGU9e3sgaGVpZ2h0OiAnMzAlJyB9fSAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IGJhcnMgPSBkYXRhLnNsaWNlKC04KS5tYXAoKGVudHJ5LCBpKSA9PiB7XG4gICAgICBjb25zdCBoZWlnaHQgPSBlbnRyeS5zdGF0dXMgPT09IFwidXBcIiBcbiAgICAgICAgPyBNYXRoLm1heCgyMCwgTWF0aC5taW4oMTAwLCAxMDAgLSAoKGVudHJ5LnJlc3BvbnNlVGltZSB8fCAxMDApIC8gMTApKSlcbiAgICAgICAgOiAxMDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgY2xhc3NOYW1lPXtgdy0xLjUgcm91bmRlZC1zbSAke2VudHJ5LnN0YXR1cyA9PT0gXCJ1cFwiID8gXCJiZy1lbWVyYWxkLTUwMC84MFwiIDogXCJiZy1yZWQtNTAwLzgwXCJ9YH1cbiAgICAgICAgICBzdHlsZT17eyBoZWlnaHQ6IGAke2hlaWdodH0lYCB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9KTtcbiAgICBcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLTggdy0yMCBiZy1zbGF0ZS04MDAvNTAgcm91bmRlZCBmbGV4IGl0ZW1zLWVuZCBqdXN0aWZ5LWNlbnRlciBnYXAtMC41IHAtMVwiPlxuICAgICAgICB7YmFyc31cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cblxuICBpZiAobG9hZGluZykge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1zbGF0ZS05NTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPG1vdGlvbi5kaXYgXG4gICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwLCBzY2FsZTogMC45IH19XG4gICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCBzY2FsZTogMSB9fVxuICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGdhcC00XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy0xMiBoLTEyIHJvdW5kZWQteGwgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1lbWVyYWxkLTUwMCB0by1jeWFuLTUwMCBhbmltYXRlLXB1bHNlXCIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCB3LTEyIGgtMTIgcm91bmRlZC14bCBiZy1ncmFkaWVudC10by1iciBmcm9tLWVtZXJhbGQtNTAwIHRvLWN5YW4tNTAwIGJsdXIteGwgb3BhY2l0eS01MFwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS00MDAgYW5pbWF0ZS1wdWxzZVwiPkxvYWRpbmcgZGFzaGJvYXJkLi4uPC9wPlxuICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1zbGF0ZS05NTAgdGV4dC1zbGF0ZS0xMDBcIj5cbiAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICA8bW90aW9uLmhlYWRlciBcbiAgICAgICAgaW5pdGlhbD17eyB5OiAtMjAsIG9wYWNpdHk6IDAgfX1cbiAgICAgICAgYW5pbWF0ZT17eyB5OiAwLCBvcGFjaXR5OiAxIH19XG4gICAgICAgIGNsYXNzTmFtZT1cInN0aWNreSB0b3AtMCB6LTUwIGJvcmRlci1iIGJvcmRlci1zbGF0ZS04MDAvNTAgYmctc2xhdGUtOTUwLzgwIGJhY2tkcm9wLWJsdXIteGxcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTd4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04XCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gaC0xNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICA8bW90aW9uLmRpdiBcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZVwiXG4gICAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyBzY2FsZTogMS4wNSB9fVxuICAgICAgICAgICAgICAgIHdoaWxlVGFwPXt7IHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctMTAgaC0xMCByb3VuZGVkLXhsIGJnLWdyYWRpZW50LXRvLWJyIGZyb20tZW1lcmFsZC01MDAgdG8tY3lhbi01MDAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgc2hhZG93LWxnIHNoYWRvdy1lbWVyYWxkLTUwMC8yMFwiPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2aXR5IGNsYXNzTmFtZT1cInctNSBoLTUgdGV4dC13aGl0ZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZVwiPkhlYXJ0YmVhdDwvaDE+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXNsYXRlLTQwMFwiPkluZnJhc3RydWN0dXJlIE1vbml0b3I8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVJlZnJlc2h9XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3JlZnJlc2hpbmd9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIHRleHQtc2xhdGUtNDAwIGhvdmVyOnRleHQtd2hpdGUgaG92ZXI6Ymctc2xhdGUtODAwIHJvdW5kZWQtbGcgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFJlZnJlc2hDdyBjbGFzc05hbWU9e2B3LTUgaC01ICR7cmVmcmVzaGluZyA/ICdhbmltYXRlLXNwaW4nIDogJyd9YH0gLz5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIFxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0FkZEFwcCh0cnVlKX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC00IHB5LTIgYmctZ3JhZGllbnQtdG8tciBmcm9tLWVtZXJhbGQtNjAwIHRvLWVtZXJhbGQtNTAwIGhvdmVyOmZyb20tZW1lcmFsZC01MDAgaG92ZXI6dG8tZW1lcmFsZC00MDAgdGV4dC13aGl0ZSByb3VuZGVkLWxnIHNoYWRvdy1sZyBzaGFkb3ctZW1lcmFsZC01MDAvMjAgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBsdXMgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiaGlkZGVuIHNtOmlubGluZVwiPkFkZCBNb25pdG9yPC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbW90aW9uLmhlYWRlcj5cblxuICAgICAgey8qIE1haW4gQ29udGVudCAqL31cbiAgICAgIDxtYWluIGNsYXNzTmFtZT1cIm1heC13LTd4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04IHB5LThcIj5cbiAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICB0cmFuc2l0aW9uPXt7IHN0YWdnZXJDaGlsZHJlbjogMC4xIH19XG4gICAgICAgICAgY2xhc3NOYW1lPVwic3BhY2UteS04XCJcbiAgICAgICAgPlxuICAgICAgICAgIHsvKiBTdGF0dXMgT3ZlcnZpZXcgKi99XG4gICAgICAgICAgPG1vdGlvbi5kaXYgXG4gICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDEwIH19XG4gICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHk6IDAgfX1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHctMyBoLTMgcm91bmRlZC1mdWxsICR7YWxsVXAgPyAnYmctZW1lcmFsZC01MDAgYW5pbWF0ZS1wdWxzZScgOiAnYmctcmVkLTUwMCd9YH0gLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1tZWRpdW1cIj5cbiAgICAgICAgICAgICAge2FsbFVwID8gJ0FsbCBTeXN0ZW1zIE9wZXJhdGlvbmFsJyA6IGAke3N0YXRzLm9mZmxpbmV9IFNlcnZpY2Uke3N0YXRzLm9mZmxpbmUgPiAxID8gJ3MnIDogJyd9IERvd25gfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS01MDBcIj7igKIgTGFzdCB1cGRhdGVkIHtuZXcgRGF0ZSgpLnRvTG9jYWxlVGltZVN0cmluZygpfTwvc3Bhbj5cbiAgICAgICAgICA8L21vdGlvbi5kaXY+XG5cbiAgICAgICAgICB7LyogU3RhdHMgR3JpZCAqL31cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTQgZ2FwLTRcIj5cbiAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMSB9fVxuICAgICAgICAgICAgICB3aGlsZUhvdmVyPXt7IHk6IC00IH19XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXNsYXRlLTkwMC81MCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCBib3JkZXItbC00IGJvcmRlci1sLWVtZXJhbGQtNTAwIHJvdW5kZWQteGwgcC02IGN1cnNvci1wb2ludGVyIGhvdmVyOmJnLXNsYXRlLTgwMC81MCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTMgcm91bmRlZC14bCBiZy1lbWVyYWxkLTUwMC8xMFwiPlxuICAgICAgICAgICAgICAgICAgPFNlcnZlciBjbGFzc05hbWU9XCJ3LTYgaC02IHRleHQtZW1lcmFsZC01MDBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1ib2xkXCI+e3N0YXRzLm9ubGluZX08c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTUwMCB0ZXh0LWxnXCI+L3tzdGF0cy50b3RhbH08L3NwYW4+PC9wPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMFwiPlNlcnZpY2VzIE9ubGluZTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21vdGlvbi5kaXY+XG5cbiAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMTUgfX1cbiAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyB5OiAtNCB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1zbGF0ZS05MDAvNTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgYm9yZGVyLWwtNCBib3JkZXItbC1ibHVlLTUwMCByb3VuZGVkLXhsIHAtNiBjdXJzb3ItcG9pbnRlciBob3ZlcjpiZy1zbGF0ZS04MDAvNTAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicC0zIHJvdW5kZWQteGwgYmctYmx1ZS01MDAvMTBcIj5cbiAgICAgICAgICAgICAgICAgIDxUcmVuZGluZ1VwIGNsYXNzTmFtZT1cInctNiBoLTYgdGV4dC1ibHVlLTUwMFwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBmb250LWJvbGRcIj57c3RhdHMuYXZnVXB0aW1lfSU8L3A+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtc2xhdGUtNDAwXCI+QXZnIFVwdGltZTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtNCB3LWZ1bGwgYmctc2xhdGUtODAwIHJvdW5kZWQtZnVsbCBoLTJcIj5cbiAgICAgICAgICAgICAgICA8bW90aW9uLmRpdiBcbiAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgd2lkdGg6IDAgfX1cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgd2lkdGg6IGAke3N0YXRzLmF2Z1VwdGltZX0lYCB9fVxuICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkdXJhdGlvbjogMSwgZGVsYXk6IDAuNSB9fVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctYmx1ZS01MDAgaC0yIHJvdW5kZWQtZnVsbFwiIFxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuXG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDIwIH19XG4gICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSwgeTogMCB9fVxuICAgICAgICAgICAgICB0cmFuc2l0aW9uPXt7IGRlbGF5OiAwLjIgfX1cbiAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyB5OiAtNCB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1zbGF0ZS05MDAvNTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgYm9yZGVyLWwtNCBib3JkZXItbC1wdXJwbGUtNTAwIHJvdW5kZWQteGwgcC02IGN1cnNvci1wb2ludGVyIGhvdmVyOmJnLXNsYXRlLTgwMC81MCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTMgcm91bmRlZC14bCBiZy1wdXJwbGUtNTAwLzEwXCI+XG4gICAgICAgICAgICAgICAgICA8Q2xvY2sgY2xhc3NOYW1lPVwidy02IGgtNiB0ZXh0LXB1cnBsZS01MDBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1ib2xkXCI+e3N0YXRzLmF2Z1Jlc3BvbnNlVGltZX08c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTUwMCB0ZXh0LWxnXCI+bXM8L3NwYW4+PC9wPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMFwiPkF2ZyBSZXNwb25zZTwvcD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21vdGlvbi5kaXY+XG5cbiAgICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMjUgfX1cbiAgICAgICAgICAgICAgd2hpbGVIb3Zlcj17eyB5OiAtNCB9fVxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJiZy1zbGF0ZS05MDAvNTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgYm9yZGVyLWwtNCBib3JkZXItbC1hbWJlci01MDAgcm91bmRlZC14bCBwLTYgY3Vyc29yLXBvaW50ZXIgaG92ZXI6Ymctc2xhdGUtODAwLzUwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtMyByb3VuZGVkLXhsIGJnLWFtYmVyLTUwMC8xMFwiPlxuICAgICAgICAgICAgICAgICAgPEFsZXJ0Q2lyY2xlIGNsYXNzTmFtZT1cInctNiBoLTYgdGV4dC1hbWJlci01MDBcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1ib2xkXCI+e3N0YXRzLmluY2lkZW50c308L3A+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtc2xhdGUtNDAwXCI+SW5jaWRlbnRzPC9wPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIHsvKiBNb25pdG9ycyBTZWN0aW9uICovfVxuICAgICAgICAgIDxtb3Rpb24uZGl2XG4gICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IDIwIH19XG4gICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHk6IDAgfX1cbiAgICAgICAgICAgIHRyYW5zaXRpb249e3sgZGVsYXk6IDAuMyB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmctc2xhdGUtOTAwLzUwIGJvcmRlciBib3JkZXItc2xhdGUtODAwIHJvdW5kZWQteGwgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTYgcHktNCBib3JkZXItYiBib3JkZXItc2xhdGUtODAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxHbG9iZSBjbGFzc05hbWU9XCJ3LTUgaC01IHRleHQtc2xhdGUtNDAwXCIgLz5cbiAgICAgICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZFwiPk1vbml0b3JlZCBTZXJ2aWNlczwvaDI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMCBtdC0xXCI+e3N0YXRzLnRvdGFsfSBhY3RpdmUgbW9uaXRvcntzdGF0cy50b3RhbCAhPT0gMSA/ICdzJyA6ICcnfTwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRWaWV3TW9kZSh2aWV3TW9kZSA9PT0gXCJncmlkXCIgPyBcImxpc3RcIiA6IFwiZ3JpZFwiKX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInAtMiB0ZXh0LXNsYXRlLTQwMCBob3Zlcjp0ZXh0LXdoaXRlIGhvdmVyOmJnLXNsYXRlLTgwMCByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7dmlld01vZGUgPT09IFwiZ3JpZFwiID8gPExpc3QgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+IDogPExheW91dEdyaWQgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInAtNlwiPlxuICAgICAgICAgICAgICB7YXBwcy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICAgICAgPG1vdGlvbi5kaXYgXG4gICAgICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHNjYWxlOiAwLjk1IH19XG4gICAgICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHNjYWxlOiAxIH19XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBweS0xNlwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ3LTIwIGgtMjAgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1zbGF0ZS04MDAgdG8tc2xhdGUtOTAwIHJvdW5kZWQtMnhsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG14LWF1dG8gbWItNiBzaGFkb3ctaW5uZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPEFjdGl2aXR5IGNsYXNzTmFtZT1cInctMTAgaC0xMCB0ZXh0LXNsYXRlLTYwMFwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgbWItMlwiPk5vIG1vbml0b3JzIHlldDwvaDM+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNsYXRlLTQwMCBtYi02XCI+U3RhcnQgbW9uaXRvcmluZyB5b3VyIHNlcnZpY2VzIGJ5IGFkZGluZyB5b3VyIGZpcnN0IG1vbml0b3I8L3A+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uIFxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTaG93QWRkQXBwKHRydWUpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJweC00IHB5LTIgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC01MDAgdGV4dC13aGl0ZSByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQWRkIFlvdXIgRmlyc3QgTW9uaXRvclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICApIDogdmlld01vZGUgPT09IFwiZ3JpZFwiID8gKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBncmlkLWNvbHMtMSBsZzpncmlkLWNvbHMtMiBnYXAtNFwiPlxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVQcmVzZW5jZT5cbiAgICAgICAgICAgICAgICAgICAge2FwcHMubWFwKChhcHAsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBpc1VwLCB1cHRpbWUsIGF2Z1Jlc3BvbnNlVGltZSwgaGlzdG9yeSwgbGF0ZXN0IH0gPSBnZXRBcHBTdGF0dXMoYXBwLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXthcHAuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWw9e3sgb3BhY2l0eTogMCwgeTogMjAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZT17eyBvcGFjaXR5OiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQ9e3sgb3BhY2l0eTogMCwgc2NhbGU6IDAuOTUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17eyBkZWxheTogaW5kZXggKiAwLjA1IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlSG92ZXI9e3sgeTogLTQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgYmctc2xhdGUtOTAwIGJvcmRlciBib3JkZXItc2xhdGUtODAwIHJvdW5kZWQteGwgYm9yZGVyLWwtNCAke2lzVXAgPyAnYm9yZGVyLWwtZW1lcmFsZC01MDAnIDogJ2JvcmRlci1sLXJlZC01MDAnfSBwLTUgZ3JvdXBgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2B3LTEwIGgtMTAgcm91bmRlZC14bCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAke2lzVXAgPyAnYmctZW1lcmFsZC01MDAvMTAnIDogJ2JnLXJlZC01MDAvMTAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VydmVyIGNsYXNzTmFtZT17YHctNSBoLTUgJHtpc1VwID8gJ3RleHQtZW1lcmFsZC01MDAnIDogJ3RleHQtcmVkLTUwMCd9YH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGQgdGV4dC1sZ1wiPnthcHAubmFtZX08L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXthcHAudXJsfSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtc2xhdGUtNDAwIGhvdmVyOnRleHQtZW1lcmFsZC00MDAgdHJhbnNpdGlvbi1jb2xvcnMgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2FwcC51cmx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEV4dGVybmFsTGluayBjbGFzc05hbWU9XCJ3LTMgaC0zXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgcHgtMi41IHB5LTEgcm91bmRlZC1mdWxsIHRleHQteHMgZm9udC1tZWRpdW0gYm9yZGVyICR7aXNVcCA/ICdib3JkZXItZW1lcmFsZC01MDAvMzAgYmctZW1lcmFsZC01MDAvMTAgdGV4dC1lbWVyYWxkLTQwMCcgOiAnYm9yZGVyLXJlZC01MDAvMzAgYmctcmVkLTUwMC8xMCB0ZXh0LXJlZC00MDAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgcmVsYXRpdmUgZmxleCBoLTIgdy0yYH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17YGFuaW1hdGUtcGluZyBhYnNvbHV0ZSBpbmxpbmUtZmxleCBoLWZ1bGwgdy1mdWxsIHJvdW5kZWQtZnVsbCBvcGFjaXR5LTc1ICR7aXNVcCA/ICdiZy1lbWVyYWxkLTQwMCcgOiAnYmctcmVkLTQwMCd9YH0+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2ByZWxhdGl2ZSBpbmxpbmUtZmxleCByb3VuZGVkLWZ1bGwgaC0yIHctMiAke2lzVXAgPyAnYmctZW1lcmFsZC01MDAnIDogJ2JnLXJlZC01MDAnfWB9Pjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpc1VwID8gXCJPcGVyYXRpb25hbFwiIDogXCJEb3duXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTQgZ3JpZCBncmlkLWNvbHMtMyBnYXAtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGRcIj57dXB0aW1lfSU8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtc2xhdGUtNDAwXCI+VXB0aW1lPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LWJvbGRcIj57YXZnUmVzcG9uc2VUaW1lID4gMCA/IGAke2F2Z1Jlc3BvbnNlVGltZX1tc2AgOiAn4oCUJ308L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtc2xhdGUtNDAwXCI+UmVzcG9uc2U8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNwYXJrbGluZSBkYXRhPXtoaXN0b3J5fSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTQgcHQtNCBib3JkZXItdCBib3JkZXItc2xhdGUtODAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1zbGF0ZS01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExhc3QgY2hlY2s6IHtsYXRlc3QgPyBuZXcgRGF0ZShsYXRlc3QudGltZXN0YW1wKS50b0xvY2FsZVRpbWVTdHJpbmcoKSA6ICdOZXZlcid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGRlbGV0ZUFwcChhcHAuaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicC0yIHRleHQtc2xhdGUtNTAwIGhvdmVyOnRleHQtcmVkLTQwMCBob3ZlcjpiZy1yZWQtNTAwLzEwIHJvdW5kZWQtbGcgb3BhY2l0eS0wIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwIHRyYW5zaXRpb24tYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHJhc2gyIGNsYXNzTmFtZT1cInctNCBoLTRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIDwvQW5pbWF0ZVByZXNlbmNlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGl2aWRlLXkgZGl2aWRlLXNsYXRlLTgwMFwiPlxuICAgICAgICAgICAgICAgICAgPEFuaW1hdGVQcmVzZW5jZT5cbiAgICAgICAgICAgICAgICAgICAge2FwcHMubWFwKChhcHApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGlzVXAsIHVwdGltZSwgYXZnUmVzcG9uc2VUaW1lLCBoaXN0b3J5LCBsYXRlc3QgfSA9IGdldEFwcFN0YXR1cyhhcHAuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2FwcC5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBleGl0PXt7IG9wYWNpdHk6IDAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicHktNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ3JvdXAgaG92ZXI6Ymctc2xhdGUtODAwLzMwIHRyYW5zaXRpb24tY29sb3JzIHB4LTIgcm91bmRlZC1sZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YHctMiBoLTEyIHJvdW5kZWQtZnVsbCAke2lzVXAgPyAnYmctZW1lcmFsZC01MDAnIDogJ2JnLXJlZC01MDAnfWB9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJmb250LXNlbWlib2xkXCI+e2FwcC5uYW1lfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPXthcHAudXJsfSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXNsYXRlLTQwMCBob3Zlcjp0ZXh0LWVtZXJhbGQtNDAwIHRyYW5zaXRpb24tY29sb3JzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthcHAudXJsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLThcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtcmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteGwgZm9udC1ib2xkXCI+e3VwdGltZX0lPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXNsYXRlLTQwMFwiPlVwdGltZTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U3BhcmtsaW5lIGRhdGE9e2hpc3Rvcnl9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0xLjUgcHgtMi41IHB5LTEgcm91bmRlZC1mdWxsIHRleHQteHMgZm9udC1tZWRpdW0gYm9yZGVyICR7aXNVcCA/ICdib3JkZXItZW1lcmFsZC01MDAvMzAgYmctZW1lcmFsZC01MDAvMTAgdGV4dC1lbWVyYWxkLTQwMCcgOiAnYm9yZGVyLXJlZC01MDAvMzAgYmctcmVkLTUwMC8xMCB0ZXh0LXJlZC00MDAnfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgdy0yIGgtMiByb3VuZGVkLWZ1bGwgJHtpc1VwID8gJ2JnLWVtZXJhbGQtNTAwJyA6ICdiZy1yZWQtNTAwJ31gfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lzVXAgPyBcIk9wZXJhdGlvbmFsXCIgOiBcIkRvd25cIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gZGVsZXRlQXBwKGFwcC5pZCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJwLTIgdGV4dC1zbGF0ZS01MDAgaG92ZXI6dGV4dC1yZWQtNDAwIGhvdmVyOmJnLXJlZC01MDAvMTAgcm91bmRlZC1sZyBvcGFjaXR5LTAgZ3JvdXAtaG92ZXI6b3BhY2l0eS0xMDAgdHJhbnNpdGlvbi1hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUcmFzaDIgY2xhc3NOYW1lPVwidy00IGgtNFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgPC9BbmltYXRlUHJlc2VuY2U+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgIDwvbW90aW9uLmRpdj5cbiAgICAgIDwvbWFpbj5cblxuICAgICAgey8qIEFkZCBNb25pdG9yIERpYWxvZyAqL31cbiAgICAgIDxBbmltYXRlUHJlc2VuY2U+XG4gICAgICAgIHtzaG93QWRkQXBwICYmIChcbiAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEgfX1cbiAgICAgICAgICAgIGV4aXQ9e3sgb3BhY2l0eTogMCB9fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQgaW5zZXQtMCBiZy1ibGFjay82MCBiYWNrZHJvcC1ibHVyLXNtIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHotNTAgcC00XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bW90aW9uLmRpdlxuICAgICAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHNjYWxlOiAwLjk1LCB5OiAyMCB9fVxuICAgICAgICAgICAgICBhbmltYXRlPXt7IG9wYWNpdHk6IDEsIHNjYWxlOiAxLCB5OiAwIH19XG4gICAgICAgICAgICAgIGV4aXQ9e3sgb3BhY2l0eTogMCwgc2NhbGU6IDAuOTUsIHk6IDIwIH19XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJnLXNsYXRlLTkwMCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCByb3VuZGVkLXhsIHAtNiB3LWZ1bGwgbWF4LXctbWQgc2hhZG93LTJ4bFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtYm9sZCBtYi0yXCI+QWRkIE5ldyBNb25pdG9yPC9oMj5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbGF0ZS00MDAgdGV4dC1zbSBtYi02XCI+TW9uaXRvciBhIG5ldyBzZXJ2aWNlIGJ5IHByb3ZpZGluZyBpdHMgZGV0YWlscyBiZWxvdy48L3A+XG4gICAgICAgICAgICAgIDxmb3JtIG9uU3VibWl0PXthZGRBcHB9IGNsYXNzTmFtZT1cInNwYWNlLXktNFwiPlxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSBtYi0yXCI+TW9uaXRvciBOYW1lPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiBcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e25ld0FwcC5uYW1lfSBcbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXROZXdBcHAoeyAuLi5uZXdBcHAsIG5hbWU6IGUudGFyZ2V0LnZhbHVlIH0pfSBcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLXNsYXRlLTk1MCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCByb3VuZGVkLWxnIHB4LTQgcHktMi41IHRleHQtd2hpdGUgcGxhY2Vob2xkZXItc2xhdGUtNTAwIGZvY3VzOmJvcmRlci1lbWVyYWxkLTUwMCBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1lbWVyYWxkLTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTXkgQXBwbGljYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCBcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdyaWQtY29scy0yIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1zbSBmb250LW1lZGl1bSBtYi0yXCI+VVJMPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ1cmxcIiBcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17bmV3QXBwLnVybH0gXG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXROZXdBcHAoeyAuLi5uZXdBcHAsIHVybDogZS50YXJnZXQudmFsdWUgfSl9IFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCBiZy1zbGF0ZS05NTAgYm9yZGVyIGJvcmRlci1zbGF0ZS04MDAgcm91bmRlZC1sZyBweC00IHB5LTIuNSB0ZXh0LXdoaXRlIHBsYWNlaG9sZGVyLXNsYXRlLTUwMCBmb2N1czpib3JkZXItZW1lcmFsZC01MDAgZm9jdXM6cmluZy0xIGZvY3VzOnJpbmctZW1lcmFsZC01MDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiaHR0cDovL2xvY2FsaG9zdDozMDAwXCJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCBcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cImJsb2NrIHRleHQtc20gZm9udC1tZWRpdW0gbWItMlwiPlBvcnQ8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiIFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtuZXdBcHAucG9ydH0gXG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXROZXdBcHAoeyAuLi5uZXdBcHAsIHBvcnQ6IHBhcnNlSW50KGUudGFyZ2V0LnZhbHVlKSB9KX0gXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIGJnLXNsYXRlLTk1MCBib3JkZXIgYm9yZGVyLXNsYXRlLTgwMCByb3VuZGVkLWxnIHB4LTQgcHktMi41IHRleHQtd2hpdGUgcGxhY2Vob2xkZXItc2xhdGUtNTAwIGZvY3VzOmJvcmRlci1lbWVyYWxkLTUwMCBmb2N1czpyaW5nLTEgZm9jdXM6cmluZy1lbWVyYWxkLTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQgXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTMgcHQtNFwiPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2hvd0FkZEFwcChmYWxzZSl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMSBweC00IHB5LTIuNSBib3JkZXIgYm9yZGVyLXNsYXRlLTcwMCByb3VuZGVkLWxnIGhvdmVyOmJnLXNsYXRlLTgwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmbGV4LTEgcHgtNCBweS0yLjUgYmctZW1lcmFsZC02MDAgaG92ZXI6YmctZW1lcmFsZC01MDAgdGV4dC13aGl0ZSByb3VuZGVkLWxnIHRyYW5zaXRpb24tY29sb3JzIGZvbnQtbWVkaXVtXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgQWRkIE1vbml0b3JcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8L21vdGlvbi5kaXY+XG4gICAgICAgICAgPC9tb3Rpb24uZGl2PlxuICAgICAgICApfVxuICAgICAgPC9BbmltYXRlUHJlc2VuY2U+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJtb3Rpb24iLCJBbmltYXRlUHJlc2VuY2UiLCJBY3Rpdml0eSIsIlBsdXMiLCJSZWZyZXNoQ3ciLCJUcmFzaDIiLCJFeHRlcm5hbExpbmsiLCJTZXJ2ZXIiLCJUcmVuZGluZ1VwIiwiQWxlcnRDaXJjbGUiLCJHbG9iZSIsIkNsb2NrIiwiTGF5b3V0R3JpZCIsIkxpc3QiLCJIZWFydGJlYXRNb25pdG9yIiwiYXBwcyIsInNldEFwcHMiLCJzdGF0dXMiLCJzZXRTdGF0dXMiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsInJlZnJlc2hpbmciLCJzZXRSZWZyZXNoaW5nIiwic2hvd0FkZEFwcCIsInNldFNob3dBZGRBcHAiLCJ2aWV3TW9kZSIsInNldFZpZXdNb2RlIiwibmV3QXBwIiwic2V0TmV3QXBwIiwibmFtZSIsImRlc2NyaXB0aW9uIiwidXJsIiwicG9ydCIsInBhdGgiLCJjb21tYW5kIiwiY2F0ZWdvcnkiLCJjb2xvciIsImVuYWJsZWQiLCJmZXRjaERhdGEiLCJpbnRlcnZhbCIsInNldEludGVydmFsIiwiY2xlYXJJbnRlcnZhbCIsInJlcyIsImZldGNoIiwiZGF0YSIsImpzb24iLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJoYW5kbGVSZWZyZXNoIiwiYWRkQXBwIiwiZSIsInByZXZlbnREZWZhdWx0IiwibWV0aG9kIiwiaGVhZGVycyIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiYWN0aW9uIiwiYXBwIiwiZGVsZXRlQXBwIiwiaWQiLCJjb25maXJtIiwiZ2V0QXBwU3RhdHVzIiwiYXBwSWQiLCJhcHBTdGF0dXMiLCJmaWx0ZXIiLCJzIiwibGF0ZXN0IiwibGVuZ3RoIiwiaXNVcCIsInVwdGltZSIsIk1hdGgiLCJyb3VuZCIsImF2Z1Jlc3BvbnNlVGltZSIsInJlc3BvbnNlVGltZSIsInJlZHVjZSIsImFjYyIsImxhc3QyNEhvdXJzIiwiaG91cnNBZ28iLCJEYXRlIiwibm93IiwidGltZXN0YW1wIiwiZ2V0VGltZSIsImhpc3RvcnkiLCJzdGF0cyIsInRvdGFsIiwib25saW5lIiwib2ZmbGluZSIsImF2Z1VwdGltZSIsImluY2lkZW50cyIsImFsbFVwIiwiU3BhcmtsaW5lIiwiZGl2IiwiY2xhc3NOYW1lIiwiQXJyYXkiLCJmcm9tIiwibWFwIiwiXyIsImkiLCJzdHlsZSIsImhlaWdodCIsImJhcnMiLCJzbGljZSIsImVudHJ5IiwibWF4IiwibWluIiwiaW5pdGlhbCIsIm9wYWNpdHkiLCJzY2FsZSIsImFuaW1hdGUiLCJwIiwiaGVhZGVyIiwieSIsIndoaWxlSG92ZXIiLCJ3aGlsZVRhcCIsImgxIiwiYnV0dG9uIiwib25DbGljayIsImRpc2FibGVkIiwic3BhbiIsIm1haW4iLCJ0cmFuc2l0aW9uIiwic3RhZ2dlckNoaWxkcmVuIiwidG9Mb2NhbGVUaW1lU3RyaW5nIiwiZGVsYXkiLCJ3aWR0aCIsImR1cmF0aW9uIiwiaDIiLCJoMyIsImluZGV4IiwiZXhpdCIsImEiLCJocmVmIiwidGFyZ2V0IiwicmVsIiwiZm9ybSIsIm9uU3VibWl0IiwibGFiZWwiLCJpbnB1dCIsInR5cGUiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwicGxhY2Vob2xkZXIiLCJyZXF1aXJlZCIsInBhcnNlSW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./src/app/page.tsx\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PopChild: () => (/* binding */ PopChild)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/MotionConfigContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _utils_use_composed_ref_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/use-composed-ref.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs\");\n/* __next_internal_client_entry_do_not_use__ PopChild auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\n/**\n * Measurement functionality has to be within a separate component\n * to leverage snapshot lifecycle.\n */ class PopChildMeasure extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n getSnapshotBeforeUpdate(prevProps) {\n const element = this.props.childRef.current;\n if (element && prevProps.isPresent && !this.props.isPresent && this.props.pop !== false) {\n const parent = element.offsetParent;\n const parentWidth = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(parent) ? parent.offsetWidth || 0 : 0;\n const parentHeight = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(parent) ? parent.offsetHeight || 0 : 0;\n const size = this.props.sizeRef.current;\n size.height = element.offsetHeight || 0;\n size.width = element.offsetWidth || 0;\n size.top = element.offsetTop;\n size.left = element.offsetLeft;\n size.right = parentWidth - size.width - size.left;\n size.bottom = parentHeight - size.height - size.top;\n }\n return null;\n }\n /**\n * Required with getSnapshotBeforeUpdate to stop React complaining.\n */ componentDidUpdate() {}\n render() {\n return this.props.children;\n }\n}\nfunction PopChild(param) {\n let { children, isPresent, anchorX, anchorY, root, pop } = param;\n var _children_props;\n _s();\n const id = (0,react__WEBPACK_IMPORTED_MODULE_1__.useId)();\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const size = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)({\n width: 0,\n height: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n });\n const { nonce } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_3__.MotionConfigContext);\n var _children_props_ref;\n /**\n * In React 19, refs are passed via props.ref instead of element.ref.\n * We check props.ref first (React 19) and fall back to element.ref (React 18).\n */ const childRef = (_children_props_ref = (_children_props = children.props) === null || _children_props === void 0 ? void 0 : _children_props.ref) !== null && _children_props_ref !== void 0 ? _children_props_ref : children === null || children === void 0 ? void 0 : children.ref;\n const composedRef = (0,_utils_use_composed_ref_mjs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs)(ref, childRef);\n /**\n * We create and inject a style block so we can apply this explicit\n * sizing in a non-destructive manner by just deleting the style block.\n *\n * We can't apply size via render as the measurement happens\n * in getSnapshotBeforeUpdate (post-render), likewise if we apply the\n * styles directly on the DOM node, we might be overwriting\n * styles set via the style prop.\n */ (0,react__WEBPACK_IMPORTED_MODULE_1__.useInsertionEffect)({\n \"PopChild.useInsertionEffect\": ()=>{\n const { width, height, top, left, right, bottom } = size.current;\n if (isPresent || pop === false || !ref.current || !width || !height) return;\n const x = anchorX === \"left\" ? \"left: \".concat(left) : \"right: \".concat(right);\n const y = anchorY === \"bottom\" ? \"bottom: \".concat(bottom) : \"top: \".concat(top);\n ref.current.dataset.motionPopId = id;\n const style = document.createElement(\"style\");\n if (nonce) style.nonce = nonce;\n const parent = root !== null && root !== void 0 ? root : document.head;\n parent.appendChild(style);\n if (style.sheet) {\n style.sheet.insertRule('\\n [data-motion-pop-id=\"'.concat(id, '\"] {\\n position: absolute !important;\\n width: ').concat(width, \"px !important;\\n height: \").concat(height, \"px !important;\\n \").concat(x, \"px !important;\\n \").concat(y, \"px !important;\\n }\\n \"));\n }\n return ({\n \"PopChild.useInsertionEffect\": ()=>{\n if (parent.contains(style)) {\n parent.removeChild(style);\n }\n }\n })[\"PopChild.useInsertionEffect\"];\n }\n }[\"PopChild.useInsertionEffect\"], [\n isPresent\n ]);\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PopChildMeasure, {\n isPresent: isPresent,\n childRef: ref,\n sizeRef: size,\n pop: pop,\n children: pop === false ? children : /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.cloneElement(children, {\n ref: composedRef\n })\n });\n}\n_s(PopChild, \"QhKiIZwbt8eea+7alp/wi+bg3HI=\", false, function() {\n return [\n react__WEBPACK_IMPORTED_MODULE_1__.useId,\n _utils_use_composed_ref_mjs__WEBPACK_IMPORTED_MODULE_4__.useComposedRefs,\n react__WEBPACK_IMPORTED_MODULE_1__.useInsertionEffect\n ];\n});\n_c = PopChild;\n //# sourceMappingURL=PopChild.mjs.map\nvar _c;\n$RefreshReg$(_c, \"PopChild\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvUG9wQ2hpbGQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQ0E7OztDQUdHLEdBQ0g7SUFDSTs7O1lBR1E7WUFDQSx3RkFDSTtZQUVKLHlGQUNJOzs7O1lBTUo7WUFDQTtZQUNBO1lBQ0E7O1FBR0o7O0lBR0o7O0tBRUcsR0FDSDs7UUFHSTs7QUFFUDtBQUVlO1FBQUE7UUFnQlo7O0lBZkE7SUFDQTs7UUFFSTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7SUFDSDs7UUFNRDtJQUpBOzs7S0FHRyxHQUNIOztJQUtBOzs7Ozs7OztLQVFHOztZQUVDO1lBQ0E7WUFFQTtZQUNBOzs7WUFLQSxXQUFXO1lBRVg7WUFDQTtZQUVBO2dCQUNJOztZQVdKOytDQUFBO29CQUNJO3dCQUNJOztnQkFFUjs7UUFDSjtzQ0FBQTtRQUFBO0tBQUE7Ozs7OztrQ0FLWSx5QkFDQTtZQUFBO1FBQUE7SUFBQTtBQUdoQjtHQXZFZ0I7O1FBQ1o7Ozs7O0tBRFkiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9jb21wb25lbnRzL0FuaW1hdGVQcmVzZW5jZS9Qb3BDaGlsZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgaXNIVE1MRWxlbWVudCB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VJZCwgdXNlSW5zZXJ0aW9uRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIlxuXG5pbXBvcnQgeyBNb3Rpb25Db25maWdDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvTW90aW9uQ29uZmlnQ29udGV4dFwiXG5pbXBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfSBmcm9tIFwiLi4vLi4vdXRpbHMvdXNlLWNvbXBvc2VkLXJlZlwiXG5cbmludGVyZmFjZSBTaXplIHtcbiAgICB3aWR0aDogbnVtYmVyXG4gICAgaGVpZ2h0OiBudW1iZXJcbiAgICB0b3A6IG51bWJlclxuICAgIGxlZnQ6IG51bWJlclxuICAgIHJpZ2h0OiBudW1iZXJcbiAgICBib3R0b206IG51bWJlclxufVxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnRcbiAgICBpc1ByZXNlbnQ6IGJvb2xlYW5cbiAgICBhbmNob3JYPzogXCJsZWZ0XCIgfCBcInJpZ2h0XCJcbiAgICBhbmNob3JZPzogXCJ0b3BcIiB8IFwiYm90dG9tXCJcbiAgICByb290PzogSFRNTEVsZW1lbnQgfCBTaGFkb3dSb290XG4gICAgcG9wPzogYm9vbGVhblxufVxuXG5pbnRlcmZhY2UgTWVhc3VyZVByb3BzIGV4dGVuZHMgUHJvcHMge1xuICAgIGNoaWxkUmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTEVsZW1lbnQgfCBudWxsPlxuICAgIHNpemVSZWY6IFJlYWN0LlJlZk9iamVjdDxTaXplPlxufVxuXG4vKipcbiAqIE1lYXN1cmVtZW50IGZ1bmN0aW9uYWxpdHkgaGFzIHRvIGJlIHdpdGhpbiBhIHNlcGFyYXRlIGNvbXBvbmVudFxuICogdG8gbGV2ZXJhZ2Ugc25hcHNob3QgbGlmZWN5Y2xlLlxuICovXG5jbGFzcyBQb3BDaGlsZE1lYXN1cmUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8TWVhc3VyZVByb3BzPiB7XG4gICAgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzOiBNZWFzdXJlUHJvcHMpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMucHJvcHMuY2hpbGRSZWYuY3VycmVudFxuICAgICAgICBpZiAoZWxlbWVudCAmJiBwcmV2UHJvcHMuaXNQcmVzZW50ICYmICF0aGlzLnByb3BzLmlzUHJlc2VudCAmJiB0aGlzLnByb3BzLnBvcCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRXaWR0aCA9IGlzSFRNTEVsZW1lbnQocGFyZW50KVxuICAgICAgICAgICAgICAgID8gcGFyZW50Lm9mZnNldFdpZHRoIHx8IDBcbiAgICAgICAgICAgICAgICA6IDBcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudEhlaWdodCA9IGlzSFRNTEVsZW1lbnQocGFyZW50KVxuICAgICAgICAgICAgICAgID8gcGFyZW50Lm9mZnNldEhlaWdodCB8fCAwXG4gICAgICAgICAgICAgICAgOiAwXG5cbiAgICAgICAgICAgIGNvbnN0IHNpemUgPSB0aGlzLnByb3BzLnNpemVSZWYuY3VycmVudCFcbiAgICAgICAgICAgIHNpemUuaGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQgfHwgMFxuICAgICAgICAgICAgc2l6ZS53aWR0aCA9IGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMFxuICAgICAgICAgICAgc2l6ZS50b3AgPSBlbGVtZW50Lm9mZnNldFRvcFxuICAgICAgICAgICAgc2l6ZS5sZWZ0ID0gZWxlbWVudC5vZmZzZXRMZWZ0XG4gICAgICAgICAgICBzaXplLnJpZ2h0ID0gcGFyZW50V2lkdGggLSBzaXplLndpZHRoIC0gc2l6ZS5sZWZ0XG4gICAgICAgICAgICBzaXplLmJvdHRvbSA9IHBhcmVudEhlaWdodCAtIHNpemUuaGVpZ2h0IC0gc2l6ZS50b3BcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVxdWlyZWQgd2l0aCBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSB0byBzdG9wIFJlYWN0IGNvbXBsYWluaW5nLlxuICAgICAqL1xuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHt9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuXG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gUG9wQ2hpbGQoeyBjaGlsZHJlbiwgaXNQcmVzZW50LCBhbmNob3JYLCBhbmNob3JZLCByb290LCBwb3AgfTogUHJvcHMpIHtcbiAgICBjb25zdCBpZCA9IHVzZUlkKClcbiAgICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQ+KG51bGwpXG4gICAgY29uc3Qgc2l6ZSA9IHVzZVJlZjxTaXplPih7XG4gICAgICAgIHdpZHRoOiAwLFxuICAgICAgICBoZWlnaHQ6IDAsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgIGJvdHRvbTogMCxcbiAgICB9KVxuICAgIGNvbnN0IHsgbm9uY2UgfSA9IHVzZUNvbnRleHQoTW90aW9uQ29uZmlnQ29udGV4dClcbiAgICAvKipcbiAgICAgKiBJbiBSZWFjdCAxOSwgcmVmcyBhcmUgcGFzc2VkIHZpYSBwcm9wcy5yZWYgaW5zdGVhZCBvZiBlbGVtZW50LnJlZi5cbiAgICAgKiBXZSBjaGVjayBwcm9wcy5yZWYgZmlyc3QgKFJlYWN0IDE5KSBhbmQgZmFsbCBiYWNrIHRvIGVsZW1lbnQucmVmIChSZWFjdCAxOCkuXG4gICAgICovXG4gICAgY29uc3QgY2hpbGRSZWYgPVxuICAgICAgICAoY2hpbGRyZW4ucHJvcHMgYXMgeyByZWY/OiBSZWFjdC5SZWY8SFRNTEVsZW1lbnQ+IH0pPy5yZWYgPz9cbiAgICAgICAgKGNoaWxkcmVuIGFzIHVua25vd24gYXMgeyByZWY/OiBSZWFjdC5SZWY8SFRNTEVsZW1lbnQ+IH0pPy5yZWZcbiAgICBjb25zdCBjb21wb3NlZFJlZiA9IHVzZUNvbXBvc2VkUmVmcyhyZWYsIGNoaWxkUmVmKVxuXG4gICAgLyoqXG4gICAgICogV2UgY3JlYXRlIGFuZCBpbmplY3QgYSBzdHlsZSBibG9jayBzbyB3ZSBjYW4gYXBwbHkgdGhpcyBleHBsaWNpdFxuICAgICAqIHNpemluZyBpbiBhIG5vbi1kZXN0cnVjdGl2ZSBtYW5uZXIgYnkganVzdCBkZWxldGluZyB0aGUgc3R5bGUgYmxvY2suXG4gICAgICpcbiAgICAgKiBXZSBjYW4ndCBhcHBseSBzaXplIHZpYSByZW5kZXIgYXMgdGhlIG1lYXN1cmVtZW50IGhhcHBlbnNcbiAgICAgKiBpbiBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSAocG9zdC1yZW5kZXIpLCBsaWtld2lzZSBpZiB3ZSBhcHBseSB0aGVcbiAgICAgKiBzdHlsZXMgZGlyZWN0bHkgb24gdGhlIERPTSBub2RlLCB3ZSBtaWdodCBiZSBvdmVyd3JpdGluZ1xuICAgICAqIHN0eWxlcyBzZXQgdmlhIHRoZSBzdHlsZSBwcm9wLlxuICAgICAqL1xuICAgIHVzZUluc2VydGlvbkVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgdG9wLCBsZWZ0LCByaWdodCwgYm90dG9tIH0gPSBzaXplLmN1cnJlbnRcbiAgICAgICAgaWYgKGlzUHJlc2VudCB8fCBwb3AgPT09IGZhbHNlIHx8ICFyZWYuY3VycmVudCB8fCAhd2lkdGggfHwgIWhlaWdodCkgcmV0dXJuXG5cbiAgICAgICAgY29uc3QgeCA9IGFuY2hvclggPT09IFwibGVmdFwiID8gYGxlZnQ6ICR7bGVmdH1gIDogYHJpZ2h0OiAke3JpZ2h0fWBcbiAgICAgICAgY29uc3QgeSA9IGFuY2hvclkgPT09IFwiYm90dG9tXCIgPyBgYm90dG9tOiAke2JvdHRvbX1gIDogYHRvcDogJHt0b3B9YFxuXG4gICAgICAgIHJlZi5jdXJyZW50LmRhdGFzZXQubW90aW9uUG9wSWQgPSBpZFxuXG4gICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpXG4gICAgICAgIGlmIChub25jZSkgc3R5bGUubm9uY2UgPSBub25jZVxuXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHJvb3QgPz8gZG9jdW1lbnQuaGVhZFxuICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoc3R5bGUpXG5cbiAgICAgICAgaWYgKHN0eWxlLnNoZWV0KSB7XG4gICAgICAgICAgICBzdHlsZS5zaGVldC5pbnNlcnRSdWxlKGBcbiAgICAgICAgICBbZGF0YS1tb3Rpb24tcG9wLWlkPVwiJHtpZH1cIl0ge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aWR0aDogJHt3aWR0aH1weCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgaGVpZ2h0OiAke2hlaWdodH1weCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgJHt4fXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAke3l9cHggIWltcG9ydGFudDtcbiAgICAgICAgICB9XG4gICAgICAgIGApXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHBhcmVudC5jb250YWlucyhzdHlsZSkpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQoc3R5bGUpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbaXNQcmVzZW50XSlcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxQb3BDaGlsZE1lYXN1cmUgaXNQcmVzZW50PXtpc1ByZXNlbnR9IGNoaWxkUmVmPXtyZWZ9IHNpemVSZWY9e3NpemV9IHBvcD17cG9wfT5cbiAgICAgICAgICAgIHtwb3AgPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgPyBjaGlsZHJlblxuICAgICAgICAgICAgICAgIDogUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkcmVuIGFzIGFueSwgeyByZWY6IGNvbXBvc2VkUmVmIH0pfVxuICAgICAgICA8L1BvcENoaWxkTWVhc3VyZT5cbiAgICApXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs": +/*!*****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PresenceChild: () => (/* binding */ PresenceChild)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* harmony import */ var _PopChild_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PopChild.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs\");\n/* __next_internal_client_entry_do_not_use__ PresenceChild auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\nconst PresenceChild = (param)=>{\n let { children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, anchorY, root } = param;\n _s();\n const presenceChildren = (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__.useConstant)(newChildrenMap);\n const id = (0,react__WEBPACK_IMPORTED_MODULE_1__.useId)();\n let isReusedContext = true;\n let context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"PresenceChild.useMemo[context]\": ()=>{\n isReusedContext = false;\n return {\n id,\n initial,\n isPresent,\n custom,\n onExitComplete: ({\n \"PresenceChild.useMemo[context]\": (childId)=>{\n presenceChildren.set(childId, true);\n for (const isComplete of presenceChildren.values()){\n if (!isComplete) return; // can stop searching when any is incomplete\n }\n onExitComplete && onExitComplete();\n }\n })[\"PresenceChild.useMemo[context]\"],\n register: ({\n \"PresenceChild.useMemo[context]\": (childId)=>{\n presenceChildren.set(childId, false);\n return ({\n \"PresenceChild.useMemo[context]\": ()=>presenceChildren.delete(childId)\n })[\"PresenceChild.useMemo[context]\"];\n }\n })[\"PresenceChild.useMemo[context]\"]\n };\n }\n }[\"PresenceChild.useMemo[context]\"], [\n isPresent,\n presenceChildren,\n onExitComplete\n ]);\n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */ if (presenceAffectsLayout && isReusedContext) {\n context = {\n ...context\n };\n }\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"PresenceChild.useMemo\": ()=>{\n presenceChildren.forEach({\n \"PresenceChild.useMemo\": (_, key)=>presenceChildren.set(key, false)\n }[\"PresenceChild.useMemo\"]);\n }\n }[\"PresenceChild.useMemo\"], [\n isPresent\n ]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */ react__WEBPACK_IMPORTED_MODULE_1__.useEffect({\n \"PresenceChild.useEffect\": ()=>{\n !isPresent && !presenceChildren.size && onExitComplete && onExitComplete();\n }\n }[\"PresenceChild.useEffect\"], [\n isPresent\n ]);\n children = (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PopChild_mjs__WEBPACK_IMPORTED_MODULE_3__.PopChild, {\n pop: mode === \"popLayout\",\n isPresent: isPresent,\n anchorX: anchorX,\n anchorY: anchorY,\n root: root,\n children: children\n });\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_4__.PresenceContext.Provider, {\n value: context,\n children: children\n });\n};\n_s(PresenceChild, \"LuJRAK72iQdFH7nv0cJ6ZjdNWv8=\", false, function() {\n return [\n _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_2__.useConstant,\n react__WEBPACK_IMPORTED_MODULE_1__.useId\n ];\n});\n_c = PresenceChild;\nfunction newChildrenMap() {\n return new Map();\n}\n //# sourceMappingURL=PresenceChild.mjs.map\nvar _c;\n$RefreshReg$(_c, \"PresenceChild\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvUHJlc2VuY2VDaGlsZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQXlCYTtRQUFBOztJQVlUO0lBQ0E7O0lBR0E7MENBQUE7Ozs7Ozs7Z0JBT1E7c0RBQUE7d0JBQ0k7OzRCQUdJLGlCQUFpQjs7Ozs7Z0JBS3pCO3NEQUFBO3dCQUNJOzs7Ozs7Ozs7Ozs7O0lBTVo7Ozs7S0FJRyxHQUNIO1FBQ0k7WUFBQTtRQUFBOzs7O1lBSUE7eUNBQUE7O1FBQ0o7Z0NBQUE7UUFBQTtLQUFBO0lBRUE7OztLQUdHLEdBQ0g7bUNBQUE7WUFDSSwwREFHSTtRQUNSO2tDQUFBO1FBQUE7S0FBQTtJQUVBO1FBQUE7UUFBQTtRQUFBO1FBQUE7UUFBQTtRQUFBO0lBQUE7SUFNQTtRQUFBO1FBQUE7SUFBQTtBQUtKO0dBMUVhOztRQVlUO1FBQ0E7OztLQWJTO0FBNEViOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvUHJlc2VuY2VDaGlsZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IHVzZUlkLCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7XG4gICAgUHJlc2VuY2VDb250ZXh0LFxuICAgIHR5cGUgUHJlc2VuY2VDb250ZXh0UHJvcHMsXG59IGZyb20gXCIuLi8uLi9jb250ZXh0L1ByZXNlbmNlQ29udGV4dFwiXG5pbXBvcnQgeyBWYXJpYW50TGFiZWxzIH0gZnJvbSBcIi4uLy4uL21vdGlvbi90eXBlc1wiXG5pbXBvcnQgeyB1c2VDb25zdGFudCB9IGZyb20gXCIuLi8uLi91dGlscy91c2UtY29uc3RhbnRcIlxuaW1wb3J0IHsgUG9wQ2hpbGQgfSBmcm9tIFwiLi9Qb3BDaGlsZFwiXG5cbmludGVyZmFjZSBQcmVzZW5jZUNoaWxkUHJvcHMge1xuICAgIGNoaWxkcmVuOiBSZWFjdC5SZWFjdEVsZW1lbnRcbiAgICBpc1ByZXNlbnQ6IGJvb2xlYW5cbiAgICBvbkV4aXRDb21wbGV0ZT86ICgpID0+IHZvaWRcbiAgICBpbml0aWFsPzogZmFsc2UgfCBWYXJpYW50TGFiZWxzXG4gICAgY3VzdG9tPzogYW55XG4gICAgcHJlc2VuY2VBZmZlY3RzTGF5b3V0OiBib29sZWFuXG4gICAgbW9kZTogXCJzeW5jXCIgfCBcInBvcExheW91dFwiIHwgXCJ3YWl0XCJcbiAgICBhbmNob3JYPzogXCJsZWZ0XCIgfCBcInJpZ2h0XCJcbiAgICBhbmNob3JZPzogXCJ0b3BcIiB8IFwiYm90dG9tXCJcbiAgICByb290PzogSFRNTEVsZW1lbnQgfCBTaGFkb3dSb290XG59XG5cbmV4cG9ydCBjb25zdCBQcmVzZW5jZUNoaWxkID0gKHtcbiAgICBjaGlsZHJlbixcbiAgICBpbml0aWFsLFxuICAgIGlzUHJlc2VudCxcbiAgICBvbkV4aXRDb21wbGV0ZSxcbiAgICBjdXN0b20sXG4gICAgcHJlc2VuY2VBZmZlY3RzTGF5b3V0LFxuICAgIG1vZGUsXG4gICAgYW5jaG9yWCxcbiAgICBhbmNob3JZLFxuICAgIHJvb3Rcbn06IFByZXNlbmNlQ2hpbGRQcm9wcykgPT4ge1xuICAgIGNvbnN0IHByZXNlbmNlQ2hpbGRyZW4gPSB1c2VDb25zdGFudChuZXdDaGlsZHJlbk1hcClcbiAgICBjb25zdCBpZCA9IHVzZUlkKClcblxuICAgIGxldCBpc1JldXNlZENvbnRleHQgPSB0cnVlXG4gICAgbGV0IGNvbnRleHQgPSB1c2VNZW1vKCgpOiBQcmVzZW5jZUNvbnRleHRQcm9wcyA9PiB7XG4gICAgICAgIGlzUmV1c2VkQ29udGV4dCA9IGZhbHNlXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIGluaXRpYWwsXG4gICAgICAgICAgICBpc1ByZXNlbnQsXG4gICAgICAgICAgICBjdXN0b20sXG4gICAgICAgICAgICBvbkV4aXRDb21wbGV0ZTogKGNoaWxkSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHByZXNlbmNlQ2hpbGRyZW4uc2V0KGNoaWxkSWQsIHRydWUpXG5cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGlzQ29tcGxldGUgb2YgcHJlc2VuY2VDaGlsZHJlbi52YWx1ZXMoKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzQ29tcGxldGUpIHJldHVybiAvLyBjYW4gc3RvcCBzZWFyY2hpbmcgd2hlbiBhbnkgaXMgaW5jb21wbGV0ZVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlICYmIG9uRXhpdENvbXBsZXRlKClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWdpc3RlcjogKGNoaWxkSWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHByZXNlbmNlQ2hpbGRyZW4uc2V0KGNoaWxkSWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiBwcmVzZW5jZUNoaWxkcmVuLmRlbGV0ZShjaGlsZElkKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgIH0sIFtpc1ByZXNlbnQsIHByZXNlbmNlQ2hpbGRyZW4sIG9uRXhpdENvbXBsZXRlXSlcblxuICAgIC8qKlxuICAgICAqIElmIHRoZSBwcmVzZW5jZSBvZiBhIGNoaWxkIGFmZmVjdHMgdGhlIGxheW91dCBvZiB0aGUgY29tcG9uZW50cyBhcm91bmQgaXQsXG4gICAgICogd2Ugd2FudCB0byBtYWtlIGEgbmV3IGNvbnRleHQgdmFsdWUgdG8gZW5zdXJlIHRoZXkgZ2V0IHJlLXJlbmRlcmVkXG4gICAgICogc28gdGhleSBjYW4gZGV0ZWN0IHRoYXQgbGF5b3V0IGNoYW5nZS5cbiAgICAgKi9cbiAgICBpZiAocHJlc2VuY2VBZmZlY3RzTGF5b3V0ICYmIGlzUmV1c2VkQ29udGV4dCkge1xuICAgICAgICBjb250ZXh0ID0geyAuLi5jb250ZXh0IH1cbiAgICB9XG5cbiAgICB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcHJlc2VuY2VDaGlsZHJlbi5mb3JFYWNoKChfLCBrZXkpID0+IHByZXNlbmNlQ2hpbGRyZW4uc2V0KGtleSwgZmFsc2UpKVxuICAgIH0sIFtpc1ByZXNlbnRdKVxuXG4gICAgLyoqXG4gICAgICogSWYgdGhlcmUncyBubyBgbW90aW9uYCBjb21wb25lbnRzIHRvIGZpcmUgZXhpdCBhbmltYXRpb25zLCB3ZSB3YW50IHRvIHJlbW92ZSB0aGlzXG4gICAgICogY29tcG9uZW50IGltbWVkaWF0ZWx5LlxuICAgICAqL1xuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgICFpc1ByZXNlbnQgJiZcbiAgICAgICAgICAgICFwcmVzZW5jZUNoaWxkcmVuLnNpemUgJiZcbiAgICAgICAgICAgIG9uRXhpdENvbXBsZXRlICYmXG4gICAgICAgICAgICBvbkV4aXRDb21wbGV0ZSgpXG4gICAgfSwgW2lzUHJlc2VudF0pXG5cbiAgICBjaGlsZHJlbiA9IChcbiAgICAgICAgPFBvcENoaWxkIHBvcD17bW9kZSA9PT0gXCJwb3BMYXlvdXRcIn0gaXNQcmVzZW50PXtpc1ByZXNlbnR9IGFuY2hvclg9e2FuY2hvclh9IGFuY2hvclk9e2FuY2hvcll9IHJvb3Q9e3Jvb3R9PlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1BvcENoaWxkPlxuICAgIClcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxQcmVzZW5jZUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHR9PlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1ByZXNlbmNlQ29udGV4dC5Qcm92aWRlcj5cbiAgICApXG59XG5cbmZ1bmN0aW9uIG5ld0NoaWxkcmVuTWFwKCk6IE1hcDxzdHJpbmcsIGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IE1hcCgpXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimatePresence: () => (/* binding */ AnimatePresence)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context/LayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* harmony import */ var _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/use-isomorphic-effect.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\");\n/* harmony import */ var _PresenceChild_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PresenceChild.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs\");\n/* harmony import */ var _use_presence_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-presence.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs\");\n/* __next_internal_client_entry_do_not_use__ AnimatePresence auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * <AnimatePresence>\n * {items.map(item => (\n * <motion.div\n * key={item.id}\n * initial={{ opacity: 0 }}\n * animate={{ opacity: 1 }}\n * exit={{ opacity: 0 }}\n * />\n * ))}\n * </AnimatePresence>\n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */ const AnimatePresence = (param)=>{\n let { children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = \"sync\", propagate = false, anchorX = \"left\", anchorY = \"top\", root } = param;\n _s();\n const [isParentPresent, safeToRemove] = (0,_use_presence_mjs__WEBPACK_IMPORTED_MODULE_2__.usePresence)(propagate);\n /**\n * Filter any children that aren't ReactElements. We can only track components\n * between renders with a props.key.\n */ const presentChildren = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"AnimatePresence.useMemo[presentChildren]\": ()=>(0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.onlyElements)(children)\n }[\"AnimatePresence.useMemo[presentChildren]\"], [\n children\n ]);\n /**\n * Track the keys of the currently rendered children. This is used to\n * determine which children are exiting.\n */ const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey);\n /**\n * If `initial={false}` we only want to pass this to components in the first render.\n */ const isInitialRender = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(true);\n /**\n * A ref containing the currently present children. When all exit animations\n * are complete, we use this to re-render the component with the latest children\n * *committed* rather than the latest children *rendered*.\n */ const pendingPresentChildren = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(presentChildren);\n /**\n * Track which exiting children have finished animating out.\n */ const exitComplete = (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_4__.useConstant)({\n \"AnimatePresence.useConstant[exitComplete]\": ()=>new Map()\n }[\"AnimatePresence.useConstant[exitComplete]\"]);\n /**\n * Track which components are currently processing exit to prevent duplicate processing.\n */ const exitingComponents = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(new Set());\n /**\n * Save children to render as React state. To ensure this component is concurrent-safe,\n * we check for exiting children via an effect.\n */ const [diffedChildren, setDiffedChildren] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(presentChildren);\n const [renderedChildren, setRenderedChildren] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(presentChildren);\n (0,_utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_5__.useIsomorphicLayoutEffect)({\n \"AnimatePresence.useIsomorphicLayoutEffect\": ()=>{\n isInitialRender.current = false;\n pendingPresentChildren.current = presentChildren;\n /**\n * Update complete status of exiting children.\n */ for(let i = 0; i < renderedChildren.length; i++){\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(renderedChildren[i]);\n if (!presentKeys.includes(key)) {\n if (exitComplete.get(key) !== true) {\n exitComplete.set(key, false);\n }\n } else {\n exitComplete.delete(key);\n exitingComponents.current.delete(key);\n }\n }\n }\n }[\"AnimatePresence.useIsomorphicLayoutEffect\"], [\n renderedChildren,\n presentKeys.length,\n presentKeys.join(\"-\")\n ]);\n const exitingChildren = [];\n if (presentChildren !== diffedChildren) {\n let nextChildren = [\n ...presentChildren\n ];\n /**\n * Loop through all the currently rendered components and decide which\n * are exiting.\n */ for(let i = 0; i < renderedChildren.length; i++){\n const child = renderedChildren[i];\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(child);\n if (!presentKeys.includes(key)) {\n nextChildren.splice(i, 0, child);\n exitingChildren.push(child);\n }\n }\n /**\n * If we're in \"wait\" mode, and we have exiting children, we want to\n * only render these until they've all exited.\n */ if (mode === \"wait\" && exitingChildren.length) {\n nextChildren = exitingChildren;\n }\n setRenderedChildren((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.onlyElements)(nextChildren));\n setDiffedChildren(presentChildren);\n /**\n * Early return to ensure once we've set state with the latest diffed\n * children, we can immediately re-render.\n */ return null;\n }\n if ( true && mode === \"wait\" && renderedChildren.length > 1) {\n console.warn('You\\'re attempting to animate multiple children within AnimatePresence, but its mode is set to \"wait\". This will lead to odd visual behaviour.');\n }\n /**\n * If we've been provided a forceRender function by the LayoutGroupContext,\n * we can use it to force a re-render amongst all surrounding components once\n * all components have finished animating out.\n */ const { forceRender } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__.LayoutGroupContext);\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: renderedChildren.map((child)=>{\n const key = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.getChildKey)(child);\n const isPresent = propagate && !isParentPresent ? false : presentChildren === renderedChildren || presentKeys.includes(key);\n const onExit = ()=>{\n if (exitingComponents.current.has(key)) {\n return;\n }\n exitingComponents.current.add(key);\n if (exitComplete.has(key)) {\n exitComplete.set(key, true);\n } else {\n return;\n }\n let isEveryExitComplete = true;\n exitComplete.forEach((isExitComplete)=>{\n if (!isExitComplete) isEveryExitComplete = false;\n });\n if (isEveryExitComplete) {\n forceRender === null || forceRender === void 0 ? void 0 : forceRender();\n setRenderedChildren(pendingPresentChildren.current);\n propagate && (safeToRemove === null || safeToRemove === void 0 ? void 0 : safeToRemove());\n onExitComplete && onExitComplete();\n }\n };\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_PresenceChild_mjs__WEBPACK_IMPORTED_MODULE_7__.PresenceChild, {\n isPresent: isPresent,\n initial: !isInitialRender.current || initial ? undefined : false,\n custom: custom,\n presenceAffectsLayout: presenceAffectsLayout,\n mode: mode,\n root: root,\n onExitComplete: isPresent ? undefined : onExit,\n anchorX: anchorX,\n anchorY: anchorY,\n children: child\n }, key);\n })\n });\n};\n_s(AnimatePresence, \"te1emcPGxu5jrrIezZ9xAEMgBrg=\", false, function() {\n return [\n _use_presence_mjs__WEBPACK_IMPORTED_MODULE_2__.usePresence,\n _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_4__.useConstant,\n _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_5__.useIsomorphicLayoutEffect\n ];\n});\n_c = AnimatePresence;\n //# sourceMappingURL=index.mjs.map\nvar _c;\n$RefreshReg$(_c, \"AnimatePresence\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVlBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQWdDRyxHQUNVO1FBQUE7OztJQWNUOzs7S0FHRyxHQUNIO29EQUFBO21EQUFBO1FBQUE7S0FBQTtJQUVBOzs7S0FHRyxHQUNIO0lBR0E7O0tBRUcsR0FDSDtJQUVBOzs7O0tBSUcsR0FDSDtJQUVBOztLQUVHOzs7SUFHSDs7S0FFRztJQUdIOzs7S0FHRzs7OztZQUtDO1lBQ0E7WUFFQTs7U0FFRyxHQUNIOzs7O3dCQUtZOzs7b0JBR0o7b0JBQ0E7OztRQUdaO29EQUFBO1FBQUE7UUFBQTtRQUFBO0tBQUE7O0lBSUE7UUFDSTtlQUFBO1NBQUE7UUFFQTs7O1NBR0csR0FDSDtZQUNJO1lBQ0E7OztnQkFJSTs7O1FBSVI7OztTQUdHOzs7UUFLSDs7UUFHQTs7O1NBR0csR0FDSDs7SUFHSixhQUVJLG1CQUNBO1FBRUE7O0lBS0o7Ozs7S0FJRzs7O1lBTVM7WUFFQSxrREFFUSxnREFFRTs7Ozs7Z0JBTU47Z0JBRUE7b0JBQ0k7Ozs7O2dCQU1KO29CQUNJO2dCQUNKOzs7b0JBSUk7b0JBRUE7OztZQUlSO1lBRUE7Z0JBQUE7Z0JBQUEsK0NBTWdCOzs7Ozs7Ozs7Ozs7QUFpQmhDO0dBaE1hOzs7Ozs7O0tBQUEiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9jb21wb25lbnRzL0FuaW1hdGVQcmVzZW5jZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTGF5b3V0R3JvdXBDb250ZXh0IH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvTGF5b3V0R3JvdXBDb250ZXh0XCJcbmltcG9ydCB7IHVzZUNvbnN0YW50IH0gZnJvbSBcIi4uLy4uL3V0aWxzL3VzZS1jb25zdGFudFwiXG5pbXBvcnQgeyB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0IH0gZnJvbSBcIi4uLy4uL3V0aWxzL3VzZS1pc29tb3JwaGljLWVmZmVjdFwiXG5pbXBvcnQgeyBQcmVzZW5jZUNoaWxkIH0gZnJvbSBcIi4vUHJlc2VuY2VDaGlsZFwiXG5pbXBvcnQgeyBBbmltYXRlUHJlc2VuY2VQcm9wcyB9IGZyb20gXCIuL3R5cGVzXCJcbmltcG9ydCB7IHVzZVByZXNlbmNlIH0gZnJvbSBcIi4vdXNlLXByZXNlbmNlXCJcbmltcG9ydCB7IENvbXBvbmVudEtleSwgZ2V0Q2hpbGRLZXksIG9ubHlFbGVtZW50cyB9IGZyb20gXCIuL3V0aWxzXCJcblxuLyoqXG4gKiBgQW5pbWF0ZVByZXNlbmNlYCBlbmFibGVzIHRoZSBhbmltYXRpb24gb2YgY29tcG9uZW50cyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIHRyZWUuXG4gKlxuICogV2hlbiBhZGRpbmcvcmVtb3ZpbmcgbW9yZSB0aGFuIGEgc2luZ2xlIGNoaWxkLCBldmVyeSBjaGlsZCAqKm11c3QqKiBiZSBnaXZlbiBhIHVuaXF1ZSBga2V5YCBwcm9wLlxuICpcbiAqIEFueSBgbW90aW9uYCBjb21wb25lbnRzIHRoYXQgaGF2ZSBhbiBgZXhpdGAgcHJvcGVydHkgZGVmaW5lZCB3aWxsIGFuaW1hdGUgb3V0IHdoZW4gcmVtb3ZlZCBmcm9tXG4gKiB0aGUgdHJlZS5cbiAqXG4gKiBgYGBqc3hcbiAqIGltcG9ydCB7IG1vdGlvbiwgQW5pbWF0ZVByZXNlbmNlIH0gZnJvbSAnZnJhbWVyLW1vdGlvbidcbiAqXG4gKiBleHBvcnQgY29uc3QgSXRlbXMgPSAoeyBpdGVtcyB9KSA9PiAoXG4gKiAgIDxBbmltYXRlUHJlc2VuY2U+XG4gKiAgICAge2l0ZW1zLm1hcChpdGVtID0+IChcbiAqICAgICAgIDxtb3Rpb24uZGl2XG4gKiAgICAgICAgIGtleT17aXRlbS5pZH1cbiAqICAgICAgICAgaW5pdGlhbD17eyBvcGFjaXR5OiAwIH19XG4gKiAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSB9fVxuICogICAgICAgICBleGl0PXt7IG9wYWNpdHk6IDAgfX1cbiAqICAgICAgIC8+XG4gKiAgICAgKSl9XG4gKiAgIDwvQW5pbWF0ZVByZXNlbmNlPlxuICogKVxuICogYGBgXG4gKlxuICogWW91IGNhbiBzZXF1ZW5jZSBleGl0IGFuaW1hdGlvbnMgdGhyb3VnaG91dCBhIHRyZWUgdXNpbmcgdmFyaWFudHMuXG4gKlxuICogSWYgYSBjaGlsZCBjb250YWlucyBtdWx0aXBsZSBgbW90aW9uYCBjb21wb25lbnRzIHdpdGggYGV4aXRgIHByb3BzLCBpdCB3aWxsIG9ubHkgdW5tb3VudCB0aGUgY2hpbGRcbiAqIG9uY2UgYWxsIGBtb3Rpb25gIGNvbXBvbmVudHMgaGF2ZSBmaW5pc2hlZCBhbmltYXRpbmcgb3V0LiBMaWtld2lzZSwgYW55IGNvbXBvbmVudHMgdXNpbmdcbiAqIGB1c2VQcmVzZW5jZWAgYWxsIG5lZWQgdG8gY2FsbCBgc2FmZVRvUmVtb3ZlYC5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBBbmltYXRlUHJlc2VuY2UgPSAoe1xuICAgIGNoaWxkcmVuLFxuICAgIGN1c3RvbSxcbiAgICBpbml0aWFsID0gdHJ1ZSxcbiAgICBvbkV4aXRDb21wbGV0ZSxcbiAgICBwcmVzZW5jZUFmZmVjdHNMYXlvdXQgPSB0cnVlLFxuICAgIG1vZGUgPSBcInN5bmNcIixcbiAgICBwcm9wYWdhdGUgPSBmYWxzZSxcbiAgICBhbmNob3JYID0gXCJsZWZ0XCIsXG4gICAgYW5jaG9yWSA9IFwidG9wXCIsXG4gICAgcm9vdFxufTogUmVhY3QuUHJvcHNXaXRoQ2hpbGRyZW48QW5pbWF0ZVByZXNlbmNlUHJvcHM+KSA9PiB7XG4gICAgY29uc3QgW2lzUGFyZW50UHJlc2VudCwgc2FmZVRvUmVtb3ZlXSA9IHVzZVByZXNlbmNlKHByb3BhZ2F0ZSlcblxuICAgIC8qKlxuICAgICAqIEZpbHRlciBhbnkgY2hpbGRyZW4gdGhhdCBhcmVuJ3QgUmVhY3RFbGVtZW50cy4gV2UgY2FuIG9ubHkgdHJhY2sgY29tcG9uZW50c1xuICAgICAqIGJldHdlZW4gcmVuZGVycyB3aXRoIGEgcHJvcHMua2V5LlxuICAgICAqL1xuICAgIGNvbnN0IHByZXNlbnRDaGlsZHJlbiA9IHVzZU1lbW8oKCkgPT4gb25seUVsZW1lbnRzKGNoaWxkcmVuKSwgW2NoaWxkcmVuXSlcblxuICAgIC8qKlxuICAgICAqIFRyYWNrIHRoZSBrZXlzIG9mIHRoZSBjdXJyZW50bHkgcmVuZGVyZWQgY2hpbGRyZW4uIFRoaXMgaXMgdXNlZCB0b1xuICAgICAqIGRldGVybWluZSB3aGljaCBjaGlsZHJlbiBhcmUgZXhpdGluZy5cbiAgICAgKi9cbiAgICBjb25zdCBwcmVzZW50S2V5cyA9XG4gICAgICAgIHByb3BhZ2F0ZSAmJiAhaXNQYXJlbnRQcmVzZW50ID8gW10gOiBwcmVzZW50Q2hpbGRyZW4ubWFwKGdldENoaWxkS2V5KVxuXG4gICAgLyoqXG4gICAgICogSWYgYGluaXRpYWw9e2ZhbHNlfWAgd2Ugb25seSB3YW50IHRvIHBhc3MgdGhpcyB0byBjb21wb25lbnRzIGluIHRoZSBmaXJzdCByZW5kZXIuXG4gICAgICovXG4gICAgY29uc3QgaXNJbml0aWFsUmVuZGVyID0gdXNlUmVmKHRydWUpXG5cbiAgICAvKipcbiAgICAgKiBBIHJlZiBjb250YWluaW5nIHRoZSBjdXJyZW50bHkgcHJlc2VudCBjaGlsZHJlbi4gV2hlbiBhbGwgZXhpdCBhbmltYXRpb25zXG4gICAgICogYXJlIGNvbXBsZXRlLCB3ZSB1c2UgdGhpcyB0byByZS1yZW5kZXIgdGhlIGNvbXBvbmVudCB3aXRoIHRoZSBsYXRlc3QgY2hpbGRyZW5cbiAgICAgKiAqY29tbWl0dGVkKiByYXRoZXIgdGhhbiB0aGUgbGF0ZXN0IGNoaWxkcmVuICpyZW5kZXJlZCouXG4gICAgICovXG4gICAgY29uc3QgcGVuZGluZ1ByZXNlbnRDaGlsZHJlbiA9IHVzZVJlZihwcmVzZW50Q2hpbGRyZW4pXG5cbiAgICAvKipcbiAgICAgKiBUcmFjayB3aGljaCBleGl0aW5nIGNoaWxkcmVuIGhhdmUgZmluaXNoZWQgYW5pbWF0aW5nIG91dC5cbiAgICAgKi9cbiAgICBjb25zdCBleGl0Q29tcGxldGUgPSB1c2VDb25zdGFudCgoKSA9PiBuZXcgTWFwPENvbXBvbmVudEtleSwgYm9vbGVhbj4oKSlcblxuICAgIC8qKlxuICAgICAqIFRyYWNrIHdoaWNoIGNvbXBvbmVudHMgYXJlIGN1cnJlbnRseSBwcm9jZXNzaW5nIGV4aXQgdG8gcHJldmVudCBkdXBsaWNhdGUgcHJvY2Vzc2luZy5cbiAgICAgKi9cbiAgICBjb25zdCBleGl0aW5nQ29tcG9uZW50cyA9IHVzZVJlZihuZXcgU2V0PENvbXBvbmVudEtleT4oKSlcblxuICAgIC8qKlxuICAgICAqIFNhdmUgY2hpbGRyZW4gdG8gcmVuZGVyIGFzIFJlYWN0IHN0YXRlLiBUbyBlbnN1cmUgdGhpcyBjb21wb25lbnQgaXMgY29uY3VycmVudC1zYWZlLFxuICAgICAqIHdlIGNoZWNrIGZvciBleGl0aW5nIGNoaWxkcmVuIHZpYSBhbiBlZmZlY3QuXG4gICAgICovXG4gICAgY29uc3QgW2RpZmZlZENoaWxkcmVuLCBzZXREaWZmZWRDaGlsZHJlbl0gPSB1c2VTdGF0ZShwcmVzZW50Q2hpbGRyZW4pXG4gICAgY29uc3QgW3JlbmRlcmVkQ2hpbGRyZW4sIHNldFJlbmRlcmVkQ2hpbGRyZW5dID0gdXNlU3RhdGUocHJlc2VudENoaWxkcmVuKVxuXG4gICAgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlzSW5pdGlhbFJlbmRlci5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgcGVuZGluZ1ByZXNlbnRDaGlsZHJlbi5jdXJyZW50ID0gcHJlc2VudENoaWxkcmVuXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVwZGF0ZSBjb21wbGV0ZSBzdGF0dXMgb2YgZXhpdGluZyBjaGlsZHJlbi5cbiAgICAgICAgICovXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVuZGVyZWRDaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gZ2V0Q2hpbGRLZXkocmVuZGVyZWRDaGlsZHJlbltpXSlcblxuICAgICAgICAgICAgaWYgKCFwcmVzZW50S2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGV4aXRDb21wbGV0ZS5nZXQoa2V5KSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICBleGl0Q29tcGxldGUuc2V0KGtleSwgZmFsc2UpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBleGl0Q29tcGxldGUuZGVsZXRlKGtleSlcbiAgICAgICAgICAgICAgICBleGl0aW5nQ29tcG9uZW50cy5jdXJyZW50LmRlbGV0ZShrZXkpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9LCBbcmVuZGVyZWRDaGlsZHJlbiwgcHJlc2VudEtleXMubGVuZ3RoLCBwcmVzZW50S2V5cy5qb2luKFwiLVwiKV0pXG5cbiAgICBjb25zdCBleGl0aW5nQ2hpbGRyZW46IGFueVtdID0gW11cblxuICAgIGlmIChwcmVzZW50Q2hpbGRyZW4gIT09IGRpZmZlZENoaWxkcmVuKSB7XG4gICAgICAgIGxldCBuZXh0Q2hpbGRyZW4gPSBbLi4ucHJlc2VudENoaWxkcmVuXVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMb29wIHRocm91Z2ggYWxsIHRoZSBjdXJyZW50bHkgcmVuZGVyZWQgY29tcG9uZW50cyBhbmQgZGVjaWRlIHdoaWNoXG4gICAgICAgICAqIGFyZSBleGl0aW5nLlxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZW5kZXJlZENoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZCA9IHJlbmRlcmVkQ2hpbGRyZW5baV1cbiAgICAgICAgICAgIGNvbnN0IGtleSA9IGdldENoaWxkS2V5KGNoaWxkKVxuXG4gICAgICAgICAgICBpZiAoIXByZXNlbnRLZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgICAgICAgICBuZXh0Q2hpbGRyZW4uc3BsaWNlKGksIDAsIGNoaWxkKVxuICAgICAgICAgICAgICAgIGV4aXRpbmdDaGlsZHJlbi5wdXNoKGNoaWxkKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHdlJ3JlIGluIFwid2FpdFwiIG1vZGUsIGFuZCB3ZSBoYXZlIGV4aXRpbmcgY2hpbGRyZW4sIHdlIHdhbnQgdG9cbiAgICAgICAgICogb25seSByZW5kZXIgdGhlc2UgdW50aWwgdGhleSd2ZSBhbGwgZXhpdGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG1vZGUgPT09IFwid2FpdFwiICYmIGV4aXRpbmdDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIG5leHRDaGlsZHJlbiA9IGV4aXRpbmdDaGlsZHJlblxuICAgICAgICB9XG5cbiAgICAgICAgc2V0UmVuZGVyZWRDaGlsZHJlbihvbmx5RWxlbWVudHMobmV4dENoaWxkcmVuKSlcbiAgICAgICAgc2V0RGlmZmVkQ2hpbGRyZW4ocHJlc2VudENoaWxkcmVuKVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBFYXJseSByZXR1cm4gdG8gZW5zdXJlIG9uY2Ugd2UndmUgc2V0IHN0YXRlIHdpdGggdGhlIGxhdGVzdCBkaWZmZWRcbiAgICAgICAgICogY2hpbGRyZW4sIHdlIGNhbiBpbW1lZGlhdGVseSByZS1yZW5kZXIuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgIH1cblxuICAgIGlmIChcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmXG4gICAgICAgIG1vZGUgPT09IFwid2FpdFwiICYmXG4gICAgICAgIHJlbmRlcmVkQ2hpbGRyZW4ubGVuZ3RoID4gMVxuICAgICkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBgWW91J3JlIGF0dGVtcHRpbmcgdG8gYW5pbWF0ZSBtdWx0aXBsZSBjaGlsZHJlbiB3aXRoaW4gQW5pbWF0ZVByZXNlbmNlLCBidXQgaXRzIG1vZGUgaXMgc2V0IHRvIFwid2FpdFwiLiBUaGlzIHdpbGwgbGVhZCB0byBvZGQgdmlzdWFsIGJlaGF2aW91ci5gXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB3ZSd2ZSBiZWVuIHByb3ZpZGVkIGEgZm9yY2VSZW5kZXIgZnVuY3Rpb24gYnkgdGhlIExheW91dEdyb3VwQ29udGV4dCxcbiAgICAgKiB3ZSBjYW4gdXNlIGl0IHRvIGZvcmNlIGEgcmUtcmVuZGVyIGFtb25nc3QgYWxsIHN1cnJvdW5kaW5nIGNvbXBvbmVudHMgb25jZVxuICAgICAqIGFsbCBjb21wb25lbnRzIGhhdmUgZmluaXNoZWQgYW5pbWF0aW5nIG91dC5cbiAgICAgKi9cbiAgICBjb25zdCB7IGZvcmNlUmVuZGVyIH0gPSB1c2VDb250ZXh0KExheW91dEdyb3VwQ29udGV4dClcblxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICB7cmVuZGVyZWRDaGlsZHJlbi5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gZ2V0Q2hpbGRLZXkoY2hpbGQpXG5cbiAgICAgICAgICAgICAgICBjb25zdCBpc1ByZXNlbnQgPVxuICAgICAgICAgICAgICAgICAgICBwcm9wYWdhdGUgJiYgIWlzUGFyZW50UHJlc2VudFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBmYWxzZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBwcmVzZW50Q2hpbGRyZW4gPT09IHJlbmRlcmVkQ2hpbGRyZW4gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2VudEtleXMuaW5jbHVkZXMoa2V5KVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgb25FeGl0ID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXhpdGluZ0NvbXBvbmVudHMuY3VycmVudC5oYXMoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXhpdGluZ0NvbXBvbmVudHMuY3VycmVudC5hZGQoa2V5KVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChleGl0Q29tcGxldGUuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4aXRDb21wbGV0ZS5zZXQoa2V5LCB0cnVlKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgaXNFdmVyeUV4aXRDb21wbGV0ZSA9IHRydWVcbiAgICAgICAgICAgICAgICAgICAgZXhpdENvbXBsZXRlLmZvckVhY2goKGlzRXhpdENvbXBsZXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRXhpdENvbXBsZXRlKSBpc0V2ZXJ5RXhpdENvbXBsZXRlID0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNFdmVyeUV4aXRDb21wbGV0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VSZW5kZXI/LigpXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRSZW5kZXJlZENoaWxkcmVuKHBlbmRpbmdQcmVzZW50Q2hpbGRyZW4uY3VycmVudClcblxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGFnYXRlICYmIHNhZmVUb1JlbW92ZT8uKClcblxuICAgICAgICAgICAgICAgICAgICAgICAgb25FeGl0Q29tcGxldGUgJiYgb25FeGl0Q29tcGxldGUoKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPFByZXNlbmNlQ2hpbGRcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgaXNQcmVzZW50PXtpc1ByZXNlbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhaXNJbml0aWFsUmVuZGVyLmN1cnJlbnQgfHwgaW5pdGlhbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXN0b209e2N1c3RvbX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXNlbmNlQWZmZWN0c0xheW91dD17cHJlc2VuY2VBZmZlY3RzTGF5b3V0fVxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kZT17bW9kZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3Q9e3Jvb3R9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkV4aXRDb21wbGV0ZT17aXNQcmVzZW50ID8gdW5kZWZpbmVkIDogb25FeGl0fVxuICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yWD17YW5jaG9yWH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvclk9e2FuY2hvcll9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZH1cbiAgICAgICAgICAgICAgICAgICAgPC9QcmVzZW5jZUNoaWxkPlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICA8Lz5cbiAgICApXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPresent: () => (/* binding */ isPresent),\n/* harmony export */ useIsPresent: () => (/* binding */ useIsPresent),\n/* harmony export */ usePresence: () => (/* binding */ usePresence)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* __next_internal_client_entry_do_not_use__ isPresent,useIsPresent,usePresence auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$();\n\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed from the tree,\n * but `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */ function usePresence() {\n let subscribe = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;\n _s();\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__.PresenceContext);\n if (context === null) return [\n true,\n null\n ];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = (0,react__WEBPACK_IMPORTED_MODULE_0__.useId)();\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"usePresence.useEffect\": ()=>{\n if (subscribe) {\n return register(id);\n }\n }\n }[\"usePresence.useEffect\"], [\n subscribe\n ]);\n const safeToRemove = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"usePresence.useCallback[safeToRemove]\": ()=>subscribe && onExitComplete && onExitComplete(id)\n }[\"usePresence.useCallback[safeToRemove]\"], [\n id,\n onExitComplete,\n subscribe\n ]);\n return !isPresent && onExitComplete ? [\n false,\n safeToRemove\n ] : [\n true\n ];\n}\n_s(usePresence, \"GY2Qss37g7I0L0lHt/6OFO+hjmE=\", false, function() {\n return [\n react__WEBPACK_IMPORTED_MODULE_0__.useId\n ];\n});\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return <div />\n * }\n * ```\n *\n * @public\n */ function useIsPresent() {\n _s1();\n return isPresent((0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_1__.PresenceContext));\n}\n_s1(useIsPresent, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n //# sourceMappingURL=use-presence.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvdXNlLXByZXNlbmNlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQWdCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCRyxHQUNhO1FBQUE7O0lBR1o7MEJBRXNCO1FBQUE7UUFBQTtLQUFBOzs7O0lBT3RCOzs7O2dCQUdROztRQUVSO2dDQUFBO1FBQUE7S0FBQTs7Ozs7Ozs7SUFPQTtRQUFBO1FBQUE7S0FBQTtRQUFBO0tBQUE7QUFDSjtHQXpCZ0I7O1FBWVo7OztBQWVKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBbUJHOztJQUVDO0FBQ0o7O0FBRU07SUFDRjtBQUNKIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvdXNlLXByZXNlbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VFZmZlY3QsIHVzZUlkIH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7XG4gICAgUHJlc2VuY2VDb250ZXh0LFxuICAgIFByZXNlbmNlQ29udGV4dFByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29udGV4dC9QcmVzZW5jZUNvbnRleHRcIlxuXG5leHBvcnQgdHlwZSBTYWZlVG9SZW1vdmUgPSAoKSA9PiB2b2lkXG5cbnR5cGUgQWx3YXlzUHJlc2VudCA9IFt0cnVlLCBudWxsXVxuXG50eXBlIFByZXNlbnQgPSBbdHJ1ZV1cblxudHlwZSBOb3RQcmVzZW50ID0gW2ZhbHNlLCBTYWZlVG9SZW1vdmVdXG5cbi8qKlxuICogV2hlbiBhIGNvbXBvbmVudCBpcyB0aGUgY2hpbGQgb2YgYEFuaW1hdGVQcmVzZW5jZWAsIGl0IGNhbiB1c2UgYHVzZVByZXNlbmNlYFxuICogdG8gYWNjZXNzIGluZm9ybWF0aW9uIGFib3V0IHdoZXRoZXIgaXQncyBzdGlsbCBwcmVzZW50IGluIHRoZSBSZWFjdCB0cmVlLlxuICpcbiAqIGBgYGpzeFxuICogaW1wb3J0IHsgdXNlUHJlc2VuY2UgfSBmcm9tIFwiZnJhbWVyLW1vdGlvblwiXG4gKlxuICogZXhwb3J0IGNvbnN0IENvbXBvbmVudCA9ICgpID0+IHtcbiAqICAgY29uc3QgW2lzUHJlc2VudCwgc2FmZVRvUmVtb3ZlXSA9IHVzZVByZXNlbmNlKClcbiAqXG4gKiAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gKiAgICAgIWlzUHJlc2VudCAmJiBzZXRUaW1lb3V0KHNhZmVUb1JlbW92ZSwgMTAwMClcbiAqICAgfSwgW2lzUHJlc2VudF0pXG4gKlxuICogICByZXR1cm4gPGRpdiAvPlxuICogfVxuICogYGBgXG4gKlxuICogSWYgYGlzUHJlc2VudGAgaXMgYGZhbHNlYCwgaXQgbWVhbnMgdGhhdCBhIGNvbXBvbmVudCBoYXMgYmVlbiByZW1vdmVkIGZyb20gdGhlIHRyZWUsXG4gKiBidXQgYEFuaW1hdGVQcmVzZW5jZWAgd29uJ3QgcmVhbGx5IHJlbW92ZSBpdCB1bnRpbCBgc2FmZVRvUmVtb3ZlYCBoYXMgYmVlbiBjYWxsZWQuXG4gKlxuICogQHB1YmxpY1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUHJlc2VuY2UoXG4gICAgc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZVxuKTogQWx3YXlzUHJlc2VudCB8IFByZXNlbnQgfCBOb3RQcmVzZW50IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChQcmVzZW5jZUNvbnRleHQpXG5cbiAgICBpZiAoY29udGV4dCA9PT0gbnVsbCkgcmV0dXJuIFt0cnVlLCBudWxsXVxuXG4gICAgY29uc3QgeyBpc1ByZXNlbnQsIG9uRXhpdENvbXBsZXRlLCByZWdpc3RlciB9ID0gY29udGV4dFxuXG4gICAgLy8gSXQncyBzYWZlIHRvIGNhbGwgdGhlIGZvbGxvd2luZyBob29rcyBjb25kaXRpb25hbGx5IChhZnRlciBhbiBlYXJseSByZXR1cm4pIGJlY2F1c2UgdGhlIGNvbnRleHQgd2lsbCBhbHdheXNcbiAgICAvLyBlaXRoZXIgYmUgbnVsbCBvciBub24tbnVsbCBmb3IgdGhlIGxpZmVzcGFuIG9mIHRoZSBjb21wb25lbnQuXG5cbiAgICBjb25zdCBpZCA9IHVzZUlkKClcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoc3Vic2NyaWJlKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVnaXN0ZXIoaWQpXG4gICAgICAgIH1cbiAgICB9LCBbc3Vic2NyaWJlXSlcblxuICAgIGNvbnN0IHNhZmVUb1JlbW92ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgICAoKSA9PiBzdWJzY3JpYmUgJiYgb25FeGl0Q29tcGxldGUgJiYgb25FeGl0Q29tcGxldGUoaWQpLFxuICAgICAgICBbaWQsIG9uRXhpdENvbXBsZXRlLCBzdWJzY3JpYmVdXG4gICAgKVxuXG4gICAgcmV0dXJuICFpc1ByZXNlbnQgJiYgb25FeGl0Q29tcGxldGUgPyBbZmFsc2UsIHNhZmVUb1JlbW92ZV0gOiBbdHJ1ZV1cbn1cblxuLyoqXG4gKiBTaW1pbGFyIHRvIGB1c2VQcmVzZW5jZWAsIGV4Y2VwdCBgdXNlSXNQcmVzZW50YCBzaW1wbHkgcmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgY29tcG9uZW50IGlzIHByZXNlbnQuXG4gKiBUaGVyZSBpcyBubyBgc2FmZVRvUmVtb3ZlYCBmdW5jdGlvbi5cbiAqXG4gKiBgYGBqc3hcbiAqIGltcG9ydCB7IHVzZUlzUHJlc2VudCB9IGZyb20gXCJmcmFtZXItbW90aW9uXCJcbiAqXG4gKiBleHBvcnQgY29uc3QgQ29tcG9uZW50ID0gKCkgPT4ge1xuICogICBjb25zdCBpc1ByZXNlbnQgPSB1c2VJc1ByZXNlbnQoKVxuICpcbiAqICAgdXNlRWZmZWN0KCgpID0+IHtcbiAqICAgICAhaXNQcmVzZW50ICYmIGNvbnNvbGUubG9nKFwiSSd2ZSBiZWVuIHJlbW92ZWQhXCIpXG4gKiAgIH0sIFtpc1ByZXNlbnRdKVxuICpcbiAqICAgcmV0dXJuIDxkaXYgLz5cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUlzUHJlc2VudCgpIHtcbiAgICByZXR1cm4gaXNQcmVzZW50KHVzZUNvbnRleHQoUHJlc2VuY2VDb250ZXh0KSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJlc2VudChjb250ZXh0OiBQcmVzZW5jZUNvbnRleHRQcm9wcyB8IG51bGwpIHtcbiAgICByZXR1cm4gY29udGV4dCA9PT0gbnVsbCA/IHRydWUgOiBjb250ZXh0LmlzUHJlc2VudFxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getChildKey: () => (/* binding */ getChildKey),\n/* harmony export */ onlyElements: () => (/* binding */ onlyElements)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\nconst getChildKey = (child) => child.key || \"\";\nfunction onlyElements(children) {\n const filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n react__WEBPACK_IMPORTED_MODULE_0__.Children.forEach(children, (child) => {\n if ((0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(child))\n filtered.push(child);\n });\n return filtered;\n}\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvdXRpbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFpRDs7QUFFakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLDJDQUFRO0FBQ1osWUFBWSxxREFBYztBQUMxQjtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVxQztBQUNyQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29tcG9uZW50cy9BbmltYXRlUHJlc2VuY2UvdXRpbHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoaWxkcmVuLCBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcblxuY29uc3QgZ2V0Q2hpbGRLZXkgPSAoY2hpbGQpID0+IGNoaWxkLmtleSB8fCBcIlwiO1xuZnVuY3Rpb24gb25seUVsZW1lbnRzKGNoaWxkcmVuKSB7XG4gICAgY29uc3QgZmlsdGVyZWQgPSBbXTtcbiAgICAvLyBXZSB1c2UgZm9yRWFjaCBoZXJlIGluc3RlYWQgb2YgbWFwIGFzIG1hcCBtdXRhdGVzIHRoZSBjb21wb25lbnQga2V5IGJ5IHByZXByZW5kaW5nIGAuJGBcbiAgICBDaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcbiAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIGZpbHRlcmVkLnB1c2goY2hpbGQpO1xuICAgIH0pO1xuICAgIHJldHVybiBmaWx0ZXJlZDtcbn1cblxuZXhwb3J0IHsgZ2V0Q2hpbGRLZXksIG9ubHlFbGVtZW50cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXRpbHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ LayoutGroupContext: () => (/* binding */ LayoutGroupContext) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js"); +/* __next_internal_client_entry_do_not_use__ LayoutGroupContext auto */ +const LayoutGroupContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({}); + //# sourceMappingURL=LayoutGroupContext.mjs.map + + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/LazyContext.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ LazyContext: () => (/* binding */ LazyContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ LazyContext auto */ \nconst LazyContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({\n strict: false\n});\n //# sourceMappingURL=LazyContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9MYXp5Q29udGV4dC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBVU87SUFBQTtBQUFBIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvY29udGV4dC9MYXp5Q29udGV4dC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IENyZWF0ZVZpc3VhbEVsZW1lbnQgfSBmcm9tIFwiLi4vcmVuZGVyL3R5cGVzXCJcblxuZXhwb3J0IGludGVyZmFjZSBMYXp5Q29udGV4dFByb3BzIHtcbiAgICByZW5kZXJlcj86IENyZWF0ZVZpc3VhbEVsZW1lbnRcbiAgICBzdHJpY3Q6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGNvbnN0IExhenlDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxMYXp5Q29udGV4dFByb3BzPih7IHN0cmljdDogZmFsc2UgfSlcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionConfigContext: () => (/* binding */ MotionConfigContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ MotionConfigContext auto */ \n/**\n * @public\n */ const MotionConfigContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({\n transformPagePoint: (p)=>p,\n isStatic: false,\n reducedMotion: \"never\"\n});\n //# sourceMappingURL=MotionConfigContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db25maWdDb250ZXh0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUF5REE7O0NBRUcsR0FDSTtJQUNIO0lBQ0E7SUFDQTtBQUNIIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvY29udGV4dC9Nb3Rpb25Db25maWdDb250ZXh0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgdHlwZSB7IFRyYW5zaXRpb24gfSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgeyBUcmFuc2Zvcm1Qb2ludCB9IGZyb20gXCJtb3Rpb24tdXRpbHNcIlxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCB0eXBlIFJlZHVjZWRNb3Rpb25Db25maWcgPSBcImFsd2F5c1wiIHwgXCJuZXZlclwiIHwgXCJ1c2VyXCJcblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW90aW9uQ29uZmlnQ29udGV4dCB7XG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwsIGV4cG9ydGVkIG9ubHkgZm9yIHVzYWdlIGluIEZyYW1lclxuICAgICAqL1xuICAgIHRyYW5zZm9ybVBhZ2VQb2ludDogVHJhbnNmb3JtUG9pbnRcblxuICAgIC8qKlxuICAgICAqIEludGVybmFsLiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhpcyBpcyBhIHN0YXRpYyBjb250ZXh0IGllIHRoZSBGcmFtZXIgY2FudmFzLiBJZiBzbyxcbiAgICAgKiBpdCdsbCBkaXNhYmxlIGFsbCBkeW5hbWljIGZ1bmN0aW9uYWxpdHkuXG4gICAgICovXG4gICAgaXNTdGF0aWM6IGJvb2xlYW5cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgYSBuZXcgZGVmYXVsdCB0cmFuc2l0aW9uIGZvciB0aGUgZW50aXJlIHRyZWUuXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgdHJhbnNpdGlvbj86IFRyYW5zaXRpb25cblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHdpbGwgcmVzcGVjdCB0aGUgZGV2aWNlIHByZWZlcnNSZWR1Y2VkTW90aW9uIHNldHRpbmcgYnkgc3dpdGNoaW5nXG4gICAgICogdHJhbnNmb3JtIGFuaW1hdGlvbnMgb2ZmLlxuICAgICAqXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIHJlZHVjZWRNb3Rpb24/OiBSZWR1Y2VkTW90aW9uQ29uZmlnXG5cbiAgICAvKipcbiAgICAgKiBBIGN1c3RvbSBgbm9uY2VgIGF0dHJpYnV0ZSB1c2VkIHdoZW4gd2FudGluZyB0byBlbmZvcmNlIGEgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgKENTUCkuXG4gICAgICogRm9yIG1vcmUgZGV0YWlscyBzZWU6XG4gICAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9IZWFkZXJzL0NvbnRlbnQtU2VjdXJpdHktUG9saWN5L3N0eWxlLXNyYyN1bnNhZmVfaW5saW5lX3N0eWxlc1xuICAgICAqXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIG5vbmNlPzogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBhbGwgYW5pbWF0aW9ucyB3aWxsIGJlIHNraXBwZWQgYW5kIHZhbHVlcyB3aWxsIGJlIHNldCBpbnN0YW50bHkuXG4gICAgICogVXNlZnVsIGZvciBFMkUgdGVzdHMgYW5kIHZpc3VhbCByZWdyZXNzaW9uIHRlc3RpbmcuXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgc2tpcEFuaW1hdGlvbnM/OiBib29sZWFuXG5cbn1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBNb3Rpb25Db25maWdDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxNb3Rpb25Db25maWdDb250ZXh0Pih7XG4gICAgdHJhbnNmb3JtUGFnZVBvaW50OiAocCkgPT4gcCxcbiAgICBpc1N0YXRpYzogZmFsc2UsXG4gICAgcmVkdWNlZE1vdGlvbjogXCJuZXZlclwiLFxufSlcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useCreateMotionContext: () => (/* binding */ useCreateMotionContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs\");\n/* __next_internal_client_entry_do_not_use__ useCreateMotionContext auto */ var _s = $RefreshSig$();\n\n\n\nfunction useCreateMotionContext(props) {\n _s();\n const { initial, animate } = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.getCurrentTreeVariants)(props, (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_index_mjs__WEBPACK_IMPORTED_MODULE_2__.MotionContext));\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useCreateMotionContext.useMemo\": ()=>({\n initial,\n animate\n })\n }[\"useCreateMotionContext.useMemo\"], [\n variantLabelsAsDependency(initial),\n variantLabelsAsDependency(animate)\n ]);\n}\n_s(useCreateMotionContext, \"shxTVlB2oWfKttdhhGhChpfITWQ=\");\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n //# sourceMappingURL=create.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db250ZXh0L2NyZWF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFPTTs7SUFHRjs7Ozs7Ozs7OztBQVNKO0dBWk07QUFjTjtJQUdJO0FBQ0oiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9jb250ZXh0L01vdGlvbkNvbnRleHQvY3JlYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHVzZUNvbnRleHQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTW90aW9uQ29udGV4dCwgdHlwZSBNb3Rpb25Db250ZXh0UHJvcHMgfSBmcm9tIFwiLlwiXG5pbXBvcnQgeyBNb3Rpb25Qcm9wcyB9IGZyb20gXCIuLi8uLi9tb3Rpb24vdHlwZXNcIlxuaW1wb3J0IHsgZ2V0Q3VycmVudFRyZWVWYXJpYW50cyB9IGZyb20gXCIuL3V0aWxzXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUNyZWF0ZU1vdGlvbkNvbnRleHQ8SW5zdGFuY2U+KFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wc1xuKTogTW90aW9uQ29udGV4dFByb3BzPEluc3RhbmNlPiB7XG4gICAgY29uc3QgeyBpbml0aWFsLCBhbmltYXRlIH0gPSBnZXRDdXJyZW50VHJlZVZhcmlhbnRzKFxuICAgICAgICBwcm9wcyxcbiAgICAgICAgdXNlQ29udGV4dChNb3Rpb25Db250ZXh0KVxuICAgIClcblxuICAgIHJldHVybiB1c2VNZW1vKFxuICAgICAgICAoKSA9PiAoeyBpbml0aWFsLCBhbmltYXRlIH0pLFxuICAgICAgICBbdmFyaWFudExhYmVsc0FzRGVwZW5kZW5jeShpbml0aWFsKSwgdmFyaWFudExhYmVsc0FzRGVwZW5kZW5jeShhbmltYXRlKV1cbiAgICApXG59XG5cbmZ1bmN0aW9uIHZhcmlhbnRMYWJlbHNBc0RlcGVuZGVuY3koXG4gICAgcHJvcDogdW5kZWZpbmVkIHwgc3RyaW5nIHwgc3RyaW5nW10gfCBib29sZWFuXG4pIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwcm9wKSA/IHByb3Auam9pbihcIiBcIikgOiBwcm9wXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionContext: () => (/* binding */ MotionContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ MotionContext auto */ \nconst MotionContext = /* @__PURE__ */ /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db250ZXh0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFXYSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL2NvbnRleHQvTW90aW9uQ29udGV4dC9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgdHlwZSB7IFZpc3VhbEVsZW1lbnQgfSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0IH0gZnJvbSBcInJlYWN0XCJcblxuZXhwb3J0IGludGVyZmFjZSBNb3Rpb25Db250ZXh0UHJvcHM8SW5zdGFuY2UgPSB1bmtub3duPiB7XG4gICAgdmlzdWFsRWxlbWVudD86IFZpc3VhbEVsZW1lbnQ8SW5zdGFuY2U+XG4gICAgaW5pdGlhbD86IGZhbHNlIHwgc3RyaW5nIHwgc3RyaW5nW11cbiAgICBhbmltYXRlPzogc3RyaW5nIHwgc3RyaW5nW11cbn1cblxuZXhwb3J0IGNvbnN0IE1vdGlvbkNvbnRleHQgPSAvKiBAX19QVVJFX18gKi8gY3JlYXRlQ29udGV4dDxNb3Rpb25Db250ZXh0UHJvcHM+KFxuICAgIHt9XG4pXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getCurrentTreeVariants: () => (/* binding */ getCurrentTreeVariants)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n\n\nfunction getCurrentTreeVariants(props, context) {\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isControllingVariants)(props)) {\n const { initial, animate } = props;\n return {\n initial: initial === false || (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(initial)\n ? initial\n : undefined,\n animate: (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db250ZXh0L3V0aWxzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBbUU7O0FBRW5FO0FBQ0EsUUFBUSxpRUFBcUI7QUFDN0IsZ0JBQWdCLG1CQUFtQjtBQUNuQztBQUNBLDBDQUEwQywwREFBYztBQUN4RDtBQUNBO0FBQ0EscUJBQXFCLDBEQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBOztBQUVrQztBQUNsQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Nb3Rpb25Db250ZXh0L3V0aWxzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0NvbnRyb2xsaW5nVmFyaWFudHMsIGlzVmFyaWFudExhYmVsIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5cbmZ1bmN0aW9uIGdldEN1cnJlbnRUcmVlVmFyaWFudHMocHJvcHMsIGNvbnRleHQpIHtcbiAgICBpZiAoaXNDb250cm9sbGluZ1ZhcmlhbnRzKHByb3BzKSkge1xuICAgICAgICBjb25zdCB7IGluaXRpYWwsIGFuaW1hdGUgfSA9IHByb3BzO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaW5pdGlhbDogaW5pdGlhbCA9PT0gZmFsc2UgfHwgaXNWYXJpYW50TGFiZWwoaW5pdGlhbClcbiAgICAgICAgICAgICAgICA/IGluaXRpYWxcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGFuaW1hdGU6IGlzVmFyaWFudExhYmVsKGFuaW1hdGUpID8gYW5pbWF0ZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHByb3BzLmluaGVyaXQgIT09IGZhbHNlID8gY29udGV4dCA6IHt9O1xufVxuXG5leHBvcnQgeyBnZXRDdXJyZW50VHJlZVZhcmlhbnRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/PresenceContext.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PresenceContext: () => (/* binding */ PresenceContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ PresenceContext auto */ \n/**\n * @public\n */ const PresenceContext = /* @__PURE__ */ /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null);\n //# sourceMappingURL=PresenceContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9QcmVzZW5jZUNvbnRleHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQU9BOztDQUVHLDJCQUVDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvY29udGV4dC9QcmVzZW5jZUNvbnRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgdHlwZSB7IFByZXNlbmNlQ29udGV4dFByb3BzIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuXG5leHBvcnQgdHlwZSB7IFByZXNlbmNlQ29udGV4dFByb3BzIH1cblxuLyoqXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBQcmVzZW5jZUNvbnRleHQgPVxuICAgIC8qIEBfX1BVUkVfXyAqLyBjcmVhdGVDb250ZXh0PFByZXNlbmNlQ29udGV4dFByb3BzIHwgbnVsbD4obnVsbClcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SwitchLayoutGroupContext: () => (/* binding */ SwitchLayoutGroupContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ SwitchLayoutGroupContext auto */ \n/**\n * Internal, exported only for usage in Framer\n */ const SwitchLayoutGroupContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({});\n //# sourceMappingURL=SwitchLayoutGroupContext.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvY29udGV4dC9Td2l0Y2hMYXlvdXRHcm91cENvbnRleHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQXlCQTs7Q0FFRyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2NvbnRleHQvU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB0eXBlIHsgVHJhbnNpdGlvbiwgSVByb2plY3Rpb25Ob2RlIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgU3dpdGNoTGF5b3V0R3JvdXAge1xuICAgIHJlZ2lzdGVyPzogKG1lbWJlcjogSVByb2plY3Rpb25Ob2RlKSA9PiB2b2lkXG4gICAgZGVyZWdpc3Rlcj86IChtZW1iZXI6IElQcm9qZWN0aW9uTm9kZSkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQgPSBTd2l0Y2hMYXlvdXRHcm91cCAmXG4gICAgSW5pdGlhbFByb21vdGlvbkNvbmZpZ1xuXG5leHBvcnQgdHlwZSBJbml0aWFsUHJvbW90aW9uQ29uZmlnID0ge1xuICAgIC8qKlxuICAgICAqIFRoZSBpbml0aWFsIHRyYW5zaXRpb24gdG8gdXNlIHdoZW4gdGhlIGVsZW1lbnRzIGluIHRoaXMgZ3JvdXAgbW91bnQgKGFuZCBhdXRvbWF0aWNhbGx5IHByb21vdGVkKS5cbiAgICAgKiBTdWJzZXF1ZW50IHVwZGF0ZXMgc2hvdWxkIHByb3ZpZGUgYSB0cmFuc2l0aW9uIGluIHRoZSBwcm9tb3RlIG1ldGhvZC5cbiAgICAgKi9cbiAgICB0cmFuc2l0aW9uPzogVHJhbnNpdGlvblxuICAgIC8qKlxuICAgICAqIElmIHRoZSBmb2xsb3cgdHJlZSBzaG91bGQgcHJlc2VydmUgaXRzIG9wYWNpdHkgd2hlbiB0aGUgbGVhZCBpcyBwcm9tb3RlZCBvbiBtb3VudFxuICAgICAqL1xuICAgIHNob3VsZFByZXNlcnZlRm9sbG93T3BhY2l0eT86IChtZW1iZXI6IElQcm9qZWN0aW9uTm9kZSkgPT4gYm9vbGVhblxufVxuXG4vKipcbiAqIEludGVybmFsLCBleHBvcnRlZCBvbmx5IGZvciB1c2FnZSBpbiBGcmFtZXJcbiAqL1xuZXhwb3J0IGNvbnN0IFN3aXRjaExheW91dEdyb3VwQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQ8U3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0PihcbiAgICB7fVxuKVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addPointerEvent: () => (/* binding */ addPointerEvent)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var _event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n\n\n\nfunction addPointerEvent(target, eventName, handler, options) {\n return (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.addDomEvent)(target, eventName, (0,_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.addPointerInfo)(handler), options);\n}\n\n\n//# sourceMappingURL=add-pointer-event.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZXZlbnRzL2FkZC1wb2ludGVyLWV2ZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUM7QUFDUzs7QUFFbEQ7QUFDQSxXQUFXLHVEQUFXLG9CQUFvQiwrREFBYztBQUN4RDs7QUFFMkI7QUFDM0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2V2ZW50cy9hZGQtcG9pbnRlci1ldmVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkRG9tRXZlbnQgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IGFkZFBvaW50ZXJJbmZvIH0gZnJvbSAnLi9ldmVudC1pbmZvLm1qcyc7XG5cbmZ1bmN0aW9uIGFkZFBvaW50ZXJFdmVudCh0YXJnZXQsIGV2ZW50TmFtZSwgaGFuZGxlciwgb3B0aW9ucykge1xuICAgIHJldHVybiBhZGREb21FdmVudCh0YXJnZXQsIGV2ZW50TmFtZSwgYWRkUG9pbnRlckluZm8oaGFuZGxlciksIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgeyBhZGRQb2ludGVyRXZlbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFkZC1wb2ludGVyLWV2ZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/events/event-info.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addPointerInfo: () => (/* binding */ addPointerInfo),\n/* harmony export */ extractEventInfo: () => (/* binding */ extractEventInfo)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n\n\nfunction extractEventInfo(event) {\n return {\n point: {\n x: event.pageX,\n y: event.pageY,\n },\n };\n}\nconst addPointerInfo = (handler) => {\n return (event) => (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.isPrimaryPointer)(event) && handler(event, extractEventInfo(event));\n};\n\n\n//# sourceMappingURL=event-info.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZXZlbnRzL2V2ZW50LWluZm8ubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE4Qzs7QUFFOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsNERBQWdCO0FBQ3RDOztBQUU0QztBQUM1QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZXZlbnRzL2V2ZW50LWluZm8ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUHJpbWFyeVBvaW50ZXIgfSBmcm9tICdtb3Rpb24tZG9tJztcblxuZnVuY3Rpb24gZXh0cmFjdEV2ZW50SW5mbyhldmVudCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHBvaW50OiB7XG4gICAgICAgICAgICB4OiBldmVudC5wYWdlWCxcbiAgICAgICAgICAgIHk6IGV2ZW50LnBhZ2VZLFxuICAgICAgICB9LFxuICAgIH07XG59XG5jb25zdCBhZGRQb2ludGVySW5mbyA9IChoYW5kbGVyKSA9PiB7XG4gICAgcmV0dXJuIChldmVudCkgPT4gaXNQcmltYXJ5UG9pbnRlcihldmVudCkgJiYgaGFuZGxlcihldmVudCwgZXh0cmFjdEV2ZW50SW5mbyhldmVudCkpO1xufTtcblxuZXhwb3J0IHsgYWRkUG9pbnRlckluZm8sIGV4dHJhY3RFdmVudEluZm8gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWV2ZW50LWluZm8ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VisualElementDragControls: () => (/* binding */ VisualElementDragControls),\n/* harmony export */ elementDragControls: () => (/* binding */ elementDragControls)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/index.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n/* harmony import */ var _utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../utils/get-context-window.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\");\n/* harmony import */ var _utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../utils/is-ref-object.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\");\n/* harmony import */ var _pan_PanSession_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../pan/PanSession.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\");\n/* harmony import */ var _utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/constraints.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs\");\n\n\n\n\n\n\n\n\n\nconst elementDragControls = new WeakMap();\nclass VisualElementDragControls {\n constructor(visualElement) {\n this.openDragLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.createBox)();\n /**\n * The latest pointer event. Used as fallback when the `cancel` and `stop` functions are called without arguments.\n */\n this.latestPointerEvent = null;\n /**\n * The latest pan info. Used as fallback when the `cancel` and `stop` functions are called without arguments.\n */\n this.latestPanInfo = null;\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false, distanceThreshold } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n if (snapToCursor) {\n this.snapToCursor((0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event).point);\n }\n this.stopAnimation();\n };\n const onStart = (event, info) => {\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openDragLock)\n this.openDragLock();\n this.openDragLock = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.setDragLock)(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openDragLock)\n return;\n }\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin and pointer offset\n */\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (motion_dom__WEBPACK_IMPORTED_MODULE_4__.percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = (0,motion_dom__WEBPACK_IMPORTED_MODULE_5__.calcLength)(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart) {\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.update(() => onDragStart(event, info), false, true);\n }\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_7__.addValueToWillChange)(this.visualElement, \"transform\");\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openDragLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n if (onDrag) {\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.update(() => onDrag(event, info), false, true);\n }\n };\n const onSessionEnd = (event, info) => {\n this.latestPointerEvent = event;\n this.latestPanInfo = info;\n this.stop(event, info);\n this.latestPointerEvent = null;\n this.latestPanInfo = null;\n };\n const resumeAnimation = () => {\n const { dragSnapToOrigin: snap } = this.getProps();\n if (snap || this.constraints) {\n this.startAnimation({ x: 0, y: 0 });\n }\n };\n const { dragSnapToOrigin } = this.getProps();\n this.panSession = new _pan_PanSession_mjs__WEBPACK_IMPORTED_MODULE_8__.PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n resumeAnimation,\n }, {\n transformPagePoint: this.visualElement.getTransformPagePoint(),\n dragSnapToOrigin,\n distanceThreshold,\n contextWindow: (0,_utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_9__.getContextWindow)(this.visualElement),\n element: this.visualElement.current,\n });\n }\n /**\n * @internal\n */\n stop(event, panInfo) {\n const finalEvent = event || this.latestPointerEvent;\n const finalPanInfo = panInfo || this.latestPanInfo;\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging || !finalPanInfo || !finalEvent)\n return;\n const { velocity } = finalPanInfo;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n if (onDragEnd) {\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.postRender(() => onDragEnd(finalEvent, finalPanInfo));\n }\n }\n /**\n * @internal\n */\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.endPanSession();\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openDragLock) {\n this.openDragLock();\n this.openDragLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n /**\n * Clean up the pan session without modifying other drag state.\n * This is used during unmount to ensure event listeners are removed\n * without affecting projection animations or drag locks.\n * @internal\n */\n endPanSession() {\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.applyConstraints)(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n const { dragConstraints, dragElastic } = this.getProps();\n const layout = this.visualElement.projection &&\n !this.visualElement.projection.layout\n ? this.visualElement.projection.measure(false)\n : this.visualElement.projection?.layout;\n const prevConstraints = this.constraints;\n if (dragConstraints && (0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcRelativeConstraints)(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.resolveDragElastic)(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative. This only applies to relative (non-ref)\n * constraints, as ref-based constraints from calcViewportConstraints are already in the\n * correct coordinate space for the motion value transform offset.\n */\n if (prevConstraints !== this.constraints &&\n !(0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints) &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n if (this.constraints !== false &&\n this.getAxisMotionValue(axis)) {\n this.constraints[axis] = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.rebaseAxisConstraints)(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !(0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(constraints))\n return false;\n const constraintsElement = constraints.current;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.invariant)(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\", \"drag-constraints-ref\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = (0,motion_dom__WEBPACK_IMPORTED_MODULE_13__.measurePageBox)(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcViewportConstraints)(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints((0,motion_dom__WEBPACK_IMPORTED_MODULE_14__.convertBoxToBoundingBox)(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = (0,motion_dom__WEBPACK_IMPORTED_MODULE_14__.convertBoundingBoxToBox)(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_7__.addValueToWillChange)(this.visualElement, axis);\n return axisValue.start((0,motion_dom__WEBPACK_IMPORTED_MODULE_15__.animateMotionValue)(axis, axisValue, 0, transition, this.visualElement, false));\n }\n stopAnimation() {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => this.getAxisMotionValue(axis).stop());\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = `_drag${axis.toUpperCase()}`;\n const props = this.visualElement.getProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (props.initial\n ? props.initial[axis]\n : undefined) || 0);\n }\n snapToCursor(point) {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n /**\n * The layout measurement includes the current transform value,\n * so we need to add it back to get the correct snap position.\n * This fixes an issue where elements with initial coordinates\n * would snap to the wrong position on the first drag.\n */\n const current = axisValue.get() || 0;\n axisValue.set(point[axis] - (0,motion_dom__WEBPACK_IMPORTED_MODULE_16__.mixNumber)(min, max, 0.5) + current);\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!(0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue && this.constraints !== false) {\n const latest = axisValue.get();\n boxProgress[axis] = (0,_utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.calcOrigin)({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n /**\n * Reset constraints so resolveConstraints() will recalculate them\n * with the freshly measured layout rather than returning the cached value.\n */\n this.constraints = false;\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set((0,motion_dom__WEBPACK_IMPORTED_MODULE_16__.mixNumber)(min, max, boxProgress[axis]));\n });\n /**\n * Flush the updated transform to the DOM synchronously to prevent\n * a visual flash at the element's CSS layout position (0,0) when\n * the transform was stripped for measurement.\n */\n this.visualElement.render();\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_17__.addPointerEvent)(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n const target = event.target;\n /**\n * Only block drag if clicking on a text input child element\n * (input, textarea, select, contenteditable) where users might\n * want to select text or interact with the control.\n *\n * Buttons and links don't block drag since they don't have\n * click-and-move actions of their own.\n */\n const isClickingTextInputChild = target !== element && (0,motion_dom__WEBPACK_IMPORTED_MODULE_18__.isElementTextInput)(target);\n if (drag && dragListener && !isClickingTextInputChild) {\n this.start(event);\n }\n });\n /**\n * If using ref-based constraints, observe both the draggable element\n * and the constraint container for size changes via ResizeObserver.\n * Setup is deferred because dragConstraints.current is null when\n * addListeners first runs (React hasn't committed the ref yet).\n */\n let stopResizeObservers;\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if ((0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_11__.isRefObject)(dragConstraints) && dragConstraints.current) {\n this.constraints = this.resolveRefConstraints();\n if (!stopResizeObservers) {\n stopResizeObservers = startResizeObservers(element, dragConstraints.current, () => this.scalePositionWithinConstraints());\n }\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n motion_dom__WEBPACK_IMPORTED_MODULE_6__.frame.read(measureDragConstraints);\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = (0,motion_dom__WEBPACK_IMPORTED_MODULE_19__.addDomEvent)(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.eachAxis)((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n stopResizeObservers && stopResizeObservers();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = _utils_constraints_mjs__WEBPACK_IMPORTED_MODULE_10__.defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction skipFirstCall(callback) {\n let isFirst = true;\n return () => {\n if (isFirst) {\n isFirst = false;\n return;\n }\n callback();\n };\n}\nfunction startResizeObservers(element, constraintsElement, onResize) {\n const stopElement = (0,motion_dom__WEBPACK_IMPORTED_MODULE_20__.resize)(element, skipFirstCall(onResize));\n const stopContainer = (0,motion_dom__WEBPACK_IMPORTED_MODULE_20__.resize)(constraintsElement, skipFirstCall(onResize));\n return () => {\n stopElement();\n stopContainer();\n };\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\n\n//# sourceMappingURL=VisualElementDragControls.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9WaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUEwUDtBQUNqTjtBQUM0QjtBQUNOO0FBQ087QUFDVjtBQUNUO0FBQ2lJOztBQUVwTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixxREFBUztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QiwwQ0FBMEMsSUFBSTtBQUN2RTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLHdFQUFnQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHFDQUFxQztBQUN6RDtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsdURBQVc7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLG9EQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLCtDQUFPO0FBQzNCLDRCQUE0QixhQUFhO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQyxzREFBVTtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQSxnQkFBZ0IsNkNBQUs7QUFDckI7QUFDQSxZQUFZLGdFQUFvQjtBQUNoQyxvQkFBb0IsaUJBQWlCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsK0RBQStEO0FBQ25GO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixTQUFTO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2Q0FBSztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix5QkFBeUI7QUFDN0M7QUFDQSxzQ0FBc0MsWUFBWTtBQUNsRDtBQUNBO0FBQ0EsZ0JBQWdCLG1CQUFtQjtBQUNuQyw4QkFBOEIsMkRBQVU7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsK0VBQWdCO0FBQzNDO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsV0FBVztBQUMzQjtBQUNBLGdCQUFnQixZQUFZO0FBQzVCO0FBQ0EsWUFBWSw2Q0FBSztBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiw2QkFBNkI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsT0FBTztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQix5RUFBZ0I7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsK0JBQStCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0Isc0VBQVc7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLGdGQUF1QjtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLDJFQUFrQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsc0VBQVc7QUFDeEI7QUFDQTtBQUNBO0FBQ0EsWUFBWSxvREFBUTtBQUNwQjtBQUNBO0FBQ0EsNkNBQTZDLDhFQUFxQjtBQUNsRTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IseURBQXlEO0FBQ3pFLDZCQUE2QixzRUFBVztBQUN4QztBQUNBO0FBQ0EsUUFBUSx3REFBUztBQUNqQixnQkFBZ0IsYUFBYTtBQUM3QjtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsMkRBQWM7QUFDN0Msa0NBQWtDLGdGQUF1QjtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkRBQTZELG9FQUF1QjtBQUNwRjtBQUNBO0FBQ0Esc0NBQXNDLG9FQUF1QjtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBGQUEwRjtBQUMxRztBQUNBLG1DQUFtQyxvREFBUTtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsZ0VBQW9CO0FBQzVCLCtCQUErQiwrREFBa0I7QUFDakQ7QUFDQTtBQUNBLFFBQVEsb0RBQVE7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxtQkFBbUI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxvREFBUTtBQUNoQixvQkFBb0IsT0FBTztBQUMzQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsYUFBYTtBQUNqQztBQUNBO0FBQ0Esd0JBQXdCLFdBQVc7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsc0RBQVM7QUFDckQ7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHdCQUF3QjtBQUN4QyxnQkFBZ0IsYUFBYTtBQUM3QixhQUFhLHNFQUFXO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCLFFBQVEsb0RBQVE7QUFDaEI7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLG1FQUFVLEdBQUcsMEJBQTBCO0FBQzNFO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixvQkFBb0I7QUFDcEM7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLG9EQUFRO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CLDBCQUEwQixzREFBUztBQUNuQyxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLCtFQUFlO0FBQ25ELG9CQUFvQiw0QkFBNEI7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUVBQW1FLCtEQUFrQjtBQUNyRjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixrQkFBa0I7QUFDdEMsZ0JBQWdCLHNFQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixhQUFhO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZDQUFLO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsd0RBQVc7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzRkFBc0YseUJBQXlCO0FBQy9HO0FBQ0EsZ0JBQWdCLG9EQUFRO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQix5R0FBeUcsbUVBQWMseUJBQXlCO0FBQ2hLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLG1EQUFNO0FBQzlCLDBCQUEwQixtREFBTTtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUwRDtBQUMxRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9WaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVCb3gsIGZyYW1lLCBlYWNoQXhpcywgbWVhc3VyZVBhZ2VCb3gsIGNvbnZlcnRCb3hUb0JvdW5kaW5nQm94LCBjb252ZXJ0Qm91bmRpbmdCb3hUb0JveCwgYWRkVmFsdWVUb1dpbGxDaGFuZ2UsIGFuaW1hdGVNb3Rpb25WYWx1ZSwgbWl4TnVtYmVyLCBpc0VsZW1lbnRUZXh0SW5wdXQsIGFkZERvbUV2ZW50LCBzZXREcmFnTG9jaywgcGVyY2VudCwgY2FsY0xlbmd0aCwgcmVzaXplIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBpbnZhcmlhbnQgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgYWRkUG9pbnRlckV2ZW50IH0gZnJvbSAnLi4vLi4vZXZlbnRzL2FkZC1wb2ludGVyLWV2ZW50Lm1qcyc7XG5pbXBvcnQgeyBleHRyYWN0RXZlbnRJbmZvIH0gZnJvbSAnLi4vLi4vZXZlbnRzL2V2ZW50LWluZm8ubWpzJztcbmltcG9ydCB7IGdldENvbnRleHRXaW5kb3cgfSBmcm9tICcuLi8uLi91dGlscy9nZXQtY29udGV4dC13aW5kb3cubWpzJztcbmltcG9ydCB7IGlzUmVmT2JqZWN0IH0gZnJvbSAnLi4vLi4vdXRpbHMvaXMtcmVmLW9iamVjdC5tanMnO1xuaW1wb3J0IHsgUGFuU2Vzc2lvbiB9IGZyb20gJy4uL3Bhbi9QYW5TZXNzaW9uLm1qcyc7XG5pbXBvcnQgeyBhcHBseUNvbnN0cmFpbnRzLCBjYWxjUmVsYXRpdmVDb25zdHJhaW50cywgcmVzb2x2ZURyYWdFbGFzdGljLCByZWJhc2VBeGlzQ29uc3RyYWludHMsIGNhbGNWaWV3cG9ydENvbnN0cmFpbnRzLCBjYWxjT3JpZ2luLCBkZWZhdWx0RWxhc3RpYyB9IGZyb20gJy4vdXRpbHMvY29uc3RyYWludHMubWpzJztcblxuY29uc3QgZWxlbWVudERyYWdDb250cm9scyA9IG5ldyBXZWFrTWFwKCk7XG5jbGFzcyBWaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzIHtcbiAgICBjb25zdHJ1Y3Rvcih2aXN1YWxFbGVtZW50KSB7XG4gICAgICAgIHRoaXMub3BlbkRyYWdMb2NrID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY3VycmVudERpcmVjdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMub3JpZ2luUG9pbnQgPSB7IHg6IDAsIHk6IDAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBwZXJtaXR0ZWQgYm91bmRhcmllcyBvZiB0cmF2ZWwsIGluIHBpeGVscy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY29uc3RyYWludHMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5oYXNNdXRhdGVkQ29uc3RyYWludHMgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBwZXItYXhpcyByZXNvbHZlZCBlbGFzdGljIHZhbHVlcy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZWxhc3RpYyA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGxhdGVzdCBwb2ludGVyIGV2ZW50LiBVc2VkIGFzIGZhbGxiYWNrIHdoZW4gdGhlIGBjYW5jZWxgIGFuZCBgc3RvcGAgZnVuY3Rpb25zIGFyZSBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxhdGVzdFBvaW50ZXJFdmVudCA9IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgbGF0ZXN0IHBhbiBpbmZvLiBVc2VkIGFzIGZhbGxiYWNrIHdoZW4gdGhlIGBjYW5jZWxgIGFuZCBgc3RvcGAgZnVuY3Rpb25zIGFyZSBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmxhdGVzdFBhbkluZm8gPSBudWxsO1xuICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQgPSB2aXN1YWxFbGVtZW50O1xuICAgIH1cbiAgICBzdGFydChvcmlnaW5FdmVudCwgeyBzbmFwVG9DdXJzb3IgPSBmYWxzZSwgZGlzdGFuY2VUaHJlc2hvbGQgfSA9IHt9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEb24ndCBzdGFydCBkcmFnZ2luZyBpZiB0aGlzIGNvbXBvbmVudCBpcyBleGl0aW5nXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCB7IHByZXNlbmNlQ29udGV4dCB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xuICAgICAgICBpZiAocHJlc2VuY2VDb250ZXh0ICYmIHByZXNlbmNlQ29udGV4dC5pc1ByZXNlbnQgPT09IGZhbHNlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBvblNlc3Npb25TdGFydCA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNuYXBUb0N1cnNvcikge1xuICAgICAgICAgICAgICAgIHRoaXMuc25hcFRvQ3Vyc29yKGV4dHJhY3RFdmVudEluZm8oZXZlbnQpLnBvaW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvblN0YXJ0ID0gKGV2ZW50LCBpbmZvKSA9PiB7XG4gICAgICAgICAgICAvLyBBdHRlbXB0IHRvIGdyYWIgdGhlIGdsb2JhbCBkcmFnIGdlc3R1cmUgbG9jayAtIG1heWJlIG1ha2UgdGhpcyBwYXJ0IG9mIFBhblNlc3Npb25cbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZywgZHJhZ1Byb3BhZ2F0aW9uLCBvbkRyYWdTdGFydCB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICAgICAgaWYgKGRyYWcgJiYgIWRyYWdQcm9wYWdhdGlvbikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wZW5EcmFnTG9jaylcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuRHJhZ0xvY2soKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5EcmFnTG9jayA9IHNldERyYWdMb2NrKGRyYWcpO1xuICAgICAgICAgICAgICAgIC8vIElmIHdlIGRvbiAndCBoYXZlIHRoZSBsb2NrLCBkb24ndCBzdGFydCBkcmFnZ2luZ1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5vcGVuRHJhZ0xvY2spXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubGF0ZXN0UG9pbnRlckV2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgICB0aGlzLmxhdGVzdFBhbkluZm8gPSBpbmZvO1xuICAgICAgICAgICAgdGhpcy5pc0RyYWdnaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudERpcmVjdGlvbiA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVDb25zdHJhaW50cygpO1xuICAgICAgICAgICAgaWYgKHRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aXN1YWxFbGVtZW50LnByb2plY3Rpb24uaXNBbmltYXRpb25CbG9ja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi50YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFJlY29yZCBnZXN0dXJlIG9yaWdpbiBhbmQgcG9pbnRlciBvZmZzZXRcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudCA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpLmdldCgpIHx8IDA7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSWYgdGhlIE1vdGlvblZhbHVlIGlzIGEgcGVyY2VudGFnZSB2YWx1ZSBjb252ZXJ0IHRvIHB4XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKHBlcmNlbnQudGVzdChjdXJyZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHByb2plY3Rpb24gfSA9IHRoaXMudmlzdWFsRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2plY3Rpb24gJiYgcHJvamVjdGlvbi5sYXlvdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lYXN1cmVkQXhpcyA9IHByb2plY3Rpb24ubGF5b3V0LmxheW91dEJveFtheGlzXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtZWFzdXJlZEF4aXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBjYWxjTGVuZ3RoKG1lYXN1cmVkQXhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGxlbmd0aCAqIChwYXJzZUZsb2F0KGN1cnJlbnQpIC8gMTAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblBvaW50W2F4aXNdID0gY3VycmVudDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gRmlyZSBvbkRyYWdTdGFydCBldmVudFxuICAgICAgICAgICAgaWYgKG9uRHJhZ1N0YXJ0KSB7XG4gICAgICAgICAgICAgICAgZnJhbWUudXBkYXRlKCgpID0+IG9uRHJhZ1N0YXJ0KGV2ZW50LCBpbmZvKSwgZmFsc2UsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWRkVmFsdWVUb1dpbGxDaGFuZ2UodGhpcy52aXN1YWxFbGVtZW50LCBcInRyYW5zZm9ybVwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYW5pbWF0aW9uU3RhdGUgfSA9IHRoaXMudmlzdWFsRWxlbWVudDtcbiAgICAgICAgICAgIGFuaW1hdGlvblN0YXRlICYmIGFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcIndoaWxlRHJhZ1wiLCB0cnVlKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Nb3ZlID0gKGV2ZW50LCBpbmZvKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxhdGVzdFBvaW50ZXJFdmVudCA9IGV2ZW50O1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RQYW5JbmZvID0gaW5mbztcbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZ1Byb3BhZ2F0aW9uLCBkcmFnRGlyZWN0aW9uTG9jaywgb25EaXJlY3Rpb25Mb2NrLCBvbkRyYWcsIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgICAgICAvLyBJZiB3ZSBkaWRuJ3Qgc3VjY2Vzc2Z1bGx5IHJlY2VpdmUgdGhlIGdlc3R1cmUgbG9jaywgZWFybHkgcmV0dXJuLlxuICAgICAgICAgICAgaWYgKCFkcmFnUHJvcGFnYXRpb24gJiYgIXRoaXMub3BlbkRyYWdMb2NrKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHsgb2Zmc2V0IH0gPSBpbmZvO1xuICAgICAgICAgICAgLy8gQXR0ZW1wdCB0byBkZXRlY3QgZHJhZyBkaXJlY3Rpb24gaWYgZGlyZWN0aW9uTG9jayBpcyB0cnVlXG4gICAgICAgICAgICBpZiAoZHJhZ0RpcmVjdGlvbkxvY2sgJiYgdGhpcy5jdXJyZW50RGlyZWN0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50RGlyZWN0aW9uID0gZ2V0Q3VycmVudERpcmVjdGlvbihvZmZzZXQpO1xuICAgICAgICAgICAgICAgIC8vIElmIHdlJ3ZlIHN1Y2Nlc3NmdWxseSBzZXQgYSBkaXJlY3Rpb24sIG5vdGlmeSBsaXN0ZW5lclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnREaXJlY3Rpb24gIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgb25EaXJlY3Rpb25Mb2NrICYmIG9uRGlyZWN0aW9uTG9jayh0aGlzLmN1cnJlbnREaXJlY3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBVcGRhdGUgZWFjaCBwb2ludCB3aXRoIHRoZSBsYXRlc3QgcG9zaXRpb25cbiAgICAgICAgICAgIHRoaXMudXBkYXRlQXhpcyhcInhcIiwgaW5mby5wb2ludCwgb2Zmc2V0KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQXhpcyhcInlcIiwgaW5mby5wb2ludCwgb2Zmc2V0KTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWRlYWxseSB3ZSB3b3VsZCBsZWF2ZSB0aGUgcmVuZGVyZXIgdG8gZmlyZSBuYXR1cmFsbHkgYXQgdGhlIGVuZCBvZlxuICAgICAgICAgICAgICogdGhpcyBmcmFtZSBidXQgaWYgdGhlIGVsZW1lbnQgaXMgYWJvdXQgdG8gY2hhbmdlIGxheW91dCBhcyB0aGUgcmVzdWx0XG4gICAgICAgICAgICAgKiBvZiBhIHJlLXJlbmRlciB3ZSB3YW50IHRvIGVuc3VyZSB0aGUgYnJvd3NlciBjYW4gcmVhZCB0aGUgbGF0ZXN0XG4gICAgICAgICAgICAgKiBib3VuZGluZyBib3ggdG8gZW5zdXJlIHRoZSBwb2ludGVyIGFuZCBlbGVtZW50IGRvbid0IGZhbGwgb3V0IG9mIHN5bmMuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMudmlzdWFsRWxlbWVudC5yZW5kZXIoKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVGhpcyBtdXN0IGZpcmUgYWZ0ZXIgdGhlIHJlbmRlciBjYWxsIGFzIGl0IG1pZ2h0IHRyaWdnZXIgYSBzdGF0ZVxuICAgICAgICAgICAgICogY2hhbmdlIHdoaWNoIGl0c2VsZiBtaWdodCB0cmlnZ2VyIGEgbGF5b3V0IHVwZGF0ZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKG9uRHJhZykge1xuICAgICAgICAgICAgICAgIGZyYW1lLnVwZGF0ZSgoKSA9PiBvbkRyYWcoZXZlbnQsIGluZm8pLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uU2Vzc2lvbkVuZCA9IChldmVudCwgaW5mbykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RQb2ludGVyRXZlbnQgPSBldmVudDtcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0UGFuSW5mbyA9IGluZm87XG4gICAgICAgICAgICB0aGlzLnN0b3AoZXZlbnQsIGluZm8pO1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RQb2ludGVyRXZlbnQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5sYXRlc3RQYW5JbmZvID0gbnVsbDtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgcmVzdW1lQW5pbWF0aW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBkcmFnU25hcFRvT3JpZ2luOiBzbmFwIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgICAgICBpZiAoc25hcCB8fCB0aGlzLmNvbnN0cmFpbnRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydEFuaW1hdGlvbih7IHg6IDAsIHk6IDAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgZHJhZ1NuYXBUb09yaWdpbiB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICB0aGlzLnBhblNlc3Npb24gPSBuZXcgUGFuU2Vzc2lvbihvcmlnaW5FdmVudCwge1xuICAgICAgICAgICAgb25TZXNzaW9uU3RhcnQsXG4gICAgICAgICAgICBvblN0YXJ0LFxuICAgICAgICAgICAgb25Nb3ZlLFxuICAgICAgICAgICAgb25TZXNzaW9uRW5kLFxuICAgICAgICAgICAgcmVzdW1lQW5pbWF0aW9uLFxuICAgICAgICB9LCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm1QYWdlUG9pbnQ6IHRoaXMudmlzdWFsRWxlbWVudC5nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSxcbiAgICAgICAgICAgIGRyYWdTbmFwVG9PcmlnaW4sXG4gICAgICAgICAgICBkaXN0YW5jZVRocmVzaG9sZCxcbiAgICAgICAgICAgIGNvbnRleHRXaW5kb3c6IGdldENvbnRleHRXaW5kb3codGhpcy52aXN1YWxFbGVtZW50KSxcbiAgICAgICAgICAgIGVsZW1lbnQ6IHRoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50LFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgc3RvcChldmVudCwgcGFuSW5mbykge1xuICAgICAgICBjb25zdCBmaW5hbEV2ZW50ID0gZXZlbnQgfHwgdGhpcy5sYXRlc3RQb2ludGVyRXZlbnQ7XG4gICAgICAgIGNvbnN0IGZpbmFsUGFuSW5mbyA9IHBhbkluZm8gfHwgdGhpcy5sYXRlc3RQYW5JbmZvO1xuICAgICAgICBjb25zdCBpc0RyYWdnaW5nID0gdGhpcy5pc0RyYWdnaW5nO1xuICAgICAgICB0aGlzLmNhbmNlbCgpO1xuICAgICAgICBpZiAoIWlzRHJhZ2dpbmcgfHwgIWZpbmFsUGFuSW5mbyB8fCAhZmluYWxFdmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyB2ZWxvY2l0eSB9ID0gZmluYWxQYW5JbmZvO1xuICAgICAgICB0aGlzLnN0YXJ0QW5pbWF0aW9uKHZlbG9jaXR5KTtcbiAgICAgICAgY29uc3QgeyBvbkRyYWdFbmQgfSA9IHRoaXMuZ2V0UHJvcHMoKTtcbiAgICAgICAgaWYgKG9uRHJhZ0VuZCkge1xuICAgICAgICAgICAgZnJhbWUucG9zdFJlbmRlcigoKSA9PiBvbkRyYWdFbmQoZmluYWxFdmVudCwgZmluYWxQYW5JbmZvKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLmlzRHJhZ2dpbmcgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uLCBhbmltYXRpb25TdGF0ZSB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xuICAgICAgICBpZiAocHJvamVjdGlvbikge1xuICAgICAgICAgICAgcHJvamVjdGlvbi5pc0FuaW1hdGlvbkJsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVuZFBhblNlc3Npb24oKTtcbiAgICAgICAgY29uc3QgeyBkcmFnUHJvcGFnYXRpb24gfSA9IHRoaXMuZ2V0UHJvcHMoKTtcbiAgICAgICAgaWYgKCFkcmFnUHJvcGFnYXRpb24gJiYgdGhpcy5vcGVuRHJhZ0xvY2spIHtcbiAgICAgICAgICAgIHRoaXMub3BlbkRyYWdMb2NrKCk7XG4gICAgICAgICAgICB0aGlzLm9wZW5EcmFnTG9jayA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgYW5pbWF0aW9uU3RhdGUgJiYgYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwid2hpbGVEcmFnXCIsIGZhbHNlKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYW4gdXAgdGhlIHBhbiBzZXNzaW9uIHdpdGhvdXQgbW9kaWZ5aW5nIG90aGVyIGRyYWcgc3RhdGUuXG4gICAgICogVGhpcyBpcyB1c2VkIGR1cmluZyB1bm1vdW50IHRvIGVuc3VyZSBldmVudCBsaXN0ZW5lcnMgYXJlIHJlbW92ZWRcbiAgICAgKiB3aXRob3V0IGFmZmVjdGluZyBwcm9qZWN0aW9uIGFuaW1hdGlvbnMgb3IgZHJhZyBsb2Nrcy5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBlbmRQYW5TZXNzaW9uKCkge1xuICAgICAgICB0aGlzLnBhblNlc3Npb24gJiYgdGhpcy5wYW5TZXNzaW9uLmVuZCgpO1xuICAgICAgICB0aGlzLnBhblNlc3Npb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHVwZGF0ZUF4aXMoYXhpcywgX3BvaW50LCBvZmZzZXQpIHtcbiAgICAgICAgY29uc3QgeyBkcmFnIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgIC8vIElmIHdlJ3JlIG5vdCBkcmFnZ2luZyB0aGlzIGF4aXMsIGRvIGFuIGVhcmx5IHJldHVybi5cbiAgICAgICAgaWYgKCFvZmZzZXQgfHwgIXNob3VsZERyYWcoYXhpcywgZHJhZywgdGhpcy5jdXJyZW50RGlyZWN0aW9uKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgYXhpc1ZhbHVlID0gdGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoYXhpcyk7XG4gICAgICAgIGxldCBuZXh0ID0gdGhpcy5vcmlnaW5Qb2ludFtheGlzXSArIG9mZnNldFtheGlzXTtcbiAgICAgICAgLy8gQXBwbHkgY29uc3RyYWludHNcbiAgICAgICAgaWYgKHRoaXMuY29uc3RyYWludHMgJiYgdGhpcy5jb25zdHJhaW50c1theGlzXSkge1xuICAgICAgICAgICAgbmV4dCA9IGFwcGx5Q29uc3RyYWludHMobmV4dCwgdGhpcy5jb25zdHJhaW50c1theGlzXSwgdGhpcy5lbGFzdGljW2F4aXNdKTtcbiAgICAgICAgfVxuICAgICAgICBheGlzVmFsdWUuc2V0KG5leHQpO1xuICAgIH1cbiAgICByZXNvbHZlQ29uc3RyYWludHMoKSB7XG4gICAgICAgIGNvbnN0IHsgZHJhZ0NvbnN0cmFpbnRzLCBkcmFnRWxhc3RpYyB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICBjb25zdCBsYXlvdXQgPSB0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbiAmJlxuICAgICAgICAgICAgIXRoaXMudmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uLmxheW91dFxuICAgICAgICAgICAgPyB0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbi5tZWFzdXJlKGZhbHNlKVxuICAgICAgICAgICAgOiB0aGlzLnZpc3VhbEVsZW1lbnQucHJvamVjdGlvbj8ubGF5b3V0O1xuICAgICAgICBjb25zdCBwcmV2Q29uc3RyYWludHMgPSB0aGlzLmNvbnN0cmFpbnRzO1xuICAgICAgICBpZiAoZHJhZ0NvbnN0cmFpbnRzICYmIGlzUmVmT2JqZWN0KGRyYWdDb25zdHJhaW50cykpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jb25zdHJhaW50cykge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uc3RyYWludHMgPSB0aGlzLnJlc29sdmVSZWZDb25zdHJhaW50cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGRyYWdDb25zdHJhaW50cyAmJiBsYXlvdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnN0cmFpbnRzID0gY2FsY1JlbGF0aXZlQ29uc3RyYWludHMobGF5b3V0LmxheW91dEJveCwgZHJhZ0NvbnN0cmFpbnRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uc3RyYWludHMgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsYXN0aWMgPSByZXNvbHZlRHJhZ0VsYXN0aWMoZHJhZ0VsYXN0aWMpO1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgd2UncmUgb3V0cHV0dGluZyB0byBleHRlcm5hbCBNb3Rpb25WYWx1ZXMsIHdlIHdhbnQgdG8gcmViYXNlIHRoZSBtZWFzdXJlZCBjb25zdHJhaW50c1xuICAgICAgICAgKiBmcm9tIHZpZXdwb3J0LXJlbGF0aXZlIHRvIGNvbXBvbmVudC1yZWxhdGl2ZS4gVGhpcyBvbmx5IGFwcGxpZXMgdG8gcmVsYXRpdmUgKG5vbi1yZWYpXG4gICAgICAgICAqIGNvbnN0cmFpbnRzLCBhcyByZWYtYmFzZWQgY29uc3RyYWludHMgZnJvbSBjYWxjVmlld3BvcnRDb25zdHJhaW50cyBhcmUgYWxyZWFkeSBpbiB0aGVcbiAgICAgICAgICogY29ycmVjdCBjb29yZGluYXRlIHNwYWNlIGZvciB0aGUgbW90aW9uIHZhbHVlIHRyYW5zZm9ybSBvZmZzZXQuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocHJldkNvbnN0cmFpbnRzICE9PSB0aGlzLmNvbnN0cmFpbnRzICYmXG4gICAgICAgICAgICAhaXNSZWZPYmplY3QoZHJhZ0NvbnN0cmFpbnRzKSAmJlxuICAgICAgICAgICAgbGF5b3V0ICYmXG4gICAgICAgICAgICB0aGlzLmNvbnN0cmFpbnRzICYmXG4gICAgICAgICAgICAhdGhpcy5oYXNNdXRhdGVkQ29uc3RyYWludHMpIHtcbiAgICAgICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uc3RyYWludHMgIT09IGZhbHNlICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uc3RyYWludHNbYXhpc10gPSByZWJhc2VBeGlzQ29uc3RyYWludHMobGF5b3V0LmxheW91dEJveFtheGlzXSwgdGhpcy5jb25zdHJhaW50c1theGlzXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVzb2x2ZVJlZkNvbnN0cmFpbnRzKCkge1xuICAgICAgICBjb25zdCB7IGRyYWdDb25zdHJhaW50czogY29uc3RyYWludHMsIG9uTWVhc3VyZURyYWdDb25zdHJhaW50cyB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICBpZiAoIWNvbnN0cmFpbnRzIHx8ICFpc1JlZk9iamVjdChjb25zdHJhaW50cykpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzRWxlbWVudCA9IGNvbnN0cmFpbnRzLmN1cnJlbnQ7XG4gICAgICAgIGludmFyaWFudChjb25zdHJhaW50c0VsZW1lbnQgIT09IG51bGwsIFwiSWYgYGRyYWdDb25zdHJhaW50c2AgaXMgc2V0IGFzIGEgUmVhY3QgcmVmLCB0aGF0IHJlZiBtdXN0IGJlIHBhc3NlZCB0byBhbm90aGVyIGNvbXBvbmVudCdzIGByZWZgIHByb3AuXCIsIFwiZHJhZy1jb25zdHJhaW50cy1yZWZcIik7XG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdGhpcy52aXN1YWxFbGVtZW50O1xuICAgICAgICAvLyBUT0RPXG4gICAgICAgIGlmICghcHJvamVjdGlvbiB8fCAhcHJvamVjdGlvbi5sYXlvdXQpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzQm94ID0gbWVhc3VyZVBhZ2VCb3goY29uc3RyYWludHNFbGVtZW50LCBwcm9qZWN0aW9uLnJvb3QsIHRoaXMudmlzdWFsRWxlbWVudC5nZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSk7XG4gICAgICAgIGxldCBtZWFzdXJlZENvbnN0cmFpbnRzID0gY2FsY1ZpZXdwb3J0Q29uc3RyYWludHMocHJvamVjdGlvbi5sYXlvdXQubGF5b3V0Qm94LCBjb25zdHJhaW50c0JveCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGVyZSdzIGFuIG9uTWVhc3VyZURyYWdDb25zdHJhaW50cyBsaXN0ZW5lciB3ZSBjYWxsIGl0IGFuZFxuICAgICAgICAgKiBpZiBkaWZmZXJlbnQgY29uc3RyYWludHMgYXJlIHJldHVybmVkLCBzZXQgY29uc3RyYWludHMgdG8gdGhhdFxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG9uTWVhc3VyZURyYWdDb25zdHJhaW50cykge1xuICAgICAgICAgICAgY29uc3QgdXNlckNvbnN0cmFpbnRzID0gb25NZWFzdXJlRHJhZ0NvbnN0cmFpbnRzKGNvbnZlcnRCb3hUb0JvdW5kaW5nQm94KG1lYXN1cmVkQ29uc3RyYWludHMpKTtcbiAgICAgICAgICAgIHRoaXMuaGFzTXV0YXRlZENvbnN0cmFpbnRzID0gISF1c2VyQ29uc3RyYWludHM7XG4gICAgICAgICAgICBpZiAodXNlckNvbnN0cmFpbnRzKSB7XG4gICAgICAgICAgICAgICAgbWVhc3VyZWRDb25zdHJhaW50cyA9IGNvbnZlcnRCb3VuZGluZ0JveFRvQm94KHVzZXJDb25zdHJhaW50cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lYXN1cmVkQ29uc3RyYWludHM7XG4gICAgfVxuICAgIHN0YXJ0QW5pbWF0aW9uKHZlbG9jaXR5KSB7XG4gICAgICAgIGNvbnN0IHsgZHJhZywgZHJhZ01vbWVudHVtLCBkcmFnRWxhc3RpYywgZHJhZ1RyYW5zaXRpb24sIGRyYWdTbmFwVG9PcmlnaW4sIG9uRHJhZ1RyYW5zaXRpb25FbmQsIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gdGhpcy5jb25zdHJhaW50cyB8fCB7fTtcbiAgICAgICAgY29uc3QgbW9tZW50dW1BbmltYXRpb25zID0gZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgIGlmICghc2hvdWxkRHJhZyhheGlzLCBkcmFnLCB0aGlzLmN1cnJlbnREaXJlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IHRyYW5zaXRpb24gPSAoY29uc3RyYWludHMgJiYgY29uc3RyYWludHNbYXhpc10pIHx8IHt9O1xuICAgICAgICAgICAgaWYgKGRyYWdTbmFwVG9PcmlnaW4pXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbiA9IHsgbWluOiAwLCBtYXg6IDAgfTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogT3ZlcmRhbXAgdGhlIGJvdW5kYXJ5IHNwcmluZyBpZiBgZHJhZ0VsYXN0aWNgIGlzIGRpc2FibGVkLiBUaGVyZSdzIHN0aWxsIGEgZnJhbWVcbiAgICAgICAgICAgICAqIG9mIHNwcmluZyBhbmltYXRpb25zIHNvIHdlIHNob3VsZCBsb29rIGludG8gYWRkaW5nIGEgZGlzYWJsZSBzcHJpbmcgb3B0aW9uIHRvIGBpbmVydGlhYC5cbiAgICAgICAgICAgICAqIFdlIGNvdWxkIGRvIHNvbWV0aGluZyBoZXJlIHdoZXJlIHdlIGFmZmVjdCB0aGUgYGJvdW5jZVN0aWZmbmVzc2AgYW5kIGBib3VuY2VEYW1waW5nYFxuICAgICAgICAgICAgICogdXNpbmcgdGhlIHZhbHVlIG9mIGBkcmFnRWxhc3RpY2AuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGJvdW5jZVN0aWZmbmVzcyA9IGRyYWdFbGFzdGljID8gMjAwIDogMTAwMDAwMDtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5jZURhbXBpbmcgPSBkcmFnRWxhc3RpYyA/IDQwIDogMTAwMDAwMDA7XG4gICAgICAgICAgICBjb25zdCBpbmVydGlhID0ge1xuICAgICAgICAgICAgICAgIHR5cGU6IFwiaW5lcnRpYVwiLFxuICAgICAgICAgICAgICAgIHZlbG9jaXR5OiBkcmFnTW9tZW50dW0gPyB2ZWxvY2l0eVtheGlzXSA6IDAsXG4gICAgICAgICAgICAgICAgYm91bmNlU3RpZmZuZXNzLFxuICAgICAgICAgICAgICAgIGJvdW5jZURhbXBpbmcsXG4gICAgICAgICAgICAgICAgdGltZUNvbnN0YW50OiA3NTAsXG4gICAgICAgICAgICAgICAgcmVzdERlbHRhOiAxLFxuICAgICAgICAgICAgICAgIHJlc3RTcGVlZDogMTAsXG4gICAgICAgICAgICAgICAgLi4uZHJhZ1RyYW5zaXRpb24sXG4gICAgICAgICAgICAgICAgLi4udHJhbnNpdGlvbixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvLyBJZiB3ZSdyZSBub3QgYW5pbWF0aW5nIG9uIGFuIGV4dGVybmFsbHktcHJvdmlkZWQgYE1vdGlvblZhbHVlYCB3ZSBjYW4gdXNlIHRoZVxuICAgICAgICAgICAgLy8gY29tcG9uZW50J3MgYW5pbWF0aW9uIGNvbnRyb2xzIHdoaWNoIHdpbGwgaGFuZGxlIGludGVyYWN0aW9ucyB3aXRoIHdoaWxlSG92ZXIgKGV0YyksXG4gICAgICAgICAgICAvLyBvdGhlcndpc2Ugd2UganVzdCBoYXZlIHRvIGFuaW1hdGUgdGhlIGBNb3Rpb25WYWx1ZWAgaXRzZWxmLlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRBeGlzVmFsdWVBbmltYXRpb24oYXhpcywgaW5lcnRpYSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBSdW4gYWxsIGFuaW1hdGlvbnMgYW5kIHRoZW4gcmVzb2x2ZSB0aGUgbmV3IGRyYWcgY29uc3RyYWludHMuXG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChtb21lbnR1bUFuaW1hdGlvbnMpLnRoZW4ob25EcmFnVHJhbnNpdGlvbkVuZCk7XG4gICAgfVxuICAgIHN0YXJ0QXhpc1ZhbHVlQW5pbWF0aW9uKGF4aXMsIHRyYW5zaXRpb24pIHtcbiAgICAgICAgY29uc3QgYXhpc1ZhbHVlID0gdGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoYXhpcyk7XG4gICAgICAgIGFkZFZhbHVlVG9XaWxsQ2hhbmdlKHRoaXMudmlzdWFsRWxlbWVudCwgYXhpcyk7XG4gICAgICAgIHJldHVybiBheGlzVmFsdWUuc3RhcnQoYW5pbWF0ZU1vdGlvblZhbHVlKGF4aXMsIGF4aXNWYWx1ZSwgMCwgdHJhbnNpdGlvbiwgdGhpcy52aXN1YWxFbGVtZW50LCBmYWxzZSkpO1xuICAgIH1cbiAgICBzdG9wQW5pbWF0aW9uKCkge1xuICAgICAgICBlYWNoQXhpcygoYXhpcykgPT4gdGhpcy5nZXRBeGlzTW90aW9uVmFsdWUoYXhpcykuc3RvcCgpKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRHJhZyB3b3JrcyBkaWZmZXJlbnRseSBkZXBlbmRpbmcgb24gd2hpY2ggcHJvcHMgYXJlIHByb3ZpZGVkLlxuICAgICAqXG4gICAgICogLSBJZiBfZHJhZ1ggYW5kIF9kcmFnWSBhcmUgcHJvdmlkZWQsIHdlIG91dHB1dCB0aGUgZ2VzdHVyZSBkZWx0YSBkaXJlY3RseSB0byB0aG9zZSBtb3Rpb24gdmFsdWVzLlxuICAgICAqIC0gT3RoZXJ3aXNlLCB3ZSBhcHBseSB0aGUgZGVsdGEgdG8gdGhlIHgveSBtb3Rpb24gdmFsdWVzLlxuICAgICAqL1xuICAgIGdldEF4aXNNb3Rpb25WYWx1ZShheGlzKSB7XG4gICAgICAgIGNvbnN0IGRyYWdLZXkgPSBgX2RyYWcke2F4aXMudG9VcHBlckNhc2UoKX1gO1xuICAgICAgICBjb25zdCBwcm9wcyA9IHRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO1xuICAgICAgICBjb25zdCBleHRlcm5hbE1vdGlvblZhbHVlID0gcHJvcHNbZHJhZ0tleV07XG4gICAgICAgIHJldHVybiBleHRlcm5hbE1vdGlvblZhbHVlXG4gICAgICAgICAgICA/IGV4dGVybmFsTW90aW9uVmFsdWVcbiAgICAgICAgICAgIDogdGhpcy52aXN1YWxFbGVtZW50LmdldFZhbHVlKGF4aXMsIChwcm9wcy5pbml0aWFsXG4gICAgICAgICAgICAgICAgPyBwcm9wcy5pbml0aWFsW2F4aXNdXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQpIHx8IDApO1xuICAgIH1cbiAgICBzbmFwVG9DdXJzb3IocG9pbnQpIHtcbiAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZyB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICAgICAgLy8gSWYgd2UncmUgbm90IGRyYWdnaW5nIHRoaXMgYXhpcywgZG8gYW4gZWFybHkgcmV0dXJuLlxuICAgICAgICAgICAgaWYgKCFzaG91bGREcmFnKGF4aXMsIGRyYWcsIHRoaXMuY3VycmVudERpcmVjdGlvbikpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB0aGlzLnZpc3VhbEVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCBheGlzVmFsdWUgPSB0aGlzLmdldEF4aXNNb3Rpb25WYWx1ZShheGlzKTtcbiAgICAgICAgICAgIGlmIChwcm9qZWN0aW9uICYmIHByb2plY3Rpb24ubGF5b3V0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBtaW4sIG1heCB9ID0gcHJvamVjdGlvbi5sYXlvdXQubGF5b3V0Qm94W2F4aXNdO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFRoZSBsYXlvdXQgbWVhc3VyZW1lbnQgaW5jbHVkZXMgdGhlIGN1cnJlbnQgdHJhbnNmb3JtIHZhbHVlLFxuICAgICAgICAgICAgICAgICAqIHNvIHdlIG5lZWQgdG8gYWRkIGl0IGJhY2sgdG8gZ2V0IHRoZSBjb3JyZWN0IHNuYXAgcG9zaXRpb24uXG4gICAgICAgICAgICAgICAgICogVGhpcyBmaXhlcyBhbiBpc3N1ZSB3aGVyZSBlbGVtZW50cyB3aXRoIGluaXRpYWwgY29vcmRpbmF0ZXNcbiAgICAgICAgICAgICAgICAgKiB3b3VsZCBzbmFwIHRvIHRoZSB3cm9uZyBwb3NpdGlvbiBvbiB0aGUgZmlyc3QgZHJhZy5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gYXhpc1ZhbHVlLmdldCgpIHx8IDA7XG4gICAgICAgICAgICAgICAgYXhpc1ZhbHVlLnNldChwb2ludFtheGlzXSAtIG1peE51bWJlcihtaW4sIG1heCwgMC41KSArIGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogV2hlbiB0aGUgdmlld3BvcnQgcmVzaXplcyB3ZSB3YW50IHRvIGNoZWNrIGlmIHRoZSBtZWFzdXJlZCBjb25zdHJhaW50c1xuICAgICAqIGhhdmUgY2hhbmdlZCBhbmQsIGlmIHNvLCByZXBvc2l0aW9uIHRoZSBlbGVtZW50IHdpdGhpbiB0aG9zZSBuZXcgY29uc3RyYWludHNcbiAgICAgKiByZWxhdGl2ZSB0byB3aGVyZSBpdCB3YXMgYmVmb3JlIHRoZSByZXNpemUuXG4gICAgICovXG4gICAgc2NhbGVQb3NpdGlvbldpdGhpbkNvbnN0cmFpbnRzKCkge1xuICAgICAgICBpZiAoIXRoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB7IGRyYWcsIGRyYWdDb25zdHJhaW50cyB9ID0gdGhpcy5nZXRQcm9wcygpO1xuICAgICAgICBjb25zdCB7IHByb2plY3Rpb24gfSA9IHRoaXMudmlzdWFsRWxlbWVudDtcbiAgICAgICAgaWYgKCFpc1JlZk9iamVjdChkcmFnQ29uc3RyYWludHMpIHx8ICFwcm9qZWN0aW9uIHx8ICF0aGlzLmNvbnN0cmFpbnRzKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAvKipcbiAgICAgICAgICogU3RvcCBjdXJyZW50IGFuaW1hdGlvbnMgYXMgdGhlcmUgY2FuIGJlIHZpc3VhbCBnbGl0Y2hpbmcgaWYgd2UgdHJ5IHRvIGRvXG4gICAgICAgICAqIHRoaXMgbWlkLWFuaW1hdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zdG9wQW5pbWF0aW9uKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZWNvcmQgdGhlIHJlbGF0aXZlIHBvc2l0aW9uIG9mIHRoZSBkcmFnZ2VkIGVsZW1lbnQgcmVsYXRpdmUgdG8gdGhlXG4gICAgICAgICAqIGNvbnN0cmFpbnRzIGJveCBhbmQgc2F2ZSBhcyBhIHByb2dyZXNzIHZhbHVlLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgYm94UHJvZ3Jlc3MgPSB7IHg6IDAsIHk6IDAgfTtcbiAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGF4aXNWYWx1ZSA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO1xuICAgICAgICAgICAgaWYgKGF4aXNWYWx1ZSAmJiB0aGlzLmNvbnN0cmFpbnRzICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxhdGVzdCA9IGF4aXNWYWx1ZS5nZXQoKTtcbiAgICAgICAgICAgICAgICBib3hQcm9ncmVzc1theGlzXSA9IGNhbGNPcmlnaW4oeyBtaW46IGxhdGVzdCwgbWF4OiBsYXRlc3QgfSwgdGhpcy5jb25zdHJhaW50c1theGlzXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvKipcbiAgICAgICAgICogVXBkYXRlIHRoZSBsYXlvdXQgb2YgdGhpcyBlbGVtZW50IGFuZCByZXNvbHZlIHRoZSBsYXRlc3QgZHJhZyBjb25zdHJhaW50c1xuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgeyB0cmFuc2Zvcm1UZW1wbGF0ZSB9ID0gdGhpcy52aXN1YWxFbGVtZW50LmdldFByb3BzKCk7XG4gICAgICAgIHRoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50LnN0eWxlLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVRlbXBsYXRlXG4gICAgICAgICAgICA/IHRyYW5zZm9ybVRlbXBsYXRlKHt9LCBcIlwiKVxuICAgICAgICAgICAgOiBcIm5vbmVcIjtcbiAgICAgICAgcHJvamVjdGlvbi5yb290ICYmIHByb2plY3Rpb24ucm9vdC51cGRhdGVTY3JvbGwoKTtcbiAgICAgICAgcHJvamVjdGlvbi51cGRhdGVMYXlvdXQoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJlc2V0IGNvbnN0cmFpbnRzIHNvIHJlc29sdmVDb25zdHJhaW50cygpIHdpbGwgcmVjYWxjdWxhdGUgdGhlbVxuICAgICAgICAgKiB3aXRoIHRoZSBmcmVzaGx5IG1lYXN1cmVkIGxheW91dCByYXRoZXIgdGhhbiByZXR1cm5pbmcgdGhlIGNhY2hlZCB2YWx1ZS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY29uc3RyYWludHMgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZXNvbHZlQ29uc3RyYWludHMoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZvciBlYWNoIGF4aXMsIGNhbGN1bGF0ZSB0aGUgY3VycmVudCBwcm9ncmVzcyBvZiB0aGUgbGF5b3V0IGF4aXNcbiAgICAgICAgICogd2l0aGluIHRoZSBuZXcgY29uc3RyYWludHMuXG4gICAgICAgICAqL1xuICAgICAgICBlYWNoQXhpcygoYXhpcykgPT4ge1xuICAgICAgICAgICAgaWYgKCFzaG91bGREcmFnKGF4aXMsIGRyYWcsIG51bGwpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQ2FsY3VsYXRlIGEgbmV3IHRyYW5zZm9ybSBiYXNlZCBvbiB0aGUgcHJldmlvdXMgYm94IHByb2dyZXNzXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGF4aXNWYWx1ZSA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO1xuICAgICAgICAgICAgY29uc3QgeyBtaW4sIG1heCB9ID0gdGhpcy5jb25zdHJhaW50c1theGlzXTtcbiAgICAgICAgICAgIGF4aXNWYWx1ZS5zZXQobWl4TnVtYmVyKG1pbiwgbWF4LCBib3hQcm9ncmVzc1theGlzXSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZsdXNoIHRoZSB1cGRhdGVkIHRyYW5zZm9ybSB0byB0aGUgRE9NIHN5bmNocm9ub3VzbHkgdG8gcHJldmVudFxuICAgICAgICAgKiBhIHZpc3VhbCBmbGFzaCBhdCB0aGUgZWxlbWVudCdzIENTUyBsYXlvdXQgcG9zaXRpb24gKDAsMCkgd2hlblxuICAgICAgICAgKiB0aGUgdHJhbnNmb3JtIHdhcyBzdHJpcHBlZCBmb3IgbWVhc3VyZW1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCk7XG4gICAgfVxuICAgIGFkZExpc3RlbmVycygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnZpc3VhbEVsZW1lbnQuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgZWxlbWVudERyYWdDb250cm9scy5zZXQodGhpcy52aXN1YWxFbGVtZW50LCB0aGlzKTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudmlzdWFsRWxlbWVudC5jdXJyZW50O1xuICAgICAgICAvKipcbiAgICAgICAgICogQXR0YWNoIGEgcG9pbnRlcmRvd24gZXZlbnQgbGlzdGVuZXIgb24gdGhpcyBET00gZWxlbWVudCB0byBpbml0aWF0ZSBkcmFnIHRyYWNraW5nLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgc3RvcFBvaW50ZXJMaXN0ZW5lciA9IGFkZFBvaW50ZXJFdmVudChlbGVtZW50LCBcInBvaW50ZXJkb3duXCIsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBkcmFnLCBkcmFnTGlzdGVuZXIgPSB0cnVlIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE9ubHkgYmxvY2sgZHJhZyBpZiBjbGlja2luZyBvbiBhIHRleHQgaW5wdXQgY2hpbGQgZWxlbWVudFxuICAgICAgICAgICAgICogKGlucHV0LCB0ZXh0YXJlYSwgc2VsZWN0LCBjb250ZW50ZWRpdGFibGUpIHdoZXJlIHVzZXJzIG1pZ2h0XG4gICAgICAgICAgICAgKiB3YW50IHRvIHNlbGVjdCB0ZXh0IG9yIGludGVyYWN0IHdpdGggdGhlIGNvbnRyb2wuXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogQnV0dG9ucyBhbmQgbGlua3MgZG9uJ3QgYmxvY2sgZHJhZyBzaW5jZSB0aGV5IGRvbid0IGhhdmVcbiAgICAgICAgICAgICAqIGNsaWNrLWFuZC1tb3ZlIGFjdGlvbnMgb2YgdGhlaXIgb3duLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBpc0NsaWNraW5nVGV4dElucHV0Q2hpbGQgPSB0YXJnZXQgIT09IGVsZW1lbnQgJiYgaXNFbGVtZW50VGV4dElucHV0KHRhcmdldCk7XG4gICAgICAgICAgICBpZiAoZHJhZyAmJiBkcmFnTGlzdGVuZXIgJiYgIWlzQ2xpY2tpbmdUZXh0SW5wdXRDaGlsZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnQoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHVzaW5nIHJlZi1iYXNlZCBjb25zdHJhaW50cywgb2JzZXJ2ZSBib3RoIHRoZSBkcmFnZ2FibGUgZWxlbWVudFxuICAgICAgICAgKiBhbmQgdGhlIGNvbnN0cmFpbnQgY29udGFpbmVyIGZvciBzaXplIGNoYW5nZXMgdmlhIFJlc2l6ZU9ic2VydmVyLlxuICAgICAgICAgKiBTZXR1cCBpcyBkZWZlcnJlZCBiZWNhdXNlIGRyYWdDb25zdHJhaW50cy5jdXJyZW50IGlzIG51bGwgd2hlblxuICAgICAgICAgKiBhZGRMaXN0ZW5lcnMgZmlyc3QgcnVucyAoUmVhY3QgaGFzbid0IGNvbW1pdHRlZCB0aGUgcmVmIHlldCkuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgc3RvcFJlc2l6ZU9ic2VydmVycztcbiAgICAgICAgY29uc3QgbWVhc3VyZURyYWdDb25zdHJhaW50cyA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZHJhZ0NvbnN0cmFpbnRzIH0gPSB0aGlzLmdldFByb3BzKCk7XG4gICAgICAgICAgICBpZiAoaXNSZWZPYmplY3QoZHJhZ0NvbnN0cmFpbnRzKSAmJiBkcmFnQ29uc3RyYWludHMuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uc3RyYWludHMgPSB0aGlzLnJlc29sdmVSZWZDb25zdHJhaW50cygpO1xuICAgICAgICAgICAgICAgIGlmICghc3RvcFJlc2l6ZU9ic2VydmVycykge1xuICAgICAgICAgICAgICAgICAgICBzdG9wUmVzaXplT2JzZXJ2ZXJzID0gc3RhcnRSZXNpemVPYnNlcnZlcnMoZWxlbWVudCwgZHJhZ0NvbnN0cmFpbnRzLmN1cnJlbnQsICgpID0+IHRoaXMuc2NhbGVQb3NpdGlvbldpdGhpbkNvbnN0cmFpbnRzKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB0aGlzLnZpc3VhbEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHN0b3BNZWFzdXJlTGF5b3V0TGlzdGVuZXIgPSBwcm9qZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoXCJtZWFzdXJlXCIsIG1lYXN1cmVEcmFnQ29uc3RyYWludHMpO1xuICAgICAgICBpZiAocHJvamVjdGlvbiAmJiAhcHJvamVjdGlvbi5sYXlvdXQpIHtcbiAgICAgICAgICAgIHByb2plY3Rpb24ucm9vdCAmJiBwcm9qZWN0aW9uLnJvb3QudXBkYXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICBwcm9qZWN0aW9uLnVwZGF0ZUxheW91dCgpO1xuICAgICAgICB9XG4gICAgICAgIGZyYW1lLnJlYWQobWVhc3VyZURyYWdDb25zdHJhaW50cyk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBdHRhY2ggYSB3aW5kb3cgcmVzaXplIGxpc3RlbmVyIHRvIHNjYWxlIHRoZSBkcmFnZ2FibGUgdGFyZ2V0IHdpdGhpbiBpdHMgZGVmaW5lZFxuICAgICAgICAgKiBjb25zdHJhaW50cyBhcyB0aGUgd2luZG93IHJlc2l6ZXMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBzdG9wUmVzaXplTGlzdGVuZXIgPSBhZGREb21FdmVudCh3aW5kb3csIFwicmVzaXplXCIsICgpID0+IHRoaXMuc2NhbGVQb3NpdGlvbldpdGhpbkNvbnN0cmFpbnRzKCkpO1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhlIGVsZW1lbnQncyBsYXlvdXQgY2hhbmdlcywgY2FsY3VsYXRlIHRoZSBkZWx0YSBhbmQgYXBwbHkgdGhhdCB0b1xuICAgICAgICAgKiB0aGUgZHJhZyBnZXN0dXJlJ3Mgb3JpZ2luIHBvaW50LlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgc3RvcExheW91dFVwZGF0ZUxpc3RlbmVyID0gcHJvamVjdGlvbi5hZGRFdmVudExpc3RlbmVyKFwiZGlkVXBkYXRlXCIsICgoeyBkZWx0YSwgaGFzTGF5b3V0Q2hhbmdlZCB9KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0RyYWdnaW5nICYmIGhhc0xheW91dENoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICBlYWNoQXhpcygoYXhpcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb3Rpb25WYWx1ZSA9IHRoaXMuZ2V0QXhpc01vdGlvblZhbHVlKGF4aXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vdGlvblZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9yaWdpblBvaW50W2F4aXNdICs9IGRlbHRhW2F4aXNdLnRyYW5zbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgbW90aW9uVmFsdWUuc2V0KG1vdGlvblZhbHVlLmdldCgpICsgZGVsdGFbYXhpc10udHJhbnNsYXRlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc3VhbEVsZW1lbnQucmVuZGVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHN0b3BSZXNpemVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgc3RvcFBvaW50ZXJMaXN0ZW5lcigpO1xuICAgICAgICAgICAgc3RvcE1lYXN1cmVMYXlvdXRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgc3RvcExheW91dFVwZGF0ZUxpc3RlbmVyICYmIHN0b3BMYXlvdXRVcGRhdGVMaXN0ZW5lcigpO1xuICAgICAgICAgICAgc3RvcFJlc2l6ZU9ic2VydmVycyAmJiBzdG9wUmVzaXplT2JzZXJ2ZXJzKCk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIGdldFByb3BzKCkge1xuICAgICAgICBjb25zdCBwcm9wcyA9IHRoaXMudmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO1xuICAgICAgICBjb25zdCB7IGRyYWcgPSBmYWxzZSwgZHJhZ0RpcmVjdGlvbkxvY2sgPSBmYWxzZSwgZHJhZ1Byb3BhZ2F0aW9uID0gZmFsc2UsIGRyYWdDb25zdHJhaW50cyA9IGZhbHNlLCBkcmFnRWxhc3RpYyA9IGRlZmF1bHRFbGFzdGljLCBkcmFnTW9tZW50dW0gPSB0cnVlLCB9ID0gcHJvcHM7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5wcm9wcyxcbiAgICAgICAgICAgIGRyYWcsXG4gICAgICAgICAgICBkcmFnRGlyZWN0aW9uTG9jayxcbiAgICAgICAgICAgIGRyYWdQcm9wYWdhdGlvbixcbiAgICAgICAgICAgIGRyYWdDb25zdHJhaW50cyxcbiAgICAgICAgICAgIGRyYWdFbGFzdGljLFxuICAgICAgICAgICAgZHJhZ01vbWVudHVtLFxuICAgICAgICB9O1xuICAgIH1cbn1cbmZ1bmN0aW9uIHNraXBGaXJzdENhbGwoY2FsbGJhY2spIHtcbiAgICBsZXQgaXNGaXJzdCA9IHRydWU7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGlzRmlyc3QpIHtcbiAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjYWxsYmFjaygpO1xuICAgIH07XG59XG5mdW5jdGlvbiBzdGFydFJlc2l6ZU9ic2VydmVycyhlbGVtZW50LCBjb25zdHJhaW50c0VsZW1lbnQsIG9uUmVzaXplKSB7XG4gICAgY29uc3Qgc3RvcEVsZW1lbnQgPSByZXNpemUoZWxlbWVudCwgc2tpcEZpcnN0Q2FsbChvblJlc2l6ZSkpO1xuICAgIGNvbnN0IHN0b3BDb250YWluZXIgPSByZXNpemUoY29uc3RyYWludHNFbGVtZW50LCBza2lwRmlyc3RDYWxsKG9uUmVzaXplKSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgc3RvcEVsZW1lbnQoKTtcbiAgICAgICAgc3RvcENvbnRhaW5lcigpO1xuICAgIH07XG59XG5mdW5jdGlvbiBzaG91bGREcmFnKGRpcmVjdGlvbiwgZHJhZywgY3VycmVudERpcmVjdGlvbikge1xuICAgIHJldHVybiAoKGRyYWcgPT09IHRydWUgfHwgZHJhZyA9PT0gZGlyZWN0aW9uKSAmJlxuICAgICAgICAoY3VycmVudERpcmVjdGlvbiA9PT0gbnVsbCB8fCBjdXJyZW50RGlyZWN0aW9uID09PSBkaXJlY3Rpb24pKTtcbn1cbi8qKlxuICogQmFzZWQgb24gYW4geC95IG9mZnNldCBkZXRlcm1pbmUgdGhlIGN1cnJlbnQgZHJhZyBkaXJlY3Rpb24uIElmIGJvdGggYXhpcycgb2Zmc2V0cyBhcmUgbG93ZXJcbiAqIHRoYW4gdGhlIHByb3ZpZGVkIHRocmVzaG9sZCwgcmV0dXJuIGBudWxsYC5cbiAqXG4gKiBAcGFyYW0gb2Zmc2V0IC0gVGhlIHgveSBvZmZzZXQgZnJvbSBvcmlnaW4uXG4gKiBAcGFyYW0gbG9ja1RocmVzaG9sZCAtIChPcHRpb25hbCkgLSB0aGUgbWluaW11bSBhYnNvbHV0ZSBvZmZzZXQgYmVmb3JlIHdlIGNhbiBkZXRlcm1pbmUgYSBkcmFnIGRpcmVjdGlvbi5cbiAqL1xuZnVuY3Rpb24gZ2V0Q3VycmVudERpcmVjdGlvbihvZmZzZXQsIGxvY2tUaHJlc2hvbGQgPSAxMCkge1xuICAgIGxldCBkaXJlY3Rpb24gPSBudWxsO1xuICAgIGlmIChNYXRoLmFicyhvZmZzZXQueSkgPiBsb2NrVGhyZXNob2xkKSB7XG4gICAgICAgIGRpcmVjdGlvbiA9IFwieVwiO1xuICAgIH1cbiAgICBlbHNlIGlmIChNYXRoLmFicyhvZmZzZXQueCkgPiBsb2NrVGhyZXNob2xkKSB7XG4gICAgICAgIGRpcmVjdGlvbiA9IFwieFwiO1xuICAgIH1cbiAgICByZXR1cm4gZGlyZWN0aW9uO1xufVxuXG5leHBvcnQgeyBWaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzLCBlbGVtZW50RHJhZ0NvbnRyb2xzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1WaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/drag/index.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DragGesture: () => (/* binding */ DragGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _VisualElementDragControls_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./VisualElementDragControls.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs\");\n\n\n\n\nclass DragGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor(node) {\n super(node);\n this.removeGroupControls = motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\n this.removeListeners = motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\n this.controls = new _VisualElementDragControls_mjs__WEBPACK_IMPORTED_MODULE_2__.VisualElementDragControls(node);\n }\n mount() {\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n const { dragControls } = this.node.getProps();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n this.removeListeners = this.controls.addListeners() || motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop;\n }\n update() {\n const { dragControls } = this.node.getProps();\n const { dragControls: prevDragControls } = this.node.prevProps || {};\n if (dragControls !== prevDragControls) {\n this.removeGroupControls();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n }\n }\n unmount() {\n this.removeGroupControls();\n this.removeListeners();\n /**\n * In React 19, during list reorder reconciliation, components may\n * briefly unmount and remount while the drag is still active. If we're\n * actively dragging, we should NOT end the pan session - it will\n * continue tracking pointer events via its window-level listeners.\n *\n * The pan session will be properly cleaned up when:\n * 1. The drag ends naturally (pointerup/pointercancel)\n * 2. The component is truly removed from the DOM\n */\n if (!this.controls.isDragging) {\n this.controls.endPanSession();\n }\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFxQztBQUNEO0FBQ3dDOztBQUU1RSwwQkFBMEIsK0NBQU87QUFDakM7QUFDQTtBQUNBLG1DQUFtQyw4Q0FBSTtBQUN2QywrQkFBK0IsOENBQUk7QUFDbkMsNEJBQTRCLHFGQUF5QjtBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixlQUFlO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLCtEQUErRCw4Q0FBSTtBQUNuRTtBQUNBO0FBQ0EsZ0JBQWdCLGVBQWU7QUFDL0IsZ0JBQWdCLGlDQUFpQztBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFdUI7QUFDdkIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgVmlzdWFsRWxlbWVudERyYWdDb250cm9scyB9IGZyb20gJy4vVmlzdWFsRWxlbWVudERyYWdDb250cm9scy5tanMnO1xuXG5jbGFzcyBEcmFnR2VzdHVyZSBleHRlbmRzIEZlYXR1cmUge1xuICAgIGNvbnN0cnVjdG9yKG5vZGUpIHtcbiAgICAgICAgc3VwZXIobm9kZSk7XG4gICAgICAgIHRoaXMucmVtb3ZlR3JvdXBDb250cm9scyA9IG5vb3A7XG4gICAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXJzID0gbm9vcDtcbiAgICAgICAgdGhpcy5jb250cm9scyA9IG5ldyBWaXN1YWxFbGVtZW50RHJhZ0NvbnRyb2xzKG5vZGUpO1xuICAgIH1cbiAgICBtb3VudCgpIHtcbiAgICAgICAgLy8gSWYgd2UndmUgYmVlbiBwcm92aWRlZCBhIERyYWdDb250cm9scyBmb3IgbWFudWFsIGNvbnRyb2wgb3ZlciB0aGUgZHJhZyBnZXN0dXJlLFxuICAgICAgICAvLyBzdWJzY3JpYmUgdGhpcyBjb21wb25lbnQgdG8gaXQgb24gbW91bnQuXG4gICAgICAgIGNvbnN0IHsgZHJhZ0NvbnRyb2xzIH0gPSB0aGlzLm5vZGUuZ2V0UHJvcHMoKTtcbiAgICAgICAgaWYgKGRyYWdDb250cm9scykge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVHcm91cENvbnRyb2xzID0gZHJhZ0NvbnRyb2xzLnN1YnNjcmliZSh0aGlzLmNvbnRyb2xzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycyA9IHRoaXMuY29udHJvbHMuYWRkTGlzdGVuZXJzKCkgfHwgbm9vcDtcbiAgICB9XG4gICAgdXBkYXRlKCkge1xuICAgICAgICBjb25zdCB7IGRyYWdDb250cm9scyB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XG4gICAgICAgIGNvbnN0IHsgZHJhZ0NvbnRyb2xzOiBwcmV2RHJhZ0NvbnRyb2xzIH0gPSB0aGlzLm5vZGUucHJldlByb3BzIHx8IHt9O1xuICAgICAgICBpZiAoZHJhZ0NvbnRyb2xzICE9PSBwcmV2RHJhZ0NvbnRyb2xzKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUdyb3VwQ29udHJvbHMoKTtcbiAgICAgICAgICAgIGlmIChkcmFnQ29udHJvbHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUdyb3VwQ29udHJvbHMgPSBkcmFnQ29udHJvbHMuc3Vic2NyaWJlKHRoaXMuY29udHJvbHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHVubW91bnQoKSB7XG4gICAgICAgIHRoaXMucmVtb3ZlR3JvdXBDb250cm9scygpO1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xuICAgICAgICAvKipcbiAgICAgICAgICogSW4gUmVhY3QgMTksIGR1cmluZyBsaXN0IHJlb3JkZXIgcmVjb25jaWxpYXRpb24sIGNvbXBvbmVudHMgbWF5XG4gICAgICAgICAqIGJyaWVmbHkgdW5tb3VudCBhbmQgcmVtb3VudCB3aGlsZSB0aGUgZHJhZyBpcyBzdGlsbCBhY3RpdmUuIElmIHdlJ3JlXG4gICAgICAgICAqIGFjdGl2ZWx5IGRyYWdnaW5nLCB3ZSBzaG91bGQgTk9UIGVuZCB0aGUgcGFuIHNlc3Npb24gLSBpdCB3aWxsXG4gICAgICAgICAqIGNvbnRpbnVlIHRyYWNraW5nIHBvaW50ZXIgZXZlbnRzIHZpYSBpdHMgd2luZG93LWxldmVsIGxpc3RlbmVycy5cbiAgICAgICAgICpcbiAgICAgICAgICogVGhlIHBhbiBzZXNzaW9uIHdpbGwgYmUgcHJvcGVybHkgY2xlYW5lZCB1cCB3aGVuOlxuICAgICAgICAgKiAxLiBUaGUgZHJhZyBlbmRzIG5hdHVyYWxseSAocG9pbnRlcnVwL3BvaW50ZXJjYW5jZWwpXG4gICAgICAgICAqIDIuIFRoZSBjb21wb25lbnQgaXMgdHJ1bHkgcmVtb3ZlZCBmcm9tIHRoZSBET01cbiAgICAgICAgICovXG4gICAgICAgIGlmICghdGhpcy5jb250cm9scy5pc0RyYWdnaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xzLmVuZFBhblNlc3Npb24oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgRHJhZ0dlc3R1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyConstraints: () => (/* binding */ applyConstraints),\n/* harmony export */ calcOrigin: () => (/* binding */ calcOrigin),\n/* harmony export */ calcRelativeAxisConstraints: () => (/* binding */ calcRelativeAxisConstraints),\n/* harmony export */ calcRelativeConstraints: () => (/* binding */ calcRelativeConstraints),\n/* harmony export */ calcViewportAxisConstraints: () => (/* binding */ calcViewportAxisConstraints),\n/* harmony export */ calcViewportConstraints: () => (/* binding */ calcViewportConstraints),\n/* harmony export */ defaultElastic: () => (/* binding */ defaultElastic),\n/* harmony export */ rebaseAxisConstraints: () => (/* binding */ rebaseAxisConstraints),\n/* harmony export */ resolveAxisElastic: () => (/* binding */ resolveAxisElastic),\n/* harmony export */ resolveDragElastic: () => (/* binding */ resolveDragElastic),\n/* harmony export */ resolvePointElastic: () => (/* binding */ resolvePointElastic)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n\n\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic\n ? (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(min, point, elastic.min)\n : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic\n ? (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(max, point, elastic.max)\n : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.calcLength)(source);\n const targetLength = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.calcLength)(target);\n if (targetLength > sourceLength) {\n origin = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.progress)(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.progress)(source.min, source.max - targetLength, target.min);\n }\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\n\n//# sourceMappingURL=constraints.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy91dGlscy9jb25zdHJhaW50cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQW1EO0FBQ0o7O0FBRS9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsVUFBVTtBQUM3QztBQUNBO0FBQ0E7QUFDQSxjQUFjLHFEQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLHFEQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QywwQkFBMEI7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixzREFBVTtBQUNuQyx5QkFBeUIsc0RBQVU7QUFDbkM7QUFDQSxpQkFBaUIsc0RBQVE7QUFDekI7QUFDQTtBQUNBLGlCQUFpQixzREFBUTtBQUN6QjtBQUNBLFdBQVcsbURBQUs7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFd1A7QUFDeFAiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvdXRpbHMvY29uc3RyYWludHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1peE51bWJlciwgY2FsY0xlbmd0aCB9IGZyb20gJ21vdGlvbi1kb20nO1xuaW1wb3J0IHsgcHJvZ3Jlc3MsIGNsYW1wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuLyoqXG4gKiBBcHBseSBjb25zdHJhaW50cyB0byBhIHBvaW50LiBUaGVzZSBjb25zdHJhaW50cyBhcmUgYm90aCBwaHlzaWNhbCBhbG9uZyBhblxuICogYXhpcywgYW5kIGFuIGVsYXN0aWMgZmFjdG9yIHRoYXQgZGV0ZXJtaW5lcyBob3cgbXVjaCB0byBjb25zdHJhaW4gdGhlIHBvaW50XG4gKiBieSBpZiBpdCBkb2VzIGxpZSBvdXRzaWRlIHRoZSBkZWZpbmVkIHBhcmFtZXRlcnMuXG4gKi9cbmZ1bmN0aW9uIGFwcGx5Q29uc3RyYWludHMocG9pbnQsIHsgbWluLCBtYXggfSwgZWxhc3RpYykge1xuICAgIGlmIChtaW4gIT09IHVuZGVmaW5lZCAmJiBwb2ludCA8IG1pbikge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgbWluIHBvaW50IGRlZmluZWQsIGFuZCB0aGlzIGlzIG91dHNpZGUgb2YgdGhhdCwgY29uc3RyYWluXG4gICAgICAgIHBvaW50ID0gZWxhc3RpY1xuICAgICAgICAgICAgPyBtaXhOdW1iZXIobWluLCBwb2ludCwgZWxhc3RpYy5taW4pXG4gICAgICAgICAgICA6IE1hdGgubWF4KHBvaW50LCBtaW4pO1xuICAgIH1cbiAgICBlbHNlIGlmIChtYXggIT09IHVuZGVmaW5lZCAmJiBwb2ludCA+IG1heCkge1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgbWF4IHBvaW50IGRlZmluZWQsIGFuZCB0aGlzIGlzIG91dHNpZGUgb2YgdGhhdCwgY29uc3RyYWluXG4gICAgICAgIHBvaW50ID0gZWxhc3RpY1xuICAgICAgICAgICAgPyBtaXhOdW1iZXIobWF4LCBwb2ludCwgZWxhc3RpYy5tYXgpXG4gICAgICAgICAgICA6IE1hdGgubWluKHBvaW50LCBtYXgpO1xuICAgIH1cbiAgICByZXR1cm4gcG9pbnQ7XG59XG4vKipcbiAqIENhbGN1bGF0ZSBjb25zdHJhaW50cyBpbiB0ZXJtcyBvZiB0aGUgdmlld3BvcnQgd2hlbiBkZWZpbmVkIHJlbGF0aXZlbHkgdG8gdGhlXG4gKiBtZWFzdXJlZCBheGlzLiBUaGlzIGlzIG1lYXN1cmVkIGZyb20gdGhlIG5lYXJlc3QgZWRnZSwgc28gYSBtYXggY29uc3RyYWludCBvZiAyMDBcbiAqIG9uIGFuIGF4aXMgd2l0aCBhIG1heCB2YWx1ZSBvZiAzMDAgd291bGQgcmV0dXJuIGEgY29uc3RyYWludCBvZiA1MDAgLSBheGlzIGxlbmd0aFxuICovXG5mdW5jdGlvbiBjYWxjUmVsYXRpdmVBeGlzQ29uc3RyYWludHMoYXhpcywgbWluLCBtYXgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBtaW46IG1pbiAhPT0gdW5kZWZpbmVkID8gYXhpcy5taW4gKyBtaW4gOiB1bmRlZmluZWQsXG4gICAgICAgIG1heDogbWF4ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gYXhpcy5tYXggKyBtYXggLSAoYXhpcy5tYXggLSBheGlzLm1pbilcbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH07XG59XG4vKipcbiAqIENhbGN1bGF0ZSBjb25zdHJhaW50cyBpbiB0ZXJtcyBvZiB0aGUgdmlld3BvcnQgd2hlblxuICogZGVmaW5lZCByZWxhdGl2ZWx5IHRvIHRoZSBtZWFzdXJlZCBib3VuZGluZyBib3guXG4gKi9cbmZ1bmN0aW9uIGNhbGNSZWxhdGl2ZUNvbnN0cmFpbnRzKGxheW91dEJveCwgeyB0b3AsIGxlZnQsIGJvdHRvbSwgcmlnaHQgfSkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHg6IGNhbGNSZWxhdGl2ZUF4aXNDb25zdHJhaW50cyhsYXlvdXRCb3gueCwgbGVmdCwgcmlnaHQpLFxuICAgICAgICB5OiBjYWxjUmVsYXRpdmVBeGlzQ29uc3RyYWludHMobGF5b3V0Qm94LnksIHRvcCwgYm90dG9tKSxcbiAgICB9O1xufVxuLyoqXG4gKiBDYWxjdWxhdGUgdmlld3BvcnQgY29uc3RyYWludHMgd2hlbiBkZWZpbmVkIGFzIGFub3RoZXIgdmlld3BvcnQtcmVsYXRpdmUgYXhpc1xuICovXG5mdW5jdGlvbiBjYWxjVmlld3BvcnRBeGlzQ29uc3RyYWludHMobGF5b3V0QXhpcywgY29uc3RyYWludHNBeGlzKSB7XG4gICAgbGV0IG1pbiA9IGNvbnN0cmFpbnRzQXhpcy5taW4gLSBsYXlvdXRBeGlzLm1pbjtcbiAgICBsZXQgbWF4ID0gY29uc3RyYWludHNBeGlzLm1heCAtIGxheW91dEF4aXMubWF4O1xuICAgIC8vIElmIHRoZSBjb25zdHJhaW50cyBheGlzIGlzIGFjdHVhbGx5IHNtYWxsZXIgdGhhbiB0aGUgbGF5b3V0IGF4aXMgdGhlbiB3ZSBjYW5cbiAgICAvLyBmbGlwIHRoZSBjb25zdHJhaW50c1xuICAgIGlmIChjb25zdHJhaW50c0F4aXMubWF4IC0gY29uc3RyYWludHNBeGlzLm1pbiA8XG4gICAgICAgIGxheW91dEF4aXMubWF4IC0gbGF5b3V0QXhpcy5taW4pIHtcbiAgICAgICAgW21pbiwgbWF4XSA9IFttYXgsIG1pbl07XG4gICAgfVxuICAgIHJldHVybiB7IG1pbiwgbWF4IH07XG59XG4vKipcbiAqIENhbGN1bGF0ZSB2aWV3cG9ydCBjb25zdHJhaW50cyB3aGVuIGRlZmluZWQgYXMgYW5vdGhlciB2aWV3cG9ydC1yZWxhdGl2ZSBib3hcbiAqL1xuZnVuY3Rpb24gY2FsY1ZpZXdwb3J0Q29uc3RyYWludHMobGF5b3V0Qm94LCBjb25zdHJhaW50c0JveCkge1xuICAgIHJldHVybiB7XG4gICAgICAgIHg6IGNhbGNWaWV3cG9ydEF4aXNDb25zdHJhaW50cyhsYXlvdXRCb3gueCwgY29uc3RyYWludHNCb3gueCksXG4gICAgICAgIHk6IGNhbGNWaWV3cG9ydEF4aXNDb25zdHJhaW50cyhsYXlvdXRCb3gueSwgY29uc3RyYWludHNCb3gueSksXG4gICAgfTtcbn1cbi8qKlxuICogQ2FsY3VsYXRlIGEgdHJhbnNmb3JtIG9yaWdpbiByZWxhdGl2ZSB0byB0aGUgc291cmNlIGF4aXMsIGJldHdlZW4gMC0xLCB0aGF0IHJlc3VsdHNcbiAqIGluIGFuIGFzdGhldGljYWxseSBwbGVhc2luZyBzY2FsZS90cmFuc2Zvcm0gbmVlZGVkIHRvIHByb2plY3QgZnJvbSBzb3VyY2UgdG8gdGFyZ2V0LlxuICovXG5mdW5jdGlvbiBjYWxjT3JpZ2luKHNvdXJjZSwgdGFyZ2V0KSB7XG4gICAgbGV0IG9yaWdpbiA9IDAuNTtcbiAgICBjb25zdCBzb3VyY2VMZW5ndGggPSBjYWxjTGVuZ3RoKHNvdXJjZSk7XG4gICAgY29uc3QgdGFyZ2V0TGVuZ3RoID0gY2FsY0xlbmd0aCh0YXJnZXQpO1xuICAgIGlmICh0YXJnZXRMZW5ndGggPiBzb3VyY2VMZW5ndGgpIHtcbiAgICAgICAgb3JpZ2luID0gcHJvZ3Jlc3ModGFyZ2V0Lm1pbiwgdGFyZ2V0Lm1heCAtIHNvdXJjZUxlbmd0aCwgc291cmNlLm1pbik7XG4gICAgfVxuICAgIGVsc2UgaWYgKHNvdXJjZUxlbmd0aCA+IHRhcmdldExlbmd0aCkge1xuICAgICAgICBvcmlnaW4gPSBwcm9ncmVzcyhzb3VyY2UubWluLCBzb3VyY2UubWF4IC0gdGFyZ2V0TGVuZ3RoLCB0YXJnZXQubWluKTtcbiAgICB9XG4gICAgcmV0dXJuIGNsYW1wKDAsIDEsIG9yaWdpbik7XG59XG4vKipcbiAqIFJlYmFzZSB0aGUgY2FsY3VsYXRlZCB2aWV3cG9ydCBjb25zdHJhaW50cyByZWxhdGl2ZSB0byB0aGUgbGF5b3V0Lm1pbiBwb2ludC5cbiAqL1xuZnVuY3Rpb24gcmViYXNlQXhpc0NvbnN0cmFpbnRzKGxheW91dCwgY29uc3RyYWludHMpIHtcbiAgICBjb25zdCByZWxhdGl2ZUNvbnN0cmFpbnRzID0ge307XG4gICAgaWYgKGNvbnN0cmFpbnRzLm1pbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlbGF0aXZlQ29uc3RyYWludHMubWluID0gY29uc3RyYWludHMubWluIC0gbGF5b3V0Lm1pbjtcbiAgICB9XG4gICAgaWYgKGNvbnN0cmFpbnRzLm1heCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJlbGF0aXZlQ29uc3RyYWludHMubWF4ID0gY29uc3RyYWludHMubWF4IC0gbGF5b3V0Lm1pbjtcbiAgICB9XG4gICAgcmV0dXJuIHJlbGF0aXZlQ29uc3RyYWludHM7XG59XG5jb25zdCBkZWZhdWx0RWxhc3RpYyA9IDAuMzU7XG4vKipcbiAqIEFjY2VwdHMgYSBkcmFnRWxhc3RpYyBwcm9wIGFuZCByZXR1cm5zIHJlc29sdmVkIGVsYXN0aWMgdmFsdWVzIGZvciBlYWNoIGF4aXMuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVEcmFnRWxhc3RpYyhkcmFnRWxhc3RpYyA9IGRlZmF1bHRFbGFzdGljKSB7XG4gICAgaWYgKGRyYWdFbGFzdGljID09PSBmYWxzZSkge1xuICAgICAgICBkcmFnRWxhc3RpYyA9IDA7XG4gICAgfVxuICAgIGVsc2UgaWYgKGRyYWdFbGFzdGljID09PSB0cnVlKSB7XG4gICAgICAgIGRyYWdFbGFzdGljID0gZGVmYXVsdEVsYXN0aWM7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHg6IHJlc29sdmVBeGlzRWxhc3RpYyhkcmFnRWxhc3RpYywgXCJsZWZ0XCIsIFwicmlnaHRcIiksXG4gICAgICAgIHk6IHJlc29sdmVBeGlzRWxhc3RpYyhkcmFnRWxhc3RpYywgXCJ0b3BcIiwgXCJib3R0b21cIiksXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHJlc29sdmVBeGlzRWxhc3RpYyhkcmFnRWxhc3RpYywgbWluTGFiZWwsIG1heExhYmVsKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWluOiByZXNvbHZlUG9pbnRFbGFzdGljKGRyYWdFbGFzdGljLCBtaW5MYWJlbCksXG4gICAgICAgIG1heDogcmVzb2x2ZVBvaW50RWxhc3RpYyhkcmFnRWxhc3RpYywgbWF4TGFiZWwpLFxuICAgIH07XG59XG5mdW5jdGlvbiByZXNvbHZlUG9pbnRFbGFzdGljKGRyYWdFbGFzdGljLCBsYWJlbCkge1xuICAgIHJldHVybiB0eXBlb2YgZHJhZ0VsYXN0aWMgPT09IFwibnVtYmVyXCJcbiAgICAgICAgPyBkcmFnRWxhc3RpY1xuICAgICAgICA6IGRyYWdFbGFzdGljW2xhYmVsXSB8fCAwO1xufVxuXG5leHBvcnQgeyBhcHBseUNvbnN0cmFpbnRzLCBjYWxjT3JpZ2luLCBjYWxjUmVsYXRpdmVBeGlzQ29uc3RyYWludHMsIGNhbGNSZWxhdGl2ZUNvbnN0cmFpbnRzLCBjYWxjVmlld3BvcnRBeGlzQ29uc3RyYWludHMsIGNhbGNWaWV3cG9ydENvbnN0cmFpbnRzLCBkZWZhdWx0RWxhc3RpYywgcmViYXNlQXhpc0NvbnN0cmFpbnRzLCByZXNvbHZlQXhpc0VsYXN0aWMsIHJlc29sdmVEcmFnRWxhc3RpYywgcmVzb2x2ZVBvaW50RWxhc3RpYyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29uc3RyYWludHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/focus.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/focus.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FocusGesture: () => (/* binding */ FocusGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n\n\n\nclass FocusGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor() {\n super(...arguments);\n this.isActive = false;\n }\n onFocus() {\n let isFocusVisible = false;\n /**\n * If this element doesn't match focus-visible then don't\n * apply whileHover. But, if matches throws that focus-visible\n * is not a valid selector then in that browser outline styles will be applied\n * to the element by default and we want to match that behaviour with whileFocus.\n */\n try {\n isFocusVisible = this.node.current.matches(\":focus-visible\");\n }\n catch (e) {\n isFocusVisible = true;\n }\n if (!isFocusVisible || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", true);\n this.isActive = true;\n }\n onBlur() {\n if (!this.isActive || !this.node.animationState)\n return;\n this.node.animationState.setActive(\"whileFocus\", false);\n this.isActive = false;\n }\n mount() {\n this.unmount = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.pipe)((0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.addDomEvent)(this.node.current, \"focus\", () => this.onFocus()), (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.addDomEvent)(this.node.current, \"blur\", () => this.onBlur()));\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=focus.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvZm9jdXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBa0Q7QUFDZDs7QUFFcEMsMkJBQTJCLCtDQUFPO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixrREFBSSxDQUFDLHVEQUFXLG9EQUFvRCx1REFBVztBQUN0RztBQUNBO0FBQ0E7O0FBRXdCO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9nZXN0dXJlcy9mb2N1cy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZSwgYWRkRG9tRXZlbnQgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IHBpcGUgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuXG5jbGFzcyBGb2N1c0dlc3R1cmUgZXh0ZW5kcyBGZWF0dXJlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgICBvbkZvY3VzKCkge1xuICAgICAgICBsZXQgaXNGb2N1c1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHRoaXMgZWxlbWVudCBkb2Vzbid0IG1hdGNoIGZvY3VzLXZpc2libGUgdGhlbiBkb24ndFxuICAgICAgICAgKiBhcHBseSB3aGlsZUhvdmVyLiBCdXQsIGlmIG1hdGNoZXMgdGhyb3dzIHRoYXQgZm9jdXMtdmlzaWJsZVxuICAgICAgICAgKiBpcyBub3QgYSB2YWxpZCBzZWxlY3RvciB0aGVuIGluIHRoYXQgYnJvd3NlciBvdXRsaW5lIHN0eWxlcyB3aWxsIGJlIGFwcGxpZWRcbiAgICAgICAgICogdG8gdGhlIGVsZW1lbnQgYnkgZGVmYXVsdCBhbmQgd2Ugd2FudCB0byBtYXRjaCB0aGF0IGJlaGF2aW91ciB3aXRoIHdoaWxlRm9jdXMuXG4gICAgICAgICAqL1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaXNGb2N1c1Zpc2libGUgPSB0aGlzLm5vZGUuY3VycmVudC5tYXRjaGVzKFwiOmZvY3VzLXZpc2libGVcIik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlzRm9jdXNWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzRm9jdXNWaXNpYmxlIHx8ICF0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZUZvY3VzXCIsIHRydWUpO1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gdHJ1ZTtcbiAgICB9XG4gICAgb25CbHVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNBY3RpdmUgfHwgIXRoaXMubm9kZS5hbmltYXRpb25TdGF0ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnNldEFjdGl2ZShcIndoaWxlRm9jdXNcIiwgZmFsc2UpO1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgfVxuICAgIG1vdW50KCkge1xuICAgICAgICB0aGlzLnVubW91bnQgPSBwaXBlKGFkZERvbUV2ZW50KHRoaXMubm9kZS5jdXJyZW50LCBcImZvY3VzXCIsICgpID0+IHRoaXMub25Gb2N1cygpKSwgYWRkRG9tRXZlbnQodGhpcy5ub2RlLmN1cnJlbnQsIFwiYmx1clwiLCAoKSA9PiB0aGlzLm9uQmx1cigpKSk7XG4gICAgfVxuICAgIHVubW91bnQoKSB7IH1cbn1cblxuZXhwb3J0IHsgRm9jdXNHZXN0dXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb2N1cy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/focus.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/hover.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/hover.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HoverGesture: () => (/* binding */ HoverGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/hover.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n\n\n\nfunction handleHoverEvent(node, event, lifecycle) {\n const { props } = node;\n if (node.animationState && props.whileHover) {\n node.animationState.setActive(\"whileHover\", lifecycle === \"Start\");\n }\n const eventName = (\"onHover\" + lifecycle);\n const callback = props[eventName];\n if (callback) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => callback(event, (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event)));\n }\n}\nclass HoverGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_2__.Feature {\n mount() {\n const { current } = this.node;\n if (!current)\n return;\n this.unmount = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.hover)(current, (_element, startEvent) => {\n handleHoverEvent(this.node, startEvent, \"Start\");\n return (endEvent) => handleHoverEvent(this.node, endEvent, \"End\");\n });\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=hover.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvaG92ZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQW1EO0FBQ1M7O0FBRTVEO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNkNBQUssa0NBQWtDLHdFQUFnQjtBQUMvRDtBQUNBO0FBQ0EsMkJBQTJCLCtDQUFPO0FBQ2xDO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUI7QUFDQTtBQUNBLHVCQUF1QixpREFBSztBQUM1QjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL2dlc3R1cmVzL2hvdmVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlLCBob3ZlciwgZnJhbWUgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IGV4dHJhY3RFdmVudEluZm8gfSBmcm9tICcuLi9ldmVudHMvZXZlbnQtaW5mby5tanMnO1xuXG5mdW5jdGlvbiBoYW5kbGVIb3ZlckV2ZW50KG5vZGUsIGV2ZW50LCBsaWZlY3ljbGUpIHtcbiAgICBjb25zdCB7IHByb3BzIH0gPSBub2RlO1xuICAgIGlmIChub2RlLmFuaW1hdGlvblN0YXRlICYmIHByb3BzLndoaWxlSG92ZXIpIHtcbiAgICAgICAgbm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZUhvdmVyXCIsIGxpZmVjeWNsZSA9PT0gXCJTdGFydFwiKTtcbiAgICB9XG4gICAgY29uc3QgZXZlbnROYW1lID0gKFwib25Ib3ZlclwiICsgbGlmZWN5Y2xlKTtcbiAgICBjb25zdCBjYWxsYmFjayA9IHByb3BzW2V2ZW50TmFtZV07XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIGZyYW1lLnBvc3RSZW5kZXIoKCkgPT4gY2FsbGJhY2soZXZlbnQsIGV4dHJhY3RFdmVudEluZm8oZXZlbnQpKSk7XG4gICAgfVxufVxuY2xhc3MgSG92ZXJHZXN0dXJlIGV4dGVuZHMgRmVhdHVyZSB7XG4gICAgbW91bnQoKSB7XG4gICAgICAgIGNvbnN0IHsgY3VycmVudCB9ID0gdGhpcy5ub2RlO1xuICAgICAgICBpZiAoIWN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMudW5tb3VudCA9IGhvdmVyKGN1cnJlbnQsIChfZWxlbWVudCwgc3RhcnRFdmVudCkgPT4ge1xuICAgICAgICAgICAgaGFuZGxlSG92ZXJFdmVudCh0aGlzLm5vZGUsIHN0YXJ0RXZlbnQsIFwiU3RhcnRcIik7XG4gICAgICAgICAgICByZXR1cm4gKGVuZEV2ZW50KSA9PiBoYW5kbGVIb3ZlckV2ZW50KHRoaXMubm9kZSwgZW5kRXZlbnQsIFwiRW5kXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgdW5tb3VudCgpIHsgfVxufVxuXG5leHBvcnQgeyBIb3Zlckdlc3R1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhvdmVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/hover.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PanSession: () => (/* binding */ PanSession)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n/* harmony import */ var _utils_distance_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/distance.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/distance.mjs\");\n\n\n\n\n\n\nconst overflowStyles = /*#__PURE__*/ new Set([\"auto\", \"scroll\"]);\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint, contextWindow = window, dragSnapToOrigin = false, distanceThreshold = 3, element, } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n /**\n * @internal\n */\n this.contextWindow = window;\n /**\n * Scroll positions of scrollable ancestors and window.\n * @internal\n */\n this.scrollPositions = new Map();\n /**\n * Cleanup function for scroll listeners.\n * @internal\n */\n this.removeScrollListeners = null;\n this.onElementScroll = (event) => {\n this.handleScroll(event.target);\n };\n this.onWindowScroll = () => {\n this.handleScroll(window);\n };\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursor.\n const isDistancePastThreshold = (0,_utils_distance_mjs__WEBPACK_IMPORTED_MODULE_0__.distance2D)(info.offset, { x: 0, y: 0 }) >= this.distanceThreshold;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Throttle mouse move event to once per frame\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n // Resume animation if dragSnapToOrigin is set OR if no drag started (user just clicked)\n // This ensures constraint animations continue when interrupted by a click\n if (this.dragSnapToOrigin || !this.startEvent) {\n resumeAnimation && resumeAnimation();\n }\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!(0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isPrimaryPointer)(event))\n return;\n this.dragSnapToOrigin = dragSnapToOrigin;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n this.distanceThreshold = distanceThreshold;\n this.contextWindow = contextWindow || window;\n const info = (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_3__.extractEventInfo)(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = motion_dom__WEBPACK_IMPORTED_MODULE_1__.frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.pipe)((0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointermove\", this.handlePointerMove), (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointerup\", this.handlePointerUp), (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.contextWindow, \"pointercancel\", this.handlePointerUp));\n // Start scroll tracking if element provided\n if (element) {\n this.startScrollTracking(element);\n }\n }\n /**\n * Start tracking scroll on ancestors and window.\n */\n startScrollTracking(element) {\n // Store initial scroll positions for scrollable ancestors\n let current = element.parentElement;\n while (current) {\n const style = getComputedStyle(current);\n if (overflowStyles.has(style.overflowX) ||\n overflowStyles.has(style.overflowY)) {\n this.scrollPositions.set(current, {\n x: current.scrollLeft,\n y: current.scrollTop,\n });\n }\n current = current.parentElement;\n }\n // Track window scroll\n this.scrollPositions.set(window, {\n x: window.scrollX,\n y: window.scrollY,\n });\n // Capture listener catches element scroll events as they bubble\n window.addEventListener(\"scroll\", this.onElementScroll, {\n capture: true,\n passive: true,\n });\n // Direct window scroll listener (window scroll doesn't bubble)\n window.addEventListener(\"scroll\", this.onWindowScroll, {\n passive: true,\n });\n this.removeScrollListeners = () => {\n window.removeEventListener(\"scroll\", this.onElementScroll, {\n capture: true,\n });\n window.removeEventListener(\"scroll\", this.onWindowScroll);\n };\n }\n /**\n * Handle scroll compensation during drag.\n *\n * For element scroll: adjusts history origin since pageX/pageY doesn't change.\n * For window scroll: adjusts lastMoveEventInfo since pageX/pageY would change.\n */\n handleScroll(target) {\n const initial = this.scrollPositions.get(target);\n if (!initial)\n return;\n const isWindow = target === window;\n const current = isWindow\n ? { x: window.scrollX, y: window.scrollY }\n : {\n x: target.scrollLeft,\n y: target.scrollTop,\n };\n const delta = { x: current.x - initial.x, y: current.y - initial.y };\n if (delta.x === 0 && delta.y === 0)\n return;\n if (isWindow) {\n // Window scroll: pageX/pageY changes, so update lastMoveEventInfo\n if (this.lastMoveEventInfo) {\n this.lastMoveEventInfo.point.x += delta.x;\n this.lastMoveEventInfo.point.y += delta.y;\n }\n }\n else {\n // Element scroll: pageX/pageY unchanged, so adjust history origin\n if (this.history.length > 0) {\n this.history[0].x -= delta.x;\n this.history[0].y -= delta.y;\n }\n }\n this.scrollPositions.set(target, current);\n motion_dom__WEBPACK_IMPORTED_MODULE_1__.frame.update(this.updatePoint, true);\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n this.removeScrollListeners && this.removeScrollListeners();\n this.scrollPositions.clear();\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.secondsToMilliseconds)(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n /**\n * If the selected point is the pointer-down origin (history[0]),\n * there are better movement points available, and the time gap\n * is suspiciously large (>2x timeDelta), use the next point instead.\n * This prevents stale pointer-down points from diluting velocity\n * in hold-then-flick gestures.\n */\n if (timestampedPoint === history[0] &&\n history.length > 2 &&\n lastPoint.timestamp - timestampedPoint.timestamp >\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.secondsToMilliseconds)(timeDelta) * 2) {\n timestampedPoint = history[1];\n }\n const time = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(lastPoint.timestamp - timestampedPoint.timestamp);\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\n\n//# sourceMappingURL=PanSession.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcGFuL1BhblNlc3Npb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQTZFO0FBQ0s7QUFDYjtBQUNOO0FBQ1Q7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsd0dBQXdHLElBQUk7QUFDL0k7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QywrREFBVSxnQkFBZ0IsWUFBWTtBQUNsRjtBQUNBO0FBQ0Esb0JBQW9CLFFBQVE7QUFDNUIsb0JBQW9CLFlBQVksRUFBRSxpREFBUztBQUMzQyxnQ0FBZ0MscUJBQXFCO0FBQ3JELG9CQUFvQixrQkFBa0I7QUFDdEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLDZDQUFLO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix1Q0FBdUM7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLDREQUFnQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsd0VBQWdCO0FBQ3JDO0FBQ0EsZ0JBQWdCLFFBQVE7QUFDeEIsZ0JBQWdCLFlBQVksRUFBRSxpREFBUztBQUN2QywwQkFBMEIscUJBQXFCO0FBQy9DLGdCQUFnQixpQkFBaUI7QUFDakM7QUFDQTtBQUNBLCtCQUErQixrREFBSSxDQUFDLDhFQUFlLDZEQUE2RCw4RUFBZSx5REFBeUQsOEVBQWU7QUFDdk07QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZDQUFLO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsdURBQVc7QUFDbkI7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLHdDQUF3QztBQUMxRTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0Esc0JBQXNCLE9BQU87QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxtRUFBcUI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxtRUFBcUI7QUFDakM7QUFDQTtBQUNBLGlCQUFpQixtRUFBcUI7QUFDdEM7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNCO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9nZXN0dXJlcy9wYW4vUGFuU2Vzc2lvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJhbWUsIGlzUHJpbWFyeVBvaW50ZXIsIGNhbmNlbEZyYW1lLCBmcmFtZURhdGEgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IHBpcGUsIHNlY29uZHNUb01pbGxpc2Vjb25kcywgbWlsbGlzZWNvbmRzVG9TZWNvbmRzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGFkZFBvaW50ZXJFdmVudCB9IGZyb20gJy4uLy4uL2V2ZW50cy9hZGQtcG9pbnRlci1ldmVudC5tanMnO1xuaW1wb3J0IHsgZXh0cmFjdEV2ZW50SW5mbyB9IGZyb20gJy4uLy4uL2V2ZW50cy9ldmVudC1pbmZvLm1qcyc7XG5pbXBvcnQgeyBkaXN0YW5jZTJEIH0gZnJvbSAnLi4vLi4vdXRpbHMvZGlzdGFuY2UubWpzJztcblxuY29uc3Qgb3ZlcmZsb3dTdHlsZXMgPSAvKiNfX1BVUkVfXyovIG5ldyBTZXQoW1wiYXV0b1wiLCBcInNjcm9sbFwiXSk7XG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5jbGFzcyBQYW5TZXNzaW9uIHtcbiAgICBjb25zdHJ1Y3RvcihldmVudCwgaGFuZGxlcnMsIHsgdHJhbnNmb3JtUGFnZVBvaW50LCBjb250ZXh0V2luZG93ID0gd2luZG93LCBkcmFnU25hcFRvT3JpZ2luID0gZmFsc2UsIGRpc3RhbmNlVGhyZXNob2xkID0gMywgZWxlbWVudCwgfSA9IHt9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc3RhcnRFdmVudCA9IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubGFzdE1vdmVFdmVudCA9IG51bGw7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubGFzdE1vdmVFdmVudEluZm8gPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQGludGVybmFsXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmhhbmRsZXJzID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAaW50ZXJuYWxcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuY29udGV4dFdpbmRvdyA9IHdpbmRvdztcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNjcm9sbCBwb3NpdGlvbnMgb2Ygc2Nyb2xsYWJsZSBhbmNlc3RvcnMgYW5kIHdpbmRvdy5cbiAgICAgICAgICogQGludGVybmFsXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNjcm9sbFBvc2l0aW9ucyA9IG5ldyBNYXAoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENsZWFudXAgZnVuY3Rpb24gZm9yIHNjcm9sbCBsaXN0ZW5lcnMuXG4gICAgICAgICAqIEBpbnRlcm5hbFxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5yZW1vdmVTY3JvbGxMaXN0ZW5lcnMgPSBudWxsO1xuICAgICAgICB0aGlzLm9uRWxlbWVudFNjcm9sbCA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVTY3JvbGwoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5vbldpbmRvd1Njcm9sbCA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlU2Nyb2xsKHdpbmRvdyk7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMudXBkYXRlUG9pbnQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoISh0aGlzLmxhc3RNb3ZlRXZlbnQgJiYgdGhpcy5sYXN0TW92ZUV2ZW50SW5mbykpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgaW5mbyA9IGdldFBhbkluZm8odGhpcy5sYXN0TW92ZUV2ZW50SW5mbywgdGhpcy5oaXN0b3J5KTtcbiAgICAgICAgICAgIGNvbnN0IGlzUGFuU3RhcnRlZCA9IHRoaXMuc3RhcnRFdmVudCAhPT0gbnVsbDtcbiAgICAgICAgICAgIC8vIE9ubHkgc3RhcnQgcGFubmluZyBpZiB0aGUgb2Zmc2V0IGlzIGxhcmdlciB0aGFuIDMgcGl4ZWxzLiBJZiB3ZSBtYWtlIGl0XG4gICAgICAgICAgICAvLyBhbnkgbGFyZ2VyIHRoYW4gdGhpcyB3ZSdsbCB3YW50IHRvIHJlc2V0IHRoZSBwb2ludGVyIGhpc3RvcnlcbiAgICAgICAgICAgIC8vIG9uIHRoZSBmaXJzdCB1cGRhdGUgdG8gYXZvaWQgdmlzdWFsIHNuYXBwaW5nIHRvIHRoZSBjdXJzb3IuXG4gICAgICAgICAgICBjb25zdCBpc0Rpc3RhbmNlUGFzdFRocmVzaG9sZCA9IGRpc3RhbmNlMkQoaW5mby5vZmZzZXQsIHsgeDogMCwgeTogMCB9KSA+PSB0aGlzLmRpc3RhbmNlVGhyZXNob2xkO1xuICAgICAgICAgICAgaWYgKCFpc1BhblN0YXJ0ZWQgJiYgIWlzRGlzdGFuY2VQYXN0VGhyZXNob2xkKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHsgcG9pbnQgfSA9IGluZm87XG4gICAgICAgICAgICBjb25zdCB7IHRpbWVzdGFtcCB9ID0gZnJhbWVEYXRhO1xuICAgICAgICAgICAgdGhpcy5oaXN0b3J5LnB1c2goeyAuLi5wb2ludCwgdGltZXN0YW1wIH0pO1xuICAgICAgICAgICAgY29uc3QgeyBvblN0YXJ0LCBvbk1vdmUgfSA9IHRoaXMuaGFuZGxlcnM7XG4gICAgICAgICAgICBpZiAoIWlzUGFuU3RhcnRlZCkge1xuICAgICAgICAgICAgICAgIG9uU3RhcnQgJiYgb25TdGFydCh0aGlzLmxhc3RNb3ZlRXZlbnQsIGluZm8pO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRFdmVudCA9IHRoaXMubGFzdE1vdmVFdmVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uTW92ZSAmJiBvbk1vdmUodGhpcy5sYXN0TW92ZUV2ZW50LCBpbmZvKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5oYW5kbGVQb2ludGVyTW92ZSA9IChldmVudCwgaW5mbykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sYXN0TW92ZUV2ZW50ID0gZXZlbnQ7XG4gICAgICAgICAgICB0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvID0gdHJhbnNmb3JtUG9pbnQoaW5mbywgdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQpO1xuICAgICAgICAgICAgLy8gVGhyb3R0bGUgbW91c2UgbW92ZSBldmVudCB0byBvbmNlIHBlciBmcmFtZVxuICAgICAgICAgICAgZnJhbWUudXBkYXRlKHRoaXMudXBkYXRlUG9pbnQsIHRydWUpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmhhbmRsZVBvaW50ZXJVcCA9IChldmVudCwgaW5mbykgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmQoKTtcbiAgICAgICAgICAgIGNvbnN0IHsgb25FbmQsIG9uU2Vzc2lvbkVuZCwgcmVzdW1lQW5pbWF0aW9uIH0gPSB0aGlzLmhhbmRsZXJzO1xuICAgICAgICAgICAgLy8gUmVzdW1lIGFuaW1hdGlvbiBpZiBkcmFnU25hcFRvT3JpZ2luIGlzIHNldCBPUiBpZiBubyBkcmFnIHN0YXJ0ZWQgKHVzZXIganVzdCBjbGlja2VkKVxuICAgICAgICAgICAgLy8gVGhpcyBlbnN1cmVzIGNvbnN0cmFpbnQgYW5pbWF0aW9ucyBjb250aW51ZSB3aGVuIGludGVycnVwdGVkIGJ5IGEgY2xpY2tcbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdTbmFwVG9PcmlnaW4gfHwgIXRoaXMuc3RhcnRFdmVudCkge1xuICAgICAgICAgICAgICAgIHJlc3VtZUFuaW1hdGlvbiAmJiByZXN1bWVBbmltYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghKHRoaXMubGFzdE1vdmVFdmVudCAmJiB0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBwYW5JbmZvID0gZ2V0UGFuSW5mbyhldmVudC50eXBlID09PSBcInBvaW50ZXJjYW5jZWxcIlxuICAgICAgICAgICAgICAgID8gdGhpcy5sYXN0TW92ZUV2ZW50SW5mb1xuICAgICAgICAgICAgICAgIDogdHJhbnNmb3JtUG9pbnQoaW5mbywgdGhpcy50cmFuc2Zvcm1QYWdlUG9pbnQpLCB0aGlzLmhpc3RvcnkpO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRFdmVudCAmJiBvbkVuZCkge1xuICAgICAgICAgICAgICAgIG9uRW5kKGV2ZW50LCBwYW5JbmZvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9uU2Vzc2lvbkVuZCAmJiBvblNlc3Npb25FbmQoZXZlbnQsIHBhbkluZm8pO1xuICAgICAgICB9O1xuICAgICAgICAvLyBJZiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgdG91Y2gsIGRvbid0IHN0YXJ0IGRldGVjdGluZyB0aGlzIGdlc3R1cmVcbiAgICAgICAgaWYgKCFpc1ByaW1hcnlQb2ludGVyKGV2ZW50KSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgdGhpcy5kcmFnU25hcFRvT3JpZ2luID0gZHJhZ1NuYXBUb09yaWdpbjtcbiAgICAgICAgdGhpcy5oYW5kbGVycyA9IGhhbmRsZXJzO1xuICAgICAgICB0aGlzLnRyYW5zZm9ybVBhZ2VQb2ludCA9IHRyYW5zZm9ybVBhZ2VQb2ludDtcbiAgICAgICAgdGhpcy5kaXN0YW5jZVRocmVzaG9sZCA9IGRpc3RhbmNlVGhyZXNob2xkO1xuICAgICAgICB0aGlzLmNvbnRleHRXaW5kb3cgPSBjb250ZXh0V2luZG93IHx8IHdpbmRvdztcbiAgICAgICAgY29uc3QgaW5mbyA9IGV4dHJhY3RFdmVudEluZm8oZXZlbnQpO1xuICAgICAgICBjb25zdCBpbml0aWFsSW5mbyA9IHRyYW5zZm9ybVBvaW50KGluZm8sIHRoaXMudHJhbnNmb3JtUGFnZVBvaW50KTtcbiAgICAgICAgY29uc3QgeyBwb2ludCB9ID0gaW5pdGlhbEluZm87XG4gICAgICAgIGNvbnN0IHsgdGltZXN0YW1wIH0gPSBmcmFtZURhdGE7XG4gICAgICAgIHRoaXMuaGlzdG9yeSA9IFt7IC4uLnBvaW50LCB0aW1lc3RhbXAgfV07XG4gICAgICAgIGNvbnN0IHsgb25TZXNzaW9uU3RhcnQgfSA9IGhhbmRsZXJzO1xuICAgICAgICBvblNlc3Npb25TdGFydCAmJlxuICAgICAgICAgICAgb25TZXNzaW9uU3RhcnQoZXZlbnQsIGdldFBhbkluZm8oaW5pdGlhbEluZm8sIHRoaXMuaGlzdG9yeSkpO1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycyA9IHBpcGUoYWRkUG9pbnRlckV2ZW50KHRoaXMuY29udGV4dFdpbmRvdywgXCJwb2ludGVybW92ZVwiLCB0aGlzLmhhbmRsZVBvaW50ZXJNb3ZlKSwgYWRkUG9pbnRlckV2ZW50KHRoaXMuY29udGV4dFdpbmRvdywgXCJwb2ludGVydXBcIiwgdGhpcy5oYW5kbGVQb2ludGVyVXApLCBhZGRQb2ludGVyRXZlbnQodGhpcy5jb250ZXh0V2luZG93LCBcInBvaW50ZXJjYW5jZWxcIiwgdGhpcy5oYW5kbGVQb2ludGVyVXApKTtcbiAgICAgICAgLy8gU3RhcnQgc2Nyb2xsIHRyYWNraW5nIGlmIGVsZW1lbnQgcHJvdmlkZWRcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRTY3JvbGxUcmFja2luZyhlbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBTdGFydCB0cmFja2luZyBzY3JvbGwgb24gYW5jZXN0b3JzIGFuZCB3aW5kb3cuXG4gICAgICovXG4gICAgc3RhcnRTY3JvbGxUcmFja2luZyhlbGVtZW50KSB7XG4gICAgICAgIC8vIFN0b3JlIGluaXRpYWwgc2Nyb2xsIHBvc2l0aW9ucyBmb3Igc2Nyb2xsYWJsZSBhbmNlc3RvcnNcbiAgICAgICAgbGV0IGN1cnJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIHdoaWxlIChjdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoY3VycmVudCk7XG4gICAgICAgICAgICBpZiAob3ZlcmZsb3dTdHlsZXMuaGFzKHN0eWxlLm92ZXJmbG93WCkgfHxcbiAgICAgICAgICAgICAgICBvdmVyZmxvd1N0eWxlcy5oYXMoc3R5bGUub3ZlcmZsb3dZKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsUG9zaXRpb25zLnNldChjdXJyZW50LCB7XG4gICAgICAgICAgICAgICAgICAgIHg6IGN1cnJlbnQuc2Nyb2xsTGVmdCxcbiAgICAgICAgICAgICAgICAgICAgeTogY3VycmVudC5zY3JvbGxUb3AsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIC8vIFRyYWNrIHdpbmRvdyBzY3JvbGxcbiAgICAgICAgdGhpcy5zY3JvbGxQb3NpdGlvbnMuc2V0KHdpbmRvdywge1xuICAgICAgICAgICAgeDogd2luZG93LnNjcm9sbFgsXG4gICAgICAgICAgICB5OiB3aW5kb3cuc2Nyb2xsWSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIENhcHR1cmUgbGlzdGVuZXIgY2F0Y2hlcyBlbGVtZW50IHNjcm9sbCBldmVudHMgYXMgdGhleSBidWJibGVcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5vbkVsZW1lbnRTY3JvbGwsIHtcbiAgICAgICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICAgICAgICBwYXNzaXZlOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgICAgLy8gRGlyZWN0IHdpbmRvdyBzY3JvbGwgbGlzdGVuZXIgKHdpbmRvdyBzY3JvbGwgZG9lc24ndCBidWJibGUpXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMub25XaW5kb3dTY3JvbGwsIHtcbiAgICAgICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVycyA9ICgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMub25FbGVtZW50U2Nyb2xsLCB7XG4gICAgICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgdGhpcy5vbldpbmRvd1Njcm9sbCk7XG4gICAgICAgIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBzY3JvbGwgY29tcGVuc2F0aW9uIGR1cmluZyBkcmFnLlxuICAgICAqXG4gICAgICogRm9yIGVsZW1lbnQgc2Nyb2xsOiBhZGp1c3RzIGhpc3Rvcnkgb3JpZ2luIHNpbmNlIHBhZ2VYL3BhZ2VZIGRvZXNuJ3QgY2hhbmdlLlxuICAgICAqIEZvciB3aW5kb3cgc2Nyb2xsOiBhZGp1c3RzIGxhc3RNb3ZlRXZlbnRJbmZvIHNpbmNlIHBhZ2VYL3BhZ2VZIHdvdWxkIGNoYW5nZS5cbiAgICAgKi9cbiAgICBoYW5kbGVTY3JvbGwodGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IGluaXRpYWwgPSB0aGlzLnNjcm9sbFBvc2l0aW9ucy5nZXQodGFyZ2V0KTtcbiAgICAgICAgaWYgKCFpbml0aWFsKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBpc1dpbmRvdyA9IHRhcmdldCA9PT0gd2luZG93O1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gaXNXaW5kb3dcbiAgICAgICAgICAgID8geyB4OiB3aW5kb3cuc2Nyb2xsWCwgeTogd2luZG93LnNjcm9sbFkgfVxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgeDogdGFyZ2V0LnNjcm9sbExlZnQsXG4gICAgICAgICAgICAgICAgeTogdGFyZ2V0LnNjcm9sbFRvcCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRlbHRhID0geyB4OiBjdXJyZW50LnggLSBpbml0aWFsLngsIHk6IGN1cnJlbnQueSAtIGluaXRpYWwueSB9O1xuICAgICAgICBpZiAoZGVsdGEueCA9PT0gMCAmJiBkZWx0YS55ID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoaXNXaW5kb3cpIHtcbiAgICAgICAgICAgIC8vIFdpbmRvdyBzY3JvbGw6IHBhZ2VYL3BhZ2VZIGNoYW5nZXMsIHNvIHVwZGF0ZSBsYXN0TW92ZUV2ZW50SW5mb1xuICAgICAgICAgICAgaWYgKHRoaXMubGFzdE1vdmVFdmVudEluZm8pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvLnBvaW50LnggKz0gZGVsdGEueDtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RNb3ZlRXZlbnRJbmZvLnBvaW50LnkgKz0gZGVsdGEueTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIEVsZW1lbnQgc2Nyb2xsOiBwYWdlWC9wYWdlWSB1bmNoYW5nZWQsIHNvIGFkanVzdCBoaXN0b3J5IG9yaWdpblxuICAgICAgICAgICAgaWYgKHRoaXMuaGlzdG9yeS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5WzBdLnggLT0gZGVsdGEueDtcbiAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlbMF0ueSAtPSBkZWx0YS55O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2Nyb2xsUG9zaXRpb25zLnNldCh0YXJnZXQsIGN1cnJlbnQpO1xuICAgICAgICBmcmFtZS51cGRhdGUodGhpcy51cGRhdGVQb2ludCwgdHJ1ZSk7XG4gICAgfVxuICAgIHVwZGF0ZUhhbmRsZXJzKGhhbmRsZXJzKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlcnMgPSBoYW5kbGVycztcbiAgICB9XG4gICAgZW5kKCkge1xuICAgICAgICB0aGlzLnJlbW92ZUxpc3RlbmVycyAmJiB0aGlzLnJlbW92ZUxpc3RlbmVycygpO1xuICAgICAgICB0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVycyAmJiB0aGlzLnJlbW92ZVNjcm9sbExpc3RlbmVycygpO1xuICAgICAgICB0aGlzLnNjcm9sbFBvc2l0aW9ucy5jbGVhcigpO1xuICAgICAgICBjYW5jZWxGcmFtZSh0aGlzLnVwZGF0ZVBvaW50KTtcbiAgICB9XG59XG5mdW5jdGlvbiB0cmFuc2Zvcm1Qb2ludChpbmZvLCB0cmFuc2Zvcm1QYWdlUG9pbnQpIHtcbiAgICByZXR1cm4gdHJhbnNmb3JtUGFnZVBvaW50ID8geyBwb2ludDogdHJhbnNmb3JtUGFnZVBvaW50KGluZm8ucG9pbnQpIH0gOiBpbmZvO1xufVxuZnVuY3Rpb24gc3VidHJhY3RQb2ludChhLCBiKSB7XG4gICAgcmV0dXJuIHsgeDogYS54IC0gYi54LCB5OiBhLnkgLSBiLnkgfTtcbn1cbmZ1bmN0aW9uIGdldFBhbkluZm8oeyBwb2ludCB9LCBoaXN0b3J5KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcG9pbnQsXG4gICAgICAgIGRlbHRhOiBzdWJ0cmFjdFBvaW50KHBvaW50LCBsYXN0RGV2aWNlUG9pbnQoaGlzdG9yeSkpLFxuICAgICAgICBvZmZzZXQ6IHN1YnRyYWN0UG9pbnQocG9pbnQsIHN0YXJ0RGV2aWNlUG9pbnQoaGlzdG9yeSkpLFxuICAgICAgICB2ZWxvY2l0eTogZ2V0VmVsb2NpdHkoaGlzdG9yeSwgMC4xKSxcbiAgICB9O1xufVxuZnVuY3Rpb24gc3RhcnREZXZpY2VQb2ludChoaXN0b3J5KSB7XG4gICAgcmV0dXJuIGhpc3RvcnlbMF07XG59XG5mdW5jdGlvbiBsYXN0RGV2aWNlUG9pbnQoaGlzdG9yeSkge1xuICAgIHJldHVybiBoaXN0b3J5W2hpc3RvcnkubGVuZ3RoIC0gMV07XG59XG5mdW5jdGlvbiBnZXRWZWxvY2l0eShoaXN0b3J5LCB0aW1lRGVsdGEpIHtcbiAgICBpZiAoaGlzdG9yeS5sZW5ndGggPCAyKSB7XG4gICAgICAgIHJldHVybiB7IHg6IDAsIHk6IDAgfTtcbiAgICB9XG4gICAgbGV0IGkgPSBoaXN0b3J5Lmxlbmd0aCAtIDE7XG4gICAgbGV0IHRpbWVzdGFtcGVkUG9pbnQgPSBudWxsO1xuICAgIGNvbnN0IGxhc3RQb2ludCA9IGxhc3REZXZpY2VQb2ludChoaXN0b3J5KTtcbiAgICB3aGlsZSAoaSA+PSAwKSB7XG4gICAgICAgIHRpbWVzdGFtcGVkUG9pbnQgPSBoaXN0b3J5W2ldO1xuICAgICAgICBpZiAobGFzdFBvaW50LnRpbWVzdGFtcCAtIHRpbWVzdGFtcGVkUG9pbnQudGltZXN0YW1wID5cbiAgICAgICAgICAgIHNlY29uZHNUb01pbGxpc2Vjb25kcyh0aW1lRGVsdGEpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpLS07XG4gICAgfVxuICAgIGlmICghdGltZXN0YW1wZWRQb2ludCkge1xuICAgICAgICByZXR1cm4geyB4OiAwLCB5OiAwIH07XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIHRoZSBzZWxlY3RlZCBwb2ludCBpcyB0aGUgcG9pbnRlci1kb3duIG9yaWdpbiAoaGlzdG9yeVswXSksXG4gICAgICogdGhlcmUgYXJlIGJldHRlciBtb3ZlbWVudCBwb2ludHMgYXZhaWxhYmxlLCBhbmQgdGhlIHRpbWUgZ2FwXG4gICAgICogaXMgc3VzcGljaW91c2x5IGxhcmdlICg+MnggdGltZURlbHRhKSwgdXNlIHRoZSBuZXh0IHBvaW50IGluc3RlYWQuXG4gICAgICogVGhpcyBwcmV2ZW50cyBzdGFsZSBwb2ludGVyLWRvd24gcG9pbnRzIGZyb20gZGlsdXRpbmcgdmVsb2NpdHlcbiAgICAgKiBpbiBob2xkLXRoZW4tZmxpY2sgZ2VzdHVyZXMuXG4gICAgICovXG4gICAgaWYgKHRpbWVzdGFtcGVkUG9pbnQgPT09IGhpc3RvcnlbMF0gJiZcbiAgICAgICAgaGlzdG9yeS5sZW5ndGggPiAyICYmXG4gICAgICAgIGxhc3RQb2ludC50aW1lc3RhbXAgLSB0aW1lc3RhbXBlZFBvaW50LnRpbWVzdGFtcCA+XG4gICAgICAgICAgICBzZWNvbmRzVG9NaWxsaXNlY29uZHModGltZURlbHRhKSAqIDIpIHtcbiAgICAgICAgdGltZXN0YW1wZWRQb2ludCA9IGhpc3RvcnlbMV07XG4gICAgfVxuICAgIGNvbnN0IHRpbWUgPSBtaWxsaXNlY29uZHNUb1NlY29uZHMobGFzdFBvaW50LnRpbWVzdGFtcCAtIHRpbWVzdGFtcGVkUG9pbnQudGltZXN0YW1wKTtcbiAgICBpZiAodGltZSA9PT0gMCkge1xuICAgICAgICByZXR1cm4geyB4OiAwLCB5OiAwIH07XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRWZWxvY2l0eSA9IHtcbiAgICAgICAgeDogKGxhc3RQb2ludC54IC0gdGltZXN0YW1wZWRQb2ludC54KSAvIHRpbWUsXG4gICAgICAgIHk6IChsYXN0UG9pbnQueSAtIHRpbWVzdGFtcGVkUG9pbnQueSkgLyB0aW1lLFxuICAgIH07XG4gICAgaWYgKGN1cnJlbnRWZWxvY2l0eS54ID09PSBJbmZpbml0eSkge1xuICAgICAgICBjdXJyZW50VmVsb2NpdHkueCA9IDA7XG4gICAgfVxuICAgIGlmIChjdXJyZW50VmVsb2NpdHkueSA9PT0gSW5maW5pdHkpIHtcbiAgICAgICAgY3VycmVudFZlbG9jaXR5LnkgPSAwO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudFZlbG9jaXR5O1xufVxuXG5leHBvcnQgeyBQYW5TZXNzaW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYW5TZXNzaW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/pan/index.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PanGesture: () => (/* binding */ PanGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../events/add-pointer-event.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/add-pointer-event.mjs\");\n/* harmony import */ var _utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/get-context-window.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\");\n/* harmony import */ var _PanSession_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PanSession.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs\");\n\n\n\n\n\n\nconst asyncHandler = (handler) => (event, info) => {\n if (handler) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.update(() => handler(event, info), false, true);\n }\n};\nclass PanGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_1__.Feature {\n constructor() {\n super(...arguments);\n this.removePointerDownListener = motion_utils__WEBPACK_IMPORTED_MODULE_2__.noop;\n }\n onPointerDown(pointerDownEvent) {\n this.session = new _PanSession_mjs__WEBPACK_IMPORTED_MODULE_3__.PanSession(pointerDownEvent, this.createPanHandlers(), {\n transformPagePoint: this.node.getTransformPagePoint(),\n contextWindow: (0,_utils_get_context_window_mjs__WEBPACK_IMPORTED_MODULE_4__.getContextWindow)(this.node),\n });\n }\n createPanHandlers() {\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\n return {\n onSessionStart: asyncHandler(onPanSessionStart),\n onStart: asyncHandler(onPanStart),\n onMove: asyncHandler(onPan),\n onEnd: (event, info) => {\n delete this.session;\n if (onPanEnd) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => onPanEnd(event, info));\n }\n },\n };\n }\n mount() {\n this.removePointerDownListener = (0,_events_add_pointer_event_mjs__WEBPACK_IMPORTED_MODULE_5__.addPointerEvent)(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\n }\n update() {\n this.session && this.session.updateHandlers(this.createPanHandlers());\n }\n unmount() {\n this.removePointerDownListener();\n this.session && this.session.end();\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcGFuL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQTRDO0FBQ1I7QUFDaUM7QUFDQztBQUN4Qjs7QUFFOUM7QUFDQTtBQUNBLFFBQVEsNkNBQUs7QUFDYjtBQUNBO0FBQ0EseUJBQXlCLCtDQUFPO0FBQ2hDO0FBQ0E7QUFDQSx5Q0FBeUMsOENBQUk7QUFDN0M7QUFDQTtBQUNBLDJCQUEyQix1REFBVTtBQUNyQztBQUNBLDJCQUEyQiwrRUFBZ0I7QUFDM0MsU0FBUztBQUNUO0FBQ0E7QUFDQSxnQkFBZ0IsaURBQWlEO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDZDQUFLO0FBQ3pCO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyw4RUFBZTtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNCO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9nZXN0dXJlcy9wYW4vaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUsIGZyYW1lIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGFkZFBvaW50ZXJFdmVudCB9IGZyb20gJy4uLy4uL2V2ZW50cy9hZGQtcG9pbnRlci1ldmVudC5tanMnO1xuaW1wb3J0IHsgZ2V0Q29udGV4dFdpbmRvdyB9IGZyb20gJy4uLy4uL3V0aWxzL2dldC1jb250ZXh0LXdpbmRvdy5tanMnO1xuaW1wb3J0IHsgUGFuU2Vzc2lvbiB9IGZyb20gJy4vUGFuU2Vzc2lvbi5tanMnO1xuXG5jb25zdCBhc3luY0hhbmRsZXIgPSAoaGFuZGxlcikgPT4gKGV2ZW50LCBpbmZvKSA9PiB7XG4gICAgaWYgKGhhbmRsZXIpIHtcbiAgICAgICAgZnJhbWUudXBkYXRlKCgpID0+IGhhbmRsZXIoZXZlbnQsIGluZm8pLCBmYWxzZSwgdHJ1ZSk7XG4gICAgfVxufTtcbmNsYXNzIFBhbkdlc3R1cmUgZXh0ZW5kcyBGZWF0dXJlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5yZW1vdmVQb2ludGVyRG93bkxpc3RlbmVyID0gbm9vcDtcbiAgICB9XG4gICAgb25Qb2ludGVyRG93bihwb2ludGVyRG93bkV2ZW50KSB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbiA9IG5ldyBQYW5TZXNzaW9uKHBvaW50ZXJEb3duRXZlbnQsIHRoaXMuY3JlYXRlUGFuSGFuZGxlcnMoKSwge1xuICAgICAgICAgICAgdHJhbnNmb3JtUGFnZVBvaW50OiB0aGlzLm5vZGUuZ2V0VHJhbnNmb3JtUGFnZVBvaW50KCksXG4gICAgICAgICAgICBjb250ZXh0V2luZG93OiBnZXRDb250ZXh0V2luZG93KHRoaXMubm9kZSksXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjcmVhdGVQYW5IYW5kbGVycygpIHtcbiAgICAgICAgY29uc3QgeyBvblBhblNlc3Npb25TdGFydCwgb25QYW5TdGFydCwgb25QYW4sIG9uUGFuRW5kIH0gPSB0aGlzLm5vZGUuZ2V0UHJvcHMoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG9uU2Vzc2lvblN0YXJ0OiBhc3luY0hhbmRsZXIob25QYW5TZXNzaW9uU3RhcnQpLFxuICAgICAgICAgICAgb25TdGFydDogYXN5bmNIYW5kbGVyKG9uUGFuU3RhcnQpLFxuICAgICAgICAgICAgb25Nb3ZlOiBhc3luY0hhbmRsZXIob25QYW4pLFxuICAgICAgICAgICAgb25FbmQ6IChldmVudCwgaW5mbykgPT4ge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnNlc3Npb247XG4gICAgICAgICAgICAgICAgaWYgKG9uUGFuRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGZyYW1lLnBvc3RSZW5kZXIoKCkgPT4gb25QYW5FbmQoZXZlbnQsIGluZm8pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgIH1cbiAgICBtb3VudCgpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVQb2ludGVyRG93bkxpc3RlbmVyID0gYWRkUG9pbnRlckV2ZW50KHRoaXMubm9kZS5jdXJyZW50LCBcInBvaW50ZXJkb3duXCIsIChldmVudCkgPT4gdGhpcy5vblBvaW50ZXJEb3duKGV2ZW50KSk7XG4gICAgfVxuICAgIHVwZGF0ZSgpIHtcbiAgICAgICAgdGhpcy5zZXNzaW9uICYmIHRoaXMuc2Vzc2lvbi51cGRhdGVIYW5kbGVycyh0aGlzLmNyZWF0ZVBhbkhhbmRsZXJzKCkpO1xuICAgIH1cbiAgICB1bm1vdW50KCkge1xuICAgICAgICB0aGlzLnJlbW92ZVBvaW50ZXJEb3duTGlzdGVuZXIoKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uICYmIHRoaXMuc2Vzc2lvbi5lbmQoKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IFBhbkdlc3R1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/press.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/gestures/press.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PressGesture: () => (/* binding */ PressGesture)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs\");\n/* harmony import */ var _events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../events/event-info.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/events/event-info.mjs\");\n\n\n\nfunction handlePressEvent(node, event, lifecycle) {\n const { props } = node;\n if (node.current instanceof HTMLButtonElement && node.current.disabled) {\n return;\n }\n if (node.animationState && props.whileTap) {\n node.animationState.setActive(\"whileTap\", lifecycle === \"Start\");\n }\n const eventName = (\"onTap\" + (lifecycle === \"End\" ? \"\" : lifecycle));\n const callback = props[eventName];\n if (callback) {\n motion_dom__WEBPACK_IMPORTED_MODULE_0__.frame.postRender(() => callback(event, (0,_events_event_info_mjs__WEBPACK_IMPORTED_MODULE_1__.extractEventInfo)(event)));\n }\n}\nclass PressGesture extends motion_dom__WEBPACK_IMPORTED_MODULE_2__.Feature {\n mount() {\n const { current } = this.node;\n if (!current)\n return;\n const { globalTapTarget, propagate } = this.node.props;\n this.unmount = (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.press)(current, (_element, startEvent) => {\n handlePressEvent(this.node, startEvent, \"Start\");\n return (endEvent, { success }) => handlePressEvent(this.node, endEvent, success ? \"End\" : \"Cancel\");\n }, {\n useGlobalTarget: globalTapTarget,\n stopPropagation: propagate?.tap === false,\n });\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=press.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQW1EO0FBQ1M7O0FBRTVEO0FBQ0EsWUFBWSxRQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNkNBQUssa0NBQWtDLHdFQUFnQjtBQUMvRDtBQUNBO0FBQ0EsMkJBQTJCLCtDQUFPO0FBQ2xDO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUI7QUFDQTtBQUNBLGdCQUFnQiw2QkFBNkI7QUFDN0MsdUJBQXVCLGlEQUFLO0FBQzVCO0FBQ0EsZ0NBQWdDLFNBQVM7QUFDekMsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUV3QjtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUsIHByZXNzLCBmcmFtZSB9IGZyb20gJ21vdGlvbi1kb20nO1xuaW1wb3J0IHsgZXh0cmFjdEV2ZW50SW5mbyB9IGZyb20gJy4uL2V2ZW50cy9ldmVudC1pbmZvLm1qcyc7XG5cbmZ1bmN0aW9uIGhhbmRsZVByZXNzRXZlbnQobm9kZSwgZXZlbnQsIGxpZmVjeWNsZSkge1xuICAgIGNvbnN0IHsgcHJvcHMgfSA9IG5vZGU7XG4gICAgaWYgKG5vZGUuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50ICYmIG5vZGUuY3VycmVudC5kaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChub2RlLmFuaW1hdGlvblN0YXRlICYmIHByb3BzLndoaWxlVGFwKSB7XG4gICAgICAgIG5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwid2hpbGVUYXBcIiwgbGlmZWN5Y2xlID09PSBcIlN0YXJ0XCIpO1xuICAgIH1cbiAgICBjb25zdCBldmVudE5hbWUgPSAoXCJvblRhcFwiICsgKGxpZmVjeWNsZSA9PT0gXCJFbmRcIiA/IFwiXCIgOiBsaWZlY3ljbGUpKTtcbiAgICBjb25zdCBjYWxsYmFjayA9IHByb3BzW2V2ZW50TmFtZV07XG4gICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgIGZyYW1lLnBvc3RSZW5kZXIoKCkgPT4gY2FsbGJhY2soZXZlbnQsIGV4dHJhY3RFdmVudEluZm8oZXZlbnQpKSk7XG4gICAgfVxufVxuY2xhc3MgUHJlc3NHZXN0dXJlIGV4dGVuZHMgRmVhdHVyZSB7XG4gICAgbW91bnQoKSB7XG4gICAgICAgIGNvbnN0IHsgY3VycmVudCB9ID0gdGhpcy5ub2RlO1xuICAgICAgICBpZiAoIWN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgZ2xvYmFsVGFwVGFyZ2V0LCBwcm9wYWdhdGUgfSA9IHRoaXMubm9kZS5wcm9wcztcbiAgICAgICAgdGhpcy51bm1vdW50ID0gcHJlc3MoY3VycmVudCwgKF9lbGVtZW50LCBzdGFydEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBoYW5kbGVQcmVzc0V2ZW50KHRoaXMubm9kZSwgc3RhcnRFdmVudCwgXCJTdGFydFwiKTtcbiAgICAgICAgICAgIHJldHVybiAoZW5kRXZlbnQsIHsgc3VjY2VzcyB9KSA9PiBoYW5kbGVQcmVzc0V2ZW50KHRoaXMubm9kZSwgZW5kRXZlbnQsIHN1Y2Nlc3MgPyBcIkVuZFwiIDogXCJDYW5jZWxcIik7XG4gICAgICAgIH0sIHtcbiAgICAgICAgICAgIHVzZUdsb2JhbFRhcmdldDogZ2xvYmFsVGFwVGFyZ2V0LFxuICAgICAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiBwcm9wYWdhdGU/LnRhcCA9PT0gZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICB1bm1vdW50KCkgeyB9XG59XG5cbmV4cG9ydCB7IFByZXNzR2VzdHVyZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJlc3MubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/press.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ ExitAnimationFeature: () => (/* binding */ ExitAnimationFeature)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n\n\nlet id = 0;\nclass ExitAnimationFeature extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor() {\n super(...arguments);\n this.id = id++;\n }\n update() {\n if (!this.node.presenceContext)\n return;\n const { isPresent, onExitComplete } = this.node.presenceContext;\n const { isPresent: prevIsPresent } = this.node.prevPresenceContext || {};\n if (!this.node.animationState || isPresent === prevIsPresent) {\n return;\n }\n const exitAnimation = this.node.animationState.setActive(\"exit\", !isPresent);\n if (onExitComplete && !isPresent) {\n exitAnimation.then(() => {\n onExitComplete(this.id);\n });\n }\n }\n mount() {\n const { register, onExitComplete } = this.node.presenceContext || {};\n if (onExitComplete) {\n onExitComplete(this.id);\n }\n if (register) {\n this.unmount = register(this.id);\n }\n }\n unmount() { }\n}\n\n\n//# sourceMappingURL=exit.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbi9leGl0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFxQzs7QUFFckM7QUFDQSxtQ0FBbUMsK0NBQU87QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsNEJBQTRCO0FBQzVDLGdCQUFnQiwyQkFBMkI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDJCQUEyQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvYW5pbWF0aW9uL2V4aXQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICdtb3Rpb24tZG9tJztcblxubGV0IGlkID0gMDtcbmNsYXNzIEV4aXRBbmltYXRpb25GZWF0dXJlIGV4dGVuZHMgRmVhdHVyZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKC4uLmFyZ3VtZW50cyk7XG4gICAgICAgIHRoaXMuaWQgPSBpZCsrO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5ub2RlLnByZXNlbmNlQ29udGV4dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyBpc1ByZXNlbnQsIG9uRXhpdENvbXBsZXRlIH0gPSB0aGlzLm5vZGUucHJlc2VuY2VDb250ZXh0O1xuICAgICAgICBjb25zdCB7IGlzUHJlc2VudDogcHJldklzUHJlc2VudCB9ID0gdGhpcy5ub2RlLnByZXZQcmVzZW5jZUNvbnRleHQgfHwge307XG4gICAgICAgIGlmICghdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlIHx8IGlzUHJlc2VudCA9PT0gcHJldklzUHJlc2VudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV4aXRBbmltYXRpb24gPSB0aGlzLm5vZGUuYW5pbWF0aW9uU3RhdGUuc2V0QWN0aXZlKFwiZXhpdFwiLCAhaXNQcmVzZW50KTtcbiAgICAgICAgaWYgKG9uRXhpdENvbXBsZXRlICYmICFpc1ByZXNlbnQpIHtcbiAgICAgICAgICAgIGV4aXRBbmltYXRpb24udGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgb25FeGl0Q29tcGxldGUodGhpcy5pZCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBtb3VudCgpIHtcbiAgICAgICAgY29uc3QgeyByZWdpc3Rlciwgb25FeGl0Q29tcGxldGUgfSA9IHRoaXMubm9kZS5wcmVzZW5jZUNvbnRleHQgfHwge307XG4gICAgICAgIGlmIChvbkV4aXRDb21wbGV0ZSkge1xuICAgICAgICAgICAgb25FeGl0Q29tcGxldGUodGhpcy5pZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJlZ2lzdGVyKSB7XG4gICAgICAgICAgICB0aGlzLnVubW91bnQgPSByZWdpc3Rlcih0aGlzLmlkKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB1bm1vdW50KCkgeyB9XG59XG5cbmV4cG9ydCB7IEV4aXRBbmltYXRpb25GZWF0dXJlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1leGl0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AnimationFeature: () => (/* binding */ AnimationFeature)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/animation-state.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n\n\nclass AnimationFeature extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n constructor(node) {\n super(node);\n node.animationState || (node.animationState = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.createAnimationState)(node));\n }\n updateAnimationControlsSubscription() {\n const { animate } = this.node.getProps();\n if ((0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isAnimationControls)(animate)) {\n this.unmountControls = animate.subscribe(this.node);\n }\n }\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n mount() {\n this.updateAnimationControlsSubscription();\n }\n update() {\n const { animate } = this.node.getProps();\n const { animate: prevAnimate } = this.node.prevProps || {};\n if (animate !== prevAnimate) {\n this.updateAnimationControlsSubscription();\n }\n }\n unmount() {\n this.node.animationState.reset();\n this.unmountControls?.();\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbi9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFnRjs7QUFFaEYsK0JBQStCLCtDQUFPO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0RBQXNELGdFQUFvQjtBQUMxRTtBQUNBO0FBQ0EsZ0JBQWdCLFVBQVU7QUFDMUIsWUFBWSwrREFBbUI7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsVUFBVTtBQUMxQixnQkFBZ0IsdUJBQXVCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9hbmltYXRpb24vaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmUsIGNyZWF0ZUFuaW1hdGlvblN0YXRlLCBpc0FuaW1hdGlvbkNvbnRyb2xzIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5cbmNsYXNzIEFuaW1hdGlvbkZlYXR1cmUgZXh0ZW5kcyBGZWF0dXJlIHtcbiAgICAvKipcbiAgICAgKiBXZSBkeW5hbWljYWxseSBnZW5lcmF0ZSB0aGUgQW5pbWF0aW9uU3RhdGUgbWFuYWdlciBhcyBpdCBjb250YWlucyBhIHJlZmVyZW5jZVxuICAgICAqIHRvIHRoZSB1bmRlcmx5aW5nIGFuaW1hdGlvbiBsaWJyYXJ5LiBXZSBvbmx5IHdhbnQgdG8gbG9hZCB0aGF0IGlmIHdlIGxvYWQgdGhpcyxcbiAgICAgKiBzbyBwZW9wbGUgY2FuIG9wdGlvbmFsbHkgY29kZSBzcGxpdCBpdCBvdXQgdXNpbmcgdGhlIGBtYCBjb21wb25lbnQuXG4gICAgICovXG4gICAgY29uc3RydWN0b3Iobm9kZSkge1xuICAgICAgICBzdXBlcihub2RlKTtcbiAgICAgICAgbm9kZS5hbmltYXRpb25TdGF0ZSB8fCAobm9kZS5hbmltYXRpb25TdGF0ZSA9IGNyZWF0ZUFuaW1hdGlvblN0YXRlKG5vZGUpKTtcbiAgICB9XG4gICAgdXBkYXRlQW5pbWF0aW9uQ29udHJvbHNTdWJzY3JpcHRpb24oKSB7XG4gICAgICAgIGNvbnN0IHsgYW5pbWF0ZSB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XG4gICAgICAgIGlmIChpc0FuaW1hdGlvbkNvbnRyb2xzKGFuaW1hdGUpKSB7XG4gICAgICAgICAgICB0aGlzLnVubW91bnRDb250cm9scyA9IGFuaW1hdGUuc3Vic2NyaWJlKHRoaXMubm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogU3Vic2NyaWJlIGFueSBwcm92aWRlZCBBbmltYXRpb25Db250cm9scyB0byB0aGUgY29tcG9uZW50J3MgVmlzdWFsRWxlbWVudFxuICAgICAqL1xuICAgIG1vdW50KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUFuaW1hdGlvbkNvbnRyb2xzU3Vic2NyaXB0aW9uKCk7XG4gICAgfVxuICAgIHVwZGF0ZSgpIHtcbiAgICAgICAgY29uc3QgeyBhbmltYXRlIH0gPSB0aGlzLm5vZGUuZ2V0UHJvcHMoKTtcbiAgICAgICAgY29uc3QgeyBhbmltYXRlOiBwcmV2QW5pbWF0ZSB9ID0gdGhpcy5ub2RlLnByZXZQcm9wcyB8fCB7fTtcbiAgICAgICAgaWYgKGFuaW1hdGUgIT09IHByZXZBbmltYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFuaW1hdGlvbkNvbnRyb2xzU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdW5tb3VudCgpIHtcbiAgICAgICAgdGhpcy5ub2RlLmFuaW1hdGlvblN0YXRlLnJlc2V0KCk7XG4gICAgICAgIHRoaXMudW5tb3VudENvbnRyb2xzPy4oKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IEFuaW1hdGlvbkZlYXR1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/animations.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animations: () => (/* binding */ animations)\n/* harmony export */ });\n/* harmony import */ var _animation_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/index.mjs\");\n/* harmony import */ var _animation_exit_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./animation/exit.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs\");\n\n\n\nconst animations = {\n animation: {\n Feature: _animation_index_mjs__WEBPACK_IMPORTED_MODULE_0__.AnimationFeature,\n },\n exit: {\n Feature: _animation_exit_mjs__WEBPACK_IMPORTED_MODULE_1__.ExitAnimationFeature,\n },\n};\n\n\n//# sourceMappingURL=animations.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5RDtBQUNHOztBQUU1RDtBQUNBO0FBQ0EsaUJBQWlCLGtFQUFnQjtBQUNqQyxLQUFLO0FBQ0w7QUFDQSxpQkFBaUIscUVBQW9CO0FBQ3JDLEtBQUs7QUFDTDs7QUFFc0I7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9hbmltYXRpb25zLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRpb25GZWF0dXJlIH0gZnJvbSAnLi9hbmltYXRpb24vaW5kZXgubWpzJztcbmltcG9ydCB7IEV4aXRBbmltYXRpb25GZWF0dXJlIH0gZnJvbSAnLi9hbmltYXRpb24vZXhpdC5tanMnO1xuXG5jb25zdCBhbmltYXRpb25zID0ge1xuICAgIGFuaW1hdGlvbjoge1xuICAgICAgICBGZWF0dXJlOiBBbmltYXRpb25GZWF0dXJlLFxuICAgIH0sXG4gICAgZXhpdDoge1xuICAgICAgICBGZWF0dXJlOiBFeGl0QW5pbWF0aW9uRmVhdHVyZSxcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgYW5pbWF0aW9ucyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW5pbWF0aW9ucy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/definitions.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getInitializedFeatureDefinitions: () => (/* binding */ getInitializedFeatureDefinitions),\n/* harmony export */ initFeatureDefinitions: () => (/* binding */ initFeatureDefinitions)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\");\n\n\nconst featureProps = {\n animation: [\n \"animate\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"exit\",\n \"whileInView\",\n \"whileFocus\",\n \"whileDrag\",\n ],\n exit: [\"exit\"],\n drag: [\"drag\", \"dragControls\"],\n focus: [\"whileFocus\"],\n hover: [\"whileHover\", \"onHoverStart\", \"onHoverEnd\"],\n tap: [\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"],\n pan: [\"onPan\", \"onPanStart\", \"onPanSessionStart\", \"onPanEnd\"],\n inView: [\"whileInView\", \"onViewportEnter\", \"onViewportLeave\"],\n layout: [\"layout\", \"layoutId\"],\n};\nlet isInitialized = false;\n/**\n * Initialize feature definitions with isEnabled checks.\n * This must be called before any motion components are rendered.\n */\nfunction initFeatureDefinitions() {\n if (isInitialized)\n return;\n const initialFeatureDefinitions = {};\n for (const key in featureProps) {\n initialFeatureDefinitions[key] = {\n isEnabled: (props) => featureProps[key].some((name) => !!props[name]),\n };\n }\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.setFeatureDefinitions)(initialFeatureDefinitions);\n isInitialized = true;\n}\n/**\n * Get the current feature definitions, initializing if needed.\n */\nfunction getInitializedFeatureDefinitions() {\n initFeatureDefinitions();\n return (0,motion_dom__WEBPACK_IMPORTED_MODULE_0__.getFeatureDefinitions)();\n}\n\n\n//# sourceMappingURL=definitions.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2RlZmluaXRpb25zLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMEU7O0FBRTFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxpRUFBcUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGlFQUFxQjtBQUNoQzs7QUFFb0U7QUFDcEUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy9kZWZpbml0aW9ucy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0RmVhdHVyZURlZmluaXRpb25zLCBzZXRGZWF0dXJlRGVmaW5pdGlvbnMgfSBmcm9tICdtb3Rpb24tZG9tJztcblxuY29uc3QgZmVhdHVyZVByb3BzID0ge1xuICAgIGFuaW1hdGlvbjogW1xuICAgICAgICBcImFuaW1hdGVcIixcbiAgICAgICAgXCJ2YXJpYW50c1wiLFxuICAgICAgICBcIndoaWxlSG92ZXJcIixcbiAgICAgICAgXCJ3aGlsZVRhcFwiLFxuICAgICAgICBcImV4aXRcIixcbiAgICAgICAgXCJ3aGlsZUluVmlld1wiLFxuICAgICAgICBcIndoaWxlRm9jdXNcIixcbiAgICAgICAgXCJ3aGlsZURyYWdcIixcbiAgICBdLFxuICAgIGV4aXQ6IFtcImV4aXRcIl0sXG4gICAgZHJhZzogW1wiZHJhZ1wiLCBcImRyYWdDb250cm9sc1wiXSxcbiAgICBmb2N1czogW1wid2hpbGVGb2N1c1wiXSxcbiAgICBob3ZlcjogW1wid2hpbGVIb3ZlclwiLCBcIm9uSG92ZXJTdGFydFwiLCBcIm9uSG92ZXJFbmRcIl0sXG4gICAgdGFwOiBbXCJ3aGlsZVRhcFwiLCBcIm9uVGFwXCIsIFwib25UYXBTdGFydFwiLCBcIm9uVGFwQ2FuY2VsXCJdLFxuICAgIHBhbjogW1wib25QYW5cIiwgXCJvblBhblN0YXJ0XCIsIFwib25QYW5TZXNzaW9uU3RhcnRcIiwgXCJvblBhbkVuZFwiXSxcbiAgICBpblZpZXc6IFtcIndoaWxlSW5WaWV3XCIsIFwib25WaWV3cG9ydEVudGVyXCIsIFwib25WaWV3cG9ydExlYXZlXCJdLFxuICAgIGxheW91dDogW1wibGF5b3V0XCIsIFwibGF5b3V0SWRcIl0sXG59O1xubGV0IGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbi8qKlxuICogSW5pdGlhbGl6ZSBmZWF0dXJlIGRlZmluaXRpb25zIHdpdGggaXNFbmFibGVkIGNoZWNrcy5cbiAqIFRoaXMgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFueSBtb3Rpb24gY29tcG9uZW50cyBhcmUgcmVuZGVyZWQuXG4gKi9cbmZ1bmN0aW9uIGluaXRGZWF0dXJlRGVmaW5pdGlvbnMoKSB7XG4gICAgaWYgKGlzSW5pdGlhbGl6ZWQpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBpbml0aWFsRmVhdHVyZURlZmluaXRpb25zID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmVhdHVyZVByb3BzKSB7XG4gICAgICAgIGluaXRpYWxGZWF0dXJlRGVmaW5pdGlvbnNba2V5XSA9IHtcbiAgICAgICAgICAgIGlzRW5hYmxlZDogKHByb3BzKSA9PiBmZWF0dXJlUHJvcHNba2V5XS5zb21lKChuYW1lKSA9PiAhIXByb3BzW25hbWVdKSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgc2V0RmVhdHVyZURlZmluaXRpb25zKGluaXRpYWxGZWF0dXJlRGVmaW5pdGlvbnMpO1xuICAgIGlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xufVxuLyoqXG4gKiBHZXQgdGhlIGN1cnJlbnQgZmVhdHVyZSBkZWZpbml0aW9ucywgaW5pdGlhbGl6aW5nIGlmIG5lZWRlZC5cbiAqL1xuZnVuY3Rpb24gZ2V0SW5pdGlhbGl6ZWRGZWF0dXJlRGVmaW5pdGlvbnMoKSB7XG4gICAgaW5pdEZlYXR1cmVEZWZpbml0aW9ucygpO1xuICAgIHJldHVybiBnZXRGZWF0dXJlRGVmaW5pdGlvbnMoKTtcbn1cblxuZXhwb3J0IHsgZ2V0SW5pdGlhbGl6ZWRGZWF0dXJlRGVmaW5pdGlvbnMsIGluaXRGZWF0dXJlRGVmaW5pdGlvbnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmluaXRpb25zLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/drag.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ drag: () => (/* binding */ drag)\n/* harmony export */ });\n/* harmony import */ var _gestures_drag_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../gestures/drag/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs\");\n/* harmony import */ var _gestures_pan_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../gestures/pan/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs\");\n/* harmony import */ var _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./layout/MeasureLayout.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs\");\n\n\n\n\n\nconst drag = {\n pan: {\n Feature: _gestures_pan_index_mjs__WEBPACK_IMPORTED_MODULE_0__.PanGesture,\n },\n drag: {\n Feature: _gestures_drag_index_mjs__WEBPACK_IMPORTED_MODULE_1__.DragGesture,\n ProjectionNode: motion_dom__WEBPACK_IMPORTED_MODULE_2__.HTMLProjectionNode,\n MeasureLayout: _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_3__.MeasureLayout,\n },\n};\n\n\n//# sourceMappingURL=drag.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2RyYWcubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQTREO0FBQ0Y7QUFDQztBQUNYOztBQUVoRDtBQUNBO0FBQ0EsaUJBQWlCLCtEQUFVO0FBQzNCLEtBQUs7QUFDTDtBQUNBLGlCQUFpQixpRUFBVztBQUM1Qix3QkFBd0IsMERBQWtCO0FBQzFDLHFCQUFxQjtBQUNyQixLQUFLO0FBQ0w7O0FBRWdCO0FBQ2hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvZHJhZy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHJhZ0dlc3R1cmUgfSBmcm9tICcuLi8uLi9nZXN0dXJlcy9kcmFnL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBQYW5HZXN0dXJlIH0gZnJvbSAnLi4vLi4vZ2VzdHVyZXMvcGFuL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBNZWFzdXJlTGF5b3V0IH0gZnJvbSAnLi9sYXlvdXQvTWVhc3VyZUxheW91dC5tanMnO1xuaW1wb3J0IHsgSFRNTFByb2plY3Rpb25Ob2RlIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5cbmNvbnN0IGRyYWcgPSB7XG4gICAgcGFuOiB7XG4gICAgICAgIEZlYXR1cmU6IFBhbkdlc3R1cmUsXG4gICAgfSxcbiAgICBkcmFnOiB7XG4gICAgICAgIEZlYXR1cmU6IERyYWdHZXN0dXJlLFxuICAgICAgICBQcm9qZWN0aW9uTm9kZTogSFRNTFByb2plY3Rpb25Ob2RlLFxuICAgICAgICBNZWFzdXJlTGF5b3V0LFxuICAgIH0sXG59O1xuXG5leHBvcnQgeyBkcmFnIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kcmFnLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/gestures.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ gestureAnimations: () => (/* binding */ gestureAnimations)\n/* harmony export */ });\n/* harmony import */ var _gestures_hover_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../gestures/hover.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/hover.mjs\");\n/* harmony import */ var _gestures_focus_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../gestures/focus.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/focus.mjs\");\n/* harmony import */ var _gestures_press_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../gestures/press.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/gestures/press.mjs\");\n/* harmony import */ var _viewport_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./viewport/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs\");\n\n\n\n\n\nconst gestureAnimations = {\n inView: {\n Feature: _viewport_index_mjs__WEBPACK_IMPORTED_MODULE_0__.InViewFeature,\n },\n tap: {\n Feature: _gestures_press_mjs__WEBPACK_IMPORTED_MODULE_1__.PressGesture,\n },\n focus: {\n Feature: _gestures_focus_mjs__WEBPACK_IMPORTED_MODULE_2__.FocusGesture,\n },\n hover: {\n Feature: _gestures_hover_mjs__WEBPACK_IMPORTED_MODULE_3__.HoverGesture,\n },\n};\n\n\n//# sourceMappingURL=gestures.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2dlc3R1cmVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUF3RDtBQUNBO0FBQ0E7QUFDSDs7QUFFckQ7QUFDQTtBQUNBLGlCQUFpQiw4REFBYTtBQUM5QixLQUFLO0FBQ0w7QUFDQSxpQkFBaUIsNkRBQVk7QUFDN0IsS0FBSztBQUNMO0FBQ0EsaUJBQWlCLDZEQUFZO0FBQzdCLEtBQUs7QUFDTDtBQUNBLGlCQUFpQiw2REFBWTtBQUM3QixLQUFLO0FBQ0w7O0FBRTZCO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvZ2VzdHVyZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhvdmVyR2VzdHVyZSB9IGZyb20gJy4uLy4uL2dlc3R1cmVzL2hvdmVyLm1qcyc7XG5pbXBvcnQgeyBGb2N1c0dlc3R1cmUgfSBmcm9tICcuLi8uLi9nZXN0dXJlcy9mb2N1cy5tanMnO1xuaW1wb3J0IHsgUHJlc3NHZXN0dXJlIH0gZnJvbSAnLi4vLi4vZ2VzdHVyZXMvcHJlc3MubWpzJztcbmltcG9ydCB7IEluVmlld0ZlYXR1cmUgfSBmcm9tICcuL3ZpZXdwb3J0L2luZGV4Lm1qcyc7XG5cbmNvbnN0IGdlc3R1cmVBbmltYXRpb25zID0ge1xuICAgIGluVmlldzoge1xuICAgICAgICBGZWF0dXJlOiBJblZpZXdGZWF0dXJlLFxuICAgIH0sXG4gICAgdGFwOiB7XG4gICAgICAgIEZlYXR1cmU6IFByZXNzR2VzdHVyZSxcbiAgICB9LFxuICAgIGZvY3VzOiB7XG4gICAgICAgIEZlYXR1cmU6IEZvY3VzR2VzdHVyZSxcbiAgICB9LFxuICAgIGhvdmVyOiB7XG4gICAgICAgIEZlYXR1cmU6IEhvdmVyR2VzdHVyZSxcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgZ2VzdHVyZUFuaW1hdGlvbnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdlc3R1cmVzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/layout.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ layout: () => (/* binding */ layout)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs\");\n/* harmony import */ var _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layout/MeasureLayout.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\");\n\n\n\nconst layout = {\n layout: {\n ProjectionNode: motion_dom__WEBPACK_IMPORTED_MODULE_0__.HTMLProjectionNode,\n MeasureLayout: _layout_MeasureLayout_mjs__WEBPACK_IMPORTED_MODULE_1__.MeasureLayout,\n },\n};\n\n\n//# sourceMappingURL=layout.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdEO0FBQ1c7O0FBRTNEO0FBQ0E7QUFDQSx3QkFBd0IsMERBQWtCO0FBQzFDLHFCQUFxQjtBQUNyQixLQUFLO0FBQ0w7O0FBRWtCO0FBQ2xCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9tb3Rpb24vZmVhdHVyZXMvbGF5b3V0Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIVE1MUHJvamVjdGlvbk5vZGUgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IE1lYXN1cmVMYXlvdXQgfSBmcm9tICcuL2xheW91dC9NZWFzdXJlTGF5b3V0Lm1qcyc7XG5cbmNvbnN0IGxheW91dCA9IHtcbiAgICBsYXlvdXQ6IHtcbiAgICAgICAgUHJvamVjdGlvbk5vZGU6IEhUTUxQcm9qZWN0aW9uTm9kZSxcbiAgICAgICAgTWVhc3VyZUxheW91dCxcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgbGF5b3V0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1sYXlvdXQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs ***! + \*************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MeasureLayout: () => (/* binding */ MeasureLayout)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/state.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _components_AnimatePresence_use_presence_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../../components/AnimatePresence/use-presence.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../../context/LayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../../context/SwitchLayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\");\n/* __next_internal_client_entry_do_not_use__ MeasureLayout auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\n/**\n * Track whether we've taken any snapshots yet. If not,\n * we can safely skip notification of didUpdate.\n *\n * Difficult to capture in a test but to prevent flickering\n * we must set this to true either on update or unmount.\n * Running `next-env/layout-id` in Safari will show this behaviour if broken.\n */ let hasTakenAnySnapshot = false;\nclass MeasureLayoutWithContext extends react__WEBPACK_IMPORTED_MODULE_1__.Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */ componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n if (projection) {\n if (layoutGroup.group) layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n if (hasTakenAnySnapshot) {\n projection.root.didUpdate();\n }\n projection.addEventListener(\"animationComplete\", ()=>{\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n layoutDependency: this.props.layoutDependency,\n onExitComplete: ()=>this.safeToRemove()\n });\n }\n motion_dom__WEBPACK_IMPORTED_MODULE_2__.globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const { projection } = visualElement;\n if (!projection) return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */ projection.isPresent = isPresent;\n if (prevProps.layoutDependency !== layoutDependency) {\n projection.setOptions({\n ...projection.options,\n layoutDependency\n });\n }\n hasTakenAnySnapshot = true;\n if (drag || prevProps.layoutDependency !== layoutDependency || layoutDependency === undefined || prevProps.isPresent !== isPresent) {\n projection.willUpdate();\n } else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n } else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */ motion_dom__WEBPACK_IMPORTED_MODULE_3__.frame.postRender(()=>{\n const stack = projection.getStack();\n if (!stack || !stack.members.length) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n motion_dom__WEBPACK_IMPORTED_MODULE_4__.microtask.postRender(()=>{\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n });\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext } = this.props;\n const { projection } = visualElement;\n hasTakenAnySnapshot = true;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup && layoutGroup.group) layoutGroup.group.remove(projection);\n if (promoteContext && promoteContext.deregister) promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove && safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n _s();\n const [isPresent, safeToRemove] = (0,_components_AnimatePresence_use_presence_mjs__WEBPACK_IMPORTED_MODULE_5__.usePresence)();\n const layoutGroup = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_6__.LayoutGroupContext);\n return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MeasureLayoutWithContext, {\n ...props,\n layoutGroup: layoutGroup,\n switchLayoutGroup: (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_7__.SwitchLayoutGroupContext),\n isPresent: isPresent,\n safeToRemove: safeToRemove\n });\n}\n_s(MeasureLayout, \"yNGbDR7vVbW3g5x+bSOH3lDhKv0=\", false, function() {\n return [\n _components_AnimatePresence_use_presence_mjs__WEBPACK_IMPORTED_MODULE_5__.usePresence\n ];\n});\n_c = MeasureLayout;\n //# sourceMappingURL=MeasureLayout.mjs.map\nvar _c;\n$RefreshReg$(_c, \"MeasureLayout\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC9NZWFzdXJlTGF5b3V0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JBOzs7Ozs7O0NBT0csR0FDSDtBQUVBO0lBQ0k7Ozs7S0FJRztRQUVDO1FBRUE7O21DQUcyQjs7Z0JBR25COzs7Z0JBSUE7O1lBR0o7O1lBRUE7OztnQkFHSTtnQkFDQTtZQUNIOztRQUdMLDZEQUFxQixDQUFyQjs7SUFHSjtRQUNJO1FBQ0E7UUFFQSxpQkFBaUI7UUFFakI7Ozs7OztTQU1HLEdBQ0g7UUFFQTs7OztZQUlLOzs7UUFLTCwrREFHSSxrQ0FDQTs7Ozs7UUFPSjs7O21CQUdXO2dCQUNIOzs7O2lCQUlHLEdBQ0gsNkNBQUssQ0FBTDtvQkFDSTs7OztnQkFJSjs7O1FBSVI7Ozs7O1lBTUk7WUFFQSxpREFBUyxDQUFUOzs7O1lBSUE7Ozs7UUFLSjtRQUtBOzs7O1lBTUksc0NBQ0k7WUFDSixpREFDSTs7OztRQUtSOzs7O1FBS0E7O0FBRVA7QUFFSzs7O0lBSUY7Ozs7Ozs7O0FBV0o7R0FmTTs7Ozs7S0FBQSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9zcmMvbW90aW9uL2ZlYXR1cmVzL2xheW91dC9NZWFzdXJlTGF5b3V0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyBmcmFtZSwgbWljcm90YXNrLCBnbG9iYWxQcm9qZWN0aW9uU3RhdGUsIHR5cGUgVmlzdWFsRWxlbWVudCB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCB7IENvbXBvbmVudCwgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB1c2VQcmVzZW5jZSB9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL0FuaW1hdGVQcmVzZW5jZS91c2UtcHJlc2VuY2VcIlxuaW1wb3J0IHtcbiAgICBMYXlvdXRHcm91cENvbnRleHQsXG4gICAgTGF5b3V0R3JvdXBDb250ZXh0UHJvcHMsXG59IGZyb20gXCIuLi8uLi8uLi9jb250ZXh0L0xheW91dEdyb3VwQ29udGV4dFwiXG5pbXBvcnQgeyBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vY29udGV4dC9Td2l0Y2hMYXlvdXRHcm91cENvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIlxuXG5pbnRlcmZhY2UgTWVhc3VyZUNvbnRleHRQcm9wcyB7XG4gICAgbGF5b3V0R3JvdXA6IExheW91dEdyb3VwQ29udGV4dFByb3BzXG4gICAgc3dpdGNoTGF5b3V0R3JvdXA/OiBTd2l0Y2hMYXlvdXRHcm91cENvbnRleHRcbiAgICBpc1ByZXNlbnQ6IGJvb2xlYW5cbiAgICBzYWZlVG9SZW1vdmU/OiBWb2lkRnVuY3Rpb24gfCBudWxsXG59XG5cbnR5cGUgTWVhc3VyZVByb3BzID0gTW90aW9uUHJvcHMgJlxuICAgIE1lYXN1cmVDb250ZXh0UHJvcHMgJiB7IHZpc3VhbEVsZW1lbnQ6IFZpc3VhbEVsZW1lbnQgfVxuXG4vKipcbiAqIFRyYWNrIHdoZXRoZXIgd2UndmUgdGFrZW4gYW55IHNuYXBzaG90cyB5ZXQuIElmIG5vdCxcbiAqIHdlIGNhbiBzYWZlbHkgc2tpcCBub3RpZmljYXRpb24gb2YgZGlkVXBkYXRlLlxuICpcbiAqIERpZmZpY3VsdCB0byBjYXB0dXJlIGluIGEgdGVzdCBidXQgdG8gcHJldmVudCBmbGlja2VyaW5nXG4gKiB3ZSBtdXN0IHNldCB0aGlzIHRvIHRydWUgZWl0aGVyIG9uIHVwZGF0ZSBvciB1bm1vdW50LlxuICogUnVubmluZyBgbmV4dC1lbnYvbGF5b3V0LWlkYCBpbiBTYWZhcmkgd2lsbCBzaG93IHRoaXMgYmVoYXZpb3VyIGlmIGJyb2tlbi5cbiAqL1xubGV0IGhhc1Rha2VuQW55U25hcHNob3QgPSBmYWxzZVxuXG5jbGFzcyBNZWFzdXJlTGF5b3V0V2l0aENvbnRleHQgZXh0ZW5kcyBDb21wb25lbnQ8TWVhc3VyZVByb3BzPiB7XG4gICAgLyoqXG4gICAgICogVGhpcyBvbmx5IG1vdW50cyBwcm9qZWN0aW9uIG5vZGVzIGZvciBjb21wb25lbnRzIHRoYXRcbiAgICAgKiBuZWVkIG1lYXN1cmluZywgd2UgbWlnaHQgd2FudCB0byBkbyBpdCBmb3IgYWxsIGNvbXBvbmVudHNcbiAgICAgKiBpbiBvcmRlciB0byBpbmNvcnBvcmF0ZSB0cmFuc2Zvcm1zXG4gICAgICovXG4gICAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCwgbGF5b3V0R3JvdXAsIHN3aXRjaExheW91dEdyb3VwLCBsYXlvdXRJZCB9ID1cbiAgICAgICAgICAgIHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB2aXN1YWxFbGVtZW50XG5cbiAgICAgICAgaWYgKHByb2plY3Rpb24pIHtcbiAgICAgICAgICAgIGlmIChsYXlvdXRHcm91cC5ncm91cCkgbGF5b3V0R3JvdXAuZ3JvdXAuYWRkKHByb2plY3Rpb24pXG5cbiAgICAgICAgICAgIGlmIChzd2l0Y2hMYXlvdXRHcm91cCAmJiBzd2l0Y2hMYXlvdXRHcm91cC5yZWdpc3RlciAmJiBsYXlvdXRJZCkge1xuICAgICAgICAgICAgICAgIHN3aXRjaExheW91dEdyb3VwLnJlZ2lzdGVyKHByb2plY3Rpb24pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChoYXNUYWtlbkFueVNuYXBzaG90KSB7XG4gICAgICAgICAgICAgICAgcHJvamVjdGlvbi5yb290IS5kaWRVcGRhdGUoKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwcm9qZWN0aW9uLmFkZEV2ZW50TGlzdGVuZXIoXCJhbmltYXRpb25Db21wbGV0ZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zYWZlVG9SZW1vdmUoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIHByb2plY3Rpb24uc2V0T3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgLi4ucHJvamVjdGlvbi5vcHRpb25zLFxuICAgICAgICAgICAgICAgIGxheW91dERlcGVuZGVuY3k6IHRoaXMucHJvcHMubGF5b3V0RGVwZW5kZW5jeSxcbiAgICAgICAgICAgICAgICBvbkV4aXRDb21wbGV0ZTogKCkgPT4gdGhpcy5zYWZlVG9SZW1vdmUoKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBnbG9iYWxQcm9qZWN0aW9uU3RhdGUuaGFzRXZlclVwZGF0ZWQgPSB0cnVlXG4gICAgfVxuXG4gICAgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzOiBNZWFzdXJlUHJvcHMpIHtcbiAgICAgICAgY29uc3QgeyBsYXlvdXREZXBlbmRlbmN5LCB2aXN1YWxFbGVtZW50LCBkcmFnLCBpc1ByZXNlbnQgfSA9IHRoaXMucHJvcHNcbiAgICAgICAgY29uc3QgeyBwcm9qZWN0aW9uIH0gPSB2aXN1YWxFbGVtZW50XG5cbiAgICAgICAgaWYgKCFwcm9qZWN0aW9uKSByZXR1cm4gbnVsbFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUT0RPOiBXZSB1c2UgdGhpcyBkYXRhIGluIHJlbGVnYXRlIHRvIGRldGVybWluZSB3aGV0aGVyIHRvXG4gICAgICAgICAqIHByb21vdGUgYSBwcmV2aW91cyBlbGVtZW50LiBUaGVyZSdzIG5vIGd1YXJhbnRlZSBpdHMgcHJlc2VuY2UgZGF0YVxuICAgICAgICAgKiB3aWxsIGhhdmUgdXBkYXRlZCBieSB0aGlzIHBvaW50IC0gaWYgYSBidWcgbGlrZSB0aGlzIGFyaXNlcyBpdCB3aWxsXG4gICAgICAgICAqIGhhdmUgdG8gYmUgdGhhdCB3ZSBtYXJrRm9yUmVsZWdhdGlvbiBhbmQgdGhlbiBmaW5kIGEgbmV3IGxlYWQgc29tZSBvdGhlciB3YXksXG4gICAgICAgICAqIHBlcmhhcHMgaW4gZGlkVXBkYXRlXG4gICAgICAgICAqL1xuICAgICAgICBwcm9qZWN0aW9uLmlzUHJlc2VudCA9IGlzUHJlc2VudFxuXG4gICAgICAgIGlmIChwcmV2UHJvcHMubGF5b3V0RGVwZW5kZW5jeSAhPT0gbGF5b3V0RGVwZW5kZW5jeSkge1xuICAgICAgICAgICAgcHJvamVjdGlvbi5zZXRPcHRpb25zKHtcbiAgICAgICAgICAgICAgICAuLi5wcm9qZWN0aW9uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgbGF5b3V0RGVwZW5kZW5jeSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBoYXNUYWtlbkFueVNuYXBzaG90ID0gdHJ1ZVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGRyYWcgfHxcbiAgICAgICAgICAgIHByZXZQcm9wcy5sYXlvdXREZXBlbmRlbmN5ICE9PSBsYXlvdXREZXBlbmRlbmN5IHx8XG4gICAgICAgICAgICBsYXlvdXREZXBlbmRlbmN5ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIHByZXZQcm9wcy5pc1ByZXNlbnQgIT09IGlzUHJlc2VudFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHByb2plY3Rpb24ud2lsbFVwZGF0ZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNhZmVUb1JlbW92ZSgpXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocHJldlByb3BzLmlzUHJlc2VudCAhPT0gaXNQcmVzZW50KSB7XG4gICAgICAgICAgICBpZiAoaXNQcmVzZW50KSB7XG4gICAgICAgICAgICAgICAgcHJvamVjdGlvbi5wcm9tb3RlKClcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXByb2plY3Rpb24ucmVsZWdhdGUoKSkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHRoZXJlJ3MgYW5vdGhlciBzdGFjayBtZW1iZXIgdGFraW5nIG92ZXIgZnJvbSB0aGlzIG9uZSxcbiAgICAgICAgICAgICAgICAgKiBpdCdzIGluIGNoYXJnZSBvZiB0aGUgZXhpdCBhbmltYXRpb24gYW5kIHRoZXJlZm9yZSBzaG91bGRcbiAgICAgICAgICAgICAgICAgKiBiZSBpbiBjaGFyZ2Ugb2YgdGhlIHNhZmUgdG8gcmVtb3ZlLiBPdGhlcndpc2Ugd2UgY2FsbCBpdCBoZXJlLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGZyYW1lLnBvc3RSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFjayA9IHByb2plY3Rpb24uZ2V0U3RhY2soKVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXN0YWNrIHx8ICFzdGFjay5tZW1iZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zYWZlVG9SZW1vdmUoKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgICAgICBjb25zdCB7IHByb2plY3Rpb24gfSA9IHRoaXMucHJvcHMudmlzdWFsRWxlbWVudFxuICAgICAgICBpZiAocHJvamVjdGlvbikge1xuICAgICAgICAgICAgcHJvamVjdGlvbi5yb290IS5kaWRVcGRhdGUoKVxuXG4gICAgICAgICAgICBtaWNyb3Rhc2sucG9zdFJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFwcm9qZWN0aW9uLmN1cnJlbnRBbmltYXRpb24gJiYgcHJvamVjdGlvbi5pc0xlYWQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNhZmVUb1JlbW92ZSgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LFxuICAgICAgICAgICAgbGF5b3V0R3JvdXAsXG4gICAgICAgICAgICBzd2l0Y2hMYXlvdXRHcm91cDogcHJvbW90ZUNvbnRleHQsXG4gICAgICAgIH0gPSB0aGlzLnByb3BzXG4gICAgICAgIGNvbnN0IHsgcHJvamVjdGlvbiB9ID0gdmlzdWFsRWxlbWVudFxuXG4gICAgICAgIGhhc1Rha2VuQW55U25hcHNob3QgPSB0cnVlXG5cbiAgICAgICAgaWYgKHByb2plY3Rpb24pIHtcbiAgICAgICAgICAgIHByb2plY3Rpb24uc2NoZWR1bGVDaGVja0FmdGVyVW5tb3VudCgpXG4gICAgICAgICAgICBpZiAobGF5b3V0R3JvdXAgJiYgbGF5b3V0R3JvdXAuZ3JvdXApXG4gICAgICAgICAgICAgICAgbGF5b3V0R3JvdXAuZ3JvdXAucmVtb3ZlKHByb2plY3Rpb24pXG4gICAgICAgICAgICBpZiAocHJvbW90ZUNvbnRleHQgJiYgcHJvbW90ZUNvbnRleHQuZGVyZWdpc3RlcilcbiAgICAgICAgICAgICAgICBwcm9tb3RlQ29udGV4dC5kZXJlZ2lzdGVyKHByb2plY3Rpb24pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzYWZlVG9SZW1vdmUoKSB7XG4gICAgICAgIGNvbnN0IHsgc2FmZVRvUmVtb3ZlIH0gPSB0aGlzLnByb3BzXG4gICAgICAgIHNhZmVUb1JlbW92ZSAmJiBzYWZlVG9SZW1vdmUoKVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNZWFzdXJlTGF5b3V0KFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wcyAmIHsgdmlzdWFsRWxlbWVudDogVmlzdWFsRWxlbWVudCB9XG4pIHtcbiAgICBjb25zdCBbaXNQcmVzZW50LCBzYWZlVG9SZW1vdmVdID0gdXNlUHJlc2VuY2UoKVxuICAgIGNvbnN0IGxheW91dEdyb3VwID0gdXNlQ29udGV4dChMYXlvdXRHcm91cENvbnRleHQpXG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8TWVhc3VyZUxheW91dFdpdGhDb250ZXh0XG4gICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICBsYXlvdXRHcm91cD17bGF5b3V0R3JvdXB9XG4gICAgICAgICAgICBzd2l0Y2hMYXlvdXRHcm91cD17dXNlQ29udGV4dChTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQpfVxuICAgICAgICAgICAgaXNQcmVzZW50PXtpc1ByZXNlbnR9XG4gICAgICAgICAgICBzYWZlVG9SZW1vdmU9e3NhZmVUb1JlbW92ZX1cbiAgICAgICAgLz5cbiAgICApXG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/load-features.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ loadFeatures: () => (/* binding */ loadFeatures)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\");\n/* harmony import */ var _definitions_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./definitions.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\");\n\n\n\nfunction loadFeatures(features) {\n const featureDefinitions = (0,_definitions_mjs__WEBPACK_IMPORTED_MODULE_0__.getInitializedFeatureDefinitions)();\n for (const key in features) {\n featureDefinitions[key] = {\n ...featureDefinitions[key],\n ...features[key],\n };\n }\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.setFeatureDefinitions)(featureDefinitions);\n}\n\n\n//# sourceMappingURL=load-features.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xvYWQtZmVhdHVyZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFtRDtBQUNrQjs7QUFFckU7QUFDQSwrQkFBK0Isa0ZBQWdDO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksaUVBQXFCO0FBQ3pCOztBQUV3QjtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL2xvYWQtZmVhdHVyZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldEZlYXR1cmVEZWZpbml0aW9ucyB9IGZyb20gJ21vdGlvbi1kb20nO1xuaW1wb3J0IHsgZ2V0SW5pdGlhbGl6ZWRGZWF0dXJlRGVmaW5pdGlvbnMgfSBmcm9tICcuL2RlZmluaXRpb25zLm1qcyc7XG5cbmZ1bmN0aW9uIGxvYWRGZWF0dXJlcyhmZWF0dXJlcykge1xuICAgIGNvbnN0IGZlYXR1cmVEZWZpbml0aW9ucyA9IGdldEluaXRpYWxpemVkRmVhdHVyZURlZmluaXRpb25zKCk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gZmVhdHVyZXMpIHtcbiAgICAgICAgZmVhdHVyZURlZmluaXRpb25zW2tleV0gPSB7XG4gICAgICAgICAgICAuLi5mZWF0dXJlRGVmaW5pdGlvbnNba2V5XSxcbiAgICAgICAgICAgIC4uLmZlYXR1cmVzW2tleV0sXG4gICAgICAgIH07XG4gICAgfVxuICAgIHNldEZlYXR1cmVEZWZpbml0aW9ucyhmZWF0dXJlRGVmaW5pdGlvbnMpO1xufVxuXG5leHBvcnQgeyBsb2FkRmVhdHVyZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxvYWQtZmVhdHVyZXMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ InViewFeature: () => (/* binding */ InViewFeature)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\");\n/* harmony import */ var _observers_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./observers.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs\");\n\n\n\nconst thresholdNames = {\n some: 0,\n all: 1,\n};\nclass InViewFeature extends motion_dom__WEBPACK_IMPORTED_MODULE_0__.Feature {\n constructor() {\n super(...arguments);\n this.hasEnteredView = false;\n this.isInView = false;\n }\n startObserver() {\n this.unmount();\n const { viewport = {} } = this.node.getProps();\n const { root, margin: rootMargin, amount = \"some\", once } = viewport;\n const options = {\n root: root ? root.current : undefined,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n const onIntersectionUpdate = (entry) => {\n const { isIntersecting } = entry;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (this.isInView === isIntersecting)\n return;\n this.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && this.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n this.hasEnteredView = true;\n }\n if (this.node.animationState) {\n this.node.animationState.setActive(\"whileInView\", isIntersecting);\n }\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n const { onViewportEnter, onViewportLeave } = this.node.getProps();\n const callback = isIntersecting ? onViewportEnter : onViewportLeave;\n callback && callback(entry);\n };\n return (0,_observers_mjs__WEBPACK_IMPORTED_MODULE_1__.observeIntersection)(this.node.current, options, onIntersectionUpdate);\n }\n mount() {\n this.startObserver();\n }\n update() {\n if (typeof IntersectionObserver === \"undefined\")\n return;\n const { props, prevProps } = this.node;\n const hasOptionsChanged = [\"amount\", \"margin\", \"root\"].some(hasViewportOptionChanged(props, prevProps));\n if (hasOptionsChanged) {\n this.startObserver();\n }\n }\n unmount() { }\n}\nfunction hasViewportOptionChanged({ viewport = {} }, { viewport: prevViewport = {} } = {}) {\n return (name) => viewport[name] !== prevViewport[name];\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL3ZpZXdwb3J0L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBcUM7QUFDaUI7O0FBRXREO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLCtDQUFPO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGdCQUFnQjtBQUNoQyxnQkFBZ0Isa0RBQWtEO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixpQkFBaUI7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQ0FBbUM7QUFDdkQ7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtRUFBbUI7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbUJBQW1CO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLGVBQWUsSUFBSSw4QkFBOEIsSUFBSTtBQUN6RjtBQUNBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL3ZpZXdwb3J0L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnbW90aW9uLWRvbSc7XG5pbXBvcnQgeyBvYnNlcnZlSW50ZXJzZWN0aW9uIH0gZnJvbSAnLi9vYnNlcnZlcnMubWpzJztcblxuY29uc3QgdGhyZXNob2xkTmFtZXMgPSB7XG4gICAgc29tZTogMCxcbiAgICBhbGw6IDEsXG59O1xuY2xhc3MgSW5WaWV3RmVhdHVyZSBleHRlbmRzIEZlYXR1cmUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlciguLi5hcmd1bWVudHMpO1xuICAgICAgICB0aGlzLmhhc0VudGVyZWRWaWV3ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNJblZpZXcgPSBmYWxzZTtcbiAgICB9XG4gICAgc3RhcnRPYnNlcnZlcigpIHtcbiAgICAgICAgdGhpcy51bm1vdW50KCk7XG4gICAgICAgIGNvbnN0IHsgdmlld3BvcnQgPSB7fSB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XG4gICAgICAgIGNvbnN0IHsgcm9vdCwgbWFyZ2luOiByb290TWFyZ2luLCBhbW91bnQgPSBcInNvbWVcIiwgb25jZSB9ID0gdmlld3BvcnQ7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICByb290OiByb290ID8gcm9vdC5jdXJyZW50IDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcm9vdE1hcmdpbixcbiAgICAgICAgICAgIHRocmVzaG9sZDogdHlwZW9mIGFtb3VudCA9PT0gXCJudW1iZXJcIiA/IGFtb3VudCA6IHRocmVzaG9sZE5hbWVzW2Ftb3VudF0sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uSW50ZXJzZWN0aW9uVXBkYXRlID0gKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGlzSW50ZXJzZWN0aW5nIH0gPSBlbnRyeTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhlcmUncyBiZWVuIG5vIGNoYW5nZSBpbiB0aGUgdmlld3BvcnQgc3RhdGUsIGVhcmx5IHJldHVybi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNJblZpZXcgPT09IGlzSW50ZXJzZWN0aW5nKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuaXNJblZpZXcgPSBpc0ludGVyc2VjdGluZztcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSGFuZGxlIGhhc0VudGVyZWRWaWV3LiBJZiB0aGlzIGlzIG9ubHkgbWVhbnQgdG8gcnVuIG9uY2UsIGFuZFxuICAgICAgICAgICAgICogZWxlbWVudCBpc24ndCB2aXNpYmxlLCBlYXJseSByZXR1cm4uIE90aGVyd2lzZSBzZXQgaGFzRW50ZXJlZFZpZXcgdG8gdHJ1ZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKG9uY2UgJiYgIWlzSW50ZXJzZWN0aW5nICYmIHRoaXMuaGFzRW50ZXJlZFZpZXcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc0ludGVyc2VjdGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuaGFzRW50ZXJlZFZpZXcgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5hbmltYXRpb25TdGF0ZS5zZXRBY3RpdmUoXCJ3aGlsZUluVmlld1wiLCBpc0ludGVyc2VjdGluZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFVzZSB0aGUgbGF0ZXN0IGNvbW1pdHRlZCBwcm9wcyByYXRoZXIgdGhhbiB0aGUgb25lcyBpbiBzY29wZVxuICAgICAgICAgICAgICogd2hlbiB0aGlzIG9ic2VydmVyIGlzIGNyZWF0ZWRcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgeyBvblZpZXdwb3J0RW50ZXIsIG9uVmlld3BvcnRMZWF2ZSB9ID0gdGhpcy5ub2RlLmdldFByb3BzKCk7XG4gICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IGlzSW50ZXJzZWN0aW5nID8gb25WaWV3cG9ydEVudGVyIDogb25WaWV3cG9ydExlYXZlO1xuICAgICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soZW50cnkpO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gb2JzZXJ2ZUludGVyc2VjdGlvbih0aGlzLm5vZGUuY3VycmVudCwgb3B0aW9ucywgb25JbnRlcnNlY3Rpb25VcGRhdGUpO1xuICAgIH1cbiAgICBtb3VudCgpIHtcbiAgICAgICAgdGhpcy5zdGFydE9ic2VydmVyKCk7XG4gICAgfVxuICAgIHVwZGF0ZSgpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlciA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyBwcm9wcywgcHJldlByb3BzIH0gPSB0aGlzLm5vZGU7XG4gICAgICAgIGNvbnN0IGhhc09wdGlvbnNDaGFuZ2VkID0gW1wiYW1vdW50XCIsIFwibWFyZ2luXCIsIFwicm9vdFwiXS5zb21lKGhhc1ZpZXdwb3J0T3B0aW9uQ2hhbmdlZChwcm9wcywgcHJldlByb3BzKSk7XG4gICAgICAgIGlmIChoYXNPcHRpb25zQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5zdGFydE9ic2VydmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdW5tb3VudCgpIHsgfVxufVxuZnVuY3Rpb24gaGFzVmlld3BvcnRPcHRpb25DaGFuZ2VkKHsgdmlld3BvcnQgPSB7fSB9LCB7IHZpZXdwb3J0OiBwcmV2Vmlld3BvcnQgPSB7fSB9ID0ge30pIHtcbiAgICByZXR1cm4gKG5hbWUpID0+IHZpZXdwb3J0W25hbWVdICE9PSBwcmV2Vmlld3BvcnRbbmFtZV07XG59XG5cbmV4cG9ydCB7IEluVmlld0ZlYXR1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ observeIntersection: () => (/* binding */ observeIntersection)\n/* harmony export */ });\n/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nconst observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nconst observers = new WeakMap();\nconst fireObserverCallback = (entry) => {\n const callback = observerCallbacks.get(entry.target);\n callback && callback(entry);\n};\nconst fireAllObserverCallbacks = (entries) => {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver({ root, ...options }) {\n const lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n const rootObservers = observers.get(lookupRoot);\n const key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, { root, ...options });\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n const rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return () => {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\n\n//# sourceMappingURL=observers.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2ZlYXR1cmVzL3ZpZXdwb3J0L29ic2VydmVycy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLGtCQUFrQjtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrRkFBa0Ysa0JBQWtCO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFK0I7QUFDL0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL21vdGlvbi9mZWF0dXJlcy92aWV3cG9ydC9vYnNlcnZlcnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTWFwIGFuIEludGVyc2VjdGlvbkhhbmRsZXIgY2FsbGJhY2sgdG8gYW4gZWxlbWVudC4gV2Ugb25seSBldmVyIG1ha2Ugb25lIGhhbmRsZXIgZm9yIG9uZVxuICogZWxlbWVudCwgc28gZXZlbiB0aG91Z2ggdGhlc2UgaGFuZGxlcnMgbWlnaHQgYWxsIGJlIHRyaWdnZXJlZCBieSBkaWZmZXJlbnRcbiAqIG9ic2VydmVycywgd2UgY2FuIGtlZXAgdGhlbSBpbiB0aGUgc2FtZSBtYXAuXG4gKi9cbmNvbnN0IG9ic2VydmVyQ2FsbGJhY2tzID0gbmV3IFdlYWtNYXAoKTtcbi8qKlxuICogTXVsdGlwbGUgb2JzZXJ2ZXJzIGNhbiBiZSBjcmVhdGVkIGZvciBtdWx0aXBsZSBlbGVtZW50L2RvY3VtZW50IHJvb3RzLiBFYWNoIHdpdGhcbiAqIGRpZmZlcmVudCBzZXR0aW5ncy4gU28gaGVyZSB3ZSBzdG9yZSBkaWN0aW9uYXJpZXMgb2Ygb2JzZXJ2ZXJzIHRvIGVhY2ggcm9vdCxcbiAqIHVzaW5nIHNlcmlhbGlzZWQgc2V0dGluZ3MgKHRocmVzaG9sZC9tYXJnaW4pIGFzIGxvb2t1cCBrZXlzLlxuICovXG5jb25zdCBvYnNlcnZlcnMgPSBuZXcgV2Vha01hcCgpO1xuY29uc3QgZmlyZU9ic2VydmVyQ2FsbGJhY2sgPSAoZW50cnkpID0+IHtcbiAgICBjb25zdCBjYWxsYmFjayA9IG9ic2VydmVyQ2FsbGJhY2tzLmdldChlbnRyeS50YXJnZXQpO1xuICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKGVudHJ5KTtcbn07XG5jb25zdCBmaXJlQWxsT2JzZXJ2ZXJDYWxsYmFja3MgPSAoZW50cmllcykgPT4ge1xuICAgIGVudHJpZXMuZm9yRWFjaChmaXJlT2JzZXJ2ZXJDYWxsYmFjayk7XG59O1xuZnVuY3Rpb24gaW5pdEludGVyc2VjdGlvbk9ic2VydmVyKHsgcm9vdCwgLi4ub3B0aW9ucyB9KSB7XG4gICAgY29uc3QgbG9va3VwUm9vdCA9IHJvb3QgfHwgZG9jdW1lbnQ7XG4gICAgLyoqXG4gICAgICogSWYgd2UgZG9uJ3QgaGF2ZSBhbiBvYnNlcnZlciBsb29rdXAgbWFwIGZvciB0aGlzIHJvb3QsIGNyZWF0ZSBvbmUuXG4gICAgICovXG4gICAgaWYgKCFvYnNlcnZlcnMuaGFzKGxvb2t1cFJvb3QpKSB7XG4gICAgICAgIG9ic2VydmVycy5zZXQobG9va3VwUm9vdCwge30pO1xuICAgIH1cbiAgICBjb25zdCByb290T2JzZXJ2ZXJzID0gb2JzZXJ2ZXJzLmdldChsb29rdXBSb290KTtcbiAgICBjb25zdCBrZXkgPSBKU09OLnN0cmluZ2lmeShvcHRpb25zKTtcbiAgICAvKipcbiAgICAgKiBJZiB3ZSBkb24ndCBoYXZlIGFuIG9ic2VydmVyIGZvciB0aGlzIGNvbWJpbmF0aW9uIG9mIHJvb3QgYW5kIHNldHRpbmdzLFxuICAgICAqIGNyZWF0ZSBvbmUuXG4gICAgICovXG4gICAgaWYgKCFyb290T2JzZXJ2ZXJzW2tleV0pIHtcbiAgICAgICAgcm9vdE9ic2VydmVyc1trZXldID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZpcmVBbGxPYnNlcnZlckNhbGxiYWNrcywgeyByb290LCAuLi5vcHRpb25zIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcm9vdE9ic2VydmVyc1trZXldO1xufVxuZnVuY3Rpb24gb2JzZXJ2ZUludGVyc2VjdGlvbihlbGVtZW50LCBvcHRpb25zLCBjYWxsYmFjaykge1xuICAgIGNvbnN0IHJvb3RJbnRlcmVzZWN0aW9uT2JzZXJ2ZXIgPSBpbml0SW50ZXJzZWN0aW9uT2JzZXJ2ZXIob3B0aW9ucyk7XG4gICAgb2JzZXJ2ZXJDYWxsYmFja3Muc2V0KGVsZW1lbnQsIGNhbGxiYWNrKTtcbiAgICByb290SW50ZXJlc2VjdGlvbk9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgb2JzZXJ2ZXJDYWxsYmFja3MuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICByb290SW50ZXJlc2VjdGlvbk9ic2VydmVyLnVub2JzZXJ2ZShlbGVtZW50KTtcbiAgICB9O1xufVxuXG5leHBvcnQgeyBvYnNlcnZlSW50ZXJzZWN0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1vYnNlcnZlcnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/index.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/index.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createMotionComponent: () => (/* binding */ createMotionComponent)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../context/LayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs\");\n/* harmony import */ var _context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../context/LazyContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../context/MotionConfigContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../context/MotionContext/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_MotionContext_create_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../context/MotionContext/create.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs\");\n/* harmony import */ var _render_dom_use_render_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../render/dom/use-render.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs\");\n/* harmony import */ var _render_dom_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../render/dom/utils/is-svg-component.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n/* harmony import */ var _render_html_use_html_visual_state_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../render/html/use-html-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs\");\n/* harmony import */ var _render_svg_use_svg_visual_state_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../render/svg/use-svg-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs\");\n/* harmony import */ var _utils_is_browser_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/is-browser.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\");\n/* harmony import */ var _features_definitions_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./features/definitions.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs\");\n/* harmony import */ var _features_load_features_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./features/load-features.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/load-features.mjs\");\n/* harmony import */ var _utils_symbol_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utils/symbol.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs\");\n/* harmony import */ var _utils_use_motion_ref_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/use-motion-ref.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs\");\n/* harmony import */ var _utils_use_visual_element_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/use-visual-element.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs\");\n/* __next_internal_client_entry_do_not_use__ createMotionComponent auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */ function createMotionComponent(Component) {\n let { forwardMotionProps = false, type } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, preloadedFeatures = arguments.length > 2 ? arguments[2] : void 0, createVisualElement = arguments.length > 3 ? arguments[3] : void 0;\n var _s = $RefreshSig$();\n preloadedFeatures && (0,_features_load_features_mjs__WEBPACK_IMPORTED_MODULE_2__.loadFeatures)(preloadedFeatures);\n /**\n * Determine whether to use SVG or HTML rendering based on:\n * 1. Explicit `type` option (highest priority)\n * 2. Auto-detection via `isSVGComponent`\n */ const isSVG = type ? type === \"svg\" : (0,_render_dom_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_3__.isSVGComponent)(Component);\n const useVisualState = isSVG ? _render_svg_use_svg_visual_state_mjs__WEBPACK_IMPORTED_MODULE_4__.useSVGVisualState : _render_html_use_html_visual_state_mjs__WEBPACK_IMPORTED_MODULE_5__.useHTMLVisualState;\n function MotionDOMComponent(props, externalRef) {\n _s();\n /**\n * If we need to measure the element we load this functionality in a\n * separate class component in order to gain access to getSnapshotBeforeUpdate.\n */ let MeasureLayout;\n const configAndProps = {\n ...(0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_6__.MotionConfigContext),\n ...props,\n layoutId: useLayoutId(props)\n };\n const { isStatic } = configAndProps;\n const context = (0,_context_MotionContext_create_mjs__WEBPACK_IMPORTED_MODULE_7__.useCreateMotionContext)(props);\n const visualState = useVisualState(props, isStatic);\n if (!isStatic && _utils_is_browser_mjs__WEBPACK_IMPORTED_MODULE_8__.isBrowser) {\n useStrictMode(configAndProps, preloadedFeatures);\n const layoutProjection = getProjectionFunctionality(configAndProps);\n MeasureLayout = layoutProjection.MeasureLayout;\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */ context.visualElement = (0,_utils_use_visual_element_mjs__WEBPACK_IMPORTED_MODULE_9__.useVisualElement)(Component, visualState, configAndProps, createVisualElement, layoutProjection.ProjectionNode, isSVG);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */ return (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_10__.MotionContext.Provider, {\n value: context,\n children: [\n MeasureLayout && context.visualElement ? (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(MeasureLayout, {\n visualElement: context.visualElement,\n ...configAndProps\n }) : null,\n (0,_render_dom_use_render_mjs__WEBPACK_IMPORTED_MODULE_11__.useRender)(Component, props, (0,_utils_use_motion_ref_mjs__WEBPACK_IMPORTED_MODULE_12__.useMotionRef)(visualState, context.visualElement, externalRef), visualState, isStatic, forwardMotionProps, isSVG)\n ]\n });\n }\n _s(MotionDOMComponent, \"OzmmWP8E2WLE0LhHHUY21ioDbYk=\", false, function() {\n return [\n useLayoutId,\n _context_MotionContext_create_mjs__WEBPACK_IMPORTED_MODULE_7__.useCreateMotionContext,\n useVisualState,\n _utils_use_motion_ref_mjs__WEBPACK_IMPORTED_MODULE_12__.useMotionRef,\n _render_dom_use_render_mjs__WEBPACK_IMPORTED_MODULE_11__.useRender\n ];\n });\n var _Component_displayName, _ref;\n MotionDOMComponent.displayName = \"motion.\".concat(typeof Component === \"string\" ? Component : \"create(\".concat((_ref = (_Component_displayName = Component.displayName) !== null && _Component_displayName !== void 0 ? _Component_displayName : Component.name) !== null && _ref !== void 0 ? _ref : \"\", \")\"));\n const ForwardRefMotionComponent = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(MotionDOMComponent);\n ForwardRefMotionComponent[_utils_symbol_mjs__WEBPACK_IMPORTED_MODULE_13__.motionComponentSymbol] = Component;\n return ForwardRefMotionComponent;\n}\nfunction useLayoutId(param) {\n let { layoutId } = param;\n _s();\n const layoutGroupId = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_14__.LayoutGroupContext).id;\n return layoutGroupId && layoutId !== undefined ? layoutGroupId + \"-\" + layoutId : layoutId;\n}\n_s(useLayoutId, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\nfunction useStrictMode(configAndProps, preloadedFeatures) {\n _s1();\n const isStrict = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_15__.LazyContext).strict;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */ if ( true && preloadedFeatures && isStrict) {\n const strictMessage = \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\";\n configAndProps.ignoreStrict ? (0,motion_utils__WEBPACK_IMPORTED_MODULE_16__.warning)(false, strictMessage, \"lazy-strict-mode\") : (0,motion_utils__WEBPACK_IMPORTED_MODULE_16__.invariant)(false, strictMessage, \"lazy-strict-mode\");\n }\n}\n_s1(useStrictMode, \"gDsCjeeItUuvgOWf1v4qoK9RF6k=\");\nfunction getProjectionFunctionality(props) {\n const featureDefinitions = (0,_features_definitions_mjs__WEBPACK_IMPORTED_MODULE_17__.getInitializedFeatureDefinitions)();\n const { drag, layout } = featureDefinitions;\n if (!drag && !layout) return {};\n const combined = {\n ...drag,\n ...layout\n };\n return {\n MeasureLayout: (drag === null || drag === void 0 ? void 0 : drag.isEnabled(props)) || (layout === null || layout === void 0 ? void 0 : layout.isEnabled(props)) ? combined.MeasureLayout : undefined,\n ProjectionNode: combined.ProjectionNode\n };\n}\n //# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThEQTs7Ozs7Ozs7Q0FRRzs7O0lBVUM7SUFFQTs7OztLQUlHLEdBQ0g7O0lBR0E7O1FBSUk7OztTQUdHLEdBQ0g7UUFFQTs7WUFFSTtZQUNBOztRQUdKO1FBRUE7O1FBSUE7WUFDSTtZQUVBO1lBQ0E7WUFFQTs7Ozs7YUFLRyxHQUNIOztRQVVKOzs7U0FHRyxHQUNIO1lBQUE7WUFBQTtnQkFBQTtvQkFBQTtvQkFBQTtnQkFBQTtnQkFBQTthQUFBO1FBQUE7O09BaERKOztZQWFRO1lBS0o7O1lBOEJBO1lBQUE7OztRQTJCSTtJQUhSLDJDQUdRLE9BSFIsZ0NBRVEsWUFDQTtJQUdSO0lBQ0U7SUFFRjtBQUNKO0FBRUE7UUFBQTs7O0lBRUksaURBQ0k7QUFFUjtHQUxBO0FBT0E7OztJQU1JOzs7S0FHRyxHQUNILGtDQUdJOztRQUlBOztBQUlSO0lBckJBO0FBdUJBO0lBQ0k7SUFDQTtJQUVBLHNCQUFzQjs7Ozs7O1FBS2xCLDJMQUdROzs7QUFHaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL3NyYy9tb3Rpb24vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IGludmFyaWFudCwgd2FybmluZyB9IGZyb20gXCJtb3Rpb24tdXRpbHNcIlxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGZvcndhcmRSZWYsIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTGF5b3V0R3JvdXBDb250ZXh0IH0gZnJvbSBcIi4uL2NvbnRleHQvTGF5b3V0R3JvdXBDb250ZXh0XCJcbmltcG9ydCB7IExhenlDb250ZXh0IH0gZnJvbSBcIi4uL2NvbnRleHQvTGF6eUNvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uQ29uZmlnQ29udGV4dCB9IGZyb20gXCIuLi9jb250ZXh0L01vdGlvbkNvbmZpZ0NvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uQ29udGV4dCB9IGZyb20gXCIuLi9jb250ZXh0L01vdGlvbkNvbnRleHRcIlxuaW1wb3J0IHsgdXNlQ3JlYXRlTW90aW9uQ29udGV4dCB9IGZyb20gXCIuLi9jb250ZXh0L01vdGlvbkNvbnRleHQvY3JlYXRlXCJcbmltcG9ydCB7IERPTU1vdGlvbkNvbXBvbmVudHMgfSBmcm9tIFwiLi4vcmVuZGVyL2RvbS90eXBlc1wiXG5pbXBvcnQgeyB1c2VSZW5kZXIgfSBmcm9tIFwiLi4vcmVuZGVyL2RvbS91c2UtcmVuZGVyXCJcbmltcG9ydCB7IGlzU1ZHQ29tcG9uZW50IH0gZnJvbSBcIi4uL3JlbmRlci9kb20vdXRpbHMvaXMtc3ZnLWNvbXBvbmVudFwiXG5pbXBvcnQgeyBIVE1MUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi4vcmVuZGVyL2h0bWwvdHlwZXNcIlxuaW1wb3J0IHsgdXNlSFRNTFZpc3VhbFN0YXRlIH0gZnJvbSBcIi4uL3JlbmRlci9odG1sL3VzZS1odG1sLXZpc3VhbC1zdGF0ZVwiXG5pbXBvcnQgeyBTVkdSZW5kZXJTdGF0ZSB9IGZyb20gXCIuLi9yZW5kZXIvc3ZnL3R5cGVzXCJcbmltcG9ydCB7IHVzZVNWR1Zpc3VhbFN0YXRlIH0gZnJvbSBcIi4uL3JlbmRlci9zdmcvdXNlLXN2Zy12aXN1YWwtc3RhdGVcIlxuaW1wb3J0IHsgQ3JlYXRlVmlzdWFsRWxlbWVudCB9IGZyb20gXCIuLi9yZW5kZXIvdHlwZXNcIlxuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSBcIi4uL3V0aWxzL2lzLWJyb3dzZXJcIlxuaW1wb3J0IHsgZ2V0SW5pdGlhbGl6ZWRGZWF0dXJlRGVmaW5pdGlvbnMgfSBmcm9tIFwiLi9mZWF0dXJlcy9kZWZpbml0aW9uc1wiXG5pbXBvcnQgeyBsb2FkRmVhdHVyZXMgfSBmcm9tIFwiLi9mZWF0dXJlcy9sb2FkLWZlYXR1cmVzXCJcbmltcG9ydCB7IEZlYXR1cmVCdW5kbGUsIEZlYXR1cmVQYWNrYWdlcyB9IGZyb20gXCIuL2ZlYXR1cmVzL3R5cGVzXCJcbmltcG9ydCB7IE1vdGlvblByb3BzIH0gZnJvbSBcIi4vdHlwZXNcIlxuaW1wb3J0IHsgbW90aW9uQ29tcG9uZW50U3ltYm9sIH0gZnJvbSBcIi4vdXRpbHMvc3ltYm9sXCJcbmltcG9ydCB7IHVzZU1vdGlvblJlZiB9IGZyb20gXCIuL3V0aWxzL3VzZS1tb3Rpb24tcmVmXCJcbmltcG9ydCB7IHVzZVZpc3VhbEVsZW1lbnQgfSBmcm9tIFwiLi91dGlscy91c2UtdmlzdWFsLWVsZW1lbnRcIlxuXG5leHBvcnQgaW50ZXJmYWNlIE1vdGlvbkNvbXBvbmVudENvbmZpZzxcbiAgICBUYWdOYW1lIGV4dGVuZHMga2V5b2YgRE9NTW90aW9uQ29tcG9uZW50cyB8IHN0cmluZyA9IFwiZGl2XCJcbj4ge1xuICAgIHByZWxvYWRlZEZlYXR1cmVzPzogRmVhdHVyZUJ1bmRsZVxuICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQ/OiBDcmVhdGVWaXN1YWxFbGVtZW50XG4gICAgQ29tcG9uZW50OiBUYWdOYW1lIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjx1bmtub3duPj5cbiAgICBmb3J3YXJkTW90aW9uUHJvcHM/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIE1vdGlvbkNvbXBvbmVudFByb3BzPFByb3BzPiA9IHtcbiAgICBbSyBpbiBFeGNsdWRlPGtleW9mIFByb3BzLCBrZXlvZiBNb3Rpb25Qcm9wcz5dPzogUHJvcHNbS11cbn0gJiBNb3Rpb25Qcm9wc1xuXG5leHBvcnQgdHlwZSBNb3Rpb25Db21wb25lbnQ8VCwgUD4gPSBUIGV4dGVuZHMga2V5b2YgRE9NTW90aW9uQ29tcG9uZW50c1xuICAgID8gRE9NTW90aW9uQ29tcG9uZW50c1tUXVxuICAgIDogUmVhY3QuQ29tcG9uZW50VHlwZTxcbiAgICAgICAgICBPbWl0PE1vdGlvbkNvbXBvbmVudFByb3BzPFA+LCBcImNoaWxkcmVuXCI+ICYge1xuICAgICAgICAgICAgICBjaGlsZHJlbj86IFwiY2hpbGRyZW5cIiBleHRlbmRzIGtleW9mIFBcbiAgICAgICAgICAgICAgICAgID8gUFtcImNoaWxkcmVuXCJdIHwgTW90aW9uQ29tcG9uZW50UHJvcHM8UD5bXCJjaGlsZHJlblwiXVxuICAgICAgICAgICAgICAgICAgOiBNb3Rpb25Db21wb25lbnRQcm9wczxQPltcImNoaWxkcmVuXCJdXG4gICAgICAgICAgfVxuICAgICAgPlxuXG5leHBvcnQgaW50ZXJmYWNlIE1vdGlvbkNvbXBvbmVudE9wdGlvbnMge1xuICAgIGZvcndhcmRNb3Rpb25Qcm9wcz86IGJvb2xlYW5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgdGhlIGNvbXBvbmVudCByZW5kZXJzIGFuIEhUTUwgb3IgU1ZHIGVsZW1lbnQuXG4gICAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiB3cmFwcGluZyBjdXN0b20gU1ZHIGNvbXBvbmVudHMgdGhhdCBuZWVkXG4gICAgICogU1ZHLXNwZWNpZmljIGF0dHJpYnV0ZSBoYW5kbGluZyAobGlrZSB2aWV3Qm94IGFuaW1hdGlvbikuXG4gICAgICogQnkgZGVmYXVsdCwgTW90aW9uIGF1dG8tZGV0ZWN0cyBiYXNlZCBvbiB0aGUgY29tcG9uZW50IG5hbWUsXG4gICAgICogYnV0IGN1c3RvbSBSZWFjdCBjb21wb25lbnRzIGFyZSBhbHdheXMgdHJlYXRlZCBhcyBIVE1MLlxuICAgICAqL1xuICAgIHR5cGU/OiBcImh0bWxcIiB8IFwic3ZnXCJcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBgbW90aW9uYCBjb21wb25lbnQuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBhY2NlcHRzIGEgQ29tcG9uZW50IGFyZ3VtZW50LCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIChpZSBcImRpdlwiXG4gKiBmb3IgYG1vdGlvbi5kaXZgKSwgb3IgYW4gYWN0dWFsIFJlYWN0IGNvbXBvbmVudC5cbiAqXG4gKiBBbG9uZ3NpZGUgdGhpcyBpcyBhIGNvbmZpZyBvcHRpb24gd2hpY2ggcHJvdmlkZXMgYSB3YXkgb2YgcmVuZGVyaW5nIHRoZSBwcm92aWRlZFxuICogY29tcG9uZW50IFwib2ZmbGluZVwiLCBvciBvdXRzaWRlIHRoZSBSZWFjdCByZW5kZXIgY3ljbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb3Rpb25Db21wb25lbnQ8XG4gICAgUHJvcHMsXG4gICAgVGFnTmFtZSBleHRlbmRzIGtleW9mIERPTU1vdGlvbkNvbXBvbmVudHMgfCBzdHJpbmcgPSBcImRpdlwiXG4+KFxuICAgIENvbXBvbmVudDogVGFnTmFtZSB8IHN0cmluZyB8IFJlYWN0LkNvbXBvbmVudFR5cGU8UHJvcHM+LFxuICAgIHsgZm9yd2FyZE1vdGlvblByb3BzID0gZmFsc2UsIHR5cGUgfTogTW90aW9uQ29tcG9uZW50T3B0aW9ucyA9IHt9LFxuICAgIHByZWxvYWRlZEZlYXR1cmVzPzogRmVhdHVyZVBhY2thZ2VzLFxuICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQ/OiBDcmVhdGVWaXN1YWxFbGVtZW50PFByb3BzLCBUYWdOYW1lPlxuKSB7XG4gICAgcHJlbG9hZGVkRmVhdHVyZXMgJiYgbG9hZEZlYXR1cmVzKHByZWxvYWRlZEZlYXR1cmVzKVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gdXNlIFNWRyBvciBIVE1MIHJlbmRlcmluZyBiYXNlZCBvbjpcbiAgICAgKiAxLiBFeHBsaWNpdCBgdHlwZWAgb3B0aW9uIChoaWdoZXN0IHByaW9yaXR5KVxuICAgICAqIDIuIEF1dG8tZGV0ZWN0aW9uIHZpYSBgaXNTVkdDb21wb25lbnRgXG4gICAgICovXG4gICAgY29uc3QgaXNTVkcgPSB0eXBlID8gdHlwZSA9PT0gXCJzdmdcIiA6IGlzU1ZHQ29tcG9uZW50KENvbXBvbmVudClcbiAgICBjb25zdCB1c2VWaXN1YWxTdGF0ZSA9IGlzU1ZHID8gdXNlU1ZHVmlzdWFsU3RhdGUgOiB1c2VIVE1MVmlzdWFsU3RhdGVcblxuICAgIGZ1bmN0aW9uIE1vdGlvbkRPTUNvbXBvbmVudChcbiAgICAgICAgcHJvcHM6IE1vdGlvbkNvbXBvbmVudFByb3BzPFByb3BzPixcbiAgICAgICAgZXh0ZXJuYWxSZWY/OiBSZWFjdC5SZWY8SFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50PlxuICAgICkge1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgd2UgbmVlZCB0byBtZWFzdXJlIHRoZSBlbGVtZW50IHdlIGxvYWQgdGhpcyBmdW5jdGlvbmFsaXR5IGluIGFcbiAgICAgICAgICogc2VwYXJhdGUgY2xhc3MgY29tcG9uZW50IGluIG9yZGVyIHRvIGdhaW4gYWNjZXNzIHRvIGdldFNuYXBzaG90QmVmb3JlVXBkYXRlLlxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IE1lYXN1cmVMYXlvdXQ6IHVuZGVmaW5lZCB8IFJlYWN0LkNvbXBvbmVudFR5cGU8TW90aW9uUHJvcHM+XG5cbiAgICAgICAgY29uc3QgY29uZmlnQW5kUHJvcHMgPSB7XG4gICAgICAgICAgICAuLi51c2VDb250ZXh0KE1vdGlvbkNvbmZpZ0NvbnRleHQpLFxuICAgICAgICAgICAgLi4ucHJvcHMsXG4gICAgICAgICAgICBsYXlvdXRJZDogdXNlTGF5b3V0SWQocHJvcHMpLFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyBpc1N0YXRpYyB9ID0gY29uZmlnQW5kUHJvcHNcblxuICAgICAgICBjb25zdCBjb250ZXh0ID0gdXNlQ3JlYXRlTW90aW9uQ29udGV4dDxIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ+KHByb3BzKVxuXG4gICAgICAgIGNvbnN0IHZpc3VhbFN0YXRlID0gdXNlVmlzdWFsU3RhdGUocHJvcHMsIGlzU3RhdGljKVxuXG4gICAgICAgIGlmICghaXNTdGF0aWMgJiYgaXNCcm93c2VyKSB7XG4gICAgICAgICAgICB1c2VTdHJpY3RNb2RlKGNvbmZpZ0FuZFByb3BzLCBwcmVsb2FkZWRGZWF0dXJlcylcblxuICAgICAgICAgICAgY29uc3QgbGF5b3V0UHJvamVjdGlvbiA9IGdldFByb2plY3Rpb25GdW5jdGlvbmFsaXR5KGNvbmZpZ0FuZFByb3BzKVxuICAgICAgICAgICAgTWVhc3VyZUxheW91dCA9IGxheW91dFByb2plY3Rpb24uTWVhc3VyZUxheW91dFxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIENyZWF0ZSBhIFZpc3VhbEVsZW1lbnQgZm9yIHRoaXMgY29tcG9uZW50LiBBIFZpc3VhbEVsZW1lbnQgcHJvdmlkZXMgYSBjb21tb25cbiAgICAgICAgICAgICAqIGludGVyZmFjZSB0byByZW5kZXJlci1zcGVjaWZpYyBBUElzIChpZSBET00vVGhyZWUuanMgZXRjKSBhcyB3ZWxsIGFzXG4gICAgICAgICAgICAgKiBwcm92aWRpbmcgYSB3YXkgb2YgcmVuZGVyaW5nIHRvIHRoZXNlIEFQSXMgb3V0c2lkZSBvZiB0aGUgUmVhY3QgcmVuZGVyIGxvb3BcbiAgICAgICAgICAgICAqIGZvciBtb3JlIHBlcmZvcm1hbnQgYW5pbWF0aW9ucyBhbmQgaW50ZXJhY3Rpb25zXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnRleHQudmlzdWFsRWxlbWVudCA9IHVzZVZpc3VhbEVsZW1lbnQoXG4gICAgICAgICAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHZpc3VhbFN0YXRlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ0FuZFByb3BzLFxuICAgICAgICAgICAgICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQsXG4gICAgICAgICAgICAgICAgbGF5b3V0UHJvamVjdGlvbi5Qcm9qZWN0aW9uTm9kZSxcbiAgICAgICAgICAgICAgICBpc1NWR1xuICAgICAgICAgICAgKVxuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBtb3VudCBvcmRlciBhbmQgaGllcmFyY2h5IGlzIHNwZWNpZmljIHRvIGVuc3VyZSBvdXIgZWxlbWVudCByZWZcbiAgICAgICAgICogaXMgaHlkcmF0ZWQgYnkgdGhlIHRpbWUgZmVhdHVyZXMgZmlyZSB0aGVpciBlZmZlY3RzLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxNb3Rpb25Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0fT5cbiAgICAgICAgICAgICAgICB7TWVhc3VyZUxheW91dCAmJiBjb250ZXh0LnZpc3VhbEVsZW1lbnQgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxNZWFzdXJlTGF5b3V0XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50PXtjb250ZXh0LnZpc3VhbEVsZW1lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICB7Li4uY29uZmlnQW5kUHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3VzZVJlbmRlcjxQcm9wcywgVGFnTmFtZT4oXG4gICAgICAgICAgICAgICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIHVzZU1vdGlvblJlZjxcbiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxSZW5kZXJTdGF0ZSB8IFNWR1JlbmRlclN0YXRlXG4gICAgICAgICAgICAgICAgICAgID4odmlzdWFsU3RhdGUsIGNvbnRleHQudmlzdWFsRWxlbWVudCwgZXh0ZXJuYWxSZWYpLFxuICAgICAgICAgICAgICAgICAgICB2aXN1YWxTdGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgaXNTdGF0aWMsXG4gICAgICAgICAgICAgICAgICAgIGZvcndhcmRNb3Rpb25Qcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgaXNTVkdcbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9Nb3Rpb25Db250ZXh0LlByb3ZpZGVyPlxuICAgICAgICApXG4gICAgfVxuXG4gICAgTW90aW9uRE9NQ29tcG9uZW50LmRpc3BsYXlOYW1lID0gYG1vdGlvbi4ke1xuICAgICAgICB0eXBlb2YgQ29tcG9uZW50ID09PSBcInN0cmluZ1wiXG4gICAgICAgICAgICA/IENvbXBvbmVudFxuICAgICAgICAgICAgOiBgY3JlYXRlKCR7Q29tcG9uZW50LmRpc3BsYXlOYW1lID8/IENvbXBvbmVudC5uYW1lID8/IFwiXCJ9KWBcbiAgICB9YFxuXG4gICAgY29uc3QgRm9yd2FyZFJlZk1vdGlvbkNvbXBvbmVudCA9IGZvcndhcmRSZWYoTW90aW9uRE9NQ29tcG9uZW50IGFzIGFueSlcbiAgICA7KEZvcndhcmRSZWZNb3Rpb25Db21wb25lbnQgYXMgYW55KVttb3Rpb25Db21wb25lbnRTeW1ib2xdID0gQ29tcG9uZW50XG5cbiAgICByZXR1cm4gRm9yd2FyZFJlZk1vdGlvbkNvbXBvbmVudCBhcyBNb3Rpb25Db21wb25lbnQ8VGFnTmFtZSwgUHJvcHM+XG59XG5cbmZ1bmN0aW9uIHVzZUxheW91dElkKHsgbGF5b3V0SWQgfTogTW90aW9uUHJvcHMpIHtcbiAgICBjb25zdCBsYXlvdXRHcm91cElkID0gdXNlQ29udGV4dChMYXlvdXRHcm91cENvbnRleHQpLmlkXG4gICAgcmV0dXJuIGxheW91dEdyb3VwSWQgJiYgbGF5b3V0SWQgIT09IHVuZGVmaW5lZFxuICAgICAgICA/IGxheW91dEdyb3VwSWQgKyBcIi1cIiArIGxheW91dElkXG4gICAgICAgIDogbGF5b3V0SWRcbn1cblxuZnVuY3Rpb24gdXNlU3RyaWN0TW9kZShcbiAgICBjb25maWdBbmRQcm9wczogTW90aW9uUHJvcHMsXG4gICAgcHJlbG9hZGVkRmVhdHVyZXM/OiBGZWF0dXJlUGFja2FnZXNcbikge1xuICAgIGNvbnN0IGlzU3RyaWN0ID0gdXNlQ29udGV4dChMYXp5Q29udGV4dCkuc3RyaWN0XG5cbiAgICAvKipcbiAgICAgKiBJZiB3ZSdyZSBpbiBkZXZlbG9wbWVudCBtb2RlLCBjaGVjayB0byBtYWtlIHN1cmUgd2UncmUgbm90IHJlbmRlcmluZyBhIG1vdGlvbiBjb21wb25lbnRcbiAgICAgKiBhcyBhIGNoaWxkIG9mIExhenlNb3Rpb24sIGFzIHRoaXMgd2lsbCBicmVhayB0aGUgZmlsZS1zaXplIGJlbmVmaXRzIG9mIHVzaW5nIGl0LlxuICAgICAqL1xuICAgIGlmIChcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmXG4gICAgICAgIHByZWxvYWRlZEZlYXR1cmVzICYmXG4gICAgICAgIGlzU3RyaWN0XG4gICAgKSB7XG4gICAgICAgIGNvbnN0IHN0cmljdE1lc3NhZ2UgPVxuICAgICAgICAgICAgXCJZb3UgaGF2ZSByZW5kZXJlZCBhIGBtb3Rpb25gIGNvbXBvbmVudCB3aXRoaW4gYSBgTGF6eU1vdGlvbmAgY29tcG9uZW50LiBUaGlzIHdpbGwgYnJlYWsgdHJlZSBzaGFraW5nLiBJbXBvcnQgYW5kIHJlbmRlciBhIGBtYCBjb21wb25lbnQgaW5zdGVhZC5cIlxuICAgICAgICBjb25maWdBbmRQcm9wcy5pZ25vcmVTdHJpY3RcbiAgICAgICAgICAgID8gd2FybmluZyhmYWxzZSwgc3RyaWN0TWVzc2FnZSwgXCJsYXp5LXN0cmljdC1tb2RlXCIpXG4gICAgICAgICAgICA6IGludmFyaWFudChmYWxzZSwgc3RyaWN0TWVzc2FnZSwgXCJsYXp5LXN0cmljdC1tb2RlXCIpXG4gICAgfVxufVxuXG5mdW5jdGlvbiBnZXRQcm9qZWN0aW9uRnVuY3Rpb25hbGl0eShwcm9wczogTW90aW9uUHJvcHMpIHtcbiAgICBjb25zdCBmZWF0dXJlRGVmaW5pdGlvbnMgPSBnZXRJbml0aWFsaXplZEZlYXR1cmVEZWZpbml0aW9ucygpXG4gICAgY29uc3QgeyBkcmFnLCBsYXlvdXQgfSA9IGZlYXR1cmVEZWZpbml0aW9uc1xuXG4gICAgaWYgKCFkcmFnICYmICFsYXlvdXQpIHJldHVybiB7fVxuXG4gICAgY29uc3QgY29tYmluZWQgPSB7IC4uLmRyYWcsIC4uLmxheW91dCB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBNZWFzdXJlTGF5b3V0OlxuICAgICAgICAgICAgZHJhZz8uaXNFbmFibGVkKHByb3BzKSB8fCBsYXlvdXQ/LmlzRW5hYmxlZChwcm9wcylcbiAgICAgICAgICAgICAgICA/IGNvbWJpbmVkLk1lYXN1cmVMYXlvdXRcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgUHJvamVjdGlvbk5vZGU6IGNvbWJpbmVkLlByb2plY3Rpb25Ob2RlLFxuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ motionComponentSymbol: () => (/* binding */ motionComponentSymbol)\n/* harmony export */ });\nconst motionComponentSymbol = Symbol.for(\"motionComponentSymbol\");\n\n\n//# sourceMappingURL=symbol.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3N5bWJvbC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUVpQztBQUNqQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3N5bWJvbC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW90aW9uQ29tcG9uZW50U3ltYm9sID0gU3ltYm9sLmZvcihcIm1vdGlvbkNvbXBvbmVudFN5bWJvbFwiKTtcblxuZXhwb3J0IHsgbW90aW9uQ29tcG9uZW50U3ltYm9sIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zeW1ib2wubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/symbol.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useMotionRef: () => (/* binding */ useMotionRef)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ useMotionRef auto */ var _s = $RefreshSig$();\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */ function useMotionRef(visualState, visualElement, externalRef) {\n _s();\n /**\n * Store externalRef in a ref to avoid including it in the useCallback\n * dependency array. Including externalRef in dependencies causes issues\n * with libraries like Radix UI that create new callback refs on each render\n * when using asChild - this would cause the callback to be recreated,\n * triggering element remounts and breaking AnimatePresence exit animations.\n */ const externalRefContainer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(externalRef);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect)({\n \"useMotionRef.useInsertionEffect\": ()=>{\n externalRefContainer.current = externalRef;\n }\n }[\"useMotionRef.useInsertionEffect\"]);\n // Store cleanup function returned by callback refs (React 19 feature)\n const refCleanup = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)({\n \"useMotionRef.useCallback\": (instance)=>{\n if (instance) {\n var _visualState_onMount;\n (_visualState_onMount = visualState.onMount) === null || _visualState_onMount === void 0 ? void 0 : _visualState_onMount.call(visualState, instance);\n }\n if (visualElement) {\n instance ? visualElement.mount(instance) : visualElement.unmount();\n }\n const ref = externalRefContainer.current;\n if (typeof ref === \"function\") {\n if (instance) {\n const cleanup = ref(instance);\n if (typeof cleanup === \"function\") {\n refCleanup.current = cleanup;\n }\n } else if (refCleanup.current) {\n refCleanup.current();\n refCleanup.current = null;\n } else {\n ref(instance);\n }\n } else if (ref) {\n ref.current = instance;\n }\n }\n }[\"useMotionRef.useCallback\"], [\n visualElement\n ]);\n}\n_s(useMotionRef, \"6nGs9vaEQZ+Z6sb6torCbtfABKk=\", false, function() {\n return [\n react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect\n ];\n});\n //# sourceMappingURL=use-motion-ref.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3VzZS1tb3Rpb24tcmVmLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBT0E7OztDQUdHOztJQU1DOzs7Ozs7S0FNRyxHQUNIOzs7WUFFSTtRQUNKOzs7SUFHQTtJQUVBO29DQUFBOztvQkFHWTtpQkFBQTs7O2dCQUlBOztZQUdKO1lBQ0E7O29CQUVRO29CQUNBO3dCQUNJOzt1QkFFRDs7b0JBRUg7Ozs7O2dCQUtGOztRQUVWO21DQUFBO1FBQUE7S0FBQTtBQUdSIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvbW90aW9uL3V0aWxzL3VzZS1tb3Rpb24tcmVmLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB0eXBlIHsgVmlzdWFsRWxlbWVudCB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlSW5zZXJ0aW9uRWZmZWN0LCB1c2VSZWYgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgVmlzdWFsU3RhdGUgfSBmcm9tIFwiLi91c2UtdmlzdWFsLXN0YXRlXCJcblxuLyoqXG4gKiBDcmVhdGVzIGEgcmVmIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkLCBoeWRyYXRlcyB0aGUgcHJvdmlkZWRcbiAqIGV4dGVybmFsIHJlZiBhbmQgVmlzdWFsRWxlbWVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZU1vdGlvblJlZjxJbnN0YW5jZSwgUmVuZGVyU3RhdGU+KFxuICAgIHZpc3VhbFN0YXRlOiBWaXN1YWxTdGF0ZTxJbnN0YW5jZSwgUmVuZGVyU3RhdGU+LFxuICAgIHZpc3VhbEVsZW1lbnQ/OiBWaXN1YWxFbGVtZW50PEluc3RhbmNlPiB8IG51bGwsXG4gICAgZXh0ZXJuYWxSZWY/OiBSZWFjdC5SZWY8SW5zdGFuY2U+XG4pOiBSZWFjdC5SZWY8SW5zdGFuY2U+IHtcbiAgICAvKipcbiAgICAgKiBTdG9yZSBleHRlcm5hbFJlZiBpbiBhIHJlZiB0byBhdm9pZCBpbmNsdWRpbmcgaXQgaW4gdGhlIHVzZUNhbGxiYWNrXG4gICAgICogZGVwZW5kZW5jeSBhcnJheS4gSW5jbHVkaW5nIGV4dGVybmFsUmVmIGluIGRlcGVuZGVuY2llcyBjYXVzZXMgaXNzdWVzXG4gICAgICogd2l0aCBsaWJyYXJpZXMgbGlrZSBSYWRpeCBVSSB0aGF0IGNyZWF0ZSBuZXcgY2FsbGJhY2sgcmVmcyBvbiBlYWNoIHJlbmRlclxuICAgICAqIHdoZW4gdXNpbmcgYXNDaGlsZCAtIHRoaXMgd291bGQgY2F1c2UgdGhlIGNhbGxiYWNrIHRvIGJlIHJlY3JlYXRlZCxcbiAgICAgKiB0cmlnZ2VyaW5nIGVsZW1lbnQgcmVtb3VudHMgYW5kIGJyZWFraW5nIEFuaW1hdGVQcmVzZW5jZSBleGl0IGFuaW1hdGlvbnMuXG4gICAgICovXG4gICAgY29uc3QgZXh0ZXJuYWxSZWZDb250YWluZXIgPSB1c2VSZWYoZXh0ZXJuYWxSZWYpXG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZXh0ZXJuYWxSZWZDb250YWluZXIuY3VycmVudCA9IGV4dGVybmFsUmVmXG4gICAgfSlcblxuICAgIC8vIFN0b3JlIGNsZWFudXAgZnVuY3Rpb24gcmV0dXJuZWQgYnkgY2FsbGJhY2sgcmVmcyAoUmVhY3QgMTkgZmVhdHVyZSlcbiAgICBjb25zdCByZWZDbGVhbnVwID0gdXNlUmVmPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpXG5cbiAgICByZXR1cm4gdXNlQ2FsbGJhY2soXG4gICAgICAgIChpbnN0YW5jZTogSW5zdGFuY2UpID0+IHtcbiAgICAgICAgICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHZpc3VhbFN0YXRlLm9uTW91bnQ/LihpbnN0YW5jZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZpc3VhbEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZSA/IHZpc3VhbEVsZW1lbnQubW91bnQoaW5zdGFuY2UpIDogdmlzdWFsRWxlbWVudC51bm1vdW50KClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcmVmID0gZXh0ZXJuYWxSZWZDb250YWluZXIuY3VycmVudFxuICAgICAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGVhbnVwID0gcmVmKGluc3RhbmNlKVxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNsZWFudXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmQ2xlYW51cC5jdXJyZW50ID0gY2xlYW51cFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZWZDbGVhbnVwLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmQ2xlYW51cC5jdXJyZW50KClcbiAgICAgICAgICAgICAgICAgICAgcmVmQ2xlYW51cC5jdXJyZW50ID0gbnVsbFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZihpbnN0YW5jZSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlZikge1xuICAgICAgICAgICAgICAgIDsocmVmIGFzIFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SW5zdGFuY2U+KS5jdXJyZW50ID0gaW5zdGFuY2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgW3Zpc3VhbEVsZW1lbnRdXG4gICAgKVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useVisualElement: () => (/* binding */ useVisualElement)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../context/LazyContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/LazyContext.mjs\");\n/* harmony import */ var _context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../context/MotionConfigContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../context/MotionContext/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context/SwitchLayoutGroupContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs\");\n/* harmony import */ var _utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/is-ref-object.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\");\n/* harmony import */ var _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/use-isomorphic-effect.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\");\n/* __next_internal_client_entry_do_not_use__ useVisualElement auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\n\n\n\nfunction useVisualElement(Component, visualState, props, createVisualElement, ProjectionNodeConstructor, isSVG) {\n var _window_MotionHandoffIsComplete, _window, _window_MotionHasOptimisedAnimation, _window1;\n _s();\n const { visualElement: parent } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_1__.MotionContext);\n const lazyContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_LazyContext_mjs__WEBPACK_IMPORTED_MODULE_2__.LazyContext);\n const presenceContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_3__.PresenceContext);\n const motionConfig = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionConfigContext_mjs__WEBPACK_IMPORTED_MODULE_4__.MotionConfigContext);\n const reducedMotionConfig = motionConfig.reducedMotion;\n const skipAnimations = motionConfig.skipAnimations;\n const visualElementRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n /**\n * Track whether the component has been through React's commit phase.\n * Used to detect when LazyMotion features load after the component has mounted.\n */ const hasMountedOnce = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */ createVisualElement = createVisualElement || lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState,\n parent,\n props,\n presenceContext,\n blockInitialAnimation: presenceContext ? presenceContext.initial === false : false,\n reducedMotionConfig,\n skipAnimations,\n isSVG\n });\n /**\n * If the component has already mounted before features loaded (e.g. via\n * LazyMotion with async feature loading), we need to force the initial\n * animation to run. Otherwise state changes that occurred before features\n * loaded will be lost and the element will snap to its final state.\n */ if (hasMountedOnce.current && visualElementRef.current) {\n visualElementRef.current.manuallyAnimateOnMount = true;\n }\n }\n const visualElement = visualElementRef.current;\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */ const initialLayoutGroupConfig = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_SwitchLayoutGroupContext_mjs__WEBPACK_IMPORTED_MODULE_5__.SwitchLayoutGroupContext);\n if (visualElement && !visualElement.projection && ProjectionNodeConstructor && (visualElement.type === \"html\" || visualElement.type === \"svg\")) {\n createProjectionNode(visualElementRef.current, props, ProjectionNodeConstructor, initialLayoutGroupConfig);\n }\n const isMounted = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect)({\n \"useVisualElement.useInsertionEffect\": ()=>{\n /**\n * Check the component has already mounted before calling\n * `update` unnecessarily. This ensures we skip the initial update.\n */ if (visualElement && isMounted.current) {\n visualElement.update(props, presenceContext);\n }\n }\n }[\"useVisualElement.useInsertionEffect\"]);\n /**\n * Cache this value as we want to know whether HandoffAppearAnimations\n * was present on initial render - it will be deleted after this.\n */ const optimisedAppearId = props[motion_dom__WEBPACK_IMPORTED_MODULE_6__.optimizedAppearDataAttribute];\n const wantsHandoff = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(Boolean(optimisedAppearId) && !((_window_MotionHandoffIsComplete = (_window = window).MotionHandoffIsComplete) === null || _window_MotionHandoffIsComplete === void 0 ? void 0 : _window_MotionHandoffIsComplete.call(_window, optimisedAppearId)) && ((_window_MotionHasOptimisedAnimation = (_window1 = window).MotionHasOptimisedAnimation) === null || _window_MotionHasOptimisedAnimation === void 0 ? void 0 : _window_MotionHasOptimisedAnimation.call(_window1, optimisedAppearId)));\n (0,_utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_7__.useIsomorphicLayoutEffect)({\n \"useVisualElement.useIsomorphicLayoutEffect\": ()=>{\n /**\n * Track that this component has mounted. This is used to detect when\n * LazyMotion features load after the component has already committed.\n */ hasMountedOnce.current = true;\n if (!visualElement) return;\n isMounted.current = true;\n window.MotionIsMounted = true;\n visualElement.updateFeatures();\n visualElement.scheduleRenderMicrotask();\n /**\n * Ideally this function would always run in a useEffect.\n *\n * However, if we have optimised appear animations to handoff from,\n * it needs to happen synchronously to ensure there's no flash of\n * incorrect styles in the event of a hydration error.\n *\n * So if we detect a situtation where optimised appear animations\n * are running, we use useLayoutEffect to trigger animations.\n */ if (wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n }\n }[\"useVisualElement.useIsomorphicLayoutEffect\"]);\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useVisualElement.useEffect\": ()=>{\n if (!visualElement) return;\n if (!wantsHandoff.current && visualElement.animationState) {\n visualElement.animationState.animateChanges();\n }\n if (wantsHandoff.current) {\n // This ensures all future calls to animateChanges() in this component will run in useEffect\n queueMicrotask({\n \"useVisualElement.useEffect\": ()=>{\n var _window_MotionHandoffMarkAsComplete, _window;\n (_window_MotionHandoffMarkAsComplete = (_window = window).MotionHandoffMarkAsComplete) === null || _window_MotionHandoffMarkAsComplete === void 0 ? void 0 : _window_MotionHandoffMarkAsComplete.call(_window, optimisedAppearId);\n }\n }[\"useVisualElement.useEffect\"]);\n wantsHandoff.current = false;\n }\n /**\n * Now we've finished triggering animations for this element we\n * can wipe the enteringChildren set for the next render.\n */ visualElement.enteringChildren = undefined;\n }\n }[\"useVisualElement.useEffect\"]);\n return visualElement;\n}\n_s(useVisualElement, \"kGP7Z7eFyi/pYfNg3V4TNZ4UZdY=\", false, function() {\n return [\n react__WEBPACK_IMPORTED_MODULE_0__.useInsertionEffect,\n _utils_use_isomorphic_effect_mjs__WEBPACK_IMPORTED_MODULE_7__.useIsomorphicLayoutEffect\n ];\n});\nfunction createProjectionNode(visualElement, props, ProjectionNodeConstructor, initialPromotionConfig) {\n const { layoutId, layout, drag, dragConstraints, layoutScroll, layoutRoot, layoutCrossfade } = props;\n visualElement.projection = new ProjectionNodeConstructor(visualElement.latestValues, props[\"data-framer-portal-id\"] ? undefined : getClosestProjectingNode(visualElement.parent));\n visualElement.projection.setOptions({\n layoutId,\n layout,\n alwaysMeasureLayout: Boolean(drag) || dragConstraints && (0,_utils_is_ref_object_mjs__WEBPACK_IMPORTED_MODULE_8__.isRefObject)(dragConstraints),\n visualElement,\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */ animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig,\n crossfade: layoutCrossfade,\n layoutScroll,\n layoutRoot\n });\n}\nfunction getClosestProjectingNode(visualElement) {\n if (!visualElement) return undefined;\n return visualElement.options.allowProjection !== false ? visualElement.projection : getClosestProjectingNode(visualElement.parent);\n}\n //# sourceMappingURL=use-visual-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3VzZS12aXN1YWwtZWxlbWVudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEwQmdCO1FBdUdKLDBDQUNBOzs7SUExRlI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUVBO0lBSUE7OztLQUdHLEdBQ0g7SUFFQTs7S0FFRztJQUtIO1FBQ0k7Ozs7O1lBS0kseUNBQ0ksb0NBQ0E7Ozs7UUFJUDtRQUVEOzs7OztTQUtHO1lBRUM7OztJQUlSO0lBRUE7OztLQUdHLEdBQ0g7SUFFQSwrRUFJSTs7O0lBVUo7OztZQUVJOzs7U0FHRyxHQUNIO2dCQUNJOztRQUVSOztJQUVBOzs7S0FHRyxHQUNIO0lBRUEsaUdBRVEsME5BQ0E7OztZQUlKOzs7U0FHRyxHQUNIO1lBRUE7WUFFQTtZQUNBOzs7WUFLQTs7Ozs7Ozs7O1NBU0c7Z0JBRUM7O1FBRVI7Ozs7WUFHSTs7Z0JBR0k7O1lBR0o7Ozs7NEJBR1E7eUJBQUE7b0JBQ0o7O2dCQUVBOztZQUdKOzs7U0FHRyxHQUNIO1FBQ0o7O0lBRUE7QUFDSjtHQWpLZ0I7Ozs7OztBQW1LaEI7SUFNSTtJQVVBLHNIQUdRO0lBSVI7OztRQUdJOztRQUdBOzs7Ozs7U0FNRyxHQUNIOztRQUVBOzs7SUFHSDtBQUNMO0FBRUE7SUFPSSxvQkFBb0I7SUFFcEIsb0ZBRUk7QUFDUiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL21vdGlvbi91dGlscy91c2UtdmlzdWFsLWVsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHtcbiAgICBvcHRpbWl6ZWRBcHBlYXJEYXRhQXR0cmlidXRlLFxuICAgIHR5cGUgSFRNTFJlbmRlclN0YXRlLFxuICAgIHR5cGUgU1ZHUmVuZGVyU3RhdGUsXG4gICAgdHlwZSBWaXN1YWxFbGVtZW50LFxufSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgdXNlQ29udGV4dCwgdXNlRWZmZWN0LCB1c2VJbnNlcnRpb25FZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBMYXp5Q29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0L0xhenlDb250ZXh0XCJcbmltcG9ydCB7IE1vdGlvbkNvbmZpZ0NvbnRleHQgfSBmcm9tIFwiLi4vLi4vY29udGV4dC9Nb3Rpb25Db25maWdDb250ZXh0XCJcbmltcG9ydCB7IE1vdGlvbkNvbnRleHQgfSBmcm9tIFwiLi4vLi4vY29udGV4dC9Nb3Rpb25Db250ZXh0XCJcbmltcG9ydCB7IFByZXNlbmNlQ29udGV4dCB9IGZyb20gXCIuLi8uLi9jb250ZXh0L1ByZXNlbmNlQ29udGV4dFwiXG5pbXBvcnQge1xuICAgIEluaXRpYWxQcm9tb3Rpb25Db25maWcsXG4gICAgU3dpdGNoTGF5b3V0R3JvdXBDb250ZXh0LFxufSBmcm9tIFwiLi4vLi4vY29udGV4dC9Td2l0Y2hMYXlvdXRHcm91cENvbnRleHRcIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vLi4vbW90aW9uL3R5cGVzXCJcbmltcG9ydCB0eXBlIHsgSVByb2plY3Rpb25Ob2RlIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgRE9NTW90aW9uQ29tcG9uZW50cyB9IGZyb20gXCIuLi8uLi9yZW5kZXIvZG9tL3R5cGVzXCJcbmltcG9ydCB7IENyZWF0ZVZpc3VhbEVsZW1lbnQgfSBmcm9tIFwiLi4vLi4vcmVuZGVyL3R5cGVzXCJcbmltcG9ydCB7IGlzUmVmT2JqZWN0IH0gZnJvbSBcIi4uLy4uL3V0aWxzL2lzLXJlZi1vYmplY3RcIlxuaW1wb3J0IHsgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCB9IGZyb20gXCIuLi8uLi91dGlscy91c2UtaXNvbW9ycGhpYy1lZmZlY3RcIlxuaW1wb3J0IHsgVmlzdWFsU3RhdGUgfSBmcm9tIFwiLi91c2UtdmlzdWFsLXN0YXRlXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVZpc3VhbEVsZW1lbnQ8XG4gICAgUHJvcHMsXG4gICAgVGFnTmFtZSBleHRlbmRzIGtleW9mIERPTU1vdGlvbkNvbXBvbmVudHMgfCBzdHJpbmdcbj4oXG4gICAgQ29tcG9uZW50OiBUYWdOYW1lIHwgc3RyaW5nIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxQcm9wcz4sXG4gICAgdmlzdWFsU3RhdGU6XG4gICAgICAgIHwgVmlzdWFsU3RhdGU8U1ZHRWxlbWVudCwgU1ZHUmVuZGVyU3RhdGU+XG4gICAgICAgIHwgVmlzdWFsU3RhdGU8SFRNTEVsZW1lbnQsIEhUTUxSZW5kZXJTdGF0ZT4sXG4gICAgcHJvcHM6IE1vdGlvblByb3BzICYgUGFydGlhbDxNb3Rpb25Db25maWdDb250ZXh0PixcbiAgICBjcmVhdGVWaXN1YWxFbGVtZW50PzogQ3JlYXRlVmlzdWFsRWxlbWVudDxQcm9wcywgVGFnTmFtZT4sXG4gICAgUHJvamVjdGlvbk5vZGVDb25zdHJ1Y3Rvcj86IGFueSxcbiAgICBpc1NWRz86IGJvb2xlYW5cbik6IFZpc3VhbEVsZW1lbnQ8SFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50PiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgeyB2aXN1YWxFbGVtZW50OiBwYXJlbnQgfSA9IHVzZUNvbnRleHQoTW90aW9uQ29udGV4dClcbiAgICBjb25zdCBsYXp5Q29udGV4dCA9IHVzZUNvbnRleHQoTGF6eUNvbnRleHQpXG4gICAgY29uc3QgcHJlc2VuY2VDb250ZXh0ID0gdXNlQ29udGV4dChQcmVzZW5jZUNvbnRleHQpXG4gICAgY29uc3QgbW90aW9uQ29uZmlnID0gdXNlQ29udGV4dChNb3Rpb25Db25maWdDb250ZXh0KVxuICAgIGNvbnN0IHJlZHVjZWRNb3Rpb25Db25maWcgPSBtb3Rpb25Db25maWcucmVkdWNlZE1vdGlvblxuICAgIGNvbnN0IHNraXBBbmltYXRpb25zID0gbW90aW9uQ29uZmlnLnNraXBBbmltYXRpb25zXG5cbiAgICBjb25zdCB2aXN1YWxFbGVtZW50UmVmID0gdXNlUmVmPFZpc3VhbEVsZW1lbnQ8XG4gICAgICAgIEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudFxuICAgID4gfCBudWxsPihudWxsKVxuXG4gICAgLyoqXG4gICAgICogVHJhY2sgd2hldGhlciB0aGUgY29tcG9uZW50IGhhcyBiZWVuIHRocm91Z2ggUmVhY3QncyBjb21taXQgcGhhc2UuXG4gICAgICogVXNlZCB0byBkZXRlY3Qgd2hlbiBMYXp5TW90aW9uIGZlYXR1cmVzIGxvYWQgYWZ0ZXIgdGhlIGNvbXBvbmVudCBoYXMgbW91bnRlZC5cbiAgICAgKi9cbiAgICBjb25zdCBoYXNNb3VudGVkT25jZSA9IHVzZVJlZihmYWxzZSlcblxuICAgIC8qKlxuICAgICAqIElmIHdlIGhhdmVuJ3QgcHJlbG9hZGVkIGEgcmVuZGVyZXIsIGNoZWNrIHRvIHNlZSBpZiB3ZSBoYXZlIG9uZSBsYXp5LWxvYWRlZFxuICAgICAqL1xuICAgIGNyZWF0ZVZpc3VhbEVsZW1lbnQgPVxuICAgICAgICBjcmVhdGVWaXN1YWxFbGVtZW50IHx8XG4gICAgICAgIChsYXp5Q29udGV4dC5yZW5kZXJlciBhcyBDcmVhdGVWaXN1YWxFbGVtZW50PFByb3BzLCBUYWdOYW1lPilcblxuICAgIGlmICghdmlzdWFsRWxlbWVudFJlZi5jdXJyZW50ICYmIGNyZWF0ZVZpc3VhbEVsZW1lbnQpIHtcbiAgICAgICAgdmlzdWFsRWxlbWVudFJlZi5jdXJyZW50ID0gY3JlYXRlVmlzdWFsRWxlbWVudChDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHZpc3VhbFN0YXRlLFxuICAgICAgICAgICAgcGFyZW50LFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICBwcmVzZW5jZUNvbnRleHQsXG4gICAgICAgICAgICBibG9ja0luaXRpYWxBbmltYXRpb246IHByZXNlbmNlQ29udGV4dFxuICAgICAgICAgICAgICAgID8gcHJlc2VuY2VDb250ZXh0LmluaXRpYWwgPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgOiBmYWxzZSxcbiAgICAgICAgICAgIHJlZHVjZWRNb3Rpb25Db25maWcsXG4gICAgICAgICAgICBza2lwQW5pbWF0aW9ucyxcbiAgICAgICAgICAgIGlzU1ZHLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGUgY29tcG9uZW50IGhhcyBhbHJlYWR5IG1vdW50ZWQgYmVmb3JlIGZlYXR1cmVzIGxvYWRlZCAoZS5nLiB2aWFcbiAgICAgICAgICogTGF6eU1vdGlvbiB3aXRoIGFzeW5jIGZlYXR1cmUgbG9hZGluZyksIHdlIG5lZWQgdG8gZm9yY2UgdGhlIGluaXRpYWxcbiAgICAgICAgICogYW5pbWF0aW9uIHRvIHJ1bi4gT3RoZXJ3aXNlIHN0YXRlIGNoYW5nZXMgdGhhdCBvY2N1cnJlZCBiZWZvcmUgZmVhdHVyZXNcbiAgICAgICAgICogbG9hZGVkIHdpbGwgYmUgbG9zdCBhbmQgdGhlIGVsZW1lbnQgd2lsbCBzbmFwIHRvIGl0cyBmaW5hbCBzdGF0ZS5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChoYXNNb3VudGVkT25jZS5jdXJyZW50ICYmIHZpc3VhbEVsZW1lbnRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgdmlzdWFsRWxlbWVudFJlZi5jdXJyZW50Lm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQgPSB0cnVlXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB2aXN1YWxFbGVtZW50ID0gdmlzdWFsRWxlbWVudFJlZi5jdXJyZW50XG5cbiAgICAvKipcbiAgICAgKiBMb2FkIE1vdGlvbiBnZXN0dXJlIGFuZCBhbmltYXRpb24gZmVhdHVyZXMuIFRoZXNlIGFyZSByZW5kZXJlZCBhcyByZW5kZXJsZXNzXG4gICAgICogY29tcG9uZW50cyBzbyBlYWNoIGZlYXR1cmUgY2FuIG9wdGlvbmFsbHkgbWFrZSB1c2Ugb2YgUmVhY3QgbGlmZWN5Y2xlIG1ldGhvZHMuXG4gICAgICovXG4gICAgY29uc3QgaW5pdGlhbExheW91dEdyb3VwQ29uZmlnID0gdXNlQ29udGV4dChTd2l0Y2hMYXlvdXRHcm91cENvbnRleHQpXG5cbiAgICBpZiAoXG4gICAgICAgIHZpc3VhbEVsZW1lbnQgJiZcbiAgICAgICAgIXZpc3VhbEVsZW1lbnQucHJvamVjdGlvbiAmJlxuICAgICAgICBQcm9qZWN0aW9uTm9kZUNvbnN0cnVjdG9yICYmXG4gICAgICAgICh2aXN1YWxFbGVtZW50LnR5cGUgPT09IFwiaHRtbFwiIHx8IHZpc3VhbEVsZW1lbnQudHlwZSA9PT0gXCJzdmdcIilcbiAgICApIHtcbiAgICAgICAgY3JlYXRlUHJvamVjdGlvbk5vZGUoXG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50UmVmLmN1cnJlbnQhLFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICBQcm9qZWN0aW9uTm9kZUNvbnN0cnVjdG9yLFxuICAgICAgICAgICAgaW5pdGlhbExheW91dEdyb3VwQ29uZmlnXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBjb25zdCBpc01vdW50ZWQgPSB1c2VSZWYoZmFsc2UpXG4gICAgdXNlSW5zZXJ0aW9uRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENoZWNrIHRoZSBjb21wb25lbnQgaGFzIGFscmVhZHkgbW91bnRlZCBiZWZvcmUgY2FsbGluZ1xuICAgICAgICAgKiBgdXBkYXRlYCB1bm5lY2Vzc2FyaWx5LiBUaGlzIGVuc3VyZXMgd2Ugc2tpcCB0aGUgaW5pdGlhbCB1cGRhdGUuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodmlzdWFsRWxlbWVudCAmJiBpc01vdW50ZWQuY3VycmVudCkge1xuICAgICAgICAgICAgdmlzdWFsRWxlbWVudC51cGRhdGUocHJvcHMsIHByZXNlbmNlQ29udGV4dClcbiAgICAgICAgfVxuICAgIH0pXG5cbiAgICAvKipcbiAgICAgKiBDYWNoZSB0aGlzIHZhbHVlIGFzIHdlIHdhbnQgdG8ga25vdyB3aGV0aGVyIEhhbmRvZmZBcHBlYXJBbmltYXRpb25zXG4gICAgICogd2FzIHByZXNlbnQgb24gaW5pdGlhbCByZW5kZXIgLSBpdCB3aWxsIGJlIGRlbGV0ZWQgYWZ0ZXIgdGhpcy5cbiAgICAgKi9cbiAgICBjb25zdCBvcHRpbWlzZWRBcHBlYXJJZCA9XG4gICAgICAgIHByb3BzW29wdGltaXplZEFwcGVhckRhdGFBdHRyaWJ1dGUgYXMga2V5b2YgdHlwZW9mIHByb3BzXVxuICAgIGNvbnN0IHdhbnRzSGFuZG9mZiA9IHVzZVJlZihcbiAgICAgICAgQm9vbGVhbihvcHRpbWlzZWRBcHBlYXJJZCkgJiZcbiAgICAgICAgICAgICF3aW5kb3cuTW90aW9uSGFuZG9mZklzQ29tcGxldGU/LihvcHRpbWlzZWRBcHBlYXJJZCkgJiZcbiAgICAgICAgICAgIHdpbmRvdy5Nb3Rpb25IYXNPcHRpbWlzZWRBbmltYXRpb24/LihvcHRpbWlzZWRBcHBlYXJJZClcbiAgICApXG5cbiAgICB1c2VJc29tb3JwaGljTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRyYWNrIHRoYXQgdGhpcyBjb21wb25lbnQgaGFzIG1vdW50ZWQuIFRoaXMgaXMgdXNlZCB0byBkZXRlY3Qgd2hlblxuICAgICAgICAgKiBMYXp5TW90aW9uIGZlYXR1cmVzIGxvYWQgYWZ0ZXIgdGhlIGNvbXBvbmVudCBoYXMgYWxyZWFkeSBjb21taXR0ZWQuXG4gICAgICAgICAqL1xuICAgICAgICBoYXNNb3VudGVkT25jZS5jdXJyZW50ID0gdHJ1ZVxuXG4gICAgICAgIGlmICghdmlzdWFsRWxlbWVudCkgcmV0dXJuXG5cbiAgICAgICAgaXNNb3VudGVkLmN1cnJlbnQgPSB0cnVlXG4gICAgICAgIHdpbmRvdy5Nb3Rpb25Jc01vdW50ZWQgPSB0cnVlXG5cbiAgICAgICAgdmlzdWFsRWxlbWVudC51cGRhdGVGZWF0dXJlcygpXG4gICAgICAgIHZpc3VhbEVsZW1lbnQuc2NoZWR1bGVSZW5kZXJNaWNyb3Rhc2soKVxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZGVhbGx5IHRoaXMgZnVuY3Rpb24gd291bGQgYWx3YXlzIHJ1biBpbiBhIHVzZUVmZmVjdC5cbiAgICAgICAgICpcbiAgICAgICAgICogSG93ZXZlciwgaWYgd2UgaGF2ZSBvcHRpbWlzZWQgYXBwZWFyIGFuaW1hdGlvbnMgdG8gaGFuZG9mZiBmcm9tLFxuICAgICAgICAgKiBpdCBuZWVkcyB0byBoYXBwZW4gc3luY2hyb25vdXNseSB0byBlbnN1cmUgdGhlcmUncyBubyBmbGFzaCBvZlxuICAgICAgICAgKiBpbmNvcnJlY3Qgc3R5bGVzIGluIHRoZSBldmVudCBvZiBhIGh5ZHJhdGlvbiBlcnJvci5cbiAgICAgICAgICpcbiAgICAgICAgICogU28gaWYgd2UgZGV0ZWN0IGEgc2l0dXRhdGlvbiB3aGVyZSBvcHRpbWlzZWQgYXBwZWFyIGFuaW1hdGlvbnNcbiAgICAgICAgICogYXJlIHJ1bm5pbmcsIHdlIHVzZSB1c2VMYXlvdXRFZmZlY3QgdG8gdHJpZ2dlciBhbmltYXRpb25zLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHdhbnRzSGFuZG9mZi5jdXJyZW50ICYmIHZpc3VhbEVsZW1lbnQuYW5pbWF0aW9uU3RhdGUpIHtcbiAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQuYW5pbWF0aW9uU3RhdGUuYW5pbWF0ZUNoYW5nZXMoKVxuICAgICAgICB9XG4gICAgfSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghdmlzdWFsRWxlbWVudCkgcmV0dXJuXG5cbiAgICAgICAgaWYgKCF3YW50c0hhbmRvZmYuY3VycmVudCAmJiB2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlKSB7XG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlLmFuaW1hdGVDaGFuZ2VzKClcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh3YW50c0hhbmRvZmYuY3VycmVudCkge1xuICAgICAgICAgICAgLy8gVGhpcyBlbnN1cmVzIGFsbCBmdXR1cmUgY2FsbHMgdG8gYW5pbWF0ZUNoYW5nZXMoKSBpbiB0aGlzIGNvbXBvbmVudCB3aWxsIHJ1biBpbiB1c2VFZmZlY3RcbiAgICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuTW90aW9uSGFuZG9mZk1hcmtBc0NvbXBsZXRlPy4ob3B0aW1pc2VkQXBwZWFySWQpXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICB3YW50c0hhbmRvZmYuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICogTm93IHdlJ3ZlIGZpbmlzaGVkIHRyaWdnZXJpbmcgYW5pbWF0aW9ucyBmb3IgdGhpcyBlbGVtZW50IHdlXG4gICAgICAgICAqIGNhbiB3aXBlIHRoZSBlbnRlcmluZ0NoaWxkcmVuIHNldCBmb3IgdGhlIG5leHQgcmVuZGVyLlxuICAgICAgICAgKi9cbiAgICAgICAgdmlzdWFsRWxlbWVudC5lbnRlcmluZ0NoaWxkcmVuID0gdW5kZWZpbmVkXG4gICAgfSlcblxuICAgIHJldHVybiB2aXN1YWxFbGVtZW50IVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQcm9qZWN0aW9uTm9kZShcbiAgICB2aXN1YWxFbGVtZW50OiBWaXN1YWxFbGVtZW50PGFueT4sXG4gICAgcHJvcHM6IE1vdGlvblByb3BzLFxuICAgIFByb2plY3Rpb25Ob2RlQ29uc3RydWN0b3I6IGFueSxcbiAgICBpbml0aWFsUHJvbW90aW9uQ29uZmlnPzogSW5pdGlhbFByb21vdGlvbkNvbmZpZ1xuKSB7XG4gICAgY29uc3Qge1xuICAgICAgICBsYXlvdXRJZCxcbiAgICAgICAgbGF5b3V0LFxuICAgICAgICBkcmFnLFxuICAgICAgICBkcmFnQ29uc3RyYWludHMsXG4gICAgICAgIGxheW91dFNjcm9sbCxcbiAgICAgICAgbGF5b3V0Um9vdCxcbiAgICAgICAgbGF5b3V0Q3Jvc3NmYWRlLFxuICAgIH0gPSBwcm9wc1xuXG4gICAgdmlzdWFsRWxlbWVudC5wcm9qZWN0aW9uID0gbmV3IFByb2plY3Rpb25Ob2RlQ29uc3RydWN0b3IoXG4gICAgICAgIHZpc3VhbEVsZW1lbnQubGF0ZXN0VmFsdWVzLFxuICAgICAgICBwcm9wc1tcImRhdGEtZnJhbWVyLXBvcnRhbC1pZFwiXVxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogZ2V0Q2xvc2VzdFByb2plY3RpbmdOb2RlKHZpc3VhbEVsZW1lbnQucGFyZW50KVxuICAgICkgYXMgSVByb2plY3Rpb25Ob2RlXG5cbiAgICB2aXN1YWxFbGVtZW50LnByb2plY3Rpb24uc2V0T3B0aW9ucyh7XG4gICAgICAgIGxheW91dElkLFxuICAgICAgICBsYXlvdXQsXG4gICAgICAgIGFsd2F5c01lYXN1cmVMYXlvdXQ6XG4gICAgICAgICAgICBCb29sZWFuKGRyYWcpIHx8IChkcmFnQ29uc3RyYWludHMgJiYgaXNSZWZPYmplY3QoZHJhZ0NvbnN0cmFpbnRzKSksXG4gICAgICAgIHZpc3VhbEVsZW1lbnQsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUT0RPOiBVcGRhdGUgb3B0aW9ucyBpbiBhbiBlZmZlY3QuIFRoaXMgY291bGQgYmUgdHJpY2t5IGFzIGl0J2xsIGJlIHRvbyBsYXRlXG4gICAgICAgICAqIHRvIHVwZGF0ZSBieSB0aGUgdGltZSBsYXlvdXQgYW5pbWF0aW9ucyBydW4uXG4gICAgICAgICAqIFdlIGFsc28gbmVlZCB0byBmaXggdGhpcyBzYWZlVG9SZW1vdmUgYnkgbGlua2luZyBpdCB1cCB0byB0aGUgb25lIHJldHVybmVkIGJ5IHVzZVByZXNlbmNlLFxuICAgICAgICAgKiBlbnN1cmluZyBpdCBnZXRzIGNhbGxlZCBpZiB0aGVyZSdzIG5vIHBvdGVudGlhbCBsYXlvdXQgYW5pbWF0aW9ucy5cbiAgICAgICAgICpcbiAgICAgICAgICovXG4gICAgICAgIGFuaW1hdGlvblR5cGU6IHR5cGVvZiBsYXlvdXQgPT09IFwic3RyaW5nXCIgPyBsYXlvdXQgOiBcImJvdGhcIixcbiAgICAgICAgaW5pdGlhbFByb21vdGlvbkNvbmZpZyxcbiAgICAgICAgY3Jvc3NmYWRlOiBsYXlvdXRDcm9zc2ZhZGUsXG4gICAgICAgIGxheW91dFNjcm9sbCxcbiAgICAgICAgbGF5b3V0Um9vdCxcbiAgICB9KVxufVxuXG5mdW5jdGlvbiBnZXRDbG9zZXN0UHJvamVjdGluZ05vZGUoXG4gICAgdmlzdWFsRWxlbWVudD86IFZpc3VhbEVsZW1lbnQ8XG4gICAgICAgIHVua25vd24sXG4gICAgICAgIHVua25vd24sXG4gICAgICAgIHsgYWxsb3dQcm9qZWN0aW9uPzogYm9vbGVhbiB9XG4gICAgPlxuKTogSVByb2plY3Rpb25Ob2RlIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXZpc3VhbEVsZW1lbnQpIHJldHVybiB1bmRlZmluZWRcblxuICAgIHJldHVybiB2aXN1YWxFbGVtZW50Lm9wdGlvbnMuYWxsb3dQcm9qZWN0aW9uICE9PSBmYWxzZVxuICAgICAgICA/IHZpc3VhbEVsZW1lbnQucHJvamVjdGlvblxuICAgICAgICA6IGdldENsb3Nlc3RQcm9qZWN0aW5nTm9kZSh2aXN1YWxFbGVtZW50LnBhcmVudClcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ makeUseVisualState: () => (/* binding */ makeUseVisualState)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../context/MotionContext/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs\");\n/* harmony import */ var _context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../context/PresenceContext.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs\");\n/* harmony import */ var _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/use-constant.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\");\n/* __next_internal_client_entry_do_not_use__ makeUseVisualState auto */ var _s = $RefreshSig$();\n\n\n\n\n\nfunction makeState(param, props, context, presenceContext) {\n let { scrapeMotionValuesFromProps, createRenderState } = param;\n const state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState()\n };\n return state;\n}\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n const values = {};\n const motionValues = scrapeMotionValues(props, {});\n for(const key in motionValues){\n values[key] = (0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.resolveMotionValue)(motionValues[key]);\n }\n let { initial, animate } = props;\n const isControllingVariants$1 = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isControllingVariants)(props);\n const isVariantNode$1 = (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isVariantNode)(props);\n if (context && isVariantNode$1 && !isControllingVariants$1 && props.inherit !== false) {\n if (initial === undefined) initial = context.initial;\n if (animate === undefined) animate = context.animate;\n }\n let isInitialAnimationBlocked = presenceContext ? presenceContext.initial === false : false;\n isInitialAnimationBlocked = isInitialAnimationBlocked || initial === false;\n const variantToSet = isInitialAnimationBlocked ? animate : initial;\n if (variantToSet && typeof variantToSet !== \"boolean\" && !(0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.isAnimationControls)(variantToSet)) {\n const list = Array.isArray(variantToSet) ? variantToSet : [\n variantToSet\n ];\n for(let i = 0; i < list.length; i++){\n const resolved = (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.resolveVariantFromProps)(props, list[i]);\n if (resolved) {\n const { transitionEnd, transition, ...target } = resolved;\n for(const key in target){\n let valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */ const index = isInitialAnimationBlocked ? valueTarget.length - 1 : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for(const key in transitionEnd){\n values[key] = transitionEnd[key];\n }\n }\n }\n }\n return values;\n}\nconst makeUseVisualState = (config)=>_s((props, isStatic)=>{\n _s();\n const context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_MotionContext_index_mjs__WEBPACK_IMPORTED_MODULE_5__.MotionContext);\n const presenceContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_context_PresenceContext_mjs__WEBPACK_IMPORTED_MODULE_6__.PresenceContext);\n const make = ()=>makeState(config, props, context, presenceContext);\n return isStatic ? make() : (0,_utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_7__.useConstant)(make);\n }, \"sNxIIlbNmx0ZryDSe/DlWrNSZgI=\", false, function() {\n return [\n _utils_use_constant_mjs__WEBPACK_IMPORTED_MODULE_7__.useConstant\n ];\n });\n //# sourceMappingURL=use-visual-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3VzZS12aXN1YWwtc3RhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFDQTtRQUFBO0lBU0k7Ozs7SUFVQTtBQUNKO0FBRUE7OztJQVNJOzs7SUFJQTtJQUNBO0lBQ0E7SUFFQSxrQ0FHSSw0QkFDQTttQ0FFMkI7bUNBQ0E7O3NEQUkzQjtJQUVKOztJQUlBLHlEQUdJO1FBRUE7WUFBQTtTQUFBO1FBQ0E7Ozs7Z0JBSVE7b0JBQ0k7b0JBRUE7d0JBQ0k7Ozt5QkFHRyw2Q0FFQzt3QkFFSjs7b0JBR0o7d0JBQ0k7OztnQkFHUjs7Ozs7O0lBU1o7QUFDSjtBQUVPOztRQUdDO1FBQ0E7UUFDQTtRQUVBO0lBQ0o7O1lBREkiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9tb3Rpb24vdXRpbHMvdXNlLXZpc3VhbC1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQge1xuICAgIEFueVJlc29sdmVkS2V5ZnJhbWUsXG4gICAgaXNBbmltYXRpb25Db250cm9scyxcbiAgICBpc0NvbnRyb2xsaW5nVmFyaWFudHMgYXMgY2hlY2tJc0NvbnRyb2xsaW5nVmFyaWFudHMsXG4gICAgaXNWYXJpYW50Tm9kZSBhcyBjaGVja0lzVmFyaWFudE5vZGUsXG4gICAgUmVzb2x2ZWRWYWx1ZXMsXG4gICAgcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMsXG59IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTW90aW9uQ29udGV4dCwgTW90aW9uQ29udGV4dFByb3BzIH0gZnJvbSBcIi4uLy4uL2NvbnRleHQvTW90aW9uQ29udGV4dFwiXG5pbXBvcnQge1xuICAgIFByZXNlbmNlQ29udGV4dCxcbiAgICB0eXBlIFByZXNlbmNlQ29udGV4dFByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29udGV4dC9QcmVzZW5jZUNvbnRleHRcIlxuaW1wb3J0IHsgU2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzIH0gZnJvbSBcIi4uLy4uL3JlbmRlci90eXBlc1wiXG5pbXBvcnQgeyB1c2VDb25zdGFudCB9IGZyb20gXCIuLi8uLi91dGlscy91c2UtY29uc3RhbnRcIlxuaW1wb3J0IHsgcmVzb2x2ZU1vdGlvblZhbHVlIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vdHlwZXNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFZpc3VhbFN0YXRlPEluc3RhbmNlLCBSZW5kZXJTdGF0ZT4ge1xuICAgIHJlbmRlclN0YXRlOiBSZW5kZXJTdGF0ZVxuICAgIGxhdGVzdFZhbHVlczogUmVzb2x2ZWRWYWx1ZXNcbiAgICBvbk1vdW50PzogKGluc3RhbmNlOiBJbnN0YW5jZSkgPT4gdm9pZFxufVxuXG5leHBvcnQgdHlwZSBVc2VWaXN1YWxTdGF0ZTxJbnN0YW5jZSwgUmVuZGVyU3RhdGU+ID0gKFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wcyxcbiAgICBpc1N0YXRpYzogYm9vbGVhblxuKSA9PiBWaXN1YWxTdGF0ZTxJbnN0YW5jZSwgUmVuZGVyU3RhdGU+XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlVmlzdWFsU3RhdGVDb25maWc8UmVuZGVyU3RhdGU+IHtcbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHM6IFNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wc1xuICAgIGNyZWF0ZVJlbmRlclN0YXRlOiAoKSA9PiBSZW5kZXJTdGF0ZVxufVxuXG5mdW5jdGlvbiBtYWtlU3RhdGU8SSwgUlM+KFxuICAgIHtcbiAgICAgICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzLFxuICAgICAgICBjcmVhdGVSZW5kZXJTdGF0ZSxcbiAgICB9OiBVc2VWaXN1YWxTdGF0ZUNvbmZpZzxSUz4sXG4gICAgcHJvcHM6IE1vdGlvblByb3BzLFxuICAgIGNvbnRleHQ6IE1vdGlvbkNvbnRleHRQcm9wcyxcbiAgICBwcmVzZW5jZUNvbnRleHQ6IFByZXNlbmNlQ29udGV4dFByb3BzIHwgbnVsbFxuKSB7XG4gICAgY29uc3Qgc3RhdGU6IFZpc3VhbFN0YXRlPEksIFJTPiA9IHtcbiAgICAgICAgbGF0ZXN0VmFsdWVzOiBtYWtlTGF0ZXN0VmFsdWVzKFxuICAgICAgICAgICAgcHJvcHMsXG4gICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgcHJlc2VuY2VDb250ZXh0LFxuICAgICAgICAgICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzXG4gICAgICAgICksXG4gICAgICAgIHJlbmRlclN0YXRlOiBjcmVhdGVSZW5kZXJTdGF0ZSgpLFxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZVxufVxuXG5mdW5jdGlvbiBtYWtlTGF0ZXN0VmFsdWVzKFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wcyxcbiAgICBjb250ZXh0OiBNb3Rpb25Db250ZXh0UHJvcHMsXG4gICAgcHJlc2VuY2VDb250ZXh0OiBQcmVzZW5jZUNvbnRleHRQcm9wcyB8IG51bGwsXG4gICAgc2NyYXBlTW90aW9uVmFsdWVzOiBTY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHNcbikge1xuICAgIGNvbnN0IHZhbHVlczogUmVzb2x2ZWRWYWx1ZXMgPSB7fVxuXG4gICAgY29uc3QgbW90aW9uVmFsdWVzID0gc2NyYXBlTW90aW9uVmFsdWVzKHByb3BzLCB7fSlcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBtb3Rpb25WYWx1ZXMpIHtcbiAgICAgICAgdmFsdWVzW2tleV0gPSByZXNvbHZlTW90aW9uVmFsdWUobW90aW9uVmFsdWVzW2tleV0pXG4gICAgfVxuXG4gICAgbGV0IHsgaW5pdGlhbCwgYW5pbWF0ZSB9ID0gcHJvcHNcbiAgICBjb25zdCBpc0NvbnRyb2xsaW5nVmFyaWFudHMgPSBjaGVja0lzQ29udHJvbGxpbmdWYXJpYW50cyhwcm9wcylcbiAgICBjb25zdCBpc1ZhcmlhbnROb2RlID0gY2hlY2tJc1ZhcmlhbnROb2RlKHByb3BzKVxuXG4gICAgaWYgKFxuICAgICAgICBjb250ZXh0ICYmXG4gICAgICAgIGlzVmFyaWFudE5vZGUgJiZcbiAgICAgICAgIWlzQ29udHJvbGxpbmdWYXJpYW50cyAmJlxuICAgICAgICBwcm9wcy5pbmhlcml0ICE9PSBmYWxzZVxuICAgICkge1xuICAgICAgICBpZiAoaW5pdGlhbCA9PT0gdW5kZWZpbmVkKSBpbml0aWFsID0gY29udGV4dC5pbml0aWFsXG4gICAgICAgIGlmIChhbmltYXRlID09PSB1bmRlZmluZWQpIGFuaW1hdGUgPSBjb250ZXh0LmFuaW1hdGVcbiAgICB9XG5cbiAgICBsZXQgaXNJbml0aWFsQW5pbWF0aW9uQmxvY2tlZCA9IHByZXNlbmNlQ29udGV4dFxuICAgICAgICA/IHByZXNlbmNlQ29udGV4dC5pbml0aWFsID09PSBmYWxzZVxuICAgICAgICA6IGZhbHNlXG4gICAgaXNJbml0aWFsQW5pbWF0aW9uQmxvY2tlZCA9IGlzSW5pdGlhbEFuaW1hdGlvbkJsb2NrZWQgfHwgaW5pdGlhbCA9PT0gZmFsc2VcblxuICAgIGNvbnN0IHZhcmlhbnRUb1NldCA9IGlzSW5pdGlhbEFuaW1hdGlvbkJsb2NrZWQgPyBhbmltYXRlIDogaW5pdGlhbFxuXG4gICAgaWYgKFxuICAgICAgICB2YXJpYW50VG9TZXQgJiZcbiAgICAgICAgdHlwZW9mIHZhcmlhbnRUb1NldCAhPT0gXCJib29sZWFuXCIgJiZcbiAgICAgICAgIWlzQW5pbWF0aW9uQ29udHJvbHModmFyaWFudFRvU2V0KVxuICAgICkge1xuICAgICAgICBjb25zdCBsaXN0ID0gQXJyYXkuaXNBcnJheSh2YXJpYW50VG9TZXQpID8gdmFyaWFudFRvU2V0IDogW3ZhcmlhbnRUb1NldF1cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVWYXJpYW50RnJvbVByb3BzKHByb3BzLCBsaXN0W2ldIGFzIGFueSlcbiAgICAgICAgICAgIGlmIChyZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdHJhbnNpdGlvbkVuZCwgdHJhbnNpdGlvbiwgLi4udGFyZ2V0IH0gPSByZXNvbHZlZFxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWVUYXJnZXQgPSB0YXJnZXRba2V5IGFzIGtleW9mIHR5cGVvZiB0YXJnZXRdXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVUYXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIFRha2UgZmluYWwga2V5ZnJhbWUgaWYgdGhlIGluaXRpYWwgYW5pbWF0aW9uIGlzIGJsb2NrZWQgYmVjYXVzZVxuICAgICAgICAgICAgICAgICAgICAgICAgICogd2Ugd2FudCB0byBpbml0aWFsaXNlIGF0IHRoZSBlbmQgb2YgdGhhdCBibG9ja2VkIGFuaW1hdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBpc0luaXRpYWxBbmltYXRpb25CbG9ja2VkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZVRhcmdldC5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAwXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZVRhcmdldCA9IHZhbHVlVGFyZ2V0W2luZGV4XSBhcyBhbnlcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVRhcmdldCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzW2tleV0gPSB2YWx1ZVRhcmdldCBhcyBBbnlSZXNvbHZlZEtleWZyYW1lXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdHJhbnNpdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXNba2V5XSA9IHRyYW5zaXRpb25FbmRbXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXkgYXMga2V5b2YgdHlwZW9mIHRyYW5zaXRpb25FbmRcbiAgICAgICAgICAgICAgICAgICAgXSBhcyBBbnlSZXNvbHZlZEtleWZyYW1lXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlc1xufVxuXG5leHBvcnQgY29uc3QgbWFrZVVzZVZpc3VhbFN0YXRlID1cbiAgICA8SSwgUlM+KGNvbmZpZzogVXNlVmlzdWFsU3RhdGVDb25maWc8UlM+KTogVXNlVmlzdWFsU3RhdGU8SSwgUlM+ID0+XG4gICAgKHByb3BzOiBNb3Rpb25Qcm9wcywgaXNTdGF0aWM6IGJvb2xlYW4pOiBWaXN1YWxTdGF0ZTxJLCBSUz4gPT4ge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChNb3Rpb25Db250ZXh0KVxuICAgICAgICBjb25zdCBwcmVzZW5jZUNvbnRleHQgPSB1c2VDb250ZXh0KFByZXNlbmNlQ29udGV4dClcbiAgICAgICAgY29uc3QgbWFrZSA9ICgpID0+IG1ha2VTdGF0ZShjb25maWcsIHByb3BzLCBjb250ZXh0LCBwcmVzZW5jZUNvbnRleHQpXG5cbiAgICAgICAgcmV0dXJuIGlzU3RhdGljID8gbWFrZSgpIDogdXNlQ29uc3RhbnQobWFrZSlcbiAgICB9XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isValidMotionProp: () => (/* binding */ isValidMotionProp)\n/* harmony export */ });\n/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nconst validMotionProps = new Set([\n \"animate\",\n \"exit\",\n \"variants\",\n \"initial\",\n \"style\",\n \"values\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"custom\",\n \"inherit\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"_dragX\",\n \"_dragY\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"globalTapTarget\",\n \"propagate\",\n \"ignoreStrict\",\n \"viewport\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return (key.startsWith(\"while\") ||\n (key.startsWith(\"drag\") && key !== \"draggable\") ||\n key.startsWith(\"layout\") ||\n key.startsWith(\"onTap\") ||\n key.startsWith(\"onPan\") ||\n key.startsWith(\"onLayout\") ||\n validMotionProps.has(key));\n}\n\n\n//# sourceMappingURL=valid-prop.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3ZhbGlkLXByb3AubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvbW90aW9uL3V0aWxzL3ZhbGlkLXByb3AubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBsaXN0IG9mIGFsbCB2YWxpZCBNb3Rpb25Qcm9wcy5cbiAqXG4gKiBAcHJpdmF0ZVJlbWFya3NcbiAqIFRoaXMgZG9lc24ndCB0aHJvdyBpZiBhIGBNb3Rpb25Qcm9wYCBuYW1lIGlzIG1pc3NpbmcgLSBpdCBzaG91bGQuXG4gKi9cbmNvbnN0IHZhbGlkTW90aW9uUHJvcHMgPSBuZXcgU2V0KFtcbiAgICBcImFuaW1hdGVcIixcbiAgICBcImV4aXRcIixcbiAgICBcInZhcmlhbnRzXCIsXG4gICAgXCJpbml0aWFsXCIsXG4gICAgXCJzdHlsZVwiLFxuICAgIFwidmFsdWVzXCIsXG4gICAgXCJ2YXJpYW50c1wiLFxuICAgIFwidHJhbnNpdGlvblwiLFxuICAgIFwidHJhbnNmb3JtVGVtcGxhdGVcIixcbiAgICBcImN1c3RvbVwiLFxuICAgIFwiaW5oZXJpdFwiLFxuICAgIFwib25CZWZvcmVMYXlvdXRNZWFzdXJlXCIsXG4gICAgXCJvbkFuaW1hdGlvblN0YXJ0XCIsXG4gICAgXCJvbkFuaW1hdGlvbkNvbXBsZXRlXCIsXG4gICAgXCJvblVwZGF0ZVwiLFxuICAgIFwib25EcmFnU3RhcnRcIixcbiAgICBcIm9uRHJhZ1wiLFxuICAgIFwib25EcmFnRW5kXCIsXG4gICAgXCJvbk1lYXN1cmVEcmFnQ29uc3RyYWludHNcIixcbiAgICBcIm9uRGlyZWN0aW9uTG9ja1wiLFxuICAgIFwib25EcmFnVHJhbnNpdGlvbkVuZFwiLFxuICAgIFwiX2RyYWdYXCIsXG4gICAgXCJfZHJhZ1lcIixcbiAgICBcIm9uSG92ZXJTdGFydFwiLFxuICAgIFwib25Ib3ZlckVuZFwiLFxuICAgIFwib25WaWV3cG9ydEVudGVyXCIsXG4gICAgXCJvblZpZXdwb3J0TGVhdmVcIixcbiAgICBcImdsb2JhbFRhcFRhcmdldFwiLFxuICAgIFwicHJvcGFnYXRlXCIsXG4gICAgXCJpZ25vcmVTdHJpY3RcIixcbiAgICBcInZpZXdwb3J0XCIsXG5dKTtcbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIHByb3AgbmFtZSBpcyBhIHZhbGlkIGBNb3Rpb25Qcm9wYCBrZXkuXG4gKlxuICogQHBhcmFtIGtleSAtIE5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGNoZWNrXG4gKiBAcmV0dXJucyBgdHJ1ZWAgaXMga2V5IGlzIGEgdmFsaWQgYE1vdGlvblByb3BgLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gaXNWYWxpZE1vdGlvblByb3Aoa2V5KSB7XG4gICAgcmV0dXJuIChrZXkuc3RhcnRzV2l0aChcIndoaWxlXCIpIHx8XG4gICAgICAgIChrZXkuc3RhcnRzV2l0aChcImRyYWdcIikgJiYga2V5ICE9PSBcImRyYWdnYWJsZVwiKSB8fFxuICAgICAgICBrZXkuc3RhcnRzV2l0aChcImxheW91dFwiKSB8fFxuICAgICAgICBrZXkuc3RhcnRzV2l0aChcIm9uVGFwXCIpIHx8XG4gICAgICAgIGtleS5zdGFydHNXaXRoKFwib25QYW5cIikgfHxcbiAgICAgICAga2V5LnN0YXJ0c1dpdGgoXCJvbkxheW91dFwiKSB8fFxuICAgICAgICB2YWxpZE1vdGlvblByb3BzLmhhcyhrZXkpKTtcbn1cblxuZXhwb3J0IHsgaXNWYWxpZE1vdGlvblByb3AgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZhbGlkLXByb3AubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createMotionProxy: () => (/* binding */ createMotionProxy)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var _motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/index.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/index.mjs\");\n\n\n\nfunction createMotionProxy(preloadedFeatures, createVisualElement) {\n if (typeof Proxy === \"undefined\") {\n return _motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n const componentCache = new Map();\n const factory = (Component, options) => {\n return (0,_motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent)(Component, options, preloadedFeatures, createVisualElement);\n };\n /**\n * Support for deprecated`motion(Component)` pattern\n */\n const deprecatedFactoryFunction = (Component, options) => {\n if (true) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warnOnce)(false, \"motion() is deprecated. Use motion.create() instead.\");\n }\n return factory(Component, options);\n };\n return new Proxy(deprecatedFactoryFunction, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: (_target, key) => {\n if (key === \"create\")\n return factory;\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, (0,_motion_index_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionComponent)(key, undefined, preloadedFeatures, createVisualElement));\n }\n return componentCache.get(key);\n },\n });\n}\n\n\n//# sourceMappingURL=create-proxy.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvY3JlYXRlLXByb3h5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBd0M7QUFDdUI7O0FBRS9EO0FBQ0E7QUFDQSxlQUFlLG9FQUFxQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsd0VBQXFCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLElBQXFDO0FBQ2pELFlBQVksc0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0Msd0VBQXFCO0FBQzdEO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvY3JlYXRlLXByb3h5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBjcmVhdGVNb3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9tb3Rpb24vaW5kZXgubWpzJztcblxuZnVuY3Rpb24gY3JlYXRlTW90aW9uUHJveHkocHJlbG9hZGVkRmVhdHVyZXMsIGNyZWF0ZVZpc3VhbEVsZW1lbnQpIHtcbiAgICBpZiAodHlwZW9mIFByb3h5ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVNb3Rpb25Db21wb25lbnQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEEgY2FjaGUgb2YgZ2VuZXJhdGVkIGBtb3Rpb25gIGNvbXBvbmVudHMsIGUuZyBgbW90aW9uLmRpdmAsIGBtb3Rpb24uaW5wdXRgIGV0Yy5cbiAgICAgKiBSYXRoZXIgdGhhbiBnZW5lcmF0aW5nIHRoZW0gYW5ldyBldmVyeSByZW5kZXIuXG4gICAgICovXG4gICAgY29uc3QgY29tcG9uZW50Q2FjaGUgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgZmFjdG9yeSA9IChDb21wb25lbnQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZU1vdGlvbkNvbXBvbmVudChDb21wb25lbnQsIG9wdGlvbnMsIHByZWxvYWRlZEZlYXR1cmVzLCBjcmVhdGVWaXN1YWxFbGVtZW50KTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFN1cHBvcnQgZm9yIGRlcHJlY2F0ZWRgbW90aW9uKENvbXBvbmVudClgIHBhdHRlcm5cbiAgICAgKi9cbiAgICBjb25zdCBkZXByZWNhdGVkRmFjdG9yeUZ1bmN0aW9uID0gKENvbXBvbmVudCwgb3B0aW9ucykgPT4ge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICB3YXJuT25jZShmYWxzZSwgXCJtb3Rpb24oKSBpcyBkZXByZWNhdGVkLiBVc2UgbW90aW9uLmNyZWF0ZSgpIGluc3RlYWQuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWN0b3J5KENvbXBvbmVudCwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICByZXR1cm4gbmV3IFByb3h5KGRlcHJlY2F0ZWRGYWN0b3J5RnVuY3Rpb24sIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIENhbGxlZCB3aGVuIGBtb3Rpb25gIGlzIHJlZmVyZW5jZWQgd2l0aCBhIHByb3A6IGBtb3Rpb24uZGl2YCwgYG1vdGlvbi5pbnB1dGAgZXRjLlxuICAgICAgICAgKiBUaGUgcHJvcCBuYW1lIGlzIHBhc3NlZCB0aHJvdWdoIGFzIGBrZXlgIGFuZCB3ZSBjYW4gdXNlIHRoYXQgdG8gZ2VuZXJhdGUgYSBgbW90aW9uYFxuICAgICAgICAgKiBET00gY29tcG9uZW50IHdpdGggdGhhdCBuYW1lLlxuICAgICAgICAgKi9cbiAgICAgICAgZ2V0OiAoX3RhcmdldCwga2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSBcImNyZWF0ZVwiKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWN0b3J5O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGVsZW1lbnQgZG9lc24ndCBleGlzdCBpbiB0aGUgY29tcG9uZW50IGNhY2hlLCBjcmVhdGUgaXQgYW5kIGNhY2hlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoIWNvbXBvbmVudENhY2hlLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50Q2FjaGUuc2V0KGtleSwgY3JlYXRlTW90aW9uQ29tcG9uZW50KGtleSwgdW5kZWZpbmVkLCBwcmVsb2FkZWRGZWF0dXJlcywgY3JlYXRlVmlzdWFsRWxlbWVudCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudENhY2hlLmdldChrZXkpO1xuICAgICAgICB9LFxuICAgIH0pO1xufVxuXG5leHBvcnQgeyBjcmVhdGVNb3Rpb25Qcm94eSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLXByb3h5Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ featureBundle: () => (/* binding */ featureBundle)\n/* harmony export */ });\n/* harmony import */ var _motion_features_animations_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../motion/features/animations.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/animations.mjs\");\n/* harmony import */ var _motion_features_drag_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../motion/features/drag.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/drag.mjs\");\n/* harmony import */ var _motion_features_gestures_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../motion/features/gestures.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs\");\n/* harmony import */ var _motion_features_layout_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../motion/features/layout.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/features/layout.mjs\");\n\n\n\n\n\nconst featureBundle = {\n ..._motion_features_animations_mjs__WEBPACK_IMPORTED_MODULE_0__.animations,\n ..._motion_features_gestures_mjs__WEBPACK_IMPORTED_MODULE_1__.gestureAnimations,\n ..._motion_features_drag_mjs__WEBPACK_IMPORTED_MODULE_2__.drag,\n ..._motion_features_layout_mjs__WEBPACK_IMPORTED_MODULE_3__.layout,\n};\n\n\n//# sourceMappingURL=feature-bundle.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvbW90aW9uL2ZlYXR1cmUtYnVuZGxlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFxRTtBQUNaO0FBQ2lCO0FBQ2I7O0FBRTdEO0FBQ0EsT0FBTyx1RUFBVTtBQUNqQixPQUFPLDRFQUFpQjtBQUN4QixPQUFPLDJEQUFJO0FBQ1gsT0FBTywrREFBTTtBQUNiOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvbW90aW9uL2ZlYXR1cmUtYnVuZGxlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRpb25zIH0gZnJvbSAnLi4vLi4vLi4vbW90aW9uL2ZlYXR1cmVzL2FuaW1hdGlvbnMubWpzJztcbmltcG9ydCB7IGRyYWcgfSBmcm9tICcuLi8uLi8uLi9tb3Rpb24vZmVhdHVyZXMvZHJhZy5tanMnO1xuaW1wb3J0IHsgZ2VzdHVyZUFuaW1hdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9tb3Rpb24vZmVhdHVyZXMvZ2VzdHVyZXMubWpzJztcbmltcG9ydCB7IGxheW91dCB9IGZyb20gJy4uLy4uLy4uL21vdGlvbi9mZWF0dXJlcy9sYXlvdXQubWpzJztcblxuY29uc3QgZmVhdHVyZUJ1bmRsZSA9IHtcbiAgICAuLi5hbmltYXRpb25zLFxuICAgIC4uLmdlc3R1cmVBbmltYXRpb25zLFxuICAgIC4uLmRyYWcsXG4gICAgLi4ubGF5b3V0LFxufTtcblxuZXhwb3J0IHsgZmVhdHVyZUJ1bmRsZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmVhdHVyZS1idW5kbGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ motion: () => (/* binding */ motion)\n/* harmony export */ });\n/* harmony import */ var _dom_create_visual_element_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dom/create-visual-element.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs\");\n/* harmony import */ var _create_proxy_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../create-proxy.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/create-proxy.mjs\");\n/* harmony import */ var _feature_bundle_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./feature-bundle.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs\");\n\n\n\n\nconst motion = /*@__PURE__*/ (0,_create_proxy_mjs__WEBPACK_IMPORTED_MODULE_0__.createMotionProxy)(_feature_bundle_mjs__WEBPACK_IMPORTED_MODULE_1__.featureBundle, _dom_create_visual_element_mjs__WEBPACK_IMPORTED_MODULE_2__.createDomVisualElement);\n\n\n//# sourceMappingURL=proxy.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2NvbXBvbmVudHMvbW90aW9uL3Byb3h5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTZFO0FBQ3JCO0FBQ0g7O0FBRXJELDZCQUE2QixvRUFBaUIsQ0FBQyw4REFBYSxFQUFFLGtGQUFzQjs7QUFFbEU7QUFDbEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9jb21wb25lbnRzL21vdGlvbi9wcm94eS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlRG9tVmlzdWFsRWxlbWVudCB9IGZyb20gJy4uLy4uL2RvbS9jcmVhdGUtdmlzdWFsLWVsZW1lbnQubWpzJztcbmltcG9ydCB7IGNyZWF0ZU1vdGlvblByb3h5IH0gZnJvbSAnLi4vY3JlYXRlLXByb3h5Lm1qcyc7XG5pbXBvcnQgeyBmZWF0dXJlQnVuZGxlIH0gZnJvbSAnLi9mZWF0dXJlLWJ1bmRsZS5tanMnO1xuXG5jb25zdCBtb3Rpb24gPSAvKkBfX1BVUkVfXyovIGNyZWF0ZU1vdGlvblByb3h5KGZlYXR1cmVCdW5kbGUsIGNyZWF0ZURvbVZpc3VhbEVsZW1lbnQpO1xuXG5leHBvcnQgeyBtb3Rpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXByb3h5Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createDomVisualElement: () => (/* binding */ createDomVisualElement)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/is-svg-component.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n\n\n\n\nconst createDomVisualElement = (Component, options) => {\n /**\n * Use explicit isSVG override if provided, otherwise auto-detect\n */\n const isSVG = options.isSVG ?? (0,_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__.isSVGComponent)(Component);\n return isSVG\n ? new motion_dom__WEBPACK_IMPORTED_MODULE_2__.SVGVisualElement(options)\n : new motion_dom__WEBPACK_IMPORTED_MODULE_3__.HTMLVisualElement(options, {\n allowProjection: Component !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment,\n });\n};\n\n\n//# sourceMappingURL=create-visual-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS9jcmVhdGUtdmlzdWFsLWVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWlFO0FBQ2hDO0FBQzZCOztBQUU5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQywyRUFBYztBQUNqRDtBQUNBLGNBQWMsd0RBQWdCO0FBQzlCLGNBQWMseURBQWlCO0FBQy9CLDJDQUEyQywyQ0FBUTtBQUNuRCxTQUFTO0FBQ1Q7O0FBRWtDO0FBQ2xDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL2NyZWF0ZS12aXN1YWwtZWxlbWVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU1ZHVmlzdWFsRWxlbWVudCwgSFRNTFZpc3VhbEVsZW1lbnQgfSBmcm9tICdtb3Rpb24tZG9tJztcbmltcG9ydCB7IEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNTVkdDb21wb25lbnQgfSBmcm9tICcuL3V0aWxzL2lzLXN2Zy1jb21wb25lbnQubWpzJztcblxuY29uc3QgY3JlYXRlRG9tVmlzdWFsRWxlbWVudCA9IChDb21wb25lbnQsIG9wdGlvbnMpID0+IHtcbiAgICAvKipcbiAgICAgKiBVc2UgZXhwbGljaXQgaXNTVkcgb3ZlcnJpZGUgaWYgcHJvdmlkZWQsIG90aGVyd2lzZSBhdXRvLWRldGVjdFxuICAgICAqL1xuICAgIGNvbnN0IGlzU1ZHID0gb3B0aW9ucy5pc1NWRyA/PyBpc1NWR0NvbXBvbmVudChDb21wb25lbnQpO1xuICAgIHJldHVybiBpc1NWR1xuICAgICAgICA/IG5ldyBTVkdWaXN1YWxFbGVtZW50KG9wdGlvbnMpXG4gICAgICAgIDogbmV3IEhUTUxWaXN1YWxFbGVtZW50KG9wdGlvbnMsIHtcbiAgICAgICAgICAgIGFsbG93UHJvamVjdGlvbjogQ29tcG9uZW50ICE9PSBGcmFnbWVudCxcbiAgICAgICAgfSk7XG59O1xuXG5leHBvcnQgeyBjcmVhdGVEb21WaXN1YWxFbGVtZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtdmlzdWFsLWVsZW1lbnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/use-render.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useRender: () => (/* binding */ useRender)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../html/use-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\");\n/* harmony import */ var _svg_use_props_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../svg/use-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs\");\n/* harmony import */ var _utils_filter_props_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/filter-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs\");\n/* harmony import */ var _utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/is-svg-component.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\");\n/* __next_internal_client_entry_do_not_use__ useRender auto */ var _s = $RefreshSig$();\n\n\n\n\n\n\nfunction useRender(Component, props, ref, param, isStatic) {\n let { latestValues } = param, forwardMotionProps = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : false, isSVG = arguments.length > 6 ? arguments[6] : void 0;\n _s();\n const useVisualProps = (isSVG !== null && isSVG !== void 0 ? isSVG : (0,_utils_is_svg_component_mjs__WEBPACK_IMPORTED_MODULE_1__.isSVGComponent)(Component)) ? _svg_use_props_mjs__WEBPACK_IMPORTED_MODULE_2__.useSVGProps : _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_3__.useHTMLProps;\n const visualProps = useVisualProps(props, latestValues, isStatic, Component);\n const filteredProps = (0,_utils_filter_props_mjs__WEBPACK_IMPORTED_MODULE_4__.filterProps)(props, typeof Component === \"string\", forwardMotionProps);\n const elementProps = Component !== react__WEBPACK_IMPORTED_MODULE_0__.Fragment ? {\n ...filteredProps,\n ...visualProps,\n ref\n } : {};\n /**\n * If component has been handed a motion value as its child,\n * memoise its initial value and render that. Subsequent updates\n * will be handled by the onChange handler\n */ const { children } = props;\n const renderedChildren = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useRender.useMemo[renderedChildren]\": ()=>(0,motion_dom__WEBPACK_IMPORTED_MODULE_5__.isMotionValue)(children) ? children.get() : children\n }[\"useRender.useMemo[renderedChildren]\"], [\n children\n ]);\n return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(Component, {\n ...elementProps,\n children: renderedChildren\n });\n}\n_s(useRender, \"pOEkb9VCzNFDbYF6ZAwinK0v/WY=\", true);\n //# sourceMappingURL=use-render.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91c2UtcmVuZGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQTRCSTtJQUdBO0lBTUE7Ozs7OztJQVFBOzs7O0tBSUcsR0FDSDtJQUNBOytDQUFBOzhDQUFBO1FBQUE7S0FBQTs7UUFNSTtRQUNBO0lBQ0g7QUFDTCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL3JlbmRlci9kb20vdXNlLXJlbmRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyBpc01vdGlvblZhbHVlIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgRnJhZ21lbnQsIGNyZWF0ZUVsZW1lbnQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vLi4vbW90aW9uL3R5cGVzXCJcbmltcG9ydCB7IFZpc3VhbFN0YXRlIH0gZnJvbSBcIi4uLy4uL21vdGlvbi91dGlscy91c2UtdmlzdWFsLXN0YXRlXCJcbmltcG9ydCB7IEhUTUxSZW5kZXJTdGF0ZSB9IGZyb20gXCIuLi9odG1sL3R5cGVzXCJcbmltcG9ydCB7IHVzZUhUTUxQcm9wcyB9IGZyb20gXCIuLi9odG1sL3VzZS1wcm9wc1wiXG5pbXBvcnQgeyBTVkdSZW5kZXJTdGF0ZSB9IGZyb20gXCIuLi9zdmcvdHlwZXNcIlxuaW1wb3J0IHsgdXNlU1ZHUHJvcHMgfSBmcm9tIFwiLi4vc3ZnL3VzZS1wcm9wc1wiXG5pbXBvcnQgeyBET01Nb3Rpb25Db21wb25lbnRzIH0gZnJvbSBcIi4vdHlwZXNcIlxuaW1wb3J0IHsgZmlsdGVyUHJvcHMgfSBmcm9tIFwiLi91dGlscy9maWx0ZXItcHJvcHNcIlxuaW1wb3J0IHsgaXNTVkdDb21wb25lbnQgfSBmcm9tIFwiLi91dGlscy9pcy1zdmctY29tcG9uZW50XCJcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVJlbmRlcjxcbiAgICBQcm9wcyA9IHt9LFxuICAgIFRhZ05hbWUgZXh0ZW5kcyBrZXlvZiBET01Nb3Rpb25Db21wb25lbnRzIHwgc3RyaW5nID0gXCJkaXZcIlxuPihcbiAgICBDb21wb25lbnQ6IFRhZ05hbWUgfCBzdHJpbmcgfCBSZWFjdC5Db21wb25lbnRUeXBlPFByb3BzPixcbiAgICBwcm9wczogTW90aW9uUHJvcHMsXG4gICAgcmVmOiBSZWFjdC5SZWY8SFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50PixcbiAgICB7XG4gICAgICAgIGxhdGVzdFZhbHVlcyxcbiAgICB9OiBWaXN1YWxTdGF0ZTxIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQsIEhUTUxSZW5kZXJTdGF0ZSB8IFNWR1JlbmRlclN0YXRlPixcbiAgICBpc1N0YXRpYzogYm9vbGVhbixcbiAgICBmb3J3YXJkTW90aW9uUHJvcHM6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBpc1NWRz86IGJvb2xlYW5cbikge1xuICAgIGNvbnN0IHVzZVZpc3VhbFByb3BzID1cbiAgICAgICAgKGlzU1ZHID8/IGlzU1ZHQ29tcG9uZW50KENvbXBvbmVudCkpID8gdXNlU1ZHUHJvcHMgOiB1c2VIVE1MUHJvcHNcblxuICAgIGNvbnN0IHZpc3VhbFByb3BzID0gdXNlVmlzdWFsUHJvcHMoXG4gICAgICAgIHByb3BzIGFzIGFueSxcbiAgICAgICAgbGF0ZXN0VmFsdWVzLFxuICAgICAgICBpc1N0YXRpYyxcbiAgICAgICAgQ29tcG9uZW50IGFzIGFueVxuICAgIClcbiAgICBjb25zdCBmaWx0ZXJlZFByb3BzID0gZmlsdGVyUHJvcHMoXG4gICAgICAgIHByb3BzLFxuICAgICAgICB0eXBlb2YgQ29tcG9uZW50ID09PSBcInN0cmluZ1wiLFxuICAgICAgICBmb3J3YXJkTW90aW9uUHJvcHNcbiAgICApXG4gICAgY29uc3QgZWxlbWVudFByb3BzID1cbiAgICAgICAgQ29tcG9uZW50ICE9PSBGcmFnbWVudCA/IHsgLi4uZmlsdGVyZWRQcm9wcywgLi4udmlzdWFsUHJvcHMsIHJlZiB9IDoge31cblxuICAgIC8qKlxuICAgICAqIElmIGNvbXBvbmVudCBoYXMgYmVlbiBoYW5kZWQgYSBtb3Rpb24gdmFsdWUgYXMgaXRzIGNoaWxkLFxuICAgICAqIG1lbW9pc2UgaXRzIGluaXRpYWwgdmFsdWUgYW5kIHJlbmRlciB0aGF0LiBTdWJzZXF1ZW50IHVwZGF0ZXNcbiAgICAgKiB3aWxsIGJlIGhhbmRsZWQgYnkgdGhlIG9uQ2hhbmdlIGhhbmRsZXJcbiAgICAgKi9cbiAgICBjb25zdCB7IGNoaWxkcmVuIH0gPSBwcm9wc1xuICAgIGNvbnN0IHJlbmRlcmVkQ2hpbGRyZW4gPSB1c2VNZW1vKFxuICAgICAgICAoKSA9PiAoaXNNb3Rpb25WYWx1ZShjaGlsZHJlbikgPyBjaGlsZHJlbi5nZXQoKSA6IGNoaWxkcmVuKSxcbiAgICAgICAgW2NoaWxkcmVuXVxuICAgIClcblxuICAgIHJldHVybiBjcmVhdGVFbGVtZW50PGFueT4oQ29tcG9uZW50LCB7XG4gICAgICAgIC4uLmVsZW1lbnRQcm9wcyxcbiAgICAgICAgY2hpbGRyZW46IHJlbmRlcmVkQ2hpbGRyZW4sXG4gICAgfSlcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ filterProps: () => (/* binding */ filterProps),\n/* harmony export */ loadExternalIsValidProp: () => (/* binding */ loadExternalIsValidProp)\n/* harmony export */ });\n/* harmony import */ var _motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../motion/utils/valid-prop.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs\");\n\n\nlet shouldForward = (key) => !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key);\nfunction loadExternalIsValidProp(isValidProp) {\n if (typeof isValidProp !== \"function\")\n return;\n // Explicitly filter our events\n shouldForward = (key) => key.startsWith(\"on\") ? !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key) : isValidProp(key);\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n const filteredProps = {};\n for (const key in props) {\n /**\n * values is considered a valid prop by Emotion, so if it's present\n * this will be rendered out to the DOM unless explicitly filtered.\n *\n * We check the type as it could be used with the `feColorMatrix`\n * element, which we support.\n */\n if (key === \"values\" && typeof props.values === \"object\")\n continue;\n if (shouldForward(key) ||\n (forwardMotionProps === true && (0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key)) ||\n (!isDom && !(0,_motion_utils_valid_prop_mjs__WEBPACK_IMPORTED_MODULE_0__.isValidMotionProp)(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] &&\n key.startsWith(\"onDrag\"))) {\n filteredProps[key] =\n props[key];\n }\n }\n return filteredProps;\n}\n\n\n//# sourceMappingURL=filter-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9maWx0ZXItcHJvcHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5RTs7QUFFekUsOEJBQThCLCtFQUFpQjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCwrRUFBaUI7QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QywrRUFBaUI7QUFDN0Qsd0JBQXdCLCtFQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdEO0FBQ2hEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL3V0aWxzL2ZpbHRlci1wcm9wcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNWYWxpZE1vdGlvblByb3AgfSBmcm9tICcuLi8uLi8uLi9tb3Rpb24vdXRpbHMvdmFsaWQtcHJvcC5tanMnO1xuXG5sZXQgc2hvdWxkRm9yd2FyZCA9IChrZXkpID0+ICFpc1ZhbGlkTW90aW9uUHJvcChrZXkpO1xuZnVuY3Rpb24gbG9hZEV4dGVybmFsSXNWYWxpZFByb3AoaXNWYWxpZFByb3ApIHtcbiAgICBpZiAodHlwZW9mIGlzVmFsaWRQcm9wICE9PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIHJldHVybjtcbiAgICAvLyBFeHBsaWNpdGx5IGZpbHRlciBvdXIgZXZlbnRzXG4gICAgc2hvdWxkRm9yd2FyZCA9IChrZXkpID0+IGtleS5zdGFydHNXaXRoKFwib25cIikgPyAhaXNWYWxpZE1vdGlvblByb3Aoa2V5KSA6IGlzVmFsaWRQcm9wKGtleSk7XG59XG4vKipcbiAqIEVtb3Rpb24gYW5kIFN0eWxlZCBDb21wb25lbnRzIGJvdGggYWxsb3cgdXNlcnMgdG8gcGFzcyB0aHJvdWdoIGFyYml0cmFyeSBwcm9wcyB0byB0aGVpciBjb21wb25lbnRzXG4gKiB0byBkeW5hbWljYWxseSBnZW5lcmF0ZSBDU1MuIFRoZXkgYm90aCB1c2UgdGhlIGBAZW1vdGlvbi9pcy1wcm9wLXZhbGlkYCBwYWNrYWdlIHRvIGRldGVybWluZSB3aGljaFxuICogb2YgdGhlc2Ugc2hvdWxkIGJlIHBhc3NlZCB0byB0aGUgdW5kZXJseWluZyBET00gbm9kZS5cbiAqXG4gKiBIb3dldmVyLCB3aGVuIHN0eWxpbmcgYSBNb3Rpb24gY29tcG9uZW50IGBzdHlsZWQobW90aW9uLmRpdilgLCBib3RoIHBhY2thZ2VzIHBhc3MgdGhyb3VnaCAqYWxsKiBwcm9wc1xuICogYXMgaXQncyBzZWVuIGFzIGFuIGFyYml0cmFyeSBjb21wb25lbnQgcmF0aGVyIHRoYW4gYSBET00gbm9kZS4gTW90aW9uIG9ubHkgYWxsb3dzIGFyYml0cmFyeSBwcm9wc1xuICogcGFzc2VkIHRocm91Z2ggdGhlIGBjdXN0b21gIHByb3Agc28gaXQgZG9lc24ndCAqbmVlZCogdGhlIHBheWxvYWQgb3IgY29tcHV0YXRpb25hbCBvdmVyaGVhZCBvZlxuICogYEBlbW90aW9uL2lzLXByb3AtdmFsaWRgLCBob3dldmVyIHRvIGZpeCB0aGlzIHByb2JsZW0gd2UgbmVlZCB0byB1c2UgaXQuXG4gKlxuICogQnkgbWFraW5nIGl0IGFuIG9wdGlvbmFsRGVwZW5kZW5jeSB3ZSBjYW4gb2ZmZXIgdGhpcyBmdW5jdGlvbmFsaXR5IG9ubHkgaW4gdGhlIHNpdHVhdGlvbnMgd2hlcmUgaXQnc1xuICogYWN0dWFsbHkgcmVxdWlyZWQuXG4gKi9cbnRyeSB7XG4gICAgLyoqXG4gICAgICogV2UgYXR0ZW1wdCB0byBpbXBvcnQgdGhpcyBwYWNrYWdlIGJ1dCByZXF1aXJlIHdvbid0IGJlIGRlZmluZWQgaW4gZXNtIGVudmlyb25tZW50cywgaW4gdGhhdCBjYXNlXG4gICAgICogaXNQcm9wVmFsaWQgd2lsbCBoYXZlIHRvIGJlIHByb3ZpZGVkIHZpYSBgTW90aW9uQ29udGV4dGAuIEluIGEgNi4wLjAgdGhpcyBzaG91bGQgcHJvYmFibHkgYmUgcmVtb3ZlZFxuICAgICAqIGluIGZhdm91ciBvZiBleHBsaWNpdCBpbmplY3Rpb24uXG4gICAgICovXG4gICAgbG9hZEV4dGVybmFsSXNWYWxpZFByb3AocmVxdWlyZShcIkBlbW90aW9uL2lzLXByb3AtdmFsaWRcIikuZGVmYXVsdCk7XG59XG5jYXRjaCB7XG4gICAgLy8gV2UgZG9uJ3QgbmVlZCB0byBhY3R1YWxseSBkbyBhbnl0aGluZyBoZXJlIC0gdGhlIGZhbGxiYWNrIGlzIHRoZSBleGlzdGluZyBgaXNQcm9wVmFsaWRgLlxufVxuZnVuY3Rpb24gZmlsdGVyUHJvcHMocHJvcHMsIGlzRG9tLCBmb3J3YXJkTW90aW9uUHJvcHMpIHtcbiAgICBjb25zdCBmaWx0ZXJlZFByb3BzID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gcHJvcHMpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHZhbHVlcyBpcyBjb25zaWRlcmVkIGEgdmFsaWQgcHJvcCBieSBFbW90aW9uLCBzbyBpZiBpdCdzIHByZXNlbnRcbiAgICAgICAgICogdGhpcyB3aWxsIGJlIHJlbmRlcmVkIG91dCB0byB0aGUgRE9NIHVubGVzcyBleHBsaWNpdGx5IGZpbHRlcmVkLlxuICAgICAgICAgKlxuICAgICAgICAgKiBXZSBjaGVjayB0aGUgdHlwZSBhcyBpdCBjb3VsZCBiZSB1c2VkIHdpdGggdGhlIGBmZUNvbG9yTWF0cml4YFxuICAgICAgICAgKiBlbGVtZW50LCB3aGljaCB3ZSBzdXBwb3J0LlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKGtleSA9PT0gXCJ2YWx1ZXNcIiAmJiB0eXBlb2YgcHJvcHMudmFsdWVzID09PSBcIm9iamVjdFwiKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGlmIChzaG91bGRGb3J3YXJkKGtleSkgfHxcbiAgICAgICAgICAgIChmb3J3YXJkTW90aW9uUHJvcHMgPT09IHRydWUgJiYgaXNWYWxpZE1vdGlvblByb3Aoa2V5KSkgfHxcbiAgICAgICAgICAgICghaXNEb20gJiYgIWlzVmFsaWRNb3Rpb25Qcm9wKGtleSkpIHx8XG4gICAgICAgICAgICAvLyBJZiB0cnlpbmcgdG8gdXNlIG5hdGl2ZSBIVE1MIGRyYWcgZXZlbnRzLCBmb3J3YXJkIGRyYWcgbGlzdGVuZXJzXG4gICAgICAgICAgICAocHJvcHNbXCJkcmFnZ2FibGVcIl0gJiZcbiAgICAgICAgICAgICAgICBrZXkuc3RhcnRzV2l0aChcIm9uRHJhZ1wiKSkpIHtcbiAgICAgICAgICAgIGZpbHRlcmVkUHJvcHNba2V5XSA9XG4gICAgICAgICAgICAgICAgcHJvcHNba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyZWRQcm9wcztcbn1cblxuZXhwb3J0IHsgZmlsdGVyUHJvcHMsIGxvYWRFeHRlcm5hbElzVmFsaWRQcm9wIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1maWx0ZXItcHJvcHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGComponent: () => (/* binding */ isSVGComponent)\n/* harmony export */ });\n/* harmony import */ var _svg_lowercase_elements_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../svg/lowercase-elements.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs\");\n\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n _svg_lowercase_elements_mjs__WEBPACK_IMPORTED_MODULE_0__.lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/u.test(Component)) {\n return true;\n }\n return false;\n}\n\n\n//# sourceMappingURL=is-svg-component.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9pcy1zdmctY29tcG9uZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF3RTs7QUFFeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksNkVBQW9CO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTBCO0FBQzFCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvZG9tL3V0aWxzL2lzLXN2Zy1jb21wb25lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvd2VyY2FzZVNWR0VsZW1lbnRzIH0gZnJvbSAnLi4vLi4vc3ZnL2xvd2VyY2FzZS1lbGVtZW50cy5tanMnO1xuXG5mdW5jdGlvbiBpc1NWR0NvbXBvbmVudChDb21wb25lbnQpIHtcbiAgICBpZiAoXG4gICAgLyoqXG4gICAgICogSWYgaXQncyBub3QgYSBzdHJpbmcsIGl0J3MgYSBjdXN0b20gUmVhY3QgY29tcG9uZW50LiBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0XG4gICAgICogSFRNTCBjdXN0b20gUmVhY3QgY29tcG9uZW50cy5cbiAgICAgKi9cbiAgICB0eXBlb2YgQ29tcG9uZW50ICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBpdCBjb250YWlucyBhIGRhc2gsIHRoZSBlbGVtZW50IGlzIGEgY3VzdG9tIEhUTUwgd2ViY29tcG9uZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgQ29tcG9uZW50LmluY2x1ZGVzKFwiLVwiKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGVsc2UgaWYgKFxuICAgIC8qKlxuICAgICAqIElmIGl0J3MgaW4gb3VyIGxpc3Qgb2YgbG93ZXJjYXNlIFNWRyB0YWdzLCBpdCdzIGFuIFNWRyBjb21wb25lbnRcbiAgICAgKi9cbiAgICBsb3dlcmNhc2VTVkdFbGVtZW50cy5pbmRleE9mKENvbXBvbmVudCkgPiAtMSB8fFxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgaXQgY29udGFpbnMgYSBjYXBpdGFsIGxldHRlciwgaXQncyBhbiBTVkcgY29tcG9uZW50XG4gICAgICAgICAqL1xuICAgICAgICAvW0EtWl0vdS50ZXN0KENvbXBvbmVudCkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IHsgaXNTVkdDb21wb25lbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXN2Zy1jb21wb25lbnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useHTMLVisualState: () => (/* binding */ useHTMLVisualState)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\");\n/* harmony import */ var _motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/utils/use-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ useHTMLVisualState auto */ \n\n\nconst useHTMLVisualState = /*@__PURE__*/ (0,_motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__.makeUseVisualState)({\n scrapeMotionValuesFromProps: motion_dom__WEBPACK_IMPORTED_MODULE_1__.scrapeMotionValuesFromProps,\n createRenderState: _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__.createHtmlRenderState\n});\n //# sourceMappingURL=use-html-visual-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXNlLWh0bWwtdmlzdWFsLXN0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBTWE7SUFDVDtJQUNBO0FBQ0giLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL3NyYy9yZW5kZXIvaHRtbC91c2UtaHRtbC12aXN1YWwtc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCJcblxuaW1wb3J0IHsgc2NyYXBlSFRNTE1vdGlvblZhbHVlc0Zyb21Qcm9wcyB9IGZyb20gXCJtb3Rpb24tZG9tXCJcbmltcG9ydCB7IG1ha2VVc2VWaXN1YWxTdGF0ZSB9IGZyb20gXCIuLi8uLi9tb3Rpb24vdXRpbHMvdXNlLXZpc3VhbC1zdGF0ZVwiXG5pbXBvcnQgeyBjcmVhdGVIdG1sUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlXCJcblxuZXhwb3J0IGNvbnN0IHVzZUhUTUxWaXN1YWxTdGF0ZSA9IC8qQF9fUFVSRV9fKi8gbWFrZVVzZVZpc3VhbFN0YXRlKHtcbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHM6IHNjcmFwZUhUTUxNb3Rpb25WYWx1ZXNGcm9tUHJvcHMsXG4gICAgY3JlYXRlUmVuZGVyU3RhdGU6IGNyZWF0ZUh0bWxSZW5kZXJTdGF0ZSxcbn0pXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/html/use-props.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ copyRawValuesOnly: () => (/* binding */ copyRawValuesOnly),\n/* harmony export */ useHTMLProps: () => (/* binding */ useHTMLProps)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ copyRawValuesOnly,useHTMLProps auto */ var _s = $RefreshSig$(), _s1 = $RefreshSig$(), _s2 = $RefreshSig$();\n\n\n\nfunction copyRawValuesOnly(target, source, props) {\n for(const key in source){\n if (!(0,motion_dom__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(source[key]) && !(0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.isForcedMotionValue)(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues(param, visualState) {\n let { transformTemplate } = param;\n _s();\n return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useInitialMotionValues.useMemo\": ()=>{\n const state = (0,_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_3__.createHtmlRenderState)();\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_4__.buildHTMLStyles)(state, visualState, transformTemplate);\n return Object.assign({}, state.vars, state.style);\n }\n }[\"useInitialMotionValues.useMemo\"], [\n visualState\n ]);\n}\n_s(useInitialMotionValues, \"nwk+m61qLgjDVUp4IGV/072DDN4=\");\nfunction useStyle(props, visualState) {\n _s1();\n const styleProp = props.style || {};\n const style = {};\n /**\n * Copy non-Motion Values straight into style\n */ copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState));\n return style;\n}\n_s1(useStyle, \"/Sy6LYzJ66EazRcvQe1ceKYmJ6M=\", false, function() {\n return [\n useInitialMotionValues\n ];\n});\nfunction useHTMLProps(props, visualState) {\n _s2();\n // The `any` isn't ideal but it is the type of createElement props argument\n const htmlProps = {};\n const style = useStyle(props, visualState);\n if (props.drag && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect = style.WebkitUserSelect = style.WebkitTouchCallout = \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction = props.drag === true ? \"none\" : \"pan-\".concat(props.drag === \"x\" ? \"y\" : \"x\");\n }\n if (props.tabIndex === undefined && (props.onTap || props.onTapStart || props.whileTap)) {\n htmlProps.tabIndex = 0;\n }\n htmlProps.style = style;\n return htmlProps;\n}\n_s2(useHTMLProps, \"WJWu2yDa0dJ2LCrqC4EY4AJkLTI=\", false, function() {\n return [\n useStyle\n ];\n});\n //# sourceMappingURL=use-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXNlLXByb3BzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7SUFhSTtRQUNJOzs7O0FBSVI7QUFFQTtRQUFBOzs7O1lBS1E7WUFFQSwyREFBZSxDQUFmO1lBRUE7UUFDSjt5Q0FBQTtRQUFBO0tBQUE7QUFDSjtHQVhBO0FBYUE7O0lBSUk7O0lBR0E7O0tBRUcsR0FDSDtJQUVBO0lBRUE7QUFDSjtJQWZBOztRQVlJOzs7QUFLWTs7Ozs7OztRQVVSOztRQUdBLG1CQUNJLHlCQUNBLDJCQUNJOztRQUdSLDBDQUVRLFNBQ0E7O0lBR1osb0NBRUk7UUFFQTs7SUFHSjtJQUVBO0FBQ0o7SUFuQ2dCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvcmVuZGVyL2h0bWwvdXNlLXByb3BzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IEFueVJlc29sdmVkS2V5ZnJhbWUsIGJ1aWxkSFRNTFN0eWxlcywgaXNGb3JjZWRNb3Rpb25WYWx1ZSwgaXNNb3Rpb25WYWx1ZSwgTW90aW9uVmFsdWUgfSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgeyBIVE1MUHJvcHMsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IHsgTW90aW9uUHJvcHMgfSBmcm9tIFwiLi4vLi4vbW90aW9uL3R5cGVzXCJcbmltcG9ydCB7IFJlc29sdmVkVmFsdWVzIH0gZnJvbSBcIi4uL3R5cGVzXCJcbmltcG9ydCB7IGNyZWF0ZUh0bWxSZW5kZXJTdGF0ZSB9IGZyb20gXCIuL3V0aWxzL2NyZWF0ZS1yZW5kZXItc3RhdGVcIlxuXG5leHBvcnQgZnVuY3Rpb24gY29weVJhd1ZhbHVlc09ubHkoXG4gICAgdGFyZ2V0OiBSZXNvbHZlZFZhbHVlcyxcbiAgICBzb3VyY2U6IHsgW2tleTogc3RyaW5nXTogQW55UmVzb2x2ZWRLZXlmcmFtZSB8IE1vdGlvblZhbHVlIH0sXG4gICAgcHJvcHM6IE1vdGlvblByb3BzXG4pIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgICAgaWYgKCFpc01vdGlvblZhbHVlKHNvdXJjZVtrZXldKSAmJiAhaXNGb3JjZWRNb3Rpb25WYWx1ZShrZXksIHByb3BzKSkge1xuICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XSBhcyBBbnlSZXNvbHZlZEtleWZyYW1lXG4gICAgICAgIH1cbiAgICB9XG59XG5cbmZ1bmN0aW9uIHVzZUluaXRpYWxNb3Rpb25WYWx1ZXMoXG4gICAgeyB0cmFuc2Zvcm1UZW1wbGF0ZSB9OiBNb3Rpb25Qcm9wcyxcbiAgICB2aXN1YWxTdGF0ZTogUmVzb2x2ZWRWYWx1ZXNcbikge1xuICAgIHJldHVybiB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBjcmVhdGVIdG1sUmVuZGVyU3RhdGUoKVxuXG4gICAgICAgIGJ1aWxkSFRNTFN0eWxlcyhzdGF0ZSwgdmlzdWFsU3RhdGUsIHRyYW5zZm9ybVRlbXBsYXRlKVxuXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzdGF0ZS52YXJzLCBzdGF0ZS5zdHlsZSlcbiAgICB9LCBbdmlzdWFsU3RhdGVdKVxufVxuXG5mdW5jdGlvbiB1c2VTdHlsZShcbiAgICBwcm9wczogTW90aW9uUHJvcHMsXG4gICAgdmlzdWFsU3RhdGU6IFJlc29sdmVkVmFsdWVzXG4pOiBSZXNvbHZlZFZhbHVlcyB7XG4gICAgY29uc3Qgc3R5bGVQcm9wID0gcHJvcHMuc3R5bGUgfHwge31cbiAgICBjb25zdCBzdHlsZSA9IHt9XG5cbiAgICAvKipcbiAgICAgKiBDb3B5IG5vbi1Nb3Rpb24gVmFsdWVzIHN0cmFpZ2h0IGludG8gc3R5bGVcbiAgICAgKi9cbiAgICBjb3B5UmF3VmFsdWVzT25seShzdHlsZSwgc3R5bGVQcm9wIGFzIGFueSwgcHJvcHMpXG5cbiAgICBPYmplY3QuYXNzaWduKHN0eWxlLCB1c2VJbml0aWFsTW90aW9uVmFsdWVzKHByb3BzLCB2aXN1YWxTdGF0ZSkpXG5cbiAgICByZXR1cm4gc3R5bGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUhUTUxQcm9wcyhcbiAgICBwcm9wczogTW90aW9uUHJvcHMgJiBIVE1MUHJvcHM8SFRNTEVsZW1lbnQ+LFxuICAgIHZpc3VhbFN0YXRlOiBSZXNvbHZlZFZhbHVlc1xuKSB7XG4gICAgLy8gVGhlIGBhbnlgIGlzbid0IGlkZWFsIGJ1dCBpdCBpcyB0aGUgdHlwZSBvZiBjcmVhdGVFbGVtZW50IHByb3BzIGFyZ3VtZW50XG4gICAgY29uc3QgaHRtbFByb3BzOiBhbnkgPSB7fVxuICAgIGNvbnN0IHN0eWxlID0gdXNlU3R5bGUocHJvcHMsIHZpc3VhbFN0YXRlKVxuXG4gICAgaWYgKHByb3BzLmRyYWcgJiYgcHJvcHMuZHJhZ0xpc3RlbmVyICE9PSBmYWxzZSkge1xuICAgICAgICAvLyBEaXNhYmxlIHRoZSBnaG9zdCBlbGVtZW50IHdoZW4gYSB1c2VyIGRyYWdzXG4gICAgICAgIGh0bWxQcm9wcy5kcmFnZ2FibGUgPSBmYWxzZVxuXG4gICAgICAgIC8vIERpc2FibGUgdGV4dCBzZWxlY3Rpb25cbiAgICAgICAgc3R5bGUudXNlclNlbGVjdCA9XG4gICAgICAgICAgICBzdHlsZS5XZWJraXRVc2VyU2VsZWN0ID1cbiAgICAgICAgICAgIHN0eWxlLldlYmtpdFRvdWNoQ2FsbG91dCA9XG4gICAgICAgICAgICAgICAgXCJub25lXCJcblxuICAgICAgICAvLyBEaXNhYmxlIHNjcm9sbGluZyBvbiB0aGUgZHJhZ2dhYmxlIGRpcmVjdGlvblxuICAgICAgICBzdHlsZS50b3VjaEFjdGlvbiA9XG4gICAgICAgICAgICBwcm9wcy5kcmFnID09PSB0cnVlXG4gICAgICAgICAgICAgICAgPyBcIm5vbmVcIlxuICAgICAgICAgICAgICAgIDogYHBhbi0ke3Byb3BzLmRyYWcgPT09IFwieFwiID8gXCJ5XCIgOiBcInhcIn1gXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgICBwcm9wcy50YWJJbmRleCA9PT0gdW5kZWZpbmVkICYmXG4gICAgICAgIChwcm9wcy5vblRhcCB8fCBwcm9wcy5vblRhcFN0YXJ0IHx8IHByb3BzLndoaWxlVGFwKVxuICAgICkge1xuICAgICAgICBodG1sUHJvcHMudGFiSW5kZXggPSAwXG4gICAgfVxuXG4gICAgaHRtbFByb3BzLnN0eWxlID0gc3R5bGVcblxuICAgIHJldHVybiBodG1sUHJvcHNcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createHtmlRenderState: () => (/* binding */ createHtmlRenderState)\n/* harmony export */ });\nconst createHtmlRenderState = () => ({\n style: {},\n transform: {},\n transformOrigin: {},\n vars: {},\n});\n\n\n//# sourceMappingURL=create-render-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsYUFBYTtBQUNiLGlCQUFpQjtBQUNqQix1QkFBdUI7QUFDdkIsWUFBWTtBQUNaLENBQUM7O0FBRWdDO0FBQ2pDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy9yZW5kZXIvaHRtbC91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjcmVhdGVIdG1sUmVuZGVyU3RhdGUgPSAoKSA9PiAoe1xuICAgIHN0eWxlOiB7fSxcbiAgICB0cmFuc2Zvcm06IHt9LFxuICAgIHRyYW5zZm9ybU9yaWdpbjoge30sXG4gICAgdmFyczoge30sXG59KTtcblxuZXhwb3J0IHsgY3JlYXRlSHRtbFJlbmRlclN0YXRlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ lowercaseSVGElements: () => (/* binding */ lowercaseSVGElements)\n/* harmony export */ });\n/**\n * We keep these listed separately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nconst lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"switch\",\n \"symbol\",\n \"svg\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\n\n//# sourceMappingURL=lowercase-elements.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy9sb3dlcmNhc2UtZWxlbWVudHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvbG93ZXJjYXNlLWVsZW1lbnRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFdlIGtlZXAgdGhlc2UgbGlzdGVkIHNlcGFyYXRlbHkgYXMgd2UgdXNlIHRoZSBsb3dlcmNhc2UgdGFnIG5hbWVzIGFzIHBhcnRcbiAqIG9mIHRoZSBydW50aW1lIGJ1bmRsZSB0byBkZXRlY3QgU1ZHIGNvbXBvbmVudHNcbiAqL1xuY29uc3QgbG93ZXJjYXNlU1ZHRWxlbWVudHMgPSBbXG4gICAgXCJhbmltYXRlXCIsXG4gICAgXCJjaXJjbGVcIixcbiAgICBcImRlZnNcIixcbiAgICBcImRlc2NcIixcbiAgICBcImVsbGlwc2VcIixcbiAgICBcImdcIixcbiAgICBcImltYWdlXCIsXG4gICAgXCJsaW5lXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcIm1hcmtlclwiLFxuICAgIFwibWFza1wiLFxuICAgIFwibWV0YWRhdGFcIixcbiAgICBcInBhdGhcIixcbiAgICBcInBhdHRlcm5cIixcbiAgICBcInBvbHlnb25cIixcbiAgICBcInBvbHlsaW5lXCIsXG4gICAgXCJyZWN0XCIsXG4gICAgXCJzdG9wXCIsXG4gICAgXCJzd2l0Y2hcIixcbiAgICBcInN5bWJvbFwiLFxuICAgIFwic3ZnXCIsXG4gICAgXCJ0ZXh0XCIsXG4gICAgXCJ0c3BhblwiLFxuICAgIFwidXNlXCIsXG4gICAgXCJ2aWV3XCIsXG5dO1xuXG5leHBvcnQgeyBsb3dlcmNhc2VTVkdFbGVtZW50cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bG93ZXJjYXNlLWVsZW1lbnRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/use-props.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSVGProps: () => (/* binding */ useSVGProps)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs\");\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _html_use_props_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../html/use-props.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/use-props.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ useSVGProps auto */ var _s = $RefreshSig$();\n\n\n\n\nfunction useSVGProps(props, visualState, _isStatic, Component) {\n _s();\n const visualProps = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)({\n \"useSVGProps.useMemo[visualProps]\": ()=>{\n const state = (0,_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_1__.createSvgRenderState)();\n (0,motion_dom__WEBPACK_IMPORTED_MODULE_2__.buildSVGAttrs)(state, visualState, (0,motion_dom__WEBPACK_IMPORTED_MODULE_3__.isSVGTag)(Component), props.transformTemplate, props.style);\n return {\n ...state.attrs,\n style: {\n ...state.style\n }\n };\n }\n }[\"useSVGProps.useMemo[visualProps]\"], [\n visualState\n ]);\n if (props.style) {\n const rawStyles = {};\n (0,_html_use_props_mjs__WEBPACK_IMPORTED_MODULE_4__.copyRawValuesOnly)(rawStyles, props.style, props);\n visualProps.style = {\n ...rawStyles,\n ...visualProps.style\n };\n }\n return visualProps;\n}\n_s(useSVGProps, \"eiqa+9wkPNrwvDQrXOyiC3q3ueU=\");\n //# sourceMappingURL=use-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91c2UtcHJvcHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBU007O0lBTUY7NENBQUE7WUFDSTtZQUVBLHlEQUFhLENBQWI7OztnQkFVSTtvQkFBQTtnQkFBQTs7UUFFUjsyQ0FBQTtRQUFBO0tBQUE7SUFFQTs7O1FBR0k7WUFBQTtZQUFBO1FBQUE7O0lBR0o7QUFDSjtHQTlCTSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvc3JjL3JlbmRlci9zdmcvdXNlLXByb3BzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IGJ1aWxkU1ZHQXR0cnMsIGlzU1ZHVGFnIH0gZnJvbSBcIm1vdGlvbi1kb21cIlxuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgeyBNb3Rpb25Qcm9wcyB9IGZyb20gXCIuLi8uLi9tb3Rpb24vdHlwZXNcIlxuaW1wb3J0IHsgY29weVJhd1ZhbHVlc09ubHkgfSBmcm9tIFwiLi4vaHRtbC91c2UtcHJvcHNcIlxuaW1wb3J0IHsgUmVzb2x2ZWRWYWx1ZXMgfSBmcm9tIFwiLi4vdHlwZXNcIlxuaW1wb3J0IHsgY3JlYXRlU3ZnUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlXCJcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZVNWR1Byb3BzKFxuICAgIHByb3BzOiBNb3Rpb25Qcm9wcyxcbiAgICB2aXN1YWxTdGF0ZTogUmVzb2x2ZWRWYWx1ZXMsXG4gICAgX2lzU3RhdGljOiBib29sZWFuLFxuICAgIENvbXBvbmVudDogc3RyaW5nIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjx1bmtub3duPj5cbikge1xuICAgIGNvbnN0IHZpc3VhbFByb3BzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gY3JlYXRlU3ZnUmVuZGVyU3RhdGUoKVxuXG4gICAgICAgIGJ1aWxkU1ZHQXR0cnMoXG4gICAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICAgIHZpc3VhbFN0YXRlLFxuICAgICAgICAgICAgaXNTVkdUYWcoQ29tcG9uZW50KSxcbiAgICAgICAgICAgIHByb3BzLnRyYW5zZm9ybVRlbXBsYXRlLFxuICAgICAgICAgICAgcHJvcHMuc3R5bGVcbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5hdHRycyxcbiAgICAgICAgICAgIHN0eWxlOiB7IC4uLnN0YXRlLnN0eWxlIH0sXG4gICAgICAgIH1cbiAgICB9LCBbdmlzdWFsU3RhdGVdKVxuXG4gICAgaWYgKHByb3BzLnN0eWxlKSB7XG4gICAgICAgIGNvbnN0IHJhd1N0eWxlcyA9IHt9XG4gICAgICAgIGNvcHlSYXdWYWx1ZXNPbmx5KHJhd1N0eWxlcywgcHJvcHMuc3R5bGUgYXMgYW55LCBwcm9wcylcbiAgICAgICAgdmlzdWFsUHJvcHMuc3R5bGUgPSB7IC4uLnJhd1N0eWxlcywgLi4udmlzdWFsUHJvcHMuc3R5bGUgfVxuICAgIH1cblxuICAgIHJldHVybiB2aXN1YWxQcm9wc1xufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useSVGVisualState: () => (/* binding */ useSVGVisualState)\n/* harmony export */ });\n/* harmony import */ var motion_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-dom */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs\");\n/* harmony import */ var _motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../motion/utils/use-visual-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs\");\n/* harmony import */ var _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\");\n/* __next_internal_client_entry_do_not_use__ useSVGVisualState auto */ \n\n\nconst useSVGVisualState = /*@__PURE__*/ (0,_motion_utils_use_visual_state_mjs__WEBPACK_IMPORTED_MODULE_0__.makeUseVisualState)({\n scrapeMotionValuesFromProps: motion_dom__WEBPACK_IMPORTED_MODULE_1__.scrapeMotionValuesFromProps,\n createRenderState: _utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_2__.createSvgRenderState\n});\n //# sourceMappingURL=use-svg-visual-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91c2Utc3ZnLXZpc3VhbC1zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQU1hO0lBQ1Q7SUFDQTtBQUNIIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9zcmMvcmVuZGVyL3N2Zy91c2Utc3ZnLXZpc3VhbC1zdGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIlxuXG5pbXBvcnQgeyBzY3JhcGVTVkdNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfSBmcm9tIFwibW90aW9uLWRvbVwiXG5pbXBvcnQgeyBtYWtlVXNlVmlzdWFsU3RhdGUgfSBmcm9tIFwiLi4vLi4vbW90aW9uL3V0aWxzL3VzZS12aXN1YWwtc3RhdGVcIlxuaW1wb3J0IHsgY3JlYXRlU3ZnUmVuZGVyU3RhdGUgfSBmcm9tIFwiLi91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlXCJcblxuZXhwb3J0IGNvbnN0IHVzZVNWR1Zpc3VhbFN0YXRlID0gLypAX19QVVJFX18qLyBtYWtlVXNlVmlzdWFsU3RhdGUoe1xuICAgIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wczogc2NyYXBlU1ZHTW90aW9uVmFsdWVzRnJvbVByb3BzLFxuICAgIGNyZWF0ZVJlbmRlclN0YXRlOiBjcmVhdGVTdmdSZW5kZXJTdGF0ZSxcbn0pXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs ***! + \*************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createSvgRenderState: () => (/* binding */ createSvgRenderState)\n/* harmony export */ });\n/* harmony import */ var _html_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/create-render-state.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs\");\n\n\nconst createSvgRenderState = () => ({\n ...(0,_html_utils_create_render_state_mjs__WEBPACK_IMPORTED_MODULE_0__.createHtmlRenderState)(),\n attrs: {},\n});\n\n\n//# sourceMappingURL=create-render-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFpRjs7QUFFakY7QUFDQSxPQUFPLDBGQUFxQjtBQUM1QixhQUFhO0FBQ2IsQ0FBQzs7QUFFK0I7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvZnJhbWVyLW1vdGlvbi9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvY3JlYXRlLXJlbmRlci1zdGF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSHRtbFJlbmRlclN0YXRlIH0gZnJvbSAnLi4vLi4vaHRtbC91dGlscy9jcmVhdGUtcmVuZGVyLXN0YXRlLm1qcyc7XG5cbmNvbnN0IGNyZWF0ZVN2Z1JlbmRlclN0YXRlID0gKCkgPT4gKHtcbiAgICAuLi5jcmVhdGVIdG1sUmVuZGVyU3RhdGUoKSxcbiAgICBhdHRyczoge30sXG59KTtcblxuZXhwb3J0IHsgY3JlYXRlU3ZnUmVuZGVyU3RhdGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZS1yZW5kZXItc3RhdGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/distance.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/distance.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ distance: () => (/* binding */ distance),\n/* harmony export */ distance2D: () => (/* binding */ distance2D)\n/* harmony export */ });\nconst distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\n\n//# sourceMappingURL=distance.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvZGlzdGFuY2UubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy9kaXN0YW5jZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZGlzdGFuY2UgPSAoYSwgYikgPT4gTWF0aC5hYnMoYSAtIGIpO1xuZnVuY3Rpb24gZGlzdGFuY2UyRChhLCBiKSB7XG4gICAgLy8gTXVsdGktZGltZW5zaW9uYWxcbiAgICBjb25zdCB4RGVsdGEgPSBkaXN0YW5jZShhLngsIGIueCk7XG4gICAgY29uc3QgeURlbHRhID0gZGlzdGFuY2UoYS55LCBiLnkpO1xuICAgIHJldHVybiBNYXRoLnNxcnQoeERlbHRhICoqIDIgKyB5RGVsdGEgKiogMik7XG59XG5cbmV4cG9ydCB7IGRpc3RhbmNlLCBkaXN0YW5jZTJEIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kaXN0YW5jZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/distance.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/get-context-window.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getContextWindow: () => (/* binding */ getContextWindow)\n/* harmony export */ });\n// Fixes https://github.com/motiondivision/motion/issues/2270\nconst getContextWindow = ({ current }) => {\n return current ? current.ownerDocument.defaultView : null;\n};\n\n\n//# sourceMappingURL=get-context-window.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvZ2V0LWNvbnRleHQtd2luZG93Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSw0QkFBNEIsU0FBUztBQUNyQztBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvZ2V0LWNvbnRleHQtd2luZG93Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBGaXhlcyBodHRwczovL2dpdGh1Yi5jb20vbW90aW9uZGl2aXNpb24vbW90aW9uL2lzc3Vlcy8yMjcwXG5jb25zdCBnZXRDb250ZXh0V2luZG93ID0gKHsgY3VycmVudCB9KSA9PiB7XG4gICAgcmV0dXJuIGN1cnJlbnQgPyBjdXJyZW50Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcgOiBudWxsO1xufTtcblxuZXhwb3J0IHsgZ2V0Q29udGV4dFdpbmRvdyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWNvbnRleHQtd2luZG93Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/is-browser.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isBrowser: () => (/* binding */ isBrowser)\n/* harmony export */ });\nconst isBrowser = typeof window !== \"undefined\";\n\n\n//# sourceMappingURL=is-browser.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvaXMtYnJvd3Nlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBOztBQUVxQjtBQUNyQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvaXMtYnJvd3Nlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNCcm93c2VyID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIjtcblxuZXhwb3J0IHsgaXNCcm93c2VyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1icm93c2VyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isRefObject: () => (/* binding */ isRefObject)\n/* harmony export */ });\nfunction isRefObject(ref) {\n return (ref &&\n typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\n\n//# sourceMappingURL=is-ref-object.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvaXMtcmVmLW9iamVjdC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy9pcy1yZWYtb2JqZWN0Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc1JlZk9iamVjdChyZWYpIHtcbiAgICByZXR1cm4gKHJlZiAmJlxuICAgICAgICB0eXBlb2YgcmVmID09PSBcIm9iamVjdFwiICYmXG4gICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZWYsIFwiY3VycmVudFwiKSk7XG59XG5cbmV4cG9ydCB7IGlzUmVmT2JqZWN0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1yZWYtb2JqZWN0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useComposedRefs: () => (/* binding */ useComposedRefs)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n\n/**\n * Taken from https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/compose-refs.tsx\n */\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n }\n else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n/**\n * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup === \"function\") {\n cleanup();\n }\n else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs(...refs) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return react__WEBPACK_IMPORTED_MODULE_0__.useCallback(composeRefs(...refs), refs);\n}\n\n\n//# sourceMappingURL=use-composed-ref.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvdXNlLWNvbXBvc2VkLXJlZi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBK0I7O0FBRS9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxxQkFBcUI7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyw4Q0FBaUI7QUFDNUI7O0FBRTJCO0FBQzNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL2ZyYW1lci1tb3Rpb24vZGlzdC9lcy91dGlscy91c2UtY29tcG9zZWQtcmVmLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbi8qKlxuICogVGFrZW4gZnJvbSBodHRwczovL2dpdGh1Yi5jb20vcmFkaXgtdWkvcHJpbWl0aXZlcy9ibG9iL21haW4vcGFja2FnZXMvcmVhY3QvY29tcG9zZS1yZWZzL3NyYy9jb21wb3NlLXJlZnMudHN4XG4gKi9cbi8qKlxuICogU2V0IGEgZ2l2ZW4gcmVmIHRvIGEgZ2l2ZW4gdmFsdWVcbiAqIFRoaXMgdXRpbGl0eSB0YWtlcyBjYXJlIG9mIGRpZmZlcmVudCB0eXBlcyBvZiByZWZzOiBjYWxsYmFjayByZWZzIGFuZCBSZWZPYmplY3QocylcbiAqL1xuZnVuY3Rpb24gc2V0UmVmKHJlZiwgdmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHJlZiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiByZWYodmFsdWUpO1xuICAgIH1cbiAgICBlbHNlIGlmIChyZWYgIT09IG51bGwgJiYgcmVmICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSB2YWx1ZTtcbiAgICB9XG59XG4vKipcbiAqIEEgdXRpbGl0eSB0byBjb21wb3NlIG11bHRpcGxlIHJlZnMgdG9nZXRoZXJcbiAqIEFjY2VwdHMgY2FsbGJhY2sgcmVmcyBhbmQgUmVmT2JqZWN0KHMpXG4gKi9cbmZ1bmN0aW9uIGNvbXBvc2VSZWZzKC4uLnJlZnMpIHtcbiAgICByZXR1cm4gKG5vZGUpID0+IHtcbiAgICAgICAgbGV0IGhhc0NsZWFudXAgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgY2xlYW51cHMgPSByZWZzLm1hcCgocmVmKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjbGVhbnVwID0gc2V0UmVmKHJlZiwgbm9kZSk7XG4gICAgICAgICAgICBpZiAoIWhhc0NsZWFudXAgJiYgdHlwZW9mIGNsZWFudXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIGhhc0NsZWFudXAgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNsZWFudXA7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBSZWFjdCA8MTkgd2lsbCBsb2cgYW4gZXJyb3IgdG8gdGhlIGNvbnNvbGUgaWYgYSBjYWxsYmFjayByZWYgcmV0dXJucyBhXG4gICAgICAgIC8vIHZhbHVlLiBXZSBkb24ndCB1c2UgcmVmIGNsZWFudXBzIGludGVybmFsbHkgc28gdGhpcyB3aWxsIG9ubHkgaGFwcGVuIGlmIGFcbiAgICAgICAgLy8gdXNlcidzIHJlZiBjYWxsYmFjayByZXR1cm5zIGEgdmFsdWUsIHdoaWNoIHdlIG9ubHkgZXhwZWN0IGlmIHRoZXkgYXJlXG4gICAgICAgIC8vIHVzaW5nIHRoZSBjbGVhbnVwIGZ1bmN0aW9uYWxpdHkgYWRkZWQgaW4gUmVhY3QgMTkuXG4gICAgICAgIGlmIChoYXNDbGVhbnVwKSB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2xlYW51cHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xlYW51cCA9IGNsZWFudXBzW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNsZWFudXAgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVmKHJlZnNbaV0sIG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH07XG59XG4vKipcbiAqIEEgY3VzdG9tIGhvb2sgdGhhdCBjb21wb3NlcyBtdWx0aXBsZSByZWZzXG4gKiBBY2NlcHRzIGNhbGxiYWNrIHJlZnMgYW5kIFJlZk9iamVjdChzKVxuICovXG5mdW5jdGlvbiB1c2VDb21wb3NlZFJlZnMoLi4ucmVmcykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgICByZXR1cm4gUmVhY3QudXNlQ2FsbGJhY2soY29tcG9zZVJlZnMoLi4ucmVmcyksIHJlZnMpO1xufVxuXG5leHBvcnQgeyB1c2VDb21wb3NlZFJlZnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVzZS1jb21wb3NlZC1yZWYubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/use-constant.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useConstant: () => (/* binding */ useConstant)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* __next_internal_client_entry_do_not_use__ useConstant auto */ var _s = $RefreshSig$();\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ function useConstant(init) {\n _s();\n const ref = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n_s(useConstant, \"QMBuJFIdzLIeqBcFwhMf246mjOM=\");\n //# sourceMappingURL=use-constant.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvdXNlLWNvbnN0YW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBTUE7Ozs7OztDQU1HLEdBQ0c7O0lBQ0Y7SUFFQTtRQUNJOzs7QUFJUjtHQVJNIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvdXRpbHMvdXNlLWNvbnN0YW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiXG5cbnR5cGUgSW5pdDxUPiA9ICgpID0+IFRcblxuLyoqXG4gKiBDcmVhdGVzIGEgY29uc3RhbnQgdmFsdWUgb3ZlciB0aGUgbGlmZWN5Y2xlIG9mIGEgY29tcG9uZW50LlxuICpcbiAqIEV2ZW4gaWYgYHVzZU1lbW9gIGlzIHByb3ZpZGVkIGFuIGVtcHR5IGFycmF5IGFzIGl0cyBmaW5hbCBhcmd1bWVudCwgaXQgZG9lc24ndCBvZmZlclxuICogYSBndWFyYW50ZWUgdGhhdCBpdCB3b24ndCByZS1ydW4gZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgbGF0ZXIgb24uIEJ5IHVzaW5nIGB1c2VDb25zdGFudGBcbiAqIHlvdSBjYW4gZW5zdXJlIHRoYXQgaW5pdGlhbGlzZXJzIGRvbid0IGV4ZWN1dGUgdHdpY2Ugb3IgbW9yZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZUNvbnN0YW50PFQ+KGluaXQ6IEluaXQ8VD4pIHtcbiAgICBjb25zdCByZWYgPSB1c2VSZWY8VCB8IG51bGw+KG51bGwpXG5cbiAgICBpZiAocmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgcmVmLmN1cnJlbnQgPSBpbml0KClcbiAgICB9XG5cbiAgICByZXR1cm4gcmVmLmN1cnJlbnRcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-constant.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useIsomorphicLayoutEffect: () => (/* binding */ useIsomorphicLayoutEffect)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var _is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-browser.mjs */ \"(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/is-browser.mjs\");\n/* __next_internal_client_entry_do_not_use__ useIsomorphicLayoutEffect auto */ \n\nconst useIsomorphicLayoutEffect = _is_browser_mjs__WEBPACK_IMPORTED_MODULE_1__.isBrowser ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n //# sourceMappingURL=use-isomorphic-effect.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mcmFtZXItbW90aW9uL2Rpc3QvZXMvdXRpbHMvdXNlLWlzb21vcnBoaWMtZWZmZWN0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUtPIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvdXRpbHMvdXNlLWlzb21vcnBoaWMtZWZmZWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiXG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlTGF5b3V0RWZmZWN0IH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCB7IGlzQnJvd3NlciB9IGZyb20gXCIuL2lzLWJyb3dzZXJcIlxuXG5leHBvcnQgY29uc3QgdXNlSXNvbW9ycGhpY0xheW91dEVmZmVjdCA9IGlzQnJvd3NlciA/IHVzZUxheW91dEVmZmVjdCA6IHVzZUVmZmVjdFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js": +/*!***********************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/clock.js ***! + \***********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ Clock)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"circle\",\n {\n cx: \"12\",\n cy: \"12\",\n r: \"10\",\n key: \"1mglay\"\n }\n ],\n [\n \"polyline\",\n {\n points: \"12 6 12 12 16 14\",\n key: \"68esgv\"\n }\n ]\n];\nconst Clock = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"Clock\", __iconNode);\n //# sourceMappingURL=clock.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvY2xvY2suanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLFFBQVU7UUFBQTtZQUFFLEVBQUk7WUFBTSxDQUFJLFFBQU07WUFBQSxDQUFHO1lBQU0sR0FBSztRQUFBLENBQVU7S0FBQTtJQUN6RDtRQUFDLFVBQVk7UUFBQTtZQUFFLFFBQVEsQ0FBb0I7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzVEO0FBYU0sWUFBUSxrRUFBaUIsVUFBUyxDQUFVIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvaWNvbnMvY2xvY2sudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ2NpcmNsZScsIHsgY3g6ICcxMicsIGN5OiAnMTInLCByOiAnMTAnLCBrZXk6ICcxbWdsYXknIH1dLFxuICBbJ3BvbHlsaW5lJywgeyBwb2ludHM6ICcxMiA2IDEyIDEyIDE2IDE0Jywga2V5OiAnNjhlc2d2JyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBDbG9ja1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4WTJseVkyeGxJR040UFNJeE1pSWdZM2s5SWpFeUlpQnlQU0l4TUNJZ0x6NEtJQ0E4Y0c5c2VXeHBibVVnY0c5cGJuUnpQU0l4TWlBMklERXlJREV5SURFMklERTBJaUF2UGdvOEwzTjJaejRLKSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9jbG9ja1xuICogQHNlZSBodHRwczovL2x1Y2lkZS5kZXYvZ3VpZGUvcGFja2FnZXMvbHVjaWRlLXJlYWN0IC0gRG9jdW1lbnRhdGlvblxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBwcm9wcyAtIEx1Y2lkZSBpY29ucyBwcm9wcyBhbmQgYW55IHZhbGlkIFNWRyBhdHRyaWJ1dGVcbiAqIEByZXR1cm5zIHtKU1guRWxlbWVudH0gSlNYIEVsZW1lbnRcbiAqXG4gKi9cbmNvbnN0IENsb2NrID0gY3JlYXRlTHVjaWRlSWNvbignQ2xvY2snLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgQ2xvY2s7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/clock.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/external-link.js": +/*!*******************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/external-link.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ ExternalLink)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M15 3h6v6\",\n key: \"1q9fwt\"\n }\n ],\n [\n \"path\",\n {\n d: \"M10 14 21 3\",\n key: \"gplh6r\"\n }\n ],\n [\n \"path\",\n {\n d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\",\n key: \"a6xqqp\"\n }\n ]\n];\nconst ExternalLink = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"ExternalLink\", __iconNode);\n //# sourceMappingURL=external-link.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvZXh0ZXJuYWwtbGluay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBZTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQTREO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtDQUMzRjtBQWFNLG1CQUFlLGtFQUFpQixpQkFBZ0IsQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL2V4dGVybmFsLWxpbmsudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMTUgM2g2djYnLCBrZXk6ICcxcTlmd3QnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMTAgMTQgMjEgMycsIGtleTogJ2dwbGg2cicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2Jywga2V5OiAnYTZ4cXFwJyB9XSxcbl07XG5cbi8qKlxuICogQGNvbXBvbmVudCBAbmFtZSBFeHRlcm5hbExpbmtcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk1UVWdNMmcyZGpZaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFd0lERTBJREl4SURNaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRFNElERXpkalpoTWlBeUlEQWdNQ0F4TFRJZ01rZzFZVElnTWlBd0lEQWdNUzB5TFRKV09HRXlJRElnTUNBd0lERWdNaTB5YURZaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2V4dGVybmFsLWxpbmtcbiAqIEBzZWUgaHR0cHM6Ly9sdWNpZGUuZGV2L2d1aWRlL3BhY2thZ2VzL2x1Y2lkZS1yZWFjdCAtIERvY3VtZW50YXRpb25cbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gcHJvcHMgLSBMdWNpZGUgaWNvbnMgcHJvcHMgYW5kIGFueSB2YWxpZCBTVkcgYXR0cmlidXRlXG4gKiBAcmV0dXJucyB7SlNYLkVsZW1lbnR9IEpTWCBFbGVtZW50XG4gKlxuICovXG5jb25zdCBFeHRlcm5hbExpbmsgPSBjcmVhdGVMdWNpZGVJY29uKCdFeHRlcm5hbExpbmsnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgRXh0ZXJuYWxMaW5rO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/external-link.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/layout-grid.js": +/*!*****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/layout-grid.js ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ LayoutGrid)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"3\",\n y: \"3\",\n rx: \"1\",\n key: \"1g98yp\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"14\",\n y: \"3\",\n rx: \"1\",\n key: \"6d4xhi\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"14\",\n y: \"14\",\n rx: \"1\",\n key: \"nxv5o0\"\n }\n ],\n [\n \"rect\",\n {\n width: \"7\",\n height: \"7\",\n x: \"3\",\n y: \"14\",\n rx: \"1\",\n key: \"1bb6yr\"\n }\n ]\n];\nconst LayoutGrid = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"LayoutGrid\", __iconNode);\n //# sourceMappingURL=layout-grid.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbGF5b3V0LWdyaWQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR08sTUFBTSxVQUF1QjtJQUNsQztRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBSztZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDNUU7UUFBQyxPQUFRO1FBQUE7WUFBRSxPQUFPO1lBQUssQ0FBUTtZQUFLLENBQUc7WUFBTSxHQUFHLENBQUs7WUFBQSxJQUFJLENBQUs7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzdFO1FBQUMsT0FBUTtRQUFBO1lBQUUsT0FBTztZQUFLLENBQVE7WUFBSyxDQUFHO1lBQU0sR0FBRyxDQUFNO1lBQUEsSUFBSSxDQUFLO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUM5RTtRQUFDLE9BQVE7UUFBQTtZQUFFLE9BQU87WUFBSyxDQUFRO1lBQUssQ0FBRztZQUFLLEdBQUcsQ0FBTTtZQUFBLElBQUksQ0FBSztZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7Q0FDL0U7QUFhTSxpQkFBYSxrRUFBaUIsZUFBYyxDQUFVIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvaWNvbnMvbGF5b3V0LWdyaWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICczJywgcng6ICcxJywga2V5OiAnMWc5OHlwJyB9XSxcbiAgWydyZWN0JywgeyB3aWR0aDogJzcnLCBoZWlnaHQ6ICc3JywgeDogJzE0JywgeTogJzMnLCByeDogJzEnLCBrZXk6ICc2ZDR4aGknIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMTQnLCB5OiAnMTQnLCByeDogJzEnLCBrZXk6ICdueHY1bzAnIH1dLFxuICBbJ3JlY3QnLCB7IHdpZHRoOiAnNycsIGhlaWdodDogJzcnLCB4OiAnMycsIHk6ICcxNCcsIHJ4OiAnMScsIGtleTogJzFiYjZ5cicgfV0sXG5dO1xuXG4vKipcbiAqIEBjb21wb25lbnQgQG5hbWUgTGF5b3V0R3JpZFxuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y21WamRDQjNhV1IwYUQwaU55SWdhR1ZwWjJoMFBTSTNJaUI0UFNJeklpQjVQU0l6SWlCeWVEMGlNU0lnTHo0S0lDQThjbVZqZENCM2FXUjBhRDBpTnlJZ2FHVnBaMmgwUFNJM0lpQjRQU0l4TkNJZ2VUMGlNeUlnY25nOUlqRWlJQzgrQ2lBZ1BISmxZM1FnZDJsa2RHZzlJamNpSUdobGFXZG9kRDBpTnlJZ2VEMGlNVFFpSUhrOUlqRTBJaUJ5ZUQwaU1TSWdMejRLSUNBOGNtVmpkQ0IzYVdSMGFEMGlOeUlnYUdWcFoyaDBQU0kzSWlCNFBTSXpJaUI1UFNJeE5DSWdjbmc5SWpFaUlDOCtDand2YzNablBnbz0pIC0gaHR0cHM6Ly9sdWNpZGUuZGV2L2ljb25zL2xheW91dC1ncmlkXG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGF5b3V0R3JpZCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0xheW91dEdyaWQnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGF5b3V0R3JpZDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/layout-grid.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/list.js": +/*!**********************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/list.js ***! + \**********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ List)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M3 12h.01\",\n key: \"nlz23k\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 18h.01\",\n key: \"1tta3j\"\n }\n ],\n [\n \"path\",\n {\n d: \"M3 6h.01\",\n key: \"1rqtza\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 12h13\",\n key: \"1za7za\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 18h13\",\n key: \"1lx6n3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 6h13\",\n key: \"ik3vkj\"\n }\n ]\n];\nconst List = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"List\", __iconNode);\n //# sourceMappingURL=list.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvbGlzdC5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFhO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUMxQztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBYTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDMUM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVk7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQ3pDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFZO1lBQUEsS0FBSztRQUFBLENBQVU7S0FBQTtJQUN6QztRQUFDLE1BQVE7UUFBQTtZQUFFLEdBQUcsQ0FBWTtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDekM7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQVc7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzFDO0FBYU0sV0FBTyxrRUFBaUIsU0FBUSxDQUFVIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9zcmMvaWNvbnMvbGlzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY3JlYXRlTHVjaWRlSWNvbiBmcm9tICcuLi9jcmVhdGVMdWNpZGVJY29uJztcbmltcG9ydCB7IEljb25Ob2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgX19pY29uTm9kZTogSWNvbk5vZGUgPSBbXG4gIFsncGF0aCcsIHsgZDogJ00zIDEyaC4wMScsIGtleTogJ25sejIzaycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDE4aC4wMScsIGtleTogJzF0dGEzaicgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00zIDZoLjAxJywga2V5OiAnMXJxdHphJyB9XSxcbiAgWydwYXRoJywgeyBkOiAnTTggMTJoMTMnLCBrZXk6ICcxemE3emEnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxOGgxMycsIGtleTogJzFseDZuMycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ004IDZoMTMnLCBrZXk6ICdpazN2a2onIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIExpc3RcbiAqIEBkZXNjcmlwdGlvbiBMdWNpZGUgU1ZHIGljb24gY29tcG9uZW50LCByZW5kZXJzIFNWRyBFbGVtZW50IHdpdGggY2hpbGRyZW4uXG4gKlxuICogQHByZXZpZXcgIVtpbWddKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QWdlRzFzYm5NOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6SXdNREF2YzNabklnb2dJSGRwWkhSb1BTSXlOQ0lLSUNCb1pXbG5hSFE5SWpJMElnb2dJSFpwWlhkQ2IzZzlJakFnTUNBeU5DQXlOQ0lLSUNCbWFXeHNQU0p1YjI1bElnb2dJSE4wY205clpUMGlJekF3TUNJZ2MzUjViR1U5SW1KaFkydG5jbTkxYm1RdFkyOXNiM0k2SUNObVptWTdJR0p2Y21SbGNpMXlZV1JwZFhNNklESndlQ0lLSUNCemRISnZhMlV0ZDJsa2RHZzlJaklpQ2lBZ2MzUnliMnRsTFd4cGJtVmpZWEE5SW5KdmRXNWtJZ29nSUhOMGNtOXJaUzFzYVc1bGFtOXBiajBpY205MWJtUWlDajRLSUNBOGNHRjBhQ0JrUFNKTk15QXhNbWd1TURFaUlDOCtDaUFnUEhCaGRHZ2daRDBpVFRNZ01UaG9MakF4SWlBdlBnb2dJRHh3WVhSb0lHUTlJazB6SURab0xqQXhJaUF2UGdvZ0lEeHdZWFJvSUdROUlrMDRJREV5YURFeklpQXZQZ29nSUR4d1lYUm9JR1E5SWswNElERTRhREV6SWlBdlBnb2dJRHh3WVhSb0lHUTlJazA0SURab01UTWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9saXN0XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgTGlzdCA9IGNyZWF0ZUx1Y2lkZUljb24oJ0xpc3QnLCBfX2ljb25Ob2RlKTtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdDtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/list.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js": +/*!****************************************************************!*\ + !*** ./node_modules/lucide-react/dist/esm/icons/refresh-cw.js ***! + \****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __iconNode: () => (/* binding */ __iconNode),\n/* harmony export */ \"default\": () => (/* binding */ RefreshCw)\n/* harmony export */ });\n/* harmony import */ var _createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../createLucideIcon.js */ \"(app-pages-browser)/./node_modules/lucide-react/dist/esm/createLucideIcon.js\");\n/**\n * @license lucide-react v0.474.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */ \nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8\",\n key: \"v9h5vc\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 3v5h-5\",\n key: \"1q7to0\"\n }\n ],\n [\n \"path\",\n {\n d: \"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16\",\n key: \"3uifl3\"\n }\n ],\n [\n \"path\",\n {\n d: \"M8 16H3v5\",\n key: \"1cv678\"\n }\n ]\n];\nconst RefreshCw = (0,_createLucideIcon_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(\"RefreshCw\", __iconNode);\n //# sourceMappingURL=refresh-cw.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9sdWNpZGUtcmVhY3QvZGlzdC9lc20vaWNvbnMvcmVmcmVzaC1jdy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHTyxNQUFNLFVBQXVCO0lBQ2xDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUFzRDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDbkY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWM7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0lBQzNDO1FBQUMsTUFBUTtRQUFBO1lBQUUsR0FBRyxDQUF1RDtZQUFBLEtBQUs7UUFBQSxDQUFVO0tBQUE7SUFDcEY7UUFBQyxNQUFRO1FBQUE7WUFBRSxHQUFHLENBQWE7WUFBQSxLQUFLO1FBQUEsQ0FBVTtLQUFBO0NBQzVDO0FBYU0sZ0JBQVksa0VBQWlCLGNBQWEsQ0FBVSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvc3JjL2ljb25zL3JlZnJlc2gtY3cudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyZWF0ZUx1Y2lkZUljb24gZnJvbSAnLi4vY3JlYXRlTHVjaWRlSWNvbic7XG5pbXBvcnQgeyBJY29uTm9kZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IF9faWNvbk5vZGU6IEljb25Ob2RlID0gW1xuICBbJ3BhdGgnLCB7IGQ6ICdNMyAxMmE5IDkgMCAwIDEgOS05IDkuNzUgOS43NSAwIDAgMSA2Ljc0IDIuNzRMMjEgOCcsIGtleTogJ3Y5aDV2YycgfV0sXG4gIFsncGF0aCcsIHsgZDogJ00yMSAzdjVoLTUnLCBrZXk6ICcxcTd0bzAnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNMjEgMTJhOSA5IDAgMCAxLTkgOSA5Ljc1IDkuNzUgMCAwIDEtNi43NC0yLjc0TDMgMTYnLCBrZXk6ICczdWlmbDMnIH1dLFxuICBbJ3BhdGgnLCB7IGQ6ICdNOCAxNkgzdjUnLCBrZXk6ICcxY3Y2NzgnIH1dLFxuXTtcblxuLyoqXG4gKiBAY29tcG9uZW50IEBuYW1lIFJlZnJlc2hDd1xuICogQGRlc2NyaXB0aW9uIEx1Y2lkZSBTVkcgaWNvbiBjb21wb25lbnQsIHJlbmRlcnMgU1ZHIEVsZW1lbnQgd2l0aCBjaGlsZHJlbi5cbiAqXG4gKiBAcHJldmlldyAhW2ltZ10oZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlBZ2VHMXNibk05SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpJd01EQXZjM1puSWdvZ0lIZHBaSFJvUFNJeU5DSUtJQ0JvWldsbmFIUTlJakkwSWdvZ0lIWnBaWGRDYjNnOUlqQWdNQ0F5TkNBeU5DSUtJQ0JtYVd4c1BTSnViMjVsSWdvZ0lITjBjbTlyWlQwaUl6QXdNQ0lnYzNSNWJHVTlJbUpoWTJ0bmNtOTFibVF0WTI5c2IzSTZJQ05tWm1ZN0lHSnZjbVJsY2kxeVlXUnBkWE02SURKd2VDSUtJQ0J6ZEhKdmEyVXRkMmxrZEdnOUlqSWlDaUFnYzNSeWIydGxMV3hwYm1WallYQTlJbkp2ZFc1a0lnb2dJSE4wY205clpTMXNhVzVsYW05cGJqMGljbTkxYm1RaUNqNEtJQ0E4Y0dGMGFDQmtQU0pOTXlBeE1tRTVJRGtnTUNBd0lERWdPUzA1SURrdU56VWdPUzQzTlNBd0lEQWdNU0EyTGpjMElESXVOelJNTWpFZ09DSWdMejRLSUNBOGNHRjBhQ0JrUFNKTk1qRWdNM1kxYUMwMUlpQXZQZ29nSUR4d1lYUm9JR1E5SWsweU1TQXhNbUU1SURrZ01DQXdJREV0T1NBNUlEa3VOelVnT1M0M05TQXdJREFnTVMwMkxqYzBMVEl1TnpSTU15QXhOaUlnTHo0S0lDQThjR0YwYUNCa1BTSk5PQ0F4TmtnemRqVWlJQzgrQ2p3dmMzWm5QZ289KSAtIGh0dHBzOi8vbHVjaWRlLmRldi9pY29ucy9yZWZyZXNoLWN3XG4gKiBAc2VlIGh0dHBzOi8vbHVjaWRlLmRldi9ndWlkZS9wYWNrYWdlcy9sdWNpZGUtcmVhY3QgLSBEb2N1bWVudGF0aW9uXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IHByb3BzIC0gTHVjaWRlIGljb25zIHByb3BzIGFuZCBhbnkgdmFsaWQgU1ZHIGF0dHJpYnV0ZVxuICogQHJldHVybnMge0pTWC5FbGVtZW50fSBKU1ggRWxlbWVudFxuICpcbiAqL1xuY29uc3QgUmVmcmVzaEN3ID0gY3JlYXRlTHVjaWRlSWNvbignUmVmcmVzaEN3JywgX19pY29uTm9kZSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJlZnJlc2hDdztcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/lucide-react/dist/esm/icons/refresh-cw.js\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AsyncMotionValueAnimation: () => (/* binding */ AsyncMotionValueAnimation)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./JSAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keyframes/KeyframesResolver.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var _NativeAnimationExtended_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./NativeAnimationExtended.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs\");\n/* harmony import */ var _utils_can_animate_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/can-animate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs\");\n/* harmony import */ var _utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/make-animation-instant.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n/* harmony import */ var _waapi_supports_waapi_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./waapi/supports/waapi.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Maximum time allowed between an animation being created and it being\n * resolved for us to use the latter as the start time.\n *\n * This is to ensure that while we prefer to \"start\" an animation as soon\n * as it's triggered, we also want to avoid a visual jump if there's a big delay\n * between these two moments.\n */\nconst MAX_RESOLVE_DELAY = 40;\nclass AsyncMotionValueAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\n constructor({ autoplay = true, delay = 0, type = \"keyframes\", repeat = 0, repeatDelay = 0, repeatType = \"loop\", keyframes, name, motionValue, element, ...options }) {\n super();\n /**\n * Bound to support return animation.stop pattern\n */\n this.stop = () => {\n if (this._animation) {\n this._animation.stop();\n this.stopTimeline?.();\n }\n this.keyframeResolver?.cancel();\n };\n this.createdAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now();\n const optionsWithDefaults = {\n autoplay,\n delay,\n type,\n repeat,\n repeatDelay,\n repeatType,\n name,\n motionValue,\n element,\n ...options,\n };\n const KeyframeResolver$1 = element?.KeyframeResolver || _keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__.KeyframeResolver;\n this.keyframeResolver = new KeyframeResolver$1(keyframes, (resolvedKeyframes, finalKeyframe, forced) => this.onKeyframesResolved(resolvedKeyframes, finalKeyframe, optionsWithDefaults, !forced), name, motionValue, element);\n this.keyframeResolver?.scheduleResolve();\n }\n onKeyframesResolved(keyframes, finalKeyframe, options, sync) {\n this.keyframeResolver = undefined;\n const { name, type, velocity, delay, isHandoff, onUpdate } = options;\n this.resolvedAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now();\n /**\n * If we can't animate this value with the resolved keyframes\n * then we should complete it immediately.\n */\n if (!(0,_utils_can_animate_mjs__WEBPACK_IMPORTED_MODULE_3__.canAnimate)(keyframes, name, type, velocity)) {\n if (motion_utils__WEBPACK_IMPORTED_MODULE_4__.MotionGlobalConfig.instantAnimations || !delay) {\n onUpdate?.((0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_5__.getFinalKeyframe)(keyframes, options, finalKeyframe));\n }\n keyframes[0] = keyframes[keyframes.length - 1];\n (0,_utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_6__.makeAnimationInstant)(options);\n options.repeat = 0;\n }\n /**\n * Resolve startTime for the animation.\n *\n * This method uses the createdAt and resolvedAt to calculate the\n * animation startTime. *Ideally*, we would use the createdAt time as t=0\n * as the following frame would then be the first frame of the animation in\n * progress, which would feel snappier.\n *\n * However, if there's a delay (main thread work) between the creation of\n * the animation and the first committed frame, we prefer to use resolvedAt\n * to avoid a sudden jump into the animation.\n */\n const startTime = sync\n ? !this.resolvedAt\n ? this.createdAt\n : this.resolvedAt - this.createdAt > MAX_RESOLVE_DELAY\n ? this.resolvedAt\n : this.createdAt\n : undefined;\n const resolvedOptions = {\n startTime,\n finalKeyframe,\n ...options,\n keyframes,\n };\n /**\n * Animate via WAAPI if possible. If this is a handoff animation, the optimised animation will be running via\n * WAAPI. Therefore, this animation must be JS to ensure it runs \"under\" the\n * optimised animation.\n */\n const useWaapi = !isHandoff && (0,_waapi_supports_waapi_mjs__WEBPACK_IMPORTED_MODULE_7__.supportsBrowserAnimation)(resolvedOptions);\n const element = resolvedOptions.motionValue?.owner?.current;\n const animation = useWaapi\n ? new _NativeAnimationExtended_mjs__WEBPACK_IMPORTED_MODULE_8__.NativeAnimationExtended({\n ...resolvedOptions,\n element,\n })\n : new _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__.JSAnimation(resolvedOptions);\n animation.finished.then(() => {\n this.notifyFinished();\n }).catch(motion_utils__WEBPACK_IMPORTED_MODULE_10__.noop);\n if (this.pendingTimeline) {\n this.stopTimeline = animation.attachTimeline(this.pendingTimeline);\n this.pendingTimeline = undefined;\n }\n this._animation = animation;\n }\n get finished() {\n if (!this._animation) {\n return this._finished;\n }\n else {\n return this.animation.finished;\n }\n }\n then(onResolve, _onReject) {\n return this.finished.finally(onResolve).then(() => { });\n }\n get animation() {\n if (!this._animation) {\n this.keyframeResolver?.resume();\n (0,_keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_2__.flushKeyframeResolvers)();\n }\n return this._animation;\n }\n get duration() {\n return this.animation.duration;\n }\n get iterationDuration() {\n return this.animation.iterationDuration;\n }\n get time() {\n return this.animation.time;\n }\n set time(newTime) {\n this.animation.time = newTime;\n }\n get speed() {\n return this.animation.speed;\n }\n get state() {\n return this.animation.state;\n }\n set speed(newSpeed) {\n this.animation.speed = newSpeed;\n }\n get startTime() {\n return this.animation.startTime;\n }\n attachTimeline(timeline) {\n if (this._animation) {\n this.stopTimeline = this.animation.attachTimeline(timeline);\n }\n else {\n this.pendingTimeline = timeline;\n }\n return () => this.stop();\n }\n play() {\n this.animation.play();\n }\n pause() {\n this.animation.pause();\n }\n complete() {\n this.animation.complete();\n }\n cancel() {\n if (this._animation) {\n this.animation.cancel();\n }\n this.keyframeResolver?.cancel();\n }\n}\n\n\n//# sourceMappingURL=AsyncMotionValueAnimation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL0FzeW5jTW90aW9uVmFsdWVBbmltYXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUF3RDtBQUNOO0FBQ0Y7QUFDYTtBQUNnQztBQUNyQjtBQUNuQjtBQUNxQjtBQUNwQjtBQUNnQjs7QUFFdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLCtEQUFXO0FBQ25ELGtCQUFrQixxSkFBcUo7QUFDdks7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QiwwREFBSTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRUFBZ0UsOEVBQWdCO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsbURBQW1EO0FBQ25FLDBCQUEwQiwwREFBSTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsa0VBQVU7QUFDdkIsZ0JBQWdCLDREQUFrQjtBQUNsQywyQkFBMkIsMEVBQWdCO0FBQzNDO0FBQ0E7QUFDQSxZQUFZLHVGQUFvQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLG1GQUF3QjtBQUMvRDtBQUNBO0FBQ0Esa0JBQWtCLGlGQUF1QjtBQUN6QztBQUNBO0FBQ0EsYUFBYTtBQUNiLGtCQUFrQix5REFBVztBQUM3QjtBQUNBO0FBQ0EsU0FBUyxRQUFRLCtDQUFJO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhEQUE4RDtBQUM5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksd0ZBQXNCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVxQztBQUNyQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL0FzeW5jTW90aW9uVmFsdWVBbmltYXRpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdGlvbkdsb2JhbENvbmZpZywgbm9vcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyB0aW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL3N5bmMtdGltZS5tanMnO1xuaW1wb3J0IHsgSlNBbmltYXRpb24gfSBmcm9tICcuL0pTQW5pbWF0aW9uLm1qcyc7XG5pbXBvcnQgeyBnZXRGaW5hbEtleWZyYW1lIH0gZnJvbSAnLi9rZXlmcmFtZXMvZ2V0LWZpbmFsLm1qcyc7XG5pbXBvcnQgeyBLZXlmcmFtZVJlc29sdmVyLCBmbHVzaEtleWZyYW1lUmVzb2x2ZXJzIH0gZnJvbSAnLi9rZXlmcmFtZXMvS2V5ZnJhbWVzUmVzb2x2ZXIubWpzJztcbmltcG9ydCB7IE5hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkIH0gZnJvbSAnLi9OYXRpdmVBbmltYXRpb25FeHRlbmRlZC5tanMnO1xuaW1wb3J0IHsgY2FuQW5pbWF0ZSB9IGZyb20gJy4vdXRpbHMvY2FuLWFuaW1hdGUubWpzJztcbmltcG9ydCB7IG1ha2VBbmltYXRpb25JbnN0YW50IH0gZnJvbSAnLi91dGlscy9tYWtlLWFuaW1hdGlvbi1pbnN0YW50Lm1qcyc7XG5pbXBvcnQgeyBXaXRoUHJvbWlzZSB9IGZyb20gJy4vdXRpbHMvV2l0aFByb21pc2UubWpzJztcbmltcG9ydCB7IHN1cHBvcnRzQnJvd3NlckFuaW1hdGlvbiB9IGZyb20gJy4vd2FhcGkvc3VwcG9ydHMvd2FhcGkubWpzJztcblxuLyoqXG4gKiBNYXhpbXVtIHRpbWUgYWxsb3dlZCBiZXR3ZWVuIGFuIGFuaW1hdGlvbiBiZWluZyBjcmVhdGVkIGFuZCBpdCBiZWluZ1xuICogcmVzb2x2ZWQgZm9yIHVzIHRvIHVzZSB0aGUgbGF0dGVyIGFzIHRoZSBzdGFydCB0aW1lLlxuICpcbiAqIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgd2hpbGUgd2UgcHJlZmVyIHRvIFwic3RhcnRcIiBhbiBhbmltYXRpb24gYXMgc29vblxuICogYXMgaXQncyB0cmlnZ2VyZWQsIHdlIGFsc28gd2FudCB0byBhdm9pZCBhIHZpc3VhbCBqdW1wIGlmIHRoZXJlJ3MgYSBiaWcgZGVsYXlcbiAqIGJldHdlZW4gdGhlc2UgdHdvIG1vbWVudHMuXG4gKi9cbmNvbnN0IE1BWF9SRVNPTFZFX0RFTEFZID0gNDA7XG5jbGFzcyBBc3luY01vdGlvblZhbHVlQW5pbWF0aW9uIGV4dGVuZHMgV2l0aFByb21pc2Uge1xuICAgIGNvbnN0cnVjdG9yKHsgYXV0b3BsYXkgPSB0cnVlLCBkZWxheSA9IDAsIHR5cGUgPSBcImtleWZyYW1lc1wiLCByZXBlYXQgPSAwLCByZXBlYXREZWxheSA9IDAsIHJlcGVhdFR5cGUgPSBcImxvb3BcIiwga2V5ZnJhbWVzLCBuYW1lLCBtb3Rpb25WYWx1ZSwgZWxlbWVudCwgLi4ub3B0aW9ucyB9KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCb3VuZCB0byBzdXBwb3J0IHJldHVybiBhbmltYXRpb24uc3RvcCBwYXR0ZXJuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnN0b3AgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYW5pbWF0aW9uLnN0b3AoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BUaW1lbGluZT8uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmtleWZyYW1lUmVzb2x2ZXI/LmNhbmNlbCgpO1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNyZWF0ZWRBdCA9IHRpbWUubm93KCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNXaXRoRGVmYXVsdHMgPSB7XG4gICAgICAgICAgICBhdXRvcGxheSxcbiAgICAgICAgICAgIGRlbGF5LFxuICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgIHJlcGVhdCxcbiAgICAgICAgICAgIHJlcGVhdERlbGF5LFxuICAgICAgICAgICAgcmVwZWF0VHlwZSxcbiAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICBtb3Rpb25WYWx1ZSxcbiAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBLZXlmcmFtZVJlc29sdmVyJDEgPSBlbGVtZW50Py5LZXlmcmFtZVJlc29sdmVyIHx8IEtleWZyYW1lUmVzb2x2ZXI7XG4gICAgICAgIHRoaXMua2V5ZnJhbWVSZXNvbHZlciA9IG5ldyBLZXlmcmFtZVJlc29sdmVyJDEoa2V5ZnJhbWVzLCAocmVzb2x2ZWRLZXlmcmFtZXMsIGZpbmFsS2V5ZnJhbWUsIGZvcmNlZCkgPT4gdGhpcy5vbktleWZyYW1lc1Jlc29sdmVkKHJlc29sdmVkS2V5ZnJhbWVzLCBmaW5hbEtleWZyYW1lLCBvcHRpb25zV2l0aERlZmF1bHRzLCAhZm9yY2VkKSwgbmFtZSwgbW90aW9uVmFsdWUsIGVsZW1lbnQpO1xuICAgICAgICB0aGlzLmtleWZyYW1lUmVzb2x2ZXI/LnNjaGVkdWxlUmVzb2x2ZSgpO1xuICAgIH1cbiAgICBvbktleWZyYW1lc1Jlc29sdmVkKGtleWZyYW1lcywgZmluYWxLZXlmcmFtZSwgb3B0aW9ucywgc3luYykge1xuICAgICAgICB0aGlzLmtleWZyYW1lUmVzb2x2ZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgdHlwZSwgdmVsb2NpdHksIGRlbGF5LCBpc0hhbmRvZmYsIG9uVXBkYXRlIH0gPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnJlc29sdmVkQXQgPSB0aW1lLm5vdygpO1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgd2UgY2FuJ3QgYW5pbWF0ZSB0aGlzIHZhbHVlIHdpdGggdGhlIHJlc29sdmVkIGtleWZyYW1lc1xuICAgICAgICAgKiB0aGVuIHdlIHNob3VsZCBjb21wbGV0ZSBpdCBpbW1lZGlhdGVseS5cbiAgICAgICAgICovXG4gICAgICAgIGlmICghY2FuQW5pbWF0ZShrZXlmcmFtZXMsIG5hbWUsIHR5cGUsIHZlbG9jaXR5KSkge1xuICAgICAgICAgICAgaWYgKE1vdGlvbkdsb2JhbENvbmZpZy5pbnN0YW50QW5pbWF0aW9ucyB8fCAhZGVsYXkpIHtcbiAgICAgICAgICAgICAgICBvblVwZGF0ZT8uKGdldEZpbmFsS2V5ZnJhbWUoa2V5ZnJhbWVzLCBvcHRpb25zLCBmaW5hbEtleWZyYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBrZXlmcmFtZXNbMF0gPSBrZXlmcmFtZXNba2V5ZnJhbWVzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgbWFrZUFuaW1hdGlvbkluc3RhbnQob3B0aW9ucyk7XG4gICAgICAgICAgICBvcHRpb25zLnJlcGVhdCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFJlc29sdmUgc3RhcnRUaW1lIGZvciB0aGUgYW5pbWF0aW9uLlxuICAgICAgICAgKlxuICAgICAgICAgKiBUaGlzIG1ldGhvZCB1c2VzIHRoZSBjcmVhdGVkQXQgYW5kIHJlc29sdmVkQXQgdG8gY2FsY3VsYXRlIHRoZVxuICAgICAgICAgKiBhbmltYXRpb24gc3RhcnRUaW1lLiAqSWRlYWxseSosIHdlIHdvdWxkIHVzZSB0aGUgY3JlYXRlZEF0IHRpbWUgYXMgdD0wXG4gICAgICAgICAqIGFzIHRoZSBmb2xsb3dpbmcgZnJhbWUgd291bGQgdGhlbiBiZSB0aGUgZmlyc3QgZnJhbWUgb2YgdGhlIGFuaW1hdGlvbiBpblxuICAgICAgICAgKiBwcm9ncmVzcywgd2hpY2ggd291bGQgZmVlbCBzbmFwcGllci5cbiAgICAgICAgICpcbiAgICAgICAgICogSG93ZXZlciwgaWYgdGhlcmUncyBhIGRlbGF5IChtYWluIHRocmVhZCB3b3JrKSBiZXR3ZWVuIHRoZSBjcmVhdGlvbiBvZlxuICAgICAgICAgKiB0aGUgYW5pbWF0aW9uIGFuZCB0aGUgZmlyc3QgY29tbWl0dGVkIGZyYW1lLCB3ZSBwcmVmZXIgdG8gdXNlIHJlc29sdmVkQXRcbiAgICAgICAgICogdG8gYXZvaWQgYSBzdWRkZW4ganVtcCBpbnRvIHRoZSBhbmltYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBzeW5jXG4gICAgICAgICAgICA/ICF0aGlzLnJlc29sdmVkQXRcbiAgICAgICAgICAgICAgICA/IHRoaXMuY3JlYXRlZEF0XG4gICAgICAgICAgICAgICAgOiB0aGlzLnJlc29sdmVkQXQgLSB0aGlzLmNyZWF0ZWRBdCA+IE1BWF9SRVNPTFZFX0RFTEFZXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5yZXNvbHZlZEF0XG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5jcmVhdGVkQXRcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCByZXNvbHZlZE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBzdGFydFRpbWUsXG4gICAgICAgICAgICBmaW5hbEtleWZyYW1lLFxuICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgIGtleWZyYW1lcyxcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFuaW1hdGUgdmlhIFdBQVBJIGlmIHBvc3NpYmxlLiBJZiB0aGlzIGlzIGEgaGFuZG9mZiBhbmltYXRpb24sIHRoZSBvcHRpbWlzZWQgYW5pbWF0aW9uIHdpbGwgYmUgcnVubmluZyB2aWFcbiAgICAgICAgICogV0FBUEkuIFRoZXJlZm9yZSwgdGhpcyBhbmltYXRpb24gbXVzdCBiZSBKUyB0byBlbnN1cmUgaXQgcnVucyBcInVuZGVyXCIgdGhlXG4gICAgICAgICAqIG9wdGltaXNlZCBhbmltYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCB1c2VXYWFwaSA9ICFpc0hhbmRvZmYgJiYgc3VwcG9ydHNCcm93c2VyQW5pbWF0aW9uKHJlc29sdmVkT3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSByZXNvbHZlZE9wdGlvbnMubW90aW9uVmFsdWU/Lm93bmVyPy5jdXJyZW50O1xuICAgICAgICBjb25zdCBhbmltYXRpb24gPSB1c2VXYWFwaVxuICAgICAgICAgICAgPyBuZXcgTmF0aXZlQW5pbWF0aW9uRXh0ZW5kZWQoe1xuICAgICAgICAgICAgICAgIC4uLnJlc29sdmVkT3B0aW9ucyxcbiAgICAgICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogbmV3IEpTQW5pbWF0aW9uKHJlc29sdmVkT3B0aW9ucyk7XG4gICAgICAgIGFuaW1hdGlvbi5maW5pc2hlZC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5RmluaXNoZWQoKTtcbiAgICAgICAgfSkuY2F0Y2gobm9vcCk7XG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdUaW1lbGluZSkge1xuICAgICAgICAgICAgdGhpcy5zdG9wVGltZWxpbmUgPSBhbmltYXRpb24uYXR0YWNoVGltZWxpbmUodGhpcy5wZW5kaW5nVGltZWxpbmUpO1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nVGltZWxpbmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYW5pbWF0aW9uID0gYW5pbWF0aW9uO1xuICAgIH1cbiAgICBnZXQgZmluaXNoZWQoKSB7XG4gICAgICAgIGlmICghdGhpcy5fYW5pbWF0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmluaXNoZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24uZmluaXNoZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGhlbihvblJlc29sdmUsIF9vblJlamVjdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5pc2hlZC5maW5hbGx5KG9uUmVzb2x2ZSkudGhlbigoKSA9PiB7IH0pO1xuICAgIH1cbiAgICBnZXQgYW5pbWF0aW9uKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2FuaW1hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5rZXlmcmFtZVJlc29sdmVyPy5yZXN1bWUoKTtcbiAgICAgICAgICAgIGZsdXNoS2V5ZnJhbWVSZXNvbHZlcnMoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uO1xuICAgIH1cbiAgICBnZXQgZHVyYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFuaW1hdGlvbi5kdXJhdGlvbjtcbiAgICB9XG4gICAgZ2V0IGl0ZXJhdGlvbkR1cmF0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24uaXRlcmF0aW9uRHVyYXRpb247XG4gICAgfVxuICAgIGdldCB0aW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24udGltZTtcbiAgICB9XG4gICAgc2V0IHRpbWUobmV3VGltZSkge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbi50aW1lID0gbmV3VGltZTtcbiAgICB9XG4gICAgZ2V0IHNwZWVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24uc3BlZWQ7XG4gICAgfVxuICAgIGdldCBzdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLnN0YXRlO1xuICAgIH1cbiAgICBzZXQgc3BlZWQobmV3U3BlZWQpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24uc3BlZWQgPSBuZXdTcGVlZDtcbiAgICB9XG4gICAgZ2V0IHN0YXJ0VGltZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYW5pbWF0aW9uLnN0YXJ0VGltZTtcbiAgICB9XG4gICAgYXR0YWNoVGltZWxpbmUodGltZWxpbmUpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdG9wVGltZWxpbmUgPSB0aGlzLmFuaW1hdGlvbi5hdHRhY2hUaW1lbGluZSh0aW1lbGluZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdUaW1lbGluZSA9IHRpbWVsaW5lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoKSA9PiB0aGlzLnN0b3AoKTtcbiAgICB9XG4gICAgcGxheSgpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24ucGxheSgpO1xuICAgIH1cbiAgICBwYXVzZSgpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24ucGF1c2UoKTtcbiAgICB9XG4gICAgY29tcGxldGUoKSB7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLmNvbXBsZXRlKCk7XG4gICAgfVxuICAgIGNhbmNlbCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2FuaW1hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uY2FuY2VsKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5rZXlmcmFtZVJlc29sdmVyPy5jYW5jZWwoKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IEFzeW5jTW90aW9uVmFsdWVBbmltYXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFzeW5jTW90aW9uVmFsdWVBbmltYXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ JSAnimation: () => (/* binding */ JSAnimation),\n/* harmony export */ animateValue: () => (/* binding */ animateValue)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../stats/animation-count.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var _utils_mix_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/mix/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\");\n/* harmony import */ var _drivers_frame_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./drivers/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs\");\n/* harmony import */ var _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./generators/inertia.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\");\n/* harmony import */ var _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./generators/keyframes.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\");\n/* harmony import */ var _generators_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./generators/utils/calc-duration.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/replace-transition-type.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\nconst percentToProgress = (percent) => percent / 100;\nclass JSAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\n constructor(options) {\n super();\n this.state = \"idle\";\n this.startTime = null;\n this.isStopped = false;\n /**\n * The current time of the animation.\n */\n this.currentTime = 0;\n /**\n * The time at which the animation was paused.\n */\n this.holdTime = null;\n /**\n * Playback speed as a factor. 0 would be stopped, -1 reverse and 2 double speed.\n */\n this.playbackSpeed = 1;\n /**\n * This method is bound to the instance to fix a pattern where\n * animation.stop is returned as a reference from a useEffect.\n */\n this.stop = () => {\n const { motionValue } = this.options;\n if (motionValue && motionValue.updatedAt !== _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now()) {\n this.tick(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\n }\n this.isStopped = true;\n if (this.state === \"idle\")\n return;\n this.teardown();\n this.options.onStop?.();\n };\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.mainThread++;\n this.options = options;\n this.initAnimation();\n this.play();\n if (options.autoplay === false)\n this.pause();\n }\n initAnimation() {\n const { options } = this;\n (0,_utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_3__.replaceTransitionType)(options);\n const { type = _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes, repeat = 0, repeatDelay = 0, repeatType, velocity = 0, } = options;\n let { keyframes: keyframes$1 } = options;\n const generatorFactory = type || _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes;\n if ( true &&\n generatorFactory !== _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.invariant)(keyframes$1.length <= 2, `Only two keyframes currently supported with spring and inertia animations. Trying to animate ${keyframes$1}`, \"spring-two-frames\");\n }\n if (generatorFactory !== _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_4__.keyframes &&\n typeof keyframes$1[0] !== \"number\") {\n this.mixKeyframes = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.pipe)(percentToProgress, (0,_utils_mix_index_mjs__WEBPACK_IMPORTED_MODULE_7__.mix)(keyframes$1[0], keyframes$1[1]));\n keyframes$1 = [0, 100];\n }\n const generator = generatorFactory({ ...options, keyframes: keyframes$1 });\n /**\n * If we have a mirror repeat type we need to create a second generator that outputs the\n * mirrored (not reversed) animation and later ping pong between the two generators.\n */\n if (repeatType === \"mirror\") {\n this.mirroredGenerator = generatorFactory({\n ...options,\n keyframes: [...keyframes$1].reverse(),\n velocity: -velocity,\n });\n }\n /**\n * If duration is undefined and we have repeat options,\n * we need to calculate a duration from the generator.\n *\n * We set it to the generator itself to cache the duration.\n * Any timeline resolver will need to have already precalculated\n * the duration by this step.\n */\n if (generator.calculatedDuration === null) {\n generator.calculatedDuration = (0,_generators_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_8__.calcGeneratorDuration)(generator);\n }\n const { calculatedDuration } = generator;\n this.calculatedDuration = calculatedDuration;\n this.resolvedDuration = calculatedDuration + repeatDelay;\n this.totalDuration = this.resolvedDuration * (repeat + 1) - repeatDelay;\n this.generator = generator;\n }\n updateTime(timestamp) {\n const animationTime = Math.round(timestamp - this.startTime) * this.playbackSpeed;\n // Update currentTime\n if (this.holdTime !== null) {\n this.currentTime = this.holdTime;\n }\n else {\n // Rounding the time because floating point arithmetic is not always accurate, e.g. 3000.367 - 1000.367 =\n // 2000.0000000000002. This is a problem when we are comparing the currentTime with the duration, for\n // example.\n this.currentTime = animationTime;\n }\n }\n tick(timestamp, sample = false) {\n const { generator, totalDuration, mixKeyframes, mirroredGenerator, resolvedDuration, calculatedDuration, } = this;\n if (this.startTime === null)\n return generator.next(0);\n const { delay = 0, keyframes, repeat, repeatType, repeatDelay, type, onUpdate, finalKeyframe, } = this.options;\n /**\n * requestAnimationFrame timestamps can come through as lower than\n * the startTime as set by performance.now(). Here we prevent this,\n * though in the future it could be possible to make setting startTime\n * a pending operation that gets resolved here.\n */\n if (this.speed > 0) {\n this.startTime = Math.min(this.startTime, timestamp);\n }\n else if (this.speed < 0) {\n this.startTime = Math.min(timestamp - totalDuration / this.speed, this.startTime);\n }\n if (sample) {\n this.currentTime = timestamp;\n }\n else {\n this.updateTime(timestamp);\n }\n // Rebase on delay\n const timeWithoutDelay = this.currentTime - delay * (this.playbackSpeed >= 0 ? 1 : -1);\n const isInDelayPhase = this.playbackSpeed >= 0\n ? timeWithoutDelay < 0\n : timeWithoutDelay > totalDuration;\n this.currentTime = Math.max(timeWithoutDelay, 0);\n // If this animation has finished, set the current time to the total duration.\n if (this.state === \"finished\" && this.holdTime === null) {\n this.currentTime = totalDuration;\n }\n let elapsed = this.currentTime;\n let frameGenerator = generator;\n if (repeat) {\n /**\n * Get the current progress (0-1) of the animation. If t is >\n * than duration we'll get values like 2.5 (midway through the\n * third iteration)\n */\n const progress = Math.min(this.currentTime, totalDuration) / resolvedDuration;\n /**\n * Get the current iteration (0 indexed). For instance the floor of\n * 2.5 is 2.\n */\n let currentIteration = Math.floor(progress);\n /**\n * Get the current progress of the iteration by taking the remainder\n * so 2.5 is 0.5 through iteration 2\n */\n let iterationProgress = progress % 1.0;\n /**\n * If iteration progress is 1 we count that as the end\n * of the previous iteration.\n */\n if (!iterationProgress && progress >= 1) {\n iterationProgress = 1;\n }\n iterationProgress === 1 && currentIteration--;\n currentIteration = Math.min(currentIteration, repeat + 1);\n /**\n * Reverse progress if we're not running in \"normal\" direction\n */\n const isOddIteration = Boolean(currentIteration % 2);\n if (isOddIteration) {\n if (repeatType === \"reverse\") {\n iterationProgress = 1 - iterationProgress;\n if (repeatDelay) {\n iterationProgress -= repeatDelay / resolvedDuration;\n }\n }\n else if (repeatType === \"mirror\") {\n frameGenerator = mirroredGenerator;\n }\n }\n elapsed = (0,motion_utils__WEBPACK_IMPORTED_MODULE_9__.clamp)(0, 1, iterationProgress) * resolvedDuration;\n }\n /**\n * If we're in negative time, set state as the initial keyframe.\n * This prevents delay: x, duration: 0 animations from finishing\n * instantly.\n */\n const state = isInDelayPhase\n ? { done: false, value: keyframes[0] }\n : frameGenerator.next(elapsed);\n if (mixKeyframes) {\n state.value = mixKeyframes(state.value);\n }\n let { done } = state;\n if (!isInDelayPhase && calculatedDuration !== null) {\n done =\n this.playbackSpeed >= 0\n ? this.currentTime >= totalDuration\n : this.currentTime <= 0;\n }\n const isAnimationFinished = this.holdTime === null &&\n (this.state === \"finished\" || (this.state === \"running\" && done));\n // TODO: The exception for inertia could be cleaner here\n if (isAnimationFinished && type !== _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_10__.inertia) {\n state.value = (0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_11__.getFinalKeyframe)(keyframes, this.options, finalKeyframe, this.speed);\n }\n if (onUpdate) {\n onUpdate(state.value);\n }\n if (isAnimationFinished) {\n this.finish();\n }\n return state;\n }\n /**\n * Allows the returned animation to be awaited or promise-chained. Currently\n * resolves when the animation finishes at all but in a future update could/should\n * reject if its cancels.\n */\n then(resolve, reject) {\n return this.finished.then(resolve, reject);\n }\n get duration() {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.calculatedDuration);\n }\n get iterationDuration() {\n const { delay = 0 } = this.options || {};\n return this.duration + (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(delay);\n }\n get time() {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.currentTime);\n }\n set time(newTime) {\n newTime = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.secondsToMilliseconds)(newTime);\n this.currentTime = newTime;\n if (this.startTime === null ||\n this.holdTime !== null ||\n this.playbackSpeed === 0) {\n this.holdTime = newTime;\n }\n else if (this.driver) {\n this.startTime = this.driver.now() - newTime / this.playbackSpeed;\n }\n this.driver?.start(false);\n }\n get speed() {\n return this.playbackSpeed;\n }\n set speed(newSpeed) {\n this.updateTime(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\n const hasChanged = this.playbackSpeed !== newSpeed;\n this.playbackSpeed = newSpeed;\n if (hasChanged) {\n this.time = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.millisecondsToSeconds)(this.currentTime);\n }\n }\n play() {\n if (this.isStopped)\n return;\n const { driver = _drivers_frame_mjs__WEBPACK_IMPORTED_MODULE_13__.frameloopDriver, startTime } = this.options;\n if (!this.driver) {\n this.driver = driver((timestamp) => this.tick(timestamp));\n }\n this.options.onPlay?.();\n const now = this.driver.now();\n if (this.state === \"finished\") {\n this.updateFinished();\n this.startTime = now;\n }\n else if (this.holdTime !== null) {\n this.startTime = now - this.holdTime;\n }\n else if (!this.startTime) {\n this.startTime = startTime ?? now;\n }\n if (this.state === \"finished\" && this.speed < 0) {\n this.startTime += this.calculatedDuration;\n }\n this.holdTime = null;\n /**\n * Set playState to running only after we've used it in\n * the previous logic.\n */\n this.state = \"running\";\n this.driver.start();\n }\n pause() {\n this.state = \"paused\";\n this.updateTime(_frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now());\n this.holdTime = this.currentTime;\n }\n complete() {\n if (this.state !== \"running\") {\n this.play();\n }\n this.state = \"finished\";\n this.holdTime = null;\n }\n finish() {\n this.notifyFinished();\n this.teardown();\n this.state = \"finished\";\n this.options.onComplete?.();\n }\n cancel() {\n this.holdTime = null;\n this.startTime = 0;\n this.tick(0);\n this.teardown();\n this.options.onCancel?.();\n }\n teardown() {\n this.state = \"idle\";\n this.stopDriver();\n this.startTime = this.holdTime = null;\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.mainThread--;\n }\n stopDriver() {\n if (!this.driver)\n return;\n this.driver.stop();\n this.driver = undefined;\n }\n sample(sampleTime) {\n this.startTime = 0;\n return this.tick(sampleTime, true);\n }\n attachTimeline(timeline) {\n if (this.options.allowFlatten) {\n this.options.type = \"keyframes\";\n this.options.ease = \"linear\";\n this.initAnimation();\n }\n this.driver?.stop();\n return timeline.observe(this);\n }\n}\n// Legacy function support\nfunction animateValue(options) {\n return new JSAnimation(options);\n}\n\n\n//# sourceMappingURL=JSAnimation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL0pTQW5pbWF0aW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQW9HO0FBQ2xEO0FBQ2M7QUFDbkI7QUFDUztBQUNIO0FBQ0k7QUFDc0I7QUFDaEI7QUFDZTtBQUN0Qjs7QUFFdEQ7QUFDQSwwQkFBMEIsK0RBQVc7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsY0FBYztBQUNsQyx5REFBeUQsMERBQUk7QUFDN0QsMEJBQTBCLDBEQUFJO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx3RUFBZ0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsVUFBVTtBQUMxQixRQUFRLHlGQUFxQjtBQUM3QixnQkFBZ0IsT0FBTyxnRUFBUywyREFBMkQ7QUFDM0YsY0FBYyx5QkFBeUI7QUFDdkMseUNBQXlDLGdFQUFTO0FBQ2xELFlBQVksS0FBcUM7QUFDakQsaUNBQWlDLGdFQUFTO0FBQzFDLFlBQVksdURBQVMsMEhBQTBILFlBQVk7QUFDM0o7QUFDQSxpQ0FBaUMsZ0VBQVM7QUFDMUM7QUFDQSxnQ0FBZ0Msa0RBQUksb0JBQW9CLHlEQUFHO0FBQzNEO0FBQ0E7QUFDQSw2Q0FBNkMsb0NBQW9DO0FBQ2pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJDQUEyQywwRkFBcUI7QUFDaEU7QUFDQSxnQkFBZ0IscUJBQXFCO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1HQUFtRztBQUNuSDtBQUNBO0FBQ0EsZ0JBQWdCLHdGQUF3RjtBQUN4RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG1EQUFLO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxPQUFPO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0Qyw2REFBTztBQUNuRCwwQkFBMEIsMkVBQWdCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsb0VBQXFCO0FBQ3BDO0FBQ0E7QUFDQSxnQkFBZ0IsWUFBWTtBQUM1QiwrQkFBK0Isb0VBQXFCO0FBQ3BEO0FBQ0E7QUFDQSxlQUFlLG9FQUFxQjtBQUNwQztBQUNBO0FBQ0Esa0JBQWtCLG9FQUFxQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMERBQUk7QUFDNUI7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLG9FQUFxQjtBQUM3QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFNBQVMsZ0VBQWUsY0FBYztBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiwwREFBSTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx3RUFBZ0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXFDO0FBQ3JDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vSlNBbmltYXRpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludmFyaWFudCwgcGlwZSwgY2xhbXAsIG1pbGxpc2Vjb25kc1RvU2Vjb25kcywgc2Vjb25kc1RvTWlsbGlzZWNvbmRzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi9mcmFtZWxvb3Avc3luYy10aW1lLm1qcyc7XG5pbXBvcnQgeyBhY3RpdmVBbmltYXRpb25zIH0gZnJvbSAnLi4vc3RhdHMvYW5pbWF0aW9uLWNvdW50Lm1qcyc7XG5pbXBvcnQgeyBtaXggfSBmcm9tICcuLi91dGlscy9taXgvaW5kZXgubWpzJztcbmltcG9ydCB7IGZyYW1lbG9vcERyaXZlciB9IGZyb20gJy4vZHJpdmVycy9mcmFtZS5tanMnO1xuaW1wb3J0IHsgaW5lcnRpYSB9IGZyb20gJy4vZ2VuZXJhdG9ycy9pbmVydGlhLm1qcyc7XG5pbXBvcnQgeyBrZXlmcmFtZXMgfSBmcm9tICcuL2dlbmVyYXRvcnMva2V5ZnJhbWVzLm1qcyc7XG5pbXBvcnQgeyBjYWxjR2VuZXJhdG9yRHVyYXRpb24gfSBmcm9tICcuL2dlbmVyYXRvcnMvdXRpbHMvY2FsYy1kdXJhdGlvbi5tanMnO1xuaW1wb3J0IHsgZ2V0RmluYWxLZXlmcmFtZSB9IGZyb20gJy4va2V5ZnJhbWVzL2dldC1maW5hbC5tanMnO1xuaW1wb3J0IHsgcmVwbGFjZVRyYW5zaXRpb25UeXBlIH0gZnJvbSAnLi91dGlscy9yZXBsYWNlLXRyYW5zaXRpb24tdHlwZS5tanMnO1xuaW1wb3J0IHsgV2l0aFByb21pc2UgfSBmcm9tICcuL3V0aWxzL1dpdGhQcm9taXNlLm1qcyc7XG5cbmNvbnN0IHBlcmNlbnRUb1Byb2dyZXNzID0gKHBlcmNlbnQpID0+IHBlcmNlbnQgLyAxMDA7XG5jbGFzcyBKU0FuaW1hdGlvbiBleHRlbmRzIFdpdGhQcm9taXNlIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBcImlkbGVcIjtcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBudWxsO1xuICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IGZhbHNlO1xuICAgICAgICAvKipcbiAgICAgICAgICogVGhlIGN1cnJlbnQgdGltZSBvZiB0aGUgYW5pbWF0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5jdXJyZW50VGltZSA9IDA7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgYW5pbWF0aW9uIHdhcyBwYXVzZWQuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmhvbGRUaW1lID0gbnVsbDtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFBsYXliYWNrIHNwZWVkIGFzIGEgZmFjdG9yLiAwIHdvdWxkIGJlIHN0b3BwZWQsIC0xIHJldmVyc2UgYW5kIDIgZG91YmxlIHNwZWVkLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5wbGF5YmFja1NwZWVkID0gMTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoaXMgbWV0aG9kIGlzIGJvdW5kIHRvIHRoZSBpbnN0YW5jZSB0byBmaXggYSBwYXR0ZXJuIHdoZXJlXG4gICAgICAgICAqIGFuaW1hdGlvbi5zdG9wIGlzIHJldHVybmVkIGFzIGEgcmVmZXJlbmNlIGZyb20gYSB1c2VFZmZlY3QuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnN0b3AgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IG1vdGlvblZhbHVlIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAobW90aW9uVmFsdWUgJiYgbW90aW9uVmFsdWUudXBkYXRlZEF0ICE9PSB0aW1lLm5vdygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50aWNrKHRpbWUubm93KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pc1N0b3BwZWQgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwiaWRsZVwiKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMudGVhcmRvd24oKTtcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vblN0b3A/LigpO1xuICAgICAgICB9O1xuICAgICAgICBhY3RpdmVBbmltYXRpb25zLm1haW5UaHJlYWQrKztcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5pbml0QW5pbWF0aW9uKCk7XG4gICAgICAgIHRoaXMucGxheSgpO1xuICAgICAgICBpZiAob3B0aW9ucy5hdXRvcGxheSA9PT0gZmFsc2UpXG4gICAgICAgICAgICB0aGlzLnBhdXNlKCk7XG4gICAgfVxuICAgIGluaXRBbmltYXRpb24oKSB7XG4gICAgICAgIGNvbnN0IHsgb3B0aW9ucyB9ID0gdGhpcztcbiAgICAgICAgcmVwbGFjZVRyYW5zaXRpb25UeXBlKG9wdGlvbnMpO1xuICAgICAgICBjb25zdCB7IHR5cGUgPSBrZXlmcmFtZXMsIHJlcGVhdCA9IDAsIHJlcGVhdERlbGF5ID0gMCwgcmVwZWF0VHlwZSwgdmVsb2NpdHkgPSAwLCB9ID0gb3B0aW9ucztcbiAgICAgICAgbGV0IHsga2V5ZnJhbWVzOiBrZXlmcmFtZXMkMSB9ID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgZ2VuZXJhdG9yRmFjdG9yeSA9IHR5cGUgfHwga2V5ZnJhbWVzO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiICYmXG4gICAgICAgICAgICBnZW5lcmF0b3JGYWN0b3J5ICE9PSBrZXlmcmFtZXMpIHtcbiAgICAgICAgICAgIGludmFyaWFudChrZXlmcmFtZXMkMS5sZW5ndGggPD0gMiwgYE9ubHkgdHdvIGtleWZyYW1lcyBjdXJyZW50bHkgc3VwcG9ydGVkIHdpdGggc3ByaW5nIGFuZCBpbmVydGlhIGFuaW1hdGlvbnMuIFRyeWluZyB0byBhbmltYXRlICR7a2V5ZnJhbWVzJDF9YCwgXCJzcHJpbmctdHdvLWZyYW1lc1wiKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZ2VuZXJhdG9yRmFjdG9yeSAhPT0ga2V5ZnJhbWVzICYmXG4gICAgICAgICAgICB0eXBlb2Yga2V5ZnJhbWVzJDFbMF0gIT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgIHRoaXMubWl4S2V5ZnJhbWVzID0gcGlwZShwZXJjZW50VG9Qcm9ncmVzcywgbWl4KGtleWZyYW1lcyQxWzBdLCBrZXlmcmFtZXMkMVsxXSkpO1xuICAgICAgICAgICAga2V5ZnJhbWVzJDEgPSBbMCwgMTAwXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBnZW5lcmF0b3IgPSBnZW5lcmF0b3JGYWN0b3J5KHsgLi4ub3B0aW9ucywga2V5ZnJhbWVzOiBrZXlmcmFtZXMkMSB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHdlIGhhdmUgYSBtaXJyb3IgcmVwZWF0IHR5cGUgd2UgbmVlZCB0byBjcmVhdGUgYSBzZWNvbmQgZ2VuZXJhdG9yIHRoYXQgb3V0cHV0cyB0aGVcbiAgICAgICAgICogbWlycm9yZWQgKG5vdCByZXZlcnNlZCkgYW5pbWF0aW9uIGFuZCBsYXRlciBwaW5nIHBvbmcgYmV0d2VlbiB0aGUgdHdvIGdlbmVyYXRvcnMuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAocmVwZWF0VHlwZSA9PT0gXCJtaXJyb3JcIikge1xuICAgICAgICAgICAgdGhpcy5taXJyb3JlZEdlbmVyYXRvciA9IGdlbmVyYXRvckZhY3Rvcnkoe1xuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAga2V5ZnJhbWVzOiBbLi4ua2V5ZnJhbWVzJDFdLnJldmVyc2UoKSxcbiAgICAgICAgICAgICAgICB2ZWxvY2l0eTogLXZlbG9jaXR5LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIGR1cmF0aW9uIGlzIHVuZGVmaW5lZCBhbmQgd2UgaGF2ZSByZXBlYXQgb3B0aW9ucyxcbiAgICAgICAgICogd2UgbmVlZCB0byBjYWxjdWxhdGUgYSBkdXJhdGlvbiBmcm9tIHRoZSBnZW5lcmF0b3IuXG4gICAgICAgICAqXG4gICAgICAgICAqIFdlIHNldCBpdCB0byB0aGUgZ2VuZXJhdG9yIGl0c2VsZiB0byBjYWNoZSB0aGUgZHVyYXRpb24uXG4gICAgICAgICAqIEFueSB0aW1lbGluZSByZXNvbHZlciB3aWxsIG5lZWQgdG8gaGF2ZSBhbHJlYWR5IHByZWNhbGN1bGF0ZWRcbiAgICAgICAgICogdGhlIGR1cmF0aW9uIGJ5IHRoaXMgc3RlcC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChnZW5lcmF0b3IuY2FsY3VsYXRlZER1cmF0aW9uID09PSBudWxsKSB7XG4gICAgICAgICAgICBnZW5lcmF0b3IuY2FsY3VsYXRlZER1cmF0aW9uID0gY2FsY0dlbmVyYXRvckR1cmF0aW9uKGdlbmVyYXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBjYWxjdWxhdGVkRHVyYXRpb24gfSA9IGdlbmVyYXRvcjtcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVkRHVyYXRpb24gPSBjYWxjdWxhdGVkRHVyYXRpb247XG4gICAgICAgIHRoaXMucmVzb2x2ZWREdXJhdGlvbiA9IGNhbGN1bGF0ZWREdXJhdGlvbiArIHJlcGVhdERlbGF5O1xuICAgICAgICB0aGlzLnRvdGFsRHVyYXRpb24gPSB0aGlzLnJlc29sdmVkRHVyYXRpb24gKiAocmVwZWF0ICsgMSkgLSByZXBlYXREZWxheTtcbiAgICAgICAgdGhpcy5nZW5lcmF0b3IgPSBnZW5lcmF0b3I7XG4gICAgfVxuICAgIHVwZGF0ZVRpbWUodGltZXN0YW1wKSB7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvblRpbWUgPSBNYXRoLnJvdW5kKHRpbWVzdGFtcCAtIHRoaXMuc3RhcnRUaW1lKSAqIHRoaXMucGxheWJhY2tTcGVlZDtcbiAgICAgICAgLy8gVXBkYXRlIGN1cnJlbnRUaW1lXG4gICAgICAgIGlmICh0aGlzLmhvbGRUaW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5ob2xkVGltZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIFJvdW5kaW5nIHRoZSB0aW1lIGJlY2F1c2UgZmxvYXRpbmcgcG9pbnQgYXJpdGhtZXRpYyBpcyBub3QgYWx3YXlzIGFjY3VyYXRlLCBlLmcuIDMwMDAuMzY3IC0gMTAwMC4zNjcgPVxuICAgICAgICAgICAgLy8gMjAwMC4wMDAwMDAwMDAwMDAyLiBUaGlzIGlzIGEgcHJvYmxlbSB3aGVuIHdlIGFyZSBjb21wYXJpbmcgdGhlIGN1cnJlbnRUaW1lIHdpdGggdGhlIGR1cmF0aW9uLCBmb3JcbiAgICAgICAgICAgIC8vIGV4YW1wbGUuXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gYW5pbWF0aW9uVGltZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aWNrKHRpbWVzdGFtcCwgc2FtcGxlID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgeyBnZW5lcmF0b3IsIHRvdGFsRHVyYXRpb24sIG1peEtleWZyYW1lcywgbWlycm9yZWRHZW5lcmF0b3IsIHJlc29sdmVkRHVyYXRpb24sIGNhbGN1bGF0ZWREdXJhdGlvbiwgfSA9IHRoaXM7XG4gICAgICAgIGlmICh0aGlzLnN0YXJ0VGltZSA9PT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubmV4dCgwKTtcbiAgICAgICAgY29uc3QgeyBkZWxheSA9IDAsIGtleWZyYW1lcywgcmVwZWF0LCByZXBlYXRUeXBlLCByZXBlYXREZWxheSwgdHlwZSwgb25VcGRhdGUsIGZpbmFsS2V5ZnJhbWUsIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdGltZXN0YW1wcyBjYW4gY29tZSB0aHJvdWdoIGFzIGxvd2VyIHRoYW5cbiAgICAgICAgICogdGhlIHN0YXJ0VGltZSBhcyBzZXQgYnkgcGVyZm9ybWFuY2Uubm93KCkuIEhlcmUgd2UgcHJldmVudCB0aGlzLFxuICAgICAgICAgKiB0aG91Z2ggaW4gdGhlIGZ1dHVyZSBpdCBjb3VsZCBiZSBwb3NzaWJsZSB0byBtYWtlIHNldHRpbmcgc3RhcnRUaW1lXG4gICAgICAgICAqIGEgcGVuZGluZyBvcGVyYXRpb24gdGhhdCBnZXRzIHJlc29sdmVkIGhlcmUuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5zcGVlZCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gTWF0aC5taW4odGhpcy5zdGFydFRpbWUsIHRpbWVzdGFtcCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5zcGVlZCA8IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gTWF0aC5taW4odGltZXN0YW1wIC0gdG90YWxEdXJhdGlvbiAvIHRoaXMuc3BlZWQsIHRoaXMuc3RhcnRUaW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2FtcGxlKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGltZXN0YW1wO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUaW1lKHRpbWVzdGFtcCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmViYXNlIG9uIGRlbGF5XG4gICAgICAgIGNvbnN0IHRpbWVXaXRob3V0RGVsYXkgPSB0aGlzLmN1cnJlbnRUaW1lIC0gZGVsYXkgKiAodGhpcy5wbGF5YmFja1NwZWVkID49IDAgPyAxIDogLTEpO1xuICAgICAgICBjb25zdCBpc0luRGVsYXlQaGFzZSA9IHRoaXMucGxheWJhY2tTcGVlZCA+PSAwXG4gICAgICAgICAgICA/IHRpbWVXaXRob3V0RGVsYXkgPCAwXG4gICAgICAgICAgICA6IHRpbWVXaXRob3V0RGVsYXkgPiB0b3RhbER1cmF0aW9uO1xuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gTWF0aC5tYXgodGltZVdpdGhvdXREZWxheSwgMCk7XG4gICAgICAgIC8vIElmIHRoaXMgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCwgc2V0IHRoZSBjdXJyZW50IHRpbWUgIHRvIHRoZSB0b3RhbCBkdXJhdGlvbi5cbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwiZmluaXNoZWRcIiAmJiB0aGlzLmhvbGRUaW1lID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gdG90YWxEdXJhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZWxhcHNlZCA9IHRoaXMuY3VycmVudFRpbWU7XG4gICAgICAgIGxldCBmcmFtZUdlbmVyYXRvciA9IGdlbmVyYXRvcjtcbiAgICAgICAgaWYgKHJlcGVhdCkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBHZXQgdGhlIGN1cnJlbnQgcHJvZ3Jlc3MgKDAtMSkgb2YgdGhlIGFuaW1hdGlvbi4gSWYgdCBpcyA+XG4gICAgICAgICAgICAgKiB0aGFuIGR1cmF0aW9uIHdlJ2xsIGdldCB2YWx1ZXMgbGlrZSAyLjUgKG1pZHdheSB0aHJvdWdoIHRoZVxuICAgICAgICAgICAgICogdGhpcmQgaXRlcmF0aW9uKVxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBwcm9ncmVzcyA9IE1hdGgubWluKHRoaXMuY3VycmVudFRpbWUsIHRvdGFsRHVyYXRpb24pIC8gcmVzb2x2ZWREdXJhdGlvbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogR2V0IHRoZSBjdXJyZW50IGl0ZXJhdGlvbiAoMCBpbmRleGVkKS4gRm9yIGluc3RhbmNlIHRoZSBmbG9vciBvZlxuICAgICAgICAgICAgICogMi41IGlzIDIuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxldCBjdXJyZW50SXRlcmF0aW9uID0gTWF0aC5mbG9vcihwcm9ncmVzcyk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEdldCB0aGUgY3VycmVudCBwcm9ncmVzcyBvZiB0aGUgaXRlcmF0aW9uIGJ5IHRha2luZyB0aGUgcmVtYWluZGVyXG4gICAgICAgICAgICAgKiBzbyAyLjUgaXMgMC41IHRocm91Z2ggaXRlcmF0aW9uIDJcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGV0IGl0ZXJhdGlvblByb2dyZXNzID0gcHJvZ3Jlc3MgJSAxLjA7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIGl0ZXJhdGlvbiBwcm9ncmVzcyBpcyAxIHdlIGNvdW50IHRoYXQgYXMgdGhlIGVuZFxuICAgICAgICAgICAgICogb2YgdGhlIHByZXZpb3VzIGl0ZXJhdGlvbi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKCFpdGVyYXRpb25Qcm9ncmVzcyAmJiBwcm9ncmVzcyA+PSAxKSB7XG4gICAgICAgICAgICAgICAgaXRlcmF0aW9uUHJvZ3Jlc3MgPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaXRlcmF0aW9uUHJvZ3Jlc3MgPT09IDEgJiYgY3VycmVudEl0ZXJhdGlvbi0tO1xuICAgICAgICAgICAgY3VycmVudEl0ZXJhdGlvbiA9IE1hdGgubWluKGN1cnJlbnRJdGVyYXRpb24sIHJlcGVhdCArIDEpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBSZXZlcnNlIHByb2dyZXNzIGlmIHdlJ3JlIG5vdCBydW5uaW5nIGluIFwibm9ybWFsXCIgZGlyZWN0aW9uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGlzT2RkSXRlcmF0aW9uID0gQm9vbGVhbihjdXJyZW50SXRlcmF0aW9uICUgMik7XG4gICAgICAgICAgICBpZiAoaXNPZGRJdGVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAocmVwZWF0VHlwZSA9PT0gXCJyZXZlcnNlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uUHJvZ3Jlc3MgPSAxIC0gaXRlcmF0aW9uUHJvZ3Jlc3M7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXBlYXREZWxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlcmF0aW9uUHJvZ3Jlc3MgLT0gcmVwZWF0RGVsYXkgLyByZXNvbHZlZER1cmF0aW9uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlcGVhdFR5cGUgPT09IFwibWlycm9yXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgZnJhbWVHZW5lcmF0b3IgPSBtaXJyb3JlZEdlbmVyYXRvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbGFwc2VkID0gY2xhbXAoMCwgMSwgaXRlcmF0aW9uUHJvZ3Jlc3MpICogcmVzb2x2ZWREdXJhdGlvbjtcbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogSWYgd2UncmUgaW4gbmVnYXRpdmUgdGltZSwgc2V0IHN0YXRlIGFzIHRoZSBpbml0aWFsIGtleWZyYW1lLlxuICAgICAgICAgKiBUaGlzIHByZXZlbnRzIGRlbGF5OiB4LCBkdXJhdGlvbjogMCBhbmltYXRpb25zIGZyb20gZmluaXNoaW5nXG4gICAgICAgICAqIGluc3RhbnRseS5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHN0YXRlID0gaXNJbkRlbGF5UGhhc2VcbiAgICAgICAgICAgID8geyBkb25lOiBmYWxzZSwgdmFsdWU6IGtleWZyYW1lc1swXSB9XG4gICAgICAgICAgICA6IGZyYW1lR2VuZXJhdG9yLm5leHQoZWxhcHNlZCk7XG4gICAgICAgIGlmIChtaXhLZXlmcmFtZXMpIHtcbiAgICAgICAgICAgIHN0YXRlLnZhbHVlID0gbWl4S2V5ZnJhbWVzKHN0YXRlLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgeyBkb25lIH0gPSBzdGF0ZTtcbiAgICAgICAgaWYgKCFpc0luRGVsYXlQaGFzZSAmJiBjYWxjdWxhdGVkRHVyYXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgICAgIGRvbmUgPVxuICAgICAgICAgICAgICAgIHRoaXMucGxheWJhY2tTcGVlZCA+PSAwXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5jdXJyZW50VGltZSA+PSB0b3RhbER1cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5jdXJyZW50VGltZSA8PSAwO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzQW5pbWF0aW9uRmluaXNoZWQgPSB0aGlzLmhvbGRUaW1lID09PSBudWxsICYmXG4gICAgICAgICAgICAodGhpcy5zdGF0ZSA9PT0gXCJmaW5pc2hlZFwiIHx8ICh0aGlzLnN0YXRlID09PSBcInJ1bm5pbmdcIiAmJiBkb25lKSk7XG4gICAgICAgIC8vIFRPRE86IFRoZSBleGNlcHRpb24gZm9yIGluZXJ0aWEgY291bGQgYmUgY2xlYW5lciBoZXJlXG4gICAgICAgIGlmIChpc0FuaW1hdGlvbkZpbmlzaGVkICYmIHR5cGUgIT09IGluZXJ0aWEpIHtcbiAgICAgICAgICAgIHN0YXRlLnZhbHVlID0gZ2V0RmluYWxLZXlmcmFtZShrZXlmcmFtZXMsIHRoaXMub3B0aW9ucywgZmluYWxLZXlmcmFtZSwgdGhpcy5zcGVlZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9uVXBkYXRlKSB7XG4gICAgICAgICAgICBvblVwZGF0ZShzdGF0ZS52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQW5pbWF0aW9uRmluaXNoZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBbGxvd3MgdGhlIHJldHVybmVkIGFuaW1hdGlvbiB0byBiZSBhd2FpdGVkIG9yIHByb21pc2UtY2hhaW5lZC4gQ3VycmVudGx5XG4gICAgICogcmVzb2x2ZXMgd2hlbiB0aGUgYW5pbWF0aW9uIGZpbmlzaGVzIGF0IGFsbCBidXQgaW4gYSBmdXR1cmUgdXBkYXRlIGNvdWxkL3Nob3VsZFxuICAgICAqIHJlamVjdCBpZiBpdHMgY2FuY2Vscy5cbiAgICAgKi9cbiAgICB0aGVuKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5pc2hlZC50aGVuKHJlc29sdmUsIHJlamVjdCk7XG4gICAgfVxuICAgIGdldCBkdXJhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyh0aGlzLmNhbGN1bGF0ZWREdXJhdGlvbik7XG4gICAgfVxuICAgIGdldCBpdGVyYXRpb25EdXJhdGlvbigpIHtcbiAgICAgICAgY29uc3QgeyBkZWxheSA9IDAgfSA9IHRoaXMub3B0aW9ucyB8fCB7fTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZHVyYXRpb24gKyBtaWxsaXNlY29uZHNUb1NlY29uZHMoZGVsYXkpO1xuICAgIH1cbiAgICBnZXQgdGltZSgpIHtcbiAgICAgICAgcmV0dXJuIG1pbGxpc2Vjb25kc1RvU2Vjb25kcyh0aGlzLmN1cnJlbnRUaW1lKTtcbiAgICB9XG4gICAgc2V0IHRpbWUobmV3VGltZSkge1xuICAgICAgICBuZXdUaW1lID0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKG5ld1RpbWUpO1xuICAgICAgICB0aGlzLmN1cnJlbnRUaW1lID0gbmV3VGltZTtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRUaW1lID09PSBudWxsIHx8XG4gICAgICAgICAgICB0aGlzLmhvbGRUaW1lICE9PSBudWxsIHx8XG4gICAgICAgICAgICB0aGlzLnBsYXliYWNrU3BlZWQgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuaG9sZFRpbWUgPSBuZXdUaW1lO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZHJpdmVyKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IHRoaXMuZHJpdmVyLm5vdygpIC0gbmV3VGltZSAvIHRoaXMucGxheWJhY2tTcGVlZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyaXZlcj8uc3RhcnQoZmFsc2UpO1xuICAgIH1cbiAgICBnZXQgc3BlZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYXliYWNrU3BlZWQ7XG4gICAgfVxuICAgIHNldCBzcGVlZChuZXdTcGVlZCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVRpbWUodGltZS5ub3coKSk7XG4gICAgICAgIGNvbnN0IGhhc0NoYW5nZWQgPSB0aGlzLnBsYXliYWNrU3BlZWQgIT09IG5ld1NwZWVkO1xuICAgICAgICB0aGlzLnBsYXliYWNrU3BlZWQgPSBuZXdTcGVlZDtcbiAgICAgICAgaWYgKGhhc0NoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMudGltZSA9IG1pbGxpc2Vjb25kc1RvU2Vjb25kcyh0aGlzLmN1cnJlbnRUaW1lKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwbGF5KCkge1xuICAgICAgICBpZiAodGhpcy5pc1N0b3BwZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgZHJpdmVyID0gZnJhbWVsb29wRHJpdmVyLCBzdGFydFRpbWUgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKCF0aGlzLmRyaXZlcikge1xuICAgICAgICAgICAgdGhpcy5kcml2ZXIgPSBkcml2ZXIoKHRpbWVzdGFtcCkgPT4gdGhpcy50aWNrKHRpbWVzdGFtcCkpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub3B0aW9ucy5vblBsYXk/LigpO1xuICAgICAgICBjb25zdCBub3cgPSB0aGlzLmRyaXZlci5ub3coKTtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwiZmluaXNoZWRcIikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGaW5pc2hlZCgpO1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBub3c7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5ob2xkVGltZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBub3cgLSB0aGlzLmhvbGRUaW1lO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKCF0aGlzLnN0YXJ0VGltZSkge1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBzdGFydFRpbWUgPz8gbm93O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcImZpbmlzaGVkXCIgJiYgdGhpcy5zcGVlZCA8IDApIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lICs9IHRoaXMuY2FsY3VsYXRlZER1cmF0aW9uO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaG9sZFRpbWUgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogU2V0IHBsYXlTdGF0ZSB0byBydW5uaW5nIG9ubHkgYWZ0ZXIgd2UndmUgdXNlZCBpdCBpblxuICAgICAgICAgKiB0aGUgcHJldmlvdXMgbG9naWMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnN0YXRlID0gXCJydW5uaW5nXCI7XG4gICAgICAgIHRoaXMuZHJpdmVyLnN0YXJ0KCk7XG4gICAgfVxuICAgIHBhdXNlKCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gXCJwYXVzZWRcIjtcbiAgICAgICAgdGhpcy51cGRhdGVUaW1lKHRpbWUubm93KCkpO1xuICAgICAgICB0aGlzLmhvbGRUaW1lID0gdGhpcy5jdXJyZW50VGltZTtcbiAgICB9XG4gICAgY29tcGxldGUoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlICE9PSBcInJ1bm5pbmdcIikge1xuICAgICAgICAgICAgdGhpcy5wbGF5KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IFwiZmluaXNoZWRcIjtcbiAgICAgICAgdGhpcy5ob2xkVGltZSA9IG51bGw7XG4gICAgfVxuICAgIGZpbmlzaCgpIHtcbiAgICAgICAgdGhpcy5ub3RpZnlGaW5pc2hlZCgpO1xuICAgICAgICB0aGlzLnRlYXJkb3duKCk7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBcImZpbmlzaGVkXCI7XG4gICAgICAgIHRoaXMub3B0aW9ucy5vbkNvbXBsZXRlPy4oKTtcbiAgICB9XG4gICAgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLmhvbGRUaW1lID0gbnVsbDtcbiAgICAgICAgdGhpcy5zdGFydFRpbWUgPSAwO1xuICAgICAgICB0aGlzLnRpY2soMCk7XG4gICAgICAgIHRoaXMudGVhcmRvd24oKTtcbiAgICAgICAgdGhpcy5vcHRpb25zLm9uQ2FuY2VsPy4oKTtcbiAgICB9XG4gICAgdGVhcmRvd24oKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBcImlkbGVcIjtcbiAgICAgICAgdGhpcy5zdG9wRHJpdmVyKCk7XG4gICAgICAgIHRoaXMuc3RhcnRUaW1lID0gdGhpcy5ob2xkVGltZSA9IG51bGw7XG4gICAgICAgIGFjdGl2ZUFuaW1hdGlvbnMubWFpblRocmVhZC0tO1xuICAgIH1cbiAgICBzdG9wRHJpdmVyKCkge1xuICAgICAgICBpZiAoIXRoaXMuZHJpdmVyKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLmRyaXZlci5zdG9wKCk7XG4gICAgICAgIHRoaXMuZHJpdmVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBzYW1wbGUoc2FtcGxlVGltZSkge1xuICAgICAgICB0aGlzLnN0YXJ0VGltZSA9IDA7XG4gICAgICAgIHJldHVybiB0aGlzLnRpY2soc2FtcGxlVGltZSwgdHJ1ZSk7XG4gICAgfVxuICAgIGF0dGFjaFRpbWVsaW5lKHRpbWVsaW5lKSB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuYWxsb3dGbGF0dGVuKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMudHlwZSA9IFwia2V5ZnJhbWVzXCI7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZWFzZSA9IFwibGluZWFyXCI7XG4gICAgICAgICAgICB0aGlzLmluaXRBbmltYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRyaXZlcj8uc3RvcCgpO1xuICAgICAgICByZXR1cm4gdGltZWxpbmUub2JzZXJ2ZSh0aGlzKTtcbiAgICB9XG59XG4vLyBMZWdhY3kgZnVuY3Rpb24gc3VwcG9ydFxuZnVuY3Rpb24gYW5pbWF0ZVZhbHVlKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IEpTQW5pbWF0aW9uKG9wdGlvbnMpO1xufVxuXG5leHBvcnQgeyBKU0FuaW1hdGlvbiwgYW5pbWF0ZVZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1KU0FuaW1hdGlvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NativeAnimation: () => (/* binding */ NativeAnimation)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _render_dom_style_set_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../render/dom/style-set.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs\");\n/* harmony import */ var _utils_supports_scroll_timeline_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/supports/scroll-timeline.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs\");\n/* harmony import */ var _keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./keyframes/get-final.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\");\n/* harmony import */ var _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/WithPromise.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\");\n/* harmony import */ var _waapi_start_waapi_animation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./waapi/start-waapi-animation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs\");\n/* harmony import */ var _waapi_utils_apply_generator_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./waapi/utils/apply-generator.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs\");\n\n\n\n\n\n\n\n\n/**\n * NativeAnimation implements AnimationPlaybackControls for the browser's Web Animations API.\n */\nclass NativeAnimation extends _utils_WithPromise_mjs__WEBPACK_IMPORTED_MODULE_0__.WithPromise {\n constructor(options) {\n super();\n this.finishedTime = null;\n this.isStopped = false;\n /**\n * Tracks a manually-set start time that takes precedence over WAAPI's\n * dynamic startTime. This is cleared when play() or time setter is called,\n * allowing WAAPI to take over timing.\n */\n this.manualStartTime = null;\n if (!options)\n return;\n const { element, name, keyframes, pseudoElement, allowFlatten = false, finalKeyframe, onComplete, } = options;\n this.isPseudoElement = Boolean(pseudoElement);\n this.allowFlatten = allowFlatten;\n this.options = options;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.invariant)(typeof options.type !== \"string\", `Mini animate() doesn't support \"type\" as a string.`, \"mini-spring\");\n const transition = (0,_waapi_utils_apply_generator_mjs__WEBPACK_IMPORTED_MODULE_2__.applyGeneratorOptions)(options);\n this.animation = (0,_waapi_start_waapi_animation_mjs__WEBPACK_IMPORTED_MODULE_3__.startWaapiAnimation)(element, name, keyframes, transition, pseudoElement);\n if (transition.autoplay === false) {\n this.animation.pause();\n }\n this.animation.onfinish = () => {\n this.finishedTime = this.time;\n if (!pseudoElement) {\n const keyframe = (0,_keyframes_get_final_mjs__WEBPACK_IMPORTED_MODULE_4__.getFinalKeyframe)(keyframes, this.options, finalKeyframe, this.speed);\n if (this.updateMotionValue) {\n this.updateMotionValue(keyframe);\n }\n else {\n /**\n * If we can, we want to commit the final style as set by the user,\n * rather than the computed keyframe value supplied by the animation.\n */\n (0,_render_dom_style_set_mjs__WEBPACK_IMPORTED_MODULE_5__.setStyle)(element, name, keyframe);\n }\n this.animation.cancel();\n }\n onComplete?.();\n this.notifyFinished();\n };\n }\n play() {\n if (this.isStopped)\n return;\n this.manualStartTime = null;\n this.animation.play();\n if (this.state === \"finished\") {\n this.updateFinished();\n }\n }\n pause() {\n this.animation.pause();\n }\n complete() {\n this.animation.finish?.();\n }\n cancel() {\n try {\n this.animation.cancel();\n }\n catch (e) { }\n }\n stop() {\n if (this.isStopped)\n return;\n this.isStopped = true;\n const { state } = this;\n if (state === \"idle\" || state === \"finished\") {\n return;\n }\n if (this.updateMotionValue) {\n this.updateMotionValue();\n }\n else {\n this.commitStyles();\n }\n if (!this.isPseudoElement)\n this.cancel();\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * In this method, we commit styles back to the DOM before cancelling\n * the animation.\n *\n * This is designed to be overridden by NativeAnimationExtended, which\n * will create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to also correctly calculate velocity for any subsequent animation\n * while deferring the commit until the next animation frame.\n */\n commitStyles() {\n const element = this.options?.element;\n if (!this.isPseudoElement && element?.isConnected) {\n this.animation.commitStyles?.();\n }\n }\n get duration() {\n const duration = this.animation.effect?.getComputedTiming?.().duration || 0;\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(Number(duration));\n }\n get iterationDuration() {\n const { delay = 0 } = this.options || {};\n return this.duration + (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(delay);\n }\n get time() {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.millisecondsToSeconds)(Number(this.animation.currentTime) || 0);\n }\n set time(newTime) {\n this.manualStartTime = null;\n this.finishedTime = null;\n this.animation.currentTime = (0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.secondsToMilliseconds)(newTime);\n }\n /**\n * The playback speed of the animation.\n * 1 = normal speed, 2 = double speed, 0.5 = half speed.\n */\n get speed() {\n return this.animation.playbackRate;\n }\n set speed(newSpeed) {\n // Allow backwards playback after finishing\n if (newSpeed < 0)\n this.finishedTime = null;\n this.animation.playbackRate = newSpeed;\n }\n get state() {\n return this.finishedTime !== null\n ? \"finished\"\n : this.animation.playState;\n }\n get startTime() {\n return this.manualStartTime ?? Number(this.animation.startTime);\n }\n set startTime(newStartTime) {\n this.manualStartTime = this.animation.startTime = newStartTime;\n }\n /**\n * Attaches a timeline to the animation, for instance the `ScrollTimeline`.\n */\n attachTimeline({ timeline, observe }) {\n if (this.allowFlatten) {\n this.animation.effect?.updateTiming({ easing: \"linear\" });\n }\n this.animation.onfinish = null;\n if (timeline && (0,_utils_supports_scroll_timeline_mjs__WEBPACK_IMPORTED_MODULE_7__.supportsScrollTimeline)()) {\n this.animation.timeline = timeline;\n return motion_utils__WEBPACK_IMPORTED_MODULE_8__.noop;\n }\n else {\n return observe(this);\n }\n }\n}\n\n\n//# sourceMappingURL=NativeAnimation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL05hdGl2ZUFuaW1hdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUE2RjtBQUN0QztBQUN3QjtBQUNsQjtBQUNQO0FBQ2tCO0FBQ0U7O0FBRTFFO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QiwrREFBVztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsNEZBQTRGO0FBQzVHO0FBQ0E7QUFDQTtBQUNBLFFBQVEsdURBQVM7QUFDakIsMkJBQTJCLHVGQUFxQjtBQUNoRCx5QkFBeUIscUZBQW1CO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQywwRUFBZ0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtRUFBUTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFFBQVE7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsbUVBQXFCO0FBQ3BDO0FBQ0E7QUFDQSxnQkFBZ0IsWUFBWTtBQUM1QiwrQkFBK0IsbUVBQXFCO0FBQ3BEO0FBQ0E7QUFDQSxlQUFlLG1FQUFxQjtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyxtRUFBcUI7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsbUJBQW1CO0FBQ3hDO0FBQ0Esa0RBQWtELGtCQUFrQjtBQUNwRTtBQUNBO0FBQ0Esd0JBQXdCLDJGQUFzQjtBQUM5QztBQUNBLG1CQUFtQiw4Q0FBSTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTJCO0FBQzNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vTmF0aXZlQW5pbWF0aW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnZhcmlhbnQsIG1pbGxpc2Vjb25kc1RvU2Vjb25kcywgc2Vjb25kc1RvTWlsbGlzZWNvbmRzLCBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IHNldFN0eWxlIH0gZnJvbSAnLi4vcmVuZGVyL2RvbS9zdHlsZS1zZXQubWpzJztcbmltcG9ydCB7IHN1cHBvcnRzU2Nyb2xsVGltZWxpbmUgfSBmcm9tICcuLi91dGlscy9zdXBwb3J0cy9zY3JvbGwtdGltZWxpbmUubWpzJztcbmltcG9ydCB7IGdldEZpbmFsS2V5ZnJhbWUgfSBmcm9tICcuL2tleWZyYW1lcy9nZXQtZmluYWwubWpzJztcbmltcG9ydCB7IFdpdGhQcm9taXNlIH0gZnJvbSAnLi91dGlscy9XaXRoUHJvbWlzZS5tanMnO1xuaW1wb3J0IHsgc3RhcnRXYWFwaUFuaW1hdGlvbiB9IGZyb20gJy4vd2FhcGkvc3RhcnQtd2FhcGktYW5pbWF0aW9uLm1qcyc7XG5pbXBvcnQgeyBhcHBseUdlbmVyYXRvck9wdGlvbnMgfSBmcm9tICcuL3dhYXBpL3V0aWxzL2FwcGx5LWdlbmVyYXRvci5tanMnO1xuXG4vKipcbiAqIE5hdGl2ZUFuaW1hdGlvbiBpbXBsZW1lbnRzIEFuaW1hdGlvblBsYXliYWNrQ29udHJvbHMgZm9yIHRoZSBicm93c2VyJ3MgV2ViIEFuaW1hdGlvbnMgQVBJLlxuICovXG5jbGFzcyBOYXRpdmVBbmltYXRpb24gZXh0ZW5kcyBXaXRoUHJvbWlzZSB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmZpbmlzaGVkVGltZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNTdG9wcGVkID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFja3MgYSBtYW51YWxseS1zZXQgc3RhcnQgdGltZSB0aGF0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciBXQUFQSSdzXG4gICAgICAgICAqIGR5bmFtaWMgc3RhcnRUaW1lLiBUaGlzIGlzIGNsZWFyZWQgd2hlbiBwbGF5KCkgb3IgdGltZSBzZXR0ZXIgaXMgY2FsbGVkLFxuICAgICAgICAgKiBhbGxvd2luZyBXQUFQSSB0byB0YWtlIG92ZXIgdGltaW5nLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5tYW51YWxTdGFydFRpbWUgPSBudWxsO1xuICAgICAgICBpZiAoIW9wdGlvbnMpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgZWxlbWVudCwgbmFtZSwga2V5ZnJhbWVzLCBwc2V1ZG9FbGVtZW50LCBhbGxvd0ZsYXR0ZW4gPSBmYWxzZSwgZmluYWxLZXlmcmFtZSwgb25Db21wbGV0ZSwgfSA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMuaXNQc2V1ZG9FbGVtZW50ID0gQm9vbGVhbihwc2V1ZG9FbGVtZW50KTtcbiAgICAgICAgdGhpcy5hbGxvd0ZsYXR0ZW4gPSBhbGxvd0ZsYXR0ZW47XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIGludmFyaWFudCh0eXBlb2Ygb3B0aW9ucy50eXBlICE9PSBcInN0cmluZ1wiLCBgTWluaSBhbmltYXRlKCkgZG9lc24ndCBzdXBwb3J0IFwidHlwZVwiIGFzIGEgc3RyaW5nLmAsIFwibWluaS1zcHJpbmdcIik7XG4gICAgICAgIGNvbnN0IHRyYW5zaXRpb24gPSBhcHBseUdlbmVyYXRvck9wdGlvbnMob3B0aW9ucyk7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uID0gc3RhcnRXYWFwaUFuaW1hdGlvbihlbGVtZW50LCBuYW1lLCBrZXlmcmFtZXMsIHRyYW5zaXRpb24sIHBzZXVkb0VsZW1lbnQpO1xuICAgICAgICBpZiAodHJhbnNpdGlvbi5hdXRvcGxheSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uLnBhdXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbmltYXRpb24ub25maW5pc2ggPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbmlzaGVkVGltZSA9IHRoaXMudGltZTtcbiAgICAgICAgICAgIGlmICghcHNldWRvRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGtleWZyYW1lID0gZ2V0RmluYWxLZXlmcmFtZShrZXlmcmFtZXMsIHRoaXMub3B0aW9ucywgZmluYWxLZXlmcmFtZSwgdGhpcy5zcGVlZCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudXBkYXRlTW90aW9uVmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVNb3Rpb25WYWx1ZShrZXlmcmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogSWYgd2UgY2FuLCB3ZSB3YW50IHRvIGNvbW1pdCB0aGUgZmluYWwgc3R5bGUgYXMgc2V0IGJ5IHRoZSB1c2VyLFxuICAgICAgICAgICAgICAgICAgICAgKiByYXRoZXIgdGhhbiB0aGUgY29tcHV0ZWQga2V5ZnJhbWUgdmFsdWUgc3VwcGxpZWQgYnkgdGhlIGFuaW1hdGlvbi5cbiAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgIHNldFN0eWxlKGVsZW1lbnQsIG5hbWUsIGtleWZyYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uY2FuY2VsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkNvbXBsZXRlPy4oKTtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5RmluaXNoZWQoKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcGxheSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLm1hbnVhbFN0YXJ0VGltZSA9IG51bGw7XG4gICAgICAgIHRoaXMuYW5pbWF0aW9uLnBsYXkoKTtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwiZmluaXNoZWRcIikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVGaW5pc2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHBhdXNlKCkge1xuICAgICAgICB0aGlzLmFuaW1hdGlvbi5wYXVzZSgpO1xuICAgIH1cbiAgICBjb21wbGV0ZSgpIHtcbiAgICAgICAgdGhpcy5hbmltYXRpb24uZmluaXNoPy4oKTtcbiAgICB9XG4gICAgY2FuY2VsKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uY2FuY2VsKCk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHsgfVxuICAgIH1cbiAgICBzdG9wKCkge1xuICAgICAgICBpZiAodGhpcy5pc1N0b3BwZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgeyBzdGF0ZSB9ID0gdGhpcztcbiAgICAgICAgaWYgKHN0YXRlID09PSBcImlkbGVcIiB8fCBzdGF0ZSA9PT0gXCJmaW5pc2hlZFwiKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudXBkYXRlTW90aW9uVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW90aW9uVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29tbWl0U3R5bGVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlzUHNldWRvRWxlbWVudClcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdBQVBJIGRvZXNuJ3QgbmF0aXZlbHkgaGF2ZSBhbnkgaW50ZXJydXB0aW9uIGNhcGFiaWxpdGllcy5cbiAgICAgKlxuICAgICAqIEluIHRoaXMgbWV0aG9kLCB3ZSBjb21taXQgc3R5bGVzIGJhY2sgdG8gdGhlIERPTSBiZWZvcmUgY2FuY2VsbGluZ1xuICAgICAqIHRoZSBhbmltYXRpb24uXG4gICAgICpcbiAgICAgKiBUaGlzIGlzIGRlc2lnbmVkIHRvIGJlIG92ZXJyaWRkZW4gYnkgTmF0aXZlQW5pbWF0aW9uRXh0ZW5kZWQsIHdoaWNoXG4gICAgICogd2lsbCBjcmVhdGUgYSByZW5kZXJsZXNzIEpTIGFuaW1hdGlvbiBhbmQgc2FtcGxlIGl0IHR3aWNlIHRvIGNhbGN1bGF0ZVxuICAgICAqIGl0cyBjdXJyZW50IHZhbHVlLCBcInByZXZpb3VzXCIgdmFsdWUsIGFuZCB0aGVyZWZvcmUgYWxsb3dcbiAgICAgKiBNb3Rpb24gdG8gYWxzbyBjb3JyZWN0bHkgY2FsY3VsYXRlIHZlbG9jaXR5IGZvciBhbnkgc3Vic2VxdWVudCBhbmltYXRpb25cbiAgICAgKiB3aGlsZSBkZWZlcnJpbmcgdGhlIGNvbW1pdCB1bnRpbCB0aGUgbmV4dCBhbmltYXRpb24gZnJhbWUuXG4gICAgICovXG4gICAgY29tbWl0U3R5bGVzKCkge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5vcHRpb25zPy5lbGVtZW50O1xuICAgICAgICBpZiAoIXRoaXMuaXNQc2V1ZG9FbGVtZW50ICYmIGVsZW1lbnQ/LmlzQ29ubmVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbi5jb21taXRTdHlsZXM/LigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBkdXJhdGlvbigpIHtcbiAgICAgICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLmFuaW1hdGlvbi5lZmZlY3Q/LmdldENvbXB1dGVkVGltaW5nPy4oKS5kdXJhdGlvbiB8fCAwO1xuICAgICAgICByZXR1cm4gbWlsbGlzZWNvbmRzVG9TZWNvbmRzKE51bWJlcihkdXJhdGlvbikpO1xuICAgIH1cbiAgICBnZXQgaXRlcmF0aW9uRHVyYXRpb24oKSB7XG4gICAgICAgIGNvbnN0IHsgZGVsYXkgPSAwIH0gPSB0aGlzLm9wdGlvbnMgfHwge307XG4gICAgICAgIHJldHVybiB0aGlzLmR1cmF0aW9uICsgbWlsbGlzZWNvbmRzVG9TZWNvbmRzKGRlbGF5KTtcbiAgICB9XG4gICAgZ2V0IHRpbWUoKSB7XG4gICAgICAgIHJldHVybiBtaWxsaXNlY29uZHNUb1NlY29uZHMoTnVtYmVyKHRoaXMuYW5pbWF0aW9uLmN1cnJlbnRUaW1lKSB8fCAwKTtcbiAgICB9XG4gICAgc2V0IHRpbWUobmV3VGltZSkge1xuICAgICAgICB0aGlzLm1hbnVhbFN0YXJ0VGltZSA9IG51bGw7XG4gICAgICAgIHRoaXMuZmluaXNoZWRUaW1lID0gbnVsbDtcbiAgICAgICAgdGhpcy5hbmltYXRpb24uY3VycmVudFRpbWUgPSBzZWNvbmRzVG9NaWxsaXNlY29uZHMobmV3VGltZSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZSBwbGF5YmFjayBzcGVlZCBvZiB0aGUgYW5pbWF0aW9uLlxuICAgICAqIDEgPSBub3JtYWwgc3BlZWQsIDIgPSBkb3VibGUgc3BlZWQsIDAuNSA9IGhhbGYgc3BlZWQuXG4gICAgICovXG4gICAgZ2V0IHNwZWVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5hbmltYXRpb24ucGxheWJhY2tSYXRlO1xuICAgIH1cbiAgICBzZXQgc3BlZWQobmV3U3BlZWQpIHtcbiAgICAgICAgLy8gQWxsb3cgYmFja3dhcmRzIHBsYXliYWNrIGFmdGVyIGZpbmlzaGluZ1xuICAgICAgICBpZiAobmV3U3BlZWQgPCAwKVxuICAgICAgICAgICAgdGhpcy5maW5pc2hlZFRpbWUgPSBudWxsO1xuICAgICAgICB0aGlzLmFuaW1hdGlvbi5wbGF5YmFja1JhdGUgPSBuZXdTcGVlZDtcbiAgICB9XG4gICAgZ2V0IHN0YXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5pc2hlZFRpbWUgIT09IG51bGxcbiAgICAgICAgICAgID8gXCJmaW5pc2hlZFwiXG4gICAgICAgICAgICA6IHRoaXMuYW5pbWF0aW9uLnBsYXlTdGF0ZTtcbiAgICB9XG4gICAgZ2V0IHN0YXJ0VGltZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFudWFsU3RhcnRUaW1lID8/IE51bWJlcih0aGlzLmFuaW1hdGlvbi5zdGFydFRpbWUpO1xuICAgIH1cbiAgICBzZXQgc3RhcnRUaW1lKG5ld1N0YXJ0VGltZSkge1xuICAgICAgICB0aGlzLm1hbnVhbFN0YXJ0VGltZSA9IHRoaXMuYW5pbWF0aW9uLnN0YXJ0VGltZSA9IG5ld1N0YXJ0VGltZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQXR0YWNoZXMgYSB0aW1lbGluZSB0byB0aGUgYW5pbWF0aW9uLCBmb3IgaW5zdGFuY2UgdGhlIGBTY3JvbGxUaW1lbGluZWAuXG4gICAgICovXG4gICAgYXR0YWNoVGltZWxpbmUoeyB0aW1lbGluZSwgb2JzZXJ2ZSB9KSB7XG4gICAgICAgIGlmICh0aGlzLmFsbG93RmxhdHRlbikge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uZWZmZWN0Py51cGRhdGVUaW1pbmcoeyBlYXNpbmc6IFwibGluZWFyXCIgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbmltYXRpb24ub25maW5pc2ggPSBudWxsO1xuICAgICAgICBpZiAodGltZWxpbmUgJiYgc3VwcG9ydHNTY3JvbGxUaW1lbGluZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbi50aW1lbGluZSA9IHRpbWVsaW5lO1xuICAgICAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gb2JzZXJ2ZSh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgTmF0aXZlQW5pbWF0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1OYXRpdmVBbmltYXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NativeAnimationExtended: () => (/* binding */ NativeAnimationExtended)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./JSAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var _NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NativeAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs\");\n/* harmony import */ var _utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/replace-transition-type.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\");\n/* harmony import */ var _waapi_utils_unsupported_easing_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./waapi/utils/unsupported-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs\");\n\n\n\n\n\n\n\n/**\n * 10ms is chosen here as it strikes a balance between smooth\n * results (more than one keyframe per frame at 60fps) and\n * keyframe quantity.\n */\nconst sampleDelta = 10; //ms\nclass NativeAnimationExtended extends _NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_0__.NativeAnimation {\n constructor(options) {\n /**\n * The base NativeAnimation function only supports a subset\n * of Motion easings, and WAAPI also only supports some\n * easing functions via string/cubic-bezier definitions.\n *\n * This function replaces those unsupported easing functions\n * with a JS easing function. This will later get compiled\n * to a linear() easing function.\n */\n (0,_waapi_utils_unsupported_easing_mjs__WEBPACK_IMPORTED_MODULE_1__.replaceStringEasing)(options);\n /**\n * Ensure we replace the transition type with a generator function\n * before passing to WAAPI.\n *\n * TODO: Does this have a better home? It could be shared with\n * JSAnimation.\n */\n (0,_utils_replace_transition_type_mjs__WEBPACK_IMPORTED_MODULE_2__.replaceTransitionType)(options);\n super(options);\n if (options.startTime !== undefined) {\n this.startTime = options.startTime;\n }\n this.options = options;\n }\n /**\n * WAAPI doesn't natively have any interruption capabilities.\n *\n * Rather than read committed styles back out of the DOM, we can\n * create a renderless JS animation and sample it twice to calculate\n * its current value, \"previous\" value, and therefore allow\n * Motion to calculate velocity for any subsequent animation.\n */\n updateMotionValue(value) {\n const { motionValue, onUpdate, onComplete, element, ...options } = this.options;\n if (!motionValue)\n return;\n if (value !== undefined) {\n motionValue.set(value);\n return;\n }\n const sampleAnimation = new _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_3__.JSAnimation({\n ...options,\n autoplay: false,\n });\n /**\n * Use wall-clock elapsed time for sampling.\n * Under CPU load, WAAPI's currentTime may not reflect actual\n * elapsed time, causing incorrect sampling and visual jumps.\n */\n const sampleTime = Math.max(sampleDelta, _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_4__.time.now() - this.startTime);\n const delta = (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.clamp)(0, sampleDelta, sampleTime - sampleDelta);\n motionValue.setWithVelocity(sampleAnimation.sample(Math.max(0, sampleTime - delta)).value, sampleAnimation.sample(sampleTime).value, delta);\n sampleAnimation.stop();\n }\n}\n\n\n//# sourceMappingURL=NativeAnimationExtended.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL05hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQXFDO0FBQ2E7QUFDRjtBQUNRO0FBQ29CO0FBQ0Q7O0FBRTNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEIsc0NBQXNDLGlFQUFlO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx3RkFBbUI7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHlGQUFxQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IseURBQXlEO0FBQ3pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyx5REFBVztBQUMvQztBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsMERBQUk7QUFDckQsc0JBQXNCLG1EQUFLO0FBQzNCO0FBQ0E7QUFDQTtBQUNBOztBQUVtQztBQUNuQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL05hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbGFtcCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyB0aW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL3N5bmMtdGltZS5tanMnO1xuaW1wb3J0IHsgSlNBbmltYXRpb24gfSBmcm9tICcuL0pTQW5pbWF0aW9uLm1qcyc7XG5pbXBvcnQgeyBOYXRpdmVBbmltYXRpb24gfSBmcm9tICcuL05hdGl2ZUFuaW1hdGlvbi5tanMnO1xuaW1wb3J0IHsgcmVwbGFjZVRyYW5zaXRpb25UeXBlIH0gZnJvbSAnLi91dGlscy9yZXBsYWNlLXRyYW5zaXRpb24tdHlwZS5tanMnO1xuaW1wb3J0IHsgcmVwbGFjZVN0cmluZ0Vhc2luZyB9IGZyb20gJy4vd2FhcGkvdXRpbHMvdW5zdXBwb3J0ZWQtZWFzaW5nLm1qcyc7XG5cbi8qKlxuICogMTBtcyBpcyBjaG9zZW4gaGVyZSBhcyBpdCBzdHJpa2VzIGEgYmFsYW5jZSBiZXR3ZWVuIHNtb290aFxuICogcmVzdWx0cyAobW9yZSB0aGFuIG9uZSBrZXlmcmFtZSBwZXIgZnJhbWUgYXQgNjBmcHMpIGFuZFxuICoga2V5ZnJhbWUgcXVhbnRpdHkuXG4gKi9cbmNvbnN0IHNhbXBsZURlbHRhID0gMTA7IC8vbXNcbmNsYXNzIE5hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkIGV4dGVuZHMgTmF0aXZlQW5pbWF0aW9uIHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgYmFzZSBOYXRpdmVBbmltYXRpb24gZnVuY3Rpb24gb25seSBzdXBwb3J0cyBhIHN1YnNldFxuICAgICAgICAgKiBvZiBNb3Rpb24gZWFzaW5ncywgYW5kIFdBQVBJIGFsc28gb25seSBzdXBwb3J0cyBzb21lXG4gICAgICAgICAqIGVhc2luZyBmdW5jdGlvbnMgdmlhIHN0cmluZy9jdWJpYy1iZXppZXIgZGVmaW5pdGlvbnMuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoaXMgZnVuY3Rpb24gcmVwbGFjZXMgdGhvc2UgdW5zdXBwb3J0ZWQgZWFzaW5nIGZ1bmN0aW9uc1xuICAgICAgICAgKiB3aXRoIGEgSlMgZWFzaW5nIGZ1bmN0aW9uLiBUaGlzIHdpbGwgbGF0ZXIgZ2V0IGNvbXBpbGVkXG4gICAgICAgICAqIHRvIGEgbGluZWFyKCkgZWFzaW5nIGZ1bmN0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgcmVwbGFjZVN0cmluZ0Vhc2luZyhvcHRpb25zKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEVuc3VyZSB3ZSByZXBsYWNlIHRoZSB0cmFuc2l0aW9uIHR5cGUgd2l0aCBhIGdlbmVyYXRvciBmdW5jdGlvblxuICAgICAgICAgKiBiZWZvcmUgcGFzc2luZyB0byBXQUFQSS5cbiAgICAgICAgICpcbiAgICAgICAgICogVE9ETzogRG9lcyB0aGlzIGhhdmUgYSBiZXR0ZXIgaG9tZT8gSXQgY291bGQgYmUgc2hhcmVkIHdpdGhcbiAgICAgICAgICogSlNBbmltYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICByZXBsYWNlVHJhbnNpdGlvblR5cGUob3B0aW9ucyk7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgICAgICBpZiAob3B0aW9ucy5zdGFydFRpbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBvcHRpb25zLnN0YXJ0VGltZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBXQUFQSSBkb2Vzbid0IG5hdGl2ZWx5IGhhdmUgYW55IGludGVycnVwdGlvbiBjYXBhYmlsaXRpZXMuXG4gICAgICpcbiAgICAgKiBSYXRoZXIgdGhhbiByZWFkIGNvbW1pdHRlZCBzdHlsZXMgYmFjayBvdXQgb2YgdGhlIERPTSwgd2UgY2FuXG4gICAgICogY3JlYXRlIGEgcmVuZGVybGVzcyBKUyBhbmltYXRpb24gYW5kIHNhbXBsZSBpdCB0d2ljZSB0byBjYWxjdWxhdGVcbiAgICAgKiBpdHMgY3VycmVudCB2YWx1ZSwgXCJwcmV2aW91c1wiIHZhbHVlLCBhbmQgdGhlcmVmb3JlIGFsbG93XG4gICAgICogTW90aW9uIHRvIGNhbGN1bGF0ZSB2ZWxvY2l0eSBmb3IgYW55IHN1YnNlcXVlbnQgYW5pbWF0aW9uLlxuICAgICAqL1xuICAgIHVwZGF0ZU1vdGlvblZhbHVlKHZhbHVlKSB7XG4gICAgICAgIGNvbnN0IHsgbW90aW9uVmFsdWUsIG9uVXBkYXRlLCBvbkNvbXBsZXRlLCBlbGVtZW50LCAuLi5vcHRpb25zIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGlmICghbW90aW9uVmFsdWUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBtb3Rpb25WYWx1ZS5zZXQodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNhbXBsZUFuaW1hdGlvbiA9IG5ldyBKU0FuaW1hdGlvbih7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgYXV0b3BsYXk6IGZhbHNlLFxuICAgICAgICB9KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZSB3YWxsLWNsb2NrIGVsYXBzZWQgdGltZSBmb3Igc2FtcGxpbmcuXG4gICAgICAgICAqIFVuZGVyIENQVSBsb2FkLCBXQUFQSSdzIGN1cnJlbnRUaW1lIG1heSBub3QgcmVmbGVjdCBhY3R1YWxcbiAgICAgICAgICogZWxhcHNlZCB0aW1lLCBjYXVzaW5nIGluY29ycmVjdCBzYW1wbGluZyBhbmQgdmlzdWFsIGp1bXBzLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgc2FtcGxlVGltZSA9IE1hdGgubWF4KHNhbXBsZURlbHRhLCB0aW1lLm5vdygpIC0gdGhpcy5zdGFydFRpbWUpO1xuICAgICAgICBjb25zdCBkZWx0YSA9IGNsYW1wKDAsIHNhbXBsZURlbHRhLCBzYW1wbGVUaW1lIC0gc2FtcGxlRGVsdGEpO1xuICAgICAgICBtb3Rpb25WYWx1ZS5zZXRXaXRoVmVsb2NpdHkoc2FtcGxlQW5pbWF0aW9uLnNhbXBsZShNYXRoLm1heCgwLCBzYW1wbGVUaW1lIC0gZGVsdGEpKS52YWx1ZSwgc2FtcGxlQW5pbWF0aW9uLnNhbXBsZShzYW1wbGVUaW1lKS52YWx1ZSwgZGVsdGEpO1xuICAgICAgICBzYW1wbGVBbmltYXRpb24uc3RvcCgpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgTmF0aXZlQW5pbWF0aW9uRXh0ZW5kZWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5hdGl2ZUFuaW1hdGlvbkV4dGVuZGVkLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/animate/single-value.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/animate/single-value.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateSingleValue: () => (/* binding */ animateSingleValue)\n/* harmony export */ });\n/* harmony import */ var _interfaces_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../interfaces/motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\");\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\n\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) ? value : (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_1__.motionValue)(value);\n motionValue$1.start((0,_interfaces_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__.animateMotionValue)(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\n\n//# sourceMappingURL=single-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2FuaW1hdGUvc2luZ2xlLXZhbHVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQW9FO0FBQ2hCO0FBQ2tCOztBQUV0RTtBQUNBLDBCQUEwQiwrRUFBYSxrQkFBa0IsNkRBQVc7QUFDcEUsd0JBQXdCLGdGQUFrQjtBQUMxQztBQUNBOztBQUU4QjtBQUM5QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2FuaW1hdGUvc2luZ2xlLXZhbHVlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlTW90aW9uVmFsdWUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL21vdGlvbi12YWx1ZS5tanMnO1xuaW1wb3J0IHsgbW90aW9uVmFsdWUgfSBmcm9tICcuLi8uLi92YWx1ZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJy4uLy4uL3ZhbHVlL3V0aWxzL2lzLW1vdGlvbi12YWx1ZS5tanMnO1xuXG5mdW5jdGlvbiBhbmltYXRlU2luZ2xlVmFsdWUodmFsdWUsIGtleWZyYW1lcywgb3B0aW9ucykge1xuICAgIGNvbnN0IG1vdGlvblZhbHVlJDEgPSBpc01vdGlvblZhbHVlKHZhbHVlKSA/IHZhbHVlIDogbW90aW9uVmFsdWUodmFsdWUpO1xuICAgIG1vdGlvblZhbHVlJDEuc3RhcnQoYW5pbWF0ZU1vdGlvblZhbHVlKFwiXCIsIG1vdGlvblZhbHVlJDEsIGtleWZyYW1lcywgb3B0aW9ucykpO1xuICAgIHJldHVybiBtb3Rpb25WYWx1ZSQxLmFuaW1hdGlvbjtcbn1cblxuZXhwb3J0IHsgYW5pbWF0ZVNpbmdsZVZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zaW5nbGUtdmFsdWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/animate/single-value.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ frameloopDriver: () => (/* binding */ frameloopDriver)\n/* harmony export */ });\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\nconst frameloopDriver = (update) => {\n const passTimestamp = ({ timestamp }) => update(timestamp);\n return {\n start: (keepAlive = true) => _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frame.update(passTimestamp, keepAlive),\n stop: () => (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.cancelFrame)(passTimestamp),\n /**\n * If we're processing this frame we can use the\n * framelocked timestamp to keep things in sync.\n */\n now: () => (_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.isProcessing ? _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.timestamp : _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now()),\n };\n};\n\n\n//# sourceMappingURL=frame.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2RyaXZlcnMvZnJhbWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFxRDtBQUNxQjs7QUFFMUU7QUFDQSw2QkFBNkIsV0FBVztBQUN4QztBQUNBLHFDQUFxQyx1REFBSztBQUMxQyxvQkFBb0IsaUVBQVc7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMkRBQVMsZ0JBQWdCLDJEQUFTLGFBQWEsMERBQUk7QUFDdkU7QUFDQTs7QUFFMkI7QUFDM0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9kcml2ZXJzL2ZyYW1lLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0aW1lIH0gZnJvbSAnLi4vLi4vZnJhbWVsb29wL3N5bmMtdGltZS5tanMnO1xuaW1wb3J0IHsgZnJhbWUsIGNhbmNlbEZyYW1lLCBmcmFtZURhdGEgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcblxuY29uc3QgZnJhbWVsb29wRHJpdmVyID0gKHVwZGF0ZSkgPT4ge1xuICAgIGNvbnN0IHBhc3NUaW1lc3RhbXAgPSAoeyB0aW1lc3RhbXAgfSkgPT4gdXBkYXRlKHRpbWVzdGFtcCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnQ6IChrZWVwQWxpdmUgPSB0cnVlKSA9PiBmcmFtZS51cGRhdGUocGFzc1RpbWVzdGFtcCwga2VlcEFsaXZlKSxcbiAgICAgICAgc3RvcDogKCkgPT4gY2FuY2VsRnJhbWUocGFzc1RpbWVzdGFtcCksXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB3ZSdyZSBwcm9jZXNzaW5nIHRoaXMgZnJhbWUgd2UgY2FuIHVzZSB0aGVcbiAgICAgICAgICogZnJhbWVsb2NrZWQgdGltZXN0YW1wIHRvIGtlZXAgdGhpbmdzIGluIHN5bmMuXG4gICAgICAgICAqL1xuICAgICAgICBub3c6ICgpID0+IChmcmFtZURhdGEuaXNQcm9jZXNzaW5nID8gZnJhbWVEYXRhLnRpbWVzdGFtcCA6IHRpbWUubm93KCkpLFxuICAgIH07XG59O1xuXG5leHBvcnQgeyBmcmFtZWxvb3BEcml2ZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZyYW1lLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/drivers/frame.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ inertia: () => (/* binding */ inertia)\n/* harmony export */ });\n/* harmony import */ var _spring_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./spring/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\");\n/* harmony import */ var _utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/velocity.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\");\n\n\n\nfunction inertia({ keyframes, velocity = 0.0, power = 0.8, timeConstant = 325, bounceDamping = 10, bounceStiffness = 500, modifyTarget, min, max, restDelta = 0.5, restSpeed, }) {\n const origin = keyframes[0];\n const state = {\n done: false,\n value: origin,\n };\n const isOutOfBounds = (v) => (min !== undefined && v < min) || (max !== undefined && v > max);\n const nearestBoundary = (v) => {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n };\n let amplitude = power * velocity;\n const ideal = origin + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n /**\n * If the target has changed we need to re-calculate the amplitude, otherwise\n * the animation will start from the wrong position.\n */\n if (target !== ideal)\n amplitude = target - origin;\n const calcDelta = (t) => -amplitude * Math.exp(-t / timeConstant);\n const calcLatest = (t) => target + calcDelta(t);\n const applyFriction = (t) => {\n const delta = calcDelta(t);\n const latest = calcLatest(t);\n state.done = Math.abs(delta) <= restDelta;\n state.value = state.done ? target : latest;\n };\n /**\n * Ideally this would resolve for t in a stateless way, we could\n * do that by always precalculating the animation but as we know\n * this will be done anyway we can assume that spring will\n * be discovered during that.\n */\n let timeReachedBoundary;\n let spring$1;\n const checkCatchBoundary = (t) => {\n if (!isOutOfBounds(state.value))\n return;\n timeReachedBoundary = t;\n spring$1 = (0,_spring_index_mjs__WEBPACK_IMPORTED_MODULE_0__.spring)({\n keyframes: [state.value, nearestBoundary(state.value)],\n velocity: (0,_utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_1__.calcGeneratorVelocity)(calcLatest, t, state.value), // TODO: This should be passing * 1000\n damping: bounceDamping,\n stiffness: bounceStiffness,\n restDelta,\n restSpeed,\n });\n };\n checkCatchBoundary(0);\n return {\n calculatedDuration: null,\n next: (t) => {\n /**\n * We need to resolve the friction to figure out if we need a\n * spring but we don't want to do this twice per frame. So here\n * we flag if we updated for this frame and later if we did\n * we can skip doing it again.\n */\n let hasUpdatedFrame = false;\n if (!spring$1 && timeReachedBoundary === undefined) {\n hasUpdatedFrame = true;\n applyFriction(t);\n checkCatchBoundary(t);\n }\n /**\n * If we have a spring and the provided t is beyond the moment the friction\n * animation crossed the min/max boundary, use the spring.\n */\n if (timeReachedBoundary !== undefined && t >= timeReachedBoundary) {\n return spring$1.next(t - timeReachedBoundary);\n }\n else {\n !hasUpdatedFrame && applyFriction(t);\n return state;\n }\n },\n };\n}\n\n\n//# sourceMappingURL=inertia.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvaW5lcnRpYS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRDO0FBQ2lCOztBQUU3RCxtQkFBbUIsNEpBQTRKO0FBQy9LO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQix5REFBTTtBQUN6QjtBQUNBLHNCQUFzQiwwRUFBcUI7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFbUI7QUFDbkIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL2luZXJ0aWEubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNwcmluZyB9IGZyb20gJy4vc3ByaW5nL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBjYWxjR2VuZXJhdG9yVmVsb2NpdHkgfSBmcm9tICcuL3V0aWxzL3ZlbG9jaXR5Lm1qcyc7XG5cbmZ1bmN0aW9uIGluZXJ0aWEoeyBrZXlmcmFtZXMsIHZlbG9jaXR5ID0gMC4wLCBwb3dlciA9IDAuOCwgdGltZUNvbnN0YW50ID0gMzI1LCBib3VuY2VEYW1waW5nID0gMTAsIGJvdW5jZVN0aWZmbmVzcyA9IDUwMCwgbW9kaWZ5VGFyZ2V0LCBtaW4sIG1heCwgcmVzdERlbHRhID0gMC41LCByZXN0U3BlZWQsIH0pIHtcbiAgICBjb25zdCBvcmlnaW4gPSBrZXlmcmFtZXNbMF07XG4gICAgY29uc3Qgc3RhdGUgPSB7XG4gICAgICAgIGRvbmU6IGZhbHNlLFxuICAgICAgICB2YWx1ZTogb3JpZ2luLFxuICAgIH07XG4gICAgY29uc3QgaXNPdXRPZkJvdW5kcyA9ICh2KSA9PiAobWluICE9PSB1bmRlZmluZWQgJiYgdiA8IG1pbikgfHwgKG1heCAhPT0gdW5kZWZpbmVkICYmIHYgPiBtYXgpO1xuICAgIGNvbnN0IG5lYXJlc3RCb3VuZGFyeSA9ICh2KSA9PiB7XG4gICAgICAgIGlmIChtaW4gPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiBtYXg7XG4gICAgICAgIGlmIChtYXggPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJldHVybiBtaW47XG4gICAgICAgIHJldHVybiBNYXRoLmFicyhtaW4gLSB2KSA8IE1hdGguYWJzKG1heCAtIHYpID8gbWluIDogbWF4O1xuICAgIH07XG4gICAgbGV0IGFtcGxpdHVkZSA9IHBvd2VyICogdmVsb2NpdHk7XG4gICAgY29uc3QgaWRlYWwgPSBvcmlnaW4gKyBhbXBsaXR1ZGU7XG4gICAgY29uc3QgdGFyZ2V0ID0gbW9kaWZ5VGFyZ2V0ID09PSB1bmRlZmluZWQgPyBpZGVhbCA6IG1vZGlmeVRhcmdldChpZGVhbCk7XG4gICAgLyoqXG4gICAgICogSWYgdGhlIHRhcmdldCBoYXMgY2hhbmdlZCB3ZSBuZWVkIHRvIHJlLWNhbGN1bGF0ZSB0aGUgYW1wbGl0dWRlLCBvdGhlcndpc2VcbiAgICAgKiB0aGUgYW5pbWF0aW9uIHdpbGwgc3RhcnQgZnJvbSB0aGUgd3JvbmcgcG9zaXRpb24uXG4gICAgICovXG4gICAgaWYgKHRhcmdldCAhPT0gaWRlYWwpXG4gICAgICAgIGFtcGxpdHVkZSA9IHRhcmdldCAtIG9yaWdpbjtcbiAgICBjb25zdCBjYWxjRGVsdGEgPSAodCkgPT4gLWFtcGxpdHVkZSAqIE1hdGguZXhwKC10IC8gdGltZUNvbnN0YW50KTtcbiAgICBjb25zdCBjYWxjTGF0ZXN0ID0gKHQpID0+IHRhcmdldCArIGNhbGNEZWx0YSh0KTtcbiAgICBjb25zdCBhcHBseUZyaWN0aW9uID0gKHQpID0+IHtcbiAgICAgICAgY29uc3QgZGVsdGEgPSBjYWxjRGVsdGEodCk7XG4gICAgICAgIGNvbnN0IGxhdGVzdCA9IGNhbGNMYXRlc3QodCk7XG4gICAgICAgIHN0YXRlLmRvbmUgPSBNYXRoLmFicyhkZWx0YSkgPD0gcmVzdERlbHRhO1xuICAgICAgICBzdGF0ZS52YWx1ZSA9IHN0YXRlLmRvbmUgPyB0YXJnZXQgOiBsYXRlc3Q7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBJZGVhbGx5IHRoaXMgd291bGQgcmVzb2x2ZSBmb3IgdCBpbiBhIHN0YXRlbGVzcyB3YXksIHdlIGNvdWxkXG4gICAgICogZG8gdGhhdCBieSBhbHdheXMgcHJlY2FsY3VsYXRpbmcgdGhlIGFuaW1hdGlvbiBidXQgYXMgd2Uga25vd1xuICAgICAqIHRoaXMgd2lsbCBiZSBkb25lIGFueXdheSB3ZSBjYW4gYXNzdW1lIHRoYXQgc3ByaW5nIHdpbGxcbiAgICAgKiBiZSBkaXNjb3ZlcmVkIGR1cmluZyB0aGF0LlxuICAgICAqL1xuICAgIGxldCB0aW1lUmVhY2hlZEJvdW5kYXJ5O1xuICAgIGxldCBzcHJpbmckMTtcbiAgICBjb25zdCBjaGVja0NhdGNoQm91bmRhcnkgPSAodCkgPT4ge1xuICAgICAgICBpZiAoIWlzT3V0T2ZCb3VuZHMoc3RhdGUudmFsdWUpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aW1lUmVhY2hlZEJvdW5kYXJ5ID0gdDtcbiAgICAgICAgc3ByaW5nJDEgPSBzcHJpbmcoe1xuICAgICAgICAgICAga2V5ZnJhbWVzOiBbc3RhdGUudmFsdWUsIG5lYXJlc3RCb3VuZGFyeShzdGF0ZS52YWx1ZSldLFxuICAgICAgICAgICAgdmVsb2NpdHk6IGNhbGNHZW5lcmF0b3JWZWxvY2l0eShjYWxjTGF0ZXN0LCB0LCBzdGF0ZS52YWx1ZSksIC8vIFRPRE86IFRoaXMgc2hvdWxkIGJlIHBhc3NpbmcgKiAxMDAwXG4gICAgICAgICAgICBkYW1waW5nOiBib3VuY2VEYW1waW5nLFxuICAgICAgICAgICAgc3RpZmZuZXNzOiBib3VuY2VTdGlmZm5lc3MsXG4gICAgICAgICAgICByZXN0RGVsdGEsXG4gICAgICAgICAgICByZXN0U3BlZWQsXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY2hlY2tDYXRjaEJvdW5kYXJ5KDApO1xuICAgIHJldHVybiB7XG4gICAgICAgIGNhbGN1bGF0ZWREdXJhdGlvbjogbnVsbCxcbiAgICAgICAgbmV4dDogKHQpID0+IHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2UgbmVlZCB0byByZXNvbHZlIHRoZSBmcmljdGlvbiB0byBmaWd1cmUgb3V0IGlmIHdlIG5lZWQgYVxuICAgICAgICAgICAgICogc3ByaW5nIGJ1dCB3ZSBkb24ndCB3YW50IHRvIGRvIHRoaXMgdHdpY2UgcGVyIGZyYW1lLiBTbyBoZXJlXG4gICAgICAgICAgICAgKiB3ZSBmbGFnIGlmIHdlIHVwZGF0ZWQgZm9yIHRoaXMgZnJhbWUgYW5kIGxhdGVyIGlmIHdlIGRpZFxuICAgICAgICAgICAgICogd2UgY2FuIHNraXAgZG9pbmcgaXQgYWdhaW4uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxldCBoYXNVcGRhdGVkRnJhbWUgPSBmYWxzZTtcbiAgICAgICAgICAgIGlmICghc3ByaW5nJDEgJiYgdGltZVJlYWNoZWRCb3VuZGFyeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgaGFzVXBkYXRlZEZyYW1lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBhcHBseUZyaWN0aW9uKHQpO1xuICAgICAgICAgICAgICAgIGNoZWNrQ2F0Y2hCb3VuZGFyeSh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBhIHNwcmluZyBhbmQgdGhlIHByb3ZpZGVkIHQgaXMgYmV5b25kIHRoZSBtb21lbnQgdGhlIGZyaWN0aW9uXG4gICAgICAgICAgICAgKiBhbmltYXRpb24gY3Jvc3NlZCB0aGUgbWluL21heCBib3VuZGFyeSwgdXNlIHRoZSBzcHJpbmcuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aW1lUmVhY2hlZEJvdW5kYXJ5ICE9PSB1bmRlZmluZWQgJiYgdCA+PSB0aW1lUmVhY2hlZEJvdW5kYXJ5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNwcmluZyQxLm5leHQodCAtIHRpbWVSZWFjaGVkQm91bmRhcnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgIWhhc1VwZGF0ZWRGcmFtZSAmJiBhcHBseUZyaWN0aW9uKHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9O1xufVxuXG5leHBvcnQgeyBpbmVydGlhIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmVydGlhLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultEasing: () => (/* binding */ defaultEasing),\n/* harmony export */ keyframes: () => (/* binding */ keyframes)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs\");\n/* harmony import */ var _utils_interpolate_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/interpolate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs\");\n/* harmony import */ var _keyframes_offsets_default_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../keyframes/offsets/default.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs\");\n/* harmony import */ var _keyframes_offsets_time_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../keyframes/offsets/time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs\");\n\n\n\n\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || motion_utils__WEBPACK_IMPORTED_MODULE_0__.easeInOut).splice(0, values.length - 1);\n}\nfunction keyframes({ duration = 300, keyframes: keyframeValues, times, ease = \"easeInOut\", }) {\n /**\n * Easing functions can be externally defined as strings. Here we convert them\n * into actual functions.\n */\n const easingFunctions = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.isEasingArray)(ease)\n ? ease.map(motion_utils__WEBPACK_IMPORTED_MODULE_2__.easingDefinitionToFunction)\n : (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.easingDefinitionToFunction)(ease);\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = {\n done: false,\n value: keyframeValues[0],\n };\n /**\n * Create a times array based on the provided 0-1 offsets\n */\n const absoluteTimes = (0,_keyframes_offsets_time_mjs__WEBPACK_IMPORTED_MODULE_3__.convertOffsetToTimes)(\n // Only use the provided offsets if they're the correct length\n // TODO Maybe we should warn here if there's a length mismatch\n times && times.length === keyframeValues.length\n ? times\n : (0,_keyframes_offsets_default_mjs__WEBPACK_IMPORTED_MODULE_4__.defaultOffset)(keyframeValues), duration);\n const mapTimeToKeyframe = (0,_utils_interpolate_mjs__WEBPACK_IMPORTED_MODULE_5__.interpolate)(absoluteTimes, keyframeValues, {\n ease: Array.isArray(easingFunctions)\n ? easingFunctions\n : defaultEasing(keyframeValues, easingFunctions),\n });\n return {\n calculatedDuration: duration,\n next: (t) => {\n state.value = mapTimeToKeyframe(t);\n state.done = t >= duration;\n return state;\n },\n };\n}\n\n\n//# sourceMappingURL=keyframes.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMva2V5ZnJhbWVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFvRjtBQUMxQjtBQUNPO0FBQ0k7O0FBRXJFO0FBQ0Esc0NBQXNDLG1EQUFTO0FBQy9DO0FBQ0EscUJBQXFCLHVFQUF1RTtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwyREFBYTtBQUN6QyxtQkFBbUIsb0VBQTBCO0FBQzdDLFVBQVUsd0VBQTBCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsaUZBQW9CO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSw2RUFBYTtBQUN2Qiw4QkFBOEIsbUVBQVc7QUFDekM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBOztBQUVvQztBQUNwQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMva2V5ZnJhbWVzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlYXNlSW5PdXQsIGlzRWFzaW5nQXJyYXksIGVhc2luZ0RlZmluaXRpb25Ub0Z1bmN0aW9uIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGludGVycG9sYXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvaW50ZXJwb2xhdGUubWpzJztcbmltcG9ydCB7IGRlZmF1bHRPZmZzZXQgfSBmcm9tICcuLi9rZXlmcmFtZXMvb2Zmc2V0cy9kZWZhdWx0Lm1qcyc7XG5pbXBvcnQgeyBjb252ZXJ0T2Zmc2V0VG9UaW1lcyB9IGZyb20gJy4uL2tleWZyYW1lcy9vZmZzZXRzL3RpbWUubWpzJztcblxuZnVuY3Rpb24gZGVmYXVsdEVhc2luZyh2YWx1ZXMsIGVhc2luZykge1xuICAgIHJldHVybiB2YWx1ZXMubWFwKCgpID0+IGVhc2luZyB8fCBlYXNlSW5PdXQpLnNwbGljZSgwLCB2YWx1ZXMubGVuZ3RoIC0gMSk7XG59XG5mdW5jdGlvbiBrZXlmcmFtZXMoeyBkdXJhdGlvbiA9IDMwMCwga2V5ZnJhbWVzOiBrZXlmcmFtZVZhbHVlcywgdGltZXMsIGVhc2UgPSBcImVhc2VJbk91dFwiLCB9KSB7XG4gICAgLyoqXG4gICAgICogRWFzaW5nIGZ1bmN0aW9ucyBjYW4gYmUgZXh0ZXJuYWxseSBkZWZpbmVkIGFzIHN0cmluZ3MuIEhlcmUgd2UgY29udmVydCB0aGVtXG4gICAgICogaW50byBhY3R1YWwgZnVuY3Rpb25zLlxuICAgICAqL1xuICAgIGNvbnN0IGVhc2luZ0Z1bmN0aW9ucyA9IGlzRWFzaW5nQXJyYXkoZWFzZSlcbiAgICAgICAgPyBlYXNlLm1hcChlYXNpbmdEZWZpbml0aW9uVG9GdW5jdGlvbilcbiAgICAgICAgOiBlYXNpbmdEZWZpbml0aW9uVG9GdW5jdGlvbihlYXNlKTtcbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIHRoZSBJdGVyYXRvci1zcGVjIHJldHVybiB2YWx1ZS4gV2UgZW5zdXJlIGl0J3MgbXV0YWJsZSByYXRoZXIgdGhhbiB1c2luZyBhIGdlbmVyYXRvclxuICAgICAqIHRvIHJlZHVjZSBHQyBkdXJpbmcgYW5pbWF0aW9uLlxuICAgICAqL1xuICAgIGNvbnN0IHN0YXRlID0ge1xuICAgICAgICBkb25lOiBmYWxzZSxcbiAgICAgICAgdmFsdWU6IGtleWZyYW1lVmFsdWVzWzBdLFxuICAgIH07XG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgdGltZXMgYXJyYXkgYmFzZWQgb24gdGhlIHByb3ZpZGVkIDAtMSBvZmZzZXRzXG4gICAgICovXG4gICAgY29uc3QgYWJzb2x1dGVUaW1lcyA9IGNvbnZlcnRPZmZzZXRUb1RpbWVzKFxuICAgIC8vIE9ubHkgdXNlIHRoZSBwcm92aWRlZCBvZmZzZXRzIGlmIHRoZXkncmUgdGhlIGNvcnJlY3QgbGVuZ3RoXG4gICAgLy8gVE9ETyBNYXliZSB3ZSBzaG91bGQgd2FybiBoZXJlIGlmIHRoZXJlJ3MgYSBsZW5ndGggbWlzbWF0Y2hcbiAgICB0aW1lcyAmJiB0aW1lcy5sZW5ndGggPT09IGtleWZyYW1lVmFsdWVzLmxlbmd0aFxuICAgICAgICA/IHRpbWVzXG4gICAgICAgIDogZGVmYXVsdE9mZnNldChrZXlmcmFtZVZhbHVlcyksIGR1cmF0aW9uKTtcbiAgICBjb25zdCBtYXBUaW1lVG9LZXlmcmFtZSA9IGludGVycG9sYXRlKGFic29sdXRlVGltZXMsIGtleWZyYW1lVmFsdWVzLCB7XG4gICAgICAgIGVhc2U6IEFycmF5LmlzQXJyYXkoZWFzaW5nRnVuY3Rpb25zKVxuICAgICAgICAgICAgPyBlYXNpbmdGdW5jdGlvbnNcbiAgICAgICAgICAgIDogZGVmYXVsdEVhc2luZyhrZXlmcmFtZVZhbHVlcywgZWFzaW5nRnVuY3Rpb25zKSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICBjYWxjdWxhdGVkRHVyYXRpb246IGR1cmF0aW9uLFxuICAgICAgICBuZXh0OiAodCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUudmFsdWUgPSBtYXBUaW1lVG9LZXlmcmFtZSh0KTtcbiAgICAgICAgICAgIHN0YXRlLmRvbmUgPSB0ID49IGR1cmF0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIHN0YXRlO1xuICAgICAgICB9LFxuICAgIH07XG59XG5cbmV4cG9ydCB7IGRlZmF1bHRFYXNpbmcsIGtleWZyYW1lcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9a2V5ZnJhbWVzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ springDefaults: () => (/* binding */ springDefaults)\n/* harmony export */ });\nconst springDefaults = {\n // Default spring physics\n stiffness: 100,\n damping: 10,\n mass: 1.0,\n velocity: 0.0,\n // Default duration/bounce-based options\n duration: 800, // in ms\n bounce: 0.3,\n visualDuration: 0.3, // in seconds\n // Rest thresholds\n restSpeed: {\n granular: 0.01,\n default: 2,\n },\n restDelta: {\n granular: 0.005,\n default: 0.5,\n },\n // Limits\n minDuration: 0.01, // in seconds\n maxDuration: 10.0, // in seconds\n minDamping: 0.05,\n maxDamping: 1,\n};\n\n\n//# sourceMappingURL=defaults.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2RlZmF1bHRzLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUwQjtBQUMxQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2RlZmF1bHRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzcHJpbmdEZWZhdWx0cyA9IHtcbiAgICAvLyBEZWZhdWx0IHNwcmluZyBwaHlzaWNzXG4gICAgc3RpZmZuZXNzOiAxMDAsXG4gICAgZGFtcGluZzogMTAsXG4gICAgbWFzczogMS4wLFxuICAgIHZlbG9jaXR5OiAwLjAsXG4gICAgLy8gRGVmYXVsdCBkdXJhdGlvbi9ib3VuY2UtYmFzZWQgb3B0aW9uc1xuICAgIGR1cmF0aW9uOiA4MDAsIC8vIGluIG1zXG4gICAgYm91bmNlOiAwLjMsXG4gICAgdmlzdWFsRHVyYXRpb246IDAuMywgLy8gaW4gc2Vjb25kc1xuICAgIC8vIFJlc3QgdGhyZXNob2xkc1xuICAgIHJlc3RTcGVlZDoge1xuICAgICAgICBncmFudWxhcjogMC4wMSxcbiAgICAgICAgZGVmYXVsdDogMixcbiAgICB9LFxuICAgIHJlc3REZWx0YToge1xuICAgICAgICBncmFudWxhcjogMC4wMDUsXG4gICAgICAgIGRlZmF1bHQ6IDAuNSxcbiAgICB9LFxuICAgIC8vIExpbWl0c1xuICAgIG1pbkR1cmF0aW9uOiAwLjAxLCAvLyBpbiBzZWNvbmRzXG4gICAgbWF4RHVyYXRpb246IDEwLjAsIC8vIGluIHNlY29uZHNcbiAgICBtaW5EYW1waW5nOiAwLjA1LFxuICAgIG1heERhbXBpbmc6IDEsXG59O1xuXG5leHBvcnQgeyBzcHJpbmdEZWZhdWx0cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVmYXVsdHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcAngularFreq: () => (/* binding */ calcAngularFreq),\n/* harmony export */ findSpring: () => (/* binding */ findSpring)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaults.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\");\n\n\n\nconst safeMin = 0.001;\nfunction findSpring({ duration = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.duration, bounce = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.bounce, velocity = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.velocity, mass = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass, }) {\n let envelope;\n let derivative;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warning)(duration <= (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDuration), \"Spring duration must be 10 seconds or less\", \"spring-duration-limit\");\n let dampingRatio = 1 - bounce;\n /**\n * Restrict dampingRatio and duration to within acceptable ranges.\n */\n dampingRatio = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.minDamping, _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDamping, dampingRatio);\n duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.clamp)(_defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.minDuration, _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.maxDuration, (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.millisecondsToSeconds)(duration));\n if (dampingRatio < 1) {\n /**\n * Underdamped spring\n */\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n /**\n * Critically-damped spring\n */\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(duration);\n if (isNaN(undampedFreq)) {\n return {\n stiffness: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.stiffness,\n damping: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.damping,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\n\n//# sourceMappingURL=find.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2ZpbmQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUE0RjtBQUM1Qzs7QUFFaEQ7QUFDQSxzQkFBc0IsV0FBVyx5REFBYyxvQkFBb0IseURBQWMsb0JBQW9CLHlEQUFjLGtCQUFrQix5REFBYyxRQUFRO0FBQzNKO0FBQ0E7QUFDQSxJQUFJLHFEQUFPLGFBQWEsbUVBQXFCLENBQUMseURBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsbURBQUssQ0FBQyx5REFBYyxhQUFhLHlEQUFjO0FBQ2xFLGVBQWUsbURBQUssQ0FBQyx5REFBYyxjQUFjLHlEQUFjLGNBQWMsbUVBQXFCO0FBQ2xHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxtRUFBcUI7QUFDcEM7QUFDQTtBQUNBLHVCQUF1Qix5REFBYztBQUNyQyxxQkFBcUIseURBQWM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLG9CQUFvQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFdUM7QUFDdkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9nZW5lcmF0b3JzL3NwcmluZy9maW5kLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YXJuaW5nLCBzZWNvbmRzVG9NaWxsaXNlY29uZHMsIGNsYW1wLCBtaWxsaXNlY29uZHNUb1NlY29uZHMgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgc3ByaW5nRGVmYXVsdHMgfSBmcm9tICcuL2RlZmF1bHRzLm1qcyc7XG5cbmNvbnN0IHNhZmVNaW4gPSAwLjAwMTtcbmZ1bmN0aW9uIGZpbmRTcHJpbmcoeyBkdXJhdGlvbiA9IHNwcmluZ0RlZmF1bHRzLmR1cmF0aW9uLCBib3VuY2UgPSBzcHJpbmdEZWZhdWx0cy5ib3VuY2UsIHZlbG9jaXR5ID0gc3ByaW5nRGVmYXVsdHMudmVsb2NpdHksIG1hc3MgPSBzcHJpbmdEZWZhdWx0cy5tYXNzLCB9KSB7XG4gICAgbGV0IGVudmVsb3BlO1xuICAgIGxldCBkZXJpdmF0aXZlO1xuICAgIHdhcm5pbmcoZHVyYXRpb24gPD0gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKHNwcmluZ0RlZmF1bHRzLm1heER1cmF0aW9uKSwgXCJTcHJpbmcgZHVyYXRpb24gbXVzdCBiZSAxMCBzZWNvbmRzIG9yIGxlc3NcIiwgXCJzcHJpbmctZHVyYXRpb24tbGltaXRcIik7XG4gICAgbGV0IGRhbXBpbmdSYXRpbyA9IDEgLSBib3VuY2U7XG4gICAgLyoqXG4gICAgICogUmVzdHJpY3QgZGFtcGluZ1JhdGlvIGFuZCBkdXJhdGlvbiB0byB3aXRoaW4gYWNjZXB0YWJsZSByYW5nZXMuXG4gICAgICovXG4gICAgZGFtcGluZ1JhdGlvID0gY2xhbXAoc3ByaW5nRGVmYXVsdHMubWluRGFtcGluZywgc3ByaW5nRGVmYXVsdHMubWF4RGFtcGluZywgZGFtcGluZ1JhdGlvKTtcbiAgICBkdXJhdGlvbiA9IGNsYW1wKHNwcmluZ0RlZmF1bHRzLm1pbkR1cmF0aW9uLCBzcHJpbmdEZWZhdWx0cy5tYXhEdXJhdGlvbiwgbWlsbGlzZWNvbmRzVG9TZWNvbmRzKGR1cmF0aW9uKSk7XG4gICAgaWYgKGRhbXBpbmdSYXRpbyA8IDEpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVuZGVyZGFtcGVkIHNwcmluZ1xuICAgICAgICAgKi9cbiAgICAgICAgZW52ZWxvcGUgPSAodW5kYW1wZWRGcmVxKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBleHBvbmVudGlhbERlY2F5ID0gdW5kYW1wZWRGcmVxICogZGFtcGluZ1JhdGlvO1xuICAgICAgICAgICAgY29uc3QgZGVsdGEgPSBleHBvbmVudGlhbERlY2F5ICogZHVyYXRpb247XG4gICAgICAgICAgICBjb25zdCBhID0gZXhwb25lbnRpYWxEZWNheSAtIHZlbG9jaXR5O1xuICAgICAgICAgICAgY29uc3QgYiA9IGNhbGNBbmd1bGFyRnJlcSh1bmRhbXBlZEZyZXEsIGRhbXBpbmdSYXRpbyk7XG4gICAgICAgICAgICBjb25zdCBjID0gTWF0aC5leHAoLWRlbHRhKTtcbiAgICAgICAgICAgIHJldHVybiBzYWZlTWluIC0gKGEgLyBiKSAqIGM7XG4gICAgICAgIH07XG4gICAgICAgIGRlcml2YXRpdmUgPSAodW5kYW1wZWRGcmVxKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBleHBvbmVudGlhbERlY2F5ID0gdW5kYW1wZWRGcmVxICogZGFtcGluZ1JhdGlvO1xuICAgICAgICAgICAgY29uc3QgZGVsdGEgPSBleHBvbmVudGlhbERlY2F5ICogZHVyYXRpb247XG4gICAgICAgICAgICBjb25zdCBkID0gZGVsdGEgKiB2ZWxvY2l0eSArIHZlbG9jaXR5O1xuICAgICAgICAgICAgY29uc3QgZSA9IE1hdGgucG93KGRhbXBpbmdSYXRpbywgMikgKiBNYXRoLnBvdyh1bmRhbXBlZEZyZXEsIDIpICogZHVyYXRpb247XG4gICAgICAgICAgICBjb25zdCBmID0gTWF0aC5leHAoLWRlbHRhKTtcbiAgICAgICAgICAgIGNvbnN0IGcgPSBjYWxjQW5ndWxhckZyZXEoTWF0aC5wb3codW5kYW1wZWRGcmVxLCAyKSwgZGFtcGluZ1JhdGlvKTtcbiAgICAgICAgICAgIGNvbnN0IGZhY3RvciA9IC1lbnZlbG9wZSh1bmRhbXBlZEZyZXEpICsgc2FmZU1pbiA+IDAgPyAtMSA6IDE7XG4gICAgICAgICAgICByZXR1cm4gKGZhY3RvciAqICgoZCAtIGUpICogZikpIC8gZztcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDcml0aWNhbGx5LWRhbXBlZCBzcHJpbmdcbiAgICAgICAgICovXG4gICAgICAgIGVudmVsb3BlID0gKHVuZGFtcGVkRnJlcSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYSA9IE1hdGguZXhwKC11bmRhbXBlZEZyZXEgKiBkdXJhdGlvbik7XG4gICAgICAgICAgICBjb25zdCBiID0gKHVuZGFtcGVkRnJlcSAtIHZlbG9jaXR5KSAqIGR1cmF0aW9uICsgMTtcbiAgICAgICAgICAgIHJldHVybiAtc2FmZU1pbiArIGEgKiBiO1xuICAgICAgICB9O1xuICAgICAgICBkZXJpdmF0aXZlID0gKHVuZGFtcGVkRnJlcSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYSA9IE1hdGguZXhwKC11bmRhbXBlZEZyZXEgKiBkdXJhdGlvbik7XG4gICAgICAgICAgICBjb25zdCBiID0gKHZlbG9jaXR5IC0gdW5kYW1wZWRGcmVxKSAqIChkdXJhdGlvbiAqIGR1cmF0aW9uKTtcbiAgICAgICAgICAgIHJldHVybiBhICogYjtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgaW5pdGlhbEd1ZXNzID0gNSAvIGR1cmF0aW9uO1xuICAgIGNvbnN0IHVuZGFtcGVkRnJlcSA9IGFwcHJveGltYXRlUm9vdChlbnZlbG9wZSwgZGVyaXZhdGl2ZSwgaW5pdGlhbEd1ZXNzKTtcbiAgICBkdXJhdGlvbiA9IHNlY29uZHNUb01pbGxpc2Vjb25kcyhkdXJhdGlvbik7XG4gICAgaWYgKGlzTmFOKHVuZGFtcGVkRnJlcSkpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHN0aWZmbmVzczogc3ByaW5nRGVmYXVsdHMuc3RpZmZuZXNzLFxuICAgICAgICAgICAgZGFtcGluZzogc3ByaW5nRGVmYXVsdHMuZGFtcGluZyxcbiAgICAgICAgICAgIGR1cmF0aW9uLFxuICAgICAgICB9O1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3Qgc3RpZmZuZXNzID0gTWF0aC5wb3codW5kYW1wZWRGcmVxLCAyKSAqIG1hc3M7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGlmZm5lc3MsXG4gICAgICAgICAgICBkYW1waW5nOiBkYW1waW5nUmF0aW8gKiAyICogTWF0aC5zcXJ0KG1hc3MgKiBzdGlmZm5lc3MpLFxuICAgICAgICAgICAgZHVyYXRpb24sXG4gICAgICAgIH07XG4gICAgfVxufVxuY29uc3Qgcm9vdEl0ZXJhdGlvbnMgPSAxMjtcbmZ1bmN0aW9uIGFwcHJveGltYXRlUm9vdChlbnZlbG9wZSwgZGVyaXZhdGl2ZSwgaW5pdGlhbEd1ZXNzKSB7XG4gICAgbGV0IHJlc3VsdCA9IGluaXRpYWxHdWVzcztcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvb3RJdGVyYXRpb25zOyBpKyspIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0IC0gZW52ZWxvcGUocmVzdWx0KSAvIGRlcml2YXRpdmUocmVzdWx0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIGNhbGNBbmd1bGFyRnJlcSh1bmRhbXBlZEZyZXEsIGRhbXBpbmdSYXRpbykge1xuICAgIHJldHVybiB1bmRhbXBlZEZyZXEgKiBNYXRoLnNxcnQoMSAtIGRhbXBpbmdSYXRpbyAqIGRhbXBpbmdSYXRpbyk7XG59XG5cbmV4cG9ydCB7IGNhbGNBbmd1bGFyRnJlcSwgZmluZFNwcmluZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmluZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ spring: () => (/* binding */ spring)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _waapi_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../waapi/utils/linear.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\");\n/* harmony import */ var _utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/calc-duration.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n/* harmony import */ var _utils_create_generator_easing_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/create-generator-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs\");\n/* harmony import */ var _utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/velocity.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\");\n/* harmony import */ var _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defaults.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs\");\n/* harmony import */ var _find_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./find.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs\");\n\n\n\n\n\n\n\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = {\n velocity: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.velocity,\n stiffness: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.stiffness,\n damping: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.damping,\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\n isResolvedFromDuration: false,\n ...options,\n };\n // stiffness/damping/mass overrides duration/bounce\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n if (options.visualDuration) {\n const visualDuration = options.visualDuration;\n const root = (2 * Math.PI) / (visualDuration * 1.2);\n const stiffness = root * root;\n const damping = 2 *\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.clamp)(0.05, 1, 1 - (options.bounce || 0)) *\n Math.sqrt(stiffness);\n springOptions = {\n ...springOptions,\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\n stiffness,\n damping,\n };\n }\n else {\n const derived = (0,_find_mjs__WEBPACK_IMPORTED_MODULE_2__.findSpring)(options);\n springOptions = {\n ...springOptions,\n ...derived,\n mass: _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.mass,\n };\n springOptions.isResolvedFromDuration = true;\n }\n }\n return springOptions;\n}\nfunction spring(optionsOrVisualDuration = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.visualDuration, bounce = _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.bounce) {\n const options = typeof optionsOrVisualDuration !== \"object\"\n ? {\n visualDuration: optionsOrVisualDuration,\n keyframes: [0, 1],\n bounce,\n }\n : optionsOrVisualDuration;\n let { restSpeed, restDelta } = options;\n const origin = options.keyframes[0];\n const target = options.keyframes[options.keyframes.length - 1];\n /**\n * This is the Iterator-spec return value. We ensure it's mutable rather than using a generator\n * to reduce GC during animation.\n */\n const state = { done: false, value: origin };\n const { stiffness, damping, mass, duration, velocity, isResolvedFromDuration, } = getSpringOptions({\n ...options,\n velocity: -(0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.millisecondsToSeconds)(options.velocity || 0),\n });\n const initialVelocity = velocity || 0.0;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const initialDelta = target - origin;\n const undampedAngularFreq = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.millisecondsToSeconds)(Math.sqrt(stiffness / mass));\n /**\n * If we're working on a granular scale, use smaller defaults for determining\n * when the spring is finished.\n *\n * These defaults have been selected emprically based on what strikes a good\n * ratio between feeling good and finishing as soon as changes are imperceptible.\n */\n const isGranularScale = Math.abs(initialDelta) < 5;\n restSpeed || (restSpeed = isGranularScale\n ? _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restSpeed.granular\n : _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restSpeed.default);\n restDelta || (restDelta = isGranularScale\n ? _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restDelta.granular\n : _defaults_mjs__WEBPACK_IMPORTED_MODULE_0__.springDefaults.restDelta.default);\n let resolveSpring;\n if (dampingRatio < 1) {\n const angularFreq = (0,_find_mjs__WEBPACK_IMPORTED_MODULE_2__.calcAngularFreq)(undampedAngularFreq, dampingRatio);\n // Underdamped spring\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (target -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n // Critically damped spring\n resolveSpring = (t) => target -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) * t);\n }\n else {\n // Overdamped spring\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n // When performing sinh or cosh values can hit Infinity so we cap them here\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (target -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n const generator = {\n calculatedDuration: isResolvedFromDuration ? duration || null : null,\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n let currentVelocity = t === 0 ? initialVelocity : 0.0;\n /**\n * We only need to calculate velocity for under-damped springs\n * as over- and critically-damped springs can't overshoot, so\n * checking only for displacement is enough.\n */\n if (dampingRatio < 1) {\n currentVelocity =\n t === 0\n ? (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.secondsToMilliseconds)(initialVelocity)\n : (0,_utils_velocity_mjs__WEBPACK_IMPORTED_MODULE_4__.calcGeneratorVelocity)(resolveSpring, t, current);\n }\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(target - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? target : current;\n return state;\n },\n toString: () => {\n const calculatedDuration = Math.min((0,_utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__.calcGeneratorDuration)(generator), _utils_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_5__.maxGeneratorDuration);\n const easing = (0,_waapi_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_6__.generateLinearEasing)((progress) => generator.next(calculatedDuration * progress).value, calculatedDuration, 30);\n return calculatedDuration + \"ms \" + easing;\n },\n toTransition: () => { },\n };\n return generator;\n}\nspring.applyToOptions = (options) => {\n const generatorOptions = (0,_utils_create_generator_easing_mjs__WEBPACK_IMPORTED_MODULE_7__.createGeneratorEasing)(options, 100, spring);\n options.ease = generatorOptions.ease;\n options.duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.secondsToMilliseconds)(generatorOptions.duration);\n options.type = \"keyframes\";\n return options;\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBbUY7QUFDZjtBQUNxQjtBQUNaO0FBQ2Y7QUFDZDtBQUNTOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQix5REFBYztBQUNoQyxtQkFBbUIseURBQWM7QUFDakMsaUJBQWlCLHlEQUFjO0FBQy9CLGNBQWMseURBQWM7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtREFBSztBQUNyQjtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IseURBQWM7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixxREFBVTtBQUN0QztBQUNBO0FBQ0E7QUFDQSxzQkFBc0IseURBQWM7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLHlEQUFjLDBCQUEwQix5REFBYztBQUNoRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsdUJBQXVCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQixZQUFZLHdFQUF3RTtBQUNwRjtBQUNBLG1CQUFtQixtRUFBcUI7QUFDeEMsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxtRUFBcUI7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSx5REFBYztBQUN4QixVQUFVLHlEQUFjO0FBQ3hCO0FBQ0EsVUFBVSx5REFBYztBQUN4QixVQUFVLHlEQUFjO0FBQ3hCO0FBQ0E7QUFDQSw0QkFBNEIsMERBQWU7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLG1FQUFxQjtBQUNuRCw4QkFBOEIsMEVBQXFCO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxnREFBZ0QsK0VBQXFCLGFBQWEsMEVBQW9CO0FBQ3RHLDJCQUEyQiw2RUFBb0I7QUFDL0M7QUFDQSxTQUFTO0FBQ1QsK0JBQStCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLHlGQUFxQjtBQUNsRDtBQUNBLHVCQUF1QixtRUFBcUI7QUFDNUM7QUFDQTtBQUNBOztBQUVrQjtBQUNsQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvc3ByaW5nL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaWxsaXNlY29uZHNUb1NlY29uZHMsIHNlY29uZHNUb01pbGxpc2Vjb25kcywgY2xhbXAgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVMaW5lYXJFYXNpbmcgfSBmcm9tICcuLi8uLi93YWFwaS91dGlscy9saW5lYXIubWpzJztcbmltcG9ydCB7IGNhbGNHZW5lcmF0b3JEdXJhdGlvbiwgbWF4R2VuZXJhdG9yRHVyYXRpb24gfSBmcm9tICcuLi91dGlscy9jYWxjLWR1cmF0aW9uLm1qcyc7XG5pbXBvcnQgeyBjcmVhdGVHZW5lcmF0b3JFYXNpbmcgfSBmcm9tICcuLi91dGlscy9jcmVhdGUtZ2VuZXJhdG9yLWVhc2luZy5tanMnO1xuaW1wb3J0IHsgY2FsY0dlbmVyYXRvclZlbG9jaXR5IH0gZnJvbSAnLi4vdXRpbHMvdmVsb2NpdHkubWpzJztcbmltcG9ydCB7IHNwcmluZ0RlZmF1bHRzIH0gZnJvbSAnLi9kZWZhdWx0cy5tanMnO1xuaW1wb3J0IHsgZmluZFNwcmluZywgY2FsY0FuZ3VsYXJGcmVxIH0gZnJvbSAnLi9maW5kLm1qcyc7XG5cbmNvbnN0IGR1cmF0aW9uS2V5cyA9IFtcImR1cmF0aW9uXCIsIFwiYm91bmNlXCJdO1xuY29uc3QgcGh5c2ljc0tleXMgPSBbXCJzdGlmZm5lc3NcIiwgXCJkYW1waW5nXCIsIFwibWFzc1wiXTtcbmZ1bmN0aW9uIGlzU3ByaW5nVHlwZShvcHRpb25zLCBrZXlzKSB7XG4gICAgcmV0dXJuIGtleXMuc29tZSgoa2V5KSA9PiBvcHRpb25zW2tleV0gIT09IHVuZGVmaW5lZCk7XG59XG5mdW5jdGlvbiBnZXRTcHJpbmdPcHRpb25zKG9wdGlvbnMpIHtcbiAgICBsZXQgc3ByaW5nT3B0aW9ucyA9IHtcbiAgICAgICAgdmVsb2NpdHk6IHNwcmluZ0RlZmF1bHRzLnZlbG9jaXR5LFxuICAgICAgICBzdGlmZm5lc3M6IHNwcmluZ0RlZmF1bHRzLnN0aWZmbmVzcyxcbiAgICAgICAgZGFtcGluZzogc3ByaW5nRGVmYXVsdHMuZGFtcGluZyxcbiAgICAgICAgbWFzczogc3ByaW5nRGVmYXVsdHMubWFzcyxcbiAgICAgICAgaXNSZXNvbHZlZEZyb21EdXJhdGlvbjogZmFsc2UsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgICAvLyBzdGlmZm5lc3MvZGFtcGluZy9tYXNzIG92ZXJyaWRlcyBkdXJhdGlvbi9ib3VuY2VcbiAgICBpZiAoIWlzU3ByaW5nVHlwZShvcHRpb25zLCBwaHlzaWNzS2V5cykgJiZcbiAgICAgICAgaXNTcHJpbmdUeXBlKG9wdGlvbnMsIGR1cmF0aW9uS2V5cykpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMudmlzdWFsRHVyYXRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHZpc3VhbER1cmF0aW9uID0gb3B0aW9ucy52aXN1YWxEdXJhdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSAoMiAqIE1hdGguUEkpIC8gKHZpc3VhbER1cmF0aW9uICogMS4yKTtcbiAgICAgICAgICAgIGNvbnN0IHN0aWZmbmVzcyA9IHJvb3QgKiByb290O1xuICAgICAgICAgICAgY29uc3QgZGFtcGluZyA9IDIgKlxuICAgICAgICAgICAgICAgIGNsYW1wKDAuMDUsIDEsIDEgLSAob3B0aW9ucy5ib3VuY2UgfHwgMCkpICpcbiAgICAgICAgICAgICAgICBNYXRoLnNxcnQoc3RpZmZuZXNzKTtcbiAgICAgICAgICAgIHNwcmluZ09wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgLi4uc3ByaW5nT3B0aW9ucyxcbiAgICAgICAgICAgICAgICBtYXNzOiBzcHJpbmdEZWZhdWx0cy5tYXNzLFxuICAgICAgICAgICAgICAgIHN0aWZmbmVzcyxcbiAgICAgICAgICAgICAgICBkYW1waW5nLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRlcml2ZWQgPSBmaW5kU3ByaW5nKG9wdGlvbnMpO1xuICAgICAgICAgICAgc3ByaW5nT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAuLi5zcHJpbmdPcHRpb25zLFxuICAgICAgICAgICAgICAgIC4uLmRlcml2ZWQsXG4gICAgICAgICAgICAgICAgbWFzczogc3ByaW5nRGVmYXVsdHMubWFzcyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzcHJpbmdPcHRpb25zLmlzUmVzb2x2ZWRGcm9tRHVyYXRpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzcHJpbmdPcHRpb25zO1xufVxuZnVuY3Rpb24gc3ByaW5nKG9wdGlvbnNPclZpc3VhbER1cmF0aW9uID0gc3ByaW5nRGVmYXVsdHMudmlzdWFsRHVyYXRpb24sIGJvdW5jZSA9IHNwcmluZ0RlZmF1bHRzLmJvdW5jZSkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0eXBlb2Ygb3B0aW9uc09yVmlzdWFsRHVyYXRpb24gIT09IFwib2JqZWN0XCJcbiAgICAgICAgPyB7XG4gICAgICAgICAgICB2aXN1YWxEdXJhdGlvbjogb3B0aW9uc09yVmlzdWFsRHVyYXRpb24sXG4gICAgICAgICAgICBrZXlmcmFtZXM6IFswLCAxXSxcbiAgICAgICAgICAgIGJvdW5jZSxcbiAgICAgICAgfVxuICAgICAgICA6IG9wdGlvbnNPclZpc3VhbER1cmF0aW9uO1xuICAgIGxldCB7IHJlc3RTcGVlZCwgcmVzdERlbHRhIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IG9yaWdpbiA9IG9wdGlvbnMua2V5ZnJhbWVzWzBdO1xuICAgIGNvbnN0IHRhcmdldCA9IG9wdGlvbnMua2V5ZnJhbWVzW29wdGlvbnMua2V5ZnJhbWVzLmxlbmd0aCAtIDFdO1xuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgdGhlIEl0ZXJhdG9yLXNwZWMgcmV0dXJuIHZhbHVlLiBXZSBlbnN1cmUgaXQncyBtdXRhYmxlIHJhdGhlciB0aGFuIHVzaW5nIGEgZ2VuZXJhdG9yXG4gICAgICogdG8gcmVkdWNlIEdDIGR1cmluZyBhbmltYXRpb24uXG4gICAgICovXG4gICAgY29uc3Qgc3RhdGUgPSB7IGRvbmU6IGZhbHNlLCB2YWx1ZTogb3JpZ2luIH07XG4gICAgY29uc3QgeyBzdGlmZm5lc3MsIGRhbXBpbmcsIG1hc3MsIGR1cmF0aW9uLCB2ZWxvY2l0eSwgaXNSZXNvbHZlZEZyb21EdXJhdGlvbiwgfSA9IGdldFNwcmluZ09wdGlvbnMoe1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB2ZWxvY2l0eTogLW1pbGxpc2Vjb25kc1RvU2Vjb25kcyhvcHRpb25zLnZlbG9jaXR5IHx8IDApLFxuICAgIH0pO1xuICAgIGNvbnN0IGluaXRpYWxWZWxvY2l0eSA9IHZlbG9jaXR5IHx8IDAuMDtcbiAgICBjb25zdCBkYW1waW5nUmF0aW8gPSBkYW1waW5nIC8gKDIgKiBNYXRoLnNxcnQoc3RpZmZuZXNzICogbWFzcykpO1xuICAgIGNvbnN0IGluaXRpYWxEZWx0YSA9IHRhcmdldCAtIG9yaWdpbjtcbiAgICBjb25zdCB1bmRhbXBlZEFuZ3VsYXJGcmVxID0gbWlsbGlzZWNvbmRzVG9TZWNvbmRzKE1hdGguc3FydChzdGlmZm5lc3MgLyBtYXNzKSk7XG4gICAgLyoqXG4gICAgICogSWYgd2UncmUgd29ya2luZyBvbiBhIGdyYW51bGFyIHNjYWxlLCB1c2Ugc21hbGxlciBkZWZhdWx0cyBmb3IgZGV0ZXJtaW5pbmdcbiAgICAgKiB3aGVuIHRoZSBzcHJpbmcgaXMgZmluaXNoZWQuXG4gICAgICpcbiAgICAgKiBUaGVzZSBkZWZhdWx0cyBoYXZlIGJlZW4gc2VsZWN0ZWQgZW1wcmljYWxseSBiYXNlZCBvbiB3aGF0IHN0cmlrZXMgYSBnb29kXG4gICAgICogcmF0aW8gYmV0d2VlbiBmZWVsaW5nIGdvb2QgYW5kIGZpbmlzaGluZyBhcyBzb29uIGFzIGNoYW5nZXMgYXJlIGltcGVyY2VwdGlibGUuXG4gICAgICovXG4gICAgY29uc3QgaXNHcmFudWxhclNjYWxlID0gTWF0aC5hYnMoaW5pdGlhbERlbHRhKSA8IDU7XG4gICAgcmVzdFNwZWVkIHx8IChyZXN0U3BlZWQgPSBpc0dyYW51bGFyU2NhbGVcbiAgICAgICAgPyBzcHJpbmdEZWZhdWx0cy5yZXN0U3BlZWQuZ3JhbnVsYXJcbiAgICAgICAgOiBzcHJpbmdEZWZhdWx0cy5yZXN0U3BlZWQuZGVmYXVsdCk7XG4gICAgcmVzdERlbHRhIHx8IChyZXN0RGVsdGEgPSBpc0dyYW51bGFyU2NhbGVcbiAgICAgICAgPyBzcHJpbmdEZWZhdWx0cy5yZXN0RGVsdGEuZ3JhbnVsYXJcbiAgICAgICAgOiBzcHJpbmdEZWZhdWx0cy5yZXN0RGVsdGEuZGVmYXVsdCk7XG4gICAgbGV0IHJlc29sdmVTcHJpbmc7XG4gICAgaWYgKGRhbXBpbmdSYXRpbyA8IDEpIHtcbiAgICAgICAgY29uc3QgYW5ndWxhckZyZXEgPSBjYWxjQW5ndWxhckZyZXEodW5kYW1wZWRBbmd1bGFyRnJlcSwgZGFtcGluZ1JhdGlvKTtcbiAgICAgICAgLy8gVW5kZXJkYW1wZWQgc3ByaW5nXG4gICAgICAgIHJlc29sdmVTcHJpbmcgPSAodCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW52ZWxvcGUgPSBNYXRoLmV4cCgtZGFtcGluZ1JhdGlvICogdW5kYW1wZWRBbmd1bGFyRnJlcSAqIHQpO1xuICAgICAgICAgICAgcmV0dXJuICh0YXJnZXQgLVxuICAgICAgICAgICAgICAgIGVudmVsb3BlICpcbiAgICAgICAgICAgICAgICAgICAgKCgoaW5pdGlhbFZlbG9jaXR5ICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhbXBpbmdSYXRpbyAqIHVuZGFtcGVkQW5ndWxhckZyZXEgKiBpbml0aWFsRGVsdGEpIC9cbiAgICAgICAgICAgICAgICAgICAgICAgIGFuZ3VsYXJGcmVxKSAqXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnNpbihhbmd1bGFyRnJlcSAqIHQpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxEZWx0YSAqIE1hdGguY29zKGFuZ3VsYXJGcmVxICogdCkpKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSBpZiAoZGFtcGluZ1JhdGlvID09PSAxKSB7XG4gICAgICAgIC8vIENyaXRpY2FsbHkgZGFtcGVkIHNwcmluZ1xuICAgICAgICByZXNvbHZlU3ByaW5nID0gKHQpID0+IHRhcmdldCAtXG4gICAgICAgICAgICBNYXRoLmV4cCgtdW5kYW1wZWRBbmd1bGFyRnJlcSAqIHQpICpcbiAgICAgICAgICAgICAgICAoaW5pdGlhbERlbHRhICtcbiAgICAgICAgICAgICAgICAgICAgKGluaXRpYWxWZWxvY2l0eSArIHVuZGFtcGVkQW5ndWxhckZyZXEgKiBpbml0aWFsRGVsdGEpICogdCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICAvLyBPdmVyZGFtcGVkIHNwcmluZ1xuICAgICAgICBjb25zdCBkYW1wZWRBbmd1bGFyRnJlcSA9IHVuZGFtcGVkQW5ndWxhckZyZXEgKiBNYXRoLnNxcnQoZGFtcGluZ1JhdGlvICogZGFtcGluZ1JhdGlvIC0gMSk7XG4gICAgICAgIHJlc29sdmVTcHJpbmcgPSAodCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW52ZWxvcGUgPSBNYXRoLmV4cCgtZGFtcGluZ1JhdGlvICogdW5kYW1wZWRBbmd1bGFyRnJlcSAqIHQpO1xuICAgICAgICAgICAgLy8gV2hlbiBwZXJmb3JtaW5nIHNpbmggb3IgY29zaCB2YWx1ZXMgY2FuIGhpdCBJbmZpbml0eSBzbyB3ZSBjYXAgdGhlbSBoZXJlXG4gICAgICAgICAgICBjb25zdCBmcmVxRm9yVCA9IE1hdGgubWluKGRhbXBlZEFuZ3VsYXJGcmVxICogdCwgMzAwKTtcbiAgICAgICAgICAgIHJldHVybiAodGFyZ2V0IC1cbiAgICAgICAgICAgICAgICAoZW52ZWxvcGUgKlxuICAgICAgICAgICAgICAgICAgICAoKGluaXRpYWxWZWxvY2l0eSArXG4gICAgICAgICAgICAgICAgICAgICAgICBkYW1waW5nUmF0aW8gKiB1bmRhbXBlZEFuZ3VsYXJGcmVxICogaW5pdGlhbERlbHRhKSAqXG4gICAgICAgICAgICAgICAgICAgICAgICBNYXRoLnNpbmgoZnJlcUZvclQpICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhbXBlZEFuZ3VsYXJGcmVxICpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsRGVsdGEgKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hdGguY29zaChmcmVxRm9yVCkpKSAvXG4gICAgICAgICAgICAgICAgICAgIGRhbXBlZEFuZ3VsYXJGcmVxKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgZ2VuZXJhdG9yID0ge1xuICAgICAgICBjYWxjdWxhdGVkRHVyYXRpb246IGlzUmVzb2x2ZWRGcm9tRHVyYXRpb24gPyBkdXJhdGlvbiB8fCBudWxsIDogbnVsbCxcbiAgICAgICAgbmV4dDogKHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSByZXNvbHZlU3ByaW5nKHQpO1xuICAgICAgICAgICAgaWYgKCFpc1Jlc29sdmVkRnJvbUR1cmF0aW9uKSB7XG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRWZWxvY2l0eSA9IHQgPT09IDAgPyBpbml0aWFsVmVsb2NpdHkgOiAwLjA7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogV2Ugb25seSBuZWVkIHRvIGNhbGN1bGF0ZSB2ZWxvY2l0eSBmb3IgdW5kZXItZGFtcGVkIHNwcmluZ3NcbiAgICAgICAgICAgICAgICAgKiBhcyBvdmVyLSBhbmQgY3JpdGljYWxseS1kYW1wZWQgc3ByaW5ncyBjYW4ndCBvdmVyc2hvb3QsIHNvXG4gICAgICAgICAgICAgICAgICogY2hlY2tpbmcgb25seSBmb3IgZGlzcGxhY2VtZW50IGlzIGVub3VnaC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAoZGFtcGluZ1JhdGlvIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50VmVsb2NpdHkgPVxuICAgICAgICAgICAgICAgICAgICAgICAgdCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc2Vjb25kc1RvTWlsbGlzZWNvbmRzKGluaXRpYWxWZWxvY2l0eSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNhbGNHZW5lcmF0b3JWZWxvY2l0eShyZXNvbHZlU3ByaW5nLCB0LCBjdXJyZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaXNCZWxvd1ZlbG9jaXR5VGhyZXNob2xkID0gTWF0aC5hYnMoY3VycmVudFZlbG9jaXR5KSA8PSByZXN0U3BlZWQ7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNCZWxvd0Rpc3BsYWNlbWVudFRocmVzaG9sZCA9IE1hdGguYWJzKHRhcmdldCAtIGN1cnJlbnQpIDw9IHJlc3REZWx0YTtcbiAgICAgICAgICAgICAgICBzdGF0ZS5kb25lID1cbiAgICAgICAgICAgICAgICAgICAgaXNCZWxvd1ZlbG9jaXR5VGhyZXNob2xkICYmIGlzQmVsb3dEaXNwbGFjZW1lbnRUaHJlc2hvbGQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBzdGF0ZS5kb25lID0gdCA+PSBkdXJhdGlvbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXRlLnZhbHVlID0gc3RhdGUuZG9uZSA/IHRhcmdldCA6IGN1cnJlbnQ7XG4gICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIHRvU3RyaW5nOiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYWxjdWxhdGVkRHVyYXRpb24gPSBNYXRoLm1pbihjYWxjR2VuZXJhdG9yRHVyYXRpb24oZ2VuZXJhdG9yKSwgbWF4R2VuZXJhdG9yRHVyYXRpb24pO1xuICAgICAgICAgICAgY29uc3QgZWFzaW5nID0gZ2VuZXJhdGVMaW5lYXJFYXNpbmcoKHByb2dyZXNzKSA9PiBnZW5lcmF0b3IubmV4dChjYWxjdWxhdGVkRHVyYXRpb24gKiBwcm9ncmVzcykudmFsdWUsIGNhbGN1bGF0ZWREdXJhdGlvbiwgMzApO1xuICAgICAgICAgICAgcmV0dXJuIGNhbGN1bGF0ZWREdXJhdGlvbiArIFwibXMgXCIgKyBlYXNpbmc7XG4gICAgICAgIH0sXG4gICAgICAgIHRvVHJhbnNpdGlvbjogKCkgPT4geyB9LFxuICAgIH07XG4gICAgcmV0dXJuIGdlbmVyYXRvcjtcbn1cbnNwcmluZy5hcHBseVRvT3B0aW9ucyA9IChvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgZ2VuZXJhdG9yT3B0aW9ucyA9IGNyZWF0ZUdlbmVyYXRvckVhc2luZyhvcHRpb25zLCAxMDAsIHNwcmluZyk7XG4gICAgb3B0aW9ucy5lYXNlID0gZ2VuZXJhdG9yT3B0aW9ucy5lYXNlO1xuICAgIG9wdGlvbnMuZHVyYXRpb24gPSBzZWNvbmRzVG9NaWxsaXNlY29uZHMoZ2VuZXJhdG9yT3B0aW9ucy5kdXJhdGlvbik7XG4gICAgb3B0aW9ucy50eXBlID0gXCJrZXlmcmFtZXNcIjtcbiAgICByZXR1cm4gb3B0aW9ucztcbn07XG5cbmV4cG9ydCB7IHNwcmluZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcGeneratorDuration: () => (/* binding */ calcGeneratorDuration),\n/* harmony export */ maxGeneratorDuration: () => (/* binding */ maxGeneratorDuration)\n/* harmony export */ });\n/**\n * Implement a practical max duration for keyframe generation\n * to prevent infinite loops\n */\nconst maxGeneratorDuration = 20000;\nfunction calcGeneratorDuration(generator) {\n let duration = 0;\n const timeStep = 50;\n let state = generator.next(duration);\n while (!state.done && duration < maxGeneratorDuration) {\n duration += timeStep;\n state = generator.next(duration);\n }\n return duration >= maxGeneratorDuration ? Infinity : duration;\n}\n\n\n//# sourceMappingURL=calc-duration.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvY2FsYy1kdXJhdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXVEO0FBQ3ZEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vZ2VuZXJhdG9ycy91dGlscy9jYWxjLWR1cmF0aW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEltcGxlbWVudCBhIHByYWN0aWNhbCBtYXggZHVyYXRpb24gZm9yIGtleWZyYW1lIGdlbmVyYXRpb25cbiAqIHRvIHByZXZlbnQgaW5maW5pdGUgbG9vcHNcbiAqL1xuY29uc3QgbWF4R2VuZXJhdG9yRHVyYXRpb24gPSAyMDAwMDtcbmZ1bmN0aW9uIGNhbGNHZW5lcmF0b3JEdXJhdGlvbihnZW5lcmF0b3IpIHtcbiAgICBsZXQgZHVyYXRpb24gPSAwO1xuICAgIGNvbnN0IHRpbWVTdGVwID0gNTA7XG4gICAgbGV0IHN0YXRlID0gZ2VuZXJhdG9yLm5leHQoZHVyYXRpb24pO1xuICAgIHdoaWxlICghc3RhdGUuZG9uZSAmJiBkdXJhdGlvbiA8IG1heEdlbmVyYXRvckR1cmF0aW9uKSB7XG4gICAgICAgIGR1cmF0aW9uICs9IHRpbWVTdGVwO1xuICAgICAgICBzdGF0ZSA9IGdlbmVyYXRvci5uZXh0KGR1cmF0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIGR1cmF0aW9uID49IG1heEdlbmVyYXRvckR1cmF0aW9uID8gSW5maW5pdHkgOiBkdXJhdGlvbjtcbn1cblxuZXhwb3J0IHsgY2FsY0dlbmVyYXRvckR1cmF0aW9uLCBtYXhHZW5lcmF0b3JEdXJhdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y2FsYy1kdXJhdGlvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs": +/*!************************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs ***! + \************************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createGeneratorEasing: () => (/* binding */ createGeneratorEasing)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./calc-duration.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs\");\n\n\n\n/**\n * Create a progress => progress easing function from a generator.\n */\nfunction createGeneratorEasing(options, scale = 100, createGenerator) {\n const generator = createGenerator({ ...options, keyframes: [0, scale] });\n const duration = Math.min((0,_calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__.calcGeneratorDuration)(generator), _calc_duration_mjs__WEBPACK_IMPORTED_MODULE_0__.maxGeneratorDuration);\n return {\n type: \"keyframes\",\n ease: (progress) => {\n return generator.next(duration * progress).value / scale;\n },\n duration: (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.millisecondsToSeconds)(duration),\n };\n}\n\n\n//# sourceMappingURL=create-generator-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvY3JlYXRlLWdlbmVyYXRvci1lYXNpbmcubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFxRDtBQUM2Qjs7QUFFbEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0MsbUNBQW1DO0FBQzNFLDhCQUE4Qix5RUFBcUIsYUFBYSxvRUFBb0I7QUFDcEY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Qsa0JBQWtCLG1FQUFxQjtBQUN2QztBQUNBOztBQUVpQztBQUNqQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvY3JlYXRlLWdlbmVyYXRvci1lYXNpbmcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1pbGxpc2Vjb25kc1RvU2Vjb25kcyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBjYWxjR2VuZXJhdG9yRHVyYXRpb24sIG1heEdlbmVyYXRvckR1cmF0aW9uIH0gZnJvbSAnLi9jYWxjLWR1cmF0aW9uLm1qcyc7XG5cbi8qKlxuICogQ3JlYXRlIGEgcHJvZ3Jlc3MgPT4gcHJvZ3Jlc3MgZWFzaW5nIGZ1bmN0aW9uIGZyb20gYSBnZW5lcmF0b3IuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUdlbmVyYXRvckVhc2luZyhvcHRpb25zLCBzY2FsZSA9IDEwMCwgY3JlYXRlR2VuZXJhdG9yKSB7XG4gICAgY29uc3QgZ2VuZXJhdG9yID0gY3JlYXRlR2VuZXJhdG9yKHsgLi4ub3B0aW9ucywga2V5ZnJhbWVzOiBbMCwgc2NhbGVdIH0pO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gTWF0aC5taW4oY2FsY0dlbmVyYXRvckR1cmF0aW9uKGdlbmVyYXRvciksIG1heEdlbmVyYXRvckR1cmF0aW9uKTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiBcImtleWZyYW1lc1wiLFxuICAgICAgICBlYXNlOiAocHJvZ3Jlc3MpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBnZW5lcmF0b3IubmV4dChkdXJhdGlvbiAqIHByb2dyZXNzKS52YWx1ZSAvIHNjYWxlO1xuICAgICAgICB9LFxuICAgICAgICBkdXJhdGlvbjogbWlsbGlzZWNvbmRzVG9TZWNvbmRzKGR1cmF0aW9uKSxcbiAgICB9O1xufVxuXG5leHBvcnQgeyBjcmVhdGVHZW5lcmF0b3JFYXNpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNyZWF0ZS1nZW5lcmF0b3ItZWFzaW5nLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs ***! + \*************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isGenerator: () => (/* binding */ isGenerator)\n/* harmony export */ });\nfunction isGenerator(type) {\n return typeof type === \"function\" && \"applyToOptions\" in type;\n}\n\n\n//# sourceMappingURL=is-generator.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvaXMtZ2VuZXJhdG9yLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBOztBQUV1QjtBQUN2QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvaXMtZ2VuZXJhdG9yLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc0dlbmVyYXRvcih0eXBlKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB0eXBlID09PSBcImZ1bmN0aW9uXCIgJiYgXCJhcHBseVRvT3B0aW9uc1wiIGluIHR5cGU7XG59XG5cbmV4cG9ydCB7IGlzR2VuZXJhdG9yIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1nZW5lcmF0b3IubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcGeneratorVelocity: () => (/* binding */ calcGeneratorVelocity)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\");\n\n\nconst velocitySampleDuration = 5; // ms\nfunction calcGeneratorVelocity(resolveValue, t, current) {\n const prevT = Math.max(t - velocitySampleDuration, 0);\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.velocityPerSecond)(current - resolveValue(prevT), t - prevT);\n}\n\n\n//# sourceMappingURL=velocity.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvdmVsb2NpdHkubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQWlEOztBQUVqRCxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBLFdBQVcsK0RBQWlCO0FBQzVCOztBQUVpQztBQUNqQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2dlbmVyYXRvcnMvdXRpbHMvdmVsb2NpdHkubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHZlbG9jaXR5UGVyU2Vjb25kIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuY29uc3QgdmVsb2NpdHlTYW1wbGVEdXJhdGlvbiA9IDU7IC8vIG1zXG5mdW5jdGlvbiBjYWxjR2VuZXJhdG9yVmVsb2NpdHkocmVzb2x2ZVZhbHVlLCB0LCBjdXJyZW50KSB7XG4gICAgY29uc3QgcHJldlQgPSBNYXRoLm1heCh0IC0gdmVsb2NpdHlTYW1wbGVEdXJhdGlvbiwgMCk7XG4gICAgcmV0dXJuIHZlbG9jaXR5UGVyU2Vjb25kKGN1cnJlbnQgLSByZXNvbHZlVmFsdWUocHJldlQpLCB0IC0gcHJldlQpO1xufVxuXG5leHBvcnQgeyBjYWxjR2VuZXJhdG9yVmVsb2NpdHkgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZlbG9jaXR5Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateMotionValue: () => (/* binding */ animateMotionValue)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _AsyncMotionValueAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../AsyncMotionValueAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs\");\n/* harmony import */ var _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../JSAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/JSAnimation.mjs\");\n/* harmony import */ var _utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/get-value-transition.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var _utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/make-animation-instant.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\");\n/* harmony import */ var _utils_default_transitions_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/default-transitions.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs\");\n/* harmony import */ var _utils_get_final_keyframe_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/get-final-keyframe.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs\");\n/* harmony import */ var _utils_is_transition_defined_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/is-transition-defined.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n\nconst animateMotionValue = (name, value, target, transition = {}, element, isHandoff) => (onComplete) => {\n const valueTransition = (0,_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_0__.getValueTransition)(transition, name) || {};\n /**\n * Most transition values are currently completely overwritten by value-specific\n * transitions. In the future it'd be nicer to blend these transitions. But for now\n * delay actually does inherit from the root transition if not value-specific.\n */\n const delay = valueTransition.delay || transition.delay || 0;\n /**\n * Elapsed isn't a public transition option but can be passed through from\n * optimized appear effects in milliseconds.\n */\n let { elapsed = 0 } = transition;\n elapsed = elapsed - (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(delay);\n const options = {\n keyframes: Array.isArray(target) ? target : [null, target],\n ease: \"easeOut\",\n velocity: value.getVelocity(),\n ...valueTransition,\n delay: -elapsed,\n onUpdate: (v) => {\n value.set(v);\n valueTransition.onUpdate && valueTransition.onUpdate(v);\n },\n onComplete: () => {\n onComplete();\n valueTransition.onComplete && valueTransition.onComplete();\n },\n name,\n motionValue: value,\n element: isHandoff ? undefined : element,\n };\n /**\n * If there's no transition defined for this value, we can generate\n * unique transition settings for this value.\n */\n if (!(0,_utils_is_transition_defined_mjs__WEBPACK_IMPORTED_MODULE_2__.isTransitionDefined)(valueTransition)) {\n Object.assign(options, (0,_utils_default_transitions_mjs__WEBPACK_IMPORTED_MODULE_3__.getDefaultTransition)(name, options));\n }\n /**\n * Both WAAPI and our internal animation functions use durations\n * as defined by milliseconds, while our external API defines them\n * as seconds.\n */\n options.duration && (options.duration = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(options.duration));\n options.repeatDelay && (options.repeatDelay = (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.secondsToMilliseconds)(options.repeatDelay));\n /**\n * Support deprecated way to set initial value. Prefer keyframe syntax.\n */\n if (options.from !== undefined) {\n options.keyframes[0] = options.from;\n }\n let shouldSkip = false;\n if (options.type === false ||\n (options.duration === 0 && !options.repeatDelay)) {\n (0,_utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_4__.makeAnimationInstant)(options);\n if (options.delay === 0) {\n shouldSkip = true;\n }\n }\n if (motion_utils__WEBPACK_IMPORTED_MODULE_5__.MotionGlobalConfig.instantAnimations ||\n motion_utils__WEBPACK_IMPORTED_MODULE_5__.MotionGlobalConfig.skipAnimations ||\n element?.shouldSkipAnimations) {\n shouldSkip = true;\n (0,_utils_make_animation_instant_mjs__WEBPACK_IMPORTED_MODULE_4__.makeAnimationInstant)(options);\n options.delay = 0;\n }\n /**\n * If the transition type or easing has been explicitly set by the user\n * then we don't want to allow flattening the animation.\n */\n options.allowFlatten = !valueTransition.type && !valueTransition.ease;\n /**\n * If we can or must skip creating the animation, and apply only\n * the final keyframe, do so. We also check once keyframes are resolved but\n * this early check prevents the need to create an animation at all.\n */\n if (shouldSkip && !isHandoff && value.get() !== undefined) {\n const finalKeyframe = (0,_utils_get_final_keyframe_mjs__WEBPACK_IMPORTED_MODULE_6__.getFinalKeyframe)(options.keyframes, valueTransition);\n if (finalKeyframe !== undefined) {\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_7__.frame.update(() => {\n options.onUpdate(finalKeyframe);\n options.onComplete();\n });\n return;\n }\n }\n return valueTransition.isSync\n ? new _JSAnimation_mjs__WEBPACK_IMPORTED_MODULE_8__.JSAnimation(options)\n : new _AsyncMotionValueAnimation_mjs__WEBPACK_IMPORTED_MODULE_9__.AsyncMotionValueAnimation(options);\n};\n\n\n//# sourceMappingURL=motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvbW90aW9uLXZhbHVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUF5RTtBQUNJO0FBQzVCO0FBQ3NCO0FBQ0k7QUFDSDtBQUNMO0FBQ007QUFDdkI7O0FBRWxELGdFQUFnRTtBQUNoRSw0QkFBNEIsbUZBQWtCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVSxjQUFjO0FBQ3hCLHdCQUF3QixtRUFBcUI7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUyxxRkFBbUI7QUFDNUIsK0JBQStCLG9GQUFvQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0Q0FBNEMsbUVBQXFCO0FBQ2pFLGtEQUFrRCxtRUFBcUI7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSx1RkFBb0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDREQUFrQjtBQUMxQixRQUFRLDREQUFrQjtBQUMxQjtBQUNBO0FBQ0EsUUFBUSx1RkFBb0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsK0VBQWdCO0FBQzlDO0FBQ0EsWUFBWSx1REFBSztBQUNqQjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyx5REFBVztBQUN6QixjQUFjLHFGQUF5QjtBQUN2Qzs7QUFFOEI7QUFDOUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL21vdGlvbi12YWx1ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2Vjb25kc1RvTWlsbGlzZWNvbmRzLCBNb3Rpb25HbG9iYWxDb25maWcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgQXN5bmNNb3Rpb25WYWx1ZUFuaW1hdGlvbiB9IGZyb20gJy4uL0FzeW5jTW90aW9uVmFsdWVBbmltYXRpb24ubWpzJztcbmltcG9ydCB7IEpTQW5pbWF0aW9uIH0gZnJvbSAnLi4vSlNBbmltYXRpb24ubWpzJztcbmltcG9ydCB7IGdldFZhbHVlVHJhbnNpdGlvbiB9IGZyb20gJy4uL3V0aWxzL2dldC12YWx1ZS10cmFuc2l0aW9uLm1qcyc7XG5pbXBvcnQgeyBtYWtlQW5pbWF0aW9uSW5zdGFudCB9IGZyb20gJy4uL3V0aWxzL21ha2UtYW5pbWF0aW9uLWluc3RhbnQubWpzJztcbmltcG9ydCB7IGdldERlZmF1bHRUcmFuc2l0aW9uIH0gZnJvbSAnLi4vdXRpbHMvZGVmYXVsdC10cmFuc2l0aW9ucy5tanMnO1xuaW1wb3J0IHsgZ2V0RmluYWxLZXlmcmFtZSB9IGZyb20gJy4uL3V0aWxzL2dldC1maW5hbC1rZXlmcmFtZS5tanMnO1xuaW1wb3J0IHsgaXNUcmFuc2l0aW9uRGVmaW5lZCB9IGZyb20gJy4uL3V0aWxzL2lzLXRyYW5zaXRpb24tZGVmaW5lZC5tanMnO1xuaW1wb3J0IHsgZnJhbWUgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcblxuY29uc3QgYW5pbWF0ZU1vdGlvblZhbHVlID0gKG5hbWUsIHZhbHVlLCB0YXJnZXQsIHRyYW5zaXRpb24gPSB7fSwgZWxlbWVudCwgaXNIYW5kb2ZmKSA9PiAob25Db21wbGV0ZSkgPT4ge1xuICAgIGNvbnN0IHZhbHVlVHJhbnNpdGlvbiA9IGdldFZhbHVlVHJhbnNpdGlvbih0cmFuc2l0aW9uLCBuYW1lKSB8fCB7fTtcbiAgICAvKipcbiAgICAgKiBNb3N0IHRyYW5zaXRpb24gdmFsdWVzIGFyZSBjdXJyZW50bHkgY29tcGxldGVseSBvdmVyd3JpdHRlbiBieSB2YWx1ZS1zcGVjaWZpY1xuICAgICAqIHRyYW5zaXRpb25zLiBJbiB0aGUgZnV0dXJlIGl0J2QgYmUgbmljZXIgdG8gYmxlbmQgdGhlc2UgdHJhbnNpdGlvbnMuIEJ1dCBmb3Igbm93XG4gICAgICogZGVsYXkgYWN0dWFsbHkgZG9lcyBpbmhlcml0IGZyb20gdGhlIHJvb3QgdHJhbnNpdGlvbiBpZiBub3QgdmFsdWUtc3BlY2lmaWMuXG4gICAgICovXG4gICAgY29uc3QgZGVsYXkgPSB2YWx1ZVRyYW5zaXRpb24uZGVsYXkgfHwgdHJhbnNpdGlvbi5kZWxheSB8fCAwO1xuICAgIC8qKlxuICAgICAqIEVsYXBzZWQgaXNuJ3QgYSBwdWJsaWMgdHJhbnNpdGlvbiBvcHRpb24gYnV0IGNhbiBiZSBwYXNzZWQgdGhyb3VnaCBmcm9tXG4gICAgICogb3B0aW1pemVkIGFwcGVhciBlZmZlY3RzIGluIG1pbGxpc2Vjb25kcy5cbiAgICAgKi9cbiAgICBsZXQgeyBlbGFwc2VkID0gMCB9ID0gdHJhbnNpdGlvbjtcbiAgICBlbGFwc2VkID0gZWxhcHNlZCAtIHNlY29uZHNUb01pbGxpc2Vjb25kcyhkZWxheSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAga2V5ZnJhbWVzOiBBcnJheS5pc0FycmF5KHRhcmdldCkgPyB0YXJnZXQgOiBbbnVsbCwgdGFyZ2V0XSxcbiAgICAgICAgZWFzZTogXCJlYXNlT3V0XCIsXG4gICAgICAgIHZlbG9jaXR5OiB2YWx1ZS5nZXRWZWxvY2l0eSgpLFxuICAgICAgICAuLi52YWx1ZVRyYW5zaXRpb24sXG4gICAgICAgIGRlbGF5OiAtZWxhcHNlZCxcbiAgICAgICAgb25VcGRhdGU6ICh2KSA9PiB7XG4gICAgICAgICAgICB2YWx1ZS5zZXQodik7XG4gICAgICAgICAgICB2YWx1ZVRyYW5zaXRpb24ub25VcGRhdGUgJiYgdmFsdWVUcmFuc2l0aW9uLm9uVXBkYXRlKHYpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKCk7XG4gICAgICAgICAgICB2YWx1ZVRyYW5zaXRpb24ub25Db21wbGV0ZSAmJiB2YWx1ZVRyYW5zaXRpb24ub25Db21wbGV0ZSgpO1xuICAgICAgICB9LFxuICAgICAgICBuYW1lLFxuICAgICAgICBtb3Rpb25WYWx1ZTogdmFsdWUsXG4gICAgICAgIGVsZW1lbnQ6IGlzSGFuZG9mZiA/IHVuZGVmaW5lZCA6IGVsZW1lbnQsXG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBJZiB0aGVyZSdzIG5vIHRyYW5zaXRpb24gZGVmaW5lZCBmb3IgdGhpcyB2YWx1ZSwgd2UgY2FuIGdlbmVyYXRlXG4gICAgICogdW5pcXVlIHRyYW5zaXRpb24gc2V0dGluZ3MgZm9yIHRoaXMgdmFsdWUuXG4gICAgICovXG4gICAgaWYgKCFpc1RyYW5zaXRpb25EZWZpbmVkKHZhbHVlVHJhbnNpdGlvbikpIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihvcHRpb25zLCBnZXREZWZhdWx0VHJhbnNpdGlvbihuYW1lLCBvcHRpb25zKSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEJvdGggV0FBUEkgYW5kIG91ciBpbnRlcm5hbCBhbmltYXRpb24gZnVuY3Rpb25zIHVzZSBkdXJhdGlvbnNcbiAgICAgKiBhcyBkZWZpbmVkIGJ5IG1pbGxpc2Vjb25kcywgd2hpbGUgb3VyIGV4dGVybmFsIEFQSSBkZWZpbmVzIHRoZW1cbiAgICAgKiBhcyBzZWNvbmRzLlxuICAgICAqL1xuICAgIG9wdGlvbnMuZHVyYXRpb24gJiYgKG9wdGlvbnMuZHVyYXRpb24gPSBzZWNvbmRzVG9NaWxsaXNlY29uZHMob3B0aW9ucy5kdXJhdGlvbikpO1xuICAgIG9wdGlvbnMucmVwZWF0RGVsYXkgJiYgKG9wdGlvbnMucmVwZWF0RGVsYXkgPSBzZWNvbmRzVG9NaWxsaXNlY29uZHMob3B0aW9ucy5yZXBlYXREZWxheSkpO1xuICAgIC8qKlxuICAgICAqIFN1cHBvcnQgZGVwcmVjYXRlZCB3YXkgdG8gc2V0IGluaXRpYWwgdmFsdWUuIFByZWZlciBrZXlmcmFtZSBzeW50YXguXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMuZnJvbSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG9wdGlvbnMua2V5ZnJhbWVzWzBdID0gb3B0aW9ucy5mcm9tO1xuICAgIH1cbiAgICBsZXQgc2hvdWxkU2tpcCA9IGZhbHNlO1xuICAgIGlmIChvcHRpb25zLnR5cGUgPT09IGZhbHNlIHx8XG4gICAgICAgIChvcHRpb25zLmR1cmF0aW9uID09PSAwICYmICFvcHRpb25zLnJlcGVhdERlbGF5KSkge1xuICAgICAgICBtYWtlQW5pbWF0aW9uSW5zdGFudChvcHRpb25zKTtcbiAgICAgICAgaWYgKG9wdGlvbnMuZGVsYXkgPT09IDApIHtcbiAgICAgICAgICAgIHNob3VsZFNraXAgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmIChNb3Rpb25HbG9iYWxDb25maWcuaW5zdGFudEFuaW1hdGlvbnMgfHxcbiAgICAgICAgTW90aW9uR2xvYmFsQ29uZmlnLnNraXBBbmltYXRpb25zIHx8XG4gICAgICAgIGVsZW1lbnQ/LnNob3VsZFNraXBBbmltYXRpb25zKSB7XG4gICAgICAgIHNob3VsZFNraXAgPSB0cnVlO1xuICAgICAgICBtYWtlQW5pbWF0aW9uSW5zdGFudChvcHRpb25zKTtcbiAgICAgICAgb3B0aW9ucy5kZWxheSA9IDA7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIHRoZSB0cmFuc2l0aW9uIHR5cGUgb3IgZWFzaW5nIGhhcyBiZWVuIGV4cGxpY2l0bHkgc2V0IGJ5IHRoZSB1c2VyXG4gICAgICogdGhlbiB3ZSBkb24ndCB3YW50IHRvIGFsbG93IGZsYXR0ZW5pbmcgdGhlIGFuaW1hdGlvbi5cbiAgICAgKi9cbiAgICBvcHRpb25zLmFsbG93RmxhdHRlbiA9ICF2YWx1ZVRyYW5zaXRpb24udHlwZSAmJiAhdmFsdWVUcmFuc2l0aW9uLmVhc2U7XG4gICAgLyoqXG4gICAgICogSWYgd2UgY2FuIG9yIG11c3Qgc2tpcCBjcmVhdGluZyB0aGUgYW5pbWF0aW9uLCBhbmQgYXBwbHkgb25seVxuICAgICAqIHRoZSBmaW5hbCBrZXlmcmFtZSwgZG8gc28uIFdlIGFsc28gY2hlY2sgb25jZSBrZXlmcmFtZXMgYXJlIHJlc29sdmVkIGJ1dFxuICAgICAqIHRoaXMgZWFybHkgY2hlY2sgcHJldmVudHMgdGhlIG5lZWQgdG8gY3JlYXRlIGFuIGFuaW1hdGlvbiBhdCBhbGwuXG4gICAgICovXG4gICAgaWYgKHNob3VsZFNraXAgJiYgIWlzSGFuZG9mZiAmJiB2YWx1ZS5nZXQoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGZpbmFsS2V5ZnJhbWUgPSBnZXRGaW5hbEtleWZyYW1lKG9wdGlvbnMua2V5ZnJhbWVzLCB2YWx1ZVRyYW5zaXRpb24pO1xuICAgICAgICBpZiAoZmluYWxLZXlmcmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBmcmFtZS51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbnMub25VcGRhdGUoZmluYWxLZXlmcmFtZSk7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5vbkNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVUcmFuc2l0aW9uLmlzU3luY1xuICAgICAgICA/IG5ldyBKU0FuaW1hdGlvbihvcHRpb25zKVxuICAgICAgICA6IG5ldyBBc3luY01vdGlvblZhbHVlQW5pbWF0aW9uKG9wdGlvbnMpO1xufTtcblxuZXhwb3J0IHsgYW5pbWF0ZU1vdGlvblZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb3Rpb24tdmFsdWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs": +/*!****************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs ***! + \****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateTarget: () => (/* binding */ animateTarget)\n/* harmony export */ });\n/* harmony import */ var _utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/get-value-transition.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var _utils_resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/resolve-transition.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs\");\n/* harmony import */ var _render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../render/utils/keys-position.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\");\n/* harmony import */ var _render_utils_setters_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../render/utils/setters.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/setters.mjs\");\n/* harmony import */ var _value_will_change_add_will_change_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../value/will-change/add-will-change.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs\");\n/* harmony import */ var _optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../optimized-appear/get-appear-id.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs\");\n/* harmony import */ var _motion_value_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation({ protectedKeys, needsAnimating }, key) {\n const shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\nfunction animateTarget(visualElement, targetAndTransition, { delay = 0, transitionOverride, type } = {}) {\n let { transition, transitionEnd, ...target } = targetAndTransition;\n const defaultTransition = visualElement.getDefaultTransition();\n transition = transition\n ? (0,_utils_resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveTransition)(transition, defaultTransition)\n : defaultTransition;\n const reduceMotion = transition?.reduceMotion;\n if (transitionOverride)\n transition = transitionOverride;\n const animations = [];\n const animationTypeState = type &&\n visualElement.animationState &&\n visualElement.animationState.getState()[type];\n for (const key in target) {\n const value = visualElement.getValue(key, visualElement.latestValues[key] ?? null);\n const valueTarget = target[key];\n if (valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n const valueTransition = {\n delay,\n ...(0,_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_1__.getValueTransition)(transition || {}, key),\n };\n /**\n * If the value is already at the defined target, skip the animation.\n */\n const currentValue = value.get();\n if (currentValue !== undefined &&\n !value.isAnimating &&\n !Array.isArray(valueTarget) &&\n valueTarget === currentValue &&\n !valueTransition.velocity) {\n continue;\n }\n /**\n * If this is the first time a value is being animated, check\n * to see if we're handling off from an existing animation.\n */\n let isHandoff = false;\n if (window.MotionHandoffAnimation) {\n const appearId = (0,_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_2__.getOptimisedAppearId)(visualElement);\n if (appearId) {\n const startTime = window.MotionHandoffAnimation(appearId, key, _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__.frame);\n if (startTime !== null) {\n valueTransition.startTime = startTime;\n isHandoff = true;\n }\n }\n }\n (0,_value_will_change_add_will_change_mjs__WEBPACK_IMPORTED_MODULE_4__.addValueToWillChange)(visualElement, key);\n const shouldReduceMotion = reduceMotion ?? visualElement.shouldReduceMotion;\n value.start((0,_motion_value_mjs__WEBPACK_IMPORTED_MODULE_5__.animateMotionValue)(key, value, valueTarget, shouldReduceMotion && _render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_6__.positionalKeys.has(key)\n ? { type: false }\n : valueTransition, visualElement, isHandoff));\n const animation = value.animation;\n if (animation) {\n animations.push(animation);\n }\n }\n if (transitionEnd) {\n const applyTransitionEnd = () => _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__.frame.update(() => {\n transitionEnd && (0,_render_utils_setters_mjs__WEBPACK_IMPORTED_MODULE_7__.setTarget)(visualElement, transitionEnd);\n });\n if (animations.length) {\n Promise.all(animations).then(applyTransitionEnd);\n }\n else {\n applyTransitionEnd();\n }\n }\n return animations;\n}\n\n\n//# sourceMappingURL=visual-element-target.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQtdGFyZ2V0Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBdUU7QUFDSDtBQUNFO0FBQ1g7QUFDd0I7QUFDTjtBQUNyQjtBQUNOOztBQUVsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsK0JBQStCO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkRBQTZELHNDQUFzQyxJQUFJO0FBQ3ZHLFVBQVUsdUNBQXVDO0FBQ2pEO0FBQ0E7QUFDQSxVQUFVLGdGQUFpQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1GQUFrQixpQkFBaUI7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLHlGQUFvQjtBQUNqRDtBQUNBLCtFQUErRSx1REFBSztBQUNwRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDRGQUFvQjtBQUM1QjtBQUNBLG9CQUFvQixxRUFBa0IsZ0RBQWdELDJFQUFjO0FBQ3BHLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyx1REFBSztBQUM5Qyw2QkFBNkIsb0VBQVM7QUFDdEMsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL3Zpc3VhbC1lbGVtZW50LXRhcmdldC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VmFsdWVUcmFuc2l0aW9uIH0gZnJvbSAnLi4vdXRpbHMvZ2V0LXZhbHVlLXRyYW5zaXRpb24ubWpzJztcbmltcG9ydCB7IHJlc29sdmVUcmFuc2l0aW9uIH0gZnJvbSAnLi4vdXRpbHMvcmVzb2x2ZS10cmFuc2l0aW9uLm1qcyc7XG5pbXBvcnQgeyBwb3NpdGlvbmFsS2V5cyB9IGZyb20gJy4uLy4uL3JlbmRlci91dGlscy9rZXlzLXBvc2l0aW9uLm1qcyc7XG5pbXBvcnQgeyBzZXRUYXJnZXQgfSBmcm9tICcuLi8uLi9yZW5kZXIvdXRpbHMvc2V0dGVycy5tanMnO1xuaW1wb3J0IHsgYWRkVmFsdWVUb1dpbGxDaGFuZ2UgfSBmcm9tICcuLi8uLi92YWx1ZS93aWxsLWNoYW5nZS9hZGQtd2lsbC1jaGFuZ2UubWpzJztcbmltcG9ydCB7IGdldE9wdGltaXNlZEFwcGVhcklkIH0gZnJvbSAnLi4vb3B0aW1pemVkLWFwcGVhci9nZXQtYXBwZWFyLWlkLm1qcyc7XG5pbXBvcnQgeyBhbmltYXRlTW90aW9uVmFsdWUgfSBmcm9tICcuL21vdGlvbi12YWx1ZS5tanMnO1xuaW1wb3J0IHsgZnJhbWUgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcblxuLyoqXG4gKiBEZWNpZGUgd2hldGhlciB3ZSBzaG91bGQgYmxvY2sgdGhpcyBhbmltYXRpb24uIFByZXZpb3VzbHksIHdlIGFjaGlldmVkIHRoaXNcbiAqIGp1c3QgYnkgY2hlY2tpbmcgd2hldGhlciB0aGUga2V5IHdhcyBsaXN0ZWQgaW4gcHJvdGVjdGVkS2V5cywgYnV0IHRoaXNcbiAqIHBvc2VkIHByb2JsZW1zIGlmIGFuIGFuaW1hdGlvbiB3YXMgdHJpZ2dlcmVkIGJ5IGFmdGVyQ2hpbGRyZW4gYW5kIHByb3RlY3RlZEtleXNcbiAqIGhhZCBiZWVuIHNldCB0byB0cnVlIGluIHRoZSBtZWFudGltZS5cbiAqL1xuZnVuY3Rpb24gc2hvdWxkQmxvY2tBbmltYXRpb24oeyBwcm90ZWN0ZWRLZXlzLCBuZWVkc0FuaW1hdGluZyB9LCBrZXkpIHtcbiAgICBjb25zdCBzaG91bGRCbG9jayA9IHByb3RlY3RlZEtleXMuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBuZWVkc0FuaW1hdGluZ1trZXldICE9PSB0cnVlO1xuICAgIG5lZWRzQW5pbWF0aW5nW2tleV0gPSBmYWxzZTtcbiAgICByZXR1cm4gc2hvdWxkQmxvY2s7XG59XG5mdW5jdGlvbiBhbmltYXRlVGFyZ2V0KHZpc3VhbEVsZW1lbnQsIHRhcmdldEFuZFRyYW5zaXRpb24sIHsgZGVsYXkgPSAwLCB0cmFuc2l0aW9uT3ZlcnJpZGUsIHR5cGUgfSA9IHt9KSB7XG4gICAgbGV0IHsgdHJhbnNpdGlvbiwgdHJhbnNpdGlvbkVuZCwgLi4udGFyZ2V0IH0gPSB0YXJnZXRBbmRUcmFuc2l0aW9uO1xuICAgIGNvbnN0IGRlZmF1bHRUcmFuc2l0aW9uID0gdmlzdWFsRWxlbWVudC5nZXREZWZhdWx0VHJhbnNpdGlvbigpO1xuICAgIHRyYW5zaXRpb24gPSB0cmFuc2l0aW9uXG4gICAgICAgID8gcmVzb2x2ZVRyYW5zaXRpb24odHJhbnNpdGlvbiwgZGVmYXVsdFRyYW5zaXRpb24pXG4gICAgICAgIDogZGVmYXVsdFRyYW5zaXRpb247XG4gICAgY29uc3QgcmVkdWNlTW90aW9uID0gdHJhbnNpdGlvbj8ucmVkdWNlTW90aW9uO1xuICAgIGlmICh0cmFuc2l0aW9uT3ZlcnJpZGUpXG4gICAgICAgIHRyYW5zaXRpb24gPSB0cmFuc2l0aW9uT3ZlcnJpZGU7XG4gICAgY29uc3QgYW5pbWF0aW9ucyA9IFtdO1xuICAgIGNvbnN0IGFuaW1hdGlvblR5cGVTdGF0ZSA9IHR5cGUgJiZcbiAgICAgICAgdmlzdWFsRWxlbWVudC5hbmltYXRpb25TdGF0ZSAmJlxuICAgICAgICB2aXN1YWxFbGVtZW50LmFuaW1hdGlvblN0YXRlLmdldFN0YXRlKClbdHlwZV07XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdGFyZ2V0KSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmlzdWFsRWxlbWVudC5nZXRWYWx1ZShrZXksIHZpc3VhbEVsZW1lbnQubGF0ZXN0VmFsdWVzW2tleV0gPz8gbnVsbCk7XG4gICAgICAgIGNvbnN0IHZhbHVlVGFyZ2V0ID0gdGFyZ2V0W2tleV07XG4gICAgICAgIGlmICh2YWx1ZVRhcmdldCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICAoYW5pbWF0aW9uVHlwZVN0YXRlICYmXG4gICAgICAgICAgICAgICAgc2hvdWxkQmxvY2tBbmltYXRpb24oYW5pbWF0aW9uVHlwZVN0YXRlLCBrZXkpKSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdmFsdWVUcmFuc2l0aW9uID0ge1xuICAgICAgICAgICAgZGVsYXksXG4gICAgICAgICAgICAuLi5nZXRWYWx1ZVRyYW5zaXRpb24odHJhbnNpdGlvbiB8fCB7fSwga2V5KSxcbiAgICAgICAgfTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IGF0IHRoZSBkZWZpbmVkIHRhcmdldCwgc2tpcCB0aGUgYW5pbWF0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdmFsdWUuZ2V0KCk7XG4gICAgICAgIGlmIChjdXJyZW50VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgIXZhbHVlLmlzQW5pbWF0aW5nICYmXG4gICAgICAgICAgICAhQXJyYXkuaXNBcnJheSh2YWx1ZVRhcmdldCkgJiZcbiAgICAgICAgICAgIHZhbHVlVGFyZ2V0ID09PSBjdXJyZW50VmFsdWUgJiZcbiAgICAgICAgICAgICF2YWx1ZVRyYW5zaXRpb24udmVsb2NpdHkpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIGEgdmFsdWUgaXMgYmVpbmcgYW5pbWF0ZWQsIGNoZWNrXG4gICAgICAgICAqIHRvIHNlZSBpZiB3ZSdyZSBoYW5kbGluZyBvZmYgZnJvbSBhbiBleGlzdGluZyBhbmltYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgaXNIYW5kb2ZmID0gZmFsc2U7XG4gICAgICAgIGlmICh3aW5kb3cuTW90aW9uSGFuZG9mZkFuaW1hdGlvbikge1xuICAgICAgICAgICAgY29uc3QgYXBwZWFySWQgPSBnZXRPcHRpbWlzZWRBcHBlYXJJZCh2aXN1YWxFbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChhcHBlYXJJZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHdpbmRvdy5Nb3Rpb25IYW5kb2ZmQW5pbWF0aW9uKGFwcGVhcklkLCBrZXksIGZyYW1lKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRUaW1lICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlVHJhbnNpdGlvbi5zdGFydFRpbWUgPSBzdGFydFRpbWU7XG4gICAgICAgICAgICAgICAgICAgIGlzSGFuZG9mZiA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGFkZFZhbHVlVG9XaWxsQ2hhbmdlKHZpc3VhbEVsZW1lbnQsIGtleSk7XG4gICAgICAgIGNvbnN0IHNob3VsZFJlZHVjZU1vdGlvbiA9IHJlZHVjZU1vdGlvbiA/PyB2aXN1YWxFbGVtZW50LnNob3VsZFJlZHVjZU1vdGlvbjtcbiAgICAgICAgdmFsdWUuc3RhcnQoYW5pbWF0ZU1vdGlvblZhbHVlKGtleSwgdmFsdWUsIHZhbHVlVGFyZ2V0LCBzaG91bGRSZWR1Y2VNb3Rpb24gJiYgcG9zaXRpb25hbEtleXMuaGFzKGtleSlcbiAgICAgICAgICAgID8geyB0eXBlOiBmYWxzZSB9XG4gICAgICAgICAgICA6IHZhbHVlVHJhbnNpdGlvbiwgdmlzdWFsRWxlbWVudCwgaXNIYW5kb2ZmKSk7XG4gICAgICAgIGNvbnN0IGFuaW1hdGlvbiA9IHZhbHVlLmFuaW1hdGlvbjtcbiAgICAgICAgaWYgKGFuaW1hdGlvbikge1xuICAgICAgICAgICAgYW5pbWF0aW9ucy5wdXNoKGFuaW1hdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRyYW5zaXRpb25FbmQpIHtcbiAgICAgICAgY29uc3QgYXBwbHlUcmFuc2l0aW9uRW5kID0gKCkgPT4gZnJhbWUudXBkYXRlKCgpID0+IHtcbiAgICAgICAgICAgIHRyYW5zaXRpb25FbmQgJiYgc2V0VGFyZ2V0KHZpc3VhbEVsZW1lbnQsIHRyYW5zaXRpb25FbmQpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGFuaW1hdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBQcm9taXNlLmFsbChhbmltYXRpb25zKS50aGVuKGFwcGx5VHJhbnNpdGlvbkVuZCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhcHBseVRyYW5zaXRpb25FbmQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYW5pbWF0aW9ucztcbn1cblxuZXhwb3J0IHsgYW5pbWF0ZVRhcmdldCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmlzdWFsLWVsZW1lbnQtdGFyZ2V0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs": +/*!*****************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateVariant: () => (/* binding */ animateVariant)\n/* harmony export */ });\n/* harmony import */ var _render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/utils/resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/calc-child-stagger.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs\");\n/* harmony import */ var _visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./visual-element-target.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs\");\n\n\n\n\nfunction animateVariant(visualElement, variant, options = {}) {\n const resolved = (0,_render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveVariant)(visualElement, variant, options.type === \"exit\"\n ? visualElement.presenceContext?.custom\n : undefined);\n let { transition = visualElement.getDefaultTransition() || {} } = resolved || {};\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getAnimation = resolved\n ? () => Promise.all((0,_visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_1__.animateTarget)(visualElement, resolved, options))\n : () => Promise.resolve();\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n const getChildAnimations = visualElement.variantChildren && visualElement.variantChildren.size\n ? (forwardDelay = 0) => {\n const { delayChildren = 0, staggerChildren, staggerDirection, } = transition;\n return animateChildren(visualElement, variant, forwardDelay, delayChildren, staggerChildren, staggerDirection, options);\n }\n : () => Promise.resolve();\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n const { when } = transition;\n if (when) {\n const [first, last] = when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation];\n return first().then(() => last());\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\nfunction animateChildren(visualElement, variant, delay = 0, delayChildren = 0, staggerChildren = 0, staggerDirection = 1, options) {\n const animations = [];\n for (const child of visualElement.variantChildren) {\n child.notify(\"AnimationStart\", variant);\n animations.push(animateVariant(child, variant, {\n ...options,\n delay: delay +\n (typeof delayChildren === \"function\" ? 0 : delayChildren) +\n (0,_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_2__.calcChildStagger)(visualElement.variantChildren, child, delayChildren, staggerChildren, staggerDirection),\n }).then(() => child.notify(\"AnimationComplete\", variant)));\n }\n return Promise.all(animations);\n}\n\n\n//# sourceMappingURL=visual-element-variant.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQtdmFyaWFudC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFpRjtBQUNkO0FBQ1A7O0FBRTVELDREQUE0RDtBQUM1RCxxQkFBcUIsMEZBQWM7QUFDbkM7QUFDQTtBQUNBLFVBQVUsMERBQTBEO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIseUVBQWE7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0Isd0RBQXdEO0FBQzVFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxPQUFPO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQiwrRUFBZ0I7QUFDaEMsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFMEI7QUFDMUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9pbnRlcmZhY2VzL3Zpc3VhbC1lbGVtZW50LXZhcmlhbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmVWYXJpYW50IH0gZnJvbSAnLi4vLi4vcmVuZGVyL3V0aWxzL3Jlc29sdmUtZHluYW1pYy12YXJpYW50cy5tanMnO1xuaW1wb3J0IHsgY2FsY0NoaWxkU3RhZ2dlciB9IGZyb20gJy4uL3V0aWxzL2NhbGMtY2hpbGQtc3RhZ2dlci5tanMnO1xuaW1wb3J0IHsgYW5pbWF0ZVRhcmdldCB9IGZyb20gJy4vdmlzdWFsLWVsZW1lbnQtdGFyZ2V0Lm1qcyc7XG5cbmZ1bmN0aW9uIGFuaW1hdGVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIHZhcmlhbnQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgdmFyaWFudCwgb3B0aW9ucy50eXBlID09PSBcImV4aXRcIlxuICAgICAgICA/IHZpc3VhbEVsZW1lbnQucHJlc2VuY2VDb250ZXh0Py5jdXN0b21cbiAgICAgICAgOiB1bmRlZmluZWQpO1xuICAgIGxldCB7IHRyYW5zaXRpb24gPSB2aXN1YWxFbGVtZW50LmdldERlZmF1bHRUcmFuc2l0aW9uKCkgfHwge30gfSA9IHJlc29sdmVkIHx8IHt9O1xuICAgIGlmIChvcHRpb25zLnRyYW5zaXRpb25PdmVycmlkZSkge1xuICAgICAgICB0cmFuc2l0aW9uID0gb3B0aW9ucy50cmFuc2l0aW9uT3ZlcnJpZGU7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIElmIHdlIGhhdmUgYSB2YXJpYW50LCBjcmVhdGUgYSBjYWxsYmFjayB0aGF0IHJ1bnMgaXQgYXMgYW4gYW5pbWF0aW9uLlxuICAgICAqIE90aGVyd2lzZSwgd2UgcmVzb2x2ZSBhIFByb21pc2UgaW1tZWRpYXRlbHkgZm9yIGEgY29tcG9zYWJsZSBuby1vcC5cbiAgICAgKi9cbiAgICBjb25zdCBnZXRBbmltYXRpb24gPSByZXNvbHZlZFxuICAgICAgICA/ICgpID0+IFByb21pc2UuYWxsKGFuaW1hdGVUYXJnZXQodmlzdWFsRWxlbWVudCwgcmVzb2x2ZWQsIG9wdGlvbnMpKVxuICAgICAgICA6ICgpID0+IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIC8qKlxuICAgICAqIElmIHdlIGhhdmUgY2hpbGRyZW4sIGNyZWF0ZSBhIGNhbGxiYWNrIHRoYXQgcnVucyBhbGwgdGhlaXIgYW5pbWF0aW9ucy5cbiAgICAgKiBPdGhlcndpc2UsIHdlIHJlc29sdmUgYSBQcm9taXNlIGltbWVkaWF0ZWx5IGZvciBhIGNvbXBvc2FibGUgbm8tb3AuXG4gICAgICovXG4gICAgY29uc3QgZ2V0Q2hpbGRBbmltYXRpb25zID0gdmlzdWFsRWxlbWVudC52YXJpYW50Q2hpbGRyZW4gJiYgdmlzdWFsRWxlbWVudC52YXJpYW50Q2hpbGRyZW4uc2l6ZVxuICAgICAgICA/IChmb3J3YXJkRGVsYXkgPSAwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGRlbGF5Q2hpbGRyZW4gPSAwLCBzdGFnZ2VyQ2hpbGRyZW4sIHN0YWdnZXJEaXJlY3Rpb24sIH0gPSB0cmFuc2l0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGVDaGlsZHJlbih2aXN1YWxFbGVtZW50LCB2YXJpYW50LCBmb3J3YXJkRGVsYXksIGRlbGF5Q2hpbGRyZW4sIHN0YWdnZXJDaGlsZHJlbiwgc3RhZ2dlckRpcmVjdGlvbiwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgICAgOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdHJhbnNpdGlvbiBleHBsaWNpdGx5IGRlZmluZXMgYSBcIndoZW5cIiBvcHRpb24sIHdlIG5lZWQgdG8gcmVzb2x2ZSBlaXRoZXJcbiAgICAgKiB0aGlzIGFuaW1hdGlvbiBvciBhbGwgY2hpbGRyZW4gYW5pbWF0aW9ucyBiZWZvcmUgcGxheWluZyB0aGUgb3RoZXIuXG4gICAgICovXG4gICAgY29uc3QgeyB3aGVuIH0gPSB0cmFuc2l0aW9uO1xuICAgIGlmICh3aGVuKSB7XG4gICAgICAgIGNvbnN0IFtmaXJzdCwgbGFzdF0gPSB3aGVuID09PSBcImJlZm9yZUNoaWxkcmVuXCJcbiAgICAgICAgICAgID8gW2dldEFuaW1hdGlvbiwgZ2V0Q2hpbGRBbmltYXRpb25zXVxuICAgICAgICAgICAgOiBbZ2V0Q2hpbGRBbmltYXRpb25zLCBnZXRBbmltYXRpb25dO1xuICAgICAgICByZXR1cm4gZmlyc3QoKS50aGVuKCgpID0+IGxhc3QoKSk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW2dldEFuaW1hdGlvbigpLCBnZXRDaGlsZEFuaW1hdGlvbnMob3B0aW9ucy5kZWxheSldKTtcbiAgICB9XG59XG5mdW5jdGlvbiBhbmltYXRlQ2hpbGRyZW4odmlzdWFsRWxlbWVudCwgdmFyaWFudCwgZGVsYXkgPSAwLCBkZWxheUNoaWxkcmVuID0gMCwgc3RhZ2dlckNoaWxkcmVuID0gMCwgc3RhZ2dlckRpcmVjdGlvbiA9IDEsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBhbmltYXRpb25zID0gW107XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiB2aXN1YWxFbGVtZW50LnZhcmlhbnRDaGlsZHJlbikge1xuICAgICAgICBjaGlsZC5ub3RpZnkoXCJBbmltYXRpb25TdGFydFwiLCB2YXJpYW50KTtcbiAgICAgICAgYW5pbWF0aW9ucy5wdXNoKGFuaW1hdGVWYXJpYW50KGNoaWxkLCB2YXJpYW50LCB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICAgICAgZGVsYXk6IGRlbGF5ICtcbiAgICAgICAgICAgICAgICAodHlwZW9mIGRlbGF5Q2hpbGRyZW4gPT09IFwiZnVuY3Rpb25cIiA/IDAgOiBkZWxheUNoaWxkcmVuKSArXG4gICAgICAgICAgICAgICAgY2FsY0NoaWxkU3RhZ2dlcih2aXN1YWxFbGVtZW50LnZhcmlhbnRDaGlsZHJlbiwgY2hpbGQsIGRlbGF5Q2hpbGRyZW4sIHN0YWdnZXJDaGlsZHJlbiwgc3RhZ2dlckRpcmVjdGlvbiksXG4gICAgICAgIH0pLnRoZW4oKCkgPT4gY2hpbGQubm90aWZ5KFwiQW5pbWF0aW9uQ29tcGxldGVcIiwgdmFyaWFudCkpKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKGFuaW1hdGlvbnMpO1xufVxuXG5leHBvcnQgeyBhbmltYXRlVmFyaWFudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmlzdWFsLWVsZW1lbnQtdmFyaWFudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ animateVisualElement: () => (/* binding */ animateVisualElement)\n/* harmony export */ });\n/* harmony import */ var _render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../render/utils/resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./visual-element-target.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs\");\n/* harmony import */ var _visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./visual-element-variant.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs\");\n\n\n\n\nfunction animateVisualElement(visualElement, definition, options = {}) {\n visualElement.notify(\"AnimationStart\", definition);\n let animation;\n if (Array.isArray(definition)) {\n const animations = definition.map((variant) => (0,_visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__.animateVariant)(visualElement, variant, options));\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = (0,_visual_element_variant_mjs__WEBPACK_IMPORTED_MODULE_0__.animateVariant)(visualElement, definition, options);\n }\n else {\n const resolvedDefinition = typeof definition === \"function\"\n ? (0,_render_utils_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_1__.resolveVariant)(visualElement, definition, options.custom)\n : definition;\n animation = Promise.all((0,_visual_element_target_mjs__WEBPACK_IMPORTED_MODULE_2__.animateTarget)(visualElement, resolvedDefinition, options));\n }\n return animation.then(() => {\n visualElement.notify(\"AnimationComplete\", definition);\n });\n}\n\n\n//# sourceMappingURL=visual-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2ludGVyZmFjZXMvdmlzdWFsLWVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBaUY7QUFDckI7QUFDRTs7QUFFOUQscUVBQXFFO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCwyRUFBYztBQUNyRTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMkVBQWM7QUFDbEM7QUFDQTtBQUNBO0FBQ0EsY0FBYywwRkFBYztBQUM1QjtBQUNBLGdDQUFnQyx5RUFBYTtBQUM3QztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vaW50ZXJmYWNlcy92aXN1YWwtZWxlbWVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZVZhcmlhbnQgfSBmcm9tICcuLi8uLi9yZW5kZXIvdXRpbHMvcmVzb2x2ZS1keW5hbWljLXZhcmlhbnRzLm1qcyc7XG5pbXBvcnQgeyBhbmltYXRlVGFyZ2V0IH0gZnJvbSAnLi92aXN1YWwtZWxlbWVudC10YXJnZXQubWpzJztcbmltcG9ydCB7IGFuaW1hdGVWYXJpYW50IH0gZnJvbSAnLi92aXN1YWwtZWxlbWVudC12YXJpYW50Lm1qcyc7XG5cbmZ1bmN0aW9uIGFuaW1hdGVWaXN1YWxFbGVtZW50KHZpc3VhbEVsZW1lbnQsIGRlZmluaXRpb24sIG9wdGlvbnMgPSB7fSkge1xuICAgIHZpc3VhbEVsZW1lbnQubm90aWZ5KFwiQW5pbWF0aW9uU3RhcnRcIiwgZGVmaW5pdGlvbik7XG4gICAgbGV0IGFuaW1hdGlvbjtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKSkge1xuICAgICAgICBjb25zdCBhbmltYXRpb25zID0gZGVmaW5pdGlvbi5tYXAoKHZhcmlhbnQpID0+IGFuaW1hdGVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIHZhcmlhbnQsIG9wdGlvbnMpKTtcbiAgICAgICAgYW5pbWF0aW9uID0gUHJvbWlzZS5hbGwoYW5pbWF0aW9ucyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBkZWZpbml0aW9uID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGFuaW1hdGlvbiA9IGFuaW1hdGVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIGRlZmluaXRpb24sIG9wdGlvbnMpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWREZWZpbml0aW9uID0gdHlwZW9mIGRlZmluaXRpb24gPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgPyByZXNvbHZlVmFyaWFudCh2aXN1YWxFbGVtZW50LCBkZWZpbml0aW9uLCBvcHRpb25zLmN1c3RvbSlcbiAgICAgICAgICAgIDogZGVmaW5pdGlvbjtcbiAgICAgICAgYW5pbWF0aW9uID0gUHJvbWlzZS5hbGwoYW5pbWF0ZVRhcmdldCh2aXN1YWxFbGVtZW50LCByZXNvbHZlZERlZmluaXRpb24sIG9wdGlvbnMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGFuaW1hdGlvbi50aGVuKCgpID0+IHtcbiAgICAgICAgdmlzdWFsRWxlbWVudC5ub3RpZnkoXCJBbmltYXRpb25Db21wbGV0ZVwiLCBkZWZpbml0aW9uKTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IHsgYW5pbWF0ZVZpc3VhbEVsZW1lbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXZpc3VhbC1lbGVtZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DOMKeyframesResolver: () => (/* binding */ DOMKeyframesResolver)\n/* harmony export */ });\n/* harmony import */ var _render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../render/utils/keys-position.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\");\n/* harmony import */ var _value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../value/types/dimensions.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\");\n/* harmony import */ var _utils_css_variables_conversion_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/css-variables-conversion.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs\");\n/* harmony import */ var _utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./KeyframesResolver.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var _utils_is_none_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/is-none.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs\");\n/* harmony import */ var _utils_make_none_animatable_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/make-none-animatable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs\");\n/* harmony import */ var _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/unit-conversion.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\");\n\n\n\n\n\n\n\n\n\nclass DOMKeyframesResolver extends _KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__.KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element) {\n super(unresolvedKeyframes, onComplete, name, motionValue, element, true);\n }\n readKeyframes() {\n const { unresolvedKeyframes, element, name } = this;\n if (!element || !element.current)\n return;\n super.readKeyframes();\n /**\n * If any keyframe is a CSS variable, we need to find its value by sampling the element\n */\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n let keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\") {\n keyframe = keyframe.trim();\n if ((0,_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableToken)(keyframe)) {\n const resolved = (0,_utils_css_variables_conversion_mjs__WEBPACK_IMPORTED_MODULE_2__.getVariableValue)(keyframe, element.current);\n if (resolved !== undefined) {\n unresolvedKeyframes[i] = resolved;\n }\n if (i === unresolvedKeyframes.length - 1) {\n this.finalKeyframe = keyframe;\n }\n }\n }\n }\n /**\n * Resolve \"none\" values. We do this potentially twice - once before and once after measuring keyframes.\n * This could be seen as inefficient but it's a trade-off to avoid measurements in more situations, which\n * have a far bigger performance impact.\n */\n this.resolveNoneKeyframes();\n /**\n * Check to see if unit type has changed. If so schedule jobs that will\n * temporarily set styles to the destination keyframes.\n * Skip if we have more than two keyframes or this isn't a positional value.\n * TODO: We can throw if there are multiple keyframes and the value type changes.\n */\n if (!_render_utils_keys_position_mjs__WEBPACK_IMPORTED_MODULE_3__.positionalKeys.has(name) || unresolvedKeyframes.length !== 2) {\n return;\n }\n const [origin, target] = unresolvedKeyframes;\n const originType = (0,_value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__.findDimensionValueType)(origin);\n const targetType = (0,_value_types_dimensions_mjs__WEBPACK_IMPORTED_MODULE_4__.findDimensionValueType)(target);\n /**\n * If one keyframe contains embedded CSS variables (e.g. in calc()) and the other\n * doesn't, we need to measure to convert to pixels. This handles GitHub issue #3410.\n */\n const originHasVar = (0,_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.containsCSSVariable)(origin);\n const targetHasVar = (0,_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.containsCSSVariable)(target);\n if (originHasVar !== targetHasVar && _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name]) {\n this.needsMeasurement = true;\n return;\n }\n /**\n * Either we don't recognise these value types or we can animate between them.\n */\n if (originType === targetType)\n return;\n /**\n * If both values are numbers or pixels, we can animate between them by\n * converting them to numbers.\n */\n if ((0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.isNumOrPxType)(originType) && (0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.isNumOrPxType)(targetType)) {\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n const value = unresolvedKeyframes[i];\n if (typeof value === \"string\") {\n unresolvedKeyframes[i] = parseFloat(value);\n }\n }\n }\n else if (_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name]) {\n /**\n * Else, the only way to resolve this is by measuring the element.\n */\n this.needsMeasurement = true;\n }\n }\n resolveNoneKeyframes() {\n const { unresolvedKeyframes, name } = this;\n const noneKeyframeIndexes = [];\n for (let i = 0; i < unresolvedKeyframes.length; i++) {\n if (unresolvedKeyframes[i] === null ||\n (0,_utils_is_none_mjs__WEBPACK_IMPORTED_MODULE_6__.isNone)(unresolvedKeyframes[i])) {\n noneKeyframeIndexes.push(i);\n }\n }\n if (noneKeyframeIndexes.length) {\n (0,_utils_make_none_animatable_mjs__WEBPACK_IMPORTED_MODULE_7__.makeNoneKeyframesAnimatable)(unresolvedKeyframes, noneKeyframeIndexes, name);\n }\n }\n measureInitialState() {\n const { element, unresolvedKeyframes, name } = this;\n if (!element || !element.current)\n return;\n if (name === \"height\") {\n this.suspendedScrollY = window.pageYOffset;\n }\n this.measuredOrigin = _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n unresolvedKeyframes[0] = this.measuredOrigin;\n // Set final key frame to measure after next render\n const measureKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (measureKeyframe !== undefined) {\n element.getValue(name, measureKeyframe).jump(measureKeyframe, false);\n }\n }\n measureEndState() {\n const { element, name, unresolvedKeyframes } = this;\n if (!element || !element.current)\n return;\n const value = element.getValue(name);\n value && value.jump(this.measuredOrigin, false);\n const finalKeyframeIndex = unresolvedKeyframes.length - 1;\n const finalKeyframe = unresolvedKeyframes[finalKeyframeIndex];\n unresolvedKeyframes[finalKeyframeIndex] = _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_5__.positionalValues[name](element.measureViewportBox(), window.getComputedStyle(element.current));\n if (finalKeyframe !== null && this.finalKeyframe === undefined) {\n this.finalKeyframe = finalKeyframe;\n }\n // If we removed transform values, reapply them before the next render\n if (this.removedTransforms?.length) {\n this.removedTransforms.forEach(([unsetTransformName, unsetTransformValue]) => {\n element\n .getValue(unsetTransformName)\n .set(unsetTransformValue);\n });\n }\n this.resolveNoneKeyframes();\n }\n}\n\n\n//# sourceMappingURL=DOMKeyframesResolver.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9ET01LZXlmcmFtZXNSZXNvbHZlci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQXNFO0FBQ0k7QUFDRDtBQUNjO0FBQzVCO0FBQ2Q7QUFDa0M7QUFDRDs7QUFFOUUsbUNBQW1DLG9FQUFnQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQ0FBcUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdDQUFnQztBQUN4RDtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsOEVBQWtCO0FBQ3RDLHFDQUFxQyxxRkFBZ0I7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSwyRUFBYztBQUMzQjtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsbUZBQXNCO0FBQ2pELDJCQUEyQixtRkFBc0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsK0VBQW1CO0FBQ2hELDZCQUE2QiwrRUFBbUI7QUFDaEQsNkNBQTZDLHdFQUFnQjtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHlFQUFhLGdCQUFnQix5RUFBYTtBQUN0RCw0QkFBNEIsZ0NBQWdDO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQix3RUFBZ0I7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsNEJBQTRCO0FBQzVDO0FBQ0Esd0JBQXdCLGdDQUFnQztBQUN4RDtBQUNBLGdCQUFnQiwwREFBTTtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksNEZBQTJCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQ0FBcUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qix3RUFBZ0I7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixxQ0FBcUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELHdFQUFnQjtBQUNsRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL0RPTUtleWZyYW1lc1Jlc29sdmVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb3NpdGlvbmFsS2V5cyB9IGZyb20gJy4uLy4uL3JlbmRlci91dGlscy9rZXlzLXBvc2l0aW9uLm1qcyc7XG5pbXBvcnQgeyBmaW5kRGltZW5zaW9uVmFsdWVUeXBlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvZGltZW5zaW9ucy5tanMnO1xuaW1wb3J0IHsgZ2V0VmFyaWFibGVWYWx1ZSB9IGZyb20gJy4uL3V0aWxzL2Nzcy12YXJpYWJsZXMtY29udmVyc2lvbi5tanMnO1xuaW1wb3J0IHsgaXNDU1NWYXJpYWJsZVRva2VuLCBjb250YWluc0NTU1ZhcmlhYmxlIH0gZnJvbSAnLi4vdXRpbHMvaXMtY3NzLXZhcmlhYmxlLm1qcyc7XG5pbXBvcnQgeyBLZXlmcmFtZVJlc29sdmVyIH0gZnJvbSAnLi9LZXlmcmFtZXNSZXNvbHZlci5tanMnO1xuaW1wb3J0IHsgaXNOb25lIH0gZnJvbSAnLi91dGlscy9pcy1ub25lLm1qcyc7XG5pbXBvcnQgeyBtYWtlTm9uZUtleWZyYW1lc0FuaW1hdGFibGUgfSBmcm9tICcuL3V0aWxzL21ha2Utbm9uZS1hbmltYXRhYmxlLm1qcyc7XG5pbXBvcnQgeyBwb3NpdGlvbmFsVmFsdWVzLCBpc051bU9yUHhUeXBlIH0gZnJvbSAnLi91dGlscy91bml0LWNvbnZlcnNpb24ubWpzJztcblxuY2xhc3MgRE9NS2V5ZnJhbWVzUmVzb2x2ZXIgZXh0ZW5kcyBLZXlmcmFtZVJlc29sdmVyIHtcbiAgICBjb25zdHJ1Y3Rvcih1bnJlc29sdmVkS2V5ZnJhbWVzLCBvbkNvbXBsZXRlLCBuYW1lLCBtb3Rpb25WYWx1ZSwgZWxlbWVudCkge1xuICAgICAgICBzdXBlcih1bnJlc29sdmVkS2V5ZnJhbWVzLCBvbkNvbXBsZXRlLCBuYW1lLCBtb3Rpb25WYWx1ZSwgZWxlbWVudCwgdHJ1ZSk7XG4gICAgfVxuICAgIHJlYWRLZXlmcmFtZXMoKSB7XG4gICAgICAgIGNvbnN0IHsgdW5yZXNvbHZlZEtleWZyYW1lcywgZWxlbWVudCwgbmFtZSB9ID0gdGhpcztcbiAgICAgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHN1cGVyLnJlYWRLZXlmcmFtZXMoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIGFueSBrZXlmcmFtZSBpcyBhIENTUyB2YXJpYWJsZSwgd2UgbmVlZCB0byBmaW5kIGl0cyB2YWx1ZSBieSBzYW1wbGluZyB0aGUgZWxlbWVudFxuICAgICAgICAgKi9cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB1bnJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQga2V5ZnJhbWUgPSB1bnJlc29sdmVkS2V5ZnJhbWVzW2ldO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBrZXlmcmFtZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGtleWZyYW1lID0ga2V5ZnJhbWUudHJpbSgpO1xuICAgICAgICAgICAgICAgIGlmIChpc0NTU1ZhcmlhYmxlVG9rZW4oa2V5ZnJhbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gZ2V0VmFyaWFibGVWYWx1ZShrZXlmcmFtZSwgZWxlbWVudC5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc29sdmVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVucmVzb2x2ZWRLZXlmcmFtZXNbaV0gPSByZXNvbHZlZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoaSA9PT0gdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbmFsS2V5ZnJhbWUgPSBrZXlmcmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvKipcbiAgICAgICAgICogUmVzb2x2ZSBcIm5vbmVcIiB2YWx1ZXMuIFdlIGRvIHRoaXMgcG90ZW50aWFsbHkgdHdpY2UgLSBvbmNlIGJlZm9yZSBhbmQgb25jZSBhZnRlciBtZWFzdXJpbmcga2V5ZnJhbWVzLlxuICAgICAgICAgKiBUaGlzIGNvdWxkIGJlIHNlZW4gYXMgaW5lZmZpY2llbnQgYnV0IGl0J3MgYSB0cmFkZS1vZmYgdG8gYXZvaWQgbWVhc3VyZW1lbnRzIGluIG1vcmUgc2l0dWF0aW9ucywgd2hpY2hcbiAgICAgICAgICogaGF2ZSBhIGZhciBiaWdnZXIgcGVyZm9ybWFuY2UgaW1wYWN0LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5yZXNvbHZlTm9uZUtleWZyYW1lcygpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQ2hlY2sgdG8gc2VlIGlmIHVuaXQgdHlwZSBoYXMgY2hhbmdlZC4gSWYgc28gc2NoZWR1bGUgam9icyB0aGF0IHdpbGxcbiAgICAgICAgICogdGVtcG9yYXJpbHkgc2V0IHN0eWxlcyB0byB0aGUgZGVzdGluYXRpb24ga2V5ZnJhbWVzLlxuICAgICAgICAgKiBTa2lwIGlmIHdlIGhhdmUgbW9yZSB0aGFuIHR3byBrZXlmcmFtZXMgb3IgdGhpcyBpc24ndCBhIHBvc2l0aW9uYWwgdmFsdWUuXG4gICAgICAgICAqIFRPRE86IFdlIGNhbiB0aHJvdyBpZiB0aGVyZSBhcmUgbXVsdGlwbGUga2V5ZnJhbWVzIGFuZCB0aGUgdmFsdWUgdHlwZSBjaGFuZ2VzLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKCFwb3NpdGlvbmFsS2V5cy5oYXMobmFtZSkgfHwgdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBbb3JpZ2luLCB0YXJnZXRdID0gdW5yZXNvbHZlZEtleWZyYW1lcztcbiAgICAgICAgY29uc3Qgb3JpZ2luVHlwZSA9IGZpbmREaW1lbnNpb25WYWx1ZVR5cGUob3JpZ2luKTtcbiAgICAgICAgY29uc3QgdGFyZ2V0VHlwZSA9IGZpbmREaW1lbnNpb25WYWx1ZVR5cGUodGFyZ2V0KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIG9uZSBrZXlmcmFtZSBjb250YWlucyBlbWJlZGRlZCBDU1MgdmFyaWFibGVzIChlLmcuIGluIGNhbGMoKSkgYW5kIHRoZSBvdGhlclxuICAgICAgICAgKiBkb2Vzbid0LCB3ZSBuZWVkIHRvIG1lYXN1cmUgdG8gY29udmVydCB0byBwaXhlbHMuIFRoaXMgaGFuZGxlcyBHaXRIdWIgaXNzdWUgIzM0MTAuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCBvcmlnaW5IYXNWYXIgPSBjb250YWluc0NTU1ZhcmlhYmxlKG9yaWdpbik7XG4gICAgICAgIGNvbnN0IHRhcmdldEhhc1ZhciA9IGNvbnRhaW5zQ1NTVmFyaWFibGUodGFyZ2V0KTtcbiAgICAgICAgaWYgKG9yaWdpbkhhc1ZhciAhPT0gdGFyZ2V0SGFzVmFyICYmIHBvc2l0aW9uYWxWYWx1ZXNbbmFtZV0pIHtcbiAgICAgICAgICAgIHRoaXMubmVlZHNNZWFzdXJlbWVudCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEVpdGhlciB3ZSBkb24ndCByZWNvZ25pc2UgdGhlc2UgdmFsdWUgdHlwZXMgb3Igd2UgY2FuIGFuaW1hdGUgYmV0d2VlbiB0aGVtLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKG9yaWdpblR5cGUgPT09IHRhcmdldFR5cGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBib3RoIHZhbHVlcyBhcmUgbnVtYmVycyBvciBwaXhlbHMsIHdlIGNhbiBhbmltYXRlIGJldHdlZW4gdGhlbSBieVxuICAgICAgICAgKiBjb252ZXJ0aW5nIHRoZW0gdG8gbnVtYmVycy5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChpc051bU9yUHhUeXBlKG9yaWdpblR5cGUpICYmIGlzTnVtT3JQeFR5cGUodGFyZ2V0VHlwZSkpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdW5yZXNvbHZlZEtleWZyYW1lc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHVucmVzb2x2ZWRLZXlmcmFtZXNbaV0gPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocG9zaXRpb25hbFZhbHVlc1tuYW1lXSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBFbHNlLCB0aGUgb25seSB3YXkgdG8gcmVzb2x2ZSB0aGlzIGlzIGJ5IG1lYXN1cmluZyB0aGUgZWxlbWVudC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5uZWVkc01lYXN1cmVtZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXNvbHZlTm9uZUtleWZyYW1lcygpIHtcbiAgICAgICAgY29uc3QgeyB1bnJlc29sdmVkS2V5ZnJhbWVzLCBuYW1lIH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBub25lS2V5ZnJhbWVJbmRleGVzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHVucmVzb2x2ZWRLZXlmcmFtZXNbaV0gPT09IG51bGwgfHxcbiAgICAgICAgICAgICAgICBpc05vbmUodW5yZXNvbHZlZEtleWZyYW1lc1tpXSkpIHtcbiAgICAgICAgICAgICAgICBub25lS2V5ZnJhbWVJbmRleGVzLnB1c2goaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vbmVLZXlmcmFtZUluZGV4ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBtYWtlTm9uZUtleWZyYW1lc0FuaW1hdGFibGUodW5yZXNvbHZlZEtleWZyYW1lcywgbm9uZUtleWZyYW1lSW5kZXhlcywgbmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWVhc3VyZUluaXRpYWxTdGF0ZSgpIHtcbiAgICAgICAgY29uc3QgeyBlbGVtZW50LCB1bnJlc29sdmVkS2V5ZnJhbWVzLCBuYW1lIH0gPSB0aGlzO1xuICAgICAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKG5hbWUgPT09IFwiaGVpZ2h0XCIpIHtcbiAgICAgICAgICAgIHRoaXMuc3VzcGVuZGVkU2Nyb2xsWSA9IHdpbmRvdy5wYWdlWU9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1lYXN1cmVkT3JpZ2luID0gcG9zaXRpb25hbFZhbHVlc1tuYW1lXShlbGVtZW50Lm1lYXN1cmVWaWV3cG9ydEJveCgpLCB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LmN1cnJlbnQpKTtcbiAgICAgICAgdW5yZXNvbHZlZEtleWZyYW1lc1swXSA9IHRoaXMubWVhc3VyZWRPcmlnaW47XG4gICAgICAgIC8vIFNldCBmaW5hbCBrZXkgZnJhbWUgdG8gbWVhc3VyZSBhZnRlciBuZXh0IHJlbmRlclxuICAgICAgICBjb25zdCBtZWFzdXJlS2V5ZnJhbWUgPSB1bnJlc29sdmVkS2V5ZnJhbWVzW3VucmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoIC0gMV07XG4gICAgICAgIGlmIChtZWFzdXJlS2V5ZnJhbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZWxlbWVudC5nZXRWYWx1ZShuYW1lLCBtZWFzdXJlS2V5ZnJhbWUpLmp1bXAobWVhc3VyZUtleWZyYW1lLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWVhc3VyZUVuZFN0YXRlKCkge1xuICAgICAgICBjb25zdCB7IGVsZW1lbnQsIG5hbWUsIHVucmVzb2x2ZWRLZXlmcmFtZXMgfSA9IHRoaXM7XG4gICAgICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGVsZW1lbnQuZ2V0VmFsdWUobmFtZSk7XG4gICAgICAgIHZhbHVlICYmIHZhbHVlLmp1bXAodGhpcy5tZWFzdXJlZE9yaWdpbiwgZmFsc2UpO1xuICAgICAgICBjb25zdCBmaW5hbEtleWZyYW1lSW5kZXggPSB1bnJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aCAtIDE7XG4gICAgICAgIGNvbnN0IGZpbmFsS2V5ZnJhbWUgPSB1bnJlc29sdmVkS2V5ZnJhbWVzW2ZpbmFsS2V5ZnJhbWVJbmRleF07XG4gICAgICAgIHVucmVzb2x2ZWRLZXlmcmFtZXNbZmluYWxLZXlmcmFtZUluZGV4XSA9IHBvc2l0aW9uYWxWYWx1ZXNbbmFtZV0oZWxlbWVudC5tZWFzdXJlVmlld3BvcnRCb3goKSwgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudC5jdXJyZW50KSk7XG4gICAgICAgIGlmIChmaW5hbEtleWZyYW1lICE9PSBudWxsICYmIHRoaXMuZmluYWxLZXlmcmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbmFsS2V5ZnJhbWUgPSBmaW5hbEtleWZyYW1lO1xuICAgICAgICB9XG4gICAgICAgIC8vIElmIHdlIHJlbW92ZWQgdHJhbnNmb3JtIHZhbHVlcywgcmVhcHBseSB0aGVtIGJlZm9yZSB0aGUgbmV4dCByZW5kZXJcbiAgICAgICAgaWYgKHRoaXMucmVtb3ZlZFRyYW5zZm9ybXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVkVHJhbnNmb3Jtcy5mb3JFYWNoKChbdW5zZXRUcmFuc2Zvcm1OYW1lLCB1bnNldFRyYW5zZm9ybVZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgLmdldFZhbHVlKHVuc2V0VHJhbnNmb3JtTmFtZSlcbiAgICAgICAgICAgICAgICAgICAgLnNldCh1bnNldFRyYW5zZm9ybVZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzb2x2ZU5vbmVLZXlmcmFtZXMoKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IERPTUtleWZyYW1lc1Jlc29sdmVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ET01LZXlmcmFtZXNSZXNvbHZlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ KeyframeResolver: () => (/* binding */ KeyframeResolver),\n/* harmony export */ flushKeyframeResolvers: () => (/* binding */ flushKeyframeResolvers)\n/* harmony export */ });\n/* harmony import */ var _utils_fill_wildcards_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/fill-wildcards.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs\");\n/* harmony import */ var _utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/unit-conversion.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\nconst toResolve = new Set();\nlet isScheduled = false;\nlet anyNeedsMeasurement = false;\nlet isForced = false;\nfunction measureAllKeyframes() {\n if (anyNeedsMeasurement) {\n const resolversToMeasure = Array.from(toResolve).filter((resolver) => resolver.needsMeasurement);\n const elementsToMeasure = new Set(resolversToMeasure.map((resolver) => resolver.element));\n const transformsToRestore = new Map();\n /**\n * Write pass\n * If we're measuring elements we want to remove bounding box-changing transforms.\n */\n elementsToMeasure.forEach((element) => {\n const removedTransforms = (0,_utils_unit_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.removeNonTranslationalTransform)(element);\n if (!removedTransforms.length)\n return;\n transformsToRestore.set(element, removedTransforms);\n element.render();\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureInitialState());\n // Write\n elementsToMeasure.forEach((element) => {\n element.render();\n const restore = transformsToRestore.get(element);\n if (restore) {\n restore.forEach(([key, value]) => {\n element.getValue(key)?.set(value);\n });\n }\n });\n // Read\n resolversToMeasure.forEach((resolver) => resolver.measureEndState());\n // Write\n resolversToMeasure.forEach((resolver) => {\n if (resolver.suspendedScrollY !== undefined) {\n window.scrollTo(0, resolver.suspendedScrollY);\n }\n });\n }\n anyNeedsMeasurement = false;\n isScheduled = false;\n toResolve.forEach((resolver) => resolver.complete(isForced));\n toResolve.clear();\n}\nfunction readAllKeyframes() {\n toResolve.forEach((resolver) => {\n resolver.readKeyframes();\n if (resolver.needsMeasurement) {\n anyNeedsMeasurement = true;\n }\n });\n}\nfunction flushKeyframeResolvers() {\n isForced = true;\n readAllKeyframes();\n measureAllKeyframes();\n isForced = false;\n}\nclass KeyframeResolver {\n constructor(unresolvedKeyframes, onComplete, name, motionValue, element, isAsync = false) {\n this.state = \"pending\";\n /**\n * Track whether this resolver is async. If it is, it'll be added to the\n * resolver queue and flushed in the next frame. Resolvers that aren't going\n * to trigger read/write thrashing don't need to be async.\n */\n this.isAsync = false;\n /**\n * Track whether this resolver needs to perform a measurement\n * to resolve its keyframes.\n */\n this.needsMeasurement = false;\n this.unresolvedKeyframes = [...unresolvedKeyframes];\n this.onComplete = onComplete;\n this.name = name;\n this.motionValue = motionValue;\n this.element = element;\n this.isAsync = isAsync;\n }\n scheduleResolve() {\n this.state = \"scheduled\";\n if (this.isAsync) {\n toResolve.add(this);\n if (!isScheduled) {\n isScheduled = true;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.read(readAllKeyframes);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.resolveKeyframes(measureAllKeyframes);\n }\n }\n else {\n this.readKeyframes();\n this.complete();\n }\n }\n readKeyframes() {\n const { unresolvedKeyframes, name, element, motionValue } = this;\n // If initial keyframe is null we need to read it from the DOM\n if (unresolvedKeyframes[0] === null) {\n const currentValue = motionValue?.get();\n // TODO: This doesn't work if the final keyframe is a wildcard\n const finalKeyframe = unresolvedKeyframes[unresolvedKeyframes.length - 1];\n if (currentValue !== undefined) {\n unresolvedKeyframes[0] = currentValue;\n }\n else if (element && name) {\n const valueAsRead = element.readValue(name, finalKeyframe);\n if (valueAsRead !== undefined && valueAsRead !== null) {\n unresolvedKeyframes[0] = valueAsRead;\n }\n }\n if (unresolvedKeyframes[0] === undefined) {\n unresolvedKeyframes[0] = finalKeyframe;\n }\n if (motionValue && currentValue === undefined) {\n motionValue.set(unresolvedKeyframes[0]);\n }\n }\n (0,_utils_fill_wildcards_mjs__WEBPACK_IMPORTED_MODULE_2__.fillWildcards)(unresolvedKeyframes);\n }\n setFinalKeyframe() { }\n measureInitialState() { }\n renderEndStyles() { }\n measureEndState() { }\n complete(isForcedComplete = false) {\n this.state = \"complete\";\n this.onComplete(this.unresolvedKeyframes, this.finalKeyframe, isForcedComplete);\n toResolve.delete(this);\n }\n cancel() {\n if (this.state === \"scheduled\") {\n toResolve.delete(this);\n this.state = \"pending\";\n }\n }\n resume() {\n if (this.state === \"pending\")\n this.scheduleResolve();\n }\n}\n\n\n//# sourceMappingURL=KeyframesResolver.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9LZXlmcmFtZXNSZXNvbHZlci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBMkQ7QUFDbUI7QUFDNUI7O0FBRWxEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsMkZBQStCO0FBQ3JFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQUs7QUFDckIsZ0JBQWdCLHVEQUFLO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isa0RBQWtEO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0VBQWE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVvRDtBQUNwRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9LZXlmcmFtZXNSZXNvbHZlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsbFdpbGRjYXJkcyB9IGZyb20gJy4vdXRpbHMvZmlsbC13aWxkY2FyZHMubWpzJztcbmltcG9ydCB7IHJlbW92ZU5vblRyYW5zbGF0aW9uYWxUcmFuc2Zvcm0gfSBmcm9tICcuL3V0aWxzL3VuaXQtY29udmVyc2lvbi5tanMnO1xuaW1wb3J0IHsgZnJhbWUgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcblxuY29uc3QgdG9SZXNvbHZlID0gbmV3IFNldCgpO1xubGV0IGlzU2NoZWR1bGVkID0gZmFsc2U7XG5sZXQgYW55TmVlZHNNZWFzdXJlbWVudCA9IGZhbHNlO1xubGV0IGlzRm9yY2VkID0gZmFsc2U7XG5mdW5jdGlvbiBtZWFzdXJlQWxsS2V5ZnJhbWVzKCkge1xuICAgIGlmIChhbnlOZWVkc01lYXN1cmVtZW50KSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVyc1RvTWVhc3VyZSA9IEFycmF5LmZyb20odG9SZXNvbHZlKS5maWx0ZXIoKHJlc29sdmVyKSA9PiByZXNvbHZlci5uZWVkc01lYXN1cmVtZW50KTtcbiAgICAgICAgY29uc3QgZWxlbWVudHNUb01lYXN1cmUgPSBuZXcgU2V0KHJlc29sdmVyc1RvTWVhc3VyZS5tYXAoKHJlc29sdmVyKSA9PiByZXNvbHZlci5lbGVtZW50KSk7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybXNUb1Jlc3RvcmUgPSBuZXcgTWFwKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXcml0ZSBwYXNzXG4gICAgICAgICAqIElmIHdlJ3JlIG1lYXN1cmluZyBlbGVtZW50cyB3ZSB3YW50IHRvIHJlbW92ZSBib3VuZGluZyBib3gtY2hhbmdpbmcgdHJhbnNmb3Jtcy5cbiAgICAgICAgICovXG4gICAgICAgIGVsZW1lbnRzVG9NZWFzdXJlLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlbW92ZWRUcmFuc2Zvcm1zID0gcmVtb3ZlTm9uVHJhbnNsYXRpb25hbFRyYW5zZm9ybShlbGVtZW50KTtcbiAgICAgICAgICAgIGlmICghcmVtb3ZlZFRyYW5zZm9ybXMubGVuZ3RoKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRyYW5zZm9ybXNUb1Jlc3RvcmUuc2V0KGVsZW1lbnQsIHJlbW92ZWRUcmFuc2Zvcm1zKTtcbiAgICAgICAgICAgIGVsZW1lbnQucmVuZGVyKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBSZWFkXG4gICAgICAgIHJlc29sdmVyc1RvTWVhc3VyZS5mb3JFYWNoKChyZXNvbHZlcikgPT4gcmVzb2x2ZXIubWVhc3VyZUluaXRpYWxTdGF0ZSgpKTtcbiAgICAgICAgLy8gV3JpdGVcbiAgICAgICAgZWxlbWVudHNUb01lYXN1cmUuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudC5yZW5kZXIoKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3RvcmUgPSB0cmFuc2Zvcm1zVG9SZXN0b3JlLmdldChlbGVtZW50KTtcbiAgICAgICAgICAgIGlmIChyZXN0b3JlKSB7XG4gICAgICAgICAgICAgICAgcmVzdG9yZS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5nZXRWYWx1ZShrZXkpPy5zZXQodmFsdWUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gUmVhZFxuICAgICAgICByZXNvbHZlcnNUb01lYXN1cmUuZm9yRWFjaCgocmVzb2x2ZXIpID0+IHJlc29sdmVyLm1lYXN1cmVFbmRTdGF0ZSgpKTtcbiAgICAgICAgLy8gV3JpdGVcbiAgICAgICAgcmVzb2x2ZXJzVG9NZWFzdXJlLmZvckVhY2goKHJlc29sdmVyKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzb2x2ZXIuc3VzcGVuZGVkU2Nyb2xsWSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIHJlc29sdmVyLnN1c3BlbmRlZFNjcm9sbFkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgYW55TmVlZHNNZWFzdXJlbWVudCA9IGZhbHNlO1xuICAgIGlzU2NoZWR1bGVkID0gZmFsc2U7XG4gICAgdG9SZXNvbHZlLmZvckVhY2goKHJlc29sdmVyKSA9PiByZXNvbHZlci5jb21wbGV0ZShpc0ZvcmNlZCkpO1xuICAgIHRvUmVzb2x2ZS5jbGVhcigpO1xufVxuZnVuY3Rpb24gcmVhZEFsbEtleWZyYW1lcygpIHtcbiAgICB0b1Jlc29sdmUuZm9yRWFjaCgocmVzb2x2ZXIpID0+IHtcbiAgICAgICAgcmVzb2x2ZXIucmVhZEtleWZyYW1lcygpO1xuICAgICAgICBpZiAocmVzb2x2ZXIubmVlZHNNZWFzdXJlbWVudCkge1xuICAgICAgICAgICAgYW55TmVlZHNNZWFzdXJlbWVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cbmZ1bmN0aW9uIGZsdXNoS2V5ZnJhbWVSZXNvbHZlcnMoKSB7XG4gICAgaXNGb3JjZWQgPSB0cnVlO1xuICAgIHJlYWRBbGxLZXlmcmFtZXMoKTtcbiAgICBtZWFzdXJlQWxsS2V5ZnJhbWVzKCk7XG4gICAgaXNGb3JjZWQgPSBmYWxzZTtcbn1cbmNsYXNzIEtleWZyYW1lUmVzb2x2ZXIge1xuICAgIGNvbnN0cnVjdG9yKHVucmVzb2x2ZWRLZXlmcmFtZXMsIG9uQ29tcGxldGUsIG5hbWUsIG1vdGlvblZhbHVlLCBlbGVtZW50LCBpc0FzeW5jID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IFwicGVuZGluZ1wiO1xuICAgICAgICAvKipcbiAgICAgICAgICogVHJhY2sgd2hldGhlciB0aGlzIHJlc29sdmVyIGlzIGFzeW5jLiBJZiBpdCBpcywgaXQnbGwgYmUgYWRkZWQgdG8gdGhlXG4gICAgICAgICAqIHJlc29sdmVyIHF1ZXVlIGFuZCBmbHVzaGVkIGluIHRoZSBuZXh0IGZyYW1lLiBSZXNvbHZlcnMgdGhhdCBhcmVuJ3QgZ29pbmdcbiAgICAgICAgICogdG8gdHJpZ2dlciByZWFkL3dyaXRlIHRocmFzaGluZyBkb24ndCBuZWVkIHRvIGJlIGFzeW5jLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pc0FzeW5jID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFjayB3aGV0aGVyIHRoaXMgcmVzb2x2ZXIgbmVlZHMgdG8gcGVyZm9ybSBhIG1lYXN1cmVtZW50XG4gICAgICAgICAqIHRvIHJlc29sdmUgaXRzIGtleWZyYW1lcy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMubmVlZHNNZWFzdXJlbWVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnVucmVzb2x2ZWRLZXlmcmFtZXMgPSBbLi4udW5yZXNvbHZlZEtleWZyYW1lc107XG4gICAgICAgIHRoaXMub25Db21wbGV0ZSA9IG9uQ29tcGxldGU7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMubW90aW9uVmFsdWUgPSBtb3Rpb25WYWx1ZTtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudDtcbiAgICAgICAgdGhpcy5pc0FzeW5jID0gaXNBc3luYztcbiAgICB9XG4gICAgc2NoZWR1bGVSZXNvbHZlKCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gXCJzY2hlZHVsZWRcIjtcbiAgICAgICAgaWYgKHRoaXMuaXNBc3luYykge1xuICAgICAgICAgICAgdG9SZXNvbHZlLmFkZCh0aGlzKTtcbiAgICAgICAgICAgIGlmICghaXNTY2hlZHVsZWQpIHtcbiAgICAgICAgICAgICAgICBpc1NjaGVkdWxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgZnJhbWUucmVhZChyZWFkQWxsS2V5ZnJhbWVzKTtcbiAgICAgICAgICAgICAgICBmcmFtZS5yZXNvbHZlS2V5ZnJhbWVzKG1lYXN1cmVBbGxLZXlmcmFtZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZWFkS2V5ZnJhbWVzKCk7XG4gICAgICAgICAgICB0aGlzLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmVhZEtleWZyYW1lcygpIHtcbiAgICAgICAgY29uc3QgeyB1bnJlc29sdmVkS2V5ZnJhbWVzLCBuYW1lLCBlbGVtZW50LCBtb3Rpb25WYWx1ZSB9ID0gdGhpcztcbiAgICAgICAgLy8gSWYgaW5pdGlhbCBrZXlmcmFtZSBpcyBudWxsIHdlIG5lZWQgdG8gcmVhZCBpdCBmcm9tIHRoZSBET01cbiAgICAgICAgaWYgKHVucmVzb2x2ZWRLZXlmcmFtZXNbMF0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IG1vdGlvblZhbHVlPy5nZXQoKTtcbiAgICAgICAgICAgIC8vIFRPRE86IFRoaXMgZG9lc24ndCB3b3JrIGlmIHRoZSBmaW5hbCBrZXlmcmFtZSBpcyBhIHdpbGRjYXJkXG4gICAgICAgICAgICBjb25zdCBmaW5hbEtleWZyYW1lID0gdW5yZXNvbHZlZEtleWZyYW1lc1t1bnJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdW5yZXNvbHZlZEtleWZyYW1lc1swXSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQgJiYgbmFtZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNSZWFkID0gZWxlbWVudC5yZWFkVmFsdWUobmFtZSwgZmluYWxLZXlmcmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlQXNSZWFkICE9PSB1bmRlZmluZWQgJiYgdmFsdWVBc1JlYWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdW5yZXNvbHZlZEtleWZyYW1lc1swXSA9IHZhbHVlQXNSZWFkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh1bnJlc29sdmVkS2V5ZnJhbWVzWzBdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICB1bnJlc29sdmVkS2V5ZnJhbWVzWzBdID0gZmluYWxLZXlmcmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtb3Rpb25WYWx1ZSAmJiBjdXJyZW50VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIG1vdGlvblZhbHVlLnNldCh1bnJlc29sdmVkS2V5ZnJhbWVzWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmaWxsV2lsZGNhcmRzKHVucmVzb2x2ZWRLZXlmcmFtZXMpO1xuICAgIH1cbiAgICBzZXRGaW5hbEtleWZyYW1lKCkgeyB9XG4gICAgbWVhc3VyZUluaXRpYWxTdGF0ZSgpIHsgfVxuICAgIHJlbmRlckVuZFN0eWxlcygpIHsgfVxuICAgIG1lYXN1cmVFbmRTdGF0ZSgpIHsgfVxuICAgIGNvbXBsZXRlKGlzRm9yY2VkQ29tcGxldGUgPSBmYWxzZSkge1xuICAgICAgICB0aGlzLnN0YXRlID0gXCJjb21wbGV0ZVwiO1xuICAgICAgICB0aGlzLm9uQ29tcGxldGUodGhpcy51bnJlc29sdmVkS2V5ZnJhbWVzLCB0aGlzLmZpbmFsS2V5ZnJhbWUsIGlzRm9yY2VkQ29tcGxldGUpO1xuICAgICAgICB0b1Jlc29sdmUuZGVsZXRlKHRoaXMpO1xuICAgIH1cbiAgICBjYW5jZWwoKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlID09PSBcInNjaGVkdWxlZFwiKSB7XG4gICAgICAgICAgICB0b1Jlc29sdmUuZGVsZXRlKHRoaXMpO1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IFwicGVuZGluZ1wiO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJlc3VtZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IFwicGVuZGluZ1wiKVxuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlc29sdmUoKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IEtleWZyYW1lUmVzb2x2ZXIsIGZsdXNoS2V5ZnJhbWVSZXNvbHZlcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUtleWZyYW1lc1Jlc29sdmVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getFinalKeyframe: () => (/* binding */ getFinalKeyframe)\n/* harmony export */ });\nconst isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe, speed = 1) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const useFirstKeyframe = speed < 0 || (repeat && repeatType !== \"loop\" && repeat % 2 === 1);\n const index = useFirstKeyframe ? 0 : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\n\n//# sourceMappingURL=get-final.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9nZXQtZmluYWwubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLHVDQUF1Qyw2QkFBNkI7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTRCO0FBQzVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL2dldC1maW5hbC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNOb3ROdWxsID0gKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbnVsbDtcbmZ1bmN0aW9uIGdldEZpbmFsS2V5ZnJhbWUoa2V5ZnJhbWVzLCB7IHJlcGVhdCwgcmVwZWF0VHlwZSA9IFwibG9vcFwiIH0sIGZpbmFsS2V5ZnJhbWUsIHNwZWVkID0gMSkge1xuICAgIGNvbnN0IHJlc29sdmVkS2V5ZnJhbWVzID0ga2V5ZnJhbWVzLmZpbHRlcihpc05vdE51bGwpO1xuICAgIGNvbnN0IHVzZUZpcnN0S2V5ZnJhbWUgPSBzcGVlZCA8IDAgfHwgKHJlcGVhdCAmJiByZXBlYXRUeXBlICE9PSBcImxvb3BcIiAmJiByZXBlYXQgJSAyID09PSAxKTtcbiAgICBjb25zdCBpbmRleCA9IHVzZUZpcnN0S2V5ZnJhbWUgPyAwIDogcmVzb2x2ZWRLZXlmcmFtZXMubGVuZ3RoIC0gMTtcbiAgICByZXR1cm4gIWluZGV4IHx8IGZpbmFsS2V5ZnJhbWUgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHJlc29sdmVkS2V5ZnJhbWVzW2luZGV4XVxuICAgICAgICA6IGZpbmFsS2V5ZnJhbWU7XG59XG5cbmV4cG9ydCB7IGdldEZpbmFsS2V5ZnJhbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdldC1maW5hbC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultOffset: () => (/* binding */ defaultOffset)\n/* harmony export */ });\n/* harmony import */ var _fill_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fill.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs\");\n\n\nfunction defaultOffset(arr) {\n const offset = [0];\n (0,_fill_mjs__WEBPACK_IMPORTED_MODULE_0__.fillOffset)(offset, arr.length - 1);\n return offset;\n}\n\n\n//# sourceMappingURL=default.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL2RlZmF1bHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdDOztBQUV4QztBQUNBO0FBQ0EsSUFBSSxxREFBVTtBQUNkO0FBQ0E7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL29mZnNldHMvZGVmYXVsdC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsbE9mZnNldCB9IGZyb20gJy4vZmlsbC5tanMnO1xuXG5mdW5jdGlvbiBkZWZhdWx0T2Zmc2V0KGFycikge1xuICAgIGNvbnN0IG9mZnNldCA9IFswXTtcbiAgICBmaWxsT2Zmc2V0KG9mZnNldCwgYXJyLmxlbmd0aCAtIDEpO1xuICAgIHJldHVybiBvZmZzZXQ7XG59XG5cbmV4cG9ydCB7IGRlZmF1bHRPZmZzZXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmF1bHQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fillOffset: () => (/* binding */ fillOffset)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\nfunction fillOffset(offset, remaining) {\n const min = offset[offset.length - 1];\n for (let i = 1; i <= remaining; i++) {\n const offsetProgress = (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.progress)(0, remaining, i);\n offset.push((0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(min, 1, offsetProgress));\n }\n}\n\n\n//# sourceMappingURL=fill.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL2ZpbGwubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3QztBQUNrQjs7QUFFMUQ7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEMsK0JBQStCLHNEQUFRO0FBQ3ZDLG9CQUFvQixnRUFBUztBQUM3QjtBQUNBOztBQUVzQjtBQUN0QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL2ZpbGwubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb2dyZXNzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IG1peE51bWJlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL21peC9udW1iZXIubWpzJztcblxuZnVuY3Rpb24gZmlsbE9mZnNldChvZmZzZXQsIHJlbWFpbmluZykge1xuICAgIGNvbnN0IG1pbiA9IG9mZnNldFtvZmZzZXQubGVuZ3RoIC0gMV07XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gcmVtYWluaW5nOyBpKyspIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0UHJvZ3Jlc3MgPSBwcm9ncmVzcygwLCByZW1haW5pbmcsIGkpO1xuICAgICAgICBvZmZzZXQucHVzaChtaXhOdW1iZXIobWluLCAxLCBvZmZzZXRQcm9ncmVzcykpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgZmlsbE9mZnNldCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmlsbC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ convertOffsetToTimes: () => (/* binding */ convertOffsetToTimes)\n/* harmony export */ });\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\n\n\n//# sourceMappingURL=time.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy9vZmZzZXRzL3RpbWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL29mZnNldHMvdGltZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gY29udmVydE9mZnNldFRvVGltZXMob2Zmc2V0LCBkdXJhdGlvbikge1xuICAgIHJldHVybiBvZmZzZXQubWFwKChvKSA9PiBvICogZHVyYXRpb24pO1xufVxuXG5leHBvcnQgeyBjb252ZXJ0T2Zmc2V0VG9UaW1lcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGltZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ fillWildcards: () => (/* binding */ fillWildcards)\n/* harmony export */ });\nfunction fillWildcards(keyframes) {\n for (let i = 1; i < keyframes.length; i++) {\n keyframes[i] ?? (keyframes[i] = keyframes[i - 1]);\n }\n}\n\n\n//# sourceMappingURL=fill-wildcards.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy9maWxsLXdpbGRjYXJkcy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0Esb0JBQW9CLHNCQUFzQjtBQUMxQztBQUNBO0FBQ0E7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24va2V5ZnJhbWVzL3V0aWxzL2ZpbGwtd2lsZGNhcmRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBmaWxsV2lsZGNhcmRzKGtleWZyYW1lcykge1xuICAgIGZvciAobGV0IGkgPSAxOyBpIDwga2V5ZnJhbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGtleWZyYW1lc1tpXSA/PyAoa2V5ZnJhbWVzW2ldID0ga2V5ZnJhbWVzW2kgLSAxXSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBmaWxsV2lsZGNhcmRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1maWxsLXdpbGRjYXJkcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNone: () => (/* binding */ isNone)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\");\n\n\nfunction isNone(value) {\n if (typeof value === \"number\") {\n return value === 0;\n }\n else if (value !== null) {\n return value === \"none\" || value === \"0\" || (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isZeroValueString)(value);\n }\n else {\n return true;\n }\n}\n\n\n//# sourceMappingURL=is-none.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy9pcy1ub25lLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFpRDs7QUFFakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRCwrREFBaUI7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFa0I7QUFDbEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvaXMtbm9uZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNaZXJvVmFsdWVTdHJpbmcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuXG5mdW5jdGlvbiBpc05vbmUodmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gMDtcbiAgICB9XG4gICAgZWxzZSBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09PSBcIm5vbmVcIiB8fCB2YWx1ZSA9PT0gXCIwXCIgfHwgaXNaZXJvVmFsdWVTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuXG5leHBvcnQgeyBpc05vbmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLW5vbmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs": +/*!********************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs ***! + \********************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ makeNoneKeyframesAnimatable: () => (/* binding */ makeNoneKeyframesAnimatable)\n/* harmony export */ });\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/types/utils/animatable-none.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\");\n\n\n\n/**\n * If we encounter keyframes like \"none\" or \"0\" and we also have keyframes like\n * \"#fff\" or \"200px 200px\" we want to find a keyframe to serve as a template for\n * the \"none\" keyframes. In this case \"#fff\" or \"200px 200px\" - then these get turned into\n * zero equivalents, i.e. \"#fff0\" or \"0px 0px\".\n */\nconst invalidTemplates = new Set([\"auto\", \"none\", \"0\"]);\nfunction makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, name) {\n let i = 0;\n let animatableTemplate = undefined;\n while (i < unresolvedKeyframes.length && !animatableTemplate) {\n const keyframe = unresolvedKeyframes[i];\n if (typeof keyframe === \"string\" &&\n !invalidTemplates.has(keyframe) &&\n (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.analyseComplexValue)(keyframe).values.length) {\n animatableTemplate = unresolvedKeyframes[i];\n }\n i++;\n }\n if (animatableTemplate && name) {\n for (const noneIndex of noneKeyframeIndexes) {\n unresolvedKeyframes[noneIndex] = (0,_value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_1__.getAnimatableNone)(name, animatableTemplate);\n }\n }\n}\n\n\n//# sourceMappingURL=make-none-animatable.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy9tYWtlLW5vbmUtYW5pbWF0YWJsZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTZFO0FBQ007O0FBRW5GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLG1GQUFtQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2Q0FBNkMseUZBQWlCO0FBQzlEO0FBQ0E7QUFDQTs7QUFFdUM7QUFDdkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvbWFrZS1ub25lLWFuaW1hdGFibGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuYWx5c2VDb21wbGV4VmFsdWUgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy9jb21wbGV4L2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBnZXRBbmltYXRhYmxlTm9uZSB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3R5cGVzL3V0aWxzL2FuaW1hdGFibGUtbm9uZS5tanMnO1xuXG4vKipcbiAqIElmIHdlIGVuY291bnRlciBrZXlmcmFtZXMgbGlrZSBcIm5vbmVcIiBvciBcIjBcIiBhbmQgd2UgYWxzbyBoYXZlIGtleWZyYW1lcyBsaWtlXG4gKiBcIiNmZmZcIiBvciBcIjIwMHB4IDIwMHB4XCIgd2Ugd2FudCB0byBmaW5kIGEga2V5ZnJhbWUgdG8gc2VydmUgYXMgYSB0ZW1wbGF0ZSBmb3JcbiAqIHRoZSBcIm5vbmVcIiBrZXlmcmFtZXMuIEluIHRoaXMgY2FzZSBcIiNmZmZcIiBvciBcIjIwMHB4IDIwMHB4XCIgLSB0aGVuIHRoZXNlIGdldCB0dXJuZWQgaW50b1xuICogemVybyBlcXVpdmFsZW50cywgaS5lLiBcIiNmZmYwXCIgb3IgXCIwcHggMHB4XCIuXG4gKi9cbmNvbnN0IGludmFsaWRUZW1wbGF0ZXMgPSBuZXcgU2V0KFtcImF1dG9cIiwgXCJub25lXCIsIFwiMFwiXSk7XG5mdW5jdGlvbiBtYWtlTm9uZUtleWZyYW1lc0FuaW1hdGFibGUodW5yZXNvbHZlZEtleWZyYW1lcywgbm9uZUtleWZyYW1lSW5kZXhlcywgbmFtZSkge1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgYW5pbWF0YWJsZVRlbXBsYXRlID0gdW5kZWZpbmVkO1xuICAgIHdoaWxlIChpIDwgdW5yZXNvbHZlZEtleWZyYW1lcy5sZW5ndGggJiYgIWFuaW1hdGFibGVUZW1wbGF0ZSkge1xuICAgICAgICBjb25zdCBrZXlmcmFtZSA9IHVucmVzb2x2ZWRLZXlmcmFtZXNbaV07XG4gICAgICAgIGlmICh0eXBlb2Yga2V5ZnJhbWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgICFpbnZhbGlkVGVtcGxhdGVzLmhhcyhrZXlmcmFtZSkgJiZcbiAgICAgICAgICAgIGFuYWx5c2VDb21wbGV4VmFsdWUoa2V5ZnJhbWUpLnZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGFuaW1hdGFibGVUZW1wbGF0ZSA9IHVucmVzb2x2ZWRLZXlmcmFtZXNbaV07XG4gICAgICAgIH1cbiAgICAgICAgaSsrO1xuICAgIH1cbiAgICBpZiAoYW5pbWF0YWJsZVRlbXBsYXRlICYmIG5hbWUpIHtcbiAgICAgICAgZm9yIChjb25zdCBub25lSW5kZXggb2Ygbm9uZUtleWZyYW1lSW5kZXhlcykge1xuICAgICAgICAgICAgdW5yZXNvbHZlZEtleWZyYW1lc1tub25lSW5kZXhdID0gZ2V0QW5pbWF0YWJsZU5vbmUobmFtZSwgYW5pbWF0YWJsZVRlbXBsYXRlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgbWFrZU5vbmVLZXlmcmFtZXNBbmltYXRhYmxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYWtlLW5vbmUtYW5pbWF0YWJsZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs": +/*!***************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs ***! + \***************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNumOrPxType: () => (/* binding */ isNumOrPxType),\n/* harmony export */ positionalValues: () => (/* binding */ positionalValues),\n/* harmony export */ removeNonTranslationalTransform: () => (/* binding */ removeNonTranslationalTransform)\n/* harmony export */ });\n/* harmony import */ var _render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../render/dom/parse-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\");\n/* harmony import */ var _render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../render/utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _value_types_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../value/types/numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/types/numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\n\n\n\n\nconst isNumOrPxType = (v) => v === _value_types_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number || v === _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.px;\nconst transformKeys = new Set([\"x\", \"y\", \"z\"]);\nconst nonTranslationalTransformKeys = _render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformPropOrder.filter((key) => !transformKeys.has(key));\nfunction removeNonTranslationalTransform(visualElement) {\n const removedTransforms = [];\n nonTranslationalTransformKeys.forEach((key) => {\n const value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n return removedTransforms;\n}\nconst positionalValues = {\n // Dimensions\n width: ({ x }, { paddingLeft = \"0\", paddingRight = \"0\" }) => x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight),\n height: ({ y }, { paddingTop = \"0\", paddingBottom = \"0\" }) => y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom),\n top: (_bbox, { top }) => parseFloat(top),\n left: (_bbox, { left }) => parseFloat(left),\n bottom: ({ y }, { top }) => parseFloat(top) + (y.max - y.min),\n right: ({ x }, { left }) => parseFloat(left) + (x.max - x.min),\n // Transform\n x: (_bbox, { transform }) => (0,_render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.parseValueFromTransform)(transform, \"x\"),\n y: (_bbox, { transform }) => (0,_render_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.parseValueFromTransform)(transform, \"y\"),\n};\n// Alias translate longform names\npositionalValues.translateX = positionalValues.x;\npositionalValues.translateY = positionalValues.y;\n\n\n//# sourceMappingURL=unit-conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL2tleWZyYW1lcy91dGlscy91bml0LWNvbnZlcnNpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBa0Y7QUFDSjtBQUNkO0FBQ0o7O0FBRTVELG1DQUFtQyxrRUFBTSxVQUFVLDhEQUFFO0FBQ3JEO0FBQ0Esc0NBQXNDLGdGQUFrQjtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxHQUFHLElBQUksdUNBQXVDO0FBQzVELGVBQWUsR0FBRyxJQUFJLHVDQUF1QztBQUM3RCxtQkFBbUIsS0FBSztBQUN4QixvQkFBb0IsTUFBTTtBQUMxQixlQUFlLEdBQUcsSUFBSSxLQUFLO0FBQzNCLGNBQWMsR0FBRyxJQUFJLE1BQU07QUFDM0I7QUFDQSxpQkFBaUIsV0FBVyxLQUFLLHdGQUF1QjtBQUN4RCxpQkFBaUIsV0FBVyxLQUFLLHdGQUF1QjtBQUN4RDtBQUNBO0FBQ0E7QUFDQTs7QUFFNEU7QUFDNUUiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9rZXlmcmFtZXMvdXRpbHMvdW5pdC1jb252ZXJzaW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXJzZVZhbHVlRnJvbVRyYW5zZm9ybSB9IGZyb20gJy4uLy4uLy4uL3JlbmRlci9kb20vcGFyc2UtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wT3JkZXIgfSBmcm9tICcuLi8uLi8uLi9yZW5kZXIvdXRpbHMva2V5cy10cmFuc2Zvcm0ubWpzJztcbmltcG9ydCB7IG51bWJlciB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3R5cGVzL251bWJlcnMvaW5kZXgubWpzJztcbmltcG9ydCB7IHB4IH0gZnJvbSAnLi4vLi4vLi4vdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMnO1xuXG5jb25zdCBpc051bU9yUHhUeXBlID0gKHYpID0+IHYgPT09IG51bWJlciB8fCB2ID09PSBweDtcbmNvbnN0IHRyYW5zZm9ybUtleXMgPSBuZXcgU2V0KFtcInhcIiwgXCJ5XCIsIFwielwiXSk7XG5jb25zdCBub25UcmFuc2xhdGlvbmFsVHJhbnNmb3JtS2V5cyA9IHRyYW5zZm9ybVByb3BPcmRlci5maWx0ZXIoKGtleSkgPT4gIXRyYW5zZm9ybUtleXMuaGFzKGtleSkpO1xuZnVuY3Rpb24gcmVtb3ZlTm9uVHJhbnNsYXRpb25hbFRyYW5zZm9ybSh2aXN1YWxFbGVtZW50KSB7XG4gICAgY29uc3QgcmVtb3ZlZFRyYW5zZm9ybXMgPSBbXTtcbiAgICBub25UcmFuc2xhdGlvbmFsVHJhbnNmb3JtS2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZW1vdmVkVHJhbnNmb3Jtcy5wdXNoKFtrZXksIHZhbHVlLmdldCgpXSk7XG4gICAgICAgICAgICB2YWx1ZS5zZXQoa2V5LnN0YXJ0c1dpdGgoXCJzY2FsZVwiKSA/IDEgOiAwKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZW1vdmVkVHJhbnNmb3Jtcztcbn1cbmNvbnN0IHBvc2l0aW9uYWxWYWx1ZXMgPSB7XG4gICAgLy8gRGltZW5zaW9uc1xuICAgIHdpZHRoOiAoeyB4IH0sIHsgcGFkZGluZ0xlZnQgPSBcIjBcIiwgcGFkZGluZ1JpZ2h0ID0gXCIwXCIgfSkgPT4geC5tYXggLSB4Lm1pbiAtIHBhcnNlRmxvYXQocGFkZGluZ0xlZnQpIC0gcGFyc2VGbG9hdChwYWRkaW5nUmlnaHQpLFxuICAgIGhlaWdodDogKHsgeSB9LCB7IHBhZGRpbmdUb3AgPSBcIjBcIiwgcGFkZGluZ0JvdHRvbSA9IFwiMFwiIH0pID0+IHkubWF4IC0geS5taW4gLSBwYXJzZUZsb2F0KHBhZGRpbmdUb3ApIC0gcGFyc2VGbG9hdChwYWRkaW5nQm90dG9tKSxcbiAgICB0b3A6IChfYmJveCwgeyB0b3AgfSkgPT4gcGFyc2VGbG9hdCh0b3ApLFxuICAgIGxlZnQ6IChfYmJveCwgeyBsZWZ0IH0pID0+IHBhcnNlRmxvYXQobGVmdCksXG4gICAgYm90dG9tOiAoeyB5IH0sIHsgdG9wIH0pID0+IHBhcnNlRmxvYXQodG9wKSArICh5Lm1heCAtIHkubWluKSxcbiAgICByaWdodDogKHsgeCB9LCB7IGxlZnQgfSkgPT4gcGFyc2VGbG9hdChsZWZ0KSArICh4Lm1heCAtIHgubWluKSxcbiAgICAvLyBUcmFuc2Zvcm1cbiAgICB4OiAoX2Jib3gsIHsgdHJhbnNmb3JtIH0pID0+IHBhcnNlVmFsdWVGcm9tVHJhbnNmb3JtKHRyYW5zZm9ybSwgXCJ4XCIpLFxuICAgIHk6IChfYmJveCwgeyB0cmFuc2Zvcm0gfSkgPT4gcGFyc2VWYWx1ZUZyb21UcmFuc2Zvcm0odHJhbnNmb3JtLCBcInlcIiksXG59O1xuLy8gQWxpYXMgdHJhbnNsYXRlIGxvbmdmb3JtIG5hbWVzXG5wb3NpdGlvbmFsVmFsdWVzLnRyYW5zbGF0ZVggPSBwb3NpdGlvbmFsVmFsdWVzLng7XG5wb3NpdGlvbmFsVmFsdWVzLnRyYW5zbGF0ZVkgPSBwb3NpdGlvbmFsVmFsdWVzLnk7XG5cbmV4cG9ydCB7IGlzTnVtT3JQeFR5cGUsIHBvc2l0aW9uYWxWYWx1ZXMsIHJlbW92ZU5vblRyYW5zbGF0aW9uYWxUcmFuc2Zvcm0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVuaXQtY29udmVyc2lvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ optimizedAppearDataAttribute: () => (/* binding */ optimizedAppearDataAttribute),\n/* harmony export */ optimizedAppearDataId: () => (/* binding */ optimizedAppearDataId)\n/* harmony export */ });\n/* harmony import */ var _render_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/dom/utils/camel-to-dash.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\");\n\n\nconst optimizedAppearDataId = \"framerAppearId\";\nconst optimizedAppearDataAttribute = \"data-\" + (0,_render_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_0__.camelToDash)(optimizedAppearDataId);\n\n\n//# sourceMappingURL=data-id.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL29wdGltaXplZC1hcHBlYXIvZGF0YS1pZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXVFOztBQUV2RTtBQUNBLCtDQUErQyxnRkFBVzs7QUFFSztBQUMvRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL29wdGltaXplZC1hcHBlYXIvZGF0YS1pZC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FtZWxUb0Rhc2ggfSBmcm9tICcuLi8uLi9yZW5kZXIvZG9tL3V0aWxzL2NhbWVsLXRvLWRhc2gubWpzJztcblxuY29uc3Qgb3B0aW1pemVkQXBwZWFyRGF0YUlkID0gXCJmcmFtZXJBcHBlYXJJZFwiO1xuY29uc3Qgb3B0aW1pemVkQXBwZWFyRGF0YUF0dHJpYnV0ZSA9IFwiZGF0YS1cIiArIGNhbWVsVG9EYXNoKG9wdGltaXplZEFwcGVhckRhdGFJZCk7XG5cbmV4cG9ydCB7IG9wdGltaXplZEFwcGVhckRhdGFBdHRyaWJ1dGUsIG9wdGltaXplZEFwcGVhckRhdGFJZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YS1pZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getOptimisedAppearId: () => (/* binding */ getOptimisedAppearId)\n/* harmony export */ });\n/* harmony import */ var _data_id_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./data-id.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs\");\n\n\nfunction getOptimisedAppearId(visualElement) {\n return visualElement.props[_data_id_mjs__WEBPACK_IMPORTED_MODULE_0__.optimizedAppearDataAttribute];\n}\n\n\n//# sourceMappingURL=get-appear-id.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL29wdGltaXplZC1hcHBlYXIvZ2V0LWFwcGVhci1pZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBNkQ7O0FBRTdEO0FBQ0EsK0JBQStCLHNFQUE0QjtBQUMzRDs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi9vcHRpbWl6ZWQtYXBwZWFyL2dldC1hcHBlYXItaWQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG9wdGltaXplZEFwcGVhckRhdGFBdHRyaWJ1dGUgfSBmcm9tICcuL2RhdGEtaWQubWpzJztcblxuZnVuY3Rpb24gZ2V0T3B0aW1pc2VkQXBwZWFySWQodmlzdWFsRWxlbWVudCkge1xuICAgIHJldHVybiB2aXN1YWxFbGVtZW50LnByb3BzW29wdGltaXplZEFwcGVhckRhdGFBdHRyaWJ1dGVdO1xufVxuXG5leHBvcnQgeyBnZXRPcHRpbWlzZWRBcHBlYXJJZCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LWFwcGVhci1pZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ WithPromise: () => (/* binding */ WithPromise)\n/* harmony export */ });\nclass WithPromise {\n constructor() {\n this.updateFinished();\n }\n get finished() {\n return this._finished;\n }\n updateFinished() {\n this._finished = new Promise((resolve) => {\n this.resolve = resolve;\n });\n }\n notifyFinished() {\n this.resolve();\n }\n /**\n * Allows the animation to be awaited.\n *\n * @deprecated Use `finished` instead.\n */\n then(onResolve, onReject) {\n return this.finished.then(onResolve, onReject);\n }\n}\n\n\n//# sourceMappingURL=WithPromise.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL1dpdGhQcm9taXNlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvV2l0aFByb21pc2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFdpdGhQcm9taXNlIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy51cGRhdGVGaW5pc2hlZCgpO1xuICAgIH1cbiAgICBnZXQgZmluaXNoZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maW5pc2hlZDtcbiAgICB9XG4gICAgdXBkYXRlRmluaXNoZWQoKSB7XG4gICAgICAgIHRoaXMuX2ZpbmlzaGVkID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBub3RpZnlGaW5pc2hlZCgpIHtcbiAgICAgICAgdGhpcy5yZXNvbHZlKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFsbG93cyB0aGUgYW5pbWF0aW9uIHRvIGJlIGF3YWl0ZWQuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgYGZpbmlzaGVkYCBpbnN0ZWFkLlxuICAgICAqL1xuICAgIHRoZW4ob25SZXNvbHZlLCBvblJlamVjdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5pc2hlZC50aGVuKG9uUmVzb2x2ZSwgb25SZWplY3QpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgV2l0aFByb21pc2UgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVdpdGhQcm9taXNlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcChildStagger: () => (/* binding */ calcChildStagger)\n/* harmony export */ });\nfunction calcChildStagger(children, child, delayChildren, staggerChildren = 0, staggerDirection = 1) {\n const index = Array.from(children)\n .sort((a, b) => a.sortNodePosition(b))\n .indexOf(child);\n const numChildren = children.size;\n const maxStaggerDuration = (numChildren - 1) * staggerChildren;\n const delayIsFunction = typeof delayChildren === \"function\";\n return delayIsFunction\n ? delayChildren(index, numChildren)\n : staggerDirection === 1\n ? index * staggerChildren\n : maxStaggerDuration - index * staggerChildren;\n}\n\n\n//# sourceMappingURL=calc-child-stagger.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2NhbGMtY2hpbGQtc3RhZ2dlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2NhbGMtY2hpbGQtc3RhZ2dlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gY2FsY0NoaWxkU3RhZ2dlcihjaGlsZHJlbiwgY2hpbGQsIGRlbGF5Q2hpbGRyZW4sIHN0YWdnZXJDaGlsZHJlbiA9IDAsIHN0YWdnZXJEaXJlY3Rpb24gPSAxKSB7XG4gICAgY29uc3QgaW5kZXggPSBBcnJheS5mcm9tKGNoaWxkcmVuKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5zb3J0Tm9kZVBvc2l0aW9uKGIpKVxuICAgICAgICAuaW5kZXhPZihjaGlsZCk7XG4gICAgY29uc3QgbnVtQ2hpbGRyZW4gPSBjaGlsZHJlbi5zaXplO1xuICAgIGNvbnN0IG1heFN0YWdnZXJEdXJhdGlvbiA9IChudW1DaGlsZHJlbiAtIDEpICogc3RhZ2dlckNoaWxkcmVuO1xuICAgIGNvbnN0IGRlbGF5SXNGdW5jdGlvbiA9IHR5cGVvZiBkZWxheUNoaWxkcmVuID09PSBcImZ1bmN0aW9uXCI7XG4gICAgcmV0dXJuIGRlbGF5SXNGdW5jdGlvblxuICAgICAgICA/IGRlbGF5Q2hpbGRyZW4oaW5kZXgsIG51bUNoaWxkcmVuKVxuICAgICAgICA6IHN0YWdnZXJEaXJlY3Rpb24gPT09IDFcbiAgICAgICAgICAgID8gaW5kZXggKiBzdGFnZ2VyQ2hpbGRyZW5cbiAgICAgICAgICAgIDogbWF4U3RhZ2dlckR1cmF0aW9uIC0gaW5kZXggKiBzdGFnZ2VyQ2hpbGRyZW47XG59XG5cbmV4cG9ydCB7IGNhbGNDaGlsZFN0YWdnZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhbGMtY2hpbGQtc3RhZ2dlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ canAnimate: () => (/* binding */ canAnimate)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../generators/utils/is-generator.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\");\n/* harmony import */ var _is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-animatable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs\");\n\n\n\n\nfunction hasKeyframesChanged(keyframes) {\n const current = keyframes[0];\n if (keyframes.length === 1)\n return true;\n for (let i = 0; i < keyframes.length; i++) {\n if (keyframes[i] !== current)\n return true;\n }\n}\nfunction canAnimate(keyframes, name, type, velocity) {\n /**\n * Check if we're able to animate between the start and end keyframes,\n * and throw a warning if we're attempting to animate between one that's\n * animatable and another that isn't.\n */\n const originKeyframe = keyframes[0];\n if (originKeyframe === null) {\n return false;\n }\n /**\n * These aren't traditionally animatable but we do support them.\n * In future we could look into making this more generic or replacing\n * this function with mix() === mixImmediate\n */\n if (name === \"display\" || name === \"visibility\")\n return true;\n const targetKeyframe = keyframes[keyframes.length - 1];\n const isOriginAnimatable = (0,_is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimatable)(originKeyframe, name);\n const isTargetAnimatable = (0,_is_animatable_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimatable)(targetKeyframe, name);\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warning)(isOriginAnimatable === isTargetAnimatable, `You are trying to animate ${name} from \"${originKeyframe}\" to \"${targetKeyframe}\". \"${isOriginAnimatable ? targetKeyframe : originKeyframe}\" is not an animatable value.`, \"value-not-animatable\");\n // Always skip if any of these are true\n if (!isOriginAnimatable || !isTargetAnimatable) {\n return false;\n }\n return (hasKeyframesChanged(keyframes) ||\n ((type === \"spring\" || (0,_generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_2__.isGenerator)(type)) && velocity));\n}\n\n\n//# sourceMappingURL=can-animate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2Nhbi1hbmltYXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXVDO0FBQzRCO0FBQ2hCOztBQUVuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixzQkFBc0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0IsZ0VBQVk7QUFDM0MsK0JBQStCLGdFQUFZO0FBQzNDLElBQUkscURBQU8seUVBQXlFLE1BQU0sUUFBUSxlQUFlLFFBQVEsZUFBZSxNQUFNLHFEQUFxRDtBQUNuTTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLCtFQUFXO0FBQzFDOztBQUVzQjtBQUN0QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2Nhbi1hbmltYXRlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YXJuaW5nIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGlzR2VuZXJhdG9yIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycy91dGlscy9pcy1nZW5lcmF0b3IubWpzJztcbmltcG9ydCB7IGlzQW5pbWF0YWJsZSB9IGZyb20gJy4vaXMtYW5pbWF0YWJsZS5tanMnO1xuXG5mdW5jdGlvbiBoYXNLZXlmcmFtZXNDaGFuZ2VkKGtleWZyYW1lcykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBrZXlmcmFtZXNbMF07XG4gICAgaWYgKGtleWZyYW1lcy5sZW5ndGggPT09IDEpXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5ZnJhbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChrZXlmcmFtZXNbaV0gIT09IGN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5mdW5jdGlvbiBjYW5BbmltYXRlKGtleWZyYW1lcywgbmFtZSwgdHlwZSwgdmVsb2NpdHkpIHtcbiAgICAvKipcbiAgICAgKiBDaGVjayBpZiB3ZSdyZSBhYmxlIHRvIGFuaW1hdGUgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCBrZXlmcmFtZXMsXG4gICAgICogYW5kIHRocm93IGEgd2FybmluZyBpZiB3ZSdyZSBhdHRlbXB0aW5nIHRvIGFuaW1hdGUgYmV0d2VlbiBvbmUgdGhhdCdzXG4gICAgICogYW5pbWF0YWJsZSBhbmQgYW5vdGhlciB0aGF0IGlzbid0LlxuICAgICAqL1xuICAgIGNvbnN0IG9yaWdpbktleWZyYW1lID0ga2V5ZnJhbWVzWzBdO1xuICAgIGlmIChvcmlnaW5LZXlmcmFtZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFRoZXNlIGFyZW4ndCB0cmFkaXRpb25hbGx5IGFuaW1hdGFibGUgYnV0IHdlIGRvIHN1cHBvcnQgdGhlbS5cbiAgICAgKiBJbiBmdXR1cmUgd2UgY291bGQgbG9vayBpbnRvIG1ha2luZyB0aGlzIG1vcmUgZ2VuZXJpYyBvciByZXBsYWNpbmdcbiAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpdGggbWl4KCkgPT09IG1peEltbWVkaWF0ZVxuICAgICAqL1xuICAgIGlmIChuYW1lID09PSBcImRpc3BsYXlcIiB8fCBuYW1lID09PSBcInZpc2liaWxpdHlcIilcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgY29uc3QgdGFyZ2V0S2V5ZnJhbWUgPSBrZXlmcmFtZXNba2V5ZnJhbWVzLmxlbmd0aCAtIDFdO1xuICAgIGNvbnN0IGlzT3JpZ2luQW5pbWF0YWJsZSA9IGlzQW5pbWF0YWJsZShvcmlnaW5LZXlmcmFtZSwgbmFtZSk7XG4gICAgY29uc3QgaXNUYXJnZXRBbmltYXRhYmxlID0gaXNBbmltYXRhYmxlKHRhcmdldEtleWZyYW1lLCBuYW1lKTtcbiAgICB3YXJuaW5nKGlzT3JpZ2luQW5pbWF0YWJsZSA9PT0gaXNUYXJnZXRBbmltYXRhYmxlLCBgWW91IGFyZSB0cnlpbmcgdG8gYW5pbWF0ZSAke25hbWV9IGZyb20gXCIke29yaWdpbktleWZyYW1lfVwiIHRvIFwiJHt0YXJnZXRLZXlmcmFtZX1cIi4gXCIke2lzT3JpZ2luQW5pbWF0YWJsZSA/IHRhcmdldEtleWZyYW1lIDogb3JpZ2luS2V5ZnJhbWV9XCIgaXMgbm90IGFuIGFuaW1hdGFibGUgdmFsdWUuYCwgXCJ2YWx1ZS1ub3QtYW5pbWF0YWJsZVwiKTtcbiAgICAvLyBBbHdheXMgc2tpcCBpZiBhbnkgb2YgdGhlc2UgYXJlIHRydWVcbiAgICBpZiAoIWlzT3JpZ2luQW5pbWF0YWJsZSB8fCAhaXNUYXJnZXRBbmltYXRhYmxlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIChoYXNLZXlmcmFtZXNDaGFuZ2VkKGtleWZyYW1lcykgfHxcbiAgICAgICAgKCh0eXBlID09PSBcInNwcmluZ1wiIHx8IGlzR2VuZXJhdG9yKHR5cGUpKSAmJiB2ZWxvY2l0eSkpO1xufVxuXG5leHBvcnQgeyBjYW5BbmltYXRlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jYW4tYW5pbWF0ZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getVariableValue: () => (/* binding */ getVariableValue),\n/* harmony export */ parseCSSVariable: () => (/* binding */ parseCSSVariable)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\");\n/* harmony import */ var _is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n\n\n\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nconst splitCSSVariableRegex = \n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive, as it can match a lot of words\n/^var\\(--(?:([\\w-]+)|([\\w-]+), ?([a-zA-Z\\d ()%#.,-]+))\\)/u;\nfunction parseCSSVariable(current) {\n const match = splitCSSVariableRegex.exec(current);\n if (!match)\n return [,];\n const [, token1, token2, fallback] = match;\n return [`--${token1 ?? token2}`, fallback];\n}\nconst maxDepth = 4;\nfunction getVariableValue(current, element, depth = 1) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.invariant)(depth <= maxDepth, `Max CSS variable fallback depth detected in property \"${current}\". This may indicate a circular fallback dependency.`, \"max-css-var-depth\");\n const [token, fallback] = parseCSSVariable(current);\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n const resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n const trimmed = resolved.trim();\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.isNumericalString)(trimmed) ? parseFloat(trimmed) : trimmed;\n }\n return (0,_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__.isCSSVariableToken)(fallback)\n ? getVariableValue(fallback, element, depth + 1)\n : fallback;\n}\n\n\n//# sourceMappingURL=css-variables-conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2Nzcy12YXJpYWJsZXMtY29udmVyc2lvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBNEQ7QUFDRDs7QUFFM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixpQkFBaUI7QUFDbEM7QUFDQTtBQUNBO0FBQ0EsSUFBSSx1REFBUyw2RUFBNkUsUUFBUTtBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSwrREFBaUI7QUFDaEM7QUFDQSxXQUFXLHdFQUFrQjtBQUM3QjtBQUNBO0FBQ0E7O0FBRThDO0FBQzlDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvY3NzLXZhcmlhYmxlcy1jb252ZXJzaW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnZhcmlhbnQsIGlzTnVtZXJpY2FsU3RyaW5nIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGlzQ1NTVmFyaWFibGVUb2tlbiB9IGZyb20gJy4vaXMtY3NzLXZhcmlhYmxlLm1qcyc7XG5cbi8qKlxuICogUGFyc2UgRnJhbWVyJ3Mgc3BlY2lhbCBDU1MgdmFyaWFibGUgZm9ybWF0IGludG8gYSBDU1MgdG9rZW4gYW5kIGEgZmFsbGJhY2suXG4gKlxuICogYGBgXG4gKiBgdmFyKC0tZm9vLCAjZmZmKWAgPT4gW2AtLWZvb2AsICcjZmZmJ11cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBjdXJyZW50XG4gKi9cbmNvbnN0IHNwbGl0Q1NTVmFyaWFibGVSZWdleCA9IFxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlZG9zLWRldGVjdG9yL25vLXVuc2FmZS1yZWdleCAtLSBmYWxzZSBwb3NpdGl2ZSwgYXMgaXQgY2FuIG1hdGNoIGEgbG90IG9mIHdvcmRzXG4vXnZhclxcKC0tKD86KFtcXHctXSspfChbXFx3LV0rKSwgPyhbYS16QS1aXFxkICgpJSMuLC1dKykpXFwpL3U7XG5mdW5jdGlvbiBwYXJzZUNTU1ZhcmlhYmxlKGN1cnJlbnQpIHtcbiAgICBjb25zdCBtYXRjaCA9IHNwbGl0Q1NTVmFyaWFibGVSZWdleC5leGVjKGN1cnJlbnQpO1xuICAgIGlmICghbWF0Y2gpXG4gICAgICAgIHJldHVybiBbLF07XG4gICAgY29uc3QgWywgdG9rZW4xLCB0b2tlbjIsIGZhbGxiYWNrXSA9IG1hdGNoO1xuICAgIHJldHVybiBbYC0tJHt0b2tlbjEgPz8gdG9rZW4yfWAsIGZhbGxiYWNrXTtcbn1cbmNvbnN0IG1heERlcHRoID0gNDtcbmZ1bmN0aW9uIGdldFZhcmlhYmxlVmFsdWUoY3VycmVudCwgZWxlbWVudCwgZGVwdGggPSAxKSB7XG4gICAgaW52YXJpYW50KGRlcHRoIDw9IG1heERlcHRoLCBgTWF4IENTUyB2YXJpYWJsZSBmYWxsYmFjayBkZXB0aCBkZXRlY3RlZCBpbiBwcm9wZXJ0eSBcIiR7Y3VycmVudH1cIi4gVGhpcyBtYXkgaW5kaWNhdGUgYSBjaXJjdWxhciBmYWxsYmFjayBkZXBlbmRlbmN5LmAsIFwibWF4LWNzcy12YXItZGVwdGhcIik7XG4gICAgY29uc3QgW3Rva2VuLCBmYWxsYmFja10gPSBwYXJzZUNTU1ZhcmlhYmxlKGN1cnJlbnQpO1xuICAgIC8vIE5vIENTUyB2YXJpYWJsZSBkZXRlY3RlZFxuICAgIGlmICghdG9rZW4pXG4gICAgICAgIHJldHVybjtcbiAgICAvLyBBdHRlbXB0IHRvIHJlYWQgdGhpcyBDU1MgdmFyaWFibGUgb2ZmIHRoZSBlbGVtZW50XG4gICAgY29uc3QgcmVzb2x2ZWQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKHRva2VuKTtcbiAgICBpZiAocmVzb2x2ZWQpIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHJlc29sdmVkLnRyaW0oKTtcbiAgICAgICAgcmV0dXJuIGlzTnVtZXJpY2FsU3RyaW5nKHRyaW1tZWQpID8gcGFyc2VGbG9hdCh0cmltbWVkKSA6IHRyaW1tZWQ7XG4gICAgfVxuICAgIHJldHVybiBpc0NTU1ZhcmlhYmxlVG9rZW4oZmFsbGJhY2spXG4gICAgICAgID8gZ2V0VmFyaWFibGVWYWx1ZShmYWxsYmFjaywgZWxlbWVudCwgZGVwdGggKyAxKVxuICAgICAgICA6IGZhbGxiYWNrO1xufVxuXG5leHBvcnQgeyBnZXRWYXJpYWJsZVZhbHVlLCBwYXJzZUNTU1ZhcmlhYmxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jc3MtdmFyaWFibGVzLWNvbnZlcnNpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getDefaultTransition: () => (/* binding */ getDefaultTransition)\n/* harmony export */ });\n/* harmony import */ var _render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../render/utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n\n\nconst underDampedSpring = {\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n};\nconst criticallyDampedSpring = (target) => ({\n type: \"spring\",\n stiffness: 550,\n damping: target === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n});\nconst keyframesTransition = {\n type: \"keyframes\",\n duration: 0.8,\n};\n/**\n * Default easing curve is a slightly shallower version of\n * the default browser easing curve.\n */\nconst ease = {\n type: \"keyframes\",\n ease: [0.25, 0.1, 0.35, 1],\n duration: 0.3,\n};\nconst getDefaultTransition = (valueKey, { keyframes }) => {\n if (keyframes.length > 2) {\n return keyframesTransition;\n }\n else if (_render_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformProps.has(valueKey)) {\n return valueKey.startsWith(\"scale\")\n ? criticallyDampedSpring(keyframes[1])\n : underDampedSpring;\n }\n return ease;\n};\n\n\n//# sourceMappingURL=default-transitions.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2RlZmF1bHQtdHJhbnNpdGlvbnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXVFOztBQUV2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLFdBQVc7QUFDckQ7QUFDQTtBQUNBO0FBQ0EsYUFBYSw0RUFBYztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWdDO0FBQ2hDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvZGVmYXVsdC10cmFuc2l0aW9ucy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJhbnNmb3JtUHJvcHMgfSBmcm9tICcuLi8uLi9yZW5kZXIvdXRpbHMva2V5cy10cmFuc2Zvcm0ubWpzJztcblxuY29uc3QgdW5kZXJEYW1wZWRTcHJpbmcgPSB7XG4gICAgdHlwZTogXCJzcHJpbmdcIixcbiAgICBzdGlmZm5lc3M6IDUwMCxcbiAgICBkYW1waW5nOiAyNSxcbiAgICByZXN0U3BlZWQ6IDEwLFxufTtcbmNvbnN0IGNyaXRpY2FsbHlEYW1wZWRTcHJpbmcgPSAodGFyZ2V0KSA9PiAoe1xuICAgIHR5cGU6IFwic3ByaW5nXCIsXG4gICAgc3RpZmZuZXNzOiA1NTAsXG4gICAgZGFtcGluZzogdGFyZ2V0ID09PSAwID8gMiAqIE1hdGguc3FydCg1NTApIDogMzAsXG4gICAgcmVzdFNwZWVkOiAxMCxcbn0pO1xuY29uc3Qga2V5ZnJhbWVzVHJhbnNpdGlvbiA9IHtcbiAgICB0eXBlOiBcImtleWZyYW1lc1wiLFxuICAgIGR1cmF0aW9uOiAwLjgsXG59O1xuLyoqXG4gKiBEZWZhdWx0IGVhc2luZyBjdXJ2ZSBpcyBhIHNsaWdodGx5IHNoYWxsb3dlciB2ZXJzaW9uIG9mXG4gKiB0aGUgZGVmYXVsdCBicm93c2VyIGVhc2luZyBjdXJ2ZS5cbiAqL1xuY29uc3QgZWFzZSA9IHtcbiAgICB0eXBlOiBcImtleWZyYW1lc1wiLFxuICAgIGVhc2U6IFswLjI1LCAwLjEsIDAuMzUsIDFdLFxuICAgIGR1cmF0aW9uOiAwLjMsXG59O1xuY29uc3QgZ2V0RGVmYXVsdFRyYW5zaXRpb24gPSAodmFsdWVLZXksIHsga2V5ZnJhbWVzIH0pID0+IHtcbiAgICBpZiAoa2V5ZnJhbWVzLmxlbmd0aCA+IDIpIHtcbiAgICAgICAgcmV0dXJuIGtleWZyYW1lc1RyYW5zaXRpb247XG4gICAgfVxuICAgIGVsc2UgaWYgKHRyYW5zZm9ybVByb3BzLmhhcyh2YWx1ZUtleSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlS2V5LnN0YXJ0c1dpdGgoXCJzY2FsZVwiKVxuICAgICAgICAgICAgPyBjcml0aWNhbGx5RGFtcGVkU3ByaW5nKGtleWZyYW1lc1sxXSlcbiAgICAgICAgICAgIDogdW5kZXJEYW1wZWRTcHJpbmc7XG4gICAgfVxuICAgIHJldHVybiBlYXNlO1xufTtcblxuZXhwb3J0IHsgZ2V0RGVmYXVsdFRyYW5zaXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRlZmF1bHQtdHJhbnNpdGlvbnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getFinalKeyframe: () => (/* binding */ getFinalKeyframe)\n/* harmony export */ });\nconst isNotNull = (value) => value !== null;\nfunction getFinalKeyframe(keyframes, { repeat, repeatType = \"loop\" }, finalKeyframe) {\n const resolvedKeyframes = keyframes.filter(isNotNull);\n const index = repeat && repeatType !== \"loop\" && repeat % 2 === 1\n ? 0\n : resolvedKeyframes.length - 1;\n return !index || finalKeyframe === undefined\n ? resolvedKeyframes[index]\n : finalKeyframe;\n}\n\n\n//# sourceMappingURL=get-final-keyframe.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2dldC1maW5hbC1rZXlmcmFtZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0EsdUNBQXVDLDZCQUE2QjtBQUNwRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2dldC1maW5hbC1rZXlmcmFtZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNOb3ROdWxsID0gKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbnVsbDtcbmZ1bmN0aW9uIGdldEZpbmFsS2V5ZnJhbWUoa2V5ZnJhbWVzLCB7IHJlcGVhdCwgcmVwZWF0VHlwZSA9IFwibG9vcFwiIH0sIGZpbmFsS2V5ZnJhbWUpIHtcbiAgICBjb25zdCByZXNvbHZlZEtleWZyYW1lcyA9IGtleWZyYW1lcy5maWx0ZXIoaXNOb3ROdWxsKTtcbiAgICBjb25zdCBpbmRleCA9IHJlcGVhdCAmJiByZXBlYXRUeXBlICE9PSBcImxvb3BcIiAmJiByZXBlYXQgJSAyID09PSAxXG4gICAgICAgID8gMFxuICAgICAgICA6IHJlc29sdmVkS2V5ZnJhbWVzLmxlbmd0aCAtIDE7XG4gICAgcmV0dXJuICFpbmRleCB8fCBmaW5hbEtleWZyYW1lID09PSB1bmRlZmluZWRcbiAgICAgICAgPyByZXNvbHZlZEtleWZyYW1lc1tpbmRleF1cbiAgICAgICAgOiBmaW5hbEtleWZyYW1lO1xufVxuXG5leHBvcnQgeyBnZXRGaW5hbEtleWZyYW1lIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtZmluYWwta2V5ZnJhbWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getValueTransition: () => (/* binding */ getValueTransition)\n/* harmony export */ });\n/* harmony import */ var _resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resolve-transition.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs\");\n\n\nfunction getValueTransition(transition, key) {\n const valueTransition = transition?.[key] ??\n transition?.[\"default\"] ??\n transition;\n if (valueTransition !== transition) {\n return (0,_resolve_transition_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveTransition)(valueTransition, transition);\n }\n return valueTransition;\n}\n\n\n//# sourceMappingURL=get-value-transition.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2dldC12YWx1ZS10cmFuc2l0aW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2RDs7QUFFN0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsMEVBQWlCO0FBQ2hDO0FBQ0E7QUFDQTs7QUFFOEI7QUFDOUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9nZXQtdmFsdWUtdHJhbnNpdGlvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZVRyYW5zaXRpb24gfSBmcm9tICcuL3Jlc29sdmUtdHJhbnNpdGlvbi5tanMnO1xuXG5mdW5jdGlvbiBnZXRWYWx1ZVRyYW5zaXRpb24odHJhbnNpdGlvbiwga2V5KSB7XG4gICAgY29uc3QgdmFsdWVUcmFuc2l0aW9uID0gdHJhbnNpdGlvbj8uW2tleV0gPz9cbiAgICAgICAgdHJhbnNpdGlvbj8uW1wiZGVmYXVsdFwiXSA/P1xuICAgICAgICB0cmFuc2l0aW9uO1xuICAgIGlmICh2YWx1ZVRyYW5zaXRpb24gIT09IHRyYW5zaXRpb24pIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmVUcmFuc2l0aW9uKHZhbHVlVHJhbnNpdGlvbiwgdHJhbnNpdGlvbik7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZVRyYW5zaXRpb247XG59XG5cbmV4cG9ydCB7IGdldFZhbHVlVHJhbnNpdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LXZhbHVlLXRyYW5zaXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAnimatable: () => (/* binding */ isAnimatable)\n/* harmony export */ });\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nconst isAnimatable = (value, name) => {\n // If the list of keys that might be non-animatable grows, replace with Set\n if (name === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n (_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.test(value) || value === \"0\") && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\n\n//# sourceMappingURL=is-animatable.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWFuaW1hdGFibGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQThEOztBQUU5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVMsbUVBQU87QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV3QjtBQUN4QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWFuaW1hdGFibGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBsZXggfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9jb21wbGV4L2luZGV4Lm1qcyc7XG5cbi8qKlxuICogQ2hlY2sgaWYgYSB2YWx1ZSBpcyBhbmltYXRhYmxlLiBFeGFtcGxlczpcbiAqXG4gKiDinIU6IDEwMCwgXCIxMDBweFwiLCBcIiNmZmZcIlxuICog4p2MOiBcImJsb2NrXCIsIFwidXJsKDIuanBnKVwiXG4gKiBAcGFyYW0gdmFsdWVcbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuY29uc3QgaXNBbmltYXRhYmxlID0gKHZhbHVlLCBuYW1lKSA9PiB7XG4gICAgLy8gSWYgdGhlIGxpc3Qgb2Yga2V5cyB0aGF0IG1pZ2h0IGJlIG5vbi1hbmltYXRhYmxlIGdyb3dzLCByZXBsYWNlIHdpdGggU2V0XG4gICAgaWYgKG5hbWUgPT09IFwiekluZGV4XCIpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyBJZiBpdCdzIGEgbnVtYmVyIG9yIGEga2V5ZnJhbWVzIGFycmF5LCB3ZSBjYW4gYW5pbWF0ZSBpdC4gV2UgbWlnaHQgYXQgc29tZSBwb2ludFxuICAgIC8vIG5lZWQgdG8gZG8gYSBkZWVwIGlzQW5pbWF0YWJsZSBjaGVjayBvZiBrZXlmcmFtZXMsIG9yIGxldCBQb3Btb3Rpb24gaGFuZGxlIHRoaXMsXG4gICAgLy8gYnV0IGZvciBub3cgbGV0cyBsZWF2ZSBpdCBsaWtlIHRoaXMgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnNcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiIHx8IEFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIC8vIEl0J3MgYW5pbWF0YWJsZSBpZiB3ZSBoYXZlIGEgc3RyaW5nXG4gICAgICAgIChjb21wbGV4LnRlc3QodmFsdWUpIHx8IHZhbHVlID09PSBcIjBcIikgJiYgLy8gQW5kIGl0IGNvbnRhaW5zIG51bWJlcnMgYW5kL29yIGNvbG9yc1xuICAgICAgICAhdmFsdWUuc3RhcnRzV2l0aChcInVybChcIikgLy8gVW5sZXNzIGl0IHN0YXJ0cyB3aXRoIFwidXJsKFwiXG4gICAgKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59O1xuXG5leHBvcnQgeyBpc0FuaW1hdGFibGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWFuaW1hdGFibGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ containsCSSVariable: () => (/* binding */ containsCSSVariable),\n/* harmony export */ isCSSVariableName: () => (/* binding */ isCSSVariableName),\n/* harmony export */ isCSSVariableToken: () => (/* binding */ isCSSVariableToken)\n/* harmony export */ });\nconst checkStringStartsWith = (token) => (key) => typeof key === \"string\" && key.startsWith(token);\nconst isCSSVariableName = \n/*@__PURE__*/ checkStringStartsWith(\"--\");\nconst startsAsVariableToken = \n/*@__PURE__*/ checkStringStartsWith(\"var(--\");\nconst isCSSVariableToken = (value) => {\n const startsWithToken = startsAsVariableToken(value);\n if (!startsWithToken)\n return false;\n // Ensure any comments are stripped from the value as this can harm performance of the regex.\n return singleCssVariableRegex.test(value.split(\"/*\")[0].trim());\n};\nconst singleCssVariableRegex = /var\\(--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)$/iu;\n/**\n * Check if a value contains a CSS variable anywhere (e.g. inside calc()).\n * Unlike isCSSVariableToken which checks if the value IS a var() token,\n * this checks if the value CONTAINS var() somewhere in the string.\n */\nfunction containsCSSVariable(value) {\n if (typeof value !== \"string\")\n return false;\n // Strip comments to avoid false positives\n return value.split(\"/*\")[0].includes(\"var(--\");\n}\n\n\n//# sourceMappingURL=is-css-variable.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWNzcy12YXJpYWJsZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzRTtBQUN0RSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLWNzcy12YXJpYWJsZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY2hlY2tTdHJpbmdTdGFydHNXaXRoID0gKHRva2VuKSA9PiAoa2V5KSA9PiB0eXBlb2Yga2V5ID09PSBcInN0cmluZ1wiICYmIGtleS5zdGFydHNXaXRoKHRva2VuKTtcbmNvbnN0IGlzQ1NTVmFyaWFibGVOYW1lID0gXG4vKkBfX1BVUkVfXyovIGNoZWNrU3RyaW5nU3RhcnRzV2l0aChcIi0tXCIpO1xuY29uc3Qgc3RhcnRzQXNWYXJpYWJsZVRva2VuID0gXG4vKkBfX1BVUkVfXyovIGNoZWNrU3RyaW5nU3RhcnRzV2l0aChcInZhcigtLVwiKTtcbmNvbnN0IGlzQ1NTVmFyaWFibGVUb2tlbiA9ICh2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IHN0YXJ0c1dpdGhUb2tlbiA9IHN0YXJ0c0FzVmFyaWFibGVUb2tlbih2YWx1ZSk7XG4gICAgaWYgKCFzdGFydHNXaXRoVG9rZW4pXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyBFbnN1cmUgYW55IGNvbW1lbnRzIGFyZSBzdHJpcHBlZCBmcm9tIHRoZSB2YWx1ZSBhcyB0aGlzIGNhbiBoYXJtIHBlcmZvcm1hbmNlIG9mIHRoZSByZWdleC5cbiAgICByZXR1cm4gc2luZ2xlQ3NzVmFyaWFibGVSZWdleC50ZXN0KHZhbHVlLnNwbGl0KFwiLypcIilbMF0udHJpbSgpKTtcbn07XG5jb25zdCBzaW5nbGVDc3NWYXJpYWJsZVJlZ2V4ID0gL3ZhclxcKC0tKD86W1xcdy1dK1xccyp8W1xcdy1dK1xccyosKD86XFxzKlteKShcXHNdfFxccypcXCgoPzpbXikoXXxcXChbXikoXSpcXCkpKlxcKSkrXFxzKilcXCkkL2l1O1xuLyoqXG4gKiBDaGVjayBpZiBhIHZhbHVlIGNvbnRhaW5zIGEgQ1NTIHZhcmlhYmxlIGFueXdoZXJlIChlLmcuIGluc2lkZSBjYWxjKCkpLlxuICogVW5saWtlIGlzQ1NTVmFyaWFibGVUb2tlbiB3aGljaCBjaGVja3MgaWYgdGhlIHZhbHVlIElTIGEgdmFyKCkgdG9rZW4sXG4gKiB0aGlzIGNoZWNrcyBpZiB0aGUgdmFsdWUgQ09OVEFJTlMgdmFyKCkgc29tZXdoZXJlIGluIHRoZSBzdHJpbmcuXG4gKi9cbmZ1bmN0aW9uIGNvbnRhaW5zQ1NTVmFyaWFibGUodmFsdWUpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gU3RyaXAgY29tbWVudHMgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzXG4gICAgcmV0dXJuIHZhbHVlLnNwbGl0KFwiLypcIilbMF0uaW5jbHVkZXMoXCJ2YXIoLS1cIik7XG59XG5cbmV4cG9ydCB7IGNvbnRhaW5zQ1NTVmFyaWFibGUsIGlzQ1NTVmFyaWFibGVOYW1lLCBpc0NTU1ZhcmlhYmxlVG9rZW4gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWNzcy12YXJpYWJsZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isTransitionDefined: () => (/* binding */ isTransitionDefined)\n/* harmony export */ });\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined({ when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed, ...transition }) {\n return !!Object.keys(transition).length;\n}\n\n\n//# sourceMappingURL=is-transition-defined.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL2lzLXRyYW5zaXRpb24tZGVmaW5lZC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0Isc0lBQXNJO0FBQ3JLO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9hbmltYXRpb24vdXRpbHMvaXMtdHJhbnNpdGlvbi1kZWZpbmVkLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlY2lkZSB3aGV0aGVyIGEgdHJhbnNpdGlvbiBpcyBkZWZpbmVkIG9uIGEgZ2l2ZW4gVHJhbnNpdGlvbi5cbiAqIFRoaXMgZmlsdGVycyBvdXQgb3JjaGVzdHJhdGlvbiBvcHRpb25zIGFuZCByZXR1cm5zIHRydWVcbiAqIGlmIGFueSBvcHRpb25zIGFyZSBsZWZ0LlxuICovXG5mdW5jdGlvbiBpc1RyYW5zaXRpb25EZWZpbmVkKHsgd2hlbiwgZGVsYXk6IF9kZWxheSwgZGVsYXlDaGlsZHJlbiwgc3RhZ2dlckNoaWxkcmVuLCBzdGFnZ2VyRGlyZWN0aW9uLCByZXBlYXQsIHJlcGVhdFR5cGUsIHJlcGVhdERlbGF5LCBmcm9tLCBlbGFwc2VkLCAuLi50cmFuc2l0aW9uIH0pIHtcbiAgICByZXR1cm4gISFPYmplY3Qua2V5cyh0cmFuc2l0aW9uKS5sZW5ndGg7XG59XG5cbmV4cG9ydCB7IGlzVHJhbnNpdGlvbkRlZmluZWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXRyYW5zaXRpb24tZGVmaW5lZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ makeAnimationInstant: () => (/* binding */ makeAnimationInstant)\n/* harmony export */ });\nfunction makeAnimationInstant(options) {\n options.duration = 0;\n options.type = \"keyframes\";\n}\n\n\n//# sourceMappingURL=make-animation-instant.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL21ha2UtYW5pbWF0aW9uLWluc3RhbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9tYWtlLWFuaW1hdGlvbi1pbnN0YW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBtYWtlQW5pbWF0aW9uSW5zdGFudChvcHRpb25zKSB7XG4gICAgb3B0aW9ucy5kdXJhdGlvbiA9IDA7XG4gICAgb3B0aW9ucy50eXBlID0gXCJrZXlmcmFtZXNcIjtcbn1cblxuZXhwb3J0IHsgbWFrZUFuaW1hdGlvbkluc3RhbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1ha2UtYW5pbWF0aW9uLWluc3RhbnQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs": +/*!*************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs ***! + \*************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ replaceTransitionType: () => (/* binding */ replaceTransitionType)\n/* harmony export */ });\n/* harmony import */ var _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../generators/inertia.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/inertia.mjs\");\n/* harmony import */ var _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../generators/keyframes.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs\");\n/* harmony import */ var _generators_spring_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../generators/spring/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs\");\n\n\n\n\nconst transitionTypeMap = {\n decay: _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__.inertia,\n inertia: _generators_inertia_mjs__WEBPACK_IMPORTED_MODULE_0__.inertia,\n tween: _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__.keyframes,\n keyframes: _generators_keyframes_mjs__WEBPACK_IMPORTED_MODULE_1__.keyframes,\n spring: _generators_spring_index_mjs__WEBPACK_IMPORTED_MODULE_2__.spring,\n};\nfunction replaceTransitionType(transition) {\n if (typeof transition.type === \"string\") {\n transition.type = transitionTypeMap[transition.type];\n }\n}\n\n\n//# sourceMappingURL=replace-transition-type.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL3JlcGxhY2UtdHJhbnNpdGlvbi10eXBlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQW9EO0FBQ0k7QUFDQTs7QUFFeEQ7QUFDQSxXQUFXLDREQUFPO0FBQ2xCLFdBQVc7QUFDWCxXQUFXLGdFQUFTO0FBQ3BCLGVBQWUsZ0VBQVM7QUFDeEIsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi91dGlscy9yZXBsYWNlLXRyYW5zaXRpb24tdHlwZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5lcnRpYSB9IGZyb20gJy4uL2dlbmVyYXRvcnMvaW5lcnRpYS5tanMnO1xuaW1wb3J0IHsga2V5ZnJhbWVzIH0gZnJvbSAnLi4vZ2VuZXJhdG9ycy9rZXlmcmFtZXMubWpzJztcbmltcG9ydCB7IHNwcmluZyB9IGZyb20gJy4uL2dlbmVyYXRvcnMvc3ByaW5nL2luZGV4Lm1qcyc7XG5cbmNvbnN0IHRyYW5zaXRpb25UeXBlTWFwID0ge1xuICAgIGRlY2F5OiBpbmVydGlhLFxuICAgIGluZXJ0aWEsXG4gICAgdHdlZW46IGtleWZyYW1lcyxcbiAgICBrZXlmcmFtZXM6IGtleWZyYW1lcyxcbiAgICBzcHJpbmcsXG59O1xuZnVuY3Rpb24gcmVwbGFjZVRyYW5zaXRpb25UeXBlKHRyYW5zaXRpb24pIHtcbiAgICBpZiAodHlwZW9mIHRyYW5zaXRpb24udHlwZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICB0cmFuc2l0aW9uLnR5cGUgPSB0cmFuc2l0aW9uVHlwZU1hcFt0cmFuc2l0aW9uLnR5cGVdO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgcmVwbGFjZVRyYW5zaXRpb25UeXBlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXBsYWNlLXRyYW5zaXRpb24tdHlwZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveTransition: () => (/* binding */ resolveTransition)\n/* harmony export */ });\n/**\n * If `transition` has `inherit: true`, shallow-merge it with\n * `parentTransition` (child keys win) and strip the `inherit` key.\n * Otherwise return `transition` unchanged.\n */\nfunction resolveTransition(transition, parentTransition) {\n if (transition?.inherit && parentTransition) {\n const { inherit: _, ...rest } = transition;\n return { ...parentTransition, ...rest };\n }\n return transition;\n}\n\n\n//# sourceMappingURL=resolve-transition.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL3Jlc29sdmUtdHJhbnNpdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHNCQUFzQjtBQUN0QyxpQkFBaUI7QUFDakI7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3V0aWxzL3Jlc29sdmUtdHJhbnNpdGlvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJZiBgdHJhbnNpdGlvbmAgaGFzIGBpbmhlcml0OiB0cnVlYCwgc2hhbGxvdy1tZXJnZSBpdCB3aXRoXG4gKiBgcGFyZW50VHJhbnNpdGlvbmAgKGNoaWxkIGtleXMgd2luKSBhbmQgc3RyaXAgdGhlIGBpbmhlcml0YCBrZXkuXG4gKiBPdGhlcndpc2UgcmV0dXJuIGB0cmFuc2l0aW9uYCB1bmNoYW5nZWQuXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVUcmFuc2l0aW9uKHRyYW5zaXRpb24sIHBhcmVudFRyYW5zaXRpb24pIHtcbiAgICBpZiAodHJhbnNpdGlvbj8uaW5oZXJpdCAmJiBwYXJlbnRUcmFuc2l0aW9uKSB7XG4gICAgICAgIGNvbnN0IHsgaW5oZXJpdDogXywgLi4ucmVzdCB9ID0gdHJhbnNpdGlvbjtcbiAgICAgICAgcmV0dXJuIHsgLi4ucGFyZW50VHJhbnNpdGlvbiwgLi4ucmVzdCB9O1xuICAgIH1cbiAgICByZXR1cm4gdHJhbnNpdGlvbjtcbn1cblxuZXhwb3J0IHsgcmVzb2x2ZVRyYW5zaXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtdHJhbnNpdGlvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cubicBezierAsString: () => (/* binding */ cubicBezierAsString)\n/* harmony export */ });\nconst cubicBezierAsString = ([a, b, c, d]) => `cubic-bezier(${a}, ${b}, ${c}, ${d})`;\n\n\n//# sourceMappingURL=cubic-bezier.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9jdWJpYy1iZXppZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSw4REFBOEQsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTs7QUFFbkQ7QUFDL0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9lYXNpbmcvY3ViaWMtYmV6aWVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjdWJpY0JlemllckFzU3RyaW5nID0gKFthLCBiLCBjLCBkXSkgPT4gYGN1YmljLWJlemllcigke2F9LCAke2J9LCAke2N9LCAke2R9KWA7XG5cbmV4cG9ydCB7IGN1YmljQmV6aWVyQXNTdHJpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWN1YmljLWJlemllci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mapEasingToNativeEasing: () => (/* binding */ mapEasingToNativeEasing)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\");\n/* harmony import */ var _utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../utils/supports/linear-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\");\n/* harmony import */ var _utils_linear_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/linear.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\");\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\");\n/* harmony import */ var _supported_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./supported.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs\");\n\n\n\n\n\n\nfunction mapEasingToNativeEasing(easing, duration) {\n if (!easing) {\n return undefined;\n }\n else if (typeof easing === \"function\") {\n return (0,_utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_0__.supportsLinearEasing)()\n ? (0,_utils_linear_mjs__WEBPACK_IMPORTED_MODULE_1__.generateLinearEasing)(easing, duration)\n : \"ease-out\";\n }\n else if ((0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.isBezierDefinition)(easing)) {\n return (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_3__.cubicBezierAsString)(easing);\n }\n else if (Array.isArray(easing)) {\n return easing.map((segmentEasing) => mapEasingToNativeEasing(segmentEasing, duration) ||\n _supported_mjs__WEBPACK_IMPORTED_MODULE_4__.supportedWaapiEasing.easeOut);\n }\n else {\n return _supported_mjs__WEBPACK_IMPORTED_MODULE_4__.supportedWaapiEasing[easing];\n }\n}\n\n\n//# sourceMappingURL=map-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9tYXAtZWFzaW5nLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBa0Q7QUFDK0I7QUFDdEI7QUFDRjtBQUNGOztBQUV2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSx1RkFBb0I7QUFDbkMsY0FBYyx1RUFBb0I7QUFDbEM7QUFDQTtBQUNBLGFBQWEsZ0VBQWtCO0FBQy9CLGVBQWUsc0VBQW1CO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLFlBQVksZ0VBQW9CO0FBQ2hDO0FBQ0E7QUFDQSxlQUFlLGdFQUFvQjtBQUNuQztBQUNBOztBQUVtQztBQUNuQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9tYXAtZWFzaW5nLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0JlemllckRlZmluaXRpb24gfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgc3VwcG9ydHNMaW5lYXJFYXNpbmcgfSBmcm9tICcuLi8uLi8uLi91dGlscy9zdXBwb3J0cy9saW5lYXItZWFzaW5nLm1qcyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUxpbmVhckVhc2luZyB9IGZyb20gJy4uL3V0aWxzL2xpbmVhci5tanMnO1xuaW1wb3J0IHsgY3ViaWNCZXppZXJBc1N0cmluZyB9IGZyb20gJy4vY3ViaWMtYmV6aWVyLm1qcyc7XG5pbXBvcnQgeyBzdXBwb3J0ZWRXYWFwaUVhc2luZyB9IGZyb20gJy4vc3VwcG9ydGVkLm1qcyc7XG5cbmZ1bmN0aW9uIG1hcEVhc2luZ1RvTmF0aXZlRWFzaW5nKGVhc2luZywgZHVyYXRpb24pIHtcbiAgICBpZiAoIWVhc2luZykge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZWFzaW5nID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIHN1cHBvcnRzTGluZWFyRWFzaW5nKClcbiAgICAgICAgICAgID8gZ2VuZXJhdGVMaW5lYXJFYXNpbmcoZWFzaW5nLCBkdXJhdGlvbilcbiAgICAgICAgICAgIDogXCJlYXNlLW91dFwiO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc0JlemllckRlZmluaXRpb24oZWFzaW5nKSkge1xuICAgICAgICByZXR1cm4gY3ViaWNCZXppZXJBc1N0cmluZyhlYXNpbmcpO1xuICAgIH1cbiAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KGVhc2luZykpIHtcbiAgICAgICAgcmV0dXJuIGVhc2luZy5tYXAoKHNlZ21lbnRFYXNpbmcpID0+IG1hcEVhc2luZ1RvTmF0aXZlRWFzaW5nKHNlZ21lbnRFYXNpbmcsIGR1cmF0aW9uKSB8fFxuICAgICAgICAgICAgc3VwcG9ydGVkV2FhcGlFYXNpbmcuZWFzZU91dCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gc3VwcG9ydGVkV2FhcGlFYXNpbmdbZWFzaW5nXTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IG1hcEVhc2luZ1RvTmF0aXZlRWFzaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYXAtZWFzaW5nLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportedWaapiEasing: () => (/* binding */ supportedWaapiEasing)\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs\");\n\n\nconst supportedWaapiEasing = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n circIn: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0, 0.65, 0.55, 1]),\n circOut: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.55, 0, 1, 0.45]),\n backIn: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.31, 0.01, 0.66, -0.59]),\n backOut: /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezierAsString)([0.33, 1.53, 0.69, 0.99]),\n};\n\n\n//# sourceMappingURL=supported.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9zdXBwb3J0ZWQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlEOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwQkFBMEIsc0VBQW1CO0FBQzdDLDJCQUEyQixzRUFBbUI7QUFDOUMsMEJBQTBCLHNFQUFtQjtBQUM3QywyQkFBMkIsc0VBQW1CO0FBQzlDOztBQUVnQztBQUNoQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL2Vhc2luZy9zdXBwb3J0ZWQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1YmljQmV6aWVyQXNTdHJpbmcgfSBmcm9tICcuL2N1YmljLWJlemllci5tanMnO1xuXG5jb25zdCBzdXBwb3J0ZWRXYWFwaUVhc2luZyA9IHtcbiAgICBsaW5lYXI6IFwibGluZWFyXCIsXG4gICAgZWFzZTogXCJlYXNlXCIsXG4gICAgZWFzZUluOiBcImVhc2UtaW5cIixcbiAgICBlYXNlT3V0OiBcImVhc2Utb3V0XCIsXG4gICAgZWFzZUluT3V0OiBcImVhc2UtaW4tb3V0XCIsXG4gICAgY2lyY0luOiAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyQXNTdHJpbmcoWzAsIDAuNjUsIDAuNTUsIDFdKSxcbiAgICBjaXJjT3V0OiAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyQXNTdHJpbmcoWzAuNTUsIDAsIDEsIDAuNDVdKSxcbiAgICBiYWNrSW46IC8qQF9fUFVSRV9fKi8gY3ViaWNCZXppZXJBc1N0cmluZyhbMC4zMSwgMC4wMSwgMC42NiwgLTAuNTldKSxcbiAgICBiYWNrT3V0OiAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyQXNTdHJpbmcoWzAuMzMsIDEuNTMsIDAuNjksIDAuOTldKSxcbn07XG5cbmV4cG9ydCB7IHN1cHBvcnRlZFdhYXBpRWFzaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdXBwb3J0ZWQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ startWaapiAnimation: () => (/* binding */ startWaapiAnimation)\n/* harmony export */ });\n/* harmony import */ var _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../stats/animation-count.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../stats/buffer.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n/* harmony import */ var _easing_map_easing_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./easing/map-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs\");\n\n\n\n\nfunction startWaapiAnimation(element, valueName, keyframes, { delay = 0, duration = 300, repeat = 0, repeatType = \"loop\", ease = \"easeOut\", times, } = {}, pseudoElement = undefined) {\n const keyframeOptions = {\n [valueName]: keyframes,\n };\n if (times)\n keyframeOptions.offset = times;\n const easing = (0,_easing_map_easing_mjs__WEBPACK_IMPORTED_MODULE_0__.mapEasingToNativeEasing)(ease, duration);\n /**\n * If this is an easing array, apply to keyframes, not animation as a whole\n */\n if (Array.isArray(easing))\n keyframeOptions.easing = easing;\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__.statsBuffer.value) {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.waapi++;\n }\n const options = {\n delay,\n duration,\n easing: !Array.isArray(easing) ? easing : \"linear\",\n fill: \"both\",\n iterations: repeat + 1,\n direction: repeatType === \"reverse\" ? \"alternate\" : \"normal\",\n };\n if (pseudoElement)\n options.pseudoElement = pseudoElement;\n const animation = element.animate(keyframeOptions, options);\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_1__.statsBuffer.value) {\n animation.finished.finally(() => {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_2__.activeAnimations.waapi--;\n });\n }\n return animation;\n}\n\n\n//# sourceMappingURL=start-waapi-animation.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3N0YXJ0LXdhYXBpLWFuaW1hdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFtRTtBQUNkO0FBQ2E7O0FBRWxFLDhEQUE4RCx1RkFBdUYsSUFBSTtBQUN6SjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLCtFQUF1QjtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwwREFBVztBQUNuQixRQUFRLHdFQUFnQjtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDBEQUFXO0FBQ25CO0FBQ0EsWUFBWSx3RUFBZ0I7QUFDNUIsU0FBUztBQUNUO0FBQ0E7QUFDQTs7QUFFK0I7QUFDL0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9zdGFydC13YWFwaS1hbmltYXRpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFjdGl2ZUFuaW1hdGlvbnMgfSBmcm9tICcuLi8uLi9zdGF0cy9hbmltYXRpb24tY291bnQubWpzJztcbmltcG9ydCB7IHN0YXRzQnVmZmVyIH0gZnJvbSAnLi4vLi4vc3RhdHMvYnVmZmVyLm1qcyc7XG5pbXBvcnQgeyBtYXBFYXNpbmdUb05hdGl2ZUVhc2luZyB9IGZyb20gJy4vZWFzaW5nL21hcC1lYXNpbmcubWpzJztcblxuZnVuY3Rpb24gc3RhcnRXYWFwaUFuaW1hdGlvbihlbGVtZW50LCB2YWx1ZU5hbWUsIGtleWZyYW1lcywgeyBkZWxheSA9IDAsIGR1cmF0aW9uID0gMzAwLCByZXBlYXQgPSAwLCByZXBlYXRUeXBlID0gXCJsb29wXCIsIGVhc2UgPSBcImVhc2VPdXRcIiwgdGltZXMsIH0gPSB7fSwgcHNldWRvRWxlbWVudCA9IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGtleWZyYW1lT3B0aW9ucyA9IHtcbiAgICAgICAgW3ZhbHVlTmFtZV06IGtleWZyYW1lcyxcbiAgICB9O1xuICAgIGlmICh0aW1lcylcbiAgICAgICAga2V5ZnJhbWVPcHRpb25zLm9mZnNldCA9IHRpbWVzO1xuICAgIGNvbnN0IGVhc2luZyA9IG1hcEVhc2luZ1RvTmF0aXZlRWFzaW5nKGVhc2UsIGR1cmF0aW9uKTtcbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIGlzIGFuIGVhc2luZyBhcnJheSwgYXBwbHkgdG8ga2V5ZnJhbWVzLCBub3QgYW5pbWF0aW9uIGFzIGEgd2hvbGVcbiAgICAgKi9cbiAgICBpZiAoQXJyYXkuaXNBcnJheShlYXNpbmcpKVxuICAgICAgICBrZXlmcmFtZU9wdGlvbnMuZWFzaW5nID0gZWFzaW5nO1xuICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xuICAgICAgICBhY3RpdmVBbmltYXRpb25zLndhYXBpKys7XG4gICAgfVxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgIGRlbGF5LFxuICAgICAgICBkdXJhdGlvbixcbiAgICAgICAgZWFzaW5nOiAhQXJyYXkuaXNBcnJheShlYXNpbmcpID8gZWFzaW5nIDogXCJsaW5lYXJcIixcbiAgICAgICAgZmlsbDogXCJib3RoXCIsXG4gICAgICAgIGl0ZXJhdGlvbnM6IHJlcGVhdCArIDEsXG4gICAgICAgIGRpcmVjdGlvbjogcmVwZWF0VHlwZSA9PT0gXCJyZXZlcnNlXCIgPyBcImFsdGVybmF0ZVwiIDogXCJub3JtYWxcIixcbiAgICB9O1xuICAgIGlmIChwc2V1ZG9FbGVtZW50KVxuICAgICAgICBvcHRpb25zLnBzZXVkb0VsZW1lbnQgPSBwc2V1ZG9FbGVtZW50O1xuICAgIGNvbnN0IGFuaW1hdGlvbiA9IGVsZW1lbnQuYW5pbWF0ZShrZXlmcmFtZU9wdGlvbnMsIG9wdGlvbnMpO1xuICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xuICAgICAgICBhbmltYXRpb24uZmluaXNoZWQuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICBhY3RpdmVBbmltYXRpb25zLndhYXBpLS07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYW5pbWF0aW9uO1xufVxuXG5leHBvcnQgeyBzdGFydFdhYXBpQW5pbWF0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdGFydC13YWFwaS1hbmltYXRpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsBrowserAnimation: () => (/* binding */ supportsBrowserAnimation)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs\");\n\n\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Could be re-enabled now we have support for linear() easing\n // \"background-color\"\n]);\nconst supportsWaapi = /*@__PURE__*/ (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.memo)(() => Object.hasOwnProperty.call(Element.prototype, \"animate\"));\nfunction supportsBrowserAnimation(options) {\n const { motionValue, name, repeatDelay, repeatType, damping, type } = options;\n const subject = motionValue?.owner?.current;\n /**\n * We use this check instead of isHTMLElement() because we explicitly\n * **don't** want elements in different timing contexts (i.e. popups)\n * to be accelerated, as it's not possible to sync these animations\n * properly with those driven from the main window frameloop.\n */\n if (!(subject instanceof HTMLElement)) {\n return false;\n }\n const { onUpdate, transformTemplate } = motionValue.owner.getProps();\n return (supportsWaapi() &&\n name &&\n acceleratedValues.has(name) &&\n (name !== \"transform\" || !transformTemplate) &&\n /**\n * If we're outputting values to onUpdate then we can't use WAAPI as there's\n * no way to read the value from WAAPI every frame.\n */\n !onUpdate &&\n !repeatDelay &&\n repeatType !== \"mirror\" &&\n damping !== 0 &&\n type !== \"inertia\");\n}\n\n\n//# sourceMappingURL=waapi.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3N1cHBvcnRzL3dhYXBpLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvQzs7QUFFcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9DQUFvQyxrREFBSTtBQUN4QztBQUNBLFlBQVksNERBQTREO0FBQ3hFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSw4QkFBOEI7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFb0M7QUFDcEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS9zdXBwb3J0cy93YWFwaS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtbyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5cbi8qKlxuICogQSBsaXN0IG9mIHZhbHVlcyB0aGF0IGNhbiBiZSBoYXJkd2FyZS1hY2NlbGVyYXRlZC5cbiAqL1xuY29uc3QgYWNjZWxlcmF0ZWRWYWx1ZXMgPSBuZXcgU2V0KFtcbiAgICBcIm9wYWNpdHlcIixcbiAgICBcImNsaXBQYXRoXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcInRyYW5zZm9ybVwiLFxuICAgIC8vIFRPRE86IENvdWxkIGJlIHJlLWVuYWJsZWQgbm93IHdlIGhhdmUgc3VwcG9ydCBmb3IgbGluZWFyKCkgZWFzaW5nXG4gICAgLy8gXCJiYWNrZ3JvdW5kLWNvbG9yXCJcbl0pO1xuY29uc3Qgc3VwcG9ydHNXYWFwaSA9IC8qQF9fUFVSRV9fKi8gbWVtbygoKSA9PiBPYmplY3QuaGFzT3duUHJvcGVydHkuY2FsbChFbGVtZW50LnByb3RvdHlwZSwgXCJhbmltYXRlXCIpKTtcbmZ1bmN0aW9uIHN1cHBvcnRzQnJvd3NlckFuaW1hdGlvbihvcHRpb25zKSB7XG4gICAgY29uc3QgeyBtb3Rpb25WYWx1ZSwgbmFtZSwgcmVwZWF0RGVsYXksIHJlcGVhdFR5cGUsIGRhbXBpbmcsIHR5cGUgfSA9IG9wdGlvbnM7XG4gICAgY29uc3Qgc3ViamVjdCA9IG1vdGlvblZhbHVlPy5vd25lcj8uY3VycmVudDtcbiAgICAvKipcbiAgICAgKiBXZSB1c2UgdGhpcyBjaGVjayBpbnN0ZWFkIG9mIGlzSFRNTEVsZW1lbnQoKSBiZWNhdXNlIHdlIGV4cGxpY2l0bHlcbiAgICAgKiAqKmRvbid0Kiogd2FudCBlbGVtZW50cyBpbiBkaWZmZXJlbnQgdGltaW5nIGNvbnRleHRzIChpLmUuIHBvcHVwcylcbiAgICAgKiB0byBiZSBhY2NlbGVyYXRlZCwgYXMgaXQncyBub3QgcG9zc2libGUgdG8gc3luYyB0aGVzZSBhbmltYXRpb25zXG4gICAgICogcHJvcGVybHkgd2l0aCB0aG9zZSBkcml2ZW4gZnJvbSB0aGUgbWFpbiB3aW5kb3cgZnJhbWVsb29wLlxuICAgICAqL1xuICAgIGlmICghKHN1YmplY3QgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB7IG9uVXBkYXRlLCB0cmFuc2Zvcm1UZW1wbGF0ZSB9ID0gbW90aW9uVmFsdWUub3duZXIuZ2V0UHJvcHMoKTtcbiAgICByZXR1cm4gKHN1cHBvcnRzV2FhcGkoKSAmJlxuICAgICAgICBuYW1lICYmXG4gICAgICAgIGFjY2VsZXJhdGVkVmFsdWVzLmhhcyhuYW1lKSAmJlxuICAgICAgICAobmFtZSAhPT0gXCJ0cmFuc2Zvcm1cIiB8fCAhdHJhbnNmb3JtVGVtcGxhdGUpICYmXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB3ZSdyZSBvdXRwdXR0aW5nIHZhbHVlcyB0byBvblVwZGF0ZSB0aGVuIHdlIGNhbid0IHVzZSBXQUFQSSBhcyB0aGVyZSdzXG4gICAgICAgICAqIG5vIHdheSB0byByZWFkIHRoZSB2YWx1ZSBmcm9tIFdBQVBJIGV2ZXJ5IGZyYW1lLlxuICAgICAgICAgKi9cbiAgICAgICAgIW9uVXBkYXRlICYmXG4gICAgICAgICFyZXBlYXREZWxheSAmJlxuICAgICAgICByZXBlYXRUeXBlICE9PSBcIm1pcnJvclwiICYmXG4gICAgICAgIGRhbXBpbmcgIT09IDAgJiZcbiAgICAgICAgdHlwZSAhPT0gXCJpbmVydGlhXCIpO1xufVxuXG5leHBvcnQgeyBzdXBwb3J0c0Jyb3dzZXJBbmltYXRpb24gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXdhYXBpLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ acceleratedValues: () => (/* binding */ acceleratedValues)\n/* harmony export */ });\n/**\n * A list of values that can be hardware-accelerated.\n */\nconst acceleratedValues = new Set([\n \"opacity\",\n \"clipPath\",\n \"filter\",\n \"transform\",\n // TODO: Can be accelerated but currently disabled until https://issues.chromium.org/issues/41491098 is resolved\n // or until we implement support for linear() easing.\n // \"background-color\"\n]);\n\n\n//# sourceMappingURL=accelerated-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2FjY2VsZXJhdGVkLXZhbHVlcy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNkI7QUFDN0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy9hY2NlbGVyYXRlZC12YWx1ZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBsaXN0IG9mIHZhbHVlcyB0aGF0IGNhbiBiZSBoYXJkd2FyZS1hY2NlbGVyYXRlZC5cbiAqL1xuY29uc3QgYWNjZWxlcmF0ZWRWYWx1ZXMgPSBuZXcgU2V0KFtcbiAgICBcIm9wYWNpdHlcIixcbiAgICBcImNsaXBQYXRoXCIsXG4gICAgXCJmaWx0ZXJcIixcbiAgICBcInRyYW5zZm9ybVwiLFxuICAgIC8vIFRPRE86IENhbiBiZSBhY2NlbGVyYXRlZCBidXQgY3VycmVudGx5IGRpc2FibGVkIHVudGlsIGh0dHBzOi8vaXNzdWVzLmNocm9taXVtLm9yZy9pc3N1ZXMvNDE0OTEwOTggaXMgcmVzb2x2ZWRcbiAgICAvLyBvciB1bnRpbCB3ZSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgbGluZWFyKCkgZWFzaW5nLlxuICAgIC8vIFwiYmFja2dyb3VuZC1jb2xvclwiXG5dKTtcblxuZXhwb3J0IHsgYWNjZWxlcmF0ZWRWYWx1ZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFjY2VsZXJhdGVkLXZhbHVlcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyGeneratorOptions: () => (/* binding */ applyGeneratorOptions)\n/* harmony export */ });\n/* harmony import */ var _utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../utils/supports/linear-easing.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\");\n/* harmony import */ var _generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../generators/utils/is-generator.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs\");\n\n\n\nfunction applyGeneratorOptions({ type, ...options }) {\n if ((0,_generators_utils_is_generator_mjs__WEBPACK_IMPORTED_MODULE_0__.isGenerator)(type) && (0,_utils_supports_linear_easing_mjs__WEBPACK_IMPORTED_MODULE_1__.supportsLinearEasing)()) {\n return type.applyToOptions(options);\n }\n else {\n options.duration ?? (options.duration = 300);\n options.ease ?? (options.ease = \"easeOut\");\n }\n return options;\n}\n\n\n//# sourceMappingURL=apply-generator.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2FwcGx5LWdlbmVyYXRvci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWlGO0FBQ1g7O0FBRXRFLGlDQUFpQyxrQkFBa0I7QUFDbkQsUUFBUSwrRUFBVyxVQUFVLHVGQUFvQjtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVpQztBQUNqQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2FwcGx5LWdlbmVyYXRvci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3VwcG9ydHNMaW5lYXJFYXNpbmcgfSBmcm9tICcuLi8uLi8uLi91dGlscy9zdXBwb3J0cy9saW5lYXItZWFzaW5nLm1qcyc7XG5pbXBvcnQgeyBpc0dlbmVyYXRvciB9IGZyb20gJy4uLy4uL2dlbmVyYXRvcnMvdXRpbHMvaXMtZ2VuZXJhdG9yLm1qcyc7XG5cbmZ1bmN0aW9uIGFwcGx5R2VuZXJhdG9yT3B0aW9ucyh7IHR5cGUsIC4uLm9wdGlvbnMgfSkge1xuICAgIGlmIChpc0dlbmVyYXRvcih0eXBlKSAmJiBzdXBwb3J0c0xpbmVhckVhc2luZygpKSB7XG4gICAgICAgIHJldHVybiB0eXBlLmFwcGx5VG9PcHRpb25zKG9wdGlvbnMpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgb3B0aW9ucy5kdXJhdGlvbiA/PyAob3B0aW9ucy5kdXJhdGlvbiA9IDMwMCk7XG4gICAgICAgIG9wdGlvbnMuZWFzZSA/PyAob3B0aW9ucy5lYXNlID0gXCJlYXNlT3V0XCIpO1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbn1cblxuZXhwb3J0IHsgYXBwbHlHZW5lcmF0b3JPcHRpb25zIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hcHBseS1nZW5lcmF0b3IubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ generateLinearEasing: () => (/* binding */ generateLinearEasing)\n/* harmony export */ });\nconst generateLinearEasing = (easing, duration, // as milliseconds\nresolution = 10 // as milliseconds\n) => {\n let points = \"\";\n const numPoints = Math.max(Math.round(duration / resolution), 2);\n for (let i = 0; i < numPoints; i++) {\n points += Math.round(easing(i / (numPoints - 1)) * 10000) / 10000 + \", \";\n }\n return `linear(${points.substring(0, points.length - 2)})`;\n};\n\n\n//# sourceMappingURL=linear.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL2xpbmVhci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZUFBZTtBQUNuQztBQUNBO0FBQ0EscUJBQXFCLHVDQUF1QztBQUM1RDs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy9saW5lYXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGdlbmVyYXRlTGluZWFyRWFzaW5nID0gKGVhc2luZywgZHVyYXRpb24sIC8vIGFzIG1pbGxpc2Vjb25kc1xucmVzb2x1dGlvbiA9IDEwIC8vIGFzIG1pbGxpc2Vjb25kc1xuKSA9PiB7XG4gICAgbGV0IHBvaW50cyA9IFwiXCI7XG4gICAgY29uc3QgbnVtUG9pbnRzID0gTWF0aC5tYXgoTWF0aC5yb3VuZChkdXJhdGlvbiAvIHJlc29sdXRpb24pLCAyKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVBvaW50czsgaSsrKSB7XG4gICAgICAgIHBvaW50cyArPSBNYXRoLnJvdW5kKGVhc2luZyhpIC8gKG51bVBvaW50cyAtIDEpKSAqIDEwMDAwKSAvIDEwMDAwICsgXCIsIFwiO1xuICAgIH1cbiAgICByZXR1cm4gYGxpbmVhcigke3BvaW50cy5zdWJzdHJpbmcoMCwgcG9pbnRzLmxlbmd0aCAtIDIpfSlgO1xufTtcblxuZXhwb3J0IHsgZ2VuZXJhdGVMaW5lYXJFYXNpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWxpbmVhci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs": +/*!**************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs ***! + \**************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ replaceStringEasing: () => (/* binding */ replaceStringEasing)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n\n\nconst unsupportedEasingFunctions = {\n anticipate: motion_utils__WEBPACK_IMPORTED_MODULE_0__.anticipate,\n backInOut: motion_utils__WEBPACK_IMPORTED_MODULE_1__.backInOut,\n circInOut: motion_utils__WEBPACK_IMPORTED_MODULE_2__.circInOut,\n};\nfunction isUnsupportedEase(key) {\n return key in unsupportedEasingFunctions;\n}\nfunction replaceStringEasing(transition) {\n if (typeof transition.ease === \"string\" &&\n isUnsupportedEase(transition.ease)) {\n transition.ease = unsupportedEasingFunctions[transition.ease];\n }\n}\n\n\n//# sourceMappingURL=unsupported-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvYW5pbWF0aW9uL3dhYXBpL3V0aWxzL3Vuc3VwcG9ydGVkLWVhc2luZy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFnRTs7QUFFaEU7QUFDQSxjQUFjO0FBQ2QsYUFBYTtBQUNiLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFK0I7QUFDL0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2FuaW1hdGlvbi93YWFwaS91dGlscy91bnN1cHBvcnRlZC1lYXNpbmcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFudGljaXBhdGUsIGJhY2tJbk91dCwgY2lyY0luT3V0IH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuY29uc3QgdW5zdXBwb3J0ZWRFYXNpbmdGdW5jdGlvbnMgPSB7XG4gICAgYW50aWNpcGF0ZSxcbiAgICBiYWNrSW5PdXQsXG4gICAgY2lyY0luT3V0LFxufTtcbmZ1bmN0aW9uIGlzVW5zdXBwb3J0ZWRFYXNlKGtleSkge1xuICAgIHJldHVybiBrZXkgaW4gdW5zdXBwb3J0ZWRFYXNpbmdGdW5jdGlvbnM7XG59XG5mdW5jdGlvbiByZXBsYWNlU3RyaW5nRWFzaW5nKHRyYW5zaXRpb24pIHtcbiAgICBpZiAodHlwZW9mIHRyYW5zaXRpb24uZWFzZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICBpc1Vuc3VwcG9ydGVkRWFzZSh0cmFuc2l0aW9uLmVhc2UpKSB7XG4gICAgICAgIHRyYW5zaXRpb24uZWFzZSA9IHVuc3VwcG9ydGVkRWFzaW5nRnVuY3Rpb25zW3RyYW5zaXRpb24uZWFzZV07XG4gICAgfVxufVxuXG5leHBvcnQgeyByZXBsYWNlU3RyaW5nRWFzaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11bnN1cHBvcnRlZC1lYXNpbmcubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/events/add-dom-event.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addDomEvent: () => (/* binding */ addDomEvent)\n/* harmony export */ });\nfunction addDomEvent(target, eventName, handler, options = { passive: true }) {\n target.addEventListener(eventName, handler, options);\n return () => target.removeEventListener(eventName, handler);\n}\n\n\n//# sourceMappingURL=add-dom-event.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZXZlbnRzL2FkZC1kb20tZXZlbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2REFBNkQsZUFBZTtBQUM1RTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9ldmVudHMvYWRkLWRvbS1ldmVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gYWRkRG9tRXZlbnQodGFyZ2V0LCBldmVudE5hbWUsIGhhbmRsZXIsIG9wdGlvbnMgPSB7IHBhc3NpdmU6IHRydWUgfSkge1xuICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlciwgb3B0aW9ucyk7XG4gICAgcmV0dXJuICgpID0+IHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgaGFuZGxlcik7XG59XG5cbmV4cG9ydCB7IGFkZERvbUV2ZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hZGQtZG9tLWV2ZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/batcher.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createRenderBatcher: () => (/* binding */ createRenderBatcher)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _order_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./order.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/order.mjs\");\n/* harmony import */ var _render_step_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./render-step.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs\");\n\n\n\n\nconst maxElapsed = 40;\nfunction createRenderBatcher(scheduleNextBatch, allowKeepAlive) {\n let runNextFrame = false;\n let useDefaultElapsed = true;\n const state = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n const flagRunNextFrame = () => (runNextFrame = true);\n const steps = _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.reduce((acc, key) => {\n acc[key] = (0,_render_step_mjs__WEBPACK_IMPORTED_MODULE_1__.createRenderStep)(flagRunNextFrame, allowKeepAlive ? key : undefined);\n return acc;\n }, {});\n const { setup, read, resolveKeyframes, preUpdate, update, preRender, render, postRender, } = steps;\n const processBatch = () => {\n const timestamp = motion_utils__WEBPACK_IMPORTED_MODULE_2__.MotionGlobalConfig.useManualTiming\n ? state.timestamp\n : performance.now();\n runNextFrame = false;\n if (!motion_utils__WEBPACK_IMPORTED_MODULE_2__.MotionGlobalConfig.useManualTiming) {\n state.delta = useDefaultElapsed\n ? 1000 / 60\n : Math.max(Math.min(timestamp - state.timestamp, maxElapsed), 1);\n }\n state.timestamp = timestamp;\n state.isProcessing = true;\n // Unrolled render loop for better per-frame performance\n setup.process(state);\n read.process(state);\n resolveKeyframes.process(state);\n preUpdate.process(state);\n update.process(state);\n preRender.process(state);\n render.process(state);\n postRender.process(state);\n state.isProcessing = false;\n if (runNextFrame && allowKeepAlive) {\n useDefaultElapsed = false;\n scheduleNextBatch(processBatch);\n }\n };\n const wake = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!state.isProcessing) {\n scheduleNextBatch(processBatch);\n }\n };\n const schedule = _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n wake();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n }, {});\n const cancel = (process) => {\n for (let i = 0; i < _order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder.length; i++) {\n steps[_order_mjs__WEBPACK_IMPORTED_MODULE_0__.stepsOrder[i]].cancel(process);\n }\n };\n return { schedule, cancel, state, steps };\n}\n\n\n//# sourceMappingURL=batcher.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL2JhdGNoZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBa0Q7QUFDVDtBQUNZOztBQUVyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixrREFBVTtBQUM1QixtQkFBbUIsa0VBQWdCO0FBQ25DO0FBQ0EsS0FBSyxJQUFJO0FBQ1QsWUFBWSxtRkFBbUY7QUFDL0Y7QUFDQSwwQkFBMEIsNERBQWtCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBLGFBQWEsNERBQWtCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLGtEQUFVO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxJQUFJO0FBQ1Q7QUFDQSx3QkFBd0IsSUFBSSxrREFBVSxTQUFTO0FBQy9DLGtCQUFrQixrREFBVTtBQUM1QjtBQUNBO0FBQ0EsYUFBYTtBQUNiOztBQUUrQjtBQUMvQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL2JhdGNoZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdGlvbkdsb2JhbENvbmZpZyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBzdGVwc09yZGVyIH0gZnJvbSAnLi9vcmRlci5tanMnO1xuaW1wb3J0IHsgY3JlYXRlUmVuZGVyU3RlcCB9IGZyb20gJy4vcmVuZGVyLXN0ZXAubWpzJztcblxuY29uc3QgbWF4RWxhcHNlZCA9IDQwO1xuZnVuY3Rpb24gY3JlYXRlUmVuZGVyQmF0Y2hlcihzY2hlZHVsZU5leHRCYXRjaCwgYWxsb3dLZWVwQWxpdmUpIHtcbiAgICBsZXQgcnVuTmV4dEZyYW1lID0gZmFsc2U7XG4gICAgbGV0IHVzZURlZmF1bHRFbGFwc2VkID0gdHJ1ZTtcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgICAgZGVsdGE6IDAuMCxcbiAgICAgICAgdGltZXN0YW1wOiAwLjAsXG4gICAgICAgIGlzUHJvY2Vzc2luZzogZmFsc2UsXG4gICAgfTtcbiAgICBjb25zdCBmbGFnUnVuTmV4dEZyYW1lID0gKCkgPT4gKHJ1bk5leHRGcmFtZSA9IHRydWUpO1xuICAgIGNvbnN0IHN0ZXBzID0gc3RlcHNPcmRlci5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgIGFjY1trZXldID0gY3JlYXRlUmVuZGVyU3RlcChmbGFnUnVuTmV4dEZyYW1lLCBhbGxvd0tlZXBBbGl2ZSA/IGtleSA6IHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICAgIGNvbnN0IHsgc2V0dXAsIHJlYWQsIHJlc29sdmVLZXlmcmFtZXMsIHByZVVwZGF0ZSwgdXBkYXRlLCBwcmVSZW5kZXIsIHJlbmRlciwgcG9zdFJlbmRlciwgfSA9IHN0ZXBzO1xuICAgIGNvbnN0IHByb2Nlc3NCYXRjaCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gTW90aW9uR2xvYmFsQ29uZmlnLnVzZU1hbnVhbFRpbWluZ1xuICAgICAgICAgICAgPyBzdGF0ZS50aW1lc3RhbXBcbiAgICAgICAgICAgIDogcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgIHJ1bk5leHRGcmFtZSA9IGZhbHNlO1xuICAgICAgICBpZiAoIU1vdGlvbkdsb2JhbENvbmZpZy51c2VNYW51YWxUaW1pbmcpIHtcbiAgICAgICAgICAgIHN0YXRlLmRlbHRhID0gdXNlRGVmYXVsdEVsYXBzZWRcbiAgICAgICAgICAgICAgICA/IDEwMDAgLyA2MFxuICAgICAgICAgICAgICAgIDogTWF0aC5tYXgoTWF0aC5taW4odGltZXN0YW1wIC0gc3RhdGUudGltZXN0YW1wLCBtYXhFbGFwc2VkKSwgMSk7XG4gICAgICAgIH1cbiAgICAgICAgc3RhdGUudGltZXN0YW1wID0gdGltZXN0YW1wO1xuICAgICAgICBzdGF0ZS5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xuICAgICAgICAvLyBVbnJvbGxlZCByZW5kZXIgbG9vcCBmb3IgYmV0dGVyIHBlci1mcmFtZSBwZXJmb3JtYW5jZVxuICAgICAgICBzZXR1cC5wcm9jZXNzKHN0YXRlKTtcbiAgICAgICAgcmVhZC5wcm9jZXNzKHN0YXRlKTtcbiAgICAgICAgcmVzb2x2ZUtleWZyYW1lcy5wcm9jZXNzKHN0YXRlKTtcbiAgICAgICAgcHJlVXBkYXRlLnByb2Nlc3Moc3RhdGUpO1xuICAgICAgICB1cGRhdGUucHJvY2VzcyhzdGF0ZSk7XG4gICAgICAgIHByZVJlbmRlci5wcm9jZXNzKHN0YXRlKTtcbiAgICAgICAgcmVuZGVyLnByb2Nlc3Moc3RhdGUpO1xuICAgICAgICBwb3N0UmVuZGVyLnByb2Nlc3Moc3RhdGUpO1xuICAgICAgICBzdGF0ZS5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgaWYgKHJ1bk5leHRGcmFtZSAmJiBhbGxvd0tlZXBBbGl2ZSkge1xuICAgICAgICAgICAgdXNlRGVmYXVsdEVsYXBzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHNjaGVkdWxlTmV4dEJhdGNoKHByb2Nlc3NCYXRjaCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHdha2UgPSAoKSA9PiB7XG4gICAgICAgIHJ1bk5leHRGcmFtZSA9IHRydWU7XG4gICAgICAgIHVzZURlZmF1bHRFbGFwc2VkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCFzdGF0ZS5pc1Byb2Nlc3NpbmcpIHtcbiAgICAgICAgICAgIHNjaGVkdWxlTmV4dEJhdGNoKHByb2Nlc3NCYXRjaCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IHNjaGVkdWxlID0gc3RlcHNPcmRlci5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0ZXAgPSBzdGVwc1trZXldO1xuICAgICAgICBhY2Nba2V5XSA9IChwcm9jZXNzLCBrZWVwQWxpdmUgPSBmYWxzZSwgaW1tZWRpYXRlID0gZmFsc2UpID0+IHtcbiAgICAgICAgICAgIGlmICghcnVuTmV4dEZyYW1lKVxuICAgICAgICAgICAgICAgIHdha2UoKTtcbiAgICAgICAgICAgIHJldHVybiBzdGVwLnNjaGVkdWxlKHByb2Nlc3MsIGtlZXBBbGl2ZSwgaW1tZWRpYXRlKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG4gICAgY29uc3QgY2FuY2VsID0gKHByb2Nlc3MpID0+IHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGVwc09yZGVyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBzdGVwc1tzdGVwc09yZGVyW2ldXS5jYW5jZWwocHJvY2Vzcyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiB7IHNjaGVkdWxlLCBjYW5jZWwsIHN0YXRlLCBzdGVwcyB9O1xufVxuXG5leHBvcnQgeyBjcmVhdGVSZW5kZXJCYXRjaGVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1iYXRjaGVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/frame.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cancelFrame: () => (/* binding */ cancelFrame),\n/* harmony export */ frame: () => (/* binding */ frame),\n/* harmony export */ frameData: () => (/* binding */ frameData),\n/* harmony export */ frameSteps: () => (/* binding */ frameSteps)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _batcher_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./batcher.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\");\n\n\n\nconst { schedule: frame, cancel: cancelFrame, state: frameData, steps: frameSteps, } = /* @__PURE__ */ (0,_batcher_mjs__WEBPACK_IMPORTED_MODULE_0__.createRenderBatcher)(typeof requestAnimationFrame !== \"undefined\" ? requestAnimationFrame : motion_utils__WEBPACK_IMPORTED_MODULE_1__.noop, true);\n\n\n//# sourceMappingURL=frame.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL2ZyYW1lLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBb0M7QUFDZ0I7O0FBRXBELFFBQVEsNkVBQTZFLGtCQUFrQixpRUFBbUIsd0VBQXdFLDhDQUFJOztBQUVqSjtBQUNyRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL2ZyYW1lLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBub29wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGNyZWF0ZVJlbmRlckJhdGNoZXIgfSBmcm9tICcuL2JhdGNoZXIubWpzJztcblxuY29uc3QgeyBzY2hlZHVsZTogZnJhbWUsIGNhbmNlbDogY2FuY2VsRnJhbWUsIHN0YXRlOiBmcmFtZURhdGEsIHN0ZXBzOiBmcmFtZVN0ZXBzLCB9ID0gLyogQF9fUFVSRV9fICovIGNyZWF0ZVJlbmRlckJhdGNoZXIodHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZSAhPT0gXCJ1bmRlZmluZWRcIiA/IHJlcXVlc3RBbmltYXRpb25GcmFtZSA6IG5vb3AsIHRydWUpO1xuXG5leHBvcnQgeyBjYW5jZWxGcmFtZSwgZnJhbWUsIGZyYW1lRGF0YSwgZnJhbWVTdGVwcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZnJhbWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/microtask.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cancelMicrotask: () => (/* binding */ cancelMicrotask),\n/* harmony export */ microtask: () => (/* binding */ microtask)\n/* harmony export */ });\n/* harmony import */ var _batcher_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./batcher.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/batcher.mjs\");\n\n\nconst { schedule: microtask, cancel: cancelMicrotask } = \n/* @__PURE__ */ (0,_batcher_mjs__WEBPACK_IMPORTED_MODULE_0__.createRenderBatcher)(queueMicrotask, false);\n\n\n//# sourceMappingURL=microtask.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL21pY3JvdGFzay5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9EOztBQUVwRCxRQUFRLCtDQUErQztBQUN2RCxnQkFBZ0IsaUVBQW1COztBQUVHO0FBQ3RDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9mcmFtZWxvb3AvbWljcm90YXNrLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZW5kZXJCYXRjaGVyIH0gZnJvbSAnLi9iYXRjaGVyLm1qcyc7XG5cbmNvbnN0IHsgc2NoZWR1bGU6IG1pY3JvdGFzaywgY2FuY2VsOiBjYW5jZWxNaWNyb3Rhc2sgfSA9IFxuLyogQF9fUFVSRV9fICovIGNyZWF0ZVJlbmRlckJhdGNoZXIocXVldWVNaWNyb3Rhc2ssIGZhbHNlKTtcblxuZXhwb3J0IHsgY2FuY2VsTWljcm90YXNrLCBtaWNyb3Rhc2sgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1pY3JvdGFzay5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/order.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/order.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ stepsOrder: () => (/* binding */ stepsOrder)\n/* harmony export */ });\nconst stepsOrder = [\n \"setup\", // Compute\n \"read\", // Read\n \"resolveKeyframes\", // Write/Read/Write/Read\n \"preUpdate\", // Compute\n \"update\", // Compute\n \"preRender\", // Compute\n \"render\", // Write\n \"postRender\", // Compute\n];\n\n\n//# sourceMappingURL=order.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL29yZGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNCO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9mcmFtZWxvb3Avb3JkZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHN0ZXBzT3JkZXIgPSBbXG4gICAgXCJzZXR1cFwiLCAvLyBDb21wdXRlXG4gICAgXCJyZWFkXCIsIC8vIFJlYWRcbiAgICBcInJlc29sdmVLZXlmcmFtZXNcIiwgLy8gV3JpdGUvUmVhZC9Xcml0ZS9SZWFkXG4gICAgXCJwcmVVcGRhdGVcIiwgLy8gQ29tcHV0ZVxuICAgIFwidXBkYXRlXCIsIC8vIENvbXB1dGVcbiAgICBcInByZVJlbmRlclwiLCAvLyBDb21wdXRlXG4gICAgXCJyZW5kZXJcIiwgLy8gV3JpdGVcbiAgICBcInBvc3RSZW5kZXJcIiwgLy8gQ29tcHV0ZVxuXTtcblxuZXhwb3J0IHsgc3RlcHNPcmRlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9b3JkZXIubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/order.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/render-step.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createRenderStep: () => (/* binding */ createRenderStep)\n/* harmony export */ });\n/* harmony import */ var _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../stats/buffer.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n\n\nfunction createRenderStep(runNextFrame, stepName) {\n /**\n * We create and reuse two queues, one to queue jobs for the current frame\n * and one for the next. We reuse to avoid triggering GC after x frames.\n */\n let thisFrame = new Set();\n let nextFrame = new Set();\n /**\n * Track whether we're currently processing jobs in this step. This way\n * we can decide whether to schedule new jobs for this frame or next.\n */\n let isProcessing = false;\n let flushNextFrame = false;\n /**\n * A set of processes which were marked keepAlive when scheduled.\n */\n const toKeepAlive = new WeakSet();\n let latestFrameData = {\n delta: 0.0,\n timestamp: 0.0,\n isProcessing: false,\n };\n let numCalls = 0;\n function triggerCallback(callback) {\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n numCalls++;\n callback(latestFrameData);\n }\n const step = {\n /**\n * Schedule a process to run on the next frame.\n */\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const queue = addToCurrentFrame ? thisFrame : nextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (!queue.has(callback))\n queue.add(callback);\n return callback;\n },\n /**\n * Cancel the provided callback from running on the next frame.\n */\n cancel: (callback) => {\n nextFrame.delete(callback);\n toKeepAlive.delete(callback);\n },\n /**\n * Execute all schedule callbacks.\n */\n process: (frameData) => {\n latestFrameData = frameData;\n /**\n * If we're already processing we've probably been triggered by a flushSync\n * inside an existing process. Instead of executing, mark flushNextFrame\n * as true and ensure we flush the following frame at the end of this one.\n */\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [thisFrame, nextFrame] = [nextFrame, thisFrame];\n // Execute this frame\n thisFrame.forEach(triggerCallback);\n /**\n * If we're recording stats then\n */\n if (stepName && _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__.statsBuffer.value) {\n _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_0__.statsBuffer.value.frameloop[stepName].push(numCalls);\n }\n numCalls = 0;\n // Clear the frame so no callbacks remain. This is to avoid\n // memory leaks should this render step not run for a while.\n thisFrame.clear();\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\n\n//# sourceMappingURL=render-step.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3JlbmRlci1zdGVwLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFrRDs7QUFFbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QiwwREFBVztBQUN2QyxnQkFBZ0IsMERBQVc7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3JlbmRlci1zdGVwLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGF0c0J1ZmZlciB9IGZyb20gJy4uL3N0YXRzL2J1ZmZlci5tanMnO1xuXG5mdW5jdGlvbiBjcmVhdGVSZW5kZXJTdGVwKHJ1bk5leHRGcmFtZSwgc3RlcE5hbWUpIHtcbiAgICAvKipcbiAgICAgKiBXZSBjcmVhdGUgYW5kIHJldXNlIHR3byBxdWV1ZXMsIG9uZSB0byBxdWV1ZSBqb2JzIGZvciB0aGUgY3VycmVudCBmcmFtZVxuICAgICAqIGFuZCBvbmUgZm9yIHRoZSBuZXh0LiBXZSByZXVzZSB0byBhdm9pZCB0cmlnZ2VyaW5nIEdDIGFmdGVyIHggZnJhbWVzLlxuICAgICAqL1xuICAgIGxldCB0aGlzRnJhbWUgPSBuZXcgU2V0KCk7XG4gICAgbGV0IG5leHRGcmFtZSA9IG5ldyBTZXQoKTtcbiAgICAvKipcbiAgICAgKiBUcmFjayB3aGV0aGVyIHdlJ3JlIGN1cnJlbnRseSBwcm9jZXNzaW5nIGpvYnMgaW4gdGhpcyBzdGVwLiBUaGlzIHdheVxuICAgICAqIHdlIGNhbiBkZWNpZGUgd2hldGhlciB0byBzY2hlZHVsZSBuZXcgam9icyBmb3IgdGhpcyBmcmFtZSBvciBuZXh0LlxuICAgICAqL1xuICAgIGxldCBpc1Byb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICBsZXQgZmx1c2hOZXh0RnJhbWUgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBBIHNldCBvZiBwcm9jZXNzZXMgd2hpY2ggd2VyZSBtYXJrZWQga2VlcEFsaXZlIHdoZW4gc2NoZWR1bGVkLlxuICAgICAqL1xuICAgIGNvbnN0IHRvS2VlcEFsaXZlID0gbmV3IFdlYWtTZXQoKTtcbiAgICBsZXQgbGF0ZXN0RnJhbWVEYXRhID0ge1xuICAgICAgICBkZWx0YTogMC4wLFxuICAgICAgICB0aW1lc3RhbXA6IDAuMCxcbiAgICAgICAgaXNQcm9jZXNzaW5nOiBmYWxzZSxcbiAgICB9O1xuICAgIGxldCBudW1DYWxscyA9IDA7XG4gICAgZnVuY3Rpb24gdHJpZ2dlckNhbGxiYWNrKGNhbGxiYWNrKSB7XG4gICAgICAgIGlmICh0b0tlZXBBbGl2ZS5oYXMoY2FsbGJhY2spKSB7XG4gICAgICAgICAgICBzdGVwLnNjaGVkdWxlKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIHJ1bk5leHRGcmFtZSgpO1xuICAgICAgICB9XG4gICAgICAgIG51bUNhbGxzKys7XG4gICAgICAgIGNhbGxiYWNrKGxhdGVzdEZyYW1lRGF0YSk7XG4gICAgfVxuICAgIGNvbnN0IHN0ZXAgPSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTY2hlZHVsZSBhIHByb2Nlc3MgdG8gcnVuIG9uIHRoZSBuZXh0IGZyYW1lLlxuICAgICAgICAgKi9cbiAgICAgICAgc2NoZWR1bGU6IChjYWxsYmFjaywga2VlcEFsaXZlID0gZmFsc2UsIGltbWVkaWF0ZSA9IGZhbHNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhZGRUb0N1cnJlbnRGcmFtZSA9IGltbWVkaWF0ZSAmJiBpc1Byb2Nlc3Npbmc7XG4gICAgICAgICAgICBjb25zdCBxdWV1ZSA9IGFkZFRvQ3VycmVudEZyYW1lID8gdGhpc0ZyYW1lIDogbmV4dEZyYW1lO1xuICAgICAgICAgICAgaWYgKGtlZXBBbGl2ZSlcbiAgICAgICAgICAgICAgICB0b0tlZXBBbGl2ZS5hZGQoY2FsbGJhY2spO1xuICAgICAgICAgICAgaWYgKCFxdWV1ZS5oYXMoY2FsbGJhY2spKVxuICAgICAgICAgICAgICAgIHF1ZXVlLmFkZChjYWxsYmFjayk7XG4gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2s7XG4gICAgICAgIH0sXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDYW5jZWwgdGhlIHByb3ZpZGVkIGNhbGxiYWNrIGZyb20gcnVubmluZyBvbiB0aGUgbmV4dCBmcmFtZS5cbiAgICAgICAgICovXG4gICAgICAgIGNhbmNlbDogKGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgICBuZXh0RnJhbWUuZGVsZXRlKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIHRvS2VlcEFsaXZlLmRlbGV0ZShjYWxsYmFjayk7XG4gICAgICAgIH0sXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBFeGVjdXRlIGFsbCBzY2hlZHVsZSBjYWxsYmFja3MuXG4gICAgICAgICAqL1xuICAgICAgICBwcm9jZXNzOiAoZnJhbWVEYXRhKSA9PiB7XG4gICAgICAgICAgICBsYXRlc3RGcmFtZURhdGEgPSBmcmFtZURhdGE7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlJ3JlIGFscmVhZHkgcHJvY2Vzc2luZyB3ZSd2ZSBwcm9iYWJseSBiZWVuIHRyaWdnZXJlZCBieSBhIGZsdXNoU3luY1xuICAgICAgICAgICAgICogaW5zaWRlIGFuIGV4aXN0aW5nIHByb2Nlc3MuIEluc3RlYWQgb2YgZXhlY3V0aW5nLCBtYXJrIGZsdXNoTmV4dEZyYW1lXG4gICAgICAgICAgICAgKiBhcyB0cnVlIGFuZCBlbnN1cmUgd2UgZmx1c2ggdGhlIGZvbGxvd2luZyBmcmFtZSBhdCB0aGUgZW5kIG9mIHRoaXMgb25lLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoaXNQcm9jZXNzaW5nKSB7XG4gICAgICAgICAgICAgICAgZmx1c2hOZXh0RnJhbWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA9IHRydWU7XG4gICAgICAgICAgICBbdGhpc0ZyYW1lLCBuZXh0RnJhbWVdID0gW25leHRGcmFtZSwgdGhpc0ZyYW1lXTtcbiAgICAgICAgICAgIC8vIEV4ZWN1dGUgdGhpcyBmcmFtZVxuICAgICAgICAgICAgdGhpc0ZyYW1lLmZvckVhY2godHJpZ2dlckNhbGxiYWNrKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UncmUgcmVjb3JkaW5nIHN0YXRzIHRoZW5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHN0ZXBOYW1lICYmIHN0YXRzQnVmZmVyLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgc3RhdHNCdWZmZXIudmFsdWUuZnJhbWVsb29wW3N0ZXBOYW1lXS5wdXNoKG51bUNhbGxzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG51bUNhbGxzID0gMDtcbiAgICAgICAgICAgIC8vIENsZWFyIHRoZSBmcmFtZSBzbyBubyBjYWxsYmFja3MgcmVtYWluLiBUaGlzIGlzIHRvIGF2b2lkXG4gICAgICAgICAgICAvLyBtZW1vcnkgbGVha3Mgc2hvdWxkIHRoaXMgcmVuZGVyIHN0ZXAgbm90IHJ1biBmb3IgYSB3aGlsZS5cbiAgICAgICAgICAgIHRoaXNGcmFtZS5jbGVhcigpO1xuICAgICAgICAgICAgaXNQcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoZmx1c2hOZXh0RnJhbWUpIHtcbiAgICAgICAgICAgICAgICBmbHVzaE5leHRGcmFtZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHN0ZXAucHJvY2VzcyhmcmFtZURhdGEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIHN0ZXA7XG59XG5cbmV4cG9ydCB7IGNyZWF0ZVJlbmRlclN0ZXAgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbmRlci1zdGVwLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/render-step.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ time: () => (/* binding */ time)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _frame_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\nlet now;\nfunction clearTime() {\n now = undefined;\n}\n/**\n * An eventloop-synchronous alternative to performance.now().\n *\n * Ensures that time measurements remain consistent within a synchronous context.\n * Usually calling performance.now() twice within the same synchronous context\n * will return different values which isn't useful for animations when we're usually\n * trying to sync animations to the same frame.\n */\nconst time = {\n now: () => {\n if (now === undefined) {\n time.set(_frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.isProcessing || motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.useManualTiming\n ? _frame_mjs__WEBPACK_IMPORTED_MODULE_0__.frameData.timestamp\n : performance.now());\n }\n return now;\n },\n set: (newTime) => {\n now = newTime;\n queueMicrotask(clearTime);\n },\n};\n\n\n//# sourceMappingURL=sync-time.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3N5bmMtdGltZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWtEO0FBQ1Y7O0FBRXhDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixpREFBUyxpQkFBaUIsNERBQWtCO0FBQ2pFLGtCQUFrQixpREFBUztBQUMzQjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVnQjtBQUNoQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZnJhbWVsb29wL3N5bmMtdGltZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW90aW9uR2xvYmFsQ29uZmlnIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGZyYW1lRGF0YSB9IGZyb20gJy4vZnJhbWUubWpzJztcblxubGV0IG5vdztcbmZ1bmN0aW9uIGNsZWFyVGltZSgpIHtcbiAgICBub3cgPSB1bmRlZmluZWQ7XG59XG4vKipcbiAqIEFuIGV2ZW50bG9vcC1zeW5jaHJvbm91cyBhbHRlcm5hdGl2ZSB0byBwZXJmb3JtYW5jZS5ub3coKS5cbiAqXG4gKiBFbnN1cmVzIHRoYXQgdGltZSBtZWFzdXJlbWVudHMgcmVtYWluIGNvbnNpc3RlbnQgd2l0aGluIGEgc3luY2hyb25vdXMgY29udGV4dC5cbiAqIFVzdWFsbHkgY2FsbGluZyBwZXJmb3JtYW5jZS5ub3coKSB0d2ljZSB3aXRoaW4gdGhlIHNhbWUgc3luY2hyb25vdXMgY29udGV4dFxuICogd2lsbCByZXR1cm4gZGlmZmVyZW50IHZhbHVlcyB3aGljaCBpc24ndCB1c2VmdWwgZm9yIGFuaW1hdGlvbnMgd2hlbiB3ZSdyZSB1c3VhbGx5XG4gKiB0cnlpbmcgdG8gc3luYyBhbmltYXRpb25zIHRvIHRoZSBzYW1lIGZyYW1lLlxuICovXG5jb25zdCB0aW1lID0ge1xuICAgIG5vdzogKCkgPT4ge1xuICAgICAgICBpZiAobm93ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRpbWUuc2V0KGZyYW1lRGF0YS5pc1Byb2Nlc3NpbmcgfHwgTW90aW9uR2xvYmFsQ29uZmlnLnVzZU1hbnVhbFRpbWluZ1xuICAgICAgICAgICAgICAgID8gZnJhbWVEYXRhLnRpbWVzdGFtcFxuICAgICAgICAgICAgICAgIDogcGVyZm9ybWFuY2Uubm93KCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub3c7XG4gICAgfSxcbiAgICBzZXQ6IChuZXdUaW1lKSA9PiB7XG4gICAgICAgIG5vdyA9IG5ld1RpbWU7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKGNsZWFyVGltZSk7XG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IHRpbWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN5bmMtdGltZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isDragActive: () => (/* binding */ isDragActive),\n/* harmony export */ isDragging: () => (/* binding */ isDragging)\n/* harmony export */ });\nconst isDragging = {\n x: false,\n y: false,\n};\nfunction isDragActive() {\n return isDragging.x || isDragging.y;\n}\n\n\n//# sourceMappingURL=is-active.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9zdGF0ZS9pcy1hY3RpdmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRW9DO0FBQ3BDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy9kcmFnL3N0YXRlL2lzLWFjdGl2ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNEcmFnZ2luZyA9IHtcbiAgICB4OiBmYWxzZSxcbiAgICB5OiBmYWxzZSxcbn07XG5mdW5jdGlvbiBpc0RyYWdBY3RpdmUoKSB7XG4gICAgcmV0dXJuIGlzRHJhZ2dpbmcueCB8fCBpc0RyYWdnaW5nLnk7XG59XG5cbmV4cG9ydCB7IGlzRHJhZ0FjdGl2ZSwgaXNEcmFnZ2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtYWN0aXZlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setDragLock: () => (/* binding */ setDragLock)\n/* harmony export */ });\n/* harmony import */ var _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-active.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n\n\nfunction setDragLock(axis) {\n if (axis === \"x\" || axis === \"y\") {\n if (_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis]) {\n return null;\n }\n else {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis] = true;\n return () => {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging[axis] = false;\n };\n }\n }\n else {\n if (_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x || _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y) {\n return null;\n }\n else {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x = _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y = true;\n return () => {\n _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.x = _is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragging.y = false;\n };\n }\n }\n}\n\n\n//# sourceMappingURL=set-active.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvZHJhZy9zdGF0ZS9zZXQtYWN0aXZlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2Qzs7QUFFN0M7QUFDQTtBQUNBLFlBQVksc0RBQVU7QUFDdEI7QUFDQTtBQUNBO0FBQ0EsWUFBWSxzREFBVTtBQUN0QjtBQUNBLGdCQUFnQixzREFBVTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksc0RBQVUsTUFBTSxzREFBVTtBQUN0QztBQUNBO0FBQ0E7QUFDQSxZQUFZLHNEQUFVLEtBQUssc0RBQVU7QUFDckM7QUFDQSxnQkFBZ0Isc0RBQVUsS0FBSyxzREFBVTtBQUN6QztBQUNBO0FBQ0E7QUFDQTs7QUFFdUI7QUFDdkIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL2RyYWcvc3RhdGUvc2V0LWFjdGl2ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNEcmFnZ2luZyB9IGZyb20gJy4vaXMtYWN0aXZlLm1qcyc7XG5cbmZ1bmN0aW9uIHNldERyYWdMb2NrKGF4aXMpIHtcbiAgICBpZiAoYXhpcyA9PT0gXCJ4XCIgfHwgYXhpcyA9PT0gXCJ5XCIpIHtcbiAgICAgICAgaWYgKGlzRHJhZ2dpbmdbYXhpc10pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaXNEcmFnZ2luZ1theGlzXSA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlzRHJhZ2dpbmdbYXhpc10gPSBmYWxzZTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIGlmIChpc0RyYWdnaW5nLnggfHwgaXNEcmFnZ2luZy55KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlzRHJhZ2dpbmcueCA9IGlzRHJhZ2dpbmcueSA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlzRHJhZ2dpbmcueCA9IGlzRHJhZ2dpbmcueSA9IGZhbHNlO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IHsgc2V0RHJhZ0xvY2sgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNldC1hY3RpdmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/hover.mjs": +/*!************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/hover.mjs ***! + \************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hover: () => (/* binding */ hover)\n/* harmony export */ });\n/* harmony import */ var _drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./drag/state/is-active.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n/* harmony import */ var _utils_setup_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/setup.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\");\n\n\n\nfunction isValidHover(event) {\n return !(event.pointerType === \"touch\" || (0,_drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_0__.isDragActive)());\n}\n/**\n * Create a hover gesture. hover() is different to .addEventListener(\"pointerenter\")\n * in that it has an easier syntax, filters out polyfilled touch events, interoperates\n * with drag gestures, and automatically removes the \"pointerennd\" event listener when the hover ends.\n *\n * @public\n */\nfunction hover(elementOrSelector, onHoverStart, options = {}) {\n const [elements, eventOptions, cancel] = (0,_utils_setup_mjs__WEBPACK_IMPORTED_MODULE_1__.setupGesture)(elementOrSelector, options);\n elements.forEach((element) => {\n let isPressed = false;\n let deferredHoverEnd = false;\n let hoverEndCallback;\n const removePointerLeave = () => {\n element.removeEventListener(\"pointerleave\", onPointerLeave);\n };\n const endHover = (event) => {\n if (hoverEndCallback) {\n hoverEndCallback(event);\n hoverEndCallback = undefined;\n }\n removePointerLeave();\n };\n const onPointerUp = (event) => {\n isPressed = false;\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerUp);\n if (deferredHoverEnd) {\n deferredHoverEnd = false;\n endHover(event);\n }\n };\n const onPointerDown = () => {\n isPressed = true;\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerUp, eventOptions);\n };\n const onPointerLeave = (leaveEvent) => {\n if (leaveEvent.pointerType === \"touch\")\n return;\n if (isPressed) {\n deferredHoverEnd = true;\n return;\n }\n endHover(leaveEvent);\n };\n const onPointerEnter = (enterEvent) => {\n if (!isValidHover(enterEvent))\n return;\n deferredHoverEnd = false;\n const onHoverEnd = onHoverStart(element, enterEvent);\n if (typeof onHoverEnd !== \"function\")\n return;\n hoverEndCallback = onHoverEnd;\n element.addEventListener(\"pointerleave\", onPointerLeave, eventOptions);\n };\n element.addEventListener(\"pointerenter\", onPointerEnter, eventOptions);\n element.addEventListener(\"pointerdown\", onPointerDown, eventOptions);\n });\n return cancel;\n}\n\n\n//# sourceMappingURL=hover.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvaG92ZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUEwRDtBQUNUOztBQUVqRDtBQUNBLDhDQUE4Qyx1RUFBWTtBQUMxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNERBQTREO0FBQzVELDZDQUE2Qyw4REFBWTtBQUN6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVpQjtBQUNqQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvaG92ZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRHJhZ0FjdGl2ZSB9IGZyb20gJy4vZHJhZy9zdGF0ZS9pcy1hY3RpdmUubWpzJztcbmltcG9ydCB7IHNldHVwR2VzdHVyZSB9IGZyb20gJy4vdXRpbHMvc2V0dXAubWpzJztcblxuZnVuY3Rpb24gaXNWYWxpZEhvdmVyKGV2ZW50KSB7XG4gICAgcmV0dXJuICEoZXZlbnQucG9pbnRlclR5cGUgPT09IFwidG91Y2hcIiB8fCBpc0RyYWdBY3RpdmUoKSk7XG59XG4vKipcbiAqIENyZWF0ZSBhIGhvdmVyIGdlc3R1cmUuIGhvdmVyKCkgaXMgZGlmZmVyZW50IHRvIC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmVudGVyXCIpXG4gKiBpbiB0aGF0IGl0IGhhcyBhbiBlYXNpZXIgc3ludGF4LCBmaWx0ZXJzIG91dCBwb2x5ZmlsbGVkIHRvdWNoIGV2ZW50cywgaW50ZXJvcGVyYXRlc1xuICogd2l0aCBkcmFnIGdlc3R1cmVzLCBhbmQgYXV0b21hdGljYWxseSByZW1vdmVzIHRoZSBcInBvaW50ZXJlbm5kXCIgZXZlbnQgbGlzdGVuZXIgd2hlbiB0aGUgaG92ZXIgZW5kcy5cbiAqXG4gKiBAcHVibGljXG4gKi9cbmZ1bmN0aW9uIGhvdmVyKGVsZW1lbnRPclNlbGVjdG9yLCBvbkhvdmVyU3RhcnQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IFtlbGVtZW50cywgZXZlbnRPcHRpb25zLCBjYW5jZWxdID0gc2V0dXBHZXN0dXJlKGVsZW1lbnRPclNlbGVjdG9yLCBvcHRpb25zKTtcbiAgICBlbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgIGxldCBpc1ByZXNzZWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGRlZmVycmVkSG92ZXJFbmQgPSBmYWxzZTtcbiAgICAgICAgbGV0IGhvdmVyRW5kQ2FsbGJhY2s7XG4gICAgICAgIGNvbnN0IHJlbW92ZVBvaW50ZXJMZWF2ZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJsZWF2ZVwiLCBvblBvaW50ZXJMZWF2ZSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGVuZEhvdmVyID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoaG92ZXJFbmRDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGhvdmVyRW5kQ2FsbGJhY2soZXZlbnQpO1xuICAgICAgICAgICAgICAgIGhvdmVyRW5kQ2FsbGJhY2sgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZW1vdmVQb2ludGVyTGVhdmUoKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Qb2ludGVyVXAgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlzUHJlc3NlZCA9IGZhbHNlO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgb25Qb2ludGVyVXApO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVyY2FuY2VsXCIsIG9uUG9pbnRlclVwKTtcbiAgICAgICAgICAgIGlmIChkZWZlcnJlZEhvdmVyRW5kKSB7XG4gICAgICAgICAgICAgICAgZGVmZXJyZWRIb3ZlckVuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGVuZEhvdmVyKGV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Qb2ludGVyRG93biA9ICgpID0+IHtcbiAgICAgICAgICAgIGlzUHJlc3NlZCA9IHRydWU7XG4gICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJ1cFwiLCBvblBvaW50ZXJVcCwgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmNhbmNlbFwiLCBvblBvaW50ZXJVcCwgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Qb2ludGVyTGVhdmUgPSAobGVhdmVFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGxlYXZlRXZlbnQucG9pbnRlclR5cGUgPT09IFwidG91Y2hcIilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBpZiAoaXNQcmVzc2VkKSB7XG4gICAgICAgICAgICAgICAgZGVmZXJyZWRIb3ZlckVuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW5kSG92ZXIobGVhdmVFdmVudCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uUG9pbnRlckVudGVyID0gKGVudGVyRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNWYWxpZEhvdmVyKGVudGVyRXZlbnQpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGRlZmVycmVkSG92ZXJFbmQgPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IG9uSG92ZXJFbmQgPSBvbkhvdmVyU3RhcnQoZWxlbWVudCwgZW50ZXJFdmVudCk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIG9uSG92ZXJFbmQgIT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBob3ZlckVuZENhbGxiYWNrID0gb25Ib3ZlckVuZDtcbiAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInBvaW50ZXJsZWF2ZVwiLCBvblBvaW50ZXJMZWF2ZSwgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgfTtcbiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmVudGVyXCIsIG9uUG9pbnRlckVudGVyLCBldmVudE9wdGlvbnMpO1xuICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVyZG93blwiLCBvblBvaW50ZXJEb3duLCBldmVudE9wdGlvbnMpO1xuICAgIH0pO1xuICAgIHJldHVybiBjYW5jZWw7XG59XG5cbmV4cG9ydCB7IGhvdmVyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ob3Zlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/hover.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/index.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ press: () => (/* binding */ press)\n/* harmony export */ });\n/* harmony import */ var _utils_is_html_element_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/is-html-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\");\n/* harmony import */ var _drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../drag/state/is-active.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs\");\n/* harmony import */ var _utils_is_node_or_child_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/is-node-or-child.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs\");\n/* harmony import */ var _utils_is_primary_pointer_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/is-primary-pointer.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\");\n/* harmony import */ var _utils_setup_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/setup.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\");\n/* harmony import */ var _utils_is_keyboard_accessible_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/is-keyboard-accessible.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs\");\n/* harmony import */ var _utils_keyboard_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/keyboard.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs\");\n/* harmony import */ var _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\");\n\n\n\n\n\n\n\n\n\n/**\n * Filter out events that are not primary pointer events, or are triggering\n * while a Motion gesture is active.\n */\nfunction isValidPressEvent(event) {\n return (0,_utils_is_primary_pointer_mjs__WEBPACK_IMPORTED_MODULE_0__.isPrimaryPointer)(event) && !(0,_drag_state_is_active_mjs__WEBPACK_IMPORTED_MODULE_1__.isDragActive)();\n}\nconst claimedPointerDownEvents = new WeakSet();\n/**\n * Create a press gesture.\n *\n * Press is different to `\"pointerdown\"`, `\"pointerup\"` in that it\n * automatically filters out secondary pointer events like right\n * click and multitouch.\n *\n * It also adds accessibility support for keyboards, where\n * an element with a press gesture will receive focus and\n * trigger on Enter `\"keydown\"` and `\"keyup\"` events.\n *\n * This is different to a browser's `\"click\"` event, which does\n * respond to keyboards but only for the `\"click\"` itself, rather\n * than the press start and end/cancel. The element also needs\n * to be focusable for this to work, whereas a press gesture will\n * make an element focusable by default.\n *\n * @public\n */\nfunction press(targetOrSelector, onPressStart, options = {}) {\n const [targets, eventOptions, cancelEvents] = (0,_utils_setup_mjs__WEBPACK_IMPORTED_MODULE_2__.setupGesture)(targetOrSelector, options);\n const startPress = (startEvent) => {\n const target = startEvent.currentTarget;\n if (!isValidPressEvent(startEvent))\n return;\n if (claimedPointerDownEvents.has(startEvent))\n return;\n _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.add(target);\n if (options.stopPropagation) {\n claimedPointerDownEvents.add(startEvent);\n }\n const onPressEnd = onPressStart(target, startEvent);\n const onPointerEnd = (endEvent, success) => {\n window.removeEventListener(\"pointerup\", onPointerUp);\n window.removeEventListener(\"pointercancel\", onPointerCancel);\n if (_utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.has(target)) {\n _utils_state_mjs__WEBPACK_IMPORTED_MODULE_3__.isPressing.delete(target);\n }\n if (!isValidPressEvent(endEvent)) {\n return;\n }\n if (typeof onPressEnd === \"function\") {\n onPressEnd(endEvent, { success });\n }\n };\n const onPointerUp = (upEvent) => {\n onPointerEnd(upEvent, target === window ||\n target === document ||\n options.useGlobalTarget ||\n (0,_utils_is_node_or_child_mjs__WEBPACK_IMPORTED_MODULE_4__.isNodeOrChild)(target, upEvent.target));\n };\n const onPointerCancel = (cancelEvent) => {\n onPointerEnd(cancelEvent, false);\n };\n window.addEventListener(\"pointerup\", onPointerUp, eventOptions);\n window.addEventListener(\"pointercancel\", onPointerCancel, eventOptions);\n };\n targets.forEach((target) => {\n const pointerDownTarget = options.useGlobalTarget ? window : target;\n pointerDownTarget.addEventListener(\"pointerdown\", startPress, eventOptions);\n if ((0,_utils_is_html_element_mjs__WEBPACK_IMPORTED_MODULE_5__.isHTMLElement)(target)) {\n target.addEventListener(\"focus\", (event) => (0,_utils_keyboard_mjs__WEBPACK_IMPORTED_MODULE_6__.enableKeyboardPress)(event, eventOptions));\n if (!(0,_utils_is_keyboard_accessible_mjs__WEBPACK_IMPORTED_MODULE_7__.isElementKeyboardAccessible)(target) &&\n !target.hasAttribute(\"tabindex\")) {\n target.tabIndex = 0;\n }\n }\n });\n return cancelEvents;\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFnRTtBQUNMO0FBQ0c7QUFDSztBQUNqQjtBQUMrQjtBQUN0QjtBQUNaOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVywrRUFBZ0IsWUFBWSx1RUFBWTtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQ7QUFDM0Qsa0RBQWtELDhEQUFZO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0RBQVU7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isd0RBQVU7QUFDMUIsZ0JBQWdCLHdEQUFVO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1Q0FBdUMsU0FBUztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMEVBQWE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHlFQUFhO0FBQ3pCLHdEQUF3RCx3RUFBbUI7QUFDM0UsaUJBQWlCLDhGQUEyQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVpQjtBQUNqQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzSFRNTEVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscy9pcy1odG1sLWVsZW1lbnQubWpzJztcbmltcG9ydCB7IGlzRHJhZ0FjdGl2ZSB9IGZyb20gJy4uL2RyYWcvc3RhdGUvaXMtYWN0aXZlLm1qcyc7XG5pbXBvcnQgeyBpc05vZGVPckNoaWxkIH0gZnJvbSAnLi4vdXRpbHMvaXMtbm9kZS1vci1jaGlsZC5tanMnO1xuaW1wb3J0IHsgaXNQcmltYXJ5UG9pbnRlciB9IGZyb20gJy4uL3V0aWxzL2lzLXByaW1hcnktcG9pbnRlci5tanMnO1xuaW1wb3J0IHsgc2V0dXBHZXN0dXJlIH0gZnJvbSAnLi4vdXRpbHMvc2V0dXAubWpzJztcbmltcG9ydCB7IGlzRWxlbWVudEtleWJvYXJkQWNjZXNzaWJsZSB9IGZyb20gJy4vdXRpbHMvaXMta2V5Ym9hcmQtYWNjZXNzaWJsZS5tanMnO1xuaW1wb3J0IHsgZW5hYmxlS2V5Ym9hcmRQcmVzcyB9IGZyb20gJy4vdXRpbHMva2V5Ym9hcmQubWpzJztcbmltcG9ydCB7IGlzUHJlc3NpbmcgfSBmcm9tICcuL3V0aWxzL3N0YXRlLm1qcyc7XG5cbi8qKlxuICogRmlsdGVyIG91dCBldmVudHMgdGhhdCBhcmUgbm90IHByaW1hcnkgcG9pbnRlciBldmVudHMsIG9yIGFyZSB0cmlnZ2VyaW5nXG4gKiB3aGlsZSBhIE1vdGlvbiBnZXN0dXJlIGlzIGFjdGl2ZS5cbiAqL1xuZnVuY3Rpb24gaXNWYWxpZFByZXNzRXZlbnQoZXZlbnQpIHtcbiAgICByZXR1cm4gaXNQcmltYXJ5UG9pbnRlcihldmVudCkgJiYgIWlzRHJhZ0FjdGl2ZSgpO1xufVxuY29uc3QgY2xhaW1lZFBvaW50ZXJEb3duRXZlbnRzID0gbmV3IFdlYWtTZXQoKTtcbi8qKlxuICogQ3JlYXRlIGEgcHJlc3MgZ2VzdHVyZS5cbiAqXG4gKiBQcmVzcyBpcyBkaWZmZXJlbnQgdG8gYFwicG9pbnRlcmRvd25cImAsIGBcInBvaW50ZXJ1cFwiYCBpbiB0aGF0IGl0XG4gKiBhdXRvbWF0aWNhbGx5IGZpbHRlcnMgb3V0IHNlY29uZGFyeSBwb2ludGVyIGV2ZW50cyBsaWtlIHJpZ2h0XG4gKiBjbGljayBhbmQgbXVsdGl0b3VjaC5cbiAqXG4gKiBJdCBhbHNvIGFkZHMgYWNjZXNzaWJpbGl0eSBzdXBwb3J0IGZvciBrZXlib2FyZHMsIHdoZXJlXG4gKiBhbiBlbGVtZW50IHdpdGggYSBwcmVzcyBnZXN0dXJlIHdpbGwgcmVjZWl2ZSBmb2N1cyBhbmRcbiAqICB0cmlnZ2VyIG9uIEVudGVyIGBcImtleWRvd25cImAgYW5kIGBcImtleXVwXCJgIGV2ZW50cy5cbiAqXG4gKiBUaGlzIGlzIGRpZmZlcmVudCB0byBhIGJyb3dzZXIncyBgXCJjbGlja1wiYCBldmVudCwgd2hpY2ggZG9lc1xuICogcmVzcG9uZCB0byBrZXlib2FyZHMgYnV0IG9ubHkgZm9yIHRoZSBgXCJjbGlja1wiYCBpdHNlbGYsIHJhdGhlclxuICogdGhhbiB0aGUgcHJlc3Mgc3RhcnQgYW5kIGVuZC9jYW5jZWwuIFRoZSBlbGVtZW50IGFsc28gbmVlZHNcbiAqIHRvIGJlIGZvY3VzYWJsZSBmb3IgdGhpcyB0byB3b3JrLCB3aGVyZWFzIGEgcHJlc3MgZ2VzdHVyZSB3aWxsXG4gKiBtYWtlIGFuIGVsZW1lbnQgZm9jdXNhYmxlIGJ5IGRlZmF1bHQuXG4gKlxuICogQHB1YmxpY1xuICovXG5mdW5jdGlvbiBwcmVzcyh0YXJnZXRPclNlbGVjdG9yLCBvblByZXNzU3RhcnQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IFt0YXJnZXRzLCBldmVudE9wdGlvbnMsIGNhbmNlbEV2ZW50c10gPSBzZXR1cEdlc3R1cmUodGFyZ2V0T3JTZWxlY3Rvciwgb3B0aW9ucyk7XG4gICAgY29uc3Qgc3RhcnRQcmVzcyA9IChzdGFydEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHN0YXJ0RXZlbnQuY3VycmVudFRhcmdldDtcbiAgICAgICAgaWYgKCFpc1ZhbGlkUHJlc3NFdmVudChzdGFydEV2ZW50KSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKGNsYWltZWRQb2ludGVyRG93bkV2ZW50cy5oYXMoc3RhcnRFdmVudCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlzUHJlc3NpbmcuYWRkKHRhcmdldCk7XG4gICAgICAgIGlmIChvcHRpb25zLnN0b3BQcm9wYWdhdGlvbikge1xuICAgICAgICAgICAgY2xhaW1lZFBvaW50ZXJEb3duRXZlbnRzLmFkZChzdGFydEV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvblByZXNzRW5kID0gb25QcmVzc1N0YXJ0KHRhcmdldCwgc3RhcnRFdmVudCk7XG4gICAgICAgIGNvbnN0IG9uUG9pbnRlckVuZCA9IChlbmRFdmVudCwgc3VjY2VzcykgPT4ge1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgb25Qb2ludGVyVXApO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJwb2ludGVyY2FuY2VsXCIsIG9uUG9pbnRlckNhbmNlbCk7XG4gICAgICAgICAgICBpZiAoaXNQcmVzc2luZy5oYXModGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIGlzUHJlc3NpbmcuZGVsZXRlKHRhcmdldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWlzVmFsaWRQcmVzc0V2ZW50KGVuZEV2ZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb25QcmVzc0VuZCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgb25QcmVzc0VuZChlbmRFdmVudCwgeyBzdWNjZXNzIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvblBvaW50ZXJVcCA9ICh1cEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBvblBvaW50ZXJFbmQodXBFdmVudCwgdGFyZ2V0ID09PSB3aW5kb3cgfHxcbiAgICAgICAgICAgICAgICB0YXJnZXQgPT09IGRvY3VtZW50IHx8XG4gICAgICAgICAgICAgICAgb3B0aW9ucy51c2VHbG9iYWxUYXJnZXQgfHxcbiAgICAgICAgICAgICAgICBpc05vZGVPckNoaWxkKHRhcmdldCwgdXBFdmVudC50YXJnZXQpKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgb25Qb2ludGVyQ2FuY2VsID0gKGNhbmNlbEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBvblBvaW50ZXJFbmQoY2FuY2VsRXZlbnQsIGZhbHNlKTtcbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJwb2ludGVydXBcIiwgb25Qb2ludGVyVXAsIGV2ZW50T3B0aW9ucyk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmNhbmNlbFwiLCBvblBvaW50ZXJDYW5jZWwsIGV2ZW50T3B0aW9ucyk7XG4gICAgfTtcbiAgICB0YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgICAgICBjb25zdCBwb2ludGVyRG93blRhcmdldCA9IG9wdGlvbnMudXNlR2xvYmFsVGFyZ2V0ID8gd2luZG93IDogdGFyZ2V0O1xuICAgICAgICBwb2ludGVyRG93blRhcmdldC5hZGRFdmVudExpc3RlbmVyKFwicG9pbnRlcmRvd25cIiwgc3RhcnRQcmVzcywgZXZlbnRPcHRpb25zKTtcbiAgICAgICAgaWYgKGlzSFRNTEVsZW1lbnQodGFyZ2V0KSkge1xuICAgICAgICAgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c1wiLCAoZXZlbnQpID0+IGVuYWJsZUtleWJvYXJkUHJlc3MoZXZlbnQsIGV2ZW50T3B0aW9ucykpO1xuICAgICAgICAgICAgaWYgKCFpc0VsZW1lbnRLZXlib2FyZEFjY2Vzc2libGUodGFyZ2V0KSAmJlxuICAgICAgICAgICAgICAgICF0YXJnZXQuaGFzQXR0cmlidXRlKFwidGFiaW5kZXhcIikpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXQudGFiSW5kZXggPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNhbmNlbEV2ZW50cztcbn1cblxuZXhwb3J0IHsgcHJlc3MgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs": +/*!*****************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isElementKeyboardAccessible: () => (/* binding */ isElementKeyboardAccessible),\n/* harmony export */ isElementTextInput: () => (/* binding */ isElementTextInput)\n/* harmony export */ });\nconst keyboardAccessibleElements = new Set([\n \"BUTTON\",\n \"INPUT\",\n \"SELECT\",\n \"TEXTAREA\",\n \"A\",\n]);\n/**\n * Checks if an element is natively keyboard accessible (focusable).\n * Used by the press gesture to determine if we need to add tabIndex.\n */\nfunction isElementKeyboardAccessible(element) {\n return (keyboardAccessibleElements.has(element.tagName) ||\n element.isContentEditable === true);\n}\nconst textInputElements = new Set([\"INPUT\", \"SELECT\", \"TEXTAREA\"]);\n/**\n * Checks if an element has text selection or direct interaction behavior\n * that should block drag gestures from starting.\n *\n * This specifically targets form controls where the user might want to select\n * text or interact with the control (e.g., sliders, dropdowns).\n *\n * Buttons and links are NOT included because they don't have click-and-move\n * actions of their own - they only respond to click events, so dragging\n * should still work when initiated from these elements.\n */\nfunction isElementTextInput(element) {\n return (textInputElements.has(element.tagName) ||\n element.isContentEditable === true);\n}\n\n\n//# sourceMappingURL=is-keyboard-accessible.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvdXRpbHMvaXMta2V5Ym9hcmQtYWNjZXNzaWJsZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMkQ7QUFDM0QiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzL3V0aWxzL2lzLWtleWJvYXJkLWFjY2Vzc2libGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGtleWJvYXJkQWNjZXNzaWJsZUVsZW1lbnRzID0gbmV3IFNldChbXG4gICAgXCJCVVRUT05cIixcbiAgICBcIklOUFVUXCIsXG4gICAgXCJTRUxFQ1RcIixcbiAgICBcIlRFWFRBUkVBXCIsXG4gICAgXCJBXCIsXG5dKTtcbi8qKlxuICogQ2hlY2tzIGlmIGFuIGVsZW1lbnQgaXMgbmF0aXZlbHkga2V5Ym9hcmQgYWNjZXNzaWJsZSAoZm9jdXNhYmxlKS5cbiAqIFVzZWQgYnkgdGhlIHByZXNzIGdlc3R1cmUgdG8gZGV0ZXJtaW5lIGlmIHdlIG5lZWQgdG8gYWRkIHRhYkluZGV4LlxuICovXG5mdW5jdGlvbiBpc0VsZW1lbnRLZXlib2FyZEFjY2Vzc2libGUoZWxlbWVudCkge1xuICAgIHJldHVybiAoa2V5Ym9hcmRBY2Nlc3NpYmxlRWxlbWVudHMuaGFzKGVsZW1lbnQudGFnTmFtZSkgfHxcbiAgICAgICAgZWxlbWVudC5pc0NvbnRlbnRFZGl0YWJsZSA9PT0gdHJ1ZSk7XG59XG5jb25zdCB0ZXh0SW5wdXRFbGVtZW50cyA9IG5ldyBTZXQoW1wiSU5QVVRcIiwgXCJTRUxFQ1RcIiwgXCJURVhUQVJFQVwiXSk7XG4vKipcbiAqIENoZWNrcyBpZiBhbiBlbGVtZW50IGhhcyB0ZXh0IHNlbGVjdGlvbiBvciBkaXJlY3QgaW50ZXJhY3Rpb24gYmVoYXZpb3JcbiAqIHRoYXQgc2hvdWxkIGJsb2NrIGRyYWcgZ2VzdHVyZXMgZnJvbSBzdGFydGluZy5cbiAqXG4gKiBUaGlzIHNwZWNpZmljYWxseSB0YXJnZXRzIGZvcm0gY29udHJvbHMgd2hlcmUgdGhlIHVzZXIgbWlnaHQgd2FudCB0byBzZWxlY3RcbiAqIHRleHQgb3IgaW50ZXJhY3Qgd2l0aCB0aGUgY29udHJvbCAoZS5nLiwgc2xpZGVycywgZHJvcGRvd25zKS5cbiAqXG4gKiBCdXR0b25zIGFuZCBsaW5rcyBhcmUgTk9UIGluY2x1ZGVkIGJlY2F1c2UgdGhleSBkb24ndCBoYXZlIGNsaWNrLWFuZC1tb3ZlXG4gKiBhY3Rpb25zIG9mIHRoZWlyIG93biAtIHRoZXkgb25seSByZXNwb25kIHRvIGNsaWNrIGV2ZW50cywgc28gZHJhZ2dpbmdcbiAqIHNob3VsZCBzdGlsbCB3b3JrIHdoZW4gaW5pdGlhdGVkIGZyb20gdGhlc2UgZWxlbWVudHMuXG4gKi9cbmZ1bmN0aW9uIGlzRWxlbWVudFRleHRJbnB1dChlbGVtZW50KSB7XG4gICAgcmV0dXJuICh0ZXh0SW5wdXRFbGVtZW50cy5oYXMoZWxlbWVudC50YWdOYW1lKSB8fFxuICAgICAgICBlbGVtZW50LmlzQ29udGVudEVkaXRhYmxlID09PSB0cnVlKTtcbn1cblxuZXhwb3J0IHsgaXNFbGVtZW50S2V5Ym9hcmRBY2Nlc3NpYmxlLCBpc0VsZW1lbnRUZXh0SW5wdXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWtleWJvYXJkLWFjY2Vzc2libGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ enableKeyboardPress: () => (/* binding */ enableKeyboardPress)\n/* harmony export */ });\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\");\n\n\n/**\n * Filter out events that are not \"Enter\" keys.\n */\nfunction filterEvents(callback) {\n return (event) => {\n if (event.key !== \"Enter\")\n return;\n callback(event);\n };\n}\nfunction firePointerEvent(target, type) {\n target.dispatchEvent(new PointerEvent(\"pointer\" + type, { isPrimary: true, bubbles: true }));\n}\nconst enableKeyboardPress = (focusEvent, eventOptions) => {\n const element = focusEvent.currentTarget;\n if (!element)\n return;\n const handleKeydown = filterEvents(() => {\n if (_state_mjs__WEBPACK_IMPORTED_MODULE_0__.isPressing.has(element))\n return;\n firePointerEvent(element, \"down\");\n const handleKeyup = filterEvents(() => {\n firePointerEvent(element, \"up\");\n });\n const handleBlur = () => firePointerEvent(element, \"cancel\");\n element.addEventListener(\"keyup\", handleKeyup, eventOptions);\n element.addEventListener(\"blur\", handleBlur, eventOptions);\n });\n element.addEventListener(\"keydown\", handleKeydown, eventOptions);\n /**\n * Add an event listener that fires on blur to remove the keydown events.\n */\n element.addEventListener(\"blur\", () => element.removeEventListener(\"keydown\", handleKeydown), eventOptions);\n};\n\n\n//# sourceMappingURL=keyboard.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvdXRpbHMva2V5Ym9hcmQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlDOztBQUV6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOERBQThELGdDQUFnQztBQUM5RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGtEQUFVO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy9wcmVzcy91dGlscy9rZXlib2FyZC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQcmVzc2luZyB9IGZyb20gJy4vc3RhdGUubWpzJztcblxuLyoqXG4gKiBGaWx0ZXIgb3V0IGV2ZW50cyB0aGF0IGFyZSBub3QgXCJFbnRlclwiIGtleXMuXG4gKi9cbmZ1bmN0aW9uIGZpbHRlckV2ZW50cyhjYWxsYmFjaykge1xuICAgIHJldHVybiAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gXCJFbnRlclwiKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGZpcmVQb2ludGVyRXZlbnQodGFyZ2V0LCB0eXBlKSB7XG4gICAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IFBvaW50ZXJFdmVudChcInBvaW50ZXJcIiArIHR5cGUsIHsgaXNQcmltYXJ5OiB0cnVlLCBidWJibGVzOiB0cnVlIH0pKTtcbn1cbmNvbnN0IGVuYWJsZUtleWJvYXJkUHJlc3MgPSAoZm9jdXNFdmVudCwgZXZlbnRPcHRpb25zKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGZvY3VzRXZlbnQuY3VycmVudFRhcmdldDtcbiAgICBpZiAoIWVsZW1lbnQpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBoYW5kbGVLZXlkb3duID0gZmlsdGVyRXZlbnRzKCgpID0+IHtcbiAgICAgICAgaWYgKGlzUHJlc3NpbmcuaGFzKGVsZW1lbnQpKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBmaXJlUG9pbnRlckV2ZW50KGVsZW1lbnQsIFwiZG93blwiKTtcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5dXAgPSBmaWx0ZXJFdmVudHMoKCkgPT4ge1xuICAgICAgICAgICAgZmlyZVBvaW50ZXJFdmVudChlbGVtZW50LCBcInVwXCIpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgaGFuZGxlQmx1ciA9ICgpID0+IGZpcmVQb2ludGVyRXZlbnQoZWxlbWVudCwgXCJjYW5jZWxcIik7XG4gICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleXVwXCIsIGhhbmRsZUtleXVwLCBldmVudE9wdGlvbnMpO1xuICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsIGhhbmRsZUJsdXIsIGV2ZW50T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBoYW5kbGVLZXlkb3duLCBldmVudE9wdGlvbnMpO1xuICAgIC8qKlxuICAgICAqIEFkZCBhbiBldmVudCBsaXN0ZW5lciB0aGF0IGZpcmVzIG9uIGJsdXIgdG8gcmVtb3ZlIHRoZSBrZXlkb3duIGV2ZW50cy5cbiAgICAgKi9cbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJibHVyXCIsICgpID0+IGVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgaGFuZGxlS2V5ZG93biksIGV2ZW50T3B0aW9ucyk7XG59O1xuXG5leHBvcnQgeyBlbmFibGVLZXlib2FyZFByZXNzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1rZXlib2FyZC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPressing: () => (/* binding */ isPressing)\n/* harmony export */ });\nconst isPressing = new WeakSet();\n\n\n//# sourceMappingURL=state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvcHJlc3MvdXRpbHMvc3RhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFFc0I7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3ByZXNzL3V0aWxzL3N0YXRlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc1ByZXNzaW5nID0gbmV3IFdlYWtTZXQoKTtcblxuZXhwb3J0IHsgaXNQcmVzc2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RhdGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNodeOrChild: () => (/* binding */ isNodeOrChild)\n/* harmony export */ });\n/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nconst isNodeOrChild = (parent, child) => {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\n\n//# sourceMappingURL=is-node-or-child.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvaXMtbm9kZS1vci1jaGlsZC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL2dlc3R1cmVzL3V0aWxzL2lzLW5vZGUtb3ItY2hpbGQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVjdXJzaXZlbHkgdHJhdmVyc2UgdXAgdGhlIHRyZWUgdG8gY2hlY2sgd2hldGhlciB0aGUgcHJvdmlkZWQgY2hpbGQgbm9kZVxuICogaXMgdGhlIHBhcmVudCBvciBhIGRlc2NlbmRhbnQgb2YgaXQuXG4gKlxuICogQHBhcmFtIHBhcmVudCAtIEVsZW1lbnQgdG8gZmluZFxuICogQHBhcmFtIGNoaWxkIC0gRWxlbWVudCB0byB0ZXN0IGFnYWluc3QgcGFyZW50XG4gKi9cbmNvbnN0IGlzTm9kZU9yQ2hpbGQgPSAocGFyZW50LCBjaGlsZCkgPT4ge1xuICAgIGlmICghY2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIGlmIChwYXJlbnQgPT09IGNoaWxkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGlzTm9kZU9yQ2hpbGQocGFyZW50LCBjaGlsZC5wYXJlbnRFbGVtZW50KTtcbiAgICB9XG59O1xuXG5leHBvcnQgeyBpc05vZGVPckNoaWxkIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1ub2RlLW9yLWNoaWxkLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isPrimaryPointer: () => (/* binding */ isPrimaryPointer)\n/* harmony export */ });\nconst isPrimaryPointer = (event) => {\n if (event.pointerType === \"mouse\") {\n return typeof event.button !== \"number\" || event.button <= 0;\n }\n else {\n /**\n * isPrimary is true for all mice buttons, whereas every touch point\n * is regarded as its own input. So subsequent concurrent touch points\n * will be false.\n *\n * Specifically match against false here as incomplete versions of\n * PointerEvents in very old browser might have it set as undefined.\n */\n return event.isPrimary !== false;\n }\n};\n\n\n//# sourceMappingURL=is-primary-pointer.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvaXMtcHJpbWFyeS1wb2ludGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTRCO0FBQzVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy91dGlscy9pcy1wcmltYXJ5LXBvaW50ZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzUHJpbWFyeVBvaW50ZXIgPSAoZXZlbnQpID0+IHtcbiAgICBpZiAoZXZlbnQucG9pbnRlclR5cGUgPT09IFwibW91c2VcIikge1xuICAgICAgICByZXR1cm4gdHlwZW9mIGV2ZW50LmJ1dHRvbiAhPT0gXCJudW1iZXJcIiB8fCBldmVudC5idXR0b24gPD0gMDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBpc1ByaW1hcnkgaXMgdHJ1ZSBmb3IgYWxsIG1pY2UgYnV0dG9ucywgd2hlcmVhcyBldmVyeSB0b3VjaCBwb2ludFxuICAgICAgICAgKiBpcyByZWdhcmRlZCBhcyBpdHMgb3duIGlucHV0LiBTbyBzdWJzZXF1ZW50IGNvbmN1cnJlbnQgdG91Y2ggcG9pbnRzXG4gICAgICAgICAqIHdpbGwgYmUgZmFsc2UuXG4gICAgICAgICAqXG4gICAgICAgICAqIFNwZWNpZmljYWxseSBtYXRjaCBhZ2FpbnN0IGZhbHNlIGhlcmUgYXMgaW5jb21wbGV0ZSB2ZXJzaW9ucyBvZlxuICAgICAgICAgKiBQb2ludGVyRXZlbnRzIGluIHZlcnkgb2xkIGJyb3dzZXIgbWlnaHQgaGF2ZSBpdCBzZXQgYXMgdW5kZWZpbmVkLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIGV2ZW50LmlzUHJpbWFyeSAhPT0gZmFsc2U7XG4gICAgfVxufTtcblxuZXhwb3J0IHsgaXNQcmltYXJ5UG9pbnRlciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtcHJpbWFyeS1wb2ludGVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setupGesture: () => (/* binding */ setupGesture)\n/* harmony export */ });\n/* harmony import */ var _utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/resolve-elements.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\");\n\n\nfunction setupGesture(elementOrSelector, options) {\n const elements = (0,_utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveElements)(elementOrSelector);\n const gestureAbortController = new AbortController();\n const eventOptions = {\n passive: true,\n ...options,\n signal: gestureAbortController.signal,\n };\n const cancel = () => gestureAbortController.abort();\n return [elements, eventOptions, cancel];\n}\n\n\n//# sourceMappingURL=setup.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvZ2VzdHVyZXMvdXRpbHMvc2V0dXAubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQW1FOztBQUVuRTtBQUNBLHFCQUFxQiw0RUFBZTtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXdCO0FBQ3hCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9nZXN0dXJlcy91dGlscy9zZXR1cC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZUVsZW1lbnRzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVzb2x2ZS1lbGVtZW50cy5tanMnO1xuXG5mdW5jdGlvbiBzZXR1cEdlc3R1cmUoZWxlbWVudE9yU2VsZWN0b3IsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHJlc29sdmVFbGVtZW50cyhlbGVtZW50T3JTZWxlY3Rvcik7XG4gICAgY29uc3QgZ2VzdHVyZUFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICBjb25zdCBldmVudE9wdGlvbnMgPSB7XG4gICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHNpZ25hbDogZ2VzdHVyZUFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgfTtcbiAgICBjb25zdCBjYW5jZWwgPSAoKSA9PiBnZXN0dXJlQWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gICAgcmV0dXJuIFtlbGVtZW50cywgZXZlbnRPcHRpb25zLCBjYW5jZWxdO1xufVxuXG5leHBvcnQgeyBzZXR1cEdlc3R1cmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNldHVwLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/gestures/utils/setup.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixValues: () => (/* binding */ mixValues)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n\n\n\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(0, lead.opacity ?? 1, easeCrossfadeIn(progress));\n target.opacityExit = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.opacity ?? 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.opacity ?? 1, lead.opacity ?? 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max((0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (_value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.percent.test(leadRadius) || _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\nconst easeCrossfadeIn = /*@__PURE__*/ compress(0, 0.5, motion_utils__WEBPACK_IMPORTED_MODULE_2__.circOut);\nconst easeCrossfadeOut = /*@__PURE__*/ compress(0.5, 0.95, motion_utils__WEBPACK_IMPORTED_MODULE_3__.noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing((0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.progress)(min, max, p));\n };\n}\n\n\n//# sourceMappingURL=mix-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9hbmltYXRpb24vbWl4LXZhbHVlcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXVEO0FBQ1c7QUFDWDs7QUFFdkQ7QUFDQTtBQUNBO0FBQ0EscURBQXFELDhEQUFFO0FBQ3ZEO0FBQ0E7QUFDQSx5QkFBeUIsZ0VBQVM7QUFDbEMsNkJBQTZCLGdFQUFTO0FBQ3RDO0FBQ0E7QUFDQSx5QkFBeUIsZ0VBQVM7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDLHFDQUFxQyxXQUFXO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLGdFQUFTO0FBQ3BELGdCQUFnQixtRUFBTyxxQkFBcUIsbUVBQU87QUFDbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnRUFBUztBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RCxpREFBTztBQUM5RCwyREFBMkQsOENBQUk7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0Isc0RBQVE7QUFDOUI7QUFDQTs7QUFFcUI7QUFDckIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vYW5pbWF0aW9uL21peC12YWx1ZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1peE51bWJlciB9IGZyb20gJy4uLy4uL3V0aWxzL21peC9udW1iZXIubWpzJztcbmltcG9ydCB7IHBlcmNlbnQsIHB4IH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMnO1xuaW1wb3J0IHsgcHJvZ3Jlc3MsIGNpcmNPdXQsIG5vb3AgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuXG5jb25zdCBib3JkZXJzID0gW1wiVG9wTGVmdFwiLCBcIlRvcFJpZ2h0XCIsIFwiQm90dG9tTGVmdFwiLCBcIkJvdHRvbVJpZ2h0XCJdO1xuY29uc3QgbnVtQm9yZGVycyA9IGJvcmRlcnMubGVuZ3RoO1xuY29uc3QgYXNOdW1iZXIgPSAodmFsdWUpID0+IHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiA/IHBhcnNlRmxvYXQodmFsdWUpIDogdmFsdWU7XG5jb25zdCBpc1B4ID0gKHZhbHVlKSA9PiB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIgfHwgcHgudGVzdCh2YWx1ZSk7XG5mdW5jdGlvbiBtaXhWYWx1ZXModGFyZ2V0LCBmb2xsb3csIGxlYWQsIHByb2dyZXNzLCBzaG91bGRDcm9zc2ZhZGVPcGFjaXR5LCBpc09ubHlNZW1iZXIpIHtcbiAgICBpZiAoc2hvdWxkQ3Jvc3NmYWRlT3BhY2l0eSkge1xuICAgICAgICB0YXJnZXQub3BhY2l0eSA9IG1peE51bWJlcigwLCBsZWFkLm9wYWNpdHkgPz8gMSwgZWFzZUNyb3NzZmFkZUluKHByb2dyZXNzKSk7XG4gICAgICAgIHRhcmdldC5vcGFjaXR5RXhpdCA9IG1peE51bWJlcihmb2xsb3cub3BhY2l0eSA/PyAxLCAwLCBlYXNlQ3Jvc3NmYWRlT3V0KHByb2dyZXNzKSk7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzT25seU1lbWJlcikge1xuICAgICAgICB0YXJnZXQub3BhY2l0eSA9IG1peE51bWJlcihmb2xsb3cub3BhY2l0eSA/PyAxLCBsZWFkLm9wYWNpdHkgPz8gMSwgcHJvZ3Jlc3MpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBNaXggYm9yZGVyIHJhZGl1c1xuICAgICAqL1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtQm9yZGVyczsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGJvcmRlckxhYmVsID0gYGJvcmRlciR7Ym9yZGVyc1tpXX1SYWRpdXNgO1xuICAgICAgICBsZXQgZm9sbG93UmFkaXVzID0gZ2V0UmFkaXVzKGZvbGxvdywgYm9yZGVyTGFiZWwpO1xuICAgICAgICBsZXQgbGVhZFJhZGl1cyA9IGdldFJhZGl1cyhsZWFkLCBib3JkZXJMYWJlbCk7XG4gICAgICAgIGlmIChmb2xsb3dSYWRpdXMgPT09IHVuZGVmaW5lZCAmJiBsZWFkUmFkaXVzID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgZm9sbG93UmFkaXVzIHx8IChmb2xsb3dSYWRpdXMgPSAwKTtcbiAgICAgICAgbGVhZFJhZGl1cyB8fCAobGVhZFJhZGl1cyA9IDApO1xuICAgICAgICBjb25zdCBjYW5NaXggPSBmb2xsb3dSYWRpdXMgPT09IDAgfHxcbiAgICAgICAgICAgIGxlYWRSYWRpdXMgPT09IDAgfHxcbiAgICAgICAgICAgIGlzUHgoZm9sbG93UmFkaXVzKSA9PT0gaXNQeChsZWFkUmFkaXVzKTtcbiAgICAgICAgaWYgKGNhbk1peCkge1xuICAgICAgICAgICAgdGFyZ2V0W2JvcmRlckxhYmVsXSA9IE1hdGgubWF4KG1peE51bWJlcihhc051bWJlcihmb2xsb3dSYWRpdXMpLCBhc051bWJlcihsZWFkUmFkaXVzKSwgcHJvZ3Jlc3MpLCAwKTtcbiAgICAgICAgICAgIGlmIChwZXJjZW50LnRlc3QobGVhZFJhZGl1cykgfHwgcGVyY2VudC50ZXN0KGZvbGxvd1JhZGl1cykpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRbYm9yZGVyTGFiZWxdICs9IFwiJVwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGFyZ2V0W2JvcmRlckxhYmVsXSA9IGxlYWRSYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogTWl4IHJvdGF0aW9uXG4gICAgICovXG4gICAgaWYgKGZvbGxvdy5yb3RhdGUgfHwgbGVhZC5yb3RhdGUpIHtcbiAgICAgICAgdGFyZ2V0LnJvdGF0ZSA9IG1peE51bWJlcihmb2xsb3cucm90YXRlIHx8IDAsIGxlYWQucm90YXRlIHx8IDAsIHByb2dyZXNzKTtcbiAgICB9XG59XG5mdW5jdGlvbiBnZXRSYWRpdXModmFsdWVzLCByYWRpdXNOYW1lKSB7XG4gICAgcmV0dXJuIHZhbHVlc1tyYWRpdXNOYW1lXSAhPT0gdW5kZWZpbmVkXG4gICAgICAgID8gdmFsdWVzW3JhZGl1c05hbWVdXG4gICAgICAgIDogdmFsdWVzLmJvcmRlclJhZGl1cztcbn1cbmNvbnN0IGVhc2VDcm9zc2ZhZGVJbiA9IC8qQF9fUFVSRV9fKi8gY29tcHJlc3MoMCwgMC41LCBjaXJjT3V0KTtcbmNvbnN0IGVhc2VDcm9zc2ZhZGVPdXQgPSAvKkBfX1BVUkVfXyovIGNvbXByZXNzKDAuNSwgMC45NSwgbm9vcCk7XG5mdW5jdGlvbiBjb21wcmVzcyhtaW4sIG1heCwgZWFzaW5nKSB7XG4gICAgcmV0dXJuIChwKSA9PiB7XG4gICAgICAgIC8vIENvdWxkIHJlcGxhY2UgaWZzIHdpdGggY2xhbXBcbiAgICAgICAgaWYgKHAgPCBtaW4pXG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgaWYgKHAgPiBtYXgpXG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgcmV0dXJuIGVhc2luZyhwcm9ncmVzcyhtaW4sIG1heCwgcCkpO1xuICAgIH07XG59XG5cbmV4cG9ydCB7IG1peFZhbHVlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWl4LXZhbHVlcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ convertBoundingBoxToBox: () => (/* binding */ convertBoundingBoxToBox),\n/* harmony export */ convertBoxToBoundingBox: () => (/* binding */ convertBoxToBoundingBox),\n/* harmony export */ transformBoxPoints: () => (/* binding */ transformBoxPoints)\n/* harmony export */ });\n/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox({ top, left, right, bottom, }) {\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox({ x, y }) {\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n const topLeft = transformPoint({ x: point.left, y: point.top });\n const bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\n\n//# sourceMappingURL=conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9jb252ZXJzaW9uLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLDJCQUEyQjtBQUM5RDtBQUNBLGFBQWEsdUJBQXVCO0FBQ3BDLGFBQWEsdUJBQXVCO0FBQ3BDO0FBQ0E7QUFDQSxtQ0FBbUMsTUFBTTtBQUN6QyxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLDZCQUE2QjtBQUNsRSx5Q0FBeUMsaUNBQWlDO0FBQzFFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVnRjtBQUNoRiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9jb252ZXJzaW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJvdW5kaW5nIGJveGVzIHRlbmQgdG8gYmUgZGVmaW5lZCBhcyB0b3AsIGxlZnQsIHJpZ2h0LCBib3R0b20uIEZvciB2YXJpb3VzIG9wZXJhdGlvbnNcbiAqIGl0J3MgZWFzaWVyIHRvIGNvbnNpZGVyIGVhY2ggYXhpcyBpbmRpdmlkdWFsbHkuIFRoaXMgZnVuY3Rpb24gcmV0dXJucyBhIGJvdW5kaW5nIGJveFxuICogYXMgYSBtYXAgb2Ygc2luZ2xlLWF4aXMgbWluL21heCB2YWx1ZXMuXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRCb3VuZGluZ0JveFRvQm94KHsgdG9wLCBsZWZ0LCByaWdodCwgYm90dG9tLCB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgeDogeyBtaW46IGxlZnQsIG1heDogcmlnaHQgfSxcbiAgICAgICAgeTogeyBtaW46IHRvcCwgbWF4OiBib3R0b20gfSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY29udmVydEJveFRvQm91bmRpbmdCb3goeyB4LCB5IH0pIHtcbiAgICByZXR1cm4geyB0b3A6IHkubWluLCByaWdodDogeC5tYXgsIGJvdHRvbTogeS5tYXgsIGxlZnQ6IHgubWluIH07XG59XG4vKipcbiAqIEFwcGxpZXMgYSBUcmFuc2Zvcm1Qb2ludCBmdW5jdGlvbiB0byBhIGJvdW5kaW5nIGJveC4gVHJhbnNmb3JtUG9pbnQgaXMgdXN1YWxseSBhIGZ1bmN0aW9uXG4gKiBwcm92aWRlZCBieSBGcmFtZXIgdG8gYWxsb3cgbWVhc3VyZWQgcG9pbnRzIHRvIGJlIGNvcnJlY3RlZCBmb3IgZGV2aWNlIHNjYWxpbmcuIFRoaXMgaXMgdXNlZFxuICogd2hlbiBtZWFzdXJpbmcgRE9NIGVsZW1lbnRzIGFuZCBET00gZXZlbnQgcG9pbnRzLlxuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1Cb3hQb2ludHMocG9pbnQsIHRyYW5zZm9ybVBvaW50KSB7XG4gICAgaWYgKCF0cmFuc2Zvcm1Qb2ludClcbiAgICAgICAgcmV0dXJuIHBvaW50O1xuICAgIGNvbnN0IHRvcExlZnQgPSB0cmFuc2Zvcm1Qb2ludCh7IHg6IHBvaW50LmxlZnQsIHk6IHBvaW50LnRvcCB9KTtcbiAgICBjb25zdCBib3R0b21SaWdodCA9IHRyYW5zZm9ybVBvaW50KHsgeDogcG9pbnQucmlnaHQsIHk6IHBvaW50LmJvdHRvbSB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICB0b3A6IHRvcExlZnQueSxcbiAgICAgICAgbGVmdDogdG9wTGVmdC54LFxuICAgICAgICBib3R0b206IGJvdHRvbVJpZ2h0LnksXG4gICAgICAgIHJpZ2h0OiBib3R0b21SaWdodC54LFxuICAgIH07XG59XG5cbmV4cG9ydCB7IGNvbnZlcnRCb3VuZGluZ0JveFRvQm94LCBjb252ZXJ0Qm94VG9Cb3VuZGluZ0JveCwgdHJhbnNmb3JtQm94UG9pbnRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb252ZXJzaW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/copy.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/copy.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ copyAxisDeltaInto: () => (/* binding */ copyAxisDeltaInto),\n/* harmony export */ copyAxisInto: () => (/* binding */ copyAxisInto),\n/* harmony export */ copyBoxInto: () => (/* binding */ copyBoxInto)\n/* harmony export */ });\n/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n/**\n * Reset a delta to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisDeltaInto(delta, originDelta) {\n delta.translate = originDelta.translate;\n delta.scale = originDelta.scale;\n delta.originPoint = originDelta.originPoint;\n delta.origin = originDelta.origin;\n}\n\n\n//# sourceMappingURL=copy.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9jb3B5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV3RDtBQUN4RCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9jb3B5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc2V0IGFuIGF4aXMgdG8gdGhlIHByb3ZpZGVkIG9yaWdpbiBib3guXG4gKlxuICogVGhpcyBpcyBhIG11dGF0aXZlIG9wZXJhdGlvbi5cbiAqL1xuZnVuY3Rpb24gY29weUF4aXNJbnRvKGF4aXMsIG9yaWdpbkF4aXMpIHtcbiAgICBheGlzLm1pbiA9IG9yaWdpbkF4aXMubWluO1xuICAgIGF4aXMubWF4ID0gb3JpZ2luQXhpcy5tYXg7XG59XG4vKipcbiAqIFJlc2V0IGEgYm94IHRvIHRoZSBwcm92aWRlZCBvcmlnaW4gYm94LlxuICpcbiAqIFRoaXMgaXMgYSBtdXRhdGl2ZSBvcGVyYXRpb24uXG4gKi9cbmZ1bmN0aW9uIGNvcHlCb3hJbnRvKGJveCwgb3JpZ2luQm94KSB7XG4gICAgY29weUF4aXNJbnRvKGJveC54LCBvcmlnaW5Cb3gueCk7XG4gICAgY29weUF4aXNJbnRvKGJveC55LCBvcmlnaW5Cb3gueSk7XG59XG4vKipcbiAqIFJlc2V0IGEgZGVsdGEgdG8gdGhlIHByb3ZpZGVkIG9yaWdpbiBib3guXG4gKlxuICogVGhpcyBpcyBhIG11dGF0aXZlIG9wZXJhdGlvbi5cbiAqL1xuZnVuY3Rpb24gY29weUF4aXNEZWx0YUludG8oZGVsdGEsIG9yaWdpbkRlbHRhKSB7XG4gICAgZGVsdGEudHJhbnNsYXRlID0gb3JpZ2luRGVsdGEudHJhbnNsYXRlO1xuICAgIGRlbHRhLnNjYWxlID0gb3JpZ2luRGVsdGEuc2NhbGU7XG4gICAgZGVsdGEub3JpZ2luUG9pbnQgPSBvcmlnaW5EZWx0YS5vcmlnaW5Qb2ludDtcbiAgICBkZWx0YS5vcmlnaW4gPSBvcmlnaW5EZWx0YS5vcmlnaW47XG59XG5cbmV4cG9ydCB7IGNvcHlBeGlzRGVsdGFJbnRvLCBjb3B5QXhpc0ludG8sIGNvcHlCb3hJbnRvIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb3B5Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/copy.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ applyAxisDelta: () => (/* binding */ applyAxisDelta),\n/* harmony export */ applyBoxDelta: () => (/* binding */ applyBoxDelta),\n/* harmony export */ applyPointDelta: () => (/* binding */ applyPointDelta),\n/* harmony export */ applyTreeDeltas: () => (/* binding */ applyTreeDeltas),\n/* harmony export */ scalePoint: () => (/* binding */ scalePoint),\n/* harmony export */ transformAxis: () => (/* binding */ transformAxis),\n/* harmony export */ transformBox: () => (/* binding */ transformBox),\n/* harmony export */ translateAxis: () => (/* binding */ translateAxis)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/has-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs\");\n\n\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n const distanceFromOrigin = point - originPoint;\n const scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate = 0, scale = 1, originPoint, boxScale) {\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, { x, y }) {\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\nconst TREE_SCALE_SNAP_MIN = 0.999999999999;\nconst TREE_SCALE_SNAP_MAX = 1.0000000000001;\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition = false) {\n const treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n let node;\n let delta;\n for (let i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n /**\n * TODO: Prefer to remove this, but currently we have motion components with\n * display: contents in Framer.\n */\n const { visualElement } = node.options;\n if (visualElement &&\n visualElement.props.style &&\n visualElement.props.style.display === \"contents\") {\n continue;\n }\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a cumulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.hasTransform)(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n /**\n * Snap tree scale back to 1 if it's within a non-perceivable threshold.\n * This will help reduce useless scales getting rendered.\n */\n if (treeScale.x < TREE_SCALE_SNAP_MAX &&\n treeScale.x > TREE_SCALE_SNAP_MIN) {\n treeScale.x = 1.0;\n }\n if (treeScale.y < TREE_SCALE_SNAP_MAX &&\n treeScale.y > TREE_SCALE_SNAP_MIN) {\n treeScale.y = 1.0;\n }\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, axisTranslate, axisScale, boxScale, axisOrigin = 0.5) {\n const originPoint = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, axisTranslate, axisScale, originPoint, boxScale);\n}\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform.x, transform.scaleX, transform.scale, transform.originX);\n transformAxis(box.y, transform.y, transform.scaleY, transform.scale, transform.originY);\n}\n\n\n//# sourceMappingURL=delta-apply.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1hcHBseS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUF1RDtBQUNHOztBQUUxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsTUFBTTtBQUNwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGdCQUFnQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxzRUFBWTtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLGdFQUFTO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVtSTtBQUNuSSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1hcHBseS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWl4TnVtYmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWl4L251bWJlci5tanMnO1xuaW1wb3J0IHsgaGFzVHJhbnNmb3JtIH0gZnJvbSAnLi4vdXRpbHMvaGFzLXRyYW5zZm9ybS5tanMnO1xuXG4vKipcbiAqIFNjYWxlcyBhIHBvaW50IGJhc2VkIG9uIGEgZmFjdG9yIGFuZCBhbiBvcmlnaW5Qb2ludFxuICovXG5mdW5jdGlvbiBzY2FsZVBvaW50KHBvaW50LCBzY2FsZSwgb3JpZ2luUG9pbnQpIHtcbiAgICBjb25zdCBkaXN0YW5jZUZyb21PcmlnaW4gPSBwb2ludCAtIG9yaWdpblBvaW50O1xuICAgIGNvbnN0IHNjYWxlZCA9IHNjYWxlICogZGlzdGFuY2VGcm9tT3JpZ2luO1xuICAgIHJldHVybiBvcmlnaW5Qb2ludCArIHNjYWxlZDtcbn1cbi8qKlxuICogQXBwbGllcyBhIHRyYW5zbGF0ZS9zY2FsZSBkZWx0YSB0byBhIHBvaW50XG4gKi9cbmZ1bmN0aW9uIGFwcGx5UG9pbnREZWx0YShwb2ludCwgdHJhbnNsYXRlLCBzY2FsZSwgb3JpZ2luUG9pbnQsIGJveFNjYWxlKSB7XG4gICAgaWYgKGJveFNjYWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcG9pbnQgPSBzY2FsZVBvaW50KHBvaW50LCBib3hTY2FsZSwgb3JpZ2luUG9pbnQpO1xuICAgIH1cbiAgICByZXR1cm4gc2NhbGVQb2ludChwb2ludCwgc2NhbGUsIG9yaWdpblBvaW50KSArIHRyYW5zbGF0ZTtcbn1cbi8qKlxuICogQXBwbGllcyBhIHRyYW5zbGF0ZS9zY2FsZSBkZWx0YSB0byBhbiBheGlzXG4gKi9cbmZ1bmN0aW9uIGFwcGx5QXhpc0RlbHRhKGF4aXMsIHRyYW5zbGF0ZSA9IDAsIHNjYWxlID0gMSwgb3JpZ2luUG9pbnQsIGJveFNjYWxlKSB7XG4gICAgYXhpcy5taW4gPSBhcHBseVBvaW50RGVsdGEoYXhpcy5taW4sIHRyYW5zbGF0ZSwgc2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSk7XG4gICAgYXhpcy5tYXggPSBhcHBseVBvaW50RGVsdGEoYXhpcy5tYXgsIHRyYW5zbGF0ZSwgc2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSk7XG59XG4vKipcbiAqIEFwcGxpZXMgYSB0cmFuc2xhdGUvc2NhbGUgZGVsdGEgdG8gYSBib3hcbiAqL1xuZnVuY3Rpb24gYXBwbHlCb3hEZWx0YShib3gsIHsgeCwgeSB9KSB7XG4gICAgYXBwbHlBeGlzRGVsdGEoYm94LngsIHgudHJhbnNsYXRlLCB4LnNjYWxlLCB4Lm9yaWdpblBvaW50KTtcbiAgICBhcHBseUF4aXNEZWx0YShib3gueSwgeS50cmFuc2xhdGUsIHkuc2NhbGUsIHkub3JpZ2luUG9pbnQpO1xufVxuY29uc3QgVFJFRV9TQ0FMRV9TTkFQX01JTiA9IDAuOTk5OTk5OTk5OTk5O1xuY29uc3QgVFJFRV9TQ0FMRV9TTkFQX01BWCA9IDEuMDAwMDAwMDAwMDAwMTtcbi8qKlxuICogQXBwbHkgYSB0cmVlIG9mIGRlbHRhcyB0byBhIGJveC4gV2UgZG8gdGhpcyB0byBjYWxjdWxhdGUgdGhlIGVmZmVjdCBvZiBhbGwgdGhlIHRyYW5zZm9ybXNcbiAqIGluIGEgdHJlZSB1cG9uIG91ciBib3ggYmVmb3JlIHRoZW4gY2FsY3VsYXRpbmcgaG93IHRvIHByb2plY3QgaXQgaW50byBvdXIgZGVzaXJlZCB2aWV3cG9ydC1yZWxhdGl2ZSBib3hcbiAqXG4gKiBUaGlzIGlzIHRoZSBmaW5hbCBuZXN0ZWQgbG9vcCB3aXRoaW4gdXBkYXRlTGF5b3V0RGVsdGEgZm9yIGZ1dHVyZSByZWZhY3RvcmluZ1xuICovXG5mdW5jdGlvbiBhcHBseVRyZWVEZWx0YXMoYm94LCB0cmVlU2NhbGUsIHRyZWVQYXRoLCBpc1NoYXJlZFRyYW5zaXRpb24gPSBmYWxzZSkge1xuICAgIGNvbnN0IHRyZWVMZW5ndGggPSB0cmVlUGF0aC5sZW5ndGg7XG4gICAgaWYgKCF0cmVlTGVuZ3RoKVxuICAgICAgICByZXR1cm47XG4gICAgLy8gUmVzZXQgdGhlIHRyZWVTY2FsZVxuICAgIHRyZWVTY2FsZS54ID0gdHJlZVNjYWxlLnkgPSAxO1xuICAgIGxldCBub2RlO1xuICAgIGxldCBkZWx0YTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyZWVMZW5ndGg7IGkrKykge1xuICAgICAgICBub2RlID0gdHJlZVBhdGhbaV07XG4gICAgICAgIGRlbHRhID0gbm9kZS5wcm9qZWN0aW9uRGVsdGE7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUT0RPOiBQcmVmZXIgdG8gcmVtb3ZlIHRoaXMsIGJ1dCBjdXJyZW50bHkgd2UgaGF2ZSBtb3Rpb24gY29tcG9uZW50cyB3aXRoXG4gICAgICAgICAqIGRpc3BsYXk6IGNvbnRlbnRzIGluIEZyYW1lci5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCB9ID0gbm9kZS5vcHRpb25zO1xuICAgICAgICBpZiAodmlzdWFsRWxlbWVudCAmJlxuICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5wcm9wcy5zdHlsZSAmJlxuICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5wcm9wcy5zdHlsZS5kaXNwbGF5ID09PSBcImNvbnRlbnRzXCIpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1NoYXJlZFRyYW5zaXRpb24gJiZcbiAgICAgICAgICAgIG5vZGUub3B0aW9ucy5sYXlvdXRTY3JvbGwgJiZcbiAgICAgICAgICAgIG5vZGUuc2Nyb2xsICYmXG4gICAgICAgICAgICBub2RlICE9PSBub2RlLnJvb3QpIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybUJveChib3gsIHtcbiAgICAgICAgICAgICAgICB4OiAtbm9kZS5zY3JvbGwub2Zmc2V0LngsXG4gICAgICAgICAgICAgICAgeTogLW5vZGUuc2Nyb2xsLm9mZnNldC55LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRlbHRhKSB7XG4gICAgICAgICAgICAvLyBJbmNvcG9yYXRlIGVhY2ggYW5jZXN0b3IncyBzY2FsZSBpbnRvIGEgY3VtdWxhdGl2ZSB0cmVlU2NhbGUgZm9yIHRoaXMgY29tcG9uZW50XG4gICAgICAgICAgICB0cmVlU2NhbGUueCAqPSBkZWx0YS54LnNjYWxlO1xuICAgICAgICAgICAgdHJlZVNjYWxlLnkgKj0gZGVsdGEueS5zY2FsZTtcbiAgICAgICAgICAgIC8vIEFwcGx5IGVhY2ggYW5jZXN0b3IncyBjYWxjdWxhdGVkIGRlbHRhIGludG8gdGhpcyBjb21wb25lbnQncyByZWNvcmRlZCBsYXlvdXQgYm94XG4gICAgICAgICAgICBhcHBseUJveERlbHRhKGJveCwgZGVsdGEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc1NoYXJlZFRyYW5zaXRpb24gJiYgaGFzVHJhbnNmb3JtKG5vZGUubGF0ZXN0VmFsdWVzKSkge1xuICAgICAgICAgICAgdHJhbnNmb3JtQm94KGJveCwgbm9kZS5sYXRlc3RWYWx1ZXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNuYXAgdHJlZSBzY2FsZSBiYWNrIHRvIDEgaWYgaXQncyB3aXRoaW4gYSBub24tcGVyY2VpdmFibGUgdGhyZXNob2xkLlxuICAgICAqIFRoaXMgd2lsbCBoZWxwIHJlZHVjZSB1c2VsZXNzIHNjYWxlcyBnZXR0aW5nIHJlbmRlcmVkLlxuICAgICAqL1xuICAgIGlmICh0cmVlU2NhbGUueCA8IFRSRUVfU0NBTEVfU05BUF9NQVggJiZcbiAgICAgICAgdHJlZVNjYWxlLnggPiBUUkVFX1NDQUxFX1NOQVBfTUlOKSB7XG4gICAgICAgIHRyZWVTY2FsZS54ID0gMS4wO1xuICAgIH1cbiAgICBpZiAodHJlZVNjYWxlLnkgPCBUUkVFX1NDQUxFX1NOQVBfTUFYICYmXG4gICAgICAgIHRyZWVTY2FsZS55ID4gVFJFRV9TQ0FMRV9TTkFQX01JTikge1xuICAgICAgICB0cmVlU2NhbGUueSA9IDEuMDtcbiAgICB9XG59XG5mdW5jdGlvbiB0cmFuc2xhdGVBeGlzKGF4aXMsIGRpc3RhbmNlKSB7XG4gICAgYXhpcy5taW4gPSBheGlzLm1pbiArIGRpc3RhbmNlO1xuICAgIGF4aXMubWF4ID0gYXhpcy5tYXggKyBkaXN0YW5jZTtcbn1cbi8qKlxuICogQXBwbHkgYSB0cmFuc2Zvcm0gdG8gYW4gYXhpcyBmcm9tIHRoZSBsYXRlc3QgcmVzb2x2ZWQgbW90aW9uIHZhbHVlcy5cbiAqIFRoaXMgZnVuY3Rpb24gYmFzaWNhbGx5IGFjdHMgYXMgYSBicmlkZ2UgYmV0d2VlbiBhIGZsYXQgbW90aW9uIHZhbHVlIG1hcFxuICogYW5kIGFwcGx5QXhpc0RlbHRhXG4gKi9cbmZ1bmN0aW9uIHRyYW5zZm9ybUF4aXMoYXhpcywgYXhpc1RyYW5zbGF0ZSwgYXhpc1NjYWxlLCBib3hTY2FsZSwgYXhpc09yaWdpbiA9IDAuNSkge1xuICAgIGNvbnN0IG9yaWdpblBvaW50ID0gbWl4TnVtYmVyKGF4aXMubWluLCBheGlzLm1heCwgYXhpc09yaWdpbik7XG4gICAgLy8gQXBwbHkgdGhlIGF4aXMgZGVsdGEgdG8gdGhlIGZpbmFsIGF4aXNcbiAgICBhcHBseUF4aXNEZWx0YShheGlzLCBheGlzVHJhbnNsYXRlLCBheGlzU2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSk7XG59XG4vKipcbiAqIEFwcGx5IGEgdHJhbnNmb3JtIHRvIGEgYm94IGZyb20gdGhlIGxhdGVzdCByZXNvbHZlZCBtb3Rpb24gdmFsdWVzLlxuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1Cb3goYm94LCB0cmFuc2Zvcm0pIHtcbiAgICB0cmFuc2Zvcm1BeGlzKGJveC54LCB0cmFuc2Zvcm0ueCwgdHJhbnNmb3JtLnNjYWxlWCwgdHJhbnNmb3JtLnNjYWxlLCB0cmFuc2Zvcm0ub3JpZ2luWCk7XG4gICAgdHJhbnNmb3JtQXhpcyhib3gueSwgdHJhbnNmb3JtLnksIHRyYW5zZm9ybS5zY2FsZVksIHRyYW5zZm9ybS5zY2FsZSwgdHJhbnNmb3JtLm9yaWdpblkpO1xufVxuXG5leHBvcnQgeyBhcHBseUF4aXNEZWx0YSwgYXBwbHlCb3hEZWx0YSwgYXBwbHlQb2ludERlbHRhLCBhcHBseVRyZWVEZWx0YXMsIHNjYWxlUG9pbnQsIHRyYW5zZm9ybUF4aXMsIHRyYW5zZm9ybUJveCwgdHJhbnNsYXRlQXhpcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVsdGEtYXBwbHkubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ calcAxisDelta: () => (/* binding */ calcAxisDelta),\n/* harmony export */ calcBoxDelta: () => (/* binding */ calcBoxDelta),\n/* harmony export */ calcLength: () => (/* binding */ calcLength),\n/* harmony export */ calcRelativeAxis: () => (/* binding */ calcRelativeAxis),\n/* harmony export */ calcRelativeAxisPosition: () => (/* binding */ calcRelativeAxisPosition),\n/* harmony export */ calcRelativeBox: () => (/* binding */ calcRelativeBox),\n/* harmony export */ calcRelativePosition: () => (/* binding */ calcRelativePosition),\n/* harmony export */ isNear: () => (/* binding */ isNear)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\nconst SCALE_PRECISION = 0.0001;\nconst SCALE_MIN = 1 - SCALE_PRECISION;\nconst SCALE_MAX = 1 + SCALE_PRECISION;\nconst TRANSLATE_PRECISION = 0.01;\nconst TRANSLATE_MIN = 0 - TRANSLATE_PRECISION;\nconst TRANSLATE_MAX = 0 + TRANSLATE_PRECISION;\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target, maxDistance) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n delta.translate =\n (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(target.min, target.max, delta.origin) - delta.originPoint;\n if ((delta.scale >= SCALE_MIN && delta.scale <= SCALE_MAX) ||\n isNaN(delta.scale)) {\n delta.scale = 1.0;\n }\n if ((delta.translate >= TRANSLATE_MIN &&\n delta.translate <= TRANSLATE_MAX) ||\n isNaN(delta.translate)) {\n delta.translate = 0.0;\n }\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\n\n//# sourceMappingURL=delta-calc.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1jYWxjLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBdUQ7O0FBRXZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZ0VBQVM7QUFDakM7QUFDQTtBQUNBLFFBQVEsZ0VBQVM7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU4STtBQUM5SSIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1jYWxjLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaXhOdW1iZXIgfSBmcm9tICcuLi8uLi91dGlscy9taXgvbnVtYmVyLm1qcyc7XG5cbmNvbnN0IFNDQUxFX1BSRUNJU0lPTiA9IDAuMDAwMTtcbmNvbnN0IFNDQUxFX01JTiA9IDEgLSBTQ0FMRV9QUkVDSVNJT047XG5jb25zdCBTQ0FMRV9NQVggPSAxICsgU0NBTEVfUFJFQ0lTSU9OO1xuY29uc3QgVFJBTlNMQVRFX1BSRUNJU0lPTiA9IDAuMDE7XG5jb25zdCBUUkFOU0xBVEVfTUlOID0gMCAtIFRSQU5TTEFURV9QUkVDSVNJT047XG5jb25zdCBUUkFOU0xBVEVfTUFYID0gMCArIFRSQU5TTEFURV9QUkVDSVNJT047XG5mdW5jdGlvbiBjYWxjTGVuZ3RoKGF4aXMpIHtcbiAgICByZXR1cm4gYXhpcy5tYXggLSBheGlzLm1pbjtcbn1cbmZ1bmN0aW9uIGlzTmVhcih2YWx1ZSwgdGFyZ2V0LCBtYXhEaXN0YW5jZSkge1xuICAgIHJldHVybiBNYXRoLmFicyh2YWx1ZSAtIHRhcmdldCkgPD0gbWF4RGlzdGFuY2U7XG59XG5mdW5jdGlvbiBjYWxjQXhpc0RlbHRhKGRlbHRhLCBzb3VyY2UsIHRhcmdldCwgb3JpZ2luID0gMC41KSB7XG4gICAgZGVsdGEub3JpZ2luID0gb3JpZ2luO1xuICAgIGRlbHRhLm9yaWdpblBvaW50ID0gbWl4TnVtYmVyKHNvdXJjZS5taW4sIHNvdXJjZS5tYXgsIGRlbHRhLm9yaWdpbik7XG4gICAgZGVsdGEuc2NhbGUgPSBjYWxjTGVuZ3RoKHRhcmdldCkgLyBjYWxjTGVuZ3RoKHNvdXJjZSk7XG4gICAgZGVsdGEudHJhbnNsYXRlID1cbiAgICAgICAgbWl4TnVtYmVyKHRhcmdldC5taW4sIHRhcmdldC5tYXgsIGRlbHRhLm9yaWdpbikgLSBkZWx0YS5vcmlnaW5Qb2ludDtcbiAgICBpZiAoKGRlbHRhLnNjYWxlID49IFNDQUxFX01JTiAmJiBkZWx0YS5zY2FsZSA8PSBTQ0FMRV9NQVgpIHx8XG4gICAgICAgIGlzTmFOKGRlbHRhLnNjYWxlKSkge1xuICAgICAgICBkZWx0YS5zY2FsZSA9IDEuMDtcbiAgICB9XG4gICAgaWYgKChkZWx0YS50cmFuc2xhdGUgPj0gVFJBTlNMQVRFX01JTiAmJlxuICAgICAgICBkZWx0YS50cmFuc2xhdGUgPD0gVFJBTlNMQVRFX01BWCkgfHxcbiAgICAgICAgaXNOYU4oZGVsdGEudHJhbnNsYXRlKSkge1xuICAgICAgICBkZWx0YS50cmFuc2xhdGUgPSAwLjA7XG4gICAgfVxufVxuZnVuY3Rpb24gY2FsY0JveERlbHRhKGRlbHRhLCBzb3VyY2UsIHRhcmdldCwgb3JpZ2luKSB7XG4gICAgY2FsY0F4aXNEZWx0YShkZWx0YS54LCBzb3VyY2UueCwgdGFyZ2V0LngsIG9yaWdpbiA/IG9yaWdpbi5vcmlnaW5YIDogdW5kZWZpbmVkKTtcbiAgICBjYWxjQXhpc0RlbHRhKGRlbHRhLnksIHNvdXJjZS55LCB0YXJnZXQueSwgb3JpZ2luID8gb3JpZ2luLm9yaWdpblkgOiB1bmRlZmluZWQpO1xufVxuZnVuY3Rpb24gY2FsY1JlbGF0aXZlQXhpcyh0YXJnZXQsIHJlbGF0aXZlLCBwYXJlbnQpIHtcbiAgICB0YXJnZXQubWluID0gcGFyZW50Lm1pbiArIHJlbGF0aXZlLm1pbjtcbiAgICB0YXJnZXQubWF4ID0gdGFyZ2V0Lm1pbiArIGNhbGNMZW5ndGgocmVsYXRpdmUpO1xufVxuZnVuY3Rpb24gY2FsY1JlbGF0aXZlQm94KHRhcmdldCwgcmVsYXRpdmUsIHBhcmVudCkge1xuICAgIGNhbGNSZWxhdGl2ZUF4aXModGFyZ2V0LngsIHJlbGF0aXZlLngsIHBhcmVudC54KTtcbiAgICBjYWxjUmVsYXRpdmVBeGlzKHRhcmdldC55LCByZWxhdGl2ZS55LCBwYXJlbnQueSk7XG59XG5mdW5jdGlvbiBjYWxjUmVsYXRpdmVBeGlzUG9zaXRpb24odGFyZ2V0LCBsYXlvdXQsIHBhcmVudCkge1xuICAgIHRhcmdldC5taW4gPSBsYXlvdXQubWluIC0gcGFyZW50Lm1pbjtcbiAgICB0YXJnZXQubWF4ID0gdGFyZ2V0Lm1pbiArIGNhbGNMZW5ndGgobGF5b3V0KTtcbn1cbmZ1bmN0aW9uIGNhbGNSZWxhdGl2ZVBvc2l0aW9uKHRhcmdldCwgbGF5b3V0LCBwYXJlbnQpIHtcbiAgICBjYWxjUmVsYXRpdmVBeGlzUG9zaXRpb24odGFyZ2V0LngsIGxheW91dC54LCBwYXJlbnQueCk7XG4gICAgY2FsY1JlbGF0aXZlQXhpc1Bvc2l0aW9uKHRhcmdldC55LCBsYXlvdXQueSwgcGFyZW50LnkpO1xufVxuXG5leHBvcnQgeyBjYWxjQXhpc0RlbHRhLCBjYWxjQm94RGVsdGEsIGNhbGNMZW5ndGgsIGNhbGNSZWxhdGl2ZUF4aXMsIGNhbGNSZWxhdGl2ZUF4aXNQb3NpdGlvbiwgY2FsY1JlbGF0aXZlQm94LCBjYWxjUmVsYXRpdmVQb3NpdGlvbiwgaXNOZWFyIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWx0YS1jYWxjLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ removeAxisDelta: () => (/* binding */ removeAxisDelta),\n/* harmony export */ removeAxisTransforms: () => (/* binding */ removeAxisTransforms),\n/* harmony export */ removeBoxTransforms: () => (/* binding */ removeBoxTransforms),\n/* harmony export */ removePointDelta: () => (/* binding */ removePointDelta)\n/* harmony export */ });\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/types/numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./delta-apply.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\");\n\n\n\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = (0,_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__.scalePoint)(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = (0,_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_0__.scalePoint)(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (_value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_2__.mixNumber)(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_2__.mixNumber)(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\n}\n\n\n//# sourceMappingURL=delta-remove.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9kZWx0YS1yZW1vdmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBdUQ7QUFDTztBQUNmOztBQUUvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSw0REFBVTtBQUN0QjtBQUNBLGdCQUFnQiw0REFBVTtBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsbUVBQU87QUFDZjtBQUNBLGlDQUFpQyxnRUFBUztBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixnRUFBUztBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFd0Y7QUFDeEYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vZ2VvbWV0cnkvZGVsdGEtcmVtb3ZlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaXhOdW1iZXIgfSBmcm9tICcuLi8uLi91dGlscy9taXgvbnVtYmVyLm1qcyc7XG5pbXBvcnQgeyBwZXJjZW50IH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMnO1xuaW1wb3J0IHsgc2NhbGVQb2ludCB9IGZyb20gJy4vZGVsdGEtYXBwbHkubWpzJztcblxuLyoqXG4gKiBSZW1vdmUgYSBkZWx0YSBmcm9tIGEgcG9pbnQuIFRoaXMgaXMgZXNzZW50aWFsbHkgdGhlIHN0ZXBzIG9mIGFwcGx5UG9pbnREZWx0YSBpbiByZXZlcnNlXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZVBvaW50RGVsdGEocG9pbnQsIHRyYW5zbGF0ZSwgc2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSkge1xuICAgIHBvaW50IC09IHRyYW5zbGF0ZTtcbiAgICBwb2ludCA9IHNjYWxlUG9pbnQocG9pbnQsIDEgLyBzY2FsZSwgb3JpZ2luUG9pbnQpO1xuICAgIGlmIChib3hTY2FsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHBvaW50ID0gc2NhbGVQb2ludChwb2ludCwgMSAvIGJveFNjYWxlLCBvcmlnaW5Qb2ludCk7XG4gICAgfVxuICAgIHJldHVybiBwb2ludDtcbn1cbi8qKlxuICogUmVtb3ZlIGEgZGVsdGEgZnJvbSBhbiBheGlzLiBUaGlzIGlzIGVzc2VudGlhbGx5IHRoZSBzdGVwcyBvZiBhcHBseUF4aXNEZWx0YSBpbiByZXZlcnNlXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUF4aXNEZWx0YShheGlzLCB0cmFuc2xhdGUgPSAwLCBzY2FsZSA9IDEsIG9yaWdpbiA9IDAuNSwgYm94U2NhbGUsIG9yaWdpbkF4aXMgPSBheGlzLCBzb3VyY2VBeGlzID0gYXhpcykge1xuICAgIGlmIChwZXJjZW50LnRlc3QodHJhbnNsYXRlKSkge1xuICAgICAgICB0cmFuc2xhdGUgPSBwYXJzZUZsb2F0KHRyYW5zbGF0ZSk7XG4gICAgICAgIGNvbnN0IHJlbGF0aXZlUHJvZ3Jlc3MgPSBtaXhOdW1iZXIoc291cmNlQXhpcy5taW4sIHNvdXJjZUF4aXMubWF4LCB0cmFuc2xhdGUgLyAxMDApO1xuICAgICAgICB0cmFuc2xhdGUgPSByZWxhdGl2ZVByb2dyZXNzIC0gc291cmNlQXhpcy5taW47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdHJhbnNsYXRlICE9PSBcIm51bWJlclwiKVxuICAgICAgICByZXR1cm47XG4gICAgbGV0IG9yaWdpblBvaW50ID0gbWl4TnVtYmVyKG9yaWdpbkF4aXMubWluLCBvcmlnaW5BeGlzLm1heCwgb3JpZ2luKTtcbiAgICBpZiAoYXhpcyA9PT0gb3JpZ2luQXhpcylcbiAgICAgICAgb3JpZ2luUG9pbnQgLT0gdHJhbnNsYXRlO1xuICAgIGF4aXMubWluID0gcmVtb3ZlUG9pbnREZWx0YShheGlzLm1pbiwgdHJhbnNsYXRlLCBzY2FsZSwgb3JpZ2luUG9pbnQsIGJveFNjYWxlKTtcbiAgICBheGlzLm1heCA9IHJlbW92ZVBvaW50RGVsdGEoYXhpcy5tYXgsIHRyYW5zbGF0ZSwgc2NhbGUsIG9yaWdpblBvaW50LCBib3hTY2FsZSk7XG59XG4vKipcbiAqIFJlbW92ZSBhIHRyYW5zZm9ybXMgZnJvbSBhbiBheGlzLiBUaGlzIGlzIGVzc2VudGlhbGx5IHRoZSBzdGVwcyBvZiBhcHBseUF4aXNUcmFuc2Zvcm1zIGluIHJldmVyc2VcbiAqIGFuZCBhY3RzIGFzIGEgYnJpZGdlIGJldHdlZW4gbW90aW9uIHZhbHVlcyBhbmQgcmVtb3ZlQXhpc0RlbHRhXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUF4aXNUcmFuc2Zvcm1zKGF4aXMsIHRyYW5zZm9ybXMsIFtrZXksIHNjYWxlS2V5LCBvcmlnaW5LZXldLCBvcmlnaW4sIHNvdXJjZUF4aXMpIHtcbiAgICByZW1vdmVBeGlzRGVsdGEoYXhpcywgdHJhbnNmb3Jtc1trZXldLCB0cmFuc2Zvcm1zW3NjYWxlS2V5XSwgdHJhbnNmb3Jtc1tvcmlnaW5LZXldLCB0cmFuc2Zvcm1zLnNjYWxlLCBvcmlnaW4sIHNvdXJjZUF4aXMpO1xufVxuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIG1vdGlvbiB2YWx1ZXMgd2Ugd2FudCB0byBhcHBseSBhcyB0cmFuc2xhdGlvbiwgc2NhbGUgYW5kIG9yaWdpbi5cbiAqL1xuY29uc3QgeEtleXMgPSBbXCJ4XCIsIFwic2NhbGVYXCIsIFwib3JpZ2luWFwiXTtcbmNvbnN0IHlLZXlzID0gW1wieVwiLCBcInNjYWxlWVwiLCBcIm9yaWdpbllcIl07XG4vKipcbiAqIFJlbW92ZSBhIHRyYW5zZm9ybXMgZnJvbSBhbiBib3guIFRoaXMgaXMgZXNzZW50aWFsbHkgdGhlIHN0ZXBzIG9mIGFwcGx5QXhpc0JveCBpbiByZXZlcnNlXG4gKiBhbmQgYWN0cyBhcyBhIGJyaWRnZSBiZXR3ZWVuIG1vdGlvbiB2YWx1ZXMgYW5kIHJlbW92ZUF4aXNEZWx0YVxuICovXG5mdW5jdGlvbiByZW1vdmVCb3hUcmFuc2Zvcm1zKGJveCwgdHJhbnNmb3Jtcywgb3JpZ2luQm94LCBzb3VyY2VCb3gpIHtcbiAgICByZW1vdmVBeGlzVHJhbnNmb3Jtcyhib3gueCwgdHJhbnNmb3JtcywgeEtleXMsIG9yaWdpbkJveCA/IG9yaWdpbkJveC54IDogdW5kZWZpbmVkLCBzb3VyY2VCb3ggPyBzb3VyY2VCb3gueCA6IHVuZGVmaW5lZCk7XG4gICAgcmVtb3ZlQXhpc1RyYW5zZm9ybXMoYm94LnksIHRyYW5zZm9ybXMsIHlLZXlzLCBvcmlnaW5Cb3ggPyBvcmlnaW5Cb3gueSA6IHVuZGVmaW5lZCwgc291cmNlQm94ID8gc291cmNlQm94LnkgOiB1bmRlZmluZWQpO1xufVxuXG5leHBvcnQgeyByZW1vdmVBeGlzRGVsdGEsIHJlbW92ZUF4aXNUcmFuc2Zvcm1zLCByZW1vdmVCb3hUcmFuc2Zvcm1zLCByZW1vdmVQb2ludERlbHRhIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWx0YS1yZW1vdmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/models.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ createAxis: () => (/* binding */ createAxis),\n/* harmony export */ createAxisDelta: () => (/* binding */ createAxisDelta),\n/* harmony export */ createBox: () => (/* binding */ createBox),\n/* harmony export */ createDelta: () => (/* binding */ createDelta)\n/* harmony export */ });\nconst createAxisDelta = () => ({\n translate: 0,\n scale: 1,\n origin: 0,\n originPoint: 0,\n});\nconst createDelta = () => ({\n x: createAxisDelta(),\n y: createAxisDelta(),\n});\nconst createAxis = () => ({ min: 0, max: 0 });\nconst createBox = () => ({\n x: createAxis(),\n y: createAxis(),\n});\n\n\n//# sourceMappingURL=models.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS9tb2RlbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCw0QkFBNEIsZ0JBQWdCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRThEO0FBQy9EIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL2dlb21ldHJ5L21vZGVscy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY3JlYXRlQXhpc0RlbHRhID0gKCkgPT4gKHtcbiAgICB0cmFuc2xhdGU6IDAsXG4gICAgc2NhbGU6IDEsXG4gICAgb3JpZ2luOiAwLFxuICAgIG9yaWdpblBvaW50OiAwLFxufSk7XG5jb25zdCBjcmVhdGVEZWx0YSA9ICgpID0+ICh7XG4gICAgeDogY3JlYXRlQXhpc0RlbHRhKCksXG4gICAgeTogY3JlYXRlQXhpc0RlbHRhKCksXG59KTtcbmNvbnN0IGNyZWF0ZUF4aXMgPSAoKSA9PiAoeyBtaW46IDAsIG1heDogMCB9KTtcbmNvbnN0IGNyZWF0ZUJveCA9ICgpID0+ICh7XG4gICAgeDogY3JlYXRlQXhpcygpLFxuICAgIHk6IGNyZWF0ZUF4aXMoKSxcbn0pO1xuXG5leHBvcnQgeyBjcmVhdGVBeGlzLCBjcmVhdGVBeGlzRGVsdGEsIGNyZWF0ZUJveCwgY3JlYXRlRGVsdGEgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1vZGVscy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/utils.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/geometry/utils.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ aspectRatio: () => (/* binding */ aspectRatio),\n/* harmony export */ axisDeltaEquals: () => (/* binding */ axisDeltaEquals),\n/* harmony export */ axisEquals: () => (/* binding */ axisEquals),\n/* harmony export */ axisEqualsRounded: () => (/* binding */ axisEqualsRounded),\n/* harmony export */ boxEquals: () => (/* binding */ boxEquals),\n/* harmony export */ boxEqualsRounded: () => (/* binding */ boxEqualsRounded),\n/* harmony export */ isDeltaZero: () => (/* binding */ isDeltaZero)\n/* harmony export */ });\n/* harmony import */ var _delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./delta-calc.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction axisEquals(a, b) {\n return a.min === b.min && a.max === b.max;\n}\nfunction boxEquals(a, b) {\n return axisEquals(a.x, b.x) && axisEquals(a.y, b.y);\n}\nfunction axisEqualsRounded(a, b) {\n return (Math.round(a.min) === Math.round(b.min) &&\n Math.round(a.max) === Math.round(b.max));\n}\nfunction boxEqualsRounded(a, b) {\n return axisEqualsRounded(a.x, b.x) && axisEqualsRounded(a.y, b.y);\n}\nfunction aspectRatio(box) {\n return (0,_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__.calcLength)(box.x) / (0,_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_0__.calcLength)(box.y);\n}\nfunction axisDeltaEquals(a, b) {\n return (a.translate === b.translate &&\n a.scale === b.scale &&\n a.originPoint === b.originPoint);\n}\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS91dGlscy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBOEM7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLDJEQUFVLFVBQVUsMkRBQVU7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVpSDtBQUNqSCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9nZW9tZXRyeS91dGlscy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FsY0xlbmd0aCB9IGZyb20gJy4vZGVsdGEtY2FsYy5tanMnO1xuXG5mdW5jdGlvbiBpc0F4aXNEZWx0YVplcm8oZGVsdGEpIHtcbiAgICByZXR1cm4gZGVsdGEudHJhbnNsYXRlID09PSAwICYmIGRlbHRhLnNjYWxlID09PSAxO1xufVxuZnVuY3Rpb24gaXNEZWx0YVplcm8oZGVsdGEpIHtcbiAgICByZXR1cm4gaXNBeGlzRGVsdGFaZXJvKGRlbHRhLngpICYmIGlzQXhpc0RlbHRhWmVybyhkZWx0YS55KTtcbn1cbmZ1bmN0aW9uIGF4aXNFcXVhbHMoYSwgYikge1xuICAgIHJldHVybiBhLm1pbiA9PT0gYi5taW4gJiYgYS5tYXggPT09IGIubWF4O1xufVxuZnVuY3Rpb24gYm94RXF1YWxzKGEsIGIpIHtcbiAgICByZXR1cm4gYXhpc0VxdWFscyhhLngsIGIueCkgJiYgYXhpc0VxdWFscyhhLnksIGIueSk7XG59XG5mdW5jdGlvbiBheGlzRXF1YWxzUm91bmRlZChhLCBiKSB7XG4gICAgcmV0dXJuIChNYXRoLnJvdW5kKGEubWluKSA9PT0gTWF0aC5yb3VuZChiLm1pbikgJiZcbiAgICAgICAgTWF0aC5yb3VuZChhLm1heCkgPT09IE1hdGgucm91bmQoYi5tYXgpKTtcbn1cbmZ1bmN0aW9uIGJveEVxdWFsc1JvdW5kZWQoYSwgYikge1xuICAgIHJldHVybiBheGlzRXF1YWxzUm91bmRlZChhLngsIGIueCkgJiYgYXhpc0VxdWFsc1JvdW5kZWQoYS55LCBiLnkpO1xufVxuZnVuY3Rpb24gYXNwZWN0UmF0aW8oYm94KSB7XG4gICAgcmV0dXJuIGNhbGNMZW5ndGgoYm94LngpIC8gY2FsY0xlbmd0aChib3gueSk7XG59XG5mdW5jdGlvbiBheGlzRGVsdGFFcXVhbHMoYSwgYikge1xuICAgIHJldHVybiAoYS50cmFuc2xhdGUgPT09IGIudHJhbnNsYXRlICYmXG4gICAgICAgIGEuc2NhbGUgPT09IGIuc2NhbGUgJiZcbiAgICAgICAgYS5vcmlnaW5Qb2ludCA9PT0gYi5vcmlnaW5Qb2ludCk7XG59XG5cbmV4cG9ydCB7IGFzcGVjdFJhdGlvLCBheGlzRGVsdGFFcXVhbHMsIGF4aXNFcXVhbHMsIGF4aXNFcXVhbHNSb3VuZGVkLCBib3hFcXVhbHMsIGJveEVxdWFsc1JvdW5kZWQsIGlzRGVsdGFaZXJvIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/utils.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DocumentProjectionNode: () => (/* binding */ DocumentProjectionNode)\n/* harmony export */ });\n/* harmony import */ var _events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../events/add-dom-event.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/events/add-dom-event.mjs\");\n/* harmony import */ var _create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-projection-node.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs\");\n\n\n\nconst DocumentProjectionNode = (0,_create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__.createProjectionNode)({\n attachResizeListener: (ref, notify) => (0,_events_add_dom_event_mjs__WEBPACK_IMPORTED_MODULE_1__.addDomEvent)(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body?.scrollLeft || 0,\n y: document.documentElement.scrollTop || document.body?.scrollTop || 0,\n }),\n checkIsScrollRoot: () => true,\n});\n\n\n//# sourceMappingURL=DocumentProjectionNode.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL0RvY3VtZW50UHJvamVjdGlvbk5vZGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE2RDtBQUNPOztBQUVwRSwrQkFBK0IsaUZBQW9CO0FBQ25ELDJDQUEyQyxzRUFBVztBQUN0RDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxDQUFDOztBQUVpQztBQUNsQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL0RvY3VtZW50UHJvamVjdGlvbk5vZGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZERvbUV2ZW50IH0gZnJvbSAnLi4vLi4vZXZlbnRzL2FkZC1kb20tZXZlbnQubWpzJztcbmltcG9ydCB7IGNyZWF0ZVByb2plY3Rpb25Ob2RlIH0gZnJvbSAnLi9jcmVhdGUtcHJvamVjdGlvbi1ub2RlLm1qcyc7XG5cbmNvbnN0IERvY3VtZW50UHJvamVjdGlvbk5vZGUgPSBjcmVhdGVQcm9qZWN0aW9uTm9kZSh7XG4gICAgYXR0YWNoUmVzaXplTGlzdGVuZXI6IChyZWYsIG5vdGlmeSkgPT4gYWRkRG9tRXZlbnQocmVmLCBcInJlc2l6ZVwiLCBub3RpZnkpLFxuICAgIG1lYXN1cmVTY3JvbGw6ICgpID0+ICh7XG4gICAgICAgIHg6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0IHx8IGRvY3VtZW50LmJvZHk/LnNjcm9sbExlZnQgfHwgMCxcbiAgICAgICAgeTogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCB8fCBkb2N1bWVudC5ib2R5Py5zY3JvbGxUb3AgfHwgMCxcbiAgICB9KSxcbiAgICBjaGVja0lzU2Nyb2xsUm9vdDogKCkgPT4gdHJ1ZSxcbn0pO1xuXG5leHBvcnQgeyBEb2N1bWVudFByb2plY3Rpb25Ob2RlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Eb2N1bWVudFByb2plY3Rpb25Ob2RlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HTMLProjectionNode: () => (/* binding */ HTMLProjectionNode),\n/* harmony export */ rootProjectionNode: () => (/* binding */ rootProjectionNode)\n/* harmony export */ });\n/* harmony import */ var _create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./create-projection-node.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs\");\n/* harmony import */ var _DocumentProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DocumentProjectionNode.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs\");\n\n\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = (0,_create_projection_node_mjs__WEBPACK_IMPORTED_MODULE_0__.createProjectionNode)({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new _DocumentProjectionNode_mjs__WEBPACK_IMPORTED_MODULE_1__.DocumentProjectionNode({});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\n\n//# sourceMappingURL=HTMLProjectionNode.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL0hUTUxQcm9qZWN0aW9uTm9kZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFvRTtBQUNFOztBQUV0RTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsaUZBQW9CO0FBQy9DO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EscUNBQXFDLCtFQUFzQixHQUFHO0FBQzlEO0FBQ0Esc0NBQXNDLG9CQUFvQjtBQUMxRDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLENBQUM7O0FBRWlEO0FBQ2xEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL25vZGUvSFRNTFByb2plY3Rpb25Ob2RlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVQcm9qZWN0aW9uTm9kZSB9IGZyb20gJy4vY3JlYXRlLXByb2plY3Rpb24tbm9kZS5tanMnO1xuaW1wb3J0IHsgRG9jdW1lbnRQcm9qZWN0aW9uTm9kZSB9IGZyb20gJy4vRG9jdW1lbnRQcm9qZWN0aW9uTm9kZS5tanMnO1xuXG5jb25zdCByb290UHJvamVjdGlvbk5vZGUgPSB7XG4gICAgY3VycmVudDogdW5kZWZpbmVkLFxufTtcbmNvbnN0IEhUTUxQcm9qZWN0aW9uTm9kZSA9IGNyZWF0ZVByb2plY3Rpb25Ob2RlKHtcbiAgICBtZWFzdXJlU2Nyb2xsOiAoaW5zdGFuY2UpID0+ICh7XG4gICAgICAgIHg6IGluc3RhbmNlLnNjcm9sbExlZnQsXG4gICAgICAgIHk6IGluc3RhbmNlLnNjcm9sbFRvcCxcbiAgICB9KSxcbiAgICBkZWZhdWx0UGFyZW50OiAoKSA9PiB7XG4gICAgICAgIGlmICghcm9vdFByb2plY3Rpb25Ob2RlLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRvY3VtZW50Tm9kZSA9IG5ldyBEb2N1bWVudFByb2plY3Rpb25Ob2RlKHt9KTtcbiAgICAgICAgICAgIGRvY3VtZW50Tm9kZS5tb3VudCh3aW5kb3cpO1xuICAgICAgICAgICAgZG9jdW1lbnROb2RlLnNldE9wdGlvbnMoeyBsYXlvdXRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByb290UHJvamVjdGlvbk5vZGUuY3VycmVudCA9IGRvY3VtZW50Tm9kZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm9vdFByb2plY3Rpb25Ob2RlLmN1cnJlbnQ7XG4gICAgfSxcbiAgICByZXNldFRyYW5zZm9ybTogKGluc3RhbmNlLCB2YWx1ZSkgPT4ge1xuICAgICAgICBpbnN0YW5jZS5zdHlsZS50cmFuc2Zvcm0gPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiBcIm5vbmVcIjtcbiAgICB9LFxuICAgIGNoZWNrSXNTY3JvbGxSb290OiAoaW5zdGFuY2UpID0+IEJvb2xlYW4od2luZG93LmdldENvbXB1dGVkU3R5bGUoaW5zdGFuY2UpLnBvc2l0aW9uID09PSBcImZpeGVkXCIpLFxufSk7XG5cbmV4cG9ydCB7IEhUTUxQcm9qZWN0aW9uTm9kZSwgcm9vdFByb2plY3Rpb25Ob2RlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1IVE1MUHJvamVjdGlvbk5vZGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cleanDirtyNodes: () => (/* binding */ cleanDirtyNodes),\n/* harmony export */ createProjectionNode: () => (/* binding */ createProjectionNode),\n/* harmony export */ mixAxis: () => (/* binding */ mixAxis),\n/* harmony export */ mixAxisDelta: () => (/* binding */ mixAxisDelta),\n/* harmony export */ mixBox: () => (/* binding */ mixBox),\n/* harmony export */ propagateDirtyNodes: () => (/* binding */ propagateDirtyNodes)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _animation_animate_single_value_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../../animation/animate/single-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/animate/single-value.mjs\");\n/* harmony import */ var _animation_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../animation/optimized-appear/get-appear-id.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs\");\n/* harmony import */ var _animation_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../animation/utils/get-value-transition.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs\");\n/* harmony import */ var _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../frameloop/microtask.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../styles/scale-correction.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs\");\n/* harmony import */ var _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ../../stats/animation-count.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\");\n/* harmony import */ var _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../stats/buffer.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\");\n/* harmony import */ var _utils_delay_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../utils/delay.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/delay.mjs\");\n/* harmony import */ var _utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils/is-svg-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n/* harmony import */ var _utils_is_svg_svg_element_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils/is-svg-svg-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs\");\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../../value/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../../value/utils/resolve-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs\");\n/* harmony import */ var _animation_mix_values_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../animation/mix-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs\");\n/* harmony import */ var _geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../geometry/copy.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/copy.mjs\");\n/* harmony import */ var _geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ../geometry/delta-apply.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\");\n/* harmony import */ var _geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../geometry/delta-calc.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs\");\n/* harmony import */ var _geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../geometry/delta-remove.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs\");\n/* harmony import */ var _geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../geometry/models.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../geometry/utils.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/utils.mjs\");\n/* harmony import */ var _shared_stack_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../shared/stack.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/shared/stack.mjs\");\n/* harmony import */ var _styles_transform_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../styles/transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/transform.mjs\");\n/* harmony import */ var _utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../utils/each-axis.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs\");\n/* harmony import */ var _utils_flat_tree_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/flat-tree.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs\");\n/* harmony import */ var _utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/has-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs\");\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/state.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst metrics = {\n nodes: 0,\n calculatedTargetDeltas: 0,\n calculatedProjections: 0,\n};\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\nfunction resetDistortingTransform(key, visualElement, values, sharedAnimationValues) {\n const { latestValues } = visualElement;\n // Record the distorting transform and then temporarily set it to 0\n if (latestValues[key]) {\n values[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n if (sharedAnimationValues) {\n sharedAnimationValues[key] = 0;\n }\n }\n}\nfunction cancelTreeOptimisedTransformAnimations(projectionNode) {\n projectionNode.hasCheckedOptimisedAppear = true;\n if (projectionNode.root === projectionNode)\n return;\n const { visualElement } = projectionNode.options;\n if (!visualElement)\n return;\n const appearId = (0,_animation_optimized_appear_get_appear_id_mjs__WEBPACK_IMPORTED_MODULE_0__.getOptimisedAppearId)(visualElement);\n if (window.MotionHasOptimisedAnimation(appearId, \"transform\")) {\n const { layout, layoutId } = projectionNode.options;\n window.MotionCancelOptimisedAnimation(appearId, \"transform\", _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame, !(layout || layoutId));\n }\n const { parent } = projectionNode;\n if (parent && !parent.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(parent);\n }\n}\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(latestValues = {}, parent = defaultParent?.()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n this.animationCommitId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Flag to true if we think the projection calculations for this node needs\n * recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Flag to true if the layout *or* transform has changed. This then gets propagated\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\n */\n this.isSharedProjectionDirty = false;\n /**\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\n * respected by shared nodes.\n */\n this.isTransformDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * Store whether this node has been checked for optimised appear animations. As\n * effects fire bottom-up, and we want to look up the tree for appear animations,\n * this makes sure we only check each path once, stopping at nodes that\n * have already been checked.\n */\n this.hasCheckedOptimisedAppear = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n this.hasTreeAnimated = false;\n this.layoutVersion = 0;\n // Note: Currently only running on root node\n this.updateScheduled = false;\n this.scheduleUpdate = () => this.update();\n this.projectionUpdateScheduled = false;\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n this.projectionUpdateScheduled = false;\n /**\n * Reset debug counts. Manually resetting rather than creating a new\n * object each frame.\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.nodes =\n metrics.calculatedTargetDeltas =\n metrics.calculatedProjections =\n 0;\n }\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n this.nodes.forEach(cleanDirtyNodes);\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.addProjectionMetrics) {\n _stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.addProjectionMetrics(metrics);\n }\n };\n /**\n * Frame calculations\n */\n this.resolvedRelativeTargetAt = 0.0;\n this.linkedParentVersion = 0;\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new _utils_flat_tree_mjs__WEBPACK_IMPORTED_MODULE_3__.FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new motion_utils__WEBPACK_IMPORTED_MODULE_4__.SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager && subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n /**\n * Lifecycles\n */\n mount(instance) {\n if (this.instance)\n return;\n this.isSVG = (0,_utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_5__.isSVGElement)(instance) && !(0,_utils_is_svg_svg_element_mjs__WEBPACK_IMPORTED_MODULE_6__.isSVGSVGElement)(instance);\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n this.parent && this.parent.children.add(this);\n if (this.root.hasTreeAnimated && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n let innerWidth = 0;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n // Set initial innerWidth in a frame.read callback to batch the read\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.read(() => {\n innerWidth = window.innerWidth;\n });\n attachResizeListener(instance, () => {\n const newInnerWidth = window.innerWidth;\n if (newInnerWidth === innerWidth)\n return;\n innerWidth = newInnerWidth;\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = (0,_utils_delay_mjs__WEBPACK_IMPORTED_MODULE_7__.delay)(resizeUnblockUpdate, 250);\n if (_state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize) {\n _state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeLayoutChanged, layout: newLayout, }) => {\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = this.options.transition ||\n visualElement.getDefaultTransition() ||\n defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const hasTargetChanged = !this.targetLayout ||\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEqualsRounded)(this.targetLayout, newLayout);\n /*\n * Note: Disabled to fix relative animations always triggering new\n * layout animations. If this causes further issues, we can try\n * a different approach to detecting relative target changes.\n */\n // || hasRelativeLayoutChanged\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeLayoutChanged;\n if (this.options.layoutRoot ||\n this.resumeFrom ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (hasTargetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n const animationOptions = {\n ...(0,_animation_utils_get_value_transition_mjs__WEBPACK_IMPORTED_MODULE_10__.getValueTransition)(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion ||\n this.options.layoutRoot) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n /**\n * Set animation origin after starting animation to avoid layout jump\n * caused by stopping previous layout animation\n */\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never committed to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged) {\n finishAnimation(this);\n }\n if (this.isLead() && this.options.onExitComplete) {\n this.options.onExitComplete();\n }\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n const stack = this.getStack();\n stack && stack.remove(this);\n this.parent && this.parent.children.delete(this);\n this.instance = undefined;\n this.eventHandlers.clear();\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n return (this.isAnimationBlocked ||\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n this.nodes && this.nodes.forEach(resetSkewAndRotation);\n this.animationId++;\n }\n getTransformTemplate() {\n const { visualElement } = this.options;\n return visualElement && visualElement.getProps().transformTemplate;\n }\n willUpdate(shouldNotifyListeners = true) {\n this.root.hasTreeAnimated = true;\n if (this.root.isUpdateBlocked()) {\n this.options.onExitComplete && this.options.onExitComplete();\n return;\n }\n /**\n * If we're running optimised appear animations then these must be\n * cancelled before measuring the DOM. This is so we can measure\n * the true layout of the element rather than the WAAPI animation\n * which will be unaffected by the resetSkewAndRotate step.\n *\n * Note: This is a DOM write. Worst case scenario is this is sandwiched\n * between other snapshot reads which will cause unnecessary style recalculations.\n * This has to happen here though, as we don't yet know which nodes will need\n * snapshots in startUpdate(), but we only want to cancel optimised animations\n * if a layout animation measurement is actually going to be affected by them.\n */\n if (window.MotionCancelOptimisedAnimation &&\n !this.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(this);\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n if (node.options.layoutRoot) {\n node.willUpdate(false);\n }\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = this.getTransformTemplate();\n this.prevTransformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n update() {\n this.updateScheduled = false;\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n /**\n * If this is a repeat of didUpdate then ignore the animation.\n */\n if (this.animationId <= this.animationCommitId) {\n this.nodes.forEach(clearIsLayoutDirty);\n return;\n }\n this.animationCommitId = this.animationId;\n if (!this.isUpdating) {\n this.nodes.forEach(clearIsLayoutDirty);\n }\n else {\n this.isUpdating = false;\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n }\n this.clearAllSnapshots();\n /**\n * Manually flush any pending updates. Ideally\n * we could leave this to the following requestAnimationFrame but this seems\n * to leave a flash of incorrectly styled content.\n */\n const now = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_11__.time.now();\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.delta = (0,motion_utils__WEBPACK_IMPORTED_MODULE_12__.clamp)(0, 1000 / 60, now - _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp = now;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.isProcessing = true;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameSteps.update.process(_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameSteps.preRender.process(_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameSteps.render.process(_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData);\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.isProcessing = false;\n }\n didUpdate() {\n if (!this.updateScheduled) {\n this.updateScheduled = true;\n _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_13__.microtask.read(this.scheduleUpdate);\n }\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n if (!this.projectionUpdateScheduled) {\n this.projectionUpdateScheduled = true;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.preRender(this.updateProjection, false, true);\n }\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n if (this.snapshot &&\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.snapshot.measuredBox.x) &&\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.snapshot.measuredBox.y)) {\n this.snapshot = undefined;\n }\n }\n updateLayout() {\n if (!this.instance)\n return;\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutVersion++;\n this.layoutCorrected = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n const { visualElement } = this.options;\n visualElement &&\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement && this.instance) {\n const isRoot = checkIsScrollRoot(this.instance);\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot,\n offset: measureScroll(this.instance),\n wasRoot: this.scroll ? this.scroll.isRoot : isRoot,\n };\n }\n }\n resetTransform() {\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty ||\n this.shouldResetTransform ||\n this.options.alwaysMeasureLayout;\n const hasProjection = this.projectionDelta && !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.isDeltaZero)(this.projectionDelta);\n const transformTemplate = this.getTransformTemplate();\n const transformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n this.instance &&\n (hasProjection ||\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n const { visualElement } = this.options;\n if (!visualElement)\n return (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const box = visualElement.measureViewportBox();\n const wasInScrollRoot = this.scroll?.wasRoot || this.path.some(checkNodeWasScrollRoot);\n if (!wasInScrollRoot) {\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(box.x, scroll.offset.x);\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(box.y, scroll.offset.y);\n }\n }\n return box;\n }\n removeElementScroll(box) {\n const boxWithoutScroll = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutScroll, box);\n if (this.scroll?.wasRoot) {\n return boxWithoutScroll;\n }\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.wasRoot) {\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutScroll, box);\n }\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(boxWithoutScroll.x, scroll.offset.x);\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.translateAxis)(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(node.latestValues))\n continue;\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, node.latestValues);\n }\n if ((0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n const boxWithoutTransform = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(node.latestValues))\n continue;\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasScale)(node.latestValues) && node.updateSnapshot();\n const sourceBox = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const nodeBox = node.measurePageBox();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(sourceBox, nodeBox);\n (0,_geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__.removeBoxTransforms)(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\n }\n if ((0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\n (0,_geometry_delta_remove_mjs__WEBPACK_IMPORTED_MODULE_19__.removeBoxTransforms)(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n this.isProjectionDirty = true;\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n forceRelativeParentToResolveTarget() {\n if (!this.relativeParent)\n return;\n /**\n * If the parent target isn't up-to-date, force it to update.\n * This is an unfortunate de-optimisation as it means any updating relative\n * projection will cause all the relative parents to recalculate back\n * up the tree.\n */\n if (this.relativeParent.resolvedRelativeTargetAt !==\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp) {\n this.relativeParent.resolveTargetDelta(true);\n }\n }\n resolveTargetDelta(forceRecalculation = false) {\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n const canSkip = !(forceRecalculation ||\n (isShared && this.isSharedProjectionDirty) ||\n this.isProjectionDirty ||\n this.parent?.isProjectionDirty ||\n this.attemptToResolveRelativeTarget ||\n this.root.updateBlockedByResize);\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n this.resolvedRelativeTargetAt = _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n this.linkedParentVersion !== relativeParent.layoutVersion &&\n !relativeParent.options.layoutRoot) {\n this.removeRelativeTarget();\n }\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n if (!this.targetDelta && !this.relativeTarget) {\n if (relativeParent && relativeParent.layout) {\n this.createRelativeTarget(relativeParent, this.layout.layoutBox, relativeParent.layout.layoutBox);\n }\n else {\n this.removeRelativeTarget();\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n this.targetWithTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.relativeParent &&\n this.relativeParent.target) {\n this.forceRelativeParentToResolveTarget();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativeBox)(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.target, this.layout.layoutBox);\n }\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.applyBoxDelta)(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target &&\n this.animationProgress !== 1) {\n this.createRelativeTarget(relativeParent, this.target, relativeParent.target);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * Increase debug counter for resolved target deltas\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.calculatedTargetDeltas++;\n }\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasScale)(this.parent.latestValues) ||\n (0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.has2DTranslate)(this.parent.latestValues)) {\n return undefined;\n }\n if (this.parent.isProjecting()) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n isProjecting() {\n return Boolean((this.relativeTarget ||\n this.targetDelta ||\n this.options.layoutRoot) &&\n this.layout);\n }\n createRelativeTarget(relativeParent, layout, parentLayout) {\n this.relativeParent = relativeParent;\n this.linkedParentVersion = relativeParent.layoutVersion;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n this.relativeTargetOrigin = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(this.relativeTargetOrigin, layout, parentLayout);\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.relativeTarget, this.relativeTargetOrigin);\n }\n removeRelativeTarget() {\n this.relativeParent = this.relativeTarget = undefined;\n }\n calcProjection() {\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n /**\n * If this is a normal layout animation and neither this node nor its nearest projecting\n * is dirty then we can't skip.\n */\n if (this.isProjectionDirty || this.parent?.isProjectionDirty) {\n canSkip = false;\n }\n /**\n * If this is a shared layout animation and this node's shared projection is dirty then\n * we can't skip.\n */\n if (isShared &&\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\n canSkip = false;\n }\n /**\n * If we have resolved the target this frame we must recalculate the\n * projection to ensure it visually represents the internal calculations.\n */\n if (this.resolvedRelativeTargetAt === _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frameData.timestamp) {\n canSkip = false;\n }\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Record previous tree scales before updating.\n */\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.applyTreeDeltas)(this.layoutCorrected, this.treeScale, this.path, isShared);\n /**\n * If this layer needs to perform scale correction but doesn't have a target,\n * use the layout as the target.\n */\n if (lead.layout &&\n !lead.target &&\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n lead.target = lead.layout.layoutBox;\n lead.targetWithTransforms = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n }\n const { target } = lead;\n if (!target) {\n /**\n * If we don't have a target to project into, but we were previously\n * projecting, we want to remove the stored transform and schedule\n * a render to ensure the elements reflect the removed transform.\n */\n if (this.prevProjectionDelta) {\n this.createProjectionDeltas();\n this.scheduleRender();\n }\n return;\n }\n if (!this.projectionDelta || !this.prevProjectionDelta) {\n this.createProjectionDeltas();\n }\n else {\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyAxisDeltaInto)(this.prevProjectionDelta.x, this.projectionDelta.x);\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyAxisDeltaInto)(this.prevProjectionDelta.y, this.projectionDelta.y);\n }\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n if (this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY ||\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.axisDeltaEquals)(this.projectionDelta.x, this.prevProjectionDelta.x) ||\n !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.axisDeltaEquals)(this.projectionDelta.y, this.prevProjectionDelta.y)) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n /**\n * Increase debug counter for recalculated projections\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.calculatedProjections++;\n }\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n this.options.visualElement?.scheduleRender();\n if (notifyAll) {\n const stack = this.getStack();\n stack && stack.scheduleRender();\n }\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n createProjectionDeltas() {\n this.prevProjectionDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n this.projectionDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n this.projectionDeltaWithTransform = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n const snapshot = this.snapshot;\n const snapshotLatestValues = snapshot ? snapshot.latestValues : {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n if (!this.relativeParent ||\n !this.relativeParent.options.layoutRoot) {\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n }\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const snapshotSource = snapshot ? snapshot.source : undefined;\n const layoutSource = this.layout ? this.layout.source : undefined;\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n const stack = this.getStack();\n const isOnlyMember = !stack || stack.members.length <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n let prevRelativeTarget;\n this.mixTargetDelta = (latest) => {\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n this.relativeParent &&\n this.relativeParent.layout) {\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n /**\n * If this is an unchanged relative target we can consider the\n * projection not dirty.\n */\n if (prevRelativeTarget &&\n (0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEquals)(this.relativeTarget, prevRelativeTarget)) {\n this.isProjectionDirty = false;\n }\n if (!prevRelativeTarget)\n prevRelativeTarget = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(prevRelativeTarget, this.relativeTarget);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n (0,_animation_mix_values_mjs__WEBPACK_IMPORTED_MODULE_20__.mixValues)(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\n }\n startAnimation(options) {\n this.notifyListeners(\"animationStart\");\n this.currentAnimation?.stop();\n this.resumingFrom?.currentAnimation?.stop();\n if (this.pendingAnimation) {\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.update(() => {\n _state_mjs__WEBPACK_IMPORTED_MODULE_8__.globalProjectionState.hasAnimatedSinceResize = true;\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout++;\n this.motionValue || (this.motionValue = (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_22__.motionValue)(0));\n this.motionValue.jump(0, false);\n this.currentAnimation = (0,_animation_animate_single_value_mjs__WEBPACK_IMPORTED_MODULE_23__.animateSingleValue)(this.motionValue, [0, 1000], {\n ...options,\n velocity: 0,\n isSync: true,\n onUpdate: (latest) => {\n this.mixTargetDelta(latest);\n options.onUpdate && options.onUpdate(latest);\n },\n onStop: () => {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout--;\n },\n onComplete: () => {\n _stats_animation_count_mjs__WEBPACK_IMPORTED_MODULE_21__.activeAnimations.layout--;\n options.onComplete && options.onComplete();\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n const stack = this.getStack();\n stack && stack.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n if (this.currentAnimation) {\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n const xLength = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n (0,_geometry_copy_mjs__WEBPACK_IMPORTED_MODULE_18__.copyBoxInto)(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_17__.transformBox)(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new _shared_stack_mjs__WEBPACK_IMPORTED_MODULE_24__.NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n const config = node.options.initialPromotionConfig;\n node.promote({\n transition: config ? config.transition : undefined,\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\n ? config.shouldPreserveFollowOpacity(node)\n : undefined,\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n const { layoutId } = this.options;\n return layoutId ? this.getStack()?.lead || this : this;\n }\n getPrevLead() {\n const { layoutId } = this.options;\n return layoutId ? this.getStack()?.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetSkewAndRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected skew or rotation values, we can early return without a forced render.\n let hasDistortingTransform = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.z ||\n latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ ||\n latestValues.skewX ||\n latestValues.skewY) {\n hasDistortingTransform = true;\n }\n // If there's no distorting values, we don't need to do any more.\n if (!hasDistortingTransform)\n return;\n const resetValues = {};\n if (latestValues.z) {\n resetDistortingTransform(\"z\", visualElement, resetValues, this.animationValues);\n }\n // Check the skew and rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n }\n // Force a render of this element to apply the transform with all skews and rotations\n // set to 0.\n visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n if (this.animationValues) {\n this.animationValues[key] = resetValues[key];\n }\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n applyProjectionStyles(targetStyle, // CSSStyleDeclaration - doesn't allow numbers to be assigned to properties\n styleProp) {\n if (!this.instance || this.isSVG)\n return;\n if (!this.isVisible) {\n targetStyle.visibility = \"hidden\";\n return;\n }\n const transformTemplate = this.getTransformTemplate();\n if (this.needsReset) {\n this.needsReset = false;\n targetStyle.visibility = \"\";\n targetStyle.opacity = \"\";\n targetStyle.pointerEvents =\n (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\";\n targetStyle.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n if (this.options.layoutId) {\n targetStyle.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n targetStyle.pointerEvents =\n (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\";\n }\n if (this.hasProjected && !(0,_utils_has_transform_mjs__WEBPACK_IMPORTED_MODULE_16__.hasTransform)(this.latestValues)) {\n targetStyle.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return;\n }\n targetStyle.visibility = \"\";\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n let transform = (0,_styles_transform_mjs__WEBPACK_IMPORTED_MODULE_26__.buildProjectionTransform)(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n transform = transformTemplate(valuesToRender, transform);\n }\n targetStyle.transform = transform;\n const { x, y } = this.projectionDelta;\n targetStyle.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n targetStyle.opacity =\n lead === this\n ? valuesToRender.opacity ??\n this.latestValues.opacity ??\n 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n targetStyle.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__.scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo, isCSSVariable } = _styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_27__.scaleCorrectors[key];\n /**\n * Only apply scale correction to the value if we have an\n * active projection transform. Otherwise these values become\n * vulnerable to distortion if the element changes size without\n * a corresponding layout animation.\n */\n const corrected = transform === \"none\"\n ? valuesToRender[key]\n : correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n targetStyle[applyTo[i]] = corrected;\n }\n }\n else {\n // If this is a CSS variable, set it directly on the instance.\n // Replacing this function from creating styles to setting them\n // would be a good place to remove per frame object creation\n if (isCSSVariable) {\n this.options.visualElement.renderState.vars[key] = corrected;\n }\n else {\n targetStyle[key] = corrected;\n }\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n targetStyle.pointerEvents =\n lead === this\n ? (0,_value_utils_resolve_motion_value_mjs__WEBPACK_IMPORTED_MODULE_25__.resolveMotionValue)(styleProp?.pointerEvents) || \"\"\n : \"none\";\n }\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => node.currentAnimation?.stop());\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n const snapshot = node.resumeFrom?.snapshot || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n (0,_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__.eachAxis)((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n (0,_utils_each_axis_mjs__WEBPACK_IMPORTED_MODULE_28__.eachAxis)((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcLength)(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n /**\n * Ensure relative target gets resized and rerendererd\n */\n if (node.relativeTarget && !node.currentAnimation) {\n node.isProjectionDirty = true;\n node.relativeTarget[axis].max =\n node.relativeTarget[axis].min + length;\n }\n });\n }\n const layoutDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createDelta)();\n if (isShared) {\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcBoxDelta)(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.isDeltaZero)(layoutDelta);\n let hasRelativeLayoutChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = (0,_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_15__.createBox)();\n (0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.calcRelativePosition)(relativeLayout, layout, parentLayout.layoutBox);\n if (!(0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.boxEqualsRounded)(relativeSnapshot, relativeLayout)) {\n hasRelativeLayoutChanged = true;\n }\n if (relativeParent.options.layoutRoot) {\n node.relativeTarget = relativeLayout;\n node.relativeTargetOrigin = relativeSnapshot;\n node.relativeParent = relativeParent;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeLayoutChanged,\n });\n }\n else if (node.isLead()) {\n const { onExitComplete } = node.options;\n onExitComplete && onExitComplete();\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Increase debug counter for nodes encountered this frame\n */\n if (_stats_buffer_mjs__WEBPACK_IMPORTED_MODULE_2__.statsBuffer.value) {\n metrics.nodes++;\n }\n if (!node.parent)\n return;\n /**\n * If this node isn't projecting, propagate isProjectionDirty. It will have\n * no performance impact but it will allow the next child that *is* projecting\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\n * correcting.\n */\n if (!node.isProjecting()) {\n node.isProjectionDirty = node.parent.isProjectionDirty;\n }\n /**\n * Propagate isSharedProjectionDirty and isTransformDirty\n * throughout the whole tree. A future revision can take another look at\n * this but for safety we still recalcualte shared nodes.\n */\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\n node.parent.isProjectionDirty ||\n node.parent.isSharedProjectionDirty));\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n node.isProjectionDirty =\n node.isSharedProjectionDirty =\n node.isTransformDirty =\n false;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetSkewAndRotation(node) {\n node.resetSkewAndRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(delta.translate, 0, p);\n output.scale = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(from.min, to.min, p);\n output.max = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_29__.mixNumber)(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().includes(string);\n/**\n * Measured bounding boxes must be rounded in Safari and\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\n * can appear to jump.\n */\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\n ? Math.round\n : motion_utils__WEBPACK_IMPORTED_MODULE_30__.noop;\nfunction roundAxis(axis) {\n // Round to the nearest .5 pixels to support subpixel layouts\n axis.min = roundPoint(axis.min);\n axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !(0,_geometry_delta_calc_mjs__WEBPACK_IMPORTED_MODULE_14__.isNear)((0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.aspectRatio)(snapshot), (0,_geometry_utils_mjs__WEBPACK_IMPORTED_MODULE_9__.aspectRatio)(layout), 0.2)));\n}\nfunction checkNodeWasScrollRoot(node) {\n return node !== node.root && node.scroll?.wasRoot;\n}\n\n\n//# sourceMappingURL=create-projection-node.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL2NyZWF0ZS1wcm9qZWN0aW9uLW5vZGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBZ0U7QUFDYztBQUNZO0FBQ047QUFDMUI7QUFDTDtBQUNZO0FBQ0U7QUFDZDtBQUNQO0FBQ2dCO0FBQ087QUFDZDtBQUNIO0FBQzRCO0FBQ3hCO0FBQ2M7QUFDb0M7QUFDVztBQUNsRDtBQUNIO0FBQytDO0FBQy9EO0FBQ21CO0FBQ2pCO0FBQ0E7QUFDa0M7QUFDaEM7QUFDa0M7O0FBRXRGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxlQUFlO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxnQkFBZ0I7QUFDNUI7QUFDQTtBQUNBLHFCQUFxQixtR0FBb0I7QUFDekM7QUFDQSxnQkFBZ0IsbUJBQW1CO0FBQ25DLHFFQUFxRSx1REFBSztBQUMxRTtBQUNBLFlBQVksU0FBUztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx3RkFBd0Y7QUFDeEg7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDBEQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiwwREFBVztBQUMvQixvQkFBb0IsMERBQVc7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLDBEQUFRO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRCw2REFBbUI7QUFDcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsdUVBQVksZUFBZSw4RUFBZTtBQUNuRTtBQUNBLG9CQUFvQixrQ0FBa0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQUs7QUFDckI7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsdURBQUs7QUFDdkMsd0JBQXdCLDZEQUFxQjtBQUM3Qyx3QkFBd0IsNkRBQXFCO0FBQzdDO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNEQUFzRCx1RUFBdUU7QUFDN0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHFEQUFxRDtBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLHFFQUFnQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiw4RkFBa0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksaUVBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHNCQUFzQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQkFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsMkRBQUk7QUFDNUIsWUFBWSwyREFBUyxTQUFTLG9EQUFLLHFCQUFxQiwyREFBUztBQUNqRSxZQUFZLDJEQUFTO0FBQ3JCLFlBQVksMkRBQVM7QUFDckIsWUFBWSw0REFBVSxnQkFBZ0IsMkRBQVM7QUFDL0MsWUFBWSw0REFBVSxtQkFBbUIsMkRBQVM7QUFDbEQsWUFBWSw0REFBVSxnQkFBZ0IsMkRBQVM7QUFDL0MsWUFBWSwyREFBUztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixnRUFBUztBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQUs7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksdURBQUs7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixxRUFBVTtBQUMzQixpQkFBaUIscUVBQVU7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msc0JBQXNCO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLGdFQUFTO0FBQzVDO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJELGdFQUFXO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsdUVBQVk7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0JBQWdCO0FBQ3BDO0FBQ0EsdUJBQXVCLGdFQUFTO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLFNBQVM7QUFDakM7QUFDQSxvQkFBb0IseUVBQWE7QUFDakMsb0JBQW9CLHlFQUFhO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsZ0VBQVM7QUFDOUMsWUFBWSxnRUFBVztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQSx3QkFBd0Isa0JBQWtCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixnRUFBVztBQUNuQztBQUNBLG9CQUFvQix5RUFBYTtBQUNqQyxvQkFBb0IseUVBQWE7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxnRUFBUztBQUM1QyxZQUFZLGdFQUFXO0FBQ3ZCLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQix3RUFBWTtBQUNoQztBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EscUJBQXFCLHVFQUFZO0FBQ2pDO0FBQ0EsZ0JBQWdCLHdFQUFZO0FBQzVCO0FBQ0EsZ0JBQWdCLHVFQUFZO0FBQzVCLGdCQUFnQix3RUFBWTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QyxnRUFBUztBQUNqRCxZQUFZLGdFQUFXO0FBQ3ZCLDRCQUE0QixzQkFBc0I7QUFDbEQ7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLHVFQUFZO0FBQ2pDO0FBQ0EsZ0JBQWdCLG1FQUFRO0FBQ3hCLGtDQUFrQyxnRUFBUztBQUMzQztBQUNBLGdCQUFnQixnRUFBVztBQUMzQixnQkFBZ0IsZ0ZBQW1CO0FBQ25DO0FBQ0EsZ0JBQWdCLHVFQUFZO0FBQzVCLGdCQUFnQixnRkFBbUI7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMkRBQVM7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixtQkFBbUI7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRDQUE0QywyREFBUztBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLGdFQUFTO0FBQ3ZDLDRDQUE0QyxnRUFBUztBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMEVBQWU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsZ0VBQVc7QUFDL0I7QUFDQSxnQkFBZ0IseUVBQWE7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixnRUFBVztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsMERBQVc7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixtRUFBUTtBQUN4QixnQkFBZ0IseUVBQWM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsZ0VBQVM7QUFDM0Msd0NBQXdDLGdFQUFTO0FBQ2pELFlBQVksK0VBQW9CO0FBQ2hDLFlBQVksZ0VBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0RBQWtELDJEQUFTO0FBQzNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLG1CQUFtQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksZ0VBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSwyRUFBZTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNENBQTRDLGdFQUFTO0FBQ3JEO0FBQ0Esb0JBQW9CLFNBQVM7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isc0VBQWlCO0FBQ2pDLGdCQUFnQixzRUFBaUI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHVFQUFZO0FBQ3hCO0FBQ0E7QUFDQSxpQkFBaUIsb0VBQWU7QUFDaEMsaUJBQWlCLG9FQUFlO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDBEQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLGtFQUFXO0FBQ2xELG1DQUFtQyxrRUFBVztBQUM5QyxnREFBZ0Qsa0VBQVc7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEMsZ0NBQWdDLGtFQUFXO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsZ0VBQVM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLCtFQUFvQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsOERBQVM7QUFDakM7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLGdFQUFTO0FBQ3RELG9CQUFvQixnRUFBVztBQUMvQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IscUVBQVM7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLGlFQUFXO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLHVEQUFLO0FBQ3pDLGdCQUFnQiw2REFBcUI7QUFDckMsZ0JBQWdCLHlFQUFnQjtBQUNoQyx3REFBd0QsOERBQVc7QUFDbkU7QUFDQSx3Q0FBd0Msd0ZBQWtCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBLHdCQUF3Qix5RUFBZ0I7QUFDeEMscUJBQXFCO0FBQ3JCO0FBQ0Esd0JBQXdCLHlFQUFnQjtBQUN4QztBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLHFEQUFxRDtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0NBQXdDLGdFQUFTO0FBQ2pELGdDQUFnQyxxRUFBVTtBQUMxQztBQUNBO0FBQ0EsZ0NBQWdDLHFFQUFVO0FBQzFDO0FBQ0E7QUFDQTtBQUNBLFlBQVksZ0VBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksd0VBQVk7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSx1RUFBWTtBQUN4QjtBQUNBO0FBQ0E7QUFDQSxtREFBbUQseURBQVM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixXQUFXO0FBQy9CO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixpREFBaUQsSUFBSTtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLFlBQVk7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixlQUFlO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsMEJBQTBCO0FBQ3RELGtEQUFrRCxpQkFBaUI7QUFDbkUsZ0RBQWdELGlCQUFpQjtBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDBGQUFrQjtBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QiwwRkFBa0I7QUFDMUM7QUFDQSwwQ0FBMEMsdUVBQVk7QUFDdEQ7QUFDQSw4Q0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0QixnRkFBd0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsT0FBTztBQUMzQiw2Q0FBNkMsZUFBZSxJQUFJLGVBQWU7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsMEVBQWU7QUFDN0M7QUFDQTtBQUNBLHdCQUF3QixrQ0FBa0MsRUFBRSwwRUFBZTtBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DLFNBQVM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiwwRkFBa0I7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixpREFBaUQ7QUFDakUsZ0JBQWdCLGdCQUFnQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksK0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHFFQUFVO0FBQ3pDO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLFlBQVksK0RBQVE7QUFDcEI7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLHFFQUFVO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLDRCQUE0QixrRUFBVztBQUN2QyxRQUFRLHVFQUFZO0FBQ3BCLDRCQUE0QixrRUFBVztBQUN2QztBQUNBLFlBQVksdUVBQVk7QUFDeEI7QUFDQTtBQUNBLFlBQVksdUVBQVk7QUFDeEI7QUFDQSxrQ0FBa0MsZ0VBQVc7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixpREFBaUQ7QUFDekU7QUFDQSw2Q0FBNkMsZ0VBQVM7QUFDdEQsb0JBQW9CLCtFQUFvQjtBQUN4QywyQ0FBMkMsZ0VBQVM7QUFDcEQsb0JBQW9CLCtFQUFvQjtBQUN4Qyx5QkFBeUIscUVBQWdCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLGdCQUFnQixpQkFBaUI7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvRUFBb0UsY0FBYztBQUNsRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwwREFBVztBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGdCQUFnQjtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLGlFQUFTO0FBQ2hDLG1CQUFtQixpRUFBUztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixpRUFBUztBQUMxQixpQkFBaUIsaUVBQVM7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNLCtDQUFJO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxpRUFBTSxDQUFDLGdFQUFXLFlBQVksZ0VBQVc7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRXFHO0FBQ3JHIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL25vZGUvY3JlYXRlLXByb2plY3Rpb24tbm9kZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaXB0aW9uTWFuYWdlciwgY2xhbXAsIG5vb3AgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgYW5pbWF0ZVNpbmdsZVZhbHVlIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL2FuaW1hdGUvc2luZ2xlLXZhbHVlLm1qcyc7XG5pbXBvcnQgeyBnZXRPcHRpbWlzZWRBcHBlYXJJZCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi9vcHRpbWl6ZWQtYXBwZWFyL2dldC1hcHBlYXItaWQubWpzJztcbmltcG9ydCB7IGdldFZhbHVlVHJhbnNpdGlvbiB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi91dGlscy9nZXQtdmFsdWUtdHJhbnNpdGlvbi5tanMnO1xuaW1wb3J0IHsgbWljcm90YXNrIH0gZnJvbSAnLi4vLi4vZnJhbWVsb29wL21pY3JvdGFzay5tanMnO1xuaW1wb3J0IHsgdGltZSB9IGZyb20gJy4uLy4uL2ZyYW1lbG9vcC9zeW5jLXRpbWUubWpzJztcbmltcG9ydCB7IHNjYWxlQ29ycmVjdG9ycyB9IGZyb20gJy4uL3N0eWxlcy9zY2FsZS1jb3JyZWN0aW9uLm1qcyc7XG5pbXBvcnQgeyBhY3RpdmVBbmltYXRpb25zIH0gZnJvbSAnLi4vLi4vc3RhdHMvYW5pbWF0aW9uLWNvdW50Lm1qcyc7XG5pbXBvcnQgeyBzdGF0c0J1ZmZlciB9IGZyb20gJy4uLy4uL3N0YXRzL2J1ZmZlci5tanMnO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICcuLi8uLi91dGlscy9kZWxheS5tanMnO1xuaW1wb3J0IHsgaXNTVkdFbGVtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvaXMtc3ZnLWVsZW1lbnQubWpzJztcbmltcG9ydCB7IGlzU1ZHU1ZHRWxlbWVudCB9IGZyb20gJy4uLy4uL3V0aWxzL2lzLXN2Zy1zdmctZWxlbWVudC5tanMnO1xuaW1wb3J0IHsgbWl4TnVtYmVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWl4L251bWJlci5tanMnO1xuaW1wb3J0IHsgbW90aW9uVmFsdWUgfSBmcm9tICcuLi8uLi92YWx1ZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgcmVzb2x2ZU1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdXRpbHMvcmVzb2x2ZS1tb3Rpb24tdmFsdWUubWpzJztcbmltcG9ydCB7IG1peFZhbHVlcyB9IGZyb20gJy4uL2FuaW1hdGlvbi9taXgtdmFsdWVzLm1qcyc7XG5pbXBvcnQgeyBjb3B5Qm94SW50bywgY29weUF4aXNEZWx0YUludG8gfSBmcm9tICcuLi9nZW9tZXRyeS9jb3B5Lm1qcyc7XG5pbXBvcnQgeyB0cmFuc2xhdGVBeGlzLCB0cmFuc2Zvcm1Cb3gsIGFwcGx5Qm94RGVsdGEsIGFwcGx5VHJlZURlbHRhcyB9IGZyb20gJy4uL2dlb21ldHJ5L2RlbHRhLWFwcGx5Lm1qcyc7XG5pbXBvcnQgeyBjYWxjTGVuZ3RoLCBjYWxjUmVsYXRpdmVCb3gsIGNhbGNSZWxhdGl2ZVBvc2l0aW9uLCBjYWxjQm94RGVsdGEsIGlzTmVhciB9IGZyb20gJy4uL2dlb21ldHJ5L2RlbHRhLWNhbGMubWpzJztcbmltcG9ydCB7IHJlbW92ZUJveFRyYW5zZm9ybXMgfSBmcm9tICcuLi9nZW9tZXRyeS9kZWx0YS1yZW1vdmUubWpzJztcbmltcG9ydCB7IGNyZWF0ZUJveCwgY3JlYXRlRGVsdGEgfSBmcm9tICcuLi9nZW9tZXRyeS9tb2RlbHMubWpzJztcbmltcG9ydCB7IGJveEVxdWFsc1JvdW5kZWQsIGlzRGVsdGFaZXJvLCBheGlzRGVsdGFFcXVhbHMsIGFzcGVjdFJhdGlvLCBib3hFcXVhbHMgfSBmcm9tICcuLi9nZW9tZXRyeS91dGlscy5tanMnO1xuaW1wb3J0IHsgTm9kZVN0YWNrIH0gZnJvbSAnLi4vc2hhcmVkL3N0YWNrLm1qcyc7XG5pbXBvcnQgeyBidWlsZFByb2plY3Rpb25UcmFuc2Zvcm0gfSBmcm9tICcuLi9zdHlsZXMvdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyBlYWNoQXhpcyB9IGZyb20gJy4uL3V0aWxzL2VhY2gtYXhpcy5tanMnO1xuaW1wb3J0IHsgRmxhdFRyZWUgfSBmcm9tICcuLi91dGlscy9mbGF0LXRyZWUubWpzJztcbmltcG9ydCB7IGhhc1RyYW5zZm9ybSwgaGFzU2NhbGUsIGhhczJEVHJhbnNsYXRlIH0gZnJvbSAnLi4vdXRpbHMvaGFzLXRyYW5zZm9ybS5tanMnO1xuaW1wb3J0IHsgZ2xvYmFsUHJvamVjdGlvblN0YXRlIH0gZnJvbSAnLi9zdGF0ZS5tanMnO1xuaW1wb3J0IHsgZnJhbWUsIGNhbmNlbEZyYW1lLCBmcmFtZURhdGEsIGZyYW1lU3RlcHMgfSBmcm9tICcuLi8uLi9mcmFtZWxvb3AvZnJhbWUubWpzJztcblxuY29uc3QgbWV0cmljcyA9IHtcbiAgICBub2RlczogMCxcbiAgICBjYWxjdWxhdGVkVGFyZ2V0RGVsdGFzOiAwLFxuICAgIGNhbGN1bGF0ZWRQcm9qZWN0aW9uczogMCxcbn07XG5jb25zdCB0cmFuc2Zvcm1BeGVzID0gW1wiXCIsIFwiWFwiLCBcIllcIiwgXCJaXCJdO1xuLyoqXG4gKiBXZSB1c2UgMTAwMCBhcyB0aGUgYW5pbWF0aW9uIHRhcmdldCBhcyAwLTEwMDAgbWFwcyBiZXR0ZXIgdG8gcGl4ZWxzIHRoYW4gMC0xXG4gKiB3aGljaCBoYXMgYSBub3RpY2VhYmxlIGRpZmZlcmVuY2UgaW4gc3ByaW5nIGFuaW1hdGlvbnNcbiAqL1xuY29uc3QgYW5pbWF0aW9uVGFyZ2V0ID0gMTAwMDtcbmxldCBpZCA9IDA7XG5mdW5jdGlvbiByZXNldERpc3RvcnRpbmdUcmFuc2Zvcm0oa2V5LCB2aXN1YWxFbGVtZW50LCB2YWx1ZXMsIHNoYXJlZEFuaW1hdGlvblZhbHVlcykge1xuICAgIGNvbnN0IHsgbGF0ZXN0VmFsdWVzIH0gPSB2aXN1YWxFbGVtZW50O1xuICAgIC8vIFJlY29yZCB0aGUgZGlzdG9ydGluZyB0cmFuc2Zvcm0gYW5kIHRoZW4gdGVtcG9yYXJpbHkgc2V0IGl0IHRvIDBcbiAgICBpZiAobGF0ZXN0VmFsdWVzW2tleV0pIHtcbiAgICAgICAgdmFsdWVzW2tleV0gPSBsYXRlc3RWYWx1ZXNba2V5XTtcbiAgICAgICAgdmlzdWFsRWxlbWVudC5zZXRTdGF0aWNWYWx1ZShrZXksIDApO1xuICAgICAgICBpZiAoc2hhcmVkQW5pbWF0aW9uVmFsdWVzKSB7XG4gICAgICAgICAgICBzaGFyZWRBbmltYXRpb25WYWx1ZXNba2V5XSA9IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5mdW5jdGlvbiBjYW5jZWxUcmVlT3B0aW1pc2VkVHJhbnNmb3JtQW5pbWF0aW9ucyhwcm9qZWN0aW9uTm9kZSkge1xuICAgIHByb2plY3Rpb25Ob2RlLmhhc0NoZWNrZWRPcHRpbWlzZWRBcHBlYXIgPSB0cnVlO1xuICAgIGlmIChwcm9qZWN0aW9uTm9kZS5yb290ID09PSBwcm9qZWN0aW9uTm9kZSlcbiAgICAgICAgcmV0dXJuO1xuICAgIGNvbnN0IHsgdmlzdWFsRWxlbWVudCB9ID0gcHJvamVjdGlvbk5vZGUub3B0aW9ucztcbiAgICBpZiAoIXZpc3VhbEVsZW1lbnQpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCBhcHBlYXJJZCA9IGdldE9wdGltaXNlZEFwcGVhcklkKHZpc3VhbEVsZW1lbnQpO1xuICAgIGlmICh3aW5kb3cuTW90aW9uSGFzT3B0aW1pc2VkQW5pbWF0aW9uKGFwcGVhcklkLCBcInRyYW5zZm9ybVwiKSkge1xuICAgICAgICBjb25zdCB7IGxheW91dCwgbGF5b3V0SWQgfSA9IHByb2plY3Rpb25Ob2RlLm9wdGlvbnM7XG4gICAgICAgIHdpbmRvdy5Nb3Rpb25DYW5jZWxPcHRpbWlzZWRBbmltYXRpb24oYXBwZWFySWQsIFwidHJhbnNmb3JtXCIsIGZyYW1lLCAhKGxheW91dCB8fCBsYXlvdXRJZCkpO1xuICAgIH1cbiAgICBjb25zdCB7IHBhcmVudCB9ID0gcHJvamVjdGlvbk5vZGU7XG4gICAgaWYgKHBhcmVudCAmJiAhcGFyZW50Lmhhc0NoZWNrZWRPcHRpbWlzZWRBcHBlYXIpIHtcbiAgICAgICAgY2FuY2VsVHJlZU9wdGltaXNlZFRyYW5zZm9ybUFuaW1hdGlvbnMocGFyZW50KTtcbiAgICB9XG59XG5mdW5jdGlvbiBjcmVhdGVQcm9qZWN0aW9uTm9kZSh7IGF0dGFjaFJlc2l6ZUxpc3RlbmVyLCBkZWZhdWx0UGFyZW50LCBtZWFzdXJlU2Nyb2xsLCBjaGVja0lzU2Nyb2xsUm9vdCwgcmVzZXRUcmFuc2Zvcm0sIH0pIHtcbiAgICByZXR1cm4gY2xhc3MgUHJvamVjdGlvbk5vZGUge1xuICAgICAgICBjb25zdHJ1Y3RvcihsYXRlc3RWYWx1ZXMgPSB7fSwgcGFyZW50ID0gZGVmYXVsdFBhcmVudD8uKCkpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQSB1bmlxdWUgSUQgZ2VuZXJhdGVkIGZvciBldmVyeSBwcm9qZWN0aW9uIG5vZGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaWQgPSBpZCsrO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBbiBpZCB0aGF0IHJlcHJlc2VudHMgYSB1bmlxdWUgc2Vzc2lvbiBpbnN0aWdhdGVkIGJ5IHN0YXJ0VXBkYXRlLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvbklkID0gMDtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uQ29tbWl0SWQgPSAwO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBIFNldCBjb250YWluaW5nIGFsbCB0aGlzIGNvbXBvbmVudCdzIGNoaWxkcmVuLiBUaGlzIGlzIHVzZWQgdG8gaXRlcmF0ZVxuICAgICAgICAgICAgICogdGhyb3VnaCB0aGUgY2hpbGRyZW4uXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICogVE9ETzogVGhpcyBjb3VsZCBiZSBmYXN0ZXIgdG8gaXRlcmF0ZSBhcyBhIGZsYXQgYXJyYXkgc3RvcmVkIG9uIHRoZSByb290IG5vZGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW4gPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE9wdGlvbnMgZm9yIHRoZSBub2RlLiBXZSB1c2UgdGhpcyB0byBjb25maWd1cmUgd2hhdCBraW5kIG9mIGxheW91dCBhbmltYXRpb25zXG4gICAgICAgICAgICAgKiB3ZSBzaG91bGQgcGVyZm9ybSAoaWYgYW55KS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zID0ge307XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFdlIHVzZSB0aGlzIHRvIGRldGVjdCB3aGVuIGl0cyBzYWZlIHRvIHNodXQgZG93biBwYXJ0IG9mIGEgcHJvamVjdGlvbiB0cmVlLlxuICAgICAgICAgICAgICogV2UgaGF2ZSB0byBrZWVwIHByb2plY3RpbmcgY2hpbGRyZW4gZm9yIHNjYWxlIGNvcnJlY3Rpb24gYW5kIHJlbGF0aXZlIHByb2plY3Rpb25cbiAgICAgICAgICAgICAqIHVudGlsIGFsbCB0aGVpciBwYXJlbnRzIHN0b3AgcGVyZm9ybWluZyBsYXlvdXQgYW5pbWF0aW9ucy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5pc1RyZWVBbmltYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaXNBbmltYXRpb25CbG9ja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZsYWcgdG8gdHJ1ZSBpZiB3ZSB0aGluayB0aGlzIGxheW91dCBoYXMgYmVlbiBjaGFuZ2VkLiBXZSBjYW4ndCBhbHdheXMga25vdyB0aGlzLFxuICAgICAgICAgICAgICogY3VycmVudGx5IHdlIHNldCBpdCB0byB0cnVlIGV2ZXJ5IHRpbWUgYSBjb21wb25lbnQgcmVuZGVycywgb3IgaWYgaXQgaGFzIGEgbGF5b3V0RGVwZW5kZW5jeVxuICAgICAgICAgICAgICogaWYgdGhhdCBoYXMgY2hhbmdlZCBiZXR3ZWVuIHJlbmRlcnMuIEFkZGl0aW9uYWxseSwgY29tcG9uZW50cyBjYW4gYmUgZ3JvdXBlZCBieSBMYXlvdXRHcm91cFxuICAgICAgICAgICAgICogYW5kIGlmIG9uZSBub2RlIGlzIGRpcnRpZWQsIHRoZXkgYWxsIGFyZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5pc0xheW91dERpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZsYWcgdG8gdHJ1ZSBpZiB3ZSB0aGluayB0aGUgcHJvamVjdGlvbiBjYWxjdWxhdGlvbnMgZm9yIHRoaXMgbm9kZSBuZWVkc1xuICAgICAgICAgICAgICogcmVjYWxjdWxhdGluZyBhcyBhIHJlc3VsdCBvZiBhbiB1cGRhdGVkIHRyYW5zZm9ybSBvciBsYXlvdXQgYW5pbWF0aW9uLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmlzUHJvamVjdGlvbkRpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZsYWcgdG8gdHJ1ZSBpZiB0aGUgbGF5b3V0ICpvciogdHJhbnNmb3JtIGhhcyBjaGFuZ2VkLiBUaGlzIHRoZW4gZ2V0cyBwcm9wYWdhdGVkXG4gICAgICAgICAgICAgKiB0aHJvdWdob3V0IHRoZSBwcm9qZWN0aW9uIHRyZWUsIGZvcmNpbmcgYW55IGVsZW1lbnQgYmVsb3cgdG8gcmVjYWxjdWxhdGUgb24gdGhlIG5leHQgZnJhbWUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgPSBmYWxzZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRmxhZyB0cmFuc2Zvcm0gZGlydHkuIFRoaXMgZ2V0cyBwcm9wYWdhdGVkIHRocm91Z2hvdXQgdGhlIHdob2xlIHRyZWUgYnV0IGlzIG9ubHlcbiAgICAgICAgICAgICAqIHJlc3BlY3RlZCBieSBzaGFyZWQgbm9kZXMuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eSA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBCbG9jayBsYXlvdXQgdXBkYXRlcyBmb3IgaW5zdGFudCBsYXlvdXQgdHJhbnNpdGlvbnMgdGhyb3VnaG91dCB0aGUgdHJlZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy51cGRhdGVNYW51YWxseUJsb2NrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQmxvY2tlZEJ5UmVzaXplID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFNldCB0byB0cnVlIGJldHdlZW4gdGhlIHN0YXJ0IG9mIHRoZSBmaXJzdCBgd2lsbFVwZGF0ZWAgY2FsbCBhbmQgdGhlIGVuZCBvZiB0aGUgYGRpZFVwZGF0ZWBcbiAgICAgICAgICAgICAqIGNhbGwuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaXNVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGlzIGFuIFNWRyBlbGVtZW50IHdlIGN1cnJlbnRseSBkaXNhYmxlIHByb2plY3Rpb24gdHJhbnNmb3Jtc1xuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmlzU1ZHID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZsYWcgdG8gdHJ1ZSAoZHVyaW5nIHByb21vdGlvbikgaWYgYSBub2RlIGRvaW5nIGFuIGluc3RhbnQgbGF5b3V0IHRyYW5zaXRpb24gbmVlZHMgdG8gcmVzZXRcbiAgICAgICAgICAgICAqIGl0cyBwcm9qZWN0aW9uIHN0eWxlcy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdGhpcy5uZWVkc1Jlc2V0ID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEZsYWdzIHdoZXRoZXIgdGhpcyBub2RlIHNob3VsZCBoYXZlIGl0cyB0cmFuc2Zvcm0gcmVzZXQgcHJpb3IgdG8gbWVhc3VyaW5nLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFN0b3JlIHdoZXRoZXIgdGhpcyBub2RlIGhhcyBiZWVuIGNoZWNrZWQgZm9yIG9wdGltaXNlZCBhcHBlYXIgYW5pbWF0aW9ucy4gQXNcbiAgICAgICAgICAgICAqIGVmZmVjdHMgZmlyZSBib3R0b20tdXAsIGFuZCB3ZSB3YW50IHRvIGxvb2sgdXAgdGhlIHRyZWUgZm9yIGFwcGVhciBhbmltYXRpb25zLFxuICAgICAgICAgICAgICogdGhpcyBtYWtlcyBzdXJlIHdlIG9ubHkgY2hlY2sgZWFjaCBwYXRoIG9uY2UsIHN0b3BwaW5nIGF0IG5vZGVzIHRoYXRcbiAgICAgICAgICAgICAqIGhhdmUgYWxyZWFkeSBiZWVuIGNoZWNrZWQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuaGFzQ2hlY2tlZE9wdGltaXNlZEFwcGVhciA9IGZhbHNlO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBjYWxjdWxhdGVkIGNvbnRleHR1YWwvYWNjdW11bGF0ZWQvdHJlZSBzY2FsZS5cbiAgICAgICAgICAgICAqIFRoaXMgd2lsbCBiZSB1c2VkIHRvIHNjYWxlIGNhbGN1bGNhdGVkIHByb2plY3Rpb24gdHJhbnNmb3JtcywgYXMgdGhlc2UgYXJlXG4gICAgICAgICAgICAgKiBjYWxjdWxhdGVkIGluIHNjcmVlbi1zcGFjZSBidXQgbmVlZCB0byBiZSBzY2FsZWQgZm9yIGVsZW1lbnRzIHRvIGxheW91dGx5XG4gICAgICAgICAgICAgKiBtYWtlIGl0IHRvIHRoZWlyIGNhbGN1bGF0ZWQgZGVzdGluYXRpb25zLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIFRPRE86IExhenktaW5pdFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLnRyZWVTY2FsZSA9IHsgeDogMSwgeTogMSB9O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmV2ZW50SGFuZGxlcnMgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICB0aGlzLmhhc1RyZWVBbmltYXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRWZXJzaW9uID0gMDtcbiAgICAgICAgICAgIC8vIE5vdGU6IEN1cnJlbnRseSBvbmx5IHJ1bm5pbmcgb24gcm9vdCBub2RlXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVVwZGF0ZSA9ICgpID0+IHRoaXMudXBkYXRlKCk7XG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tVcGRhdGVGYWlsZWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNVcGRhdGluZykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckFsbFNuYXBzaG90cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRoaXMgaXMgYSBtdWx0aS1zdGVwIHByb2Nlc3MgYXMgc2hhcmVkIG5vZGVzIG1pZ2h0IGJlIG9mIGRpZmZlcmVudCBkZXB0aHMuIE5vZGVzXG4gICAgICAgICAgICAgKiBhcmUgc29ydGVkIGJ5IGRlcHRoIG9yZGVyLCBzbyB3ZSBuZWVkIHRvIHJlc29sdmUgdGhlIGVudGlyZSB0cmVlIGJlZm9yZSBtb3ZpbmcgdG9cbiAgICAgICAgICAgICAqIHRoZSBuZXh0IHN0ZXAuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJvamVjdGlvbiA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2plY3Rpb25VcGRhdGVTY2hlZHVsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBSZXNldCBkZWJ1ZyBjb3VudHMuIE1hbnVhbGx5IHJlc2V0dGluZyByYXRoZXIgdGhhbiBjcmVhdGluZyBhIG5ld1xuICAgICAgICAgICAgICAgICAqIG9iamVjdCBlYWNoIGZyYW1lLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLm5vZGVzID1cbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldHJpY3MuY2FsY3VsYXRlZFRhcmdldERlbHRhcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0cmljcy5jYWxjdWxhdGVkUHJvamVjdGlvbnMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2gocHJvcGFnYXRlRGlydHlOb2Rlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKHJlc29sdmVUYXJnZXREZWx0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGNhbGNQcm9qZWN0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goY2xlYW5EaXJ0eU5vZGVzKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdHNCdWZmZXIuYWRkUHJvamVjdGlvbk1ldHJpY3MpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdHNCdWZmZXIuYWRkUHJvamVjdGlvbk1ldHJpY3MobWV0cmljcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogRnJhbWUgY2FsY3VsYXRpb25zXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZWRSZWxhdGl2ZVRhcmdldEF0ID0gMC4wO1xuICAgICAgICAgICAgdGhpcy5saW5rZWRQYXJlbnRWZXJzaW9uID0gMDtcbiAgICAgICAgICAgIHRoaXMuaGFzUHJvamVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGlvblByb2dyZXNzID0gMDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogU2hhcmVkIGxheW91dFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICAvLyBUT0RPIE9ubHkgcnVubmluZyBvbiByb290IG5vZGVcbiAgICAgICAgICAgIHRoaXMuc2hhcmVkTm9kZXMgPSBuZXcgTWFwKCk7XG4gICAgICAgICAgICB0aGlzLmxhdGVzdFZhbHVlcyA9IGxhdGVzdFZhbHVlcztcbiAgICAgICAgICAgIHRoaXMucm9vdCA9IHBhcmVudCA/IHBhcmVudC5yb290IHx8IHBhcmVudCA6IHRoaXM7XG4gICAgICAgICAgICB0aGlzLnBhdGggPSBwYXJlbnQgPyBbLi4ucGFyZW50LnBhdGgsIHBhcmVudF0gOiBbXTtcbiAgICAgICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgICAgICAgICAgdGhpcy5kZXB0aCA9IHBhcmVudCA/IHBhcmVudC5kZXB0aCArIDEgOiAwO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhdGhbaV0uc2hvdWxkUmVzZXRUcmFuc2Zvcm0gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucm9vdCA9PT0gdGhpcylcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzID0gbmV3IEZsYXRUcmVlKCk7XG4gICAgICAgIH1cbiAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZXZlbnRIYW5kbGVycy5oYXMobmFtZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50SGFuZGxlcnMuc2V0KG5hbWUsIG5ldyBTdWJzY3JpcHRpb25NYW5hZ2VyKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRIYW5kbGVycy5nZXQobmFtZSkuYWRkKGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICAgIG5vdGlmeUxpc3RlbmVycyhuYW1lLCAuLi5hcmdzKSB7XG4gICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25NYW5hZ2VyID0gdGhpcy5ldmVudEhhbmRsZXJzLmdldChuYW1lKTtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbk1hbmFnZXIgJiYgc3Vic2NyaXB0aW9uTWFuYWdlci5ub3RpZnkoLi4uYXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgaGFzTGlzdGVuZXJzKG5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV2ZW50SGFuZGxlcnMuaGFzKG5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBMaWZlY3ljbGVzXG4gICAgICAgICAqL1xuICAgICAgICBtb3VudChpbnN0YW5jZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgdGhpcy5pc1NWRyA9IGlzU1ZHRWxlbWVudChpbnN0YW5jZSkgJiYgIWlzU1ZHU1ZHRWxlbWVudChpbnN0YW5jZSk7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gaW5zdGFuY2U7XG4gICAgICAgICAgICBjb25zdCB7IGxheW91dElkLCBsYXlvdXQsIHZpc3VhbEVsZW1lbnQgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgIGlmICh2aXN1YWxFbGVtZW50ICYmICF2aXN1YWxFbGVtZW50LmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50Lm1vdW50KGluc3RhbmNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucm9vdC5ub2Rlcy5hZGQodGhpcyk7XG4gICAgICAgICAgICB0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5jaGlsZHJlbi5hZGQodGhpcyk7XG4gICAgICAgICAgICBpZiAodGhpcy5yb290Lmhhc1RyZWVBbmltYXRlZCAmJiAobGF5b3V0IHx8IGxheW91dElkKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMYXlvdXREaXJ0eSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYXR0YWNoUmVzaXplTGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICBsZXQgY2FuY2VsRGVsYXk7XG4gICAgICAgICAgICAgICAgbGV0IGlubmVyV2lkdGggPSAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc2l6ZVVuYmxvY2tVcGRhdGUgPSAoKSA9PiAodGhpcy5yb290LnVwZGF0ZUJsb2NrZWRCeVJlc2l6ZSA9IGZhbHNlKTtcbiAgICAgICAgICAgICAgICAvLyBTZXQgaW5pdGlhbCBpbm5lcldpZHRoIGluIGEgZnJhbWUucmVhZCBjYWxsYmFjayB0byBiYXRjaCB0aGUgcmVhZFxuICAgICAgICAgICAgICAgIGZyYW1lLnJlYWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpbm5lcldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgYXR0YWNoUmVzaXplTGlzdGVuZXIoaW5zdGFuY2UsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SW5uZXJXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3SW5uZXJXaWR0aCA9PT0gaW5uZXJXaWR0aClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgaW5uZXJXaWR0aCA9IG5ld0lubmVyV2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdC51cGRhdGVCbG9ja2VkQnlSZXNpemUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBjYW5jZWxEZWxheSAmJiBjYW5jZWxEZWxheSgpO1xuICAgICAgICAgICAgICAgICAgICBjYW5jZWxEZWxheSA9IGRlbGF5KHJlc2l6ZVVuYmxvY2tVcGRhdGUsIDI1MCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChnbG9iYWxQcm9qZWN0aW9uU3RhdGUuaGFzQW5pbWF0ZWRTaW5jZVJlc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsUHJvamVjdGlvblN0YXRlLmhhc0FuaW1hdGVkU2luY2VSZXNpemUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChmaW5pc2hBbmltYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAobGF5b3V0SWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJvb3QucmVnaXN0ZXJTaGFyZWROb2RlKGxheW91dElkLCB0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIE9ubHkgcmVnaXN0ZXIgdGhlIGhhbmRsZXIgaWYgaXQgcmVxdWlyZXMgbGF5b3V0IGFuaW1hdGlvblxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5hbmltYXRlICE9PSBmYWxzZSAmJlxuICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAobGF5b3V0SWQgfHwgbGF5b3V0KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcImRpZFVwZGF0ZVwiLCAoeyBkZWx0YSwgaGFzTGF5b3V0Q2hhbmdlZCwgaGFzUmVsYXRpdmVMYXlvdXRDaGFuZ2VkLCBsYXlvdXQ6IG5ld0xheW91dCwgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1RyZWVBbmltYXRpb25CbG9ja2VkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBDaGVjayBoZXJlIGlmIGFuIGFuaW1hdGlvbiBleGlzdHNcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGF5b3V0VHJhbnNpdGlvbiA9IHRoaXMub3B0aW9ucy50cmFuc2l0aW9uIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50LmdldERlZmF1bHRUcmFuc2l0aW9uKCkgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRMYXlvdXRUcmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IG9uTGF5b3V0QW5pbWF0aW9uU3RhcnQsIG9uTGF5b3V0QW5pbWF0aW9uQ29tcGxldGUsIH0gPSB2aXN1YWxFbGVtZW50LmdldFByb3BzKCk7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBUaGUgdGFyZ2V0IGxheW91dCBvZiB0aGUgZWxlbWVudCBtaWdodCBzdGF5IHRoZSBzYW1lLFxuICAgICAgICAgICAgICAgICAgICAgKiBidXQgaXRzIHBvc2l0aW9uIHJlbGF0aXZlIHRvIGl0cyBwYXJlbnQgaGFzIGNoYW5nZWQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNUYXJnZXRDaGFuZ2VkID0gIXRoaXMudGFyZ2V0TGF5b3V0IHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAhYm94RXF1YWxzUm91bmRlZCh0aGlzLnRhcmdldExheW91dCwgbmV3TGF5b3V0KTtcbiAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICogTm90ZTogRGlzYWJsZWQgdG8gZml4IHJlbGF0aXZlIGFuaW1hdGlvbnMgYWx3YXlzIHRyaWdnZXJpbmcgbmV3XG4gICAgICAgICAgICAgICAgICAgICAqIGxheW91dCBhbmltYXRpb25zLiBJZiB0aGlzIGNhdXNlcyBmdXJ0aGVyIGlzc3Vlcywgd2UgY2FuIHRyeVxuICAgICAgICAgICAgICAgICAgICAgKiBhIGRpZmZlcmVudCBhcHByb2FjaCB0byBkZXRlY3RpbmcgcmVsYXRpdmUgdGFyZ2V0IGNoYW5nZXMuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICAvLyB8fCBoYXNSZWxhdGl2ZUxheW91dENoYW5nZWRcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHRoZSBsYXlvdXQgaGFzbid0IHNlZW1lZCB0byBoYXZlIGNoYW5nZWQsIGl0IG1pZ2h0IGJlIHRoYXQgdGhlXG4gICAgICAgICAgICAgICAgICAgICAqIGVsZW1lbnQgaXMgdmlzdWFsbHkgaW4gdGhlIHNhbWUgcGxhY2UgaW4gdGhlIGRvY3VtZW50IGJ1dCBpdHMgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICogcmVsYXRpdmUgdG8gaXRzIHBhcmVudCBoYXMgaW5kZWVkIGNoYW5nZWQuIFNvIGhlcmUgd2UgY2hlY2sgZm9yIHRoYXQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNPbmx5UmVsYXRpdmVUYXJnZXRDaGFuZ2VkID0gIWhhc0xheW91dENoYW5nZWQgJiYgaGFzUmVsYXRpdmVMYXlvdXRDaGFuZ2VkO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmxheW91dFJvb3QgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzdW1lRnJvbSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzT25seVJlbGF0aXZlVGFyZ2V0Q2hhbmdlZCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgKGhhc0xheW91dENoYW5nZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaGFzVGFyZ2V0Q2hhbmdlZCB8fCAhdGhpcy5jdXJyZW50QW5pbWF0aW9uKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc3VtZUZyb20pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbSA9IHRoaXMucmVzdW1lRnJvbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbS5yZXN1bWluZ0Zyb20gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhbmltYXRpb25PcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmdldFZhbHVlVHJhbnNpdGlvbihsYXlvdXRUcmFuc2l0aW9uLCBcImxheW91dFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblBsYXk6IG9uTGF5b3V0QW5pbWF0aW9uU3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Db21wbGV0ZTogb25MYXlvdXRBbmltYXRpb25Db21wbGV0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmlzdWFsRWxlbWVudC5zaG91bGRSZWR1Y2VNb3Rpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMubGF5b3V0Um9vdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbk9wdGlvbnMuZGVsYXkgPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbk9wdGlvbnMudHlwZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydEFuaW1hdGlvbihhbmltYXRpb25PcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgICAgICogU2V0IGFuaW1hdGlvbiBvcmlnaW4gYWZ0ZXIgc3RhcnRpbmcgYW5pbWF0aW9uIHRvIGF2b2lkIGxheW91dCBqdW1wXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiBjYXVzZWQgYnkgc3RvcHBpbmcgcHJldmlvdXMgbGF5b3V0IGFuaW1hdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEFuaW1hdGlvbk9yaWdpbihkZWx0YSwgaGFzT25seVJlbGF0aXZlVGFyZ2V0Q2hhbmdlZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICAgICAqIElmIHRoZSBsYXlvdXQgaGFzbid0IGNoYW5nZWQgYW5kIHdlIGhhdmUgYW4gYW5pbWF0aW9uIHRoYXQgaGFzbid0IHN0YXJ0ZWQgeWV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICogZmluaXNoIGl0IGltbWVkaWF0ZWx5LiBPdGhlcndpc2UgaXQgd2lsbCBiZSBhbmltYXRpbmcgZnJvbSBhIGxvY2F0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgKiB0aGF0IHdhcyBwcm9iYWJseSBuZXZlciBjb21taXR0ZWQgdG8gc2NyZWVuIGFuZCBsb29rIGxpa2UgYSBqdW1weSBib3guXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaGFzTGF5b3V0Q2hhbmdlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEFuaW1hdGlvbih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTGVhZCgpICYmIHRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0TGF5b3V0ID0gbmV3TGF5b3V0O1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVubW91bnQoKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubGF5b3V0SWQgJiYgdGhpcy53aWxsVXBkYXRlKCk7XG4gICAgICAgICAgICB0aGlzLnJvb3Qubm9kZXMucmVtb3ZlKHRoaXMpO1xuICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKCk7XG4gICAgICAgICAgICBzdGFjayAmJiBzdGFjay5yZW1vdmUodGhpcyk7XG4gICAgICAgICAgICB0aGlzLnBhcmVudCAmJiB0aGlzLnBhcmVudC5jaGlsZHJlbi5kZWxldGUodGhpcyk7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5ldmVudEhhbmRsZXJzLmNsZWFyKCk7XG4gICAgICAgICAgICBjYW5jZWxGcmFtZSh0aGlzLnVwZGF0ZVByb2plY3Rpb24pO1xuICAgICAgICB9XG4gICAgICAgIC8vIG9ubHkgb24gdGhlIHJvb3RcbiAgICAgICAgYmxvY2tVcGRhdGUoKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1hbnVhbGx5QmxvY2tlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdW5ibG9ja1VwZGF0ZSgpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaXNVcGRhdGVCbG9ja2VkKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlTWFudWFsbHlCbG9ja2VkIHx8IHRoaXMudXBkYXRlQmxvY2tlZEJ5UmVzaXplO1xuICAgICAgICB9XG4gICAgICAgIGlzVHJlZUFuaW1hdGlvbkJsb2NrZWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gKHRoaXMuaXNBbmltYXRpb25CbG9ja2VkIHx8XG4gICAgICAgICAgICAgICAgKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50LmlzVHJlZUFuaW1hdGlvbkJsb2NrZWQoKSkgfHxcbiAgICAgICAgICAgICAgICBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTm90ZTogY3VycmVudGx5IG9ubHkgcnVubmluZyBvbiByb290IG5vZGVcbiAgICAgICAgc3RhcnRVcGRhdGUoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1VwZGF0ZUJsb2NrZWQoKSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLmlzVXBkYXRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5ub2RlcyAmJiB0aGlzLm5vZGVzLmZvckVhY2gocmVzZXRTa2V3QW5kUm90YXRpb24pO1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25JZCsrO1xuICAgICAgICB9XG4gICAgICAgIGdldFRyYW5zZm9ybVRlbXBsYXRlKCkge1xuICAgICAgICAgICAgY29uc3QgeyB2aXN1YWxFbGVtZW50IH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICByZXR1cm4gdmlzdWFsRWxlbWVudCAmJiB2aXN1YWxFbGVtZW50LmdldFByb3BzKCkudHJhbnNmb3JtVGVtcGxhdGU7XG4gICAgICAgIH1cbiAgICAgICAgd2lsbFVwZGF0ZShzaG91bGROb3RpZnlMaXN0ZW5lcnMgPSB0cnVlKSB7XG4gICAgICAgICAgICB0aGlzLnJvb3QuaGFzVHJlZUFuaW1hdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnJvb3QuaXNVcGRhdGVCbG9ja2VkKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMub25FeGl0Q29tcGxldGUgJiYgdGhpcy5vcHRpb25zLm9uRXhpdENvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB3ZSdyZSBydW5uaW5nIG9wdGltaXNlZCBhcHBlYXIgYW5pbWF0aW9ucyB0aGVuIHRoZXNlIG11c3QgYmVcbiAgICAgICAgICAgICAqIGNhbmNlbGxlZCBiZWZvcmUgbWVhc3VyaW5nIHRoZSBET00uIFRoaXMgaXMgc28gd2UgY2FuIG1lYXN1cmVcbiAgICAgICAgICAgICAqIHRoZSB0cnVlIGxheW91dCBvZiB0aGUgZWxlbWVudCByYXRoZXIgdGhhbiB0aGUgV0FBUEkgYW5pbWF0aW9uXG4gICAgICAgICAgICAgKiB3aGljaCB3aWxsIGJlIHVuYWZmZWN0ZWQgYnkgdGhlIHJlc2V0U2tld0FuZFJvdGF0ZSBzdGVwLlxuICAgICAgICAgICAgICpcbiAgICAgICAgICAgICAqIE5vdGU6IFRoaXMgaXMgYSBET00gd3JpdGUuIFdvcnN0IGNhc2Ugc2NlbmFyaW8gaXMgdGhpcyBpcyBzYW5kd2ljaGVkXG4gICAgICAgICAgICAgKiBiZXR3ZWVuIG90aGVyIHNuYXBzaG90IHJlYWRzIHdoaWNoIHdpbGwgY2F1c2UgdW5uZWNlc3Nhcnkgc3R5bGUgcmVjYWxjdWxhdGlvbnMuXG4gICAgICAgICAgICAgKiBUaGlzIGhhcyB0byBoYXBwZW4gaGVyZSB0aG91Z2gsIGFzIHdlIGRvbid0IHlldCBrbm93IHdoaWNoIG5vZGVzIHdpbGwgbmVlZFxuICAgICAgICAgICAgICogc25hcHNob3RzIGluIHN0YXJ0VXBkYXRlKCksIGJ1dCB3ZSBvbmx5IHdhbnQgdG8gY2FuY2VsIG9wdGltaXNlZCBhbmltYXRpb25zXG4gICAgICAgICAgICAgKiBpZiBhIGxheW91dCBhbmltYXRpb24gbWVhc3VyZW1lbnQgaXMgYWN0dWFsbHkgZ29pbmcgdG8gYmUgYWZmZWN0ZWQgYnkgdGhlbS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHdpbmRvdy5Nb3Rpb25DYW5jZWxPcHRpbWlzZWRBbmltYXRpb24gJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5oYXNDaGVja2VkT3B0aW1pc2VkQXBwZWFyKSB7XG4gICAgICAgICAgICAgICAgY2FuY2VsVHJlZU9wdGltaXNlZFRyYW5zZm9ybUFuaW1hdGlvbnModGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAhdGhpcy5yb290LmlzVXBkYXRpbmcgJiYgdGhpcy5yb290LnN0YXJ0VXBkYXRlKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0xheW91dERpcnR5KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuaXNMYXlvdXREaXJ0eSA9IHRydWU7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLnBhdGhbaV07XG4gICAgICAgICAgICAgICAgbm9kZS5zaG91bGRSZXNldFRyYW5zZm9ybSA9IHRydWU7XG4gICAgICAgICAgICAgICAgbm9kZS51cGRhdGVTY3JvbGwoXCJzbmFwc2hvdFwiKTtcbiAgICAgICAgICAgICAgICBpZiAobm9kZS5vcHRpb25zLmxheW91dFJvb3QpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS53aWxsVXBkYXRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IGxheW91dElkLCBsYXlvdXQgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgIGlmIChsYXlvdXRJZCA9PT0gdW5kZWZpbmVkICYmICFsYXlvdXQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtVGVtcGxhdGUgPSB0aGlzLmdldFRyYW5zZm9ybVRlbXBsYXRlKCk7XG4gICAgICAgICAgICB0aGlzLnByZXZUcmFuc2Zvcm1UZW1wbGF0ZVZhbHVlID0gdHJhbnNmb3JtVGVtcGxhdGVcbiAgICAgICAgICAgICAgICA/IHRyYW5zZm9ybVRlbXBsYXRlKHRoaXMubGF0ZXN0VmFsdWVzLCBcIlwiKVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVTbmFwc2hvdCgpO1xuICAgICAgICAgICAgc2hvdWxkTm90aWZ5TGlzdGVuZXJzICYmIHRoaXMubm90aWZ5TGlzdGVuZXJzKFwid2lsbFVwZGF0ZVwiKTtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGUoKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgdXBkYXRlV2FzQmxvY2tlZCA9IHRoaXMuaXNVcGRhdGVCbG9ja2VkKCk7XG4gICAgICAgICAgICAvLyBXaGVuIGRvaW5nIGFuIGluc3RhbnQgdHJhbnNpdGlvbiwgd2Ugc2tpcCB0aGUgbGF5b3V0IHVwZGF0ZSxcbiAgICAgICAgICAgIC8vIGJ1dCBzaG91bGQgc3RpbGwgY2xlYW4gdXAgdGhlIG1lYXN1cmVtZW50cyBzbyB0aGF0IHRoZSBuZXh0XG4gICAgICAgICAgICAvLyBzbmFwc2hvdCBjb3VsZCBiZSB0YWtlbiBjb3JyZWN0bHkuXG4gICAgICAgICAgICBpZiAodXBkYXRlV2FzQmxvY2tlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMudW5ibG9ja1VwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJBbGxTbmFwc2hvdHMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goY2xlYXJNZWFzdXJlbWVudHMpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhIHJlcGVhdCBvZiBkaWRVcGRhdGUgdGhlbiBpZ25vcmUgdGhlIGFuaW1hdGlvbi5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uSWQgPD0gdGhpcy5hbmltYXRpb25Db21taXRJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChjbGVhcklzTGF5b3V0RGlydHkpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uQ29tbWl0SWQgPSB0aGlzLmFuaW1hdGlvbklkO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzVXBkYXRpbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGVzLmZvckVhY2goY2xlYXJJc0xheW91dERpcnR5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNVcGRhdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFdyaXRlXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKHJlc2V0VHJhbnNmb3JtU3R5bGUpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFJlYWQgPT09PT09PT09PT09PT09PT09XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLy8gVXBkYXRlIGxheW91dCBtZWFzdXJlbWVudHMgb2YgdXBkYXRlZCBjaGlsZHJlblxuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaCh1cGRhdGVMYXlvdXQpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIFdyaXRlXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLy8gTm90aWZ5IGxpc3RlbmVycyB0aGF0IHRoZSBsYXlvdXQgaXMgdXBkYXRlZFxuICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuZm9yRWFjaChub3RpZnlMYXlvdXRVcGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jbGVhckFsbFNuYXBzaG90cygpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBNYW51YWxseSBmbHVzaCBhbnkgcGVuZGluZyB1cGRhdGVzLiBJZGVhbGx5XG4gICAgICAgICAgICAgKiB3ZSBjb3VsZCBsZWF2ZSB0aGlzIHRvIHRoZSBmb2xsb3dpbmcgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGJ1dCB0aGlzIHNlZW1zXG4gICAgICAgICAgICAgKiB0byBsZWF2ZSBhIGZsYXNoIG9mIGluY29ycmVjdGx5IHN0eWxlZCBjb250ZW50LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBub3cgPSB0aW1lLm5vdygpO1xuICAgICAgICAgICAgZnJhbWVEYXRhLmRlbHRhID0gY2xhbXAoMCwgMTAwMCAvIDYwLCBub3cgLSBmcmFtZURhdGEudGltZXN0YW1wKTtcbiAgICAgICAgICAgIGZyYW1lRGF0YS50aW1lc3RhbXAgPSBub3c7XG4gICAgICAgICAgICBmcmFtZURhdGEuaXNQcm9jZXNzaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGZyYW1lU3RlcHMudXBkYXRlLnByb2Nlc3MoZnJhbWVEYXRhKTtcbiAgICAgICAgICAgIGZyYW1lU3RlcHMucHJlUmVuZGVyLnByb2Nlc3MoZnJhbWVEYXRhKTtcbiAgICAgICAgICAgIGZyYW1lU3RlcHMucmVuZGVyLnByb2Nlc3MoZnJhbWVEYXRhKTtcbiAgICAgICAgICAgIGZyYW1lRGF0YS5pc1Byb2Nlc3NpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBkaWRVcGRhdGUoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMudXBkYXRlU2NoZWR1bGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG1pY3JvdGFzay5yZWFkKHRoaXMuc2NoZWR1bGVVcGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNsZWFyQWxsU25hcHNob3RzKCkge1xuICAgICAgICAgICAgdGhpcy5ub2Rlcy5mb3JFYWNoKGNsZWFyU25hcHNob3QpO1xuICAgICAgICAgICAgdGhpcy5zaGFyZWROb2Rlcy5mb3JFYWNoKHJlbW92ZUxlYWRTbmFwc2hvdHMpO1xuICAgICAgICB9XG4gICAgICAgIHNjaGVkdWxlVXBkYXRlUHJvamVjdGlvbigpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9qZWN0aW9uVXBkYXRlU2NoZWR1bGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uVXBkYXRlU2NoZWR1bGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBmcmFtZS5wcmVSZW5kZXIodGhpcy51cGRhdGVQcm9qZWN0aW9uLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgc2NoZWR1bGVDaGVja0FmdGVyVW5tb3VudCgpIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhlIHVubW91bnRpbmcgbm9kZSBpcyBpbiBhIGxheW91dEdyb3VwIGFuZCBkaWQgdHJpZ2dlciBhIHdpbGxVcGRhdGUsXG4gICAgICAgICAgICAgKiB3ZSBtYW51YWxseSBjYWxsIGRpZFVwZGF0ZSB0byBnaXZlIGEgY2hhbmNlIHRvIHRoZSBzaWJsaW5ncyB0byBhbmltYXRlLlxuICAgICAgICAgICAgICogT3RoZXJ3aXNlLCBjbGVhbnVwIGFsbCBzbmFwc2hvdHMgdG8gcHJldmVudHMgZnV0dXJlIG5vZGVzIGZyb20gcmV1c2luZyB0aGVtLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBmcmFtZS5wb3N0UmVuZGVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0xheW91dERpcnR5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdC5kaWRVcGRhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm9vdC5jaGVja1VwZGF0ZUZhaWxlZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVcGRhdGUgbWVhc3VyZW1lbnRzXG4gICAgICAgICAqL1xuICAgICAgICB1cGRhdGVTbmFwc2hvdCgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNuYXBzaG90IHx8ICF0aGlzLmluc3RhbmNlKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMuc25hcHNob3QgPSB0aGlzLm1lYXN1cmUoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNuYXBzaG90ICYmXG4gICAgICAgICAgICAgICAgIWNhbGNMZW5ndGgodGhpcy5zbmFwc2hvdC5tZWFzdXJlZEJveC54KSAmJlxuICAgICAgICAgICAgICAgICFjYWxjTGVuZ3RoKHRoaXMuc25hcHNob3QubWVhc3VyZWRCb3gueSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNuYXBzaG90ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHVwZGF0ZUxheW91dCgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVNjcm9sbCgpO1xuICAgICAgICAgICAgaWYgKCEodGhpcy5vcHRpb25zLmFsd2F5c01lYXN1cmVMYXlvdXQgJiYgdGhpcy5pc0xlYWQoKSkgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5pc0xheW91dERpcnR5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBXaGVuIGEgbm9kZSBpcyBtb3VudGVkLCBpdCBzaW1wbHkgcmVzdW1lcyBmcm9tIHRoZSBwcmV2TGVhZCdzXG4gICAgICAgICAgICAgKiBzbmFwc2hvdCBpbnN0ZWFkIG9mIHRha2luZyBhIG5ldyBvbmUsIGJ1dCB0aGUgYW5jZXN0b3JzIHNjcm9sbFxuICAgICAgICAgICAgICogbWlnaHQgaGF2ZSB1cGRhdGVkIHdoaWxlIHRoZSBwcmV2TGVhZCBpcyB1bm1vdW50ZWQuIFdlIG5lZWQgdG9cbiAgICAgICAgICAgICAqIHVwZGF0ZSB0aGUgc2Nyb2xsIGFnYWluIHRvIG1ha2Ugc3VyZSB0aGUgbGF5b3V0IHdlIG1lYXN1cmUgaXNcbiAgICAgICAgICAgICAqIHVwIHRvIGRhdGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLnJlc3VtZUZyb20gJiYgIXRoaXMucmVzdW1lRnJvbS5pbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLnBhdGhbaV07XG4gICAgICAgICAgICAgICAgICAgIG5vZGUudXBkYXRlU2Nyb2xsKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcHJldkxheW91dCA9IHRoaXMubGF5b3V0O1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQgPSB0aGlzLm1lYXN1cmUoZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5sYXlvdXRWZXJzaW9uKys7XG4gICAgICAgICAgICB0aGlzLmxheW91dENvcnJlY3RlZCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgdGhpcy5pc0xheW91dERpcnR5ID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25EZWx0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5TGlzdGVuZXJzKFwibWVhc3VyZVwiLCB0aGlzLmxheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgY29uc3QgeyB2aXN1YWxFbGVtZW50IH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5ub3RpZnkoXCJMYXlvdXRNZWFzdXJlXCIsIHRoaXMubGF5b3V0LmxheW91dEJveCwgcHJldkxheW91dCA/IHByZXZMYXlvdXQubGF5b3V0Qm94IDogdW5kZWZpbmVkKTtcbiAgICAgICAgfVxuICAgICAgICB1cGRhdGVTY3JvbGwocGhhc2UgPSBcIm1lYXN1cmVcIikge1xuICAgICAgICAgICAgbGV0IG5lZWRzTWVhc3VyZW1lbnQgPSBCb29sZWFuKHRoaXMub3B0aW9ucy5sYXlvdXRTY3JvbGwgJiYgdGhpcy5pbnN0YW5jZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5zY3JvbGwgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbC5hbmltYXRpb25JZCA9PT0gdGhpcy5yb290LmFuaW1hdGlvbklkICYmXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGwucGhhc2UgPT09IHBoYXNlKSB7XG4gICAgICAgICAgICAgICAgbmVlZHNNZWFzdXJlbWVudCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG5lZWRzTWVhc3VyZW1lbnQgJiYgdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzUm9vdCA9IGNoZWNrSXNTY3JvbGxSb290KHRoaXMuaW5zdGFuY2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsID0ge1xuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb25JZDogdGhpcy5yb290LmFuaW1hdGlvbklkLFxuICAgICAgICAgICAgICAgICAgICBwaGFzZSxcbiAgICAgICAgICAgICAgICAgICAgaXNSb290LFxuICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IG1lYXN1cmVTY3JvbGwodGhpcy5pbnN0YW5jZSksXG4gICAgICAgICAgICAgICAgICAgIHdhc1Jvb3Q6IHRoaXMuc2Nyb2xsID8gdGhpcy5zY3JvbGwuaXNSb290IDogaXNSb290LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzZXRUcmFuc2Zvcm0oKSB7XG4gICAgICAgICAgICBpZiAoIXJlc2V0VHJhbnNmb3JtKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGlzUmVzZXRSZXF1ZXN0ZWQgPSB0aGlzLmlzTGF5b3V0RGlydHkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmFsd2F5c01lYXN1cmVMYXlvdXQ7XG4gICAgICAgICAgICBjb25zdCBoYXNQcm9qZWN0aW9uID0gdGhpcy5wcm9qZWN0aW9uRGVsdGEgJiYgIWlzRGVsdGFaZXJvKHRoaXMucHJvamVjdGlvbkRlbHRhKTtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVRlbXBsYXRlID0gdGhpcy5nZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpO1xuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtVGVtcGxhdGVWYWx1ZSA9IHRyYW5zZm9ybVRlbXBsYXRlXG4gICAgICAgICAgICAgICAgPyB0cmFuc2Zvcm1UZW1wbGF0ZSh0aGlzLmxhdGVzdFZhbHVlcywgXCJcIilcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVRlbXBsYXRlSGFzQ2hhbmdlZCA9IHRyYW5zZm9ybVRlbXBsYXRlVmFsdWUgIT09IHRoaXMucHJldlRyYW5zZm9ybVRlbXBsYXRlVmFsdWU7XG4gICAgICAgICAgICBpZiAoaXNSZXNldFJlcXVlc3RlZCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgJiZcbiAgICAgICAgICAgICAgICAoaGFzUHJvamVjdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICBoYXNUcmFuc2Zvcm0odGhpcy5sYXRlc3RWYWx1ZXMpIHx8XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybVRlbXBsYXRlSGFzQ2hhbmdlZCkpIHtcbiAgICAgICAgICAgICAgICByZXNldFRyYW5zZm9ybSh0aGlzLmluc3RhbmNlLCB0cmFuc2Zvcm1UZW1wbGF0ZVZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3VsZFJlc2V0VHJhbnNmb3JtID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG1lYXN1cmUocmVtb3ZlVHJhbnNmb3JtID0gdHJ1ZSkge1xuICAgICAgICAgICAgY29uc3QgcGFnZUJveCA9IHRoaXMubWVhc3VyZVBhZ2VCb3goKTtcbiAgICAgICAgICAgIGxldCBsYXlvdXRCb3ggPSB0aGlzLnJlbW92ZUVsZW1lbnRTY3JvbGwocGFnZUJveCk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE1lYXN1cmVtZW50cyB0YWtlbiBkdXJpbmcgdGhlIHByZS1yZW5kZXIgc3RhZ2VcbiAgICAgICAgICAgICAqIHN0aWxsIGhhdmUgdHJhbnNmb3JtcyBhcHBsaWVkIHNvIHdlIHJlbW92ZSB0aGVtXG4gICAgICAgICAgICAgKiB2aWEgY2FsY3VsYXRpb24uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChyZW1vdmVUcmFuc2Zvcm0pIHtcbiAgICAgICAgICAgICAgICBsYXlvdXRCb3ggPSB0aGlzLnJlbW92ZVRyYW5zZm9ybShsYXlvdXRCb3gpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm91bmRCb3gobGF5b3V0Qm94KTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uSWQ6IHRoaXMucm9vdC5hbmltYXRpb25JZCxcbiAgICAgICAgICAgICAgICBtZWFzdXJlZEJveDogcGFnZUJveCxcbiAgICAgICAgICAgICAgICBsYXlvdXRCb3gsXG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzOiB7fSxcbiAgICAgICAgICAgICAgICBzb3VyY2U6IHRoaXMuaWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIG1lYXN1cmVQYWdlQm94KCkge1xuICAgICAgICAgICAgY29uc3QgeyB2aXN1YWxFbGVtZW50IH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAoIXZpc3VhbEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgY29uc3QgYm94ID0gdmlzdWFsRWxlbWVudC5tZWFzdXJlVmlld3BvcnRCb3goKTtcbiAgICAgICAgICAgIGNvbnN0IHdhc0luU2Nyb2xsUm9vdCA9IHRoaXMuc2Nyb2xsPy53YXNSb290IHx8IHRoaXMucGF0aC5zb21lKGNoZWNrTm9kZVdhc1Njcm9sbFJvb3QpO1xuICAgICAgICAgICAgaWYgKCF3YXNJblNjcm9sbFJvb3QpIHtcbiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdmlld3BvcnQgc2Nyb2xsIHRvIGdpdmUgcGFnZS1yZWxhdGl2ZSBjb29yZGluYXRlc1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgc2Nyb2xsIH0gPSB0aGlzLnJvb3Q7XG4gICAgICAgICAgICAgICAgaWYgKHNjcm9sbCkge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBeGlzKGJveC54LCBzY3JvbGwub2Zmc2V0LngpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBeGlzKGJveC55LCBzY3JvbGwub2Zmc2V0LnkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBib3g7XG4gICAgICAgIH1cbiAgICAgICAgcmVtb3ZlRWxlbWVudFNjcm9sbChib3gpIHtcbiAgICAgICAgICAgIGNvbnN0IGJveFdpdGhvdXRTY3JvbGwgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIGNvcHlCb3hJbnRvKGJveFdpdGhvdXRTY3JvbGwsIGJveCk7XG4gICAgICAgICAgICBpZiAodGhpcy5zY3JvbGw/Lndhc1Jvb3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYm94V2l0aG91dFNjcm9sbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogUGVyZm9ybWFuY2UgVE9ETzogS2VlcCBhIGN1bXVsYXRpdmUgc2Nyb2xsIG9mZnNldCBkb3duIHRoZSB0cmVlXG4gICAgICAgICAgICAgKiByYXRoZXIgdGhhbiBsb29wIGJhY2sgdXAgdGhlIHBhdGguXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYXRoLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMucGF0aFtpXTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNjcm9sbCwgb3B0aW9ucyB9ID0gbm9kZTtcbiAgICAgICAgICAgICAgICBpZiAobm9kZSAhPT0gdGhpcy5yb290ICYmIHNjcm9sbCAmJiBvcHRpb25zLmxheW91dFNjcm9sbCkge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhIG5ldyBzY3JvbGwgcm9vdCwgd2Ugd2FudCB0byByZW1vdmUgYWxsIHByZXZpb3VzIHNjcm9sbHNcbiAgICAgICAgICAgICAgICAgICAgICogZnJvbSB0aGUgdmlld3BvcnQgYm94LlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNjcm9sbC53YXNSb290KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb3B5Qm94SW50byhib3hXaXRob3V0U2Nyb2xsLCBib3gpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZUF4aXMoYm94V2l0aG91dFNjcm9sbC54LCBzY3JvbGwub2Zmc2V0LngpO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBeGlzKGJveFdpdGhvdXRTY3JvbGwueSwgc2Nyb2xsLm9mZnNldC55KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYm94V2l0aG91dFNjcm9sbDtcbiAgICAgICAgfVxuICAgICAgICBhcHBseVRyYW5zZm9ybShib3gsIHRyYW5zZm9ybU9ubHkgPSBmYWxzZSkge1xuICAgICAgICAgICAgY29uc3Qgd2l0aFRyYW5zZm9ybXMgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIGNvcHlCb3hJbnRvKHdpdGhUcmFuc2Zvcm1zLCBib3gpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcy5wYXRoW2ldO1xuICAgICAgICAgICAgICAgIGlmICghdHJhbnNmb3JtT25seSAmJlxuICAgICAgICAgICAgICAgICAgICBub2RlLm9wdGlvbnMubGF5b3V0U2Nyb2xsICYmXG4gICAgICAgICAgICAgICAgICAgIG5vZGUuc2Nyb2xsICYmXG4gICAgICAgICAgICAgICAgICAgIG5vZGUgIT09IG5vZGUucm9vdCkge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1Cb3god2l0aFRyYW5zZm9ybXMsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHg6IC1ub2RlLnNjcm9sbC5vZmZzZXQueCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHk6IC1ub2RlLnNjcm9sbC5vZmZzZXQueSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghaGFzVHJhbnNmb3JtKG5vZGUubGF0ZXN0VmFsdWVzKSlcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtQm94KHdpdGhUcmFuc2Zvcm1zLCBub2RlLmxhdGVzdFZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaGFzVHJhbnNmb3JtKHRoaXMubGF0ZXN0VmFsdWVzKSkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybUJveCh3aXRoVHJhbnNmb3JtcywgdGhpcy5sYXRlc3RWYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHdpdGhUcmFuc2Zvcm1zO1xuICAgICAgICB9XG4gICAgICAgIHJlbW92ZVRyYW5zZm9ybShib3gpIHtcbiAgICAgICAgICAgIGNvbnN0IGJveFdpdGhvdXRUcmFuc2Zvcm0gPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIGNvcHlCb3hJbnRvKGJveFdpdGhvdXRUcmFuc2Zvcm0sIGJveCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLnBhdGhbaV07XG4gICAgICAgICAgICAgICAgaWYgKCFub2RlLmluc3RhbmNlKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBpZiAoIWhhc1RyYW5zZm9ybShub2RlLmxhdGVzdFZhbHVlcykpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGhhc1NjYWxlKG5vZGUubGF0ZXN0VmFsdWVzKSAmJiBub2RlLnVwZGF0ZVNuYXBzaG90KCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc291cmNlQm94ID0gY3JlYXRlQm94KCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZUJveCA9IG5vZGUubWVhc3VyZVBhZ2VCb3goKTtcbiAgICAgICAgICAgICAgICBjb3B5Qm94SW50byhzb3VyY2VCb3gsIG5vZGVCb3gpO1xuICAgICAgICAgICAgICAgIHJlbW92ZUJveFRyYW5zZm9ybXMoYm94V2l0aG91dFRyYW5zZm9ybSwgbm9kZS5sYXRlc3RWYWx1ZXMsIG5vZGUuc25hcHNob3QgPyBub2RlLnNuYXBzaG90LmxheW91dEJveCA6IHVuZGVmaW5lZCwgc291cmNlQm94KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNUcmFuc2Zvcm0odGhpcy5sYXRlc3RWYWx1ZXMpKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlQm94VHJhbnNmb3Jtcyhib3hXaXRob3V0VHJhbnNmb3JtLCB0aGlzLmxhdGVzdFZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYm94V2l0aG91dFRyYW5zZm9ybTtcbiAgICAgICAgfVxuICAgICAgICBzZXRUYXJnZXREZWx0YShkZWx0YSkge1xuICAgICAgICAgICAgdGhpcy50YXJnZXREZWx0YSA9IGRlbHRhO1xuICAgICAgICAgICAgdGhpcy5yb290LnNjaGVkdWxlVXBkYXRlUHJvamVjdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5pc1Byb2plY3Rpb25EaXJ0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgc2V0T3B0aW9ucyhvcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgY3Jvc3NmYWRlOiBvcHRpb25zLmNyb3NzZmFkZSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5jcm9zc2ZhZGUgOiB0cnVlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjbGVhck1lYXN1cmVtZW50cygpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5sYXlvdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnNuYXBzaG90ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5wcmV2VHJhbnNmb3JtVGVtcGxhdGVWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMudGFyZ2V0RGVsdGEgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuaXNMYXlvdXREaXJ0eSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZvcmNlUmVsYXRpdmVQYXJlbnRUb1Jlc29sdmVUYXJnZXQoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMucmVsYXRpdmVQYXJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGUgcGFyZW50IHRhcmdldCBpc24ndCB1cC10by1kYXRlLCBmb3JjZSBpdCB0byB1cGRhdGUuXG4gICAgICAgICAgICAgKiBUaGlzIGlzIGFuIHVuZm9ydHVuYXRlIGRlLW9wdGltaXNhdGlvbiBhcyBpdCBtZWFucyBhbnkgdXBkYXRpbmcgcmVsYXRpdmVcbiAgICAgICAgICAgICAqIHByb2plY3Rpb24gd2lsbCBjYXVzZSBhbGwgdGhlIHJlbGF0aXZlIHBhcmVudHMgdG8gcmVjYWxjdWxhdGUgYmFja1xuICAgICAgICAgICAgICogdXAgdGhlIHRyZWUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLnJlbGF0aXZlUGFyZW50LnJlc29sdmVkUmVsYXRpdmVUYXJnZXRBdCAhPT1cbiAgICAgICAgICAgICAgICBmcmFtZURhdGEudGltZXN0YW1wKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudC5yZXNvbHZlVGFyZ2V0RGVsdGEodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZVRhcmdldERlbHRhKGZvcmNlUmVjYWxjdWxhdGlvbiA9IGZhbHNlKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE9uY2UgdGhlIGRpcnR5IHN0YXR1cyBvZiBub2RlcyBoYXMgYmVlbiBzcHJlYWQgdGhyb3VnaCB0aGUgdHJlZSwgd2UgYWxzb1xuICAgICAgICAgICAgICogbmVlZCB0byBjaGVjayBpZiB3ZSBoYXZlIGEgc2hhcmVkIG5vZGUgb2YgYSBkaWZmZXJlbnQgZGVwdGggdGhhdCBoYXMgaXRzZWxmXG4gICAgICAgICAgICAgKiBiZWVuIGRpcnRpZWQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IGxlYWQgPSB0aGlzLmdldExlYWQoKTtcbiAgICAgICAgICAgIHRoaXMuaXNQcm9qZWN0aW9uRGlydHkgfHwgKHRoaXMuaXNQcm9qZWN0aW9uRGlydHkgPSBsZWFkLmlzUHJvamVjdGlvbkRpcnR5KTtcbiAgICAgICAgICAgIHRoaXMuaXNUcmFuc2Zvcm1EaXJ0eSB8fCAodGhpcy5pc1RyYW5zZm9ybURpcnR5ID0gbGVhZC5pc1RyYW5zZm9ybURpcnR5KTtcbiAgICAgICAgICAgIHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgfHwgKHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgPSBsZWFkLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5KTtcbiAgICAgICAgICAgIGNvbnN0IGlzU2hhcmVkID0gQm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSkgfHwgdGhpcyAhPT0gbGVhZDtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogV2UgZG9uJ3QgdXNlIHRyYW5zZm9ybSBmb3IgdGhpcyBzdGVwIG9mIHByb2Nlc3Npbmcgc28gd2UgZG9uJ3RcbiAgICAgICAgICAgICAqIG5lZWQgdG8gY2hlY2sgd2hldGhlciBhbnkgbm9kZXMgaGF2ZSBjaGFuZ2VkIHRyYW5zZm9ybS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgY2FuU2tpcCA9ICEoZm9yY2VSZWNhbGN1bGF0aW9uIHx8XG4gICAgICAgICAgICAgICAgKGlzU2hhcmVkICYmIHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5pc1Byb2plY3Rpb25EaXJ0eSB8fFxuICAgICAgICAgICAgICAgIHRoaXMucGFyZW50Py5pc1Byb2plY3Rpb25EaXJ0eSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuYXR0ZW1wdFRvUmVzb2x2ZVJlbGF0aXZlVGFyZ2V0IHx8XG4gICAgICAgICAgICAgICAgdGhpcy5yb290LnVwZGF0ZUJsb2NrZWRCeVJlc2l6ZSk7XG4gICAgICAgICAgICBpZiAoY2FuU2tpcClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCB7IGxheW91dCwgbGF5b3V0SWQgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBubyBsYXlvdXQsIHdlIGNhbid0IHBlcmZvcm0gcHJvamVjdGlvbiwgc28gZWFybHkgcmV0dXJuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICghdGhpcy5sYXlvdXQgfHwgIShsYXlvdXQgfHwgbGF5b3V0SWQpKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMucmVzb2x2ZWRSZWxhdGl2ZVRhcmdldEF0ID0gZnJhbWVEYXRhLnRpbWVzdGFtcDtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0aXZlUGFyZW50ID0gdGhpcy5nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpO1xuICAgICAgICAgICAgaWYgKHJlbGF0aXZlUGFyZW50ICYmXG4gICAgICAgICAgICAgICAgdGhpcy5saW5rZWRQYXJlbnRWZXJzaW9uICE9PSByZWxhdGl2ZVBhcmVudC5sYXlvdXRWZXJzaW9uICYmXG4gICAgICAgICAgICAgICAgIXJlbGF0aXZlUGFyZW50Lm9wdGlvbnMubGF5b3V0Um9vdCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlUmVsYXRpdmVUYXJnZXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgZG9uJ3QgaGF2ZSBhIHRhcmdldERlbHRhIGJ1dCBkbyBoYXZlIGEgbGF5b3V0LCB3ZSBjYW4gYXR0ZW1wdCB0byByZXNvbHZlXG4gICAgICAgICAgICAgKiBhIHJlbGF0aXZlUGFyZW50LiBUaGlzIHdpbGwgYWxsb3cgYSBjb21wb25lbnQgdG8gcGVyZm9ybSBzY2FsZSBjb3JyZWN0aW9uXG4gICAgICAgICAgICAgKiBldmVuIGlmIG5vIGFuaW1hdGlvbiBoYXMgc3RhcnRlZC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKCF0aGlzLnRhcmdldERlbHRhICYmICF0aGlzLnJlbGF0aXZlVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlbGF0aXZlUGFyZW50ICYmIHJlbGF0aXZlUGFyZW50LmxheW91dCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVJlbGF0aXZlVGFyZ2V0KHJlbGF0aXZlUGFyZW50LCB0aGlzLmxheW91dC5sYXlvdXRCb3gsIHJlbGF0aXZlUGFyZW50LmxheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVSZWxhdGl2ZVRhcmdldCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBubyByZWxhdGl2ZSB0YXJnZXQgb3Igbm8gdGFyZ2V0IGRlbHRhIG91ciB0YXJnZXQgaXNuJ3QgdmFsaWRcbiAgICAgICAgICAgICAqIGZvciB0aGlzIGZyYW1lLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVsYXRpdmVUYXJnZXQgJiYgIXRoaXMudGFyZ2V0RGVsdGEpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBMYXp5LWluaXQgdGFyZ2V0IGRhdGEgc3RydWN0dXJlXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICghdGhpcy50YXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhcmdldCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0V2l0aFRyYW5zZm9ybXMgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UndmUgZ290IGEgcmVsYXRpdmUgYm94IGZvciB0aGlzIGNvbXBvbmVudCwgcmVzb2x2ZSBpdCBpbnRvIGEgdGFyZ2V0IHJlbGF0aXZlIHRvIHRoZSBwYXJlbnQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLnJlbGF0aXZlVGFyZ2V0ICYmXG4gICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiAmJlxuICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpdmVQYXJlbnQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50LnRhcmdldCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9yY2VSZWxhdGl2ZVBhcmVudFRvUmVzb2x2ZVRhcmdldCgpO1xuICAgICAgICAgICAgICAgIGNhbGNSZWxhdGl2ZUJveCh0aGlzLnRhcmdldCwgdGhpcy5yZWxhdGl2ZVRhcmdldCwgdGhpcy5yZWxhdGl2ZVBhcmVudC50YXJnZXQpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHdlJ3ZlIG9ubHkgZ290IGEgdGFyZ2V0RGVsdGEsIHJlc29sdmUgaXQgaW50byBhIHRhcmdldFxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy50YXJnZXREZWx0YSkge1xuICAgICAgICAgICAgICAgIGlmIChCb29sZWFuKHRoaXMucmVzdW1pbmdGcm9tKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBUaGlzIGlzIGNyZWF0aW5nIGEgbmV3IG9iamVjdCBldmVyeSBmcmFtZVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldCA9IHRoaXMuYXBwbHlUcmFuc2Zvcm0odGhpcy5sYXlvdXQubGF5b3V0Qm94KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvcHlCb3hJbnRvKHRoaXMudGFyZ2V0LCB0aGlzLmxheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBhcHBseUJveERlbHRhKHRoaXMudGFyZ2V0LCB0aGlzLnRhcmdldERlbHRhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIG5vIHRhcmdldCwgdXNlIG93biBsYXlvdXQgYXMgdGFyZ2V0XG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgY29weUJveEludG8odGhpcy50YXJnZXQsIHRoaXMubGF5b3V0LmxheW91dEJveCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlJ3ZlIGJlZW4gdG9sZCB0byBhdHRlbXB0IHRvIHJlc29sdmUgYSByZWxhdGl2ZSB0YXJnZXQsIGRvIHNvLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy5hdHRlbXB0VG9SZXNvbHZlUmVsYXRpdmVUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmF0dGVtcHRUb1Jlc29sdmVSZWxhdGl2ZVRhcmdldCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGlmIChyZWxhdGl2ZVBhcmVudCAmJlxuICAgICAgICAgICAgICAgICAgICBCb29sZWFuKHJlbGF0aXZlUGFyZW50LnJlc3VtaW5nRnJvbSkgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICBCb29sZWFuKHRoaXMucmVzdW1pbmdGcm9tKSAmJlxuICAgICAgICAgICAgICAgICAgICAhcmVsYXRpdmVQYXJlbnQub3B0aW9ucy5sYXlvdXRTY3JvbGwgJiZcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVQYXJlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uUHJvZ3Jlc3MgIT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVSZWxhdGl2ZVRhcmdldChyZWxhdGl2ZVBhcmVudCwgdGhpcy50YXJnZXQsIHJlbGF0aXZlUGFyZW50LnRhcmdldCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50ID0gdGhpcy5yZWxhdGl2ZVRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEluY3JlYXNlIGRlYnVnIGNvdW50ZXIgZm9yIHJlc29sdmVkIHRhcmdldCBkZWx0YXNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHN0YXRzQnVmZmVyLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbWV0cmljcy5jYWxjdWxhdGVkVGFyZ2V0RGVsdGFzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZ2V0Q2xvc2VzdFByb2plY3RpbmdQYXJlbnQoKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMucGFyZW50IHx8XG4gICAgICAgICAgICAgICAgaGFzU2NhbGUodGhpcy5wYXJlbnQubGF0ZXN0VmFsdWVzKSB8fFxuICAgICAgICAgICAgICAgIGhhczJEVHJhbnNsYXRlKHRoaXMucGFyZW50LmxhdGVzdFZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50LmlzUHJvamVjdGluZygpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50LmdldENsb3Nlc3RQcm9qZWN0aW5nUGFyZW50KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaXNQcm9qZWN0aW5nKCkge1xuICAgICAgICAgICAgcmV0dXJuIEJvb2xlYW4oKHRoaXMucmVsYXRpdmVUYXJnZXQgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnRhcmdldERlbHRhIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLmxheW91dFJvb3QpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQpO1xuICAgICAgICB9XG4gICAgICAgIGNyZWF0ZVJlbGF0aXZlVGFyZ2V0KHJlbGF0aXZlUGFyZW50LCBsYXlvdXQsIHBhcmVudExheW91dCkge1xuICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudCA9IHJlbGF0aXZlUGFyZW50O1xuICAgICAgICAgICAgdGhpcy5saW5rZWRQYXJlbnRWZXJzaW9uID0gcmVsYXRpdmVQYXJlbnQubGF5b3V0VmVyc2lvbjtcbiAgICAgICAgICAgIHRoaXMuZm9yY2VSZWxhdGl2ZVBhcmVudFRvUmVzb2x2ZVRhcmdldCgpO1xuICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgY2FsY1JlbGF0aXZlUG9zaXRpb24odGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiwgbGF5b3V0LCBwYXJlbnRMYXlvdXQpO1xuICAgICAgICAgICAgY29weUJveEludG8odGhpcy5yZWxhdGl2ZVRhcmdldCwgdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbik7XG4gICAgICAgIH1cbiAgICAgICAgcmVtb3ZlUmVsYXRpdmVUYXJnZXQoKSB7XG4gICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50ID0gdGhpcy5yZWxhdGl2ZVRhcmdldCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjYWxjUHJvamVjdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnN0IGxlYWQgPSB0aGlzLmdldExlYWQoKTtcbiAgICAgICAgICAgIGNvbnN0IGlzU2hhcmVkID0gQm9vbGVhbih0aGlzLnJlc3VtaW5nRnJvbSkgfHwgdGhpcyAhPT0gbGVhZDtcbiAgICAgICAgICAgIGxldCBjYW5Ta2lwID0gdHJ1ZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhIG5vcm1hbCBsYXlvdXQgYW5pbWF0aW9uIGFuZCBuZWl0aGVyIHRoaXMgbm9kZSBub3IgaXRzIG5lYXJlc3QgcHJvamVjdGluZ1xuICAgICAgICAgICAgICogaXMgZGlydHkgdGhlbiB3ZSBjYW4ndCBza2lwLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodGhpcy5pc1Byb2plY3Rpb25EaXJ0eSB8fCB0aGlzLnBhcmVudD8uaXNQcm9qZWN0aW9uRGlydHkpIHtcbiAgICAgICAgICAgICAgICBjYW5Ta2lwID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYSBzaGFyZWQgbGF5b3V0IGFuaW1hdGlvbiBhbmQgdGhpcyBub2RlJ3Mgc2hhcmVkIHByb2plY3Rpb24gaXMgZGlydHkgdGhlblxuICAgICAgICAgICAgICogd2UgY2FuJ3Qgc2tpcC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKGlzU2hhcmVkICYmXG4gICAgICAgICAgICAgICAgKHRoaXMuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgfHwgdGhpcy5pc1RyYW5zZm9ybURpcnR5KSkge1xuICAgICAgICAgICAgICAgIGNhblNraXAgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSByZXNvbHZlZCB0aGUgdGFyZ2V0IHRoaXMgZnJhbWUgd2UgbXVzdCByZWNhbGN1bGF0ZSB0aGVcbiAgICAgICAgICAgICAqIHByb2plY3Rpb24gdG8gZW5zdXJlIGl0IHZpc3VhbGx5IHJlcHJlc2VudHMgdGhlIGludGVybmFsIGNhbGN1bGF0aW9ucy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMucmVzb2x2ZWRSZWxhdGl2ZVRhcmdldEF0ID09PSBmcmFtZURhdGEudGltZXN0YW1wKSB7XG4gICAgICAgICAgICAgICAgY2FuU2tpcCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhblNraXApXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgeyBsYXlvdXQsIGxheW91dElkIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoaXMgc2VjdGlvbiBvZiB0aGUgdHJlZSBpc24ndCBhbmltYXRpbmcgd2UgY2FuXG4gICAgICAgICAgICAgKiBkZWxldGUgb3VyIHRhcmdldCBzb3VyY2VzIGZvciB0aGUgZm9sbG93aW5nIGZyYW1lLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLmlzVHJlZUFuaW1hdGluZyA9IEJvb2xlYW4oKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50LmlzVHJlZUFuaW1hdGluZykgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltYXRpb24gfHxcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBbmltYXRpb24pO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzVHJlZUFuaW1hdGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0RGVsdGEgPSB0aGlzLnJlbGF0aXZlVGFyZ2V0ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLmxheW91dCB8fCAhKGxheW91dCB8fCBsYXlvdXRJZCkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBSZXNldCB0aGUgY29ycmVjdGVkIGJveCB3aXRoIHRoZSBsYXRlc3QgdmFsdWVzIGZyb20gYm94LCBhcyB3ZSdyZSB0aGVuIGdvaW5nXG4gICAgICAgICAgICAgKiB0byBwZXJmb3JtIG11dGF0aXZlIG9wZXJhdGlvbnMgb24gaXQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvcHlCb3hJbnRvKHRoaXMubGF5b3V0Q29ycmVjdGVkLCB0aGlzLmxheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBSZWNvcmQgcHJldmlvdXMgdHJlZSBzY2FsZXMgYmVmb3JlIHVwZGF0aW5nLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBwcmV2VHJlZVNjYWxlWCA9IHRoaXMudHJlZVNjYWxlLng7XG4gICAgICAgICAgICBjb25zdCBwcmV2VHJlZVNjYWxlWSA9IHRoaXMudHJlZVNjYWxlLnk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEFwcGx5IGFsbCB0aGUgcGFyZW50IGRlbHRhcyB0byB0aGlzIGJveCB0byBwcm9kdWNlIHRoZSBjb3JyZWN0ZWQgYm94LiBUaGlzXG4gICAgICAgICAgICAgKiBpcyB0aGUgbGF5b3V0IGJveCwgYXMgaXQgd2lsbCBhcHBlYXIgb24gc2NyZWVuIGFzIGEgcmVzdWx0IG9mIHRoZSB0cmFuc2Zvcm1zIG9mIGl0cyBwYXJlbnRzLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBhcHBseVRyZWVEZWx0YXModGhpcy5sYXlvdXRDb3JyZWN0ZWQsIHRoaXMudHJlZVNjYWxlLCB0aGlzLnBhdGgsIGlzU2hhcmVkKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBsYXllciBuZWVkcyB0byBwZXJmb3JtIHNjYWxlIGNvcnJlY3Rpb24gYnV0IGRvZXNuJ3QgaGF2ZSBhIHRhcmdldCxcbiAgICAgICAgICAgICAqIHVzZSB0aGUgbGF5b3V0IGFzIHRoZSB0YXJnZXQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChsZWFkLmxheW91dCAmJlxuICAgICAgICAgICAgICAgICFsZWFkLnRhcmdldCAmJlxuICAgICAgICAgICAgICAgICh0aGlzLnRyZWVTY2FsZS54ICE9PSAxIHx8IHRoaXMudHJlZVNjYWxlLnkgIT09IDEpKSB7XG4gICAgICAgICAgICAgICAgbGVhZC50YXJnZXQgPSBsZWFkLmxheW91dC5sYXlvdXRCb3g7XG4gICAgICAgICAgICAgICAgbGVhZC50YXJnZXRXaXRoVHJhbnNmb3JtcyA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyB0YXJnZXQgfSA9IGxlYWQ7XG4gICAgICAgICAgICBpZiAoIXRhcmdldCkge1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHdlIGRvbid0IGhhdmUgYSB0YXJnZXQgdG8gcHJvamVjdCBpbnRvLCBidXQgd2Ugd2VyZSBwcmV2aW91c2x5XG4gICAgICAgICAgICAgICAgICogcHJvamVjdGluZywgd2Ugd2FudCB0byByZW1vdmUgdGhlIHN0b3JlZCB0cmFuc2Zvcm0gYW5kIHNjaGVkdWxlXG4gICAgICAgICAgICAgICAgICogYSByZW5kZXIgdG8gZW5zdXJlIHRoZSBlbGVtZW50cyByZWZsZWN0IHRoZSByZW1vdmVkIHRyYW5zZm9ybS5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUHJvamVjdGlvbkRlbHRhcygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlUmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9qZWN0aW9uRGVsdGEgfHwgIXRoaXMucHJldlByb2plY3Rpb25EZWx0YSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlUHJvamVjdGlvbkRlbHRhcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29weUF4aXNEZWx0YUludG8odGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhLngsIHRoaXMucHJvamVjdGlvbkRlbHRhLngpO1xuICAgICAgICAgICAgICAgIGNvcHlBeGlzRGVsdGFJbnRvKHRoaXMucHJldlByb2plY3Rpb25EZWx0YS55LCB0aGlzLnByb2plY3Rpb25EZWx0YS55KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVXBkYXRlIHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSBjb3JyZWN0ZWQgYm94IGFuZCB0aGUgdGFyZ2V0IGJveCBiZWZvcmUgdXNlci1zZXQgdHJhbnNmb3JtcyB3ZXJlIGFwcGxpZWQuXG4gICAgICAgICAgICAgKiBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gY2FsY3VsYXRlIHRoZSBjb3JyZWN0ZWQgYm9yZGVyUmFkaXVzIGFuZCBib3hTaGFkb3cgdG8gY29tcGVuc2F0ZVxuICAgICAgICAgICAgICogZm9yIG91ciBsYXlvdXQgcmVwcm9qZWN0aW9uLCBidXQgc3RpbGwgYWxsb3cgdGhlbSB0byBiZSBzY2FsZWQgY29ycmVjdGx5IGJ5IHRoZSB1c2VyLlxuICAgICAgICAgICAgICogSXQgbWlnaHQgYmUgdGhhdCB0byBzaW1wbGlmeSB0aGlzIHdlIG1heSB3YW50IHRvIGFjY2VwdCB0aGF0IHVzZXItc2V0IHNjYWxlIGlzIGFsc28gY29ycmVjdGVkXG4gICAgICAgICAgICAgKiBhbmQgd2Ugd291bGRuJ3QgaGF2ZSB0byBrZWVwIGFuZCBjYWxjIGJvdGggZGVsdGFzLCBPUiB3ZSBjb3VsZCBzdXBwb3J0IGEgdXNlciBzZXR0aW5nXG4gICAgICAgICAgICAgKiB0byBhbGxvdyBwZW9wbGUgdG8gY2hvb3NlIHdoZXRoZXIgdGhlc2Ugc3R5bGVzIGFyZSBjb3JyZWN0ZWQgYmFzZWQgb24ganVzdCB0aGVcbiAgICAgICAgICAgICAqIGxheW91dCByZXByb2plY3Rpb24gb3IgdGhlIGZpbmFsIGJvdW5kaW5nIGJveC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY2FsY0JveERlbHRhKHRoaXMucHJvamVjdGlvbkRlbHRhLCB0aGlzLmxheW91dENvcnJlY3RlZCwgdGFyZ2V0LCB0aGlzLmxhdGVzdFZhbHVlcyk7XG4gICAgICAgICAgICBpZiAodGhpcy50cmVlU2NhbGUueCAhPT0gcHJldlRyZWVTY2FsZVggfHxcbiAgICAgICAgICAgICAgICB0aGlzLnRyZWVTY2FsZS55ICE9PSBwcmV2VHJlZVNjYWxlWSB8fFxuICAgICAgICAgICAgICAgICFheGlzRGVsdGFFcXVhbHModGhpcy5wcm9qZWN0aW9uRGVsdGEueCwgdGhpcy5wcmV2UHJvamVjdGlvbkRlbHRhLngpIHx8XG4gICAgICAgICAgICAgICAgIWF4aXNEZWx0YUVxdWFscyh0aGlzLnByb2plY3Rpb25EZWx0YS55LCB0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEueSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhc1Byb2plY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZ5TGlzdGVuZXJzKFwicHJvamVjdGlvblVwZGF0ZVwiLCB0YXJnZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJbmNyZWFzZSBkZWJ1ZyBjb3VudGVyIGZvciByZWNhbGN1bGF0ZWQgcHJvamVjdGlvbnNcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHN0YXRzQnVmZmVyLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbWV0cmljcy5jYWxjdWxhdGVkUHJvamVjdGlvbnMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBoaWRlKCkge1xuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIC8vIFRPRE86IFNjaGVkdWxlIHJlbmRlclxuICAgICAgICB9XG4gICAgICAgIHNob3coKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgICAgICAgICAvLyBUT0RPOiBTY2hlZHVsZSByZW5kZXJcbiAgICAgICAgfVxuICAgICAgICBzY2hlZHVsZVJlbmRlcihub3RpZnlBbGwgPSB0cnVlKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMudmlzdWFsRWxlbWVudD8uc2NoZWR1bGVSZW5kZXIoKTtcbiAgICAgICAgICAgIGlmIChub3RpZnlBbGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFjayA9IHRoaXMuZ2V0U3RhY2soKTtcbiAgICAgICAgICAgICAgICBzdGFjayAmJiBzdGFjay5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMucmVzdW1pbmdGcm9tICYmICF0aGlzLnJlc3VtaW5nRnJvbS5pbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzdW1pbmdGcm9tID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNyZWF0ZVByb2plY3Rpb25EZWx0YXMoKSB7XG4gICAgICAgICAgICB0aGlzLnByZXZQcm9qZWN0aW9uRGVsdGEgPSBjcmVhdGVEZWx0YSgpO1xuICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uRGVsdGEgPSBjcmVhdGVEZWx0YSgpO1xuICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uRGVsdGFXaXRoVHJhbnNmb3JtID0gY3JlYXRlRGVsdGEoKTtcbiAgICAgICAgfVxuICAgICAgICBzZXRBbmltYXRpb25PcmlnaW4oZGVsdGEsIGhhc09ubHlSZWxhdGl2ZVRhcmdldENoYW5nZWQgPSBmYWxzZSkge1xuICAgICAgICAgICAgY29uc3Qgc25hcHNob3QgPSB0aGlzLnNuYXBzaG90O1xuICAgICAgICAgICAgY29uc3Qgc25hcHNob3RMYXRlc3RWYWx1ZXMgPSBzbmFwc2hvdCA/IHNuYXBzaG90LmxhdGVzdFZhbHVlcyA6IHt9O1xuICAgICAgICAgICAgY29uc3QgbWl4ZWRWYWx1ZXMgPSB7IC4uLnRoaXMubGF0ZXN0VmFsdWVzIH07XG4gICAgICAgICAgICBjb25zdCB0YXJnZXREZWx0YSA9IGNyZWF0ZURlbHRhKCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMucmVsYXRpdmVQYXJlbnQgfHxcbiAgICAgICAgICAgICAgICAhdGhpcy5yZWxhdGl2ZVBhcmVudC5vcHRpb25zLmxheW91dFJvb3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlVGFyZ2V0ID0gdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuYXR0ZW1wdFRvUmVzb2x2ZVJlbGF0aXZlVGFyZ2V0ID0gIWhhc09ubHlSZWxhdGl2ZVRhcmdldENoYW5nZWQ7XG4gICAgICAgICAgICBjb25zdCByZWxhdGl2ZUxheW91dCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgY29uc3Qgc25hcHNob3RTb3VyY2UgPSBzbmFwc2hvdCA/IHNuYXBzaG90LnNvdXJjZSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGNvbnN0IGxheW91dFNvdXJjZSA9IHRoaXMubGF5b3V0ID8gdGhpcy5sYXlvdXQuc291cmNlIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgY29uc3QgaXNTaGFyZWRMYXlvdXRBbmltYXRpb24gPSBzbmFwc2hvdFNvdXJjZSAhPT0gbGF5b3V0U291cmNlO1xuICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKCk7XG4gICAgICAgICAgICBjb25zdCBpc09ubHlNZW1iZXIgPSAhc3RhY2sgfHwgc3RhY2subWVtYmVycy5sZW5ndGggPD0gMTtcbiAgICAgICAgICAgIGNvbnN0IHNob3VsZENyb3NzZmFkZU9wYWNpdHkgPSBCb29sZWFuKGlzU2hhcmVkTGF5b3V0QW5pbWF0aW9uICYmXG4gICAgICAgICAgICAgICAgIWlzT25seU1lbWJlciAmJlxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5jcm9zc2ZhZGUgPT09IHRydWUgJiZcbiAgICAgICAgICAgICAgICAhdGhpcy5wYXRoLnNvbWUoaGFzT3BhY2l0eUNyb3NzZmFkZSkpO1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb25Qcm9ncmVzcyA9IDA7XG4gICAgICAgICAgICBsZXQgcHJldlJlbGF0aXZlVGFyZ2V0O1xuICAgICAgICAgICAgdGhpcy5taXhUYXJnZXREZWx0YSA9IChsYXRlc3QpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcm9ncmVzcyA9IGxhdGVzdCAvIDEwMDA7XG4gICAgICAgICAgICAgICAgbWl4QXhpc0RlbHRhKHRhcmdldERlbHRhLngsIGRlbHRhLngsIHByb2dyZXNzKTtcbiAgICAgICAgICAgICAgICBtaXhBeGlzRGVsdGEodGFyZ2V0RGVsdGEueSwgZGVsdGEueSwgcHJvZ3Jlc3MpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0VGFyZ2V0RGVsdGEodGFyZ2V0RGVsdGEpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlbGF0aXZlVGFyZ2V0ICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpdmVUYXJnZXRPcmlnaW4gJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQgJiZcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxhdGl2ZVBhcmVudCAmJlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbGF0aXZlUGFyZW50LmxheW91dCkge1xuICAgICAgICAgICAgICAgICAgICBjYWxjUmVsYXRpdmVQb3NpdGlvbihyZWxhdGl2ZUxheW91dCwgdGhpcy5sYXlvdXQubGF5b3V0Qm94LCB0aGlzLnJlbGF0aXZlUGFyZW50LmxheW91dC5sYXlvdXRCb3gpO1xuICAgICAgICAgICAgICAgICAgICBtaXhCb3godGhpcy5yZWxhdGl2ZVRhcmdldCwgdGhpcy5yZWxhdGl2ZVRhcmdldE9yaWdpbiwgcmVsYXRpdmVMYXlvdXQsIHByb2dyZXNzKTtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIHRoaXMgaXMgYW4gdW5jaGFuZ2VkIHJlbGF0aXZlIHRhcmdldCB3ZSBjYW4gY29uc2lkZXIgdGhlXG4gICAgICAgICAgICAgICAgICAgICAqIHByb2plY3Rpb24gbm90IGRpcnR5LlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZSZWxhdGl2ZVRhcmdldCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgYm94RXF1YWxzKHRoaXMucmVsYXRpdmVUYXJnZXQsIHByZXZSZWxhdGl2ZVRhcmdldCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNQcm9qZWN0aW9uRGlydHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIXByZXZSZWxhdGl2ZVRhcmdldClcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZSZWxhdGl2ZVRhcmdldCA9IGNyZWF0ZUJveCgpO1xuICAgICAgICAgICAgICAgICAgICBjb3B5Qm94SW50byhwcmV2UmVsYXRpdmVUYXJnZXQsIHRoaXMucmVsYXRpdmVUYXJnZXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNTaGFyZWRMYXlvdXRBbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpb25WYWx1ZXMgPSBtaXhlZFZhbHVlcztcbiAgICAgICAgICAgICAgICAgICAgbWl4VmFsdWVzKG1peGVkVmFsdWVzLCBzbmFwc2hvdExhdGVzdFZhbHVlcywgdGhpcy5sYXRlc3RWYWx1ZXMsIHByb2dyZXNzLCBzaG91bGRDcm9zc2ZhZGVPcGFjaXR5LCBpc09ubHlNZW1iZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnJvb3Quc2NoZWR1bGVVcGRhdGVQcm9qZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uUHJvZ3Jlc3MgPSBwcm9ncmVzcztcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLm1peFRhcmdldERlbHRhKHRoaXMub3B0aW9ucy5sYXlvdXRSb290ID8gMTAwMCA6IDApO1xuICAgICAgICB9XG4gICAgICAgIHN0YXJ0QW5pbWF0aW9uKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5TGlzdGVuZXJzKFwiYW5pbWF0aW9uU3RhcnRcIik7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltYXRpb24/LnN0b3AoKTtcbiAgICAgICAgICAgIHRoaXMucmVzdW1pbmdGcm9tPy5jdXJyZW50QW5pbWF0aW9uPy5zdG9wKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5wZW5kaW5nQW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FuY2VsRnJhbWUodGhpcy5wZW5kaW5nQW5pbWF0aW9uKTtcbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBbmltYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFN0YXJ0IHRoZSBhbmltYXRpb24gaW4gdGhlIG5leHQgZnJhbWUgdG8gaGF2ZSBhIGZyYW1lIHdpdGggcHJvZ3Jlc3MgMCxcbiAgICAgICAgICAgICAqIHdoZXJlIHRoZSB0YXJnZXQgaXMgdGhlIHNhbWUgYXMgd2hlbiB0aGUgYW5pbWF0aW9uIHN0YXJ0ZWQsIHNvIHdlIGNhblxuICAgICAgICAgICAgICogY2FsY3VsYXRlIHRoZSByZWxhdGl2ZSBwb3NpdGlvbnMgY29ycmVjdGx5IGZvciBpbnN0YW50IHRyYW5zaXRpb25zLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICB0aGlzLnBlbmRpbmdBbmltYXRpb24gPSBmcmFtZS51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGdsb2JhbFByb2plY3Rpb25TdGF0ZS5oYXNBbmltYXRlZFNpbmNlUmVzaXplID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBhY3RpdmVBbmltYXRpb25zLmxheW91dCsrO1xuICAgICAgICAgICAgICAgIHRoaXMubW90aW9uVmFsdWUgfHwgKHRoaXMubW90aW9uVmFsdWUgPSBtb3Rpb25WYWx1ZSgwKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3Rpb25WYWx1ZS5qdW1wKDAsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltYXRpb24gPSBhbmltYXRlU2luZ2xlVmFsdWUodGhpcy5tb3Rpb25WYWx1ZSwgWzAsIDEwMDBdLCB7XG4gICAgICAgICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIHZlbG9jaXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICBpc1N5bmM6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIG9uVXBkYXRlOiAobGF0ZXN0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1peFRhcmdldERlbHRhKGxhdGVzdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm9uVXBkYXRlICYmIG9wdGlvbnMub25VcGRhdGUobGF0ZXN0KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb25TdG9wOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVBbmltYXRpb25zLmxheW91dC0tO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBvbkNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVBbmltYXRpb25zLmxheW91dC0tO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5vbkNvbXBsZXRlICYmIG9wdGlvbnMub25Db21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZUFuaW1hdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlc3VtaW5nRnJvbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc3VtaW5nRnJvbS5jdXJyZW50QW5pbWF0aW9uID0gdGhpcy5jdXJyZW50QW5pbWF0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdBbmltYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb21wbGV0ZUFuaW1hdGlvbigpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJlc3VtaW5nRnJvbSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzdW1pbmdGcm9tLmN1cnJlbnRBbmltYXRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXN1bWluZ0Zyb20ucHJlc2VydmVPcGFjaXR5ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKCk7XG4gICAgICAgICAgICBzdGFjayAmJiBzdGFjay5leGl0QW5pbWF0aW9uQ29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMucmVzdW1pbmdGcm9tID1cbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltYXRpb24gPVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvblZhbHVlcyA9XG4gICAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLm5vdGlmeUxpc3RlbmVycyhcImFuaW1hdGlvbkNvbXBsZXRlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGZpbmlzaEFuaW1hdGlvbigpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRBbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1peFRhcmdldERlbHRhICYmIHRoaXMubWl4VGFyZ2V0RGVsdGEoYW5pbWF0aW9uVGFyZ2V0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRBbmltYXRpb24uc3RvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZUFuaW1hdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGFwcGx5VHJhbnNmb3Jtc1RvVGFyZ2V0KCkge1xuICAgICAgICAgICAgY29uc3QgbGVhZCA9IHRoaXMuZ2V0TGVhZCgpO1xuICAgICAgICAgICAgbGV0IHsgdGFyZ2V0V2l0aFRyYW5zZm9ybXMsIHRhcmdldCwgbGF5b3V0LCBsYXRlc3RWYWx1ZXMgfSA9IGxlYWQ7XG4gICAgICAgICAgICBpZiAoIXRhcmdldFdpdGhUcmFuc2Zvcm1zIHx8ICF0YXJnZXQgfHwgIWxheW91dClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlJ3JlIG9ubHkgYW5pbWF0aW5nIHBvc2l0aW9uLCBhbmQgdGhpcyBlbGVtZW50IGlzbid0IHRoZSBsZWFkIGVsZW1lbnQsXG4gICAgICAgICAgICAgKiB0aGVuIGluc3RlYWQgb2YgcHJvamVjdGluZyBpbnRvIHRoZSBsZWFkIGJveCB3ZSBpbnN0ZWFkIHdhbnQgdG8gY2FsY3VsYXRlXG4gICAgICAgICAgICAgKiBhIG5ldyB0YXJnZXQgdGhhdCBhbGlnbnMgdGhlIHR3byBib3hlcyBidXQgbWFpbnRhaW5zIHRoZSBsYXlvdXQgc2hhcGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzICE9PSBsZWFkICYmXG4gICAgICAgICAgICAgICAgdGhpcy5sYXlvdXQgJiZcbiAgICAgICAgICAgICAgICBsYXlvdXQgJiZcbiAgICAgICAgICAgICAgICBzaG91bGRBbmltYXRlUG9zaXRpb25Pbmx5KHRoaXMub3B0aW9ucy5hbmltYXRpb25UeXBlLCB0aGlzLmxheW91dC5sYXlvdXRCb3gsIGxheW91dC5sYXlvdXRCb3gpKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gdGhpcy50YXJnZXQgfHwgY3JlYXRlQm94KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeExlbmd0aCA9IGNhbGNMZW5ndGgodGhpcy5sYXlvdXQubGF5b3V0Qm94LngpO1xuICAgICAgICAgICAgICAgIHRhcmdldC54Lm1pbiA9IGxlYWQudGFyZ2V0LngubWluO1xuICAgICAgICAgICAgICAgIHRhcmdldC54Lm1heCA9IHRhcmdldC54Lm1pbiArIHhMZW5ndGg7XG4gICAgICAgICAgICAgICAgY29uc3QgeUxlbmd0aCA9IGNhbGNMZW5ndGgodGhpcy5sYXlvdXQubGF5b3V0Qm94LnkpO1xuICAgICAgICAgICAgICAgIHRhcmdldC55Lm1pbiA9IGxlYWQudGFyZ2V0LnkubWluO1xuICAgICAgICAgICAgICAgIHRhcmdldC55Lm1heCA9IHRhcmdldC55Lm1pbiArIHlMZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb3B5Qm94SW50byh0YXJnZXRXaXRoVHJhbnNmb3JtcywgdGFyZ2V0KTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQXBwbHkgdGhlIGxhdGVzdCB1c2VyLXNldCB0cmFuc2Zvcm1zIHRvIHRoZSB0YXJnZXRCb3ggdG8gcHJvZHVjZSB0aGUgdGFyZ2V0Qm94RmluYWwuXG4gICAgICAgICAgICAgKiBUaGlzIGlzIHRoZSBmaW5hbCBib3ggdGhhdCB3ZSB3aWxsIHRoZW4gcHJvamVjdCBpbnRvIGJ5IGNhbGN1bGF0aW5nIGEgdHJhbnNmb3JtIGRlbHRhIGFuZFxuICAgICAgICAgICAgICogYXBwbHlpbmcgaXQgdG8gdGhlIGNvcnJlY3RlZCBib3guXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRyYW5zZm9ybUJveCh0YXJnZXRXaXRoVHJhbnNmb3JtcywgbGF0ZXN0VmFsdWVzKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVXBkYXRlIHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSBjb3JyZWN0ZWQgYm94IGFuZCB0aGUgZmluYWwgdGFyZ2V0IGJveCwgYWZ0ZXJcbiAgICAgICAgICAgICAqIHVzZXItc2V0IHRyYW5zZm9ybXMgYXJlIGFwcGxpZWQgdG8gaXQuIFRoaXMgd2lsbCBiZSB1c2VkIGJ5IHRoZSByZW5kZXJlciB0b1xuICAgICAgICAgICAgICogY3JlYXRlIGEgdHJhbnNmb3JtIHN0eWxlIHRoYXQgd2lsbCByZXByb2plY3QgdGhlIGVsZW1lbnQgZnJvbSBpdHMgbGF5b3V0IGxheW91dFxuICAgICAgICAgICAgICogaW50byB0aGUgZGVzaXJlZCBib3VuZGluZyBib3guXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNhbGNCb3hEZWx0YSh0aGlzLnByb2plY3Rpb25EZWx0YVdpdGhUcmFuc2Zvcm0sIHRoaXMubGF5b3V0Q29ycmVjdGVkLCB0YXJnZXRXaXRoVHJhbnNmb3JtcywgbGF0ZXN0VmFsdWVzKTtcbiAgICAgICAgfVxuICAgICAgICByZWdpc3RlclNoYXJlZE5vZGUobGF5b3V0SWQsIG5vZGUpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zaGFyZWROb2Rlcy5oYXMobGF5b3V0SWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGFyZWROb2Rlcy5zZXQobGF5b3V0SWQsIG5ldyBOb2RlU3RhY2soKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBzdGFjayA9IHRoaXMuc2hhcmVkTm9kZXMuZ2V0KGxheW91dElkKTtcbiAgICAgICAgICAgIHN0YWNrLmFkZChub2RlKTtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IG5vZGUub3B0aW9ucy5pbml0aWFsUHJvbW90aW9uQ29uZmlnO1xuICAgICAgICAgICAgbm9kZS5wcm9tb3RlKHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBjb25maWcgPyBjb25maWcudHJhbnNpdGlvbiA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwcmVzZXJ2ZUZvbGxvd09wYWNpdHk6IGNvbmZpZyAmJiBjb25maWcuc2hvdWxkUHJlc2VydmVGb2xsb3dPcGFjaXR5XG4gICAgICAgICAgICAgICAgICAgID8gY29uZmlnLnNob3VsZFByZXNlcnZlRm9sbG93T3BhY2l0eShub2RlKVxuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlzTGVhZCgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xuICAgICAgICAgICAgcmV0dXJuIHN0YWNrID8gc3RhY2subGVhZCA9PT0gdGhpcyA6IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgZ2V0TGVhZCgpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbGF5b3V0SWQgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgIHJldHVybiBsYXlvdXRJZCA/IHRoaXMuZ2V0U3RhY2soKT8ubGVhZCB8fCB0aGlzIDogdGhpcztcbiAgICAgICAgfVxuICAgICAgICBnZXRQcmV2TGVhZCgpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgbGF5b3V0SWQgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgICAgIHJldHVybiBsYXlvdXRJZCA/IHRoaXMuZ2V0U3RhY2soKT8ucHJldkxlYWQgOiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZ2V0U3RhY2soKSB7XG4gICAgICAgICAgICBjb25zdCB7IGxheW91dElkIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAobGF5b3V0SWQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucm9vdC5zaGFyZWROb2Rlcy5nZXQobGF5b3V0SWQpO1xuICAgICAgICB9XG4gICAgICAgIHByb21vdGUoeyBuZWVkc1Jlc2V0LCB0cmFuc2l0aW9uLCBwcmVzZXJ2ZUZvbGxvd09wYWNpdHksIH0gPSB7fSkge1xuICAgICAgICAgICAgY29uc3Qgc3RhY2sgPSB0aGlzLmdldFN0YWNrKCk7XG4gICAgICAgICAgICBpZiAoc3RhY2spXG4gICAgICAgICAgICAgICAgc3RhY2sucHJvbW90ZSh0aGlzLCBwcmVzZXJ2ZUZvbGxvd09wYWNpdHkpO1xuICAgICAgICAgICAgaWYgKG5lZWRzUmVzZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2plY3Rpb25EZWx0YSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0aGlzLm5lZWRzUmVzZXQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRyYW5zaXRpb24pXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRPcHRpb25zKHsgdHJhbnNpdGlvbiB9KTtcbiAgICAgICAgfVxuICAgICAgICByZWxlZ2F0ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gdGhpcy5nZXRTdGFjaygpO1xuICAgICAgICAgICAgaWYgKHN0YWNrKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0YWNrLnJlbGVnYXRlKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlc2V0U2tld0FuZFJvdGF0aW9uKCkge1xuICAgICAgICAgICAgY29uc3QgeyB2aXN1YWxFbGVtZW50IH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAoIXZpc3VhbEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBkZXRlY3RlZCBza2V3IG9yIHJvdGF0aW9uIHZhbHVlcywgd2UgY2FuIGVhcmx5IHJldHVybiB3aXRob3V0IGEgZm9yY2VkIHJlbmRlci5cbiAgICAgICAgICAgIGxldCBoYXNEaXN0b3J0aW5nVHJhbnNmb3JtID0gZmFsc2U7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIEFuIHVucm9sbGVkIGNoZWNrIGZvciByb3RhdGlvbiB2YWx1ZXMuIE1vc3QgZWxlbWVudHMgZG9uJ3QgaGF2ZSBhbnkgcm90YXRpb24gYW5kXG4gICAgICAgICAgICAgKiBza2lwcGluZyB0aGUgbmVzdGVkIGxvb3AgYW5kIG5ldyBvYmplY3QgY3JlYXRpb24gaXMgNTAlIGZhc3Rlci5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgeyBsYXRlc3RWYWx1ZXMgfSA9IHZpc3VhbEVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAobGF0ZXN0VmFsdWVzLnogfHxcbiAgICAgICAgICAgICAgICBsYXRlc3RWYWx1ZXMucm90YXRlIHx8XG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzLnJvdGF0ZVggfHxcbiAgICAgICAgICAgICAgICBsYXRlc3RWYWx1ZXMucm90YXRlWSB8fFxuICAgICAgICAgICAgICAgIGxhdGVzdFZhbHVlcy5yb3RhdGVaIHx8XG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzLnNrZXdYIHx8XG4gICAgICAgICAgICAgICAgbGF0ZXN0VmFsdWVzLnNrZXdZKSB7XG4gICAgICAgICAgICAgICAgaGFzRGlzdG9ydGluZ1RyYW5zZm9ybSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIGRpc3RvcnRpbmcgdmFsdWVzLCB3ZSBkb24ndCBuZWVkIHRvIGRvIGFueSBtb3JlLlxuICAgICAgICAgICAgaWYgKCFoYXNEaXN0b3J0aW5nVHJhbnNmb3JtKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IHJlc2V0VmFsdWVzID0ge307XG4gICAgICAgICAgICBpZiAobGF0ZXN0VmFsdWVzLnopIHtcbiAgICAgICAgICAgICAgICByZXNldERpc3RvcnRpbmdUcmFuc2Zvcm0oXCJ6XCIsIHZpc3VhbEVsZW1lbnQsIHJlc2V0VmFsdWVzLCB0aGlzLmFuaW1hdGlvblZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBDaGVjayB0aGUgc2tldyBhbmQgcm90YXRlIHZhbHVlIG9mIGFsbCBheGVzIGFuZCByZXNldCB0byAwXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRyYW5zZm9ybUF4ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICByZXNldERpc3RvcnRpbmdUcmFuc2Zvcm0oYHJvdGF0ZSR7dHJhbnNmb3JtQXhlc1tpXX1gLCB2aXN1YWxFbGVtZW50LCByZXNldFZhbHVlcywgdGhpcy5hbmltYXRpb25WYWx1ZXMpO1xuICAgICAgICAgICAgICAgIHJlc2V0RGlzdG9ydGluZ1RyYW5zZm9ybShgc2tldyR7dHJhbnNmb3JtQXhlc1tpXX1gLCB2aXN1YWxFbGVtZW50LCByZXNldFZhbHVlcywgdGhpcy5hbmltYXRpb25WYWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRm9yY2UgYSByZW5kZXIgb2YgdGhpcyBlbGVtZW50IHRvIGFwcGx5IHRoZSB0cmFuc2Zvcm0gd2l0aCBhbGwgc2tld3MgYW5kIHJvdGF0aW9uc1xuICAgICAgICAgICAgLy8gc2V0IHRvIDAuXG4gICAgICAgICAgICB2aXN1YWxFbGVtZW50LnJlbmRlcigpO1xuICAgICAgICAgICAgLy8gUHV0IGJhY2sgYWxsIHRoZSB2YWx1ZXMgd2UgcmVzZXRcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJlc2V0VmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5zZXRTdGF0aWNWYWx1ZShrZXksIHJlc2V0VmFsdWVzW2tleV0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGlvblZhbHVlcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGlvblZhbHVlc1trZXldID0gcmVzZXRWYWx1ZXNba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBTY2hlZHVsZSBhIHJlbmRlciBmb3IgdGhlIG5leHQgZnJhbWUuIFRoaXMgZW5zdXJlcyB3ZSB3b24ndCB2aXN1YWxseVxuICAgICAgICAgICAgLy8gc2VlIHRoZSBlbGVtZW50IHdpdGggdGhlIHJlc2V0IHJvdGF0ZSB2YWx1ZSBhcHBsaWVkLlxuICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICB9XG4gICAgICAgIGFwcGx5UHJvamVjdGlvblN0eWxlcyh0YXJnZXRTdHlsZSwgLy8gQ1NTU3R5bGVEZWNsYXJhdGlvbiAtIGRvZXNuJ3QgYWxsb3cgbnVtYmVycyB0byBiZSBhc3NpZ25lZCB0byBwcm9wZXJ0aWVzXG4gICAgICAgIHN0eWxlUHJvcCkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlIHx8IHRoaXMuaXNTVkcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnZpc2liaWxpdHkgPSBcImhpZGRlblwiO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybVRlbXBsYXRlID0gdGhpcy5nZXRUcmFuc2Zvcm1UZW1wbGF0ZSgpO1xuICAgICAgICAgICAgaWYgKHRoaXMubmVlZHNSZXNldCkge1xuICAgICAgICAgICAgICAgIHRoaXMubmVlZHNSZXNldCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnZpc2liaWxpdHkgPSBcIlwiO1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLm9wYWNpdHkgPSBcIlwiO1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnBvaW50ZXJFdmVudHMgPVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlTW90aW9uVmFsdWUoc3R5bGVQcm9wPy5wb2ludGVyRXZlbnRzKSB8fCBcIlwiO1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnRyYW5zZm9ybSA9IHRyYW5zZm9ybVRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgID8gdHJhbnNmb3JtVGVtcGxhdGUodGhpcy5sYXRlc3RWYWx1ZXMsIFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIDogXCJub25lXCI7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGVhZCA9IHRoaXMuZ2V0TGVhZCgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLnByb2plY3Rpb25EZWx0YSB8fCAhdGhpcy5sYXlvdXQgfHwgIWxlYWQudGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sYXlvdXRJZCkge1xuICAgICAgICAgICAgICAgICAgICB0YXJnZXRTdHlsZS5vcGFjaXR5ID1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzLm9wYWNpdHkgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMTtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGUucG9pbnRlckV2ZW50cyA9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlTW90aW9uVmFsdWUoc3R5bGVQcm9wPy5wb2ludGVyRXZlbnRzKSB8fCBcIlwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNQcm9qZWN0ZWQgJiYgIWhhc1RyYW5zZm9ybSh0aGlzLmxhdGVzdFZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGUudHJhbnNmb3JtID0gdHJhbnNmb3JtVGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdHJhbnNmb3JtVGVtcGxhdGUoe30sIFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwibm9uZVwiO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc1Byb2plY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0YXJnZXRTdHlsZS52aXNpYmlsaXR5ID0gXCJcIjtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlc1RvUmVuZGVyID0gbGVhZC5hbmltYXRpb25WYWx1ZXMgfHwgbGVhZC5sYXRlc3RWYWx1ZXM7XG4gICAgICAgICAgICB0aGlzLmFwcGx5VHJhbnNmb3Jtc1RvVGFyZ2V0KCk7XG4gICAgICAgICAgICBsZXQgdHJhbnNmb3JtID0gYnVpbGRQcm9qZWN0aW9uVHJhbnNmb3JtKHRoaXMucHJvamVjdGlvbkRlbHRhV2l0aFRyYW5zZm9ybSwgdGhpcy50cmVlU2NhbGUsIHZhbHVlc1RvUmVuZGVyKTtcbiAgICAgICAgICAgIGlmICh0cmFuc2Zvcm1UZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybSA9IHRyYW5zZm9ybVRlbXBsYXRlKHZhbHVlc1RvUmVuZGVyLCB0cmFuc2Zvcm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGFyZ2V0U3R5bGUudHJhbnNmb3JtID0gdHJhbnNmb3JtO1xuICAgICAgICAgICAgY29uc3QgeyB4LCB5IH0gPSB0aGlzLnByb2plY3Rpb25EZWx0YTtcbiAgICAgICAgICAgIHRhcmdldFN0eWxlLnRyYW5zZm9ybU9yaWdpbiA9IGAke3gub3JpZ2luICogMTAwfSUgJHt5Lm9yaWdpbiAqIDEwMH0lIDBgO1xuICAgICAgICAgICAgaWYgKGxlYWQuYW5pbWF0aW9uVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSWYgdGhlIGxlYWQgY29tcG9uZW50IGlzIGFuaW1hdGluZywgYXNzaWduIHRoaXMgZWl0aGVyIHRoZSBlbnRlcmluZy9sZWF2aW5nXG4gICAgICAgICAgICAgICAgICogb3BhY2l0eVxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLm9wYWNpdHkgPVxuICAgICAgICAgICAgICAgICAgICBsZWFkID09PSB0aGlzXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHZhbHVlc1RvUmVuZGVyLm9wYWNpdHkgPz9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxhdGVzdFZhbHVlcy5vcGFjaXR5ID8/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnByZXNlcnZlT3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5sYXRlc3RWYWx1ZXMub3BhY2l0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdmFsdWVzVG9SZW5kZXIub3BhY2l0eUV4aXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBPciB3ZSdyZSBub3QgYW5pbWF0aW5nIGF0IGFsbCwgc2V0IHRoZSBsZWFkIGNvbXBvbmVudCB0byBpdHMgbGF5b3V0XG4gICAgICAgICAgICAgICAgICogb3BhY2l0eSBhbmQgb3RoZXIgY29tcG9uZW50cyB0byBoaWRkZW4uXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGUub3BhY2l0eSA9XG4gICAgICAgICAgICAgICAgICAgIGxlYWQgPT09IHRoaXNcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdmFsdWVzVG9SZW5kZXIub3BhY2l0eSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZXNUb1JlbmRlci5vcGFjaXR5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHZhbHVlc1RvUmVuZGVyLm9wYWNpdHlFeGl0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHZhbHVlc1RvUmVuZGVyLm9wYWNpdHlFeGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBcHBseSBzY2FsZSBjb3JyZWN0aW9uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHNjYWxlQ29ycmVjdG9ycykge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZXNUb1JlbmRlcltrZXldID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgY29ycmVjdCwgYXBwbHlUbywgaXNDU1NWYXJpYWJsZSB9ID0gc2NhbGVDb3JyZWN0b3JzW2tleV07XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogT25seSBhcHBseSBzY2FsZSBjb3JyZWN0aW9uIHRvIHRoZSB2YWx1ZSBpZiB3ZSBoYXZlIGFuXG4gICAgICAgICAgICAgICAgICogYWN0aXZlIHByb2plY3Rpb24gdHJhbnNmb3JtLiBPdGhlcndpc2UgdGhlc2UgdmFsdWVzIGJlY29tZVxuICAgICAgICAgICAgICAgICAqIHZ1bG5lcmFibGUgdG8gZGlzdG9ydGlvbiBpZiB0aGUgZWxlbWVudCBjaGFuZ2VzIHNpemUgd2l0aG91dFxuICAgICAgICAgICAgICAgICAqIGEgY29ycmVzcG9uZGluZyBsYXlvdXQgYW5pbWF0aW9uLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvcnJlY3RlZCA9IHRyYW5zZm9ybSA9PT0gXCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZXNUb1JlbmRlcltrZXldXG4gICAgICAgICAgICAgICAgICAgIDogY29ycmVjdCh2YWx1ZXNUb1JlbmRlcltrZXldLCBsZWFkKTtcbiAgICAgICAgICAgICAgICBpZiAoYXBwbHlUbykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBudW0gPSBhcHBseVRvLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW07IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0U3R5bGVbYXBwbHlUb1tpXV0gPSBjb3JyZWN0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBDU1MgdmFyaWFibGUsIHNldCBpdCBkaXJlY3RseSBvbiB0aGUgaW5zdGFuY2UuXG4gICAgICAgICAgICAgICAgICAgIC8vIFJlcGxhY2luZyB0aGlzIGZ1bmN0aW9uIGZyb20gY3JlYXRpbmcgc3R5bGVzIHRvIHNldHRpbmcgdGhlbVxuICAgICAgICAgICAgICAgICAgICAvLyB3b3VsZCBiZSBhIGdvb2QgcGxhY2UgdG8gcmVtb3ZlIHBlciBmcmFtZSBvYmplY3QgY3JlYXRpb25cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ1NTVmFyaWFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy52aXN1YWxFbGVtZW50LnJlbmRlclN0YXRlLnZhcnNba2V5XSA9IGNvcnJlY3RlZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlW2tleV0gPSBjb3JyZWN0ZWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIERpc2FibGUgcG9pbnRlciBldmVudHMgb24gZm9sbG93IGNvbXBvbmVudHMuIFRoaXMgaXMgdG8gZW5zdXJlXG4gICAgICAgICAgICAgKiB0aGF0IGlmIGEgZm9sbG93IGNvbXBvbmVudCBjb3ZlcnMgYSBsZWFkIGNvbXBvbmVudCBpdCBkb2Vzbid0IGJsb2NrXG4gICAgICAgICAgICAgKiBwb2ludGVyIGV2ZW50cyBvbiB0aGUgbGVhZC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5sYXlvdXRJZCkge1xuICAgICAgICAgICAgICAgIHRhcmdldFN0eWxlLnBvaW50ZXJFdmVudHMgPVxuICAgICAgICAgICAgICAgICAgICBsZWFkID09PSB0aGlzXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHJlc29sdmVNb3Rpb25WYWx1ZShzdHlsZVByb3A/LnBvaW50ZXJFdmVudHMpIHx8IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJub25lXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2xlYXJTbmFwc2hvdCgpIHtcbiAgICAgICAgICAgIHRoaXMucmVzdW1lRnJvbSA9IHRoaXMuc25hcHNob3QgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gT25seSBydW4gb24gcm9vdFxuICAgICAgICByZXNldFRyZWUoKSB7XG4gICAgICAgICAgICB0aGlzLnJvb3Qubm9kZXMuZm9yRWFjaCgobm9kZSkgPT4gbm9kZS5jdXJyZW50QW5pbWF0aW9uPy5zdG9wKCkpO1xuICAgICAgICAgICAgdGhpcy5yb290Lm5vZGVzLmZvckVhY2goY2xlYXJNZWFzdXJlbWVudHMpO1xuICAgICAgICAgICAgdGhpcy5yb290LnNoYXJlZE5vZGVzLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuZnVuY3Rpb24gdXBkYXRlTGF5b3V0KG5vZGUpIHtcbiAgICBub2RlLnVwZGF0ZUxheW91dCgpO1xufVxuZnVuY3Rpb24gbm90aWZ5TGF5b3V0VXBkYXRlKG5vZGUpIHtcbiAgICBjb25zdCBzbmFwc2hvdCA9IG5vZGUucmVzdW1lRnJvbT8uc25hcHNob3QgfHwgbm9kZS5zbmFwc2hvdDtcbiAgICBpZiAobm9kZS5pc0xlYWQoKSAmJlxuICAgICAgICBub2RlLmxheW91dCAmJlxuICAgICAgICBzbmFwc2hvdCAmJlxuICAgICAgICBub2RlLmhhc0xpc3RlbmVycyhcImRpZFVwZGF0ZVwiKSkge1xuICAgICAgICBjb25zdCB7IGxheW91dEJveDogbGF5b3V0LCBtZWFzdXJlZEJveDogbWVhc3VyZWRMYXlvdXQgfSA9IG5vZGUubGF5b3V0O1xuICAgICAgICBjb25zdCB7IGFuaW1hdGlvblR5cGUgfSA9IG5vZGUub3B0aW9ucztcbiAgICAgICAgY29uc3QgaXNTaGFyZWQgPSBzbmFwc2hvdC5zb3VyY2UgIT09IG5vZGUubGF5b3V0LnNvdXJjZTtcbiAgICAgICAgLy8gVE9ETyBNYXliZSB3ZSB3YW50IHRvIGFsc28gcmVzaXplIHRoZSBsYXlvdXQgc25hcHNob3Qgc28gd2UgZG9uJ3QgdHJpZ2dlclxuICAgICAgICAvLyBhbmltYXRpb25zIGZvciBpbnN0YW5jZSBpZiBsYXlvdXQ9XCJzaXplXCIgYW5kIGFuIGVsZW1lbnQgaGFzIG9ubHkgY2hhbmdlZCBwb3NpdGlvblxuICAgICAgICBpZiAoYW5pbWF0aW9uVHlwZSA9PT0gXCJzaXplXCIpIHtcbiAgICAgICAgICAgIGVhY2hBeGlzKChheGlzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXhpc1NuYXBzaG90ID0gaXNTaGFyZWRcbiAgICAgICAgICAgICAgICAgICAgPyBzbmFwc2hvdC5tZWFzdXJlZEJveFtheGlzXVxuICAgICAgICAgICAgICAgICAgICA6IHNuYXBzaG90LmxheW91dEJveFtheGlzXTtcbiAgICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBjYWxjTGVuZ3RoKGF4aXNTbmFwc2hvdCk7XG4gICAgICAgICAgICAgICAgYXhpc1NuYXBzaG90Lm1pbiA9IGxheW91dFtheGlzXS5taW47XG4gICAgICAgICAgICAgICAgYXhpc1NuYXBzaG90Lm1heCA9IGF4aXNTbmFwc2hvdC5taW4gKyBsZW5ndGg7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzaG91bGRBbmltYXRlUG9zaXRpb25Pbmx5KGFuaW1hdGlvblR5cGUsIHNuYXBzaG90LmxheW91dEJveCwgbGF5b3V0KSkge1xuICAgICAgICAgICAgZWFjaEF4aXMoKGF4aXMpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBheGlzU25hcHNob3QgPSBpc1NoYXJlZFxuICAgICAgICAgICAgICAgICAgICA/IHNuYXBzaG90Lm1lYXN1cmVkQm94W2F4aXNdXG4gICAgICAgICAgICAgICAgICAgIDogc25hcHNob3QubGF5b3V0Qm94W2F4aXNdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IGNhbGNMZW5ndGgobGF5b3V0W2F4aXNdKTtcbiAgICAgICAgICAgICAgICBheGlzU25hcHNob3QubWF4ID0gYXhpc1NuYXBzaG90Lm1pbiArIGxlbmd0aDtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBFbnN1cmUgcmVsYXRpdmUgdGFyZ2V0IGdldHMgcmVzaXplZCBhbmQgcmVyZW5kZXJlcmRcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAobm9kZS5yZWxhdGl2ZVRhcmdldCAmJiAhbm9kZS5jdXJyZW50QW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuaXNQcm9qZWN0aW9uRGlydHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBub2RlLnJlbGF0aXZlVGFyZ2V0W2F4aXNdLm1heCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLnJlbGF0aXZlVGFyZ2V0W2F4aXNdLm1pbiArIGxlbmd0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsYXlvdXREZWx0YSA9IGNyZWF0ZURlbHRhKCk7XG4gICAgICAgIGNhbGNCb3hEZWx0YShsYXlvdXREZWx0YSwgbGF5b3V0LCBzbmFwc2hvdC5sYXlvdXRCb3gpO1xuICAgICAgICBjb25zdCB2aXN1YWxEZWx0YSA9IGNyZWF0ZURlbHRhKCk7XG4gICAgICAgIGlmIChpc1NoYXJlZCkge1xuICAgICAgICAgICAgY2FsY0JveERlbHRhKHZpc3VhbERlbHRhLCBub2RlLmFwcGx5VHJhbnNmb3JtKG1lYXN1cmVkTGF5b3V0LCB0cnVlKSwgc25hcHNob3QubWVhc3VyZWRCb3gpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgY2FsY0JveERlbHRhKHZpc3VhbERlbHRhLCBsYXlvdXQsIHNuYXBzaG90LmxheW91dEJveCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFzTGF5b3V0Q2hhbmdlZCA9ICFpc0RlbHRhWmVybyhsYXlvdXREZWx0YSk7XG4gICAgICAgIGxldCBoYXNSZWxhdGl2ZUxheW91dENoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgaWYgKCFub2RlLnJlc3VtZUZyb20pIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0aXZlUGFyZW50ID0gbm9kZS5nZXRDbG9zZXN0UHJvamVjdGluZ1BhcmVudCgpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGUgcmVsYXRpdmVQYXJlbnQgaXMgaXRzZWxmIHJlc3VtaW5nIGZyb20gYSBkaWZmZXJlbnQgZWxlbWVudCB0aGVuXG4gICAgICAgICAgICAgKiB0aGUgcmVsYXRpdmUgc25hcHNob3QgaXMgbm90IHJlbGF2ZW50XG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChyZWxhdGl2ZVBhcmVudCAmJiAhcmVsYXRpdmVQYXJlbnQucmVzdW1lRnJvbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgc25hcHNob3Q6IHBhcmVudFNuYXBzaG90LCBsYXlvdXQ6IHBhcmVudExheW91dCB9ID0gcmVsYXRpdmVQYXJlbnQ7XG4gICAgICAgICAgICAgICAgaWYgKHBhcmVudFNuYXBzaG90ICYmIHBhcmVudExheW91dCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWxhdGl2ZVNuYXBzaG90ID0gY3JlYXRlQm94KCk7XG4gICAgICAgICAgICAgICAgICAgIGNhbGNSZWxhdGl2ZVBvc2l0aW9uKHJlbGF0aXZlU25hcHNob3QsIHNuYXBzaG90LmxheW91dEJveCwgcGFyZW50U25hcHNob3QubGF5b3V0Qm94KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVMYXlvdXQgPSBjcmVhdGVCb3goKTtcbiAgICAgICAgICAgICAgICAgICAgY2FsY1JlbGF0aXZlUG9zaXRpb24ocmVsYXRpdmVMYXlvdXQsIGxheW91dCwgcGFyZW50TGF5b3V0LmxheW91dEJveCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYm94RXF1YWxzUm91bmRlZChyZWxhdGl2ZVNuYXBzaG90LCByZWxhdGl2ZUxheW91dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc1JlbGF0aXZlTGF5b3V0Q2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbGF0aXZlUGFyZW50Lm9wdGlvbnMubGF5b3V0Um9vdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5yZWxhdGl2ZVRhcmdldCA9IHJlbGF0aXZlTGF5b3V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5yZWxhdGl2ZVRhcmdldE9yaWdpbiA9IHJlbGF0aXZlU25hcHNob3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICBub2RlLnJlbGF0aXZlUGFyZW50ID0gcmVsYXRpdmVQYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbm9kZS5ub3RpZnlMaXN0ZW5lcnMoXCJkaWRVcGRhdGVcIiwge1xuICAgICAgICAgICAgbGF5b3V0LFxuICAgICAgICAgICAgc25hcHNob3QsXG4gICAgICAgICAgICBkZWx0YTogdmlzdWFsRGVsdGEsXG4gICAgICAgICAgICBsYXlvdXREZWx0YSxcbiAgICAgICAgICAgIGhhc0xheW91dENoYW5nZWQsXG4gICAgICAgICAgICBoYXNSZWxhdGl2ZUxheW91dENoYW5nZWQsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBlbHNlIGlmIChub2RlLmlzTGVhZCgpKSB7XG4gICAgICAgIGNvbnN0IHsgb25FeGl0Q29tcGxldGUgfSA9IG5vZGUub3B0aW9ucztcbiAgICAgICAgb25FeGl0Q29tcGxldGUgJiYgb25FeGl0Q29tcGxldGUoKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ2xlYXJpbmcgdHJhbnNpdGlvblxuICAgICAqIFRPRE86IEludmVzdGlnYXRlIHdoeSB0aGlzIHRyYW5zaXRpb24gaXMgYmVpbmcgcGFzc2VkIGluIGFzIHt0eXBlOiBmYWxzZSB9IGZyb20gRnJhbWVyXG4gICAgICogYW5kIHdoeSB3ZSBuZWVkIGl0IGF0IGFsbFxuICAgICAqL1xuICAgIG5vZGUub3B0aW9ucy50cmFuc2l0aW9uID0gdW5kZWZpbmVkO1xufVxuZnVuY3Rpb24gcHJvcGFnYXRlRGlydHlOb2Rlcyhub2RlKSB7XG4gICAgLyoqXG4gICAgICogSW5jcmVhc2UgZGVidWcgY291bnRlciBmb3Igbm9kZXMgZW5jb3VudGVyZWQgdGhpcyBmcmFtZVxuICAgICAqL1xuICAgIGlmIChzdGF0c0J1ZmZlci52YWx1ZSkge1xuICAgICAgICBtZXRyaWNzLm5vZGVzKys7XG4gICAgfVxuICAgIGlmICghbm9kZS5wYXJlbnQpXG4gICAgICAgIHJldHVybjtcbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIG5vZGUgaXNuJ3QgcHJvamVjdGluZywgcHJvcGFnYXRlIGlzUHJvamVjdGlvbkRpcnR5LiBJdCB3aWxsIGhhdmVcbiAgICAgKiBubyBwZXJmb3JtYW5jZSBpbXBhY3QgYnV0IGl0IHdpbGwgYWxsb3cgdGhlIG5leHQgY2hpbGQgdGhhdCAqaXMqIHByb2plY3RpbmdcbiAgICAgKiBidXQgKmlzbid0KiBkaXJ0eSB0byBqdXN0IGNoZWNrIGl0cyBwYXJlbnQgdG8gc2VlIGlmICphbnkqIGFuY2VzdG9yIG5lZWRzXG4gICAgICogY29ycmVjdGluZy5cbiAgICAgKi9cbiAgICBpZiAoIW5vZGUuaXNQcm9qZWN0aW5nKCkpIHtcbiAgICAgICAgbm9kZS5pc1Byb2plY3Rpb25EaXJ0eSA9IG5vZGUucGFyZW50LmlzUHJvamVjdGlvbkRpcnR5O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBQcm9wYWdhdGUgaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgYW5kIGlzVHJhbnNmb3JtRGlydHlcbiAgICAgKiB0aHJvdWdob3V0IHRoZSB3aG9sZSB0cmVlLiBBIGZ1dHVyZSByZXZpc2lvbiBjYW4gdGFrZSBhbm90aGVyIGxvb2sgYXRcbiAgICAgKiB0aGlzIGJ1dCBmb3Igc2FmZXR5IHdlIHN0aWxsIHJlY2FsY3VhbHRlIHNoYXJlZCBub2Rlcy5cbiAgICAgKi9cbiAgICBub2RlLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5IHx8IChub2RlLmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5ID0gQm9vbGVhbihub2RlLmlzUHJvamVjdGlvbkRpcnR5IHx8XG4gICAgICAgIG5vZGUucGFyZW50LmlzUHJvamVjdGlvbkRpcnR5IHx8XG4gICAgICAgIG5vZGUucGFyZW50LmlzU2hhcmVkUHJvamVjdGlvbkRpcnR5KSk7XG4gICAgbm9kZS5pc1RyYW5zZm9ybURpcnR5IHx8IChub2RlLmlzVHJhbnNmb3JtRGlydHkgPSBub2RlLnBhcmVudC5pc1RyYW5zZm9ybURpcnR5KTtcbn1cbmZ1bmN0aW9uIGNsZWFuRGlydHlOb2Rlcyhub2RlKSB7XG4gICAgbm9kZS5pc1Byb2plY3Rpb25EaXJ0eSA9XG4gICAgICAgIG5vZGUuaXNTaGFyZWRQcm9qZWN0aW9uRGlydHkgPVxuICAgICAgICAgICAgbm9kZS5pc1RyYW5zZm9ybURpcnR5ID1cbiAgICAgICAgICAgICAgICBmYWxzZTtcbn1cbmZ1bmN0aW9uIGNsZWFyU25hcHNob3Qobm9kZSkge1xuICAgIG5vZGUuY2xlYXJTbmFwc2hvdCgpO1xufVxuZnVuY3Rpb24gY2xlYXJNZWFzdXJlbWVudHMobm9kZSkge1xuICAgIG5vZGUuY2xlYXJNZWFzdXJlbWVudHMoKTtcbn1cbmZ1bmN0aW9uIGNsZWFySXNMYXlvdXREaXJ0eShub2RlKSB7XG4gICAgbm9kZS5pc0xheW91dERpcnR5ID0gZmFsc2U7XG59XG5mdW5jdGlvbiByZXNldFRyYW5zZm9ybVN0eWxlKG5vZGUpIHtcbiAgICBjb25zdCB7IHZpc3VhbEVsZW1lbnQgfSA9IG5vZGUub3B0aW9ucztcbiAgICBpZiAodmlzdWFsRWxlbWVudCAmJiB2aXN1YWxFbGVtZW50LmdldFByb3BzKCkub25CZWZvcmVMYXlvdXRNZWFzdXJlKSB7XG4gICAgICAgIHZpc3VhbEVsZW1lbnQubm90aWZ5KFwiQmVmb3JlTGF5b3V0TWVhc3VyZVwiKTtcbiAgICB9XG4gICAgbm9kZS5yZXNldFRyYW5zZm9ybSgpO1xufVxuZnVuY3Rpb24gZmluaXNoQW5pbWF0aW9uKG5vZGUpIHtcbiAgICBub2RlLmZpbmlzaEFuaW1hdGlvbigpO1xuICAgIG5vZGUudGFyZ2V0RGVsdGEgPSBub2RlLnJlbGF0aXZlVGFyZ2V0ID0gbm9kZS50YXJnZXQgPSB1bmRlZmluZWQ7XG4gICAgbm9kZS5pc1Byb2plY3Rpb25EaXJ0eSA9IHRydWU7XG59XG5mdW5jdGlvbiByZXNvbHZlVGFyZ2V0RGVsdGEobm9kZSkge1xuICAgIG5vZGUucmVzb2x2ZVRhcmdldERlbHRhKCk7XG59XG5mdW5jdGlvbiBjYWxjUHJvamVjdGlvbihub2RlKSB7XG4gICAgbm9kZS5jYWxjUHJvamVjdGlvbigpO1xufVxuZnVuY3Rpb24gcmVzZXRTa2V3QW5kUm90YXRpb24obm9kZSkge1xuICAgIG5vZGUucmVzZXRTa2V3QW5kUm90YXRpb24oKTtcbn1cbmZ1bmN0aW9uIHJlbW92ZUxlYWRTbmFwc2hvdHMoc3RhY2spIHtcbiAgICBzdGFjay5yZW1vdmVMZWFkU25hcHNob3QoKTtcbn1cbmZ1bmN0aW9uIG1peEF4aXNEZWx0YShvdXRwdXQsIGRlbHRhLCBwKSB7XG4gICAgb3V0cHV0LnRyYW5zbGF0ZSA9IG1peE51bWJlcihkZWx0YS50cmFuc2xhdGUsIDAsIHApO1xuICAgIG91dHB1dC5zY2FsZSA9IG1peE51bWJlcihkZWx0YS5zY2FsZSwgMSwgcCk7XG4gICAgb3V0cHV0Lm9yaWdpbiA9IGRlbHRhLm9yaWdpbjtcbiAgICBvdXRwdXQub3JpZ2luUG9pbnQgPSBkZWx0YS5vcmlnaW5Qb2ludDtcbn1cbmZ1bmN0aW9uIG1peEF4aXMob3V0cHV0LCBmcm9tLCB0bywgcCkge1xuICAgIG91dHB1dC5taW4gPSBtaXhOdW1iZXIoZnJvbS5taW4sIHRvLm1pbiwgcCk7XG4gICAgb3V0cHV0Lm1heCA9IG1peE51bWJlcihmcm9tLm1heCwgdG8ubWF4LCBwKTtcbn1cbmZ1bmN0aW9uIG1peEJveChvdXRwdXQsIGZyb20sIHRvLCBwKSB7XG4gICAgbWl4QXhpcyhvdXRwdXQueCwgZnJvbS54LCB0by54LCBwKTtcbiAgICBtaXhBeGlzKG91dHB1dC55LCBmcm9tLnksIHRvLnksIHApO1xufVxuZnVuY3Rpb24gaGFzT3BhY2l0eUNyb3NzZmFkZShub2RlKSB7XG4gICAgcmV0dXJuIChub2RlLmFuaW1hdGlvblZhbHVlcyAmJiBub2RlLmFuaW1hdGlvblZhbHVlcy5vcGFjaXR5RXhpdCAhPT0gdW5kZWZpbmVkKTtcbn1cbmNvbnN0IGRlZmF1bHRMYXlvdXRUcmFuc2l0aW9uID0ge1xuICAgIGR1cmF0aW9uOiAwLjQ1LFxuICAgIGVhc2U6IFswLjQsIDAsIDAuMSwgMV0sXG59O1xuY29uc3QgdXNlckFnZW50Q29udGFpbnMgPSAoc3RyaW5nKSA9PiB0eXBlb2YgbmF2aWdhdG9yICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgbmF2aWdhdG9yLnVzZXJBZ2VudCAmJlxuICAgIG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzdHJpbmcpO1xuLyoqXG4gKiBNZWFzdXJlZCBib3VuZGluZyBib3hlcyBtdXN0IGJlIHJvdW5kZWQgaW4gU2FmYXJpIGFuZFxuICogbGVmdCB1bnRvdWNoZWQgaW4gQ2hyb21lLCBvdGhlcndpc2Ugbm9uLWludGVnZXIgbGF5b3V0cyB3aXRoaW4gc2NhbGVkLXVwIGVsZW1lbnRzXG4gKiBjYW4gYXBwZWFyIHRvIGp1bXAuXG4gKi9cbmNvbnN0IHJvdW5kUG9pbnQgPSB1c2VyQWdlbnRDb250YWlucyhcImFwcGxld2Via2l0L1wiKSAmJiAhdXNlckFnZW50Q29udGFpbnMoXCJjaHJvbWUvXCIpXG4gICAgPyBNYXRoLnJvdW5kXG4gICAgOiBub29wO1xuZnVuY3Rpb24gcm91bmRBeGlzKGF4aXMpIHtcbiAgICAvLyBSb3VuZCB0byB0aGUgbmVhcmVzdCAuNSBwaXhlbHMgdG8gc3VwcG9ydCBzdWJwaXhlbCBsYXlvdXRzXG4gICAgYXhpcy5taW4gPSByb3VuZFBvaW50KGF4aXMubWluKTtcbiAgICBheGlzLm1heCA9IHJvdW5kUG9pbnQoYXhpcy5tYXgpO1xufVxuZnVuY3Rpb24gcm91bmRCb3goYm94KSB7XG4gICAgcm91bmRBeGlzKGJveC54KTtcbiAgICByb3VuZEF4aXMoYm94LnkpO1xufVxuZnVuY3Rpb24gc2hvdWxkQW5pbWF0ZVBvc2l0aW9uT25seShhbmltYXRpb25UeXBlLCBzbmFwc2hvdCwgbGF5b3V0KSB7XG4gICAgcmV0dXJuIChhbmltYXRpb25UeXBlID09PSBcInBvc2l0aW9uXCIgfHxcbiAgICAgICAgKGFuaW1hdGlvblR5cGUgPT09IFwicHJlc2VydmUtYXNwZWN0XCIgJiZcbiAgICAgICAgICAgICFpc05lYXIoYXNwZWN0UmF0aW8oc25hcHNob3QpLCBhc3BlY3RSYXRpbyhsYXlvdXQpLCAwLjIpKSk7XG59XG5mdW5jdGlvbiBjaGVja05vZGVXYXNTY3JvbGxSb290KG5vZGUpIHtcbiAgICByZXR1cm4gbm9kZSAhPT0gbm9kZS5yb290ICYmIG5vZGUuc2Nyb2xsPy53YXNSb290O1xufVxuXG5leHBvcnQgeyBjbGVhbkRpcnR5Tm9kZXMsIGNyZWF0ZVByb2plY3Rpb25Ob2RlLCBtaXhBeGlzLCBtaXhBeGlzRGVsdGEsIG1peEJveCwgcHJvcGFnYXRlRGlydHlOb2RlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3JlYXRlLXByb2plY3Rpb24tbm9kZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/state.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/node/state.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ globalProjectionState: () => (/* binding */ globalProjectionState)\n/* harmony export */ });\n/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\n\n//# sourceMappingURL=state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9ub2RlL3N0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vbm9kZS9zdGF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGlzIHNob3VsZCBvbmx5IGV2ZXIgYmUgbW9kaWZpZWQgb24gdGhlIGNsaWVudCBvdGhlcndpc2UgaXQnbGxcbiAqIHBlcnNpc3QgdGhyb3VnaCBzZXJ2ZXIgcmVxdWVzdHMuIElmIHdlIG5lZWQgaW5zdGFuY2VkIHN0YXRlcyB3ZVxuICogY291bGQgbGF6eS1pbml0IHZpYSByb290LlxuICovXG5jb25zdCBnbG9iYWxQcm9qZWN0aW9uU3RhdGUgPSB7XG4gICAgLyoqXG4gICAgICogR2xvYmFsIGZsYWcgYXMgdG8gd2hldGhlciB0aGUgdHJlZSBoYXMgYW5pbWF0ZWQgc2luY2UgdGhlIGxhc3QgdGltZVxuICAgICAqIHdlIHJlc2l6ZWQgdGhlIHdpbmRvd1xuICAgICAqL1xuICAgIGhhc0FuaW1hdGVkU2luY2VSZXNpemU6IHRydWUsXG4gICAgLyoqXG4gICAgICogV2Ugc2V0IHRoaXMgdG8gdHJ1ZSBvbmNlLCBvbiB0aGUgZmlyc3QgdXBkYXRlLiBBbnkgbm9kZXMgYWRkZWQgdG8gdGhlIHRyZWUgYmV5b25kIHRoYXRcbiAgICAgKiB1cGRhdGUgd2lsbCBiZSBnaXZlbiBhIGBkYXRhLXByb2plY3Rpb24taWRgIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBoYXNFdmVyVXBkYXRlZDogZmFsc2UsXG59O1xuXG5leHBvcnQgeyBnbG9iYWxQcm9qZWN0aW9uU3RhdGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0YXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/node/state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/shared/stack.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/shared/stack.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ NodeStack: () => (/* binding */ NodeStack)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\");\n\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.members, node);\n for (let i = this.members.length - 1; i >= 0; i--) {\n const m = this.members[i];\n if (m === node || m === this.lead || m === this.prevLead)\n continue;\n const inst = m.instance;\n if (inst && inst.isConnected === false && m.isPresent !== false && !m.snapshot) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.members, m);\n }\n }\n node.scheduleRender();\n }\n remove(node) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n const inst = member.instance;\n if (member.isPresent !== false && (!inst || inst.isConnected !== false)) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n /**\n * If both the new and previous lead have the same defined layoutDependency,\n * skip the shared layout animation. This allows components with layoutId\n * to opt-out of animations when their layoutDependency hasn't changed,\n * even when the component unmounts and remounts in a different location.\n */\n const prevDep = prevLead.options.layoutDependency;\n const nextDep = node.options.layoutDependency;\n const dependencyMatches = prevDep !== undefined &&\n nextDep !== undefined &&\n prevDep === nextDep;\n if (!dependencyMatches) {\n const prevInstance = prevLead.instance;\n const isStale = prevInstance && prevInstance.isConnected === false && !prevLead.snapshot;\n if (!isStale) {\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if (node.root && node.root.isUpdating) {\n node.isLayoutDirty = true;\n }\n }\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n const { options, resumingFrom } = node;\n options.onExitComplete && options.onExitComplete();\n if (resumingFrom) {\n resumingFrom.options.onExitComplete &&\n resumingFrom.options.onExitComplete();\n }\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\n\n//# sourceMappingURL=stack.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zaGFyZWQvc3RhY2subWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXlEOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwyREFBYTtBQUNyQiw4Q0FBOEMsUUFBUTtBQUN0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHdEQUFVO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHdEQUFVO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxRQUFRO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixZQUFZO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHdCQUF3QjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXFCO0FBQ3JCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3NoYXJlZC9zdGFjay5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkVW5pcXVlSXRlbSwgcmVtb3ZlSXRlbSB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5cbmNsYXNzIE5vZGVTdGFjayB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMubWVtYmVycyA9IFtdO1xuICAgIH1cbiAgICBhZGQobm9kZSkge1xuICAgICAgICBhZGRVbmlxdWVJdGVtKHRoaXMubWVtYmVycywgbm9kZSk7XG4gICAgICAgIGZvciAobGV0IGkgPSB0aGlzLm1lbWJlcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGNvbnN0IG0gPSB0aGlzLm1lbWJlcnNbaV07XG4gICAgICAgICAgICBpZiAobSA9PT0gbm9kZSB8fCBtID09PSB0aGlzLmxlYWQgfHwgbSA9PT0gdGhpcy5wcmV2TGVhZClcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIGNvbnN0IGluc3QgPSBtLmluc3RhbmNlO1xuICAgICAgICAgICAgaWYgKGluc3QgJiYgaW5zdC5pc0Nvbm5lY3RlZCA9PT0gZmFsc2UgJiYgbS5pc1ByZXNlbnQgIT09IGZhbHNlICYmICFtLnNuYXBzaG90KSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlSXRlbSh0aGlzLm1lbWJlcnMsIG0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG5vZGUuc2NoZWR1bGVSZW5kZXIoKTtcbiAgICB9XG4gICAgcmVtb3ZlKG5vZGUpIHtcbiAgICAgICAgcmVtb3ZlSXRlbSh0aGlzLm1lbWJlcnMsIG5vZGUpO1xuICAgICAgICBpZiAobm9kZSA9PT0gdGhpcy5wcmV2TGVhZCkge1xuICAgICAgICAgICAgdGhpcy5wcmV2TGVhZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAobm9kZSA9PT0gdGhpcy5sZWFkKSB7XG4gICAgICAgICAgICBjb25zdCBwcmV2TGVhZCA9IHRoaXMubWVtYmVyc1t0aGlzLm1lbWJlcnMubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICBpZiAocHJldkxlYWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb21vdGUocHJldkxlYWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJlbGVnYXRlKG5vZGUpIHtcbiAgICAgICAgY29uc3QgaW5kZXhPZk5vZGUgPSB0aGlzLm1lbWJlcnMuZmluZEluZGV4KChtZW1iZXIpID0+IG5vZGUgPT09IG1lbWJlcik7XG4gICAgICAgIGlmIChpbmRleE9mTm9kZSA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEZpbmQgdGhlIG5leHQgcHJvamVjdGlvbiBub2RlIHRoYXQgaXMgcHJlc2VudFxuICAgICAgICAgKi9cbiAgICAgICAgbGV0IHByZXZMZWFkO1xuICAgICAgICBmb3IgKGxldCBpID0gaW5kZXhPZk5vZGU7IGkgPj0gMDsgaS0tKSB7XG4gICAgICAgICAgICBjb25zdCBtZW1iZXIgPSB0aGlzLm1lbWJlcnNbaV07XG4gICAgICAgICAgICBjb25zdCBpbnN0ID0gbWVtYmVyLmluc3RhbmNlO1xuICAgICAgICAgICAgaWYgKG1lbWJlci5pc1ByZXNlbnQgIT09IGZhbHNlICYmICghaW5zdCB8fCBpbnN0LmlzQ29ubmVjdGVkICE9PSBmYWxzZSkpIHtcbiAgICAgICAgICAgICAgICBwcmV2TGVhZCA9IG1lbWJlcjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAocHJldkxlYWQpIHtcbiAgICAgICAgICAgIHRoaXMucHJvbW90ZShwcmV2TGVhZCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm9tb3RlKG5vZGUsIHByZXNlcnZlRm9sbG93T3BhY2l0eSkge1xuICAgICAgICBjb25zdCBwcmV2TGVhZCA9IHRoaXMubGVhZDtcbiAgICAgICAgaWYgKG5vZGUgPT09IHByZXZMZWFkKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0aGlzLnByZXZMZWFkID0gcHJldkxlYWQ7XG4gICAgICAgIHRoaXMubGVhZCA9IG5vZGU7XG4gICAgICAgIG5vZGUuc2hvdygpO1xuICAgICAgICBpZiAocHJldkxlYWQpIHtcbiAgICAgICAgICAgIHByZXZMZWFkLmluc3RhbmNlICYmIHByZXZMZWFkLnNjaGVkdWxlUmVuZGVyKCk7XG4gICAgICAgICAgICBub2RlLnNjaGVkdWxlUmVuZGVyKCk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIGJvdGggdGhlIG5ldyBhbmQgcHJldmlvdXMgbGVhZCBoYXZlIHRoZSBzYW1lIGRlZmluZWQgbGF5b3V0RGVwZW5kZW5jeSxcbiAgICAgICAgICAgICAqIHNraXAgdGhlIHNoYXJlZCBsYXlvdXQgYW5pbWF0aW9uLiBUaGlzIGFsbG93cyBjb21wb25lbnRzIHdpdGggbGF5b3V0SWRcbiAgICAgICAgICAgICAqIHRvIG9wdC1vdXQgb2YgYW5pbWF0aW9ucyB3aGVuIHRoZWlyIGxheW91dERlcGVuZGVuY3kgaGFzbid0IGNoYW5nZWQsXG4gICAgICAgICAgICAgKiBldmVuIHdoZW4gdGhlIGNvbXBvbmVudCB1bm1vdW50cyBhbmQgcmVtb3VudHMgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IHByZXZEZXAgPSBwcmV2TGVhZC5vcHRpb25zLmxheW91dERlcGVuZGVuY3k7XG4gICAgICAgICAgICBjb25zdCBuZXh0RGVwID0gbm9kZS5vcHRpb25zLmxheW91dERlcGVuZGVuY3k7XG4gICAgICAgICAgICBjb25zdCBkZXBlbmRlbmN5TWF0Y2hlcyA9IHByZXZEZXAgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIG5leHREZXAgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgICAgIHByZXZEZXAgPT09IG5leHREZXA7XG4gICAgICAgICAgICBpZiAoIWRlcGVuZGVuY3lNYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJldkluc3RhbmNlID0gcHJldkxlYWQuaW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNTdGFsZSA9IHByZXZJbnN0YW5jZSAmJiBwcmV2SW5zdGFuY2UuaXNDb25uZWN0ZWQgPT09IGZhbHNlICYmICFwcmV2TGVhZC5zbmFwc2hvdDtcbiAgICAgICAgICAgICAgICBpZiAoIWlzU3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5yZXN1bWVGcm9tID0gcHJldkxlYWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmVzZXJ2ZUZvbGxvd09wYWNpdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vZGUucmVzdW1lRnJvbS5wcmVzZXJ2ZU9wYWNpdHkgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2TGVhZC5zbmFwc2hvdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5zbmFwc2hvdCA9IHByZXZMZWFkLnNuYXBzaG90O1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5zbmFwc2hvdC5sYXRlc3RWYWx1ZXMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZMZWFkLmFuaW1hdGlvblZhbHVlcyB8fCBwcmV2TGVhZC5sYXRlc3RWYWx1ZXM7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUucm9vdCAmJiBub2RlLnJvb3QuaXNVcGRhdGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS5pc0xheW91dERpcnR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHsgY3Jvc3NmYWRlIH0gPSBub2RlLm9wdGlvbnM7XG4gICAgICAgICAgICBpZiAoY3Jvc3NmYWRlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHByZXZMZWFkLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBleGl0QW5pbWF0aW9uQ29tcGxldGUoKSB7XG4gICAgICAgIHRoaXMubWVtYmVycy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IG9wdGlvbnMsIHJlc3VtaW5nRnJvbSB9ID0gbm9kZTtcbiAgICAgICAgICAgIG9wdGlvbnMub25FeGl0Q29tcGxldGUgJiYgb3B0aW9ucy5vbkV4aXRDb21wbGV0ZSgpO1xuICAgICAgICAgICAgaWYgKHJlc3VtaW5nRnJvbSkge1xuICAgICAgICAgICAgICAgIHJlc3VtaW5nRnJvbS5vcHRpb25zLm9uRXhpdENvbXBsZXRlICYmXG4gICAgICAgICAgICAgICAgICAgIHJlc3VtaW5nRnJvbS5vcHRpb25zLm9uRXhpdENvbXBsZXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzY2hlZHVsZVJlbmRlcigpIHtcbiAgICAgICAgdGhpcy5tZW1iZXJzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgICAgICAgIG5vZGUuaW5zdGFuY2UgJiYgbm9kZS5zY2hlZHVsZVJlbmRlcihmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDbGVhciBhbnkgbGVhZHMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCB0aGlzIHJlbmRlciB0byBwcmV2ZW50IHRoZW0gZnJvbSBiZWluZ1xuICAgICAqIHVzZWQgaW4gZnV0dXJlIGFuaW1hdGlvbnMgYW5kIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzXG4gICAgICovXG4gICAgcmVtb3ZlTGVhZFNuYXBzaG90KCkge1xuICAgICAgICBpZiAodGhpcy5sZWFkICYmIHRoaXMubGVhZC5zbmFwc2hvdCkge1xuICAgICAgICAgICAgdGhpcy5sZWFkLnNuYXBzaG90ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgeyBOb2RlU3RhY2sgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN0YWNrLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/shared/stack.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ correctBorderRadius: () => (/* binding */ correctBorderRadius),\n/* harmony export */ pixelsToPercent: () => (/* binding */ pixelsToPercent)\n/* harmony export */ });\n/* harmony import */ var _value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (_value_types_numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\n\n//# sourceMappingURL=scale-border-radius.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtYm9yZGVyLXJhZGl1cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQXlEOztBQUV6RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsOERBQUU7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLEVBQUUsSUFBSSxFQUFFO0FBQzFCLEtBQUs7QUFDTDs7QUFFZ0Q7QUFDaEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWJvcmRlci1yYWRpdXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHB4IH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMnO1xuXG5mdW5jdGlvbiBwaXhlbHNUb1BlcmNlbnQocGl4ZWxzLCBheGlzKSB7XG4gICAgaWYgKGF4aXMubWF4ID09PSBheGlzLm1pbilcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgcmV0dXJuIChwaXhlbHMgLyAoYXhpcy5tYXggLSBheGlzLm1pbikpICogMTAwO1xufVxuLyoqXG4gKiBXZSBhbHdheXMgY29ycmVjdCBib3JkZXJSYWRpdXMgYXMgYSBwZXJjZW50YWdlIHJhdGhlciB0aGFuIHBpeGVscyB0byByZWR1Y2UgcGFpbnRzLlxuICogRm9yIGV4YW1wbGUsIGlmIHlvdSBhcmUgcHJvamVjdGluZyBhIGJveCB0aGF0IGlzIDEwMHB4IHdpZGUgd2l0aCBhIDEwcHggYm9yZGVyUmFkaXVzXG4gKiBpbnRvIGEgYm94IHRoYXQgaXMgMjAwcHggd2lkZSB3aXRoIGEgMjBweCBib3JkZXJSYWRpdXMsIHRoYXQgaXMgYWN0dWFsbHkgYSAxMCVcbiAqIGJvcmRlclJhZGl1cyBpbiBib3RoIHN0YXRlcy4gSWYgd2UgYW5pbWF0ZSBiZXR3ZWVuIHRoZSB0d28gaW4gcGl4ZWxzIHRoYXQgd2lsbCB0cmlnZ2VyXG4gKiBhIHBhaW50IGVhY2ggdGltZS4gSWYgd2UgYW5pbWF0ZSBiZXR3ZWVuIHRoZSB0d28gaW4gcGVyY2VudGFnZSB3ZSdsbCBhdm9pZCBhIHBhaW50LlxuICovXG5jb25zdCBjb3JyZWN0Qm9yZGVyUmFkaXVzID0ge1xuICAgIGNvcnJlY3Q6IChsYXRlc3QsIG5vZGUpID0+IHtcbiAgICAgICAgaWYgKCFub2RlLnRhcmdldClcbiAgICAgICAgICAgIHJldHVybiBsYXRlc3Q7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBsYXRlc3QgaXMgYSBzdHJpbmcsIGlmIGl0J3MgYSBwZXJjZW50YWdlIHdlIGNhbiByZXR1cm4gaW1tZWRpYXRlbHkgYXMgaXQnc1xuICAgICAgICAgKiBnb2luZyB0byBiZSBzdHJldGNoZWQgYXBwcm9wcmlhdGVseS4gT3RoZXJ3aXNlLCBpZiBpdCdzIGEgcGl4ZWwsIGNvbnZlcnQgaXQgdG8gYSBudW1iZXIuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodHlwZW9mIGxhdGVzdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgaWYgKHB4LnRlc3QobGF0ZXN0KSkge1xuICAgICAgICAgICAgICAgIGxhdGVzdCA9IHBhcnNlRmxvYXQobGF0ZXN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBsYXRlc3Q7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIElmIGxhdGVzdCBpcyBhIG51bWJlciwgaXQncyBhIHBpeGVsIHZhbHVlLiBXZSB1c2UgdGhlIGN1cnJlbnQgdmlld3BvcnRCb3ggdG8gY2FsY3VsYXRlIHRoYXRcbiAgICAgICAgICogcGl4ZWwgdmFsdWUgYXMgYSBwZXJjZW50YWdlIG9mIGVhY2ggYXhpc1xuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgeCA9IHBpeGVsc1RvUGVyY2VudChsYXRlc3QsIG5vZGUudGFyZ2V0LngpO1xuICAgICAgICBjb25zdCB5ID0gcGl4ZWxzVG9QZXJjZW50KGxhdGVzdCwgbm9kZS50YXJnZXQueSk7XG4gICAgICAgIHJldHVybiBgJHt4fSUgJHt5fSVgO1xuICAgIH0sXG59O1xuXG5leHBvcnQgeyBjb3JyZWN0Qm9yZGVyUmFkaXVzLCBwaXhlbHNUb1BlcmNlbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjYWxlLWJvcmRlci1yYWRpdXMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ correctBoxShadow: () => (/* binding */ correctBoxShadow)\n/* harmony export */ });\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/mix/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = (0,_utils_mix_number_mjs__WEBPACK_IMPORTED_MODULE_1__.mixNumber)(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\n\n//# sourceMappingURL=scale-box-shadow.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtYm94LXNoYWRvdy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQThEO0FBQ1A7O0FBRXZEO0FBQ0Esd0JBQXdCLDRCQUE0QjtBQUNwRDtBQUNBLHVCQUF1QixtRUFBTztBQUM5QjtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsbUVBQU87QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGdFQUFTO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtYm94LXNoYWRvdy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGxleCB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzJztcbmltcG9ydCB7IG1peE51bWJlciB9IGZyb20gJy4uLy4uL3V0aWxzL21peC9udW1iZXIubWpzJztcblxuY29uc3QgY29ycmVjdEJveFNoYWRvdyA9IHtcbiAgICBjb3JyZWN0OiAobGF0ZXN0LCB7IHRyZWVTY2FsZSwgcHJvamVjdGlvbkRlbHRhIH0pID0+IHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSBsYXRlc3Q7XG4gICAgICAgIGNvbnN0IHNoYWRvdyA9IGNvbXBsZXgucGFyc2UobGF0ZXN0KTtcbiAgICAgICAgLy8gVE9ETzogRG9lc24ndCBzdXBwb3J0IG11bHRpcGxlIHNoYWRvd3NcbiAgICAgICAgaWYgKHNoYWRvdy5sZW5ndGggPiA1KVxuICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsO1xuICAgICAgICBjb25zdCB0ZW1wbGF0ZSA9IGNvbXBsZXguY3JlYXRlVHJhbnNmb3JtZXIobGF0ZXN0KTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdHlwZW9mIHNoYWRvd1swXSAhPT0gXCJudW1iZXJcIiA/IDEgOiAwO1xuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG92ZXJhbGwgY29udGV4dCBzY2FsZVxuICAgICAgICBjb25zdCB4U2NhbGUgPSBwcm9qZWN0aW9uRGVsdGEueC5zY2FsZSAqIHRyZWVTY2FsZS54O1xuICAgICAgICBjb25zdCB5U2NhbGUgPSBwcm9qZWN0aW9uRGVsdGEueS5zY2FsZSAqIHRyZWVTY2FsZS55O1xuICAgICAgICBzaGFkb3dbMCArIG9mZnNldF0gLz0geFNjYWxlO1xuICAgICAgICBzaGFkb3dbMSArIG9mZnNldF0gLz0geVNjYWxlO1xuICAgICAgICAvKipcbiAgICAgICAgICogSWRlYWxseSB3ZSdkIGNvcnJlY3QgeCBhbmQgeSBzY2FsZXMgaW5kaXZpZHVhbGx5LCBidXQgYmVjYXVzZSBibHVyIGFuZFxuICAgICAgICAgKiBzcHJlYWQgYXBwbHkgdG8gYm90aCB3ZSBoYXZlIHRvIHRha2UgYSBzY2FsZSBhdmVyYWdlIGFuZCBhcHBseSB0aGF0IGluc3RlYWQuXG4gICAgICAgICAqIFdlIGNvdWxkIHBvdGVudGlhbGx5IGltcHJvdmUgdGhlIG91dGNvbWUgb2YgdGhpcyBieSBpbmNvcnBvcmF0aW5nIHRoZSByYXRpbyBiZXR3ZWVuXG4gICAgICAgICAqIHRoZSB0d28gc2NhbGVzLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgYXZlcmFnZVNjYWxlID0gbWl4TnVtYmVyKHhTY2FsZSwgeVNjYWxlLCAwLjUpO1xuICAgICAgICAvLyBCbHVyXG4gICAgICAgIGlmICh0eXBlb2Ygc2hhZG93WzIgKyBvZmZzZXRdID09PSBcIm51bWJlclwiKVxuICAgICAgICAgICAgc2hhZG93WzIgKyBvZmZzZXRdIC89IGF2ZXJhZ2VTY2FsZTtcbiAgICAgICAgLy8gU3ByZWFkXG4gICAgICAgIGlmICh0eXBlb2Ygc2hhZG93WzMgKyBvZmZzZXRdID09PSBcIm51bWJlclwiKVxuICAgICAgICAgICAgc2hhZG93WzMgKyBvZmZzZXRdIC89IGF2ZXJhZ2VTY2FsZTtcbiAgICAgICAgcmV0dXJuIHRlbXBsYXRlKHNoYWRvdyk7XG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IGNvcnJlY3RCb3hTaGFkb3cgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjYWxlLWJveC1zaGFkb3cubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addScaleCorrector: () => (/* binding */ addScaleCorrector),\n/* harmony export */ scaleCorrectors: () => (/* binding */ scaleCorrectors)\n/* harmony export */ });\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../animation/utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scale-border-radius.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs\");\n/* harmony import */ var _scale_box_shadow_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./scale-box-shadow.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs\");\n\n\n\n\nconst scaleCorrectors = {\n borderRadius: {\n ..._scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n borderTopRightRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n borderBottomLeftRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n borderBottomRightRadius: _scale_border_radius_mjs__WEBPACK_IMPORTED_MODULE_0__.correctBorderRadius,\n boxShadow: _scale_box_shadow_mjs__WEBPACK_IMPORTED_MODULE_1__.correctBoxShadow,\n};\nfunction addScaleCorrector(correctors) {\n for (const key in correctors) {\n scaleCorrectors[key] = correctors[key];\n if ((0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_2__.isCSSVariableName)(key)) {\n scaleCorrectors[key].isCSSVariable = true;\n }\n }\n}\n\n\n//# sourceMappingURL=scale-correction.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtY29ycmVjdGlvbi5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBOEU7QUFDZDtBQUNOOztBQUUxRDtBQUNBO0FBQ0EsV0FBVyx5RUFBbUI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLHlCQUF5Qix5RUFBbUI7QUFDNUMsMEJBQTBCLHlFQUFtQjtBQUM3Qyw0QkFBNEIseUVBQW1CO0FBQy9DLDZCQUE2Qix5RUFBbUI7QUFDaEQsZUFBZSxtRUFBZ0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHVGQUFpQjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTs7QUFFOEM7QUFDOUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWNvcnJlY3Rpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQ1NTVmFyaWFibGVOYW1lIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL3V0aWxzL2lzLWNzcy12YXJpYWJsZS5tanMnO1xuaW1wb3J0IHsgY29ycmVjdEJvcmRlclJhZGl1cyB9IGZyb20gJy4vc2NhbGUtYm9yZGVyLXJhZGl1cy5tanMnO1xuaW1wb3J0IHsgY29ycmVjdEJveFNoYWRvdyB9IGZyb20gJy4vc2NhbGUtYm94LXNoYWRvdy5tanMnO1xuXG5jb25zdCBzY2FsZUNvcnJlY3RvcnMgPSB7XG4gICAgYm9yZGVyUmFkaXVzOiB7XG4gICAgICAgIC4uLmNvcnJlY3RCb3JkZXJSYWRpdXMsXG4gICAgICAgIGFwcGx5VG86IFtcbiAgICAgICAgICAgIFwiYm9yZGVyVG9wTGVmdFJhZGl1c1wiLFxuICAgICAgICAgICAgXCJib3JkZXJUb3BSaWdodFJhZGl1c1wiLFxuICAgICAgICAgICAgXCJib3JkZXJCb3R0b21MZWZ0UmFkaXVzXCIsXG4gICAgICAgICAgICBcImJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzXCIsXG4gICAgICAgIF0sXG4gICAgfSxcbiAgICBib3JkZXJUb3BMZWZ0UmFkaXVzOiBjb3JyZWN0Qm9yZGVyUmFkaXVzLFxuICAgIGJvcmRlclRvcFJpZ2h0UmFkaXVzOiBjb3JyZWN0Qm9yZGVyUmFkaXVzLFxuICAgIGJvcmRlckJvdHRvbUxlZnRSYWRpdXM6IGNvcnJlY3RCb3JkZXJSYWRpdXMsXG4gICAgYm9yZGVyQm90dG9tUmlnaHRSYWRpdXM6IGNvcnJlY3RCb3JkZXJSYWRpdXMsXG4gICAgYm94U2hhZG93OiBjb3JyZWN0Qm94U2hhZG93LFxufTtcbmZ1bmN0aW9uIGFkZFNjYWxlQ29ycmVjdG9yKGNvcnJlY3RvcnMpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjb3JyZWN0b3JzKSB7XG4gICAgICAgIHNjYWxlQ29ycmVjdG9yc1trZXldID0gY29ycmVjdG9yc1trZXldO1xuICAgICAgICBpZiAoaXNDU1NWYXJpYWJsZU5hbWUoa2V5KSkge1xuICAgICAgICAgICAgc2NhbGVDb3JyZWN0b3JzW2tleV0uaXNDU1NWYXJpYWJsZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCB7IGFkZFNjYWxlQ29ycmVjdG9yLCBzY2FsZUNvcnJlY3RvcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjYWxlLWNvcnJlY3Rpb24ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/transform.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/styles/transform.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildProjectionTransform: () => (/* binding */ buildProjectionTransform)\n/* harmony export */ });\nfunction buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n const zTranslate = latestTransform?.z || 0;\n if (xTranslate || yTranslate || zTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY } = latestTransform;\n if (transformPerspective)\n transform = `perspective(${transformPerspective}px) ${transform}`;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n if (skewX)\n transform += `skewX(${skewX}deg) `;\n if (skewY)\n transform += `skewY(${skewY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\n\n//# sourceMappingURL=transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLFdBQVcsTUFBTSxXQUFXLE1BQU0sV0FBVztBQUNoRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsZ0JBQWdCLElBQUksZ0JBQWdCO0FBQ2xFO0FBQ0E7QUFDQSxnQkFBZ0IsK0RBQStEO0FBQy9FO0FBQ0EsdUNBQXVDLHFCQUFxQixNQUFNLFVBQVU7QUFDNUU7QUFDQSxtQ0FBbUMsT0FBTztBQUMxQztBQUNBLG9DQUFvQyxRQUFRO0FBQzVDO0FBQ0Esb0NBQW9DLFFBQVE7QUFDNUM7QUFDQSxrQ0FBa0MsTUFBTTtBQUN4QztBQUNBLGtDQUFrQyxNQUFNO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIsY0FBYyxJQUFJLGNBQWM7QUFDOUQ7QUFDQTtBQUNBOztBQUVvQztBQUNwQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi9zdHlsZXMvdHJhbnNmb3JtLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBidWlsZFByb2plY3Rpb25UcmFuc2Zvcm0oZGVsdGEsIHRyZWVTY2FsZSwgbGF0ZXN0VHJhbnNmb3JtKSB7XG4gICAgbGV0IHRyYW5zZm9ybSA9IFwiXCI7XG4gICAgLyoqXG4gICAgICogVGhlIHRyYW5zbGF0aW9ucyB3ZSB1c2UgdG8gY2FsY3VsYXRlIGFyZSBhbHdheXMgcmVsYXRpdmUgdG8gdGhlIHZpZXdwb3J0IGNvb3JkaW5hdGUgc3BhY2UuXG4gICAgICogQnV0IHdoZW4gd2UgYXBwbHkgc2NhbGVzLCB3ZSBhbHNvIHNjYWxlIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIGFuIGVsZW1lbnQgYW5kIGl0cyBjaGlsZHJlbi5cbiAgICAgKiBGb3IgaW5zdGFuY2UgaWYgd2UgaGF2ZSBhIHRyZWVTY2FsZSAodGhlIGN1bG1pbmF0aW9uIG9mIGFsbCBwYXJlbnQgc2NhbGVzKSBvZiAwLjUgYW5kIHdlIG5lZWRcbiAgICAgKiB0byBtb3ZlIGFuIGVsZW1lbnQgMTAwIHBpeGVscywgd2UgYWN0dWFsbHkgbmVlZCB0byBtb3ZlIGl0IDIwMCBpbiB3aXRoaW4gdGhhdCBzY2FsZWQgc3BhY2UuXG4gICAgICovXG4gICAgY29uc3QgeFRyYW5zbGF0ZSA9IGRlbHRhLngudHJhbnNsYXRlIC8gdHJlZVNjYWxlLng7XG4gICAgY29uc3QgeVRyYW5zbGF0ZSA9IGRlbHRhLnkudHJhbnNsYXRlIC8gdHJlZVNjYWxlLnk7XG4gICAgY29uc3QgelRyYW5zbGF0ZSA9IGxhdGVzdFRyYW5zZm9ybT8ueiB8fCAwO1xuICAgIGlmICh4VHJhbnNsYXRlIHx8IHlUcmFuc2xhdGUgfHwgelRyYW5zbGF0ZSkge1xuICAgICAgICB0cmFuc2Zvcm0gPSBgdHJhbnNsYXRlM2QoJHt4VHJhbnNsYXRlfXB4LCAke3lUcmFuc2xhdGV9cHgsICR7elRyYW5zbGF0ZX1weCkgYDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQXBwbHkgc2NhbGUgY29ycmVjdGlvbiBmb3IgdGhlIHRyZWUgdHJhbnNmb3JtLlxuICAgICAqIFRoaXMgd2lsbCBhcHBseSBzY2FsZSB0byB0aGUgc2NyZWVuLW9yaWVudGF0ZWQgYXhlcy5cbiAgICAgKi9cbiAgICBpZiAodHJlZVNjYWxlLnggIT09IDEgfHwgdHJlZVNjYWxlLnkgIT09IDEpIHtcbiAgICAgICAgdHJhbnNmb3JtICs9IGBzY2FsZSgkezEgLyB0cmVlU2NhbGUueH0sICR7MSAvIHRyZWVTY2FsZS55fSkgYDtcbiAgICB9XG4gICAgaWYgKGxhdGVzdFRyYW5zZm9ybSkge1xuICAgICAgICBjb25zdCB7IHRyYW5zZm9ybVBlcnNwZWN0aXZlLCByb3RhdGUsIHJvdGF0ZVgsIHJvdGF0ZVksIHNrZXdYLCBza2V3WSB9ID0gbGF0ZXN0VHJhbnNmb3JtO1xuICAgICAgICBpZiAodHJhbnNmb3JtUGVyc3BlY3RpdmUpXG4gICAgICAgICAgICB0cmFuc2Zvcm0gPSBgcGVyc3BlY3RpdmUoJHt0cmFuc2Zvcm1QZXJzcGVjdGl2ZX1weCkgJHt0cmFuc2Zvcm19YDtcbiAgICAgICAgaWYgKHJvdGF0ZSlcbiAgICAgICAgICAgIHRyYW5zZm9ybSArPSBgcm90YXRlKCR7cm90YXRlfWRlZykgYDtcbiAgICAgICAgaWYgKHJvdGF0ZVgpXG4gICAgICAgICAgICB0cmFuc2Zvcm0gKz0gYHJvdGF0ZVgoJHtyb3RhdGVYfWRlZykgYDtcbiAgICAgICAgaWYgKHJvdGF0ZVkpXG4gICAgICAgICAgICB0cmFuc2Zvcm0gKz0gYHJvdGF0ZVkoJHtyb3RhdGVZfWRlZykgYDtcbiAgICAgICAgaWYgKHNrZXdYKVxuICAgICAgICAgICAgdHJhbnNmb3JtICs9IGBza2V3WCgke3NrZXdYfWRlZykgYDtcbiAgICAgICAgaWYgKHNrZXdZKVxuICAgICAgICAgICAgdHJhbnNmb3JtICs9IGBza2V3WSgke3NrZXdZfWRlZykgYDtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQXBwbHkgc2NhbGUgdG8gbWF0Y2ggdGhlIHNpemUgb2YgdGhlIGVsZW1lbnQgdG8gdGhlIHNpemUgd2Ugd2FudCBpdC5cbiAgICAgKiBUaGlzIHdpbGwgYXBwbHkgc2NhbGUgdG8gdGhlIGVsZW1lbnQtb3JpZW50YXRlZCBheGVzLlxuICAgICAqL1xuICAgIGNvbnN0IGVsZW1lbnRTY2FsZVggPSBkZWx0YS54LnNjYWxlICogdHJlZVNjYWxlLng7XG4gICAgY29uc3QgZWxlbWVudFNjYWxlWSA9IGRlbHRhLnkuc2NhbGUgKiB0cmVlU2NhbGUueTtcbiAgICBpZiAoZWxlbWVudFNjYWxlWCAhPT0gMSB8fCBlbGVtZW50U2NhbGVZICE9PSAxKSB7XG4gICAgICAgIHRyYW5zZm9ybSArPSBgc2NhbGUoJHtlbGVtZW50U2NhbGVYfSwgJHtlbGVtZW50U2NhbGVZfSlgO1xuICAgIH1cbiAgICByZXR1cm4gdHJhbnNmb3JtIHx8IFwibm9uZVwiO1xufVxuXG5leHBvcnQgeyBidWlsZFByb2plY3Rpb25UcmFuc2Zvcm0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRyYW5zZm9ybS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ compareByDepth: () => (/* binding */ compareByDepth)\n/* harmony export */ });\nconst compareByDepth = (a, b) => a.depth - b.depth;\n\n\n//# sourceMappingURL=compare-by-depth.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9jb21wYXJlLWJ5LWRlcHRoLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRTBCO0FBQzFCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3V0aWxzL2NvbXBhcmUtYnktZGVwdGgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGNvbXBhcmVCeURlcHRoID0gKGEsIGIpID0+IGEuZGVwdGggLSBiLmRlcHRoO1xuXG5leHBvcnQgeyBjb21wYXJlQnlEZXB0aCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29tcGFyZS1ieS1kZXB0aC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ eachAxis: () => (/* binding */ eachAxis)\n/* harmony export */ });\nfunction eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\n\n//# sourceMappingURL=each-axis.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9lYWNoLWF4aXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3V0aWxzL2VhY2gtYXhpcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gZWFjaEF4aXMoY2FsbGJhY2spIHtcbiAgICByZXR1cm4gW2NhbGxiYWNrKFwieFwiKSwgY2FsbGJhY2soXCJ5XCIpXTtcbn1cblxuZXhwb3J0IHsgZWFjaEF4aXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVhY2gtYXhpcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ FlatTree: () => (/* binding */ FlatTree)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\");\n/* harmony import */ var _compare_by_depth_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compare-by-depth.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs\");\n\n\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(_compare_by_depth_mjs__WEBPACK_IMPORTED_MODULE_1__.compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\n\n//# sourceMappingURL=flat-tree.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9mbGF0LXRyZWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5RDtBQUNEOztBQUV4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDJEQUFhO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLFFBQVEsd0RBQVU7QUFDbEI7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLGlFQUFjO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBOztBQUVvQjtBQUNwQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9mbGF0LXRyZWUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZFVuaXF1ZUl0ZW0sIHJlbW92ZUl0ZW0gfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgY29tcGFyZUJ5RGVwdGggfSBmcm9tICcuL2NvbXBhcmUtYnktZGVwdGgubWpzJztcblxuY2xhc3MgRmxhdFRyZWUge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmNoaWxkcmVuID0gW107XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IGZhbHNlO1xuICAgIH1cbiAgICBhZGQoY2hpbGQpIHtcbiAgICAgICAgYWRkVW5pcXVlSXRlbSh0aGlzLmNoaWxkcmVuLCBjaGlsZCk7XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IHRydWU7XG4gICAgfVxuICAgIHJlbW92ZShjaGlsZCkge1xuICAgICAgICByZW1vdmVJdGVtKHRoaXMuY2hpbGRyZW4sIGNoaWxkKTtcbiAgICAgICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcbiAgICB9XG4gICAgZm9yRWFjaChjYWxsYmFjaykge1xuICAgICAgICB0aGlzLmlzRGlydHkgJiYgdGhpcy5jaGlsZHJlbi5zb3J0KGNvbXBhcmVCeURlcHRoKTtcbiAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaChjYWxsYmFjayk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBGbGF0VHJlZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmxhdC10cmVlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ has2DTranslate: () => (/* binding */ has2DTranslate),\n/* harmony export */ hasScale: () => (/* binding */ hasScale),\n/* harmony export */ hasTransform: () => (/* binding */ hasTransform)\n/* harmony export */ });\nfunction isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale({ scale, scaleX, scaleY }) {\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n has2DTranslate(values) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY ||\n values.skewX ||\n values.skewY);\n}\nfunction has2DTranslate(values) {\n return is2DTranslate(values.x) || is2DTranslate(values.y);\n}\nfunction is2DTranslate(value) {\n return value && value !== \"0%\";\n}\n\n\n//# sourceMappingURL=has-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9oYXMtdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsdUJBQXVCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWtEO0FBQ2xEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3V0aWxzL2hhcy10cmFuc2Zvcm0ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGlzSWRlbnRpdHlTY2FsZShzY2FsZSkge1xuICAgIHJldHVybiBzY2FsZSA9PT0gdW5kZWZpbmVkIHx8IHNjYWxlID09PSAxO1xufVxuZnVuY3Rpb24gaGFzU2NhbGUoeyBzY2FsZSwgc2NhbGVYLCBzY2FsZVkgfSkge1xuICAgIHJldHVybiAoIWlzSWRlbnRpdHlTY2FsZShzY2FsZSkgfHxcbiAgICAgICAgIWlzSWRlbnRpdHlTY2FsZShzY2FsZVgpIHx8XG4gICAgICAgICFpc0lkZW50aXR5U2NhbGUoc2NhbGVZKSk7XG59XG5mdW5jdGlvbiBoYXNUcmFuc2Zvcm0odmFsdWVzKSB7XG4gICAgcmV0dXJuIChoYXNTY2FsZSh2YWx1ZXMpIHx8XG4gICAgICAgIGhhczJEVHJhbnNsYXRlKHZhbHVlcykgfHxcbiAgICAgICAgdmFsdWVzLnogfHxcbiAgICAgICAgdmFsdWVzLnJvdGF0ZSB8fFxuICAgICAgICB2YWx1ZXMucm90YXRlWCB8fFxuICAgICAgICB2YWx1ZXMucm90YXRlWSB8fFxuICAgICAgICB2YWx1ZXMuc2tld1ggfHxcbiAgICAgICAgdmFsdWVzLnNrZXdZKTtcbn1cbmZ1bmN0aW9uIGhhczJEVHJhbnNsYXRlKHZhbHVlcykge1xuICAgIHJldHVybiBpczJEVHJhbnNsYXRlKHZhbHVlcy54KSB8fCBpczJEVHJhbnNsYXRlKHZhbHVlcy55KTtcbn1cbmZ1bmN0aW9uIGlzMkRUcmFuc2xhdGUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUgIT09IFwiMCVcIjtcbn1cblxuZXhwb3J0IHsgaGFzMkRUcmFuc2xhdGUsIGhhc1NjYWxlLCBoYXNUcmFuc2Zvcm0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhhcy10cmFuc2Zvcm0ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/projection/utils/measure.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ measurePageBox: () => (/* binding */ measurePageBox),\n/* harmony export */ measureViewportBox: () => (/* binding */ measureViewportBox)\n/* harmony export */ });\n/* harmony import */ var _geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../geometry/conversion.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs\");\n/* harmony import */ var _geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../geometry/delta-apply.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs\");\n\n\n\nfunction measureViewportBox(instance, transformPoint) {\n return (0,_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.convertBoundingBoxToBox)((0,_geometry_conversion_mjs__WEBPACK_IMPORTED_MODULE_0__.transformBoxPoints)(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n const viewportBox = measureViewportBox(element, transformPagePoint);\n const { scroll } = rootProjectionNode;\n if (scroll) {\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__.translateAxis)(viewportBox.x, scroll.offset.x);\n (0,_geometry_delta_apply_mjs__WEBPACK_IMPORTED_MODULE_1__.translateAxis)(viewportBox.y, scroll.offset.y);\n }\n return viewportBox;\n}\n\n\n//# sourceMappingURL=measure.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcHJvamVjdGlvbi91dGlscy9tZWFzdXJlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXlGO0FBQzdCOztBQUU1RDtBQUNBLFdBQVcsaUZBQXVCLENBQUMsNEVBQWtCO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBLFlBQVksU0FBUztBQUNyQjtBQUNBLFFBQVEsd0VBQWE7QUFDckIsUUFBUSx3RUFBYTtBQUNyQjtBQUNBO0FBQ0E7O0FBRThDO0FBQzlDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9wcm9qZWN0aW9uL3V0aWxzL21lYXN1cmUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnZlcnRCb3VuZGluZ0JveFRvQm94LCB0cmFuc2Zvcm1Cb3hQb2ludHMgfSBmcm9tICcuLi9nZW9tZXRyeS9jb252ZXJzaW9uLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2xhdGVBeGlzIH0gZnJvbSAnLi4vZ2VvbWV0cnkvZGVsdGEtYXBwbHkubWpzJztcblxuZnVuY3Rpb24gbWVhc3VyZVZpZXdwb3J0Qm94KGluc3RhbmNlLCB0cmFuc2Zvcm1Qb2ludCkge1xuICAgIHJldHVybiBjb252ZXJ0Qm91bmRpbmdCb3hUb0JveCh0cmFuc2Zvcm1Cb3hQb2ludHMoaW5zdGFuY2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksIHRyYW5zZm9ybVBvaW50KSk7XG59XG5mdW5jdGlvbiBtZWFzdXJlUGFnZUJveChlbGVtZW50LCByb290UHJvamVjdGlvbk5vZGUsIHRyYW5zZm9ybVBhZ2VQb2ludCkge1xuICAgIGNvbnN0IHZpZXdwb3J0Qm94ID0gbWVhc3VyZVZpZXdwb3J0Qm94KGVsZW1lbnQsIHRyYW5zZm9ybVBhZ2VQb2ludCk7XG4gICAgY29uc3QgeyBzY3JvbGwgfSA9IHJvb3RQcm9qZWN0aW9uTm9kZTtcbiAgICBpZiAoc2Nyb2xsKSB7XG4gICAgICAgIHRyYW5zbGF0ZUF4aXModmlld3BvcnRCb3gueCwgc2Nyb2xsLm9mZnNldC54KTtcbiAgICAgICAgdHJhbnNsYXRlQXhpcyh2aWV3cG9ydEJveC55LCBzY3JvbGwub2Zmc2V0LnkpO1xuICAgIH1cbiAgICByZXR1cm4gdmlld3BvcnRCb3g7XG59XG5cbmV4cG9ydCB7IG1lYXN1cmVQYWdlQm94LCBtZWFzdXJlVmlld3BvcnRCb3ggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1lYXN1cmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs": +/*!************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/Feature.mjs ***! + \************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Feature: () => (/* binding */ Feature)\n/* harmony export */ });\n/**\n * Feature base class for extending VisualElement functionality.\n * Features are plugins that can be mounted/unmounted to add behavior\n * like gestures, animations, or layout tracking.\n */\nclass Feature {\n constructor(node) {\n this.isMounted = false;\n this.node = node;\n }\n update() { }\n}\n\n\n//# sourceMappingURL=Feature.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL0ZlYXR1cmUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRW1CO0FBQ25CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvRmVhdHVyZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGZWF0dXJlIGJhc2UgY2xhc3MgZm9yIGV4dGVuZGluZyBWaXN1YWxFbGVtZW50IGZ1bmN0aW9uYWxpdHkuXG4gKiBGZWF0dXJlcyBhcmUgcGx1Z2lucyB0aGF0IGNhbiBiZSBtb3VudGVkL3VubW91bnRlZCB0byBhZGQgYmVoYXZpb3JcbiAqIGxpa2UgZ2VzdHVyZXMsIGFuaW1hdGlvbnMsIG9yIGxheW91dCB0cmFja2luZy5cbiAqL1xuY2xhc3MgRmVhdHVyZSB7XG4gICAgY29uc3RydWN0b3Iobm9kZSkge1xuICAgICAgICB0aGlzLmlzTW91bnRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIH1cbiAgICB1cGRhdGUoKSB7IH1cbn1cblxuZXhwb3J0IHsgRmVhdHVyZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RmVhdHVyZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/Feature.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/VisualElement.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ VisualElement: () => (/* binding */ VisualElement),\n/* harmony export */ getFeatureDefinitions: () => (/* binding */ getFeatureDefinitions),\n/* harmony export */ setFeatureDefinitions: () => (/* binding */ setFeatureDefinitions)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var _animation_keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../animation/keyframes/KeyframesResolver.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs\");\n/* harmony import */ var _animation_NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../animation/NativeAnimation.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs\");\n/* harmony import */ var _animation_waapi_utils_accelerated_values_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../animation/waapi/utils/accelerated-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs\");\n/* harmony import */ var _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../frameloop/microtask.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/microtask.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../projection/geometry/models.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../value/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ../value/types/utils/animatable-none.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\");\n/* harmony import */ var _value_types_utils_find_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ../value/types/utils/find.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs\");\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _store_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./store.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/store.mjs\");\n/* harmony import */ var _utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/is-controlling-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _utils_motion_values_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utils/motion-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/motion-values.mjs\");\n/* harmony import */ var _utils_reduced_motion_index_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/reduced-motion/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs\");\n/* harmony import */ var _utils_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./utils/resolve-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\");\n/* harmony import */ var _utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/reduced-motion/state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst propEventHandlers = [\n \"AnimationStart\",\n \"AnimationComplete\",\n \"Update\",\n \"BeforeLayoutMeasure\",\n \"LayoutMeasure\",\n \"LayoutAnimationStart\",\n \"LayoutAnimationComplete\",\n];\n/**\n * Static feature definitions - can be injected by framework layer\n */\nlet featureDefinitions = {};\n/**\n * Set feature definitions for all VisualElements.\n * This should be called by the framework layer (e.g., framer-motion) during initialization.\n */\nfunction setFeatureDefinitions(definitions) {\n featureDefinitions = definitions;\n}\n/**\n * Get the current feature definitions\n */\nfunction getFeatureDefinitions() {\n return featureDefinitions;\n}\n/**\n * A VisualElement is an imperative abstraction around UI elements such as\n * HTMLElement, SVGElement, Three.Object3D etc.\n */\nclass VisualElement {\n /**\n * This method takes React props and returns found MotionValues. For example, HTML\n * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.\n *\n * This isn't an abstract method as it needs calling in the constructor, but it is\n * intended to be one.\n */\n scrapeMotionValuesFromProps(_props, _prevProps, _visualElement) {\n return {};\n }\n constructor({ parent, props, presenceContext, reducedMotionConfig, skipAnimations, blockInitialAnimation, visualState, }, options = {}) {\n /**\n * A reference to the current underlying Instance, e.g. a HTMLElement\n * or Three.Mesh etc.\n */\n this.current = null;\n /**\n * A set containing references to this VisualElement's children.\n */\n this.children = new Set();\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n this.isVariantNode = false;\n this.isControllingVariants = false;\n /**\n * Decides whether this VisualElement should animate in reduced motion\n * mode.\n *\n * TODO: This is currently set on every individual VisualElement but feels\n * like it could be set globally.\n */\n this.shouldReduceMotion = null;\n /**\n * Decides whether animations should be skipped for this VisualElement.\n * Useful for E2E tests and visual regression testing.\n */\n this.shouldSkipAnimations = false;\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n this.values = new Map();\n this.KeyframeResolver = _animation_keyframes_KeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_0__.KeyframeResolver;\n /**\n * Cleanup functions for active features (hover/tap/exit etc)\n */\n this.features = {};\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n this.valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n this.prevMotionValues = {};\n /**\n * Track whether this element has been mounted before, to detect\n * remounts after Suspense unmount/remount cycles.\n */\n this.hasBeenMounted = false;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n /**\n * An object containing an unsubscribe function for each prop event subscription.\n * For example, every \"Update\" event can have multiple subscribers via\n * VisualElement.on(), but only one of those can be defined via the onUpdate prop.\n */\n this.propEventSubscriptions = {};\n this.notifyUpdate = () => this.notify(\"Update\", this.latestValues);\n this.render = () => {\n if (!this.current)\n return;\n this.triggerBuild();\n this.renderInstance(this.current, this.renderState, this.props.style, this.projection);\n };\n this.renderScheduledAt = 0.0;\n this.scheduleRender = () => {\n const now = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_1__.time.now();\n if (this.renderScheduledAt < now) {\n this.renderScheduledAt = now;\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.frame.render(this.render, false, true);\n }\n };\n const { latestValues, renderState } = visualState;\n this.latestValues = latestValues;\n this.baseTarget = { ...latestValues };\n this.initialValues = props.initial ? { ...latestValues } : {};\n this.renderState = renderState;\n this.parent = parent;\n this.props = props;\n this.presenceContext = presenceContext;\n this.depth = parent ? parent.depth + 1 : 0;\n this.reducedMotionConfig = reducedMotionConfig;\n this.skipAnimationsConfig = skipAnimations;\n this.options = options;\n this.blockInitialAnimation = Boolean(blockInitialAnimation);\n this.isControllingVariants = (0,_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__.isControllingVariants)(props);\n this.isVariantNode = (0,_utils_is_controlling_variants_mjs__WEBPACK_IMPORTED_MODULE_3__.isVariantNode)(props);\n if (this.isVariantNode) {\n this.variantChildren = new Set();\n }\n this.manuallyAnimateOnMount = Boolean(parent && parent.current);\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't necessarily a breaking change,\n * more a reflection of the test.\n */\n const { willChange, ...initialMotionValues } = this.scrapeMotionValuesFromProps(props, {}, this);\n for (const key in initialMotionValues) {\n const value = initialMotionValues[key];\n if (latestValues[key] !== undefined && (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value)) {\n value.set(latestValues[key]);\n }\n }\n }\n mount(instance) {\n /**\n * If this element has been mounted before (e.g. after a Suspense\n * unmount/remount), reset motion values to their initial state\n * so animations replay correctly from initial → animate.\n */\n if (this.hasBeenMounted) {\n for (const key in this.initialValues) {\n this.values.get(key)?.jump(this.initialValues[key]);\n this.latestValues[key] = this.initialValues[key];\n }\n }\n this.current = instance;\n _store_mjs__WEBPACK_IMPORTED_MODULE_5__.visualElementStore.set(instance, this);\n if (this.projection && !this.projection.instance) {\n this.projection.mount(instance);\n }\n if (this.parent && this.isVariantNode && !this.isControllingVariants) {\n this.removeFromVariantTree = this.parent.addVariantChild(this);\n }\n this.values.forEach((value, key) => this.bindToMotionValue(key, value));\n /**\n * Determine reduced motion preference. Only initialize the matchMedia\n * listener if we actually need the dynamic value (i.e., when config\n * is neither \"never\" nor \"always\").\n */\n if (this.reducedMotionConfig === \"never\") {\n this.shouldReduceMotion = false;\n }\n else if (this.reducedMotionConfig === \"always\") {\n this.shouldReduceMotion = true;\n }\n else {\n if (!_utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__.hasReducedMotionListener.current) {\n (0,_utils_reduced_motion_index_mjs__WEBPACK_IMPORTED_MODULE_7__.initPrefersReducedMotion)();\n }\n this.shouldReduceMotion = _utils_reduced_motion_state_mjs__WEBPACK_IMPORTED_MODULE_6__.prefersReducedMotion.current;\n }\n if (true) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_8__.warnOnce)(this.shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\", \"reduced-motion-disabled\");\n }\n /**\n * Set whether animations should be skipped based on the config.\n */\n this.shouldSkipAnimations = this.skipAnimationsConfig ?? false;\n this.parent?.addChild(this);\n this.update(this.props, this.presenceContext);\n this.hasBeenMounted = true;\n }\n unmount() {\n this.projection && this.projection.unmount();\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.cancelFrame)(this.notifyUpdate);\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.cancelFrame)(this.render);\n this.valueSubscriptions.forEach((remove) => remove());\n this.valueSubscriptions.clear();\n this.removeFromVariantTree && this.removeFromVariantTree();\n this.parent?.removeChild(this);\n for (const key in this.events) {\n this.events[key].clear();\n }\n for (const key in this.features) {\n const feature = this.features[key];\n if (feature) {\n feature.unmount();\n feature.isMounted = false;\n }\n }\n this.current = null;\n }\n addChild(child) {\n this.children.add(child);\n this.enteringChildren ?? (this.enteringChildren = new Set());\n this.enteringChildren.add(child);\n }\n removeChild(child) {\n this.children.delete(child);\n this.enteringChildren && this.enteringChildren.delete(child);\n }\n bindToMotionValue(key, value) {\n if (this.valueSubscriptions.has(key)) {\n this.valueSubscriptions.get(key)();\n }\n if (value.accelerate &&\n _animation_waapi_utils_accelerated_values_mjs__WEBPACK_IMPORTED_MODULE_9__.acceleratedValues.has(key) &&\n this.current instanceof HTMLElement) {\n const { factory, keyframes, times, ease, duration } = value.accelerate;\n const animation = new _animation_NativeAnimation_mjs__WEBPACK_IMPORTED_MODULE_10__.NativeAnimation({\n element: this.current,\n name: key,\n keyframes,\n times,\n ease,\n duration: (0,motion_utils__WEBPACK_IMPORTED_MODULE_11__.secondsToMilliseconds)(duration),\n });\n const cleanup = factory(animation);\n this.valueSubscriptions.set(key, () => {\n cleanup();\n animation.cancel();\n });\n return;\n }\n const valueIsTransform = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_12__.transformProps.has(key);\n if (valueIsTransform && this.onBindTransform) {\n this.onBindTransform();\n }\n const removeOnChange = value.on(\"change\", (latestValue) => {\n this.latestValues[key] = latestValue;\n this.props.onUpdate && _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_2__.frame.preRender(this.notifyUpdate);\n if (valueIsTransform && this.projection) {\n this.projection.isTransformDirty = true;\n }\n this.scheduleRender();\n });\n let removeSyncCheck;\n if (typeof window !== \"undefined\" &&\n window.MotionCheckAppearSync) {\n removeSyncCheck = window.MotionCheckAppearSync(this, key, value);\n }\n this.valueSubscriptions.set(key, () => {\n removeOnChange();\n if (removeSyncCheck)\n removeSyncCheck();\n if (value.owner)\n value.stop();\n });\n }\n sortNodePosition(other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!this.current ||\n !this.sortInstanceNodePosition ||\n this.type !== other.type) {\n return 0;\n }\n return this.sortInstanceNodePosition(this.current, other.current);\n }\n updateFeatures() {\n let key = \"animation\";\n for (key in featureDefinitions) {\n const featureDefinition = featureDefinitions[key];\n if (!featureDefinition)\n continue;\n const { isEnabled, Feature: FeatureConstructor } = featureDefinition;\n /**\n * If this feature is enabled but not active, make a new instance.\n */\n if (!this.features[key] &&\n FeatureConstructor &&\n isEnabled(this.props)) {\n this.features[key] = new FeatureConstructor(this);\n }\n /**\n * If we have a feature, mount or update it.\n */\n if (this.features[key]) {\n const feature = this.features[key];\n if (feature.isMounted) {\n feature.update();\n }\n else {\n feature.mount();\n feature.isMounted = true;\n }\n }\n }\n }\n triggerBuild() {\n this.build(this.renderState, this.latestValues, this.props);\n }\n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox() {\n return this.current\n ? this.measureInstanceViewportBox(this.current, this.props)\n : (0,_projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_13__.createBox)();\n }\n getStaticValue(key) {\n return this.latestValues[key];\n }\n setStaticValue(key, value) {\n this.latestValues[key] = value;\n }\n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n update(props, presenceContext) {\n if (props.transformTemplate || this.props.transformTemplate) {\n this.scheduleRender();\n }\n this.prevProps = this.props;\n this.props = props;\n this.prevPresenceContext = this.presenceContext;\n this.presenceContext = presenceContext;\n /**\n * Update prop event handlers ie onAnimationStart, onAnimationComplete\n */\n for (let i = 0; i < propEventHandlers.length; i++) {\n const key = propEventHandlers[i];\n if (this.propEventSubscriptions[key]) {\n this.propEventSubscriptions[key]();\n delete this.propEventSubscriptions[key];\n }\n const listenerName = (\"on\" + key);\n const listener = props[listenerName];\n if (listener) {\n this.propEventSubscriptions[key] = this.on(key, listener);\n }\n }\n this.prevMotionValues = (0,_utils_motion_values_mjs__WEBPACK_IMPORTED_MODULE_14__.updateMotionValuesFromProps)(this, this.scrapeMotionValuesFromProps(props, this.prevProps || {}, this), this.prevMotionValues);\n if (this.handleChildMotionValue) {\n this.handleChildMotionValue();\n }\n }\n getProps() {\n return this.props;\n }\n /**\n * Returns the variant definition with a given name.\n */\n getVariant(name) {\n return this.props.variants ? this.props.variants[name] : undefined;\n }\n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition() {\n return this.props.transition;\n }\n getTransformPagePoint() {\n return this.props.transformPagePoint;\n }\n getClosestVariantNode() {\n return this.isVariantNode\n ? this\n : this.parent\n ? this.parent.getClosestVariantNode()\n : undefined;\n }\n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild(child) {\n const closestVariantNode = this.getClosestVariantNode();\n if (closestVariantNode) {\n closestVariantNode.variantChildren &&\n closestVariantNode.variantChildren.add(child);\n return () => closestVariantNode.variantChildren.delete(child);\n }\n }\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue(key, value) {\n // Remove existing value if it exists\n const existingValue = this.values.get(key);\n if (value !== existingValue) {\n if (existingValue)\n this.removeValue(key);\n this.bindToMotionValue(key, value);\n this.values.set(key, value);\n this.latestValues[key] = value.get();\n }\n }\n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue(key) {\n this.values.delete(key);\n const unsubscribe = this.valueSubscriptions.get(key);\n if (unsubscribe) {\n unsubscribe();\n this.valueSubscriptions.delete(key);\n }\n delete this.latestValues[key];\n this.removeValueFromRenderState(key, this.renderState);\n }\n /**\n * Check whether we have a motion value for this key\n */\n hasValue(key) {\n return this.values.has(key);\n }\n getValue(key, defaultValue) {\n if (this.props.values && this.props.values[key]) {\n return this.props.values[key];\n }\n let value = this.values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_15__.motionValue)(defaultValue === null ? undefined : defaultValue, { owner: this });\n this.addValue(key, value);\n }\n return value;\n }\n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue(key, target) {\n let value = this.latestValues[key] !== undefined || !this.current\n ? this.latestValues[key]\n : this.getBaseTargetFromProps(this.props, key) ??\n this.readValueFromInstance(this.current, key, this.options);\n if (value !== undefined && value !== null) {\n if (typeof value === \"string\" &&\n ((0,motion_utils__WEBPACK_IMPORTED_MODULE_16__.isNumericalString)(value) || (0,motion_utils__WEBPACK_IMPORTED_MODULE_17__.isZeroValueString)(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!(0,_value_types_utils_find_mjs__WEBPACK_IMPORTED_MODULE_18__.findValueType)(value) && _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_19__.complex.test(target)) {\n value = (0,_value_types_utils_animatable_none_mjs__WEBPACK_IMPORTED_MODULE_20__.getAnimatableNone)(key, target);\n }\n this.setBaseTarget(key, (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value) ? value.get() : value);\n }\n return (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(value) ? value.get() : value;\n }\n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget(key, value) {\n this.baseTarget[key] = value;\n }\n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget(key) {\n const { initial } = this.props;\n let valueFromInitial;\n if (typeof initial === \"string\" || typeof initial === \"object\") {\n const variant = (0,_utils_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_21__.resolveVariantFromProps)(this.props, initial, this.presenceContext?.custom);\n if (variant) {\n valueFromInitial = variant[key];\n }\n }\n /**\n * If this value still exists in the current initial variant, read that.\n */\n if (initial && valueFromInitial !== undefined) {\n return valueFromInitial;\n }\n /**\n * Alternatively, if this VisualElement config has defined a getBaseTarget\n * so we can read the value from an alternative source, try that.\n */\n const target = this.getBaseTargetFromProps(this.props, key);\n if (target !== undefined && !(0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_4__.isMotionValue)(target))\n return target;\n /**\n * If the value was initially defined on initial, but it doesn't any more,\n * return undefined. Otherwise return the value as initially read from the DOM.\n */\n return this.initialValues[key] !== undefined &&\n valueFromInitial === undefined\n ? undefined\n : this.baseTarget[key];\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new motion_utils__WEBPACK_IMPORTED_MODULE_22__.SubscriptionManager();\n }\n return this.events[eventName].add(callback);\n }\n notify(eventName, ...args) {\n if (this.events[eventName]) {\n this.events[eventName].notify(...args);\n }\n }\n scheduleRenderMicrotask() {\n _frameloop_microtask_mjs__WEBPACK_IMPORTED_MODULE_23__.microtask.render(this.render);\n }\n}\n\n\n//# sourceMappingURL=VisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL1Zpc3VhbEVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUEwSDtBQUMxQztBQUNiO0FBQ2lCO0FBQzdCO0FBQ0w7QUFDWTtBQUNiO0FBQ1U7QUFDa0I7QUFDZjtBQUNLO0FBQ2xCO0FBQzBDO0FBQy9CO0FBQ1k7QUFDSTtBQUNMO0FBQzJCO0FBQ3RDOztBQUU1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLDBHQUEwRyxjQUFjO0FBQzFJO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx3RkFBZ0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDBEQUFJO0FBQzVCO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQUs7QUFDckI7QUFDQTtBQUNBLGdCQUFnQiw0QkFBNEI7QUFDNUM7QUFDQSw0QkFBNEI7QUFDNUIsK0NBQStDLGtCQUFrQjtBQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMseUZBQXFCO0FBQzFELDZCQUE2QixpRkFBYTtBQUMxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLHFDQUFxQyw0Q0FBNEM7QUFDakc7QUFDQTtBQUNBLG1EQUFtRCwrRUFBYTtBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwwREFBa0I7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIscUZBQXdCO0FBQ3pDLGdCQUFnQix5RkFBd0I7QUFDeEM7QUFDQSxzQ0FBc0MsaUZBQW9CO0FBQzFEO0FBQ0EsWUFBWSxJQUFxQztBQUNqRCxZQUFZLHNEQUFRO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLGlFQUFXO0FBQ25CLFFBQVEsaUVBQVc7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSw0RkFBaUI7QUFDN0I7QUFDQSxvQkFBb0IsNENBQTRDO0FBQ2hFLGtDQUFrQyw0RUFBZTtBQUNqRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLG9FQUFxQjtBQUMvQyxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGlDQUFpQyxzRUFBYztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHVEQUFLO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHlDQUF5QztBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsMkVBQVM7QUFDdkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsOEJBQThCO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msc0ZBQTJCLG1FQUFtRTtBQUM5SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw4REFBVyxxREFBcUQsYUFBYTtBQUNqRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQixnRUFBaUIsV0FBVyxnRUFBaUI7QUFDOUQ7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLDJFQUFhLFdBQVcsb0VBQU87QUFDckQsd0JBQXdCLDBGQUFpQjtBQUN6QztBQUNBLG9DQUFvQywrRUFBYTtBQUNqRDtBQUNBLGVBQWUsK0VBQWE7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsVUFBVTtBQUMxQjtBQUNBO0FBQ0EsNEJBQTRCLHFGQUF1QjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUMsK0VBQWE7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLDhEQUFtQjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLGdFQUFTO0FBQ2pCO0FBQ0E7O0FBRXVFO0FBQ3ZFIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvVmlzdWFsRWxlbWVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd2Fybk9uY2UsIHNlY29uZHNUb01pbGxpc2Vjb25kcywgaXNOdW1lcmljYWxTdHJpbmcsIGlzWmVyb1ZhbHVlU3RyaW5nLCBTdWJzY3JpcHRpb25NYW5hZ2VyIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IEtleWZyYW1lUmVzb2x2ZXIgfSBmcm9tICcuLi9hbmltYXRpb24va2V5ZnJhbWVzL0tleWZyYW1lc1Jlc29sdmVyLm1qcyc7XG5pbXBvcnQgeyBOYXRpdmVBbmltYXRpb24gfSBmcm9tICcuLi9hbmltYXRpb24vTmF0aXZlQW5pbWF0aW9uLm1qcyc7XG5pbXBvcnQgeyBhY2NlbGVyYXRlZFZhbHVlcyB9IGZyb20gJy4uL2FuaW1hdGlvbi93YWFwaS91dGlscy9hY2NlbGVyYXRlZC12YWx1ZXMubWpzJztcbmltcG9ydCB7IG1pY3JvdGFzayB9IGZyb20gJy4uL2ZyYW1lbG9vcC9taWNyb3Rhc2subWpzJztcbmltcG9ydCB7IHRpbWUgfSBmcm9tICcuLi9mcmFtZWxvb3Avc3luYy10aW1lLm1qcyc7XG5pbXBvcnQgeyBjcmVhdGVCb3ggfSBmcm9tICcuLi9wcm9qZWN0aW9uL2dlb21ldHJ5L21vZGVscy5tanMnO1xuaW1wb3J0IHsgbW90aW9uVmFsdWUgfSBmcm9tICcuLi92YWx1ZS9pbmRleC5tanMnO1xuaW1wb3J0IHsgY29tcGxleCB9IGZyb20gJy4uL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzJztcbmltcG9ydCB7IGdldEFuaW1hdGFibGVOb25lIH0gZnJvbSAnLi4vdmFsdWUvdHlwZXMvdXRpbHMvYW5pbWF0YWJsZS1ub25lLm1qcyc7XG5pbXBvcnQgeyBmaW5kVmFsdWVUeXBlIH0gZnJvbSAnLi4vdmFsdWUvdHlwZXMvdXRpbHMvZmluZC5tanMnO1xuaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJy4uL3ZhbHVlL3V0aWxzL2lzLW1vdGlvbi12YWx1ZS5tanMnO1xuaW1wb3J0IHsgdmlzdWFsRWxlbWVudFN0b3JlIH0gZnJvbSAnLi9zdG9yZS5tanMnO1xuaW1wb3J0IHsgaXNDb250cm9sbGluZ1ZhcmlhbnRzLCBpc1ZhcmlhbnROb2RlIH0gZnJvbSAnLi91dGlscy9pcy1jb250cm9sbGluZy12YXJpYW50cy5tanMnO1xuaW1wb3J0IHsgdHJhbnNmb3JtUHJvcHMgfSBmcm9tICcuL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyB1cGRhdGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfSBmcm9tICcuL3V0aWxzL21vdGlvbi12YWx1ZXMubWpzJztcbmltcG9ydCB7IGluaXRQcmVmZXJzUmVkdWNlZE1vdGlvbiB9IGZyb20gJy4vdXRpbHMvcmVkdWNlZC1tb3Rpb24vaW5kZXgubWpzJztcbmltcG9ydCB7IHJlc29sdmVWYXJpYW50RnJvbVByb3BzIH0gZnJvbSAnLi91dGlscy9yZXNvbHZlLXZhcmlhbnRzLm1qcyc7XG5pbXBvcnQgeyBoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIsIHByZWZlcnNSZWR1Y2VkTW90aW9uIH0gZnJvbSAnLi91dGlscy9yZWR1Y2VkLW1vdGlvbi9zdGF0ZS5tanMnO1xuaW1wb3J0IHsgZnJhbWUsIGNhbmNlbEZyYW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL2ZyYW1lLm1qcyc7XG5cbmNvbnN0IHByb3BFdmVudEhhbmRsZXJzID0gW1xuICAgIFwiQW5pbWF0aW9uU3RhcnRcIixcbiAgICBcIkFuaW1hdGlvbkNvbXBsZXRlXCIsXG4gICAgXCJVcGRhdGVcIixcbiAgICBcIkJlZm9yZUxheW91dE1lYXN1cmVcIixcbiAgICBcIkxheW91dE1lYXN1cmVcIixcbiAgICBcIkxheW91dEFuaW1hdGlvblN0YXJ0XCIsXG4gICAgXCJMYXlvdXRBbmltYXRpb25Db21wbGV0ZVwiLFxuXTtcbi8qKlxuICogU3RhdGljIGZlYXR1cmUgZGVmaW5pdGlvbnMgLSBjYW4gYmUgaW5qZWN0ZWQgYnkgZnJhbWV3b3JrIGxheWVyXG4gKi9cbmxldCBmZWF0dXJlRGVmaW5pdGlvbnMgPSB7fTtcbi8qKlxuICogU2V0IGZlYXR1cmUgZGVmaW5pdGlvbnMgZm9yIGFsbCBWaXN1YWxFbGVtZW50cy5cbiAqIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBieSB0aGUgZnJhbWV3b3JrIGxheWVyIChlLmcuLCBmcmFtZXItbW90aW9uKSBkdXJpbmcgaW5pdGlhbGl6YXRpb24uXG4gKi9cbmZ1bmN0aW9uIHNldEZlYXR1cmVEZWZpbml0aW9ucyhkZWZpbml0aW9ucykge1xuICAgIGZlYXR1cmVEZWZpbml0aW9ucyA9IGRlZmluaXRpb25zO1xufVxuLyoqXG4gKiBHZXQgdGhlIGN1cnJlbnQgZmVhdHVyZSBkZWZpbml0aW9uc1xuICovXG5mdW5jdGlvbiBnZXRGZWF0dXJlRGVmaW5pdGlvbnMoKSB7XG4gICAgcmV0dXJuIGZlYXR1cmVEZWZpbml0aW9ucztcbn1cbi8qKlxuICogQSBWaXN1YWxFbGVtZW50IGlzIGFuIGltcGVyYXRpdmUgYWJzdHJhY3Rpb24gYXJvdW5kIFVJIGVsZW1lbnRzIHN1Y2ggYXNcbiAqIEhUTUxFbGVtZW50LCBTVkdFbGVtZW50LCBUaHJlZS5PYmplY3QzRCBldGMuXG4gKi9cbmNsYXNzIFZpc3VhbEVsZW1lbnQge1xuICAgIC8qKlxuICAgICAqIFRoaXMgbWV0aG9kIHRha2VzIFJlYWN0IHByb3BzIGFuZCByZXR1cm5zIGZvdW5kIE1vdGlvblZhbHVlcy4gRm9yIGV4YW1wbGUsIEhUTUxcbiAgICAgKiBNb3Rpb25WYWx1ZXMgd2lsbCBiZSBmb3VuZCB3aXRoaW4gdGhlIHN0eWxlIHByb3AsIHdoZXJlYXMgZm9yIFRocmVlLmpzIHdpdGhpbiBhdHRyaWJ1dGUgYXJyYXlzLlxuICAgICAqXG4gICAgICogVGhpcyBpc24ndCBhbiBhYnN0cmFjdCBtZXRob2QgYXMgaXQgbmVlZHMgY2FsbGluZyBpbiB0aGUgY29uc3RydWN0b3IsIGJ1dCBpdCBpc1xuICAgICAqIGludGVuZGVkIHRvIGJlIG9uZS5cbiAgICAgKi9cbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMoX3Byb3BzLCBfcHJldlByb3BzLCBfdmlzdWFsRWxlbWVudCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgfVxuICAgIGNvbnN0cnVjdG9yKHsgcGFyZW50LCBwcm9wcywgcHJlc2VuY2VDb250ZXh0LCByZWR1Y2VkTW90aW9uQ29uZmlnLCBza2lwQW5pbWF0aW9ucywgYmxvY2tJbml0aWFsQW5pbWF0aW9uLCB2aXN1YWxTdGF0ZSwgfSwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCB1bmRlcmx5aW5nIEluc3RhbmNlLCBlLmcuIGEgSFRNTEVsZW1lbnRcbiAgICAgICAgICogb3IgVGhyZWUuTWVzaCBldGMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBzZXQgY29udGFpbmluZyByZWZlcmVuY2VzIHRvIHRoaXMgVmlzdWFsRWxlbWVudCdzIGNoaWxkcmVuLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IG5ldyBTZXQoKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERldGVybWluZSB3aGF0IHJvbGUgdGhpcyB2aXN1YWwgZWxlbWVudCBzaG91bGQgdGFrZSBpbiB0aGUgdmFyaWFudCB0cmVlLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5pc1ZhcmlhbnROb2RlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEZWNpZGVzIHdoZXRoZXIgdGhpcyBWaXN1YWxFbGVtZW50IHNob3VsZCBhbmltYXRlIGluIHJlZHVjZWQgbW90aW9uXG4gICAgICAgICAqIG1vZGUuXG4gICAgICAgICAqXG4gICAgICAgICAqIFRPRE86IFRoaXMgaXMgY3VycmVudGx5IHNldCBvbiBldmVyeSBpbmRpdmlkdWFsIFZpc3VhbEVsZW1lbnQgYnV0IGZlZWxzXG4gICAgICAgICAqIGxpa2UgaXQgY291bGQgYmUgc2V0IGdsb2JhbGx5LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5zaG91bGRSZWR1Y2VNb3Rpb24gPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogRGVjaWRlcyB3aGV0aGVyIGFuaW1hdGlvbnMgc2hvdWxkIGJlIHNraXBwZWQgZm9yIHRoaXMgVmlzdWFsRWxlbWVudC5cbiAgICAgICAgICogVXNlZnVsIGZvciBFMkUgdGVzdHMgYW5kIHZpc3VhbCByZWdyZXNzaW9uIHRlc3RpbmcuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnNob3VsZFNraXBBbmltYXRpb25zID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIG1hcCBvZiBhbGwgbW90aW9uIHZhbHVlcyBhdHRhY2hlZCB0byB0aGlzIHZpc3VhbCBlbGVtZW50LiBNb3Rpb25cbiAgICAgICAgICogdmFsdWVzIGFyZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGFueSBnaXZlbiBhbmltYXRlZCB2YWx1ZS4gQSBtb3Rpb25cbiAgICAgICAgICogdmFsdWUgbWlnaHQgYmUgcHJvdmlkZWQgZXh0ZXJuYWxseSBieSB0aGUgY29tcG9uZW50IHZpYSBwcm9wcy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudmFsdWVzID0gbmV3IE1hcCgpO1xuICAgICAgICB0aGlzLktleWZyYW1lUmVzb2x2ZXIgPSBLZXlmcmFtZVJlc29sdmVyO1xuICAgICAgICAvKipcbiAgICAgICAgICogQ2xlYW51cCBmdW5jdGlvbnMgZm9yIGFjdGl2ZSBmZWF0dXJlcyAoaG92ZXIvdGFwL2V4aXQgZXRjKVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5mZWF0dXJlcyA9IHt9O1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBtYXAgb2YgZXZlcnkgc3Vic2NyaXB0aW9uIHRoYXQgYmluZHMgdGhlIHByb3ZpZGVkIG9yIGdlbmVyYXRlZFxuICAgICAgICAgKiBtb3Rpb24gdmFsdWVzIG9uQ2hhbmdlIGxpc3RlbmVycyB0byB0aGlzIHZpc3VhbCBlbGVtZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMgPSBuZXcgTWFwKCk7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBIHJlZmVyZW5jZSB0byB0aGUgcHJldmlvdXNseS1wcm92aWRlZCBtb3Rpb24gdmFsdWVzIGFzIHJldHVybmVkXG4gICAgICAgICAqIGZyb20gc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzLiBXZSB1c2UgdGhlIGtleXMgaW4gaGVyZSB0byBkZXRlcm1pbmVcbiAgICAgICAgICogaWYgYW55IG1vdGlvbiB2YWx1ZXMgbmVlZCB0byBiZSByZW1vdmVkIGFmdGVyIHByb3BzIGFyZSB1cGRhdGVkLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5wcmV2TW90aW9uVmFsdWVzID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUcmFjayB3aGV0aGVyIHRoaXMgZWxlbWVudCBoYXMgYmVlbiBtb3VudGVkIGJlZm9yZSwgdG8gZGV0ZWN0XG4gICAgICAgICAqIHJlbW91bnRzIGFmdGVyIFN1c3BlbnNlIHVubW91bnQvcmVtb3VudCBjeWNsZXMuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmhhc0JlZW5Nb3VudGVkID0gZmFsc2U7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBbiBvYmplY3QgY29udGFpbmluZyBhIFN1YnNjcmlwdGlvbk1hbmFnZXIgZm9yIGVhY2ggYWN0aXZlIGV2ZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5ldmVudHMgPSB7fTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFuIG9iamVjdCBjb250YWluaW5nIGFuIHVuc3Vic2NyaWJlIGZ1bmN0aW9uIGZvciBlYWNoIHByb3AgZXZlbnQgc3Vic2NyaXB0aW9uLlxuICAgICAgICAgKiBGb3IgZXhhbXBsZSwgZXZlcnkgXCJVcGRhdGVcIiBldmVudCBjYW4gaGF2ZSBtdWx0aXBsZSBzdWJzY3JpYmVycyB2aWFcbiAgICAgICAgICogVmlzdWFsRWxlbWVudC5vbigpLCBidXQgb25seSBvbmUgb2YgdGhvc2UgY2FuIGJlIGRlZmluZWQgdmlhIHRoZSBvblVwZGF0ZSBwcm9wLlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5wcm9wRXZlbnRTdWJzY3JpcHRpb25zID0ge307XG4gICAgICAgIHRoaXMubm90aWZ5VXBkYXRlID0gKCkgPT4gdGhpcy5ub3RpZnkoXCJVcGRhdGVcIiwgdGhpcy5sYXRlc3RWYWx1ZXMpO1xuICAgICAgICB0aGlzLnJlbmRlciA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlckJ1aWxkKCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckluc3RhbmNlKHRoaXMuY3VycmVudCwgdGhpcy5yZW5kZXJTdGF0ZSwgdGhpcy5wcm9wcy5zdHlsZSwgdGhpcy5wcm9qZWN0aW9uKTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5yZW5kZXJTY2hlZHVsZWRBdCA9IDAuMDtcbiAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlciA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vdyA9IHRpbWUubm93KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5yZW5kZXJTY2hlZHVsZWRBdCA8IG5vdykge1xuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyU2NoZWR1bGVkQXQgPSBub3c7XG4gICAgICAgICAgICAgICAgZnJhbWUucmVuZGVyKHRoaXMucmVuZGVyLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHsgbGF0ZXN0VmFsdWVzLCByZW5kZXJTdGF0ZSB9ID0gdmlzdWFsU3RhdGU7XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzID0gbGF0ZXN0VmFsdWVzO1xuICAgICAgICB0aGlzLmJhc2VUYXJnZXQgPSB7IC4uLmxhdGVzdFZhbHVlcyB9O1xuICAgICAgICB0aGlzLmluaXRpYWxWYWx1ZXMgPSBwcm9wcy5pbml0aWFsID8geyAuLi5sYXRlc3RWYWx1ZXMgfSA6IHt9O1xuICAgICAgICB0aGlzLnJlbmRlclN0YXRlID0gcmVuZGVyU3RhdGU7XG4gICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50O1xuICAgICAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgICAgIHRoaXMucHJlc2VuY2VDb250ZXh0ID0gcHJlc2VuY2VDb250ZXh0O1xuICAgICAgICB0aGlzLmRlcHRoID0gcGFyZW50ID8gcGFyZW50LmRlcHRoICsgMSA6IDA7XG4gICAgICAgIHRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZyA9IHJlZHVjZWRNb3Rpb25Db25maWc7XG4gICAgICAgIHRoaXMuc2tpcEFuaW1hdGlvbnNDb25maWcgPSBza2lwQW5pbWF0aW9ucztcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5ibG9ja0luaXRpYWxBbmltYXRpb24gPSBCb29sZWFuKGJsb2NrSW5pdGlhbEFuaW1hdGlvbik7XG4gICAgICAgIHRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzID0gaXNDb250cm9sbGluZ1ZhcmlhbnRzKHByb3BzKTtcbiAgICAgICAgdGhpcy5pc1ZhcmlhbnROb2RlID0gaXNWYXJpYW50Tm9kZShwcm9wcyk7XG4gICAgICAgIGlmICh0aGlzLmlzVmFyaWFudE5vZGUpIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFudENoaWxkcmVuID0gbmV3IFNldCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubWFudWFsbHlBbmltYXRlT25Nb3VudCA9IEJvb2xlYW4ocGFyZW50ICYmIHBhcmVudC5jdXJyZW50KTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFueSBtb3Rpb24gdmFsdWVzIHRoYXQgYXJlIHByb3ZpZGVkIHRvIHRoZSBlbGVtZW50IHdoZW4gY3JlYXRlZFxuICAgICAgICAgKiBhcmVuJ3QgeWV0IGJvdW5kIHRvIHRoZSBlbGVtZW50LCBhcyB0aGlzIHdvdWxkIHRlY2huaWNhbGx5IGJlIGltcHVyZS5cbiAgICAgICAgICogSG93ZXZlciwgd2UgaXRlcmF0ZSB0aHJvdWdoIHRoZSBtb3Rpb24gdmFsdWVzIGFuZCBzZXQgdGhlbSB0byB0aGVcbiAgICAgICAgICogaW5pdGlhbCB2YWx1ZXMgZm9yIHRoaXMgY29tcG9uZW50LlxuICAgICAgICAgKlxuICAgICAgICAgKiBUT0RPOiBUaGlzIGlzIGltcHVyZSBhbmQgd2Ugc2hvdWxkIGxvb2sgYXQgY2hhbmdpbmcgdGhpcyB0byBydW4gb24gbW91bnQuXG4gICAgICAgICAqIERvaW5nIHNvIHdpbGwgYnJlYWsgc29tZSB0ZXN0cyBidXQgdGhpcyBpc24ndCBuZWNlc3NhcmlseSBhIGJyZWFraW5nIGNoYW5nZSxcbiAgICAgICAgICogbW9yZSBhIHJlZmxlY3Rpb24gb2YgdGhlIHRlc3QuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCB7IHdpbGxDaGFuZ2UsIC4uLmluaXRpYWxNb3Rpb25WYWx1ZXMgfSA9IHRoaXMuc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLCB7fSwgdGhpcyk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGluaXRpYWxNb3Rpb25WYWx1ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5pdGlhbE1vdGlvblZhbHVlc1trZXldO1xuICAgICAgICAgICAgaWYgKGxhdGVzdFZhbHVlc1trZXldICE9PSB1bmRlZmluZWQgJiYgaXNNb3Rpb25WYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5zZXQobGF0ZXN0VmFsdWVzW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIG1vdW50KGluc3RhbmNlKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGlzIGVsZW1lbnQgaGFzIGJlZW4gbW91bnRlZCBiZWZvcmUgKGUuZy4gYWZ0ZXIgYSBTdXNwZW5zZVxuICAgICAgICAgKiB1bm1vdW50L3JlbW91bnQpLCByZXNldCBtb3Rpb24gdmFsdWVzIHRvIHRoZWlyIGluaXRpYWwgc3RhdGVcbiAgICAgICAgICogc28gYW5pbWF0aW9ucyByZXBsYXkgY29ycmVjdGx5IGZyb20gaW5pdGlhbCDihpIgYW5pbWF0ZS5cbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLmhhc0JlZW5Nb3VudGVkKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmluaXRpYWxWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlcy5nZXQoa2V5KT8uanVtcCh0aGlzLmluaXRpYWxWYWx1ZXNba2V5XSk7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXRlc3RWYWx1ZXNba2V5XSA9IHRoaXMuaW5pdGlhbFZhbHVlc1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudCA9IGluc3RhbmNlO1xuICAgICAgICB2aXN1YWxFbGVtZW50U3RvcmUuc2V0KGluc3RhbmNlLCB0aGlzKTtcbiAgICAgICAgaWYgKHRoaXMucHJvamVjdGlvbiAmJiAhdGhpcy5wcm9qZWN0aW9uLmluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb24ubW91bnQoaW5zdGFuY2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnBhcmVudCAmJiB0aGlzLmlzVmFyaWFudE5vZGUgJiYgIXRoaXMuaXNDb250cm9sbGluZ1ZhcmlhbnRzKSB7XG4gICAgICAgICAgICB0aGlzLnJlbW92ZUZyb21WYXJpYW50VHJlZSA9IHRoaXMucGFyZW50LmFkZFZhcmlhbnRDaGlsZCh0aGlzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB0aGlzLmJpbmRUb01vdGlvblZhbHVlKGtleSwgdmFsdWUpKTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIERldGVybWluZSByZWR1Y2VkIG1vdGlvbiBwcmVmZXJlbmNlLiBPbmx5IGluaXRpYWxpemUgdGhlIG1hdGNoTWVkaWFcbiAgICAgICAgICogbGlzdGVuZXIgaWYgd2UgYWN0dWFsbHkgbmVlZCB0aGUgZHluYW1pYyB2YWx1ZSAoaS5lLiwgd2hlbiBjb25maWdcbiAgICAgICAgICogaXMgbmVpdGhlciBcIm5ldmVyXCIgbm9yIFwiYWx3YXlzXCIpLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZyA9PT0gXCJuZXZlclwiKSB7XG4gICAgICAgICAgICB0aGlzLnNob3VsZFJlZHVjZU1vdGlvbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMucmVkdWNlZE1vdGlvbkNvbmZpZyA9PT0gXCJhbHdheXNcIikge1xuICAgICAgICAgICAgdGhpcy5zaG91bGRSZWR1Y2VNb3Rpb24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGluaXRQcmVmZXJzUmVkdWNlZE1vdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zaG91bGRSZWR1Y2VNb3Rpb24gPSBwcmVmZXJzUmVkdWNlZE1vdGlvbi5jdXJyZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgICAgICAgIHdhcm5PbmNlKHRoaXMuc2hvdWxkUmVkdWNlTW90aW9uICE9PSB0cnVlLCBcIllvdSBoYXZlIFJlZHVjZWQgTW90aW9uIGVuYWJsZWQgb24geW91ciBkZXZpY2UuIEFuaW1hdGlvbnMgbWF5IG5vdCBhcHBlYXIgYXMgZXhwZWN0ZWQuXCIsIFwicmVkdWNlZC1tb3Rpb24tZGlzYWJsZWRcIik7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNldCB3aGV0aGVyIGFuaW1hdGlvbnMgc2hvdWxkIGJlIHNraXBwZWQgYmFzZWQgb24gdGhlIGNvbmZpZy5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuc2hvdWxkU2tpcEFuaW1hdGlvbnMgPSB0aGlzLnNraXBBbmltYXRpb25zQ29uZmlnID8/IGZhbHNlO1xuICAgICAgICB0aGlzLnBhcmVudD8uYWRkQ2hpbGQodGhpcyk7XG4gICAgICAgIHRoaXMudXBkYXRlKHRoaXMucHJvcHMsIHRoaXMucHJlc2VuY2VDb250ZXh0KTtcbiAgICAgICAgdGhpcy5oYXNCZWVuTW91bnRlZCA9IHRydWU7XG4gICAgfVxuICAgIHVubW91bnQoKSB7XG4gICAgICAgIHRoaXMucHJvamVjdGlvbiAmJiB0aGlzLnByb2plY3Rpb24udW5tb3VudCgpO1xuICAgICAgICBjYW5jZWxGcmFtZSh0aGlzLm5vdGlmeVVwZGF0ZSk7XG4gICAgICAgIGNhbmNlbEZyYW1lKHRoaXMucmVuZGVyKTtcbiAgICAgICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocmVtb3ZlKSA9PiByZW1vdmUoKSk7XG4gICAgICAgIHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmNsZWFyKCk7XG4gICAgICAgIHRoaXMucmVtb3ZlRnJvbVZhcmlhbnRUcmVlICYmIHRoaXMucmVtb3ZlRnJvbVZhcmlhbnRUcmVlKCk7XG4gICAgICAgIHRoaXMucGFyZW50Py5yZW1vdmVDaGlsZCh0aGlzKTtcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5ldmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzW2tleV0uY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmZlYXR1cmVzKSB7XG4gICAgICAgICAgICBjb25zdCBmZWF0dXJlID0gdGhpcy5mZWF0dXJlc1trZXldO1xuICAgICAgICAgICAgaWYgKGZlYXR1cmUpIHtcbiAgICAgICAgICAgICAgICBmZWF0dXJlLnVubW91bnQoKTtcbiAgICAgICAgICAgICAgICBmZWF0dXJlLmlzTW91bnRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudCA9IG51bGw7XG4gICAgfVxuICAgIGFkZENoaWxkKGNoaWxkKSB7XG4gICAgICAgIHRoaXMuY2hpbGRyZW4uYWRkKGNoaWxkKTtcbiAgICAgICAgdGhpcy5lbnRlcmluZ0NoaWxkcmVuID8/ICh0aGlzLmVudGVyaW5nQ2hpbGRyZW4gPSBuZXcgU2V0KCkpO1xuICAgICAgICB0aGlzLmVudGVyaW5nQ2hpbGRyZW4uYWRkKGNoaWxkKTtcbiAgICB9XG4gICAgcmVtb3ZlQ2hpbGQoY2hpbGQpIHtcbiAgICAgICAgdGhpcy5jaGlsZHJlbi5kZWxldGUoY2hpbGQpO1xuICAgICAgICB0aGlzLmVudGVyaW5nQ2hpbGRyZW4gJiYgdGhpcy5lbnRlcmluZ0NoaWxkcmVuLmRlbGV0ZShjaGlsZCk7XG4gICAgfVxuICAgIGJpbmRUb01vdGlvblZhbHVlKGtleSwgdmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5nZXQoa2V5KSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZS5hY2NlbGVyYXRlICYmXG4gICAgICAgICAgICBhY2NlbGVyYXRlZFZhbHVlcy5oYXMoa2V5KSAmJlxuICAgICAgICAgICAgdGhpcy5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZmFjdG9yeSwga2V5ZnJhbWVzLCB0aW1lcywgZWFzZSwgZHVyYXRpb24gfSA9IHZhbHVlLmFjY2VsZXJhdGU7XG4gICAgICAgICAgICBjb25zdCBhbmltYXRpb24gPSBuZXcgTmF0aXZlQW5pbWF0aW9uKHtcbiAgICAgICAgICAgICAgICBlbGVtZW50OiB0aGlzLmN1cnJlbnQsXG4gICAgICAgICAgICAgICAgbmFtZToga2V5LFxuICAgICAgICAgICAgICAgIGtleWZyYW1lcyxcbiAgICAgICAgICAgICAgICB0aW1lcyxcbiAgICAgICAgICAgICAgICBlYXNlLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBzZWNvbmRzVG9NaWxsaXNlY29uZHMoZHVyYXRpb24pLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBjbGVhbnVwID0gZmFjdG9yeShhbmltYXRpb24pO1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN1YnNjcmlwdGlvbnMuc2V0KGtleSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNsZWFudXAoKTtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24uY2FuY2VsKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWx1ZUlzVHJhbnNmb3JtID0gdHJhbnNmb3JtUHJvcHMuaGFzKGtleSk7XG4gICAgICAgIGlmICh2YWx1ZUlzVHJhbnNmb3JtICYmIHRoaXMub25CaW5kVHJhbnNmb3JtKSB7XG4gICAgICAgICAgICB0aGlzLm9uQmluZFRyYW5zZm9ybSgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlbW92ZU9uQ2hhbmdlID0gdmFsdWUub24oXCJjaGFuZ2VcIiwgKGxhdGVzdFZhbHVlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxhdGVzdFZhbHVlc1trZXldID0gbGF0ZXN0VmFsdWU7XG4gICAgICAgICAgICB0aGlzLnByb3BzLm9uVXBkYXRlICYmIGZyYW1lLnByZVJlbmRlcih0aGlzLm5vdGlmeVVwZGF0ZSk7XG4gICAgICAgICAgICBpZiAodmFsdWVJc1RyYW5zZm9ybSAmJiB0aGlzLnByb2plY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2plY3Rpb24uaXNUcmFuc2Zvcm1EaXJ0eSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNjaGVkdWxlUmVuZGVyKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgcmVtb3ZlU3luY0NoZWNrO1xuICAgICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJlxuICAgICAgICAgICAgd2luZG93Lk1vdGlvbkNoZWNrQXBwZWFyU3luYykge1xuICAgICAgICAgICAgcmVtb3ZlU3luY0NoZWNrID0gd2luZG93Lk1vdGlvbkNoZWNrQXBwZWFyU3luYyh0aGlzLCBrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5zZXQoa2V5LCAoKSA9PiB7XG4gICAgICAgICAgICByZW1vdmVPbkNoYW5nZSgpO1xuICAgICAgICAgICAgaWYgKHJlbW92ZVN5bmNDaGVjaylcbiAgICAgICAgICAgICAgICByZW1vdmVTeW5jQ2hlY2soKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5vd25lcilcbiAgICAgICAgICAgICAgICB2YWx1ZS5zdG9wKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBzb3J0Tm9kZVBvc2l0aW9uKG90aGVyKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGVzZSBub2RlcyBhcmVuJ3QgZXZlbiBvZiB0aGUgc2FtZSB0eXBlIHdlIGNhbid0IGNvbXBhcmUgdGhlaXIgZGVwdGguXG4gICAgICAgICAqL1xuICAgICAgICBpZiAoIXRoaXMuY3VycmVudCB8fFxuICAgICAgICAgICAgIXRoaXMuc29ydEluc3RhbmNlTm9kZVBvc2l0aW9uIHx8XG4gICAgICAgICAgICB0aGlzLnR5cGUgIT09IG90aGVyLnR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRJbnN0YW5jZU5vZGVQb3NpdGlvbih0aGlzLmN1cnJlbnQsIG90aGVyLmN1cnJlbnQpO1xuICAgIH1cbiAgICB1cGRhdGVGZWF0dXJlcygpIHtcbiAgICAgICAgbGV0IGtleSA9IFwiYW5pbWF0aW9uXCI7XG4gICAgICAgIGZvciAoa2V5IGluIGZlYXR1cmVEZWZpbml0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgZmVhdHVyZURlZmluaXRpb24gPSBmZWF0dXJlRGVmaW5pdGlvbnNba2V5XTtcbiAgICAgICAgICAgIGlmICghZmVhdHVyZURlZmluaXRpb24pXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBjb25zdCB7IGlzRW5hYmxlZCwgRmVhdHVyZTogRmVhdHVyZUNvbnN0cnVjdG9yIH0gPSBmZWF0dXJlRGVmaW5pdGlvbjtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQgYnV0IG5vdCBhY3RpdmUsIG1ha2UgYSBuZXcgaW5zdGFuY2UuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICghdGhpcy5mZWF0dXJlc1trZXldICYmXG4gICAgICAgICAgICAgICAgRmVhdHVyZUNvbnN0cnVjdG9yICYmXG4gICAgICAgICAgICAgICAgaXNFbmFibGVkKHRoaXMucHJvcHMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mZWF0dXJlc1trZXldID0gbmV3IEZlYXR1cmVDb25zdHJ1Y3Rvcih0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBhIGZlYXR1cmUsIG1vdW50IG9yIHVwZGF0ZSBpdC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHRoaXMuZmVhdHVyZXNba2V5XSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZlYXR1cmUgPSB0aGlzLmZlYXR1cmVzW2tleV07XG4gICAgICAgICAgICAgICAgaWYgKGZlYXR1cmUuaXNNb3VudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGZlYXR1cmUudXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBmZWF0dXJlLm1vdW50KCk7XG4gICAgICAgICAgICAgICAgICAgIGZlYXR1cmUuaXNNb3VudGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHJpZ2dlckJ1aWxkKCkge1xuICAgICAgICB0aGlzLmJ1aWxkKHRoaXMucmVuZGVyU3RhdGUsIHRoaXMubGF0ZXN0VmFsdWVzLCB0aGlzLnByb3BzKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogTWVhc3VyZSB0aGUgY3VycmVudCB2aWV3cG9ydCBib3ggd2l0aCBvciB3aXRob3V0IHRyYW5zZm9ybXMuXG4gICAgICogT25seSBtZWFzdXJlcyBheGlzLWFsaWduZWQgYm94ZXMsIHJvdGF0ZSBhbmQgc2tldyBtdXN0IGJlIG1hbnVhbGx5XG4gICAgICogcmVtb3ZlZCB3aXRoIGEgcmUtcmVuZGVyIHRvIHdvcmsuXG4gICAgICovXG4gICAgbWVhc3VyZVZpZXdwb3J0Qm94KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jdXJyZW50XG4gICAgICAgICAgICA/IHRoaXMubWVhc3VyZUluc3RhbmNlVmlld3BvcnRCb3godGhpcy5jdXJyZW50LCB0aGlzLnByb3BzKVxuICAgICAgICAgICAgOiBjcmVhdGVCb3goKTtcbiAgICB9XG4gICAgZ2V0U3RhdGljVmFsdWUoa2V5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhdGVzdFZhbHVlc1trZXldO1xuICAgIH1cbiAgICBzZXRTdGF0aWNWYWx1ZShrZXksIHZhbHVlKSB7XG4gICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzW2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBwcm92aWRlZCBwcm9wcy4gRW5zdXJlIGFueSBuZXdseS1hZGRlZCBtb3Rpb24gdmFsdWVzIGFyZVxuICAgICAqIGFkZGVkIHRvIG91ciBtYXAsIG9sZCBvbmVzIHJlbW92ZWQsIGFuZCBsaXN0ZW5lcnMgdXBkYXRlZC5cbiAgICAgKi9cbiAgICB1cGRhdGUocHJvcHMsIHByZXNlbmNlQ29udGV4dCkge1xuICAgICAgICBpZiAocHJvcHMudHJhbnNmb3JtVGVtcGxhdGUgfHwgdGhpcy5wcm9wcy50cmFuc2Zvcm1UZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZVJlbmRlcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJldlByb3BzID0gdGhpcy5wcm9wcztcbiAgICAgICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgICAgICB0aGlzLnByZXZQcmVzZW5jZUNvbnRleHQgPSB0aGlzLnByZXNlbmNlQ29udGV4dDtcbiAgICAgICAgdGhpcy5wcmVzZW5jZUNvbnRleHQgPSBwcmVzZW5jZUNvbnRleHQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVcGRhdGUgcHJvcCBldmVudCBoYW5kbGVycyBpZSBvbkFuaW1hdGlvblN0YXJ0LCBvbkFuaW1hdGlvbkNvbXBsZXRlXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BFdmVudEhhbmRsZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBwcm9wRXZlbnRIYW5kbGVyc1tpXTtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNba2V5XSkge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9uc1trZXldKCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucHJvcEV2ZW50U3Vic2NyaXB0aW9uc1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgbGlzdGVuZXJOYW1lID0gKFwib25cIiArIGtleSk7XG4gICAgICAgICAgICBjb25zdCBsaXN0ZW5lciA9IHByb3BzW2xpc3RlbmVyTmFtZV07XG4gICAgICAgICAgICBpZiAobGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BFdmVudFN1YnNjcmlwdGlvbnNba2V5XSA9IHRoaXMub24oa2V5LCBsaXN0ZW5lcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcmV2TW90aW9uVmFsdWVzID0gdXBkYXRlTW90aW9uVmFsdWVzRnJvbVByb3BzKHRoaXMsIHRoaXMuc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLCB0aGlzLnByZXZQcm9wcyB8fCB7fSwgdGhpcyksIHRoaXMucHJldk1vdGlvblZhbHVlcyk7XG4gICAgICAgIGlmICh0aGlzLmhhbmRsZUNoaWxkTW90aW9uVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hpbGRNb3Rpb25WYWx1ZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldFByb3BzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcztcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdmFyaWFudCBkZWZpbml0aW9uIHdpdGggYSBnaXZlbiBuYW1lLlxuICAgICAqL1xuICAgIGdldFZhcmlhbnQobmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy52YXJpYW50cyA/IHRoaXMucHJvcHMudmFyaWFudHNbbmFtZV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGRlZmluZWQgZGVmYXVsdCB0cmFuc2l0aW9uIG9uIHRoaXMgY29tcG9uZW50LlxuICAgICAqL1xuICAgIGdldERlZmF1bHRUcmFuc2l0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wcm9wcy50cmFuc2l0aW9uO1xuICAgIH1cbiAgICBnZXRUcmFuc2Zvcm1QYWdlUG9pbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLnRyYW5zZm9ybVBhZ2VQb2ludDtcbiAgICB9XG4gICAgZ2V0Q2xvc2VzdFZhcmlhbnROb2RlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhcmlhbnROb2RlXG4gICAgICAgICAgICA/IHRoaXNcbiAgICAgICAgICAgIDogdGhpcy5wYXJlbnRcbiAgICAgICAgICAgICAgICA/IHRoaXMucGFyZW50LmdldENsb3Nlc3RWYXJpYW50Tm9kZSgpXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZCBhIGNoaWxkIHZpc3VhbCBlbGVtZW50IHRvIG91ciBzZXQgb2YgY2hpbGRyZW4uXG4gICAgICovXG4gICAgYWRkVmFyaWFudENoaWxkKGNoaWxkKSB7XG4gICAgICAgIGNvbnN0IGNsb3Nlc3RWYXJpYW50Tm9kZSA9IHRoaXMuZ2V0Q2xvc2VzdFZhcmlhbnROb2RlKCk7XG4gICAgICAgIGlmIChjbG9zZXN0VmFyaWFudE5vZGUpIHtcbiAgICAgICAgICAgIGNsb3Nlc3RWYXJpYW50Tm9kZS52YXJpYW50Q2hpbGRyZW4gJiZcbiAgICAgICAgICAgICAgICBjbG9zZXN0VmFyaWFudE5vZGUudmFyaWFudENoaWxkcmVuLmFkZChjaGlsZCk7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gY2xvc2VzdFZhcmlhbnROb2RlLnZhcmlhbnRDaGlsZHJlbi5kZWxldGUoY2hpbGQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZCBhIG1vdGlvbiB2YWx1ZSBhbmQgYmluZCBpdCB0byB0aGlzIHZpc3VhbCBlbGVtZW50LlxuICAgICAqL1xuICAgIGFkZFZhbHVlKGtleSwgdmFsdWUpIHtcbiAgICAgICAgLy8gUmVtb3ZlIGV4aXN0aW5nIHZhbHVlIGlmIGl0IGV4aXN0c1xuICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gdGhpcy52YWx1ZXMuZ2V0KGtleSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gZXhpc3RpbmdWYWx1ZSkge1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nVmFsdWUpXG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVWYWx1ZShrZXkpO1xuICAgICAgICAgICAgdGhpcy5iaW5kVG9Nb3Rpb25WYWx1ZShrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVzLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMubGF0ZXN0VmFsdWVzW2tleV0gPSB2YWx1ZS5nZXQoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgYSBtb3Rpb24gdmFsdWUgYW5kIHVuYmluZCBhbnkgYWN0aXZlIHN1YnNjcmlwdGlvbnMuXG4gICAgICovXG4gICAgcmVtb3ZlVmFsdWUoa2V5KSB7XG4gICAgICAgIHRoaXMudmFsdWVzLmRlbGV0ZShrZXkpO1xuICAgICAgICBjb25zdCB1bnN1YnNjcmliZSA9IHRoaXMudmFsdWVTdWJzY3JpcHRpb25zLmdldChrZXkpO1xuICAgICAgICBpZiAodW5zdWJzY3JpYmUpIHtcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlU3Vic2NyaXB0aW9ucy5kZWxldGUoa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBkZWxldGUgdGhpcy5sYXRlc3RWYWx1ZXNba2V5XTtcbiAgICAgICAgdGhpcy5yZW1vdmVWYWx1ZUZyb21SZW5kZXJTdGF0ZShrZXksIHRoaXMucmVuZGVyU3RhdGUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGVjayB3aGV0aGVyIHdlIGhhdmUgYSBtb3Rpb24gdmFsdWUgZm9yIHRoaXMga2V5XG4gICAgICovXG4gICAgaGFzVmFsdWUoa2V5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlcy5oYXMoa2V5KTtcbiAgICB9XG4gICAgZ2V0VmFsdWUoa2V5LCBkZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMucHJvcHMudmFsdWVzICYmIHRoaXMucHJvcHMudmFsdWVzW2tleV0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb3BzLnZhbHVlc1trZXldO1xuICAgICAgICB9XG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMudmFsdWVzLmdldChrZXkpO1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCAmJiBkZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdmFsdWUgPSBtb3Rpb25WYWx1ZShkZWZhdWx0VmFsdWUgPT09IG51bGwgPyB1bmRlZmluZWQgOiBkZWZhdWx0VmFsdWUsIHsgb3duZXI6IHRoaXMgfSk7XG4gICAgICAgICAgICB0aGlzLmFkZFZhbHVlKGtleSwgdmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSWYgd2UncmUgdHJ5aW5nIHRvIGFuaW1hdGUgdG8gYSBwcmV2aW91c2x5IHVuZW5jb3VudGVyZWQgdmFsdWUsXG4gICAgICogd2UgbmVlZCB0byBjaGVjayBmb3IgaXQgaW4gb3VyIHN0YXRlIGFuZCBhcyBhIGxhc3QgcmVzb3J0IHJlYWQgaXRcbiAgICAgKiBkaXJlY3RseSBmcm9tIHRoZSBpbnN0YW5jZSAod2hpY2ggbWlnaHQgaGF2ZSBwZXJmb3JtYW5jZSBpbXBsaWNhdGlvbnMpLlxuICAgICAqL1xuICAgIHJlYWRWYWx1ZShrZXksIHRhcmdldCkge1xuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmxhdGVzdFZhbHVlc1trZXldICE9PSB1bmRlZmluZWQgfHwgIXRoaXMuY3VycmVudFxuICAgICAgICAgICAgPyB0aGlzLmxhdGVzdFZhbHVlc1trZXldXG4gICAgICAgICAgICA6IHRoaXMuZ2V0QmFzZVRhcmdldEZyb21Qcm9wcyh0aGlzLnByb3BzLCBrZXkpID8/XG4gICAgICAgICAgICAgICAgdGhpcy5yZWFkVmFsdWVGcm9tSW5zdGFuY2UodGhpcy5jdXJyZW50LCBrZXksIHRoaXMub3B0aW9ucyk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgICAgICAgICAgKGlzTnVtZXJpY2FsU3RyaW5nKHZhbHVlKSB8fCBpc1plcm9WYWx1ZVN0cmluZyh2YWx1ZSkpKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIG51bWJlciByZWFkIGFzIGEgc3RyaW5nLCBpZSBcIjBcIiBvciBcIjIwMFwiLCBjb252ZXJ0IGl0IHRvIGEgbnVtYmVyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKCFmaW5kVmFsdWVUeXBlKHZhbHVlKSAmJiBjb21wbGV4LnRlc3QodGFyZ2V0KSkge1xuICAgICAgICAgICAgICAgIHZhbHVlID0gZ2V0QW5pbWF0YWJsZU5vbmUoa2V5LCB0YXJnZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXRCYXNlVGFyZ2V0KGtleSwgaXNNb3Rpb25WYWx1ZSh2YWx1ZSkgPyB2YWx1ZS5nZXQoKSA6IHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNNb3Rpb25WYWx1ZSh2YWx1ZSkgPyB2YWx1ZS5nZXQoKSA6IHZhbHVlO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBTZXQgdGhlIGJhc2UgdGFyZ2V0IHRvIGxhdGVyIGFuaW1hdGUgYmFjayB0by4gVGhpcyBpcyBjdXJyZW50bHlcbiAgICAgKiBvbmx5IGh5ZHJhdGVkIG9uIGNyZWF0aW9uIGFuZCB3aGVuIHdlIGZpcnN0IHJlYWQgYSB2YWx1ZS5cbiAgICAgKi9cbiAgICBzZXRCYXNlVGFyZ2V0KGtleSwgdmFsdWUpIHtcbiAgICAgICAgdGhpcy5iYXNlVGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogRmluZCB0aGUgYmFzZSB0YXJnZXQgZm9yIGEgdmFsdWUgdGhhdHMgYmVlbiByZW1vdmVkIGZyb20gYWxsIGFuaW1hdGlvblxuICAgICAqIHByb3BzLlxuICAgICAqL1xuICAgIGdldEJhc2VUYXJnZXQoa2V5KSB7XG4gICAgICAgIGNvbnN0IHsgaW5pdGlhbCB9ID0gdGhpcy5wcm9wcztcbiAgICAgICAgbGV0IHZhbHVlRnJvbUluaXRpYWw7XG4gICAgICAgIGlmICh0eXBlb2YgaW5pdGlhbCA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2YgaW5pdGlhbCA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICAgICAgY29uc3QgdmFyaWFudCA9IHJlc29sdmVWYXJpYW50RnJvbVByb3BzKHRoaXMucHJvcHMsIGluaXRpYWwsIHRoaXMucHJlc2VuY2VDb250ZXh0Py5jdXN0b20pO1xuICAgICAgICAgICAgaWYgKHZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZUZyb21Jbml0aWFsID0gdmFyaWFudFtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGlzIHZhbHVlIHN0aWxsIGV4aXN0cyBpbiB0aGUgY3VycmVudCBpbml0aWFsIHZhcmlhbnQsIHJlYWQgdGhhdC5cbiAgICAgICAgICovXG4gICAgICAgIGlmIChpbml0aWFsICYmIHZhbHVlRnJvbUluaXRpYWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlRnJvbUluaXRpYWw7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFsdGVybmF0aXZlbHksIGlmIHRoaXMgVmlzdWFsRWxlbWVudCBjb25maWcgaGFzIGRlZmluZWQgYSBnZXRCYXNlVGFyZ2V0XG4gICAgICAgICAqIHNvIHdlIGNhbiByZWFkIHRoZSB2YWx1ZSBmcm9tIGFuIGFsdGVybmF0aXZlIHNvdXJjZSwgdHJ5IHRoYXQuXG4gICAgICAgICAqL1xuICAgICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmdldEJhc2VUYXJnZXRGcm9tUHJvcHModGhpcy5wcm9wcywga2V5KTtcbiAgICAgICAgaWYgKHRhcmdldCAhPT0gdW5kZWZpbmVkICYmICFpc01vdGlvblZhbHVlKHRhcmdldCkpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICAvKipcbiAgICAgICAgICogSWYgdGhlIHZhbHVlIHdhcyBpbml0aWFsbHkgZGVmaW5lZCBvbiBpbml0aWFsLCBidXQgaXQgZG9lc24ndCBhbnkgbW9yZSxcbiAgICAgICAgICogcmV0dXJuIHVuZGVmaW5lZC4gT3RoZXJ3aXNlIHJldHVybiB0aGUgdmFsdWUgYXMgaW5pdGlhbGx5IHJlYWQgZnJvbSB0aGUgRE9NLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHRoaXMuaW5pdGlhbFZhbHVlc1trZXldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIHZhbHVlRnJvbUluaXRpYWwgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgPyB1bmRlZmluZWRcbiAgICAgICAgICAgIDogdGhpcy5iYXNlVGFyZ2V0W2tleV07XG4gICAgfVxuICAgIG9uKGV2ZW50TmFtZSwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCF0aGlzLmV2ZW50c1tldmVudE5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50c1tldmVudE5hbWVdID0gbmV3IFN1YnNjcmlwdGlvbk1hbmFnZXIoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ldmVudHNbZXZlbnROYW1lXS5hZGQoY2FsbGJhY2spO1xuICAgIH1cbiAgICBub3RpZnkoZXZlbnROYW1lLCAuLi5hcmdzKSB7XG4gICAgICAgIGlmICh0aGlzLmV2ZW50c1tldmVudE5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50c1tldmVudE5hbWVdLm5vdGlmeSguLi5hcmdzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzY2hlZHVsZVJlbmRlck1pY3JvdGFzaygpIHtcbiAgICAgICAgbWljcm90YXNrLnJlbmRlcih0aGlzLnJlbmRlcik7XG4gICAgfVxufVxuXG5leHBvcnQgeyBWaXN1YWxFbGVtZW50LCBnZXRGZWF0dXJlRGVmaW5pdGlvbnMsIHNldEZlYXR1cmVEZWZpbml0aW9ucyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VmlzdWFsRWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ DOMVisualElement: () => (/* binding */ DOMVisualElement)\n/* harmony export */ });\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _animation_keyframes_DOMKeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/keyframes/DOMKeyframesResolver.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs\");\n/* harmony import */ var _VisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../VisualElement.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/VisualElement.mjs\");\n\n\n\n\nclass DOMVisualElement extends _VisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.VisualElement {\n constructor() {\n super(...arguments);\n this.KeyframeResolver = _animation_keyframes_DOMKeyframesResolver_mjs__WEBPACK_IMPORTED_MODULE_1__.DOMKeyframesResolver;\n }\n sortInstanceNodePosition(a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n }\n getBaseTargetFromProps(props, key) {\n const style = props.style;\n return style ? style[key] : undefined;\n }\n removeValueFromRenderState(key, { vars, style }) {\n delete vars[key];\n delete style[key];\n }\n handleChildMotionValue() {\n if (this.childSubscription) {\n this.childSubscription();\n delete this.childSubscription;\n }\n const { children } = this.props;\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_2__.isMotionValue)(children)) {\n this.childSubscription = children.on(\"change\", (latest) => {\n if (this.current) {\n this.current.textContent = `${latest}`;\n }\n });\n }\n }\n}\n\n\n//# sourceMappingURL=DOMVisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9ET01WaXN1YWxFbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQXNFO0FBQ29CO0FBQ3JDOztBQUVyRCwrQkFBK0IsNkRBQWE7QUFDNUM7QUFDQTtBQUNBLGdDQUFnQywrRkFBb0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsYUFBYTtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFdBQVc7QUFDM0IsWUFBWSwrRUFBYTtBQUN6QjtBQUNBO0FBQ0Esa0RBQWtELE9BQU87QUFDekQ7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBOztBQUU0QjtBQUM1QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9ET01WaXN1YWxFbGVtZW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc01vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyc7XG5pbXBvcnQgeyBET01LZXlmcmFtZXNSZXNvbHZlciB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi9rZXlmcmFtZXMvRE9NS2V5ZnJhbWVzUmVzb2x2ZXIubWpzJztcbmltcG9ydCB7IFZpc3VhbEVsZW1lbnQgfSBmcm9tICcuLi9WaXN1YWxFbGVtZW50Lm1qcyc7XG5cbmNsYXNzIERPTVZpc3VhbEVsZW1lbnQgZXh0ZW5kcyBWaXN1YWxFbGVtZW50IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy5LZXlmcmFtZVJlc29sdmVyID0gRE9NS2V5ZnJhbWVzUmVzb2x2ZXI7XG4gICAgfVxuICAgIHNvcnRJbnN0YW5jZU5vZGVQb3NpdGlvbihhLCBiKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiByZXR1cm5zIGEgYml0bWFzaywgYnkgdXNpbmcgdGhlIGJpdHdpc2UgJlxuICAgICAgICAgKiB3ZSdyZSByZXR1cm5pbmcgdHJ1ZSBpZiAyIGluIHRoYXQgYml0bWFzayBpcyBzZXQgdG8gdHJ1ZS4gMiBpcyBzZXRcbiAgICAgICAgICogdG8gdHJ1ZSBpZiBiIHByZWNlZWRzIGEuXG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSAmIDIgPyAxIDogLTE7XG4gICAgfVxuICAgIGdldEJhc2VUYXJnZXRGcm9tUHJvcHMocHJvcHMsIGtleSkge1xuICAgICAgICBjb25zdCBzdHlsZSA9IHByb3BzLnN0eWxlO1xuICAgICAgICByZXR1cm4gc3R5bGUgPyBzdHlsZVtrZXldIDogdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZW1vdmVWYWx1ZUZyb21SZW5kZXJTdGF0ZShrZXksIHsgdmFycywgc3R5bGUgfSkge1xuICAgICAgICBkZWxldGUgdmFyc1trZXldO1xuICAgICAgICBkZWxldGUgc3R5bGVba2V5XTtcbiAgICB9XG4gICAgaGFuZGxlQ2hpbGRNb3Rpb25WYWx1ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY2hpbGRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY2hpbGRTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmNoaWxkU3Vic2NyaXB0aW9uO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XG4gICAgICAgIGlmIChpc01vdGlvblZhbHVlKGNoaWxkcmVuKSkge1xuICAgICAgICAgICAgdGhpcy5jaGlsZFN1YnNjcmlwdGlvbiA9IGNoaWxkcmVuLm9uKFwiY2hhbmdlXCIsIChsYXRlc3QpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudC50ZXh0Q29udGVudCA9IGAke2xhdGVzdH1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgeyBET01WaXN1YWxFbGVtZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ET01WaXN1YWxFbGVtZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isCSSVar: () => (/* binding */ isCSSVar)\n/* harmony export */ });\nconst isCSSVar = (name) => name.startsWith(\"--\");\n\n\n//# sourceMappingURL=is-css-var.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9pcy1jc3MtdmFyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvZG9tL2lzLWNzcy12YXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzQ1NTVmFyID0gKG5hbWUpID0+IG5hbWUuc3RhcnRzV2l0aChcIi0tXCIpO1xuXG5leHBvcnQgeyBpc0NTU1ZhciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtY3NzLXZhci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultTransformValue: () => (/* binding */ defaultTransformValue),\n/* harmony export */ parseValueFromTransform: () => (/* binding */ parseValueFromTransform),\n/* harmony export */ readTransformValue: () => (/* binding */ readTransformValue)\n/* harmony export */ });\nconst radToDeg = (rad) => (rad * 180) / Math.PI;\nconst rotate = (v) => {\n const angle = radToDeg(Math.atan2(v[1], v[0]));\n return rebaseAngle(angle);\n};\nconst matrix2dParsers = {\n x: 4,\n y: 5,\n translateX: 4,\n translateY: 5,\n scaleX: 0,\n scaleY: 3,\n scale: (v) => (Math.abs(v[0]) + Math.abs(v[3])) / 2,\n rotate,\n rotateZ: rotate,\n skewX: (v) => radToDeg(Math.atan(v[1])),\n skewY: (v) => radToDeg(Math.atan(v[2])),\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[2])) / 2,\n};\nconst rebaseAngle = (angle) => {\n angle = angle % 360;\n if (angle < 0)\n angle += 360;\n return angle;\n};\nconst rotateZ = rotate;\nconst scaleX = (v) => Math.sqrt(v[0] * v[0] + v[1] * v[1]);\nconst scaleY = (v) => Math.sqrt(v[4] * v[4] + v[5] * v[5]);\nconst matrix3dParsers = {\n x: 12,\n y: 13,\n z: 14,\n translateX: 12,\n translateY: 13,\n translateZ: 14,\n scaleX,\n scaleY,\n scale: (v) => (scaleX(v) + scaleY(v)) / 2,\n rotateX: (v) => rebaseAngle(radToDeg(Math.atan2(v[6], v[5]))),\n rotateY: (v) => rebaseAngle(radToDeg(Math.atan2(-v[2], v[0]))),\n rotateZ,\n rotate: rotateZ,\n skewX: (v) => radToDeg(Math.atan(v[4])),\n skewY: (v) => radToDeg(Math.atan(v[1])),\n skew: (v) => (Math.abs(v[1]) + Math.abs(v[4])) / 2,\n};\nfunction defaultTransformValue(name) {\n return name.includes(\"scale\") ? 1 : 0;\n}\nfunction parseValueFromTransform(transform, name) {\n if (!transform || transform === \"none\") {\n return defaultTransformValue(name);\n }\n const matrix3dMatch = transform.match(/^matrix3d\\(([-\\d.e\\s,]+)\\)$/u);\n let parsers;\n let match;\n if (matrix3dMatch) {\n parsers = matrix3dParsers;\n match = matrix3dMatch;\n }\n else {\n const matrix2dMatch = transform.match(/^matrix\\(([-\\d.e\\s,]+)\\)$/u);\n parsers = matrix2dParsers;\n match = matrix2dMatch;\n }\n if (!match) {\n return defaultTransformValue(name);\n }\n const valueParser = parsers[name];\n const values = match[1].split(\",\").map(convertTransformToNumber);\n return typeof valueParser === \"function\"\n ? valueParser(values)\n : values[valueParser];\n}\nconst readTransformValue = (instance, name) => {\n const { transform = \"none\" } = getComputedStyle(instance);\n return parseValueFromTransform(transform, name);\n};\nfunction convertTransformToNumber(value) {\n return parseFloat(value.trim());\n}\n\n\n//# sourceMappingURL=parse-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9wYXJzZS10cmFuc2Zvcm0ubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVkscUJBQXFCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRThFO0FBQzlFIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvZG9tL3BhcnNlLXRyYW5zZm9ybS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcmFkVG9EZWcgPSAocmFkKSA9PiAocmFkICogMTgwKSAvIE1hdGguUEk7XG5jb25zdCByb3RhdGUgPSAodikgPT4ge1xuICAgIGNvbnN0IGFuZ2xlID0gcmFkVG9EZWcoTWF0aC5hdGFuMih2WzFdLCB2WzBdKSk7XG4gICAgcmV0dXJuIHJlYmFzZUFuZ2xlKGFuZ2xlKTtcbn07XG5jb25zdCBtYXRyaXgyZFBhcnNlcnMgPSB7XG4gICAgeDogNCxcbiAgICB5OiA1LFxuICAgIHRyYW5zbGF0ZVg6IDQsXG4gICAgdHJhbnNsYXRlWTogNSxcbiAgICBzY2FsZVg6IDAsXG4gICAgc2NhbGVZOiAzLFxuICAgIHNjYWxlOiAodikgPT4gKE1hdGguYWJzKHZbMF0pICsgTWF0aC5hYnModlszXSkpIC8gMixcbiAgICByb3RhdGUsXG4gICAgcm90YXRlWjogcm90YXRlLFxuICAgIHNrZXdYOiAodikgPT4gcmFkVG9EZWcoTWF0aC5hdGFuKHZbMV0pKSxcbiAgICBza2V3WTogKHYpID0+IHJhZFRvRGVnKE1hdGguYXRhbih2WzJdKSksXG4gICAgc2tldzogKHYpID0+IChNYXRoLmFicyh2WzFdKSArIE1hdGguYWJzKHZbMl0pKSAvIDIsXG59O1xuY29uc3QgcmViYXNlQW5nbGUgPSAoYW5nbGUpID0+IHtcbiAgICBhbmdsZSA9IGFuZ2xlICUgMzYwO1xuICAgIGlmIChhbmdsZSA8IDApXG4gICAgICAgIGFuZ2xlICs9IDM2MDtcbiAgICByZXR1cm4gYW5nbGU7XG59O1xuY29uc3Qgcm90YXRlWiA9IHJvdGF0ZTtcbmNvbnN0IHNjYWxlWCA9ICh2KSA9PiBNYXRoLnNxcnQodlswXSAqIHZbMF0gKyB2WzFdICogdlsxXSk7XG5jb25zdCBzY2FsZVkgPSAodikgPT4gTWF0aC5zcXJ0KHZbNF0gKiB2WzRdICsgdls1XSAqIHZbNV0pO1xuY29uc3QgbWF0cml4M2RQYXJzZXJzID0ge1xuICAgIHg6IDEyLFxuICAgIHk6IDEzLFxuICAgIHo6IDE0LFxuICAgIHRyYW5zbGF0ZVg6IDEyLFxuICAgIHRyYW5zbGF0ZVk6IDEzLFxuICAgIHRyYW5zbGF0ZVo6IDE0LFxuICAgIHNjYWxlWCxcbiAgICBzY2FsZVksXG4gICAgc2NhbGU6ICh2KSA9PiAoc2NhbGVYKHYpICsgc2NhbGVZKHYpKSAvIDIsXG4gICAgcm90YXRlWDogKHYpID0+IHJlYmFzZUFuZ2xlKHJhZFRvRGVnKE1hdGguYXRhbjIodls2XSwgdls1XSkpKSxcbiAgICByb3RhdGVZOiAodikgPT4gcmViYXNlQW5nbGUocmFkVG9EZWcoTWF0aC5hdGFuMigtdlsyXSwgdlswXSkpKSxcbiAgICByb3RhdGVaLFxuICAgIHJvdGF0ZTogcm90YXRlWixcbiAgICBza2V3WDogKHYpID0+IHJhZFRvRGVnKE1hdGguYXRhbih2WzRdKSksXG4gICAgc2tld1k6ICh2KSA9PiByYWRUb0RlZyhNYXRoLmF0YW4odlsxXSkpLFxuICAgIHNrZXc6ICh2KSA9PiAoTWF0aC5hYnModlsxXSkgKyBNYXRoLmFicyh2WzRdKSkgLyAyLFxufTtcbmZ1bmN0aW9uIGRlZmF1bHRUcmFuc2Zvcm1WYWx1ZShuYW1lKSB7XG4gICAgcmV0dXJuIG5hbWUuaW5jbHVkZXMoXCJzY2FsZVwiKSA/IDEgOiAwO1xufVxuZnVuY3Rpb24gcGFyc2VWYWx1ZUZyb21UcmFuc2Zvcm0odHJhbnNmb3JtLCBuYW1lKSB7XG4gICAgaWYgKCF0cmFuc2Zvcm0gfHwgdHJhbnNmb3JtID09PSBcIm5vbmVcIikge1xuICAgICAgICByZXR1cm4gZGVmYXVsdFRyYW5zZm9ybVZhbHVlKG5hbWUpO1xuICAgIH1cbiAgICBjb25zdCBtYXRyaXgzZE1hdGNoID0gdHJhbnNmb3JtLm1hdGNoKC9ebWF0cml4M2RcXCgoWy1cXGQuZVxccyxdKylcXCkkL3UpO1xuICAgIGxldCBwYXJzZXJzO1xuICAgIGxldCBtYXRjaDtcbiAgICBpZiAobWF0cml4M2RNYXRjaCkge1xuICAgICAgICBwYXJzZXJzID0gbWF0cml4M2RQYXJzZXJzO1xuICAgICAgICBtYXRjaCA9IG1hdHJpeDNkTWF0Y2g7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBtYXRyaXgyZE1hdGNoID0gdHJhbnNmb3JtLm1hdGNoKC9ebWF0cml4XFwoKFstXFxkLmVcXHMsXSspXFwpJC91KTtcbiAgICAgICAgcGFyc2VycyA9IG1hdHJpeDJkUGFyc2VycztcbiAgICAgICAgbWF0Y2ggPSBtYXRyaXgyZE1hdGNoO1xuICAgIH1cbiAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgIHJldHVybiBkZWZhdWx0VHJhbnNmb3JtVmFsdWUobmFtZSk7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlUGFyc2VyID0gcGFyc2Vyc1tuYW1lXTtcbiAgICBjb25zdCB2YWx1ZXMgPSBtYXRjaFsxXS5zcGxpdChcIixcIikubWFwKGNvbnZlcnRUcmFuc2Zvcm1Ub051bWJlcik7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZVBhcnNlciA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gdmFsdWVQYXJzZXIodmFsdWVzKVxuICAgICAgICA6IHZhbHVlc1t2YWx1ZVBhcnNlcl07XG59XG5jb25zdCByZWFkVHJhbnNmb3JtVmFsdWUgPSAoaW5zdGFuY2UsIG5hbWUpID0+IHtcbiAgICBjb25zdCB7IHRyYW5zZm9ybSA9IFwibm9uZVwiIH0gPSBnZXRDb21wdXRlZFN0eWxlKGluc3RhbmNlKTtcbiAgICByZXR1cm4gcGFyc2VWYWx1ZUZyb21UcmFuc2Zvcm0odHJhbnNmb3JtLCBuYW1lKTtcbn07XG5mdW5jdGlvbiBjb252ZXJ0VHJhbnNmb3JtVG9OdW1iZXIodmFsdWUpIHtcbiAgICByZXR1cm4gcGFyc2VGbG9hdCh2YWx1ZS50cmltKCkpO1xufVxuXG5leHBvcnQgeyBkZWZhdWx0VHJhbnNmb3JtVmFsdWUsIHBhcnNlVmFsdWVGcm9tVHJhbnNmb3JtLCByZWFkVHJhbnNmb3JtVmFsdWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXBhcnNlLXRyYW5zZm9ybS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/style-set.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setStyle: () => (/* binding */ setStyle)\n/* harmony export */ });\n/* harmony import */ var _is_css_var_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-css-var.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs\");\n\n\nfunction setStyle(element, name, value) {\n (0,_is_css_var_mjs__WEBPACK_IMPORTED_MODULE_0__.isCSSVar)(name)\n ? element.style.setProperty(name, value)\n : (element.style[name] = value);\n}\n\n\n//# sourceMappingURL=style-set.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS9zdHlsZS1zZXQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTRDOztBQUU1QztBQUNBLElBQUkseURBQVE7QUFDWjtBQUNBO0FBQ0E7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvZG9tL3N0eWxlLXNldC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNDU1NWYXIgfSBmcm9tICcuL2lzLWNzcy12YXIubWpzJztcblxuZnVuY3Rpb24gc2V0U3R5bGUoZWxlbWVudCwgbmFtZSwgdmFsdWUpIHtcbiAgICBpc0NTU1ZhcihuYW1lKVxuICAgICAgICA/IGVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkobmFtZSwgdmFsdWUpXG4gICAgICAgIDogKGVsZW1lbnQuc3R5bGVbbmFtZV0gPSB2YWx1ZSk7XG59XG5cbmV4cG9ydCB7IHNldFN0eWxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zdHlsZS1zZXQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/style-set.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ camelToDash: () => (/* binding */ camelToDash)\n/* harmony export */ });\nfunction camelToDash(str) {\n return str.replace(/([A-Z])/g, (match) => `-${match.toLowerCase()}`);\n}\n\n\n//# sourceMappingURL=camel-to-dash.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9jYW1lbC10by1kYXNoLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQSxrREFBa0Qsb0JBQW9CO0FBQ3RFOztBQUV1QjtBQUN2QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2RvbS91dGlscy9jYW1lbC10by1kYXNoLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBjYW1lbFRvRGFzaChzdHIpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyhbQS1aXSkvZywgKG1hdGNoKSA9PiBgLSR7bWF0Y2gudG9Mb3dlckNhc2UoKX1gKTtcbn1cblxuZXhwb3J0IHsgY2FtZWxUb0Rhc2ggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhbWVsLXRvLWRhc2gubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ HTMLVisualElement: () => (/* binding */ HTMLVisualElement),\n/* harmony export */ getComputedStyle: () => (/* binding */ getComputedStyle)\n/* harmony export */ });\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../animation/utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom/parse-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs\");\n/* harmony import */ var _projection_utils_measure_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../projection/utils/measure.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/utils/measure.mjs\");\n/* harmony import */ var _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/DOMVisualElement.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs\");\n/* harmony import */ var _utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/build-styles.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var _utils_render_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/render.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs\");\n/* harmony import */ var _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/scrape-motion-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\");\n\n\n\n\n\n\n\n\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nclass HTMLVisualElement extends _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"html\";\n this.renderInstance = _utils_render_mjs__WEBPACK_IMPORTED_MODULE_1__.renderHTML;\n }\n readValueFromInstance(instance, key) {\n if (_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformProps.has(key)) {\n return this.projection?.isProjecting\n ? (0,_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.defaultTransformValue)(key)\n : (0,_dom_parse_transform_mjs__WEBPACK_IMPORTED_MODULE_3__.readTransformValue)(instance, key);\n }\n else {\n const computedStyle = getComputedStyle(instance);\n const value = ((0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_4__.isCSSVariableName)(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0;\n return typeof value === \"string\" ? value.trim() : value;\n }\n }\n measureInstanceViewportBox(instance, { transformPagePoint }) {\n return (0,_projection_utils_measure_mjs__WEBPACK_IMPORTED_MODULE_5__.measureViewportBox)(instance, transformPagePoint);\n }\n build(renderState, latestValues, props) {\n (0,_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_6__.buildHTMLStyles)(renderState, latestValues, props.transformTemplate);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return (0,_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_7__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\n }\n}\n\n\n//# sourceMappingURL=HTMLVisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvSFRNTFZpc3VhbEVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBOEU7QUFDakI7QUFDMEI7QUFDZjtBQUNUO0FBQ0o7QUFDWDtBQUMrQjs7QUFFL0U7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLHVFQUFnQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIseURBQVU7QUFDeEM7QUFDQTtBQUNBLFlBQVkscUVBQWM7QUFDMUI7QUFDQSxrQkFBa0IsK0VBQXFCO0FBQ3ZDLGtCQUFrQiw0RUFBa0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLHVGQUFpQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLG9CQUFvQjtBQUMvRCxlQUFlLGlGQUFrQjtBQUNqQztBQUNBO0FBQ0EsUUFBUSx3RUFBZTtBQUN2QjtBQUNBO0FBQ0EsZUFBZSw0RkFBMkI7QUFDMUM7QUFDQTs7QUFFK0M7QUFDL0MiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL0hUTUxWaXN1YWxFbGVtZW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0NTU1ZhcmlhYmxlTmFtZSB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi91dGlscy9pcy1jc3MtdmFyaWFibGUubWpzJztcbmltcG9ydCB7IHRyYW5zZm9ybVByb3BzIH0gZnJvbSAnLi4vdXRpbHMva2V5cy10cmFuc2Zvcm0ubWpzJztcbmltcG9ydCB7IGRlZmF1bHRUcmFuc2Zvcm1WYWx1ZSwgcmVhZFRyYW5zZm9ybVZhbHVlIH0gZnJvbSAnLi4vZG9tL3BhcnNlLXRyYW5zZm9ybS5tanMnO1xuaW1wb3J0IHsgbWVhc3VyZVZpZXdwb3J0Qm94IH0gZnJvbSAnLi4vLi4vcHJvamVjdGlvbi91dGlscy9tZWFzdXJlLm1qcyc7XG5pbXBvcnQgeyBET01WaXN1YWxFbGVtZW50IH0gZnJvbSAnLi4vZG9tL0RPTVZpc3VhbEVsZW1lbnQubWpzJztcbmltcG9ydCB7IGJ1aWxkSFRNTFN0eWxlcyB9IGZyb20gJy4vdXRpbHMvYnVpbGQtc3R5bGVzLm1qcyc7XG5pbXBvcnQgeyByZW5kZXJIVE1MIH0gZnJvbSAnLi91dGlscy9yZW5kZXIubWpzJztcbmltcG9ydCB7IHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyB9IGZyb20gJy4vdXRpbHMvc2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzJztcblxuZnVuY3Rpb24gZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KSB7XG4gICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xufVxuY2xhc3MgSFRNTFZpc3VhbEVsZW1lbnQgZXh0ZW5kcyBET01WaXN1YWxFbGVtZW50IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy50eXBlID0gXCJodG1sXCI7XG4gICAgICAgIHRoaXMucmVuZGVySW5zdGFuY2UgPSByZW5kZXJIVE1MO1xuICAgIH1cbiAgICByZWFkVmFsdWVGcm9tSW5zdGFuY2UoaW5zdGFuY2UsIGtleSkge1xuICAgICAgICBpZiAodHJhbnNmb3JtUHJvcHMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnByb2plY3Rpb24/LmlzUHJvamVjdGluZ1xuICAgICAgICAgICAgICAgID8gZGVmYXVsdFRyYW5zZm9ybVZhbHVlKGtleSlcbiAgICAgICAgICAgICAgICA6IHJlYWRUcmFuc2Zvcm1WYWx1ZShpbnN0YW5jZSwga2V5KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGluc3RhbmNlKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKGlzQ1NTVmFyaWFibGVOYW1lKGtleSlcbiAgICAgICAgICAgICAgICA/IGNvbXB1dGVkU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZShrZXkpXG4gICAgICAgICAgICAgICAgOiBjb21wdXRlZFN0eWxlW2tleV0pIHx8IDA7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUudHJpbSgpIDogdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgbWVhc3VyZUluc3RhbmNlVmlld3BvcnRCb3goaW5zdGFuY2UsIHsgdHJhbnNmb3JtUGFnZVBvaW50IH0pIHtcbiAgICAgICAgcmV0dXJuIG1lYXN1cmVWaWV3cG9ydEJveChpbnN0YW5jZSwgdHJhbnNmb3JtUGFnZVBvaW50KTtcbiAgICB9XG4gICAgYnVpbGQocmVuZGVyU3RhdGUsIGxhdGVzdFZhbHVlcywgcHJvcHMpIHtcbiAgICAgICAgYnVpbGRIVE1MU3R5bGVzKHJlbmRlclN0YXRlLCBsYXRlc3RWYWx1ZXMsIHByb3BzLnRyYW5zZm9ybVRlbXBsYXRlKTtcbiAgICB9XG4gICAgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLCBwcmV2UHJvcHMsIHZpc3VhbEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywgcHJldlByb3BzLCB2aXN1YWxFbGVtZW50KTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IEhUTUxWaXN1YWxFbGVtZW50LCBnZXRDb21wdXRlZFN0eWxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1IVE1MVmlzdWFsRWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildHTMLStyles: () => (/* binding */ buildHTMLStyles)\n/* harmony export */ });\n/* harmony import */ var _value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../value/types/utils/get-as-type.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\");\n/* harmony import */ var _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../value/types/maps/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../animation/utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _build_transform_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./build-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs\");\n\n\n\n\n\n\nfunction buildHTMLStyles(state, latestValues, transformTemplate) {\n const { style, vars, transformOrigin } = state;\n // Track whether we encounter any transform or transformOrigin values.\n let hasTransform = false;\n let hasTransformOrigin = false;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept separately for further processing.\n */\n for (const key in latestValues) {\n const value = latestValues[key];\n if (_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformProps.has(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n continue;\n }\n else if ((0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableName)(key)) {\n vars[key] = value;\n continue;\n }\n else {\n // Convert the value to its default value type, ie 0 -> \"0px\"\n const valueAsType = (0,_value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_2__.getValueAsType)(value, _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_3__.numberValueTypes[key]);\n if (key.startsWith(\"origin\")) {\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n transformOrigin[key] =\n valueAsType;\n }\n else {\n style[key] = valueAsType;\n }\n }\n }\n if (!latestValues.transform) {\n if (hasTransform || transformTemplate) {\n style.transform = (0,_build_transform_mjs__WEBPACK_IMPORTED_MODULE_4__.buildTransform)(latestValues, state.transform, transformTemplate);\n }\n else if (style.transform) {\n /**\n * If we have previously created a transform but currently don't have any,\n * reset transform style to none.\n */\n style.transform = \"none\";\n }\n }\n /**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\n if (hasTransformOrigin) {\n const { originX = \"50%\", originY = \"50%\", originZ = 0, } = transformOrigin;\n style.transformOrigin = `${originX} ${originY} ${originZ}`;\n }\n}\n\n\n//# sourceMappingURL=build-styles.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvYnVpbGQtc3R5bGVzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBNEU7QUFDSjtBQUNSO0FBQ2lCO0FBQzFCOztBQUV2RDtBQUNBLFlBQVksK0JBQStCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFFQUFjO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLHVGQUFpQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLGtGQUFjLFFBQVEsMEVBQWdCO0FBQ3RFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLG9FQUFjO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsaURBQWlEO0FBQ2pFLG1DQUFtQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVE7QUFDakU7QUFDQTs7QUFFMkI7QUFDM0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL2J1aWxkLXN0eWxlcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VmFsdWVBc1R5cGUgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy91dGlscy9nZXQtYXMtdHlwZS5tanMnO1xuaW1wb3J0IHsgbnVtYmVyVmFsdWVUeXBlcyB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3R5cGVzL21hcHMvbnVtYmVyLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wcyB9IGZyb20gJy4uLy4uL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyBpc0NTU1ZhcmlhYmxlTmFtZSB9IGZyb20gJy4uLy4uLy4uL2FuaW1hdGlvbi91dGlscy9pcy1jc3MtdmFyaWFibGUubWpzJztcbmltcG9ydCB7IGJ1aWxkVHJhbnNmb3JtIH0gZnJvbSAnLi9idWlsZC10cmFuc2Zvcm0ubWpzJztcblxuZnVuY3Rpb24gYnVpbGRIVE1MU3R5bGVzKHN0YXRlLCBsYXRlc3RWYWx1ZXMsIHRyYW5zZm9ybVRlbXBsYXRlKSB7XG4gICAgY29uc3QgeyBzdHlsZSwgdmFycywgdHJhbnNmb3JtT3JpZ2luIH0gPSBzdGF0ZTtcbiAgICAvLyBUcmFjayB3aGV0aGVyIHdlIGVuY291bnRlciBhbnkgdHJhbnNmb3JtIG9yIHRyYW5zZm9ybU9yaWdpbiB2YWx1ZXMuXG4gICAgbGV0IGhhc1RyYW5zZm9ybSA9IGZhbHNlO1xuICAgIGxldCBoYXNUcmFuc2Zvcm1PcmlnaW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBMb29wIG92ZXIgYWxsIG91ciBsYXRlc3QgYW5pbWF0ZWQgdmFsdWVzIGFuZCBkZWNpZGUgd2hldGhlciB0byBoYW5kbGUgdGhlbVxuICAgICAqIGFzIGEgc3R5bGUgb3IgQ1NTIHZhcmlhYmxlLlxuICAgICAqXG4gICAgICogVHJhbnNmb3JtcyBhbmQgdHJhbnNmb3JtIG9yaWdpbnMgYXJlIGtlcHQgc2VwYXJhdGVseSBmb3IgZnVydGhlciBwcm9jZXNzaW5nLlxuICAgICAqL1xuICAgIGZvciAoY29uc3Qga2V5IGluIGxhdGVzdFZhbHVlcykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGxhdGVzdFZhbHVlc1trZXldO1xuICAgICAgICBpZiAodHJhbnNmb3JtUHJvcHMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSB0cmFuc2Zvcm0sIGZsYWcgdG8gZW5hYmxlIGZ1cnRoZXIgdHJhbnNmb3JtIHByb2Nlc3NpbmdcbiAgICAgICAgICAgIGhhc1RyYW5zZm9ybSA9IHRydWU7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChpc0NTU1ZhcmlhYmxlTmFtZShrZXkpKSB7XG4gICAgICAgICAgICB2YXJzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgdmFsdWUgdG8gaXRzIGRlZmF1bHQgdmFsdWUgdHlwZSwgaWUgMCAtPiBcIjBweFwiXG4gICAgICAgICAgICBjb25zdCB2YWx1ZUFzVHlwZSA9IGdldFZhbHVlQXNUeXBlKHZhbHVlLCBudW1iZXJWYWx1ZVR5cGVzW2tleV0pO1xuICAgICAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKFwib3JpZ2luXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHRyYW5zZm9ybSBvcmlnaW4sIGZsYWcgYW5kIGVuYWJsZSBmdXJ0aGVyIHRyYW5zZm9ybS1vcmlnaW4gcHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgIGhhc1RyYW5zZm9ybU9yaWdpbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luW2tleV0gPVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUFzVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHN0eWxlW2tleV0gPSB2YWx1ZUFzVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoIWxhdGVzdFZhbHVlcy50cmFuc2Zvcm0pIHtcbiAgICAgICAgaWYgKGhhc1RyYW5zZm9ybSB8fCB0cmFuc2Zvcm1UZW1wbGF0ZSkge1xuICAgICAgICAgICAgc3R5bGUudHJhbnNmb3JtID0gYnVpbGRUcmFuc2Zvcm0obGF0ZXN0VmFsdWVzLCBzdGF0ZS50cmFuc2Zvcm0sIHRyYW5zZm9ybVRlbXBsYXRlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzdHlsZS50cmFuc2Zvcm0pIHtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UgaGF2ZSBwcmV2aW91c2x5IGNyZWF0ZWQgYSB0cmFuc2Zvcm0gYnV0IGN1cnJlbnRseSBkb24ndCBoYXZlIGFueSxcbiAgICAgICAgICAgICAqIHJlc2V0IHRyYW5zZm9ybSBzdHlsZSB0byBub25lLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBzdHlsZS50cmFuc2Zvcm0gPSBcIm5vbmVcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBCdWlsZCBhIHRyYW5zZm9ybU9yaWdpbiBzdHlsZS4gVXNlcyB0aGUgc2FtZSBkZWZhdWx0cyBhcyB0aGUgYnJvd3NlciBmb3JcbiAgICAgKiB1bmRlZmluZWQgb3JpZ2lucy5cbiAgICAgKi9cbiAgICBpZiAoaGFzVHJhbnNmb3JtT3JpZ2luKSB7XG4gICAgICAgIGNvbnN0IHsgb3JpZ2luWCA9IFwiNTAlXCIsIG9yaWdpblkgPSBcIjUwJVwiLCBvcmlnaW5aID0gMCwgfSA9IHRyYW5zZm9ybU9yaWdpbjtcbiAgICAgICAgc3R5bGUudHJhbnNmb3JtT3JpZ2luID0gYCR7b3JpZ2luWH0gJHtvcmlnaW5ZfSAke29yaWdpblp9YDtcbiAgICB9XG59XG5cbmV4cG9ydCB7IGJ1aWxkSFRNTFN0eWxlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVpbGQtc3R5bGVzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildTransform: () => (/* binding */ buildTransform)\n/* harmony export */ });\n/* harmony import */ var _value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/types/utils/get-as-type.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\");\n/* harmony import */ var _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../value/types/maps/number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n\n\n\n\nconst translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\nconst numTransforms = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder.length;\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(latestValues, transform, transformTemplate) {\n // The transform string we're going to build into.\n let transformString = \"\";\n let transformIsDefault = true;\n /**\n * Loop over all possible transforms in order, adding the ones that\n * are present to the transform string.\n */\n for (let i = 0; i < numTransforms; i++) {\n const key = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder[i];\n const value = latestValues[key];\n if (value === undefined)\n continue;\n let valueIsDefault = true;\n if (typeof value === \"number\") {\n valueIsDefault = value === (key.startsWith(\"scale\") ? 1 : 0);\n }\n else {\n const parsed = parseFloat(value);\n valueIsDefault = key.startsWith(\"scale\") ? parsed === 1 : parsed === 0;\n }\n if (!valueIsDefault || transformTemplate) {\n const valueAsType = (0,_value_types_utils_get_as_type_mjs__WEBPACK_IMPORTED_MODULE_1__.getValueAsType)(value, _value_types_maps_number_mjs__WEBPACK_IMPORTED_MODULE_2__.numberValueTypes[key]);\n if (!valueIsDefault) {\n transformIsDefault = false;\n const transformName = translateAlias[key] || key;\n transformString += `${transformName}(${valueAsType}) `;\n }\n if (transformTemplate) {\n transform[key] = valueAsType;\n }\n }\n }\n transformString = transformString.trim();\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n\n\n//# sourceMappingURL=build-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvYnVpbGQtdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTRFO0FBQ0o7QUFDSjs7QUFFcEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHlFQUFrQjtBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLG1CQUFtQjtBQUN2QyxvQkFBb0IseUVBQWtCO0FBQ3RDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxrRkFBYyxRQUFRLDBFQUFnQjtBQUN0RTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsY0FBYyxHQUFHLFlBQVk7QUFDbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMEI7QUFDMUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL2J1aWxkLXRyYW5zZm9ybS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0VmFsdWVBc1R5cGUgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS90eXBlcy91dGlscy9nZXQtYXMtdHlwZS5tanMnO1xuaW1wb3J0IHsgbnVtYmVyVmFsdWVUeXBlcyB9IGZyb20gJy4uLy4uLy4uL3ZhbHVlL3R5cGVzL21hcHMvbnVtYmVyLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wT3JkZXIgfSBmcm9tICcuLi8uLi91dGlscy9rZXlzLXRyYW5zZm9ybS5tanMnO1xuXG5jb25zdCB0cmFuc2xhdGVBbGlhcyA9IHtcbiAgICB4OiBcInRyYW5zbGF0ZVhcIixcbiAgICB5OiBcInRyYW5zbGF0ZVlcIixcbiAgICB6OiBcInRyYW5zbGF0ZVpcIixcbiAgICB0cmFuc2Zvcm1QZXJzcGVjdGl2ZTogXCJwZXJzcGVjdGl2ZVwiLFxufTtcbmNvbnN0IG51bVRyYW5zZm9ybXMgPSB0cmFuc2Zvcm1Qcm9wT3JkZXIubGVuZ3RoO1xuLyoqXG4gKiBCdWlsZCBhIENTUyB0cmFuc2Zvcm0gc3R5bGUgZnJvbSBpbmRpdmlkdWFsIHgveS9zY2FsZSBldGMgcHJvcGVydGllcy5cbiAqXG4gKiBUaGlzIG91dHB1dHMgd2l0aCBhIGRlZmF1bHQgb3JkZXIgb2YgdHJhbnNmb3Jtcy9zY2FsZXMvcm90YXRpb25zLCB0aGlzIGNhbiBiZSBjdXN0b21pc2VkIGJ5XG4gKiBwcm92aWRpbmcgYSB0cmFuc2Zvcm1UZW1wbGF0ZSBmdW5jdGlvbi5cbiAqL1xuZnVuY3Rpb24gYnVpbGRUcmFuc2Zvcm0obGF0ZXN0VmFsdWVzLCB0cmFuc2Zvcm0sIHRyYW5zZm9ybVRlbXBsYXRlKSB7XG4gICAgLy8gVGhlIHRyYW5zZm9ybSBzdHJpbmcgd2UncmUgZ29pbmcgdG8gYnVpbGQgaW50by5cbiAgICBsZXQgdHJhbnNmb3JtU3RyaW5nID0gXCJcIjtcbiAgICBsZXQgdHJhbnNmb3JtSXNEZWZhdWx0ID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBMb29wIG92ZXIgYWxsIHBvc3NpYmxlIHRyYW5zZm9ybXMgaW4gb3JkZXIsIGFkZGluZyB0aGUgb25lcyB0aGF0XG4gICAgICogYXJlIHByZXNlbnQgdG8gdGhlIHRyYW5zZm9ybSBzdHJpbmcuXG4gICAgICovXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBudW1UcmFuc2Zvcm1zOyBpKyspIHtcbiAgICAgICAgY29uc3Qga2V5ID0gdHJhbnNmb3JtUHJvcE9yZGVyW2ldO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGxhdGVzdFZhbHVlc1trZXldO1xuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBsZXQgdmFsdWVJc0RlZmF1bHQgPSB0cnVlO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICB2YWx1ZUlzRGVmYXVsdCA9IHZhbHVlID09PSAoa2V5LnN0YXJ0c1dpdGgoXCJzY2FsZVwiKSA/IDEgOiAwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgICAgICAgdmFsdWVJc0RlZmF1bHQgPSBrZXkuc3RhcnRzV2l0aChcInNjYWxlXCIpID8gcGFyc2VkID09PSAxIDogcGFyc2VkID09PSAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsdWVJc0RlZmF1bHQgfHwgdHJhbnNmb3JtVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNUeXBlID0gZ2V0VmFsdWVBc1R5cGUodmFsdWUsIG51bWJlclZhbHVlVHlwZXNba2V5XSk7XG4gICAgICAgICAgICBpZiAoIXZhbHVlSXNEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtSXNEZWZhdWx0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtTmFtZSA9IHRyYW5zbGF0ZUFsaWFzW2tleV0gfHwga2V5O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybVN0cmluZyArPSBgJHt0cmFuc2Zvcm1OYW1lfSgke3ZhbHVlQXNUeXBlfSkgYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0cmFuc2Zvcm1UZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybVtrZXldID0gdmFsdWVBc1R5cGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHJhbnNmb3JtU3RyaW5nID0gdHJhbnNmb3JtU3RyaW5nLnRyaW0oKTtcbiAgICAvLyBJZiB3ZSBoYXZlIGEgY3VzdG9tIGB0cmFuc2Zvcm1gIHRlbXBsYXRlLCBwYXNzIG91ciB0cmFuc2Zvcm0gdmFsdWVzIGFuZFxuICAgIC8vIGdlbmVyYXRlZCB0cmFuc2Zvcm1TdHJpbmcgdG8gdGhhdCBiZWZvcmUgcmV0dXJuaW5nXG4gICAgaWYgKHRyYW5zZm9ybVRlbXBsYXRlKSB7XG4gICAgICAgIHRyYW5zZm9ybVN0cmluZyA9IHRyYW5zZm9ybVRlbXBsYXRlKHRyYW5zZm9ybSwgdHJhbnNmb3JtSXNEZWZhdWx0ID8gXCJcIiA6IHRyYW5zZm9ybVN0cmluZyk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRyYW5zZm9ybUlzRGVmYXVsdCkge1xuICAgICAgICB0cmFuc2Zvcm1TdHJpbmcgPSBcIm5vbmVcIjtcbiAgICB9XG4gICAgcmV0dXJuIHRyYW5zZm9ybVN0cmluZztcbn1cblxuZXhwb3J0IHsgYnVpbGRUcmFuc2Zvcm0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1aWxkLXRyYW5zZm9ybS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/render.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ renderHTML: () => (/* binding */ renderHTML)\n/* harmony export */ });\nfunction renderHTML(element, { style, vars }, styleProp, projection) {\n const elementStyle = element.style;\n let key;\n for (key in style) {\n // CSSStyleDeclaration has [index: number]: string; in the types, so we use that as key type.\n elementStyle[key] = style[key];\n }\n // Write projection styles directly to element style\n projection?.applyProjectionStyles(elementStyle, styleProp);\n for (key in vars) {\n // Loop over any CSS variables and assign those.\n // They can only be assigned using `setProperty`.\n elementStyle.setProperty(key, vars[key]);\n }\n}\n\n\n//# sourceMappingURL=render.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvcmVuZGVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsK0JBQStCLGFBQWE7QUFDNUM7QUFDQTtBQUNBO0FBQ0EsNERBQTREO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVzQjtBQUN0QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvcmVuZGVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiByZW5kZXJIVE1MKGVsZW1lbnQsIHsgc3R5bGUsIHZhcnMgfSwgc3R5bGVQcm9wLCBwcm9qZWN0aW9uKSB7XG4gICAgY29uc3QgZWxlbWVudFN0eWxlID0gZWxlbWVudC5zdHlsZTtcbiAgICBsZXQga2V5O1xuICAgIGZvciAoa2V5IGluIHN0eWxlKSB7XG4gICAgICAgIC8vIENTU1N0eWxlRGVjbGFyYXRpb24gaGFzIFtpbmRleDogbnVtYmVyXTogc3RyaW5nOyBpbiB0aGUgdHlwZXMsIHNvIHdlIHVzZSB0aGF0IGFzIGtleSB0eXBlLlxuICAgICAgICBlbGVtZW50U3R5bGVba2V5XSA9IHN0eWxlW2tleV07XG4gICAgfVxuICAgIC8vIFdyaXRlIHByb2plY3Rpb24gc3R5bGVzIGRpcmVjdGx5IHRvIGVsZW1lbnQgc3R5bGVcbiAgICBwcm9qZWN0aW9uPy5hcHBseVByb2plY3Rpb25TdHlsZXMoZWxlbWVudFN0eWxlLCBzdHlsZVByb3ApO1xuICAgIGZvciAoa2V5IGluIHZhcnMpIHtcbiAgICAgICAgLy8gTG9vcCBvdmVyIGFueSBDU1MgdmFyaWFibGVzIGFuZCBhc3NpZ24gdGhvc2UuXG4gICAgICAgIC8vIFRoZXkgY2FuIG9ubHkgYmUgYXNzaWduZWQgdXNpbmcgYHNldFByb3BlcnR5YC5cbiAgICAgICAgZWxlbWVudFN0eWxlLnNldFByb3BlcnR5KGtleSwgdmFyc1trZXldKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IHJlbmRlckhUTUwgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbmRlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs": +/*!************************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs ***! + \************************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ scrapeMotionValuesFromProps: () => (/* binding */ scrapeMotionValuesFromProps)\n/* harmony export */ });\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/is-forced-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs\");\n\n\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const style = props.style;\n const prevStyle = prevProps?.style;\n const newValues = {};\n if (!style)\n return newValues;\n for (const key in style) {\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(style[key]) ||\n (prevStyle && (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(prevStyle[key])) ||\n (0,_utils_is_forced_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__.isForcedMotionValue)(key, props) ||\n visualElement?.getValue(key)?.liveStyle !== undefined) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\n\n//# sourceMappingURL=scrape-motion-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL2h0bWwvdXRpbHMvc2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF5RTtBQUNJOztBQUU3RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksK0VBQWE7QUFDekIsMEJBQTBCLCtFQUFhO0FBQ3ZDLFlBQVksc0ZBQW1CO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFdUM7QUFDdkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9odG1sL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc01vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vdmFsdWUvdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyc7XG5pbXBvcnQgeyBpc0ZvcmNlZE1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvaXMtZm9yY2VkLW1vdGlvbi12YWx1ZS5tanMnO1xuXG5mdW5jdGlvbiBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCkge1xuICAgIGNvbnN0IHN0eWxlID0gcHJvcHMuc3R5bGU7XG4gICAgY29uc3QgcHJldlN0eWxlID0gcHJldlByb3BzPy5zdHlsZTtcbiAgICBjb25zdCBuZXdWYWx1ZXMgPSB7fTtcbiAgICBpZiAoIXN0eWxlKVxuICAgICAgICByZXR1cm4gbmV3VmFsdWVzO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHN0eWxlKSB7XG4gICAgICAgIGlmIChpc01vdGlvblZhbHVlKHN0eWxlW2tleV0pIHx8XG4gICAgICAgICAgICAocHJldlN0eWxlICYmIGlzTW90aW9uVmFsdWUocHJldlN0eWxlW2tleV0pKSB8fFxuICAgICAgICAgICAgaXNGb3JjZWRNb3Rpb25WYWx1ZShrZXksIHByb3BzKSB8fFxuICAgICAgICAgICAgdmlzdWFsRWxlbWVudD8uZ2V0VmFsdWUoa2V5KT8ubGl2ZVN0eWxlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG5ld1ZhbHVlc1trZXldID0gc3R5bGVba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3VmFsdWVzO1xufVxuXG5leHBvcnQgeyBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/store.mjs": +/*!**********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/store.mjs ***! + \**********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ visualElementStore: () => (/* binding */ visualElementStore)\n/* harmony export */ });\nconst visualElementStore = new WeakMap();\n\n\n//# sourceMappingURL=store.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N0b3JlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRThCO0FBQzlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvc3RvcmUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHZpc3VhbEVsZW1lbnRTdG9yZSA9IG5ldyBXZWFrTWFwKCk7XG5cbmV4cG9ydCB7IHZpc3VhbEVsZW1lbnRTdG9yZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RvcmUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/store.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SVGVisualElement: () => (/* binding */ SVGVisualElement)\n/* harmony export */ });\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _value_types_maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../value/types/maps/defaults.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\");\n/* harmony import */ var _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../projection/geometry/models.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/geometry/models.mjs\");\n/* harmony import */ var _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom/DOMVisualElement.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs\");\n/* harmony import */ var _dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom/utils/camel-to-dash.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\");\n/* harmony import */ var _utils_build_attrs_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/build-attrs.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs\");\n/* harmony import */ var _utils_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/camel-case-attrs.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs\");\n/* harmony import */ var _utils_is_svg_tag_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/is-svg-tag.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs\");\n/* harmony import */ var _utils_render_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/render.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/render.mjs\");\n/* harmony import */ var _utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/scrape-motion-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs\");\n\n\n\n\n\n\n\n\n\n\n\nclass SVGVisualElement extends _dom_DOMVisualElement_mjs__WEBPACK_IMPORTED_MODULE_0__.DOMVisualElement {\n constructor() {\n super(...arguments);\n this.type = \"svg\";\n this.isSVGTag = false;\n this.measureInstanceViewportBox = _projection_geometry_models_mjs__WEBPACK_IMPORTED_MODULE_1__.createBox;\n }\n getBaseTargetFromProps(props, key) {\n return props[key];\n }\n readValueFromInstance(instance, key) {\n if (_utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformProps.has(key)) {\n const defaultType = (0,_value_types_maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_3__.getDefaultValueType)(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n key = !_utils_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_4__.camelCaseAttributes.has(key) ? (0,_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_5__.camelToDash)(key) : key;\n return instance.getAttribute(key);\n }\n scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n return (0,_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_6__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\n }\n build(renderState, latestValues, props) {\n (0,_utils_build_attrs_mjs__WEBPACK_IMPORTED_MODULE_7__.buildSVGAttrs)(renderState, latestValues, this.isSVGTag, props.transformTemplate, props.style);\n }\n renderInstance(instance, renderState, styleProp, projection) {\n (0,_utils_render_mjs__WEBPACK_IMPORTED_MODULE_8__.renderSVG)(instance, renderState, styleProp, projection);\n }\n mount(instance) {\n this.isSVGTag = (0,_utils_is_svg_tag_mjs__WEBPACK_IMPORTED_MODULE_9__.isSVGTag)(instance.tagName);\n super.mount(instance);\n }\n}\n\n\n//# sourceMappingURL=SVGVisualElement.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy9TVkdWaXN1YWxFbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUE2RDtBQUNhO0FBQ1Q7QUFDRjtBQUNGO0FBQ0w7QUFDVztBQUNqQjtBQUNIO0FBQ2dDOztBQUUvRSwrQkFBK0IsdUVBQWdCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLHNFQUFTO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLHFFQUFjO0FBQzFCLGdDQUFnQyxtRkFBbUI7QUFDbkQ7QUFDQTtBQUNBLGVBQWUsNEVBQW1CLFlBQVkseUVBQVc7QUFDekQ7QUFDQTtBQUNBO0FBQ0EsZUFBZSw0RkFBMkI7QUFDMUM7QUFDQTtBQUNBLFFBQVEscUVBQWE7QUFDckI7QUFDQTtBQUNBLFFBQVEsNERBQVM7QUFDakI7QUFDQTtBQUNBLHdCQUF3QiwrREFBUTtBQUNoQztBQUNBO0FBQ0E7O0FBRTRCO0FBQzVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvc3ZnL1NWR1Zpc3VhbEVsZW1lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zZm9ybVByb3BzIH0gZnJvbSAnLi4vdXRpbHMva2V5cy10cmFuc2Zvcm0ubWpzJztcbmltcG9ydCB7IGdldERlZmF1bHRWYWx1ZVR5cGUgfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9tYXBzL2RlZmF1bHRzLm1qcyc7XG5pbXBvcnQgeyBjcmVhdGVCb3ggfSBmcm9tICcuLi8uLi9wcm9qZWN0aW9uL2dlb21ldHJ5L21vZGVscy5tanMnO1xuaW1wb3J0IHsgRE9NVmlzdWFsRWxlbWVudCB9IGZyb20gJy4uL2RvbS9ET01WaXN1YWxFbGVtZW50Lm1qcyc7XG5pbXBvcnQgeyBjYW1lbFRvRGFzaCB9IGZyb20gJy4uL2RvbS91dGlscy9jYW1lbC10by1kYXNoLm1qcyc7XG5pbXBvcnQgeyBidWlsZFNWR0F0dHJzIH0gZnJvbSAnLi91dGlscy9idWlsZC1hdHRycy5tanMnO1xuaW1wb3J0IHsgY2FtZWxDYXNlQXR0cmlidXRlcyB9IGZyb20gJy4vdXRpbHMvY2FtZWwtY2FzZS1hdHRycy5tanMnO1xuaW1wb3J0IHsgaXNTVkdUYWcgfSBmcm9tICcuL3V0aWxzL2lzLXN2Zy10YWcubWpzJztcbmltcG9ydCB7IHJlbmRlclNWRyB9IGZyb20gJy4vdXRpbHMvcmVuZGVyLm1qcyc7XG5pbXBvcnQgeyBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgfSBmcm9tICcuL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcyc7XG5cbmNsYXNzIFNWR1Zpc3VhbEVsZW1lbnQgZXh0ZW5kcyBET01WaXN1YWxFbGVtZW50IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoLi4uYXJndW1lbnRzKTtcbiAgICAgICAgdGhpcy50eXBlID0gXCJzdmdcIjtcbiAgICAgICAgdGhpcy5pc1NWR1RhZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1lYXN1cmVJbnN0YW5jZVZpZXdwb3J0Qm94ID0gY3JlYXRlQm94O1xuICAgIH1cbiAgICBnZXRCYXNlVGFyZ2V0RnJvbVByb3BzKHByb3BzLCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIHByb3BzW2tleV07XG4gICAgfVxuICAgIHJlYWRWYWx1ZUZyb21JbnN0YW5jZShpbnN0YW5jZSwga2V5KSB7XG4gICAgICAgIGlmICh0cmFuc2Zvcm1Qcm9wcy5oYXMoa2V5KSkge1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFR5cGUgPSBnZXREZWZhdWx0VmFsdWVUeXBlKGtleSk7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFR5cGUgPyBkZWZhdWx0VHlwZS5kZWZhdWx0IHx8IDAgOiAwO1xuICAgICAgICB9XG4gICAgICAgIGtleSA9ICFjYW1lbENhc2VBdHRyaWJ1dGVzLmhhcyhrZXkpID8gY2FtZWxUb0Rhc2goa2V5KSA6IGtleTtcbiAgICAgICAgcmV0dXJuIGluc3RhbmNlLmdldEF0dHJpYnV0ZShrZXkpO1xuICAgIH1cbiAgICBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzKHByb3BzLCBwcmV2UHJvcHMsIHZpc3VhbEVsZW1lbnQpO1xuICAgIH1cbiAgICBidWlsZChyZW5kZXJTdGF0ZSwgbGF0ZXN0VmFsdWVzLCBwcm9wcykge1xuICAgICAgICBidWlsZFNWR0F0dHJzKHJlbmRlclN0YXRlLCBsYXRlc3RWYWx1ZXMsIHRoaXMuaXNTVkdUYWcsIHByb3BzLnRyYW5zZm9ybVRlbXBsYXRlLCBwcm9wcy5zdHlsZSk7XG4gICAgfVxuICAgIHJlbmRlckluc3RhbmNlKGluc3RhbmNlLCByZW5kZXJTdGF0ZSwgc3R5bGVQcm9wLCBwcm9qZWN0aW9uKSB7XG4gICAgICAgIHJlbmRlclNWRyhpbnN0YW5jZSwgcmVuZGVyU3RhdGUsIHN0eWxlUHJvcCwgcHJvamVjdGlvbik7XG4gICAgfVxuICAgIG1vdW50KGluc3RhbmNlKSB7XG4gICAgICAgIHRoaXMuaXNTVkdUYWcgPSBpc1NWR1RhZyhpbnN0YW5jZS50YWdOYW1lKTtcbiAgICAgICAgc3VwZXIubW91bnQoaW5zdGFuY2UpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgU1ZHVmlzdWFsRWxlbWVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U1ZHVmlzdWFsRWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildSVGAttrs: () => (/* binding */ buildSVGAttrs)\n/* harmony export */ });\n/* harmony import */ var _html_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/build-styles.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs\");\n/* harmony import */ var _path_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./path.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/path.mjs\");\n\n\n\n/**\n * CSS Motion Path properties that should remain as CSS styles on SVG elements.\n */\nconst cssMotionPathProperties = [\n \"offsetDistance\",\n \"offsetPath\",\n \"offsetRotate\",\n \"offsetAnchor\",\n];\n/**\n * Build SVG visual attributes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, { attrX, attrY, attrScale, pathLength, pathSpacing = 1, pathOffset = 0, \n// This is object creation, which we try to avoid per-frame.\n...latest }, isSVGTag, transformTemplate, styleProp) {\n (0,_html_utils_build_styles_mjs__WEBPACK_IMPORTED_MODULE_0__.buildHTMLStyles)(state, latest, transformTemplate);\n /**\n * For svg tags we just want to make sure viewBox is animatable and treat all the styles\n * as normal HTML tags.\n */\n if (isSVGTag) {\n if (state.style.viewBox) {\n state.attrs.viewBox = state.style.viewBox;\n }\n return;\n }\n state.attrs = state.style;\n state.style = {};\n const { attrs, style } = state;\n /**\n * However, we apply transforms as CSS transforms.\n * So if we detect a transform, transformOrigin we take it from attrs and copy it into style.\n */\n if (attrs.transform) {\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n if (style.transform || attrs.transformOrigin) {\n style.transformOrigin = attrs.transformOrigin ?? \"50% 50%\";\n delete attrs.transformOrigin;\n }\n if (style.transform) {\n /**\n * SVG's element transform-origin uses its own median as a reference.\n * Therefore, transformBox becomes a fill-box\n */\n style.transformBox = styleProp?.transformBox ?? \"fill-box\";\n delete attrs.transformBox;\n }\n for (const key of cssMotionPathProperties) {\n if (attrs[key] !== undefined) {\n style[key] = attrs[key];\n delete attrs[key];\n }\n }\n // Render attrX/attrY/attrScale as attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n if (attrScale !== undefined)\n attrs.scale = attrScale;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n (0,_path_mjs__WEBPACK_IMPORTED_MODULE_1__.buildSVGPath)(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\n\n//# sourceMappingURL=build-attrs.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9idWlsZC1hdHRycy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9FO0FBQzFCOztBQUUxQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQSxXQUFXO0FBQ1gsSUFBSSw2RUFBZTtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGVBQWU7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsdURBQVk7QUFDcEI7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvYnVpbGQtYXR0cnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJ1aWxkSFRNTFN0eWxlcyB9IGZyb20gJy4uLy4uL2h0bWwvdXRpbHMvYnVpbGQtc3R5bGVzLm1qcyc7XG5pbXBvcnQgeyBidWlsZFNWR1BhdGggfSBmcm9tICcuL3BhdGgubWpzJztcblxuLyoqXG4gKiBDU1MgTW90aW9uIFBhdGggcHJvcGVydGllcyB0aGF0IHNob3VsZCByZW1haW4gYXMgQ1NTIHN0eWxlcyBvbiBTVkcgZWxlbWVudHMuXG4gKi9cbmNvbnN0IGNzc01vdGlvblBhdGhQcm9wZXJ0aWVzID0gW1xuICAgIFwib2Zmc2V0RGlzdGFuY2VcIixcbiAgICBcIm9mZnNldFBhdGhcIixcbiAgICBcIm9mZnNldFJvdGF0ZVwiLFxuICAgIFwib2Zmc2V0QW5jaG9yXCIsXG5dO1xuLyoqXG4gKiBCdWlsZCBTVkcgdmlzdWFsIGF0dHJpYnV0ZXMsIGxpa2UgY3ggYW5kIHN0eWxlLnRyYW5zZm9ybVxuICovXG5mdW5jdGlvbiBidWlsZFNWR0F0dHJzKHN0YXRlLCB7IGF0dHJYLCBhdHRyWSwgYXR0clNjYWxlLCBwYXRoTGVuZ3RoLCBwYXRoU3BhY2luZyA9IDEsIHBhdGhPZmZzZXQgPSAwLCBcbi8vIFRoaXMgaXMgb2JqZWN0IGNyZWF0aW9uLCB3aGljaCB3ZSB0cnkgdG8gYXZvaWQgcGVyLWZyYW1lLlxuLi4ubGF0ZXN0IH0sIGlzU1ZHVGFnLCB0cmFuc2Zvcm1UZW1wbGF0ZSwgc3R5bGVQcm9wKSB7XG4gICAgYnVpbGRIVE1MU3R5bGVzKHN0YXRlLCBsYXRlc3QsIHRyYW5zZm9ybVRlbXBsYXRlKTtcbiAgICAvKipcbiAgICAgKiBGb3Igc3ZnIHRhZ3Mgd2UganVzdCB3YW50IHRvIG1ha2Ugc3VyZSB2aWV3Qm94IGlzIGFuaW1hdGFibGUgYW5kIHRyZWF0IGFsbCB0aGUgc3R5bGVzXG4gICAgICogYXMgbm9ybWFsIEhUTUwgdGFncy5cbiAgICAgKi9cbiAgICBpZiAoaXNTVkdUYWcpIHtcbiAgICAgICAgaWYgKHN0YXRlLnN0eWxlLnZpZXdCb3gpIHtcbiAgICAgICAgICAgIHN0YXRlLmF0dHJzLnZpZXdCb3ggPSBzdGF0ZS5zdHlsZS52aWV3Qm94O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3RhdGUuYXR0cnMgPSBzdGF0ZS5zdHlsZTtcbiAgICBzdGF0ZS5zdHlsZSA9IHt9O1xuICAgIGNvbnN0IHsgYXR0cnMsIHN0eWxlIH0gPSBzdGF0ZTtcbiAgICAvKipcbiAgICAgKiBIb3dldmVyLCB3ZSBhcHBseSB0cmFuc2Zvcm1zIGFzIENTUyB0cmFuc2Zvcm1zLlxuICAgICAqIFNvIGlmIHdlIGRldGVjdCBhIHRyYW5zZm9ybSwgdHJhbnNmb3JtT3JpZ2luIHdlIHRha2UgaXQgZnJvbSBhdHRycyBhbmQgY29weSBpdCBpbnRvIHN0eWxlLlxuICAgICAqL1xuICAgIGlmIChhdHRycy50cmFuc2Zvcm0pIHtcbiAgICAgICAgc3R5bGUudHJhbnNmb3JtID0gYXR0cnMudHJhbnNmb3JtO1xuICAgICAgICBkZWxldGUgYXR0cnMudHJhbnNmb3JtO1xuICAgIH1cbiAgICBpZiAoc3R5bGUudHJhbnNmb3JtIHx8IGF0dHJzLnRyYW5zZm9ybU9yaWdpbikge1xuICAgICAgICBzdHlsZS50cmFuc2Zvcm1PcmlnaW4gPSBhdHRycy50cmFuc2Zvcm1PcmlnaW4gPz8gXCI1MCUgNTAlXCI7XG4gICAgICAgIGRlbGV0ZSBhdHRycy50cmFuc2Zvcm1PcmlnaW47XG4gICAgfVxuICAgIGlmIChzdHlsZS50cmFuc2Zvcm0pIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNWRydzIGVsZW1lbnQgdHJhbnNmb3JtLW9yaWdpbiB1c2VzIGl0cyBvd24gbWVkaWFuIGFzIGEgcmVmZXJlbmNlLlxuICAgICAgICAgKiBUaGVyZWZvcmUsIHRyYW5zZm9ybUJveCBiZWNvbWVzIGEgZmlsbC1ib3hcbiAgICAgICAgICovXG4gICAgICAgIHN0eWxlLnRyYW5zZm9ybUJveCA9IHN0eWxlUHJvcD8udHJhbnNmb3JtQm94ID8/IFwiZmlsbC1ib3hcIjtcbiAgICAgICAgZGVsZXRlIGF0dHJzLnRyYW5zZm9ybUJveDtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2YgY3NzTW90aW9uUGF0aFByb3BlcnRpZXMpIHtcbiAgICAgICAgaWYgKGF0dHJzW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc3R5bGVba2V5XSA9IGF0dHJzW2tleV07XG4gICAgICAgICAgICBkZWxldGUgYXR0cnNba2V5XTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBSZW5kZXIgYXR0clgvYXR0clkvYXR0clNjYWxlIGFzIGF0dHJpYnV0ZXNcbiAgICBpZiAoYXR0clggIT09IHVuZGVmaW5lZClcbiAgICAgICAgYXR0cnMueCA9IGF0dHJYO1xuICAgIGlmIChhdHRyWSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICBhdHRycy55ID0gYXR0clk7XG4gICAgaWYgKGF0dHJTY2FsZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICBhdHRycy5zY2FsZSA9IGF0dHJTY2FsZTtcbiAgICAvLyBCdWlsZCBTVkcgcGF0aCBpZiBvbmUgaGFzIGJlZW4gZGVmaW5lZFxuICAgIGlmIChwYXRoTGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgYnVpbGRTVkdQYXRoKGF0dHJzLCBwYXRoTGVuZ3RoLCBwYXRoU3BhY2luZywgcGF0aE9mZnNldCwgZmFsc2UpO1xuICAgIH1cbn1cblxuZXhwb3J0IHsgYnVpbGRTVkdBdHRycyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YnVpbGQtYXR0cnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ camelCaseAttributes: () => (/* binding */ camelCaseAttributes)\n/* harmony export */ });\n/**\n * A set of attribute names that are always read/written as camel case.\n */\nconst camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n \"startOffset\",\n \"textLength\",\n \"lengthAdjust\",\n]);\n\n\n//# sourceMappingURL=camel-case-attrs.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9jYW1lbC1jYXNlLWF0dHJzLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvc3ZnL3V0aWxzL2NhbWVsLWNhc2UtYXR0cnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzZXQgb2YgYXR0cmlidXRlIG5hbWVzIHRoYXQgYXJlIGFsd2F5cyByZWFkL3dyaXR0ZW4gYXMgY2FtZWwgY2FzZS5cbiAqL1xuY29uc3QgY2FtZWxDYXNlQXR0cmlidXRlcyA9IG5ldyBTZXQoW1xuICAgIFwiYmFzZUZyZXF1ZW5jeVwiLFxuICAgIFwiZGlmZnVzZUNvbnN0YW50XCIsXG4gICAgXCJrZXJuZWxNYXRyaXhcIixcbiAgICBcImtlcm5lbFVuaXRMZW5ndGhcIixcbiAgICBcImtleVNwbGluZXNcIixcbiAgICBcImtleVRpbWVzXCIsXG4gICAgXCJsaW1pdGluZ0NvbmVBbmdsZVwiLFxuICAgIFwibWFya2VySGVpZ2h0XCIsXG4gICAgXCJtYXJrZXJXaWR0aFwiLFxuICAgIFwibnVtT2N0YXZlc1wiLFxuICAgIFwidGFyZ2V0WFwiLFxuICAgIFwidGFyZ2V0WVwiLFxuICAgIFwic3VyZmFjZVNjYWxlXCIsXG4gICAgXCJzcGVjdWxhckNvbnN0YW50XCIsXG4gICAgXCJzcGVjdWxhckV4cG9uZW50XCIsXG4gICAgXCJzdGREZXZpYXRpb25cIixcbiAgICBcInRhYmxlVmFsdWVzXCIsXG4gICAgXCJ2aWV3Qm94XCIsXG4gICAgXCJncmFkaWVudFRyYW5zZm9ybVwiLFxuICAgIFwicGF0aExlbmd0aFwiLFxuICAgIFwic3RhcnRPZmZzZXRcIixcbiAgICBcInRleHRMZW5ndGhcIixcbiAgICBcImxlbmd0aEFkanVzdFwiLFxuXSk7XG5cbmV4cG9ydCB7IGNhbWVsQ2FzZUF0dHJpYnV0ZXMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNhbWVsLWNhc2UtYXR0cnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGTag: () => (/* binding */ isSVGTag)\n/* harmony export */ });\nconst isSVGTag = (tag) => typeof tag === \"string\" && tag.toLowerCase() === \"svg\";\n\n\n//# sourceMappingURL=is-svg-tag.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9pcy1zdmctdGFnLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvc3ZnL3V0aWxzL2lzLXN2Zy10YWcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzU1ZHVGFnID0gKHRhZykgPT4gdHlwZW9mIHRhZyA9PT0gXCJzdHJpbmdcIiAmJiB0YWcudG9Mb3dlckNhc2UoKSA9PT0gXCJzdmdcIjtcblxuZXhwb3J0IHsgaXNTVkdUYWcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXN2Zy10YWcubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/path.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/path.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ buildSVGPath: () => (/* binding */ buildSVGPath)\n/* harmony export */ });\nconst dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nconst camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n *\n * Note: We use unitless values for stroke-dasharray and stroke-dashoffset\n * because Safari incorrectly scales px values when the page is zoomed.\n */\nfunction buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true) {\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n const keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset (unitless to avoid Safari zoom bug)\n attrs[keys.offset] = `${-offset}`;\n // Build the dash array (unitless to avoid Safari zoom bug)\n attrs[keys.array] = `${length} ${spacing}`;\n}\n\n\n//# sourceMappingURL=path.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9wYXRoLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsUUFBUTtBQUNwQztBQUNBLDJCQUEyQixRQUFRLEVBQUUsUUFBUTtBQUM3Qzs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvcGF0aC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZGFzaEtleXMgPSB7XG4gICAgb2Zmc2V0OiBcInN0cm9rZS1kYXNob2Zmc2V0XCIsXG4gICAgYXJyYXk6IFwic3Ryb2tlLWRhc2hhcnJheVwiLFxufTtcbmNvbnN0IGNhbWVsS2V5cyA9IHtcbiAgICBvZmZzZXQ6IFwic3Ryb2tlRGFzaG9mZnNldFwiLFxuICAgIGFycmF5OiBcInN0cm9rZURhc2hhcnJheVwiLFxufTtcbi8qKlxuICogQnVpbGQgU1ZHIHBhdGggcHJvcGVydGllcy4gVXNlcyB0aGUgcGF0aCdzIG1lYXN1cmVkIGxlbmd0aCB0byBjb252ZXJ0XG4gKiBvdXIgY3VzdG9tIHBhdGhMZW5ndGgsIHBhdGhTcGFjaW5nIGFuZCBwYXRoT2Zmc2V0IGludG8gc3Ryb2tlLWRhc2hvZmZzZXRcbiAqIGFuZCBzdHJva2UtZGFzaGFycmF5IGF0dHJpYnV0ZXMuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBpcyBtdXRhdGl2ZSB0byByZWR1Y2UgcGVyLWZyYW1lIEdDLlxuICpcbiAqIE5vdGU6IFdlIHVzZSB1bml0bGVzcyB2YWx1ZXMgZm9yIHN0cm9rZS1kYXNoYXJyYXkgYW5kIHN0cm9rZS1kYXNob2Zmc2V0XG4gKiBiZWNhdXNlIFNhZmFyaSBpbmNvcnJlY3RseSBzY2FsZXMgcHggdmFsdWVzIHdoZW4gdGhlIHBhZ2UgaXMgem9vbWVkLlxuICovXG5mdW5jdGlvbiBidWlsZFNWR1BhdGgoYXR0cnMsIGxlbmd0aCwgc3BhY2luZyA9IDEsIG9mZnNldCA9IDAsIHVzZURhc2hDYXNlID0gdHJ1ZSkge1xuICAgIC8vIE5vcm1hbGlzZSBwYXRoIGxlbmd0aCBieSBzZXR0aW5nIFNWRyBhdHRyaWJ1dGUgcGF0aExlbmd0aCB0byAxXG4gICAgYXR0cnMucGF0aExlbmd0aCA9IDE7XG4gICAgLy8gV2UgdXNlIGRhc2ggY2FzZSB3aGVuIHNldHRpbmcgYXR0cmlidXRlcyBkaXJlY3RseSB0byB0aGUgRE9NIG5vZGUgYW5kIGNhbWVsIGNhc2VcbiAgICAvLyB3aGVuIGRlZmluaW5nIHByb3BzIG9uIGEgUmVhY3QgY29tcG9uZW50LlxuICAgIGNvbnN0IGtleXMgPSB1c2VEYXNoQ2FzZSA/IGRhc2hLZXlzIDogY2FtZWxLZXlzO1xuICAgIC8vIEJ1aWxkIHRoZSBkYXNoIG9mZnNldCAodW5pdGxlc3MgdG8gYXZvaWQgU2FmYXJpIHpvb20gYnVnKVxuICAgIGF0dHJzW2tleXMub2Zmc2V0XSA9IGAkey1vZmZzZXR9YDtcbiAgICAvLyBCdWlsZCB0aGUgZGFzaCBhcnJheSAodW5pdGxlc3MgdG8gYXZvaWQgU2FmYXJpIHpvb20gYnVnKVxuICAgIGF0dHJzW2tleXMuYXJyYXldID0gYCR7bGVuZ3RofSAke3NwYWNpbmd9YDtcbn1cblxuZXhwb3J0IHsgYnVpbGRTVkdQYXRoIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1wYXRoLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/path.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/render.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/render.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ renderSVG: () => (/* binding */ renderSVG)\n/* harmony export */ });\n/* harmony import */ var _dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dom/utils/camel-to-dash.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs\");\n/* harmony import */ var _html_utils_render_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/render.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/render.mjs\");\n/* harmony import */ var _camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./camel-case-attrs.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs\");\n\n\n\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n (0,_html_utils_render_mjs__WEBPACK_IMPORTED_MODULE_0__.renderHTML)(element, renderState, undefined, projection);\n for (const key in renderState.attrs) {\n element.setAttribute(!_camel_case_attrs_mjs__WEBPACK_IMPORTED_MODULE_1__.camelCaseAttributes.has(key) ? (0,_dom_utils_camel_to_dash_mjs__WEBPACK_IMPORTED_MODULE_2__.camelToDash)(key) : key, renderState.attrs[key]);\n }\n}\n\n\n//# sourceMappingURL=render.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9yZW5kZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZ0U7QUFDUDtBQUNJOztBQUU3RDtBQUNBLElBQUksa0VBQVU7QUFDZDtBQUNBLDhCQUE4QixzRUFBbUIsWUFBWSx5RUFBVztBQUN4RTtBQUNBOztBQUVxQjtBQUNyQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9yZW5kZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbWVsVG9EYXNoIH0gZnJvbSAnLi4vLi4vZG9tL3V0aWxzL2NhbWVsLXRvLWRhc2gubWpzJztcbmltcG9ydCB7IHJlbmRlckhUTUwgfSBmcm9tICcuLi8uLi9odG1sL3V0aWxzL3JlbmRlci5tanMnO1xuaW1wb3J0IHsgY2FtZWxDYXNlQXR0cmlidXRlcyB9IGZyb20gJy4vY2FtZWwtY2FzZS1hdHRycy5tanMnO1xuXG5mdW5jdGlvbiByZW5kZXJTVkcoZWxlbWVudCwgcmVuZGVyU3RhdGUsIF9zdHlsZVByb3AsIHByb2plY3Rpb24pIHtcbiAgICByZW5kZXJIVE1MKGVsZW1lbnQsIHJlbmRlclN0YXRlLCB1bmRlZmluZWQsIHByb2plY3Rpb24pO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHJlbmRlclN0YXRlLmF0dHJzKSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCFjYW1lbENhc2VBdHRyaWJ1dGVzLmhhcyhrZXkpID8gY2FtZWxUb0Rhc2goa2V5KSA6IGtleSwgcmVuZGVyU3RhdGUuYXR0cnNba2V5XSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyByZW5kZXJTVkcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlbmRlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/render.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ scrapeMotionValuesFromProps: () => (/* binding */ scrapeMotionValuesFromProps)\n/* harmony export */ });\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n/* harmony import */ var _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../utils/keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _html_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../html/utils/scrape-motion-values.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs\");\n\n\n\n\nfunction scrapeMotionValuesFromProps(props, prevProps, visualElement) {\n const newValues = (0,_html_utils_scrape_motion_values_mjs__WEBPACK_IMPORTED_MODULE_0__.scrapeMotionValuesFromProps)(props, prevProps, visualElement);\n for (const key in props) {\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(props[key]) ||\n (0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_1__.isMotionValue)(prevProps[key])) {\n const targetKey = _utils_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_2__.transformPropOrder.indexOf(key) !== -1\n ? \"attr\" + key.charAt(0).toUpperCase() + key.substring(1)\n : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\n\n//# sourceMappingURL=scrape-motion-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3N2Zy91dGlscy9zY3JhcGUtbW90aW9uLXZhbHVlcy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUF5RTtBQUNMO0FBQ3FEOztBQUV6SDtBQUNBLHNCQUFzQixpR0FBNkI7QUFDbkQ7QUFDQSxZQUFZLCtFQUFhO0FBQ3pCLFlBQVksK0VBQWE7QUFDekIsOEJBQThCLHlFQUFrQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFdUM7QUFDdkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci9zdmcvdXRpbHMvc2NyYXBlLW1vdGlvbi12YWx1ZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTW90aW9uVmFsdWUgfSBmcm9tICcuLi8uLi8uLi92YWx1ZS91dGlscy9pcy1tb3Rpb24tdmFsdWUubWpzJztcbmltcG9ydCB7IHRyYW5zZm9ybVByb3BPcmRlciB9IGZyb20gJy4uLy4uL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyc7XG5pbXBvcnQgeyBzY3JhcGVNb3Rpb25WYWx1ZXNGcm9tUHJvcHMgYXMgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzJDEgfSBmcm9tICcuLi8uLi9odG1sL3V0aWxzL3NjcmFwZS1tb3Rpb24tdmFsdWVzLm1qcyc7XG5cbmZ1bmN0aW9uIHNjcmFwZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhwcm9wcywgcHJldlByb3BzLCB2aXN1YWxFbGVtZW50KSB7XG4gICAgY29uc3QgbmV3VmFsdWVzID0gc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzJDEocHJvcHMsIHByZXZQcm9wcywgdmlzdWFsRWxlbWVudCk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gcHJvcHMpIHtcbiAgICAgICAgaWYgKGlzTW90aW9uVmFsdWUocHJvcHNba2V5XSkgfHxcbiAgICAgICAgICAgIGlzTW90aW9uVmFsdWUocHJldlByb3BzW2tleV0pKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXRLZXkgPSB0cmFuc2Zvcm1Qcm9wT3JkZXIuaW5kZXhPZihrZXkpICE9PSAtMVxuICAgICAgICAgICAgICAgID8gXCJhdHRyXCIgKyBrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc3Vic3RyaW5nKDEpXG4gICAgICAgICAgICAgICAgOiBrZXk7XG4gICAgICAgICAgICBuZXdWYWx1ZXNbdGFyZ2V0S2V5XSA9IHByb3BzW2tleV07XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1ZhbHVlcztcbn1cblxuZXhwb3J0IHsgc2NyYXBlTW90aW9uVmFsdWVzRnJvbVByb3BzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1zY3JhcGUtbW90aW9uLXZhbHVlcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/animation-state.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/animation-state.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ checkVariantsDidChange: () => (/* binding */ checkVariantsDidChange),\n/* harmony export */ createAnimationState: () => (/* binding */ createAnimationState)\n/* harmony export */ });\n/* harmony import */ var _animation_interfaces_visual_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/interfaces/visual-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs\");\n/* harmony import */ var _animation_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../animation/utils/calc-child-stagger.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs\");\n/* harmony import */ var _get_variant_context_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./get-variant-context.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs\");\n/* harmony import */ var _is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./is-animation-controls.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n/* harmony import */ var _is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./is-keyframes-target.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs\");\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./shallow-compare.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variant-props.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\");\n\n\n\n\n\n\n\n\n\n\nconst reversePriorityOrder = [..._variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantPriorityOrder].reverse();\nconst numAnimationTypes = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantPriorityOrder.length;\nfunction createAnimateFunction(visualElement) {\n return (animations) => {\n return Promise.all(animations.map(({ animation, options }) => (0,_animation_interfaces_visual_element_mjs__WEBPACK_IMPORTED_MODULE_1__.animateVisualElement)(visualElement, animation, options)));\n };\n}\nfunction createAnimationState(visualElement) {\n let animate = createAnimateFunction(visualElement);\n let state = createState();\n let isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n const buildResolvedTypeValues = (type) => (acc, definition) => {\n const resolved = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, definition, type === \"exit\"\n ? visualElement.presenceContext?.custom\n : undefined);\n if (resolved) {\n const { transition, transitionEnd, ...target } = resolved;\n acc = { ...acc, ...target, ...transitionEnd };\n }\n return acc;\n };\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(changedActiveType) {\n const { props } = visualElement;\n const context = (0,_get_variant_context_mjs__WEBPACK_IMPORTED_MODULE_3__.getVariantContext)(visualElement.parent) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n const animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n const removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n let encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n let removedVariantIndex = Infinity;\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (let i = 0; i < numAnimationTypes; i++) {\n const type = reversePriorityOrder[i];\n const typeState = state[type];\n const prop = props[type] !== undefined\n ? props[type]\n : context[type];\n const propIsVariant = (0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_4__.isVariantLabel)(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n const activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n let isInherited = prop === context[type] &&\n prop !== props[type] &&\n propIsVariant;\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = { ...encounteredKeys };\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n (0,_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_5__.isAnimationControls)(prop) ||\n typeof prop === \"boolean\") {\n continue;\n }\n /**\n * If exit is already active and wasn't just activated, skip\n * re-processing to prevent interrupting running exit animations.\n * Re-resolving exit with a changed custom value can start new\n * value animations that stop the originals, leaving the exit\n * animation promise unresolved and the component stuck in the DOM.\n */\n if (type === \"exit\" && typeState.isActive && activeDelta !== true) {\n if (typeState.prevResolvedValues) {\n encounteredKeys = {\n ...encounteredKeys,\n ...typeState.prevResolvedValues,\n };\n }\n continue;\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n const variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n let shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n let handledRemovedValues = false;\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n const definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n let resolvedValues = definitionList.reduce(buildResolvedTypeValues(type), {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n const { prevResolvedValues = {} } = typeState;\n const allKeys = {\n ...prevResolvedValues,\n ...resolvedValues,\n };\n const markToAnimate = (key) => {\n shouldAnimateType = true;\n if (removedKeys.has(key)) {\n handledRemovedValues = true;\n removedKeys.delete(key);\n }\n typeState.needsAnimating[key] = true;\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = false;\n };\n for (const key in allKeys) {\n const next = resolvedValues[key];\n const prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n let valueHasChanged = false;\n if ((0,_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__.isKeyframesTarget)(next) && (0,_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_6__.isKeyframesTarget)(prev)) {\n valueHasChanged = !(0,_shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__.shallowCompare)(next, prev);\n }\n else {\n valueHasChanged = next !== prev;\n }\n if (valueHasChanged) {\n if (next !== undefined && next !== null) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n if (typeState.isActive) {\n encounteredKeys = { ...encounteredKeys, ...resolvedValues };\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to skip this animation\n * unless the inherited variants haven't changed on this render.\n */\n const willAnimateViaParent = isInherited && variantDidChange;\n const needsAnimating = !willAnimateViaParent || handledRemovedValues;\n if (shouldAnimateType && needsAnimating) {\n animations.push(...definitionList.map((animation) => {\n const options = { type };\n /**\n * If we're performing the initial animation, but we're not\n * rendering at the same time as the variant-controlling parent,\n * we want to use the parent's transition to calculate the stagger.\n */\n if (typeof animation === \"string\" &&\n isInitialRender &&\n !willAnimateViaParent &&\n visualElement.manuallyAnimateOnMount &&\n visualElement.parent) {\n const { parent } = visualElement;\n const parentVariant = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(parent, animation);\n if (parent.enteringChildren && parentVariant) {\n const { delayChildren } = parentVariant.transition || {};\n options.delay = (0,_animation_utils_calc_child_stagger_mjs__WEBPACK_IMPORTED_MODULE_8__.calcChildStagger)(parent.enteringChildren, visualElement, delayChildren);\n }\n }\n return {\n animation: animation,\n options,\n };\n }));\n }\n }\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n const fallbackAnimation = {};\n /**\n * If the initial prop contains a transition we can use that, otherwise\n * allow the animation function to use the visual element's default.\n */\n if (typeof props.initial !== \"boolean\") {\n const initialTransition = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, Array.isArray(props.initial)\n ? props.initial[0]\n : props.initial);\n if (initialTransition && initialTransition.transition) {\n fallbackAnimation.transition = initialTransition.transition;\n }\n }\n removedKeys.forEach((key) => {\n const fallbackTarget = visualElement.getBaseTarget(key);\n const motionValue = visualElement.getValue(key);\n if (motionValue)\n motionValue.liveStyle = true;\n // @ts-expect-error - @mattgperry to figure if we should do something here\n fallbackAnimation[key] = fallbackTarget ?? null;\n });\n animations.push({ animation: fallbackAnimation });\n }\n let shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n (props.initial === false || props.initial === props.animate) &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive) {\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n visualElement.variantChildren?.forEach((child) => child.animationState?.setActive(type, isActive));\n state[type].isActive = isActive;\n const animations = animateChanges(type);\n for (const key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n animateChanges,\n setActive,\n setAnimateFunction,\n getState: () => state,\n reset: () => {\n state = createState();\n /**\n * Temporarily disabling resetting this flag as it prevents components\n * with initial={false} from animating after being remounted, for instance\n * as the child of an Activity component.\n */\n // isInitialRender = true\n },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (Array.isArray(next)) {\n return !(0,_shallow_compare_mjs__WEBPACK_IMPORTED_MODULE_7__.shallowCompare)(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive = false) {\n return {\n isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n return {\n animate: createTypeState(true),\n whileInView: createTypeState(),\n whileHover: createTypeState(),\n whileTap: createTypeState(),\n whileDrag: createTypeState(),\n whileFocus: createTypeState(),\n exit: createTypeState(),\n };\n}\n\n\n//# sourceMappingURL=animation-state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2FuaW1hdGlvbi1zdGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBcUY7QUFDTDtBQUNsQjtBQUNJO0FBQ0o7QUFDTjtBQUNRO0FBQ1Q7QUFDSTs7QUFFM0QsaUNBQWlDLG9FQUFvQjtBQUNyRCwwQkFBMEIsb0VBQW9CO0FBQzlDO0FBQ0E7QUFDQSw2Q0FBNkMsb0JBQW9CLEtBQUssOEZBQW9CO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsNkVBQWM7QUFDdkM7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHVDQUF1QztBQUMzRCxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLFFBQVE7QUFDeEIsd0JBQXdCLDJFQUFpQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsdUJBQXVCO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MscUVBQWM7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3Q0FBd0M7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsK0VBQW1CO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0ZBQXdGO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMEJBQTBCO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDJFQUFpQixVQUFVLDJFQUFpQjtBQUNoRSx1Q0FBdUMsb0VBQWM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0NBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyxTQUFTO0FBQ3pDLDhDQUE4Qyw2RUFBYztBQUM1RDtBQUNBLG9DQUFvQyxnQkFBZ0I7QUFDcEQsNENBQTRDLHlGQUFnQjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBDQUEwQyw2RUFBYztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYiw4QkFBOEIsOEJBQThCO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsT0FBTztBQUNwQztBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0Isb0VBQWM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCLDBCQUEwQjtBQUMxQiw4QkFBOEI7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXdEO0FBQ3hEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvYW5pbWF0aW9uLXN0YXRlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlVmlzdWFsRWxlbWVudCB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbi9pbnRlcmZhY2VzL3Zpc3VhbC1lbGVtZW50Lm1qcyc7XG5pbXBvcnQgeyBjYWxjQ2hpbGRTdGFnZ2VyIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL3V0aWxzL2NhbGMtY2hpbGQtc3RhZ2dlci5tanMnO1xuaW1wb3J0IHsgZ2V0VmFyaWFudENvbnRleHQgfSBmcm9tICcuL2dldC12YXJpYW50LWNvbnRleHQubWpzJztcbmltcG9ydCB7IGlzQW5pbWF0aW9uQ29udHJvbHMgfSBmcm9tICcuL2lzLWFuaW1hdGlvbi1jb250cm9scy5tanMnO1xuaW1wb3J0IHsgaXNLZXlmcmFtZXNUYXJnZXQgfSBmcm9tICcuL2lzLWtleWZyYW1lcy10YXJnZXQubWpzJztcbmltcG9ydCB7IGlzVmFyaWFudExhYmVsIH0gZnJvbSAnLi9pcy12YXJpYW50LWxhYmVsLm1qcyc7XG5pbXBvcnQgeyByZXNvbHZlVmFyaWFudCB9IGZyb20gJy4vcmVzb2x2ZS1keW5hbWljLXZhcmlhbnRzLm1qcyc7XG5pbXBvcnQgeyBzaGFsbG93Q29tcGFyZSB9IGZyb20gJy4vc2hhbGxvdy1jb21wYXJlLm1qcyc7XG5pbXBvcnQgeyB2YXJpYW50UHJpb3JpdHlPcmRlciB9IGZyb20gJy4vdmFyaWFudC1wcm9wcy5tanMnO1xuXG5jb25zdCByZXZlcnNlUHJpb3JpdHlPcmRlciA9IFsuLi52YXJpYW50UHJpb3JpdHlPcmRlcl0ucmV2ZXJzZSgpO1xuY29uc3QgbnVtQW5pbWF0aW9uVHlwZXMgPSB2YXJpYW50UHJpb3JpdHlPcmRlci5sZW5ndGg7XG5mdW5jdGlvbiBjcmVhdGVBbmltYXRlRnVuY3Rpb24odmlzdWFsRWxlbWVudCkge1xuICAgIHJldHVybiAoYW5pbWF0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoYW5pbWF0aW9ucy5tYXAoKHsgYW5pbWF0aW9uLCBvcHRpb25zIH0pID0+IGFuaW1hdGVWaXN1YWxFbGVtZW50KHZpc3VhbEVsZW1lbnQsIGFuaW1hdGlvbiwgb3B0aW9ucykpKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uU3RhdGUodmlzdWFsRWxlbWVudCkge1xuICAgIGxldCBhbmltYXRlID0gY3JlYXRlQW5pbWF0ZUZ1bmN0aW9uKHZpc3VhbEVsZW1lbnQpO1xuICAgIGxldCBzdGF0ZSA9IGNyZWF0ZVN0YXRlKCk7XG4gICAgbGV0IGlzSW5pdGlhbFJlbmRlciA9IHRydWU7XG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHVzZWQgdG8gcmVkdWNlIHRoZSBhbmltYXRpb24gZGVmaW5pdGlvbnMgZm9yXG4gICAgICogZWFjaCBhY3RpdmUgYW5pbWF0aW9uIHR5cGUgaW50byBhbiBvYmplY3Qgb2YgcmVzb2x2ZWQgdmFsdWVzIGZvciBpdC5cbiAgICAgKi9cbiAgICBjb25zdCBidWlsZFJlc29sdmVkVHlwZVZhbHVlcyA9ICh0eXBlKSA9PiAoYWNjLCBkZWZpbml0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZVZhcmlhbnQodmlzdWFsRWxlbWVudCwgZGVmaW5pdGlvbiwgdHlwZSA9PT0gXCJleGl0XCJcbiAgICAgICAgICAgID8gdmlzdWFsRWxlbWVudC5wcmVzZW5jZUNvbnRleHQ/LmN1c3RvbVxuICAgICAgICAgICAgOiB1bmRlZmluZWQpO1xuICAgICAgICBpZiAocmVzb2x2ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgdHJhbnNpdGlvbiwgdHJhbnNpdGlvbkVuZCwgLi4udGFyZ2V0IH0gPSByZXNvbHZlZDtcbiAgICAgICAgICAgIGFjYyA9IHsgLi4uYWNjLCAuLi50YXJnZXQsIC4uLnRyYW5zaXRpb25FbmQgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogVGhpcyBqdXN0IGFsbG93cyB1cyB0byBpbmplY3QgbW9ja2VkIGFuaW1hdGlvbiBmdW5jdGlvbnNcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBzZXRBbmltYXRlRnVuY3Rpb24obWFrZUFuaW1hdG9yKSB7XG4gICAgICAgIGFuaW1hdGUgPSBtYWtlQW5pbWF0b3IodmlzdWFsRWxlbWVudCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFdoZW4gd2UgcmVjZWl2ZSBuZXcgcHJvcHMsIHdlIG5lZWQgdG86XG4gICAgICogMS4gQ3JlYXRlIGEgbGlzdCBvZiBwcm90ZWN0ZWQga2V5cyBmb3IgZWFjaCB0eXBlLiBUaGlzIGlzIGEgZGlyZWN0b3J5IG9mXG4gICAgICogICAgdmFsdWUga2V5cyB0aGF0IGFyZSBjdXJyZW50bHkgYmVpbmcgXCJoYW5kbGVkXCIgYnkgdHlwZXMgb2YgYSBoaWdoZXIgcHJpb3JpdHlcbiAgICAgKiAgICBzbyB0aGF0IHdoZW5ldmVyIGFuIGFuaW1hdGlvbiBpcyBwbGF5ZWQgb2YgYSBnaXZlbiB0eXBlLCB0aGVzZSB2YWx1ZXMgYXJlXG4gICAgICogICAgcHJvdGVjdGVkIGZyb20gYmVpbmcgYW5pbWF0ZWQuXG4gICAgICogMi4gRGV0ZXJtaW5lIGlmIGFuIGFuaW1hdGlvbiB0eXBlIG5lZWRzIGFuaW1hdGluZy5cbiAgICAgKiAzLiBEZXRlcm1pbmUgaWYgYW55IHZhbHVlcyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIGEgdHlwZSBhbmQgZmlndXJlIG91dFxuICAgICAqICAgIHdoYXQgdG8gYW5pbWF0ZSB0aG9zZSB0by5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBhbmltYXRlQ2hhbmdlcyhjaGFuZ2VkQWN0aXZlVHlwZSkge1xuICAgICAgICBjb25zdCB7IHByb3BzIH0gPSB2aXN1YWxFbGVtZW50O1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gZ2V0VmFyaWFudENvbnRleHQodmlzdWFsRWxlbWVudC5wYXJlbnQpIHx8IHt9O1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBsaXN0IG9mIGFuaW1hdGlvbnMgdGhhdCB3ZSdsbCBidWlsZCBpbnRvIGFzIHdlIGl0ZXJhdGUgdGhyb3VnaCB0aGUgYW5pbWF0aW9uXG4gICAgICAgICAqIHR5cGVzLiBUaGlzIHdpbGwgZ2V0IGV4ZWN1dGVkIGF0IHRoZSBlbmQgb2YgdGhlIGZ1bmN0aW9uLlxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3QgYW5pbWF0aW9ucyA9IFtdO1xuICAgICAgICAvKipcbiAgICAgICAgICogS2VlcCB0cmFjayBvZiB3aGljaCB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQuIFRoZW4sIGFzIHdlIGhpdCBsb3dlciBwcmlvcml0eVxuICAgICAgICAgKiBhbmltYXRpb24gdHlwZXMsIHdlIGNhbiBjaGVjayBpZiB0aGV5IGNvbnRhaW4gcmVtb3ZlZCB2YWx1ZXMgYW5kIGFuaW1hdGUgdG8gdGhhdC5cbiAgICAgICAgICovXG4gICAgICAgIGNvbnN0IHJlbW92ZWRLZXlzID0gbmV3IFNldCgpO1xuICAgICAgICAvKipcbiAgICAgICAgICogQSBkaWN0aW9uYXJ5IG9mIGFsbCBlbmNvdW50ZXJlZCBrZXlzLiBUaGlzIGlzIGFuIG9iamVjdCB0byBsZXQgdXMgYnVpbGQgaW50byBhbmRcbiAgICAgICAgICogY29weSBpdCB3aXRob3V0IGl0ZXJhdGlvbi4gRWFjaCB0aW1lIHdlIGhpdCBhbiBhbmltYXRpb24gdHlwZSB3ZSBzZXQgaXRzIHByb3RlY3RlZFxuICAgICAgICAgKiBrZXlzIC0gdGhlIGtleXMgaXRzIG5vdCBhbGxvd2VkIHRvIGFuaW1hdGUgLSB0byB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBvYmplY3QuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgZW5jb3VudGVyZWRLZXlzID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiBhIHZhcmlhbnQgaGFzIGJlZW4gcmVtb3ZlZCBhdCBhIGdpdmVuIGluZGV4LCBhbmQgdGhpcyBjb21wb25lbnQgaXMgY29udHJvbGxpbmdcbiAgICAgICAgICogdmFyaWFudCBhbmltYXRpb25zLCB3ZSB3YW50IHRvIGVuc3VyZSBsb3dlci1wcmlvcml0eSB2YXJpYW50cyBhcmUgZm9yY2VkIHRvIGFuaW1hdGUuXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgcmVtb3ZlZFZhcmlhbnRJbmRleCA9IEluZmluaXR5O1xuICAgICAgICAvKipcbiAgICAgICAgICogSXRlcmF0ZSB0aHJvdWdoIGFsbCBhbmltYXRpb24gdHlwZXMgaW4gcmV2ZXJzZSBwcmlvcml0eSBvcmRlci4gRm9yIGVhY2gsIHdlIHdhbnQgdG9cbiAgICAgICAgICogZGV0ZWN0IHdoaWNoIHZhbHVlcyBpdCdzIGhhbmRsaW5nIGFuZCB3aGV0aGVyIG9yIG5vdCB0aGV5J3ZlIGNoYW5nZWQgKGFuZCB0aGVyZWZvcmVcbiAgICAgICAgICogbmVlZCB0byBiZSBhbmltYXRlZCkuIElmIGFueSB2YWx1ZXMgaGF2ZSBiZWVuIHJlbW92ZWQsIHdlIHdhbnQgdG8gZGV0ZWN0IHRob3NlIGluXG4gICAgICAgICAqIGxvd2VyIHByaW9yaXR5IHByb3BzIGFuZCBmbGFnIGZvciBhbmltYXRpb24uXG4gICAgICAgICAqL1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bUFuaW1hdGlvblR5cGVzOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSByZXZlcnNlUHJpb3JpdHlPcmRlcltpXTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVTdGF0ZSA9IHN0YXRlW3R5cGVdO1xuICAgICAgICAgICAgY29uc3QgcHJvcCA9IHByb3BzW3R5cGVdICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA/IHByb3BzW3R5cGVdXG4gICAgICAgICAgICAgICAgOiBjb250ZXh0W3R5cGVdO1xuICAgICAgICAgICAgY29uc3QgcHJvcElzVmFyaWFudCA9IGlzVmFyaWFudExhYmVsKHByb3ApO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIHR5cGUgaGFzICpqdXN0KiBjaGFuZ2VkIGlzQWN0aXZlIHN0YXR1cywgc2V0IGFjdGl2ZURlbHRhXG4gICAgICAgICAgICAgKiB0byB0aGF0IHN0YXR1cy4gT3RoZXJ3aXNlIHNldCB0byBudWxsLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCBhY3RpdmVEZWx0YSA9IHR5cGUgPT09IGNoYW5nZWRBY3RpdmVUeXBlID8gdHlwZVN0YXRlLmlzQWN0aXZlIDogbnVsbDtcbiAgICAgICAgICAgIGlmIChhY3RpdmVEZWx0YSA9PT0gZmFsc2UpXG4gICAgICAgICAgICAgICAgcmVtb3ZlZFZhcmlhbnRJbmRleCA9IGk7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoaXMgcHJvcCBpcyBhbiBpbmhlcml0ZWQgdmFyaWFudCwgcmF0aGVyIHRoYW4gYmVlbiBzZXQgZGlyZWN0bHkgb24gdGhlXG4gICAgICAgICAgICAgKiBjb21wb25lbnQgaXRzZWxmLCB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB3ZSBhbGxvdyB0aGUgcGFyZW50IHRvIHRyaWdnZXIgYW5pbWF0aW9ucy5cbiAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgKiBUT0RPOiBDYW4gcHJvYmFibHkgY2hhbmdlIHRoaXMgdG8gYSAhaXNDb250cm9sbGluZ1ZhcmlhbnRzIGNoZWNrXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGxldCBpc0luaGVyaXRlZCA9IHByb3AgPT09IGNvbnRleHRbdHlwZV0gJiZcbiAgICAgICAgICAgICAgICBwcm9wICE9PSBwcm9wc1t0eXBlXSAmJlxuICAgICAgICAgICAgICAgIHByb3BJc1ZhcmlhbnQ7XG4gICAgICAgICAgICBpZiAoaXNJbmhlcml0ZWQgJiZcbiAgICAgICAgICAgICAgICBpc0luaXRpYWxSZW5kZXIgJiZcbiAgICAgICAgICAgICAgICB2aXN1YWxFbGVtZW50Lm1hbnVhbGx5QW5pbWF0ZU9uTW91bnQpIHtcbiAgICAgICAgICAgICAgICBpc0luaGVyaXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBTZXQgYWxsIGVuY291bnRlcmVkIGtleXMgc28gZmFyIGFzIHRoZSBwcm90ZWN0ZWQga2V5cyBmb3IgdGhpcyB0eXBlLiBUaGlzIHdpbGxcbiAgICAgICAgICAgICAqIGJlIGFueSBrZXkgdGhhdCBoYXMgYmVlbiBhbmltYXRlZCBvciBvdGhlcndpc2UgaGFuZGxlZCBieSBhY3RpdmUsIGhpZ2hlci1wcmlvcnRpeSB0eXBlcy5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgdHlwZVN0YXRlLnByb3RlY3RlZEtleXMgPSB7IC4uLmVuY291bnRlcmVkS2V5cyB9O1xuICAgICAgICAgICAgLy8gQ2hlY2sgaWYgd2UgY2FuIHNraXAgYW5hbHlzaW5nIHRoaXMgcHJvcCBlYXJseVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgLy8gSWYgaXQgaXNuJ3QgYWN0aXZlIGFuZCBoYXNuJ3QgKmp1c3QqIGJlZW4gc2V0IGFzIGluYWN0aXZlXG4gICAgICAgICAgICAoIXR5cGVTdGF0ZS5pc0FjdGl2ZSAmJiBhY3RpdmVEZWx0YSA9PT0gbnVsbCkgfHxcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSBkaWRuJ3QgYW5kIGRvbid0IGhhdmUgYW55IGRlZmluZWQgcHJvcCBmb3IgdGhpcyBhbmltYXRpb24gdHlwZVxuICAgICAgICAgICAgICAgICghcHJvcCAmJiAhdHlwZVN0YXRlLnByZXZQcm9wKSB8fFxuICAgICAgICAgICAgICAgIC8vIE9yIGlmIHRoZSBwcm9wIGRvZXNuJ3QgZGVmaW5lIGFuIGFuaW1hdGlvblxuICAgICAgICAgICAgICAgIGlzQW5pbWF0aW9uQ29udHJvbHMocHJvcCkgfHxcbiAgICAgICAgICAgICAgICB0eXBlb2YgcHJvcCA9PT0gXCJib29sZWFuXCIpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgZXhpdCBpcyBhbHJlYWR5IGFjdGl2ZSBhbmQgd2Fzbid0IGp1c3QgYWN0aXZhdGVkLCBza2lwXG4gICAgICAgICAgICAgKiByZS1wcm9jZXNzaW5nIHRvIHByZXZlbnQgaW50ZXJydXB0aW5nIHJ1bm5pbmcgZXhpdCBhbmltYXRpb25zLlxuICAgICAgICAgICAgICogUmUtcmVzb2x2aW5nIGV4aXQgd2l0aCBhIGNoYW5nZWQgY3VzdG9tIHZhbHVlIGNhbiBzdGFydCBuZXdcbiAgICAgICAgICAgICAqIHZhbHVlIGFuaW1hdGlvbnMgdGhhdCBzdG9wIHRoZSBvcmlnaW5hbHMsIGxlYXZpbmcgdGhlIGV4aXRcbiAgICAgICAgICAgICAqIGFuaW1hdGlvbiBwcm9taXNlIHVucmVzb2x2ZWQgYW5kIHRoZSBjb21wb25lbnQgc3R1Y2sgaW4gdGhlIERPTS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKHR5cGUgPT09IFwiZXhpdFwiICYmIHR5cGVTdGF0ZS5pc0FjdGl2ZSAmJiBhY3RpdmVEZWx0YSAhPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlU3RhdGUucHJldlJlc29sdmVkVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGVuY291bnRlcmVkS2V5cyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmVuY291bnRlcmVkS2V5cyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnR5cGVTdGF0ZS5wcmV2UmVzb2x2ZWRWYWx1ZXMsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBcyB3ZSBnbyBsb29rIHRocm91Z2ggdGhlIHZhbHVlcyBkZWZpbmVkIG9uIHRoaXMgdHlwZSwgaWYgd2UgZGV0ZWN0XG4gICAgICAgICAgICAgKiBhIGNoYW5nZWQgdmFsdWUgb3IgYSB2YWx1ZSB0aGF0IHdhcyByZW1vdmVkIGluIGEgaGlnaGVyIHByaW9yaXR5LCB3ZSBzZXRcbiAgICAgICAgICAgICAqIHRoaXMgdG8gdHJ1ZSBhbmQgYWRkIHRoaXMgcHJvcCB0byB0aGUgYW5pbWF0aW9uIGxpc3QuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnREaWRDaGFuZ2UgPSBjaGVja1ZhcmlhbnRzRGlkQ2hhbmdlKHR5cGVTdGF0ZS5wcmV2UHJvcCwgcHJvcCk7XG4gICAgICAgICAgICBsZXQgc2hvdWxkQW5pbWF0ZVR5cGUgPSB2YXJpYW50RGlkQ2hhbmdlIHx8XG4gICAgICAgICAgICAgICAgLy8gSWYgd2UncmUgbWFraW5nIHRoaXMgdmFyaWFudCBhY3RpdmUsIHdlIHdhbnQgdG8gYWx3YXlzIG1ha2UgaXQgYWN0aXZlXG4gICAgICAgICAgICAgICAgKHR5cGUgPT09IGNoYW5nZWRBY3RpdmVUeXBlICYmXG4gICAgICAgICAgICAgICAgICAgIHR5cGVTdGF0ZS5pc0FjdGl2ZSAmJlxuICAgICAgICAgICAgICAgICAgICAhaXNJbmhlcml0ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgcHJvcElzVmFyaWFudCkgfHxcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSByZW1vdmVkIGEgaGlnaGVyLXByaW9yaXR5IHZhcmlhbnQgKGkgaXMgaW4gcmV2ZXJzZSBvcmRlcilcbiAgICAgICAgICAgICAgICAoaSA+IHJlbW92ZWRWYXJpYW50SW5kZXggJiYgcHJvcElzVmFyaWFudCk7XG4gICAgICAgICAgICBsZXQgaGFuZGxlZFJlbW92ZWRWYWx1ZXMgPSBmYWxzZTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQXMgYW5pbWF0aW9ucyBjYW4gYmUgc2V0IGFzIHZhcmlhbnQgbGlzdHMsIHZhcmlhbnRzIG9yIHRhcmdldCBvYmplY3RzLCB3ZVxuICAgICAgICAgICAgICogY29lcmNlIGV2ZXJ5dGhpbmcgdG8gYW4gYXJyYXkgaWYgaXQgaXNuJ3Qgb25lIGFscmVhZHlcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgZGVmaW5pdGlvbkxpc3QgPSBBcnJheS5pc0FycmF5KHByb3ApID8gcHJvcCA6IFtwcm9wXTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogQnVpbGQgYW4gb2JqZWN0IG9mIGFsbCB0aGUgcmVzb2x2ZWQgdmFsdWVzLiBXZSdsbCB1c2UgdGhpcyBpbiB0aGUgc3Vic2VxdWVudFxuICAgICAgICAgICAgICogYW5pbWF0ZUNoYW5nZXMgY2FsbHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSB2YWx1ZSBoYXMgY2hhbmdlZC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgbGV0IHJlc29sdmVkVmFsdWVzID0gZGVmaW5pdGlvbkxpc3QucmVkdWNlKGJ1aWxkUmVzb2x2ZWRUeXBlVmFsdWVzKHR5cGUpLCB7fSk7XG4gICAgICAgICAgICBpZiAoYWN0aXZlRGVsdGEgPT09IGZhbHNlKVxuICAgICAgICAgICAgICAgIHJlc29sdmVkVmFsdWVzID0ge307XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIE5vdyB3ZSBuZWVkIHRvIGxvb3AgdGhyb3VnaCBhbGwgdGhlIGtleXMgaW4gdGhlIHByZXYgcHJvcCBhbmQgdGhpcyBwcm9wLFxuICAgICAgICAgICAgICogYW5kIGRlY2lkZTpcbiAgICAgICAgICAgICAqIDEuIElmIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZCwgYW5kIG5lZWRzIGFuaW1hdGluZ1xuICAgICAgICAgICAgICogMi4gSWYgaXQgaGFzIGJlZW4gcmVtb3ZlZCwgYW5kIG5lZWRzIGFkZGluZyB0byB0aGUgcmVtb3ZlZEtleXMgc2V0XG4gICAgICAgICAgICAgKiAzLiBJZiBpdCBoYXMgYmVlbiByZW1vdmVkIGluIGEgaGlnaGVyIHByaW9yaXR5IHR5cGUgYW5kIG5lZWRzIGFuaW1hdGluZ1xuICAgICAgICAgICAgICogNC4gSWYgaXQgaGFzbid0IGJlZW4gcmVtb3ZlZCBpbiBhIGhpZ2hlciBwcmlvcml0eSBidXQgaGFzbid0IGNoYW5nZWQsIGFuZFxuICAgICAgICAgICAgICogICAgbmVlZHMgYWRkaW5nIHRvIHRoZSB0eXBlJ3MgcHJvdGVjdGVkS2V5cyBsaXN0LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBjb25zdCB7IHByZXZSZXNvbHZlZFZhbHVlcyA9IHt9IH0gPSB0eXBlU3RhdGU7XG4gICAgICAgICAgICBjb25zdCBhbGxLZXlzID0ge1xuICAgICAgICAgICAgICAgIC4uLnByZXZSZXNvbHZlZFZhbHVlcyxcbiAgICAgICAgICAgICAgICAuLi5yZXNvbHZlZFZhbHVlcyxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCBtYXJrVG9BbmltYXRlID0gKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHNob3VsZEFuaW1hdGVUeXBlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAocmVtb3ZlZEtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlZFJlbW92ZWRWYWx1ZXMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVkS2V5cy5kZWxldGUoa2V5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdHlwZVN0YXRlLm5lZWRzQW5pbWF0aW5nW2tleV0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vdGlvblZhbHVlID0gdmlzdWFsRWxlbWVudC5nZXRWYWx1ZShrZXkpO1xuICAgICAgICAgICAgICAgIGlmIChtb3Rpb25WYWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgbW90aW9uVmFsdWUubGl2ZVN0eWxlID0gZmFsc2U7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYWxsS2V5cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHQgPSByZXNvbHZlZFZhbHVlc1trZXldO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZXYgPSBwcmV2UmVzb2x2ZWRWYWx1ZXNba2V5XTtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSd2ZSBhbHJlYWR5IGhhbmRsZWQgdGhpcyB3ZSBjYW4ganVzdCBza2lwIGFoZWFkXG4gICAgICAgICAgICAgICAgaWYgKGVuY291bnRlcmVkS2V5cy5oYXNPd25Qcm9wZXJ0eShrZXkpKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBJZiB0aGUgdmFsdWUgaGFzIGNoYW5nZWQsIHdlIHByb2JhYmx5IHdhbnQgdG8gYW5pbWF0ZSBpdC5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVIYXNDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKGlzS2V5ZnJhbWVzVGFyZ2V0KG5leHQpICYmIGlzS2V5ZnJhbWVzVGFyZ2V0KHByZXYpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlSGFzQ2hhbmdlZCA9ICFzaGFsbG93Q29tcGFyZShuZXh0LCBwcmV2KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlSGFzQ2hhbmdlZCA9IG5leHQgIT09IHByZXY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZUhhc0NoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgIT09IHVuZGVmaW5lZCAmJiBuZXh0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBuZXh0IGlzIGRlZmluZWQgYW5kIGRvZXNuJ3QgZXF1YWwgcHJldiwgaXQgbmVlZHMgYW5pbWF0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJrVG9BbmltYXRlKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiBpdCdzIHVuZGVmaW5lZCwgaXQncyBiZWVuIHJlbW92ZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVkS2V5cy5hZGQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChuZXh0ICE9PSB1bmRlZmluZWQgJiYgcmVtb3ZlZEtleXMuaGFzKGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIG5leHQgaGFzbid0IGNoYW5nZWQgYW5kIGl0IGlzbid0IHVuZGVmaW5lZCwgd2Ugd2FudCB0byBjaGVjayBpZiBpdCdzXG4gICAgICAgICAgICAgICAgICAgICAqIGJlZW4gcmVtb3ZlZCBieSBhIGhpZ2hlciBwcmlvcml0eVxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgbWFya1RvQW5pbWF0ZShrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICAgICAqIElmIGl0IGhhc24ndCBjaGFuZ2VkLCB3ZSBhZGQgaXQgdG8gdGhlIGxpc3Qgb2YgcHJvdGVjdGVkIHZhbHVlc1xuICAgICAgICAgICAgICAgICAgICAgKiB0byBlbnN1cmUgaXQgZG9lc24ndCBnZXQgYW5pbWF0ZWQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICB0eXBlU3RhdGUucHJvdGVjdGVkS2V5c1trZXldID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFVwZGF0ZSB0aGUgdHlwZVN0YXRlIHNvIG5leHQgdGltZSBhbmltYXRlQ2hhbmdlcyBpcyBjYWxsZWQgd2UgY2FuIGNvbXBhcmUgdGhlXG4gICAgICAgICAgICAgKiBsYXRlc3QgcHJvcCBhbmQgcmVzb2x2ZWRWYWx1ZXMgdG8gdGhlc2UuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHR5cGVTdGF0ZS5wcmV2UHJvcCA9IHByb3A7XG4gICAgICAgICAgICB0eXBlU3RhdGUucHJldlJlc29sdmVkVmFsdWVzID0gcmVzb2x2ZWRWYWx1ZXM7XG4gICAgICAgICAgICBpZiAodHlwZVN0YXRlLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgZW5jb3VudGVyZWRLZXlzID0geyAuLi5lbmNvdW50ZXJlZEtleXMsIC4uLnJlc29sdmVkVmFsdWVzIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNJbml0aWFsUmVuZGVyICYmIHZpc3VhbEVsZW1lbnQuYmxvY2tJbml0aWFsQW5pbWF0aW9uKSB7XG4gICAgICAgICAgICAgICAgc2hvdWxkQW5pbWF0ZVR5cGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgdGhpcyBpcyBhbiBpbmhlcml0ZWQgcHJvcCB3ZSB3YW50IHRvIHNraXAgdGhpcyBhbmltYXRpb25cbiAgICAgICAgICAgICAqIHVubGVzcyB0aGUgaW5oZXJpdGVkIHZhcmlhbnRzIGhhdmVuJ3QgY2hhbmdlZCBvbiB0aGlzIHJlbmRlci5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3Qgd2lsbEFuaW1hdGVWaWFQYXJlbnQgPSBpc0luaGVyaXRlZCAmJiB2YXJpYW50RGlkQ2hhbmdlO1xuICAgICAgICAgICAgY29uc3QgbmVlZHNBbmltYXRpbmcgPSAhd2lsbEFuaW1hdGVWaWFQYXJlbnQgfHwgaGFuZGxlZFJlbW92ZWRWYWx1ZXM7XG4gICAgICAgICAgICBpZiAoc2hvdWxkQW5pbWF0ZVR5cGUgJiYgbmVlZHNBbmltYXRpbmcpIHtcbiAgICAgICAgICAgICAgICBhbmltYXRpb25zLnB1c2goLi4uZGVmaW5pdGlvbkxpc3QubWFwKChhbmltYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsgdHlwZSB9O1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogSWYgd2UncmUgcGVyZm9ybWluZyB0aGUgaW5pdGlhbCBhbmltYXRpb24sIGJ1dCB3ZSdyZSBub3RcbiAgICAgICAgICAgICAgICAgICAgICogcmVuZGVyaW5nIGF0IHRoZSBzYW1lIHRpbWUgYXMgdGhlIHZhcmlhbnQtY29udHJvbGxpbmcgcGFyZW50LFxuICAgICAgICAgICAgICAgICAgICAgKiB3ZSB3YW50IHRvIHVzZSB0aGUgcGFyZW50J3MgdHJhbnNpdGlvbiB0byBjYWxjdWxhdGUgdGhlIHN0YWdnZXIuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFuaW1hdGlvbiA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXNJbml0aWFsUmVuZGVyICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhd2lsbEFuaW1hdGVWaWFQYXJlbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc3VhbEVsZW1lbnQubWFudWFsbHlBbmltYXRlT25Nb3VudCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlzdWFsRWxlbWVudC5wYXJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGFyZW50IH0gPSB2aXN1YWxFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50VmFyaWFudCA9IHJlc29sdmVWYXJpYW50KHBhcmVudCwgYW5pbWF0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnQuZW50ZXJpbmdDaGlsZHJlbiAmJiBwYXJlbnRWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkZWxheUNoaWxkcmVuIH0gPSBwYXJlbnRWYXJpYW50LnRyYW5zaXRpb24gfHwge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5kZWxheSA9IGNhbGNDaGlsZFN0YWdnZXIocGFyZW50LmVudGVyaW5nQ2hpbGRyZW4sIHZpc3VhbEVsZW1lbnQsIGRlbGF5Q2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRpb246IGFuaW1hdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJZiB0aGVyZSBhcmUgc29tZSByZW1vdmVkIHZhbHVlIHRoYXQgaGF2ZW4ndCBiZWVuIGRlYWx0IHdpdGgsXG4gICAgICAgICAqIHdlIG5lZWQgdG8gY3JlYXRlIGEgbmV3IGFuaW1hdGlvbiB0aGF0IGZhbGxzIGJhY2sgZWl0aGVyIHRvIHRoZSB2YWx1ZVxuICAgICAgICAgKiBkZWZpbmVkIGluIHRoZSBzdHlsZSBwcm9wLCBvciB0aGUgbGFzdCByZWFkIHZhbHVlLlxuICAgICAgICAgKi9cbiAgICAgICAgaWYgKHJlbW92ZWRLZXlzLnNpemUpIHtcbiAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrQW5pbWF0aW9uID0ge307XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoZSBpbml0aWFsIHByb3AgY29udGFpbnMgYSB0cmFuc2l0aW9uIHdlIGNhbiB1c2UgdGhhdCwgb3RoZXJ3aXNlXG4gICAgICAgICAgICAgKiBhbGxvdyB0aGUgYW5pbWF0aW9uIGZ1bmN0aW9uIHRvIHVzZSB0aGUgdmlzdWFsIGVsZW1lbnQncyBkZWZhdWx0LlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBpZiAodHlwZW9mIHByb3BzLmluaXRpYWwgIT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5pdGlhbFRyYW5zaXRpb24gPSByZXNvbHZlVmFyaWFudCh2aXN1YWxFbGVtZW50LCBBcnJheS5pc0FycmF5KHByb3BzLmluaXRpYWwpXG4gICAgICAgICAgICAgICAgICAgID8gcHJvcHMuaW5pdGlhbFswXVxuICAgICAgICAgICAgICAgICAgICA6IHByb3BzLmluaXRpYWwpO1xuICAgICAgICAgICAgICAgIGlmIChpbml0aWFsVHJhbnNpdGlvbiAmJiBpbml0aWFsVHJhbnNpdGlvbi50cmFuc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrQW5pbWF0aW9uLnRyYW5zaXRpb24gPSBpbml0aWFsVHJhbnNpdGlvbi50cmFuc2l0aW9uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlbW92ZWRLZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZhbGxiYWNrVGFyZ2V0ID0gdmlzdWFsRWxlbWVudC5nZXRCYXNlVGFyZ2V0KGtleSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbW90aW9uVmFsdWUgPSB2aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSk7XG4gICAgICAgICAgICAgICAgaWYgKG1vdGlvblZhbHVlKVxuICAgICAgICAgICAgICAgICAgICBtb3Rpb25WYWx1ZS5saXZlU3R5bGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBAbWF0dGdwZXJyeSB0byBmaWd1cmUgaWYgd2Ugc2hvdWxkIGRvIHNvbWV0aGluZyBoZXJlXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tBbmltYXRpb25ba2V5XSA9IGZhbGxiYWNrVGFyZ2V0ID8/IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGFuaW1hdGlvbnMucHVzaCh7IGFuaW1hdGlvbjogZmFsbGJhY2tBbmltYXRpb24gfSk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHNob3VsZEFuaW1hdGUgPSBCb29sZWFuKGFuaW1hdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgaWYgKGlzSW5pdGlhbFJlbmRlciAmJlxuICAgICAgICAgICAgKHByb3BzLmluaXRpYWwgPT09IGZhbHNlIHx8IHByb3BzLmluaXRpYWwgPT09IHByb3BzLmFuaW1hdGUpICYmXG4gICAgICAgICAgICAhdmlzdWFsRWxlbWVudC5tYW51YWxseUFuaW1hdGVPbk1vdW50KSB7XG4gICAgICAgICAgICBzaG91bGRBbmltYXRlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaXNJbml0aWFsUmVuZGVyID0gZmFsc2U7XG4gICAgICAgIHJldHVybiBzaG91bGRBbmltYXRlID8gYW5pbWF0ZShhbmltYXRpb25zKSA6IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDaGFuZ2Ugd2hldGhlciBhIGNlcnRhaW4gYW5pbWF0aW9uIHR5cGUgaXMgYWN0aXZlLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHNldEFjdGl2ZSh0eXBlLCBpc0FjdGl2ZSkge1xuICAgICAgICAvLyBJZiB0aGUgYWN0aXZlIHN0YXRlIGhhc24ndCBjaGFuZ2VkLCB3ZSBjYW4gc2FmZWx5IGRvIG5vdGhpbmcgaGVyZVxuICAgICAgICBpZiAoc3RhdGVbdHlwZV0uaXNBY3RpdmUgPT09IGlzQWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICAvLyBQcm9wYWdhdGUgYWN0aXZlIGNoYW5nZSB0byBjaGlsZHJlblxuICAgICAgICB2aXN1YWxFbGVtZW50LnZhcmlhbnRDaGlsZHJlbj8uZm9yRWFjaCgoY2hpbGQpID0+IGNoaWxkLmFuaW1hdGlvblN0YXRlPy5zZXRBY3RpdmUodHlwZSwgaXNBY3RpdmUpKTtcbiAgICAgICAgc3RhdGVbdHlwZV0uaXNBY3RpdmUgPSBpc0FjdGl2ZTtcbiAgICAgICAgY29uc3QgYW5pbWF0aW9ucyA9IGFuaW1hdGVDaGFuZ2VzKHR5cGUpO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBzdGF0ZSkge1xuICAgICAgICAgICAgc3RhdGVba2V5XS5wcm90ZWN0ZWRLZXlzID0ge307XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFuaW1hdGlvbnM7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGFuaW1hdGVDaGFuZ2VzLFxuICAgICAgICBzZXRBY3RpdmUsXG4gICAgICAgIHNldEFuaW1hdGVGdW5jdGlvbixcbiAgICAgICAgZ2V0U3RhdGU6ICgpID0+IHN0YXRlLFxuICAgICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgc3RhdGUgPSBjcmVhdGVTdGF0ZSgpO1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBUZW1wb3JhcmlseSBkaXNhYmxpbmcgcmVzZXR0aW5nIHRoaXMgZmxhZyBhcyBpdCBwcmV2ZW50cyBjb21wb25lbnRzXG4gICAgICAgICAgICAgKiB3aXRoIGluaXRpYWw9e2ZhbHNlfSBmcm9tIGFuaW1hdGluZyBhZnRlciBiZWluZyByZW1vdW50ZWQsIGZvciBpbnN0YW5jZVxuICAgICAgICAgICAgICogYXMgdGhlIGNoaWxkIG9mIGFuIEFjdGl2aXR5IGNvbXBvbmVudC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgLy8gaXNJbml0aWFsUmVuZGVyID0gdHJ1ZVxuICAgICAgICB9LFxuICAgIH07XG59XG5mdW5jdGlvbiBjaGVja1ZhcmlhbnRzRGlkQ2hhbmdlKHByZXYsIG5leHQpIHtcbiAgICBpZiAodHlwZW9mIG5leHQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIG5leHQgIT09IHByZXY7XG4gICAgfVxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkobmV4dCkpIHtcbiAgICAgICAgcmV0dXJuICFzaGFsbG93Q29tcGFyZShuZXh0LCBwcmV2KTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuZnVuY3Rpb24gY3JlYXRlVHlwZVN0YXRlKGlzQWN0aXZlID0gZmFsc2UpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBpc0FjdGl2ZSxcbiAgICAgICAgcHJvdGVjdGVkS2V5czoge30sXG4gICAgICAgIG5lZWRzQW5pbWF0aW5nOiB7fSxcbiAgICAgICAgcHJldlJlc29sdmVkVmFsdWVzOiB7fSxcbiAgICB9O1xufVxuZnVuY3Rpb24gY3JlYXRlU3RhdGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgYW5pbWF0ZTogY3JlYXRlVHlwZVN0YXRlKHRydWUpLFxuICAgICAgICB3aGlsZUluVmlldzogY3JlYXRlVHlwZVN0YXRlKCksXG4gICAgICAgIHdoaWxlSG92ZXI6IGNyZWF0ZVR5cGVTdGF0ZSgpLFxuICAgICAgICB3aGlsZVRhcDogY3JlYXRlVHlwZVN0YXRlKCksXG4gICAgICAgIHdoaWxlRHJhZzogY3JlYXRlVHlwZVN0YXRlKCksXG4gICAgICAgIHdoaWxlRm9jdXM6IGNyZWF0ZVR5cGVTdGF0ZSgpLFxuICAgICAgICBleGl0OiBjcmVhdGVUeXBlU3RhdGUoKSxcbiAgICB9O1xufVxuXG5leHBvcnQgeyBjaGVja1ZhcmlhbnRzRGlkQ2hhbmdlLCBjcmVhdGVBbmltYXRpb25TdGF0ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW5pbWF0aW9uLXN0YXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/animation-state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getVariantContext: () => (/* binding */ getVariantContext)\n/* harmony export */ });\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variant-props.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\");\n\n\n\nconst numVariantProps = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantProps.length;\n/**\n * Get variant context from a visual element's parent chain.\n * Uses `any` type for visualElement to avoid circular dependencies.\n */\nfunction getVariantContext(visualElement) {\n if (!visualElement)\n return undefined;\n if (!visualElement.isControllingVariants) {\n const context = visualElement.parent\n ? getVariantContext(visualElement.parent) || {}\n : {};\n if (visualElement.props.initial !== undefined) {\n context.initial = visualElement.props.initial;\n }\n return context;\n }\n const context = {};\n for (let i = 0; i < numVariantProps; i++) {\n const name = _variant_props_mjs__WEBPACK_IMPORTED_MODULE_0__.variantProps[i];\n const prop = visualElement.props[name];\n if ((0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_1__.isVariantLabel)(prop) || prop === false) {\n context[name] = prop;\n }\n }\n return context;\n}\n\n\n//# sourceMappingURL=get-variant-context.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2dldC12YXJpYW50LWNvbnRleHQubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUF3RDtBQUNMOztBQUVuRCx3QkFBd0IsNERBQVk7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixxQkFBcUI7QUFDekMscUJBQXFCLDREQUFZO0FBQ2pDO0FBQ0EsWUFBWSxxRUFBYztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2dldC12YXJpYW50LWNvbnRleHQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzVmFyaWFudExhYmVsIH0gZnJvbSAnLi9pcy12YXJpYW50LWxhYmVsLm1qcyc7XG5pbXBvcnQgeyB2YXJpYW50UHJvcHMgfSBmcm9tICcuL3ZhcmlhbnQtcHJvcHMubWpzJztcblxuY29uc3QgbnVtVmFyaWFudFByb3BzID0gdmFyaWFudFByb3BzLmxlbmd0aDtcbi8qKlxuICogR2V0IHZhcmlhbnQgY29udGV4dCBmcm9tIGEgdmlzdWFsIGVsZW1lbnQncyBwYXJlbnQgY2hhaW4uXG4gKiBVc2VzIGBhbnlgIHR5cGUgZm9yIHZpc3VhbEVsZW1lbnQgdG8gYXZvaWQgY2lyY3VsYXIgZGVwZW5kZW5jaWVzLlxuICovXG5mdW5jdGlvbiBnZXRWYXJpYW50Q29udGV4dCh2aXN1YWxFbGVtZW50KSB7XG4gICAgaWYgKCF2aXN1YWxFbGVtZW50KVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICghdmlzdWFsRWxlbWVudC5pc0NvbnRyb2xsaW5nVmFyaWFudHMpIHtcbiAgICAgICAgY29uc3QgY29udGV4dCA9IHZpc3VhbEVsZW1lbnQucGFyZW50XG4gICAgICAgICAgICA/IGdldFZhcmlhbnRDb250ZXh0KHZpc3VhbEVsZW1lbnQucGFyZW50KSB8fCB7fVxuICAgICAgICAgICAgOiB7fTtcbiAgICAgICAgaWYgKHZpc3VhbEVsZW1lbnQucHJvcHMuaW5pdGlhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb250ZXh0LmluaXRpYWwgPSB2aXN1YWxFbGVtZW50LnByb3BzLmluaXRpYWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRleHQgPSB7fTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG51bVZhcmlhbnRQcm9wczsgaSsrKSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB2YXJpYW50UHJvcHNbaV07XG4gICAgICAgIGNvbnN0IHByb3AgPSB2aXN1YWxFbGVtZW50LnByb3BzW25hbWVdO1xuICAgICAgICBpZiAoaXNWYXJpYW50TGFiZWwocHJvcCkgfHwgcHJvcCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnRleHRbbmFtZV0gPSBwcm9wO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb250ZXh0O1xufVxuXG5leHBvcnQgeyBnZXRWYXJpYW50Q29udGV4dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Z2V0LXZhcmlhbnQtY29udGV4dC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isAnimationControls: () => (/* binding */ isAnimationControls)\n/* harmony export */ });\nfunction isAnimationControls(v) {\n return (v !== null &&\n typeof v === \"object\" &&\n typeof v.start === \"function\");\n}\n\n\n//# sourceMappingURL=is-animation-controls.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWFuaW1hdGlvbi1jb250cm9scy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvaXMtYW5pbWF0aW9uLWNvbnRyb2xzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBpc0FuaW1hdGlvbkNvbnRyb2xzKHYpIHtcbiAgICByZXR1cm4gKHYgIT09IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIHYgPT09IFwib2JqZWN0XCIgJiZcbiAgICAgICAgdHlwZW9mIHYuc3RhcnQgPT09IFwiZnVuY3Rpb25cIik7XG59XG5cbmV4cG9ydCB7IGlzQW5pbWF0aW9uQ29udHJvbHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWFuaW1hdGlvbi1jb250cm9scy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isControllingVariants: () => (/* binding */ isControllingVariants),\n/* harmony export */ isVariantNode: () => (/* binding */ isVariantNode)\n/* harmony export */ });\n/* harmony import */ var _is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-animation-controls.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs\");\n/* harmony import */ var _is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./is-variant-label.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\");\n/* harmony import */ var _variant_props_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./variant-props.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\");\n\n\n\n\nfunction isControllingVariants(props) {\n return ((0,_is_animation_controls_mjs__WEBPACK_IMPORTED_MODULE_0__.isAnimationControls)(props.animate) ||\n _variant_props_mjs__WEBPACK_IMPORTED_MODULE_1__.variantProps.some((name) => (0,_is_variant_label_mjs__WEBPACK_IMPORTED_MODULE_2__.isVariantLabel)(props[name])));\n}\nfunction isVariantNode(props) {\n return Boolean(isControllingVariants(props) || props.variants);\n}\n\n\n//# sourceMappingURL=is-controlling-variants.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWNvbnRyb2xsaW5nLXZhcmlhbnRzLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFrRTtBQUNWO0FBQ0w7O0FBRW5EO0FBQ0EsWUFBWSwrRUFBbUI7QUFDL0IsUUFBUSw0REFBWSxnQkFBZ0IscUVBQWM7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7O0FBRWdEO0FBQ2hEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvaXMtY29udHJvbGxpbmctdmFyaWFudHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzQW5pbWF0aW9uQ29udHJvbHMgfSBmcm9tICcuL2lzLWFuaW1hdGlvbi1jb250cm9scy5tanMnO1xuaW1wb3J0IHsgaXNWYXJpYW50TGFiZWwgfSBmcm9tICcuL2lzLXZhcmlhbnQtbGFiZWwubWpzJztcbmltcG9ydCB7IHZhcmlhbnRQcm9wcyB9IGZyb20gJy4vdmFyaWFudC1wcm9wcy5tanMnO1xuXG5mdW5jdGlvbiBpc0NvbnRyb2xsaW5nVmFyaWFudHMocHJvcHMpIHtcbiAgICByZXR1cm4gKGlzQW5pbWF0aW9uQ29udHJvbHMocHJvcHMuYW5pbWF0ZSkgfHxcbiAgICAgICAgdmFyaWFudFByb3BzLnNvbWUoKG5hbWUpID0+IGlzVmFyaWFudExhYmVsKHByb3BzW25hbWVdKSkpO1xufVxuZnVuY3Rpb24gaXNWYXJpYW50Tm9kZShwcm9wcykge1xuICAgIHJldHVybiBCb29sZWFuKGlzQ29udHJvbGxpbmdWYXJpYW50cyhwcm9wcykgfHwgcHJvcHMudmFyaWFudHMpO1xufVxuXG5leHBvcnQgeyBpc0NvbnRyb2xsaW5nVmFyaWFudHMsIGlzVmFyaWFudE5vZGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWNvbnRyb2xsaW5nLXZhcmlhbnRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addScaleCorrector: () => (/* reexport safe */ _projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__.addScaleCorrector),\n/* harmony export */ isForcedMotionValue: () => (/* binding */ isForcedMotionValue),\n/* harmony export */ scaleCorrectors: () => (/* reexport safe */ _projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__.scaleCorrectors)\n/* harmony export */ });\n/* harmony import */ var _keys_transform_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n/* harmony import */ var _projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../projection/styles/scale-correction.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs\");\n\n\n\n\nfunction isForcedMotionValue(key, { layout, layoutId }) {\n return (_keys_transform_mjs__WEBPACK_IMPORTED_MODULE_1__.transformProps.has(key) ||\n key.startsWith(\"origin\") ||\n ((layout || layoutId !== undefined) &&\n (!!_projection_styles_scale_correction_mjs__WEBPACK_IMPORTED_MODULE_0__.scaleCorrectors[key] || key === \"opacity\")));\n}\n\n\n//# sourceMappingURL=is-forced-motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWZvcmNlZC1tb3Rpb24tdmFsdWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXNEO0FBQ3lCO0FBQ0U7O0FBRWpGLG9DQUFvQyxrQkFBa0I7QUFDdEQsWUFBWSwrREFBYztBQUMxQjtBQUNBO0FBQ0EsZUFBZSxvRkFBZTtBQUM5Qjs7QUFFZ0Q7QUFDaEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9pcy1mb3JjZWQtbW90aW9uLXZhbHVlLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0cmFuc2Zvcm1Qcm9wcyB9IGZyb20gJy4va2V5cy10cmFuc2Zvcm0ubWpzJztcbmltcG9ydCB7IHNjYWxlQ29ycmVjdG9ycyB9IGZyb20gJy4uLy4uL3Byb2plY3Rpb24vc3R5bGVzL3NjYWxlLWNvcnJlY3Rpb24ubWpzJztcbmV4cG9ydCB7IGFkZFNjYWxlQ29ycmVjdG9yIH0gZnJvbSAnLi4vLi4vcHJvamVjdGlvbi9zdHlsZXMvc2NhbGUtY29ycmVjdGlvbi5tanMnO1xuXG5mdW5jdGlvbiBpc0ZvcmNlZE1vdGlvblZhbHVlKGtleSwgeyBsYXlvdXQsIGxheW91dElkIH0pIHtcbiAgICByZXR1cm4gKHRyYW5zZm9ybVByb3BzLmhhcyhrZXkpIHx8XG4gICAgICAgIGtleS5zdGFydHNXaXRoKFwib3JpZ2luXCIpIHx8XG4gICAgICAgICgobGF5b3V0IHx8IGxheW91dElkICE9PSB1bmRlZmluZWQpICYmXG4gICAgICAgICAgICAoISFzY2FsZUNvcnJlY3RvcnNba2V5XSB8fCBrZXkgPT09IFwib3BhY2l0eVwiKSkpO1xufVxuXG5leHBvcnQgeyBpc0ZvcmNlZE1vdGlvblZhbHVlLCBzY2FsZUNvcnJlY3RvcnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWZvcmNlZC1tb3Rpb24tdmFsdWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isKeyframesTarget: () => (/* binding */ isKeyframesTarget)\n/* harmony export */ });\nconst isKeyframesTarget = (v) => {\n return Array.isArray(v);\n};\n\n\n//# sourceMappingURL=is-keyframes-target.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLWtleWZyYW1lcy10YXJnZXQubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRTZCO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvaXMta2V5ZnJhbWVzLXRhcmdldC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgaXNLZXlmcmFtZXNUYXJnZXQgPSAodikgPT4ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHYpO1xufTtcblxuZXhwb3J0IHsgaXNLZXlmcmFtZXNUYXJnZXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWtleWZyYW1lcy10YXJnZXQubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isVariantLabel: () => (/* binding */ isVariantLabel)\n/* harmony export */ });\n/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || Array.isArray(v);\n}\n\n\n//# sourceMappingURL=is-variant-label.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2lzLXZhcmlhbnQtbGFiZWwubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTBCO0FBQzFCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvaXMtdmFyaWFudC1sYWJlbC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWNpZGVzIGlmIHRoZSBzdXBwbGllZCB2YXJpYWJsZSBpcyB2YXJpYW50IGxhYmVsXG4gKi9cbmZ1bmN0aW9uIGlzVmFyaWFudExhYmVsKHYpIHtcbiAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCIgfHwgQXJyYXkuaXNBcnJheSh2KTtcbn1cblxuZXhwb3J0IHsgaXNWYXJpYW50TGFiZWwgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXZhcmlhbnQtbGFiZWwubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ positionalKeys: () => (/* binding */ positionalKeys)\n/* harmony export */ });\n/* harmony import */ var _keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./keys-transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\");\n\n\nconst positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n ..._keys_transform_mjs__WEBPACK_IMPORTED_MODULE_0__.transformPropOrder,\n]);\n\n\n//# sourceMappingURL=keys-position.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2tleXMtcG9zaXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTBEOztBQUUxRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sbUVBQWtCO0FBQ3pCOztBQUUwQjtBQUMxQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2tleXMtcG9zaXRpb24ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRyYW5zZm9ybVByb3BPcmRlciB9IGZyb20gJy4va2V5cy10cmFuc2Zvcm0ubWpzJztcblxuY29uc3QgcG9zaXRpb25hbEtleXMgPSBuZXcgU2V0KFtcbiAgICBcIndpZHRoXCIsXG4gICAgXCJoZWlnaHRcIixcbiAgICBcInRvcFwiLFxuICAgIFwibGVmdFwiLFxuICAgIFwicmlnaHRcIixcbiAgICBcImJvdHRvbVwiLFxuICAgIC4uLnRyYW5zZm9ybVByb3BPcmRlcixcbl0pO1xuXG5leHBvcnQgeyBwb3NpdGlvbmFsS2V5cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9a2V5cy1wb3NpdGlvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-position.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ transformPropOrder: () => (/* binding */ transformPropOrder),\n/* harmony export */ transformProps: () => (/* binding */ transformProps)\n/* harmony export */ });\n/**\n * Generate a list of every possible transform key.\n */\nconst transformPropOrder = [\n \"transformPerspective\",\n \"x\",\n \"y\",\n \"z\",\n \"translateX\",\n \"translateY\",\n \"translateZ\",\n \"scale\",\n \"scaleX\",\n \"scaleY\",\n \"rotate\",\n \"rotateX\",\n \"rotateY\",\n \"rotateZ\",\n \"skew\",\n \"skewX\",\n \"skewY\",\n];\n/**\n * A quick lookup for transform props.\n */\nconst transformProps = /*@__PURE__*/ (() => new Set(transformPropOrder))();\n\n\n//# sourceMappingURL=keys-transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL2tleXMtdHJhbnNmb3JtLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRThDO0FBQzlDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMva2V5cy10cmFuc2Zvcm0ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGUgYSBsaXN0IG9mIGV2ZXJ5IHBvc3NpYmxlIHRyYW5zZm9ybSBrZXkuXG4gKi9cbmNvbnN0IHRyYW5zZm9ybVByb3BPcmRlciA9IFtcbiAgICBcInRyYW5zZm9ybVBlcnNwZWN0aXZlXCIsXG4gICAgXCJ4XCIsXG4gICAgXCJ5XCIsXG4gICAgXCJ6XCIsXG4gICAgXCJ0cmFuc2xhdGVYXCIsXG4gICAgXCJ0cmFuc2xhdGVZXCIsXG4gICAgXCJ0cmFuc2xhdGVaXCIsXG4gICAgXCJzY2FsZVwiLFxuICAgIFwic2NhbGVYXCIsXG4gICAgXCJzY2FsZVlcIixcbiAgICBcInJvdGF0ZVwiLFxuICAgIFwicm90YXRlWFwiLFxuICAgIFwicm90YXRlWVwiLFxuICAgIFwicm90YXRlWlwiLFxuICAgIFwic2tld1wiLFxuICAgIFwic2tld1hcIixcbiAgICBcInNrZXdZXCIsXG5dO1xuLyoqXG4gKiBBIHF1aWNrIGxvb2t1cCBmb3IgdHJhbnNmb3JtIHByb3BzLlxuICovXG5jb25zdCB0cmFuc2Zvcm1Qcm9wcyA9IC8qQF9fUFVSRV9fKi8gKCgpID0+IG5ldyBTZXQodHJhbnNmb3JtUHJvcE9yZGVyKSkoKTtcblxuZXhwb3J0IHsgdHJhbnNmb3JtUHJvcE9yZGVyLCB0cmFuc2Zvcm1Qcm9wcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9a2V5cy10cmFuc2Zvcm0ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/motion-values.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/motion-values.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ updateMotionValuesFromProps: () => (/* binding */ updateMotionValuesFromProps)\n/* harmony export */ });\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\n\n/**\n * Updates motion values from props changes.\n * Uses `any` type for element to avoid circular dependencies with VisualElement.\n */\nfunction updateMotionValuesFromProps(element, next, prev) {\n for (const key in next) {\n const nextValue = next[key];\n const prevValue = prev[key];\n if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n }\n else if ((0,_value_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(prevValue)) {\n /**\n * If we're swapping from a motion value to a static value,\n * create a new motion value from that\n */\n element.addValue(key, (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_1__.motionValue)(nextValue, { owner: element }));\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n const existingValue = element.getValue(key);\n if (existingValue.liveStyle === true) {\n existingValue.jump(nextValue);\n }\n else if (!existingValue.hasAnimated) {\n existingValue.set(nextValue);\n }\n }\n else {\n const latestValue = element.getStaticValue(key);\n element.addValue(key, (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_1__.motionValue)(latestValue !== undefined ? latestValue : nextValue, { owner: element }));\n }\n }\n }\n // Handle removed values\n for (const key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\n\n//# sourceMappingURL=motion-values.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL21vdGlvbi12YWx1ZXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvRDtBQUNrQjs7QUFFdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksK0VBQWE7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLCtFQUFhO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDLDZEQUFXLGNBQWMsZ0JBQWdCO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNDQUFzQyw2REFBVyx3REFBd0QsZ0JBQWdCO0FBQ3pIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV1QztBQUN2QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL21vdGlvbi12YWx1ZXMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvaW5kZXgubWpzJztcbmltcG9ydCB7IGlzTW90aW9uVmFsdWUgfSBmcm9tICcuLi8uLi92YWx1ZS91dGlscy9pcy1tb3Rpb24tdmFsdWUubWpzJztcblxuLyoqXG4gKiBVcGRhdGVzIG1vdGlvbiB2YWx1ZXMgZnJvbSBwcm9wcyBjaGFuZ2VzLlxuICogVXNlcyBgYW55YCB0eXBlIGZvciBlbGVtZW50IHRvIGF2b2lkIGNpcmN1bGFyIGRlcGVuZGVuY2llcyB3aXRoIFZpc3VhbEVsZW1lbnQuXG4gKi9cbmZ1bmN0aW9uIHVwZGF0ZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyhlbGVtZW50LCBuZXh0LCBwcmV2KSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gbmV4dCkge1xuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSBuZXh0W2tleV07XG4gICAgICAgIGNvbnN0IHByZXZWYWx1ZSA9IHByZXZba2V5XTtcbiAgICAgICAgaWYgKGlzTW90aW9uVmFsdWUobmV4dFZhbHVlKSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGlzIGEgbW90aW9uIHZhbHVlIGZvdW5kIGluIHByb3BzIG9yIHN0eWxlLCB3ZSB3YW50IHRvIGFkZCBpdFxuICAgICAgICAgICAgICogdG8gb3VyIHZpc3VhbCBlbGVtZW50J3MgbW90aW9uIHZhbHVlIG1hcC5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgZWxlbWVudC5hZGRWYWx1ZShrZXksIG5leHRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoaXNNb3Rpb25WYWx1ZShwcmV2VmFsdWUpKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHdlJ3JlIHN3YXBwaW5nIGZyb20gYSBtb3Rpb24gdmFsdWUgdG8gYSBzdGF0aWMgdmFsdWUsXG4gICAgICAgICAgICAgKiBjcmVhdGUgYSBuZXcgbW90aW9uIHZhbHVlIGZyb20gdGhhdFxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICBlbGVtZW50LmFkZFZhbHVlKGtleSwgbW90aW9uVmFsdWUobmV4dFZhbHVlLCB7IG93bmVyOiBlbGVtZW50IH0pKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwcmV2VmFsdWUgIT09IG5leHRWYWx1ZSkge1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBJZiB0aGlzIGlzIGEgZmxhdCB2YWx1ZSB0aGF0IGhhcyBjaGFuZ2VkLCB1cGRhdGUgdGhlIG1vdGlvbiB2YWx1ZVxuICAgICAgICAgICAgICogb3IgY3JlYXRlIG9uZSBpZiBpdCBkb2Vzbid0IGV4aXN0LiBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBpZiB3ZSdyZVxuICAgICAgICAgICAgICogbm90IGhhbmRsaW5nIHRoZSB2YWx1ZSB3aXRoIG91ciBhbmltYXRpb24gc3RhdGUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmIChlbGVtZW50Lmhhc1ZhbHVlKGtleSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gZWxlbWVudC5nZXRWYWx1ZShrZXkpO1xuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ1ZhbHVlLmxpdmVTdHlsZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICBleGlzdGluZ1ZhbHVlLmp1bXAobmV4dFZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAoIWV4aXN0aW5nVmFsdWUuaGFzQW5pbWF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdWYWx1ZS5zZXQobmV4dFZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXRlc3RWYWx1ZSA9IGVsZW1lbnQuZ2V0U3RhdGljVmFsdWUoa2V5KTtcbiAgICAgICAgICAgICAgICBlbGVtZW50LmFkZFZhbHVlKGtleSwgbW90aW9uVmFsdWUobGF0ZXN0VmFsdWUgIT09IHVuZGVmaW5lZCA/IGxhdGVzdFZhbHVlIDogbmV4dFZhbHVlLCB7IG93bmVyOiBlbGVtZW50IH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvLyBIYW5kbGUgcmVtb3ZlZCB2YWx1ZXNcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwcmV2KSB7XG4gICAgICAgIGlmIChuZXh0W2tleV0gPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlVmFsdWUoa2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQ7XG59XG5cbmV4cG9ydCB7IHVwZGF0ZU1vdGlvblZhbHVlc0Zyb21Qcm9wcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bW90aW9uLXZhbHVlcy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/motion-values.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasReducedMotionListener: () => (/* reexport safe */ _state_mjs__WEBPACK_IMPORTED_MODULE_0__.hasReducedMotionListener),\n/* harmony export */ initPrefersReducedMotion: () => (/* binding */ initPrefersReducedMotion),\n/* harmony export */ prefersReducedMotion: () => (/* reexport safe */ _state_mjs__WEBPACK_IMPORTED_MODULE_0__.prefersReducedMotion)\n/* harmony export */ });\n/* harmony import */ var _state_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./state.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs\");\n\n\nconst isBrowser = typeof window !== \"undefined\";\nfunction initPrefersReducedMotion() {\n _state_mjs__WEBPACK_IMPORTED_MODULE_0__.hasReducedMotionListener.current = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n const motionMediaQuery = window.matchMedia(\"(prefers-reduced-motion)\");\n const setReducedMotionPreferences = () => (_state_mjs__WEBPACK_IMPORTED_MODULE_0__.prefersReducedMotion.current = motionMediaQuery.matches);\n motionMediaQuery.addEventListener(\"change\", setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n _state_mjs__WEBPACK_IMPORTED_MODULE_0__.prefersReducedMotion.current = false;\n }\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3JlZHVjZWQtbW90aW9uL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQTZFOztBQUU3RTtBQUNBO0FBQ0EsSUFBSSxnRUFBd0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsNERBQW9CO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw0REFBb0I7QUFDNUI7QUFDQTs7QUFFb0Y7QUFDcEYiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZWR1Y2VkLW1vdGlvbi9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFzUmVkdWNlZE1vdGlvbkxpc3RlbmVyLCBwcmVmZXJzUmVkdWNlZE1vdGlvbiB9IGZyb20gJy4vc3RhdGUubWpzJztcblxuY29uc3QgaXNCcm93c2VyID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIjtcbmZ1bmN0aW9uIGluaXRQcmVmZXJzUmVkdWNlZE1vdGlvbigpIHtcbiAgICBoYXNSZWR1Y2VkTW90aW9uTGlzdGVuZXIuY3VycmVudCA9IHRydWU7XG4gICAgaWYgKCFpc0Jyb3dzZXIpXG4gICAgICAgIHJldHVybjtcbiAgICBpZiAod2luZG93Lm1hdGNoTWVkaWEpIHtcbiAgICAgICAgY29uc3QgbW90aW9uTWVkaWFRdWVyeSA9IHdpbmRvdy5tYXRjaE1lZGlhKFwiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb24pXCIpO1xuICAgICAgICBjb25zdCBzZXRSZWR1Y2VkTW90aW9uUHJlZmVyZW5jZXMgPSAoKSA9PiAocHJlZmVyc1JlZHVjZWRNb3Rpb24uY3VycmVudCA9IG1vdGlvbk1lZGlhUXVlcnkubWF0Y2hlcyk7XG4gICAgICAgIG1vdGlvbk1lZGlhUXVlcnkuYWRkRXZlbnRMaXN0ZW5lcihcImNoYW5nZVwiLCBzZXRSZWR1Y2VkTW90aW9uUHJlZmVyZW5jZXMpO1xuICAgICAgICBzZXRSZWR1Y2VkTW90aW9uUHJlZmVyZW5jZXMoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHByZWZlcnNSZWR1Y2VkTW90aW9uLmN1cnJlbnQgPSBmYWxzZTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IGhhc1JlZHVjZWRNb3Rpb25MaXN0ZW5lciwgaW5pdFByZWZlcnNSZWR1Y2VkTW90aW9uLCBwcmVmZXJzUmVkdWNlZE1vdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasReducedMotionListener: () => (/* binding */ hasReducedMotionListener),\n/* harmony export */ prefersReducedMotion: () => (/* binding */ prefersReducedMotion)\n/* harmony export */ });\n// Does this device prefer reduced motion? Returns `null` server-side.\nconst prefersReducedMotion = { current: null };\nconst hasReducedMotionListener = { current: false };\n\n\n//# sourceMappingURL=state.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3JlZHVjZWQtbW90aW9uL3N0YXRlLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0EsK0JBQStCO0FBQy9CLG1DQUFtQzs7QUFFdUI7QUFDMUQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZWR1Y2VkLW1vdGlvbi9zdGF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRG9lcyB0aGlzIGRldmljZSBwcmVmZXIgcmVkdWNlZCBtb3Rpb24/IFJldHVybnMgYG51bGxgIHNlcnZlci1zaWRlLlxuY29uc3QgcHJlZmVyc1JlZHVjZWRNb3Rpb24gPSB7IGN1cnJlbnQ6IG51bGwgfTtcbmNvbnN0IGhhc1JlZHVjZWRNb3Rpb25MaXN0ZW5lciA9IHsgY3VycmVudDogZmFsc2UgfTtcblxuZXhwb3J0IHsgaGFzUmVkdWNlZE1vdGlvbkxpc3RlbmVyLCBwcmVmZXJzUmVkdWNlZE1vdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c3RhdGUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs": +/*!***********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs ***! + \***********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveVariant: () => (/* binding */ resolveVariant)\n/* harmony export */ });\n/* harmony import */ var _resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./resolve-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\");\n\n\nfunction resolveVariant(visualElement, definition, custom) {\n const props = visualElement.getProps();\n return (0,_resolve_variants_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveVariantFromProps)(props, definition, custom !== undefined ? custom : props.custom, visualElement);\n}\n\n\n//# sourceMappingURL=resolve-dynamic-variants.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3Jlc29sdmUtZHluYW1pYy12YXJpYW50cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBaUU7O0FBRWpFO0FBQ0E7QUFDQSxXQUFXLDhFQUF1QjtBQUNsQzs7QUFFMEI7QUFDMUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZXNvbHZlLWR5bmFtaWMtdmFyaWFudHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmVWYXJpYW50RnJvbVByb3BzIH0gZnJvbSAnLi9yZXNvbHZlLXZhcmlhbnRzLm1qcyc7XG5cbmZ1bmN0aW9uIHJlc29sdmVWYXJpYW50KHZpc3VhbEVsZW1lbnQsIGRlZmluaXRpb24sIGN1c3RvbSkge1xuICAgIGNvbnN0IHByb3BzID0gdmlzdWFsRWxlbWVudC5nZXRQcm9wcygpO1xuICAgIHJldHVybiByZXNvbHZlVmFyaWFudEZyb21Qcm9wcyhwcm9wcywgZGVmaW5pdGlvbiwgY3VzdG9tICE9PSB1bmRlZmluZWQgPyBjdXN0b20gOiBwcm9wcy5jdXN0b20sIHZpc3VhbEVsZW1lbnQpO1xufVxuXG5leHBvcnQgeyByZXNvbHZlVmFyaWFudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1keW5hbWljLXZhcmlhbnRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveVariantFromProps: () => (/* binding */ resolveVariantFromProps)\n/* harmony export */ });\nfunction getValueState(visualElement) {\n const state = [{}, {}];\n visualElement?.values.forEach((value, key) => {\n state[0][key] = value.get();\n state[1][key] = value.getVelocity();\n });\n return state;\n}\nfunction resolveVariantFromProps(props, definition, custom, visualElement) {\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = props.variants && props.variants[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n const [current, velocity] = getValueState(visualElement);\n definition = definition(custom !== undefined ? custom : props.custom, current, velocity);\n }\n return definition;\n}\n\n\n//# sourceMappingURL=resolve-variants.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3Jlc29sdmUtdmFyaWFudHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBLHFCQUFxQixJQUFJO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFbUM7QUFDbkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9yZXNvbHZlLXZhcmlhbnRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBnZXRWYWx1ZVN0YXRlKHZpc3VhbEVsZW1lbnQpIHtcbiAgICBjb25zdCBzdGF0ZSA9IFt7fSwge31dO1xuICAgIHZpc3VhbEVsZW1lbnQ/LnZhbHVlcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIHN0YXRlWzBdW2tleV0gPSB2YWx1ZS5nZXQoKTtcbiAgICAgICAgc3RhdGVbMV1ba2V5XSA9IHZhbHVlLmdldFZlbG9jaXR5KCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHN0YXRlO1xufVxuZnVuY3Rpb24gcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMocHJvcHMsIGRlZmluaXRpb24sIGN1c3RvbSwgdmlzdWFsRWxlbWVudCkge1xuICAgIC8qKlxuICAgICAqIElmIHRoZSB2YXJpYW50IGRlZmluaXRpb24gaXMgYSBmdW5jdGlvbiwgcmVzb2x2ZS5cbiAgICAgKi9cbiAgICBpZiAodHlwZW9mIGRlZmluaXRpb24gPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICBjb25zdCBbY3VycmVudCwgdmVsb2NpdHldID0gZ2V0VmFsdWVTdGF0ZSh2aXN1YWxFbGVtZW50KTtcbiAgICAgICAgZGVmaW5pdGlvbiA9IGRlZmluaXRpb24oY3VzdG9tICE9PSB1bmRlZmluZWQgPyBjdXN0b20gOiBwcm9wcy5jdXN0b20sIGN1cnJlbnQsIHZlbG9jaXR5KTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogSWYgdGhlIHZhcmlhbnQgZGVmaW5pdGlvbiBpcyBhIHZhcmlhbnQgbGFiZWwsIG9yXG4gICAgICogdGhlIGZ1bmN0aW9uIHJldHVybmVkIGEgdmFyaWFudCBsYWJlbCwgcmVzb2x2ZS5cbiAgICAgKi9cbiAgICBpZiAodHlwZW9mIGRlZmluaXRpb24gPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgZGVmaW5pdGlvbiA9IHByb3BzLnZhcmlhbnRzICYmIHByb3BzLnZhcmlhbnRzW2RlZmluaXRpb25dO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBBdCB0aGlzIHBvaW50IHdlJ3ZlIHJlc29sdmVkIGJvdGggZnVuY3Rpb25zIGFuZCB2YXJpYW50IGxhYmVscyxcbiAgICAgKiBidXQgdGhlIHJlc29sdmVkIHZhcmlhbnQgbGFiZWwgbWlnaHQgaXRzZWxmIGhhdmUgYmVlbiBhIGZ1bmN0aW9uLlxuICAgICAqIElmIHNvLCByZXNvbHZlLiBUaGlzIGNhbiBvbmx5IGhhdmUgcmV0dXJuZWQgYSB2YWxpZCB0YXJnZXQgb2JqZWN0LlxuICAgICAqL1xuICAgIGlmICh0eXBlb2YgZGVmaW5pdGlvbiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNvbnN0IFtjdXJyZW50LCB2ZWxvY2l0eV0gPSBnZXRWYWx1ZVN0YXRlKHZpc3VhbEVsZW1lbnQpO1xuICAgICAgICBkZWZpbml0aW9uID0gZGVmaW5pdGlvbihjdXN0b20gIT09IHVuZGVmaW5lZCA/IGN1c3RvbSA6IHByb3BzLmN1c3RvbSwgY3VycmVudCwgdmVsb2NpdHkpO1xuICAgIH1cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbn1cblxuZXhwb3J0IHsgcmVzb2x2ZVZhcmlhbnRGcm9tUHJvcHMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlc29sdmUtdmFyaWFudHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/setters.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/setters.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ setTarget: () => (/* binding */ setTarget)\n/* harmony export */ });\n/* harmony import */ var _value_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\");\n/* harmony import */ var _resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resolve-dynamic-variants.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs\");\n/* harmony import */ var _is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-keyframes-target.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs\");\n\n\n\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, (0,_value_index_mjs__WEBPACK_IMPORTED_MODULE_0__.motionValue)(value));\n }\n}\nfunction resolveFinalValueInKeyframes(v) {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return (0,_is_keyframes_target_mjs__WEBPACK_IMPORTED_MODULE_1__.isKeyframesTarget)(v) ? v[v.length - 1] || 0 : v;\n}\nfunction setTarget(visualElement, definition) {\n const resolved = (0,_resolve_dynamic_variants_mjs__WEBPACK_IMPORTED_MODULE_2__.resolveVariant)(visualElement, definition);\n let { transitionEnd = {}, transition = {}, ...target } = resolved || {};\n target = { ...target, ...transitionEnd };\n for (const key in target) {\n const value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\n\n\n//# sourceMappingURL=setters.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3NldHRlcnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBb0Q7QUFDWTtBQUNGOztBQUU5RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsNkRBQVc7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLDJFQUFpQjtBQUM1QjtBQUNBO0FBQ0EscUJBQXFCLDZFQUFjO0FBQ25DLFVBQVUsa0JBQWtCLGlCQUFpQixjQUFjO0FBQzNELGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVxQjtBQUNyQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3NldHRlcnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1vdGlvblZhbHVlIH0gZnJvbSAnLi4vLi4vdmFsdWUvaW5kZXgubWpzJztcbmltcG9ydCB7IHJlc29sdmVWYXJpYW50IH0gZnJvbSAnLi9yZXNvbHZlLWR5bmFtaWMtdmFyaWFudHMubWpzJztcbmltcG9ydCB7IGlzS2V5ZnJhbWVzVGFyZ2V0IH0gZnJvbSAnLi9pcy1rZXlmcmFtZXMtdGFyZ2V0Lm1qcyc7XG5cbi8qKlxuICogU2V0IFZpc3VhbEVsZW1lbnQncyBNb3Rpb25WYWx1ZSwgY3JlYXRpbmcgYSBuZXcgTW90aW9uVmFsdWUgZm9yIGl0IGlmXG4gKiBpdCBkb2Vzbid0IGV4aXN0LlxuICovXG5mdW5jdGlvbiBzZXRNb3Rpb25WYWx1ZSh2aXN1YWxFbGVtZW50LCBrZXksIHZhbHVlKSB7XG4gICAgaWYgKHZpc3VhbEVsZW1lbnQuaGFzVmFsdWUoa2V5KSkge1xuICAgICAgICB2aXN1YWxFbGVtZW50LmdldFZhbHVlKGtleSkuc2V0KHZhbHVlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHZpc3VhbEVsZW1lbnQuYWRkVmFsdWUoa2V5LCBtb3Rpb25WYWx1ZSh2YWx1ZSkpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHJlc29sdmVGaW5hbFZhbHVlSW5LZXlmcmFtZXModikge1xuICAgIC8vIFRPRE8gbWF5YmUgdGhyb3cgaWYgdi5sZW5ndGggLSAxIGlzIHBsYWNlaG9sZGVyIHRva2VuP1xuICAgIHJldHVybiBpc0tleWZyYW1lc1RhcmdldCh2KSA/IHZbdi5sZW5ndGggLSAxXSB8fCAwIDogdjtcbn1cbmZ1bmN0aW9uIHNldFRhcmdldCh2aXN1YWxFbGVtZW50LCBkZWZpbml0aW9uKSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlVmFyaWFudCh2aXN1YWxFbGVtZW50LCBkZWZpbml0aW9uKTtcbiAgICBsZXQgeyB0cmFuc2l0aW9uRW5kID0ge30sIHRyYW5zaXRpb24gPSB7fSwgLi4udGFyZ2V0IH0gPSByZXNvbHZlZCB8fCB7fTtcbiAgICB0YXJnZXQgPSB7IC4uLnRhcmdldCwgLi4udHJhbnNpdGlvbkVuZCB9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIHRhcmdldCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHJlc29sdmVGaW5hbFZhbHVlSW5LZXlmcmFtZXModGFyZ2V0W2tleV0pO1xuICAgICAgICBzZXRNb3Rpb25WYWx1ZSh2aXN1YWxFbGVtZW50LCBrZXksIHZhbHVlKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IHNldFRhcmdldCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2V0dGVycy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/setters.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ shallowCompare: () => (/* binding */ shallowCompare)\n/* harmony export */ });\nfunction shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n const prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (let i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\n\n//# sourceMappingURL=shallow-compare.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3NoYWxsb3ctY29tcGFyZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixnQkFBZ0I7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMEI7QUFDMUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3JlbmRlci91dGlscy9zaGFsbG93LWNvbXBhcmUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHNoYWxsb3dDb21wYXJlKG5leHQsIHByZXYpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocHJldikpXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBwcmV2TGVuZ3RoID0gcHJldi5sZW5ndGg7XG4gICAgaWYgKHByZXZMZW5ndGggIT09IG5leHQubGVuZ3RoKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcmV2TGVuZ3RoOyBpKyspIHtcbiAgICAgICAgaWYgKHByZXZbaV0gIT09IG5leHRbaV0pXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgeyBzaGFsbG93Q29tcGFyZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2hhbGxvdy1jb21wYXJlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ variantPriorityOrder: () => (/* binding */ variantPriorityOrder),\n/* harmony export */ variantProps: () => (/* binding */ variantProps)\n/* harmony export */ });\nconst variantPriorityOrder = [\n \"animate\",\n \"whileInView\",\n \"whileFocus\",\n \"whileHover\",\n \"whileTap\",\n \"whileDrag\",\n \"exit\",\n];\nconst variantProps = [\"initial\", ...variantPriorityOrder];\n\n\n//# sourceMappingURL=variant-props.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVuZGVyL3V0aWxzL3ZhcmlhbnQtcHJvcHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRThDO0FBQzlDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9yZW5kZXIvdXRpbHMvdmFyaWFudC1wcm9wcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgdmFyaWFudFByaW9yaXR5T3JkZXIgPSBbXG4gICAgXCJhbmltYXRlXCIsXG4gICAgXCJ3aGlsZUluVmlld1wiLFxuICAgIFwid2hpbGVGb2N1c1wiLFxuICAgIFwid2hpbGVIb3ZlclwiLFxuICAgIFwid2hpbGVUYXBcIixcbiAgICBcIndoaWxlRHJhZ1wiLFxuICAgIFwiZXhpdFwiLFxuXTtcbmNvbnN0IHZhcmlhbnRQcm9wcyA9IFtcImluaXRpYWxcIiwgLi4udmFyaWFudFByaW9yaXR5T3JkZXJdO1xuXG5leHBvcnQgeyB2YXJpYW50UHJpb3JpdHlPcmRlciwgdmFyaWFudFByb3BzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD12YXJpYW50LXByb3BzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/render/utils/variant-props.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/resize/handle-element.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resizeElement: () => (/* binding */ resizeElement)\n/* harmony export */ });\n/* harmony import */ var _utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/is-svg-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n/* harmony import */ var _utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/resolve-elements.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\");\n\n\n\nconst resizeHandlers = new WeakMap();\nlet observer;\nconst getSize = (borderBoxAxis, svgAxis, htmlAxis) => (target, borderBoxSize) => {\n if (borderBoxSize && borderBoxSize[0]) {\n return borderBoxSize[0][(borderBoxAxis + \"Size\")];\n }\n else if ((0,_utils_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__.isSVGElement)(target) && \"getBBox\" in target) {\n return target.getBBox()[svgAxis];\n }\n else {\n return target[htmlAxis];\n }\n};\nconst getWidth = /*@__PURE__*/ getSize(\"inline\", \"width\", \"offsetWidth\");\nconst getHeight = /*@__PURE__*/ getSize(\"block\", \"height\", \"offsetHeight\");\nfunction notifyTarget({ target, borderBoxSize }) {\n resizeHandlers.get(target)?.forEach((handler) => {\n handler(target, {\n get width() {\n return getWidth(target, borderBoxSize);\n },\n get height() {\n return getHeight(target, borderBoxSize);\n },\n });\n });\n}\nfunction notifyAll(entries) {\n entries.forEach(notifyTarget);\n}\nfunction createResizeObserver() {\n if (typeof ResizeObserver === \"undefined\")\n return;\n observer = new ResizeObserver(notifyAll);\n}\nfunction resizeElement(target, handler) {\n if (!observer)\n createResizeObserver();\n const elements = (0,_utils_resolve_elements_mjs__WEBPACK_IMPORTED_MODULE_1__.resolveElements)(target);\n elements.forEach((element) => {\n let elementHandlers = resizeHandlers.get(element);\n if (!elementHandlers) {\n elementHandlers = new Set();\n resizeHandlers.set(element, elementHandlers);\n }\n elementHandlers.add(handler);\n observer?.observe(element);\n });\n return () => {\n elements.forEach((element) => {\n const elementHandlers = resizeHandlers.get(element);\n elementHandlers?.delete(handler);\n if (!elementHandlers?.size) {\n observer?.unobserve(element);\n }\n });\n };\n}\n\n\n//# sourceMappingURL=handle-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVzaXplL2hhbmRsZS1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBMkQ7QUFDSzs7QUFFaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSx1RUFBWTtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLHVCQUF1QjtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLDRFQUFlO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Jlc2l6ZS9oYW5kbGUtZWxlbWVudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTVkdFbGVtZW50IH0gZnJvbSAnLi4vdXRpbHMvaXMtc3ZnLWVsZW1lbnQubWpzJztcbmltcG9ydCB7IHJlc29sdmVFbGVtZW50cyB9IGZyb20gJy4uL3V0aWxzL3Jlc29sdmUtZWxlbWVudHMubWpzJztcblxuY29uc3QgcmVzaXplSGFuZGxlcnMgPSBuZXcgV2Vha01hcCgpO1xubGV0IG9ic2VydmVyO1xuY29uc3QgZ2V0U2l6ZSA9IChib3JkZXJCb3hBeGlzLCBzdmdBeGlzLCBodG1sQXhpcykgPT4gKHRhcmdldCwgYm9yZGVyQm94U2l6ZSkgPT4ge1xuICAgIGlmIChib3JkZXJCb3hTaXplICYmIGJvcmRlckJveFNpemVbMF0pIHtcbiAgICAgICAgcmV0dXJuIGJvcmRlckJveFNpemVbMF1bKGJvcmRlckJveEF4aXMgKyBcIlNpemVcIildO1xuICAgIH1cbiAgICBlbHNlIGlmIChpc1NWR0VsZW1lbnQodGFyZ2V0KSAmJiBcImdldEJCb3hcIiBpbiB0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuIHRhcmdldC5nZXRCQm94KClbc3ZnQXhpc107XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4gdGFyZ2V0W2h0bWxBeGlzXTtcbiAgICB9XG59O1xuY29uc3QgZ2V0V2lkdGggPSAvKkBfX1BVUkVfXyovIGdldFNpemUoXCJpbmxpbmVcIiwgXCJ3aWR0aFwiLCBcIm9mZnNldFdpZHRoXCIpO1xuY29uc3QgZ2V0SGVpZ2h0ID0gLypAX19QVVJFX18qLyBnZXRTaXplKFwiYmxvY2tcIiwgXCJoZWlnaHRcIiwgXCJvZmZzZXRIZWlnaHRcIik7XG5mdW5jdGlvbiBub3RpZnlUYXJnZXQoeyB0YXJnZXQsIGJvcmRlckJveFNpemUgfSkge1xuICAgIHJlc2l6ZUhhbmRsZXJzLmdldCh0YXJnZXQpPy5mb3JFYWNoKChoYW5kbGVyKSA9PiB7XG4gICAgICAgIGhhbmRsZXIodGFyZ2V0LCB7XG4gICAgICAgICAgICBnZXQgd2lkdGgoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldFdpZHRoKHRhcmdldCwgYm9yZGVyQm94U2l6ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IGhlaWdodCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0SGVpZ2h0KHRhcmdldCwgYm9yZGVyQm94U2l6ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9KTtcbn1cbmZ1bmN0aW9uIG5vdGlmeUFsbChlbnRyaWVzKSB7XG4gICAgZW50cmllcy5mb3JFYWNoKG5vdGlmeVRhcmdldCk7XG59XG5mdW5jdGlvbiBjcmVhdGVSZXNpemVPYnNlcnZlcigpIHtcbiAgICBpZiAodHlwZW9mIFJlc2l6ZU9ic2VydmVyID09PSBcInVuZGVmaW5lZFwiKVxuICAgICAgICByZXR1cm47XG4gICAgb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIobm90aWZ5QWxsKTtcbn1cbmZ1bmN0aW9uIHJlc2l6ZUVsZW1lbnQodGFyZ2V0LCBoYW5kbGVyKSB7XG4gICAgaWYgKCFvYnNlcnZlcilcbiAgICAgICAgY3JlYXRlUmVzaXplT2JzZXJ2ZXIoKTtcbiAgICBjb25zdCBlbGVtZW50cyA9IHJlc29sdmVFbGVtZW50cyh0YXJnZXQpO1xuICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgbGV0IGVsZW1lbnRIYW5kbGVycyA9IHJlc2l6ZUhhbmRsZXJzLmdldChlbGVtZW50KTtcbiAgICAgICAgaWYgKCFlbGVtZW50SGFuZGxlcnMpIHtcbiAgICAgICAgICAgIGVsZW1lbnRIYW5kbGVycyA9IG5ldyBTZXQoKTtcbiAgICAgICAgICAgIHJlc2l6ZUhhbmRsZXJzLnNldChlbGVtZW50LCBlbGVtZW50SGFuZGxlcnMpO1xuICAgICAgICB9XG4gICAgICAgIGVsZW1lbnRIYW5kbGVycy5hZGQoaGFuZGxlcik7XG4gICAgICAgIG9ic2VydmVyPy5vYnNlcnZlKGVsZW1lbnQpO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRIYW5kbGVycyA9IHJlc2l6ZUhhbmRsZXJzLmdldChlbGVtZW50KTtcbiAgICAgICAgICAgIGVsZW1lbnRIYW5kbGVycz8uZGVsZXRlKGhhbmRsZXIpO1xuICAgICAgICAgICAgaWYgKCFlbGVtZW50SGFuZGxlcnM/LnNpemUpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlcj8udW5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufVxuXG5leHBvcnQgeyByZXNpemVFbGVtZW50IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1oYW5kbGUtZWxlbWVudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/resize/handle-window.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resizeWindow: () => (/* binding */ resizeWindow)\n/* harmony export */ });\nconst windowCallbacks = new Set();\nlet windowResizeHandler;\nfunction createWindowResizeHandler() {\n windowResizeHandler = () => {\n const info = {\n get width() {\n return window.innerWidth;\n },\n get height() {\n return window.innerHeight;\n },\n };\n windowCallbacks.forEach((callback) => callback(info));\n };\n window.addEventListener(\"resize\", windowResizeHandler);\n}\nfunction resizeWindow(callback) {\n windowCallbacks.add(callback);\n if (!windowResizeHandler)\n createWindowResizeHandler();\n return () => {\n windowCallbacks.delete(callback);\n if (!windowCallbacks.size &&\n typeof windowResizeHandler === \"function\") {\n window.removeEventListener(\"resize\", windowResizeHandler);\n windowResizeHandler = undefined;\n }\n };\n}\n\n\n//# sourceMappingURL=handle-window.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVzaXplL2hhbmRsZS13aW5kb3cubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Jlc2l6ZS9oYW5kbGUtd2luZG93Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB3aW5kb3dDYWxsYmFja3MgPSBuZXcgU2V0KCk7XG5sZXQgd2luZG93UmVzaXplSGFuZGxlcjtcbmZ1bmN0aW9uIGNyZWF0ZVdpbmRvd1Jlc2l6ZUhhbmRsZXIoKSB7XG4gICAgd2luZG93UmVzaXplSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgaW5mbyA9IHtcbiAgICAgICAgICAgIGdldCB3aWR0aCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0IGhlaWdodCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93Q2FsbGJhY2tzLmZvckVhY2goKGNhbGxiYWNrKSA9PiBjYWxsYmFjayhpbmZvKSk7XG4gICAgfTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB3aW5kb3dSZXNpemVIYW5kbGVyKTtcbn1cbmZ1bmN0aW9uIHJlc2l6ZVdpbmRvdyhjYWxsYmFjaykge1xuICAgIHdpbmRvd0NhbGxiYWNrcy5hZGQoY2FsbGJhY2spO1xuICAgIGlmICghd2luZG93UmVzaXplSGFuZGxlcilcbiAgICAgICAgY3JlYXRlV2luZG93UmVzaXplSGFuZGxlcigpO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvd0NhbGxiYWNrcy5kZWxldGUoY2FsbGJhY2spO1xuICAgICAgICBpZiAoIXdpbmRvd0NhbGxiYWNrcy5zaXplICYmXG4gICAgICAgICAgICB0eXBlb2Ygd2luZG93UmVzaXplSGFuZGxlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB3aW5kb3dSZXNpemVIYW5kbGVyKTtcbiAgICAgICAgICAgIHdpbmRvd1Jlc2l6ZUhhbmRsZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9O1xufVxuXG5leHBvcnQgeyByZXNpemVXaW5kb3cgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhhbmRsZS13aW5kb3cubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/index.mjs": +/*!**********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/resize/index.mjs ***! + \**********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resize: () => (/* binding */ resize)\n/* harmony export */ });\n/* harmony import */ var _handle_element_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./handle-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-element.mjs\");\n/* harmony import */ var _handle_window_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./handle-window.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/handle-window.mjs\");\n\n\n\nfunction resize(a, b) {\n return typeof a === \"function\" ? (0,_handle_window_mjs__WEBPACK_IMPORTED_MODULE_0__.resizeWindow)(a) : (0,_handle_element_mjs__WEBPACK_IMPORTED_MODULE_1__.resizeElement)(a, b);\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvcmVzaXplL2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBcUQ7QUFDRjs7QUFFbkQ7QUFDQSxxQ0FBcUMsZ0VBQVksTUFBTSxrRUFBYTtBQUNwRTs7QUFFa0I7QUFDbEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3Jlc2l6ZS9pbmRleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzaXplRWxlbWVudCB9IGZyb20gJy4vaGFuZGxlLWVsZW1lbnQubWpzJztcbmltcG9ydCB7IHJlc2l6ZVdpbmRvdyB9IGZyb20gJy4vaGFuZGxlLXdpbmRvdy5tanMnO1xuXG5mdW5jdGlvbiByZXNpemUoYSwgYikge1xuICAgIHJldHVybiB0eXBlb2YgYSA9PT0gXCJmdW5jdGlvblwiID8gcmVzaXplV2luZG93KGEpIDogcmVzaXplRWxlbWVudChhLCBiKTtcbn1cblxuZXhwb3J0IHsgcmVzaXplIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/resize/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/stats/animation-count.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ activeAnimations: () => (/* binding */ activeAnimations)\n/* harmony export */ });\nconst activeAnimations = {\n layout: 0,\n mainThread: 0,\n waapi: 0,\n};\n\n\n//# sourceMappingURL=animation-count.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvc3RhdHMvYW5pbWF0aW9uLWNvdW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3N0YXRzL2FuaW1hdGlvbi1jb3VudC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgYWN0aXZlQW5pbWF0aW9ucyA9IHtcbiAgICBsYXlvdXQ6IDAsXG4gICAgbWFpblRocmVhZDogMCxcbiAgICB3YWFwaTogMCxcbn07XG5cbmV4cG9ydCB7IGFjdGl2ZUFuaW1hdGlvbnMgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFuaW1hdGlvbi1jb3VudC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/animation-count.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs": +/*!**********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/stats/buffer.mjs ***! + \**********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ statsBuffer: () => (/* binding */ statsBuffer)\n/* harmony export */ });\nconst statsBuffer = {\n value: null,\n addProjectionMetrics: null,\n};\n\n\n//# sourceMappingURL=buffer.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvc3RhdHMvYnVmZmVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy9zdGF0cy9idWZmZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHN0YXRzQnVmZmVyID0ge1xuICAgIHZhbHVlOiBudWxsLFxuICAgIGFkZFByb2plY3Rpb25NZXRyaWNzOiBudWxsLFxufTtcblxuZXhwb3J0IHsgc3RhdHNCdWZmZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWJ1ZmZlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/stats/buffer.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/delay.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/delay.mjs ***! + \*********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ delay: () => (/* binding */ delay),\n/* harmony export */ delayInSeconds: () => (/* binding */ delayInSeconds)\n/* harmony export */ });\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.frame.setup(checkElapsed, true);\n return () => (0,_frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_1__.cancelFrame)(checkElapsed);\n}\nfunction delayInSeconds(callback, timeout) {\n return delay(callback, (0,motion_utils__WEBPACK_IMPORTED_MODULE_2__.secondsToMilliseconds)(timeout));\n}\n\n\n//# sourceMappingURL=delay.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvZGVsYXkubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWtEO0FBQ0c7QUFDTzs7QUFFNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsMERBQUk7QUFDdEIsNEJBQTRCLFdBQVc7QUFDdkM7QUFDQTtBQUNBLFlBQVksaUVBQVc7QUFDdkI7QUFDQTtBQUNBO0FBQ0EsSUFBSSx1REFBSztBQUNULGlCQUFpQixpRUFBVztBQUM1QjtBQUNBO0FBQ0EsMkJBQTJCLG1FQUFxQjtBQUNoRDs7QUFFaUM7QUFDakMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL2RlbGF5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0aW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL3N5bmMtdGltZS5tanMnO1xuaW1wb3J0IHsgc2Vjb25kc1RvTWlsbGlzZWNvbmRzIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGZyYW1lLCBjYW5jZWxGcmFtZSB9IGZyb20gJy4uL2ZyYW1lbG9vcC9mcmFtZS5tanMnO1xuXG4vKipcbiAqIFRpbWVvdXQgZGVmaW5lZCBpbiBtc1xuICovXG5mdW5jdGlvbiBkZWxheShjYWxsYmFjaywgdGltZW91dCkge1xuICAgIGNvbnN0IHN0YXJ0ID0gdGltZS5ub3coKTtcbiAgICBjb25zdCBjaGVja0VsYXBzZWQgPSAoeyB0aW1lc3RhbXAgfSkgPT4ge1xuICAgICAgICBjb25zdCBlbGFwc2VkID0gdGltZXN0YW1wIC0gc3RhcnQ7XG4gICAgICAgIGlmIChlbGFwc2VkID49IHRpbWVvdXQpIHtcbiAgICAgICAgICAgIGNhbmNlbEZyYW1lKGNoZWNrRWxhcHNlZCk7XG4gICAgICAgICAgICBjYWxsYmFjayhlbGFwc2VkIC0gdGltZW91dCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZyYW1lLnNldHVwKGNoZWNrRWxhcHNlZCwgdHJ1ZSk7XG4gICAgcmV0dXJuICgpID0+IGNhbmNlbEZyYW1lKGNoZWNrRWxhcHNlZCk7XG59XG5mdW5jdGlvbiBkZWxheUluU2Vjb25kcyhjYWxsYmFjaywgdGltZW91dCkge1xuICAgIHJldHVybiBkZWxheShjYWxsYmFjaywgc2Vjb25kc1RvTWlsbGlzZWNvbmRzKHRpbWVvdXQpKTtcbn1cblxuZXhwb3J0IHsgZGVsYXksIGRlbGF5SW5TZWNvbmRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1kZWxheS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/delay.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/interpolate.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ interpolate: () => (/* binding */ interpolate)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _mix_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mix/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\");\n\n\n\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || motion_utils__WEBPACK_IMPORTED_MODULE_0__.MotionGlobalConfig.mix || _mix_index_mjs__WEBPACK_IMPORTED_MODULE_1__.mix;\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] || motion_utils__WEBPACK_IMPORTED_MODULE_2__.noop : ease;\n mixer = (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.pipe)(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\n/**\n * Create a function that maps from a numerical input array to a generic output array.\n *\n * Accepts:\n * - Numbers\n * - Colors (hex, hsl, hsla, rgb, rgba)\n * - Complex (combinations of one or more numbers or strings)\n *\n * ```jsx\n * const mixColor = interpolate([0, 1], ['#fff', '#000'])\n *\n * mixColor(0.5) // 'rgba(128, 128, 128, 1)'\n * ```\n *\n * TODO Revisit this approach once we've moved to data models for values,\n * probably not needed to pregenerate mixer functions.\n *\n * @public\n */\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.invariant)(inputLength === output.length, \"Both input and output ranges must be the same length\", \"range-length\");\n /**\n * If we're only provided a single input, we can just make a function\n * that returns the output.\n */\n if (inputLength === 1)\n return () => output[0];\n if (inputLength === 2 && output[0] === output[1])\n return () => output[1];\n const isZeroDeltaRange = input[0] === input[1];\n // If input runs highest -> lowest, reverse both arrays\n if (input[0] > input[inputLength - 1]) {\n input = [...input].reverse();\n output = [...output].reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const numMixers = mixers.length;\n const interpolator = (v) => {\n if (isZeroDeltaRange && v < input[0])\n return output[0];\n let i = 0;\n if (numMixers > 1) {\n for (; i < input.length - 2; i++) {\n if (v < input[i + 1])\n break;\n }\n }\n const progressInRange = (0,motion_utils__WEBPACK_IMPORTED_MODULE_5__.progress)(input[i], input[i + 1], v);\n return mixers[i](progressInRange);\n };\n return isClamp\n ? (v) => interpolator((0,motion_utils__WEBPACK_IMPORTED_MODULE_6__.clamp)(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\n\n//# sourceMappingURL=interpolate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaW50ZXJwb2xhdGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQTBGO0FBQ3BEOztBQUV0QztBQUNBO0FBQ0Esd0NBQXdDLDREQUFrQixRQUFRLCtDQUFHO0FBQ3JFO0FBQ0Esb0JBQW9CLGVBQWU7QUFDbkM7QUFDQTtBQUNBLG9FQUFvRSw4Q0FBSTtBQUN4RSxvQkFBb0Isa0RBQUk7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLHFDQUFxQyxJQUFJO0FBQy9FO0FBQ0EsSUFBSSx1REFBUztBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixzQkFBc0I7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msc0RBQVE7QUFDeEM7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLG1EQUFLO0FBQ25DO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9pbnRlcnBvbGF0ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW52YXJpYW50LCBjbGFtcCwgTW90aW9uR2xvYmFsQ29uZmlnLCBub29wLCBwaXBlLCBwcm9ncmVzcyB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5pbXBvcnQgeyBtaXggfSBmcm9tICcuL21peC9pbmRleC5tanMnO1xuXG5mdW5jdGlvbiBjcmVhdGVNaXhlcnMob3V0cHV0LCBlYXNlLCBjdXN0b21NaXhlcikge1xuICAgIGNvbnN0IG1peGVycyA9IFtdO1xuICAgIGNvbnN0IG1peGVyRmFjdG9yeSA9IGN1c3RvbU1peGVyIHx8IE1vdGlvbkdsb2JhbENvbmZpZy5taXggfHwgbWl4O1xuICAgIGNvbnN0IG51bU1peGVycyA9IG91dHB1dC5sZW5ndGggLSAxO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtTWl4ZXJzOyBpKyspIHtcbiAgICAgICAgbGV0IG1peGVyID0gbWl4ZXJGYWN0b3J5KG91dHB1dFtpXSwgb3V0cHV0W2kgKyAxXSk7XG4gICAgICAgIGlmIChlYXNlKSB7XG4gICAgICAgICAgICBjb25zdCBlYXNpbmdGdW5jdGlvbiA9IEFycmF5LmlzQXJyYXkoZWFzZSkgPyBlYXNlW2ldIHx8IG5vb3AgOiBlYXNlO1xuICAgICAgICAgICAgbWl4ZXIgPSBwaXBlKGVhc2luZ0Z1bmN0aW9uLCBtaXhlcik7XG4gICAgICAgIH1cbiAgICAgICAgbWl4ZXJzLnB1c2gobWl4ZXIpO1xuICAgIH1cbiAgICByZXR1cm4gbWl4ZXJzO1xufVxuLyoqXG4gKiBDcmVhdGUgYSBmdW5jdGlvbiB0aGF0IG1hcHMgZnJvbSBhIG51bWVyaWNhbCBpbnB1dCBhcnJheSB0byBhIGdlbmVyaWMgb3V0cHV0IGFycmF5LlxuICpcbiAqIEFjY2VwdHM6XG4gKiAgIC0gTnVtYmVyc1xuICogICAtIENvbG9ycyAoaGV4LCBoc2wsIGhzbGEsIHJnYiwgcmdiYSlcbiAqICAgLSBDb21wbGV4IChjb21iaW5hdGlvbnMgb2Ygb25lIG9yIG1vcmUgbnVtYmVycyBvciBzdHJpbmdzKVxuICpcbiAqIGBgYGpzeFxuICogY29uc3QgbWl4Q29sb3IgPSBpbnRlcnBvbGF0ZShbMCwgMV0sIFsnI2ZmZicsICcjMDAwJ10pXG4gKlxuICogbWl4Q29sb3IoMC41KSAvLyAncmdiYSgxMjgsIDEyOCwgMTI4LCAxKSdcbiAqIGBgYFxuICpcbiAqIFRPRE8gUmV2aXNpdCB0aGlzIGFwcHJvYWNoIG9uY2Ugd2UndmUgbW92ZWQgdG8gZGF0YSBtb2RlbHMgZm9yIHZhbHVlcyxcbiAqIHByb2JhYmx5IG5vdCBuZWVkZWQgdG8gcHJlZ2VuZXJhdGUgbWl4ZXIgZnVuY3Rpb25zLlxuICpcbiAqIEBwdWJsaWNcbiAqL1xuZnVuY3Rpb24gaW50ZXJwb2xhdGUoaW5wdXQsIG91dHB1dCwgeyBjbGFtcDogaXNDbGFtcCA9IHRydWUsIGVhc2UsIG1peGVyIH0gPSB7fSkge1xuICAgIGNvbnN0IGlucHV0TGVuZ3RoID0gaW5wdXQubGVuZ3RoO1xuICAgIGludmFyaWFudChpbnB1dExlbmd0aCA9PT0gb3V0cHV0Lmxlbmd0aCwgXCJCb3RoIGlucHV0IGFuZCBvdXRwdXQgcmFuZ2VzIG11c3QgYmUgdGhlIHNhbWUgbGVuZ3RoXCIsIFwicmFuZ2UtbGVuZ3RoXCIpO1xuICAgIC8qKlxuICAgICAqIElmIHdlJ3JlIG9ubHkgcHJvdmlkZWQgYSBzaW5nbGUgaW5wdXQsIHdlIGNhbiBqdXN0IG1ha2UgYSBmdW5jdGlvblxuICAgICAqIHRoYXQgcmV0dXJucyB0aGUgb3V0cHV0LlxuICAgICAqL1xuICAgIGlmIChpbnB1dExlbmd0aCA9PT0gMSlcbiAgICAgICAgcmV0dXJuICgpID0+IG91dHB1dFswXTtcbiAgICBpZiAoaW5wdXRMZW5ndGggPT09IDIgJiYgb3V0cHV0WzBdID09PSBvdXRwdXRbMV0pXG4gICAgICAgIHJldHVybiAoKSA9PiBvdXRwdXRbMV07XG4gICAgY29uc3QgaXNaZXJvRGVsdGFSYW5nZSA9IGlucHV0WzBdID09PSBpbnB1dFsxXTtcbiAgICAvLyBJZiBpbnB1dCBydW5zIGhpZ2hlc3QgLT4gbG93ZXN0LCByZXZlcnNlIGJvdGggYXJyYXlzXG4gICAgaWYgKGlucHV0WzBdID4gaW5wdXRbaW5wdXRMZW5ndGggLSAxXSkge1xuICAgICAgICBpbnB1dCA9IFsuLi5pbnB1dF0ucmV2ZXJzZSgpO1xuICAgICAgICBvdXRwdXQgPSBbLi4ub3V0cHV0XS5yZXZlcnNlKCk7XG4gICAgfVxuICAgIGNvbnN0IG1peGVycyA9IGNyZWF0ZU1peGVycyhvdXRwdXQsIGVhc2UsIG1peGVyKTtcbiAgICBjb25zdCBudW1NaXhlcnMgPSBtaXhlcnMubGVuZ3RoO1xuICAgIGNvbnN0IGludGVycG9sYXRvciA9ICh2KSA9PiB7XG4gICAgICAgIGlmIChpc1plcm9EZWx0YVJhbmdlICYmIHYgPCBpbnB1dFswXSlcbiAgICAgICAgICAgIHJldHVybiBvdXRwdXRbMF07XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgaWYgKG51bU1peGVycyA+IDEpIHtcbiAgICAgICAgICAgIGZvciAoOyBpIDwgaW5wdXQubGVuZ3RoIC0gMjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHYgPCBpbnB1dFtpICsgMV0pXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb2dyZXNzSW5SYW5nZSA9IHByb2dyZXNzKGlucHV0W2ldLCBpbnB1dFtpICsgMV0sIHYpO1xuICAgICAgICByZXR1cm4gbWl4ZXJzW2ldKHByb2dyZXNzSW5SYW5nZSk7XG4gICAgfTtcbiAgICByZXR1cm4gaXNDbGFtcFxuICAgICAgICA/ICh2KSA9PiBpbnRlcnBvbGF0b3IoY2xhbXAoaW5wdXRbMF0sIGlucHV0W2lucHV0TGVuZ3RoIC0gMV0sIHYpKVxuICAgICAgICA6IGludGVycG9sYXRvcjtcbn1cblxuZXhwb3J0IHsgaW50ZXJwb2xhdGUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWludGVycG9sYXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/interpolate.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/is-html-element.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs\");\n\n\n/**\n * Checks if an element is an HTML element in a way\n * that works across iframes\n */\nfunction isHTMLElement(element) {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isObject)(element) && \"offsetHeight\" in element;\n}\n\n\n//# sourceMappingURL=is-html-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaXMtaHRtbC1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUF3Qzs7QUFFeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsc0RBQVE7QUFDbkI7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9pcy1odG1sLWVsZW1lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYW4gZWxlbWVudCBpcyBhbiBIVE1MIGVsZW1lbnQgaW4gYSB3YXlcbiAqIHRoYXQgd29ya3MgYWNyb3NzIGlmcmFtZXNcbiAqL1xuZnVuY3Rpb24gaXNIVE1MRWxlbWVudChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGlzT2JqZWN0KGVsZW1lbnQpICYmIFwib2Zmc2V0SGVpZ2h0XCIgaW4gZWxlbWVudDtcbn1cblxuZXhwb3J0IHsgaXNIVE1MRWxlbWVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtaHRtbC1lbGVtZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-html-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGElement: () => (/* binding */ isSVGElement)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs\");\n\n\n/**\n * Checks if an element is an SVG element in a way\n * that works across iframes\n */\nfunction isSVGElement(element) {\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.isObject)(element) && \"ownerSVGElement\" in element;\n}\n\n\n//# sourceMappingURL=is-svg-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaXMtc3ZnLWVsZW1lbnQubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXdDOztBQUV4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxzREFBUTtBQUNuQjs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL2lzLXN2Zy1lbGVtZW50Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJ21vdGlvbi11dGlscyc7XG5cbi8qKlxuICogQ2hlY2tzIGlmIGFuIGVsZW1lbnQgaXMgYW4gU1ZHIGVsZW1lbnQgaW4gYSB3YXlcbiAqIHRoYXQgd29ya3MgYWNyb3NzIGlmcmFtZXNcbiAqL1xuZnVuY3Rpb24gaXNTVkdFbGVtZW50KGVsZW1lbnQpIHtcbiAgICByZXR1cm4gaXNPYmplY3QoZWxlbWVudCkgJiYgXCJvd25lclNWR0VsZW1lbnRcIiBpbiBlbGVtZW50O1xufVxuXG5leHBvcnQgeyBpc1NWR0VsZW1lbnQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLXN2Zy1lbGVtZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isSVGSVGElement: () => (/* binding */ isSVGSVGElement)\n/* harmony export */ });\n/* harmony import */ var _is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-svg-element.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-element.mjs\");\n\n\n/**\n * Checks if an element is specifically an SVGSVGElement (the root SVG element)\n * in a way that works across iframes\n */\nfunction isSVGSVGElement(element) {\n return (0,_is_svg_element_mjs__WEBPACK_IMPORTED_MODULE_0__.isSVGElement)(element) && element.tagName === \"svg\";\n}\n\n\n//# sourceMappingURL=is-svg-svg-element.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvaXMtc3ZnLXN2Zy1lbGVtZW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFvRDs7QUFFcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsaUVBQVk7QUFDdkI7O0FBRTJCO0FBQzNCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9pcy1zdmctc3ZnLWVsZW1lbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU1ZHRWxlbWVudCB9IGZyb20gJy4vaXMtc3ZnLWVsZW1lbnQubWpzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYW4gZWxlbWVudCBpcyBzcGVjaWZpY2FsbHkgYW4gU1ZHU1ZHRWxlbWVudCAodGhlIHJvb3QgU1ZHIGVsZW1lbnQpXG4gKiBpbiBhIHdheSB0aGF0IHdvcmtzIGFjcm9zcyBpZnJhbWVzXG4gKi9cbmZ1bmN0aW9uIGlzU1ZHU1ZHRWxlbWVudChlbGVtZW50KSB7XG4gICAgcmV0dXJuIGlzU1ZHRWxlbWVudChlbGVtZW50KSAmJiBlbGVtZW50LnRhZ05hbWUgPT09IFwic3ZnXCI7XG59XG5cbmV4cG9ydCB7IGlzU1ZHU1ZHRWxlbWVudCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtc3ZnLXN2Zy1lbGVtZW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/color.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixColor: () => (/* binding */ mixColor),\n/* harmony export */ mixLinearColor: () => (/* binding */ mixLinearColor)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _value_types_color_hex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../value/types/color/hex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\");\n/* harmony import */ var _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../value/types/color/hsla.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\");\n/* harmony import */ var _value_types_color_hsla_to_rgba_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../value/types/color/hsla-to-rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs\");\n/* harmony import */ var _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../value/types/color/rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n/* harmony import */ var _immediate_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./immediate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\n\n\n\n\n\n// Linear color space blending\n// Explained https://www.youtube.com/watch?v=LKnqECcg6Gw\n// Demonstrated http://codepen.io/osublake/pen/xGVVaN\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const expo = v * (to * to - fromExpo) + fromExpo;\n return expo < 0 ? 0 : Math.sqrt(expo);\n};\nconst colorTypes = [_value_types_color_hex_mjs__WEBPACK_IMPORTED_MODULE_0__.hex, _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba, _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nfunction asRGBA(color) {\n const type = getColorType(color);\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_3__.warning)(Boolean(type), `'${color}' is not an animatable color. Use the equivalent color code instead.`, \"color-not-animatable\");\n if (!Boolean(type))\n return false;\n let model = type.parse(color);\n if (type === _value_types_color_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla) {\n // TODO Remove this cast - needed since Motion's stricter typing\n model = (0,_value_types_color_hsla_to_rgba_mjs__WEBPACK_IMPORTED_MODULE_4__.hslaToRgba)(model);\n }\n return model;\n}\nconst mixColor = (from, to) => {\n const fromRGBA = asRGBA(from);\n const toRGBA = asRGBA(to);\n if (!fromRGBA || !toRGBA) {\n return (0,_immediate_mjs__WEBPACK_IMPORTED_MODULE_5__.mixImmediate)(from, to);\n }\n const blended = { ...fromRGBA };\n return (v) => {\n blended.red = mixLinearColor(fromRGBA.red, toRGBA.red, v);\n blended.green = mixLinearColor(fromRGBA.green, toRGBA.green, v);\n blended.blue = mixLinearColor(fromRGBA.blue, toRGBA.blue, v);\n blended.alpha = (0,_number_mjs__WEBPACK_IMPORTED_MODULE_6__.mixNumber)(fromRGBA.alpha, toRGBA.alpha, v);\n return _value_types_color_rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba.transform(blended);\n };\n};\n\n\n//# sourceMappingURL=color.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2NvbG9yLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBdUM7QUFDZTtBQUNFO0FBQ2M7QUFDZDtBQUNUO0FBQ047O0FBRXpDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMkRBQUcsRUFBRSw2REFBSSxFQUFFLDZEQUFJO0FBQ25DO0FBQ0E7QUFDQTtBQUNBLElBQUkscURBQU8sb0JBQW9CLE1BQU07QUFDckM7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDZEQUFJO0FBQ3JCO0FBQ0EsZ0JBQWdCLCtFQUFVO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSw0REFBWTtBQUMzQjtBQUNBLHNCQUFzQjtBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixzREFBUztBQUNqQyxlQUFlLDZEQUFJO0FBQ25CO0FBQ0E7O0FBRW9DO0FBQ3BDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy91dGlscy9taXgvY29sb3IubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm5pbmcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgaGV4IH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvY29sb3IvaGV4Lm1qcyc7XG5pbXBvcnQgeyBoc2xhIH0gZnJvbSAnLi4vLi4vdmFsdWUvdHlwZXMvY29sb3IvaHNsYS5tanMnO1xuaW1wb3J0IHsgaHNsYVRvUmdiYSB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbG9yL2hzbGEtdG8tcmdiYS5tanMnO1xuaW1wb3J0IHsgcmdiYSB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbG9yL3JnYmEubWpzJztcbmltcG9ydCB7IG1peEltbWVkaWF0ZSB9IGZyb20gJy4vaW1tZWRpYXRlLm1qcyc7XG5pbXBvcnQgeyBtaXhOdW1iZXIgfSBmcm9tICcuL251bWJlci5tanMnO1xuXG4vLyBMaW5lYXIgY29sb3Igc3BhY2UgYmxlbmRpbmdcbi8vIEV4cGxhaW5lZCBodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUxLbnFFQ2NnNkd3XG4vLyBEZW1vbnN0cmF0ZWQgaHR0cDovL2NvZGVwZW4uaW8vb3N1Ymxha2UvcGVuL3hHVlZhTlxuY29uc3QgbWl4TGluZWFyQ29sb3IgPSAoZnJvbSwgdG8sIHYpID0+IHtcbiAgICBjb25zdCBmcm9tRXhwbyA9IGZyb20gKiBmcm9tO1xuICAgIGNvbnN0IGV4cG8gPSB2ICogKHRvICogdG8gLSBmcm9tRXhwbykgKyBmcm9tRXhwbztcbiAgICByZXR1cm4gZXhwbyA8IDAgPyAwIDogTWF0aC5zcXJ0KGV4cG8pO1xufTtcbmNvbnN0IGNvbG9yVHlwZXMgPSBbaGV4LCByZ2JhLCBoc2xhXTtcbmNvbnN0IGdldENvbG9yVHlwZSA9ICh2KSA9PiBjb2xvclR5cGVzLmZpbmQoKHR5cGUpID0+IHR5cGUudGVzdCh2KSk7XG5mdW5jdGlvbiBhc1JHQkEoY29sb3IpIHtcbiAgICBjb25zdCB0eXBlID0gZ2V0Q29sb3JUeXBlKGNvbG9yKTtcbiAgICB3YXJuaW5nKEJvb2xlYW4odHlwZSksIGAnJHtjb2xvcn0nIGlzIG5vdCBhbiBhbmltYXRhYmxlIGNvbG9yLiBVc2UgdGhlIGVxdWl2YWxlbnQgY29sb3IgY29kZSBpbnN0ZWFkLmAsIFwiY29sb3Itbm90LWFuaW1hdGFibGVcIik7XG4gICAgaWYgKCFCb29sZWFuKHR5cGUpKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgbGV0IG1vZGVsID0gdHlwZS5wYXJzZShjb2xvcik7XG4gICAgaWYgKHR5cGUgPT09IGhzbGEpIHtcbiAgICAgICAgLy8gVE9ETyBSZW1vdmUgdGhpcyBjYXN0IC0gbmVlZGVkIHNpbmNlIE1vdGlvbidzIHN0cmljdGVyIHR5cGluZ1xuICAgICAgICBtb2RlbCA9IGhzbGFUb1JnYmEobW9kZWwpO1xuICAgIH1cbiAgICByZXR1cm4gbW9kZWw7XG59XG5jb25zdCBtaXhDb2xvciA9IChmcm9tLCB0bykgPT4ge1xuICAgIGNvbnN0IGZyb21SR0JBID0gYXNSR0JBKGZyb20pO1xuICAgIGNvbnN0IHRvUkdCQSA9IGFzUkdCQSh0byk7XG4gICAgaWYgKCFmcm9tUkdCQSB8fCAhdG9SR0JBKSB7XG4gICAgICAgIHJldHVybiBtaXhJbW1lZGlhdGUoZnJvbSwgdG8pO1xuICAgIH1cbiAgICBjb25zdCBibGVuZGVkID0geyAuLi5mcm9tUkdCQSB9O1xuICAgIHJldHVybiAodikgPT4ge1xuICAgICAgICBibGVuZGVkLnJlZCA9IG1peExpbmVhckNvbG9yKGZyb21SR0JBLnJlZCwgdG9SR0JBLnJlZCwgdik7XG4gICAgICAgIGJsZW5kZWQuZ3JlZW4gPSBtaXhMaW5lYXJDb2xvcihmcm9tUkdCQS5ncmVlbiwgdG9SR0JBLmdyZWVuLCB2KTtcbiAgICAgICAgYmxlbmRlZC5ibHVlID0gbWl4TGluZWFyQ29sb3IoZnJvbVJHQkEuYmx1ZSwgdG9SR0JBLmJsdWUsIHYpO1xuICAgICAgICBibGVuZGVkLmFscGhhID0gbWl4TnVtYmVyKGZyb21SR0JBLmFscGhhLCB0b1JHQkEuYWxwaGEsIHYpO1xuICAgICAgICByZXR1cm4gcmdiYS50cmFuc2Zvcm0oYmxlbmRlZCk7XG4gICAgfTtcbn07XG5cbmV4cG9ydCB7IG1peENvbG9yLCBtaXhMaW5lYXJDb2xvciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29sb3IubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/complex.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getMixer: () => (/* binding */ getMixer),\n/* harmony export */ mixArray: () => (/* binding */ mixArray),\n/* harmony export */ mixComplex: () => (/* binding */ mixComplex),\n/* harmony export */ mixObject: () => (/* binding */ mixObject)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../animation/utils/is-css-variable.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs\");\n/* harmony import */ var _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../value/types/color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../value/types/complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _color_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./color.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/color.mjs\");\n/* harmony import */ var _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./immediate.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n/* harmony import */ var _visibility_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./visibility.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs\");\n\n\n\n\n\n\n\n\n\nfunction mixNumber(a, b) {\n return (p) => (0,_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(a, b, p);\n}\nfunction getMixer(a) {\n if (typeof a === \"number\") {\n return mixNumber;\n }\n else if (typeof a === \"string\") {\n return (0,_animation_utils_is_css_variable_mjs__WEBPACK_IMPORTED_MODULE_1__.isCSSVariableToken)(a)\n ? _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate\n : _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__.color.test(a)\n ? _color_mjs__WEBPACK_IMPORTED_MODULE_4__.mixColor\n : mixComplex;\n }\n else if (Array.isArray(a)) {\n return mixArray;\n }\n else if (typeof a === \"object\") {\n return _value_types_color_index_mjs__WEBPACK_IMPORTED_MODULE_3__.color.test(a) ? _color_mjs__WEBPACK_IMPORTED_MODULE_4__.mixColor : mixObject;\n }\n return _immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate;\n}\nfunction mixArray(a, b) {\n const output = [...a];\n const numValues = output.length;\n const blendValue = a.map((v, i) => getMixer(v)(v, b[i]));\n return (p) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](p);\n }\n return output;\n };\n}\nfunction mixObject(a, b) {\n const output = { ...a, ...b };\n const blendValue = {};\n for (const key in output) {\n if (a[key] !== undefined && b[key] !== undefined) {\n blendValue[key] = getMixer(a[key])(a[key], b[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n}\nfunction matchOrder(origin, target) {\n const orderedOrigin = [];\n const pointers = { color: 0, var: 0, number: 0 };\n for (let i = 0; i < target.values.length; i++) {\n const type = target.types[i];\n const originIndex = origin.indexes[type][pointers[type]];\n const originValue = origin.values[originIndex] ?? 0;\n orderedOrigin[i] = originValue;\n pointers[type]++;\n }\n return orderedOrigin;\n}\nconst mixComplex = (origin, target) => {\n const template = _value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.complex.createTransformer(target);\n const originStats = (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.analyseComplexValue)(origin);\n const targetStats = (0,_value_types_complex_index_mjs__WEBPACK_IMPORTED_MODULE_5__.analyseComplexValue)(target);\n const canInterpolate = originStats.indexes.var.length === targetStats.indexes.var.length &&\n originStats.indexes.color.length === targetStats.indexes.color.length &&\n originStats.indexes.number.length >= targetStats.indexes.number.length;\n if (canInterpolate) {\n if ((_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.invisibleValues.has(origin) &&\n !targetStats.values.length) ||\n (_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.invisibleValues.has(target) &&\n !originStats.values.length)) {\n return (0,_visibility_mjs__WEBPACK_IMPORTED_MODULE_6__.mixVisibility)(origin, target);\n }\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_7__.pipe)(mixArray(matchOrder(originStats, targetStats), targetStats.values), template);\n }\n else {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_8__.warning)(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`, \"complex-values-different\");\n return (0,_immediate_mjs__WEBPACK_IMPORTED_MODULE_2__.mixImmediate)(origin, target);\n }\n};\n\n\n//# sourceMappingURL=complex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2NvbXBsZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBNkM7QUFDa0M7QUFDckI7QUFDeUI7QUFDNUM7QUFDUTtBQUNTO0FBQ1U7O0FBRWxFO0FBQ0Esa0JBQWtCLHNEQUFXO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsd0ZBQWtCO0FBQ2pDLGNBQWMsd0RBQVk7QUFDMUIsY0FBYywrREFBSztBQUNuQixrQkFBa0IsZ0RBQVE7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSwrREFBSyxXQUFXLGdEQUFRO0FBQ3ZDO0FBQ0EsV0FBVyx3REFBWTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsZUFBZTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCO0FBQ3ZCLG9CQUFvQiwwQkFBMEI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLG1FQUFPO0FBQzVCLHdCQUF3QixtRkFBbUI7QUFDM0Msd0JBQXdCLG1GQUFtQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsNERBQWU7QUFDNUI7QUFDQSxhQUFhLDREQUFlO0FBQzVCO0FBQ0EsbUJBQW1CLDhEQUFhO0FBQ2hDO0FBQ0EsZUFBZSxrREFBSTtBQUNuQjtBQUNBO0FBQ0EsUUFBUSxxREFBTywwQkFBMEIsT0FBTyxTQUFTLE9BQU87QUFDaEUsZUFBZSw0REFBWTtBQUMzQjtBQUNBOztBQUVxRDtBQUNyRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2NvbXBsZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBpcGUsIHdhcm5pbmcgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgaXNDU1NWYXJpYWJsZVRva2VuIH0gZnJvbSAnLi4vLi4vYW5pbWF0aW9uL3V0aWxzL2lzLWNzcy12YXJpYWJsZS5tanMnO1xuaW1wb3J0IHsgY29sb3IgfSBmcm9tICcuLi8uLi92YWx1ZS90eXBlcy9jb2xvci9pbmRleC5tanMnO1xuaW1wb3J0IHsgY29tcGxleCwgYW5hbHlzZUNvbXBsZXhWYWx1ZSB9IGZyb20gJy4uLy4uL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzJztcbmltcG9ydCB7IG1peENvbG9yIH0gZnJvbSAnLi9jb2xvci5tanMnO1xuaW1wb3J0IHsgbWl4SW1tZWRpYXRlIH0gZnJvbSAnLi9pbW1lZGlhdGUubWpzJztcbmltcG9ydCB7IG1peE51bWJlciBhcyBtaXhOdW1iZXIkMSB9IGZyb20gJy4vbnVtYmVyLm1qcyc7XG5pbXBvcnQgeyBpbnZpc2libGVWYWx1ZXMsIG1peFZpc2liaWxpdHkgfSBmcm9tICcuL3Zpc2liaWxpdHkubWpzJztcblxuZnVuY3Rpb24gbWl4TnVtYmVyKGEsIGIpIHtcbiAgICByZXR1cm4gKHApID0+IG1peE51bWJlciQxKGEsIGIsIHApO1xufVxuZnVuY3Rpb24gZ2V0TWl4ZXIoYSkge1xuICAgIGlmICh0eXBlb2YgYSA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICByZXR1cm4gbWl4TnVtYmVyO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgYSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4gaXNDU1NWYXJpYWJsZVRva2VuKGEpXG4gICAgICAgICAgICA/IG1peEltbWVkaWF0ZVxuICAgICAgICAgICAgOiBjb2xvci50ZXN0KGEpXG4gICAgICAgICAgICAgICAgPyBtaXhDb2xvclxuICAgICAgICAgICAgICAgIDogbWl4Q29tcGxleDtcbiAgICB9XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShhKSkge1xuICAgICAgICByZXR1cm4gbWl4QXJyYXk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHR5cGVvZiBhID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHJldHVybiBjb2xvci50ZXN0KGEpID8gbWl4Q29sb3IgOiBtaXhPYmplY3Q7XG4gICAgfVxuICAgIHJldHVybiBtaXhJbW1lZGlhdGU7XG59XG5mdW5jdGlvbiBtaXhBcnJheShhLCBiKSB7XG4gICAgY29uc3Qgb3V0cHV0ID0gWy4uLmFdO1xuICAgIGNvbnN0IG51bVZhbHVlcyA9IG91dHB1dC5sZW5ndGg7XG4gICAgY29uc3QgYmxlbmRWYWx1ZSA9IGEubWFwKCh2LCBpKSA9PiBnZXRNaXhlcih2KSh2LCBiW2ldKSk7XG4gICAgcmV0dXJuIChwKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtVmFsdWVzOyBpKyspIHtcbiAgICAgICAgICAgIG91dHB1dFtpXSA9IGJsZW5kVmFsdWVbaV0ocCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICB9O1xufVxuZnVuY3Rpb24gbWl4T2JqZWN0KGEsIGIpIHtcbiAgICBjb25zdCBvdXRwdXQgPSB7IC4uLmEsIC4uLmIgfTtcbiAgICBjb25zdCBibGVuZFZhbHVlID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gb3V0cHV0KSB7XG4gICAgICAgIGlmIChhW2tleV0gIT09IHVuZGVmaW5lZCAmJiBiW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYmxlbmRWYWx1ZVtrZXldID0gZ2V0TWl4ZXIoYVtrZXldKShhW2tleV0sIGJba2V5XSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICh2KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGJsZW5kVmFsdWUpIHtcbiAgICAgICAgICAgIG91dHB1dFtrZXldID0gYmxlbmRWYWx1ZVtrZXldKHYpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvdXRwdXQ7XG4gICAgfTtcbn1cbmZ1bmN0aW9uIG1hdGNoT3JkZXIob3JpZ2luLCB0YXJnZXQpIHtcbiAgICBjb25zdCBvcmRlcmVkT3JpZ2luID0gW107XG4gICAgY29uc3QgcG9pbnRlcnMgPSB7IGNvbG9yOiAwLCB2YXI6IDAsIG51bWJlcjogMCB9O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFyZ2V0LnZhbHVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB0eXBlID0gdGFyZ2V0LnR5cGVzW2ldO1xuICAgICAgICBjb25zdCBvcmlnaW5JbmRleCA9IG9yaWdpbi5pbmRleGVzW3R5cGVdW3BvaW50ZXJzW3R5cGVdXTtcbiAgICAgICAgY29uc3Qgb3JpZ2luVmFsdWUgPSBvcmlnaW4udmFsdWVzW29yaWdpbkluZGV4XSA/PyAwO1xuICAgICAgICBvcmRlcmVkT3JpZ2luW2ldID0gb3JpZ2luVmFsdWU7XG4gICAgICAgIHBvaW50ZXJzW3R5cGVdKys7XG4gICAgfVxuICAgIHJldHVybiBvcmRlcmVkT3JpZ2luO1xufVxuY29uc3QgbWl4Q29tcGxleCA9IChvcmlnaW4sIHRhcmdldCkgPT4ge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gY29tcGxleC5jcmVhdGVUcmFuc2Zvcm1lcih0YXJnZXQpO1xuICAgIGNvbnN0IG9yaWdpblN0YXRzID0gYW5hbHlzZUNvbXBsZXhWYWx1ZShvcmlnaW4pO1xuICAgIGNvbnN0IHRhcmdldFN0YXRzID0gYW5hbHlzZUNvbXBsZXhWYWx1ZSh0YXJnZXQpO1xuICAgIGNvbnN0IGNhbkludGVycG9sYXRlID0gb3JpZ2luU3RhdHMuaW5kZXhlcy52YXIubGVuZ3RoID09PSB0YXJnZXRTdGF0cy5pbmRleGVzLnZhci5sZW5ndGggJiZcbiAgICAgICAgb3JpZ2luU3RhdHMuaW5kZXhlcy5jb2xvci5sZW5ndGggPT09IHRhcmdldFN0YXRzLmluZGV4ZXMuY29sb3IubGVuZ3RoICYmXG4gICAgICAgIG9yaWdpblN0YXRzLmluZGV4ZXMubnVtYmVyLmxlbmd0aCA+PSB0YXJnZXRTdGF0cy5pbmRleGVzLm51bWJlci5sZW5ndGg7XG4gICAgaWYgKGNhbkludGVycG9sYXRlKSB7XG4gICAgICAgIGlmICgoaW52aXNpYmxlVmFsdWVzLmhhcyhvcmlnaW4pICYmXG4gICAgICAgICAgICAhdGFyZ2V0U3RhdHMudmFsdWVzLmxlbmd0aCkgfHxcbiAgICAgICAgICAgIChpbnZpc2libGVWYWx1ZXMuaGFzKHRhcmdldCkgJiZcbiAgICAgICAgICAgICAgICAhb3JpZ2luU3RhdHMudmFsdWVzLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybiBtaXhWaXNpYmlsaXR5KG9yaWdpbiwgdGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGlwZShtaXhBcnJheShtYXRjaE9yZGVyKG9yaWdpblN0YXRzLCB0YXJnZXRTdGF0cyksIHRhcmdldFN0YXRzLnZhbHVlcyksIHRlbXBsYXRlKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICAgIHdhcm5pbmcodHJ1ZSwgYENvbXBsZXggdmFsdWVzICcke29yaWdpbn0nIGFuZCAnJHt0YXJnZXR9JyB0b28gZGlmZmVyZW50IHRvIG1peC4gRW5zdXJlIGFsbCBjb2xvcnMgYXJlIG9mIHRoZSBzYW1lIHR5cGUsIGFuZCB0aGF0IGVhY2ggY29udGFpbnMgdGhlIHNhbWUgcXVhbnRpdHkgb2YgbnVtYmVyIGFuZCBjb2xvciB2YWx1ZXMuIEZhbGxpbmcgYmFjayB0byBpbnN0YW50IHRyYW5zaXRpb24uYCwgXCJjb21wbGV4LXZhbHVlcy1kaWZmZXJlbnRcIik7XG4gICAgICAgIHJldHVybiBtaXhJbW1lZGlhdGUob3JpZ2luLCB0YXJnZXQpO1xuICAgIH1cbn07XG5cbmV4cG9ydCB7IGdldE1peGVyLCBtaXhBcnJheSwgbWl4Q29tcGxleCwgbWl4T2JqZWN0IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jb21wbGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixImmediate: () => (/* binding */ mixImmediate)\n/* harmony export */ });\nfunction mixImmediate(a, b) {\n return (p) => (p > 0 ? b : a);\n}\n\n\n//# sourceMappingURL=immediate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2ltbWVkaWF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC9pbW1lZGlhdGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIG1peEltbWVkaWF0ZShhLCBiKSB7XG4gICAgcmV0dXJuIChwKSA9PiAocCA+IDAgPyBiIDogYSk7XG59XG5cbmV4cG9ydCB7IG1peEltbWVkaWF0ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1tZWRpYXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/immediate.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/index.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mix: () => (/* binding */ mix)\n/* harmony export */ });\n/* harmony import */ var _complex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./complex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/complex.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\");\n\n\n\nfunction mix(from, to, p) {\n if (typeof from === \"number\" &&\n typeof to === \"number\" &&\n typeof p === \"number\") {\n return (0,_number_mjs__WEBPACK_IMPORTED_MODULE_0__.mixNumber)(from, to, p);\n }\n const mixer = (0,_complex_mjs__WEBPACK_IMPORTED_MODULE_1__.getMixer)(from);\n return mixer(from, to);\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2luZGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBeUM7QUFDQTs7QUFFekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHNEQUFTO0FBQ3hCO0FBQ0Esa0JBQWtCLHNEQUFRO0FBQzFCO0FBQ0E7O0FBRWU7QUFDZiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRNaXhlciB9IGZyb20gJy4vY29tcGxleC5tanMnO1xuaW1wb3J0IHsgbWl4TnVtYmVyIH0gZnJvbSAnLi9udW1iZXIubWpzJztcblxuZnVuY3Rpb24gbWl4KGZyb20sIHRvLCBwKSB7XG4gICAgaWYgKHR5cGVvZiBmcm9tID09PSBcIm51bWJlclwiICYmXG4gICAgICAgIHR5cGVvZiB0byA9PT0gXCJudW1iZXJcIiAmJlxuICAgICAgICB0eXBlb2YgcCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICByZXR1cm4gbWl4TnVtYmVyKGZyb20sIHRvLCBwKTtcbiAgICB9XG4gICAgY29uc3QgbWl4ZXIgPSBnZXRNaXhlcihmcm9tKTtcbiAgICByZXR1cm4gbWl4ZXIoZnJvbSwgdG8pO1xufVxuXG5leHBvcnQgeyBtaXggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/number.mjs ***! + \**************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mixNumber: () => (/* binding */ mixNumber)\n/* harmony export */ });\n/*\n Value in range from progress\n\n Given a lower limit and an upper limit, we return the value within\n that range as expressed by progress (usually a number from 0 to 1)\n\n So progress = 0.5 would change\n\n from -------- to\n\n to\n\n from ---- to\n\n E.g. from = 10, to = 20, progress = 0.5 => 15\n\n @param [number]: Lower limit of range\n @param [number]: Upper limit of range\n @param [number]: The progress between lower and upper limits expressed 0-1\n @return [number]: Value as calculated from progress within range (not limited within range)\n*/\nconst mixNumber = (from, to, progress) => {\n return from + (to - from) * progress;\n};\n\n\n//# sourceMappingURL=number.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L251bWJlci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVxQjtBQUNyQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L251bWJlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgVmFsdWUgaW4gcmFuZ2UgZnJvbSBwcm9ncmVzc1xuXG4gIEdpdmVuIGEgbG93ZXIgbGltaXQgYW5kIGFuIHVwcGVyIGxpbWl0LCB3ZSByZXR1cm4gdGhlIHZhbHVlIHdpdGhpblxuICB0aGF0IHJhbmdlIGFzIGV4cHJlc3NlZCBieSBwcm9ncmVzcyAodXN1YWxseSBhIG51bWJlciBmcm9tIDAgdG8gMSlcblxuICBTbyBwcm9ncmVzcyA9IDAuNSB3b3VsZCBjaGFuZ2VcblxuICBmcm9tIC0tLS0tLS0tIHRvXG5cbiAgdG9cblxuICBmcm9tIC0tLS0gdG9cblxuICBFLmcuIGZyb20gPSAxMCwgdG8gPSAyMCwgcHJvZ3Jlc3MgPSAwLjUgPT4gMTVcblxuICBAcGFyYW0gW251bWJlcl06IExvd2VyIGxpbWl0IG9mIHJhbmdlXG4gIEBwYXJhbSBbbnVtYmVyXTogVXBwZXIgbGltaXQgb2YgcmFuZ2VcbiAgQHBhcmFtIFtudW1iZXJdOiBUaGUgcHJvZ3Jlc3MgYmV0d2VlbiBsb3dlciBhbmQgdXBwZXIgbGltaXRzIGV4cHJlc3NlZCAwLTFcbiAgQHJldHVybiBbbnVtYmVyXTogVmFsdWUgYXMgY2FsY3VsYXRlZCBmcm9tIHByb2dyZXNzIHdpdGhpbiByYW5nZSAobm90IGxpbWl0ZWQgd2l0aGluIHJhbmdlKVxuKi9cbmNvbnN0IG1peE51bWJlciA9IChmcm9tLCB0bywgcHJvZ3Jlc3MpID0+IHtcbiAgICByZXR1cm4gZnJvbSArICh0byAtIGZyb20pICogcHJvZ3Jlc3M7XG59O1xuXG5leHBvcnQgeyBtaXhOdW1iZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPW51bWJlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/number.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ invisibleValues: () => (/* binding */ invisibleValues),\n/* harmony export */ mixVisibility: () => (/* binding */ mixVisibility)\n/* harmony export */ });\nconst invisibleValues = new Set([\"none\", \"hidden\"]);\n/**\n * Returns a function that, when provided a progress value between 0 and 1,\n * will return the \"none\" or \"hidden\" string only when the progress is that of\n * the origin or target.\n */\nfunction mixVisibility(origin, target) {\n if (invisibleValues.has(origin)) {\n return (p) => (p <= 0 ? origin : target);\n }\n else {\n return (p) => (p >= 1 ? target : origin);\n }\n}\n\n\n//# sourceMappingURL=visibility.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvbWl4L3Zpc2liaWxpdHkubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMEM7QUFDMUMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL21peC92aXNpYmlsaXR5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpbnZpc2libGVWYWx1ZXMgPSBuZXcgU2V0KFtcIm5vbmVcIiwgXCJoaWRkZW5cIl0pO1xuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdGhhdCwgd2hlbiBwcm92aWRlZCBhIHByb2dyZXNzIHZhbHVlIGJldHdlZW4gMCBhbmQgMSxcbiAqIHdpbGwgcmV0dXJuIHRoZSBcIm5vbmVcIiBvciBcImhpZGRlblwiIHN0cmluZyBvbmx5IHdoZW4gdGhlIHByb2dyZXNzIGlzIHRoYXQgb2ZcbiAqIHRoZSBvcmlnaW4gb3IgdGFyZ2V0LlxuICovXG5mdW5jdGlvbiBtaXhWaXNpYmlsaXR5KG9yaWdpbiwgdGFyZ2V0KSB7XG4gICAgaWYgKGludmlzaWJsZVZhbHVlcy5oYXMob3JpZ2luKSkge1xuICAgICAgICByZXR1cm4gKHApID0+IChwIDw9IDAgPyBvcmlnaW4gOiB0YXJnZXQpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIChwKSA9PiAocCA+PSAxID8gdGFyZ2V0IDogb3JpZ2luKTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IGludmlzaWJsZVZhbHVlcywgbWl4VmlzaWJpbGl0eSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dmlzaWJpbGl0eS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/mix/visibility.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveElements: () => (/* binding */ resolveElements)\n/* harmony export */ });\nfunction resolveElements(elementOrSelector, scope, selectorCache) {\n if (elementOrSelector == null) {\n return [];\n }\n if (elementOrSelector instanceof EventTarget) {\n return [elementOrSelector];\n }\n else if (typeof elementOrSelector === \"string\") {\n let root = document;\n if (scope) {\n root = scope.current;\n }\n const elements = selectorCache?.[elementOrSelector] ??\n root.querySelectorAll(elementOrSelector);\n return elements ? Array.from(elements) : [];\n }\n return Array.from(elementOrSelector).filter((element) => element != null);\n}\n\n\n//# sourceMappingURL=resolve-elements.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvcmVzb2x2ZS1lbGVtZW50cy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFMkI7QUFDM0IiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3Jlc29sdmUtZWxlbWVudHMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIHJlc29sdmVFbGVtZW50cyhlbGVtZW50T3JTZWxlY3Rvciwgc2NvcGUsIHNlbGVjdG9yQ2FjaGUpIHtcbiAgICBpZiAoZWxlbWVudE9yU2VsZWN0b3IgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGlmIChlbGVtZW50T3JTZWxlY3RvciBpbnN0YW5jZW9mIEV2ZW50VGFyZ2V0KSB7XG4gICAgICAgIHJldHVybiBbZWxlbWVudE9yU2VsZWN0b3JdO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgZWxlbWVudE9yU2VsZWN0b3IgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgbGV0IHJvb3QgPSBkb2N1bWVudDtcbiAgICAgICAgaWYgKHNjb3BlKSB7XG4gICAgICAgICAgICByb290ID0gc2NvcGUuY3VycmVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbGVtZW50cyA9IHNlbGVjdG9yQ2FjaGU/LltlbGVtZW50T3JTZWxlY3Rvcl0gPz9cbiAgICAgICAgICAgIHJvb3QucXVlcnlTZWxlY3RvckFsbChlbGVtZW50T3JTZWxlY3Rvcik7XG4gICAgICAgIHJldHVybiBlbGVtZW50cyA/IEFycmF5LmZyb20oZWxlbWVudHMpIDogW107XG4gICAgfVxuICAgIHJldHVybiBBcnJheS5mcm9tKGVsZW1lbnRPclNlbGVjdG9yKS5maWx0ZXIoKGVsZW1lbnQpID0+IGVsZW1lbnQgIT0gbnVsbCk7XG59XG5cbmV4cG9ydCB7IHJlc29sdmVFbGVtZW50cyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1lbGVtZW50cy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/resolve-elements.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/flags.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsFlags: () => (/* binding */ supportsFlags)\n/* harmony export */ });\n/**\n * Add the ability for test suites to manually set support flags\n * to better test more environments.\n */\nconst supportsFlags = {};\n\n\n//# sourceMappingURL=flags.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvZmxhZ3MubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvZmxhZ3MubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWRkIHRoZSBhYmlsaXR5IGZvciB0ZXN0IHN1aXRlcyB0byBtYW51YWxseSBzZXQgc3VwcG9ydCBmbGFnc1xuICogdG8gYmV0dGVyIHRlc3QgbW9yZSBlbnZpcm9ubWVudHMuXG4gKi9cbmNvbnN0IHN1cHBvcnRzRmxhZ3MgPSB7fTtcblxuZXhwb3J0IHsgc3VwcG9ydHNGbGFncyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmxhZ3MubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsLinearEasing: () => (/* binding */ supportsLinearEasing)\n/* harmony export */ });\n/* harmony import */ var _memo_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./memo.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs\");\n\n\nconst supportsLinearEasing = /*@__PURE__*/ (0,_memo_mjs__WEBPACK_IMPORTED_MODULE_0__.memoSupports)(() => {\n try {\n document\n .createElement(\"div\")\n .animate({ opacity: 0 }, { easing: \"linear(0, 1)\" });\n }\n catch (e) {\n return false;\n }\n return true;\n}, \"linearEasing\");\n\n\n//# sourceMappingURL=linear-easing.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvbGluZWFyLWVhc2luZy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBMEM7O0FBRTFDLDJDQUEyQyx1REFBWTtBQUN2RDtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsWUFBWSxJQUFJLHdCQUF3QjtBQUMvRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFK0I7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL2xpbmVhci1lYXNpbmcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW9TdXBwb3J0cyB9IGZyb20gJy4vbWVtby5tanMnO1xuXG5jb25zdCBzdXBwb3J0c0xpbmVhckVhc2luZyA9IC8qQF9fUFVSRV9fKi8gbWVtb1N1cHBvcnRzKCgpID0+IHtcbiAgICB0cnkge1xuICAgICAgICBkb2N1bWVudFxuICAgICAgICAgICAgLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIilcbiAgICAgICAgICAgIC5hbmltYXRlKHsgb3BhY2l0eTogMCB9LCB7IGVhc2luZzogXCJsaW5lYXIoMCwgMSlcIiB9KTtcbiAgICB9XG4gICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn0sIFwibGluZWFyRWFzaW5nXCIpO1xuXG5leHBvcnQgeyBzdXBwb3J0c0xpbmVhckVhc2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGluZWFyLWVhc2luZy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/memo.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ memoSupports: () => (/* binding */ memoSupports)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs\");\n/* harmony import */ var _flags_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./flags.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/flags.mjs\");\n\n\n\nfunction memoSupports(callback, supportsFlag) {\n const memoized = (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.memo)(callback);\n return () => _flags_mjs__WEBPACK_IMPORTED_MODULE_1__.supportsFlags[supportsFlag] ?? memoized();\n}\n\n\n//# sourceMappingURL=memo.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvbWVtby5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQW9DO0FBQ1E7O0FBRTVDO0FBQ0EscUJBQXFCLGtEQUFJO0FBQ3pCLGlCQUFpQixxREFBYTtBQUM5Qjs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3V0aWxzL3N1cHBvcnRzL21lbW8ubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lbW8gfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgc3VwcG9ydHNGbGFncyB9IGZyb20gJy4vZmxhZ3MubWpzJztcblxuZnVuY3Rpb24gbWVtb1N1cHBvcnRzKGNhbGxiYWNrLCBzdXBwb3J0c0ZsYWcpIHtcbiAgICBjb25zdCBtZW1vaXplZCA9IG1lbW8oY2FsbGJhY2spO1xuICAgIHJldHVybiAoKSA9PiBzdXBwb3J0c0ZsYWdzW3N1cHBvcnRzRmxhZ10gPz8gbWVtb2l6ZWQoKTtcbn1cblxuZXhwb3J0IHsgbWVtb1N1cHBvcnRzIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tZW1vLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ supportsScrollTimeline: () => (/* binding */ supportsScrollTimeline)\n/* harmony export */ });\n/* harmony import */ var _memo_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./memo.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/memo.mjs\");\n\n\nconst supportsScrollTimeline = /* @__PURE__ */ (0,_memo_mjs__WEBPACK_IMPORTED_MODULE_0__.memoSupports)(() => window.ScrollTimeline !== undefined, \"scrollTimeline\");\n\n\n//# sourceMappingURL=scroll-timeline.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvc2Nyb2xsLXRpbWVsaW5lLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUEwQzs7QUFFMUMsK0NBQStDLHVEQUFZOztBQUV6QjtBQUNsQyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdXRpbHMvc3VwcG9ydHMvc2Nyb2xsLXRpbWVsaW5lLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtZW1vU3VwcG9ydHMgfSBmcm9tICcuL21lbW8ubWpzJztcblxuY29uc3Qgc3VwcG9ydHNTY3JvbGxUaW1lbGluZSA9IC8qIEBfX1BVUkVfXyAqLyBtZW1vU3VwcG9ydHMoKCkgPT4gd2luZG93LlNjcm9sbFRpbWVsaW5lICE9PSB1bmRlZmluZWQsIFwic2Nyb2xsVGltZWxpbmVcIik7XG5cbmV4cG9ydCB7IHN1cHBvcnRzU2Nyb2xsVGltZWxpbmUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNjcm9sbC10aW1lbGluZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/index.mjs ***! + \*********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionValue: () => (/* binding */ MotionValue),\n/* harmony export */ collectMotionValues: () => (/* binding */ collectMotionValues),\n/* harmony export */ motionValue: () => (/* binding */ motionValue)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\");\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\");\n/* harmony import */ var _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../frameloop/sync-time.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/sync-time.mjs\");\n/* harmony import */ var _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../frameloop/frame.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/frameloop/frame.mjs\");\n\n\n\n\n/**\n * Maximum time between the value of two frames, beyond which we\n * assume the velocity has since been 0.\n */\nconst MAX_VELOCITY_DELTA = 30;\nconst isFloat = (value) => {\n return !isNaN(parseFloat(value));\n};\nconst collectMotionValues = {\n current: undefined,\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nclass MotionValue {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n */\n constructor(init, options = {}) {\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = null;\n /**\n * An object containing a SubscriptionManager for each active event.\n */\n this.events = {};\n this.updateAndNotify = (v) => {\n const currentTime = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n /**\n * If we're updating the value during another frame or eventloop\n * than the previous frame, then the we set the previous frame value\n * to current.\n */\n if (this.updatedAt !== currentTime) {\n this.setPrevFrameValue();\n }\n this.prev = this.current;\n this.setCurrent(v);\n // Update update subscribers\n if (this.current !== this.prev) {\n this.events.change?.notify(this.current);\n if (this.dependents) {\n for (const dependent of this.dependents) {\n dependent.dirty();\n }\n }\n }\n };\n this.hasAnimated = false;\n this.setCurrent(init);\n this.owner = options.owner;\n }\n setCurrent(current) {\n this.current = current;\n this.updatedAt = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n if (this.canTrackVelocity === null && current !== undefined) {\n this.canTrackVelocity = isFloat(this.current);\n }\n }\n setPrevFrameValue(prevFrameValue = this.current) {\n this.prevFrameValue = prevFrameValue;\n this.prevUpdatedAt = this.updatedAt;\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.on(\"change\", updateOpacity)\n * const unsubscribeY = y.on(\"change\", updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return <motion.div style={{ x }} />\n * }\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @deprecated\n */\n onChange(subscription) {\n if (true) {\n (0,motion_utils__WEBPACK_IMPORTED_MODULE_1__.warnOnce)(false, `value.onChange(callback) is deprecated. Switch to value.on(\"change\", callback).`);\n }\n return this.on(\"change\", subscription);\n }\n on(eventName, callback) {\n if (!this.events[eventName]) {\n this.events[eventName] = new motion_utils__WEBPACK_IMPORTED_MODULE_2__.SubscriptionManager();\n }\n const unsubscribe = this.events[eventName].add(callback);\n if (eventName === \"change\") {\n return () => {\n unsubscribe();\n /**\n * If we have no more change listeners by the start\n * of the next frame, stop active animations.\n */\n _frameloop_frame_mjs__WEBPACK_IMPORTED_MODULE_3__.frame.read(() => {\n if (!this.events.change.getSize()) {\n this.stop();\n }\n });\n };\n }\n return unsubscribe;\n }\n clearListeners() {\n for (const eventManagers in this.events) {\n this.events[eventManagers].clear();\n }\n }\n /**\n * Attaches a passive effect to the `MotionValue`.\n */\n attach(passiveEffect, stopPassiveEffect) {\n this.passiveEffect = passiveEffect;\n this.stopPassiveEffect = stopPassiveEffect;\n }\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n set(v) {\n if (!this.passiveEffect) {\n this.updateAndNotify(v);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n }\n setWithVelocity(prev, current, delta) {\n this.set(current);\n this.prev = undefined;\n this.prevFrameValue = prev;\n this.prevUpdatedAt = this.updatedAt - delta;\n }\n /**\n * Set the state of the `MotionValue`, stopping any active animations,\n * effects, and resets velocity to `0`.\n */\n jump(v, endAnimation = true) {\n this.updateAndNotify(v);\n this.prev = v;\n this.prevUpdatedAt = this.prevFrameValue = undefined;\n endAnimation && this.stop();\n if (this.stopPassiveEffect)\n this.stopPassiveEffect();\n }\n dirty() {\n this.events.change?.notify(this.current);\n }\n addDependent(dependent) {\n if (!this.dependents) {\n this.dependents = new Set();\n }\n this.dependents.add(dependent);\n }\n removeDependent(dependent) {\n if (this.dependents) {\n this.dependents.delete(dependent);\n }\n }\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n get() {\n if (collectMotionValues.current) {\n collectMotionValues.current.push(this);\n }\n return this.current;\n }\n /**\n * @public\n */\n getPrevious() {\n return this.prev;\n }\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n getVelocity() {\n const currentTime = _frameloop_sync_time_mjs__WEBPACK_IMPORTED_MODULE_0__.time.now();\n if (!this.canTrackVelocity ||\n this.prevFrameValue === undefined ||\n currentTime - this.updatedAt > MAX_VELOCITY_DELTA) {\n return 0;\n }\n const delta = Math.min(this.updatedAt - this.prevUpdatedAt, MAX_VELOCITY_DELTA);\n // Casts because of parseFloat's poor typing\n return (0,motion_utils__WEBPACK_IMPORTED_MODULE_4__.velocityPerSecond)(parseFloat(this.current) -\n parseFloat(this.prevFrameValue), delta);\n }\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n */\n start(startAnimation) {\n this.stop();\n return new Promise((resolve) => {\n this.hasAnimated = true;\n this.animation = startAnimation(resolve);\n if (this.events.animationStart) {\n this.events.animationStart.notify();\n }\n }).then(() => {\n if (this.events.animationComplete) {\n this.events.animationComplete.notify();\n }\n this.clearAnimation();\n });\n }\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n stop() {\n if (this.animation) {\n this.animation.stop();\n if (this.events.animationCancel) {\n this.events.animationCancel.notify();\n }\n }\n this.clearAnimation();\n }\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n isAnimating() {\n return !!this.animation;\n }\n clearAnimation() {\n delete this.animation;\n }\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n destroy() {\n this.dependents?.clear();\n this.events.destroy?.notify();\n this.clearListeners();\n this.stop();\n if (this.stopPassiveEffect) {\n this.stopPassiveEffect();\n }\n }\n}\nfunction motionValue(init, options) {\n return new MotionValue(init, options);\n}\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQWdGO0FBQzlCO0FBQ0g7O0FBRS9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0M7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsMERBQUk7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QiwwREFBSTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBLHFDQUFxQyxLQUFLO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksSUFBcUM7QUFDakQsWUFBWSxzREFBUTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLDZEQUFtQjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsdURBQUs7QUFDckI7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsMERBQUk7QUFDaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLCtEQUFpQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFeUQ7QUFDekQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL2luZGV4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB3YXJuT25jZSwgU3Vic2NyaXB0aW9uTWFuYWdlciwgdmVsb2NpdHlQZXJTZWNvbmQgfSBmcm9tICdtb3Rpb24tdXRpbHMnO1xuaW1wb3J0IHsgdGltZSB9IGZyb20gJy4uL2ZyYW1lbG9vcC9zeW5jLXRpbWUubWpzJztcbmltcG9ydCB7IGZyYW1lIH0gZnJvbSAnLi4vZnJhbWVsb29wL2ZyYW1lLm1qcyc7XG5cbi8qKlxuICogTWF4aW11bSB0aW1lIGJldHdlZW4gdGhlIHZhbHVlIG9mIHR3byBmcmFtZXMsIGJleW9uZCB3aGljaCB3ZVxuICogYXNzdW1lIHRoZSB2ZWxvY2l0eSBoYXMgc2luY2UgYmVlbiAwLlxuICovXG5jb25zdCBNQVhfVkVMT0NJVFlfREVMVEEgPSAzMDtcbmNvbnN0IGlzRmxvYXQgPSAodmFsdWUpID0+IHtcbiAgICByZXR1cm4gIWlzTmFOKHBhcnNlRmxvYXQodmFsdWUpKTtcbn07XG5jb25zdCBjb2xsZWN0TW90aW9uVmFsdWVzID0ge1xuICAgIGN1cnJlbnQ6IHVuZGVmaW5lZCxcbn07XG4vKipcbiAqIGBNb3Rpb25WYWx1ZWAgaXMgdXNlZCB0byB0cmFjayB0aGUgc3RhdGUgYW5kIHZlbG9jaXR5IG9mIG1vdGlvbiB2YWx1ZXMuXG4gKlxuICogQHB1YmxpY1xuICovXG5jbGFzcyBNb3Rpb25WYWx1ZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGluaXQgLSBUaGUgaW5pdGlhdGluZyB2YWx1ZVxuICAgICAqIEBwYXJhbSBjb25maWcgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAgICAgKlxuICAgICAqIC0gIGB0cmFuc2Zvcm1lcmA6IEEgZnVuY3Rpb24gdG8gdHJhbnNmb3JtIGluY29taW5nIHZhbHVlcyB3aXRoLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGluaXQsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICAvKipcbiAgICAgICAgICogVHJhY2tzIHdoZXRoZXIgdGhpcyB2YWx1ZSBjYW4gb3V0cHV0IGEgdmVsb2NpdHkuIEN1cnJlbnRseSB0aGlzIGlzIG9ubHkgdHJ1ZVxuICAgICAgICAgKiBpZiB0aGUgdmFsdWUgaXMgbnVtZXJpY2FsLCBidXQgd2UgbWlnaHQgYmUgYWJsZSB0byB3aWRlbiB0aGUgc2NvcGUgaGVyZSBhbmQgc3VwcG9ydFxuICAgICAgICAgKiBvdGhlciB2YWx1ZSB0eXBlcy5cbiAgICAgICAgICpcbiAgICAgICAgICogQGludGVybmFsXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmNhblRyYWNrVmVsb2NpdHkgPSBudWxsO1xuICAgICAgICAvKipcbiAgICAgICAgICogQW4gb2JqZWN0IGNvbnRhaW5pbmcgYSBTdWJzY3JpcHRpb25NYW5hZ2VyIGZvciBlYWNoIGFjdGl2ZSBldmVudC5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZXZlbnRzID0ge307XG4gICAgICAgIHRoaXMudXBkYXRlQW5kTm90aWZ5ID0gKHYpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gdGltZS5ub3coKTtcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogSWYgd2UncmUgdXBkYXRpbmcgdGhlIHZhbHVlIGR1cmluZyBhbm90aGVyIGZyYW1lIG9yIGV2ZW50bG9vcFxuICAgICAgICAgICAgICogdGhhbiB0aGUgcHJldmlvdXMgZnJhbWUsIHRoZW4gdGhlIHdlIHNldCB0aGUgcHJldmlvdXMgZnJhbWUgdmFsdWVcbiAgICAgICAgICAgICAqIHRvIGN1cnJlbnQuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGlmICh0aGlzLnVwZGF0ZWRBdCAhPT0gY3VycmVudFRpbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByZXZGcmFtZVZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnByZXYgPSB0aGlzLmN1cnJlbnQ7XG4gICAgICAgICAgICB0aGlzLnNldEN1cnJlbnQodik7XG4gICAgICAgICAgICAvLyBVcGRhdGUgdXBkYXRlIHN1YnNjcmliZXJzXG4gICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50ICE9PSB0aGlzLnByZXYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5jaGFuZ2U/Lm5vdGlmeSh0aGlzLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlcGVuZGVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBkZXBlbmRlbnQgb2YgdGhpcy5kZXBlbmRlbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRlbnQuZGlydHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5oYXNBbmltYXRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnQoaW5pdCk7XG4gICAgICAgIHRoaXMub3duZXIgPSBvcHRpb25zLm93bmVyO1xuICAgIH1cbiAgICBzZXRDdXJyZW50KGN1cnJlbnQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50ID0gY3VycmVudDtcbiAgICAgICAgdGhpcy51cGRhdGVkQXQgPSB0aW1lLm5vdygpO1xuICAgICAgICBpZiAodGhpcy5jYW5UcmFja1ZlbG9jaXR5ID09PSBudWxsICYmIGN1cnJlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5jYW5UcmFja1ZlbG9jaXR5ID0gaXNGbG9hdCh0aGlzLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNldFByZXZGcmFtZVZhbHVlKHByZXZGcmFtZVZhbHVlID0gdGhpcy5jdXJyZW50KSB7XG4gICAgICAgIHRoaXMucHJldkZyYW1lVmFsdWUgPSBwcmV2RnJhbWVWYWx1ZTtcbiAgICAgICAgdGhpcy5wcmV2VXBkYXRlZEF0ID0gdGhpcy51cGRhdGVkQXQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgbm90aWZpZWQgd2hlbiB0aGUgYE1vdGlvblZhbHVlYCBpcyB1cGRhdGVkLlxuICAgICAqXG4gICAgICogSXQgcmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQsIHdoZW4gY2FsbGVkLCB3aWxsIGNhbmNlbCB0aGUgc3Vic2NyaXB0aW9uLlxuICAgICAqXG4gICAgICogV2hlbiBjYWxsaW5nIGBvbkNoYW5nZWAgaW5zaWRlIGEgUmVhY3QgY29tcG9uZW50LCBpdCBzaG91bGQgYmUgd3JhcHBlZCB3aXRoIHRoZVxuICAgICAqIGB1c2VFZmZlY3RgIGhvb2suIEFzIGl0IHJldHVybnMgYW4gdW5zdWJzY3JpYmUgZnVuY3Rpb24sIHRoaXMgc2hvdWxkIGJlIHJldHVybmVkXG4gICAgICogZnJvbSB0aGUgYHVzZUVmZmVjdGAgZnVuY3Rpb24gdG8gZW5zdXJlIHlvdSBkb24ndCBhZGQgZHVwbGljYXRlIHN1YnNjcmliZXJzLi5cbiAgICAgKlxuICAgICAqIGBgYGpzeFxuICAgICAqIGV4cG9ydCBjb25zdCBNeUNvbXBvbmVudCA9ICgpID0+IHtcbiAgICAgKiAgIGNvbnN0IHggPSB1c2VNb3Rpb25WYWx1ZSgwKVxuICAgICAqICAgY29uc3QgeSA9IHVzZU1vdGlvblZhbHVlKDApXG4gICAgICogICBjb25zdCBvcGFjaXR5ID0gdXNlTW90aW9uVmFsdWUoMSlcbiAgICAgKlxuICAgICAqICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgKiAgICAgZnVuY3Rpb24gdXBkYXRlT3BhY2l0eSgpIHtcbiAgICAgKiAgICAgICBjb25zdCBtYXhYWSA9IE1hdGgubWF4KHguZ2V0KCksIHkuZ2V0KCkpXG4gICAgICogICAgICAgY29uc3QgbmV3T3BhY2l0eSA9IHRyYW5zZm9ybShtYXhYWSwgWzAsIDEwMF0sIFsxLCAwXSlcbiAgICAgKiAgICAgICBvcGFjaXR5LnNldChuZXdPcGFjaXR5KVxuICAgICAqICAgICB9XG4gICAgICpcbiAgICAgKiAgICAgY29uc3QgdW5zdWJzY3JpYmVYID0geC5vbihcImNoYW5nZVwiLCB1cGRhdGVPcGFjaXR5KVxuICAgICAqICAgICBjb25zdCB1bnN1YnNjcmliZVkgPSB5Lm9uKFwiY2hhbmdlXCIsIHVwZGF0ZU9wYWNpdHkpXG4gICAgICpcbiAgICAgKiAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgKiAgICAgICB1bnN1YnNjcmliZVgoKVxuICAgICAqICAgICAgIHVuc3Vic2NyaWJlWSgpXG4gICAgICogICAgIH1cbiAgICAgKiAgIH0sIFtdKVxuICAgICAqXG4gICAgICogICByZXR1cm4gPG1vdGlvbi5kaXYgc3R5bGU9e3sgeCB9fSAvPlxuICAgICAqIH1cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzdWJzY3JpYmVyIC0gQSBmdW5jdGlvbiB0aGF0IHJlY2VpdmVzIHRoZSBsYXRlc3QgdmFsdWUuXG4gICAgICogQHJldHVybnMgQSBmdW5jdGlvbiB0aGF0LCB3aGVuIGNhbGxlZCwgd2lsbCBjYW5jZWwgdGhpcyBzdWJzY3JpcHRpb24uXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqL1xuICAgIG9uQ2hhbmdlKHN1YnNjcmlwdGlvbikge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgICAgICAgICB3YXJuT25jZShmYWxzZSwgYHZhbHVlLm9uQ2hhbmdlKGNhbGxiYWNrKSBpcyBkZXByZWNhdGVkLiBTd2l0Y2ggdG8gdmFsdWUub24oXCJjaGFuZ2VcIiwgY2FsbGJhY2spLmApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLm9uKFwiY2hhbmdlXCIsIHN1YnNjcmlwdGlvbik7XG4gICAgfVxuICAgIG9uKGV2ZW50TmFtZSwgY2FsbGJhY2spIHtcbiAgICAgICAgaWYgKCF0aGlzLmV2ZW50c1tldmVudE5hbWVdKSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50c1tldmVudE5hbWVdID0gbmV3IFN1YnNjcmlwdGlvbk1hbmFnZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1bnN1YnNjcmliZSA9IHRoaXMuZXZlbnRzW2V2ZW50TmFtZV0uYWRkKGNhbGxiYWNrKTtcbiAgICAgICAgaWYgKGV2ZW50TmFtZSA9PT0gXCJjaGFuZ2VcIikge1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICB1bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIElmIHdlIGhhdmUgbm8gbW9yZSBjaGFuZ2UgbGlzdGVuZXJzIGJ5IHRoZSBzdGFydFxuICAgICAgICAgICAgICAgICAqIG9mIHRoZSBuZXh0IGZyYW1lLCBzdG9wIGFjdGl2ZSBhbmltYXRpb25zLlxuICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgIGZyYW1lLnJlYWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZXZlbnRzLmNoYW5nZS5nZXRTaXplKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bnN1YnNjcmliZTtcbiAgICB9XG4gICAgY2xlYXJMaXN0ZW5lcnMoKSB7XG4gICAgICAgIGZvciAoY29uc3QgZXZlbnRNYW5hZ2VycyBpbiB0aGlzLmV2ZW50cykge1xuICAgICAgICAgICAgdGhpcy5ldmVudHNbZXZlbnRNYW5hZ2Vyc10uY2xlYXIoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBBdHRhY2hlcyBhIHBhc3NpdmUgZWZmZWN0IHRvIHRoZSBgTW90aW9uVmFsdWVgLlxuICAgICAqL1xuICAgIGF0dGFjaChwYXNzaXZlRWZmZWN0LCBzdG9wUGFzc2l2ZUVmZmVjdCkge1xuICAgICAgICB0aGlzLnBhc3NpdmVFZmZlY3QgPSBwYXNzaXZlRWZmZWN0O1xuICAgICAgICB0aGlzLnN0b3BQYXNzaXZlRWZmZWN0ID0gc3RvcFBhc3NpdmVFZmZlY3Q7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHN0YXRlIG9mIHRoZSBgTW90aW9uVmFsdWVgLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKlxuICAgICAqIGBgYGpzeFxuICAgICAqIGNvbnN0IHggPSB1c2VNb3Rpb25WYWx1ZSgwKVxuICAgICAqIHguc2V0KDEwKVxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHBhcmFtIGxhdGVzdCAtIExhdGVzdCB2YWx1ZSB0byBzZXQuXG4gICAgICogQHBhcmFtIHJlbmRlciAtIFdoZXRoZXIgdG8gbm90aWZ5IHJlbmRlciBzdWJzY3JpYmVycy4gRGVmYXVsdHMgdG8gYHRydWVgXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgc2V0KHYpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhc3NpdmVFZmZlY3QpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQW5kTm90aWZ5KHYpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wYXNzaXZlRWZmZWN0KHYsIHRoaXMudXBkYXRlQW5kTm90aWZ5KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXRXaXRoVmVsb2NpdHkocHJldiwgY3VycmVudCwgZGVsdGEpIHtcbiAgICAgICAgdGhpcy5zZXQoY3VycmVudCk7XG4gICAgICAgIHRoaXMucHJldiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5wcmV2RnJhbWVWYWx1ZSA9IHByZXY7XG4gICAgICAgIHRoaXMucHJldlVwZGF0ZWRBdCA9IHRoaXMudXBkYXRlZEF0IC0gZGVsdGE7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgc3RhdGUgb2YgdGhlIGBNb3Rpb25WYWx1ZWAsIHN0b3BwaW5nIGFueSBhY3RpdmUgYW5pbWF0aW9ucyxcbiAgICAgKiBlZmZlY3RzLCBhbmQgcmVzZXRzIHZlbG9jaXR5IHRvIGAwYC5cbiAgICAgKi9cbiAgICBqdW1wKHYsIGVuZEFuaW1hdGlvbiA9IHRydWUpIHtcbiAgICAgICAgdGhpcy51cGRhdGVBbmROb3RpZnkodik7XG4gICAgICAgIHRoaXMucHJldiA9IHY7XG4gICAgICAgIHRoaXMucHJldlVwZGF0ZWRBdCA9IHRoaXMucHJldkZyYW1lVmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIGVuZEFuaW1hdGlvbiAmJiB0aGlzLnN0b3AoKTtcbiAgICAgICAgaWYgKHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QpXG4gICAgICAgICAgICB0aGlzLnN0b3BQYXNzaXZlRWZmZWN0KCk7XG4gICAgfVxuICAgIGRpcnR5KCkge1xuICAgICAgICB0aGlzLmV2ZW50cy5jaGFuZ2U/Lm5vdGlmeSh0aGlzLmN1cnJlbnQpO1xuICAgIH1cbiAgICBhZGREZXBlbmRlbnQoZGVwZW5kZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5kZXBlbmRlbnRzKSB7XG4gICAgICAgICAgICB0aGlzLmRlcGVuZGVudHMgPSBuZXcgU2V0KCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZXBlbmRlbnRzLmFkZChkZXBlbmRlbnQpO1xuICAgIH1cbiAgICByZW1vdmVEZXBlbmRlbnQoZGVwZW5kZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmRlcGVuZGVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuZGVwZW5kZW50cy5kZWxldGUoZGVwZW5kZW50KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBsYXRlc3Qgc3RhdGUgb2YgYE1vdGlvblZhbHVlYFxuICAgICAqXG4gICAgICogQHJldHVybnMgLSBUaGUgbGF0ZXN0IHN0YXRlIG9mIGBNb3Rpb25WYWx1ZWBcbiAgICAgKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBnZXQoKSB7XG4gICAgICAgIGlmIChjb2xsZWN0TW90aW9uVmFsdWVzLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbGxlY3RNb3Rpb25WYWx1ZXMuY3VycmVudC5wdXNoKHRoaXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnQ7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBnZXRQcmV2aW91cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucHJldjtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbGF0ZXN0IHZlbG9jaXR5IG9mIGBNb3Rpb25WYWx1ZWBcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIC0gVGhlIGxhdGVzdCB2ZWxvY2l0eSBvZiBgTW90aW9uVmFsdWVgLiBSZXR1cm5zIGAwYCBpZiB0aGUgc3RhdGUgaXMgbm9uLW51bWVyaWNhbC5cbiAgICAgKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBnZXRWZWxvY2l0eSgpIHtcbiAgICAgICAgY29uc3QgY3VycmVudFRpbWUgPSB0aW1lLm5vdygpO1xuICAgICAgICBpZiAoIXRoaXMuY2FuVHJhY2tWZWxvY2l0eSB8fFxuICAgICAgICAgICAgdGhpcy5wcmV2RnJhbWVWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBjdXJyZW50VGltZSAtIHRoaXMudXBkYXRlZEF0ID4gTUFYX1ZFTE9DSVRZX0RFTFRBKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkZWx0YSA9IE1hdGgubWluKHRoaXMudXBkYXRlZEF0IC0gdGhpcy5wcmV2VXBkYXRlZEF0LCBNQVhfVkVMT0NJVFlfREVMVEEpO1xuICAgICAgICAvLyBDYXN0cyBiZWNhdXNlIG9mIHBhcnNlRmxvYXQncyBwb29yIHR5cGluZ1xuICAgICAgICByZXR1cm4gdmVsb2NpdHlQZXJTZWNvbmQocGFyc2VGbG9hdCh0aGlzLmN1cnJlbnQpIC1cbiAgICAgICAgICAgIHBhcnNlRmxvYXQodGhpcy5wcmV2RnJhbWVWYWx1ZSksIGRlbHRhKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXJzIGEgbmV3IGFuaW1hdGlvbiB0byBjb250cm9sIHRoaXMgYE1vdGlvblZhbHVlYC4gT25seSBvbmVcbiAgICAgKiBhbmltYXRpb24gY2FuIGRyaXZlIGEgYE1vdGlvblZhbHVlYCBhdCBvbmUgdGltZS5cbiAgICAgKlxuICAgICAqIGBgYGpzeFxuICAgICAqIHZhbHVlLnN0YXJ0KClcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBwYXJhbSBhbmltYXRpb24gLSBBIGZ1bmN0aW9uIHRoYXQgc3RhcnRzIHRoZSBwcm92aWRlZCBhbmltYXRpb25cbiAgICAgKi9cbiAgICBzdGFydChzdGFydEFuaW1hdGlvbikge1xuICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhc0FuaW1hdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uID0gc3RhcnRBbmltYXRpb24ocmVzb2x2ZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5ldmVudHMuYW5pbWF0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5hbmltYXRpb25TdGFydC5ub3RpZnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5ldmVudHMuYW5pbWF0aW9uQ29tcGxldGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50cy5hbmltYXRpb25Db21wbGV0ZS5ub3RpZnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2xlYXJBbmltYXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFN0b3AgdGhlIGN1cnJlbnRseSBhY3RpdmUgYW5pbWF0aW9uLlxuICAgICAqXG4gICAgICogQHB1YmxpY1xuICAgICAqL1xuICAgIHN0b3AoKSB7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbikge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRpb24uc3RvcCgpO1xuICAgICAgICAgICAgaWYgKHRoaXMuZXZlbnRzLmFuaW1hdGlvbkNhbmNlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzLmFuaW1hdGlvbkNhbmNlbC5ub3RpZnkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsZWFyQW5pbWF0aW9uKCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYHRydWVgIGlmIHRoaXMgdmFsdWUgaXMgY3VycmVudGx5IGFuaW1hdGluZy5cbiAgICAgKlxuICAgICAqIEBwdWJsaWNcbiAgICAgKi9cbiAgICBpc0FuaW1hdGluZygpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5hbmltYXRpb247XG4gICAgfVxuICAgIGNsZWFyQW5pbWF0aW9uKCkge1xuICAgICAgICBkZWxldGUgdGhpcy5hbmltYXRpb247XG4gICAgfVxuICAgIC8qKlxuICAgICAqIERlc3Ryb3kgYW5kIGNsZWFuIHVwIHN1YnNjcmliZXJzIHRvIHRoaXMgYE1vdGlvblZhbHVlYC5cbiAgICAgKlxuICAgICAqIFRoZSBgTW90aW9uVmFsdWVgIGhvb2tzIGxpa2UgYHVzZU1vdGlvblZhbHVlYCBhbmQgYHVzZVRyYW5zZm9ybWAgYXV0b21hdGljYWxseVxuICAgICAqIGhhbmRsZSB0aGUgbGlmZWN5Y2xlIG9mIHRoZSByZXR1cm5lZCBgTW90aW9uVmFsdWVgLCBzbyB0aGlzIG1ldGhvZCBpcyBvbmx5IG5lY2Vzc2FyeSBpZiB5b3UndmUgbWFudWFsbHlcbiAgICAgKiBjcmVhdGVkIGEgYE1vdGlvblZhbHVlYCB2aWEgdGhlIGBtb3Rpb25WYWx1ZWAgZnVuY3Rpb24uXG4gICAgICpcbiAgICAgKiBAcHVibGljXG4gICAgICovXG4gICAgZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXBlbmRlbnRzPy5jbGVhcigpO1xuICAgICAgICB0aGlzLmV2ZW50cy5kZXN0cm95Py5ub3RpZnkoKTtcbiAgICAgICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgICAgaWYgKHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcFBhc3NpdmVFZmZlY3QoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbmZ1bmN0aW9uIG1vdGlvblZhbHVlKGluaXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbmV3IE1vdGlvblZhbHVlKGluaXQsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgeyBNb3Rpb25WYWx1ZSwgY29sbGVjdE1vdGlvblZhbHVlcywgbW90aW9uVmFsdWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/auto.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/auto.mjs ***! + \**************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ auto: () => (/* binding */ auto)\n/* harmony export */ });\n/**\n * ValueType for \"auto\"\n */\nconst auto = {\n test: (v) => v === \"auto\",\n parse: (v) => v,\n};\n\n\n//# sourceMappingURL=auto.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvYXV0by5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVnQjtBQUNoQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvYXV0by5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWYWx1ZVR5cGUgZm9yIFwiYXV0b1wiXG4gKi9cbmNvbnN0IGF1dG8gPSB7XG4gICAgdGVzdDogKHYpID0+IHYgPT09IFwiYXV0b1wiLFxuICAgIHBhcnNlOiAodikgPT4gdixcbn07XG5cbmV4cG9ydCB7IGF1dG8gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWF1dG8ubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/auto.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/hex.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hex: () => (/* binding */ hex)\n/* harmony export */ });\n/* harmony import */ var _rgba_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\n\n\nfunction parseHex(v) {\n let r = \"\";\n let g = \"\";\n let b = \"\";\n let a = \"\";\n // If we have 6 characters, ie #FF0000\n if (v.length > 5) {\n r = v.substring(1, 3);\n g = v.substring(3, 5);\n b = v.substring(5, 7);\n a = v.substring(7, 9);\n // Or we have 3 characters, ie #F00\n }\n else {\n r = v.substring(1, 2);\n g = v.substring(2, 3);\n b = v.substring(3, 4);\n a = v.substring(4, 5);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.isColorString)(\"#\"),\n parse: parseHex,\n transform: _rgba_mjs__WEBPACK_IMPORTED_MODULE_1__.rgba.transform,\n};\n\n\n//# sourceMappingURL=hex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaGV4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0M7QUFDVTs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IseURBQWE7QUFDckM7QUFDQSxlQUFlLDJDQUFJO0FBQ25COztBQUVlO0FBQ2YiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL2hleC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmdiYSB9IGZyb20gJy4vcmdiYS5tanMnO1xuaW1wb3J0IHsgaXNDb2xvclN0cmluZyB9IGZyb20gJy4vdXRpbHMubWpzJztcblxuZnVuY3Rpb24gcGFyc2VIZXgodikge1xuICAgIGxldCByID0gXCJcIjtcbiAgICBsZXQgZyA9IFwiXCI7XG4gICAgbGV0IGIgPSBcIlwiO1xuICAgIGxldCBhID0gXCJcIjtcbiAgICAvLyBJZiB3ZSBoYXZlIDYgY2hhcmFjdGVycywgaWUgI0ZGMDAwMFxuICAgIGlmICh2Lmxlbmd0aCA+IDUpIHtcbiAgICAgICAgciA9IHYuc3Vic3RyaW5nKDEsIDMpO1xuICAgICAgICBnID0gdi5zdWJzdHJpbmcoMywgNSk7XG4gICAgICAgIGIgPSB2LnN1YnN0cmluZyg1LCA3KTtcbiAgICAgICAgYSA9IHYuc3Vic3RyaW5nKDcsIDkpO1xuICAgICAgICAvLyBPciB3ZSBoYXZlIDMgY2hhcmFjdGVycywgaWUgI0YwMFxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgciA9IHYuc3Vic3RyaW5nKDEsIDIpO1xuICAgICAgICBnID0gdi5zdWJzdHJpbmcoMiwgMyk7XG4gICAgICAgIGIgPSB2LnN1YnN0cmluZygzLCA0KTtcbiAgICAgICAgYSA9IHYuc3Vic3RyaW5nKDQsIDUpO1xuICAgICAgICByICs9IHI7XG4gICAgICAgIGcgKz0gZztcbiAgICAgICAgYiArPSBiO1xuICAgICAgICBhICs9IGE7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlZDogcGFyc2VJbnQociwgMTYpLFxuICAgICAgICBncmVlbjogcGFyc2VJbnQoZywgMTYpLFxuICAgICAgICBibHVlOiBwYXJzZUludChiLCAxNiksXG4gICAgICAgIGFscGhhOiBhID8gcGFyc2VJbnQoYSwgMTYpIC8gMjU1IDogMSxcbiAgICB9O1xufVxuY29uc3QgaGV4ID0ge1xuICAgIHRlc3Q6IC8qQF9fUFVSRV9fKi8gaXNDb2xvclN0cmluZyhcIiNcIiksXG4gICAgcGFyc2U6IHBhcnNlSGV4LFxuICAgIHRyYW5zZm9ybTogcmdiYS50cmFuc2Zvcm0sXG59O1xuXG5leHBvcnQgeyBoZXggfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hslaToRgba: () => (/* binding */ hslaToRgba)\n/* harmony export */ });\n// Adapted from https://gist.github.com/mjackson/5311256\nfunction hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\n\n//# sourceMappingURL=hsla-to-rgba.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaHNsYS10by1yZ2JhLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtQ0FBbUM7QUFDekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXNCO0FBQ3RCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9jb2xvci9oc2xhLXRvLXJnYmEubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFkYXB0ZWQgZnJvbSBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tamFja3Nvbi81MzExMjU2XG5mdW5jdGlvbiBodWVUb1JnYihwLCBxLCB0KSB7XG4gICAgaWYgKHQgPCAwKVxuICAgICAgICB0ICs9IDE7XG4gICAgaWYgKHQgPiAxKVxuICAgICAgICB0IC09IDE7XG4gICAgaWYgKHQgPCAxIC8gNilcbiAgICAgICAgcmV0dXJuIHAgKyAocSAtIHApICogNiAqIHQ7XG4gICAgaWYgKHQgPCAxIC8gMilcbiAgICAgICAgcmV0dXJuIHE7XG4gICAgaWYgKHQgPCAyIC8gMylcbiAgICAgICAgcmV0dXJuIHAgKyAocSAtIHApICogKDIgLyAzIC0gdCkgKiA2O1xuICAgIHJldHVybiBwO1xufVxuZnVuY3Rpb24gaHNsYVRvUmdiYSh7IGh1ZSwgc2F0dXJhdGlvbiwgbGlnaHRuZXNzLCBhbHBoYSB9KSB7XG4gICAgaHVlIC89IDM2MDtcbiAgICBzYXR1cmF0aW9uIC89IDEwMDtcbiAgICBsaWdodG5lc3MgLz0gMTAwO1xuICAgIGxldCByZWQgPSAwO1xuICAgIGxldCBncmVlbiA9IDA7XG4gICAgbGV0IGJsdWUgPSAwO1xuICAgIGlmICghc2F0dXJhdGlvbikge1xuICAgICAgICByZWQgPSBncmVlbiA9IGJsdWUgPSBsaWdodG5lc3M7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICBjb25zdCBxID0gbGlnaHRuZXNzIDwgMC41XG4gICAgICAgICAgICA/IGxpZ2h0bmVzcyAqICgxICsgc2F0dXJhdGlvbilcbiAgICAgICAgICAgIDogbGlnaHRuZXNzICsgc2F0dXJhdGlvbiAtIGxpZ2h0bmVzcyAqIHNhdHVyYXRpb247XG4gICAgICAgIGNvbnN0IHAgPSAyICogbGlnaHRuZXNzIC0gcTtcbiAgICAgICAgcmVkID0gaHVlVG9SZ2IocCwgcSwgaHVlICsgMSAvIDMpO1xuICAgICAgICBncmVlbiA9IGh1ZVRvUmdiKHAsIHEsIGh1ZSk7XG4gICAgICAgIGJsdWUgPSBodWVUb1JnYihwLCBxLCBodWUgLSAxIC8gMyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHJlZDogTWF0aC5yb3VuZChyZWQgKiAyNTUpLFxuICAgICAgICBncmVlbjogTWF0aC5yb3VuZChncmVlbiAqIDI1NSksXG4gICAgICAgIGJsdWU6IE1hdGgucm91bmQoYmx1ZSAqIDI1NSksXG4gICAgICAgIGFscGhhLFxuICAgIH07XG59XG5cbmV4cG9ydCB7IGhzbGFUb1JnYmEgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhzbGEtdG8tcmdiYS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hsla: () => (/* binding */ hsla)\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\n\n\n\n\nconst hsla = {\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.isColorString)(\"hsl\", \"hue\"),\n parse: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.splitColor)(\"hue\", \"saturation\", \"lightness\"),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return (\"hsla(\" +\n Math.round(hue) +\n \", \" +\n _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent.transform((0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(saturation)) +\n \", \" +\n _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent.transform((0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(lightness)) +\n \", \" +\n (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_2__.sanitize)(_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha.transform(alpha$1)) +\n \")\");\n },\n};\n\n\n//# sourceMappingURL=hsla.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaHNsYS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBNkM7QUFDRTtBQUNFO0FBQ087O0FBRXhEO0FBQ0Esd0JBQXdCLHlEQUFhO0FBQ3JDLHlCQUF5QixzREFBVTtBQUNuQyxrQkFBa0IsZ0RBQWdEO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBLFlBQVksdURBQU8sV0FBVyw2REFBUTtBQUN0QztBQUNBLFlBQVksdURBQU8sV0FBVyw2REFBUTtBQUN0QztBQUNBLFlBQVksNkRBQVEsQ0FBQyxxREFBSztBQUMxQjtBQUNBLEtBQUs7QUFDTDs7QUFFZ0I7QUFDaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL2hzbGEubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFscGhhIH0gZnJvbSAnLi4vbnVtYmVycy9pbmRleC5tanMnO1xuaW1wb3J0IHsgcGVyY2VudCB9IGZyb20gJy4uL251bWJlcnMvdW5pdHMubWpzJztcbmltcG9ydCB7IHNhbml0aXplIH0gZnJvbSAnLi4vdXRpbHMvc2FuaXRpemUubWpzJztcbmltcG9ydCB7IGlzQ29sb3JTdHJpbmcsIHNwbGl0Q29sb3IgfSBmcm9tICcuL3V0aWxzLm1qcyc7XG5cbmNvbnN0IGhzbGEgPSB7XG4gICAgdGVzdDogLypAX19QVVJFX18qLyBpc0NvbG9yU3RyaW5nKFwiaHNsXCIsIFwiaHVlXCIpLFxuICAgIHBhcnNlOiAvKkBfX1BVUkVfXyovIHNwbGl0Q29sb3IoXCJodWVcIiwgXCJzYXR1cmF0aW9uXCIsIFwibGlnaHRuZXNzXCIpLFxuICAgIHRyYW5zZm9ybTogKHsgaHVlLCBzYXR1cmF0aW9uLCBsaWdodG5lc3MsIGFscGhhOiBhbHBoYSQxID0gMSB9KSA9PiB7XG4gICAgICAgIHJldHVybiAoXCJoc2xhKFwiICtcbiAgICAgICAgICAgIE1hdGgucm91bmQoaHVlKSArXG4gICAgICAgICAgICBcIiwgXCIgK1xuICAgICAgICAgICAgcGVyY2VudC50cmFuc2Zvcm0oc2FuaXRpemUoc2F0dXJhdGlvbikpICtcbiAgICAgICAgICAgIFwiLCBcIiArXG4gICAgICAgICAgICBwZXJjZW50LnRyYW5zZm9ybShzYW5pdGl6ZShsaWdodG5lc3MpKSArXG4gICAgICAgICAgICBcIiwgXCIgK1xuICAgICAgICAgICAgc2FuaXRpemUoYWxwaGEudHJhbnNmb3JtKGFscGhhJDEpKSArXG4gICAgICAgICAgICBcIilcIik7XG4gICAgfSxcbn07XG5cbmV4cG9ydCB7IGhzbGEgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhzbGEubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/index.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ color: () => (/* binding */ color)\n/* harmony export */ });\n/* harmony import */ var _hex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./hex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hex.mjs\");\n/* harmony import */ var _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hsla.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/hsla.mjs\");\n/* harmony import */ var _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rgba.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\");\n\n\n\n\nconst color = {\n test: (v) => _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.test(v) || _hex_mjs__WEBPACK_IMPORTED_MODULE_1__.hex.test(v) || _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.test(v),\n parse: (v) => {\n if (_rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.test(v)) {\n return _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.parse(v);\n }\n else if (_hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.test(v)) {\n return _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.parse(v);\n }\n else {\n return _hex_mjs__WEBPACK_IMPORTED_MODULE_1__.hex.parse(v);\n }\n },\n transform: (v) => {\n return typeof v === \"string\"\n ? v\n : v.hasOwnProperty(\"red\")\n ? _rgba_mjs__WEBPACK_IMPORTED_MODULE_0__.rgba.transform(v)\n : _hsla_mjs__WEBPACK_IMPORTED_MODULE_2__.hsla.transform(v);\n },\n getAnimatableNone: (v) => {\n const parsed = color.parse(v);\n parsed.alpha = 0;\n return color.transform(parsed);\n },\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaW5kZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZ0M7QUFDRTtBQUNBOztBQUVsQztBQUNBLGlCQUFpQiwyQ0FBSSxZQUFZLHlDQUFHLFlBQVksMkNBQUk7QUFDcEQ7QUFDQSxZQUFZLDJDQUFJO0FBQ2hCLG1CQUFtQiwyQ0FBSTtBQUN2QjtBQUNBLGlCQUFpQiwyQ0FBSTtBQUNyQixtQkFBbUIsMkNBQUk7QUFDdkI7QUFDQTtBQUNBLG1CQUFtQix5Q0FBRztBQUN0QjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiwyQ0FBSTtBQUN0QixrQkFBa0IsMkNBQUk7QUFDdEIsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVpQjtBQUNqQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhleCB9IGZyb20gJy4vaGV4Lm1qcyc7XG5pbXBvcnQgeyBoc2xhIH0gZnJvbSAnLi9oc2xhLm1qcyc7XG5pbXBvcnQgeyByZ2JhIH0gZnJvbSAnLi9yZ2JhLm1qcyc7XG5cbmNvbnN0IGNvbG9yID0ge1xuICAgIHRlc3Q6ICh2KSA9PiByZ2JhLnRlc3QodikgfHwgaGV4LnRlc3QodikgfHwgaHNsYS50ZXN0KHYpLFxuICAgIHBhcnNlOiAodikgPT4ge1xuICAgICAgICBpZiAocmdiYS50ZXN0KHYpKSB7XG4gICAgICAgICAgICByZXR1cm4gcmdiYS5wYXJzZSh2KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChoc2xhLnRlc3QodikpIHtcbiAgICAgICAgICAgIHJldHVybiBoc2xhLnBhcnNlKHYpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGhleC5wYXJzZSh2KTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgdHJhbnNmb3JtOiAodikgPT4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHYgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgID8gdlxuICAgICAgICAgICAgOiB2Lmhhc093blByb3BlcnR5KFwicmVkXCIpXG4gICAgICAgICAgICAgICAgPyByZ2JhLnRyYW5zZm9ybSh2KVxuICAgICAgICAgICAgICAgIDogaHNsYS50cmFuc2Zvcm0odik7XG4gICAgfSxcbiAgICBnZXRBbmltYXRhYmxlTm9uZTogKHYpID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gY29sb3IucGFyc2Uodik7XG4gICAgICAgIHBhcnNlZC5hbHBoYSA9IDA7XG4gICAgICAgIHJldHVybiBjb2xvci50cmFuc2Zvcm0ocGFyc2VkKTtcbiAgICB9LFxufTtcblxuZXhwb3J0IHsgY29sb3IgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ rgbUnit: () => (/* binding */ rgbUnit),\n/* harmony export */ rgba: () => (/* binding */ rgba)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\");\n\n\n\n\n\nconst clampRgbUnit = (v) => (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(0, 255, v);\nconst rgbUnit = {\n ..._numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.number,\n transform: (v) => Math.round(clampRgbUnit(v)),\n};\nconst rgba = {\n test: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.isColorString)(\"rgb\", \"red\"),\n parse: /*@__PURE__*/ (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.splitColor)(\"red\", \"green\", \"blue\"),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => \"rgba(\" +\n rgbUnit.transform(red) +\n \", \" +\n rgbUnit.transform(green) +\n \", \" +\n rgbUnit.transform(blue) +\n \", \" +\n (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__.sanitize)(_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.alpha.transform(alpha$1)) +\n \")\",\n};\n\n\n//# sourceMappingURL=rgba.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvcmdiYS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXFDO0FBQ2dCO0FBQ0o7QUFDTzs7QUFFeEQsNEJBQTRCLG1EQUFLO0FBQ2pDO0FBQ0EsT0FBTyxzREFBTTtBQUNiO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qix5REFBYTtBQUNyQyx5QkFBeUIsc0RBQVU7QUFDbkMsa0JBQWtCLHNDQUFzQztBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLDZEQUFRLENBQUMscURBQUs7QUFDdEI7QUFDQTs7QUFFeUI7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL3JnYmEubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsYW1wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IG51bWJlciwgYWxwaGEgfSBmcm9tICcuLi9udW1iZXJzL2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBzYW5pdGl6ZSB9IGZyb20gJy4uL3V0aWxzL3Nhbml0aXplLm1qcyc7XG5pbXBvcnQgeyBpc0NvbG9yU3RyaW5nLCBzcGxpdENvbG9yIH0gZnJvbSAnLi91dGlscy5tanMnO1xuXG5jb25zdCBjbGFtcFJnYlVuaXQgPSAodikgPT4gY2xhbXAoMCwgMjU1LCB2KTtcbmNvbnN0IHJnYlVuaXQgPSB7XG4gICAgLi4ubnVtYmVyLFxuICAgIHRyYW5zZm9ybTogKHYpID0+IE1hdGgucm91bmQoY2xhbXBSZ2JVbml0KHYpKSxcbn07XG5jb25zdCByZ2JhID0ge1xuICAgIHRlc3Q6IC8qQF9fUFVSRV9fKi8gaXNDb2xvclN0cmluZyhcInJnYlwiLCBcInJlZFwiKSxcbiAgICBwYXJzZTogLypAX19QVVJFX18qLyBzcGxpdENvbG9yKFwicmVkXCIsIFwiZ3JlZW5cIiwgXCJibHVlXCIpLFxuICAgIHRyYW5zZm9ybTogKHsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGE6IGFscGhhJDEgPSAxIH0pID0+IFwicmdiYShcIiArXG4gICAgICAgIHJnYlVuaXQudHJhbnNmb3JtKHJlZCkgK1xuICAgICAgICBcIiwgXCIgK1xuICAgICAgICByZ2JVbml0LnRyYW5zZm9ybShncmVlbikgK1xuICAgICAgICBcIiwgXCIgK1xuICAgICAgICByZ2JVbml0LnRyYW5zZm9ybShibHVlKSArXG4gICAgICAgIFwiLCBcIiArXG4gICAgICAgIHNhbml0aXplKGFscGhhLnRyYW5zZm9ybShhbHBoYSQxKSkgK1xuICAgICAgICBcIilcIixcbn07XG5cbmV4cG9ydCB7IHJnYlVuaXQsIHJnYmEgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJnYmEubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/rgba.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/color/utils.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isColorString: () => (/* binding */ isColorString),\n/* harmony export */ splitColor: () => (/* binding */ splitColor)\n/* harmony export */ });\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n/* harmony import */ var _utils_is_nullish_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/is-nullish.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs\");\n/* harmony import */ var _utils_single_color_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/single-color-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs\");\n\n\n\n\n/**\n * Returns true if the provided string is a color, ie rgba(0,0,0,0) or #000,\n * but false if a number or multiple colors\n */\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((typeof v === \"string\" &&\n _utils_single_color_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.singleColorRegex.test(v) &&\n v.startsWith(type)) ||\n (testProp &&\n !(0,_utils_is_nullish_mjs__WEBPACK_IMPORTED_MODULE_1__.isNullish)(v) &&\n Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (typeof v !== \"string\")\n return v;\n const [a, b, c, alpha] = v.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_2__.floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\n\n//# sourceMappingURL=utils.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29sb3IvdXRpbHMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQXNEO0FBQ0Y7QUFDZTs7QUFFbkU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSwyRUFBZ0I7QUFDeEI7QUFDQTtBQUNBLGFBQWEsZ0VBQVM7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFDQUFxQyw4REFBVTtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFcUM7QUFDckMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbG9yL3V0aWxzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmbG9hdFJlZ2V4IH0gZnJvbSAnLi4vdXRpbHMvZmxvYXQtcmVnZXgubWpzJztcbmltcG9ydCB7IGlzTnVsbGlzaCB9IGZyb20gJy4uL3V0aWxzL2lzLW51bGxpc2gubWpzJztcbmltcG9ydCB7IHNpbmdsZUNvbG9yUmVnZXggfSBmcm9tICcuLi91dGlscy9zaW5nbGUtY29sb3ItcmVnZXgubWpzJztcblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgdGhlIHByb3ZpZGVkIHN0cmluZyBpcyBhIGNvbG9yLCBpZSByZ2JhKDAsMCwwLDApIG9yICMwMDAsXG4gKiBidXQgZmFsc2UgaWYgYSBudW1iZXIgb3IgbXVsdGlwbGUgY29sb3JzXG4gKi9cbmNvbnN0IGlzQ29sb3JTdHJpbmcgPSAodHlwZSwgdGVzdFByb3ApID0+ICh2KSA9PiB7XG4gICAgcmV0dXJuIEJvb2xlYW4oKHR5cGVvZiB2ID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgIHNpbmdsZUNvbG9yUmVnZXgudGVzdCh2KSAmJlxuICAgICAgICB2LnN0YXJ0c1dpdGgodHlwZSkpIHx8XG4gICAgICAgICh0ZXN0UHJvcCAmJlxuICAgICAgICAgICAgIWlzTnVsbGlzaCh2KSAmJlxuICAgICAgICAgICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHYsIHRlc3RQcm9wKSkpO1xufTtcbmNvbnN0IHNwbGl0Q29sb3IgPSAoYU5hbWUsIGJOYW1lLCBjTmFtZSkgPT4gKHYpID0+IHtcbiAgICBpZiAodHlwZW9mIHYgIT09IFwic3RyaW5nXCIpXG4gICAgICAgIHJldHVybiB2O1xuICAgIGNvbnN0IFthLCBiLCBjLCBhbHBoYV0gPSB2Lm1hdGNoKGZsb2F0UmVnZXgpO1xuICAgIHJldHVybiB7XG4gICAgICAgIFthTmFtZV06IHBhcnNlRmxvYXQoYSksXG4gICAgICAgIFtiTmFtZV06IHBhcnNlRmxvYXQoYiksXG4gICAgICAgIFtjTmFtZV06IHBhcnNlRmxvYXQoYyksXG4gICAgICAgIGFscGhhOiBhbHBoYSAhPT0gdW5kZWZpbmVkID8gcGFyc2VGbG9hdChhbHBoYSkgOiAxLFxuICAgIH07XG59O1xuXG5leHBvcnQgeyBpc0NvbG9yU3RyaW5nLCBzcGxpdENvbG9yIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD11dGlscy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/utils.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ filter: () => (/* binding */ filter)\n/* harmony export */ });\n/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n\n\n\n/**\n * Properties that should default to 1 or 100%\n */\nconst maxDefaults = new Set([\"brightness\", \"contrast\", \"saturate\", \"opacity\"]);\nfunction applyDefaultFilter(v) {\n const [name, value] = v.slice(0, -1).split(\"(\");\n if (name === \"drop-shadow\")\n return v;\n const [number] = value.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, \"\");\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + \"(\" + defaultValue + unit + \")\";\n}\nconst functionRegex = /\\b([a-z-]*)\\(.*?\\)/gu;\nconst filter = {\n ..._index_mjs__WEBPACK_IMPORTED_MODULE_1__.complex,\n getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(\" \") : v;\n },\n};\n\n\n//# sourceMappingURL=filter.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29tcGxleC9maWx0ZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFzQztBQUNnQjs7QUFFdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQyw4REFBVTtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sK0NBQU87QUFDZDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRWtCO0FBQ2xCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9jb21wbGV4L2ZpbHRlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGxleCB9IGZyb20gJy4vaW5kZXgubWpzJztcbmltcG9ydCB7IGZsb2F0UmVnZXggfSBmcm9tICcuLi91dGlscy9mbG9hdC1yZWdleC5tanMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhhdCBzaG91bGQgZGVmYXVsdCB0byAxIG9yIDEwMCVcbiAqL1xuY29uc3QgbWF4RGVmYXVsdHMgPSBuZXcgU2V0KFtcImJyaWdodG5lc3NcIiwgXCJjb250cmFzdFwiLCBcInNhdHVyYXRlXCIsIFwib3BhY2l0eVwiXSk7XG5mdW5jdGlvbiBhcHBseURlZmF1bHRGaWx0ZXIodikge1xuICAgIGNvbnN0IFtuYW1lLCB2YWx1ZV0gPSB2LnNsaWNlKDAsIC0xKS5zcGxpdChcIihcIik7XG4gICAgaWYgKG5hbWUgPT09IFwiZHJvcC1zaGFkb3dcIilcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgY29uc3QgW251bWJlcl0gPSB2YWx1ZS5tYXRjaChmbG9hdFJlZ2V4KSB8fCBbXTtcbiAgICBpZiAoIW51bWJlcilcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgY29uc3QgdW5pdCA9IHZhbHVlLnJlcGxhY2UobnVtYmVyLCBcIlwiKTtcbiAgICBsZXQgZGVmYXVsdFZhbHVlID0gbWF4RGVmYXVsdHMuaGFzKG5hbWUpID8gMSA6IDA7XG4gICAgaWYgKG51bWJlciAhPT0gdmFsdWUpXG4gICAgICAgIGRlZmF1bHRWYWx1ZSAqPSAxMDA7XG4gICAgcmV0dXJuIG5hbWUgKyBcIihcIiArIGRlZmF1bHRWYWx1ZSArIHVuaXQgKyBcIilcIjtcbn1cbmNvbnN0IGZ1bmN0aW9uUmVnZXggPSAvXFxiKFthLXotXSopXFwoLio/XFwpL2d1O1xuY29uc3QgZmlsdGVyID0ge1xuICAgIC4uLmNvbXBsZXgsXG4gICAgZ2V0QW5pbWF0YWJsZU5vbmU6ICh2KSA9PiB7XG4gICAgICAgIGNvbnN0IGZ1bmN0aW9ucyA9IHYubWF0Y2goZnVuY3Rpb25SZWdleCk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbnMgPyBmdW5jdGlvbnMubWFwKGFwcGx5RGVmYXVsdEZpbHRlcikuam9pbihcIiBcIikgOiB2O1xuICAgIH0sXG59O1xuXG5leHBvcnQgeyBmaWx0ZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWZpbHRlci5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/complex/index.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ analyseComplexValue: () => (/* binding */ analyseComplexValue),\n/* harmony export */ complex: () => (/* binding */ complex)\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _utils_color_regex_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/color-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs\");\n/* harmony import */ var _utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/float-regex.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\");\n/* harmony import */ var _utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/sanitize.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\");\n\n\n\n\n\nfunction test(v) {\n return (isNaN(v) &&\n typeof v === \"string\" &&\n (v.match(_utils_float_regex_mjs__WEBPACK_IMPORTED_MODULE_0__.floatRegex)?.length || 0) +\n (v.match(_utils_color_regex_mjs__WEBPACK_IMPORTED_MODULE_1__.colorRegex)?.length || 0) >\n 0);\n}\nconst NUMBER_TOKEN = \"number\";\nconst COLOR_TOKEN = \"color\";\nconst VAR_TOKEN = \"var\";\nconst VAR_FUNCTION_TOKEN = \"var(\";\nconst SPLIT_TOKEN = \"${}\";\n// this regex consists of the `singleCssVariableRegex|rgbHSLValueRegex|digitRegex`\nconst complexRegex = /var\\s*\\(\\s*--(?:[\\w-]+\\s*|[\\w-]+\\s*,(?:\\s*[^)(\\s]|\\s*\\((?:[^)(]|\\([^)(]*\\))*\\))+\\s*)\\)|#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\)|-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/giu;\nfunction analyseComplexValue(value) {\n const originalValue = value.toString();\n const values = [];\n const indexes = {\n color: [],\n number: [],\n var: [],\n };\n const types = [];\n let i = 0;\n const tokenised = originalValue.replace(complexRegex, (parsedValue) => {\n if (_color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.test(parsedValue)) {\n indexes.color.push(i);\n types.push(COLOR_TOKEN);\n values.push(_color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.parse(parsedValue));\n }\n else if (parsedValue.startsWith(VAR_FUNCTION_TOKEN)) {\n indexes.var.push(i);\n types.push(VAR_TOKEN);\n values.push(parsedValue);\n }\n else {\n indexes.number.push(i);\n types.push(NUMBER_TOKEN);\n values.push(parseFloat(parsedValue));\n }\n ++i;\n return SPLIT_TOKEN;\n });\n const split = tokenised.split(SPLIT_TOKEN);\n return { values, split, indexes, types };\n}\nfunction parseComplexValue(v) {\n return analyseComplexValue(v).values;\n}\nfunction createTransformer(source) {\n const { split, types } = analyseComplexValue(source);\n const numSections = split.length;\n return (v) => {\n let output = \"\";\n for (let i = 0; i < numSections; i++) {\n output += split[i];\n if (v[i] !== undefined) {\n const type = types[i];\n if (type === NUMBER_TOKEN) {\n output += (0,_utils_sanitize_mjs__WEBPACK_IMPORTED_MODULE_3__.sanitize)(v[i]);\n }\n else if (type === COLOR_TOKEN) {\n output += _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.transform(v[i]);\n }\n else {\n output += v[i];\n }\n }\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === \"number\" ? 0 : _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.test(v) ? _color_index_mjs__WEBPACK_IMPORTED_MODULE_2__.color.getAnimatableNone(v) : v;\nfunction getAnimatableNone(v) {\n const parsed = parseComplexValue(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = {\n test,\n parse: parseComplexValue,\n createTransformer,\n getAnimatableNone,\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29tcGxleC9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTJDO0FBQ1c7QUFDQTtBQUNMOztBQUVqRDtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsOERBQVU7QUFDM0IscUJBQXFCLDhEQUFVO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QjtBQUN4QjtBQUNBLHNIQUFzSCxJQUFJLHFDQUFxQyxFQUFFO0FBQ2pLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLG1EQUFLO0FBQ2pCO0FBQ0E7QUFDQSx3QkFBd0IsbURBQUs7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksZUFBZTtBQUMzQjtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsaUJBQWlCO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLDZEQUFRO0FBQ3RDO0FBQ0E7QUFDQSw4QkFBOEIsbURBQUs7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0VBQWdFLG1EQUFLLFdBQVcsbURBQUs7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFd0M7QUFDeEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL2NvbXBsZXgvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbG9yIH0gZnJvbSAnLi4vY29sb3IvaW5kZXgubWpzJztcbmltcG9ydCB7IGNvbG9yUmVnZXggfSBmcm9tICcuLi91dGlscy9jb2xvci1yZWdleC5tanMnO1xuaW1wb3J0IHsgZmxvYXRSZWdleCB9IGZyb20gJy4uL3V0aWxzL2Zsb2F0LXJlZ2V4Lm1qcyc7XG5pbXBvcnQgeyBzYW5pdGl6ZSB9IGZyb20gJy4uL3V0aWxzL3Nhbml0aXplLm1qcyc7XG5cbmZ1bmN0aW9uIHRlc3Qodikge1xuICAgIHJldHVybiAoaXNOYU4odikgJiZcbiAgICAgICAgdHlwZW9mIHYgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgKHYubWF0Y2goZmxvYXRSZWdleCk/Lmxlbmd0aCB8fCAwKSArXG4gICAgICAgICAgICAodi5tYXRjaChjb2xvclJlZ2V4KT8ubGVuZ3RoIHx8IDApID5cbiAgICAgICAgICAgIDApO1xufVxuY29uc3QgTlVNQkVSX1RPS0VOID0gXCJudW1iZXJcIjtcbmNvbnN0IENPTE9SX1RPS0VOID0gXCJjb2xvclwiO1xuY29uc3QgVkFSX1RPS0VOID0gXCJ2YXJcIjtcbmNvbnN0IFZBUl9GVU5DVElPTl9UT0tFTiA9IFwidmFyKFwiO1xuY29uc3QgU1BMSVRfVE9LRU4gPSBcIiR7fVwiO1xuLy8gdGhpcyByZWdleCBjb25zaXN0cyBvZiB0aGUgYHNpbmdsZUNzc1ZhcmlhYmxlUmVnZXh8cmdiSFNMVmFsdWVSZWdleHxkaWdpdFJlZ2V4YFxuY29uc3QgY29tcGxleFJlZ2V4ID0gL3ZhclxccypcXChcXHMqLS0oPzpbXFx3LV0rXFxzKnxbXFx3LV0rXFxzKiwoPzpcXHMqW14pKFxcc118XFxzKlxcKCg/OlteKShdfFxcKFteKShdKlxcKSkqXFwpKStcXHMqKVxcKXwjW1xcZGEtZl17Myw4fXwoPzpyZ2J8aHNsKWE/XFwoKD86LT9bXFxkLl0rJT9bLFxcc10rKXsyfS0/W1xcZC5dKyU/XFxzKig/OlssL11cXHMqKT8oPzpcXGJcXGQrKD86XFwuXFxkKyk/fFxcLlxcZCspPyU/XFwpfC0/KD86XFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKS9naXU7XG5mdW5jdGlvbiBhbmFseXNlQ29tcGxleFZhbHVlKHZhbHVlKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgdmFsdWVzID0gW107XG4gICAgY29uc3QgaW5kZXhlcyA9IHtcbiAgICAgICAgY29sb3I6IFtdLFxuICAgICAgICBudW1iZXI6IFtdLFxuICAgICAgICB2YXI6IFtdLFxuICAgIH07XG4gICAgY29uc3QgdHlwZXMgPSBbXTtcbiAgICBsZXQgaSA9IDA7XG4gICAgY29uc3QgdG9rZW5pc2VkID0gb3JpZ2luYWxWYWx1ZS5yZXBsYWNlKGNvbXBsZXhSZWdleCwgKHBhcnNlZFZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChjb2xvci50ZXN0KHBhcnNlZFZhbHVlKSkge1xuICAgICAgICAgICAgaW5kZXhlcy5jb2xvci5wdXNoKGkpO1xuICAgICAgICAgICAgdHlwZXMucHVzaChDT0xPUl9UT0tFTik7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaChjb2xvci5wYXJzZShwYXJzZWRWYWx1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHBhcnNlZFZhbHVlLnN0YXJ0c1dpdGgoVkFSX0ZVTkNUSU9OX1RPS0VOKSkge1xuICAgICAgICAgICAgaW5kZXhlcy52YXIucHVzaChpKTtcbiAgICAgICAgICAgIHR5cGVzLnB1c2goVkFSX1RPS0VOKTtcbiAgICAgICAgICAgIHZhbHVlcy5wdXNoKHBhcnNlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGluZGV4ZXMubnVtYmVyLnB1c2goaSk7XG4gICAgICAgICAgICB0eXBlcy5wdXNoKE5VTUJFUl9UT0tFTik7XG4gICAgICAgICAgICB2YWx1ZXMucHVzaChwYXJzZUZsb2F0KHBhcnNlZFZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgKytpO1xuICAgICAgICByZXR1cm4gU1BMSVRfVE9LRU47XG4gICAgfSk7XG4gICAgY29uc3Qgc3BsaXQgPSB0b2tlbmlzZWQuc3BsaXQoU1BMSVRfVE9LRU4pO1xuICAgIHJldHVybiB7IHZhbHVlcywgc3BsaXQsIGluZGV4ZXMsIHR5cGVzIH07XG59XG5mdW5jdGlvbiBwYXJzZUNvbXBsZXhWYWx1ZSh2KSB7XG4gICAgcmV0dXJuIGFuYWx5c2VDb21wbGV4VmFsdWUodikudmFsdWVzO1xufVxuZnVuY3Rpb24gY3JlYXRlVHJhbnNmb3JtZXIoc291cmNlKSB7XG4gICAgY29uc3QgeyBzcGxpdCwgdHlwZXMgfSA9IGFuYWx5c2VDb21wbGV4VmFsdWUoc291cmNlKTtcbiAgICBjb25zdCBudW1TZWN0aW9ucyA9IHNwbGl0Lmxlbmd0aDtcbiAgICByZXR1cm4gKHYpID0+IHtcbiAgICAgICAgbGV0IG91dHB1dCA9IFwiXCI7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtU2VjdGlvbnM7IGkrKykge1xuICAgICAgICAgICAgb3V0cHV0ICs9IHNwbGl0W2ldO1xuICAgICAgICAgICAgaWYgKHZbaV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0eXBlc1tpXTtcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gTlVNQkVSX1RPS0VOKSB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSBzYW5pdGl6ZSh2W2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gQ09MT1JfVE9LRU4pIHtcbiAgICAgICAgICAgICAgICAgICAgb3V0cHV0ICs9IGNvbG9yLnRyYW5zZm9ybSh2W2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG91dHB1dCArPSB2W2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0cHV0O1xuICAgIH07XG59XG5jb25zdCBjb252ZXJ0TnVtYmVyc1RvWmVybyA9ICh2KSA9PiB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIiA/IDAgOiBjb2xvci50ZXN0KHYpID8gY29sb3IuZ2V0QW5pbWF0YWJsZU5vbmUodikgOiB2O1xuZnVuY3Rpb24gZ2V0QW5pbWF0YWJsZU5vbmUodikge1xuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQ29tcGxleFZhbHVlKHYpO1xuICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gY3JlYXRlVHJhbnNmb3JtZXIodik7XG4gICAgcmV0dXJuIHRyYW5zZm9ybWVyKHBhcnNlZC5tYXAoY29udmVydE51bWJlcnNUb1plcm8pKTtcbn1cbmNvbnN0IGNvbXBsZXggPSB7XG4gICAgdGVzdCxcbiAgICBwYXJzZTogcGFyc2VDb21wbGV4VmFsdWUsXG4gICAgY3JlYXRlVHJhbnNmb3JtZXIsXG4gICAgZ2V0QW5pbWF0YWJsZU5vbmUsXG59O1xuXG5leHBvcnQgeyBhbmFseXNlQ29tcGxleFZhbHVlLCBjb21wbGV4IH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mask: () => (/* binding */ mask)\n/* harmony export */ });\n/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n\n\nconst mask = {\n ..._index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex,\n getAnimatableNone: (v) => {\n const parsed = _index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.parse(v);\n const transformer = _index_mjs__WEBPACK_IMPORTED_MODULE_0__.complex.createTransformer(v);\n return transformer(parsed.map((v) => typeof v === \"number\" ? 0 : typeof v === \"object\" ? { ...v, alpha: 1 } : v));\n },\n};\n\n\n//# sourceMappingURL=mask.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29tcGxleC9tYXNrLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFzQzs7QUFFdEM7QUFDQSxPQUFPLCtDQUFPO0FBQ2Q7QUFDQSx1QkFBdUIsK0NBQU87QUFDOUIsNEJBQTRCLCtDQUFPO0FBQ25DLG1HQUFtRyxpQkFBaUI7QUFDcEgsS0FBSztBQUNMOztBQUVnQjtBQUNoQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvY29tcGxleC9tYXNrLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wbGV4IH0gZnJvbSAnLi9pbmRleC5tanMnO1xuXG5jb25zdCBtYXNrID0ge1xuICAgIC4uLmNvbXBsZXgsXG4gICAgZ2V0QW5pbWF0YWJsZU5vbmU6ICh2KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IGNvbXBsZXgucGFyc2Uodik7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gY29tcGxleC5jcmVhdGVUcmFuc2Zvcm1lcih2KTtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybWVyKHBhcnNlZC5tYXAoKHYpID0+IHR5cGVvZiB2ID09PSBcIm51bWJlclwiID8gMCA6IHR5cGVvZiB2ID09PSBcIm9iamVjdFwiID8geyAuLi52LCBhbHBoYTogMSB9IDogdikpO1xuICAgIH0sXG59O1xuXG5leHBvcnQgeyBtYXNrIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1tYXNrLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/dimensions.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ dimensionValueTypes: () => (/* binding */ dimensionValueTypes),\n/* harmony export */ findDimensionValueType: () => (/* binding */ findDimensionValueType)\n/* harmony export */ });\n/* harmony import */ var _auto_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./auto.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/auto.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _test_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./test.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs\");\n\n\n\n\n\n/**\n * A list of value types commonly used for dimensions\n */\nconst dimensionValueTypes = [_numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.px, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.percent, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.degrees, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.vw, _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_1__.vh, _auto_mjs__WEBPACK_IMPORTED_MODULE_2__.auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nconst findDimensionValueType = (v) => dimensionValueTypes.find((0,_test_mjs__WEBPACK_IMPORTED_MODULE_3__.testValueType)(v));\n\n\n//# sourceMappingURL=dimensions.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvZGltZW5zaW9ucy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWtDO0FBQ1c7QUFDc0I7QUFDeEI7O0FBRTNDO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixzREFBTSxFQUFFLGtEQUFFLEVBQUUsdURBQU8sRUFBRSx1REFBTyxFQUFFLGtEQUFFLEVBQUUsa0RBQUUsRUFBRSwyQ0FBSTtBQUN2RTtBQUNBO0FBQ0E7QUFDQSwrREFBK0Qsd0RBQWE7O0FBRXJCO0FBQ3ZEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9kaW1lbnNpb25zLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhdXRvIH0gZnJvbSAnLi9hdXRvLm1qcyc7XG5pbXBvcnQgeyBudW1iZXIgfSBmcm9tICcuL251bWJlcnMvaW5kZXgubWpzJztcbmltcG9ydCB7IHB4LCBwZXJjZW50LCBkZWdyZWVzLCB2dywgdmggfSBmcm9tICcuL251bWJlcnMvdW5pdHMubWpzJztcbmltcG9ydCB7IHRlc3RWYWx1ZVR5cGUgfSBmcm9tICcuL3Rlc3QubWpzJztcblxuLyoqXG4gKiBBIGxpc3Qgb2YgdmFsdWUgdHlwZXMgY29tbW9ubHkgdXNlZCBmb3IgZGltZW5zaW9uc1xuICovXG5jb25zdCBkaW1lbnNpb25WYWx1ZVR5cGVzID0gW251bWJlciwgcHgsIHBlcmNlbnQsIGRlZ3JlZXMsIHZ3LCB2aCwgYXV0b107XG4vKipcbiAqIFRlc3RzIGEgZGltZW5zaW9uYWwgdmFsdWUgYWdhaW5zdCB0aGUgbGlzdCBvZiBkaW1lbnNpb24gVmFsdWVUeXBlc1xuICovXG5jb25zdCBmaW5kRGltZW5zaW9uVmFsdWVUeXBlID0gKHYpID0+IGRpbWVuc2lvblZhbHVlVHlwZXMuZmluZCh0ZXN0VmFsdWVUeXBlKHYpKTtcblxuZXhwb3J0IHsgZGltZW5zaW9uVmFsdWVUeXBlcywgZmluZERpbWVuc2lvblZhbHVlVHlwZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGltZW5zaW9ucy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/int.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/int.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ int: () => (/* binding */ int)\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n\n\nconst int = {\n ..._numbers_index_mjs__WEBPACK_IMPORTED_MODULE_0__.number,\n transform: Math.round,\n};\n\n\n//# sourceMappingURL=int.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvaW50Lm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUE2Qzs7QUFFN0M7QUFDQSxPQUFPLHNEQUFNO0FBQ2I7QUFDQTs7QUFFZTtBQUNmIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9pbnQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG51bWJlciB9IGZyb20gJy4vbnVtYmVycy9pbmRleC5tanMnO1xuXG5jb25zdCBpbnQgPSB7XG4gICAgLi4ubnVtYmVyLFxuICAgIHRyYW5zZm9ybTogTWF0aC5yb3VuZCxcbn07XG5cbmV4cG9ydCB7IGludCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW50Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/int.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ defaultValueTypes: () => (/* binding */ defaultValueTypes),\n/* harmony export */ getDefaultValueType: () => (/* binding */ getDefaultValueType)\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../complex/filter.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\");\n/* harmony import */ var _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../complex/mask.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs\");\n/* harmony import */ var _number_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./number.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\");\n\n\n\n\n\n/**\n * A map of default value types for common values\n */\nconst defaultValueTypes = {\n ..._number_mjs__WEBPACK_IMPORTED_MODULE_0__.numberValueTypes,\n // Color props\n color: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n backgroundColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n outlineColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n fill: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n stroke: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n // Border props\n borderColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderTopColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderRightColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderBottomColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n borderLeftColor: _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color,\n filter: _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__.filter,\n WebkitFilter: _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_2__.filter,\n mask: _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_3__.mask,\n WebkitMask: _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_3__.mask,\n};\n/**\n * Gets the default ValueType for the provided value key\n */\nconst getDefaultValueType = (key) => defaultValueTypes[key];\n\n\n//# sourceMappingURL=defaults.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy9kZWZhdWx0cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQTJDO0FBQ0k7QUFDSjtBQUNLOztBQUVoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8seURBQWdCO0FBQ3ZCO0FBQ0EsU0FBUztBQUNULHFCQUFxQixtREFBSztBQUMxQixrQkFBa0IsbURBQUs7QUFDdkIsVUFBVSxtREFBSztBQUNmLFlBQVksbURBQUs7QUFDakI7QUFDQSxpQkFBaUIsbURBQUs7QUFDdEIsb0JBQW9CLG1EQUFLO0FBQ3pCLHNCQUFzQixtREFBSztBQUMzQix1QkFBdUIsbURBQUs7QUFDNUIscUJBQXFCLG1EQUFLO0FBQzFCLFVBQVU7QUFDVixrQkFBa0IsdURBQU07QUFDeEIsUUFBUTtBQUNSLGdCQUFnQixtREFBSTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVrRDtBQUNsRCIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy9kZWZhdWx0cy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29sb3IgfSBmcm9tICcuLi9jb2xvci9pbmRleC5tanMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAnLi4vY29tcGxleC9maWx0ZXIubWpzJztcbmltcG9ydCB7IG1hc2sgfSBmcm9tICcuLi9jb21wbGV4L21hc2subWpzJztcbmltcG9ydCB7IG51bWJlclZhbHVlVHlwZXMgfSBmcm9tICcuL251bWJlci5tanMnO1xuXG4vKipcbiAqIEEgbWFwIG9mIGRlZmF1bHQgdmFsdWUgdHlwZXMgZm9yIGNvbW1vbiB2YWx1ZXNcbiAqL1xuY29uc3QgZGVmYXVsdFZhbHVlVHlwZXMgPSB7XG4gICAgLi4ubnVtYmVyVmFsdWVUeXBlcyxcbiAgICAvLyBDb2xvciBwcm9wc1xuICAgIGNvbG9yLFxuICAgIGJhY2tncm91bmRDb2xvcjogY29sb3IsXG4gICAgb3V0bGluZUNvbG9yOiBjb2xvcixcbiAgICBmaWxsOiBjb2xvcixcbiAgICBzdHJva2U6IGNvbG9yLFxuICAgIC8vIEJvcmRlciBwcm9wc1xuICAgIGJvcmRlckNvbG9yOiBjb2xvcixcbiAgICBib3JkZXJUb3BDb2xvcjogY29sb3IsXG4gICAgYm9yZGVyUmlnaHRDb2xvcjogY29sb3IsXG4gICAgYm9yZGVyQm90dG9tQ29sb3I6IGNvbG9yLFxuICAgIGJvcmRlckxlZnRDb2xvcjogY29sb3IsXG4gICAgZmlsdGVyLFxuICAgIFdlYmtpdEZpbHRlcjogZmlsdGVyLFxuICAgIG1hc2ssXG4gICAgV2Via2l0TWFzazogbWFzayxcbn07XG4vKipcbiAqIEdldHMgdGhlIGRlZmF1bHQgVmFsdWVUeXBlIGZvciB0aGUgcHJvdmlkZWQgdmFsdWUga2V5XG4gKi9cbmNvbnN0IGdldERlZmF1bHRWYWx1ZVR5cGUgPSAoa2V5KSA9PiBkZWZhdWx0VmFsdWVUeXBlc1trZXldO1xuXG5leHBvcnQgeyBkZWZhdWx0VmFsdWVUeXBlcywgZ2V0RGVmYXVsdFZhbHVlVHlwZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGVmYXVsdHMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs": +/*!*********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/maps/number.mjs ***! + \*********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ numberValueTypes: () => (/* binding */ numberValueTypes)\n/* harmony export */ });\n/* harmony import */ var _int_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../int.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/int.mjs\");\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n/* harmony import */ var _transform_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transform.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs\");\n\n\n\n\n\nconst numberValueTypes = {\n // Border props\n borderWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderTopWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderRightWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderBottomWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderLeftWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderTopLeftRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderTopRightRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderBottomRightRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n borderBottomLeftRadius: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Positioning props\n width: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n maxWidth: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n height: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n maxHeight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n top: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n right: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n bottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n left: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n inset: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetBlock: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetBlockStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetBlockEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetInline: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetInlineStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n insetInlineEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Spacing props\n padding: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingTop: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingRight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingLeft: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBlock: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBlockStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingBlockEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingInline: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingInlineStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n paddingInlineEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n margin: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginTop: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginRight: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBottom: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginLeft: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBlock: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBlockStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginBlockEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginInline: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginInlineStart: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n marginInlineEnd: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Typography\n fontSize: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n // Misc\n backgroundPositionX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n backgroundPositionY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n ..._transform_mjs__WEBPACK_IMPORTED_MODULE_1__.transformValueTypes,\n zIndex: _int_mjs__WEBPACK_IMPORTED_MODULE_2__.int,\n // SVG\n fillOpacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha,\n strokeOpacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_3__.alpha,\n numOctaves: _int_mjs__WEBPACK_IMPORTED_MODULE_2__.int,\n};\n\n\n//# sourceMappingURL=number.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy9udW1iZXIubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQWlDO0FBQ1k7QUFDSDtBQUNZOztBQUV0RDtBQUNBO0FBQ0EsaUJBQWlCLGtEQUFFO0FBQ25CLG9CQUFvQixrREFBRTtBQUN0QixzQkFBc0Isa0RBQUU7QUFDeEIsdUJBQXVCLGtEQUFFO0FBQ3pCLHFCQUFxQixrREFBRTtBQUN2QixrQkFBa0Isa0RBQUU7QUFDcEIseUJBQXlCLGtEQUFFO0FBQzNCLDBCQUEwQixrREFBRTtBQUM1Qiw2QkFBNkIsa0RBQUU7QUFDL0IsNEJBQTRCLGtEQUFFO0FBQzlCO0FBQ0EsV0FBVyxrREFBRTtBQUNiLGNBQWMsa0RBQUU7QUFDaEIsWUFBWSxrREFBRTtBQUNkLGVBQWUsa0RBQUU7QUFDakIsU0FBUyxrREFBRTtBQUNYLFdBQVcsa0RBQUU7QUFDYixZQUFZLGtEQUFFO0FBQ2QsVUFBVSxrREFBRTtBQUNaLFdBQVcsa0RBQUU7QUFDYixnQkFBZ0Isa0RBQUU7QUFDbEIscUJBQXFCLGtEQUFFO0FBQ3ZCLG1CQUFtQixrREFBRTtBQUNyQixpQkFBaUIsa0RBQUU7QUFDbkIsc0JBQXNCLGtEQUFFO0FBQ3hCLG9CQUFvQixrREFBRTtBQUN0QjtBQUNBLGFBQWEsa0RBQUU7QUFDZixnQkFBZ0Isa0RBQUU7QUFDbEIsa0JBQWtCLGtEQUFFO0FBQ3BCLG1CQUFtQixrREFBRTtBQUNyQixpQkFBaUIsa0RBQUU7QUFDbkIsa0JBQWtCLGtEQUFFO0FBQ3BCLHVCQUF1QixrREFBRTtBQUN6QixxQkFBcUIsa0RBQUU7QUFDdkIsbUJBQW1CLGtEQUFFO0FBQ3JCLHdCQUF3QixrREFBRTtBQUMxQixzQkFBc0Isa0RBQUU7QUFDeEIsWUFBWSxrREFBRTtBQUNkLGVBQWUsa0RBQUU7QUFDakIsaUJBQWlCLGtEQUFFO0FBQ25CLGtCQUFrQixrREFBRTtBQUNwQixnQkFBZ0Isa0RBQUU7QUFDbEIsaUJBQWlCLGtEQUFFO0FBQ25CLHNCQUFzQixrREFBRTtBQUN4QixvQkFBb0Isa0RBQUU7QUFDdEIsa0JBQWtCLGtEQUFFO0FBQ3BCLHVCQUF1QixrREFBRTtBQUN6QixxQkFBcUIsa0RBQUU7QUFDdkI7QUFDQSxjQUFjLGtEQUFFO0FBQ2hCO0FBQ0EseUJBQXlCLGtEQUFFO0FBQzNCLHlCQUF5QixrREFBRTtBQUMzQixPQUFPLCtEQUFtQjtBQUMxQixZQUFZLHlDQUFHO0FBQ2Y7QUFDQSxpQkFBaUIscURBQUs7QUFDdEIsbUJBQW1CLHFEQUFLO0FBQ3hCLGdCQUFnQix5Q0FBRztBQUNuQjs7QUFFNEI7QUFDNUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL21hcHMvbnVtYmVyLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnQgfSBmcm9tICcuLi9pbnQubWpzJztcbmltcG9ydCB7IGFscGhhIH0gZnJvbSAnLi4vbnVtYmVycy9pbmRleC5tanMnO1xuaW1wb3J0IHsgcHggfSBmcm9tICcuLi9udW1iZXJzL3VuaXRzLm1qcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1WYWx1ZVR5cGVzIH0gZnJvbSAnLi90cmFuc2Zvcm0ubWpzJztcblxuY29uc3QgbnVtYmVyVmFsdWVUeXBlcyA9IHtcbiAgICAvLyBCb3JkZXIgcHJvcHNcbiAgICBib3JkZXJXaWR0aDogcHgsXG4gICAgYm9yZGVyVG9wV2lkdGg6IHB4LFxuICAgIGJvcmRlclJpZ2h0V2lkdGg6IHB4LFxuICAgIGJvcmRlckJvdHRvbVdpZHRoOiBweCxcbiAgICBib3JkZXJMZWZ0V2lkdGg6IHB4LFxuICAgIGJvcmRlclJhZGl1czogcHgsXG4gICAgYm9yZGVyVG9wTGVmdFJhZGl1czogcHgsXG4gICAgYm9yZGVyVG9wUmlnaHRSYWRpdXM6IHB4LFxuICAgIGJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzOiBweCxcbiAgICBib3JkZXJCb3R0b21MZWZ0UmFkaXVzOiBweCxcbiAgICAvLyBQb3NpdGlvbmluZyBwcm9wc1xuICAgIHdpZHRoOiBweCxcbiAgICBtYXhXaWR0aDogcHgsXG4gICAgaGVpZ2h0OiBweCxcbiAgICBtYXhIZWlnaHQ6IHB4LFxuICAgIHRvcDogcHgsXG4gICAgcmlnaHQ6IHB4LFxuICAgIGJvdHRvbTogcHgsXG4gICAgbGVmdDogcHgsXG4gICAgaW5zZXQ6IHB4LFxuICAgIGluc2V0QmxvY2s6IHB4LFxuICAgIGluc2V0QmxvY2tTdGFydDogcHgsXG4gICAgaW5zZXRCbG9ja0VuZDogcHgsXG4gICAgaW5zZXRJbmxpbmU6IHB4LFxuICAgIGluc2V0SW5saW5lU3RhcnQ6IHB4LFxuICAgIGluc2V0SW5saW5lRW5kOiBweCxcbiAgICAvLyBTcGFjaW5nIHByb3BzXG4gICAgcGFkZGluZzogcHgsXG4gICAgcGFkZGluZ1RvcDogcHgsXG4gICAgcGFkZGluZ1JpZ2h0OiBweCxcbiAgICBwYWRkaW5nQm90dG9tOiBweCxcbiAgICBwYWRkaW5nTGVmdDogcHgsXG4gICAgcGFkZGluZ0Jsb2NrOiBweCxcbiAgICBwYWRkaW5nQmxvY2tTdGFydDogcHgsXG4gICAgcGFkZGluZ0Jsb2NrRW5kOiBweCxcbiAgICBwYWRkaW5nSW5saW5lOiBweCxcbiAgICBwYWRkaW5nSW5saW5lU3RhcnQ6IHB4LFxuICAgIHBhZGRpbmdJbmxpbmVFbmQ6IHB4LFxuICAgIG1hcmdpbjogcHgsXG4gICAgbWFyZ2luVG9wOiBweCxcbiAgICBtYXJnaW5SaWdodDogcHgsXG4gICAgbWFyZ2luQm90dG9tOiBweCxcbiAgICBtYXJnaW5MZWZ0OiBweCxcbiAgICBtYXJnaW5CbG9jazogcHgsXG4gICAgbWFyZ2luQmxvY2tTdGFydDogcHgsXG4gICAgbWFyZ2luQmxvY2tFbmQ6IHB4LFxuICAgIG1hcmdpbklubGluZTogcHgsXG4gICAgbWFyZ2luSW5saW5lU3RhcnQ6IHB4LFxuICAgIG1hcmdpbklubGluZUVuZDogcHgsXG4gICAgLy8gVHlwb2dyYXBoeVxuICAgIGZvbnRTaXplOiBweCxcbiAgICAvLyBNaXNjXG4gICAgYmFja2dyb3VuZFBvc2l0aW9uWDogcHgsXG4gICAgYmFja2dyb3VuZFBvc2l0aW9uWTogcHgsXG4gICAgLi4udHJhbnNmb3JtVmFsdWVUeXBlcyxcbiAgICB6SW5kZXg6IGludCxcbiAgICAvLyBTVkdcbiAgICBmaWxsT3BhY2l0eTogYWxwaGEsXG4gICAgc3Ryb2tlT3BhY2l0eTogYWxwaGEsXG4gICAgbnVtT2N0YXZlczogaW50LFxufTtcblxuZXhwb3J0IHsgbnVtYmVyVmFsdWVUeXBlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bnVtYmVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/number.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ transformValueTypes: () => (/* binding */ transformValueTypes)\n/* harmony export */ });\n/* harmony import */ var _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../numbers/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\");\n/* harmony import */ var _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../numbers/units.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\");\n\n\n\nconst transformValueTypes = {\n rotate: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n rotateX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n rotateY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n rotateZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n scale: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n scaleX: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n scaleY: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n scaleZ: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.scale,\n skew: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n skewX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n skewY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.degrees,\n distance: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n translateX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n translateY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n translateZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n x: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n y: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n z: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n perspective: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n transformPerspective: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n opacity: _numbers_index_mjs__WEBPACK_IMPORTED_MODULE_1__.alpha,\n originX: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.progressPercentage,\n originY: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.progressPercentage,\n originZ: _numbers_units_mjs__WEBPACK_IMPORTED_MODULE_0__.px,\n};\n\n\n//# sourceMappingURL=transform.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbWFwcy90cmFuc2Zvcm0ubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFvRDtBQUNtQjs7QUFFdkU7QUFDQSxZQUFZLHVEQUFPO0FBQ25CLGFBQWEsdURBQU87QUFDcEIsYUFBYSx1REFBTztBQUNwQixhQUFhLHVEQUFPO0FBQ3BCLFNBQVM7QUFDVCxZQUFZLHFEQUFLO0FBQ2pCLFlBQVkscURBQUs7QUFDakIsWUFBWSxxREFBSztBQUNqQixVQUFVLHVEQUFPO0FBQ2pCLFdBQVcsdURBQU87QUFDbEIsV0FBVyx1REFBTztBQUNsQixjQUFjLGtEQUFFO0FBQ2hCLGdCQUFnQixrREFBRTtBQUNsQixnQkFBZ0Isa0RBQUU7QUFDbEIsZ0JBQWdCLGtEQUFFO0FBQ2xCLE9BQU8sa0RBQUU7QUFDVCxPQUFPLGtEQUFFO0FBQ1QsT0FBTyxrREFBRTtBQUNULGlCQUFpQixrREFBRTtBQUNuQiwwQkFBMEIsa0RBQUU7QUFDNUIsYUFBYSxxREFBSztBQUNsQixhQUFhLGtFQUFrQjtBQUMvQixhQUFhLGtFQUFrQjtBQUMvQixhQUFhLGtEQUFFO0FBQ2Y7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9tYXBzL3RyYW5zZm9ybS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2NhbGUsIGFscGhhIH0gZnJvbSAnLi4vbnVtYmVycy9pbmRleC5tanMnO1xuaW1wb3J0IHsgZGVncmVlcywgcHgsIHByb2dyZXNzUGVyY2VudGFnZSB9IGZyb20gJy4uL251bWJlcnMvdW5pdHMubWpzJztcblxuY29uc3QgdHJhbnNmb3JtVmFsdWVUeXBlcyA9IHtcbiAgICByb3RhdGU6IGRlZ3JlZXMsXG4gICAgcm90YXRlWDogZGVncmVlcyxcbiAgICByb3RhdGVZOiBkZWdyZWVzLFxuICAgIHJvdGF0ZVo6IGRlZ3JlZXMsXG4gICAgc2NhbGUsXG4gICAgc2NhbGVYOiBzY2FsZSxcbiAgICBzY2FsZVk6IHNjYWxlLFxuICAgIHNjYWxlWjogc2NhbGUsXG4gICAgc2tldzogZGVncmVlcyxcbiAgICBza2V3WDogZGVncmVlcyxcbiAgICBza2V3WTogZGVncmVlcyxcbiAgICBkaXN0YW5jZTogcHgsXG4gICAgdHJhbnNsYXRlWDogcHgsXG4gICAgdHJhbnNsYXRlWTogcHgsXG4gICAgdHJhbnNsYXRlWjogcHgsXG4gICAgeDogcHgsXG4gICAgeTogcHgsXG4gICAgejogcHgsXG4gICAgcGVyc3BlY3RpdmU6IHB4LFxuICAgIHRyYW5zZm9ybVBlcnNwZWN0aXZlOiBweCxcbiAgICBvcGFjaXR5OiBhbHBoYSxcbiAgICBvcmlnaW5YOiBwcm9ncmVzc1BlcmNlbnRhZ2UsXG4gICAgb3JpZ2luWTogcHJvZ3Jlc3NQZXJjZW50YWdlLFxuICAgIG9yaWdpblo6IHB4LFxufTtcblxuZXhwb3J0IHsgdHJhbnNmb3JtVmFsdWVUeXBlcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dHJhbnNmb3JtLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/transform.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ alpha: () => (/* binding */ alpha),\n/* harmony export */ number: () => (/* binding */ number),\n/* harmony export */ scale: () => (/* binding */ scale)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\");\n\n\nconst number = {\n test: (v) => typeof v === \"number\",\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = {\n ...number,\n transform: (v) => (0,motion_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(0, 1, v),\n};\nconst scale = {\n ...number,\n default: 1,\n};\n\n\n//# sourceMappingURL=index.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbnVtYmVycy9pbmRleC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFxQzs7QUFFckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsbURBQUs7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL251bWJlcnMvaW5kZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsYW1wIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcblxuY29uc3QgbnVtYmVyID0ge1xuICAgIHRlc3Q6ICh2KSA9PiB0eXBlb2YgdiA9PT0gXCJudW1iZXJcIixcbiAgICBwYXJzZTogcGFyc2VGbG9hdCxcbiAgICB0cmFuc2Zvcm06ICh2KSA9PiB2LFxufTtcbmNvbnN0IGFscGhhID0ge1xuICAgIC4uLm51bWJlcixcbiAgICB0cmFuc2Zvcm06ICh2KSA9PiBjbGFtcCgwLCAxLCB2KSxcbn07XG5jb25zdCBzY2FsZSA9IHtcbiAgICAuLi5udW1iZXIsXG4gICAgZGVmYXVsdDogMSxcbn07XG5cbmV4cG9ydCB7IGFscGhhLCBudW1iZXIsIHNjYWxlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/index.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ degrees: () => (/* binding */ degrees),\n/* harmony export */ percent: () => (/* binding */ percent),\n/* harmony export */ progressPercentage: () => (/* binding */ progressPercentage),\n/* harmony export */ px: () => (/* binding */ px),\n/* harmony export */ vh: () => (/* binding */ vh),\n/* harmony export */ vw: () => (/* binding */ vw)\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\nconst createUnitType = (unit) => ({\n test: (v) => typeof v === \"string\" && v.endsWith(unit) && v.split(\" \").length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = /*@__PURE__*/ createUnitType(\"deg\");\nconst percent = /*@__PURE__*/ createUnitType(\"%\");\nconst px = /*@__PURE__*/ createUnitType(\"px\");\nconst vh = /*@__PURE__*/ createUnitType(\"vh\");\nconst vw = /*@__PURE__*/ createUnitType(\"vw\");\nconst progressPercentage = /*@__PURE__*/ (() => ({\n ...percent,\n parse: (v) => percent.parse(v) / 100,\n transform: (v) => percent.transform(v * 100),\n}))();\n\n\n//# sourceMappingURL=units.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvbnVtYmVycy91bml0cy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsRUFBRSxFQUFFLEtBQUs7QUFDbEMsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRTJEO0FBQzVEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy9udW1iZXJzL3VuaXRzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiNfX05PX1NJREVfRUZGRUNUU19fKi9cbmNvbnN0IGNyZWF0ZVVuaXRUeXBlID0gKHVuaXQpID0+ICh7XG4gICAgdGVzdDogKHYpID0+IHR5cGVvZiB2ID09PSBcInN0cmluZ1wiICYmIHYuZW5kc1dpdGgodW5pdCkgJiYgdi5zcGxpdChcIiBcIikubGVuZ3RoID09PSAxLFxuICAgIHBhcnNlOiBwYXJzZUZsb2F0LFxuICAgIHRyYW5zZm9ybTogKHYpID0+IGAke3Z9JHt1bml0fWAsXG59KTtcbmNvbnN0IGRlZ3JlZXMgPSAvKkBfX1BVUkVfXyovIGNyZWF0ZVVuaXRUeXBlKFwiZGVnXCIpO1xuY29uc3QgcGVyY2VudCA9IC8qQF9fUFVSRV9fKi8gY3JlYXRlVW5pdFR5cGUoXCIlXCIpO1xuY29uc3QgcHggPSAvKkBfX1BVUkVfXyovIGNyZWF0ZVVuaXRUeXBlKFwicHhcIik7XG5jb25zdCB2aCA9IC8qQF9fUFVSRV9fKi8gY3JlYXRlVW5pdFR5cGUoXCJ2aFwiKTtcbmNvbnN0IHZ3ID0gLypAX19QVVJFX18qLyBjcmVhdGVVbml0VHlwZShcInZ3XCIpO1xuY29uc3QgcHJvZ3Jlc3NQZXJjZW50YWdlID0gLypAX19QVVJFX18qLyAoKCkgPT4gKHtcbiAgICAuLi5wZXJjZW50LFxuICAgIHBhcnNlOiAodikgPT4gcGVyY2VudC5wYXJzZSh2KSAvIDEwMCxcbiAgICB0cmFuc2Zvcm06ICh2KSA9PiBwZXJjZW50LnRyYW5zZm9ybSh2ICogMTAwKSxcbn0pKSgpO1xuXG5leHBvcnQgeyBkZWdyZWVzLCBwZXJjZW50LCBwcm9ncmVzc1BlcmNlbnRhZ2UsIHB4LCB2aCwgdncgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXVuaXRzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/numbers/units.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/test.mjs ***! + \**************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ testValueType: () => (/* binding */ testValueType)\n/* harmony export */ });\n/**\n * Tests a provided value against a ValueType\n */\nconst testValueType = (v) => (type) => type.test(v);\n\n\n//# sourceMappingURL=test.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdGVzdC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdGVzdC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUZXN0cyBhIHByb3ZpZGVkIHZhbHVlIGFnYWluc3QgYSBWYWx1ZVR5cGVcbiAqL1xuY29uc3QgdGVzdFZhbHVlVHlwZSA9ICh2KSA9PiAodHlwZSkgPT4gdHlwZS50ZXN0KHYpO1xuXG5leHBvcnQgeyB0ZXN0VmFsdWVUeXBlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD10ZXN0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getAnimatableNone: () => (/* binding */ getAnimatableNone)\n/* harmony export */ });\n/* harmony import */ var _complex_index_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _complex_filter_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../complex/filter.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/filter.mjs\");\n/* harmony import */ var _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../complex/mask.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/mask.mjs\");\n/* harmony import */ var _maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../maps/defaults.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs\");\n\n\n\n\n\nconst customTypes = /*@__PURE__*/ new Set([_complex_filter_mjs__WEBPACK_IMPORTED_MODULE_0__.filter, _complex_mask_mjs__WEBPACK_IMPORTED_MODULE_1__.mask]);\nfunction getAnimatableNone(key, value) {\n let defaultValueType = (0,_maps_defaults_mjs__WEBPACK_IMPORTED_MODULE_2__.getDefaultValueType)(key);\n if (!customTypes.has(defaultValueType))\n defaultValueType = _complex_index_mjs__WEBPACK_IMPORTED_MODULE_3__.complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return defaultValueType.getAnimatableNone\n ? defaultValueType.getAnimatableNone(value)\n : undefined;\n}\n\n\n//# sourceMappingURL=animatable-none.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvYW5pbWF0YWJsZS1ub25lLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUErQztBQUNBO0FBQ0o7QUFDZ0I7O0FBRTNELDJDQUEyQyx1REFBTSxFQUFFLG1EQUFJO0FBQ3ZEO0FBQ0EsMkJBQTJCLHVFQUFtQjtBQUM5QztBQUNBLDJCQUEyQix1REFBTztBQUNsQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvYW5pbWF0YWJsZS1ub25lLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wbGV4IH0gZnJvbSAnLi4vY29tcGxleC9pbmRleC5tanMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAnLi4vY29tcGxleC9maWx0ZXIubWpzJztcbmltcG9ydCB7IG1hc2sgfSBmcm9tICcuLi9jb21wbGV4L21hc2subWpzJztcbmltcG9ydCB7IGdldERlZmF1bHRWYWx1ZVR5cGUgfSBmcm9tICcuLi9tYXBzL2RlZmF1bHRzLm1qcyc7XG5cbmNvbnN0IGN1c3RvbVR5cGVzID0gLypAX19QVVJFX18qLyBuZXcgU2V0KFtmaWx0ZXIsIG1hc2tdKTtcbmZ1bmN0aW9uIGdldEFuaW1hdGFibGVOb25lKGtleSwgdmFsdWUpIHtcbiAgICBsZXQgZGVmYXVsdFZhbHVlVHlwZSA9IGdldERlZmF1bHRWYWx1ZVR5cGUoa2V5KTtcbiAgICBpZiAoIWN1c3RvbVR5cGVzLmhhcyhkZWZhdWx0VmFsdWVUeXBlKSlcbiAgICAgICAgZGVmYXVsdFZhbHVlVHlwZSA9IGNvbXBsZXg7XG4gICAgLy8gSWYgdmFsdWUgaXMgbm90IHJlY29nbmlzZWQgYXMgYW5pbWF0YWJsZSwgaWUgXCJub25lXCIsIGNyZWF0ZSBhbiBhbmltYXRhYmxlIHZlcnNpb24gb3JpZ2luIGJhc2VkIG9uIHRoZSB0YXJnZXRcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlVHlwZS5nZXRBbmltYXRhYmxlTm9uZVxuICAgICAgICA/IGRlZmF1bHRWYWx1ZVR5cGUuZ2V0QW5pbWF0YWJsZU5vbmUodmFsdWUpXG4gICAgICAgIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgeyBnZXRBbmltYXRhYmxlTm9uZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YW5pbWF0YWJsZS1ub25lLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ colorRegex: () => (/* binding */ colorRegex)\n/* harmony export */ });\nconst colorRegex = /(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))/giu;\n\n\n//# sourceMappingURL=color-regex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvY29sb3ItcmVnZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxnQ0FBZ0MsSUFBSSxxQ0FBcUMsRUFBRTs7QUFFckQ7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2NvbG9yLXJlZ2V4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBjb2xvclJlZ2V4ID0gLyg/OiNbXFxkYS1mXXszLDh9fCg/OnJnYnxoc2wpYT9cXCgoPzotP1tcXGQuXSslP1ssXFxzXSspezJ9LT9bXFxkLl0rJT9cXHMqKD86WywvXVxccyopPyg/OlxcYlxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKyk/JT9cXCkpL2dpdTtcblxuZXhwb3J0IHsgY29sb3JSZWdleCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y29sb3ItcmVnZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/find.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ findValueType: () => (/* binding */ findValueType)\n/* harmony export */ });\n/* harmony import */ var _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../color/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/color/index.mjs\");\n/* harmony import */ var _complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../complex/index.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/complex/index.mjs\");\n/* harmony import */ var _dimensions_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dimensions.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/dimensions.mjs\");\n/* harmony import */ var _test_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../test.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/test.mjs\");\n\n\n\n\n\n/**\n * A list of all ValueTypes\n */\nconst valueTypes = [..._dimensions_mjs__WEBPACK_IMPORTED_MODULE_0__.dimensionValueTypes, _color_index_mjs__WEBPACK_IMPORTED_MODULE_1__.color, _complex_index_mjs__WEBPACK_IMPORTED_MODULE_2__.complex];\n/**\n * Tests a value against the list of ValueTypes\n */\nconst findValueType = (v) => valueTypes.find((0,_test_mjs__WEBPACK_IMPORTED_MODULE_3__.testValueType)(v));\n\n\n//# sourceMappingURL=find.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZmluZC5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBMkM7QUFDSTtBQUNTO0FBQ1o7O0FBRTVDO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixnRUFBbUIsRUFBRSxtREFBSyxFQUFFLHVEQUFPO0FBQzFEO0FBQ0E7QUFDQTtBQUNBLDZDQUE2Qyx3REFBYTs7QUFFakM7QUFDekIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2ZpbmQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbG9yIH0gZnJvbSAnLi4vY29sb3IvaW5kZXgubWpzJztcbmltcG9ydCB7IGNvbXBsZXggfSBmcm9tICcuLi9jb21wbGV4L2luZGV4Lm1qcyc7XG5pbXBvcnQgeyBkaW1lbnNpb25WYWx1ZVR5cGVzIH0gZnJvbSAnLi4vZGltZW5zaW9ucy5tanMnO1xuaW1wb3J0IHsgdGVzdFZhbHVlVHlwZSB9IGZyb20gJy4uL3Rlc3QubWpzJztcblxuLyoqXG4gKiBBIGxpc3Qgb2YgYWxsIFZhbHVlVHlwZXNcbiAqL1xuY29uc3QgdmFsdWVUeXBlcyA9IFsuLi5kaW1lbnNpb25WYWx1ZVR5cGVzLCBjb2xvciwgY29tcGxleF07XG4vKipcbiAqIFRlc3RzIGEgdmFsdWUgYWdhaW5zdCB0aGUgbGlzdCBvZiBWYWx1ZVR5cGVzXG4gKi9cbmNvbnN0IGZpbmRWYWx1ZVR5cGUgPSAodikgPT4gdmFsdWVUeXBlcy5maW5kKHRlc3RWYWx1ZVR5cGUodikpO1xuXG5leHBvcnQgeyBmaW5kVmFsdWVUeXBlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1maW5kLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/find.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ floatRegex: () => (/* binding */ floatRegex)\n/* harmony export */ });\nconst floatRegex = /-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/gu;\n\n\n//# sourceMappingURL=float-regex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZmxvYXQtcmVnZXgubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFFc0I7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2Zsb2F0LXJlZ2V4Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBmbG9hdFJlZ2V4ID0gLy0/KD86XFxkKyg/OlxcLlxcZCspP3xcXC5cXGQrKS9ndTtcblxuZXhwb3J0IHsgZmxvYXRSZWdleCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZmxvYXQtcmVnZXgubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs": +/*!***************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs ***! + \***************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getValueAsType: () => (/* binding */ getValueAsType)\n/* harmony export */ });\n/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nconst getValueAsType = (value, type) => {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\n\n//# sourceMappingURL=get-as-type.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZ2V0LWFzLXR5cGUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUwQjtBQUMxQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvZ2V0LWFzLXR5cGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHJvdmlkZWQgYSB2YWx1ZSBhbmQgYSBWYWx1ZVR5cGUsIHJldHVybnMgdGhlIHZhbHVlIGFzIHRoYXQgdmFsdWUgdHlwZS5cbiAqL1xuY29uc3QgZ2V0VmFsdWVBc1R5cGUgPSAodmFsdWUsIHR5cGUpID0+IHtcbiAgICByZXR1cm4gdHlwZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCJcbiAgICAgICAgPyB0eXBlLnRyYW5zZm9ybSh2YWx1ZSlcbiAgICAgICAgOiB2YWx1ZTtcbn07XG5cbmV4cG9ydCB7IGdldFZhbHVlQXNUeXBlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1nZXQtYXMtdHlwZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNullish: () => (/* binding */ isNullish)\n/* harmony export */ });\nfunction isNullish(v) {\n return v == null;\n}\n\n\n//# sourceMappingURL=is-nullish.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvaXMtbnVsbGlzaC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTs7QUFFcUI7QUFDckIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3R5cGVzL3V0aWxzL2lzLW51bGxpc2gubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGlzTnVsbGlzaCh2KSB7XG4gICAgcmV0dXJuIHYgPT0gbnVsbDtcbn1cblxuZXhwb3J0IHsgaXNOdWxsaXNoIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1udWxsaXNoLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ sanitize: () => (/* binding */ sanitize)\n/* harmony export */ });\n// If this number is a decimal, make it just five decimal places\n// to avoid exponents\nconst sanitize = (v) => Math.round(v * 100000) / 100000;\n\n\n//# sourceMappingURL=sanitize.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvc2FuaXRpemUubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy91dGlscy9zYW5pdGl6ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSWYgdGhpcyBudW1iZXIgaXMgYSBkZWNpbWFsLCBtYWtlIGl0IGp1c3QgZml2ZSBkZWNpbWFsIHBsYWNlc1xuLy8gdG8gYXZvaWQgZXhwb25lbnRzXG5jb25zdCBzYW5pdGl6ZSA9ICh2KSA9PiBNYXRoLnJvdW5kKHYgKiAxMDAwMDApIC8gMTAwMDAwO1xuXG5leHBvcnQgeyBzYW5pdGl6ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2FuaXRpemUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs": +/*!**********************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs ***! + \**********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ singleColorRegex: () => (/* binding */ singleColorRegex)\n/* harmony export */ });\nconst singleColorRegex = /^(?:#[\\da-f]{3,8}|(?:rgb|hsl)a?\\((?:-?[\\d.]+%?[,\\s]+){2}-?[\\d.]+%?\\s*(?:[,/]\\s*)?(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)?%?\\))$/iu;\n\n\n//# sourceMappingURL=single-color-regex.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdHlwZXMvdXRpbHMvc2luZ2xlLWNvbG9yLXJlZ2V4Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUEsdUNBQXVDLElBQUkscUNBQXFDLEVBQUU7O0FBRXREO0FBQzVCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS90eXBlcy91dGlscy9zaW5nbGUtY29sb3ItcmVnZXgubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHNpbmdsZUNvbG9yUmVnZXggPSAvXig/OiNbXFxkYS1mXXszLDh9fCg/OnJnYnxoc2wpYT9cXCgoPzotP1tcXGQuXSslP1ssXFxzXSspezJ9LT9bXFxkLl0rJT9cXHMqKD86WywvXVxccyopPyg/OlxcYlxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKyk/JT9cXCkpJC9pdTtcblxuZXhwb3J0IHsgc2luZ2xlQ29sb3JSZWdleCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2luZ2xlLWNvbG9yLXJlZ2V4Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isMotionValue: () => (/* binding */ isMotionValue)\n/* harmony export */ });\nconst isMotionValue = (value) => Boolean(value && value.getVelocity);\n\n\n//# sourceMappingURL=is-motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS91dGlscy9pcy1tb3Rpb24tdmFsdWUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzTW90aW9uVmFsdWUgPSAodmFsdWUpID0+IEJvb2xlYW4odmFsdWUgJiYgdmFsdWUuZ2V0VmVsb2NpdHkpO1xuXG5leHBvcnQgeyBpc01vdGlvblZhbHVlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1tb3Rpb24tdmFsdWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs": +/*!******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs ***! + \******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ resolveMotionValue: () => (/* binding */ resolveMotionValue)\n/* harmony export */ });\n/* harmony import */ var _is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n */\nfunction resolveMotionValue(value) {\n return (0,_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) ? value.get() : value;\n}\n\n\n//# sourceMappingURL=resolve-motion-value.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvdXRpbHMvcmVzb2x2ZS1tb3Rpb24tdmFsdWUubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQXNEOztBQUV0RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsbUVBQWE7QUFDeEI7O0FBRThCO0FBQzlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi1kb20vZGlzdC9lcy92YWx1ZS91dGlscy9yZXNvbHZlLW1vdGlvbi12YWx1ZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNNb3Rpb25WYWx1ZSB9IGZyb20gJy4vaXMtbW90aW9uLXZhbHVlLm1qcyc7XG5cbi8qKlxuICogSWYgdGhlIHByb3ZpZGVkIHZhbHVlIGlzIGEgTW90aW9uVmFsdWUsIHRoaXMgcmV0dXJucyB0aGUgYWN0dWFsIHZhbHVlLCBvdGhlcndpc2UganVzdCB0aGUgdmFsdWUgaXRzZWxmXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVNb3Rpb25WYWx1ZSh2YWx1ZSkge1xuICAgIHJldHVybiBpc01vdGlvblZhbHVlKHZhbHVlKSA/IHZhbHVlLmdldCgpIDogdmFsdWU7XG59XG5cbmV4cG9ydCB7IHJlc29sdmVNb3Rpb25WYWx1ZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVzb2x2ZS1tb3Rpb24tdmFsdWUubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addValueToWillChange: () => (/* binding */ addValueToWillChange)\n/* harmony export */ });\n/* harmony import */ var motion_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! motion-utils */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\");\n/* harmony import */ var _is_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./is.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/is.mjs\");\n\n\n\nfunction addValueToWillChange(visualElement, key) {\n const willChange = visualElement.getValue(\"willChange\");\n /**\n * It could be that a user has set willChange to a regular MotionValue,\n * in which case we can't add the value to it.\n */\n if ((0,_is_mjs__WEBPACK_IMPORTED_MODULE_0__.isWillChangeMotionValue)(willChange)) {\n return willChange.add(key);\n }\n else if (!willChange && motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.WillChange) {\n const newWillChange = new motion_utils__WEBPACK_IMPORTED_MODULE_1__.MotionGlobalConfig.WillChange(\"auto\");\n visualElement.addValue(\"willChange\", newWillChange);\n newWillChange.add(key);\n }\n}\n\n\n//# sourceMappingURL=add-will-change.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvd2lsbC1jaGFuZ2UvYWRkLXdpbGwtY2hhbmdlLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBa0Q7QUFDQzs7QUFFbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSxnRUFBdUI7QUFDL0I7QUFDQTtBQUNBLDRCQUE0Qiw0REFBa0I7QUFDOUMsa0NBQWtDLDREQUFrQjtBQUNwRDtBQUNBO0FBQ0E7QUFDQTs7QUFFZ0M7QUFDaEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3dpbGwtY2hhbmdlL2FkZC13aWxsLWNoYW5nZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW90aW9uR2xvYmFsQ29uZmlnIH0gZnJvbSAnbW90aW9uLXV0aWxzJztcbmltcG9ydCB7IGlzV2lsbENoYW5nZU1vdGlvblZhbHVlIH0gZnJvbSAnLi9pcy5tanMnO1xuXG5mdW5jdGlvbiBhZGRWYWx1ZVRvV2lsbENoYW5nZSh2aXN1YWxFbGVtZW50LCBrZXkpIHtcbiAgICBjb25zdCB3aWxsQ2hhbmdlID0gdmlzdWFsRWxlbWVudC5nZXRWYWx1ZShcIndpbGxDaGFuZ2VcIik7XG4gICAgLyoqXG4gICAgICogSXQgY291bGQgYmUgdGhhdCBhIHVzZXIgaGFzIHNldCB3aWxsQ2hhbmdlIHRvIGEgcmVndWxhciBNb3Rpb25WYWx1ZSxcbiAgICAgKiBpbiB3aGljaCBjYXNlIHdlIGNhbid0IGFkZCB0aGUgdmFsdWUgdG8gaXQuXG4gICAgICovXG4gICAgaWYgKGlzV2lsbENoYW5nZU1vdGlvblZhbHVlKHdpbGxDaGFuZ2UpKSB7XG4gICAgICAgIHJldHVybiB3aWxsQ2hhbmdlLmFkZChrZXkpO1xuICAgIH1cbiAgICBlbHNlIGlmICghd2lsbENoYW5nZSAmJiBNb3Rpb25HbG9iYWxDb25maWcuV2lsbENoYW5nZSkge1xuICAgICAgICBjb25zdCBuZXdXaWxsQ2hhbmdlID0gbmV3IE1vdGlvbkdsb2JhbENvbmZpZy5XaWxsQ2hhbmdlKFwiYXV0b1wiKTtcbiAgICAgICAgdmlzdWFsRWxlbWVudC5hZGRWYWx1ZShcIndpbGxDaGFuZ2VcIiwgbmV3V2lsbENoYW5nZSk7XG4gICAgICAgIG5ld1dpbGxDaGFuZ2UuYWRkKGtleSk7XG4gICAgfVxufVxuXG5leHBvcnQgeyBhZGRWYWx1ZVRvV2lsbENoYW5nZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWRkLXdpbGwtY2hhbmdlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/is.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/motion-dom/dist/es/value/will-change/is.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isWillChangeMotionValue: () => (/* binding */ isWillChangeMotionValue)\n/* harmony export */ });\n/* harmony import */ var _utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/is-motion-value.mjs */ \"(app-pages-browser)/./node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs\");\n\n\nfunction isWillChangeMotionValue(value) {\n return Boolean((0,_utils_is_motion_value_mjs__WEBPACK_IMPORTED_MODULE_0__.isMotionValue)(value) && value.add);\n}\n\n\n//# sourceMappingURL=is.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tZG9tL2Rpc3QvZXMvdmFsdWUvd2lsbC1jaGFuZ2UvaXMubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQTZEOztBQUU3RDtBQUNBLG1CQUFtQix5RUFBYTtBQUNoQzs7QUFFbUM7QUFDbkMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLWRvbS9kaXN0L2VzL3ZhbHVlL3dpbGwtY2hhbmdlL2lzLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc01vdGlvblZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvaXMtbW90aW9uLXZhbHVlLm1qcyc7XG5cbmZ1bmN0aW9uIGlzV2lsbENoYW5nZU1vdGlvblZhbHVlKHZhbHVlKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4oaXNNb3Rpb25WYWx1ZSh2YWx1ZSkgJiYgdmFsdWUuYWRkKTtcbn1cblxuZXhwb3J0IHsgaXNXaWxsQ2hhbmdlTW90aW9uVmFsdWUgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-dom/dist/es/value/will-change/is.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs": +/*!*****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/array.mjs ***! + \*****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ addUniqueItem: () => (/* binding */ addUniqueItem),\n/* harmony export */ moveItem: () => (/* binding */ moveItem),\n/* harmony export */ removeItem: () => (/* binding */ removeItem)\n/* harmony export */ });\nfunction addUniqueItem(arr, item) {\n if (arr.indexOf(item) === -1)\n arr.push(item);\n}\nfunction removeItem(arr, item) {\n const index = arr.indexOf(item);\n if (index > -1)\n arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem([...arr], fromIndex, toIndex) {\n const startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n const endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n const [item] = arr.splice(fromIndex, 1);\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\n\n//# sourceMappingURL=array.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9hcnJheS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRStDO0FBQy9DIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2FycmF5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBhZGRVbmlxdWVJdGVtKGFyciwgaXRlbSkge1xuICAgIGlmIChhcnIuaW5kZXhPZihpdGVtKSA9PT0gLTEpXG4gICAgICAgIGFyci5wdXNoKGl0ZW0pO1xufVxuZnVuY3Rpb24gcmVtb3ZlSXRlbShhcnIsIGl0ZW0pIHtcbiAgICBjb25zdCBpbmRleCA9IGFyci5pbmRleE9mKGl0ZW0pO1xuICAgIGlmIChpbmRleCA+IC0xKVxuICAgICAgICBhcnIuc3BsaWNlKGluZGV4LCAxKTtcbn1cbi8vIEFkYXB0ZWQgZnJvbSBhcnJheS1tb3ZlXG5mdW5jdGlvbiBtb3ZlSXRlbShbLi4uYXJyXSwgZnJvbUluZGV4LCB0b0luZGV4KSB7XG4gICAgY29uc3Qgc3RhcnRJbmRleCA9IGZyb21JbmRleCA8IDAgPyBhcnIubGVuZ3RoICsgZnJvbUluZGV4IDogZnJvbUluZGV4O1xuICAgIGlmIChzdGFydEluZGV4ID49IDAgJiYgc3RhcnRJbmRleCA8IGFyci5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgZW5kSW5kZXggPSB0b0luZGV4IDwgMCA/IGFyci5sZW5ndGggKyB0b0luZGV4IDogdG9JbmRleDtcbiAgICAgICAgY29uc3QgW2l0ZW1dID0gYXJyLnNwbGljZShmcm9tSW5kZXgsIDEpO1xuICAgICAgICBhcnIuc3BsaWNlKGVuZEluZGV4LCAwLCBpdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIGFycjtcbn1cblxuZXhwb3J0IHsgYWRkVW5pcXVlSXRlbSwgbW92ZUl0ZW0sIHJlbW92ZUl0ZW0gfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFycmF5Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs": +/*!*****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/clamp.mjs ***! + \*****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ clamp: () => (/* binding */ clamp)\n/* harmony export */ });\nconst clamp = (min, max, v) => {\n if (v > max)\n return max;\n if (v < min)\n return min;\n return v;\n};\n\n\n//# sourceMappingURL=clamp.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9jbGFtcC5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVpQjtBQUNqQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9jbGFtcC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY2xhbXAgPSAobWluLCBtYXgsIHYpID0+IHtcbiAgICBpZiAodiA+IG1heClcbiAgICAgICAgcmV0dXJuIG1heDtcbiAgICBpZiAodiA8IG1pbilcbiAgICAgICAgcmV0dXJuIG1pbjtcbiAgICByZXR1cm4gdjtcbn07XG5cbmV4cG9ydCB7IGNsYW1wIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jbGFtcC5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/clamp.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/anticipate.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ anticipate: () => (/* binding */ anticipate)\n/* harmony export */ });\n/* harmony import */ var _back_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./back.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n\n\nconst anticipate = (p) => (p *= 2) < 1 ? 0.5 * (0,_back_mjs__WEBPACK_IMPORTED_MODULE_0__.backIn)(p) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n\n\n//# sourceMappingURL=anticipate.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvYW50aWNpcGF0ZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBb0M7O0FBRXBDLCtDQUErQyxpREFBTTs7QUFFL0I7QUFDdEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2FudGljaXBhdGUubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhY2tJbiB9IGZyb20gJy4vYmFjay5tanMnO1xuXG5jb25zdCBhbnRpY2lwYXRlID0gKHApID0+IChwICo9IDIpIDwgMSA/IDAuNSAqIGJhY2tJbihwKSA6IDAuNSAqICgyIC0gTWF0aC5wb3coMiwgLTEwICogKHAgLSAxKSkpO1xuXG5leHBvcnQgeyBhbnRpY2lwYXRlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1hbnRpY2lwYXRlLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs": +/*!***********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/back.mjs ***! + \***********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ backIn: () => (/* binding */ backIn),\n/* harmony export */ backInOut: () => (/* binding */ backInOut),\n/* harmony export */ backOut: () => (/* binding */ backOut)\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n/* harmony import */ var _modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/mirror.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\");\n/* harmony import */ var _modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/reverse.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\");\n\n\n\n\nconst backOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.33, 1.53, 0.69, 0.99);\nconst backIn = /*@__PURE__*/ (0,_modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_1__.reverseEasing)(backOut);\nconst backInOut = /*@__PURE__*/ (0,_modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_2__.mirrorEasing)(backIn);\n\n\n//# sourceMappingURL=back.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvYmFjay5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQWlEO0FBQ0s7QUFDRTs7QUFFeEQsOEJBQThCLDhEQUFXO0FBQ3pDLDZCQUE2QixxRUFBYTtBQUMxQyxnQ0FBZ0MsbUVBQVk7O0FBRU47QUFDdEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2JhY2subWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1YmljQmV6aWVyIH0gZnJvbSAnLi9jdWJpYy1iZXppZXIubWpzJztcbmltcG9ydCB7IG1pcnJvckVhc2luZyB9IGZyb20gJy4vbW9kaWZpZXJzL21pcnJvci5tanMnO1xuaW1wb3J0IHsgcmV2ZXJzZUVhc2luZyB9IGZyb20gJy4vbW9kaWZpZXJzL3JldmVyc2UubWpzJztcblxuY29uc3QgYmFja091dCA9IC8qQF9fUFVSRV9fKi8gY3ViaWNCZXppZXIoMC4zMywgMS41MywgMC42OSwgMC45OSk7XG5jb25zdCBiYWNrSW4gPSAvKkBfX1BVUkVfXyovIHJldmVyc2VFYXNpbmcoYmFja091dCk7XG5jb25zdCBiYWNrSW5PdXQgPSAvKkBfX1BVUkVfXyovIG1pcnJvckVhc2luZyhiYWNrSW4pO1xuXG5leHBvcnQgeyBiYWNrSW4sIGJhY2tJbk91dCwgYmFja091dCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YmFjay5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs": +/*!***********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/circ.mjs ***! + \***********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ circIn: () => (/* binding */ circIn),\n/* harmony export */ circInOut: () => (/* binding */ circInOut),\n/* harmony export */ circOut: () => (/* binding */ circOut)\n/* harmony export */ });\n/* harmony import */ var _modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/mirror.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\");\n/* harmony import */ var _modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/reverse.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\");\n\n\n\nconst circIn = (p) => 1 - Math.sin(Math.acos(p));\nconst circOut = (0,_modifiers_reverse_mjs__WEBPACK_IMPORTED_MODULE_0__.reverseEasing)(circIn);\nconst circInOut = (0,_modifiers_mirror_mjs__WEBPACK_IMPORTED_MODULE_1__.mirrorEasing)(circIn);\n\n\n//# sourceMappingURL=circ.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvY2lyYy5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBc0Q7QUFDRTs7QUFFeEQ7QUFDQSxnQkFBZ0IscUVBQWE7QUFDN0Isa0JBQWtCLG1FQUFZOztBQUVRO0FBQ3RDIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9jaXJjLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtaXJyb3JFYXNpbmcgfSBmcm9tICcuL21vZGlmaWVycy9taXJyb3IubWpzJztcbmltcG9ydCB7IHJldmVyc2VFYXNpbmcgfSBmcm9tICcuL21vZGlmaWVycy9yZXZlcnNlLm1qcyc7XG5cbmNvbnN0IGNpcmNJbiA9IChwKSA9PiAxIC0gTWF0aC5zaW4oTWF0aC5hY29zKHApKTtcbmNvbnN0IGNpcmNPdXQgPSByZXZlcnNlRWFzaW5nKGNpcmNJbik7XG5jb25zdCBjaXJjSW5PdXQgPSBtaXJyb3JFYXNpbmcoY2lyY0luKTtcblxuZXhwb3J0IHsgY2lyY0luLCBjaXJjSW5PdXQsIGNpcmNPdXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWNpcmMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cubicBezier: () => (/* binding */ cubicBezier)\n/* harmony export */ });\n/* harmony import */ var _noop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../noop.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n\n\n/*\n Bezier function generator\n This has been modified from Gaëtan Renaudeau's BezierEasing\n https://github.com/gre/bezier-easing/blob/master/src/index.js\n https://github.com/gre/bezier-easing/blob/master/LICENSE\n \n I've removed the newtonRaphsonIterate algo because in benchmarking it\n wasn't noticeably faster than binarySubdivision, indeed removing it\n usually improved times, depending on the curve.\n I also removed the lookup table, as for the added bundle size and loop we're\n only cutting ~4 or so subdivision iterations. I bumped the max iterations up\n to 12 to compensate and this still tended to be faster for no perceivable\n loss in accuracy.\n Usage\n const easeOut = cubicBezier(.17,.67,.83,.67);\n const x = easeOut(0.5); // returns 0.627...\n*/\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nconst calcBezier = (t, a1, a2) => (((1.0 - 3.0 * a2 + 3.0 * a1) * t + (3.0 * a2 - 6.0 * a1)) * t + 3.0 * a1) *\n t;\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 12;\nfunction binarySubdivide(x, lowerBound, upperBound, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = lowerBound + (upperBound - lowerBound) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - x;\n if (currentX > 0.0) {\n upperBound = currentT;\n }\n else {\n lowerBound = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n // If this is a linear gradient, return linear easing\n if (mX1 === mY1 && mX2 === mY2)\n return _noop_mjs__WEBPACK_IMPORTED_MODULE_0__.noop;\n const getTForX = (aX) => binarySubdivide(aX, 0, 1, mX1, mX2);\n // If animation is at start/end, return t without easing\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\n\n//# sourceMappingURL=cubic-bezier.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvY3ViaWMtYmV6aWVyLm1qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFtQzs7QUFFbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsMkNBQUk7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7O0FBRXVCO0FBQ3ZCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9jdWJpYy1iZXppZXIubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi9ub29wLm1qcyc7XG5cbi8qXG4gIEJlemllciBmdW5jdGlvbiBnZW5lcmF0b3JcbiAgVGhpcyBoYXMgYmVlbiBtb2RpZmllZCBmcm9tIEdhw6t0YW4gUmVuYXVkZWF1J3MgQmV6aWVyRWFzaW5nXG4gIGh0dHBzOi8vZ2l0aHViLmNvbS9ncmUvYmV6aWVyLWVhc2luZy9ibG9iL21hc3Rlci9zcmMvaW5kZXguanNcbiAgaHR0cHM6Ly9naXRodWIuY29tL2dyZS9iZXppZXItZWFzaW5nL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAgXG4gIEkndmUgcmVtb3ZlZCB0aGUgbmV3dG9uUmFwaHNvbkl0ZXJhdGUgYWxnbyBiZWNhdXNlIGluIGJlbmNobWFya2luZyBpdFxuICB3YXNuJ3Qgbm90aWNlYWJseSBmYXN0ZXIgdGhhbiBiaW5hcnlTdWJkaXZpc2lvbiwgaW5kZWVkIHJlbW92aW5nIGl0XG4gIHVzdWFsbHkgaW1wcm92ZWQgdGltZXMsIGRlcGVuZGluZyBvbiB0aGUgY3VydmUuXG4gIEkgYWxzbyByZW1vdmVkIHRoZSBsb29rdXAgdGFibGUsIGFzIGZvciB0aGUgYWRkZWQgYnVuZGxlIHNpemUgYW5kIGxvb3Agd2UncmVcbiAgb25seSBjdXR0aW5nIH40IG9yIHNvIHN1YmRpdmlzaW9uIGl0ZXJhdGlvbnMuIEkgYnVtcGVkIHRoZSBtYXggaXRlcmF0aW9ucyB1cFxuICB0byAxMiB0byBjb21wZW5zYXRlIGFuZCB0aGlzIHN0aWxsIHRlbmRlZCB0byBiZSBmYXN0ZXIgZm9yIG5vIHBlcmNlaXZhYmxlXG4gIGxvc3MgaW4gYWNjdXJhY3kuXG4gIFVzYWdlXG4gICAgY29uc3QgZWFzZU91dCA9IGN1YmljQmV6aWVyKC4xNywuNjcsLjgzLC42Nyk7XG4gICAgY29uc3QgeCA9IGVhc2VPdXQoMC41KTsgLy8gcmV0dXJucyAwLjYyNy4uLlxuKi9cbi8vIFJldHVybnMgeCh0KSBnaXZlbiB0LCB4MSwgYW5kIHgyLCBvciB5KHQpIGdpdmVuIHQsIHkxLCBhbmQgeTIuXG5jb25zdCBjYWxjQmV6aWVyID0gKHQsIGExLCBhMikgPT4gKCgoMS4wIC0gMy4wICogYTIgKyAzLjAgKiBhMSkgKiB0ICsgKDMuMCAqIGEyIC0gNi4wICogYTEpKSAqIHQgKyAzLjAgKiBhMSkgKlxuICAgIHQ7XG5jb25zdCBzdWJkaXZpc2lvblByZWNpc2lvbiA9IDAuMDAwMDAwMTtcbmNvbnN0IHN1YmRpdmlzaW9uTWF4SXRlcmF0aW9ucyA9IDEyO1xuZnVuY3Rpb24gYmluYXJ5U3ViZGl2aWRlKHgsIGxvd2VyQm91bmQsIHVwcGVyQm91bmQsIG1YMSwgbVgyKSB7XG4gICAgbGV0IGN1cnJlbnRYO1xuICAgIGxldCBjdXJyZW50VDtcbiAgICBsZXQgaSA9IDA7XG4gICAgZG8ge1xuICAgICAgICBjdXJyZW50VCA9IGxvd2VyQm91bmQgKyAodXBwZXJCb3VuZCAtIGxvd2VyQm91bmQpIC8gMi4wO1xuICAgICAgICBjdXJyZW50WCA9IGNhbGNCZXppZXIoY3VycmVudFQsIG1YMSwgbVgyKSAtIHg7XG4gICAgICAgIGlmIChjdXJyZW50WCA+IDAuMCkge1xuICAgICAgICAgICAgdXBwZXJCb3VuZCA9IGN1cnJlbnRUO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbG93ZXJCb3VuZCA9IGN1cnJlbnRUO1xuICAgICAgICB9XG4gICAgfSB3aGlsZSAoTWF0aC5hYnMoY3VycmVudFgpID4gc3ViZGl2aXNpb25QcmVjaXNpb24gJiZcbiAgICAgICAgKytpIDwgc3ViZGl2aXNpb25NYXhJdGVyYXRpb25zKTtcbiAgICByZXR1cm4gY3VycmVudFQ7XG59XG5mdW5jdGlvbiBjdWJpY0JlemllcihtWDEsIG1ZMSwgbVgyLCBtWTIpIHtcbiAgICAvLyBJZiB0aGlzIGlzIGEgbGluZWFyIGdyYWRpZW50LCByZXR1cm4gbGluZWFyIGVhc2luZ1xuICAgIGlmIChtWDEgPT09IG1ZMSAmJiBtWDIgPT09IG1ZMilcbiAgICAgICAgcmV0dXJuIG5vb3A7XG4gICAgY29uc3QgZ2V0VEZvclggPSAoYVgpID0+IGJpbmFyeVN1YmRpdmlkZShhWCwgMCwgMSwgbVgxLCBtWDIpO1xuICAgIC8vIElmIGFuaW1hdGlvbiBpcyBhdCBzdGFydC9lbmQsIHJldHVybiB0IHdpdGhvdXQgZWFzaW5nXG4gICAgcmV0dXJuICh0KSA9PiB0ID09PSAwIHx8IHQgPT09IDEgPyB0IDogY2FsY0JlemllcihnZXRURm9yWCh0KSwgbVkxLCBtWTIpO1xufVxuXG5leHBvcnQgeyBjdWJpY0JlemllciB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9Y3ViaWMtYmV6aWVyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs": +/*!***********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/ease.mjs ***! + \***********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ easeIn: () => (/* binding */ easeIn),\n/* harmony export */ easeInOut: () => (/* binding */ easeInOut),\n/* harmony export */ easeOut: () => (/* binding */ easeOut)\n/* harmony export */ });\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n\n\nconst easeIn = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.42, 0, 1, 1);\nconst easeOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0, 0, 0.58, 1);\nconst easeInOut = /*@__PURE__*/ (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_0__.cubicBezier)(0.42, 0, 0.58, 1);\n\n\n//# sourceMappingURL=ease.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvZWFzZS5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFpRDs7QUFFakQsNkJBQTZCLDhEQUFXO0FBQ3hDLDhCQUE4Qiw4REFBVztBQUN6QyxnQ0FBZ0MsOERBQVc7O0FBRUw7QUFDdEMiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL2Vhc2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGN1YmljQmV6aWVyIH0gZnJvbSAnLi9jdWJpYy1iZXppZXIubWpzJztcblxuY29uc3QgZWFzZUluID0gLypAX19QVVJFX18qLyBjdWJpY0JlemllcigwLjQyLCAwLCAxLCAxKTtcbmNvbnN0IGVhc2VPdXQgPSAvKkBfX1BVUkVfXyovIGN1YmljQmV6aWVyKDAsIDAsIDAuNTgsIDEpO1xuY29uc3QgZWFzZUluT3V0ID0gLypAX19QVVJFX18qLyBjdWJpY0JlemllcigwLjQyLCAwLCAwLjU4LCAxKTtcblxuZXhwb3J0IHsgZWFzZUluLCBlYXNlSW5PdXQsIGVhc2VPdXQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWVhc2UubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs": +/*!***********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs ***! + \***********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ mirrorEasing: () => (/* binding */ mirrorEasing)\n/* harmony export */ });\n// Accepts an easing function and returns a new one that outputs mirrored values for\n// the second half of the animation. Turns easeIn into easeInOut.\nconst mirrorEasing = (easing) => (p) => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\n\n\n//# sourceMappingURL=mirror.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvbW9kaWZpZXJzL21pcnJvci5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTs7QUFFd0I7QUFDeEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL21vZGlmaWVycy9taXJyb3IubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFjY2VwdHMgYW4gZWFzaW5nIGZ1bmN0aW9uIGFuZCByZXR1cm5zIGEgbmV3IG9uZSB0aGF0IG91dHB1dHMgbWlycm9yZWQgdmFsdWVzIGZvclxuLy8gdGhlIHNlY29uZCBoYWxmIG9mIHRoZSBhbmltYXRpb24uIFR1cm5zIGVhc2VJbiBpbnRvIGVhc2VJbk91dC5cbmNvbnN0IG1pcnJvckVhc2luZyA9IChlYXNpbmcpID0+IChwKSA9PiBwIDw9IDAuNSA/IGVhc2luZygyICogcCkgLyAyIDogKDIgLSBlYXNpbmcoMiAqICgxIC0gcCkpKSAvIDI7XG5cbmV4cG9ydCB7IG1pcnJvckVhc2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWlycm9yLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ reverseEasing: () => (/* binding */ reverseEasing)\n/* harmony export */ });\n// Accepts an easing function and returns a new one that outputs reversed values.\n// Turns easeIn into easeOut.\nconst reverseEasing = (easing) => (p) => 1 - easing(1 - p);\n\n\n//# sourceMappingURL=reverse.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvbW9kaWZpZXJzL3JldmVyc2UubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRXlCO0FBQ3pCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2Vhc2luZy9tb2RpZmllcnMvcmV2ZXJzZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQWNjZXB0cyBhbiBlYXNpbmcgZnVuY3Rpb24gYW5kIHJldHVybnMgYSBuZXcgb25lIHRoYXQgb3V0cHV0cyByZXZlcnNlZCB2YWx1ZXMuXG4vLyBUdXJucyBlYXNlSW4gaW50byBlYXNlT3V0LlxuY29uc3QgcmV2ZXJzZUVhc2luZyA9IChlYXNpbmcpID0+IChwKSA9PiAxIC0gZWFzaW5nKDEgLSBwKTtcblxuZXhwb3J0IHsgcmV2ZXJzZUVhc2luZyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmV2ZXJzZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs": +/*!*********************************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs ***! + \*********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isBezierDefinition: () => (/* binding */ isBezierDefinition)\n/* harmony export */ });\nconst isBezierDefinition = (easing) => Array.isArray(easing) && typeof easing[0] === \"number\";\n\n\n//# sourceMappingURL=is-bezier-definition.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvaXMtYmV6aWVyLWRlZmluaXRpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTs7QUFFOEI7QUFDOUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZWFzaW5nL3V0aWxzL2lzLWJlemllci1kZWZpbml0aW9uLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc0JlemllckRlZmluaXRpb24gPSAoZWFzaW5nKSA9PiBBcnJheS5pc0FycmF5KGVhc2luZykgJiYgdHlwZW9mIGVhc2luZ1swXSA9PT0gXCJudW1iZXJcIjtcblxuZXhwb3J0IHsgaXNCZXppZXJEZWZpbml0aW9uIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy1iZXppZXItZGVmaW5pdGlvbi5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs": +/*!****************************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs ***! + \****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isEasingArray: () => (/* binding */ isEasingArray)\n/* harmony export */ });\nconst isEasingArray = (ease) => {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\n\n//# sourceMappingURL=is-easing-array.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvaXMtZWFzaW5nLWFycmF5Lm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBOztBQUV5QjtBQUN6QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvaXMtZWFzaW5nLWFycmF5Lm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc0Vhc2luZ0FycmF5ID0gKGVhc2UpID0+IHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShlYXNlKSAmJiB0eXBlb2YgZWFzZVswXSAhPT0gXCJudW1iZXJcIjtcbn07XG5cbmV4cG9ydCB7IGlzRWFzaW5nQXJyYXkgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLWVhc2luZy1hcnJheS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs": +/*!****************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/easing/utils/map.mjs ***! + \****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ easingDefinitionToFunction: () => (/* binding */ easingDefinitionToFunction)\n/* harmony export */ });\n/* harmony import */ var _errors_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../errors.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\");\n/* harmony import */ var _noop_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../noop.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\");\n/* harmony import */ var _anticipate_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../anticipate.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/anticipate.mjs\");\n/* harmony import */ var _back_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../back.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/back.mjs\");\n/* harmony import */ var _circ_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../circ.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/circ.mjs\");\n/* harmony import */ var _cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../cubic-bezier.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs\");\n/* harmony import */ var _ease_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../ease.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/ease.mjs\");\n/* harmony import */ var _is_bezier_definition_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./is-bezier-definition.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs\");\n\n\n\n\n\n\n\n\n\nconst easingLookup = {\n linear: _noop_mjs__WEBPACK_IMPORTED_MODULE_0__.noop,\n easeIn: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeIn,\n easeInOut: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeInOut,\n easeOut: _ease_mjs__WEBPACK_IMPORTED_MODULE_1__.easeOut,\n circIn: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circIn,\n circInOut: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circInOut,\n circOut: _circ_mjs__WEBPACK_IMPORTED_MODULE_2__.circOut,\n backIn: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backIn,\n backInOut: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backInOut,\n backOut: _back_mjs__WEBPACK_IMPORTED_MODULE_3__.backOut,\n anticipate: _anticipate_mjs__WEBPACK_IMPORTED_MODULE_4__.anticipate,\n};\nconst isValidEasing = (easing) => {\n return typeof easing === \"string\";\n};\nconst easingDefinitionToFunction = (definition) => {\n if ((0,_is_bezier_definition_mjs__WEBPACK_IMPORTED_MODULE_5__.isBezierDefinition)(definition)) {\n // If cubic bezier definition, create bezier curve\n (0,_errors_mjs__WEBPACK_IMPORTED_MODULE_6__.invariant)(definition.length === 4, `Cubic bezier arrays must contain four numerical values.`, \"cubic-bezier-length\");\n const [x1, y1, x2, y2] = definition;\n return (0,_cubic_bezier_mjs__WEBPACK_IMPORTED_MODULE_7__.cubicBezier)(x1, y1, x2, y2);\n }\n else if (isValidEasing(definition)) {\n // Else lookup from table\n (0,_errors_mjs__WEBPACK_IMPORTED_MODULE_6__.invariant)(easingLookup[definition] !== undefined, `Invalid easing type '${definition}'`, \"invalid-easing-type\");\n return easingLookup[definition];\n }\n return definition;\n};\n\n\n//# sourceMappingURL=map.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvbWFwLm1qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBNkM7QUFDUDtBQUNTO0FBQ1U7QUFDQTtBQUNQO0FBQ087QUFDTzs7QUFFaEU7QUFDQSxZQUFZLDJDQUFJO0FBQ2hCLFVBQVU7QUFDVixhQUFhO0FBQ2IsV0FBVztBQUNYLFVBQVU7QUFDVixhQUFhO0FBQ2IsV0FBVztBQUNYLFVBQVU7QUFDVixhQUFhO0FBQ2IsV0FBVztBQUNYLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw2RUFBa0I7QUFDMUI7QUFDQSxRQUFRLHNEQUFTO0FBQ2pCO0FBQ0EsZUFBZSw4REFBVztBQUMxQjtBQUNBO0FBQ0E7QUFDQSxRQUFRLHNEQUFTLGlFQUFpRSxXQUFXO0FBQzdGO0FBQ0E7QUFDQTtBQUNBOztBQUVzQztBQUN0QyIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lYXNpbmcvdXRpbHMvbWFwLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnZhcmlhbnQgfSBmcm9tICcuLi8uLi9lcnJvcnMubWpzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9ub29wLm1qcyc7XG5pbXBvcnQgeyBhbnRpY2lwYXRlIH0gZnJvbSAnLi4vYW50aWNpcGF0ZS5tanMnO1xuaW1wb3J0IHsgYmFja0luLCBiYWNrSW5PdXQsIGJhY2tPdXQgfSBmcm9tICcuLi9iYWNrLm1qcyc7XG5pbXBvcnQgeyBjaXJjSW4sIGNpcmNJbk91dCwgY2lyY091dCB9IGZyb20gJy4uL2NpcmMubWpzJztcbmltcG9ydCB7IGN1YmljQmV6aWVyIH0gZnJvbSAnLi4vY3ViaWMtYmV6aWVyLm1qcyc7XG5pbXBvcnQgeyBlYXNlSW4sIGVhc2VJbk91dCwgZWFzZU91dCB9IGZyb20gJy4uL2Vhc2UubWpzJztcbmltcG9ydCB7IGlzQmV6aWVyRGVmaW5pdGlvbiB9IGZyb20gJy4vaXMtYmV6aWVyLWRlZmluaXRpb24ubWpzJztcblxuY29uc3QgZWFzaW5nTG9va3VwID0ge1xuICAgIGxpbmVhcjogbm9vcCxcbiAgICBlYXNlSW4sXG4gICAgZWFzZUluT3V0LFxuICAgIGVhc2VPdXQsXG4gICAgY2lyY0luLFxuICAgIGNpcmNJbk91dCxcbiAgICBjaXJjT3V0LFxuICAgIGJhY2tJbixcbiAgICBiYWNrSW5PdXQsXG4gICAgYmFja091dCxcbiAgICBhbnRpY2lwYXRlLFxufTtcbmNvbnN0IGlzVmFsaWRFYXNpbmcgPSAoZWFzaW5nKSA9PiB7XG4gICAgcmV0dXJuIHR5cGVvZiBlYXNpbmcgPT09IFwic3RyaW5nXCI7XG59O1xuY29uc3QgZWFzaW5nRGVmaW5pdGlvblRvRnVuY3Rpb24gPSAoZGVmaW5pdGlvbikgPT4ge1xuICAgIGlmIChpc0JlemllckRlZmluaXRpb24oZGVmaW5pdGlvbikpIHtcbiAgICAgICAgLy8gSWYgY3ViaWMgYmV6aWVyIGRlZmluaXRpb24sIGNyZWF0ZSBiZXppZXIgY3VydmVcbiAgICAgICAgaW52YXJpYW50KGRlZmluaXRpb24ubGVuZ3RoID09PSA0LCBgQ3ViaWMgYmV6aWVyIGFycmF5cyBtdXN0IGNvbnRhaW4gZm91ciBudW1lcmljYWwgdmFsdWVzLmAsIFwiY3ViaWMtYmV6aWVyLWxlbmd0aFwiKTtcbiAgICAgICAgY29uc3QgW3gxLCB5MSwgeDIsIHkyXSA9IGRlZmluaXRpb247XG4gICAgICAgIHJldHVybiBjdWJpY0Jlemllcih4MSwgeTEsIHgyLCB5Mik7XG4gICAgfVxuICAgIGVsc2UgaWYgKGlzVmFsaWRFYXNpbmcoZGVmaW5pdGlvbikpIHtcbiAgICAgICAgLy8gRWxzZSBsb29rdXAgZnJvbSB0YWJsZVxuICAgICAgICBpbnZhcmlhbnQoZWFzaW5nTG9va3VwW2RlZmluaXRpb25dICE9PSB1bmRlZmluZWQsIGBJbnZhbGlkIGVhc2luZyB0eXBlICcke2RlZmluaXRpb259J2AsIFwiaW52YWxpZC1lYXNpbmctdHlwZVwiKTtcbiAgICAgICAgcmV0dXJuIGVhc2luZ0xvb2t1cFtkZWZpbml0aW9uXTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG59O1xuXG5leHBvcnQgeyBlYXNpbmdEZWZpbml0aW9uVG9GdW5jdGlvbiB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWFwLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/easing/utils/map.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs": +/*!******************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/errors.mjs ***! + \******************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ invariant: () => (/* binding */ invariant),\n/* harmony export */ warning: () => (/* binding */ warning)\n/* harmony export */ });\n/* harmony import */ var _format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./format-error-message.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs\");\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"(app-pages-browser)/./node_modules/next/dist/build/polyfills/process.js\");\n\n\nlet warning = () => { };\nlet invariant = () => { };\nif (typeof process !== \"undefined\" &&\n \"development\" !== \"production\") {\n warning = (check, message, errorCode) => {\n if (!check && typeof console !== \"undefined\") {\n console.warn((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\n }\n };\n invariant = (check, message, errorCode) => {\n if (!check) {\n throw new Error((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\n }\n };\n}\n\n\n//# sourceMappingURL=errors.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lcnJvcnMubWpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBZ0U7O0FBRWhFO0FBQ0E7QUFDQSxXQUFXLE9BQU87QUFDbEIsSUFBSSxhQUFxQjtBQUN6QjtBQUNBO0FBQ0EseUJBQXlCLDZFQUFrQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBLDRCQUE0Qiw2RUFBa0I7QUFDOUM7QUFDQTtBQUNBOztBQUU4QjtBQUM5QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9lcnJvcnMubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4vZm9ybWF0LWVycm9yLW1lc3NhZ2UubWpzJztcblxubGV0IHdhcm5pbmcgPSAoKSA9PiB7IH07XG5sZXQgaW52YXJpYW50ID0gKCkgPT4geyB9O1xuaWYgKHR5cGVvZiBwcm9jZXNzICE9PSBcInVuZGVmaW5lZFwiICYmXG4gICAgcHJvY2Vzcy5lbnY/Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHdhcm5pbmcgPSAoY2hlY2ssIG1lc3NhZ2UsIGVycm9yQ29kZSkgPT4ge1xuICAgICAgICBpZiAoIWNoZWNrICYmIHR5cGVvZiBjb25zb2xlICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oZm9ybWF0RXJyb3JNZXNzYWdlKG1lc3NhZ2UsIGVycm9yQ29kZSkpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBpbnZhcmlhbnQgPSAoY2hlY2ssIG1lc3NhZ2UsIGVycm9yQ29kZSkgPT4ge1xuICAgICAgICBpZiAoIWNoZWNrKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZm9ybWF0RXJyb3JNZXNzYWdlKG1lc3NhZ2UsIGVycm9yQ29kZSkpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuZXhwb3J0IHsgaW52YXJpYW50LCB3YXJuaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1lcnJvcnMubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/errors.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/format-error-message.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ formatErrorMessage: () => (/* binding */ formatErrorMessage)\n/* harmony export */ });\nfunction formatErrorMessage(message, errorCode) {\n return errorCode\n ? `${message}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${errorCode}`\n : message;\n}\n\n\n//# sourceMappingURL=format-error-message.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9mb3JtYXQtZXJyb3ItbWVzc2FnZS5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQSxhQUFhLFFBQVEseUZBQXlGLFVBQVU7QUFDeEg7QUFDQTs7QUFFOEI7QUFDOUIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvZm9ybWF0LWVycm9yLW1lc3NhZ2UubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIGZvcm1hdEVycm9yTWVzc2FnZShtZXNzYWdlLCBlcnJvckNvZGUpIHtcbiAgICByZXR1cm4gZXJyb3JDb2RlXG4gICAgICAgID8gYCR7bWVzc2FnZX0uIEZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBzdGVwcyBmb3Igc29sdmluZywgdmlzaXQgaHR0cHM6Ly9tb3Rpb24uZGV2L3Ryb3VibGVzaG9vdGluZy8ke2Vycm9yQ29kZX1gXG4gICAgICAgIDogbWVzc2FnZTtcbn1cblxuZXhwb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1mb3JtYXQtZXJyb3ItbWVzc2FnZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs": +/*!*************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/global-config.mjs ***! + \*************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MotionGlobalConfig: () => (/* binding */ MotionGlobalConfig)\n/* harmony export */ });\nconst MotionGlobalConfig = {};\n\n\n//# sourceMappingURL=global-config.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9nbG9iYWwtY29uZmlnLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7O0FBRThCO0FBQzlCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2dsb2JhbC1jb25maWcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE1vdGlvbkdsb2JhbENvbmZpZyA9IHt9O1xuXG5leHBvcnQgeyBNb3Rpb25HbG9iYWxDb25maWcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWdsb2JhbC1jb25maWcubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/global-config.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/is-numerical-string.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isNumericalString: () => (/* binding */ isNumericalString)\n/* harmony export */ });\n/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nconst isNumericalString = (v) => /^-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)$/u.test(v);\n\n\n//# sourceMappingURL=is-numerical-string.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy1udW1lcmljYWwtc3RyaW5nLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRTZCO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2lzLW51bWVyaWNhbC1zdHJpbmcubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2hlY2sgaWYgdmFsdWUgaXMgYSBudW1lcmljYWwgc3RyaW5nLCBpZSBhIHN0cmluZyB0aGF0IGlzIHB1cmVseSBhIG51bWJlciBlZyBcIjEwMFwiIG9yIFwiLTEwMC4xXCJcbiAqL1xuY29uc3QgaXNOdW1lcmljYWxTdHJpbmcgPSAodikgPT4gL14tPyg/OlxcZCsoPzpcXC5cXGQrKT98XFwuXFxkKykkL3UudGVzdCh2KTtcblxuZXhwb3J0IHsgaXNOdW1lcmljYWxTdHJpbmcgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWlzLW51bWVyaWNhbC1zdHJpbmcubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/is-numerical-string.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/is-object.mjs ***! + \*********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isObject: () => (/* binding */ isObject)\n/* harmony export */ });\nfunction isObject(value) {\n return typeof value === \"object\" && value !== null;\n}\n\n\n//# sourceMappingURL=is-object.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy1vYmplY3QubWpzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7O0FBRW9CO0FBQ3BCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL2lzLW9iamVjdC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gaXNPYmplY3QodmFsdWUpIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlICE9PSBudWxsO1xufVxuXG5leHBvcnQgeyBpc09iamVjdCB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aXMtb2JqZWN0Lm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/is-object.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/is-zero-value-string.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ isZeroValueString: () => (/* binding */ isZeroValueString)\n/* harmony export */ });\n/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nconst isZeroValueString = (v) => /^0[^.\\s]+$/u.test(v);\n\n\n//# sourceMappingURL=is-zero-value-string.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy16ZXJvLXZhbHVlLXN0cmluZy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBOztBQUU2QjtBQUM3QiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9pcy16ZXJvLXZhbHVlLXN0cmluZy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDaGVjayBpZiB0aGUgdmFsdWUgaXMgYSB6ZXJvIHZhbHVlIHN0cmluZyBsaWtlIFwiMHB4XCIgb3IgXCIwJVwiXG4gKi9cbmNvbnN0IGlzWmVyb1ZhbHVlU3RyaW5nID0gKHYpID0+IC9eMFteLlxcc10rJC91LnRlc3Qodik7XG5cbmV4cG9ydCB7IGlzWmVyb1ZhbHVlU3RyaW5nIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1pcy16ZXJvLXZhbHVlLXN0cmluZy5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/is-zero-value-string.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs": +/*!****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/memo.mjs ***! + \****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ memo: () => (/* binding */ memo)\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\nfunction memo(callback) {\n let result;\n return () => {\n if (result === undefined)\n result = callback();\n return result;\n };\n}\n\n\n//# sourceMappingURL=memo.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9tZW1vLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVnQjtBQUNoQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9tZW1vLm1qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiNfX05PX1NJREVfRUZGRUNUU19fKi9cbmZ1bmN0aW9uIG1lbW8oY2FsbGJhY2spIHtcbiAgICBsZXQgcmVzdWx0O1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgIHJlc3VsdCA9IGNhbGxiYWNrKCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbn1cblxuZXhwb3J0IHsgbWVtbyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bWVtby5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/memo.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs": +/*!****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/noop.mjs ***! + \****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ noop: () => (/* binding */ noop)\n/* harmony export */ });\n/*#__NO_SIDE_EFFECTS__*/\nconst noop = (any) => any;\n\n\n//# sourceMappingURL=noop.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9ub29wLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTs7QUFFZ0I7QUFDaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvbm9vcC5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyojX19OT19TSURFX0VGRkVDVFNfXyovXG5jb25zdCBub29wID0gKGFueSkgPT4gYW55O1xuXG5leHBvcnQgeyBub29wIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1ub29wLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/noop.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs": +/*!****************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/pipe.mjs ***! + \****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ pipe: () => (/* binding */ pipe)\n/* harmony export */ });\n/**\n * Pipe\n * Compose other transformers to run linearily\n * pipe(min(20), max(40))\n * @param {...functions} transformers\n * @return {function}\n */\nconst combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\n\n//# sourceMappingURL=pipe.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9waXBlLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGNBQWM7QUFDMUIsWUFBWTtBQUNaO0FBQ0E7QUFDQTs7QUFFZ0I7QUFDaEIiLCJzb3VyY2VzIjpbIi9Vc2Vycy9tYXR0YnJ1Y2UvRG9jdW1lbnRzL1Byb2plY3RzL09wZW5DbGF3L1dlYi9oZWFydGJlYXQtbW9uaXRvci9ub2RlX21vZHVsZXMvbW90aW9uLXV0aWxzL2Rpc3QvZXMvcGlwZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQaXBlXG4gKiBDb21wb3NlIG90aGVyIHRyYW5zZm9ybWVycyB0byBydW4gbGluZWFyaWx5XG4gKiBwaXBlKG1pbigyMCksIG1heCg0MCkpXG4gKiBAcGFyYW0gIHsuLi5mdW5jdGlvbnN9IHRyYW5zZm9ybWVyc1xuICogQHJldHVybiB7ZnVuY3Rpb259XG4gKi9cbmNvbnN0IGNvbWJpbmVGdW5jdGlvbnMgPSAoYSwgYikgPT4gKHYpID0+IGIoYSh2KSk7XG5jb25zdCBwaXBlID0gKC4uLnRyYW5zZm9ybWVycykgPT4gdHJhbnNmb3JtZXJzLnJlZHVjZShjb21iaW5lRnVuY3Rpb25zKTtcblxuZXhwb3J0IHsgcGlwZSB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cGlwZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/pipe.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs": +/*!********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/progress.mjs ***! + \********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ progress: () => (/* binding */ progress)\n/* harmony export */ });\n/*\n Progress within given range\n\n Given a lower limit and an upper limit, we return the progress\n (expressed as a number 0-1) represented by the given value, and\n limit that progress to within 0-1.\n\n @param [number]: Lower limit\n @param [number]: Upper limit\n @param [number]: Value to find progress within given range\n @return [number]: Progress of value within range as expressed 0-1\n*/\n/*#__NO_SIDE_EFFECTS__*/\nconst progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\n\n//# sourceMappingURL=progress.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9wcm9ncmVzcy5tanMiLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVvQjtBQUNwQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9wcm9ncmVzcy5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgUHJvZ3Jlc3Mgd2l0aGluIGdpdmVuIHJhbmdlXG5cbiAgR2l2ZW4gYSBsb3dlciBsaW1pdCBhbmQgYW4gdXBwZXIgbGltaXQsIHdlIHJldHVybiB0aGUgcHJvZ3Jlc3NcbiAgKGV4cHJlc3NlZCBhcyBhIG51bWJlciAwLTEpIHJlcHJlc2VudGVkIGJ5IHRoZSBnaXZlbiB2YWx1ZSwgYW5kXG4gIGxpbWl0IHRoYXQgcHJvZ3Jlc3MgdG8gd2l0aGluIDAtMS5cblxuICBAcGFyYW0gW251bWJlcl06IExvd2VyIGxpbWl0XG4gIEBwYXJhbSBbbnVtYmVyXTogVXBwZXIgbGltaXRcbiAgQHBhcmFtIFtudW1iZXJdOiBWYWx1ZSB0byBmaW5kIHByb2dyZXNzIHdpdGhpbiBnaXZlbiByYW5nZVxuICBAcmV0dXJuIFtudW1iZXJdOiBQcm9ncmVzcyBvZiB2YWx1ZSB3aXRoaW4gcmFuZ2UgYXMgZXhwcmVzc2VkIDAtMVxuKi9cbi8qI19fTk9fU0lERV9FRkZFQ1RTX18qL1xuY29uc3QgcHJvZ3Jlc3MgPSAoZnJvbSwgdG8sIHZhbHVlKSA9PiB7XG4gICAgY29uc3QgdG9Gcm9tRGlmZmVyZW5jZSA9IHRvIC0gZnJvbTtcbiAgICByZXR1cm4gdG9Gcm9tRGlmZmVyZW5jZSA9PT0gMCA/IDEgOiAodmFsdWUgLSBmcm9tKSAvIHRvRnJvbURpZmZlcmVuY2U7XG59O1xuXG5leHBvcnQgeyBwcm9ncmVzcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cHJvZ3Jlc3MubWpzLm1hcFxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/progress.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs": +/*!********************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/subscription-manager.mjs ***! + \********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ SubscriptionManager: () => (/* binding */ SubscriptionManager)\n/* harmony export */ });\n/* harmony import */ var _array_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./array.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/array.mjs\");\n\n\nclass SubscriptionManager {\n constructor() {\n this.subscriptions = [];\n }\n add(handler) {\n (0,_array_mjs__WEBPACK_IMPORTED_MODULE_0__.addUniqueItem)(this.subscriptions, handler);\n return () => (0,_array_mjs__WEBPACK_IMPORTED_MODULE_0__.removeItem)(this.subscriptions, handler);\n }\n notify(a, b, c) {\n const numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (let i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n const handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n }\n getSize() {\n return this.subscriptions.length;\n }\n clear() {\n this.subscriptions.length = 0;\n }\n}\n\n\n//# sourceMappingURL=subscription-manager.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9zdWJzY3JpcHRpb24tbWFuYWdlci5tanMiLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBd0Q7O0FBRXhEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLHlEQUFhO0FBQ3JCLHFCQUFxQixzREFBVTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsc0JBQXNCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUUrQjtBQUMvQiIsInNvdXJjZXMiOlsiL1VzZXJzL21hdHRicnVjZS9Eb2N1bWVudHMvUHJvamVjdHMvT3BlbkNsYXcvV2ViL2hlYXJ0YmVhdC1tb25pdG9yL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy9zdWJzY3JpcHRpb24tbWFuYWdlci5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkVW5pcXVlSXRlbSwgcmVtb3ZlSXRlbSB9IGZyb20gJy4vYXJyYXkubWpzJztcblxuY2xhc3MgU3Vic2NyaXB0aW9uTWFuYWdlciB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIH1cbiAgICBhZGQoaGFuZGxlcikge1xuICAgICAgICBhZGRVbmlxdWVJdGVtKHRoaXMuc3Vic2NyaXB0aW9ucywgaGFuZGxlcik7XG4gICAgICAgIHJldHVybiAoKSA9PiByZW1vdmVJdGVtKHRoaXMuc3Vic2NyaXB0aW9ucywgaGFuZGxlcik7XG4gICAgfVxuICAgIG5vdGlmeShhLCBiLCBjKSB7XG4gICAgICAgIGNvbnN0IG51bVN1YnNjcmlwdGlvbnMgPSB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoO1xuICAgICAgICBpZiAoIW51bVN1YnNjcmlwdGlvbnMpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChudW1TdWJzY3JpcHRpb25zID09PSAxKSB7XG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIElmIHRoZXJlJ3Mgb25seSBhIHNpbmdsZSBoYW5kbGVyIHdlIGNhbiBqdXN0IGNhbGwgaXQgd2l0aG91dCBpbnZva2luZyBhIGxvb3AuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uc1swXShhLCBiLCBjKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbnVtU3Vic2NyaXB0aW9uczsgaSsrKSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQ2hlY2sgd2hldGhlciB0aGUgaGFuZGxlciBleGlzdHMgYmVmb3JlIGZpcmluZyBhcyBpdCdzIHBvc3NpYmxlXG4gICAgICAgICAgICAgICAgICogdGhlIHN1YnNjcmlwdGlvbnMgd2VyZSBtb2RpZmllZCBkdXJpbmcgdGhpcyBsb29wIHJ1bm5pbmcuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlciA9IHRoaXMuc3Vic2NyaXB0aW9uc1tpXTtcbiAgICAgICAgICAgICAgICBoYW5kbGVyICYmIGhhbmRsZXIoYSwgYiwgYyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0U2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9ucy5sZW5ndGg7XG4gICAgfVxuICAgIGNsZWFyKCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoID0gMDtcbiAgICB9XG59XG5cbmV4cG9ydCB7IFN1YnNjcmlwdGlvbk1hbmFnZXIgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXN1YnNjcmlwdGlvbi1tYW5hZ2VyLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/subscription-manager.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/time-conversion.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ millisecondsToSeconds: () => (/* binding */ millisecondsToSeconds),\n/* harmony export */ secondsToMilliseconds: () => (/* binding */ secondsToMilliseconds)\n/* harmony export */ });\n/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\n/*#__NO_SIDE_EFFECTS__*/\nconst secondsToMilliseconds = (seconds) => seconds * 1000;\n/*#__NO_SIDE_EFFECTS__*/\nconst millisecondsToSeconds = (milliseconds) => milliseconds / 1000;\n\n\n//# sourceMappingURL=time-conversion.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy90aW1lLWNvbnZlcnNpb24ubWpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRXdEO0FBQ3hEIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL3RpbWUtY29udmVyc2lvbi5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb252ZXJ0cyBzZWNvbmRzIHRvIG1pbGxpc2Vjb25kc1xuICpcbiAqIEBwYXJhbSBzZWNvbmRzIC0gVGltZSBpbiBzZWNvbmRzLlxuICogQHJldHVybiBtaWxsaXNlY29uZHMgLSBDb252ZXJ0ZWQgdGltZSBpbiBtaWxsaXNlY29uZHMuXG4gKi9cbi8qI19fTk9fU0lERV9FRkZFQ1RTX18qL1xuY29uc3Qgc2Vjb25kc1RvTWlsbGlzZWNvbmRzID0gKHNlY29uZHMpID0+IHNlY29uZHMgKiAxMDAwO1xuLyojX19OT19TSURFX0VGRkVDVFNfXyovXG5jb25zdCBtaWxsaXNlY29uZHNUb1NlY29uZHMgPSAobWlsbGlzZWNvbmRzKSA9PiBtaWxsaXNlY29uZHMgLyAxMDAwO1xuXG5leHBvcnQgeyBtaWxsaXNlY29uZHNUb1NlY29uZHMsIHNlY29uZHNUb01pbGxpc2Vjb25kcyB9O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dGltZS1jb252ZXJzaW9uLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/time-conversion.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/velocity-per-second.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ velocityPerSecond: () => (/* binding */ velocityPerSecond)\n/* harmony export */ });\n/*\n Convert velocity into velocity per second\n\n @param [number]: Unit per frame\n @param [number]: Frame duration in ms\n*/\nfunction velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\n\n//# sourceMappingURL=velocity-per-second.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy92ZWxvY2l0eS1wZXItc2Vjb25kLm1qcyIsIm1hcHBpbmdzIjoiOzs7O0FBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRTZCO0FBQzdCIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL3ZlbG9jaXR5LXBlci1zZWNvbmQubWpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gIENvbnZlcnQgdmVsb2NpdHkgaW50byB2ZWxvY2l0eSBwZXIgc2Vjb25kXG5cbiAgQHBhcmFtIFtudW1iZXJdOiBVbml0IHBlciBmcmFtZVxuICBAcGFyYW0gW251bWJlcl06IEZyYW1lIGR1cmF0aW9uIGluIG1zXG4qL1xuZnVuY3Rpb24gdmVsb2NpdHlQZXJTZWNvbmQodmVsb2NpdHksIGZyYW1lRHVyYXRpb24pIHtcbiAgICByZXR1cm4gZnJhbWVEdXJhdGlvbiA/IHZlbG9jaXR5ICogKDEwMDAgLyBmcmFtZUR1cmF0aW9uKSA6IDA7XG59XG5cbmV4cG9ydCB7IHZlbG9jaXR5UGVyU2Vjb25kIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD12ZWxvY2l0eS1wZXItc2Vjb25kLm1qcy5tYXBcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/velocity-per-second.mjs\n")); + +/***/ }), + +/***/ "(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs": +/*!*********************************************************!*\ + !*** ./node_modules/motion-utils/dist/es/warn-once.mjs ***! + \*********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ hasWarned: () => (/* binding */ hasWarned),\n/* harmony export */ warnOnce: () => (/* binding */ warnOnce)\n/* harmony export */ });\n/* harmony import */ var _format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./format-error-message.mjs */ \"(app-pages-browser)/./node_modules/motion-utils/dist/es/format-error-message.mjs\");\n\n\nconst warned = new Set();\nfunction hasWarned(message) {\n return warned.has(message);\n}\nfunction warnOnce(condition, message, errorCode) {\n if (condition || warned.has(message))\n return;\n console.warn((0,_format_error_message_mjs__WEBPACK_IMPORTED_MODULE_0__.formatErrorMessage)(message, errorCode));\n warned.add(message);\n}\n\n\n//# sourceMappingURL=warn-once.mjs.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9tb3Rpb24tdXRpbHMvZGlzdC9lcy93YXJuLW9uY2UubWpzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUFnRTs7QUFFaEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsNkVBQWtCO0FBQ25DO0FBQ0E7O0FBRStCO0FBQy9CIiwic291cmNlcyI6WyIvVXNlcnMvbWF0dGJydWNlL0RvY3VtZW50cy9Qcm9qZWN0cy9PcGVuQ2xhdy9XZWIvaGVhcnRiZWF0LW1vbml0b3Ivbm9kZV9tb2R1bGVzL21vdGlvbi11dGlscy9kaXN0L2VzL3dhcm4tb25jZS5tanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi9mb3JtYXQtZXJyb3ItbWVzc2FnZS5tanMnO1xuXG5jb25zdCB3YXJuZWQgPSBuZXcgU2V0KCk7XG5mdW5jdGlvbiBoYXNXYXJuZWQobWVzc2FnZSkge1xuICAgIHJldHVybiB3YXJuZWQuaGFzKG1lc3NhZ2UpO1xufVxuZnVuY3Rpb24gd2Fybk9uY2UoY29uZGl0aW9uLCBtZXNzYWdlLCBlcnJvckNvZGUpIHtcbiAgICBpZiAoY29uZGl0aW9uIHx8IHdhcm5lZC5oYXMobWVzc2FnZSkpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zb2xlLndhcm4oZm9ybWF0RXJyb3JNZXNzYWdlKG1lc3NhZ2UsIGVycm9yQ29kZSkpO1xuICAgIHdhcm5lZC5hZGQobWVzc2FnZSk7XG59XG5cbmV4cG9ydCB7IGhhc1dhcm5lZCwgd2Fybk9uY2UgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXdhcm4tb25jZS5tanMubWFwXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/motion-utils/dist/es/warn-once.mjs\n")); + +/***/ }) + +}); \ No newline at end of file diff --git a/.next/static/webpack/c9bbb778f39c5d29.webpack.hot-update.json b/.next/static/webpack/c9bbb778f39c5d29.webpack.hot-update.json new file mode 100644 index 00000000..3823c4ce --- /dev/null +++ b/.next/static/webpack/c9bbb778f39c5d29.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/e53ddb03c3e18945.webpack.hot-update.json b/.next/static/webpack/e53ddb03c3e18945.webpack.hot-update.json new file mode 100644 index 00000000..3823c4ce --- /dev/null +++ b/.next/static/webpack/e53ddb03c3e18945.webpack.hot-update.json @@ -0,0 +1 @@ +{"c":["webpack"],"r":[],"m":[]} \ No newline at end of file diff --git a/.next/static/webpack/webpack.18279f93be89f6d1.hot-update.js b/.next/static/webpack/webpack.18279f93be89f6d1.hot-update.js new file mode 100644 index 00000000..26a263ba --- /dev/null +++ b/.next/static/webpack/webpack.18279f93be89f6d1.hot-update.js @@ -0,0 +1,18 @@ +"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/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ (() => { +/******/ __webpack_require__.h = () => ("35acde78c9b1f17c") +/******/ })(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.c9bbb778f39c5d29.hot-update.js b/.next/static/webpack/webpack.c9bbb778f39c5d29.hot-update.js new file mode 100644 index 00000000..e252f6bf --- /dev/null +++ b/.next/static/webpack/webpack.c9bbb778f39c5d29.hot-update.js @@ -0,0 +1,18 @@ +"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/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/getFullHash */ +/******/ (() => { +/******/ __webpack_require__.h = () => ("18279f93be89f6d1") +/******/ })(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/static/webpack/webpack.e53ddb03c3e18945.hot-update.js b/.next/static/webpack/webpack.e53ddb03c3e18945.hot-update.js new file mode 100644 index 00000000..77bfe3dc --- /dev/null +++ b/.next/static/webpack/webpack.e53ddb03c3e18945.hot-update.js @@ -0,0 +1,30 @@ +"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/). + */ +self["webpackHotUpdate_N_E"]("webpack",{}, +/******/ function(__webpack_require__) { // webpackRuntimeModules +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/getFullHash */ +/******/ (() => { +/******/ __webpack_require__.h = () => ("c9bbb778f39c5d29") +/******/ })(); +/******/ +/******/ } +); \ No newline at end of file diff --git a/.next/trace b/.next/trace index a6a73a38..eab7f0a7 100644 --- a/.next/trace +++ b/.next/trace @@ -1,13 +1,16 @@ -[{"name":"hot-reloader","duration":32,"timestamp":69635313577,"id":3,"tags":{"version":"15.1.6"},"startTime":1771453803108,"traceId":"ce4ce4f408d7dd97"},{"name":"start","duration":5,"timestamp":69635313986,"id":4,"parentId":3,"tags":{},"startTime":1771453803108,"traceId":"ce4ce4f408d7dd97"},{"name":"get-version-info","duration":166336,"timestamp":69635314076,"id":5,"parentId":4,"tags":{},"startTime":1771453803108,"traceId":"ce4ce4f408d7dd97"},{"name":"clean","duration":3981,"timestamp":69635480536,"id":6,"parentId":4,"tags":{},"startTime":1771453803275,"traceId":"ce4ce4f408d7dd97"},{"name":"create-pages-mapping","duration":120,"timestamp":69635486249,"id":8,"parentId":7,"tags":{},"startTime":1771453803280,"traceId":"ce4ce4f408d7dd97"},{"name":"create-entrypoints","duration":14721,"timestamp":69635486382,"id":9,"parentId":7,"tags":{},"startTime":1771453803280,"traceId":"ce4ce4f408d7dd97"},{"name":"generate-webpack-config","duration":53446,"timestamp":69635501134,"id":10,"parentId":7,"tags":{},"startTime":1771453803295,"traceId":"ce4ce4f408d7dd97"},{"name":"get-webpack-config","duration":68402,"timestamp":69635486188,"id":7,"parentId":4,"tags":{},"startTime":1771453803280,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":494,"timestamp":69635587876,"id":12,"parentId":11,"tags":{},"startTime":1771453803382,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":374,"timestamp":69635589135,"id":14,"parentId":13,"tags":{},"startTime":1771453803383,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":12,"timestamp":69635589551,"id":16,"parentId":13,"tags":{},"startTime":1771453803384,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":66,"timestamp":69635589614,"id":17,"parentId":13,"tags":{},"startTime":1771453803384,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":10,"timestamp":69635589720,"id":18,"parentId":13,"tags":{},"startTime":1771453803384,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":6,"timestamp":69635589800,"id":19,"parentId":13,"tags":{},"startTime":1771453803384,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":314,"timestamp":69635589535,"id":15,"parentId":13,"tags":{},"startTime":1771453803384,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":44,"timestamp":69635590101,"id":20,"parentId":13,"tags":{},"startTime":1771453803384,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":75,"timestamp":69635590156,"id":21,"parentId":13,"tags":{},"startTime":1771453803384,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":211,"timestamp":69635590349,"id":22,"parentId":13,"tags":{},"startTime":1771453803384,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":27,"timestamp":69635590559,"id":23,"parentId":13,"tags":{},"startTime":1771453803385,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":33,"timestamp":69635590577,"id":24,"parentId":13,"tags":{},"startTime":1771453803385,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":111,"timestamp":69635590613,"id":25,"parentId":13,"tags":{},"startTime":1771453803385,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-generateClientManifest","duration":486,"timestamp":69635616865,"id":27,"parentId":11,"tags":{},"startTime":1771453803411,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-createassets","duration":682,"timestamp":69635616676,"id":26,"parentId":11,"tags":{},"startTime":1771453803411,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":28835,"timestamp":69635589054,"id":13,"parentId":11,"tags":{},"startTime":1771453803383,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":31570,"timestamp":69635586424,"id":11,"parentId":3,"tags":{"name":"client"},"startTime":1771453803380,"traceId":"ce4ce4f408d7dd97"},{"name":"emit","duration":1834,"timestamp":69635618153,"id":28,"parentId":3,"tags":{},"startTime":1771453803412,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":542,"timestamp":69635623025,"id":30,"parentId":29,"tags":{},"startTime":1771453803417,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":12,"timestamp":69635623636,"id":32,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":2,"timestamp":69635623656,"id":34,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":18,"timestamp":69635623683,"id":35,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":2,"timestamp":69635623707,"id":36,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":17,"timestamp":69635623763,"id":37,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":161,"timestamp":69635623654,"id":33,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":4,"timestamp":69635623876,"id":38,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":3,"timestamp":69635623885,"id":39,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":40,"timestamp":69635623905,"id":40,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":12,"timestamp":69635623945,"id":41,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":8,"timestamp":69635623954,"id":42,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":8,"timestamp":69635623966,"id":43,"parentId":31,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":800,"timestamp":69635623621,"id":31,"parentId":29,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":1855,"timestamp":69635622618,"id":29,"parentId":3,"tags":{"name":"server"},"startTime":1771453803417,"traceId":"ce4ce4f408d7dd97"},{"name":"emit","duration":634,"timestamp":69635624495,"id":44,"parentId":3,"tags":{},"startTime":1771453803418,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":77,"timestamp":69635626615,"id":46,"parentId":45,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":12,"timestamp":69635626910,"id":48,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":2,"timestamp":69635626934,"id":50,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":4,"timestamp":69635626945,"id":51,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":2,"timestamp":69635626957,"id":52,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69635626967,"id":53,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":48,"timestamp":69635626927,"id":49,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":3,"timestamp":69635627018,"id":54,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":3,"timestamp":69635627025,"id":55,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":25,"timestamp":69635627045,"id":56,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":7,"timestamp":69635627071,"id":57,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":3,"timestamp":69635627076,"id":58,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":5,"timestamp":69635627081,"id":59,"parentId":47,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":438,"timestamp":69635626897,"id":47,"parentId":45,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":1215,"timestamp":69635626135,"id":45,"parentId":3,"tags":{"name":"edge-server"},"startTime":1771453803420,"traceId":"ce4ce4f408d7dd97"},{"name":"emit","duration":722,"timestamp":69635627365,"id":60,"parentId":3,"tags":{},"startTime":1771453803421,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"make","duration":375,"timestamp":69635853513,"id":65,"parentId":64,"tags":{},"startTime":1771453803648,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":60,"timestamp":69635854203,"id":67,"parentId":66,"tags":{},"startTime":1771453803648,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":8,"timestamp":69635854314,"id":69,"parentId":66,"tags":{},"startTime":1771453803648,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":15,"timestamp":69635854347,"id":70,"parentId":66,"tags":{},"startTime":1771453803648,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":9,"timestamp":69635854385,"id":71,"parentId":66,"tags":{},"startTime":1771453803648,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":7,"timestamp":69635854428,"id":72,"parentId":66,"tags":{},"startTime":1771453803648,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":178,"timestamp":69635854304,"id":68,"parentId":66,"tags":{},"startTime":1771453803648,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":12,"timestamp":69635854649,"id":73,"parentId":66,"tags":{},"startTime":1771453803649,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":11,"timestamp":69635854673,"id":74,"parentId":66,"tags":{},"startTime":1771453803649,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":452,"timestamp":69635854731,"id":75,"parentId":66,"tags":{},"startTime":1771453803649,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":49,"timestamp":69635855181,"id":76,"parentId":66,"tags":{},"startTime":1771453803649,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":18,"timestamp":69635855217,"id":77,"parentId":66,"tags":{},"startTime":1771453803649,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":33,"timestamp":69635855241,"id":78,"parentId":66,"tags":{},"startTime":1771453803649,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-generateClientManifest","duration":466,"timestamp":69635855603,"id":80,"parentId":64,"tags":{},"startTime":1771453803650,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-createassets","duration":585,"timestamp":69635855499,"id":79,"parentId":64,"tags":{},"startTime":1771453803649,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":2192,"timestamp":69635854144,"id":66,"parentId":64,"tags":{},"startTime":1771453803648,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":4409,"timestamp":69635851980,"id":64,"parentId":61,"tags":{"name":"client"},"startTime":1771453803646,"traceId":"ce4ce4f408d7dd97"},{"name":"emit","duration":6579,"timestamp":69635856447,"id":81,"parentId":61,"tags":{},"startTime":1771453803650,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-client","duration":18003,"timestamp":69635846319,"id":61,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453803640,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":230,"timestamp":69635866421,"id":83,"parentId":82,"tags":{},"startTime":1771453803660,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":26,"timestamp":69635866823,"id":85,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":3,"timestamp":69635866860,"id":87,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":44,"timestamp":69635866878,"id":88,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":4,"timestamp":69635866931,"id":89,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69635866952,"id":90,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":115,"timestamp":69635866856,"id":86,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":9,"timestamp":69635867169,"id":91,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":6,"timestamp":69635867184,"id":92,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":32,"timestamp":69635867214,"id":93,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":16,"timestamp":69635867247,"id":94,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":6,"timestamp":69635867258,"id":95,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":11,"timestamp":69635867268,"id":96,"parentId":84,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":795,"timestamp":69635866787,"id":84,"parentId":82,"tags":{},"startTime":1771453803661,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":1949,"timestamp":69635865663,"id":82,"parentId":62,"tags":{"name":"server"},"startTime":1771453803660,"traceId":"ce4ce4f408d7dd97"},{"name":"setup-dev-bundler","duration":685028,"timestamp":69635213395,"id":2,"parentId":1,"tags":{},"startTime":1771453803007,"traceId":"ce4ce4f408d7dd97"},{"name":"emit","duration":31802,"timestamp":69635867627,"id":97,"parentId":62,"tags":{},"startTime":1771453803662,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-server","duration":53175,"timestamp":69635846569,"id":62,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453803641,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":98,"timestamp":69635900846,"id":99,"parentId":98,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":19,"timestamp":69635901059,"id":101,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":4,"timestamp":69635901089,"id":103,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":11,"timestamp":69635901101,"id":104,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":3,"timestamp":69635901120,"id":105,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69635901134,"id":106,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":65,"timestamp":69635901084,"id":102,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":5,"timestamp":69635901208,"id":107,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":5,"timestamp":69635901218,"id":108,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":30,"timestamp":69635901240,"id":109,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":12,"timestamp":69635901270,"id":110,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":6,"timestamp":69635901277,"id":111,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":8,"timestamp":69635901287,"id":112,"parentId":100,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":425,"timestamp":69635901032,"id":100,"parentId":98,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":938,"timestamp":69635900535,"id":98,"parentId":63,"tags":{"name":"edge-server"},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"run-instrumentation-hook","duration":9,"timestamp":69635921930,"id":114,"parentId":1,"tags":{},"startTime":1771453803716,"traceId":"ce4ce4f408d7dd97"},{"name":"emit","duration":22792,"timestamp":69635901485,"id":113,"parentId":63,"tags":{},"startTime":1771453803695,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-edge-server","duration":78113,"timestamp":69635846606,"id":63,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453803641,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"start-dev-server","duration":930675,"timestamp":69634996385,"id":1,"tags":{"cpus":"12","platform":"darwin","memory.freeMem":"655704064","memory.totalMem":"51539607552","memory.heapSizeLimit":"25971130368","memory.rss":"304578560","memory.heapTotal":"136511488","memory.heapUsed":"113609384"},"startTime":1771453802790,"traceId":"ce4ce4f408d7dd97"},{"name":"client-success","duration":3,"timestamp":69635929084,"id":115,"parentId":3,"tags":{},"startTime":1771453803723,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":399,"timestamp":69635932962,"id":116,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/423737f34be5c1f0.webpack.hot-update.json"},"startTime":1771453803727,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":41,"timestamp":69635933374,"id":117,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/423737f34be5c1f0.webpack.hot-update.json"},"startTime":1771453803727,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":55,"timestamp":69635933582,"id":118,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/423737f34be5c1f0.webpack.hot-update.json"},"startTime":1771453803728,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":41,"timestamp":69635933649,"id":119,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/423737f34be5c1f0.webpack.hot-update.json"},"startTime":1771453803728,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":62502,"timestamp":69635939055,"id":127,"parentId":126,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453803733,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":92987,"timestamp":69635939262,"id":129,"parentId":126,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771453803733,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":110467,"timestamp":69635939246,"id":128,"parentId":126,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771453803733,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":111522,"timestamp":69635938264,"id":126,"parentId":125,"tags":{},"startTime":1771453803732,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":2048,"timestamp":69636052715,"id":131,"parentId":130,"tags":{},"startTime":1771453803847,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":9,"timestamp":69636054803,"id":133,"parentId":130,"tags":{},"startTime":1771453803849,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":67,"timestamp":69636054823,"id":134,"parentId":130,"tags":{},"startTime":1771453803849,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":4,"timestamp":69636054899,"id":135,"parentId":130,"tags":{},"startTime":1771453803849,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69636054910,"id":136,"parentId":130,"tags":{},"startTime":1771453803849,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":374,"timestamp":69636054775,"id":132,"parentId":130,"tags":{},"startTime":1771453803849,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":3220,"timestamp":69636056627,"id":137,"parentId":130,"tags":{},"startTime":1771453803851,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":842,"timestamp":69636059861,"id":138,"parentId":130,"tags":{},"startTime":1771453803854,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":5290,"timestamp":69636062580,"id":139,"parentId":130,"tags":{},"startTime":1771453803857,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":168,"timestamp":69636067869,"id":140,"parentId":130,"tags":{},"startTime":1771453803862,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":48,"timestamp":69636068031,"id":141,"parentId":130,"tags":{},"startTime":1771453803862,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":1368,"timestamp":69636068083,"id":142,"parentId":130,"tags":{},"startTime":1771453803862,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-generateClientManifest","duration":43,"timestamp":69636069847,"id":144,"parentId":125,"tags":{},"startTime":1771453803864,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-createassets","duration":182,"timestamp":69636069711,"id":143,"parentId":125,"tags":{},"startTime":1771453803864,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":18552,"timestamp":69636052283,"id":130,"parentId":125,"tags":{},"startTime":1771453803846,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":132895,"timestamp":69635937961,"id":125,"parentId":122,"tags":{"name":"client"},"startTime":1771453803732,"traceId":"ce4ce4f408d7dd97"},{"name":"emit","duration":2166,"timestamp":69636070873,"id":145,"parentId":122,"tags":{},"startTime":1771453803865,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-client","duration":136552,"timestamp":69635937082,"id":122,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453803731,"traceId":"ce4ce4f408d7dd97"},{"name":"client-success","duration":3,"timestamp":69636075330,"id":148,"parentId":3,"tags":{},"startTime":1771453803869,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":91573,"timestamp":69636075635,"id":149,"parentId":147,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453803870,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":124859,"timestamp":69636074598,"id":147,"parentId":146,"tags":{},"startTime":1771453803869,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":1198,"timestamp":69636201429,"id":156,"parentId":155,"tags":{},"startTime":1771453803995,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":3,"timestamp":69636202641,"id":158,"parentId":155,"tags":{},"startTime":1771453803997,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":1434,"timestamp":69636202653,"id":159,"parentId":155,"tags":{},"startTime":1771453803997,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":4,"timestamp":69636204096,"id":160,"parentId":155,"tags":{},"startTime":1771453803998,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69636204108,"id":161,"parentId":155,"tags":{},"startTime":1771453803998,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":1718,"timestamp":69636202636,"id":157,"parentId":155,"tags":{},"startTime":1771453803997,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":1842,"timestamp":69636205712,"id":162,"parentId":155,"tags":{},"startTime":1771453804000,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":830,"timestamp":69636207570,"id":163,"parentId":155,"tags":{},"startTime":1771453804002,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":876,"timestamp":69636209206,"id":164,"parentId":155,"tags":{},"startTime":1771453804003,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":72,"timestamp":69636210082,"id":165,"parentId":155,"tags":{},"startTime":1771453804004,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":31,"timestamp":69636210147,"id":166,"parentId":155,"tags":{},"startTime":1771453804004,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":12030,"timestamp":69636210181,"id":167,"parentId":155,"tags":{},"startTime":1771453804004,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":22233,"timestamp":69636201222,"id":155,"parentId":146,"tags":{},"startTime":1771453803995,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":150137,"timestamp":69636074380,"id":146,"parentId":124,"tags":{"name":"server"},"startTime":1771453803868,"traceId":"ce4ce4f408d7dd97"},{"name":"emit","duration":4572,"timestamp":69636224536,"id":168,"parentId":124,"tags":{},"startTime":1771453804019,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-server","duration":292342,"timestamp":69635937187,"id":124,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453803731,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":3466,"timestamp":69636233285,"id":171,"parentId":170,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453804027,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":3662,"timestamp":69636233358,"id":175,"parentId":170,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771453804027,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":10940,"timestamp":69636233328,"id":172,"parentId":170,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771453804027,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":24502,"timestamp":69636233341,"id":173,"parentId":170,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453804027,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":24795,"timestamp":69636233354,"id":174,"parentId":170,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453804027,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":26909,"timestamp":69636231272,"id":170,"parentId":169,"tags":{},"startTime":1771453804025,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":748,"timestamp":69636259185,"id":177,"parentId":176,"tags":{},"startTime":1771453804053,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":3,"timestamp":69636259944,"id":179,"parentId":176,"tags":{},"startTime":1771453804054,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":21,"timestamp":69636259955,"id":180,"parentId":176,"tags":{},"startTime":1771453804054,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":5,"timestamp":69636259983,"id":181,"parentId":176,"tags":{},"startTime":1771453804054,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69636259995,"id":182,"parentId":176,"tags":{},"startTime":1771453804054,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":352,"timestamp":69636259941,"id":178,"parentId":176,"tags":{},"startTime":1771453804054,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":368,"timestamp":69636260867,"id":183,"parentId":176,"tags":{},"startTime":1771453804055,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":368,"timestamp":69636261240,"id":184,"parentId":176,"tags":{},"startTime":1771453804055,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":1296,"timestamp":69636262358,"id":185,"parentId":176,"tags":{},"startTime":1771453804056,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":77,"timestamp":69636263654,"id":186,"parentId":176,"tags":{},"startTime":1771453804058,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":34,"timestamp":69636263726,"id":187,"parentId":176,"tags":{},"startTime":1771453804058,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":874,"timestamp":69636263763,"id":188,"parentId":176,"tags":{},"startTime":1771453804058,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-generateClientManifest","duration":43,"timestamp":69636265345,"id":190,"parentId":169,"tags":{},"startTime":1771453804059,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-createassets","duration":130,"timestamp":69636265261,"id":189,"parentId":169,"tags":{},"startTime":1771453804059,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":7567,"timestamp":69636258977,"id":176,"parentId":169,"tags":{},"startTime":1771453804053,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":35542,"timestamp":69636231024,"id":169,"parentId":154,"tags":{"name":"client"},"startTime":1771453804025,"traceId":"ce4ce4f408d7dd97"},{"name":"emit","duration":1240,"timestamp":69636266584,"id":191,"parentId":154,"tags":{},"startTime":1771453804061,"traceId":"ce4ce4f408d7dd97"},{"name":"compile-path","duration":331147,"timestamp":69635937093,"id":123,"tags":{"trigger":"/_not-found"},"startTime":1771453803731,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-client","duration":94051,"timestamp":69636174404,"id":154,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453803968,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"ensure-page","duration":332163,"timestamp":69635936468,"id":121,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453803730,"traceId":"ce4ce4f408d7dd97"},{"name":"client-success","duration":2,"timestamp":69636269499,"id":193,"parentId":3,"tags":{},"startTime":1771453804063,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":1224,"timestamp":69636268935,"id":192,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453804063,"traceId":"ce4ce4f408d7dd97"},{"name":"handle-request","duration":441405,"timestamp":69635934158,"id":120,"tags":{"url":"/_next/static/webpack/423737f34be5c1f0.webpack.hot-update.json"},"startTime":1771453803728,"traceId":"ce4ce4f408d7dd97"},{"name":"memory-usage","duration":0,"timestamp":69636375592,"id":194,"parentId":120,"tags":{"url":"/_next/static/webpack/423737f34be5c1f0.webpack.hot-update.json","memory.rss":"620068864","memory.heapUsed":"206896368","memory.heapTotal":"294453248"},"startTime":1771453804170,"traceId":"ce4ce4f408d7dd97"},{"name":"client-full-reload","duration":1,"timestamp":69636379110,"id":195,"parentId":3,"tags":{"stackTrace":""},"startTime":1771453804173,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":5436,"timestamp":69636391327,"id":202,"parentId":201,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453804185,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":7609,"timestamp":69636391355,"id":203,"parentId":201,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453804185,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":66238,"timestamp":69636390736,"id":201,"parentId":200,"tags":{},"startTime":1771453804185,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":978,"timestamp":69636458343,"id":216,"parentId":215,"tags":{},"startTime":1771453804252,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":3,"timestamp":69636459333,"id":218,"parentId":215,"tags":{},"startTime":1771453804253,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":788,"timestamp":69636459343,"id":219,"parentId":215,"tags":{},"startTime":1771453804253,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":5,"timestamp":69636460140,"id":220,"parentId":215,"tags":{},"startTime":1771453804254,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69636460156,"id":221,"parentId":215,"tags":{},"startTime":1771453804254,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":1045,"timestamp":69636459329,"id":217,"parentId":215,"tags":{},"startTime":1771453804253,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":321,"timestamp":69636461471,"id":222,"parentId":215,"tags":{},"startTime":1771453804255,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":408,"timestamp":69636461802,"id":223,"parentId":215,"tags":{},"startTime":1771453804256,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":551,"timestamp":69636462694,"id":224,"parentId":215,"tags":{},"startTime":1771453804257,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":70,"timestamp":69636463244,"id":225,"parentId":215,"tags":{},"startTime":1771453804257,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":48,"timestamp":69636463303,"id":226,"parentId":215,"tags":{},"startTime":1771453804257,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":956,"timestamp":69636463355,"id":227,"parentId":215,"tags":{},"startTime":1771453804257,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":9491,"timestamp":69636457989,"id":215,"parentId":200,"tags":{},"startTime":1771453804252,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":78469,"timestamp":69636390440,"id":200,"parentId":198,"tags":{"name":"server"},"startTime":1771453804184,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-server","duration":81116,"timestamp":69636389204,"id":198,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453804183,"traceId":"ce4ce4f408d7dd97"},{"name":"client-error","duration":3,"timestamp":69636473963,"id":230,"parentId":3,"tags":{"errorCount":8},"startTime":1771453804268,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":2475,"timestamp":69636474266,"id":231,"parentId":229,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453804268,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":2673,"timestamp":69636474307,"id":236,"parentId":229,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771453804268,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":3142,"timestamp":69636474301,"id":233,"parentId":229,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453804268,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":4692,"timestamp":69636474303,"id":234,"parentId":229,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453804268,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":5747,"timestamp":69636474296,"id":232,"parentId":229,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771453804268,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":54010,"timestamp":69636474305,"id":235,"parentId":229,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453804268,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":57019,"timestamp":69636471333,"id":229,"parentId":228,"tags":{},"startTime":1771453804265,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":630,"timestamp":69636529460,"id":238,"parentId":237,"tags":{},"startTime":1771453804323,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":10,"timestamp":69636530148,"id":240,"parentId":237,"tags":{},"startTime":1771453804324,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":32,"timestamp":69636530173,"id":241,"parentId":237,"tags":{},"startTime":1771453804324,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":5,"timestamp":69636530218,"id":242,"parentId":237,"tags":{},"startTime":1771453804324,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":4,"timestamp":69636530236,"id":243,"parentId":237,"tags":{},"startTime":1771453804324,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":500,"timestamp":69636530117,"id":239,"parentId":237,"tags":{},"startTime":1771453804324,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":295,"timestamp":69636531130,"id":244,"parentId":237,"tags":{},"startTime":1771453804325,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":422,"timestamp":69636531432,"id":245,"parentId":237,"tags":{},"startTime":1771453804325,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":1319,"timestamp":69636532625,"id":246,"parentId":237,"tags":{},"startTime":1771453804327,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":58,"timestamp":69636533944,"id":247,"parentId":237,"tags":{},"startTime":1771453804328,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":41,"timestamp":69636533996,"id":248,"parentId":237,"tags":{},"startTime":1771453804328,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":827,"timestamp":69636534040,"id":249,"parentId":237,"tags":{},"startTime":1771453804328,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-generateClientManifest","duration":39,"timestamp":69636535242,"id":251,"parentId":228,"tags":{},"startTime":1771453804329,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-createassets","duration":80,"timestamp":69636535207,"id":250,"parentId":228,"tags":{},"startTime":1771453804329,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":7907,"timestamp":69636529196,"id":237,"parentId":228,"tags":{},"startTime":1771453804323,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":65979,"timestamp":69636471139,"id":228,"parentId":214,"tags":{"name":"client"},"startTime":1771453804265,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-client","duration":137640,"timestamp":69636400046,"id":214,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453804194,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"ensure-page","duration":150121,"timestamp":69636387688,"id":197,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453804182,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":400,"timestamp":69636539611,"id":252,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453804334,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":207,"timestamp":69636540083,"id":253,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453804334,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":51556,"timestamp":69636553697,"id":256,"parentId":255,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453804348,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":59166,"timestamp":69636553719,"id":257,"parentId":255,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"},"startTime":1771453804348,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":70692,"timestamp":69636553724,"id":259,"parentId":255,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1771453804348,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":70707,"timestamp":69636553728,"id":261,"parentId":255,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1771453804348,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":70710,"timestamp":69636553726,"id":260,"parentId":255,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/router.js"},"startTime":1771453804348,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":72313,"timestamp":69636553722,"id":258,"parentId":255,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1771453804348,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":72494,"timestamp":69636553645,"id":255,"parentId":254,"tags":{},"startTime":1771453804348,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":985,"timestamp":69636627130,"id":263,"parentId":262,"tags":{},"startTime":1771453804421,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":2,"timestamp":69636628125,"id":265,"parentId":262,"tags":{},"startTime":1771453804422,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":24,"timestamp":69636628136,"id":266,"parentId":262,"tags":{},"startTime":1771453804422,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":4,"timestamp":69636628166,"id":267,"parentId":262,"tags":{},"startTime":1771453804422,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69636628178,"id":268,"parentId":262,"tags":{},"startTime":1771453804422,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":67,"timestamp":69636628122,"id":264,"parentId":262,"tags":{},"startTime":1771453804422,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":1520,"timestamp":69636629141,"id":269,"parentId":262,"tags":{},"startTime":1771453804423,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":373,"timestamp":69636630670,"id":270,"parentId":262,"tags":{},"startTime":1771453804425,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":1071,"timestamp":69636631851,"id":271,"parentId":262,"tags":{},"startTime":1771453804426,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":81,"timestamp":69636632923,"id":272,"parentId":262,"tags":{},"startTime":1771453804427,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":53,"timestamp":69636632972,"id":273,"parentId":262,"tags":{},"startTime":1771453804427,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":56,"timestamp":69636633028,"id":274,"parentId":262,"tags":{},"startTime":1771453804427,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-createassets","duration":52,"timestamp":69636633236,"id":275,"parentId":254,"tags":{},"startTime":1771453804427,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":7534,"timestamp":69636626951,"id":262,"parentId":254,"tags":{},"startTime":1771453804421,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":81160,"timestamp":69636553373,"id":254,"parentId":3,"tags":{"name":"client"},"startTime":1771453804347,"traceId":"ce4ce4f408d7dd97"},{"name":"emit","duration":3660,"timestamp":69636634601,"id":276,"parentId":3,"tags":{},"startTime":1771453804429,"traceId":"ce4ce4f408d7dd97"},{"name":"client-error","duration":1,"timestamp":69636641727,"id":283,"parentId":3,"tags":{"errorCount":8},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":3393,"timestamp":69636641921,"id":286,"parentId":282,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":3537,"timestamp":69636641934,"id":294,"parentId":282,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":4051,"timestamp":69636641928,"id":291,"parentId":282,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":8303,"timestamp":69636641900,"id":284,"parentId":282,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":14132,"timestamp":69636641930,"id":292,"parentId":282,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":19886,"timestamp":69636641923,"id":287,"parentId":282,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":35956,"timestamp":69636641926,"id":289,"parentId":282,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":35960,"timestamp":69636641927,"id":290,"parentId":282,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/router.js"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":35972,"timestamp":69636641924,"id":288,"parentId":282,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":35964,"timestamp":69636641935,"id":295,"parentId":282,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":36513,"timestamp":69636641918,"id":285,"parentId":282,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":40454,"timestamp":69636641933,"id":293,"parentId":282,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":40854,"timestamp":69636641560,"id":282,"parentId":281,"tags":{},"startTime":1771453804436,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":1003,"timestamp":69636684079,"id":297,"parentId":296,"tags":{},"startTime":1771453804478,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":55,"timestamp":69636685090,"id":299,"parentId":296,"tags":{},"startTime":1771453804479,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":57,"timestamp":69636685193,"id":300,"parentId":296,"tags":{},"startTime":1771453804479,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":3,"timestamp":69636685262,"id":301,"parentId":296,"tags":{},"startTime":1771453804479,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69636685274,"id":302,"parentId":296,"tags":{},"startTime":1771453804479,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":643,"timestamp":69636685087,"id":298,"parentId":296,"tags":{},"startTime":1771453804479,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":1581,"timestamp":69636686791,"id":303,"parentId":296,"tags":{},"startTime":1771453804481,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":761,"timestamp":69636688379,"id":304,"parentId":296,"tags":{},"startTime":1771453804482,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":1573,"timestamp":69636690023,"id":305,"parentId":296,"tags":{},"startTime":1771453804484,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":68,"timestamp":69636691597,"id":306,"parentId":296,"tags":{},"startTime":1771453804486,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":56,"timestamp":69636691657,"id":307,"parentId":296,"tags":{},"startTime":1771453804486,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":1094,"timestamp":69636691716,"id":308,"parentId":296,"tags":{},"startTime":1771453804486,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-generateClientManifest","duration":122,"timestamp":69636693202,"id":310,"parentId":281,"tags":{},"startTime":1771453804487,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-createassets","duration":183,"timestamp":69636693143,"id":309,"parentId":281,"tags":{},"startTime":1771453804487,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":11191,"timestamp":69636683714,"id":296,"parentId":281,"tags":{},"startTime":1771453804478,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":53539,"timestamp":69636641379,"id":281,"parentId":278,"tags":{"name":"client"},"startTime":1771453804435,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-client","duration":55245,"timestamp":69636640272,"id":278,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453804434,"traceId":"ce4ce4f408d7dd97"},{"name":"client-added-page","duration":1,"timestamp":69636697760,"id":313,"parentId":3,"tags":{"page":"/_error"},"startTime":1771453804492,"traceId":"ce4ce4f408d7dd97"},{"name":"client-added-page","duration":0,"timestamp":69636697794,"id":314,"parentId":3,"tags":{"page":"/_app"},"startTime":1771453804492,"traceId":"ce4ce4f408d7dd97"},{"name":"client-error","duration":0,"timestamp":69636697813,"id":315,"parentId":3,"tags":{"errorCount":8},"startTime":1771453804492,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":6913,"timestamp":69636698384,"id":317,"parentId":312,"tags":{"request":"next/dist/pages/_app"},"startTime":1771453804492,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":7855,"timestamp":69636698391,"id":321,"parentId":312,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453804492,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":13095,"timestamp":69636698388,"id":319,"parentId":312,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453804492,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":13274,"timestamp":69636698364,"id":316,"parentId":312,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771453804492,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":13250,"timestamp":69636698389,"id":320,"parentId":312,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771453804492,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":13450,"timestamp":69636698386,"id":318,"parentId":312,"tags":{"request":"next/dist/pages/_document"},"startTime":1771453804492,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":27849,"timestamp":69636696527,"id":312,"parentId":311,"tags":{},"startTime":1771453804491,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":1168,"timestamp":69636725421,"id":335,"parentId":334,"tags":{},"startTime":1771453804519,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":1,"timestamp":69636726603,"id":337,"parentId":334,"tags":{},"startTime":1771453804521,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":936,"timestamp":69636726612,"id":338,"parentId":334,"tags":{},"startTime":1771453804521,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":4,"timestamp":69636727558,"id":339,"parentId":334,"tags":{},"startTime":1771453804522,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69636727570,"id":340,"parentId":334,"tags":{},"startTime":1771453804522,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":1278,"timestamp":69636726598,"id":336,"parentId":334,"tags":{},"startTime":1771453804521,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":379,"timestamp":69636728623,"id":341,"parentId":334,"tags":{},"startTime":1771453804523,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":468,"timestamp":69636729012,"id":342,"parentId":334,"tags":{},"startTime":1771453804523,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":562,"timestamp":69636729945,"id":343,"parentId":334,"tags":{},"startTime":1771453804524,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":39,"timestamp":69636730507,"id":344,"parentId":334,"tags":{},"startTime":1771453804524,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":45,"timestamp":69636730542,"id":345,"parentId":334,"tags":{},"startTime":1771453804525,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":2479,"timestamp":69636730590,"id":346,"parentId":334,"tags":{},"startTime":1771453804525,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":9778,"timestamp":69636725181,"id":334,"parentId":311,"tags":{},"startTime":1771453804519,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":42905,"timestamp":69636696368,"id":311,"parentId":280,"tags":{"name":"server"},"startTime":1771453804490,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-server","duration":557,"timestamp":69636739496,"id":347,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453804533,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"client-error","duration":2,"timestamp":69636746295,"id":350,"parentId":3,"tags":{"errorCount":8},"startTime":1771453804540,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":2830,"timestamp":69636746868,"id":353,"parentId":349,"tags":{"request":"next/dist/pages/_document"},"startTime":1771453804541,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":2966,"timestamp":69636746865,"id":352,"parentId":349,"tags":{"request":"next/dist/pages/_app"},"startTime":1771453804541,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":4719,"timestamp":69636746874,"id":356,"parentId":349,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453804541,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":5012,"timestamp":69636746837,"id":351,"parentId":349,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771453804541,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":5804,"timestamp":69636746872,"id":355,"parentId":349,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771453804541,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":6087,"timestamp":69636746869,"id":354,"parentId":349,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453804541,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":23402,"timestamp":69636741197,"id":349,"parentId":348,"tags":{},"startTime":1771453804535,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":984,"timestamp":69636765611,"id":368,"parentId":367,"tags":{},"startTime":1771453804560,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":2,"timestamp":69636766605,"id":370,"parentId":367,"tags":{},"startTime":1771453804561,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":873,"timestamp":69636766614,"id":371,"parentId":367,"tags":{},"startTime":1771453804561,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":3,"timestamp":69636767497,"id":372,"parentId":367,"tags":{},"startTime":1771453804561,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69636767509,"id":373,"parentId":367,"tags":{},"startTime":1771453804561,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":1070,"timestamp":69636766602,"id":369,"parentId":367,"tags":{},"startTime":1771453804561,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":122,"timestamp":69636768250,"id":374,"parentId":367,"tags":{},"startTime":1771453804562,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":317,"timestamp":69636768376,"id":375,"parentId":367,"tags":{},"startTime":1771453804562,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":535,"timestamp":69636769125,"id":376,"parentId":367,"tags":{},"startTime":1771453804563,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":19,"timestamp":69636769661,"id":377,"parentId":367,"tags":{},"startTime":1771453804564,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":29,"timestamp":69636769676,"id":378,"parentId":367,"tags":{},"startTime":1771453804564,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":67,"timestamp":69636769708,"id":379,"parentId":367,"tags":{},"startTime":1771453804564,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":6197,"timestamp":69636765315,"id":367,"parentId":348,"tags":{},"startTime":1771453804559,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":33122,"timestamp":69636741013,"id":348,"parentId":3,"tags":{"name":"server"},"startTime":1771453804535,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":136503,"timestamp":69636638500,"id":277,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453804432,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":64323,"timestamp":69636710682,"id":323,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453804505,"traceId":"ce4ce4f408d7dd97"},{"name":"handle-request","duration":464341,"timestamp":69636386846,"id":196,"tags":{"url":"/"},"startTime":1771453804181,"traceId":"ce4ce4f408d7dd97"},{"name":"memory-usage","duration":2,"timestamp":69636851218,"id":380,"parentId":196,"tags":{"url":"/","memory.rss":"824082432","memory.heapUsed":"300627808","memory.heapTotal":"371556352"},"startTime":1771453804645,"traceId":"ce4ce4f408d7dd97"},{"name":"client-error","duration":1,"timestamp":69636855176,"id":381,"parentId":3,"tags":{"errorCount":8},"startTime":1771453804649,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":336,"timestamp":69636855488,"id":382,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453804649,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":177,"timestamp":69636855890,"id":383,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453804650,"traceId":"ce4ce4f408d7dd97"},{"name":"ensure-page","duration":114,"timestamp":69636856107,"id":384,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453804650,"traceId":"ce4ce4f408d7dd97"},{"name":"handle-request","duration":149459,"timestamp":69636709553,"id":322,"tags":{"url":"/"},"startTime":1771453804504,"traceId":"ce4ce4f408d7dd97"},{"name":"memory-usage","duration":1,"timestamp":69636859037,"id":385,"parentId":322,"tags":{"url":"/","memory.rss":"827523072","memory.heapUsed":"256052128","memory.heapTotal":"375160832"},"startTime":1771453804653,"traceId":"ce4ce4f408d7dd97"},{"name":"client-error","duration":3,"timestamp":69636984660,"id":386,"parentId":3,"tags":{"errorCount":8},"startTime":1771453804779,"traceId":"ce4ce4f408d7dd97"},{"name":"navigation-to-hydration","duration":290000,"timestamp":69636696701,"id":387,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453804781,"traceId":"ce4ce4f408d7dd97"},{"name":"client-error","duration":0,"timestamp":69646715713,"id":391,"parentId":3,"tags":{"errorCount":8},"startTime":1771453814510,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":25380,"timestamp":69646724003,"id":396,"parentId":395,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453814518,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":26748,"timestamp":69646724047,"id":401,"parentId":395,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1771453814518,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":26765,"timestamp":69646724042,"id":399,"parentId":395,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1771453814518,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":27095,"timestamp":69646724038,"id":397,"parentId":395,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"},"startTime":1771453814518,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":27279,"timestamp":69646724044,"id":400,"parentId":395,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/router.js"},"startTime":1771453814518,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":28019,"timestamp":69646724041,"id":398,"parentId":395,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1771453814518,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":28135,"timestamp":69646723940,"id":395,"parentId":394,"tags":{},"startTime":1771453814518,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":554,"timestamp":69646752393,"id":409,"parentId":408,"tags":{},"startTime":1771453814546,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":4,"timestamp":69646752962,"id":411,"parentId":408,"tags":{},"startTime":1771453814547,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":10,"timestamp":69646752974,"id":412,"parentId":408,"tags":{},"startTime":1771453814547,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":5,"timestamp":69646752990,"id":413,"parentId":408,"tags":{},"startTime":1771453814547,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69646753002,"id":414,"parentId":408,"tags":{},"startTime":1771453814547,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":129,"timestamp":69646752953,"id":410,"parentId":408,"tags":{},"startTime":1771453814547,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":103,"timestamp":69646753386,"id":415,"parentId":408,"tags":{},"startTime":1771453814547,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":753,"timestamp":69646753494,"id":416,"parentId":408,"tags":{},"startTime":1771453814547,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":1269,"timestamp":69646755006,"id":417,"parentId":408,"tags":{},"startTime":1771453814549,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":74,"timestamp":69646756275,"id":418,"parentId":408,"tags":{},"startTime":1771453814550,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":17,"timestamp":69646756345,"id":419,"parentId":408,"tags":{},"startTime":1771453814550,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":53,"timestamp":69646756364,"id":420,"parentId":408,"tags":{},"startTime":1771453814550,"traceId":"ce4ce4f408d7dd97"},{"name":"NextJsBuildManifest-createassets","duration":34,"timestamp":69646756488,"id":421,"parentId":394,"tags":{},"startTime":1771453814550,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":4373,"timestamp":69646752281,"id":408,"parentId":394,"tags":{},"startTime":1771453814546,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":32881,"timestamp":69646723794,"id":394,"parentId":390,"tags":{"name":"client"},"startTime":1771453814518,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":21698,"timestamp":69646738141,"id":407,"parentId":393,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453814532,"traceId":"ce4ce4f408d7dd97"},{"name":"emit","duration":4834,"timestamp":69646756684,"id":422,"parentId":390,"tags":{},"startTime":1771453814551,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-client","duration":46418,"timestamp":69646715193,"id":390,"parentId":3,"tags":{"trigger":"package.json"},"startTime":1771453814509,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":25000,"timestamp":69646738135,"id":404,"parentId":393,"tags":{"request":"next/dist/pages/_document"},"startTime":1771453814532,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":25324,"timestamp":69646738131,"id":403,"parentId":393,"tags":{"request":"next/dist/pages/_app"},"startTime":1771453814532,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":25449,"timestamp":69646738137,"id":405,"parentId":393,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453814532,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":27091,"timestamp":69646738094,"id":402,"parentId":393,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771453814532,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":27051,"timestamp":69646738140,"id":406,"parentId":393,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771453814532,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":7634,"timestamp":69646805914,"id":433,"parentId":392,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/index.mjs","layer":"ssr"},"startTime":1771453814600,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8720,"timestamp":69646829808,"id":434,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","layer":"ssr"},"startTime":1771453814624,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9711,"timestamp":69646829934,"id":435,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/events/event-info.mjs","layer":"ssr"},"startTime":1771453814624,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11016,"timestamp":69646830074,"id":437,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/is-browser.mjs","layer":"ssr"},"startTime":1771453814624,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12860,"timestamp":69646830144,"id":438,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs","layer":"ssr"},"startTime":1771453814624,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13278,"timestamp":69646830721,"id":448,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/transform-viewbox-point.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13504,"timestamp":69646830761,"id":449,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/distance.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":21785,"timestamp":69646831171,"id":460,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/scroll/use-viewport-scroll.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":22202,"timestamp":69646831134,"id":459,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/scroll/use-element-scroll.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23384,"timestamp":69646831246,"id":462,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-will-change/WillChangeMotionValue.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23891,"timestamp":69646831386,"id":465,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/projection/use-instant-layout-transition.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24334,"timestamp":69646831451,"id":466,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/projection/use-reset-projection.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":68658,"timestamp":69646830265,"id":440,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-force-update.mjs","layer":"ssr"},"startTime":1771453814624,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":68833,"timestamp":69646830335,"id":441,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","layer":"ssr"},"startTime":1771453814624,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":69373,"timestamp":69646830202,"id":439,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","layer":"ssr"},"startTime":1771453814624,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":69822,"timestamp":69646830000,"id":436,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/events/use-dom-event.mjs","layer":"ssr"},"startTime":1771453814624,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":69561,"timestamp":69646830408,"id":442,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-motion-value-event.mjs","layer":"ssr"},"startTime":1771453814624,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":69742,"timestamp":69646830595,"id":445,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-in-view.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":70135,"timestamp":69646830489,"id":443,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-animation-frame.mjs","layer":"ssr"},"startTime":1771453814624,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":70387,"timestamp":69646830548,"id":444,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-cycle.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":70527,"timestamp":69646830682,"id":447,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-page-in-view.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":70897,"timestamp":69646830638,"id":446,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-instant-transition.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":71475,"timestamp":69646830798,"id":450,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-motion-template.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":71704,"timestamp":69646830836,"id":451,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-motion-value.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":71912,"timestamp":69646830912,"id":453,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-follow-value.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":71992,"timestamp":69646830950,"id":454,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-spring.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":68206,"timestamp":69646834872,"id":482,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/Reorder/namespace.mjs","layer":"ssr"},"startTime":1771453814629,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":73176,"timestamp":69646830875,"id":452,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-scroll.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":73223,"timestamp":69646831060,"id":457,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-velocity.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":73417,"timestamp":69646830987,"id":455,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-time.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":73429,"timestamp":69646831209,"id":461,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-will-change/index.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":74296,"timestamp":69646831023,"id":456,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-transform.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":74157,"timestamp":69646831322,"id":464,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":74075,"timestamp":69646831492,"id":467,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":74837,"timestamp":69646831097,"id":458,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-inverted-scale.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":74793,"timestamp":69646831284,"id":463,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs","layer":"ssr"},"startTime":1771453814625,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"build-module-mjs","duration":74686,"timestamp":69646831600,"id":470,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":74727,"timestamp":69646831636,"id":471,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":74746,"timestamp":69646831675,"id":472,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":74974,"timestamp":69646831530,"id":468,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":74998,"timestamp":69646831565,"id":469,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/PresenceContext.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":75084,"timestamp":69646831713,"id":473,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimateSharedLayout.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":75208,"timestamp":69646831862,"id":477,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":78120,"timestamp":69646831900,"id":478,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence-data.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":78837,"timestamp":69646831822,"id":476,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":79154,"timestamp":69646831937,"id":479,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/LayoutGroup/index.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":80424,"timestamp":69646831751,"id":474,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":80479,"timestamp":69646832010,"id":481,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":80812,"timestamp":69646831972,"id":480,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":81860,"timestamp":69646831788,"id":475,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","layer":"ssr"},"startTime":1771453814626,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":78366,"timestamp":69646835534,"id":485,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/is-motion-component.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":78441,"timestamp":69646835576,"id":486,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/unwrap-motion-component.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":78672,"timestamp":69646835439,"id":483,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/animations.mjs","layer":"ssr"},"startTime":1771453814629,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":78744,"timestamp":69646835616,"id":487,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":78949,"timestamp":69646835877,"id":494,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":79598,"timestamp":69646835841,"id":493,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":79791,"timestamp":69646835805,"id":492,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":79802,"timestamp":69646835914,"id":495,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":80451,"timestamp":69646835989,"id":497,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":80709,"timestamp":69646835952,"id":496,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/components/m/proxy.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":81651,"timestamp":69646835767,"id":491,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":81668,"timestamp":69646836181,"id":502,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animate/index.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":82303,"timestamp":69646836217,"id":503,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/optimized-appear/start.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":82622,"timestamp":69646836259,"id":504,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":87216,"timestamp":69646835492,"id":484,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","layer":"ssr"},"startTime":1771453814629,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":87176,"timestamp":69646835653,"id":488,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/features-animation.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":87172,"timestamp":69646835729,"id":490,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/features-min.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":87288,"timestamp":69646835691,"id":489,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/features-max.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":87081,"timestamp":69646836030,"id":498,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/hooks/use-animate-style.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":86665,"timestamp":69646836585,"id":505,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animators/waapi/animate-style.mjs","layer":"ssr"},"startTime":1771453814631,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":87361,"timestamp":69646836067,"id":499,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/hooks/use-animate.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":87604,"timestamp":69646836142,"id":501,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/hooks/use-animated-state.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":89326,"timestamp":69646836104,"id":500,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs","layer":"ssr"},"startTime":1771453814630,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6863,"timestamp":69646938503,"id":512,"parentId":452,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/utils/can-use-native-timeline.mjs","layer":"ssr"},"startTime":1771453814732,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8524,"timestamp":69646938309,"id":508,"parentId":451,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-constant.mjs","layer":"ssr"},"startTime":1771453814732,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8825,"timestamp":69646938147,"id":506,"parentId":440,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","layer":"ssr"},"startTime":1771453814732,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8885,"timestamp":69646938260,"id":507,"parentId":450,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-combine-values.mjs","layer":"ssr"},"startTime":1771453814732,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8789,"timestamp":69646938461,"id":511,"parentId":456,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-computed.mjs","layer":"ssr"},"startTime":1771453814732,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6850,"timestamp":69646940529,"id":515,"parentId":480,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/load-features.mjs","layer":"ssr"},"startTime":1771453814735,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8902,"timestamp":69646938546,"id":513,"parentId":480,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/LazyContext.mjs","layer":"ssr"},"startTime":1771453814733,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9348,"timestamp":69646938411,"id":510,"parentId":482,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/Reorder/Item.mjs","layer":"ssr"},"startTime":1771453814732,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9771,"timestamp":69646938354,"id":509,"parentId":482,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/Reorder/Group.mjs","layer":"ssr"},"startTime":1771453814732,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":7767,"timestamp":69646940572,"id":516,"parentId":485,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","layer":"ssr"},"startTime":1771453814735,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8538,"timestamp":69646940623,"id":517,"parentId":495,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","layer":"ssr"},"startTime":1771453814735,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8730,"timestamp":69646940718,"id":519,"parentId":493,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs","layer":"ssr"},"startTime":1771453814735,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9007,"timestamp":69646940774,"id":520,"parentId":493,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs","layer":"ssr"},"startTime":1771453814735,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9329,"timestamp":69646940666,"id":518,"parentId":495,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs","layer":"ssr"},"startTime":1771453814735,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9644,"timestamp":69646940476,"id":514,"parentId":474,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs","layer":"ssr"},"startTime":1771453814734,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3621,"timestamp":69646956260,"id":522,"parentId":492,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/attach-function.mjs","layer":"ssr"},"startTime":1771453814750,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3693,"timestamp":69646956302,"id":523,"parentId":495,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs","layer":"ssr"},"startTime":1771453814750,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3945,"timestamp":69646956343,"id":524,"parentId":483,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","layer":"ssr"},"startTime":1771453814750,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4254,"timestamp":69646956174,"id":521,"parentId":492,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/attach-animation.mjs","layer":"ssr"},"startTime":1771453814750,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3978,"timestamp":69646956539,"id":529,"parentId":503,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/optimized-appear/store.mjs","layer":"ssr"},"startTime":1771453814751,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4166,"timestamp":69646956502,"id":528,"parentId":503,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/optimized-appear/handoff.mjs","layer":"ssr"},"startTime":1771453814750,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4489,"timestamp":69646956384,"id":525,"parentId":483,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","layer":"ssr"},"startTime":1771453814750,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4370,"timestamp":69646956609,"id":531,"parentId":488,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/gestures.mjs","layer":"ssr"},"startTime":1771453814751,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4431,"timestamp":69646956644,"id":532,"parentId":489,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/drag.mjs","layer":"ssr"},"startTime":1771453814751,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4920,"timestamp":69646956429,"id":526,"parentId":502,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animate/sequence.mjs","layer":"ssr"},"startTime":1771453814750,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5211,"timestamp":69646956465,"id":527,"parentId":502,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animate/subject.mjs","layer":"ssr"},"startTime":1771453814750,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5062,"timestamp":69646956801,"id":536,"parentId":515,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/definitions.mjs","layer":"ssr"},"startTime":1771453814751,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5537,"timestamp":69646956719,"id":534,"parentId":505,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animators/waapi/animate-elements.mjs","layer":"ssr"},"startTime":1771453814751,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5793,"timestamp":69646956574,"id":530,"parentId":503,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/optimized-appear/store-id.mjs","layer":"ssr"},"startTime":1771453814751,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5784,"timestamp":69646956683,"id":533,"parentId":489,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/layout.mjs","layer":"ssr"},"startTime":1771453814751,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9578,"timestamp":69646956762,"id":535,"parentId":510,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/ReorderContext.mjs","layer":"ssr"},"startTime":1771453814751,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8731,"timestamp":69646958297,"id":537,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/index.mjs","layer":"ssr"},"startTime":1771453814752,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9638,"timestamp":69646958339,"id":538,"parentId":433,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/index.mjs","layer":"ssr"},"startTime":1771453814752,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11586,"timestamp":69646959361,"id":540,"parentId":517,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","layer":"ssr"},"startTime":1771453814753,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":7806,"timestamp":69646964043,"id":541,"parentId":510,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/Reorder/utils/auto-scroll.mjs","layer":"ssr"},"startTime":1771453814758,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":7963,"timestamp":69646964104,"id":542,"parentId":509,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs","layer":"ssr"},"startTime":1771453814758,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15918,"timestamp":69646959293,"id":539,"parentId":518,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/index.mjs","layer":"ssr"},"startTime":1771453814753,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9550,"timestamp":69646966734,"id":543,"parentId":520,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs","layer":"ssr"},"startTime":1771453814761,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11375,"timestamp":69647001646,"id":545,"parentId":531,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/gestures/focus.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11563,"timestamp":69647001721,"id":547,"parentId":532,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/gestures/drag/index.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11927,"timestamp":69647001574,"id":544,"parentId":531,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/gestures/hover.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11895,"timestamp":69647001757,"id":548,"parentId":527,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animate/resolve-subjects.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12071,"timestamp":69647001794,"id":549,"parentId":522,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/utils/get-timeline.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12334,"timestamp":69647001867,"id":551,"parentId":532,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/gestures/pan/index.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12742,"timestamp":69647001831,"id":550,"parentId":531,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13816,"timestamp":69647001901,"id":552,"parentId":526,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/sequence/create.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14292,"timestamp":69647001685,"id":546,"parentId":531,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/gestures/press.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14165,"timestamp":69647001988,"id":554,"parentId":527,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14230,"timestamp":69647002025,"id":555,"parentId":527,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14336,"timestamp":69647002064,"id":556,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/array.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14377,"timestamp":69647002098,"id":557,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/clamp.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14359,"timestamp":69647002199,"id":560,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/is-object.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14477,"timestamp":69647002264,"id":562,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/is-zero-value-string.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14770,"timestamp":69647002231,"id":561,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/is-numerical-string.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14895,"timestamp":69647002166,"id":559,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/global-config.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15205,"timestamp":69647002134,"id":558,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/errors.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15031,"timestamp":69647002396,"id":566,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/progress.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15197,"timestamp":69647002331,"id":564,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/memo.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15296,"timestamp":69647002298,"id":563,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/noop.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15306,"timestamp":69647002363,"id":565,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/pipe.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15372,"timestamp":69647002467,"id":568,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/subscription-manager.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15483,"timestamp":69647002434,"id":567,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/time-conversion.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15512,"timestamp":69647002500,"id":569,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/velocity-per-second.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15440,"timestamp":69647002673,"id":574,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/circ.mjs","layer":"ssr"},"startTime":1771453814797,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"build-module-mjs","duration":15775,"timestamp":69647002535,"id":570,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/warn-once.mjs","layer":"ssr"},"startTime":1771453814797,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15811,"timestamp":69647002575,"id":571,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/wrap.mjs","layer":"ssr"},"startTime":1771453814797,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16168,"timestamp":69647002705,"id":575,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs","layer":"ssr"},"startTime":1771453814797,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16410,"timestamp":69647002640,"id":573,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/anticipate.mjs","layer":"ssr"},"startTime":1771453814797,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16940,"timestamp":69647002607,"id":572,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/back.mjs","layer":"ssr"},"startTime":1771453814797,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23117,"timestamp":69647001953,"id":553,"parentId":532,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","layer":"ssr"},"startTime":1771453814796,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16884,"timestamp":69647008313,"id":578,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs","layer":"ssr"},"startTime":1771453814802,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":17100,"timestamp":69647008197,"id":576,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/ease.mjs","layer":"ssr"},"startTime":1771453814802,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":17152,"timestamp":69647008270,"id":577,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/steps.mjs","layer":"ssr"},"startTime":1771453814802,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":17134,"timestamp":69647008369,"id":579,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs","layer":"ssr"},"startTime":1771453814802,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":17107,"timestamp":69647008476,"id":581,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs","layer":"ssr"},"startTime":1771453814802,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":17239,"timestamp":69647008430,"id":580,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/utils/get-easing-for-segment.mjs","layer":"ssr"},"startTime":1771453814802,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":21980,"timestamp":69647008516,"id":582,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/utils/map.mjs","layer":"ssr"},"startTime":1771453814803,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":22061,"timestamp":69647008551,"id":583,"parentId":537,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs","layer":"ssr"},"startTime":1771453814803,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":22348,"timestamp":69647008626,"id":585,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/GroupAnimation.mjs","layer":"ssr"},"startTime":1771453814803,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":22919,"timestamp":69647008589,"id":584,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs","layer":"ssr"},"startTime":1771453814803,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24118,"timestamp":69647008663,"id":586,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs","layer":"ssr"},"startTime":1771453814803,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24318,"timestamp":69647008698,"id":587,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs","layer":"ssr"},"startTime":1771453814803,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24702,"timestamp":69647008770,"id":589,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs","layer":"ssr"},"startTime":1771453814803,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24843,"timestamp":69647008734,"id":588,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/GroupAnimationWithThen.mjs","layer":"ssr"},"startTime":1771453814803,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24851,"timestamp":69647008845,"id":591,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/active-animations.mjs","layer":"ssr"},"startTime":1771453814803,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24977,"timestamp":69647008808,"id":590,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/NativeAnimationWrapper.mjs","layer":"ssr"},"startTime":1771453814803,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23437,"timestamp":69647010476,"id":592,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs","layer":"ssr"},"startTime":1771453814804,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23519,"timestamp":69647010531,"id":593,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23557,"timestamp":69647010611,"id":595,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23900,"timestamp":69647010570,"id":594,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23929,"timestamp":69647010647,"id":596,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24114,"timestamp":69647010719,"id":598,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28407,"timestamp":69647010757,"id":599,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28470,"timestamp":69647010791,"id":600,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28695,"timestamp":69647010684,"id":597,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28722,"timestamp":69647010902,"id":603,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29178,"timestamp":69647010829,"id":601,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29494,"timestamp":69647010867,"id":602,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29691,"timestamp":69647010936,"id":604,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29737,"timestamp":69647010985,"id":605,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29993,"timestamp":69647011054,"id":607,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30119,"timestamp":69647011020,"id":606,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30247,"timestamp":69647011092,"id":608,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30298,"timestamp":69647011166,"id":610,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30442,"timestamp":69647011200,"id":611,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":31053,"timestamp":69647011131,"id":609,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs","layer":"ssr"},"startTime":1771453814805,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":35345,"timestamp":69647012081,"id":612,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs","layer":"ssr"},"startTime":1771453814806,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":35862,"timestamp":69647012125,"id":613,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs","layer":"ssr"},"startTime":1771453814806,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":35866,"timestamp":69647012237,"id":616,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs","layer":"ssr"},"startTime":1771453814806,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":35992,"timestamp":69647012200,"id":615,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs","layer":"ssr"},"startTime":1771453814806,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":35985,"timestamp":69647012307,"id":618,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/utils/apply-px-defaults.mjs","layer":"ssr"},"startTime":1771453814806,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":36097,"timestamp":69647012272,"id":617,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs","layer":"ssr"},"startTime":1771453814806,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":36109,"timestamp":69647012343,"id":619,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs","layer":"ssr"},"startTime":1771453814806,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":36672,"timestamp":69647012165,"id":614,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs","layer":"ssr"},"startTime":1771453814806,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":36655,"timestamp":69647012378,"id":620,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs","layer":"ssr"},"startTime":1771453814806,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":36699,"timestamp":69647012413,"id":621,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs","layer":"ssr"},"startTime":1771453814806,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":36775,"timestamp":69647012448,"id":622,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/easing/is-supported.mjs","layer":"ssr"},"startTime":1771453814806,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27002,"timestamp":69647027696,"id":625,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/supports/partial-keyframes.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27194,"timestamp":69647027736,"id":626,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27288,"timestamp":69647027816,"id":628,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27620,"timestamp":69647027654,"id":624,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27525,"timestamp":69647027852,"id":629,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27754,"timestamp":69647027889,"id":630,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/batcher.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27937,"timestamp":69647027959,"id":632,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28222,"timestamp":69647027773,"id":627,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28526,"timestamp":69647027584,"id":623,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28327,"timestamp":69647027993,"id":633,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/attr/index.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28378,"timestamp":69647028027,"id":634,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/prop/index.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28558,"timestamp":69647028060,"id":635,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/style/index.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28679,"timestamp":69647028127,"id":637,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/hover.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28909,"timestamp":69647028161,"id":638,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/press/index.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29313,"timestamp":69647028092,"id":636,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/svg/index.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29222,"timestamp":69647028272,"id":641,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29340,"timestamp":69647028236,"id":640,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29729,"timestamp":69647027923,"id":631,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/microtask.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29551,"timestamp":69647028195,"id":639,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29390,"timestamp":69647028415,"id":645,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/store.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29504,"timestamp":69647028381,"id":644,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/Feature.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29814,"timestamp":69647028493,"id":647,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30116,"timestamp":69647028309,"id":642,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30167,"timestamp":69647028345,"id":643,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30077,"timestamp":69647028603,"id":650,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs","layer":"ssr"},"startTime":1771453814823,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":32000,"timestamp":69647028452,"id":646,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/VisualElement.mjs","layer":"ssr"},"startTime":1771453814822,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":32038,"timestamp":69647028566,"id":649,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/dom/style-set.mjs","layer":"ssr"},"startTime":1771453814823,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":32090,"timestamp":69647028673,"id":652,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/keys-position.mjs","layer":"ssr"},"startTime":1771453814823,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":32762,"timestamp":69647028746,"id":654,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs","layer":"ssr"},"startTime":1771453814823,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":33010,"timestamp":69647028711,"id":653,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs","layer":"ssr"},"startTime":1771453814823,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":33169,"timestamp":69647028638,"id":651,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs","layer":"ssr"},"startTime":1771453814823,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":33165,"timestamp":69647028782,"id":655,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs","layer":"ssr"},"startTime":1771453814823,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":33202,"timestamp":69647028820,"id":656,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs","layer":"ssr"},"startTime":1771453814823,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":33278,"timestamp":69647028856,"id":657,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs","layer":"ssr"},"startTime":1771453814823,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":33676,"timestamp":69647028531,"id":648,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/dom/style-computed.mjs","layer":"ssr"},"startTime":1771453814823,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":25307,"timestamp":69647050770,"id":658,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs","layer":"ssr"},"startTime":1771453814845,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":25408,"timestamp":69647050870,"id":660,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/motion-values.mjs","layer":"ssr"},"startTime":1771453814845,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":25458,"timestamp":69647050906,"id":661,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs","layer":"ssr"},"startTime":1771453814845,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":25428,"timestamp":69647051011,"id":664,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/variant-props.mjs","layer":"ssr"},"startTime":1771453814845,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":25468,"timestamp":69647051046,"id":665,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/resize/index.mjs","layer":"ssr"},"startTime":1771453814845,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":25711,"timestamp":69647050942,"id":662,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/setters.mjs","layer":"ssr"},"startTime":1771453814845,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":25885,"timestamp":69647050833,"id":659,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs","layer":"ssr"},"startTime":1771453814845,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":25866,"timestamp":69647050976,"id":663,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs","layer":"ssr"},"startTime":1771453814845,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12142,"timestamp":69647071217,"id":667,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/stats/index.mjs","layer":"ssr"},"startTime":1771453814865,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12153,"timestamp":69647071298,"id":669,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/stats/buffer.mjs","layer":"ssr"},"startTime":1771453814865,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12458,"timestamp":69647071127,"id":666,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/scroll/observe.mjs","layer":"ssr"},"startTime":1771453814865,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12390,"timestamp":69647071260,"id":668,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/stats/animation-count.mjs","layer":"ssr"},"startTime":1771453814865,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12283,"timestamp":69647071441,"id":673,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs","layer":"ssr"},"startTime":1771453814865,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"build-module-mjs","duration":12502,"timestamp":69647071370,"id":671,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/is-html-element.mjs","layer":"ssr"},"startTime":1771453814865,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12791,"timestamp":69647071334,"id":670,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/interpolate.mjs","layer":"ssr"},"startTime":1771453814865,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12642,"timestamp":69647071581,"id":677,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/index.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12960,"timestamp":69647071615,"id":678,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/complex.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13136,"timestamp":69647071650,"id":679,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/color.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13128,"timestamp":69647071729,"id":681,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/number.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13156,"timestamp":69647071797,"id":683,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/supports/flags.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13558,"timestamp":69647071515,"id":675,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/stagger.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13450,"timestamp":69647071685,"id":680,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/immediate.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13761,"timestamp":69647071480,"id":674,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs","layer":"ssr"},"startTime":1771453814865,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13571,"timestamp":69647071764,"id":682,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/visibility.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13587,"timestamp":69647071846,"id":684,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14092,"timestamp":69647071406,"id":672,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/is-svg-element.mjs","layer":"ssr"},"startTime":1771453814865,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13782,"timestamp":69647071953,"id":687,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/map-value.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14355,"timestamp":69647071548,"id":676,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/transform.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14298,"timestamp":69647071989,"id":688,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/follow-value.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":14349,"timestamp":69647072031,"id":689,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/spring-value.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15051,"timestamp":69647071921,"id":686,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/index.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15024,"timestamp":69647072065,"id":690,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/transform-value.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15092,"timestamp":69647072109,"id":691,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/dimensions.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15144,"timestamp":69647072193,"id":693,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/color/index.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15302,"timestamp":69647072233,"id":694,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/color/hex.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15723,"timestamp":69647071883,"id":685,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15446,"timestamp":69647072313,"id":696,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15672,"timestamp":69647072151,"id":692,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/test.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15596,"timestamp":69647072362,"id":697,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/color/rgba.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15783,"timestamp":69647072272,"id":695,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/color/hsla.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15714,"timestamp":69647072485,"id":700,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/maps/number.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16207,"timestamp":69647072404,"id":698,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/complex/index.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16208,"timestamp":69647072524,"id":701,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/maps/transform.mjs","layer":"ssr"},"startTime":1771453814867,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16381,"timestamp":69647072444,"id":699,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs","layer":"ssr"},"startTime":1771453814866,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16336,"timestamp":69647072566,"id":702,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/numbers/index.mjs","layer":"ssr"},"startTime":1771453814867,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19770,"timestamp":69647074878,"id":704,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19738,"timestamp":69647075018,"id":707,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19942,"timestamp":69647074930,"id":705,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/utils/find.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":20326,"timestamp":69647074806,"id":703,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/numbers/units.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":20265,"timestamp":69647074967,"id":706,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":20425,"timestamp":69647075055,"id":708,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":20716,"timestamp":69647075125,"id":710,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/view/index.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":20852,"timestamp":69647075090,"id":709,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/will-change/is.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":26831,"timestamp":69647075193,"id":712,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/view/utils/get-view-animations.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27170,"timestamp":69647075158,"id":711,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/view/utils/get-layer-info.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27321,"timestamp":69647075264,"id":714,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/object/ObjectVisualElement.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27544,"timestamp":69647075299,"id":715,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27646,"timestamp":69647075369,"id":717,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":27947,"timestamp":69647075333,"id":716,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28148,"timestamp":69647075519,"id":721,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs","layer":"ssr"},"startTime":1771453814870,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28435,"timestamp":69647075405,"id":718,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/copy.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28423,"timestamp":69647075565,"id":722,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/models.mjs","layer":"ssr"},"startTime":1771453814870,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28611,"timestamp":69647075599,"id":723,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/utils.mjs","layer":"ssr"},"startTime":1771453814870,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29060,"timestamp":69647075484,"id":720,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28997,"timestamp":69647075633,"id":724,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs","layer":"ssr"},"startTime":1771453814870,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29124,"timestamp":69647075667,"id":725,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs","layer":"ssr"},"startTime":1771453814870,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29806,"timestamp":69647075446,"id":719,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30367,"timestamp":69647075228,"id":713,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs","layer":"ssr"},"startTime":1771453814869,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28573,"timestamp":69647077231,"id":727,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs","layer":"ssr"},"startTime":1771453814871,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28881,"timestamp":69647077186,"id":726,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/utils/measure.mjs","layer":"ssr"},"startTime":1771453814871,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29086,"timestamp":69647077303,"id":729,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/styles/transform.mjs","layer":"ssr"},"startTime":1771453814871,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29352,"timestamp":69647077268,"id":728,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs","layer":"ssr"},"startTime":1771453814871,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29772,"timestamp":69647077339,"id":730,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs","layer":"ssr"},"startTime":1771453814871,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":35428,"timestamp":69647081772,"id":733,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/delay.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":35680,"timestamp":69647081678,"id":731,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/animate/single-value.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":35762,"timestamp":69647081734,"id":732,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/events/add-dom-event.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":35875,"timestamp":69647081816,"id":734,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":48984,"timestamp":69647081958,"id":738,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/frame.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":49107,"timestamp":69647081991,"id":739,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":49318,"timestamp":69647081853,"id":735,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":49258,"timestamp":69647082025,"id":740,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":49469,"timestamp":69647081888,"id":736,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":49528,"timestamp":69647081924,"id":737,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/index-legacy.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":49715,"timestamp":69647082203,"id":745,"parentId":543,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":49759,"timestamp":69647082272,"id":747,"parentId":543,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":53057,"timestamp":69647082309,"id":748,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":53434,"timestamp":69647082238,"id":746,"parentId":543,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":53318,"timestamp":69647082478,"id":753,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":53436,"timestamp":69647082446,"id":752,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/node/state.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":53778,"timestamp":69647082410,"id":751,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":53990,"timestamp":69647082343,"id":749,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":54090,"timestamp":69647082544,"id":755,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs","layer":"ssr"},"startTime":1771453814877,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":54175,"timestamp":69647082610,"id":757,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs","layer":"ssr"},"startTime":1771453814877,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":54309,"timestamp":69647082577,"id":756,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/html/utils/render.mjs","layer":"ssr"},"startTime":1771453814877,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":54449,"timestamp":69647082645,"id":758,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs","layer":"ssr"},"startTime":1771453814877,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":54871,"timestamp":69647082512,"id":754,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/shared/stack.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":54893,"timestamp":69647082678,"id":759,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs","layer":"ssr"},"startTime":1771453814877,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":54935,"timestamp":69647082711,"id":760,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs","layer":"ssr"},"startTime":1771453814877,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":55000,"timestamp":69647082744,"id":761,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs","layer":"ssr"},"startTime":1771453814877,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":55480,"timestamp":69647082376,"id":750,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/node/group.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":62324,"timestamp":69647082095,"id":742,"parentId":539,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/use-render.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":62429,"timestamp":69647082128,"id":743,"parentId":539,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":62733,"timestamp":69647082165,"id":744,"parentId":539,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":62921,"timestamp":69647082060,"id":741,"parentId":539,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","layer":"ssr"},"startTime":1771453814876,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":38833,"timestamp":69647108961,"id":762,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/path.mjs","layer":"ssr"},"startTime":1771453814903,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":38854,"timestamp":69647109069,"id":763,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/render.mjs","layer":"ssr"},"startTime":1771453814903,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":38967,"timestamp":69647109179,"id":764,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs","layer":"ssr"},"startTime":1771453814903,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":38853,"timestamp":69647109368,"id":767,"parentId":540,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","layer":"ssr"},"startTime":1771453814903,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":39731,"timestamp":69647109236,"id":765,"parentId":538,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/layout/LayoutAnimationBuilder.mjs","layer":"ssr"},"startTime":1771453814903,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":39582,"timestamp":69647109475,"id":769,"parentId":558,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/format-error-message.mjs","layer":"ssr"},"startTime":1771453814903,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":39556,"timestamp":69647109762,"id":774,"parentId":552,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs","layer":"ssr"},"startTime":1771453814904,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":39973,"timestamp":69647109538,"id":770,"parentId":551,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/get-context-window.mjs","layer":"ssr"},"startTime":1771453814904,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":40000,"timestamp":69647109696,"id":773,"parentId":550,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","layer":"ssr"},"startTime":1771453814904,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":39957,"timestamp":69647109865,"id":775,"parentId":552,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/sequence/utils/calc-repeat-duration.mjs","layer":"ssr"},"startTime":1771453814904,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"build-module-mjs","duration":41897,"timestamp":69647109591,"id":771,"parentId":547,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","layer":"ssr"},"startTime":1771453814904,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":42588,"timestamp":69647109645,"id":772,"parentId":551,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","layer":"ssr"},"startTime":1771453814904,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":47196,"timestamp":69647109421,"id":768,"parentId":539,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/html/use-html-visual-state.mjs","layer":"ssr"},"startTime":1771453814903,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":47399,"timestamp":69647109295,"id":766,"parentId":539,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.mjs","layer":"ssr"},"startTime":1771453814903,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28504,"timestamp":69647128375,"id":776,"parentId":552,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs","layer":"ssr"},"startTime":1771453814922,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28422,"timestamp":69647128550,"id":778,"parentId":552,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/sequence/utils/normalize-times.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28528,"timestamp":69647128590,"id":779,"parentId":584,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/get-final.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28662,"timestamp":69647128627,"id":780,"parentId":584,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/can-animate.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28693,"timestamp":69647128699,"id":782,"parentId":586,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":28996,"timestamp":69647128505,"id":777,"parentId":552,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs","layer":"ssr"},"startTime":1771453814922,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29043,"timestamp":69647128743,"id":783,"parentId":587,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29158,"timestamp":69647128819,"id":785,"parentId":607,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29235,"timestamp":69647128860,"id":786,"parentId":613,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29475,"timestamp":69647128783,"id":784,"parentId":586,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/drivers/frame.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29641,"timestamp":69647128930,"id":788,"parentId":613,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":29685,"timestamp":69647129032,"id":791,"parentId":618,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/utils/px-values.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30149,"timestamp":69647128998,"id":790,"parentId":609,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/spring/find.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30424,"timestamp":69647128894,"id":787,"parentId":613,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30447,"timestamp":69647128965,"id":789,"parentId":609,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/spring/defaults.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30440,"timestamp":69647129068,"id":792,"parentId":630,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/order.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30413,"timestamp":69647129168,"id":795,"parentId":635,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/dom/is-css-var.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30550,"timestamp":69647129201,"id":796,"parentId":635,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/style/transform.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30862,"timestamp":69647129101,"id":793,"parentId":630,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/render-step.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30936,"timestamp":69647129134,"id":794,"parentId":637,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/utils/setup.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30867,"timestamp":69647129268,"id":798,"parentId":638,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/press/utils/state.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":30920,"timestamp":69647129303,"id":799,"parentId":654,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/shallow-compare.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":31132,"timestamp":69647129234,"id":797,"parentId":638,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":31146,"timestamp":69647129341,"id":800,"parentId":633,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/utils/create-effect.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":31405,"timestamp":69647129444,"id":803,"parentId":665,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/resize/handle-element.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":31483,"timestamp":69647129479,"id":804,"parentId":684,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/supports/memo.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":31687,"timestamp":69647129411,"id":802,"parentId":665,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/resize/handle-window.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":32554,"timestamp":69647128662,"id":781,"parentId":584,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/WithPromise.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":31998,"timestamp":69647129375,"id":801,"parentId":633,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/utils/create-dom-effect.mjs","layer":"ssr"},"startTime":1771453814923,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23887,"timestamp":69647145646,"id":806,"parentId":710,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/view/queue.mjs","layer":"ssr"},"startTime":1771453814940,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23922,"timestamp":69647145687,"id":807,"parentId":691,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/auto.mjs","layer":"ssr"},"startTime":1771453814940,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23967,"timestamp":69647145724,"id":808,"parentId":700,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/int.mjs","layer":"ssr"},"startTime":1771453814940,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24209,"timestamp":69647145576,"id":805,"parentId":690,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/subscribe-value.mjs","layer":"ssr"},"startTime":1771453814940,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24056,"timestamp":69647145798,"id":810,"parentId":697,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/utils/sanitize.mjs","layer":"ssr"},"startTime":1771453814940,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":23993,"timestamp":69647145950,"id":814,"parentId":699,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/complex/mask.mjs","layer":"ssr"},"startTime":1771453814940,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24234,"timestamp":69647145832,"id":811,"parentId":698,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/utils/color-regex.mjs","layer":"ssr"},"startTime":1771453814940,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24268,"timestamp":69647145879,"id":812,"parentId":698,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/utils/float-regex.mjs","layer":"ssr"},"startTime":1771453814940,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24373,"timestamp":69647145915,"id":813,"parentId":699,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/complex/filter.mjs","layer":"ssr"},"startTime":1771453814940,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":24653,"timestamp":69647145760,"id":809,"parentId":694,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/color/utils.mjs","layer":"ssr"},"startTime":1771453814940,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9333,"timestamp":69647162514,"id":815,"parentId":745,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs","layer":"ssr"},"startTime":1771453814957,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3974,"timestamp":69647169153,"id":819,"parentId":741,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","layer":"ssr"},"startTime":1771453814963,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4191,"timestamp":69647169083,"id":817,"parentId":744,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","layer":"ssr"},"startTime":1771453814963,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4702,"timestamp":69647169118,"id":818,"parentId":742,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/svg/use-props.mjs","layer":"ssr"},"startTime":1771453814963,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4964,"timestamp":69647169024,"id":816,"parentId":742,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/html/use-props.mjs","layer":"ssr"},"startTime":1771453814963,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3746,"timestamp":69647171606,"id":820,"parentId":800,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/MotionValueState.mjs","layer":"ssr"},"startTime":1771453814966,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3814,"timestamp":69647171649,"id":821,"parentId":780,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/is-animatable.mjs","layer":"ssr"},"startTime":1771453814966,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3409,"timestamp":69647172349,"id":822,"parentId":771,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","layer":"ssr"},"startTime":1771453814966,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4261,"timestamp":69647172543,"id":823,"parentId":768,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","layer":"ssr"},"startTime":1771453814967,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4248,"timestamp":69647172631,"id":824,"parentId":766,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","layer":"ssr"},"startTime":1771453814967,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4719,"timestamp":69647172674,"id":825,"parentId":806,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/view/start.mjs","layer":"ssr"},"startTime":1771453814967,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4763,"timestamp":69647172757,"id":827,"parentId":809,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.mjs","layer":"ssr"},"startTime":1771453814967,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4871,"timestamp":69647172715,"id":826,"parentId":809,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/utils/is-nullish.mjs","layer":"ssr"},"startTime":1771453814967,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":621,"timestamp":69647179111,"id":828,"parentId":825,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/view/utils/css.mjs","layer":"ssr"},"startTime":1771453814973,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":568,"timestamp":69647179282,"id":830,"parentId":825,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/view/utils/choose-layer-type.mjs","layer":"ssr"},"startTime":1771453814973,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":710,"timestamp":69647179225,"id":829,"parentId":825,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/view/utils/has-target.mjs","layer":"ssr"},"startTime":1771453814973,"traceId":"ce4ce4f408d7dd97"},{"name":"make","duration":458235,"timestamp":69646722827,"id":393,"parentId":392,"tags":{},"startTime":1771453814517,"traceId":"ce4ce4f408d7dd97"},{"name":"chunk-graph","duration":2156,"timestamp":69647189591,"id":832,"parentId":831,"tags":{},"startTime":1771453814984,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-modules","duration":3,"timestamp":69647191765,"id":834,"parentId":831,"tags":{},"startTime":1771453814986,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunks","duration":1642,"timestamp":69647191817,"id":835,"parentId":831,"tags":{},"startTime":1771453814986,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-tree","duration":5,"timestamp":69647193470,"id":836,"parentId":831,"tags":{},"startTime":1771453814987,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69647193486,"id":837,"parentId":831,"tags":{},"startTime":1771453814987,"traceId":"ce4ce4f408d7dd97"},{"name":"optimize","duration":2342,"timestamp":69647191760,"id":833,"parentId":831,"tags":{},"startTime":1771453814986,"traceId":"ce4ce4f408d7dd97"},{"name":"module-hash","duration":1736,"timestamp":69647195703,"id":838,"parentId":831,"tags":{},"startTime":1771453814990,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation","duration":12511,"timestamp":69647197456,"id":839,"parentId":831,"tags":{},"startTime":1771453814991,"traceId":"ce4ce4f408d7dd97"},{"name":"hash","duration":1394,"timestamp":69647211463,"id":840,"parentId":831,"tags":{},"startTime":1771453815005,"traceId":"ce4ce4f408d7dd97"},{"name":"code-generation-jobs","duration":79,"timestamp":69647212857,"id":841,"parentId":831,"tags":{},"startTime":1771453815007,"traceId":"ce4ce4f408d7dd97"},{"name":"module-assets","duration":58,"timestamp":69647212929,"id":842,"parentId":831,"tags":{},"startTime":1771453815007,"traceId":"ce4ce4f408d7dd97"},{"name":"create-chunk-assets","duration":20289,"timestamp":69647212990,"id":843,"parentId":831,"tags":{},"startTime":1771453815007,"traceId":"ce4ce4f408d7dd97"},{"name":"seal","duration":48743,"timestamp":69647187824,"id":831,"parentId":392,"tags":{},"startTime":1771453814982,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-compilation","duration":517240,"timestamp":69646722624,"id":392,"parentId":388,"tags":{"name":"server"},"startTime":1771453814517,"traceId":"ce4ce4f408d7dd97"},{"name":"webpack-invalidated-server","duration":526211,"timestamp":69646714647,"id":388,"parentId":3,"tags":{"trigger":"package.json"},"startTime":1771453814509,"traceId":"ce4ce4f408d7dd97"},{"name":"client-error","duration":1,"timestamp":69647245182,"id":846,"parentId":3,"tags":{"errorCount":7},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":4862,"timestamp":69647245461,"id":857,"parentId":845,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":5369,"timestamp":69647245457,"id":854,"parentId":845,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":7351,"timestamp":69647245458,"id":855,"parentId":845,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":8207,"timestamp":69647245454,"id":852,"parentId":845,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":9520,"timestamp":69647245420,"id":847,"parentId":845,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":9498,"timestamp":69647245448,"id":849,"parentId":845,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":10204,"timestamp":69647245455,"id":853,"parentId":845,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/router.js"},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":27032,"timestamp":69647245462,"id":858,"parentId":845,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!"},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":27048,"timestamp":69647245452,"id":851,"parentId":845,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":1656,"timestamp":69647271811,"id":859,"parentId":844,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/index.mjs","layer":"app-pages-browser"},"startTime":1771453815066,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":28968,"timestamp":69647245451,"id":850,"parentId":845,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5581,"timestamp":69647297588,"id":860,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5697,"timestamp":69647297699,"id":861,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/events/event-info.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5730,"timestamp":69647297749,"id":862,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/is-browser.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5894,"timestamp":69647297792,"id":863,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-composed-ref.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5434,"timestamp":69647298335,"id":877,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/projection/use-instant-layout-transition.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5529,"timestamp":69647298372,"id":878,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/projection/use-reset-projection.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5545,"timestamp":69647298593,"id":884,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/transform-viewbox-point.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5326,"timestamp":69647298895,"id":892,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/distance.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5135,"timestamp":69647299149,"id":899,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/animations.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5045,"timestamp":69647299333,"id":904,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/scroll/use-element-scroll.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5063,"timestamp":69647299370,"id":905,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/scroll/use-viewport-scroll.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5130,"timestamp":69647299443,"id":907,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-will-change/WillChangeMotionValue.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5226,"timestamp":69647299557,"id":910,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5115,"timestamp":69647299779,"id":916,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"build-module-mjs","duration":5228,"timestamp":69647299816,"id":917,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/is-motion-component.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5236,"timestamp":69647299853,"id":918,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/unwrap-motion-component.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5274,"timestamp":69647299890,"id":919,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5585,"timestamp":69647299929,"id":920,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/optimized-appear/start.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5519,"timestamp":69647300039,"id":923,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/Reorder/namespace.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5629,"timestamp":69647300077,"id":924,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animate/index.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5631,"timestamp":69647300113,"id":925,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/components/m/proxy.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5648,"timestamp":69647300150,"id":926,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5756,"timestamp":69647300188,"id":927,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5785,"timestamp":69647300224,"id":928,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animators/waapi/animate-style.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5826,"timestamp":69647300262,"id":929,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6054,"timestamp":69647300299,"id":930,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6135,"timestamp":69647300335,"id":931,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15559,"timestamp":69647297870,"id":865,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15655,"timestamp":69647297909,"id":866,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15702,"timestamp":69647297947,"id":867,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-motion-value-event.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15931,"timestamp":69647297831,"id":864,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-force-update.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15840,"timestamp":69647298028,"id":869,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-motion-value.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15904,"timestamp":69647298103,"id":871,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-follow-value.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16150,"timestamp":69647297985,"id":868,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-motion-template.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16062,"timestamp":69647298151,"id":872,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-spring.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16089,"timestamp":69647298187,"id":873,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-time.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16121,"timestamp":69647298260,"id":875,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-velocity.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16579,"timestamp":69647298066,"id":870,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-scroll.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16423,"timestamp":69647298296,"id":876,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/events/use-dom-event.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16743,"timestamp":69647298222,"id":874,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-transform.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16663,"timestamp":69647298409,"id":879,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-animation-frame.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16700,"timestamp":69647298483,"id":881,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-in-view.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16844,"timestamp":69647298447,"id":880,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-cycle.mjs","layer":"app-pages-browser"},"startTime":1771453815092,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16808,"timestamp":69647298557,"id":883,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-page-in-view.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16775,"timestamp":69647298630,"id":885,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16786,"timestamp":69647298666,"id":886,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":17055,"timestamp":69647298519,"id":882,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-instant-transition.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16886,"timestamp":69647298739,"id":888,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16967,"timestamp":69647298703,"id":887,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/PresenceContext.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":16892,"timestamp":69647298818,"id":890,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":17054,"timestamp":69647298856,"id":891,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-inverted-scale.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":17480,"timestamp":69647298781,"id":889,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimateSharedLayout.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":17534,"timestamp":69647299003,"id":895,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":18113,"timestamp":69647298966,"id":894,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":18220,"timestamp":69647299040,"id":896,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/LayoutGroup/index.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":18728,"timestamp":69647298930,"id":893,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":18497,"timestamp":69647299222,"id":901,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/features-animation.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":18786,"timestamp":69647299076,"id":897,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":18864,"timestamp":69647299112,"id":898,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":18776,"timestamp":69647299260,"id":902,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/features-max.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":18781,"timestamp":69647299297,"id":903,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/features-min.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":18729,"timestamp":69647299407,"id":906,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-will-change/index.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":18684,"timestamp":69647299519,"id":909,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19243,"timestamp":69647299186,"id":900,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19027,"timestamp":69647299481,"id":908,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs","layer":"app-pages-browser"},"startTime":1771453815093,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19020,"timestamp":69647299594,"id":911,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/hooks/use-animate.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19072,"timestamp":69647299631,"id":912,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/hooks/use-animate-style.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19101,"timestamp":69647299668,"id":913,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19193,"timestamp":69647299705,"id":914,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19045,"timestamp":69647299965,"id":921,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19319,"timestamp":69647299741,"id":915,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence-data.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":19220,"timestamp":69647300001,"id":922,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/hooks/use-animated-state.mjs","layer":"app-pages-browser"},"startTime":1771453815094,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":7922,"timestamp":69647326490,"id":932,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/index.mjs","layer":"app-pages-browser"},"startTime":1771453815120,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":7973,"timestamp":69647326599,"id":933,"parentId":859,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/index.mjs","layer":"app-pages-browser"},"startTime":1771453815121,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":7955,"timestamp":69647326702,"id":935,"parentId":917,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs","layer":"app-pages-browser"},"startTime":1771453815121,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8093,"timestamp":69647326747,"id":936,"parentId":920,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/optimized-appear/handoff.mjs","layer":"app-pages-browser"},"startTime":1771453815121,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8092,"timestamp":69647326792,"id":937,"parentId":920,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/optimized-appear/store.mjs","layer":"app-pages-browser"},"startTime":1771453815121,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8124,"timestamp":69647326837,"id":938,"parentId":920,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/optimized-appear/store-id.mjs","layer":"app-pages-browser"},"startTime":1771453815121,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15555,"timestamp":69647326653,"id":934,"parentId":916,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-constant.mjs","layer":"app-pages-browser"},"startTime":1771453815121,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15638,"timestamp":69647326925,"id":940,"parentId":923,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/Reorder/Item.mjs","layer":"app-pages-browser"},"startTime":1771453815121,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":15945,"timestamp":69647326881,"id":939,"parentId":923,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/Reorder/Group.mjs","layer":"app-pages-browser"},"startTime":1771453815121,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":1727,"timestamp":69647364428,"id":941,"parentId":924,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animate/sequence.mjs","layer":"app-pages-browser"},"startTime":1771453815158,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":1855,"timestamp":69647364510,"id":942,"parentId":924,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animate/subject.mjs","layer":"app-pages-browser"},"startTime":1771453815158,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":1928,"timestamp":69647364551,"id":943,"parentId":925,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/components/create-proxy.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":1965,"timestamp":69647364590,"id":944,"parentId":926,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2035,"timestamp":69647364633,"id":945,"parentId":899,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2090,"timestamp":69647364669,"id":946,"parentId":899,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2096,"timestamp":69647364704,"id":947,"parentId":926,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2303,"timestamp":69647364740,"id":948,"parentId":928,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animators/waapi/animate-elements.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2325,"timestamp":69647364775,"id":949,"parentId":929,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/attach-animation.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2336,"timestamp":69647364818,"id":950,"parentId":929,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/attach-function.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2421,"timestamp":69647364854,"id":951,"parentId":930,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2514,"timestamp":69647364888,"id":952,"parentId":930,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2419,"timestamp":69647365025,"id":956,"parentId":870,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/utils/can-use-native-timeline.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"add-entry","duration":124416,"timestamp":69647245446,"id":848,"parentId":845,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1771453815039,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4431,"timestamp":69647368741,"id":958,"parentId":893,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4415,"timestamp":69647368824,"id":959,"parentId":901,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/gestures.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4439,"timestamp":69647368867,"id":960,"parentId":897,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/load-features.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4453,"timestamp":69647368906,"id":961,"parentId":902,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/drag.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4455,"timestamp":69647368944,"id":962,"parentId":902,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/motion/features/layout.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4794,"timestamp":69647368980,"id":963,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4924,"timestamp":69647369018,"id":964,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/GroupAnimation.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4933,"timestamp":69647369053,"id":965,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/GroupAnimationWithThen.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5660,"timestamp":69647369089,"id":966,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/JSAnimation.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5940,"timestamp":69647369124,"id":967,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/NativeAnimation.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6028,"timestamp":69647369158,"id":968,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6017,"timestamp":69647369219,"id":969,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/NativeAnimationWrapper.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6051,"timestamp":69647369255,"id":970,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/active-animations.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6094,"timestamp":69647369291,"id":971,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6194,"timestamp":69647369346,"id":972,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6233,"timestamp":69647369384,"id":973,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/default-transitions.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6256,"timestamp":69647369424,"id":974,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/get-final-keyframe.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6290,"timestamp":69647369462,"id":975,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6284,"timestamp":69647369508,"id":976,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/resolve-transition.mjs","layer":"app-pages-browser"},"startTime":1771453815163,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6350,"timestamp":69647369554,"id":977,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.mjs","layer":"app-pages-browser"},"startTime":1771453815164,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"build-module-mjs","duration":6476,"timestamp":69647369590,"id":978,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.mjs","layer":"app-pages-browser"},"startTime":1771453815164,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6442,"timestamp":69647369658,"id":979,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.mjs","layer":"app-pages-browser"},"startTime":1771453815164,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6619,"timestamp":69647369697,"id":980,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.mjs","layer":"app-pages-browser"},"startTime":1771453815164,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6665,"timestamp":69647369746,"id":981,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.mjs","layer":"app-pages-browser"},"startTime":1771453815164,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6849,"timestamp":69647369785,"id":982,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.mjs","layer":"app-pages-browser"},"startTime":1771453815164,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6989,"timestamp":69647369819,"id":983,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.mjs","layer":"app-pages-browser"},"startTime":1771453815164,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11825,"timestamp":69647365070,"id":957,"parentId":897,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/context/LazyContext.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11991,"timestamp":69647364992,"id":955,"parentId":874,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-computed.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12403,"timestamp":69647364958,"id":954,"parentId":868,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/value/use-combine-values.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12565,"timestamp":69647364924,"id":953,"parentId":864,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","layer":"app-pages-browser"},"startTime":1771453815159,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2831,"timestamp":69647385834,"id":984,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2795,"timestamp":69647385925,"id":985,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2959,"timestamp":69647385970,"id":986,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/inertia.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3020,"timestamp":69647386015,"id":987,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/keyframes.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3360,"timestamp":69647386051,"id":988,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3616,"timestamp":69647386093,"id":989,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3693,"timestamp":69647386129,"id":990,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3754,"timestamp":69647386168,"id":991,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/attr/index.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3764,"timestamp":69647386203,"id":992,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/prop/index.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4111,"timestamp":69647386239,"id":993,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/spring/index.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4129,"timestamp":69647386273,"id":994,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4247,"timestamp":69647386309,"id":995,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4270,"timestamp":69647386346,"id":996,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4268,"timestamp":69647386399,"id":997,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4297,"timestamp":69647386439,"id":998,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4295,"timestamp":69647386475,"id":999,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4312,"timestamp":69647386508,"id":1000,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/utils/apply-px-defaults.mjs","layer":"app-pages-browser"},"startTime":1771453815180,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4311,"timestamp":69647386545,"id":1001,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4328,"timestamp":69647386579,"id":1002,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4356,"timestamp":69647386613,"id":1003,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/easing/is-supported.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4391,"timestamp":69647386649,"id":1004,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4408,"timestamp":69647386686,"id":1005,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/easing/supported.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4429,"timestamp":69647386719,"id":1006,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/supports/partial-keyframes.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4488,"timestamp":69647386753,"id":1007,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4487,"timestamp":69647386785,"id":1008,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4493,"timestamp":69647386826,"id":1009,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4523,"timestamp":69647386862,"id":1010,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4661,"timestamp":69647386895,"id":1011,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/batcher.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4664,"timestamp":69647386927,"id":1012,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/microtask.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4687,"timestamp":69647386961,"id":1013,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/sync-time.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4767,"timestamp":69647386999,"id":1014,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/hover.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4869,"timestamp":69647387031,"id":1015,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/style/index.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5016,"timestamp":69647387065,"id":1016,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/effects/svg/index.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5141,"timestamp":69647387097,"id":1017,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/press/index.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5144,"timestamp":69647387128,"id":1018,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5172,"timestamp":69647387164,"id":1019,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5185,"timestamp":69647387200,"id":1020,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/resize/index.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5212,"timestamp":69647387231,"id":1021,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/scroll/observe.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5366,"timestamp":69647387264,"id":1022,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/stats/index.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5358,"timestamp":69647387296,"id":1023,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/stats/animation-count.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":5337,"timestamp":69647387343,"id":1024,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/stats/buffer.mjs","layer":"app-pages-browser"},"startTime":1771453815181,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3002,"timestamp":69647404362,"id":1025,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/interpolate.mjs","layer":"app-pages-browser"},"startTime":1771453815198,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2999,"timestamp":69647404428,"id":1026,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/is-html-element.mjs","layer":"app-pages-browser"},"startTime":1771453815198,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3002,"timestamp":69647404469,"id":1027,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/is-svg-element.mjs","layer":"app-pages-browser"},"startTime":1771453815198,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":2997,"timestamp":69647404508,"id":1028,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/is-svg-svg-element.mjs","layer":"app-pages-browser"},"startTime":1771453815198,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3036,"timestamp":69647404546,"id":1029,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/resolve-elements.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3085,"timestamp":69647404583,"id":1030,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/stagger.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3099,"timestamp":69647404631,"id":1031,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/transform.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3475,"timestamp":69647404666,"id":1032,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/index.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3673,"timestamp":69647404698,"id":1033,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/follow-value.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3728,"timestamp":69647404737,"id":1034,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/map-value.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3769,"timestamp":69647404773,"id":1035,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/spring-value.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3783,"timestamp":69647404808,"id":1036,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/transform-value.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3790,"timestamp":69647404842,"id":1037,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3794,"timestamp":69647404877,"id":1038,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3963,"timestamp":69647404913,"id":1039,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/dom/parse-transform.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3965,"timestamp":69647404948,"id":1040,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/dom/style-computed.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3963,"timestamp":69647404983,"id":1041,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/dom/style-set.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3954,"timestamp":69647405018,"id":1042,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3955,"timestamp":69647405052,"id":1043,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/keys-position.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3957,"timestamp":69647405089,"id":1044,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/keys-transform.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":3970,"timestamp":69647405124,"id":1045,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/index.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4077,"timestamp":69647405157,"id":1046,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/color.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4308,"timestamp":69647405188,"id":1047,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/complex.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4322,"timestamp":69647405221,"id":1048,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/immediate.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4328,"timestamp":69647405252,"id":1049,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/number.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4355,"timestamp":69647405285,"id":1050,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/mix/visibility.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4349,"timestamp":69647405317,"id":1051,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/supports/flags.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4382,"timestamp":69647405348,"id":1052,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/supports/linear-easing.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4382,"timestamp":69647405382,"id":1053,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4404,"timestamp":69647405415,"id":1054,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/dimensions.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4400,"timestamp":69647405446,"id":1055,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/test.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4432,"timestamp":69647405481,"id":1056,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.mjs","layer":"app-pages-browser"},"startTime":1771453815199,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4487,"timestamp":69647405514,"id":1057,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/color/index.mjs","layer":"app-pages-browser"},"startTime":1771453815200,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4539,"timestamp":69647405548,"id":1058,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/color/hex.mjs","layer":"app-pages-browser"},"startTime":1771453815200,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4578,"timestamp":69647405579,"id":1059,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/color/hsla.mjs","layer":"app-pages-browser"},"startTime":1771453815200,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4624,"timestamp":69647405622,"id":1060,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.mjs","layer":"app-pages-browser"},"startTime":1771453815200,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4655,"timestamp":69647405656,"id":1061,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/color/rgba.mjs","layer":"app-pages-browser"},"startTime":1771453815200,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":4889,"timestamp":69647405698,"id":1062,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/complex/index.mjs","layer":"app-pages-browser"},"startTime":1771453815200,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8796,"timestamp":69647416040,"id":1063,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/maps/defaults.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8852,"timestamp":69647416106,"id":1064,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/maps/number.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8882,"timestamp":69647416143,"id":1065,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/maps/transform.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8905,"timestamp":69647416183,"id":1066,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/numbers/index.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":8981,"timestamp":69647416219,"id":1067,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/numbers/units.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9132,"timestamp":69647416256,"id":1068,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/view/index.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9135,"timestamp":69647416288,"id":1069,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/utils/is-motion-value.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9174,"timestamp":69647416323,"id":1070,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/will-change/add-will-change.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9174,"timestamp":69647416361,"id":1071,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/will-change/is.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9222,"timestamp":69647416396,"id":1072,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/view/utils/get-layer-info.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9249,"timestamp":69647416436,"id":1073,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/view/utils/get-view-animations.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9275,"timestamp":69647416473,"id":1074,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"}] -[{"name":"build-module-mjs","duration":9418,"timestamp":69647416507,"id":1075,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/utils/find.mjs","layer":"app-pages-browser"},"startTime":1771453815210,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9419,"timestamp":69647416543,"id":1076,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/types/utils/get-as-type.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9423,"timestamp":69647416580,"id":1077,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/Feature.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9417,"timestamp":69647416617,"id":1078,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/store.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11848,"timestamp":69647416648,"id":1079,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/VisualElement.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11921,"timestamp":69647416683,"id":1080,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/events/add-dom-event.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11990,"timestamp":69647416718,"id":1081,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/utils/delay.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12099,"timestamp":69647416752,"id":1082,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12241,"timestamp":69647416785,"id":1083,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12291,"timestamp":69647416817,"id":1084,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/object/ObjectVisualElement.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12356,"timestamp":69647416851,"id":1085,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12786,"timestamp":69647416885,"id":1086,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/animation-state.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12829,"timestamp":69647416919,"id":1087,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/get-variant-context.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12834,"timestamp":69647416955,"id":1088,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/is-animation-controls.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12846,"timestamp":69647416991,"id":1089,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12871,"timestamp":69647417024,"id":1090,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12865,"timestamp":69647417059,"id":1091,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/is-variant-label.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12914,"timestamp":69647417095,"id":1092,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/motion-values.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12918,"timestamp":69647417130,"id":1093,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12957,"timestamp":69647417162,"id":1094,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/resolve-variants.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12991,"timestamp":69647417198,"id":1095,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/setters.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12992,"timestamp":69647417229,"id":1096,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/variant-props.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13013,"timestamp":69647417267,"id":1097,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/conversion.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13029,"timestamp":69647417299,"id":1098,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/copy.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13166,"timestamp":69647417337,"id":1099,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":13279,"timestamp":69647417368,"id":1100,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.mjs","layer":"app-pages-browser"},"startTime":1771453815211,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6452,"timestamp":69647441467,"id":1101,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.mjs","layer":"app-pages-browser"},"startTime":1771453815235,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6438,"timestamp":69647441552,"id":1102,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/models.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6502,"timestamp":69647441593,"id":1103,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/geometry/utils.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6506,"timestamp":69647441631,"id":1104,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/utils/each-axis.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6553,"timestamp":69647441670,"id":1105,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/utils/has-transform.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6582,"timestamp":69647441705,"id":1106,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/utils/measure.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6632,"timestamp":69647441741,"id":1107,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6694,"timestamp":69647441777,"id":1108,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6814,"timestamp":69647441812,"id":1109,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/styles/transform.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6970,"timestamp":69647441846,"id":1110,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/animation/mix-values.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6993,"timestamp":69647441881,"id":1111,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/animation/animate/single-value.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":6991,"timestamp":69647441917,"id":1112,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":7038,"timestamp":69647441952,"id":1113,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/utils/flat-tree.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":7045,"timestamp":69647441985,"id":1114,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9708,"timestamp":69647442021,"id":1115,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/node/create-projection-node.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9769,"timestamp":69647442057,"id":1116,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9827,"timestamp":69647442093,"id":1117,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/node/group.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9875,"timestamp":69647442128,"id":1118,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":9872,"timestamp":69647442164,"id":1119,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/node/state.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10084,"timestamp":69647442198,"id":1120,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/shared/stack.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10123,"timestamp":69647442234,"id":1121,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10158,"timestamp":69647442269,"id":1122,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10230,"timestamp":69647442307,"id":1123,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/html/utils/build-styles.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10357,"timestamp":69647442342,"id":1124,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/html/utils/build-transform.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10791,"timestamp":69647442376,"id":1125,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/layout/LayoutAnimationBuilder.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10812,"timestamp":69647442409,"id":1126,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/html/utils/render.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10842,"timestamp":69647442444,"id":1127,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10906,"timestamp":69647442483,"id":1128,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.mjs","layer":"app-pages-browser"},"startTime":1771453815236,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10908,"timestamp":69647442517,"id":1129,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10903,"timestamp":69647442554,"id":1130,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10922,"timestamp":69647442588,"id":1131,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/path.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10939,"timestamp":69647442622,"id":1132,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/render.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":10984,"timestamp":69647442655,"id":1133,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11023,"timestamp":69647442690,"id":1134,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/array.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11028,"timestamp":69647442723,"id":1135,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/clamp.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11223,"timestamp":69647442754,"id":1136,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/errors.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11223,"timestamp":69647442787,"id":1137,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/global-config.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11243,"timestamp":69647442821,"id":1138,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/is-numerical-string.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11356,"timestamp":69647442854,"id":1139,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/is-object.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11405,"timestamp":69647442886,"id":1140,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/is-zero-value-string.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11421,"timestamp":69647442919,"id":1141,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/memo.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11421,"timestamp":69647442954,"id":1142,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/noop.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11428,"timestamp":69647442986,"id":1143,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/pipe.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11440,"timestamp":69647443020,"id":1144,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/progress.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11522,"timestamp":69647443054,"id":1145,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/subscription-manager.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11563,"timestamp":69647443086,"id":1146,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/time-conversion.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11567,"timestamp":69647443118,"id":1147,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/velocity-per-second.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11594,"timestamp":69647443150,"id":1148,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/warn-once.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11648,"timestamp":69647443182,"id":1149,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/wrap.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11673,"timestamp":69647443213,"id":1150,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/index-legacy.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11687,"timestamp":69647443248,"id":1151,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/frameloop/frame.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11702,"timestamp":69647443280,"id":1152,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/anticipate.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11711,"timestamp":69647443314,"id":1153,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/back.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11721,"timestamp":69647443347,"id":1154,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/circ.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11812,"timestamp":69647443383,"id":1155,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/cubic-bezier.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11866,"timestamp":69647443418,"id":1156,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/ease.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11920,"timestamp":69647443449,"id":1157,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/steps.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11966,"timestamp":69647443480,"id":1158,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/projection/styles/scale-correction.mjs","layer":"app-pages-browser"},"startTime":1771453815237,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11982,"timestamp":69647443514,"id":1159,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/modifiers/mirror.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11982,"timestamp":69647443547,"id":1160,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/modifiers/reverse.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11992,"timestamp":69647443580,"id":1161,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/utils/get-easing-for-segment.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11992,"timestamp":69647443615,"id":1162,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":11991,"timestamp":69647443648,"id":1163,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12073,"timestamp":69647443682,"id":1164,"parentId":933,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-utils/dist/es/easing/utils/map.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12038,"timestamp":69647443754,"id":1166,"parentId":932,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12246,"timestamp":69647443792,"id":1167,"parentId":940,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/Reorder/utils/auto-scroll.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12298,"timestamp":69647443828,"id":1168,"parentId":939,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12672,"timestamp":69647443904,"id":1170,"parentId":941,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/sequence/create.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12718,"timestamp":69647443938,"id":1171,"parentId":942,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12717,"timestamp":69647443973,"id":1172,"parentId":942,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12739,"timestamp":69647444009,"id":1173,"parentId":942,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/animation/animate/resolve-subjects.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12771,"timestamp":69647444043,"id":1174,"parentId":944,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12824,"timestamp":69647444079,"id":1175,"parentId":949,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/utils/get-timeline.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12918,"timestamp":69647444116,"id":1176,"parentId":952,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"},{"name":"build-module-mjs","duration":12972,"timestamp":69647444151,"id":1177,"parentId":959,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/framer-motion/dist/es/gestures/hover.mjs","layer":"app-pages-browser"},"startTime":1771453815238,"traceId":"ce4ce4f408d7dd97"}] +[{"name":"hot-reloader","duration":29,"timestamp":69750495489,"id":3,"tags":{"version":"15.1.6"},"startTime":1771453918289,"traceId":"51c7da11f364a4df"},{"name":"start","duration":5,"timestamp":69750495863,"id":4,"parentId":3,"tags":{},"startTime":1771453918290,"traceId":"51c7da11f364a4df"},{"name":"get-version-info","duration":156515,"timestamp":69750495941,"id":5,"parentId":4,"tags":{},"startTime":1771453918290,"traceId":"51c7da11f364a4df"},{"name":"clean","duration":3616,"timestamp":69750652562,"id":6,"parentId":4,"tags":{},"startTime":1771453918447,"traceId":"51c7da11f364a4df"},{"name":"create-pages-mapping","duration":129,"timestamp":69750656947,"id":8,"parentId":7,"tags":{},"startTime":1771453918451,"traceId":"51c7da11f364a4df"},{"name":"create-entrypoints","duration":14279,"timestamp":69750657087,"id":9,"parentId":7,"tags":{},"startTime":1771453918451,"traceId":"51c7da11f364a4df"},{"name":"generate-webpack-config","duration":50974,"timestamp":69750671395,"id":10,"parentId":7,"tags":{},"startTime":1771453918465,"traceId":"51c7da11f364a4df"},{"name":"get-webpack-config","duration":65499,"timestamp":69750656882,"id":7,"parentId":4,"tags":{},"startTime":1771453918451,"traceId":"51c7da11f364a4df"},{"name":"make","duration":464,"timestamp":69750755004,"id":12,"parentId":11,"tags":{},"startTime":1771453918549,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":314,"timestamp":69750756221,"id":14,"parentId":13,"tags":{},"startTime":1771453918550,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":8,"timestamp":69750756565,"id":16,"parentId":13,"tags":{},"startTime":1771453918551,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":56,"timestamp":69750756612,"id":17,"parentId":13,"tags":{},"startTime":1771453918551,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":9,"timestamp":69750756690,"id":18,"parentId":13,"tags":{},"startTime":1771453918551,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":9,"timestamp":69750756758,"id":19,"parentId":13,"tags":{},"startTime":1771453918551,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":250,"timestamp":69750756555,"id":15,"parentId":13,"tags":{},"startTime":1771453918551,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":38,"timestamp":69750757046,"id":20,"parentId":13,"tags":{},"startTime":1771453918551,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":63,"timestamp":69750757095,"id":21,"parentId":13,"tags":{},"startTime":1771453918551,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":243,"timestamp":69750757260,"id":22,"parentId":13,"tags":{},"startTime":1771453918551,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":27,"timestamp":69750757503,"id":23,"parentId":13,"tags":{},"startTime":1771453918551,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":31,"timestamp":69750757519,"id":24,"parentId":13,"tags":{},"startTime":1771453918551,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":104,"timestamp":69750757553,"id":25,"parentId":13,"tags":{},"startTime":1771453918552,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-generateClientManifest","duration":470,"timestamp":69750792477,"id":27,"parentId":11,"tags":{},"startTime":1771453918586,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-createassets","duration":675,"timestamp":69750792279,"id":26,"parentId":11,"tags":{},"startTime":1771453918586,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":37256,"timestamp":69750756150,"id":13,"parentId":11,"tags":{},"startTime":1771453918550,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":40147,"timestamp":69750753350,"id":11,"parentId":3,"tags":{"name":"client"},"startTime":1771453918547,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":2171,"timestamp":69750793653,"id":28,"parentId":3,"tags":{},"startTime":1771453918588,"traceId":"51c7da11f364a4df"},{"name":"make","duration":652,"timestamp":69750799956,"id":30,"parentId":29,"tags":{},"startTime":1771453918594,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":41,"timestamp":69750800690,"id":32,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":4,"timestamp":69750800741,"id":34,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":24,"timestamp":69750800773,"id":35,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":3,"timestamp":69750800804,"id":36,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69750800820,"id":37,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":94,"timestamp":69750800738,"id":33,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":5,"timestamp":69750800960,"id":38,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":4,"timestamp":69750800970,"id":39,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":41,"timestamp":69750800993,"id":40,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":29,"timestamp":69750801020,"id":41,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":8,"timestamp":69750801046,"id":42,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":8,"timestamp":69750801058,"id":43,"parentId":31,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":856,"timestamp":69750800673,"id":31,"parentId":29,"tags":{},"startTime":1771453918595,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":2164,"timestamp":69750799416,"id":29,"parentId":3,"tags":{"name":"server"},"startTime":1771453918593,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":2771,"timestamp":69750801600,"id":44,"parentId":3,"tags":{},"startTime":1771453918596,"traceId":"51c7da11f364a4df"},{"name":"make","duration":85,"timestamp":69750806043,"id":46,"parentId":45,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":12,"timestamp":69750806344,"id":48,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":2,"timestamp":69750806370,"id":50,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":4,"timestamp":69750806381,"id":51,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":3,"timestamp":69750806394,"id":52,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69750806409,"id":53,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":59,"timestamp":69750806361,"id":49,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":3,"timestamp":69750806459,"id":54,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":2,"timestamp":69750806465,"id":55,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":33,"timestamp":69750806485,"id":56,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":9,"timestamp":69750806519,"id":57,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":4,"timestamp":69750806525,"id":58,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":5,"timestamp":69750806532,"id":59,"parentId":47,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":454,"timestamp":69750806331,"id":47,"parentId":45,"tags":{},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":1259,"timestamp":69750805542,"id":45,"parentId":3,"tags":{"name":"edge-server"},"startTime":1771453918600,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":781,"timestamp":69750806815,"id":60,"parentId":3,"tags":{},"startTime":1771453918601,"traceId":"51c7da11f364a4df"}] +[{"name":"make","duration":313,"timestamp":69751029134,"id":65,"parentId":64,"tags":{},"startTime":1771453918823,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":34,"timestamp":69751029700,"id":67,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":7,"timestamp":69751029768,"id":69,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":11,"timestamp":69751029797,"id":70,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":7,"timestamp":69751029821,"id":71,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":7,"timestamp":69751029852,"id":72,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":128,"timestamp":69751029759,"id":68,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":10,"timestamp":69751030003,"id":73,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":9,"timestamp":69751030024,"id":74,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":59,"timestamp":69751030071,"id":75,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":24,"timestamp":69751030130,"id":76,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":11,"timestamp":69751030146,"id":77,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":16,"timestamp":69751030162,"id":78,"parentId":66,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-generateClientManifest","duration":383,"timestamp":69751030364,"id":80,"parentId":64,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-createassets","duration":451,"timestamp":69751030305,"id":79,"parentId":64,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":1283,"timestamp":69751029662,"id":66,"parentId":64,"tags":{},"startTime":1771453918824,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":2782,"timestamp":69751028205,"id":64,"parentId":61,"tags":{"name":"client"},"startTime":1771453918822,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":2659,"timestamp":69751031029,"id":81,"parentId":61,"tags":{},"startTime":1771453918825,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-client","duration":12145,"timestamp":69751023039,"id":61,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453918817,"traceId":"51c7da11f364a4df"},{"name":"make","duration":229,"timestamp":69751037542,"id":83,"parentId":82,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":95,"timestamp":69751038033,"id":85,"parentId":84,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":4,"timestamp":69751038150,"id":87,"parentId":84,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":41,"timestamp":69751038169,"id":88,"parentId":84,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":4,"timestamp":69751038222,"id":89,"parentId":84,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":4,"timestamp":69751038240,"id":90,"parentId":84,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":118,"timestamp":69751038142,"id":86,"parentId":84,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":6,"timestamp":69751038339,"id":91,"parentId":84,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":6,"timestamp":69751038353,"id":92,"parentId":84,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":126,"timestamp":69751038384,"id":93,"parentId":84,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":34,"timestamp":69751038509,"id":94,"parentId":84,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":11,"timestamp":69751038536,"id":95,"parentId":84,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":16,"timestamp":69751038552,"id":96,"parentId":84,"tags":{},"startTime":1771453918833,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":808,"timestamp":69751037983,"id":84,"parentId":82,"tags":{},"startTime":1771453918832,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":1785,"timestamp":69751037047,"id":82,"parentId":62,"tags":{"name":"server"},"startTime":1771453918831,"traceId":"51c7da11f364a4df"},{"name":"setup-dev-bundler","duration":684246,"timestamp":69750391656,"id":2,"parentId":1,"tags":{},"startTime":1771453918186,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":38023,"timestamp":69751038864,"id":97,"parentId":62,"tags":{},"startTime":1771453918833,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-server","duration":53872,"timestamp":69751023292,"id":62,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453918817,"traceId":"51c7da11f364a4df"},{"name":"make","duration":114,"timestamp":69751078270,"id":99,"parentId":98,"tags":{},"startTime":1771453918872,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":19,"timestamp":69751078546,"id":101,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":3,"timestamp":69751078579,"id":103,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":23,"timestamp":69751078591,"id":104,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":3,"timestamp":69751078625,"id":105,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69751078639,"id":106,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":79,"timestamp":69751078574,"id":102,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":5,"timestamp":69751078709,"id":107,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":4,"timestamp":69751078718,"id":108,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":32,"timestamp":69751078739,"id":109,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":48,"timestamp":69751078771,"id":110,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":6,"timestamp":69751078815,"id":111,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":10,"timestamp":69751078824,"id":112,"parentId":100,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":490,"timestamp":69751078505,"id":100,"parentId":98,"tags":{},"startTime":1771453918872,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":1087,"timestamp":69751077931,"id":98,"parentId":63,"tags":{"name":"edge-server"},"startTime":1771453918872,"traceId":"51c7da11f364a4df"},{"name":"run-instrumentation-hook","duration":9,"timestamp":69751099031,"id":114,"parentId":1,"tags":{},"startTime":1771453918893,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":22191,"timestamp":69751079042,"id":113,"parentId":63,"tags":{},"startTime":1771453918873,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-edge-server","duration":78258,"timestamp":69751023347,"id":63,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453918817,"traceId":"51c7da11f364a4df"}] +[{"name":"start-dev-server","duration":917972,"timestamp":69750186212,"id":1,"tags":{"cpus":"12","platform":"darwin","memory.freeMem":"980123648","memory.totalMem":"51539607552","memory.heapSizeLimit":"25971130368","memory.rss":"326664192","memory.heapTotal":"138444800","memory.heapUsed":"120989048"},"startTime":1771453917980,"traceId":"51c7da11f364a4df"},{"name":"client-success","duration":3,"timestamp":69751105373,"id":115,"parentId":3,"tags":{},"startTime":1771453918899,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":369,"timestamp":69751109264,"id":116,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json"},"startTime":1771453918903,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":40,"timestamp":69751109645,"id":117,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json"},"startTime":1771453918904,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":50,"timestamp":69751109869,"id":118,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json"},"startTime":1771453918904,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":61,"timestamp":69751109930,"id":119,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json"},"startTime":1771453918904,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":112203,"timestamp":69751114881,"id":127,"parentId":126,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453918909,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":129483,"timestamp":69751115074,"id":129,"parentId":126,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771453918909,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":143036,"timestamp":69751115060,"id":128,"parentId":126,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771453918909,"traceId":"51c7da11f364a4df"},{"name":"make","duration":143919,"timestamp":69751114220,"id":126,"parentId":125,"tags":{},"startTime":1771453918908,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":2237,"timestamp":69751261132,"id":131,"parentId":130,"tags":{},"startTime":1771453919055,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":3,"timestamp":69751263387,"id":133,"parentId":130,"tags":{},"startTime":1771453919057,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":60,"timestamp":69751263400,"id":134,"parentId":130,"tags":{},"startTime":1771453919057,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":4,"timestamp":69751263469,"id":135,"parentId":130,"tags":{},"startTime":1771453919057,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69751263482,"id":136,"parentId":130,"tags":{},"startTime":1771453919057,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":400,"timestamp":69751263382,"id":132,"parentId":130,"tags":{},"startTime":1771453919057,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":2873,"timestamp":69751265246,"id":137,"parentId":130,"tags":{},"startTime":1771453919059,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":738,"timestamp":69751268126,"id":138,"parentId":130,"tags":{},"startTime":1771453919062,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":5192,"timestamp":69751270812,"id":139,"parentId":130,"tags":{},"startTime":1771453919065,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":182,"timestamp":69751276003,"id":140,"parentId":130,"tags":{},"startTime":1771453919070,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":60,"timestamp":69751276175,"id":141,"parentId":130,"tags":{},"startTime":1771453919070,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":1673,"timestamp":69751276238,"id":142,"parentId":130,"tags":{},"startTime":1771453919070,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-generateClientManifest","duration":62,"timestamp":69751278349,"id":144,"parentId":125,"tags":{},"startTime":1771453919072,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-createassets","duration":224,"timestamp":69751278193,"id":143,"parentId":125,"tags":{},"startTime":1771453919072,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":18818,"timestamp":69751260781,"id":130,"parentId":125,"tags":{},"startTime":1771453919055,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":165611,"timestamp":69751114017,"id":125,"parentId":122,"tags":{"name":"client"},"startTime":1771453918908,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":2217,"timestamp":69751279644,"id":145,"parentId":122,"tags":{},"startTime":1771453919074,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-client","duration":169001,"timestamp":69751113373,"id":122,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453918907,"traceId":"51c7da11f364a4df"},{"name":"client-success","duration":3,"timestamp":69751284323,"id":148,"parentId":3,"tags":{},"startTime":1771453919078,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":112888,"timestamp":69751284684,"id":149,"parentId":147,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453919079,"traceId":"51c7da11f364a4df"},{"name":"make","duration":146166,"timestamp":69751283590,"id":147,"parentId":146,"tags":{},"startTime":1771453919078,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":1296,"timestamp":69751432110,"id":156,"parentId":155,"tags":{},"startTime":1771453919226,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":4,"timestamp":69751433422,"id":158,"parentId":155,"tags":{},"startTime":1771453919227,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":2225,"timestamp":69751433468,"id":159,"parentId":155,"tags":{},"startTime":1771453919227,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":5,"timestamp":69751435712,"id":160,"parentId":155,"tags":{},"startTime":1771453919230,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69751435728,"id":161,"parentId":155,"tags":{},"startTime":1771453919230,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":2611,"timestamp":69751433417,"id":157,"parentId":155,"tags":{},"startTime":1771453919227,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":2402,"timestamp":69751437501,"id":162,"parentId":155,"tags":{},"startTime":1771453919231,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":824,"timestamp":69751439918,"id":163,"parentId":155,"tags":{},"startTime":1771453919234,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":958,"timestamp":69751441668,"id":164,"parentId":155,"tags":{},"startTime":1771453919236,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":73,"timestamp":69751442626,"id":165,"parentId":155,"tags":{},"startTime":1771453919237,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":28,"timestamp":69751442692,"id":166,"parentId":155,"tags":{},"startTime":1771453919237,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":14809,"timestamp":69751442759,"id":167,"parentId":155,"tags":{},"startTime":1771453919237,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":26806,"timestamp":69751431873,"id":155,"parentId":146,"tags":{},"startTime":1771453919226,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":176386,"timestamp":69751283397,"id":146,"parentId":124,"tags":{"name":"server"},"startTime":1771453919077,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":5500,"timestamp":69751459801,"id":168,"parentId":124,"tags":{},"startTime":1771453919254,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-server","duration":352349,"timestamp":69751113467,"id":124,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453918907,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":3597,"timestamp":69751470318,"id":171,"parentId":170,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453919264,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":3812,"timestamp":69751470386,"id":175,"parentId":170,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771453919264,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":9683,"timestamp":69751470362,"id":172,"parentId":170,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771453919264,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":22555,"timestamp":69751470376,"id":173,"parentId":170,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453919264,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":22966,"timestamp":69751470381,"id":174,"parentId":170,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453919264,"traceId":"51c7da11f364a4df"},{"name":"make","duration":24988,"timestamp":69751468400,"id":170,"parentId":169,"tags":{},"startTime":1771453919262,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":777,"timestamp":69751494495,"id":177,"parentId":176,"tags":{},"startTime":1771453919288,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":3,"timestamp":69751495286,"id":179,"parentId":176,"tags":{},"startTime":1771453919289,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":24,"timestamp":69751495296,"id":180,"parentId":176,"tags":{},"startTime":1771453919289,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":3,"timestamp":69751495328,"id":181,"parentId":176,"tags":{},"startTime":1771453919289,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69751495342,"id":182,"parentId":176,"tags":{},"startTime":1771453919289,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":323,"timestamp":69751495282,"id":178,"parentId":176,"tags":{},"startTime":1771453919289,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":411,"timestamp":69751496721,"id":183,"parentId":176,"tags":{},"startTime":1771453919291,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":496,"timestamp":69751497138,"id":184,"parentId":176,"tags":{},"startTime":1771453919291,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":12545,"timestamp":69751498567,"id":185,"parentId":176,"tags":{},"startTime":1771453919293,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":257,"timestamp":69751511109,"id":186,"parentId":176,"tags":{},"startTime":1771453919305,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":67,"timestamp":69751511354,"id":187,"parentId":176,"tags":{},"startTime":1771453919305,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":12579,"timestamp":69751511424,"id":188,"parentId":176,"tags":{},"startTime":1771453919305,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-generateClientManifest","duration":46,"timestamp":69751524910,"id":190,"parentId":169,"tags":{},"startTime":1771453919319,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-createassets","duration":150,"timestamp":69751524808,"id":189,"parentId":169,"tags":{},"startTime":1771453919319,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":31931,"timestamp":69751494272,"id":176,"parentId":169,"tags":{},"startTime":1771453919288,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":58441,"timestamp":69751467791,"id":169,"parentId":154,"tags":{"name":"client"},"startTime":1771453919262,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":1926,"timestamp":69751526248,"id":191,"parentId":154,"tags":{},"startTime":1771453919320,"traceId":"51c7da11f364a4df"},{"name":"compile-path","duration":415890,"timestamp":69751113385,"id":123,"tags":{"trigger":"/_not-found"},"startTime":1771453918907,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-client","duration":124613,"timestamp":69751405049,"id":154,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453919199,"traceId":"51c7da11f364a4df"}] +[{"name":"ensure-page","duration":417101,"timestamp":69751112864,"id":121,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453918907,"traceId":"51c7da11f364a4df"},{"name":"client-success","duration":2,"timestamp":69751531080,"id":193,"parentId":3,"tags":{},"startTime":1771453919325,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1498,"timestamp":69751530271,"id":192,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453919324,"traceId":"51c7da11f364a4df"},{"name":"client-full-reload","duration":2,"timestamp":69751641023,"id":194,"parentId":3,"tags":{"stackTrace":""},"startTime":1771453919435,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":531127,"timestamp":69751110526,"id":120,"tags":{"url":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json"},"startTime":1771453918904,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69751641690,"id":195,"parentId":120,"tags":{"url":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json","memory.rss":"700334080","memory.heapUsed":"241319000","memory.heapTotal":"332185600"},"startTime":1771453919436,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":6440,"timestamp":69751656913,"id":202,"parentId":201,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453919451,"traceId":"51c7da11f364a4df"},{"name":"build-module-tsx","duration":7563,"timestamp":69751666852,"id":204,"parentId":200,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx","layer":"rsc"},"startTime":1771453919461,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":18485,"timestamp":69751656950,"id":203,"parentId":201,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453919451,"traceId":"51c7da11f364a4df"},{"name":"build-module-tsx","duration":11138,"timestamp":69751682160,"id":216,"parentId":200,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx","layer":"ssr"},"startTime":1771453919476,"traceId":"51c7da11f364a4df"},{"name":"make","duration":55523,"timestamp":69751656355,"id":201,"parentId":200,"tags":{},"startTime":1771453919450,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":1337,"timestamp":69751713988,"id":218,"parentId":217,"tags":{},"startTime":1771453919508,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":3,"timestamp":69751715344,"id":220,"parentId":217,"tags":{},"startTime":1771453919509,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":1322,"timestamp":69751715359,"id":221,"parentId":217,"tags":{},"startTime":1771453919509,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":6,"timestamp":69751716701,"id":222,"parentId":217,"tags":{},"startTime":1771453919511,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69751716719,"id":223,"parentId":217,"tags":{},"startTime":1771453919511,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":1814,"timestamp":69751715338,"id":219,"parentId":217,"tags":{},"startTime":1771453919509,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":473,"timestamp":69751718364,"id":224,"parentId":217,"tags":{},"startTime":1771453919512,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":3480,"timestamp":69751718848,"id":225,"parentId":217,"tags":{},"startTime":1771453919513,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":742,"timestamp":69751723016,"id":226,"parentId":217,"tags":{},"startTime":1771453919517,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":46,"timestamp":69751723758,"id":227,"parentId":217,"tags":{},"startTime":1771453919518,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":74,"timestamp":69751723797,"id":228,"parentId":217,"tags":{},"startTime":1771453919518,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":4597,"timestamp":69751723874,"id":229,"parentId":217,"tags":{},"startTime":1771453919518,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":18523,"timestamp":69751713558,"id":217,"parentId":200,"tags":{},"startTime":1771453919508,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":78021,"timestamp":69751656041,"id":200,"parentId":198,"tags":{"name":"server"},"startTime":1771453919450,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-server","duration":81048,"timestamp":69751654585,"id":198,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453919449,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69751748172,"id":232,"parentId":3,"tags":{"errorCount":7},"startTime":1771453919542,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":3589,"timestamp":69751748610,"id":233,"parentId":231,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453919543,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":3801,"timestamp":69751748660,"id":238,"parentId":231,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771453919543,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4432,"timestamp":69751748652,"id":235,"parentId":231,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453919543,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":7390,"timestamp":69751748655,"id":236,"parentId":231,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453919543,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":7513,"timestamp":69751748646,"id":234,"parentId":231,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771453919543,"traceId":"51c7da11f364a4df"},{"name":"build-module-tsx","duration":8522,"timestamp":69751753547,"id":239,"parentId":230,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx","layer":"app-pages-browser"},"startTime":1771453919548,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":23997,"timestamp":69751748657,"id":237,"parentId":231,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453919543,"traceId":"51c7da11f364a4df"},{"name":"make","duration":35225,"timestamp":69751737450,"id":231,"parentId":230,"tags":{},"startTime":1771453919531,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":798,"timestamp":69751774193,"id":241,"parentId":240,"tags":{},"startTime":1771453919568,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":8,"timestamp":69751775006,"id":243,"parentId":240,"tags":{},"startTime":1771453919569,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":22,"timestamp":69751775025,"id":244,"parentId":240,"tags":{},"startTime":1771453919569,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":4,"timestamp":69751775056,"id":245,"parentId":240,"tags":{},"startTime":1771453919569,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69751775071,"id":246,"parentId":240,"tags":{},"startTime":1771453919569,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":339,"timestamp":69751775001,"id":242,"parentId":240,"tags":{},"startTime":1771453919569,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":492,"timestamp":69751775960,"id":247,"parentId":240,"tags":{},"startTime":1771453919570,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":1686,"timestamp":69751776477,"id":248,"parentId":240,"tags":{},"startTime":1771453919570,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":2202,"timestamp":69751779267,"id":249,"parentId":240,"tags":{},"startTime":1771453919573,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":89,"timestamp":69751781468,"id":250,"parentId":240,"tags":{},"startTime":1771453919575,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":57,"timestamp":69751781549,"id":251,"parentId":240,"tags":{},"startTime":1771453919576,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":2962,"timestamp":69751781609,"id":252,"parentId":240,"tags":{},"startTime":1771453919576,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-generateClientManifest","duration":63,"timestamp":69751785008,"id":254,"parentId":230,"tags":{},"startTime":1771453919579,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-createassets","duration":101,"timestamp":69751784973,"id":253,"parentId":230,"tags":{},"startTime":1771453919579,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":13791,"timestamp":69751773821,"id":240,"parentId":230,"tags":{},"startTime":1771453919568,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":50649,"timestamp":69751736984,"id":230,"parentId":215,"tags":{"name":"client"},"startTime":1771453919531,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-client","duration":111973,"timestamp":69751676546,"id":215,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453919471,"traceId":"51c7da11f364a4df"}] +[{"name":"ensure-page","duration":135764,"timestamp":69751653108,"id":197,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453919447,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":624,"timestamp":69751796219,"id":255,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453919590,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":364,"timestamp":69751796952,"id":256,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453919591,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":52862,"timestamp":69751811756,"id":259,"parentId":258,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453919606,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":60703,"timestamp":69751811778,"id":260,"parentId":258,"tags":{"request":"./node_modules/next/dist/client/dev/amp-dev"},"startTime":1771453919606,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":72493,"timestamp":69751811783,"id":262,"parentId":258,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1771453919606,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":72491,"timestamp":69751811801,"id":264,"parentId":258,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1771453919606,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":72499,"timestamp":69751811793,"id":263,"parentId":258,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/router.js"},"startTime":1771453919606,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":74098,"timestamp":69751811781,"id":261,"parentId":258,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1771453919606,"traceId":"51c7da11f364a4df"},{"name":"make","duration":74292,"timestamp":69751811705,"id":258,"parentId":257,"tags":{},"startTime":1771453919606,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":2422,"timestamp":69751887051,"id":266,"parentId":265,"tags":{},"startTime":1771453919681,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":4,"timestamp":69751889487,"id":268,"parentId":265,"tags":{},"startTime":1771453919683,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":28,"timestamp":69751889498,"id":269,"parentId":265,"tags":{},"startTime":1771453919683,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":5,"timestamp":69751889537,"id":270,"parentId":265,"tags":{},"startTime":1771453919683,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":4,"timestamp":69751889548,"id":271,"parentId":265,"tags":{},"startTime":1771453919684,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":78,"timestamp":69751889484,"id":267,"parentId":265,"tags":{},"startTime":1771453919683,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":1422,"timestamp":69751890570,"id":272,"parentId":265,"tags":{},"startTime":1771453919685,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":417,"timestamp":69751891998,"id":273,"parentId":265,"tags":{},"startTime":1771453919686,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":1224,"timestamp":69751893419,"id":274,"parentId":265,"tags":{},"startTime":1771453919687,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":54,"timestamp":69751894644,"id":275,"parentId":265,"tags":{},"startTime":1771453919689,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":21,"timestamp":69751894694,"id":276,"parentId":265,"tags":{},"startTime":1771453919689,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":58,"timestamp":69751894725,"id":277,"parentId":265,"tags":{},"startTime":1771453919689,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-createassets","duration":81,"timestamp":69751894935,"id":278,"parentId":257,"tags":{},"startTime":1771453919689,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":8541,"timestamp":69751886847,"id":265,"parentId":257,"tags":{},"startTime":1771453919681,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":84003,"timestamp":69751811401,"id":257,"parentId":3,"tags":{"name":"client"},"startTime":1771453919605,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":5484,"timestamp":69751895444,"id":279,"parentId":3,"tags":{},"startTime":1771453919689,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":2,"timestamp":69751904641,"id":286,"parentId":3,"tags":{"errorCount":7},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4163,"timestamp":69751904918,"id":289,"parentId":285,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4312,"timestamp":69751904932,"id":297,"parentId":285,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4888,"timestamp":69751904926,"id":294,"parentId":285,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":8949,"timestamp":69751904854,"id":287,"parentId":285,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":16625,"timestamp":69751904927,"id":295,"parentId":285,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":18413,"timestamp":69751904920,"id":290,"parentId":285,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":35020,"timestamp":69751904925,"id":293,"parentId":285,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/router.js"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":35029,"timestamp":69751904923,"id":292,"parentId":285,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":35035,"timestamp":69751904922,"id":291,"parentId":285,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":35027,"timestamp":69751904933,"id":298,"parentId":285,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":36413,"timestamp":69751904908,"id":288,"parentId":285,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":40357,"timestamp":69751904930,"id":296,"parentId":285,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771453919699,"traceId":"51c7da11f364a4df"},{"name":"make","duration":40841,"timestamp":69751904477,"id":285,"parentId":284,"tags":{},"startTime":1771453919698,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":1184,"timestamp":69751947168,"id":300,"parentId":299,"tags":{},"startTime":1771453919741,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":2,"timestamp":69751948366,"id":302,"parentId":299,"tags":{},"startTime":1771453919742,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":28,"timestamp":69751948374,"id":303,"parentId":299,"tags":{},"startTime":1771453919742,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":3,"timestamp":69751948413,"id":304,"parentId":299,"tags":{},"startTime":1771453919742,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69751948423,"id":305,"parentId":299,"tags":{},"startTime":1771453919742,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":462,"timestamp":69751948362,"id":301,"parentId":299,"tags":{},"startTime":1771453919742,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":1559,"timestamp":69751949862,"id":306,"parentId":299,"tags":{},"startTime":1771453919744,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":737,"timestamp":69751951428,"id":307,"parentId":299,"tags":{},"startTime":1771453919745,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":1468,"timestamp":69751953044,"id":308,"parentId":299,"tags":{},"startTime":1771453919747,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":53,"timestamp":69751954512,"id":309,"parentId":299,"tags":{},"startTime":1771453919748,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":57,"timestamp":69751954559,"id":310,"parentId":299,"tags":{},"startTime":1771453919749,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":993,"timestamp":69751954619,"id":311,"parentId":299,"tags":{},"startTime":1771453919749,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-generateClientManifest","duration":203,"timestamp":69751956008,"id":313,"parentId":284,"tags":{},"startTime":1771453919750,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-createassets","duration":275,"timestamp":69751955949,"id":312,"parentId":284,"tags":{},"startTime":1771453919750,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":10994,"timestamp":69751946805,"id":299,"parentId":284,"tags":{},"startTime":1771453919741,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":53504,"timestamp":69751904314,"id":284,"parentId":281,"tags":{"name":"client"},"startTime":1771453919698,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-client","duration":55415,"timestamp":69751903183,"id":281,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453919697,"traceId":"51c7da11f364a4df"},{"name":"client-added-page","duration":2,"timestamp":69751961110,"id":316,"parentId":3,"tags":{"page":"/_error"},"startTime":1771453919755,"traceId":"51c7da11f364a4df"},{"name":"client-added-page","duration":0,"timestamp":69751961153,"id":317,"parentId":3,"tags":{"page":"/_app"},"startTime":1771453919755,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":0,"timestamp":69751961186,"id":318,"parentId":3,"tags":{"errorCount":7},"startTime":1771453919755,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":9915,"timestamp":69751961934,"id":320,"parentId":315,"tags":{"request":"next/dist/pages/_app"},"startTime":1771453919756,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":12347,"timestamp":69751961943,"id":324,"parentId":315,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453919756,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":15437,"timestamp":69751961936,"id":321,"parentId":315,"tags":{"request":"next/dist/pages/_document"},"startTime":1771453919756,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":15676,"timestamp":69751961902,"id":319,"parentId":315,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771453919756,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":15640,"timestamp":69751961940,"id":323,"parentId":315,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771453919756,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":15700,"timestamp":69751961938,"id":322,"parentId":315,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453919756,"traceId":"51c7da11f364a4df"},{"name":"make","duration":29660,"timestamp":69751959718,"id":315,"parentId":314,"tags":{},"startTime":1771453919754,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":1103,"timestamp":69751990483,"id":338,"parentId":337,"tags":{},"startTime":1771453919784,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":2,"timestamp":69751991602,"id":340,"parentId":337,"tags":{},"startTime":1771453919786,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":973,"timestamp":69751991613,"id":341,"parentId":337,"tags":{},"startTime":1771453919786,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":4,"timestamp":69751992600,"id":342,"parentId":337,"tags":{},"startTime":1771453919787,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69751992612,"id":343,"parentId":337,"tags":{},"startTime":1771453919787,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":1248,"timestamp":69751991597,"id":339,"parentId":337,"tags":{},"startTime":1771453919786,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":450,"timestamp":69751993484,"id":344,"parentId":337,"tags":{},"startTime":1771453919787,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":493,"timestamp":69751993943,"id":345,"parentId":337,"tags":{},"startTime":1771453919788,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":552,"timestamp":69751994928,"id":346,"parentId":337,"tags":{},"startTime":1771453919789,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":33,"timestamp":69751995480,"id":347,"parentId":337,"tags":{},"startTime":1771453919789,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":43,"timestamp":69751995509,"id":348,"parentId":337,"tags":{},"startTime":1771453919789,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":2449,"timestamp":69751995555,"id":349,"parentId":337,"tags":{},"startTime":1771453919790,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":9526,"timestamp":69751990247,"id":337,"parentId":314,"tags":{},"startTime":1771453919784,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":44527,"timestamp":69751959562,"id":314,"parentId":283,"tags":{"name":"server"},"startTime":1771453919754,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-server","duration":528,"timestamp":69752004360,"id":350,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771453919798,"traceId":"51c7da11f364a4df"}] +[{"name":"next-dev","duration":218742,"timestamp":69786874072,"id":1,"tags":{},"startTime":1771453954668,"traceId":"16c210155efc395e"}] +[{"name":"client-error","duration":2,"timestamp":69752011016,"id":353,"parentId":3,"tags":{"errorCount":7},"startTime":1771453919805,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":2722,"timestamp":69752011510,"id":356,"parentId":352,"tags":{"request":"next/dist/pages/_document"},"startTime":1771453919805,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":2858,"timestamp":69752011507,"id":355,"parentId":352,"tags":{"request":"next/dist/pages/_app"},"startTime":1771453919805,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4535,"timestamp":69752011515,"id":359,"parentId":352,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453919805,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4827,"timestamp":69752011485,"id":354,"parentId":352,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771453919805,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":5846,"timestamp":69752011513,"id":358,"parentId":352,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771453919805,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":6141,"timestamp":69752011511,"id":357,"parentId":352,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771453919805,"traceId":"51c7da11f364a4df"},{"name":"make","duration":24078,"timestamp":69752006291,"id":352,"parentId":351,"tags":{},"startTime":1771453919800,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":999,"timestamp":69752031290,"id":371,"parentId":370,"tags":{},"startTime":1771453919825,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":3,"timestamp":69752032299,"id":373,"parentId":370,"tags":{},"startTime":1771453919826,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":976,"timestamp":69752032308,"id":374,"parentId":370,"tags":{},"startTime":1771453919826,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":3,"timestamp":69752033298,"id":375,"parentId":370,"tags":{},"startTime":1771453919827,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69752033314,"id":376,"parentId":370,"tags":{},"startTime":1771453919827,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":1216,"timestamp":69752032296,"id":372,"parentId":370,"tags":{},"startTime":1771453919826,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":125,"timestamp":69752034041,"id":377,"parentId":370,"tags":{},"startTime":1771453919828,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":361,"timestamp":69752034171,"id":378,"parentId":370,"tags":{},"startTime":1771453919828,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":544,"timestamp":69752034900,"id":379,"parentId":370,"tags":{},"startTime":1771453919829,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":22,"timestamp":69752035444,"id":380,"parentId":370,"tags":{},"startTime":1771453919829,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":26,"timestamp":69752035463,"id":381,"parentId":370,"tags":{},"startTime":1771453919829,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":73,"timestamp":69752035491,"id":382,"parentId":370,"tags":{},"startTime":1771453919829,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":6283,"timestamp":69752031075,"id":370,"parentId":351,"tags":{},"startTime":1771453919825,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":33708,"timestamp":69752006137,"id":351,"parentId":3,"tags":{"name":"server"},"startTime":1771453919800,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":139500,"timestamp":69751901213,"id":280,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453919695,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":74195,"timestamp":69751966521,"id":326,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453919760,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":468768,"timestamp":69751651678,"id":196,"tags":{"url":"/"},"startTime":1771453919446,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":2,"timestamp":69752120481,"id":383,"parentId":196,"tags":{"url":"/","memory.rss":"809861120","memory.heapUsed":"318260800","memory.heapTotal":"389103616"},"startTime":1771453919914,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":2,"timestamp":69752125757,"id":384,"parentId":3,"tags":{"errorCount":7},"startTime":1771453919920,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":488,"timestamp":69752126058,"id":385,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453919920,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":150,"timestamp":69752126610,"id":386,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453919921,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":123,"timestamp":69752126799,"id":387,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453919921,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":165098,"timestamp":69751964532,"id":325,"tags":{"url":"/"},"startTime":1771453919758,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69752129653,"id":388,"parentId":325,"tags":{"url":"/","memory.rss":"816021504","memory.heapUsed":"280070432","memory.heapTotal":"395329536"},"startTime":1771453919924,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":7,"timestamp":69752266066,"id":389,"parentId":3,"tags":{"errorCount":7},"startTime":1771453920060,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":315000,"timestamp":69751959051,"id":390,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453920068,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1300,"timestamp":69754736075,"id":392,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453922530,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1470,"timestamp":69754738474,"id":393,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453922532,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":751,"timestamp":69754740309,"id":394,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453922534,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":471,"timestamp":69754741280,"id":395,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453922535,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":16419,"timestamp":69754734297,"id":391,"tags":{"url":"/"},"startTime":1771453922528,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":3,"timestamp":69754750783,"id":396,"parentId":391,"tags":{"url":"/","memory.rss":"893124608","memory.heapUsed":"263328728","memory.heapTotal":"401342464"},"startTime":1771453922545,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":416,"timestamp":69784472412,"id":398,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453952266,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":227,"timestamp":69784473117,"id":399,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453952267,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":194,"timestamp":69784473374,"id":400,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453952267,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":296,"timestamp":69784473740,"id":401,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453952268,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":5111,"timestamp":69784471829,"id":397,"tags":{"url":"/"},"startTime":1771453952266,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69784476967,"id":402,"parentId":397,"tags":{"url":"/","memory.rss":"680738816","memory.heapUsed":"184659056","memory.heapTotal":"188399616"},"startTime":1771453952271,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":336,"timestamp":69786648864,"id":404,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453954443,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":265,"timestamp":69786649521,"id":405,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453954443,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":186,"timestamp":69786649817,"id":406,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453954444,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":212,"timestamp":69786650057,"id":407,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453954444,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":4474,"timestamp":69786648302,"id":403,"tags":{"url":"/"},"startTime":1771453954442,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69786652797,"id":408,"parentId":403,"tags":{"url":"/","memory.rss":"648347648","memory.heapUsed":"184800784","memory.heapTotal":"189710336"},"startTime":1771453954447,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":338,"timestamp":69791860780,"id":410,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453959655,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":215,"timestamp":69791861306,"id":411,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453959655,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":153,"timestamp":69791861543,"id":412,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453959655,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":104,"timestamp":69791861734,"id":413,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453959656,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":3614,"timestamp":69791860411,"id":409,"tags":{"url":"/"},"startTime":1771453959654,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69791864043,"id":414,"parentId":409,"tags":{"url":"/","memory.rss":"648396800","memory.heapUsed":"184832880","memory.heapTotal":"188661760"},"startTime":1771453959658,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1448,"timestamp":69798931157,"id":416,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453966725,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":816,"timestamp":69798933123,"id":417,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453966727,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":434,"timestamp":69798934051,"id":418,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453966728,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":261,"timestamp":69798934599,"id":419,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453966729,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":13917,"timestamp":69798928294,"id":415,"tags":{"url":"/"},"startTime":1771453966722,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":3,"timestamp":69798942274,"id":420,"parentId":415,"tags":{"url":"/","memory.rss":"557252608","memory.heapUsed":"184893944","memory.heapTotal":"188661760"},"startTime":1771453966736,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69799058638,"id":421,"parentId":3,"tags":{"errorCount":7},"startTime":1771453966853,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":138000,"timestamp":69798924601,"id":422,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453966858,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1396,"timestamp":69799891758,"id":424,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453967686,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":2262,"timestamp":69799894002,"id":425,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453967688,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":738,"timestamp":69799896473,"id":426,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453967690,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":613,"timestamp":69799897469,"id":427,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453967691,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":17173,"timestamp":69799889971,"id":423,"tags":{"url":"/"},"startTime":1771453967684,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":5,"timestamp":69799907244,"id":428,"parentId":423,"tags":{"url":"/","memory.rss":"557989888","memory.heapUsed":"185514728","memory.heapTotal":"188923904"},"startTime":1771453967701,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69800036320,"id":429,"parentId":3,"tags":{"errorCount":7},"startTime":1771453967830,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":154000,"timestamp":69799884841,"id":430,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453967833,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":609,"timestamp":69800613235,"id":432,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453968407,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":954,"timestamp":69800614514,"id":433,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453968408,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":706,"timestamp":69800615691,"id":434,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453968410,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":507,"timestamp":69800616594,"id":435,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453968411,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":13721,"timestamp":69800612335,"id":431,"tags":{"url":"/"},"startTime":1771453968406,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":4,"timestamp":69800626134,"id":436,"parentId":431,"tags":{"url":"/","memory.rss":"558399488","memory.heapUsed":"186112280","memory.heapTotal":"190234624"},"startTime":1771453968420,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":2,"timestamp":69800768115,"id":437,"parentId":3,"tags":{"errorCount":7},"startTime":1771453968562,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":166000,"timestamp":69800606482,"id":438,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453968566,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1182,"timestamp":69801353989,"id":440,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453969148,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":918,"timestamp":69801355920,"id":441,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453969150,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":612,"timestamp":69801356972,"id":442,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453969151,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":496,"timestamp":69801357806,"id":443,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453969152,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":18074,"timestamp":69801351361,"id":439,"tags":{"url":"/"},"startTime":1771453969145,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":4,"timestamp":69801369695,"id":444,"parentId":439,"tags":{"url":"/","memory.rss":"558661632","memory.heapUsed":"186288296","memory.heapTotal":"190496768"},"startTime":1771453969164,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":5,"timestamp":69801504277,"id":445,"parentId":3,"tags":{"errorCount":7},"startTime":1771453969298,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":163000,"timestamp":69801342887,"id":446,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453969300,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1131,"timestamp":69802254587,"id":448,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453970049,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1637,"timestamp":69802256855,"id":449,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453970051,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":951,"timestamp":69802258785,"id":450,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453970053,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":760,"timestamp":69802259941,"id":451,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453970054,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":18879,"timestamp":69802252572,"id":447,"tags":{"url":"/"},"startTime":1771453970047,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":4,"timestamp":69802271536,"id":452,"parentId":447,"tags":{"url":"/","memory.rss":"559841280","memory.heapUsed":"186827800","memory.heapTotal":"191807488"},"startTime":1771453970065,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69802414374,"id":453,"parentId":3,"tags":{"errorCount":7},"startTime":1771453970208,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":180000,"timestamp":69802243392,"id":454,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453970217,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":774,"timestamp":69802572909,"id":456,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453970367,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":431,"timestamp":69802574073,"id":457,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453970368,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":385,"timestamp":69802574563,"id":458,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453970369,"traceId":"51c7da11f364a4df"}] +[{"name":"ensure-page","duration":366,"timestamp":69802575327,"id":459,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453970369,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":9193,"timestamp":69802572063,"id":455,"tags":{"url":"/"},"startTime":1771453970366,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":4,"timestamp":69802581311,"id":460,"parentId":455,"tags":{"url":"/","memory.rss":"560758784","memory.heapUsed":"187372272","memory.heapTotal":"192856064"},"startTime":1771453970375,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69802708491,"id":461,"parentId":3,"tags":{"errorCount":7},"startTime":1771453970502,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":147000,"timestamp":69802567971,"id":462,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453970509,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":531,"timestamp":69802785072,"id":464,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453970579,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":760,"timestamp":69802785965,"id":465,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453970580,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":271,"timestamp":69802786767,"id":466,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453970581,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":230,"timestamp":69802787223,"id":467,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453970581,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":6400,"timestamp":69802784478,"id":463,"tags":{"url":"/"},"startTime":1771453970578,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":1,"timestamp":69802790897,"id":468,"parentId":463,"tags":{"url":"/","memory.rss":"561463296","memory.heapUsed":"186360848","memory.heapTotal":"192856064"},"startTime":1771453970585,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":2,"timestamp":69802896986,"id":469,"parentId":3,"tags":{"errorCount":7},"startTime":1771453970691,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":125000,"timestamp":69802781342,"id":470,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453970700,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":398,"timestamp":69802961412,"id":472,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453970755,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":526,"timestamp":69802962201,"id":473,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453970756,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":176,"timestamp":69802962769,"id":474,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453970757,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":157,"timestamp":69802962985,"id":475,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453970757,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":5438,"timestamp":69802960960,"id":471,"tags":{"url":"/"},"startTime":1771453970755,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":1,"timestamp":69802966420,"id":476,"parentId":471,"tags":{"url":"/","memory.rss":"561856512","memory.heapUsed":"186765456","memory.heapTotal":"192856064"},"startTime":1771453970760,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":2,"timestamp":69803068299,"id":477,"parentId":3,"tags":{"errorCount":7},"startTime":1771453970862,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":114000,"timestamp":69802959262,"id":478,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453970867,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":936,"timestamp":69803513393,"id":480,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453971307,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":978,"timestamp":69803515195,"id":481,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453971309,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":733,"timestamp":69803516293,"id":482,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453971310,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":596,"timestamp":69803517194,"id":483,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453971311,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":16298,"timestamp":69803511524,"id":479,"tags":{"url":"/"},"startTime":1771453971305,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":6,"timestamp":69803527919,"id":484,"parentId":479,"tags":{"url":"/","memory.rss":"562003968","memory.heapUsed":"187353648","memory.heapTotal":"192856064"},"startTime":1771453971322,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69803665924,"id":485,"parentId":3,"tags":{"errorCount":7},"startTime":1771453971460,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":171000,"timestamp":69803501674,"id":486,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453971468,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":345,"timestamp":69803695165,"id":488,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453971489,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":399,"timestamp":69803695808,"id":489,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453971490,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":245,"timestamp":69803696263,"id":490,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453971490,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":161,"timestamp":69803696551,"id":491,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453971490,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":4930,"timestamp":69803694738,"id":487,"tags":{"url":"/"},"startTime":1771453971489,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":1,"timestamp":69803699689,"id":492,"parentId":487,"tags":{"url":"/","memory.rss":"562282496","memory.heapUsed":"187869064","memory.heapTotal":"192856064"},"startTime":1771453971494,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69803800048,"id":493,"parentId":3,"tags":{"errorCount":7},"startTime":1771453971594,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":113000,"timestamp":69803693481,"id":494,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453971600,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":500,"timestamp":69803909807,"id":496,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453971704,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":688,"timestamp":69803910777,"id":497,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453971705,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":301,"timestamp":69803911527,"id":498,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453971705,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":253,"timestamp":69803911888,"id":499,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453971706,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":7091,"timestamp":69803909168,"id":495,"tags":{"url":"/"},"startTime":1771453971703,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":2,"timestamp":69803916286,"id":500,"parentId":495,"tags":{"url":"/","memory.rss":"562642944","memory.heapUsed":"187029944","memory.heapTotal":"193380352"},"startTime":1771453971710,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":4,"timestamp":69804026141,"id":501,"parentId":3,"tags":{"errorCount":7},"startTime":1771453971820,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":127000,"timestamp":69803904884,"id":502,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453971826,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":390,"timestamp":69804075464,"id":504,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453971869,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":258,"timestamp":69804076072,"id":505,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453971870,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":155,"timestamp":69804076362,"id":506,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453971870,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":133,"timestamp":69804076551,"id":507,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453971870,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":4795,"timestamp":69804075036,"id":503,"tags":{"url":"/"},"startTime":1771453971869,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":1,"timestamp":69804079854,"id":508,"parentId":503,"tags":{"url":"/","memory.rss":"562839552","memory.heapUsed":"187522896","memory.heapTotal":"193380352"},"startTime":1771453971874,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69804180631,"id":509,"parentId":3,"tags":{"errorCount":7},"startTime":1771453971975,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":118000,"timestamp":69804073154,"id":510,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453971985,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1615,"timestamp":69804773453,"id":512,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453972567,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1034,"timestamp":69804776044,"id":513,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453972570,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":616,"timestamp":69804777210,"id":514,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453972571,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":532,"timestamp":69804777962,"id":515,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453972572,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":21210,"timestamp":69804771474,"id":511,"tags":{"url":"/"},"startTime":1771453972565,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":5,"timestamp":69804792810,"id":516,"parentId":511,"tags":{"url":"/","memory.rss":"527482880","memory.heapUsed":"190020984","memory.heapTotal":"194428928"},"startTime":1771453972587,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69804924547,"id":517,"parentId":3,"tags":{"errorCount":7},"startTime":1771453972718,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":170000,"timestamp":69804762015,"id":518,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453972726,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":491,"timestamp":69805003830,"id":520,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453972798,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":288,"timestamp":69805004588,"id":521,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453972799,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":203,"timestamp":69805004917,"id":522,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453972799,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":138,"timestamp":69805005167,"id":523,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453972799,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":4457,"timestamp":69805003311,"id":519,"tags":{"url":"/"},"startTime":1771453972797,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":1,"timestamp":69805007793,"id":524,"parentId":519,"tags":{"url":"/","memory.rss":"528236544","memory.heapUsed":"188492392","memory.heapTotal":"194691072"},"startTime":1771453972802,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":4,"timestamp":69805121474,"id":525,"parentId":3,"tags":{"errorCount":7},"startTime":1771453972915,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":123000,"timestamp":69805000845,"id":526,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453972918,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":378,"timestamp":69805151744,"id":528,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453972946,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":201,"timestamp":69805152309,"id":529,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453972946,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":129,"timestamp":69805152532,"id":530,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453972946,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":118,"timestamp":69805152696,"id":531,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453972947,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":3282,"timestamp":69805151301,"id":527,"tags":{"url":"/"},"startTime":1771453972945,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69805154602,"id":532,"parentId":527,"tags":{"url":"/","memory.rss":"531415040","memory.heapUsed":"185900624","memory.heapTotal":"196001792"},"startTime":1771453972949,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69805253774,"id":533,"parentId":3,"tags":{"errorCount":7},"startTime":1771453973048,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":109000,"timestamp":69805148036,"id":534,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453973051,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":411,"timestamp":69805335398,"id":536,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453973129,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":330,"timestamp":69805336113,"id":537,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453973130,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":192,"timestamp":69805336485,"id":538,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453973130,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":209,"timestamp":69805336714,"id":539,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453973131,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":4026,"timestamp":69805334931,"id":535,"tags":{"url":"/"},"startTime":1771453973129,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69805338980,"id":540,"parentId":535,"tags":{"url":"/","memory.rss":"531415040","memory.heapUsed":"187900256","memory.heapTotal":"196001792"},"startTime":1771453973133,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69805442103,"id":541,"parentId":3,"tags":{"errorCount":7},"startTime":1771453973236,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":118000,"timestamp":69805331404,"id":542,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453973243,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1281,"timestamp":69806545301,"id":544,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453974339,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":865,"timestamp":69806547337,"id":545,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453974341,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":570,"timestamp":69806548317,"id":546,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453974342,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":544,"timestamp":69806549002,"id":547,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453974343,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":13428,"timestamp":69806543967,"id":543,"tags":{"url":"/"},"startTime":1771453974338,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":4,"timestamp":69806557478,"id":548,"parentId":543,"tags":{"url":"/","memory.rss":"531415040","memory.heapUsed":"186759712","memory.heapTotal":"196001792"},"startTime":1771453974351,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":3,"timestamp":69806701847,"id":549,"parentId":3,"tags":{"errorCount":7},"startTime":1771453974496,"traceId":"51c7da11f364a4df"},{"name":"navigation-to-hydration","duration":170000,"timestamp":69806537935,"id":550,"parentId":3,"tags":{"pathname":"/","query":""},"startTime":1771453974502,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":954,"timestamp":69811503934,"id":552,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453979298,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1637,"timestamp":69811505066,"id":553,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453979299,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":232,"timestamp":69811506736,"id":554,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453979301,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":231,"timestamp":69811507019,"id":555,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453979301,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":5152,"timestamp":69811503583,"id":551,"tags":{"url":"/"},"startTime":1771453979298,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69811508751,"id":556,"parentId":551,"tags":{"url":"/","memory.rss":"531791872","memory.heapUsed":"185894864","memory.heapTotal":"190496768"},"startTime":1771453979303,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":284,"timestamp":69813728708,"id":558,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453981523,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":261,"timestamp":69813729146,"id":559,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453981523,"traceId":"51c7da11f364a4df"}] +[{"name":"next-dev","duration":309202,"timestamp":69814017015,"id":1,"tags":{},"startTime":1771453981811,"traceId":"696ec0b7bb6d7c34"}] +[{"name":"next-dev","duration":365265,"timestamp":69829763336,"id":1,"tags":{},"startTime":1771453997557,"traceId":"b621dd1b37d945f4"}] +[{"name":"next-dev","duration":226674,"timestamp":69842059348,"id":1,"tags":{},"startTime":1771454009853,"traceId":"e7d21ff7e859d84f"}] +[{"name":"ensure-page","duration":143,"timestamp":69813729488,"id":560,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453981523,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":110,"timestamp":69813729664,"id":561,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453981524,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":2672,"timestamp":69813728402,"id":557,"tags":{"url":"/"},"startTime":1771453981522,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69813731088,"id":562,"parentId":557,"tags":{"url":"/","memory.rss":"531791872","memory.heapUsed":"186061496","memory.heapTotal":"191545344"},"startTime":1771453981525,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":329,"timestamp":69818881208,"id":564,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453986675,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":184,"timestamp":69818881722,"id":565,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771453986676,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":237,"timestamp":69818881925,"id":566,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771453986676,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":140,"timestamp":69818882190,"id":567,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771453986676,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":3000,"timestamp":69818880877,"id":563,"tags":{"url":"/"},"startTime":1771453986675,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69818883892,"id":568,"parentId":563,"tags":{"url":"/","memory.rss":"531791872","memory.heapUsed":"186788288","memory.heapTotal":"192331776"},"startTime":1771453986678,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":717,"timestamp":69832475633,"id":570,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454000270,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":592,"timestamp":69832476731,"id":571,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454000271,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":395,"timestamp":69832477406,"id":572,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771454000271,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":387,"timestamp":69832477895,"id":573,"parentId":3,"tags":{"inputPage":"/_error"},"startTime":1771454000272,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":8403,"timestamp":69832474153,"id":569,"tags":{"url":"/"},"startTime":1771454000268,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":1,"timestamp":69832482579,"id":574,"parentId":569,"tags":{"url":"/","memory.rss":"531791872","memory.heapUsed":"185960968","memory.heapTotal":"190496768"},"startTime":1771454000277,"traceId":"51c7da11f364a4df"},{"name":"client-error","duration":1,"timestamp":69843195780,"id":577,"parentId":3,"tags":{"errorCount":7},"startTime":1771454010990,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":9627,"timestamp":69843203010,"id":580,"parentId":579,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":9577,"timestamp":69843203071,"id":582,"parentId":579,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":10024,"timestamp":69843203093,"id":590,"parentId":579,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":10548,"timestamp":69843203082,"id":585,"parentId":579,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"build-module-tsx","duration":17046,"timestamp":69843208695,"id":592,"parentId":578,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx","layer":"app-pages-browser"},"startTime":1771454011003,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":23240,"timestamp":69843203087,"id":587,"parentId":579,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":24498,"timestamp":69843203079,"id":584,"parentId":579,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":24486,"timestamp":69843203096,"id":591,"parentId":579,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":26112,"timestamp":69843203089,"id":588,"parentId":579,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":26547,"timestamp":69843203075,"id":583,"parentId":579,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":26604,"timestamp":69843203085,"id":586,"parentId":579,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/router.js"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":27095,"timestamp":69843203091,"id":589,"parentId":579,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":27524,"timestamp":69843203066,"id":581,"parentId":579,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1771454010997,"traceId":"51c7da11f364a4df"},{"name":"make","duration":28245,"timestamp":69843202364,"id":579,"parentId":578,"tags":{},"startTime":1771454010996,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":1081,"timestamp":69843261937,"id":594,"parentId":593,"tags":{},"startTime":1771454011056,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":3,"timestamp":69843263036,"id":596,"parentId":593,"tags":{},"startTime":1771454011057,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":34,"timestamp":69843263081,"id":597,"parentId":593,"tags":{},"startTime":1771454011057,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":4,"timestamp":69843263146,"id":598,"parentId":593,"tags":{},"startTime":1771454011057,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69843263174,"id":599,"parentId":593,"tags":{},"startTime":1771454011057,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":564,"timestamp":69843263031,"id":595,"parentId":593,"tags":{},"startTime":1771454011057,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":442,"timestamp":69843264335,"id":600,"parentId":593,"tags":{},"startTime":1771454011058,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":1507,"timestamp":69843264795,"id":601,"parentId":593,"tags":{},"startTime":1771454011059,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":2618,"timestamp":69843268644,"id":602,"parentId":593,"tags":{},"startTime":1771454011063,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":89,"timestamp":69843271262,"id":603,"parentId":593,"tags":{},"startTime":1771454011065,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":50,"timestamp":69843271346,"id":604,"parentId":593,"tags":{},"startTime":1771454011065,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":3076,"timestamp":69843271399,"id":605,"parentId":593,"tags":{},"startTime":1771454011065,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-generateClientManifest","duration":187,"timestamp":69843275244,"id":607,"parentId":578,"tags":{},"startTime":1771454011069,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-createassets","duration":285,"timestamp":69843275148,"id":606,"parentId":578,"tags":{},"startTime":1771454011069,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":14740,"timestamp":69843261509,"id":593,"parentId":578,"tags":{},"startTime":1771454011055,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":74146,"timestamp":69843202118,"id":578,"parentId":575,"tags":{"name":"client"},"startTime":1771454010996,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":15607,"timestamp":69843276274,"id":608,"parentId":575,"tags":{},"startTime":1771454011070,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-client","duration":98473,"timestamp":69843194227,"id":575,"parentId":3,"tags":{"trigger":"src/app/page.tsx"},"startTime":1771454010988,"traceId":"51c7da11f364a4df"},{"name":"client-success","duration":11,"timestamp":69843295746,"id":611,"parentId":3,"tags":{},"startTime":1771454011090,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":104,"timestamp":69843296863,"id":612,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json"},"startTime":1771454011091,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":41,"timestamp":69843296983,"id":613,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json"},"startTime":1771454011091,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":85,"timestamp":69843297874,"id":620,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json"},"startTime":1771454011092,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":38,"timestamp":69843297965,"id":621,"parentId":3,"tags":{"inputPage":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json"},"startTime":1771454011092,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":3879,"timestamp":69843297277,"id":615,"parentId":610,"tags":{"request":"next/dist/pages/_app"},"startTime":1771454011091,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4038,"timestamp":69843297281,"id":616,"parentId":610,"tags":{"request":"next/dist/pages/_document"},"startTime":1771454011091,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":7838,"timestamp":69843297244,"id":614,"parentId":610,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771454011091,"traceId":"51c7da11f364a4df"},{"name":"build-module-tsx","duration":3281,"timestamp":69843303940,"id":625,"parentId":609,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx","layer":"rsc"},"startTime":1771454011098,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":10647,"timestamp":69843297285,"id":618,"parentId":610,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771454011091,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":19457,"timestamp":69843297288,"id":619,"parentId":610,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771454011091,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":19593,"timestamp":69843297283,"id":617,"parentId":610,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771454011091,"traceId":"51c7da11f364a4df"},{"name":"build-module-tsx","duration":7135,"timestamp":69843321298,"id":636,"parentId":609,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx","layer":"ssr"},"startTime":1771454011115,"traceId":"51c7da11f364a4df"},{"name":"make","duration":34635,"timestamp":69843294611,"id":610,"parentId":609,"tags":{},"startTime":1771454011089,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":1591,"timestamp":69843345650,"id":638,"parentId":637,"tags":{},"startTime":1771454011140,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":3,"timestamp":69843347260,"id":640,"parentId":637,"tags":{},"startTime":1771454011141,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":1196,"timestamp":69843347313,"id":641,"parentId":637,"tags":{},"startTime":1771454011141,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":5,"timestamp":69843348526,"id":642,"parentId":637,"tags":{},"startTime":1771454011142,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":4,"timestamp":69843348546,"id":643,"parentId":637,"tags":{},"startTime":1771454011142,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":1582,"timestamp":69843347254,"id":639,"parentId":637,"tags":{},"startTime":1771454011141,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":543,"timestamp":69843349837,"id":644,"parentId":637,"tags":{},"startTime":1771454011144,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":1561,"timestamp":69843350389,"id":645,"parentId":637,"tags":{},"startTime":1771454011144,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":1086,"timestamp":69843352780,"id":646,"parentId":637,"tags":{},"startTime":1771454011147,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":42,"timestamp":69843353866,"id":647,"parentId":637,"tags":{},"startTime":1771454011148,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":51,"timestamp":69843353904,"id":648,"parentId":637,"tags":{},"startTime":1771454011148,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":1523,"timestamp":69843353958,"id":649,"parentId":637,"tags":{},"startTime":1771454011148,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":15430,"timestamp":69843345269,"id":637,"parentId":609,"tags":{},"startTime":1771454011139,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":69296,"timestamp":69843294288,"id":609,"parentId":576,"tags":{"name":"server"},"startTime":1771454011088,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":4617,"timestamp":69843363617,"id":650,"parentId":576,"tags":{},"startTime":1771454011158,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-server","duration":10,"timestamp":69843368670,"id":651,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771454011163,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":3233,"timestamp":69843371142,"id":654,"parentId":653,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":3209,"timestamp":69843371173,"id":656,"parentId":653,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":3536,"timestamp":69843371187,"id":665,"parentId":653,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":3942,"timestamp":69843371180,"id":659,"parentId":653,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4466,"timestamp":69843371182,"id":661,"parentId":653,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":5010,"timestamp":69843371177,"id":658,"parentId":653,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":5002,"timestamp":69843371186,"id":664,"parentId":653,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":5494,"timestamp":69843371181,"id":660,"parentId":653,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/router.js"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":5724,"timestamp":69843371183,"id":662,"parentId":653,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":5898,"timestamp":69843371185,"id":663,"parentId":653,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":6020,"timestamp":69843371175,"id":657,"parentId":653,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":6094,"timestamp":69843371170,"id":655,"parentId":653,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1771454011165,"traceId":"51c7da11f364a4df"},{"name":"make","duration":7527,"timestamp":69843369757,"id":653,"parentId":652,"tags":{},"startTime":1771454011164,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":1001,"timestamp":69843378536,"id":667,"parentId":666,"tags":{},"startTime":1771454011172,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":2,"timestamp":69843379546,"id":669,"parentId":666,"tags":{},"startTime":1771454011173,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":25,"timestamp":69843379556,"id":670,"parentId":666,"tags":{},"startTime":1771454011173,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":2,"timestamp":69843379607,"id":671,"parentId":666,"tags":{},"startTime":1771454011174,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":1,"timestamp":69843379616,"id":672,"parentId":666,"tags":{},"startTime":1771454011174,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":518,"timestamp":69843379543,"id":668,"parentId":666,"tags":{},"startTime":1771454011173,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":191,"timestamp":69843380765,"id":673,"parentId":666,"tags":{},"startTime":1771454011175,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":825,"timestamp":69843380961,"id":674,"parentId":666,"tags":{},"startTime":1771454011175,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":1676,"timestamp":69843382620,"id":675,"parentId":666,"tags":{},"startTime":1771454011177,"traceId":"51c7da11f364a4df"}] +[{"name":"code-generation-jobs","duration":139,"timestamp":69843384296,"id":676,"parentId":666,"tags":{},"startTime":1771454011178,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":41,"timestamp":69843384431,"id":677,"parentId":666,"tags":{},"startTime":1771454011178,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":1098,"timestamp":69843384475,"id":678,"parentId":666,"tags":{},"startTime":1771454011178,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-generateClientManifest","duration":57,"timestamp":69843385749,"id":680,"parentId":652,"tags":{},"startTime":1771454011180,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-createassets","duration":100,"timestamp":69843385709,"id":679,"parentId":652,"tags":{},"startTime":1771454011180,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":8279,"timestamp":69843378145,"id":666,"parentId":652,"tags":{},"startTime":1771454011172,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":16839,"timestamp":69843369600,"id":652,"parentId":624,"tags":{"name":"client"},"startTime":1771454011164,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":2164,"timestamp":69843386449,"id":681,"parentId":624,"tags":{},"startTime":1771454011180,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-client","duration":88232,"timestamp":69843300783,"id":624,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771454011095,"traceId":"51c7da11f364a4df"},{"name":"client-success","duration":1,"timestamp":69843390582,"id":684,"parentId":3,"tags":{},"startTime":1771454011185,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4648,"timestamp":69843391024,"id":690,"parentId":683,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771454011185,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":5788,"timestamp":69843391018,"id":686,"parentId":683,"tags":{"request":"next/dist/pages/_app"},"startTime":1771454011185,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":5916,"timestamp":69843390998,"id":685,"parentId":683,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771454011185,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":6075,"timestamp":69843391023,"id":689,"parentId":683,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771454011185,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":6180,"timestamp":69843391020,"id":687,"parentId":683,"tags":{"request":"next/dist/pages/_document"},"startTime":1771454011185,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":6313,"timestamp":69843391021,"id":688,"parentId":683,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771454011185,"traceId":"51c7da11f364a4df"},{"name":"make","duration":12425,"timestamp":69843389845,"id":683,"parentId":682,"tags":{},"startTime":1771454011184,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":1094,"timestamp":69843403262,"id":702,"parentId":701,"tags":{},"startTime":1771454011197,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":2,"timestamp":69843404367,"id":704,"parentId":701,"tags":{},"startTime":1771454011198,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":958,"timestamp":69843404375,"id":705,"parentId":701,"tags":{},"startTime":1771454011198,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":2,"timestamp":69843405341,"id":706,"parentId":701,"tags":{},"startTime":1771454011199,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":2,"timestamp":69843405355,"id":707,"parentId":701,"tags":{},"startTime":1771454011199,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":1139,"timestamp":69843404362,"id":703,"parentId":701,"tags":{},"startTime":1771454011198,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":270,"timestamp":69843406037,"id":708,"parentId":701,"tags":{},"startTime":1771454011200,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":463,"timestamp":69843406316,"id":709,"parentId":701,"tags":{},"startTime":1771454011200,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":651,"timestamp":69843407139,"id":710,"parentId":701,"tags":{},"startTime":1771454011201,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":26,"timestamp":69843407791,"id":711,"parentId":701,"tags":{},"startTime":1771454011202,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":26,"timestamp":69843407813,"id":712,"parentId":701,"tags":{},"startTime":1771454011202,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":59,"timestamp":69843407842,"id":713,"parentId":701,"tags":{},"startTime":1771454011202,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":7691,"timestamp":69843402982,"id":701,"parentId":682,"tags":{},"startTime":1771454011197,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":23559,"timestamp":69843389700,"id":682,"parentId":3,"tags":{"name":"server"},"startTime":1771454011184,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":1028,"timestamp":69843413272,"id":714,"parentId":3,"tags":{},"startTime":1771454011207,"traceId":"51c7da11f364a4df"},{"name":"compile-path","duration":91511607,"timestamp":69751903210,"id":282,"tags":{"trigger":"/_error"},"startTime":1771453919697,"traceId":"51c7da11f364a4df"}] +[{"name":"ensure-page","duration":116802,"timestamp":69843298343,"id":623,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771454011092,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1152,"timestamp":69843415174,"id":715,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1771454011209,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":173040,"timestamp":69843298154,"id":622,"tags":{"url":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json"},"startTime":1771454011092,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69843471214,"id":716,"parentId":622,"tags":{"url":"/_next/static/webpack/04904af1bd77f32c.webpack.hot-update.json","memory.rss":"716603392","memory.heapUsed":"263902136","memory.heapTotal":"309362688"},"startTime":1771454011265,"traceId":"51c7da11f364a4df"},{"name":"client-full-reload","duration":1,"timestamp":69843471973,"id":717,"parentId":3,"tags":{"stackTrace":""},"startTime":1771454011266,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":350,"timestamp":69843479959,"id":719,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454011274,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":202,"timestamp":69843480674,"id":720,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454011275,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":10821,"timestamp":69843479628,"id":718,"tags":{"url":"/"},"startTime":1771454011274,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69843490470,"id":721,"parentId":718,"tags":{"url":"/","memory.rss":"718028800","memory.heapUsed":"267296640","memory.heapTotal":"310312960"},"startTime":1771454011284,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":21040,"timestamp":69843689905,"id":730,"parentId":727,"tags":{"request":"next/dist/pages/_document"},"startTime":1771454011484,"traceId":"51c7da11f364a4df"},{"name":"client-success","duration":3,"timestamp":69843711731,"id":735,"parentId":3,"tags":{},"startTime":1771454011506,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":22354,"timestamp":69843689900,"id":729,"parentId":727,"tags":{"request":"next/dist/pages/_app"},"startTime":1771454011484,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":26629,"timestamp":69843689921,"id":734,"parentId":727,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771454011484,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":29484,"timestamp":69843689831,"id":728,"parentId":727,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771454011484,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":29841,"timestamp":69843689914,"id":732,"parentId":727,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771454011484,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":33010,"timestamp":69843689910,"id":731,"parentId":727,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=..%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771454011484,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":59990,"timestamp":69843689918,"id":733,"parentId":727,"tags":{"request":"next-app-loader?name=app%2Fapi%2Fmonitor%2Froute&page=%2Fapi%2Fmonitor%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fmonitor%2Froute.ts&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771454011484,"traceId":"51c7da11f364a4df"},{"name":"make","duration":72578,"timestamp":69843688422,"id":727,"parentId":726,"tags":{},"startTime":1771454011482,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":1509,"timestamp":69843762274,"id":752,"parentId":751,"tags":{},"startTime":1771454011556,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":4,"timestamp":69843763800,"id":754,"parentId":751,"tags":{},"startTime":1771454011558,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":1671,"timestamp":69843763813,"id":755,"parentId":751,"tags":{},"startTime":1771454011558,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":7,"timestamp":69843765508,"id":756,"parentId":751,"tags":{},"startTime":1771454011559,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69843765527,"id":757,"parentId":751,"tags":{},"startTime":1771454011559,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":2014,"timestamp":69843763794,"id":753,"parentId":751,"tags":{},"startTime":1771454011558,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":385,"timestamp":69843766632,"id":758,"parentId":751,"tags":{},"startTime":1771454011561,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":664,"timestamp":69843767023,"id":759,"parentId":751,"tags":{},"startTime":1771454011561,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":904,"timestamp":69843768389,"id":760,"parentId":751,"tags":{},"startTime":1771454011562,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":50,"timestamp":69843769294,"id":761,"parentId":751,"tags":{},"startTime":1771454011563,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":34,"timestamp":69843769340,"id":762,"parentId":751,"tags":{},"startTime":1771454011563,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":1824,"timestamp":69843769377,"id":763,"parentId":751,"tags":{},"startTime":1771454011563,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":15345,"timestamp":69843761978,"id":751,"parentId":726,"tags":{},"startTime":1771454011556,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":92559,"timestamp":69843688031,"id":726,"parentId":724,"tags":{"name":"server"},"startTime":1771454011482,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":3533,"timestamp":69843780611,"id":764,"parentId":724,"tags":{},"startTime":1771454011575,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-server","duration":98468,"timestamp":69843685974,"id":724,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771454011480,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4082,"timestamp":69843786688,"id":767,"parentId":766,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4045,"timestamp":69843786731,"id":769,"parentId":766,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4463,"timestamp":69843786749,"id":778,"parentId":766,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4887,"timestamp":69843786738,"id":772,"parentId":766,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":5479,"timestamp":69843786741,"id":774,"parentId":766,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":6213,"timestamp":69843786735,"id":771,"parentId":766,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":6202,"timestamp":69843786750,"id":779,"parentId":766,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":10226,"timestamp":69843786748,"id":777,"parentId":766,"tags":{"request":"next-flight-client-entry-loader?server=false!"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":10541,"timestamp":69843786745,"id":775,"parentId":766,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":10740,"timestamp":69843786739,"id":773,"parentId":766,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/router.js"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":10774,"timestamp":69843786746,"id":776,"parentId":766,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":10902,"timestamp":69843786734,"id":770,"parentId":766,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":11234,"timestamp":69843786728,"id":768,"parentId":766,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1771454011581,"traceId":"51c7da11f364a4df"},{"name":"make","duration":12672,"timestamp":69843785318,"id":766,"parentId":765,"tags":{},"startTime":1771454011579,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":1323,"timestamp":69843799717,"id":781,"parentId":780,"tags":{},"startTime":1771454011594,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":3,"timestamp":69843801057,"id":783,"parentId":780,"tags":{},"startTime":1771454011595,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":30,"timestamp":69843801071,"id":784,"parentId":780,"tags":{},"startTime":1771454011595,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":3,"timestamp":69843801113,"id":785,"parentId":780,"tags":{},"startTime":1771454011595,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":3,"timestamp":69843801125,"id":786,"parentId":780,"tags":{},"startTime":1771454011595,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":430,"timestamp":69843801051,"id":782,"parentId":780,"tags":{},"startTime":1771454011595,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":270,"timestamp":69843802195,"id":787,"parentId":780,"tags":{},"startTime":1771454011596,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":764,"timestamp":69843802470,"id":788,"parentId":780,"tags":{},"startTime":1771454011596,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":1858,"timestamp":69843804137,"id":789,"parentId":780,"tags":{},"startTime":1771454011598,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":71,"timestamp":69843805995,"id":790,"parentId":780,"tags":{},"startTime":1771454011600,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":42,"timestamp":69843806060,"id":791,"parentId":780,"tags":{},"startTime":1771454011600,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":1128,"timestamp":69843806107,"id":792,"parentId":780,"tags":{},"startTime":1771454011600,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-generateClientManifest","duration":84,"timestamp":69843807732,"id":794,"parentId":765,"tags":{},"startTime":1771454011602,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-createassets","duration":133,"timestamp":69843807686,"id":793,"parentId":765,"tags":{},"startTime":1771454011602,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":9541,"timestamp":69843799239,"id":780,"parentId":765,"tags":{},"startTime":1771454011593,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":23628,"timestamp":69843785167,"id":765,"parentId":750,"tags":{"name":"client"},"startTime":1771454011579,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":2512,"timestamp":69843808808,"id":795,"parentId":750,"tags":{},"startTime":1771454011603,"traceId":"51c7da11f364a4df"},{"name":"compile-path","duration":125815,"timestamp":69843686009,"id":725,"tags":{"trigger":"/api/monitor"},"startTime":1771454011480,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-client","duration":60405,"timestamp":69843751648,"id":750,"parentId":3,"tags":{"trigger":"manual"},"startTime":1771454011546,"traceId":"51c7da11f364a4df"}] +[{"name":"ensure-page","duration":128975,"timestamp":69843683344,"id":723,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454011477,"traceId":"51c7da11f364a4df"},{"name":"client-success","duration":1,"timestamp":69843820338,"id":796,"parentId":3,"tags":{},"startTime":1771454011614,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":641,"timestamp":69843820761,"id":797,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454011615,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":179605,"timestamp":69843682942,"id":722,"tags":{"url":"/api/monitor"},"startTime":1771454011477,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69843862573,"id":798,"parentId":722,"tags":{"url":"/api/monitor","memory.rss":"751271936","memory.heapUsed":"270878832","memory.heapTotal":"327139328"},"startTime":1771454011657,"traceId":"51c7da11f364a4df"},{"name":"client-hmr-latency","duration":117000,"timestamp":69843752410,"id":799,"parentId":3,"tags":{"updatedModules":[],"page":"/","isPageHidden":true},"startTime":1771454011663,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1005,"timestamp":69846908389,"id":801,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454014702,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":852,"timestamp":69846909973,"id":802,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454014704,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":43559,"timestamp":69846907271,"id":800,"tags":{"url":"/"},"startTime":1771454014701,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69846950858,"id":803,"parentId":800,"tags":{"url":"/","memory.rss":"752205824","memory.heapUsed":"278156000","memory.heapTotal":"328220672"},"startTime":1771454014745,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1015,"timestamp":69851098815,"id":805,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454018893,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":959,"timestamp":69851100559,"id":806,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454018894,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":15165,"timestamp":69851097247,"id":804,"tags":{"url":"/"},"startTime":1771454018891,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":1,"timestamp":69851112547,"id":807,"parentId":804,"tags":{"url":"/","memory.rss":"752287744","memory.heapUsed":"279700696","memory.heapTotal":"328482816"},"startTime":1771454018906,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":866,"timestamp":69874009789,"id":809,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454041804,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":607,"timestamp":69874011642,"id":810,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454041806,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":13317,"timestamp":69874007784,"id":808,"tags":{"url":"/api/monitor"},"startTime":1771454041802,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":2,"timestamp":69874021192,"id":811,"parentId":808,"tags":{"url":"/api/monitor","memory.rss":"645283840","memory.heapUsed":"247382376","memory.heapTotal":"253722624"},"startTime":1771454041815,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":179,"timestamp":69904003463,"id":813,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454071797,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":124,"timestamp":69904003850,"id":814,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454071798,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":2430,"timestamp":69904003055,"id":812,"tags":{"url":"/api/monitor"},"startTime":1771454071797,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69904005504,"id":815,"parentId":812,"tags":{"url":"/api/monitor","memory.rss":"696336384","memory.heapUsed":"246456520","memory.heapTotal":"259686400"},"startTime":1771454071799,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":602,"timestamp":69934008565,"id":817,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454101802,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":303,"timestamp":69934009840,"id":818,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454101804,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":14438,"timestamp":69934007006,"id":816,"tags":{"url":"/api/monitor"},"startTime":1771454101801,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":2,"timestamp":69934021603,"id":819,"parentId":816,"tags":{"url":"/api/monitor","memory.rss":"698236928","memory.heapUsed":"247231136","memory.heapTotal":"259686400"},"startTime":1771454101816,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":728,"timestamp":69964008717,"id":821,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454131803,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":445,"timestamp":69964010402,"id":822,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454131804,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":11408,"timestamp":69964006865,"id":820,"tags":{"url":"/api/monitor"},"startTime":1771454131801,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":1,"timestamp":69964018359,"id":823,"parentId":820,"tags":{"url":"/api/monitor","memory.rss":"698269696","memory.heapUsed":"247771840","memory.heapTotal":"259948544"},"startTime":1771454131812,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":1072,"timestamp":69994007224,"id":825,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454161801,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":778,"timestamp":69994009456,"id":826,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454161804,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":10131,"timestamp":69994005954,"id":824,"tags":{"url":"/api/monitor"},"startTime":1771454161800,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":1,"timestamp":69994016161,"id":827,"parentId":824,"tags":{"url":"/api/monitor","memory.rss":"698286080","memory.heapUsed":"248223176","memory.heapTotal":"260472832"},"startTime":1771454161810,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":448,"timestamp":69997414179,"id":829,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454165208,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":199,"timestamp":69997415148,"id":830,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454165209,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":11218,"timestamp":69997413845,"id":828,"tags":{"url":"/"},"startTime":1771454165208,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":69997425084,"id":831,"parentId":828,"tags":{"url":"/","memory.rss":"698384384","memory.heapUsed":"246371600","memory.heapTotal":"257589248"},"startTime":1771454165219,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":287,"timestamp":70002374981,"id":833,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454170169,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":185,"timestamp":70002375432,"id":834,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454170169,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":4343,"timestamp":70002374666,"id":832,"tags":{"url":"/"},"startTime":1771454170169,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":70002379027,"id":835,"parentId":832,"tags":{"url":"/","memory.rss":"698384384","memory.heapUsed":"246376064","memory.heapTotal":"256802816"},"startTime":1771454170173,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":309,"timestamp":70021651682,"id":837,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454189446,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":474,"timestamp":70021652155,"id":838,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1771454189446,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":5403,"timestamp":70021651372,"id":836,"tags":{"url":"/"},"startTime":1771454189445,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":0,"timestamp":70021656798,"id":839,"parentId":836,"tags":{"url":"/","memory.rss":"698417152","memory.heapUsed":"246524776","memory.heapTotal":"257327104"},"startTime":1771454189451,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":685,"timestamp":70024009993,"id":841,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454191804,"traceId":"51c7da11f364a4df"},{"name":"ensure-page","duration":407,"timestamp":70024011440,"id":842,"parentId":3,"tags":{"inputPage":"/api/monitor/route"},"startTime":1771454191805,"traceId":"51c7da11f364a4df"},{"name":"handle-request","duration":8454,"timestamp":70024008538,"id":840,"tags":{"url":"/api/monitor"},"startTime":1771454191802,"traceId":"51c7da11f364a4df"},{"name":"memory-usage","duration":3,"timestamp":70024018464,"id":843,"parentId":840,"tags":{"url":"/api/monitor","memory.rss":"698417152","memory.heapUsed":"246966936","memory.heapTotal":"257851392"},"startTime":1771454191812,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":4779,"timestamp":70062080624,"id":858,"parentId":847,"tags":{"request":"next-flight-client-entry-loader?server=false!"},"startTime":1771454229875,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":8540,"timestamp":70062080545,"id":848,"parentId":847,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771454229874,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":8492,"timestamp":70062080600,"id":850,"parentId":847,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1771454229874,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":9312,"timestamp":70062080610,"id":853,"parentId":847,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_app&page=%2F_app!"},"startTime":1771454229874,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":10288,"timestamp":70062080614,"id":855,"parentId":847,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454229874,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":10953,"timestamp":70062080607,"id":852,"parentId":847,"tags":{"request":"next-client-pages-loader?absolutePagePath=next%2Fdist%2Fpages%2F_error&page=%2F_error!"},"startTime":1771454229874,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":10936,"timestamp":70062080627,"id":859,"parentId":847,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&page=%2F_error!"},"startTime":1771454229875,"traceId":"51c7da11f364a4df"},{"name":"build-module-tsx","duration":20957,"timestamp":70062085848,"id":860,"parentId":846,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx","layer":"app-pages-browser"},"startTime":1771454229880,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":26804,"timestamp":70062080616,"id":856,"parentId":847,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454229874,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":28427,"timestamp":70062080604,"id":851,"parentId":847,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1771454229874,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":28572,"timestamp":70062080612,"id":854,"parentId":847,"tags":{"request":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/next/dist/client/router.js"},"startTime":1771454229874,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":29944,"timestamp":70062080592,"id":849,"parentId":847,"tags":{"request":"./node_modules/next/dist/client/next-dev.js"},"startTime":1771454229874,"traceId":"51c7da11f364a4df"},{"name":"build-module-js","duration":33261,"timestamp":70062124850,"id":861,"parentId":860,"tags":{"name":"__barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/lucide-react/dist/esm/lucide-react.js","layer":"app-pages-browser"},"startTime":1771454229919,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":202852,"timestamp":70062080622,"id":857,"parentId":847,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1771454229875,"traceId":"51c7da11f364a4df"},{"name":"make","duration":203709,"timestamp":70062079787,"id":847,"parentId":846,"tags":{},"startTime":1771454229874,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":2207,"timestamp":70062290940,"id":863,"parentId":862,"tags":{},"startTime":1771454230085,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":3,"timestamp":70062293162,"id":865,"parentId":862,"tags":{},"startTime":1771454230087,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":40,"timestamp":70062293196,"id":866,"parentId":862,"tags":{},"startTime":1771454230087,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":5,"timestamp":70062293260,"id":867,"parentId":862,"tags":{},"startTime":1771454230087,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":3,"timestamp":70062293287,"id":868,"parentId":862,"tags":{},"startTime":1771454230087,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":896,"timestamp":70062293158,"id":864,"parentId":862,"tags":{},"startTime":1771454230087,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":1408,"timestamp":70062295509,"id":869,"parentId":862,"tags":{},"startTime":1771454230089,"traceId":"51c7da11f364a4df"},{"name":"code-generation","duration":2321,"timestamp":70062296922,"id":870,"parentId":862,"tags":{},"startTime":1771454230091,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":3352,"timestamp":70062300720,"id":871,"parentId":862,"tags":{},"startTime":1771454230095,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":86,"timestamp":70062304071,"id":872,"parentId":862,"tags":{},"startTime":1771454230098,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":77,"timestamp":70062304152,"id":873,"parentId":862,"tags":{},"startTime":1771454230098,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":11300,"timestamp":70062304232,"id":874,"parentId":862,"tags":{},"startTime":1771454230098,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-generateClientManifest","duration":210,"timestamp":70062317353,"id":876,"parentId":846,"tags":{},"startTime":1771454230111,"traceId":"51c7da11f364a4df"},{"name":"NextJsBuildManifest-createassets","duration":392,"timestamp":70062317181,"id":875,"parentId":846,"tags":{},"startTime":1771454230111,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":29615,"timestamp":70062289411,"id":862,"parentId":846,"tags":{},"startTime":1771454230083,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":240532,"timestamp":70062078511,"id":846,"parentId":844,"tags":{"name":"client"},"startTime":1771454229872,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":6003,"timestamp":70062319056,"id":877,"parentId":844,"tags":{},"startTime":1771454230113,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-client","duration":255671,"timestamp":70062070207,"id":844,"parentId":3,"tags":{"trigger":"src/app/page.tsx"},"startTime":1771454229864,"traceId":"51c7da11f364a4df"},{"name":"client-success","duration":1,"timestamp":70062329153,"id":880,"parentId":3,"tags":{},"startTime":1771454230123,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":3089,"timestamp":70062330749,"id":882,"parentId":879,"tags":{"request":"next/dist/pages/_app"},"startTime":1771454230125,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":3323,"timestamp":70062330753,"id":883,"parentId":879,"tags":{"request":"next/dist/pages/_document"},"startTime":1771454230125,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":8320,"timestamp":70062330684,"id":881,"parentId":879,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=next%2Fdist%2Fpages%2F_error&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771454230125,"traceId":"51c7da11f364a4df"},{"name":"build-module-tsx","duration":3531,"timestamp":70062337674,"id":887,"parentId":878,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx","layer":"rsc"},"startTime":1771454230132,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":11102,"timestamp":70062330755,"id":884,"parentId":879,"tags":{"request":"next-route-loader?kind=PAGES&page=%2F_error&preferredRegion=&absolutePagePath=.%2Fnode_modules%2Fnext%2Fdist%2Fpages%2F_error.js&absoluteAppPath=next%2Fdist%2Fpages%2F_app&absoluteDocumentPath=next%2Fdist%2Fpages%2F_document&middlewareConfigBase64=e30%3D!"},"startTime":1771454230125,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":12390,"timestamp":70062330758,"id":885,"parentId":879,"tags":{"request":"next-app-loader?name=app%2Fapi%2Fmonitor%2Froute&page=%2Fapi%2Fmonitor%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fmonitor%2Froute.ts&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771454230125,"traceId":"51c7da11f364a4df"},{"name":"add-entry","duration":12389,"timestamp":70062330762,"id":886,"parentId":879,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fmattbruce%2FDocuments%2FProjects%2FOpenClaw%2FWeb%2Fheartbeat-monitor&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1771454230125,"traceId":"51c7da11f364a4df"},{"name":"build-module-tsx","duration":15095,"timestamp":70062350322,"id":898,"parentId":878,"tags":{"name":"/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx","layer":"ssr"},"startTime":1771454230144,"traceId":"51c7da11f364a4df"},{"name":"build-module-js","duration":2089,"timestamp":70062380517,"id":899,"parentId":898,"tags":{"name":"__barrel_optimize__?names=Activity,AlertCircle,Clock,ExternalLink,Globe,LayoutGrid,List,Plus,RefreshCw,Server,Trash2,TrendingUp!=!/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/node_modules/lucide-react/dist/esm/lucide-react.js","layer":"ssr"},"startTime":1771454230174,"traceId":"51c7da11f364a4df"},{"name":"make","duration":208180,"timestamp":70062327427,"id":879,"parentId":878,"tags":{},"startTime":1771454230121,"traceId":"51c7da11f364a4df"},{"name":"chunk-graph","duration":1768,"timestamp":70062541861,"id":901,"parentId":900,"tags":{},"startTime":1771454230336,"traceId":"51c7da11f364a4df"},{"name":"optimize-modules","duration":3,"timestamp":70062543645,"id":903,"parentId":900,"tags":{},"startTime":1771454230338,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunks","duration":1463,"timestamp":70062543721,"id":904,"parentId":900,"tags":{},"startTime":1771454230338,"traceId":"51c7da11f364a4df"},{"name":"optimize-tree","duration":6,"timestamp":70062545202,"id":905,"parentId":900,"tags":{},"startTime":1771454230339,"traceId":"51c7da11f364a4df"},{"name":"optimize-chunk-modules","duration":2,"timestamp":70062545222,"id":906,"parentId":900,"tags":{},"startTime":1771454230339,"traceId":"51c7da11f364a4df"},{"name":"optimize","duration":2160,"timestamp":70062543640,"id":902,"parentId":900,"tags":{},"startTime":1771454230338,"traceId":"51c7da11f364a4df"},{"name":"module-hash","duration":1394,"timestamp":70062547357,"id":907,"parentId":900,"tags":{},"startTime":1771454230341,"traceId":"51c7da11f364a4df"}] +[{"name":"code-generation","duration":1652,"timestamp":70062548889,"id":908,"parentId":900,"tags":{},"startTime":1771454230343,"traceId":"51c7da11f364a4df"},{"name":"hash","duration":1124,"timestamp":70062551371,"id":909,"parentId":900,"tags":{},"startTime":1771454230345,"traceId":"51c7da11f364a4df"},{"name":"code-generation-jobs","duration":38,"timestamp":70062552496,"id":910,"parentId":900,"tags":{},"startTime":1771454230346,"traceId":"51c7da11f364a4df"},{"name":"module-assets","duration":56,"timestamp":70062552530,"id":911,"parentId":900,"tags":{},"startTime":1771454230346,"traceId":"51c7da11f364a4df"},{"name":"create-chunk-assets","duration":2646,"timestamp":70062552588,"id":912,"parentId":900,"tags":{},"startTime":1771454230346,"traceId":"51c7da11f364a4df"},{"name":"seal","duration":16397,"timestamp":70062540314,"id":900,"parentId":878,"tags":{},"startTime":1771454230334,"traceId":"51c7da11f364a4df"},{"name":"webpack-compilation","duration":233283,"timestamp":70062327158,"id":878,"parentId":845,"tags":{"name":"server"},"startTime":1771454230121,"traceId":"51c7da11f364a4df"},{"name":"emit","duration":13874,"timestamp":70062560462,"id":913,"parentId":845,"tags":{},"startTime":1771454230354,"traceId":"51c7da11f364a4df"},{"name":"webpack-invalidated-server","duration":504861,"timestamp":70062070380,"id":845,"parentId":3,"tags":{"trigger":"src/app/page.tsx"},"startTime":1771454229864,"traceId":"51c7da11f364a4df"}] diff --git a/.next/types/app/api/monitor/route.ts b/.next/types/app/api/monitor/route.ts new file mode 100644 index 00000000..63d1545d --- /dev/null +++ b/.next/types/app/api/monitor/route.ts @@ -0,0 +1,347 @@ +// File: /Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/api/monitor/route.ts +import * as entry from '../../../../../src/app/api/monitor/route.js' +import type { NextRequest } from 'next/server.js' + +type TEntry = typeof import('../../../../../src/app/api/monitor/route.js') + +type SegmentParams<T extends Object = any> = T extends Record<string, any> + ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never } + : T + +// Check that the entry is a valid entry +checkFields<Diff<{ + GET?: Function + HEAD?: Function + OPTIONS?: Function + POST?: Function + PUT?: Function + DELETE?: Function + PATCH?: Function + config?: {} + generateStaticParams?: Function + revalidate?: RevalidateRange<TEntry> | false + dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static' + dynamicParams?: boolean + fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache' + preferredRegion?: 'auto' | 'global' | 'home' | string | string[] + runtime?: 'nodejs' | 'experimental-edge' | 'edge' + maxDuration?: number + +}, TEntry, ''>>() + +type RouteContext = { params: Promise<SegmentParams> } +// Check the prop type of the entry function +if ('GET' in entry) { + checkFields< + Diff< + ParamCheck<Request | NextRequest>, + { + __tag__: 'GET' + __param_position__: 'first' + __param_type__: FirstArg<MaybeField<TEntry, 'GET'>> + }, + 'GET' + > + >() + checkFields< + Diff< + ParamCheck<RouteContext>, + { + __tag__: 'GET' + __param_position__: 'second' + __param_type__: SecondArg<MaybeField<TEntry, 'GET'>> + }, + 'GET' + > + >() + + checkFields< + Diff< + { + __tag__: 'GET', + __return_type__: Response | void | never | Promise<Response | void | never> + }, + { + __tag__: 'GET', + __return_type__: ReturnType<MaybeField<TEntry, 'GET'>> + }, + 'GET' + > + >() +} +// Check the prop type of the entry function +if ('HEAD' in entry) { + checkFields< + Diff< + ParamCheck<Request | NextRequest>, + { + __tag__: 'HEAD' + __param_position__: 'first' + __param_type__: FirstArg<MaybeField<TEntry, 'HEAD'>> + }, + 'HEAD' + > + >() + checkFields< + Diff< + ParamCheck<RouteContext>, + { + __tag__: 'HEAD' + __param_position__: 'second' + __param_type__: SecondArg<MaybeField<TEntry, 'HEAD'>> + }, + 'HEAD' + > + >() + + checkFields< + Diff< + { + __tag__: 'HEAD', + __return_type__: Response | void | never | Promise<Response | void | never> + }, + { + __tag__: 'HEAD', + __return_type__: ReturnType<MaybeField<TEntry, 'HEAD'>> + }, + 'HEAD' + > + >() +} +// Check the prop type of the entry function +if ('OPTIONS' in entry) { + checkFields< + Diff< + ParamCheck<Request | NextRequest>, + { + __tag__: 'OPTIONS' + __param_position__: 'first' + __param_type__: FirstArg<MaybeField<TEntry, 'OPTIONS'>> + }, + 'OPTIONS' + > + >() + checkFields< + Diff< + ParamCheck<RouteContext>, + { + __tag__: 'OPTIONS' + __param_position__: 'second' + __param_type__: SecondArg<MaybeField<TEntry, 'OPTIONS'>> + }, + 'OPTIONS' + > + >() + + checkFields< + Diff< + { + __tag__: 'OPTIONS', + __return_type__: Response | void | never | Promise<Response | void | never> + }, + { + __tag__: 'OPTIONS', + __return_type__: ReturnType<MaybeField<TEntry, 'OPTIONS'>> + }, + 'OPTIONS' + > + >() +} +// Check the prop type of the entry function +if ('POST' in entry) { + checkFields< + Diff< + ParamCheck<Request | NextRequest>, + { + __tag__: 'POST' + __param_position__: 'first' + __param_type__: FirstArg<MaybeField<TEntry, 'POST'>> + }, + 'POST' + > + >() + checkFields< + Diff< + ParamCheck<RouteContext>, + { + __tag__: 'POST' + __param_position__: 'second' + __param_type__: SecondArg<MaybeField<TEntry, 'POST'>> + }, + 'POST' + > + >() + + checkFields< + Diff< + { + __tag__: 'POST', + __return_type__: Response | void | never | Promise<Response | void | never> + }, + { + __tag__: 'POST', + __return_type__: ReturnType<MaybeField<TEntry, 'POST'>> + }, + 'POST' + > + >() +} +// Check the prop type of the entry function +if ('PUT' in entry) { + checkFields< + Diff< + ParamCheck<Request | NextRequest>, + { + __tag__: 'PUT' + __param_position__: 'first' + __param_type__: FirstArg<MaybeField<TEntry, 'PUT'>> + }, + 'PUT' + > + >() + checkFields< + Diff< + ParamCheck<RouteContext>, + { + __tag__: 'PUT' + __param_position__: 'second' + __param_type__: SecondArg<MaybeField<TEntry, 'PUT'>> + }, + 'PUT' + > + >() + + checkFields< + Diff< + { + __tag__: 'PUT', + __return_type__: Response | void | never | Promise<Response | void | never> + }, + { + __tag__: 'PUT', + __return_type__: ReturnType<MaybeField<TEntry, 'PUT'>> + }, + 'PUT' + > + >() +} +// Check the prop type of the entry function +if ('DELETE' in entry) { + checkFields< + Diff< + ParamCheck<Request | NextRequest>, + { + __tag__: 'DELETE' + __param_position__: 'first' + __param_type__: FirstArg<MaybeField<TEntry, 'DELETE'>> + }, + 'DELETE' + > + >() + checkFields< + Diff< + ParamCheck<RouteContext>, + { + __tag__: 'DELETE' + __param_position__: 'second' + __param_type__: SecondArg<MaybeField<TEntry, 'DELETE'>> + }, + 'DELETE' + > + >() + + checkFields< + Diff< + { + __tag__: 'DELETE', + __return_type__: Response | void | never | Promise<Response | void | never> + }, + { + __tag__: 'DELETE', + __return_type__: ReturnType<MaybeField<TEntry, 'DELETE'>> + }, + 'DELETE' + > + >() +} +// Check the prop type of the entry function +if ('PATCH' in entry) { + checkFields< + Diff< + ParamCheck<Request | NextRequest>, + { + __tag__: 'PATCH' + __param_position__: 'first' + __param_type__: FirstArg<MaybeField<TEntry, 'PATCH'>> + }, + 'PATCH' + > + >() + checkFields< + Diff< + ParamCheck<RouteContext>, + { + __tag__: 'PATCH' + __param_position__: 'second' + __param_type__: SecondArg<MaybeField<TEntry, 'PATCH'>> + }, + 'PATCH' + > + >() + + checkFields< + Diff< + { + __tag__: 'PATCH', + __return_type__: Response | void | never | Promise<Response | void | never> + }, + { + __tag__: 'PATCH', + __return_type__: ReturnType<MaybeField<TEntry, 'PATCH'>> + }, + 'PATCH' + > + >() +} + +// Check the arguments and return type of the generateStaticParams function +if ('generateStaticParams' in entry) { + checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>() + checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>() +} + +export interface PageProps { + params?: Promise<SegmentParams> + searchParams?: Promise<any> +} +export interface LayoutProps { + children?: React.ReactNode + + params?: Promise<SegmentParams> +} + +// ============= +// Utility types +type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never + +// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>. +type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K> +type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message> + +type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never +type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never +type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never + +type ParamCheck<T> = { + __tag__: string + __param_position__: string + __param_type__: T +} + +function checkFields<_ extends { [k in keyof any]: never }>() {} + +// https://github.com/sindresorhus/type-fest +type Numeric = number | bigint +type Zero = 0 | 0n +type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never +type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__' diff --git a/.next/types/app/page.ts b/.next/types/app/page.ts new file mode 100644 index 00000000..29832dce --- /dev/null +++ b/.next/types/app/page.ts @@ -0,0 +1,84 @@ +// File: /Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor/src/app/page.tsx +import * as entry from '../../../src/app/page.js' +import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js' + +type TEntry = typeof import('../../../src/app/page.js') + +type SegmentParams<T extends Object = any> = T extends Record<string, any> + ? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never } + : T + +// Check that the entry is a valid entry +checkFields<Diff<{ + default: Function + config?: {} + generateStaticParams?: Function + revalidate?: RevalidateRange<TEntry> | false + dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static' + dynamicParams?: boolean + fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache' + preferredRegion?: 'auto' | 'global' | 'home' | string | string[] + runtime?: 'nodejs' | 'experimental-edge' | 'edge' + maxDuration?: number + + metadata?: any + generateMetadata?: Function + viewport?: any + generateViewport?: Function + experimental_ppr?: boolean + +}, TEntry, ''>>() + + +// Check the prop type of the entry function +checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>() + +// Check the arguments and return type of the generateMetadata function +if ('generateMetadata' in entry) { + checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>() + checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>() +} + +// Check the arguments and return type of the generateViewport function +if ('generateViewport' in entry) { + checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>() + checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>() +} + +// Check the arguments and return type of the generateStaticParams function +if ('generateStaticParams' in entry) { + checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>() + checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>() +} + +export interface PageProps { + params?: Promise<SegmentParams> + searchParams?: Promise<any> +} +export interface LayoutProps { + children?: React.ReactNode + + params?: Promise<SegmentParams> +} + +// ============= +// Utility types +type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never + +// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>. +type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K> +type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message> + +type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never +type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never +type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never + + + +function checkFields<_ extends { [k in keyof any]: never }>() {} + +// https://github.com/sindresorhus/type-fest +type Numeric = number | bigint +type Zero = 0 | 0n +type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never +type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__' diff --git a/src/app/page.tsx b/src/app/page.tsx index bbda9dde..556b918d 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -2,14 +2,23 @@ import { useState, useEffect } from "react"; import { motion, AnimatePresence } from "framer-motion"; -import { Activity, Plus, RefreshCw, Trash2, ExternalLink, Server, TrendingUp, Zap, AlertCircle, Globe } from "lucide-react"; -import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card"; -import { Button } from "@/components/ui/button"; -import { Badge } from "@/components/ui/badge"; -import { Progress } from "@/components/ui/progress"; -import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from "@/components/ui/dialog"; -import { Input } from "@/components/ui/input"; -import { Label } from "@/components/ui/label"; +import { + Activity, + Plus, + RefreshCw, + Trash2, + ExternalLink, + Server, + TrendingUp, + AlertCircle, + Globe, + CheckCircle2, + XCircle, + Clock, + MoreHorizontal, + LayoutGrid, + List +} from "lucide-react"; interface App { id: string; @@ -35,7 +44,9 @@ export default function HeartbeatMonitor() { const [apps, setApps] = useState<App[]>([]); const [status, setStatus] = useState<StatusEntry[]>([]); const [loading, setLoading] = useState(true); + const [refreshing, setRefreshing] = useState(false); const [showAddApp, setShowAddApp] = useState(false); + const [viewMode, setViewMode] = useState<"grid" | "list">("grid"); const [newApp, setNewApp] = useState<Partial<App>>({ name: "", description: "", @@ -64,9 +75,15 @@ export default function HeartbeatMonitor() { console.error("Failed to fetch data:", err); } finally { setLoading(false); + setRefreshing(false); } } + async function handleRefresh() { + setRefreshing(true); + await fetchData(); + } + async function addApp(e: React.FormEvent) { e.preventDefault(); if (!newApp.name || !newApp.url) return; @@ -76,6 +93,17 @@ export default function HeartbeatMonitor() { body: JSON.stringify({ action: "addApp", app: newApp }), }); setShowAddApp(false); + setNewApp({ + name: "", + description: "", + url: "http://localhost:", + port: 3000, + path: "", + command: "npm run dev", + category: "Other", + color: "#22C55E", + enabled: true, + }); fetchData(); } @@ -96,24 +124,76 @@ export default function HeartbeatMonitor() { const uptime = appStatus.length > 0 ? Math.round((appStatus.filter(s => s.status === "up").length / appStatus.length) * 100) : 100; - return { latest, isUp, uptime }; + const avgResponseTime = appStatus.length > 0 + ? Math.round(appStatus.filter(s => s.responseTime).reduce((acc, s) => acc + (s.responseTime || 0), 0) / appStatus.filter(s => s.responseTime).length) || 0 + : 0; + const last24Hours = appStatus.filter(s => { + const hoursAgo = (Date.now() - new Date(s.timestamp).getTime()) / (1000 * 60 * 60); + return hoursAgo <= 24; + }); + return { latest, isUp, uptime, avgResponseTime, history: last24Hours }; } const stats = { total: apps.length, online: apps.filter((app) => getAppStatus(app.id).isUp).length, + offline: apps.filter((app) => !getAppStatus(app.id).isUp).length, avgUptime: apps.length > 0 ? Math.round(apps.reduce((acc, app) => acc + getAppStatus(app.id).uptime, 0) / apps.length) : 0, + avgResponseTime: apps.length > 0 + ? Math.round(apps.reduce((acc, app) => acc + getAppStatus(app.id).avgResponseTime, 0) / apps.length) + : 0, + incidents: status.filter(s => s.status === "down").length, }; + const allUp = stats.online === stats.total && stats.total > 0; + + function Sparkline({ data }: { data: StatusEntry[] }) { + if (data.length === 0) { + return ( + <div className="h-8 w-20 bg-slate-800/50 rounded flex items-end justify-center gap-0.5 p-1"> + {Array.from({ length: 8 }).map((_, i) => ( + <div key={i} className="w-1 bg-slate-700 rounded-sm" style={{ height: '30%' }} /> + ))} + </div> + ); + } + + const bars = data.slice(-8).map((entry, i) => { + const height = entry.status === "up" + ? Math.max(20, Math.min(100, 100 - ((entry.responseTime || 100) / 10))) + : 10; + return ( + <div + key={i} + className={`w-1.5 rounded-sm ${entry.status === "up" ? "bg-emerald-500/80" : "bg-red-500/80"}`} + style={{ height: `${height}%` }} + /> + ); + }); + + return ( + <div className="h-8 w-20 bg-slate-800/50 rounded flex items-end justify-center gap-0.5 p-1"> + {bars} + </div> + ); + } + if (loading) { return ( <div className="min-h-screen bg-slate-950 flex items-center justify-center"> - <div className="flex flex-col items-center gap-4"> - <div className="w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 animate-pulse" /> - <p className="text-slate-400">Loading dashboard...</p> - </div> + <motion.div + initial={{ opacity: 0, scale: 0.9 }} + animate={{ opacity: 1, scale: 1 }} + className="flex flex-col items-center gap-4" + > + <div className="relative"> + <div className="w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 animate-pulse" /> + <div className="absolute inset-0 w-12 h-12 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 blur-xl opacity-50" /> + </div> + <p className="text-slate-400 animate-pulse">Loading dashboard...</p> + </motion.div> </div> ); } @@ -129,21 +209,38 @@ export default function HeartbeatMonitor() { <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div className="flex items-center justify-between h-16"> <div className="flex items-center gap-4"> - <div className="w-10 h-10 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 flex items-center justify-center shadow-lg shadow-emerald-500/20"> - <Activity className="w-5 h-5 text-white" /> - </div> + <motion.div + className="relative" + whileHover={{ scale: 1.05 }} + whileTap={{ scale: 0.95 }} + > + <div className="w-10 h-10 rounded-xl bg-gradient-to-br from-emerald-500 to-cyan-500 flex items-center justify-center shadow-lg shadow-emerald-500/20"> + <Activity className="w-5 h-5 text-white" /> + </div> + </motion.div> <div> <h1 className="text-xl font-bold text-white">Heartbeat</h1> <p className="text-xs text-slate-400">Infrastructure Monitor</p> </div> </div> - <Button - onClick={() => setShowAddApp(true)} - className="gap-2 bg-gradient-to-r from-emerald-600 to-emerald-500 hover:from-emerald-500 hover:to-emerald-400 text-white" - > - <Plus className="w-4 h-4" /> - Add Monitor - </Button> + + <div className="flex items-center gap-3"> + <button + onClick={handleRefresh} + disabled={refreshing} + className="p-2 text-slate-400 hover:text-white hover:bg-slate-800 rounded-lg transition-colors" + > + <RefreshCw className={`w-5 h-5 ${refreshing ? 'animate-spin' : ''}`} /> + </button> + + <button + onClick={() => setShowAddApp(true)} + className="flex items-center gap-2 px-4 py-2 bg-gradient-to-r from-emerald-600 to-emerald-500 hover:from-emerald-500 hover:to-emerald-400 text-white rounded-lg shadow-lg shadow-emerald-500/20 transition-all" + > + <Plus className="w-4 h-4" /> + <span className="hidden sm:inline">Add Monitor</span> + </button> + </div> </div> </div> </motion.header> @@ -151,163 +248,348 @@ export default function HeartbeatMonitor() { {/* Main Content */} <main className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"> <motion.div - initial={{ opacity: 0, y: 20 }} - animate={{ opacity: 1, y: 0 }} + initial={{ opacity: 0 }} + animate={{ opacity: 1 }} + transition={{ staggerChildren: 0.1 }} className="space-y-8" > + {/* Status Overview */} + <motion.div + initial={{ opacity: 0, y: 10 }} + animate={{ opacity: 1, y: 0 }} + className="flex items-center gap-3" + > + <div className={`w-3 h-3 rounded-full ${allUp ? 'bg-emerald-500 animate-pulse' : 'bg-red-500'}`} /> + <span className="text-lg font-medium"> + {allUp ? 'All Systems Operational' : `${stats.offline} Service${stats.offline > 1 ? 's' : ''} Down`} + </span> + <span className="text-slate-500">• Last updated {new Date().toLocaleTimeString()}</span> + </motion.div> + {/* Stats Grid */} - <div className="grid grid-cols-1 sm:grid-cols-3 gap-4"> - <Card className="bg-slate-900/50 border-slate-800 border-l-4 border-l-emerald-500"> - <CardContent className="p-6"> - <div className="flex items-center justify-between"> - <div className="p-3 rounded-xl bg-emerald-500/10"> - <Server className="w-6 h-6 text-emerald-500" /> - </div> - <div className="text-right"> - <p className="text-3xl font-bold">{stats.online}/{stats.total}</p> - <p className="text-sm text-slate-400">Services Online</p> - </div> + <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4"> + <motion.div + initial={{ opacity: 0, y: 20 }} + animate={{ opacity: 1, y: 0 }} + transition={{ delay: 0.1 }} + whileHover={{ y: -4 }} + className="bg-slate-900/50 border border-slate-800 border-l-4 border-l-emerald-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors" + > + <div className="flex items-center justify-between"> + <div className="p-3 rounded-xl bg-emerald-500/10"> + <Server className="w-6 h-6 text-emerald-500" /> </div> - </CardContent> - </Card> + <div className="text-right"> + <p className="text-3xl font-bold">{stats.online}<span className="text-slate-500 text-lg">/{stats.total}</span></p> + <p className="text-sm text-slate-400">Services Online</p> + </div> + </div> + </motion.div> - <Card className="bg-slate-900/50 border-slate-800 border-l-4 border-l-blue-500"> - <CardContent className="p-6"> - <div className="flex items-center justify-between"> - <div className="p-3 rounded-xl bg-blue-500/10"> - <TrendingUp className="w-6 h-6 text-blue-500" /> - </div> - <div className="text-right"> - <p className="text-3xl font-bold">{stats.avgUptime}%</p> - <p className="text-sm text-slate-400">Avg Uptime</p> - </div> + <motion.div + initial={{ opacity: 0, y: 20 }} + animate={{ opacity: 1, y: 0 }} + transition={{ delay: 0.15 }} + whileHover={{ y: -4 }} + className="bg-slate-900/50 border border-slate-800 border-l-4 border-l-blue-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors" + > + <div className="flex items-center justify-between"> + <div className="p-3 rounded-xl bg-blue-500/10"> + <TrendingUp className="w-6 h-6 text-blue-500" /> </div> - <Progress value={stats.avgUptime} className="h-2 mt-4" /> - </CardContent> - </Card> + <div className="text-right"> + <p className="text-3xl font-bold">{stats.avgUptime}%</p> + <p className="text-sm text-slate-400">Avg Uptime</p> + </div> + </div> + <div className="mt-4 w-full bg-slate-800 rounded-full h-2"> + <motion.div + initial={{ width: 0 }} + animate={{ width: `${stats.avgUptime}%` }} + transition={{ duration: 1, delay: 0.5 }} + className="bg-blue-500 h-2 rounded-full" + /> + </div> + </motion.div> - <Card className="bg-slate-900/50 border-slate-800 border-l-4 border-l-amber-500"> - <CardContent className="p-6"> - <div className="flex items-center justify-between"> - <div className="p-3 rounded-xl bg-amber-500/10"> - <AlertCircle className="w-6 h-6 text-amber-500" /> - </div> - <div className="text-right"> - <p className="text-3xl font-bold">{status.filter(s => s.status === "down").length}</p> - <p className="text-sm text-slate-400">Incidents</p> - </div> + <motion.div + initial={{ opacity: 0, y: 20 }} + animate={{ opacity: 1, y: 0 }} + transition={{ delay: 0.2 }} + whileHover={{ y: -4 }} + className="bg-slate-900/50 border border-slate-800 border-l-4 border-l-purple-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors" + > + <div className="flex items-center justify-between"> + <div className="p-3 rounded-xl bg-purple-500/10"> + <Clock className="w-6 h-6 text-purple-500" /> </div> - </CardContent> - </Card> + <div className="text-right"> + <p className="text-3xl font-bold">{stats.avgResponseTime}<span className="text-slate-500 text-lg">ms</span></p> + <p className="text-sm text-slate-400">Avg Response</p> + </div> + </div> + </motion.div> + + <motion.div + initial={{ opacity: 0, y: 20 }} + animate={{ opacity: 1, y: 0 }} + transition={{ delay: 0.25 }} + whileHover={{ y: -4 }} + className="bg-slate-900/50 border border-slate-800 border-l-4 border-l-amber-500 rounded-xl p-6 cursor-pointer hover:bg-slate-800/50 transition-colors" + > + <div className="flex items-center justify-between"> + <div className="p-3 rounded-xl bg-amber-500/10"> + <AlertCircle className="w-6 h-6 text-amber-500" /> + </div> + <div className="text-right"> + <p className="text-3xl font-bold">{stats.incidents}</p> + <p className="text-sm text-slate-400">Incidents</p> + </div> + </div> + </motion.div> </div> - {/* Monitors */} - <Card className="bg-slate-900/50 border-slate-800 overflow-hidden"> - <CardHeader> - <CardTitle className="flex items-center gap-2"> - <Globe className="w-5 h-5 text-slate-400" /> - Monitored Services - </CardTitle> - <CardDescription>{stats.total} active monitors</CardDescription> - </CardHeader> - - <CardContent className="p-0"> - {apps.length === 0 ? ( - <div className="px-6 py-16 text-center"> - <Activity className="w-16 h-16 text-slate-600 mx-auto mb-4" /> - <h3 className="text-lg font-semibold mb-2">No monitors yet</h3> - <Button onClick={() => setShowAddApp(true)}> - <Plus className="w-4 h-4 mr-2" /> - Add Your First Monitor - </Button> + {/* Monitors Section */} + <motion.div + initial={{ opacity: 0, y: 20 }} + animate={{ opacity: 1, y: 0 }} + transition={{ delay: 0.3 }} + className="bg-slate-900/50 border border-slate-800 rounded-xl overflow-hidden" + > + <div className="px-6 py-4 border-b border-slate-800 flex items-center justify-between"> + <div> + <div className="flex items-center gap-2"> + <Globe className="w-5 h-5 text-slate-400" /> + <h2 className="text-xl font-bold">Monitored Services</h2> </div> - ) : ( - <div className="grid grid-cols-1 lg:grid-cols-2 gap-4 p-6"> + <p className="text-sm text-slate-400 mt-1">{stats.total} active monitor{stats.total !== 1 ? 's' : ''}</p> + </div> + <div className="flex items-center gap-2"> + <button + onClick={() => setViewMode(viewMode === "grid" ? "list" : "grid")} + className="p-2 text-slate-400 hover:text-white hover:bg-slate-800 rounded-lg transition-colors" + > + {viewMode === "grid" ? <List className="w-4 h-4" /> : <LayoutGrid className="w-4 h-4" />} + </button> + </div> + </div> + + <div className="p-6"> + {apps.length === 0 ? ( + <motion.div + initial={{ opacity: 0, scale: 0.95 }} + animate={{ opacity: 1, scale: 1 }} + className="text-center py-16" + > + <div className="w-20 h-20 bg-gradient-to-br from-slate-800 to-slate-900 rounded-2xl flex items-center justify-center mx-auto mb-6 shadow-inner"> + <Activity className="w-10 h-10 text-slate-600" /> + </div> + <h3 className="text-lg font-semibold mb-2">No monitors yet</h3> + <p className="text-slate-400 mb-6">Start monitoring your services by adding your first monitor</p> + <button + onClick={() => setShowAddApp(true)} + className="px-4 py-2 bg-emerald-600 hover:bg-emerald-500 text-white rounded-lg transition-colors" + > + Add Your First Monitor + </button> + </motion.div> + ) : viewMode === "grid" ? ( + <div className="grid grid-cols-1 lg:grid-cols-2 gap-4"> <AnimatePresence> - {apps.map((app) => { - const { isUp, uptime, latest } = getAppStatus(app.id); + {apps.map((app, index) => { + const { isUp, uptime, avgResponseTime, history, latest } = getAppStatus(app.id); + return ( <motion.div key={app.id} initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }} - exit={{ opacity: 0 }} + exit={{ opacity: 0, scale: 0.95 }} + transition={{ delay: index * 0.05 }} whileHover={{ y: -4 }} + className={`bg-slate-900 border border-slate-800 rounded-xl border-l-4 ${isUp ? 'border-l-emerald-500' : 'border-l-red-500'} p-5 group`} > - <Card className={`bg-slate-900 border-slate-800 border-l-4 ${isUp ? 'border-l-emerald-500' : 'border-l-red-500'}`}> - <CardContent className="p-5"> - <div className="flex items-start justify-between"> - <div className="flex items-center gap-3"> - <div className={`w-10 h-10 rounded-xl flex items-center justify-center ${isUp ? 'bg-emerald-500/10' : 'bg-red-500/10'}`}> - <Server className={`w-5 h-5 ${isUp ? 'text-emerald-500' : 'text-red-500'}`} /> - </div> - <div> - <h3 className="font-semibold text-lg">{app.name}</h3> - <a href={app.url} target="_blank" rel="noopener noreferrer" className="text-sm text-slate-400 hover:text-emerald-400"> - {app.url} - </a> - </div> - </div> - <Badge variant="outline" className={isUp ? "border-emerald-500/30 bg-emerald-500/10 text-emerald-400" : "border-red-500/30 bg-red-500/10 text-red-400"}> - <span className={`w-2 h-2 rounded-full mr-1.5 ${isUp ? 'bg-emerald-500' : 'bg-red-500'}`} /> - {isUp ? "Operational" : "Down"} - </Badge> + <div className="flex items-start justify-between"> + <div className="flex items-center gap-3"> + <div className={`w-10 h-10 rounded-xl flex items-center justify-center ${isUp ? 'bg-emerald-500/10' : 'bg-red-500/10'}`}> + <Server className={`w-5 h-5 ${isUp ? 'text-emerald-500' : 'text-red-500'}`} /> </div> - <div className="mt-4 flex items-center justify-between"> - <div> - <p className="text-2xl font-bold">{uptime}%</p> - <p className="text-xs text-slate-400">Uptime</p> - </div> - <div className="text-right"> - <p className="text-xs text-slate-400">Last check</p> - <p className="text-sm">{latest ? new Date(latest.timestamp).toLocaleTimeString() : 'Never'}</p> - </div> - <Button variant="ghost" size="icon" onClick={() => deleteApp(app.id)} className="text-red-400"> - <Trash2 className="w-4 h-4" /> - </Button> + <div> + <h3 className="font-semibold text-lg">{app.name}</h3> + <a + href={app.url} + target="_blank" + rel="noopener noreferrer" + className="text-sm text-slate-400 hover:text-emerald-400 transition-colors flex items-center gap-1" + > + {app.url} + <ExternalLink className="w-3 h-3" /> + </a> </div> - </CardContent> - </Card> + </div> + <span className={`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border ${isUp ? 'border-emerald-500/30 bg-emerald-500/10 text-emerald-400' : 'border-red-500/30 bg-red-500/10 text-red-400'}`}> + <span className={`relative flex h-2 w-2`}> + <span className={`animate-ping absolute inline-flex h-full w-full rounded-full opacity-75 ${isUp ? 'bg-emerald-400' : 'bg-red-400'}`}></span> + <span className={`relative inline-flex rounded-full h-2 w-2 ${isUp ? 'bg-emerald-500' : 'bg-red-500'}`}></span> + </span> + {isUp ? "Operational" : "Down"} + </span> + </div> + + <div className="mt-4 grid grid-cols-3 gap-4"> + <div> + <p className="text-2xl font-bold">{uptime}%</p> + <p className="text-xs text-slate-400">Uptime</p> + </div> + <div> + <p className="text-2xl font-bold">{avgResponseTime > 0 ? `${avgResponseTime}ms` : '—'}</p> + <p className="text-xs text-slate-400">Response</p> + </div> + <div className="flex items-center justify-end"> + <Sparkline data={history} /> + </div> + </div> + + <div className="mt-4 pt-4 border-t border-slate-800 flex items-center justify-between"> + <span className="text-xs text-slate-500"> + Last check: {latest ? new Date(latest.timestamp).toLocaleTimeString() : 'Never'} + </span> + <button + onClick={() => deleteApp(app.id)} + className="p-2 text-slate-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg opacity-0 group-hover:opacity-100 transition-all" + > + <Trash2 className="w-4 h-4" /> + </button> + </div> + </motion.div> + ); + })} + </AnimatePresence> + </div> + ) : ( + <div className="divide-y divide-slate-800"> + <AnimatePresence> + {apps.map((app) => { + const { isUp, uptime, avgResponseTime, history, latest } = getAppStatus(app.id); + + return ( + <motion.div + key={app.id} + initial={{ opacity: 0 }} + animate={{ opacity: 1 }} + exit={{ opacity: 0 }} + className="py-4 flex items-center justify-between group hover:bg-slate-800/30 transition-colors px-2 rounded-lg" + > + <div className="flex items-center gap-4"> + <div className={`w-2 h-12 rounded-full ${isUp ? 'bg-emerald-500' : 'bg-red-500'}`} /> + <div> + <h3 className="font-semibold">{app.name}</h3> + <a href={app.url} target="_blank" rel="noopener noreferrer" className="text-sm text-slate-400 hover:text-emerald-400 transition-colors"> + {app.url} + </a> + </div> + </div> + + <div className="flex items-center gap-8"> + <div className="text-right"> + <p className="text-xl font-bold">{uptime}%</p> + <p className="text-xs text-slate-400">Uptime</p> + </div> + <Sparkline data={history} /> + <span className={`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium border ${isUp ? 'border-emerald-500/30 bg-emerald-500/10 text-emerald-400' : 'border-red-500/30 bg-red-500/10 text-red-400'}`}> + <span className={`w-2 h-2 rounded-full ${isUp ? 'bg-emerald-500' : 'bg-red-500'}`} /> + {isUp ? "Operational" : "Down"} + </span> + <button + onClick={() => deleteApp(app.id)} + className="p-2 text-slate-500 hover:text-red-400 hover:bg-red-500/10 rounded-lg opacity-0 group-hover:opacity-100 transition-all" + > + <Trash2 className="w-4 h-4" /> + </button> + </div> </motion.div> ); })} </AnimatePresence> </div> )} - </CardContent> - </Card> + </div> + </motion.div> </motion.div> </main> {/* Add Monitor Dialog */} - <Dialog open={showAddApp} onOpenChange={setShowAddApp}> - <DialogContent className="bg-slate-900 border-slate-800 text-white"> - <DialogHeader> - <DialogTitle>Add New Monitor</DialogTitle> - <DialogDescription>Monitor a new service</DialogDescription> - </DialogHeader> - <form onSubmit={addApp} className="space-y-4"> - <div> - <Label>Name</Label> - <Input value={newApp.name} onChange={(e) => setNewApp({ ...newApp, name: e.target.value })} className="bg-slate-950 border-slate-800" required /> - </div> - <div className="grid grid-cols-2 gap-4"> - <div> - <Label>URL</Label> - <Input type="url" value={newApp.url} onChange={(e) => setNewApp({ ...newApp, url: e.target.value })} className="bg-slate-950 border-slate-800" required /> - </div> - <div> - <Label>Port</Label> - <Input type="number" value={newApp.port} onChange={(e) => setNewApp({ ...newApp, port: parseInt(e.target.value) })} className="bg-slate-950 border-slate-800" required /> - </div> - </div> - <div className="flex gap-3"> - <Button type="button" variant="outline" onClick={() => setShowAddApp(false)} className="flex-1">Cancel</Button> - <Button type="submit" className="flex-1 bg-emerald-600 hover:bg-emerald-500">Add Monitor</Button> - </div> - </form> - </DialogContent> - </Dialog> + <AnimatePresence> + {showAddApp && ( + <motion.div + initial={{ opacity: 0 }} + animate={{ opacity: 1 }} + exit={{ opacity: 0 }} + className="fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50 p-4" + > + <motion.div + initial={{ opacity: 0, scale: 0.95, y: 20 }} + animate={{ opacity: 1, scale: 1, y: 0 }} + exit={{ opacity: 0, scale: 0.95, y: 20 }} + className="bg-slate-900 border border-slate-800 rounded-xl p-6 w-full max-w-md shadow-2xl" + > + <h2 className="text-xl font-bold mb-2">Add New Monitor</h2> + <p className="text-slate-400 text-sm mb-6">Monitor a new service by providing its details below.</p> + <form onSubmit={addApp} className="space-y-4"> + <div> + <label className="block text-sm font-medium mb-2">Monitor Name</label> + <input + type="text" + value={newApp.name} + onChange={(e) => setNewApp({ ...newApp, name: e.target.value })} + className="w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors" + placeholder="My Application" + required + /> + </div> + <div className="grid grid-cols-2 gap-4"> + <div> + <label className="block text-sm font-medium mb-2">URL</label> + <input + type="url" + value={newApp.url} + onChange={(e) => setNewApp({ ...newApp, url: e.target.value })} + className="w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors" + placeholder="http://localhost:3000" + required + /> + </div> + <div> + <label className="block text-sm font-medium mb-2">Port</label> + <input + type="number" + value={newApp.port} + onChange={(e) => setNewApp({ ...newApp, port: parseInt(e.target.value) })} + className="w-full bg-slate-950 border border-slate-800 rounded-lg px-4 py-2.5 text-white placeholder-slate-500 focus:border-emerald-500 focus:ring-1 focus:ring-emerald-500 transition-colors" + required + /> + </div> + </div> + <div className="flex gap-3 pt-4"> + <button + type="button" + onClick={() => setShowAddApp(false)} + className="flex-1 px-4 py-2.5 border border-slate-700 rounded-lg hover:bg-slate-800 transition-colors" + > + Cancel + </button> + <button + type="submit" + className="flex-1 px-4 py-2.5 bg-emerald-600 hover:bg-emerald-500 text-white rounded-lg transition-colors font-medium" + > + Add Monitor + </button> + </div> + </form> + </motion.div> + </motion.div> + )} + </AnimatePresence> </div> ); }